[
  {
    "path": ".gdbinit",
    "content": "# Copyright 2011 Shinichiro Hamaji. All rights reserved.\n#\n# Redistribution and use in source and binary forms, with or without\n# modification, are permitted provided that the following conditions\n# are met:\n#\n#   1. Redistributions of source code must retain the above copyright\n#      notice, this list of  conditions and the following disclaimer.\n#\n#   2. Redistributions in binary form must reproduce the above\n#      copyright notice, this list of conditions and the following\n#      disclaimer in the documentation and/or other materials\n#      provided with the distribution.\n#\n# THIS SOFTWARE IS PROVIDED BY Shinichiro Hamaji ``AS IS'' AND ANY\n# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Shinichiro Hamaji OR\n# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF\n# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\n# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n# SUCH DAMAGE.\n\nset follow-fork-mode child\n\npython sys.path.insert(0, './tools/')\npython import gdb_maloader\n\ndefine mreload\n  python reload(gdb_maloader)\nend\n\ndefine mbt\n  mreload\n  python gdb_maloader.bt()\nend\n\ndefine mbtr\n  mreload\n  python gdb_maloader.bt(demangle=False)\nend\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "open_collective: darlinghq"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/build_issue.md",
    "content": "---\nname: Build Issue\nabout: An issue building Darling\nlabels: 'build'\n---\n\n**Build Log**\nWhat is the build error?\n```\nPut the build log here!\n```\n\n**System Information**\nWhat system are you building with?\n\n| Software | Version |\n| --- | --- |\n| Clang | X.Y.Z |\n| CMake | X.Y.Z |\n| Linux Kernel | X.Y.Z |\n| Darling | Git Commit Hash |\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/lkm_bug.md",
    "content": "---\nname: LKM Bug\nabout: An issue with the Linux kernel module\nlabels: 'bug, linux kernel module'\n---\n\n**Expected Result**\nWhat did you expect to happen?\n\n**Actual Result**\nWhat did happen?\n\n**Steps To Reproduce**\n1. If possible, what steps can you take to reproduce the issue?\n\n**``dmesg`` Output**\nRun ```dmesg | grep 'overlay\\|darling'```\n```\nPut the command output here!\n```\n\n**System Information**\nWhat system are you using?\n\n| Software | Version |\n| --- | --- |\n| Linux Kernel | X.Y.Z |\n| Darling | Git Commit Hash |\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/misc_bug.md",
    "content": "---\nname: Miscellaneous Bug\nabout: A miscellaneous bug in Darling\nlabels: 'bug'\n---\n\n**Expected Result**\nWhat did you expect to happen?\n\n**Actual Result**\nWhat did happen?\n\n**Steps To Reproduce**\n1. If possible, what steps can you take to reproduce the issue?\n\n**System Information**\nWhat system are you using?\n\n| Software | Version |\n| --- | --- |\n| Linux Kernel | X.Y.Z |\n| Darling | Git Commit Hash |\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/missing_framework.md",
    "content": "---\nname: Missing Framework\nabout: An application requires a missing framework\nlabels: 'frameworks, application compatibility'\n---\n\n**Framework**\nWhat framework is required? What does Apple's developer documentation say about it? Is it open-source?\n\n**Test Application**\nWhat application requires this framework?\n\n**Steps To Reproduce**\n1. If possible, what steps can you take to reproduce the issue?\n\n**System Information**\nWhat system are you running?\n\n| Software | Version |\n| --- | --- |\n| Darling | Git Commit Hash |\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/missing_library.md",
    "content": "---\nname: Missing Library\nabout: An application requires a missing library\nlabels: 'libraries, application compatibility'\n---\n\n**Library**\nWhat library is required? What does Apple's developer documentation say about it? Is it open-source?\n\n**Test Application**\nWhat application requires this library?\n\n**Steps To Reproduce**\n1. If possible, what steps can you take to reproduce the issue?\n\n**System Information**\nWhat system are you running?\n\n| Software | Version |\n| --- | --- |\n| Darling | Git Commit Hash |\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/missing_tool.md",
    "content": "---\nname: Missing Built-In Tool\nabout: MacOS contains a command-line tool that Darling does not\nlabels: 'enhancement'\n---\n\n**Tool**\nWhat tool is missing? What is it supposed to do? Is it or a variant open-source?\n\n**Example Command**\nWhat is an example command for this tool?\n\n**System Information**\nWhat system are you running?\n\n| Software | Version |\n| --- | --- |\n| Darling | Git Commit Hash |\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/startup_bug.md",
    "content": "---\nname: Startup Bug\nabout: An issue with Darling's startup\nlabels: 'bug, container'\n---\n\n**Expected Result**\nWhat did you expect to happen?\n\n**Actual Result**\nWhat did happen?\n\n**Steps To Reproduce**\n1. If possible, what steps can you take to reproduce the issue?\n\n**```strace``` Output**\nRun ```sudo strace -f -u $USER darling shell```, what is the output?\n```\nPut the command output here!\n```\n\n**``dmesg`` Output**\nRun ```dmesg | grep 'overlay\\|darling'```\n```\nPut the command output here!\n```\n\n**System Information**\nWhat system are you running?\n\n| Software | Version |\n| --- | --- |\n| Linux Kernel | X.Y.Z |\n| Darling | Git Commit Hash |\n"
  },
  {
    "path": ".github/workflows/actions.yaml",
    "content": "name: Darling CI\n\non: [push, pull_request]\n\njobs:\n  build-deb:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Checkout Darling\n      uses: actions/checkout@v4\n      with:\n        submodules: recursive\n\n    - name: Install dependencies\n      run: |\n        sudo apt-get update && sudo apt-get install devscripts equivs debhelper\n        sudo mk-build-deps -i -r -t \"apt-get --no-install-recommends -y\" debian/control\n\n    # see https://github.com/actions/virtual-environments/issues/2606#issuecomment-772683150\n    - name: Free up space\n      run: |\n        sudo rm -rf /usr/share/dotnet\n\n    - name: Build DEBs\n      run: |\n        ./tools/debian/make-deb\n\n    - name: Move DEBs\n      run: |\n        mkdir dist && mv ../*.deb dist\n\n    - name: Upload artifacts\n      uses: actions/upload-artifact@v4.1.0\n      with:\n        name: 'debs'\n        path: dist/\n\n  build-dsc:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Checkout Darling\n      uses: actions/checkout@v4\n      with:\n        submodules: recursive\n\n    - name: Install dependencies\n      run: |\n        sudo apt-get update && sudo apt-get install devscripts equivs debhelper\n\n    - name: Build DSCs\n      run: |\n        ./tools/debian/make-deb --dsc\n\n    - name: Move DSCs\n      run: |\n        mkdir source && mv ../*~$(lsb_release -cs).* source\n\n    - name: Upload artifacts\n      uses: actions/upload-artifact@v4.1.0\n      with:\n        name: 'deb-source'\n        path: source/\n\n  create-source-artifact:\n    runs-on: ubuntu-latest\n    steps:\n    - name: Checkout Darling\n      uses: actions/checkout@v4\n      with:\n        submodules: recursive\n        path: source/darling\n\n    - name: Compress source\n      run: |\n        mkdir -v archive\n        tar --create --use-compress-program=\"xz -9e\" --verbose \\\n            --file archive/darling-source.tar.xz \\\n            --exclude=.git --exclude=.gitmodules --exclude=.gitignore \\\n            --directory=source \\\n            darling\n\n    - name: Upload artifacts\n      uses: actions/upload-artifact@v4.1.0\n      with:\n        name: 'source'\n        path: archive/\n"
  },
  {
    "path": ".gitignore",
    "content": "# Compiled source #\n###################\n*.com\n*.class\n*.dll\n*.exe\n*.o\n*.so\n*.ko\n*.pyc\n\n# Logs and databases #\n######################\n*.log\n\n# OS generated files #\n######################\n.DS_Store*\nehthumbs.db\nIcon?\nThumbs.db\n\n.kdev_include_paths\n*~\nMakefile\nCMakeFiles\ncmake_install.cmake\nCMakeCache.txt\n*.cmd\nModule.symvers\n\n# Directories where too much temp stuff may lay around\ntests\n\n# The suggested build folder\nbuild\n\nrpm/SOURCES\nrpm/RPMS\nrpm/SRPMS\nrpm/BUILD\n\ndebbuild\ndebian/changelog\ndebian/.debhelper\ndebian/files\ndebian/darling-dkms.substvars\ndebian/darling-dkms/\ndebian/darling.substvars\ndebian/darling/\ndebian/debhelper-build-stamp\ndebian/tmp/\ndebian/darling-core/\ndebian/darling-system/\ndebian/darling-cli/\ndebian/darling-cli-python2-common/\ndebian/darling-ffi/\ndebian/darling-cli-devenv/\ndebian/darling-cli-gui-common/\ndebian/darling-iokitd/\ndebian/darling-iosurface/\ndebian/darling-cli-devenv-gui-common/\ndebian/darling-cli-extra/\ndebian/darling-gui/\ndebian/darling-python2/\ndebian/darling-cli-python-common/\ndebian/darling-pyobjc/\ndebian/darling-ruby/\ndebian/darling-perl/\ndebian/darling-jsc-webkit-common/\ndebian/darling-jsc/\ndebian/darling-iokitd-cli-devenv-gui-common/\ndebian/darling-cli-devenv-gui-stubs-common/\ndebian/darling-gui-stubs/\ndebian/darling-extra/\ndebian/*.substvars\n\n.idea\ncmake-build-*\n"
  },
  {
    "path": ".gitmodules",
    "content": "[submodule \"src/external/libdispatch\"]\n\tpath = src/external/libdispatch\n\turl = ../darling-libdispatch.git\n[submodule \"src/external/libcxx\"]\n\tpath = src/external/libcxx\n\turl = ../darling-libcxx.git\n[submodule \"src/external/libcxxabi\"]\n\tpath = src/external/libcxxabi\n\turl = ../darling-libcxxabi.git\n[submodule \"src/external/libkqueue\"]\n\tpath = src/external/libkqueue\n\turl = ../darling-libkqueue.git\n[submodule \"src/external/zlib\"]\n\tpath = src/external/zlib\n\turl = ../darling-zlib.git\n[submodule \"src/external/bzip2\"]\n\tpath = src/external/bzip2\n\turl = ../darling-bzip2.git\n[submodule \"src/external/libxml2\"]\n\tpath = src/external/libxml2\n\turl = ../darling-libxml2.git\n[submodule \"src/external/compiler-rt\"]\n\tpath = src/external/compiler-rt\n\turl = ../darling-compiler-rt.git\n[submodule \"src/external/foundation\"]\n\tpath = src/external/foundation\n\turl = ../darling-foundation.git\n[submodule \"src/external/corefoundation\"]\n\tpath = src/external/corefoundation\n\turl = ../darling-corefoundation.git\n[submodule \"src/external/icu\"]\n\tpath = src/external/icu\n\turl = ../darling-icu.git\n[submodule \"src/external/libxslt\"]\n\tpath = src/external/libxslt\n\turl = ../darling-libxslt.git\n[submodule \"src/external/openssl\"]\n\tpath = src/external/openssl\n\turl = ../darling-openssl.git\n[submodule \"src/external/curl\"]\n\tpath = src/external/curl\n\turl = ../darling-curl.git\n[submodule \"src/external/shell_cmds\"]\n\tpath = src/external/shell_cmds\n\turl = ../darling-shell_cmds.git\n[submodule \"src/external/file_cmds\"]\n\tpath = src/external/file_cmds\n\turl = ../darling-file_cmds.git\n[submodule \"src/external/bash\"]\n\tpath = src/external/bash\n\turl = ../darling-bash.git\n[submodule \"src/external/darling-dmg\"]\n\tpath = src/external/darling-dmg\n\turl = ../darling-dmg.git\n[submodule \"src/external/installer\"]\n\tpath = src/external/installer\n\turl = ../darling-installer.git\n[submodule \"src/external/liblzma\"]\n\tpath = src/external/liblzma\n\turl = ../darling-liblzma.git\n[submodule \"src/external/cfnetwork\"]\n\tpath = src/external/cfnetwork\n\turl = ../darling-cfnetwork.git\n[submodule \"src/external/text_cmds\"]\n\tpath = src/external/text_cmds\n\turl = ../darling-text_cmds.git\n[submodule \"src/external/less\"]\n\tpath = src/external/less\n\turl = ../darling-less.git\n[submodule \"src/external/grep\"]\n\tpath = src/external/grep\n\turl = ../darling-grep.git\n[submodule \"src/external/pcre\"]\n\tpath = src/external/pcre\n\turl = ../darling-pcre.git\n[submodule \"src/external/awk\"]\n\tpath = src/external/awk\n\turl = ../darling-awk.git\n[submodule \"src/external/adv_cmds\"]\n\tpath = src/external/adv_cmds\n\turl = ../darling-adv_cmds.git\n[submodule \"src/external/nano\"]\n\tpath = src/external/nano\n\turl = ../darling-nano.git\n[submodule \"src/external/zip\"]\n\tpath = src/external/zip\n\turl = ../darling-zip.git\n[submodule \"src/external/python\"]\n\tpath = src/external/python\n\turl = ../darling-python.git\n[submodule \"src/external/expat\"]\n\tpath = src/external/expat\n\turl = ../darling-expat.git\n[submodule \"src/external/sqlite\"]\n\tpath = src/external/sqlite\n\turl = ../darling-sqlite.git\n[submodule \"src/external/libauto\"]\n\tpath = src/external/libauto\n\turl = ../darling-libauto.git\n[submodule \"src/external/coretls\"]\n\tpath = src/external/coretls\n\turl = ../darling-coretls.git\n[submodule \"src/external/security\"]\n\tpath = src/external/security\n\turl = ../darling-security.git\n[submodule \"src/external/libxpc\"]\n\tpath = src/external/libxpc\n\turl = ../darling-libxpc.git\n[submodule \"src/external/gnutar\"]\n\tpath = src/external/gnutar\n\turl = ../darling-gnutar.git\n[submodule \"src/external/gpatch\"]\n\tpath = src/external/gpatch\n\turl = ../darling-gpatch.git\n[submodule \"src/external/gnudiff\"]\n\tpath = src/external/gnudiff\n\turl = ../darling-gnudiff.git\n[submodule \"src/external/apr\"]\n\tpath = src/external/apr\n\turl = ../darling-apr.git\n[submodule \"src/external/libarchive\"]\n\tpath = src/external/libarchive\n\turl = ../darling-libarchive.git\n[submodule \"src/external/file\"]\n\tpath = src/external/file\n\turl = ../darling-file.git\n[submodule \"src/external/corecrypto\"]\n\tpath = src/external/corecrypto\n\turl = ../darling-corecrypto.git\n[submodule \"src/external/ruby\"]\n\tpath = src/external/ruby\n\turl = ../darling-ruby.git\n[submodule \"src/external/commoncrypto\"]\n\tpath = src/external/commoncrypto\n\turl = ../darling-commoncrypto.git\n[submodule \"src/external/man\"]\n\tpath = src/external/man\n\turl = ../darling-man.git\n[submodule \"src/external/groff\"]\n\tpath = src/external/groff\n\turl = ../darling-groff.git\n[submodule \"src/external/openssh\"]\n\tpath = src/external/openssh\n\turl = ../darling-openssh.git\n[submodule \"src/external/network_cmds\"]\n\tpath = src/external/network_cmds\n\turl = ../darling-network_cmds.git\n[submodule \"src/external/bc\"]\n\tpath = src/external/bc\n\turl = ../darling-bc.git\n[submodule \"src/external/openssl_certificates\"]\n\tpath = src/external/openssl_certificates\n\turl = ../darling-openssl_certificates.git\n[submodule \"src/external/IOKitUser\"]\n\tpath = src/external/IOKitUser\n\turl = ../darling-iokituser.git\n[submodule \"src/external/IOStorageFamily\"]\n\tpath = src/external/IOStorageFamily\n\turl = ../darling-iostoragefamily.git\n[submodule \"src/external/openpam\"]\n\tpath = src/external/openpam\n\turl = ../darling-openpam.git\n[submodule \"src/external/top\"]\n\tpath = src/external/top\n\turl = ../darling-top.git\n[submodule \"src/external/perl\"]\n\tpath = src/external/perl\n\turl = ../darling-perl.git\n[submodule \"src/external/cctools-port\"]\n\tpath = src/external/cctools-port\n\turl = ../cctools-port.git\n[submodule \"src/external/objc4\"]\n\tpath = src/external/objc4\n\turl = ../darling-objc4.git\n[submodule \"src/external/libplatform\"]\n\tpath = src/external/libplatform\n\turl = ../darling-libplatform.git\n[submodule \"src/external/libpthread\"]\n\tpath = src/external/libpthread\n\turl = ../darling-libpthread.git\n[submodule \"src/external/syslog\"]\n\tpath = src/external/syslog\n\turl = ../darling-syslog.git\n[submodule \"src/external/libclosure\"]\n\tpath = src/external/libclosure\n\turl = ../darling-libclosure.git\n[submodule \"src/external/configd\"]\n\tpath = src/external/configd\n\turl = ../darling-configd.git\n[submodule \"src/external/IONetworkingFamily\"]\n\tpath = src/external/IONetworkingFamily\n\turl = ../darling-IONetworkingFamily.git\n[submodule \"src/external/tcsh\"]\n\tpath = src/external/tcsh\n\turl = ../darling-tcsh.git\n[submodule \"src/external/system_cmds\"]\n\tpath = src/external/system_cmds\n\turl = ../darling-system_cmds.git\n[submodule \"src/external/zsh\"]\n\tpath = src/external/zsh\n\turl = ../darling-zsh.git\n[submodule \"src/external/mail_cmds\"]\n\tpath = src/external/mail_cmds\n\turl = ../darling-mail_cmds.git\n[submodule \"src/external/screen\"]\n\tpath = src/external/screen\n\turl = ../darling-screen.git\n[submodule \"src/external/doc_cmds\"]\n\tpath = src/external/doc_cmds\n\turl = ../darling-doc_cmds.git\n[submodule \"src/external/basic_cmds\"]\n\tpath = src/external/basic_cmds\n\turl = ../darling-basic_cmds.git\n[submodule \"src/external/misc_cmds\"]\n\tpath = src/external/misc_cmds\n\turl = ../darling-misc_cmds.git\n[submodule \"src/external/patch_cmds\"]\n\tpath = src/external/patch_cmds\n\turl = ../darling-patch_cmds.git\n[submodule \"src/external/DSTools\"]\n\tpath = src/external/DSTools\n\turl = ../darling-DSTools.git\n[submodule \"src/external/DirectoryService\"]\n\tpath = src/external/DirectoryService\n\turl = ../darling-DirectoryService.git\n[submodule \"src/external/TextEdit\"]\n\tpath = src/external/TextEdit\n\turl = ../darling-TextEdit.git\n[submodule \"src/external/bsm\"]\n\tpath = src/external/bsm\n\turl = ../darling-bsm.git\n[submodule \"src/external/Heimdal\"]\n\tpath = src/external/Heimdal\n\turl = ../darling-Heimdal.git\n[submodule \"src/external/cocotron\"]\n\tpath = src/external/cocotron\n\turl = ../darling-cocotron.git\n[submodule \"src/external/libtelnet\"]\n\tpath = src/external/libtelnet\n\turl = ../darling-libtelnet.git\n[submodule \"src/external/remote_cmds\"]\n\tpath = src/external/remote_cmds\n\turl = ../darling-remote_cmds.git\n[submodule \"src/external/SmartCardServices\"]\n\tpath = src/external/SmartCardServices\n\turl = ../darling-SmartCardServices.git\n[submodule \"src/external/vim\"]\n\tpath = src/external/vim\n\turl = ../darling-vim.git\n[submodule \"src/external/cctools\"]\n\tpath = src/external/cctools\n\turl = ../darling-cctools.git\n[submodule \"src/external/python_modules\"]\n\tpath = src/external/python_modules\n\turl = ../darling-python_modules.git\n[submodule \"src/external/files\"]\n\tpath = src/external/files\n\turl = ../darling-files.git\n[submodule \"src/external/crontabs\"]\n\tpath = src/external/crontabs\n\turl = ../darling-crontabs.git\n[submodule \"src/external/WTF\"]\n\tpath = src/external/WTF\n\turl = ../darling-WTF.git\n\tbranch = master\n[submodule \"src/external/WebCore\"]\n\tpath = src/external/WebCore\n\turl = ../darling-WebCore.git\n\tbranch = master\n[submodule \"src/external/JavaScriptCore\"]\n\tpath = src/external/JavaScriptCore\n\turl = ../darling-JavaScriptCore.git\n\tbranch = master\n[submodule \"src/external/bmalloc\"]\n\tpath = src/external/bmalloc\n\turl = ../darling-bmalloc.git\n\tbranch = master\n[submodule \"src/external/dtrace\"]\n\tpath = src/external/dtrace\n\turl = ../darling-dtrace.git\n\tbranch = master\n[submodule \"src/external/xcbuild\"]\n\tpath = src/external/xcbuild\n\turl = ../xcbuild.git\n[submodule \"src/external/bind9\"]\n\tpath = src/external/bind9\n\turl = ../darling-bind9.git\n[submodule \"src/external/SecurityTokend\"]\n\tpath = src/external/SecurityTokend\n\turl = ../darling-SecurityTokend.git\n[submodule \"src/external/lzfse\"]\n\tpath = src/external/lzfse\n\turl = ../lzfse.git\n[submodule \"src/external/OpenDirectory\"]\n\tpath = src/external/OpenDirectory\n\turl = ../darling-opendirectory.git\n[submodule \"src/external/iokitd\"]\n\tpath = src/external/iokitd\n\turl = ../darling-iokitd.git\n[submodule \"src/external/OpenAL\"]\n\tpath = src/external/OpenAL\n\turl = ../darling-openal.git\n[submodule \"src/external/usertemplate\"]\n\tpath = src/external/usertemplate\n\turl = ../darling-usertemplate.git\n[submodule \"src/external/libtrace\"]\n\tpath = src/external/libtrace\n\turl = ../darling-libtrace.git\n[submodule \"src/external/rsync\"]\n\tpath = src/external/rsync\n\turl = ../darling-rsync.git\n[submodule \"src/external/cups\"]\n\tpath = src/external/cups\n\turl = ../darling-cups.git\n[submodule \"src/external/libffi\"]\n\tpath = src/external/libffi\n\turl = ../darling-libffi.git\n[submodule \"src/external/dbuskit\"]\n\tpath = src/external/dbuskit\n\turl = ../darling-dbuskit.git\n[submodule \"src/external/IOKitTools\"]\n\tpath = src/external/IOKitTools\n\turl = ../darling-IOKitTools.git\n[submodule \"src/external/fmdb\"]\n\tpath = src/external/fmdb\n\turl = ../fmdb.git\n[submodule \"src/external/swift\"]\n\tpath = src/external/swift\n\turl = ../darling-swift.git\n[submodule \"src/external/glut\"]\n\tpath = src/external/glut\n\turl = ../darling-glut.git\n[submodule \"src/external/energytrace\"]\n\tpath = src/external/energytrace\n\turl = ../darling-energytrace.git\n[submodule \"src/external/nghttp2\"]\n\tpath = src/external/nghttp2\n\turl = ../darling-nghttp2.git\n[submodule \"src/external/libressl-2.2.9\"]\n\tpath = src/external/libressl-2.2.9\n\turl = ../darling-libressl.git\n\tbranch = v2.2.9\n[submodule \"src/external/libressl-2.5.5\"]\n\tpath = src/external/libressl-2.5.5\n\turl = ../darling-libressl.git\n\tbranch = v2.5.5\n[submodule \"src/external/libressl-2.6.5\"]\n\tpath = src/external/libressl-2.6.5\n\turl = ../darling-libressl.git\n\tbranch = v2.6.5\n[submodule \"src/external/libressl-2.8.3\"]\n\tpath = src/external/libressl-2.8.3\n\turl = ../darling-libressl.git\n\tbranch = v2.8.3\n[submodule \"src/external/OpenLDAP\"]\n\tpath = src/external/OpenLDAP\n\turl = ../darling-openldap.git\n[submodule \"src/external/passwordserver_sasl\"]\n\tpath = src/external/passwordserver_sasl\n\turl = ../darling-passwordserver_sasl.git\n[submodule \"src/external/MITKerberosShim\"]\n\tpath = src/external/MITKerberosShim\n\turl = ../darling-MITKerberosShim.git\n[submodule \"src/external/mDNSResponder\"]\n\tpath = src/external/mDNSResponder\n\turl = ../darling-mDNSResponder.git\n[submodule \"src/external/BerkeleyDB\"]\n\tpath = src/external/BerkeleyDB\n\turl = ../darling-BerkeleyDB.git\n[submodule \"src/external/libnetwork\"]\n\tpath = src/external/libnetwork\n\turl = ../darling-libnetwork.git\n[submodule \"src/external/openjdk\"]\n\tpath = src/external/openjdk\n\turl = ../openjdk.git\n[submodule \"src/external/pyobjc\"]\n\tpath = src/external/pyobjc\n\turl = ../darling-pyobjc.git\n[submodule \"src/external/darlingserver\"]\n\tpath = src/external/darlingserver\n\turl = ../darlingserver.git\n[submodule \"src/external/libmalloc\"]\n\tpath = src/external/libmalloc\n\turl = ../darling-libmalloc.git\n[submodule \"src/external/libc\"]\n\tpath = src/external/libc\n\turl = ../darling-Libc.git\n[submodule \"src/external/libsystem\"]\n\tpath = src/external/libsystem\n\turl = ../darling-Libsystem.git\n[submodule \"src/external/dyld\"]\n\tpath = src/external/dyld\n\turl = ../darling-dyld.git\n[submodule \"src/external/AvailabilityVersions\"]\n\tpath = src/external/AvailabilityVersions\n\turl = ../darling-AvailabilityVersions\n[submodule \"src/external/libnotify\"]\n\tpath = src/external/libnotify\n\turl = ../darling-Libnotify.git\n[submodule \"src/external/csu\"]\n\tpath = src/external/csu\n\turl = ../darling-Csu.git\n[submodule \"src/external/Libinfo\"]\n\tpath = src/external/Libinfo\n\turl = ../darling-Libinfo.git\n[submodule \"src/external/librpcsvc\"]\n\tpath = src/external/librpcsvc\n\turl = ../darling-librpcsvc.git\n[submodule \"src/external/architecture\"]\n\tpath = src/external/architecture\n\turl = ../darling-architecture\n[submodule \"src/external/bootstrap_cmds\"]\n\tpath = src/external/bootstrap_cmds\n\turl = ../darling-bootstrap_cmds.git\n[submodule \"src/external/copyfile\"]\n\tpath = src/external/copyfile\n\turl = ../darling-copyfile.git\n[submodule \"src/external/keymgr\"]\n\tpath = src/external/keymgr\n\turl = ../darling-keymgr.git\n[submodule \"src/external/libedit\"]\n\tpath = src/external/libedit\n\turl = ../darling-libedit.git\n[submodule \"src/external/libiconv\"]\n\tpath = src/external/libiconv\n\turl = ../darling-libiconv.git\n[submodule \"src/external/libresolv\"]\n\tpath = src/external/libresolv\n\turl = ../darling-libresolv.git\n[submodule \"src/external/libstdcxx\"]\n\tpath = src/external/libstdcxx\n\turl = ../darling-libstdcxx.git\n[submodule \"src/external/libunwind\"]\n\tpath = src/external/libunwind\n\turl = ../darling-libunwind.git\n[submodule \"src/external/libutil\"]\n\tpath = src/external/libutil\n\turl = ../darling-libutil.git\n[submodule \"src/external/ncurses\"]\n\tpath = src/external/ncurses\n\turl = ../darling-ncurses.git\n[submodule \"src/external/netcat\"]\n\tpath = src/external/netcat\n\turl = ../darling-netcat.git\n[submodule \"src/external/removefile\"]\n\tpath = src/external/removefile\n\turl = ../darling-removefile.git\n[submodule \"src/external/xar\"]\n\tpath = src/external/xar\n\turl = ../darling-xar.git\n[submodule \"src/external/metal\"]\n\tpath = src/external/metal\n\turl = ../darling-metal.git\n[submodule \"src/external/xnu\"]\n\tpath = src/external/xnu\n\turl = ../darling-xnu.git\n"
  },
  {
    "path": ".vscode/launch.json",
    "content": "{\n    // Use IntelliSense to learn about possible attributes.\n    // Hover to view descriptions of existing attributes.\n    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387\n    \"version\": \"0.2.0\",\n    \"configurations\": [\n        {\n            \"type\": \"lldb\",\n            \"request\": \"launch\",\n            \"name\": \"Debug darling-coredump\",\n            \"program\": \"${workspaceFolder}/build/src/hosttools/darling-coredump\",\n            \"args\": [\"${input:linuxCoreDumpFileName}\"],\n            \"cwd\": \"${workspaceFolder}\"\n        },\n        // Based on https://stackoverflow.com/a/57848966\n        {\n            \"type\": \"lldb\",\n            \"request\": \"custom\",\n            \"name\": \"Open Darling Core Dump\",\n            \"initCommands\": [\n                \"target create -c ${input:convertedCoreDumpFileName}\"\n            ]\n        }\n    ],\n    \"inputs\": [\n        {\n            \"id\": \"linuxCoreDumpFileName\",\n            \"type\": \"promptString\",\n            \"description\": \"Enter the path to the core dump that needs to be converted\",\n            \"default\": \"\"\n        },\n        {\n            \"id\": \"convertedCoreDumpFileName\",\n            \"type\": \"promptString\",\n            \"description\": \"Enter the path to the Darling core dump\",\n            \"default\": \"\"\n        }\n    ]\n}"
  },
  {
    "path": "CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.13)\n\nSET(CMAKE_SYSTEM_NAME Linux)\nSET(CMAKE_SYSTEM_PROCESSOR \"x86-64\")\n\n# This allows setting the compiler with -DCMAKE_C_COMPILER when configuring.\nif (NOT DEFINED CMAKE_C_COMPILER)\n\tfind_program(CMAKE_C_COMPILER NAMES\n\t\t\"clang\"\n\t\t\"clang-4.0\"\n\t\t\"clang-6.0\"\n\t\t\"clang-7\"\n\t\t\"clang-9\"\n\t\t\"clang-10\"\n\t\t\"clang-11\"\n\t\t\"clang-12\"\n\t\t\"clang-13\"\n\t\t\"clang-14\"\n\t\t\"clang-15\"\n\t\t\"clang-16\"\n\t\t\"clang-17\"\n\t\t\"clang-18\"\n\t\t\"clang-19\"\n\t\t\"clang-20\"\n\t\t\"clang-21\"\n\t\t\"clang-22\"\n\t\t\"clang-23\"\n)\nendif(NOT DEFINED CMAKE_C_COMPILER)\n\nif (NOT DEFINED CMAKE_CXX_COMPILER)\n\tfind_program(CMAKE_CXX_COMPILER NAMES\n\t\t\"clang++\"\n\t\t\"clang++-4.0\"\n\t\t\"clang++-6.0\"\n\t\t\"clang++-7\"\n\t\t\"clang++-9\"\n\t\t\"clang++-10\"\n\t\t\"clang++-11\"\n\t\t\"clang++-12\"\n\t\t\"clang++-13\"\n\t\t\"clang++-14\"\n\t\t\"clang++-15\"\n\t\t\"clang++-16\"\n\t\t\"clang++-17\"\n\t\t\"clang++-18\"\n\t\t\"clang++-19\"\n\t\t\"clang++-20\"\n\t\t\"clang++-21\"\n\t\t\"clang++-22\"\n\t\t\"clang++-23\"\n)\nendif(NOT DEFINED CMAKE_CXX_COMPILER)\n\noption(DARLING_NO_CCACHE \"Disable ccache usage\" OFF)\n\nfind_program(CCACHE_PROGRAM ccache)\nif(CCACHE_PROGRAM AND NOT DARLING_NO_CCACHE)\n    set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE \"${CCACHE_PROGRAM}\")\nendif()\n\nSET(CMAKE_SKIP_RPATH TRUE)\n\n# technically ignored by CMake when building on non-Apple platforms, but it's already a standard variable for the\n# SDK deployment target, so we'll just use it and then add it to the compiler flags manually\nset(CMAKE_OSX_DEPLOYMENT_TARGET 11.0 CACHE STRING \"The version of macOS we're simulating\")\n\nproject(darling)\n\nenable_language(ASM)\n\nset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"core\")\n\nset(CMAKE_MODULE_PATH \"${CMAKE_SOURCE_DIR}/cmake\")\ninclude(clang_version_check)\ninclude(InstallSymlink)\ninclude(MacroEnsureOutOfSourceBuild)\ninclude(dsym)\ninclude(xcproj)\ninclude(architecture)\ninclude(create_symlink)\n\nset(CLANG_RECOMMENDED_MINIMUM_VERSION 11)\nclang_version_check(${CMAKE_C_COMPILER} c ${CLANG_RECOMMENDED_MINIMUM_VERSION})\nclang_version_check(${CMAKE_CXX_COMPILER} cpp ${CLANG_RECOMMENDED_MINIMUM_VERSION})\n\nMACRO_ENSURE_OUT_OF_SOURCE_BUILD()\n\nset(DARLING_TOP_DIRECTORY \"${CMAKE_CURRENT_SOURCE_DIR}\")\nset(DARLING_NO_EXECUTABLES OFF)\nset(CMAKE_C_IMPLICIT_LINK_LIBRARIES \"\")\nset(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES \"\")\n\nif (${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES \"i686|i386\")\n\tmessage(FATAL_ERROR \"This software can only be built on x86-64 systems\")\nendif (${CMAKE_HOST_SYSTEM_PROCESSOR} MATCHES \"i686|i386\")\n\nSET(IGNORED_WARNINGS \"-Wno-nullability-completeness -Wno-deprecated-declarations -Wno-availability\")\n\nif (${CMAKE_C_COMPILER_ID} STREQUAL \"Clang\" AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS \"3.9\")\n\tSET(IGNORED_WARNINGS \"${IGNORED_WARNINGS} -Wno-expansion-to-defined\")\nendif (${CMAKE_C_COMPILER_ID} STREQUAL \"Clang\" AND NOT ${CMAKE_C_COMPILER_VERSION} VERSION_LESS \"3.9\")\n\nif(${CMAKE_C_COMPILER_ID} STREQUAL \"Clang\" AND ${CMAKE_C_COMPILER_VERSION} VERSION_GREATER_EQUAL \"11\")\n\t# newer Clang chokes on the idiomatic way to use CF_ENUM; e.g. like this:\n\t#     typedef CF_ENUM(int, MyEnum) {\n\t#       MY_ENUM_THING,\n\t#       MY_ENUM_OTHER_THING,\n\t#       # etc...\n\t#     }\n\tset(IGNORED_WARNINGS \"${IGNORED_WARNINGS} -Wno-elaborated-enum-base -Wno-undef-prefix\")\n\tset(ASM_IGNORED_WARNINGS \"${ASM_IGNORED_WARNINGS} -Wno-undef-prefix\")\nendif()\n\nSET(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} ${IGNORED_WARNINGS}\")\nSET(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} ${IGNORED_WARNINGS}\")\nset(CMAKE_ASM_FLAGS \"${CMAKE_ASM_FLAGS} ${ASM_IGNORED_WARNINGS}\")\nSET(CMAKE_C_FLAGS_DEBUG \"-O0 -ggdb\")\nSET(CMAKE_CXX_FLAGS_DEBUG \"-O0 -ggdb\")\n\n# prevent object filename conflicts for two source files that differ only in extension (e.g. `object.c` and `object.m`)\nset(CMAKE_C_OUTPUT_EXTENSION \".c.o\")\nset(CMAKE_CXX_OUTPUT_EXTENSION \".cpp.o\")\nset(CMAKE_OBJC_OUTPUT_EXTENSION \".m.o\")\n\nif(CMAKE_POSITION_INDEPENDENT_CODE)\n\tSET(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -fPIC\")\n\tSET(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -fPIC\")\n\tSET(CMAKE_EXE_LINKER_FLAGS \"${CMAKE_EXE_LINKER_FLAGS} -pie\")\nendif(CMAKE_POSITION_INDEPENDENT_CODE)\n\nenable_language(ASM-ATT)\n\noption(TARGET_i386 \"Enable i386 slices\" ON)\noption(TARGET_x86_64 \"Enable x86_64 slices\" ON)\noption(DEBIAN_PACKAGING \"Packaging for Debian\" OFF)\noption(ENABLE_TESTS \"Install in-prefix unit tests\" OFF)\noption(REGENERATE_SDK \"Regenerate Header Files For Open Source SDK\" OFF)\n\nif (DEBIAN_PACKAGING)\n\tset(COMPONENTS_DEFAULT \"all\")\nelse()\n\tset(COMPONENTS_DEFAULT \"stock\")\nendif()\n\nset(COMPONENTS \"${COMPONENTS_DEFAULT}\" CACHE STRING \"Choose which components of Darling to build\")\ninclude(darling_parse_components)\ndarling_parse_components(\"${COMPONENTS}\")\n\nset(COMPILE_PY2_BYTECODE AUTO CACHE STRING \"Pre-compile bytecode for Python 2 packages\")\nset_property(CACHE COMPILE_PY2_BYTECODE PROPERTY STRINGS AUTO ON OFF)\n\nstring(TOLOWER \"${COMPILE_PY2_BYTECODE}\" COMPILE_PY2_BYTECODE)\n\nif (COMPILE_PY2_BYTECODE STREQUAL \"auto\")\n\tfind_package(Python2 QUIET COMPONENTS Interpreter)\n\n\tif (Python2_Interpreter_FOUND)\n\t\tset(COMPILE_PY2_BYTECODE ON)\n\t\tmessage(\"Found Python 2; enabling pre-compilation of Python bytecode\")\n\telse()\n\t\tset(COMPILE_PY2_BYTECODE OFF)\n\t\tmessage(\"Python 2 not available; bytecode compilation is disabled\")\n\tendif (Python2_Interpreter_FOUND)\nendif (COMPILE_PY2_BYTECODE STREQUAL \"auto\")\n\nif (COMPILE_PY2_BYTECODE)\n\tfind_package(Python2 REQUIRED COMPONENTS Interpreter)\nendif (COMPILE_PY2_BYTECODE)\n\nset(ENABLE_METAL AUTO CACHE STRING \"Build Darling with Metal support\")\nset_property(CACHE ENABLE_METAL PROPERTY STRINGS AUTO ON OFF)\n\nstring(TOLOWER \"${ENABLE_METAL}\" BUILD_METAL)\n\nif(BUILD_METAL STREQUAL \"auto\")\n\t# check if Vulkan and LLVM are available\n\tfind_program(LLVM_CONFIG_PROGRAM llvm-config)\n\tfind_package(Vulkan)\n\n\tif(LLVM_CONFIG_PROGRAM AND Vulkan_FOUND)\n\t\tset(BUILD_METAL ON)\n\t\tmessage(\"Found required libraries; building with Metal support\")\n\telse()\n\t\tset(BUILD_METAL OFF)\n\t\tmessage(\"Did not find required libraries (Vulkan and LLVM); building without Metal support\")\n\tendif()\nendif()\n\nFindDsymutil()\nfind_package(Setcap REQUIRED)\n\n# Missing CMakeLists.txt must trigger an error\ncmake_policy(SET CMP0014 NEW)\n\ngenerate_architecture()\n\nadd_subdirectory(src)\n\ninstall(DIRECTORY DESTINATION libexec/darling/private)\ninstall(DIRECTORY DESTINATION libexec/darling/private/etc)\ninstall(DIRECTORY DESTINATION libexec/darling/private/var)\ninstall(DIRECTORY DESTINATION libexec/darling/private/tmp)\nInstallSymlink(private/etc ${CMAKE_INSTALL_PREFIX}/libexec/darling/etc)\nInstallSymlink(private/var ${CMAKE_INSTALL_PREFIX}/libexec/darling/var)\n\ninstall(FILES etc/resolv.conf\n\tDESTINATION libexec/darling/private/etc)\nInstallSymlink(/Volumes/SystemRoot/etc/machine-id ${CMAKE_INSTALL_PREFIX}/libexec/darling/private/etc/machine-id)\nInstallSymlink(/Volumes/SystemRoot/etc/nsswitch.conf ${CMAKE_INSTALL_PREFIX}/libexec/darling/private/etc/nsswitch.conf)\n\ninstall(DIRECTORY DESTINATION libexec/darling/Volumes)\ninstall(DIRECTORY DESTINATION libexec/darling/Volumes/SystemRoot)\nInstallSymlink(/ ${CMAKE_INSTALL_PREFIX}/libexec/darling/Volumes/DarlingEmulatedDrive)\n\ninstall(DIRECTORY DESTINATION libexec/darling/proc)\n\ninstall(DIRECTORY DESTINATION libexec/darling/var/root)\ninstall(DIRECTORY DESTINATION libexec/darling/var/run)\nInstallSymlink(/dev/log ${CMAKE_INSTALL_PREFIX}/libexec/darling/var/run/syslog)\n\ninstall(DIRECTORY DESTINATION libexec/darling/usr)\ninstall(DIRECTORY DESTINATION libexec/darling/usr/local)\ninstall(DIRECTORY DESTINATION libexec/darling/usr/local/share)\n\nInstallSymlink(/Volumes/SystemRoot/dev ${CMAKE_INSTALL_PREFIX}/libexec/darling/dev)\nInstallSymlink(private/tmp ${CMAKE_INSTALL_PREFIX}/libexec/darling/tmp)\n\nInstallSymlink(/proc/self/mounts ${CMAKE_INSTALL_PREFIX}/libexec/darling/private/etc/mtab)\n#InstallSymlink(/Volumes/SystemRoot/etc/passwd ${CMAKE_INSTALL_PREFIX}/libexec/darling/private/etc/passwd)\n#InstallSymlink(/Volumes/SystemRoot/etc/group ${CMAKE_INSTALL_PREFIX}/libexec/darling/private/etc/group)\nInstallSymlink(/Volumes/SystemRoot/etc/localtime ${CMAKE_INSTALL_PREFIX}/libexec/darling/private/etc/localtime)\n\nInstallSymlink(/Volumes/SystemRoot/usr/share/zoneinfo ${CMAKE_INSTALL_PREFIX}/libexec/darling/usr/share/zoneinfo)\n\ninstall(DIRECTORY DESTINATION libexec/darling/Library/Preferences)\n\nif(NOT DEBIAN_PACKAGING)\n\tinstall(CODE \"execute_process(COMMAND bash ${DARLING_TOP_DIRECTORY}/tools/shutdown-user.sh)\")\nendif(NOT DEBIAN_PACKAGING)\n\nadd_custom_target(uninstall\n\tCOMMAND ${CMAKE_CURRENT_SOURCE_DIR}/tools/uninstall\n\tCOMMENT \"Uninstall Darling and kernel module\")\n"
  },
  {
    "path": "CONTRIBUTORS.md",
    "content": "# Contributors\n\nDarling comprises many open source packages, both well known (e.g. from the Free Software Foundation) or developed and released by Apple.\n\nThis file only covers significant code contributions made directly for Darling.\n\n## People\n\n* Lubos Dolezel\n* Wenqi Chen\n* Sergey Bugaev\n* Andrew Hyatt\n* Chris Wulff\n\n"
  },
  {
    "path": "Developer/.gitignore",
    "content": "Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libSystem.B.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/libobjc.A.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation\n\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libcommonCrypto.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libcompiler_rt.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libcopyfile.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libcorecrypto.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libdispatch.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libdyld.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libkeymgr.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libmacho.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libquarantine.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libremovefile.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_asl.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_blocks.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_c.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_coreservices.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_coretls.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_duct.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_info.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_kernel.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_malloc.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_m.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_notify.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_platform.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_pthread.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libsystem_sandbox.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libunwind.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/libxpc.dylib\nPlatforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib/system/liblaunch.dylib\n\nToolchains/XcodeDefault.xctoolchain/usr/bin/bsdln\nToolchains/XcodeDefault.xctoolchain/usr/bin/ln\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Specifications/Core Build System.xcspec",
    "content": "{\n    /* The name of the build system */\n    Type = BuildSystem;\n\n    /* The build system we inherit from */\n    BasedOn = \"com.apple.buildsettings.standard\";\n\n    /* The identifier of this build system */\n    Identifier = com.apple.build-system.core;\n\n    /* Build system properties */\n    Properties = (\n\t/* Require a property list */\n        {\n            Name = PRODUCT_DEFINITION_PLIST;\n            Type = String;\n            DefaultValue = \"\";\n            Category = \"Deployment\";\n        },\n\n\t/* Don't combine high DPI images by default */\n        {\n            Name = COMBINE_HIDPI_IMAGES;\n            Type = bool;\n            DefaultValue = NO;\n            Category = \"Deployment\";\n        },\n\n    );\n}\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Specifications/MacOSX Architectures.xcspec",
    "content": "(\n    {\n        Type = Architecture;\n        Identifier = Native;\n        ListInEnum = YES;\n        SortNumber = 100;\n        ArchitectureSetting = \"NATIVE_ARCH_ACTUAL\";\n    },\n\t{\n\t\tType = Architecture;\n\t\tIdentifier = Standard;\n\t\tListInEnum = YES;\n\t\tSortNumber = 0;\n\t\tRealArchitectures = (\n\t\t\t\"x86_64\",\n\t\t);\n\t\tArchitectureSetting = \"ARCHS_STANDARD\";\n\t},\n\t{\n\t\tType = Architecture;\n\t\tIdentifier = Standard64bit;\n\t\tListInEnum = YES;\n\t\tSortNumber = 102;\n\t\tRealArchitectures = (\n\t\t\t\"x86_64\",\n\t\t);\n\t\tArchitectureSetting = \"ARCHS_STANDARD_64_BIT\";\n\t},\n\t{\n\t\tType = Architecture;\n\t\tIdentifier = Universal;\n\t\tListInEnum = NO;\n\t\tSortNumber = 2;\n\t\tRealArchitectures = (\n\t\t\t\"x86_64\",\n\t\t\t\"i386\",\n\t\t);\n\t\tArchitectureSetting = \"ARCHS_STANDARD_32_64_BIT\";\n\t},\n\t{\n\t\tType = Architecture;\n\t\tIdentifier = Standard_Including_64_bit;\n\t\tListInEnum = NO;\n\t\tSortNumber = 103;\n\t\tRealArchitectures = (\n\t\t\t\"x86_64\",\n\t\t);\n\t\tArchitectureSetting = \"ARCHS_STANDARD_INCLUDING_64_BIT\";\n\t},\n\t{\n\t\tType = Architecture;\n\t\tIdentifier = Standard32bit;\n\t\tListInEnum = NO;\n\t\tSortNumber = 101;\n\t\tRealArchitectures = (\n\t\t\t\"i386\",\n\t\t);\n\t\tArchitectureSetting = \"ARCHS_STANDARD_32_BIT\";\n\t},\n\t{\n\t\tType = Architecture;\n\t\tIdentifier = i386;\n\t\tPerArchBuildSettingName = Intel;\n\t\tByteOrder = little;\n\t\tListInEnum = NO;\n\t\tSortNumber = 105;\n\t\tDeprecated = YES;\n\t},\n\t{\n\t\tType = Architecture;\n\t\tIdentifier = \"x86_64\";\n\t\tPerArchBuildSettingName = \"Intel 64-bit\";\n\t\tByteOrder = little;\n\t\tListInEnum = NO;\n\t\tSortNumber = 106;\n\t},\n)\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Specifications/MacOSX Package Types.xcspec",
    "content": "(\n    /* Mach-O */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.mach-o-executable;\n        DefaultBuildSettings = {\n            EXECUTABLE_PREFIX = \"\";\n            EXECUTABLE_SUFFIX = \"\";\n            EXECUTABLE_NAME = \"$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)\";\n            EXECUTABLE_PATH = \"$(EXECUTABLE_NAME)\";\n        };\n        ProductReference = {\n            FileType = compiled.mach-o.executable;\n            Name = \"$(EXECUTABLE_NAME)\";\n            IsLaunchable = YES;\n        };\n    },\n\n    /* Object */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.mach-o-objfile;\n        DefaultBuildSettings = {\n            EXECUTABLE_PREFIX = \"\";\n            EXECUTABLE_SUFFIX = \"\";\n            EXECUTABLE_NAME = \"$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)\";\n            EXECUTABLE_PATH = \"$(EXECUTABLE_NAME)\";\n        };\n        ProductReference = {\n            FileType = compiled.mach-o.objfile;\n            Name = \"$(EXECUTABLE_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* Dylib */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.mach-o-dylib;\n        DefaultBuildSettings = {\n            EXECUTABLE_PREFIX = \"\";\n            EXECUTABLE_SUFFIX = \"\";\n            EXECUTABLE_NAME = \"$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)\";\n            EXECUTABLE_PATH = \"$(EXECUTABLE_NAME)\";\n        };\n        ProductReference = {\n            FileType = compiled.mach-o.dylib;\n            Name = \"$(EXECUTABLE_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* Static lib */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.static-library;\n        DefaultBuildSettings = {\n            EXECUTABLE_PREFIX = \"lib\";\n            EXECUTABLE_SUFFIX = \".a\";\n            EXECUTABLE_NAME = \"$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)\";\n            EXECUTABLE_PATH = \"$(EXECUTABLE_NAME)\";\n        };\n        ProductReference = {\n            FileType = archive.ar;\n            Name = \"$(EXECUTABLE_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* Bundle */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.mach-o-bundle;\n        DefaultBuildSettings = {\n            EXECUTABLE_PREFIX = \"\";\n            EXECUTABLE_SUFFIX = \".dylib\";\n            EXECUTABLE_NAME = \"$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)\";\n            EXECUTABLE_PATH = \"$(EXECUTABLE_NAME)\";\n        };\n        ProductReference = {\n            FileType = compiled.mach-o.bundle;\n            Name = \"$(EXECUTABLE_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* CFBundle */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.wrapper;\n        DefaultBuildSettings = {\n            WRAPPER_PREFIX = \"\";\n            WRAPPER_SUFFIX = \".bundle\";\n            WRAPPER_NAME = \"$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)\";\n            CONTENTS_FOLDER_PATH = \"$(WRAPPER_NAME)/Contents\";\n            EXECUTABLE_PREFIX = \"\";\n            EXECUTABLE_SUFFIX = \"\";\n            EXECUTABLE_NAME = \"$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)\";\n            EXECUTABLE_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/MacOS\";\n            EXECUTABLE_PATH = \"$(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME)\";\n            INFOPLIST_PATH = \"$(CONTENTS_FOLDER_PATH)/Info.plist\";\n            INFOSTRINGS_PATH = \"$(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings\";\n            PKGINFO_PATH = \"$(CONTENTS_FOLDER_PATH)/PkgInfo\";\n            PBDEVELOPMENTPLIST_PATH = \"$(CONTENTS_FOLDER_PATH)/pbdevelopment.plist\";\n            VERSIONPLIST_PATH = \"$(CONTENTS_FOLDER_PATH)/version.plist\";\n            PUBLIC_HEADERS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/Headers\";\n            PRIVATE_HEADERS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/PrivateHeaders\";\n            EXECUTABLES_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/Executables\";\n            FRAMEWORKS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/Frameworks\";\n            SHARED_FRAMEWORKS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/SharedFrameworks\";\n            SHARED_SUPPORT_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/SharedSupport\";\n            UNLOCALIZED_RESOURCES_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/Resources\";\n            LOCALIZED_RESOURCES_FOLDER_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj\";\n            DOCUMENTATION_FOLDER_PATH = \"$(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation\";\n            PLUGINS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/PlugIns\";\n            SCRIPTS_FOLDER_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts\";\n            JAVA_FOLDER_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Java\";\n        };\n        ProductReference = {\n            FileType = wrapper.cfbundle;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* CFBundle (shallow) */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.wrapper.shallow;\n        BasedOn = com.apple.package-type.wrapper;\n        DefaultBuildSettings = {\n            CONTENTS_FOLDER_PATH = \"$(WRAPPER_NAME)\";\n            EXECUTABLE_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)\";\n            UNLOCALIZED_RESOURCES_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)\";\n            SHALLOW_BUNDLE = YES;\n        };\n        ProductReference = {\n            FileType = wrapper.cfbundle;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* Application */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.wrapper.application;\n        BasedOn = com.apple.package-type.wrapper;\n        DefaultBuildSettings = {\n            GENERATE_PKGINFO_FILE = YES;\n        };\n        ProductReference = {\n            FileType = wrapper.application;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = YES;\n        };\n    },\n\n    /* Shallow Application */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.wrapper.application.shallow;\n        BasedOn = com.apple.package-type.wrapper.shallow;\n        DefaultBuildSettings = {\n            UNLOCALIZED_RESOURCES_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)\";\n            GENERATE_PKGINFO_FILE = YES;\n            SHALLOW_BUNDLE = YES;\n        };\n        ProductReference = {\n            FileType = wrapper.application;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = YES;\n        };\n    },\n\n    /* Framework */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.wrapper.framework;\n        DefaultBuildSettings = {\n            WRAPPER_PREFIX = \"\";\n            WRAPPER_SUFFIX = \".framework\";\n            WRAPPER_NAME = \"$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)\";\n            VERSIONS_FOLDER_PATH = \"$(WRAPPER_NAME)/Versions\";\n            CONTENTS_FOLDER_PATH = \"$(VERSIONS_FOLDER_PATH)/$(FRAMEWORK_VERSION)\";\n            CURRENT_VERSION = \"Current\";\n            EXECUTABLE_PREFIX = \"\";\n            EXECUTABLE_SUFFIX = \"\";\n            EXECUTABLE_NAME = \"$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)\";\n            EXECUTABLE_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)\";\n            EXECUTABLE_PATH = \"$(EXECUTABLE_FOLDER_PATH)/$(EXECUTABLE_NAME)\";\n            INFOPLIST_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Info.plist\";\n            INFOPLISTSTRINGS_PATH = \"$(LOCALIZED_RESOURCES_FOLDER_PATH)/InfoPlist.strings\";\n            PKGINFO_PATH = \"$(WRAPPER_NAME)/PkgInfo\";\n            PBDEVELOPMENTPLIST_PATH = \"$(CONTENTS_FOLDER_PATH)/pbdevelopment.plist\";\n            VERSIONPLIST_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/version.plist\";\n            PUBLIC_HEADERS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/Headers\";\n            PRIVATE_HEADERS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/PrivateHeaders\";\n            EXECUTABLES_FOLDER_PATH = \"$(LOCALIZED_RESOURCES_FOLDER_PATH)\";\n            FRAMEWORKS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/Frameworks\";\n            SHARED_FRAMEWORKS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/SharedFrameworks\";\n            SHARED_SUPPORT_FOLDER_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)\";\n            UNLOCALIZED_RESOURCES_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/Resources\";\n            LOCALIZED_RESOURCES_FOLDER_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/$(DEVELOPMENT_LANGUAGE).lproj\";\n            DOCUMENTATION_FOLDER_PATH = \"$(LOCALIZED_RESOURCES_FOLDER_PATH)/Documentation\";\n            PLUGINS_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)/PlugIns\";\n            SCRIPTS_FOLDER_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Scripts\";\n            JAVA_FOLDER_PATH = \"$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/Java\";\n            CODESIGNING_FOLDER_PATH = \"$(TARGET_BUILD_DIR)/$(CONTENTS_FOLDER_PATH)\";\n        };\n        ProductReference = {\n            FileType = wrapper.framework;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* Static framework */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.wrapper.framework.static;\n        BasedOn = com.apple.package-type.wrapper.framework;\n        DefaultBuildSettings = {\n            EXECUTABLE_PREFIX = \"\";\n            EXECUTABLE_SUFFIX = \"\";\n            EXECUTABLE_NAME = \"$(EXECUTABLE_PREFIX)$(PRODUCT_NAME)$(EXECUTABLE_VARIANT_SUFFIX)$(EXECUTABLE_SUFFIX)\";\n        };\n        ProductReference = {\n            FileType = wrapper.framework.static;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* Shallow framework */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.wrapper.framework.shallow;\n        BasedOn = com.apple.package-type.wrapper.framework;\n        DefaultBuildSettings = {\n            CONTENTS_FOLDER_PATH = \"$(WRAPPER_NAME)\";\n            VERSIONS_FOLDER_PATH = \"$(WRAPPER_NAME)\";\n            UNLOCALIZED_RESOURCES_FOLDER_PATH = \"$(CONTENTS_FOLDER_PATH)\";\n            SHALLOW_BUNDLE = YES;\n        };\n        ProductReference = {\n            FileType = wrapper.framework;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* Unit Test */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.bundle.unit-test;\n        BasedOn = com.apple.package-type.wrapper;\n        DefaultBuildSettings = {\n            WRAPPER_SUFFIX = \"xctest\";\n        };\n        ProductReference = {\n            FileType = wrapper.cfbundle;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* XPC Service */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.xpc-service;\n        BasedOn = com.apple.package-type.wrapper;\n        DefaultBuildSettings = {\n            WRAPPER_SUFFIX = \".xpc\";\n        };\n        ProductReference = {\n            FileType = wrapper.xpc-service;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* PlugInKit Plugin */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.pluginkit-plugin;\n        BasedOn = com.apple.package-type.xpc-service;\n        DefaultBuildSettings = {\n            WRAPPER_SUFFIX = \".pluginkit\";\n        };\n        ProductReference = {\n            FileType = wrapper.app-extension;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n    },\n\n    /* Extension */\n    {   Type = PackageType;\n        Identifier = com.apple.package-type.app-extension;\n        BasedOn = com.apple.package-type.pluginkit-plugin;\n        DefaultBuildSettings = {\n            WRAPPER_SUFFIX = \".appex\";\n        };\n        ProductReference = {\n            FileType = wrapper.app-extension;\n            Name = \"$(WRAPPER_NAME)\";\n            IsLaunchable = NO;\n        };\n\n    },\n)\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/Library/Xcode/Specifications/MacOSX Product Types.xcspec",
    "content": "(\n\n\n    /* Command Line Tool */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.tool;\n        Class = PBXToolProductType;\n        IconNamePrefix = \"TargetExecutable\";\n        DefaultTargetName = \"Command-line Tool\";\n        DefaultBuildProperties = {\n            FULL_PRODUCT_NAME = \"$(EXECUTABLE_NAME)\";\n            MACH_O_TYPE = \"mh_execute\";\n            EXECUTABLE_PREFIX = \"\";\n            EXECUTABLE_SUFFIX = \"\";\n            REZ_EXECUTABLE = YES;\n            INSTALL_PATH = \"/usr/local/bin\";\n            FRAMEWORK_FLAG_PREFIX = \"-framework\";\n            LIBRARY_FLAG_PREFIX = \"-l\";\n            LIBRARY_FLAG_NOSPACE = YES;\n            GCC_DYNAMIC_NO_PIC = NO;\n            GCC_SYMBOLS_PRIVATE_EXTERN = YES;\n            GCC_INLINES_ARE_PRIVATE_EXTERN = YES;\n            STRIP_STYLE = \"all\";\n            CODE_SIGNING_ALLOWED = YES;\n        };\n        PackageTypes = (\n            com.apple.package-type.mach-o-executable\n        );\n    },\n\n    /* Dynamic Library (dylib) */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.library.dynamic;\n        Class = PBXDynamicLibraryProductType;\n        IconNamePrefix = \"TargetLibrary\";\n        DefaultTargetName = \"Dynamic Library\";\n        DefaultBuildProperties = {\n            FULL_PRODUCT_NAME = \"$(EXECUTABLE_NAME)\";\n            MACH_O_TYPE = \"mh_dylib\";\n            REZ_EXECUTABLE = YES;\n            EXECUTABLE_SUFFIX = \".$(EXECUTABLE_EXTENSION)\";\n            EXECUTABLE_EXTENSION = \"dylib\";\n            PUBLIC_HEADERS_FOLDER_PATH = \"/usr/local/include\";\n            PRIVATE_HEADERS_FOLDER_PATH = \"/usr/local/include\";\n            INSTALL_PATH = \"/usr/local/lib\";\n            DYLIB_INSTALL_NAME_BASE = \"$(INSTALL_PATH)\";\n            LD_DYLIB_INSTALL_NAME = \"$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)\";\n            DYLIB_COMPATIBILITY_VERSION = \"1\";\n            DYLIB_CURRENT_VERSION = \"1\";\n            FRAMEWORK_FLAG_PREFIX = \"-framework\";\n            LIBRARY_FLAG_PREFIX = \"-l\";\n            LIBRARY_FLAG_NOSPACE = YES;\n            STRIP_STYLE = \"debugging\";\n            GCC_INLINES_ARE_PRIVATE_EXTERN = YES;\n            CODE_SIGNING_ALLOWED = YES;\n            CODE_SIGNING_REQUIRED = NO;\n        };\n        PackageTypes = (\n            com.apple.package-type.mach-o-dylib\n        );\n    },\n\n    /* Static Library (.a) */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.library.static;\n        Class = PBXStaticLibraryProductType;\n        IconNamePrefix = \"TargetLibrary\";\n        DefaultTargetName = \"Static Library\";\n        DefaultBuildProperties = {\n            FULL_PRODUCT_NAME = \"$(EXECUTABLE_NAME)\";\n            MACH_O_TYPE = \"staticlib\";\n            REZ_EXECUTABLE = YES;\n            EXECUTABLE_PREFIX = \"lib\";\n            EXECUTABLE_SUFFIX = \".$(EXECUTABLE_EXTENSION)\";\n            EXECUTABLE_EXTENSION = \"a\";\n            PUBLIC_HEADERS_FOLDER_PATH = \"/usr/local/include\";\n            PRIVATE_HEADERS_FOLDER_PATH = \"/usr/local/include\";\n            INSTALL_PATH = \"/usr/local/lib\";\n            FRAMEWORK_FLAG_PREFIX = \"-framework\";\n            LIBRARY_FLAG_PREFIX = \"-l\";\n            LIBRARY_FLAG_NOSPACE = YES;\n            STRIP_STYLE = \"debugging\";\n            CLANG_ENABLE_MODULE_DEBUGGING = NO;\n        };\n        AlwaysPerformSeparateStrip = YES;\n        PackageTypes = (\n            com.apple.package-type.static-library\n        );\n    },\n\n    /* Object file */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.objfile;\n        Class = XCStandaloneExecutableProductType;\n        IconNamePrefix = \"TargetPlugin\";\n        DefaultTargetName = \"Object File\";\n        DefaultBuildProperties = {\n            FULL_PRODUCT_NAME = \"$(EXECUTABLE_NAME)\";\n            MACH_O_TYPE = \"mh_object\";\n            LINK_WITH_STANDARD_LIBRARIES = NO;\n            REZ_EXECUTABLE = YES;\n            EXECUTABLE_SUFFIX = \".$(EXECUTABLE_EXTENSION)\";\n            EXECUTABLE_EXTENSION = \"o\";\n            PUBLIC_HEADERS_FOLDER_PATH = \"/usr/local/include\";\n            PRIVATE_HEADERS_FOLDER_PATH = \"/usr/local/include\";\n            INSTALL_PATH = \"$(HOME)/Objects\";\n            FRAMEWORK_FLAG_PREFIX = \"-framework\";\n            LIBRARY_FLAG_PREFIX = \"-l\";\n            LIBRARY_FLAG_NOSPACE = YES;\n            SKIP_INSTALL = YES;\n            STRIP_STYLE = \"debugging\";\n            GCC_INLINES_ARE_PRIVATE_EXTERN = YES;\n            KEEP_PRIVATE_EXTERNS = YES;\n            DEAD_CODE_STRIPPING = NO;\n        };\n        PackageTypes = (\n            com.apple.package-type.mach-o-objfile\n        );\n    },\n\n    /* Bundle (.bundle) */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.bundle;\n        Class = PBXBundleProductType;\n        IconNamePrefix = \"TargetPlugin\";\n        DefaultTargetName = \"Bundle\";\n        DefaultBuildProperties = {\n            FULL_PRODUCT_NAME = \"$(WRAPPER_NAME)\";\n            MACH_O_TYPE = \"mh_bundle\";\n            WRAPPER_PREFIX = \"\";\n            WRAPPER_SUFFIX = \".$(WRAPPER_EXTENSION)\";\n            WRAPPER_EXTENSION = \"bundle\";\n            WRAPPER_NAME = \"$(WRAPPER_PREFIX)$(PRODUCT_NAME)$(WRAPPER_SUFFIX)\";\n            FRAMEWORK_FLAG_PREFIX = \"-framework\";\n            LIBRARY_FLAG_PREFIX = \"-l\";\n            LIBRARY_FLAG_NOSPACE = YES;\n            STRIP_STYLE = \"non-global\";\n            GCC_INLINES_ARE_PRIVATE_EXTERN = YES;\n            CODE_SIGNING_ALLOWED = YES;\n        };\n        PackageTypes = (\n            com.apple.package-type.wrapper,\n            com.apple.package-type.wrapper.shallow\n        );\n        IsWrapper = YES;\n        HasInfoPlist = YES;\n        HasInfoPlistStrings = YES;\n    },\n\n    /* Shallow Bundle (.bundle) */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.bundle.shallow;\n        BasedOn = com.apple.product-type.bundle;\n        Class = PBXBundleProductType;\n        PackageTypes = (\n            com.apple.package-type.wrapper.shallow\n        );\n    },\n\n    /* Application */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.application;\n        BasedOn = com.apple.product-type.bundle;\n        Class = PBXApplicationProductType;\n        IconNamePrefix = \"TargetApp\";\n        DefaultTargetName = \"Application\";\n        DefaultBuildProperties = {\n            MACH_O_TYPE = \"mh_execute\";\n            GCC_DYNAMIC_NO_PIC = NO;\n            GCC_SYMBOLS_PRIVATE_EXTERN = YES;\n            GCC_INLINES_ARE_PRIVATE_EXTERN = YES;\n            WRAPPER_SUFFIX = \".$(WRAPPER_EXTENSION)\";\n            WRAPPER_EXTENSION = \"app\";\n            INSTALL_PATH = \"$(LOCAL_APPS_DIR)\";\n            STRIP_STYLE = \"all\";\n            CODE_SIGNING_ALLOWED = YES;\n        };\n        PackageTypes = (\n            com.apple.package-type.wrapper.application\n        );\n        CanEmbedCompilerSanitizerLibraries = YES;\n        RunpathSearchPathForEmbeddedFrameworks = \"@executable_path/../Frameworks\";\n        ValidateEmbeddedBinaries = YES;\n        ProvisioningProfileSupported = YES;\n        ProvisioningProfileRequired = NO;\n    },\n\n    /* Shallow Application Product */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.application.shallow;\n        BasedOn = com.apple.product-type.application;\n        Class = PBXApplicationProductType;\n        PackageTypes = (\n            com.apple.package-type.wrapper.application.shallow\n        );\n    },\n\n    /* Framework */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.framework;\n        BasedOn = com.apple.product-type.bundle;\n        Class = PBXFrameworkProductType;\n        IconNamePrefix = \"TargetFramework\";\n        DefaultTargetName = \"Framework\";\n        DefaultBuildProperties = {\n            MACH_O_TYPE = \"mh_dylib\";\n            FRAMEWORK_VERSION = \"A\";\n            WRAPPER_SUFFIX = \".$(WRAPPER_EXTENSION)\";\n            WRAPPER_EXTENSION = \"framework\";\n            INSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n            DYLIB_INSTALL_NAME_BASE = \"$(INSTALL_PATH)\";\n            LD_DYLIB_INSTALL_NAME = \"$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(EXECUTABLE_PATH)\";\n            STRIP_STYLE = \"debugging\";\n            CODE_SIGNING_ALLOWED = YES;\n            CODE_SIGNING_REQUIRED = NO;\n            ENTITLEMENTS_REQUIRED = NO;\n            CODE_SIGNING_REQUIRES_TEAM = YES;\n        };\n        PackageTypes = (\n            com.apple.package-type.wrapper.framework\n        );\n    },\n\n    /* Shallow Framework */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.framework.shallow;\n        BasedOn = com.apple.product-type.framework;\n        Class = PBXFrameworkProductType;\n        PackageTypes = (\n            com.apple.package-type.wrapper.framework.shallow\n        );\n    },\n\n    /* Static Framework */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.framework.static;\n        BasedOn = com.apple.product-type.framework;\n        Class = XCStaticFrameworkProductType;\n        IconNamePrefix = \"TargetFramework\";\n        DefaultTargetName = \"Static Framework\";\n        DefaultBuildProperties = {\n            MACH_O_TYPE = \"staticlib\";\n            FRAMEWORK_VERSION = \"A\";\n            WRAPPER_SUFFIX = \".$(WRAPPER_EXTENSION)\";\n            WRAPPER_EXTENSION = \"framework\";\n            INSTALL_PATH = \"$(LOCAL_LIBRARY_DIR)/Frameworks\";\n            DYLIB_INSTALL_NAME_BASE = \"\";\n            LD_DYLIB_INSTALL_NAME = \"\";\n            GCC_INLINES_ARE_PRIVATE_EXTERN = NO;\n            CODE_SIGNING_ALLOWED = NO;\n        };\n        AlwaysPerformSeparateStrip = YES;\n        PackageTypes = (\n            com.apple.package-type.wrapper.framework.static\n        );\n    },\n\n    /* Unit Test */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.bundle.unit-test;\n        BasedOn = com.apple.product-type.bundle;\n        Class = PBXXCTestBundleProductType;\n        DefaultBuildProperties = {\n            WRAPPER_EXTENSION = \"xctest\";\n            PRODUCT_SPECIFIC_LDFLAGS = \"-framework XCTest\";\n            PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHS = \"$(TEST_FRAMEWORK_SEARCH_PATHS)\";\n            TEST_FRAMEWORK_SEARCH_PATHS = (\n                \"$(inherited)\",\n                \"$(PLATFORM_DIR)/Developer/Library/Frameworks\",\n            );\n        };\n        PackageTypes = (\n            com.apple.package-type.bundle.unit-test\n        );\n        CanEmbedCompilerSanitizerLibraries = YES;\n        IsUnitTest = YES;\n    },\n\n    /* UI Test */\n    {   Type = ProductType;\n        Identifier = com.apple.product-type.bundle.ui-testing;\n        BasedOn = com.apple.product-type.bundle.unit-test;\n        Class = PBXXCTestBundleProductType;\n        DefaultBuildProperties = {\n            WRAPPER_EXTENSION = \"xctest\";\n            USES_XCTRUNNER = \"YES\";\n            PRODUCT_SPECIFIC_LDFLAGS = \"-framework XCTest\";\n            PRODUCT_TYPE_FRAMEWORK_SEARCH_PATHS = \"$(TEST_FRAMEWORK_SEARCH_PATHS)\";\n            TEST_FRAMEWORK_SEARCH_PATHS = (\n                \"$(inherited)\",\n                \"$(PLATFORM_DIR)/Developer/Library/Frameworks\",\n            );\n        };\n        PackageTypes = (\n            com.apple.package-type.bundle.unit-test\n        );\n        ProvisioningProfileSupported = YES;\n        IsUITest = YES;\n    },\n\n    /* XPC Service */\n    {\n\t\tType = ProductType;\n\t\tIdentifier = \"com.apple.product-type.xpc-service\";\n\t\tBasedOn = \"com.apple.product-type.bundle\";\n\t\tClass = PBXBundleProductType;\n\t\tIconNamePrefix = XPCService;\n\t\tDefaultTargetName = \"XPC Service\";\n        CanEmbedCompilerSanitizerLibraries = YES;\n        \"DefaultBuildProperties\" = {\n            \"MACH_O_TYPE\" = \"mh_execute\";\n            WRAPPER_EXTENSION = \"xpc\";\n        };\n\t\tPackageTypes = (\n\t\t\t\"com.apple.package-type.xpc-service\",\n\t\t);\n\t},\n\n    /* PlugInKit Plugin */\n    {\n        Type = ProductType;\n        Identifier = \"com.apple.product-type.pluginkit-plugin\";\n        BasedOn = \"com.apple.product-type.xpc-service\";\n        Class = PBXBundleProductType;\n        IconNamePrefix = XPCService;\n        DefaultTargetName = \"PlugInKit PlugIn\";\n        \"DefaultBuildProperties\" = {\n            \"PRODUCT_SPECIFIC_LDFLAGS\" = \"$(SDKROOT)/System/Library/PrivateFrameworks/PlugInKit.framework/PlugInKit\";\n            WRAPPER_EXTENSION = \"pluginkit\";\n        };\n        PackageTypes = (\n            \"com.apple.package-type.pluginkit-plugin\",\n        );\n    },\n\n    /* App Extension */\n    {\n        Type = ProductType;\n        Identifier = \"com.apple.product-type.app-extension\";\n        BasedOn = \"com.apple.product-type.pluginkit-plugin\";\n        Class = PBXBundleProductType;\n        IconNamePrefix = AppExtension;\n        DefaultTargetName = \"App Extension\";\n        \"DefaultBuildProperties\" = {\n            \"CODE_SIGNING_ALLOWED\" = YES;\n            \"APPLICATION_EXTENSION_API_ONLY\" = YES;\n            \"PRODUCT_SPECIFIC_LDFLAGS\" = \"-e _NSExtensionMain\";\n            WRAPPER_EXTENSION = \"appex\";\n        };\n        PackageTypes = (\n            \"com.apple.package-type.app-extension\",\n        );\n        ProvisioningProfileSupported = YES;\n        ProvisioningProfileRequired = NO;\n    },\n)\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/SDKSettings.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CanonicalName</key>\n\t<string>macosx10.13</string>\n\t<key>CustomProperties</key>\n\t<dict>\n\t\t<key>KERNEL_EXTENSION_HEADER_SEARCH_PATHS</key>\n\t\t<string>$(KERNEL_FRAMEWORK)/PrivateHeaders $(KERNEL_FRAMEWORK_HEADERS)</string>\n\t</dict>\n\t<key>DefaultProperties</key>\n\t<dict>\n\t\t<key>MACOSX_DEPLOYMENT_TARGET</key>\n\t\t<string>10.13</string>\n\t\t<key>PLATFORM_NAME</key>\n\t\t<string>macosx</string>\n\t\t<key>DEFAULT_KEXT_INSTALL_PATH</key>\n\t\t<string>$(LIBRARY_KEXT_INSTALL_PATH)</string>\n\t\t<key>KASAN_DEFAULT_CFLAGS</key>\n\t\t<string>-DKASAN=1 -fsanitize=address -mllvm -asan-globals-live-support -mllvm -asan-force-dynamic-shadow</string>\n\t</dict>\n\t<key>DisplayName</key>\n\t<string>Darling 10.13</string>\n\t<key>MaximumDeploymentTarget</key>\n\t<string>10.13.99</string>\n\t<key>MinimalDisplayName</key>\n\t<string>10.13</string>\n\t<key>MinimumSupportedToolsVersion</key>\n\t<string>3.2</string>\n\t<key>SupportedBuildToolComponents</key>\n\t<array>\n\t\t<string>com.apple.compilers.gcc.headers.4_2</string>\n\t</array>\n\t<key>Version</key>\n\t<string>10.13</string>\n\t<key>IsBaseSDK</key>\n\t<string>YES</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/NSSystemDirectories.h",
    "content": "/*\n * Copyright (c) 1999-2000, 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n/*\n This API returns the various standard system directories where apps, resources, etc get installed.\n Because queries can return multiple directories, the API is in the form of an enumeration.\n The directories are returned in search path order; that is, the first place to look is returned first.\n This API may return directories that do not exist yet.\n If NSUserDomain is included in a query, then the results will contain \"~\" to refer to the user's directory.\n NEXT_ROOT is prepended as necessary to the returned values.\n Some calls might return no directories!\n The buffer that is passed in will be filled with a null-terminated string, possibly containing as many as PATH_MAX-1 characters.\n\n Typical usage:\n \n    #include <limits.h>\n    #include <NSSystemDirectories.h>\n\n    char path[PATH_MAX];\n    NSSearchPathEnumerationState state = NSStartSearchPathEnumeration(dir, domainMask);\n    while (state = NSGetNextSearchPathEnumeration(state, path)) {\n        // Handle path\n    }\n\n\n*/\n\n#ifndef __NS_SYSTEM_DIRECTORIES_H__\n#define __NS_SYSTEM_DIRECTORIES_H__\n\n#include <sys/cdefs.h>\n#include <Availability.h>\n\n// Directories\n\ntypedef enum {\n    NSApplicationDirectory = 1,             // supported applications (Applications)\n    NSDemoApplicationDirectory = 2,         // unsupported applications, demonstration versions (Applications/GrabBag)\n    NSDeveloperApplicationDirectory = 3,    // developer applications (Developer/Applications)\n    NSAdminApplicationDirectory = 4,        // system and network administration applications (Applications/Utilities)\n    NSLibraryDirectory = 5,                 // various user-visible documentation, support, and configuration files, resources (Library)\n    NSDeveloperDirectory = 6,               // developer resources (Developer)\n    NSUserDirectory = 7,                    // user home directories (Users)\n    NSDocumentationDirectory = 8,           // documentation (Library/Documentation)\n    NSDocumentDirectory = 9,                // documents (Documents)\n    NSCoreServiceDirectory = 10,            // location of core services (System/Library/CoreServices)\n    NSAutosavedInformationDirectory = 11,   // location of user's directory for use with autosaving (Library/Autosave Information)\n    NSDesktopDirectory = 12,                // location of user's Desktop (Desktop)\n    NSCachesDirectory = 13,                 // location of discardable cache files (Library/Caches)\n    NSApplicationSupportDirectory = 14,     // location of application support files (plug-ins, etc) (Library/Application Support)\n    NSDownloadsDirectory = 15,              // location of user's Downloads directory (Downloads)\n    NSInputMethodsDirectory = 16,           // input methods (Library/Input Methods)\n    NSMoviesDirectory = 17,                 // location of user's Movies directory (~/Movies)\n    NSMusicDirectory = 18,                  // location of user's Music directory (~/Music)\n    NSPicturesDirectory = 19,               // location of user's Pictures directory (~/Pictures)\n    NSPrinterDescriptionDirectory = 20,     // location of system's PPDs directory (Library/Printers/PPDs)\n    NSSharedPublicDirectory = 21,           // location of user's Public sharing directory (~/Public)\n    NSPreferencePanesDirectory = 22,        // location of the PreferencePanes directory for use with System Preferences (Library/PreferencePanes)\n    NSAllApplicationsDirectory = 100,       // all directories where applications can occur (Applications, Applications/Utilities, Developer/Applications, ...)\n    NSAllLibrariesDirectory = 101           // all directories where resources can occur (Library, Developer)\n} NSSearchPathDirectory;\n\n// Domains\n\ntypedef enum {\n   NSUserDomainMask = 1,\t// user's home directory --- place to install user's personal items (~)\n   NSLocalDomainMask = 2,\t// local to the current machine --- place to install items available to everyone on this machine\n   NSNetworkDomainMask = 4, \t// publically available location in the local area network --- place to install items available on the network (/Network)\n   NSSystemDomainMask = 8,\t// provided by Apple\n   NSAllDomainsMask = 0x0ffff\t// all domains: all of the above and more, future items\n} NSSearchPathDomainMask;\n\ntypedef unsigned int NSSearchPathEnumerationState;\n\n__BEGIN_DECLS\n\n/*!\n * @function NSStartSearchPathEnumeration\n *\n * @discussion\n * Call this function to begin enumeration of the filesystem paths for the\n * specified directory in the desired domains. The return value should be\n * passed to one or more calls to NSGetNextSearchPathEnumeration() to obtain\n * the filesystem path and continue the enumeration.\n *\n * @param dir\n * The special directory to enumerate.\n *\n * @param domainMask\n * The domains in which the special directory should be enumerated.\n *\n * @return\n * An enumeration state value to pass to NSGetNextSearchPathEnumeration().\n */\n__OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_2_0)\nextern NSSearchPathEnumerationState\nNSStartSearchPathEnumeration(NSSearchPathDirectory dir,\n\t\t\t     NSSearchPathDomainMask domainMask);\n\n/*!\n * @function NSGetNextSearchPathEnumeration\n *\n * @discussion\n * Returns the filesystem path for a special directory in the domain(s)\n * specified by the state value returned by NSStartSearchPathEnumeration().\n * Subsequent calls to NSGetNextSearchPathEnumeration() should pass the state\n * value returned by the previous call to continue the enumeration in each\n * domain. A state value of zero will be returned when all domains have been\n * enumerated.\n *\n * @param state\n * The state value returned by NSStartSearchPathEnumeration() or by a previous\n * call to this function.\n *\n * @param path\n * A buffer to which the NUL-terminated filesystem path of the special\n * directory will be written. The buffer size must be at least PATH_MAX bytes.\n *\n * @return\n * An enumeration state value to pass to a subsequent call to\n * NSGetNextSearchPathEnumeration(), or zero if enumeration is complete.\n */\n__OSX_AVAILABLE_STARTING(__MAC_10_0,__IPHONE_2_0)\nextern NSSearchPathEnumerationState\nNSGetNextSearchPathEnumeration(NSSearchPathEnumerationState state, char *path);\n\n__END_DECLS\n\n#endif /* __NS_SYSTEM_DIRECTORIES_H__ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/bsm/audit_session.h",
    "content": "/*-\n * Copyright (c) 2009 Apple Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1.  Redistributions of source code must retain the above copyright\n *     notice, this list of conditions and the following disclaimer.\n * 2.  Redistributions in binary form must reproduce the above copyright\n *     notice, this list of conditions and the following disclaimer in the\n *     documentation and/or other materials provided with the distribution.\n * 3.  Neither the name of Apple Inc. (\"Apple\") nor the names of\n *     its contributors may be used to endorse or promote products derived\n *     from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS \"AS IS\" AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\n * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING\n * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\n * POSSIBILITY OF SUCH DAMAGE.\n *\n * $P4: //depot/projects/trustedbsd/openbsm/bsm/auditd_lib.h#4 $\n */\n\n#ifndef _BSM_AUDIT_SESSION_H_\n#define\t_BSM_AUDIT_SESSION_H_\n\n#include <inttypes.h>\t\t/* Required for audit.h. */\n#include <stdio.h>\t\t/* Required for FILE. */\n\n#include <bsm/audit.h>\n#include <bsm/audit_kevents.h>\t/* Required for AUE_SESSION_* event def's. */\n\n#include <os/availability.h>\n\n/* Defined audit session flags for the ai_flags member of auditinfo_addr.\n * These are opaque to XNU itself, although some may be of interest to certain\n * kernel extensions, notably AU_SESSION_FLAG_HAS_CONSOLE_ACCESS.\n */\nenum audit_session_flags {\n        /* The initial session created by PID 1. */\n        AU_SESSION_FLAG_IS_INITIAL         = 0x0001,\n\n        /* The graphics subsystem (CoreGraphics, etc.) is available. */\n        AU_SESSION_FLAG_HAS_GRAPHIC_ACCESS = 0x0010,\n\n        /* /dev/tty is available. */\n        AU_SESSION_FLAG_HAS_TTY            = 0x0020,\n\n        /* The session was created for a remote connection. */\n        AU_SESSION_FLAG_IS_REMOTE          = 0x1000,\n\n        /* The console and associated devices are available. */\n        AU_SESSION_FLAG_HAS_CONSOLE_ACCESS = 0x2000,\n\n        /* An active, authenticated user is associated with the session. */\n        AU_SESSION_FLAG_HAS_AUTHENTICATED =  0x4000,\n};\n\n/*\n * Audit session device.\n */\n\n#define\tAUDIT_SDEV_PATH\t\t\"/dev/auditsessions\"\n\n/*\n * au_sdev_open() flags\n */\nenum au_sdev_open_flags {\n\t/* Set audit session device to not to block on reads. */\n\tAU_SDEVF_NONBLOCK\t\t= 0x00000001,\n\n\n\t/* Allow process to monitor all session. (Requires privilege.) */\n\tAU_SDEVF_ALLSESSIONS\t\t= 0x00010000,\n};\n\n__BEGIN_DECLS\n/*\n * Audit session device handle.\n */\ntypedef struct au_sdev_handle {\n\tFILE\t\t*ash_fp;\n\tu_char\t\t*ash_buf;\n\tint\t\t ash_reclen;\n\tint\t\t ash_bytesread;\n} au_sdev_handle_t;\n\n/*\n * au_sdev_open()\n *\n * @summary - Open the audit session pseudo device.\n *\n * @param flags - Flags that change the behavior of the device.  The flags\n * specified are formed by or'ing the following flag: AU_SDEVF_NONBLOCK for\n * non-blocking I/O and AU_SDEF_ALLSESSIONS for monitoring all the sessions\n * and not just the session of the current process.\n *\n * @return Upon success returns the audit session device handle.  Otherwise,\n * NULL is returned and the errno is set to indicate the error.\n */\nau_sdev_handle_t *au_sdev_open(int flags)\n\tAPI_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, watchos, tvos);\n\n/*\n * au_sdev_close()\n *\n * @summary - Close the audit session pseudo device.\n *\n * @param ash - Audit session device handle.\n *\n * @return Upon successful completion 0 is returned.  Otherwise, errno is set\n * to indicate the error.\n */\nint au_sdev_close(au_sdev_handle_t *ash)\n\tAPI_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, watchos, tvos);\n\n/*\n * au_sdev_fd()\n *\n * @summary - Get the file descriptor for the audit session device.\n *\n * @param ash - Audit session device handle.\n *\n * @return File descriptor of the audit session device.\n */\nint au_sdev_fd(au_sdev_handle_t *ash)\n\tAPI_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, watchos, tvos);\n\n/*\n * au_sdev_read_aia()\n *\n * @summary - Read a session event and an auditinfo_addr record from kernel.\n *\n * @param ash - Audit session device handle.\n *\n * @param event - A pointer to an integer that will contain the event type:\n * AUE_SESSION_START (start of a new session), AUE_SESSION_UPDATE (the \n * session information has been changed), AUE_SESSION_END (all the processes in\n * the session have exited), and AUE_SESSION_CLOSE (the session record has been\n * removed from the kernel).\n *\n * @param aia_p - A pointer to an auditinfo_addr structure that will contain the\n * audit session information on a successful return. The audit masks fields\n * (ai_mask), however, does not currently contain correct informaiton.\n *\n * @return Upon sucessful completetion 0 is returned and the event and aia_p \n * parameters will be populated.  Otherwise, errno is set to indicate the error.\n */\nint au_sdev_read_aia(au_sdev_handle_t *ash, int *event, auditinfo_addr_t *aia_p)\n\tAPI_AVAILABLE(macos(10.8)) API_UNAVAILABLE(ios, watchos, tvos);\n\n__END_DECLS\n\n#endif /* !_BSM_AUDIT_SESSION_H_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/float.h",
    "content": "/* Copyright (c) 2017 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n *\n * The contents of this file constitute Original Code as defined in and\n * are subject to the Apple Public Source License Version 1.1 (the\n * \"License\").  You may not use this file except in compliance with the\n * License.  Please obtain a copy of the License at\n * http://www.apple.com/publicsource and read it before using this file.\n *\n * This Original Code and all software distributed under the License are\n * distributed on an \"AS IS\" basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the\n * License for the specific language governing rights and limitations\n * under the License.\n *\n * @APPLE_LICENSE_HEADER_END@\n */\n\n#ifndef __FLOAT_H\n#define __FLOAT_H\n\n/* Undefine anything that we'll be redefining below. */\n#undef FLT_EVAL_METHOD\n#undef FLT_ROUNDS\n#undef FLT_RADIX\n#undef FLT_MANT_DIG\n#undef DBL_MANT_DIG\n#undef LDBL_MANT_DIG\n#undef FLT_DIG\n#undef DBL_DIG\n#undef LDBL_DIG\n#undef FLT_MIN_EXP\n#undef DBL_MIN_EXP\n#undef LDBL_MIN_EXP\n#undef FLT_MIN_10_EXP\n#undef DBL_MIN_10_EXP\n#undef LDBL_MIN_10_EXP\n#undef FLT_MAX_EXP\n#undef DBL_MAX_EXP\n#undef LDBL_MAX_EXP\n#undef FLT_MAX_10_EXP\n#undef DBL_MAX_10_EXP\n#undef LDBL_MAX_10_EXP\n#undef FLT_MAX\n#undef DBL_MAX\n#undef LDBL_MAX\n#undef FLT_EPSILON\n#undef DBL_EPSILON\n#undef LDBL_EPSILON\n#undef FLT_MIN\n#undef DBL_MIN\n#undef LDBL_MIN\n\n#if __STDC_VERSION__ >= 199901L || !defined(__STRICT_ANSI__)\n#  undef DECIMAL_DIG\n#endif\n\n#if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)\n#  undef FLT_HAS_SUBNORM\n#  undef DBL_HAS_SUBNORM\n#  undef LDBL_HAS_SUBNORM\n#  undef FLT_TRUE_MIN\n#  undef DBL_TRUE_MIN\n#  undef LDBL_TRUE_MIN\n#  undef FLT_DECIMAL_DIG\n#  undef DBL_DECIMAL_DIG\n#  undef LDBL_DECIMAL_DIG\n#endif\n\n/* Characteristics of floating point types, C99 5.2.4.2.2 */\n\n#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__\n#define FLT_ROUNDS (__builtin_flt_rounds())\n#define FLT_RADIX __FLT_RADIX__\n\n#define FLT_MANT_DIG __FLT_MANT_DIG__\n#define DBL_MANT_DIG __DBL_MANT_DIG__\n#define LDBL_MANT_DIG __LDBL_MANT_DIG__\n\n#define FLT_DIG __FLT_DIG__\n#define DBL_DIG __DBL_DIG__\n#define LDBL_DIG __LDBL_DIG__\n\n#define FLT_MIN_EXP __FLT_MIN_EXP__\n#define DBL_MIN_EXP __DBL_MIN_EXP__\n#define LDBL_MIN_EXP __LDBL_MIN_EXP__\n\n#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__\n#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__\n#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__\n\n#define FLT_MAX_EXP __FLT_MAX_EXP__\n#define DBL_MAX_EXP __DBL_MAX_EXP__\n#define LDBL_MAX_EXP __LDBL_MAX_EXP__\n\n#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__\n#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__\n#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__\n\n#define FLT_MAX __FLT_MAX__\n#define DBL_MAX __DBL_MAX__\n#define LDBL_MAX __LDBL_MAX__\n\n#define FLT_EPSILON __FLT_EPSILON__\n#define DBL_EPSILON __DBL_EPSILON__\n#define LDBL_EPSILON __LDBL_EPSILON__\n\n#define FLT_MIN __FLT_MIN__\n#define DBL_MIN __DBL_MIN__\n#define LDBL_MIN __LDBL_MIN__\n\n#if __STDC_VERSION__ >= 199901L || !defined(__STRICT_ANSI__)\n#  define DECIMAL_DIG __DECIMAL_DIG__\n#endif\n\n#if __STDC_VERSION__ >= 201112L || !defined(__STRICT_ANSI__)\n#  if defined __arm__ /*  On 32-bit arm, denorms are not supported.           */\n#    define FLT_HAS_SUBNORM 0\n#    define DBL_HAS_SUBNORM 0\n#    define LDBL_HAS_SUBNORM 0\n#    define FLT_TRUE_MIN __FLT_MIN__\n#    define DBL_TRUE_MIN __DBL_MIN__\n#    define LDBL_TRUE_MIN __LDBL_MIN__\n#  else /* All Apple platforms except 32-bit arm have denorms.                */\n#    define FLT_HAS_SUBNORM 1\n#    define DBL_HAS_SUBNORM 1\n#    define LDBL_HAS_SUBNORM 1\n#    define FLT_TRUE_MIN __FLT_DENORM_MIN__\n#    define DBL_TRUE_MIN __DBL_DENORM_MIN__\n#    define LDBL_TRUE_MIN __LDBL_DENORM_MIN__\n#  endif\n#  define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__\n#  define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__\n#  define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__\n#endif\n\n#endif /* __FLOAT_H */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/libkern/OSCrossEndian.h",
    "content": "/*\n * Copyright (c) 2000-2006 Apple Computer, Inc. All rights reserved.\n *\n * @APPLE_OSREFERENCE_LICENSE_HEADER_START@\n *\n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. The rights granted to you under the License\n * may not be used to create, or enable the creation or redistribution of,\n * unlawful or unlicensed copies of an Apple operating system, or to\n * circumvent, violate, or enable the circumvention or violation of, any\n * terms of an Apple operating system software license agreement.\n *\n * Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this file.\n *\n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n *\n * @APPLE_OSREFERENCE_LICENSE_HEADER_END@\n */\n\n/*\n * This private header exports 3 APIs.\n *\t_OSRosettaCheck() -     An inline function that returns true if we are\n *\t\t\t\tcurrently running under Rosetta.\n *\tIF_ROSETTA() -\t\tWhich is used to as a regular conditional\n *\t\t\t\texpression that is true only if the current\n *\t\t\t\tcode is executing in the Rosetta\n *\t\t\t\ttranslation space.\n *\tROSETTA_ONLY(exprs) -   Which is used to create a block code that only\n *\t\t\t\texecutes if we are running in Rosetta.\n *\n * for example\n *\n * IF_ROSETTA() {\n *\t// Do Cross endian swapping of input data\n *\toutdata = OSSwap??(indata);\n * }\n * else {\n *      // Do straight through\n *\toutdata = indata;\n * }\n *\n * outdata = indata;\n * ROSETTA_ONLY(\n *\t// Do Cross endian swapping of input data\n *\toutdata = OSSwap??(outdata);\n * );\n */\n\n#ifndef _LIBKERN_OSCROSSENDIAN_H\n#define _LIBKERN_OSCROSSENDIAN_H\n\n#include <sys/sysctl.h>\n\nstatic __inline__ int\n_OSRosettaCheck(void)\n{\n\treturn 0;\n}\n\n#define IF_ROSETTA() if (__builtin_expect(_OSRosettaCheck(), 0) )\n\n#define ROSETTA_ONLY(exprs)     \\\ndo {                            \\\n    IF_ROSETTA() {              \\\n\texprs                   \\\n    }                           \\\n} while(0)\n\n#endif /*  _LIBKERN_OSCROSSENDIAN_H */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/clock.h",
    "content": "#ifndef\t_clock_user_\n#define\t_clock_user_\n\n/* Module clock */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tclock_MSG_COUNT\n#define\tclock_MSG_COUNT\t3\n#endif\t/* clock_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine clock_get_time */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t clock_get_time\n(\n\tclock_serv_t clock_serv,\n\tmach_timespec_t *cur_time\n);\n\n/* Routine clock_get_attributes */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t clock_get_attributes\n(\n\tclock_serv_t clock_serv,\n\tclock_flavor_t flavor,\n\tclock_attr_t clock_attr,\n\tmach_msg_type_number_t *clock_attrCnt\n);\n\n/* Routine clock_alarm */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t clock_alarm\n(\n\tclock_serv_t clock_serv,\n\talarm_type_t alarm_type,\n\tmach_timespec_t alarm_time,\n\tclock_reply_t alarm_port\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__clock_subsystem__defined\n#define __Request__clock_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__clock_get_time_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tclock_flavor_t flavor;\n\t\tmach_msg_type_number_t clock_attrCnt;\n\t} __Request__clock_get_attributes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t alarm_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\talarm_type_t alarm_type;\n\t\tmach_timespec_t alarm_time;\n\t} __Request__clock_alarm_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__clock_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__clock_subsystem__defined\n#define __RequestUnion__clock_subsystem__defined\nunion __RequestUnion__clock_subsystem {\n\t__Request__clock_get_time_t Request_clock_get_time;\n\t__Request__clock_get_attributes_t Request_clock_get_attributes;\n\t__Request__clock_alarm_t Request_clock_alarm;\n};\n#endif /* !__RequestUnion__clock_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__clock_subsystem__defined\n#define __Reply__clock_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_timespec_t cur_time;\n\t} __Reply__clock_get_time_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t clock_attrCnt;\n\t\tint clock_attr[1];\n\t} __Reply__clock_get_attributes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__clock_alarm_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__clock_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__clock_subsystem__defined\n#define __ReplyUnion__clock_subsystem__defined\nunion __ReplyUnion__clock_subsystem {\n\t__Reply__clock_get_time_t Reply_clock_get_time;\n\t__Reply__clock_get_attributes_t Reply_clock_get_attributes;\n\t__Reply__clock_alarm_t Reply_clock_alarm;\n};\n#endif /* !__RequestUnion__clock_subsystem__defined */\n\n#ifndef subsystem_to_name_map_clock\n#define subsystem_to_name_map_clock \\\n    { \"clock_get_time\", 1000 },\\\n    { \"clock_get_attributes\", 1001 },\\\n    { \"clock_alarm\", 1002 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _clock_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/clock_priv.h",
    "content": "#ifndef\t_clock_priv_user_\n#define\t_clock_priv_user_\n\n/* Module clock_priv */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tclock_priv_MSG_COUNT\n#define\tclock_priv_MSG_COUNT\t2\n#endif\t/* clock_priv_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine clock_set_time */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t clock_set_time\n(\n\tclock_ctrl_t clock_ctrl,\n\tmach_timespec_t new_time\n);\n\n/* Routine clock_set_attributes */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t clock_set_attributes\n(\n\tclock_ctrl_t clock_ctrl,\n\tclock_flavor_t flavor,\n\tclock_attr_t clock_attr,\n\tmach_msg_type_number_t clock_attrCnt\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__clock_priv_subsystem__defined\n#define __Request__clock_priv_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_timespec_t new_time;\n\t} __Request__clock_set_time_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tclock_flavor_t flavor;\n\t\tmach_msg_type_number_t clock_attrCnt;\n\t\tint clock_attr[1];\n\t} __Request__clock_set_attributes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__clock_priv_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__clock_priv_subsystem__defined\n#define __RequestUnion__clock_priv_subsystem__defined\nunion __RequestUnion__clock_priv_subsystem {\n\t__Request__clock_set_time_t Request_clock_set_time;\n\t__Request__clock_set_attributes_t Request_clock_set_attributes;\n};\n#endif /* !__RequestUnion__clock_priv_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__clock_priv_subsystem__defined\n#define __Reply__clock_priv_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__clock_set_time_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__clock_set_attributes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__clock_priv_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__clock_priv_subsystem__defined\n#define __ReplyUnion__clock_priv_subsystem__defined\nunion __ReplyUnion__clock_priv_subsystem {\n\t__Reply__clock_set_time_t Reply_clock_set_time;\n\t__Reply__clock_set_attributes_t Reply_clock_set_attributes;\n};\n#endif /* !__RequestUnion__clock_priv_subsystem__defined */\n\n#ifndef subsystem_to_name_map_clock_priv\n#define subsystem_to_name_map_clock_priv \\\n    { \"clock_set_time\", 1200 },\\\n    { \"clock_set_attributes\", 1201 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _clock_priv_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/clock_reply.h",
    "content": "#ifndef\t_clock_reply_user_\n#define\t_clock_reply_user_\n\n/* Module clock_reply */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tclock_reply_MSG_COUNT\n#define\tclock_reply_MSG_COUNT\t1\n#endif\t/* clock_reply_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* SimpleRoutine clock_alarm_reply */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t clock_alarm_reply\n(\n\tclock_reply_t alarm_port,\n\tmach_msg_type_name_t alarm_portPoly,\n\tkern_return_t alarm_code,\n\talarm_type_t alarm_type,\n\tmach_timespec_t alarm_time\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__clock_reply_subsystem__defined\n#define __Request__clock_reply_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t alarm_code;\n\t\talarm_type_t alarm_type;\n\t\tmach_timespec_t alarm_time;\n\t} __Request__clock_alarm_reply_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__clock_reply_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__clock_reply_subsystem__defined\n#define __RequestUnion__clock_reply_subsystem__defined\nunion __RequestUnion__clock_reply_subsystem {\n\t__Request__clock_alarm_reply_t Request_clock_alarm_reply;\n};\n#endif /* !__RequestUnion__clock_reply_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__clock_reply_subsystem__defined\n#define __Reply__clock_reply_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__clock_alarm_reply_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__clock_reply_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__clock_reply_subsystem__defined\n#define __ReplyUnion__clock_reply_subsystem__defined\nunion __ReplyUnion__clock_reply_subsystem {\n\t__Reply__clock_alarm_reply_t Reply_clock_alarm_reply;\n};\n#endif /* !__RequestUnion__clock_reply_subsystem__defined */\n\n#ifndef subsystem_to_name_map_clock_reply\n#define subsystem_to_name_map_clock_reply \\\n    { \"clock_alarm_reply\", 3125107 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _clock_reply_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/exc.h",
    "content": "#ifndef\t_exc_user_\n#define\t_exc_user_\n\n/* Module exc */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\texc_MSG_COUNT\n#define\texc_MSG_COUNT\t3\n#endif\t/* exc_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine exception_raise */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t exception_raise\n(\n\tmach_port_t exception_port,\n\tmach_port_t thread,\n\tmach_port_t task,\n\texception_type_t exception,\n\texception_data_t code,\n\tmach_msg_type_number_t codeCnt\n);\n\n/* Routine exception_raise_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t exception_raise_state\n(\n\tmach_port_t exception_port,\n\texception_type_t exception,\n\tconst exception_data_t code,\n\tmach_msg_type_number_t codeCnt,\n\tint *flavor,\n\tconst thread_state_t old_state,\n\tmach_msg_type_number_t old_stateCnt,\n\tthread_state_t new_state,\n\tmach_msg_type_number_t *new_stateCnt\n);\n\n/* Routine exception_raise_state_identity */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t exception_raise_state_identity\n(\n\tmach_port_t exception_port,\n\tmach_port_t thread,\n\tmach_port_t task,\n\texception_type_t exception,\n\texception_data_t code,\n\tmach_msg_type_number_t codeCnt,\n\tint *flavor,\n\tthread_state_t old_state,\n\tmach_msg_type_number_t old_stateCnt,\n\tthread_state_t new_state,\n\tmach_msg_type_number_t *new_stateCnt\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__exc_subsystem__defined\n#define __Request__exc_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t thread;\n\t\tmach_msg_port_descriptor_t task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\texception_type_t exception;\n\t\tmach_msg_type_number_t codeCnt;\n\t\tinteger_t code[2];\n\t} __Request__exception_raise_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\texception_type_t exception;\n\t\tmach_msg_type_number_t codeCnt;\n\t\tinteger_t code[2];\n\t\tint flavor;\n\t\tmach_msg_type_number_t old_stateCnt;\n\t\tnatural_t old_state[614];\n\t} __Request__exception_raise_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t thread;\n\t\tmach_msg_port_descriptor_t task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\texception_type_t exception;\n\t\tmach_msg_type_number_t codeCnt;\n\t\tinteger_t code[2];\n\t\tint flavor;\n\t\tmach_msg_type_number_t old_stateCnt;\n\t\tnatural_t old_state[614];\n\t} __Request__exception_raise_state_identity_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__exc_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__exc_subsystem__defined\n#define __RequestUnion__exc_subsystem__defined\nunion __RequestUnion__exc_subsystem {\n\t__Request__exception_raise_t Request_exception_raise;\n\t__Request__exception_raise_state_t Request_exception_raise_state;\n\t__Request__exception_raise_state_identity_t Request_exception_raise_state_identity;\n};\n#endif /* !__RequestUnion__exc_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__exc_subsystem__defined\n#define __Reply__exc_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__exception_raise_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tint flavor;\n\t\tmach_msg_type_number_t new_stateCnt;\n\t\tnatural_t new_state[614];\n\t} __Reply__exception_raise_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tint flavor;\n\t\tmach_msg_type_number_t new_stateCnt;\n\t\tnatural_t new_state[614];\n\t} __Reply__exception_raise_state_identity_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__exc_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__exc_subsystem__defined\n#define __ReplyUnion__exc_subsystem__defined\nunion __ReplyUnion__exc_subsystem {\n\t__Reply__exception_raise_t Reply_exception_raise;\n\t__Reply__exception_raise_state_t Reply_exception_raise_state;\n\t__Reply__exception_raise_state_identity_t Reply_exception_raise_state_identity;\n};\n#endif /* !__RequestUnion__exc_subsystem__defined */\n\n#ifndef subsystem_to_name_map_exc\n#define subsystem_to_name_map_exc \\\n    { \"exception_raise\", 2401 },\\\n    { \"exception_raise_state\", 2402 },\\\n    { \"exception_raise_state_identity\", 2403 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _exc_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/host_priv.h",
    "content": "#ifndef\t_host_priv_user_\n#define\t_host_priv_user_\n\n/* Module host_priv */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\thost_priv_MSG_COUNT\n#define\thost_priv_MSG_COUNT\t26\n#endif\t/* host_priv_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach/mach_types.h>\n#include <mach_debug/mach_debug_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine host_get_boot_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_boot_info\n(\n\thost_priv_t host_priv,\n\tkernel_boot_info_t boot_info\n);\n\n/* Routine host_reboot */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_reboot\n(\n\thost_priv_t host_priv,\n\tint options\n);\n\n/* Routine host_priv_statistics */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_priv_statistics\n(\n\thost_priv_t host_priv,\n\thost_flavor_t flavor,\n\thost_info_t host_info_out,\n\tmach_msg_type_number_t *host_info_outCnt\n);\n\n/* Routine host_default_memory_manager */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_default_memory_manager\n(\n\thost_priv_t host_priv,\n\tmemory_object_default_t *default_manager,\n\tmemory_object_cluster_size_t cluster_size\n);\n\n/* Routine vm_wire */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_wire\n(\n\thost_priv_t host_priv,\n\tvm_map_t task,\n\tvm_address_t address,\n\tvm_size_t size,\n\tvm_prot_t desired_access\n);\n\n/* Routine thread_wire */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_wire\n(\n\thost_priv_t host_priv,\n\tthread_act_t thread,\n\tboolean_t wired\n);\n\n/* Routine vm_allocate_cpm */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_allocate_cpm\n(\n\thost_priv_t host_priv,\n\tvm_map_t task,\n\tvm_address_t *address,\n\tvm_size_t size,\n\tint flags\n);\n\n/* Routine host_processors */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_processors\n(\n\thost_priv_t host_priv,\n\tprocessor_array_t *out_processor_list,\n\tmach_msg_type_number_t *out_processor_listCnt\n);\n\n/* Routine host_get_clock_control */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_clock_control\n(\n\thost_priv_t host_priv,\n\tclock_id_t clock_id,\n\tclock_ctrl_t *clock_ctrl\n);\n\n/* Routine kmod_create */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t kmod_create\n(\n\thost_priv_t host_priv,\n\tvm_address_t info,\n\tkmod_t *module\n);\n\n/* Routine kmod_destroy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t kmod_destroy\n(\n\thost_priv_t host_priv,\n\tkmod_t module\n);\n\n/* Routine kmod_control */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t kmod_control\n(\n\thost_priv_t host_priv,\n\tkmod_t module,\n\tkmod_control_flavor_t flavor,\n\tkmod_args_t *data,\n\tmach_msg_type_number_t *dataCnt\n);\n\n/* Routine host_get_special_port */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_special_port\n(\n\thost_priv_t host_priv,\n\tint node,\n\tint which,\n\tmach_port_t *port\n);\n\n/* Routine host_set_special_port */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_set_special_port\n(\n\thost_priv_t host_priv,\n\tint which,\n\tmach_port_t port\n);\n\n/* Routine host_set_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_set_exception_ports\n(\n\thost_priv_t host_priv,\n\texception_mask_t exception_mask,\n\tmach_port_t new_port,\n\texception_behavior_t behavior,\n\tthread_state_flavor_t new_flavor\n);\n\n/* Routine host_get_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_exception_ports\n(\n\thost_priv_t host_priv,\n\texception_mask_t exception_mask,\n\texception_mask_array_t masks,\n\tmach_msg_type_number_t *masksCnt,\n\texception_handler_array_t old_handlers,\n\texception_behavior_array_t old_behaviors,\n\texception_flavor_array_t old_flavors\n);\n\n/* Routine host_swap_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_swap_exception_ports\n(\n\thost_priv_t host_priv,\n\texception_mask_t exception_mask,\n\tmach_port_t new_port,\n\texception_behavior_t behavior,\n\tthread_state_flavor_t new_flavor,\n\texception_mask_array_t masks,\n\tmach_msg_type_number_t *masksCnt,\n\texception_handler_array_t old_handlerss,\n\texception_behavior_array_t old_behaviors,\n\texception_flavor_array_t old_flavors\n);\n\n/* Routine mach_vm_wire */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_wire\n(\n\thost_priv_t host_priv,\n\tvm_map_t task,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size,\n\tvm_prot_t desired_access\n);\n\n/* Routine host_processor_sets */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_processor_sets\n(\n\thost_priv_t host_priv,\n\tprocessor_set_name_array_t *processor_sets,\n\tmach_msg_type_number_t *processor_setsCnt\n);\n\n/* Routine host_processor_set_priv */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_processor_set_priv\n(\n\thost_priv_t host_priv,\n\tprocessor_set_name_t set_name,\n\tprocessor_set_t *set\n);\n\n/* Routine host_set_UNDServer */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_set_UNDServer\n(\n\thost_priv_t host,\n\tUNDServerRef server\n);\n\n/* Routine host_get_UNDServer */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_UNDServer\n(\n\thost_priv_t host,\n\tUNDServerRef *server\n);\n\n/* Routine kext_request */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t kext_request\n(\n\thost_priv_t host_priv,\n\tuint32_t user_log_flags,\n\tvm_offset_t request_data,\n\tmach_msg_type_number_t request_dataCnt,\n\tvm_offset_t *response_data,\n\tmach_msg_type_number_t *response_dataCnt,\n\tvm_offset_t *log_data,\n\tmach_msg_type_number_t *log_dataCnt,\n\tkern_return_t *op_result\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__host_priv_subsystem__defined\n#define __Request__host_priv_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_get_boot_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint options;\n\t} __Request__host_reboot_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\thost_flavor_t flavor;\n\t\tmach_msg_type_number_t host_info_outCnt;\n\t} __Request__host_priv_statistics_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t default_manager;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmemory_object_cluster_size_t cluster_size;\n\t} __Request__host_default_memory_manager_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tvm_prot_t desired_access;\n\t} __Request__vm_wire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t thread;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tboolean_t wired;\n\t} __Request__thread_wire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tint flags;\n\t} __Request__vm_allocate_cpm_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_processors_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tclock_id_t clock_id;\n\t} __Request__host_get_clock_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t info;\n\t} __Request__kmod_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkmod_t module;\n\t} __Request__kmod_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t data;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tkmod_t module;\n\t\tkmod_control_flavor_t flavor;\n\t\tmach_msg_type_number_t dataCnt;\n\t} __Request__kmod_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint node;\n\t\tint which;\n\t} __Request__host_get_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tint which;\n\t} __Request__host_set_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t\texception_behavior_t behavior;\n\t\tthread_state_flavor_t new_flavor;\n\t} __Request__host_set_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t} __Request__host_get_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t\texception_behavior_t behavior;\n\t\tthread_state_flavor_t new_flavor;\n\t} __Request__host_swap_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tvm_prot_t desired_access;\n\t} __Request__mach_vm_wire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_processor_sets_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t set_name;\n\t\t/* end of the kernel processed data */\n\t} __Request__host_processor_set_priv_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t server;\n\t\t/* end of the kernel processed data */\n\t} __Request__host_set_UNDServer_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_get_UNDServer_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t request_data;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tuint32_t user_log_flags;\n\t\tmach_msg_type_number_t request_dataCnt;\n\t} __Request__kext_request_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__host_priv_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__host_priv_subsystem__defined\n#define __RequestUnion__host_priv_subsystem__defined\nunion __RequestUnion__host_priv_subsystem {\n\t__Request__host_get_boot_info_t Request_host_get_boot_info;\n\t__Request__host_reboot_t Request_host_reboot;\n\t__Request__host_priv_statistics_t Request_host_priv_statistics;\n\t__Request__host_default_memory_manager_t Request_host_default_memory_manager;\n\t__Request__vm_wire_t Request_vm_wire;\n\t__Request__thread_wire_t Request_thread_wire;\n\t__Request__vm_allocate_cpm_t Request_vm_allocate_cpm;\n\t__Request__host_processors_t Request_host_processors;\n\t__Request__host_get_clock_control_t Request_host_get_clock_control;\n\t__Request__kmod_create_t Request_kmod_create;\n\t__Request__kmod_destroy_t Request_kmod_destroy;\n\t__Request__kmod_control_t Request_kmod_control;\n\t__Request__host_get_special_port_t Request_host_get_special_port;\n\t__Request__host_set_special_port_t Request_host_set_special_port;\n\t__Request__host_set_exception_ports_t Request_host_set_exception_ports;\n\t__Request__host_get_exception_ports_t Request_host_get_exception_ports;\n\t__Request__host_swap_exception_ports_t Request_host_swap_exception_ports;\n\t__Request__mach_vm_wire_t Request_mach_vm_wire;\n\t__Request__host_processor_sets_t Request_host_processor_sets;\n\t__Request__host_processor_set_priv_t Request_host_processor_set_priv;\n\t__Request__host_set_UNDServer_t Request_host_set_UNDServer;\n\t__Request__host_get_UNDServer_t Request_host_get_UNDServer;\n\t__Request__kext_request_t Request_kext_request;\n};\n#endif /* !__RequestUnion__host_priv_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__host_priv_subsystem__defined\n#define __Reply__host_priv_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t boot_infoOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t boot_infoCnt;\n\t\tchar boot_info[4096];\n\t} __Reply__host_get_boot_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__host_reboot_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t host_info_outCnt;\n\t\tinteger_t host_info_out[68];\n\t} __Reply__host_priv_statistics_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t default_manager;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_default_memory_manager_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_wire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_wire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t address;\n\t} __Reply__vm_allocate_cpm_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t out_processor_list;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t out_processor_listCnt;\n\t} __Reply__host_processors_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t clock_ctrl;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_get_clock_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tkmod_t module;\n\t} __Reply__kmod_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__kmod_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t data;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t dataCnt;\n\t} __Reply__kmod_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t port;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_get_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__host_set_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__host_set_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t old_handlers[32];\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t masksCnt;\n\t\texception_mask_t masks[32];\n\t\texception_behavior_t old_behaviors[32];\n\t\tthread_state_flavor_t old_flavors[32];\n\t} __Reply__host_get_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t old_handlerss[32];\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t masksCnt;\n\t\texception_mask_t masks[32];\n\t\texception_behavior_t old_behaviors[32];\n\t\tthread_state_flavor_t old_flavors[32];\n\t} __Reply__host_swap_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_vm_wire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t processor_sets;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t processor_setsCnt;\n\t} __Reply__host_processor_sets_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t set;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_processor_set_priv_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__host_set_UNDServer_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t server;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_get_UNDServer_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t response_data;\n\t\tmach_msg_ool_descriptor_t log_data;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t response_dataCnt;\n\t\tmach_msg_type_number_t log_dataCnt;\n\t\tkern_return_t op_result;\n\t} __Reply__kext_request_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__host_priv_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__host_priv_subsystem__defined\n#define __ReplyUnion__host_priv_subsystem__defined\nunion __ReplyUnion__host_priv_subsystem {\n\t__Reply__host_get_boot_info_t Reply_host_get_boot_info;\n\t__Reply__host_reboot_t Reply_host_reboot;\n\t__Reply__host_priv_statistics_t Reply_host_priv_statistics;\n\t__Reply__host_default_memory_manager_t Reply_host_default_memory_manager;\n\t__Reply__vm_wire_t Reply_vm_wire;\n\t__Reply__thread_wire_t Reply_thread_wire;\n\t__Reply__vm_allocate_cpm_t Reply_vm_allocate_cpm;\n\t__Reply__host_processors_t Reply_host_processors;\n\t__Reply__host_get_clock_control_t Reply_host_get_clock_control;\n\t__Reply__kmod_create_t Reply_kmod_create;\n\t__Reply__kmod_destroy_t Reply_kmod_destroy;\n\t__Reply__kmod_control_t Reply_kmod_control;\n\t__Reply__host_get_special_port_t Reply_host_get_special_port;\n\t__Reply__host_set_special_port_t Reply_host_set_special_port;\n\t__Reply__host_set_exception_ports_t Reply_host_set_exception_ports;\n\t__Reply__host_get_exception_ports_t Reply_host_get_exception_ports;\n\t__Reply__host_swap_exception_ports_t Reply_host_swap_exception_ports;\n\t__Reply__mach_vm_wire_t Reply_mach_vm_wire;\n\t__Reply__host_processor_sets_t Reply_host_processor_sets;\n\t__Reply__host_processor_set_priv_t Reply_host_processor_set_priv;\n\t__Reply__host_set_UNDServer_t Reply_host_set_UNDServer;\n\t__Reply__host_get_UNDServer_t Reply_host_get_UNDServer;\n\t__Reply__kext_request_t Reply_kext_request;\n};\n#endif /* !__RequestUnion__host_priv_subsystem__defined */\n\n#ifndef subsystem_to_name_map_host_priv\n#define subsystem_to_name_map_host_priv \\\n    { \"host_get_boot_info\", 400 },\\\n    { \"host_reboot\", 401 },\\\n    { \"host_priv_statistics\", 402 },\\\n    { \"host_default_memory_manager\", 403 },\\\n    { \"vm_wire\", 404 },\\\n    { \"thread_wire\", 405 },\\\n    { \"vm_allocate_cpm\", 406 },\\\n    { \"host_processors\", 407 },\\\n    { \"host_get_clock_control\", 408 },\\\n    { \"kmod_create\", 409 },\\\n    { \"kmod_destroy\", 410 },\\\n    { \"kmod_control\", 411 },\\\n    { \"host_get_special_port\", 412 },\\\n    { \"host_set_special_port\", 413 },\\\n    { \"host_set_exception_ports\", 414 },\\\n    { \"host_get_exception_ports\", 415 },\\\n    { \"host_swap_exception_ports\", 416 },\\\n    { \"mach_vm_wire\", 418 },\\\n    { \"host_processor_sets\", 419 },\\\n    { \"host_processor_set_priv\", 420 },\\\n    { \"host_set_UNDServer\", 423 },\\\n    { \"host_get_UNDServer\", 424 },\\\n    { \"kext_request\", 425 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _host_priv_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/host_security.h",
    "content": "#ifndef\t_host_security_user_\n#define\t_host_security_user_\n\n/* Module host_security */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\thost_security_MSG_COUNT\n#define\thost_security_MSG_COUNT\t2\n#endif\t/* host_security_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine host_security_create_task_token */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_security_create_task_token\n(\n\thost_security_t host_security,\n\ttask_t parent_task,\n\tsecurity_token_t sec_token,\n\taudit_token_t audit_token,\n\thost_t host,\n\tledger_array_t ledgers,\n\tmach_msg_type_number_t ledgersCnt,\n\tboolean_t inherit_memory,\n\ttask_t *child_task\n);\n\n/* Routine host_security_set_task_token */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_security_set_task_token\n(\n\thost_security_t host_security,\n\ttask_t target_task,\n\tsecurity_token_t sec_token,\n\taudit_token_t audit_token,\n\thost_t host\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__host_security_subsystem__defined\n#define __Request__host_security_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t parent_task;\n\t\tmach_msg_port_descriptor_t host;\n\t\tmach_msg_ool_ports_descriptor_t ledgers;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tsecurity_token_t sec_token;\n\t\taudit_token_t audit_token;\n\t\tmach_msg_type_number_t ledgersCnt;\n\t\tboolean_t inherit_memory;\n\t} __Request__host_security_create_task_token_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t target_task;\n\t\tmach_msg_port_descriptor_t host;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tsecurity_token_t sec_token;\n\t\taudit_token_t audit_token;\n\t} __Request__host_security_set_task_token_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__host_security_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__host_security_subsystem__defined\n#define __RequestUnion__host_security_subsystem__defined\nunion __RequestUnion__host_security_subsystem {\n\t__Request__host_security_create_task_token_t Request_host_security_create_task_token;\n\t__Request__host_security_set_task_token_t Request_host_security_set_task_token;\n};\n#endif /* !__RequestUnion__host_security_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__host_security_subsystem__defined\n#define __Reply__host_security_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t child_task;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_security_create_task_token_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__host_security_set_task_token_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__host_security_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__host_security_subsystem__defined\n#define __ReplyUnion__host_security_subsystem__defined\nunion __ReplyUnion__host_security_subsystem {\n\t__Reply__host_security_create_task_token_t Reply_host_security_create_task_token;\n\t__Reply__host_security_set_task_token_t Reply_host_security_set_task_token;\n};\n#endif /* !__RequestUnion__host_security_subsystem__defined */\n\n#ifndef subsystem_to_name_map_host_security\n#define subsystem_to_name_map_host_security \\\n    { \"host_security_create_task_token\", 600 },\\\n    { \"host_security_set_task_token\", 601 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _host_security_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/lock_set.h",
    "content": "#ifndef\t_lock_set_user_\n#define\t_lock_set_user_\n\n/* Module lock_set */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tlock_set_MSG_COUNT\n#define\tlock_set_MSG_COUNT\t6\n#endif\t/* lock_set_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine lock_acquire */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t lock_acquire\n(\n\tlock_set_t lock_set,\n\tint lock_id\n);\n\n/* Routine lock_release */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t lock_release\n(\n\tlock_set_t lock_set,\n\tint lock_id\n);\n\n/* Routine lock_try */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t lock_try\n(\n\tlock_set_t lock_set,\n\tint lock_id\n);\n\n/* Routine lock_make_stable */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t lock_make_stable\n(\n\tlock_set_t lock_set,\n\tint lock_id\n);\n\n/* Routine lock_handoff */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t lock_handoff\n(\n\tlock_set_t lock_set,\n\tint lock_id\n);\n\n/* Routine lock_handoff_accept */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t lock_handoff_accept\n(\n\tlock_set_t lock_set,\n\tint lock_id\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__lock_set_subsystem__defined\n#define __Request__lock_set_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint lock_id;\n\t} __Request__lock_acquire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint lock_id;\n\t} __Request__lock_release_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint lock_id;\n\t} __Request__lock_try_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint lock_id;\n\t} __Request__lock_make_stable_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint lock_id;\n\t} __Request__lock_handoff_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint lock_id;\n\t} __Request__lock_handoff_accept_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__lock_set_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__lock_set_subsystem__defined\n#define __RequestUnion__lock_set_subsystem__defined\nunion __RequestUnion__lock_set_subsystem {\n\t__Request__lock_acquire_t Request_lock_acquire;\n\t__Request__lock_release_t Request_lock_release;\n\t__Request__lock_try_t Request_lock_try;\n\t__Request__lock_make_stable_t Request_lock_make_stable;\n\t__Request__lock_handoff_t Request_lock_handoff;\n\t__Request__lock_handoff_accept_t Request_lock_handoff_accept;\n};\n#endif /* !__RequestUnion__lock_set_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__lock_set_subsystem__defined\n#define __Reply__lock_set_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__lock_acquire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__lock_release_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__lock_try_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__lock_make_stable_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__lock_handoff_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__lock_handoff_accept_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__lock_set_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__lock_set_subsystem__defined\n#define __ReplyUnion__lock_set_subsystem__defined\nunion __ReplyUnion__lock_set_subsystem {\n\t__Reply__lock_acquire_t Reply_lock_acquire;\n\t__Reply__lock_release_t Reply_lock_release;\n\t__Reply__lock_try_t Reply_lock_try;\n\t__Reply__lock_make_stable_t Reply_lock_make_stable;\n\t__Reply__lock_handoff_t Reply_lock_handoff;\n\t__Reply__lock_handoff_accept_t Reply_lock_handoff_accept;\n};\n#endif /* !__RequestUnion__lock_set_subsystem__defined */\n\n#ifndef subsystem_to_name_map_lock_set\n#define subsystem_to_name_map_lock_set \\\n    { \"lock_acquire\", 617000 },\\\n    { \"lock_release\", 617001 },\\\n    { \"lock_try\", 617002 },\\\n    { \"lock_make_stable\", 617003 },\\\n    { \"lock_handoff\", 617004 },\\\n    { \"lock_handoff_accept\", 617005 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _lock_set_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/mach_host.h",
    "content": "#ifndef\t_mach_host_user_\n#define\t_mach_host_user_\n\n/* Module mach_host */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tmach_host_MSG_COUNT\n#define\tmach_host_MSG_COUNT\t35\n#endif\t/* mach_host_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach/mach_types.h>\n#include <mach_debug/mach_debug_types.h>\n#include <mach/mach_init.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine host_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_info\n(\n\thost_t host,\n\thost_flavor_t flavor,\n\thost_info_t host_info_out,\n\tmach_msg_type_number_t *host_info_outCnt\n);\n\n/* Routine host_kernel_version */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_kernel_version\n(\n\thost_t host,\n\tkernel_version_t kernel_version\n);\n\n/* Routine _host_page_size */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t _host_page_size\n(\n\thost_t host,\n\tvm_size_t *out_page_size\n);\n\n/* Routine mach_memory_object_memory_entry */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_memory_object_memory_entry\n(\n\thost_t host,\n\tboolean_t internal,\n\tvm_size_t size,\n\tvm_prot_t permission,\n\tmemory_object_t pager,\n\tmach_port_t *entry_handle\n);\n\n/* Routine host_processor_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_processor_info\n(\n\thost_t host,\n\tprocessor_flavor_t flavor,\n\tnatural_t *out_processor_count,\n\tprocessor_info_array_t *out_processor_info,\n\tmach_msg_type_number_t *out_processor_infoCnt\n);\n\n/* Routine host_get_io_master */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_io_master\n(\n\thost_t host,\n\tio_master_t *io_master\n);\n\n/* Routine host_get_clock_service */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_clock_service\n(\n\thost_t host,\n\tclock_id_t clock_id,\n\tclock_serv_t *clock_serv\n);\n\n/* Routine kmod_get_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t kmod_get_info\n(\n\thost_t host,\n\tkmod_args_t *modules,\n\tmach_msg_type_number_t *modulesCnt\n);\n\n/* Routine host_virtual_physical_table_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_virtual_physical_table_info\n(\n\thost_t host,\n\thash_info_bucket_array_t *info,\n\tmach_msg_type_number_t *infoCnt\n);\n\n/* Routine processor_set_default */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_default\n(\n\thost_t host,\n\tprocessor_set_name_t *default_set\n);\n\n/* Routine processor_set_create */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_create\n(\n\thost_t host,\n\tprocessor_set_t *new_set,\n\tprocessor_set_name_t *new_name\n);\n\n/* Routine mach_memory_object_memory_entry_64 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_memory_object_memory_entry_64\n(\n\thost_t host,\n\tboolean_t internal,\n\tmemory_object_size_t size,\n\tvm_prot_t permission,\n\tmemory_object_t pager,\n\tmach_port_t *entry_handle\n);\n\n/* Routine host_statistics */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_statistics\n(\n\thost_t host_priv,\n\thost_flavor_t flavor,\n\thost_info_t host_info_out,\n\tmach_msg_type_number_t *host_info_outCnt\n);\n\n/* Routine host_request_notification */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_request_notification\n(\n\thost_t host,\n\thost_flavor_t notify_type,\n\tmach_port_t notify_port\n);\n\n/* Routine host_lockgroup_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_lockgroup_info\n(\n\thost_t host,\n\tlockgroup_info_array_t *lockgroup_info,\n\tmach_msg_type_number_t *lockgroup_infoCnt\n);\n\n/* Routine host_statistics64 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_statistics64\n(\n\thost_t host_priv,\n\thost_flavor_t flavor,\n\thost_info64_t host_info64_out,\n\tmach_msg_type_number_t *host_info64_outCnt\n);\n\n/* Routine mach_zone_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_zone_info\n(\n\thost_priv_t host,\n\tmach_zone_name_array_t *names,\n\tmach_msg_type_number_t *namesCnt,\n\tmach_zone_info_array_t *info,\n\tmach_msg_type_number_t *infoCnt\n);\n\n/* Routine mach_zone_force_gc */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_zone_force_gc\n(\n\thost_t host\n);\n\n/* Routine host_create_mach_voucher */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_create_mach_voucher\n(\n\thost_t host,\n\tmach_voucher_attr_raw_recipe_array_t recipes,\n\tmach_msg_type_number_t recipesCnt,\n\tipc_voucher_t *voucher\n);\n\n/* Routine host_register_mach_voucher_attr_manager */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_register_mach_voucher_attr_manager\n(\n\thost_t host,\n\tmach_voucher_attr_manager_t attr_manager,\n\tmach_voucher_attr_value_handle_t default_value,\n\tmach_voucher_attr_key_t *new_key,\n\tipc_voucher_attr_control_t *new_attr_control\n);\n\n/* Routine host_register_well_known_mach_voucher_attr_manager */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_register_well_known_mach_voucher_attr_manager\n(\n\thost_t host,\n\tmach_voucher_attr_manager_t attr_manager,\n\tmach_voucher_attr_value_handle_t default_value,\n\tmach_voucher_attr_key_t key,\n\tipc_voucher_attr_control_t *new_attr_control\n);\n\n/* Routine host_set_atm_diagnostic_flag */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_set_atm_diagnostic_flag\n(\n\thost_t host,\n\tuint32_t diagnostic_flag\n);\n\n/* Routine host_get_atm_diagnostic_flag */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_atm_diagnostic_flag\n(\n\thost_t host,\n\tuint32_t *diagnostic_flag\n);\n\n/* Routine mach_memory_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_memory_info\n(\n\thost_priv_t host,\n\tmach_zone_name_array_t *names,\n\tmach_msg_type_number_t *namesCnt,\n\tmach_zone_info_array_t *info,\n\tmach_msg_type_number_t *infoCnt,\n\tmach_memory_info_array_t *memory_info,\n\tmach_msg_type_number_t *memory_infoCnt\n);\n\n/* Routine host_set_multiuser_config_flags */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_set_multiuser_config_flags\n(\n\thost_priv_t host_priv,\n\tuint32_t multiuser_flags\n);\n\n/* Routine host_get_multiuser_config_flags */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_get_multiuser_config_flags\n(\n\thost_t host,\n\tuint32_t *multiuser_flags\n);\n\n/* Routine host_check_multiuser_mode */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t host_check_multiuser_mode\n(\n\thost_t host,\n\tuint32_t *multiuser_mode\n);\n\n/* Routine mach_zone_info_for_zone */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_zone_info_for_zone\n(\n\thost_priv_t host,\n\tmach_zone_name_t name,\n\tmach_zone_info_t *info\n);\n\n/* Routine mach_zone_info_for_largest_zone */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_zone_info_for_largest_zone\n(\n\thost_priv_t host,\n\tmach_zone_name_t *name,\n\tmach_zone_info_t *info\n);\n\n/* Routine mach_zone_get_zlog_zones */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_zone_get_zlog_zones\n(\n\thost_priv_t host,\n\tmach_zone_name_array_t *names,\n\tmach_msg_type_number_t *namesCnt\n);\n\n/* Routine mach_zone_get_btlog_records */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_zone_get_btlog_records\n(\n\thost_priv_t host,\n\tmach_zone_name_t name,\n\tzone_btrecord_array_t *recs,\n\tmach_msg_type_number_t *recsCnt\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__mach_host_subsystem__defined\n#define __Request__mach_host_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\thost_flavor_t flavor;\n\t\tmach_msg_type_number_t host_info_outCnt;\n\t} __Request__host_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_kernel_version_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request___host_page_size_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t pager;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tboolean_t internal;\n\t\tvm_size_t size;\n\t\tvm_prot_t permission;\n\t} __Request__mach_memory_object_memory_entry_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tprocessor_flavor_t flavor;\n\t} __Request__host_processor_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_get_io_master_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tclock_id_t clock_id;\n\t} __Request__host_get_clock_service_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__kmod_get_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_virtual_physical_table_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_set_default_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_set_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t pager;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tboolean_t internal;\n\t\tmemory_object_size_t size;\n\t\tvm_prot_t permission;\n\t} __Request__mach_memory_object_memory_entry_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\thost_flavor_t flavor;\n\t\tmach_msg_type_number_t host_info_outCnt;\n\t} __Request__host_statistics_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t notify_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\thost_flavor_t notify_type;\n\t} __Request__host_request_notification_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_lockgroup_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\thost_flavor_t flavor;\n\t\tmach_msg_type_number_t host_info64_outCnt;\n\t} __Request__host_statistics64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_zone_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_zone_force_gc_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t recipesCnt;\n\t\tuint8_t recipes[5120];\n\t} __Request__host_create_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t attr_manager;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_voucher_attr_value_handle_t default_value;\n\t} __Request__host_register_mach_voucher_attr_manager_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t attr_manager;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_voucher_attr_value_handle_t default_value;\n\t\tmach_voucher_attr_key_t key;\n\t} __Request__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tuint32_t diagnostic_flag;\n\t} __Request__host_set_atm_diagnostic_flag_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_get_atm_diagnostic_flag_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_memory_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tuint32_t multiuser_flags;\n\t} __Request__host_set_multiuser_config_flags_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_get_multiuser_config_flags_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__host_check_multiuser_mode_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_zone_name_t name;\n\t} __Request__mach_zone_info_for_zone_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_zone_info_for_largest_zone_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_zone_get_zlog_zones_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_zone_name_t name;\n\t} __Request__mach_zone_get_btlog_records_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__mach_host_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__mach_host_subsystem__defined\n#define __RequestUnion__mach_host_subsystem__defined\nunion __RequestUnion__mach_host_subsystem {\n\t__Request__host_info_t Request_host_info;\n\t__Request__host_kernel_version_t Request_host_kernel_version;\n\t__Request___host_page_size_t Request__host_page_size;\n\t__Request__mach_memory_object_memory_entry_t Request_mach_memory_object_memory_entry;\n\t__Request__host_processor_info_t Request_host_processor_info;\n\t__Request__host_get_io_master_t Request_host_get_io_master;\n\t__Request__host_get_clock_service_t Request_host_get_clock_service;\n\t__Request__kmod_get_info_t Request_kmod_get_info;\n\t__Request__host_virtual_physical_table_info_t Request_host_virtual_physical_table_info;\n\t__Request__processor_set_default_t Request_processor_set_default;\n\t__Request__processor_set_create_t Request_processor_set_create;\n\t__Request__mach_memory_object_memory_entry_64_t Request_mach_memory_object_memory_entry_64;\n\t__Request__host_statistics_t Request_host_statistics;\n\t__Request__host_request_notification_t Request_host_request_notification;\n\t__Request__host_lockgroup_info_t Request_host_lockgroup_info;\n\t__Request__host_statistics64_t Request_host_statistics64;\n\t__Request__mach_zone_info_t Request_mach_zone_info;\n\t__Request__mach_zone_force_gc_t Request_mach_zone_force_gc;\n\t__Request__host_create_mach_voucher_t Request_host_create_mach_voucher;\n\t__Request__host_register_mach_voucher_attr_manager_t Request_host_register_mach_voucher_attr_manager;\n\t__Request__host_register_well_known_mach_voucher_attr_manager_t Request_host_register_well_known_mach_voucher_attr_manager;\n\t__Request__host_set_atm_diagnostic_flag_t Request_host_set_atm_diagnostic_flag;\n\t__Request__host_get_atm_diagnostic_flag_t Request_host_get_atm_diagnostic_flag;\n\t__Request__mach_memory_info_t Request_mach_memory_info;\n\t__Request__host_set_multiuser_config_flags_t Request_host_set_multiuser_config_flags;\n\t__Request__host_get_multiuser_config_flags_t Request_host_get_multiuser_config_flags;\n\t__Request__host_check_multiuser_mode_t Request_host_check_multiuser_mode;\n\t__Request__mach_zone_info_for_zone_t Request_mach_zone_info_for_zone;\n\t__Request__mach_zone_info_for_largest_zone_t Request_mach_zone_info_for_largest_zone;\n\t__Request__mach_zone_get_zlog_zones_t Request_mach_zone_get_zlog_zones;\n\t__Request__mach_zone_get_btlog_records_t Request_mach_zone_get_btlog_records;\n};\n#endif /* !__RequestUnion__mach_host_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__mach_host_subsystem__defined\n#define __Reply__mach_host_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t host_info_outCnt;\n\t\tinteger_t host_info_out[68];\n\t} __Reply__host_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t kernel_versionOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t kernel_versionCnt;\n\t\tchar kernel_version[512];\n\t} __Reply__host_kernel_version_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_size_t out_page_size;\n\t} __Reply___host_page_size_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t entry_handle;\n\t\t/* end of the kernel processed data */\n\t} __Reply__mach_memory_object_memory_entry_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t out_processor_info;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tnatural_t out_processor_count;\n\t\tmach_msg_type_number_t out_processor_infoCnt;\n\t} __Reply__host_processor_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t io_master;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_get_io_master_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t clock_serv;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_get_clock_service_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t modules;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t modulesCnt;\n\t} __Reply__kmod_get_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t info;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Reply__host_virtual_physical_table_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t default_set;\n\t\t/* end of the kernel processed data */\n\t} __Reply__processor_set_default_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_set;\n\t\tmach_msg_port_descriptor_t new_name;\n\t\t/* end of the kernel processed data */\n\t} __Reply__processor_set_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t entry_handle;\n\t\t/* end of the kernel processed data */\n\t} __Reply__mach_memory_object_memory_entry_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t host_info_outCnt;\n\t\tinteger_t host_info_out[68];\n\t} __Reply__host_statistics_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__host_request_notification_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t lockgroup_info;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t lockgroup_infoCnt;\n\t} __Reply__host_lockgroup_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t host_info64_outCnt;\n\t\tinteger_t host_info64_out[256];\n\t} __Reply__host_statistics64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t names;\n\t\tmach_msg_ool_descriptor_t info;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t namesCnt;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Reply__mach_zone_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_zone_force_gc_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t voucher;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_create_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_attr_control;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_voucher_attr_key_t new_key;\n\t} __Reply__host_register_mach_voucher_attr_manager_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_attr_control;\n\t\t/* end of the kernel processed data */\n\t} __Reply__host_register_well_known_mach_voucher_attr_manager_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__host_set_atm_diagnostic_flag_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tuint32_t diagnostic_flag;\n\t} __Reply__host_get_atm_diagnostic_flag_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t names;\n\t\tmach_msg_ool_descriptor_t info;\n\t\tmach_msg_ool_descriptor_t memory_info;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t namesCnt;\n\t\tmach_msg_type_number_t infoCnt;\n\t\tmach_msg_type_number_t memory_infoCnt;\n\t} __Reply__mach_memory_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__host_set_multiuser_config_flags_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tuint32_t multiuser_flags;\n\t} __Reply__host_get_multiuser_config_flags_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tuint32_t multiuser_mode;\n\t} __Reply__host_check_multiuser_mode_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_zone_info_t info;\n\t} __Reply__mach_zone_info_for_zone_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_zone_name_t name;\n\t\tmach_zone_info_t info;\n\t} __Reply__mach_zone_info_for_largest_zone_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t names;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t namesCnt;\n\t} __Reply__mach_zone_get_zlog_zones_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t recs;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t recsCnt;\n\t} __Reply__mach_zone_get_btlog_records_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__mach_host_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__mach_host_subsystem__defined\n#define __ReplyUnion__mach_host_subsystem__defined\nunion __ReplyUnion__mach_host_subsystem {\n\t__Reply__host_info_t Reply_host_info;\n\t__Reply__host_kernel_version_t Reply_host_kernel_version;\n\t__Reply___host_page_size_t Reply__host_page_size;\n\t__Reply__mach_memory_object_memory_entry_t Reply_mach_memory_object_memory_entry;\n\t__Reply__host_processor_info_t Reply_host_processor_info;\n\t__Reply__host_get_io_master_t Reply_host_get_io_master;\n\t__Reply__host_get_clock_service_t Reply_host_get_clock_service;\n\t__Reply__kmod_get_info_t Reply_kmod_get_info;\n\t__Reply__host_virtual_physical_table_info_t Reply_host_virtual_physical_table_info;\n\t__Reply__processor_set_default_t Reply_processor_set_default;\n\t__Reply__processor_set_create_t Reply_processor_set_create;\n\t__Reply__mach_memory_object_memory_entry_64_t Reply_mach_memory_object_memory_entry_64;\n\t__Reply__host_statistics_t Reply_host_statistics;\n\t__Reply__host_request_notification_t Reply_host_request_notification;\n\t__Reply__host_lockgroup_info_t Reply_host_lockgroup_info;\n\t__Reply__host_statistics64_t Reply_host_statistics64;\n\t__Reply__mach_zone_info_t Reply_mach_zone_info;\n\t__Reply__mach_zone_force_gc_t Reply_mach_zone_force_gc;\n\t__Reply__host_create_mach_voucher_t Reply_host_create_mach_voucher;\n\t__Reply__host_register_mach_voucher_attr_manager_t Reply_host_register_mach_voucher_attr_manager;\n\t__Reply__host_register_well_known_mach_voucher_attr_manager_t Reply_host_register_well_known_mach_voucher_attr_manager;\n\t__Reply__host_set_atm_diagnostic_flag_t Reply_host_set_atm_diagnostic_flag;\n\t__Reply__host_get_atm_diagnostic_flag_t Reply_host_get_atm_diagnostic_flag;\n\t__Reply__mach_memory_info_t Reply_mach_memory_info;\n\t__Reply__host_set_multiuser_config_flags_t Reply_host_set_multiuser_config_flags;\n\t__Reply__host_get_multiuser_config_flags_t Reply_host_get_multiuser_config_flags;\n\t__Reply__host_check_multiuser_mode_t Reply_host_check_multiuser_mode;\n\t__Reply__mach_zone_info_for_zone_t Reply_mach_zone_info_for_zone;\n\t__Reply__mach_zone_info_for_largest_zone_t Reply_mach_zone_info_for_largest_zone;\n\t__Reply__mach_zone_get_zlog_zones_t Reply_mach_zone_get_zlog_zones;\n\t__Reply__mach_zone_get_btlog_records_t Reply_mach_zone_get_btlog_records;\n};\n#endif /* !__RequestUnion__mach_host_subsystem__defined */\n\n#ifndef subsystem_to_name_map_mach_host\n#define subsystem_to_name_map_mach_host \\\n    { \"host_info\", 200 },\\\n    { \"host_kernel_version\", 201 },\\\n    { \"_host_page_size\", 202 },\\\n    { \"mach_memory_object_memory_entry\", 203 },\\\n    { \"host_processor_info\", 204 },\\\n    { \"host_get_io_master\", 205 },\\\n    { \"host_get_clock_service\", 206 },\\\n    { \"kmod_get_info\", 207 },\\\n    { \"host_virtual_physical_table_info\", 209 },\\\n    { \"processor_set_default\", 213 },\\\n    { \"processor_set_create\", 214 },\\\n    { \"mach_memory_object_memory_entry_64\", 215 },\\\n    { \"host_statistics\", 216 },\\\n    { \"host_request_notification\", 217 },\\\n    { \"host_lockgroup_info\", 218 },\\\n    { \"host_statistics64\", 219 },\\\n    { \"mach_zone_info\", 220 },\\\n    { \"mach_zone_force_gc\", 221 },\\\n    { \"host_create_mach_voucher\", 222 },\\\n    { \"host_register_mach_voucher_attr_manager\", 223 },\\\n    { \"host_register_well_known_mach_voucher_attr_manager\", 224 },\\\n    { \"host_set_atm_diagnostic_flag\", 225 },\\\n    { \"host_get_atm_diagnostic_flag\", 226 },\\\n    { \"mach_memory_info\", 227 },\\\n    { \"host_set_multiuser_config_flags\", 228 },\\\n    { \"host_get_multiuser_config_flags\", 229 },\\\n    { \"host_check_multiuser_mode\", 230 },\\\n    { \"mach_zone_info_for_zone\", 231 },\\\n    { \"mach_zone_info_for_largest_zone\", 232 },\\\n    { \"mach_zone_get_zlog_zones\", 233 },\\\n    { \"mach_zone_get_btlog_records\", 234 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _mach_host_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/mach_port.h",
    "content": "#ifndef\t_mach_port_user_\n#define\t_mach_port_user_\n\n/* Module mach_port */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tmach_port_MSG_COUNT\n#define\tmach_port_MSG_COUNT\t40\n#endif\t/* mach_port_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach_debug/mach_debug_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine mach_port_names */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_names\n(\n\tipc_space_t task,\n\tmach_port_name_array_t *names,\n\tmach_msg_type_number_t *namesCnt,\n\tmach_port_type_array_t *types,\n\tmach_msg_type_number_t *typesCnt\n);\n\n/* Routine mach_port_type */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_type\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_type_t *ptype\n);\n\n/* Routine mach_port_rename */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_rename\n(\n\tipc_space_t task,\n\tmach_port_name_t old_name,\n\tmach_port_name_t new_name\n);\n\n/* Routine mach_port_allocate_name */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_allocate_name\n(\n\tipc_space_t task,\n\tmach_port_right_t right,\n\tmach_port_name_t name\n);\n\n/* Routine mach_port_allocate */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_allocate\n(\n\tipc_space_t task,\n\tmach_port_right_t right,\n\tmach_port_name_t *name\n);\n\n/* Routine mach_port_destroy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_destroy\n(\n\tipc_space_t task,\n\tmach_port_name_t name\n);\n\n/* Routine mach_port_deallocate */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_deallocate\n(\n\tipc_space_t task,\n\tmach_port_name_t name\n);\n\n/* Routine mach_port_get_refs */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_get_refs\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_right_t right,\n\tmach_port_urefs_t *refs\n);\n\n/* Routine mach_port_mod_refs */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_mod_refs\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_right_t right,\n\tmach_port_delta_t delta\n);\n\n/* Routine mach_port_peek */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_peek\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_msg_trailer_type_t trailer_type,\n\tmach_port_seqno_t *request_seqnop,\n\tmach_msg_size_t *msg_sizep,\n\tmach_msg_id_t *msg_idp,\n\tmach_msg_trailer_info_t trailer_infop,\n\tmach_msg_type_number_t *trailer_infopCnt\n);\n\n/* Routine mach_port_set_mscount */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_set_mscount\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_mscount_t mscount\n);\n\n/* Routine mach_port_get_set_status */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_get_set_status\n(\n\tipc_space_read_t task,\n\tmach_port_name_t name,\n\tmach_port_name_array_t *members,\n\tmach_msg_type_number_t *membersCnt\n);\n\n/* Routine mach_port_move_member */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_move_member\n(\n\tipc_space_t task,\n\tmach_port_name_t member,\n\tmach_port_name_t after\n);\n\n/* Routine mach_port_request_notification */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_request_notification\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_msg_id_t msgid,\n\tmach_port_mscount_t sync,\n\tmach_port_t notify,\n\tmach_msg_type_name_t notifyPoly,\n\tmach_port_t *previous\n);\n\n/* Routine mach_port_insert_right */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_insert_right\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_t poly,\n\tmach_msg_type_name_t polyPoly\n);\n\n/* Routine mach_port_extract_right */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_extract_right\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_msg_type_name_t msgt_name,\n\tmach_port_t *poly,\n\tmach_msg_type_name_t *polyPoly\n);\n\n/* Routine mach_port_set_seqno */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_set_seqno\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_seqno_t seqno\n);\n\n/* Routine mach_port_get_attributes */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_get_attributes\n(\n\tipc_space_read_t task,\n\tmach_port_name_t name,\n\tmach_port_flavor_t flavor,\n\tmach_port_info_t port_info_out,\n\tmach_msg_type_number_t *port_info_outCnt\n);\n\n/* Routine mach_port_set_attributes */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_set_attributes\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_flavor_t flavor,\n\tmach_port_info_t port_info,\n\tmach_msg_type_number_t port_infoCnt\n);\n\n/* Routine mach_port_allocate_qos */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_allocate_qos\n(\n\tipc_space_t task,\n\tmach_port_right_t right,\n\tmach_port_qos_t *qos,\n\tmach_port_name_t *name\n);\n\n/* Routine mach_port_allocate_full */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_allocate_full\n(\n\tipc_space_t task,\n\tmach_port_right_t right,\n\tmach_port_t proto,\n\tmach_port_qos_t *qos,\n\tmach_port_name_t *name\n);\n\n/* Routine task_set_port_space */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_port_space\n(\n\tipc_space_t task,\n\tint table_entries\n);\n\n/* Routine mach_port_get_srights */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_get_srights\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_rights_t *srights\n);\n\n/* Routine mach_port_space_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_space_info\n(\n\tipc_space_read_t space,\n\tipc_info_space_t *space_info,\n\tipc_info_name_array_t *table_info,\n\tmach_msg_type_number_t *table_infoCnt,\n\tipc_info_tree_name_array_t *tree_info,\n\tmach_msg_type_number_t *tree_infoCnt\n);\n\n/* Routine mach_port_dnrequest_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_dnrequest_info\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tunsigned *dnr_total,\n\tunsigned *dnr_used\n);\n\n/* Routine mach_port_kernel_object */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_kernel_object\n(\n\tipc_space_read_t task,\n\tmach_port_name_t name,\n\tunsigned *object_type,\n\tunsigned *object_addr\n);\n\n/* Routine mach_port_insert_member */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_insert_member\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_name_t pset\n);\n\n/* Routine mach_port_extract_member */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_extract_member\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_name_t pset\n);\n\n/* Routine mach_port_get_context */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_get_context\n(\n\tipc_space_read_t task,\n\tmach_port_name_t name,\n\tmach_port_context_t *context\n);\n\n/* Routine mach_port_set_context */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_set_context\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_context_t context\n);\n\n/* Routine mach_port_kobject */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_kobject\n(\n\tipc_space_read_t task,\n\tmach_port_name_t name,\n\tnatural_t *object_type,\n\tmach_vm_address_t *object_addr\n);\n\n/* Routine mach_port_construct */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_construct\n(\n\tipc_space_t task,\n\tmach_port_options_ptr_t options,\n\tmach_port_context_t context,\n\tmach_port_name_t *name\n);\n\n/* Routine mach_port_destruct */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_destruct\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_delta_t srdelta,\n\tmach_port_context_t guard\n);\n\n/* Routine mach_port_guard */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_guard\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_context_t guard,\n\tboolean_t strict\n);\n\n/* Routine mach_port_unguard */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_unguard\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_context_t guard\n);\n\n/* Routine mach_port_space_basic_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_space_basic_info\n(\n\tipc_space_inspect_t task,\n\tipc_info_space_basic_t *basic_info\n);\n\n/* Routine mach_port_guard_with_flags */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_guard_with_flags\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_context_t guard,\n\tuint64_t flags\n);\n\n/* Routine mach_port_swap_guard */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_swap_guard\n(\n\tipc_space_t task,\n\tmach_port_name_t name,\n\tmach_port_context_t old_guard,\n\tmach_port_context_t new_guard\n);\n\n/* Routine mach_port_kobject_description */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_port_kobject_description\n(\n\tipc_space_read_t task,\n\tmach_port_name_t name,\n\tnatural_t *object_type,\n\tmach_vm_address_t *object_addr,\n\tkobject_description_t description\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__mach_port_subsystem__defined\n#define __Request__mach_port_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_port_names_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_type_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t old_name;\n\t\tmach_port_name_t new_name;\n\t} __Request__mach_port_rename_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_right_t right;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_allocate_name_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_right_t right;\n\t} __Request__mach_port_allocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_deallocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_right_t right;\n\t} __Request__mach_port_get_refs_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_right_t right;\n\t\tmach_port_delta_t delta;\n\t} __Request__mach_port_mod_refs_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_msg_trailer_type_t trailer_type;\n\t\tmach_port_seqno_t request_seqnop;\n\t\tmach_msg_type_number_t trailer_infopCnt;\n\t} __Request__mach_port_peek_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_mscount_t mscount;\n\t} __Request__mach_port_set_mscount_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_get_set_status_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t member;\n\t\tmach_port_name_t after;\n\t} __Request__mach_port_move_member_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t notify;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_msg_id_t msgid;\n\t\tmach_port_mscount_t sync;\n\t} __Request__mach_port_request_notification_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t poly;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_insert_right_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_msg_type_name_t msgt_name;\n\t} __Request__mach_port_extract_right_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_seqno_t seqno;\n\t} __Request__mach_port_set_seqno_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_flavor_t flavor;\n\t\tmach_msg_type_number_t port_info_outCnt;\n\t} __Request__mach_port_get_attributes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_flavor_t flavor;\n\t\tmach_msg_type_number_t port_infoCnt;\n\t\tinteger_t port_info[17];\n\t} __Request__mach_port_set_attributes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_right_t right;\n\t\tmach_port_qos_t qos;\n\t} __Request__mach_port_allocate_qos_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t proto;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_port_right_t right;\n\t\tmach_port_qos_t qos;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_allocate_full_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint table_entries;\n\t} __Request__task_set_port_space_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_get_srights_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_port_space_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_dnrequest_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_kernel_object_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_name_t pset;\n\t} __Request__mach_port_insert_member_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_name_t pset;\n\t} __Request__mach_port_extract_member_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_get_context_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_context_t context;\n\t} __Request__mach_port_set_context_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_kobject_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t options;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_port_context_t context;\n\t} __Request__mach_port_construct_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_delta_t srdelta;\n\t\tmach_port_context_t guard;\n\t} __Request__mach_port_destruct_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_context_t guard;\n\t\tboolean_t strict;\n\t} __Request__mach_port_guard_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_context_t guard;\n\t} __Request__mach_port_unguard_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_port_space_basic_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_context_t guard;\n\t\tuint64_t flags;\n\t} __Request__mach_port_guard_with_flags_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t\tmach_port_context_t old_guard;\n\t\tmach_port_context_t new_guard;\n\t} __Request__mach_port_swap_guard_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t name;\n\t} __Request__mach_port_kobject_description_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__mach_port_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__mach_port_subsystem__defined\n#define __RequestUnion__mach_port_subsystem__defined\nunion __RequestUnion__mach_port_subsystem {\n\t__Request__mach_port_names_t Request_mach_port_names;\n\t__Request__mach_port_type_t Request_mach_port_type;\n\t__Request__mach_port_rename_t Request_mach_port_rename;\n\t__Request__mach_port_allocate_name_t Request_mach_port_allocate_name;\n\t__Request__mach_port_allocate_t Request_mach_port_allocate;\n\t__Request__mach_port_destroy_t Request_mach_port_destroy;\n\t__Request__mach_port_deallocate_t Request_mach_port_deallocate;\n\t__Request__mach_port_get_refs_t Request_mach_port_get_refs;\n\t__Request__mach_port_mod_refs_t Request_mach_port_mod_refs;\n\t__Request__mach_port_peek_t Request_mach_port_peek;\n\t__Request__mach_port_set_mscount_t Request_mach_port_set_mscount;\n\t__Request__mach_port_get_set_status_t Request_mach_port_get_set_status;\n\t__Request__mach_port_move_member_t Request_mach_port_move_member;\n\t__Request__mach_port_request_notification_t Request_mach_port_request_notification;\n\t__Request__mach_port_insert_right_t Request_mach_port_insert_right;\n\t__Request__mach_port_extract_right_t Request_mach_port_extract_right;\n\t__Request__mach_port_set_seqno_t Request_mach_port_set_seqno;\n\t__Request__mach_port_get_attributes_t Request_mach_port_get_attributes;\n\t__Request__mach_port_set_attributes_t Request_mach_port_set_attributes;\n\t__Request__mach_port_allocate_qos_t Request_mach_port_allocate_qos;\n\t__Request__mach_port_allocate_full_t Request_mach_port_allocate_full;\n\t__Request__task_set_port_space_t Request_task_set_port_space;\n\t__Request__mach_port_get_srights_t Request_mach_port_get_srights;\n\t__Request__mach_port_space_info_t Request_mach_port_space_info;\n\t__Request__mach_port_dnrequest_info_t Request_mach_port_dnrequest_info;\n\t__Request__mach_port_kernel_object_t Request_mach_port_kernel_object;\n\t__Request__mach_port_insert_member_t Request_mach_port_insert_member;\n\t__Request__mach_port_extract_member_t Request_mach_port_extract_member;\n\t__Request__mach_port_get_context_t Request_mach_port_get_context;\n\t__Request__mach_port_set_context_t Request_mach_port_set_context;\n\t__Request__mach_port_kobject_t Request_mach_port_kobject;\n\t__Request__mach_port_construct_t Request_mach_port_construct;\n\t__Request__mach_port_destruct_t Request_mach_port_destruct;\n\t__Request__mach_port_guard_t Request_mach_port_guard;\n\t__Request__mach_port_unguard_t Request_mach_port_unguard;\n\t__Request__mach_port_space_basic_info_t Request_mach_port_space_basic_info;\n\t__Request__mach_port_guard_with_flags_t Request_mach_port_guard_with_flags;\n\t__Request__mach_port_swap_guard_t Request_mach_port_swap_guard;\n\t__Request__mach_port_kobject_description_t Request_mach_port_kobject_description;\n};\n#endif /* !__RequestUnion__mach_port_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__mach_port_subsystem__defined\n#define __Reply__mach_port_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t names;\n\t\tmach_msg_ool_descriptor_t types;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t namesCnt;\n\t\tmach_msg_type_number_t typesCnt;\n\t} __Reply__mach_port_names_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_type_t ptype;\n\t} __Reply__mach_port_type_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_rename_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_allocate_name_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_name_t name;\n\t} __Reply__mach_port_allocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_deallocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_urefs_t refs;\n\t} __Reply__mach_port_get_refs_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_mod_refs_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_seqno_t request_seqnop;\n\t\tmach_msg_size_t msg_sizep;\n\t\tmach_msg_id_t msg_idp;\n\t\tmach_msg_type_number_t trailer_infopCnt;\n\t\tchar trailer_infop[68];\n\t} __Reply__mach_port_peek_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_set_mscount_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t members;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t membersCnt;\n\t} __Reply__mach_port_get_set_status_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_move_member_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t previous;\n\t\t/* end of the kernel processed data */\n\t} __Reply__mach_port_request_notification_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_insert_right_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t poly;\n\t\t/* end of the kernel processed data */\n\t} __Reply__mach_port_extract_right_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_set_seqno_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t port_info_outCnt;\n\t\tinteger_t port_info_out[17];\n\t} __Reply__mach_port_get_attributes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_set_attributes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_qos_t qos;\n\t\tmach_port_name_t name;\n\t} __Reply__mach_port_allocate_qos_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_qos_t qos;\n\t\tmach_port_name_t name;\n\t} __Reply__mach_port_allocate_full_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_port_space_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_rights_t srights;\n\t} __Reply__mach_port_get_srights_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t table_info;\n\t\tmach_msg_ool_descriptor_t tree_info;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tipc_info_space_t space_info;\n\t\tmach_msg_type_number_t table_infoCnt;\n\t\tmach_msg_type_number_t tree_infoCnt;\n\t} __Reply__mach_port_space_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tunsigned dnr_total;\n\t\tunsigned dnr_used;\n\t} __Reply__mach_port_dnrequest_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tunsigned object_type;\n\t\tunsigned object_addr;\n\t} __Reply__mach_port_kernel_object_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_insert_member_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_extract_member_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_context_t context;\n\t} __Reply__mach_port_get_context_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_set_context_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tnatural_t object_type;\n\t\tmach_vm_address_t object_addr;\n\t} __Reply__mach_port_kobject_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_port_name_t name;\n\t} __Reply__mach_port_construct_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_destruct_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_guard_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_unguard_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tipc_info_space_basic_t basic_info;\n\t} __Reply__mach_port_space_basic_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_guard_with_flags_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_port_swap_guard_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tnatural_t object_type;\n\t\tmach_vm_address_t object_addr;\n\t\tmach_msg_type_number_t descriptionOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t descriptionCnt;\n\t\tchar description[512];\n\t} __Reply__mach_port_kobject_description_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__mach_port_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__mach_port_subsystem__defined\n#define __ReplyUnion__mach_port_subsystem__defined\nunion __ReplyUnion__mach_port_subsystem {\n\t__Reply__mach_port_names_t Reply_mach_port_names;\n\t__Reply__mach_port_type_t Reply_mach_port_type;\n\t__Reply__mach_port_rename_t Reply_mach_port_rename;\n\t__Reply__mach_port_allocate_name_t Reply_mach_port_allocate_name;\n\t__Reply__mach_port_allocate_t Reply_mach_port_allocate;\n\t__Reply__mach_port_destroy_t Reply_mach_port_destroy;\n\t__Reply__mach_port_deallocate_t Reply_mach_port_deallocate;\n\t__Reply__mach_port_get_refs_t Reply_mach_port_get_refs;\n\t__Reply__mach_port_mod_refs_t Reply_mach_port_mod_refs;\n\t__Reply__mach_port_peek_t Reply_mach_port_peek;\n\t__Reply__mach_port_set_mscount_t Reply_mach_port_set_mscount;\n\t__Reply__mach_port_get_set_status_t Reply_mach_port_get_set_status;\n\t__Reply__mach_port_move_member_t Reply_mach_port_move_member;\n\t__Reply__mach_port_request_notification_t Reply_mach_port_request_notification;\n\t__Reply__mach_port_insert_right_t Reply_mach_port_insert_right;\n\t__Reply__mach_port_extract_right_t Reply_mach_port_extract_right;\n\t__Reply__mach_port_set_seqno_t Reply_mach_port_set_seqno;\n\t__Reply__mach_port_get_attributes_t Reply_mach_port_get_attributes;\n\t__Reply__mach_port_set_attributes_t Reply_mach_port_set_attributes;\n\t__Reply__mach_port_allocate_qos_t Reply_mach_port_allocate_qos;\n\t__Reply__mach_port_allocate_full_t Reply_mach_port_allocate_full;\n\t__Reply__task_set_port_space_t Reply_task_set_port_space;\n\t__Reply__mach_port_get_srights_t Reply_mach_port_get_srights;\n\t__Reply__mach_port_space_info_t Reply_mach_port_space_info;\n\t__Reply__mach_port_dnrequest_info_t Reply_mach_port_dnrequest_info;\n\t__Reply__mach_port_kernel_object_t Reply_mach_port_kernel_object;\n\t__Reply__mach_port_insert_member_t Reply_mach_port_insert_member;\n\t__Reply__mach_port_extract_member_t Reply_mach_port_extract_member;\n\t__Reply__mach_port_get_context_t Reply_mach_port_get_context;\n\t__Reply__mach_port_set_context_t Reply_mach_port_set_context;\n\t__Reply__mach_port_kobject_t Reply_mach_port_kobject;\n\t__Reply__mach_port_construct_t Reply_mach_port_construct;\n\t__Reply__mach_port_destruct_t Reply_mach_port_destruct;\n\t__Reply__mach_port_guard_t Reply_mach_port_guard;\n\t__Reply__mach_port_unguard_t Reply_mach_port_unguard;\n\t__Reply__mach_port_space_basic_info_t Reply_mach_port_space_basic_info;\n\t__Reply__mach_port_guard_with_flags_t Reply_mach_port_guard_with_flags;\n\t__Reply__mach_port_swap_guard_t Reply_mach_port_swap_guard;\n\t__Reply__mach_port_kobject_description_t Reply_mach_port_kobject_description;\n};\n#endif /* !__RequestUnion__mach_port_subsystem__defined */\n\n#ifndef subsystem_to_name_map_mach_port\n#define subsystem_to_name_map_mach_port \\\n    { \"mach_port_names\", 3200 },\\\n    { \"mach_port_type\", 3201 },\\\n    { \"mach_port_rename\", 3202 },\\\n    { \"mach_port_allocate_name\", 3203 },\\\n    { \"mach_port_allocate\", 3204 },\\\n    { \"mach_port_destroy\", 3205 },\\\n    { \"mach_port_deallocate\", 3206 },\\\n    { \"mach_port_get_refs\", 3207 },\\\n    { \"mach_port_mod_refs\", 3208 },\\\n    { \"mach_port_peek\", 3209 },\\\n    { \"mach_port_set_mscount\", 3210 },\\\n    { \"mach_port_get_set_status\", 3211 },\\\n    { \"mach_port_move_member\", 3212 },\\\n    { \"mach_port_request_notification\", 3213 },\\\n    { \"mach_port_insert_right\", 3214 },\\\n    { \"mach_port_extract_right\", 3215 },\\\n    { \"mach_port_set_seqno\", 3216 },\\\n    { \"mach_port_get_attributes\", 3217 },\\\n    { \"mach_port_set_attributes\", 3218 },\\\n    { \"mach_port_allocate_qos\", 3219 },\\\n    { \"mach_port_allocate_full\", 3220 },\\\n    { \"task_set_port_space\", 3221 },\\\n    { \"mach_port_get_srights\", 3222 },\\\n    { \"mach_port_space_info\", 3223 },\\\n    { \"mach_port_dnrequest_info\", 3224 },\\\n    { \"mach_port_kernel_object\", 3225 },\\\n    { \"mach_port_insert_member\", 3226 },\\\n    { \"mach_port_extract_member\", 3227 },\\\n    { \"mach_port_get_context\", 3228 },\\\n    { \"mach_port_set_context\", 3229 },\\\n    { \"mach_port_kobject\", 3230 },\\\n    { \"mach_port_construct\", 3231 },\\\n    { \"mach_port_destruct\", 3232 },\\\n    { \"mach_port_guard\", 3233 },\\\n    { \"mach_port_unguard\", 3234 },\\\n    { \"mach_port_space_basic_info\", 3235 },\\\n    { \"mach_port_guard_with_flags\", 3237 },\\\n    { \"mach_port_swap_guard\", 3238 },\\\n    { \"mach_port_kobject_description\", 3239 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _mach_port_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/mach_vm.h",
    "content": "#ifndef\t_mach_vm_user_\n#define\t_mach_vm_user_\n\n/* Module mach_vm */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tmach_vm_MSG_COUNT\n#define\tmach_vm_MSG_COUNT\t22\n#endif\t/* mach_vm_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach_debug/mach_debug_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine mach_vm_allocate */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_allocate\n(\n\tvm_map_t target,\n\tmach_vm_address_t *address,\n\tmach_vm_size_t size,\n\tint flags\n);\n\n/* Routine mach_vm_deallocate */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_deallocate\n(\n\tvm_map_t target,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size\n);\n\n/* Routine mach_vm_protect */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_protect\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size,\n\tboolean_t set_maximum,\n\tvm_prot_t new_protection\n);\n\n/* Routine mach_vm_inherit */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_inherit\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size,\n\tvm_inherit_t new_inheritance\n);\n\n/* Routine mach_vm_read */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_read\n(\n\tvm_map_read_t target_task,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size,\n\tvm_offset_t *data,\n\tmach_msg_type_number_t *dataCnt\n);\n\n/* Routine mach_vm_read_list */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_read_list\n(\n\tvm_map_read_t target_task,\n\tmach_vm_read_entry_t data_list,\n\tnatural_t count\n);\n\n/* Routine mach_vm_write */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_write\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t address,\n\tvm_offset_t data,\n\tmach_msg_type_number_t dataCnt\n);\n\n/* Routine mach_vm_copy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_copy\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t source_address,\n\tmach_vm_size_t size,\n\tmach_vm_address_t dest_address\n);\n\n/* Routine mach_vm_read_overwrite */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_read_overwrite\n(\n\tvm_map_read_t target_task,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size,\n\tmach_vm_address_t data,\n\tmach_vm_size_t *outsize\n);\n\n/* Routine mach_vm_msync */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_msync\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size,\n\tvm_sync_t sync_flags\n);\n\n/* Routine mach_vm_behavior_set */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_behavior_set\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size,\n\tvm_behavior_t new_behavior\n);\n\n/* Routine mach_vm_map */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_map\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t *address,\n\tmach_vm_size_t size,\n\tmach_vm_offset_t mask,\n\tint flags,\n\tmem_entry_name_port_t object,\n\tmemory_object_offset_t offset,\n\tboolean_t copy,\n\tvm_prot_t cur_protection,\n\tvm_prot_t max_protection,\n\tvm_inherit_t inheritance\n);\n\n/* Routine mach_vm_machine_attribute */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_machine_attribute\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t address,\n\tmach_vm_size_t size,\n\tvm_machine_attribute_t attribute,\n\tvm_machine_attribute_val_t *value\n);\n\n/* Routine mach_vm_remap */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_remap\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t *target_address,\n\tmach_vm_size_t size,\n\tmach_vm_offset_t mask,\n\tint flags,\n\tvm_map_t src_task,\n\tmach_vm_address_t src_address,\n\tboolean_t copy,\n\tvm_prot_t *cur_protection,\n\tvm_prot_t *max_protection,\n\tvm_inherit_t inheritance\n);\n\n/* Routine mach_vm_page_query */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_page_query\n(\n\tvm_map_read_t target_map,\n\tmach_vm_offset_t offset,\n\tinteger_t *disposition,\n\tinteger_t *ref_count\n);\n\n/* Routine mach_vm_region_recurse */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_region_recurse\n(\n\tvm_map_read_t target_task,\n\tmach_vm_address_t *address,\n\tmach_vm_size_t *size,\n\tnatural_t *nesting_depth,\n\tvm_region_recurse_info_t info,\n\tmach_msg_type_number_t *infoCnt\n);\n\n/* Routine mach_vm_region */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_region\n(\n\tvm_map_read_t target_task,\n\tmach_vm_address_t *address,\n\tmach_vm_size_t *size,\n\tvm_region_flavor_t flavor,\n\tvm_region_info_t info,\n\tmach_msg_type_number_t *infoCnt,\n\tmach_port_t *object_name\n);\n\n/* Routine _mach_make_memory_entry */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t _mach_make_memory_entry\n(\n\tvm_map_t target_task,\n\tmemory_object_size_t *size,\n\tmemory_object_offset_t offset,\n\tvm_prot_t permission,\n\tmem_entry_name_port_t *object_handle,\n\tmem_entry_name_port_t parent_handle\n);\n\n/* Routine mach_vm_purgable_control */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_purgable_control\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t address,\n\tvm_purgable_t control,\n\tint *state\n);\n\n/* Routine mach_vm_page_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_page_info\n(\n\tvm_map_read_t target_task,\n\tmach_vm_address_t address,\n\tvm_page_info_flavor_t flavor,\n\tvm_page_info_t info,\n\tmach_msg_type_number_t *infoCnt\n);\n\n/* Routine mach_vm_page_range_query */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_page_range_query\n(\n\tvm_map_read_t target_map,\n\tmach_vm_offset_t address,\n\tmach_vm_size_t size,\n\tmach_vm_address_t dispositions,\n\tmach_vm_size_t *dispositions_count\n);\n\n/* Routine mach_vm_remap_new */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_remap_new\n(\n\tvm_map_t target_task,\n\tmach_vm_address_t *target_address,\n\tmach_vm_size_t size,\n\tmach_vm_offset_t mask,\n\tint flags,\n\tvm_map_read_t src_task,\n\tmach_vm_address_t src_address,\n\tboolean_t copy,\n\tvm_prot_t *cur_protection,\n\tvm_prot_t *max_protection,\n\tvm_inherit_t inheritance\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__mach_vm_subsystem__defined\n#define __Request__mach_vm_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tint flags;\n\t} __Request__mach_vm_allocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t} __Request__mach_vm_deallocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tboolean_t set_maximum;\n\t\tvm_prot_t new_protection;\n\t} __Request__mach_vm_protect_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tvm_inherit_t new_inheritance;\n\t} __Request__mach_vm_inherit_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t} __Request__mach_vm_read_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_read_entry_t data_list;\n\t\tnatural_t count;\n\t} __Request__mach_vm_read_list_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t data;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_msg_type_number_t dataCnt;\n\t} __Request__mach_vm_write_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t source_address;\n\t\tmach_vm_size_t size;\n\t\tmach_vm_address_t dest_address;\n\t} __Request__mach_vm_copy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tmach_vm_address_t data;\n\t} __Request__mach_vm_read_overwrite_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tvm_sync_t sync_flags;\n\t} __Request__mach_vm_msync_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tvm_behavior_t new_behavior;\n\t} __Request__mach_vm_behavior_set_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tmach_vm_offset_t mask;\n\t\tint flags;\n\t\tmemory_object_offset_t offset;\n\t\tboolean_t copy;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t\tvm_inherit_t inheritance;\n\t} __Request__mach_vm_map_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tvm_machine_attribute_t attribute;\n\t\tvm_machine_attribute_val_t value;\n\t} __Request__mach_vm_machine_attribute_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t src_task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t target_address;\n\t\tmach_vm_size_t size;\n\t\tmach_vm_offset_t mask;\n\t\tint flags;\n\t\tmach_vm_address_t src_address;\n\t\tboolean_t copy;\n\t\tvm_inherit_t inheritance;\n\t} __Request__mach_vm_remap_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_offset_t offset;\n\t} __Request__mach_vm_page_query_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tnatural_t nesting_depth;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Request__mach_vm_region_recurse_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tvm_region_flavor_t flavor;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Request__mach_vm_region_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t parent_handle;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmemory_object_size_t size;\n\t\tmemory_object_offset_t offset;\n\t\tvm_prot_t permission;\n\t} __Request___mach_make_memory_entry_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tvm_purgable_t control;\n\t\tint state;\n\t} __Request__mach_vm_purgable_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tvm_page_info_flavor_t flavor;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Request__mach_vm_page_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_vm_offset_t address;\n\t\tmach_vm_size_t size;\n\t\tmach_vm_address_t dispositions;\n\t\tmach_vm_size_t dispositions_count;\n\t} __Request__mach_vm_page_range_query_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t src_task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t target_address;\n\t\tmach_vm_size_t size;\n\t\tmach_vm_offset_t mask;\n\t\tint flags;\n\t\tmach_vm_address_t src_address;\n\t\tboolean_t copy;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t\tvm_inherit_t inheritance;\n\t} __Request__mach_vm_remap_new_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__mach_vm_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__mach_vm_subsystem__defined\n#define __RequestUnion__mach_vm_subsystem__defined\nunion __RequestUnion__mach_vm_subsystem {\n\t__Request__mach_vm_allocate_t Request_mach_vm_allocate;\n\t__Request__mach_vm_deallocate_t Request_mach_vm_deallocate;\n\t__Request__mach_vm_protect_t Request_mach_vm_protect;\n\t__Request__mach_vm_inherit_t Request_mach_vm_inherit;\n\t__Request__mach_vm_read_t Request_mach_vm_read;\n\t__Request__mach_vm_read_list_t Request_mach_vm_read_list;\n\t__Request__mach_vm_write_t Request_mach_vm_write;\n\t__Request__mach_vm_copy_t Request_mach_vm_copy;\n\t__Request__mach_vm_read_overwrite_t Request_mach_vm_read_overwrite;\n\t__Request__mach_vm_msync_t Request_mach_vm_msync;\n\t__Request__mach_vm_behavior_set_t Request_mach_vm_behavior_set;\n\t__Request__mach_vm_map_t Request_mach_vm_map;\n\t__Request__mach_vm_machine_attribute_t Request_mach_vm_machine_attribute;\n\t__Request__mach_vm_remap_t Request_mach_vm_remap;\n\t__Request__mach_vm_page_query_t Request_mach_vm_page_query;\n\t__Request__mach_vm_region_recurse_t Request_mach_vm_region_recurse;\n\t__Request__mach_vm_region_t Request_mach_vm_region;\n\t__Request___mach_make_memory_entry_t Request__mach_make_memory_entry;\n\t__Request__mach_vm_purgable_control_t Request_mach_vm_purgable_control;\n\t__Request__mach_vm_page_info_t Request_mach_vm_page_info;\n\t__Request__mach_vm_page_range_query_t Request_mach_vm_page_range_query;\n\t__Request__mach_vm_remap_new_t Request_mach_vm_remap_new;\n};\n#endif /* !__RequestUnion__mach_vm_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__mach_vm_subsystem__defined\n#define __Reply__mach_vm_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_address_t address;\n\t} __Reply__mach_vm_allocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_vm_deallocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_vm_protect_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_vm_inherit_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t data;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t dataCnt;\n\t} __Reply__mach_vm_read_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_read_entry_t data_list;\n\t} __Reply__mach_vm_read_list_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_vm_write_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_vm_copy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_size_t outsize;\n\t} __Reply__mach_vm_read_overwrite_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_vm_msync_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_vm_behavior_set_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_address_t address;\n\t} __Reply__mach_vm_map_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_machine_attribute_val_t value;\n\t} __Reply__mach_vm_machine_attribute_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_address_t target_address;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t} __Reply__mach_vm_remap_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tinteger_t disposition;\n\t\tinteger_t ref_count;\n\t} __Reply__mach_vm_page_query_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tnatural_t nesting_depth;\n\t\tmach_msg_type_number_t infoCnt;\n\t\tint info[19];\n\t} __Reply__mach_vm_region_recurse_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object_name;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_vm_address_t address;\n\t\tmach_vm_size_t size;\n\t\tmach_msg_type_number_t infoCnt;\n\t\tint info[10];\n\t} __Reply__mach_vm_region_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object_handle;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmemory_object_size_t size;\n\t} __Reply___mach_make_memory_entry_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tint state;\n\t} __Reply__mach_vm_purgable_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t infoCnt;\n\t\tint info[32];\n\t} __Reply__mach_vm_page_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_size_t dispositions_count;\n\t} __Reply__mach_vm_page_range_query_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_address_t target_address;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t} __Reply__mach_vm_remap_new_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__mach_vm_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__mach_vm_subsystem__defined\n#define __ReplyUnion__mach_vm_subsystem__defined\nunion __ReplyUnion__mach_vm_subsystem {\n\t__Reply__mach_vm_allocate_t Reply_mach_vm_allocate;\n\t__Reply__mach_vm_deallocate_t Reply_mach_vm_deallocate;\n\t__Reply__mach_vm_protect_t Reply_mach_vm_protect;\n\t__Reply__mach_vm_inherit_t Reply_mach_vm_inherit;\n\t__Reply__mach_vm_read_t Reply_mach_vm_read;\n\t__Reply__mach_vm_read_list_t Reply_mach_vm_read_list;\n\t__Reply__mach_vm_write_t Reply_mach_vm_write;\n\t__Reply__mach_vm_copy_t Reply_mach_vm_copy;\n\t__Reply__mach_vm_read_overwrite_t Reply_mach_vm_read_overwrite;\n\t__Reply__mach_vm_msync_t Reply_mach_vm_msync;\n\t__Reply__mach_vm_behavior_set_t Reply_mach_vm_behavior_set;\n\t__Reply__mach_vm_map_t Reply_mach_vm_map;\n\t__Reply__mach_vm_machine_attribute_t Reply_mach_vm_machine_attribute;\n\t__Reply__mach_vm_remap_t Reply_mach_vm_remap;\n\t__Reply__mach_vm_page_query_t Reply_mach_vm_page_query;\n\t__Reply__mach_vm_region_recurse_t Reply_mach_vm_region_recurse;\n\t__Reply__mach_vm_region_t Reply_mach_vm_region;\n\t__Reply___mach_make_memory_entry_t Reply__mach_make_memory_entry;\n\t__Reply__mach_vm_purgable_control_t Reply_mach_vm_purgable_control;\n\t__Reply__mach_vm_page_info_t Reply_mach_vm_page_info;\n\t__Reply__mach_vm_page_range_query_t Reply_mach_vm_page_range_query;\n\t__Reply__mach_vm_remap_new_t Reply_mach_vm_remap_new;\n};\n#endif /* !__RequestUnion__mach_vm_subsystem__defined */\n\n#ifndef subsystem_to_name_map_mach_vm\n#define subsystem_to_name_map_mach_vm \\\n    { \"mach_vm_allocate\", 4800 },\\\n    { \"mach_vm_deallocate\", 4801 },\\\n    { \"mach_vm_protect\", 4802 },\\\n    { \"mach_vm_inherit\", 4803 },\\\n    { \"mach_vm_read\", 4804 },\\\n    { \"mach_vm_read_list\", 4805 },\\\n    { \"mach_vm_write\", 4806 },\\\n    { \"mach_vm_copy\", 4807 },\\\n    { \"mach_vm_read_overwrite\", 4808 },\\\n    { \"mach_vm_msync\", 4809 },\\\n    { \"mach_vm_behavior_set\", 4810 },\\\n    { \"mach_vm_map\", 4811 },\\\n    { \"mach_vm_machine_attribute\", 4812 },\\\n    { \"mach_vm_remap\", 4813 },\\\n    { \"mach_vm_page_query\", 4814 },\\\n    { \"mach_vm_region_recurse\", 4815 },\\\n    { \"mach_vm_region\", 4816 },\\\n    { \"_mach_make_memory_entry\", 4817 },\\\n    { \"mach_vm_purgable_control\", 4818 },\\\n    { \"mach_vm_page_info\", 4819 },\\\n    { \"mach_vm_page_range_query\", 4820 },\\\n    { \"mach_vm_remap_new\", 4821 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _mach_vm_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/mach_voucher.h",
    "content": "#ifndef\t_mach_voucher_user_\n#define\t_mach_voucher_user_\n\n/* Module mach_voucher */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tmach_voucher_MSG_COUNT\n#define\tmach_voucher_MSG_COUNT\t5\n#endif\t/* mach_voucher_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine mach_voucher_extract_attr_content */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_voucher_extract_attr_content\n(\n\tipc_voucher_t voucher,\n\tmach_voucher_attr_key_t key,\n\tmach_voucher_attr_content_t content,\n\tmach_msg_type_number_t *contentCnt\n);\n\n/* Routine mach_voucher_extract_attr_recipe */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_voucher_extract_attr_recipe\n(\n\tipc_voucher_t voucher,\n\tmach_voucher_attr_key_t key,\n\tmach_voucher_attr_raw_recipe_t recipe,\n\tmach_msg_type_number_t *recipeCnt\n);\n\n/* Routine mach_voucher_extract_all_attr_recipes */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_voucher_extract_all_attr_recipes\n(\n\tipc_voucher_t voucher,\n\tmach_voucher_attr_raw_recipe_array_t recipes,\n\tmach_msg_type_number_t *recipesCnt\n);\n\n/* Routine mach_voucher_attr_command */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_voucher_attr_command\n(\n\tipc_voucher_t voucher,\n\tmach_voucher_attr_key_t key,\n\tmach_voucher_attr_command_t command,\n\tmach_voucher_attr_content_t in_content,\n\tmach_msg_type_number_t in_contentCnt,\n\tmach_voucher_attr_content_t out_content,\n\tmach_msg_type_number_t *out_contentCnt\n);\n\n/* Routine mach_voucher_debug_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_voucher_debug_info\n(\n\tipc_space_read_t task,\n\tmach_port_name_t voucher_name,\n\tmach_voucher_attr_raw_recipe_array_t recipes,\n\tmach_msg_type_number_t *recipesCnt\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__mach_voucher_subsystem__defined\n#define __Request__mach_voucher_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_voucher_attr_key_t key;\n\t\tmach_msg_type_number_t contentCnt;\n\t} __Request__mach_voucher_extract_attr_content_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_voucher_attr_key_t key;\n\t\tmach_msg_type_number_t recipeCnt;\n\t} __Request__mach_voucher_extract_attr_recipe_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t recipesCnt;\n\t} __Request__mach_voucher_extract_all_attr_recipes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_voucher_attr_key_t key;\n\t\tmach_voucher_attr_command_t command;\n\t\tmach_msg_type_number_t in_contentCnt;\n\t\tuint8_t in_content[4096];\n\t\tmach_msg_type_number_t out_contentCnt;\n\t} __Request__mach_voucher_attr_command_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t voucher_name;\n\t\tmach_msg_type_number_t recipesCnt;\n\t} __Request__mach_voucher_debug_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__mach_voucher_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__mach_voucher_subsystem__defined\n#define __RequestUnion__mach_voucher_subsystem__defined\nunion __RequestUnion__mach_voucher_subsystem {\n\t__Request__mach_voucher_extract_attr_content_t Request_mach_voucher_extract_attr_content;\n\t__Request__mach_voucher_extract_attr_recipe_t Request_mach_voucher_extract_attr_recipe;\n\t__Request__mach_voucher_extract_all_attr_recipes_t Request_mach_voucher_extract_all_attr_recipes;\n\t__Request__mach_voucher_attr_command_t Request_mach_voucher_attr_command;\n\t__Request__mach_voucher_debug_info_t Request_mach_voucher_debug_info;\n};\n#endif /* !__RequestUnion__mach_voucher_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__mach_voucher_subsystem__defined\n#define __Reply__mach_voucher_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t contentCnt;\n\t\tuint8_t content[4096];\n\t} __Reply__mach_voucher_extract_attr_content_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t recipeCnt;\n\t\tuint8_t recipe[4096];\n\t} __Reply__mach_voucher_extract_attr_recipe_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t recipesCnt;\n\t\tuint8_t recipes[5120];\n\t} __Reply__mach_voucher_extract_all_attr_recipes_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t out_contentCnt;\n\t\tuint8_t out_content[4096];\n\t} __Reply__mach_voucher_attr_command_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t recipesCnt;\n\t\tuint8_t recipes[5120];\n\t} __Reply__mach_voucher_debug_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__mach_voucher_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__mach_voucher_subsystem__defined\n#define __ReplyUnion__mach_voucher_subsystem__defined\nunion __ReplyUnion__mach_voucher_subsystem {\n\t__Reply__mach_voucher_extract_attr_content_t Reply_mach_voucher_extract_attr_content;\n\t__Reply__mach_voucher_extract_attr_recipe_t Reply_mach_voucher_extract_attr_recipe;\n\t__Reply__mach_voucher_extract_all_attr_recipes_t Reply_mach_voucher_extract_all_attr_recipes;\n\t__Reply__mach_voucher_attr_command_t Reply_mach_voucher_attr_command;\n\t__Reply__mach_voucher_debug_info_t Reply_mach_voucher_debug_info;\n};\n#endif /* !__RequestUnion__mach_voucher_subsystem__defined */\n\n#ifndef subsystem_to_name_map_mach_voucher\n#define subsystem_to_name_map_mach_voucher \\\n    { \"mach_voucher_extract_attr_content\", 5400 },\\\n    { \"mach_voucher_extract_attr_recipe\", 5401 },\\\n    { \"mach_voucher_extract_all_attr_recipes\", 5402 },\\\n    { \"mach_voucher_attr_command\", 5403 },\\\n    { \"mach_voucher_debug_info\", 5404 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _mach_voucher_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/memory_entry.h",
    "content": "#ifndef\t_memory_entry_user_\n#define\t_memory_entry_user_\n\n/* Module memory_entry */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tmemory_entry_MSG_COUNT\n#define\tmemory_entry_MSG_COUNT\t3\n#endif\t/* memory_entry_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach_debug/mach_debug_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine mach_memory_entry_purgable_control */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_memory_entry_purgable_control\n(\n\tmem_entry_name_port_t mem_entry,\n\tvm_purgable_t control,\n\tint *state\n);\n\n/* Routine mach_memory_entry_access_tracking */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_memory_entry_access_tracking\n(\n\tmem_entry_name_port_t mem_entry,\n\tint *access_tracking,\n\tuint32_t *access_tracking_reads,\n\tuint32_t *access_tracking_writes\n);\n\n/* Routine mach_memory_entry_ownership */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_memory_entry_ownership\n(\n\tmem_entry_name_port_t mem_entry,\n\ttask_t owner,\n\tint ledger_tag,\n\tint ledger_flags\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__memory_entry_subsystem__defined\n#define __Request__memory_entry_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_purgable_t control;\n\t\tint state;\n\t} __Request__mach_memory_entry_purgable_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint access_tracking;\n\t} __Request__mach_memory_entry_access_tracking_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t owner;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tint ledger_tag;\n\t\tint ledger_flags;\n\t} __Request__mach_memory_entry_ownership_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__memory_entry_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__memory_entry_subsystem__defined\n#define __RequestUnion__memory_entry_subsystem__defined\nunion __RequestUnion__memory_entry_subsystem {\n\t__Request__mach_memory_entry_purgable_control_t Request_mach_memory_entry_purgable_control;\n\t__Request__mach_memory_entry_access_tracking_t Request_mach_memory_entry_access_tracking;\n\t__Request__mach_memory_entry_ownership_t Request_mach_memory_entry_ownership;\n};\n#endif /* !__RequestUnion__memory_entry_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__memory_entry_subsystem__defined\n#define __Reply__memory_entry_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tint state;\n\t} __Reply__mach_memory_entry_purgable_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tint access_tracking;\n\t\tuint32_t access_tracking_reads;\n\t\tuint32_t access_tracking_writes;\n\t} __Reply__mach_memory_entry_access_tracking_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_memory_entry_ownership_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__memory_entry_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__memory_entry_subsystem__defined\n#define __ReplyUnion__memory_entry_subsystem__defined\nunion __ReplyUnion__memory_entry_subsystem {\n\t__Reply__mach_memory_entry_purgable_control_t Reply_mach_memory_entry_purgable_control;\n\t__Reply__mach_memory_entry_access_tracking_t Reply_mach_memory_entry_access_tracking;\n\t__Reply__mach_memory_entry_ownership_t Reply_mach_memory_entry_ownership;\n};\n#endif /* !__RequestUnion__memory_entry_subsystem__defined */\n\n#ifndef subsystem_to_name_map_memory_entry\n#define subsystem_to_name_map_memory_entry \\\n    { \"mach_memory_entry_purgable_control\", 4900 },\\\n    { \"mach_memory_entry_access_tracking\", 4901 },\\\n    { \"mach_memory_entry_ownership\", 4902 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _memory_entry_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/processor.h",
    "content": "#ifndef\t_processor_user_\n#define\t_processor_user_\n\n/* Module processor */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tprocessor_MSG_COUNT\n#define\tprocessor_MSG_COUNT\t6\n#endif\t/* processor_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine processor_start */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_start\n(\n\tprocessor_t processor\n);\n\n/* Routine processor_exit */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_exit\n(\n\tprocessor_t processor\n);\n\n/* Routine processor_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_info\n(\n\tprocessor_t processor,\n\tprocessor_flavor_t flavor,\n\thost_t *host,\n\tprocessor_info_t processor_info_out,\n\tmach_msg_type_number_t *processor_info_outCnt\n);\n\n/* Routine processor_control */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_control\n(\n\tprocessor_t processor,\n\tprocessor_info_t processor_cmd,\n\tmach_msg_type_number_t processor_cmdCnt\n);\n\n/* Routine processor_assign */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_assign\n(\n\tprocessor_t processor,\n\tprocessor_set_t new_set,\n\tboolean_t wait\n);\n\n/* Routine processor_get_assignment */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_get_assignment\n(\n\tprocessor_t processor,\n\tprocessor_set_name_t *assigned_set\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__processor_subsystem__defined\n#define __Request__processor_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_start_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_exit_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tprocessor_flavor_t flavor;\n\t\tmach_msg_type_number_t processor_info_outCnt;\n\t} __Request__processor_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t processor_cmdCnt;\n\t\tinteger_t processor_cmd[20];\n\t} __Request__processor_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_set;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tboolean_t wait;\n\t} __Request__processor_assign_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_get_assignment_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__processor_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__processor_subsystem__defined\n#define __RequestUnion__processor_subsystem__defined\nunion __RequestUnion__processor_subsystem {\n\t__Request__processor_start_t Request_processor_start;\n\t__Request__processor_exit_t Request_processor_exit;\n\t__Request__processor_info_t Request_processor_info;\n\t__Request__processor_control_t Request_processor_control;\n\t__Request__processor_assign_t Request_processor_assign;\n\t__Request__processor_get_assignment_t Request_processor_get_assignment;\n};\n#endif /* !__RequestUnion__processor_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__processor_subsystem__defined\n#define __Reply__processor_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_start_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_exit_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t host;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t processor_info_outCnt;\n\t\tinteger_t processor_info_out[20];\n\t} __Reply__processor_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_assign_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t assigned_set;\n\t\t/* end of the kernel processed data */\n\t} __Reply__processor_get_assignment_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__processor_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__processor_subsystem__defined\n#define __ReplyUnion__processor_subsystem__defined\nunion __ReplyUnion__processor_subsystem {\n\t__Reply__processor_start_t Reply_processor_start;\n\t__Reply__processor_exit_t Reply_processor_exit;\n\t__Reply__processor_info_t Reply_processor_info;\n\t__Reply__processor_control_t Reply_processor_control;\n\t__Reply__processor_assign_t Reply_processor_assign;\n\t__Reply__processor_get_assignment_t Reply_processor_get_assignment;\n};\n#endif /* !__RequestUnion__processor_subsystem__defined */\n\n#ifndef subsystem_to_name_map_processor\n#define subsystem_to_name_map_processor \\\n    { \"processor_start\", 3000 },\\\n    { \"processor_exit\", 3001 },\\\n    { \"processor_info\", 3002 },\\\n    { \"processor_control\", 3003 },\\\n    { \"processor_assign\", 3004 },\\\n    { \"processor_get_assignment\", 3005 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _processor_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/processor_set.h",
    "content": "#ifndef\t_processor_set_user_\n#define\t_processor_set_user_\n\n/* Module processor_set */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tprocessor_set_MSG_COUNT\n#define\tprocessor_set_MSG_COUNT\t11\n#endif\t/* processor_set_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine processor_set_statistics */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_statistics\n(\n\tprocessor_set_name_t pset,\n\tprocessor_set_flavor_t flavor,\n\tprocessor_set_info_t info_out,\n\tmach_msg_type_number_t *info_outCnt\n);\n\n/* Routine processor_set_destroy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_destroy\n(\n\tprocessor_set_t set\n);\n\n/* Routine processor_set_max_priority */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_max_priority\n(\n\tprocessor_set_t processor_set,\n\tint max_priority,\n\tboolean_t change_threads\n);\n\n/* Routine processor_set_policy_enable */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_policy_enable\n(\n\tprocessor_set_t processor_set,\n\tint policy\n);\n\n/* Routine processor_set_policy_disable */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_policy_disable\n(\n\tprocessor_set_t processor_set,\n\tint policy,\n\tboolean_t change_threads\n);\n\n/* Routine processor_set_tasks */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_tasks\n(\n\tprocessor_set_t processor_set,\n\ttask_array_t *task_list,\n\tmach_msg_type_number_t *task_listCnt\n);\n\n/* Routine processor_set_threads */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_threads\n(\n\tprocessor_set_t processor_set,\n\tthread_act_array_t *thread_list,\n\tmach_msg_type_number_t *thread_listCnt\n);\n\n/* Routine processor_set_policy_control */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_policy_control\n(\n\tprocessor_set_t pset,\n\tprocessor_set_flavor_t flavor,\n\tprocessor_set_info_t policy_info,\n\tmach_msg_type_number_t policy_infoCnt,\n\tboolean_t change\n);\n\n/* Routine processor_set_stack_usage */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_stack_usage\n(\n\tprocessor_set_t pset,\n\tunsigned *ltotal,\n\tvm_size_t *space,\n\tvm_size_t *resident,\n\tvm_size_t *maxusage,\n\tvm_offset_t *maxstack\n);\n\n/* Routine processor_set_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_info\n(\n\tprocessor_set_name_t set_name,\n\tint flavor,\n\thost_t *host,\n\tprocessor_set_info_t info_out,\n\tmach_msg_type_number_t *info_outCnt\n);\n\n/* Routine processor_set_tasks_with_flavor */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t processor_set_tasks_with_flavor\n(\n\tprocessor_set_t processor_set,\n\tmach_task_flavor_t flavor,\n\ttask_array_t *task_list,\n\tmach_msg_type_number_t *task_listCnt\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__processor_set_subsystem__defined\n#define __Request__processor_set_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tprocessor_set_flavor_t flavor;\n\t\tmach_msg_type_number_t info_outCnt;\n\t} __Request__processor_set_statistics_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_set_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint max_priority;\n\t\tboolean_t change_threads;\n\t} __Request__processor_set_max_priority_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint policy;\n\t} __Request__processor_set_policy_enable_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint policy;\n\t\tboolean_t change_threads;\n\t} __Request__processor_set_policy_disable_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_set_tasks_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_set_threads_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tprocessor_set_flavor_t flavor;\n\t\tmach_msg_type_number_t policy_infoCnt;\n\t\tinteger_t policy_info[5];\n\t\tboolean_t change;\n\t} __Request__processor_set_policy_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__processor_set_stack_usage_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint flavor;\n\t\tmach_msg_type_number_t info_outCnt;\n\t} __Request__processor_set_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_task_flavor_t flavor;\n\t} __Request__processor_set_tasks_with_flavor_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__processor_set_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__processor_set_subsystem__defined\n#define __RequestUnion__processor_set_subsystem__defined\nunion __RequestUnion__processor_set_subsystem {\n\t__Request__processor_set_statistics_t Request_processor_set_statistics;\n\t__Request__processor_set_destroy_t Request_processor_set_destroy;\n\t__Request__processor_set_max_priority_t Request_processor_set_max_priority;\n\t__Request__processor_set_policy_enable_t Request_processor_set_policy_enable;\n\t__Request__processor_set_policy_disable_t Request_processor_set_policy_disable;\n\t__Request__processor_set_tasks_t Request_processor_set_tasks;\n\t__Request__processor_set_threads_t Request_processor_set_threads;\n\t__Request__processor_set_policy_control_t Request_processor_set_policy_control;\n\t__Request__processor_set_stack_usage_t Request_processor_set_stack_usage;\n\t__Request__processor_set_info_t Request_processor_set_info;\n\t__Request__processor_set_tasks_with_flavor_t Request_processor_set_tasks_with_flavor;\n};\n#endif /* !__RequestUnion__processor_set_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__processor_set_subsystem__defined\n#define __Reply__processor_set_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t info_outCnt;\n\t\tinteger_t info_out[5];\n\t} __Reply__processor_set_statistics_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_set_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_set_max_priority_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_set_policy_enable_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_set_policy_disable_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t task_list;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t task_listCnt;\n\t} __Reply__processor_set_tasks_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t thread_list;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t thread_listCnt;\n\t} __Reply__processor_set_threads_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__processor_set_policy_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tunsigned ltotal;\n\t\tvm_size_t space;\n\t\tvm_size_t resident;\n\t\tvm_size_t maxusage;\n\t\tvm_offset_t maxstack;\n\t} __Reply__processor_set_stack_usage_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t host;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t info_outCnt;\n\t\tinteger_t info_out[5];\n\t} __Reply__processor_set_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t task_list;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t task_listCnt;\n\t} __Reply__processor_set_tasks_with_flavor_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__processor_set_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__processor_set_subsystem__defined\n#define __ReplyUnion__processor_set_subsystem__defined\nunion __ReplyUnion__processor_set_subsystem {\n\t__Reply__processor_set_statistics_t Reply_processor_set_statistics;\n\t__Reply__processor_set_destroy_t Reply_processor_set_destroy;\n\t__Reply__processor_set_max_priority_t Reply_processor_set_max_priority;\n\t__Reply__processor_set_policy_enable_t Reply_processor_set_policy_enable;\n\t__Reply__processor_set_policy_disable_t Reply_processor_set_policy_disable;\n\t__Reply__processor_set_tasks_t Reply_processor_set_tasks;\n\t__Reply__processor_set_threads_t Reply_processor_set_threads;\n\t__Reply__processor_set_policy_control_t Reply_processor_set_policy_control;\n\t__Reply__processor_set_stack_usage_t Reply_processor_set_stack_usage;\n\t__Reply__processor_set_info_t Reply_processor_set_info;\n\t__Reply__processor_set_tasks_with_flavor_t Reply_processor_set_tasks_with_flavor;\n};\n#endif /* !__RequestUnion__processor_set_subsystem__defined */\n\n#ifndef subsystem_to_name_map_processor_set\n#define subsystem_to_name_map_processor_set \\\n    { \"processor_set_statistics\", 4000 },\\\n    { \"processor_set_destroy\", 4001 },\\\n    { \"processor_set_max_priority\", 4002 },\\\n    { \"processor_set_policy_enable\", 4003 },\\\n    { \"processor_set_policy_disable\", 4004 },\\\n    { \"processor_set_tasks\", 4005 },\\\n    { \"processor_set_threads\", 4006 },\\\n    { \"processor_set_policy_control\", 4007 },\\\n    { \"processor_set_stack_usage\", 4008 },\\\n    { \"processor_set_info\", 4009 },\\\n    { \"processor_set_tasks_with_flavor\", 4010 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _processor_set_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/servers/netname.h",
    "content": "#ifndef\t_netname_user_\n#define\t_netname_user_\n\n/* Module netname */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tnetname_MSG_COUNT\n#define\tnetname_MSG_COUNT\t4\n#endif\t/* netname_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <servers/netname_defs.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine netname_check_in */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t netname_check_in\n(\n\tmach_port_t server_port,\n\tnetname_name_t port_name,\n\tmach_port_t signature,\n\tmach_port_t port_id\n);\n\n/* Routine netname_look_up */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t netname_look_up\n(\n\tmach_port_t server_port,\n\tnetname_name_t host_name,\n\tnetname_name_t port_name,\n\tmach_port_t *port_id\n);\n\n/* Routine netname_check_out */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t netname_check_out\n(\n\tmach_port_t server_port,\n\tnetname_name_t port_name,\n\tmach_port_t signature\n);\n\n/* Routine netname_version */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t netname_version\n(\n\tmach_port_t server_port,\n\tnetname_name_t version\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__netname_subsystem__defined\n#define __Request__netname_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t signature;\n\t\tmach_msg_port_descriptor_t port_id;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t port_nameOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t port_nameCnt;\n\t\tchar port_name[80];\n\t} __Request__netname_check_in_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t host_nameOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t host_nameCnt;\n\t\tchar host_name[80];\n\t\tmach_msg_type_number_t port_nameOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t port_nameCnt;\n\t\tchar port_name[80];\n\t} __Request__netname_look_up_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t signature;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t port_nameOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t port_nameCnt;\n\t\tchar port_name[80];\n\t} __Request__netname_check_out_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__netname_version_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__netname_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__netname_subsystem__defined\n#define __RequestUnion__netname_subsystem__defined\nunion __RequestUnion__netname_subsystem {\n\t__Request__netname_check_in_t Request_netname_check_in;\n\t__Request__netname_look_up_t Request_netname_look_up;\n\t__Request__netname_check_out_t Request_netname_check_out;\n\t__Request__netname_version_t Request_netname_version;\n};\n#endif /* !__RequestUnion__netname_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__netname_subsystem__defined\n#define __Reply__netname_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__netname_check_in_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t port_id;\n\t\t/* end of the kernel processed data */\n\t} __Reply__netname_look_up_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__netname_check_out_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t versionOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t versionCnt;\n\t\tchar version[80];\n\t} __Reply__netname_version_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__netname_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__netname_subsystem__defined\n#define __ReplyUnion__netname_subsystem__defined\nunion __ReplyUnion__netname_subsystem {\n\t__Reply__netname_check_in_t Reply_netname_check_in;\n\t__Reply__netname_look_up_t Reply_netname_look_up;\n\t__Reply__netname_check_out_t Reply_netname_check_out;\n\t__Reply__netname_version_t Reply_netname_version;\n};\n#endif /* !__RequestUnion__netname_subsystem__defined */\n\n#ifndef subsystem_to_name_map_netname\n#define subsystem_to_name_map_netname \\\n    { \"netname_check_in\", 1040 },\\\n    { \"netname_look_up\", 1041 },\\\n    { \"netname_check_out\", 1042 },\\\n    { \"netname_version\", 1043 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _netname_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/task.h",
    "content": "#ifndef\t_task_user_\n#define\t_task_user_\n\n/* Module task */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\ttask_MSG_COUNT\n#define\ttask_MSG_COUNT\t61\n#endif\t/* task_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach_debug/mach_debug_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine task_create */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_create\n(\n\ttask_t target_task,\n\tledger_array_t ledgers,\n\tmach_msg_type_number_t ledgersCnt,\n\tboolean_t inherit_memory,\n\ttask_t *child_task\n);\n\n/* Routine task_terminate */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_terminate\n(\n\ttask_t target_task\n);\n\n/* Routine task_threads */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_threads\n(\n\ttask_inspect_t target_task,\n\tthread_act_array_t *act_list,\n\tmach_msg_type_number_t *act_listCnt\n);\n\n/* Routine mach_ports_register */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_ports_register\n(\n\ttask_t target_task,\n\tmach_port_array_t init_port_set,\n\tmach_msg_type_number_t init_port_setCnt\n);\n\n/* Routine mach_ports_lookup */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_ports_lookup\n(\n\ttask_t target_task,\n\tmach_port_array_t *init_port_set,\n\tmach_msg_type_number_t *init_port_setCnt\n);\n\n/* Routine task_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_info\n(\n\ttask_name_t target_task,\n\ttask_flavor_t flavor,\n\ttask_info_t task_info_out,\n\tmach_msg_type_number_t *task_info_outCnt\n);\n\n/* Routine task_set_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_info\n(\n\ttask_t target_task,\n\ttask_flavor_t flavor,\n\ttask_info_t task_info_in,\n\tmach_msg_type_number_t task_info_inCnt\n);\n\n/* Routine task_suspend */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_suspend\n(\n\ttask_read_t target_task\n);\n\n/* Routine task_resume */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_resume\n(\n\ttask_read_t target_task\n);\n\n/* Routine task_get_special_port */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_special_port\n(\n\ttask_inspect_t task,\n\tint which_port,\n\tmach_port_t *special_port\n);\n\n/* Routine task_set_special_port */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_special_port\n(\n\ttask_t task,\n\tint which_port,\n\tmach_port_t special_port\n);\n\n/* Routine thread_create */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_create\n(\n\ttask_t parent_task,\n\tthread_act_t *child_act\n);\n\n/* Routine thread_create_running */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_create_running\n(\n\ttask_t parent_task,\n\tthread_state_flavor_t flavor,\n\tthread_state_t new_state,\n\tmach_msg_type_number_t new_stateCnt,\n\tthread_act_t *child_act\n);\n\n/* Routine task_set_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_exception_ports\n(\n\ttask_t task,\n\texception_mask_t exception_mask,\n\tmach_port_t new_port,\n\texception_behavior_t behavior,\n\tthread_state_flavor_t new_flavor\n);\n\n/* Routine task_get_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_exception_ports\n(\n\ttask_t task,\n\texception_mask_t exception_mask,\n\texception_mask_array_t masks,\n\tmach_msg_type_number_t *masksCnt,\n\texception_handler_array_t old_handlers,\n\texception_behavior_array_t old_behaviors,\n\texception_flavor_array_t old_flavors\n);\n\n/* Routine task_swap_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_swap_exception_ports\n(\n\ttask_t task,\n\texception_mask_t exception_mask,\n\tmach_port_t new_port,\n\texception_behavior_t behavior,\n\tthread_state_flavor_t new_flavor,\n\texception_mask_array_t masks,\n\tmach_msg_type_number_t *masksCnt,\n\texception_handler_array_t old_handlers,\n\texception_behavior_array_t old_behaviors,\n\texception_flavor_array_t old_flavors\n);\n\n/* Routine lock_set_create */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t lock_set_create\n(\n\ttask_t task,\n\tlock_set_t *new_lock_set,\n\tint n_ulocks,\n\tint policy\n);\n\n/* Routine lock_set_destroy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t lock_set_destroy\n(\n\ttask_t task,\n\tlock_set_t lock_set\n);\n\n/* Routine semaphore_create */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t semaphore_create\n(\n\ttask_t task,\n\tsemaphore_t *semaphore,\n\tint policy,\n\tint value\n);\n\n/* Routine semaphore_destroy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t semaphore_destroy\n(\n\ttask_t task,\n\tsemaphore_t semaphore\n);\n\n/* Routine task_policy_set */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_policy_set\n(\n\ttask_policy_set_t task,\n\ttask_policy_flavor_t flavor,\n\ttask_policy_t policy_info,\n\tmach_msg_type_number_t policy_infoCnt\n);\n\n/* Routine task_policy_get */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_policy_get\n(\n\ttask_policy_get_t task,\n\ttask_policy_flavor_t flavor,\n\ttask_policy_t policy_info,\n\tmach_msg_type_number_t *policy_infoCnt,\n\tboolean_t *get_default\n);\n\n/* Routine task_sample */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_sample\n(\n\ttask_t task,\n\tmach_port_t reply\n);\n\n/* Routine task_policy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_policy\n(\n\ttask_t task,\n\tpolicy_t policy,\n\tpolicy_base_t base,\n\tmach_msg_type_number_t baseCnt,\n\tboolean_t set_limit,\n\tboolean_t change\n);\n\n/* Routine task_set_emulation */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_emulation\n(\n\ttask_t target_port,\n\tvm_address_t routine_entry_pt,\n\tint routine_number\n);\n\n/* Routine task_get_emulation_vector */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_emulation_vector\n(\n\ttask_t task,\n\tint *vector_start,\n\temulation_vector_t *emulation_vector,\n\tmach_msg_type_number_t *emulation_vectorCnt\n);\n\n/* Routine task_set_emulation_vector */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_emulation_vector\n(\n\ttask_t task,\n\tint vector_start,\n\temulation_vector_t emulation_vector,\n\tmach_msg_type_number_t emulation_vectorCnt\n);\n\n/* Routine task_set_ras_pc */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_ras_pc\n(\n\ttask_t target_task,\n\tvm_address_t basepc,\n\tvm_address_t boundspc\n);\n\n/* Routine task_zone_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_zone_info\n(\n\ttask_inspect_t target_task,\n\tmach_zone_name_array_t *names,\n\tmach_msg_type_number_t *namesCnt,\n\ttask_zone_info_array_t *info,\n\tmach_msg_type_number_t *infoCnt\n);\n\n/* Routine task_assign */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_assign\n(\n\ttask_t task,\n\tprocessor_set_t new_set,\n\tboolean_t assign_threads\n);\n\n/* Routine task_assign_default */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_assign_default\n(\n\ttask_t task,\n\tboolean_t assign_threads\n);\n\n/* Routine task_get_assignment */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_assignment\n(\n\ttask_inspect_t task,\n\tprocessor_set_name_t *assigned_set\n);\n\n/* Routine task_set_policy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_policy\n(\n\ttask_t task,\n\tprocessor_set_t pset,\n\tpolicy_t policy,\n\tpolicy_base_t base,\n\tmach_msg_type_number_t baseCnt,\n\tpolicy_limit_t limit,\n\tmach_msg_type_number_t limitCnt,\n\tboolean_t change\n);\n\n/* Routine task_get_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_state\n(\n\ttask_read_t task,\n\tthread_state_flavor_t flavor,\n\tthread_state_t old_state,\n\tmach_msg_type_number_t *old_stateCnt\n);\n\n/* Routine task_set_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_state\n(\n\ttask_t task,\n\tthread_state_flavor_t flavor,\n\tthread_state_t new_state,\n\tmach_msg_type_number_t new_stateCnt\n);\n\n/* Routine task_set_phys_footprint_limit */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_phys_footprint_limit\n(\n\ttask_t task,\n\tint new_limit,\n\tint *old_limit\n);\n\n/* Routine task_suspend2 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_suspend2\n(\n\ttask_read_t target_task,\n\ttask_suspension_token_t *suspend_token\n);\n\n/* Routine task_resume2 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_resume2\n(\n\ttask_suspension_token_t suspend_token\n);\n\n/* Routine task_purgable_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_purgable_info\n(\n\ttask_inspect_t task,\n\ttask_purgable_info_t *stats\n);\n\n/* Routine task_get_mach_voucher */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_mach_voucher\n(\n\ttask_read_t task,\n\tmach_voucher_selector_t which,\n\tipc_voucher_t *voucher\n);\n\n/* Routine task_set_mach_voucher */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_mach_voucher\n(\n\ttask_t task,\n\tipc_voucher_t voucher\n);\n\n/* Routine task_swap_mach_voucher */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_swap_mach_voucher\n(\n\ttask_t task,\n\tipc_voucher_t new_voucher,\n\tipc_voucher_t *old_voucher\n);\n\n/* Routine task_generate_corpse */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_generate_corpse\n(\n\ttask_read_t task,\n\tmach_port_t *corpse_task_port\n);\n\n/* Routine task_map_corpse_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_map_corpse_info\n(\n\ttask_t task,\n\ttask_read_t corspe_task,\n\tvm_address_t *kcd_addr_begin,\n\tuint32_t *kcd_size\n);\n\n/* Routine task_register_dyld_image_infos */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_register_dyld_image_infos\n(\n\ttask_t task,\n\tdyld_kernel_image_info_array_t dyld_images,\n\tmach_msg_type_number_t dyld_imagesCnt\n);\n\n/* Routine task_unregister_dyld_image_infos */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_unregister_dyld_image_infos\n(\n\ttask_t task,\n\tdyld_kernel_image_info_array_t dyld_images,\n\tmach_msg_type_number_t dyld_imagesCnt\n);\n\n/* Routine task_get_dyld_image_infos */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_dyld_image_infos\n(\n\ttask_read_t task,\n\tdyld_kernel_image_info_array_t *dyld_images,\n\tmach_msg_type_number_t *dyld_imagesCnt\n);\n\n/* Routine task_register_dyld_shared_cache_image_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_register_dyld_shared_cache_image_info\n(\n\ttask_t task,\n\tdyld_kernel_image_info_t dyld_cache_image,\n\tboolean_t no_cache,\n\tboolean_t private_cache\n);\n\n/* Routine task_register_dyld_set_dyld_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_register_dyld_set_dyld_state\n(\n\ttask_t task,\n\tuint8_t dyld_state\n);\n\n/* Routine task_register_dyld_get_process_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_register_dyld_get_process_state\n(\n\ttask_t task,\n\tdyld_kernel_process_info_t *dyld_process_state\n);\n\n/* Routine task_map_corpse_info_64 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_map_corpse_info_64\n(\n\ttask_t task,\n\ttask_read_t corspe_task,\n\tmach_vm_address_t *kcd_addr_begin,\n\tmach_vm_size_t *kcd_size\n);\n\n/* Routine task_inspect */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_inspect\n(\n\ttask_inspect_t task,\n\ttask_inspect_flavor_t flavor,\n\ttask_inspect_info_t info_out,\n\tmach_msg_type_number_t *info_outCnt\n);\n\n/* Routine task_get_exc_guard_behavior */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_exc_guard_behavior\n(\n\ttask_inspect_t task,\n\ttask_exc_guard_behavior_t *behavior\n);\n\n/* Routine task_set_exc_guard_behavior */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_set_exc_guard_behavior\n(\n\ttask_t task,\n\ttask_exc_guard_behavior_t behavior\n);\n\n/* Routine task_create_suid_cred */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_create_suid_cred\n(\n\ttask_t task,\n\tsuid_cred_path_t path,\n\tsuid_cred_uid_t uid,\n\tsuid_cred_t *delegation\n);\n\n/* Routine task_dyld_process_info_notify_register */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_dyld_process_info_notify_register\n(\n\ttask_read_t target_task,\n\tmach_port_t notify\n);\n\n/* Routine task_create_identity_token */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_create_identity_token\n(\n\ttask_t task,\n\ttask_id_token_t *token\n);\n\n/* Routine task_identity_token_get_task_port */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_identity_token_get_task_port\n(\n\ttask_id_token_t token,\n\ttask_flavor_t flavor,\n\tmach_port_t *task_port\n);\n\n/* Routine task_dyld_process_info_notify_deregister */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_dyld_process_info_notify_deregister\n(\n\ttask_read_t target_task,\n\tmach_port_name_t notify\n);\n\n/* Routine task_get_exception_ports_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_get_exception_ports_info\n(\n\tmach_port_t port,\n\texception_mask_t exception_mask,\n\texception_mask_array_t masks,\n\tmach_msg_type_number_t *masksCnt,\n\texception_handler_info_array_t old_handlers_info,\n\texception_behavior_array_t old_behaviors,\n\texception_flavor_array_t old_flavors\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__task_subsystem__defined\n#define __Request__task_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t ledgers;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t ledgersCnt;\n\t\tboolean_t inherit_memory;\n\t} __Request__task_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_terminate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_threads_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t init_port_set;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t init_port_setCnt;\n\t} __Request__mach_ports_register_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__mach_ports_lookup_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\ttask_flavor_t flavor;\n\t\tmach_msg_type_number_t task_info_outCnt;\n\t} __Request__task_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\ttask_flavor_t flavor;\n\t\tmach_msg_type_number_t task_info_inCnt;\n\t\tinteger_t task_info_in[87];\n\t} __Request__task_set_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_suspend_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_resume_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint which_port;\n\t} __Request__task_get_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t special_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tint which_port;\n\t} __Request__task_set_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tthread_state_flavor_t flavor;\n\t\tmach_msg_type_number_t new_stateCnt;\n\t\tnatural_t new_state[614];\n\t} __Request__thread_create_running_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t\texception_behavior_t behavior;\n\t\tthread_state_flavor_t new_flavor;\n\t} __Request__task_set_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t} __Request__task_get_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t\texception_behavior_t behavior;\n\t\tthread_state_flavor_t new_flavor;\n\t} __Request__task_swap_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint n_ulocks;\n\t\tint policy;\n\t} __Request__lock_set_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t lock_set;\n\t\t/* end of the kernel processed data */\n\t} __Request__lock_set_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint policy;\n\t\tint value;\n\t} __Request__semaphore_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t semaphore;\n\t\t/* end of the kernel processed data */\n\t} __Request__semaphore_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\ttask_policy_flavor_t flavor;\n\t\tmach_msg_type_number_t policy_infoCnt;\n\t\tinteger_t policy_info[16];\n\t} __Request__task_policy_set_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\ttask_policy_flavor_t flavor;\n\t\tmach_msg_type_number_t policy_infoCnt;\n\t\tboolean_t get_default;\n\t} __Request__task_policy_get_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t reply;\n\t\t/* end of the kernel processed data */\n\t} __Request__task_sample_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tpolicy_t policy;\n\t\tmach_msg_type_number_t baseCnt;\n\t\tinteger_t base[5];\n\t\tboolean_t set_limit;\n\t\tboolean_t change;\n\t} __Request__task_policy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t routine_entry_pt;\n\t\tint routine_number;\n\t} __Request__task_set_emulation_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_get_emulation_vector_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t emulation_vector;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tint vector_start;\n\t\tmach_msg_type_number_t emulation_vectorCnt;\n\t} __Request__task_set_emulation_vector_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t basepc;\n\t\tvm_address_t boundspc;\n\t} __Request__task_set_ras_pc_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_zone_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_set;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tboolean_t assign_threads;\n\t} __Request__task_assign_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tboolean_t assign_threads;\n\t} __Request__task_assign_default_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_get_assignment_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t pset;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tpolicy_t policy;\n\t\tmach_msg_type_number_t baseCnt;\n\t\tinteger_t base[5];\n\t\tmach_msg_type_number_t limitCnt;\n\t\tinteger_t limit[1];\n\t\tboolean_t change;\n\t} __Request__task_set_policy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tthread_state_flavor_t flavor;\n\t\tmach_msg_type_number_t old_stateCnt;\n\t} __Request__task_get_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tthread_state_flavor_t flavor;\n\t\tmach_msg_type_number_t new_stateCnt;\n\t\tnatural_t new_state[614];\n\t} __Request__task_set_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint new_limit;\n\t} __Request__task_set_phys_footprint_limit_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_suspend2_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_resume2_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_purgable_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_voucher_selector_t which;\n\t} __Request__task_get_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t voucher;\n\t\t/* end of the kernel processed data */\n\t} __Request__task_set_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_voucher;\n\t\tmach_msg_port_descriptor_t old_voucher;\n\t\t/* end of the kernel processed data */\n\t} __Request__task_swap_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_generate_corpse_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t corspe_task;\n\t\t/* end of the kernel processed data */\n\t} __Request__task_map_corpse_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t dyld_images;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t dyld_imagesCnt;\n\t} __Request__task_register_dyld_image_infos_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t dyld_images;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t dyld_imagesCnt;\n\t} __Request__task_unregister_dyld_image_infos_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_get_dyld_image_infos_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tdyld_kernel_image_info_t dyld_cache_image;\n\t\tboolean_t no_cache;\n\t\tboolean_t private_cache;\n\t} __Request__task_register_dyld_shared_cache_image_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tuint8_t dyld_state;\n\t\tchar dyld_statePad[3];\n\t} __Request__task_register_dyld_set_dyld_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_register_dyld_get_process_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t corspe_task;\n\t\t/* end of the kernel processed data */\n\t} __Request__task_map_corpse_info_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\ttask_inspect_flavor_t flavor;\n\t\tmach_msg_type_number_t info_outCnt;\n\t} __Request__task_inspect_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_get_exc_guard_behavior_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\ttask_exc_guard_behavior_t behavior;\n\t} __Request__task_set_exc_guard_behavior_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t pathOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t pathCnt;\n\t\tchar path[1024];\n\t\tsuid_cred_uid_t uid;\n\t} __Request__task_create_suid_cred_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t notify;\n\t\t/* end of the kernel processed data */\n\t} __Request__task_dyld_process_info_notify_register_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__task_create_identity_token_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\ttask_flavor_t flavor;\n\t} __Request__task_identity_token_get_task_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_port_name_t notify;\n\t} __Request__task_dyld_process_info_notify_deregister_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t} __Request__task_get_exception_ports_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__task_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__task_subsystem__defined\n#define __RequestUnion__task_subsystem__defined\nunion __RequestUnion__task_subsystem {\n\t__Request__task_create_t Request_task_create;\n\t__Request__task_terminate_t Request_task_terminate;\n\t__Request__task_threads_t Request_task_threads;\n\t__Request__mach_ports_register_t Request_mach_ports_register;\n\t__Request__mach_ports_lookup_t Request_mach_ports_lookup;\n\t__Request__task_info_t Request_task_info;\n\t__Request__task_set_info_t Request_task_set_info;\n\t__Request__task_suspend_t Request_task_suspend;\n\t__Request__task_resume_t Request_task_resume;\n\t__Request__task_get_special_port_t Request_task_get_special_port;\n\t__Request__task_set_special_port_t Request_task_set_special_port;\n\t__Request__thread_create_t Request_thread_create;\n\t__Request__thread_create_running_t Request_thread_create_running;\n\t__Request__task_set_exception_ports_t Request_task_set_exception_ports;\n\t__Request__task_get_exception_ports_t Request_task_get_exception_ports;\n\t__Request__task_swap_exception_ports_t Request_task_swap_exception_ports;\n\t__Request__lock_set_create_t Request_lock_set_create;\n\t__Request__lock_set_destroy_t Request_lock_set_destroy;\n\t__Request__semaphore_create_t Request_semaphore_create;\n\t__Request__semaphore_destroy_t Request_semaphore_destroy;\n\t__Request__task_policy_set_t Request_task_policy_set;\n\t__Request__task_policy_get_t Request_task_policy_get;\n\t__Request__task_sample_t Request_task_sample;\n\t__Request__task_policy_t Request_task_policy;\n\t__Request__task_set_emulation_t Request_task_set_emulation;\n\t__Request__task_get_emulation_vector_t Request_task_get_emulation_vector;\n\t__Request__task_set_emulation_vector_t Request_task_set_emulation_vector;\n\t__Request__task_set_ras_pc_t Request_task_set_ras_pc;\n\t__Request__task_zone_info_t Request_task_zone_info;\n\t__Request__task_assign_t Request_task_assign;\n\t__Request__task_assign_default_t Request_task_assign_default;\n\t__Request__task_get_assignment_t Request_task_get_assignment;\n\t__Request__task_set_policy_t Request_task_set_policy;\n\t__Request__task_get_state_t Request_task_get_state;\n\t__Request__task_set_state_t Request_task_set_state;\n\t__Request__task_set_phys_footprint_limit_t Request_task_set_phys_footprint_limit;\n\t__Request__task_suspend2_t Request_task_suspend2;\n\t__Request__task_resume2_t Request_task_resume2;\n\t__Request__task_purgable_info_t Request_task_purgable_info;\n\t__Request__task_get_mach_voucher_t Request_task_get_mach_voucher;\n\t__Request__task_set_mach_voucher_t Request_task_set_mach_voucher;\n\t__Request__task_swap_mach_voucher_t Request_task_swap_mach_voucher;\n\t__Request__task_generate_corpse_t Request_task_generate_corpse;\n\t__Request__task_map_corpse_info_t Request_task_map_corpse_info;\n\t__Request__task_register_dyld_image_infos_t Request_task_register_dyld_image_infos;\n\t__Request__task_unregister_dyld_image_infos_t Request_task_unregister_dyld_image_infos;\n\t__Request__task_get_dyld_image_infos_t Request_task_get_dyld_image_infos;\n\t__Request__task_register_dyld_shared_cache_image_info_t Request_task_register_dyld_shared_cache_image_info;\n\t__Request__task_register_dyld_set_dyld_state_t Request_task_register_dyld_set_dyld_state;\n\t__Request__task_register_dyld_get_process_state_t Request_task_register_dyld_get_process_state;\n\t__Request__task_map_corpse_info_64_t Request_task_map_corpse_info_64;\n\t__Request__task_inspect_t Request_task_inspect;\n\t__Request__task_get_exc_guard_behavior_t Request_task_get_exc_guard_behavior;\n\t__Request__task_set_exc_guard_behavior_t Request_task_set_exc_guard_behavior;\n\t__Request__task_create_suid_cred_t Request_task_create_suid_cred;\n\t__Request__task_dyld_process_info_notify_register_t Request_task_dyld_process_info_notify_register;\n\t__Request__task_create_identity_token_t Request_task_create_identity_token;\n\t__Request__task_identity_token_get_task_port_t Request_task_identity_token_get_task_port;\n\t__Request__task_dyld_process_info_notify_deregister_t Request_task_dyld_process_info_notify_deregister;\n\t__Request__task_get_exception_ports_info_t Request_task_get_exception_ports_info;\n};\n#endif /* !__RequestUnion__task_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__task_subsystem__defined\n#define __Reply__task_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t child_task;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_terminate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t act_list;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t act_listCnt;\n\t} __Reply__task_threads_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__mach_ports_register_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_ports_descriptor_t init_port_set;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t init_port_setCnt;\n\t} __Reply__mach_ports_lookup_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t task_info_outCnt;\n\t\tinteger_t task_info_out[87];\n\t} __Reply__task_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_suspend_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_resume_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t special_port;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_get_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t child_act;\n\t\t/* end of the kernel processed data */\n\t} __Reply__thread_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t child_act;\n\t\t/* end of the kernel processed data */\n\t} __Reply__thread_create_running_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t old_handlers[32];\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t masksCnt;\n\t\texception_mask_t masks[32];\n\t\texception_behavior_t old_behaviors[32];\n\t\tthread_state_flavor_t old_flavors[32];\n\t} __Reply__task_get_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t old_handlers[32];\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t masksCnt;\n\t\texception_mask_t masks[32];\n\t\texception_behavior_t old_behaviors[32];\n\t\tthread_state_flavor_t old_flavors[32];\n\t} __Reply__task_swap_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_lock_set;\n\t\t/* end of the kernel processed data */\n\t} __Reply__lock_set_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__lock_set_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t semaphore;\n\t\t/* end of the kernel processed data */\n\t} __Reply__semaphore_create_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__semaphore_destroy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_policy_set_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t policy_infoCnt;\n\t\tinteger_t policy_info[16];\n\t\tboolean_t get_default;\n\t} __Reply__task_policy_get_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_sample_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_policy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_emulation_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t emulation_vector;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tint vector_start;\n\t\tmach_msg_type_number_t emulation_vectorCnt;\n\t} __Reply__task_get_emulation_vector_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_emulation_vector_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_ras_pc_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t names;\n\t\tmach_msg_ool_descriptor_t info;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t namesCnt;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Reply__task_zone_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_assign_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_assign_default_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t assigned_set;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_get_assignment_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_policy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t old_stateCnt;\n\t\tnatural_t old_state[614];\n\t} __Reply__task_get_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tint old_limit;\n\t} __Reply__task_set_phys_footprint_limit_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t suspend_token;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_suspend2_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_resume2_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\ttask_purgable_info_t stats;\n\t} __Reply__task_purgable_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t voucher;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_get_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t old_voucher;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_swap_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t corpse_task_port;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_generate_corpse_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t kcd_addr_begin;\n\t\tuint32_t kcd_size;\n\t} __Reply__task_map_corpse_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_register_dyld_image_infos_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_unregister_dyld_image_infos_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t dyld_images;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t dyld_imagesCnt;\n\t} __Reply__task_get_dyld_image_infos_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_register_dyld_shared_cache_image_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_register_dyld_set_dyld_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tdyld_kernel_process_info_t dyld_process_state;\n\t} __Reply__task_register_dyld_get_process_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_vm_address_t kcd_addr_begin;\n\t\tmach_vm_size_t kcd_size;\n\t} __Reply__task_map_corpse_info_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t info_outCnt;\n\t\tinteger_t info_out[4];\n\t} __Reply__task_inspect_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\ttask_exc_guard_behavior_t behavior;\n\t} __Reply__task_get_exc_guard_behavior_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_set_exc_guard_behavior_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t delegation;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_create_suid_cred_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_dyld_process_info_notify_register_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t token;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_create_identity_token_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t task_port;\n\t\t/* end of the kernel processed data */\n\t} __Reply__task_identity_token_get_task_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_dyld_process_info_notify_deregister_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t masksCnt;\n\t\texception_mask_t masks[32];\n\t\texception_handler_info_t old_handlers_info[32];\n\t\texception_behavior_t old_behaviors[32];\n\t\tthread_state_flavor_t old_flavors[32];\n\t} __Reply__task_get_exception_ports_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__task_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__task_subsystem__defined\n#define __ReplyUnion__task_subsystem__defined\nunion __ReplyUnion__task_subsystem {\n\t__Reply__task_create_t Reply_task_create;\n\t__Reply__task_terminate_t Reply_task_terminate;\n\t__Reply__task_threads_t Reply_task_threads;\n\t__Reply__mach_ports_register_t Reply_mach_ports_register;\n\t__Reply__mach_ports_lookup_t Reply_mach_ports_lookup;\n\t__Reply__task_info_t Reply_task_info;\n\t__Reply__task_set_info_t Reply_task_set_info;\n\t__Reply__task_suspend_t Reply_task_suspend;\n\t__Reply__task_resume_t Reply_task_resume;\n\t__Reply__task_get_special_port_t Reply_task_get_special_port;\n\t__Reply__task_set_special_port_t Reply_task_set_special_port;\n\t__Reply__thread_create_t Reply_thread_create;\n\t__Reply__thread_create_running_t Reply_thread_create_running;\n\t__Reply__task_set_exception_ports_t Reply_task_set_exception_ports;\n\t__Reply__task_get_exception_ports_t Reply_task_get_exception_ports;\n\t__Reply__task_swap_exception_ports_t Reply_task_swap_exception_ports;\n\t__Reply__lock_set_create_t Reply_lock_set_create;\n\t__Reply__lock_set_destroy_t Reply_lock_set_destroy;\n\t__Reply__semaphore_create_t Reply_semaphore_create;\n\t__Reply__semaphore_destroy_t Reply_semaphore_destroy;\n\t__Reply__task_policy_set_t Reply_task_policy_set;\n\t__Reply__task_policy_get_t Reply_task_policy_get;\n\t__Reply__task_sample_t Reply_task_sample;\n\t__Reply__task_policy_t Reply_task_policy;\n\t__Reply__task_set_emulation_t Reply_task_set_emulation;\n\t__Reply__task_get_emulation_vector_t Reply_task_get_emulation_vector;\n\t__Reply__task_set_emulation_vector_t Reply_task_set_emulation_vector;\n\t__Reply__task_set_ras_pc_t Reply_task_set_ras_pc;\n\t__Reply__task_zone_info_t Reply_task_zone_info;\n\t__Reply__task_assign_t Reply_task_assign;\n\t__Reply__task_assign_default_t Reply_task_assign_default;\n\t__Reply__task_get_assignment_t Reply_task_get_assignment;\n\t__Reply__task_set_policy_t Reply_task_set_policy;\n\t__Reply__task_get_state_t Reply_task_get_state;\n\t__Reply__task_set_state_t Reply_task_set_state;\n\t__Reply__task_set_phys_footprint_limit_t Reply_task_set_phys_footprint_limit;\n\t__Reply__task_suspend2_t Reply_task_suspend2;\n\t__Reply__task_resume2_t Reply_task_resume2;\n\t__Reply__task_purgable_info_t Reply_task_purgable_info;\n\t__Reply__task_get_mach_voucher_t Reply_task_get_mach_voucher;\n\t__Reply__task_set_mach_voucher_t Reply_task_set_mach_voucher;\n\t__Reply__task_swap_mach_voucher_t Reply_task_swap_mach_voucher;\n\t__Reply__task_generate_corpse_t Reply_task_generate_corpse;\n\t__Reply__task_map_corpse_info_t Reply_task_map_corpse_info;\n\t__Reply__task_register_dyld_image_infos_t Reply_task_register_dyld_image_infos;\n\t__Reply__task_unregister_dyld_image_infos_t Reply_task_unregister_dyld_image_infos;\n\t__Reply__task_get_dyld_image_infos_t Reply_task_get_dyld_image_infos;\n\t__Reply__task_register_dyld_shared_cache_image_info_t Reply_task_register_dyld_shared_cache_image_info;\n\t__Reply__task_register_dyld_set_dyld_state_t Reply_task_register_dyld_set_dyld_state;\n\t__Reply__task_register_dyld_get_process_state_t Reply_task_register_dyld_get_process_state;\n\t__Reply__task_map_corpse_info_64_t Reply_task_map_corpse_info_64;\n\t__Reply__task_inspect_t Reply_task_inspect;\n\t__Reply__task_get_exc_guard_behavior_t Reply_task_get_exc_guard_behavior;\n\t__Reply__task_set_exc_guard_behavior_t Reply_task_set_exc_guard_behavior;\n\t__Reply__task_create_suid_cred_t Reply_task_create_suid_cred;\n\t__Reply__task_dyld_process_info_notify_register_t Reply_task_dyld_process_info_notify_register;\n\t__Reply__task_create_identity_token_t Reply_task_create_identity_token;\n\t__Reply__task_identity_token_get_task_port_t Reply_task_identity_token_get_task_port;\n\t__Reply__task_dyld_process_info_notify_deregister_t Reply_task_dyld_process_info_notify_deregister;\n\t__Reply__task_get_exception_ports_info_t Reply_task_get_exception_ports_info;\n};\n#endif /* !__RequestUnion__task_subsystem__defined */\n\n#ifndef subsystem_to_name_map_task\n#define subsystem_to_name_map_task \\\n    { \"task_create\", 3400 },\\\n    { \"task_terminate\", 3401 },\\\n    { \"task_threads\", 3402 },\\\n    { \"mach_ports_register\", 3403 },\\\n    { \"mach_ports_lookup\", 3404 },\\\n    { \"task_info\", 3405 },\\\n    { \"task_set_info\", 3406 },\\\n    { \"task_suspend\", 3407 },\\\n    { \"task_resume\", 3408 },\\\n    { \"task_get_special_port\", 3409 },\\\n    { \"task_set_special_port\", 3410 },\\\n    { \"thread_create\", 3411 },\\\n    { \"thread_create_running\", 3412 },\\\n    { \"task_set_exception_ports\", 3413 },\\\n    { \"task_get_exception_ports\", 3414 },\\\n    { \"task_swap_exception_ports\", 3415 },\\\n    { \"lock_set_create\", 3416 },\\\n    { \"lock_set_destroy\", 3417 },\\\n    { \"semaphore_create\", 3418 },\\\n    { \"semaphore_destroy\", 3419 },\\\n    { \"task_policy_set\", 3420 },\\\n    { \"task_policy_get\", 3421 },\\\n    { \"task_sample\", 3422 },\\\n    { \"task_policy\", 3423 },\\\n    { \"task_set_emulation\", 3424 },\\\n    { \"task_get_emulation_vector\", 3425 },\\\n    { \"task_set_emulation_vector\", 3426 },\\\n    { \"task_set_ras_pc\", 3427 },\\\n    { \"task_zone_info\", 3428 },\\\n    { \"task_assign\", 3429 },\\\n    { \"task_assign_default\", 3430 },\\\n    { \"task_get_assignment\", 3431 },\\\n    { \"task_set_policy\", 3432 },\\\n    { \"task_get_state\", 3433 },\\\n    { \"task_set_state\", 3434 },\\\n    { \"task_set_phys_footprint_limit\", 3435 },\\\n    { \"task_suspend2\", 3436 },\\\n    { \"task_resume2\", 3437 },\\\n    { \"task_purgable_info\", 3438 },\\\n    { \"task_get_mach_voucher\", 3439 },\\\n    { \"task_set_mach_voucher\", 3440 },\\\n    { \"task_swap_mach_voucher\", 3441 },\\\n    { \"task_generate_corpse\", 3442 },\\\n    { \"task_map_corpse_info\", 3443 },\\\n    { \"task_register_dyld_image_infos\", 3444 },\\\n    { \"task_unregister_dyld_image_infos\", 3445 },\\\n    { \"task_get_dyld_image_infos\", 3446 },\\\n    { \"task_register_dyld_shared_cache_image_info\", 3447 },\\\n    { \"task_register_dyld_set_dyld_state\", 3448 },\\\n    { \"task_register_dyld_get_process_state\", 3449 },\\\n    { \"task_map_corpse_info_64\", 3450 },\\\n    { \"task_inspect\", 3451 },\\\n    { \"task_get_exc_guard_behavior\", 3452 },\\\n    { \"task_set_exc_guard_behavior\", 3453 },\\\n    { \"task_create_suid_cred\", 3454 },\\\n    { \"task_dyld_process_info_notify_register\", 3456 },\\\n    { \"task_create_identity_token\", 3457 },\\\n    { \"task_identity_token_get_task_port\", 3458 },\\\n    { \"task_dyld_process_info_notify_deregister\", 3459 },\\\n    { \"task_get_exception_ports_info\", 3460 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _task_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/thread_act.h",
    "content": "#ifndef\t_thread_act_user_\n#define\t_thread_act_user_\n\n/* Module thread_act */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tthread_act_MSG_COUNT\n#define\tthread_act_MSG_COUNT\t31\n#endif\t/* thread_act_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine thread_terminate */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_terminate\n(\n\tthread_act_t target_act\n);\n\n/* Routine act_get_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t act_get_state\n(\n\tthread_read_t target_act,\n\tint flavor,\n\tthread_state_t old_state,\n\tmach_msg_type_number_t *old_stateCnt\n);\n\n/* Routine act_set_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t act_set_state\n(\n\tthread_act_t target_act,\n\tint flavor,\n\tthread_state_t new_state,\n\tmach_msg_type_number_t new_stateCnt\n);\n\n/* Routine thread_get_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_get_state\n(\n\tthread_read_t target_act,\n\tthread_state_flavor_t flavor,\n\tthread_state_t old_state,\n\tmach_msg_type_number_t *old_stateCnt\n);\n\n/* Routine thread_set_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_set_state\n(\n\tthread_act_t target_act,\n\tthread_state_flavor_t flavor,\n\tthread_state_t new_state,\n\tmach_msg_type_number_t new_stateCnt\n);\n\n/* Routine thread_suspend */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_suspend\n(\n\tthread_read_t target_act\n);\n\n/* Routine thread_resume */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_resume\n(\n\tthread_read_t target_act\n);\n\n/* Routine thread_abort */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_abort\n(\n\tthread_act_t target_act\n);\n\n/* Routine thread_abort_safely */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_abort_safely\n(\n\tthread_act_t target_act\n);\n\n/* Routine thread_depress_abort */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_depress_abort\n(\n\tthread_act_t thread\n);\n\n/* Routine thread_get_special_port */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_get_special_port\n(\n\tthread_inspect_t thr_act,\n\tint which_port,\n\tmach_port_t *special_port\n);\n\n/* Routine thread_set_special_port */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_set_special_port\n(\n\tthread_act_t thr_act,\n\tint which_port,\n\tmach_port_t special_port\n);\n\n/* Routine thread_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_info\n(\n\tthread_inspect_t target_act,\n\tthread_flavor_t flavor,\n\tthread_info_t thread_info_out,\n\tmach_msg_type_number_t *thread_info_outCnt\n);\n\n/* Routine thread_set_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_set_exception_ports\n(\n\tthread_act_t thread,\n\texception_mask_t exception_mask,\n\tmach_port_t new_port,\n\texception_behavior_t behavior,\n\tthread_state_flavor_t new_flavor\n);\n\n/* Routine thread_get_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_get_exception_ports\n(\n\tthread_act_t thread,\n\texception_mask_t exception_mask,\n\texception_mask_array_t masks,\n\tmach_msg_type_number_t *masksCnt,\n\texception_handler_array_t old_handlers,\n\texception_behavior_array_t old_behaviors,\n\texception_flavor_array_t old_flavors\n);\n\n/* Routine thread_swap_exception_ports */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_swap_exception_ports\n(\n\tthread_act_t thread,\n\texception_mask_t exception_mask,\n\tmach_port_t new_port,\n\texception_behavior_t behavior,\n\tthread_state_flavor_t new_flavor,\n\texception_mask_array_t masks,\n\tmach_msg_type_number_t *masksCnt,\n\texception_handler_array_t old_handlers,\n\texception_behavior_array_t old_behaviors,\n\texception_flavor_array_t old_flavors\n);\n\n/* Routine thread_policy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_policy\n(\n\tthread_act_t thr_act,\n\tpolicy_t policy,\n\tpolicy_base_t base,\n\tmach_msg_type_number_t baseCnt,\n\tboolean_t set_limit\n);\n\n/* Routine thread_policy_set */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_policy_set\n(\n\tthread_act_t thread,\n\tthread_policy_flavor_t flavor,\n\tthread_policy_t policy_info,\n\tmach_msg_type_number_t policy_infoCnt\n);\n\n/* Routine thread_policy_get */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_policy_get\n(\n\tthread_inspect_t thread,\n\tthread_policy_flavor_t flavor,\n\tthread_policy_t policy_info,\n\tmach_msg_type_number_t *policy_infoCnt,\n\tboolean_t *get_default\n);\n\n/* Routine thread_sample */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_sample\n(\n\tthread_act_t thread,\n\tmach_port_t reply\n);\n\n/* Routine etap_trace_thread */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t etap_trace_thread\n(\n\tthread_act_t target_act,\n\tboolean_t trace_status\n);\n\n/* Routine thread_assign */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_assign\n(\n\tthread_act_t thread,\n\tprocessor_set_t new_set\n);\n\n/* Routine thread_assign_default */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_assign_default\n(\n\tthread_act_t thread\n);\n\n/* Routine thread_get_assignment */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_get_assignment\n(\n\tthread_inspect_t thread,\n\tprocessor_set_name_t *assigned_set\n);\n\n/* Routine thread_set_policy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_set_policy\n(\n\tthread_act_t thr_act,\n\tprocessor_set_t pset,\n\tpolicy_t policy,\n\tpolicy_base_t base,\n\tmach_msg_type_number_t baseCnt,\n\tpolicy_limit_t limit,\n\tmach_msg_type_number_t limitCnt\n);\n\n/* Routine thread_get_mach_voucher */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_get_mach_voucher\n(\n\tthread_read_t thr_act,\n\tmach_voucher_selector_t which,\n\tipc_voucher_t *voucher\n);\n\n/* Routine thread_set_mach_voucher */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_set_mach_voucher\n(\n\tthread_act_t thr_act,\n\tipc_voucher_t voucher\n);\n\n/* Routine thread_swap_mach_voucher */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_swap_mach_voucher\n(\n\tthread_act_t thr_act,\n\tipc_voucher_t new_voucher,\n\tipc_voucher_t *old_voucher\n);\n\n/* Routine thread_convert_thread_state */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_convert_thread_state\n(\n\tthread_act_t thread,\n\tint direction,\n\tthread_state_flavor_t flavor,\n\tthread_state_t in_state,\n\tmach_msg_type_number_t in_stateCnt,\n\tthread_state_t out_state,\n\tmach_msg_type_number_t *out_stateCnt\n);\n\n/* Routine thread_get_exception_ports_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t thread_get_exception_ports_info\n(\n\tmach_port_t port,\n\texception_mask_t exception_mask,\n\texception_mask_array_t masks,\n\tmach_msg_type_number_t *masksCnt,\n\texception_handler_info_array_t old_handlers_info,\n\texception_behavior_array_t old_behaviors,\n\texception_flavor_array_t old_flavors\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__thread_act_subsystem__defined\n#define __Request__thread_act_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_terminate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint flavor;\n\t\tmach_msg_type_number_t old_stateCnt;\n\t} __Request__act_get_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint flavor;\n\t\tmach_msg_type_number_t new_stateCnt;\n\t\tnatural_t new_state[614];\n\t} __Request__act_set_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tthread_state_flavor_t flavor;\n\t\tmach_msg_type_number_t old_stateCnt;\n\t} __Request__thread_get_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tthread_state_flavor_t flavor;\n\t\tmach_msg_type_number_t new_stateCnt;\n\t\tnatural_t new_state[614];\n\t} __Request__thread_set_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_suspend_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_resume_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_abort_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_abort_safely_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_depress_abort_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint which_port;\n\t} __Request__thread_get_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t special_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tint which_port;\n\t} __Request__thread_set_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tthread_flavor_t flavor;\n\t\tmach_msg_type_number_t thread_info_outCnt;\n\t} __Request__thread_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t\texception_behavior_t behavior;\n\t\tthread_state_flavor_t new_flavor;\n\t} __Request__thread_set_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t} __Request__thread_get_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_port;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t\texception_behavior_t behavior;\n\t\tthread_state_flavor_t new_flavor;\n\t} __Request__thread_swap_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tpolicy_t policy;\n\t\tmach_msg_type_number_t baseCnt;\n\t\tinteger_t base[5];\n\t\tboolean_t set_limit;\n\t} __Request__thread_policy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tthread_policy_flavor_t flavor;\n\t\tmach_msg_type_number_t policy_infoCnt;\n\t\tinteger_t policy_info[16];\n\t} __Request__thread_policy_set_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tthread_policy_flavor_t flavor;\n\t\tmach_msg_type_number_t policy_infoCnt;\n\t\tboolean_t get_default;\n\t} __Request__thread_policy_get_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t reply;\n\t\t/* end of the kernel processed data */\n\t} __Request__thread_sample_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tboolean_t trace_status;\n\t} __Request__etap_trace_thread_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_set;\n\t\t/* end of the kernel processed data */\n\t} __Request__thread_assign_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_assign_default_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__thread_get_assignment_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t pset;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tpolicy_t policy;\n\t\tmach_msg_type_number_t baseCnt;\n\t\tinteger_t base[5];\n\t\tmach_msg_type_number_t limitCnt;\n\t\tinteger_t limit[1];\n\t} __Request__thread_set_policy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_voucher_selector_t which;\n\t} __Request__thread_get_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t voucher;\n\t\t/* end of the kernel processed data */\n\t} __Request__thread_set_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t new_voucher;\n\t\tmach_msg_port_descriptor_t old_voucher;\n\t\t/* end of the kernel processed data */\n\t} __Request__thread_swap_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tint direction;\n\t\tthread_state_flavor_t flavor;\n\t\tmach_msg_type_number_t in_stateCnt;\n\t\tnatural_t in_state[614];\n\t\tmach_msg_type_number_t out_stateCnt;\n\t} __Request__thread_convert_thread_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\texception_mask_t exception_mask;\n\t} __Request__thread_get_exception_ports_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__thread_act_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__thread_act_subsystem__defined\n#define __RequestUnion__thread_act_subsystem__defined\nunion __RequestUnion__thread_act_subsystem {\n\t__Request__thread_terminate_t Request_thread_terminate;\n\t__Request__act_get_state_t Request_act_get_state;\n\t__Request__act_set_state_t Request_act_set_state;\n\t__Request__thread_get_state_t Request_thread_get_state;\n\t__Request__thread_set_state_t Request_thread_set_state;\n\t__Request__thread_suspend_t Request_thread_suspend;\n\t__Request__thread_resume_t Request_thread_resume;\n\t__Request__thread_abort_t Request_thread_abort;\n\t__Request__thread_abort_safely_t Request_thread_abort_safely;\n\t__Request__thread_depress_abort_t Request_thread_depress_abort;\n\t__Request__thread_get_special_port_t Request_thread_get_special_port;\n\t__Request__thread_set_special_port_t Request_thread_set_special_port;\n\t__Request__thread_info_t Request_thread_info;\n\t__Request__thread_set_exception_ports_t Request_thread_set_exception_ports;\n\t__Request__thread_get_exception_ports_t Request_thread_get_exception_ports;\n\t__Request__thread_swap_exception_ports_t Request_thread_swap_exception_ports;\n\t__Request__thread_policy_t Request_thread_policy;\n\t__Request__thread_policy_set_t Request_thread_policy_set;\n\t__Request__thread_policy_get_t Request_thread_policy_get;\n\t__Request__thread_sample_t Request_thread_sample;\n\t__Request__etap_trace_thread_t Request_etap_trace_thread;\n\t__Request__thread_assign_t Request_thread_assign;\n\t__Request__thread_assign_default_t Request_thread_assign_default;\n\t__Request__thread_get_assignment_t Request_thread_get_assignment;\n\t__Request__thread_set_policy_t Request_thread_set_policy;\n\t__Request__thread_get_mach_voucher_t Request_thread_get_mach_voucher;\n\t__Request__thread_set_mach_voucher_t Request_thread_set_mach_voucher;\n\t__Request__thread_swap_mach_voucher_t Request_thread_swap_mach_voucher;\n\t__Request__thread_convert_thread_state_t Request_thread_convert_thread_state;\n\t__Request__thread_get_exception_ports_info_t Request_thread_get_exception_ports_info;\n};\n#endif /* !__RequestUnion__thread_act_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__thread_act_subsystem__defined\n#define __Reply__thread_act_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_terminate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t old_stateCnt;\n\t\tnatural_t old_state[614];\n\t} __Reply__act_get_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__act_set_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t old_stateCnt;\n\t\tnatural_t old_state[614];\n\t} __Reply__thread_get_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_set_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_suspend_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_resume_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_abort_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_abort_safely_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_depress_abort_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t special_port;\n\t\t/* end of the kernel processed data */\n\t} __Reply__thread_get_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_set_special_port_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t thread_info_outCnt;\n\t\tinteger_t thread_info_out[32];\n\t} __Reply__thread_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_set_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t old_handlers[32];\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t masksCnt;\n\t\texception_mask_t masks[32];\n\t\texception_behavior_t old_behaviors[32];\n\t\tthread_state_flavor_t old_flavors[32];\n\t} __Reply__thread_get_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t old_handlers[32];\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t masksCnt;\n\t\texception_mask_t masks[32];\n\t\texception_behavior_t old_behaviors[32];\n\t\tthread_state_flavor_t old_flavors[32];\n\t} __Reply__thread_swap_exception_ports_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_policy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_policy_set_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t policy_infoCnt;\n\t\tinteger_t policy_info[16];\n\t\tboolean_t get_default;\n\t} __Reply__thread_policy_get_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_sample_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__etap_trace_thread_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_assign_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_assign_default_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t assigned_set;\n\t\t/* end of the kernel processed data */\n\t} __Reply__thread_get_assignment_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_set_policy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t voucher;\n\t\t/* end of the kernel processed data */\n\t} __Reply__thread_get_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__thread_set_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t old_voucher;\n\t\t/* end of the kernel processed data */\n\t} __Reply__thread_swap_mach_voucher_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t out_stateCnt;\n\t\tnatural_t out_state[614];\n\t} __Reply__thread_convert_thread_state_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t masksCnt;\n\t\texception_mask_t masks[32];\n\t\texception_handler_info_t old_handlers_info[32];\n\t\texception_behavior_t old_behaviors[32];\n\t\tthread_state_flavor_t old_flavors[32];\n\t} __Reply__thread_get_exception_ports_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__thread_act_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__thread_act_subsystem__defined\n#define __ReplyUnion__thread_act_subsystem__defined\nunion __ReplyUnion__thread_act_subsystem {\n\t__Reply__thread_terminate_t Reply_thread_terminate;\n\t__Reply__act_get_state_t Reply_act_get_state;\n\t__Reply__act_set_state_t Reply_act_set_state;\n\t__Reply__thread_get_state_t Reply_thread_get_state;\n\t__Reply__thread_set_state_t Reply_thread_set_state;\n\t__Reply__thread_suspend_t Reply_thread_suspend;\n\t__Reply__thread_resume_t Reply_thread_resume;\n\t__Reply__thread_abort_t Reply_thread_abort;\n\t__Reply__thread_abort_safely_t Reply_thread_abort_safely;\n\t__Reply__thread_depress_abort_t Reply_thread_depress_abort;\n\t__Reply__thread_get_special_port_t Reply_thread_get_special_port;\n\t__Reply__thread_set_special_port_t Reply_thread_set_special_port;\n\t__Reply__thread_info_t Reply_thread_info;\n\t__Reply__thread_set_exception_ports_t Reply_thread_set_exception_ports;\n\t__Reply__thread_get_exception_ports_t Reply_thread_get_exception_ports;\n\t__Reply__thread_swap_exception_ports_t Reply_thread_swap_exception_ports;\n\t__Reply__thread_policy_t Reply_thread_policy;\n\t__Reply__thread_policy_set_t Reply_thread_policy_set;\n\t__Reply__thread_policy_get_t Reply_thread_policy_get;\n\t__Reply__thread_sample_t Reply_thread_sample;\n\t__Reply__etap_trace_thread_t Reply_etap_trace_thread;\n\t__Reply__thread_assign_t Reply_thread_assign;\n\t__Reply__thread_assign_default_t Reply_thread_assign_default;\n\t__Reply__thread_get_assignment_t Reply_thread_get_assignment;\n\t__Reply__thread_set_policy_t Reply_thread_set_policy;\n\t__Reply__thread_get_mach_voucher_t Reply_thread_get_mach_voucher;\n\t__Reply__thread_set_mach_voucher_t Reply_thread_set_mach_voucher;\n\t__Reply__thread_swap_mach_voucher_t Reply_thread_swap_mach_voucher;\n\t__Reply__thread_convert_thread_state_t Reply_thread_convert_thread_state;\n\t__Reply__thread_get_exception_ports_info_t Reply_thread_get_exception_ports_info;\n};\n#endif /* !__RequestUnion__thread_act_subsystem__defined */\n\n#ifndef subsystem_to_name_map_thread_act\n#define subsystem_to_name_map_thread_act \\\n    { \"thread_terminate\", 3600 },\\\n    { \"act_get_state\", 3601 },\\\n    { \"act_set_state\", 3602 },\\\n    { \"thread_get_state\", 3603 },\\\n    { \"thread_set_state\", 3604 },\\\n    { \"thread_suspend\", 3605 },\\\n    { \"thread_resume\", 3606 },\\\n    { \"thread_abort\", 3607 },\\\n    { \"thread_abort_safely\", 3608 },\\\n    { \"thread_depress_abort\", 3609 },\\\n    { \"thread_get_special_port\", 3610 },\\\n    { \"thread_set_special_port\", 3611 },\\\n    { \"thread_info\", 3612 },\\\n    { \"thread_set_exception_ports\", 3613 },\\\n    { \"thread_get_exception_ports\", 3614 },\\\n    { \"thread_swap_exception_ports\", 3615 },\\\n    { \"thread_policy\", 3616 },\\\n    { \"thread_policy_set\", 3617 },\\\n    { \"thread_policy_get\", 3618 },\\\n    { \"thread_sample\", 3619 },\\\n    { \"etap_trace_thread\", 3620 },\\\n    { \"thread_assign\", 3621 },\\\n    { \"thread_assign_default\", 3622 },\\\n    { \"thread_get_assignment\", 3623 },\\\n    { \"thread_set_policy\", 3624 },\\\n    { \"thread_get_mach_voucher\", 3625 },\\\n    { \"thread_set_mach_voucher\", 3626 },\\\n    { \"thread_swap_mach_voucher\", 3627 },\\\n    { \"thread_convert_thread_state\", 3628 },\\\n    { \"thread_get_exception_ports_info\", 3630 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _thread_act_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/vm_map.h",
    "content": "#ifndef\t_vm_map_user_\n#define\t_vm_map_user_\n\n/* Module vm_map */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tvm_map_MSG_COUNT\n#define\tvm_map_MSG_COUNT\t33\n#endif\t/* vm_map_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <mach/mig.h>\n#include <mach/mach_types.h>\n#include <mach_debug/mach_debug_types.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine vm_region */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_region\n(\n\tvm_map_t target_task,\n\tvm_address_t *address,\n\tvm_size_t *size,\n\tvm_region_flavor_t flavor,\n\tvm_region_info_t info,\n\tmach_msg_type_number_t *infoCnt,\n\tmach_port_t *object_name\n);\n\n/* Routine vm_allocate */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_allocate\n(\n\tvm_map_t target_task,\n\tvm_address_t *address,\n\tvm_size_t size,\n\tint flags\n);\n\n/* Routine vm_deallocate */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_deallocate\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_size_t size\n);\n\n/* Routine vm_protect */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_protect\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_size_t size,\n\tboolean_t set_maximum,\n\tvm_prot_t new_protection\n);\n\n/* Routine vm_inherit */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_inherit\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_size_t size,\n\tvm_inherit_t new_inheritance\n);\n\n/* Routine vm_read */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_read\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_size_t size,\n\tvm_offset_t *data,\n\tmach_msg_type_number_t *dataCnt\n);\n\n/* Routine vm_read_list */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_read_list\n(\n\tvm_map_t target_task,\n\tvm_read_entry_t data_list,\n\tnatural_t count\n);\n\n/* Routine vm_write */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_write\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_offset_t data,\n\tmach_msg_type_number_t dataCnt\n);\n\n/* Routine vm_copy */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_copy\n(\n\tvm_map_t target_task,\n\tvm_address_t source_address,\n\tvm_size_t size,\n\tvm_address_t dest_address\n);\n\n/* Routine vm_read_overwrite */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_read_overwrite\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_size_t size,\n\tvm_address_t data,\n\tvm_size_t *outsize\n);\n\n/* Routine vm_msync */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_msync\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_size_t size,\n\tvm_sync_t sync_flags\n);\n\n/* Routine vm_behavior_set */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_behavior_set\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_size_t size,\n\tvm_behavior_t new_behavior\n);\n\n/* Routine vm_map */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_map\n(\n\tvm_map_t target_task,\n\tvm_address_t *address,\n\tvm_size_t size,\n\tvm_address_t mask,\n\tint flags,\n\tmem_entry_name_port_t object,\n\tvm_offset_t offset,\n\tboolean_t copy,\n\tvm_prot_t cur_protection,\n\tvm_prot_t max_protection,\n\tvm_inherit_t inheritance\n);\n\n/* Routine vm_machine_attribute */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_machine_attribute\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_size_t size,\n\tvm_machine_attribute_t attribute,\n\tvm_machine_attribute_val_t *value\n);\n\n/* Routine vm_remap */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_remap\n(\n\tvm_map_t target_task,\n\tvm_address_t *target_address,\n\tvm_size_t size,\n\tvm_address_t mask,\n\tint flags,\n\tvm_map_t src_task,\n\tvm_address_t src_address,\n\tboolean_t copy,\n\tvm_prot_t *cur_protection,\n\tvm_prot_t *max_protection,\n\tvm_inherit_t inheritance\n);\n\n/* Routine task_wire */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t task_wire\n(\n\tvm_map_t target_task,\n\tboolean_t must_wire\n);\n\n/* Routine mach_make_memory_entry */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_make_memory_entry\n(\n\tvm_map_t target_task,\n\tvm_size_t *size,\n\tvm_offset_t offset,\n\tvm_prot_t permission,\n\tmem_entry_name_port_t *object_handle,\n\tmem_entry_name_port_t parent_entry\n);\n\n/* Routine vm_map_page_query */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_map_page_query\n(\n\tvm_map_t target_map,\n\tvm_offset_t offset,\n\tinteger_t *disposition,\n\tinteger_t *ref_count\n);\n\n/* Routine mach_vm_region_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_region_info\n(\n\tvm_map_t task,\n\tvm_address_t address,\n\tvm_info_region_t *region,\n\tvm_info_object_array_t *objects,\n\tmach_msg_type_number_t *objectsCnt\n);\n\n/* Routine vm_mapped_pages_info */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_mapped_pages_info\n(\n\tvm_map_t task,\n\tpage_address_array_t *pages,\n\tmach_msg_type_number_t *pagesCnt\n);\n\n/* Routine vm_region_recurse */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_region_recurse\n(\n\tvm_map_t target_task,\n\tvm_address_t *address,\n\tvm_size_t *size,\n\tnatural_t *nesting_depth,\n\tvm_region_recurse_info_t info,\n\tmach_msg_type_number_t *infoCnt\n);\n\n/* Routine vm_region_recurse_64 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_region_recurse_64\n(\n\tvm_map_t target_task,\n\tvm_address_t *address,\n\tvm_size_t *size,\n\tnatural_t *nesting_depth,\n\tvm_region_recurse_info_t info,\n\tmach_msg_type_number_t *infoCnt\n);\n\n/* Routine mach_vm_region_info_64 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_vm_region_info_64\n(\n\tvm_map_t task,\n\tvm_address_t address,\n\tvm_info_region_64_t *region,\n\tvm_info_object_array_t *objects,\n\tmach_msg_type_number_t *objectsCnt\n);\n\n/* Routine vm_region_64 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_region_64\n(\n\tvm_map_t target_task,\n\tvm_address_t *address,\n\tvm_size_t *size,\n\tvm_region_flavor_t flavor,\n\tvm_region_info_t info,\n\tmach_msg_type_number_t *infoCnt,\n\tmach_port_t *object_name\n);\n\n/* Routine mach_make_memory_entry_64 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t mach_make_memory_entry_64\n(\n\tvm_map_t target_task,\n\tmemory_object_size_t *size,\n\tmemory_object_offset_t offset,\n\tvm_prot_t permission,\n\tmach_port_t *object_handle,\n\tmem_entry_name_port_t parent_entry\n);\n\n/* Routine vm_map_64 */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_map_64\n(\n\tvm_map_t target_task,\n\tvm_address_t *address,\n\tvm_size_t size,\n\tvm_address_t mask,\n\tint flags,\n\tmem_entry_name_port_t object,\n\tmemory_object_offset_t offset,\n\tboolean_t copy,\n\tvm_prot_t cur_protection,\n\tvm_prot_t max_protection,\n\tvm_inherit_t inheritance\n);\n\n/* Routine vm_purgable_control */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_purgable_control\n(\n\tvm_map_t target_task,\n\tvm_address_t address,\n\tvm_purgable_t control,\n\tint *state\n);\n\n/* Routine vm_map_exec_lockdown */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_map_exec_lockdown\n(\n\tvm_map_t target_task\n);\n\n/* Routine vm_remap_new */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t vm_remap_new\n(\n\tvm_map_t target_task,\n\tvm_address_t *target_address,\n\tvm_size_t size,\n\tvm_address_t mask,\n\tint flags,\n\tvm_map_read_t src_task,\n\tvm_address_t src_address,\n\tboolean_t copy,\n\tvm_prot_t *cur_protection,\n\tvm_prot_t *max_protection,\n\tvm_inherit_t inheritance\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__vm_map_subsystem__defined\n#define __Request__vm_map_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_region_flavor_t flavor;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Request__vm_region_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tint flags;\n\t} __Request__vm_allocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t} __Request__vm_deallocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tboolean_t set_maximum;\n\t\tvm_prot_t new_protection;\n\t} __Request__vm_protect_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tvm_inherit_t new_inheritance;\n\t} __Request__vm_inherit_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t} __Request__vm_read_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_read_entry_t data_list;\n\t\tnatural_t count;\n\t} __Request__vm_read_list_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t data;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tmach_msg_type_number_t dataCnt;\n\t} __Request__vm_write_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t source_address;\n\t\tvm_size_t size;\n\t\tvm_address_t dest_address;\n\t} __Request__vm_copy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tvm_address_t data;\n\t} __Request__vm_read_overwrite_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tvm_sync_t sync_flags;\n\t} __Request__vm_msync_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tvm_behavior_t new_behavior;\n\t} __Request__vm_behavior_set_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tvm_address_t mask;\n\t\tint flags;\n\t\tvm_offset_t offset;\n\t\tboolean_t copy;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t\tvm_inherit_t inheritance;\n\t} __Request__vm_map_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tvm_machine_attribute_t attribute;\n\t\tvm_machine_attribute_val_t value;\n\t} __Request__vm_machine_attribute_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t src_task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t target_address;\n\t\tvm_size_t size;\n\t\tvm_address_t mask;\n\t\tint flags;\n\t\tvm_address_t src_address;\n\t\tboolean_t copy;\n\t\tvm_inherit_t inheritance;\n\t} __Request__vm_remap_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tboolean_t must_wire;\n\t} __Request__task_wire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t parent_entry;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_size_t size;\n\t\tvm_offset_t offset;\n\t\tvm_prot_t permission;\n\t} __Request__mach_make_memory_entry_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_offset_t offset;\n\t} __Request__vm_map_page_query_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t} __Request__mach_vm_region_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__vm_mapped_pages_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tnatural_t nesting_depth;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Request__vm_region_recurse_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tnatural_t nesting_depth;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Request__vm_region_recurse_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t} __Request__mach_vm_region_info_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_region_flavor_t flavor;\n\t\tmach_msg_type_number_t infoCnt;\n\t} __Request__vm_region_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t parent_entry;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmemory_object_size_t size;\n\t\tmemory_object_offset_t offset;\n\t\tvm_prot_t permission;\n\t} __Request__mach_make_memory_entry_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tvm_address_t mask;\n\t\tint flags;\n\t\tmemory_object_offset_t offset;\n\t\tboolean_t copy;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t\tvm_inherit_t inheritance;\n\t} __Request__vm_map_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_purgable_t control;\n\t\tint state;\n\t} __Request__vm_purgable_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__vm_map_exec_lockdown_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t src_task;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t target_address;\n\t\tvm_size_t size;\n\t\tvm_address_t mask;\n\t\tint flags;\n\t\tvm_address_t src_address;\n\t\tboolean_t copy;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t\tvm_inherit_t inheritance;\n\t} __Request__vm_remap_new_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__vm_map_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__vm_map_subsystem__defined\n#define __RequestUnion__vm_map_subsystem__defined\nunion __RequestUnion__vm_map_subsystem {\n\t__Request__vm_region_t Request_vm_region;\n\t__Request__vm_allocate_t Request_vm_allocate;\n\t__Request__vm_deallocate_t Request_vm_deallocate;\n\t__Request__vm_protect_t Request_vm_protect;\n\t__Request__vm_inherit_t Request_vm_inherit;\n\t__Request__vm_read_t Request_vm_read;\n\t__Request__vm_read_list_t Request_vm_read_list;\n\t__Request__vm_write_t Request_vm_write;\n\t__Request__vm_copy_t Request_vm_copy;\n\t__Request__vm_read_overwrite_t Request_vm_read_overwrite;\n\t__Request__vm_msync_t Request_vm_msync;\n\t__Request__vm_behavior_set_t Request_vm_behavior_set;\n\t__Request__vm_map_t Request_vm_map;\n\t__Request__vm_machine_attribute_t Request_vm_machine_attribute;\n\t__Request__vm_remap_t Request_vm_remap;\n\t__Request__task_wire_t Request_task_wire;\n\t__Request__mach_make_memory_entry_t Request_mach_make_memory_entry;\n\t__Request__vm_map_page_query_t Request_vm_map_page_query;\n\t__Request__mach_vm_region_info_t Request_mach_vm_region_info;\n\t__Request__vm_mapped_pages_info_t Request_vm_mapped_pages_info;\n\t__Request__vm_region_recurse_t Request_vm_region_recurse;\n\t__Request__vm_region_recurse_64_t Request_vm_region_recurse_64;\n\t__Request__mach_vm_region_info_64_t Request_mach_vm_region_info_64;\n\t__Request__vm_region_64_t Request_vm_region_64;\n\t__Request__mach_make_memory_entry_64_t Request_mach_make_memory_entry_64;\n\t__Request__vm_map_64_t Request_vm_map_64;\n\t__Request__vm_purgable_control_t Request_vm_purgable_control;\n\t__Request__vm_map_exec_lockdown_t Request_vm_map_exec_lockdown;\n\t__Request__vm_remap_new_t Request_vm_remap_new;\n};\n#endif /* !__RequestUnion__vm_map_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__vm_map_subsystem__defined\n#define __Reply__vm_map_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object_name;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tmach_msg_type_number_t infoCnt;\n\t\tint info[10];\n\t} __Reply__vm_region_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t address;\n\t} __Reply__vm_allocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_deallocate_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_protect_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_inherit_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t data;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t dataCnt;\n\t} __Reply__vm_read_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_read_entry_t data_list;\n\t} __Reply__vm_read_list_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_write_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_copy_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_size_t outsize;\n\t} __Reply__vm_read_overwrite_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_msync_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_behavior_set_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t address;\n\t} __Reply__vm_map_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_machine_attribute_val_t value;\n\t} __Reply__vm_machine_attribute_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t target_address;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t} __Reply__vm_remap_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__task_wire_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object_handle;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_size_t size;\n\t} __Reply__mach_make_memory_entry_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tinteger_t disposition;\n\t\tinteger_t ref_count;\n\t} __Reply__vm_map_page_query_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t objects;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_info_region_t region;\n\t\tmach_msg_type_number_t objectsCnt;\n\t} __Reply__mach_vm_region_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t pages;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t pagesCnt;\n\t} __Reply__vm_mapped_pages_info_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tnatural_t nesting_depth;\n\t\tmach_msg_type_number_t infoCnt;\n\t\tint info[19];\n\t} __Reply__vm_region_recurse_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tnatural_t nesting_depth;\n\t\tmach_msg_type_number_t infoCnt;\n\t\tint info[19];\n\t} __Reply__vm_region_recurse_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_ool_descriptor_t objects;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_info_region_64_t region;\n\t\tmach_msg_type_number_t objectsCnt;\n\t} __Reply__mach_vm_region_info_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object_name;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tvm_address_t address;\n\t\tvm_size_t size;\n\t\tmach_msg_type_number_t infoCnt;\n\t\tint info[10];\n\t} __Reply__vm_region_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t object_handle;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmemory_object_size_t size;\n\t} __Reply__mach_make_memory_entry_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t address;\n\t} __Reply__vm_map_64_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tint state;\n\t} __Reply__vm_purgable_control_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__vm_map_exec_lockdown_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tvm_address_t target_address;\n\t\tvm_prot_t cur_protection;\n\t\tvm_prot_t max_protection;\n\t} __Reply__vm_remap_new_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__vm_map_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__vm_map_subsystem__defined\n#define __ReplyUnion__vm_map_subsystem__defined\nunion __ReplyUnion__vm_map_subsystem {\n\t__Reply__vm_region_t Reply_vm_region;\n\t__Reply__vm_allocate_t Reply_vm_allocate;\n\t__Reply__vm_deallocate_t Reply_vm_deallocate;\n\t__Reply__vm_protect_t Reply_vm_protect;\n\t__Reply__vm_inherit_t Reply_vm_inherit;\n\t__Reply__vm_read_t Reply_vm_read;\n\t__Reply__vm_read_list_t Reply_vm_read_list;\n\t__Reply__vm_write_t Reply_vm_write;\n\t__Reply__vm_copy_t Reply_vm_copy;\n\t__Reply__vm_read_overwrite_t Reply_vm_read_overwrite;\n\t__Reply__vm_msync_t Reply_vm_msync;\n\t__Reply__vm_behavior_set_t Reply_vm_behavior_set;\n\t__Reply__vm_map_t Reply_vm_map;\n\t__Reply__vm_machine_attribute_t Reply_vm_machine_attribute;\n\t__Reply__vm_remap_t Reply_vm_remap;\n\t__Reply__task_wire_t Reply_task_wire;\n\t__Reply__mach_make_memory_entry_t Reply_mach_make_memory_entry;\n\t__Reply__vm_map_page_query_t Reply_vm_map_page_query;\n\t__Reply__mach_vm_region_info_t Reply_mach_vm_region_info;\n\t__Reply__vm_mapped_pages_info_t Reply_vm_mapped_pages_info;\n\t__Reply__vm_region_recurse_t Reply_vm_region_recurse;\n\t__Reply__vm_region_recurse_64_t Reply_vm_region_recurse_64;\n\t__Reply__mach_vm_region_info_64_t Reply_mach_vm_region_info_64;\n\t__Reply__vm_region_64_t Reply_vm_region_64;\n\t__Reply__mach_make_memory_entry_64_t Reply_mach_make_memory_entry_64;\n\t__Reply__vm_map_64_t Reply_vm_map_64;\n\t__Reply__vm_purgable_control_t Reply_vm_purgable_control;\n\t__Reply__vm_map_exec_lockdown_t Reply_vm_map_exec_lockdown;\n\t__Reply__vm_remap_new_t Reply_vm_remap_new;\n};\n#endif /* !__RequestUnion__vm_map_subsystem__defined */\n\n#ifndef subsystem_to_name_map_vm_map\n#define subsystem_to_name_map_vm_map \\\n    { \"vm_region\", 3800 },\\\n    { \"vm_allocate\", 3801 },\\\n    { \"vm_deallocate\", 3802 },\\\n    { \"vm_protect\", 3803 },\\\n    { \"vm_inherit\", 3804 },\\\n    { \"vm_read\", 3805 },\\\n    { \"vm_read_list\", 3806 },\\\n    { \"vm_write\", 3807 },\\\n    { \"vm_copy\", 3808 },\\\n    { \"vm_read_overwrite\", 3809 },\\\n    { \"vm_msync\", 3810 },\\\n    { \"vm_behavior_set\", 3811 },\\\n    { \"vm_map\", 3812 },\\\n    { \"vm_machine_attribute\", 3813 },\\\n    { \"vm_remap\", 3814 },\\\n    { \"task_wire\", 3815 },\\\n    { \"mach_make_memory_entry\", 3816 },\\\n    { \"vm_map_page_query\", 3817 },\\\n    { \"mach_vm_region_info\", 3818 },\\\n    { \"vm_mapped_pages_info\", 3819 },\\\n    { \"vm_region_recurse\", 3821 },\\\n    { \"vm_region_recurse_64\", 3822 },\\\n    { \"mach_vm_region_info_64\", 3823 },\\\n    { \"vm_region_64\", 3824 },\\\n    { \"mach_make_memory_entry_64\", 3825 },\\\n    { \"vm_map_64\", 3826 },\\\n    { \"vm_purgable_control\", 3830 },\\\n    { \"vm_map_exec_lockdown\", 3831 },\\\n    { \"vm_remap_new\", 3832 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _vm_map_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/activity.h",
    "content": "/*\n * Copyright (c) 2013-2016 Apple Inc. All rights reserved.\n *\n * @APPLE_OSREFERENCE_LICENSE_HEADER_START@\n *\n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. The rights granted to you under the License\n * may not be used to create, or enable the creation or redistribution of,\n * unlawful or unlicensed copies of an Apple operating system, or to\n * circumvent, violate, or enable the circumvention or violation of, any\n * terms of an Apple operating system software license agreement.\n *\n * Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this file.\n *\n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n *\n * @APPLE_OSREFERENCE_LICENSE_HEADER_END@\n */\n\n#ifndef __OS_ACTIVITY_H__\n#define __OS_ACTIVITY_H__\n\n#include <os/trace_base.h>\n\n__BEGIN_DECLS\n\nOS_ASSUME_NONNULL_BEGIN\n\n#pragma mark - types and globals\n\n#if OS_LOG_TARGET_HAS_10_12_FEATURES\n#define OS_ACTIVITY_OBJECT_API 1\n#else\n#if OS_ACTIVITY_OBJECT_API\n#error Please change your minimum OS requirements because OS_ACTIVITY_OBJECT_API is not available\n#endif // OS_ACTIVITY_OBJECT_API\n#define OS_ACTIVITY_OBJECT_API 0\n#endif\n\n/*!\n * @enum os_activity_flag_t\n *\n * @discussion\n * Support flags for os_activity_create or os_activity_start.\n *\n * @constant OS_ACTIVITY_FLAG_DEFAULT\n * Use the default flags.\n *\n * @constant OS_ACTIVITY_FLAG_DETACHED\n * Detach the newly created activity from the provided activity (if any).  If\n * passed in conjunction with an exiting activity, the activity will only note\n * what activity \"created\" the new one, but will make the new activity a top\n * level activity.  This allows users to see what activity triggered work\n * without actually relating the activities.\n *\n * @constant OS_ACTIVITY_FLAG_IF_NONE_PRESENT\n * Will only create a new activity if none present.  If an activity ID is\n * already present, a new object will be returned with the same activity ID\n * underneath.\n *\n * Passing both OS_ACTIVITY_FLAG_DETACHED and OS_ACTIVITY_FLAG_IF_NONE_PRESENT\n * is undefined.\n */\nOS_ENUM(os_activity_flag, uint32_t,\n    OS_ACTIVITY_FLAG_DEFAULT = 0,\n    OS_ACTIVITY_FLAG_DETACHED = 0x1,\n    OS_ACTIVITY_FLAG_IF_NONE_PRESENT = 0x2\n);\n\n#if OS_ACTIVITY_OBJECT_API\n\n#define OS_ACTIVITY_NULL NULL\n\n/*!\n * @typedef os_activity_t\n * An opaque activity object.\n */\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\n#if OS_OBJECT_USE_OBJC\nOS_OBJECT_DECL(os_activity);\n#else\ntypedef struct os_activity_s *os_activity_t;\n#endif /* OS_OBJECT_USE_OBJC */\n\n/*!\n * @const OS_ACTIVITY_NONE\n *\n * @discussion\n * Create activity with no current traits, this is the equivalent of a\n * detached activity.\n */\n#define OS_ACTIVITY_NONE OS_OBJECT_GLOBAL_OBJECT(os_activity_t, _os_activity_none)\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT\nconst struct os_activity_s _os_activity_none;\n\n/*!\n * @const OS_ACTIVITY_CURRENT\n *\n * @discussion\n * Create activity and links to the current activity if one is present.\n * If no activity is present it is treated as if it is detached.\n */\n#define OS_ACTIVITY_CURRENT OS_OBJECT_GLOBAL_OBJECT(os_activity_t, _os_activity_current)\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT\nconst struct os_activity_s _os_activity_current;\n\n#else // !OS_ACTIVITY_OBJECT_API\n\n#define OS_ACTIVITY_NULL 0\n\n/*!\n * @typedef os_activity_t\n * An opaque activity identifier.\n */\nAPI_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))\ntypedef uint64_t os_activity_t;\n\n#endif // OS_ACTIVITY_OBJECT_API\n\n/*!\n * @typedef os_activity_id_t\n * An value representing the activity ID assigned to an newly created activity.\n */\nAPI_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))\ntypedef uint64_t os_activity_id_t;\n\n/*!\n * @typedef os_activity_scope_state_t\n * Structure that is populated by os_activity_scope_enter and restored using\n * os_activity_scope_leave.\n */\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\ntypedef struct os_activity_scope_state_s {\n    uint64_t opaque[2];\n} *os_activity_scope_state_t;\n\n#pragma mark - Internal support functions\n\n#if OS_ACTIVITY_OBJECT_API\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT OS_NOTHROW OS_WARN_RESULT_NEEDS_RELEASE OS_NOT_TAIL_CALLED\nOS_OBJECT_RETURNS_RETAINED\nos_activity_t\n_os_activity_create(void *dso, const char *description, os_activity_t activity,\n        os_activity_flag_t flags);\n#endif\n\n/*!\n * @function _os_activity_label_useraction\n *\n * @abstract\n * Internal function for use by os_activity_label_useraction.\n *\n * @warning\n * Do not use directly.\n */\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT OS_NOTHROW OS_NOT_TAIL_CALLED\nvoid\n_os_activity_label_useraction(void *dso, const char *name);\n\n/*!\n * @function _os_activity_initiate\n *\n * @abstract\n * Do not use directly because your description will not be preserved.\n */\nAPI_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))\nOS_EXPORT OS_NOTHROW OS_NOT_TAIL_CALLED\nvoid\n_os_activity_initiate(void *dso, const char *description,\n        os_activity_flag_t flags, os_block_t activity_block OS_NOESCAPE);\n\n/*!\n * @function _os_activity_initiate_f\n *\n * @abstract\n * Do not use directly because your description will not be preserved.\n */\nAPI_AVAILABLE(macos(10.10), ios(8.0), watchos(2.0), tvos(9.0))\nOS_EXPORT OS_NOTHROW OS_NOT_TAIL_CALLED\nvoid\n_os_activity_initiate_f(void *dso, const char *description,\n        os_activity_flag_t flags, void *context, os_function_t function);\n\n#pragma mark - activity related\n\n/*!\n * @function os_activity_initiate\n *\n * @abstract\n * Synchronously initiates an activity using provided block.\n *\n * @discussion\n * Synchronously initiates an activity using the provided block and creates\n * a tracing buffer as appropriate.  All new activities are created as a\n * subactivity of an existing activity on the current thread.\n *\n * <code>\n *     os_activity_initiate(\"indexing database\", OS_ACTIVITY_FLAG_DEFAULT, ^(void) {\n *         // either do work directly or issue work asynchronously\n *     });\n * </code>\n *\n * @param description\n * A constant string describing the activity, e.g., \"performClick\" or\n * \"menuSelection\".\n *\n * @param flags\n * Flags to be used when initiating the activity, typically\n * OS_ACTIVITY_FLAG_DEFAULT.\n *\n * @param activity_block\n * The block to execute a given activity\n */\n#define os_activity_initiate(description, flags, activity_block) __extension__({ \\\n    OS_LOG_STRING(ACT, __description, description); \\\n    _os_activity_initiate(&__dso_handle, __description, flags, activity_block); \\\n})\n\n/*!\n * @function os_activity_initiate_f\n *\n * @abstract\n * Synchronously initiates an activity using the provided function.\n *\n * @discussion\n * Synchronously initiates an activity using the provided function and creates\n * a tracing buffer as appropriate.  All new activities are created as a\n * subactivity of an existing activity on the current thread.\n *\n * <code>\n *     os_activity_initiate_f(\"indexing database\", OS_ACTIVITY_FLAG_DEFAULT, context, function);\n * </code>\n *\n * @param description\n * A constant string describing the activity, e.g., \"performClick\" or\n * \"menuSelection\".\n *\n * @param flags\n * Flags to be used when initiating the activity, typically\n * OS_ACTIVITY_FLAG_DEFAULT.\n *\n * @param context\n * An optional context that will be supplied to the activity function.\n *\n * @param activity_func\n * The function to execute for the new activity.\n */\n#define os_activity_initiate_f(description, flags, context, function) __extension__({ \\\n    OS_LOG_STRING(ACT, __description, description); \\\n    _os_activity_initiate_f(&__dso_handle, __description, flags, context, function); \\\n})\n\n#if OS_ACTIVITY_OBJECT_API\n/*!\n * @function os_activity_create\n *\n * @abstract\n * Creates an os_activity_t object which can be passed to os_activity_apply\n * function.\n *\n * @param description\n * Pass a description for the activity.  The description must be a constant\n * string within the calling executable or library.\n *\n * @param parent_activity\n * Depending on flags will link the newly created activity to the value passed\n * or note where the activity was created.  Possible activities include:\n * OS_ACTIVITY_NONE, OS_ACTIVITY_CURRENT or any existing os_activity_t object\n * created using os_activity_create.\n *\n * @param flags\n * A valid os_activity_flag_t which will determine behavior of the newly created\n * activity.\n *\n * If the OS_ACTIVITY_FLAG_DETACHED flag is passed, the value passed to the\n * parent_activity argument is ignored, and OS_ACTIVITY_NONE is used instead.\n *\n * If the OS_ACTIVITY_FLAG_IF_NONE_PRESENT flag is passed, then passing another\n * value than OS_ACTIVITY_CURRENT to the parent_activity argument is undefined.\n *\n * @result\n * Returns an os_activity_t object which can be used with os_activity_apply.\n */\n#define os_activity_create(description, parent_activity, flags) __extension__({ \\\n    OS_LOG_STRING(ACT, __description, description); \\\n    _os_activity_create(&__dso_handle, __description, parent_activity, flags); \\\n})\n\n/*!\n * @function os_activity_apply\n *\n * @abstract\n * Execute a block using a given activity object.\n *\n * @param activity\n * The given activity object created with os_activity_create() or\n * OS_ACTIVITY_NONE.\n *\n * @param block\n * Pass the block to be executed within the context of the given activity.\n */\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT OS_NOTHROW\nvoid\nos_activity_apply(os_activity_t activity, os_block_t block OS_NOESCAPE);\n\n/*!\n * @function os_activity_apply_f\n *\n * @abstract\n * Execute a given function with a provided activity.\n *\n * @param activity\n * The given activity object created with os_activity_create() or\n * OS_ACTIVITY_NONE.\n *\n * @param context\n * Context to pass to the function which may be NULL.\n *\n * @param function\n * Pass the function to be executed within the context of the given activity.\n */\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT OS_NOTHROW\nvoid\nos_activity_apply_f(os_activity_t activity, void *context,\n        os_function_t function);\n\n/*!\n * @function os_activity_scope_enter\n *\n * @abstract\n * Will change the current execution context to use the provided activity.\n *\n * @discussion\n * Will change the current execution context to use the provided activity.\n * An activity can be created and then applied to the current scope by doing:\n *\n * <code>\n *     struct os_activity_scope_state_s state;\n *     os_activity_t activity = os_activity_create(\"my new activity\", 0);\n *     os_activity_scope_enter(activity, &state);\n *     ... do some work ...\n *     os_activity_scope_leave(&state);\n * </code>\n *\n * To auto-cleanup state call:\n *\n *      os_activity_scope(activity);\n *\n * @param activity\n * Pass a valid activity created with os_activity_create or any global object.\n *\n * @param state\n * A stack-based struct os_activity_scope_state_s to store the state.\n */\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT OS_NOTHROW\nvoid\nos_activity_scope_enter(os_activity_t activity, os_activity_scope_state_t state);\n\n/*!\n * @function os_activity_scope_leave\n *\n * @abstract\n * Will pop state up to the state provided.\n *\n * @discussion\n * Will leave scope using the state provided.  If state is not present an error\n * will be generated.\n *\n * @param state\n * Must be a valid value filled by os_activity_scope_enter call.\n */\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT OS_NOTHROW\nvoid\nos_activity_scope_leave(os_activity_scope_state_t state);\n\n#if defined(__GNUC__)\n#define _os_activity_scope(var, activity) \\\n    struct os_activity_scope_state_s var __attribute__((__cleanup__(os_activity_scope_leave))); \\\n    os_activity_scope_enter(activity, &var)\n#define os_activity_scope(activity) _os_activity_scope(OS_CONCAT(scope, __COUNTER__), activity)\n#endif\n\n#endif // OS_ACTIVITY_OBJECT_API\n\n/*!\n * @function os_activity_get_active\n *\n * @abstract\n * Returns the stack of nested activities associated with the current thread.\n *\n * @discussion\n * Activities have a sense of nesting and therefore there could be more than\n * one activity involved on the current thread.  This should be used by\n * diagnostic tools only for making additional decisions about a situation.\n *\n * @param entries\n * Pass a buffer of sufficient size to hold the the number of os_activity_id_t\n * being requested.\n *\n * @param count\n * Pointer to the requested number of activity identifiers.\n * On output will be filled with the number of activities that are available.\n *\n * @result\n * Number of activity identifiers written to 'entries'\n */\nAPI_DEPRECATED(\"No longer supported\", macos(10.10, 10.12), ios(8.0, 10.0),\n        watchos(2.0, 3.0), tvos(9.0, 10.0))\nOS_EXPORT OS_NOTHROW\nunsigned int\nos_activity_get_active(os_activity_id_t *entries, unsigned int *count);\n\n/*!\n * @function os_activity_get_identifier\n *\n * @abstract\n * Returns the current activity ID and will fill the parent_id if present.\n *\n * @discussion\n * Returns the current activity ID and will fill the parent_id if present.\n *\n * @param parent_id\n * If non-null will set the parent activity ID.\n *\n * @result\n * The identifier for the provided activity.\n */\nAPI_AVAILABLE(macos(10.12), ios(10.0), watchos(3.0), tvos(10.0))\nOS_EXPORT OS_NOTHROW OS_WARN_RESULT\nos_activity_id_t\nos_activity_get_identifier(os_activity_t activity,\n        os_activity_id_t *_Nullable parent_id);\n\n/*!\n * @function os_activity_label_useraction\n *\n * @abstract\n * Label an activity that is auto-generated by AppKit/UIKit with a name that is\n * useful for debugging macro-level user actions.\n *\n * @discussion\n * Label an activity that is auto-generated by AppKit/UIKit with a name that is\n * useful for debugging macro-level user actions.  The API should be called\n * early within the scope of the IBAction and before any sub-activities are\n * created.  The name provided will be shown in tools in additon to the\n * underlying AppKit/UIKit provided name.  This API can only be called once and\n * only on the activity created by AppKit/UIKit.  These actions help determine\n * workflow of the user in order to reproduce problems that occur.  For example,\n * a control press and/or menu item selection can be labeled:\n *\n * <code>\n *     os_activity_label_useraction(\"New mail message\");\n *     os_activity_label_useraction(\"Empty trash\");\n * </code>\n *\n * Where the underlying AppKit/UIKit name will be \"gesture:\" or \"menuSelect:\".\n *\n * @param name\n * A constant string that describes the the action.\n */\n#define os_activity_label_useraction(label) __extension__({ \\\n    OS_LOG_STRING(ACT, __label, label); \\\n    _os_activity_label_useraction(&__dso_handle, __label); \\\n})\n\n#pragma mark - deprecated function support\n\n/*!\n * @function _os_activity_start\n *\n * @abstract\n * Internal function for activity start, do not use directly will not preserve\n * description.\n */\nAPI_DEPRECATED(\"use combination of os_activity_create and os_activity_apply/os_activity_scope\",\n        macos(10.10, 10.12), ios(8.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0))\nOS_EXPORT OS_NOTHROW OS_WARN_RESULT OS_NOT_TAIL_CALLED\nos_activity_t\n_os_activity_start(void *dso, const char *description, os_activity_flag_t flags);\n\n/*!\n * @function os_activity_start\n *\n * @warning\n * Deprecated please use new os_activity_create and os_activity_apply.\n */\n#define os_activity_start(description, flags) __extension__({ \\\n    OS_LOG_STRING(ACT, __description, description); \\\n    _os_activity_start(&__dso_handle, __description, flags); \\\n})\n\n/*!\n * @function os_activity_end\n *\n * @warning\n * Deprecated please use new os_activity_create and os_activity_apply.\n */\nAPI_DEPRECATED(\"use combination of os_activity_create and os_activity_apply/os_activity_scope\",\n        macos(10.10, 10.12), ios(8.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0))\nOS_EXPORT OS_NOTHROW\nvoid\nos_activity_end(os_activity_t activity);\n\n/*!\n * @typedef os_breadcrumb_t\n * An opaque value for the breadcrumb ID.\n */\nAPI_DEPRECATED(\"No longer supported\", macos(10.10, 10.12), ios(8.0, 10.0),\n        watchos(2.0, 3.0), tvos(9.0, 10.0))\ntypedef uint32_t os_breadcrumb_t;\n\n/*!\n * @function _os_activity_set_breadcrumb\n *\n * @warning\n * Deprecated, please use os_activity_label_useraction.\n */\nAPI_DEPRECATED_WITH_REPLACEMENT(\"os_activity_label_useraction\",\n        macos(10.10, 10.12), ios(8.0, 10.0), watchos(2.0, 3.0), tvos(9.0, 10.0))\nOS_EXPORT OS_NOTHROW OS_NOT_TAIL_CALLED\nvoid\n_os_activity_set_breadcrumb(void *dso, const char *name);\n\n/*!\n * @function os_activity_set_breadcrumb\n *\n * @warning\n * Deprecated, please use os_activity_label_useraction.\n */\n#define os_activity_set_breadcrumb(name) __extension__({ \\\n    OS_LOG_STRING(ACT, __name, name); \\\n    _os_activity_set_breadcrumb(&__dso_handle, __name); \\\n})\n\nOS_ASSUME_NONNULL_END\n\n__END_DECLS\n\n#endif // __OS_ACTIVITY_H__\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/availability.h",
    "content": "/*\n * Copyright (c) 2008-2017 Apple Inc. All rights reserved.\n *\n * @APPLE_APACHE_LICENSE_HEADER_START@\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *     http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @APPLE_APACHE_LICENSE_HEADER_END@\n */\n \n#ifndef __OS_AVAILABILITY__\n#define __OS_AVAILABILITY__\n\n/* \n * API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated \n * in an upcoming release. This soft deprecation is an intermediate step before formal \n * deprecation to notify developers about the API before compiler warnings are generated.\n * You can find all places in your code that use soft deprecated API by redefining the \n * value of this macro to your current minimum deployment target, for example:\n * (macOS)\n *   clang -DAPI_TO_BE_DEPRECATED=10.12 <other compiler flags>\n * (iOS)\n *   clang -DAPI_TO_BE_DEPRECATED=11.0 <other compiler flags>\n */\n \n#ifndef API_TO_BE_DEPRECATED\n#define API_TO_BE_DEPRECATED 100000\n#endif\n\n#include <AvailabilityInternal.h>\n\n\n\n#if defined(__has_feature) && defined(__has_attribute)\n #if __has_attribute(availability)\n\n    /*\n     * API Introductions\n     *\n     * Use to specify the release that a particular API became available.\n     *\n     * Platform names:\n     *   macos, ios, tvos, watchos\n     *\n     * Examples:\n     *    API_AVAILABLE(macos(10.10))\n     *    API_AVAILABLE(macos(10.9), ios(10.0))\n     *    API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0))\n     */\n\n    #define API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE7, __API_AVAILABLE6, __API_AVAILABLE5, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1, 0)(__VA_ARGS__)\n\n    #define API_AVAILABLE_BEGIN(...) _Pragma(\"clang attribute push\") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN7,__API_AVAILABLE_BEGIN6, __API_AVAILABLE_BEGIN5, __API_AVAILABLE_BEGIN4, __API_AVAILABLE_BEGIN3, __API_AVAILABLE_BEGIN2, __API_AVAILABLE_BEGIN1, 0)(__VA_ARGS__)\n    #define API_AVAILABLE_END _Pragma(\"clang attribute pop\")\n\n    /*\n     * API Deprecations\n     *\n     * Use to specify the release that a particular API became unavailable.\n     *\n     * Platform names:\n     *   macos, ios, tvos, watchos\n     *\n     * Examples:\n     *\n     *    API_DEPRECATED(\"No longer supported\", macos(10.4, 10.8))\n     *    API_DEPRECATED(\"No longer supported\", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0))\n     *\n     *    API_DEPRECATED_WITH_REPLACEMENT(\"-setName:\", tvos(10.0, 10.4), ios(9.0, 10.0))\n     *    API_DEPRECATED_WITH_REPLACEMENT(\"SomeClassName\", macos(10.4, 10.6), watchos(2.0, 3.0))\n     */\n\n    #define API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7, __API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1, 0)(__VA_ARGS__)\n    #define API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7, __API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1, 0)(__VA_ARGS__)\n\n    #define API_DEPRECATED_BEGIN(...) _Pragma(\"clang attribute push\") __API_DEPRECATED_BEGIN_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_MSG8,__API_DEPRECATED_BEGIN_MSG7, __API_DEPRECATED_BEGIN_MSG6, __API_DEPRECATED_BEGIN_MSG5, __API_DEPRECATED_BEGIN_MSG4, __API_DEPRECATED_BEGIN_MSG3, __API_DEPRECATED_BEGIN_MSG2, __API_DEPRECATED_BEGIN_MSG1, 0)(__VA_ARGS__)\n    #define API_DEPRECATED_END _Pragma(\"clang attribute pop\")\n\n    #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma(\"clang attribute push\") __API_DEPRECATED_BEGIN_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_REP8,__API_DEPRECATED_BEGIN_REP7, __API_DEPRECATED_BEGIN_REP6, __API_DEPRECATED_BEGIN_REP5, __API_DEPRECATED_BEGIN_REP4, __API_DEPRECATED_BEGIN_REP3, __API_DEPRECATED_BEGIN_REP2, __API_DEPRECATED_BEGIN_REP1, 0)(__VA_ARGS__)\n    #define API_DEPRECATED_WITH_REPLACEMENT_END _Pragma(\"clang attribute pop\")\n\n\n    /*\n     * API Unavailability\n     * Use to specify that an API is unavailable for a particular platform.\n     *\n     * Example:\n     *    API_UNAVAILABLE(macos)\n     *    API_UNAVAILABLE(watchos, tvos)\n     */\n\n    #define API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE7,__API_UNAVAILABLE6, __API_UNAVAILABLE5, __API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__)\n\n    #define API_UNAVAILABLE_BEGIN(...) _Pragma(\"clang attribute push\") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6, __API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_ARGS__)\n    #define API_UNAVAILABLE_END _Pragma(\"clang attribute pop\")\n #else\n\n    /* \n     * Evaluate to nothing for compilers that don't support availability.\n     */\n   \n     #define API_AVAILABLE(...)\n     #define API_AVAILABLE_BEGIN(...)\n     #define API_AVAILABLE_END\n     #define API_DEPRECATED(...)\n     #define API_DEPRECATED_WITH_REPLACEMENT(...)\n     #define API_DEPRECATED_BEGIN(...)\n     #define API_DEPRECATED_END\n     #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)\n     #define API_DEPRECATED_WITH_REPLACEMENT_END\n     #define API_UNAVAILABLE(...)\n     #define API_UNAVAILABLE_BEGIN(...)\n     #define API_UNAVAILABLE_END\n #endif /* __has_attribute(availability) */\n#else\n\n    /* \n     * Evaluate to nothing for compilers that don't support clang language extensions.\n     */\n\n    #define API_AVAILABLE(...)\n    #define API_AVAILABLE_BEGIN(...)\n    #define API_AVAILABLE_END\n    #define API_DEPRECATED(...)\n    #define API_DEPRECATED_WITH_REPLACEMENT(...)\n    #define API_DEPRECATED_BEGIN(...)\n    #define API_DEPRECATED_END\n    #define API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)\n    #define API_DEPRECATED_WITH_REPLACEMENT_END\n    #define API_UNAVAILABLE(...)\n    #define API_UNAVAILABLE_BEGIN(...)\n    #define API_UNAVAILABLE_END\n#endif /* #if defined(__has_feature) && defined(__has_attribute) */\n\n#if __has_include(<AvailabilityProhibitedInternal.h>)\n  #include <AvailabilityProhibitedInternal.h>\n#endif\n\n/*\n * If SPI decorations have not been defined elsewhere, disable them.\n */\n\n#ifndef SPI_AVAILABLE\n  #define SPI_AVAILABLE(...)\n#endif\n\n#ifndef SPI_DEPRECATED\n  #define SPI_DEPRECATED(...)\n#endif\n\n#ifndef SPI_DEPRECATED_WITH_REPLACEMENT\n  #define SPI_DEPRECATED_WITH_REPLACEMENT(...)\n#endif\n\n#endif /* __OS_AVAILABILITY__ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/feature_private.h",
    "content": "// created for Darling\n\n#ifndef _OS_FEATURE_PRIVATE_H\n#define _OS_FEATURE_PRIVATE_H\n\n#define os_feature_enabled(framework, feature) (0)\n#define os_feature_enabled_simple(framework, feature, boolean) (0)\n\n#endif // _OS_FEATURE_PRIVATE_H\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/signpost.h",
    "content": "// created for Darling\n\n#ifndef _OS_SIGNPOST_H\n#define _OS_SIGNPOST_H\n\n#include <stdint.h>\n#include <stddef.h>\n\n#include <os/log.h>\n\ntypedef uint64_t os_signpost_id_t;\n\n#define OS_SIGNPOST_ID_EXCLUSIVE\n#define OS_SIGNPOST_ID_NULL\n#define OS_SIGNPOST_ID_INVALID\n\nos_signpost_id_t os_signpost_id_generate(os_log_t log);\nos_signpost_id_t os_signpost_id_make_with_pointer(os_log_t log, const void* ptr);\n\nenum {\n\tOS_SIGNPOST_INTERVAL_BEGIN,\n\tOS_SIGNPOST_INTERVAL_END,\n\tOS_SIGNPOST_EVENT,\n};\n\n#define os_signpost_emit_with_type(log, type, spid, name, ...)\n\n#define os_signpost_interval_begin(log, interval_id, name, ...)\n#define os_signpost_event_emit(log, event_id, name, ...)\n#define os_signpost_interval_end(log, interval_id, name, ...)\n\n#endif // _OS_SIGNPOST_H\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/signpost_private.h",
    "content": "// created for Darling\n\n#ifndef _OS_SIGNPOST_PRIVATE_H\n#define _OS_SIGNPOST_PRIVATE_H\n\n#include <os/signpost.h>\n\n// someone please check this (this is almost certainly not it)\n#define OS_SIGNPOST_ENABLE_TELEMETRY \"OS_SIGNPOST_ENABLE_TELEMETRY\"\n\n#endif // _OS_SIGNPOST_PRIVATE_H\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/os/trace_base.h",
    "content": "/*\n * Copyright (c) 2016 Apple Inc. All rights reserved.\n *\n * @APPLE_OSREFERENCE_LICENSE_HEADER_START@\n *\n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. The rights granted to you under the License\n * may not be used to create, or enable the creation or redistribution of,\n * unlawful or unlicensed copies of an Apple operating system, or to\n * circumvent, violate, or enable the circumvention or violation of, any\n * terms of an Apple operating system software license agreement.\n *\n * Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this file.\n *\n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n *\n * @APPLE_OSREFERENCE_LICENSE_HEADER_END@\n */\n\n#ifndef __OS_TRACE_BASE_H__\n#define __OS_TRACE_BASE_H__\n\n#include <mach-o/loader.h>\n#include <stdarg.h>\n#include <stdbool.h>\n#include <stdint.h>\n#include <sys/time.h>\n#include <sys/types.h>\n#include <unistd.h>\n\n#include <os/availability.h>\n#include <os/base.h>\n#include <os/object.h>\n\n#define OS_LOG_FORMATLIKE(x, y)  __attribute__((format(os_log, x, y)))\n\n#if     (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_10_0) \\\n     || (defined(__WATCH_OS_VERSION_MIN_REQUIRED) &&  __WATCH_OS_VERSION_MIN_REQUIRED >= __WATCHOS_3_0) \\\n     || (defined(__TV_OS_VERSION_MIN_REQUIRED) && __TV_OS_VERSION_MIN_REQUIRED >= __TVOS_10_0) \\\n     || (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_12)\n#define OS_LOG_TARGET_HAS_10_12_FEATURES 1\n#else\n#define OS_LOG_TARGET_HAS_10_12_FEATURES 0\n#endif\n\n#ifndef OS_COUNT_ARGS\n#define OS_COUNT_ARGS(...) OS_COUNT_ARGS1(, ##__VA_ARGS__, _8, _7, _6, _5, _4, _3, _2, _1, _0)\n#define OS_COUNT_ARGS1(z, a, b, c, d, e, f, g, h, cnt, ...) cnt\n#endif\n\n#ifdef OS_LOG_FORMAT_WARNINGS\n#define OS_LOG_FORMAT_ERRORS _Pragma(\"clang diagnostic warning \\\"-Wformat\\\"\")\n#else\n#define OS_LOG_FORMAT_ERRORS _Pragma(\"clang diagnostic error \\\"-Wformat\\\"\")\n#endif\n\n#define OS_LOG_PRAGMA_PUSH \\\n        _Pragma(\"clang diagnostic push\") \\\n        _Pragma(\"clang diagnostic ignored \\\"-Wvla\\\"\") \\\n        OS_LOG_FORMAT_ERRORS\n\n#define OS_LOG_PRAGMA_POP  _Pragma(\"clang diagnostic pop\")\n\n#define OS_LOG_STRING(_ns, _var, _str) \\\n        _Static_assert(__builtin_constant_p(_str), \\\n                \"formatters/labels/descriptions must be a constant string\"); \\\n        __attribute__((section(\"__TEXT,__oslogstring,cstring_literals\"),internal_linkage)) \\\n        static const char _var[] __asm(OS_STRINGIFY(OS_CONCAT(LOS_##_ns, __COUNTER__))) = _str\n\n\n#define OS_LOG_REMOVE_PARENS(...) __VA_ARGS__\n\n#define OS_LOG_CALL_WITH_FORMAT(fun, fun_args, fmt, ...) __extension__({ \\\n        OS_LOG_PRAGMA_PUSH OS_LOG_STRING(LOG, _os_fmt_str, fmt); \\\n        uint8_t _os_fmt_buf[__builtin_os_log_format_buffer_size(fmt, ##__VA_ARGS__)]; \\\n        fun(OS_LOG_REMOVE_PARENS fun_args, _os_fmt_str, \\\n                (uint8_t *)__builtin_os_log_format(_os_fmt_buf, fmt, ##__VA_ARGS__), \\\n                (uint32_t)sizeof(_os_fmt_buf)) OS_LOG_PRAGMA_POP; \\\n})\n\n__BEGIN_DECLS\n\nextern struct mach_header __dso_handle;\n\n__END_DECLS\n\n#endif // !__OS_TRACE_BASE_H__\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/servers/netname.h",
    "content": "#ifndef\t_netname_user_\n#define\t_netname_user_\n\n/* Module netname */\n\n#include <string.h>\n#include <mach/ndr.h>\n#include <mach/boolean.h>\n#include <mach/kern_return.h>\n#include <mach/notify.h>\n#include <mach/mach_types.h>\n#include <mach/message.h>\n#include <mach/mig_errors.h>\n#include <mach/port.h>\n\t\n/* BEGIN VOUCHER CODE */\n\n#ifndef KERNEL\n#if defined(__has_include)\n#if __has_include(<mach/mig_voucher_support.h>)\n#ifndef USING_VOUCHERS\n#define USING_VOUCHERS\n#endif\n#ifndef __VOUCHER_FORWARD_TYPE_DECLS__\n#define __VOUCHER_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern boolean_t voucher_mach_msg_set(mach_msg_header_t *msg) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif // __VOUCHER_FORWARD_TYPE_DECLS__\n#endif // __has_include(<mach/mach_voucher_types.h>)\n#endif // __has_include\n#endif // !KERNEL\n\t\n/* END VOUCHER CODE */\n\n\t\n/* BEGIN MIG_STRNCPY_ZEROFILL CODE */\n\n#if defined(__has_include)\n#if __has_include(<mach/mig_strncpy_zerofill_support.h>)\n#ifndef USING_MIG_STRNCPY_ZEROFILL\n#define USING_MIG_STRNCPY_ZEROFILL\n#endif\n#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\textern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));\n#ifdef __cplusplus\n}\n#endif\n#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */\n#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */\n#endif /* __has_include */\n\t\n/* END MIG_STRNCPY_ZEROFILL CODE */\n\n\n#ifdef AUTOTEST\n#ifndef FUNCTION_PTR_T\n#define FUNCTION_PTR_T\ntypedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);\ntypedef struct {\n        char            *name;\n        function_ptr_t  function;\n} function_table_entry;\ntypedef function_table_entry   *function_table_t;\n#endif /* FUNCTION_PTR_T */\n#endif /* AUTOTEST */\n\n#ifndef\tnetname_MSG_COUNT\n#define\tnetname_MSG_COUNT\t4\n#endif\t/* netname_MSG_COUNT */\n\n#include <mach/std_types.h>\n#include <mach/mig.h>\n#include <servers/netname_defs.h>\n\n#ifdef __BeforeMigUserHeader\n__BeforeMigUserHeader\n#endif /* __BeforeMigUserHeader */\n\n#include <sys/cdefs.h>\n__BEGIN_DECLS\n\n\n/* Routine netname_check_in */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t netname_check_in\n(\n\tmach_port_t server_port,\n\tnetname_name_t port_name,\n\tmach_port_t signature,\n\tmach_port_t port_id\n);\n\n/* Routine netname_look_up */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t netname_look_up\n(\n\tmach_port_t server_port,\n\tnetname_name_t host_name,\n\tnetname_name_t port_name,\n\tmach_port_t *port_id\n);\n\n/* Routine netname_check_out */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t netname_check_out\n(\n\tmach_port_t server_port,\n\tnetname_name_t port_name,\n\tmach_port_t signature\n);\n\n/* Routine netname_version */\n#ifdef\tmig_external\nmig_external\n#else\nextern\n#endif\t/* mig_external */\nkern_return_t netname_version\n(\n\tmach_port_t server_port,\n\tnetname_name_t version\n);\n\n__END_DECLS\n\n/********************** Caution **************************/\n/* The following data types should be used to calculate  */\n/* maximum message sizes only. The actual message may be */\n/* smaller, and the position of the arguments within the */\n/* message layout may vary from what is presented here.  */\n/* For example, if any of the arguments are variable-    */\n/* sized, and less than the maximum is sent, the data    */\n/* will be packed tight in the actual message to reduce  */\n/* the presence of holes.                                */\n/********************** Caution **************************/\n\n/* typedefs for all requests */\n\n#ifndef __Request__netname_subsystem__defined\n#define __Request__netname_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t signature;\n\t\tmach_msg_port_descriptor_t port_id;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t port_nameOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t port_nameCnt;\n\t\tchar port_name[80];\n\t} __Request__netname_check_in_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t host_nameOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t host_nameCnt;\n\t\tchar host_name[80];\n\t\tmach_msg_type_number_t port_nameOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t port_nameCnt;\n\t\tchar port_name[80];\n\t} __Request__netname_look_up_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t signature;\n\t\t/* end of the kernel processed data */\n\t\tNDR_record_t NDR;\n\t\tmach_msg_type_number_t port_nameOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t port_nameCnt;\n\t\tchar port_name[80];\n\t} __Request__netname_check_out_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t} __Request__netname_version_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Request__netname_subsystem__defined */\n\n/* union of all requests */\n\n#ifndef __RequestUnion__netname_subsystem__defined\n#define __RequestUnion__netname_subsystem__defined\nunion __RequestUnion__netname_subsystem {\n\t__Request__netname_check_in_t Request_netname_check_in;\n\t__Request__netname_look_up_t Request_netname_look_up;\n\t__Request__netname_check_out_t Request_netname_check_out;\n\t__Request__netname_version_t Request_netname_version;\n};\n#endif /* !__RequestUnion__netname_subsystem__defined */\n/* typedefs for all replies */\n\n#ifndef __Reply__netname_subsystem__defined\n#define __Reply__netname_subsystem__defined\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__netname_check_in_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\t/* start of the kernel processed data */\n\t\tmach_msg_body_t msgh_body;\n\t\tmach_msg_port_descriptor_t port_id;\n\t\t/* end of the kernel processed data */\n\t} __Reply__netname_look_up_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t} __Reply__netname_check_out_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n\n#ifdef  __MigPackStructs\n#pragma pack(push, 4)\n#endif\n\ttypedef struct {\n\t\tmach_msg_header_t Head;\n\t\tNDR_record_t NDR;\n\t\tkern_return_t RetCode;\n\t\tmach_msg_type_number_t versionOffset; /* MiG doesn't use it */\n\t\tmach_msg_type_number_t versionCnt;\n\t\tchar version[80];\n\t} __Reply__netname_version_t __attribute__((unused));\n#ifdef  __MigPackStructs\n#pragma pack(pop)\n#endif\n#endif /* !__Reply__netname_subsystem__defined */\n\n/* union of all replies */\n\n#ifndef __ReplyUnion__netname_subsystem__defined\n#define __ReplyUnion__netname_subsystem__defined\nunion __ReplyUnion__netname_subsystem {\n\t__Reply__netname_check_in_t Reply_netname_check_in;\n\t__Reply__netname_look_up_t Reply_netname_look_up;\n\t__Reply__netname_check_out_t Reply_netname_check_out;\n\t__Reply__netname_version_t Reply_netname_version;\n};\n#endif /* !__RequestUnion__netname_subsystem__defined */\n\n#ifndef subsystem_to_name_map_netname\n#define subsystem_to_name_map_netname \\\n    { \"netname_check_in\", 1040 },\\\n    { \"netname_look_up\", 1041 },\\\n    { \"netname_check_out\", 1042 },\\\n    { \"netname_version\", 1043 }\n#endif\n\n#ifdef __AfterMigUserHeader\n__AfterMigUserHeader\n#endif /* __AfterMigUserHeader */\n\n#endif\t /* _netname_user_ */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_posix_availability.h",
    "content": "/* Copyright (c) 2010 Apple Inc. All rights reserved.\n * \n * @APPLE_OSREFERENCE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. The rights granted to you under the License\n * may not be used to create, or enable the creation or redistribution of,\n * unlawful or unlicensed copies of an Apple operating system, or to\n * circumvent, violate, or enable the circumvention or violation of, any\n * terms of an Apple operating system software license agreement.\n * \n * Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_OSREFERENCE_LICENSE_HEADER_END@\n */\n\n#ifndef _CDEFS_H_\n# error \"Never use <sys/_posix_availability.h> directly.  Use <sys/cdefs.h> instead.\"\n#endif\n\n#if !defined(_DARWIN_C_SOURCE) && defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 198808L\n#define ___POSIX_C_DEPRECATED_STARTING_198808L __deprecated\n#else\n#define ___POSIX_C_DEPRECATED_STARTING_198808L\n#endif\n\n#if !defined(_DARWIN_C_SOURCE) && defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199009L\n#define ___POSIX_C_DEPRECATED_STARTING_199009L __deprecated\n#else\n#define ___POSIX_C_DEPRECATED_STARTING_199009L\n#endif\n\n#if !defined(_DARWIN_C_SOURCE) && defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199209L\n#define ___POSIX_C_DEPRECATED_STARTING_199209L __deprecated\n#else\n#define ___POSIX_C_DEPRECATED_STARTING_199209L\n#endif\n\n#if !defined(_DARWIN_C_SOURCE) && defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L\n#define ___POSIX_C_DEPRECATED_STARTING_199309L __deprecated\n#else\n#define ___POSIX_C_DEPRECATED_STARTING_199309L\n#endif\n\n#if !defined(_DARWIN_C_SOURCE) && defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199506L\n#define ___POSIX_C_DEPRECATED_STARTING_199506L __deprecated\n#else\n#define ___POSIX_C_DEPRECATED_STARTING_199506L\n#endif\n\n#if !defined(_DARWIN_C_SOURCE) && defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L\n#define ___POSIX_C_DEPRECATED_STARTING_200112L __deprecated\n#else\n#define ___POSIX_C_DEPRECATED_STARTING_200112L\n#endif\n\n#if !defined(_DARWIN_C_SOURCE) && defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200809L\n#define ___POSIX_C_DEPRECATED_STARTING_200809L __deprecated\n#else\n#define ___POSIX_C_DEPRECATED_STARTING_200809L\n#endif\n\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/_symbol_aliasing.h",
    "content": "/* Copyright (c) 2010 Apple Inc. All rights reserved.\n * \n * @APPLE_OSREFERENCE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. The rights granted to you under the License\n * may not be used to create, or enable the creation or redistribution of,\n * unlawful or unlicensed copies of an Apple operating system, or to\n * circumvent, violate, or enable the circumvention or violation of, any\n * terms of an Apple operating system software license agreement.\n * \n * Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_OSREFERENCE_LICENSE_HEADER_END@\n */\n\n#ifndef _CDEFS_H_\n# error \"Never use <sys/_symbol_aliasing.h> directly.  Use <sys/cdefs.h> instead.\"\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20000\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_0(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20100\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_1(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 20200\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_2_2(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30000\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_0(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30100\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_1(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 30200\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_3_2(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40000\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_0(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40100\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_1(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40200\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_2(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 40300\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_4_3(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 50000\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_0(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 50100\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_5_1(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60000\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_0(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 60100\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_6_1(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 70000\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_0(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 70100\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_7_1(x)\n#endif\n\n#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 80000\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_8_0(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1000\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1010\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_1(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1020\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_2(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1030\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_3(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1040\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_4(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_5(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1060\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_6(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1070\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_7(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1080\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_8(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_9(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 10100\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_10(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 10110\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_11(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 10120\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_12(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 10130\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_13(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 10140\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_14(x)\n#endif\n\n#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 10150\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x) x\n#else\n#define __DARWIN_ALIAS_STARTING_MAC___MAC_10_15(x)\n#endif\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sysdir.h",
    "content": "/*\n * Copyright (c) 1999-2015 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#ifndef __SYSTEM_DIRECTORIES_H__\n#define __SYSTEM_DIRECTORIES_H__\n\n#include <os/base.h>\n#include <Availability.h>\n\n// Available OSX 10.12, iOS 10.0, WatchOS 3.0 and TVOS 10.0. Not all enum identifiers return a useful path on all platforms.\nOS_ENUM(sysdir_search_path_directory, unsigned int,\n    SYSDIR_DIRECTORY_APPLICATION            = 1,    // supported applications (Applications)\n    SYSDIR_DIRECTORY_DEMO_APPLICATION       = 2,    // unsupported applications, demonstration versions (Applications/Demos)\n    SYSDIR_DIRECTORY_DEVELOPER_APPLICATION  = 3,    // developer applications (Developer/Applications) Soft deprecated as of __MAC_10_5 - there is no one single Developer directory\n    SYSDIR_DIRECTORY_ADMIN_APPLICATION      = 4,    // system and network administration applications (Applications/Utilities)\n    SYSDIR_DIRECTORY_LIBRARY                = 5,    // various user-visible documentation, support, and configuration files, resources (Library)\n    SYSDIR_DIRECTORY_DEVELOPER              = 6,    // developer resources (Developer) Soft deprecated as of __MAC_10_5 - there is no one single Developer directory\n    SYSDIR_DIRECTORY_USER                   = 7,    // user home directories (Users)\n    SYSDIR_DIRECTORY_DOCUMENTATION          = 8,    // documentation (Library/Documentation)\n    SYSDIR_DIRECTORY_DOCUMENT               = 9,    // documents (Documents)\n    SYSDIR_DIRECTORY_CORESERVICE            = 10,   // location of core services (Library/CoreServices)\n    SYSDIR_DIRECTORY_AUTOSAVED_INFORMATION  = 11,   // location of user's directory for use with autosaving (Library/Autosave Information)\n    SYSDIR_DIRECTORY_DESKTOP                = 12,   // location of user's Desktop (Desktop)\n    SYSDIR_DIRECTORY_CACHES                 = 13,   // location of discardable cache files (Library/Caches)\n    SYSDIR_DIRECTORY_APPLICATION_SUPPORT    = 14,   // location of application support files (plug-ins, etc) (Library/Application Support)\n    SYSDIR_DIRECTORY_DOWNLOADS              = 15,   // location of user's Downloads directory (Downloads)\n    SYSDIR_DIRECTORY_INPUT_METHODS          = 16,   // input methods (Library/Input Methods)\n    SYSDIR_DIRECTORY_MOVIES                 = 17,   // location of user's Movies directory (Movies)\n    SYSDIR_DIRECTORY_MUSIC                  = 18,   // location of user's Music directory (Music)\n    SYSDIR_DIRECTORY_PICTURES               = 19,   // location of user's Pictures directory (Pictures)\n    SYSDIR_DIRECTORY_PRINTER_DESCRIPTION    = 20,   // location of system's PPDs directory (Library/Printers/PPDs)\n    SYSDIR_DIRECTORY_SHARED_PUBLIC          = 21,   // location of user's Public sharing directory (Public)\n    SYSDIR_DIRECTORY_PREFERENCE_PANES       = 22,   // location of the PreferencePanes directory for use with System Preferences (Library/PreferencePanes)\n    SYSDIR_DIRECTORY_ALL_APPLICATIONS       = 100,  // all directories where applications can occur (Applications, Applications/Utilities, Developer/Applications, ...)\n    SYSDIR_DIRECTORY_ALL_LIBRARIES          = 101,  // all directories where resources can occur (Library, Developer)\n);\n\n// Available OSX 10.12, iOS 10.0, WatchOS 3.0 and TVOS 10.0. Not all enum identifiers are useful on all platforms.\nOS_ENUM(sysdir_search_path_domain_mask, unsigned int,\n    SYSDIR_DOMAIN_MASK_USER                 = ( 1UL << 0 ), // user's home directory --- place to install user's personal items (~)\n    SYSDIR_DOMAIN_MASK_LOCAL                = ( 1UL << 1 ), // local to the current machine --- place to install items available to everyone on this machine\n    SYSDIR_DOMAIN_MASK_NETWORK              = ( 1UL << 2 ), // publically available location in the local area network --- place to install items available on the network (/Network)\n    SYSDIR_DOMAIN_MASK_SYSTEM               = ( 1UL << 3 ), // provided by Apple\n    SYSDIR_DOMAIN_MASK_ALL                  = 0x0ffff,      // all domains: all of the above and more, future items\n);\n\ntypedef unsigned int sysdir_search_path_enumeration_state;\n\n__BEGIN_DECLS\n\nextern sysdir_search_path_enumeration_state\nsysdir_start_search_path_enumeration(sysdir_search_path_directory_t dir, sysdir_search_path_domain_mask_t domainMask) __API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));\n\nextern sysdir_search_path_enumeration_state\nsysdir_get_next_search_path_enumeration(sysdir_search_path_enumeration_state state, char *path) __API_AVAILABLE(macosx(10.12), ios(10.0), watchos(3.0), tvos(10.0));\n\n__END_DECLS\n\n#endif /* defined(__SYSTEM_DIRECTORIES_H__) */\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Developer/SDKs/macosx.internal.sdk/SDKSettings.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>AlternateSDK</key>\n\t<string>macosx10.13</string>\n\t<key>CanonicalName</key>\n\t<string>macosx.internal</string>\n\t<key>CustomProperties</key>\n\t<dict>\n\t\t<key>KERNEL_EXTENSION_HEADER_SEARCH_PATHS</key>\n\t\t<string>$(KERNEL_FRAMEWORK)/PrivateHeaders $(KERNEL_FRAMEWORK_HEADERS)</string>\n\t</dict>\n\t<key>DefaultProperties</key>\n\t<dict>\n\t\t<key>MACOSX_DEPLOYMENT_TARGET</key>\n\t\t<string>10.13</string>\n\t\t<key>PLATFORM_NAME</key>\n\t\t<string>macosx</string>\n\t\t<key>DEFAULT_KEXT_INSTALL_PATH</key>\n\t\t<string>$(LIBRARY_KEXT_INSTALL_PATH)</string>\n\t</dict>\n\t<key>DisplayName</key>\n\t<string>macosx.internal</string>\n\t<key>MaximumDeploymentTarget</key>\n\t<string>10.13</string>\n\t<key>MinimalDisplayName</key>\n\t<string>macosx.internal</string>\n\t<key>MinimumSupportedToolsVersion</key>\n\t<string>3.2</string>\n\t<key>SupportedBuildToolComponents</key>\n\t<array>\n\t\t<string>com.apple.compilers.gcc.headers.4_2</string>\n\t</array>\n\t<key>Version</key>\n\t<string>macosx.internal</string>\n\t<key>isBaseSDK</key>\n\t<string>NO</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Entitlements.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<!-- Entitlements for Mac OS X (darling) -->\n\t<key>com.apple.application-identifier</key>\n\t<string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\n\t<key>AdditionalInfo</key>\n\t<dict>\n\t\t<key>BuildMachineOSBuild</key>\n\t\t<string>$(MAC_OS_X_PRODUCT_BUILD_VERSION)</string>\n\t\t<key>CFBundleSupportedPlatforms</key>\n\t\t<array>\n\t\t\t<string>MacOSX</string>\n\t\t</array>\n\t\t<key>DTCompiler</key>\n\t\t<string>$(GCC_VERSION)</string>\n\t\t<key>DTPlatformBuild</key>\n\t\t<string>$(PLATFORM_PRODUCT_BUILD_VERSION)</string>\n\t\t<key>DTPlatformVersion</key>\n\t\t<string>GM</string>\n\t\t<key>DTSDKBuild</key>\n\t\t<string>$(SDK_PRODUCT_BUILD_VERSION)</string>\n\t\t<key>DTSDKName</key>\n\t\t<string>$(SDK_NAME)</string>\n\t\t<key>DTXcode</key>\n\t\t<string>$(XCODE_VERSION_ACTUAL)</string>\n\t\t<key>DTXcodeBuild</key>\n\t\t<string>$(XCODE_PRODUCT_BUILD_VERSION)</string>\n\t</dict>\n\n\t<!-- OS Version that build this -->\n\t<key>BuildMachineOSBuild</key>\n\t<string>17E148</string>\n\n\t<!-- Development region -->\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>English</string>\n\n\t<!-- Bundle identifier -->\n\t<key>CFBundleIdentifier</key>\n\t<string>com.apple.platform.macosx</string>\n\n\t<!-- Platform name -->\n\t<key>CFBundleName</key>\n\t<string>Darling platform</string>\n\n\t<!-- Platform version (again) -->\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.1</string>\n\n\t<!-- Supported platforms (This is a platform) -->\n\t<key>CFBundleSupportedPlatforms</key>\n\t<array>\n\t\t<string>MacOSX</string>\n\t</array>\n\n\t<!-- Build -->\n\t<key>CFBundleVersion</key>\n\t<string>14009</string>\n\n\t<!-- Compiler that made this -->\n\t<key>DTCompiler</key>\n\t<string>com.apple.compilers.llvm.clang.1_0</string>\n\n\t<!-- Platform build -->\n\t<key>DTPlatformBuild</key>\n\t<string>9E499</string>\n\n\t<!-- Platform version -->\n\t<key>DTPlatformVersion</key>\n\t<string>GM</string>\n\n\t<!-- Build -->\n\t<key>DTSDKBuild</key>\n\t<string>17E158</string>\n\n\t<!-- Platform that built this -->\n\t<key>DTSDKName</key>\n\t<string>macosx10.13internal</string>\n\n\t<!-- Xcode version -->\n\t<key>DTXcode</key>\n\t<string>0930</string>\n\n\t<!-- Xcoe build -->\n\t<key>DTXcodeBuild</key>\n\t<string>9E499</string>\n\n\t<!-- Platform settings -->\n\t<key>DefaultDebuggerSettings</key>\n\t<dict>\n\t\t<key>RunInDebugger</key>\n\t\t<string>YES</string>\n\t</dict>\n\n\t<!-- Properties / Behavior -->\n\t<key>DefaultProperties</key>\n\t<dict>\n\t\t<key>DEFAULT_COMPILER</key>\n\t\t<string>com.apple.compilers.llvm.clang.1_0</string>\n\n\t\t<key>STRIP_PNG_TEXT</key>\n\t\t<string>NO</string>\n\n\t\t<key>DEPLOYMENT_TARGET_CLANG_ENV_NAME</key>\n\t\t<string>MACOSX_DEPLOYMENT_TARGET</string>\n\n\t\t<key>DEPLOYMENT_TARGET_SETTING_NAME</key>\n\t\t<string>MACOSX_DEPLOYMENT_TARGET</string>\n\n\t\t<key>COMPRESS_PNG_FILES</key>\n\t\t<string>NO</string>\n\n\t\t<key>EMBEDDED_PROFILE_NAME</key>\n\t\t<string>embedded.provisionprofile</string>\n\n\t\t<key>DEPLOYMENT_TARGET_CLANG_FLAG_NAME</key>\n\t\t<string>mmacosx-version-min</string>\n\n\t</dict>\n\n\t<!-- Platform description -->\n\t<key>Description</key>\n\t<string>Darling Platform</string>\n\n\t<!-- Platform Family identifier -->\n\t<key>FamilyIdentifier</key>\n\t<string>macosx</string>\n\n\t<!-- Platform family -->\n\t<key>FamilyName</key>\n\t<string>macOS</string>\n\n\t<!-- Platform Icon -->\n\t<key>Icon</key>\n\t<string>macOS.icns</string>\n\n\t<!-- Platform identifier -->\n\t<key>Identifier</key>\n\t<string>com.apple.platform.macosx</string>\n\n\t<!-- Minimum supported SDK version -->\n\t<key>MinimumSDKVersion</key>\n\t<string>10.11</string>\n\n\t<!-- Name -->\n\t<key>Name</key>\n\t<string>macosx</string>\n\n\t<!-- Type -->\n\t<key>Type</key>\n\t<string>Platform</string>\n\n\t<!-- Platform version -->\n\t<key>Version</key>\n\t<string>1.1</string>\n\n</dict>\n</plist>\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/ResourceRules.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>rules</key>\n\t<dict>\n\t\t<!-- Make this a blacklist -->\n\t\t<key>.*</key>\n\t\t<true/>\n\t\t<!-- ResourceRules.plist -->\n\t\t<key>ResourceRules.plist</key>\n\t\t<dict>\n\t\t\t<key>omit</key>\n\t\t\t<true/>\n\t\t\t<key>weight</key>\n\t\t\t<real>100</real>\n\t\t</dict>\n\t\t<!-- Info.plist -->\n\t\t<key>Info.plist</key>\n\t\t<dict>\n\t\t\t<key>omit</key>\n\t\t\t<true/>\n\t\t\t<key>weight</key>\n\t\t\t<real>10</real>\n\t\t</dict>\n\t</dict>\n</dict>\n</plist>\n"
  },
  {
    "path": "Developer/Platforms/MacOSX.platform/version.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<!-- Build alias -->\n\t<key>BuildAliasOf</key>\n\t<string>OSXPlatformSupport</string>\n\n\t<!-- Version -->\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.1</string>\n\n\t<!-- Build -->\n\t<key>BuildVersion</key>\n\t<string>8</string>\n\n\t<!-- Bundle version -->\n\t<key>CFBundleVersion</key>\n\t<string>14009</string>\n\n\t<!-- Project Name -->\n\t<key>ProjectName</key>\n\t<string>OSXPlatformSupport</string>\n\n\t<!-- Source version -->\n\t<key>SourceVersion</key>\n\t<string>14009000000000000</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "Developer/TODO.md",
    "content": "* Fix AE.framework (nested) headers not being found.\n* Same for CarbonCore.\n* Switch to TBDs.\n* Upgrade to newer ld when Apple releases sources.\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang",
    "content": "#!/bin/bash\n\nexport PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin\n\nSCRIPTDIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\n\nfoo=\"not\"\nextra=()\n\narray=( \"$@\" )\n\nfor i in \"${array[@]}\"\ndo\n    if [ \"$i\" = \"-x\" ] && [ \"$foo\" != \"found\" ]\n    then\n        foo=\"found\"\n\tcontinue\n    fi\n    if [ \"$i\" = \"c++\" ] || [ \"$i\" = \"objective-c++\" ]\n    then\n\t    if [ \"$foo\" == \"found\" ]\n\t    then\n\t    \textra+=( -I$SCRIPTDIR/../include/c++/v1 )\n\t\tfound=\"not\"\n\tfi\n    fi\n\ndone\n\nextra+=( -I$SCRIPTDIR/../include )\n\nclang -B $SCRIPTDIR -target x86_64-apple-darwin ${extra[@]} \"$@\"\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++",
    "content": "#!/bin/bash\n\nexport PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin\n\nclang++ -target darwin \"$@\"\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil",
    "content": "#!/bin/bash\n\nllvm-dsymutil-6.0 \"$@\"\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld",
    "content": "#!/bin/bash\nSCRIPTDIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\n\nLD=\"$SCRIPTDIR/../../../../../build/src/external/cctools-port/cctools/ld64/src/${APPLE_TARGET_TRIPLET_PRIMARY}-ld\"\n\n\"$LD\" \"$@\"\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/xcrun",
    "content": "#!/bin/bash\n\nif [ $1 == \"-find\" ]\nthen\n\techo `which $2`\nfi\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/FlexLexer.h",
    "content": "// -*-C++-*-\n// FlexLexer.h -- define interfaces for lexical analyzer classes generated\n// by flex\n\n// Copyright (c) 1993 The Regents of the University of California.\n// All rights reserved.\n//\n// This code is derived from software contributed to Berkeley by\n// Kent Williams and Tom Epperly.\n//\n//  Redistribution and use in source and binary forms, with or without\n//  modification, are permitted provided that the following conditions\n//  are met:\n\n//  1. Redistributions of source code must retain the above copyright\n//  notice, this list of conditions and the following disclaimer.\n//  2. Redistributions in binary form must reproduce the above copyright\n//  notice, this list of conditions and the following disclaimer in the\n//  documentation and/or other materials provided with the distribution.\n\n//  Neither the name of the University nor the names of its contributors\n//  may be used to endorse or promote products derived from this software\n//  without specific prior written permission.\n\n//  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR\n//  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED\n//  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n//  PURPOSE.\n\n// This file defines FlexLexer, an abstract class which specifies the\n// external interface provided to flex C++ lexer objects, and yyFlexLexer,\n// which defines a particular lexer class.\n//\n// If you want to create multiple lexer classes, you use the -P flag\n// to rename each yyFlexLexer to some other xxFlexLexer.  You then\n// include <FlexLexer.h> in your other sources once per lexer class:\n//\n//\t#undef yyFlexLexer\n//\t#define yyFlexLexer xxFlexLexer\n//\t#include <FlexLexer.h>\n//\n//\t#undef yyFlexLexer\n//\t#define yyFlexLexer zzFlexLexer\n//\t#include <FlexLexer.h>\n//\t...\n\n#ifndef __FLEX_LEXER_H\n// Never included before - need to define base class.\n#define __FLEX_LEXER_H\n\n#include <iostream>\n#  ifndef FLEX_STD\n#    define FLEX_STD std::\n#  endif\n\nextern \"C++\" {\n\nstruct yy_buffer_state;\ntypedef int yy_state_type;\n\nclass FlexLexer {\npublic:\n\tvirtual ~FlexLexer()\t{ }\n\n\tconst char* YYText() const\t{ return yytext; }\n\tsize_t YYLeng()\tconst\t{ return yyleng; }\n\n\tvirtual void\n\t\tyy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;\n\tvirtual struct yy_buffer_state*\n\t\tyy_create_buffer( FLEX_STD istream* s, int size ) = 0;\n\tvirtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;\n\tvirtual void yyrestart( FLEX_STD istream* s ) = 0;\n\n\tvirtual int yylex() = 0;\n\n\t// Call yylex with new input/output sources.\n\tint yylex( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 )\n\t\t{\n\t\tswitch_streams( new_in, new_out );\n\t\treturn yylex();\n\t\t}\n\n\t// Switch to new input/output streams.  A nil stream pointer\n\t// indicates \"keep the current one\".\n\tvirtual void switch_streams( FLEX_STD istream* new_in = 0,\n\t\t\t\t\tFLEX_STD ostream* new_out = 0 ) = 0;\n\n\tint lineno() const\t\t{ return yylineno; }\n\n\tint debug() const\t\t{ return yy_flex_debug; }\n\tvoid set_debug( int flag )\t{ yy_flex_debug = flag; }\n\nprotected:\n\tchar* yytext;\n\tsize_t yyleng;\n\tint yylineno;\t\t// only maintained if you use %option yylineno\n\tint yy_flex_debug;\t// only has effect with -d or \"%option debug\"\n};\n\n}\n#endif // FLEXLEXER_H\n\n#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)\n// Either this is the first time through (yyFlexLexerOnce not defined),\n// or this is a repeated include to define a different flavor of\n// yyFlexLexer, as discussed in the flex manual.\n#define yyFlexLexerOnce\n\nextern \"C++\" {\n\nclass yyFlexLexer : public FlexLexer {\npublic:\n\t// arg_yyin and arg_yyout default to the cin and cout, but we\n\t// only make that assignment when initializing in yylex().\n\tyyFlexLexer( FLEX_STD istream* arg_yyin = 0, FLEX_STD ostream* arg_yyout = 0 );\n\n\tvirtual ~yyFlexLexer();\n\n\tvoid yy_switch_to_buffer( struct yy_buffer_state* new_buffer );\n\tstruct yy_buffer_state* yy_create_buffer( FLEX_STD istream* s, int size );\n\tvoid yy_delete_buffer( struct yy_buffer_state* b );\n\tvoid yyrestart( FLEX_STD istream* s );\n\n\tvoid yypush_buffer_state( struct yy_buffer_state* new_buffer );\n\tvoid yypop_buffer_state();\n\n\tvirtual int yylex();\n\tvirtual void switch_streams( FLEX_STD istream* new_in, FLEX_STD ostream* new_out = 0 );\n\tvirtual int yywrap();\n\nprotected:\n\tvirtual size_t LexerInput( char* buf, size_t max_size );\n\tvirtual void LexerOutput( const char* buf, size_t size );\n\tvirtual void LexerError( const char* msg );\n\n\tvoid yyunput( int c, char* buf_ptr );\n\tint yyinput();\n\n\tvoid yy_load_buffer_state();\n\tvoid yy_init_buffer( struct yy_buffer_state* b, FLEX_STD istream* s );\n\tvoid yy_flush_buffer( struct yy_buffer_state* b );\n\n\tint yy_start_stack_ptr;\n\tint yy_start_stack_depth;\n\tint* yy_start_stack;\n\n\tvoid yy_push_state( int new_state );\n\tvoid yy_pop_state();\n\tint yy_top_state();\n\n\tyy_state_type yy_get_previous_state();\n\tyy_state_type yy_try_NUL_trans( yy_state_type current_state );\n\tint yy_get_next_buffer();\n\n\tFLEX_STD istream* yyin;\t// input source for default LexerInput\n\tFLEX_STD ostream* yyout;\t// output sink for default LexerOutput\n\n\t// yy_hold_char holds the character lost when yytext is formed.\n\tchar yy_hold_char;\n\n\t// Number of characters read into yy_ch_buf.\n\tsize_t yy_n_chars;\n\n\t// Points to current character in buffer.\n\tchar* yy_c_buf_p;\n\n\tint yy_init;\t\t// whether we need to initialize\n\tint yy_start;\t\t// start state number\n\n\t// Flag which is used to allow yywrap()'s to do buffer switches\n\t// instead of setting up a fresh yyin.  A bit of a hack ...\n\tint yy_did_buffer_switch_on_eof;\n\n\n\tsize_t yy_buffer_stack_top; /**< index of top of stack. */\n\tsize_t yy_buffer_stack_max; /**< capacity of stack. */\n\tstruct yy_buffer_state ** yy_buffer_stack; /**< Stack as an array. */\n\tvoid yyensure_buffer_stack(void);\n\n\t// The following are not always needed, but may be depending\n\t// on use of certain flex features (like REJECT or yymore()).\n\n\tyy_state_type yy_last_accepting_state;\n\tchar* yy_last_accepting_cpos;\n\n\tyy_state_type* yy_state_buf;\n\tyy_state_type* yy_state_ptr;\n\n\tchar* yy_full_match;\n\tint* yy_full_state;\n\tint yy_full_lp;\n\n\tint yy_lp;\n\tint yy_looking_for_trail_begin;\n\n\tint yy_more_flag;\n\tint yy_more_len;\n\tint yy_more_offset;\n\tint yy_prev_more_offset;\n};\n\n}\n\n#endif // yyFlexLexer || ! yyFlexLexerOnce\n\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__bit_reference",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP___BIT_REFERENCE\n#define _LIBCPP___BIT_REFERENCE\n\n#include <__config>\n#include <algorithm>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Cp, bool _IsConst, typename _Cp::__storage_type = 0> class __bit_iterator;\ntemplate <class _Cp> class __bit_const_reference;\n\ntemplate <class _Tp>\nstruct __has_storage_type\n{\n    static const bool value = false;\n};\n\ntemplate <class _Cp, bool = __has_storage_type<_Cp>::value>\nclass __bit_reference\n{\n    typedef typename _Cp::__storage_type    __storage_type;\n    typedef typename _Cp::__storage_pointer __storage_pointer;\n\n    __storage_pointer __seg_;\n    __storage_type    __mask_;\n\n    friend typename _Cp::__self;\n\n    friend class __bit_const_reference<_Cp>;\n    friend class __bit_iterator<_Cp, false>;\npublic:\n    _LIBCPP_INLINE_VISIBILITY operator bool() const _NOEXCEPT\n        {return static_cast<bool>(*__seg_ & __mask_);}\n    _LIBCPP_INLINE_VISIBILITY bool operator ~() const _NOEXCEPT\n        {return !static_cast<bool>(*this);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __bit_reference& operator=(bool __x) _NOEXCEPT\n    {\n        if (__x)\n            *__seg_ |= __mask_;\n        else\n            *__seg_ &= ~__mask_;\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __bit_reference& operator=(const __bit_reference& __x) _NOEXCEPT\n        {return operator=(static_cast<bool>(__x));}\n\n    _LIBCPP_INLINE_VISIBILITY void flip() _NOEXCEPT {*__seg_ ^= __mask_;}\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator<_Cp, false> operator&() const _NOEXCEPT\n        {return __bit_iterator<_Cp, false>(__seg_, static_cast<unsigned>(__ctz(__mask_)));}\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    __bit_reference(__storage_pointer __s, __storage_type __m) _NOEXCEPT\n        : __seg_(__s), __mask_(__m) {}\n};\n\ntemplate <class _Cp>\nclass __bit_reference<_Cp, false>\n{\n};\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__bit_reference<_Cp> __x, __bit_reference<_Cp> __y) _NOEXCEPT\n{\n    bool __t = __x;\n    __x = __y;\n    __y = __t;\n}\n\ntemplate <class _Cp, class _Dp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__bit_reference<_Cp> __x, __bit_reference<_Dp> __y) _NOEXCEPT\n{\n    bool __t = __x;\n    __x = __y;\n    __y = __t;\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__bit_reference<_Cp> __x, bool& __y) _NOEXCEPT\n{\n    bool __t = __x;\n    __x = __y;\n    __y = __t;\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(bool& __x, __bit_reference<_Cp> __y) _NOEXCEPT\n{\n    bool __t = __x;\n    __x = __y;\n    __y = __t;\n}\n\ntemplate <class _Cp>\nclass __bit_const_reference\n{\n    typedef typename _Cp::__storage_type          __storage_type;\n    typedef typename _Cp::__const_storage_pointer __storage_pointer;\n\n    __storage_pointer        __seg_;\n    __storage_type __mask_;\n\n    friend typename _Cp::__self;\n    friend class __bit_iterator<_Cp, true>;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __bit_const_reference(const __bit_reference<_Cp>& __x) _NOEXCEPT\n        : __seg_(__x.__seg_), __mask_(__x.__mask_) {}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR operator bool() const _NOEXCEPT\n        {return static_cast<bool>(*__seg_ & __mask_);}\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator<_Cp, true> operator&() const _NOEXCEPT\n        {return __bit_iterator<_Cp, true>(__seg_, static_cast<unsigned>(__ctz(__mask_)));}\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR\n    __bit_const_reference(__storage_pointer __s, __storage_type __m) _NOEXCEPT\n        : __seg_(__s), __mask_(__m) {}\n\n    __bit_const_reference& operator=(const __bit_const_reference& __x);\n};\n\n// find\n\ntemplate <class _Cp, bool _IsConst>\n__bit_iterator<_Cp, _IsConst>\n__find_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n)\n{\n    typedef __bit_iterator<_Cp, _IsConst> _It;\n    typedef typename _It::__storage_type __storage_type;\n    static const int __bits_per_word = _It::__bits_per_word;\n    // do first partial word\n    if (__first.__ctz_ != 0)\n    {\n        __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);\n        __storage_type __dn = _VSTD::min(__clz_f, __n);\n        __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n        __storage_type __b = *__first.__seg_ & __m;\n        if (__b)\n            return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));\n        if (__n == __dn)\n            return __first + __n;\n        __n -= __dn;\n        ++__first.__seg_;\n    }\n    // do middle whole words\n    for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word)\n        if (*__first.__seg_)\n            return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(*__first.__seg_)));\n    // do last partial word\n    if (__n > 0)\n    {\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        __storage_type __b = *__first.__seg_ & __m;\n        if (__b)\n            return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));\n    }\n    return _It(__first.__seg_, static_cast<unsigned>(__n));\n}\n\ntemplate <class _Cp, bool _IsConst>\n__bit_iterator<_Cp, _IsConst>\n__find_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n)\n{\n    typedef __bit_iterator<_Cp, _IsConst> _It;\n    typedef typename _It::__storage_type __storage_type;\n    const int __bits_per_word = _It::__bits_per_word;\n    // do first partial word\n    if (__first.__ctz_ != 0)\n    {\n        __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);\n        __storage_type __dn = _VSTD::min(__clz_f, __n);\n        __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n        __storage_type __b = ~*__first.__seg_ & __m;\n        if (__b)\n            return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));\n        if (__n == __dn)\n            return __first + __n;\n        __n -= __dn;\n        ++__first.__seg_;\n    }\n    // do middle whole words\n    for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word)\n    {\n        __storage_type __b = ~*__first.__seg_;\n        if (__b)\n            return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));\n    }\n    // do last partial word\n    if (__n > 0)\n    {\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        __storage_type __b = ~*__first.__seg_ & __m;\n        if (__b)\n            return _It(__first.__seg_, static_cast<unsigned>(_VSTD::__ctz(__b)));\n    }\n    return _It(__first.__seg_, static_cast<unsigned>(__n));\n}\n\ntemplate <class _Cp, bool _IsConst, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n__bit_iterator<_Cp, _IsConst>\nfind(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value_)\n{\n    if (static_cast<bool>(__value_))\n        return __find_bool_true(__first, static_cast<typename _Cp::size_type>(__last - __first));\n    return __find_bool_false(__first, static_cast<typename _Cp::size_type>(__last - __first));\n}\n\n// count\n\ntemplate <class _Cp, bool _IsConst>\ntypename __bit_iterator<_Cp, _IsConst>::difference_type\n__count_bool_true(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n)\n{\n    typedef __bit_iterator<_Cp, _IsConst> _It;\n    typedef typename _It::__storage_type __storage_type;\n    typedef typename _It::difference_type difference_type;\n    const int __bits_per_word = _It::__bits_per_word;\n    difference_type __r = 0;\n    // do first partial word\n    if (__first.__ctz_ != 0)\n    {\n        __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);\n        __storage_type __dn = _VSTD::min(__clz_f, __n);\n        __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n        __r = _VSTD::__pop_count(*__first.__seg_ & __m);\n        __n -= __dn;\n        ++__first.__seg_;\n    }\n    // do middle whole words\n    for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word)\n        __r += _VSTD::__pop_count(*__first.__seg_);\n    // do last partial word\n    if (__n > 0)\n    {\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        __r += _VSTD::__pop_count(*__first.__seg_ & __m);\n    }\n    return __r;\n}\n\ntemplate <class _Cp, bool _IsConst>\ntypename __bit_iterator<_Cp, _IsConst>::difference_type\n__count_bool_false(__bit_iterator<_Cp, _IsConst> __first, typename _Cp::size_type __n)\n{\n    typedef __bit_iterator<_Cp, _IsConst> _It;\n    typedef typename _It::__storage_type __storage_type;\n    typedef typename _It::difference_type difference_type;\n    const int __bits_per_word = _It::__bits_per_word;\n    difference_type __r = 0;\n    // do first partial word\n    if (__first.__ctz_ != 0)\n    {\n        __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);\n        __storage_type __dn = _VSTD::min(__clz_f, __n);\n        __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n        __r = _VSTD::__pop_count(~*__first.__seg_ & __m);\n        __n -= __dn;\n        ++__first.__seg_;\n    }\n    // do middle whole words\n    for (; __n >= __bits_per_word; ++__first.__seg_, __n -= __bits_per_word)\n        __r += _VSTD::__pop_count(~*__first.__seg_);\n    // do last partial word\n    if (__n > 0)\n    {\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        __r += _VSTD::__pop_count(~*__first.__seg_ & __m);\n    }\n    return __r;\n}\n\ntemplate <class _Cp, bool _IsConst, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __bit_iterator<_Cp, _IsConst>::difference_type\ncount(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, const _Tp& __value_)\n{\n    if (static_cast<bool>(__value_))\n        return __count_bool_true(__first, static_cast<typename _Cp::size_type>(__last - __first));\n    return __count_bool_false(__first, static_cast<typename _Cp::size_type>(__last - __first));\n}\n\n// fill_n\n\ntemplate <class _Cp>\nvoid\n__fill_n_false(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n)\n{\n    typedef __bit_iterator<_Cp, false> _It;\n    typedef typename _It::__storage_type __storage_type;\n    const int __bits_per_word = _It::__bits_per_word;\n    // do first partial word\n    if (__first.__ctz_ != 0)\n    {\n        __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);\n        __storage_type __dn = _VSTD::min(__clz_f, __n);\n        __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n        *__first.__seg_ &= ~__m;\n        __n -= __dn;\n        ++__first.__seg_;\n    }\n    // do middle whole words\n    __storage_type __nw = __n / __bits_per_word;\n    _VSTD::memset(_VSTD::__to_raw_pointer(__first.__seg_), 0, __nw * sizeof(__storage_type));\n    __n -= __nw * __bits_per_word;\n    // do last partial word\n    if (__n > 0)\n    {\n        __first.__seg_ += __nw;\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        *__first.__seg_ &= ~__m;\n    }\n}\n\ntemplate <class _Cp>\nvoid\n__fill_n_true(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n)\n{\n    typedef __bit_iterator<_Cp, false> _It;\n    typedef typename _It::__storage_type __storage_type;\n    const int __bits_per_word = _It::__bits_per_word;\n    // do first partial word\n    if (__first.__ctz_ != 0)\n    {\n        __storage_type __clz_f = static_cast<__storage_type>(__bits_per_word - __first.__ctz_);\n        __storage_type __dn = _VSTD::min(__clz_f, __n);\n        __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n        *__first.__seg_ |= __m;\n        __n -= __dn;\n        ++__first.__seg_;\n    }\n    // do middle whole words\n    __storage_type __nw = __n / __bits_per_word;\n    _VSTD::memset(_VSTD::__to_raw_pointer(__first.__seg_), -1, __nw * sizeof(__storage_type));\n    __n -= __nw * __bits_per_word;\n    // do last partial word\n    if (__n > 0)\n    {\n        __first.__seg_ += __nw;\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        *__first.__seg_ |= __m;\n    }\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nfill_n(__bit_iterator<_Cp, false> __first, typename _Cp::size_type __n, bool __value_)\n{\n    if (__n > 0)\n    {\n        if (__value_)\n            __fill_n_true(__first, __n);\n        else\n            __fill_n_false(__first, __n);\n    }\n}\n\n// fill\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nfill(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __last, bool __value_)\n{\n    _VSTD::fill_n(__first, static_cast<typename _Cp::size_type>(__last - __first), __value_);\n}\n\n// copy\n\ntemplate <class _Cp, bool _IsConst>\n__bit_iterator<_Cp, false>\n__copy_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last,\n                                                     __bit_iterator<_Cp, false> __result)\n{\n    typedef __bit_iterator<_Cp, _IsConst> _In;\n    typedef  typename _In::difference_type difference_type;\n    typedef typename _In::__storage_type __storage_type;\n    const int __bits_per_word = _In::__bits_per_word;\n    difference_type __n = __last - __first;\n    if (__n > 0)\n    {\n        // do first word\n        if (__first.__ctz_ != 0)\n        {\n            unsigned __clz = __bits_per_word - __first.__ctz_;\n            difference_type __dn = _VSTD::min(static_cast<difference_type>(__clz), __n);\n            __n -= __dn;\n            __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz - __dn));\n            __storage_type __b = *__first.__seg_ & __m;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b;\n            __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word;\n            __result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_)  % __bits_per_word);\n            ++__first.__seg_;\n            // __first.__ctz_ = 0;\n        }\n        // __first.__ctz_ == 0;\n        // do middle words\n        __storage_type __nw = __n / __bits_per_word;\n        _VSTD::memmove(_VSTD::__to_raw_pointer(__result.__seg_),\n                       _VSTD::__to_raw_pointer(__first.__seg_),\n                       __nw * sizeof(__storage_type));\n        __n -= __nw * __bits_per_word;\n        __result.__seg_ += __nw;\n        // do last word\n        if (__n > 0)\n        {\n            __first.__seg_ += __nw;\n            __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n            __storage_type __b = *__first.__seg_ & __m;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b;\n            __result.__ctz_ = static_cast<unsigned>(__n);\n        }\n    }\n    return __result;\n}\n\ntemplate <class _Cp, bool _IsConst>\n__bit_iterator<_Cp, false>\n__copy_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last,\n                                                       __bit_iterator<_Cp, false> __result)\n{\n    typedef __bit_iterator<_Cp, _IsConst> _In;\n    typedef  typename _In::difference_type difference_type;\n    typedef typename _In::__storage_type __storage_type;\n    static const int __bits_per_word = _In::__bits_per_word;\n    difference_type __n = __last - __first;\n    if (__n > 0)\n    {\n        // do first word\n        if (__first.__ctz_ != 0)\n        {\n            unsigned __clz_f = __bits_per_word - __first.__ctz_;\n            difference_type __dn = _VSTD::min(static_cast<difference_type>(__clz_f), __n);\n            __n -= __dn;\n            __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n            __storage_type __b = *__first.__seg_ & __m;\n            unsigned __clz_r = __bits_per_word - __result.__ctz_;\n            __storage_type __ddn = _VSTD::min<__storage_type>(__dn, __clz_r);\n            __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn));\n            *__result.__seg_ &= ~__m;\n            if (__result.__ctz_ > __first.__ctz_)\n                *__result.__seg_ |= __b << (__result.__ctz_ - __first.__ctz_);\n            else\n                *__result.__seg_ |= __b >> (__first.__ctz_ - __result.__ctz_);\n            __result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word;\n            __result.__ctz_ = static_cast<unsigned>((__ddn + __result.__ctz_)  % __bits_per_word);\n            __dn -= __ddn;\n            if (__dn > 0)\n            {\n                __m = ~__storage_type(0) >> (__bits_per_word - __dn);\n                *__result.__seg_ &= ~__m;\n                *__result.__seg_ |= __b >> (__first.__ctz_ + __ddn);\n                __result.__ctz_ = static_cast<unsigned>(__dn);\n            }\n            ++__first.__seg_;\n            // __first.__ctz_ = 0;\n        }\n        // __first.__ctz_ == 0;\n        // do middle words\n        unsigned __clz_r = __bits_per_word - __result.__ctz_;\n        __storage_type __m = ~__storage_type(0) << __result.__ctz_;\n        for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_)\n        {\n            __storage_type __b = *__first.__seg_;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b << __result.__ctz_;\n            ++__result.__seg_;\n            *__result.__seg_ &= __m;\n            *__result.__seg_ |= __b >> __clz_r;\n        }\n        // do last word\n        if (__n > 0)\n        {\n            __m = ~__storage_type(0) >> (__bits_per_word - __n);\n            __storage_type __b = *__first.__seg_ & __m;\n            __storage_type __dn = _VSTD::min(__n, static_cast<difference_type>(__clz_r));\n            __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn));\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b << __result.__ctz_;\n            __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word;\n            __result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_)  % __bits_per_word);\n            __n -= __dn;\n            if (__n > 0)\n            {\n                __m = ~__storage_type(0) >> (__bits_per_word - __n);\n                *__result.__seg_ &= ~__m;\n                *__result.__seg_ |= __b >> __dn;\n                __result.__ctz_ = static_cast<unsigned>(__n);\n            }\n        }\n    }\n    return __result;\n}\n\ntemplate <class _Cp, bool _IsConst>\ninline _LIBCPP_INLINE_VISIBILITY\n__bit_iterator<_Cp, false>\ncopy(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result)\n{\n    if (__first.__ctz_ == __result.__ctz_)\n        return __copy_aligned(__first, __last, __result);\n    return __copy_unaligned(__first, __last, __result);\n}\n\n// copy_backward\n\ntemplate <class _Cp, bool _IsConst>\n__bit_iterator<_Cp, false>\n__copy_backward_aligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last,\n                                                     __bit_iterator<_Cp, false> __result)\n{\n    typedef __bit_iterator<_Cp, _IsConst> _In;\n    typedef  typename _In::difference_type difference_type;\n    typedef typename _In::__storage_type __storage_type;\n    const int __bits_per_word = _In::__bits_per_word;\n    difference_type __n = __last - __first;\n    if (__n > 0)\n    {\n        // do first word\n        if (__last.__ctz_ != 0)\n        {\n            difference_type __dn = _VSTD::min(static_cast<difference_type>(__last.__ctz_), __n);\n            __n -= __dn;\n            unsigned __clz = __bits_per_word - __last.__ctz_;\n            __storage_type __m = (~__storage_type(0) << (__last.__ctz_ - __dn)) & (~__storage_type(0) >> __clz);\n            __storage_type __b = *__last.__seg_ & __m;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b;\n            __result.__ctz_ = static_cast<unsigned>(((-__dn & (__bits_per_word - 1)) +\n                                                       __result.__ctz_)  % __bits_per_word);\n            // __last.__ctz_ = 0\n         }\n        // __last.__ctz_ == 0 || __n == 0\n        // __result.__ctz_ == 0 || __n == 0\n        // do middle words\n        __storage_type __nw = __n / __bits_per_word;\n        __result.__seg_ -= __nw;\n        __last.__seg_ -= __nw;\n        _VSTD::memmove(_VSTD::__to_raw_pointer(__result.__seg_),\n                       _VSTD::__to_raw_pointer(__last.__seg_),\n                       __nw * sizeof(__storage_type));\n        __n -= __nw * __bits_per_word;\n        // do last word\n        if (__n > 0)\n        {\n            __storage_type __m = ~__storage_type(0) << (__bits_per_word - __n);\n            __storage_type __b = *--__last.__seg_ & __m;\n            *--__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b;\n            __result.__ctz_ = static_cast<unsigned>(-__n & (__bits_per_word - 1));\n        }\n    }\n    return __result;\n}\n\ntemplate <class _Cp, bool _IsConst>\n__bit_iterator<_Cp, false>\n__copy_backward_unaligned(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last,\n                                                       __bit_iterator<_Cp, false> __result)\n{\n    typedef __bit_iterator<_Cp, _IsConst> _In;\n    typedef  typename _In::difference_type difference_type;\n    typedef typename _In::__storage_type __storage_type;\n    const int __bits_per_word = _In::__bits_per_word;\n    difference_type __n = __last - __first;\n    if (__n > 0)\n    {\n        // do first word\n        if (__last.__ctz_ != 0)\n        {\n            difference_type __dn = _VSTD::min(static_cast<difference_type>(__last.__ctz_), __n);\n            __n -= __dn;\n            unsigned __clz_l = __bits_per_word - __last.__ctz_;\n            __storage_type __m = (~__storage_type(0) << (__last.__ctz_ - __dn)) & (~__storage_type(0) >> __clz_l);\n            __storage_type __b = *__last.__seg_ & __m;\n            unsigned __clz_r = __bits_per_word - __result.__ctz_;\n            __storage_type __ddn = _VSTD::min(__dn, static_cast<difference_type>(__result.__ctz_));\n            if (__ddn > 0)\n            {\n                __m = (~__storage_type(0) << (__result.__ctz_ - __ddn)) & (~__storage_type(0) >> __clz_r);\n                *__result.__seg_ &= ~__m;\n                if (__result.__ctz_ > __last.__ctz_)\n                    *__result.__seg_ |= __b << (__result.__ctz_ - __last.__ctz_);\n                else\n                    *__result.__seg_ |= __b >> (__last.__ctz_ - __result.__ctz_);\n                __result.__ctz_ = static_cast<unsigned>(((-__ddn & (__bits_per_word - 1)) +\n                                                         __result.__ctz_)  % __bits_per_word);\n                __dn -= __ddn;\n            }\n            if (__dn > 0)\n            {\n                // __result.__ctz_ == 0\n                --__result.__seg_;\n                __result.__ctz_ = static_cast<unsigned>(-__dn & (__bits_per_word - 1));\n                __m = ~__storage_type(0) << __result.__ctz_;\n                *__result.__seg_ &= ~__m;\n                __last.__ctz_ -= __dn + __ddn;\n                *__result.__seg_ |= __b << (__result.__ctz_ - __last.__ctz_);\n            }\n            // __last.__ctz_ = 0\n         }\n        // __last.__ctz_ == 0 || __n == 0\n        // __result.__ctz_ != 0 || __n == 0\n        // do middle words\n        unsigned __clz_r = __bits_per_word - __result.__ctz_;\n        __storage_type __m = ~__storage_type(0) >> __clz_r;\n        for (; __n >= __bits_per_word; __n -= __bits_per_word)\n        {\n            __storage_type __b = *--__last.__seg_;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b >> __clz_r;\n            *--__result.__seg_ &= __m;\n            *__result.__seg_ |= __b << __result.__ctz_;\n        }\n        // do last word\n        if (__n > 0)\n        {\n            __m = ~__storage_type(0) << (__bits_per_word - __n);\n            __storage_type __b = *--__last.__seg_ & __m;\n            __clz_r = __bits_per_word - __result.__ctz_;\n            __storage_type __dn = _VSTD::min(__n, static_cast<difference_type>(__result.__ctz_));\n            __m = (~__storage_type(0) << (__result.__ctz_ - __dn)) & (~__storage_type(0) >> __clz_r);\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b >> (__bits_per_word - __result.__ctz_);\n            __result.__ctz_ = static_cast<unsigned>(((-__dn & (__bits_per_word - 1)) +\n                                                     __result.__ctz_)  % __bits_per_word);\n            __n -= __dn;\n            if (__n > 0)\n            {\n                // __result.__ctz_ == 0\n                --__result.__seg_;\n                __result.__ctz_ = static_cast<unsigned>(-__n & (__bits_per_word - 1));\n                __m = ~__storage_type(0) << __result.__ctz_;\n                *__result.__seg_ &= ~__m;\n                *__result.__seg_ |= __b << (__result.__ctz_ - (__bits_per_word - __n - __dn));\n            }\n        }\n    }\n    return __result;\n}\n\ntemplate <class _Cp, bool _IsConst>\ninline _LIBCPP_INLINE_VISIBILITY\n__bit_iterator<_Cp, false>\ncopy_backward(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result)\n{\n    if (__last.__ctz_ == __result.__ctz_)\n        return __copy_backward_aligned(__first, __last, __result);\n    return __copy_backward_unaligned(__first, __last, __result);\n}\n\n// move\n\ntemplate <class _Cp, bool _IsConst>\ninline _LIBCPP_INLINE_VISIBILITY\n__bit_iterator<_Cp, false>\nmove(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result)\n{\n    return _VSTD::copy(__first, __last, __result);\n}\n\n// move_backward\n\ntemplate <class _Cp, bool _IsConst>\ninline _LIBCPP_INLINE_VISIBILITY\n__bit_iterator<_Cp, false>\nmove_backward(__bit_iterator<_Cp, _IsConst> __first, __bit_iterator<_Cp, _IsConst> __last, __bit_iterator<_Cp, false> __result)\n{\n    return _VSTD::copy_backward(__first, __last, __result);\n}\n\n// swap_ranges\n\ntemplate <class __C1, class __C2>\n__bit_iterator<__C2, false>\n__swap_ranges_aligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1, false> __last,\n                      __bit_iterator<__C2, false> __result)\n{\n    typedef __bit_iterator<__C1, false> _I1;\n    typedef  typename _I1::difference_type difference_type;\n    typedef typename _I1::__storage_type __storage_type;\n    const int __bits_per_word = _I1::__bits_per_word;\n    difference_type __n = __last - __first;\n    if (__n > 0)\n    {\n        // do first word\n        if (__first.__ctz_ != 0)\n        {\n            unsigned __clz = __bits_per_word - __first.__ctz_;\n            difference_type __dn = _VSTD::min(static_cast<difference_type>(__clz), __n);\n            __n -= __dn;\n            __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz - __dn));\n            __storage_type __b1 = *__first.__seg_ & __m;\n            *__first.__seg_ &= ~__m;\n            __storage_type __b2 = *__result.__seg_ & __m;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b1;\n            *__first.__seg_  |= __b2;\n            __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word;\n            __result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_)  % __bits_per_word);\n            ++__first.__seg_;\n            // __first.__ctz_ = 0;\n        }\n        // __first.__ctz_ == 0;\n        // do middle words\n        for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_, ++__result.__seg_)\n            swap(*__first.__seg_, *__result.__seg_);\n        // do last word\n        if (__n > 0)\n        {\n            __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n            __storage_type __b1 = *__first.__seg_ & __m;\n            *__first.__seg_ &= ~__m;\n            __storage_type __b2 = *__result.__seg_ & __m;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b1;\n            *__first.__seg_  |= __b2;\n            __result.__ctz_ = static_cast<unsigned>(__n);\n        }\n    }\n    return __result;\n}\n\ntemplate <class __C1, class __C2>\n__bit_iterator<__C2, false>\n__swap_ranges_unaligned(__bit_iterator<__C1, false> __first, __bit_iterator<__C1, false> __last,\n                        __bit_iterator<__C2, false> __result)\n{\n    typedef __bit_iterator<__C1, false> _I1;\n    typedef  typename _I1::difference_type difference_type;\n    typedef typename _I1::__storage_type __storage_type;\n    const int __bits_per_word = _I1::__bits_per_word;\n    difference_type __n = __last - __first;\n    if (__n > 0)\n    {\n        // do first word\n        if (__first.__ctz_ != 0)\n        {\n            unsigned __clz_f = __bits_per_word - __first.__ctz_;\n            difference_type __dn = _VSTD::min(static_cast<difference_type>(__clz_f), __n);\n            __n -= __dn;\n            __storage_type __m = (~__storage_type(0) << __first.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n            __storage_type __b1 = *__first.__seg_ & __m;\n            *__first.__seg_ &= ~__m;\n            unsigned __clz_r = __bits_per_word - __result.__ctz_;\n            __storage_type __ddn = _VSTD::min<__storage_type>(__dn, __clz_r);\n            __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn));\n            __storage_type __b2 = *__result.__seg_ & __m;\n            *__result.__seg_ &= ~__m;\n            if (__result.__ctz_ > __first.__ctz_)\n            {\n                unsigned __s = __result.__ctz_ - __first.__ctz_;\n                *__result.__seg_ |= __b1 << __s;\n                *__first.__seg_  |= __b2 >> __s;\n            }\n            else\n            {\n                unsigned __s = __first.__ctz_ - __result.__ctz_;\n                *__result.__seg_ |= __b1 >> __s;\n                *__first.__seg_  |= __b2 << __s;\n            }\n            __result.__seg_ += (__ddn + __result.__ctz_) / __bits_per_word;\n            __result.__ctz_ = static_cast<unsigned>((__ddn + __result.__ctz_)  % __bits_per_word);\n            __dn -= __ddn;\n            if (__dn > 0)\n            {\n                __m = ~__storage_type(0) >> (__bits_per_word - __dn);\n                __b2 = *__result.__seg_ & __m;\n                *__result.__seg_ &= ~__m;\n                unsigned __s = __first.__ctz_ + __ddn;\n                *__result.__seg_ |= __b1 >> __s;\n                *__first.__seg_  |= __b2 << __s;\n                __result.__ctz_ = static_cast<unsigned>(__dn);\n            }\n            ++__first.__seg_;\n            // __first.__ctz_ = 0;\n        }\n        // __first.__ctz_ == 0;\n        // do middle words\n        __storage_type __m = ~__storage_type(0) << __result.__ctz_;\n        unsigned __clz_r = __bits_per_word - __result.__ctz_;\n        for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first.__seg_)\n        {\n            __storage_type __b1 = *__first.__seg_;\n            __storage_type __b2 = *__result.__seg_ & __m;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b1 << __result.__ctz_;\n            *__first.__seg_  = __b2 >> __result.__ctz_;\n            ++__result.__seg_;\n            __b2 = *__result.__seg_ & ~__m;\n            *__result.__seg_ &= __m;\n            *__result.__seg_ |= __b1 >> __clz_r;\n            *__first.__seg_  |= __b2 << __clz_r;\n        }\n        // do last word\n        if (__n > 0)\n        {\n            __m = ~__storage_type(0) >> (__bits_per_word - __n);\n            __storage_type __b1 = *__first.__seg_ & __m;\n            *__first.__seg_ &= ~__m;\n            __storage_type __dn = _VSTD::min<__storage_type>(__n, __clz_r);\n            __m = (~__storage_type(0) << __result.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn));\n            __storage_type __b2 = *__result.__seg_ & __m;\n            *__result.__seg_ &= ~__m;\n            *__result.__seg_ |= __b1 << __result.__ctz_;\n            *__first.__seg_  |= __b2 >> __result.__ctz_;\n            __result.__seg_ += (__dn + __result.__ctz_) / __bits_per_word;\n            __result.__ctz_ = static_cast<unsigned>((__dn + __result.__ctz_)  % __bits_per_word);\n            __n -= __dn;\n            if (__n > 0)\n            {\n                __m = ~__storage_type(0) >> (__bits_per_word - __n);\n                __b2 = *__result.__seg_ & __m;\n                *__result.__seg_ &= ~__m;\n                *__result.__seg_ |= __b1 >> __dn;\n                *__first.__seg_  |= __b2 << __dn;\n                __result.__ctz_ = static_cast<unsigned>(__n);\n            }\n        }\n    }\n    return __result;\n}\n\ntemplate <class __C1, class __C2>\ninline _LIBCPP_INLINE_VISIBILITY\n__bit_iterator<__C2, false>\nswap_ranges(__bit_iterator<__C1, false> __first1, __bit_iterator<__C1, false> __last1,\n            __bit_iterator<__C2, false> __first2)\n{\n    if (__first1.__ctz_ == __first2.__ctz_)\n        return __swap_ranges_aligned(__first1, __last1, __first2);\n    return __swap_ranges_unaligned(__first1, __last1, __first2);\n}\n\n// rotate\n\ntemplate <class _Cp>\nstruct __bit_array\n{\n    typedef typename _Cp::difference_type difference_type;\n    typedef typename _Cp::__storage_type  __storage_type;\n    typedef typename _Cp::__storage_pointer __storage_pointer;\n    typedef typename _Cp::iterator        iterator;\n    static const unsigned __bits_per_word = _Cp::__bits_per_word;\n    static const unsigned _Np = 4;\n\n    difference_type __size_;\n    __storage_type __word_[_Np];\n\n    _LIBCPP_INLINE_VISIBILITY static difference_type capacity()\n        {return static_cast<difference_type>(_Np * __bits_per_word);}\n    _LIBCPP_INLINE_VISIBILITY explicit __bit_array(difference_type __s) : __size_(__s) {}\n    _LIBCPP_INLINE_VISIBILITY iterator begin()\n    {\n        return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]), 0);\n    }\n    _LIBCPP_INLINE_VISIBILITY iterator end()\n    {\n        return iterator(pointer_traits<__storage_pointer>::pointer_to(__word_[0]) + __size_ / __bits_per_word,\n                                                  static_cast<unsigned>(__size_ % __bits_per_word));\n    }\n};\n\ntemplate <class _Cp>\n__bit_iterator<_Cp, false>\nrotate(__bit_iterator<_Cp, false> __first, __bit_iterator<_Cp, false> __middle, __bit_iterator<_Cp, false> __last)\n{\n    typedef __bit_iterator<_Cp, false> _I1;\n    typedef  typename _I1::difference_type difference_type;\n    difference_type __d1 = __middle - __first;\n    difference_type __d2 = __last - __middle;\n    _I1 __r = __first + __d2;\n    while (__d1 != 0 && __d2 != 0)\n    {\n        if (__d1 <= __d2)\n        {\n            if (__d1 <= __bit_array<_Cp>::capacity())\n            {\n                __bit_array<_Cp> __b(__d1);\n                _VSTD::copy(__first, __middle, __b.begin());\n                _VSTD::copy(__b.begin(), __b.end(), _VSTD::copy(__middle, __last, __first));\n                break;\n            }\n            else\n            {\n                __bit_iterator<_Cp, false> __mp = _VSTD::swap_ranges(__first, __middle, __middle);\n                __first = __middle;\n                __middle = __mp;\n                __d2 -= __d1;\n            }\n        }\n        else\n        {\n            if (__d2 <= __bit_array<_Cp>::capacity())\n            {\n                __bit_array<_Cp> __b(__d2);\n                _VSTD::copy(__middle, __last, __b.begin());\n                _VSTD::copy_backward(__b.begin(), __b.end(), _VSTD::copy_backward(__first, __middle, __last));\n                break;\n            }\n            else\n            {\n                __bit_iterator<_Cp, false> __mp = __first + __d2;\n                _VSTD::swap_ranges(__first, __mp, __middle);\n                __first = __mp;\n                __d1 -= __d2;\n            }\n        }\n    }\n    return __r;\n}\n\n// equal\n\ntemplate <class _Cp, bool _IC1, bool _IC2>\nbool\n__equal_unaligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1,\n                  __bit_iterator<_Cp, _IC2> __first2)\n{\n    typedef __bit_iterator<_Cp, _IC1> _It;\n    typedef  typename _It::difference_type difference_type;\n    typedef typename _It::__storage_type __storage_type;\n    static const int __bits_per_word = _It::__bits_per_word;\n    difference_type __n = __last1 - __first1;\n    if (__n > 0)\n    {\n        // do first word\n        if (__first1.__ctz_ != 0)\n        {\n            unsigned __clz_f = __bits_per_word - __first1.__ctz_;\n            difference_type __dn = _VSTD::min(static_cast<difference_type>(__clz_f), __n);\n            __n -= __dn;\n            __storage_type __m = (~__storage_type(0) << __first1.__ctz_) & (~__storage_type(0) >> (__clz_f - __dn));\n            __storage_type __b = *__first1.__seg_ & __m;\n            unsigned __clz_r = __bits_per_word - __first2.__ctz_;\n            __storage_type __ddn = _VSTD::min<__storage_type>(__dn, __clz_r);\n            __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __ddn));\n            if (__first2.__ctz_ > __first1.__ctz_)\n            {\n                if ((*__first2.__seg_ & __m) != (__b << (__first2.__ctz_ - __first1.__ctz_)))\n                    return false;\n            }\n            else\n            {\n                if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ - __first2.__ctz_)))\n                    return false;\n            }\n            __first2.__seg_ += (__ddn + __first2.__ctz_) / __bits_per_word;\n            __first2.__ctz_ = static_cast<unsigned>((__ddn + __first2.__ctz_)  % __bits_per_word);\n            __dn -= __ddn;\n            if (__dn > 0)\n            {\n                __m = ~__storage_type(0) >> (__bits_per_word - __dn);\n                if ((*__first2.__seg_ & __m) != (__b >> (__first1.__ctz_ + __ddn)))\n                    return false;\n                __first2.__ctz_ = static_cast<unsigned>(__dn);\n            }\n            ++__first1.__seg_;\n            // __first1.__ctz_ = 0;\n        }\n        // __first1.__ctz_ == 0;\n        // do middle words\n        unsigned __clz_r = __bits_per_word - __first2.__ctz_;\n        __storage_type __m = ~__storage_type(0) << __first2.__ctz_;\n        for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first1.__seg_)\n        {\n            __storage_type __b = *__first1.__seg_;\n            if ((*__first2.__seg_ & __m) != (__b << __first2.__ctz_))\n                return false;\n            ++__first2.__seg_;\n            if ((*__first2.__seg_ & ~__m) != (__b >> __clz_r))\n                return false;\n        }\n        // do last word\n        if (__n > 0)\n        {\n            __m = ~__storage_type(0) >> (__bits_per_word - __n);\n            __storage_type __b = *__first1.__seg_ & __m;\n            __storage_type __dn = _VSTD::min(__n, static_cast<difference_type>(__clz_r));\n            __m = (~__storage_type(0) << __first2.__ctz_) & (~__storage_type(0) >> (__clz_r - __dn));\n            if ((*__first2.__seg_ & __m) != (__b << __first2.__ctz_))\n                return false;\n            __first2.__seg_ += (__dn + __first2.__ctz_) / __bits_per_word;\n            __first2.__ctz_ = static_cast<unsigned>((__dn + __first2.__ctz_)  % __bits_per_word);\n            __n -= __dn;\n            if (__n > 0)\n            {\n                __m = ~__storage_type(0) >> (__bits_per_word - __n);\n                if ((*__first2.__seg_ & __m) != (__b >> __dn))\n                    return false;\n            }\n        }\n    }\n    return true;\n}\n\ntemplate <class _Cp, bool _IC1, bool _IC2>\nbool\n__equal_aligned(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1,\n                __bit_iterator<_Cp, _IC2> __first2)\n{\n    typedef __bit_iterator<_Cp, _IC1> _It;\n    typedef  typename _It::difference_type difference_type;\n    typedef typename _It::__storage_type __storage_type;\n    static const int __bits_per_word = _It::__bits_per_word;\n    difference_type __n = __last1 - __first1;\n    if (__n > 0)\n    {\n        // do first word\n        if (__first1.__ctz_ != 0)\n        {\n            unsigned __clz = __bits_per_word - __first1.__ctz_;\n            difference_type __dn = _VSTD::min(static_cast<difference_type>(__clz), __n);\n            __n -= __dn;\n            __storage_type __m = (~__storage_type(0) << __first1.__ctz_) & (~__storage_type(0) >> (__clz - __dn));\n            if ((*__first2.__seg_ & __m) != (*__first1.__seg_ & __m))\n                return false;\n            ++__first2.__seg_;\n            ++__first1.__seg_;\n            // __first1.__ctz_ = 0;\n            // __first2.__ctz_ = 0;\n        }\n        // __first1.__ctz_ == 0;\n        // __first2.__ctz_ == 0;\n        // do middle words\n        for (; __n >= __bits_per_word; __n -= __bits_per_word, ++__first1.__seg_, ++__first2.__seg_)\n            if (*__first2.__seg_ != *__first1.__seg_)\n                return false;\n        // do last word\n        if (__n > 0)\n        {\n            __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n            if ((*__first2.__seg_ & __m) != (*__first1.__seg_ & __m))\n                return false;\n        }\n    }\n    return true;\n}\n\ntemplate <class _Cp, bool _IC1, bool _IC2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nequal(__bit_iterator<_Cp, _IC1> __first1, __bit_iterator<_Cp, _IC1> __last1, __bit_iterator<_Cp, _IC2> __first2)\n{\n    if (__first1.__ctz_ == __first2.__ctz_)\n        return __equal_aligned(__first1, __last1, __first2);\n    return __equal_unaligned(__first1, __last1, __first2);\n}\n\ntemplate <class _Cp, bool _IsConst,\n          typename _Cp::__storage_type>\nclass __bit_iterator\n{\npublic:\n    typedef typename _Cp::difference_type                                                          difference_type;\n    typedef bool                                                                                  value_type;\n    typedef __bit_iterator                                                                        pointer;\n    typedef typename conditional<_IsConst, __bit_const_reference<_Cp>, __bit_reference<_Cp> >::type reference;\n    typedef random_access_iterator_tag                                                            iterator_category;\n\nprivate:\n    typedef typename _Cp::__storage_type                                           __storage_type;\n    typedef typename conditional<_IsConst, typename _Cp::__const_storage_pointer,\n                                           typename _Cp::__storage_pointer>::type  __storage_pointer;\n    static const unsigned __bits_per_word = _Cp::__bits_per_word;\n\n    __storage_pointer __seg_;\n    unsigned          __ctz_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator() _NOEXCEPT\n#if _LIBCPP_STD_VER > 11\n    : __seg_(nullptr), __ctz_(0)\n#endif\n    {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __bit_iterator(const __bit_iterator<_Cp, false>& __it) _NOEXCEPT\n        : __seg_(__it.__seg_), __ctz_(__it.__ctz_) {}\n\n    _LIBCPP_INLINE_VISIBILITY reference operator*() const _NOEXCEPT\n        {return reference(__seg_, __storage_type(1) << __ctz_);}\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator& operator++()\n    {\n        if (__ctz_ != __bits_per_word-1)\n            ++__ctz_;\n        else\n        {\n            __ctz_ = 0;\n            ++__seg_;\n        }\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator operator++(int)\n    {\n        __bit_iterator __tmp = *this;\n        ++(*this);\n        return __tmp;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator& operator--()\n    {\n        if (__ctz_ != 0)\n            --__ctz_;\n        else\n        {\n            __ctz_ = __bits_per_word - 1;\n            --__seg_;\n        }\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator operator--(int)\n    {\n        __bit_iterator __tmp = *this;\n        --(*this);\n        return __tmp;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator& operator+=(difference_type __n)\n    {\n        if (__n >= 0)\n            __seg_ += (__n + __ctz_) / __bits_per_word;\n        else\n            __seg_ += static_cast<difference_type>(__n - __bits_per_word + __ctz_ + 1)\n                    / static_cast<difference_type>(__bits_per_word);\n        __n &= (__bits_per_word - 1);\n        __ctz_ = static_cast<unsigned>((__n + __ctz_)  % __bits_per_word);\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator& operator-=(difference_type __n)\n    {\n        return *this += -__n;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator operator+(difference_type __n) const\n    {\n        __bit_iterator __t(*this);\n        __t += __n;\n        return __t;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __bit_iterator operator-(difference_type __n) const\n    {\n        __bit_iterator __t(*this);\n        __t -= __n;\n        return __t;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    friend __bit_iterator operator+(difference_type __n, const __bit_iterator& __it) {return __it + __n;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    friend difference_type operator-(const __bit_iterator& __x, const __bit_iterator& __y)\n        {return (__x.__seg_ - __y.__seg_) * __bits_per_word + __x.__ctz_ - __y.__ctz_;}\n\n    _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const {return *(*this + __n);}\n\n    _LIBCPP_INLINE_VISIBILITY friend bool operator==(const __bit_iterator& __x, const __bit_iterator& __y)\n        {return __x.__seg_ == __y.__seg_ && __x.__ctz_ == __y.__ctz_;}\n\n    _LIBCPP_INLINE_VISIBILITY friend bool operator!=(const __bit_iterator& __x, const __bit_iterator& __y)\n        {return !(__x == __y);}\n\n    _LIBCPP_INLINE_VISIBILITY friend bool operator<(const __bit_iterator& __x, const __bit_iterator& __y)\n        {return __x.__seg_ < __y.__seg_ || (__x.__seg_ == __y.__seg_ && __x.__ctz_ < __y.__ctz_);}\n\n    _LIBCPP_INLINE_VISIBILITY friend bool operator>(const __bit_iterator& __x, const __bit_iterator& __y)\n        {return __y < __x;}\n\n    _LIBCPP_INLINE_VISIBILITY friend bool operator<=(const __bit_iterator& __x, const __bit_iterator& __y)\n        {return !(__y < __x);}\n\n    _LIBCPP_INLINE_VISIBILITY friend bool operator>=(const __bit_iterator& __x, const __bit_iterator& __y)\n        {return !(__x < __y);}\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    __bit_iterator(__storage_pointer __s, unsigned __ctz) _NOEXCEPT\n        : __seg_(__s), __ctz_(__ctz) {}\n\n    friend typename _Cp::__self;\n\n    friend class __bit_reference<_Cp>;\n    friend class __bit_const_reference<_Cp>;\n    friend class __bit_iterator<_Cp, true>;\n    template <class _Dp> friend struct __bit_array;\n    template <class _Dp> friend void __fill_n_false(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n);\n    template <class _Dp> friend void __fill_n_true(__bit_iterator<_Dp, false> __first, typename _Dp::size_type __n);\n    template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> __copy_aligned(__bit_iterator<_Dp, _IC> __first,\n                                                                                  __bit_iterator<_Dp, _IC> __last,\n                                                                                  __bit_iterator<_Dp, false> __result);\n    template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> __copy_unaligned(__bit_iterator<_Dp, _IC> __first,\n                                                                                    __bit_iterator<_Dp, _IC> __last,\n                                                                                    __bit_iterator<_Dp, false> __result);\n    template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> copy(__bit_iterator<_Dp, _IC> __first,\n                                                                        __bit_iterator<_Dp, _IC> __last,\n                                                                        __bit_iterator<_Dp, false> __result);\n    template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> __copy_backward_aligned(__bit_iterator<_Dp, _IC> __first,\n                                                                                           __bit_iterator<_Dp, _IC> __last,\n                                                                                           __bit_iterator<_Dp, false> __result);\n    template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> __copy_backward_unaligned(__bit_iterator<_Dp, _IC> __first,\n                                                                                             __bit_iterator<_Dp, _IC> __last,\n                                                                                             __bit_iterator<_Dp, false> __result);\n    template <class _Dp, bool _IC> friend __bit_iterator<_Dp, false> copy_backward(__bit_iterator<_Dp, _IC> __first,\n                                                                                 __bit_iterator<_Dp, _IC> __last,\n                                                                                 __bit_iterator<_Dp, false> __result);\n    template <class __C1, class __C2>friend __bit_iterator<__C2, false> __swap_ranges_aligned(__bit_iterator<__C1, false>,\n                                                                                           __bit_iterator<__C1, false>,\n                                                                                           __bit_iterator<__C2, false>);\n    template <class __C1, class __C2>friend __bit_iterator<__C2, false> __swap_ranges_unaligned(__bit_iterator<__C1, false>,\n                                                                                             __bit_iterator<__C1, false>,\n                                                                                             __bit_iterator<__C2, false>);\n    template <class __C1, class __C2>friend __bit_iterator<__C2, false> swap_ranges(__bit_iterator<__C1, false>,\n                                                                                 __bit_iterator<__C1, false>,\n                                                                                 __bit_iterator<__C2, false>);\n    template <class _Dp> friend __bit_iterator<_Dp, false> rotate(__bit_iterator<_Dp, false>,\n                                                                __bit_iterator<_Dp, false>,\n                                                                __bit_iterator<_Dp, false>);\n    template <class _Dp, bool _IC1, bool _IC2> friend bool __equal_aligned(__bit_iterator<_Dp, _IC1>,\n                                                    __bit_iterator<_Dp, _IC1>,\n                                                    __bit_iterator<_Dp, _IC2>);\n    template <class _Dp, bool _IC1, bool _IC2> friend bool __equal_unaligned(__bit_iterator<_Dp, _IC1>,\n                                                      __bit_iterator<_Dp, _IC1>,\n                                                      __bit_iterator<_Dp, _IC2>);\n    template <class _Dp, bool _IC1, bool _IC2> friend bool equal(__bit_iterator<_Dp, _IC1>,\n                                                                __bit_iterator<_Dp, _IC1>,\n                                                                __bit_iterator<_Dp, _IC2>);\n    template <class _Dp, bool _IC> friend __bit_iterator<_Dp, _IC> __find_bool_true(__bit_iterator<_Dp, _IC>,\n                                                                          typename _Dp::size_type);\n    template <class _Dp, bool _IC> friend __bit_iterator<_Dp, _IC> __find_bool_false(__bit_iterator<_Dp, _IC>,\n                                                                           typename _Dp::size_type);\n    template <class _Dp, bool _IC> friend typename __bit_iterator<_Dp, _IC>::difference_type\n                   __count_bool_true(__bit_iterator<_Dp, _IC>, typename _Dp::size_type);\n    template <class _Dp, bool _IC> friend typename __bit_iterator<_Dp, _IC>::difference_type\n                   __count_bool_false(__bit_iterator<_Dp, _IC>, typename _Dp::size_type);\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP___BIT_REFERENCE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__bsd_locale_defaults.h",
    "content": "// -*- C++ -*-\n//===---------------------- __bsd_locale_defaults.h -----------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n// The BSDs have lots of *_l functions.  We don't want to define those symbols\n// on other platforms though, for fear of conflicts with user code.  So here,\n// we will define the mapping from an internal macro to the real BSD symbol.\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_BSD_LOCALE_DEFAULTS_H\n#define _LIBCPP_BSD_LOCALE_DEFAULTS_H\n\n#define __libcpp_mb_cur_max_l(loc)                          MB_CUR_MAX_L(loc)\n#define __libcpp_btowc_l(ch, loc)                           btowc_l(ch, loc)\n#define __libcpp_wctob_l(wch, loc)                          wctob_l(wch, loc)\n#define __libcpp_wcsnrtombs_l(dst, src, nwc, len, ps, loc)  wcsnrtombs_l(dst, src, nwc, len, ps, loc)\n#define __libcpp_wcrtomb_l(src, wc, ps, loc)                wcrtomb_l(src, wc, ps, loc)\n#define __libcpp_mbsnrtowcs_l(dst, src, nms, len, ps, loc)  mbsnrtowcs_l(dst, src, nms, len, ps, loc)\n#define __libcpp_mbrtowc_l(pwc, s, n, ps, l)                mbrtowc_l(pwc, s, n, ps, l)\n#define __libcpp_mbtowc_l(pwc, pmb, max, l)                 mbtowc_l(pwc, pmb, max, l)\n#define __libcpp_mbrlen_l(s, n, ps, l)                      mbrlen_l(s, n, ps, l)\n#define __libcpp_localeconv_l(l)                            localeconv_l(l)\n#define __libcpp_mbsrtowcs_l(dest, src, len, ps, l)         mbsrtowcs_l(dest, src, len, ps, l)\n#define __libcpp_snprintf_l(...)                            snprintf_l(__VA_ARGS__)\n#define __libcpp_asprintf_l(...)                            asprintf_l(__VA_ARGS__)\n#define __libcpp_sscanf_l(...)                              sscanf_l(__VA_ARGS__)\n\n#endif // _LIBCPP_BSD_LOCALE_DEFAULTS_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__bsd_locale_fallbacks.h",
    "content": "// -*- C++ -*-\n//===---------------------- __bsd_locale_fallbacks.h ----------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n// The BSDs have lots of *_l functions.  This file provides reimplementations\n// of those functions for non-BSD platforms.\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H\n#define _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H\n\n#include <stdlib.h>\n#include <stdarg.h>\n#include <memory>\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ninline _LIBCPP_ALWAYS_INLINE\ndecltype(MB_CUR_MAX) __libcpp_mb_cur_max_l(locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return MB_CUR_MAX;\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nwint_t __libcpp_btowc_l(int __c, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return btowc(__c);\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nint __libcpp_wctob_l(wint_t __c, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return wctob(__c);\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nsize_t __libcpp_wcsnrtombs_l(char *__dest, const wchar_t **__src, size_t __nwc,\n                         size_t __len, mbstate_t *__ps, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return wcsnrtombs(__dest, __src, __nwc, __len, __ps);\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nsize_t __libcpp_wcrtomb_l(char *__s, wchar_t __wc, mbstate_t *__ps, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return wcrtomb(__s, __wc, __ps);\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nsize_t __libcpp_mbsnrtowcs_l(wchar_t * __dest, const char **__src, size_t __nms,\n                      size_t __len, mbstate_t *__ps, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return mbsnrtowcs(__dest, __src, __nms, __len, __ps);\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nsize_t __libcpp_mbrtowc_l(wchar_t *__pwc, const char *__s, size_t __n,\n                   mbstate_t *__ps, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return mbrtowc(__pwc, __s, __n, __ps);\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nint __libcpp_mbtowc_l(wchar_t *__pwc, const char *__pmb, size_t __max, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return mbtowc(__pwc, __pmb, __max);\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nsize_t __libcpp_mbrlen_l(const char *__s, size_t __n, mbstate_t *__ps, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return mbrlen(__s, __n, __ps);\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nlconv *__libcpp_localeconv_l(locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return localeconv();\n}\n\ninline _LIBCPP_ALWAYS_INLINE\nsize_t __libcpp_mbsrtowcs_l(wchar_t *__dest, const char **__src, size_t __len,\n                     mbstate_t *__ps, locale_t __l)\n{\n    __libcpp_locale_guard __current(__l);\n    return mbsrtowcs(__dest, __src, __len, __ps);\n}\n\ninline\nint __libcpp_snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...) {\n    va_list __va;\n    va_start(__va, __format);\n    __libcpp_locale_guard __current(__l);\n    int __res = vsnprintf(__s, __n, __format, __va);\n    va_end(__va);\n    return __res;\n}\n\ninline\nint __libcpp_asprintf_l(char **__s, locale_t __l, const char *__format, ...) {\n    va_list __va;\n    va_start(__va, __format);\n    __libcpp_locale_guard __current(__l);\n    int __res = vasprintf(__s, __format, __va);\n    va_end(__va);\n    return __res;\n}\n\ninline\nint __libcpp_sscanf_l(const char *__s, locale_t __l, const char *__format, ...) {\n    va_list __va;\n    va_start(__va, __format);\n    __libcpp_locale_guard __current(__l);\n    int __res = vsscanf(__s, __format, __va);\n    va_end(__va);\n    return __res;\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif // _LIBCPP_BSD_LOCALE_FALLBACKS_DEFAULTS_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__config",
    "content": "// -*- C++ -*-\n//===--------------------------- __config ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CONFIG\n#define _LIBCPP_CONFIG\n\n#if defined(_MSC_VER) && !defined(__clang__)\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#define _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER\n#endif\n#endif\n\n#ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER\n#pragma GCC system_header\n#endif\n\n#ifdef __cplusplus\n\n#ifdef __GNUC__\n#define _GNUC_VER (__GNUC__ * 100 + __GNUC_MINOR__)\n// The _GNUC_VER_NEW macro better represents the new GCC versioning scheme\n// introduced in GCC 5.0.\n#define _GNUC_VER_NEW (_GNUC_VER * 10 + __GNUC_PATCHLEVEL__)\n#else\n#define _GNUC_VER 0\n#define _GNUC_VER_NEW 0\n#endif\n\n#define _LIBCPP_VERSION 5000\n\n#ifndef _LIBCPP_ABI_VERSION\n#define _LIBCPP_ABI_VERSION 1\n#endif\n\n#if defined(__ELF__)\n#define _LIBCPP_OBJECT_FORMAT_ELF   1\n#elif defined(__MACH__)\n#define _LIBCPP_OBJECT_FORMAT_MACHO 1\n#elif defined(_WIN32)\n#define _LIBCPP_OBJECT_FORMAT_COFF  1\n#else\n#error Unknown object file format\n#endif\n\n#if defined(_LIBCPP_ABI_UNSTABLE) || _LIBCPP_ABI_VERSION >= 2\n// Change short string representation so that string data starts at offset 0,\n// improving its alignment in some cases.\n#define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n// Fix deque iterator type in order to support incomplete types.\n#define _LIBCPP_ABI_INCOMPLETE_TYPES_IN_DEQUE\n// Fix undefined behavior in how std::list stores it's linked nodes.\n#define _LIBCPP_ABI_LIST_REMOVE_NODE_POINTER_UB\n// Fix undefined behavior in  how __tree stores its end and parent nodes.\n#define _LIBCPP_ABI_TREE_REMOVE_NODE_POINTER_UB\n// Fix undefined behavior in how __hash_table stores it's pointer types\n#define _LIBCPP_ABI_FIX_UNORDERED_NODE_POINTER_UB\n#define _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB\n#define _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE\n// Don't use a nullptr_t simulation type in C++03 instead using C++11 nullptr\n// provided under the alternate keyword __nullptr, which changes the mangling\n// of nullptr_t. This option is ABI incompatible with GCC in C++03 mode.\n#define _LIBCPP_ABI_ALWAYS_USE_CXX11_NULLPTR\n// Define the `pointer_safety` enum as a C++11 strongly typed enumeration\n// instead of as a class simulating an enum. If this option is enabled\n// `pointer_safety` and `get_pointer_safety()` will no longer be available\n// in C++03.\n#define _LIBCPP_ABI_POINTER_SAFETY_ENUM_TYPE\n// Define a key function for `bad_function_call` in the library, to centralize\n// its vtable and typeinfo to libc++ rather than having all other libraries\n// using that class define their own copies.\n#define _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION\n\n// Enable optimized version of __do_get_(un)signed which avoids redundant copies.\n#define _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET\n#elif _LIBCPP_ABI_VERSION == 1\n#if !defined(_LIBCPP_OBJECT_FORMAT_COFF)\n// Enable compiling copies of now inline methods into the dylib to support\n// applications compiled against older libraries. This is unnecessary with\n// COFF dllexport semantics, since dllexport forces a non-inline definition\n// of inline functions to be emitted anyway. Our own non-inline copy would\n// conflict with the dllexport-emitted copy, so we disable it.\n#define _LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS\n#endif\n// Feature macros for disabling pre ABI v1 features. All of these options\n// are deprecated.\n#if defined(__FreeBSD__)\n#define _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR\n#endif\n#endif\n\n#ifdef _LIBCPP_TRIVIAL_PAIR_COPY_CTOR\n#error \"_LIBCPP_TRIVIAL_PAIR_COPY_CTOR\" is no longer supported. \\\n       use _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR instead\n#endif\n\n#define _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_X##_LIBCPP_Y\n#define _LIBCPP_CONCAT(_LIBCPP_X,_LIBCPP_Y) _LIBCPP_CONCAT1(_LIBCPP_X,_LIBCPP_Y)\n\n#define _LIBCPP_NAMESPACE _LIBCPP_CONCAT(__,_LIBCPP_ABI_VERSION)\n\n#if __cplusplus < 201103L\n#define _LIBCPP_CXX03_LANG\n#endif\n\n#ifndef __has_attribute\n#define __has_attribute(__x) 0\n#endif\n#ifndef __has_builtin\n#define __has_builtin(__x) 0\n#endif\n#ifndef __has_extension\n#define __has_extension(__x) 0\n#endif\n#ifndef __has_feature\n#define __has_feature(__x) 0\n#endif\n// '__is_identifier' returns '0' if '__x' is a reserved identifier provided by\n// the compiler and '1' otherwise.\n#ifndef __is_identifier\n#define __is_identifier(__x) 1\n#endif\n#ifndef __has_declspec_attribute\n#define __has_declspec_attribute(__x) 0\n#endif\n\n#define __has_keyword(__x) !(__is_identifier(__x))\n\n#ifdef __has_include\n#define __libcpp_has_include(__x) __has_include(__x)\n#else\n#define __libcpp_has_include(__x) 0\n#endif\n\n#if defined(__clang__)\n#define _LIBCPP_COMPILER_CLANG\n# ifndef __apple_build_version__\n#   define _LIBCPP_CLANG_VER (__clang_major__ * 100 + __clang_minor__)\n# endif\n#elif defined(__GNUC__)\n#define _LIBCPP_COMPILER_GCC\n#elif defined(_MSC_VER)\n#define _LIBCPP_COMPILER_MSVC\n#elif defined(__IBMCPP__)\n#define _LIBCPP_COMPILER_IBM\n#endif\n\n#ifndef _LIBCPP_CLANG_VER\n#define _LIBCPP_CLANG_VER 0\n#endif\n\n// FIXME: ABI detection should be done via compiler builtin macros. This\n// is just a placeholder until Clang implements such macros. For now assume\n// that Windows compilers pretending to be MSVC++ target the microsoft ABI.\n#if defined(_WIN32) && defined(_MSC_VER)\n# define _LIBCPP_ABI_MICROSOFT\n#else\n# define _LIBCPP_ABI_ITANIUM\n#endif\n\n// Need to detect which libc we're using if we're on Linux.\n#if defined(__linux__)\n#include <features.h>\n#if !defined(__GLIBC_PREREQ)\n#define __GLIBC_PREREQ(a, b) 0\n#endif // !defined(__GLIBC_PREREQ)\n#endif // defined(__linux__)\n\n#ifdef __LITTLE_ENDIAN__\n#if __LITTLE_ENDIAN__\n#define _LIBCPP_LITTLE_ENDIAN 1\n#define _LIBCPP_BIG_ENDIAN    0\n#endif  // __LITTLE_ENDIAN__\n#endif  // __LITTLE_ENDIAN__\n\n#ifdef __BIG_ENDIAN__\n#if __BIG_ENDIAN__\n#define _LIBCPP_LITTLE_ENDIAN 0\n#define _LIBCPP_BIG_ENDIAN    1\n#endif  // __BIG_ENDIAN__\n#endif  // __BIG_ENDIAN__\n\n#ifdef __BYTE_ORDER__\n#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__\n#define _LIBCPP_LITTLE_ENDIAN 1\n#define _LIBCPP_BIG_ENDIAN 0\n#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__\n#define _LIBCPP_LITTLE_ENDIAN 0\n#define _LIBCPP_BIG_ENDIAN 1\n#endif // __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__\n#endif // __BYTE_ORDER__\n\n#ifdef __FreeBSD__\n# include <sys/endian.h>\n#  if _BYTE_ORDER == _LITTLE_ENDIAN\n#   define _LIBCPP_LITTLE_ENDIAN 1\n#   define _LIBCPP_BIG_ENDIAN    0\n# else  // _BYTE_ORDER == _LITTLE_ENDIAN\n#   define _LIBCPP_LITTLE_ENDIAN 0\n#   define _LIBCPP_BIG_ENDIAN    1\n# endif  // _BYTE_ORDER == _LITTLE_ENDIAN\n# ifndef __LONG_LONG_SUPPORTED\n#  define _LIBCPP_HAS_NO_LONG_LONG\n# endif  // __LONG_LONG_SUPPORTED\n#endif  // __FreeBSD__\n\n#ifdef __NetBSD__\n# include <sys/endian.h>\n#  if _BYTE_ORDER == _LITTLE_ENDIAN\n#   define _LIBCPP_LITTLE_ENDIAN 1\n#   define _LIBCPP_BIG_ENDIAN    0\n# else  // _BYTE_ORDER == _LITTLE_ENDIAN\n#   define _LIBCPP_LITTLE_ENDIAN 0\n#   define _LIBCPP_BIG_ENDIAN    1\n# endif  // _BYTE_ORDER == _LITTLE_ENDIAN\n# define _LIBCPP_HAS_QUICK_EXIT\n#endif  // __NetBSD__\n\n#if defined(_WIN32)\n#  define _LIBCPP_WIN32API\n#  define _LIBCPP_LITTLE_ENDIAN 1\n#  define _LIBCPP_BIG_ENDIAN    0\n#  define _LIBCPP_SHORT_WCHAR   1\n// Both MinGW and native MSVC provide a \"MSVC\"-like enviroment\n#  define _LIBCPP_MSVCRT_LIKE\n// If mingw not explicitly detected, assume using MS C runtime only if\n// a MS compatibility version is specified.\n#  if defined(_MSC_VER) && !defined(__MINGW32__)\n#    define _LIBCPP_MSVCRT // Using Microsoft's C Runtime library\n#  endif\n#  if (defined(_M_AMD64) || defined(__x86_64__)) || (defined(_M_ARM) || defined(__arm__))\n#    define _LIBCPP_HAS_BITSCAN64\n#  endif\n# if defined(_LIBCPP_MSVCRT)\n#   define _LIBCPP_HAS_QUICK_EXIT\n# endif\n\n// Some CRT APIs are unavailable to store apps\n#if defined(WINAPI_FAMILY)\n#include <winapifamily.h>\n#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) &&                      \\\n    (!defined(WINAPI_PARTITION_SYSTEM) ||                                      \\\n     !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_SYSTEM))\n#define _LIBCPP_WINDOWS_STORE_APP\n#endif\n#endif\n#endif // defined(_WIN32)\n\n#ifdef __sun__\n# include <sys/isa_defs.h>\n# ifdef _LITTLE_ENDIAN\n#   define _LIBCPP_LITTLE_ENDIAN 1\n#   define _LIBCPP_BIG_ENDIAN    0\n# else\n#   define _LIBCPP_LITTLE_ENDIAN 0\n#   define _LIBCPP_BIG_ENDIAN    1\n# endif\n#endif // __sun__\n\n#if defined(__CloudABI__)\n  // Certain architectures provide arc4random(). Prefer using\n  // arc4random() over /dev/{u,}random to make it possible to obtain\n  // random data even when using sandboxing mechanisms such as chroots,\n  // Capsicum, etc.\n# define _LIBCPP_USING_ARC4_RANDOM\n#elif defined(__native_client__)\n  // NaCl's sandbox (which PNaCl also runs in) doesn't allow filesystem access,\n  // including accesses to the special files under /dev. C++11's\n  // std::random_device is instead exposed through a NaCl syscall.\n# define _LIBCPP_USING_NACL_RANDOM\n#elif defined(_LIBCPP_WIN32API)\n# define _LIBCPP_USING_WIN32_RANDOM\n#else\n# define _LIBCPP_USING_DEV_RANDOM\n#endif\n\n#if !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN)\n# include <endian.h>\n# if __BYTE_ORDER == __LITTLE_ENDIAN\n#  define _LIBCPP_LITTLE_ENDIAN 1\n#  define _LIBCPP_BIG_ENDIAN    0\n# elif __BYTE_ORDER == __BIG_ENDIAN\n#  define _LIBCPP_LITTLE_ENDIAN 0\n#  define _LIBCPP_BIG_ENDIAN    1\n# else  // __BYTE_ORDER == __BIG_ENDIAN\n#  error unable to determine endian\n# endif\n#endif  // !defined(_LIBCPP_LITTLE_ENDIAN) || !defined(_LIBCPP_BIG_ENDIAN)\n\n#if __has_attribute(__no_sanitize__) && !defined(_LIBCPP_COMPILER_GCC)\n#define _LIBCPP_NO_CFI __attribute__((__no_sanitize__(\"cfi\")))\n#else\n#define _LIBCPP_NO_CFI\n#endif\n\n#if defined(_LIBCPP_COMPILER_CLANG)\n\n// _LIBCPP_ALTERNATE_STRING_LAYOUT is an old name for\n// _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT left here for backward compatibility.\n#if (defined(__APPLE__) && !defined(__i386__) && !defined(__x86_64__) &&       \\\n     (!defined(__arm__) || __ARM_ARCH_7K__ >= 2)) ||                           \\\n    defined(_LIBCPP_ALTERNATE_STRING_LAYOUT)\n#define _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n#endif\n\n#if __has_feature(cxx_alignas)\n#  define _ALIGNAS_TYPE(x) alignas(x)\n#  define _ALIGNAS(x) alignas(x)\n#else\n#  define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x))))\n#  define _ALIGNAS(x) __attribute__((__aligned__(x)))\n#endif\n\n#if __cplusplus < 201103L\ntypedef __char16_t char16_t;\ntypedef __char32_t char32_t;\n#endif\n\n#if !(__has_feature(cxx_exceptions)) && !defined(_LIBCPP_NO_EXCEPTIONS)\n#define _LIBCPP_NO_EXCEPTIONS\n#endif\n\n#if !(__has_feature(cxx_rtti)) && !defined(_LIBCPP_NO_RTTI)\n#define _LIBCPP_NO_RTTI\n#endif\n\n#if !(__has_feature(cxx_strong_enums))\n#define _LIBCPP_HAS_NO_STRONG_ENUMS\n#endif\n\n#if !(__has_feature(cxx_decltype))\n#define _LIBCPP_HAS_NO_DECLTYPE\n#endif\n\n#if __has_feature(cxx_attributes)\n#  define _LIBCPP_NORETURN [[noreturn]]\n#else\n#  define _LIBCPP_NORETURN __attribute__ ((noreturn))\n#endif\n\n#if !(__has_feature(cxx_lambdas))\n#define _LIBCPP_HAS_NO_LAMBDAS\n#endif\n\n#if !(__has_feature(cxx_nullptr))\n# if (__has_extension(cxx_nullptr) || __has_keyword(__nullptr)) && defined(_LIBCPP_ABI_ALWAYS_USE_CXX11_NULLPTR)\n#   define nullptr __nullptr\n# else\n#   define _LIBCPP_HAS_NO_NULLPTR\n# endif\n#endif\n\n#if !(__has_feature(cxx_rvalue_references))\n#define _LIBCPP_HAS_NO_RVALUE_REFERENCES\n#endif\n\n#if !(__has_feature(cxx_auto_type))\n#define _LIBCPP_HAS_NO_AUTO_TYPE\n#endif\n\n#if !(__has_feature(cxx_variadic_templates))\n#define _LIBCPP_HAS_NO_VARIADICS\n#endif\n\n#if !(__has_feature(cxx_generalized_initializers))\n#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS\n#endif\n\n#if __has_feature(is_base_of)\n#  define _LIBCPP_HAS_IS_BASE_OF\n#endif\n\n#if __has_feature(is_final)\n#  define _LIBCPP_HAS_IS_FINAL\n#endif\n\n// Objective-C++ features (opt-in)\n#if __has_feature(objc_arc)\n#define _LIBCPP_HAS_OBJC_ARC\n#endif\n\n#if __has_feature(objc_arc_weak)\n#define _LIBCPP_HAS_OBJC_ARC_WEAK\n#endif\n\n#if !(__has_feature(cxx_constexpr))\n#define _LIBCPP_HAS_NO_CONSTEXPR\n#endif\n\n#if !(__has_feature(cxx_relaxed_constexpr))\n#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR\n#endif\n\n#if !(__has_feature(cxx_variable_templates))\n#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\n#endif\n\n#if __ISO_C_VISIBLE >= 2011 || __cplusplus >= 201103L\n#if defined(__FreeBSD__)\n#define _LIBCPP_HAS_QUICK_EXIT\n#define _LIBCPP_HAS_C11_FEATURES\n#elif defined(__Fuchsia__)\n#define _LIBCPP_HAS_QUICK_EXIT\n#define _LIBCPP_HAS_C11_FEATURES\n#elif defined(__linux__)\n#if !defined(_LIBCPP_HAS_MUSL_LIBC)\n#if __GLIBC_PREREQ(2, 15) || defined(__BIONIC__)\n#define _LIBCPP_HAS_QUICK_EXIT\n#endif\n#if __GLIBC_PREREQ(2, 17)\n#define _LIBCPP_HAS_C11_FEATURES\n#endif\n#else // defined(_LIBCPP_HAS_MUSL_LIBC)\n#define _LIBCPP_HAS_QUICK_EXIT\n#define _LIBCPP_HAS_C11_FEATURES\n#endif\n#endif // __linux__\n#endif\n\n#if !(__has_feature(cxx_noexcept))\n#define _LIBCPP_HAS_NO_NOEXCEPT\n#endif\n\n#if __has_feature(underlying_type)\n#  define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T)\n#endif\n\n#if __has_feature(is_literal)\n#  define _LIBCPP_IS_LITERAL(T) __is_literal(T)\n#endif\n\n// Inline namespaces are available in Clang regardless of C++ dialect.\n#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE {\n#define _LIBCPP_END_NAMESPACE_STD  } }\n#define _VSTD std::_LIBCPP_NAMESPACE\n\nnamespace std {\n  inline namespace _LIBCPP_NAMESPACE {\n  }\n}\n\n#if !defined(_LIBCPP_HAS_NO_ASAN) && !__has_feature(address_sanitizer)\n#define _LIBCPP_HAS_NO_ASAN\n#endif\n\n// Allow for build-time disabling of unsigned integer sanitization\n#if !defined(_LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK) && __has_attribute(no_sanitize)\n#define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK __attribute__((__no_sanitize__(\"unsigned-integer-overflow\")))\n#endif \n\n#elif defined(_LIBCPP_COMPILER_GCC)\n\n#define _ALIGNAS(x) __attribute__((__aligned__(x)))\n#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x))))\n\n#define _LIBCPP_NORETURN __attribute__((noreturn))\n\n#if _GNUC_VER >= 407\n#define _LIBCPP_UNDERLYING_TYPE(T) __underlying_type(T)\n#define _LIBCPP_IS_LITERAL(T) __is_literal_type(T)\n#define _LIBCPP_HAS_IS_FINAL\n#endif\n\n#if defined(__GNUC__) && _GNUC_VER >= 403\n#  define _LIBCPP_HAS_IS_BASE_OF\n#endif\n\n#if !__EXCEPTIONS\n#define _LIBCPP_NO_EXCEPTIONS\n#endif\n\n// constexpr was added to GCC in 4.6.\n#if _GNUC_VER < 406\n#define _LIBCPP_HAS_NO_CONSTEXPR\n// Can only use constexpr in c++11 mode.\n#elif !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L\n#define _LIBCPP_HAS_NO_CONSTEXPR\n#endif\n\n// Determine if GCC supports relaxed constexpr\n#if !defined(__cpp_constexpr) || __cpp_constexpr < 201304L\n#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR\n#endif\n\n// GCC 5 will support variable templates\n#if !defined(__cpp_variable_templates) || __cpp_variable_templates < 201304L\n#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\n#endif\n\n#ifndef __GXX_EXPERIMENTAL_CXX0X__\n#define _LIBCPP_HAS_NO_DECLTYPE\n#define _LIBCPP_HAS_NO_NULLPTR\n#define _LIBCPP_HAS_NO_UNICODE_CHARS\n#define _LIBCPP_HAS_NO_VARIADICS\n#define _LIBCPP_HAS_NO_RVALUE_REFERENCES\n#define _LIBCPP_HAS_NO_STRONG_ENUMS\n#define _LIBCPP_HAS_NO_NOEXCEPT\n\n#else  // __GXX_EXPERIMENTAL_CXX0X__\n\n#if _GNUC_VER < 403\n#define _LIBCPP_HAS_NO_RVALUE_REFERENCES\n#endif\n\n\n#if _GNUC_VER < 404\n#define _LIBCPP_HAS_NO_DECLTYPE\n#define _LIBCPP_HAS_NO_UNICODE_CHARS\n#define _LIBCPP_HAS_NO_VARIADICS\n#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS\n#endif  // _GNUC_VER < 404\n\n#if _GNUC_VER < 406\n#define _LIBCPP_HAS_NO_NOEXCEPT\n#define _LIBCPP_HAS_NO_NULLPTR\n#endif\n\n#endif  // __GXX_EXPERIMENTAL_CXX0X__\n\n#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std { inline namespace _LIBCPP_NAMESPACE {\n#define _LIBCPP_END_NAMESPACE_STD  } }\n#define _VSTD std::_LIBCPP_NAMESPACE\n\nnamespace std {\n  inline namespace _LIBCPP_NAMESPACE {\n  }\n}\n\n#if !defined(_LIBCPP_HAS_NO_ASAN) && !defined(__SANITIZE_ADDRESS__)\n#define _LIBCPP_HAS_NO_ASAN\n#endif\n\n#elif defined(_LIBCPP_COMPILER_MSVC)\n\n#define _LIBCPP_TOSTRING2(x) #x\n#define _LIBCPP_TOSTRING(x) _LIBCPP_TOSTRING2(x)\n#define _LIBCPP_WARNING(x) __pragma(message(__FILE__ \"(\" _LIBCPP_TOSTRING(__LINE__) \") : warning note: \" x))\n\n#if _MSC_VER < 1900\n#error \"MSVC versions prior to Visual Studio 2015 are not supported\"\n#endif\n\n#define _LIBCPP_HAS_IS_BASE_OF\n#define _LIBCPP_HAS_NO_CONSTEXPR\n#define _LIBCPP_HAS_NO_CXX14_CONSTEXPR\n#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\n#if _MSC_VER <= 1800\n#define _LIBCPP_HAS_NO_UNICODE_CHARS\n#endif\n#define _LIBCPP_HAS_NO_NOEXCEPT\n#define __alignof__ __alignof\n#define _LIBCPP_NORETURN __declspec(noreturn)\n#define _ALIGNAS(x) __declspec(align(x))\n#define _LIBCPP_HAS_NO_VARIADICS\n\n#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {\n#define _LIBCPP_END_NAMESPACE_STD  }\n#define _VSTD std\n\n#  define _LIBCPP_WEAK\nnamespace std {\n}\n\n#define _LIBCPP_HAS_NO_ASAN\n\n#elif defined(_LIBCPP_COMPILER_IBM)\n\n#define _ALIGNAS(x) __attribute__((__aligned__(x)))\n#define _ALIGNAS_TYPE(x) __attribute__((__aligned__(__alignof(x))))\n#define _ATTRIBUTE(x) __attribute__((x))\n#define _LIBCPP_NORETURN __attribute__((noreturn))\n\n#define _LIBCPP_HAS_NO_GENERALIZED_INITIALIZERS\n#define _LIBCPP_HAS_NO_NOEXCEPT\n#define _LIBCPP_HAS_NO_NULLPTR\n#define _LIBCPP_HAS_NO_UNICODE_CHARS\n#define _LIBCPP_HAS_IS_BASE_OF\n#define _LIBCPP_HAS_IS_FINAL\n#define _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\n\n#if defined(_AIX)\n#define __MULTILOCALE_API\n#endif\n\n#define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {inline namespace _LIBCPP_NAMESPACE {\n#define _LIBCPP_END_NAMESPACE_STD  } }\n#define _VSTD std::_LIBCPP_NAMESPACE\n\nnamespace std {\n  inline namespace _LIBCPP_NAMESPACE {\n  }\n}\n\n#define _LIBCPP_HAS_NO_ASAN\n\n#endif // _LIBCPP_COMPILER_[CLANG|GCC|MSVC|IBM]\n\n#if defined(_LIBCPP_OBJECT_FORMAT_COFF)\n#if defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n# define _LIBCPP_DLL_VIS\n# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS\n# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS\n# define _LIBCPP_OVERRIDABLE_FUNC_VIS\n#elif defined(_LIBCPP_BUILDING_LIBRARY)\n# define _LIBCPP_DLL_VIS __declspec(dllexport)\n# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS\n# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS _LIBCPP_DLL_VIS\n# define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_DLL_VIS\n#else\n# define _LIBCPP_DLL_VIS __declspec(dllimport)\n# define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS _LIBCPP_DLL_VIS\n# define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS\n# define _LIBCPP_OVERRIDABLE_FUNC_VIS\n#endif\n\n#define _LIBCPP_TYPE_VIS            _LIBCPP_DLL_VIS\n#define _LIBCPP_FUNC_VIS            _LIBCPP_DLL_VIS\n#define _LIBCPP_EXTERN_VIS          _LIBCPP_DLL_VIS\n#define _LIBCPP_EXCEPTION_ABI       _LIBCPP_DLL_VIS\n#define _LIBCPP_HIDDEN\n#define _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n#define _LIBCPP_TEMPLATE_VIS\n#define _LIBCPP_ENUM_VIS\n\n#if defined(_LIBCPP_COMPILER_MSVC)\n# define _LIBCPP_INLINE_VISIBILITY __forceinline\n# define _LIBCPP_ALWAYS_INLINE     __forceinline\n# define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __forceinline\n#else\n# define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__always_inline__))\n# define _LIBCPP_ALWAYS_INLINE     __attribute__ ((__always_inline__))\n# define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __attribute__ ((__always_inline__))\n#endif\n#endif // defined(_LIBCPP_OBJECT_FORMAT_COFF)\n\n#ifndef _LIBCPP_HIDDEN\n#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n#define _LIBCPP_HIDDEN __attribute__ ((__visibility__(\"hidden\")))\n#else\n#define _LIBCPP_HIDDEN\n#endif\n#endif\n\n#ifndef _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n// The inline should be removed once PR32114 is resolved\n#define _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS inline _LIBCPP_HIDDEN\n#else\n#define _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n#endif\n#endif\n\n#ifndef _LIBCPP_FUNC_VIS\n#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n#define _LIBCPP_FUNC_VIS __attribute__ ((__visibility__(\"default\")))\n#else\n#define _LIBCPP_FUNC_VIS\n#endif\n#endif\n\n#ifndef _LIBCPP_TYPE_VIS\n#  if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n#    define _LIBCPP_TYPE_VIS __attribute__ ((__visibility__(\"default\")))\n#  else\n#    define _LIBCPP_TYPE_VIS\n#  endif\n#endif\n\n#ifndef _LIBCPP_TEMPLATE_VIS\n#  if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n#    if __has_attribute(__type_visibility__)\n#      define _LIBCPP_TEMPLATE_VIS __attribute__ ((__type_visibility__(\"default\")))\n#    else\n#      define _LIBCPP_TEMPLATE_VIS __attribute__ ((__visibility__(\"default\")))\n#    endif\n#  else\n#    define _LIBCPP_TEMPLATE_VIS\n#  endif\n#endif\n\n#ifndef _LIBCPP_EXTERN_VIS\n# define _LIBCPP_EXTERN_VIS\n#endif\n\n#ifndef _LIBCPP_OVERRIDABLE_FUNC_VIS\n# define _LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_FUNC_VIS\n#endif\n\n#ifndef _LIBCPP_EXCEPTION_ABI\n#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n#define _LIBCPP_EXCEPTION_ABI __attribute__ ((__visibility__(\"default\")))\n#else\n#define _LIBCPP_EXCEPTION_ABI\n#endif\n#endif\n\n#ifndef _LIBCPP_ENUM_VIS\n#  if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) && __has_attribute(__type_visibility__)\n#    define _LIBCPP_ENUM_VIS __attribute__ ((__type_visibility__(\"default\")))\n#  else\n#    define _LIBCPP_ENUM_VIS\n#  endif\n#endif\n\n#ifndef _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS\n#  if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) && __has_attribute(__type_visibility__)\n#    define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __attribute__ ((__visibility__(\"default\")))\n#  else\n#    define _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS\n#  endif\n#endif\n\n#ifndef _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS\n#  define _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS\n#endif\n\n#ifndef _LIBCPP_INLINE_VISIBILITY\n#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__visibility__(\"hidden\"), __always_inline__))\n#else\n#define _LIBCPP_INLINE_VISIBILITY __attribute__ ((__always_inline__))\n#endif\n#endif\n\n#ifndef _LIBCPP_ALWAYS_INLINE\n#if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n#define _LIBCPP_ALWAYS_INLINE  __attribute__ ((__visibility__(\"hidden\"), __always_inline__))\n#else\n#define _LIBCPP_ALWAYS_INLINE  __attribute__ ((__always_inline__))\n#endif\n#endif\n\n#ifndef _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n# if !defined(_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS)\n#  define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __attribute__((__visibility__(\"default\"), __always_inline__))\n# else\n#  define _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY __attribute__((__always_inline__))\n# endif\n#endif\n\n#ifndef _LIBCPP_PREFERRED_OVERLOAD\n#  if __has_attribute(__enable_if__)\n#    define _LIBCPP_PREFERRED_OVERLOAD __attribute__ ((__enable_if__(true, \"\")))\n#  endif\n#endif\n\n#ifndef _LIBCPP_HAS_NO_NOEXCEPT\n#  define _NOEXCEPT noexcept\n#  define _NOEXCEPT_(x) noexcept(x)\n#else\n#  define _NOEXCEPT throw()\n#  define _NOEXCEPT_(x)\n#endif\n\n#if defined(_LIBCPP_DEBUG_USE_EXCEPTIONS)\n# if !defined(_LIBCPP_DEBUG)\n#   error cannot use _LIBCPP_DEBUG_USE_EXCEPTIONS unless _LIBCPP_DEBUG is defined\n# endif\n# define _NOEXCEPT_DEBUG noexcept(false)\n# define _NOEXCEPT_DEBUG_(x) noexcept(false)\n#else\n# define _NOEXCEPT_DEBUG _NOEXCEPT\n# define _NOEXCEPT_DEBUG_(x) _NOEXCEPT_(x)\n#endif\n\n#ifdef _LIBCPP_HAS_NO_UNICODE_CHARS\ntypedef unsigned short char16_t;\ntypedef unsigned int   char32_t;\n#endif  // _LIBCPP_HAS_NO_UNICODE_CHARS\n\n#ifndef __SIZEOF_INT128__\n#define _LIBCPP_HAS_NO_INT128\n#endif\n\n#ifdef _LIBCPP_CXX03_LANG\n# if __has_extension(c_static_assert)\n#   define static_assert(__b, __m) _Static_assert(__b, __m)\n# else\nextern \"C++\" {\ntemplate <bool> struct __static_assert_test;\ntemplate <> struct __static_assert_test<true> {};\ntemplate <unsigned> struct __static_assert_check {};\n}\n#define static_assert(__b, __m) \\\n    typedef __static_assert_check<sizeof(__static_assert_test<(__b)>)> \\\n    _LIBCPP_CONCAT(__t, __LINE__)\n# endif // __has_extension(c_static_assert)\n#endif  // _LIBCPP_CXX03_LANG\n\n#ifdef _LIBCPP_HAS_NO_DECLTYPE\n// GCC 4.6 provides __decltype in all standard modes.\n#if __has_keyword(__decltype) || _LIBCPP_CLANG_VER >= 304 || _GNUC_VER >= 406\n#  define decltype(__x) __decltype(__x)\n#else\n#  define decltype(__x) __typeof__(__x)\n#endif\n#endif\n\n#ifdef _LIBCPP_HAS_NO_CONSTEXPR\n#define _LIBCPP_CONSTEXPR\n#else\n#define _LIBCPP_CONSTEXPR constexpr\n#endif\n\n#ifdef _LIBCPP_CXX03_LANG\n#define _LIBCPP_DEFAULT {}\n#else\n#define _LIBCPP_DEFAULT = default;\n#endif\n\n#ifdef _LIBCPP_CXX03_LANG\n#define _LIBCPP_EQUAL_DELETE\n#else\n#define _LIBCPP_EQUAL_DELETE = delete\n#endif\n\n#ifdef __GNUC__\n#define _NOALIAS __attribute__((__malloc__))\n#else\n#define _NOALIAS\n#endif\n\n#if __has_feature(cxx_explicit_conversions) || defined(__IBMCPP__) || \\\n    (!defined(_LIBCPP_CXX03_LANG) && defined(__GNUC__)) // All supported GCC versions\n#   define _LIBCPP_EXPLICIT explicit\n#else\n#   define _LIBCPP_EXPLICIT\n#endif\n\n#if !__has_builtin(__builtin_operator_new) || !__has_builtin(__builtin_operator_delete)\n#   define _LIBCPP_HAS_NO_BUILTIN_OPERATOR_NEW_DELETE\n#endif\n\n#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS\n#define _LIBCPP_DECLARE_STRONG_ENUM(x) struct _LIBCPP_TYPE_VIS x { enum __lx\n#define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x) \\\n    __lx __v_; \\\n    _LIBCPP_ALWAYS_INLINE x(__lx __v) : __v_(__v) {} \\\n    _LIBCPP_ALWAYS_INLINE explicit x(int __v) : __v_(static_cast<__lx>(__v)) {} \\\n    _LIBCPP_ALWAYS_INLINE operator int() const {return __v_;} \\\n    };\n#else  // _LIBCPP_HAS_NO_STRONG_ENUMS\n#define _LIBCPP_DECLARE_STRONG_ENUM(x) enum class _LIBCPP_ENUM_VIS x\n#define _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(x)\n#endif  // _LIBCPP_HAS_NO_STRONG_ENUMS\n\n#ifdef _LIBCPP_DEBUG\n#   if _LIBCPP_DEBUG == 0\n#       define _LIBCPP_DEBUG_LEVEL 1\n#   elif _LIBCPP_DEBUG == 1\n#       define _LIBCPP_DEBUG_LEVEL 2\n#   else\n#       error Supported values for _LIBCPP_DEBUG are 0 and 1\n#   endif\n# if !defined(_LIBCPP_BUILDING_LIBRARY)\n#   define _LIBCPP_EXTERN_TEMPLATE(...)\n# endif\n#endif\n\n#ifdef _LIBCPP_DISABLE_EXTERN_TEMPLATE\n#define _LIBCPP_EXTERN_TEMPLATE(...)\n#define _LIBCPP_EXTERN_TEMPLATE2(...)\n#endif\n\n#ifndef _LIBCPP_EXTERN_TEMPLATE\n#define _LIBCPP_EXTERN_TEMPLATE(...) extern template __VA_ARGS__;\n#endif\n\n#ifndef _LIBCPP_EXTERN_TEMPLATE2\n#define _LIBCPP_EXTERN_TEMPLATE2(...) extern template __VA_ARGS__;\n#endif\n\n#if defined(__APPLE__) && defined(__LP64__) && !defined(__x86_64__)\n#define _LIBCPP_NONUNIQUE_RTTI_BIT (1ULL << 63)\n#endif\n\n#if defined(__APPLE__) || defined(__FreeBSD__) || defined(_LIBCPP_MSVCRT) ||   \\\n    defined(__sun__) || defined(__NetBSD__) || defined(__CloudABI__)\n#define _LIBCPP_LOCALE__L_EXTENSIONS 1\n#endif\n\n#if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__))\n// Most unix variants have catopen.  These are the specific ones that don't.\n#if !defined(__BIONIC__) && !defined(_NEWLIB_VERSION)\n#define _LIBCPP_HAS_CATOPEN 1\n#endif\n#endif\n\n#ifdef __FreeBSD__\n#define _DECLARE_C99_LDBL_MATH 1\n#endif\n\n#if defined(__APPLE__)\n# if !defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && \\\n     defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)\n#   define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__\n# endif\n# if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)\n#   if __MAC_OS_X_VERSION_MIN_REQUIRED < 1060\n#     define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION\n#   endif\n# endif\n#endif // defined(__APPLE__)\n\n#if defined(__APPLE__) || defined(__FreeBSD__)\n#define _LIBCPP_HAS_DEFAULTRUNELOCALE\n#endif\n\n#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__sun__)\n#define _LIBCPP_WCTYPE_IS_MASK\n#endif\n\n#ifndef _LIBCPP_STD_VER\n#  if  __cplusplus <= 201103L\n#    define _LIBCPP_STD_VER 11\n#  elif __cplusplus <= 201402L\n#    define _LIBCPP_STD_VER 14\n#  elif __cplusplus <= 201703L\n#    define _LIBCPP_STD_VER 17\n#  else\n#    define _LIBCPP_STD_VER 18  // current year, or date of c++2a ratification\n#  endif\n#endif  // _LIBCPP_STD_VER\n\n#if _LIBCPP_STD_VER > 11\n#define _LIBCPP_DEPRECATED [[deprecated]]\n#else\n#define _LIBCPP_DEPRECATED\n#endif\n\n#if _LIBCPP_STD_VER <= 11\n#define _LIBCPP_EXPLICIT_AFTER_CXX11\n#define _LIBCPP_DEPRECATED_AFTER_CXX11\n#else\n#define _LIBCPP_EXPLICIT_AFTER_CXX11 explicit\n#define _LIBCPP_DEPRECATED_AFTER_CXX11 [[deprecated]]\n#endif\n\n#if _LIBCPP_STD_VER > 11 && !defined(_LIBCPP_HAS_NO_CXX14_CONSTEXPR)\n#define _LIBCPP_CONSTEXPR_AFTER_CXX11 constexpr\n#else\n#define _LIBCPP_CONSTEXPR_AFTER_CXX11\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_CXX14_CONSTEXPR)\n#define _LIBCPP_CONSTEXPR_AFTER_CXX14 constexpr\n#else\n#define _LIBCPP_CONSTEXPR_AFTER_CXX14\n#endif\n\n// FIXME: Remove all usages of this macro once compilers catch up.\n#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606L)\n# define _LIBCPP_HAS_NO_INLINE_VARIABLES\n#endif\n\n#ifdef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n#  define _LIBCPP_EXPLICIT_MOVE(x) _VSTD::move(x)\n#else\n#  define _LIBCPP_EXPLICIT_MOVE(x) (x)\n#endif\n\n#ifndef _LIBCPP_HAS_NO_ASAN\n_LIBCPP_FUNC_VIS extern \"C\" void __sanitizer_annotate_contiguous_container(\n  const void *, const void *, const void *, const void *);\n#endif\n\n// Try to find out if RTTI is disabled.\n// g++ and cl.exe have RTTI on by default and define a macro when it is.\n// g++ only defines the macro in 4.3.2 and onwards.\n#if !defined(_LIBCPP_NO_RTTI)\n#  if defined(__GNUC__) && ((__GNUC__ >= 5) || (__GNUC__ == 4 && \\\n   (__GNUC_MINOR__ >= 3 || __GNUC_PATCHLEVEL__ >= 2))) && !defined(__GXX_RTTI)\n#    define _LIBCPP_NO_RTTI\n#  elif defined(_LIBCPP_COMPILER_MSVC) && !defined(_CPPRTTI)\n#    define _LIBCPP_NO_RTTI\n#  endif\n#endif\n\n#ifndef _LIBCPP_WEAK\n#  define _LIBCPP_WEAK __attribute__((__weak__))\n#endif\n\n// Thread API\n#if !defined(_LIBCPP_HAS_NO_THREADS) && \\\n    !defined(_LIBCPP_HAS_THREAD_API_PTHREAD) && \\\n    !defined(_LIBCPP_HAS_THREAD_API_WIN32) && \\\n    !defined(_LIBCPP_HAS_THREAD_API_EXTERNAL)\n# if defined(__FreeBSD__) || \\\n    defined(__Fuchsia__) || \\\n    defined(__NetBSD__) || \\\n    defined(__linux__) || \\\n    defined(__APPLE__) || \\\n    defined(__CloudABI__) || \\\n    defined(__sun__) || \\\n    (defined(__MINGW32__) && __libcpp_has_include(<pthread.h>))\n#   define _LIBCPP_HAS_THREAD_API_PTHREAD\n# elif defined(_LIBCPP_WIN32API)\n#  define _LIBCPP_HAS_THREAD_API_WIN32\n# else\n#  error \"No thread API\"\n# endif // _LIBCPP_HAS_THREAD_API\n#endif // _LIBCPP_HAS_NO_THREADS\n\n#if defined(_LIBCPP_HAS_NO_THREADS) && defined(_LIBCPP_HAS_THREAD_API_PTHREAD)\n#  error _LIBCPP_HAS_THREAD_API_PTHREAD may only be defined when \\\n         _LIBCPP_HAS_NO_THREADS is not defined.\n#endif\n\n#if defined(_LIBCPP_HAS_NO_THREADS) && defined(_LIBCPP_HAS_THREAD_API_EXTERNAL)\n#  error _LIBCPP_HAS_THREAD_API_EXTERNAL may not be defined when \\\n         _LIBCPP_HAS_NO_THREADS is defined.\n#endif\n\n#if defined(_LIBCPP_HAS_NO_MONOTONIC_CLOCK) && !defined(_LIBCPP_HAS_NO_THREADS)\n#  error _LIBCPP_HAS_NO_MONOTONIC_CLOCK may only be defined when \\\n         _LIBCPP_HAS_NO_THREADS is defined.\n#endif\n\n// Systems that use capability-based security (FreeBSD with Capsicum,\n// Nuxi CloudABI) may only provide local filesystem access (using *at()).\n// Functions like open(), rename(), unlink() and stat() should not be\n// used, as they attempt to access the global filesystem namespace.\n#ifdef __CloudABI__\n#define _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\n#endif\n\n// CloudABI is intended for running networked services. Processes do not\n// have standard input and output channels.\n#ifdef __CloudABI__\n#define _LIBCPP_HAS_NO_STDIN\n#define _LIBCPP_HAS_NO_STDOUT\n#endif\n\n#if defined(__BIONIC__) || defined(__CloudABI__) ||                            \\\n    defined(__Fuchsia__) || defined(_LIBCPP_HAS_MUSL_LIBC)\n#define _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE\n#endif\n\n// Thread-unsafe functions such as strtok() and localtime()\n// are not available.\n#ifdef __CloudABI__\n#define _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS\n#endif\n\n#if __has_feature(cxx_atomic) || __has_extension(c_atomic) || __has_keyword(_Atomic)\n#define _LIBCPP_HAS_C_ATOMIC_IMP\n#elif _GNUC_VER > 407\n#define _LIBCPP_HAS_GCC_ATOMIC_IMP\n#endif\n\n#if (!defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_GCC_ATOMIC_IMP)) \\\n     || defined(_LIBCPP_HAS_NO_THREADS)\n#define _LIBCPP_HAS_NO_ATOMIC_HEADER\n#endif\n\n#ifndef _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n#define _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n#endif\n\n#if defined(_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS)\n#if defined(__clang__) && __has_attribute(acquire_capability)\n// Work around the attribute handling in clang.  When both __declspec and\n// __attribute__ are present, the processing goes awry preventing the definition\n// of the types.\n#if !defined(_LIBCPP_OBJECT_FORMAT_COFF)\n#define _LIBCPP_HAS_THREAD_SAFETY_ANNOTATIONS\n#endif\n#endif\n#endif\n\n#if __has_attribute(require_constant_initialization)\n#define _LIBCPP_SAFE_STATIC __attribute__((__require_constant_initialization__))\n#else\n#define _LIBCPP_SAFE_STATIC\n#endif\n\n#if !__has_builtin(__builtin_addressof) && _GNUC_VER < 700\n# define _LIBCPP_HAS_NO_BUILTIN_ADDRESSOF\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_OFF_T_FUNCTIONS)\n#if defined(_LIBCPP_MSVCRT) || defined(_NEWLIB_VERSION)\n#define _LIBCPP_HAS_NO_OFF_T_FUNCTIONS\n#endif\n#endif\n\n#if __has_attribute(diagnose_if) && !defined(_LIBCPP_DISABLE_ADDITIONAL_DIAGNOSTICS)\n# define _LIBCPP_DIAGNOSE_WARNING(...) \\\n    __attribute__((diagnose_if(__VA_ARGS__, \"warning\")))\n# define _LIBCPP_DIAGNOSE_ERROR(...) \\\n    __attribute__((diagnose_if(__VA_ARGS__, \"error\")))\n#else\n# define _LIBCPP_DIAGNOSE_WARNING(...)\n# define _LIBCPP_DIAGNOSE_ERROR(...)\n#endif\n\n#if __has_attribute(fallthough) || _GNUC_VER >= 700\n// Use a function like macro to imply that it must be followed by a semicolon\n#define _LIBCPP_FALLTHROUGH() __attribute__((__fallthrough__))\n#else\n#define _LIBCPP_FALLTHROUGH() ((void)0)\n#endif\n\n#if defined(_LIBCPP_ABI_MICROSOFT) && \\\n   (defined(_LIBCPP_COMPILER_MSVC) || __has_declspec_attribute(empty_bases))\n# define _LIBCPP_DECLSPEC_EMPTY_BASES __declspec(empty_bases)\n#else\n# define _LIBCPP_DECLSPEC_EMPTY_BASES\n#endif\n\n#if defined(_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES)\n# define _LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR\n# define _LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS\n# define _LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE\n# define _LIBCPP_ENABLE_CXX17_REMOVED_BINDERS\n#endif // _LIBCPP_ENABLE_CXX17_REMOVED_FEATURES\n\n#if !defined(__cpp_deduction_guides) || __cpp_deduction_guides < 201611\n# define _LIBCPP_HAS_NO_DEDUCTION_GUIDES\n#endif\n\n#if !__has_keyword(__is_aggregate) && (_GNUC_VER_NEW < 7001)\n# define _LIBCPP_HAS_NO_IS_AGGREGATE\n#endif\n\n#if !defined(__cpp_coroutines) || __cpp_coroutines < 201703L\n# define _LIBCPP_HAS_NO_COROUTINES\n#endif\n\n// Decide whether to use availability macros.\n#if !defined(_LIBCPP_BUILDING_LIBRARY) &&                                      \\\n    !defined(_LIBCPP_DISABLE_AVAILABILITY) &&                                  \\\n    __has_feature(attribute_availability_with_strict) &&                       \\\n    __has_feature(attribute_availability_in_templates)\n#ifdef __APPLE__\n#define _LIBCPP_USE_AVAILABILITY_APPLE\n#endif\n#endif\n\n// Define availability macros.\n#if defined(_LIBCPP_USE_AVAILABILITY_APPLE)\n#define _LIBCPP_AVAILABILITY_SHARED_MUTEX                                      \\\n  __attribute__((availability(macosx,strict,introduced=10.12)))                \\\n  __attribute__((availability(ios,strict,introduced=10.0)))                    \\\n  __attribute__((availability(tvos,strict,introduced=10.0)))                   \\\n  __attribute__((availability(watchos,strict,introduced=3.0)))\n#define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS __attribute__((unavailable))\n#define _LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH __attribute__((unavailable))\n#define _LIBCPP_AVAILABILITY_BAD_ANY_CAST __attribute__((unavailable))\n#define _LIBCPP_AVAILABILITY_UNCAUGHT_EXCEPTIONS                               \\\n  __attribute__((availability(macosx,strict,introduced=10.12)))                \\\n  __attribute__((availability(ios,strict,introduced=10.0)))                    \\\n  __attribute__((availability(tvos,strict,introduced=10.0)))                   \\\n  __attribute__((availability(watchos,strict,introduced=3.0)))\n#define _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE                                  \\\n  __attribute__((availability(macosx,strict,introduced=10.12)))                \\\n  __attribute__((availability(ios,strict,introduced=10.0)))                    \\\n  __attribute__((availability(tvos,strict,introduced=10.0)))                   \\\n  __attribute__((availability(watchos,strict,introduced=3.0)))\n#define _LIBCPP_AVAILABILITY_FUTURE_ERROR                                      \\\n  __attribute__((availability(ios,strict,introduced=6.0)))\n#define _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE                                   \\\n  __attribute__((availability(macosx,strict,introduced=10.9)))                 \\\n  __attribute__((availability(ios,strict,introduced=7.0)))\n#define _LIBCPP_AVAILABILITY_LOCALE_CATEGORY                                   \\\n  __attribute__((availability(macosx,strict,introduced=10.9)))                 \\\n  __attribute__((availability(ios,strict,introduced=7.0)))\n#define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR                                 \\\n  __attribute__((availability(macosx,strict,introduced=10.9)))                 \\\n  __attribute__((availability(ios,strict,introduced=7.0)))\n#else\n#define _LIBCPP_AVAILABILITY_SHARED_MUTEX\n#define _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS\n#define _LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH\n#define _LIBCPP_AVAILABILITY_BAD_ANY_CAST\n#define _LIBCPP_AVAILABILITY_UNCAUGHT_EXCEPTIONS\n#define _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE\n#define _LIBCPP_AVAILABILITY_FUTURE_ERROR\n#define _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE\n#define _LIBCPP_AVAILABILITY_LOCALE_CATEGORY\n#define _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\n#endif\n\n// Define availability that depends on _LIBCPP_NO_EXCEPTIONS.\n#ifdef _LIBCPP_NO_EXCEPTIONS\n#define _LIBCPP_AVAILABILITY_DYNARRAY\n#define _LIBCPP_AVAILABILITY_FUTURE\n#define _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST\n#else\n#define _LIBCPP_AVAILABILITY_DYNARRAY _LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH\n#define _LIBCPP_AVAILABILITY_FUTURE _LIBCPP_AVAILABILITY_FUTURE_ERROR\n#define _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST                                \\\n  _LIBCPP_AVAILABILITY_BAD_ANY_CAST\n#endif\n\n// Availability of stream API in the dylib got dropped and re-added.  The\n// extern template should effectively be available at:\n//    availability(macosx,introduced=10.9)\n//    availability(ios,introduced=7.0)\n#if defined(_LIBCPP_USE_AVAILABILITY_APPLE) &&                                 \\\n    ((defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) &&                \\\n      __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1090) ||                 \\\n     (defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) &&               \\\n      __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ < 70000))\n#define _LIBCPP_AVAILABILITY_NO_STREAMS_EXTERN_TEMPLATE\n#endif\n\n#if defined(_LIBCPP_COMPILER_IBM)\n#define _LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO\n#endif\n\n#if defined(_LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO)\n# define _LIBCPP_PUSH_MACROS\n# define _LIBCPP_POP_MACROS\n#else\n  // Don't warn about macro conflicts when we can restore them at the\n  // end of the header.\n# ifndef _LIBCPP_DISABLE_MACRO_CONFLICT_WARNINGS\n#   define _LIBCPP_DISABLE_MACRO_CONFLICT_WARNINGS\n# endif\n# if defined(_LIBCPP_COMPILER_MSVC)\n#   define _LIBCPP_PUSH_MACROS    \\\n      __pragma(push_macro(\"min\")) \\\n      __pragma(push_macro(\"max\"))\n#   define _LIBCPP_POP_MACROS     \\\n      __pragma(pop_macro(\"min\"))  \\\n      __pragma(pop_macro(\"max\"))\n# else\n#   define _LIBCPP_PUSH_MACROS        \\\n      _Pragma(\"push_macro(\\\"min\\\")\")  \\\n      _Pragma(\"push_macro(\\\"max\\\")\")\n#   define _LIBCPP_POP_MACROS         \\\n      _Pragma(\"pop_macro(\\\"min\\\")\")   \\\n      _Pragma(\"pop_macro(\\\"max\\\")\")\n# endif\n#endif // defined(_LIBCPP_HAS_NO_PRAGMA_PUSH_POP_MACRO)\n\n\n#endif // __cplusplus\n\n#endif // _LIBCPP_CONFIG\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__debug",
    "content": "// -*- C++ -*-\n//===--------------------------- __debug ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_DEBUG_H\n#define _LIBCPP_DEBUG_H\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#if defined(_LIBCPP_HAS_NO_NULLPTR)\n# include <cstddef>\n#endif\n\n#if _LIBCPP_DEBUG_LEVEL >= 1 || defined(_LIBCPP_BUILDING_LIBRARY)\n#   include <cstdlib>\n#   include <cstdio>\n#   include <cstddef>\n#   include <exception>\n#endif\n\n#if _LIBCPP_DEBUG_LEVEL >= 1 && !defined(_LIBCPP_ASSERT)\n# define _LIBCPP_ASSERT(x, m) ((x) ? (void)0 : \\\n  _VSTD::__libcpp_debug_function(_VSTD::__libcpp_debug_info(__FILE__, __LINE__, #x, m)))\n#endif\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n#ifndef _LIBCPP_DEBUG_ASSERT\n#define _LIBCPP_DEBUG_ASSERT(x, m) _LIBCPP_ASSERT(x, m)\n#endif\n#define _LIBCPP_DEBUG_MODE(...) __VA_ARGS__\n#endif\n\n#ifndef _LIBCPP_ASSERT\n#   define _LIBCPP_ASSERT(x, m) ((void)0)\n#endif\n#ifndef _LIBCPP_DEBUG_ASSERT\n#   define _LIBCPP_DEBUG_ASSERT(x, m) ((void)0)\n#endif\n#ifndef _LIBCPP_DEBUG_MODE\n#define _LIBCPP_DEBUG_MODE(...) ((void)0)\n#endif\n\n#if _LIBCPP_DEBUG_LEVEL < 1\nclass _LIBCPP_EXCEPTION_ABI __libcpp_debug_exception;\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nstruct _LIBCPP_TEMPLATE_VIS __libcpp_debug_info {\n  _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n  __libcpp_debug_info()\n      : __file_(nullptr), __line_(-1), __pred_(nullptr), __msg_(nullptr) {}\n  _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n  __libcpp_debug_info(const char* __f, int __l, const char* __p, const char* __m)\n    : __file_(__f), __line_(__l), __pred_(__p), __msg_(__m) {}\n  const char* __file_;\n  int __line_;\n  const char* __pred_;\n  const char* __msg_;\n};\n\n/// __libcpp_debug_function_type - The type of the assertion failure handler.\ntypedef void(*__libcpp_debug_function_type)(__libcpp_debug_info const&);\n\n/// __libcpp_debug_function - The handler function called when a _LIBCPP_ASSERT\n///    fails.\nextern _LIBCPP_EXTERN_VIS __libcpp_debug_function_type __libcpp_debug_function;\n\n/// __libcpp_abort_debug_function - A debug handler that aborts when called.\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS\nvoid __libcpp_abort_debug_function(__libcpp_debug_info const&);\n\n/// __libcpp_throw_debug_function - A debug handler that throws\n///   an instance of __libcpp_debug_exception when called.\n _LIBCPP_NORETURN _LIBCPP_FUNC_VIS\nvoid __libcpp_throw_debug_function(__libcpp_debug_info const&);\n\n/// __libcpp_set_debug_function - Set the debug handler to the specified\n///    function.\n_LIBCPP_FUNC_VIS\nbool __libcpp_set_debug_function(__libcpp_debug_function_type __func);\n\n// Setup the throwing debug handler during dynamic initialization.\n#if _LIBCPP_DEBUG_LEVEL >= 1 && defined(_LIBCPP_DEBUG_USE_EXCEPTIONS)\n# if defined(_LIBCPP_NO_EXCEPTIONS)\n#   error _LIBCPP_DEBUG_USE_EXCEPTIONS cannot be used when exceptions are disabled.\n# endif\nstatic bool __init_dummy = __libcpp_set_debug_function(__libcpp_throw_debug_function);\n#endif\n\n#if _LIBCPP_DEBUG_LEVEL >= 1 || defined(_LIBCPP_BUILDING_LIBRARY)\nclass _LIBCPP_EXCEPTION_ABI __libcpp_debug_exception : public exception {\npublic:\n  __libcpp_debug_exception() _NOEXCEPT;\n  explicit __libcpp_debug_exception(__libcpp_debug_info const& __i);\n  __libcpp_debug_exception(__libcpp_debug_exception const&);\n  ~__libcpp_debug_exception() _NOEXCEPT;\n  const char* what() const _NOEXCEPT;\nprivate:\n  struct __libcpp_debug_exception_imp;\n  __libcpp_debug_exception_imp *__imp_;\n};\n#endif\n\n#if _LIBCPP_DEBUG_LEVEL >= 2 || defined(_LIBCPP_BUILDING_LIBRARY)\n\nstruct _LIBCPP_TYPE_VIS __c_node;\n\nstruct _LIBCPP_TYPE_VIS __i_node\n{\n    void* __i_;\n    __i_node* __next_;\n    __c_node* __c_;\n\n#ifndef _LIBCPP_CXX03_LANG\n    __i_node(const __i_node&) = delete;\n    __i_node& operator=(const __i_node&) = delete;\n#else\nprivate:\n    __i_node(const __i_node&);\n    __i_node& operator=(const __i_node&);\npublic:\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    __i_node(void* __i, __i_node* __next, __c_node* __c)\n        : __i_(__i), __next_(__next), __c_(__c) {}\n    ~__i_node();\n};\n\nstruct _LIBCPP_TYPE_VIS __c_node\n{\n    void* __c_;\n    __c_node* __next_;\n    __i_node** beg_;\n    __i_node** end_;\n    __i_node** cap_;\n\n#ifndef _LIBCPP_CXX03_LANG\n    __c_node(const __c_node&) = delete;\n    __c_node& operator=(const __c_node&) = delete;\n#else\nprivate:\n    __c_node(const __c_node&);\n    __c_node& operator=(const __c_node&);\npublic:\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    __c_node(void* __c, __c_node* __next)\n        : __c_(__c), __next_(__next), beg_(nullptr), end_(nullptr), cap_(nullptr) {}\n    virtual ~__c_node();\n\n    virtual bool __dereferenceable(const void*) const = 0;\n    virtual bool __decrementable(const void*) const = 0;\n    virtual bool __addable(const void*, ptrdiff_t) const = 0;\n    virtual bool __subscriptable(const void*, ptrdiff_t) const = 0;\n\n    void __add(__i_node* __i);\n    _LIBCPP_HIDDEN void __remove(__i_node* __i);\n};\n\ntemplate <class _Cont>\nstruct _C_node\n    : public __c_node\n{\n    _C_node(void* __c, __c_node* __n)\n        : __c_node(__c, __n) {}\n\n    virtual bool __dereferenceable(const void*) const;\n    virtual bool __decrementable(const void*) const;\n    virtual bool __addable(const void*, ptrdiff_t) const;\n    virtual bool __subscriptable(const void*, ptrdiff_t) const;\n};\n\ntemplate <class _Cont>\ninline bool\n_C_node<_Cont>::__dereferenceable(const void* __i) const\n{\n    typedef typename _Cont::const_iterator iterator;\n    const iterator* __j = static_cast<const iterator*>(__i);\n    _Cont* _Cp = static_cast<_Cont*>(__c_);\n    return _Cp->__dereferenceable(__j);\n}\n\ntemplate <class _Cont>\ninline bool\n_C_node<_Cont>::__decrementable(const void* __i) const\n{\n    typedef typename _Cont::const_iterator iterator;\n    const iterator* __j = static_cast<const iterator*>(__i);\n    _Cont* _Cp = static_cast<_Cont*>(__c_);\n    return _Cp->__decrementable(__j);\n}\n\ntemplate <class _Cont>\ninline bool\n_C_node<_Cont>::__addable(const void* __i, ptrdiff_t __n) const\n{\n    typedef typename _Cont::const_iterator iterator;\n    const iterator* __j = static_cast<const iterator*>(__i);\n    _Cont* _Cp = static_cast<_Cont*>(__c_);\n    return _Cp->__addable(__j, __n);\n}\n\ntemplate <class _Cont>\ninline bool\n_C_node<_Cont>::__subscriptable(const void* __i, ptrdiff_t __n) const\n{\n    typedef typename _Cont::const_iterator iterator;\n    const iterator* __j = static_cast<const iterator*>(__i);\n    _Cont* _Cp = static_cast<_Cont*>(__c_);\n    return _Cp->__subscriptable(__j, __n);\n}\n\nclass _LIBCPP_TYPE_VIS __libcpp_db\n{\n    __c_node** __cbeg_;\n    __c_node** __cend_;\n    size_t   __csz_;\n    __i_node** __ibeg_;\n    __i_node** __iend_;\n    size_t   __isz_;\n\n    __libcpp_db();\npublic:\n#ifndef _LIBCPP_CXX03_LANG\n    __libcpp_db(const __libcpp_db&) = delete;\n    __libcpp_db& operator=(const __libcpp_db&) = delete;\n#else\nprivate:\n    __libcpp_db(const __libcpp_db&);\n    __libcpp_db& operator=(const __libcpp_db&);\npublic:\n#endif\n    ~__libcpp_db();\n\n    class __db_c_iterator;\n    class __db_c_const_iterator;\n    class __db_i_iterator;\n    class __db_i_const_iterator;\n\n    __db_c_const_iterator __c_end() const;\n    __db_i_const_iterator __i_end() const;\n\n    template <class _Cont>\n    _LIBCPP_INLINE_VISIBILITY\n    void __insert_c(_Cont* __c)\n    {\n        __c_node* __n = __insert_c(static_cast<void*>(__c));\n        ::new(__n) _C_node<_Cont>(__n->__c_, __n->__next_);\n    }\n\n    void __insert_i(void* __i);\n    __c_node* __insert_c(void* __c);\n    void __erase_c(void* __c);\n\n    void __insert_ic(void* __i, const void* __c);\n    void __iterator_copy(void* __i, const void* __i0);\n    void __erase_i(void* __i);\n\n    void* __find_c_from_i(void* __i) const;\n    void __invalidate_all(void* __c);\n    __c_node* __find_c_and_lock(void* __c) const;\n    __c_node* __find_c(void* __c) const;\n    void unlock() const;\n\n    void swap(void* __c1, void* __c2);\n\n\n    bool __dereferenceable(const void* __i) const;\n    bool __decrementable(const void* __i) const;\n    bool __addable(const void* __i, ptrdiff_t __n) const;\n    bool __subscriptable(const void* __i, ptrdiff_t __n) const;\n    bool __less_than_comparable(const void* __i, const void* __j) const;\nprivate:\n    _LIBCPP_HIDDEN\n    __i_node* __insert_iterator(void* __i);\n    _LIBCPP_HIDDEN\n    __i_node* __find_iterator(const void* __i) const;\n\n    friend _LIBCPP_FUNC_VIS __libcpp_db* __get_db();\n};\n\n_LIBCPP_FUNC_VIS __libcpp_db* __get_db();\n_LIBCPP_FUNC_VIS const __libcpp_db* __get_const_db();\n\n\n#endif // _LIBCPP_DEBUG_LEVEL >= 2 || defined(_LIBCPP_BUILDING_LIBRARY)\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_DEBUG_H\n\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_03",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_FUNCTIONAL_03\n#define _LIBCPP_FUNCTIONAL_03\n\n// manual variadic expansion for <functional>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\nnamespace __function {\n\ntemplate<class _Fp> class __base;\n\ntemplate<class _Rp>\nclass __base<_Rp()>\n{\n    __base(const __base&);\n    __base& operator=(const __base&);\npublic:\n    __base() {}\n    virtual ~__base() {}\n    virtual __base* __clone() const = 0;\n    virtual void __clone(__base*) const = 0;\n    virtual void destroy() = 0;\n    virtual void destroy_deallocate() = 0;\n    virtual _Rp operator()() = 0;\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const = 0;\n    virtual const std::type_info& target_type() const = 0;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Rp, class _A0>\nclass __base<_Rp(_A0)>\n{\n    __base(const __base&);\n    __base& operator=(const __base&);\npublic:\n    __base() {}\n    virtual ~__base() {}\n    virtual __base* __clone() const = 0;\n    virtual void __clone(__base*) const = 0;\n    virtual void destroy() = 0;\n    virtual void destroy_deallocate() = 0;\n    virtual _Rp operator()(_A0) = 0;\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const = 0;\n    virtual const std::type_info& target_type() const = 0;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Rp, class _A0, class _A1>\nclass __base<_Rp(_A0, _A1)>\n{\n    __base(const __base&);\n    __base& operator=(const __base&);\npublic:\n    __base() {}\n    virtual ~__base() {}\n    virtual __base* __clone() const = 0;\n    virtual void __clone(__base*) const = 0;\n    virtual void destroy() = 0;\n    virtual void destroy_deallocate() = 0;\n    virtual _Rp operator()(_A0, _A1) = 0;\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const = 0;\n    virtual const std::type_info& target_type() const = 0;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\nclass __base<_Rp(_A0, _A1, _A2)>\n{\n    __base(const __base&);\n    __base& operator=(const __base&);\npublic:\n    __base() {}\n    virtual ~__base() {}\n    virtual __base* __clone() const = 0;\n    virtual void __clone(__base*) const = 0;\n    virtual void destroy() = 0;\n    virtual void destroy_deallocate() = 0;\n    virtual _Rp operator()(_A0, _A1, _A2) = 0;\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const = 0;\n    virtual const std::type_info& target_type() const = 0;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _FD, class _Alloc, class _FB> class __func;\n\ntemplate<class _Fp, class _Alloc, class _Rp>\nclass __func<_Fp, _Alloc, _Rp()>\n    : public  __base<_Rp()>\n{\n    __compressed_pair<_Fp, _Alloc> __f_;\npublic:\n    explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {}\n    explicit __func(_Fp __f, _Alloc __a) : __f_(_VSTD::move(__f), _VSTD::move(__a)) {}\n    virtual __base<_Rp()>* __clone() const;\n    virtual void __clone(__base<_Rp()>*) const;\n    virtual void destroy();\n    virtual void destroy_deallocate();\n    virtual _Rp operator()();\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const;\n    virtual const std::type_info& target_type() const;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Fp, class _Alloc, class _Rp>\n__base<_Rp()>*\n__func<_Fp, _Alloc, _Rp()>::__clone() const\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    typedef __allocator_destructor<_Ap> _Dp;\n    unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n    ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));\n    return __hold.release();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp>\nvoid\n__func<_Fp, _Alloc, _Rp()>::__clone(__base<_Rp()>* __p) const\n{\n    ::new (__p) __func(__f_.first(), __f_.second());\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp>\nvoid\n__func<_Fp, _Alloc, _Rp()>::destroy()\n{\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp>\nvoid\n__func<_Fp, _Alloc, _Rp()>::destroy_deallocate()\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n    __a.deallocate(this, 1);\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp>\n_Rp\n__func<_Fp, _Alloc, _Rp()>::operator()()\n{\n    typedef __invoke_void_return_wrapper<_Rp> _Invoker;\n    return _Invoker::__call(__f_.first());\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Fp, class _Alloc, class _Rp>\nconst void*\n__func<_Fp, _Alloc, _Rp()>::target(const type_info& __ti) const\n{\n    if (__ti == typeid(_Fp))\n        return &__f_.first();\n    return (const void*)0;\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp>\nconst std::type_info&\n__func<_Fp, _Alloc, _Rp()>::target_type() const\n{\n    return typeid(_Fp);\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0>\nclass __func<_Fp, _Alloc, _Rp(_A0)>\n    : public  __base<_Rp(_A0)>\n{\n    __compressed_pair<_Fp, _Alloc> __f_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {}\n    _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a)\n        : __f_(_VSTD::move(__f), _VSTD::move(__a)) {}\n    virtual __base<_Rp(_A0)>* __clone() const;\n    virtual void __clone(__base<_Rp(_A0)>*) const;\n    virtual void destroy();\n    virtual void destroy_deallocate();\n    virtual _Rp operator()(_A0);\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const;\n    virtual const std::type_info& target_type() const;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0>\n__base<_Rp(_A0)>*\n__func<_Fp, _Alloc, _Rp(_A0)>::__clone() const\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    typedef __allocator_destructor<_Ap> _Dp;\n    unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n    ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));\n    return __hold.release();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0)>::__clone(__base<_Rp(_A0)>* __p) const\n{\n    ::new (__p) __func(__f_.first(), __f_.second());\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0)>::destroy()\n{\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0)>::destroy_deallocate()\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n    __a.deallocate(this, 1);\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0>\n_Rp\n__func<_Fp, _Alloc, _Rp(_A0)>::operator()(_A0 __a0)\n{\n    typedef __invoke_void_return_wrapper<_Rp> _Invoker;\n    return _Invoker::__call(__f_.first(), __a0);\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0>\nconst void*\n__func<_Fp, _Alloc, _Rp(_A0)>::target(const type_info& __ti) const\n{\n    if (__ti == typeid(_Fp))\n        return &__f_.first();\n    return (const void*)0;\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0>\nconst std::type_info&\n__func<_Fp, _Alloc, _Rp(_A0)>::target_type() const\n{\n    return typeid(_Fp);\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>\nclass __func<_Fp, _Alloc, _Rp(_A0, _A1)>\n    : public  __base<_Rp(_A0, _A1)>\n{\n    __compressed_pair<_Fp, _Alloc> __f_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {}\n    _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a)\n        : __f_(_VSTD::move(__f), _VSTD::move(__a)) {}\n    virtual __base<_Rp(_A0, _A1)>* __clone() const;\n    virtual void __clone(__base<_Rp(_A0, _A1)>*) const;\n    virtual void destroy();\n    virtual void destroy_deallocate();\n    virtual _Rp operator()(_A0, _A1);\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const;\n    virtual const std::type_info& target_type() const;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>\n__base<_Rp(_A0, _A1)>*\n__func<_Fp, _Alloc, _Rp(_A0, _A1)>::__clone() const\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    typedef __allocator_destructor<_Ap> _Dp;\n    unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n    ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));\n    return __hold.release();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0, _A1)>::__clone(__base<_Rp(_A0, _A1)>* __p) const\n{\n    ::new (__p) __func(__f_.first(), __f_.second());\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0, _A1)>::destroy()\n{\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0, _A1)>::destroy_deallocate()\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n    __a.deallocate(this, 1);\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>\n_Rp\n__func<_Fp, _Alloc, _Rp(_A0, _A1)>::operator()(_A0 __a0, _A1 __a1)\n{\n    typedef __invoke_void_return_wrapper<_Rp> _Invoker;\n    return _Invoker::__call(__f_.first(), __a0, __a1);\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>\nconst void*\n__func<_Fp, _Alloc, _Rp(_A0, _A1)>::target(const type_info& __ti) const\n{\n    if (__ti == typeid(_Fp))\n        return &__f_.first();\n    return (const void*)0;\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1>\nconst std::type_info&\n__func<_Fp, _Alloc, _Rp(_A0, _A1)>::target_type() const\n{\n    return typeid(_Fp);\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>\nclass __func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>\n    : public  __base<_Rp(_A0, _A1, _A2)>\n{\n    __compressed_pair<_Fp, _Alloc> __f_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f) : __f_(_VSTD::move(__f)) {}\n    _LIBCPP_INLINE_VISIBILITY explicit __func(_Fp __f, _Alloc __a)\n        : __f_(_VSTD::move(__f), _VSTD::move(__a)) {}\n    virtual __base<_Rp(_A0, _A1, _A2)>* __clone() const;\n    virtual void __clone(__base<_Rp(_A0, _A1, _A2)>*) const;\n    virtual void destroy();\n    virtual void destroy_deallocate();\n    virtual _Rp operator()(_A0, _A1, _A2);\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const;\n    virtual const std::type_info& target_type() const;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>\n__base<_Rp(_A0, _A1, _A2)>*\n__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::__clone() const\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    typedef __allocator_destructor<_Ap> _Dp;\n    unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n    ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));\n    return __hold.release();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::__clone(__base<_Rp(_A0, _A1, _A2)>* __p) const\n{\n    ::new (__p) __func(__f_.first(), __f_.second());\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::destroy()\n{\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>\nvoid\n__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::destroy_deallocate()\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n    __a.deallocate(this, 1);\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>\n_Rp\n__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::operator()(_A0 __a0, _A1 __a1, _A2 __a2)\n{\n    typedef __invoke_void_return_wrapper<_Rp> _Invoker;\n    return _Invoker::__call(__f_.first(), __a0, __a1, __a2);\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>\nconst void*\n__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target(const type_info& __ti) const\n{\n    if (__ti == typeid(_Fp))\n        return &__f_.first();\n    return (const void*)0;\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class _A0, class _A1, class _A2>\nconst std::type_info&\n__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)>::target_type() const\n{\n    return typeid(_Fp);\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\n}  // __function\n\ntemplate<class _Rp>\nclass _LIBCPP_TEMPLATE_VIS function<_Rp()>\n{\n    typedef __function::__base<_Rp()> __base;\n    aligned_storage<3*sizeof(void*)>::type __buf_;\n    __base* __f_;\n\npublic:\n    typedef _Rp result_type;\n\n    // 20.7.16.2.1, construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {}\n    _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {}\n    function(const function&);\n    template<class _Fp>\n      function(_Fp,\n               typename enable_if<!is_integral<_Fp>::value>::type* = 0);\n\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&) : __f_(0) {}\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {}\n    template<class _Alloc>\n      function(allocator_arg_t, const _Alloc&, const function&);\n    template<class _Fp, class _Alloc>\n      function(allocator_arg_t, const _Alloc& __a, _Fp __f,\n               typename enable_if<!is_integral<_Fp>::value>::type* = 0);\n\n    function& operator=(const function&);\n    function& operator=(nullptr_t);\n    template<class _Fp>\n      typename enable_if\n      <\n        !is_integral<_Fp>::value,\n        function&\n      >::type\n      operator=(_Fp);\n\n    ~function();\n\n    // 20.7.16.2.2, function modifiers:\n    void swap(function&);\n    template<class _Fp, class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      void assign(_Fp __f, const _Alloc& __a)\n        {function(allocator_arg, __a, __f).swap(*this);}\n\n    // 20.7.16.2.3, function capacity:\n    _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;}\n\nprivate:\n    // deleted overloads close possible hole in the type system\n    template<class _R2>\n      bool operator==(const function<_R2()>&) const;// = delete;\n    template<class _R2>\n      bool operator!=(const function<_R2()>&) const;// = delete;\npublic:\n    // 20.7.16.2.4, function invocation:\n    _Rp operator()() const;\n\n#ifndef _LIBCPP_NO_RTTI\n    // 20.7.16.2.5, function target access:\n    const std::type_info& target_type() const;\n    template <typename _Tp> _Tp* target();\n    template <typename _Tp> const _Tp* target() const;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Rp>\nfunction<_Rp()>::function(const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if (__f.__f_ == (const __base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\ntemplate<class _Rp>\ntemplate<class _Alloc>\nfunction<_Rp()>::function(allocator_arg_t, const _Alloc&, const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if (__f.__f_ == (const __base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\ntemplate<class _Rp>\ntemplate <class _Fp>\nfunction<_Rp()>::function(_Fp __f,\n                                     typename enable_if<!is_integral<_Fp>::value>::type*)\n    : __f_(0)\n{\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, allocator<_Fp>, _Rp()> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_))\n        {\n            __f_ = (__base*)&__buf_;\n            ::new (__f_) _FF(__f);\n        }\n        else\n        {\n            typedef allocator<_FF> _Ap;\n            _Ap __a;\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\ntemplate<class _Rp>\ntemplate <class _Fp, class _Alloc>\nfunction<_Rp()>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f,\n                                     typename enable_if<!is_integral<_Fp>::value>::type*)\n    : __f_(0)\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, _Alloc, _Rp()> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_))\n        {\n            __f_ = (__base*)&__buf_;\n            ::new (__f_) _FF(__f, __a0);\n        }\n        else\n        {\n            typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap;\n            _Ap __a(__a0);\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(__f, _Alloc(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\ntemplate<class _Rp>\nfunction<_Rp()>&\nfunction<_Rp()>::operator=(const function& __f)\n{\n    function(__f).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp>\nfunction<_Rp()>&\nfunction<_Rp()>::operator=(nullptr_t)\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n    __f_ = 0;\n    return *this;\n}\n\ntemplate<class _Rp>\ntemplate <class _Fp>\ntypename enable_if\n<\n    !is_integral<_Fp>::value,\n    function<_Rp()>&\n>::type\nfunction<_Rp()>::operator=(_Fp __f)\n{\n    function(_VSTD::move(__f)).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp>\nfunction<_Rp()>::~function()\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n}\n\ntemplate<class _Rp>\nvoid\nfunction<_Rp()>::swap(function& __f)\n{\n    if (_VSTD::addressof(__f) == this)\n      return;\n    if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)\n    {\n        typename aligned_storage<sizeof(__buf_)>::type __tempbuf;\n        __base* __t = (__base*)&__tempbuf;\n        __f_->__clone(__t);\n        __f_->destroy();\n        __f_ = 0;\n        __f.__f_->__clone((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = 0;\n        __f_ = (__base*)&__buf_;\n        __t->__clone((__base*)&__f.__buf_);\n        __t->destroy();\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f_ == (__base*)&__buf_)\n    {\n        __f_->__clone((__base*)&__f.__buf_);\n        __f_->destroy();\n        __f_ = __f.__f_;\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f.__f_ == (__base*)&__f.__buf_)\n    {\n        __f.__f_->__clone((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = __f_;\n        __f_ = (__base*)&__buf_;\n    }\n    else\n        _VSTD::swap(__f_, __f.__f_);\n}\n\ntemplate<class _Rp>\n_Rp\nfunction<_Rp()>::operator()() const\n{\n    if (__f_ == 0)\n        __throw_bad_function_call();\n    return (*__f_)();\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Rp>\nconst std::type_info&\nfunction<_Rp()>::target_type() const\n{\n    if (__f_ == 0)\n        return typeid(void);\n    return __f_->target_type();\n}\n\ntemplate<class _Rp>\ntemplate <typename _Tp>\n_Tp*\nfunction<_Rp()>::target()\n{\n    if (__f_ == 0)\n        return (_Tp*)0;\n    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));\n}\n\ntemplate<class _Rp>\ntemplate <typename _Tp>\nconst _Tp*\nfunction<_Rp()>::target() const\n{\n    if (__f_ == 0)\n        return (const _Tp*)0;\n    return (const _Tp*)__f_->target(typeid(_Tp));\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate<class _Rp, class _A0>\nclass _LIBCPP_TEMPLATE_VIS function<_Rp(_A0)>\n    : public unary_function<_A0, _Rp>\n{\n    typedef __function::__base<_Rp(_A0)> __base;\n    aligned_storage<3*sizeof(void*)>::type __buf_;\n    __base* __f_;\n\npublic:\n    typedef _Rp result_type;\n\n    // 20.7.16.2.1, construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {}\n    _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {}\n    function(const function&);\n    template<class _Fp>\n      function(_Fp,\n               typename enable_if<!is_integral<_Fp>::value>::type* = 0);\n\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&) : __f_(0) {}\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {}\n    template<class _Alloc>\n      function(allocator_arg_t, const _Alloc&, const function&);\n    template<class _Fp, class _Alloc>\n      function(allocator_arg_t, const _Alloc& __a, _Fp __f,\n               typename enable_if<!is_integral<_Fp>::value>::type* = 0);\n\n    function& operator=(const function&);\n    function& operator=(nullptr_t);\n    template<class _Fp>\n      typename enable_if\n      <\n        !is_integral<_Fp>::value,\n        function&\n      >::type\n      operator=(_Fp);\n\n    ~function();\n\n    // 20.7.16.2.2, function modifiers:\n    void swap(function&);\n    template<class _Fp, class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      void assign(_Fp __f, const _Alloc& __a)\n        {function(allocator_arg, __a, __f).swap(*this);}\n\n    // 20.7.16.2.3, function capacity:\n    _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;}\n\nprivate:\n    // deleted overloads close possible hole in the type system\n    template<class _R2, class _B0>\n      bool operator==(const function<_R2(_B0)>&) const;// = delete;\n    template<class _R2, class _B0>\n      bool operator!=(const function<_R2(_B0)>&) const;// = delete;\npublic:\n    // 20.7.16.2.4, function invocation:\n    _Rp operator()(_A0) const;\n\n#ifndef _LIBCPP_NO_RTTI\n    // 20.7.16.2.5, function target access:\n    const std::type_info& target_type() const;\n    template <typename _Tp> _Tp* target();\n    template <typename _Tp> const _Tp* target() const;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Rp, class _A0>\nfunction<_Rp(_A0)>::function(const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if (__f.__f_ == (const __base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\ntemplate<class _Rp, class _A0>\ntemplate<class _Alloc>\nfunction<_Rp(_A0)>::function(allocator_arg_t, const _Alloc&, const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if (__f.__f_ == (const __base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\ntemplate<class _Rp, class _A0>\ntemplate <class _Fp>\nfunction<_Rp(_A0)>::function(_Fp __f,\n                                     typename enable_if<!is_integral<_Fp>::value>::type*)\n    : __f_(0)\n{\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0)> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_))\n        {\n            __f_ = (__base*)&__buf_;\n            ::new (__f_) _FF(__f);\n        }\n        else\n        {\n            typedef allocator<_FF> _Ap;\n            _Ap __a;\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\ntemplate<class _Rp, class _A0>\ntemplate <class _Fp, class _Alloc>\nfunction<_Rp(_A0)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f,\n                                     typename enable_if<!is_integral<_Fp>::value>::type*)\n    : __f_(0)\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, _Alloc, _Rp(_A0)> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_))\n        {\n            __f_ = (__base*)&__buf_;\n            ::new (__f_) _FF(__f, __a0);\n        }\n        else\n        {\n            typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap;\n            _Ap __a(__a0);\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(__f, _Alloc(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\ntemplate<class _Rp, class _A0>\nfunction<_Rp(_A0)>&\nfunction<_Rp(_A0)>::operator=(const function& __f)\n{\n    function(__f).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp, class _A0>\nfunction<_Rp(_A0)>&\nfunction<_Rp(_A0)>::operator=(nullptr_t)\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n    __f_ = 0;\n    return *this;\n}\n\ntemplate<class _Rp, class _A0>\ntemplate <class _Fp>\ntypename enable_if\n<\n    !is_integral<_Fp>::value,\n    function<_Rp(_A0)>&\n>::type\nfunction<_Rp(_A0)>::operator=(_Fp __f)\n{\n    function(_VSTD::move(__f)).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp, class _A0>\nfunction<_Rp(_A0)>::~function()\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n}\n\ntemplate<class _Rp, class _A0>\nvoid\nfunction<_Rp(_A0)>::swap(function& __f)\n{\n    if (_VSTD::addressof(__f) == this)\n      return;\n    if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)\n    {\n        typename aligned_storage<sizeof(__buf_)>::type __tempbuf;\n        __base* __t = (__base*)&__tempbuf;\n        __f_->__clone(__t);\n        __f_->destroy();\n        __f_ = 0;\n        __f.__f_->__clone((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = 0;\n        __f_ = (__base*)&__buf_;\n        __t->__clone((__base*)&__f.__buf_);\n        __t->destroy();\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f_ == (__base*)&__buf_)\n    {\n        __f_->__clone((__base*)&__f.__buf_);\n        __f_->destroy();\n        __f_ = __f.__f_;\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f.__f_ == (__base*)&__f.__buf_)\n    {\n        __f.__f_->__clone((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = __f_;\n        __f_ = (__base*)&__buf_;\n    }\n    else\n        _VSTD::swap(__f_, __f.__f_);\n}\n\ntemplate<class _Rp, class _A0>\n_Rp\nfunction<_Rp(_A0)>::operator()(_A0 __a0) const\n{\n    if (__f_ == 0)\n        __throw_bad_function_call();\n    return (*__f_)(__a0);\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Rp, class _A0>\nconst std::type_info&\nfunction<_Rp(_A0)>::target_type() const\n{\n    if (__f_ == 0)\n        return typeid(void);\n    return __f_->target_type();\n}\n\ntemplate<class _Rp, class _A0>\ntemplate <typename _Tp>\n_Tp*\nfunction<_Rp(_A0)>::target()\n{\n    if (__f_ == 0)\n        return (_Tp*)0;\n    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));\n}\n\ntemplate<class _Rp, class _A0>\ntemplate <typename _Tp>\nconst _Tp*\nfunction<_Rp(_A0)>::target() const\n{\n    if (__f_ == 0)\n        return (const _Tp*)0;\n    return (const _Tp*)__f_->target(typeid(_Tp));\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate<class _Rp, class _A0, class _A1>\nclass _LIBCPP_TEMPLATE_VIS function<_Rp(_A0, _A1)>\n    : public binary_function<_A0, _A1, _Rp>\n{\n    typedef __function::__base<_Rp(_A0, _A1)> __base;\n    aligned_storage<3*sizeof(void*)>::type __buf_;\n    __base* __f_;\n\npublic:\n    typedef _Rp result_type;\n\n    // 20.7.16.2.1, construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {}\n    _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {}\n    function(const function&);\n    template<class _Fp>\n      function(_Fp,\n               typename enable_if<!is_integral<_Fp>::value>::type* = 0);\n\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&) : __f_(0) {}\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {}\n    template<class _Alloc>\n      function(allocator_arg_t, const _Alloc&, const function&);\n    template<class _Fp, class _Alloc>\n      function(allocator_arg_t, const _Alloc& __a, _Fp __f,\n               typename enable_if<!is_integral<_Fp>::value>::type* = 0);\n\n    function& operator=(const function&);\n    function& operator=(nullptr_t);\n    template<class _Fp>\n      typename enable_if\n      <\n        !is_integral<_Fp>::value,\n        function&\n      >::type\n      operator=(_Fp);\n\n    ~function();\n\n    // 20.7.16.2.2, function modifiers:\n    void swap(function&);\n    template<class _Fp, class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      void assign(_Fp __f, const _Alloc& __a)\n        {function(allocator_arg, __a, __f).swap(*this);}\n\n    // 20.7.16.2.3, function capacity:\n    operator bool() const {return __f_;}\n\nprivate:\n    // deleted overloads close possible hole in the type system\n    template<class _R2, class _B0, class _B1>\n      bool operator==(const function<_R2(_B0, _B1)>&) const;// = delete;\n    template<class _R2, class _B0, class _B1>\n      bool operator!=(const function<_R2(_B0, _B1)>&) const;// = delete;\npublic:\n    // 20.7.16.2.4, function invocation:\n    _Rp operator()(_A0, _A1) const;\n\n#ifndef _LIBCPP_NO_RTTI\n    // 20.7.16.2.5, function target access:\n    const std::type_info& target_type() const;\n    template <typename _Tp> _Tp* target();\n    template <typename _Tp> const _Tp* target() const;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Rp, class _A0, class _A1>\nfunction<_Rp(_A0, _A1)>::function(const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if (__f.__f_ == (const __base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\ntemplate<class _Rp, class _A0, class _A1>\ntemplate<class _Alloc>\nfunction<_Rp(_A0, _A1)>::function(allocator_arg_t, const _Alloc&, const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if (__f.__f_ == (const __base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\ntemplate<class _Rp, class _A0, class _A1>\ntemplate <class _Fp>\nfunction<_Rp(_A0, _A1)>::function(_Fp __f,\n                                 typename enable_if<!is_integral<_Fp>::value>::type*)\n    : __f_(0)\n{\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0, _A1)> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_))\n        {\n            __f_ = (__base*)&__buf_;\n            ::new (__f_) _FF(__f);\n        }\n        else\n        {\n            typedef allocator<_FF> _Ap;\n            _Ap __a;\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\ntemplate<class _Rp, class _A0, class _A1>\ntemplate <class _Fp, class _Alloc>\nfunction<_Rp(_A0, _A1)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f,\n                                 typename enable_if<!is_integral<_Fp>::value>::type*)\n    : __f_(0)\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, _Alloc, _Rp(_A0, _A1)> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_))\n        {\n            __f_ = (__base*)&__buf_;\n            ::new (__f_) _FF(__f, __a0);\n        }\n        else\n        {\n            typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap;\n            _Ap __a(__a0);\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(__f, _Alloc(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\ntemplate<class _Rp, class _A0, class _A1>\nfunction<_Rp(_A0, _A1)>&\nfunction<_Rp(_A0, _A1)>::operator=(const function& __f)\n{\n    function(__f).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp, class _A0, class _A1>\nfunction<_Rp(_A0, _A1)>&\nfunction<_Rp(_A0, _A1)>::operator=(nullptr_t)\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n    __f_ = 0;\n    return *this;\n}\n\ntemplate<class _Rp, class _A0, class _A1>\ntemplate <class _Fp>\ntypename enable_if\n<\n    !is_integral<_Fp>::value,\n    function<_Rp(_A0, _A1)>&\n>::type\nfunction<_Rp(_A0, _A1)>::operator=(_Fp __f)\n{\n    function(_VSTD::move(__f)).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp, class _A0, class _A1>\nfunction<_Rp(_A0, _A1)>::~function()\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n}\n\ntemplate<class _Rp, class _A0, class _A1>\nvoid\nfunction<_Rp(_A0, _A1)>::swap(function& __f)\n{\n    if (_VSTD::addressof(__f) == this)\n      return;\n    if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)\n    {\n        typename aligned_storage<sizeof(__buf_)>::type __tempbuf;\n        __base* __t = (__base*)&__tempbuf;\n        __f_->__clone(__t);\n        __f_->destroy();\n        __f_ = 0;\n        __f.__f_->__clone((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = 0;\n        __f_ = (__base*)&__buf_;\n        __t->__clone((__base*)&__f.__buf_);\n        __t->destroy();\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f_ == (__base*)&__buf_)\n    {\n        __f_->__clone((__base*)&__f.__buf_);\n        __f_->destroy();\n        __f_ = __f.__f_;\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f.__f_ == (__base*)&__f.__buf_)\n    {\n        __f.__f_->__clone((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = __f_;\n        __f_ = (__base*)&__buf_;\n    }\n    else\n        _VSTD::swap(__f_, __f.__f_);\n}\n\ntemplate<class _Rp, class _A0, class _A1>\n_Rp\nfunction<_Rp(_A0, _A1)>::operator()(_A0 __a0, _A1 __a1) const\n{\n    if (__f_ == 0)\n        __throw_bad_function_call();\n    return (*__f_)(__a0, __a1);\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Rp, class _A0, class _A1>\nconst std::type_info&\nfunction<_Rp(_A0, _A1)>::target_type() const\n{\n    if (__f_ == 0)\n        return typeid(void);\n    return __f_->target_type();\n}\n\ntemplate<class _Rp, class _A0, class _A1>\ntemplate <typename _Tp>\n_Tp*\nfunction<_Rp(_A0, _A1)>::target()\n{\n    if (__f_ == 0)\n        return (_Tp*)0;\n    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));\n}\n\ntemplate<class _Rp, class _A0, class _A1>\ntemplate <typename _Tp>\nconst _Tp*\nfunction<_Rp(_A0, _A1)>::target() const\n{\n    if (__f_ == 0)\n        return (const _Tp*)0;\n    return (const _Tp*)__f_->target(typeid(_Tp));\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\nclass _LIBCPP_TEMPLATE_VIS function<_Rp(_A0, _A1, _A2)>\n{\n    typedef __function::__base<_Rp(_A0, _A1, _A2)> __base;\n    aligned_storage<3*sizeof(void*)>::type __buf_;\n    __base* __f_;\n\npublic:\n    typedef _Rp result_type;\n\n    // 20.7.16.2.1, construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY explicit function() : __f_(0) {}\n    _LIBCPP_INLINE_VISIBILITY function(nullptr_t) : __f_(0) {}\n    function(const function&);\n    template<class _Fp>\n      function(_Fp,\n               typename enable_if<!is_integral<_Fp>::value>::type* = 0);\n\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&) : __f_(0) {}\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&, nullptr_t) : __f_(0) {}\n    template<class _Alloc>\n      function(allocator_arg_t, const _Alloc&, const function&);\n    template<class _Fp, class _Alloc>\n      function(allocator_arg_t, const _Alloc& __a, _Fp __f,\n               typename enable_if<!is_integral<_Fp>::value>::type* = 0);\n\n    function& operator=(const function&);\n    function& operator=(nullptr_t);\n    template<class _Fp>\n      typename enable_if\n      <\n        !is_integral<_Fp>::value,\n        function&\n      >::type\n      operator=(_Fp);\n\n    ~function();\n\n    // 20.7.16.2.2, function modifiers:\n    void swap(function&);\n    template<class _Fp, class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      void assign(_Fp __f, const _Alloc& __a)\n        {function(allocator_arg, __a, __f).swap(*this);}\n\n    // 20.7.16.2.3, function capacity:\n    _LIBCPP_INLINE_VISIBILITY operator bool() const {return __f_;}\n\nprivate:\n    // deleted overloads close possible hole in the type system\n    template<class _R2, class _B0, class _B1, class _B2>\n      bool operator==(const function<_R2(_B0, _B1, _B2)>&) const;// = delete;\n    template<class _R2, class _B0, class _B1, class _B2>\n      bool operator!=(const function<_R2(_B0, _B1, _B2)>&) const;// = delete;\npublic:\n    // 20.7.16.2.4, function invocation:\n    _Rp operator()(_A0, _A1, _A2) const;\n\n#ifndef _LIBCPP_NO_RTTI\n    // 20.7.16.2.5, function target access:\n    const std::type_info& target_type() const;\n    template <typename _Tp> _Tp* target();\n    template <typename _Tp> const _Tp* target() const;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\nfunction<_Rp(_A0, _A1, _A2)>::function(const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if (__f.__f_ == (const __base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\ntemplate<class _Alloc>\nfunction<_Rp(_A0, _A1, _A2)>::function(allocator_arg_t, const _Alloc&,\n                                      const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if (__f.__f_ == (const __base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\ntemplate <class _Fp>\nfunction<_Rp(_A0, _A1, _A2)>::function(_Fp __f,\n                                     typename enable_if<!is_integral<_Fp>::value>::type*)\n    : __f_(0)\n{\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_A0, _A1, _A2)> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_))\n        {\n            __f_ = (__base*)&__buf_;\n            ::new (__f_) _FF(__f);\n        }\n        else\n        {\n            typedef allocator<_FF> _Ap;\n            _Ap __a;\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(__f, allocator<_Fp>(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\ntemplate <class _Fp, class _Alloc>\nfunction<_Rp(_A0, _A1, _A2)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f,\n                                     typename enable_if<!is_integral<_Fp>::value>::type*)\n    : __f_(0)\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, _Alloc, _Rp(_A0, _A1, _A2)> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_))\n        {\n            __f_ = (__base*)&__buf_;\n            ::new (__f_) _FF(__f, __a0);\n        }\n        else\n        {\n            typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap;\n            _Ap __a(__a0);\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(__f, _Alloc(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\nfunction<_Rp(_A0, _A1, _A2)>&\nfunction<_Rp(_A0, _A1, _A2)>::operator=(const function& __f)\n{\n    function(__f).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\nfunction<_Rp(_A0, _A1, _A2)>&\nfunction<_Rp(_A0, _A1, _A2)>::operator=(nullptr_t)\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n    __f_ = 0;\n    return *this;\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\ntemplate <class _Fp>\ntypename enable_if\n<\n    !is_integral<_Fp>::value,\n    function<_Rp(_A0, _A1, _A2)>&\n>::type\nfunction<_Rp(_A0, _A1, _A2)>::operator=(_Fp __f)\n{\n    function(_VSTD::move(__f)).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\nfunction<_Rp(_A0, _A1, _A2)>::~function()\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\nvoid\nfunction<_Rp(_A0, _A1, _A2)>::swap(function& __f)\n{\n    if (_VSTD::addressof(__f) == this)\n      return;\n    if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)\n    {\n        typename aligned_storage<sizeof(__buf_)>::type __tempbuf;\n        __base* __t = (__base*)&__tempbuf;\n        __f_->__clone(__t);\n        __f_->destroy();\n        __f_ = 0;\n        __f.__f_->__clone((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = 0;\n        __f_ = (__base*)&__buf_;\n        __t->__clone((__base*)&__f.__buf_);\n        __t->destroy();\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f_ == (__base*)&__buf_)\n    {\n        __f_->__clone((__base*)&__f.__buf_);\n        __f_->destroy();\n        __f_ = __f.__f_;\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f.__f_ == (__base*)&__f.__buf_)\n    {\n        __f.__f_->__clone((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = __f_;\n        __f_ = (__base*)&__buf_;\n    }\n    else\n        _VSTD::swap(__f_, __f.__f_);\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\n_Rp\nfunction<_Rp(_A0, _A1, _A2)>::operator()(_A0 __a0, _A1 __a1, _A2 __a2) const\n{\n    if (__f_ == 0)\n        __throw_bad_function_call();\n    return (*__f_)(__a0, __a1, __a2);\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\nconst std::type_info&\nfunction<_Rp(_A0, _A1, _A2)>::target_type() const\n{\n    if (__f_ == 0)\n        return typeid(void);\n    return __f_->target_type();\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\ntemplate <typename _Tp>\n_Tp*\nfunction<_Rp(_A0, _A1, _A2)>::target()\n{\n    if (__f_ == 0)\n        return (_Tp*)0;\n    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));\n}\n\ntemplate<class _Rp, class _A0, class _A1, class _A2>\ntemplate <typename _Tp>\nconst _Tp*\nfunction<_Rp(_A0, _A1, _A2)>::target() const\n{\n    if (__f_ == 0)\n        return (const _Tp*)0;\n    return (const _Tp*)__f_->target(typeid(_Tp));\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate <class _Fp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const function<_Fp>& __f, nullptr_t) {return !__f;}\n\ntemplate <class _Fp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(nullptr_t, const function<_Fp>& __f) {return !__f;}\n\ntemplate <class _Fp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const function<_Fp>& __f, nullptr_t) {return (bool)__f;}\n\ntemplate <class _Fp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(nullptr_t, const function<_Fp>& __f) {return (bool)__f;}\n\ntemplate <class _Fp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(function<_Fp>& __x, function<_Fp>& __y)\n{return __x.swap(__y);}\n\n#endif  // _LIBCPP_FUNCTIONAL_03\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_FUNCTIONAL_BASE\n#define _LIBCPP_FUNCTIONAL_BASE\n\n#include <__config>\n#include <type_traits>\n#include <typeinfo>\n#include <exception>\n#include <new>\n#include <utility>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Arg1, class _Arg2, class _Result>\nstruct _LIBCPP_TEMPLATE_VIS binary_function\n{\n    typedef _Arg1   first_argument_type;\n    typedef _Arg2   second_argument_type;\n    typedef _Result result_type;\n};\n\ntemplate <class _Tp>\nstruct __has_result_type\n{\nprivate:\n    struct __two {char __lx; char __lxx;};\n    template <class _Up> static __two __test(...);\n    template <class _Up> static char __test(typename _Up::result_type* = 0);\npublic:\n    static const bool value = sizeof(__test<_Tp>(0)) == 1;\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS less : binary_function<_Tp, _Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY \n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x < __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS less<void>\n{\n    template <class _T1, class _T2> \n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) < _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n// __weak_result_type\n\ntemplate <class _Tp>\nstruct __derives_from_unary_function\n{\nprivate:\n    struct __two {char __lx; char __lxx;};\n    static __two __test(...);\n    template <class _Ap, class _Rp>\n        static unary_function<_Ap, _Rp>\n        __test(const volatile unary_function<_Ap, _Rp>*);\npublic:\n    static const bool value = !is_same<decltype(__test((_Tp*)0)), __two>::value;\n    typedef decltype(__test((_Tp*)0)) type;\n};\n\ntemplate <class _Tp>\nstruct __derives_from_binary_function\n{\nprivate:\n    struct __two {char __lx; char __lxx;};\n    static __two __test(...);\n    template <class _A1, class _A2, class _Rp>\n        static binary_function<_A1, _A2, _Rp>\n        __test(const volatile binary_function<_A1, _A2, _Rp>*);\npublic:\n    static const bool value = !is_same<decltype(__test((_Tp*)0)), __two>::value;\n    typedef decltype(__test((_Tp*)0)) type;\n};\n\ntemplate <class _Tp, bool = __derives_from_unary_function<_Tp>::value>\nstruct __maybe_derive_from_unary_function  // bool is true\n    : public __derives_from_unary_function<_Tp>::type\n{\n};\n\ntemplate <class _Tp>\nstruct __maybe_derive_from_unary_function<_Tp, false>\n{\n};\n\ntemplate <class _Tp, bool = __derives_from_binary_function<_Tp>::value>\nstruct __maybe_derive_from_binary_function  // bool is true\n    : public __derives_from_binary_function<_Tp>::type\n{\n};\n\ntemplate <class _Tp>\nstruct __maybe_derive_from_binary_function<_Tp, false>\n{\n};\n\ntemplate <class _Tp, bool = __has_result_type<_Tp>::value>\nstruct __weak_result_type_imp // bool is true\n    : public __maybe_derive_from_unary_function<_Tp>,\n      public __maybe_derive_from_binary_function<_Tp>\n{\n    typedef typename _Tp::result_type result_type;\n};\n\ntemplate <class _Tp>\nstruct __weak_result_type_imp<_Tp, false>\n    : public __maybe_derive_from_unary_function<_Tp>,\n      public __maybe_derive_from_binary_function<_Tp>\n{\n};\n\ntemplate <class _Tp>\nstruct __weak_result_type\n    : public __weak_result_type_imp<_Tp>\n{\n};\n\n// 0 argument case\n\ntemplate <class _Rp>\nstruct __weak_result_type<_Rp ()>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Rp>\nstruct __weak_result_type<_Rp (&)()>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Rp>\nstruct __weak_result_type<_Rp (*)()>\n{\n    typedef _Rp result_type;\n};\n\n// 1 argument case\n\ntemplate <class _Rp, class _A1>\nstruct __weak_result_type<_Rp (_A1)>\n    : public unary_function<_A1, _Rp>\n{\n};\n\ntemplate <class _Rp, class _A1>\nstruct __weak_result_type<_Rp (&)(_A1)>\n    : public unary_function<_A1, _Rp>\n{\n};\n\ntemplate <class _Rp, class _A1>\nstruct __weak_result_type<_Rp (*)(_A1)>\n    : public unary_function<_A1, _Rp>\n{\n};\n\ntemplate <class _Rp, class _Cp>\nstruct __weak_result_type<_Rp (_Cp::*)()>\n    : public unary_function<_Cp*, _Rp>\n{\n};\n\ntemplate <class _Rp, class _Cp>\nstruct __weak_result_type<_Rp (_Cp::*)() const>\n    : public unary_function<const _Cp*, _Rp>\n{\n};\n\ntemplate <class _Rp, class _Cp>\nstruct __weak_result_type<_Rp (_Cp::*)() volatile>\n    : public unary_function<volatile _Cp*, _Rp>\n{\n};\n\ntemplate <class _Rp, class _Cp>\nstruct __weak_result_type<_Rp (_Cp::*)() const volatile>\n    : public unary_function<const volatile _Cp*, _Rp>\n{\n};\n\n// 2 argument case\n\ntemplate <class _Rp, class _A1, class _A2>\nstruct __weak_result_type<_Rp (_A1, _A2)>\n    : public binary_function<_A1, _A2, _Rp>\n{\n};\n\ntemplate <class _Rp, class _A1, class _A2>\nstruct __weak_result_type<_Rp (*)(_A1, _A2)>\n    : public binary_function<_A1, _A2, _Rp>\n{\n};\n\ntemplate <class _Rp, class _A1, class _A2>\nstruct __weak_result_type<_Rp (&)(_A1, _A2)>\n    : public binary_function<_A1, _A2, _Rp>\n{\n};\n\ntemplate <class _Rp, class _Cp, class _A1>\nstruct __weak_result_type<_Rp (_Cp::*)(_A1)>\n    : public binary_function<_Cp*, _A1, _Rp>\n{\n};\n\ntemplate <class _Rp, class _Cp, class _A1>\nstruct __weak_result_type<_Rp (_Cp::*)(_A1) const>\n    : public binary_function<const _Cp*, _A1, _Rp>\n{\n};\n\ntemplate <class _Rp, class _Cp, class _A1>\nstruct __weak_result_type<_Rp (_Cp::*)(_A1) volatile>\n    : public binary_function<volatile _Cp*, _A1, _Rp>\n{\n};\n\ntemplate <class _Rp, class _Cp, class _A1>\nstruct __weak_result_type<_Rp (_Cp::*)(_A1) const volatile>\n    : public binary_function<const volatile _Cp*, _A1, _Rp>\n{\n};\n\n\n#ifndef _LIBCPP_CXX03_LANG\n// 3 or more arguments\n\ntemplate <class _Rp, class _A1, class _A2, class _A3, class ..._A4>\nstruct __weak_result_type<_Rp (_A1, _A2, _A3, _A4...)>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Rp, class _A1, class _A2, class _A3, class ..._A4>\nstruct __weak_result_type<_Rp (&)(_A1, _A2, _A3, _A4...)>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Rp, class _A1, class _A2, class _A3, class ..._A4>\nstruct __weak_result_type<_Rp (*)(_A1, _A2, _A3, _A4...)>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Rp, class _Cp, class _A1, class _A2, class ..._A3>\nstruct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...)>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Rp, class _Cp, class _A1, class _A2, class ..._A3>\nstruct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Rp, class _Cp, class _A1, class _A2, class ..._A3>\nstruct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) volatile>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Rp, class _Cp, class _A1, class _A2, class ..._A3>\nstruct __weak_result_type<_Rp (_Cp::*)(_A1, _A2, _A3...) const volatile>\n{\n    typedef _Rp result_type;\n};\n\ntemplate <class _Tp, class ..._Args>\nstruct __invoke_return\n{\n    typedef decltype(__invoke(_VSTD::declval<_Tp>(), _VSTD::declval<_Args>()...)) type;\n};\n\n#else // defined(_LIBCPP_CXX03_LANG)\n\n#include <__functional_base_03>\n\n#endif  // !defined(_LIBCPP_CXX03_LANG)\n\n\ntemplate <class _Ret>\nstruct __invoke_void_return_wrapper\n{\n#ifndef _LIBCPP_CXX03_LANG\n    template <class ..._Args>\n    static _Ret __call(_Args&&... __args) {\n        return __invoke(_VSTD::forward<_Args>(__args)...);\n    }\n#else\n    template <class _Fn>\n    static _Ret __call(_Fn __f) {\n        return __invoke(__f);\n    }\n\n    template <class _Fn, class _A0>\n    static _Ret __call(_Fn __f, _A0& __a0) {\n        return __invoke(__f, __a0);\n    }\n\n    template <class _Fn, class _A0, class _A1>\n    static _Ret __call(_Fn __f, _A0& __a0, _A1& __a1) {\n        return __invoke(__f, __a0, __a1);\n    }\n\n    template <class _Fn, class _A0, class _A1, class _A2>\n    static _Ret __call(_Fn __f, _A0& __a0, _A1& __a1, _A2& __a2){\n        return __invoke(__f, __a0, __a1, __a2);\n    }\n#endif\n};\n\ntemplate <>\nstruct __invoke_void_return_wrapper<void>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    template <class ..._Args>\n    static void __call(_Args&&... __args) {\n        __invoke(_VSTD::forward<_Args>(__args)...);\n    }\n#else\n    template <class _Fn>\n    static void __call(_Fn __f) {\n        __invoke(__f);\n    }\n\n    template <class _Fn, class _A0>\n    static void __call(_Fn __f, _A0& __a0) {\n        __invoke(__f, __a0);\n    }\n\n    template <class _Fn, class _A0, class _A1>\n    static void __call(_Fn __f, _A0& __a0, _A1& __a1) {\n        __invoke(__f, __a0, __a1);\n    }\n\n    template <class _Fn, class _A0, class _A1, class _A2>\n    static void __call(_Fn __f, _A0& __a0, _A1& __a1, _A2& __a2) {\n        __invoke(__f, __a0, __a1, __a2);\n    }\n#endif\n};\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS reference_wrapper\n    : public __weak_result_type<_Tp>\n{\npublic:\n    // types\n    typedef _Tp type;\nprivate:\n    type* __f_;\n\npublic:\n    // construct/copy/destroy\n    _LIBCPP_INLINE_VISIBILITY reference_wrapper(type& __f) _NOEXCEPT\n        : __f_(_VSTD::addressof(__f)) {}\n#ifndef _LIBCPP_CXX03_LANG\n    private: reference_wrapper(type&&); public: // = delete; // do not bind to temps\n#endif\n\n    // access\n    _LIBCPP_INLINE_VISIBILITY operator type&    () const _NOEXCEPT {return *__f_;}\n    _LIBCPP_INLINE_VISIBILITY          type& get() const _NOEXCEPT {return *__f_;}\n\n#ifndef _LIBCPP_CXX03_LANG\n    // invoke\n    template <class... _ArgTypes>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_of<type&, _ArgTypes...>::type\n    operator() (_ArgTypes&&... __args) const {\n        return __invoke(get(), _VSTD::forward<_ArgTypes>(__args)...);\n    }\n#else\n\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return<type>::type\n    operator() () const {\n        return __invoke(get());\n    }\n\n    template <class _A0>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return0<type, _A0>::type\n    operator() (_A0& __a0) const {\n        return __invoke(get(), __a0);\n    }\n\n    template <class _A0>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return0<type, _A0 const>::type\n    operator() (_A0 const& __a0) const {\n        return __invoke(get(), __a0);\n    }\n\n    template <class _A0, class _A1>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return1<type, _A0, _A1>::type\n    operator() (_A0& __a0, _A1& __a1) const {\n        return __invoke(get(), __a0, __a1);\n    }\n\n    template <class _A0, class _A1>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return1<type, _A0 const, _A1>::type\n    operator() (_A0 const& __a0, _A1& __a1) const {\n        return __invoke(get(), __a0, __a1);\n    }\n\n    template <class _A0, class _A1>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return1<type, _A0, _A1 const>::type\n    operator() (_A0& __a0, _A1 const& __a1) const {\n        return __invoke(get(), __a0, __a1);\n    }\n\n    template <class _A0, class _A1>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return1<type, _A0 const, _A1 const>::type\n    operator() (_A0 const& __a0, _A1 const& __a1) const {\n        return __invoke(get(), __a0, __a1);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0, _A1, _A2>::type\n    operator() (_A0& __a0, _A1& __a1, _A2& __a2) const {\n        return __invoke(get(), __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0 const, _A1, _A2>::type\n    operator() (_A0 const& __a0, _A1& __a1, _A2& __a2) const {\n        return __invoke(get(), __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0, _A1 const, _A2>::type\n    operator() (_A0& __a0, _A1 const& __a1, _A2& __a2) const {\n        return __invoke(get(), __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0, _A1, _A2 const>::type\n    operator() (_A0& __a0, _A1& __a1, _A2 const& __a2) const {\n        return __invoke(get(), __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0 const, _A1 const, _A2>::type\n    operator() (_A0 const& __a0, _A1 const& __a1, _A2& __a2) const {\n        return __invoke(get(), __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0 const, _A1, _A2 const>::type\n    operator() (_A0 const& __a0, _A1& __a1, _A2 const& __a2) const {\n        return __invoke(get(), __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0, _A1 const, _A2 const>::type\n    operator() (_A0& __a0, _A1 const& __a1, _A2 const& __a2) const {\n        return __invoke(get(), __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0 const, _A1 const, _A2 const>::type\n    operator() (_A0 const& __a0, _A1 const& __a1, _A2 const& __a2) const {\n        return __invoke(get(), __a0, __a1, __a2);\n    }\n#endif // _LIBCPP_CXX03_LANG\n};\n\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nreference_wrapper<_Tp>\nref(_Tp& __t) _NOEXCEPT\n{\n    return reference_wrapper<_Tp>(__t);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nreference_wrapper<_Tp>\nref(reference_wrapper<_Tp> __t) _NOEXCEPT\n{\n    return ref(__t.get());\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nreference_wrapper<const _Tp>\ncref(const _Tp& __t) _NOEXCEPT\n{\n    return reference_wrapper<const _Tp>(__t);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nreference_wrapper<const _Tp>\ncref(reference_wrapper<_Tp> __t) _NOEXCEPT\n{\n    return cref(__t.get());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp> void ref(const _Tp&&) = delete;\ntemplate <class _Tp> void cref(const _Tp&&) = delete;\n#endif\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp, class, class = void>\nstruct __is_transparent : false_type {};\n\ntemplate <class _Tp, class _Up>\nstruct __is_transparent<_Tp, _Up,  \n                        typename __void_t<typename _Tp::is_transparent>::type>\n   : true_type {};\n#endif\n\n// allocator_arg_t\n\nstruct _LIBCPP_TEMPLATE_VIS allocator_arg_t { };\n\n#if defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_BUILDING_MEMORY)\nextern const allocator_arg_t allocator_arg;\n#else\nconstexpr allocator_arg_t allocator_arg = allocator_arg_t();\n#endif\n\n// uses_allocator\n\ntemplate <class _Tp>\nstruct __has_allocator_type\n{\nprivate:\n    struct __two {char __lx; char __lxx;};\n    template <class _Up> static __two __test(...);\n    template <class _Up> static char __test(typename _Up::allocator_type* = 0);\npublic:\n    static const bool value = sizeof(__test<_Tp>(0)) == 1;\n};\n\ntemplate <class _Tp, class _Alloc, bool = __has_allocator_type<_Tp>::value>\nstruct __uses_allocator\n    : public integral_constant<bool,\n        is_convertible<_Alloc, typename _Tp::allocator_type>::value>\n{\n};\n\ntemplate <class _Tp, class _Alloc>\nstruct __uses_allocator<_Tp, _Alloc, false>\n    : public false_type\n{\n};\n\ntemplate <class _Tp, class _Alloc>\nstruct _LIBCPP_TEMPLATE_VIS uses_allocator\n    : public __uses_allocator<_Tp, _Alloc>\n{\n};\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Tp, class _Alloc>\nconstexpr size_t uses_allocator_v = uses_allocator<_Tp, _Alloc>::value;\n#endif\n\n#ifndef _LIBCPP_CXX03_LANG\n\n// allocator construction\n\ntemplate <class _Tp, class _Alloc, class ..._Args>\nstruct __uses_alloc_ctor_imp\n{\n    typedef typename __uncvref<_Alloc>::type _RawAlloc;\n    static const bool __ua = uses_allocator<_Tp, _RawAlloc>::value;\n    static const bool __ic =\n        is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value;\n    static const int value = __ua ? 2 - __ic : 0;\n};\n\ntemplate <class _Tp, class _Alloc, class ..._Args>\nstruct __uses_alloc_ctor\n    : integral_constant<int, __uses_alloc_ctor_imp<_Tp, _Alloc, _Args...>::value>\n    {};\n\ntemplate <class _Tp, class _Allocator, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __user_alloc_construct_impl (integral_constant<int, 0>, _Tp *__storage, const _Allocator &, _Args &&... __args )\n{\n    new (__storage) _Tp (_VSTD::forward<_Args>(__args)...);\n}\n\n// FIXME: This should have a version which takes a non-const alloc.\ntemplate <class _Tp, class _Allocator, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __user_alloc_construct_impl (integral_constant<int, 1>, _Tp *__storage, const _Allocator &__a, _Args &&... __args )\n{\n    new (__storage) _Tp (allocator_arg, __a, _VSTD::forward<_Args>(__args)...);\n}\n\n// FIXME: This should have a version which takes a non-const alloc.\ntemplate <class _Tp, class _Allocator, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __user_alloc_construct_impl (integral_constant<int, 2>, _Tp *__storage, const _Allocator &__a, _Args &&... __args )\n{\n    new (__storage) _Tp (_VSTD::forward<_Args>(__args)..., __a);\n}\n\n// FIXME: Theis should have a version which takes a non-const alloc.\ntemplate <class _Tp, class _Allocator, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __user_alloc_construct (_Tp *__storage, const _Allocator &__a, _Args &&... __args)\n{ \n    __user_alloc_construct_impl( \n             __uses_alloc_ctor<_Tp, _Allocator>(), \n             __storage, __a, _VSTD::forward<_Args>(__args)...\n        );\n}\n#endif  // _LIBCPP_CXX03_LANG\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_FUNCTIONAL_BASE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base_03",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_FUNCTIONAL_BASE_03\n#define _LIBCPP_FUNCTIONAL_BASE_03\n\n// manual variadic expansion for <functional>\n\n// __invoke\n\ntemplate <class _Ret, class _T1, bool _IsFunc, bool _IsBase>\nstruct __enable_invoke_imp;\n\ntemplate <class _Ret, class _T1>\nstruct __enable_invoke_imp<_Ret, _T1, true, true> {\n    typedef _Ret _Bullet1;\n    typedef _Bullet1 type;\n};\n\ntemplate <class _Ret, class _T1>\nstruct __enable_invoke_imp<_Ret, _T1, true, false>  {\n    typedef _Ret _Bullet2;\n    typedef _Bullet2 type;\n};\n\ntemplate <class _Ret, class _T1>\nstruct __enable_invoke_imp<_Ret, _T1, false, true>  {\n    typedef typename add_lvalue_reference<\n                typename __apply_cv<_T1, _Ret>::type\n            >::type _Bullet3;\n    typedef _Bullet3 type;\n};\n\ntemplate <class _Ret, class _T1>\nstruct __enable_invoke_imp<_Ret, _T1, false, false>  {\n    typedef typename add_lvalue_reference<\n                typename __apply_cv<decltype(*_VSTD::declval<_T1>()), _Ret>::type\n            >::type _Bullet4;\n    typedef _Bullet4 type;\n};\n\ntemplate <class _Ret, class _T1>\nstruct __enable_invoke_imp<_Ret, _T1*, false, false>  {\n    typedef typename add_lvalue_reference<\n                typename __apply_cv<_T1, _Ret>::type\n            >::type _Bullet4;\n    typedef _Bullet4  type;\n};\n\ntemplate <class _Fn, class _T1,\n          class _Traits = __member_pointer_traits<_Fn>,\n          class _Ret = typename _Traits::_ReturnType,\n          class _Class = typename _Traits::_ClassType>\nstruct __enable_invoke : __enable_invoke_imp<\n    _Ret, _T1,\n    is_member_function_pointer<_Fn>::value,\n    is_base_of<_Class, typename remove_reference<_T1>::type>::value>\n{\n};\n\n__nat __invoke(__any, ...);\n\n// first bullet\n\ntemplate <class _Fn, class _T1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet1\n__invoke(_Fn __f, _T1& __t1) {\n    return (__t1.*__f)();\n}\n\ntemplate <class _Fn, class _T1, class _A0>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet1\n__invoke(_Fn __f, _T1& __t1, _A0& __a0) {\n    return (__t1.*__f)(__a0);\n}\n\ntemplate <class _Fn, class _T1, class _A0, class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet1\n__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1) {\n    return (__t1.*__f)(__a0, __a1);\n}\n\ntemplate <class _Fn, class _T1, class _A0, class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet1\n__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1, _A2& __a2) {\n    return (__t1.*__f)(__a0, __a1, __a2);\n}\n\ntemplate <class _Fn, class _T1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet2\n__invoke(_Fn __f, _T1& __t1) {\n    return ((*__t1).*__f)();\n}\n\ntemplate <class _Fn, class _T1, class _A0>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet2\n__invoke(_Fn __f, _T1& __t1, _A0& __a0) {\n    return ((*__t1).*__f)(__a0);\n}\n\ntemplate <class _Fn, class _T1, class _A0, class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet2\n__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1) {\n    return ((*__t1).*__f)(__a0, __a1);\n}\n\ntemplate <class _Fn, class _T1, class _A0, class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet2\n__invoke(_Fn __f, _T1& __t1, _A0& __a0, _A1& __a1, _A2& __a2) {\n    return ((*__t1).*__f)(__a0, __a1, __a2);\n}\n\ntemplate <class _Fn, class _T1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet3\n__invoke(_Fn __f, _T1& __t1) {\n    return __t1.*__f;\n}\n\ntemplate <class _Fn, class _T1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __enable_invoke<_Fn, _T1>::_Bullet4\n__invoke(_Fn __f, _T1& __t1) {\n    return (*__t1).*__f;\n}\n\n// fifth bullet\n\ntemplate <class _Fp>\ninline _LIBCPP_INLINE_VISIBILITY\ndecltype(_VSTD::declval<_Fp&>()())\n__invoke(_Fp& __f)\n{\n    return __f();\n}\n\ntemplate <class _Fp, class _A0>\ninline _LIBCPP_INLINE_VISIBILITY\ndecltype(_VSTD::declval<_Fp&>()(_VSTD::declval<_A0&>()))\n__invoke(_Fp& __f, _A0& __a0)\n{\n    return __f(__a0);\n}\n\ntemplate <class _Fp, class _A0, class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ndecltype(_VSTD::declval<_Fp&>()(_VSTD::declval<_A0&>(), _VSTD::declval<_A1&>()))\n__invoke(_Fp& __f, _A0& __a0, _A1& __a1)\n{\n    return __f(__a0, __a1);\n}\n\ntemplate <class _Fp, class _A0, class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ndecltype(_VSTD::declval<_Fp&>()(_VSTD::declval<_A0&>(), _VSTD::declval<_A1&>(), _VSTD::declval<_A2&>()))\n__invoke(_Fp& __f, _A0& __a0, _A1& __a1, _A2& __a2)\n{\n    return __f(__a0, __a1, __a2);\n}\n\ntemplate <class _Fp, bool = __has_result_type<__weak_result_type<_Fp> >::value>\nstruct __invoke_return\n{\n    typedef typename __weak_result_type<_Fp>::result_type type;\n};\n\ntemplate <class _Fp>\nstruct __invoke_return<_Fp, false>\n{\n    typedef decltype(__invoke(_VSTD::declval<_Fp&>())) type;\n};\n\ntemplate <class _Tp, class _A0>\nstruct __invoke_return0\n{\n    typedef decltype(__invoke(_VSTD::declval<_Tp&>(), _VSTD::declval<_A0&>())) type;\n};\n\ntemplate <class _Rp, class _Tp, class _A0>\nstruct __invoke_return0<_Rp _Tp::*, _A0>\n{\n    typedef typename __enable_invoke<_Rp _Tp::*, _A0>::type type;\n};\n\ntemplate <class _Tp, class _A0, class _A1>\nstruct __invoke_return1\n{\n    typedef decltype(__invoke(_VSTD::declval<_Tp&>(), _VSTD::declval<_A0&>(),\n                                                      _VSTD::declval<_A1&>())) type;\n};\n\ntemplate <class _Rp, class _Class, class _A0, class _A1>\nstruct __invoke_return1<_Rp _Class::*, _A0, _A1> {\n    typedef typename __enable_invoke<_Rp _Class::*, _A0>::type type;\n};\n\ntemplate <class _Tp, class _A0, class _A1, class _A2>\nstruct __invoke_return2\n{\n    typedef decltype(__invoke(_VSTD::declval<_Tp&>(), _VSTD::declval<_A0&>(),\n                                                      _VSTD::declval<_A1&>(),\n                                                      _VSTD::declval<_A2&>())) type;\n};\n\ntemplate <class _Ret, class _Class, class _A0, class _A1, class _A2>\nstruct __invoke_return2<_Ret _Class::*, _A0, _A1, _A2> {\n    typedef typename __enable_invoke<_Ret _Class::*, _A0>::type type;\n};\n#endif  // _LIBCPP_FUNCTIONAL_BASE_03\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__hash_table",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP__HASH_TABLE\n#define _LIBCPP__HASH_TABLE\n\n#include <__config>\n#include <initializer_list>\n#include <memory>\n#include <iterator>\n#include <algorithm>\n#include <cmath>\n#include <utility>\n#include <type_traits>\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Key, class _Tp>\nunion __hash_value_type;\n#else\ntemplate <class _Key, class _Tp>\nstruct __hash_value_type;\n#endif\n\ntemplate <class _Key, class _Cp, class _Hash,\n          bool =  is_empty<_Hash>::value && !__libcpp_is_final<_Hash>::value>\nclass __unordered_map_hasher;\n\ntemplate <class _Key, class _Cp, class _Pred,\n          bool = is_empty<_Pred>::value && !__libcpp_is_final<_Pred>::value\n         >\nclass __unordered_map_equal;\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp>\nstruct __is_hash_value_type_imp : false_type {};\n\ntemplate <class _Key, class _Value>\nstruct __is_hash_value_type_imp<__hash_value_type<_Key, _Value>> : true_type {};\n\ntemplate <class ..._Args>\nstruct __is_hash_value_type : false_type {};\n\ntemplate <class _One>\nstruct __is_hash_value_type<_One> : __is_hash_value_type_imp<typename __uncvref<_One>::type> {};\n#endif\n\n_LIBCPP_FUNC_VIS\nsize_t __next_prime(size_t __n);\n\ntemplate <class _NodePtr>\nstruct __hash_node_base\n{\n    typedef typename pointer_traits<_NodePtr>::element_type __node_type;\n    typedef __hash_node_base __first_node;\n    typedef typename __rebind_pointer<_NodePtr, __first_node>::type __node_base_pointer;\n    typedef _NodePtr __node_pointer;\n\n#if defined(_LIBCPP_ABI_FIX_UNORDERED_NODE_POINTER_UB)\n  typedef __node_base_pointer __next_pointer;\n#else\n  typedef typename conditional<\n      is_pointer<__node_pointer>::value,\n      __node_base_pointer,\n      __node_pointer>::type   __next_pointer;\n#endif\n\n    __next_pointer    __next_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __next_pointer __ptr() _NOEXCEPT {\n        return static_cast<__next_pointer>(\n            pointer_traits<__node_base_pointer>::pointer_to(*this));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __node_pointer __upcast() _NOEXCEPT {\n        return static_cast<__node_pointer>(\n            pointer_traits<__node_base_pointer>::pointer_to(*this));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t __hash() const _NOEXCEPT {\n        return static_cast<__node_type const&>(*this).__hash_;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __hash_node_base() _NOEXCEPT : __next_(nullptr) {}\n};\n\ntemplate <class _Tp, class _VoidPtr>\nstruct __hash_node\n    : public __hash_node_base\n             <\n                 typename __rebind_pointer<_VoidPtr, __hash_node<_Tp, _VoidPtr> >::type\n             >\n{\n    typedef _Tp __node_value_type;\n\n    size_t            __hash_;\n    __node_value_type __value_;\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\n__is_hash_power2(size_t __bc)\n{\n    return __bc > 2 && !(__bc & (__bc - 1));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nsize_t\n__constrain_hash(size_t __h, size_t __bc)\n{\n    return !(__bc & (__bc - 1)) ? __h & (__bc - 1) :\n        (__h < __bc ? __h : __h % __bc);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nsize_t\n__next_hash_pow2(size_t __n)\n{\n    return __n < 2 ? __n : (size_t(1) << (std::numeric_limits<size_t>::digits - __clz(__n-1)));\n}\n\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc> class __hash_table;\n\ntemplate <class _NodePtr>      class _LIBCPP_TEMPLATE_VIS __hash_iterator;\ntemplate <class _ConstNodePtr> class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;\ntemplate <class _NodePtr>      class _LIBCPP_TEMPLATE_VIS __hash_local_iterator;\ntemplate <class _ConstNodePtr> class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;\ntemplate <class _HashIterator> class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;\ntemplate <class _HashIterator> class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;\n\ntemplate <class _Tp>\nstruct __hash_key_value_types {\n  static_assert(!is_reference<_Tp>::value && !is_const<_Tp>::value, \"\");\n  typedef _Tp key_type;\n  typedef _Tp __node_value_type;\n  typedef _Tp __container_value_type;\n  static const bool __is_map = false;\n\n  _LIBCPP_INLINE_VISIBILITY\n  static key_type const& __get_key(_Tp const& __v) {\n    return __v;\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  static __container_value_type const& __get_value(__node_value_type const& __v) {\n    return __v;\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  static __container_value_type* __get_ptr(__node_value_type& __n) {\n    return _VSTD::addressof(__n);\n  }\n#ifndef _LIBCPP_CXX03_LANG\n  _LIBCPP_INLINE_VISIBILITY\n  static  __container_value_type&& __move(__node_value_type& __v) {\n    return _VSTD::move(__v);\n  }\n#endif\n};\n\ntemplate <class _Key, class _Tp>\nstruct __hash_key_value_types<__hash_value_type<_Key, _Tp> > {\n  typedef _Key                                         key_type;\n  typedef _Tp                                          mapped_type;\n  typedef __hash_value_type<_Key, _Tp>                 __node_value_type;\n  typedef pair<const _Key, _Tp>                        __container_value_type;\n  typedef pair<_Key, _Tp>                              __nc_value_type;\n  typedef __container_value_type                       __map_value_type;\n  static const bool __is_map = true;\n\n  _LIBCPP_INLINE_VISIBILITY\n  static key_type const& __get_key(__container_value_type const& __v) {\n    return __v.first;\n  }\n\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n  static typename enable_if<__is_same_uncvref<_Up, __node_value_type>::value,\n      __container_value_type const&>::type\n  __get_value(_Up& __t) {\n    return __t.__cc;\n  }\n\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n  static typename enable_if<__is_same_uncvref<_Up, __container_value_type>::value,\n      __container_value_type const&>::type\n  __get_value(_Up& __t) {\n    return __t;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  static __container_value_type* __get_ptr(__node_value_type& __n) {\n    return _VSTD::addressof(__n.__cc);\n  }\n#ifndef _LIBCPP_CXX03_LANG\n  _LIBCPP_INLINE_VISIBILITY\n  static __nc_value_type&& __move(__node_value_type& __v) {\n    return _VSTD::move(__v.__nc);\n  }\n#endif\n\n};\n\ntemplate <class _Tp, class _AllocPtr, class _KVTypes = __hash_key_value_types<_Tp>,\n          bool = _KVTypes::__is_map>\nstruct __hash_map_pointer_types {};\n\ntemplate <class _Tp, class _AllocPtr, class _KVTypes>\nstruct __hash_map_pointer_types<_Tp, _AllocPtr, _KVTypes, true> {\n  typedef typename _KVTypes::__map_value_type   _Mv;\n  typedef typename __rebind_pointer<_AllocPtr, _Mv>::type\n                                                       __map_value_type_pointer;\n  typedef typename __rebind_pointer<_AllocPtr, const _Mv>::type\n                                                 __const_map_value_type_pointer;\n};\n\ntemplate <class _NodePtr, class _NodeT = typename pointer_traits<_NodePtr>::element_type>\nstruct __hash_node_types;\n\ntemplate <class _NodePtr, class _Tp, class _VoidPtr>\nstruct __hash_node_types<_NodePtr, __hash_node<_Tp, _VoidPtr> >\n    : public __hash_key_value_types<_Tp>, __hash_map_pointer_types<_Tp, _VoidPtr>\n\n{\n  typedef __hash_key_value_types<_Tp>           __base;\n\npublic:\n  typedef ptrdiff_t difference_type;\n  typedef size_t size_type;\n\n  typedef typename __rebind_pointer<_NodePtr, void>::type       __void_pointer;\n\n  typedef typename pointer_traits<_NodePtr>::element_type       __node_type;\n  typedef _NodePtr                                              __node_pointer;\n\n  typedef __hash_node_base<__node_pointer>                      __node_base_type;\n  typedef typename __rebind_pointer<_NodePtr, __node_base_type>::type\n                                                             __node_base_pointer;\n\n  typedef typename __node_base_type::__next_pointer          __next_pointer;\n\n  typedef _Tp                                                 __node_value_type;\n  typedef typename __rebind_pointer<_VoidPtr, __node_value_type>::type\n                                                      __node_value_type_pointer;\n  typedef typename __rebind_pointer<_VoidPtr, const __node_value_type>::type\n                                                __const_node_value_type_pointer;\n\nprivate:\n    static_assert(!is_const<__node_type>::value,\n                \"_NodePtr should never be a pointer to const\");\n    static_assert((is_same<typename pointer_traits<_VoidPtr>::element_type, void>::value),\n                  \"_VoidPtr does not point to unqualified void type\");\n    static_assert((is_same<typename __rebind_pointer<_VoidPtr, __node_type>::type,\n                          _NodePtr>::value), \"_VoidPtr does not rebind to _NodePtr.\");\n};\n\ntemplate <class _HashIterator>\nstruct __hash_node_types_from_iterator;\ntemplate <class _NodePtr>\nstruct __hash_node_types_from_iterator<__hash_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {};\ntemplate <class _NodePtr>\nstruct __hash_node_types_from_iterator<__hash_const_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {};\ntemplate <class _NodePtr>\nstruct __hash_node_types_from_iterator<__hash_local_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {};\ntemplate <class _NodePtr>\nstruct __hash_node_types_from_iterator<__hash_const_local_iterator<_NodePtr> > : __hash_node_types<_NodePtr> {};\n\n\ntemplate <class _NodeValueTp, class _VoidPtr>\nstruct __make_hash_node_types {\n  typedef __hash_node<_NodeValueTp, _VoidPtr> _NodeTp;\n  typedef typename __rebind_pointer<_VoidPtr, _NodeTp>::type _NodePtr;\n  typedef __hash_node_types<_NodePtr> type;\n};\n\ntemplate <class _NodePtr>\nclass _LIBCPP_TEMPLATE_VIS __hash_iterator\n{\n    typedef __hash_node_types<_NodePtr> _NodeTypes;\n    typedef _NodePtr                            __node_pointer;\n    typedef typename _NodeTypes::__next_pointer __next_pointer;\n\n    __next_pointer            __node_;\n\npublic:\n    typedef forward_iterator_tag                           iterator_category;\n    typedef typename _NodeTypes::__node_value_type         value_type;\n    typedef typename _NodeTypes::difference_type           difference_type;\n    typedef value_type&                                    reference;\n    typedef typename _NodeTypes::__node_value_type_pointer pointer;\n\n    _LIBCPP_INLINE_VISIBILITY __hash_iterator() _NOEXCEPT : __node_(nullptr) {\n        _LIBCPP_DEBUG_MODE(__get_db()->__insert_i(this));\n    }\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_iterator(const __hash_iterator& __i)\n        : __node_(__i.__node_)\n    {\n        __get_db()->__iterator_copy(this, &__i);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~__hash_iterator()\n    {\n        __get_db()->__erase_i(this);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_iterator& operator=(const __hash_iterator& __i)\n    {\n        if (this != &__i)\n        {\n            __get_db()->__iterator_copy(this, &__i);\n            __node_ = __i.__node_;\n        }\n        return *this;\n    }\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                             \"Attempted to dereference a non-dereferenceable unordered container iterator\");\n        return __node_->__upcast()->__value_;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                           \"Attempted to dereference a non-dereferenceable unordered container iterator\");\n        return pointer_traits<pointer>::pointer_to(__node_->__upcast()->__value_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_iterator& operator++() {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to increment non-incrementable unordered container iterator\");\n        __node_ = __node_->__next_;\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_iterator operator++(int)\n    {\n        __hash_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __hash_iterator& __x, const __hash_iterator& __y)\n    {\n        return __x.__node_ == __y.__node_;\n    }\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __hash_iterator& __x, const __hash_iterator& __y)\n        {return !(__x == __y);}\n\nprivate:\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_iterator(__next_pointer __node, const void* __c) _NOEXCEPT\n        : __node_(__node)\n        {\n            __get_db()->__insert_ic(this, __c);\n        }\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_iterator(__next_pointer __node) _NOEXCEPT\n        : __node_(__node)\n        {}\n#endif\n    template <class, class, class, class> friend class __hash_table;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;\n};\n\ntemplate <class _NodePtr>\nclass _LIBCPP_TEMPLATE_VIS __hash_const_iterator\n{\n    static_assert(!is_const<typename pointer_traits<_NodePtr>::element_type>::value, \"\");\n    typedef __hash_node_types<_NodePtr> _NodeTypes;\n    typedef _NodePtr                            __node_pointer;\n    typedef typename _NodeTypes::__next_pointer __next_pointer;\n\n    __next_pointer __node_;\n\npublic:\n    typedef __hash_iterator<_NodePtr> __non_const_iterator;\n\n    typedef forward_iterator_tag                                 iterator_category;\n    typedef typename _NodeTypes::__node_value_type               value_type;\n    typedef typename _NodeTypes::difference_type                 difference_type;\n    typedef const value_type&                                    reference;\n    typedef typename _NodeTypes::__const_node_value_type_pointer pointer;\n\n\n    _LIBCPP_INLINE_VISIBILITY __hash_const_iterator() _NOEXCEPT : __node_(nullptr) {\n        _LIBCPP_DEBUG_MODE(__get_db()->__insert_i(this));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY \n    __hash_const_iterator(const __non_const_iterator& __x) _NOEXCEPT\n        : __node_(__x.__node_)\n    {\n        _LIBCPP_DEBUG_MODE(__get_db()->__iterator_copy(this, &__x));\n    }\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_iterator(const __hash_const_iterator& __i)\n        : __node_(__i.__node_)\n    {\n        __get_db()->__iterator_copy(this, &__i);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~__hash_const_iterator()\n    {\n        __get_db()->__erase_i(this);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_iterator& operator=(const __hash_const_iterator& __i)\n    {\n        if (this != &__i)\n        {\n            __get_db()->__iterator_copy(this, &__i);\n            __node_ = __i.__node_;\n        }\n        return *this;\n    }\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                           \"Attempted to dereference a non-dereferenceable unordered container const_iterator\");\n        return __node_->__upcast()->__value_;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                           \"Attempted to dereference a non-dereferenceable unordered container const_iterator\");\n        return pointer_traits<pointer>::pointer_to(__node_->__upcast()->__value_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_iterator& operator++() {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                             \"Attempted to increment non-incrementable unordered container const_iterator\");\n        __node_ = __node_->__next_;\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_iterator operator++(int)\n    {\n        __hash_const_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __hash_const_iterator& __x, const __hash_const_iterator& __y)\n    {\n        return __x.__node_ == __y.__node_;\n    }\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __hash_const_iterator& __x, const __hash_const_iterator& __y)\n        {return !(__x == __y);}\n\nprivate:\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_iterator(__next_pointer __node, const void* __c) _NOEXCEPT\n        : __node_(__node)\n        {\n            __get_db()->__insert_ic(this, __c);\n        }\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_iterator(__next_pointer __node) _NOEXCEPT\n        : __node_(__node)\n        {}\n#endif\n    template <class, class, class, class> friend class __hash_table;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;\n};\n\ntemplate <class _NodePtr>\nclass _LIBCPP_TEMPLATE_VIS __hash_local_iterator\n{\n    typedef __hash_node_types<_NodePtr> _NodeTypes;\n    typedef _NodePtr                            __node_pointer;\n    typedef typename _NodeTypes::__next_pointer __next_pointer;\n\n    __next_pointer         __node_;\n    size_t                 __bucket_;\n    size_t                 __bucket_count_;\n\npublic:\n    typedef forward_iterator_tag                                iterator_category;\n    typedef typename _NodeTypes::__node_value_type              value_type;\n    typedef typename _NodeTypes::difference_type                difference_type;\n    typedef value_type&                                         reference;\n    typedef typename _NodeTypes::__node_value_type_pointer      pointer;\n\n    _LIBCPP_INLINE_VISIBILITY __hash_local_iterator() _NOEXCEPT : __node_(nullptr) {\n        _LIBCPP_DEBUG_MODE(__get_db()->__insert_i(this));\n    }\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_local_iterator(const __hash_local_iterator& __i)\n        : __node_(__i.__node_),\n          __bucket_(__i.__bucket_),\n          __bucket_count_(__i.__bucket_count_)\n    {\n        __get_db()->__iterator_copy(this, &__i);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~__hash_local_iterator()\n    {\n        __get_db()->__erase_i(this);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_local_iterator& operator=(const __hash_local_iterator& __i)\n    {\n        if (this != &__i)\n        {\n            __get_db()->__iterator_copy(this, &__i);\n            __node_ = __i.__node_;\n            __bucket_ = __i.__bucket_;\n            __bucket_count_ = __i.__bucket_count_;\n        }\n        return *this;\n    }\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                           \"Attempted to dereference a non-dereferenceable unordered container local_iterator\");\n        return __node_->__upcast()->__value_;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                             \"Attempted to dereference a non-dereferenceable unordered container local_iterator\");\n        return pointer_traits<pointer>::pointer_to(__node_->__upcast()->__value_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_local_iterator& operator++() {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to increment non-incrementable unordered container local_iterator\");\n        __node_ = __node_->__next_;\n        if (__node_ != nullptr && __constrain_hash(__node_->__hash(), __bucket_count_) != __bucket_)\n            __node_ = nullptr;\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_local_iterator operator++(int)\n    {\n        __hash_local_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __hash_local_iterator& __x, const __hash_local_iterator& __y)\n    {\n        return __x.__node_ == __y.__node_;\n    }\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __hash_local_iterator& __x, const __hash_local_iterator& __y)\n        {return !(__x == __y);}\n\nprivate:\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_local_iterator(__next_pointer __node, size_t __bucket,\n                          size_t __bucket_count, const void* __c) _NOEXCEPT\n        : __node_(__node),\n          __bucket_(__bucket),\n          __bucket_count_(__bucket_count)\n        {\n            __get_db()->__insert_ic(this, __c);\n            if (__node_ != nullptr)\n                __node_ = __node_->__next_;\n        }\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_local_iterator(__next_pointer __node, size_t __bucket,\n                          size_t __bucket_count) _NOEXCEPT\n        : __node_(__node),\n          __bucket_(__bucket),\n          __bucket_count_(__bucket_count)\n        {\n            if (__node_ != nullptr)\n                __node_ = __node_->__next_;\n        }\n#endif\n    template <class, class, class, class> friend class __hash_table;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_iterator;\n};\n\ntemplate <class _ConstNodePtr>\nclass _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator\n{\n    typedef __hash_node_types<_ConstNodePtr> _NodeTypes;\n    typedef _ConstNodePtr                       __node_pointer;\n    typedef typename _NodeTypes::__next_pointer __next_pointer;\n\n    __next_pointer         __node_;\n    size_t                 __bucket_;\n    size_t                 __bucket_count_;\n\n    typedef pointer_traits<__node_pointer>          __pointer_traits;\n    typedef typename __pointer_traits::element_type __node;\n    typedef typename remove_const<__node>::type     __non_const_node;\n    typedef typename __rebind_pointer<__node_pointer, __non_const_node>::type\n        __non_const_node_pointer;\npublic:\n    typedef __hash_local_iterator<__non_const_node_pointer>\n                                                    __non_const_iterator;\n\n    typedef forward_iterator_tag                                 iterator_category;\n    typedef typename _NodeTypes::__node_value_type               value_type;\n    typedef typename _NodeTypes::difference_type                 difference_type;\n    typedef const value_type&                                    reference;\n    typedef typename _NodeTypes::__const_node_value_type_pointer pointer;\n\n\n    _LIBCPP_INLINE_VISIBILITY __hash_const_local_iterator() _NOEXCEPT : __node_(nullptr) {\n        _LIBCPP_DEBUG_MODE(__get_db()->__insert_i(this));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_local_iterator(const __non_const_iterator& __x) _NOEXCEPT\n        : __node_(__x.__node_),\n          __bucket_(__x.__bucket_),\n          __bucket_count_(__x.__bucket_count_)\n    {\n        _LIBCPP_DEBUG_MODE(__get_db()->__iterator_copy(this, &__x));\n    }\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_local_iterator(const __hash_const_local_iterator& __i)\n        : __node_(__i.__node_),\n          __bucket_(__i.__bucket_),\n          __bucket_count_(__i.__bucket_count_)\n    {\n        __get_db()->__iterator_copy(this, &__i);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~__hash_const_local_iterator()\n    {\n        __get_db()->__erase_i(this);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_local_iterator& operator=(const __hash_const_local_iterator& __i)\n    {\n        if (this != &__i)\n        {\n            __get_db()->__iterator_copy(this, &__i);\n            __node_ = __i.__node_;\n            __bucket_ = __i.__bucket_;\n            __bucket_count_ = __i.__bucket_count_;\n        }\n        return *this;\n    }\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                           \"Attempted to dereference a non-dereferenceable unordered container const_local_iterator\");\n        return __node_->__upcast()->__value_;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                           \"Attempted to dereference a non-dereferenceable unordered container const_local_iterator\");\n        return pointer_traits<pointer>::pointer_to(__node_->__upcast()->__value_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_local_iterator& operator++() {\n        _LIBCPP_DEBUG_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to increment non-incrementable unordered container const_local_iterator\");\n        __node_ = __node_->__next_;\n        if (__node_ != nullptr && __constrain_hash(__node_->__hash(), __bucket_count_) != __bucket_)\n            __node_ = nullptr;\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_local_iterator operator++(int)\n    {\n        __hash_const_local_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __hash_const_local_iterator& __x, const __hash_const_local_iterator& __y)\n    {\n        return __x.__node_ == __y.__node_;\n    }\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __hash_const_local_iterator& __x, const __hash_const_local_iterator& __y)\n        {return !(__x == __y);}\n\nprivate:\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_local_iterator(__next_pointer __node, size_t __bucket,\n                                size_t __bucket_count, const void* __c) _NOEXCEPT\n        : __node_(__node),\n          __bucket_(__bucket),\n          __bucket_count_(__bucket_count)\n        {\n            __get_db()->__insert_ic(this, __c);\n            if (__node_ != nullptr)\n                __node_ = __node_->__next_;\n        }\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_const_local_iterator(__next_pointer __node, size_t __bucket,\n                                size_t __bucket_count) _NOEXCEPT\n        : __node_(__node),\n          __bucket_(__bucket),\n          __bucket_count_(__bucket_count)\n        {\n            if (__node_ != nullptr)\n                __node_ = __node_->__next_;\n        }\n#endif\n    template <class, class, class, class> friend class __hash_table;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;\n};\n\ntemplate <class _Alloc>\nclass __bucket_list_deallocator\n{\n    typedef _Alloc                                          allocator_type;\n    typedef allocator_traits<allocator_type>                __alloc_traits;\n    typedef typename __alloc_traits::size_type              size_type;\n\n    __compressed_pair<size_type, allocator_type> __data_;\npublic:\n    typedef typename __alloc_traits::pointer pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __bucket_list_deallocator()\n        _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)\n        : __data_(0) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __bucket_list_deallocator(const allocator_type& __a, size_type __size)\n        _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)\n        : __data_(__size, __a) {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __bucket_list_deallocator(__bucket_list_deallocator&& __x)\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)\n        : __data_(_VSTD::move(__x.__data_))\n    {\n        __x.size() = 0;\n    }\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type& size() _NOEXCEPT {return __data_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type  size() const _NOEXCEPT {return __data_.first();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type& __alloc() _NOEXCEPT {return __data_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const allocator_type& __alloc() const _NOEXCEPT {return __data_.second();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()(pointer __p) _NOEXCEPT\n    {\n        __alloc_traits::deallocate(__alloc(), __p, size());\n    }\n};\n\ntemplate <class _Alloc> class __hash_map_node_destructor;\n\ntemplate <class _Alloc>\nclass __hash_node_destructor\n{\n    typedef _Alloc                                          allocator_type;\n    typedef allocator_traits<allocator_type>                __alloc_traits;\n\npublic:\n    typedef typename __alloc_traits::pointer                pointer;\nprivate:\n    typedef __hash_node_types<pointer> _NodeTypes;\n\n    allocator_type& __na_;\n\n    __hash_node_destructor& operator=(const __hash_node_destructor&);\n\npublic:\n    bool __value_constructed;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __hash_node_destructor(allocator_type& __na,\n                                    bool __constructed = false) _NOEXCEPT\n        : __na_(__na),\n          __value_constructed(__constructed)\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()(pointer __p) _NOEXCEPT\n    {\n        if (__value_constructed)\n            __alloc_traits::destroy(__na_, _NodeTypes::__get_ptr(__p->__value_));\n        if (__p)\n            __alloc_traits::deallocate(__na_, __p, 1);\n    }\n\n    template <class> friend class __hash_map_node_destructor;\n};\n\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Key, class _Hash, class _Equal, class _Alloc>\nstruct __diagnose_hash_table_helper {\n  static constexpr bool __trigger_diagnostics()\n    _LIBCPP_DIAGNOSE_WARNING(__check_hash_requirements<_Key, _Hash>::value\n                         && !__invokable<_Hash const&, _Key const&>::value,\n      \"the specified hash functor does not provide a const call operator\")\n    _LIBCPP_DIAGNOSE_WARNING(is_copy_constructible<_Equal>::value\n                          && !__invokable<_Equal const&, _Key const&, _Key const&>::value,\n      \"the specified comparator type does not provide a const call operator\")\n  {\n    static_assert(__check_hash_requirements<_Key, _Hash>::value,\n      \"the specified hash does not meet the Hash requirements\");\n    static_assert(is_copy_constructible<_Equal>::value,\n      \"the specified comparator is required to be copy constructible\");\n    return true;\n  }\n};\n\ntemplate <class _Key, class _Value, class _Hash, class _Equal, class _Alloc>\nstruct __diagnose_hash_table_helper<\n  __hash_value_type<_Key, _Value>,\n  __unordered_map_hasher<_Key, __hash_value_type<_Key, _Value>, _Hash>,\n  __unordered_map_equal<_Key, __hash_value_type<_Key, _Value>, _Equal>,\n  _Alloc>\n: __diagnose_hash_table_helper<_Key, _Hash, _Equal, _Alloc>\n{\n};\n#endif // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nclass __hash_table\n{\npublic:\n    typedef _Tp    value_type;\n    typedef _Hash  hasher;\n    typedef _Equal key_equal;\n    typedef _Alloc allocator_type;\n\nprivate:\n    typedef allocator_traits<allocator_type> __alloc_traits;\n    typedef typename\n      __make_hash_node_types<value_type, typename __alloc_traits::void_pointer>::type\n                                                                     _NodeTypes;\npublic:\n\n    typedef typename _NodeTypes::__node_value_type           __node_value_type;\n    typedef typename _NodeTypes::__container_value_type      __container_value_type;\n    typedef typename _NodeTypes::key_type                    key_type;\n    typedef value_type&                              reference;\n    typedef const value_type&                        const_reference;\n    typedef typename __alloc_traits::pointer         pointer;\n    typedef typename __alloc_traits::const_pointer   const_pointer;\n#ifndef _LIBCPP_ABI_FIX_UNORDERED_CONTAINER_SIZE_TYPE\n    typedef typename __alloc_traits::size_type       size_type;\n#else\n    typedef typename _NodeTypes::size_type           size_type;\n#endif\n    typedef typename _NodeTypes::difference_type     difference_type;\npublic:\n    // Create __node\n\n    typedef typename _NodeTypes::__node_type __node;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator;\n    typedef allocator_traits<__node_allocator>       __node_traits;\n    typedef typename _NodeTypes::__void_pointer      __void_pointer;\n    typedef typename _NodeTypes::__node_pointer      __node_pointer;\n    typedef typename _NodeTypes::__node_pointer      __node_const_pointer;\n    typedef typename _NodeTypes::__node_base_type    __first_node;\n    typedef typename _NodeTypes::__node_base_pointer __node_base_pointer;\n    typedef typename _NodeTypes::__next_pointer      __next_pointer;\n\nprivate:\n    // check for sane allocator pointer rebinding semantics. Rebinding the\n    // allocator for a new pointer type should be exactly the same as rebinding\n    // the pointer using 'pointer_traits'.\n    static_assert((is_same<__node_pointer, typename __node_traits::pointer>::value),\n                  \"Allocator does not rebind pointers in a sane manner.\");\n    typedef typename __rebind_alloc_helper<__node_traits, __first_node>::type\n        __node_base_allocator;\n    typedef allocator_traits<__node_base_allocator> __node_base_traits;\n    static_assert((is_same<__node_base_pointer, typename __node_base_traits::pointer>::value),\n                 \"Allocator does not rebind pointers in a sane manner.\");\n\nprivate:\n\n    typedef typename __rebind_alloc_helper<__node_traits, __next_pointer>::type __pointer_allocator;\n    typedef __bucket_list_deallocator<__pointer_allocator> __bucket_list_deleter;\n    typedef unique_ptr<__next_pointer[], __bucket_list_deleter> __bucket_list;\n    typedef allocator_traits<__pointer_allocator>          __pointer_alloc_traits;\n    typedef typename __bucket_list_deleter::pointer       __node_pointer_pointer;\n\n#ifndef _LIBCPP_CXX03_LANG\n    static_assert(__diagnose_hash_table_helper<_Tp, _Hash, _Equal, _Alloc>::__trigger_diagnostics(), \"\");\n#endif\n\n    // --- Member data begin ---\n    __bucket_list                                         __bucket_list_;\n    __compressed_pair<__first_node, __node_allocator>     __p1_;\n    __compressed_pair<size_type, hasher>                  __p2_;\n    __compressed_pair<float, key_equal>                   __p3_;\n    // --- Member data end ---\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type& size() _NOEXCEPT {return __p2_.first();}\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    size_type  size() const _NOEXCEPT {return __p2_.first();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher& hash_function() _NOEXCEPT {return __p2_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const hasher& hash_function() const _NOEXCEPT {return __p2_.second();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    float& max_load_factor() _NOEXCEPT {return __p3_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n    float  max_load_factor() const _NOEXCEPT {return __p3_.first();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal& key_eq() _NOEXCEPT {return __p3_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const key_equal& key_eq() const _NOEXCEPT {return __p3_.second();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __node_allocator& __node_alloc() _NOEXCEPT {return __p1_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const __node_allocator& __node_alloc() const _NOEXCEPT\n        {return __p1_.second();}\n\npublic:\n    typedef __hash_iterator<__node_pointer>                   iterator;\n    typedef __hash_const_iterator<__node_pointer>             const_iterator;\n    typedef __hash_local_iterator<__node_pointer>             local_iterator;\n    typedef __hash_const_local_iterator<__node_pointer>       const_local_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_table()\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<__bucket_list>::value &&\n            is_nothrow_default_constructible<__first_node>::value &&\n            is_nothrow_default_constructible<__node_allocator>::value &&\n            is_nothrow_default_constructible<hasher>::value &&\n            is_nothrow_default_constructible<key_equal>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_table(const hasher& __hf, const key_equal& __eql);\n    __hash_table(const hasher& __hf, const key_equal& __eql,\n                 const allocator_type& __a);\n    explicit __hash_table(const allocator_type& __a);\n    __hash_table(const __hash_table& __u);\n    __hash_table(const __hash_table& __u, const allocator_type& __a);\n#ifndef _LIBCPP_CXX03_LANG\n    __hash_table(__hash_table&& __u)\n        _NOEXCEPT_(\n            is_nothrow_move_constructible<__bucket_list>::value &&\n            is_nothrow_move_constructible<__first_node>::value &&\n            is_nothrow_move_constructible<__node_allocator>::value &&\n            is_nothrow_move_constructible<hasher>::value &&\n            is_nothrow_move_constructible<key_equal>::value);\n    __hash_table(__hash_table&& __u, const allocator_type& __a);\n#endif  // _LIBCPP_CXX03_LANG\n    ~__hash_table();\n\n    __hash_table& operator=(const __hash_table& __u);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_table& operator=(__hash_table&& __u)\n        _NOEXCEPT_(\n            __node_traits::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<__node_allocator>::value &&\n            is_nothrow_move_assignable<hasher>::value &&\n            is_nothrow_move_assignable<key_equal>::value);\n#endif\n    template <class _InputIterator>\n        void __assign_unique(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        void __assign_multi(_InputIterator __first, _InputIterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT\n    {\n        return std::min<size_type>(\n            __node_traits::max_size(__node_alloc()),\n            numeric_limits<difference_type >::max()\n        );\n    }\n\n    pair<iterator, bool> __node_insert_unique(__node_pointer __nd);\n    iterator             __node_insert_multi(__node_pointer __nd);\n    iterator             __node_insert_multi(const_iterator __p,\n                                             __node_pointer __nd);\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Key, class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __emplace_unique_key_args(_Key const& __k, _Args&&... __args);\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __emplace_unique_impl(_Args&&... __args);\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __emplace_unique(_Pp&& __x) {\n      return __emplace_unique_extract_key(_VSTD::forward<_Pp>(__x),\n                                          __can_extract_key<_Pp, key_type>());\n    }\n\n    template <class _First, class _Second>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<\n        __can_extract_map_key<_First, key_type, __container_value_type>::value,\n        pair<iterator, bool>\n    >::type __emplace_unique(_First&& __f, _Second&& __s) {\n        return __emplace_unique_key_args(__f, _VSTD::forward<_First>(__f),\n                                              _VSTD::forward<_Second>(__s));\n    }\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __emplace_unique(_Args&&... __args) {\n      return __emplace_unique_impl(_VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n    __emplace_unique_extract_key(_Pp&& __x, __extract_key_fail_tag) {\n      return __emplace_unique_impl(_VSTD::forward<_Pp>(__x));\n    }\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n    __emplace_unique_extract_key(_Pp&& __x, __extract_key_self_tag) {\n      return __emplace_unique_key_args(__x, _VSTD::forward<_Pp>(__x));\n    }\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n    __emplace_unique_extract_key(_Pp&& __x, __extract_key_first_tag) {\n      return __emplace_unique_key_args(__x.first, _VSTD::forward<_Pp>(__x));\n    }\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __emplace_multi(_Args&&... __args);\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __emplace_hint_multi(const_iterator __p, _Args&&... __args);\n\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n    __insert_unique(__container_value_type&& __x) {\n      return __emplace_unique_key_args(_NodeTypes::__get_key(__x), _VSTD::move(__x));\n    }\n\n    template <class _Pp, class = typename enable_if<\n            !__is_same_uncvref<_Pp, __container_value_type>::value\n        >::type>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __insert_unique(_Pp&& __x) {\n      return __emplace_unique(_VSTD::forward<_Pp>(__x));\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_multi(_Pp&& __x) {\n      return __emplace_multi(_VSTD::forward<_Pp>(__x));\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_multi(const_iterator __p, _Pp&& __x) {\n        return __emplace_hint_multi(__p, _VSTD::forward<_Pp>(__x));\n    }\n\n#else  // !defined(_LIBCPP_CXX03_LANG)\n    template <class _Key, class _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __emplace_unique_key_args(_Key const&, _Args& __args);\n\n    iterator __insert_multi(const __container_value_type& __x);\n    iterator __insert_multi(const_iterator __p, const __container_value_type& __x);\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __insert_unique(const __container_value_type& __x) {\n        return __emplace_unique_key_args(_NodeTypes::__get_key(__x), __x);\n    }\n\n    void clear() _NOEXCEPT;\n    void rehash(size_type __n);\n    _LIBCPP_INLINE_VISIBILITY void reserve(size_type __n)\n        {rehash(static_cast<size_type>(ceil(__n / max_load_factor())));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const _NOEXCEPT\n    {\n        return __bucket_list_.get_deleter().size();\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const _NOEXCEPT;\n\n    template <class _Key>\n        _LIBCPP_INLINE_VISIBILITY\n        size_type bucket(const _Key& __k) const\n        {\n            _LIBCPP_ASSERT(bucket_count() > 0,\n                \"unordered container::bucket(key) called when bucket_count() == 0\");\n            return __constrain_hash(hash_function()(__k), bucket_count());\n        }\n\n    template <class _Key>\n        iterator       find(const _Key& __x);\n    template <class _Key>\n        const_iterator find(const _Key& __x) const;\n\n    typedef __hash_node_destructor<__node_allocator> _Dp;\n    typedef unique_ptr<__node, _Dp> __node_holder;\n\n    iterator erase(const_iterator __p);\n    iterator erase(const_iterator __first, const_iterator __last);\n    template <class _Key>\n        size_type __erase_unique(const _Key& __k);\n    template <class _Key>\n        size_type __erase_multi(const _Key& __k);\n    __node_holder remove(const_iterator __p) _NOEXCEPT;\n\n    template <class _Key>\n        _LIBCPP_INLINE_VISIBILITY\n        size_type __count_unique(const _Key& __k) const;\n    template <class _Key>\n        size_type __count_multi(const _Key& __k) const;\n\n    template <class _Key>\n        pair<iterator, iterator>\n        __equal_range_unique(const _Key& __k);\n    template <class _Key>\n        pair<const_iterator, const_iterator>\n        __equal_range_unique(const _Key& __k) const;\n\n    template <class _Key>\n        pair<iterator, iterator>\n        __equal_range_multi(const _Key& __k);\n    template <class _Key>\n        pair<const_iterator, const_iterator>\n        __equal_range_multi(const _Key& __k) const;\n\n    void swap(__hash_table& __u)\n#if _LIBCPP_STD_VER <= 11\n        _NOEXCEPT_DEBUG_(\n            __is_nothrow_swappable<hasher>::value && __is_nothrow_swappable<key_equal>::value\n            && (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value\n                  || __is_nothrow_swappable<__pointer_allocator>::value)\n            && (!__node_traits::propagate_on_container_swap::value\n                  || __is_nothrow_swappable<__node_allocator>::value)\n            );\n#else\n     _NOEXCEPT_DEBUG_(__is_nothrow_swappable<hasher>::value && __is_nothrow_swappable<key_equal>::value);\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const _NOEXCEPT\n        {return max_size(); }\n    size_type bucket_size(size_type __n) const;\n    _LIBCPP_INLINE_VISIBILITY float load_factor() const _NOEXCEPT\n    {\n        size_type __bc = bucket_count();\n        return __bc != 0 ? (float)size() / __bc : 0.f;\n    }\n    _LIBCPP_INLINE_VISIBILITY void max_load_factor(float __mlf) _NOEXCEPT\n    {\n        _LIBCPP_ASSERT(__mlf > 0,\n            \"unordered container::max_load_factor(lf) called with lf <= 0\");\n        max_load_factor() = _VSTD::max(__mlf, load_factor());\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator\n    begin(size_type __n)\n    {\n        _LIBCPP_ASSERT(__n < bucket_count(),\n            \"unordered container::begin(n) called with n >= bucket_count()\");\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return local_iterator(__bucket_list_[__n], __n, bucket_count(), this);\n#else\n        return local_iterator(__bucket_list_[__n], __n, bucket_count());\n#endif\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator\n    end(size_type __n)\n    {\n        _LIBCPP_ASSERT(__n < bucket_count(),\n            \"unordered container::end(n) called with n >= bucket_count()\");\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return local_iterator(nullptr, __n, bucket_count(), this);\n#else\n        return local_iterator(nullptr, __n, bucket_count());\n#endif\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator\n    cbegin(size_type __n) const\n    {\n        _LIBCPP_ASSERT(__n < bucket_count(),\n            \"unordered container::cbegin(n) called with n >= bucket_count()\");\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return const_local_iterator(__bucket_list_[__n], __n, bucket_count(), this);\n#else\n        return const_local_iterator(__bucket_list_[__n], __n, bucket_count());\n#endif\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator\n    cend(size_type __n) const\n    {\n        _LIBCPP_ASSERT(__n < bucket_count(),\n            \"unordered container::cend(n) called with n >= bucket_count()\");\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return const_local_iterator(nullptr, __n, bucket_count(), this);\n#else\n        return const_local_iterator(nullptr, __n, bucket_count());\n#endif\n    }\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    bool __dereferenceable(const const_iterator* __i) const;\n    bool __decrementable(const const_iterator* __i) const;\n    bool __addable(const const_iterator* __i, ptrdiff_t __n) const;\n    bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const;\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\nprivate:\n    void __rehash(size_type __n);\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class ..._Args>\n    __node_holder __construct_node(_Args&& ...__args);\n\n    template <class _First, class ..._Rest>\n    __node_holder __construct_node_hash(size_t __hash, _First&& __f, _Rest&&... __rest);\n#else // _LIBCPP_CXX03_LANG\n    __node_holder __construct_node(const __container_value_type& __v);\n    __node_holder __construct_node_hash(size_t __hash, const __container_value_type& __v);\n#endif\n\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __hash_table& __u)\n        {__copy_assign_alloc(__u, integral_constant<bool,\n             __node_traits::propagate_on_container_copy_assignment::value>());}\n    void __copy_assign_alloc(const __hash_table& __u, true_type);\n    _LIBCPP_INLINE_VISIBILITY\n        void __copy_assign_alloc(const __hash_table&, false_type) {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    void __move_assign(__hash_table& __u, false_type);\n    void __move_assign(__hash_table& __u, true_type)\n        _NOEXCEPT_(\n            is_nothrow_move_assignable<__node_allocator>::value &&\n            is_nothrow_move_assignable<hasher>::value &&\n            is_nothrow_move_assignable<key_equal>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__hash_table& __u)\n        _NOEXCEPT_(\n            !__node_traits::propagate_on_container_move_assignment::value ||\n            (is_nothrow_move_assignable<__pointer_allocator>::value &&\n             is_nothrow_move_assignable<__node_allocator>::value))\n        {__move_assign_alloc(__u, integral_constant<bool,\n             __node_traits::propagate_on_container_move_assignment::value>());}\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__hash_table& __u, true_type)\n        _NOEXCEPT_(\n            is_nothrow_move_assignable<__pointer_allocator>::value &&\n            is_nothrow_move_assignable<__node_allocator>::value)\n    {\n        __bucket_list_.get_deleter().__alloc() =\n                _VSTD::move(__u.__bucket_list_.get_deleter().__alloc());\n        __node_alloc() = _VSTD::move(__u.__node_alloc());\n    }\n    _LIBCPP_INLINE_VISIBILITY\n        void __move_assign_alloc(__hash_table&, false_type) _NOEXCEPT {}\n#endif // _LIBCPP_CXX03_LANG\n\n    void __deallocate_node(__next_pointer __np) _NOEXCEPT;\n    __next_pointer __detach() _NOEXCEPT;\n\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;\n};\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ninline\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table()\n    _NOEXCEPT_(\n        is_nothrow_default_constructible<__bucket_list>::value &&\n        is_nothrow_default_constructible<__first_node>::value &&\n        is_nothrow_default_constructible<__node_allocator>::value &&\n        is_nothrow_default_constructible<hasher>::value &&\n        is_nothrow_default_constructible<key_equal>::value)\n    : __p2_(0),\n      __p3_(1.0f)\n{\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ninline\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf,\n                                                       const key_equal& __eql)\n    : __bucket_list_(nullptr, __bucket_list_deleter()),\n      __p1_(),\n      __p2_(0, __hf),\n      __p3_(1.0f, __eql)\n{\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const hasher& __hf,\n                                                       const key_equal& __eql,\n                                                       const allocator_type& __a)\n    : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)),\n      __p1_(__second_tag(), __node_allocator(__a)),\n      __p2_(0, __hf),\n      __p3_(1.0f, __eql)\n{\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const allocator_type& __a)\n    : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)),\n      __p1_(__second_tag(), __node_allocator(__a)),\n      __p2_(0),\n      __p3_(1.0f)\n{\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const __hash_table& __u)\n    : __bucket_list_(nullptr,\n          __bucket_list_deleter(allocator_traits<__pointer_allocator>::\n              select_on_container_copy_construction(\n                  __u.__bucket_list_.get_deleter().__alloc()), 0)),\n      __p1_(__second_tag(), allocator_traits<__node_allocator>::\n          select_on_container_copy_construction(__u.__node_alloc())),\n      __p2_(0, __u.hash_function()),\n      __p3_(__u.__p3_)\n{\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(const __hash_table& __u,\n                                                       const allocator_type& __a)\n    : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)),\n      __p1_(__second_tag(), __node_allocator(__a)),\n      __p2_(0, __u.hash_function()),\n      __p3_(__u.__p3_)\n{\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(__hash_table&& __u)\n        _NOEXCEPT_(\n            is_nothrow_move_constructible<__bucket_list>::value &&\n            is_nothrow_move_constructible<__first_node>::value &&\n            is_nothrow_move_constructible<__node_allocator>::value &&\n            is_nothrow_move_constructible<hasher>::value &&\n            is_nothrow_move_constructible<key_equal>::value)\n    : __bucket_list_(_VSTD::move(__u.__bucket_list_)),\n      __p1_(_VSTD::move(__u.__p1_)),\n      __p2_(_VSTD::move(__u.__p2_)),\n      __p3_(_VSTD::move(__u.__p3_))\n{\n    if (size() > 0)\n    {\n        __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash(), bucket_count())] =\n            __p1_.first().__ptr();\n        __u.__p1_.first().__next_ = nullptr;\n        __u.size() = 0;\n    }\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__hash_table(__hash_table&& __u,\n                                                       const allocator_type& __a)\n    : __bucket_list_(nullptr, __bucket_list_deleter(__pointer_allocator(__a), 0)),\n      __p1_(__second_tag(), __node_allocator(__a)),\n      __p2_(0, _VSTD::move(__u.hash_function())),\n      __p3_(_VSTD::move(__u.__p3_))\n{\n    if (__a == allocator_type(__u.__node_alloc()))\n    {\n        __bucket_list_.reset(__u.__bucket_list_.release());\n        __bucket_list_.get_deleter().size() = __u.__bucket_list_.get_deleter().size();\n        __u.__bucket_list_.get_deleter().size() = 0;\n        if (__u.size() > 0)\n        {\n            __p1_.first().__next_ = __u.__p1_.first().__next_;\n            __u.__p1_.first().__next_ = nullptr;\n            __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash(), bucket_count())] =\n                __p1_.first().__ptr();\n            size() = __u.size();\n            __u.size() = 0;\n        }\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::~__hash_table()\n{\n#if defined(_LIBCPP_CXX03_LANG)\n    static_assert((is_copy_constructible<key_equal>::value),\n                 \"Predicate must be copy-constructible.\");\n    static_assert((is_copy_constructible<hasher>::value),\n                 \"Hasher must be copy-constructible.\");\n#endif\n\n    __deallocate_node(__p1_.first().__next_);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__erase_c(this);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__copy_assign_alloc(\n        const __hash_table& __u, true_type)\n{\n    if (__node_alloc() != __u.__node_alloc())\n    {\n        clear();\n        __bucket_list_.reset();\n        __bucket_list_.get_deleter().size() = 0;\n    }\n    __bucket_list_.get_deleter().__alloc() = __u.__bucket_list_.get_deleter().__alloc();\n    __node_alloc() = __u.__node_alloc();\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>&\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(const __hash_table& __u)\n{\n    if (this != &__u)\n    {\n        __copy_assign_alloc(__u);\n        hash_function() = __u.hash_function();\n        key_eq() = __u.key_eq();\n        max_load_factor() = __u.max_load_factor();\n        __assign_multi(__u.begin(), __u.end());\n    }\n    return *this;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__deallocate_node(__next_pointer __np)\n    _NOEXCEPT\n{\n    __node_allocator& __na = __node_alloc();\n    while (__np != nullptr)\n    {\n        __next_pointer __next = __np->__next_;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __c_node* __c = __get_db()->__find_c_and_lock(this);\n        for (__i_node** __p = __c->end_; __p != __c->beg_; )\n        {\n            --__p;\n            iterator* __i = static_cast<iterator*>((*__p)->__i_);\n            if (__i->__node_ == __np)\n            {\n                (*__p)->__c_ = nullptr;\n                if (--__c->end_ != __p)\n                    memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*));\n            }\n        }\n        __get_db()->unlock();\n#endif\n        __node_pointer __real_np = __np->__upcast();\n        __node_traits::destroy(__na, _NodeTypes::__get_ptr(__real_np->__value_));\n        __node_traits::deallocate(__na, __real_np, 1);\n        __np = __next;\n    }\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__next_pointer\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__detach() _NOEXCEPT\n{\n    size_type __bc = bucket_count();\n    for (size_type __i = 0; __i < __bc; ++__i)\n        __bucket_list_[__i] = nullptr;\n    size() = 0;\n    __next_pointer __cache = __p1_.first().__next_;\n    __p1_.first().__next_ = nullptr;\n    return __cache;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign(\n        __hash_table& __u, true_type)\n    _NOEXCEPT_(\n        is_nothrow_move_assignable<__node_allocator>::value &&\n        is_nothrow_move_assignable<hasher>::value &&\n        is_nothrow_move_assignable<key_equal>::value)\n{\n    clear();\n    __bucket_list_.reset(__u.__bucket_list_.release());\n    __bucket_list_.get_deleter().size() = __u.__bucket_list_.get_deleter().size();\n    __u.__bucket_list_.get_deleter().size() = 0;\n    __move_assign_alloc(__u);\n    size() = __u.size();\n    hash_function() = _VSTD::move(__u.hash_function());\n    max_load_factor() = __u.max_load_factor();\n    key_eq() = _VSTD::move(__u.key_eq());\n    __p1_.first().__next_ = __u.__p1_.first().__next_;\n    if (size() > 0)\n    {\n        __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash(), bucket_count())] =\n            __p1_.first().__ptr();\n        __u.__p1_.first().__next_ = nullptr;\n        __u.size() = 0;\n    }\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__move_assign(\n        __hash_table& __u, false_type)\n{\n    if (__node_alloc() == __u.__node_alloc())\n        __move_assign(__u, true_type());\n    else\n    {\n        hash_function() = _VSTD::move(__u.hash_function());\n        key_eq() = _VSTD::move(__u.key_eq());\n        max_load_factor() = __u.max_load_factor();\n        if (bucket_count() != 0)\n        {\n            __next_pointer __cache = __detach();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n            try\n            {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n                const_iterator __i = __u.begin();\n                while (__cache != nullptr && __u.size() != 0)\n                {\n                    __cache->__upcast()->__value_ =\n                        _VSTD::move(__u.remove(__i++)->__value_);\n                    __next_pointer __next = __cache->__next_;\n                    __node_insert_multi(__cache->__upcast());\n                    __cache = __next;\n                }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n            }\n            catch (...)\n            {\n                __deallocate_node(__cache);\n                throw;\n            }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            __deallocate_node(__cache);\n        }\n        const_iterator __i = __u.begin();\n        while (__u.size() != 0)\n        {\n            __node_holder __h = __construct_node(_NodeTypes::__move(__u.remove(__i++)->__value_));\n            __node_insert_multi(__h.get());\n            __h.release();\n        }\n    }\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ninline\n__hash_table<_Tp, _Hash, _Equal, _Alloc>&\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::operator=(__hash_table&& __u)\n    _NOEXCEPT_(\n        __node_traits::propagate_on_container_move_assignment::value &&\n        is_nothrow_move_assignable<__node_allocator>::value &&\n        is_nothrow_move_assignable<hasher>::value &&\n        is_nothrow_move_assignable<key_equal>::value)\n{\n    __move_assign(__u, integral_constant<bool,\n                  __node_traits::propagate_on_container_move_assignment::value>());\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _InputIterator>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_unique(_InputIterator __first,\n                                                          _InputIterator __last)\n{\n    typedef iterator_traits<_InputIterator> _ITraits;\n    typedef typename _ITraits::value_type _ItValueType;\n    static_assert((is_same<_ItValueType, __container_value_type>::value),\n                  \"__assign_unique may only be called with the containers value type\");\n\n    if (bucket_count() != 0)\n    {\n        __next_pointer __cache = __detach();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (; __cache != nullptr && __first != __last; ++__first)\n            {\n                __cache->__upcast()->__value_ = *__first;\n                __next_pointer __next = __cache->__next_;\n                __node_insert_unique(__cache->__upcast());\n                __cache = __next;\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            __deallocate_node(__cache);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __deallocate_node(__cache);\n    }\n    for (; __first != __last; ++__first)\n        __insert_unique(*__first);\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _InputIterator>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__assign_multi(_InputIterator __first,\n                                                         _InputIterator __last)\n{\n    typedef iterator_traits<_InputIterator> _ITraits;\n    typedef typename _ITraits::value_type _ItValueType;\n    static_assert((is_same<_ItValueType, __container_value_type>::value ||\n                  is_same<_ItValueType, __node_value_type>::value),\n                  \"__assign_multi may only be called with the containers value type\"\n                  \" or the nodes value type\");\n    if (bucket_count() != 0)\n    {\n        __next_pointer __cache = __detach();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (; __cache != nullptr && __first != __last; ++__first)\n            {\n                __cache->__upcast()->__value_ = *__first;\n                __next_pointer __next = __cache->__next_;\n                __node_insert_multi(__cache->__upcast());\n                __cache = __next;\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            __deallocate_node(__cache);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __deallocate_node(__cache);\n    }\n    for (; __first != __last; ++__first)\n        __insert_multi(_NodeTypes::__get_value(*__first));\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ninline\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() _NOEXCEPT\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(__p1_.first().__next_, this);\n#else\n    return iterator(__p1_.first().__next_);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ninline\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::end() _NOEXCEPT\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(nullptr, this);\n#else\n    return iterator(nullptr);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ninline\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::begin() const _NOEXCEPT\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return const_iterator(__p1_.first().__next_, this);\n#else\n    return const_iterator(__p1_.first().__next_);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ninline\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::end() const _NOEXCEPT\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return const_iterator(nullptr, this);\n#else\n    return const_iterator(nullptr);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::clear() _NOEXCEPT\n{\n    if (size() > 0)\n    {\n        __deallocate_node(__p1_.first().__next_);\n        __p1_.first().__next_ = nullptr;\n        size_type __bc = bucket_count();\n        for (size_type __i = 0; __i < __bc; ++__i)\n            __bucket_list_[__i] = nullptr;\n        size() = 0;\n    }\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\npair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator, bool>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_unique(__node_pointer __nd)\n{\n    __nd->__hash_ = hash_function()(__nd->__value_);\n    size_type __bc = bucket_count();\n    bool __inserted = false;\n    __next_pointer __ndptr;\n    size_t __chash;\n    if (__bc != 0)\n    {\n        __chash = __constrain_hash(__nd->__hash_, __bc);\n        __ndptr = __bucket_list_[__chash];\n        if (__ndptr != nullptr)\n        {\n            for (__ndptr = __ndptr->__next_; __ndptr != nullptr &&\n                                             __constrain_hash(__ndptr->__hash(), __bc) == __chash;\n                                                     __ndptr = __ndptr->__next_)\n            {\n                if (key_eq()(__ndptr->__upcast()->__value_, __nd->__value_))\n                    goto __done;\n            }\n        }\n    }\n    {\n        if (size()+1 > __bc * max_load_factor() || __bc == 0)\n        {\n            rehash(_VSTD::max<size_type>(2 * __bc + !__is_hash_power2(__bc),\n                           size_type(ceil(float(size() + 1) / max_load_factor()))));\n            __bc = bucket_count();\n            __chash = __constrain_hash(__nd->__hash_, __bc);\n        }\n        // insert_after __bucket_list_[__chash], or __first_node if bucket is null\n        __next_pointer __pn = __bucket_list_[__chash];\n        if (__pn == nullptr)\n        {\n            __pn =__p1_.first().__ptr();\n            __nd->__next_ = __pn->__next_;\n            __pn->__next_ = __nd->__ptr();\n            // fix up __bucket_list_\n            __bucket_list_[__chash] = __pn;\n            if (__nd->__next_ != nullptr)\n                __bucket_list_[__constrain_hash(__nd->__next_->__hash(), __bc)] = __nd->__ptr();\n        }\n        else\n        {\n            __nd->__next_ = __pn->__next_;\n            __pn->__next_ = __nd->__ptr();\n        }\n        __ndptr = __nd->__ptr();\n        // increment size\n        ++size();\n        __inserted = true;\n    }\n__done:\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return pair<iterator, bool>(iterator(__ndptr, this), __inserted);\n#else\n    return pair<iterator, bool>(iterator(__ndptr), __inserted);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(__node_pointer __cp)\n{\n    __cp->__hash_ = hash_function()(__cp->__value_);\n    size_type __bc = bucket_count();\n    if (size()+1 > __bc * max_load_factor() || __bc == 0)\n    {\n        rehash(_VSTD::max<size_type>(2 * __bc + !__is_hash_power2(__bc),\n                       size_type(ceil(float(size() + 1) / max_load_factor()))));\n        __bc = bucket_count();\n    }\n    size_t __chash = __constrain_hash(__cp->__hash_, __bc);\n    __next_pointer __pn = __bucket_list_[__chash];\n    if (__pn == nullptr)\n    {\n        __pn =__p1_.first().__ptr();\n        __cp->__next_ = __pn->__next_;\n        __pn->__next_ = __cp->__ptr();\n        // fix up __bucket_list_\n        __bucket_list_[__chash] = __pn;\n        if (__cp->__next_ != nullptr)\n            __bucket_list_[__constrain_hash(__cp->__next_->__hash(), __bc)]\n                = __cp->__ptr();\n    }\n    else\n    {\n        for (bool __found = false; __pn->__next_ != nullptr &&\n                                   __constrain_hash(__pn->__next_->__hash(), __bc) == __chash;\n                                                           __pn = __pn->__next_)\n        {\n            //      __found    key_eq()     action\n            //      false       false       loop\n            //      true        true        loop\n            //      false       true        set __found to true\n            //      true        false       break\n            if (__found != (__pn->__next_->__hash() == __cp->__hash_ &&\n                            key_eq()(__pn->__next_->__upcast()->__value_, __cp->__value_)))\n            {\n                if (!__found)\n                    __found = true;\n                else\n                    break;\n            }\n        }\n        __cp->__next_ = __pn->__next_;\n        __pn->__next_ = __cp->__ptr();\n        if (__cp->__next_ != nullptr)\n        {\n            size_t __nhash = __constrain_hash(__cp->__next_->__hash(), __bc);\n            if (__nhash != __chash)\n                __bucket_list_[__nhash] = __cp->__ptr();\n        }\n    }\n    ++size();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(__cp->__ptr(), this);\n#else\n    return iterator(__cp->__ptr());\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_insert_multi(\n        const_iterator __p, __node_pointer __cp)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"unordered container::emplace_hint(const_iterator, args...) called with an iterator not\"\n        \" referring to this unordered container\");\n#endif\n    if (__p != end() && key_eq()(*__p, __cp->__value_))\n    {\n        __next_pointer __np = __p.__node_;\n        __cp->__hash_ = __np->__hash();\n        size_type __bc = bucket_count();\n        if (size()+1 > __bc * max_load_factor() || __bc == 0)\n        {\n            rehash(_VSTD::max<size_type>(2 * __bc + !__is_hash_power2(__bc),\n                           size_type(ceil(float(size() + 1) / max_load_factor()))));\n            __bc = bucket_count();\n        }\n        size_t __chash = __constrain_hash(__cp->__hash_, __bc);\n        __next_pointer __pp = __bucket_list_[__chash];\n        while (__pp->__next_ != __np)\n            __pp = __pp->__next_;\n        __cp->__next_ = __np;\n        __pp->__next_ = static_cast<__next_pointer>(__cp);\n        ++size();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return iterator(static_cast<__next_pointer>(__cp), this);\n#else\n        return iterator(static_cast<__next_pointer>(__cp));\n#endif\n    }\n    return __node_insert_multi(__cp);\n}\n\n\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key, class ..._Args>\npair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator, bool>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_key_args(_Key const& __k, _Args&&... __args)\n#else\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key, class _Args>\npair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator, bool>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_key_args(_Key const& __k, _Args& __args)\n#endif\n{\n\n    size_t __hash = hash_function()(__k);\n    size_type __bc = bucket_count();\n    bool __inserted = false;\n    __next_pointer __nd;\n    size_t __chash;\n    if (__bc != 0)\n    {\n        __chash = __constrain_hash(__hash, __bc);\n        __nd = __bucket_list_[__chash];\n        if (__nd != nullptr)\n        {\n            for (__nd = __nd->__next_; __nd != nullptr &&\n                (__nd->__hash() == __hash || __constrain_hash(__nd->__hash(), __bc) == __chash);\n                                                           __nd = __nd->__next_)\n            {\n                if (key_eq()(__nd->__upcast()->__value_, __k))\n                    goto __done;\n            }\n        }\n    }\n    {\n#ifndef _LIBCPP_CXX03_LANG\n        __node_holder __h = __construct_node_hash(__hash, _VSTD::forward<_Args>(__args)...);\n#else\n        __node_holder __h = __construct_node_hash(__hash, __args);\n#endif\n        if (size()+1 > __bc * max_load_factor() || __bc == 0)\n        {\n            rehash(_VSTD::max<size_type>(2 * __bc + !__is_hash_power2(__bc),\n                           size_type(ceil(float(size() + 1) / max_load_factor()))));\n            __bc = bucket_count();\n            __chash = __constrain_hash(__hash, __bc);\n        }\n        // insert_after __bucket_list_[__chash], or __first_node if bucket is null\n        __next_pointer __pn = __bucket_list_[__chash];\n        if (__pn == nullptr)\n        {\n            __pn = __p1_.first().__ptr();\n            __h->__next_ = __pn->__next_;\n            __pn->__next_ = __h.get()->__ptr();\n            // fix up __bucket_list_\n            __bucket_list_[__chash] = __pn;\n            if (__h->__next_ != nullptr)\n                __bucket_list_[__constrain_hash(__h->__next_->__hash(), __bc)]\n                    = __h.get()->__ptr();\n        }\n        else\n        {\n            __h->__next_ = __pn->__next_;\n            __pn->__next_ = static_cast<__next_pointer>(__h.get());\n        }\n        __nd = static_cast<__next_pointer>(__h.release());\n        // increment size\n        ++size();\n        __inserted = true;\n    }\n__done:\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return pair<iterator, bool>(iterator(__nd, this), __inserted);\n#else\n    return pair<iterator, bool>(iterator(__nd), __inserted);\n#endif\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class... _Args>\npair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator, bool>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_unique_impl(_Args&&... __args)\n{\n    __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n    pair<iterator, bool> __r = __node_insert_unique(__h.get());\n    if (__r.second)\n        __h.release();\n    return __r;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class... _Args>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_multi(_Args&&... __args)\n{\n    __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n    iterator __r = __node_insert_multi(__h.get());\n    __h.release();\n    return __r;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class... _Args>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__emplace_hint_multi(\n        const_iterator __p, _Args&&... __args)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"unordered container::emplace_hint(const_iterator, args...) called with an iterator not\"\n        \" referring to this unordered container\");\n#endif\n    __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n    iterator __r = __node_insert_multi(__p, __h.get());\n    __h.release();\n    return __r;\n}\n\n#else // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const __container_value_type& __x)\n{\n    __node_holder __h = __construct_node(__x);\n    iterator __r = __node_insert_multi(__h.get());\n    __h.release();\n    return __r;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__insert_multi(const_iterator __p,\n                                                         const __container_value_type& __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"unordered container::insert(const_iterator, lvalue) called with an iterator not\"\n        \" referring to this unordered container\");\n#endif\n    __node_holder __h = __construct_node(__x);\n    iterator __r = __node_insert_multi(__p, __h.get());\n    __h.release();\n    return __r;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::rehash(size_type __n)\n{\n    if (__n == 1)\n        __n = 2;\n    else if (__n & (__n - 1))\n        __n = __next_prime(__n);\n    size_type __bc = bucket_count();\n    if (__n > __bc)\n        __rehash(__n);\n    else if (__n < __bc)\n    {\n        __n = _VSTD::max<size_type>\n              (\n                  __n,\n                  __is_hash_power2(__bc) ? __next_hash_pow2(size_t(ceil(float(size()) / max_load_factor()))) :\n                                           __next_prime(size_t(ceil(float(size()) / max_load_factor())))\n              );\n        if (__n < __bc)\n            __rehash(__n);\n    }\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__rehash(size_type __nbc)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__invalidate_all(this);\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n    __pointer_allocator& __npa = __bucket_list_.get_deleter().__alloc();\n    __bucket_list_.reset(__nbc > 0 ?\n                      __pointer_alloc_traits::allocate(__npa, __nbc) : nullptr);\n    __bucket_list_.get_deleter().size() = __nbc;\n    if (__nbc > 0)\n    {\n        for (size_type __i = 0; __i < __nbc; ++__i)\n            __bucket_list_[__i] = nullptr;\n        __next_pointer __pp = __p1_.first().__ptr();\n        __next_pointer __cp = __pp->__next_;\n        if (__cp != nullptr)\n        {\n            size_type __chash = __constrain_hash(__cp->__hash(), __nbc);\n            __bucket_list_[__chash] = __pp;\n            size_type __phash = __chash;\n            for (__pp = __cp, __cp = __cp->__next_; __cp != nullptr;\n                                                           __cp = __pp->__next_)\n            {\n                __chash = __constrain_hash(__cp->__hash(), __nbc);\n                if (__chash == __phash)\n                    __pp = __cp;\n                else\n                {\n                    if (__bucket_list_[__chash] == nullptr)\n                    {\n                        __bucket_list_[__chash] = __pp;\n                        __pp = __cp;\n                        __phash = __chash;\n                    }\n                    else\n                    {\n                        __next_pointer __np = __cp;\n                        for (; __np->__next_ != nullptr &&\n                               key_eq()(__cp->__upcast()->__value_,\n                                        __np->__next_->__upcast()->__value_);\n                                                           __np = __np->__next_)\n                            ;\n                        __pp->__next_ = __np->__next_;\n                        __np->__next_ = __bucket_list_[__chash]->__next_;\n                        __bucket_list_[__chash]->__next_ = __cp;\n\n                    }\n                }\n            }\n        }\n    }\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k)\n{\n    size_t __hash = hash_function()(__k);\n    size_type __bc = bucket_count();\n    if (__bc != 0)\n    {\n        size_t __chash = __constrain_hash(__hash, __bc);\n        __next_pointer __nd = __bucket_list_[__chash];\n        if (__nd != nullptr)\n        {\n            for (__nd = __nd->__next_; __nd != nullptr &&\n                (__nd->__hash() == __hash\n                  || __constrain_hash(__nd->__hash(), __bc) == __chash);\n                                                           __nd = __nd->__next_)\n            {\n                if ((__nd->__hash() == __hash)\n                    && key_eq()(__nd->__upcast()->__value_, __k))\n#if _LIBCPP_DEBUG_LEVEL >= 2\n                    return iterator(__nd, this);\n#else\n                    return iterator(__nd);\n#endif\n            }\n        }\n    }\n    return end();\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::find(const _Key& __k) const\n{\n    size_t __hash = hash_function()(__k);\n    size_type __bc = bucket_count();\n    if (__bc != 0)\n    {\n        size_t __chash = __constrain_hash(__hash, __bc);\n        __next_pointer __nd = __bucket_list_[__chash];\n        if (__nd != nullptr)\n        {\n            for (__nd = __nd->__next_; __nd != nullptr &&\n                (__hash == __nd->__hash()\n                    || __constrain_hash(__nd->__hash(), __bc) == __chash);\n                                                           __nd = __nd->__next_)\n            {\n                if ((__nd->__hash() == __hash)\n                    && key_eq()(__nd->__upcast()->__value_, __k))\n#if _LIBCPP_DEBUG_LEVEL >= 2\n                    return const_iterator(__nd, this);\n#else\n                    return const_iterator(__nd);\n#endif\n            }\n        }\n\n    }\n    return end();\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class ..._Args>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(_Args&& ...__args)\n{\n    static_assert(!__is_hash_value_type<_Args...>::value,\n                  \"Construct cannot be called with a hash value type\");\n    __node_allocator& __na = __node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), _VSTD::forward<_Args>(__args)...);\n    __h.get_deleter().__value_constructed = true;\n    __h->__hash_ = hash_function()(__h->__value_);\n    __h->__next_ = nullptr;\n    return __h;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _First, class ..._Rest>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node_hash(\n    size_t __hash, _First&& __f, _Rest&& ...__rest)\n{\n    static_assert(!__is_hash_value_type<_First, _Rest...>::value,\n                  \"Construct cannot be called with a hash value type\");\n    __node_allocator& __na = __node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_),\n                             _VSTD::forward<_First>(__f),\n                             _VSTD::forward<_Rest>(__rest)...);\n    __h.get_deleter().__value_constructed = true;\n    __h->__hash_ = __hash;\n    __h->__next_ = nullptr;\n    return __h;\n}\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node(const __container_value_type& __v)\n{\n    __node_allocator& __na = __node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), __v);\n    __h.get_deleter().__value_constructed = true;\n    __h->__hash_ = hash_function()(__h->__value_);\n    __h->__next_ = nullptr;\n    return _LIBCPP_EXPLICIT_MOVE(__h);  // explicitly moved for C++03\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__construct_node_hash(size_t __hash,\n                                                                const __container_value_type& __v)\n{\n    __node_allocator& __na = __node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), __v);\n    __h.get_deleter().__value_constructed = true;\n    __h->__hash_ = __hash;\n    __h->__next_ = nullptr;\n    return _LIBCPP_EXPLICIT_MOVE(__h);  // explicitly moved for C++03\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __p)\n{\n    __next_pointer __np = __p.__node_;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"unordered container erase(iterator) called with an iterator not\"\n        \" referring to this container\");\n    _LIBCPP_ASSERT(__p != end(),\n        \"unordered container erase(iterator) called with a non-dereferenceable iterator\");\n    iterator __r(__np, this);\n#else\n    iterator __r(__np);\n#endif\n    ++__r;\n    remove(__p);\n    return __r;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::erase(const_iterator __first,\n                                                const_iterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this,\n        \"unodered container::erase(iterator, iterator) called with an iterator not\"\n        \" referring to this unodered container\");\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__last) == this,\n        \"unodered container::erase(iterator, iterator) called with an iterator not\"\n        \" referring to this unodered container\");\n#endif\n    for (const_iterator __p = __first; __first != __last; __p = __first)\n    {\n        ++__first;\n        erase(__p);\n    }\n    __next_pointer __np = __last.__node_;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator (__np, this);\n#else\n    return iterator (__np);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__erase_unique(const _Key& __k)\n{\n    iterator __i = find(__k);\n    if (__i == end())\n        return 0;\n    erase(__i);\n    return 1;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__erase_multi(const _Key& __k)\n{\n    size_type __r = 0;\n    iterator __i = find(__k);\n    if (__i != end())\n    {\n        iterator __e = end();\n        do\n        {\n            erase(__i++);\n            ++__r;\n        } while (__i != __e && key_eq()(*__i, __k));\n    }\n    return __r;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::__node_holder\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::remove(const_iterator __p) _NOEXCEPT\n{\n    // current node\n    __next_pointer __cn = __p.__node_;\n    size_type __bc = bucket_count();\n    size_t __chash = __constrain_hash(__cn->__hash(), __bc);\n    // find previous node\n    __next_pointer __pn = __bucket_list_[__chash];\n    for (; __pn->__next_ != __cn; __pn = __pn->__next_)\n        ;\n    // Fix up __bucket_list_\n        // if __pn is not in same bucket (before begin is not in same bucket) &&\n        //    if __cn->__next_ is not in same bucket (nullptr is not in same bucket)\n    if (__pn == __p1_.first().__ptr()\n            || __constrain_hash(__pn->__hash(), __bc) != __chash)\n    {\n        if (__cn->__next_ == nullptr\n            || __constrain_hash(__cn->__next_->__hash(), __bc) != __chash)\n            __bucket_list_[__chash] = nullptr;\n    }\n        // if __cn->__next_ is not in same bucket (nullptr is in same bucket)\n    if (__cn->__next_ != nullptr)\n    {\n        size_t __nhash = __constrain_hash(__cn->__next_->__hash(), __bc);\n        if (__nhash != __chash)\n            __bucket_list_[__nhash] = __pn;\n    }\n    // remove __cn\n    __pn->__next_ = __cn->__next_;\n    __cn->__next_ = nullptr;\n    --size();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __c_node* __c = __get_db()->__find_c_and_lock(this);\n    for (__i_node** __dp = __c->end_; __dp != __c->beg_; )\n    {\n        --__dp;\n        iterator* __i = static_cast<iterator*>((*__dp)->__i_);\n        if (__i->__node_ == __cn)\n        {\n            (*__dp)->__c_ = nullptr;\n            if (--__c->end_ != __dp)\n                memmove(__dp, __dp+1, (__c->end_ - __dp)*sizeof(__i_node*));\n        }\n    }\n    __get_db()->unlock();\n#endif\n    return __node_holder(__cn->__upcast(), _Dp(__node_alloc(), true));\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\ninline\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_unique(const _Key& __k) const\n{\n    return static_cast<size_type>(find(__k) != end());\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__count_multi(const _Key& __k) const\n{\n    size_type __r = 0;\n    const_iterator __i = find(__k);\n    if (__i != end())\n    {\n        const_iterator __e = end();\n        do\n        {\n            ++__i;\n            ++__r;\n        } while (__i != __e && key_eq()(*__i, __k));\n    }\n    return __r;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\npair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator,\n     typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_unique(\n        const _Key& __k)\n{\n    iterator __i = find(__k);\n    iterator __j = __i;\n    if (__i != end())\n        ++__j;\n    return pair<iterator, iterator>(__i, __j);\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\npair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator,\n     typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_unique(\n        const _Key& __k) const\n{\n    const_iterator __i = find(__k);\n    const_iterator __j = __i;\n    if (__i != end())\n        ++__j;\n    return pair<const_iterator, const_iterator>(__i, __j);\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\npair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator,\n     typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::iterator>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi(\n        const _Key& __k)\n{\n    iterator __i = find(__k);\n    iterator __j = __i;\n    if (__i != end())\n    {\n        iterator __e = end();\n        do\n        {\n            ++__j;\n        } while (__j != __e && key_eq()(*__j, __k));\n    }\n    return pair<iterator, iterator>(__i, __j);\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntemplate <class _Key>\npair<typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator,\n     typename __hash_table<_Tp, _Hash, _Equal, _Alloc>::const_iterator>\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__equal_range_multi(\n        const _Key& __k) const\n{\n    const_iterator __i = find(__k);\n    const_iterator __j = __i;\n    if (__i != end())\n    {\n        const_iterator __e = end();\n        do\n        {\n            ++__j;\n        } while (__j != __e && key_eq()(*__j, __k));\n    }\n    return pair<const_iterator, const_iterator>(__i, __j);\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nvoid\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::swap(__hash_table& __u)\n#if _LIBCPP_STD_VER <= 11\n    _NOEXCEPT_DEBUG_(\n        __is_nothrow_swappable<hasher>::value && __is_nothrow_swappable<key_equal>::value\n        && (!allocator_traits<__pointer_allocator>::propagate_on_container_swap::value\n              || __is_nothrow_swappable<__pointer_allocator>::value)\n        && (!__node_traits::propagate_on_container_swap::value\n              || __is_nothrow_swappable<__node_allocator>::value)\n            )\n#else\n  _NOEXCEPT_DEBUG_(__is_nothrow_swappable<hasher>::value && __is_nothrow_swappable<key_equal>::value)\n#endif\n{\n    _LIBCPP_ASSERT(__node_traits::propagate_on_container_swap::value ||\n                   this->__node_alloc() == __u.__node_alloc(),\n                   \"list::swap: Either propagate_on_container_swap must be true\"\n                   \" or the allocators must compare equal\");\n    {\n    __node_pointer_pointer __npp = __bucket_list_.release();\n    __bucket_list_.reset(__u.__bucket_list_.release());\n    __u.__bucket_list_.reset(__npp);\n    }\n    _VSTD::swap(__bucket_list_.get_deleter().size(), __u.__bucket_list_.get_deleter().size());\n    __swap_allocator(__bucket_list_.get_deleter().__alloc(),\n             __u.__bucket_list_.get_deleter().__alloc());\n    __swap_allocator(__node_alloc(), __u.__node_alloc());\n    _VSTD::swap(__p1_.first().__next_, __u.__p1_.first().__next_);\n    __p2_.swap(__u.__p2_);\n    __p3_.swap(__u.__p3_);\n    if (size() > 0)\n        __bucket_list_[__constrain_hash(__p1_.first().__next_->__hash(), bucket_count())] =\n            __p1_.first().__ptr();\n    if (__u.size() > 0)\n        __u.__bucket_list_[__constrain_hash(__u.__p1_.first().__next_->__hash(), __u.bucket_count())] =\n            __u.__p1_.first().__ptr();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ntypename __hash_table<_Tp, _Hash, _Equal, _Alloc>::size_type\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::bucket_size(size_type __n) const\n{\n    _LIBCPP_ASSERT(__n < bucket_count(),\n        \"unordered container::bucket_size(n) called with n >= bucket_count()\");\n    __next_pointer __np = __bucket_list_[__n];\n    size_type __bc = bucket_count();\n    size_type __r = 0;\n    if (__np != nullptr)\n    {\n        for (__np = __np->__next_; __np != nullptr &&\n                                   __constrain_hash(__np->__hash(), __bc) == __n;\n                                                    __np = __np->__next_, ++__r)\n            ;\n    }\n    return __r;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__hash_table<_Tp, _Hash, _Equal, _Alloc>& __x,\n     __hash_table<_Tp, _Hash, _Equal, _Alloc>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nbool\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__dereferenceable(const const_iterator* __i) const\n{\n    return __i->__node_ != nullptr;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nbool\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__decrementable(const const_iterator*) const\n{\n    return false;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nbool\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__addable(const const_iterator*, ptrdiff_t) const\n{\n    return false;\n}\n\ntemplate <class _Tp, class _Hash, class _Equal, class _Alloc>\nbool\n__hash_table<_Tp, _Hash, _Equal, _Alloc>::__subscriptable(const const_iterator*, ptrdiff_t) const\n{\n    return false;\n}\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP__HASH_TABLE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__libcpp_version",
    "content": "5000\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__locale",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP___LOCALE\n#define _LIBCPP___LOCALE\n\n#include <__config>\n#include <string>\n#include <memory>\n#include <utility>\n#include <mutex>\n#include <cstdint>\n#include <cctype>\n#include <locale.h>\n#if defined(_LIBCPP_MSVCRT_LIKE)\n# include <support/win32/locale_win32.h>\n#elif defined(_AIX)\n# include <support/ibm/xlocale.h>\n#elif defined(__ANDROID__)\n// Android gained the locale aware functions in L (API level 21)\n# include <android/api-level.h>\n# if __ANDROID_API__ <= 20\n#  include <support/android/locale_bionic.h>\n# endif\n#elif defined(__sun__)\n# include <xlocale.h>\n# include <support/solaris/xlocale.h>\n#elif defined(_NEWLIB_VERSION)\n# include <support/newlib/xlocale.h>\n#elif (defined(__GLIBC__) || defined(__APPLE__)      || defined(__FreeBSD__) \\\n    || defined(__EMSCRIPTEN__) || defined(__IBMCPP__))\n# include <xlocale.h>\n#elif defined(__Fuchsia__)\n# include <support/fuchsia/xlocale.h>\n#elif defined(_LIBCPP_HAS_MUSL_LIBC)\n# include <support/musl/xlocale.h>\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#if !defined(_LIBCPP_LOCALE__L_EXTENSIONS) || defined(_LIBCPP_MSVCRT)\nstruct __libcpp_locale_guard {\n  _LIBCPP_INLINE_VISIBILITY\n  __libcpp_locale_guard(locale_t& __loc) : __old_loc_(uselocale(__loc)) {}\n\n  _LIBCPP_INLINE_VISIBILITY\n  ~__libcpp_locale_guard() {\n    if (__old_loc_)\n      uselocale(__old_loc_);\n  }\n\n  locale_t __old_loc_;\nprivate:\n  __libcpp_locale_guard(__libcpp_locale_guard const&);\n  __libcpp_locale_guard& operator=(__libcpp_locale_guard const&);\n};\n#endif\n\n\nclass _LIBCPP_TYPE_VIS locale;\n\ntemplate <class _Facet>\n_LIBCPP_INLINE_VISIBILITY\nbool\nhas_facet(const locale&) _NOEXCEPT;\n\ntemplate <class _Facet>\n_LIBCPP_INLINE_VISIBILITY\nconst _Facet&\nuse_facet(const locale&);\n\nclass _LIBCPP_TYPE_VIS locale\n{\npublic:\n    // types:\n    class _LIBCPP_TYPE_VIS facet;\n    class _LIBCPP_TYPE_VIS id;\n\n    typedef int category;\n    _LIBCPP_AVAILABILITY_LOCALE_CATEGORY\n    static const category // values assigned here are for exposition only\n        none     = 0,\n        collate  = LC_COLLATE_MASK,\n        ctype    = LC_CTYPE_MASK,\n        monetary = LC_MONETARY_MASK,\n        numeric  = LC_NUMERIC_MASK,\n        time     = LC_TIME_MASK,\n        messages = LC_MESSAGES_MASK,\n        all = collate | ctype | monetary | numeric | time | messages;\n\n    // construct/copy/destroy:\n    locale()  _NOEXCEPT;\n    locale(const locale&)  _NOEXCEPT;\n    explicit locale(const char*);\n    explicit locale(const string&);\n    locale(const locale&, const char*, category);\n    locale(const locale&, const string&, category);\n    template <class _Facet>\n        _LIBCPP_INLINE_VISIBILITY locale(const locale&, _Facet*);\n    locale(const locale&, const locale&, category);\n\n    ~locale();\n\n    const locale& operator=(const locale&)  _NOEXCEPT;\n\n    template <class _Facet>\n      _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n      locale combine(const locale&) const;\n\n    // locale operations:\n    string name() const;\n    bool operator==(const locale&) const;\n    bool operator!=(const locale& __y) const {return !(*this == __y);}\n    template <class _CharT, class _Traits, class _Allocator>\n      _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n      bool operator()(const basic_string<_CharT, _Traits, _Allocator>&,\n                      const basic_string<_CharT, _Traits, _Allocator>&) const;\n\n    // global locale objects:\n    static locale global(const locale&);\n    static const locale& classic();\n\nprivate:\n    class __imp;\n    __imp* __locale_;\n\n    void __install_ctor(const locale&, facet*, long);\n    static locale& __global();\n    bool has_facet(id&) const;\n    const facet* use_facet(id&) const;\n\n    template <class _Facet> friend bool has_facet(const locale&)  _NOEXCEPT;\n    template <class _Facet> friend const _Facet& use_facet(const locale&);\n};\n\nclass _LIBCPP_TYPE_VIS locale::facet\n    : public __shared_count\n{\nprotected:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit facet(size_t __refs = 0)\n        : __shared_count(static_cast<long>(__refs)-1) {}\n\n    virtual ~facet();\n\n//    facet(const facet&) = delete;     // effectively done in __shared_count\n//    void operator=(const facet&) = delete;\nprivate:\n    virtual void __on_zero_shared() _NOEXCEPT;\n};\n\nclass _LIBCPP_TYPE_VIS locale::id\n{\n    once_flag      __flag_;\n    int32_t        __id_;\n\n    static int32_t __next_id;\npublic:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR id() :__id_(0) {}\nprivate:\n    void __init();\n    void operator=(const id&); // = delete;\n    id(const id&); // = delete;\npublic:  // only needed for tests\n    long __get();\n\n    friend class locale;\n    friend class locale::__imp;\n};\n\ntemplate <class _Facet>\ninline _LIBCPP_INLINE_VISIBILITY\nlocale::locale(const locale& __other, _Facet* __f)\n{\n    __install_ctor(__other, __f, __f ? __f->id.__get() : 0);\n}\n\ntemplate <class _Facet>\nlocale\nlocale::combine(const locale& __other) const\n{\n    if (!_VSTD::has_facet<_Facet>(__other))\n        __throw_runtime_error(\"locale::combine: locale missing facet\");\n\n    return locale(*this, &const_cast<_Facet&>(_VSTD::use_facet<_Facet>(__other)));\n}\n\ntemplate <class _Facet>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nhas_facet(const locale& __l)  _NOEXCEPT\n{\n    return __l.has_facet(_Facet::id);\n}\n\ntemplate <class _Facet>\ninline _LIBCPP_INLINE_VISIBILITY\nconst _Facet&\nuse_facet(const locale& __l)\n{\n    return static_cast<const _Facet&>(*__l.use_facet(_Facet::id));\n}\n\n// template <class _CharT> class collate;\n\ntemplate <class _CharT>\nclass _LIBCPP_TEMPLATE_VIS collate\n    : public locale::facet\n{\npublic:\n    typedef _CharT char_type;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit collate(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    int compare(const char_type* __lo1, const char_type* __hi1,\n                const char_type* __lo2, const char_type* __hi2) const\n    {\n        return do_compare(__lo1, __hi1, __lo2, __hi2);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    string_type transform(const char_type* __lo, const char_type* __hi) const\n    {\n        return do_transform(__lo, __hi);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    long hash(const char_type* __lo, const char_type* __hi) const\n    {\n        return do_hash(__lo, __hi);\n    }\n\n    static locale::id id;\n\nprotected:\n    ~collate();\n    virtual int do_compare(const char_type* __lo1, const char_type* __hi1,\n                           const char_type* __lo2, const char_type* __hi2) const;\n    virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const\n        {return string_type(__lo, __hi);}\n    virtual long do_hash(const char_type* __lo, const char_type* __hi) const;\n};\n\ntemplate <class _CharT> locale::id collate<_CharT>::id;\n\ntemplate <class _CharT>\ncollate<_CharT>::~collate()\n{\n}\n\ntemplate <class _CharT>\nint\ncollate<_CharT>::do_compare(const char_type* __lo1, const char_type* __hi1,\n                            const char_type* __lo2, const char_type* __hi2) const\n{\n    for (; __lo2 != __hi2; ++__lo1, ++__lo2)\n    {\n        if (__lo1 == __hi1 || *__lo1 < *__lo2)\n            return -1;\n        if (*__lo2 < *__lo1)\n            return 1;\n    }\n    return __lo1 != __hi1;\n}\n\ntemplate <class _CharT>\nlong\ncollate<_CharT>::do_hash(const char_type* __lo, const char_type* __hi) const\n{\n    size_t __h = 0;\n    const size_t __sr = __CHAR_BIT__ * sizeof(size_t) - 8;\n    const size_t __mask = size_t(0xF) << (__sr + 4);\n    for(const char_type* __p = __lo; __p != __hi; ++__p)\n    {\n        __h = (__h << 4) + static_cast<size_t>(*__p);\n        size_t __g = __h & __mask;\n        __h ^= __g | (__g >> __sr);\n    }\n    return static_cast<long>(__h);\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS collate<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS collate<wchar_t>)\n\n// template <class CharT> class collate_byname;\n\ntemplate <class _CharT> class _LIBCPP_TEMPLATE_VIS collate_byname;\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS collate_byname<char>\n    : public collate<char>\n{\n    locale_t __l;\npublic:\n    typedef char char_type;\n    typedef basic_string<char_type> string_type;\n\n    explicit collate_byname(const char* __n, size_t __refs = 0);\n    explicit collate_byname(const string& __n, size_t __refs = 0);\n\nprotected:\n    ~collate_byname();\n    virtual int do_compare(const char_type* __lo1, const char_type* __hi1,\n                           const char_type* __lo2, const char_type* __hi2) const;\n    virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const;\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS collate_byname<wchar_t>\n    : public collate<wchar_t>\n{\n    locale_t __l;\npublic:\n    typedef wchar_t char_type;\n    typedef basic_string<char_type> string_type;\n\n    explicit collate_byname(const char* __n, size_t __refs = 0);\n    explicit collate_byname(const string& __n, size_t __refs = 0);\n\nprotected:\n    ~collate_byname();\n\n    virtual int do_compare(const char_type* __lo1, const char_type* __hi1,\n                           const char_type* __lo2, const char_type* __hi2) const;\n    virtual string_type do_transform(const char_type* __lo, const char_type* __hi) const;\n};\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbool\nlocale::operator()(const basic_string<_CharT, _Traits, _Allocator>& __x,\n                   const basic_string<_CharT, _Traits, _Allocator>& __y) const\n{\n    return _VSTD::use_facet<_VSTD::collate<_CharT> >(*this).compare(\n                                       __x.data(), __x.data() + __x.size(),\n                                       __y.data(), __y.data() + __y.size()) < 0;\n}\n\n// template <class charT> class ctype\n\nclass _LIBCPP_TYPE_VIS ctype_base\n{\npublic:\n#if defined(__GLIBC__)\n    typedef unsigned short mask;\n    static const mask space  = _ISspace;\n    static const mask print  = _ISprint;\n    static const mask cntrl  = _IScntrl;\n    static const mask upper  = _ISupper;\n    static const mask lower  = _ISlower;\n    static const mask alpha  = _ISalpha;\n    static const mask digit  = _ISdigit;\n    static const mask punct  = _ISpunct;\n    static const mask xdigit = _ISxdigit;\n    static const mask blank  = _ISblank;\n#elif defined(_LIBCPP_MSVCRT_LIKE)\n    typedef unsigned short mask;\n    static const mask space  = _SPACE;\n    static const mask print  = _BLANK|_PUNCT|_ALPHA|_DIGIT;\n    static const mask cntrl  = _CONTROL;\n    static const mask upper  = _UPPER;\n    static const mask lower  = _LOWER;\n    static const mask alpha  = _ALPHA;\n    static const mask digit  = _DIGIT;\n    static const mask punct  = _PUNCT;\n    static const mask xdigit = _HEX;\n    static const mask blank  = _BLANK;\n# define _LIBCPP_CTYPE_MASK_IS_COMPOSITE_PRINT\n#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || defined(__NetBSD__)\n# ifdef __APPLE__\n    typedef __uint32_t mask;\n# elif defined(__FreeBSD__)\n    typedef unsigned long mask;\n# elif defined(__EMSCRIPTEN__) || defined(__NetBSD__)\n    typedef unsigned short mask;\n# endif\n    static const mask space  = _CTYPE_S;\n    static const mask print  = _CTYPE_R;\n    static const mask cntrl  = _CTYPE_C;\n    static const mask upper  = _CTYPE_U;\n    static const mask lower  = _CTYPE_L;\n    static const mask alpha  = _CTYPE_A;\n    static const mask digit  = _CTYPE_D;\n    static const mask punct  = _CTYPE_P;\n    static const mask xdigit = _CTYPE_X;\n\n# if defined(__NetBSD__)\n    static const mask blank  = _CTYPE_BL;\n# else\n    static const mask blank  = _CTYPE_B;\n# endif\n#elif defined(__sun__) || defined(_AIX)\n    typedef unsigned int mask;\n    static const mask space  = _ISSPACE;\n    static const mask print  = _ISPRINT;\n    static const mask cntrl  = _ISCNTRL;\n    static const mask upper  = _ISUPPER;\n    static const mask lower  = _ISLOWER;\n    static const mask alpha  = _ISALPHA;\n    static const mask digit  = _ISDIGIT;\n    static const mask punct  = _ISPUNCT;\n    static const mask xdigit = _ISXDIGIT;\n    static const mask blank  = _ISBLANK;\n#elif defined(_NEWLIB_VERSION)\n    // Same type as Newlib's _ctype_ array in newlib/libc/include/ctype.h.\n    typedef char mask;\n    static const mask space  = _S;\n    static const mask print  = _P | _U | _L | _N | _B;\n    static const mask cntrl  = _C;\n    static const mask upper  = _U;\n    static const mask lower  = _L;\n    static const mask alpha  = _U | _L;\n    static const mask digit  = _N;\n    static const mask punct  = _P;\n    static const mask xdigit = _X | _N;\n    static const mask blank  = _B;\n# define _LIBCPP_CTYPE_MASK_IS_COMPOSITE_PRINT\n# define _LIBCPP_CTYPE_MASK_IS_COMPOSITE_ALPHA\n# define _LIBCPP_CTYPE_MASK_IS_COMPOSITE_XDIGIT\n#else\n    typedef unsigned long mask;\n    static const mask space  = 1<<0;\n    static const mask print  = 1<<1;\n    static const mask cntrl  = 1<<2;\n    static const mask upper  = 1<<3;\n    static const mask lower  = 1<<4;\n    static const mask alpha  = 1<<5;\n    static const mask digit  = 1<<6;\n    static const mask punct  = 1<<7;\n    static const mask xdigit = 1<<8;\n    static const mask blank  = 1<<9;\n#endif\n    static const mask alnum  = alpha | digit;\n    static const mask graph  = alnum | punct;\n\n    _LIBCPP_ALWAYS_INLINE ctype_base() {}\n};\n\ntemplate <class _CharT> class _LIBCPP_TEMPLATE_VIS ctype;\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS ctype<wchar_t>\n    : public locale::facet,\n      public ctype_base\n{\npublic:\n    typedef wchar_t char_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit ctype(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    bool is(mask __m, char_type __c) const\n    {\n        return do_is(__m, __c);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const\n    {\n        return do_is(__low, __high, __vec);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* scan_is(mask __m, const char_type* __low, const char_type* __high) const\n    {\n        return do_scan_is(__m, __low, __high);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const\n    {\n        return do_scan_not(__m, __low, __high);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    char_type toupper(char_type __c) const\n    {\n        return do_toupper(__c);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* toupper(char_type* __low, const char_type* __high) const\n    {\n        return do_toupper(__low, __high);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    char_type tolower(char_type __c) const\n    {\n        return do_tolower(__c);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* tolower(char_type* __low, const char_type* __high) const\n    {\n        return do_tolower(__low, __high);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    char_type widen(char __c) const\n    {\n        return do_widen(__c);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char* widen(const char* __low, const char* __high, char_type* __to) const\n    {\n        return do_widen(__low, __high, __to);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    char narrow(char_type __c, char __dfault) const\n    {\n        return do_narrow(__c, __dfault);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const\n    {\n        return do_narrow(__low, __high, __dfault, __to);\n    }\n\n    static locale::id id;\n\nprotected:\n    ~ctype();\n    virtual bool do_is(mask __m, char_type __c) const;\n    virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const;\n    virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const;\n    virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const;\n    virtual char_type do_toupper(char_type) const;\n    virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const;\n    virtual char_type do_tolower(char_type) const;\n    virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const;\n    virtual char_type do_widen(char) const;\n    virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const;\n    virtual char do_narrow(char_type, char __dfault) const;\n    virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const;\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS ctype<char>\n    : public locale::facet, public ctype_base\n{\n    const mask* __tab_;\n    bool        __del_;\npublic:\n    typedef char char_type;\n\n    explicit ctype(const mask* __tab = 0, bool __del = false, size_t __refs = 0);\n\n    _LIBCPP_ALWAYS_INLINE\n    bool is(mask __m, char_type __c) const\n    {\n        return isascii(__c) ? (__tab_[static_cast<int>(__c)] & __m) !=0 : false;\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* is(const char_type* __low, const char_type* __high, mask* __vec) const\n    {\n        for (; __low != __high; ++__low, ++__vec)\n            *__vec = isascii(*__low) ? __tab_[static_cast<int>(*__low)] : 0;\n        return __low;\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* scan_is (mask __m, const char_type* __low, const char_type* __high) const\n    {\n        for (; __low != __high; ++__low)\n            if (isascii(*__low) && (__tab_[static_cast<int>(*__low)] & __m))\n                break;\n        return __low;\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* scan_not(mask __m, const char_type* __low, const char_type* __high) const\n    {\n        for (; __low != __high; ++__low)\n            if (!(isascii(*__low) && (__tab_[static_cast<int>(*__low)] & __m)))\n                break;\n        return __low;\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    char_type toupper(char_type __c) const\n    {\n        return do_toupper(__c);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* toupper(char_type* __low, const char_type* __high) const\n    {\n        return do_toupper(__low, __high);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    char_type tolower(char_type __c) const\n    {\n        return do_tolower(__c);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char_type* tolower(char_type* __low, const char_type* __high) const\n    {\n        return do_tolower(__low, __high);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    char_type widen(char __c) const\n    {\n        return do_widen(__c);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char* widen(const char* __low, const char* __high, char_type* __to) const\n    {\n        return do_widen(__low, __high, __to);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    char narrow(char_type __c, char __dfault) const\n    {\n        return do_narrow(__c, __dfault);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    const char* narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const\n    {\n        return do_narrow(__low, __high, __dfault, __to);\n    }\n\n    static locale::id id;\n\n#ifdef _CACHED_RUNES\n    static const size_t table_size = _CACHED_RUNES;\n#else\n    static const size_t table_size = 256;  // FIXME: Don't hardcode this.\n#endif\n    _LIBCPP_ALWAYS_INLINE const mask* table() const  _NOEXCEPT {return __tab_;}\n    static const mask* classic_table()  _NOEXCEPT;\n#if defined(__GLIBC__) || defined(__EMSCRIPTEN__)\n    static const int* __classic_upper_table() _NOEXCEPT;\n    static const int* __classic_lower_table() _NOEXCEPT;\n#endif\n#if defined(__NetBSD__)\n    static const short* __classic_upper_table() _NOEXCEPT;\n    static const short* __classic_lower_table() _NOEXCEPT;\n#endif\n\nprotected:\n    ~ctype();\n    virtual char_type do_toupper(char_type __c) const;\n    virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const;\n    virtual char_type do_tolower(char_type __c) const;\n    virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const;\n    virtual char_type do_widen(char __c) const;\n    virtual const char* do_widen(const char* __low, const char* __high, char_type* __to) const;\n    virtual char do_narrow(char_type __c, char __dfault) const;\n    virtual const char* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __to) const;\n};\n\n// template <class CharT> class ctype_byname;\n\ntemplate <class _CharT> class _LIBCPP_TEMPLATE_VIS ctype_byname;\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS ctype_byname<char>\n    : public ctype<char>\n{\n    locale_t __l;\n\npublic:\n    explicit ctype_byname(const char*, size_t = 0);\n    explicit ctype_byname(const string&, size_t = 0);\n\nprotected:\n    ~ctype_byname();\n    virtual char_type do_toupper(char_type) const;\n    virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const;\n    virtual char_type do_tolower(char_type) const;\n    virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const;\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS ctype_byname<wchar_t>\n    : public ctype<wchar_t>\n{\n    locale_t __l;\n\npublic:\n    explicit ctype_byname(const char*, size_t = 0);\n    explicit ctype_byname(const string&, size_t = 0);\n\nprotected:\n    ~ctype_byname();\n    virtual bool do_is(mask __m, char_type __c) const;\n    virtual const char_type* do_is(const char_type* __low, const char_type* __high, mask* __vec) const;\n    virtual const char_type* do_scan_is(mask __m, const char_type* __low, const char_type* __high) const;\n    virtual const char_type* do_scan_not(mask __m, const char_type* __low, const char_type* __high) const;\n    virtual char_type do_toupper(char_type) const;\n    virtual const char_type* do_toupper(char_type* __low, const char_type* __high) const;\n    virtual char_type do_tolower(char_type) const;\n    virtual const char_type* do_tolower(char_type* __low, const char_type* __high) const;\n    virtual char_type do_widen(char) const;\n    virtual const char* do_widen(const char* __low, const char* __high, char_type* __dest) const;\n    virtual char do_narrow(char_type, char __dfault) const;\n    virtual const char_type* do_narrow(const char_type* __low, const char_type* __high, char __dfault, char* __dest) const;\n};\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nisspace(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::space, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nisprint(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::print, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\niscntrl(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::cntrl, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nisupper(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::upper, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nislower(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::lower, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nisalpha(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alpha, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nisdigit(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::digit, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nispunct(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::punct, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nisxdigit(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::xdigit, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nisalnum(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::alnum, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nisgraph(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).is(ctype_base::graph, __c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\n_CharT\ntoupper(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).toupper(__c);\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\n_CharT\ntolower(_CharT __c, const locale& __loc)\n{\n    return use_facet<ctype<_CharT> >(__loc).tolower(__c);\n}\n\n// codecvt_base\n\nclass _LIBCPP_TYPE_VIS codecvt_base\n{\npublic:\n    _LIBCPP_ALWAYS_INLINE codecvt_base() {}\n    enum result {ok, partial, error, noconv};\n};\n\n// template <class internT, class externT, class stateT> class codecvt;\n\ntemplate <class _InternT, class _ExternT, class _StateT> class _LIBCPP_TEMPLATE_VIS codecvt;\n\n// template <> class codecvt<char, char, mbstate_t>\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS codecvt<char, char, mbstate_t>\n    : public locale::facet,\n      public codecvt_base\n{\npublic:\n    typedef char      intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    result out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const\n    {\n        return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    result unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const\n    {\n        return do_unshift(__st, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    result in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const\n    {\n        return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int encoding() const  _NOEXCEPT\n    {\n        return do_encoding();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    bool always_noconv() const  _NOEXCEPT\n    {\n        return do_always_noconv();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const\n    {\n        return do_length(__st, __frm, __end, __mx);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int max_length() const  _NOEXCEPT\n    {\n        return do_max_length();\n    }\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt(const char*, size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    ~codecvt();\n\n    virtual result do_out(state_type& __st,\n                          const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n                          extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result do_in(state_type& __st,\n                         const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n                         intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result do_unshift(state_type& __st,\n                              extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const  _NOEXCEPT;\n    virtual bool do_always_noconv() const  _NOEXCEPT;\n    virtual int do_length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const;\n    virtual int do_max_length() const  _NOEXCEPT;\n};\n\n// template <> class codecvt<wchar_t, char, mbstate_t>\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS codecvt<wchar_t, char, mbstate_t>\n    : public locale::facet,\n      public codecvt_base\n{\n    locale_t __l;\npublic:\n    typedef wchar_t   intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    explicit codecvt(size_t __refs = 0);\n\n    _LIBCPP_ALWAYS_INLINE\n    result out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const\n    {\n        return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    result unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const\n    {\n        return do_unshift(__st, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    result in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const\n    {\n        return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int encoding() const  _NOEXCEPT\n    {\n        return do_encoding();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    bool always_noconv() const  _NOEXCEPT\n    {\n        return do_always_noconv();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const\n    {\n        return do_length(__st, __frm, __end, __mx);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int max_length() const  _NOEXCEPT\n    {\n        return do_max_length();\n    }\n\n    static locale::id id;\n\nprotected:\n    explicit codecvt(const char*, size_t __refs = 0);\n\n    ~codecvt();\n\n    virtual result do_out(state_type& __st,\n                          const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n                          extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result do_in(state_type& __st,\n                         const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n                         intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result do_unshift(state_type& __st,\n                              extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const  _NOEXCEPT;\n    virtual bool do_always_noconv() const  _NOEXCEPT;\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const;\n    virtual int do_max_length() const  _NOEXCEPT;\n};\n\n// template <> class codecvt<char16_t, char, mbstate_t>\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS codecvt<char16_t, char, mbstate_t>\n    : public locale::facet,\n      public codecvt_base\n{\npublic:\n    typedef char16_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    result out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const\n    {\n        return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    result unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const\n    {\n        return do_unshift(__st, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    result in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const\n    {\n        return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int encoding() const  _NOEXCEPT\n    {\n        return do_encoding();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    bool always_noconv() const  _NOEXCEPT\n    {\n        return do_always_noconv();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const\n    {\n        return do_length(__st, __frm, __end, __mx);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int max_length() const  _NOEXCEPT\n    {\n        return do_max_length();\n    }\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt(const char*, size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    ~codecvt();\n\n    virtual result do_out(state_type& __st,\n                          const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n                          extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result do_in(state_type& __st,\n                         const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n                         intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result do_unshift(state_type& __st,\n                              extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const  _NOEXCEPT;\n    virtual bool do_always_noconv() const  _NOEXCEPT;\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const;\n    virtual int do_max_length() const  _NOEXCEPT;\n};\n\n// template <> class codecvt<char32_t, char, mbstate_t>\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS codecvt<char32_t, char, mbstate_t>\n    : public locale::facet,\n      public codecvt_base\n{\npublic:\n    typedef char32_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    result out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const\n    {\n        return do_out(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    result unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const\n    {\n        return do_unshift(__st, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    result in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const\n    {\n        return do_in(__st, __frm, __frm_end, __frm_nxt, __to, __to_end, __to_nxt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int encoding() const  _NOEXCEPT\n    {\n        return do_encoding();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    bool always_noconv() const  _NOEXCEPT\n    {\n        return do_always_noconv();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int length(state_type& __st, const extern_type* __frm, const extern_type* __end, size_t __mx) const\n    {\n        return do_length(__st, __frm, __end, __mx);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int max_length() const  _NOEXCEPT\n    {\n        return do_max_length();\n    }\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt(const char*, size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    ~codecvt();\n\n    virtual result do_out(state_type& __st,\n                          const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n                          extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result do_in(state_type& __st,\n                         const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n                         intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result do_unshift(state_type& __st,\n                              extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const  _NOEXCEPT;\n    virtual bool do_always_noconv() const  _NOEXCEPT;\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end, size_t __mx) const;\n    virtual int do_max_length() const  _NOEXCEPT;\n};\n\n// template <class _InternT, class _ExternT, class _StateT> class codecvt_byname\n\ntemplate <class _InternT, class _ExternT, class _StateT>\nclass _LIBCPP_TEMPLATE_VIS codecvt_byname\n    : public codecvt<_InternT, _ExternT, _StateT>\n{\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt_byname(const char* __nm, size_t __refs = 0)\n        : codecvt<_InternT, _ExternT, _StateT>(__nm, __refs) {}\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt_byname(const string& __nm, size_t __refs = 0)\n        : codecvt<_InternT, _ExternT, _StateT>(__nm.c_str(), __refs) {}\nprotected:\n    ~codecvt_byname();\n};\n\ntemplate <class _InternT, class _ExternT, class _StateT>\ncodecvt_byname<_InternT, _ExternT, _StateT>::~codecvt_byname()\n{\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname<char, char, mbstate_t>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname<wchar_t, char, mbstate_t>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname<char16_t, char, mbstate_t>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS codecvt_byname<char32_t, char, mbstate_t>)\n\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void __throw_runtime_error(const char*);\n\ntemplate <size_t _Np>\nstruct __narrow_to_utf8\n{\n    template <class _OutputIterator, class _CharT>\n    _OutputIterator\n    operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const;\n};\n\ntemplate <>\nstruct __narrow_to_utf8<8>\n{\n    template <class _OutputIterator, class _CharT>\n    _LIBCPP_ALWAYS_INLINE\n    _OutputIterator\n    operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const\n    {\n        for (; __wb < __we; ++__wb, ++__s)\n            *__s = *__wb;\n        return __s;\n    }\n};\n\ntemplate <>\nstruct __narrow_to_utf8<16>\n    : public codecvt<char16_t, char, mbstate_t>\n{\n    _LIBCPP_ALWAYS_INLINE\n    __narrow_to_utf8() : codecvt<char16_t, char, mbstate_t>(1) {}\n\n    ~__narrow_to_utf8();\n\n    template <class _OutputIterator, class _CharT>\n    _LIBCPP_ALWAYS_INLINE\n    _OutputIterator\n    operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const\n    {\n        result __r = ok;\n        mbstate_t __mb;\n        while (__wb < __we && __r != error)\n        {\n            const int __sz = 32;\n            char __buf[__sz];\n            char* __bn;\n            const char16_t* __wn = (const char16_t*)__wb;\n            __r = do_out(__mb, (const char16_t*)__wb, (const char16_t*)__we, __wn,\n                         __buf, __buf+__sz, __bn);\n            if (__r == codecvt_base::error || __wn == (const char16_t*)__wb)\n                __throw_runtime_error(\"locale not supported\");\n            for (const char* __p = __buf; __p < __bn; ++__p, ++__s)\n                *__s = *__p;\n            __wb = (const _CharT*)__wn;\n        }\n        return __s;\n    }\n};\n\ntemplate <>\nstruct __narrow_to_utf8<32>\n    : public codecvt<char32_t, char, mbstate_t>\n{\n    _LIBCPP_ALWAYS_INLINE\n    __narrow_to_utf8() : codecvt<char32_t, char, mbstate_t>(1) {}\n\n    ~__narrow_to_utf8();\n\n    template <class _OutputIterator, class _CharT>\n    _LIBCPP_ALWAYS_INLINE\n    _OutputIterator\n    operator()(_OutputIterator __s, const _CharT* __wb, const _CharT* __we) const\n    {\n        result __r = ok;\n        mbstate_t __mb;\n        while (__wb < __we && __r != error)\n        {\n            const int __sz = 32;\n            char __buf[__sz];\n            char* __bn;\n            const char32_t* __wn = (const char32_t*)__wb;\n            __r = do_out(__mb, (const char32_t*)__wb, (const char32_t*)__we, __wn,\n                         __buf, __buf+__sz, __bn);\n            if (__r == codecvt_base::error || __wn == (const char32_t*)__wb)\n                __throw_runtime_error(\"locale not supported\");\n            for (const char* __p = __buf; __p < __bn; ++__p, ++__s)\n                *__s = *__p;\n            __wb = (const _CharT*)__wn;\n        }\n        return __s;\n    }\n};\n\ntemplate <size_t _Np>\nstruct __widen_from_utf8\n{\n    template <class _OutputIterator>\n    _OutputIterator\n    operator()(_OutputIterator __s, const char* __nb, const char* __ne) const;\n};\n\ntemplate <>\nstruct __widen_from_utf8<8>\n{\n    template <class _OutputIterator>\n    _LIBCPP_ALWAYS_INLINE\n    _OutputIterator\n    operator()(_OutputIterator __s, const char* __nb, const char* __ne) const\n    {\n        for (; __nb < __ne; ++__nb, ++__s)\n            *__s = *__nb;\n        return __s;\n    }\n};\n\ntemplate <>\nstruct __widen_from_utf8<16>\n    : public codecvt<char16_t, char, mbstate_t>\n{\n    _LIBCPP_ALWAYS_INLINE\n    __widen_from_utf8() : codecvt<char16_t, char, mbstate_t>(1) {}\n\n    ~__widen_from_utf8();\n\n    template <class _OutputIterator>\n    _LIBCPP_ALWAYS_INLINE\n    _OutputIterator\n    operator()(_OutputIterator __s, const char* __nb, const char* __ne) const\n    {\n        result __r = ok;\n        mbstate_t __mb;\n        while (__nb < __ne && __r != error)\n        {\n            const int __sz = 32;\n            char16_t __buf[__sz];\n            char16_t* __bn;\n            const char* __nn = __nb;\n            __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn,\n                        __buf, __buf+__sz, __bn);\n            if (__r == codecvt_base::error || __nn == __nb)\n                __throw_runtime_error(\"locale not supported\");\n            for (const char16_t* __p = __buf; __p < __bn; ++__p, ++__s)\n                *__s = (wchar_t)*__p;\n            __nb = __nn;\n        }\n        return __s;\n    }\n};\n\ntemplate <>\nstruct __widen_from_utf8<32>\n    : public codecvt<char32_t, char, mbstate_t>\n{\n    _LIBCPP_ALWAYS_INLINE\n    __widen_from_utf8() : codecvt<char32_t, char, mbstate_t>(1) {}\n\n    ~__widen_from_utf8();\n\n    template <class _OutputIterator>\n    _LIBCPP_ALWAYS_INLINE\n    _OutputIterator\n    operator()(_OutputIterator __s, const char* __nb, const char* __ne) const\n    {\n        result __r = ok;\n        mbstate_t __mb;\n        while (__nb < __ne && __r != error)\n        {\n            const int __sz = 32;\n            char32_t __buf[__sz];\n            char32_t* __bn;\n            const char* __nn = __nb;\n            __r = do_in(__mb, __nb, __ne - __nb > __sz ? __nb+__sz : __ne, __nn,\n                        __buf, __buf+__sz, __bn);\n            if (__r == codecvt_base::error || __nn == __nb)\n                __throw_runtime_error(\"locale not supported\");\n            for (const char32_t* __p = __buf; __p < __bn; ++__p, ++__s)\n                *__s = (wchar_t)*__p;\n            __nb = __nn;\n        }\n        return __s;\n    }\n};\n\n// template <class charT> class numpunct\n\ntemplate <class _CharT> class _LIBCPP_TEMPLATE_VIS numpunct;\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS numpunct<char>\n    : public locale::facet\n{\npublic:\n    typedef char char_type;\n    typedef basic_string<char_type> string_type;\n\n    explicit numpunct(size_t __refs = 0);\n\n    _LIBCPP_ALWAYS_INLINE char_type decimal_point() const {return do_decimal_point();}\n    _LIBCPP_ALWAYS_INLINE char_type thousands_sep() const {return do_thousands_sep();}\n    _LIBCPP_ALWAYS_INLINE string grouping() const         {return do_grouping();}\n    _LIBCPP_ALWAYS_INLINE string_type truename() const    {return do_truename();}\n    _LIBCPP_ALWAYS_INLINE string_type falsename() const   {return do_falsename();}\n\n    static locale::id id;\n\nprotected:\n    ~numpunct();\n    virtual char_type do_decimal_point() const;\n    virtual char_type do_thousands_sep() const;\n    virtual string do_grouping() const;\n    virtual string_type do_truename() const;\n    virtual string_type do_falsename() const;\n\n    char_type __decimal_point_;\n    char_type __thousands_sep_;\n    string __grouping_;\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS numpunct<wchar_t>\n    : public locale::facet\n{\npublic:\n    typedef wchar_t char_type;\n    typedef basic_string<char_type> string_type;\n\n    explicit numpunct(size_t __refs = 0);\n\n    _LIBCPP_ALWAYS_INLINE char_type decimal_point() const {return do_decimal_point();}\n    _LIBCPP_ALWAYS_INLINE char_type thousands_sep() const {return do_thousands_sep();}\n    _LIBCPP_ALWAYS_INLINE string grouping() const         {return do_grouping();}\n    _LIBCPP_ALWAYS_INLINE string_type truename() const    {return do_truename();}\n    _LIBCPP_ALWAYS_INLINE string_type falsename() const   {return do_falsename();}\n\n    static locale::id id;\n\nprotected:\n    ~numpunct();\n    virtual char_type do_decimal_point() const;\n    virtual char_type do_thousands_sep() const;\n    virtual string do_grouping() const;\n    virtual string_type do_truename() const;\n    virtual string_type do_falsename() const;\n\n    char_type __decimal_point_;\n    char_type __thousands_sep_;\n    string __grouping_;\n};\n\n// template <class charT> class numpunct_byname\n\ntemplate <class _CharT> class _LIBCPP_TEMPLATE_VIS numpunct_byname;\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS numpunct_byname<char>\n: public numpunct<char>\n{\npublic:\n    typedef char char_type;\n    typedef basic_string<char_type> string_type;\n\n    explicit numpunct_byname(const char* __nm, size_t __refs = 0);\n    explicit numpunct_byname(const string& __nm, size_t __refs = 0);\n\nprotected:\n    ~numpunct_byname();\n\nprivate:\n    void __init(const char*);\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS numpunct_byname<wchar_t>\n: public numpunct<wchar_t>\n{\npublic:\n    typedef wchar_t char_type;\n    typedef basic_string<char_type> string_type;\n\n    explicit numpunct_byname(const char* __nm, size_t __refs = 0);\n    explicit numpunct_byname(const string& __nm, size_t __refs = 0);\n\nprotected:\n    ~numpunct_byname();\n\nprivate:\n    void __init(const char*);\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP___LOCALE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__mutex_base",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP___MUTEX_BASE\n#define _LIBCPP___MUTEX_BASE\n\n#include <__config>\n#include <chrono>\n#include <system_error>\n#include <__threading_support>\n\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#ifndef _LIBCPP_HAS_NO_THREADS\n\n#ifndef _LIBCPP_THREAD_SAFETY_ANNOTATION\n#  ifdef _LIBCPP_HAS_THREAD_SAFETY_ANNOTATIONS\n#    define _LIBCPP_THREAD_SAFETY_ANNOTATION(x) __attribute__((x))\n#  else\n#    define _LIBCPP_THREAD_SAFETY_ANNOTATION(x)\n#  endif\n#endif  // _LIBCPP_THREAD_SAFETY_ANNOTATION\n\nclass _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability(\"mutex\")) mutex\n{\n#ifndef _LIBCPP_CXX03_LANG\n    __libcpp_mutex_t __m_ = _LIBCPP_MUTEX_INITIALIZER;\n#else\n    __libcpp_mutex_t __m_;\n#endif\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n#ifndef _LIBCPP_CXX03_LANG\n    constexpr mutex() = default;\n#else\n    mutex() _NOEXCEPT {__m_ = (__libcpp_mutex_t)_LIBCPP_MUTEX_INITIALIZER;}\n#endif\n    ~mutex();\n\nprivate:\n    mutex(const mutex&);// = delete;\n    mutex& operator=(const mutex&);// = delete;\n\npublic:\n    void lock() _LIBCPP_THREAD_SAFETY_ANNOTATION(acquire_capability());\n    bool try_lock() _NOEXCEPT _LIBCPP_THREAD_SAFETY_ANNOTATION(try_acquire_capability(true));\n    void unlock() _NOEXCEPT _LIBCPP_THREAD_SAFETY_ANNOTATION(release_capability());\n\n    typedef __libcpp_mutex_t* native_handle_type;\n    _LIBCPP_INLINE_VISIBILITY native_handle_type native_handle() {return &__m_;}\n};\n\nstatic_assert(is_nothrow_default_constructible<mutex>::value,\n              \"the default constructor for std::mutex must be nothrow\");\n\nstruct _LIBCPP_TYPE_VIS defer_lock_t {};\nstruct _LIBCPP_TYPE_VIS try_to_lock_t {};\nstruct _LIBCPP_TYPE_VIS adopt_lock_t {};\n\n#if defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_BUILDING_MUTEX)\n\nextern const defer_lock_t  defer_lock;\nextern const try_to_lock_t try_to_lock;\nextern const adopt_lock_t  adopt_lock;\n\n#else\n\nconstexpr defer_lock_t  defer_lock  = defer_lock_t();\nconstexpr try_to_lock_t try_to_lock = try_to_lock_t();\nconstexpr adopt_lock_t  adopt_lock  = adopt_lock_t();\n\n#endif\n\ntemplate <class _Mutex>\nclass _LIBCPP_TEMPLATE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(scoped_lockable)\nlock_guard\n{\npublic:\n    typedef _Mutex mutex_type;\n\nprivate:\n    mutex_type& __m_;\npublic:\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit lock_guard(mutex_type& __m) _LIBCPP_THREAD_SAFETY_ANNOTATION(acquire_capability(__m))\n        : __m_(__m) {__m_.lock();}\n    _LIBCPP_INLINE_VISIBILITY\n    lock_guard(mutex_type& __m, adopt_lock_t) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m))\n        : __m_(__m) {}\n    _LIBCPP_INLINE_VISIBILITY\n    ~lock_guard() _LIBCPP_THREAD_SAFETY_ANNOTATION(release_capability()) {__m_.unlock();}\n\nprivate:\n    lock_guard(lock_guard const&) _LIBCPP_EQUAL_DELETE;\n    lock_guard& operator=(lock_guard const&) _LIBCPP_EQUAL_DELETE;\n};\n\ntemplate <class _Mutex>\nclass _LIBCPP_TEMPLATE_VIS unique_lock\n{\npublic:\n    typedef _Mutex mutex_type;\n\nprivate:\n    mutex_type* __m_;\n    bool __owns_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    unique_lock() _NOEXCEPT : __m_(nullptr), __owns_(false) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit unique_lock(mutex_type& __m)\n        : __m_(_VSTD::addressof(__m)), __owns_(true) {__m_->lock();}\n    _LIBCPP_INLINE_VISIBILITY\n    unique_lock(mutex_type& __m, defer_lock_t) _NOEXCEPT\n        : __m_(_VSTD::addressof(__m)), __owns_(false) {}\n    _LIBCPP_INLINE_VISIBILITY\n    unique_lock(mutex_type& __m, try_to_lock_t)\n        : __m_(_VSTD::addressof(__m)), __owns_(__m.try_lock()) {}\n    _LIBCPP_INLINE_VISIBILITY\n    unique_lock(mutex_type& __m, adopt_lock_t)\n        : __m_(_VSTD::addressof(__m)), __owns_(true) {}\n    template <class _Clock, class _Duration>\n    _LIBCPP_INLINE_VISIBILITY\n        unique_lock(mutex_type& __m, const chrono::time_point<_Clock, _Duration>& __t)\n            : __m_(_VSTD::addressof(__m)), __owns_(__m.try_lock_until(__t)) {}\n    template <class _Rep, class _Period>\n    _LIBCPP_INLINE_VISIBILITY\n        unique_lock(mutex_type& __m, const chrono::duration<_Rep, _Period>& __d)\n            : __m_(_VSTD::addressof(__m)), __owns_(__m.try_lock_for(__d)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    ~unique_lock()\n    {\n        if (__owns_)\n            __m_->unlock();\n    }\n\nprivate:\n    unique_lock(unique_lock const&); // = delete;\n    unique_lock& operator=(unique_lock const&); // = delete;\n\npublic:\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unique_lock(unique_lock&& __u) _NOEXCEPT\n        : __m_(__u.__m_), __owns_(__u.__owns_)\n        {__u.__m_ = nullptr; __u.__owns_ = false;}\n    _LIBCPP_INLINE_VISIBILITY\n    unique_lock& operator=(unique_lock&& __u) _NOEXCEPT\n        {\n            if (__owns_)\n                __m_->unlock();\n            __m_ = __u.__m_;\n            __owns_ = __u.__owns_;\n            __u.__m_ = nullptr;\n            __u.__owns_ = false;\n            return *this;\n        }\n\n#endif  // _LIBCPP_CXX03_LANG\n\n    void lock();\n    bool try_lock();\n\n    template <class _Rep, class _Period>\n        bool try_lock_for(const chrono::duration<_Rep, _Period>& __d);\n    template <class _Clock, class _Duration>\n        bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t);\n\n    void unlock();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(unique_lock& __u) _NOEXCEPT\n    {\n        _VSTD::swap(__m_, __u.__m_);\n        _VSTD::swap(__owns_, __u.__owns_);\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    mutex_type* release() _NOEXCEPT\n    {\n        mutex_type* __m = __m_;\n        __m_ = nullptr;\n        __owns_ = false;\n        return __m;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool owns_lock() const _NOEXCEPT {return __owns_;}\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_EXPLICIT\n        operator bool () const _NOEXCEPT {return __owns_;}\n    _LIBCPP_INLINE_VISIBILITY\n    mutex_type* mutex() const _NOEXCEPT {return __m_;}\n};\n\ntemplate <class _Mutex>\nvoid\nunique_lock<_Mutex>::lock()\n{\n    if (__m_ == nullptr)\n        __throw_system_error(EPERM, \"unique_lock::lock: references null mutex\");\n    if (__owns_)\n        __throw_system_error(EDEADLK, \"unique_lock::lock: already locked\");\n    __m_->lock();\n    __owns_ = true;\n}\n\ntemplate <class _Mutex>\nbool\nunique_lock<_Mutex>::try_lock()\n{\n    if (__m_ == nullptr)\n        __throw_system_error(EPERM, \"unique_lock::try_lock: references null mutex\");\n    if (__owns_)\n        __throw_system_error(EDEADLK, \"unique_lock::try_lock: already locked\");\n    __owns_ = __m_->try_lock();\n    return __owns_;\n}\n\ntemplate <class _Mutex>\ntemplate <class _Rep, class _Period>\nbool\nunique_lock<_Mutex>::try_lock_for(const chrono::duration<_Rep, _Period>& __d)\n{\n    if (__m_ == nullptr)\n        __throw_system_error(EPERM, \"unique_lock::try_lock_for: references null mutex\");\n    if (__owns_)\n        __throw_system_error(EDEADLK, \"unique_lock::try_lock_for: already locked\");\n    __owns_ = __m_->try_lock_for(__d);\n    return __owns_;\n}\n\ntemplate <class _Mutex>\ntemplate <class _Clock, class _Duration>\nbool\nunique_lock<_Mutex>::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t)\n{\n    if (__m_ == nullptr)\n        __throw_system_error(EPERM, \"unique_lock::try_lock_until: references null mutex\");\n    if (__owns_)\n        __throw_system_error(EDEADLK, \"unique_lock::try_lock_until: already locked\");\n    __owns_ = __m_->try_lock_until(__t);\n    return __owns_;\n}\n\ntemplate <class _Mutex>\nvoid\nunique_lock<_Mutex>::unlock()\n{\n    if (!__owns_)\n        __throw_system_error(EPERM, \"unique_lock::unlock: not locked\");\n    __m_->unlock();\n    __owns_ = false;\n}\n\ntemplate <class _Mutex>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) _NOEXCEPT\n    {__x.swap(__y);}\n\n//enum class cv_status\n_LIBCPP_DECLARE_STRONG_ENUM(cv_status)\n{\n    no_timeout,\n    timeout\n};\n_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(cv_status)\n\nclass _LIBCPP_TYPE_VIS condition_variable\n{\n#ifndef _LIBCPP_CXX03_LANG\n    __libcpp_condvar_t __cv_ = _LIBCPP_CONDVAR_INITIALIZER;\n#else\n    __libcpp_condvar_t __cv_;\n#endif\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n#ifndef _LIBCPP_CXX03_LANG\n    constexpr condition_variable() _NOEXCEPT = default;\n#else\n    condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;}\n#endif\n    ~condition_variable();\n\nprivate:\n    condition_variable(const condition_variable&); // = delete;\n    condition_variable& operator=(const condition_variable&); // = delete;\n\npublic:\n    void notify_one() _NOEXCEPT;\n    void notify_all() _NOEXCEPT;\n\n    void wait(unique_lock<mutex>& __lk) _NOEXCEPT;\n    template <class _Predicate>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        void wait(unique_lock<mutex>& __lk, _Predicate __pred);\n\n    template <class _Clock, class _Duration>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        cv_status\n        wait_until(unique_lock<mutex>& __lk,\n                   const chrono::time_point<_Clock, _Duration>& __t);\n\n    template <class _Clock, class _Duration, class _Predicate>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        bool\n        wait_until(unique_lock<mutex>& __lk,\n                   const chrono::time_point<_Clock, _Duration>& __t,\n                   _Predicate __pred);\n\n    template <class _Rep, class _Period>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        cv_status\n        wait_for(unique_lock<mutex>& __lk,\n                 const chrono::duration<_Rep, _Period>& __d);\n\n    template <class _Rep, class _Period, class _Predicate>\n        bool\n        _LIBCPP_INLINE_VISIBILITY\n        wait_for(unique_lock<mutex>& __lk,\n                 const chrono::duration<_Rep, _Period>& __d,\n                 _Predicate __pred);\n\n    typedef __libcpp_condvar_t* native_handle_type;\n    _LIBCPP_INLINE_VISIBILITY native_handle_type native_handle() {return &__cv_;}\n\nprivate:\n    void __do_timed_wait(unique_lock<mutex>& __lk,\n       chrono::time_point<chrono::system_clock, chrono::nanoseconds>) _NOEXCEPT;\n};\n#endif // !_LIBCPP_HAS_NO_THREADS\n\ntemplate <class _To, class _Rep, class _Period>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    chrono::__is_duration<_To>::value,\n    _To\n>::type\n__ceil(chrono::duration<_Rep, _Period> __d)\n{\n    using namespace chrono;\n    _To __r = duration_cast<_To>(__d);\n    if (__r < __d)\n        ++__r;\n    return __r;\n}\n\n#ifndef _LIBCPP_HAS_NO_THREADS\ntemplate <class _Predicate>\nvoid\ncondition_variable::wait(unique_lock<mutex>& __lk, _Predicate __pred)\n{\n    while (!__pred())\n        wait(__lk);\n}\n\ntemplate <class _Clock, class _Duration>\ncv_status\ncondition_variable::wait_until(unique_lock<mutex>& __lk,\n                               const chrono::time_point<_Clock, _Duration>& __t)\n{\n    using namespace chrono;\n    wait_for(__lk, __t - _Clock::now());\n    return _Clock::now() < __t ? cv_status::no_timeout : cv_status::timeout;\n}\n\ntemplate <class _Clock, class _Duration, class _Predicate>\nbool\ncondition_variable::wait_until(unique_lock<mutex>& __lk,\n                   const chrono::time_point<_Clock, _Duration>& __t,\n                   _Predicate __pred)\n{\n    while (!__pred())\n    {\n        if (wait_until(__lk, __t) == cv_status::timeout)\n            return __pred();\n    }\n    return true;\n}\n\ntemplate <class _Rep, class _Period>\ncv_status\ncondition_variable::wait_for(unique_lock<mutex>& __lk,\n                             const chrono::duration<_Rep, _Period>& __d)\n{\n    using namespace chrono;\n    if (__d <= __d.zero())\n        return cv_status::timeout;\n    typedef time_point<system_clock, duration<long double, nano> > __sys_tpf;\n    typedef time_point<system_clock, nanoseconds> __sys_tpi;\n    __sys_tpf _Max = __sys_tpi::max();\n    steady_clock::time_point __c_now = steady_clock::now();\n    system_clock::time_point __s_now = system_clock::now();\n    if (_Max - __d > __s_now)\n        __do_timed_wait(__lk, __s_now + __ceil<nanoseconds>(__d));\n    else\n        __do_timed_wait(__lk, __sys_tpi::max());\n    return steady_clock::now() - __c_now < __d ? cv_status::no_timeout :\n                                                 cv_status::timeout;\n}\n\ntemplate <class _Rep, class _Period, class _Predicate>\ninline\nbool\ncondition_variable::wait_for(unique_lock<mutex>& __lk,\n                             const chrono::duration<_Rep, _Period>& __d,\n                             _Predicate __pred)\n{\n    return wait_until(__lk, chrono::steady_clock::now() + __d,\n                      _VSTD::move(__pred));\n}\n\n#endif // !_LIBCPP_HAS_NO_THREADS\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP___MUTEX_BASE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__nullptr",
    "content": "// -*- C++ -*-\n//===--------------------------- __nullptr --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_NULLPTR\n#define _LIBCPP_NULLPTR\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifdef _LIBCPP_HAS_NO_NULLPTR\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nstruct _LIBCPP_TEMPLATE_VIS nullptr_t\n{\n    void* __lx;\n\n    struct __nat {int __for_bool_;};\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR nullptr_t() : __lx(0) {}\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR nullptr_t(int __nat::*) : __lx(0) {}\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR operator int __nat::*() const {return 0;}\n\n    template <class _Tp>\n        _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR\n        operator _Tp* () const {return 0;}\n\n    template <class _Tp, class _Up>\n        _LIBCPP_ALWAYS_INLINE\n        operator _Tp _Up::* () const {return 0;}\n\n    friend _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR bool operator==(nullptr_t, nullptr_t) {return true;}\n    friend _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR bool operator!=(nullptr_t, nullptr_t) {return false;}\n};\n\ninline _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR nullptr_t __get_nullptr_t() {return nullptr_t(0);}\n\n#define nullptr _VSTD::__get_nullptr_t()\n\n_LIBCPP_END_NAMESPACE_STD\n\n#else  // _LIBCPP_HAS_NO_NULLPTR\n\nnamespace std\n{\n    typedef decltype(nullptr) nullptr_t;\n}\n\n#endif  // _LIBCPP_HAS_NO_NULLPTR\n\n#endif  // _LIBCPP_NULLPTR\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__split_buffer",
    "content": "// -*- C++ -*-\n#ifndef _LIBCPP_SPLIT_BUFFER\n#define _LIBCPP_SPLIT_BUFFER\n\n#include <__config>\n#include <type_traits>\n#include <algorithm>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <bool>\nclass __split_buffer_common\n{\nprotected:\n    void __throw_length_error() const;\n    void __throw_out_of_range() const;\n};\n\ntemplate <class _Tp, class _Allocator = allocator<_Tp> >\nstruct __split_buffer\n    : private __split_buffer_common<true>\n{\nprivate:\n    __split_buffer(const __split_buffer&);\n    __split_buffer& operator=(const __split_buffer&);\npublic:\n    typedef _Tp                                             value_type;\n    typedef _Allocator                                      allocator_type;\n    typedef typename remove_reference<allocator_type>::type __alloc_rr;\n    typedef allocator_traits<__alloc_rr>                    __alloc_traits;\n    typedef value_type&                                     reference;\n    typedef const value_type&                               const_reference;\n    typedef typename __alloc_traits::size_type              size_type;\n    typedef typename __alloc_traits::difference_type        difference_type;\n    typedef typename __alloc_traits::pointer                pointer;\n    typedef typename __alloc_traits::const_pointer          const_pointer;\n    typedef pointer                                         iterator;\n    typedef const_pointer                                   const_iterator;\n\n    pointer                                         __first_;\n    pointer                                         __begin_;\n    pointer                                         __end_;\n    __compressed_pair<pointer, allocator_type> __end_cap_;\n\n    typedef typename add_lvalue_reference<allocator_type>::type __alloc_ref;\n    typedef typename add_lvalue_reference<allocator_type>::type __alloc_const_ref;\n\n    _LIBCPP_INLINE_VISIBILITY __alloc_rr&           __alloc() _NOEXCEPT         {return __end_cap_.second();}\n    _LIBCPP_INLINE_VISIBILITY const __alloc_rr&     __alloc() const _NOEXCEPT   {return __end_cap_.second();}\n    _LIBCPP_INLINE_VISIBILITY pointer&              __end_cap() _NOEXCEPT       {return __end_cap_.first();}\n    _LIBCPP_INLINE_VISIBILITY const pointer&        __end_cap() const _NOEXCEPT {return __end_cap_.first();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __split_buffer()\n        _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __split_buffer(__alloc_rr& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __split_buffer(const __alloc_rr& __a);\n    __split_buffer(size_type __cap, size_type __start, __alloc_rr& __a);\n    ~__split_buffer();\n\n#ifndef _LIBCPP_CXX03_LANG\n    __split_buffer(__split_buffer&& __c)\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);\n    __split_buffer(__split_buffer&& __c, const __alloc_rr& __a);\n    __split_buffer& operator=(__split_buffer&& __c)\n        _NOEXCEPT_((__alloc_traits::propagate_on_container_move_assignment::value &&\n                is_nothrow_move_assignable<allocator_type>::value) ||\n               !__alloc_traits::propagate_on_container_move_assignment::value);\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY       iterator begin() _NOEXCEPT       {return __begin_;}\n    _LIBCPP_INLINE_VISIBILITY const_iterator begin() const _NOEXCEPT {return __begin_;}\n    _LIBCPP_INLINE_VISIBILITY       iterator end() _NOEXCEPT         {return __end_;}\n    _LIBCPP_INLINE_VISIBILITY const_iterator end() const _NOEXCEPT   {return __end_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT\n        {__destruct_at_end(__begin_);}\n    _LIBCPP_INLINE_VISIBILITY size_type size() const {return static_cast<size_type>(__end_ - __begin_);}\n    _LIBCPP_INLINE_VISIBILITY bool empty()     const {return __end_ == __begin_;}\n    _LIBCPP_INLINE_VISIBILITY size_type capacity() const {return static_cast<size_type>(__end_cap() - __first_);}\n    _LIBCPP_INLINE_VISIBILITY size_type __front_spare() const {return static_cast<size_type>(__begin_ - __first_);}\n    _LIBCPP_INLINE_VISIBILITY size_type __back_spare() const {return static_cast<size_type>(__end_cap() - __end_);}\n\n    _LIBCPP_INLINE_VISIBILITY       reference front()       {return *__begin_;}\n    _LIBCPP_INLINE_VISIBILITY const_reference front() const {return *__begin_;}\n    _LIBCPP_INLINE_VISIBILITY       reference back()        {return *(__end_ - 1);}\n    _LIBCPP_INLINE_VISIBILITY const_reference back() const  {return *(__end_ - 1);}\n\n    void reserve(size_type __n);\n    void shrink_to_fit() _NOEXCEPT;\n    void push_front(const_reference __x);\n    _LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);\n#ifndef _LIBCPP_CXX03_LANG\n    void push_front(value_type&& __x);\n    void push_back(value_type&& __x);\n    template <class... _Args>\n        void emplace_back(_Args&&... __args);\n#endif  // !defined(_LIBCPP_CXX03_LANG)\n\n    _LIBCPP_INLINE_VISIBILITY void pop_front() {__destruct_at_begin(__begin_+1);}\n    _LIBCPP_INLINE_VISIBILITY void pop_back() {__destruct_at_end(__end_-1);}\n\n    void __construct_at_end(size_type __n);\n    void __construct_at_end(size_type __n, const_reference __x);\n    template <class _InputIter>\n        typename enable_if\n        <\n            __is_input_iterator<_InputIter>::value &&\n           !__is_forward_iterator<_InputIter>::value,\n            void\n        >::type\n        __construct_at_end(_InputIter __first, _InputIter __last);\n    template <class _ForwardIterator>\n        typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value,\n            void\n        >::type\n        __construct_at_end(_ForwardIterator __first, _ForwardIterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY void __destruct_at_begin(pointer __new_begin)\n        {__destruct_at_begin(__new_begin, is_trivially_destructible<value_type>());}\n        _LIBCPP_INLINE_VISIBILITY\n        void __destruct_at_begin(pointer __new_begin, false_type);\n        _LIBCPP_INLINE_VISIBILITY\n        void __destruct_at_begin(pointer __new_begin, true_type);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __destruct_at_end(pointer __new_last) _NOEXCEPT\n        {__destruct_at_end(__new_last, false_type());}\n    _LIBCPP_INLINE_VISIBILITY\n        void __destruct_at_end(pointer __new_last, false_type) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n        void __destruct_at_end(pointer __new_last, true_type) _NOEXCEPT;\n\n    void swap(__split_buffer& __x)\n        _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value||\n                   __is_nothrow_swappable<__alloc_rr>::value);\n\n    bool __invariants() const;\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__split_buffer& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n        {\n            __alloc() = _VSTD::move(__c.__alloc());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__split_buffer&, false_type) _NOEXCEPT\n        {}\n};\n\ntemplate <class _Tp, class _Allocator>\nbool\n__split_buffer<_Tp, _Allocator>::__invariants() const\n{\n    if (__first_ == nullptr)\n    {\n        if (__begin_ != nullptr)\n            return false;\n        if (__end_ != nullptr)\n            return false;\n        if (__end_cap() != nullptr)\n            return false;\n    }\n    else\n    {\n        if (__begin_ < __first_)\n            return false;\n        if (__end_ < __begin_)\n            return false;\n        if (__end_cap() < __end_)\n            return false;\n    }\n    return true;\n}\n\n//  Default constructs __n objects starting at __end_\n//  throws if construction throws\n//  Precondition:  __n > 0\n//  Precondition:  size() + __n <= capacity()\n//  Postcondition:  size() == size() + __n\ntemplate <class _Tp, class _Allocator>\nvoid\n__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n)\n{\n    __alloc_rr& __a = this->__alloc();\n    do\n    {\n        __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_));\n        ++this->__end_;\n        --__n;\n    } while (__n > 0);\n}\n\n//  Copy constructs __n objects starting at __end_ from __x\n//  throws if construction throws\n//  Precondition:  __n > 0\n//  Precondition:  size() + __n <= capacity()\n//  Postcondition:  size() == old size() + __n\n//  Postcondition:  [i] == __x for all i in [size() - __n, __n)\ntemplate <class _Tp, class _Allocator>\nvoid\n__split_buffer<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x)\n{\n    __alloc_rr& __a = this->__alloc();\n    do\n    {\n        __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_), __x);\n        ++this->__end_;\n        --__n;\n    } while (__n > 0);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIter>\ntypename enable_if\n<\n     __is_input_iterator<_InputIter>::value &&\n    !__is_forward_iterator<_InputIter>::value,\n    void\n>::type\n__split_buffer<_Tp, _Allocator>::__construct_at_end(_InputIter __first, _InputIter __last)\n{\n    __alloc_rr& __a = this->__alloc();\n    for (; __first != __last; ++__first)\n    {\n        if (__end_ == __end_cap())\n        {\n            size_type __old_cap = __end_cap() - __first_;\n            size_type __new_cap = _VSTD::max<size_type>(2 * __old_cap, 8);\n            __split_buffer __buf(__new_cap, 0, __a);\n            for (pointer __p = __begin_; __p != __end_; ++__p, ++__buf.__end_)\n                __alloc_traits::construct(__buf.__alloc(),\n                        _VSTD::__to_raw_pointer(__buf.__end_), _VSTD::move(*__p));\n            swap(__buf);\n        }\n        __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_), *__first);\n        ++this->__end_;\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value,\n    void\n>::type\n__split_buffer<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last)\n{\n    __alloc_rr& __a = this->__alloc();\n    for (; __first != __last; ++__first)\n    {\n        __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_), *__first);\n        ++this->__end_;\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\nvoid\n__split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, false_type)\n{\n    while (__begin_ != __new_begin)\n        __alloc_traits::destroy(__alloc(), __to_raw_pointer(__begin_++));\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\nvoid\n__split_buffer<_Tp, _Allocator>::__destruct_at_begin(pointer __new_begin, true_type)\n{\n    __begin_ = __new_begin;\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, false_type) _NOEXCEPT\n{\n    while (__new_last != __end_)\n        __alloc_traits::destroy(__alloc(), __to_raw_pointer(--__end_));\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__split_buffer<_Tp, _Allocator>::__destruct_at_end(pointer __new_last, true_type) _NOEXCEPT\n{\n    __end_ = __new_last;\n}\n\ntemplate <class _Tp, class _Allocator>\n__split_buffer<_Tp, _Allocator>::__split_buffer(size_type __cap, size_type __start, __alloc_rr& __a)\n    : __end_cap_(nullptr, __a)\n{\n    __first_ = __cap != 0 ? __alloc_traits::allocate(__alloc(), __cap) : nullptr;\n    __begin_ = __end_ = __first_ + __start;\n    __end_cap() = __first_ + __cap;\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\n__split_buffer<_Tp, _Allocator>::__split_buffer()\n    _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)\n    : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr)\n{\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\n__split_buffer<_Tp, _Allocator>::__split_buffer(__alloc_rr& __a)\n    : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a)\n{\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\n__split_buffer<_Tp, _Allocator>::__split_buffer(const __alloc_rr& __a)\n    : __first_(nullptr), __begin_(nullptr), __end_(nullptr), __end_cap_(nullptr, __a)\n{\n}\n\ntemplate <class _Tp, class _Allocator>\n__split_buffer<_Tp, _Allocator>::~__split_buffer()\n{\n    clear();\n    if (__first_)\n        __alloc_traits::deallocate(__alloc(), __first_, capacity());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\n__split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c)\n    _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)\n    : __first_(_VSTD::move(__c.__first_)),\n      __begin_(_VSTD::move(__c.__begin_)),\n      __end_(_VSTD::move(__c.__end_)),\n      __end_cap_(_VSTD::move(__c.__end_cap_))\n{\n    __c.__first_ = nullptr;\n    __c.__begin_ = nullptr;\n    __c.__end_ = nullptr;\n    __c.__end_cap() = nullptr;\n}\n\ntemplate <class _Tp, class _Allocator>\n__split_buffer<_Tp, _Allocator>::__split_buffer(__split_buffer&& __c, const __alloc_rr& __a)\n    : __end_cap_(__second_tag(), __a)\n{\n    if (__a == __c.__alloc())\n    {\n        __first_ = __c.__first_;\n        __begin_ = __c.__begin_;\n        __end_ = __c.__end_;\n        __end_cap() = __c.__end_cap();\n        __c.__first_ = nullptr;\n        __c.__begin_ = nullptr;\n        __c.__end_ = nullptr;\n        __c.__end_cap() = nullptr;\n    }\n    else\n    {\n        size_type __cap = __c.size();\n        __first_ = __alloc_traits::allocate(__alloc(), __cap);\n        __begin_ = __end_ = __first_;\n        __end_cap() = __first_ + __cap;\n        typedef move_iterator<iterator> _Ip;\n        __construct_at_end(_Ip(__c.begin()), _Ip(__c.end()));\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\n__split_buffer<_Tp, _Allocator>&\n__split_buffer<_Tp, _Allocator>::operator=(__split_buffer&& __c)\n    _NOEXCEPT_((__alloc_traits::propagate_on_container_move_assignment::value &&\n                is_nothrow_move_assignable<allocator_type>::value) ||\n               !__alloc_traits::propagate_on_container_move_assignment::value)\n{\n    clear();\n    shrink_to_fit();\n    __first_ = __c.__first_;\n    __begin_ = __c.__begin_;\n    __end_ = __c.__end_;\n    __end_cap() = __c.__end_cap();\n    __move_assign_alloc(__c,\n        integral_constant<bool,\n                          __alloc_traits::propagate_on_container_move_assignment::value>());\n    __c.__first_ = __c.__begin_ = __c.__end_ = __c.__end_cap() = nullptr;\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\nvoid\n__split_buffer<_Tp, _Allocator>::swap(__split_buffer& __x)\n        _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value||\n                   __is_nothrow_swappable<__alloc_rr>::value)\n{\n    _VSTD::swap(__first_, __x.__first_);\n    _VSTD::swap(__begin_, __x.__begin_);\n    _VSTD::swap(__end_, __x.__end_);\n    _VSTD::swap(__end_cap(), __x.__end_cap());\n    __swap_allocator(__alloc(), __x.__alloc());\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\n__split_buffer<_Tp, _Allocator>::reserve(size_type __n)\n{\n    if (__n < capacity())\n    {\n        __split_buffer<value_type, __alloc_rr&> __t(__n, 0, __alloc());\n        __t.__construct_at_end(move_iterator<pointer>(__begin_),\n                               move_iterator<pointer>(__end_));\n        _VSTD::swap(__first_, __t.__first_);\n        _VSTD::swap(__begin_, __t.__begin_);\n        _VSTD::swap(__end_, __t.__end_);\n        _VSTD::swap(__end_cap(), __t.__end_cap());\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\n__split_buffer<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT\n{\n    if (capacity() > size())\n    {\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            __split_buffer<value_type, __alloc_rr&> __t(size(), 0, __alloc());\n            __t.__construct_at_end(move_iterator<pointer>(__begin_),\n                                   move_iterator<pointer>(__end_));\n            __t.__end_ = __t.__begin_ + (__end_ - __begin_);\n            _VSTD::swap(__first_, __t.__first_);\n            _VSTD::swap(__begin_, __t.__begin_);\n            _VSTD::swap(__end_, __t.__end_);\n            _VSTD::swap(__end_cap(), __t.__end_cap());\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\n__split_buffer<_Tp, _Allocator>::push_front(const_reference __x)\n{\n    if (__begin_ == __first_)\n    {\n        if (__end_ < __end_cap())\n        {\n            difference_type __d = __end_cap() - __end_;\n            __d = (__d + 1) / 2;\n            __begin_ = _VSTD::move_backward(__begin_, __end_, __end_ + __d);\n            __end_ += __d;\n        }\n        else\n        {\n            size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1);\n            __split_buffer<value_type, __alloc_rr&> __t(__c, (__c + 3) / 4, __alloc());\n            __t.__construct_at_end(move_iterator<pointer>(__begin_),\n                                   move_iterator<pointer>(__end_));\n            _VSTD::swap(__first_, __t.__first_);\n            _VSTD::swap(__begin_, __t.__begin_);\n            _VSTD::swap(__end_, __t.__end_);\n            _VSTD::swap(__end_cap(), __t.__end_cap());\n        }\n    }\n    __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__begin_-1), __x);\n    --__begin_;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\nvoid\n__split_buffer<_Tp, _Allocator>::push_front(value_type&& __x)\n{\n    if (__begin_ == __first_)\n    {\n        if (__end_ < __end_cap())\n        {\n            difference_type __d = __end_cap() - __end_;\n            __d = (__d + 1) / 2;\n            __begin_ = _VSTD::move_backward(__begin_, __end_, __end_ + __d);\n            __end_ += __d;\n        }\n        else\n        {\n            size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1);\n            __split_buffer<value_type, __alloc_rr&> __t(__c, (__c + 3) / 4, __alloc());\n            __t.__construct_at_end(move_iterator<pointer>(__begin_),\n                                   move_iterator<pointer>(__end_));\n            _VSTD::swap(__first_, __t.__first_);\n            _VSTD::swap(__begin_, __t.__begin_);\n            _VSTD::swap(__end_, __t.__end_);\n            _VSTD::swap(__end_cap(), __t.__end_cap());\n        }\n    }\n    __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__begin_-1),\n            _VSTD::move(__x));\n    --__begin_;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__split_buffer<_Tp, _Allocator>::push_back(const_reference __x)\n{\n    if (__end_ == __end_cap())\n    {\n        if (__begin_ > __first_)\n        {\n            difference_type __d = __begin_ - __first_;\n            __d = (__d + 1) / 2;\n            __end_ = _VSTD::move(__begin_, __end_, __begin_ - __d);\n            __begin_ -= __d;\n        }\n        else\n        {\n            size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1);\n            __split_buffer<value_type, __alloc_rr&> __t(__c, __c / 4, __alloc());\n            __t.__construct_at_end(move_iterator<pointer>(__begin_),\n                                   move_iterator<pointer>(__end_));\n            _VSTD::swap(__first_, __t.__first_);\n            _VSTD::swap(__begin_, __t.__begin_);\n            _VSTD::swap(__end_, __t.__end_);\n            _VSTD::swap(__end_cap(), __t.__end_cap());\n        }\n    }\n    __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__end_), __x);\n    ++__end_;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\nvoid\n__split_buffer<_Tp, _Allocator>::push_back(value_type&& __x)\n{\n    if (__end_ == __end_cap())\n    {\n        if (__begin_ > __first_)\n        {\n            difference_type __d = __begin_ - __first_;\n            __d = (__d + 1) / 2;\n            __end_ = _VSTD::move(__begin_, __end_, __begin_ - __d);\n            __begin_ -= __d;\n        }\n        else\n        {\n            size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1);\n            __split_buffer<value_type, __alloc_rr&> __t(__c, __c / 4, __alloc());\n            __t.__construct_at_end(move_iterator<pointer>(__begin_),\n                                   move_iterator<pointer>(__end_));\n            _VSTD::swap(__first_, __t.__first_);\n            _VSTD::swap(__begin_, __t.__begin_);\n            _VSTD::swap(__end_, __t.__end_);\n            _VSTD::swap(__end_cap(), __t.__end_cap());\n        }\n    }\n    __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__end_),\n            _VSTD::move(__x));\n    ++__end_;\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class... _Args>\nvoid\n__split_buffer<_Tp, _Allocator>::emplace_back(_Args&&... __args)\n{\n    if (__end_ == __end_cap())\n    {\n        if (__begin_ > __first_)\n        {\n            difference_type __d = __begin_ - __first_;\n            __d = (__d + 1) / 2;\n            __end_ = _VSTD::move(__begin_, __end_, __begin_ - __d);\n            __begin_ -= __d;\n        }\n        else\n        {\n            size_type __c = max<size_type>(2 * static_cast<size_t>(__end_cap() - __first_), 1);\n            __split_buffer<value_type, __alloc_rr&> __t(__c, __c / 4, __alloc());\n            __t.__construct_at_end(move_iterator<pointer>(__begin_),\n                                   move_iterator<pointer>(__end_));\n            _VSTD::swap(__first_, __t.__first_);\n            _VSTD::swap(__begin_, __t.__begin_);\n            _VSTD::swap(__end_, __t.__end_);\n            _VSTD::swap(__end_cap(), __t.__end_cap());\n        }\n    }\n    __alloc_traits::construct(__alloc(), _VSTD::__to_raw_pointer(__end_),\n                              _VSTD::forward<_Args>(__args)...);\n    ++__end_;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__split_buffer<_Tp, _Allocator>& __x, __split_buffer<_Tp, _Allocator>& __y)\n        _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_SPLIT_BUFFER\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__sso_allocator",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP___SSO_ALLOCATOR\n#define _LIBCPP___SSO_ALLOCATOR\n\n#include <__config>\n#include <type_traits>\n#include <new>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp, size_t _Np> class _LIBCPP_HIDDEN __sso_allocator;\n\ntemplate <size_t _Np>\nclass _LIBCPP_HIDDEN __sso_allocator<void, _Np>\n{\npublic:\n    typedef const void*       const_pointer;\n    typedef void              value_type;\n};\n\ntemplate <class _Tp, size_t _Np>\nclass _LIBCPP_HIDDEN __sso_allocator\n{\n    typename aligned_storage<sizeof(_Tp) * _Np>::type buf_;\n    bool __allocated_;\npublic:\n    typedef size_t            size_type;\n    typedef _Tp*              pointer;\n    typedef _Tp               value_type;\n\n    _LIBCPP_INLINE_VISIBILITY __sso_allocator() throw() : __allocated_(false) {}\n    _LIBCPP_INLINE_VISIBILITY __sso_allocator(const __sso_allocator&) throw() : __allocated_(false) {}\n    template <class _Up> _LIBCPP_INLINE_VISIBILITY __sso_allocator(const __sso_allocator<_Up, _Np>&) throw()\n         : __allocated_(false) {}\nprivate:\n    __sso_allocator& operator=(const __sso_allocator&);\npublic:\n    _LIBCPP_INLINE_VISIBILITY pointer allocate(size_type __n, typename __sso_allocator<void, _Np>::const_pointer = 0)\n    {\n        if (!__allocated_ && __n <= _Np)\n        {\n            __allocated_ = true;\n            return (pointer)&buf_;\n        }\n        return static_cast<pointer>(_VSTD::__allocate(__n * sizeof(_Tp)));\n    }\n    _LIBCPP_INLINE_VISIBILITY void deallocate(pointer __p, size_type)\n    {\n        if (__p == (pointer)&buf_)\n            __allocated_ = false;\n        else\n            _VSTD::__libcpp_deallocate(__p);\n    }\n    _LIBCPP_INLINE_VISIBILITY size_type max_size() const throw() {return size_type(~0) / sizeof(_Tp);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator==(__sso_allocator& __a) const {return &buf_ == &__a.buf_;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(__sso_allocator& __a) const {return &buf_ != &__a.buf_;}\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP___SSO_ALLOCATOR\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__std_stream",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP___STD_STREAM\n#define _LIBCPP___STD_STREAM\n\n#include <__config>\n#include <ostream>\n#include <istream>\n#include <__locale>\n#include <cstdio>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nstatic const int __limit = 8;\n\n// __stdinbuf\n\ntemplate <class _CharT>\nclass _LIBCPP_HIDDEN __stdinbuf\n    : public basic_streambuf<_CharT, char_traits<_CharT> >\n{\npublic:\n    typedef _CharT                           char_type;\n    typedef char_traits<char_type>           traits_type;\n    typedef typename traits_type::int_type   int_type;\n    typedef typename traits_type::pos_type   pos_type;\n    typedef typename traits_type::off_type   off_type;\n    typedef typename traits_type::state_type state_type;\n\n    __stdinbuf(FILE* __fp, state_type* __st);\n\nprotected:\n    virtual int_type underflow();\n    virtual int_type uflow();\n    virtual int_type pbackfail(int_type __c = traits_type::eof());\n    virtual void imbue(const locale& __loc);\n\nprivate:\n\n    FILE* __file_;\n    const codecvt<char_type, char, state_type>* __cv_;\n    state_type* __st_;\n    int __encoding_;\n    int_type __last_consumed_;\n    bool __last_consumed_is_next_;\n    bool __always_noconv_;\n\n    __stdinbuf(const __stdinbuf&);\n    __stdinbuf& operator=(const __stdinbuf&);\n\n    int_type __getchar(bool __consume);\n};\n\ntemplate <class _CharT>\n__stdinbuf<_CharT>::__stdinbuf(FILE* __fp, state_type* __st)\n    : __file_(__fp),\n      __st_(__st),\n      __last_consumed_(traits_type::eof()),\n      __last_consumed_is_next_(false)\n{\n    imbue(this->getloc());\n}\n\ntemplate <class _CharT>\nvoid\n__stdinbuf<_CharT>::imbue(const locale& __loc)\n{\n    __cv_ = &use_facet<codecvt<char_type, char, state_type> >(__loc);\n    __encoding_ = __cv_->encoding();\n    __always_noconv_ = __cv_->always_noconv();\n    if (__encoding_ > __limit)\n        __throw_runtime_error(\"unsupported locale for standard input\");\n}\n\ntemplate <class _CharT>\ntypename __stdinbuf<_CharT>::int_type\n__stdinbuf<_CharT>::underflow()\n{\n    return __getchar(false);\n}\n\ntemplate <class _CharT>\ntypename __stdinbuf<_CharT>::int_type\n__stdinbuf<_CharT>::uflow()\n{\n    return __getchar(true);\n}\n\ntemplate <class _CharT>\ntypename __stdinbuf<_CharT>::int_type\n__stdinbuf<_CharT>::__getchar(bool __consume)\n{\n    if (__last_consumed_is_next_)\n    {\n        int_type __result = __last_consumed_;\n        if (__consume)\n        {\n            __last_consumed_ = traits_type::eof();\n            __last_consumed_is_next_ = false;\n        }\n        return __result;\n    }\n    char __extbuf[__limit];\n    int __nread = _VSTD::max(1, __encoding_);\n    for (int __i = 0; __i < __nread; ++__i)\n    {\n        int __c = getc(__file_);\n        if (__c == EOF)\n            return traits_type::eof();\n        __extbuf[__i] = static_cast<char>(__c);\n    }\n    char_type __1buf;\n    if (__always_noconv_)\n        __1buf = static_cast<char_type>(__extbuf[0]);\n    else\n    {\n        const char* __enxt;\n        char_type* __inxt;\n        codecvt_base::result __r;\n        do\n        {\n            state_type __sv_st = *__st_;\n            __r = __cv_->in(*__st_, __extbuf, __extbuf + __nread, __enxt,\n                                   &__1buf, &__1buf + 1, __inxt);\n            switch (__r)\n            {\n            case _VSTD::codecvt_base::ok:\n                break;\n            case codecvt_base::partial:\n                *__st_ = __sv_st;\n                if (__nread == sizeof(__extbuf))\n                    return traits_type::eof();\n                {\n                    int __c = getc(__file_);\n                    if (__c == EOF)\n                        return traits_type::eof();\n                    __extbuf[__nread] = static_cast<char>(__c);\n                }\n                ++__nread;\n                break;\n            case codecvt_base::error:\n                return traits_type::eof();\n            case _VSTD::codecvt_base::noconv:\n                __1buf = static_cast<char_type>(__extbuf[0]);\n                break;\n            }\n        } while (__r == _VSTD::codecvt_base::partial);\n    }\n    if (!__consume)\n    {\n        for (int __i = __nread; __i > 0;)\n        {\n            if (ungetc(traits_type::to_int_type(__extbuf[--__i]), __file_) == EOF)\n                return traits_type::eof();\n        }\n    }\n    else\n        __last_consumed_ = traits_type::to_int_type(__1buf);\n    return traits_type::to_int_type(__1buf);\n}\n\ntemplate <class _CharT>\ntypename __stdinbuf<_CharT>::int_type\n__stdinbuf<_CharT>::pbackfail(int_type __c)\n{\n    if (traits_type::eq_int_type(__c, traits_type::eof()))\n    {\n        if (!__last_consumed_is_next_)\n        {\n            __c = __last_consumed_;\n            __last_consumed_is_next_ = !traits_type::eq_int_type(__last_consumed_,\n                                                                 traits_type::eof());\n        }\n        return __c;\n    }\n    if (__last_consumed_is_next_)\n    {\n        char __extbuf[__limit];\n        char* __enxt;\n        const char_type __ci = traits_type::to_char_type(__last_consumed_);\n        const char_type* __inxt;\n        switch (__cv_->out(*__st_, &__ci, &__ci + 1, __inxt,\n                                  __extbuf, __extbuf + sizeof(__extbuf), __enxt))\n        {\n        case _VSTD::codecvt_base::ok:\n            break;\n        case _VSTD::codecvt_base::noconv:\n            __extbuf[0] = static_cast<char>(__last_consumed_);\n            __enxt = __extbuf + 1;\n            break;\n        case codecvt_base::partial:\n        case codecvt_base::error:\n            return traits_type::eof();\n        }\n        while (__enxt > __extbuf)\n            if (ungetc(*--__enxt, __file_) == EOF)\n                return traits_type::eof();\n    }\n    __last_consumed_ = __c;\n    __last_consumed_is_next_ = true;\n    return __c;\n}\n\n// __stdoutbuf\n\ntemplate <class _CharT>\nclass _LIBCPP_HIDDEN __stdoutbuf\n    : public basic_streambuf<_CharT, char_traits<_CharT> >\n{\npublic:\n    typedef _CharT                           char_type;\n    typedef char_traits<char_type>           traits_type;\n    typedef typename traits_type::int_type   int_type;\n    typedef typename traits_type::pos_type   pos_type;\n    typedef typename traits_type::off_type   off_type;\n    typedef typename traits_type::state_type state_type;\n\n    __stdoutbuf(FILE* __fp, state_type* __st);\n\nprotected:\n    virtual int_type overflow (int_type __c = traits_type::eof());\n    virtual streamsize xsputn(const char_type* __s, streamsize __n);\n    virtual int sync();\n    virtual void imbue(const locale& __loc);\n\nprivate:\n    FILE* __file_;\n    const codecvt<char_type, char, state_type>* __cv_;\n    state_type* __st_;\n    bool __always_noconv_;\n\n    __stdoutbuf(const __stdoutbuf&);\n    __stdoutbuf& operator=(const __stdoutbuf&);\n};\n\ntemplate <class _CharT>\n__stdoutbuf<_CharT>::__stdoutbuf(FILE* __fp, state_type* __st)\n    : __file_(__fp),\n      __cv_(&use_facet<codecvt<char_type, char, state_type> >(this->getloc())),\n      __st_(__st),\n      __always_noconv_(__cv_->always_noconv())\n{\n}\n\ntemplate <class _CharT>\ntypename __stdoutbuf<_CharT>::int_type\n__stdoutbuf<_CharT>::overflow(int_type __c)\n{\n    char __extbuf[__limit];\n    char_type __1buf;\n    if (!traits_type::eq_int_type(__c, traits_type::eof()))\n    {\n        __1buf = traits_type::to_char_type(__c);\n        if (__always_noconv_)\n        {\n            if (fwrite(&__1buf, sizeof(char_type), 1, __file_) != 1)\n                return traits_type::eof();\n        }\n        else\n        {\n            char* __extbe = __extbuf;\n            codecvt_base::result __r;\n            char_type* pbase = &__1buf;\n            char_type* pptr = pbase + 1;\n            do\n            {\n                const char_type* __e;\n                __r = __cv_->out(*__st_, pbase, pptr, __e,\n                                        __extbuf,\n                                        __extbuf + sizeof(__extbuf),\n                                        __extbe);\n                if (__e == pbase)\n                    return traits_type::eof();\n                if (__r == codecvt_base::noconv)\n                {\n                    if (fwrite(pbase, 1, 1, __file_) != 1)\n                        return traits_type::eof();\n                }\n                else if (__r == codecvt_base::ok || __r == codecvt_base::partial)\n                {\n                    size_t __nmemb = static_cast<size_t>(__extbe - __extbuf);\n                    if (fwrite(__extbuf, 1, __nmemb, __file_) != __nmemb)\n                        return traits_type::eof();\n                    if (__r == codecvt_base::partial)\n                    {\n                        pbase = const_cast<char_type*>(__e);\n                    }\n                }\n                else\n                    return traits_type::eof();\n            } while (__r == codecvt_base::partial);\n        }\n    }\n    return traits_type::not_eof(__c);\n}\n\ntemplate <class _CharT>\nstreamsize\n__stdoutbuf<_CharT>::xsputn(const char_type* __s, streamsize __n)\n{\n    if (__always_noconv_)\n        return fwrite(__s, sizeof(char_type), __n, __file_);\n    streamsize __i = 0;\n    for (; __i < __n; ++__i, ++__s)\n        if (overflow(traits_type::to_int_type(*__s)) == traits_type::eof())\n            break;\n    return __i;\n}\n\ntemplate <class _CharT>\nint\n__stdoutbuf<_CharT>::sync()\n{\n    char __extbuf[__limit];\n    codecvt_base::result __r;\n    do\n    {\n        char* __extbe;\n        __r = __cv_->unshift(*__st_, __extbuf,\n                                    __extbuf + sizeof(__extbuf),\n                                    __extbe);\n        size_t __nmemb = static_cast<size_t>(__extbe - __extbuf);\n        if (fwrite(__extbuf, 1, __nmemb, __file_) != __nmemb)\n            return -1;\n    } while (__r == codecvt_base::partial);\n    if (__r == codecvt_base::error)\n        return -1;\n    if (fflush(__file_))\n        return -1;\n    return 0;\n}\n\ntemplate <class _CharT>\nvoid\n__stdoutbuf<_CharT>::imbue(const locale& __loc)\n{\n    sync();\n    __cv_ = &use_facet<codecvt<char_type, char, state_type> >(__loc);\n    __always_noconv_ = __cv_->always_noconv();\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP___STD_STREAM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__string",
    "content": "// -*- C++ -*-\n//===-------------------------- __string ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP___STRING\n#define _LIBCPP___STRING\n\n/*\n    string synopsis\n\nnamespace std\n{\n\ntemplate <class charT>\nstruct char_traits\n{\n    typedef charT     char_type;\n    typedef ...       int_type;\n    typedef streamoff off_type;\n    typedef streampos pos_type;\n    typedef mbstate_t state_type;\n\n    static constexpr void assign(char_type& c1, const char_type& c2) noexcept;\n    static constexpr bool eq(char_type c1, char_type c2) noexcept;\n    static constexpr bool lt(char_type c1, char_type c2) noexcept;\n\n    static constexpr int    compare(const char_type* s1, const char_type* s2, size_t n);\n    static constexpr size_t length(const char_type* s);\n    static constexpr const char_type* \n                            find(const char_type* s, size_t n, const char_type& a);\n    static char_type*       move(char_type* s1, const char_type* s2, size_t n);\n    static char_type*       copy(char_type* s1, const char_type* s2, size_t n);\n    static char_type*       assign(char_type* s, size_t n, char_type a);\n\n    static constexpr int_type  not_eof(int_type c) noexcept;\n    static constexpr char_type to_char_type(int_type c) noexcept;\n    static constexpr int_type  to_int_type(char_type c) noexcept;\n    static constexpr bool      eq_int_type(int_type c1, int_type c2) noexcept;\n    static constexpr int_type  eof() noexcept;\n};\n\ntemplate <> struct char_traits<char>;\ntemplate <> struct char_traits<wchar_t>;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <algorithm>  // for search and min\n#include <cstdio>     // For EOF.\n#include <memory>     // for __murmur2_or_cityhash\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// char_traits\n\ntemplate <class _CharT>\nstruct _LIBCPP_TEMPLATE_VIS char_traits\n{\n    typedef _CharT    char_type;\n    typedef int       int_type;\n    typedef streamoff off_type;\n    typedef streampos pos_type;\n    typedef mbstate_t state_type;\n\n    static inline void _LIBCPP_CONSTEXPR_AFTER_CXX14\n        assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;}\n    static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT\n        {return __c1 < __c2;}\n\n    static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    int compare(const char_type* __s1, const char_type* __s2, size_t __n);\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    size_t length(const char_type* __s);\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const char_type* find(const char_type* __s, size_t __n, const char_type& __a);\n    static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n);\n    _LIBCPP_INLINE_VISIBILITY\n    static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n);\n    _LIBCPP_INLINE_VISIBILITY\n    static char_type*       assign(char_type* __s, size_t __n, char_type __a);\n\n    static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT\n        {return eq_int_type(__c, eof()) ? ~eof() : __c;}\n    static inline _LIBCPP_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT\n        {return char_type(__c);}\n    static inline _LIBCPP_CONSTEXPR int_type  to_int_type(char_type __c) _NOEXCEPT\n        {return int_type(__c);}\n    static inline _LIBCPP_CONSTEXPR bool      eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR int_type  eof() _NOEXCEPT\n        {return int_type(EOF);}\n};\n\ntemplate <class _CharT>\n_LIBCPP_CONSTEXPR_AFTER_CXX14 int\nchar_traits<_CharT>::compare(const char_type* __s1, const char_type* __s2, size_t __n)\n{\n    for (; __n; --__n, ++__s1, ++__s2)\n    {\n        if (lt(*__s1, *__s2))\n            return -1;\n        if (lt(*__s2, *__s1))\n            return 1;\n    }\n    return 0;\n}\n\ntemplate <class _CharT>\ninline\n_LIBCPP_CONSTEXPR_AFTER_CXX14 size_t\nchar_traits<_CharT>::length(const char_type* __s)\n{\n    size_t __len = 0;\n    for (; !eq(*__s, char_type(0)); ++__s)\n        ++__len;\n    return __len;\n}\n\ntemplate <class _CharT>\ninline\n_LIBCPP_CONSTEXPR_AFTER_CXX14 const _CharT*\nchar_traits<_CharT>::find(const char_type* __s, size_t __n, const char_type& __a)\n{\n    for (; __n; --__n)\n    {\n        if (eq(*__s, __a))\n            return __s;\n        ++__s;\n    }\n    return 0;\n}\n\ntemplate <class _CharT>\n_CharT*\nchar_traits<_CharT>::move(char_type* __s1, const char_type* __s2, size_t __n)\n{\n    char_type* __r = __s1;\n    if (__s1 < __s2)\n    {\n        for (; __n; --__n, ++__s1, ++__s2)\n            assign(*__s1, *__s2);\n    }\n    else if (__s2 < __s1)\n    {\n        __s1 += __n;\n        __s2 += __n;\n        for (; __n; --__n)\n            assign(*--__s1, *--__s2);\n    }\n    return __r;\n}\n\ntemplate <class _CharT>\ninline\n_CharT*\nchar_traits<_CharT>::copy(char_type* __s1, const char_type* __s2, size_t __n)\n{\n    _LIBCPP_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, \"char_traits::copy overlapped range\");\n    char_type* __r = __s1;\n    for (; __n; --__n, ++__s1, ++__s2)\n        assign(*__s1, *__s2);\n    return __r;\n}\n\ntemplate <class _CharT>\ninline\n_CharT*\nchar_traits<_CharT>::assign(char_type* __s, size_t __n, char_type __a)\n{\n    char_type* __r = __s;\n    for (; __n; --__n, ++__s)\n        assign(*__s, __a);\n    return __r;\n}\n\n// char_traits<char>\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS char_traits<char>\n{\n    typedef char      char_type;\n    typedef int       int_type;\n    typedef streamoff off_type;\n    typedef streampos pos_type;\n    typedef mbstate_t state_type;\n\n    static inline _LIBCPP_CONSTEXPR_AFTER_CXX14\n    void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;}\n    static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT\n            {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT\n        {return (unsigned char)__c1 < (unsigned char)__c2;}\n\n    static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT;\n    static inline size_t _LIBCPP_CONSTEXPR_AFTER_CXX14\n    length(const char_type* __s)  _NOEXCEPT {return __builtin_strlen(__s);}\n    static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT;\n    static inline char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n        {return __n == 0 ? __s1 : (char_type*) memmove(__s1, __s2, __n);}\n    static inline char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, \"char_traits::copy overlapped range\");\n            return __n == 0 ? __s1 : (char_type*)memcpy(__s1, __s2, __n);\n        }\n    static inline char_type* assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT\n        {return __n == 0 ? __s : (char_type*)memset(__s, to_int_type(__a), __n);}\n\n    static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT\n        {return eq_int_type(__c, eof()) ? ~eof() : __c;}\n    static inline _LIBCPP_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT\n        {return char_type(__c);}\n    static inline _LIBCPP_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT\n        {return int_type((unsigned char)__c);}\n    static inline _LIBCPP_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR int_type  eof() _NOEXCEPT\n        {return int_type(EOF);}\n};\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nint\nchar_traits<char>::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n{\n    if (__n == 0)\n        return 0;\n#if __has_feature(cxx_constexpr_string_builtins)\n    return __builtin_memcmp(__s1, __s2, __n);\n#elif _LIBCPP_STD_VER <= 14\n    return memcmp(__s1, __s2, __n);\n#else\n    for (; __n; --__n, ++__s1, ++__s2)\n    {\n        if (lt(*__s1, *__s2))\n            return -1;\n        if (lt(*__s2, *__s1))\n            return 1;\n    }\n    return 0;\n#endif\n}\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nconst char*\nchar_traits<char>::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT\n{\n    if (__n == 0)\n        return NULL;\n#if __has_feature(cxx_constexpr_string_builtins)\n    return __builtin_char_memchr(__s, to_int_type(__a), __n);\n#elif _LIBCPP_STD_VER <= 14\n    return (const char_type*) memchr(__s, to_int_type(__a), __n);\n#else\n    for (; __n; --__n)\n    {\n        if (eq(*__s, __a))\n            return __s;\n        ++__s;\n    }\n    return NULL;\n#endif\n}\n\n\n// char_traits<wchar_t>\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS char_traits<wchar_t>\n{\n    typedef wchar_t   char_type;\n    typedef wint_t    int_type;\n    typedef streamoff off_type;\n    typedef streampos pos_type;\n    typedef mbstate_t state_type;\n\n    static inline _LIBCPP_CONSTEXPR_AFTER_CXX14\n    void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;}\n    static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT\n        {return __c1 < __c2;}\n\n    static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    int compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT;\n    static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    size_t length(const char_type* __s) _NOEXCEPT;\n    static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT;\n    static inline char_type* move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n        {return __n == 0 ? __s1 : (char_type*)wmemmove(__s1, __s2, __n);}\n    static inline char_type* copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, \"char_traits::copy overlapped range\");\n            return __n == 0 ? __s1 : (char_type*)wmemcpy(__s1, __s2, __n);\n        }\n    static inline char_type* assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT\n        {return __n == 0 ? __s : (char_type*)wmemset(__s, __a, __n);}\n\n    static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT\n        {return eq_int_type(__c, eof()) ? ~eof() : __c;}\n    static inline _LIBCPP_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT\n        {return char_type(__c);}\n    static inline _LIBCPP_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT\n        {return int_type(__c);}\n    static inline _LIBCPP_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR int_type eof() _NOEXCEPT\n        {return int_type(WEOF);}\n};\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nint\nchar_traits<wchar_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n{\n    if (__n == 0)\n        return 0;\n#if __has_feature(cxx_constexpr_string_builtins)\n    return __builtin_wmemcmp(__s1, __s2, __n);\n#elif _LIBCPP_STD_VER <= 14\n    return wmemcmp(__s1, __s2, __n);\n#else\n    for (; __n; --__n, ++__s1, ++__s2)\n    {\n        if (lt(*__s1, *__s2))\n            return -1;\n        if (lt(*__s2, *__s1))\n            return 1;\n    }\n    return 0;\n#endif\n}\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nsize_t\nchar_traits<wchar_t>::length(const char_type* __s) _NOEXCEPT\n{\n#if __has_feature(cxx_constexpr_string_builtins)\n    return __builtin_wcslen(__s);\n#elif _LIBCPP_STD_VER <= 14\n    return wcslen(__s);\n#else\n    size_t __len = 0;\n    for (; !eq(*__s, char_type(0)); ++__s)\n        ++__len;\n    return __len;\n#endif\n}\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nconst wchar_t*\nchar_traits<wchar_t>::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT\n{\n    if (__n == 0)\n        return NULL;\n#if __has_feature(cxx_constexpr_string_builtins)\n        return __builtin_wmemchr(__s, __a, __n);\n#elif _LIBCPP_STD_VER <= 14\n    return wmemchr(__s, __a, __n);\n#else\n    for (; __n; --__n)\n    {\n        if (eq(*__s, __a))\n            return __s;\n        ++__s;\n    }\n    return NULL;\n#endif\n}\n\n\n#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS char_traits<char16_t>\n{\n    typedef char16_t       char_type;\n    typedef uint_least16_t int_type;\n    typedef streamoff      off_type;\n    typedef u16streampos   pos_type;\n    typedef mbstate_t      state_type;\n\n    static inline _LIBCPP_CONSTEXPR_AFTER_CXX14\n    void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;}\n    static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT\n        {return __c1 < __c2;}\n\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    int              compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    size_t           length(const char_type* __s) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    static char_type*       assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT;\n\n    static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT\n        {return eq_int_type(__c, eof()) ? ~eof() : __c;}\n    static inline _LIBCPP_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT\n        {return char_type(__c);}\n    static inline _LIBCPP_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT\n        {return int_type(__c);}\n    static inline _LIBCPP_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR int_type eof() _NOEXCEPT\n        {return int_type(0xFFFF);}\n};\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nint\nchar_traits<char16_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n{\n    for (; __n; --__n, ++__s1, ++__s2)\n    {\n        if (lt(*__s1, *__s2))\n            return -1;\n        if (lt(*__s2, *__s1))\n            return 1;\n    }\n    return 0;\n}\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nsize_t\nchar_traits<char16_t>::length(const char_type* __s) _NOEXCEPT\n{\n    size_t __len = 0;\n    for (; !eq(*__s, char_type(0)); ++__s)\n        ++__len;\n    return __len;\n}\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nconst char16_t*\nchar_traits<char16_t>::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT\n{\n    for (; __n; --__n)\n    {\n        if (eq(*__s, __a))\n            return __s;\n        ++__s;\n    }\n    return 0;\n}\n\ninline\nchar16_t*\nchar_traits<char16_t>::move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n{\n    char_type* __r = __s1;\n    if (__s1 < __s2)\n    {\n        for (; __n; --__n, ++__s1, ++__s2)\n            assign(*__s1, *__s2);\n    }\n    else if (__s2 < __s1)\n    {\n        __s1 += __n;\n        __s2 += __n;\n        for (; __n; --__n)\n            assign(*--__s1, *--__s2);\n    }\n    return __r;\n}\n\ninline\nchar16_t*\nchar_traits<char16_t>::copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, \"char_traits::copy overlapped range\");\n    char_type* __r = __s1;\n    for (; __n; --__n, ++__s1, ++__s2)\n        assign(*__s1, *__s2);\n    return __r;\n}\n\ninline\nchar16_t*\nchar_traits<char16_t>::assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT\n{\n    char_type* __r = __s;\n    for (; __n; --__n, ++__s)\n        assign(*__s, __a);\n    return __r;\n}\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS char_traits<char32_t>\n{\n    typedef char32_t       char_type;\n    typedef uint_least32_t int_type;\n    typedef streamoff      off_type;\n    typedef u32streampos   pos_type;\n    typedef mbstate_t      state_type;\n\n    static inline _LIBCPP_CONSTEXPR_AFTER_CXX14\n    void assign(char_type& __c1, const char_type& __c2) _NOEXCEPT {__c1 = __c2;}\n    static inline _LIBCPP_CONSTEXPR bool eq(char_type __c1, char_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR bool lt(char_type __c1, char_type __c2) _NOEXCEPT\n        {return __c1 < __c2;}\n\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    int              compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    size_t           length(const char_type* __s) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const char_type* find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    static char_type*       move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    static char_type*       copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    static char_type*       assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT;\n\n    static inline _LIBCPP_CONSTEXPR int_type  not_eof(int_type __c) _NOEXCEPT\n        {return eq_int_type(__c, eof()) ? ~eof() : __c;}\n    static inline _LIBCPP_CONSTEXPR char_type to_char_type(int_type __c) _NOEXCEPT\n        {return char_type(__c);}\n    static inline _LIBCPP_CONSTEXPR int_type to_int_type(char_type __c) _NOEXCEPT\n        {return int_type(__c);}\n    static inline _LIBCPP_CONSTEXPR bool eq_int_type(int_type __c1, int_type __c2) _NOEXCEPT\n        {return __c1 == __c2;}\n    static inline _LIBCPP_CONSTEXPR int_type eof() _NOEXCEPT\n        {return int_type(0xFFFFFFFF);}\n};\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nint\nchar_traits<char32_t>::compare(const char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n{\n    for (; __n; --__n, ++__s1, ++__s2)\n    {\n        if (lt(*__s1, *__s2))\n            return -1;\n        if (lt(*__s2, *__s1))\n            return 1;\n    }\n    return 0;\n}\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nsize_t\nchar_traits<char32_t>::length(const char_type* __s) _NOEXCEPT\n{\n    size_t __len = 0;\n    for (; !eq(*__s, char_type(0)); ++__s)\n        ++__len;\n    return __len;\n}\n\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\nconst char32_t*\nchar_traits<char32_t>::find(const char_type* __s, size_t __n, const char_type& __a) _NOEXCEPT\n{\n    for (; __n; --__n)\n    {\n        if (eq(*__s, __a))\n            return __s;\n        ++__s;\n    }\n    return 0;\n}\n\ninline\nchar32_t*\nchar_traits<char32_t>::move(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n{\n    char_type* __r = __s1;\n    if (__s1 < __s2)\n    {\n        for (; __n; --__n, ++__s1, ++__s2)\n            assign(*__s1, *__s2);\n    }\n    else if (__s2 < __s1)\n    {\n        __s1 += __n;\n        __s2 += __n;\n        for (; __n; --__n)\n            assign(*--__s1, *--__s2);\n    }\n    return __r;\n}\n\ninline\nchar32_t*\nchar_traits<char32_t>::copy(char_type* __s1, const char_type* __s2, size_t __n) _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s2 < __s1 || __s2 >= __s1+__n, \"char_traits::copy overlapped range\");\n    char_type* __r = __s1;\n    for (; __n; --__n, ++__s1, ++__s2)\n        assign(*__s1, *__s2);\n    return __r;\n}\n\ninline\nchar32_t*\nchar_traits<char32_t>::assign(char_type* __s, size_t __n, char_type __a) _NOEXCEPT\n{\n    char_type* __r = __s;\n    for (; __n; --__n, ++__s)\n        assign(*__s, __a);\n    return __r;\n}\n\n#endif  // _LIBCPP_HAS_NO_UNICODE_CHARS\n\n// helper fns for basic_string and string_view\n\n// __str_find\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_find(const _CharT *__p, _SizeT __sz, \n             _CharT __c, _SizeT __pos) _NOEXCEPT\n{\n    if (__pos >= __sz)\n        return __npos;\n    const _CharT* __r = _Traits::find(__p + __pos, __sz - __pos, __c);\n    if (__r == 0)\n        return __npos;\n    return static_cast<_SizeT>(__r - __p);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_CONSTEXPR_AFTER_CXX11 const _CharT *\n__search_substring(const _CharT *__first1, const _CharT *__last1,\n                   const _CharT *__first2, const _CharT *__last2) {\n  // Take advantage of knowing source and pattern lengths.\n  // Stop short when source is smaller than pattern.\n  const ptrdiff_t __len2 = __last2 - __first2;\n  if (__len2 == 0)\n    return __first1;\n\n  ptrdiff_t __len1 = __last1 - __first1;\n  if (__len1 < __len2)\n    return __last1;\n\n  // First element of __first2 is loop invariant.\n  _CharT __f2 = *__first2;\n  while (true) {\n    __len1 = __last1 - __first1;\n    // Check whether __first1 still has at least __len2 bytes.\n    if (__len1 < __len2)\n      return __last1;\n\n    // Find __f2 the first byte matching in __first1.\n    __first1 = _Traits::find(__first1, __len1 - __len2 + 1, __f2);\n    if (__first1 == 0)\n      return __last1;\n\n    // It is faster to compare from the first byte of __first1 even if we\n    // already know that it matches the first byte of __first2: this is because\n    // __first2 is most likely aligned, as it is user's \"pattern\" string, and\n    // __first1 + 1 is most likely not aligned, as the match is in the middle of\n    // the string.\n    if (_Traits::compare(__first1, __first2, __len2) == 0)\n      return __first1;\n\n    ++__first1;\n  }\n}\n\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_find(const _CharT *__p, _SizeT __sz, \n       const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT\n{\n    if (__pos > __sz)\n        return __npos;\n\n    if (__n == 0) // There is nothing to search, just return __pos.\n        return __pos;\n\n    const _CharT *__r = __search_substring<_CharT, _Traits>(\n        __p + __pos, __p + __sz, __s, __s + __n);\n\n    if (__r == __p + __sz)\n        return __npos;\n    return static_cast<_SizeT>(__r - __p);\n}\n\n\n// __str_rfind\n\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_rfind(const _CharT *__p, _SizeT __sz, \n              _CharT __c, _SizeT __pos) _NOEXCEPT\n{\n    if (__sz < 1)\n        return __npos;\n    if (__pos < __sz)\n        ++__pos;\n    else\n        __pos = __sz;\n    for (const _CharT* __ps = __p + __pos; __ps != __p;)\n    {\n        if (_Traits::eq(*--__ps, __c))\n            return static_cast<_SizeT>(__ps - __p);\n    }\n    return __npos;\n}\n\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_rfind(const _CharT *__p, _SizeT __sz, \n        const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT\n{\n    __pos = _VSTD::min(__pos, __sz);\n    if (__n < __sz - __pos)\n        __pos += __n;\n    else\n        __pos = __sz;\n    const _CharT* __r = _VSTD::__find_end(\n                  __p, __p + __pos, __s, __s + __n, _Traits::eq, \n                        random_access_iterator_tag(), random_access_iterator_tag());\n    if (__n > 0 && __r == __p + __pos)\n        return __npos;\n    return static_cast<_SizeT>(__r - __p);\n}\n\n// __str_find_first_of\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_find_first_of(const _CharT *__p, _SizeT __sz,\n                const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT\n{\n    if (__pos >= __sz || __n == 0)\n        return __npos;\n    const _CharT* __r = _VSTD::__find_first_of_ce\n        (__p + __pos, __p + __sz, __s, __s + __n, _Traits::eq );\n    if (__r == __p + __sz)\n        return __npos;\n    return static_cast<_SizeT>(__r - __p);\n}\n\n\n// __str_find_last_of\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_find_last_of(const _CharT *__p, _SizeT __sz,\n               const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT\n    {\n    if (__n != 0)\n    {\n        if (__pos < __sz)\n            ++__pos;\n        else\n            __pos = __sz;\n        for (const _CharT* __ps = __p + __pos; __ps != __p;)\n        {\n            const _CharT* __r = _Traits::find(__s, __n, *--__ps);\n            if (__r)\n                return static_cast<_SizeT>(__ps - __p);\n        }\n    }\n    return __npos;\n}\n\n\n// __str_find_first_not_of\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_find_first_not_of(const _CharT *__p, _SizeT __sz,\n                    const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT\n{\n    if (__pos < __sz)\n    {\n        const _CharT* __pe = __p + __sz;\n        for (const _CharT* __ps = __p + __pos; __ps != __pe; ++__ps)\n            if (_Traits::find(__s, __n, *__ps) == 0)\n                return static_cast<_SizeT>(__ps - __p);\n    }\n    return __npos;\n}\n\n\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_find_first_not_of(const _CharT *__p, _SizeT __sz,\n                          _CharT __c, _SizeT __pos) _NOEXCEPT\n{\n    if (__pos < __sz)\n    {\n        const _CharT* __pe = __p + __sz;\n        for (const _CharT* __ps = __p + __pos; __ps != __pe; ++__ps)\n            if (!_Traits::eq(*__ps, __c))\n                return static_cast<_SizeT>(__ps - __p);\n    }\n    return __npos;\n}\n\n\n// __str_find_last_not_of\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_find_last_not_of(const _CharT *__p, _SizeT __sz,\n                   const _CharT* __s, _SizeT __pos, _SizeT __n) _NOEXCEPT\n{\n    if (__pos < __sz)\n        ++__pos;\n    else\n        __pos = __sz;\n    for (const _CharT* __ps = __p + __pos; __ps != __p;)\n        if (_Traits::find(__s, __n, *--__ps) == 0)\n            return static_cast<_SizeT>(__ps - __p);\n    return __npos;\n}\n\n\ntemplate<class _CharT, class _SizeT, class _Traits, _SizeT __npos>\ninline _SizeT _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n__str_find_last_not_of(const _CharT *__p, _SizeT __sz,\n                         _CharT __c, _SizeT __pos) _NOEXCEPT\n{\n    if (__pos < __sz)\n        ++__pos;\n    else\n        __pos = __sz;\n    for (const _CharT* __ps = __p + __pos; __ps != __p;)\n        if (!_Traits::eq(*--__ps, __c))\n            return static_cast<_SizeT>(__ps - __p);\n    return __npos;\n}\n\ntemplate<class _Ptr>\ninline _LIBCPP_INLINE_VISIBILITY\nsize_t __do_string_hash(_Ptr __p, _Ptr __e)\n{\n    typedef typename iterator_traits<_Ptr>::value_type value_type;\n    return __murmur2_or_cityhash<size_t>()(__p, (__e-__p)*sizeof(value_type));\n}\n\ntemplate <class _CharT, class _Iter, class _Traits=char_traits<_CharT> >\nstruct __quoted_output_proxy\n{\n    _Iter  __first;\n    _Iter  __last;\n    _CharT  __delim;\n    _CharT  __escape;\n\n    __quoted_output_proxy(_Iter __f, _Iter __l, _CharT __d, _CharT __e)\n    : __first(__f), __last(__l), __delim(__d), __escape(__e) {}\n    //  This would be a nice place for a string_ref \n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP___STRING\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__threading_support",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_THREADING_SUPPORT\n#define _LIBCPP_THREADING_SUPPORT\n\n#include <__config>\n#include <chrono>\n#include <errno.h>\n\n#ifndef _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER\n#pragma GCC system_header\n#endif\n\n#if defined(_LIBCPP_HAS_THREAD_API_EXTERNAL)\n# include <__external_threading>\n#elif !defined(_LIBCPP_HAS_NO_THREADS)\n\n#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD)\n# include <pthread.h>\n# include <sched.h>\n#elif defined(_LIBCPP_HAS_THREAD_API_WIN32)\n#include <windows.h>\n#include <process.h>\n#include <fibersapi.h>\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n#if defined(_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL) || \\\n    defined(_LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL)\n#define _LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_FUNC_VIS\n#else\n#define _LIBCPP_THREAD_ABI_VISIBILITY inline _LIBCPP_INLINE_VISIBILITY\n#endif\n\n#if defined(__FreeBSD__) && defined(__clang__) && __has_attribute(no_thread_safety_analysis)\n#define _LIBCPP_NO_THREAD_SAFETY_ANALYSIS __attribute__((no_thread_safety_analysis))\n#else\n#define _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD)\n// Mutex\ntypedef pthread_mutex_t __libcpp_mutex_t;\n#define _LIBCPP_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER\n\ntypedef pthread_mutex_t __libcpp_recursive_mutex_t;\n\n// Condition Variable\ntypedef pthread_cond_t __libcpp_condvar_t;\n#define _LIBCPP_CONDVAR_INITIALIZER PTHREAD_COND_INITIALIZER\n\n// Execute once\ntypedef pthread_once_t __libcpp_exec_once_flag;\n#define _LIBCPP_EXEC_ONCE_INITIALIZER PTHREAD_ONCE_INIT\n\n// Thread id\ntypedef pthread_t __libcpp_thread_id;\n\n// Thread\n#define _LIBCPP_NULL_THREAD 0U\n\ntypedef pthread_t __libcpp_thread_t;\n\n// Thrad Local Storage\ntypedef pthread_key_t __libcpp_tls_key;\n\n#define _LIBCPP_TLS_DESTRUCTOR_CC\n#else\n// Mutex\ntypedef SRWLOCK __libcpp_mutex_t;\n#define _LIBCPP_MUTEX_INITIALIZER SRWLOCK_INIT\n\ntypedef CRITICAL_SECTION __libcpp_recursive_mutex_t;\n\n// Condition Variable\ntypedef CONDITION_VARIABLE __libcpp_condvar_t;\n#define _LIBCPP_CONDVAR_INITIALIZER CONDITION_VARIABLE_INIT\n\n// Execute Once\ntypedef INIT_ONCE __libcpp_exec_once_flag;\n#define _LIBCPP_EXEC_ONCE_INITIALIZER INIT_ONCE_STATIC_INIT\n\n// Thread ID\ntypedef DWORD __libcpp_thread_id;\n\n// Thread\n#define _LIBCPP_NULL_THREAD 0U\n\ntypedef HANDLE __libcpp_thread_t;\n\n// Thread Local Storage\ntypedef DWORD __libcpp_tls_key;\n\n#define _LIBCPP_TLS_DESTRUCTOR_CC WINAPI\n#endif\n\n// Mutex\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\nint __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\nbool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\nint __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\nint __libcpp_mutex_lock(__libcpp_mutex_t *__m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\nbool __libcpp_mutex_trylock(__libcpp_mutex_t *__m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\nint __libcpp_mutex_unlock(__libcpp_mutex_t *__m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_mutex_destroy(__libcpp_mutex_t *__m);\n\n// Condition variable\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_condvar_signal(__libcpp_condvar_t* __cv);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_condvar_broadcast(__libcpp_condvar_t* __cv);\n\n_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\nint __libcpp_condvar_wait(__libcpp_condvar_t* __cv, __libcpp_mutex_t* __m);\n\n_LIBCPP_THREAD_ABI_VISIBILITY _LIBCPP_NO_THREAD_SAFETY_ANALYSIS\nint __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m,\n                               timespec *__ts);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_condvar_destroy(__libcpp_condvar_t* __cv);\n\n// Execute once\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_execute_once(__libcpp_exec_once_flag *flag,\n                          void (*init_routine)(void));\n\n// Thread id\n_LIBCPP_THREAD_ABI_VISIBILITY\nbool __libcpp_thread_id_equal(__libcpp_thread_id t1, __libcpp_thread_id t2);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nbool __libcpp_thread_id_less(__libcpp_thread_id t1, __libcpp_thread_id t2);\n\n// Thread\n_LIBCPP_THREAD_ABI_VISIBILITY\nbool __libcpp_thread_isnull(const __libcpp_thread_t *__t);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *),\n                           void *__arg);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\n__libcpp_thread_id __libcpp_thread_get_current_id();\n\n_LIBCPP_THREAD_ABI_VISIBILITY\n__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_thread_join(__libcpp_thread_t *__t);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_thread_detach(__libcpp_thread_t *__t);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nvoid __libcpp_thread_yield();\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nvoid __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns);\n\n// Thread local storage\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_tls_create(__libcpp_tls_key* __key,\n                        void(_LIBCPP_TLS_DESTRUCTOR_CC* __at_exit)(void*));\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nvoid *__libcpp_tls_get(__libcpp_tls_key __key);\n\n_LIBCPP_THREAD_ABI_VISIBILITY\nint __libcpp_tls_set(__libcpp_tls_key __key, void *__p);\n\n#if !defined(_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL) || \\\n    defined(_LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL)\n\n#if defined(_LIBCPP_HAS_THREAD_API_PTHREAD)\n\nint __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m)\n{\n  pthread_mutexattr_t attr;\n  int __ec = pthread_mutexattr_init(&attr);\n  if (__ec)\n    return __ec;\n  __ec = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);\n  if (__ec) {\n    pthread_mutexattr_destroy(&attr);\n    return __ec;\n  }\n  __ec = pthread_mutex_init(__m, &attr);\n  if (__ec) {\n    pthread_mutexattr_destroy(&attr);\n    return __ec;\n  }\n  __ec = pthread_mutexattr_destroy(&attr);\n  if (__ec) {\n    pthread_mutex_destroy(__m);\n    return __ec;\n  }\n  return 0;\n}\n\nint __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m)\n{\n  return pthread_mutex_lock(__m);\n}\n\nbool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m)\n{\n  return pthread_mutex_trylock(__m) == 0;\n}\n\nint __libcpp_recursive_mutex_unlock(__libcpp_mutex_t *__m)\n{\n  return pthread_mutex_unlock(__m);\n}\n\nint __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m)\n{\n  return pthread_mutex_destroy(__m);\n}\n\nint __libcpp_mutex_lock(__libcpp_mutex_t *__m)\n{\n  return pthread_mutex_lock(__m);\n}\n\nbool __libcpp_mutex_trylock(__libcpp_mutex_t *__m)\n{\n  return pthread_mutex_trylock(__m) == 0;\n}\n\nint __libcpp_mutex_unlock(__libcpp_mutex_t *__m)\n{\n  return pthread_mutex_unlock(__m);\n}\n\nint __libcpp_mutex_destroy(__libcpp_mutex_t *__m)\n{\n  return pthread_mutex_destroy(__m);\n}\n\n// Condition Variable\nint __libcpp_condvar_signal(__libcpp_condvar_t *__cv)\n{\n  return pthread_cond_signal(__cv);\n}\n\nint __libcpp_condvar_broadcast(__libcpp_condvar_t *__cv)\n{\n  return pthread_cond_broadcast(__cv);\n}\n\nint __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m)\n{\n  return pthread_cond_wait(__cv, __m);\n}\n\nint __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m,\n                               timespec *__ts)\n{\n  return pthread_cond_timedwait(__cv, __m, __ts);\n}\n\nint __libcpp_condvar_destroy(__libcpp_condvar_t *__cv)\n{\n  return pthread_cond_destroy(__cv);\n}\n\n// Execute once\nint __libcpp_execute_once(__libcpp_exec_once_flag *flag,\n                          void (*init_routine)(void)) {\n  return pthread_once(flag, init_routine);\n}\n\n// Thread id\n// Returns non-zero if the thread ids are equal, otherwise 0\nbool __libcpp_thread_id_equal(__libcpp_thread_id t1, __libcpp_thread_id t2)\n{\n  return pthread_equal(t1, t2) != 0;\n}\n\n// Returns non-zero if t1 < t2, otherwise 0\nbool __libcpp_thread_id_less(__libcpp_thread_id t1, __libcpp_thread_id t2)\n{\n  return t1 < t2;\n}\n\n// Thread\nbool __libcpp_thread_isnull(const __libcpp_thread_t *__t) {\n  return *__t == 0;\n}\n\nint __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *),\n                           void *__arg)\n{\n  return pthread_create(__t, 0, __func, __arg);\n}\n\n__libcpp_thread_id __libcpp_thread_get_current_id()\n{\n  return pthread_self();\n}\n\n__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t)\n{\n  return *__t;\n}\n\nint __libcpp_thread_join(__libcpp_thread_t *__t)\n{\n  return pthread_join(*__t, 0);\n}\n\nint __libcpp_thread_detach(__libcpp_thread_t *__t)\n{\n  return pthread_detach(*__t);\n}\n\nvoid __libcpp_thread_yield()\n{\n  sched_yield();\n}\n\nvoid __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns)\n{\n   using namespace chrono;\n   seconds __s = duration_cast<seconds>(__ns);\n   timespec __ts;\n   typedef decltype(__ts.tv_sec) ts_sec;\n   _LIBCPP_CONSTEXPR ts_sec __ts_sec_max = numeric_limits<ts_sec>::max();\n\n   if (__s.count() < __ts_sec_max)\n   {\n     __ts.tv_sec = static_cast<ts_sec>(__s.count());\n     __ts.tv_nsec = static_cast<decltype(__ts.tv_nsec)>((__ns - __s).count());\n   }\n   else\n   {\n     __ts.tv_sec = __ts_sec_max;\n     __ts.tv_nsec = 999999999; // (10^9 - 1)\n   }\n\n   while (nanosleep(&__ts, &__ts) == -1 && errno == EINTR);\n}\n\n// Thread local storage\nint __libcpp_tls_create(__libcpp_tls_key *__key, void (*__at_exit)(void *))\n{\n  return pthread_key_create(__key, __at_exit);\n}\n\nvoid *__libcpp_tls_get(__libcpp_tls_key __key)\n{\n  return pthread_getspecific(__key);\n}\n\nint __libcpp_tls_set(__libcpp_tls_key __key, void *__p)\n{\n    return pthread_setspecific(__key, __p);\n}\n\n#elif defined(_LIBCPP_HAS_THREAD_API_WIN32)\n\n// Mutex\nint __libcpp_recursive_mutex_init(__libcpp_recursive_mutex_t *__m)\n{\n  InitializeCriticalSection(__m);\n  return 0;\n}\n\nint __libcpp_recursive_mutex_lock(__libcpp_recursive_mutex_t *__m)\n{\n  EnterCriticalSection(__m);\n  return 0;\n}\n\nbool __libcpp_recursive_mutex_trylock(__libcpp_recursive_mutex_t *__m)\n{\n  return TryEnterCriticalSection(__m) != 0;\n}\n\nint __libcpp_recursive_mutex_unlock(__libcpp_recursive_mutex_t *__m)\n{\n  LeaveCriticalSection(__m);\n  return 0;\n}\n\nint __libcpp_recursive_mutex_destroy(__libcpp_recursive_mutex_t *__m)\n{\n  DeleteCriticalSection(__m);\n  return 0;\n}\n\nint __libcpp_mutex_lock(__libcpp_mutex_t *__m)\n{\n  AcquireSRWLockExclusive(__m);\n  return 0;\n}\n\nbool __libcpp_mutex_trylock(__libcpp_mutex_t *__m)\n{\n  return TryAcquireSRWLockExclusive(__m) != 0;\n}\n\nint __libcpp_mutex_unlock(__libcpp_mutex_t *__m)\n{\n  ReleaseSRWLockExclusive(__m);\n  return 0;\n}\n\nint __libcpp_mutex_destroy(__libcpp_mutex_t *__m)\n{\n  static_cast<void>(__m);\n  return 0;\n}\n\n// Condition Variable\nint __libcpp_condvar_signal(__libcpp_condvar_t *__cv)\n{\n  WakeConditionVariable(__cv);\n  return 0;\n}\n\nint __libcpp_condvar_broadcast(__libcpp_condvar_t *__cv)\n{\n  WakeAllConditionVariable(__cv);\n  return 0;\n}\n\nint __libcpp_condvar_wait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m)\n{\n  SleepConditionVariableSRW(__cv, __m, INFINITE, 0);\n  return 0;\n}\n\nint __libcpp_condvar_timedwait(__libcpp_condvar_t *__cv, __libcpp_mutex_t *__m,\n                               timespec *__ts)\n{\n  using namespace _VSTD::chrono;\n\n  auto duration = seconds(__ts->tv_sec) + nanoseconds(__ts->tv_nsec);\n  auto abstime =\n      system_clock::time_point(duration_cast<system_clock::duration>(duration));\n  auto timeout_ms = duration_cast<milliseconds>(abstime - system_clock::now());\n\n  if (!SleepConditionVariableSRW(__cv, __m,\n                                 timeout_ms.count() > 0 ? timeout_ms.count()\n                                                        : 0,\n                                 0))\n    {\n      auto __ec = GetLastError();\n      return __ec == ERROR_TIMEOUT ? ETIMEDOUT : __ec;\n    }\n  return 0;\n}\n\nint __libcpp_condvar_destroy(__libcpp_condvar_t *__cv)\n{\n  static_cast<void>(__cv);\n  return 0;\n}\n\n// Execute Once\nstatic inline _LIBCPP_ALWAYS_INLINE BOOL CALLBACK\n__libcpp_init_once_execute_once_thunk(PINIT_ONCE __init_once, PVOID __parameter,\n                                      PVOID *__context)\n{\n  static_cast<void>(__init_once);\n  static_cast<void>(__context);\n\n  void (*init_routine)(void) = reinterpret_cast<void (*)(void)>(__parameter);\n  init_routine();\n  return TRUE;\n}\n\nint __libcpp_execute_once(__libcpp_exec_once_flag *__flag,\n                          void (*__init_routine)(void))\n{\n  if (!InitOnceExecuteOnce(__flag, __libcpp_init_once_execute_once_thunk,\n                           reinterpret_cast<void *>(__init_routine), NULL))\n    return GetLastError();\n  return 0;\n}\n\n// Thread ID\nbool __libcpp_thread_id_equal(__libcpp_thread_id __lhs,\n                              __libcpp_thread_id __rhs)\n{\n  return __lhs == __rhs;\n}\n\nbool __libcpp_thread_id_less(__libcpp_thread_id __lhs, __libcpp_thread_id __rhs)\n{\n  return __lhs < __rhs;\n}\n\n// Thread\nstruct __libcpp_beginthreadex_thunk_data\n{\n  void *(*__func)(void *);\n  void *__arg;\n};\n\nstatic inline _LIBCPP_ALWAYS_INLINE unsigned WINAPI\n__libcpp_beginthreadex_thunk(void *__raw_data)\n{\n  auto *__data =\n      static_cast<__libcpp_beginthreadex_thunk_data *>(__raw_data);\n  auto *__func = __data->__func;\n  void *__arg = __data->__arg;\n  delete __data;\n  return static_cast<unsigned>(reinterpret_cast<uintptr_t>(__func(__arg)));\n}\n\nbool __libcpp_thread_isnull(const __libcpp_thread_t *__t) {\n  return *__t == 0;\n}\n\nint __libcpp_thread_create(__libcpp_thread_t *__t, void *(*__func)(void *),\n                           void *__arg)\n{\n  auto *__data = new __libcpp_beginthreadex_thunk_data;\n  __data->__func = __func;\n  __data->__arg = __arg;\n\n  *__t = reinterpret_cast<HANDLE>(_beginthreadex(nullptr, 0,\n                                                 __libcpp_beginthreadex_thunk,\n                                                 __data, 0, nullptr));\n\n  if (*__t)\n    return 0;\n  return GetLastError();\n}\n\n__libcpp_thread_id __libcpp_thread_get_current_id()\n{\n  return GetCurrentThreadId();\n}\n\n__libcpp_thread_id __libcpp_thread_get_id(const __libcpp_thread_t *__t)\n{\n  return GetThreadId(*__t);\n}\n\nint __libcpp_thread_join(__libcpp_thread_t *__t)\n{\n  if (WaitForSingleObjectEx(*__t, INFINITE, FALSE) == WAIT_FAILED)\n    return GetLastError();\n  if (!CloseHandle(*__t))\n    return GetLastError();\n  return 0;\n}\n\nint __libcpp_thread_detach(__libcpp_thread_t *__t)\n{\n  if (!CloseHandle(*__t))\n    return GetLastError();\n  return 0;\n}\n\nvoid __libcpp_thread_yield()\n{\n  SwitchToThread();\n}\n\nvoid __libcpp_thread_sleep_for(const chrono::nanoseconds& __ns)\n{\n  using namespace chrono;\n  // round-up to the nearest milisecond\n  milliseconds __ms =\n      duration_cast<milliseconds>(__ns + chrono::nanoseconds(999999));\n  // FIXME(compnerd) this should be an alertable sleep (WFSO or SleepEx)\n  Sleep(__ms.count());\n}\n\n// Thread Local Storage\nint __libcpp_tls_create(__libcpp_tls_key* __key,\n                        void(_LIBCPP_TLS_DESTRUCTOR_CC* __at_exit)(void*))\n{\n  *__key = FlsAlloc(__at_exit);\n  if (*__key == FLS_OUT_OF_INDEXES)\n    return GetLastError();\n  return 0;\n}\n\nvoid *__libcpp_tls_get(__libcpp_tls_key __key)\n{\n  return FlsGetValue(__key);\n}\n\nint __libcpp_tls_set(__libcpp_tls_key __key, void *__p)\n{\n  if (!FlsSetValue(__key, __p))\n    return GetLastError();\n  return 0;\n}\n\n#endif // _LIBCPP_HAS_THREAD_API_PTHREAD\n\n#endif // !_LIBCPP_HAS_THREAD_LIBRARY_EXTERNAL || _LIBCPP_BUILDING_THREAD_LIBRARY_EXTERNAL\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif // !_LIBCPP_HAS_NO_THREADS\n\n#endif // _LIBCPP_THREADING_SUPPORT\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__tree",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP___TREE\n#define _LIBCPP___TREE\n\n#include <__config>\n#include <iterator>\n#include <memory>\n#include <stdexcept>\n#include <algorithm>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp, class _Compare, class _Allocator> class __tree;\ntemplate <class _Tp, class _NodePtr, class _DiffType>\n    class _LIBCPP_TEMPLATE_VIS __tree_iterator;\ntemplate <class _Tp, class _ConstNodePtr, class _DiffType>\n    class _LIBCPP_TEMPLATE_VIS __tree_const_iterator;\n\ntemplate <class _Pointer> class __tree_end_node;\ntemplate <class _VoidPtr> class __tree_node_base;\ntemplate <class _Tp, class _VoidPtr> class __tree_node;\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Key, class _Value>\nunion __value_type;\n#else\ntemplate <class _Key, class _Value>\nstruct __value_type;\n#endif\n\ntemplate <class _Key, class _CP, class _Compare,\n    bool = is_empty<_Compare>::value && !__libcpp_is_final<_Compare>::value>\nclass __map_value_compare;\n\ntemplate <class _Allocator> class __map_node_destructor;\ntemplate <class _TreeIterator> class _LIBCPP_TEMPLATE_VIS __map_iterator;\ntemplate <class _TreeIterator> class _LIBCPP_TEMPLATE_VIS __map_const_iterator;\n\n/*\n\n_NodePtr algorithms\n\nThe algorithms taking _NodePtr are red black tree algorithms.  Those\nalgorithms taking a parameter named __root should assume that __root\npoints to a proper red black tree (unless otherwise specified).\n\nEach algorithm herein assumes that __root->__parent_ points to a non-null\nstructure which has a member __left_ which points back to __root.  No other\nmember is read or written to at __root->__parent_.\n\n__root->__parent_ will be referred to below (in comments only) as end_node.\nend_node->__left_ is an externably accessible lvalue for __root, and can be\nchanged by node insertion and removal (without explicit reference to end_node).\n\nAll nodes (with the exception of end_node), even the node referred to as\n__root, have a non-null __parent_ field.\n\n*/\n\n// Returns:  true if __x is a left child of its parent, else false\n// Precondition:  __x != nullptr.\ntemplate <class _NodePtr>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\n__tree_is_left_child(_NodePtr __x) _NOEXCEPT\n{\n    return __x == __x->__parent_->__left_;\n}\n\n// Determintes if the subtree rooted at __x is a proper red black subtree.  If\n//    __x is a proper subtree, returns the black height (null counts as 1).  If\n//    __x is an improper subtree, returns 0.\ntemplate <class _NodePtr>\nunsigned\n__tree_sub_invariant(_NodePtr __x)\n{\n    if (__x == nullptr)\n        return 1;\n    // parent consistency checked by caller\n    // check __x->__left_ consistency\n    if (__x->__left_ != nullptr && __x->__left_->__parent_ != __x)\n        return 0;\n    // check __x->__right_ consistency\n    if (__x->__right_ != nullptr && __x->__right_->__parent_ != __x)\n        return 0;\n    // check __x->__left_ != __x->__right_ unless both are nullptr\n    if (__x->__left_ == __x->__right_ && __x->__left_ != nullptr)\n        return 0;\n    // If this is red, neither child can be red\n    if (!__x->__is_black_)\n    {\n        if (__x->__left_ && !__x->__left_->__is_black_)\n            return 0;\n        if (__x->__right_ && !__x->__right_->__is_black_)\n            return 0;\n    }\n    unsigned __h = __tree_sub_invariant(__x->__left_);\n    if (__h == 0)\n        return 0;  // invalid left subtree\n    if (__h != __tree_sub_invariant(__x->__right_))\n        return 0;  // invalid or different height right subtree\n    return __h + __x->__is_black_;  // return black height of this node\n}\n\n// Determintes if the red black tree rooted at __root is a proper red black tree.\n//    __root == nullptr is a proper tree.  Returns true is __root is a proper\n//    red black tree, else returns false.\ntemplate <class _NodePtr>\nbool\n__tree_invariant(_NodePtr __root)\n{\n    if (__root == nullptr)\n        return true;\n    // check __x->__parent_ consistency\n    if (__root->__parent_ == nullptr)\n        return false;\n    if (!__tree_is_left_child(__root))\n        return false;\n    // root must be black\n    if (!__root->__is_black_)\n        return false;\n    // do normal node checks\n    return __tree_sub_invariant(__root) != 0;\n}\n\n// Returns:  pointer to the left-most node under __x.\n// Precondition:  __x != nullptr.\ntemplate <class _NodePtr>\ninline _LIBCPP_INLINE_VISIBILITY\n_NodePtr\n__tree_min(_NodePtr __x) _NOEXCEPT\n{\n    while (__x->__left_ != nullptr)\n        __x = __x->__left_;\n    return __x;\n}\n\n// Returns:  pointer to the right-most node under __x.\n// Precondition:  __x != nullptr.\ntemplate <class _NodePtr>\ninline _LIBCPP_INLINE_VISIBILITY\n_NodePtr\n__tree_max(_NodePtr __x) _NOEXCEPT\n{\n    while (__x->__right_ != nullptr)\n        __x = __x->__right_;\n    return __x;\n}\n\n// Returns:  pointer to the next in-order node after __x.\n// Precondition:  __x != nullptr.\ntemplate <class _NodePtr>\n_NodePtr\n__tree_next(_NodePtr __x) _NOEXCEPT\n{\n    if (__x->__right_ != nullptr)\n        return __tree_min(__x->__right_);\n    while (!__tree_is_left_child(__x))\n        __x = __x->__parent_unsafe();\n    return __x->__parent_unsafe();\n}\n\ntemplate <class _EndNodePtr, class _NodePtr>\ninline _LIBCPP_INLINE_VISIBILITY\n_EndNodePtr\n__tree_next_iter(_NodePtr __x) _NOEXCEPT\n{\n    if (__x->__right_ != nullptr)\n        return static_cast<_EndNodePtr>(__tree_min(__x->__right_));\n    while (!__tree_is_left_child(__x))\n        __x = __x->__parent_unsafe();\n    return static_cast<_EndNodePtr>(__x->__parent_);\n}\n\n// Returns:  pointer to the previous in-order node before __x.\n// Precondition:  __x != nullptr.\n// Note: __x may be the end node.\ntemplate <class _NodePtr, class _EndNodePtr>\ninline _LIBCPP_INLINE_VISIBILITY\n_NodePtr\n__tree_prev_iter(_EndNodePtr __x) _NOEXCEPT\n{\n    if (__x->__left_ != nullptr)\n        return __tree_max(__x->__left_);\n    _NodePtr __xx = static_cast<_NodePtr>(__x);\n    while (__tree_is_left_child(__xx))\n        __xx = __xx->__parent_unsafe();\n    return __xx->__parent_unsafe();\n}\n\n// Returns:  pointer to a node which has no children\n// Precondition:  __x != nullptr.\ntemplate <class _NodePtr>\n_NodePtr\n__tree_leaf(_NodePtr __x) _NOEXCEPT\n{\n    while (true)\n    {\n        if (__x->__left_ != nullptr)\n        {\n            __x = __x->__left_;\n            continue;\n        }\n        if (__x->__right_ != nullptr)\n        {\n            __x = __x->__right_;\n            continue;\n        }\n        break;\n    }\n    return __x;\n}\n\n// Effects:  Makes __x->__right_ the subtree root with __x as its left child\n//           while preserving in-order order.\n// Precondition:  __x->__right_ != nullptr\ntemplate <class _NodePtr>\nvoid\n__tree_left_rotate(_NodePtr __x) _NOEXCEPT\n{\n    _NodePtr __y = __x->__right_;\n    __x->__right_ = __y->__left_;\n    if (__x->__right_ != nullptr)\n        __x->__right_->__set_parent(__x);\n    __y->__parent_ = __x->__parent_;\n    if (__tree_is_left_child(__x))\n        __x->__parent_->__left_ = __y;\n    else\n        __x->__parent_unsafe()->__right_ = __y;\n    __y->__left_ = __x;\n    __x->__set_parent(__y);\n}\n\n// Effects:  Makes __x->__left_ the subtree root with __x as its right child\n//           while preserving in-order order.\n// Precondition:  __x->__left_ != nullptr\ntemplate <class _NodePtr>\nvoid\n__tree_right_rotate(_NodePtr __x) _NOEXCEPT\n{\n    _NodePtr __y = __x->__left_;\n    __x->__left_ = __y->__right_;\n    if (__x->__left_ != nullptr)\n        __x->__left_->__set_parent(__x);\n    __y->__parent_ = __x->__parent_;\n    if (__tree_is_left_child(__x))\n        __x->__parent_->__left_ = __y;\n    else\n        __x->__parent_unsafe()->__right_ = __y;\n    __y->__right_ = __x;\n    __x->__set_parent(__y);\n}\n\n// Effects:  Rebalances __root after attaching __x to a leaf.\n// Precondition:  __root != nulptr && __x != nullptr.\n//                __x has no children.\n//                __x == __root or == a direct or indirect child of __root.\n//                If __x were to be unlinked from __root (setting __root to\n//                  nullptr if __root == __x), __tree_invariant(__root) == true.\n// Postcondition: __tree_invariant(end_node->__left_) == true.  end_node->__left_\n//                may be different than the value passed in as __root.\ntemplate <class _NodePtr>\nvoid\n__tree_balance_after_insert(_NodePtr __root, _NodePtr __x) _NOEXCEPT\n{\n    __x->__is_black_ = __x == __root;\n    while (__x != __root && !__x->__parent_unsafe()->__is_black_)\n    {\n        // __x->__parent_ != __root because __x->__parent_->__is_black == false\n        if (__tree_is_left_child(__x->__parent_unsafe()))\n        {\n            _NodePtr __y = __x->__parent_unsafe()->__parent_unsafe()->__right_;\n            if (__y != nullptr && !__y->__is_black_)\n            {\n                __x = __x->__parent_unsafe();\n                __x->__is_black_ = true;\n                __x = __x->__parent_unsafe();\n                __x->__is_black_ = __x == __root;\n                __y->__is_black_ = true;\n            }\n            else\n            {\n                if (!__tree_is_left_child(__x))\n                {\n                    __x = __x->__parent_unsafe();\n                    __tree_left_rotate(__x);\n                }\n                __x = __x->__parent_unsafe();\n                __x->__is_black_ = true;\n                __x = __x->__parent_unsafe();\n                __x->__is_black_ = false;\n                __tree_right_rotate(__x);\n                break;\n            }\n        }\n        else\n        {\n            _NodePtr __y = __x->__parent_unsafe()->__parent_->__left_;\n            if (__y != nullptr && !__y->__is_black_)\n            {\n                __x = __x->__parent_unsafe();\n                __x->__is_black_ = true;\n                __x = __x->__parent_unsafe();\n                __x->__is_black_ = __x == __root;\n                __y->__is_black_ = true;\n            }\n            else\n            {\n                if (__tree_is_left_child(__x))\n                {\n                    __x = __x->__parent_unsafe();\n                    __tree_right_rotate(__x);\n                }\n                __x = __x->__parent_unsafe();\n                __x->__is_black_ = true;\n                __x = __x->__parent_unsafe();\n                __x->__is_black_ = false;\n                __tree_left_rotate(__x);\n                break;\n            }\n        }\n    }\n}\n\n// Precondition:  __root != nullptr && __z != nullptr.\n//                __tree_invariant(__root) == true.\n//                __z == __root or == a direct or indirect child of __root.\n// Effects:  unlinks __z from the tree rooted at __root, rebalancing as needed.\n// Postcondition: __tree_invariant(end_node->__left_) == true && end_node->__left_\n//                nor any of its children refer to __z.  end_node->__left_\n//                may be different than the value passed in as __root.\ntemplate <class _NodePtr>\nvoid\n__tree_remove(_NodePtr __root, _NodePtr __z) _NOEXCEPT\n{\n    // __z will be removed from the tree.  Client still needs to destruct/deallocate it\n    // __y is either __z, or if __z has two children, __tree_next(__z).\n    // __y will have at most one child.\n    // __y will be the initial hole in the tree (make the hole at a leaf)\n    _NodePtr __y = (__z->__left_ == nullptr || __z->__right_ == nullptr) ?\n                    __z : __tree_next(__z);\n    // __x is __y's possibly null single child\n    _NodePtr __x = __y->__left_ != nullptr ? __y->__left_ : __y->__right_;\n    // __w is __x's possibly null uncle (will become __x's sibling)\n    _NodePtr __w = nullptr;\n    // link __x to __y's parent, and find __w\n    if (__x != nullptr)\n        __x->__parent_ = __y->__parent_;\n    if (__tree_is_left_child(__y))\n    {\n        __y->__parent_->__left_ = __x;\n        if (__y != __root)\n            __w = __y->__parent_unsafe()->__right_;\n        else\n            __root = __x;  // __w == nullptr\n    }\n    else\n    {\n        __y->__parent_unsafe()->__right_ = __x;\n        // __y can't be root if it is a right child\n        __w = __y->__parent_->__left_;\n    }\n    bool __removed_black = __y->__is_black_;\n    // If we didn't remove __z, do so now by splicing in __y for __z,\n    //    but copy __z's color.  This does not impact __x or __w.\n    if (__y != __z)\n    {\n        // __z->__left_ != nulptr but __z->__right_ might == __x == nullptr\n        __y->__parent_ = __z->__parent_;\n        if (__tree_is_left_child(__z))\n            __y->__parent_->__left_ = __y;\n        else\n            __y->__parent_unsafe()->__right_ = __y;\n        __y->__left_ = __z->__left_;\n        __y->__left_->__set_parent(__y);\n        __y->__right_ = __z->__right_;\n        if (__y->__right_ != nullptr)\n            __y->__right_->__set_parent(__y);\n        __y->__is_black_ = __z->__is_black_;\n        if (__root == __z)\n            __root = __y;\n    }\n    // There is no need to rebalance if we removed a red, or if we removed\n    //     the last node.\n    if (__removed_black && __root != nullptr)\n    {\n        // Rebalance:\n        // __x has an implicit black color (transferred from the removed __y)\n        //    associated with it, no matter what its color is.\n        // If __x is __root (in which case it can't be null), it is supposed\n        //    to be black anyway, and if it is doubly black, then the double\n        //    can just be ignored.\n        // If __x is red (in which case it can't be null), then it can absorb\n        //    the implicit black just by setting its color to black.\n        // Since __y was black and only had one child (which __x points to), __x\n        //   is either red with no children, else null, otherwise __y would have\n        //   different black heights under left and right pointers.\n        // if (__x == __root || __x != nullptr && !__x->__is_black_)\n        if (__x != nullptr)\n            __x->__is_black_ = true;\n        else\n        {\n            //  Else __x isn't root, and is \"doubly black\", even though it may\n            //     be null.  __w can not be null here, else the parent would\n            //     see a black height >= 2 on the __x side and a black height\n            //     of 1 on the __w side (__w must be a non-null black or a red\n            //     with a non-null black child).\n            while (true)\n            {\n                if (!__tree_is_left_child(__w))  // if x is left child\n                {\n                    if (!__w->__is_black_)\n                    {\n                        __w->__is_black_ = true;\n                        __w->__parent_unsafe()->__is_black_ = false;\n                        __tree_left_rotate(__w->__parent_unsafe());\n                        // __x is still valid\n                        // reset __root only if necessary\n                        if (__root == __w->__left_)\n                            __root = __w;\n                        // reset sibling, and it still can't be null\n                        __w = __w->__left_->__right_;\n                    }\n                    // __w->__is_black_ is now true, __w may have null children\n                    if ((__w->__left_  == nullptr || __w->__left_->__is_black_) &&\n                        (__w->__right_ == nullptr || __w->__right_->__is_black_))\n                    {\n                        __w->__is_black_ = false;\n                        __x = __w->__parent_unsafe();\n                        // __x can no longer be null\n                        if (__x == __root || !__x->__is_black_)\n                        {\n                            __x->__is_black_ = true;\n                            break;\n                        }\n                        // reset sibling, and it still can't be null\n                        __w = __tree_is_left_child(__x) ?\n                                    __x->__parent_unsafe()->__right_ :\n                                    __x->__parent_->__left_;\n                        // continue;\n                    }\n                    else  // __w has a red child\n                    {\n                        if (__w->__right_ == nullptr || __w->__right_->__is_black_)\n                        {\n                            // __w left child is non-null and red\n                            __w->__left_->__is_black_ = true;\n                            __w->__is_black_ = false;\n                            __tree_right_rotate(__w);\n                            // __w is known not to be root, so root hasn't changed\n                            // reset sibling, and it still can't be null\n                            __w = __w->__parent_unsafe();\n                        }\n                        // __w has a right red child, left child may be null\n                        __w->__is_black_ = __w->__parent_unsafe()->__is_black_;\n                        __w->__parent_unsafe()->__is_black_ = true;\n                        __w->__right_->__is_black_ = true;\n                        __tree_left_rotate(__w->__parent_unsafe());\n                        break;\n                    }\n                }\n                else\n                {\n                    if (!__w->__is_black_)\n                    {\n                        __w->__is_black_ = true;\n                        __w->__parent_unsafe()->__is_black_ = false;\n                        __tree_right_rotate(__w->__parent_unsafe());\n                        // __x is still valid\n                        // reset __root only if necessary\n                        if (__root == __w->__right_)\n                            __root = __w;\n                        // reset sibling, and it still can't be null\n                        __w = __w->__right_->__left_;\n                    }\n                    // __w->__is_black_ is now true, __w may have null children\n                    if ((__w->__left_  == nullptr || __w->__left_->__is_black_) &&\n                        (__w->__right_ == nullptr || __w->__right_->__is_black_))\n                    {\n                        __w->__is_black_ = false;\n                        __x = __w->__parent_unsafe();\n                        // __x can no longer be null\n                        if (!__x->__is_black_ || __x == __root)\n                        {\n                            __x->__is_black_ = true;\n                            break;\n                        }\n                        // reset sibling, and it still can't be null\n                        __w = __tree_is_left_child(__x) ?\n                                    __x->__parent_unsafe()->__right_ :\n                                    __x->__parent_->__left_;\n                        // continue;\n                    }\n                    else  // __w has a red child\n                    {\n                        if (__w->__left_ == nullptr || __w->__left_->__is_black_)\n                        {\n                            // __w right child is non-null and red\n                            __w->__right_->__is_black_ = true;\n                            __w->__is_black_ = false;\n                            __tree_left_rotate(__w);\n                            // __w is known not to be root, so root hasn't changed\n                            // reset sibling, and it still can't be null\n                            __w = __w->__parent_unsafe();\n                        }\n                        // __w has a left red child, right child may be null\n                        __w->__is_black_ = __w->__parent_unsafe()->__is_black_;\n                        __w->__parent_unsafe()->__is_black_ = true;\n                        __w->__left_->__is_black_ = true;\n                        __tree_right_rotate(__w->__parent_unsafe());\n                        break;\n                    }\n                }\n            }\n        }\n    }\n}\n\n// node traits\n\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp>\nstruct __is_tree_value_type_imp : false_type {};\n\ntemplate <class _Key, class _Value>\nstruct __is_tree_value_type_imp<__value_type<_Key, _Value>> : true_type {};\n\ntemplate <class ..._Args>\nstruct __is_tree_value_type : false_type {};\n\ntemplate <class _One>\nstruct __is_tree_value_type<_One> : __is_tree_value_type_imp<typename __uncvref<_One>::type> {};\n#endif\n\ntemplate <class _Tp>\nstruct __tree_key_value_types {\n  typedef _Tp key_type;\n  typedef _Tp __node_value_type;\n  typedef _Tp __container_value_type;\n  static const bool __is_map = false;\n\n  _LIBCPP_INLINE_VISIBILITY\n  static key_type const& __get_key(_Tp const& __v) {\n    return __v;\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  static __container_value_type const& __get_value(__node_value_type const& __v) {\n    return __v;\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  static __container_value_type* __get_ptr(__node_value_type& __n) {\n    return _VSTD::addressof(__n);\n  }\n\n#ifndef _LIBCPP_CXX03_LANG\n  _LIBCPP_INLINE_VISIBILITY\n  static  __container_value_type&& __move(__node_value_type& __v) {\n    return _VSTD::move(__v);\n  }\n#endif\n};\n\ntemplate <class _Key, class _Tp>\nstruct __tree_key_value_types<__value_type<_Key, _Tp> > {\n  typedef _Key                                         key_type;\n  typedef _Tp                                          mapped_type;\n  typedef __value_type<_Key, _Tp>                      __node_value_type;\n  typedef pair<const _Key, _Tp>                        __container_value_type;\n  typedef pair<_Key, _Tp>                              __nc_value_type;\n  typedef __container_value_type                       __map_value_type;\n  static const bool __is_map = true;\n\n  _LIBCPP_INLINE_VISIBILITY\n  static key_type const&\n  __get_key(__node_value_type const& __t) {\n    return __t.__cc.first;\n  }\n\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n  static typename enable_if<__is_same_uncvref<_Up, __container_value_type>::value,\n      key_type const&>::type\n  __get_key(_Up& __t) {\n    return __t.first;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  static __container_value_type const&\n  __get_value(__node_value_type const& __t) {\n    return __t.__cc;\n  }\n\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n  static typename enable_if<__is_same_uncvref<_Up, __container_value_type>::value,\n      __container_value_type const&>::type\n  __get_value(_Up& __t) {\n    return __t;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  static __container_value_type* __get_ptr(__node_value_type& __n) {\n    return _VSTD::addressof(__n.__cc);\n  }\n\n#ifndef _LIBCPP_CXX03_LANG\n  _LIBCPP_INLINE_VISIBILITY\n  static  __nc_value_type&& __move(__node_value_type& __v) {\n    return _VSTD::move(__v.__nc);\n  }\n#endif\n};\n\ntemplate <class _VoidPtr>\nstruct __tree_node_base_types {\n  typedef _VoidPtr                                               __void_pointer;\n\n  typedef __tree_node_base<__void_pointer>                      __node_base_type;\n  typedef typename __rebind_pointer<_VoidPtr, __node_base_type>::type\n                                                             __node_base_pointer;\n\n  typedef __tree_end_node<__node_base_pointer>                  __end_node_type;\n  typedef typename __rebind_pointer<_VoidPtr, __end_node_type>::type\n                                                             __end_node_pointer;\n#if defined(_LIBCPP_ABI_TREE_REMOVE_NODE_POINTER_UB)\n  typedef __end_node_pointer __parent_pointer;\n#else\n  typedef typename conditional<\n      is_pointer<__end_node_pointer>::value,\n        __end_node_pointer,\n        __node_base_pointer>::type __parent_pointer;\n#endif\n\nprivate:\n  static_assert((is_same<typename pointer_traits<_VoidPtr>::element_type, void>::value),\n                  \"_VoidPtr does not point to unqualified void type\");\n};\n\ntemplate <class _Tp, class _AllocPtr, class _KVTypes = __tree_key_value_types<_Tp>,\n         bool = _KVTypes::__is_map>\nstruct __tree_map_pointer_types {};\n\ntemplate <class _Tp, class _AllocPtr, class _KVTypes>\nstruct __tree_map_pointer_types<_Tp, _AllocPtr, _KVTypes, true> {\n  typedef typename _KVTypes::__map_value_type   _Mv;\n  typedef typename __rebind_pointer<_AllocPtr, _Mv>::type\n                                                       __map_value_type_pointer;\n  typedef typename __rebind_pointer<_AllocPtr, const _Mv>::type\n                                                 __const_map_value_type_pointer;\n};\n\ntemplate <class _NodePtr, class _NodeT = typename pointer_traits<_NodePtr>::element_type>\nstruct __tree_node_types;\n\ntemplate <class _NodePtr, class _Tp, class _VoidPtr>\nstruct __tree_node_types<_NodePtr, __tree_node<_Tp, _VoidPtr> >\n    : public __tree_node_base_types<_VoidPtr>,\n             __tree_key_value_types<_Tp>,\n             __tree_map_pointer_types<_Tp, _VoidPtr>\n{\n  typedef __tree_node_base_types<_VoidPtr> __base;\n  typedef __tree_key_value_types<_Tp>      __key_base;\n  typedef __tree_map_pointer_types<_Tp, _VoidPtr> __map_pointer_base;\npublic:\n\n  typedef typename pointer_traits<_NodePtr>::element_type       __node_type;\n  typedef _NodePtr                                              __node_pointer;\n\n  typedef _Tp                                                 __node_value_type;\n  typedef typename __rebind_pointer<_VoidPtr, __node_value_type>::type\n                                                      __node_value_type_pointer;\n  typedef typename __rebind_pointer<_VoidPtr, const __node_value_type>::type\n                                                __const_node_value_type_pointer;\n#if defined(_LIBCPP_ABI_TREE_REMOVE_NODE_POINTER_UB)\n  typedef typename __base::__end_node_pointer __iter_pointer;\n#else\n  typedef typename conditional<\n      is_pointer<__node_pointer>::value,\n        typename __base::__end_node_pointer,\n        __node_pointer>::type __iter_pointer;\n#endif\nprivate:\n    static_assert(!is_const<__node_type>::value,\n                \"_NodePtr should never be a pointer to const\");\n    static_assert((is_same<typename __rebind_pointer<_VoidPtr, __node_type>::type,\n                          _NodePtr>::value), \"_VoidPtr does not rebind to _NodePtr.\");\n};\n\ntemplate <class _ValueTp, class _VoidPtr>\nstruct __make_tree_node_types {\n  typedef typename __rebind_pointer<_VoidPtr, __tree_node<_ValueTp, _VoidPtr> >::type\n                                                                        _NodePtr;\n  typedef __tree_node_types<_NodePtr> type;\n};\n\n// node\n\ntemplate <class _Pointer>\nclass __tree_end_node\n{\npublic:\n    typedef _Pointer pointer;\n    pointer __left_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_end_node() _NOEXCEPT : __left_() {}\n};\n\ntemplate <class _VoidPtr>\nclass __tree_node_base\n    : public __tree_node_base_types<_VoidPtr>::__end_node_type\n{\n    typedef __tree_node_base_types<_VoidPtr> _NodeBaseTypes;\n\npublic:\n    typedef typename _NodeBaseTypes::__node_base_pointer pointer;\n    typedef typename _NodeBaseTypes::__parent_pointer __parent_pointer;\n\n    pointer          __right_;\n    __parent_pointer __parent_;\n    bool __is_black_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    pointer __parent_unsafe() const { return static_cast<pointer>(__parent_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_parent(pointer __p) {\n        __parent_ = static_cast<__parent_pointer>(__p);\n    }\n\nprivate:\n  ~__tree_node_base() _LIBCPP_EQUAL_DELETE;\n  __tree_node_base(__tree_node_base const&) _LIBCPP_EQUAL_DELETE;\n  __tree_node_base& operator=(__tree_node_base const&) _LIBCPP_EQUAL_DELETE;\n};\n\ntemplate <class _Tp, class _VoidPtr>\nclass __tree_node\n    : public __tree_node_base<_VoidPtr>\n{\npublic:\n    typedef _Tp __node_value_type;\n\n    __node_value_type __value_;\n\nprivate:\n  ~__tree_node() _LIBCPP_EQUAL_DELETE;\n  __tree_node(__tree_node const&) _LIBCPP_EQUAL_DELETE;\n  __tree_node& operator=(__tree_node const&) _LIBCPP_EQUAL_DELETE;\n};\n\n\ntemplate <class _Allocator>\nclass __tree_node_destructor\n{\n    typedef _Allocator                                      allocator_type;\n    typedef allocator_traits<allocator_type>                __alloc_traits;\n\npublic:\n    typedef typename __alloc_traits::pointer                pointer;\nprivate:\n    typedef __tree_node_types<pointer> _NodeTypes;\n    allocator_type& __na_;\n\n    __tree_node_destructor& operator=(const __tree_node_destructor&);\n\npublic:\n    bool __value_constructed;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __tree_node_destructor(allocator_type& __na, bool __val = false) _NOEXCEPT\n        : __na_(__na),\n          __value_constructed(__val)\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()(pointer __p) _NOEXCEPT\n    {\n        if (__value_constructed)\n            __alloc_traits::destroy(__na_, _NodeTypes::__get_ptr(__p->__value_));\n        if (__p)\n            __alloc_traits::deallocate(__na_, __p, 1);\n    }\n\n    template <class> friend class __map_node_destructor;\n};\n\n\ntemplate <class _Tp, class _NodePtr, class _DiffType>\nclass _LIBCPP_TEMPLATE_VIS __tree_iterator\n{\n    typedef __tree_node_types<_NodePtr>                     _NodeTypes;\n    typedef _NodePtr                                        __node_pointer;\n    typedef typename _NodeTypes::__node_base_pointer        __node_base_pointer;\n    typedef typename _NodeTypes::__end_node_pointer         __end_node_pointer;\n    typedef typename _NodeTypes::__iter_pointer             __iter_pointer;\n    typedef pointer_traits<__node_pointer> __pointer_traits;\n\n    __iter_pointer __ptr_;\n\npublic:\n    typedef bidirectional_iterator_tag                     iterator_category;\n    typedef _Tp                                            value_type;\n    typedef _DiffType                                      difference_type;\n    typedef value_type&                                    reference;\n    typedef typename _NodeTypes::__node_value_type_pointer pointer;\n\n    _LIBCPP_INLINE_VISIBILITY __tree_iterator() _NOEXCEPT\n#if _LIBCPP_STD_VER > 11\n    : __ptr_(nullptr)\n#endif\n    {}\n\n    _LIBCPP_INLINE_VISIBILITY reference operator*() const\n        {return __get_np()->__value_;}\n    _LIBCPP_INLINE_VISIBILITY pointer operator->() const\n        {return pointer_traits<pointer>::pointer_to(__get_np()->__value_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_iterator& operator++() {\n      __ptr_ = static_cast<__iter_pointer>(\n          __tree_next_iter<__end_node_pointer>(static_cast<__node_base_pointer>(__ptr_)));\n      return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_iterator operator++(int)\n        {__tree_iterator __t(*this); ++(*this); return __t;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_iterator& operator--() {\n      __ptr_ = static_cast<__iter_pointer>(__tree_prev_iter<__node_base_pointer>(\n          static_cast<__end_node_pointer>(__ptr_)));\n      return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_iterator operator--(int)\n        {__tree_iterator __t(*this); --(*this); return __t;}\n\n    friend _LIBCPP_INLINE_VISIBILITY \n        bool operator==(const __tree_iterator& __x, const __tree_iterator& __y)\n        {return __x.__ptr_ == __y.__ptr_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const __tree_iterator& __x, const __tree_iterator& __y)\n        {return !(__x == __y);}\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __tree_iterator(__node_pointer __p) _NOEXCEPT : __ptr_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __tree_iterator(__end_node_pointer __p) _NOEXCEPT : __ptr_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __node_pointer __get_np() const { return static_cast<__node_pointer>(__ptr_); }\n    template <class, class, class> friend class __tree;\n    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS __tree_const_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __map_iterator;\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;\n    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS set;\n    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS multiset;\n};\n\ntemplate <class _Tp, class _NodePtr, class _DiffType>\nclass _LIBCPP_TEMPLATE_VIS __tree_const_iterator\n{\n    typedef __tree_node_types<_NodePtr>                     _NodeTypes;\n    typedef typename _NodeTypes::__node_pointer             __node_pointer;\n    typedef typename _NodeTypes::__node_base_pointer        __node_base_pointer;\n    typedef typename _NodeTypes::__end_node_pointer         __end_node_pointer;\n    typedef typename _NodeTypes::__iter_pointer             __iter_pointer;\n    typedef pointer_traits<__node_pointer> __pointer_traits;\n\n    __iter_pointer __ptr_;\n\npublic:\n    typedef bidirectional_iterator_tag                           iterator_category;\n    typedef _Tp                                                  value_type;\n    typedef _DiffType                                            difference_type;\n    typedef const value_type&                                    reference;\n    typedef typename _NodeTypes::__const_node_value_type_pointer pointer;\n\n    _LIBCPP_INLINE_VISIBILITY __tree_const_iterator() _NOEXCEPT\n#if _LIBCPP_STD_VER > 11\n    : __ptr_(nullptr)\n#endif\n    {}\n\nprivate:\n    typedef __tree_iterator<value_type, __node_pointer, difference_type>\n                                                           __non_const_iterator;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_const_iterator(__non_const_iterator __p) _NOEXCEPT\n        : __ptr_(__p.__ptr_) {}\n\n    _LIBCPP_INLINE_VISIBILITY reference operator*() const\n        {return __get_np()->__value_;}\n    _LIBCPP_INLINE_VISIBILITY pointer operator->() const\n        {return pointer_traits<pointer>::pointer_to(__get_np()->__value_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_const_iterator& operator++() {\n      __ptr_ = static_cast<__iter_pointer>(\n          __tree_next_iter<__end_node_pointer>(static_cast<__node_base_pointer>(__ptr_)));\n      return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_const_iterator operator++(int)\n        {__tree_const_iterator __t(*this); ++(*this); return __t;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_const_iterator& operator--() {\n      __ptr_ = static_cast<__iter_pointer>(__tree_prev_iter<__node_base_pointer>(\n          static_cast<__end_node_pointer>(__ptr_)));\n      return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tree_const_iterator operator--(int)\n        {__tree_const_iterator __t(*this); --(*this); return __t;}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const __tree_const_iterator& __x, const __tree_const_iterator& __y)\n        {return __x.__ptr_ == __y.__ptr_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const __tree_const_iterator& __x, const __tree_const_iterator& __y)\n        {return !(__x == __y);}\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __tree_const_iterator(__node_pointer __p) _NOEXCEPT\n        : __ptr_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __tree_const_iterator(__end_node_pointer __p) _NOEXCEPT\n        : __ptr_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __node_pointer __get_np() const { return static_cast<__node_pointer>(__ptr_); }\n\n    template <class, class, class> friend class __tree;\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;\n    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS set;\n    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS multiset;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __map_const_iterator;\n\n};\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp, class _Compare, class _Allocator>\nstruct __diagnose_tree_helper {\n  static constexpr bool __trigger_diagnostics()\n      _LIBCPP_DIAGNOSE_WARNING(!__invokable<_Compare const&, _Tp const&, _Tp const&>::value,\n            \"the specified comparator type does not provide a const call operator\")\n  { return true; }\n};\n\ntemplate <class _Key, class _Value, class _KeyComp, class _Alloc>\nstruct __diagnose_tree_helper<\n    __value_type<_Key, _Value>,\n    __map_value_compare<_Key, __value_type<_Key, _Value>, _KeyComp>,\n    _Alloc\n> : __diagnose_tree_helper<_Key, _KeyComp, _Alloc>\n{\n};\n#endif // !_LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Compare, class _Allocator>\nclass __tree\n{\npublic:\n    typedef _Tp                                      value_type;\n    typedef _Compare                                 value_compare;\n    typedef _Allocator                               allocator_type;\n\nprivate:\n    typedef allocator_traits<allocator_type>         __alloc_traits;\n    typedef typename __make_tree_node_types<value_type,\n        typename __alloc_traits::void_pointer>::type\n                                                    _NodeTypes;\n    typedef typename _NodeTypes::key_type           key_type;\npublic:\n    typedef typename _NodeTypes::__node_value_type      __node_value_type;\n    typedef typename _NodeTypes::__container_value_type __container_value_type;\n\n    typedef typename __alloc_traits::pointer         pointer;\n    typedef typename __alloc_traits::const_pointer   const_pointer;\n    typedef typename __alloc_traits::size_type       size_type;\n    typedef typename __alloc_traits::difference_type difference_type;\n\npublic:\n    typedef typename _NodeTypes::__void_pointer        __void_pointer;\n\n    typedef typename _NodeTypes::__node_type           __node;\n    typedef typename _NodeTypes::__node_pointer        __node_pointer;\n\n    typedef typename _NodeTypes::__node_base_type      __node_base;\n    typedef typename _NodeTypes::__node_base_pointer   __node_base_pointer;\n\n    typedef typename _NodeTypes::__end_node_type       __end_node_t;\n    typedef typename _NodeTypes::__end_node_pointer    __end_node_ptr;\n\n    typedef typename _NodeTypes::__parent_pointer      __parent_pointer;\n    typedef typename _NodeTypes::__iter_pointer        __iter_pointer;\n\n    typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator;\n    typedef allocator_traits<__node_allocator>         __node_traits;\n\nprivate:\n    // check for sane allocator pointer rebinding semantics. Rebinding the\n    // allocator for a new pointer type should be exactly the same as rebinding\n    // the pointer using 'pointer_traits'.\n    static_assert((is_same<__node_pointer, typename __node_traits::pointer>::value),\n                  \"Allocator does not rebind pointers in a sane manner.\");\n    typedef typename __rebind_alloc_helper<__node_traits, __node_base>::type\n        __node_base_allocator;\n    typedef allocator_traits<__node_base_allocator> __node_base_traits;\n    static_assert((is_same<__node_base_pointer, typename __node_base_traits::pointer>::value),\n                 \"Allocator does not rebind pointers in a sane manner.\");\n\nprivate:\n    __iter_pointer                                     __begin_node_;\n    __compressed_pair<__end_node_t, __node_allocator>  __pair1_;\n    __compressed_pair<size_type, value_compare>        __pair3_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __iter_pointer __end_node() _NOEXCEPT\n    {\n        return static_cast<__iter_pointer>(\n                pointer_traits<__end_node_ptr>::pointer_to(__pair1_.first())\n        );\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __iter_pointer __end_node() const _NOEXCEPT\n    {\n        return static_cast<__iter_pointer>(\n            pointer_traits<__end_node_ptr>::pointer_to(\n                const_cast<__end_node_t&>(__pair1_.first())\n            )\n        );\n    }\n    _LIBCPP_INLINE_VISIBILITY\n          __node_allocator& __node_alloc() _NOEXCEPT {return __pair1_.second();}\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    const __node_allocator& __node_alloc() const _NOEXCEPT\n        {return __pair1_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n          __iter_pointer& __begin_node() _NOEXCEPT {return __begin_node_;}\n    _LIBCPP_INLINE_VISIBILITY\n    const __iter_pointer& __begin_node() const _NOEXCEPT {return __begin_node_;}\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type __alloc() const _NOEXCEPT\n        {return allocator_type(__node_alloc());}\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n          size_type& size() _NOEXCEPT {return __pair3_.first();}\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    const size_type& size() const _NOEXCEPT {return __pair3_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n          value_compare& value_comp() _NOEXCEPT {return __pair3_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const value_compare& value_comp() const _NOEXCEPT\n        {return __pair3_.second();}\npublic:\n\n    _LIBCPP_INLINE_VISIBILITY\n    __node_pointer __root() const _NOEXCEPT\n        {return static_cast<__node_pointer>(__end_node()->__left_);}\n\n    __node_base_pointer* __root_ptr() const _NOEXCEPT {\n        return _VSTD::addressof(__end_node()->__left_);\n    }\n\n    typedef __tree_iterator<value_type, __node_pointer, difference_type>             iterator;\n    typedef __tree_const_iterator<value_type, __node_pointer, difference_type> const_iterator;\n\n    explicit __tree(const value_compare& __comp)\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<__node_allocator>::value &&\n            is_nothrow_copy_constructible<value_compare>::value);\n    explicit __tree(const allocator_type& __a);\n    __tree(const value_compare& __comp, const allocator_type& __a);\n    __tree(const __tree& __t);\n    __tree& operator=(const __tree& __t);\n    template <class _InputIterator>\n        void __assign_unique(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        void __assign_multi(_InputIterator __first, _InputIterator __last);\n#ifndef _LIBCPP_CXX03_LANG\n    __tree(__tree&& __t)\n        _NOEXCEPT_(\n            is_nothrow_move_constructible<__node_allocator>::value &&\n            is_nothrow_move_constructible<value_compare>::value);\n    __tree(__tree&& __t, const allocator_type& __a);\n    __tree& operator=(__tree&& __t)\n        _NOEXCEPT_(\n            __node_traits::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<value_compare>::value &&\n            is_nothrow_move_assignable<__node_allocator>::value);\n#endif // _LIBCPP_CXX03_LANG\n\n    ~__tree();\n\n    _LIBCPP_INLINE_VISIBILITY\n          iterator begin()  _NOEXCEPT {return       iterator(__begin_node());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT {return const_iterator(__begin_node());}\n    _LIBCPP_INLINE_VISIBILITY\n          iterator end() _NOEXCEPT {return       iterator(__end_node());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const _NOEXCEPT {return const_iterator(__end_node());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT\n        {return std::min<size_type>(\n                __node_traits::max_size(__node_alloc()),\n                numeric_limits<difference_type >::max());}\n\n    void clear() _NOEXCEPT;\n\n    void swap(__tree& __t)\n#if _LIBCPP_STD_VER <= 11\n        _NOEXCEPT_(\n            __is_nothrow_swappable<value_compare>::value\n            && (!__node_traits::propagate_on_container_swap::value ||\n                 __is_nothrow_swappable<__node_allocator>::value)\n            );\n#else\n        _NOEXCEPT_(__is_nothrow_swappable<value_compare>::value);\n#endif\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Key, class ..._Args>\n    pair<iterator, bool>\n    __emplace_unique_key_args(_Key const&, _Args&&... __args);\n    template <class _Key, class ..._Args>\n    iterator\n    __emplace_hint_unique_key_args(const_iterator, _Key const&, _Args&&...);\n\n    template <class... _Args>\n    pair<iterator, bool> __emplace_unique_impl(_Args&&... __args);\n\n    template <class... _Args>\n    iterator __emplace_hint_unique_impl(const_iterator __p, _Args&&... __args);\n\n    template <class... _Args>\n    iterator __emplace_multi(_Args&&... __args);\n\n    template <class... _Args>\n    iterator __emplace_hint_multi(const_iterator __p, _Args&&... __args);\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __emplace_unique(_Pp&& __x) {\n        return __emplace_unique_extract_key(_VSTD::forward<_Pp>(__x),\n                                            __can_extract_key<_Pp, key_type>());\n    }\n\n    template <class _First, class _Second>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<\n        __can_extract_map_key<_First, key_type, __container_value_type>::value,\n        pair<iterator, bool>\n    >::type __emplace_unique(_First&& __f, _Second&& __s) {\n        return __emplace_unique_key_args(__f, _VSTD::forward<_First>(__f),\n                                              _VSTD::forward<_Second>(__s));\n    }\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __emplace_unique(_Args&&... __args) {\n        return __emplace_unique_impl(_VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n    __emplace_unique_extract_key(_Pp&& __x, __extract_key_fail_tag) {\n      return __emplace_unique_impl(_VSTD::forward<_Pp>(__x));\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n    __emplace_unique_extract_key(_Pp&& __x, __extract_key_self_tag) {\n      return __emplace_unique_key_args(__x, _VSTD::forward<_Pp>(__x));\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n    __emplace_unique_extract_key(_Pp&& __x, __extract_key_first_tag) {\n      return __emplace_unique_key_args(__x.first, _VSTD::forward<_Pp>(__x));\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __emplace_hint_unique(const_iterator __p, _Pp&& __x) {\n        return __emplace_hint_unique_extract_key(__p, _VSTD::forward<_Pp>(__x),\n                                            __can_extract_key<_Pp, key_type>());\n    }\n\n    template <class _First, class _Second>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<\n        __can_extract_map_key<_First, key_type, __container_value_type>::value,\n        iterator\n    >::type __emplace_hint_unique(const_iterator __p, _First&& __f, _Second&& __s) {\n        return __emplace_hint_unique_key_args(__p, __f,\n                                              _VSTD::forward<_First>(__f),\n                                              _VSTD::forward<_Second>(__s));\n    }\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __emplace_hint_unique(const_iterator __p, _Args&&... __args) {\n        return __emplace_hint_unique_impl(__p, _VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator\n    __emplace_hint_unique_extract_key(const_iterator __p, _Pp&& __x, __extract_key_fail_tag) {\n      return __emplace_hint_unique_impl(__p, _VSTD::forward<_Pp>(__x));\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator\n    __emplace_hint_unique_extract_key(const_iterator __p, _Pp&& __x, __extract_key_self_tag) {\n      return __emplace_hint_unique_key_args(__p, __x, _VSTD::forward<_Pp>(__x));\n    }\n\n    template <class _Pp>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator\n    __emplace_hint_unique_extract_key(const_iterator __p, _Pp&& __x, __extract_key_first_tag) {\n      return __emplace_hint_unique_key_args(__p, __x.first, _VSTD::forward<_Pp>(__x));\n    }\n\n#else\n    template <class _Key, class _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __emplace_unique_key_args(_Key const&, _Args& __args);\n    template <class _Key, class _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __emplace_hint_unique_key_args(const_iterator, _Key const&, _Args&);\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __insert_unique(const __container_value_type& __v) {\n        return __emplace_unique_key_args(_NodeTypes::__get_key(__v), __v);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_unique(const_iterator __p, const __container_value_type& __v) {\n        return __emplace_hint_unique_key_args(__p, _NodeTypes::__get_key(__v), __v);\n    }\n\n#ifdef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_multi(const __container_value_type& __v);\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_multi(const_iterator __p, const __container_value_type& __v);\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __insert_unique(__container_value_type&& __v) {\n        return __emplace_unique_key_args(_NodeTypes::__get_key(__v), _VSTD::move(__v));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_unique(const_iterator __p, __container_value_type&& __v) {\n        return __emplace_hint_unique_key_args(__p, _NodeTypes::__get_key(__v), _VSTD::move(__v));\n    }\n\n    template <class _Vp, class = typename enable_if<\n            !is_same<typename __unconstref<_Vp>::type,\n                     __container_value_type\n            >::value\n        >::type>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> __insert_unique(_Vp&& __v) {\n        return __emplace_unique(_VSTD::forward<_Vp>(__v));\n    }\n\n    template <class _Vp, class = typename enable_if<\n            !is_same<typename __unconstref<_Vp>::type,\n                     __container_value_type\n            >::value\n        >::type>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_unique(const_iterator __p, _Vp&& __v) {\n        return __emplace_hint_unique(__p, _VSTD::forward<_Vp>(__v));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_multi(__container_value_type&& __v) {\n        return __emplace_multi(_VSTD::move(__v));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_multi(const_iterator __p, __container_value_type&& __v) {\n        return __emplace_hint_multi(__p, _VSTD::move(__v));\n    }\n\n    template <class _Vp>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_multi(_Vp&& __v) {\n        return __emplace_multi(_VSTD::forward<_Vp>(__v));\n    }\n\n    template <class _Vp>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __insert_multi(const_iterator __p, _Vp&& __v) {\n        return __emplace_hint_multi(__p, _VSTD::forward<_Vp>(__v));\n    }\n\n#endif // !_LIBCPP_CXX03_LANG\n\n    pair<iterator, bool> __node_insert_unique(__node_pointer __nd);\n    iterator             __node_insert_unique(const_iterator __p,\n                                              __node_pointer __nd);\n\n    iterator __node_insert_multi(__node_pointer __nd);\n    iterator __node_insert_multi(const_iterator __p, __node_pointer __nd);\n\n    iterator erase(const_iterator __p);\n    iterator erase(const_iterator __f, const_iterator __l);\n    template <class _Key>\n        size_type __erase_unique(const _Key& __k);\n    template <class _Key>\n        size_type __erase_multi(const _Key& __k);\n\n    void __insert_node_at(__parent_pointer     __parent,\n                          __node_base_pointer& __child,\n                          __node_base_pointer __new_node);\n\n    template <class _Key>\n        iterator find(const _Key& __v);\n    template <class _Key>\n        const_iterator find(const _Key& __v) const;\n\n    template <class _Key>\n        size_type __count_unique(const _Key& __k) const;\n    template <class _Key>\n        size_type __count_multi(const _Key& __k) const;\n\n    template <class _Key>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator lower_bound(const _Key& __v)\n            {return __lower_bound(__v, __root(), __end_node());}\n    template <class _Key>\n        iterator __lower_bound(const _Key& __v,\n                               __node_pointer __root,\n                               __iter_pointer __result);\n    template <class _Key>\n        _LIBCPP_INLINE_VISIBILITY\n        const_iterator lower_bound(const _Key& __v) const\n            {return __lower_bound(__v, __root(), __end_node());}\n    template <class _Key>\n        const_iterator __lower_bound(const _Key& __v,\n                                     __node_pointer __root,\n                                     __iter_pointer __result) const;\n    template <class _Key>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator upper_bound(const _Key& __v)\n            {return __upper_bound(__v, __root(), __end_node());}\n    template <class _Key>\n        iterator __upper_bound(const _Key& __v,\n                               __node_pointer __root,\n                               __iter_pointer __result);\n    template <class _Key>\n        _LIBCPP_INLINE_VISIBILITY\n        const_iterator upper_bound(const _Key& __v) const\n            {return __upper_bound(__v, __root(), __end_node());}\n    template <class _Key>\n        const_iterator __upper_bound(const _Key& __v,\n                                     __node_pointer __root,\n                                     __iter_pointer __result) const;\n    template <class _Key>\n        pair<iterator, iterator>\n        __equal_range_unique(const _Key& __k);\n    template <class _Key>\n        pair<const_iterator, const_iterator>\n        __equal_range_unique(const _Key& __k) const;\n\n    template <class _Key>\n        pair<iterator, iterator>\n        __equal_range_multi(const _Key& __k);\n    template <class _Key>\n        pair<const_iterator, const_iterator>\n        __equal_range_multi(const _Key& __k) const;\n\n    typedef __tree_node_destructor<__node_allocator> _Dp;\n    typedef unique_ptr<__node, _Dp> __node_holder;\n\n    __node_holder remove(const_iterator __p) _NOEXCEPT;\nprivate:\n    __node_base_pointer&\n        __find_leaf_low(__parent_pointer& __parent, const key_type& __v);\n    __node_base_pointer&\n        __find_leaf_high(__parent_pointer& __parent, const key_type& __v);\n    __node_base_pointer&\n        __find_leaf(const_iterator __hint,\n                    __parent_pointer& __parent, const key_type& __v);\n    // FIXME: Make this function const qualified. Unfortunetly doing so\n    // breaks existing code which uses non-const callable comparators.\n    template <class _Key>\n    __node_base_pointer&\n        __find_equal(__parent_pointer& __parent, const _Key& __v);\n    template <class _Key>\n    _LIBCPP_INLINE_VISIBILITY __node_base_pointer&\n    __find_equal(__parent_pointer& __parent, const _Key& __v) const {\n      return const_cast<__tree*>(this)->__find_equal(__parent, __v);\n    }\n    template <class _Key>\n    __node_base_pointer&\n        __find_equal(const_iterator __hint, __parent_pointer& __parent,\n                     __node_base_pointer& __dummy,\n                     const _Key& __v);\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class ..._Args>\n    __node_holder __construct_node(_Args&& ...__args);\n#else\n    __node_holder __construct_node(const __container_value_type& __v);\n#endif\n\n    void destroy(__node_pointer __nd) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __tree& __t)\n        {__copy_assign_alloc(__t, integral_constant<bool,\n             __node_traits::propagate_on_container_copy_assignment::value>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __tree& __t, true_type)\n        {\n        if (__node_alloc() != __t.__node_alloc())\n        \tclear();\n        __node_alloc() = __t.__node_alloc();\n        }\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __tree&, false_type) {}\n\n    void __move_assign(__tree& __t, false_type);\n    void __move_assign(__tree& __t, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<value_compare>::value &&\n                   is_nothrow_move_assignable<__node_allocator>::value);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__tree& __t)\n        _NOEXCEPT_(\n            !__node_traits::propagate_on_container_move_assignment::value ||\n            is_nothrow_move_assignable<__node_allocator>::value)\n        {__move_assign_alloc(__t, integral_constant<bool,\n             __node_traits::propagate_on_container_move_assignment::value>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__tree& __t, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value)\n        {__node_alloc() = _VSTD::move(__t.__node_alloc());}\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__tree&, false_type) _NOEXCEPT {}\n\n    __node_pointer __detach();\n    static __node_pointer __detach(__node_pointer);\n\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;\n};\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp)\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<__node_allocator>::value &&\n            is_nothrow_copy_constructible<value_compare>::value)\n    : __pair3_(0, __comp)\n{\n    __begin_node() = __end_node();\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>::__tree(const allocator_type& __a)\n    : __begin_node_(__iter_pointer()),\n      __pair1_(__second_tag(), __node_allocator(__a)),\n      __pair3_(0)\n{\n    __begin_node() = __end_node();\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>::__tree(const value_compare& __comp,\n                                           const allocator_type& __a)\n    : __begin_node_(__iter_pointer()),\n      __pair1_(__second_tag(), __node_allocator(__a)),\n      __pair3_(0, __comp)\n{\n    __begin_node() = __end_node();\n}\n\n// Precondition:  size() != 0\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_pointer\n__tree<_Tp, _Compare, _Allocator>::__detach()\n{\n    __node_pointer __cache = static_cast<__node_pointer>(__begin_node());\n    __begin_node() = __end_node();\n    __end_node()->__left_->__parent_ = nullptr;\n    __end_node()->__left_ = nullptr;\n    size() = 0;\n    // __cache->__left_ == nullptr\n    if (__cache->__right_ != nullptr)\n        __cache = static_cast<__node_pointer>(__cache->__right_);\n    // __cache->__left_ == nullptr\n    // __cache->__right_ == nullptr\n    return __cache;\n}\n\n// Precondition:  __cache != nullptr\n//    __cache->left_ == nullptr\n//    __cache->right_ == nullptr\n//    This is no longer a red-black tree\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_pointer\n__tree<_Tp, _Compare, _Allocator>::__detach(__node_pointer __cache)\n{\n    if (__cache->__parent_ == nullptr)\n        return nullptr;\n    if (__tree_is_left_child(static_cast<__node_base_pointer>(__cache)))\n    {\n        __cache->__parent_->__left_ = nullptr;\n        __cache = static_cast<__node_pointer>(__cache->__parent_);\n        if (__cache->__right_ == nullptr)\n            return __cache;\n        return static_cast<__node_pointer>(__tree_leaf(__cache->__right_));\n    }\n    // __cache is right child\n    __cache->__parent_unsafe()->__right_ = nullptr;\n    __cache = static_cast<__node_pointer>(__cache->__parent_);\n    if (__cache->__left_ == nullptr)\n        return __cache;\n    return static_cast<__node_pointer>(__tree_leaf(__cache->__left_));\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>&\n__tree<_Tp, _Compare, _Allocator>::operator=(const __tree& __t)\n{\n    if (this != &__t)\n    {\n        value_comp() = __t.value_comp();\n        __copy_assign_alloc(__t);\n        __assign_multi(__t.begin(), __t.end());\n    }\n    return *this;\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _InputIterator>\nvoid\n__tree<_Tp, _Compare, _Allocator>::__assign_unique(_InputIterator __first, _InputIterator __last)\n{\n    typedef iterator_traits<_InputIterator> _ITraits;\n    typedef typename _ITraits::value_type _ItValueType;\n    static_assert((is_same<_ItValueType, __container_value_type>::value),\n                  \"__assign_unique may only be called with the containers value type\");\n\n    if (size() != 0)\n    {\n        __node_pointer __cache = __detach();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (; __cache != nullptr && __first != __last; ++__first)\n            {\n                __cache->__value_ = *__first;\n                __node_pointer __next = __detach(__cache);\n                __node_insert_unique(__cache);\n                __cache = __next;\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            while (__cache->__parent_ != nullptr)\n                __cache = static_cast<__node_pointer>(__cache->__parent_);\n            destroy(__cache);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        if (__cache != nullptr)\n        {\n            while (__cache->__parent_ != nullptr)\n                __cache = static_cast<__node_pointer>(__cache->__parent_);\n            destroy(__cache);\n        }\n    }\n    for (; __first != __last; ++__first)\n        __insert_unique(*__first);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _InputIterator>\nvoid\n__tree<_Tp, _Compare, _Allocator>::__assign_multi(_InputIterator __first, _InputIterator __last)\n{\n    typedef iterator_traits<_InputIterator> _ITraits;\n    typedef typename _ITraits::value_type _ItValueType;\n    static_assert((is_same<_ItValueType, __container_value_type>::value ||\n                  is_same<_ItValueType, __node_value_type>::value),\n                  \"__assign_multi may only be called with the containers value type\"\n                  \" or the nodes value type\");\n    if (size() != 0)\n    {\n        __node_pointer __cache = __detach();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (; __cache != nullptr && __first != __last; ++__first)\n            {\n                __cache->__value_ = *__first;\n                __node_pointer __next = __detach(__cache);\n                __node_insert_multi(__cache);\n                __cache = __next;\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            while (__cache->__parent_ != nullptr)\n                __cache = static_cast<__node_pointer>(__cache->__parent_);\n            destroy(__cache);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        if (__cache != nullptr)\n        {\n            while (__cache->__parent_ != nullptr)\n                __cache = static_cast<__node_pointer>(__cache->__parent_);\n            destroy(__cache);\n        }\n    }\n    for (; __first != __last; ++__first)\n        __insert_multi(_NodeTypes::__get_value(*__first));\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>::__tree(const __tree& __t)\n    : __begin_node_(__iter_pointer()),\n      __pair1_(__second_tag(), __node_traits::select_on_container_copy_construction(__t.__node_alloc())),\n      __pair3_(0, __t.value_comp())\n{\n    __begin_node() = __end_node();\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t)\n    _NOEXCEPT_(\n        is_nothrow_move_constructible<__node_allocator>::value &&\n        is_nothrow_move_constructible<value_compare>::value)\n    : __begin_node_(_VSTD::move(__t.__begin_node_)),\n      __pair1_(_VSTD::move(__t.__pair1_)),\n      __pair3_(_VSTD::move(__t.__pair3_))\n{\n    if (size() == 0)\n        __begin_node() = __end_node();\n    else\n    {\n        __end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__end_node());\n        __t.__begin_node() = __t.__end_node();\n        __t.__end_node()->__left_ = nullptr;\n        __t.size() = 0;\n    }\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>::__tree(__tree&& __t, const allocator_type& __a)\n    : __pair1_(__second_tag(), __node_allocator(__a)),\n      __pair3_(0, _VSTD::move(__t.value_comp()))\n{\n    if (__a == __t.__alloc())\n    {\n        if (__t.size() == 0)\n            __begin_node() = __end_node();\n        else\n        {\n            __begin_node() = __t.__begin_node();\n            __end_node()->__left_ = __t.__end_node()->__left_;\n            __end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__end_node());\n            size() = __t.size();\n            __t.__begin_node() = __t.__end_node();\n            __t.__end_node()->__left_ = nullptr;\n            __t.size() = 0;\n        }\n    }\n    else\n    {\n        __begin_node() = __end_node();\n    }\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\nvoid\n__tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, true_type)\n    _NOEXCEPT_(is_nothrow_move_assignable<value_compare>::value &&\n               is_nothrow_move_assignable<__node_allocator>::value)\n{\n    destroy(static_cast<__node_pointer>(__end_node()->__left_));\n    __begin_node_ = __t.__begin_node_;\n    __pair1_.first() = __t.__pair1_.first();\n    __move_assign_alloc(__t);\n    __pair3_ = _VSTD::move(__t.__pair3_);\n    if (size() == 0)\n        __begin_node() = __end_node();\n    else\n    {\n        __end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__end_node());\n        __t.__begin_node() = __t.__end_node();\n        __t.__end_node()->__left_ = nullptr;\n        __t.size() = 0;\n    }\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\nvoid\n__tree<_Tp, _Compare, _Allocator>::__move_assign(__tree& __t, false_type)\n{\n    if (__node_alloc() == __t.__node_alloc())\n        __move_assign(__t, true_type());\n    else\n    {\n        value_comp() = _VSTD::move(__t.value_comp());\n        const_iterator __e = end();\n        if (size() != 0)\n        {\n            __node_pointer __cache = __detach();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n            try\n            {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n                while (__cache != nullptr && __t.size() != 0)\n                {\n                    __cache->__value_ = _VSTD::move(__t.remove(__t.begin())->__value_);\n                    __node_pointer __next = __detach(__cache);\n                    __node_insert_multi(__cache);\n                    __cache = __next;\n                }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n            }\n            catch (...)\n            {\n                while (__cache->__parent_ != nullptr)\n                    __cache = static_cast<__node_pointer>(__cache->__parent_);\n                destroy(__cache);\n                throw;\n            }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            if (__cache != nullptr)\n            {\n                while (__cache->__parent_ != nullptr)\n                    __cache = static_cast<__node_pointer>(__cache->__parent_);\n                destroy(__cache);\n            }\n        }\n        while (__t.size() != 0)\n            __insert_multi(__e, _NodeTypes::__move(__t.remove(__t.begin())->__value_));\n    }\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>&\n__tree<_Tp, _Compare, _Allocator>::operator=(__tree&& __t)\n    _NOEXCEPT_(\n        __node_traits::propagate_on_container_move_assignment::value &&\n        is_nothrow_move_assignable<value_compare>::value &&\n        is_nothrow_move_assignable<__node_allocator>::value)\n        \n{\n    __move_assign(__t, integral_constant<bool,\n                  __node_traits::propagate_on_container_move_assignment::value>());\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Compare, class _Allocator>\n__tree<_Tp, _Compare, _Allocator>::~__tree()\n{\n    static_assert((is_copy_constructible<value_compare>::value),\n                 \"Comparator must be copy-constructible.\");\n#ifndef _LIBCPP_CXX03_LANG\n    static_assert((__diagnose_tree_helper<_Tp, _Compare, _Allocator>::\n                     __trigger_diagnostics()), \"\");\n#endif\n  destroy(__root());\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\nvoid\n__tree<_Tp, _Compare, _Allocator>::destroy(__node_pointer __nd) _NOEXCEPT\n{\n    if (__nd != nullptr)\n    {\n        destroy(static_cast<__node_pointer>(__nd->__left_));\n        destroy(static_cast<__node_pointer>(__nd->__right_));\n        __node_allocator& __na = __node_alloc();\n        __node_traits::destroy(__na, _NodeTypes::__get_ptr(__nd->__value_));\n        __node_traits::deallocate(__na, __nd, 1);\n    }\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\nvoid\n__tree<_Tp, _Compare, _Allocator>::swap(__tree& __t)\n#if _LIBCPP_STD_VER <= 11\n        _NOEXCEPT_(\n            __is_nothrow_swappable<value_compare>::value\n            && (!__node_traits::propagate_on_container_swap::value ||\n                 __is_nothrow_swappable<__node_allocator>::value)\n            )\n#else\n        _NOEXCEPT_(__is_nothrow_swappable<value_compare>::value)\n#endif\n{\n    using _VSTD::swap;\n    swap(__begin_node_, __t.__begin_node_);\n    swap(__pair1_.first(), __t.__pair1_.first());\n    __swap_allocator(__node_alloc(), __t.__node_alloc());\n    __pair3_.swap(__t.__pair3_);\n    if (size() == 0)\n        __begin_node() = __end_node();\n    else\n        __end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__end_node());\n    if (__t.size() == 0)\n        __t.__begin_node() = __t.__end_node();\n    else\n        __t.__end_node()->__left_->__parent_ = static_cast<__parent_pointer>(__t.__end_node());\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\nvoid\n__tree<_Tp, _Compare, _Allocator>::clear() _NOEXCEPT\n{\n    destroy(__root());\n    size() = 0;\n    __begin_node() = __end_node();\n    __end_node()->__left_ = nullptr;\n}\n\n// Find lower_bound place to insert\n// Set __parent to parent of null leaf\n// Return reference to null leaf\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer&\n__tree<_Tp, _Compare, _Allocator>::__find_leaf_low(__parent_pointer& __parent,\n                                                   const key_type& __v)\n{\n    __node_pointer __nd = __root();\n    if (__nd != nullptr)\n    {\n        while (true)\n        {\n            if (value_comp()(__nd->__value_, __v))\n            {\n                if (__nd->__right_ != nullptr)\n                    __nd = static_cast<__node_pointer>(__nd->__right_);\n                else\n                {\n                    __parent = static_cast<__parent_pointer>(__nd);\n                    return __nd->__right_;\n                }\n            }\n            else\n            {\n                if (__nd->__left_ != nullptr)\n                    __nd = static_cast<__node_pointer>(__nd->__left_);\n                else\n                {\n                    __parent = static_cast<__parent_pointer>(__nd);\n                    return __parent->__left_;\n                }\n            }\n        }\n    }\n    __parent = static_cast<__parent_pointer>(__end_node());\n    return __parent->__left_;\n}\n\n// Find upper_bound place to insert\n// Set __parent to parent of null leaf\n// Return reference to null leaf\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer&\n__tree<_Tp, _Compare, _Allocator>::__find_leaf_high(__parent_pointer& __parent,\n                                                    const key_type& __v)\n{\n    __node_pointer __nd = __root();\n    if (__nd != nullptr)\n    {\n        while (true)\n        {\n            if (value_comp()(__v, __nd->__value_))\n            {\n                if (__nd->__left_ != nullptr)\n                    __nd = static_cast<__node_pointer>(__nd->__left_);\n                else\n                {\n                    __parent = static_cast<__parent_pointer>(__nd);\n                    return __parent->__left_;\n                }\n            }\n            else\n            {\n                if (__nd->__right_ != nullptr)\n                    __nd = static_cast<__node_pointer>(__nd->__right_);\n                else\n                {\n                    __parent = static_cast<__parent_pointer>(__nd);\n                    return __nd->__right_;\n                }\n            }\n        }\n    }\n    __parent = static_cast<__parent_pointer>(__end_node());\n    return __parent->__left_;\n}\n\n// Find leaf place to insert closest to __hint\n// First check prior to __hint.\n// Next check after __hint.\n// Next do O(log N) search.\n// Set __parent to parent of null leaf\n// Return reference to null leaf\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer&\n__tree<_Tp, _Compare, _Allocator>::__find_leaf(const_iterator __hint,\n                                               __parent_pointer& __parent,\n                                               const key_type& __v)\n{\n    if (__hint == end() || !value_comp()(*__hint, __v))  // check before\n    {\n        // __v <= *__hint\n        const_iterator __prior = __hint;\n        if (__prior == begin() || !value_comp()(__v, *--__prior))\n        {\n            // *prev(__hint) <= __v <= *__hint\n            if (__hint.__ptr_->__left_ == nullptr)\n            {\n                __parent = static_cast<__parent_pointer>(__hint.__ptr_);\n                return __parent->__left_;\n            }\n            else\n            {\n                __parent = static_cast<__parent_pointer>(__prior.__ptr_);\n                return static_cast<__node_base_pointer>(__prior.__ptr_)->__right_;\n            }\n        }\n        // __v < *prev(__hint)\n        return __find_leaf_high(__parent, __v);\n    }\n    // else __v > *__hint\n    return __find_leaf_low(__parent, __v);\n}\n\n// Find place to insert if __v doesn't exist\n// Set __parent to parent of null leaf\n// Return reference to null leaf\n// If __v exists, set parent to node of __v and return reference to node of __v\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer&\n__tree<_Tp, _Compare, _Allocator>::__find_equal(__parent_pointer& __parent,\n                                                const _Key& __v)\n{\n    __node_pointer __nd = __root();\n    __node_base_pointer* __nd_ptr = __root_ptr();\n    if (__nd != nullptr)\n    {\n        while (true)\n        {\n            if (value_comp()(__v, __nd->__value_))\n            {\n                if (__nd->__left_ != nullptr) {\n                    __nd_ptr = _VSTD::addressof(__nd->__left_);\n                    __nd = static_cast<__node_pointer>(__nd->__left_);\n                } else {\n                    __parent = static_cast<__parent_pointer>(__nd);\n                    return __parent->__left_;\n                }\n            }\n            else if (value_comp()(__nd->__value_, __v))\n            {\n                if (__nd->__right_ != nullptr) {\n                    __nd_ptr = _VSTD::addressof(__nd->__right_);\n                    __nd = static_cast<__node_pointer>(__nd->__right_);\n                } else {\n                    __parent = static_cast<__parent_pointer>(__nd);\n                    return __nd->__right_;\n                }\n            }\n            else\n            {\n                __parent = static_cast<__parent_pointer>(__nd);\n                return *__nd_ptr;\n            }\n        }\n    }\n    __parent = static_cast<__parent_pointer>(__end_node());\n    return __parent->__left_;\n}\n\n// Find place to insert if __v doesn't exist\n// First check prior to __hint.\n// Next check after __hint.\n// Next do O(log N) search.\n// Set __parent to parent of null leaf\n// Return reference to null leaf\n// If __v exists, set parent to node of __v and return reference to node of __v\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_base_pointer&\n__tree<_Tp, _Compare, _Allocator>::__find_equal(const_iterator __hint,\n                                                __parent_pointer& __parent,\n                                                __node_base_pointer& __dummy,\n                                                const _Key& __v)\n{\n    if (__hint == end() || value_comp()(__v, *__hint))  // check before\n    {\n        // __v < *__hint\n        const_iterator __prior = __hint;\n        if (__prior == begin() || value_comp()(*--__prior, __v))\n        {\n            // *prev(__hint) < __v < *__hint\n            if (__hint.__ptr_->__left_ == nullptr)\n            {\n                __parent = static_cast<__parent_pointer>(__hint.__ptr_);\n                return __parent->__left_;\n            }\n            else\n            {\n                __parent = static_cast<__parent_pointer>(__prior.__ptr_);\n                return static_cast<__node_base_pointer>(__prior.__ptr_)->__right_;\n            }\n        }\n        // __v <= *prev(__hint)\n        return __find_equal(__parent, __v);\n    }\n    else if (value_comp()(*__hint, __v))  // check after\n    {\n        // *__hint < __v\n        const_iterator __next = _VSTD::next(__hint);\n        if (__next == end() || value_comp()(__v, *__next))\n        {\n            // *__hint < __v < *_VSTD::next(__hint)\n            if (__hint.__get_np()->__right_ == nullptr)\n            {\n                __parent = static_cast<__parent_pointer>(__hint.__ptr_);\n                return static_cast<__node_base_pointer>(__hint.__ptr_)->__right_;\n            }\n            else\n            {\n                __parent = static_cast<__parent_pointer>(__next.__ptr_);\n                return __parent->__left_;\n            }\n        }\n        // *next(__hint) <= __v\n        return __find_equal(__parent, __v);\n    }\n    // else __v == *__hint\n    __parent = static_cast<__parent_pointer>(__hint.__ptr_);\n    __dummy = static_cast<__node_base_pointer>(__hint.__ptr_);\n    return __dummy;\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\nvoid\n__tree<_Tp, _Compare, _Allocator>::__insert_node_at(__parent_pointer     __parent,\n                                                    __node_base_pointer& __child,\n                                                    __node_base_pointer  __new_node)\n{\n    __new_node->__left_   = nullptr;\n    __new_node->__right_  = nullptr;\n    __new_node->__parent_ = __parent;\n    // __new_node->__is_black_ is initialized in __tree_balance_after_insert\n    __child = __new_node;\n    if (__begin_node()->__left_ != nullptr)\n        __begin_node() = static_cast<__iter_pointer>(__begin_node()->__left_);\n    __tree_balance_after_insert(__end_node()->__left_, __child);\n    ++size();\n}\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key, class... _Args>\npair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>\n__tree<_Tp, _Compare, _Allocator>::__emplace_unique_key_args(_Key const& __k, _Args&&... __args)\n#else\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key, class _Args>\npair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>\n__tree<_Tp, _Compare, _Allocator>::__emplace_unique_key_args(_Key const& __k, _Args& __args)\n#endif\n{\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_equal(__parent, __k);\n    __node_pointer __r = static_cast<__node_pointer>(__child);\n    bool __inserted = false;\n    if (__child == nullptr)\n    {\n#ifndef _LIBCPP_CXX03_LANG\n        __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n#else\n        __node_holder __h = __construct_node(__args);\n#endif\n        __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n        __r = __h.release();\n        __inserted = true;\n    }\n    return pair<iterator, bool>(iterator(__r), __inserted);\n}\n\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key, class... _Args>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique_key_args(\n    const_iterator __p, _Key const& __k, _Args&&... __args)\n#else\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key, class _Args>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique_key_args(\n    const_iterator __p, _Key const& __k, _Args& __args)\n#endif\n{\n    __parent_pointer __parent;\n    __node_base_pointer __dummy;\n    __node_base_pointer& __child = __find_equal(__p, __parent, __dummy, __k);\n    __node_pointer __r = static_cast<__node_pointer>(__child);\n    if (__child == nullptr)\n    {\n#ifndef _LIBCPP_CXX03_LANG\n        __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n#else\n        __node_holder __h = __construct_node(__args);\n#endif\n        __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n        __r = __h.release();\n    }\n    return iterator(__r);\n}\n\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class ..._Args>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_holder\n__tree<_Tp, _Compare, _Allocator>::__construct_node(_Args&& ...__args)\n{\n    static_assert(!__is_tree_value_type<_Args...>::value,\n                  \"Cannot construct from __value_type\");\n    __node_allocator& __na = __node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), _VSTD::forward<_Args>(__args)...);\n    __h.get_deleter().__value_constructed = true;\n    return __h;\n}\n\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class... _Args>\npair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>\n__tree<_Tp, _Compare, _Allocator>::__emplace_unique_impl(_Args&&... __args)\n{\n    __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_equal(__parent, __h->__value_);\n    __node_pointer __r = static_cast<__node_pointer>(__child);\n    bool __inserted = false;\n    if (__child == nullptr)\n    {\n        __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n        __r = __h.release();\n        __inserted = true;\n    }\n    return pair<iterator, bool>(iterator(__r), __inserted);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class... _Args>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__emplace_hint_unique_impl(const_iterator __p, _Args&&... __args)\n{\n    __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n    __parent_pointer __parent;\n    __node_base_pointer __dummy;\n    __node_base_pointer& __child = __find_equal(__p, __parent, __dummy, __h->__value_);\n    __node_pointer __r = static_cast<__node_pointer>(__child);\n    if (__child == nullptr)\n    {\n        __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n        __r = __h.release();\n    }\n    return iterator(__r);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class... _Args>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__emplace_multi(_Args&&... __args)\n{\n    __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_leaf_high(__parent, _NodeTypes::__get_key(__h->__value_));\n    __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n    return iterator(static_cast<__node_pointer>(__h.release()));\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class... _Args>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__emplace_hint_multi(const_iterator __p,\n                                                        _Args&&... __args)\n{\n    __node_holder __h = __construct_node(_VSTD::forward<_Args>(__args)...);\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_leaf(__p, __parent, _NodeTypes::__get_key(__h->__value_));\n    __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n    return iterator(static_cast<__node_pointer>(__h.release()));\n}\n\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_holder\n__tree<_Tp, _Compare, _Allocator>::__construct_node(const __container_value_type& __v)\n{\n    __node_allocator& __na = __node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _NodeTypes::__get_ptr(__h->__value_), __v);\n    __h.get_deleter().__value_constructed = true;\n    return _LIBCPP_EXPLICIT_MOVE(__h);  // explicitly moved for C++03\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n#ifdef _LIBCPP_CXX03_LANG\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__insert_multi(const __container_value_type& __v)\n{\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_leaf_high(__parent, _NodeTypes::__get_key(__v));\n    __node_holder __h = __construct_node(__v);\n    __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n    return iterator(__h.release());\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__insert_multi(const_iterator __p, const __container_value_type& __v)\n{\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_leaf(__p, __parent, _NodeTypes::__get_key(__v));\n    __node_holder __h = __construct_node(__v);\n    __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n    return iterator(__h.release());\n}\n#endif\n\ntemplate <class _Tp, class _Compare, class _Allocator>\npair<typename __tree<_Tp, _Compare, _Allocator>::iterator, bool>\n__tree<_Tp, _Compare, _Allocator>::__node_insert_unique(__node_pointer __nd)\n{\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_equal(__parent, __nd->__value_);\n    __node_pointer __r = static_cast<__node_pointer>(__child);\n    bool __inserted = false;\n    if (__child == nullptr)\n    {\n        __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd));\n        __r = __nd;\n        __inserted = true;\n    }\n    return pair<iterator, bool>(iterator(__r), __inserted);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__node_insert_unique(const_iterator __p,\n                                                        __node_pointer __nd)\n{\n    __parent_pointer __parent;\n    __node_base_pointer __dummy;\n    __node_base_pointer& __child = __find_equal(__p, __parent, __nd->__value_);\n    __node_pointer __r = static_cast<__node_pointer>(__child);\n    if (__child == nullptr)\n    {\n        __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd));\n        __r = __nd;\n    }\n    return iterator(__r);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__node_insert_multi(__node_pointer __nd)\n{\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_leaf_high(__parent, _NodeTypes::__get_key(__nd->__value_));\n    __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd));\n    return iterator(__nd);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__node_insert_multi(const_iterator __p,\n                                                       __node_pointer __nd)\n{\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __find_leaf(__p, __parent, _NodeTypes::__get_key(__nd->__value_));\n    __insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__nd));\n    return iterator(__nd);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::erase(const_iterator __p)\n{\n    __node_pointer __np = __p.__get_np();\n    iterator __r(__p.__ptr_);\n    ++__r;\n    if (__begin_node() == __p.__ptr_)\n        __begin_node() = __r.__ptr_;\n    --size();\n    __node_allocator& __na = __node_alloc();\n    __tree_remove(__end_node()->__left_,\n                  static_cast<__node_base_pointer>(__np));\n    __node_traits::destroy(__na, _NodeTypes::__get_ptr(\n        const_cast<__node_value_type&>(*__p)));\n    __node_traits::deallocate(__na, __np, 1);\n    return __r;\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::erase(const_iterator __f, const_iterator __l)\n{\n    while (__f != __l)\n        __f = erase(__f);\n    return iterator(__l.__ptr_);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::size_type\n__tree<_Tp, _Compare, _Allocator>::__erase_unique(const _Key& __k)\n{\n    iterator __i = find(__k);\n    if (__i == end())\n        return 0;\n    erase(__i);\n    return 1;\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::size_type\n__tree<_Tp, _Compare, _Allocator>::__erase_multi(const _Key& __k)\n{\n    pair<iterator, iterator> __p = __equal_range_multi(__k);\n    size_type __r = 0;\n    for (; __p.first != __p.second; ++__r)\n        __p.first = erase(__p.first);\n    return __r;\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::find(const _Key& __v)\n{\n    iterator __p = __lower_bound(__v, __root(), __end_node());\n    if (__p != end() && !value_comp()(__v, *__p))\n        return __p;\n    return end();\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::const_iterator\n__tree<_Tp, _Compare, _Allocator>::find(const _Key& __v) const\n{\n    const_iterator __p = __lower_bound(__v, __root(), __end_node());\n    if (__p != end() && !value_comp()(__v, *__p))\n        return __p;\n    return end();\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::size_type\n__tree<_Tp, _Compare, _Allocator>::__count_unique(const _Key& __k) const\n{\n    __node_pointer __rt = __root();\n    while (__rt != nullptr)\n    {\n        if (value_comp()(__k, __rt->__value_))\n        {\n            __rt = static_cast<__node_pointer>(__rt->__left_);\n        }\n        else if (value_comp()(__rt->__value_, __k))\n            __rt = static_cast<__node_pointer>(__rt->__right_);\n        else\n            return 1;\n    }\n    return 0;\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::size_type\n__tree<_Tp, _Compare, _Allocator>::__count_multi(const _Key& __k) const\n{\n    __iter_pointer __result = __end_node();\n    __node_pointer __rt = __root();\n    while (__rt != nullptr)\n    {\n        if (value_comp()(__k, __rt->__value_))\n        {\n            __result = static_cast<__iter_pointer>(__rt);\n            __rt = static_cast<__node_pointer>(__rt->__left_);\n        }\n        else if (value_comp()(__rt->__value_, __k))\n            __rt = static_cast<__node_pointer>(__rt->__right_);\n        else\n            return _VSTD::distance(\n                __lower_bound(__k, static_cast<__node_pointer>(__rt->__left_), static_cast<__iter_pointer>(__rt)),\n                __upper_bound(__k, static_cast<__node_pointer>(__rt->__right_), __result)\n            );\n    }\n    return 0;\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v,\n                                                 __node_pointer __root,\n                                                 __iter_pointer __result)\n{\n    while (__root != nullptr)\n    {\n        if (!value_comp()(__root->__value_, __v))\n        {\n            __result = static_cast<__iter_pointer>(__root);\n            __root = static_cast<__node_pointer>(__root->__left_);\n        }\n        else\n            __root = static_cast<__node_pointer>(__root->__right_);\n    }\n    return iterator(__result);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::const_iterator\n__tree<_Tp, _Compare, _Allocator>::__lower_bound(const _Key& __v,\n                                                 __node_pointer __root,\n                                                 __iter_pointer __result) const\n{\n    while (__root != nullptr)\n    {\n        if (!value_comp()(__root->__value_, __v))\n        {\n            __result = static_cast<__iter_pointer>(__root);\n            __root = static_cast<__node_pointer>(__root->__left_);\n        }\n        else\n            __root = static_cast<__node_pointer>(__root->__right_);\n    }\n    return const_iterator(__result);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::iterator\n__tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v,\n                                                 __node_pointer __root,\n                                                 __iter_pointer __result)\n{\n    while (__root != nullptr)\n    {\n        if (value_comp()(__v, __root->__value_))\n        {\n            __result = static_cast<__iter_pointer>(__root);\n            __root = static_cast<__node_pointer>(__root->__left_);\n        }\n        else\n            __root = static_cast<__node_pointer>(__root->__right_);\n    }\n    return iterator(__result);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\ntypename __tree<_Tp, _Compare, _Allocator>::const_iterator\n__tree<_Tp, _Compare, _Allocator>::__upper_bound(const _Key& __v,\n                                                 __node_pointer __root,\n                                                 __iter_pointer __result) const\n{\n    while (__root != nullptr)\n    {\n        if (value_comp()(__v, __root->__value_))\n        {\n            __result = static_cast<__iter_pointer>(__root);\n            __root = static_cast<__node_pointer>(__root->__left_);\n        }\n        else\n            __root = static_cast<__node_pointer>(__root->__right_);\n    }\n    return const_iterator(__result);\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\npair<typename __tree<_Tp, _Compare, _Allocator>::iterator,\n     typename __tree<_Tp, _Compare, _Allocator>::iterator>\n__tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k)\n{\n    typedef pair<iterator, iterator> _Pp;\n    __iter_pointer __result = __end_node();\n    __node_pointer __rt = __root();\n    while (__rt != nullptr)\n    {\n        if (value_comp()(__k, __rt->__value_))\n        {\n            __result = static_cast<__iter_pointer>(__rt);\n            __rt = static_cast<__node_pointer>(__rt->__left_);\n        }\n        else if (value_comp()(__rt->__value_, __k))\n            __rt = static_cast<__node_pointer>(__rt->__right_);\n        else\n            return _Pp(iterator(__rt),\n                      iterator(\n                          __rt->__right_ != nullptr ?\n                              static_cast<__iter_pointer>(__tree_min(__rt->__right_))\n                            : __result));\n    }\n    return _Pp(iterator(__result), iterator(__result));\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\npair<typename __tree<_Tp, _Compare, _Allocator>::const_iterator,\n     typename __tree<_Tp, _Compare, _Allocator>::const_iterator>\n__tree<_Tp, _Compare, _Allocator>::__equal_range_unique(const _Key& __k) const\n{\n    typedef pair<const_iterator, const_iterator> _Pp;\n    __iter_pointer __result = __end_node();\n    __node_pointer __rt = __root();\n    while (__rt != nullptr)\n    {\n        if (value_comp()(__k, __rt->__value_))\n        {\n            __result = static_cast<__iter_pointer>(__rt);\n            __rt = static_cast<__node_pointer>(__rt->__left_);\n        }\n        else if (value_comp()(__rt->__value_, __k))\n            __rt = static_cast<__node_pointer>(__rt->__right_);\n        else\n            return _Pp(const_iterator(__rt),\n                      const_iterator(\n                          __rt->__right_ != nullptr ?\n                              static_cast<__iter_pointer>(__tree_min(__rt->__right_))\n                            : __result));\n    }\n    return _Pp(const_iterator(__result), const_iterator(__result));\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\npair<typename __tree<_Tp, _Compare, _Allocator>::iterator,\n     typename __tree<_Tp, _Compare, _Allocator>::iterator>\n__tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k)\n{\n    typedef pair<iterator, iterator> _Pp;\n    __iter_pointer __result = __end_node();\n    __node_pointer __rt = __root();\n    while (__rt != nullptr)\n    {\n        if (value_comp()(__k, __rt->__value_))\n        {\n            __result = static_cast<__iter_pointer>(__rt);\n            __rt = static_cast<__node_pointer>(__rt->__left_);\n        }\n        else if (value_comp()(__rt->__value_, __k))\n            __rt = static_cast<__node_pointer>(__rt->__right_);\n        else\n            return _Pp(__lower_bound(__k, static_cast<__node_pointer>(__rt->__left_), static_cast<__iter_pointer>(__rt)),\n                      __upper_bound(__k, static_cast<__node_pointer>(__rt->__right_), __result));\n    }\n    return _Pp(iterator(__result), iterator(__result));\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntemplate <class _Key>\npair<typename __tree<_Tp, _Compare, _Allocator>::const_iterator,\n     typename __tree<_Tp, _Compare, _Allocator>::const_iterator>\n__tree<_Tp, _Compare, _Allocator>::__equal_range_multi(const _Key& __k) const\n{\n    typedef pair<const_iterator, const_iterator> _Pp;\n    __iter_pointer __result = __end_node();\n    __node_pointer __rt = __root();\n    while (__rt != nullptr)\n    {\n        if (value_comp()(__k, __rt->__value_))\n        {\n            __result = static_cast<__iter_pointer>(__rt);\n            __rt = static_cast<__node_pointer>(__rt->__left_);\n        }\n        else if (value_comp()(__rt->__value_, __k))\n            __rt = static_cast<__node_pointer>(__rt->__right_);\n        else\n            return _Pp(__lower_bound(__k, static_cast<__node_pointer>(__rt->__left_), static_cast<__iter_pointer>(__rt)),\n                      __upper_bound(__k, static_cast<__node_pointer>(__rt->__right_), __result));\n    }\n    return _Pp(const_iterator(__result), const_iterator(__result));\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ntypename __tree<_Tp, _Compare, _Allocator>::__node_holder\n__tree<_Tp, _Compare, _Allocator>::remove(const_iterator __p) _NOEXCEPT\n{\n    __node_pointer __np = __p.__get_np();\n    if (__begin_node() == __p.__ptr_)\n    {\n        if (__np->__right_ != nullptr)\n            __begin_node() = static_cast<__iter_pointer>(__np->__right_);\n        else\n            __begin_node() = static_cast<__iter_pointer>(__np->__parent_);\n    }\n    --size();\n    __tree_remove(__end_node()->__left_,\n                  static_cast<__node_base_pointer>(__np));\n    return __node_holder(__np, _Dp(__node_alloc(), true));\n}\n\ntemplate <class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__tree<_Tp, _Compare, _Allocator>& __x,\n     __tree<_Tp, _Compare, _Allocator>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP___TREE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__tuple",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP___TUPLE\n#define _LIBCPP___TUPLE\n\n#include <__config>\n#include <cstddef>\n#include <type_traits>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_size;\n\n#if !defined(_LIBCPP_CXX03_LANG)\ntemplate <class _Tp, class...>\nusing __enable_if_tuple_size_imp = _Tp;\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp<\n    const _Tp,\n    typename enable_if<!is_volatile<_Tp>::value>::type,\n    integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>\n    : public integral_constant<size_t, tuple_size<_Tp>::value> {};\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp<\n    volatile _Tp,\n    typename enable_if<!is_const<_Tp>::value>::type,\n    integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>\n    : public integral_constant<size_t, tuple_size<_Tp>::value> {};\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_size<__enable_if_tuple_size_imp<\n    const volatile _Tp,\n    integral_constant<size_t, sizeof(tuple_size<_Tp>)>>>\n    : public integral_constant<size_t, tuple_size<_Tp>::value> {};\n\n#else\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_size<const _Tp> : public tuple_size<_Tp> {};\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_size<volatile _Tp> : public tuple_size<_Tp> {};\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_size<const volatile _Tp> : public tuple_size<_Tp> {};\n#endif\n\ntemplate <size_t _Ip, class _Tp> class _LIBCPP_TEMPLATE_VIS tuple_element;\n\ntemplate <size_t _Ip, class _Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, const _Tp>\n{\npublic:\n    typedef typename add_const<typename tuple_element<_Ip, _Tp>::type>::type type;\n};\n\ntemplate <size_t _Ip, class _Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, volatile _Tp>\n{\npublic:\n    typedef typename add_volatile<typename tuple_element<_Ip, _Tp>::type>::type type;\n};\n\ntemplate <size_t _Ip, class _Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, const volatile _Tp>\n{\npublic:\n    typedef typename add_cv<typename tuple_element<_Ip, _Tp>::type>::type type;\n};\n\ntemplate <class _Tp> struct __tuple_like : false_type {};\n\ntemplate <class _Tp> struct __tuple_like<const _Tp> : public __tuple_like<_Tp> {};\ntemplate <class _Tp> struct __tuple_like<volatile _Tp> : public __tuple_like<_Tp> {};\ntemplate <class _Tp> struct __tuple_like<const volatile _Tp> : public __tuple_like<_Tp> {};\n\n// tuple specializations\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <size_t...> struct __tuple_indices {};\n\ntemplate <class _IdxType, _IdxType... _Values>\nstruct __integer_sequence {\n  template <template <class _OIdxType, _OIdxType...> class _ToIndexSeq, class _ToIndexType>\n  using __convert = _ToIndexSeq<_ToIndexType, _Values...>;\n\n  template <size_t _Sp>\n  using __to_tuple_indices = __tuple_indices<(_Values + _Sp)...>;\n};\n\n#if !__has_builtin(__make_integer_seq) || defined(_LIBCPP_TESTING_FALLBACK_MAKE_INTEGER_SEQUENCE)\nnamespace __detail {\n\ntemplate<typename _Tp, size_t ..._Extra> struct __repeat;\ntemplate<typename _Tp, _Tp ..._Np, size_t ..._Extra> struct __repeat<__integer_sequence<_Tp, _Np...>, _Extra...> {\n  typedef __integer_sequence<_Tp,\n                           _Np...,\n                           sizeof...(_Np) + _Np...,\n                           2 * sizeof...(_Np) + _Np...,\n                           3 * sizeof...(_Np) + _Np...,\n                           4 * sizeof...(_Np) + _Np...,\n                           5 * sizeof...(_Np) + _Np...,\n                           6 * sizeof...(_Np) + _Np...,\n                           7 * sizeof...(_Np) + _Np...,\n                           _Extra...> type;\n};\n\ntemplate<size_t _Np> struct __parity;\ntemplate<size_t _Np> struct __make : __parity<_Np % 8>::template __pmake<_Np> {};\n\ntemplate<> struct __make<0> { typedef __integer_sequence<size_t> type; };\ntemplate<> struct __make<1> { typedef __integer_sequence<size_t, 0> type; };\ntemplate<> struct __make<2> { typedef __integer_sequence<size_t, 0, 1> type; };\ntemplate<> struct __make<3> { typedef __integer_sequence<size_t, 0, 1, 2> type; };\ntemplate<> struct __make<4> { typedef __integer_sequence<size_t, 0, 1, 2, 3> type; };\ntemplate<> struct __make<5> { typedef __integer_sequence<size_t, 0, 1, 2, 3, 4> type; };\ntemplate<> struct __make<6> { typedef __integer_sequence<size_t, 0, 1, 2, 3, 4, 5> type; };\ntemplate<> struct __make<7> { typedef __integer_sequence<size_t, 0, 1, 2, 3, 4, 5, 6> type; };\n\ntemplate<> struct __parity<0> { template<size_t _Np> struct __pmake : __repeat<typename __make<_Np / 8>::type> {}; };\ntemplate<> struct __parity<1> { template<size_t _Np> struct __pmake : __repeat<typename __make<_Np / 8>::type, _Np - 1> {}; };\ntemplate<> struct __parity<2> { template<size_t _Np> struct __pmake : __repeat<typename __make<_Np / 8>::type, _Np - 2, _Np - 1> {}; };\ntemplate<> struct __parity<3> { template<size_t _Np> struct __pmake : __repeat<typename __make<_Np / 8>::type, _Np - 3, _Np - 2, _Np - 1> {}; };\ntemplate<> struct __parity<4> { template<size_t _Np> struct __pmake : __repeat<typename __make<_Np / 8>::type, _Np - 4, _Np - 3, _Np - 2, _Np - 1> {}; };\ntemplate<> struct __parity<5> { template<size_t _Np> struct __pmake : __repeat<typename __make<_Np / 8>::type, _Np - 5, _Np - 4, _Np - 3, _Np - 2, _Np - 1> {}; };\ntemplate<> struct __parity<6> { template<size_t _Np> struct __pmake : __repeat<typename __make<_Np / 8>::type, _Np - 6, _Np - 5, _Np - 4, _Np - 3, _Np - 2, _Np - 1> {}; };\ntemplate<> struct __parity<7> { template<size_t _Np> struct __pmake : __repeat<typename __make<_Np / 8>::type, _Np - 7, _Np - 6, _Np - 5, _Np - 4, _Np - 3, _Np - 2, _Np - 1> {}; };\n\n} // namespace detail\n\n#endif  // !__has_builtin(__make_integer_seq) || defined(_LIBCPP_TESTING_FALLBACK_MAKE_INTEGER_SEQUENCE)\n\n#if __has_builtin(__make_integer_seq)\ntemplate <size_t _Ep, size_t _Sp>\nusing __make_indices_imp =\n    typename __make_integer_seq<__integer_sequence, size_t, _Ep - _Sp>::template\n    __to_tuple_indices<_Sp>;\n#else\ntemplate <size_t _Ep, size_t _Sp>\nusing __make_indices_imp =\n    typename __detail::__make<_Ep - _Sp>::type::template __to_tuple_indices<_Sp>;\n\n#endif\n\ntemplate <size_t _Ep, size_t _Sp = 0>\nstruct __make_tuple_indices\n{\n    static_assert(_Sp <= _Ep, \"__make_tuple_indices input error\");\n    typedef __make_indices_imp<_Ep, _Sp> type;\n};\n\n\ntemplate <class ..._Tp> class _LIBCPP_TEMPLATE_VIS tuple;\n\ntemplate <class... _Tp> struct __tuple_like<tuple<_Tp...> > : true_type {};\n\ntemplate <class ..._Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_size<tuple<_Tp...> >\n    : public integral_constant<size_t, sizeof...(_Tp)>\n{\n};\n\ntemplate <size_t _Ip, class ..._Tp>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename tuple_element<_Ip, tuple<_Tp...> >::type&\nget(tuple<_Tp...>&) _NOEXCEPT;\n\ntemplate <size_t _Ip, class ..._Tp>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst typename tuple_element<_Ip, tuple<_Tp...> >::type&\nget(const tuple<_Tp...>&) _NOEXCEPT;\n\ntemplate <size_t _Ip, class ..._Tp>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename tuple_element<_Ip, tuple<_Tp...> >::type&&\nget(tuple<_Tp...>&&) _NOEXCEPT;\n\ntemplate <size_t _Ip, class ..._Tp>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst typename tuple_element<_Ip, tuple<_Tp...> >::type&&\nget(const tuple<_Tp...>&&) _NOEXCEPT;\n\n#endif // !defined(_LIBCPP_CXX03_LANG)\n\n// pair specializations\n\ntemplate <class _T1, class _T2> struct __tuple_like<pair<_T1, _T2> > : true_type {};\n\ntemplate <size_t _Ip, class _T1, class _T2>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename tuple_element<_Ip, pair<_T1, _T2> >::type&\nget(pair<_T1, _T2>&) _NOEXCEPT;\n\ntemplate <size_t _Ip, class _T1, class _T2>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst typename tuple_element<_Ip, pair<_T1, _T2> >::type&\nget(const pair<_T1, _T2>&) _NOEXCEPT;\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <size_t _Ip, class _T1, class _T2>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename tuple_element<_Ip, pair<_T1, _T2> >::type&&\nget(pair<_T1, _T2>&&) _NOEXCEPT;\n\ntemplate <size_t _Ip, class _T1, class _T2>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst typename tuple_element<_Ip, pair<_T1, _T2> >::type&&\nget(const pair<_T1, _T2>&&) _NOEXCEPT;\n#endif\n\n// array specializations\n\ntemplate <class _Tp, size_t _Size> struct _LIBCPP_TEMPLATE_VIS array;\n\ntemplate <class _Tp, size_t _Size> struct __tuple_like<array<_Tp, _Size> > : true_type {};\n\ntemplate <size_t _Ip, class _Tp, size_t _Size>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp&\nget(array<_Tp, _Size>&) _NOEXCEPT;\n\ntemplate <size_t _Ip, class _Tp, size_t _Size>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Tp&\nget(const array<_Tp, _Size>&) _NOEXCEPT;\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <size_t _Ip, class _Tp, size_t _Size>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp&&\nget(array<_Tp, _Size>&&) _NOEXCEPT;\n\ntemplate <size_t _Ip, class _Tp, size_t _Size>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Tp&&\nget(const array<_Tp, _Size>&&) _NOEXCEPT;\n#endif\n\n#ifndef _LIBCPP_CXX03_LANG\n\n// __tuple_types\n\ntemplate <class ..._Tp> struct __tuple_types {};\n\n#if !__has_builtin(__type_pack_element)\n\nnamespace __indexer_detail {\n\ntemplate <size_t _Idx, class _Tp>\nstruct __indexed { using type = _Tp; };\n\ntemplate <class _Types, class _Indexes> struct __indexer;\n\ntemplate <class ..._Types, size_t ..._Idx>\nstruct __indexer<__tuple_types<_Types...>, __tuple_indices<_Idx...>>\n    : __indexed<_Idx, _Types>...\n{};\n\ntemplate <size_t _Idx, class _Tp>\n__indexed<_Idx, _Tp> __at_index(__indexed<_Idx, _Tp> const&);\n\n} // namespace __indexer_detail\n\ntemplate <size_t _Idx, class ..._Types>\nusing __type_pack_element = typename decltype(\n    __indexer_detail::__at_index<_Idx>(\n        __indexer_detail::__indexer<\n            __tuple_types<_Types...>,\n            typename __make_tuple_indices<sizeof...(_Types)>::type\n        >{})\n  )::type;\n#endif\n\ntemplate <size_t _Ip, class ..._Types>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, __tuple_types<_Types...>>\n{\npublic:\n    static_assert(_Ip < sizeof...(_Types), \"tuple_element index out of range\");\n    typedef __type_pack_element<_Ip, _Types...> type;\n};\n\n\ntemplate <class ..._Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_size<__tuple_types<_Tp...> >\n    : public integral_constant<size_t, sizeof...(_Tp)>\n{\n};\n\ntemplate <class... _Tp> struct __tuple_like<__tuple_types<_Tp...> > : true_type {};\n\ntemplate <bool _ApplyLV, bool _ApplyConst, bool _ApplyVolatile>\nstruct __apply_cv_mf;\ntemplate <>\nstruct __apply_cv_mf<false, false, false> {\n  template <class _Tp> using __apply = _Tp;\n};\ntemplate <>\nstruct __apply_cv_mf<false, true, false> {\n  template <class _Tp> using __apply = const _Tp;\n};\ntemplate <>\nstruct __apply_cv_mf<false, false, true> {\n  template <class _Tp> using __apply = volatile _Tp;\n};\ntemplate <>\nstruct __apply_cv_mf<false, true, true> {\n  template <class _Tp> using __apply = const volatile _Tp;\n};\ntemplate <>\nstruct __apply_cv_mf<true, false, false> {\n  template <class _Tp> using __apply = _Tp&;\n};\ntemplate <>\nstruct __apply_cv_mf<true, true, false> {\n  template <class _Tp> using __apply = const _Tp&;\n};\ntemplate <>\nstruct __apply_cv_mf<true, false, true> {\n  template <class _Tp> using __apply = volatile _Tp&;\n};\ntemplate <>\nstruct __apply_cv_mf<true, true, true> {\n  template <class _Tp> using __apply = const volatile _Tp&;\n};\ntemplate <class _Tp, class _RawTp = typename remove_reference<_Tp>::type>\nusing __apply_cv_t = __apply_cv_mf<\n    is_lvalue_reference<_Tp>::value,\n    is_const<_RawTp>::value,\n    is_volatile<_RawTp>::value>;\n\n// __make_tuple_types\n\n// __make_tuple_types<_Tuple<_Types...>, _Ep, _Sp>::type is a\n// __tuple_types<_Types...> using only those _Types in the range [_Sp, _Ep).\n// _Sp defaults to 0 and _Ep defaults to tuple_size<_Tuple>.  If _Tuple is a\n// lvalue_reference type, then __tuple_types<_Types&...> is the result.\n\ntemplate <class _TupleTypes, class _TupleIndices>\nstruct __make_tuple_types_flat;\n\ntemplate <template <class...> class _Tuple, class ..._Types, size_t ..._Idx>\nstruct __make_tuple_types_flat<_Tuple<_Types...>, __tuple_indices<_Idx...>> {\n  // Specialization for pair, tuple, and __tuple_types\n  template <class _Tp, class _ApplyFn = __apply_cv_t<_Tp>>\n  using __apply_quals = __tuple_types<\n      typename _ApplyFn::template __apply<__type_pack_element<_Idx, _Types...>>...\n    >;\n};\n\ntemplate <class _Vt, size_t _Np, size_t ..._Idx>\nstruct __make_tuple_types_flat<array<_Vt, _Np>, __tuple_indices<_Idx...>> {\n  template <size_t>\n  using __value_type = _Vt;\n  template <class _Tp, class _ApplyFn = __apply_cv_t<_Tp>>\n  using __apply_quals = __tuple_types<\n      typename _ApplyFn::template __apply<__value_type<_Idx>>...\n    >;\n};\n\ntemplate <class _Tp, size_t _Ep = tuple_size<typename remove_reference<_Tp>::type>::value,\n          size_t _Sp = 0,\n          bool _SameSize = (_Ep == tuple_size<typename remove_reference<_Tp>::type>::value)>\nstruct __make_tuple_types\n{\n    static_assert(_Sp <= _Ep, \"__make_tuple_types input error\");\n    using _RawTp = typename remove_cv<typename remove_reference<_Tp>::type>::type;\n    using _Maker = __make_tuple_types_flat<_RawTp, typename __make_tuple_indices<_Ep, _Sp>::type>;\n    using type = typename _Maker::template __apply_quals<_Tp>;\n};\n\ntemplate <class ..._Types, size_t _Ep>\nstruct __make_tuple_types<tuple<_Types...>, _Ep, 0, true> {\n  typedef __tuple_types<_Types...> type;\n};\n\ntemplate <class ..._Types, size_t _Ep>\nstruct __make_tuple_types<__tuple_types<_Types...>, _Ep, 0, true> {\n  typedef __tuple_types<_Types...> type;\n};\n\ntemplate <bool ..._Preds>\nstruct __all_dummy;\n\ntemplate <bool ..._Pred>\nusing __all = is_same<__all_dummy<_Pred...>, __all_dummy<((void)_Pred, true)...>>;\n\nstruct __tuple_sfinae_base {\n  template <template <class, class...> class _Trait,\n            class ..._LArgs, class ..._RArgs>\n  static auto __do_test(__tuple_types<_LArgs...>, __tuple_types<_RArgs...>)\n    -> __all<typename enable_if<_Trait<_LArgs, _RArgs>::value, bool>::type{true}...>;\n  template <template <class...> class>\n  static auto __do_test(...) -> false_type;\n\n  template <class _FromArgs, class _ToArgs>\n  using __constructible = decltype(__do_test<is_constructible>(_ToArgs{}, _FromArgs{}));\n  template <class _FromArgs, class _ToArgs>\n  using __convertible = decltype(__do_test<is_convertible>(_FromArgs{}, _ToArgs{}));\n  template <class _FromArgs, class _ToArgs>\n  using __assignable = decltype(__do_test<is_assignable>(_ToArgs{}, _FromArgs{}));\n};\n\n// __tuple_convertible\n\ntemplate <class _Tp, class _Up, bool = __tuple_like<typename remove_reference<_Tp>::type>::value,\n                                bool = __tuple_like<_Up>::value>\nstruct __tuple_convertible\n    : public false_type {};\n\ntemplate <class _Tp, class _Up>\nstruct __tuple_convertible<_Tp, _Up, true, true>\n    : public __tuple_sfinae_base::__convertible<\n      typename __make_tuple_types<_Tp>::type\n    , typename __make_tuple_types<_Up>::type\n    >\n{};\n\n// __tuple_constructible\n\ntemplate <class _Tp, class _Up, bool = __tuple_like<typename remove_reference<_Tp>::type>::value,\n                                bool = __tuple_like<_Up>::value>\nstruct __tuple_constructible\n    : public false_type {};\n\ntemplate <class _Tp, class _Up>\nstruct __tuple_constructible<_Tp, _Up, true, true>\n    : public __tuple_sfinae_base::__constructible<\n      typename __make_tuple_types<_Tp>::type\n    , typename __make_tuple_types<_Up>::type\n    >\n{};\n\n// __tuple_assignable\n\ntemplate <class _Tp, class _Up, bool = __tuple_like<typename remove_reference<_Tp>::type>::value,\n                                bool = __tuple_like<_Up>::value>\nstruct __tuple_assignable\n    : public false_type {};\n\ntemplate <class _Tp, class _Up>\nstruct __tuple_assignable<_Tp, _Up, true, true>\n    : public __tuple_sfinae_base::__assignable<\n      typename __make_tuple_types<_Tp>::type\n    , typename __make_tuple_types<_Up&>::type\n    >\n{};\n\n\ntemplate <size_t _Ip, class ..._Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, tuple<_Tp...> >\n{\npublic:\n    typedef typename tuple_element<_Ip, __tuple_types<_Tp...> >::type type;\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <size_t _Ip, class ..._Tp>\nusing tuple_element_t = typename tuple_element <_Ip, _Tp...>::type;\n#endif\n\ntemplate <bool _IsTuple, class _SizeTrait, size_t _Expected>\nstruct __tuple_like_with_size_imp : false_type {};\n\ntemplate <class _SizeTrait, size_t _Expected>\nstruct __tuple_like_with_size_imp<true, _SizeTrait, _Expected>\n    : integral_constant<bool, _SizeTrait::value == _Expected> {};\n\ntemplate <class _Tuple, size_t _ExpectedSize,\n          class _RawTuple = typename __uncvref<_Tuple>::type>\nusing __tuple_like_with_size = __tuple_like_with_size_imp<\n                                   __tuple_like<_RawTuple>::value,\n                                   tuple_size<_RawTuple>, _ExpectedSize\n                              >;\n\nstruct _LIBCPP_TYPE_VIS __check_tuple_constructor_fail {\n    template <class ...>\n    static constexpr bool __enable_default() { return false; }\n    template <class ...>\n    static constexpr bool __enable_explicit() { return false; }\n    template <class ...>\n    static constexpr bool __enable_implicit() { return false; }\n    template <class ...>\n    static constexpr bool __enable_assign() { return false; }\n};\n#endif // !defined(_LIBCPP_CXX03_LANG)\n\n#if _LIBCPP_STD_VER > 14\n\ntemplate <bool _CanCopy, bool _CanMove>\nstruct __sfinae_ctor_base {};\ntemplate <>\nstruct __sfinae_ctor_base<false, false> {\n  __sfinae_ctor_base() = default;\n  __sfinae_ctor_base(__sfinae_ctor_base const&) = delete;\n  __sfinae_ctor_base(__sfinae_ctor_base &&) = delete;\n  __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;\n  __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;\n};\ntemplate <>\nstruct __sfinae_ctor_base<true, false> {\n  __sfinae_ctor_base() = default;\n  __sfinae_ctor_base(__sfinae_ctor_base const&) = default;\n  __sfinae_ctor_base(__sfinae_ctor_base &&) = delete;\n  __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;\n  __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;\n};\ntemplate <>\nstruct __sfinae_ctor_base<false, true> {\n  __sfinae_ctor_base() = default;\n  __sfinae_ctor_base(__sfinae_ctor_base const&) = delete;\n  __sfinae_ctor_base(__sfinae_ctor_base &&) = default;\n  __sfinae_ctor_base& operator=(__sfinae_ctor_base const&) = default;\n  __sfinae_ctor_base& operator=(__sfinae_ctor_base&&) = default;\n};\n\ntemplate <bool _CanCopy, bool _CanMove>\nstruct __sfinae_assign_base {};\ntemplate <>\nstruct __sfinae_assign_base<false, false> {\n  __sfinae_assign_base() = default;\n  __sfinae_assign_base(__sfinae_assign_base const&) = default;\n  __sfinae_assign_base(__sfinae_assign_base &&) = default;\n  __sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete;\n  __sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete;\n};\ntemplate <>\nstruct __sfinae_assign_base<true, false> {\n  __sfinae_assign_base() = default;\n  __sfinae_assign_base(__sfinae_assign_base const&) = default;\n  __sfinae_assign_base(__sfinae_assign_base &&) = default;\n  __sfinae_assign_base& operator=(__sfinae_assign_base const&) = default;\n  __sfinae_assign_base& operator=(__sfinae_assign_base&&) = delete;\n};\ntemplate <>\nstruct __sfinae_assign_base<false, true> {\n  __sfinae_assign_base() = default;\n  __sfinae_assign_base(__sfinae_assign_base const&) = default;\n  __sfinae_assign_base(__sfinae_assign_base &&) = default;\n  __sfinae_assign_base& operator=(__sfinae_assign_base const&) = delete;\n  __sfinae_assign_base& operator=(__sfinae_assign_base&&) = default;\n};\n#endif // _LIBCPP_STD_VER > 14\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP___TUPLE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__undef_macros",
    "content": "// -*- C++ -*-\n//===------------------------ __undef_macros ------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n\n#ifdef min\n#if !defined(_LIBCPP_DISABLE_MACRO_CONFLICT_WARNINGS)\n#if defined(_LIBCPP_WARNING)\n_LIBCPP_WARNING(\"macro min is incompatible with C++.  Try #define NOMINMAX \"\n                \"before any Windows header. #undefing min\")\n#else\n#warning: macro min is incompatible with C++.  #undefing min\n#endif\n#endif\n#undef min\n#endif\n\n#ifdef max\n#if !defined(_LIBCPP_DISABLE_MACRO_CONFLICT_WARNINGS)\n#if defined(_LIBCPP_WARNING)\n_LIBCPP_WARNING(\"macro max is incompatible with C++.  Try #define NOMINMAX \"\n                \"before any Windows header. #undefing max\")\n#else\n#warning: macro max is incompatible with C++.  #undefing max\n#endif\n#endif\n#undef max\n#endif\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/algorithm",
    "content": "// -*- C++ -*-\n//===-------------------------- algorithm ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_ALGORITHM\n#define _LIBCPP_ALGORITHM\n\n/*\n    algorithm synopsis\n\n#include <initializer_list>\n\nnamespace std\n{\n\ntemplate <class InputIterator, class Predicate>\n    bool\n    all_of(InputIterator first, InputIterator last, Predicate pred);\n\ntemplate <class InputIterator, class Predicate>\n    bool\n    any_of(InputIterator first, InputIterator last, Predicate pred);\n\ntemplate <class InputIterator, class Predicate>\n    bool\n    none_of(InputIterator first, InputIterator last, Predicate pred);\n\ntemplate <class InputIterator, class Function>\n    Function\n    for_each(InputIterator first, InputIterator last, Function f);\n\ntemplate<class InputIterator, class Size, class Function>\n    InputIterator for_each_n(InputIterator first, Size n, Function f); // C++17\n\ntemplate <class InputIterator, class T>\n    InputIterator\n    find(InputIterator first, InputIterator last, const T& value);\n\ntemplate <class InputIterator, class Predicate>\n    InputIterator\n    find_if(InputIterator first, InputIterator last, Predicate pred);\n\ntemplate<class InputIterator, class Predicate>\n    InputIterator\n    find_if_not(InputIterator first, InputIterator last, Predicate pred);\n\ntemplate <class ForwardIterator1, class ForwardIterator2>\n    ForwardIterator1\n    find_end(ForwardIterator1 first1, ForwardIterator1 last1,\n             ForwardIterator2 first2, ForwardIterator2 last2);\n\ntemplate <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>\n    ForwardIterator1\n    find_end(ForwardIterator1 first1, ForwardIterator1 last1,\n             ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred);\n\ntemplate <class ForwardIterator1, class ForwardIterator2>\n    ForwardIterator1\n    find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,\n                  ForwardIterator2 first2, ForwardIterator2 last2);\n\ntemplate <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>\n    ForwardIterator1\n    find_first_of(ForwardIterator1 first1, ForwardIterator1 last1,\n                  ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred);\n\ntemplate <class ForwardIterator>\n    ForwardIterator\n    adjacent_find(ForwardIterator first, ForwardIterator last);\n\ntemplate <class ForwardIterator, class BinaryPredicate>\n    ForwardIterator\n    adjacent_find(ForwardIterator first, ForwardIterator last, BinaryPredicate pred);\n\ntemplate <class InputIterator, class T>\n    typename iterator_traits<InputIterator>::difference_type\n    count(InputIterator first, InputIterator last, const T& value);\n\ntemplate <class InputIterator, class Predicate>\n    typename iterator_traits<InputIterator>::difference_type\n    count_if(InputIterator first, InputIterator last, Predicate pred);\n\ntemplate <class InputIterator1, class InputIterator2>\n    pair<InputIterator1, InputIterator2>\n    mismatch(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2);\n\ntemplate <class InputIterator1, class InputIterator2>\n    pair<InputIterator1, InputIterator2>\n    mismatch(InputIterator1 first1, InputIterator1 last1,\n             InputIterator2 first2, InputIterator2 last2); // **C++14**\n\ntemplate <class InputIterator1, class InputIterator2, class BinaryPredicate>\n    pair<InputIterator1, InputIterator2>\n    mismatch(InputIterator1 first1, InputIterator1 last1,\n             InputIterator2 first2, BinaryPredicate pred);\n\ntemplate <class InputIterator1, class InputIterator2, class BinaryPredicate>\n    pair<InputIterator1, InputIterator2>\n    mismatch(InputIterator1 first1, InputIterator1 last1,\n             InputIterator2 first2, InputIterator2 last2,\n             BinaryPredicate pred); // **C++14**\n\ntemplate <class InputIterator1, class InputIterator2>\n    bool\n    equal(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2);\n\ntemplate <class InputIterator1, class InputIterator2>\n    bool\n    equal(InputIterator1 first1, InputIterator1 last1,\n          InputIterator2 first2, InputIterator2 last2); // **C++14**\n\ntemplate <class InputIterator1, class InputIterator2, class BinaryPredicate>\n    bool\n    equal(InputIterator1 first1, InputIterator1 last1,\n          InputIterator2 first2, BinaryPredicate pred);\n\ntemplate <class InputIterator1, class InputIterator2, class BinaryPredicate>\n    bool\n    equal(InputIterator1 first1, InputIterator1 last1,\n          InputIterator2 first2, InputIterator2 last2,\n          BinaryPredicate pred); // **C++14**\n\ntemplate<class ForwardIterator1, class ForwardIterator2>\n    bool\n    is_permutation(ForwardIterator1 first1, ForwardIterator1 last1,\n                   ForwardIterator2 first2);\n\ntemplate<class ForwardIterator1, class ForwardIterator2>\n    bool\n    is_permutation(ForwardIterator1 first1, ForwardIterator1 last1,\n                   ForwardIterator2 first2, ForwardIterator2 last2); // **C++14**\n\ntemplate<class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>\n    bool\n    is_permutation(ForwardIterator1 first1, ForwardIterator1 last1,\n                   ForwardIterator2 first2, BinaryPredicate pred);\n\ntemplate<class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>\n    bool\n    is_permutation(ForwardIterator1 first1, ForwardIterator1 last1,\n                   ForwardIterator2 first2, ForwardIterator2 last2,\n                   BinaryPredicate pred);  // **C++14**\n\ntemplate <class ForwardIterator1, class ForwardIterator2>\n    ForwardIterator1\n    search(ForwardIterator1 first1, ForwardIterator1 last1,\n           ForwardIterator2 first2, ForwardIterator2 last2);\n\ntemplate <class ForwardIterator1, class ForwardIterator2, class BinaryPredicate>\n    ForwardIterator1\n    search(ForwardIterator1 first1, ForwardIterator1 last1,\n           ForwardIterator2 first2, ForwardIterator2 last2, BinaryPredicate pred);\n\ntemplate <class ForwardIterator, class Size, class T>\n    ForwardIterator\n    search_n(ForwardIterator first, ForwardIterator last, Size count, const T& value);\n\ntemplate <class ForwardIterator, class Size, class T, class BinaryPredicate>\n    ForwardIterator\n    search_n(ForwardIterator first, ForwardIterator last,\n             Size count, const T& value, BinaryPredicate pred);\n\ntemplate <class InputIterator, class OutputIterator>\n    OutputIterator\n    copy(InputIterator first, InputIterator last, OutputIterator result);\n\ntemplate<class InputIterator, class OutputIterator, class Predicate>\n    OutputIterator\n    copy_if(InputIterator first, InputIterator last,\n            OutputIterator result, Predicate pred);\n\ntemplate<class InputIterator, class Size, class OutputIterator>\n    OutputIterator\n    copy_n(InputIterator first, Size n, OutputIterator result);\n\ntemplate <class BidirectionalIterator1, class BidirectionalIterator2>\n    BidirectionalIterator2\n    copy_backward(BidirectionalIterator1 first, BidirectionalIterator1 last,\n                  BidirectionalIterator2 result);\n\ntemplate <class ForwardIterator1, class ForwardIterator2>\n    ForwardIterator2\n    swap_ranges(ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2);\n\ntemplate <class ForwardIterator1, class ForwardIterator2>\n    void\n    iter_swap(ForwardIterator1 a, ForwardIterator2 b);\n\ntemplate <class InputIterator, class OutputIterator, class UnaryOperation>\n    OutputIterator\n    transform(InputIterator first, InputIterator last, OutputIterator result, UnaryOperation op);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator, class BinaryOperation>\n    OutputIterator\n    transform(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2,\n              OutputIterator result, BinaryOperation binary_op);\n\ntemplate <class ForwardIterator, class T>\n    void\n    replace(ForwardIterator first, ForwardIterator last, const T& old_value, const T& new_value);\n\ntemplate <class ForwardIterator, class Predicate, class T>\n    void\n    replace_if(ForwardIterator first, ForwardIterator last, Predicate pred, const T& new_value);\n\ntemplate <class InputIterator, class OutputIterator, class T>\n    OutputIterator\n    replace_copy(InputIterator first, InputIterator last, OutputIterator result,\n                 const T& old_value, const T& new_value);\n\ntemplate <class InputIterator, class OutputIterator, class Predicate, class T>\n    OutputIterator\n    replace_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred, const T& new_value);\n\ntemplate <class ForwardIterator, class T>\n    void\n    fill(ForwardIterator first, ForwardIterator last, const T& value);\n\ntemplate <class OutputIterator, class Size, class T>\n    OutputIterator\n    fill_n(OutputIterator first, Size n, const T& value);\n\ntemplate <class ForwardIterator, class Generator>\n    void\n    generate(ForwardIterator first, ForwardIterator last, Generator gen);\n\ntemplate <class OutputIterator, class Size, class Generator>\n    OutputIterator\n    generate_n(OutputIterator first, Size n, Generator gen);\n\ntemplate <class ForwardIterator, class T>\n    ForwardIterator\n    remove(ForwardIterator first, ForwardIterator last, const T& value);\n\ntemplate <class ForwardIterator, class Predicate>\n    ForwardIterator\n    remove_if(ForwardIterator first, ForwardIterator last, Predicate pred);\n\ntemplate <class InputIterator, class OutputIterator, class T>\n    OutputIterator\n    remove_copy(InputIterator first, InputIterator last, OutputIterator result, const T& value);\n\ntemplate <class InputIterator, class OutputIterator, class Predicate>\n    OutputIterator\n    remove_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred);\n\ntemplate <class ForwardIterator>\n    ForwardIterator\n    unique(ForwardIterator first, ForwardIterator last);\n\ntemplate <class ForwardIterator, class BinaryPredicate>\n    ForwardIterator\n    unique(ForwardIterator first, ForwardIterator last, BinaryPredicate pred);\n\ntemplate <class InputIterator, class OutputIterator>\n    OutputIterator\n    unique_copy(InputIterator first, InputIterator last, OutputIterator result);\n\ntemplate <class InputIterator, class OutputIterator, class BinaryPredicate>\n    OutputIterator\n    unique_copy(InputIterator first, InputIterator last, OutputIterator result, BinaryPredicate pred);\n\ntemplate <class BidirectionalIterator>\n    void\n    reverse(BidirectionalIterator first, BidirectionalIterator last);\n\ntemplate <class BidirectionalIterator, class OutputIterator>\n    OutputIterator\n    reverse_copy(BidirectionalIterator first, BidirectionalIterator last, OutputIterator result);\n\ntemplate <class ForwardIterator>\n    ForwardIterator\n    rotate(ForwardIterator first, ForwardIterator middle, ForwardIterator last);\n\ntemplate <class ForwardIterator, class OutputIterator>\n    OutputIterator\n    rotate_copy(ForwardIterator first, ForwardIterator middle, ForwardIterator last, OutputIterator result);\n\ntemplate <class RandomAccessIterator>\n    void\n    random_shuffle(RandomAccessIterator first, RandomAccessIterator last); // deprecated in C++14, removed in C++17\n\ntemplate <class RandomAccessIterator, class RandomNumberGenerator>\n    void\n    random_shuffle(RandomAccessIterator first, RandomAccessIterator last,\n                   RandomNumberGenerator& rand);  // deprecated in C++14, removed in C++17\n\ntemplate<class PopulationIterator, class SampleIterator,\n         class Distance, class UniformRandomBitGenerator>\n    SampleIterator sample(PopulationIterator first, PopulationIterator last,\n                          SampleIterator out, Distance n,\n                          UniformRandomBitGenerator&& g); // C++17\n\ntemplate<class RandomAccessIterator, class UniformRandomNumberGenerator>\n    void shuffle(RandomAccessIterator first, RandomAccessIterator last,\n                 UniformRandomNumberGenerator&& g);\n\ntemplate <class InputIterator, class Predicate>\n    bool\n    is_partitioned(InputIterator first, InputIterator last, Predicate pred);\n\ntemplate <class ForwardIterator, class Predicate>\n    ForwardIterator\n    partition(ForwardIterator first, ForwardIterator last, Predicate pred);\n\ntemplate <class InputIterator, class OutputIterator1,\n          class OutputIterator2, class Predicate>\n    pair<OutputIterator1, OutputIterator2>\n    partition_copy(InputIterator first, InputIterator last,\n                   OutputIterator1 out_true, OutputIterator2 out_false,\n                   Predicate pred);\n\ntemplate <class ForwardIterator, class Predicate>\n    ForwardIterator\n    stable_partition(ForwardIterator first, ForwardIterator last, Predicate pred);\n\ntemplate<class ForwardIterator, class Predicate>\n    ForwardIterator\n    partition_point(ForwardIterator first, ForwardIterator last, Predicate pred);\n\ntemplate <class ForwardIterator>\n    bool\n    is_sorted(ForwardIterator first, ForwardIterator last);\n\ntemplate <class ForwardIterator, class Compare>\n    bool\n    is_sorted(ForwardIterator first, ForwardIterator last, Compare comp);\n\ntemplate<class ForwardIterator>\n    ForwardIterator\n    is_sorted_until(ForwardIterator first, ForwardIterator last);\n\ntemplate <class ForwardIterator, class Compare>\n    ForwardIterator\n    is_sorted_until(ForwardIterator first, ForwardIterator last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    void\n    sort(RandomAccessIterator first, RandomAccessIterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    void\n    sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    void\n    stable_sort(RandomAccessIterator first, RandomAccessIterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    void\n    stable_sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    void\n    partial_sort(RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    void\n    partial_sort(RandomAccessIterator first, RandomAccessIterator middle, RandomAccessIterator last, Compare comp);\n\ntemplate <class InputIterator, class RandomAccessIterator>\n    RandomAccessIterator\n    partial_sort_copy(InputIterator first, InputIterator last,\n                      RandomAccessIterator result_first, RandomAccessIterator result_last);\n\ntemplate <class InputIterator, class RandomAccessIterator, class Compare>\n    RandomAccessIterator\n    partial_sort_copy(InputIterator first, InputIterator last,\n                      RandomAccessIterator result_first, RandomAccessIterator result_last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    void\n    nth_element(RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    void\n    nth_element(RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last, Compare comp);\n\ntemplate <class ForwardIterator, class T>\n    ForwardIterator\n    lower_bound(ForwardIterator first, ForwardIterator last, const T& value);\n\ntemplate <class ForwardIterator, class T, class Compare>\n    ForwardIterator\n    lower_bound(ForwardIterator first, ForwardIterator last, const T& value, Compare comp);\n\ntemplate <class ForwardIterator, class T>\n    ForwardIterator\n    upper_bound(ForwardIterator first, ForwardIterator last, const T& value);\n\ntemplate <class ForwardIterator, class T, class Compare>\n    ForwardIterator\n    upper_bound(ForwardIterator first, ForwardIterator last, const T& value, Compare comp);\n\ntemplate <class ForwardIterator, class T>\n    pair<ForwardIterator, ForwardIterator>\n    equal_range(ForwardIterator first, ForwardIterator last, const T& value);\n\ntemplate <class ForwardIterator, class T, class Compare>\n    pair<ForwardIterator, ForwardIterator>\n    equal_range(ForwardIterator first, ForwardIterator last, const T& value, Compare comp);\n\ntemplate <class ForwardIterator, class T>\n    bool\n    binary_search(ForwardIterator first, ForwardIterator last, const T& value);\n\ntemplate <class ForwardIterator, class T, class Compare>\n    bool\n    binary_search(ForwardIterator first, ForwardIterator last, const T& value, Compare comp);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator>\n    OutputIterator\n    merge(InputIterator1 first1, InputIterator1 last1,\n          InputIterator2 first2, InputIterator2 last2, OutputIterator result);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator, class Compare>\n    OutputIterator\n    merge(InputIterator1 first1, InputIterator1 last1,\n          InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp);\n\ntemplate <class BidirectionalIterator>\n    void\n    inplace_merge(BidirectionalIterator first, BidirectionalIterator middle, BidirectionalIterator last);\n\ntemplate <class BidirectionalIterator, class Compare>\n    void\n    inplace_merge(BidirectionalIterator first, BidirectionalIterator middle, BidirectionalIterator last, Compare comp);\n\ntemplate <class InputIterator1, class InputIterator2>\n    bool\n    includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2);\n\ntemplate <class InputIterator1, class InputIterator2, class Compare>\n    bool\n    includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, Compare comp);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator>\n    OutputIterator\n    set_union(InputIterator1 first1, InputIterator1 last1,\n              InputIterator2 first2, InputIterator2 last2, OutputIterator result);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator, class Compare>\n    OutputIterator\n    set_union(InputIterator1 first1, InputIterator1 last1,\n              InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator>\n    OutputIterator\n    set_intersection(InputIterator1 first1, InputIterator1 last1,\n                     InputIterator2 first2, InputIterator2 last2, OutputIterator result);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator, class Compare>\n    OutputIterator\n    set_intersection(InputIterator1 first1, InputIterator1 last1,\n                     InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator>\n    OutputIterator\n    set_difference(InputIterator1 first1, InputIterator1 last1,\n                   InputIterator2 first2, InputIterator2 last2, OutputIterator result);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator, class Compare>\n    OutputIterator\n    set_difference(InputIterator1 first1, InputIterator1 last1,\n                   InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator>\n    OutputIterator\n    set_symmetric_difference(InputIterator1 first1, InputIterator1 last1,\n                             InputIterator2 first2, InputIterator2 last2, OutputIterator result);\n\ntemplate <class InputIterator1, class InputIterator2, class OutputIterator, class Compare>\n    OutputIterator\n    set_symmetric_difference(InputIterator1 first1, InputIterator1 last1,\n                             InputIterator2 first2, InputIterator2 last2, OutputIterator result, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    void\n    push_heap(RandomAccessIterator first, RandomAccessIterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    void\n    push_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    void\n    pop_heap(RandomAccessIterator first, RandomAccessIterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    void\n    pop_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    void\n    make_heap(RandomAccessIterator first, RandomAccessIterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    void\n    make_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    void\n    sort_heap(RandomAccessIterator first, RandomAccessIterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    void\n    sort_heap(RandomAccessIterator first, RandomAccessIterator last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    bool\n    is_heap(RandomAccessIterator first, RandomAccessiterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    bool\n    is_heap(RandomAccessIterator first, RandomAccessiterator last, Compare comp);\n\ntemplate <class RandomAccessIterator>\n    RandomAccessIterator\n    is_heap_until(RandomAccessIterator first, RandomAccessiterator last);\n\ntemplate <class RandomAccessIterator, class Compare>\n    RandomAccessIterator\n    is_heap_until(RandomAccessIterator first, RandomAccessiterator last, Compare comp);\n\ntemplate <class ForwardIterator>\n    ForwardIterator\n    min_element(ForwardIterator first, ForwardIterator last);  // constexpr in C++14\n\ntemplate <class ForwardIterator, class Compare>\n    ForwardIterator\n    min_element(ForwardIterator first, ForwardIterator last, Compare comp);  // constexpr in C++14\n\ntemplate <class T>\n    const T&\n    min(const T& a, const T& b);  // constexpr in C++14\n\ntemplate <class T, class Compare>\n    const T&\n    min(const T& a, const T& b, Compare comp);  // constexpr in C++14\n\ntemplate<class T>\n    T\n    min(initializer_list<T> t);  // constexpr in C++14\n\ntemplate<class T, class Compare>\n    T\n    min(initializer_list<T> t, Compare comp);  // constexpr in C++14\n\ntemplate<class T>\n    constexpr const T& clamp( const T& v, const T& lo, const T& hi );               // C++17\n\ntemplate<class T, class Compare>\n    constexpr const T& clamp( const T& v, const T& lo, const T& hi, Compare comp ); // C++17\n\ntemplate <class ForwardIterator>\n    ForwardIterator\n    max_element(ForwardIterator first, ForwardIterator last);  // constexpr in C++14\n\ntemplate <class ForwardIterator, class Compare>\n    ForwardIterator\n    max_element(ForwardIterator first, ForwardIterator last, Compare comp);  // constexpr in C++14\n\ntemplate <class T>\n    const T&\n    max(const T& a, const T& b); // constexpr in C++14\n\ntemplate <class T, class Compare>\n    const T&\n    max(const T& a, const T& b, Compare comp);  // constexpr in C++14\n\ntemplate<class T>\n    T\n    max(initializer_list<T> t);  // constexpr in C++14\n\ntemplate<class T, class Compare>\n    T\n    max(initializer_list<T> t, Compare comp);  // constexpr in C++14\n\ntemplate<class ForwardIterator>\n    pair<ForwardIterator, ForwardIterator>\n    minmax_element(ForwardIterator first, ForwardIterator last);   // constexpr in C++14\n\ntemplate<class ForwardIterator, class Compare>\n    pair<ForwardIterator, ForwardIterator>\n    minmax_element(ForwardIterator first, ForwardIterator last, Compare comp);   // constexpr in C++14\n\ntemplate<class T>\n    pair<const T&, const T&>\n    minmax(const T& a, const T& b);  // constexpr in C++14\n\ntemplate<class T, class Compare>\n    pair<const T&, const T&>\n    minmax(const T& a, const T& b, Compare comp);  // constexpr in C++14\n\ntemplate<class T>\n    pair<T, T>\n    minmax(initializer_list<T> t);  // constexpr in C++14\n\ntemplate<class T, class Compare>\n    pair<T, T>\n    minmax(initializer_list<T> t, Compare comp);  // constexpr in C++14\n\ntemplate <class InputIterator1, class InputIterator2>\n    bool\n    lexicographical_compare(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2);\n\ntemplate <class InputIterator1, class InputIterator2, class Compare>\n    bool\n    lexicographical_compare(InputIterator1 first1, InputIterator1 last1,\n                            InputIterator2 first2, InputIterator2 last2, Compare comp);\n\ntemplate <class BidirectionalIterator>\n    bool\n    next_permutation(BidirectionalIterator first, BidirectionalIterator last);\n\ntemplate <class BidirectionalIterator, class Compare>\n    bool\n    next_permutation(BidirectionalIterator first, BidirectionalIterator last, Compare comp);\n\ntemplate <class BidirectionalIterator>\n    bool\n    prev_permutation(BidirectionalIterator first, BidirectionalIterator last);\n\ntemplate <class BidirectionalIterator, class Compare>\n    bool\n    prev_permutation(BidirectionalIterator first, BidirectionalIterator last, Compare comp);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <initializer_list>\n#include <type_traits>\n#include <cstring>\n#include <utility> // needed to provide swap_ranges.\n#include <memory>\n#include <iterator>\n#include <cstddef>\n\n#if defined(__IBMCPP__)\n#include \"support/ibm/support.h\"\n#endif\n#if defined(_LIBCPP_COMPILER_MSVC)\n#include <intrin.h>\n#endif\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// I'd like to replace these with _VSTD::equal_to<void>, but can't because:\n//   * That only works with C++14 and later, and\n//   * We haven't included <functional> here.\ntemplate <class _T1, class _T2 = _T1>\nstruct __equal_to\n{\n    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}\n    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T1& __x, const _T2& __y) const {return __x == __y;}\n    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T1& __y) const {return __x == __y;}\n    _LIBCPP_INLINE_VISIBILITY bool operator()(const _T2& __x, const _T2& __y) const {return __x == __y;}\n};\n\ntemplate <class _T1>\nstruct __equal_to<_T1, _T1>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}\n};\n\ntemplate <class _T1>\nstruct __equal_to<const _T1, _T1>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}\n};\n\ntemplate <class _T1>\nstruct __equal_to<_T1, const _T1>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T1& __x, const _T1& __y) const {return __x == __y;}\n};\n\ntemplate <class _T1, class _T2 = _T1>\nstruct __less\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T1& __x, const _T2& __y) const {return __x < __y;}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T2& __x, const _T1& __y) const {return __x < __y;}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T2& __x, const _T2& __y) const {return __x < __y;}\n};\n\ntemplate <class _T1>\nstruct __less<_T1, _T1>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}\n};\n\ntemplate <class _T1>\nstruct __less<const _T1, _T1>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}\n};\n\ntemplate <class _T1>\nstruct __less<_T1, const _T1>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _T1& __x, const _T1& __y) const {return __x < __y;}\n};\n\ntemplate <class _Predicate>\nclass __negate\n{\nprivate:\n    _Predicate __p_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY __negate() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __negate(_Predicate __p) : __p_(__p) {}\n\n    template <class _T1>\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _T1& __x) {return !__p_(__x);}\n\n    template <class _T1, class _T2>\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _T1& __x, const _T2& __y) {return !__p_(__x, __y);}\n};\n\n#ifdef _LIBCPP_DEBUG\n\ntemplate <class _Compare>\nstruct __debug_less\n{\n    _Compare __comp_;\n    __debug_less(_Compare& __c) : __comp_(__c) {}\n\n    template <class _Tp, class _Up>\n    bool operator()(const _Tp& __x, const _Up& __y)\n    {\n        bool __r = __comp_(__x, __y);\n        if (__r)\n            __do_compare_assert(0, __y, __x);\n        return __r;\n    }\n\n    template <class _LHS, class _RHS>\n    inline _LIBCPP_INLINE_VISIBILITY\n    decltype((void)_VSTD::declval<_Compare&>()(\n        _VSTD::declval<_LHS const&>(), _VSTD::declval<_RHS const&>()))\n    __do_compare_assert(int, _LHS const& __l, _RHS const& __r) {\n        _LIBCPP_ASSERT(!__comp_(__l, __r),\n            \"Comparator does not induce a strict weak ordering\");\n    }\n\n    template <class _LHS, class _RHS>\n    inline _LIBCPP_INLINE_VISIBILITY\n    void __do_compare_assert(long, _LHS const&, _RHS const&) {}\n};\n\n#endif  // _LIBCPP_DEBUG\n\n// Precondition:  __x != 0\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned __ctz(unsigned __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n    return static_cast<unsigned>(__builtin_ctz(__x));\n#else\n  static_assert(sizeof(unsigned) == sizeof(unsigned long), \"\");\n  static_assert(sizeof(unsigned long) == 4, \"\");\n  unsigned long where;\n  // Search from LSB to MSB for first set bit.\n  // Returns zero if no set bit is found.\n  if (_BitScanForward(&where, mask))\n    return where;\n  return 32;\n#endif\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned long __ctz(unsigned long __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n    return static_cast<unsigned long>(__builtin_ctzl(__x));\n#else\n    static_assert(sizeof(unsigned long) == sizeof(unsigned), \"\");\n    return __ctz(static_cast<unsigned>(__x));\n#endif\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned long long __ctz(unsigned long long __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n    return static_cast<unsigned long long>(__builtin_ctzll(__x));\n#else\n    unsigned long where;\n// Search from LSB to MSB for first set bit.\n// Returns zero if no set bit is found.\n#if defined(_LIBCPP_HAS_BITSCAN64)\n    (defined(_M_AMD64) || defined(__x86_64__))\n  if (_BitScanForward64(&where, mask))\n    return static_cast<int>(where);\n#else\n  // Win32 doesn't have _BitScanForward64 so emulate it with two 32 bit calls.\n  // Scan the Low Word.\n  if (_BitScanForward(&where, static_cast<unsigned long>(mask)))\n    return where;\n  // Scan the High Word.\n  if (_BitScanForward(&where, static_cast<unsigned long>(mask >> 32)))\n    return where + 32; // Create a bit offset from the LSB.\n#endif\n  return 64;\n#endif // _LIBCPP_COMPILER_MSVC\n}\n\n// Precondition:  __x != 0\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned __clz(unsigned __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n    return static_cast<unsigned>(__builtin_clz(__x));\n#else\n  static_assert(sizeof(unsigned) == sizeof(unsigned long), \"\");\n  static_assert(sizeof(unsigned long) == 4, \"\");\n  unsigned long where;\n  // Search from LSB to MSB for first set bit.\n  // Returns zero if no set bit is found.\n  if (_BitScanReverse(&where, mask))\n    return 31 - where;\n  return 32; // Undefined Behavior.\n#endif\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned long __clz(unsigned long __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n    return static_cast<unsigned long>(__builtin_clzl (__x));\n#else\n    static_assert(sizeof(unsigned) == sizeof(unsigned long), \"\");\n    return __clz(static_cast<unsigned>(__x));\n#endif\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned long long __clz(unsigned long long __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n    return static_cast<unsigned long long>(__builtin_clzll(__x));\n#else\n  unsigned long where;\n// BitScanReverse scans from MSB to LSB for first set bit.\n// Returns 0 if no set bit is found.\n#if defined(_LIBCPP_HAS_BITSCAN64)\n  if (_BitScanReverse64(&where, mask))\n    return static_cast<int>(63 - where);\n#else\n  // Scan the high 32 bits.\n  if (_BitScanReverse(&where, static_cast<unsigned long>(mask >> 32)))\n    return 63 - (where + 32); // Create a bit offset from the MSB.\n  // Scan the low 32 bits.\n  if (_BitScanReverse(&where, static_cast<unsigned long>(mask)))\n    return 63 - where;\n#endif\n  return 64; // Undefined Behavior.\n#endif // _LIBCPP_COMPILER_MSVC\n}\n\ninline _LIBCPP_INLINE_VISIBILITY int __pop_count(unsigned __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n  return __builtin_popcount  (__x);\n#else\n  static_assert(sizeof(unsigned) == 4, \"\");\n  return __popcnt(__x);\n#endif\n}\n\ninline _LIBCPP_INLINE_VISIBILITY int __pop_count(unsigned long __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n  return __builtin_popcountl (__x);\n#else\n  static_assert(sizeof(unsigned long) == 4, \"\");\n  return __popcnt(__x);\n#endif\n}\n\ninline _LIBCPP_INLINE_VISIBILITY int __pop_count(unsigned long long __x) {\n#ifndef _LIBCPP_COMPILER_MSVC\n  return __builtin_popcountll(__x);\n#else\n  static_assert(sizeof(unsigned long long) == 8, \"\");\n  return __popcnt64(__x);\n#endif\n}\n\n// all_of\n\ntemplate <class _InputIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nall_of(_InputIterator __first, _InputIterator __last, _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n        if (!__pred(*__first))\n            return false;\n    return true;\n}\n\n// any_of\n\ntemplate <class _InputIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nany_of(_InputIterator __first, _InputIterator __last, _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n        if (__pred(*__first))\n            return true;\n    return false;\n}\n\n// none_of\n\ntemplate <class _InputIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nnone_of(_InputIterator __first, _InputIterator __last, _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n        if (__pred(*__first))\n            return false;\n    return true;\n}\n\n// for_each\n\ntemplate <class _InputIterator, class _Function>\ninline _LIBCPP_INLINE_VISIBILITY\n_Function\nfor_each(_InputIterator __first, _InputIterator __last, _Function __f)\n{\n    for (; __first != __last; ++__first)\n        __f(*__first);\n    return __f;\n}\n\n#if _LIBCPP_STD_VER > 14\n// for_each_n\n\ntemplate <class _InputIterator, class _Size, class _Function>\ninline _LIBCPP_INLINE_VISIBILITY\n_InputIterator\nfor_each_n(_InputIterator __first, _Size __orig_n, _Function __f)\n{\n    typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize;\n    _IntegralSize __n = __orig_n;\n    while (__n > 0)\n    {\n         __f(*__first);\n         ++__first;\n         --__n;\n    }\n    return __first;\n}\n#endif\n\n// find\n\ntemplate <class _InputIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_InputIterator\nfind(_InputIterator __first, _InputIterator __last, const _Tp& __value_)\n{\n    for (; __first != __last; ++__first)\n        if (*__first == __value_)\n            break;\n    return __first;\n}\n\n// find_if\n\ntemplate <class _InputIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_InputIterator\nfind_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n        if (__pred(*__first))\n            break;\n    return __first;\n}\n\n// find_if_not\n\ntemplate<class _InputIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_InputIterator\nfind_if_not(_InputIterator __first, _InputIterator __last, _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n        if (!__pred(*__first))\n            break;\n    return __first;\n}\n\n// find_end\n\ntemplate <class _BinaryPredicate, class _ForwardIterator1, class _ForwardIterator2>\n_ForwardIterator1\n__find_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n           _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred,\n           forward_iterator_tag, forward_iterator_tag)\n{\n    // modeled after search algorithm\n    _ForwardIterator1 __r = __last1;  // __last1 is the \"default\" answer\n    if (__first2 == __last2)\n        return __r;\n    while (true)\n    {\n        while (true)\n        {\n            if (__first1 == __last1)         // if source exhausted return last correct answer\n                return __r;                  //    (or __last1 if never found)\n            if (__pred(*__first1, *__first2))\n                break;\n            ++__first1;\n        }\n        // *__first1 matches *__first2, now match elements after here\n        _ForwardIterator1 __m1 = __first1;\n        _ForwardIterator2 __m2 = __first2;\n        while (true)\n        {\n            if (++__m2 == __last2)\n            {                         // Pattern exhaused, record answer and search for another one\n                __r = __first1;\n                ++__first1;\n                break;\n            }\n            if (++__m1 == __last1)     // Source exhausted, return last answer\n                return __r;\n            if (!__pred(*__m1, *__m2))  // mismatch, restart with a new __first\n            {\n                ++__first1;\n                break;\n            }  // else there is a match, check next elements\n        }\n    }\n}\n\ntemplate <class _BinaryPredicate, class _BidirectionalIterator1, class _BidirectionalIterator2>\n_BidirectionalIterator1\n__find_end(_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1,\n           _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BinaryPredicate __pred,\n           bidirectional_iterator_tag, bidirectional_iterator_tag)\n{\n    // modeled after search algorithm (in reverse)\n    if (__first2 == __last2)\n        return __last1;  // Everything matches an empty sequence\n    _BidirectionalIterator1 __l1 = __last1;\n    _BidirectionalIterator2 __l2 = __last2;\n    --__l2;\n    while (true)\n    {\n        // Find last element in sequence 1 that matchs *(__last2-1), with a mininum of loop checks\n        while (true)\n        {\n            if (__first1 == __l1)  // return __last1 if no element matches *__first2\n                return __last1;\n            if (__pred(*--__l1, *__l2))\n                break;\n        }\n        // *__l1 matches *__l2, now match elements before here\n        _BidirectionalIterator1 __m1 = __l1;\n        _BidirectionalIterator2 __m2 = __l2;\n        while (true)\n        {\n            if (__m2 == __first2)  // If pattern exhausted, __m1 is the answer (works for 1 element pattern)\n                return __m1;\n            if (__m1 == __first1)  // Otherwise if source exhaused, pattern not found\n                return __last1;\n            if (!__pred(*--__m1, *--__m2))  // if there is a mismatch, restart with a new __l1\n            {\n                break;\n            }  // else there is a match, check next elements\n        }\n    }\n}\n\ntemplate <class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _RandomAccessIterator1\n__find_end(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1,\n           _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred,\n           random_access_iterator_tag, random_access_iterator_tag)\n{\n    // Take advantage of knowing source and pattern lengths.  Stop short when source is smaller than pattern\n    typename iterator_traits<_RandomAccessIterator2>::difference_type __len2 = __last2 - __first2;\n    if (__len2 == 0)\n        return __last1;\n    typename iterator_traits<_RandomAccessIterator1>::difference_type __len1 = __last1 - __first1;\n    if (__len1 < __len2)\n        return __last1;\n    const _RandomAccessIterator1 __s = __first1 + (__len2 - 1);  // End of pattern match can't go before here\n    _RandomAccessIterator1 __l1 = __last1;\n    _RandomAccessIterator2 __l2 = __last2;\n    --__l2;\n    while (true)\n    {\n        while (true)\n        {\n            if (__s == __l1)\n                return __last1;\n            if (__pred(*--__l1, *__l2))\n                break;\n        }\n        _RandomAccessIterator1 __m1 = __l1;\n        _RandomAccessIterator2 __m2 = __l2;\n        while (true)\n        {\n            if (__m2 == __first2)\n                return __m1;\n                                 // no need to check range on __m1 because __s guarantees we have enough source\n            if (!__pred(*--__m1, *--__m2))\n            {\n                break;\n            }\n        }\n    }\n}\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator1\nfind_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n         _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)\n{\n    return _VSTD::__find_end<typename add_lvalue_reference<_BinaryPredicate>::type>\n                         (__first1, __last1, __first2, __last2, __pred,\n                          typename iterator_traits<_ForwardIterator1>::iterator_category(),\n                          typename iterator_traits<_ForwardIterator2>::iterator_category());\n}\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator1\nfind_end(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n         _ForwardIterator2 __first2, _ForwardIterator2 __last2)\n{\n    typedef typename iterator_traits<_ForwardIterator1>::value_type __v1;\n    typedef typename iterator_traits<_ForwardIterator2>::value_type __v2;\n    return _VSTD::find_end(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>());\n}\n\n// find_first_of\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _ForwardIterator1\n__find_first_of_ce(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n              _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)\n{\n    for (; __first1 != __last1; ++__first1)\n        for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j)\n            if (__pred(*__first1, *__j))\n                return __first1;\n    return __last1;\n}\n\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator1\nfind_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n              _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)\n{\n    return _VSTD::__find_first_of_ce(__first1, __last1, __first2, __last2, __pred);\n}\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator1\nfind_first_of(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n              _ForwardIterator2 __first2, _ForwardIterator2 __last2)\n{\n    typedef typename iterator_traits<_ForwardIterator1>::value_type __v1;\n    typedef typename iterator_traits<_ForwardIterator2>::value_type __v2;\n    return _VSTD::__find_first_of_ce(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>());\n}\n\n// adjacent_find\n\ntemplate <class _ForwardIterator, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nadjacent_find(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __i = __first;\n        while (++__i != __last)\n        {\n            if (__pred(*__first, *__i))\n                return __first;\n            __first = __i;\n        }\n    }\n    return __last;\n}\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nadjacent_find(_ForwardIterator __first, _ForwardIterator __last)\n{\n    typedef typename iterator_traits<_ForwardIterator>::value_type __v;\n    return _VSTD::adjacent_find(__first, __last, __equal_to<__v>());\n}\n\n// count\n\ntemplate <class _InputIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename iterator_traits<_InputIterator>::difference_type\ncount(_InputIterator __first, _InputIterator __last, const _Tp& __value_)\n{\n    typename iterator_traits<_InputIterator>::difference_type __r(0);\n    for (; __first != __last; ++__first)\n        if (*__first == __value_)\n            ++__r;\n    return __r;\n}\n\n// count_if\n\ntemplate <class _InputIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename iterator_traits<_InputIterator>::difference_type\ncount_if(_InputIterator __first, _InputIterator __last, _Predicate __pred)\n{\n    typename iterator_traits<_InputIterator>::difference_type __r(0);\n    for (; __first != __last; ++__first)\n        if (__pred(*__first))\n            ++__r;\n    return __r;\n}\n\n// mismatch\n\ntemplate <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_InputIterator1, _InputIterator2>\nmismatch(_InputIterator1 __first1, _InputIterator1 __last1,\n         _InputIterator2 __first2, _BinaryPredicate __pred)\n{\n    for (; __first1 != __last1; ++__first1, (void) ++__first2)\n        if (!__pred(*__first1, *__first2))\n            break;\n    return pair<_InputIterator1, _InputIterator2>(__first1, __first2);\n}\n\ntemplate <class _InputIterator1, class _InputIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_InputIterator1, _InputIterator2>\nmismatch(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2)\n{\n    typedef typename iterator_traits<_InputIterator1>::value_type __v1;\n    typedef typename iterator_traits<_InputIterator2>::value_type __v2;\n    return _VSTD::mismatch(__first1, __last1, __first2, __equal_to<__v1, __v2>());\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_InputIterator1, _InputIterator2>\nmismatch(_InputIterator1 __first1, _InputIterator1 __last1,\n         _InputIterator2 __first2, _InputIterator2 __last2,\n         _BinaryPredicate __pred)\n{\n    for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2)\n        if (!__pred(*__first1, *__first2))\n            break;\n    return pair<_InputIterator1, _InputIterator2>(__first1, __first2);\n}\n\ntemplate <class _InputIterator1, class _InputIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_InputIterator1, _InputIterator2>\nmismatch(_InputIterator1 __first1, _InputIterator1 __last1,\n         _InputIterator2 __first2, _InputIterator2 __last2)\n{\n    typedef typename iterator_traits<_InputIterator1>::value_type __v1;\n    typedef typename iterator_traits<_InputIterator2>::value_type __v2;\n    return _VSTD::mismatch(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>());\n}\n#endif\n\n// equal\n\ntemplate <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nequal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _BinaryPredicate __pred)\n{\n    for (; __first1 != __last1; ++__first1, (void) ++__first2)\n        if (!__pred(*__first1, *__first2))\n            return false;\n    return true;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nequal(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2)\n{\n    typedef typename iterator_traits<_InputIterator1>::value_type __v1;\n    typedef typename iterator_traits<_InputIterator2>::value_type __v2;\n    return _VSTD::equal(__first1, __last1, __first2, __equal_to<__v1, __v2>());\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _BinaryPredicate, class _InputIterator1, class _InputIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\n__equal(_InputIterator1 __first1, _InputIterator1 __last1,\n        _InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __pred,\n        input_iterator_tag, input_iterator_tag )\n{\n    for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2)\n        if (!__pred(*__first1, *__first2))\n            return false;\n    return __first1 == __last1 && __first2 == __last2;\n}\n\ntemplate <class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\n__equal(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1,\n        _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred,\n      random_access_iterator_tag, random_access_iterator_tag )\n{\n    if ( _VSTD::distance(__first1, __last1) != _VSTD::distance(__first2, __last2))\n        return false;\n    return _VSTD::equal<_RandomAccessIterator1, _RandomAccessIterator2,\n                        typename add_lvalue_reference<_BinaryPredicate>::type>\n                       (__first1, __last1, __first2, __pred );\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nequal(_InputIterator1 __first1, _InputIterator1 __last1,\n      _InputIterator2 __first2, _InputIterator2 __last2, _BinaryPredicate __pred )\n{\n    return _VSTD::__equal<typename add_lvalue_reference<_BinaryPredicate>::type>\n       (__first1, __last1, __first2, __last2, __pred,\n        typename iterator_traits<_InputIterator1>::iterator_category(),\n        typename iterator_traits<_InputIterator2>::iterator_category());\n}\n\ntemplate <class _InputIterator1, class _InputIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nequal(_InputIterator1 __first1, _InputIterator1 __last1,\n      _InputIterator2 __first2, _InputIterator2 __last2)\n{\n    typedef typename iterator_traits<_InputIterator1>::value_type __v1;\n    typedef typename iterator_traits<_InputIterator2>::value_type __v2;\n    return _VSTD::__equal(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>(),\n        typename iterator_traits<_InputIterator1>::iterator_category(),\n        typename iterator_traits<_InputIterator2>::iterator_category());\n}\n#endif\n\n// is_permutation\n\ntemplate<class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>\nbool\nis_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n               _ForwardIterator2 __first2, _BinaryPredicate __pred)\n{\n    // shorten sequences as much as possible by lopping of any equal parts\n    for (; __first1 != __last1; ++__first1, (void) ++__first2)\n        if (!__pred(*__first1, *__first2))\n            goto __not_done;\n    return true;\n__not_done:\n    // __first1 != __last1 && *__first1 != *__first2\n    typedef typename iterator_traits<_ForwardIterator1>::difference_type _D1;\n    _D1 __l1 = _VSTD::distance(__first1, __last1);\n    if (__l1 == _D1(1))\n        return false;\n    _ForwardIterator2 __last2 = _VSTD::next(__first2, __l1);\n    // For each element in [f1, l1) see if there are the same number of\n    //    equal elements in [f2, l2)\n    for (_ForwardIterator1 __i = __first1; __i != __last1; ++__i)\n    {\n        // Have we already counted the number of *__i in [f1, l1)?\n        for (_ForwardIterator1 __j = __first1; __j != __i; ++__j)\n            if (__pred(*__j, *__i))\n                goto __next_iter;\n        {\n            // Count number of *__i in [f2, l2)\n            _D1 __c2 = 0;\n            for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j)\n                if (__pred(*__i, *__j))\n                    ++__c2;\n            if (__c2 == 0)\n                return false;\n            // Count number of *__i in [__i, l1) (we can start with 1)\n            _D1 __c1 = 1;\n            for (_ForwardIterator1 __j = _VSTD::next(__i); __j != __last1; ++__j)\n                if (__pred(*__i, *__j))\n                    ++__c1;\n            if (__c1 != __c2)\n                return false;\n        }\n__next_iter:;\n    }\n    return true;\n}\n\ntemplate<class _ForwardIterator1, class _ForwardIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nis_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n               _ForwardIterator2 __first2)\n{\n    typedef typename iterator_traits<_ForwardIterator1>::value_type __v1;\n    typedef typename iterator_traits<_ForwardIterator2>::value_type __v2;\n    return _VSTD::is_permutation(__first1, __last1, __first2, __equal_to<__v1, __v2>());\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate<class _BinaryPredicate, class _ForwardIterator1, class _ForwardIterator2>\nbool\n__is_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n                 _ForwardIterator2 __first2, _ForwardIterator2 __last2,\n                 _BinaryPredicate __pred,\n                 forward_iterator_tag, forward_iterator_tag )\n{\n    // shorten sequences as much as possible by lopping of any equal parts\n    for (; __first1 != __last1 && __first2 != __last2; ++__first1, (void) ++__first2)\n        if (!__pred(*__first1, *__first2))\n            goto __not_done;\n    return __first1 == __last1 && __first2 == __last2;\n__not_done:\n    // __first1 != __last1 && __first2 != __last2 && *__first1 != *__first2\n    typedef typename iterator_traits<_ForwardIterator1>::difference_type _D1;\n    _D1 __l1 = _VSTD::distance(__first1, __last1);\n\n    typedef typename iterator_traits<_ForwardIterator2>::difference_type _D2;\n    _D2 __l2 = _VSTD::distance(__first2, __last2);\n    if (__l1 != __l2)\n        return false;\n\n    // For each element in [f1, l1) see if there are the same number of\n    //    equal elements in [f2, l2)\n    for (_ForwardIterator1 __i = __first1; __i != __last1; ++__i)\n    {\n        // Have we already counted the number of *__i in [f1, l1)?\n        for (_ForwardIterator1 __j = __first1; __j != __i; ++__j)\n            if (__pred(*__j, *__i))\n                goto __next_iter;\n        {\n            // Count number of *__i in [f2, l2)\n            _D1 __c2 = 0;\n            for (_ForwardIterator2 __j = __first2; __j != __last2; ++__j)\n                if (__pred(*__i, *__j))\n                    ++__c2;\n            if (__c2 == 0)\n                return false;\n            // Count number of *__i in [__i, l1) (we can start with 1)\n            _D1 __c1 = 1;\n            for (_ForwardIterator1 __j = _VSTD::next(__i); __j != __last1; ++__j)\n                if (__pred(*__i, *__j))\n                    ++__c1;\n            if (__c1 != __c2)\n                return false;\n        }\n__next_iter:;\n    }\n    return true;\n}\n\ntemplate<class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2>\nbool\n__is_permutation(_RandomAccessIterator1 __first1, _RandomAccessIterator2 __last1,\n               _RandomAccessIterator1 __first2, _RandomAccessIterator2 __last2,\n               _BinaryPredicate __pred,\n               random_access_iterator_tag, random_access_iterator_tag )\n{\n    if ( _VSTD::distance(__first1, __last1) != _VSTD::distance(__first2, __last2))\n        return false;\n    return _VSTD::is_permutation<_RandomAccessIterator1, _RandomAccessIterator2,\n                                 typename add_lvalue_reference<_BinaryPredicate>::type>\n                                (__first1, __last1, __first2, __pred );\n}\n\ntemplate<class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nis_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n               _ForwardIterator2 __first2, _ForwardIterator2 __last2,\n               _BinaryPredicate __pred )\n{\n    return _VSTD::__is_permutation<typename add_lvalue_reference<_BinaryPredicate>::type>\n       (__first1, __last1, __first2, __last2, __pred,\n        typename iterator_traits<_ForwardIterator1>::iterator_category(),\n        typename iterator_traits<_ForwardIterator2>::iterator_category());\n}\n\ntemplate<class _ForwardIterator1, class _ForwardIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nis_permutation(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n               _ForwardIterator2 __first2, _ForwardIterator2 __last2)\n{\n    typedef typename iterator_traits<_ForwardIterator1>::value_type __v1;\n    typedef typename iterator_traits<_ForwardIterator2>::value_type __v2;\n    return _VSTD::__is_permutation(__first1, __last1, __first2, __last2,\n        __equal_to<__v1, __v2>(),\n        typename iterator_traits<_ForwardIterator1>::iterator_category(),\n        typename iterator_traits<_ForwardIterator2>::iterator_category());\n}\n#endif\n\n// search\n\ntemplate <class _BinaryPredicate, class _ForwardIterator1, class _ForwardIterator2>\npair<_ForwardIterator1, _ForwardIterator1>\n__search(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n         _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred,\n         forward_iterator_tag, forward_iterator_tag)\n{\n    if (__first2 == __last2)\n        return make_pair(__first1, __first1);  // Everything matches an empty sequence\n    while (true)\n    {\n        // Find first element in sequence 1 that matchs *__first2, with a mininum of loop checks\n        while (true)\n        {\n            if (__first1 == __last1)  // return __last1 if no element matches *__first2\n                return make_pair(__last1, __last1);\n            if (__pred(*__first1, *__first2))\n                break;\n            ++__first1;\n        }\n        // *__first1 matches *__first2, now match elements after here\n        _ForwardIterator1 __m1 = __first1;\n        _ForwardIterator2 __m2 = __first2;\n        while (true)\n        {\n            if (++__m2 == __last2)  // If pattern exhausted, __first1 is the answer (works for 1 element pattern)\n                return make_pair(__first1, __m1);\n            if (++__m1 == __last1)  // Otherwise if source exhaused, pattern not found\n                return make_pair(__last1, __last1);\n            if (!__pred(*__m1, *__m2))  // if there is a mismatch, restart with a new __first1\n            {\n                ++__first1;\n                break;\n            }  // else there is a match, check next elements\n        }\n    }\n}\n\ntemplate <class _BinaryPredicate, class _RandomAccessIterator1, class _RandomAccessIterator2>\n_LIBCPP_CONSTEXPR_AFTER_CXX11\npair<_RandomAccessIterator1, _RandomAccessIterator1>\n__search(_RandomAccessIterator1 __first1, _RandomAccessIterator1 __last1,\n         _RandomAccessIterator2 __first2, _RandomAccessIterator2 __last2, _BinaryPredicate __pred,\n           random_access_iterator_tag, random_access_iterator_tag)\n{\n    typedef typename iterator_traits<_RandomAccessIterator1>::difference_type _D1;\n    typedef typename iterator_traits<_RandomAccessIterator2>::difference_type _D2;\n    // Take advantage of knowing source and pattern lengths.  Stop short when source is smaller than pattern\n    const _D2 __len2 = __last2 - __first2;\n    if (__len2 == 0)\n        return make_pair(__first1, __first1);\n    const _D1 __len1 = __last1 - __first1;\n    if (__len1 < __len2)\n        return make_pair(__last1, __last1);\n    const _RandomAccessIterator1 __s = __last1 - (__len2 - 1);  // Start of pattern match can't go beyond here\n\n    while (true)\n    {\n        while (true)\n        {\n            if (__first1 == __s)\n                return make_pair(__last1, __last1);\n            if (__pred(*__first1, *__first2))\n                break;\n            ++__first1;\n        }\n\n        _RandomAccessIterator1 __m1 = __first1;\n        _RandomAccessIterator2 __m2 = __first2;\n         while (true)\n         {\n             if (++__m2 == __last2)\n                 return make_pair(__first1, __first1 + __len2);\n             ++__m1;          // no need to check range on __m1 because __s guarantees we have enough source\n             if (!__pred(*__m1, *__m2))\n             {\n                 ++__first1;\n                 break;\n             }\n         }\n    }\n}\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator1\nsearch(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n       _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __pred)\n{\n    return _VSTD::__search<typename add_lvalue_reference<_BinaryPredicate>::type>\n                         (__first1, __last1, __first2, __last2, __pred,\n                          typename iterator_traits<_ForwardIterator1>::iterator_category(),\n                          typename iterator_traits<_ForwardIterator2>::iterator_category())\n            .first;\n}\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator1\nsearch(_ForwardIterator1 __first1, _ForwardIterator1 __last1,\n       _ForwardIterator2 __first2, _ForwardIterator2 __last2)\n{\n    typedef typename iterator_traits<_ForwardIterator1>::value_type __v1;\n    typedef typename iterator_traits<_ForwardIterator2>::value_type __v2;\n    return _VSTD::search(__first1, __last1, __first2, __last2, __equal_to<__v1, __v2>());\n}\n\n// search_n\n\ntemplate <class _BinaryPredicate, class _ForwardIterator, class _Size, class _Tp>\n_ForwardIterator\n__search_n(_ForwardIterator __first, _ForwardIterator __last,\n           _Size __count, const _Tp& __value_, _BinaryPredicate __pred, forward_iterator_tag)\n{\n    if (__count <= 0)\n        return __first;\n    while (true)\n    {\n        // Find first element in sequence that matchs __value_, with a mininum of loop checks\n        while (true)\n        {\n            if (__first == __last)  // return __last if no element matches __value_\n                return __last;\n            if (__pred(*__first, __value_))\n                break;\n            ++__first;\n        }\n        // *__first matches __value_, now match elements after here\n        _ForwardIterator __m = __first;\n        _Size __c(0);\n        while (true)\n        {\n            if (++__c == __count)  // If pattern exhausted, __first is the answer (works for 1 element pattern)\n                return __first;\n            if (++__m == __last)  // Otherwise if source exhaused, pattern not found\n                return __last;\n            if (!__pred(*__m, __value_))  // if there is a mismatch, restart with a new __first\n            {\n                __first = __m;\n                ++__first;\n                break;\n            }  // else there is a match, check next elements\n        }\n    }\n}\n\ntemplate <class _BinaryPredicate, class _RandomAccessIterator, class _Size, class _Tp>\n_RandomAccessIterator\n__search_n(_RandomAccessIterator __first, _RandomAccessIterator __last,\n           _Size __count, const _Tp& __value_, _BinaryPredicate __pred, random_access_iterator_tag)\n{\n    if (__count <= 0)\n        return __first;\n    _Size __len = static_cast<_Size>(__last - __first);\n    if (__len < __count)\n        return __last;\n    const _RandomAccessIterator __s = __last - (__count - 1);  // Start of pattern match can't go beyond here\n    while (true)\n    {\n        // Find first element in sequence that matchs __value_, with a mininum of loop checks\n        while (true)\n        {\n            if (__first >= __s)  // return __last if no element matches __value_\n                return __last;\n            if (__pred(*__first, __value_))\n                break;\n            ++__first;\n        }\n        // *__first matches __value_, now match elements after here\n        _RandomAccessIterator __m = __first;\n        _Size __c(0);\n        while (true)\n        {\n            if (++__c == __count)  // If pattern exhausted, __first is the answer (works for 1 element pattern)\n                return __first;\n             ++__m;          // no need to check range on __m because __s guarantees we have enough source\n            if (!__pred(*__m, __value_))  // if there is a mismatch, restart with a new __first\n            {\n                __first = __m;\n                ++__first;\n                break;\n            }  // else there is a match, check next elements\n        }\n    }\n}\n\ntemplate <class _ForwardIterator, class _Size, class _Tp, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nsearch_n(_ForwardIterator __first, _ForwardIterator __last,\n         _Size __count, const _Tp& __value_, _BinaryPredicate __pred)\n{\n    return _VSTD::__search_n<typename add_lvalue_reference<_BinaryPredicate>::type>\n           (__first, __last, __convert_to_integral(__count), __value_, __pred,\n           typename iterator_traits<_ForwardIterator>::iterator_category());\n}\n\ntemplate <class _ForwardIterator, class _Size, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nsearch_n(_ForwardIterator __first, _ForwardIterator __last, _Size __count, const _Tp& __value_)\n{\n    typedef typename iterator_traits<_ForwardIterator>::value_type __v;\n    return _VSTD::search_n(__first, __last, __convert_to_integral(__count),\n                           __value_, __equal_to<__v, _Tp>());\n}\n\n// copy\ntemplate <class _Iter>\ninline _LIBCPP_INLINE_VISIBILITY\n_Iter\n__unwrap_iter(_Iter __i)\n{\n    return __i;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_trivially_copy_assignable<_Tp>::value,\n    _Tp*\n>::type\n__unwrap_iter(move_iterator<_Tp*> __i)\n{\n    return __i.base();\n}\n\n#if _LIBCPP_DEBUG_LEVEL < 2\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_trivially_copy_assignable<_Tp>::value,\n    _Tp*\n>::type\n__unwrap_iter(__wrap_iter<_Tp*> __i)\n{\n    return __i.base();\n}\n\n#else\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_trivially_copy_assignable<_Tp>::value,\n    __wrap_iter<_Tp*>\n>::type\n__unwrap_iter(__wrap_iter<_Tp*> __i)\n{\n    return __i;\n}\n\n#endif  // _LIBCPP_DEBUG_LEVEL < 2\n\ntemplate <class _InputIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\n__copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result)\n{\n    for (; __first != __last; ++__first, (void) ++__result)\n        *__result = *__first;\n    return __result;\n}\n\ntemplate <class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_same<typename remove_const<_Tp>::type, _Up>::value &&\n    is_trivially_copy_assignable<_Up>::value,\n    _Up*\n>::type\n__copy(_Tp* __first, _Tp* __last, _Up* __result)\n{\n    const size_t __n = static_cast<size_t>(__last - __first);\n    if (__n > 0)\n        _VSTD::memmove(__result, __first, __n * sizeof(_Up));\n    return __result + __n;\n}\n\ntemplate <class _InputIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\ncopy(_InputIterator __first, _InputIterator __last, _OutputIterator __result)\n{\n    return _VSTD::__copy(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result));\n}\n\n// copy_backward\n\ntemplate <class _BidirectionalIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\n__copy_backward(_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result)\n{\n    while (__first != __last)\n        *--__result = *--__last;\n    return __result;\n}\n\ntemplate <class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_same<typename remove_const<_Tp>::type, _Up>::value &&\n    is_trivially_copy_assignable<_Up>::value,\n    _Up*\n>::type\n__copy_backward(_Tp* __first, _Tp* __last, _Up* __result)\n{\n    const size_t __n = static_cast<size_t>(__last - __first);\n    if (__n > 0)\n    {\n        __result -= __n;\n        _VSTD::memmove(__result, __first, __n * sizeof(_Up));\n    }\n    return __result;\n}\n\ntemplate <class _BidirectionalIterator1, class _BidirectionalIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\n_BidirectionalIterator2\ncopy_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last,\n              _BidirectionalIterator2 __result)\n{\n    return _VSTD::__copy_backward(__unwrap_iter(__first),\n                                  __unwrap_iter(__last),\n                                  __unwrap_iter(__result));\n}\n\n// copy_if\n\ntemplate<class _InputIterator, class _OutputIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\ncopy_if(_InputIterator __first, _InputIterator __last,\n        _OutputIterator __result, _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n    {\n        if (__pred(*__first))\n        {\n            *__result = *__first;\n            ++__result;\n        }\n    }\n    return __result;\n}\n\n// copy_n\n\ntemplate<class _InputIterator, class _Size, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_input_iterator<_InputIterator>::value &&\n   !__is_random_access_iterator<_InputIterator>::value,\n    _OutputIterator\n>::type\ncopy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result)\n{\n    typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize;\n    _IntegralSize __n = __orig_n;\n    if (__n > 0)\n    {\n        *__result = *__first;\n        ++__result;\n        for (--__n; __n > 0; --__n)\n        {\n            ++__first;\n            *__result = *__first;\n            ++__result;\n        }\n    }\n    return __result;\n}\n\ntemplate<class _InputIterator, class _Size, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_random_access_iterator<_InputIterator>::value,\n    _OutputIterator\n>::type\ncopy_n(_InputIterator __first, _Size __orig_n, _OutputIterator __result)\n{\n    typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize;\n    _IntegralSize __n = __orig_n;\n    return _VSTD::copy(__first, __first + __n, __result);\n}\n\n// move\n\ntemplate <class _InputIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\n__move(_InputIterator __first, _InputIterator __last, _OutputIterator __result)\n{\n    for (; __first != __last; ++__first, (void) ++__result)\n        *__result = _VSTD::move(*__first);\n    return __result;\n}\n\ntemplate <class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_same<typename remove_const<_Tp>::type, _Up>::value &&\n    is_trivially_copy_assignable<_Up>::value,\n    _Up*\n>::type\n__move(_Tp* __first, _Tp* __last, _Up* __result)\n{\n    const size_t __n = static_cast<size_t>(__last - __first);\n    if (__n > 0)\n        _VSTD::memmove(__result, __first, __n * sizeof(_Up));\n    return __result + __n;\n}\n\ntemplate <class _InputIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nmove(_InputIterator __first, _InputIterator __last, _OutputIterator __result)\n{\n    return _VSTD::__move(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result));\n}\n\n// move_backward\n\ntemplate <class _InputIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\n__move_backward(_InputIterator __first, _InputIterator __last, _OutputIterator __result)\n{\n    while (__first != __last)\n        *--__result = _VSTD::move(*--__last);\n    return __result;\n}\n\ntemplate <class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_same<typename remove_const<_Tp>::type, _Up>::value &&\n    is_trivially_copy_assignable<_Up>::value,\n    _Up*\n>::type\n__move_backward(_Tp* __first, _Tp* __last, _Up* __result)\n{\n    const size_t __n = static_cast<size_t>(__last - __first);\n    if (__n > 0)\n    {\n        __result -= __n;\n        _VSTD::memmove(__result, __first, __n * sizeof(_Up));\n    }\n    return __result;\n}\n\ntemplate <class _BidirectionalIterator1, class _BidirectionalIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\n_BidirectionalIterator2\nmove_backward(_BidirectionalIterator1 __first, _BidirectionalIterator1 __last,\n              _BidirectionalIterator2 __result)\n{\n    return _VSTD::__move_backward(__unwrap_iter(__first), __unwrap_iter(__last), __unwrap_iter(__result));\n}\n\n// iter_swap\n\n// moved to <type_traits> for better swap / noexcept support\n\n// transform\n\ntemplate <class _InputIterator, class _OutputIterator, class _UnaryOperation>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\ntransform(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __op)\n{\n    for (; __first != __last; ++__first, (void) ++__result)\n        *__result = __op(*__first);\n    return __result;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _BinaryOperation>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\ntransform(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,\n          _OutputIterator __result, _BinaryOperation __binary_op)\n{\n    for (; __first1 != __last1; ++__first1, (void) ++__first2, ++__result)\n        *__result = __binary_op(*__first1, *__first2);\n    return __result;\n}\n\n// replace\n\ntemplate <class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nreplace(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __old_value, const _Tp& __new_value)\n{\n    for (; __first != __last; ++__first)\n        if (*__first == __old_value)\n            *__first = __new_value;\n}\n\n// replace_if\n\ntemplate <class _ForwardIterator, class _Predicate, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nreplace_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp& __new_value)\n{\n    for (; __first != __last; ++__first)\n        if (__pred(*__first))\n            *__first = __new_value;\n}\n\n// replace_copy\n\ntemplate <class _InputIterator, class _OutputIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nreplace_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result,\n             const _Tp& __old_value, const _Tp& __new_value)\n{\n    for (; __first != __last; ++__first, (void) ++__result)\n        if (*__first == __old_value)\n            *__result = __new_value;\n        else\n            *__result = *__first;\n    return __result;\n}\n\n// replace_copy_if\n\ntemplate <class _InputIterator, class _OutputIterator, class _Predicate, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nreplace_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result,\n                _Predicate __pred, const _Tp& __new_value)\n{\n    for (; __first != __last; ++__first, (void) ++__result)\n        if (__pred(*__first))\n            *__result = __new_value;\n        else\n            *__result = *__first;\n    return __result;\n}\n\n// fill_n\n\ntemplate <class _OutputIterator, class _Size, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\n__fill_n(_OutputIterator __first, _Size __n, const _Tp& __value_)\n{\n    for (; __n > 0; ++__first, (void) --__n)\n        *__first = __value_;\n    return __first;\n}\n\ntemplate <class _Tp, class _Size, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && sizeof(_Tp) == 1 &&\n    !is_same<_Tp, bool>::value &&\n    is_integral<_Up>::value && sizeof(_Up) == 1,\n    _Tp*\n>::type\n__fill_n(_Tp* __first, _Size __n,_Up __value_)\n{\n    if (__n > 0)\n        _VSTD::memset(__first, (unsigned char)__value_, (size_t)(__n));\n    return __first + __n;\n}\n\ntemplate <class _OutputIterator, class _Size, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nfill_n(_OutputIterator __first, _Size __n, const _Tp& __value_)\n{\n   return _VSTD::__fill_n(__first, __convert_to_integral(__n), __value_);\n}\n\n// fill\n\ntemplate <class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__fill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, forward_iterator_tag)\n{\n    for (; __first != __last; ++__first)\n        *__first = __value_;\n}\n\ntemplate <class _RandomAccessIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__fill(_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp& __value_, random_access_iterator_tag)\n{\n    _VSTD::fill_n(__first, __last - __first, __value_);\n}\n\ntemplate <class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nfill(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_)\n{\n    _VSTD::__fill(__first, __last, __value_, typename iterator_traits<_ForwardIterator>::iterator_category());\n}\n\n// generate\n\ntemplate <class _ForwardIterator, class _Generator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\ngenerate(_ForwardIterator __first, _ForwardIterator __last, _Generator __gen)\n{\n    for (; __first != __last; ++__first)\n        *__first = __gen();\n}\n\n// generate_n\n\ntemplate <class _OutputIterator, class _Size, class _Generator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\ngenerate_n(_OutputIterator __first, _Size __orig_n, _Generator __gen)\n{\n    typedef decltype(__convert_to_integral(__orig_n)) _IntegralSize;\n    _IntegralSize __n = __orig_n;\n    for (; __n > 0; ++__first, (void) --__n)\n        *__first = __gen();\n    return __first;\n}\n\n// remove\n\ntemplate <class _ForwardIterator, class _Tp>\n_ForwardIterator\nremove(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_)\n{\n    __first = _VSTD::find(__first, __last, __value_);\n    if (__first != __last)\n    {\n        _ForwardIterator __i = __first;\n        while (++__i != __last)\n        {\n            if (!(*__i == __value_))\n            {\n                *__first = _VSTD::move(*__i);\n                ++__first;\n            }\n        }\n    }\n    return __first;\n}\n\n// remove_if\n\ntemplate <class _ForwardIterator, class _Predicate>\n_ForwardIterator\nremove_if(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)\n{\n    __first = _VSTD::find_if<_ForwardIterator, typename add_lvalue_reference<_Predicate>::type>\n                           (__first, __last, __pred);\n    if (__first != __last)\n    {\n        _ForwardIterator __i = __first;\n        while (++__i != __last)\n        {\n            if (!__pred(*__i))\n            {\n                *__first = _VSTD::move(*__i);\n                ++__first;\n            }\n        }\n    }\n    return __first;\n}\n\n// remove_copy\n\ntemplate <class _InputIterator, class _OutputIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nremove_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp& __value_)\n{\n    for (; __first != __last; ++__first)\n    {\n        if (!(*__first == __value_))\n        {\n            *__result = *__first;\n            ++__result;\n        }\n    }\n    return __result;\n}\n\n// remove_copy_if\n\ntemplate <class _InputIterator, class _OutputIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nremove_copy_if(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n    {\n        if (!__pred(*__first))\n        {\n            *__result = *__first;\n            ++__result;\n        }\n    }\n    return __result;\n}\n\n// unique\n\ntemplate <class _ForwardIterator, class _BinaryPredicate>\n_ForwardIterator\nunique(_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __pred)\n{\n    __first = _VSTD::adjacent_find<_ForwardIterator, typename add_lvalue_reference<_BinaryPredicate>::type>\n                                 (__first, __last, __pred);\n    if (__first != __last)\n    {\n        // ...  a  a  ?  ...\n        //      f     i\n        _ForwardIterator __i = __first;\n        for (++__i; ++__i != __last;)\n            if (!__pred(*__first, *__i))\n                *++__first = _VSTD::move(*__i);\n        ++__first;\n    }\n    return __first;\n}\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nunique(_ForwardIterator __first, _ForwardIterator __last)\n{\n    typedef typename iterator_traits<_ForwardIterator>::value_type __v;\n    return _VSTD::unique(__first, __last, __equal_to<__v>());\n}\n\n// unique_copy\n\ntemplate <class _BinaryPredicate, class _InputIterator, class _OutputIterator>\n_OutputIterator\n__unique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __pred,\n              input_iterator_tag, output_iterator_tag)\n{\n    if (__first != __last)\n    {\n        typename iterator_traits<_InputIterator>::value_type __t(*__first);\n        *__result = __t;\n        ++__result;\n        while (++__first != __last)\n        {\n            if (!__pred(__t, *__first))\n            {\n                __t = *__first;\n                *__result = __t;\n                ++__result;\n            }\n        }\n    }\n    return __result;\n}\n\ntemplate <class _BinaryPredicate, class _ForwardIterator, class _OutputIterator>\n_OutputIterator\n__unique_copy(_ForwardIterator __first, _ForwardIterator __last, _OutputIterator __result, _BinaryPredicate __pred,\n              forward_iterator_tag, output_iterator_tag)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __i = __first;\n        *__result = *__i;\n        ++__result;\n        while (++__first != __last)\n        {\n            if (!__pred(*__i, *__first))\n            {\n                *__result = *__first;\n                ++__result;\n                __i = __first;\n            }\n        }\n    }\n    return __result;\n}\n\ntemplate <class _BinaryPredicate, class _InputIterator, class _ForwardIterator>\n_ForwardIterator\n__unique_copy(_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _BinaryPredicate __pred,\n              input_iterator_tag, forward_iterator_tag)\n{\n    if (__first != __last)\n    {\n        *__result = *__first;\n        while (++__first != __last)\n            if (!__pred(*__result, *__first))\n                *++__result = *__first;\n        ++__result;\n    }\n    return __result;\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _BinaryPredicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nunique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __pred)\n{\n    return _VSTD::__unique_copy<typename add_lvalue_reference<_BinaryPredicate>::type>\n                              (__first, __last, __result, __pred,\n                               typename iterator_traits<_InputIterator>::iterator_category(),\n                               typename iterator_traits<_OutputIterator>::iterator_category());\n}\n\ntemplate <class _InputIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nunique_copy(_InputIterator __first, _InputIterator __last, _OutputIterator __result)\n{\n    typedef typename iterator_traits<_InputIterator>::value_type __v;\n    return _VSTD::unique_copy(__first, __last, __result, __equal_to<__v>());\n}\n\n// reverse\n\ntemplate <class _BidirectionalIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__reverse(_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag)\n{\n    while (__first != __last)\n    {\n        if (__first == --__last)\n            break;\n        _VSTD::iter_swap(__first, __last);\n        ++__first;\n    }\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__reverse(_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag)\n{\n    if (__first != __last)\n        for (; __first < --__last; ++__first)\n            _VSTD::iter_swap(__first, __last);\n}\n\ntemplate <class _BidirectionalIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nreverse(_BidirectionalIterator __first, _BidirectionalIterator __last)\n{\n    _VSTD::__reverse(__first, __last, typename iterator_traits<_BidirectionalIterator>::iterator_category());\n}\n\n// reverse_copy\n\ntemplate <class _BidirectionalIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nreverse_copy(_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result)\n{\n    for (; __first != __last; ++__result)\n        *__result = *--__last;\n    return __result;\n}\n\n// rotate\n\ntemplate <class _ForwardIterator>\n_ForwardIterator\n__rotate_left(_ForwardIterator __first, _ForwardIterator __last)\n{\n    typedef typename iterator_traits<_ForwardIterator>::value_type value_type;\n    value_type __tmp = _VSTD::move(*__first);\n    _ForwardIterator __lm1 = _VSTD::move(_VSTD::next(__first), __last, __first);\n    *__lm1 = _VSTD::move(__tmp);\n    return __lm1;\n}\n\ntemplate <class _BidirectionalIterator>\n_BidirectionalIterator\n__rotate_right(_BidirectionalIterator __first, _BidirectionalIterator __last)\n{\n    typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type;\n    _BidirectionalIterator __lm1 = _VSTD::prev(__last);\n    value_type __tmp = _VSTD::move(*__lm1);\n    _BidirectionalIterator __fp1 = _VSTD::move_backward(__first, __lm1, __last);\n    *__first = _VSTD::move(__tmp);\n    return __fp1;\n}\n\ntemplate <class _ForwardIterator>\n_ForwardIterator\n__rotate_forward(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last)\n{\n    _ForwardIterator __i = __middle;\n    while (true)\n    {\n        swap(*__first, *__i);\n        ++__first;\n        if (++__i == __last)\n            break;\n        if (__first == __middle)\n            __middle = __i;\n    }\n    _ForwardIterator __r = __first;\n    if (__first != __middle)\n    {\n        __i = __middle;\n        while (true)\n        {\n            swap(*__first, *__i);\n            ++__first;\n            if (++__i == __last)\n            {\n                if (__first == __middle)\n                    break;\n                __i = __middle;\n            }\n            else if (__first == __middle)\n                __middle = __i;\n        }\n    }\n    return __r;\n}\n\ntemplate<typename _Integral>\ninline _LIBCPP_INLINE_VISIBILITY\n_Integral\n__algo_gcd(_Integral __x, _Integral __y)\n{\n    do\n    {\n        _Integral __t = __x % __y;\n        __x = __y;\n        __y = __t;\n    } while (__y);\n    return __x;\n}\n\ntemplate<typename _RandomAccessIterator>\n_RandomAccessIterator\n__rotate_gcd(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n\n    const difference_type __m1 = __middle - __first;\n    const difference_type __m2 = __last - __middle;\n    if (__m1 == __m2)\n    {\n        _VSTD::swap_ranges(__first, __middle, __middle);\n        return __middle;\n    }\n    const difference_type __g = _VSTD::__algo_gcd(__m1, __m2);\n    for (_RandomAccessIterator __p = __first + __g; __p != __first;)\n    {\n        value_type __t(_VSTD::move(*--__p));\n        _RandomAccessIterator __p1 = __p;\n        _RandomAccessIterator __p2 = __p1 + __m1;\n        do\n        {\n            *__p1 = _VSTD::move(*__p2);\n            __p1 = __p2;\n            const difference_type __d = __last - __p2;\n            if (__m1 < __d)\n                __p2 += __m1;\n            else\n                __p2 = __first + (__m1 - __d);\n        } while (__p2 != __p);\n        *__p1 = _VSTD::move(__t);\n    }\n    return __first + __m2;\n}\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\n__rotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last,\n         _VSTD::forward_iterator_tag)\n{\n    typedef typename _VSTD::iterator_traits<_ForwardIterator>::value_type value_type;\n    if (_VSTD::is_trivially_move_assignable<value_type>::value)\n    {\n        if (_VSTD::next(__first) == __middle)\n            return _VSTD::__rotate_left(__first, __last);\n    }\n    return _VSTD::__rotate_forward(__first, __middle, __last);\n}\n\ntemplate <class _BidirectionalIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_BidirectionalIterator\n__rotate(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last,\n         _VSTD::bidirectional_iterator_tag)\n{\n    typedef typename _VSTD::iterator_traits<_BidirectionalIterator>::value_type value_type;\n    if (_VSTD::is_trivially_move_assignable<value_type>::value)\n    {\n        if (_VSTD::next(__first) == __middle)\n            return _VSTD::__rotate_left(__first, __last);\n        if (_VSTD::next(__middle) == __last)\n            return _VSTD::__rotate_right(__first, __last);\n    }\n    return _VSTD::__rotate_forward(__first, __middle, __last);\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_RandomAccessIterator\n__rotate(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last,\n         _VSTD::random_access_iterator_tag)\n{\n    typedef typename _VSTD::iterator_traits<_RandomAccessIterator>::value_type value_type;\n    if (_VSTD::is_trivially_move_assignable<value_type>::value)\n    {\n        if (_VSTD::next(__first) == __middle)\n            return _VSTD::__rotate_left(__first, __last);\n        if (_VSTD::next(__middle) == __last)\n            return _VSTD::__rotate_right(__first, __last);\n        return _VSTD::__rotate_gcd(__first, __middle, __last);\n    }\n    return _VSTD::__rotate_forward(__first, __middle, __last);\n}\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nrotate(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last)\n{\n    if (__first == __middle)\n        return __last;\n    if (__middle == __last)\n        return __first;\n    return _VSTD::__rotate(__first, __middle, __last,\n                           typename _VSTD::iterator_traits<_ForwardIterator>::iterator_category());\n}\n\n// rotate_copy\n\ntemplate <class _ForwardIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nrotate_copy(_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, _OutputIterator __result)\n{\n    return _VSTD::copy(__first, __middle, _VSTD::copy(__middle, __last, __result));\n}\n\n// min_element\n\ntemplate <class _ForwardIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_ForwardIterator\nmin_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __i = __first;\n        while (++__i != __last)\n            if (__comp(*__i, *__first))\n                __first = __i;\n    }\n    return __first;\n}\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_ForwardIterator\nmin_element(_ForwardIterator __first, _ForwardIterator __last)\n{\n    return _VSTD::min_element(__first, __last,\n              __less<typename iterator_traits<_ForwardIterator>::value_type>());\n}\n\n// min\n\ntemplate <class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Tp&\nmin(const _Tp& __a, const _Tp& __b, _Compare __comp)\n{\n    return __comp(__b, __a) ? __b : __a;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Tp&\nmin(const _Tp& __a, const _Tp& __b)\n{\n    return _VSTD::min(__a, __b, __less<_Tp>());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp\nmin(initializer_list<_Tp> __t, _Compare __comp)\n{\n    return *_VSTD::min_element(__t.begin(), __t.end(), __comp);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp\nmin(initializer_list<_Tp> __t)\n{\n    return *_VSTD::min_element(__t.begin(), __t.end(), __less<_Tp>());\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n// max_element\n\ntemplate <class _ForwardIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_ForwardIterator\nmax_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __i = __first;\n        while (++__i != __last)\n            if (__comp(*__first, *__i))\n                __first = __i;\n    }\n    return __first;\n}\n\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_ForwardIterator\nmax_element(_ForwardIterator __first, _ForwardIterator __last)\n{\n    return _VSTD::max_element(__first, __last,\n              __less<typename iterator_traits<_ForwardIterator>::value_type>());\n}\n\n// max\n\ntemplate <class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Tp&\nmax(const _Tp& __a, const _Tp& __b, _Compare __comp)\n{\n    return __comp(__a, __b) ? __b : __a;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Tp&\nmax(const _Tp& __a, const _Tp& __b)\n{\n    return _VSTD::max(__a, __b, __less<_Tp>());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp\nmax(initializer_list<_Tp> __t, _Compare __comp)\n{\n    return *_VSTD::max_element(__t.begin(), __t.end(), __comp);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp\nmax(initializer_list<_Tp> __t)\n{\n    return *_VSTD::max_element(__t.begin(), __t.end(), __less<_Tp>());\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n#if _LIBCPP_STD_VER > 14\n// clamp\ntemplate<class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\nconst _Tp&\nclamp(const _Tp& __v, const _Tp& __lo, const _Tp& __hi, _Compare __comp)\n{\n    _LIBCPP_ASSERT(!__comp(__hi, __lo), \"Bad bounds passed to std::clamp\");\n    return __comp(__v, __lo) ? __lo : __comp(__hi, __v) ? __hi : __v;\n\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\nconst _Tp&\nclamp(const _Tp& __v, const _Tp& __lo, const _Tp& __hi)\n{\n    return _VSTD::clamp(__v, __lo, __hi, __less<_Tp>());\n}\n#endif\n\n// minmax_element\n\ntemplate <class _ForwardIterator, class _Compare>\n_LIBCPP_CONSTEXPR_AFTER_CXX11\nstd::pair<_ForwardIterator, _ForwardIterator>\nminmax_element(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)\n{\n  std::pair<_ForwardIterator, _ForwardIterator> __result(__first, __first);\n  if (__first != __last)\n  {\n      if (++__first != __last)\n      {\n          if (__comp(*__first, *__result.first))\n              __result.first = __first;\n          else\n              __result.second = __first;\n          while (++__first != __last)\n          {\n              _ForwardIterator __i = __first;\n              if (++__first == __last)\n              {\n                  if (__comp(*__i, *__result.first))\n                      __result.first = __i;\n                  else if (!__comp(*__i, *__result.second))\n                      __result.second = __i;\n                  break;\n              }\n              else\n              {\n                  if (__comp(*__first, *__i))\n                  {\n                      if (__comp(*__first, *__result.first))\n                          __result.first = __first;\n                      if (!__comp(*__i, *__result.second))\n                          __result.second = __i;\n                  }\n                  else\n                  {\n                      if (__comp(*__i, *__result.first))\n                          __result.first = __i;\n                      if (!__comp(*__first, *__result.second))\n                          __result.second = __first;\n                  }\n              }\n          }\n      }\n  }\n  return __result;\n}\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nstd::pair<_ForwardIterator, _ForwardIterator>\nminmax_element(_ForwardIterator __first, _ForwardIterator __last)\n{\n    return _VSTD::minmax_element(__first, __last,\n              __less<typename iterator_traits<_ForwardIterator>::value_type>());\n}\n\n// minmax\n\ntemplate<class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\npair<const _Tp&, const _Tp&>\nminmax(const _Tp& __a, const _Tp& __b, _Compare __comp)\n{\n    return __comp(__b, __a) ? pair<const _Tp&, const _Tp&>(__b, __a) :\n                              pair<const _Tp&, const _Tp&>(__a, __b);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\npair<const _Tp&, const _Tp&>\nminmax(const _Tp& __a, const _Tp& __b)\n{\n    return _VSTD::minmax(__a, __b, __less<_Tp>());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\npair<_Tp, _Tp>\nminmax(initializer_list<_Tp> __t, _Compare __comp)\n{\n    typedef typename initializer_list<_Tp>::const_iterator _Iter;\n    _Iter __first = __t.begin();\n    _Iter __last  = __t.end();\n    std::pair<_Tp, _Tp> __result(*__first, *__first);\n\n    ++__first;\n    if (__t.size() % 2 == 0)\n    {\n        if (__comp(*__first,  __result.first))\n            __result.first  = *__first;\n        else\n            __result.second = *__first;\n        ++__first;\n    }\n\n    while (__first != __last)\n    {\n        _Tp __prev = *__first++;\n        if (__comp(*__first, __prev)) {\n            if ( __comp(*__first, __result.first)) __result.first  = *__first;\n            if (!__comp(__prev, __result.second))  __result.second = __prev;\n            }\n        else {\n            if ( __comp(__prev, __result.first))    __result.first  = __prev;\n            if (!__comp(*__first, __result.second)) __result.second = *__first;\n            }\n\n        __first++;\n    }\n    return __result;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\npair<_Tp, _Tp>\nminmax(initializer_list<_Tp> __t)\n{\n    return _VSTD::minmax(__t, __less<_Tp>());\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n// random_shuffle\n\n// __independent_bits_engine\n\ntemplate <unsigned long long _Xp, size_t _Rp>\nstruct __log2_imp\n{\n    static const size_t value = _Xp & ((unsigned long long)(1) << _Rp) ? _Rp\n                                           : __log2_imp<_Xp, _Rp - 1>::value;\n};\n\ntemplate <unsigned long long _Xp>\nstruct __log2_imp<_Xp, 0>\n{\n    static const size_t value = 0;\n};\n\ntemplate <size_t _Rp>\nstruct __log2_imp<0, _Rp>\n{\n    static const size_t value = _Rp + 1;\n};\n\ntemplate <class _UIntType, _UIntType _Xp>\nstruct __log2\n{\n    static const size_t value = __log2_imp<_Xp,\n                                         sizeof(_UIntType) * __CHAR_BIT__ - 1>::value;\n};\n\ntemplate<class _Engine, class _UIntType>\nclass __independent_bits_engine\n{\npublic:\n    // types\n    typedef _UIntType result_type;\n\nprivate:\n    typedef typename _Engine::result_type _Engine_result_type;\n    typedef typename conditional\n        <\n            sizeof(_Engine_result_type) <= sizeof(result_type),\n                result_type,\n                _Engine_result_type\n        >::type _Working_result_type;\n\n    _Engine& __e_;\n    size_t __w_;\n    size_t __w0_;\n    size_t __n_;\n    size_t __n0_;\n    _Working_result_type __y0_;\n    _Working_result_type __y1_;\n    _Engine_result_type __mask0_;\n    _Engine_result_type __mask1_;\n\n#ifdef _LIBCPP_CXX03_LANG\n    static const _Working_result_type _Rp = _Engine::_Max - _Engine::_Min\n                                          + _Working_result_type(1);\n#else\n    static _LIBCPP_CONSTEXPR const _Working_result_type _Rp = _Engine::max() - _Engine::min()\n                                                      + _Working_result_type(1);\n#endif\n    static _LIBCPP_CONSTEXPR const size_t __m = __log2<_Working_result_type, _Rp>::value;\n    static _LIBCPP_CONSTEXPR const size_t _WDt = numeric_limits<_Working_result_type>::digits;\n    static _LIBCPP_CONSTEXPR const size_t _EDt = numeric_limits<_Engine_result_type>::digits;\n\npublic:\n    // constructors and seeding functions\n    __independent_bits_engine(_Engine& __e, size_t __w);\n\n    // generating functions\n    result_type operator()() {return __eval(integral_constant<bool, _Rp != 0>());}\n\nprivate:\n    result_type __eval(false_type);\n    result_type __eval(true_type);\n};\n\ntemplate<class _Engine, class _UIntType>\n__independent_bits_engine<_Engine, _UIntType>\n    ::__independent_bits_engine(_Engine& __e, size_t __w)\n        : __e_(__e),\n          __w_(__w)\n{\n    __n_ = __w_ / __m + (__w_ % __m != 0);\n    __w0_ = __w_ / __n_;\n    if (_Rp == 0)\n        __y0_ = _Rp;\n    else if (__w0_ < _WDt)\n        __y0_ = (_Rp >> __w0_) << __w0_;\n    else\n        __y0_ = 0;\n    if (_Rp - __y0_ > __y0_ / __n_)\n    {\n        ++__n_;\n        __w0_ = __w_ / __n_;\n        if (__w0_ < _WDt)\n            __y0_ = (_Rp >> __w0_) << __w0_;\n        else\n            __y0_ = 0;\n    }\n    __n0_ = __n_ - __w_ % __n_;\n    if (__w0_ < _WDt - 1)\n        __y1_ = (_Rp >> (__w0_ + 1)) << (__w0_ + 1);\n    else\n        __y1_ = 0;\n    __mask0_ = __w0_ > 0 ? _Engine_result_type(~0) >> (_EDt - __w0_) :\n                          _Engine_result_type(0);\n    __mask1_ = __w0_ < _EDt - 1 ?\n                               _Engine_result_type(~0) >> (_EDt - (__w0_ + 1)) :\n                               _Engine_result_type(~0);\n}\n\ntemplate<class _Engine, class _UIntType>\ninline\n_UIntType\n__independent_bits_engine<_Engine, _UIntType>::__eval(false_type)\n{\n    return static_cast<result_type>(__e_() & __mask0_);\n}\n\ntemplate<class _Engine, class _UIntType>\n_UIntType\n__independent_bits_engine<_Engine, _UIntType>::__eval(true_type)\n{\n    const size_t _WRt = numeric_limits<result_type>::digits;\n    result_type _Sp = 0;\n    for (size_t __k = 0; __k < __n0_; ++__k)\n    {\n        _Engine_result_type __u;\n        do\n        {\n            __u = __e_() - _Engine::min();\n        } while (__u >= __y0_);\n        if (__w0_ < _WRt)\n            _Sp <<= __w0_;\n        else\n            _Sp = 0;\n        _Sp += __u & __mask0_;\n    }\n    for (size_t __k = __n0_; __k < __n_; ++__k)\n    {\n        _Engine_result_type __u;\n        do\n        {\n            __u = __e_() - _Engine::min();\n        } while (__u >= __y1_);\n        if (__w0_ < _WRt - 1)\n            _Sp <<= __w0_ + 1;\n        else\n            _Sp = 0;\n        _Sp += __u & __mask1_;\n    }\n    return _Sp;\n}\n\n// uniform_int_distribution\n\ntemplate<class _IntType = int>\nclass uniform_int_distribution\n{\npublic:\n    // types\n    typedef _IntType result_type;\n\n    class param_type\n    {\n        result_type __a_;\n        result_type __b_;\n    public:\n        typedef uniform_int_distribution distribution_type;\n\n        explicit param_type(result_type __a = 0,\n                            result_type __b = numeric_limits<result_type>::max())\n            : __a_(__a), __b_(__b) {}\n\n        result_type a() const {return __a_;}\n        result_type b() const {return __b_;}\n\n        friend bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__a_ == __y.__a_ && __x.__b_ == __y.__b_;}\n        friend bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructors and reset functions\n    explicit uniform_int_distribution(result_type __a = 0,\n                                      result_type __b = numeric_limits<result_type>::max())\n        : __p_(param_type(__a, __b)) {}\n    explicit uniform_int_distribution(const param_type& __p) : __p_(__p) {}\n    void reset() {}\n\n    // generating functions\n    template<class _URNG> result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    result_type a() const {return __p_.a();}\n    result_type b() const {return __p_.b();}\n\n    param_type param() const {return __p_;}\n    void param(const param_type& __p) {__p_ = __p;}\n\n    result_type min() const {return a();}\n    result_type max() const {return b();}\n\n    friend bool operator==(const uniform_int_distribution& __x,\n                           const uniform_int_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend bool operator!=(const uniform_int_distribution& __x,\n                           const uniform_int_distribution& __y)\n            {return !(__x == __y);}\n};\n\ntemplate<class _IntType>\ntemplate<class _URNG>\ntypename uniform_int_distribution<_IntType>::result_type\nuniform_int_distribution<_IntType>::operator()(_URNG& __g, const param_type& __p)\n{\n    typedef typename conditional<sizeof(result_type) <= sizeof(uint32_t),\n                                            uint32_t, uint64_t>::type _UIntType;\n    const _UIntType _Rp = __p.b() - __p.a() + _UIntType(1);\n    if (_Rp == 1)\n        return __p.a();\n    const size_t _Dt = numeric_limits<_UIntType>::digits;\n    typedef __independent_bits_engine<_URNG, _UIntType> _Eng;\n    if (_Rp == 0)\n        return static_cast<result_type>(_Eng(__g, _Dt)());\n    size_t __w = _Dt - __clz(_Rp) - 1;\n    if ((_Rp & (std::numeric_limits<_UIntType>::max() >> (_Dt - __w))) != 0)\n        ++__w;\n    _Eng __e(__g, __w);\n    _UIntType __u;\n    do\n    {\n        __u = __e();\n    } while (__u >= _Rp);\n    return static_cast<result_type>(__u + __p.a());\n}\n\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE) \\\n  || defined(_LIBCPP_BUILDING_LIBRARY)\nclass _LIBCPP_TYPE_VIS __rs_default;\n\n_LIBCPP_FUNC_VIS __rs_default __rs_get();\n\nclass _LIBCPP_TYPE_VIS __rs_default\n{\n    static unsigned __c_;\n\n    __rs_default();\npublic:\n    typedef uint_fast32_t result_type;\n\n    static const result_type _Min = 0;\n    static const result_type _Max = 0xFFFFFFFF;\n\n    __rs_default(const __rs_default&);\n    ~__rs_default();\n\n    result_type operator()();\n\n    static _LIBCPP_CONSTEXPR result_type min() {return _Min;}\n    static _LIBCPP_CONSTEXPR result_type max() {return _Max;}\n\n    friend _LIBCPP_FUNC_VIS __rs_default __rs_get();\n};\n\n_LIBCPP_FUNC_VIS __rs_default __rs_get();\n\ntemplate <class _RandomAccessIterator>\nvoid\nrandom_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    typedef uniform_int_distribution<ptrdiff_t> _Dp;\n    typedef typename _Dp::param_type _Pp;\n    difference_type __d = __last - __first;\n    if (__d > 1)\n    {\n        _Dp __uid;\n        __rs_default __g = __rs_get();\n        for (--__last, --__d; __first < __last; ++__first, --__d)\n        {\n            difference_type __i = __uid(__g, _Pp(0, __d));\n            if (__i != difference_type(0))\n                swap(*__first, *(__first + __i));\n        }\n    }\n}\n\ntemplate <class _RandomAccessIterator, class _RandomNumberGenerator>\nvoid\nrandom_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,\n#ifndef _LIBCPP_CXX03_LANG\n               _RandomNumberGenerator&& __rand)\n#else\n               _RandomNumberGenerator& __rand)\n#endif\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    difference_type __d = __last - __first;\n    if (__d > 1)\n    {\n        for (--__last; __first < __last; ++__first, --__d)\n        {\n            difference_type __i = __rand(__d);\n            swap(*__first, *(__first + __i));\n        }\n    }\n}\n#endif\n\ntemplate <class _PopulationIterator, class _SampleIterator, class _Distance,\n          class _UniformRandomNumberGenerator>\n_LIBCPP_INLINE_VISIBILITY\n_SampleIterator __sample(_PopulationIterator __first,\n                         _PopulationIterator __last, _SampleIterator __output,\n                         _Distance __n,\n                         _UniformRandomNumberGenerator & __g,\n                         input_iterator_tag) {\n\n  _Distance __k = 0;\n  for (; __first != __last && __k < __n; ++__first, (void)++__k)\n    __output[__k] = *__first;\n  _Distance __sz = __k;\n  for (; __first != __last; ++__first, (void)++__k) {\n    _Distance __r = _VSTD::uniform_int_distribution<_Distance>(0, __k)(__g);\n    if (__r < __sz)\n      __output[__r] = *__first;\n  }\n  return __output + _VSTD::min(__n, __k);\n}\n\ntemplate <class _PopulationIterator, class _SampleIterator, class _Distance,\n          class _UniformRandomNumberGenerator>\n_LIBCPP_INLINE_VISIBILITY\n_SampleIterator __sample(_PopulationIterator __first,\n                         _PopulationIterator __last, _SampleIterator __output,\n                         _Distance __n,\n                         _UniformRandomNumberGenerator& __g,\n                         forward_iterator_tag) {\n  _Distance __unsampled_sz = _VSTD::distance(__first, __last);\n  for (__n = _VSTD::min(__n, __unsampled_sz); __n != 0; ++__first) {\n    _Distance __r =\n        _VSTD::uniform_int_distribution<_Distance>(0, --__unsampled_sz)(__g);\n    if (__r < __n) {\n      *__output++ = *__first;\n      --__n;\n    }\n  }\n  return __output;\n}\n\ntemplate <class _PopulationIterator, class _SampleIterator, class _Distance,\n          class _UniformRandomNumberGenerator>\n_LIBCPP_INLINE_VISIBILITY\n_SampleIterator __sample(_PopulationIterator __first,\n                         _PopulationIterator __last, _SampleIterator __output,\n                         _Distance __n, _UniformRandomNumberGenerator& __g) {\n  typedef typename iterator_traits<_PopulationIterator>::iterator_category\n        _PopCategory;\n  typedef typename iterator_traits<_PopulationIterator>::difference_type\n        _Difference;\n  static_assert(__is_forward_iterator<_PopulationIterator>::value ||\n                __is_random_access_iterator<_SampleIterator>::value,\n                \"SampleIterator must meet the requirements of RandomAccessIterator\");\n  typedef typename common_type<_Distance, _Difference>::type _CommonType;\n  _LIBCPP_ASSERT(__n >= 0, \"N must be a positive number.\");\n  return _VSTD::__sample(\n      __first, __last, __output, _CommonType(__n),\n      __g, _PopCategory());\n}\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _PopulationIterator, class _SampleIterator, class _Distance,\n          class _UniformRandomNumberGenerator>\ninline _LIBCPP_INLINE_VISIBILITY\n_SampleIterator sample(_PopulationIterator __first,\n                       _PopulationIterator __last, _SampleIterator __output,\n                       _Distance __n, _UniformRandomNumberGenerator&& __g) {\n    return _VSTD::__sample(__first, __last, __output, __n, __g);\n}\n#endif // _LIBCPP_STD_VER > 14\n\ntemplate<class _RandomAccessIterator, class _UniformRandomNumberGenerator>\n    void shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last,\n#ifndef _LIBCPP_CXX03_LANG\n                 _UniformRandomNumberGenerator&& __g)\n#else\n                 _UniformRandomNumberGenerator& __g)\n#endif\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    typedef uniform_int_distribution<ptrdiff_t> _Dp;\n    typedef typename _Dp::param_type _Pp;\n    difference_type __d = __last - __first;\n    if (__d > 1)\n    {\n        _Dp __uid;\n        for (--__last, --__d; __first < __last; ++__first, --__d)\n        {\n            difference_type __i = __uid(__g, _Pp(0, __d));\n            if (__i != difference_type(0))\n                swap(*__first, *(__first + __i));\n        }\n    }\n}\n\ntemplate <class _InputIterator, class _Predicate>\nbool\nis_partitioned(_InputIterator __first, _InputIterator __last, _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n        if (!__pred(*__first))\n            break;\n    if ( __first == __last )\n        return true;\n    ++__first;\n    for (; __first != __last; ++__first)\n        if (__pred(*__first))\n            return false;\n    return true;\n}\n\n// partition\n\ntemplate <class _Predicate, class _ForwardIterator>\n_ForwardIterator\n__partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag)\n{\n    while (true)\n    {\n        if (__first == __last)\n            return __first;\n        if (!__pred(*__first))\n            break;\n        ++__first;\n    }\n    for (_ForwardIterator __p = __first; ++__p != __last;)\n    {\n        if (__pred(*__p))\n        {\n            swap(*__first, *__p);\n            ++__first;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _Predicate, class _BidirectionalIterator>\n_BidirectionalIterator\n__partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred,\n            bidirectional_iterator_tag)\n{\n    while (true)\n    {\n        while (true)\n        {\n            if (__first == __last)\n                return __first;\n            if (!__pred(*__first))\n                break;\n            ++__first;\n        }\n        do\n        {\n            if (__first == --__last)\n                return __first;\n        } while (!__pred(*__last));\n        swap(*__first, *__last);\n        ++__first;\n    }\n}\n\ntemplate <class _ForwardIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\npartition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)\n{\n    return _VSTD::__partition<typename add_lvalue_reference<_Predicate>::type>\n                            (__first, __last, __pred, typename iterator_traits<_ForwardIterator>::iterator_category());\n}\n\n// partition_copy\n\ntemplate <class _InputIterator, class _OutputIterator1,\n          class _OutputIterator2, class _Predicate>\npair<_OutputIterator1, _OutputIterator2>\npartition_copy(_InputIterator __first, _InputIterator __last,\n               _OutputIterator1 __out_true, _OutputIterator2 __out_false,\n               _Predicate __pred)\n{\n    for (; __first != __last; ++__first)\n    {\n        if (__pred(*__first))\n        {\n            *__out_true = *__first;\n            ++__out_true;\n        }\n        else\n        {\n            *__out_false = *__first;\n            ++__out_false;\n        }\n    }\n    return pair<_OutputIterator1, _OutputIterator2>(__out_true, __out_false);\n}\n\n// partition_point\n\ntemplate<class _ForwardIterator, class _Predicate>\n_ForwardIterator\npartition_point(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)\n{\n    typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type;\n    difference_type __len = _VSTD::distance(__first, __last);\n    while (__len != 0)\n    {\n        difference_type __l2 = __len / 2;\n        _ForwardIterator __m = __first;\n        _VSTD::advance(__m, __l2);\n        if (__pred(*__m))\n        {\n            __first = ++__m;\n            __len -= __l2 + 1;\n        }\n        else\n            __len = __l2;\n    }\n    return __first;\n}\n\n// stable_partition\n\ntemplate <class _Predicate, class _ForwardIterator, class _Distance, class _Pair>\n_ForwardIterator\n__stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred,\n                   _Distance __len, _Pair __p, forward_iterator_tag __fit)\n{\n    // *__first is known to be false\n    // __len >= 1\n    if (__len == 1)\n        return __first;\n    if (__len == 2)\n    {\n        _ForwardIterator __m = __first;\n        if (__pred(*++__m))\n        {\n            swap(*__first, *__m);\n            return __m;\n        }\n        return __first;\n    }\n    if (__len <= __p.second)\n    {   // The buffer is big enough to use\n        typedef typename iterator_traits<_ForwardIterator>::value_type value_type;\n        __destruct_n __d(0);\n        unique_ptr<value_type, __destruct_n&> __h(__p.first, __d);\n        // Move the falses into the temporary buffer, and the trues to the front of the line\n        // Update __first to always point to the end of the trues\n        value_type* __t = __p.first;\n        ::new(__t) value_type(_VSTD::move(*__first));\n        __d.__incr((value_type*)0);\n        ++__t;\n        _ForwardIterator __i = __first;\n        while (++__i != __last)\n        {\n            if (__pred(*__i))\n            {\n                *__first = _VSTD::move(*__i);\n                ++__first;\n            }\n            else\n            {\n                ::new(__t) value_type(_VSTD::move(*__i));\n                __d.__incr((value_type*)0);\n                ++__t;\n            }\n        }\n        // All trues now at start of range, all falses in buffer\n        // Move falses back into range, but don't mess up __first which points to first false\n        __i = __first;\n        for (value_type* __t2 = __p.first; __t2 < __t; ++__t2, ++__i)\n            *__i = _VSTD::move(*__t2);\n        // __h destructs moved-from values out of the temp buffer, but doesn't deallocate buffer\n        return __first;\n    }\n    // Else not enough buffer, do in place\n    // __len >= 3\n    _ForwardIterator __m = __first;\n    _Distance __len2 = __len / 2;  // __len2 >= 2\n    _VSTD::advance(__m, __len2);\n    // recurse on [__first, __m), *__first know to be false\n    // F?????????????????\n    // f       m         l\n    typedef typename add_lvalue_reference<_Predicate>::type _PredRef;\n    _ForwardIterator __first_false = __stable_partition<_PredRef>(__first, __m, __pred, __len2, __p, __fit);\n    // TTTFFFFF??????????\n    // f  ff   m         l\n    // recurse on [__m, __last], except increase __m until *(__m) is false, *__last know to be true\n    _ForwardIterator __m1 = __m;\n    _ForwardIterator __second_false = __last;\n    _Distance __len_half = __len - __len2;\n    while (__pred(*__m1))\n    {\n        if (++__m1 == __last)\n            goto __second_half_done;\n        --__len_half;\n    }\n    // TTTFFFFFTTTF??????\n    // f  ff   m  m1     l\n    __second_false = __stable_partition<_PredRef>(__m1, __last, __pred, __len_half, __p, __fit);\n__second_half_done:\n    // TTTFFFFFTTTTTFFFFF\n    // f  ff   m    sf   l\n    return _VSTD::rotate(__first_false, __m, __second_false);\n    // TTTTTTTTFFFFFFFFFF\n    //         |\n}\n\nstruct __return_temporary_buffer\n{\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY void operator()(_Tp* __p) const {_VSTD::return_temporary_buffer(__p);}\n};\n\ntemplate <class _Predicate, class _ForwardIterator>\n_ForwardIterator\n__stable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred,\n                   forward_iterator_tag)\n{\n    const unsigned __alloc_limit = 3;  // might want to make this a function of trivial assignment\n    // Either prove all true and return __first or point to first false\n    while (true)\n    {\n        if (__first == __last)\n            return __first;\n        if (!__pred(*__first))\n            break;\n        ++__first;\n    }\n    // We now have a reduced range [__first, __last)\n    // *__first is known to be false\n    typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type;\n    typedef typename iterator_traits<_ForwardIterator>::value_type value_type;\n    difference_type __len = _VSTD::distance(__first, __last);\n    pair<value_type*, ptrdiff_t> __p(0, 0);\n    unique_ptr<value_type, __return_temporary_buffer> __h;\n    if (__len >= __alloc_limit)\n    {\n        __p = _VSTD::get_temporary_buffer<value_type>(__len);\n        __h.reset(__p.first);\n    }\n    return __stable_partition<typename add_lvalue_reference<_Predicate>::type>\n                             (__first, __last, __pred, __len, __p, forward_iterator_tag());\n}\n\ntemplate <class _Predicate, class _BidirectionalIterator, class _Distance, class _Pair>\n_BidirectionalIterator\n__stable_partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred,\n                   _Distance __len, _Pair __p, bidirectional_iterator_tag __bit)\n{\n    // *__first is known to be false\n    // *__last is known to be true\n    // __len >= 2\n    if (__len == 2)\n    {\n        swap(*__first, *__last);\n        return __last;\n    }\n    if (__len == 3)\n    {\n        _BidirectionalIterator __m = __first;\n        if (__pred(*++__m))\n        {\n            swap(*__first, *__m);\n            swap(*__m, *__last);\n            return __last;\n        }\n        swap(*__m, *__last);\n        swap(*__first, *__m);\n        return __m;\n    }\n    if (__len <= __p.second)\n    {   // The buffer is big enough to use\n        typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type;\n        __destruct_n __d(0);\n        unique_ptr<value_type, __destruct_n&> __h(__p.first, __d);\n        // Move the falses into the temporary buffer, and the trues to the front of the line\n        // Update __first to always point to the end of the trues\n        value_type* __t = __p.first;\n        ::new(__t) value_type(_VSTD::move(*__first));\n        __d.__incr((value_type*)0);\n        ++__t;\n        _BidirectionalIterator __i = __first;\n        while (++__i != __last)\n        {\n            if (__pred(*__i))\n            {\n                *__first = _VSTD::move(*__i);\n                ++__first;\n            }\n            else\n            {\n                ::new(__t) value_type(_VSTD::move(*__i));\n                __d.__incr((value_type*)0);\n                ++__t;\n            }\n        }\n        // move *__last, known to be true\n        *__first = _VSTD::move(*__i);\n        __i = ++__first;\n        // All trues now at start of range, all falses in buffer\n        // Move falses back into range, but don't mess up __first which points to first false\n        for (value_type* __t2 = __p.first; __t2 < __t; ++__t2, ++__i)\n            *__i = _VSTD::move(*__t2);\n        // __h destructs moved-from values out of the temp buffer, but doesn't deallocate buffer\n        return __first;\n    }\n    // Else not enough buffer, do in place\n    // __len >= 4\n    _BidirectionalIterator __m = __first;\n    _Distance __len2 = __len / 2;  // __len2 >= 2\n    _VSTD::advance(__m, __len2);\n    // recurse on [__first, __m-1], except reduce __m-1 until *(__m-1) is true, *__first know to be false\n    // F????????????????T\n    // f       m        l\n    _BidirectionalIterator __m1 = __m;\n    _BidirectionalIterator __first_false = __first;\n    _Distance __len_half = __len2;\n    while (!__pred(*--__m1))\n    {\n        if (__m1 == __first)\n            goto __first_half_done;\n        --__len_half;\n    }\n    // F???TFFF?????????T\n    // f   m1  m        l\n    typedef typename add_lvalue_reference<_Predicate>::type _PredRef;\n    __first_false = __stable_partition<_PredRef>(__first, __m1, __pred, __len_half, __p, __bit);\n__first_half_done:\n    // TTTFFFFF?????????T\n    // f  ff   m        l\n    // recurse on [__m, __last], except increase __m until *(__m) is false, *__last know to be true\n    __m1 = __m;\n    _BidirectionalIterator __second_false = __last;\n    ++__second_false;\n    __len_half = __len - __len2;\n    while (__pred(*__m1))\n    {\n        if (++__m1 == __last)\n            goto __second_half_done;\n        --__len_half;\n    }\n    // TTTFFFFFTTTF?????T\n    // f  ff   m  m1    l\n    __second_false = __stable_partition<_PredRef>(__m1, __last, __pred, __len_half, __p, __bit);\n__second_half_done:\n    // TTTFFFFFTTTTTFFFFF\n    // f  ff   m    sf  l\n    return _VSTD::rotate(__first_false, __m, __second_false);\n    // TTTTTTTTFFFFFFFFFF\n    //         |\n}\n\ntemplate <class _Predicate, class _BidirectionalIterator>\n_BidirectionalIterator\n__stable_partition(_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred,\n                   bidirectional_iterator_tag)\n{\n    typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type;\n    typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type;\n    const difference_type __alloc_limit = 4;  // might want to make this a function of trivial assignment\n    // Either prove all true and return __first or point to first false\n    while (true)\n    {\n        if (__first == __last)\n            return __first;\n        if (!__pred(*__first))\n            break;\n        ++__first;\n    }\n    // __first points to first false, everything prior to __first is already set.\n    // Either prove [__first, __last) is all false and return __first, or point __last to last true\n    do\n    {\n        if (__first == --__last)\n            return __first;\n    } while (!__pred(*__last));\n    // We now have a reduced range [__first, __last]\n    // *__first is known to be false\n    // *__last is known to be true\n    // __len >= 2\n    difference_type __len = _VSTD::distance(__first, __last) + 1;\n    pair<value_type*, ptrdiff_t> __p(0, 0);\n    unique_ptr<value_type, __return_temporary_buffer> __h;\n    if (__len >= __alloc_limit)\n    {\n        __p = _VSTD::get_temporary_buffer<value_type>(__len);\n        __h.reset(__p.first);\n    }\n    return __stable_partition<typename add_lvalue_reference<_Predicate>::type>\n                             (__first, __last, __pred, __len, __p, bidirectional_iterator_tag());\n}\n\ntemplate <class _ForwardIterator, class _Predicate>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nstable_partition(_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)\n{\n    return __stable_partition<typename add_lvalue_reference<_Predicate>::type>\n                             (__first, __last, __pred, typename iterator_traits<_ForwardIterator>::iterator_category());\n}\n\n// is_sorted_until\n\ntemplate <class _ForwardIterator, class _Compare>\n_ForwardIterator\nis_sorted_until(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __i = __first;\n        while (++__i != __last)\n        {\n            if (__comp(*__i, *__first))\n                return __i;\n            __first = __i;\n        }\n    }\n    return __last;\n}\n\ntemplate<class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nis_sorted_until(_ForwardIterator __first, _ForwardIterator __last)\n{\n    return _VSTD::is_sorted_until(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>());\n}\n\n// is_sorted\n\ntemplate <class _ForwardIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nis_sorted(_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)\n{\n    return _VSTD::is_sorted_until(__first, __last, __comp) == __last;\n}\n\ntemplate<class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nis_sorted(_ForwardIterator __first, _ForwardIterator __last)\n{\n    return _VSTD::is_sorted(__first, __last, __less<typename iterator_traits<_ForwardIterator>::value_type>());\n}\n\n// sort\n\n// stable, 2-3 compares, 0-2 swaps\n\ntemplate <class _Compare, class _ForwardIterator>\nunsigned\n__sort3(_ForwardIterator __x, _ForwardIterator __y, _ForwardIterator __z, _Compare __c)\n{\n    unsigned __r = 0;\n    if (!__c(*__y, *__x))          // if x <= y\n    {\n        if (!__c(*__z, *__y))      // if y <= z\n            return __r;            // x <= y && y <= z\n                                   // x <= y && y > z\n        swap(*__y, *__z);          // x <= z && y < z\n        __r = 1;\n        if (__c(*__y, *__x))       // if x > y\n        {\n            swap(*__x, *__y);      // x < y && y <= z\n            __r = 2;\n        }\n        return __r;                // x <= y && y < z\n    }\n    if (__c(*__z, *__y))           // x > y, if y > z\n    {\n        swap(*__x, *__z);          // x < y && y < z\n        __r = 1;\n        return __r;\n    }\n    swap(*__x, *__y);              // x > y && y <= z\n    __r = 1;                       // x < y && x <= z\n    if (__c(*__z, *__y))           // if y > z\n    {\n        swap(*__y, *__z);          // x <= y && y < z\n        __r = 2;\n    }\n    return __r;\n}                                  // x <= y && y <= z\n\n// stable, 3-6 compares, 0-5 swaps\n\ntemplate <class _Compare, class _ForwardIterator>\nunsigned\n__sort4(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3,\n            _ForwardIterator __x4, _Compare __c)\n{\n    unsigned __r = __sort3<_Compare>(__x1, __x2, __x3, __c);\n    if (__c(*__x4, *__x3))\n    {\n        swap(*__x3, *__x4);\n        ++__r;\n        if (__c(*__x3, *__x2))\n        {\n            swap(*__x2, *__x3);\n            ++__r;\n            if (__c(*__x2, *__x1))\n            {\n                swap(*__x1, *__x2);\n                ++__r;\n            }\n        }\n    }\n    return __r;\n}\n\n// stable, 4-10 compares, 0-9 swaps\n\ntemplate <class _Compare, class _ForwardIterator>\nunsigned\n__sort5(_ForwardIterator __x1, _ForwardIterator __x2, _ForwardIterator __x3,\n            _ForwardIterator __x4, _ForwardIterator __x5, _Compare __c)\n{\n    unsigned __r = __sort4<_Compare>(__x1, __x2, __x3, __x4, __c);\n    if (__c(*__x5, *__x4))\n    {\n        swap(*__x4, *__x5);\n        ++__r;\n        if (__c(*__x4, *__x3))\n        {\n            swap(*__x3, *__x4);\n            ++__r;\n            if (__c(*__x3, *__x2))\n            {\n                swap(*__x2, *__x3);\n                ++__r;\n                if (__c(*__x2, *__x1))\n                {\n                    swap(*__x1, *__x2);\n                    ++__r;\n                }\n            }\n        }\n    }\n    return __r;\n}\n\n// Assumes size > 0\ntemplate <class _Compare, class _BirdirectionalIterator>\nvoid\n__selection_sort(_BirdirectionalIterator __first, _BirdirectionalIterator __last, _Compare __comp)\n{\n    _BirdirectionalIterator __lm1 = __last;\n    for (--__lm1; __first != __lm1; ++__first)\n    {\n        _BirdirectionalIterator __i = _VSTD::min_element<_BirdirectionalIterator,\n                                                        typename add_lvalue_reference<_Compare>::type>\n                                                       (__first, __last, __comp);\n        if (__i != __first)\n            swap(*__first, *__i);\n    }\n}\n\ntemplate <class _Compare, class _BirdirectionalIterator>\nvoid\n__insertion_sort(_BirdirectionalIterator __first, _BirdirectionalIterator __last, _Compare __comp)\n{\n    typedef typename iterator_traits<_BirdirectionalIterator>::value_type value_type;\n    if (__first != __last)\n    {\n        _BirdirectionalIterator __i = __first;\n        for (++__i; __i != __last; ++__i)\n        {\n            _BirdirectionalIterator __j = __i;\n            value_type __t(_VSTD::move(*__j));\n            for (_BirdirectionalIterator __k = __i; __k != __first && __comp(__t,  *--__k); --__j)\n                *__j = _VSTD::move(*__k);\n            *__j = _VSTD::move(__t);\n        }\n    }\n}\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__insertion_sort_3(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n    _RandomAccessIterator __j = __first+2;\n    __sort3<_Compare>(__first, __first+1, __j, __comp);\n    for (_RandomAccessIterator __i = __j+1; __i != __last; ++__i)\n    {\n        if (__comp(*__i, *__j))\n        {\n            value_type __t(_VSTD::move(*__i));\n            _RandomAccessIterator __k = __j;\n            __j = __i;\n            do\n            {\n                *__j = _VSTD::move(*__k);\n                __j = __k;\n            } while (__j != __first && __comp(__t, *--__k));\n            *__j = _VSTD::move(__t);\n        }\n        __j = __i;\n    }\n}\n\ntemplate <class _Compare, class _RandomAccessIterator>\nbool\n__insertion_sort_incomplete(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n    switch (__last - __first)\n    {\n    case 0:\n    case 1:\n        return true;\n    case 2:\n        if (__comp(*--__last, *__first))\n            swap(*__first, *__last);\n        return true;\n    case 3:\n        _VSTD::__sort3<_Compare>(__first, __first+1, --__last, __comp);\n        return true;\n    case 4:\n        _VSTD::__sort4<_Compare>(__first, __first+1, __first+2, --__last, __comp);\n        return true;\n    case 5:\n        _VSTD::__sort5<_Compare>(__first, __first+1, __first+2, __first+3, --__last, __comp);\n        return true;\n    }\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n    _RandomAccessIterator __j = __first+2;\n    __sort3<_Compare>(__first, __first+1, __j, __comp);\n    const unsigned __limit = 8;\n    unsigned __count = 0;\n    for (_RandomAccessIterator __i = __j+1; __i != __last; ++__i)\n    {\n        if (__comp(*__i, *__j))\n        {\n            value_type __t(_VSTD::move(*__i));\n            _RandomAccessIterator __k = __j;\n            __j = __i;\n            do\n            {\n                *__j = _VSTD::move(*__k);\n                __j = __k;\n            } while (__j != __first && __comp(__t, *--__k));\n            *__j = _VSTD::move(__t);\n            if (++__count == __limit)\n                return ++__i == __last;\n        }\n        __j = __i;\n    }\n    return true;\n}\n\ntemplate <class _Compare, class _BirdirectionalIterator>\nvoid\n__insertion_sort_move(_BirdirectionalIterator __first1, _BirdirectionalIterator __last1,\n                      typename iterator_traits<_BirdirectionalIterator>::value_type* __first2, _Compare __comp)\n{\n    typedef typename iterator_traits<_BirdirectionalIterator>::value_type value_type;\n    if (__first1 != __last1)\n    {\n        __destruct_n __d(0);\n        unique_ptr<value_type, __destruct_n&> __h(__first2, __d);\n        value_type* __last2 = __first2;\n        ::new(__last2) value_type(_VSTD::move(*__first1));\n        __d.__incr((value_type*)0);\n        for (++__last2; ++__first1 != __last1; ++__last2)\n        {\n            value_type* __j2 = __last2;\n            value_type* __i2 = __j2;\n            if (__comp(*__first1, *--__i2))\n            {\n                ::new(__j2) value_type(_VSTD::move(*__i2));\n                __d.__incr((value_type*)0);\n                for (--__j2; __i2 != __first2 && __comp(*__first1,  *--__i2); --__j2)\n                    *__j2 = _VSTD::move(*__i2);\n                *__j2 = _VSTD::move(*__first1);\n            }\n            else\n            {\n                ::new(__j2) value_type(_VSTD::move(*__first1));\n                __d.__incr((value_type*)0);\n            }\n        }\n        __h.release();\n    }\n}\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n    // _Compare is known to be a reference type\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n    const difference_type __limit = is_trivially_copy_constructible<value_type>::value &&\n                                    is_trivially_copy_assignable<value_type>::value ? 30 : 6;\n    while (true)\n    {\n    __restart:\n        difference_type __len = __last - __first;\n        switch (__len)\n        {\n        case 0:\n        case 1:\n            return;\n        case 2:\n            if (__comp(*--__last, *__first))\n                swap(*__first, *__last);\n            return;\n        case 3:\n            _VSTD::__sort3<_Compare>(__first, __first+1, --__last, __comp);\n            return;\n        case 4:\n            _VSTD::__sort4<_Compare>(__first, __first+1, __first+2, --__last, __comp);\n            return;\n        case 5:\n            _VSTD::__sort5<_Compare>(__first, __first+1, __first+2, __first+3, --__last, __comp);\n            return;\n        }\n        if (__len <= __limit)\n        {\n            _VSTD::__insertion_sort_3<_Compare>(__first, __last, __comp);\n            return;\n        }\n        // __len > 5\n        _RandomAccessIterator __m = __first;\n        _RandomAccessIterator __lm1 = __last;\n        --__lm1;\n        unsigned __n_swaps;\n        {\n        difference_type __delta;\n        if (__len >= 1000)\n        {\n            __delta = __len/2;\n            __m += __delta;\n            __delta /= 2;\n            __n_swaps = _VSTD::__sort5<_Compare>(__first, __first + __delta, __m, __m+__delta, __lm1, __comp);\n        }\n        else\n        {\n            __delta = __len/2;\n            __m += __delta;\n            __n_swaps = _VSTD::__sort3<_Compare>(__first, __m, __lm1, __comp);\n        }\n        }\n        // *__m is median\n        // partition [__first, __m) < *__m and *__m <= [__m, __last)\n        // (this inhibits tossing elements equivalent to __m around unnecessarily)\n        _RandomAccessIterator __i = __first;\n        _RandomAccessIterator __j = __lm1;\n        // j points beyond range to be tested, *__m is known to be <= *__lm1\n        // The search going up is known to be guarded but the search coming down isn't.\n        // Prime the downward search with a guard.\n        if (!__comp(*__i, *__m))  // if *__first == *__m\n        {\n            // *__first == *__m, *__first doesn't go in first part\n            // manually guard downward moving __j against __i\n            while (true)\n            {\n                if (__i == --__j)\n                {\n                    // *__first == *__m, *__m <= all other elements\n                    // Parition instead into [__first, __i) == *__first and *__first < [__i, __last)\n                    ++__i;  // __first + 1\n                    __j = __last;\n                    if (!__comp(*__first, *--__j))  // we need a guard if *__first == *(__last-1)\n                    {\n                        while (true)\n                        {\n                            if (__i == __j)\n                                return;  // [__first, __last) all equivalent elements\n                            if (__comp(*__first, *__i))\n                            {\n                                swap(*__i, *__j);\n                                ++__n_swaps;\n                                ++__i;\n                                break;\n                            }\n                            ++__i;\n                        }\n                    }\n                    // [__first, __i) == *__first and *__first < [__j, __last) and __j == __last - 1\n                    if (__i == __j)\n                        return;\n                    while (true)\n                    {\n                        while (!__comp(*__first, *__i))\n                            ++__i;\n                        while (__comp(*__first, *--__j))\n                            ;\n                        if (__i >= __j)\n                            break;\n                        swap(*__i, *__j);\n                        ++__n_swaps;\n                        ++__i;\n                    }\n                    // [__first, __i) == *__first and *__first < [__i, __last)\n                    // The first part is sorted, sort the secod part\n                    // _VSTD::__sort<_Compare>(__i, __last, __comp);\n                    __first = __i;\n                    goto __restart;\n                }\n                if (__comp(*__j, *__m))\n                {\n                    swap(*__i, *__j);\n                    ++__n_swaps;\n                    break;  // found guard for downward moving __j, now use unguarded partition\n                }\n            }\n        }\n        // It is known that *__i < *__m\n        ++__i;\n        // j points beyond range to be tested, *__m is known to be <= *__lm1\n        // if not yet partitioned...\n        if (__i < __j)\n        {\n            // known that *(__i - 1) < *__m\n            // known that __i <= __m\n            while (true)\n            {\n                // __m still guards upward moving __i\n                while (__comp(*__i, *__m))\n                    ++__i;\n                // It is now known that a guard exists for downward moving __j\n                while (!__comp(*--__j, *__m))\n                    ;\n                if (__i > __j)\n                    break;\n                swap(*__i, *__j);\n                ++__n_swaps;\n                // It is known that __m != __j\n                // If __m just moved, follow it\n                if (__m == __i)\n                    __m = __j;\n                ++__i;\n            }\n        }\n        // [__first, __i) < *__m and *__m <= [__i, __last)\n        if (__i != __m && __comp(*__m, *__i))\n        {\n            swap(*__i, *__m);\n            ++__n_swaps;\n        }\n        // [__first, __i) < *__i and *__i <= [__i+1, __last)\n        // If we were given a perfect partition, see if insertion sort is quick...\n        if (__n_swaps == 0)\n        {\n            bool __fs = _VSTD::__insertion_sort_incomplete<_Compare>(__first, __i, __comp);\n            if (_VSTD::__insertion_sort_incomplete<_Compare>(__i+1, __last, __comp))\n            {\n                if (__fs)\n                    return;\n                __last = __i;\n                continue;\n            }\n            else\n            {\n                if (__fs)\n                {\n                    __first = ++__i;\n                    continue;\n                }\n            }\n        }\n        // sort smaller range with recursive call and larger with tail recursion elimination\n        if (__i - __first < __last - __i)\n        {\n            _VSTD::__sort<_Compare>(__first, __i, __comp);\n            // _VSTD::__sort<_Compare>(__i+1, __last, __comp);\n            __first = ++__i;\n        }\n        else\n        {\n            _VSTD::__sort<_Compare>(__i+1, __last, __comp);\n            // _VSTD::__sort<_Compare>(__first, __i, __comp);\n            __last = __i;\n        }\n    }\n}\n\n// This forwarder keeps the top call and the recursive calls using the same instantiation, forcing a reference _Compare\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nsort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    __sort<_Comp_ref>(__first, __last, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    __sort<_Comp_ref>(__first, __last, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nsort(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    _VSTD::sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nsort(_Tp** __first, _Tp** __last)\n{\n    _VSTD::sort((size_t*)__first, (size_t*)__last, __less<size_t>());\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nsort(__wrap_iter<_Tp*> __first, __wrap_iter<_Tp*> __last)\n{\n    _VSTD::sort(__first.base(), __last.base());\n}\n\ntemplate <class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nsort(__wrap_iter<_Tp*> __first, __wrap_iter<_Tp*> __last, _Compare __comp)\n{\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    _VSTD::sort<_Tp*, _Comp_ref>(__first.base(), __last.base(), __comp);\n}\n\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<char>&, char*>(char*, char*, __less<char>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<wchar_t>&, wchar_t*>(wchar_t*, wchar_t*, __less<wchar_t>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<signed char>&, signed char*>(signed char*, signed char*, __less<signed char>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<unsigned char>&, unsigned char*>(unsigned char*, unsigned char*, __less<unsigned char>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<short>&, short*>(short*, short*, __less<short>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<unsigned short>&, unsigned short*>(unsigned short*, unsigned short*, __less<unsigned short>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<int>&, int*>(int*, int*, __less<int>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<unsigned>&, unsigned*>(unsigned*, unsigned*, __less<unsigned>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<long>&, long*>(long*, long*, __less<long>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<unsigned long>&, unsigned long*>(unsigned long*, unsigned long*, __less<unsigned long>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<long long>&, long long*>(long long*, long long*, __less<long long>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<unsigned long long>&, unsigned long long*>(unsigned long long*, unsigned long long*, __less<unsigned long long>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<float>&, float*>(float*, float*, __less<float>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<double>&, double*>(double*, double*, __less<double>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void __sort<__less<long double>&, long double*>(long double*, long double*, __less<long double>&))\n\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<char>&, char*>(char*, char*, __less<char>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<wchar_t>&, wchar_t*>(wchar_t*, wchar_t*, __less<wchar_t>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<signed char>&, signed char*>(signed char*, signed char*, __less<signed char>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<unsigned char>&, unsigned char*>(unsigned char*, unsigned char*, __less<unsigned char>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<short>&, short*>(short*, short*, __less<short>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<unsigned short>&, unsigned short*>(unsigned short*, unsigned short*, __less<unsigned short>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<int>&, int*>(int*, int*, __less<int>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<unsigned>&, unsigned*>(unsigned*, unsigned*, __less<unsigned>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<long>&, long*>(long*, long*, __less<long>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<unsigned long>&, unsigned long*>(unsigned long*, unsigned long*, __less<unsigned long>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<long long>&, long long*>(long long*, long long*, __less<long long>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<unsigned long long>&, unsigned long long*>(unsigned long long*, unsigned long long*, __less<unsigned long long>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<float>&, float*>(float*, float*, __less<float>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<double>&, double*>(double*, double*, __less<double>&))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS bool __insertion_sort_incomplete<__less<long double>&, long double*>(long double*, long double*, __less<long double>&))\n\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS unsigned __sort5<__less<long double>&, long double*>(long double*, long double*, long double*, long double*, long double*, __less<long double>&))\n\n// lower_bound\n\ntemplate <class _Compare, class _ForwardIterator, class _Tp>\n_ForwardIterator\n__lower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp)\n{\n    typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type;\n    difference_type __len = _VSTD::distance(__first, __last);\n    while (__len != 0)\n    {\n        difference_type __l2 = __len / 2;\n        _ForwardIterator __m = __first;\n        _VSTD::advance(__m, __l2);\n        if (__comp(*__m, __value_))\n        {\n            __first = ++__m;\n            __len -= __l2 + 1;\n        }\n        else\n            __len = __l2;\n    }\n    return __first;\n}\n\ntemplate <class _ForwardIterator, class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nlower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __lower_bound<_Comp_ref>(__first, __last, __value_, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __lower_bound<_Comp_ref>(__first, __last, __value_, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nlower_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_)\n{\n    return _VSTD::lower_bound(__first, __last, __value_,\n                             __less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>());\n}\n\n// upper_bound\n\ntemplate <class _Compare, class _ForwardIterator, class _Tp>\n_ForwardIterator\n__upper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp)\n{\n    typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type;\n    difference_type __len = _VSTD::distance(__first, __last);\n    while (__len != 0)\n    {\n        difference_type __l2 = __len / 2;\n        _ForwardIterator __m = __first;\n        _VSTD::advance(__m, __l2);\n        if (__comp(__value_, *__m))\n            __len = __l2;\n        else\n        {\n            __first = ++__m;\n            __len -= __l2 + 1;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _ForwardIterator, class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nupper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __upper_bound<_Comp_ref>(__first, __last, __value_, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __upper_bound<_Comp_ref>(__first, __last, __value_, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator\nupper_bound(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_)\n{\n    return _VSTD::upper_bound(__first, __last, __value_,\n                             __less<_Tp, typename iterator_traits<_ForwardIterator>::value_type>());\n}\n\n// equal_range\n\ntemplate <class _Compare, class _ForwardIterator, class _Tp>\npair<_ForwardIterator, _ForwardIterator>\n__equal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp)\n{\n    typedef typename iterator_traits<_ForwardIterator>::difference_type difference_type;\n    difference_type __len = _VSTD::distance(__first, __last);\n    while (__len != 0)\n    {\n        difference_type __l2 = __len / 2;\n        _ForwardIterator __m = __first;\n        _VSTD::advance(__m, __l2);\n        if (__comp(*__m, __value_))\n        {\n            __first = ++__m;\n            __len -= __l2 + 1;\n        }\n        else if (__comp(__value_, *__m))\n        {\n            __last = __m;\n            __len = __l2;\n        }\n        else\n        {\n            _ForwardIterator __mp1 = __m;\n            return pair<_ForwardIterator, _ForwardIterator>\n                   (\n                      __lower_bound<_Compare>(__first, __m, __value_, __comp),\n                      __upper_bound<_Compare>(++__mp1, __last, __value_, __comp)\n                   );\n        }\n    }\n    return pair<_ForwardIterator, _ForwardIterator>(__first, __first);\n}\n\ntemplate <class _ForwardIterator, class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_ForwardIterator, _ForwardIterator>\nequal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __equal_range<_Comp_ref>(__first, __last, __value_, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __equal_range<_Comp_ref>(__first, __last, __value_, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_ForwardIterator, _ForwardIterator>\nequal_range(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_)\n{\n    return _VSTD::equal_range(__first, __last, __value_,\n                             __less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>());\n}\n\n// binary_search\n\ntemplate <class _Compare, class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\n__binary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp)\n{\n    __first = __lower_bound<_Compare>(__first, __last, __value_, __comp);\n    return __first != __last && !__comp(__value_, *__first);\n}\n\ntemplate <class _ForwardIterator, class _Tp, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nbinary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __binary_search<_Comp_ref>(__first, __last, __value_, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __binary_search<_Comp_ref>(__first, __last, __value_, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nbinary_search(_ForwardIterator __first, _ForwardIterator __last, const _Tp& __value_)\n{\n    return _VSTD::binary_search(__first, __last, __value_,\n                             __less<typename iterator_traits<_ForwardIterator>::value_type, _Tp>());\n}\n\n// merge\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator>\n_OutputIterator\n__merge(_InputIterator1 __first1, _InputIterator1 __last1,\n        _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n    for (; __first1 != __last1; ++__result)\n    {\n        if (__first2 == __last2)\n            return _VSTD::copy(__first1, __last1, __result);\n        if (__comp(*__first2, *__first1))\n        {\n            *__result = *__first2;\n            ++__first2;\n        }\n        else\n        {\n            *__result = *__first1;\n            ++__first1;\n        }\n    }\n    return _VSTD::copy(__first2, __last2, __result);\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nmerge(_InputIterator1 __first1, _InputIterator1 __last1,\n      _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return _VSTD::__merge<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return _VSTD::__merge<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nmerge(_InputIterator1 __first1, _InputIterator1 __last1,\n      _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)\n{\n    typedef typename iterator_traits<_InputIterator1>::value_type __v1;\n    typedef typename iterator_traits<_InputIterator2>::value_type __v2;\n    return merge(__first1, __last1, __first2, __last2, __result, __less<__v1, __v2>());\n}\n\n// inplace_merge\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2,\n          class _OutputIterator>\nvoid __half_inplace_merge(_InputIterator1 __first1, _InputIterator1 __last1,\n                          _InputIterator2 __first2, _InputIterator2 __last2,\n                          _OutputIterator __result, _Compare __comp)\n{\n    for (; __first1 != __last1; ++__result)\n    {\n        if (__first2 == __last2)\n        {\n            _VSTD::move(__first1, __last1, __result);\n            return;\n        }\n\n        if (__comp(*__first2, *__first1))\n        {\n            *__result = _VSTD::move(*__first2);\n            ++__first2;\n        }\n        else\n        {\n            *__result = _VSTD::move(*__first1);\n            ++__first1;\n        }\n    }\n    // __first2 through __last2 are already in the right spot.\n}\n\ntemplate <class _Compare, class _BidirectionalIterator>\nvoid\n__buffered_inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last,\n                _Compare __comp, typename iterator_traits<_BidirectionalIterator>::difference_type __len1,\n                                 typename iterator_traits<_BidirectionalIterator>::difference_type __len2,\n                typename iterator_traits<_BidirectionalIterator>::value_type* __buff)\n{\n    typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type;\n    __destruct_n __d(0);\n    unique_ptr<value_type, __destruct_n&> __h2(__buff, __d);\n    if (__len1 <= __len2)\n    {\n        value_type* __p = __buff;\n        for (_BidirectionalIterator __i = __first; __i != __middle; __d.__incr((value_type*)0), (void) ++__i, ++__p)\n            ::new(__p) value_type(_VSTD::move(*__i));\n        __half_inplace_merge(__buff, __p, __middle, __last, __first, __comp);\n    }\n    else\n    {\n        value_type* __p = __buff;\n        for (_BidirectionalIterator __i = __middle; __i != __last; __d.__incr((value_type*)0), (void) ++__i, ++__p)\n            ::new(__p) value_type(_VSTD::move(*__i));\n        typedef reverse_iterator<_BidirectionalIterator> _RBi;\n        typedef reverse_iterator<value_type*> _Rv;\n        __half_inplace_merge(_Rv(__p), _Rv(__buff),\n                             _RBi(__middle), _RBi(__first),\n                             _RBi(__last), __negate<_Compare>(__comp));\n    }\n}\n\ntemplate <class _Compare, class _BidirectionalIterator>\nvoid\n__inplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last,\n                _Compare __comp, typename iterator_traits<_BidirectionalIterator>::difference_type __len1,\n                                 typename iterator_traits<_BidirectionalIterator>::difference_type __len2,\n                typename iterator_traits<_BidirectionalIterator>::value_type* __buff, ptrdiff_t __buff_size)\n{\n    typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type;\n    while (true)\n    {\n        // if __middle == __last, we're done\n        if (__len2 == 0)\n            return;\n        if (__len1 <= __buff_size || __len2 <= __buff_size)\n            return __buffered_inplace_merge<_Compare>\n                   (__first, __middle, __last, __comp, __len1, __len2, __buff);\n        // shrink [__first, __middle) as much as possible (with no moves), returning if it shrinks to 0\n        for (; true; ++__first, (void) --__len1)\n        {\n            if (__len1 == 0)\n                return;\n            if (__comp(*__middle, *__first))\n                break;\n        }\n        // __first < __middle < __last\n        // *__first > *__middle\n        // partition [__first, __m1) [__m1, __middle) [__middle, __m2) [__m2, __last) such that\n        //     all elements in:\n        //         [__first, __m1)  <= [__middle, __m2)\n        //         [__middle, __m2) <  [__m1, __middle)\n        //         [__m1, __middle) <= [__m2, __last)\n        //     and __m1 or __m2 is in the middle of its range\n        _BidirectionalIterator __m1;  // \"median\" of [__first, __middle)\n        _BidirectionalIterator __m2;  // \"median\" of [__middle, __last)\n        difference_type __len11;      // distance(__first, __m1)\n        difference_type __len21;      // distance(__middle, __m2)\n        // binary search smaller range\n        if (__len1 < __len2)\n        {   // __len >= 1, __len2 >= 2\n            __len21 = __len2 / 2;\n            __m2 = __middle;\n            _VSTD::advance(__m2, __len21);\n            __m1 = __upper_bound<_Compare>(__first, __middle, *__m2, __comp);\n            __len11 = _VSTD::distance(__first, __m1);\n        }\n        else\n        {\n            if (__len1 == 1)\n            {   // __len1 >= __len2 && __len2 > 0, therefore __len2 == 1\n                // It is known *__first > *__middle\n                swap(*__first, *__middle);\n                return;\n            }\n            // __len1 >= 2, __len2 >= 1\n            __len11 = __len1 / 2;\n            __m1 = __first;\n            _VSTD::advance(__m1, __len11);\n            __m2 = __lower_bound<_Compare>(__middle, __last, *__m1, __comp);\n            __len21 = _VSTD::distance(__middle, __m2);\n        }\n        difference_type __len12 = __len1 - __len11;  // distance(__m1, __middle)\n        difference_type __len22 = __len2 - __len21;  // distance(__m2, __last)\n        // [__first, __m1) [__m1, __middle) [__middle, __m2) [__m2, __last)\n        // swap middle two partitions\n        __middle = _VSTD::rotate(__m1, __middle, __m2);\n        // __len12 and __len21 now have swapped meanings\n        // merge smaller range with recurisve call and larger with tail recursion elimination\n        if (__len11 + __len21 < __len12 + __len22)\n        {\n            __inplace_merge<_Compare>(__first, __m1, __middle, __comp, __len11, __len21, __buff, __buff_size);\n//          __inplace_merge<_Compare>(__middle, __m2, __last, __comp, __len12, __len22, __buff, __buff_size);\n            __first = __middle;\n            __middle = __m2;\n            __len1 = __len12;\n            __len2 = __len22;\n        }\n        else\n        {\n            __inplace_merge<_Compare>(__middle, __m2, __last, __comp, __len12, __len22, __buff, __buff_size);\n//          __inplace_merge<_Compare>(__first, __m1, __middle, __comp, __len11, __len21, __buff, __buff_size);\n            __last = __middle;\n            __middle = __m1;\n            __len1 = __len11;\n            __len2 = __len21;\n        }\n    }\n}\n\ntemplate <class _BidirectionalIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\ninplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last,\n              _Compare __comp)\n{\n    typedef typename iterator_traits<_BidirectionalIterator>::value_type value_type;\n    typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type;\n    difference_type __len1 = _VSTD::distance(__first, __middle);\n    difference_type __len2 = _VSTD::distance(__middle, __last);\n    difference_type __buf_size = _VSTD::min(__len1, __len2);\n    pair<value_type*, ptrdiff_t> __buf = _VSTD::get_temporary_buffer<value_type>(__buf_size);\n    unique_ptr<value_type, __return_temporary_buffer> __h(__buf.first);\n\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return _VSTD::__inplace_merge<_Comp_ref>(__first, __middle, __last, __c, __len1, __len2,\n                                            __buf.first, __buf.second);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return _VSTD::__inplace_merge<_Comp_ref>(__first, __middle, __last, __comp, __len1, __len2,\n                                            __buf.first, __buf.second);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _BidirectionalIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\ninplace_merge(_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last)\n{\n    _VSTD::inplace_merge(__first, __middle, __last,\n                        __less<typename iterator_traits<_BidirectionalIterator>::value_type>());\n}\n\n// stable_sort\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2>\nvoid\n__merge_move_construct(_InputIterator1 __first1, _InputIterator1 __last1,\n        _InputIterator2 __first2, _InputIterator2 __last2,\n        typename iterator_traits<_InputIterator1>::value_type* __result, _Compare __comp)\n{\n    typedef typename iterator_traits<_InputIterator1>::value_type value_type;\n    __destruct_n __d(0);\n    unique_ptr<value_type, __destruct_n&> __h(__result, __d);\n    for (; true; ++__result)\n    {\n        if (__first1 == __last1)\n        {\n            for (; __first2 != __last2; ++__first2, ++__result, __d.__incr((value_type*)0))\n                ::new (__result) value_type(_VSTD::move(*__first2));\n            __h.release();\n            return;\n        }\n        if (__first2 == __last2)\n        {\n            for (; __first1 != __last1; ++__first1, ++__result, __d.__incr((value_type*)0))\n                ::new (__result) value_type(_VSTD::move(*__first1));\n            __h.release();\n            return;\n        }\n        if (__comp(*__first2, *__first1))\n        {\n            ::new (__result) value_type(_VSTD::move(*__first2));\n            __d.__incr((value_type*)0);\n            ++__first2;\n        }\n        else\n        {\n            ::new (__result) value_type(_VSTD::move(*__first1));\n            __d.__incr((value_type*)0);\n            ++__first1;\n        }\n    }\n}\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator>\nvoid\n__merge_move_assign(_InputIterator1 __first1, _InputIterator1 __last1,\n        _InputIterator2 __first2, _InputIterator2 __last2,\n        _OutputIterator __result, _Compare __comp)\n{\n    for (; __first1 != __last1; ++__result)\n    {\n        if (__first2 == __last2)\n        {\n            for (; __first1 != __last1; ++__first1, ++__result)\n                *__result = _VSTD::move(*__first1);\n            return;\n        }\n        if (__comp(*__first2, *__first1))\n        {\n            *__result = _VSTD::move(*__first2);\n            ++__first2;\n        }\n        else\n        {\n            *__result = _VSTD::move(*__first1);\n            ++__first1;\n        }\n    }\n    for (; __first2 != __last2; ++__first2, ++__result)\n        *__result = _VSTD::move(*__first2);\n}\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp,\n              typename iterator_traits<_RandomAccessIterator>::difference_type __len,\n              typename iterator_traits<_RandomAccessIterator>::value_type* __buff, ptrdiff_t __buff_size);\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__stable_sort_move(_RandomAccessIterator __first1, _RandomAccessIterator __last1, _Compare __comp,\n                   typename iterator_traits<_RandomAccessIterator>::difference_type __len,\n                   typename iterator_traits<_RandomAccessIterator>::value_type* __first2)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n    switch (__len)\n    {\n    case 0:\n        return;\n    case 1:\n        ::new(__first2) value_type(_VSTD::move(*__first1));\n        return;\n    case 2:\n       __destruct_n __d(0);\n        unique_ptr<value_type, __destruct_n&> __h2(__first2, __d);\n         if (__comp(*--__last1, *__first1))\n        {\n            ::new(__first2) value_type(_VSTD::move(*__last1));\n            __d.__incr((value_type*)0);\n            ++__first2;\n            ::new(__first2) value_type(_VSTD::move(*__first1));\n        }\n        else\n        {\n            ::new(__first2) value_type(_VSTD::move(*__first1));\n            __d.__incr((value_type*)0);\n            ++__first2;\n            ::new(__first2) value_type(_VSTD::move(*__last1));\n        }\n        __h2.release();\n        return;\n    }\n    if (__len <= 8)\n    {\n        __insertion_sort_move<_Compare>(__first1, __last1, __first2, __comp);\n        return;\n    }\n    typename iterator_traits<_RandomAccessIterator>::difference_type __l2 = __len / 2;\n    _RandomAccessIterator __m = __first1 + __l2;\n    __stable_sort<_Compare>(__first1, __m, __comp, __l2, __first2, __l2);\n    __stable_sort<_Compare>(__m, __last1, __comp, __len - __l2, __first2 + __l2, __len - __l2);\n    __merge_move_construct<_Compare>(__first1, __m, __m, __last1, __first2, __comp);\n}\n\ntemplate <class _Tp>\nstruct __stable_sort_switch\n{\n    static const unsigned value = 128*is_trivially_copy_assignable<_Tp>::value;\n};\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__stable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp,\n              typename iterator_traits<_RandomAccessIterator>::difference_type __len,\n              typename iterator_traits<_RandomAccessIterator>::value_type* __buff, ptrdiff_t __buff_size)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    switch (__len)\n    {\n    case 0:\n    case 1:\n        return;\n    case 2:\n        if (__comp(*--__last, *__first))\n            swap(*__first, *__last);\n        return;\n    }\n    if (__len <= static_cast<difference_type>(__stable_sort_switch<value_type>::value))\n    {\n        __insertion_sort<_Compare>(__first, __last, __comp);\n        return;\n    }\n    typename iterator_traits<_RandomAccessIterator>::difference_type __l2 = __len / 2;\n    _RandomAccessIterator __m = __first + __l2;\n    if (__len <= __buff_size)\n    {\n        __destruct_n __d(0);\n        unique_ptr<value_type, __destruct_n&> __h2(__buff, __d);\n        __stable_sort_move<_Compare>(__first, __m, __comp, __l2, __buff);\n        __d.__set(__l2, (value_type*)0);\n        __stable_sort_move<_Compare>(__m, __last, __comp, __len - __l2, __buff + __l2);\n        __d.__set(__len, (value_type*)0);\n        __merge_move_assign<_Compare>(__buff, __buff + __l2, __buff + __l2, __buff + __len, __first, __comp);\n//         __merge<_Compare>(move_iterator<value_type*>(__buff),\n//                           move_iterator<value_type*>(__buff + __l2),\n//                           move_iterator<_RandomAccessIterator>(__buff + __l2),\n//                           move_iterator<_RandomAccessIterator>(__buff + __len),\n//                           __first, __comp);\n        return;\n    }\n    __stable_sort<_Compare>(__first, __m, __comp, __l2, __buff, __buff_size);\n    __stable_sort<_Compare>(__m, __last, __comp, __len - __l2, __buff, __buff_size);\n    __inplace_merge<_Compare>(__first, __m, __last, __comp, __l2, __len - __l2, __buff, __buff_size);\n}\n\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nstable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    difference_type __len = __last - __first;\n    pair<value_type*, ptrdiff_t> __buf(0, 0);\n    unique_ptr<value_type, __return_temporary_buffer> __h;\n    if (__len > static_cast<difference_type>(__stable_sort_switch<value_type>::value))\n    {\n        __buf = _VSTD::get_temporary_buffer<value_type>(__len);\n        __h.reset(__buf.first);\n    }\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    __stable_sort<_Comp_ref>(__first, __last, __c, __len, __buf.first, __buf.second);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    __stable_sort<_Comp_ref>(__first, __last, __comp, __len, __buf.first, __buf.second);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nstable_sort(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    _VSTD::stable_sort(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// is_heap_until\n\ntemplate <class _RandomAccessIterator, class _Compare>\n_RandomAccessIterator\nis_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n    typedef typename _VSTD::iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    difference_type __len = __last - __first;\n    difference_type __p = 0;\n    difference_type __c = 1;\n    _RandomAccessIterator __pp = __first;\n    while (__c < __len)\n    {\n        _RandomAccessIterator __cp = __first + __c;\n        if (__comp(*__pp, *__cp))\n            return __cp;\n        ++__c;\n        ++__cp;\n        if (__c == __len)\n            return __last;\n        if (__comp(*__pp, *__cp))\n            return __cp;\n        ++__p;\n        ++__pp;\n        __c = 2 * __p + 1;\n    }\n    return __last;\n}\n\ntemplate<class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_RandomAccessIterator\nis_heap_until(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    return _VSTD::is_heap_until(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// is_heap\n\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nis_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n    return _VSTD::is_heap_until(__first, __last, __comp) == __last;\n}\n\ntemplate<class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nis_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    return _VSTD::is_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// push_heap\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__sift_up(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp,\n          typename iterator_traits<_RandomAccessIterator>::difference_type __len)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n    if (__len > 1)\n    {\n        __len = (__len - 2) / 2;\n        _RandomAccessIterator __ptr = __first + __len;\n        if (__comp(*__ptr, *--__last))\n        {\n            value_type __t(_VSTD::move(*__last));\n            do\n            {\n                *__last = _VSTD::move(*__ptr);\n                __last = __ptr;\n                if (__len == 0)\n                    break;\n                __len = (__len - 1) / 2;\n                __ptr = __first + __len;\n            } while (__comp(*__ptr, __t));\n            *__last = _VSTD::move(__t);\n        }\n    }\n}\n\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\npush_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    __sift_up<_Comp_ref>(__first, __last, __c, __last - __first);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    __sift_up<_Comp_ref>(__first, __last, __comp, __last - __first);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\npush_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    _VSTD::push_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// pop_heap\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__sift_down(_RandomAccessIterator __first, _RandomAccessIterator /*__last*/,\n            _Compare __comp,\n            typename iterator_traits<_RandomAccessIterator>::difference_type __len,\n            _RandomAccessIterator __start)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    typedef typename iterator_traits<_RandomAccessIterator>::value_type value_type;\n    // left-child of __start is at 2 * __start + 1\n    // right-child of __start is at 2 * __start + 2\n    difference_type __child = __start - __first;\n\n    if (__len < 2 || (__len - 2) / 2 < __child)\n        return;\n\n    __child = 2 * __child + 1;\n    _RandomAccessIterator __child_i = __first + __child;\n\n    if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + 1))) {\n        // right-child exists and is greater than left-child\n        ++__child_i;\n        ++__child;\n    }\n\n    // check if we are in heap-order\n    if (__comp(*__child_i, *__start))\n        // we are, __start is larger than it's largest child\n        return;\n\n    value_type __top(_VSTD::move(*__start));\n    do\n    {\n        // we are not in heap-order, swap the parent with it's largest child\n        *__start = _VSTD::move(*__child_i);\n        __start = __child_i;\n\n        if ((__len - 2) / 2 < __child)\n            break;\n\n        // recompute the child based off of the updated parent\n        __child = 2 * __child + 1;\n        __child_i = __first + __child;\n\n        if ((__child + 1) < __len && __comp(*__child_i, *(__child_i + 1))) {\n            // right-child exists and is greater than left-child\n            ++__child_i;\n            ++__child;\n        }\n\n        // check if we are in heap-order\n    } while (!__comp(*__child_i, __top));\n    *__start = _VSTD::move(__top);\n}\n\ntemplate <class _Compare, class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp,\n           typename iterator_traits<_RandomAccessIterator>::difference_type __len)\n{\n    if (__len > 1)\n    {\n        swap(*__first, *--__last);\n        __sift_down<_Compare>(__first, __last, __comp, __len - 1, __first);\n    }\n}\n\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\npop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    __pop_heap<_Comp_ref>(__first, __last, __c, __last - __first);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    __pop_heap<_Comp_ref>(__first, __last, __comp, __last - __first);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\npop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    _VSTD::pop_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// make_heap\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    difference_type __n = __last - __first;\n    if (__n > 1)\n    {\n        // start from the first parent, there is no need to consider children\n        for (difference_type __start = (__n - 2) / 2; __start >= 0; --__start)\n        {\n            __sift_down<_Compare>(__first, __last, __comp, __n, __first + __start);\n        }\n    }\n}\n\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nmake_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    __make_heap<_Comp_ref>(__first, __last, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    __make_heap<_Comp_ref>(__first, __last, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nmake_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    _VSTD::make_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// sort_heap\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    for (difference_type __n = __last - __first; __n > 1; --__last, --__n)\n        __pop_heap<_Compare>(__first, __last, __comp, __n);\n}\n\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nsort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    __sort_heap<_Comp_ref>(__first, __last, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    __sort_heap<_Comp_ref>(__first, __last, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nsort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    _VSTD::sort_heap(__first, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// partial_sort\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__partial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last,\n             _Compare __comp)\n{\n    __make_heap<_Compare>(__first, __middle, __comp);\n    typename iterator_traits<_RandomAccessIterator>::difference_type __len = __middle - __first;\n    for (_RandomAccessIterator __i = __middle; __i != __last; ++__i)\n    {\n        if (__comp(*__i, *__first))\n        {\n            swap(*__i, *__first);\n            __sift_down<_Compare>(__first, __middle, __comp, __len, __first);\n        }\n    }\n    __sort_heap<_Compare>(__first, __middle, __comp);\n}\n\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\npartial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last,\n             _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    __partial_sort<_Comp_ref>(__first, __middle, __last, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    __partial_sort<_Comp_ref>(__first, __middle, __last, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\npartial_sort(_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last)\n{\n    _VSTD::partial_sort(__first, __middle, __last,\n                       __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// partial_sort_copy\n\ntemplate <class _Compare, class _InputIterator, class _RandomAccessIterator>\n_RandomAccessIterator\n__partial_sort_copy(_InputIterator __first, _InputIterator __last,\n                    _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp)\n{\n    _RandomAccessIterator __r = __result_first;\n    if (__r != __result_last)\n    {\n        for (; __first != __last && __r != __result_last; (void) ++__first, ++__r)\n            *__r = *__first;\n        __make_heap<_Compare>(__result_first, __r, __comp);\n        typename iterator_traits<_RandomAccessIterator>::difference_type __len = __r - __result_first;\n        for (; __first != __last; ++__first)\n            if (__comp(*__first, *__result_first))\n            {\n                *__result_first = *__first;\n                __sift_down<_Compare>(__result_first, __r, __comp, __len, __result_first);\n            }\n        __sort_heap<_Compare>(__result_first, __r, __comp);\n    }\n    return __r;\n}\n\ntemplate <class _InputIterator, class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\n_RandomAccessIterator\npartial_sort_copy(_InputIterator __first, _InputIterator __last,\n                  _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __partial_sort_copy<_Comp_ref>(__first, __last, __result_first, __result_last, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __partial_sort_copy<_Comp_ref>(__first, __last, __result_first, __result_last, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _InputIterator, class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_RandomAccessIterator\npartial_sort_copy(_InputIterator __first, _InputIterator __last,\n                  _RandomAccessIterator __result_first, _RandomAccessIterator __result_last)\n{\n    return _VSTD::partial_sort_copy(__first, __last, __result_first, __result_last,\n                                   __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// nth_element\n\ntemplate <class _Compare, class _RandomAccessIterator>\nvoid\n__nth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp)\n{\n    // _Compare is known to be a reference type\n    typedef typename iterator_traits<_RandomAccessIterator>::difference_type difference_type;\n    const difference_type __limit = 7;\n    while (true)\n    {\n    __restart:\n        if (__nth == __last)\n            return;\n        difference_type __len = __last - __first;\n        switch (__len)\n        {\n        case 0:\n        case 1:\n            return;\n        case 2:\n            if (__comp(*--__last, *__first))\n                swap(*__first, *__last);\n            return;\n        case 3:\n            {\n            _RandomAccessIterator __m = __first;\n            _VSTD::__sort3<_Compare>(__first, ++__m, --__last, __comp);\n            return;\n            }\n        }\n        if (__len <= __limit)\n        {\n            __selection_sort<_Compare>(__first, __last, __comp);\n            return;\n        }\n        // __len > __limit >= 3\n        _RandomAccessIterator __m = __first + __len/2;\n        _RandomAccessIterator __lm1 = __last;\n        unsigned __n_swaps = _VSTD::__sort3<_Compare>(__first, __m, --__lm1, __comp);\n        // *__m is median\n        // partition [__first, __m) < *__m and *__m <= [__m, __last)\n        // (this inhibits tossing elements equivalent to __m around unnecessarily)\n        _RandomAccessIterator __i = __first;\n        _RandomAccessIterator __j = __lm1;\n        // j points beyond range to be tested, *__lm1 is known to be <= *__m\n        // The search going up is known to be guarded but the search coming down isn't.\n        // Prime the downward search with a guard.\n        if (!__comp(*__i, *__m))  // if *__first == *__m\n        {\n            // *__first == *__m, *__first doesn't go in first part\n            // manually guard downward moving __j against __i\n            while (true)\n            {\n                if (__i == --__j)\n                {\n                    // *__first == *__m, *__m <= all other elements\n                    // Parition instead into [__first, __i) == *__first and *__first < [__i, __last)\n                    ++__i;  // __first + 1\n                    __j = __last;\n                    if (!__comp(*__first, *--__j))  // we need a guard if *__first == *(__last-1)\n                    {\n                        while (true)\n                        {\n                            if (__i == __j)\n                                return;  // [__first, __last) all equivalent elements\n                            if (__comp(*__first, *__i))\n                            {\n                                swap(*__i, *__j);\n                                ++__n_swaps;\n                                ++__i;\n                                break;\n                            }\n                            ++__i;\n                        }\n                    }\n                    // [__first, __i) == *__first and *__first < [__j, __last) and __j == __last - 1\n                    if (__i == __j)\n                        return;\n                    while (true)\n                    {\n                        while (!__comp(*__first, *__i))\n                            ++__i;\n                        while (__comp(*__first, *--__j))\n                            ;\n                        if (__i >= __j)\n                            break;\n                        swap(*__i, *__j);\n                        ++__n_swaps;\n                        ++__i;\n                    }\n                    // [__first, __i) == *__first and *__first < [__i, __last)\n                    // The first part is sorted,\n                    if (__nth < __i)\n                        return;\n                    // __nth_element the secod part\n                    // __nth_element<_Compare>(__i, __nth, __last, __comp);\n                    __first = __i;\n                    goto __restart;\n                }\n                if (__comp(*__j, *__m))\n                {\n                    swap(*__i, *__j);\n                    ++__n_swaps;\n                    break;  // found guard for downward moving __j, now use unguarded partition\n                }\n            }\n        }\n        ++__i;\n        // j points beyond range to be tested, *__lm1 is known to be <= *__m\n        // if not yet partitioned...\n        if (__i < __j)\n        {\n            // known that *(__i - 1) < *__m\n            while (true)\n            {\n                // __m still guards upward moving __i\n                while (__comp(*__i, *__m))\n                    ++__i;\n                // It is now known that a guard exists for downward moving __j\n                while (!__comp(*--__j, *__m))\n                    ;\n                if (__i >= __j)\n                    break;\n                swap(*__i, *__j);\n                ++__n_swaps;\n                // It is known that __m != __j\n                // If __m just moved, follow it\n                if (__m == __i)\n                    __m = __j;\n                ++__i;\n            }\n        }\n        // [__first, __i) < *__m and *__m <= [__i, __last)\n        if (__i != __m && __comp(*__m, *__i))\n        {\n            swap(*__i, *__m);\n            ++__n_swaps;\n        }\n        // [__first, __i) < *__i and *__i <= [__i+1, __last)\n        if (__nth == __i)\n            return;\n        if (__n_swaps == 0)\n        {\n            // We were given a perfectly partitioned sequence.  Coincidence?\n            if (__nth < __i)\n            {\n                // Check for [__first, __i) already sorted\n                __j = __m = __first;\n                while (++__j != __i)\n                {\n                    if (__comp(*__j, *__m))\n                        // not yet sorted, so sort\n                        goto not_sorted;\n                    __m = __j;\n                }\n                // [__first, __i) sorted\n                return;\n            }\n            else\n            {\n                // Check for [__i, __last) already sorted\n                __j = __m = __i;\n                while (++__j != __last)\n                {\n                    if (__comp(*__j, *__m))\n                        // not yet sorted, so sort\n                        goto not_sorted;\n                    __m = __j;\n                }\n                // [__i, __last) sorted\n                return;\n            }\n        }\nnot_sorted:\n        // __nth_element on range containing __nth\n        if (__nth < __i)\n        {\n            // __nth_element<_Compare>(__first, __nth, __i, __comp);\n            __last = __i;\n        }\n        else\n        {\n            // __nth_element<_Compare>(__i+1, __nth, __last, __comp);\n            __first = ++__i;\n        }\n    }\n}\n\ntemplate <class _RandomAccessIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nnth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    __nth_element<_Comp_ref>(__first, __nth, __last, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    __nth_element<_Comp_ref>(__first, __nth, __last, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _RandomAccessIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nnth_element(_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last)\n{\n    _VSTD::nth_element(__first, __nth, __last, __less<typename iterator_traits<_RandomAccessIterator>::value_type>());\n}\n\n// includes\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2>\nbool\n__includes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2,\n           _Compare __comp)\n{\n    for (; __first2 != __last2; ++__first1)\n    {\n        if (__first1 == __last1 || __comp(*__first2, *__first1))\n            return false;\n        if (!__comp(*__first1, *__first2))\n            ++__first2;\n    }\n    return true;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nincludes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2,\n         _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __includes<_Comp_ref>(__first1, __last1, __first2, __last2, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __includes<_Comp_ref>(__first1, __last1, __first2, __last2, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _InputIterator1, class _InputIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nincludes(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2)\n{\n    return _VSTD::includes(__first1, __last1, __first2, __last2,\n                          __less<typename iterator_traits<_InputIterator1>::value_type,\n                                 typename iterator_traits<_InputIterator2>::value_type>());\n}\n\n// set_union\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator>\n_OutputIterator\n__set_union(_InputIterator1 __first1, _InputIterator1 __last1,\n            _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n    for (; __first1 != __last1; ++__result)\n    {\n        if (__first2 == __last2)\n            return _VSTD::copy(__first1, __last1, __result);\n        if (__comp(*__first2, *__first1))\n        {\n            *__result = *__first2;\n            ++__first2;\n        }\n        else\n        {\n            *__result = *__first1;\n            if (!__comp(*__first1, *__first2))\n                ++__first2;\n            ++__first1;\n        }\n    }\n    return _VSTD::copy(__first2, __last2, __result);\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nset_union(_InputIterator1 __first1, _InputIterator1 __last1,\n          _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __set_union<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __set_union<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nset_union(_InputIterator1 __first1, _InputIterator1 __last1,\n          _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)\n{\n    return _VSTD::set_union(__first1, __last1, __first2, __last2, __result,\n                          __less<typename iterator_traits<_InputIterator1>::value_type,\n                                 typename iterator_traits<_InputIterator2>::value_type>());\n}\n\n// set_intersection\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator>\n_OutputIterator\n__set_intersection(_InputIterator1 __first1, _InputIterator1 __last1,\n                   _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n    while (__first1 != __last1 && __first2 != __last2)\n    {\n        if (__comp(*__first1, *__first2))\n            ++__first1;\n        else\n        {\n            if (!__comp(*__first2, *__first1))\n            {\n                *__result = *__first1;\n                ++__result;\n                ++__first1;\n            }\n            ++__first2;\n        }\n    }\n    return __result;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nset_intersection(_InputIterator1 __first1, _InputIterator1 __last1,\n                 _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __set_intersection<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __set_intersection<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nset_intersection(_InputIterator1 __first1, _InputIterator1 __last1,\n                 _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)\n{\n    return _VSTD::set_intersection(__first1, __last1, __first2, __last2, __result,\n                                  __less<typename iterator_traits<_InputIterator1>::value_type,\n                                         typename iterator_traits<_InputIterator2>::value_type>());\n}\n\n// set_difference\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator>\n_OutputIterator\n__set_difference(_InputIterator1 __first1, _InputIterator1 __last1,\n                 _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n    while (__first1 != __last1)\n    {\n        if (__first2 == __last2)\n            return _VSTD::copy(__first1, __last1, __result);\n        if (__comp(*__first1, *__first2))\n        {\n            *__result = *__first1;\n            ++__result;\n            ++__first1;\n        }\n        else\n        {\n            if (!__comp(*__first2, *__first1))\n                ++__first1;\n            ++__first2;\n        }\n    }\n    return __result;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nset_difference(_InputIterator1 __first1, _InputIterator1 __last1,\n               _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __set_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __set_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nset_difference(_InputIterator1 __first1, _InputIterator1 __last1,\n               _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)\n{\n    return _VSTD::set_difference(__first1, __last1, __first2, __last2, __result,\n                                __less<typename iterator_traits<_InputIterator1>::value_type,\n                                       typename iterator_traits<_InputIterator2>::value_type>());\n}\n\n// set_symmetric_difference\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2, class _OutputIterator>\n_OutputIterator\n__set_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,\n                           _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n    while (__first1 != __last1)\n    {\n        if (__first2 == __last2)\n            return _VSTD::copy(__first1, __last1, __result);\n        if (__comp(*__first1, *__first2))\n        {\n            *__result = *__first1;\n            ++__result;\n            ++__first1;\n        }\n        else\n        {\n            if (__comp(*__first2, *__first1))\n            {\n                *__result = *__first2;\n                ++__result;\n            }\n            else\n                ++__first1;\n            ++__first2;\n        }\n    }\n    return _VSTD::copy(__first2, __last2, __result);\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nset_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,\n                         _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __set_symmetric_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __set_symmetric_difference<_Comp_ref>(__first1, __last1, __first2, __last2, __result, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nset_symmetric_difference(_InputIterator1 __first1, _InputIterator1 __last1,\n                         _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)\n{\n    return _VSTD::set_symmetric_difference(__first1, __last1, __first2, __last2, __result,\n                                          __less<typename iterator_traits<_InputIterator1>::value_type,\n                                                 typename iterator_traits<_InputIterator2>::value_type>());\n}\n\n// lexicographical_compare\n\ntemplate <class _Compare, class _InputIterator1, class _InputIterator2>\nbool\n__lexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,\n                          _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)\n{\n    for (; __first2 != __last2; ++__first1, (void) ++__first2)\n    {\n        if (__first1 == __last1 || __comp(*__first1, *__first2))\n            return true;\n        if (__comp(*__first2, *__first1))\n            return false;\n    }\n    return false;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nlexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,\n                        _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __lexicographical_compare<_Comp_ref>(__first1, __last1, __first2, __last2, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __lexicographical_compare<_Comp_ref>(__first1, __last1, __first2, __last2, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _InputIterator1, class _InputIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nlexicographical_compare(_InputIterator1 __first1, _InputIterator1 __last1,\n                        _InputIterator2 __first2, _InputIterator2 __last2)\n{\n    return _VSTD::lexicographical_compare(__first1, __last1, __first2, __last2,\n                                         __less<typename iterator_traits<_InputIterator1>::value_type,\n                                                typename iterator_traits<_InputIterator2>::value_type>());\n}\n\n// next_permutation\n\ntemplate <class _Compare, class _BidirectionalIterator>\nbool\n__next_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)\n{\n    _BidirectionalIterator __i = __last;\n    if (__first == __last || __first == --__i)\n        return false;\n    while (true)\n    {\n        _BidirectionalIterator __ip1 = __i;\n        if (__comp(*--__i, *__ip1))\n        {\n            _BidirectionalIterator __j = __last;\n            while (!__comp(*__i, *--__j))\n                ;\n            swap(*__i, *__j);\n            _VSTD::reverse(__ip1, __last);\n            return true;\n        }\n        if (__i == __first)\n        {\n            _VSTD::reverse(__first, __last);\n            return false;\n        }\n    }\n}\n\ntemplate <class _BidirectionalIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nnext_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __next_permutation<_Comp_ref>(__first, __last, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __next_permutation<_Comp_ref>(__first, __last, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _BidirectionalIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nnext_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last)\n{\n    return _VSTD::next_permutation(__first, __last,\n                                  __less<typename iterator_traits<_BidirectionalIterator>::value_type>());\n}\n\n// prev_permutation\n\ntemplate <class _Compare, class _BidirectionalIterator>\nbool\n__prev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)\n{\n    _BidirectionalIterator __i = __last;\n    if (__first == __last || __first == --__i)\n        return false;\n    while (true)\n    {\n        _BidirectionalIterator __ip1 = __i;\n        if (__comp(*__ip1, *--__i))\n        {\n            _BidirectionalIterator __j = __last;\n            while (!__comp(*--__j, *__i))\n                ;\n            swap(*__i, *__j);\n            _VSTD::reverse(__ip1, __last);\n            return true;\n        }\n        if (__i == __first)\n        {\n            _VSTD::reverse(__first, __last);\n            return false;\n        }\n    }\n}\n\ntemplate <class _BidirectionalIterator, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nprev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)\n{\n#ifdef _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<__debug_less<_Compare> >::type _Comp_ref;\n    __debug_less<_Compare> __c(__comp);\n    return __prev_permutation<_Comp_ref>(__first, __last, __c);\n#else  // _LIBCPP_DEBUG\n    typedef typename add_lvalue_reference<_Compare>::type _Comp_ref;\n    return __prev_permutation<_Comp_ref>(__first, __last, __comp);\n#endif  // _LIBCPP_DEBUG\n}\n\ntemplate <class _BidirectionalIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nprev_permutation(_BidirectionalIterator __first, _BidirectionalIterator __last)\n{\n    return _VSTD::prev_permutation(__first, __last,\n                                  __less<typename iterator_traits<_BidirectionalIterator>::value_type>());\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_ALGORITHM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/array",
    "content": "// -*- C++ -*-\n//===---------------------------- array -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_ARRAY\n#define _LIBCPP_ARRAY\n\n/*\n    array synopsis\n\nnamespace std\n{\ntemplate <class T, size_t N >\nstruct array\n{\n    // types:\n    typedef T & reference;\n    typedef const T & const_reference;\n    typedef implementation defined iterator;\n    typedef implementation defined const_iterator;\n    typedef size_t size_type;\n    typedef ptrdiff_t difference_type;\n    typedef T value_type;\n    typedef T* pointer;\n    typedef const T* const_pointer;\n    typedef std::reverse_iterator<iterator> reverse_iterator;\n    typedef std::reverse_iterator<const_iterator> const_reverse_iterator;\n\n    // No explicit construct/copy/destroy for aggregate type\n    void fill(const T& u);\n    void swap(array& a) noexcept(is_nothrow_swappable_v<T>);\n\n    // iterators:\n    iterator begin() noexcept;\n    const_iterator begin() const noexcept;\n    iterator end() noexcept;\n    const_iterator end() const noexcept;\n\n    reverse_iterator rbegin() noexcept;\n    const_reverse_iterator rbegin() const noexcept;\n    reverse_iterator rend() noexcept;\n    const_reverse_iterator rend() const noexcept;\n\n    const_iterator cbegin() const noexcept;\n    const_iterator cend() const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend() const noexcept;\n\n    // capacity:\n    constexpr size_type size() const noexcept;\n    constexpr size_type max_size() const noexcept;\n    constexpr bool empty() const noexcept;\n\n    // element access:\n    reference operator[](size_type n);\n    const_reference operator[](size_type n) const; // constexpr in C++14\n    const_reference at(size_type n) const; // constexpr in C++14\n    reference at(size_type n);\n\n    reference front();\n    const_reference front() const; // constexpr in C++14\n    reference back();\n    const_reference back() const; // constexpr in C++14\n\n    T* data() noexcept;\n    const T* data() const noexcept;\n};\n\ntemplate <class T, size_t N>\n  bool operator==(const array<T,N>& x, const array<T,N>& y);\ntemplate <class T, size_t N>\n  bool operator!=(const array<T,N>& x, const array<T,N>& y);\ntemplate <class T, size_t N>\n  bool operator<(const array<T,N>& x, const array<T,N>& y);\ntemplate <class T, size_t N>\n  bool operator>(const array<T,N>& x, const array<T,N>& y);\ntemplate <class T, size_t N>\n  bool operator<=(const array<T,N>& x, const array<T,N>& y);\ntemplate <class T, size_t N>\n  bool operator>=(const array<T,N>& x, const array<T,N>& y);\n\ntemplate <class T, size_t N >\n  void swap(array<T,N>& x, array<T,N>& y) noexcept(noexcept(x.swap(y)));\n\ntemplate <class T> class tuple_size;\ntemplate <size_t I, class T> class tuple_element;\ntemplate <class T, size_t N> struct tuple_size<array<T, N>>;\ntemplate <size_t I, class T, size_t N> struct tuple_element<I, array<T, N>>;\ntemplate <size_t I, class T, size_t N> T& get(array<T, N>&) noexcept; // constexpr in C++14\ntemplate <size_t I, class T, size_t N> const T& get(const array<T, N>&) noexcept; // constexpr in C++14\ntemplate <size_t I, class T, size_t N> T&& get(array<T, N>&&) noexcept; // constexpr in C++14\ntemplate <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexcept; // constexpr in C++14\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__tuple>\n#include <type_traits>\n#include <utility>\n#include <iterator>\n#include <algorithm>\n#include <stdexcept>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp, size_t _Size>\nstruct _LIBCPP_TEMPLATE_VIS array\n{\n    // types:\n    typedef array __self;\n    typedef _Tp                                   value_type;\n    typedef value_type&                           reference;\n    typedef const value_type&                     const_reference;\n    typedef value_type*                           iterator;\n    typedef const value_type*                     const_iterator;\n    typedef value_type*                           pointer;\n    typedef const value_type*                     const_pointer;\n    typedef size_t                                size_type;\n    typedef ptrdiff_t                             difference_type;\n    typedef std::reverse_iterator<iterator>       reverse_iterator;\n    typedef std::reverse_iterator<const_iterator> const_reverse_iterator;\n\n    value_type __elems_[_Size > 0 ? _Size : 1];\n\n    // No explicit construct/copy/destroy for aggregate type\n    _LIBCPP_INLINE_VISIBILITY void fill(const value_type& __u)\n        {_VSTD::fill_n(__elems_, _Size, __u);}\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(array& __a) _NOEXCEPT_(_Size == 0 || __is_nothrow_swappable<_Tp>::value)\n        { __swap_dispatch((std::integral_constant<bool, _Size == 0>()), __a); }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __swap_dispatch(std::true_type, array&) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __swap_dispatch(std::false_type, array& __a)\n        { _VSTD::swap_ranges(__elems_, __elems_ + _Size, __a.__elems_);}\n\n    // iterators:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    iterator begin() _NOEXCEPT {return iterator(__elems_);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const_iterator begin() const _NOEXCEPT {return const_iterator(__elems_);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    iterator end() _NOEXCEPT {return iterator(__elems_ + _Size);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const_iterator end() const _NOEXCEPT {return const_iterator(__elems_ + _Size);}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator rbegin() _NOEXCEPT {return reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const_reverse_iterator rbegin() const _NOEXCEPT {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator rend() _NOEXCEPT {return reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const_reverse_iterator rend() const _NOEXCEPT {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const_iterator cbegin() const _NOEXCEPT {return begin();}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const_iterator cend() const _NOEXCEPT {return end();}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const_reverse_iterator crbegin() const _NOEXCEPT {return rbegin();}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const_reverse_iterator crend() const _NOEXCEPT {return rend();}\n\n    // capacity:\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR size_type size() const _NOEXCEPT {return _Size;}\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR size_type max_size() const _NOEXCEPT {return _Size;}\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR bool empty() const _NOEXCEPT {return _Size == 0;}\n\n    // element access:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reference operator[](size_type __n)             {return __elems_[__n];}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    const_reference operator[](size_type __n) const {return __elems_[__n];}\n\n    _LIBCPP_CONSTEXPR_AFTER_CXX14       reference at(size_type __n);\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference at(size_type __n) const;\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 reference front()             {return __elems_[0];}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference front() const {return __elems_[0];}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 reference back()              {return __elems_[_Size > 0 ? _Size-1 : 0];}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const_reference back() const  {return __elems_[_Size > 0 ? _Size-1 : 0];}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    value_type* data() _NOEXCEPT {return __elems_;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    const value_type* data() const _NOEXCEPT {return __elems_;}\n};\n\ntemplate <class _Tp, size_t _Size>\n_LIBCPP_CONSTEXPR_AFTER_CXX14\ntypename array<_Tp, _Size>::reference\narray<_Tp, _Size>::at(size_type __n)\n{\n    if (__n >= _Size)\n        __throw_out_of_range(\"array::at\");\n\n    return __elems_[__n];\n}\n\ntemplate <class _Tp, size_t _Size>\n_LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename array<_Tp, _Size>::const_reference\narray<_Tp, _Size>::at(size_type __n) const\n{\n    if (__n >= _Size)\n        __throw_out_of_range(\"array::at\");\n    return __elems_[__n];\n}\n\ntemplate <class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)\n{\n    return _VSTD::equal(__x.__elems_, __x.__elems_ + _Size, __y.__elems_);\n}\n\ntemplate <class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.__elems_, __x.__elems_ + _Size, __y.__elems_, __y.__elems_ + _Size);\n}\n\ntemplate <class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const array<_Tp, _Size>& __x, const array<_Tp, _Size>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    _Size == 0 ||\n    __is_swappable<_Tp>::value,\n    void\n>::type\nswap(array<_Tp, _Size>& __x, array<_Tp, _Size>& __y)\n                                  _NOEXCEPT_(noexcept(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Tp, size_t _Size>\nclass _LIBCPP_TEMPLATE_VIS tuple_size<array<_Tp, _Size> >\n    : public integral_constant<size_t, _Size> {};\n\ntemplate <size_t _Ip, class _Tp, size_t _Size>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, array<_Tp, _Size> >\n{\n    static_assert(_Ip < _Size, \"Index out of bounds in std::tuple_element<> (std::array)\");\npublic:\n    typedef _Tp type;\n};\n\ntemplate <size_t _Ip, class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp&\nget(array<_Tp, _Size>& __a) _NOEXCEPT\n{\n    static_assert(_Ip < _Size, \"Index out of bounds in std::get<> (std::array)\");\n    return __a.__elems_[_Ip];\n}\n\ntemplate <size_t _Ip, class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Tp&\nget(const array<_Tp, _Size>& __a) _NOEXCEPT\n{\n    static_assert(_Ip < _Size, \"Index out of bounds in std::get<> (const std::array)\");\n    return __a.__elems_[_Ip];\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <size_t _Ip, class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp&&\nget(array<_Tp, _Size>&& __a) _NOEXCEPT\n{\n    static_assert(_Ip < _Size, \"Index out of bounds in std::get<> (std::array &&)\");\n    return _VSTD::move(__a.__elems_[_Ip]);\n}\n\ntemplate <size_t _Ip, class _Tp, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Tp&&\nget(const array<_Tp, _Size>&& __a) _NOEXCEPT\n{\n    static_assert(_Ip < _Size, \"Index out of bounds in std::get<> (const std::array &&)\");\n    return _VSTD::move(__a.__elems_[_Ip]);\n}\n\n#endif  // !_LIBCPP_CXX03_LANG\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_ARRAY\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/atomic",
    "content": "// -*- C++ -*-\n//===--------------------------- atomic -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_ATOMIC\n#define _LIBCPP_ATOMIC\n\n/*\n    atomic synopsis\n\nnamespace std\n{\n\n// feature test macro\n\n#define __cpp_lib_atomic_is_always_lock_free // as specified by SG10\n\n// order and consistency\n\ntypedef enum memory_order\n{\n    memory_order_relaxed,\n    memory_order_consume,  // load-consume\n    memory_order_acquire,  // load-acquire\n    memory_order_release,  // store-release\n    memory_order_acq_rel,  // store-release load-acquire\n    memory_order_seq_cst   // store-release load-acquire\n} memory_order;\n\ntemplate <class T> T kill_dependency(T y) noexcept;\n\n// lock-free property\n\n#define ATOMIC_BOOL_LOCK_FREE unspecified\n#define ATOMIC_CHAR_LOCK_FREE unspecified\n#define ATOMIC_CHAR16_T_LOCK_FREE unspecified\n#define ATOMIC_CHAR32_T_LOCK_FREE unspecified\n#define ATOMIC_WCHAR_T_LOCK_FREE unspecified\n#define ATOMIC_SHORT_LOCK_FREE unspecified\n#define ATOMIC_INT_LOCK_FREE unspecified\n#define ATOMIC_LONG_LOCK_FREE unspecified\n#define ATOMIC_LLONG_LOCK_FREE unspecified\n#define ATOMIC_POINTER_LOCK_FREE unspecified\n\n// flag type and operations\n\ntypedef struct atomic_flag\n{\n    bool test_and_set(memory_order m = memory_order_seq_cst) volatile noexcept;\n    bool test_and_set(memory_order m = memory_order_seq_cst) noexcept;\n    void clear(memory_order m = memory_order_seq_cst) volatile noexcept;\n    void clear(memory_order m = memory_order_seq_cst) noexcept;\n    atomic_flag()  noexcept = default;\n    atomic_flag(const atomic_flag&) = delete;\n    atomic_flag& operator=(const atomic_flag&) = delete;\n    atomic_flag& operator=(const atomic_flag&) volatile = delete;\n} atomic_flag;\n\nbool\n    atomic_flag_test_and_set(volatile atomic_flag* obj) noexcept;\n\nbool\n    atomic_flag_test_and_set(atomic_flag* obj) noexcept;\n\nbool\n    atomic_flag_test_and_set_explicit(volatile atomic_flag* obj,\n                                      memory_order m) noexcept;\n\nbool\n    atomic_flag_test_and_set_explicit(atomic_flag* obj, memory_order m) noexcept;\n\nvoid\n    atomic_flag_clear(volatile atomic_flag* obj) noexcept;\n\nvoid\n    atomic_flag_clear(atomic_flag* obj) noexcept;\n\nvoid\n    atomic_flag_clear_explicit(volatile atomic_flag* obj, memory_order m) noexcept;\n\nvoid\n    atomic_flag_clear_explicit(atomic_flag* obj, memory_order m) noexcept;\n\n#define ATOMIC_FLAG_INIT see below\n#define ATOMIC_VAR_INIT(value) see below\n\ntemplate <class T>\nstruct atomic\n{\n    static constexpr bool is_always_lock_free;\n    bool is_lock_free() const volatile noexcept;\n    bool is_lock_free() const noexcept;\n    void store(T desr, memory_order m = memory_order_seq_cst) volatile noexcept;\n    void store(T desr, memory_order m = memory_order_seq_cst) noexcept;\n    T load(memory_order m = memory_order_seq_cst) const volatile noexcept;\n    T load(memory_order m = memory_order_seq_cst) const noexcept;\n    operator T() const volatile noexcept;\n    operator T() const noexcept;\n    T exchange(T desr, memory_order m = memory_order_seq_cst) volatile noexcept;\n    T exchange(T desr, memory_order m = memory_order_seq_cst) noexcept;\n    bool compare_exchange_weak(T& expc, T desr,\n                               memory_order s, memory_order f) volatile noexcept;\n    bool compare_exchange_weak(T& expc, T desr, memory_order s, memory_order f) noexcept;\n    bool compare_exchange_strong(T& expc, T desr,\n                                 memory_order s, memory_order f) volatile noexcept;\n    bool compare_exchange_strong(T& expc, T desr,\n                                 memory_order s, memory_order f) noexcept;\n    bool compare_exchange_weak(T& expc, T desr,\n                               memory_order m = memory_order_seq_cst) volatile noexcept;\n    bool compare_exchange_weak(T& expc, T desr,\n                               memory_order m = memory_order_seq_cst) noexcept;\n    bool compare_exchange_strong(T& expc, T desr,\n                                memory_order m = memory_order_seq_cst) volatile noexcept;\n    bool compare_exchange_strong(T& expc, T desr,\n                                 memory_order m = memory_order_seq_cst) noexcept;\n\n    atomic() noexcept = default;\n    constexpr atomic(T desr) noexcept;\n    atomic(const atomic&) = delete;\n    atomic& operator=(const atomic&) = delete;\n    atomic& operator=(const atomic&) volatile = delete;\n    T operator=(T) volatile noexcept;\n    T operator=(T) noexcept;\n};\n\ntemplate <>\nstruct atomic<integral>\n{\n    static constexpr bool is_always_lock_free;\n    bool is_lock_free() const volatile noexcept;\n    bool is_lock_free() const noexcept;\n    void store(integral desr, memory_order m = memory_order_seq_cst) volatile noexcept;\n    void store(integral desr, memory_order m = memory_order_seq_cst) noexcept;\n    integral load(memory_order m = memory_order_seq_cst) const volatile noexcept;\n    integral load(memory_order m = memory_order_seq_cst) const noexcept;\n    operator integral() const volatile noexcept;\n    operator integral() const noexcept;\n    integral exchange(integral desr,\n                      memory_order m = memory_order_seq_cst) volatile noexcept;\n    integral exchange(integral desr, memory_order m = memory_order_seq_cst) noexcept;\n    bool compare_exchange_weak(integral& expc, integral desr,\n                               memory_order s, memory_order f) volatile noexcept;\n    bool compare_exchange_weak(integral& expc, integral desr,\n                               memory_order s, memory_order f) noexcept;\n    bool compare_exchange_strong(integral& expc, integral desr,\n                                 memory_order s, memory_order f) volatile noexcept;\n    bool compare_exchange_strong(integral& expc, integral desr,\n                                 memory_order s, memory_order f) noexcept;\n    bool compare_exchange_weak(integral& expc, integral desr,\n                               memory_order m = memory_order_seq_cst) volatile noexcept;\n    bool compare_exchange_weak(integral& expc, integral desr,\n                               memory_order m = memory_order_seq_cst) noexcept;\n    bool compare_exchange_strong(integral& expc, integral desr,\n                                memory_order m = memory_order_seq_cst) volatile noexcept;\n    bool compare_exchange_strong(integral& expc, integral desr,\n                                 memory_order m = memory_order_seq_cst) noexcept;\n\n    integral\n        fetch_add(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;\n    integral fetch_add(integral op, memory_order m = memory_order_seq_cst) noexcept;\n    integral\n        fetch_sub(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;\n    integral fetch_sub(integral op, memory_order m = memory_order_seq_cst) noexcept;\n    integral\n        fetch_and(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;\n    integral fetch_and(integral op, memory_order m = memory_order_seq_cst) noexcept;\n    integral\n        fetch_or(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;\n    integral fetch_or(integral op, memory_order m = memory_order_seq_cst) noexcept;\n    integral\n        fetch_xor(integral op, memory_order m = memory_order_seq_cst) volatile noexcept;\n    integral fetch_xor(integral op, memory_order m = memory_order_seq_cst) noexcept;\n\n    atomic() noexcept = default;\n    constexpr atomic(integral desr) noexcept;\n    atomic(const atomic&) = delete;\n    atomic& operator=(const atomic&) = delete;\n    atomic& operator=(const atomic&) volatile = delete;\n    integral operator=(integral desr) volatile noexcept;\n    integral operator=(integral desr) noexcept;\n\n    integral operator++(int) volatile noexcept;\n    integral operator++(int) noexcept;\n    integral operator--(int) volatile noexcept;\n    integral operator--(int) noexcept;\n    integral operator++() volatile noexcept;\n    integral operator++() noexcept;\n    integral operator--() volatile noexcept;\n    integral operator--() noexcept;\n    integral operator+=(integral op) volatile noexcept;\n    integral operator+=(integral op) noexcept;\n    integral operator-=(integral op) volatile noexcept;\n    integral operator-=(integral op) noexcept;\n    integral operator&=(integral op) volatile noexcept;\n    integral operator&=(integral op) noexcept;\n    integral operator|=(integral op) volatile noexcept;\n    integral operator|=(integral op) noexcept;\n    integral operator^=(integral op) volatile noexcept;\n    integral operator^=(integral op) noexcept;\n};\n\ntemplate <class T>\nstruct atomic<T*>\n{\n    static constexpr bool is_always_lock_free;\n    bool is_lock_free() const volatile noexcept;\n    bool is_lock_free() const noexcept;\n    void store(T* desr, memory_order m = memory_order_seq_cst) volatile noexcept;\n    void store(T* desr, memory_order m = memory_order_seq_cst) noexcept;\n    T* load(memory_order m = memory_order_seq_cst) const volatile noexcept;\n    T* load(memory_order m = memory_order_seq_cst) const noexcept;\n    operator T*() const volatile noexcept;\n    operator T*() const noexcept;\n    T* exchange(T* desr, memory_order m = memory_order_seq_cst) volatile noexcept;\n    T* exchange(T* desr, memory_order m = memory_order_seq_cst) noexcept;\n    bool compare_exchange_weak(T*& expc, T* desr,\n                               memory_order s, memory_order f) volatile noexcept;\n    bool compare_exchange_weak(T*& expc, T* desr,\n                               memory_order s, memory_order f) noexcept;\n    bool compare_exchange_strong(T*& expc, T* desr,\n                                 memory_order s, memory_order f) volatile noexcept;\n    bool compare_exchange_strong(T*& expc, T* desr,\n                                 memory_order s, memory_order f) noexcept;\n    bool compare_exchange_weak(T*& expc, T* desr,\n                               memory_order m = memory_order_seq_cst) volatile noexcept;\n    bool compare_exchange_weak(T*& expc, T* desr,\n                               memory_order m = memory_order_seq_cst) noexcept;\n    bool compare_exchange_strong(T*& expc, T* desr,\n                                memory_order m = memory_order_seq_cst) volatile noexcept;\n    bool compare_exchange_strong(T*& expc, T* desr,\n                                 memory_order m = memory_order_seq_cst) noexcept;\n    T* fetch_add(ptrdiff_t op, memory_order m = memory_order_seq_cst) volatile noexcept;\n    T* fetch_add(ptrdiff_t op, memory_order m = memory_order_seq_cst) noexcept;\n    T* fetch_sub(ptrdiff_t op, memory_order m = memory_order_seq_cst) volatile noexcept;\n    T* fetch_sub(ptrdiff_t op, memory_order m = memory_order_seq_cst) noexcept;\n\n    atomic() noexcept = default;\n    constexpr atomic(T* desr) noexcept;\n    atomic(const atomic&) = delete;\n    atomic& operator=(const atomic&) = delete;\n    atomic& operator=(const atomic&) volatile = delete;\n\n    T* operator=(T*) volatile noexcept;\n    T* operator=(T*) noexcept;\n    T* operator++(int) volatile noexcept;\n    T* operator++(int) noexcept;\n    T* operator--(int) volatile noexcept;\n    T* operator--(int) noexcept;\n    T* operator++() volatile noexcept;\n    T* operator++() noexcept;\n    T* operator--() volatile noexcept;\n    T* operator--() noexcept;\n    T* operator+=(ptrdiff_t op) volatile noexcept;\n    T* operator+=(ptrdiff_t op) noexcept;\n    T* operator-=(ptrdiff_t op) volatile noexcept;\n    T* operator-=(ptrdiff_t op) noexcept;\n};\n\n\ntemplate <class T>\n    bool\n    atomic_is_lock_free(const volatile atomic<T>* obj) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_is_lock_free(const atomic<T>* obj) noexcept;\n\ntemplate <class T>\n    void\n    atomic_init(volatile atomic<T>* obj, T desr) noexcept;\n\ntemplate <class T>\n    void\n    atomic_init(atomic<T>* obj, T desr) noexcept;\n\ntemplate <class T>\n    void\n    atomic_store(volatile atomic<T>* obj, T desr) noexcept;\n\ntemplate <class T>\n    void\n    atomic_store(atomic<T>* obj, T desr) noexcept;\n\ntemplate <class T>\n    void\n    atomic_store_explicit(volatile atomic<T>* obj, T desr, memory_order m) noexcept;\n\ntemplate <class T>\n    void\n    atomic_store_explicit(atomic<T>* obj, T desr, memory_order m) noexcept;\n\ntemplate <class T>\n    T\n    atomic_load(const volatile atomic<T>* obj) noexcept;\n\ntemplate <class T>\n    T\n    atomic_load(const atomic<T>* obj) noexcept;\n\ntemplate <class T>\n    T\n    atomic_load_explicit(const volatile atomic<T>* obj, memory_order m) noexcept;\n\ntemplate <class T>\n    T\n    atomic_load_explicit(const atomic<T>* obj, memory_order m) noexcept;\n\ntemplate <class T>\n    T\n    atomic_exchange(volatile atomic<T>* obj, T desr) noexcept;\n\ntemplate <class T>\n    T\n    atomic_exchange(atomic<T>* obj, T desr) noexcept;\n\ntemplate <class T>\n    T\n    atomic_exchange_explicit(volatile atomic<T>* obj, T desr, memory_order m) noexcept;\n\ntemplate <class T>\n    T\n    atomic_exchange_explicit(atomic<T>* obj, T desr, memory_order m) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_compare_exchange_weak(volatile atomic<T>* obj, T* expc, T desr) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_compare_exchange_weak(atomic<T>* obj, T* expc, T desr) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_compare_exchange_strong(volatile atomic<T>* obj, T* expc, T desr) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_compare_exchange_strong(atomic<T>* obj, T* expc, T desr) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_compare_exchange_weak_explicit(volatile atomic<T>* obj, T* expc,\n                                          T desr,\n                                          memory_order s, memory_order f) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_compare_exchange_weak_explicit(atomic<T>* obj, T* expc, T desr,\n                                          memory_order s, memory_order f) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_compare_exchange_strong_explicit(volatile atomic<T>* obj,\n                                            T* expc, T desr,\n                                            memory_order s, memory_order f) noexcept;\n\ntemplate <class T>\n    bool\n    atomic_compare_exchange_strong_explicit(atomic<T>* obj, T* expc,\n                                            T desr,\n                                            memory_order s, memory_order f) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_add(volatile atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_add(atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_add_explicit(volatile atomic<Integral>* obj, Integral op,\n                              memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_add_explicit(atomic<Integral>* obj, Integral op,\n                              memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_sub(volatile atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_sub(atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_sub_explicit(volatile atomic<Integral>* obj, Integral op,\n                              memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_sub_explicit(atomic<Integral>* obj, Integral op,\n                              memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_and(volatile atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_and(atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_and_explicit(volatile atomic<Integral>* obj, Integral op,\n                              memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_and_explicit(atomic<Integral>* obj, Integral op,\n                              memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_or(volatile atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_or(atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_or_explicit(volatile atomic<Integral>* obj, Integral op,\n                             memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_or_explicit(atomic<Integral>* obj, Integral op,\n                             memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_xor(volatile atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_xor(atomic<Integral>* obj, Integral op) noexcept;\n\ntemplate <class Integral>\n    Integral\n    atomic_fetch_xor_explicit(volatile atomic<Integral>* obj, Integral op,\n                              memory_order m) noexcept;\ntemplate <class Integral>\n    Integral\n    atomic_fetch_xor_explicit(atomic<Integral>* obj, Integral op,\n                              memory_order m) noexcept;\n\ntemplate <class T>\n    T*\n    atomic_fetch_add(volatile atomic<T*>* obj, ptrdiff_t op) noexcept;\n\ntemplate <class T>\n    T*\n    atomic_fetch_add(atomic<T*>* obj, ptrdiff_t op) noexcept;\n\ntemplate <class T>\n    T*\n    atomic_fetch_add_explicit(volatile atomic<T*>* obj, ptrdiff_t op,\n                              memory_order m) noexcept;\ntemplate <class T>\n    T*\n    atomic_fetch_add_explicit(atomic<T*>* obj, ptrdiff_t op, memory_order m) noexcept;\n\ntemplate <class T>\n    T*\n    atomic_fetch_sub(volatile atomic<T*>* obj, ptrdiff_t op) noexcept;\n\ntemplate <class T>\n    T*\n    atomic_fetch_sub(atomic<T*>* obj, ptrdiff_t op) noexcept;\n\ntemplate <class T>\n    T*\n    atomic_fetch_sub_explicit(volatile atomic<T*>* obj, ptrdiff_t op,\n                              memory_order m) noexcept;\ntemplate <class T>\n    T*\n    atomic_fetch_sub_explicit(atomic<T*>* obj, ptrdiff_t op, memory_order m) noexcept;\n\n// Atomics for standard typedef types\n\ntypedef atomic<bool>               atomic_bool;\ntypedef atomic<char>               atomic_char;\ntypedef atomic<signed char>        atomic_schar;\ntypedef atomic<unsigned char>      atomic_uchar;\ntypedef atomic<short>              atomic_short;\ntypedef atomic<unsigned short>     atomic_ushort;\ntypedef atomic<int>                atomic_int;\ntypedef atomic<unsigned int>       atomic_uint;\ntypedef atomic<long>               atomic_long;\ntypedef atomic<unsigned long>      atomic_ulong;\ntypedef atomic<long long>          atomic_llong;\ntypedef atomic<unsigned long long> atomic_ullong;\ntypedef atomic<char16_t>           atomic_char16_t;\ntypedef atomic<char32_t>           atomic_char32_t;\ntypedef atomic<wchar_t>            atomic_wchar_t;\n\ntypedef atomic<int_least8_t>   atomic_int_least8_t;\ntypedef atomic<uint_least8_t>  atomic_uint_least8_t;\ntypedef atomic<int_least16_t>  atomic_int_least16_t;\ntypedef atomic<uint_least16_t> atomic_uint_least16_t;\ntypedef atomic<int_least32_t>  atomic_int_least32_t;\ntypedef atomic<uint_least32_t> atomic_uint_least32_t;\ntypedef atomic<int_least64_t>  atomic_int_least64_t;\ntypedef atomic<uint_least64_t> atomic_uint_least64_t;\n\ntypedef atomic<int_fast8_t>   atomic_int_fast8_t;\ntypedef atomic<uint_fast8_t>  atomic_uint_fast8_t;\ntypedef atomic<int_fast16_t>  atomic_int_fast16_t;\ntypedef atomic<uint_fast16_t> atomic_uint_fast16_t;\ntypedef atomic<int_fast32_t>  atomic_int_fast32_t;\ntypedef atomic<uint_fast32_t> atomic_uint_fast32_t;\ntypedef atomic<int_fast64_t>  atomic_int_fast64_t;\ntypedef atomic<uint_fast64_t> atomic_uint_fast64_t;\n\ntypedef atomic<int8_t>   atomic_int8_t;\ntypedef atomic<uint8_t>  atomic_uint8_t;\ntypedef atomic<int16_t>  atomic_int16_t;\ntypedef atomic<uint16_t> atomic_uint16_t;\ntypedef atomic<int32_t>  atomic_int32_t;\ntypedef atomic<uint32_t> atomic_uint32_t;\ntypedef atomic<int64_t>  atomic_int64_t;\ntypedef atomic<uint64_t> atomic_uint64_t;\n\ntypedef atomic<intptr_t>  atomic_intptr_t;\ntypedef atomic<uintptr_t> atomic_uintptr_t;\ntypedef atomic<size_t>    atomic_size_t;\ntypedef atomic<ptrdiff_t> atomic_ptrdiff_t;\ntypedef atomic<intmax_t>  atomic_intmax_t;\ntypedef atomic<uintmax_t> atomic_uintmax_t;\n\n// fences\n\nvoid atomic_thread_fence(memory_order m) noexcept;\nvoid atomic_signal_fence(memory_order m) noexcept;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <cstddef>\n#include <cstdint>\n#include <type_traits>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifdef _LIBCPP_HAS_NO_THREADS\n#error <atomic> is not supported on this single threaded system\n#endif\n#if !defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_GCC_ATOMIC_IMP)\n#error <atomic> is not implemented\n#endif\n\n#if _LIBCPP_STD_VER > 14\n# define __cpp_lib_atomic_is_always_lock_free 201603L\n#endif\n\n#define _LIBCPP_CHECK_STORE_MEMORY_ORDER(__m) \\\n  _LIBCPP_DIAGNOSE_WARNING(__m == memory_order_consume || \\\n                           __m == memory_order_acquire || \\\n                           __m == memory_order_acq_rel,   \\\n                        \"memory order argument to atomic operation is invalid\")\n\n#define _LIBCPP_CHECK_LOAD_MEMORY_ORDER(__m) \\\n  _LIBCPP_DIAGNOSE_WARNING(__m == memory_order_release || \\\n                           __m == memory_order_acq_rel,   \\\n                        \"memory order argument to atomic operation is invalid\")\n\n#define _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__m, __f) \\\n  _LIBCPP_DIAGNOSE_WARNING(__f == memory_order_release || \\\n                           __f == memory_order_acq_rel,   \\\n                        \"memory order argument to atomic operation is invalid\")\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntypedef enum memory_order\n{\n    memory_order_relaxed, memory_order_consume, memory_order_acquire,\n    memory_order_release, memory_order_acq_rel, memory_order_seq_cst\n} memory_order;\n\n#if defined(_LIBCPP_HAS_GCC_ATOMIC_IMP)\nnamespace __gcc_atomic {\ntemplate <typename _Tp>\nstruct __gcc_atomic_t {\n\n#if _GNUC_VER >= 501\n    static_assert(is_trivially_copyable<_Tp>::value,\n      \"std::atomic<Tp> requires that 'Tp' be a trivially copyable type\");\n#endif\n\n  _LIBCPP_INLINE_VISIBILITY\n#ifndef _LIBCPP_CXX03_LANG\n    __gcc_atomic_t() _NOEXCEPT = default;\n#else\n    __gcc_atomic_t() _NOEXCEPT : __a_value() {}\n#endif // _LIBCPP_CXX03_LANG\n  _LIBCPP_CONSTEXPR explicit __gcc_atomic_t(_Tp value) _NOEXCEPT\n    : __a_value(value) {}\n  _Tp __a_value;\n};\n#define _Atomic(x) __gcc_atomic::__gcc_atomic_t<x>\n\ntemplate <typename _Tp> _Tp __create();\n\ntemplate <typename _Tp, typename _Td>\ntypename enable_if<sizeof(_Tp()->__a_value = __create<_Td>()), char>::type\n    __test_atomic_assignable(int);\ntemplate <typename _Tp, typename _Up>\n__two __test_atomic_assignable(...);\n\ntemplate <typename _Tp, typename _Td>\nstruct __can_assign {\n  static const bool value =\n      sizeof(__test_atomic_assignable<_Tp, _Td>(1)) == sizeof(char);\n};\n\nstatic inline _LIBCPP_CONSTEXPR int __to_gcc_order(memory_order __order) {\n  // Avoid switch statement to make this a constexpr.\n  return __order == memory_order_relaxed ? __ATOMIC_RELAXED:\n         (__order == memory_order_acquire ? __ATOMIC_ACQUIRE:\n          (__order == memory_order_release ? __ATOMIC_RELEASE:\n           (__order == memory_order_seq_cst ? __ATOMIC_SEQ_CST:\n            (__order == memory_order_acq_rel ? __ATOMIC_ACQ_REL:\n              __ATOMIC_CONSUME))));\n}\n\nstatic inline _LIBCPP_CONSTEXPR int __to_gcc_failure_order(memory_order __order) {\n  // Avoid switch statement to make this a constexpr.\n  return __order == memory_order_relaxed ? __ATOMIC_RELAXED:\n         (__order == memory_order_acquire ? __ATOMIC_ACQUIRE:\n          (__order == memory_order_release ? __ATOMIC_RELAXED:\n           (__order == memory_order_seq_cst ? __ATOMIC_SEQ_CST:\n            (__order == memory_order_acq_rel ? __ATOMIC_ACQUIRE:\n              __ATOMIC_CONSUME))));\n}\n\n} // namespace __gcc_atomic\n\ntemplate <typename _Tp>\nstatic inline\ntypename enable_if<\n    __gcc_atomic::__can_assign<volatile _Atomic(_Tp)*, _Tp>::value>::type\n__c11_atomic_init(volatile _Atomic(_Tp)* __a,  _Tp __val) {\n  __a->__a_value = __val;\n}\n\ntemplate <typename _Tp>\nstatic inline\ntypename enable_if<\n    !__gcc_atomic::__can_assign<volatile _Atomic(_Tp)*, _Tp>::value &&\n     __gcc_atomic::__can_assign<         _Atomic(_Tp)*, _Tp>::value>::type\n__c11_atomic_init(volatile _Atomic(_Tp)* __a,  _Tp __val) {\n  // [atomics.types.generic]p1 guarantees _Tp is trivially copyable. Because\n  // the default operator= in an object is not volatile, a byte-by-byte copy\n  // is required.\n  volatile char* to = reinterpret_cast<volatile char*>(&__a->__a_value);\n  volatile char* end = to + sizeof(_Tp);\n  char* from = reinterpret_cast<char*>(&__val);\n  while (to != end) {\n    *to++ = *from++;\n  }\n}\n\ntemplate <typename _Tp>\nstatic inline void __c11_atomic_init(_Atomic(_Tp)* __a,  _Tp __val) {\n  __a->__a_value = __val;\n}\n\nstatic inline void __c11_atomic_thread_fence(memory_order __order) {\n  __atomic_thread_fence(__gcc_atomic::__to_gcc_order(__order));\n}\n\nstatic inline void __c11_atomic_signal_fence(memory_order __order) {\n  __atomic_signal_fence(__gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline void __c11_atomic_store(volatile _Atomic(_Tp)* __a,  _Tp __val,\n                                      memory_order __order) {\n  return __atomic_store(&__a->__a_value, &__val,\n                        __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline void __c11_atomic_store(_Atomic(_Tp)* __a,  _Tp __val,\n                                      memory_order __order) {\n  __atomic_store(&__a->__a_value, &__val,\n                 __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_load(volatile _Atomic(_Tp)* __a,\n                                    memory_order __order) {\n  _Tp __ret;\n  __atomic_load(&__a->__a_value, &__ret,\n                __gcc_atomic::__to_gcc_order(__order));\n  return __ret;\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_load(_Atomic(_Tp)* __a, memory_order __order) {\n  _Tp __ret;\n  __atomic_load(&__a->__a_value, &__ret,\n                __gcc_atomic::__to_gcc_order(__order));\n  return __ret;\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_exchange(volatile _Atomic(_Tp)* __a,\n                                        _Tp __value, memory_order __order) {\n  _Tp __ret;\n  __atomic_exchange(&__a->__a_value, &__value, &__ret,\n                    __gcc_atomic::__to_gcc_order(__order));\n  return __ret;\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_exchange(_Atomic(_Tp)* __a, _Tp __value,\n                                        memory_order __order) {\n  _Tp __ret;\n  __atomic_exchange(&__a->__a_value, &__value, &__ret,\n                    __gcc_atomic::__to_gcc_order(__order));\n  return __ret;\n}\n\ntemplate <typename _Tp>\nstatic inline bool __c11_atomic_compare_exchange_strong(\n    volatile _Atomic(_Tp)* __a, _Tp* __expected, _Tp __value,\n    memory_order __success, memory_order __failure) {\n  return __atomic_compare_exchange(&__a->__a_value, __expected, &__value,\n                                   false,\n                                   __gcc_atomic::__to_gcc_order(__success),\n                                   __gcc_atomic::__to_gcc_failure_order(__failure));\n}\n\ntemplate <typename _Tp>\nstatic inline bool __c11_atomic_compare_exchange_strong(\n    _Atomic(_Tp)* __a, _Tp* __expected, _Tp __value, memory_order __success,\n    memory_order __failure) {\n  return __atomic_compare_exchange(&__a->__a_value, __expected, &__value,\n                                   false,\n                                   __gcc_atomic::__to_gcc_order(__success),\n                                   __gcc_atomic::__to_gcc_failure_order(__failure));\n}\n\ntemplate <typename _Tp>\nstatic inline bool __c11_atomic_compare_exchange_weak(\n    volatile _Atomic(_Tp)* __a, _Tp* __expected, _Tp __value,\n    memory_order __success, memory_order __failure) {\n  return __atomic_compare_exchange(&__a->__a_value, __expected, &__value,\n                                   true,\n                                   __gcc_atomic::__to_gcc_order(__success),\n                                   __gcc_atomic::__to_gcc_failure_order(__failure));\n}\n\ntemplate <typename _Tp>\nstatic inline bool __c11_atomic_compare_exchange_weak(\n    _Atomic(_Tp)* __a, _Tp* __expected, _Tp __value, memory_order __success,\n    memory_order __failure) {\n  return __atomic_compare_exchange(&__a->__a_value, __expected, &__value,\n                                   true,\n                                   __gcc_atomic::__to_gcc_order(__success),\n                                   __gcc_atomic::__to_gcc_failure_order(__failure));\n}\n\ntemplate <typename _Tp>\nstruct __skip_amt { enum {value = 1}; };\n\ntemplate <typename _Tp>\nstruct __skip_amt<_Tp*> { enum {value = sizeof(_Tp)}; };\n\n// FIXME: Haven't figured out what the spec says about using arrays with\n// atomic_fetch_add. Force a failure rather than creating bad behavior.\ntemplate <typename _Tp>\nstruct __skip_amt<_Tp[]> { };\ntemplate <typename _Tp, int n>\nstruct __skip_amt<_Tp[n]> { };\n\ntemplate <typename _Tp, typename _Td>\nstatic inline _Tp __c11_atomic_fetch_add(volatile _Atomic(_Tp)* __a,\n                                         _Td __delta, memory_order __order) {\n  return __atomic_fetch_add(&__a->__a_value, __delta * __skip_amt<_Tp>::value,\n                            __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp, typename _Td>\nstatic inline _Tp __c11_atomic_fetch_add(_Atomic(_Tp)* __a, _Td __delta,\n                                         memory_order __order) {\n  return __atomic_fetch_add(&__a->__a_value, __delta * __skip_amt<_Tp>::value,\n                            __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp, typename _Td>\nstatic inline _Tp __c11_atomic_fetch_sub(volatile _Atomic(_Tp)* __a,\n                                         _Td __delta, memory_order __order) {\n  return __atomic_fetch_sub(&__a->__a_value, __delta * __skip_amt<_Tp>::value,\n                            __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp, typename _Td>\nstatic inline _Tp __c11_atomic_fetch_sub(_Atomic(_Tp)* __a, _Td __delta,\n                                         memory_order __order) {\n  return __atomic_fetch_sub(&__a->__a_value, __delta * __skip_amt<_Tp>::value,\n                            __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_fetch_and(volatile _Atomic(_Tp)* __a,\n                                         _Tp __pattern, memory_order __order) {\n  return __atomic_fetch_and(&__a->__a_value, __pattern,\n                            __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_fetch_and(_Atomic(_Tp)* __a,\n                                         _Tp __pattern, memory_order __order) {\n  return __atomic_fetch_and(&__a->__a_value, __pattern,\n                            __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_fetch_or(volatile _Atomic(_Tp)* __a,\n                                        _Tp __pattern, memory_order __order) {\n  return __atomic_fetch_or(&__a->__a_value, __pattern,\n                           __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_fetch_or(_Atomic(_Tp)* __a, _Tp __pattern,\n                                        memory_order __order) {\n  return __atomic_fetch_or(&__a->__a_value, __pattern,\n                           __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_fetch_xor(volatile _Atomic(_Tp)* __a,\n                                         _Tp __pattern, memory_order __order) {\n  return __atomic_fetch_xor(&__a->__a_value, __pattern,\n                            __gcc_atomic::__to_gcc_order(__order));\n}\n\ntemplate <typename _Tp>\nstatic inline _Tp __c11_atomic_fetch_xor(_Atomic(_Tp)* __a, _Tp __pattern,\n                                         memory_order __order) {\n  return __atomic_fetch_xor(&__a->__a_value, __pattern,\n                            __gcc_atomic::__to_gcc_order(__order));\n}\n#endif // _LIBCPP_HAS_GCC_ATOMIC_IMP\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\nkill_dependency(_Tp __y) _NOEXCEPT\n{\n    return __y;\n}\n\n#if defined(__CLANG_ATOMIC_BOOL_LOCK_FREE)\n# define ATOMIC_BOOL_LOCK_FREE      __CLANG_ATOMIC_BOOL_LOCK_FREE\n# define ATOMIC_CHAR_LOCK_FREE      __CLANG_ATOMIC_CHAR_LOCK_FREE\n# define ATOMIC_CHAR16_T_LOCK_FREE  __CLANG_ATOMIC_CHAR16_T_LOCK_FREE\n# define ATOMIC_CHAR32_T_LOCK_FREE  __CLANG_ATOMIC_CHAR32_T_LOCK_FREE\n# define ATOMIC_WCHAR_T_LOCK_FREE   __CLANG_ATOMIC_WCHAR_T_LOCK_FREE\n# define ATOMIC_SHORT_LOCK_FREE     __CLANG_ATOMIC_SHORT_LOCK_FREE\n# define ATOMIC_INT_LOCK_FREE       __CLANG_ATOMIC_INT_LOCK_FREE\n# define ATOMIC_LONG_LOCK_FREE      __CLANG_ATOMIC_LONG_LOCK_FREE\n# define ATOMIC_LLONG_LOCK_FREE     __CLANG_ATOMIC_LLONG_LOCK_FREE\n# define ATOMIC_POINTER_LOCK_FREE   __CLANG_ATOMIC_POINTER_LOCK_FREE\n#else\n# define ATOMIC_BOOL_LOCK_FREE      __GCC_ATOMIC_BOOL_LOCK_FREE\n# define ATOMIC_CHAR_LOCK_FREE      __GCC_ATOMIC_CHAR_LOCK_FREE\n# define ATOMIC_CHAR16_T_LOCK_FREE  __GCC_ATOMIC_CHAR16_T_LOCK_FREE\n# define ATOMIC_CHAR32_T_LOCK_FREE  __GCC_ATOMIC_CHAR32_T_LOCK_FREE\n# define ATOMIC_WCHAR_T_LOCK_FREE   __GCC_ATOMIC_WCHAR_T_LOCK_FREE\n# define ATOMIC_SHORT_LOCK_FREE     __GCC_ATOMIC_SHORT_LOCK_FREE\n# define ATOMIC_INT_LOCK_FREE       __GCC_ATOMIC_INT_LOCK_FREE\n# define ATOMIC_LONG_LOCK_FREE      __GCC_ATOMIC_LONG_LOCK_FREE\n# define ATOMIC_LLONG_LOCK_FREE     __GCC_ATOMIC_LLONG_LOCK_FREE\n# define ATOMIC_POINTER_LOCK_FREE   __GCC_ATOMIC_POINTER_LOCK_FREE\n#endif\n\n// general atomic<T>\n\ntemplate <class _Tp, bool = is_integral<_Tp>::value && !is_same<_Tp, bool>::value>\nstruct __atomic_base  // false\n{\n    mutable _Atomic(_Tp) __a_;\n\n#if defined(__cpp_lib_atomic_is_always_lock_free)\n  static _LIBCPP_CONSTEXPR bool is_always_lock_free = __atomic_always_lock_free(sizeof(__a_), 0);\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool is_lock_free() const volatile _NOEXCEPT\n    {\n#if defined(_LIBCPP_HAS_C_ATOMIC_IMP)\n    return __c11_atomic_is_lock_free(sizeof(_Tp));\n#else\n    return __atomic_is_lock_free(sizeof(_Tp), 0);\n#endif\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    bool is_lock_free() const _NOEXCEPT\n        {return static_cast<__atomic_base const volatile*>(this)->is_lock_free();}\n    _LIBCPP_INLINE_VISIBILITY\n    void store(_Tp __d, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n      _LIBCPP_CHECK_STORE_MEMORY_ORDER(__m)\n        {__c11_atomic_store(&__a_, __d, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    void store(_Tp __d, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n      _LIBCPP_CHECK_STORE_MEMORY_ORDER(__m)\n        {__c11_atomic_store(&__a_, __d, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp load(memory_order __m = memory_order_seq_cst) const volatile _NOEXCEPT\n      _LIBCPP_CHECK_LOAD_MEMORY_ORDER(__m)\n        {return __c11_atomic_load(&__a_, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp load(memory_order __m = memory_order_seq_cst) const _NOEXCEPT\n      _LIBCPP_CHECK_LOAD_MEMORY_ORDER(__m)\n        {return __c11_atomic_load(&__a_, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    operator _Tp() const volatile _NOEXCEPT {return load();}\n    _LIBCPP_INLINE_VISIBILITY\n    operator _Tp() const _NOEXCEPT          {return load();}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_exchange(&__a_, __d, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp exchange(_Tp __d, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_exchange(&__a_, __d, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool compare_exchange_weak(_Tp& __e, _Tp __d,\n                               memory_order __s, memory_order __f) volatile _NOEXCEPT\n      _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__s, __f)\n        {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool compare_exchange_weak(_Tp& __e, _Tp __d,\n                               memory_order __s, memory_order __f) _NOEXCEPT\n      _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__s, __f)\n        {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __s, __f);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool compare_exchange_strong(_Tp& __e, _Tp __d,\n                                 memory_order __s, memory_order __f) volatile _NOEXCEPT\n      _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__s, __f)\n        {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool compare_exchange_strong(_Tp& __e, _Tp __d,\n                                 memory_order __s, memory_order __f) _NOEXCEPT\n      _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__s, __f)\n        {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __s, __f);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool compare_exchange_weak(_Tp& __e, _Tp __d,\n                              memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool compare_exchange_weak(_Tp& __e, _Tp __d,\n                               memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_compare_exchange_weak(&__a_, &__e, __d, __m, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool compare_exchange_strong(_Tp& __e, _Tp __d,\n                              memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool compare_exchange_strong(_Tp& __e, _Tp __d,\n                                 memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_compare_exchange_strong(&__a_, &__e, __d, __m, __m);}\n\n    _LIBCPP_INLINE_VISIBILITY\n#ifndef _LIBCPP_CXX03_LANG\n    __atomic_base() _NOEXCEPT = default;\n#else\n    __atomic_base() _NOEXCEPT : __a_() {}\n#endif // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __a_(__d) {}\n#ifndef _LIBCPP_CXX03_LANG\n    __atomic_base(const __atomic_base&) = delete;\n    __atomic_base& operator=(const __atomic_base&) = delete;\n    __atomic_base& operator=(const __atomic_base&) volatile = delete;\n#else\nprivate:\n    __atomic_base(const __atomic_base&);\n    __atomic_base& operator=(const __atomic_base&);\n    __atomic_base& operator=(const __atomic_base&) volatile;\n#endif\n};\n\n#if defined(__cpp_lib_atomic_is_always_lock_free)\ntemplate <class _Tp, bool __b>\n_LIBCPP_CONSTEXPR bool __atomic_base<_Tp, __b>::is_always_lock_free;\n#endif\n\n// atomic<Integral>\n\ntemplate <class _Tp>\nstruct __atomic_base<_Tp, true>\n    : public __atomic_base<_Tp, false>\n{\n    typedef __atomic_base<_Tp, false> __base;\n    _LIBCPP_INLINE_VISIBILITY\n    __atomic_base() _NOEXCEPT _LIBCPP_DEFAULT\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR __atomic_base(_Tp __d) _NOEXCEPT : __base(__d) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_fetch_add(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_add(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_fetch_add(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_sub(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_fetch_and(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_and(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_fetch_and(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_fetch_or(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_or(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_fetch_or(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_fetch_xor(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp fetch_xor(_Tp __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_fetch_xor(&this->__a_, __op, __m);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator++(int) volatile _NOEXCEPT      {return fetch_add(_Tp(1));}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator++(int) _NOEXCEPT               {return fetch_add(_Tp(1));}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator--(int) volatile _NOEXCEPT      {return fetch_sub(_Tp(1));}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator--(int) _NOEXCEPT               {return fetch_sub(_Tp(1));}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator++() volatile _NOEXCEPT         {return fetch_add(_Tp(1)) + _Tp(1);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator++() _NOEXCEPT                  {return fetch_add(_Tp(1)) + _Tp(1);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator--() volatile _NOEXCEPT         {return fetch_sub(_Tp(1)) - _Tp(1);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator--() _NOEXCEPT                  {return fetch_sub(_Tp(1)) - _Tp(1);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator+=(_Tp __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator+=(_Tp __op) _NOEXCEPT          {return fetch_add(__op) + __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator-=(_Tp __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator-=(_Tp __op) _NOEXCEPT          {return fetch_sub(__op) - __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator&=(_Tp __op) volatile _NOEXCEPT {return fetch_and(__op) & __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator&=(_Tp __op) _NOEXCEPT          {return fetch_and(__op) & __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator|=(_Tp __op) volatile _NOEXCEPT {return fetch_or(__op) | __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator|=(_Tp __op) _NOEXCEPT          {return fetch_or(__op) | __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator^=(_Tp __op) volatile _NOEXCEPT {return fetch_xor(__op) ^ __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator^=(_Tp __op) _NOEXCEPT          {return fetch_xor(__op) ^ __op;}\n};\n\n// atomic<T>\n\ntemplate <class _Tp>\nstruct atomic\n    : public __atomic_base<_Tp>\n{\n    typedef __atomic_base<_Tp> __base;\n    _LIBCPP_INLINE_VISIBILITY\n    atomic() _NOEXCEPT _LIBCPP_DEFAULT\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR atomic(_Tp __d) _NOEXCEPT : __base(__d) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator=(_Tp __d) volatile _NOEXCEPT\n        {__base::store(__d); return __d;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator=(_Tp __d) _NOEXCEPT\n        {__base::store(__d); return __d;}\n};\n\n// atomic<T*>\n\ntemplate <class _Tp>\nstruct atomic<_Tp*>\n    : public __atomic_base<_Tp*>\n{\n    typedef __atomic_base<_Tp*> __base;\n    _LIBCPP_INLINE_VISIBILITY\n    atomic() _NOEXCEPT _LIBCPP_DEFAULT\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR atomic(_Tp* __d) _NOEXCEPT : __base(__d) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator=(_Tp* __d) volatile _NOEXCEPT\n        {__base::store(__d); return __d;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator=(_Tp* __d) _NOEXCEPT\n        {__base::store(__d); return __d;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst)\n                                                                        volatile _NOEXCEPT\n        {return __c11_atomic_fetch_add(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* fetch_add(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_fetch_add(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst)\n                                                                        volatile _NOEXCEPT\n        {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* fetch_sub(ptrdiff_t __op, memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_fetch_sub(&this->__a_, __op, __m);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator++(int) volatile _NOEXCEPT            {return fetch_add(1);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator++(int) _NOEXCEPT                     {return fetch_add(1);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator--(int) volatile _NOEXCEPT            {return fetch_sub(1);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator--(int) _NOEXCEPT                     {return fetch_sub(1);}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator++() volatile _NOEXCEPT               {return fetch_add(1) + 1;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator++() _NOEXCEPT                        {return fetch_add(1) + 1;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator--() volatile _NOEXCEPT               {return fetch_sub(1) - 1;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator--() _NOEXCEPT                        {return fetch_sub(1) - 1;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator+=(ptrdiff_t __op) volatile _NOEXCEPT {return fetch_add(__op) + __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator+=(ptrdiff_t __op) _NOEXCEPT          {return fetch_add(__op) + __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator-=(ptrdiff_t __op) volatile _NOEXCEPT {return fetch_sub(__op) - __op;}\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* operator-=(ptrdiff_t __op) _NOEXCEPT          {return fetch_sub(__op) - __op;}\n};\n\n// atomic_is_lock_free\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_is_lock_free(const volatile atomic<_Tp>* __o) _NOEXCEPT\n{\n    return __o->is_lock_free();\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_is_lock_free(const atomic<_Tp>* __o) _NOEXCEPT\n{\n    return __o->is_lock_free();\n}\n\n// atomic_init\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_init(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT\n{\n    __c11_atomic_init(&__o->__a_, __d);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_init(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT\n{\n    __c11_atomic_init(&__o->__a_, __d);\n}\n\n// atomic_store\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_store(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT\n{\n    __o->store(__d);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_store(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT\n{\n    __o->store(__d);\n}\n\n// atomic_store_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_store_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT\n  _LIBCPP_CHECK_STORE_MEMORY_ORDER(__m)\n{\n    __o->store(__d, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_store_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT\n  _LIBCPP_CHECK_STORE_MEMORY_ORDER(__m)\n{\n    __o->store(__d, __m);\n}\n\n// atomic_load\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\natomic_load(const volatile atomic<_Tp>* __o) _NOEXCEPT\n{\n    return __o->load();\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\natomic_load(const atomic<_Tp>* __o) _NOEXCEPT\n{\n    return __o->load();\n}\n\n// atomic_load_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\natomic_load_explicit(const volatile atomic<_Tp>* __o, memory_order __m) _NOEXCEPT\n  _LIBCPP_CHECK_LOAD_MEMORY_ORDER(__m)\n{\n    return __o->load(__m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\natomic_load_explicit(const atomic<_Tp>* __o, memory_order __m) _NOEXCEPT\n  _LIBCPP_CHECK_LOAD_MEMORY_ORDER(__m)\n{\n    return __o->load(__m);\n}\n\n// atomic_exchange\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\natomic_exchange(volatile atomic<_Tp>* __o, _Tp __d) _NOEXCEPT\n{\n    return __o->exchange(__d);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\natomic_exchange(atomic<_Tp>* __o, _Tp __d) _NOEXCEPT\n{\n    return __o->exchange(__d);\n}\n\n// atomic_exchange_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\natomic_exchange_explicit(volatile atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT\n{\n    return __o->exchange(__d, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\natomic_exchange_explicit(atomic<_Tp>* __o, _Tp __d, memory_order __m) _NOEXCEPT\n{\n    return __o->exchange(__d, __m);\n}\n\n// atomic_compare_exchange_weak\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_compare_exchange_weak(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT\n{\n    return __o->compare_exchange_weak(*__e, __d);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_compare_exchange_weak(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT\n{\n    return __o->compare_exchange_weak(*__e, __d);\n}\n\n// atomic_compare_exchange_strong\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_compare_exchange_strong(volatile atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT\n{\n    return __o->compare_exchange_strong(*__e, __d);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_compare_exchange_strong(atomic<_Tp>* __o, _Tp* __e, _Tp __d) _NOEXCEPT\n{\n    return __o->compare_exchange_strong(*__e, __d);\n}\n\n// atomic_compare_exchange_weak_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_compare_exchange_weak_explicit(volatile atomic<_Tp>* __o, _Tp* __e,\n                                      _Tp __d,\n                                      memory_order __s, memory_order __f) _NOEXCEPT\n  _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__s, __f)\n{\n    return __o->compare_exchange_weak(*__e, __d, __s, __f);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_compare_exchange_weak_explicit(atomic<_Tp>* __o, _Tp* __e, _Tp __d,\n                                      memory_order __s, memory_order __f) _NOEXCEPT\n  _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__s, __f)\n{\n    return __o->compare_exchange_weak(*__e, __d, __s, __f);\n}\n\n// atomic_compare_exchange_strong_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_compare_exchange_strong_explicit(volatile atomic<_Tp>* __o,\n                                        _Tp* __e, _Tp __d,\n                                        memory_order __s, memory_order __f) _NOEXCEPT\n  _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__s, __f)\n{\n    return __o->compare_exchange_strong(*__e, __d, __s, __f);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_compare_exchange_strong_explicit(atomic<_Tp>* __o, _Tp* __e,\n                                        _Tp __d,\n                                        memory_order __s, memory_order __f) _NOEXCEPT\n  _LIBCPP_CHECK_EXCHANGE_MEMORY_ORDER(__s, __f)\n{\n    return __o->compare_exchange_strong(*__e, __d, __s, __f);\n}\n\n// atomic_fetch_add\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_add(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_add(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_add(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_add(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\natomic_fetch_add(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT\n{\n    return __o->fetch_add(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\natomic_fetch_add(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT\n{\n    return __o->fetch_add(__op);\n}\n\n// atomic_fetch_add_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_add_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_add(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_add_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_add(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\natomic_fetch_add_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op,\n                          memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_add(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\natomic_fetch_add_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_add(__op, __m);\n}\n\n// atomic_fetch_sub\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_sub(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_sub(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_sub(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_sub(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\natomic_fetch_sub(volatile atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT\n{\n    return __o->fetch_sub(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\natomic_fetch_sub(atomic<_Tp*>* __o, ptrdiff_t __op) _NOEXCEPT\n{\n    return __o->fetch_sub(__op);\n}\n\n// atomic_fetch_sub_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_sub_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_sub(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_sub_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_sub(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\natomic_fetch_sub_explicit(volatile atomic<_Tp*>* __o, ptrdiff_t __op,\n                          memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_sub(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\natomic_fetch_sub_explicit(atomic<_Tp*>* __o, ptrdiff_t __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_sub(__op, __m);\n}\n\n// atomic_fetch_and\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_and(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_and(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_and(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_and(__op);\n}\n\n// atomic_fetch_and_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_and_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_and(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_and_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_and(__op, __m);\n}\n\n// atomic_fetch_or\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_or(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_or(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_or(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_or(__op);\n}\n\n// atomic_fetch_or_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_or_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_or(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_or_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_or(__op, __m);\n}\n\n// atomic_fetch_xor\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_xor(volatile atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_xor(__op);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_xor(atomic<_Tp>* __o, _Tp __op) _NOEXCEPT\n{\n    return __o->fetch_xor(__op);\n}\n\n// atomic_fetch_xor_explicit\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_xor_explicit(volatile atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_xor(__op, __m);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value && !is_same<_Tp, bool>::value,\n    _Tp\n>::type\natomic_fetch_xor_explicit(atomic<_Tp>* __o, _Tp __op, memory_order __m) _NOEXCEPT\n{\n    return __o->fetch_xor(__op, __m);\n}\n\n// flag type and operations\n\ntypedef struct atomic_flag\n{\n    _Atomic(bool) __a_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool test_and_set(memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {return __c11_atomic_exchange(&__a_, true, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool test_and_set(memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {return __c11_atomic_exchange(&__a_, true, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear(memory_order __m = memory_order_seq_cst) volatile _NOEXCEPT\n        {__c11_atomic_store(&__a_, false, __m);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear(memory_order __m = memory_order_seq_cst) _NOEXCEPT\n        {__c11_atomic_store(&__a_, false, __m);}\n\n    _LIBCPP_INLINE_VISIBILITY\n#ifndef _LIBCPP_CXX03_LANG\n    atomic_flag() _NOEXCEPT = default;\n#else\n    atomic_flag() _NOEXCEPT : __a_() {}\n#endif // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    atomic_flag(bool __b) _NOEXCEPT : __a_(__b) {} // EXTENSION\n\n#ifndef _LIBCPP_CXX03_LANG\n    atomic_flag(const atomic_flag&) = delete;\n    atomic_flag& operator=(const atomic_flag&) = delete;\n    atomic_flag& operator=(const atomic_flag&) volatile = delete;\n#else\nprivate:\n    atomic_flag(const atomic_flag&);\n    atomic_flag& operator=(const atomic_flag&);\n    atomic_flag& operator=(const atomic_flag&) volatile;\n#endif\n} atomic_flag;\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_flag_test_and_set(volatile atomic_flag* __o) _NOEXCEPT\n{\n    return __o->test_and_set();\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_flag_test_and_set(atomic_flag* __o) _NOEXCEPT\n{\n    return __o->test_and_set();\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_flag_test_and_set_explicit(volatile atomic_flag* __o, memory_order __m) _NOEXCEPT\n{\n    return __o->test_and_set(__m);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_flag_test_and_set_explicit(atomic_flag* __o, memory_order __m) _NOEXCEPT\n{\n    return __o->test_and_set(__m);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_flag_clear(volatile atomic_flag* __o) _NOEXCEPT\n{\n    __o->clear();\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_flag_clear(atomic_flag* __o) _NOEXCEPT\n{\n    __o->clear();\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_flag_clear_explicit(volatile atomic_flag* __o, memory_order __m) _NOEXCEPT\n{\n    __o->clear(__m);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_flag_clear_explicit(atomic_flag* __o, memory_order __m) _NOEXCEPT\n{\n    __o->clear(__m);\n}\n\n// fences\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_thread_fence(memory_order __m) _NOEXCEPT\n{\n    __c11_atomic_thread_fence(__m);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\natomic_signal_fence(memory_order __m) _NOEXCEPT\n{\n    __c11_atomic_signal_fence(__m);\n}\n\n// Atomics for standard typedef types\n\ntypedef atomic<bool>               atomic_bool;\ntypedef atomic<char>               atomic_char;\ntypedef atomic<signed char>        atomic_schar;\ntypedef atomic<unsigned char>      atomic_uchar;\ntypedef atomic<short>              atomic_short;\ntypedef atomic<unsigned short>     atomic_ushort;\ntypedef atomic<int>                atomic_int;\ntypedef atomic<unsigned int>       atomic_uint;\ntypedef atomic<long>               atomic_long;\ntypedef atomic<unsigned long>      atomic_ulong;\ntypedef atomic<long long>          atomic_llong;\ntypedef atomic<unsigned long long> atomic_ullong;\ntypedef atomic<char16_t>           atomic_char16_t;\ntypedef atomic<char32_t>           atomic_char32_t;\ntypedef atomic<wchar_t>            atomic_wchar_t;\n\ntypedef atomic<int_least8_t>   atomic_int_least8_t;\ntypedef atomic<uint_least8_t>  atomic_uint_least8_t;\ntypedef atomic<int_least16_t>  atomic_int_least16_t;\ntypedef atomic<uint_least16_t> atomic_uint_least16_t;\ntypedef atomic<int_least32_t>  atomic_int_least32_t;\ntypedef atomic<uint_least32_t> atomic_uint_least32_t;\ntypedef atomic<int_least64_t>  atomic_int_least64_t;\ntypedef atomic<uint_least64_t> atomic_uint_least64_t;\n\ntypedef atomic<int_fast8_t>   atomic_int_fast8_t;\ntypedef atomic<uint_fast8_t>  atomic_uint_fast8_t;\ntypedef atomic<int_fast16_t>  atomic_int_fast16_t;\ntypedef atomic<uint_fast16_t> atomic_uint_fast16_t;\ntypedef atomic<int_fast32_t>  atomic_int_fast32_t;\ntypedef atomic<uint_fast32_t> atomic_uint_fast32_t;\ntypedef atomic<int_fast64_t>  atomic_int_fast64_t;\ntypedef atomic<uint_fast64_t> atomic_uint_fast64_t;\n\ntypedef atomic< int8_t>  atomic_int8_t;\ntypedef atomic<uint8_t>  atomic_uint8_t;\ntypedef atomic< int16_t> atomic_int16_t;\ntypedef atomic<uint16_t> atomic_uint16_t;\ntypedef atomic< int32_t> atomic_int32_t;\ntypedef atomic<uint32_t> atomic_uint32_t;\ntypedef atomic< int64_t> atomic_int64_t;\ntypedef atomic<uint64_t> atomic_uint64_t;\n\ntypedef atomic<intptr_t>  atomic_intptr_t;\ntypedef atomic<uintptr_t> atomic_uintptr_t;\ntypedef atomic<size_t>    atomic_size_t;\ntypedef atomic<ptrdiff_t> atomic_ptrdiff_t;\ntypedef atomic<intmax_t>  atomic_intmax_t;\ntypedef atomic<uintmax_t> atomic_uintmax_t;\n\n#define ATOMIC_FLAG_INIT {false}\n#define ATOMIC_VAR_INIT(__v) {__v}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_ATOMIC\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/bitset",
    "content": "// -*- C++ -*-\n//===---------------------------- bitset ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_BITSET\n#define _LIBCPP_BITSET\n\n/*\n    bitset synopsis\n\nnamespace std\n{\n\nnamespace std {\n\ntemplate <size_t N>\nclass bitset\n{\npublic:\n    // bit reference:\n    class reference\n    {\n        friend class bitset;\n        reference() noexcept;\n    public:\n        ~reference() noexcept;\n        reference& operator=(bool x) noexcept;           // for b[i] = x;\n        reference& operator=(const reference&) noexcept; // for b[i] = b[j];\n        bool operator~() const noexcept;                 // flips the bit\n        operator bool() const noexcept;                  // for x = b[i];\n        reference& flip() noexcept;                      // for b[i].flip();\n    };\n\n    // 23.3.5.1 constructors:\n    constexpr bitset() noexcept;\n    constexpr bitset(unsigned long long val) noexcept;\n    template <class charT>\n        explicit bitset(const charT* str,\n                        typename basic_string<charT>::size_type n = basic_string<charT>::npos,\n                        charT zero = charT('0'), charT one = charT('1'));\n    template<class charT, class traits, class Allocator>\n        explicit bitset(const basic_string<charT,traits,Allocator>& str,\n                        typename basic_string<charT,traits,Allocator>::size_type pos = 0,\n                        typename basic_string<charT,traits,Allocator>::size_type n =\n                                 basic_string<charT,traits,Allocator>::npos,\n                        charT zero = charT('0'), charT one = charT('1'));\n\n    // 23.3.5.2 bitset operations:\n    bitset& operator&=(const bitset& rhs) noexcept;\n    bitset& operator|=(const bitset& rhs) noexcept;\n    bitset& operator^=(const bitset& rhs) noexcept;\n    bitset& operator<<=(size_t pos) noexcept;\n    bitset& operator>>=(size_t pos) noexcept;\n    bitset& set() noexcept;\n    bitset& set(size_t pos, bool val = true);\n    bitset& reset() noexcept;\n    bitset& reset(size_t pos);\n    bitset operator~() const noexcept;\n    bitset& flip() noexcept;\n    bitset& flip(size_t pos);\n\n    // element access:\n    constexpr bool operator[](size_t pos) const; // for b[i];\n    reference operator[](size_t pos);            // for b[i];\n    unsigned long to_ulong() const;\n    unsigned long long to_ullong() const;\n    template <class charT, class traits, class Allocator>\n        basic_string<charT, traits, Allocator> to_string(charT zero = charT('0'), charT one = charT('1')) const;\n    template <class charT, class traits>\n        basic_string<charT, traits, allocator<charT> > to_string(charT zero = charT('0'), charT one = charT('1')) const;\n    template <class charT>\n        basic_string<charT, char_traits<charT>, allocator<charT> > to_string(charT zero = charT('0'), charT one = charT('1')) const;\n    basic_string<char, char_traits<char>, allocator<char> > to_string(char zero = '0', char one = '1') const;\n    size_t count() const noexcept;\n    constexpr size_t size() const noexcept;\n    bool operator==(const bitset& rhs) const noexcept;\n    bool operator!=(const bitset& rhs) const noexcept;\n    bool test(size_t pos) const;\n    bool all() const noexcept;\n    bool any() const noexcept;\n    bool none() const noexcept;\n    bitset operator<<(size_t pos) const noexcept;\n    bitset operator>>(size_t pos) const noexcept;\n};\n\n// 23.3.5.3 bitset operators:\ntemplate <size_t N>\nbitset<N> operator&(const bitset<N>&, const bitset<N>&) noexcept;\n\ntemplate <size_t N>\nbitset<N> operator|(const bitset<N>&, const bitset<N>&) noexcept;\n\ntemplate <size_t N>\nbitset<N> operator^(const bitset<N>&, const bitset<N>&) noexcept;\n\ntemplate <class charT, class traits, size_t N>\nbasic_istream<charT, traits>&\noperator>>(basic_istream<charT, traits>& is, bitset<N>& x);\n\ntemplate <class charT, class traits, size_t N>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& os, const bitset<N>& x);\n\ntemplate <size_t N> struct hash<std::bitset<N>>;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__bit_reference>\n#include <cstddef>\n#include <climits>\n#include <string>\n#include <stdexcept>\n#include <iosfwd>\n#include <__functional_base>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <size_t _N_words, size_t _Size>\nclass __bitset;\n\ntemplate <size_t _N_words, size_t _Size>\nstruct __has_storage_type<__bitset<_N_words, _Size> >\n{\n    static const bool value = true;\n};\n\ntemplate <size_t _N_words, size_t _Size>\nclass __bitset\n{\npublic:\n    typedef ptrdiff_t              difference_type;\n    typedef size_t                 size_type;\n    typedef size_type              __storage_type;\nprotected:\n    typedef __bitset __self;\n    typedef       __storage_type*  __storage_pointer;\n    typedef const __storage_type*  __const_storage_pointer;\n    static const unsigned __bits_per_word = static_cast<unsigned>(sizeof(__storage_type) * CHAR_BIT);\n\n    friend class __bit_reference<__bitset>;\n    friend class __bit_const_reference<__bitset>;\n    friend class __bit_iterator<__bitset, false>;\n    friend class __bit_iterator<__bitset, true>;\n    friend struct __bit_array<__bitset>;\n\n    __storage_type __first_[_N_words];\n\n    typedef __bit_reference<__bitset>                  reference;\n    typedef __bit_const_reference<__bitset>            const_reference;\n    typedef __bit_iterator<__bitset, false>            iterator;\n    typedef __bit_iterator<__bitset, true>             const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long __v) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t __pos) _NOEXCEPT\n        {return reference(__first_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR const_reference __make_ref(size_t __pos) const _NOEXCEPT\n        {return const_reference(__first_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);}\n    _LIBCPP_INLINE_VISIBILITY iterator __make_iter(size_t __pos) _NOEXCEPT\n        {return iterator(__first_ + __pos / __bits_per_word, __pos % __bits_per_word);}\n    _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t __pos) const _NOEXCEPT\n        {return const_iterator(__first_ + __pos / __bits_per_word, __pos % __bits_per_word);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator&=(const __bitset& __v) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    void operator|=(const __bitset& __v) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    void operator^=(const __bitset& __v) _NOEXCEPT;\n\n    void flip() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY unsigned long to_ulong() const\n        {return to_ulong(integral_constant<bool, _Size < sizeof(unsigned long) * CHAR_BIT>());}\n    _LIBCPP_INLINE_VISIBILITY unsigned long long to_ullong() const\n        {return to_ullong(integral_constant<bool, _Size < sizeof(unsigned long long) * CHAR_BIT>());}\n\n    bool all() const _NOEXCEPT;\n    bool any() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_t __hash_code() const _NOEXCEPT;\nprivate:\n#ifdef _LIBCPP_CXX03_LANG\n    void __init(unsigned long long __v, false_type) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    void __init(unsigned long long __v, true_type) _NOEXCEPT;\n#endif  // _LIBCPP_CXX03_LANG\n    unsigned long to_ulong(false_type) const;\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned long to_ulong(true_type) const;\n    unsigned long long to_ullong(false_type) const;\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned long long to_ullong(true_type) const;\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned long long to_ullong(true_type, false_type) const;\n    unsigned long long to_ullong(true_type, true_type) const;\n};\n\ntemplate <size_t _N_words, size_t _Size>\ninline\n_LIBCPP_CONSTEXPR\n__bitset<_N_words, _Size>::__bitset() _NOEXCEPT\n#ifndef _LIBCPP_CXX03_LANG\n    : __first_{0}\n#endif\n{\n#ifdef _LIBCPP_CXX03_LANG\n    _VSTD::fill_n(__first_, _N_words, __storage_type(0));\n#endif\n}\n\n#ifdef _LIBCPP_CXX03_LANG\n\ntemplate <size_t _N_words, size_t _Size>\nvoid\n__bitset<_N_words, _Size>::__init(unsigned long long __v, false_type) _NOEXCEPT\n{\n    __storage_type __t[sizeof(unsigned long long) / sizeof(__storage_type)];\n    for (size_t __i = 0; __i < sizeof(__t)/sizeof(__t[0]); ++__i, __v >>= __bits_per_word)\n        __t[__i] = static_cast<__storage_type>(__v);\n    _VSTD::copy(__t, __t + sizeof(__t)/sizeof(__t[0]), __first_);\n    _VSTD::fill(__first_ + sizeof(__t)/sizeof(__t[0]), __first_ + sizeof(__first_)/sizeof(__first_[0]),\n               __storage_type(0));\n}\n\ntemplate <size_t _N_words, size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__bitset<_N_words, _Size>::__init(unsigned long long __v, true_type) _NOEXCEPT\n{\n    __first_[0] = __v;\n    _VSTD::fill(__first_ + 1, __first_ + sizeof(__first_)/sizeof(__first_[0]), __storage_type(0));\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <size_t _N_words, size_t _Size>\ninline\n_LIBCPP_CONSTEXPR\n__bitset<_N_words, _Size>::__bitset(unsigned long long __v) _NOEXCEPT\n#ifndef _LIBCPP_CXX03_LANG\n#if __SIZEOF_SIZE_T__ == 8\n    : __first_{__v}\n#elif __SIZEOF_SIZE_T__ == 4\n    : __first_{static_cast<__storage_type>(__v), static_cast<__storage_type>(__v >> __bits_per_word)}\n#else\n#error This constructor has not been ported to this platform\n#endif\n#endif\n{\n#ifdef _LIBCPP_CXX03_LANG\n    __init(__v, integral_constant<bool, sizeof(unsigned long long) == sizeof(__storage_type)>());\n#endif\n}\n\ntemplate <size_t _N_words, size_t _Size>\ninline\nvoid\n__bitset<_N_words, _Size>::operator&=(const __bitset& __v) _NOEXCEPT\n{\n    for (size_type __i = 0; __i < _N_words; ++__i)\n        __first_[__i] &= __v.__first_[__i];\n}\n\ntemplate <size_t _N_words, size_t _Size>\ninline\nvoid\n__bitset<_N_words, _Size>::operator|=(const __bitset& __v) _NOEXCEPT\n{\n    for (size_type __i = 0; __i < _N_words; ++__i)\n        __first_[__i] |= __v.__first_[__i];\n}\n\ntemplate <size_t _N_words, size_t _Size>\ninline\nvoid\n__bitset<_N_words, _Size>::operator^=(const __bitset& __v) _NOEXCEPT\n{\n    for (size_type __i = 0; __i < _N_words; ++__i)\n        __first_[__i] ^= __v.__first_[__i];\n}\n\ntemplate <size_t _N_words, size_t _Size>\nvoid\n__bitset<_N_words, _Size>::flip() _NOEXCEPT\n{\n    // do middle whole words\n    size_type __n = _Size;\n    __storage_pointer __p = __first_;\n    for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word)\n        *__p = ~*__p;\n    // do last partial word\n    if (__n > 0)\n    {\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        __storage_type __b = *__p & __m;\n        *__p &= ~__m;\n        *__p |= ~__b & __m;\n    }\n}\n\ntemplate <size_t _N_words, size_t _Size>\nunsigned long\n__bitset<_N_words, _Size>::to_ulong(false_type) const\n{\n    const_iterator __e = __make_iter(_Size);\n    const_iterator __i = _VSTD::find(__make_iter(sizeof(unsigned long) * CHAR_BIT), __e, true);\n    if (__i != __e)\n        __throw_overflow_error(\"bitset to_ulong overflow error\");\n\n    return __first_[0];\n}\n\ntemplate <size_t _N_words, size_t _Size>\ninline\nunsigned long\n__bitset<_N_words, _Size>::to_ulong(true_type) const\n{\n    return __first_[0];\n}\n\ntemplate <size_t _N_words, size_t _Size>\nunsigned long long\n__bitset<_N_words, _Size>::to_ullong(false_type) const\n{\n    const_iterator __e = __make_iter(_Size);\n    const_iterator __i = _VSTD::find(__make_iter(sizeof(unsigned long long) * CHAR_BIT), __e, true);\n    if (__i != __e)\n        __throw_overflow_error(\"bitset to_ullong overflow error\");\n\n    return to_ullong(true_type());\n}\n\ntemplate <size_t _N_words, size_t _Size>\ninline\nunsigned long long\n__bitset<_N_words, _Size>::to_ullong(true_type) const\n{\n    return to_ullong(true_type(), integral_constant<bool, sizeof(__storage_type) < sizeof(unsigned long long)>());\n}\n\ntemplate <size_t _N_words, size_t _Size>\ninline\nunsigned long long\n__bitset<_N_words, _Size>::to_ullong(true_type, false_type) const\n{\n    return __first_[0];\n}\n\ntemplate <size_t _N_words, size_t _Size>\nunsigned long long\n__bitset<_N_words, _Size>::to_ullong(true_type, true_type) const\n{\n    unsigned long long __r = __first_[0];\n    for (std::size_t __i = 1; __i < sizeof(unsigned long long) / sizeof(__storage_type); ++__i)\n        __r |= static_cast<unsigned long long>(__first_[__i]) << (sizeof(__storage_type) * CHAR_BIT);\n    return __r;\n}\n\ntemplate <size_t _N_words, size_t _Size>\nbool\n__bitset<_N_words, _Size>::all() const _NOEXCEPT\n{\n    // do middle whole words\n    size_type __n = _Size;\n    __const_storage_pointer __p = __first_;\n    for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word)\n        if (~*__p)\n            return false;\n    // do last partial word\n    if (__n > 0)\n    {\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        if (~*__p & __m)\n            return false;\n    }\n    return true;\n}\n\ntemplate <size_t _N_words, size_t _Size>\nbool\n__bitset<_N_words, _Size>::any() const _NOEXCEPT\n{\n    // do middle whole words\n    size_type __n = _Size;\n    __const_storage_pointer __p = __first_;\n    for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word)\n        if (*__p)\n            return true;\n    // do last partial word\n    if (__n > 0)\n    {\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        if (*__p & __m)\n            return true;\n    }\n    return false;\n}\n\ntemplate <size_t _N_words, size_t _Size>\ninline\nsize_t\n__bitset<_N_words, _Size>::__hash_code() const _NOEXCEPT\n{\n    size_t __h = 0;\n    for (size_type __i = 0; __i < _N_words; ++__i)\n        __h ^= __first_[__i];\n    return __h;\n}\n\ntemplate <size_t _Size>\nclass __bitset<1, _Size>\n{\npublic:\n    typedef ptrdiff_t              difference_type;\n    typedef size_t                 size_type;\n    typedef size_type              __storage_type;\nprotected:\n    typedef __bitset __self;\n    typedef       __storage_type*  __storage_pointer;\n    typedef const __storage_type*  __const_storage_pointer;\n    static const unsigned __bits_per_word = static_cast<unsigned>(sizeof(__storage_type) * CHAR_BIT);\n\n    friend class __bit_reference<__bitset>;\n    friend class __bit_const_reference<__bitset>;\n    friend class __bit_iterator<__bitset, false>;\n    friend class __bit_iterator<__bitset, true>;\n    friend struct __bit_array<__bitset>;\n\n    __storage_type __first_;\n\n    typedef __bit_reference<__bitset>                  reference;\n    typedef __bit_const_reference<__bitset>            const_reference;\n    typedef __bit_iterator<__bitset, false>            iterator;\n    typedef __bit_iterator<__bitset, true>             const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long __v) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t __pos) _NOEXCEPT\n        {return reference(&__first_, __storage_type(1) << __pos);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR const_reference __make_ref(size_t __pos) const _NOEXCEPT\n        {return const_reference(&__first_, __storage_type(1) << __pos);}\n    _LIBCPP_INLINE_VISIBILITY iterator __make_iter(size_t __pos) _NOEXCEPT\n        {return iterator(&__first_ + __pos / __bits_per_word, __pos % __bits_per_word);}\n    _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t __pos) const _NOEXCEPT\n        {return const_iterator(&__first_ + __pos / __bits_per_word, __pos % __bits_per_word);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator&=(const __bitset& __v) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    void operator|=(const __bitset& __v) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    void operator^=(const __bitset& __v) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void flip() _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned long to_ulong() const;\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned long long to_ullong() const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool all() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bool any() const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t __hash_code() const _NOEXCEPT;\n};\n\ntemplate <size_t _Size>\ninline\n_LIBCPP_CONSTEXPR\n__bitset<1, _Size>::__bitset() _NOEXCEPT\n    : __first_(0)\n{\n}\n\ntemplate <size_t _Size>\ninline\n_LIBCPP_CONSTEXPR\n__bitset<1, _Size>::__bitset(unsigned long long __v) _NOEXCEPT\n    : __first_(static_cast<__storage_type>(__v))\n{\n}\n\ntemplate <size_t _Size>\ninline\nvoid\n__bitset<1, _Size>::operator&=(const __bitset& __v) _NOEXCEPT\n{\n    __first_ &= __v.__first_;\n}\n\ntemplate <size_t _Size>\ninline\nvoid\n__bitset<1, _Size>::operator|=(const __bitset& __v) _NOEXCEPT\n{\n    __first_ |= __v.__first_;\n}\n\ntemplate <size_t _Size>\ninline\nvoid\n__bitset<1, _Size>::operator^=(const __bitset& __v) _NOEXCEPT\n{\n    __first_ ^= __v.__first_;\n}\n\ntemplate <size_t _Size>\ninline\nvoid\n__bitset<1, _Size>::flip() _NOEXCEPT\n{\n    __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size);\n    __first_ = ~__first_;\n    __first_ &= __m;\n}\n\ntemplate <size_t _Size>\ninline\nunsigned long\n__bitset<1, _Size>::to_ulong() const\n{\n    return __first_;\n}\n\ntemplate <size_t _Size>\ninline\nunsigned long long\n__bitset<1, _Size>::to_ullong() const\n{\n    return __first_;\n}\n\ntemplate <size_t _Size>\ninline\nbool\n__bitset<1, _Size>::all() const _NOEXCEPT\n{\n    __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size);\n    return !(~__first_ & __m);\n}\n\ntemplate <size_t _Size>\ninline\nbool\n__bitset<1, _Size>::any() const _NOEXCEPT\n{\n    __storage_type __m = ~__storage_type(0) >> (__bits_per_word - _Size);\n    return __first_ & __m;\n}\n\ntemplate <size_t _Size>\ninline\nsize_t\n__bitset<1, _Size>::__hash_code() const _NOEXCEPT\n{\n    return __first_;\n}\n\ntemplate <>\nclass __bitset<0, 0>\n{\npublic:\n    typedef ptrdiff_t              difference_type;\n    typedef size_t                 size_type;\n    typedef size_type              __storage_type;\nprotected:\n    typedef __bitset __self;\n    typedef       __storage_type*  __storage_pointer;\n    typedef const __storage_type*  __const_storage_pointer;\n    static const unsigned __bits_per_word = static_cast<unsigned>(sizeof(__storage_type) * CHAR_BIT);\n\n    friend class __bit_reference<__bitset>;\n    friend class __bit_const_reference<__bitset>;\n    friend class __bit_iterator<__bitset, false>;\n    friend class __bit_iterator<__bitset, true>;\n    friend struct __bit_array<__bitset>;\n\n    typedef __bit_reference<__bitset>                  reference;\n    typedef __bit_const_reference<__bitset>            const_reference;\n    typedef __bit_iterator<__bitset, false>            iterator;\n    typedef __bit_iterator<__bitset, true>             const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR __bitset() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    explicit _LIBCPP_CONSTEXPR __bitset(unsigned long long) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY reference __make_ref(size_t) _NOEXCEPT\n        {return reference(0, 1);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR const_reference __make_ref(size_t) const _NOEXCEPT\n        {return const_reference(0, 1);}\n    _LIBCPP_INLINE_VISIBILITY iterator __make_iter(size_t) _NOEXCEPT\n        {return iterator(0, 0);}\n    _LIBCPP_INLINE_VISIBILITY const_iterator __make_iter(size_t) const _NOEXCEPT\n        {return const_iterator(0, 0);}\n\n    _LIBCPP_INLINE_VISIBILITY void operator&=(const __bitset&) _NOEXCEPT {}\n    _LIBCPP_INLINE_VISIBILITY void operator|=(const __bitset&) _NOEXCEPT {}\n    _LIBCPP_INLINE_VISIBILITY void operator^=(const __bitset&) _NOEXCEPT {}\n\n    _LIBCPP_INLINE_VISIBILITY void flip() _NOEXCEPT {}\n\n    _LIBCPP_INLINE_VISIBILITY unsigned long to_ulong() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY unsigned long long to_ullong() const {return 0;}\n\n    _LIBCPP_INLINE_VISIBILITY bool all() const _NOEXCEPT {return true;}\n    _LIBCPP_INLINE_VISIBILITY bool any() const _NOEXCEPT {return false;}\n\n    _LIBCPP_INLINE_VISIBILITY size_t __hash_code() const _NOEXCEPT {return 0;}\n};\n\ninline\n_LIBCPP_CONSTEXPR\n__bitset<0, 0>::__bitset() _NOEXCEPT\n{\n}\n\ninline\n_LIBCPP_CONSTEXPR\n__bitset<0, 0>::__bitset(unsigned long long) _NOEXCEPT\n{\n}\n\ntemplate <size_t _Size> class _LIBCPP_TEMPLATE_VIS bitset;\ntemplate <size_t _Size> struct hash<bitset<_Size> >;\n\ntemplate <size_t _Size>\nclass _LIBCPP_TEMPLATE_VIS bitset\n    : private __bitset<_Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * CHAR_BIT) + 1, _Size>\n{\npublic:\n    static const unsigned __n_words = _Size == 0 ? 0 : (_Size - 1) / (sizeof(size_t) * CHAR_BIT) + 1;\n    typedef __bitset<__n_words, _Size> base;\n\npublic:\n    typedef typename base::reference       reference;\n    typedef typename base::const_reference const_reference;\n\n    // 23.3.5.1 constructors:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR bitset() _NOEXCEPT {}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n        bitset(unsigned long long __v) _NOEXCEPT : base(__v) {}\n    template<class _CharT>\n        explicit bitset(const _CharT* __str,\n                        typename basic_string<_CharT>::size_type __n = basic_string<_CharT>::npos,\n                        _CharT __zero = _CharT('0'), _CharT __one = _CharT('1'));\n    template<class _CharT, class _Traits, class _Allocator>\n        explicit bitset(const basic_string<_CharT,_Traits,_Allocator>& __str,\n                        typename basic_string<_CharT,_Traits,_Allocator>::size_type __pos = 0,\n                        typename basic_string<_CharT,_Traits,_Allocator>::size_type __n =\n                                (basic_string<_CharT,_Traits,_Allocator>::npos),\n                        _CharT __zero = _CharT('0'), _CharT __one = _CharT('1'));\n\n    // 23.3.5.2 bitset operations:\n    _LIBCPP_INLINE_VISIBILITY\n    bitset& operator&=(const bitset& __rhs) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bitset& operator|=(const bitset& __rhs) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bitset& operator^=(const bitset& __rhs) _NOEXCEPT;\n    bitset& operator<<=(size_t __pos) _NOEXCEPT;\n    bitset& operator>>=(size_t __pos) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bitset& set() _NOEXCEPT;\n    bitset& set(size_t __pos, bool __val = true);\n    _LIBCPP_INLINE_VISIBILITY\n    bitset& reset() _NOEXCEPT;\n    bitset& reset(size_t __pos);\n    _LIBCPP_INLINE_VISIBILITY\n    bitset  operator~() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bitset& flip() _NOEXCEPT;\n    bitset& flip(size_t __pos);\n\n    // element access:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n                              const_reference operator[](size_t __p) const {return base::__make_ref(__p);}\n    _LIBCPP_INLINE_VISIBILITY       reference operator[](size_t __p)       {return base::__make_ref(__p);}\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned long to_ulong() const;\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned long long to_ullong() const;\n    template <class _CharT, class _Traits, class _Allocator>\n        basic_string<_CharT, _Traits, _Allocator> to_string(_CharT __zero = _CharT('0'),\n                                                            _CharT __one = _CharT('1')) const;\n    template <class _CharT, class _Traits>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_string<_CharT, _Traits, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'),\n                                                                    _CharT __one = _CharT('1')) const;\n    template <class _CharT>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > to_string(_CharT __zero = _CharT('0'),\n                                                                                _CharT __one = _CharT('1')) const;\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string<char, char_traits<char>, allocator<char> > to_string(char __zero = '0',\n                                                                      char __one = '1') const;\n    _LIBCPP_INLINE_VISIBILITY\n    size_t count() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR size_t size() const _NOEXCEPT {return _Size;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const bitset& __rhs) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const bitset& __rhs) const _NOEXCEPT;\n    bool test(size_t __pos) const;\n    _LIBCPP_INLINE_VISIBILITY\n    bool all() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bool any() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY bool none() const _NOEXCEPT {return !any();}\n    _LIBCPP_INLINE_VISIBILITY\n    bitset operator<<(size_t __pos) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bitset operator>>(size_t __pos) const _NOEXCEPT;\n\nprivate:\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t __hash_code() const _NOEXCEPT {return base::__hash_code();}\n\n    friend struct hash<bitset>;\n};\n\ntemplate <size_t _Size>\ntemplate<class _CharT>\nbitset<_Size>::bitset(const _CharT* __str,\n                      typename basic_string<_CharT>::size_type __n,\n                      _CharT __zero, _CharT __one)\n{\n    size_t __rlen = _VSTD::min(__n, char_traits<_CharT>::length(__str));\n    for (size_t __i = 0; __i < __rlen; ++__i)\n        if (__str[__i] != __zero && __str[__i] != __one)\n            __throw_invalid_argument(\"bitset string ctor has invalid argument\");\n\n    size_t _Mp = _VSTD::min(__rlen, _Size);\n    size_t __i = 0;\n    for (; __i < _Mp; ++__i)\n    {\n        _CharT __c = __str[_Mp - 1 - __i];\n        if (__c == __zero)\n            (*this)[__i] = false;\n        else\n            (*this)[__i] = true;\n    }\n    _VSTD::fill(base::__make_iter(__i), base::__make_iter(_Size), false);\n}\n\ntemplate <size_t _Size>\ntemplate<class _CharT, class _Traits, class _Allocator>\nbitset<_Size>::bitset(const basic_string<_CharT,_Traits,_Allocator>& __str,\n       typename basic_string<_CharT,_Traits,_Allocator>::size_type __pos,\n       typename basic_string<_CharT,_Traits,_Allocator>::size_type __n,\n       _CharT __zero, _CharT __one)\n{\n    if (__pos > __str.size())\n        __throw_out_of_range(\"bitset string pos out of range\");\n\n    size_t __rlen = _VSTD::min(__n, __str.size() - __pos);\n    for (size_t __i = __pos; __i < __pos + __rlen; ++__i)\n        if (!_Traits::eq(__str[__i], __zero) && !_Traits::eq(__str[__i], __one))\n            __throw_invalid_argument(\"bitset string ctor has invalid argument\");\n\n    size_t _Mp = _VSTD::min(__rlen, _Size);\n    size_t __i = 0;\n    for (; __i < _Mp; ++__i)\n    {\n        _CharT __c = __str[__pos + _Mp - 1 - __i];\n        if (_Traits::eq(__c, __zero))\n            (*this)[__i] = false;\n        else\n            (*this)[__i] = true;\n    }\n    _VSTD::fill(base::__make_iter(__i), base::__make_iter(_Size), false);\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>&\nbitset<_Size>::operator&=(const bitset& __rhs) _NOEXCEPT\n{\n    base::operator&=(__rhs);\n    return *this;\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>&\nbitset<_Size>::operator|=(const bitset& __rhs) _NOEXCEPT\n{\n    base::operator|=(__rhs);\n    return *this;\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>&\nbitset<_Size>::operator^=(const bitset& __rhs) _NOEXCEPT\n{\n    base::operator^=(__rhs);\n    return *this;\n}\n\ntemplate <size_t _Size>\nbitset<_Size>&\nbitset<_Size>::operator<<=(size_t __pos) _NOEXCEPT\n{\n    __pos = _VSTD::min(__pos, _Size);\n    _VSTD::copy_backward(base::__make_iter(0), base::__make_iter(_Size - __pos), base::__make_iter(_Size));\n    _VSTD::fill_n(base::__make_iter(0), __pos, false);\n    return *this;\n}\n\ntemplate <size_t _Size>\nbitset<_Size>&\nbitset<_Size>::operator>>=(size_t __pos) _NOEXCEPT\n{\n    __pos = _VSTD::min(__pos, _Size);\n    _VSTD::copy(base::__make_iter(__pos), base::__make_iter(_Size), base::__make_iter(0));\n    _VSTD::fill_n(base::__make_iter(_Size - __pos), __pos, false);\n    return *this;\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>&\nbitset<_Size>::set() _NOEXCEPT\n{\n    _VSTD::fill_n(base::__make_iter(0), _Size, true);\n    return *this;\n}\n\ntemplate <size_t _Size>\nbitset<_Size>&\nbitset<_Size>::set(size_t __pos, bool __val)\n{\n    if (__pos >= _Size)\n        __throw_out_of_range(\"bitset set argument out of range\");\n\n    (*this)[__pos] = __val;\n    return *this;\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>&\nbitset<_Size>::reset() _NOEXCEPT\n{\n    _VSTD::fill_n(base::__make_iter(0), _Size, false);\n    return *this;\n}\n\ntemplate <size_t _Size>\nbitset<_Size>&\nbitset<_Size>::reset(size_t __pos)\n{\n    if (__pos >= _Size)\n        __throw_out_of_range(\"bitset reset argument out of range\");\n\n    (*this)[__pos] = false;\n    return *this;\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>\nbitset<_Size>::operator~() const _NOEXCEPT\n{\n    bitset __x(*this);\n    __x.flip();\n    return __x;\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>&\nbitset<_Size>::flip() _NOEXCEPT\n{\n    base::flip();\n    return *this;\n}\n\ntemplate <size_t _Size>\nbitset<_Size>&\nbitset<_Size>::flip(size_t __pos)\n{\n    if (__pos >= _Size)\n        __throw_out_of_range(\"bitset flip argument out of range\");\n\n    reference r = base::__make_ref(__pos);\n    r = ~r;\n    return *this;\n}\n\ntemplate <size_t _Size>\ninline\nunsigned long\nbitset<_Size>::to_ulong() const\n{\n    return base::to_ulong();\n}\n\ntemplate <size_t _Size>\ninline\nunsigned long long\nbitset<_Size>::to_ullong() const\n{\n    return base::to_ullong();\n}\n\ntemplate <size_t _Size>\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\nbitset<_Size>::to_string(_CharT __zero, _CharT __one) const\n{\n    basic_string<_CharT, _Traits, _Allocator> __r(_Size, __zero);\n    for (size_t __i = 0; __i < _Size; ++__i)\n    {\n        if ((*this)[__i])\n            __r[_Size - 1 - __i] = __one;\n    }\n    return __r;\n}\n\ntemplate <size_t _Size>\ntemplate <class _CharT, class _Traits>\ninline\nbasic_string<_CharT, _Traits, allocator<_CharT> >\nbitset<_Size>::to_string(_CharT __zero, _CharT __one) const\n{\n    return to_string<_CharT, _Traits, allocator<_CharT> >(__zero, __one);\n}\n\ntemplate <size_t _Size>\ntemplate <class _CharT>\ninline\nbasic_string<_CharT, char_traits<_CharT>, allocator<_CharT> >\nbitset<_Size>::to_string(_CharT __zero, _CharT __one) const\n{\n    return to_string<_CharT, char_traits<_CharT>, allocator<_CharT> >(__zero, __one);\n}\n\ntemplate <size_t _Size>\ninline\nbasic_string<char, char_traits<char>, allocator<char> >\nbitset<_Size>::to_string(char __zero, char __one) const\n{\n    return to_string<char, char_traits<char>, allocator<char> >(__zero, __one);\n}\n\ntemplate <size_t _Size>\ninline\nsize_t\nbitset<_Size>::count() const _NOEXCEPT\n{\n    return static_cast<size_t>(_VSTD::count(base::__make_iter(0), base::__make_iter(_Size), true));\n}\n\ntemplate <size_t _Size>\ninline\nbool\nbitset<_Size>::operator==(const bitset& __rhs) const _NOEXCEPT\n{\n    return _VSTD::equal(base::__make_iter(0), base::__make_iter(_Size), __rhs.__make_iter(0));\n}\n\ntemplate <size_t _Size>\ninline\nbool\nbitset<_Size>::operator!=(const bitset& __rhs) const _NOEXCEPT\n{\n    return !(*this == __rhs);\n}\n\ntemplate <size_t _Size>\nbool\nbitset<_Size>::test(size_t __pos) const\n{\n    if (__pos >= _Size)\n        __throw_out_of_range(\"bitset test argument out of range\");\n\n    return (*this)[__pos];\n}\n\ntemplate <size_t _Size>\ninline\nbool\nbitset<_Size>::all() const _NOEXCEPT\n{\n    return base::all();\n}\n\ntemplate <size_t _Size>\ninline\nbool\nbitset<_Size>::any() const _NOEXCEPT\n{\n    return base::any();\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>\nbitset<_Size>::operator<<(size_t __pos) const _NOEXCEPT\n{\n    bitset __r = *this;\n    __r <<= __pos;\n    return __r;\n}\n\ntemplate <size_t _Size>\ninline\nbitset<_Size>\nbitset<_Size>::operator>>(size_t __pos) const _NOEXCEPT\n{\n    bitset __r = *this;\n    __r >>= __pos;\n    return __r;\n}\n\ntemplate <size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbitset<_Size>\noperator&(const bitset<_Size>& __x, const bitset<_Size>& __y) _NOEXCEPT\n{\n    bitset<_Size> __r = __x;\n    __r &= __y;\n    return __r;\n}\n\ntemplate <size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbitset<_Size>\noperator|(const bitset<_Size>& __x, const bitset<_Size>& __y) _NOEXCEPT\n{\n    bitset<_Size> __r = __x;\n    __r |= __y;\n    return __r;\n}\n\ntemplate <size_t _Size>\ninline _LIBCPP_INLINE_VISIBILITY\nbitset<_Size>\noperator^(const bitset<_Size>& __x, const bitset<_Size>& __y) _NOEXCEPT\n{\n    bitset<_Size> __r = __x;\n    __r ^= __y;\n    return __r;\n}\n\ntemplate <size_t _Size>\nstruct _LIBCPP_TEMPLATE_VIS hash<bitset<_Size> >\n    : public unary_function<bitset<_Size>, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const bitset<_Size>& __bs) const _NOEXCEPT\n        {return __bs.__hash_code();}\n};\n\ntemplate <class _CharT, class _Traits, size_t _Size>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Size>& __x);\n\ntemplate <class _CharT, class _Traits, size_t _Size>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Size>& __x);\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_BITSET\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cassert",
    "content": "// -*- C++ -*-\n//===-------------------------- cassert -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n/*\n    cassert synopsis\n\nMacros:\n\n    assert\n\n*/\n\n#include <__config>\n#include <assert.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ccomplex",
    "content": "// -*- C++ -*-\n//===--------------------------- ccomplex ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CCOMPLEX\n#define _LIBCPP_CCOMPLEX\n\n/*\n    ccomplex synopsis\n\n#include <complex>\n\n*/\n\n#include <complex>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n// hh 080623 Created\n\n#endif  // _LIBCPP_CCOMPLEX\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cctype",
    "content": "// -*- C++ -*-\n//===---------------------------- cctype ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CCTYPE\n#define _LIBCPP_CCTYPE\n\n/*\n    cctype synopsis\n\nnamespace std\n{\n\nint isalnum(int c);\nint isalpha(int c);\nint isblank(int c);  // C99\nint iscntrl(int c);\nint isdigit(int c);\nint isgraph(int c);\nint islower(int c);\nint isprint(int c);\nint ispunct(int c);\nint isspace(int c);\nint isupper(int c);\nint isxdigit(int c);\nint tolower(int c);\nint toupper(int c);\n\n}  // std\n*/\n\n#include <__config>\n#include <ctype.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#ifdef isalnum\n#undef isalnum\n#endif\n\n#ifdef isalpha\n#undef isalpha\n#endif\n\n#ifdef isblank\n#undef isblank\n#endif\n\n#ifdef iscntrl\n#undef iscntrl\n#endif\n\n#ifdef isdigit\n#undef isdigit\n#endif\n\n#ifdef isgraph\n#undef isgraph\n#endif\n\n#ifdef islower\n#undef islower\n#endif\n\n#ifdef isprint\n#undef isprint\n#endif\n\n#ifdef ispunct\n#undef ispunct\n#endif\n\n#ifdef isspace\n#undef isspace\n#endif\n\n#ifdef isupper\n#undef isupper\n#endif\n\n#ifdef isxdigit\n#undef isxdigit\n#endif\n\n#ifdef tolower\n#undef tolower\n#endif\n\n#ifdef toupper\n#undef toupper\n#endif\n\n\nusing ::isalnum;\nusing ::isalpha;\nusing ::isblank;\nusing ::iscntrl;\nusing ::isdigit;\nusing ::isgraph;\nusing ::islower;\nusing ::isprint;\nusing ::ispunct;\nusing ::isspace;\nusing ::isupper;\nusing ::isxdigit;\nusing ::tolower;\nusing ::toupper;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CCTYPE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cerrno",
    "content": "// -*- C++ -*-\n//===-------------------------- cerrno ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CERRNO\n#define _LIBCPP_CERRNO\n\n/*\n    cerrno synopsis\n\nMacros:\n\n    EDOM\n    EILSEQ  // C99\n    ERANGE\n    errno\n\n*/\n\n#include <__config>\n#include <errno.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#endif  // _LIBCPP_CERRNO\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cfenv",
    "content": "// -*- C++ -*-\n//===---------------------------- cfenv -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CFENV\n#define _LIBCPP_CFENV\n\n/*\n    cfenv synopsis\n\nThis entire header is C99 / C++0X\n\nMacros:\n\n    FE_DIVBYZERO\n    FE_INEXACT\n    FE_INVALID\n    FE_OVERFLOW\n    FE_UNDERFLOW\n    FE_ALL_EXCEPT\n    FE_DOWNWARD\n    FE_TONEAREST\n    FE_TOWARDZERO\n    FE_UPWARD\n    FE_DFL_ENV\n\nnamespace std\n{\n\nTypes:\n\n    fenv_t\n    fexcept_t\n\nint feclearexcept(int excepts);\nint fegetexceptflag(fexcept_t* flagp, int excepts);\nint feraiseexcept(int excepts);\nint fesetexceptflag(const fexcept_t* flagp, int excepts);\nint fetestexcept(int excepts);\nint fegetround();\nint fesetround(int round);\nint fegetenv(fenv_t* envp);\nint feholdexcept(fenv_t* envp);\nint fesetenv(const fenv_t* envp);\nint feupdateenv(const fenv_t* envp);\n\n}  // std\n*/\n\n#include <__config>\n#include <fenv.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::fenv_t;\nusing ::fexcept_t;\n\nusing ::feclearexcept;\nusing ::fegetexceptflag;\nusing ::feraiseexcept;\nusing ::fesetexceptflag;\nusing ::fetestexcept;\nusing ::fegetround;\nusing ::fesetround;\nusing ::fegetenv;\nusing ::feholdexcept;\nusing ::fesetenv;\nusing ::feupdateenv;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CFENV\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cfloat",
    "content": "// -*- C++ -*-\n//===--------------------------- cfloat -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CFLOAT\n#define _LIBCPP_CFLOAT\n\n/*\n    cfloat synopsis\n\nMacros:\n\n    FLT_ROUNDS\n    FLT_EVAL_METHOD     // C99\n    FLT_RADIX\n\n    FLT_MANT_DIG\n    DBL_MANT_DIG\n    LDBL_MANT_DIG\n\n    DECIMAL_DIG         // C99\n\n    FLT_DIG\n    DBL_DIG\n    LDBL_DIG\n\n    FLT_MIN_EXP\n    DBL_MIN_EXP\n    LDBL_MIN_EXP\n\n    FLT_MIN_10_EXP\n    DBL_MIN_10_EXP\n    LDBL_MIN_10_EXP\n\n    FLT_MAX_EXP\n    DBL_MAX_EXP\n    LDBL_MAX_EXP\n\n    FLT_MAX_10_EXP\n    DBL_MAX_10_EXP\n    LDBL_MAX_10_EXP\n\n    FLT_MAX\n    DBL_MAX\n    LDBL_MAX\n\n    FLT_EPSILON\n    DBL_EPSILON\n    LDBL_EPSILON\n\n    FLT_MIN\n    DBL_MIN\n    LDBL_MIN\n\n*/\n\n#include <__config>\n#include <float.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#endif  // _LIBCPP_CFLOAT\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/chrono",
    "content": "// -*- C++ -*-\n//===---------------------------- chrono ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CHRONO\n#define _LIBCPP_CHRONO\n\n/*\n    chrono synopsis\n\nnamespace std\n{\nnamespace chrono\n{\n\ntemplate <class ToDuration, class Rep, class Period>\nconstexpr\nToDuration\nduration_cast(const duration<Rep, Period>& fd);\n\ntemplate <class Rep> struct treat_as_floating_point : is_floating_point<Rep> {};\n\ntemplate <class Rep> constexpr bool treat_as_floating_point_v\n    = treat_as_floating_point<Rep>::value;                       // C++17\n\ntemplate <class Rep>\nstruct duration_values\n{\npublic:\n    static constexpr Rep zero();\n    static constexpr Rep max();\n    static constexpr Rep min();\n};\n\n// duration\n\ntemplate <class Rep, class Period = ratio<1>>\nclass duration\n{\n    static_assert(!__is_duration<Rep>::value, \"A duration representation can not be a duration\");\n    static_assert(__is_ratio<Period>::value, \"Second template parameter of duration must be a std::ratio\");\n    static_assert(Period::num > 0, \"duration period must be positive\");\npublic:\n    typedef Rep rep;\n    typedef typename _Period::type period;\n\n    constexpr duration() = default;\n    template <class Rep2>\n        constexpr explicit duration(const Rep2& r,\n            typename enable_if\n            <\n               is_convertible<Rep2, rep>::value &&\n               (treat_as_floating_point<rep>::value ||\n               !treat_as_floating_point<rep>::value && !treat_as_floating_point<Rep2>::value)\n            >::type* = 0);\n\n    // conversions\n    template <class Rep2, class Period2>\n        constexpr duration(const duration<Rep2, Period2>& d,\n            typename enable_if\n            <\n                treat_as_floating_point<rep>::value ||\n                ratio_divide<Period2, period>::type::den == 1\n            >::type* = 0);\n\n    // observer\n\n    constexpr rep count() const;\n\n    // arithmetic\n\n    constexpr common_type<duration>::type  operator+() const;\n    constexpr common_type<duration>::type  operator-() const;\n    constexpr duration& operator++();\n    constexpr duration  operator++(int);\n    constexpr duration& operator--();\n    constexpr duration  operator--(int);\n\n    constexpr duration& operator+=(const duration& d);\n    constexpr duration& operator-=(const duration& d);\n\n    duration& operator*=(const rep& rhs);\n    duration& operator/=(const rep& rhs);\n\n    // special values\n\n    static constexpr duration zero();\n    static constexpr duration min();\n    static constexpr duration max();\n};\n\ntypedef duration<long long,         nano> nanoseconds;\ntypedef duration<long long,        micro> microseconds;\ntypedef duration<long long,        milli> milliseconds;\ntypedef duration<long long              > seconds;\ntypedef duration<     long, ratio<  60> > minutes;\ntypedef duration<     long, ratio<3600> > hours;\n\ntemplate <class Clock, class Duration = typename Clock::duration>\nclass time_point\n{\npublic:\n    typedef Clock                     clock;\n    typedef Duration                  duration;\n    typedef typename duration::rep    rep;\n    typedef typename duration::period period;\nprivate:\n    duration d_;  // exposition only\n\npublic:\n    time_point();  // has value \"epoch\" // constexpr in C++14\n    explicit time_point(const duration& d);  // same as time_point() + d // constexpr in C++14\n\n    // conversions\n    template <class Duration2>\n       time_point(const time_point<clock, Duration2>& t); // constexpr in C++14\n\n    // observer\n\n    duration time_since_epoch() const; // constexpr in C++14\n\n    // arithmetic\n\n    time_point& operator+=(const duration& d);\n    time_point& operator-=(const duration& d);\n\n    // special values\n\n    static constexpr time_point min();\n    static constexpr time_point max();\n};\n\n} // chrono\n\n// common_type traits\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n  struct common_type<chrono::duration<Rep1, Period1>, chrono::duration<Rep2, Period2>>;\n\ntemplate <class Clock, class Duration1, class Duration2>\n  struct common_type<chrono::time_point<Clock, Duration1>, chrono::time_point<Clock, Duration2>>;\n\nnamespace chrono {\n\n// duration arithmetic\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n  constexpr\n  typename common_type<duration<Rep1, Period1>, duration<Rep2, Period2>>::type\n  operator+(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n  constexpr\n  typename common_type<duration<Rep1, Period1>, duration<Rep2, Period2>>::type\n  operator-(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Rep1, class Period, class Rep2>\n  constexpr\n  duration<typename common_type<Rep1, Rep2>::type, Period>\n  operator*(const duration<Rep1, Period>& d, const Rep2& s);\ntemplate <class Rep1, class Period, class Rep2>\n  constexpr\n  duration<typename common_type<Rep1, Rep2>::type, Period>\n  operator*(const Rep1& s, const duration<Rep2, Period>& d);\ntemplate <class Rep1, class Period, class Rep2>\n  constexpr\n  duration<typename common_type<Rep1, Rep2>::type, Period>\n  operator/(const duration<Rep1, Period>& d, const Rep2& s);\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n  constexpr\n  typename common_type<Rep1, Rep2>::type\n  operator/(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\n\n// duration comparisons\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n   constexpr\n   bool operator==(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n   constexpr\n   bool operator!=(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n   constexpr\n   bool operator< (const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n   constexpr\n   bool operator<=(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n   constexpr\n   bool operator> (const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Rep1, class Period1, class Rep2, class Period2>\n   constexpr\n   bool operator>=(const duration<Rep1, Period1>& lhs, const duration<Rep2, Period2>& rhs);\n\n// duration_cast\ntemplate <class ToDuration, class Rep, class Period>\n  ToDuration duration_cast(const duration<Rep, Period>& d);\n\ntemplate <class ToDuration, class Rep, class Period>\n    constexpr ToDuration floor(const duration<Rep, Period>& d);    // C++17\ntemplate <class ToDuration, class Rep, class Period>\n    constexpr ToDuration ceil(const duration<Rep, Period>& d);     // C++17\ntemplate <class ToDuration, class Rep, class Period>\n    constexpr ToDuration round(const duration<Rep, Period>& d);    // C++17\n\n// time_point arithmetic (all constexpr in C++14)\ntemplate <class Clock, class Duration1, class Rep2, class Period2>\n  time_point<Clock, typename common_type<Duration1, duration<Rep2, Period2>>::type>\n  operator+(const time_point<Clock, Duration1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Rep1, class Period1, class Clock, class Duration2>\n  time_point<Clock, typename common_type<duration<Rep1, Period1>, Duration2>::type>\n  operator+(const duration<Rep1, Period1>& lhs, const time_point<Clock, Duration2>& rhs);\ntemplate <class Clock, class Duration1, class Rep2, class Period2>\n  time_point<Clock, typename common_type<Duration1, duration<Rep2, Period2>>::type>\n  operator-(const time_point<Clock, Duration1>& lhs, const duration<Rep2, Period2>& rhs);\ntemplate <class Clock, class Duration1, class Duration2>\n  typename common_type<Duration1, Duration2>::type\n  operator-(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);\n\n// time_point comparisons (all constexpr in C++14)\ntemplate <class Clock, class Duration1, class Duration2>\n   bool operator==(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);\ntemplate <class Clock, class Duration1, class Duration2>\n   bool operator!=(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);\ntemplate <class Clock, class Duration1, class Duration2>\n   bool operator< (const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);\ntemplate <class Clock, class Duration1, class Duration2>\n   bool operator<=(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);\ntemplate <class Clock, class Duration1, class Duration2>\n   bool operator> (const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);\ntemplate <class Clock, class Duration1, class Duration2>\n   bool operator>=(const time_point<Clock, Duration1>& lhs, const time_point<Clock, Duration2>& rhs);\n\n// time_point_cast (constexpr in C++14)\n\ntemplate <class ToDuration, class Clock, class Duration>\n  time_point<Clock, ToDuration> time_point_cast(const time_point<Clock, Duration>& t);\n\ntemplate <class ToDuration, class Clock, class Duration>\n    constexpr time_point<Clock, ToDuration>\n    floor(const time_point<Clock, Duration>& tp);                  // C++17\n\ntemplate <class ToDuration, class Clock, class Duration>\n    constexpr time_point<Clock, ToDuration>\n    ceil(const time_point<Clock, Duration>& tp);                   // C++17\n\ntemplate <class ToDuration, class Clock, class Duration>\n    constexpr time_point<Clock, ToDuration>\n    round(const time_point<Clock, Duration>& tp);                  // C++17\n\ntemplate <class Rep, class Period>\n    constexpr duration<Rep, Period> abs(duration<Rep, Period> d);  // C++17\n// Clocks\n\nclass system_clock\n{\npublic:\n    typedef microseconds                     duration;\n    typedef duration::rep                    rep;\n    typedef duration::period                 period;\n    typedef chrono::time_point<system_clock> time_point;\n    static const bool is_steady =            false; // constexpr in C++14\n\n    static time_point now() noexcept;\n    static time_t     to_time_t  (const time_point& __t) noexcept;\n    static time_point from_time_t(time_t __t) noexcept;\n};\n\nclass steady_clock\n{\npublic:\n    typedef nanoseconds                                   duration;\n    typedef duration::rep                                 rep;\n    typedef duration::period                              period;\n    typedef chrono::time_point<steady_clock, duration>    time_point;\n    static const bool is_steady =                         true; // constexpr in C++14\n\n    static time_point now() noexcept;\n};\n\ntypedef steady_clock high_resolution_clock;\n\n}  // chrono\n\nconstexpr chrono::hours                                 operator \"\" h(unsigned long long); // C++14\nconstexpr chrono::duration<unspecified , ratio<3600,1>> operator \"\" h(long double); // C++14\nconstexpr chrono::minutes                               operator \"\" min(unsigned long long); // C++14\nconstexpr chrono::duration<unspecified , ratio<60,1>>   operator \"\" min(long double); // C++14\nconstexpr chrono::seconds                               operator \"\" s(unsigned long long); // C++14\nconstexpr chrono::duration<unspecified >                operator \"\" s(long double); // C++14\nconstexpr chrono::milliseconds                          operator \"\" ms(unsigned long long); // C++14\nconstexpr chrono::duration<unspecified , milli>         operator \"\" ms(long double); // C++14\nconstexpr chrono::microseconds                          operator \"\" us(unsigned long long); // C++14\nconstexpr chrono::duration<unspecified , micro>         operator \"\" us(long double); // C++14\nconstexpr chrono::nanoseconds                           operator \"\" ns(unsigned long long); // C++14\nconstexpr chrono::duration<unspecified , nano>          operator \"\" ns(long double); // C++14\n\n}  // std\n*/\n\n#include <__config>\n#include <ctime>\n#include <type_traits>\n#include <ratio>\n#include <limits>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nnamespace chrono\n{\n\ntemplate <class _Rep, class _Period = ratio<1> > class _LIBCPP_TEMPLATE_VIS duration;\n\ntemplate <class _Tp>\nstruct __is_duration : false_type {};\n\ntemplate <class _Rep, class _Period>\nstruct __is_duration<duration<_Rep, _Period> > : true_type  {};\n\ntemplate <class _Rep, class _Period>\nstruct __is_duration<const duration<_Rep, _Period> > : true_type  {};\n\ntemplate <class _Rep, class _Period>\nstruct __is_duration<volatile duration<_Rep, _Period> > : true_type  {};\n\ntemplate <class _Rep, class _Period>\nstruct __is_duration<const volatile duration<_Rep, _Period> > : true_type  {};\n\n} // chrono\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\nstruct _LIBCPP_TEMPLATE_VIS common_type<chrono::duration<_Rep1, _Period1>,\n                                         chrono::duration<_Rep2, _Period2> >\n{\n    typedef chrono::duration<typename common_type<_Rep1, _Rep2>::type,\n                             typename __ratio_gcd<_Period1, _Period2>::type> type;\n};\n\nnamespace chrono {\n\n// duration_cast\n\ntemplate <class _FromDuration, class _ToDuration,\n          class _Period = typename ratio_divide<typename _FromDuration::period, typename _ToDuration::period>::type,\n          bool = _Period::num == 1,\n          bool = _Period::den == 1>\nstruct __duration_cast;\n\ntemplate <class _FromDuration, class _ToDuration, class _Period>\nstruct __duration_cast<_FromDuration, _ToDuration, _Period, true, true>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    _ToDuration operator()(const _FromDuration& __fd) const\n    {\n        return _ToDuration(static_cast<typename _ToDuration::rep>(__fd.count()));\n    }\n};\n\ntemplate <class _FromDuration, class _ToDuration, class _Period>\nstruct __duration_cast<_FromDuration, _ToDuration, _Period, true, false>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    _ToDuration operator()(const _FromDuration& __fd) const\n    {\n        typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct;\n        return _ToDuration(static_cast<typename _ToDuration::rep>(\n                           static_cast<_Ct>(__fd.count()) / static_cast<_Ct>(_Period::den)));\n    }\n};\n\ntemplate <class _FromDuration, class _ToDuration, class _Period>\nstruct __duration_cast<_FromDuration, _ToDuration, _Period, false, true>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    _ToDuration operator()(const _FromDuration& __fd) const\n    {\n        typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct;\n        return _ToDuration(static_cast<typename _ToDuration::rep>(\n                           static_cast<_Ct>(__fd.count()) * static_cast<_Ct>(_Period::num)));\n    }\n};\n\ntemplate <class _FromDuration, class _ToDuration, class _Period>\nstruct __duration_cast<_FromDuration, _ToDuration, _Period, false, false>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    _ToDuration operator()(const _FromDuration& __fd) const\n    {\n        typedef typename common_type<typename _ToDuration::rep, typename _FromDuration::rep, intmax_t>::type _Ct;\n        return _ToDuration(static_cast<typename _ToDuration::rep>(\n                           static_cast<_Ct>(__fd.count()) * static_cast<_Ct>(_Period::num)\n                                                          / static_cast<_Ct>(_Period::den)));\n    }\n};\n\ntemplate <class _ToDuration, class _Rep, class _Period>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    __is_duration<_ToDuration>::value,\n    _ToDuration\n>::type\nduration_cast(const duration<_Rep, _Period>& __fd)\n{\n    return __duration_cast<duration<_Rep, _Period>, _ToDuration>()(__fd);\n}\n\ntemplate <class _Rep>\nstruct _LIBCPP_TEMPLATE_VIS treat_as_floating_point : is_floating_point<_Rep> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Rep> _LIBCPP_CONSTEXPR bool treat_as_floating_point_v\n    = treat_as_floating_point<_Rep>::value;\n#endif\n\ntemplate <class _Rep>\nstruct _LIBCPP_TEMPLATE_VIS duration_values\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR _Rep zero() {return _Rep(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR _Rep max()  {return numeric_limits<_Rep>::max();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR _Rep min()  {return numeric_limits<_Rep>::lowest();}\n};\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _ToDuration, class _Rep, class _Period>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    __is_duration<_ToDuration>::value,\n    _ToDuration\n>::type\nfloor(const duration<_Rep, _Period>& __d)\n{\n    _ToDuration __t = duration_cast<_ToDuration>(__d);\n    if (__t > __d)\n        __t = __t - _ToDuration{1};\n    return __t;\n}\n\ntemplate <class _ToDuration, class _Rep, class _Period>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    __is_duration<_ToDuration>::value,\n    _ToDuration\n>::type\nceil(const duration<_Rep, _Period>& __d)\n{\n    _ToDuration __t = duration_cast<_ToDuration>(__d);\n    if (__t < __d)\n        __t = __t + _ToDuration{1};\n    return __t;\n}\n\ntemplate <class _ToDuration, class _Rep, class _Period>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    __is_duration<_ToDuration>::value,\n    _ToDuration\n>::type\nround(const duration<_Rep, _Period>& __d)\n{\n    _ToDuration __lower = floor<_ToDuration>(__d);\n    _ToDuration __upper = __lower + _ToDuration{1};\n    auto __lowerDiff = __d - __lower;\n    auto __upperDiff = __upper - __d;\n    if (__lowerDiff < __upperDiff)\n        return __lower;\n    if (__lowerDiff > __upperDiff)\n        return __upper;\n    return __lower.count() & 1 ? __upper : __lower;\n}\n#endif\n\n// duration\n\ntemplate <class _Rep, class _Period>\nclass _LIBCPP_TEMPLATE_VIS duration\n{\n    static_assert(!__is_duration<_Rep>::value, \"A duration representation can not be a duration\");\n    static_assert(__is_ratio<_Period>::value, \"Second template parameter of duration must be a std::ratio\");\n    static_assert(_Period::num > 0, \"duration period must be positive\");\n\n    template <class _R1, class _R2>\n    struct __no_overflow\n    {\n    private:\n        static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value;\n        static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value;\n        static const intmax_t __n1 = _R1::num / __gcd_n1_n2;\n        static const intmax_t __d1 = _R1::den / __gcd_d1_d2;\n        static const intmax_t __n2 = _R2::num / __gcd_n1_n2;\n        static const intmax_t __d2 = _R2::den / __gcd_d1_d2;\n        static const intmax_t max = -((intmax_t(1) << (sizeof(intmax_t) * CHAR_BIT - 1)) + 1);\n\n        template <intmax_t _Xp, intmax_t _Yp, bool __overflow>\n        struct __mul    // __overflow == false\n        {\n            static const intmax_t value = _Xp * _Yp;\n        };\n\n        template <intmax_t _Xp, intmax_t _Yp>\n        struct __mul<_Xp, _Yp, true>\n        {\n            static const intmax_t value = 1;\n        };\n\n    public:\n        static const bool value = (__n1 <= max / __d2) && (__n2 <= max / __d1);\n        typedef ratio<__mul<__n1, __d2, !value>::value,\n                      __mul<__n2, __d1, !value>::value> type;\n    };\n    \npublic:\n    typedef _Rep rep;\n    typedef typename _Period::type period;\nprivate:\n    rep __rep_;\npublic:\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n#ifndef _LIBCPP_CXX03_LANG\n        duration() = default;\n#else\n        duration() {}\n#endif\n\n    template <class _Rep2>\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n        explicit duration(const _Rep2& __r,\n            typename enable_if\n            <\n               is_convertible<_Rep2, rep>::value &&\n               (treat_as_floating_point<rep>::value ||\n               !treat_as_floating_point<_Rep2>::value)\n            >::type* = 0)\n                : __rep_(__r) {}\n\n    // conversions\n    template <class _Rep2, class _Period2>\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n        duration(const duration<_Rep2, _Period2>& __d,\n            typename enable_if\n            <\n                __no_overflow<_Period2, period>::value && (\n                treat_as_floating_point<rep>::value ||\n                (__no_overflow<_Period2, period>::type::den == 1 &&\n                 !treat_as_floating_point<_Rep2>::value))\n            >::type* = 0)\n                : __rep_(_VSTD::chrono::duration_cast<duration>(__d).count()) {}\n\n    // observer\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR rep count() const {return __rep_;}\n\n    // arithmetic\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR typename common_type<duration>::type operator+() const {return typename common_type<duration>::type(*this);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR typename common_type<duration>::type operator-() const {return typename common_type<duration>::type(-__rep_);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration& operator++()      {++__rep_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration  operator++(int)   {return duration(__rep_++);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration& operator--()      {--__rep_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration  operator--(int)   {return duration(__rep_--);}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration& operator+=(const duration& __d) {__rep_ += __d.count(); return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration& operator-=(const duration& __d) {__rep_ -= __d.count(); return *this;}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration& operator*=(const rep& rhs) {__rep_ *= rhs; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration& operator/=(const rep& rhs) {__rep_ /= rhs; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration& operator%=(const rep& rhs) {__rep_ %= rhs; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 duration& operator%=(const duration& rhs) {__rep_ %= rhs.count(); return *this;}\n\n    // special values\n\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR duration zero() {return duration(duration_values<rep>::zero());}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR duration min()  {return duration(duration_values<rep>::min());}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR duration max()  {return duration(duration_values<rep>::max());}\n};\n\ntypedef duration<long long,         nano> nanoseconds;\ntypedef duration<long long,        micro> microseconds;\ntypedef duration<long long,        milli> milliseconds;\ntypedef duration<long long              > seconds;\ntypedef duration<     long, ratio<  60> > minutes;\ntypedef duration<     long, ratio<3600> > hours;\n\n// Duration ==\n\ntemplate <class _LhsDuration, class _RhsDuration>\nstruct __duration_eq\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    bool operator()(const _LhsDuration& __lhs, const _RhsDuration& __rhs) const\n        {\n            typedef typename common_type<_LhsDuration, _RhsDuration>::type _Ct;\n            return _Ct(__lhs).count() == _Ct(__rhs).count();\n        }\n};\n\ntemplate <class _LhsDuration>\nstruct __duration_eq<_LhsDuration, _LhsDuration>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    bool operator()(const _LhsDuration& __lhs, const _LhsDuration& __rhs) const\n        {return __lhs.count() == __rhs.count();}\n};\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nbool\noperator==(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    return __duration_eq<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >()(__lhs, __rhs);\n}\n\n// Duration !=\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nbool\noperator!=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    return !(__lhs == __rhs);\n}\n\n// Duration <\n\ntemplate <class _LhsDuration, class _RhsDuration>\nstruct __duration_lt\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    bool operator()(const _LhsDuration& __lhs, const _RhsDuration& __rhs) const\n        {\n            typedef typename common_type<_LhsDuration, _RhsDuration>::type _Ct;\n            return _Ct(__lhs).count() < _Ct(__rhs).count();\n        }\n};\n\ntemplate <class _LhsDuration>\nstruct __duration_lt<_LhsDuration, _LhsDuration>\n{\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    bool operator()(const _LhsDuration& __lhs, const _LhsDuration& __rhs) const\n        {return __lhs.count() < __rhs.count();}\n};\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nbool\noperator< (const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    return __duration_lt<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >()(__lhs, __rhs);\n}\n\n// Duration >\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nbool\noperator> (const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    return __rhs < __lhs;\n}\n\n// Duration <=\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nbool\noperator<=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    return !(__rhs < __lhs);\n}\n\n// Duration >=\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nbool\noperator>=(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    return !(__lhs < __rhs);\n}\n\n// Duration +\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type\noperator+(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd;\n    return _Cd(_Cd(__lhs).count() + _Cd(__rhs).count());\n}\n\n// Duration -\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type\noperator-(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd;\n    return _Cd(_Cd(__lhs).count() - _Cd(__rhs).count());\n}\n\n// Duration *\n\ntemplate <class _Rep1, class _Period, class _Rep2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    is_convertible<_Rep2, typename common_type<_Rep1, _Rep2>::type>::value,\n    duration<typename common_type<_Rep1, _Rep2>::type, _Period>\n>::type\noperator*(const duration<_Rep1, _Period>& __d, const _Rep2& __s)\n{\n    typedef typename common_type<_Rep1, _Rep2>::type _Cr;\n    typedef duration<_Cr, _Period> _Cd;\n    return _Cd(_Cd(__d).count() * static_cast<_Cr>(__s));\n}\n\ntemplate <class _Rep1, class _Period, class _Rep2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    is_convertible<_Rep1, typename common_type<_Rep1, _Rep2>::type>::value,\n    duration<typename common_type<_Rep1, _Rep2>::type, _Period>\n>::type\noperator*(const _Rep1& __s, const duration<_Rep2, _Period>& __d)\n{\n    return __d * __s;\n}\n\n// Duration /\n\ntemplate <class _Duration, class _Rep, bool = __is_duration<_Rep>::value>\nstruct __duration_divide_result\n{\n};\n\ntemplate <class _Duration, class _Rep2,\n    bool = is_convertible<_Rep2,\n                          typename common_type<typename _Duration::rep, _Rep2>::type>::value>\nstruct __duration_divide_imp\n{\n};\n\ntemplate <class _Rep1, class _Period, class _Rep2>\nstruct __duration_divide_imp<duration<_Rep1, _Period>, _Rep2, true>\n{\n    typedef duration<typename common_type<_Rep1, _Rep2>::type, _Period> type;\n};\n\ntemplate <class _Rep1, class _Period, class _Rep2>\nstruct __duration_divide_result<duration<_Rep1, _Period>, _Rep2, false>\n    : __duration_divide_imp<duration<_Rep1, _Period>, _Rep2>\n{\n};\n\ntemplate <class _Rep1, class _Period, class _Rep2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename __duration_divide_result<duration<_Rep1, _Period>, _Rep2>::type\noperator/(const duration<_Rep1, _Period>& __d, const _Rep2& __s)\n{\n    typedef typename common_type<_Rep1, _Rep2>::type _Cr;\n    typedef duration<_Cr, _Period> _Cd;\n    return _Cd(_Cd(__d).count() / static_cast<_Cr>(__s));\n}\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename common_type<_Rep1, _Rep2>::type\noperator/(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Ct;\n    return _Ct(__lhs).count() / _Ct(__rhs).count();\n}\n\n// Duration %\n\ntemplate <class _Rep1, class _Period, class _Rep2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename __duration_divide_result<duration<_Rep1, _Period>, _Rep2>::type\noperator%(const duration<_Rep1, _Period>& __d, const _Rep2& __s)\n{\n    typedef typename common_type<_Rep1, _Rep2>::type _Cr;\n    typedef duration<_Cr, _Period> _Cd;\n    return _Cd(_Cd(__d).count() % static_cast<_Cr>(__s));\n}\n\ntemplate <class _Rep1, class _Period1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\ntypename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type\noperator%(const duration<_Rep1, _Period1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    typedef typename common_type<_Rep1, _Rep2>::type _Cr;\n    typedef typename common_type<duration<_Rep1, _Period1>, duration<_Rep2, _Period2> >::type _Cd;\n    return _Cd(static_cast<_Cr>(_Cd(__lhs).count()) % static_cast<_Cr>(_Cd(__rhs).count()));\n}\n\n//////////////////////////////////////////////////////////\n///////////////////// time_point /////////////////////////\n//////////////////////////////////////////////////////////\n\ntemplate <class _Clock, class _Duration = typename _Clock::duration>\nclass _LIBCPP_TEMPLATE_VIS time_point\n{\n    static_assert(__is_duration<_Duration>::value,\n                  \"Second template parameter of time_point must be a std::chrono::duration\");\npublic:\n    typedef _Clock                    clock;\n    typedef _Duration                 duration;\n    typedef typename duration::rep    rep;\n    typedef typename duration::period period;\nprivate:\n    duration __d_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 time_point() : __d_(duration::zero()) {}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 explicit time_point(const duration& __d) : __d_(__d) {}\n\n    // conversions\n    template <class _Duration2>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    time_point(const time_point<clock, _Duration2>& t,\n        typename enable_if\n        <\n            is_convertible<_Duration2, duration>::value\n        >::type* = 0)\n            : __d_(t.time_since_epoch()) {}\n\n    // observer\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 duration time_since_epoch() const {return __d_;}\n\n    // arithmetic\n\n    _LIBCPP_INLINE_VISIBILITY time_point& operator+=(const duration& __d) {__d_ += __d; return *this;}\n    _LIBCPP_INLINE_VISIBILITY time_point& operator-=(const duration& __d) {__d_ -= __d; return *this;}\n\n    // special values\n\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR time_point min() {return time_point(duration::min());}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR time_point max() {return time_point(duration::max());}\n};\n\n} // chrono\n\ntemplate <class _Clock, class _Duration1, class _Duration2>\nstruct _LIBCPP_TEMPLATE_VIS common_type<chrono::time_point<_Clock, _Duration1>,\n                                         chrono::time_point<_Clock, _Duration2> >\n{\n    typedef chrono::time_point<_Clock, typename common_type<_Duration1, _Duration2>::type> type;\n};\n\nnamespace chrono {\n\ntemplate <class _ToDuration, class _Clock, class _Duration>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntime_point<_Clock, _ToDuration>\ntime_point_cast(const time_point<_Clock, _Duration>& __t)\n{\n    return time_point<_Clock, _ToDuration>(_VSTD::chrono::duration_cast<_ToDuration>(__t.time_since_epoch()));\n}\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _ToDuration, class _Clock, class _Duration>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    __is_duration<_ToDuration>::value,\n    time_point<_Clock, _ToDuration>\n>::type\nfloor(const time_point<_Clock, _Duration>& __t)\n{\n    return time_point<_Clock, _ToDuration>{floor<_ToDuration>(__t.time_since_epoch())};\n}\n\ntemplate <class _ToDuration, class _Clock, class _Duration>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    __is_duration<_ToDuration>::value,\n    time_point<_Clock, _ToDuration>\n>::type\nceil(const time_point<_Clock, _Duration>& __t)\n{\n    return time_point<_Clock, _ToDuration>{ceil<_ToDuration>(__t.time_since_epoch())};\n}\n\ntemplate <class _ToDuration, class _Clock, class _Duration>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    __is_duration<_ToDuration>::value,\n    time_point<_Clock, _ToDuration>\n>::type\nround(const time_point<_Clock, _Duration>& __t)\n{\n    return time_point<_Clock, _ToDuration>{round<_ToDuration>(__t.time_since_epoch())};\n}\n\ntemplate <class _Rep, class _Period>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\ntypename enable_if\n<\n    numeric_limits<_Rep>::is_signed,\n    duration<_Rep, _Period>\n>::type\nabs(duration<_Rep, _Period> __d)\n{\n    return __d >= __d.zero() ? __d : -__d;\n}\n#endif\n\n// time_point ==\n\ntemplate <class _Clock, class _Duration1, class _Duration2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator==(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs)\n{\n    return __lhs.time_since_epoch() == __rhs.time_since_epoch();\n}\n\n// time_point !=\n\ntemplate <class _Clock, class _Duration1, class _Duration2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator!=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs)\n{\n    return !(__lhs == __rhs);\n}\n\n// time_point <\n\ntemplate <class _Clock, class _Duration1, class _Duration2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator<(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs)\n{\n    return __lhs.time_since_epoch() < __rhs.time_since_epoch();\n}\n\n// time_point >\n\ntemplate <class _Clock, class _Duration1, class _Duration2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator>(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs)\n{\n    return __rhs < __lhs;\n}\n\n// time_point <=\n\ntemplate <class _Clock, class _Duration1, class _Duration2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator<=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs)\n{\n    return !(__rhs < __lhs);\n}\n\n// time_point >=\n\ntemplate <class _Clock, class _Duration1, class _Duration2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator>=(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs)\n{\n    return !(__lhs < __rhs);\n}\n\n// time_point operator+(time_point x, duration y);\n\ntemplate <class _Clock, class _Duration1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntime_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type>\noperator+(const time_point<_Clock, _Duration1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    typedef time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> _Tr;\n    return _Tr (__lhs.time_since_epoch() + __rhs);\n}\n\n// time_point operator+(duration x, time_point y);\n\ntemplate <class _Rep1, class _Period1, class _Clock, class _Duration2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntime_point<_Clock, typename common_type<duration<_Rep1, _Period1>, _Duration2>::type>\noperator+(const duration<_Rep1, _Period1>& __lhs, const time_point<_Clock, _Duration2>& __rhs)\n{\n    return __rhs + __lhs;\n}\n\n// time_point operator-(time_point x, duration y);\n\ntemplate <class _Clock, class _Duration1, class _Rep2, class _Period2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntime_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type>\noperator-(const time_point<_Clock, _Duration1>& __lhs, const duration<_Rep2, _Period2>& __rhs)\n{\n    typedef time_point<_Clock, typename common_type<_Duration1, duration<_Rep2, _Period2> >::type> _Ret;\n    return _Ret(__lhs.time_since_epoch() -__rhs);\n}\n\n// duration operator-(time_point x, time_point y);\n\ntemplate <class _Clock, class _Duration1, class _Duration2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename common_type<_Duration1, _Duration2>::type\noperator-(const time_point<_Clock, _Duration1>& __lhs, const time_point<_Clock, _Duration2>& __rhs)\n{\n    return __lhs.time_since_epoch() - __rhs.time_since_epoch();\n}\n\n//////////////////////////////////////////////////////////\n/////////////////////// clocks ///////////////////////////\n//////////////////////////////////////////////////////////\n\nclass _LIBCPP_TYPE_VIS system_clock\n{\npublic:\n    typedef microseconds                     duration;\n    typedef duration::rep                    rep;\n    typedef duration::period                 period;\n    typedef chrono::time_point<system_clock> time_point;\n    static _LIBCPP_CONSTEXPR_AFTER_CXX11 const bool is_steady = false;\n\n    static time_point now() _NOEXCEPT;\n    static time_t     to_time_t  (const time_point& __t) _NOEXCEPT;\n    static time_point from_time_t(time_t __t) _NOEXCEPT;\n};\n\n#ifndef _LIBCPP_HAS_NO_MONOTONIC_CLOCK\nclass _LIBCPP_TYPE_VIS steady_clock\n{\npublic:\n    typedef nanoseconds                                   duration;\n    typedef duration::rep                                 rep;\n    typedef duration::period                              period;\n    typedef chrono::time_point<steady_clock, duration>    time_point;\n    static _LIBCPP_CONSTEXPR_AFTER_CXX11 const bool is_steady = true;\n\n    static time_point now() _NOEXCEPT;\n};\n\ntypedef steady_clock high_resolution_clock;\n#else\ntypedef system_clock high_resolution_clock;\n#endif\n\n} // chrono\n\n#if _LIBCPP_STD_VER > 11\n// Suffixes for duration literals [time.duration.literals]\ninline namespace literals\n{ \n  inline namespace chrono_literals\n  {\n\n    constexpr chrono::hours operator\"\" h(unsigned long long __h)\n    {\n        return chrono::hours(static_cast<chrono::hours::rep>(__h));\n    }\n\n    constexpr chrono::duration<long double, ratio<3600,1>> operator\"\" h(long double __h)\n    {\n        return chrono::duration<long double, ratio<3600,1>>(__h);\n    }\n\n\n    constexpr chrono::minutes operator\"\" min(unsigned long long __m)\n    {\n        return chrono::minutes(static_cast<chrono::minutes::rep>(__m));\n    }\n\n    constexpr chrono::duration<long double, ratio<60,1>> operator\"\" min(long double __m)\n    {\n        return chrono::duration<long double, ratio<60,1>> (__m);\n    }\n\n\n    constexpr chrono::seconds operator\"\" s(unsigned long long __s)\n    {\n        return chrono::seconds(static_cast<chrono::seconds::rep>(__s));\n    }\n\n    constexpr chrono::duration<long double> operator\"\" s(long double __s)\n    {\n        return chrono::duration<long double> (__s);\n    }\n\n\n    constexpr chrono::milliseconds operator\"\" ms(unsigned long long __ms)\n    {\n        return chrono::milliseconds(static_cast<chrono::milliseconds::rep>(__ms));\n    }\n\n    constexpr chrono::duration<long double, milli> operator\"\" ms(long double __ms)\n    {\n        return chrono::duration<long double, milli>(__ms);\n    }\n\n\n    constexpr chrono::microseconds operator\"\" us(unsigned long long __us)\n    {\n        return chrono::microseconds(static_cast<chrono::microseconds::rep>(__us));\n    }\n\n    constexpr chrono::duration<long double, micro> operator\"\" us(long double __us)\n    {\n        return chrono::duration<long double, micro> (__us);\n    }\n    \n\n    constexpr chrono::nanoseconds operator\"\" ns(unsigned long long __ns)\n    {\n        return chrono::nanoseconds(static_cast<chrono::nanoseconds::rep>(__ns));\n    }\n\n    constexpr chrono::duration<long double, nano> operator\"\" ns(long double __ns)\n    {\n        return chrono::duration<long double, nano> (__ns);\n    }\n\n}}\n\nnamespace chrono { // hoist the literals into namespace std::chrono\n   using namespace literals::chrono_literals;\n}\n\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_CHRONO\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cinttypes",
    "content": "// -*- C++ -*-\n//===--------------------------- cinttypes --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CINTTYPES\n#define _LIBCPP_CINTTYPES\n\n/*\n    cinttypes synopsis\n\nThis entire header is C99 / C++0X\n\n#include <cstdint>  // <cinttypes> includes <cstdint>\n\nMacros:\n\n    PRId8\n    PRId16\n    PRId32\n    PRId64\n\n    PRIdLEAST8\n    PRIdLEAST16\n    PRIdLEAST32\n    PRIdLEAST64\n\n    PRIdFAST8\n    PRIdFAST16\n    PRIdFAST32\n    PRIdFAST64\n\n    PRIdMAX\n    PRIdPTR\n\n    PRIi8\n    PRIi16\n    PRIi32\n    PRIi64\n\n    PRIiLEAST8\n    PRIiLEAST16\n    PRIiLEAST32\n    PRIiLEAST64\n\n    PRIiFAST8\n    PRIiFAST16\n    PRIiFAST32\n    PRIiFAST64\n\n    PRIiMAX\n    PRIiPTR\n\n    PRIo8\n    PRIo16\n    PRIo32\n    PRIo64\n\n    PRIoLEAST8\n    PRIoLEAST16\n    PRIoLEAST32\n    PRIoLEAST64\n\n    PRIoFAST8\n    PRIoFAST16\n    PRIoFAST32\n    PRIoFAST64\n\n    PRIoMAX\n    PRIoPTR\n\n    PRIu8\n    PRIu16\n    PRIu32\n    PRIu64\n\n    PRIuLEAST8\n    PRIuLEAST16\n    PRIuLEAST32\n    PRIuLEAST64\n\n    PRIuFAST8\n    PRIuFAST16\n    PRIuFAST32\n    PRIuFAST64\n\n    PRIuMAX\n    PRIuPTR\n\n    PRIx8\n    PRIx16\n    PRIx32\n    PRIx64\n\n    PRIxLEAST8\n    PRIxLEAST16\n    PRIxLEAST32\n    PRIxLEAST64\n\n    PRIxFAST8\n    PRIxFAST16\n    PRIxFAST32\n    PRIxFAST64\n\n    PRIxMAX\n    PRIxPTR\n\n    PRIX8\n    PRIX16\n    PRIX32\n    PRIX64\n\n    PRIXLEAST8\n    PRIXLEAST16\n    PRIXLEAST32\n    PRIXLEAST64\n\n    PRIXFAST8\n    PRIXFAST16\n    PRIXFAST32\n    PRIXFAST64\n\n    PRIXMAX\n    PRIXPTR\n\n    SCNd8\n    SCNd16\n    SCNd32\n    SCNd64\n\n    SCNdLEAST8\n    SCNdLEAST16\n    SCNdLEAST32\n    SCNdLEAST64\n\n    SCNdFAST8\n    SCNdFAST16\n    SCNdFAST32\n    SCNdFAST64\n\n    SCNdMAX\n    SCNdPTR\n\n    SCNi8\n    SCNi16\n    SCNi32\n    SCNi64\n\n    SCNiLEAST8\n    SCNiLEAST16\n    SCNiLEAST32\n    SCNiLEAST64\n\n    SCNiFAST8\n    SCNiFAST16\n    SCNiFAST32\n    SCNiFAST64\n\n    SCNiMAX\n    SCNiPTR\n\n    SCNo8\n    SCNo16\n    SCNo32\n    SCNo64\n\n    SCNoLEAST8\n    SCNoLEAST16\n    SCNoLEAST32\n    SCNoLEAST64\n\n    SCNoFAST8\n    SCNoFAST16\n    SCNoFAST32\n    SCNoFAST64\n\n    SCNoMAX\n    SCNoPTR\n\n    SCNu8\n    SCNu16\n    SCNu32\n    SCNu64\n\n    SCNuLEAST8\n    SCNuLEAST16\n    SCNuLEAST32\n    SCNuLEAST64\n\n    SCNuFAST8\n    SCNuFAST16\n    SCNuFAST32\n    SCNuFAST64\n\n    SCNuMAX\n    SCNuPTR\n\n    SCNx8\n    SCNx16\n    SCNx32\n    SCNx64\n\n    SCNxLEAST8\n    SCNxLEAST16\n    SCNxLEAST32\n    SCNxLEAST64\n\n    SCNxFAST8\n    SCNxFAST16\n    SCNxFAST32\n    SCNxFAST64\n\n    SCNxMAX\n    SCNxPTR\n\nnamespace std\n{\n\nTypes:\n\n    imaxdiv_t\n\nintmax_t  imaxabs(intmax_t j);\nimaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);\nintmax_t  strtoimax(const char* restrict nptr, char** restrict endptr, int base);\nuintmax_t strtoumax(const char* restrict nptr, char** restrict endptr, int base);\nintmax_t  wcstoimax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);\nuintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);\n\n}  // std\n*/\n\n#include <__config>\n#include <cstdint>\n#include <inttypes.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing::imaxdiv_t;\nusing::imaxabs;\nusing::imaxdiv;\nusing::strtoimax;\nusing::strtoumax;\nusing::wcstoimax;\nusing::wcstoumax;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CINTTYPES\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ciso646",
    "content": "// -*- C++ -*-\n//===--------------------------- ciso646 ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CISO646\n#define _LIBCPP_CISO646\n\n/*\n    ciso646 synopsis\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#endif  // _LIBCPP_CISO646\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/climits",
    "content": "// -*- C++ -*-\n//===--------------------------- climits ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CLIMITS\n#define _LIBCPP_CLIMITS\n\n/*\n    climits synopsis\n\nMacros:\n\n    CHAR_BIT\n    SCHAR_MIN\n    SCHAR_MAX\n    UCHAR_MAX\n    CHAR_MIN\n    CHAR_MAX\n    MB_LEN_MAX\n    SHRT_MIN\n    SHRT_MAX\n    USHRT_MAX\n    INT_MIN\n    INT_MAX\n    UINT_MAX\n    LONG_MIN\n    LONG_MAX\n    ULONG_MAX\n    LLONG_MIN   // C99\n    LLONG_MAX   // C99\n    ULLONG_MAX  // C99\n\n*/\n\n#include <__config>\n#include <limits.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#endif  // _LIBCPP_CLIMITS\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/clocale",
    "content": "// -*- C++ -*-\n//===--------------------------- clocale ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CLOCALE\n#define _LIBCPP_CLOCALE\n\n/*\n    clocale synopsis\n\nMacros:\n\n    LC_ALL\n    LC_COLLATE\n    LC_CTYPE\n    LC_MONETARY\n    LC_NUMERIC\n    LC_TIME\n    NULL\n\nnamespace std\n{\n\nstruct lconv;\nchar* setlocale(int category, const char* locale);\nlconv* localeconv();\n\n}  // std\n\n*/\n\n#include <__config>\n#include <locale.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::lconv;\n#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS\nusing ::setlocale;\n#endif\nusing ::localeconv;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CLOCALE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cmath",
    "content": "// -*- C++ -*-\n//===---------------------------- cmath -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CMATH\n#define _LIBCPP_CMATH\n\n/*\n    cmath synopsis\n\nMacros:\n\n    HUGE_VAL\n    HUGE_VALF               // C99\n    HUGE_VALL               // C99\n    INFINITY                // C99\n    NAN                     // C99\n    FP_INFINITE             // C99\n    FP_NAN                  // C99\n    FP_NORMAL               // C99\n    FP_SUBNORMAL            // C99\n    FP_ZERO                 // C99\n    FP_FAST_FMA             // C99\n    FP_FAST_FMAF            // C99\n    FP_FAST_FMAL            // C99\n    FP_ILOGB0               // C99\n    FP_ILOGBNAN             // C99\n    MATH_ERRNO              // C99\n    MATH_ERREXCEPT          // C99\n    math_errhandling        // C99\n\nnamespace std\n{\n\nTypes:\n\n    float_t                 // C99\n    double_t                // C99\n\n// C90\n\nfloating_point abs(floating_point x);\n\nfloating_point acos (arithmetic x);\nfloat          acosf(float x);\nlong double    acosl(long double x);\n\nfloating_point asin (arithmetic x);\nfloat          asinf(float x);\nlong double    asinl(long double x);\n\nfloating_point atan (arithmetic x);\nfloat          atanf(float x);\nlong double    atanl(long double x);\n\nfloating_point atan2 (arithmetic y, arithmetic x);\nfloat          atan2f(float y, float x);\nlong double    atan2l(long double y, long double x);\n\nfloating_point ceil (arithmetic x);\nfloat          ceilf(float x);\nlong double    ceill(long double x);\n\nfloating_point cos (arithmetic x);\nfloat          cosf(float x);\nlong double    cosl(long double x);\n\nfloating_point cosh (arithmetic x);\nfloat          coshf(float x);\nlong double    coshl(long double x);\n\nfloating_point exp (arithmetic x);\nfloat          expf(float x);\nlong double    expl(long double x);\n\nfloating_point fabs (arithmetic x);\nfloat          fabsf(float x);\nlong double    fabsl(long double x);\n\nfloating_point floor (arithmetic x);\nfloat          floorf(float x);\nlong double    floorl(long double x);\n\nfloating_point fmod (arithmetic x, arithmetic y);\nfloat          fmodf(float x, float y);\nlong double    fmodl(long double x, long double y);\n\nfloating_point frexp (arithmetic value, int* exp);\nfloat          frexpf(float value, int* exp);\nlong double    frexpl(long double value, int* exp);\n\nfloating_point ldexp (arithmetic value, int exp);\nfloat          ldexpf(float value, int exp);\nlong double    ldexpl(long double value, int exp);\n\nfloating_point log (arithmetic x);\nfloat          logf(float x);\nlong double    logl(long double x);\n\nfloating_point log10 (arithmetic x);\nfloat          log10f(float x);\nlong double    log10l(long double x);\n\nfloating_point modf (floating_point value, floating_point* iptr);\nfloat          modff(float value, float* iptr);\nlong double    modfl(long double value, long double* iptr);\n\nfloating_point pow (arithmetic x, arithmetic y);\nfloat          powf(float x, float y);\nlong double    powl(long double x, long double y);\n\nfloating_point sin (arithmetic x);\nfloat          sinf(float x);\nlong double    sinl(long double x);\n\nfloating_point sinh (arithmetic x);\nfloat          sinhf(float x);\nlong double    sinhl(long double x);\n\nfloating_point sqrt (arithmetic x);\nfloat          sqrtf(float x);\nlong double    sqrtl(long double x);\n\nfloating_point tan (arithmetic x);\nfloat          tanf(float x);\nlong double    tanl(long double x);\n\nfloating_point tanh (arithmetic x);\nfloat          tanhf(float x);\nlong double    tanhl(long double x);\n\n//  C99\n\nbool signbit(arithmetic x);\n\nint fpclassify(arithmetic x);\n\nbool isfinite(arithmetic x);\nbool isinf(arithmetic x);\nbool isnan(arithmetic x);\nbool isnormal(arithmetic x);\n\nbool isgreater(arithmetic x, arithmetic y);\nbool isgreaterequal(arithmetic x, arithmetic y);\nbool isless(arithmetic x, arithmetic y);\nbool islessequal(arithmetic x, arithmetic y);\nbool islessgreater(arithmetic x, arithmetic y);\nbool isunordered(arithmetic x, arithmetic y);\n\nfloating_point acosh (arithmetic x);\nfloat          acoshf(float x);\nlong double    acoshl(long double x);\n\nfloating_point asinh (arithmetic x);\nfloat          asinhf(float x);\nlong double    asinhl(long double x);\n\nfloating_point atanh (arithmetic x);\nfloat          atanhf(float x);\nlong double    atanhl(long double x);\n\nfloating_point cbrt (arithmetic x);\nfloat          cbrtf(float x);\nlong double    cbrtl(long double x);\n\nfloating_point copysign (arithmetic x, arithmetic y);\nfloat          copysignf(float x, float y);\nlong double    copysignl(long double x, long double y);\n\nfloating_point erf (arithmetic x);\nfloat          erff(float x);\nlong double    erfl(long double x);\n\nfloating_point erfc (arithmetic x);\nfloat          erfcf(float x);\nlong double    erfcl(long double x);\n\nfloating_point exp2 (arithmetic x);\nfloat          exp2f(float x);\nlong double    exp2l(long double x);\n\nfloating_point expm1 (arithmetic x);\nfloat          expm1f(float x);\nlong double    expm1l(long double x);\n\nfloating_point fdim (arithmetic x, arithmetic y);\nfloat          fdimf(float x, float y);\nlong double    fdiml(long double x, long double y);\n\nfloating_point fma (arithmetic x, arithmetic y, arithmetic z);\nfloat          fmaf(float x, float y, float z);\nlong double    fmal(long double x, long double y, long double z);\n\nfloating_point fmax (arithmetic x, arithmetic y);\nfloat          fmaxf(float x, float y);\nlong double    fmaxl(long double x, long double y);\n\nfloating_point fmin (arithmetic x, arithmetic y);\nfloat          fminf(float x, float y);\nlong double    fminl(long double x, long double y);\n\nfloating_point hypot (arithmetic x, arithmetic y);\nfloat          hypotf(float x, float y);\nlong double    hypotl(long double x, long double y);\n\ndouble       hypot(double x, double y, double z);                // C++17\nfloat        hypot(float x, float y, float z);                   // C++17\nlong double  hypot(long double x, long double y, long double z); // C++17\n\nint ilogb (arithmetic x);\nint ilogbf(float x);\nint ilogbl(long double x);\n\nfloating_point lgamma (arithmetic x);\nfloat          lgammaf(float x);\nlong double    lgammal(long double x);\n\nlong long llrint (arithmetic x);\nlong long llrintf(float x);\nlong long llrintl(long double x);\n\nlong long llround (arithmetic x);\nlong long llroundf(float x);\nlong long llroundl(long double x);\n\nfloating_point log1p (arithmetic x);\nfloat          log1pf(float x);\nlong double    log1pl(long double x);\n\nfloating_point log2 (arithmetic x);\nfloat          log2f(float x);\nlong double    log2l(long double x);\n\nfloating_point logb (arithmetic x);\nfloat          logbf(float x);\nlong double    logbl(long double x);\n\nlong lrint (arithmetic x);\nlong lrintf(float x);\nlong lrintl(long double x);\n\nlong lround (arithmetic x);\nlong lroundf(float x);\nlong lroundl(long double x);\n\ndouble      nan (const char* str);\nfloat       nanf(const char* str);\nlong double nanl(const char* str);\n\nfloating_point nearbyint (arithmetic x);\nfloat          nearbyintf(float x);\nlong double    nearbyintl(long double x);\n\nfloating_point nextafter (arithmetic x, arithmetic y);\nfloat          nextafterf(float x, float y);\nlong double    nextafterl(long double x, long double y);\n\nfloating_point nexttoward (arithmetic x, long double y);\nfloat          nexttowardf(float x, long double y);\nlong double    nexttowardl(long double x, long double y);\n\nfloating_point remainder (arithmetic x, arithmetic y);\nfloat          remainderf(float x, float y);\nlong double    remainderl(long double x, long double y);\n\nfloating_point remquo (arithmetic x, arithmetic y, int* pquo);\nfloat          remquof(float x, float y, int* pquo);\nlong double    remquol(long double x, long double y, int* pquo);\n\nfloating_point rint (arithmetic x);\nfloat          rintf(float x);\nlong double    rintl(long double x);\n\nfloating_point round (arithmetic x);\nfloat          roundf(float x);\nlong double    roundl(long double x);\n\nfloating_point scalbln (arithmetic x, long ex);\nfloat          scalblnf(float x, long ex);\nlong double    scalblnl(long double x, long ex);\n\nfloating_point scalbn (arithmetic x, int ex);\nfloat          scalbnf(float x, int ex);\nlong double    scalbnl(long double x, int ex);\n\nfloating_point tgamma (arithmetic x);\nfloat          tgammaf(float x);\nlong double    tgammal(long double x);\n\nfloating_point trunc (arithmetic x);\nfloat          truncf(float x);\nlong double    truncl(long double x);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <math.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::signbit;\nusing ::fpclassify;\nusing ::isfinite;\nusing ::isinf;\nusing ::isnan;\nusing ::isnormal;\nusing ::isgreater;\nusing ::isgreaterequal;\nusing ::isless;\nusing ::islessequal;\nusing ::islessgreater;\nusing ::isunordered;\nusing ::isunordered;\n\nusing ::float_t;\nusing ::double_t;\n\n#ifndef _AIX\nusing ::abs;\n#endif\n\nusing ::acos;\nusing ::acosf;\nusing ::asin;\nusing ::asinf;\nusing ::atan;\nusing ::atanf;\nusing ::atan2;\nusing ::atan2f;\nusing ::ceil;\nusing ::ceilf;\nusing ::cos;\nusing ::cosf;\nusing ::cosh;\nusing ::coshf;\n\nusing ::exp;\nusing ::expf;\n\nusing ::fabs;\nusing ::fabsf;\nusing ::floor;\nusing ::floorf;\n\nusing ::fmod;\nusing ::fmodf;\n\nusing ::frexp;\nusing ::frexpf;\nusing ::ldexp;\nusing ::ldexpf;\n\nusing ::log;\nusing ::logf;\n\nusing ::log10;\nusing ::log10f;\nusing ::modf;\nusing ::modff;\n\nusing ::pow;\nusing ::powf;\n\nusing ::sin;\nusing ::sinf;\nusing ::sinh;\nusing ::sinhf;\n\nusing ::sqrt;\nusing ::sqrtf;\nusing ::tan;\nusing ::tanf;\n\nusing ::tanh;\nusing ::tanhf;\n\nusing ::acosh;\nusing ::acoshf;\nusing ::asinh;\nusing ::asinhf;\nusing ::atanh;\nusing ::atanhf;\nusing ::cbrt;\nusing ::cbrtf;\n\nusing ::copysign;\nusing ::copysignf;\n\nusing ::erf;\nusing ::erff;\nusing ::erfc;\nusing ::erfcf;\nusing ::exp2;\nusing ::exp2f;\nusing ::expm1;\nusing ::expm1f;\nusing ::fdim;\nusing ::fdimf;\nusing ::fmaf;\nusing ::fma;\nusing ::fmax;\nusing ::fmaxf;\nusing ::fmin;\nusing ::fminf;\nusing ::hypot;\nusing ::hypotf;\nusing ::ilogb;\nusing ::ilogbf;\nusing ::lgamma;\nusing ::lgammaf;\nusing ::llrint;\nusing ::llrintf;\nusing ::llround;\nusing ::llroundf;\nusing ::log1p;\nusing ::log1pf;\nusing ::log2;\nusing ::log2f;\nusing ::logb;\nusing ::logbf;\nusing ::lrint;\nusing ::lrintf;\nusing ::lround;\nusing ::lroundf;\n\nusing ::nan;\nusing ::nanf;\n\nusing ::nearbyint;\nusing ::nearbyintf;\nusing ::nextafter;\nusing ::nextafterf;\nusing ::nexttoward;\nusing ::nexttowardf;\nusing ::remainder;\nusing ::remainderf;\nusing ::remquo;\nusing ::remquof;\nusing ::rint;\nusing ::rintf;\nusing ::round;\nusing ::roundf;\nusing ::scalbln;\nusing ::scalblnf;\nusing ::scalbn;\nusing ::scalbnf;\nusing ::tgamma;\nusing ::tgammaf;\nusing ::trunc;\nusing ::truncf;\n\nusing ::acosl;\nusing ::asinl;\nusing ::atanl;\nusing ::atan2l;\nusing ::ceill;\nusing ::cosl;\nusing ::coshl;\nusing ::expl;\nusing ::fabsl;\nusing ::floorl;\nusing ::fmodl;\nusing ::frexpl;\nusing ::ldexpl;\nusing ::logl;\nusing ::log10l;\nusing ::modfl;\nusing ::powl;\nusing ::sinl;\nusing ::sinhl;\nusing ::sqrtl;\nusing ::tanl;\n\nusing ::tanhl;\nusing ::acoshl;\nusing ::asinhl;\nusing ::atanhl;\nusing ::cbrtl;\n\nusing ::copysignl;\n\nusing ::erfl;\nusing ::erfcl;\nusing ::exp2l;\nusing ::expm1l;\nusing ::fdiml;\nusing ::fmal;\nusing ::fmaxl;\nusing ::fminl;\nusing ::hypotl;\nusing ::ilogbl;\nusing ::lgammal;\nusing ::llrintl;\nusing ::llroundl;\nusing ::log1pl;\nusing ::log2l;\nusing ::logbl;\nusing ::lrintl;\nusing ::lroundl;\nusing ::nanl;\nusing ::nearbyintl;\nusing ::nextafterl;\nusing ::nexttowardl;\nusing ::remainderl;\nusing ::remquol;\nusing ::rintl;\nusing ::roundl;\nusing ::scalblnl;\nusing ::scalbnl;\nusing ::tgammal;\nusing ::truncl;\n\n#if _LIBCPP_STD_VER > 14\ninline _LIBCPP_INLINE_VISIBILITY float       hypot(       float x,       float y,       float z ) { return sqrt(x*x + y*y + z*z); }\ninline _LIBCPP_INLINE_VISIBILITY double      hypot(      double x,      double y,      double z ) { return sqrt(x*x + y*y + z*z); }\ninline _LIBCPP_INLINE_VISIBILITY long double hypot( long double x, long double y, long double z ) { return sqrt(x*x + y*y + z*z); }\n\ntemplate <class _A1, class _A2, class _A3>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __lazy_enable_if\n<\n    is_arithmetic<_A1>::value &&\n    is_arithmetic<_A2>::value &&\n    is_arithmetic<_A3>::value,\n    __promote<_A1, _A2, _A3>\n>::type\nhypot(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) _NOEXCEPT\n{\n    typedef typename __promote<_A1, _A2, _A3>::type __result_type;\n    static_assert((!(is_same<_A1, __result_type>::value &&\n                     is_same<_A2, __result_type>::value &&\n                     is_same<_A3, __result_type>::value)), \"\");\n    return hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z);\n}\n#endif\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\n_LIBCPP_CONSTEXPR typename enable_if<is_floating_point<_A1>::value, bool>::type\n__libcpp_isnan_or_builtin(_A1 __lcpp_x) _NOEXCEPT\n{\n#if __has_builtin(__builtin_isnan)\n    return __builtin_isnan(__lcpp_x);\n#else\n    return isnan(__lcpp_x);\n#endif\n}\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\n_LIBCPP_CONSTEXPR typename enable_if<!is_floating_point<_A1>::value, bool>::type\n__libcpp_isnan_or_builtin(_A1 __lcpp_x) _NOEXCEPT\n{\n    return isnan(__lcpp_x);\n}\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\n_LIBCPP_CONSTEXPR typename enable_if<is_floating_point<_A1>::value, bool>::type\n__libcpp_isinf_or_builtin(_A1 __lcpp_x) _NOEXCEPT\n{\n#if __has_builtin(__builtin_isinf)\n    return __builtin_isinf(__lcpp_x);\n#else\n    return isinf(__lcpp_x);\n#endif\n}\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\n_LIBCPP_CONSTEXPR typename enable_if<!is_floating_point<_A1>::value, bool>::type\n__libcpp_isinf_or_builtin(_A1 __lcpp_x) _NOEXCEPT\n{\n    return isinf(__lcpp_x);\n}\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\n_LIBCPP_CONSTEXPR typename enable_if<is_floating_point<_A1>::value, bool>::type\n__libcpp_isfinite_or_builtin(_A1 __lcpp_x) _NOEXCEPT\n{\n#if __has_builtin(__builtin_isfinite)\n    return __builtin_isfinite(__lcpp_x);\n#else\n    return isfinite(__lcpp_x);\n#endif\n}\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\n_LIBCPP_CONSTEXPR typename enable_if<!is_floating_point<_A1>::value, bool>::type\n__libcpp_isfinite_or_builtin(_A1 __lcpp_x) _NOEXCEPT\n{\n    return isfinite(__lcpp_x);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CMATH\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/codecvt",
    "content": "// -*- C++ -*-\n//===-------------------------- codecvt -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CODECVT\n#define _LIBCPP_CODECVT\n\n/*\n    codecvt synopsis\n\nnamespace std\n{\n\nenum codecvt_mode\n{\n    consume_header = 4,\n    generate_header = 2,\n    little_endian = 1\n};\n\ntemplate <class Elem, unsigned long Maxcode = 0x10ffff,\n          codecvt_mode Mode = (codecvt_mode)0>\nclass codecvt_utf8\n    : public codecvt<Elem, char, mbstate_t>\n{\n    explicit codecvt_utf8(size_t refs = 0);\n    ~codecvt_utf8();\n};\n\ntemplate <class Elem, unsigned long Maxcode = 0x10ffff,\n          codecvt_mode Mode = (codecvt_mode)0>\nclass codecvt_utf16\n    : public codecvt<Elem, char, mbstate_t>\n{\n    explicit codecvt_utf16(size_t refs = 0);\n    ~codecvt_utf16();\n};\n\ntemplate <class Elem, unsigned long Maxcode = 0x10ffff,\n          codecvt_mode Mode = (codecvt_mode)0>\nclass codecvt_utf8_utf16\n    : public codecvt<Elem, char, mbstate_t>\n{\n    explicit codecvt_utf8_utf16(size_t refs = 0);\n    ~codecvt_utf8_utf16();\n};\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__locale>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nenum codecvt_mode\n{\n    consume_header = 4,\n    generate_header = 2,\n    little_endian = 1\n};\n\n// codecvt_utf8\n\ntemplate <class _Elem> class __codecvt_utf8;\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf8<wchar_t>\n    : public codecvt<wchar_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef wchar_t   intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf8<char16_t>\n    : public codecvt<char16_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef char16_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<char16_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf8<char32_t>\n    : public codecvt<char32_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef char32_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf8(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<char32_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <class _Elem, unsigned long _Maxcode = 0x10ffff,\n          codecvt_mode _Mode = (codecvt_mode)0>\nclass _LIBCPP_TEMPLATE_VIS codecvt_utf8\n    : public __codecvt_utf8<_Elem>\n{\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt_utf8(size_t __refs = 0)\n        : __codecvt_utf8<_Elem>(__refs, _Maxcode, _Mode) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    ~codecvt_utf8() {}\n};\n\n// codecvt_utf16\n\ntemplate <class _Elem, bool _LittleEndian> class __codecvt_utf16;\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf16<wchar_t, false>\n    : public codecvt<wchar_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef wchar_t   intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf16<wchar_t, true>\n    : public codecvt<wchar_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef wchar_t   intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf16<char16_t, false>\n    : public codecvt<char16_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef char16_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<char16_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf16<char16_t, true>\n    : public codecvt<char16_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef char16_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<char16_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf16<char32_t, false>\n    : public codecvt<char32_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef char32_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<char32_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf16<char32_t, true>\n    : public codecvt<char32_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef char32_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<char32_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <class _Elem, unsigned long _Maxcode = 0x10ffff,\n          codecvt_mode _Mode = (codecvt_mode)0>\nclass _LIBCPP_TEMPLATE_VIS codecvt_utf16\n    : public __codecvt_utf16<_Elem, _Mode & little_endian>\n{\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt_utf16(size_t __refs = 0)\n        : __codecvt_utf16<_Elem, _Mode & little_endian>(__refs, _Maxcode, _Mode) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    ~codecvt_utf16() {}\n};\n\n// codecvt_utf8_utf16\n\ntemplate <class _Elem> class __codecvt_utf8_utf16;\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf8_utf16<wchar_t>\n    : public codecvt<wchar_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef wchar_t   intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<wchar_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf8_utf16<char32_t>\n    : public codecvt<char32_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef char32_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<char32_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS __codecvt_utf8_utf16<char16_t>\n    : public codecvt<char16_t, char, mbstate_t>\n{\n    unsigned long _Maxcode_;\n    codecvt_mode _Mode_;\npublic:\n    typedef char16_t  intern_type;\n    typedef char      extern_type;\n    typedef mbstate_t state_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit __codecvt_utf8_utf16(size_t __refs, unsigned long _Maxcode,\n                            codecvt_mode _Mode)\n        : codecvt<char16_t, char, mbstate_t>(__refs), _Maxcode_(_Maxcode),\n          _Mode_(_Mode) {}\nprotected:\n    virtual result\n        do_out(state_type& __st,\n               const intern_type* __frm, const intern_type* __frm_end, const intern_type*& __frm_nxt,\n               extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual result\n        do_in(state_type& __st,\n              const extern_type* __frm, const extern_type* __frm_end, const extern_type*& __frm_nxt,\n              intern_type* __to, intern_type* __to_end, intern_type*& __to_nxt) const;\n    virtual result\n        do_unshift(state_type& __st,\n                   extern_type* __to, extern_type* __to_end, extern_type*& __to_nxt) const;\n    virtual int do_encoding() const throw();\n    virtual bool do_always_noconv() const throw();\n    virtual int do_length(state_type&, const extern_type* __frm, const extern_type* __end,\n                          size_t __mx) const;\n    virtual int do_max_length() const throw();\n};\n\ntemplate <class _Elem, unsigned long _Maxcode = 0x10ffff,\n          codecvt_mode _Mode = (codecvt_mode)0>\nclass _LIBCPP_TEMPLATE_VIS codecvt_utf8_utf16\n    : public __codecvt_utf8_utf16<_Elem>\n{\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    explicit codecvt_utf8_utf16(size_t __refs = 0)\n        : __codecvt_utf8_utf16<_Elem>(__refs, _Maxcode, _Mode) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    ~codecvt_utf8_utf16() {}\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CODECVT\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/complex",
    "content": "// -*- C++ -*-\n//===--------------------------- complex ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_COMPLEX\n#define _LIBCPP_COMPLEX\n\n/*\n    complex synopsis\n\nnamespace std\n{\n\ntemplate<class T>\nclass complex\n{\npublic:\n    typedef T value_type;\n\n    complex(const T& re = T(), const T& im = T()); // constexpr in C++14\n    complex(const complex&);  // constexpr in C++14\n    template<class X> complex(const complex<X>&);  // constexpr in C++14\n\n    T real() const; // constexpr in C++14\n    T imag() const; // constexpr in C++14\n\n    void real(T);\n    void imag(T);\n\n    complex<T>& operator= (const T&);\n    complex<T>& operator+=(const T&);\n    complex<T>& operator-=(const T&);\n    complex<T>& operator*=(const T&);\n    complex<T>& operator/=(const T&);\n\n    complex& operator=(const complex&);\n    template<class X> complex<T>& operator= (const complex<X>&);\n    template<class X> complex<T>& operator+=(const complex<X>&);\n    template<class X> complex<T>& operator-=(const complex<X>&);\n    template<class X> complex<T>& operator*=(const complex<X>&);\n    template<class X> complex<T>& operator/=(const complex<X>&);\n};\n\ntemplate<>\nclass complex<float>\n{\npublic:\n    typedef float value_type;\n\n    constexpr complex(float re = 0.0f, float im = 0.0f);\n    explicit constexpr complex(const complex<double>&);\n    explicit constexpr complex(const complex<long double>&);\n\n    constexpr float real() const;\n    void real(float);\n    constexpr float imag() const;\n    void imag(float);\n\n    complex<float>& operator= (float);\n    complex<float>& operator+=(float);\n    complex<float>& operator-=(float);\n    complex<float>& operator*=(float);\n    complex<float>& operator/=(float);\n\n    complex<float>& operator=(const complex<float>&);\n    template<class X> complex<float>& operator= (const complex<X>&);\n    template<class X> complex<float>& operator+=(const complex<X>&);\n    template<class X> complex<float>& operator-=(const complex<X>&);\n    template<class X> complex<float>& operator*=(const complex<X>&);\n    template<class X> complex<float>& operator/=(const complex<X>&);\n};\n\ntemplate<>\nclass complex<double>\n{\npublic:\n    typedef double value_type;\n\n    constexpr complex(double re = 0.0, double im = 0.0);\n    constexpr complex(const complex<float>&);\n    explicit constexpr complex(const complex<long double>&);\n\n    constexpr double real() const;\n    void real(double);\n    constexpr double imag() const;\n    void imag(double);\n\n    complex<double>& operator= (double);\n    complex<double>& operator+=(double);\n    complex<double>& operator-=(double);\n    complex<double>& operator*=(double);\n    complex<double>& operator/=(double);\n    complex<double>& operator=(const complex<double>&);\n\n    template<class X> complex<double>& operator= (const complex<X>&);\n    template<class X> complex<double>& operator+=(const complex<X>&);\n    template<class X> complex<double>& operator-=(const complex<X>&);\n    template<class X> complex<double>& operator*=(const complex<X>&);\n    template<class X> complex<double>& operator/=(const complex<X>&);\n};\n\ntemplate<>\nclass complex<long double>\n{\npublic:\n    typedef long double value_type;\n\n    constexpr complex(long double re = 0.0L, long double im = 0.0L);\n    constexpr complex(const complex<float>&);\n    constexpr complex(const complex<double>&);\n\n    constexpr long double real() const;\n    void real(long double);\n    constexpr long double imag() const;\n    void imag(long double);\n\n    complex<long double>& operator=(const complex<long double>&);\n    complex<long double>& operator= (long double);\n    complex<long double>& operator+=(long double);\n    complex<long double>& operator-=(long double);\n    complex<long double>& operator*=(long double);\n    complex<long double>& operator/=(long double);\n\n    template<class X> complex<long double>& operator= (const complex<X>&);\n    template<class X> complex<long double>& operator+=(const complex<X>&);\n    template<class X> complex<long double>& operator-=(const complex<X>&);\n    template<class X> complex<long double>& operator*=(const complex<X>&);\n    template<class X> complex<long double>& operator/=(const complex<X>&);\n};\n\n// 26.3.6 operators:\ntemplate<class T> complex<T> operator+(const complex<T>&, const complex<T>&);\ntemplate<class T> complex<T> operator+(const complex<T>&, const T&);\ntemplate<class T> complex<T> operator+(const T&, const complex<T>&);\ntemplate<class T> complex<T> operator-(const complex<T>&, const complex<T>&);\ntemplate<class T> complex<T> operator-(const complex<T>&, const T&);\ntemplate<class T> complex<T> operator-(const T&, const complex<T>&);\ntemplate<class T> complex<T> operator*(const complex<T>&, const complex<T>&);\ntemplate<class T> complex<T> operator*(const complex<T>&, const T&);\ntemplate<class T> complex<T> operator*(const T&, const complex<T>&);\ntemplate<class T> complex<T> operator/(const complex<T>&, const complex<T>&);\ntemplate<class T> complex<T> operator/(const complex<T>&, const T&);\ntemplate<class T> complex<T> operator/(const T&, const complex<T>&);\ntemplate<class T> complex<T> operator+(const complex<T>&);\ntemplate<class T> complex<T> operator-(const complex<T>&);\ntemplate<class T> bool operator==(const complex<T>&, const complex<T>&); // constexpr in C++14\ntemplate<class T> bool operator==(const complex<T>&, const T&); // constexpr in C++14\ntemplate<class T> bool operator==(const T&, const complex<T>&); // constexpr in C++14\ntemplate<class T> bool operator!=(const complex<T>&, const complex<T>&); // constexpr in C++14\ntemplate<class T> bool operator!=(const complex<T>&, const T&); // constexpr in C++14\ntemplate<class T> bool operator!=(const T&, const complex<T>&); // constexpr in C++14\n\ntemplate<class T, class charT, class traits>\n  basic_istream<charT, traits>&\n  operator>>(basic_istream<charT, traits>&, complex<T>&);\ntemplate<class T, class charT, class traits>\n  basic_ostream<charT, traits>&\n  operator<<(basic_ostream<charT, traits>&, const complex<T>&);\n\n// 26.3.7 values:\n\ntemplate<class T>              T real(const complex<T>&); // constexpr in C++14\n                     long double real(long double);       // constexpr in C++14\n                          double real(double);            // constexpr in C++14\ntemplate<Integral T>      double real(T);                 // constexpr in C++14\n                          float  real(float);             // constexpr in C++14\n\ntemplate<class T>              T imag(const complex<T>&); // constexpr in C++14\n                     long double imag(long double);       // constexpr in C++14\n                          double imag(double);            // constexpr in C++14\ntemplate<Integral T>      double imag(T);                 // constexpr in C++14\n                          float  imag(float);             // constexpr in C++14\n\ntemplate<class T> T abs(const complex<T>&);\n\ntemplate<class T>              T arg(const complex<T>&);\n                     long double arg(long double);\n                          double arg(double);\ntemplate<Integral T>      double arg(T);\n                          float  arg(float);\n\ntemplate<class T>              T norm(const complex<T>&);\n                     long double norm(long double);\n                          double norm(double);\ntemplate<Integral T>      double norm(T);\n                          float  norm(float);\n\ntemplate<class T>      complex<T>           conj(const complex<T>&);\n                       complex<long double> conj(long double);\n                       complex<double>      conj(double);\ntemplate<Integral T>   complex<double>      conj(T);\n                       complex<float>       conj(float);\n\ntemplate<class T>    complex<T>           proj(const complex<T>&);\n                     complex<long double> proj(long double);\n                     complex<double>      proj(double);\ntemplate<Integral T> complex<double>      proj(T);\n                     complex<float>       proj(float);\n\ntemplate<class T> complex<T> polar(const T&, const T& = 0);\n\n// 26.3.8 transcendentals:\ntemplate<class T> complex<T> acos(const complex<T>&);\ntemplate<class T> complex<T> asin(const complex<T>&);\ntemplate<class T> complex<T> atan(const complex<T>&);\ntemplate<class T> complex<T> acosh(const complex<T>&);\ntemplate<class T> complex<T> asinh(const complex<T>&);\ntemplate<class T> complex<T> atanh(const complex<T>&);\ntemplate<class T> complex<T> cos (const complex<T>&);\ntemplate<class T> complex<T> cosh (const complex<T>&);\ntemplate<class T> complex<T> exp (const complex<T>&);\ntemplate<class T> complex<T> log (const complex<T>&);\ntemplate<class T> complex<T> log10(const complex<T>&);\n\ntemplate<class T> complex<T> pow(const complex<T>&, const T&);\ntemplate<class T> complex<T> pow(const complex<T>&, const complex<T>&);\ntemplate<class T> complex<T> pow(const T&, const complex<T>&);\n\ntemplate<class T> complex<T> sin (const complex<T>&);\ntemplate<class T> complex<T> sinh (const complex<T>&);\ntemplate<class T> complex<T> sqrt (const complex<T>&);\ntemplate<class T> complex<T> tan (const complex<T>&);\ntemplate<class T> complex<T> tanh (const complex<T>&);\n\ntemplate<class T, class charT, class traits>\n  basic_istream<charT, traits>&\n  operator>>(basic_istream<charT, traits>& is, complex<T>& x);\n\ntemplate<class T, class charT, class traits>\n  basic_ostream<charT, traits>&\n  operator<<(basic_ostream<charT, traits>& o, const complex<T>& x);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <type_traits>\n#include <stdexcept>\n#include <cmath>\n#include <sstream>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate<class _Tp> class _LIBCPP_TEMPLATE_VIS complex;\n\ntemplate<class _Tp> complex<_Tp> operator*(const complex<_Tp>& __z, const complex<_Tp>& __w);\ntemplate<class _Tp> complex<_Tp> operator/(const complex<_Tp>& __x, const complex<_Tp>& __y);\n\ntemplate<class _Tp>\nclass _LIBCPP_TEMPLATE_VIS complex\n{\npublic:\n    typedef _Tp value_type;\nprivate:\n    value_type __re_;\n    value_type __im_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    complex(const value_type& __re = value_type(), const value_type& __im = value_type())\n        : __re_(__re), __im_(__im) {}\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    complex(const complex<_Xp>& __c)\n        : __re_(__c.real()), __im_(__c.imag()) {}\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 value_type real() const {return __re_;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 value_type imag() const {return __im_;}\n\n    _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;}\n    _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;}\n\n    _LIBCPP_INLINE_VISIBILITY complex& operator= (const value_type& __re)\n        {__re_ = __re; __im_ = value_type(); return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator+=(const value_type& __re) {__re_ += __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator-=(const value_type& __re) {__re_ -= __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator*=(const value_type& __re) {__re_ *= __re; __im_ *= __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator/=(const value_type& __re) {__re_ /= __re; __im_ /= __re; return *this;}\n\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c)\n        {\n            __re_ = __c.real();\n            __im_ = __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c)\n        {\n            __re_ += __c.real();\n            __im_ += __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c)\n        {\n            __re_ -= __c.real();\n            __im_ -= __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c)\n        {\n            *this = *this * complex(__c.real(), __c.imag());\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c)\n        {\n            *this = *this / complex(__c.real(), __c.imag());\n            return *this;\n        }\n};\n\ntemplate<> class _LIBCPP_TEMPLATE_VIS complex<double>;\ntemplate<> class _LIBCPP_TEMPLATE_VIS complex<long double>;\n\ntemplate<>\nclass _LIBCPP_TEMPLATE_VIS complex<float>\n{\n    float __re_;\n    float __im_;\npublic:\n    typedef float value_type;\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(float __re = 0.0f, float __im = 0.0f)\n        : __re_(__re), __im_(__im) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit _LIBCPP_CONSTEXPR complex(const complex<double>& __c);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit _LIBCPP_CONSTEXPR complex(const complex<long double>& __c);\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR float real() const {return __re_;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR float imag() const {return __im_;}\n\n    _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;}\n    _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;}\n\n    _LIBCPP_INLINE_VISIBILITY complex& operator= (float __re)\n        {__re_ = __re; __im_ = value_type(); return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator+=(float __re) {__re_ += __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator-=(float __re) {__re_ -= __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator*=(float __re) {__re_ *= __re; __im_ *= __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator/=(float __re) {__re_ /= __re; __im_ /= __re; return *this;}\n\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c)\n        {\n            __re_ = __c.real();\n            __im_ = __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c)\n        {\n            __re_ += __c.real();\n            __im_ += __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c)\n        {\n            __re_ -= __c.real();\n            __im_ -= __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c)\n        {\n            *this = *this * complex(__c.real(), __c.imag());\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c)\n        {\n            *this = *this / complex(__c.real(), __c.imag());\n            return *this;\n        }\n};\n\ntemplate<>\nclass _LIBCPP_TEMPLATE_VIS complex<double>\n{\n    double __re_;\n    double __im_;\npublic:\n    typedef double value_type;\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(double __re = 0.0, double __im = 0.0)\n        : __re_(__re), __im_(__im) {}\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR complex(const complex<float>& __c);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit _LIBCPP_CONSTEXPR complex(const complex<long double>& __c);\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR double real() const {return __re_;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR double imag() const {return __im_;}\n\n    _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;}\n    _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;}\n\n    _LIBCPP_INLINE_VISIBILITY complex& operator= (double __re)\n        {__re_ = __re; __im_ = value_type(); return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator+=(double __re) {__re_ += __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator-=(double __re) {__re_ -= __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator*=(double __re) {__re_ *= __re; __im_ *= __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator/=(double __re) {__re_ /= __re; __im_ /= __re; return *this;}\n\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c)\n        {\n            __re_ = __c.real();\n            __im_ = __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c)\n        {\n            __re_ += __c.real();\n            __im_ += __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c)\n        {\n            __re_ -= __c.real();\n            __im_ -= __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c)\n        {\n            *this = *this * complex(__c.real(), __c.imag());\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c)\n        {\n            *this = *this / complex(__c.real(), __c.imag());\n            return *this;\n        }\n};\n\ntemplate<>\nclass _LIBCPP_TEMPLATE_VIS complex<long double>\n{\n    long double __re_;\n    long double __im_;\npublic:\n    typedef long double value_type;\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR complex(long double __re = 0.0L, long double __im = 0.0L)\n        : __re_(__re), __im_(__im) {}\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR complex(const complex<float>& __c);\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR complex(const complex<double>& __c);\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR long double real() const {return __re_;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR long double imag() const {return __im_;}\n\n    _LIBCPP_INLINE_VISIBILITY void real(value_type __re) {__re_ = __re;}\n    _LIBCPP_INLINE_VISIBILITY void imag(value_type __im) {__im_ = __im;}\n\n    _LIBCPP_INLINE_VISIBILITY complex& operator= (long double __re)\n        {__re_ = __re; __im_ = value_type(); return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator+=(long double __re) {__re_ += __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator-=(long double __re) {__re_ -= __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator*=(long double __re) {__re_ *= __re; __im_ *= __re; return *this;}\n    _LIBCPP_INLINE_VISIBILITY complex& operator/=(long double __re) {__re_ /= __re; __im_ /= __re; return *this;}\n\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator= (const complex<_Xp>& __c)\n        {\n            __re_ = __c.real();\n            __im_ = __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator+=(const complex<_Xp>& __c)\n        {\n            __re_ += __c.real();\n            __im_ += __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator-=(const complex<_Xp>& __c)\n        {\n            __re_ -= __c.real();\n            __im_ -= __c.imag();\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator*=(const complex<_Xp>& __c)\n        {\n            *this = *this * complex(__c.real(), __c.imag());\n            return *this;\n        }\n    template<class _Xp> _LIBCPP_INLINE_VISIBILITY complex& operator/=(const complex<_Xp>& __c)\n        {\n            *this = *this / complex(__c.real(), __c.imag());\n            return *this;\n        }\n};\n\ninline\n_LIBCPP_CONSTEXPR\ncomplex<float>::complex(const complex<double>& __c)\n    : __re_(__c.real()), __im_(__c.imag()) {}\n\ninline\n_LIBCPP_CONSTEXPR\ncomplex<float>::complex(const complex<long double>& __c)\n    : __re_(__c.real()), __im_(__c.imag()) {}\n\ninline\n_LIBCPP_CONSTEXPR\ncomplex<double>::complex(const complex<float>& __c)\n    : __re_(__c.real()), __im_(__c.imag()) {}\n\ninline\n_LIBCPP_CONSTEXPR\ncomplex<double>::complex(const complex<long double>& __c)\n    : __re_(__c.real()), __im_(__c.imag()) {}\n\ninline\n_LIBCPP_CONSTEXPR\ncomplex<long double>::complex(const complex<float>& __c)\n    : __re_(__c.real()), __im_(__c.imag()) {}\n\ninline\n_LIBCPP_CONSTEXPR\ncomplex<long double>::complex(const complex<double>& __c)\n    : __re_(__c.real()), __im_(__c.imag()) {}\n\n// 26.3.6 operators:\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator+(const complex<_Tp>& __x, const complex<_Tp>& __y)\n{\n    complex<_Tp> __t(__x);\n    __t += __y;\n    return __t;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator+(const complex<_Tp>& __x, const _Tp& __y)\n{\n    complex<_Tp> __t(__x);\n    __t += __y;\n    return __t;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator+(const _Tp& __x, const complex<_Tp>& __y)\n{\n    complex<_Tp> __t(__y);\n    __t += __x;\n    return __t;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator-(const complex<_Tp>& __x, const complex<_Tp>& __y)\n{\n    complex<_Tp> __t(__x);\n    __t -= __y;\n    return __t;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator-(const complex<_Tp>& __x, const _Tp& __y)\n{\n    complex<_Tp> __t(__x);\n    __t -= __y;\n    return __t;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator-(const _Tp& __x, const complex<_Tp>& __y)\n{\n    complex<_Tp> __t(-__y);\n    __t += __x;\n    return __t;\n}\n\ntemplate<class _Tp>\ncomplex<_Tp>\noperator*(const complex<_Tp>& __z, const complex<_Tp>& __w)\n{\n    _Tp __a = __z.real();\n    _Tp __b = __z.imag();\n    _Tp __c = __w.real();\n    _Tp __d = __w.imag();\n    _Tp __ac = __a * __c;\n    _Tp __bd = __b * __d;\n    _Tp __ad = __a * __d;\n    _Tp __bc = __b * __c;\n    _Tp __x = __ac - __bd;\n    _Tp __y = __ad + __bc;\n    if (__libcpp_isnan_or_builtin(__x) && __libcpp_isnan_or_builtin(__y))\n    {\n        bool __recalc = false;\n        if (__libcpp_isinf_or_builtin(__a) || __libcpp_isinf_or_builtin(__b))\n        {\n            __a = copysign(__libcpp_isinf_or_builtin(__a) ? _Tp(1) : _Tp(0), __a);\n            __b = copysign(__libcpp_isinf_or_builtin(__b) ? _Tp(1) : _Tp(0), __b);\n            if (__libcpp_isnan_or_builtin(__c))\n                __c = copysign(_Tp(0), __c);\n            if (__libcpp_isnan_or_builtin(__d))\n                __d = copysign(_Tp(0), __d);\n            __recalc = true;\n        }\n        if (__libcpp_isinf_or_builtin(__c) || __libcpp_isinf_or_builtin(__d))\n        {\n            __c = copysign(__libcpp_isinf_or_builtin(__c) ? _Tp(1) : _Tp(0), __c);\n            __d = copysign(__libcpp_isinf_or_builtin(__d) ? _Tp(1) : _Tp(0), __d);\n            if (__libcpp_isnan_or_builtin(__a))\n                __a = copysign(_Tp(0), __a);\n            if (__libcpp_isnan_or_builtin(__b))\n                __b = copysign(_Tp(0), __b);\n            __recalc = true;\n        }\n        if (!__recalc && (__libcpp_isinf_or_builtin(__ac) || __libcpp_isinf_or_builtin(__bd) ||\n                          __libcpp_isinf_or_builtin(__ad) || __libcpp_isinf_or_builtin(__bc)))\n        {\n            if (__libcpp_isnan_or_builtin(__a))\n                __a = copysign(_Tp(0), __a);\n            if (__libcpp_isnan_or_builtin(__b))\n                __b = copysign(_Tp(0), __b);\n            if (__libcpp_isnan_or_builtin(__c))\n                __c = copysign(_Tp(0), __c);\n            if (__libcpp_isnan_or_builtin(__d))\n                __d = copysign(_Tp(0), __d);\n            __recalc = true;\n        }\n        if (__recalc)\n        {\n            __x = _Tp(INFINITY) * (__a * __c - __b * __d);\n            __y = _Tp(INFINITY) * (__a * __d + __b * __c);\n        }\n    }\n    return complex<_Tp>(__x, __y);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator*(const complex<_Tp>& __x, const _Tp& __y)\n{\n    complex<_Tp> __t(__x);\n    __t *= __y;\n    return __t;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator*(const _Tp& __x, const complex<_Tp>& __y)\n{\n    complex<_Tp> __t(__y);\n    __t *= __x;\n    return __t;\n}\n\ntemplate<class _Tp>\ncomplex<_Tp>\noperator/(const complex<_Tp>& __z, const complex<_Tp>& __w)\n{\n    int __ilogbw = 0;\n    _Tp __a = __z.real();\n    _Tp __b = __z.imag();\n    _Tp __c = __w.real();\n    _Tp __d = __w.imag();\n    _Tp __logbw = logb(fmax(fabs(__c), fabs(__d)));\n    if (__libcpp_isfinite_or_builtin(__logbw))\n    {\n        __ilogbw = static_cast<int>(__logbw);\n        __c = scalbn(__c, -__ilogbw);\n        __d = scalbn(__d, -__ilogbw);\n    }\n    _Tp __denom = __c * __c + __d * __d;\n    _Tp __x = scalbn((__a * __c + __b * __d) / __denom, -__ilogbw);\n    _Tp __y = scalbn((__b * __c - __a * __d) / __denom, -__ilogbw);\n    if (__libcpp_isnan_or_builtin(__x) && __libcpp_isnan_or_builtin(__y))\n    {\n        if ((__denom == _Tp(0)) && (!__libcpp_isnan_or_builtin(__a) || !__libcpp_isnan_or_builtin(__b)))\n        {\n            __x = copysign(_Tp(INFINITY), __c) * __a;\n            __y = copysign(_Tp(INFINITY), __c) * __b;\n        }\n        else if ((__libcpp_isinf_or_builtin(__a) || __libcpp_isinf_or_builtin(__b)) && __libcpp_isfinite_or_builtin(__c) && __libcpp_isfinite_or_builtin(__d))\n        {\n            __a = copysign(__libcpp_isinf_or_builtin(__a) ? _Tp(1) : _Tp(0), __a);\n            __b = copysign(__libcpp_isinf_or_builtin(__b) ? _Tp(1) : _Tp(0), __b);\n            __x = _Tp(INFINITY) * (__a * __c + __b * __d);\n            __y = _Tp(INFINITY) * (__b * __c - __a * __d);\n        }\n        else if (__libcpp_isinf_or_builtin(__logbw) && __logbw > _Tp(0) && __libcpp_isfinite_or_builtin(__a) && __libcpp_isfinite_or_builtin(__b))\n        {\n            __c = copysign(__libcpp_isinf_or_builtin(__c) ? _Tp(1) : _Tp(0), __c);\n            __d = copysign(__libcpp_isinf_or_builtin(__d) ? _Tp(1) : _Tp(0), __d);\n            __x = _Tp(0) * (__a * __c + __b * __d);\n            __y = _Tp(0) * (__b * __c - __a * __d);\n        }\n    }\n    return complex<_Tp>(__x, __y);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator/(const complex<_Tp>& __x, const _Tp& __y)\n{\n    return complex<_Tp>(__x.real() / __y, __x.imag() / __y);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator/(const _Tp& __x, const complex<_Tp>& __y)\n{\n    complex<_Tp> __t(__x);\n    __t /= __y;\n    return __t;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator+(const complex<_Tp>& __x)\n{\n    return __x;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\noperator-(const complex<_Tp>& __x)\n{\n    return complex<_Tp>(-__x.real(), -__x.imag());\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator==(const complex<_Tp>& __x, const complex<_Tp>& __y)\n{\n    return __x.real() == __y.real() && __x.imag() == __y.imag();\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator==(const complex<_Tp>& __x, const _Tp& __y)\n{\n    return __x.real() == __y && __x.imag() == 0;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator==(const _Tp& __x, const complex<_Tp>& __y)\n{\n    return __x == __y.real() && 0 == __y.imag();\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator!=(const complex<_Tp>& __x, const complex<_Tp>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator!=(const complex<_Tp>& __x, const _Tp& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator!=(const _Tp& __x, const complex<_Tp>& __y)\n{\n    return !(__x == __y);\n}\n\n// 26.3.7 values:\n\ntemplate <class _Tp, bool = is_integral<_Tp>::value,\n                     bool = is_floating_point<_Tp>::value\n                     >\nstruct __libcpp_complex_overload_traits {};\n\n// Integral Types\ntemplate <class _Tp>\nstruct __libcpp_complex_overload_traits<_Tp, true, false>\n{\n    typedef double _ValueType;\n    typedef complex<double> _ComplexType;\n};\n\n// Floating point types\ntemplate <class _Tp>\nstruct __libcpp_complex_overload_traits<_Tp, false, true>\n{\n    typedef _Tp _ValueType;\n    typedef complex<_Tp> _ComplexType;\n};\n\n// real\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp\nreal(const complex<_Tp>& __c)\n{\n    return __c.real();\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename __libcpp_complex_overload_traits<_Tp>::_ValueType\nreal(_Tp __re)\n{\n    return __re;\n}\n\n// imag\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp\nimag(const complex<_Tp>& __c)\n{\n    return __c.imag();\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename __libcpp_complex_overload_traits<_Tp>::_ValueType\nimag(_Tp)\n{\n    return 0;\n}\n\n// abs\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\nabs(const complex<_Tp>& __c)\n{\n    return hypot(__c.real(), __c.imag());\n}\n\n// arg\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\narg(const complex<_Tp>& __c)\n{\n    return atan2(__c.imag(), __c.real());\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if<\n    is_same<_Tp, long double>::value,\n    long double\n>::type\narg(_Tp __re)\n{\n    return atan2l(0.L, __re);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value || is_same<_Tp, double>::value,\n    double\n>::type\narg(_Tp __re)\n{\n    return atan2(0., __re);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if<\n    is_same<_Tp, float>::value,\n    float\n>::type\narg(_Tp __re)\n{\n    return atan2f(0.F, __re);\n}\n\n// norm\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\nnorm(const complex<_Tp>& __c)\n{\n    if (__libcpp_isinf_or_builtin(__c.real()))\n        return abs(__c.real());\n    if (__libcpp_isinf_or_builtin(__c.imag()))\n        return abs(__c.imag());\n    return __c.real() * __c.real() + __c.imag() * __c.imag();\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __libcpp_complex_overload_traits<_Tp>::_ValueType\nnorm(_Tp __re)\n{\n    typedef typename __libcpp_complex_overload_traits<_Tp>::_ValueType _ValueType;\n    return static_cast<_ValueType>(__re) * __re;\n}\n\n// conj\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\nconj(const complex<_Tp>& __c)\n{\n    return complex<_Tp>(__c.real(), -__c.imag());\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __libcpp_complex_overload_traits<_Tp>::_ComplexType\nconj(_Tp __re)\n{\n    typedef typename __libcpp_complex_overload_traits<_Tp>::_ComplexType _ComplexType;\n    return _ComplexType(__re);\n}\n\n\n\n// proj\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\nproj(const complex<_Tp>& __c)\n{\n    std::complex<_Tp> __r = __c;\n    if (__libcpp_isinf_or_builtin(__c.real()) || __libcpp_isinf_or_builtin(__c.imag()))\n        __r = complex<_Tp>(INFINITY, copysign(_Tp(0), __c.imag()));\n    return __r;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_floating_point<_Tp>::value,\n    typename __libcpp_complex_overload_traits<_Tp>::_ComplexType\n>::type\nproj(_Tp __re)\n{\n    if (__libcpp_isinf_or_builtin(__re))\n        __re = abs(__re);\n    return complex<_Tp>(__re);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_integral<_Tp>::value,\n    typename __libcpp_complex_overload_traits<_Tp>::_ComplexType\n>::type\nproj(_Tp __re)\n{\n    typedef typename __libcpp_complex_overload_traits<_Tp>::_ComplexType _ComplexType;\n    return _ComplexType(__re);\n}\n\n// polar\n\ntemplate<class _Tp>\ncomplex<_Tp>\npolar(const _Tp& __rho, const _Tp& __theta = _Tp(0))\n{\n    if (__libcpp_isnan_or_builtin(__rho) || signbit(__rho))\n        return complex<_Tp>(_Tp(NAN), _Tp(NAN));\n    if (__libcpp_isnan_or_builtin(__theta))\n    {\n        if (__libcpp_isinf_or_builtin(__rho))\n            return complex<_Tp>(__rho, __theta);\n        return complex<_Tp>(__theta, __theta);\n    }\n    if (__libcpp_isinf_or_builtin(__theta))\n    {\n        if (__libcpp_isinf_or_builtin(__rho))\n            return complex<_Tp>(__rho, _Tp(NAN));\n        return complex<_Tp>(_Tp(NAN), _Tp(NAN));\n    }\n    _Tp __x = __rho * cos(__theta);\n    if (__libcpp_isnan_or_builtin(__x))\n        __x = 0;\n    _Tp __y = __rho * sin(__theta);\n    if (__libcpp_isnan_or_builtin(__y))\n        __y = 0;\n    return complex<_Tp>(__x, __y);\n}\n\n// log\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\nlog(const complex<_Tp>& __x)\n{\n    return complex<_Tp>(log(abs(__x)), arg(__x));\n}\n\n// log10\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\nlog10(const complex<_Tp>& __x)\n{\n    return log(__x) / log(_Tp(10));\n}\n\n// sqrt\n\ntemplate<class _Tp>\ncomplex<_Tp>\nsqrt(const complex<_Tp>& __x)\n{\n    if (__libcpp_isinf_or_builtin(__x.imag()))\n        return complex<_Tp>(_Tp(INFINITY), __x.imag());\n    if (__libcpp_isinf_or_builtin(__x.real()))\n    {\n        if (__x.real() > _Tp(0))\n            return complex<_Tp>(__x.real(), __libcpp_isnan_or_builtin(__x.imag()) ? __x.imag() : copysign(_Tp(0), __x.imag()));\n        return complex<_Tp>(__libcpp_isnan_or_builtin(__x.imag()) ? __x.imag() : _Tp(0), copysign(__x.real(), __x.imag()));\n    }\n    return polar(sqrt(abs(__x)), arg(__x) / _Tp(2));\n}\n\n// exp\n\ntemplate<class _Tp>\ncomplex<_Tp>\nexp(const complex<_Tp>& __x)\n{\n    _Tp __i = __x.imag();\n    if (__libcpp_isinf_or_builtin(__x.real()))\n    {\n        if (__x.real() < _Tp(0))\n        {\n            if (!__libcpp_isfinite_or_builtin(__i))\n                __i = _Tp(1);\n        }\n        else if (__i == 0 || !__libcpp_isfinite_or_builtin(__i))\n        {\n            if (__libcpp_isinf_or_builtin(__i))\n                __i = _Tp(NAN);\n            return complex<_Tp>(__x.real(), __i);\n        }\n    }\n    else if (__libcpp_isnan_or_builtin(__x.real()) && __x.imag() == 0)\n        return __x;\n    _Tp __e = exp(__x.real());\n    return complex<_Tp>(__e * cos(__i), __e * sin(__i));\n}\n\n// pow\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\npow(const complex<_Tp>& __x, const complex<_Tp>& __y)\n{\n    return exp(__y * log(__x));\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<typename __promote<_Tp, _Up>::type>\npow(const complex<_Tp>& __x, const complex<_Up>& __y)\n{\n    typedef complex<typename __promote<_Tp, _Up>::type> result_type;\n    return _VSTD::pow(result_type(__x), result_type(__y));\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_arithmetic<_Up>::value,\n    complex<typename __promote<_Tp, _Up>::type>\n>::type\npow(const complex<_Tp>& __x, const _Up& __y)\n{\n    typedef complex<typename __promote<_Tp, _Up>::type> result_type;\n    return _VSTD::pow(result_type(__x), result_type(__y));\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_arithmetic<_Tp>::value,\n    complex<typename __promote<_Tp, _Up>::type>\n>::type\npow(const _Tp& __x, const complex<_Up>& __y)\n{\n    typedef complex<typename __promote<_Tp, _Up>::type> result_type;\n    return _VSTD::pow(result_type(__x), result_type(__y));\n}\n\n// asinh\n\ntemplate<class _Tp>\ncomplex<_Tp>\nasinh(const complex<_Tp>& __x)\n{\n    const _Tp __pi(atan2(+0., -0.));\n    if (__libcpp_isinf_or_builtin(__x.real()))\n    {\n        if (__libcpp_isnan_or_builtin(__x.imag()))\n            return __x;\n        if (__libcpp_isinf_or_builtin(__x.imag()))\n            return complex<_Tp>(__x.real(), copysign(__pi * _Tp(0.25), __x.imag()));\n        return complex<_Tp>(__x.real(), copysign(_Tp(0), __x.imag()));\n    }\n    if (__libcpp_isnan_or_builtin(__x.real()))\n    {\n        if (__libcpp_isinf_or_builtin(__x.imag()))\n            return complex<_Tp>(__x.imag(), __x.real());\n        if (__x.imag() == 0)\n            return __x;\n        return complex<_Tp>(__x.real(), __x.real());\n    }\n    if (__libcpp_isinf_or_builtin(__x.imag()))\n        return complex<_Tp>(copysign(__x.imag(), __x.real()), copysign(__pi/_Tp(2), __x.imag()));\n    complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) + _Tp(1)));\n    return complex<_Tp>(copysign(__z.real(), __x.real()), copysign(__z.imag(), __x.imag()));\n}\n\n// acosh\n\ntemplate<class _Tp>\ncomplex<_Tp>\nacosh(const complex<_Tp>& __x)\n{\n    const _Tp __pi(atan2(+0., -0.));\n    if (__libcpp_isinf_or_builtin(__x.real()))\n    {\n        if (__libcpp_isnan_or_builtin(__x.imag()))\n            return complex<_Tp>(abs(__x.real()), __x.imag());\n        if (__libcpp_isinf_or_builtin(__x.imag()))\n        {\n            if (__x.real() > 0)\n                return complex<_Tp>(__x.real(), copysign(__pi * _Tp(0.25), __x.imag()));\n            else\n                return complex<_Tp>(-__x.real(), copysign(__pi * _Tp(0.75), __x.imag()));\n        }\n        if (__x.real() < 0)\n            return complex<_Tp>(-__x.real(), copysign(__pi, __x.imag()));\n        return complex<_Tp>(__x.real(), copysign(_Tp(0), __x.imag()));\n    }\n    if (__libcpp_isnan_or_builtin(__x.real()))\n    {\n        if (__libcpp_isinf_or_builtin(__x.imag()))\n            return complex<_Tp>(abs(__x.imag()), __x.real());\n        return complex<_Tp>(__x.real(), __x.real());\n    }\n    if (__libcpp_isinf_or_builtin(__x.imag()))\n        return complex<_Tp>(abs(__x.imag()), copysign(__pi/_Tp(2), __x.imag()));\n    complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) - _Tp(1)));\n    return complex<_Tp>(copysign(__z.real(), _Tp(0)), copysign(__z.imag(), __x.imag()));\n}\n\n// atanh\n\ntemplate<class _Tp>\ncomplex<_Tp>\natanh(const complex<_Tp>& __x)\n{\n    const _Tp __pi(atan2(+0., -0.));\n    if (__libcpp_isinf_or_builtin(__x.imag()))\n    {\n        return complex<_Tp>(copysign(_Tp(0), __x.real()), copysign(__pi/_Tp(2), __x.imag()));\n    }\n    if (__libcpp_isnan_or_builtin(__x.imag()))\n    {\n        if (__libcpp_isinf_or_builtin(__x.real()) || __x.real() == 0)\n            return complex<_Tp>(copysign(_Tp(0), __x.real()), __x.imag());\n        return complex<_Tp>(__x.imag(), __x.imag());\n    }\n    if (__libcpp_isnan_or_builtin(__x.real()))\n    {\n        return complex<_Tp>(__x.real(), __x.real());\n    }\n    if (__libcpp_isinf_or_builtin(__x.real()))\n    {\n        return complex<_Tp>(copysign(_Tp(0), __x.real()), copysign(__pi/_Tp(2), __x.imag()));\n    }\n    if (abs(__x.real()) == _Tp(1) && __x.imag() == _Tp(0))\n    {\n        return complex<_Tp>(copysign(_Tp(INFINITY), __x.real()), copysign(_Tp(0), __x.imag()));\n    }\n    complex<_Tp> __z = log((_Tp(1) + __x) / (_Tp(1) - __x)) / _Tp(2);\n    return complex<_Tp>(copysign(__z.real(), __x.real()), copysign(__z.imag(), __x.imag()));\n}\n\n// sinh\n\ntemplate<class _Tp>\ncomplex<_Tp>\nsinh(const complex<_Tp>& __x)\n{\n    if (__libcpp_isinf_or_builtin(__x.real()) && !__libcpp_isfinite_or_builtin(__x.imag()))\n        return complex<_Tp>(__x.real(), _Tp(NAN));\n    if (__x.real() == 0 && !__libcpp_isfinite_or_builtin(__x.imag()))\n        return complex<_Tp>(__x.real(), _Tp(NAN));\n    if (__x.imag() == 0 && !__libcpp_isfinite_or_builtin(__x.real()))\n        return __x;\n    return complex<_Tp>(sinh(__x.real()) * cos(__x.imag()), cosh(__x.real()) * sin(__x.imag()));\n}\n\n// cosh\n\ntemplate<class _Tp>\ncomplex<_Tp>\ncosh(const complex<_Tp>& __x)\n{\n    if (__libcpp_isinf_or_builtin(__x.real()) && !__libcpp_isfinite_or_builtin(__x.imag()))\n        return complex<_Tp>(abs(__x.real()), _Tp(NAN));\n    if (__x.real() == 0 && !__libcpp_isfinite_or_builtin(__x.imag()))\n        return complex<_Tp>(_Tp(NAN), __x.real());\n    if (__x.real() == 0 && __x.imag() == 0)\n        return complex<_Tp>(_Tp(1), __x.imag());\n    if (__x.imag() == 0 && !__libcpp_isfinite_or_builtin(__x.real()))\n        return complex<_Tp>(abs(__x.real()), __x.imag());\n    return complex<_Tp>(cosh(__x.real()) * cos(__x.imag()), sinh(__x.real()) * sin(__x.imag()));\n}\n\n// tanh\n\ntemplate<class _Tp>\ncomplex<_Tp>\ntanh(const complex<_Tp>& __x)\n{\n    if (__libcpp_isinf_or_builtin(__x.real()))\n    {\n        if (!__libcpp_isfinite_or_builtin(__x.imag()))\n            return complex<_Tp>(_Tp(1), _Tp(0));\n        return complex<_Tp>(_Tp(1), copysign(_Tp(0), sin(_Tp(2) * __x.imag())));\n    }\n    if (__libcpp_isnan_or_builtin(__x.real()) && __x.imag() == 0)\n        return __x;\n    _Tp __2r(_Tp(2) * __x.real());\n    _Tp __2i(_Tp(2) * __x.imag());\n    _Tp __d(cosh(__2r) + cos(__2i));\n    _Tp __2rsh(sinh(__2r));\n    if (__libcpp_isinf_or_builtin(__2rsh) && __libcpp_isinf_or_builtin(__d))\n        return complex<_Tp>(__2rsh > _Tp(0) ? _Tp(1) : _Tp(-1),\n                            __2i > _Tp(0) ? _Tp(0) : _Tp(-0.));\n    return  complex<_Tp>(__2rsh/__d, sin(__2i)/__d);\n}\n\n// asin\n\ntemplate<class _Tp>\ncomplex<_Tp>\nasin(const complex<_Tp>& __x)\n{\n    complex<_Tp> __z = asinh(complex<_Tp>(-__x.imag(), __x.real()));\n    return complex<_Tp>(__z.imag(), -__z.real());\n}\n\n// acos\n\ntemplate<class _Tp>\ncomplex<_Tp>\nacos(const complex<_Tp>& __x)\n{\n    const _Tp __pi(atan2(+0., -0.));\n    if (__libcpp_isinf_or_builtin(__x.real()))\n    {\n        if (__libcpp_isnan_or_builtin(__x.imag()))\n            return complex<_Tp>(__x.imag(), __x.real());\n        if (__libcpp_isinf_or_builtin(__x.imag()))\n        {\n            if (__x.real() < _Tp(0))\n                return complex<_Tp>(_Tp(0.75) * __pi, -__x.imag());\n            return complex<_Tp>(_Tp(0.25) * __pi, -__x.imag());\n        }\n        if (__x.real() < _Tp(0))\n            return complex<_Tp>(__pi, signbit(__x.imag()) ? -__x.real() : __x.real());\n        return complex<_Tp>(_Tp(0), signbit(__x.imag()) ? __x.real() : -__x.real());\n    }\n    if (__libcpp_isnan_or_builtin(__x.real()))\n    {\n        if (__libcpp_isinf_or_builtin(__x.imag()))\n            return complex<_Tp>(__x.real(), -__x.imag());\n        return complex<_Tp>(__x.real(), __x.real());\n    }\n    if (__libcpp_isinf_or_builtin(__x.imag()))\n        return complex<_Tp>(__pi/_Tp(2), -__x.imag());\n    if (__x.real() == 0 && (__x.imag() == 0 || isnan(__x.imag())))\n        return complex<_Tp>(__pi/_Tp(2), -__x.imag());\n    complex<_Tp> __z = log(__x + sqrt(pow(__x, _Tp(2)) - _Tp(1)));\n    if (signbit(__x.imag()))\n        return complex<_Tp>(abs(__z.imag()), abs(__z.real()));\n    return complex<_Tp>(abs(__z.imag()), -abs(__z.real()));\n}\n\n// atan\n\ntemplate<class _Tp>\ncomplex<_Tp>\natan(const complex<_Tp>& __x)\n{\n    complex<_Tp> __z = atanh(complex<_Tp>(-__x.imag(), __x.real()));\n    return complex<_Tp>(__z.imag(), -__z.real());\n}\n\n// sin\n\ntemplate<class _Tp>\ncomplex<_Tp>\nsin(const complex<_Tp>& __x)\n{\n    complex<_Tp> __z = sinh(complex<_Tp>(-__x.imag(), __x.real()));\n    return complex<_Tp>(__z.imag(), -__z.real());\n}\n\n// cos\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ncomplex<_Tp>\ncos(const complex<_Tp>& __x)\n{\n    return cosh(complex<_Tp>(-__x.imag(), __x.real()));\n}\n\n// tan\n\ntemplate<class _Tp>\ncomplex<_Tp>\ntan(const complex<_Tp>& __x)\n{\n    complex<_Tp> __z = tanh(complex<_Tp>(-__x.imag(), __x.real()));\n    return complex<_Tp>(__z.imag(), -__z.real());\n}\n\ntemplate<class _Tp, class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, complex<_Tp>& __x)\n{\n    if (__is.good())\n    {\n        ws(__is);\n        if (__is.peek() == _CharT('('))\n        {\n            __is.get();\n            _Tp __r;\n            __is >> __r;\n            if (!__is.fail())\n            {\n                ws(__is);\n                _CharT __c = __is.peek();\n                if (__c == _CharT(','))\n                {\n                    __is.get();\n                    _Tp __i;\n                    __is >> __i;\n                    if (!__is.fail())\n                    {\n                        ws(__is);\n                        __c = __is.peek();\n                        if (__c == _CharT(')'))\n                        {\n                            __is.get();\n                            __x = complex<_Tp>(__r, __i);\n                        }\n                        else\n                            __is.setstate(ios_base::failbit);\n                    }\n                    else\n                        __is.setstate(ios_base::failbit);\n                }\n                else if (__c == _CharT(')'))\n                {\n                    __is.get();\n                    __x = complex<_Tp>(__r, _Tp(0));\n                }\n                else\n                    __is.setstate(ios_base::failbit);\n            }\n            else\n                __is.setstate(ios_base::failbit);\n        }\n        else\n        {\n            _Tp __r;\n            __is >> __r;\n            if (!__is.fail())\n                __x = complex<_Tp>(__r, _Tp(0));\n            else\n                __is.setstate(ios_base::failbit);\n        }\n    }\n    else\n        __is.setstate(ios_base::failbit);\n    return __is;\n}\n\ntemplate<class _Tp, class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const complex<_Tp>& __x)\n{\n    basic_ostringstream<_CharT, _Traits> __s;\n    __s.flags(__os.flags());\n    __s.imbue(__os.getloc());\n    __s.precision(__os.precision());\n    __s << '(' << __x.real() << ',' << __x.imag() << ')';\n    return __os << __s.str();\n}\n\n#if _LIBCPP_STD_VER > 11 \n// Literal suffix for complex number literals [complex.literals]\ninline namespace literals\n{ \n  inline namespace complex_literals\n  {\n    constexpr complex<long double> operator\"\"il(long double __im)\n    {\n        return { 0.0l, __im };\n    }\n\n    constexpr complex<long double> operator\"\"il(unsigned long long __im)\n    {\n        return { 0.0l, static_cast<long double>(__im) };\n    }\n\n\n    constexpr complex<double> operator\"\"i(long double __im)\n    {\n        return { 0.0, static_cast<double>(__im) };\n    }\n\n    constexpr complex<double> operator\"\"i(unsigned long long __im)\n    {\n        return { 0.0, static_cast<double>(__im) };\n    }\n\n\n    constexpr complex<float> operator\"\"if(long double __im)\n    {\n        return { 0.0f, static_cast<float>(__im) };\n    }\n\n    constexpr complex<float> operator\"\"if(unsigned long long __im)\n    {\n        return { 0.0f, static_cast<float>(__im) };\n    }\n  }\n}\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_COMPLEX\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/complex.h",
    "content": "// -*- C++ -*-\n//===--------------------------- complex.h --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_COMPLEX_H\n#define _LIBCPP_COMPLEX_H\n\n/*\n    complex.h synopsis\n\n#include <ccomplex>\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifdef __cplusplus\n\n#include <ccomplex>\n\n#else  // __cplusplus\n\n#include_next <complex.h>\n\n#endif  // __cplusplus\n\n#endif  // _LIBCPP_COMPLEX_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/condition_variable",
    "content": "// -*- C++ -*-\n//===---------------------- condition_variable ----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CONDITION_VARIABLE\n#define _LIBCPP_CONDITION_VARIABLE\n\n/*\n    condition_variable synopsis\n\nnamespace std\n{\n\nenum class cv_status { no_timeout, timeout };\n\nclass condition_variable\n{\npublic:\n    condition_variable();\n    ~condition_variable();\n\n    condition_variable(const condition_variable&) = delete;\n    condition_variable& operator=(const condition_variable&) = delete;\n\n    void notify_one() noexcept;\n    void notify_all() noexcept;\n\n    void wait(unique_lock<mutex>& lock);\n    template <class Predicate>\n        void wait(unique_lock<mutex>& lock, Predicate pred);\n\n    template <class Clock, class Duration>\n        cv_status\n        wait_until(unique_lock<mutex>& lock,\n                   const chrono::time_point<Clock, Duration>& abs_time);\n\n    template <class Clock, class Duration, class Predicate>\n        bool\n        wait_until(unique_lock<mutex>& lock,\n                   const chrono::time_point<Clock, Duration>& abs_time,\n                   Predicate pred);\n\n    template <class Rep, class Period>\n        cv_status\n        wait_for(unique_lock<mutex>& lock,\n                 const chrono::duration<Rep, Period>& rel_time);\n\n    template <class Rep, class Period, class Predicate>\n        bool\n        wait_for(unique_lock<mutex>& lock,\n                 const chrono::duration<Rep, Period>& rel_time,\n                 Predicate pred);\n\n    typedef pthread_cond_t* native_handle_type;\n    native_handle_type native_handle();\n};\n\nvoid notify_all_at_thread_exit(condition_variable& cond, unique_lock<mutex> lk);\n\nclass condition_variable_any\n{\npublic:\n    condition_variable_any();\n    ~condition_variable_any();\n\n    condition_variable_any(const condition_variable_any&) = delete;\n    condition_variable_any& operator=(const condition_variable_any&) = delete;\n\n    void notify_one() noexcept;\n    void notify_all() noexcept;\n\n    template <class Lock>\n        void wait(Lock& lock);\n    template <class Lock, class Predicate>\n        void wait(Lock& lock, Predicate pred);\n\n    template <class Lock, class Clock, class Duration>\n        cv_status\n        wait_until(Lock& lock,\n                   const chrono::time_point<Clock, Duration>& abs_time);\n\n    template <class Lock, class Clock, class Duration, class Predicate>\n        bool\n        wait_until(Lock& lock,\n                   const chrono::time_point<Clock, Duration>& abs_time,\n                   Predicate pred);\n\n    template <class Lock, class Rep, class Period>\n        cv_status\n        wait_for(Lock& lock,\n                 const chrono::duration<Rep, Period>& rel_time);\n\n    template <class Lock, class Rep, class Period, class Predicate>\n        bool\n        wait_for(Lock& lock,\n                 const chrono::duration<Rep, Period>& rel_time,\n                 Predicate pred);\n};\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__mutex_base>\n#include <memory>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifndef _LIBCPP_HAS_NO_THREADS\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nclass _LIBCPP_TYPE_VIS condition_variable_any\n{\n    condition_variable __cv_;\n    shared_ptr<mutex>  __mut_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    condition_variable_any();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void notify_one() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    void notify_all() _NOEXCEPT;\n\n    template <class _Lock>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        void wait(_Lock& __lock);\n    template <class _Lock, class _Predicate>\n        _LIBCPP_INLINE_VISIBILITY\n        void wait(_Lock& __lock, _Predicate __pred);\n\n    template <class _Lock, class _Clock, class _Duration>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        cv_status\n        wait_until(_Lock& __lock,\n                   const chrono::time_point<_Clock, _Duration>& __t);\n\n    template <class _Lock, class _Clock, class _Duration, class _Predicate>\n        bool\n        _LIBCPP_INLINE_VISIBILITY\n        wait_until(_Lock& __lock,\n                   const chrono::time_point<_Clock, _Duration>& __t,\n                   _Predicate __pred);\n\n    template <class _Lock, class _Rep, class _Period>\n        cv_status\n        _LIBCPP_INLINE_VISIBILITY\n        wait_for(_Lock& __lock,\n                 const chrono::duration<_Rep, _Period>& __d);\n\n    template <class _Lock, class _Rep, class _Period, class _Predicate>\n        bool\n        _LIBCPP_INLINE_VISIBILITY\n        wait_for(_Lock& __lock,\n                 const chrono::duration<_Rep, _Period>& __d,\n                 _Predicate __pred);\n};\n\ninline\ncondition_variable_any::condition_variable_any()\n    : __mut_(make_shared<mutex>()) {}\n\ninline\nvoid\ncondition_variable_any::notify_one() _NOEXCEPT\n{\n    {lock_guard<mutex> __lx(*__mut_);}\n    __cv_.notify_one();\n}\n\ninline\nvoid\ncondition_variable_any::notify_all() _NOEXCEPT\n{\n    {lock_guard<mutex> __lx(*__mut_);}\n    __cv_.notify_all();\n}\n\nstruct __lock_external\n{\n    template <class _Lock>\n    void operator()(_Lock* __m) {__m->lock();}\n};\n\ntemplate <class _Lock>\nvoid\ncondition_variable_any::wait(_Lock& __lock)\n{\n    shared_ptr<mutex> __mut = __mut_;\n    unique_lock<mutex> __lk(*__mut);\n    __lock.unlock();\n    unique_ptr<_Lock, __lock_external> __lxx(&__lock);\n    lock_guard<unique_lock<mutex> > __lx(__lk, adopt_lock);\n    __cv_.wait(__lk);\n}  // __mut_.unlock(), __lock.lock()\n\ntemplate <class _Lock, class _Predicate>\ninline\nvoid\ncondition_variable_any::wait(_Lock& __lock, _Predicate __pred)\n{\n    while (!__pred())\n        wait(__lock);\n}\n\ntemplate <class _Lock, class _Clock, class _Duration>\ncv_status\ncondition_variable_any::wait_until(_Lock& __lock,\n                                   const chrono::time_point<_Clock, _Duration>& __t)\n{\n    shared_ptr<mutex> __mut = __mut_;\n    unique_lock<mutex> __lk(*__mut);\n    __lock.unlock();\n    unique_ptr<_Lock, __lock_external> __lxx(&__lock);\n    lock_guard<unique_lock<mutex> > __lx(__lk, adopt_lock);\n    return __cv_.wait_until(__lk, __t);\n}  // __mut_.unlock(), __lock.lock()\n\ntemplate <class _Lock, class _Clock, class _Duration, class _Predicate>\ninline\nbool\ncondition_variable_any::wait_until(_Lock& __lock,\n                                   const chrono::time_point<_Clock, _Duration>& __t,\n                                   _Predicate __pred)\n{\n    while (!__pred())\n        if (wait_until(__lock, __t) == cv_status::timeout)\n            return __pred();\n    return true;\n}\n\ntemplate <class _Lock, class _Rep, class _Period>\ninline\ncv_status\ncondition_variable_any::wait_for(_Lock& __lock,\n                                 const chrono::duration<_Rep, _Period>& __d)\n{\n    return wait_until(__lock, chrono::steady_clock::now() + __d);\n}\n\ntemplate <class _Lock, class _Rep, class _Period, class _Predicate>\ninline\nbool\ncondition_variable_any::wait_for(_Lock& __lock,\n                                 const chrono::duration<_Rep, _Period>& __d,\n                                 _Predicate __pred)\n{\n    return wait_until(__lock, chrono::steady_clock::now() + __d,\n                      _VSTD::move(__pred));\n}\n\n_LIBCPP_FUNC_VIS\nvoid notify_all_at_thread_exit(condition_variable& cond, unique_lock<mutex> lk);\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif // !_LIBCPP_HAS_NO_THREADS\n\n#endif  // _LIBCPP_CONDITION_VARIABLE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/csetjmp",
    "content": "// -*- C++ -*-\n//===--------------------------- csetjmp ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSETJMP\n#define _LIBCPP_CSETJMP\n\n/*\n    csetjmp synopsis\n\nMacros:\n\n    setjmp\n\nnamespace std\n{\n\nTypes:\n\n    jmp_buf\n\nvoid longjmp(jmp_buf env, int val);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <setjmp.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::jmp_buf;\nusing ::longjmp;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CSETJMP\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/csignal",
    "content": "// -*- C++ -*-\n//===--------------------------- csignal ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSIGNAL\n#define _LIBCPP_CSIGNAL\n\n/*\n    csignal synopsis\n\nMacros:\n\n    SIG_DFL\n    SIG_ERR\n    SIG_IGN\n    SIGABRT\n    SIGFPE\n    SIGILL\n    SIGINT\n    SIGSEGV\n    SIGTERM\n\nnamespace std\n{\n\nTypes:\n\n    sig_atomic_t\n\nvoid (*signal(int sig, void (*func)(int)))(int);\nint raise(int sig);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <signal.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::sig_atomic_t;\nusing ::signal;\nusing ::raise;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CSIGNAL\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstdarg",
    "content": "// -*- C++ -*-\n//===--------------------------- cstdarg ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSTDARG\n#define _LIBCPP_CSTDARG\n\n/*\n    cstdarg synopsis\n\nMacros:\n\n    type va_arg(va_list ap, type);\n    void va_copy(va_list dest, va_list src);  // C99\n    void va_end(va_list ap);\n    void va_start(va_list ap, parmN);\n\nnamespace std\n{\n\nTypes:\n\n    va_list\n\n}  // std\n\n*/\n\n#include <__config>\n#include <stdarg.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::va_list;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CSTDARG\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstdbool",
    "content": "// -*- C++ -*-\n//===--------------------------- cstdbool ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSTDBOOL\n#define _LIBCPP_CSTDBOOL\n\n/*\n    cstdbool synopsis\n\nMacros:\n\n    __bool_true_false_are_defined\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#undef __bool_true_false_are_defined\n#define __bool_true_false_are_defined 1\n\n#endif  // _LIBCPP_CSTDBOOL\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstddef",
    "content": "// -*- C++ -*-\n//===--------------------------- cstddef ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSTDDEF\n#define _LIBCPP_CSTDDEF\n\n/*\n    cstddef synopsis\n\nMacros:\n\n    offsetof(type,member-designator)\n    NULL\n\nnamespace std\n{\n\nTypes:\n\n    ptrdiff_t\n    size_t\n    max_align_t\n    nullptr_t\n    byte // C++17\n\n}  // std\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n// Don't include our own <stddef.h>; we don't want to declare ::nullptr_t.\n#include_next <stddef.h>\n#include <__nullptr>\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::ptrdiff_t;\nusing ::size_t;\n\n#if defined(__CLANG_MAX_ALIGN_T_DEFINED) || defined(_GCC_MAX_ALIGN_T) || \\\n    defined(__DEFINED_max_align_t)\n// Re-use the compiler's <stddef.h> max_align_t where possible.\nusing ::max_align_t;\n#else\ntypedef long double max_align_t;\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#if _LIBCPP_STD_VER > 14\nnamespace std  // purposefully not versioned\n{\nenum class byte : unsigned char {};\n\nconstexpr byte& operator|=(byte& __lhs, byte __rhs) noexcept\n{ return __lhs = byte(static_cast<unsigned char>(__lhs) | static_cast<unsigned char>(__rhs)); }\nconstexpr byte  operator| (byte  __lhs, byte __rhs) noexcept\n{ return         byte(static_cast<unsigned char>(__lhs) | static_cast<unsigned char>(__rhs)); }\n\nconstexpr byte& operator&=(byte& __lhs, byte __rhs) noexcept\n{ return __lhs = byte(static_cast<unsigned char>(__lhs) & static_cast<unsigned char>(__rhs)); }\nconstexpr byte  operator& (byte  __lhs, byte __rhs) noexcept\n{ return         byte(static_cast<unsigned char>(__lhs) & static_cast<unsigned char>(__rhs)); }\n\nconstexpr byte& operator^=(byte& __lhs, byte __rhs) noexcept \n{ return __lhs = byte(static_cast<unsigned char>(__lhs) ^ static_cast<unsigned char>(__rhs)); }\nconstexpr byte  operator^ (byte  __lhs, byte __rhs) noexcept\n{ return         byte(static_cast<unsigned char>(__lhs) ^ static_cast<unsigned char>(__rhs)); }\n\nconstexpr byte  operator~ (byte __b) noexcept\n{ return  byte(~static_cast<unsigned char>(__b)); }\n\n}\n\n#include <type_traits>  // rest of byte\n#endif\n\n#endif  // _LIBCPP_CSTDDEF\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstdint",
    "content": "// -*- C++ -*-\n//===--------------------------- cstdint ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSTDINT\n#define _LIBCPP_CSTDINT\n\n/*\n    cstdint synopsis\n\nMacros:\n\n    INT8_MIN\n    INT16_MIN\n    INT32_MIN\n    INT64_MIN\n\n    INT8_MAX\n    INT16_MAX\n    INT32_MAX\n    INT64_MAX\n\n    UINT8_MAX\n    UINT16_MAX\n    UINT32_MAX\n    UINT64_MAX\n\n    INT_LEAST8_MIN\n    INT_LEAST16_MIN\n    INT_LEAST32_MIN\n    INT_LEAST64_MIN\n\n    INT_LEAST8_MAX\n    INT_LEAST16_MAX\n    INT_LEAST32_MAX\n    INT_LEAST64_MAX\n\n    UINT_LEAST8_MAX\n    UINT_LEAST16_MAX\n    UINT_LEAST32_MAX\n    UINT_LEAST64_MAX\n\n    INT_FAST8_MIN\n    INT_FAST16_MIN\n    INT_FAST32_MIN\n    INT_FAST64_MIN\n\n    INT_FAST8_MAX\n    INT_FAST16_MAX\n    INT_FAST32_MAX\n    INT_FAST64_MAX\n\n    UINT_FAST8_MAX\n    UINT_FAST16_MAX\n    UINT_FAST32_MAX\n    UINT_FAST64_MAX\n\n    INTPTR_MIN\n    INTPTR_MAX\n    UINTPTR_MAX\n\n    INTMAX_MIN\n    INTMAX_MAX\n\n    UINTMAX_MAX\n\n    PTRDIFF_MIN\n    PTRDIFF_MAX\n\n    SIG_ATOMIC_MIN\n    SIG_ATOMIC_MAX\n\n    SIZE_MAX\n\n    WCHAR_MIN\n    WCHAR_MAX\n\n    WINT_MIN\n    WINT_MAX\n\n    INT8_C(value)\n    INT16_C(value)\n    INT32_C(value)\n    INT64_C(value)\n\n    UINT8_C(value)\n    UINT16_C(value)\n    UINT32_C(value)\n    UINT64_C(value)\n\n    INTMAX_C(value)\n    UINTMAX_C(value)\n\nnamespace std\n{\n\nTypes:\n\n    int8_t\n    int16_t\n    int32_t\n    int64_t\n\n    uint8_t\n    uint16_t\n    uint32_t\n    uint64_t\n\n    int_least8_t\n    int_least16_t\n    int_least32_t\n    int_least64_t\n\n    uint_least8_t\n    uint_least16_t\n    uint_least32_t\n    uint_least64_t\n\n    int_fast8_t\n    int_fast16_t\n    int_fast32_t\n    int_fast64_t\n\n    uint_fast8_t\n    uint_fast16_t\n    uint_fast32_t\n    uint_fast64_t\n\n    intptr_t\n    uintptr_t\n\n    intmax_t\n    uintmax_t\n\n}  // std\n*/\n\n#include <__config>\n#include <stdint.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing::int8_t;\nusing::int16_t;\nusing::int32_t;\nusing::int64_t;\n\nusing::uint8_t;\nusing::uint16_t;\nusing::uint32_t;\nusing::uint64_t;\n\nusing::int_least8_t;\nusing::int_least16_t;\nusing::int_least32_t;\nusing::int_least64_t;\n\nusing::uint_least8_t;\nusing::uint_least16_t;\nusing::uint_least32_t;\nusing::uint_least64_t;\n\nusing::int_fast8_t;\nusing::int_fast16_t;\nusing::int_fast32_t;\nusing::int_fast64_t;\n\nusing::uint_fast8_t;\nusing::uint_fast16_t;\nusing::uint_fast32_t;\nusing::uint_fast64_t;\n\nusing::intptr_t;\nusing::uintptr_t;\n\nusing::intmax_t;\nusing::uintmax_t;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CSTDINT\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstdio",
    "content": "// -*- C++ -*-\n//===---------------------------- cstdio ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSTDIO\n#define _LIBCPP_CSTDIO\n\n/*\n    cstdio synopsis\n\nMacros:\n\n    BUFSIZ\n    EOF\n    FILENAME_MAX\n    FOPEN_MAX\n    L_tmpnam\n    NULL\n    SEEK_CUR\n    SEEK_END\n    SEEK_SET\n    TMP_MAX\n    _IOFBF\n    _IOLBF\n    _IONBF\n    stderr\n    stdin\n    stdout\n\nnamespace std\n{\n\nTypes:\n\nFILE\nfpos_t\nsize_t\n\nint remove(const char* filename);\nint rename(const char* old, const char* new);\nFILE* tmpfile(void);\nchar* tmpnam(char* s);\nint fclose(FILE* stream);\nint fflush(FILE* stream);\nFILE* fopen(const char* restrict filename, const char* restrict mode);\nFILE* freopen(const char* restrict filename, const char * restrict mode,\n              FILE * restrict stream);\nvoid setbuf(FILE* restrict stream, char* restrict buf);\nint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size);\nint fprintf(FILE* restrict stream, const char* restrict format, ...);\nint fscanf(FILE* restrict stream, const char * restrict format, ...);\nint printf(const char* restrict format, ...);\nint scanf(const char* restrict format, ...);\nint snprintf(char* restrict s, size_t n, const char* restrict format, ...);    // C99\nint sprintf(char* restrict s, const char* restrict format, ...);\nint sscanf(const char* restrict s, const char* restrict format, ...);\nint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg);\nint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg);  // C99\nint vprintf(const char* restrict format, va_list arg);\nint vscanf(const char* restrict format, va_list arg);                          // C99\nint vsnprintf(char* restrict s, size_t n, const char* restrict format,         // C99\n              va_list arg);\nint vsprintf(char* restrict s, const char* restrict format, va_list arg);\nint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99\nint fgetc(FILE* stream);\nchar* fgets(char* restrict s, int n, FILE* restrict stream);\nint fputc(int c, FILE* stream);\nint fputs(const char* restrict s, FILE* restrict stream);\nint getc(FILE* stream);\nint getchar(void);\nchar* gets(char* s);  // removed in C++14\nint putc(int c, FILE* stream);\nint putchar(int c);\nint puts(const char* s);\nint ungetc(int c, FILE* stream);\nsize_t fread(void* restrict ptr, size_t size, size_t nmemb,\n             FILE* restrict stream);\nsize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb,\n              FILE* restrict stream);\nint fgetpos(FILE* restrict stream, fpos_t* restrict pos);\nint fseek(FILE* stream, long offset, int whence);\nint fsetpos(FILE*stream, const fpos_t* pos);\nlong ftell(FILE* stream);\nvoid rewind(FILE* stream);\nvoid clearerr(FILE* stream);\nint feof(FILE* stream);\nint ferror(FILE* stream);\nvoid perror(const char* s);\n\n}  // std\n*/\n\n#include <__config>\n#include <stdio.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::FILE;\nusing ::fpos_t;\nusing ::size_t;\n\nusing ::fclose;\nusing ::fflush;\nusing ::setbuf;\nusing ::setvbuf;\nusing ::fprintf;\nusing ::fscanf;\nusing ::snprintf;\nusing ::sprintf;\nusing ::sscanf;\nusing ::vfprintf;\nusing ::vfscanf;\nusing ::vsscanf;\nusing ::vsnprintf;\nusing ::vsprintf;\nusing ::fgetc;\nusing ::fgets;\nusing ::fputc;\nusing ::fputs;\nusing ::getc;\nusing ::putc;\nusing ::ungetc;\nusing ::fread;\nusing ::fwrite;\nusing ::fgetpos;\nusing ::fseek;\nusing ::fsetpos;\nusing ::ftell;\nusing ::rewind;\nusing ::clearerr;\nusing ::feof;\nusing ::ferror;\nusing ::perror;\n\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\nusing ::fopen;\nusing ::freopen;\nusing ::remove;\nusing ::rename;\nusing ::tmpfile;\nusing ::tmpnam;\n#endif\n\n#ifndef _LIBCPP_HAS_NO_STDIN\nusing ::getchar;\n#if _LIBCPP_STD_VER <= 11 && !defined(_LIBCPP_MSVCRT)\nusing ::gets;\n#endif\nusing ::scanf;\nusing ::vscanf;\n#endif\n\n#ifndef _LIBCPP_HAS_NO_STDOUT\nusing ::printf;\nusing ::putchar;\nusing ::puts;\nusing ::vprintf;\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CSTDIO\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstdlib",
    "content": "// -*- C++ -*-\n//===--------------------------- cstdlib ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSTDLIB\n#define _LIBCPP_CSTDLIB\n\n/*\n    cstdlib synopsis\n\nMacros:\n\n    EXIT_FAILURE\n    EXIT_SUCCESS\n    MB_CUR_MAX\n    NULL\n    RAND_MAX\n\nnamespace std\n{\n\nTypes:\n\n    size_t\n    div_t\n    ldiv_t\n    lldiv_t                                                               // C99\n\ndouble    atof (const char* nptr);\nint       atoi (const char* nptr);\nlong      atol (const char* nptr);\nlong long atoll(const char* nptr);                                        // C99\ndouble             strtod  (const char* restrict nptr, char** restrict endptr);\nfloat              strtof  (const char* restrict nptr, char** restrict endptr); // C99\nlong double        strtold (const char* restrict nptr, char** restrict endptr); // C99\nlong               strtol  (const char* restrict nptr, char** restrict endptr, int base);\nlong long          strtoll (const char* restrict nptr, char** restrict endptr, int base); // C99\nunsigned long      strtoul (const char* restrict nptr, char** restrict endptr, int base);\nunsigned long long strtoull(const char* restrict nptr, char** restrict endptr, int base); // C99\nint rand(void);\nvoid srand(unsigned int seed);\nvoid* calloc(size_t nmemb, size_t size);\nvoid free(void* ptr);\nvoid* malloc(size_t size);\nvoid* realloc(void* ptr, size_t size);\nvoid abort(void);\nint atexit(void (*func)(void));\nvoid exit(int status);\nvoid _Exit(int status);\nchar* getenv(const char* name);\nint system(const char* string);\nvoid* bsearch(const void* key, const void* base, size_t nmemb, size_t size,\n              int (*compar)(const void *, const void *));\nvoid qsort(void* base, size_t nmemb, size_t size,\n           int (*compar)(const void *, const void *));\nint         abs(      int j);\nlong        abs(     long j);\nlong long   abs(long long j);                                             // C++0X\nlong       labs(     long j);\nlong long llabs(long long j);                                             // C99\ndiv_t     div(      int numer,       int denom);\nldiv_t    div(     long numer,      long denom);\nlldiv_t   div(long long numer, long long denom);                          // C++0X\nldiv_t   ldiv(     long numer,      long denom);\nlldiv_t lldiv(long long numer, long long denom);                          // C99\nint mblen(const char* s, size_t n);\nint mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n);\nint wctomb(char* s, wchar_t wchar);\nsize_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n);\nsize_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n);\nint at_quick_exit(void (*func)(void))                                     // C++11\nvoid quick_exit(int status);                                              // C++11\nvoid *aligned_alloc(size_t alignment, size_t size);                       // C11\n\n}  // std\n\n*/\n\n#include <__config>\n#include <stdlib.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifdef __GNUC__\n#define _LIBCPP_UNREACHABLE() __builtin_unreachable()\n#else\n#define _LIBCPP_UNREACHABLE() _VSTD::abort()\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::size_t;\nusing ::div_t;\nusing ::ldiv_t;\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\nusing ::lldiv_t;\n#endif // _LIBCPP_HAS_NO_LONG_LONG\nusing ::atof;\nusing ::atoi;\nusing ::atol;\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\nusing ::atoll;\n#endif // _LIBCPP_HAS_NO_LONG_LONG\nusing ::strtod;\nusing ::strtof;\nusing ::strtold;\nusing ::strtol;\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\nusing ::strtoll;\n#endif // _LIBCPP_HAS_NO_LONG_LONG\nusing ::strtoul;\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\nusing ::strtoull;\n#endif // _LIBCPP_HAS_NO_LONG_LONG\nusing ::rand;\nusing ::srand;\nusing ::calloc;\nusing ::free;\nusing ::malloc;\nusing ::realloc;\nusing ::abort;\nusing ::atexit;\nusing ::exit;\nusing ::_Exit;\n#ifndef _LIBCPP_WINDOWS_STORE_APP\nusing ::getenv;\nusing ::system;\n#endif\nusing ::bsearch;\nusing ::qsort;\nusing ::abs;\nusing ::labs;\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\nusing ::llabs;\n#endif // _LIBCPP_HAS_NO_LONG_LONG\nusing ::div;\nusing ::ldiv;\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\nusing ::lldiv;\n#endif // _LIBCPP_HAS_NO_LONG_LONG\nusing ::mblen;\nusing ::mbtowc;\nusing ::wctomb;\nusing ::mbstowcs;\nusing ::wcstombs;\n#ifdef _LIBCPP_HAS_QUICK_EXIT\nusing ::at_quick_exit;\nusing ::quick_exit;\n#endif\n#ifdef _LIBCPP_HAS_C11_FEATURES\nusing ::aligned_alloc;\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CSTDLIB\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cstring",
    "content": "// -*- C++ -*-\n//===--------------------------- cstring ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CSTRING\n#define _LIBCPP_CSTRING\n\n/*\n    cstring synopsis\n\nMacros:\n\n    NULL\n\nnamespace std\n{\n\nTypes:\n\n    size_t\n\nvoid* memcpy(void* restrict s1, const void* restrict s2, size_t n);\nvoid* memmove(void* s1, const void* s2, size_t n);\nchar* strcpy (char* restrict s1, const char* restrict s2);\nchar* strncpy(char* restrict s1, const char* restrict s2, size_t n);\nchar* strcat (char* restrict s1, const char* restrict s2);\nchar* strncat(char* restrict s1, const char* restrict s2, size_t n);\nint memcmp(const void* s1, const void* s2, size_t n);\nint strcmp (const char* s1, const char* s2);\nint strncmp(const char* s1, const char* s2, size_t n);\nint strcoll(const char* s1, const char* s2);\nsize_t strxfrm(char* restrict s1, const char* restrict s2, size_t n);\nconst void* memchr(const void* s, int c, size_t n);\n      void* memchr(      void* s, int c, size_t n);\nconst char* strchr(const char* s, int c);\n      char* strchr(      char* s, int c);\nsize_t strcspn(const char* s1, const char* s2);\nconst char* strpbrk(const char* s1, const char* s2);\n      char* strpbrk(      char* s1, const char* s2);\nconst char* strrchr(const char* s, int c);\n      char* strrchr(      char* s, int c);\nsize_t strspn(const char* s1, const char* s2);\nconst char* strstr(const char* s1, const char* s2);\n      char* strstr(      char* s1, const char* s2);\nchar* strtok(char* restrict s1, const char* restrict s2);\nvoid* memset(void* s, int c, size_t n);\nchar* strerror(int errnum);\nsize_t strlen(const char* s);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <string.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::size_t;\nusing ::memcpy;\nusing ::memmove;\nusing ::strcpy;\nusing ::strncpy;\nusing ::strcat;\nusing ::strncat;\nusing ::memcmp;\nusing ::strcmp;\nusing ::strncmp;\nusing ::strcoll;\nusing ::strxfrm;\nusing ::memchr;\nusing ::strchr;\nusing ::strcspn;\nusing ::strpbrk;\nusing ::strrchr;\nusing ::strspn;\nusing ::strstr;\n#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS\nusing ::strtok;\n#endif\nusing ::memset;\nusing ::strerror;\nusing ::strlen;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CSTRING\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctgmath",
    "content": "// -*- C++ -*-\n//===-------------------------- ctgmath -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CTGMATH\n#define _LIBCPP_CTGMATH\n\n/*\n    ctgmath synopsis\n\n#include <ccomplex>\n#include <cmath>\n\n*/\n\n#include <ccomplex>\n#include <cmath>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#endif  // _LIBCPP_CTGMATH\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctime",
    "content": "// -*- C++ -*-\n//===---------------------------- ctime -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CTIME\n#define _LIBCPP_CTIME\n\n/*\n    ctime synopsis\n\nMacros:\n\n    NULL\n    CLOCKS_PER_SEC\n\nnamespace std\n{\n\nTypes:\n\n    clock_t\n    size_t\n    time_t\n    tm\n\nclock_t clock();\ndouble difftime(time_t time1, time_t time0);\ntime_t mktime(tm* timeptr);\ntime_t time(time_t* timer);\nchar* asctime(const tm* timeptr);\nchar* ctime(const time_t* timer);\ntm*    gmtime(const time_t* timer);\ntm* localtime(const time_t* timer);\nsize_t strftime(char* restrict s, size_t maxsize, const char* restrict format,\n                const tm* restrict timeptr);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <time.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::clock_t;\nusing ::size_t;\nusing ::time_t;\nusing ::tm;\nusing ::clock;\nusing ::difftime;\nusing ::mktime;\nusing ::time;\n#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS\nusing ::asctime;\nusing ::ctime;\nusing ::gmtime;\nusing ::localtime;\n#endif\nusing ::strftime;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CTIME\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctype.h",
    "content": "// -*- C++ -*-\n//===---------------------------- ctype.h ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CTYPE_H\n#define _LIBCPP_CTYPE_H\n\n/*\n    ctype.h synopsis\n\nint isalnum(int c);\nint isalpha(int c);\nint isblank(int c);  // C99\nint iscntrl(int c);\nint isdigit(int c);\nint isgraph(int c);\nint islower(int c);\nint isprint(int c);\nint ispunct(int c);\nint isspace(int c);\nint isupper(int c);\nint isxdigit(int c);\nint tolower(int c);\nint toupper(int c);\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <ctype.h>\n\n#ifdef __cplusplus\n\n#undef isalnum\n#undef isalpha\n#undef isblank\n#undef iscntrl\n#undef isdigit\n#undef isgraph\n#undef islower\n#undef isprint\n#undef ispunct\n#undef isspace\n#undef isupper\n#undef isxdigit\n#undef tolower\n#undef toupper\n\n#endif\n\n#endif  // _LIBCPP_CTYPE_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cwchar",
    "content": "// -*- C++ -*-\n//===--------------------------- cwchar -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CWCHAR\n#define _LIBCPP_CWCHAR\n\n/*\n    cwchar synopsis\n\nMacros:\n\n    NULL\n    WCHAR_MAX\n    WCHAR_MIN\n    WEOF\n\nnamespace std\n{\n\nTypes:\n\n    mbstate_t\n    size_t\n    tm\n    wint_t\n\nint fwprintf(FILE* restrict stream, const wchar_t* restrict format, ...);\nint fwscanf(FILE* restrict stream, const wchar_t* restrict format, ...);\nint swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, ...);\nint swscanf(const wchar_t* restrict s, const wchar_t* restrict format, ...);\nint vfwprintf(FILE* restrict stream, const wchar_t* restrict format, va_list arg);\nint vfwscanf(FILE* restrict stream, const wchar_t* restrict format, va_list arg);  // C99\nint vswprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, va_list arg);\nint vswscanf(const wchar_t* restrict s, const wchar_t* restrict format, va_list arg);  // C99\nint vwprintf(const wchar_t* restrict format, va_list arg);\nint vwscanf(const wchar_t* restrict format, va_list arg);  // C99\nint wprintf(const wchar_t* restrict format, ...);\nint wscanf(const wchar_t* restrict format, ...);\nwint_t fgetwc(FILE* stream);\nwchar_t* fgetws(wchar_t* restrict s, int n, FILE* restrict stream);\nwint_t fputwc(wchar_t c, FILE* stream);\nint fputws(const wchar_t* restrict s, FILE* restrict stream);\nint fwide(FILE* stream, int mode);\nwint_t getwc(FILE* stream);\nwint_t getwchar();\nwint_t putwc(wchar_t c, FILE* stream);\nwint_t putwchar(wchar_t c);\nwint_t ungetwc(wint_t c, FILE* stream);\ndouble wcstod(const wchar_t* restrict nptr, wchar_t** restrict endptr);\nfloat wcstof(const wchar_t* restrict nptr, wchar_t** restrict endptr);         // C99\nlong double wcstold(const wchar_t* restrict nptr, wchar_t** restrict endptr);  // C99\nlong wcstol(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);\nlong long wcstoll(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);  // C99\nunsigned long wcstoul(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);\nunsigned long long wcstoull(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);  // C99\nwchar_t* wcscpy(wchar_t* restrict s1, const wchar_t* restrict s2);\nwchar_t* wcsncpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nwchar_t* wcscat(wchar_t* restrict s1, const wchar_t* restrict s2);\nwchar_t* wcsncat(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nint wcscmp(const wchar_t* s1, const wchar_t* s2);\nint wcscoll(const wchar_t* s1, const wchar_t* s2);\nint wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n);\nsize_t wcsxfrm(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nconst wchar_t* wcschr(const wchar_t* s, wchar_t c);\n      wchar_t* wcschr(      wchar_t* s, wchar_t c);\nsize_t wcscspn(const wchar_t* s1, const wchar_t* s2);\nsize_t wcslen(const wchar_t* s);\nconst wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2);\n      wchar_t* wcspbrk(      wchar_t* s1, const wchar_t* s2);\nconst wchar_t* wcsrchr(const wchar_t* s, wchar_t c);\n      wchar_t* wcsrchr(      wchar_t* s, wchar_t c);\nsize_t wcsspn(const wchar_t* s1, const wchar_t* s2);\nconst wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2);\n      wchar_t* wcsstr(      wchar_t* s1, const wchar_t* s2);\nwchar_t* wcstok(wchar_t* restrict s1, const wchar_t* restrict s2, wchar_t** restrict ptr);\nconst wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);\n      wchar_t* wmemchr(      wchar_t* s, wchar_t c, size_t n);\nint wmemcmp(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nwchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nwchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);\nwchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);\nsize_t wcsftime(wchar_t* restrict s, size_t maxsize, const wchar_t* restrict format,\n                const tm* restrict timeptr);\nwint_t btowc(int c);\nint wctob(wint_t c);\nint mbsinit(const mbstate_t* ps);\nsize_t mbrlen(const char* restrict s, size_t n, mbstate_t* restrict ps);\nsize_t mbrtowc(wchar_t* restrict pwc, const char* restrict s, size_t n, mbstate_t* restrict ps);\nsize_t wcrtomb(char* restrict s, wchar_t wc, mbstate_t* restrict ps);\nsize_t mbsrtowcs(wchar_t* restrict dst, const char** restrict src, size_t len,\n                 mbstate_t* restrict ps);\nsize_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len,\n                 mbstate_t* restrict ps);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <cwctype>\n#include <wchar.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::mbstate_t;\nusing ::size_t;\nusing ::tm;\nusing ::wint_t;\nusing ::FILE;\nusing ::fwprintf;\nusing ::fwscanf;\nusing ::swprintf;\nusing ::vfwprintf;\nusing ::vswprintf;\nusing ::swscanf;\nusing ::vfwscanf;\nusing ::vswscanf;\nusing ::fgetwc;\nusing ::fgetws;\nusing ::fputwc;\nusing ::fputws;\nusing ::fwide;\nusing ::getwc;\nusing ::putwc;\nusing ::ungetwc;\nusing ::wcstod;\nusing ::wcstof;\nusing ::wcstold;\nusing ::wcstol;\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\nusing ::wcstoll;\n#endif // _LIBCPP_HAS_NO_LONG_LONG\nusing ::wcstoul;\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\nusing ::wcstoull;\n#endif // _LIBCPP_HAS_NO_LONG_LONG\nusing ::wcscpy;\nusing ::wcsncpy;\nusing ::wcscat;\nusing ::wcsncat;\nusing ::wcscmp;\nusing ::wcscoll;\nusing ::wcsncmp;\nusing ::wcsxfrm;\nusing ::wcschr;\nusing ::wcspbrk;\nusing ::wcsrchr;\nusing ::wcsstr;\nusing ::wmemchr;\nusing ::wcscspn;\nusing ::wcslen;\nusing ::wcsspn;\nusing ::wcstok;\nusing ::wmemcmp;\nusing ::wmemcpy;\nusing ::wmemmove;\nusing ::wmemset;\nusing ::wcsftime;\nusing ::btowc;\nusing ::wctob;\nusing ::mbsinit;\nusing ::mbrlen;\nusing ::mbrtowc;\nusing ::wcrtomb;\nusing ::mbsrtowcs;\nusing ::wcsrtombs;\n\n#ifndef _LIBCPP_HAS_NO_STDIN\nusing ::getwchar;\nusing ::vwscanf;\nusing ::wscanf;\n#endif\n\n#ifndef _LIBCPP_HAS_NO_STDOUT\nusing ::putwchar;\nusing ::vwprintf;\nusing ::wprintf;\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CWCHAR\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/cwctype",
    "content": "// -*- C++ -*-\n//===--------------------------- cwctype ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_CWCTYPE\n#define _LIBCPP_CWCTYPE\n\n/*\n    cwctype synopsis\n\nMacros:\n\n    WEOF\n\nnamespace std\n{\n\nTypes:\n\n    wint_t\n    wctrans_t\n    wctype_t\n\nint iswalnum(wint_t wc);\nint iswalpha(wint_t wc);\nint iswblank(wint_t wc);  // C99\nint iswcntrl(wint_t wc);\nint iswdigit(wint_t wc);\nint iswgraph(wint_t wc);\nint iswlower(wint_t wc);\nint iswprint(wint_t wc);\nint iswpunct(wint_t wc);\nint iswspace(wint_t wc);\nint iswupper(wint_t wc);\nint iswxdigit(wint_t wc);\nint iswctype(wint_t wc, wctype_t desc);\nwctype_t wctype(const char* property);\nwint_t towlower(wint_t wc);\nwint_t towupper(wint_t wc);\nwint_t towctrans(wint_t wc, wctrans_t desc);\nwctrans_t wctrans(const char* property);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <cctype>\n#include <wctype.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nusing ::wint_t;\nusing ::wctrans_t;\nusing ::wctype_t;\nusing ::iswalnum;\nusing ::iswalpha;\nusing ::iswblank;\nusing ::iswcntrl;\nusing ::iswdigit;\nusing ::iswgraph;\nusing ::iswlower;\nusing ::iswprint;\nusing ::iswpunct;\nusing ::iswspace;\nusing ::iswupper;\nusing ::iswxdigit;\nusing ::iswctype;\nusing ::wctype;\nusing ::towlower;\nusing ::towupper;\nusing ::towctrans;\nusing ::wctrans;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_CWCTYPE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/deque",
    "content": "// -*- C++ -*-\n//===---------------------------- deque -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_DEQUE\n#define _LIBCPP_DEQUE\n\n/*\n    deque synopsis\n\nnamespace std\n{\n\ntemplate <class T, class Allocator = allocator<T> >\nclass deque\n{\npublic:\n    // types:\n    typedef T value_type;\n    typedef Allocator allocator_type;\n\n    typedef typename allocator_type::reference       reference;\n    typedef typename allocator_type::const_reference const_reference;\n    typedef implementation-defined                   iterator;\n    typedef implementation-defined                   const_iterator;\n    typedef typename allocator_type::size_type       size_type;\n    typedef typename allocator_type::difference_type difference_type;\n\n    typedef typename allocator_type::pointer         pointer;\n    typedef typename allocator_type::const_pointer   const_pointer;\n    typedef std::reverse_iterator<iterator>          reverse_iterator;\n    typedef std::reverse_iterator<const_iterator>    const_reverse_iterator;\n\n    // construct/copy/destroy:\n    deque() noexcept(is_nothrow_default_constructible<allocator_type>::value);\n    explicit deque(const allocator_type& a);\n    explicit deque(size_type n);\n    explicit deque(size_type n, const allocator_type& a); // C++14\n    deque(size_type n, const value_type& v);\n    deque(size_type n, const value_type& v, const allocator_type& a);\n    template <class InputIterator>\n        deque(InputIterator f, InputIterator l);\n    template <class InputIterator>\n        deque(InputIterator f, InputIterator l, const allocator_type& a);\n    deque(const deque& c);\n    deque(deque&& c)\n        noexcept(is_nothrow_move_constructible<allocator_type>::value);\n    deque(initializer_list<value_type> il, const Allocator& a = allocator_type());\n    deque(const deque& c, const allocator_type& a);\n    deque(deque&& c, const allocator_type& a);\n    ~deque();\n\n    deque& operator=(const deque& c);\n    deque& operator=(deque&& c)\n        noexcept(\n             allocator_type::propagate_on_container_move_assignment::value &&\n             is_nothrow_move_assignable<allocator_type>::value);\n    deque& operator=(initializer_list<value_type> il);\n\n    template <class InputIterator>\n        void assign(InputIterator f, InputIterator l);\n    void assign(size_type n, const value_type& v);\n    void assign(initializer_list<value_type> il);\n\n    allocator_type get_allocator() const noexcept;\n\n    // iterators:\n\n    iterator       begin() noexcept;\n    const_iterator begin() const noexcept;\n    iterator       end() noexcept;\n    const_iterator end() const noexcept;\n\n    reverse_iterator       rbegin() noexcept;\n    const_reverse_iterator rbegin() const noexcept;\n    reverse_iterator       rend() noexcept;\n    const_reverse_iterator rend() const noexcept;\n\n    const_iterator         cbegin() const noexcept;\n    const_iterator         cend() const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend() const noexcept;\n\n    // capacity:\n    size_type size() const noexcept;\n    size_type max_size() const noexcept;\n    void resize(size_type n);\n    void resize(size_type n, const value_type& v);\n    void shrink_to_fit();\n    bool empty() const noexcept;\n\n    // element access:\n    reference operator[](size_type i);\n    const_reference operator[](size_type i) const;\n    reference at(size_type i);\n    const_reference at(size_type i) const;\n    reference front();\n    const_reference front() const;\n    reference back();\n    const_reference back() const;\n\n    // modifiers:\n    void push_front(const value_type& v);\n    void push_front(value_type&& v);\n    void push_back(const value_type& v);\n    void push_back(value_type&& v);\n    template <class... Args> reference emplace_front(Args&&... args);  // reference in C++17\n    template <class... Args> reference emplace_back(Args&&... args);   // reference in C++17\n    template <class... Args> iterator emplace(const_iterator p, Args&&... args);\n    iterator insert(const_iterator p, const value_type& v);\n    iterator insert(const_iterator p, value_type&& v);\n    iterator insert(const_iterator p, size_type n, const value_type& v);\n    template <class InputIterator>\n        iterator insert(const_iterator p, InputIterator f, InputIterator l);\n    iterator insert(const_iterator p, initializer_list<value_type> il);\n    void pop_front();\n    void pop_back();\n    iterator erase(const_iterator p);\n    iterator erase(const_iterator f, const_iterator l);\n    void swap(deque& c)\n        noexcept(allocator_traits<allocator_type>::is_always_equal::value);  // C++17\n    void clear() noexcept;\n};\n\ntemplate <class T, class Allocator>\n    bool operator==(const deque<T,Allocator>& x, const deque<T,Allocator>& y);\ntemplate <class T, class Allocator>\n    bool operator< (const deque<T,Allocator>& x, const deque<T,Allocator>& y);\ntemplate <class T, class Allocator>\n    bool operator!=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);\ntemplate <class T, class Allocator>\n    bool operator> (const deque<T,Allocator>& x, const deque<T,Allocator>& y);\ntemplate <class T, class Allocator>\n    bool operator>=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);\ntemplate <class T, class Allocator>\n    bool operator<=(const deque<T,Allocator>& x, const deque<T,Allocator>& y);\n\n// specialized algorithms:\ntemplate <class T, class Allocator>\n    void swap(deque<T,Allocator>& x, deque<T,Allocator>& y)\n         noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__split_buffer>\n#include <type_traits>\n#include <initializer_list>\n#include <iterator>\n#include <algorithm>\n#include <stdexcept>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp, class _Allocator> class __deque_base;\ntemplate <class _Tp, class _Allocator = allocator<_Tp> > class _LIBCPP_TEMPLATE_VIS deque;\n\ntemplate <class _ValueType, class _Pointer, class _Reference, class _MapPointer,\n          class _DiffType, _DiffType _BlockSize>\nclass _LIBCPP_TEMPLATE_VIS __deque_iterator;\n\ntemplate <class _RAIter,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\ncopy(_RAIter __f,\n     _RAIter __l,\n     __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n     typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _OutputIterator>\n_OutputIterator\ncopy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n     __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n     _OutputIterator __r);\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\ncopy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n     __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n     __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);\n\ntemplate <class _RAIter,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\ncopy_backward(_RAIter __f,\n              _RAIter __l,\n              __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n              typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _OutputIterator>\n_OutputIterator\ncopy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n              __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n              _OutputIterator __r);\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\ncopy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n              __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n              __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);\n\ntemplate <class _RAIter,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\nmove(_RAIter __f,\n     _RAIter __l,\n     __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n     typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _OutputIterator>\n_OutputIterator\nmove(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n     __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n     _OutputIterator __r);\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\nmove(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n     __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n     __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);\n\ntemplate <class _RAIter,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\nmove_backward(_RAIter __f,\n              _RAIter __l,\n              __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n              typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _OutputIterator>\n_OutputIterator\nmove_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n              __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n              _OutputIterator __r);\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\nmove_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n              __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n              __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);\n\ntemplate <class _ValueType, class _DiffType>\nstruct __deque_block_size {\n  static const _DiffType value = sizeof(_ValueType) < 256 ? 4096 / sizeof(_ValueType) : 16;\n};\n\ntemplate <class _ValueType, class _Pointer, class _Reference, class _MapPointer,\n          class _DiffType, _DiffType _BS =\n#ifdef _LIBCPP_ABI_INCOMPLETE_TYPES_IN_DEQUE\n// Keep template parameter to avoid changing all template declarations thoughout\n// this file.\n                               0\n#else\n                               __deque_block_size<_ValueType, _DiffType>::value\n#endif\n          >\nclass _LIBCPP_TEMPLATE_VIS __deque_iterator\n{\n    typedef _MapPointer __map_iterator;\npublic:\n    typedef _Pointer  pointer;\n    typedef _DiffType difference_type;\nprivate:\n    __map_iterator __m_iter_;\n    pointer        __ptr_;\n\n    static const difference_type __block_size;\npublic:\n    typedef _ValueType                  value_type;\n    typedef random_access_iterator_tag  iterator_category;\n    typedef _Reference                  reference;\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator() _NOEXCEPT\n#if _LIBCPP_STD_VER > 11\n     : __m_iter_(nullptr), __ptr_(nullptr)\n#endif\n     {}\n\n    template <class _Pp, class _Rp, class _MP>\n    _LIBCPP_INLINE_VISIBILITY\n    __deque_iterator(const __deque_iterator<value_type, _Pp, _Rp, _MP, difference_type, _BS>& __it,\n                typename enable_if<is_convertible<_Pp, pointer>::value>::type* = 0) _NOEXCEPT\n        : __m_iter_(__it.__m_iter_), __ptr_(__it.__ptr_) {}\n\n    _LIBCPP_INLINE_VISIBILITY reference operator*() const {return *__ptr_;}\n    _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return __ptr_;}\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator++()\n    {\n        if (++__ptr_ - *__m_iter_ == __block_size)\n        {\n            ++__m_iter_;\n            __ptr_ = *__m_iter_;\n        }\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator operator++(int)\n    {\n        __deque_iterator __tmp = *this;\n        ++(*this);\n        return __tmp;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator--()\n    {\n        if (__ptr_ == *__m_iter_)\n        {\n            --__m_iter_;\n            __ptr_ = *__m_iter_ + __block_size;\n        }\n        --__ptr_;\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator operator--(int)\n    {\n        __deque_iterator __tmp = *this;\n        --(*this);\n        return __tmp;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator+=(difference_type __n)\n    {\n        if (__n != 0)\n        {\n            __n += __ptr_ - *__m_iter_;\n            if (__n > 0)\n            {\n                __m_iter_ += __n / __block_size;\n                __ptr_ = *__m_iter_ + __n % __block_size;\n            }\n            else // (__n < 0)\n            {\n                difference_type __z = __block_size - 1 - __n;\n                __m_iter_ -= __z / __block_size;\n                __ptr_ = *__m_iter_ + (__block_size - 1 - __z % __block_size);\n            }\n        }\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator& operator-=(difference_type __n)\n    {\n        return *this += -__n;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator operator+(difference_type __n) const\n    {\n        __deque_iterator __t(*this);\n        __t += __n;\n        return __t;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator operator-(difference_type __n) const\n    {\n        __deque_iterator __t(*this);\n        __t -= __n;\n        return __t;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    friend __deque_iterator operator+(difference_type __n, const __deque_iterator& __it)\n        {return __it + __n;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    friend difference_type operator-(const __deque_iterator& __x, const __deque_iterator& __y)\n    {\n        if (__x != __y)\n            return (__x.__m_iter_ - __y.__m_iter_) * __block_size\n                 + (__x.__ptr_ - *__x.__m_iter_)\n                 - (__y.__ptr_ - *__y.__m_iter_);\n        return 0;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY reference operator[](difference_type __n) const\n        {return *(*this + __n);}\n\n    _LIBCPP_INLINE_VISIBILITY friend\n        bool operator==(const __deque_iterator& __x, const __deque_iterator& __y)\n        {return __x.__ptr_ == __y.__ptr_;}\n\n    _LIBCPP_INLINE_VISIBILITY friend\n        bool operator!=(const __deque_iterator& __x, const __deque_iterator& __y)\n        {return !(__x == __y);}\n\n    _LIBCPP_INLINE_VISIBILITY friend\n        bool operator<(const __deque_iterator& __x, const __deque_iterator& __y)\n        {return __x.__m_iter_ < __y.__m_iter_ ||\n               (__x.__m_iter_ == __y.__m_iter_ && __x.__ptr_ < __y.__ptr_);}\n\n    _LIBCPP_INLINE_VISIBILITY friend\n        bool operator>(const __deque_iterator& __x, const __deque_iterator& __y)\n        {return __y < __x;}\n\n    _LIBCPP_INLINE_VISIBILITY friend\n        bool operator<=(const __deque_iterator& __x, const __deque_iterator& __y)\n        {return !(__y < __x);}\n\n    _LIBCPP_INLINE_VISIBILITY friend\n        bool operator>=(const __deque_iterator& __x, const __deque_iterator& __y)\n        {return !(__x < __y);}\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY __deque_iterator(__map_iterator __m, pointer __p) _NOEXCEPT\n        : __m_iter_(__m), __ptr_(__p) {}\n\n    template <class _Tp, class _Ap> friend class __deque_base;\n    template <class _Tp, class _Ap> friend class _LIBCPP_TEMPLATE_VIS deque;\n    template <class _Vp, class _Pp, class _Rp, class _MP, class _Dp, _Dp>\n        friend class _LIBCPP_TEMPLATE_VIS __deque_iterator;\n\n    template <class _RAIter,\n              class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n    friend\n    __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\n    copy(_RAIter __f,\n         _RAIter __l,\n         __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n         typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);\n\n    template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n              class _OutputIterator>\n    friend\n    _OutputIterator\n    copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n         __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n         _OutputIterator __r);\n\n    template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n              class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n    friend\n    __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\n    copy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n         __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n         __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);\n\n    template <class _RAIter,\n              class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n    friend\n    __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\n    copy_backward(_RAIter __f,\n                  _RAIter __l,\n                  __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n                  typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);\n\n    template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n              class _OutputIterator>\n    friend\n    _OutputIterator\n    copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n                  __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n                  _OutputIterator __r);\n\n    template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n              class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n    friend\n    __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\n    copy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n                  __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n                  __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);\n\n    template <class _RAIter,\n              class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n    friend\n    __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\n    move(_RAIter __f,\n         _RAIter __l,\n         __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n         typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);\n\n    template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n              class _OutputIterator>\n    friend\n    _OutputIterator\n    move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n         __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n         _OutputIterator __r);\n\n    template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n              class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n    friend\n    __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\n    move(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n         __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n         __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);\n\n    template <class _RAIter,\n              class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n    friend\n    __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\n    move_backward(_RAIter __f,\n                  _RAIter __l,\n                  __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n                  typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*);\n\n    template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n              class _OutputIterator>\n    friend\n    _OutputIterator\n    move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n                  __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n                  _OutputIterator __r);\n\n    template <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n              class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n    friend\n    __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\n    move_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n                  __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n                  __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r);\n};\n\ntemplate <class _ValueType, class _Pointer, class _Reference, class _MapPointer,\n          class _DiffType, _DiffType _BlockSize>\nconst _DiffType __deque_iterator<_ValueType, _Pointer, _Reference, _MapPointer,\n                                 _DiffType, _BlockSize>::__block_size =\n    __deque_block_size<_ValueType, _DiffType>::value;\n\n// copy\n\ntemplate <class _RAIter,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\ncopy(_RAIter __f,\n     _RAIter __l,\n     __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n     typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)\n{\n    typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;\n    typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;\n    const difference_type __block_size = __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::__block_size;\n    while (__f != __l)\n    {\n        pointer __rb = __r.__ptr_;\n        pointer __re = *__r.__m_iter_ + __block_size;\n        difference_type __bs = __re - __rb;\n        difference_type __n = __l - __f;\n        _RAIter __m = __l;\n        if (__n > __bs)\n        {\n            __n = __bs;\n            __m = __f + __n;\n        }\n        _VSTD::copy(__f, __m, __rb);\n        __f = __m;\n        __r += __n;\n    }\n    return __r;\n}\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _OutputIterator>\n_OutputIterator\ncopy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n     __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n     _OutputIterator __r)\n{\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;\n    const difference_type __block_size = __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::__block_size;\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        pointer __fb = __f.__ptr_;\n        pointer __fe = *__f.__m_iter_ + __block_size;\n        difference_type __bs = __fe - __fb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __fe = __fb + __bs;\n        }\n        __r = _VSTD::copy(__fb, __fe, __r);\n        __n -= __bs;\n        __f += __bs;\n    }\n    return __r;\n}\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\ncopy(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n     __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n     __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)\n{\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;\n    const difference_type __block_size = __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::__block_size;\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        pointer __fb = __f.__ptr_;\n        pointer __fe = *__f.__m_iter_ + __block_size;\n        difference_type __bs = __fe - __fb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __fe = __fb + __bs;\n        }\n        __r = _VSTD::copy(__fb, __fe, __r);\n        __n -= __bs;\n        __f += __bs;\n    }\n    return __r;\n}\n\n// copy_backward\n\ntemplate <class _RAIter,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\ncopy_backward(_RAIter __f,\n              _RAIter __l,\n              __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n              typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)\n{\n    typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;\n    typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;\n    while (__f != __l)\n    {\n        __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __rp = _VSTD::prev(__r);\n        pointer __rb = *__rp.__m_iter_;\n        pointer __re = __rp.__ptr_ + 1;\n        difference_type __bs = __re - __rb;\n        difference_type __n = __l - __f;\n        _RAIter __m = __f;\n        if (__n > __bs)\n        {\n            __n = __bs;\n            __m = __l - __n;\n        }\n        _VSTD::copy_backward(__m, __l, __re);\n        __l = __m;\n        __r -= __n;\n    }\n    return __r;\n}\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _OutputIterator>\n_OutputIterator\ncopy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n              __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n              _OutputIterator __r)\n{\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        --__l;\n        pointer __lb = *__l.__m_iter_;\n        pointer __le = __l.__ptr_ + 1;\n        difference_type __bs = __le - __lb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __lb = __le - __bs;\n        }\n        __r = _VSTD::copy_backward(__lb, __le, __r);\n        __n -= __bs;\n        __l -= __bs - 1;\n    }\n    return __r;\n}\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\ncopy_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n              __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n              __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)\n{\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        --__l;\n        pointer __lb = *__l.__m_iter_;\n        pointer __le = __l.__ptr_ + 1;\n        difference_type __bs = __le - __lb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __lb = __le - __bs;\n        }\n        __r = _VSTD::copy_backward(__lb, __le, __r);\n        __n -= __bs;\n        __l -= __bs - 1;\n    }\n    return __r;\n}\n\n// move\n\ntemplate <class _RAIter,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\nmove(_RAIter __f,\n     _RAIter __l,\n     __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n     typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)\n{\n    typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;\n    typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;\n    const difference_type __block_size = __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::__block_size;\n    while (__f != __l)\n    {\n        pointer __rb = __r.__ptr_;\n        pointer __re = *__r.__m_iter_ + __block_size;\n        difference_type __bs = __re - __rb;\n        difference_type __n = __l - __f;\n        _RAIter __m = __l;\n        if (__n > __bs)\n        {\n            __n = __bs;\n            __m = __f + __n;\n        }\n        _VSTD::move(__f, __m, __rb);\n        __f = __m;\n        __r += __n;\n    }\n    return __r;\n}\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _OutputIterator>\n_OutputIterator\nmove(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n     __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n     _OutputIterator __r)\n{\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;\n    const difference_type __block_size = __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::__block_size;\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        pointer __fb = __f.__ptr_;\n        pointer __fe = *__f.__m_iter_ + __block_size;\n        difference_type __bs = __fe - __fb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __fe = __fb + __bs;\n        }\n        __r = _VSTD::move(__fb, __fe, __r);\n        __n -= __bs;\n        __f += __bs;\n    }\n    return __r;\n}\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\nmove(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n     __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n     __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)\n{\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;\n    const difference_type __block_size = __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::__block_size;\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        pointer __fb = __f.__ptr_;\n        pointer __fe = *__f.__m_iter_ + __block_size;\n        difference_type __bs = __fe - __fb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __fe = __fb + __bs;\n        }\n        __r = _VSTD::move(__fb, __fe, __r);\n        __n -= __bs;\n        __f += __bs;\n    }\n    return __r;\n}\n\n// move_backward\n\ntemplate <class _RAIter,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\nmove_backward(_RAIter __f,\n              _RAIter __l,\n              __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r,\n              typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)\n{\n    typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::difference_type difference_type;\n    typedef typename __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>::pointer pointer;\n    while (__f != __l)\n    {\n        __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __rp = _VSTD::prev(__r);\n        pointer __rb = *__rp.__m_iter_;\n        pointer __re = __rp.__ptr_ + 1;\n        difference_type __bs = __re - __rb;\n        difference_type __n = __l - __f;\n        _RAIter __m = __f;\n        if (__n > __bs)\n        {\n            __n = __bs;\n            __m = __l - __n;\n        }\n        _VSTD::move_backward(__m, __l, __re);\n        __l = __m;\n        __r -= __n;\n    }\n    return __r;\n}\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _OutputIterator>\n_OutputIterator\nmove_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n              __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n              _OutputIterator __r)\n{\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        --__l;\n        pointer __lb = *__l.__m_iter_;\n        pointer __le = __l.__ptr_ + 1;\n        difference_type __bs = __le - __lb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __lb = __le - __bs;\n        }\n        __r = _VSTD::move_backward(__lb, __le, __r);\n        __n -= __bs;\n        __l -= __bs - 1;\n    }\n    return __r;\n}\n\ntemplate <class _V1, class _P1, class _R1, class _M1, class _D1, _D1 _B1,\n          class _V2, class _P2, class _R2, class _M2, class _D2, _D2 _B2>\n__deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2>\nmove_backward(__deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __f,\n              __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1> __l,\n              __deque_iterator<_V2, _P2, _R2, _M2, _D2, _B2> __r)\n{\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::difference_type difference_type;\n    typedef typename __deque_iterator<_V1, _P1, _R1, _M1, _D1, _B1>::pointer pointer;\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        --__l;\n        pointer __lb = *__l.__m_iter_;\n        pointer __le = __l.__ptr_ + 1;\n        difference_type __bs = __le - __lb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __lb = __le - __bs;\n        }\n        __r = _VSTD::move_backward(__lb, __le, __r);\n        __n -= __bs;\n        __l -= __bs - 1;\n    }\n    return __r;\n}\n\ntemplate <bool>\nclass __deque_base_common\n{\nprotected:\n    _LIBCPP_NORETURN void __throw_length_error() const;\n    _LIBCPP_NORETURN void __throw_out_of_range() const;\n};\n\ntemplate <bool __b>\nvoid\n__deque_base_common<__b>::__throw_length_error() const\n{\n    _VSTD::__throw_length_error(\"deque\");\n}\n\ntemplate <bool __b>\nvoid\n__deque_base_common<__b>::__throw_out_of_range() const\n{\n    _VSTD::__throw_out_of_range(\"deque\");\n}\n\ntemplate <class _Tp, class _Allocator>\nclass __deque_base\n    : protected __deque_base_common<true>\n{\n    __deque_base(const __deque_base& __c);\n    __deque_base& operator=(const __deque_base& __c);\nprotected:\n    typedef _Tp                                      value_type;\n    typedef _Allocator                               allocator_type;\n    typedef allocator_traits<allocator_type>         __alloc_traits;\n    typedef value_type&                              reference;\n    typedef const value_type&                        const_reference;\n    typedef typename __alloc_traits::size_type       size_type;\n    typedef typename __alloc_traits::difference_type difference_type;\n    typedef typename __alloc_traits::pointer         pointer;\n    typedef typename __alloc_traits::const_pointer   const_pointer;\n\n    static const difference_type __block_size;\n\n    typedef typename __rebind_alloc_helper<__alloc_traits, pointer>::type __pointer_allocator;\n    typedef allocator_traits<__pointer_allocator>        __map_traits;\n    typedef typename __map_traits::pointer               __map_pointer;\n    typedef typename __rebind_alloc_helper<__alloc_traits, const_pointer>::type __const_pointer_allocator;\n    typedef typename allocator_traits<__const_pointer_allocator>::const_pointer __map_const_pointer;\n    typedef __split_buffer<pointer, __pointer_allocator> __map;\n\n    typedef __deque_iterator<value_type, pointer, reference, __map_pointer,\n                             difference_type>    iterator;\n    typedef __deque_iterator<value_type, const_pointer, const_reference, __map_const_pointer,\n                             difference_type>    const_iterator;\n\n    __map __map_;\n    size_type __start_;\n    __compressed_pair<size_type, allocator_type> __size_;\n\n    iterator       begin() _NOEXCEPT;\n    const_iterator begin() const _NOEXCEPT;\n    iterator       end() _NOEXCEPT;\n    const_iterator end() const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY size_type&            size()          {return __size_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n    const size_type& size() const _NOEXCEPT {return __size_.first();}\n    _LIBCPP_INLINE_VISIBILITY allocator_type&       __alloc()       {return __size_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const allocator_type& __alloc() const _NOEXCEPT {return __size_.second();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __deque_base()\n        _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __deque_base(const allocator_type& __a);\npublic:\n    ~__deque_base();\n\n#ifndef _LIBCPP_CXX03_LANG\n    __deque_base(__deque_base&& __c)\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);\n    __deque_base(__deque_base&& __c, const allocator_type& __a);\n#endif  // _LIBCPP_CXX03_LANG\n\n    void swap(__deque_base& __c)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT;\n#else\n        _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || \n                    __is_nothrow_swappable<allocator_type>::value);\n#endif\nprotected:\n    void clear() _NOEXCEPT;\n\n    bool __invariants() const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign(__deque_base& __c)\n        _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&\n                   is_nothrow_move_assignable<allocator_type>::value)\n    {\n        __map_ = _VSTD::move(__c.__map_);\n        __start_ = __c.__start_;\n        size() = __c.size();\n        __move_assign_alloc(__c);\n        __c.__start_ = __c.size() = 0;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__deque_base& __c)\n        _NOEXCEPT_(!__alloc_traits::propagate_on_container_move_assignment::value ||\n                   is_nothrow_move_assignable<allocator_type>::value)\n        {__move_assign_alloc(__c, integral_constant<bool,\n                      __alloc_traits::propagate_on_container_move_assignment::value>());}\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__deque_base& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n        {\n            __alloc() = _VSTD::move(__c.__alloc());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__deque_base&, false_type) _NOEXCEPT\n        {}\n};\n\ntemplate <class _Tp, class _Allocator>\nconst typename __deque_base<_Tp, _Allocator>::difference_type\n    __deque_base<_Tp, _Allocator>::__block_size =\n        __deque_block_size<value_type, difference_type>::value;\n\ntemplate <class _Tp, class _Allocator>\nbool\n__deque_base<_Tp, _Allocator>::__invariants() const\n{\n    if (!__map_.__invariants())\n        return false;\n    if (__map_.size() >= size_type(-1) / __block_size)\n        return false;\n    for (typename __map::const_iterator __i = __map_.begin(), __e = __map_.end();\n         __i != __e; ++__i)\n        if (*__i == nullptr)\n            return false;\n    if (__map_.size() != 0)\n    {\n        if (size() >= __map_.size() * __block_size)\n            return false;\n        if (__start_ >= __map_.size() * __block_size - size())\n            return false;\n    }\n    else\n    {\n        if (size() != 0)\n            return false;\n        if (__start_ != 0)\n            return false;\n    }\n    return true;\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename __deque_base<_Tp, _Allocator>::iterator\n__deque_base<_Tp, _Allocator>::begin() _NOEXCEPT\n{\n    __map_pointer __mp = __map_.begin() + __start_ / __block_size;\n    return iterator(__mp, __map_.empty() ? 0 : *__mp + __start_ % __block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename __deque_base<_Tp, _Allocator>::const_iterator\n__deque_base<_Tp, _Allocator>::begin() const _NOEXCEPT\n{\n    __map_const_pointer __mp = static_cast<__map_const_pointer>(__map_.begin() + __start_ / __block_size);\n    return const_iterator(__mp, __map_.empty() ? 0 : *__mp + __start_ % __block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename __deque_base<_Tp, _Allocator>::iterator\n__deque_base<_Tp, _Allocator>::end() _NOEXCEPT\n{\n    size_type __p = size() + __start_;\n    __map_pointer __mp = __map_.begin() + __p / __block_size;\n    return iterator(__mp, __map_.empty() ? 0 : *__mp + __p % __block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename __deque_base<_Tp, _Allocator>::const_iterator\n__deque_base<_Tp, _Allocator>::end() const _NOEXCEPT\n{\n    size_type __p = size() + __start_;\n    __map_const_pointer __mp = static_cast<__map_const_pointer>(__map_.begin() + __p / __block_size);\n    return const_iterator(__mp, __map_.empty() ? 0 : *__mp + __p % __block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\n__deque_base<_Tp, _Allocator>::__deque_base()\n    _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)\n    : __start_(0), __size_(0) {}\n\ntemplate <class _Tp, class _Allocator>\ninline\n__deque_base<_Tp, _Allocator>::__deque_base(const allocator_type& __a)\n    : __map_(__pointer_allocator(__a)), __start_(0), __size_(0, __a) {}\n\ntemplate <class _Tp, class _Allocator>\n__deque_base<_Tp, _Allocator>::~__deque_base()\n{\n    clear();\n    typename __map::iterator __i = __map_.begin();\n    typename __map::iterator __e = __map_.end();\n    for (; __i != __e; ++__i)\n        __alloc_traits::deallocate(__alloc(), *__i, __block_size);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\n__deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c)\n    _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)\n    : __map_(_VSTD::move(__c.__map_)),\n      __start_(_VSTD::move(__c.__start_)),\n      __size_(_VSTD::move(__c.__size_))\n{\n    __c.__start_ = 0;\n    __c.size() = 0;\n}\n\ntemplate <class _Tp, class _Allocator>\n__deque_base<_Tp, _Allocator>::__deque_base(__deque_base&& __c, const allocator_type& __a)\n    : __map_(_VSTD::move(__c.__map_), __pointer_allocator(__a)),\n      __start_(_VSTD::move(__c.__start_)),\n      __size_(_VSTD::move(__c.size()), __a)\n{\n    if (__a == __c.__alloc())\n    {\n        __c.__start_ = 0;\n        __c.size() = 0;\n    }\n    else\n    {\n        __map_.clear();\n        __start_ = 0;\n        size() = 0;\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\nvoid\n__deque_base<_Tp, _Allocator>::swap(__deque_base& __c)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT\n#else\n        _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || \n                    __is_nothrow_swappable<allocator_type>::value)\n#endif\n{\n    __map_.swap(__c.__map_);\n    _VSTD::swap(__start_, __c.__start_);\n    _VSTD::swap(size(), __c.size());\n    __swap_allocator(__alloc(), __c.__alloc());\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\n__deque_base<_Tp, _Allocator>::clear() _NOEXCEPT\n{\n    allocator_type& __a = __alloc();\n    for (iterator __i = begin(), __e = end(); __i != __e; ++__i)\n        __alloc_traits::destroy(__a, _VSTD::addressof(*__i));\n    size() = 0;\n    while (__map_.size() > 2)\n    {\n        __alloc_traits::deallocate(__a, __map_.front(), __block_size);\n        __map_.pop_front();\n    }\n    switch (__map_.size())\n    {\n    case 1:\n        __start_ = __block_size / 2;\n        break;\n    case 2:\n        __start_ = __block_size;\n        break;\n    }\n}\n\ntemplate <class _Tp, class _Allocator /*= allocator<_Tp>*/>\nclass _LIBCPP_TEMPLATE_VIS deque\n    : private __deque_base<_Tp, _Allocator>\n{\npublic:\n    // types:\n\n    typedef _Tp value_type;\n    typedef _Allocator allocator_type;\n\n    static_assert((is_same<typename allocator_type::value_type, value_type>::value),\n                  \"Allocator::value_type must be same type as value_type\");\n\n    typedef __deque_base<value_type, allocator_type> __base;\n\n    typedef typename __base::__alloc_traits        __alloc_traits;\n    typedef typename __base::reference             reference;\n    typedef typename __base::const_reference       const_reference;\n    typedef typename __base::iterator              iterator;\n    typedef typename __base::const_iterator        const_iterator;\n    typedef typename __base::size_type             size_type;\n    typedef typename __base::difference_type       difference_type;\n\n    typedef typename __base::pointer               pointer;\n    typedef typename __base::const_pointer         const_pointer;\n    typedef _VSTD::reverse_iterator<iterator>       reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;\n\n    // construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY\n    deque()\n        _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)\n        {}\n    _LIBCPP_INLINE_VISIBILITY explicit deque(const allocator_type& __a) : __base(__a) {}\n    explicit deque(size_type __n);\n#if _LIBCPP_STD_VER > 11\n    explicit deque(size_type __n, const _Allocator& __a);\n#endif\n    deque(size_type __n, const value_type& __v);\n    deque(size_type __n, const value_type& __v, const allocator_type& __a);\n    template <class _InputIter>\n        deque(_InputIter __f, _InputIter __l,\n              typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0);\n    template <class _InputIter>\n        deque(_InputIter __f, _InputIter __l, const allocator_type& __a,\n              typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0);\n    deque(const deque& __c);\n    deque(const deque& __c, const allocator_type& __a);\n\n    deque& operator=(const deque& __c);\n\n#ifndef _LIBCPP_CXX03_LANG\n    deque(initializer_list<value_type> __il);\n    deque(initializer_list<value_type> __il, const allocator_type& __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    deque& operator=(initializer_list<value_type> __il) {assign(__il); return *this;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    deque(deque&& __c) _NOEXCEPT_(is_nothrow_move_constructible<__base>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    deque(deque&& __c, const allocator_type& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    deque& operator=(deque&& __c)\n        _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&\n                   is_nothrow_move_assignable<allocator_type>::value);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void assign(initializer_list<value_type> __il) {assign(__il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    template <class _InputIter>\n        void assign(_InputIter __f, _InputIter __l,\n                    typename enable_if<__is_input_iterator<_InputIter>::value &&\n                                      !__is_random_access_iterator<_InputIter>::value>::type* = 0);\n    template <class _RAIter>\n        void assign(_RAIter __f, _RAIter __l,\n                    typename enable_if<__is_random_access_iterator<_RAIter>::value>::type* = 0);\n    void assign(size_type __n, const value_type& __v);\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT;\n\n    // iterators:\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin() _NOEXCEPT       {return __base::begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT {return __base::begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end() _NOEXCEPT         {return __base::end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()   const _NOEXCEPT {return __base::end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reverse_iterator       rbegin() _NOEXCEPT\n        {return       reverse_iterator(__base::end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin() const _NOEXCEPT\n        {return const_reverse_iterator(__base::end());}\n    _LIBCPP_INLINE_VISIBILITY\n    reverse_iterator       rend() _NOEXCEPT\n        {return       reverse_iterator(__base::begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend()   const _NOEXCEPT\n        {return const_reverse_iterator(__base::begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator         cbegin()  const _NOEXCEPT\n        {return __base::begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator         cend()    const _NOEXCEPT\n        {return __base::end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT\n        {return const_reverse_iterator(__base::end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend()   const _NOEXCEPT\n        {return const_reverse_iterator(__base::begin());}\n\n    // capacity:\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT {return __base::size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT\n        {return std::min<size_type>(\n            __alloc_traits::max_size(__base::__alloc()),\n            numeric_limits<difference_type>::max());}\n    void resize(size_type __n);\n    void resize(size_type __n, const value_type& __v);\n    void shrink_to_fit() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT {return __base::size() == 0;}\n\n    // element access:\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator[](size_type __i);\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference operator[](size_type __i) const;\n    _LIBCPP_INLINE_VISIBILITY\n    reference at(size_type __i);\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference at(size_type __i) const;\n    _LIBCPP_INLINE_VISIBILITY\n    reference front();\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference front() const;\n    _LIBCPP_INLINE_VISIBILITY\n    reference back();\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference back() const;\n\n    // 23.2.2.3 modifiers:\n    void push_front(const value_type& __v);\n    void push_back(const value_type& __v);\n#ifndef _LIBCPP_CXX03_LANG\n#if _LIBCPP_STD_VER > 14\n    template <class... _Args> reference emplace_front(_Args&&... __args);\n    template <class... _Args> reference emplace_back (_Args&&... __args);\n#else\n    template <class... _Args> void      emplace_front(_Args&&... __args);\n    template <class... _Args> void      emplace_back (_Args&&... __args);\n#endif\n    template <class... _Args> iterator emplace(const_iterator __p, _Args&&... __args);\n\n    void push_front(value_type&& __v);\n    void push_back(value_type&& __v);\n    iterator insert(const_iterator __p, value_type&& __v);\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, initializer_list<value_type> __il)\n        {return insert(__p, __il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    iterator insert(const_iterator __p, const value_type& __v);\n    iterator insert(const_iterator __p, size_type __n, const value_type& __v);\n    template <class _InputIter>\n        iterator insert(const_iterator __p, _InputIter __f, _InputIter __l,\n                         typename enable_if<__is_input_iterator<_InputIter>::value\n                                         &&!__is_forward_iterator<_InputIter>::value>::type* = 0);\n    template <class _ForwardIterator>\n        iterator insert(const_iterator __p, _ForwardIterator __f, _ForwardIterator __l,\n                               typename enable_if<__is_forward_iterator<_ForwardIterator>::value\n                                         &&!__is_bidirectional_iterator<_ForwardIterator>::value>::type* = 0);\n    template <class _BiIter>\n        iterator insert(const_iterator __p, _BiIter __f, _BiIter __l,\n                         typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type* = 0);\n\n    void pop_front();\n    void pop_back();\n    iterator erase(const_iterator __p);\n    iterator erase(const_iterator __f, const_iterator __l);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(deque& __c)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT;\n#else\n        _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||\n                   __is_nothrow_swappable<allocator_type>::value);\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool __invariants() const {return __base::__invariants();}\nprivate:\n    typedef typename __base::__map_const_pointer __map_const_pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    static size_type __recommend_blocks(size_type __n)\n    {\n        return __n / __base::__block_size + (__n % __base::__block_size != 0);\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    size_type __capacity() const\n    {\n        return __base::__map_.size() == 0 ? 0 : __base::__map_.size() * __base::__block_size - 1;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    size_type __front_spare() const\n    {\n        return __base::__start_;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    size_type __back_spare() const\n    {\n        return __capacity() - (__base::__start_ + __base::size());\n    }\n\n    template <class _InpIter>\n        void __append(_InpIter __f, _InpIter __l,\n                 typename enable_if<__is_input_iterator<_InpIter>::value &&\n                                   !__is_forward_iterator<_InpIter>::value>::type* = 0);\n    template <class _ForIter>\n        void __append(_ForIter __f, _ForIter __l,\n                      typename enable_if<__is_forward_iterator<_ForIter>::value>::type* = 0);\n    void __append(size_type __n);\n    void __append(size_type __n, const value_type& __v);\n    void __erase_to_end(const_iterator __f);\n    void __add_front_capacity();\n    void __add_front_capacity(size_type __n);\n    void __add_back_capacity();\n    void __add_back_capacity(size_type __n);\n    iterator __move_and_check(iterator __f, iterator __l, iterator __r,\n                              const_pointer& __vt);\n    iterator __move_backward_and_check(iterator __f, iterator __l, iterator __r,\n                                       const_pointer& __vt);\n    void __move_construct_and_check(iterator __f, iterator __l,\n                                    iterator __r, const_pointer& __vt);\n    void __move_construct_backward_and_check(iterator __f, iterator __l,\n                                             iterator __r, const_pointer& __vt);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const deque& __c)\n        {__copy_assign_alloc(__c, integral_constant<bool,\n                      __alloc_traits::propagate_on_container_copy_assignment::value>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const deque& __c, true_type)\n        {\n            if (__base::__alloc() != __c.__alloc())\n            {\n                clear();\n                shrink_to_fit();\n            }\n            __base::__alloc() = __c.__alloc();\n            __base::__map_.__alloc() = __c.__map_.__alloc();\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const deque&, false_type)\n        {}\n\n    void __move_assign(deque& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);\n    void __move_assign(deque& __c, false_type);\n};\n\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>::deque(size_type __n)\n{\n    if (__n > 0)\n        __append(__n);\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>::deque(size_type __n, const _Allocator& __a)\n    : __base(__a)\n{\n    if (__n > 0)\n        __append(__n);\n}\n#endif\n\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v)\n{\n    if (__n > 0)\n        __append(__n, __v);\n}\n\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>::deque(size_type __n, const value_type& __v, const allocator_type& __a)\n    : __base(__a)\n{\n    if (__n > 0)\n        __append(__n, __v);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIter>\ndeque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l,\n              typename enable_if<__is_input_iterator<_InputIter>::value>::type*)\n{\n    __append(__f, __l);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIter>\ndeque<_Tp, _Allocator>::deque(_InputIter __f, _InputIter __l, const allocator_type& __a,\n              typename enable_if<__is_input_iterator<_InputIter>::value>::type*)\n    : __base(__a)\n{\n    __append(__f, __l);\n}\n\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>::deque(const deque& __c)\n    : __base(__alloc_traits::select_on_container_copy_construction(__c.__alloc()))\n{\n    __append(__c.begin(), __c.end());\n}\n\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>::deque(const deque& __c, const allocator_type& __a)\n    : __base(__a)\n{\n    __append(__c.begin(), __c.end());\n}\n\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>&\ndeque<_Tp, _Allocator>::operator=(const deque& __c)\n{\n    if (this != &__c)\n    {\n        __copy_assign_alloc(__c);\n        assign(__c.begin(), __c.end());\n    }\n    return *this;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>::deque(initializer_list<value_type> __il)\n{\n    __append(__il.begin(), __il.end());\n}\n\ntemplate <class _Tp, class _Allocator>\ndeque<_Tp, _Allocator>::deque(initializer_list<value_type> __il, const allocator_type& __a)\n    : __base(__a)\n{\n    __append(__il.begin(), __il.end());\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ndeque<_Tp, _Allocator>::deque(deque&& __c)\n    _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)\n    : __base(_VSTD::move(__c))\n{\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ndeque<_Tp, _Allocator>::deque(deque&& __c, const allocator_type& __a)\n    : __base(_VSTD::move(__c), __a)\n{\n    if (__a != __c.__alloc())\n    {\n        typedef move_iterator<iterator> _Ip;\n        assign(_Ip(__c.begin()), _Ip(__c.end()));\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ndeque<_Tp, _Allocator>&\ndeque<_Tp, _Allocator>::operator=(deque&& __c)\n        _NOEXCEPT_(__alloc_traits::propagate_on_container_move_assignment::value &&\n                   is_nothrow_move_assignable<allocator_type>::value)\n{\n    __move_assign(__c, integral_constant<bool,\n          __alloc_traits::propagate_on_container_move_assignment::value>());\n    return *this;\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__move_assign(deque& __c, false_type)\n{\n    if (__base::__alloc() != __c.__alloc())\n    {\n        typedef move_iterator<iterator> _Ip;\n        assign(_Ip(__c.begin()), _Ip(__c.end()));\n    }\n    else\n        __move_assign(__c, true_type());\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__move_assign(deque& __c, true_type)\n    _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n{\n    clear();\n    shrink_to_fit();\n    __base::__move_assign(__c);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIter>\nvoid\ndeque<_Tp, _Allocator>::assign(_InputIter __f, _InputIter __l,\n                               typename enable_if<__is_input_iterator<_InputIter>::value &&\n                                                 !__is_random_access_iterator<_InputIter>::value>::type*)\n{\n    iterator __i = __base::begin();\n    iterator __e = __base::end();\n    for (; __f != __l && __i != __e; ++__f, (void) ++__i)\n        *__i = *__f;\n    if (__f != __l)\n        __append(__f, __l);\n    else\n        __erase_to_end(__i);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _RAIter>\nvoid\ndeque<_Tp, _Allocator>::assign(_RAIter __f, _RAIter __l,\n                               typename enable_if<__is_random_access_iterator<_RAIter>::value>::type*)\n{\n    if (static_cast<size_type>(__l - __f) > __base::size())\n    {\n        _RAIter __m = __f + __base::size();\n        _VSTD::copy(__f, __m, __base::begin());\n        __append(__m, __l);\n    }\n    else\n        __erase_to_end(_VSTD::copy(__f, __l, __base::begin()));\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::assign(size_type __n, const value_type& __v)\n{\n    if (__n > __base::size())\n    {\n        _VSTD::fill_n(__base::begin(), __base::size(), __v);\n        __n -= __base::size();\n        __append(__n, __v);\n    }\n    else\n        __erase_to_end(_VSTD::fill_n(__base::begin(), __n, __v));\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\n_Allocator\ndeque<_Tp, _Allocator>::get_allocator() const _NOEXCEPT\n{\n    return __base::__alloc();\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::resize(size_type __n)\n{\n    if (__n > __base::size())\n        __append(__n - __base::size());\n    else if (__n < __base::size())\n        __erase_to_end(__base::begin() + __n);\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::resize(size_type __n, const value_type& __v)\n{\n    if (__n > __base::size())\n        __append(__n - __base::size(), __v);\n    else if (__n < __base::size())\n        __erase_to_end(__base::begin() + __n);\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT\n{\n    allocator_type& __a = __base::__alloc();\n    if (empty())\n    {\n        while (__base::__map_.size() > 0)\n        {\n            __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);\n            __base::__map_.pop_back();\n        }\n        __base::__start_ = 0;\n    }\n    else\n    {\n        if (__front_spare() >= __base::__block_size)\n        {\n            __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);\n            __base::__map_.pop_front();\n            __base::__start_ -= __base::__block_size;\n        }\n        if (__back_spare() >= __base::__block_size)\n        {\n            __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);\n            __base::__map_.pop_back();\n        }\n    }\n    __base::__map_.shrink_to_fit();\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ntypename deque<_Tp, _Allocator>::reference\ndeque<_Tp, _Allocator>::operator[](size_type __i)\n{\n    size_type __p = __base::__start_ + __i;\n    return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ntypename deque<_Tp, _Allocator>::const_reference\ndeque<_Tp, _Allocator>::operator[](size_type __i) const\n{\n    size_type __p = __base::__start_ + __i;\n    return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ntypename deque<_Tp, _Allocator>::reference\ndeque<_Tp, _Allocator>::at(size_type __i)\n{\n    if (__i >= __base::size())\n        __base::__throw_out_of_range();\n    size_type __p = __base::__start_ + __i;\n    return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ntypename deque<_Tp, _Allocator>::const_reference\ndeque<_Tp, _Allocator>::at(size_type __i) const\n{\n    if (__i >= __base::size())\n        __base::__throw_out_of_range();\n    size_type __p = __base::__start_ + __i;\n    return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ntypename deque<_Tp, _Allocator>::reference\ndeque<_Tp, _Allocator>::front()\n{\n    return *(*(__base::__map_.begin() + __base::__start_ / __base::__block_size)\n                                      + __base::__start_ % __base::__block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ntypename deque<_Tp, _Allocator>::const_reference\ndeque<_Tp, _Allocator>::front() const\n{\n    return *(*(__base::__map_.begin() + __base::__start_ / __base::__block_size)\n                                      + __base::__start_ % __base::__block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ntypename deque<_Tp, _Allocator>::reference\ndeque<_Tp, _Allocator>::back()\n{\n    size_type __p = __base::size() + __base::__start_ - 1;\n    return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\ntypename deque<_Tp, _Allocator>::const_reference\ndeque<_Tp, _Allocator>::back() const\n{\n    size_type __p = __base::size() + __base::__start_ - 1;\n    return *(*(__base::__map_.begin() + __p / __base::__block_size) + __p % __base::__block_size);\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::push_back(const value_type& __v)\n{\n    allocator_type& __a = __base::__alloc();\n    if (__back_spare() == 0)\n        __add_back_capacity();\n    // __back_spare() >= 1\n    __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), __v);\n    ++__base::size();\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::push_front(const value_type& __v)\n{\n    allocator_type& __a = __base::__alloc();\n    if (__front_spare() == 0)\n        __add_front_capacity();\n    // __front_spare() >= 1\n    __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), __v);\n    --__base::__start_;\n    ++__base::size();\n}\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::push_back(value_type&& __v)\n{\n    allocator_type& __a = __base::__alloc();\n    if (__back_spare() == 0)\n        __add_back_capacity();\n    // __back_spare() >= 1\n    __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::move(__v));\n    ++__base::size();\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class... _Args>\n#if _LIBCPP_STD_VER > 14\ntypename deque<_Tp, _Allocator>::reference\n#else\nvoid\n#endif\ndeque<_Tp, _Allocator>::emplace_back(_Args&&... __args)\n{\n    allocator_type& __a = __base::__alloc();\n    if (__back_spare() == 0)\n        __add_back_capacity();\n    // __back_spare() >= 1\n    __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()),\n                              _VSTD::forward<_Args>(__args)...);\n    ++__base::size();\n#if _LIBCPP_STD_VER > 14\n    return *--__base::end();\n#endif\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::push_front(value_type&& __v)\n{\n    allocator_type& __a = __base::__alloc();\n    if (__front_spare() == 0)\n        __add_front_capacity();\n    // __front_spare() >= 1\n    __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::move(__v));\n    --__base::__start_;\n    ++__base::size();\n}\n\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class... _Args>\n#if _LIBCPP_STD_VER > 14\ntypename deque<_Tp, _Allocator>::reference\n#else\nvoid\n#endif\ndeque<_Tp, _Allocator>::emplace_front(_Args&&... __args)\n{\n    allocator_type& __a = __base::__alloc();\n    if (__front_spare() == 0)\n        __add_front_capacity();\n    // __front_spare() >= 1\n    __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...);\n    --__base::__start_;\n    ++__base::size();\n#if _LIBCPP_STD_VER > 14\n    return *__base::begin();\n#endif\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::insert(const_iterator __p, value_type&& __v)\n{\n    size_type __pos = __p - __base::begin();\n    size_type __to_end = __base::size() - __pos;\n    allocator_type& __a = __base::__alloc();\n    if (__pos < __to_end)\n    {   // insert by shifting things backward\n        if (__front_spare() == 0)\n            __add_front_capacity();\n        // __front_spare() >= 1\n        if (__pos == 0)\n        {\n            __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::move(__v));\n            --__base::__start_;\n            ++__base::size();\n        }\n        else\n        {\n            iterator __b = __base::begin();\n            iterator __bm1 = _VSTD::prev(__b);\n            __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));\n            --__base::__start_;\n            ++__base::size();\n            if (__pos > 1)\n                __b = _VSTD::move(_VSTD::next(__b), __b + __pos, __b);\n            *__b = _VSTD::move(__v);\n        }\n    }\n    else\n    {   // insert by shifting things forward\n        if (__back_spare() == 0)\n            __add_back_capacity();\n        // __back_capacity >= 1\n        size_type __de = __base::size() - __pos;\n        if (__de == 0)\n        {\n            __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::move(__v));\n            ++__base::size();\n        }\n        else\n        {\n            iterator __e = __base::end();\n            iterator __em1 = _VSTD::prev(__e);\n            __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));\n            ++__base::size();\n            if (__de > 1)\n                __e = _VSTD::move_backward(__e - __de, __em1, __e);\n            *--__e = _VSTD::move(__v);\n        }\n    }\n    return __base::begin() + __pos;\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class... _Args>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::emplace(const_iterator __p, _Args&&... __args)\n{\n    size_type __pos = __p - __base::begin();\n    size_type __to_end = __base::size() - __pos;\n    allocator_type& __a = __base::__alloc();\n    if (__pos < __to_end)\n    {   // insert by shifting things backward\n        if (__front_spare() == 0)\n            __add_front_capacity();\n        // __front_spare() >= 1\n        if (__pos == 0)\n        {\n            __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), _VSTD::forward<_Args>(__args)...);\n            --__base::__start_;\n            ++__base::size();\n        }\n        else\n        {\n            __temp_value<value_type, _Allocator> __tmp(this->__alloc(), _VSTD::forward<_Args>(__args)...);\n            iterator __b = __base::begin();\n            iterator __bm1 = _VSTD::prev(__b);\n            __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));\n            --__base::__start_;\n            ++__base::size();\n            if (__pos > 1)\n                __b = _VSTD::move(_VSTD::next(__b), __b + __pos, __b);\n            *__b = _VSTD::move(__tmp.get());\n        }\n    }\n    else\n    {   // insert by shifting things forward\n        if (__back_spare() == 0)\n            __add_back_capacity();\n        // __back_capacity >= 1\n        size_type __de = __base::size() - __pos;\n        if (__de == 0)\n        {\n            __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), _VSTD::forward<_Args>(__args)...);\n            ++__base::size();\n        }\n        else\n        {\n            __temp_value<value_type, _Allocator> __tmp(this->__alloc(), _VSTD::forward<_Args>(__args)...);\n            iterator __e = __base::end();\n            iterator __em1 = _VSTD::prev(__e);\n            __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));\n            ++__base::size();\n            if (__de > 1)\n                __e = _VSTD::move_backward(__e - __de, __em1, __e);\n            *--__e = _VSTD::move(__tmp.get());\n        }\n    }\n    return __base::begin() + __pos;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n\ntemplate <class _Tp, class _Allocator>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::insert(const_iterator __p, const value_type& __v)\n{\n    size_type __pos = __p - __base::begin();\n    size_type __to_end = __base::size() - __pos;\n    allocator_type& __a = __base::__alloc();\n    if (__pos < __to_end)\n    {   // insert by shifting things backward\n        if (__front_spare() == 0)\n            __add_front_capacity();\n        // __front_spare() >= 1\n        if (__pos == 0)\n        {\n            __alloc_traits::construct(__a, _VSTD::addressof(*--__base::begin()), __v);\n            --__base::__start_;\n            ++__base::size();\n        }\n        else\n        {\n            const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);\n            iterator __b = __base::begin();\n            iterator __bm1 = _VSTD::prev(__b);\n            if (__vt == pointer_traits<const_pointer>::pointer_to(*__b))\n                __vt = pointer_traits<const_pointer>::pointer_to(*__bm1);\n            __alloc_traits::construct(__a, _VSTD::addressof(*__bm1), _VSTD::move(*__b));\n            --__base::__start_;\n            ++__base::size();\n            if (__pos > 1)\n                __b = __move_and_check(_VSTD::next(__b), __b + __pos, __b, __vt);\n            *__b = *__vt;\n        }\n    }\n    else\n    {   // insert by shifting things forward\n        if (__back_spare() == 0)\n            __add_back_capacity();\n        // __back_capacity >= 1\n        size_type __de = __base::size() - __pos;\n        if (__de == 0)\n        {\n            __alloc_traits::construct(__a, _VSTD::addressof(*__base::end()), __v);\n            ++__base::size();\n        }\n        else\n        {\n            const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);\n            iterator __e = __base::end();\n            iterator __em1 = _VSTD::prev(__e);\n            if (__vt == pointer_traits<const_pointer>::pointer_to(*__em1))\n                __vt = pointer_traits<const_pointer>::pointer_to(*__e);\n            __alloc_traits::construct(__a, _VSTD::addressof(*__e), _VSTD::move(*__em1));\n            ++__base::size();\n            if (__de > 1)\n                __e = __move_backward_and_check(__e - __de, __em1, __e, __vt);\n            *--__e = *__vt;\n        }\n    }\n    return __base::begin() + __pos;\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::insert(const_iterator __p, size_type __n, const value_type& __v)\n{\n    size_type __pos = __p - __base::begin();\n    size_type __to_end = __base::size() - __pos;\n    allocator_type& __a = __base::__alloc();\n    if (__pos < __to_end)\n    {   // insert by shifting things backward\n        if (__n > __front_spare())\n            __add_front_capacity(__n - __front_spare());\n        // __n <= __front_spare()\n        iterator __old_begin = __base::begin();\n        iterator __i = __old_begin;\n        if (__n > __pos)\n        {\n            for (size_type __m = __n - __pos; __m; --__m, --__base::__start_, ++__base::size())\n                __alloc_traits::construct(__a, _VSTD::addressof(*--__i), __v);\n            __n = __pos;\n        }\n        if (__n > 0)\n        {\n            const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);\n            iterator __obn = __old_begin + __n;\n            __move_construct_backward_and_check(__old_begin, __obn, __i, __vt);\n            if (__n < __pos)\n                __old_begin = __move_and_check(__obn, __old_begin + __pos, __old_begin, __vt);\n            _VSTD::fill_n(__old_begin, __n, *__vt);\n        }\n    }\n    else\n    {   // insert by shifting things forward\n        size_type __back_capacity = __back_spare();\n        if (__n > __back_capacity)\n            __add_back_capacity(__n - __back_capacity);\n        // __n <= __back_capacity\n        iterator __old_end = __base::end();\n        iterator __i = __old_end;\n        size_type __de = __base::size() - __pos;\n        if (__n > __de)\n        {\n            for (size_type __m = __n - __de; __m; --__m, ++__i, ++__base::size())\n                __alloc_traits::construct(__a, _VSTD::addressof(*__i), __v);\n            __n = __de;\n        }\n        if (__n > 0)\n        {\n            const_pointer __vt = pointer_traits<const_pointer>::pointer_to(__v);\n            iterator __oen = __old_end - __n;\n            __move_construct_and_check(__oen, __old_end, __i, __vt);\n            if (__n < __de)\n                __old_end = __move_backward_and_check(__old_end - __de, __oen, __old_end, __vt);\n            _VSTD::fill_n(__old_end - __n, __n, *__vt);\n        }\n    }\n    return __base::begin() + __pos;\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIter>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::insert(const_iterator __p, _InputIter __f, _InputIter __l,\n                               typename enable_if<__is_input_iterator<_InputIter>::value\n                                               &&!__is_forward_iterator<_InputIter>::value>::type*)\n{\n    __split_buffer<value_type, allocator_type&> __buf(__base::__alloc());\n    __buf.__construct_at_end(__f, __l);\n    typedef typename __split_buffer<value_type, allocator_type&>::iterator __bi;\n    return insert(__p, move_iterator<__bi>(__buf.begin()), move_iterator<__bi>(__buf.end()));\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _ForwardIterator>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::insert(const_iterator __p, _ForwardIterator __f, _ForwardIterator __l,\n                               typename enable_if<__is_forward_iterator<_ForwardIterator>::value\n                                               &&!__is_bidirectional_iterator<_ForwardIterator>::value>::type*)\n{\n    size_type __n = _VSTD::distance(__f, __l);\n    __split_buffer<value_type, allocator_type&> __buf(__n, 0, __base::__alloc());\n    __buf.__construct_at_end(__f, __l);\n    typedef typename __split_buffer<value_type, allocator_type&>::iterator __fwd;\n    return insert(__p, move_iterator<__fwd>(__buf.begin()), move_iterator<__fwd>(__buf.end()));\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _BiIter>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::insert(const_iterator __p, _BiIter __f, _BiIter __l,\n                               typename enable_if<__is_bidirectional_iterator<_BiIter>::value>::type*)\n{\n    size_type __n = _VSTD::distance(__f, __l);\n    size_type __pos = __p - __base::begin();\n    size_type __to_end = __base::size() - __pos;\n    allocator_type& __a = __base::__alloc();\n    if (__pos < __to_end)\n    {   // insert by shifting things backward\n        if (__n > __front_spare())\n            __add_front_capacity(__n - __front_spare());\n        // __n <= __front_spare()\n        iterator __old_begin = __base::begin();\n        iterator __i = __old_begin;\n        _BiIter __m = __f;\n        if (__n > __pos)\n        {\n            __m = __pos < __n / 2 ? _VSTD::prev(__l, __pos) : _VSTD::next(__f, __n - __pos);\n            for (_BiIter __j = __m; __j != __f; --__base::__start_, ++__base::size())\n                __alloc_traits::construct(__a, _VSTD::addressof(*--__i), *--__j);\n            __n = __pos;\n        }\n        if (__n > 0)\n        {\n            iterator __obn = __old_begin + __n;\n            for (iterator __j = __obn; __j != __old_begin;)\n            {\n                __alloc_traits::construct(__a, _VSTD::addressof(*--__i), _VSTD::move(*--__j));\n                --__base::__start_;\n                ++__base::size();\n            }\n            if (__n < __pos)\n                __old_begin = _VSTD::move(__obn, __old_begin + __pos, __old_begin);\n            _VSTD::copy(__m, __l, __old_begin);\n        }\n    }\n    else\n    {   // insert by shifting things forward\n        size_type __back_capacity = __back_spare();\n        if (__n > __back_capacity)\n            __add_back_capacity(__n - __back_capacity);\n        // __n <= __back_capacity\n        iterator __old_end = __base::end();\n        iterator __i = __old_end;\n        _BiIter __m = __l;\n        size_type __de = __base::size() - __pos;\n        if (__n > __de)\n        {\n            __m = __de < __n / 2 ? _VSTD::next(__f, __de) : _VSTD::prev(__l, __n - __de);\n            for (_BiIter __j = __m; __j != __l; ++__i, (void) ++__j, ++__base::size())\n                __alloc_traits::construct(__a, _VSTD::addressof(*__i), *__j);\n            __n = __de;\n        }\n        if (__n > 0)\n        {\n            iterator __oen = __old_end - __n;\n            for (iterator __j = __oen; __j != __old_end; ++__i, ++__j, ++__base::size())\n                __alloc_traits::construct(__a, _VSTD::addressof(*__i), _VSTD::move(*__j));\n            if (__n < __de)\n                __old_end = _VSTD::move_backward(__old_end - __de, __oen, __old_end);\n            _VSTD::copy_backward(__f, __m, __old_end);\n        }\n    }\n    return __base::begin() + __pos;\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InpIter>\nvoid\ndeque<_Tp, _Allocator>::__append(_InpIter __f, _InpIter __l,\n                                 typename enable_if<__is_input_iterator<_InpIter>::value &&\n                                                   !__is_forward_iterator<_InpIter>::value>::type*)\n{\n    for (; __f != __l; ++__f)\n        push_back(*__f);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _ForIter>\nvoid\ndeque<_Tp, _Allocator>::__append(_ForIter __f, _ForIter __l,\n                                 typename enable_if<__is_forward_iterator<_ForIter>::value>::type*)\n{\n    size_type __n = _VSTD::distance(__f, __l);\n    allocator_type& __a = __base::__alloc();\n    size_type __back_capacity = __back_spare();\n    if (__n > __back_capacity)\n        __add_back_capacity(__n - __back_capacity);\n    // __n <= __back_capacity\n    for (iterator __i = __base::end(); __f != __l; ++__i, (void) ++__f, ++__base::size())\n        __alloc_traits::construct(__a, _VSTD::addressof(*__i), *__f);\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__append(size_type __n)\n{\n    allocator_type& __a = __base::__alloc();\n    size_type __back_capacity = __back_spare();\n    if (__n > __back_capacity)\n        __add_back_capacity(__n - __back_capacity);\n    // __n <= __back_capacity\n    for (iterator __i = __base::end(); __n; --__n, ++__i, ++__base::size())\n        __alloc_traits::construct(__a, _VSTD::addressof(*__i));\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__append(size_type __n, const value_type& __v)\n{\n    allocator_type& __a = __base::__alloc();\n    size_type __back_capacity = __back_spare();\n    if (__n > __back_capacity)\n        __add_back_capacity(__n - __back_capacity);\n    // __n <= __back_capacity\n    for (iterator __i = __base::end(); __n; --__n, ++__i, ++__base::size())\n        __alloc_traits::construct(__a, _VSTD::addressof(*__i), __v);\n}\n\n// Create front capacity for one block of elements.\n// Strong guarantee.  Either do it or don't touch anything.\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__add_front_capacity()\n{\n    allocator_type& __a = __base::__alloc();\n    if (__back_spare() >= __base::__block_size)\n    {\n        __base::__start_ += __base::__block_size;\n        pointer __pt = __base::__map_.back();\n        __base::__map_.pop_back();\n        __base::__map_.push_front(__pt);\n    }\n    // Else if __base::__map_.size() < __base::__map_.capacity() then we need to allocate 1 buffer\n    else if (__base::__map_.size() < __base::__map_.capacity())\n    {   // we can put the new buffer into the map, but don't shift things around\n        // until all buffers are allocated.  If we throw, we don't need to fix\n        // anything up (any added buffers are undetectible)\n        if (__base::__map_.__front_spare() > 0)\n            __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));\n        else\n        {\n            __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));\n            // Done allocating, reorder capacity\n            pointer __pt = __base::__map_.back();\n            __base::__map_.pop_back();\n            __base::__map_.push_front(__pt);\n        }\n        __base::__start_ = __base::__map_.size() == 1 ?\n                               __base::__block_size / 2 :\n                               __base::__start_ + __base::__block_size;\n    }\n    // Else need to allocate 1 buffer, *and* we need to reallocate __map_.\n    else\n    {\n        __split_buffer<pointer, typename __base::__pointer_allocator&>\n            __buf(max<size_type>(2 * __base::__map_.capacity(), 1),\n                  0, __base::__map_.__alloc());\n\n        typedef __allocator_destructor<_Allocator> _Dp;\n        unique_ptr<pointer, _Dp> __hold(\n            __alloc_traits::allocate(__a, __base::__block_size),\n                _Dp(__a, __base::__block_size));\n        __buf.push_back(__hold.get());\n        __hold.release();\n    \n        for (typename __base::__map_pointer __i = __base::__map_.begin();\n                __i != __base::__map_.end(); ++__i)\n            __buf.push_back(*__i);\n        _VSTD::swap(__base::__map_.__first_, __buf.__first_);\n        _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);\n        _VSTD::swap(__base::__map_.__end_, __buf.__end_);\n        _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());\n        __base::__start_ = __base::__map_.size() == 1 ?\n                               __base::__block_size / 2 :\n                               __base::__start_ + __base::__block_size;\n    }\n}\n\n// Create front capacity for __n elements.\n// Strong guarantee.  Either do it or don't touch anything.\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__add_front_capacity(size_type __n)\n{\n    allocator_type& __a = __base::__alloc();\n    size_type __nb = __recommend_blocks(__n + __base::__map_.empty());\n    // Number of unused blocks at back:\n    size_type __back_capacity = __back_spare() / __base::__block_size;\n    __back_capacity = _VSTD::min(__back_capacity, __nb);  // don't take more than you need\n    __nb -= __back_capacity;  // number of blocks need to allocate\n    // If __nb == 0, then we have sufficient capacity.\n    if (__nb == 0)\n    {\n        __base::__start_ += __base::__block_size * __back_capacity;\n        for (; __back_capacity > 0; --__back_capacity)\n        {\n            pointer __pt = __base::__map_.back();\n            __base::__map_.pop_back();\n            __base::__map_.push_front(__pt);\n        }\n    }\n    // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers\n    else if (__nb <= __base::__map_.capacity() - __base::__map_.size())\n    {   // we can put the new buffers into the map, but don't shift things around\n        // until all buffers are allocated.  If we throw, we don't need to fix\n        // anything up (any added buffers are undetectible)\n        for (; __nb > 0; --__nb, __base::__start_ += __base::__block_size - (__base::__map_.size() == 1))\n        {\n            if (__base::__map_.__front_spare() == 0)\n                break;\n            __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));\n        }\n        for (; __nb > 0; --__nb, ++__back_capacity)\n            __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));\n        // Done allocating, reorder capacity\n        __base::__start_ += __back_capacity * __base::__block_size;\n        for (; __back_capacity > 0; --__back_capacity)\n        {\n            pointer __pt = __base::__map_.back();\n            __base::__map_.pop_back();\n            __base::__map_.push_front(__pt);\n        }\n    }\n    // Else need to allocate __nb buffers, *and* we need to reallocate __map_.\n    else\n    {\n        size_type __ds = (__nb + __back_capacity) * __base::__block_size - __base::__map_.empty();\n        __split_buffer<pointer, typename __base::__pointer_allocator&>\n            __buf(max<size_type>(2* __base::__map_.capacity(),\n                                 __nb + __base::__map_.size()),\n                  0, __base::__map_.__alloc());\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (; __nb > 0; --__nb)\n                __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            for (typename __base::__map_pointer __i = __buf.begin();\n                    __i != __buf.end(); ++__i)\n                __alloc_traits::deallocate(__a, *__i, __base::__block_size);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        for (; __back_capacity > 0; --__back_capacity)\n        {\n            __buf.push_back(__base::__map_.back());\n            __base::__map_.pop_back();\n        }\n        for (typename __base::__map_pointer __i = __base::__map_.begin();\n                __i != __base::__map_.end(); ++__i)\n            __buf.push_back(*__i);\n        _VSTD::swap(__base::__map_.__first_, __buf.__first_);\n        _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);\n        _VSTD::swap(__base::__map_.__end_, __buf.__end_);\n        _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());\n        __base::__start_ += __ds;\n    }\n}\n\n// Create back capacity for one block of elements.\n// Strong guarantee.  Either do it or don't touch anything.\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__add_back_capacity()\n{\n    allocator_type& __a = __base::__alloc();\n    if (__front_spare() >= __base::__block_size)\n    {\n        __base::__start_ -= __base::__block_size;\n        pointer __pt = __base::__map_.front();\n        __base::__map_.pop_front();\n        __base::__map_.push_back(__pt);\n    }\n    // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers\n    else if (__base::__map_.size() < __base::__map_.capacity())\n    {   // we can put the new buffer into the map, but don't shift things around\n        // until it is allocated.  If we throw, we don't need to fix\n        // anything up (any added buffers are undetectible)\n        if (__base::__map_.__back_spare() != 0)\n            __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));\n        else\n        {\n            __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));\n            // Done allocating, reorder capacity\n            pointer __pt = __base::__map_.front();\n            __base::__map_.pop_front();\n            __base::__map_.push_back(__pt);\n        }\n    }\n    // Else need to allocate 1 buffer, *and* we need to reallocate __map_.\n    else\n    {\n        __split_buffer<pointer, typename __base::__pointer_allocator&>\n            __buf(max<size_type>(2* __base::__map_.capacity(), 1),\n                  __base::__map_.size(),\n                  __base::__map_.__alloc());\n\n        typedef __allocator_destructor<_Allocator> _Dp;\n        unique_ptr<pointer, _Dp> __hold(\n            __alloc_traits::allocate(__a, __base::__block_size),\n                _Dp(__a, __base::__block_size));\n        __buf.push_back(__hold.get());\n        __hold.release();\n\n        for (typename __base::__map_pointer __i = __base::__map_.end();\n                __i != __base::__map_.begin();)\n            __buf.push_front(*--__i);\n        _VSTD::swap(__base::__map_.__first_, __buf.__first_);\n        _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);\n        _VSTD::swap(__base::__map_.__end_, __buf.__end_);\n        _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());\n    }\n}\n\n// Create back capacity for __n elements.\n// Strong guarantee.  Either do it or don't touch anything.\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__add_back_capacity(size_type __n)\n{\n    allocator_type& __a = __base::__alloc();\n    size_type __nb = __recommend_blocks(__n + __base::__map_.empty());\n    // Number of unused blocks at front:\n    size_type __front_capacity = __front_spare() / __base::__block_size;\n    __front_capacity = _VSTD::min(__front_capacity, __nb);  // don't take more than you need\n    __nb -= __front_capacity;  // number of blocks need to allocate\n    // If __nb == 0, then we have sufficient capacity.\n    if (__nb == 0)\n    {\n        __base::__start_ -= __base::__block_size * __front_capacity;\n        for (; __front_capacity > 0; --__front_capacity)\n        {\n            pointer __pt = __base::__map_.front();\n            __base::__map_.pop_front();\n            __base::__map_.push_back(__pt);\n        }\n    }\n    // Else if __nb <= __map_.capacity() - __map_.size() then we need to allocate __nb buffers\n    else if (__nb <= __base::__map_.capacity() - __base::__map_.size())\n    {   // we can put the new buffers into the map, but don't shift things around\n        // until all buffers are allocated.  If we throw, we don't need to fix\n        // anything up (any added buffers are undetectible)\n        for (; __nb > 0; --__nb)\n        {\n            if (__base::__map_.__back_spare() == 0)\n                break;\n            __base::__map_.push_back(__alloc_traits::allocate(__a, __base::__block_size));\n        }\n        for (; __nb > 0; --__nb, ++__front_capacity, __base::__start_ +=\n                                 __base::__block_size - (__base::__map_.size() == 1))\n            __base::__map_.push_front(__alloc_traits::allocate(__a, __base::__block_size));\n        // Done allocating, reorder capacity\n        __base::__start_ -= __base::__block_size * __front_capacity;\n        for (; __front_capacity > 0; --__front_capacity)\n        {\n            pointer __pt = __base::__map_.front();\n            __base::__map_.pop_front();\n            __base::__map_.push_back(__pt);\n        }\n    }\n    // Else need to allocate __nb buffers, *and* we need to reallocate __map_.\n    else\n    {\n        size_type __ds = __front_capacity * __base::__block_size;\n        __split_buffer<pointer, typename __base::__pointer_allocator&>\n            __buf(max<size_type>(2* __base::__map_.capacity(),\n                                 __nb + __base::__map_.size()),\n                  __base::__map_.size() - __front_capacity,\n                  __base::__map_.__alloc());\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (; __nb > 0; --__nb)\n                __buf.push_back(__alloc_traits::allocate(__a, __base::__block_size));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            for (typename __base::__map_pointer __i = __buf.begin();\n                    __i != __buf.end(); ++__i)\n                __alloc_traits::deallocate(__a, *__i, __base::__block_size);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        for (; __front_capacity > 0; --__front_capacity)\n        {\n            __buf.push_back(__base::__map_.front());\n            __base::__map_.pop_front();\n        }\n        for (typename __base::__map_pointer __i = __base::__map_.end();\n                __i != __base::__map_.begin();)\n            __buf.push_front(*--__i);\n        _VSTD::swap(__base::__map_.__first_, __buf.__first_);\n        _VSTD::swap(__base::__map_.__begin_, __buf.__begin_);\n        _VSTD::swap(__base::__map_.__end_, __buf.__end_);\n        _VSTD::swap(__base::__map_.__end_cap(), __buf.__end_cap());\n        __base::__start_ -= __ds;\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::pop_front()\n{\n    allocator_type& __a = __base::__alloc();\n    __alloc_traits::destroy(__a, __to_raw_pointer(*(__base::__map_.begin() +\n                                                    __base::__start_ / __base::__block_size) +\n                                                    __base::__start_ % __base::__block_size));\n    --__base::size();\n    if (++__base::__start_ >= 2 * __base::__block_size)\n    {\n        __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);\n        __base::__map_.pop_front();\n        __base::__start_ -= __base::__block_size;\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::pop_back()\n{\n    allocator_type& __a = __base::__alloc();\n    size_type __p = __base::size() + __base::__start_ - 1;\n    __alloc_traits::destroy(__a, __to_raw_pointer(*(__base::__map_.begin() +\n                                                    __p / __base::__block_size) +\n                                                    __p % __base::__block_size));\n    --__base::size();\n    if (__back_spare() >= 2 * __base::__block_size)\n    {\n        __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);\n        __base::__map_.pop_back();\n    }\n}\n\n// move assign [__f, __l) to [__r, __r + (__l-__f)).\n// If __vt points into [__f, __l), then subtract (__f - __r) from __vt.\ntemplate <class _Tp, class _Allocator>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::__move_and_check(iterator __f, iterator __l, iterator __r,\n                                         const_pointer& __vt)\n{\n    // as if\n    //   for (; __f != __l; ++__f, ++__r)\n    //       *__r = _VSTD::move(*__f);\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        pointer __fb = __f.__ptr_;\n        pointer __fe = *__f.__m_iter_ + __base::__block_size;\n        difference_type __bs = __fe - __fb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __fe = __fb + __bs;\n        }\n        if (__fb <= __vt && __vt < __fe)\n            __vt = (const_iterator(static_cast<__map_const_pointer>(__f.__m_iter_), __vt) -= __f - __r).__ptr_;\n        __r = _VSTD::move(__fb, __fe, __r);\n        __n -= __bs;\n        __f += __bs;\n    }\n    return __r;\n}\n\n// move assign [__f, __l) to [__r - (__l-__f), __r) backwards.\n// If __vt points into [__f, __l), then add (__r - __l) to __vt.\ntemplate <class _Tp, class _Allocator>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::__move_backward_and_check(iterator __f, iterator __l, iterator __r,\n                                                  const_pointer& __vt)\n{\n    // as if\n    //   while (__f != __l)\n    //       *--__r = _VSTD::move(*--__l);\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        --__l;\n        pointer __lb = *__l.__m_iter_;\n        pointer __le = __l.__ptr_ + 1;\n        difference_type __bs = __le - __lb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __lb = __le - __bs;\n        }\n        if (__lb <= __vt && __vt < __le)\n            __vt = (const_iterator(static_cast<__map_const_pointer>(__l.__m_iter_), __vt) += __r - __l - 1).__ptr_;\n        __r = _VSTD::move_backward(__lb, __le, __r);\n        __n -= __bs;\n        __l -= __bs - 1;\n    }\n    return __r;\n}\n\n// move construct [__f, __l) to [__r, __r + (__l-__f)).\n// If __vt points into [__f, __l), then add (__r - __f) to __vt.\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__move_construct_and_check(iterator __f, iterator __l,\n                                                   iterator __r, const_pointer& __vt)\n{\n    allocator_type& __a = __base::__alloc();\n    // as if\n    //   for (; __f != __l; ++__r, ++__f, ++__base::size())\n    //       __alloc_traits::construct(__a, _VSTD::addressof(*__r), _VSTD::move(*__f));\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        pointer __fb = __f.__ptr_;\n        pointer __fe = *__f.__m_iter_ + __base::__block_size;\n        difference_type __bs = __fe - __fb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __fe = __fb + __bs;\n        }\n        if (__fb <= __vt && __vt < __fe)\n            __vt = (const_iterator(static_cast<__map_const_pointer>(__f.__m_iter_), __vt) += __r - __f).__ptr_;\n        for (; __fb != __fe; ++__fb, ++__r, ++__base::size())\n            __alloc_traits::construct(__a, _VSTD::addressof(*__r), _VSTD::move(*__fb));\n        __n -= __bs;\n        __f += __bs;\n    }\n}\n\n// move construct [__f, __l) to [__r - (__l-__f), __r) backwards.\n// If __vt points into [__f, __l), then subtract (__l - __r) from __vt.\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__move_construct_backward_and_check(iterator __f, iterator __l,\n                                                            iterator __r, const_pointer& __vt)\n{\n    allocator_type& __a = __base::__alloc();\n    // as if\n    //   for (iterator __j = __l; __j != __f;)\n    //   {\n    //       __alloc_traitsconstruct(__a, _VSTD::addressof(*--__r), _VSTD::move(*--__j));\n    //       --__base::__start_;\n    //       ++__base::size();\n    //   }\n    difference_type __n = __l - __f;\n    while (__n > 0)\n    {\n        --__l;\n        pointer __lb = *__l.__m_iter_;\n        pointer __le = __l.__ptr_ + 1;\n        difference_type __bs = __le - __lb;\n        if (__bs > __n)\n        {\n            __bs = __n;\n            __lb = __le - __bs;\n        }\n        if (__lb <= __vt && __vt < __le)\n            __vt = (const_iterator(static_cast<__map_const_pointer>(__l.__m_iter_), __vt) -= __l - __r + 1).__ptr_;\n        while (__le != __lb)\n        {\n            __alloc_traits::construct(__a, _VSTD::addressof(*--__r), _VSTD::move(*--__le));\n            --__base::__start_;\n            ++__base::size();\n        }\n        __n -= __bs;\n        __l -= __bs - 1;\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::erase(const_iterator __f)\n{\n    iterator __b = __base::begin();\n    difference_type __pos = __f - __b;\n    iterator __p = __b + __pos;\n    allocator_type& __a = __base::__alloc();\n    if (static_cast<size_t>(__pos) <= (__base::size() - 1) / 2)\n    {   // erase from front\n        _VSTD::move_backward(__b, __p, _VSTD::next(__p));\n        __alloc_traits::destroy(__a, _VSTD::addressof(*__b));\n        --__base::size();\n        ++__base::__start_;\n        if (__front_spare() >= 2 * __base::__block_size)\n        {\n            __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);\n            __base::__map_.pop_front();\n            __base::__start_ -= __base::__block_size;\n        }\n    }\n    else\n    {   // erase from back\n        iterator __i = _VSTD::move(_VSTD::next(__p), __base::end(), __p);\n        __alloc_traits::destroy(__a, _VSTD::addressof(*__i));\n        --__base::size();\n        if (__back_spare() >= 2 * __base::__block_size)\n        {\n            __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);\n            __base::__map_.pop_back();\n        }\n    }\n    return __base::begin() + __pos;\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename deque<_Tp, _Allocator>::iterator\ndeque<_Tp, _Allocator>::erase(const_iterator __f, const_iterator __l)\n{\n    difference_type __n = __l - __f;\n    iterator __b = __base::begin();\n    difference_type __pos = __f - __b;\n    iterator __p = __b + __pos;\n    if (__n > 0)\n    {\n        allocator_type& __a = __base::__alloc();\n        if (static_cast<size_t>(__pos) <= (__base::size() - __n) / 2)\n        {   // erase from front\n            iterator __i = _VSTD::move_backward(__b, __p, __p + __n);\n            for (; __b != __i; ++__b)\n                __alloc_traits::destroy(__a, _VSTD::addressof(*__b));\n            __base::size() -= __n;\n            __base::__start_ += __n;\n            while (__front_spare() >= 2 * __base::__block_size)\n            {\n                __alloc_traits::deallocate(__a, __base::__map_.front(), __base::__block_size);\n                __base::__map_.pop_front();\n                __base::__start_ -= __base::__block_size;\n            }\n        }\n        else\n        {   // erase from back\n            iterator __i = _VSTD::move(__p + __n, __base::end(), __p);\n            for (iterator __e = __base::end(); __i != __e; ++__i)\n                __alloc_traits::destroy(__a, _VSTD::addressof(*__i));\n            __base::size() -= __n;\n            while (__back_spare() >= 2 * __base::__block_size)\n            {\n                __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);\n                __base::__map_.pop_back();\n            }\n        }\n    }\n    return __base::begin() + __pos;\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\ndeque<_Tp, _Allocator>::__erase_to_end(const_iterator __f)\n{\n    iterator __e = __base::end();\n    difference_type __n = __e - __f;\n    if (__n > 0)\n    {\n        allocator_type& __a = __base::__alloc();\n        iterator __b = __base::begin();\n        difference_type __pos = __f - __b;\n        for (iterator __p = __b + __pos; __p != __e; ++__p)\n            __alloc_traits::destroy(__a, _VSTD::addressof(*__p));\n        __base::size() -= __n;\n        while (__back_spare() >= 2 * __base::__block_size)\n        {\n            __alloc_traits::deallocate(__a, __base::__map_.back(), __base::__block_size);\n            __base::__map_.pop_back();\n        }\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\nvoid\ndeque<_Tp, _Allocator>::swap(deque& __c)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT\n#else\n        _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value || \n                    __is_nothrow_swappable<allocator_type>::value)\n#endif\n{\n    __base::swap(__c);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline\nvoid\ndeque<_Tp, _Allocator>::clear() _NOEXCEPT\n{\n    __base::clear();\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)\n{\n    const typename deque<_Tp, _Allocator>::size_type __sz = __x.size();\n    return __sz == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const deque<_Tp, _Allocator>& __x, const deque<_Tp, _Allocator>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(deque<_Tp, _Allocator>& __x, deque<_Tp, _Allocator>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_DEQUE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/errno.h",
    "content": "// -*- C++ -*-\n//===-------------------------- errno.h -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_ERRNO_H\n#define _LIBCPP_ERRNO_H\n\n/*\n    errno.h synopsis\n\nMacros:\n\n    EDOM\n    EILSEQ  // C99\n    ERANGE\n    errno\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <errno.h>\n\n#ifdef __cplusplus\n\n#if !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE)\n\n#ifdef ELAST\n\nstatic const int __elast1 = ELAST+1;\nstatic const int __elast2 = ELAST+2;\n\n#else\n\nstatic const int __elast1 = 104;\nstatic const int __elast2 = 105;\n\n#endif\n\n#ifdef ENOTRECOVERABLE\n\n#define EOWNERDEAD __elast1\n\n#ifdef ELAST\n#undef ELAST\n#define ELAST EOWNERDEAD\n#endif\n\n#elif defined(EOWNERDEAD)\n\n#define ENOTRECOVERABLE __elast1\n#ifdef ELAST\n#undef ELAST\n#define ELAST ENOTRECOVERABLE\n#endif\n\n#else  // defined(EOWNERDEAD)\n\n#define EOWNERDEAD __elast1\n#define ENOTRECOVERABLE __elast2\n#ifdef ELAST\n#undef ELAST\n#define ELAST ENOTRECOVERABLE\n#endif\n\n#endif  // defined(EOWNERDEAD)\n\n#endif  // !defined(EOWNERDEAD) || !defined(ENOTRECOVERABLE)\n\n//  supply errno values likely to be missing, particularly on Windows\n\n#ifndef EAFNOSUPPORT\n#define EAFNOSUPPORT 9901\n#endif\n\n#ifndef EADDRINUSE\n#define EADDRINUSE 9902\n#endif\n\n#ifndef EADDRNOTAVAIL\n#define EADDRNOTAVAIL 9903\n#endif\n\n#ifndef EISCONN\n#define EISCONN 9904\n#endif\n\n#ifndef EBADMSG\n#define EBADMSG 9905\n#endif\n\n#ifndef ECONNABORTED\n#define ECONNABORTED 9906\n#endif\n\n#ifndef EALREADY\n#define EALREADY 9907\n#endif\n\n#ifndef ECONNREFUSED\n#define ECONNREFUSED 9908\n#endif\n\n#ifndef ECONNRESET\n#define ECONNRESET 9909\n#endif\n\n#ifndef EDESTADDRREQ\n#define EDESTADDRREQ 9910\n#endif\n\n#ifndef EHOSTUNREACH\n#define EHOSTUNREACH 9911\n#endif\n\n#ifndef EIDRM\n#define EIDRM 9912\n#endif\n\n#ifndef EMSGSIZE\n#define EMSGSIZE 9913\n#endif\n\n#ifndef ENETDOWN\n#define ENETDOWN 9914\n#endif\n\n#ifndef ENETRESET\n#define ENETRESET 9915\n#endif\n\n#ifndef ENETUNREACH\n#define ENETUNREACH 9916\n#endif\n\n#ifndef ENOBUFS\n#define ENOBUFS 9917\n#endif\n\n#ifndef ENOLINK\n#define ENOLINK 9918\n#endif\n\n#ifndef ENODATA\n#define ENODATA 9919\n#endif\n\n#ifndef ENOMSG\n#define ENOMSG 9920\n#endif\n\n#ifndef ENOPROTOOPT\n#define ENOPROTOOPT 9921\n#endif\n\n#ifndef ENOSR\n#define ENOSR 9922\n#endif\n\n#ifndef ENOTSOCK\n#define ENOTSOCK 9923\n#endif\n\n#ifndef ENOSTR\n#define ENOSTR 9924\n#endif\n\n#ifndef ENOTCONN\n#define ENOTCONN 9925\n#endif\n\n#ifndef ENOTSUP\n#define ENOTSUP 9926\n#endif\n\n#ifndef ECANCELED\n#define ECANCELED 9927\n#endif\n\n#ifndef EINPROGRESS\n#define EINPROGRESS 9928\n#endif\n\n#ifndef EOPNOTSUPP\n#define EOPNOTSUPP 9929\n#endif\n\n#ifndef EWOULDBLOCK\n#define EWOULDBLOCK 9930\n#endif\n\n#ifndef EOWNERDEAD\n#define EOWNERDEAD  9931\n#endif\n\n#ifndef EPROTO\n#define EPROTO 9932\n#endif\n\n#ifndef EPROTONOSUPPORT\n#define EPROTONOSUPPORT 9933\n#endif\n\n#ifndef ENOTRECOVERABLE\n#define ENOTRECOVERABLE 9934\n#endif\n\n#ifndef ETIME\n#define ETIME 9935\n#endif\n\n#ifndef ETXTBSY\n#define ETXTBSY 9936\n#endif\n\n#ifndef ETIMEDOUT\n#define ETIMEDOUT 9938\n#endif\n\n#ifndef ELOOP\n#define ELOOP 9939\n#endif\n\n#ifndef EOVERFLOW\n#define EOVERFLOW 9940\n#endif\n\n#ifndef EPROTOTYPE\n#define EPROTOTYPE 9941\n#endif\n\n#ifndef ENOSYS\n#define ENOSYS 9942\n#endif\n\n#ifndef EINVAL\n#define EINVAL 9943\n#endif\n\n#ifndef ERANGE\n#define ERANGE 9944\n#endif\n\n#ifndef EILSEQ\n#define EILSEQ 9945\n#endif\n\n//  Windows Mobile doesn't appear to define these:\n\n#ifndef E2BIG\n#define E2BIG 9946\n#endif\n\n#ifndef EDOM\n#define EDOM 9947\n#endif\n\n#ifndef EFAULT\n#define EFAULT 9948\n#endif\n\n#ifndef EBADF\n#define EBADF 9949\n#endif\n\n#ifndef EPIPE\n#define EPIPE 9950\n#endif\n\n#ifndef EXDEV\n#define EXDEV 9951\n#endif\n\n#ifndef EBUSY\n#define EBUSY 9952\n#endif\n\n#ifndef ENOTEMPTY\n#define ENOTEMPTY 9953\n#endif\n\n#ifndef ENOEXEC\n#define ENOEXEC 9954\n#endif\n\n#ifndef EEXIST\n#define EEXIST 9955\n#endif\n\n#ifndef EFBIG\n#define EFBIG 9956\n#endif\n\n#ifndef ENAMETOOLONG\n#define ENAMETOOLONG 9957\n#endif\n\n#ifndef ENOTTY\n#define ENOTTY 9958\n#endif\n\n#ifndef EINTR\n#define EINTR 9959\n#endif\n\n#ifndef ESPIPE\n#define ESPIPE 9960\n#endif\n\n#ifndef EIO\n#define EIO 9961\n#endif\n\n#ifndef EISDIR\n#define EISDIR 9962\n#endif\n\n#ifndef ECHILD\n#define ECHILD 9963\n#endif\n\n#ifndef ENOLCK\n#define ENOLCK 9964\n#endif\n\n#ifndef ENOSPC\n#define ENOSPC 9965\n#endif\n\n#ifndef ENXIO\n#define ENXIO 9966\n#endif\n\n#ifndef ENODEV\n#define ENODEV 9967\n#endif\n\n#ifndef ENOENT\n#define ENOENT 9968\n#endif\n\n#ifndef ESRCH\n#define ESRCH 9969\n#endif\n\n#ifndef ENOTDIR\n#define ENOTDIR 9970\n#endif\n\n#ifndef ENOMEM\n#define ENOMEM 9971\n#endif\n\n#ifndef EPERM\n#define EPERM 9972\n#endif\n\n#ifndef EACCES\n#define EACCES 9973\n#endif\n\n#ifndef EROFS\n#define EROFS 9974\n#endif\n\n#ifndef EDEADLK\n#define EDEADLK 9975\n#endif\n\n#ifndef EAGAIN\n#define EAGAIN 9976\n#endif\n\n#ifndef ENFILE\n#define ENFILE 9977\n#endif\n\n#ifndef EMFILE\n#define EMFILE 9978\n#endif\n\n#ifndef EMLINK\n#define EMLINK 9979\n#endif\n\n#endif // __cplusplus\n\n#endif  // _LIBCPP_ERRNO_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/exception",
    "content": "// -*- C++ -*-\n//===-------------------------- exception ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXCEPTION\n#define _LIBCPP_EXCEPTION\n\n/*\n    exception synopsis\n\nnamespace std\n{\n\nclass exception\n{\npublic:\n    exception() noexcept;\n    exception(const exception&) noexcept;\n    exception& operator=(const exception&) noexcept;\n    virtual ~exception() noexcept;\n    virtual const char* what() const noexcept;\n};\n\nclass bad_exception\n    : public exception\n{\npublic:\n    bad_exception() noexcept;\n    bad_exception(const bad_exception&) noexcept;\n    bad_exception& operator=(const bad_exception&) noexcept;\n    virtual ~bad_exception() noexcept;\n    virtual const char* what() const noexcept;\n};\n\ntypedef void (*unexpected_handler)();\nunexpected_handler set_unexpected(unexpected_handler  f ) noexcept;\nunexpected_handler get_unexpected() noexcept;\n[[noreturn]] void unexpected();\n\ntypedef void (*terminate_handler)();\nterminate_handler set_terminate(terminate_handler  f ) noexcept;\nterminate_handler get_terminate() noexcept;\n[[noreturn]] void terminate() noexcept;\n\nbool uncaught_exception()  noexcept;\nint  uncaught_exceptions() noexcept;  // C++17\n\ntypedef unspecified exception_ptr;\n\nexception_ptr current_exception() noexcept;\nvoid rethrow_exception [[noreturn]] (exception_ptr p);\ntemplate<class E> exception_ptr make_exception_ptr(E e) noexcept;\n\nclass nested_exception\n{\npublic:\n    nested_exception() noexcept;\n    nested_exception(const nested_exception&) noexcept = default;\n    nested_exception& operator=(const nested_exception&) noexcept = default;\n    virtual ~nested_exception() = default;\n\n    // access functions\n    [[noreturn]] void rethrow_nested() const;\n    exception_ptr nested_ptr() const noexcept;\n};\n\ntemplate <class T> [[noreturn]] void throw_with_nested(T&& t);\ntemplate <class E> void rethrow_if_nested(const E& e);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <cstddef>\n#include <cstdlib>\n#include <type_traits>\n\n#if defined(_LIBCPP_ABI_MICROSOFT)\n#include <vcruntime_exception.h>\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\nnamespace std  // purposefully not using versioning namespace\n{\n\n#if !defined(_LIBCPP_ABI_MICROSOFT)\nclass _LIBCPP_EXCEPTION_ABI exception\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY exception() _NOEXCEPT {}\n    virtual ~exception() _NOEXCEPT;\n    virtual const char* what() const _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI bad_exception\n    : public exception\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY bad_exception() _NOEXCEPT {}\n    virtual ~bad_exception() _NOEXCEPT;\n    virtual const char* what() const _NOEXCEPT;\n};\n#endif // !_LIBCPP_ABI_MICROSOFT\n\n#if _LIBCPP_STD_VER <= 14 \\\n    || defined(_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS) \\\n    || defined(_LIBCPP_BUILDING_LIBRARY)\ntypedef void (*unexpected_handler)();\n_LIBCPP_FUNC_VIS unexpected_handler set_unexpected(unexpected_handler) _NOEXCEPT;\n_LIBCPP_FUNC_VIS unexpected_handler get_unexpected() _NOEXCEPT;\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void unexpected();\n#endif\n\ntypedef void (*terminate_handler)();\n_LIBCPP_FUNC_VIS terminate_handler set_terminate(terminate_handler) _NOEXCEPT;\n_LIBCPP_FUNC_VIS terminate_handler get_terminate() _NOEXCEPT;\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void terminate() _NOEXCEPT;\n\n_LIBCPP_FUNC_VIS bool uncaught_exception() _NOEXCEPT;\n_LIBCPP_FUNC_VIS _LIBCPP_AVAILABILITY_UNCAUGHT_EXCEPTIONS int uncaught_exceptions() _NOEXCEPT;\n\nclass _LIBCPP_TYPE_VIS exception_ptr;\n\n_LIBCPP_FUNC_VIS exception_ptr current_exception() _NOEXCEPT;\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void rethrow_exception(exception_ptr);\n\n#ifndef _LIBCPP_ABI_MICROSOFT\n\nclass _LIBCPP_TYPE_VIS exception_ptr\n{\n    void* __ptr_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY exception_ptr() _NOEXCEPT : __ptr_() {}\n    _LIBCPP_INLINE_VISIBILITY exception_ptr(nullptr_t) _NOEXCEPT : __ptr_() {}\n\n    exception_ptr(const exception_ptr&) _NOEXCEPT;\n    exception_ptr& operator=(const exception_ptr&) _NOEXCEPT;\n    ~exception_ptr() _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT\n    {return __ptr_ != nullptr;}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT\n        {return __x.__ptr_ == __y.__ptr_;}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT\n        {return !(__x == __y);}\n\n    friend _LIBCPP_FUNC_VIS exception_ptr current_exception() _NOEXCEPT;\n    friend _LIBCPP_FUNC_VIS void rethrow_exception(exception_ptr);\n};\n\ntemplate<class _Ep>\nexception_ptr\nmake_exception_ptr(_Ep __e) _NOEXCEPT\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n        throw __e;\n    }\n    catch (...)\n    {\n        return current_exception();\n    }\n#else\n    ((void)__e);\n    _VSTD::abort();\n#endif\n}\n\n#else // _LIBCPP_ABI_MICROSOFT\n\nclass _LIBCPP_TYPE_VIS exception_ptr\n{\n#if defined(__clang__)\n#pragma clang diagnostic push\n#pragma clang diagnostic ignored \"-Wunused-private-field\"\n#endif\n    void* __ptr1_;\n    void* __ptr2_;\n#if defined(__clang__)\n#pragma clang diagnostic pop\n#endif\npublic:\n    exception_ptr() _NOEXCEPT;\n    exception_ptr(nullptr_t) _NOEXCEPT;\n    exception_ptr(const exception_ptr& __other) _NOEXCEPT;\n    exception_ptr& operator=(const exception_ptr& __other) _NOEXCEPT;\n    exception_ptr& operator=(nullptr_t) _NOEXCEPT;\n    ~exception_ptr() _NOEXCEPT;\n    _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT;\n};\n\n_LIBCPP_FUNC_VIS\nbool operator==(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT;\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator!=(const exception_ptr& __x, const exception_ptr& __y) _NOEXCEPT\n    {return !(__x == __y);}\n\n_LIBCPP_FUNC_VIS void swap(exception_ptr&, exception_ptr&) _NOEXCEPT;\n\n_LIBCPP_FUNC_VIS exception_ptr __copy_exception_ptr(void *__except, const void* __ptr);\n_LIBCPP_FUNC_VIS exception_ptr current_exception() _NOEXCEPT;\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void rethrow_exception(exception_ptr p);\n\n// This is a built-in template function which automagically extracts the required\n// information.\ntemplate <class _E> void *__GetExceptionInfo(_E);\n\ntemplate<class _Ep>\nexception_ptr\nmake_exception_ptr(_Ep __e) _NOEXCEPT\n{\n  return __copy_exception_ptr(_VSTD::addressof(__e), __GetExceptionInfo(__e));\n}\n\n#endif // _LIBCPP_ABI_MICROSOFT\n// nested_exception\n\nclass _LIBCPP_EXCEPTION_ABI nested_exception\n{\n    exception_ptr __ptr_;\npublic:\n    nested_exception() _NOEXCEPT;\n//     nested_exception(const nested_exception&) noexcept = default;\n//     nested_exception& operator=(const nested_exception&) noexcept = default;\n    virtual ~nested_exception() _NOEXCEPT;\n\n    // access functions\n    _LIBCPP_NORETURN void rethrow_nested() const;\n    _LIBCPP_INLINE_VISIBILITY exception_ptr nested_ptr() const _NOEXCEPT {return __ptr_;}\n};\n\ntemplate <class _Tp>\nstruct __nested\n    : public _Tp,\n      public nested_exception\n{\n    _LIBCPP_INLINE_VISIBILITY explicit __nested(const _Tp& __t) : _Tp(__t) {}\n};\n\n#ifndef _LIBCPP_NO_EXCEPTIONS\ntemplate <class _Tp, class _Up, bool>\nstruct __throw_with_nested;\n\ntemplate <class _Tp, class _Up>\nstruct __throw_with_nested<_Tp, _Up, true> {\n    _LIBCPP_NORETURN static inline _LIBCPP_ALWAYS_INLINE void\n#ifndef _LIBCPP_CXX03_LANG\n    __do_throw(_Tp&& __t)\n#else\n    __do_throw (_Tp& __t)\n#endif  // _LIBCPP_CXX03_LANG\n    {\n        throw __nested<_Up>(_VSTD::forward<_Tp>(__t));\n    }\n};\n\ntemplate <class _Tp, class _Up>\nstruct __throw_with_nested<_Tp, _Up, false> {\n    _LIBCPP_NORETURN static inline _LIBCPP_ALWAYS_INLINE void\n#ifndef _LIBCPP_CXX03_LANG\n    __do_throw(_Tp&& __t)\n#else\n    __do_throw (_Tp& __t)\n#endif  // _LIBCPP_CXX03_LANG\n    {\n        throw _VSTD::forward<_Tp>(__t);\n    }\n};\n#endif\n\ntemplate <class _Tp>\n_LIBCPP_NORETURN\nvoid\n#ifndef _LIBCPP_CXX03_LANG\nthrow_with_nested(_Tp&& __t)\n#else\nthrow_with_nested (_Tp& __t)\n#endif // _LIBCPP_CXX03_LANG\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    typedef typename decay<_Tp>::type _Up;\n    static_assert( is_copy_constructible<_Up>::value, \"type thrown must be CopyConstructible\");\n    __throw_with_nested<_Tp, _Up,\n        is_class<_Up>::value &&\n        !is_base_of<nested_exception, _Up>::value &&\n        !__libcpp_is_final<_Up>::value>::\n            __do_throw(_VSTD::forward<_Tp>(__t));\n#else\n    ((void)__t);\n    // FIXME: Make this abort\n#endif\n}\n\ntemplate <class _From, class _To>\nstruct __can_dynamic_cast : public _LIBCPP_BOOL_CONSTANT(\n              is_polymorphic<_From>::value &&\n                 (!is_base_of<_To, _From>::value ||\n                   is_convertible<const _From*, const _To*>::value)) {};\n\ntemplate <class _Ep>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nrethrow_if_nested(const _Ep& __e,\n                  typename enable_if< __can_dynamic_cast<_Ep, nested_exception>::value>::type* = 0)\n{\n    const nested_exception* __nep = dynamic_cast<const nested_exception*>(_VSTD::addressof(__e));\n    if (__nep)\n        __nep->rethrow_nested();\n}\n\ntemplate <class _Ep>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nrethrow_if_nested(const _Ep&,\n                  typename enable_if<!__can_dynamic_cast<_Ep, nested_exception>::value>::type* = 0)\n{\n}\n\n}  // std\n\n#endif  // _LIBCPP_EXCEPTION\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/__config",
    "content": "// -*- C++ -*-\n//===--------------------------- __config ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_CONFIG\n#define _LIBCPP_EXPERIMENTAL_CONFIG\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace std { namespace experimental {\n#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL  } }\n#define _VSTD_EXPERIMENTAL std::experimental\n\n#define _LIBCPP_BEGIN_NAMESPACE_LFTS _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v1 {\n#define _LIBCPP_END_NAMESPACE_LFTS  } } }\n#define _VSTD_LFTS _VSTD_EXPERIMENTAL::fundamentals_v1\n\n#define _LIBCPP_BEGIN_NAMESPACE_LFTS_V2 _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace fundamentals_v2 {\n#define _LIBCPP_END_NAMESPACE_LFTS_V2  } } }\n#define _VSTD_LFTS_V2 _VSTD_EXPERIMENTAL::fundamentals_v2\n\n#define _LIBCPP_BEGIN_NAMESPACE_LFTS_PMR _LIBCPP_BEGIN_NAMESPACE_LFTS namespace pmr {\n#define _LIBCPP_END_NAMESPACE_LFTS_PMR _LIBCPP_END_NAMESPACE_LFTS }\n#define _VSTD_LFTS_PMR _VSTD_LFTS::pmr\n\n#define _LIBCPP_BEGIN_NAMESPACE_CHRONO_LFTS _LIBCPP_BEGIN_NAMESPACE_STD        \\\n  namespace chrono { namespace experimental { inline namespace fundamentals_v1 {\n#define _LIBCPP_END_NAMESPACE_CHRONO_LFTS _LIBCPP_END_NAMESPACE_STD } } }\n\n#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_FILESYSTEM \\\n    _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL namespace filesystem { \\\n    inline namespace v1 {\n\n#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_FILESYSTEM \\\n    } } _LIBCPP_END_NAMESPACE_EXPERIMENTAL\n\n#define _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES \\\n  _LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL inline namespace coroutines_v1 {\n\n#define _LIBCPP_END_NAMESPACE_EXPERIMENTAL_COROUTINES \\\n  } _LIBCPP_END_NAMESPACE_EXPERIMENTAL\n\n#define _VSTD_CORO _VSTD_EXPERIMENTAL::coroutines_v1\n\n#define _VSTD_FS ::std::experimental::filesystem::v1\n\n#endif\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/__memory",
    "content": "// -*- C++ -*-\n//===----------------------------------------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL___MEMORY\n#define _LIBCPP_EXPERIMENTAL___MEMORY\n\n#include <experimental/__config>\n#include <experimental/utility> // for erased_type\n#include <__functional_base>\n#include <type_traits>\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\ntemplate <\n    class _Tp, class _Alloc\n  , bool = uses_allocator<_Tp, _Alloc>::value\n  , bool = __has_allocator_type<_Tp>::value\n  >\nstruct __lfts_uses_allocator : public false_type {};\n\ntemplate <class _Tp, class _Alloc>\nstruct __lfts_uses_allocator<_Tp, _Alloc, false, false> : public false_type {};\n\ntemplate <class _Tp, class _Alloc, bool HasAlloc>\nstruct __lfts_uses_allocator<_Tp, _Alloc, true, HasAlloc> : public true_type {};\n\ntemplate <class _Tp, class _Alloc>\nstruct __lfts_uses_allocator<_Tp, _Alloc, false, true>\n  : public integral_constant<bool\n    , is_convertible<_Alloc, typename _Tp::allocator_type>::value\n      || is_same<erased_type, typename _Tp::allocator_type>::value\n    >\n{};\n\ntemplate <bool _UsesAlloc, class _Tp, class _Alloc, class ..._Args>\nstruct __lfts_uses_alloc_ctor_imp\n{\n    static const int value = 0;\n};\n\ntemplate <class _Tp, class _Alloc, class ..._Args>\nstruct __lfts_uses_alloc_ctor_imp<true, _Tp, _Alloc, _Args...>\n{\n    static const bool __ic_first\n        = is_constructible<_Tp, allocator_arg_t, _Alloc, _Args...>::value;\n\n    static const bool __ic_second =\n        conditional<\n            __ic_first,\n            false_type,\n            is_constructible<_Tp, _Args..., _Alloc>\n        >::type::value;\n\n    static_assert(__ic_first || __ic_second,\n                  \"Request for uses allocator construction is ill-formed\");\n\n    static const int value = __ic_first ? 1 : 2;\n};\n\ntemplate <class _Tp, class _Alloc, class ..._Args>\nstruct __lfts_uses_alloc_ctor\n  : integral_constant<int,\n        __lfts_uses_alloc_ctor_imp<\n            __lfts_uses_allocator<_Tp, _Alloc>::value\n          , _Tp, _Alloc, _Args...\n        >::value\n    >\n{};\n\ntemplate <class _Tp, class _Alloc, class ..._Args>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __lfts_user_alloc_construct(\n    _Tp * __store, const _Alloc & __a, _Args &&... __args)\n{\n    _VSTD::__user_alloc_construct_impl(\n        typename __lfts_uses_alloc_ctor<_Tp, _Alloc, _Args...>::type()\n       , __store, __a, _VSTD::forward<_Args>(__args)...\n       );\n}\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n#endif /* _LIBCPP_EXPERIMENTAL___MEMORY */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/algorithm",
    "content": "// -*- C++ -*-\n//===-------------------------- algorithm ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_ALGORITHM\n#define _LIBCPP_EXPERIMENTAL_ALGORITHM\n\n/*\n   experimental/algorithm synopsis\n\n#include <algorithm>\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\ntemplate <class ForwardIterator, class Searcher>\nForwardIterator search(ForwardIterator first, ForwardIterator last,\n                       const Searcher &searcher);\ntemplate <class PopulationIterator, class SampleIterator, class Distance,\n          class UniformRandomNumberGenerator>\nSampleIterator sample(PopulationIterator first, PopulationIterator last,\n                      SampleIterator out, Distance n,\n                      UniformRandomNumberGenerator &&g);\n\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n*/\n\n#include <experimental/__config>\n#include <algorithm>\n#include <type_traits>\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\ntemplate <class _ForwardIterator, class _Searcher>\n_LIBCPP_INLINE_VISIBILITY\n_ForwardIterator search(_ForwardIterator __f, _ForwardIterator __l, const _Searcher &__s)\n{ return __s(__f, __l).first; }\n\n\ntemplate <class _PopulationIterator, class _SampleIterator, class _Distance,\n          class _UniformRandomNumberGenerator>\ninline _LIBCPP_INLINE_VISIBILITY\n_SampleIterator sample(_PopulationIterator __first, _PopulationIterator __last,\n                       _SampleIterator __output, _Distance __n,\n                       _UniformRandomNumberGenerator &&__g) {\n  return _VSTD::__sample(__first, __last, __output, __n, __g);\n}\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n_LIBCPP_POP_MACROS\n\n#endif /* _LIBCPP_EXPERIMENTAL_ALGORITHM */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/any",
    "content": "// -*- C++ -*-\n//===------------------------------ any -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_ANY\n#define _LIBCPP_EXPERIMENTAL_ANY\n\n/*\n   experimental/any synopsis\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\n  class bad_any_cast : public bad_cast\n  {\n  public:\n    virtual const char* what() const noexcept;\n  };\n\n  class any\n  {\n  public:\n\n    // 6.3.1 any construct/destruct\n    any() noexcept;\n\n    any(const any& other);\n    any(any&& other) noexcept;\n\n    template <class ValueType>\n      any(ValueType&& value);\n\n    ~any();\n\n    // 6.3.2 any assignments\n    any& operator=(const any& rhs);\n    any& operator=(any&& rhs) noexcept;\n\n    template <class ValueType>\n      any& operator=(ValueType&& rhs);\n\n    // 6.3.3 any modifiers\n    void clear() noexcept;\n    void swap(any& rhs) noexcept;\n\n    // 6.3.4 any observers\n    bool empty() const noexcept;\n    const type_info& type() const noexcept;\n  };\n\n   // 6.4 Non-member functions\n  void swap(any& x, any& y) noexcept;\n\n  template<class ValueType>\n    ValueType any_cast(const any& operand);\n  template<class ValueType>\n    ValueType any_cast(any& operand);\n  template<class ValueType>\n    ValueType any_cast(any&& operand);\n\n  template<class ValueType>\n    const ValueType* any_cast(const any* operand) noexcept;\n  template<class ValueType>\n    ValueType* any_cast(any* operand) noexcept;\n\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n*/\n\n#include <experimental/__config>\n#include <memory>\n#include <new>\n#include <typeinfo>\n#include <type_traits>\n#include <cstdlib>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\nclass _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_ANY_CAST bad_any_cast : public bad_cast\n{\npublic:\n    virtual const char* what() const _NOEXCEPT;\n};\n\n#if _LIBCPP_STD_VER > 11                                            // C++ > 11\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\n_LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST\nvoid __throw_bad_any_cast()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw bad_any_cast();\n#else\n    _VSTD::abort();\n#endif\n}\n\n// Forward declarations\nclass any;\n\ntemplate <class _ValueType>\ntypename add_pointer<typename add_const<_ValueType>::type>::type\n_LIBCPP_INLINE_VISIBILITY\nany_cast(any const *) _NOEXCEPT;\n\ntemplate <class _ValueType>\ntypename add_pointer<_ValueType>::type\n_LIBCPP_INLINE_VISIBILITY\nany_cast(any *) _NOEXCEPT;\n\nnamespace __any_imp\n{\n  typedef typename aligned_storage<3*sizeof(void*), alignment_of<void*>::value>::type\n    _Buffer;\n\n  template <class _Tp>\n  struct _IsSmallObject\n    : public integral_constant<bool\n        , sizeof(_Tp) <= sizeof(_Buffer)\n          && alignment_of<_Buffer>::value\n             % alignment_of<_Tp>::value == 0\n          && is_nothrow_move_constructible<_Tp>::value\n        >\n  {};\n\n  enum class _Action\n  {\n    _Destroy,\n    _Copy,\n    _Move,\n    _Get,\n    _TypeInfo\n  };\n\n  template <class _Tp>\n  struct _SmallHandler;\n\n  template <class _Tp>\n  struct _LargeHandler;\n\n  template <class _Tp>\n  using _Handler = typename conditional<_IsSmallObject<_Tp>::value\n                                      , _SmallHandler<_Tp>\n                                      , _LargeHandler<_Tp>\n                                    >::type;\n  template <class _ValueType>\n  using _EnableIfNotAny = typename\n    enable_if<\n      !is_same<typename decay<_ValueType>::type, any>::value\n    >::type;\n\n} // namespace __any_imp\n\nclass any\n{\npublic:\n  // 6.3.1 any construct/destruct\n  _LIBCPP_INLINE_VISIBILITY\n  any() _NOEXCEPT : __h(nullptr) {}\n\n  _LIBCPP_INLINE_VISIBILITY\n  any(any const & __other) : __h(nullptr)\n  {\n    if (__other.__h) __other.__call(_Action::_Copy, this);\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  any(any && __other) _NOEXCEPT : __h(nullptr)\n  {\n    if (__other.__h) __other.__call(_Action::_Move, this);\n  }\n\n  template <\n      class _ValueType\n    , class = __any_imp::_EnableIfNotAny<_ValueType>\n    >\n  _LIBCPP_INLINE_VISIBILITY\n  any(_ValueType && __value);\n\n  _LIBCPP_INLINE_VISIBILITY\n  ~any()\n  {\n    this->clear();\n  }\n\n  // 6.3.2 any assignments\n  _LIBCPP_INLINE_VISIBILITY\n  any & operator=(any const & __rhs)\n  {\n    any(__rhs).swap(*this);\n    return *this;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  any & operator=(any && __rhs) _NOEXCEPT\n  {\n    any(_VSTD::move(__rhs)).swap(*this);\n    return *this;\n  }\n\n  template <\n      class _ValueType\n    , class = __any_imp::_EnableIfNotAny<_ValueType>\n    >\n  _LIBCPP_INLINE_VISIBILITY\n  any & operator=(_ValueType && __rhs);\n\n  // 6.3.3 any modifiers\n  _LIBCPP_INLINE_VISIBILITY\n  void clear() _NOEXCEPT\n  {\n    if (__h) this->__call(_Action::_Destroy);\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  void swap(any & __rhs) _NOEXCEPT;\n\n  // 6.3.4 any observers\n  _LIBCPP_INLINE_VISIBILITY\n  bool empty() const _NOEXCEPT\n  {\n    return __h == nullptr;\n  }\n\n#if !defined(_LIBCPP_NO_RTTI)\n  _LIBCPP_INLINE_VISIBILITY\n  const type_info & type() const _NOEXCEPT\n  {\n    if (__h) {\n        return *static_cast<type_info const *>(this->__call(_Action::_TypeInfo));\n    } else {\n        return typeid(void);\n    }\n  }\n#endif\n\nprivate:\n    typedef __any_imp::_Action _Action;\n\n    typedef void* (*_HandleFuncPtr)(_Action, any const *, any *, const type_info *);\n\n    union _Storage\n    {\n        void *  __ptr;\n        __any_imp::_Buffer __buf;\n    };\n\n    _LIBCPP_ALWAYS_INLINE\n    void * __call(_Action __a, any * __other = nullptr,\n                  type_info const * __info = nullptr) const\n    {\n        return __h(__a, this, __other, __info);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    void * __call(_Action __a, any * __other = nullptr,\n                  type_info const * __info = nullptr)\n    {\n        return __h(__a, this, __other, __info);\n    }\n\n    template <class>\n    friend struct __any_imp::_SmallHandler;\n    template <class>\n    friend struct __any_imp::_LargeHandler;\n\n    template <class _ValueType>\n    friend typename add_pointer<typename add_const<_ValueType>::type>::type\n    any_cast(any const *) _NOEXCEPT;\n\n    template <class _ValueType>\n    friend typename add_pointer<_ValueType>::type\n    any_cast(any *) _NOEXCEPT;\n\n    _HandleFuncPtr __h;\n    _Storage __s;\n};\n\nnamespace __any_imp\n{\n\n  template <class _Tp>\n  struct _LIBCPP_TEMPLATE_VIS _SmallHandler\n  {\n     _LIBCPP_INLINE_VISIBILITY\n     static void* __handle(_Action __act, any const * __this, any * __other,\n                           type_info const * __info)\n     {\n        switch (__act)\n        {\n        case _Action::_Destroy:\n          __destroy(const_cast<any &>(*__this));\n          return nullptr;\n        case _Action::_Copy:\n            __copy(*__this, *__other);\n            return nullptr;\n        case _Action::_Move:\n          __move(const_cast<any &>(*__this), *__other);\n          return nullptr;\n        case _Action::_Get:\n            return __get(const_cast<any &>(*__this), __info);\n        case _Action::_TypeInfo:\n          return __type_info();\n        }\n    }\n\n    template <class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n    static void __create(any & __dest, _Up && __v)\n    {\n        ::new (static_cast<void*>(&__dest.__s.__buf)) _Tp(_VSTD::forward<_Up>(__v));\n        __dest.__h = &_SmallHandler::__handle;\n    }\n\n  private:\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void __destroy(any & __this)\n    {\n        _Tp & __value = *static_cast<_Tp *>(static_cast<void*>(&__this.__s.__buf));\n        __value.~_Tp();\n        __this.__h = nullptr;\n    }\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void __copy(any const & __this, any & __dest)\n    {\n        _SmallHandler::__create(__dest, *static_cast<_Tp const *>(\n            static_cast<void const *>(&__this.__s.__buf)));\n    }\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void __move(any & __this, any & __dest)\n    {\n        _SmallHandler::__create(__dest, _VSTD::move(\n            *static_cast<_Tp*>(static_cast<void*>(&__this.__s.__buf))));\n        __destroy(__this);\n    }\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void* __get(any & __this, type_info const * __info)\n    {\n#if !defined(_LIBCPP_NO_RTTI)\n        if (typeid(_Tp) == *__info) {\n            return static_cast<void*>(&__this.__s.__buf);\n        }\n        return nullptr;\n#else\n        return static_cast<void*>(&__this.__s.__buf);\n#endif\n    }\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void* __type_info()\n    {\n#if !defined(_LIBCPP_NO_RTTI)\n        return const_cast<void*>(static_cast<void const *>(&typeid(_Tp)));\n#else\n        return nullptr;\n#endif\n    }\n  };\n\n  template <class _Tp>\n  struct _LIBCPP_TEMPLATE_VIS _LargeHandler\n  {\n    _LIBCPP_INLINE_VISIBILITY\n    static void* __handle(_Action __act, any const * __this, any * __other,\n                          type_info const * __info)\n    {\n        switch (__act)\n        {\n        case _Action::_Destroy:\n          __destroy(const_cast<any &>(*__this));\n          return nullptr;\n        case _Action::_Copy:\n          __copy(*__this, *__other);\n          return nullptr;\n        case _Action::_Move:\n          __move(const_cast<any &>(*__this), *__other);\n          return nullptr;\n        case _Action::_Get:\n            return __get(const_cast<any &>(*__this), __info);\n        case _Action::_TypeInfo:\n          return __type_info();\n        }\n    }\n\n    template <class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n    static void __create(any & __dest, _Up && __v)\n    {\n        typedef allocator<_Tp> _Alloc;\n        typedef __allocator_destructor<_Alloc> _Dp;\n        _Alloc __a;\n        unique_ptr<_Tp, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n        ::new ((void*)__hold.get()) _Tp(_VSTD::forward<_Up>(__v));\n        __dest.__s.__ptr = __hold.release();\n        __dest.__h = &_LargeHandler::__handle;\n    }\n\n  private:\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void __destroy(any & __this)\n    {\n        delete static_cast<_Tp*>(__this.__s.__ptr);\n        __this.__h = nullptr;\n    }\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void __copy(any const & __this, any & __dest)\n    {\n        _LargeHandler::__create(__dest, *static_cast<_Tp const *>(__this.__s.__ptr));\n    }\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void __move(any & __this, any & __dest)\n    {\n      __dest.__s.__ptr = __this.__s.__ptr;\n      __dest.__h = &_LargeHandler::__handle;\n      __this.__h = nullptr;\n    }\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void* __get(any & __this, type_info const * __info)\n    {\n#if !defined(_LIBCPP_NO_RTTI)\n        if (typeid(_Tp) == *__info) {\n            return static_cast<void*>(__this.__s.__ptr);\n        }\n        return nullptr;\n#else\n        return static_cast<void*>(__this.__s.__ptr);\n#endif\n    }\n\n    _LIBCPP_ALWAYS_INLINE _LIBCPP_INLINE_VISIBILITY\n    static void* __type_info()\n    {\n#if !defined(_LIBCPP_NO_RTTI)\n        return const_cast<void*>(static_cast<void const *>(&typeid(_Tp)));\n#else\n        return nullptr;\n#endif\n    }\n  };\n\n} // namespace __any_imp\n\n\ntemplate <class _ValueType, class>\nany::any(_ValueType && __v) : __h(nullptr)\n{\n  typedef typename decay<_ValueType>::type _Tp;\n  static_assert(is_copy_constructible<_Tp>::value,\n                \"_ValueType must be CopyConstructible.\");\n  typedef __any_imp::_Handler<_Tp> _HandlerType;\n  _HandlerType::__create(*this, _VSTD::forward<_ValueType>(__v));\n}\n\ntemplate <class _ValueType, class>\nany & any::operator=(_ValueType && __v)\n{\n  typedef typename decay<_ValueType>::type _Tp;\n  static_assert(is_copy_constructible<_Tp>::value,\n                \"_ValueType must be CopyConstructible.\");\n  any(_VSTD::forward<_ValueType>(__v)).swap(*this);\n  return *this;\n}\n\ninline\nvoid any::swap(any & __rhs) _NOEXCEPT\n{\n    if (__h && __rhs.__h) {\n        any __tmp;\n        __rhs.__call(_Action::_Move, &__tmp);\n        this->__call(_Action::_Move, &__rhs);\n        __tmp.__call(_Action::_Move, this);\n    }\n    else if (__h) {\n        this->__call(_Action::_Move, &__rhs);\n    }\n    else if (__rhs.__h) {\n        __rhs.__call(_Action::_Move, this);\n    }\n}\n\n// 6.4 Non-member functions\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid swap(any & __lhs, any & __rhs) _NOEXCEPT\n{\n    __lhs.swap(__rhs);\n}\n\ntemplate <class _ValueType>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST\n_ValueType any_cast(any const & __v)\n{\n    static_assert(\n        is_reference<_ValueType>::value\n        || is_copy_constructible<_ValueType>::value,\n        \"_ValueType is required to be a reference or a CopyConstructible type.\");\n    typedef typename add_const<typename remove_reference<_ValueType>::type>::type\n            _Tp;\n    _Tp * __tmp = any_cast<_Tp>(&__v);\n    if (__tmp == nullptr)\n        __throw_bad_any_cast();\n    return *__tmp;\n}\n\ntemplate <class _ValueType>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST\n_ValueType any_cast(any & __v)\n{\n    static_assert(\n        is_reference<_ValueType>::value\n        || is_copy_constructible<_ValueType>::value,\n        \"_ValueType is required to be a reference or a CopyConstructible type.\");\n    typedef typename remove_reference<_ValueType>::type _Tp;\n    _Tp * __tmp = any_cast<_Tp>(&__v);\n    if (__tmp == nullptr)\n        __throw_bad_any_cast();\n    return *__tmp;\n}\n\ntemplate <class _ValueType>\n_LIBCPP_INLINE_VISIBILITY _LIBCPP_AVAILABILITY_THROW_BAD_ANY_CAST\n_ValueType any_cast(any && __v)\n{\n    static_assert(\n        is_reference<_ValueType>::value\n        || is_copy_constructible<_ValueType>::value,\n        \"_ValueType is required to be a reference or a CopyConstructible type.\");\n    typedef typename remove_reference<_ValueType>::type _Tp;\n    _Tp * __tmp = any_cast<_Tp>(&__v);\n    if (__tmp == nullptr)\n        __throw_bad_any_cast();\n    return *__tmp;\n}\n\ntemplate <class _ValueType>\ninline\ntypename add_pointer<typename add_const<_ValueType>::type>::type\nany_cast(any const * __any) _NOEXCEPT\n{\n    static_assert(!is_reference<_ValueType>::value,\n                  \"_ValueType may not be a reference.\");\n    return any_cast<_ValueType>(const_cast<any *>(__any));\n}\n\ntemplate <class _ValueType>\ntypename add_pointer<_ValueType>::type\nany_cast(any * __any) _NOEXCEPT\n{\n    using __any_imp::_Action;\n    static_assert(!is_reference<_ValueType>::value,\n                  \"_ValueType may not be a reference.\");\n    typedef typename add_pointer<_ValueType>::type _ReturnType;\n    if (__any && __any->__h) {\n\n        return static_cast<_ReturnType>(\n            __any->__call(_Action::_Get, nullptr,\n#if !defined(_LIBCPP_NO_RTTI)\n                &typeid(_ValueType)\n#else\n                nullptr\n#endif\n        ));\n\n    }\n    return nullptr;\n}\n\n#endif // _LIBCPP_STD_VER > 11\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n#endif // _LIBCPP_EXPERIMENTAL_ANY\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/chrono",
    "content": "// -*- C++ -*-\n//===------------------------------ chrono ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_CHRONO\n#define _LIBCPP_EXPERIMENTAL_CHRONO\n\n/**\n    experimental/chrono synopsis\n\n// C++1y\n\n#include <chrono>\n\nnamespace std {\nnamespace chrono {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\n  // See C++14 20.12.4, customization traits\n  template <class Rep> constexpr bool treat_as_floating_point_v\n    = treat_as_floating_point<Rep>::value;\n\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace chrono\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <chrono>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#if _LIBCPP_STD_VER > 11\n\n_LIBCPP_BEGIN_NAMESPACE_CHRONO_LFTS\n\n#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\n\ntemplate <class _Rep> _LIBCPP_CONSTEXPR bool treat_as_floating_point_v\n    = treat_as_floating_point<_Rep>::value;\n\n#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */\n\n_LIBCPP_END_NAMESPACE_CHRONO_LFTS\n\n#endif /* _LIBCPP_STD_VER > 11 */\n\n#endif /* _LIBCPP_EXPERIMENTAL_CHRONO */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/coroutine",
    "content": "// -*- C++ -*-\n//===----------------------------- coroutine -----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_COROUTINE\n#define _LIBCPP_EXPERIMENTAL_COROUTINE\n\n/**\n    experimental/coroutine synopsis\n\n// C++next\n\nnamespace std {\nnamespace experimental {\ninline namespace coroutines_v1 {\n\n  // 18.11.1 coroutine traits\ntemplate <typename R, typename... ArgTypes>\nclass coroutine_traits;\n// 18.11.2 coroutine handle\ntemplate <typename Promise = void>\nclass coroutine_handle;\n// 18.11.2.7 comparison operators:\nbool operator==(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;\nbool operator!=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;\nbool operator<(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;\nbool operator<=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;\nbool operator>=(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;\nbool operator>(coroutine_handle<> x, coroutine_handle<> y) _NOEXCEPT;\n// 18.11.3 trivial awaitables\nstruct suspend_never;\nstruct suspend_always;\n// 18.11.2.8 hash support:\ntemplate <class T> struct hash;\ntemplate <class P> struct hash<coroutine_handle<P>>;\n\n} // namespace coroutines_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <new>\n#include <type_traits>\n#include <functional>\n#include <memory> // for hash<T*>\n#include <cstddef>\n#include <cassert>\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifdef _LIBCPP_HAS_NO_COROUTINES\n# if defined(_LIBCPP_WARNING)\n    _LIBCPP_WARNING(\"<experimental/coroutine> cannot be used with this compiler\")\n# else\n#   warning <experimental/coroutine> cannot be used with this compiler\n# endif\n#endif\n\n#ifndef _LIBCPP_HAS_NO_COROUTINES\n\n_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL_COROUTINES\n\ntemplate <class _Tp, class = void>\nstruct __coroutine_traits_sfinae {};\n\ntemplate <class _Tp>\nstruct __coroutine_traits_sfinae<\n    _Tp, typename __void_t<typename _Tp::promise_type>::type>\n{\n  using promise_type = typename _Tp::promise_type;\n};\n\ntemplate <typename _Ret, typename... _Args>\nstruct _LIBCPP_TEMPLATE_VIS coroutine_traits\n    : public __coroutine_traits_sfinae<_Ret>\n{\n};\n\ntemplate <typename _Promise = void>\nclass _LIBCPP_TEMPLATE_VIS coroutine_handle;\n\ntemplate <>\nclass _LIBCPP_TEMPLATE_VIS coroutine_handle<void> {\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR coroutine_handle() _NOEXCEPT : __handle_(nullptr) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR coroutine_handle(nullptr_t) _NOEXCEPT : __handle_(nullptr) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    coroutine_handle& operator=(nullptr_t) _NOEXCEPT {\n        __handle_ = nullptr;\n        return *this;\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR void* address() const _NOEXCEPT { return __handle_; }\n\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR explicit operator bool() const _NOEXCEPT { return __handle_; }\n\n    _LIBCPP_ALWAYS_INLINE\n    void operator()() { resume(); }\n\n    _LIBCPP_ALWAYS_INLINE\n    void resume() {\n      _LIBCPP_ASSERT(__is_suspended(),\n                     \"resume() can only be called on suspended coroutines\");\n      _LIBCPP_ASSERT(!done(),\n                \"resume() has undefined behavior when the coroutine is done\");\n      __builtin_coro_resume(__handle_);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    void destroy() {\n      _LIBCPP_ASSERT(__is_suspended(),\n                     \"destroy() can only be called on suspended coroutines\");\n      __builtin_coro_destroy(__handle_);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    bool done() const {\n      _LIBCPP_ASSERT(__is_suspended(),\n                     \"done() can only be called on suspended coroutines\");\n      return __builtin_coro_done(__handle_);\n    }\n\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    static coroutine_handle from_address(void* __addr) _NOEXCEPT {\n        coroutine_handle __tmp;\n        __tmp.__handle_ = __addr;\n        return __tmp;\n    }\n\n    // FIXME: Should from_address(nullptr) be allowed?\n    _LIBCPP_ALWAYS_INLINE\n    static coroutine_handle from_address(nullptr_t) _NOEXCEPT {\n      return coroutine_handle(nullptr);\n    }\n\n    template <class _Tp, bool _CallIsValid = false>\n    static coroutine_handle from_address(_Tp*) {\n      static_assert(_CallIsValid,\n       \"coroutine_handle<void>::from_address cannot be called with \"\n        \"non-void pointers\");\n    }\n\nprivate:\n  bool __is_suspended() const _NOEXCEPT  {\n    // FIXME actually implement a check for if the coro is suspended.\n    return __handle_;\n  }\n\n  template <class _PromiseT> friend class coroutine_handle;\n  void* __handle_;\n};\n\n// 18.11.2.7 comparison operators:\ninline _LIBCPP_ALWAYS_INLINE\nbool operator==(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {\n    return __x.address() == __y.address();\n}\ninline _LIBCPP_ALWAYS_INLINE\nbool operator!=(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {\n    return !(__x == __y);\n}\ninline _LIBCPP_ALWAYS_INLINE\nbool operator<(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {\n    return less<void*>()(__x.address(), __y.address());\n}\ninline _LIBCPP_ALWAYS_INLINE\nbool operator>(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {\n    return __y < __x;\n}\ninline _LIBCPP_ALWAYS_INLINE\nbool operator<=(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {\n    return !(__x > __y);\n}\ninline _LIBCPP_ALWAYS_INLINE\nbool operator>=(coroutine_handle<> __x, coroutine_handle<> __y) _NOEXCEPT {\n    return !(__x < __y);\n}\n\ntemplate <typename _Promise>\nclass _LIBCPP_TEMPLATE_VIS coroutine_handle : public coroutine_handle<> {\n    using _Base = coroutine_handle<>;\npublic:\n#ifndef _LIBCPP_CXX03_LANG\n    // 18.11.2.1 construct/reset\n    using coroutine_handle<>::coroutine_handle;\n#else\n    _LIBCPP_ALWAYS_INLINE coroutine_handle() _NOEXCEPT : _Base() {}\n    _LIBCPP_ALWAYS_INLINE coroutine_handle(nullptr_t) _NOEXCEPT : _Base(nullptr) {}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    coroutine_handle& operator=(nullptr_t) _NOEXCEPT {\n        _Base::operator=(nullptr);\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Promise& promise() const {\n        return *reinterpret_cast<_Promise*>(\n            __builtin_coro_promise(this->__handle_, __alignof(_Promise), false));\n    }\n\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    static coroutine_handle from_address(void* __addr) _NOEXCEPT {\n        coroutine_handle __tmp;\n        __tmp.__handle_ = __addr;\n        return __tmp;\n    }\n\n    // NOTE: this overload isn't required by the standard but is needed so\n    // the deleted _Promise* overload doesn't make from_address(nullptr)\n    // ambiguous.\n    // FIXME: should from_address work with nullptr?\n    _LIBCPP_ALWAYS_INLINE\n    static coroutine_handle from_address(nullptr_t) _NOEXCEPT {\n      return coroutine_handle(nullptr);\n    }\n\n    template <class _Tp, bool _CallIsValid = false>\n    static coroutine_handle from_address(_Tp*) {\n      static_assert(_CallIsValid,\n       \"coroutine_handle<promise_type>::from_address cannot be called with \"\n        \"non-void pointers\");\n    }\n\n    template <bool _CallIsValid = false>\n    static coroutine_handle from_address(_Promise*) {\n      static_assert(_CallIsValid,\n       \"coroutine_handle<promise_type>::from_address cannot be used with \"\n        \"pointers to the coroutine's promise type; use 'from_promise' instead\");\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    static coroutine_handle from_promise(_Promise& __promise) _NOEXCEPT {\n        typedef typename remove_cv<_Promise>::type _RawPromise;\n        coroutine_handle __tmp;\n        __tmp.__handle_ = __builtin_coro_promise(\n            _VSTD::addressof(const_cast<_RawPromise&>(__promise)),\n             __alignof(_Promise), true);\n        return __tmp;\n    }\n};\n\nstruct _LIBCPP_TYPE_VIS suspend_never {\n  _LIBCPP_ALWAYS_INLINE\n  bool await_ready() const _NOEXCEPT { return true; }\n  _LIBCPP_ALWAYS_INLINE\n  void await_suspend(coroutine_handle<>) const _NOEXCEPT {}\n  _LIBCPP_ALWAYS_INLINE\n  void await_resume() const _NOEXCEPT {}\n};\n\nstruct _LIBCPP_TYPE_VIS suspend_always {\n  _LIBCPP_ALWAYS_INLINE\n  bool await_ready() const _NOEXCEPT { return false; }\n  _LIBCPP_ALWAYS_INLINE\n  void await_suspend(coroutine_handle<>) const _NOEXCEPT {}\n  _LIBCPP_ALWAYS_INLINE\n  void await_resume() const _NOEXCEPT {}\n};\n\n_LIBCPP_END_NAMESPACE_EXPERIMENTAL_COROUTINES\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp>\nstruct hash<_VSTD_CORO::coroutine_handle<_Tp> > {\n    using __arg_type = _VSTD_CORO::coroutine_handle<_Tp>;\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(__arg_type const& __v) const _NOEXCEPT\n    {return hash<void*>()(__v.address());}\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif // !defined(_LIBCPP_HAS_NO_COROUTINES)\n\n#endif /* _LIBCPP_EXPERIMENTAL_COROUTINE */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/deque",
    "content": "// -*- C++ -*-\n//===--------------------------- deque ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_DEQUE\n#define _LIBCPP_EXPERIMENTAL_DEQUE\n/*\n    experimental/deque synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class T>\n  using deque = std::deque<T,polymorphic_allocator<T>>;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <deque>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _ValueT>\nusing deque = _VSTD::deque<_ValueT, polymorphic_allocator<_ValueT>>;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_DEQUE */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/dynarray",
    "content": "// -*- C++ -*-\n//===-------------------------- dynarray ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_DYNARRAY\n#define _LIBCPP_DYNARRAY\n\n/*\n    dynarray synopsis\n\nnamespace std { namespace experimental {\n\ntemplate< typename T >\nclass dynarray\n{\n    // types:\n    typedef       T                               value_type;\n    typedef       T&                              reference;\n    typedef const T&                              const_reference;\n    typedef       T*                              pointer;\n    typedef const T*                              const_pointer;\n    typedef       implementation-defined          iterator;\n    typedef       implementation-defined          const_iterator;\n    typedef reverse_iterator<iterator>            reverse_iterator;\n    typedef reverse_iterator<const_iterator>      const_reverse_iterator;\n    typedef size_t                                size_type;\n    typedef ptrdiff_t                             difference_type;\n\npublic:\n    // construct/copy/destroy:\n    explicit dynarray(size_type c);\n    dynarray(size_type c, const T& v);\n    dynarray(const dynarray& d);\n    dynarray(initializer_list<T>);\n\n    template <class Alloc>\n      dynarray(allocator_arg_t, const Alloc& a, size_type c, const Alloc& alloc);\n    template <class Alloc>\n      dynarray(allocator_arg_t, const Alloc& a, size_type c, const T& v, const Alloc& alloc);\n    template <class Alloc>\n      dynarray(allocator_arg_t, const Alloc& a, const dynarray& d, const Alloc& alloc);\n    template <class Alloc>\n      dynarray(allocator_arg_t, const Alloc& a, initializer_list<T>, const Alloc& alloc);\n    dynarray& operator=(const dynarray&) = delete;\n    ~dynarray();\n\n    // iterators:\n    iterator       begin()        noexcept;\n    const_iterator begin()  const noexcept;\n    const_iterator cbegin() const noexcept;\n    iterator       end()          noexcept;\n    const_iterator end()    const noexcept;\n    const_iterator cend()   const noexcept;\n\n    reverse_iterator       rbegin()        noexcept;\n    const_reverse_iterator rbegin()  const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    reverse_iterator       rend()          noexcept;\n    const_reverse_iterator rend()    const noexcept;\n    const_reverse_iterator crend()   const noexcept;\n\n    // capacity:\n    size_type size()     const noexcept;\n    size_type max_size() const noexcept;\n    bool      empty()    const noexcept;\n\n    // element access:\n    reference       operator[](size_type n);\n    const_reference operator[](size_type n) const;\n\n    reference       front();\n    const_reference front() const;\n    reference       back();\n    const_reference back()  const;\n\n    const_reference at(size_type n) const;\n    reference       at(size_type n);\n\n    // data access:\n    T*       data()       noexcept;\n    const T* data() const noexcept;\n\n    // mutating member functions:\n    void fill(const T& v);\n};\n\n}}  // std::experimental\n\n*/\n#include <__config>\n#if _LIBCPP_STD_VER > 11\n\n#include <__functional_base>\n#include <iterator>\n#include <stdexcept>\n#include <initializer_list>\n#include <new>\n#include <algorithm>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\nnamespace std { namespace experimental { inline namespace __array_extensions_v1 {\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_DYNARRAY dynarray\n{\npublic:\n    // types:\n    typedef dynarray __self;\n    typedef _Tp                                   value_type;\n    typedef value_type&                           reference;\n    typedef const value_type&                     const_reference;\n    typedef value_type*                           iterator;\n    typedef const value_type*                     const_iterator;\n    typedef value_type*                           pointer;\n    typedef const value_type*                     const_pointer;\n    typedef size_t                                size_type;\n    typedef ptrdiff_t                             difference_type;\n    typedef std::reverse_iterator<iterator>       reverse_iterator;\n    typedef std::reverse_iterator<const_iterator> const_reverse_iterator;\n\nprivate:\n    size_t                  __size_;\n    value_type *            __base_;\n    _LIBCPP_ALWAYS_INLINE dynarray () noexcept :  __size_(0), __base_(nullptr) {}\n    \n    static inline _LIBCPP_INLINE_VISIBILITY value_type* __allocate ( size_t count )\n    {\n        if ( numeric_limits<size_t>::max() / sizeof (value_type) <= count )\n            __throw_bad_array_length();\n\n        return static_cast<value_type *> (_VSTD::__allocate (sizeof(value_type) * count));\n    }\n\n    static inline _LIBCPP_INLINE_VISIBILITY void __deallocate_value( value_type* __ptr ) noexcept\n    {\n        _VSTD::__libcpp_deallocate (static_cast<void *> (__ptr));\n    }\n\npublic:\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit dynarray(size_type __c);\n    _LIBCPP_INLINE_VISIBILITY\n    dynarray(size_type __c, const value_type& __v);\n    _LIBCPP_INLINE_VISIBILITY\n    dynarray(const dynarray& __d);\n    _LIBCPP_INLINE_VISIBILITY\n    dynarray(initializer_list<value_type>);\n\n//  We're not implementing these right now.\n//  Updated with the resolution of LWG issue #2255\n//     template <typename _Alloc>\n//       dynarray(allocator_arg_t, const _Alloc& __alloc, size_type __c);\n//     template <typename _Alloc>\n//       dynarray(allocator_arg_t, const _Alloc& __alloc, size_type __c, const value_type& __v);\n//     template <typename _Alloc>\n//       dynarray(allocator_arg_t, const _Alloc& __alloc, const dynarray& __d);\n//     template <typename _Alloc>\n//       dynarray(allocator_arg_t, const _Alloc& __alloc, initializer_list<value_type>);\n\n    dynarray& operator=(const dynarray&) = delete;\n    _LIBCPP_INLINE_VISIBILITY\n    ~dynarray();\n\n    // iterators:\n    inline _LIBCPP_INLINE_VISIBILITY iterator       begin()        noexcept { return iterator(data()); }\n    inline _LIBCPP_INLINE_VISIBILITY const_iterator begin()  const noexcept { return const_iterator(data()); }\n    inline _LIBCPP_INLINE_VISIBILITY const_iterator cbegin() const noexcept { return const_iterator(data()); }\n    inline _LIBCPP_INLINE_VISIBILITY iterator       end()          noexcept { return iterator(data() + __size_); }\n    inline _LIBCPP_INLINE_VISIBILITY const_iterator end()    const noexcept { return const_iterator(data() + __size_); }\n    inline _LIBCPP_INLINE_VISIBILITY const_iterator cend()   const noexcept { return const_iterator(data() + __size_); }\n\n    inline _LIBCPP_INLINE_VISIBILITY reverse_iterator       rbegin()        noexcept { return reverse_iterator(end()); }\n    inline _LIBCPP_INLINE_VISIBILITY const_reverse_iterator rbegin()  const noexcept { return const_reverse_iterator(end()); }\n    inline _LIBCPP_INLINE_VISIBILITY const_reverse_iterator crbegin() const noexcept { return const_reverse_iterator(end()); }\n    inline _LIBCPP_INLINE_VISIBILITY reverse_iterator       rend()          noexcept { return reverse_iterator(begin()); }\n    inline _LIBCPP_INLINE_VISIBILITY const_reverse_iterator rend()    const noexcept { return const_reverse_iterator(begin()); }\n    inline _LIBCPP_INLINE_VISIBILITY const_reverse_iterator crend()   const noexcept { return const_reverse_iterator(begin()); }\n\n    // capacity:\n    inline _LIBCPP_INLINE_VISIBILITY size_type size()     const noexcept { return __size_; }\n    inline _LIBCPP_INLINE_VISIBILITY size_type max_size() const noexcept { return __size_; }\n    inline _LIBCPP_INLINE_VISIBILITY bool      empty()    const noexcept { return __size_ == 0; }\n\n    // element access:\n    inline _LIBCPP_INLINE_VISIBILITY reference       operator[](size_type __n)       { return data()[__n]; }\n    inline _LIBCPP_INLINE_VISIBILITY const_reference operator[](size_type __n) const { return data()[__n]; }\n\n    inline _LIBCPP_INLINE_VISIBILITY reference       front()       { return data()[0]; }\n    inline _LIBCPP_INLINE_VISIBILITY const_reference front() const { return data()[0]; }\n    inline _LIBCPP_INLINE_VISIBILITY reference       back()        { return data()[__size_-1]; }\n    inline _LIBCPP_INLINE_VISIBILITY const_reference back()  const { return data()[__size_-1]; }\n\n    inline _LIBCPP_INLINE_VISIBILITY const_reference at(size_type __n) const;\n    inline _LIBCPP_INLINE_VISIBILITY reference       at(size_type __n);\n\n    // data access:\n    inline _LIBCPP_INLINE_VISIBILITY _Tp*       data()       noexcept { return __base_; }\n    inline _LIBCPP_INLINE_VISIBILITY const _Tp* data() const noexcept { return __base_; }\n\n    // mutating member functions:\n    inline _LIBCPP_INLINE_VISIBILITY void fill(const value_type& __v) { fill_n(begin(), __size_, __v); }\n};\n\ntemplate <class _Tp>\ninline\ndynarray<_Tp>::dynarray(size_type __c) : dynarray ()\n{\n    __base_ = __allocate (__c);\n    value_type *__data = data ();\n    for ( __size_ = 0; __size_ < __c; ++__size_, ++__data )\n        ::new (__data) value_type;\n}\n\ntemplate <class _Tp>\ninline\ndynarray<_Tp>::dynarray(size_type __c, const value_type& __v) : dynarray ()\n{\n    __base_ = __allocate (__c);\n    value_type *__data = data ();\n    for ( __size_ = 0; __size_ < __c; ++__size_, ++__data )\n        ::new (__data) value_type (__v);\n}\n\ntemplate <class _Tp>\ninline\ndynarray<_Tp>::dynarray(initializer_list<value_type> __il) : dynarray ()\n{\n    size_t sz = __il.size();\n    __base_ = __allocate (sz);\n    value_type *__data = data ();\n    auto src = __il.begin();\n    for ( __size_ = 0; __size_ < sz; ++__size_, ++__data, ++src )\n        ::new (__data) value_type (*src);\n}\n\ntemplate <class _Tp>\ninline\ndynarray<_Tp>::dynarray(const dynarray& __d) : dynarray ()\n{\n    size_t sz = __d.size();\n    __base_ = __allocate (sz);\n    value_type *__data = data ();\n    auto src = __d.begin();\n    for ( __size_ = 0; __size_ < sz; ++__size_, ++__data, ++src )\n        ::new (__data) value_type (*src);\n}\n\ntemplate <class _Tp>\ninline\ndynarray<_Tp>::~dynarray()\n{ \n    value_type *__data = data () + __size_;\n    for ( size_t i = 0; i < __size_; ++i )\n        (--__data)->value_type::~value_type();\n    __deallocate_value( __base_ );\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename dynarray<_Tp>::reference\ndynarray<_Tp>::at(size_type __n)\n{\n    if (__n >= __size_)\n        __throw_out_of_range(\"dynarray::at\");\n\n    return data()[__n];\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename dynarray<_Tp>::const_reference\ndynarray<_Tp>::at(size_type __n) const\n{\n    if (__n >= __size_)\n        __throw_out_of_range(\"dynarray::at\");\n\n    return data()[__n];\n}\n\n}}}\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\ntemplate <class _Tp, class _Alloc>\nstruct _LIBCPP_TEMPLATE_VIS uses_allocator<std::experimental::dynarray<_Tp>, _Alloc> : true_type {};\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // if _LIBCPP_STD_VER > 11 \n#endif  // _LIBCPP_DYNARRAY\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/forward_list",
    "content": "// -*- C++ -*-\n//===--------------------------- forward_list -----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_FORWARD_LIST\n#define _LIBCPP_EXPERIMENTAL_FORWARD_LIST\n/*\n    experimental/forward_list synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class T>\n  using forward_list = std::forward_list<T,polymorphic_allocator<T>>;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <forward_list>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _ValueT>\nusing forward_list = _VSTD::forward_list<_ValueT, polymorphic_allocator<_ValueT>>;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_FORWARD_LIST */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/functional",
    "content": "// -*- C++ -*-\n//===-------------------------- functional --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_FUNCTIONAL\n#define _LIBCPP_EXPERIMENTAL_FUNCTIONAL\n\n/*\n   experimental/functional synopsis\n\n#include <algorithm>\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\n    // See C++14 20.9.9, Function object binders\n    template <class T> constexpr bool is_bind_expression_v\n      = is_bind_expression<T>::value;\n    template <class T> constexpr int is_placeholder_v\n      = is_placeholder<T>::value;\n\n    // 4.2, Class template function\n    template<class> class function; // undefined\n    template<class R, class... ArgTypes> class function<R(ArgTypes...)>;\n\n    template<class R, class... ArgTypes>\n    void swap(function<R(ArgTypes...)>&, function<R(ArgTypes...)>&);\n\n    template<class R, class... ArgTypes>\n    bool operator==(const function<R(ArgTypes...)>&, nullptr_t) noexcept;\n    template<class R, class... ArgTypes>\n    bool operator==(nullptr_t, const function<R(ArgTypes...)>&) noexcept;\n    template<class R, class... ArgTypes>\n    bool operator!=(const function<R(ArgTypes...)>&, nullptr_t) noexcept;\n    template<class R, class... ArgTypes>\n    bool operator!=(nullptr_t, const function<R(ArgTypes...)>&) noexcept;\n\n    // 4.3, Searchers\n    template<class ForwardIterator, class BinaryPredicate = equal_to<>>\n      class default_searcher;\n\n    template<class RandomAccessIterator,\n             class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,\n             class BinaryPredicate = equal_to<>>\n      class boyer_moore_searcher;\n\n    template<class RandomAccessIterator,\n             class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,\n             class BinaryPredicate = equal_to<>>\n      class boyer_moore_horspool_searcher;\n\n    template<class ForwardIterator, class BinaryPredicate = equal_to<>>\n    default_searcher<ForwardIterator, BinaryPredicate>\n    make_default_searcher(ForwardIterator pat_first, ForwardIterator pat_last,\n                          BinaryPredicate pred = BinaryPredicate());\n\n    template<class RandomAccessIterator,\n             class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,\n             class BinaryPredicate = equal_to<>>\n    boyer_moore_searcher<RandomAccessIterator, Hash, BinaryPredicate>\n    make_boyer_moore_searcher(\n        RandomAccessIterator pat_first, RandomAccessIterator pat_last,\n        Hash hf = Hash(), BinaryPredicate pred = BinaryPredicate());\n\n    template<class RandomAccessIterator,\n             class Hash = hash<typename iterator_traits<RandomAccessIterator>::value_type>,\n             class BinaryPredicate = equal_to<>>\n    boyer_moore_horspool_searcher<RandomAccessIterator, Hash, BinaryPredicate>\n    make_boyer_moore_horspool_searcher(\n        RandomAccessIterator pat_first, RandomAccessIterator pat_last,\n        Hash hf = Hash(), BinaryPredicate pred = BinaryPredicate());\n\n  } // namespace fundamentals_v1\n  } // namespace experimental\n\n  template<class R, class... ArgTypes, class Alloc>\n  struct uses_allocator<experimental::function<R(ArgTypes...)>, Alloc>;\n\n} // namespace std\n\n*/\n\n#include <experimental/__config>\n#include <functional>\n#include <algorithm>\n#include <type_traits>\n#include <vector>\n#include <array>\n#include <unordered_map>\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\n#if _LIBCPP_STD_VER > 11\n// default searcher\ntemplate<class _ForwardIterator, class _BinaryPredicate = equal_to<>>\n_LIBCPP_TYPE_VIS\nclass default_searcher {\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    default_searcher(_ForwardIterator __f, _ForwardIterator __l, \n                       _BinaryPredicate __p = _BinaryPredicate())\n        : __first_(__f), __last_(__l), __pred_(__p) {}\n\n    template <typename _ForwardIterator2>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<_ForwardIterator2, _ForwardIterator2>\n    operator () (_ForwardIterator2 __f, _ForwardIterator2 __l) const\n    {\n        return _VSTD::__search(__f, __l, __first_, __last_, __pred_,\n            typename _VSTD::iterator_traits<_ForwardIterator>::iterator_category(),\n            typename _VSTD::iterator_traits<_ForwardIterator2>::iterator_category());\n    }\n\nprivate:\n    _ForwardIterator __first_;\n    _ForwardIterator __last_;\n    _BinaryPredicate __pred_;\n    };\n\ntemplate<class _ForwardIterator, class _BinaryPredicate = equal_to<>>\n_LIBCPP_INLINE_VISIBILITY\ndefault_searcher<_ForwardIterator, _BinaryPredicate>\nmake_default_searcher( _ForwardIterator __f, _ForwardIterator __l, _BinaryPredicate __p = _BinaryPredicate ())\n{\n    return default_searcher<_ForwardIterator, _BinaryPredicate>(__f, __l, __p);\n}\n\ntemplate<class _Key, class _Value, class _Hash, class _BinaryPredicate, bool /*useArray*/> class _BMSkipTable;\n\n//  General case for BM data searching; use a map\ntemplate<class _Key, typename _Value, class _Hash, class _BinaryPredicate>\nclass _BMSkipTable<_Key, _Value, _Hash, _BinaryPredicate, false> {\npublic: // TODO private:\n    typedef _Value value_type;\n    typedef _Key   key_type;\n\n    const _Value __default_value_;\n    std::unordered_map<_Key, _Value, _Hash, _BinaryPredicate> __table;\n    \npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    _BMSkipTable(std::size_t __sz, _Value __default, _Hash __hf, _BinaryPredicate __pred)\n        : __default_value_(__default), __table(__sz, __hf, __pred) {}\n    \n    _LIBCPP_INLINE_VISIBILITY\n    void insert(const key_type &__key, value_type __val)\n    {\n        __table [__key] = __val;    // Would skip_.insert (val) be better here?\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type operator [](const key_type & __key) const\n    {\n        auto __it = __table.find (__key);\n        return __it == __table.end() ? __default_value_ : __it->second;\n    }\n};\n    \n\n//  Special case small numeric values; use an array\ntemplate<class _Key, typename _Value, class _Hash, class _BinaryPredicate>\nclass _BMSkipTable<_Key, _Value, _Hash, _BinaryPredicate, true> {\nprivate:\n    typedef _Value value_type;\n    typedef _Key   key_type;\n\n    typedef typename std::make_unsigned<key_type>::type unsigned_key_type;\n    typedef std::array<value_type, _VSTD::numeric_limits<unsigned_key_type>::max()> skip_map;\n    skip_map __table;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    _BMSkipTable(std::size_t /*__sz*/, _Value __default, _Hash /*__hf*/, _BinaryPredicate /*__pred*/)\n    {\n        std::fill_n(__table.begin(), __table.size(), __default);\n    }\n    \n    _LIBCPP_INLINE_VISIBILITY\n    void insert(key_type __key, value_type __val)\n    {\n        __table[static_cast<unsigned_key_type>(__key)] = __val;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type operator [](key_type __key) const\n    {\n        return __table[static_cast<unsigned_key_type>(__key)];\n    }\n};\n\n\ntemplate <class _RandomAccessIterator1, \n          class _Hash = hash<typename iterator_traits<_RandomAccessIterator1>::value_type>, \n          class _BinaryPredicate = equal_to<>>\n_LIBCPP_TYPE_VIS\nclass boyer_moore_searcher {\nprivate:\n    typedef typename std::iterator_traits<_RandomAccessIterator1>::difference_type difference_type;\n    typedef typename std::iterator_traits<_RandomAccessIterator1>::value_type      value_type;\n    typedef _BMSkipTable<value_type, difference_type, _Hash, _BinaryPredicate,\n                    _VSTD::is_integral<value_type>::value && // what about enums?\n                    sizeof(value_type) == 1 &&\n                    is_same<_Hash, hash<value_type>>::value &&\n                    is_same<_BinaryPredicate, equal_to<>>::value\n            > skip_table_type;\n    \npublic:\n    boyer_moore_searcher(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l, \n                _Hash __hf = _Hash(), _BinaryPredicate __pred = _BinaryPredicate())\n            : __first_(__f), __last_(__l), __pred_(__pred),\n              __pattern_length_(_VSTD::distance(__first_, __last_)),\n              __skip_{make_shared<skip_table_type>(__pattern_length_, -1, __hf, __pred_)},\n              __suffix_{make_shared<vector<difference_type>>(__pattern_length_ + 1)}\n        {\n    //  build the skip table\n        for ( difference_type __i = 0; __f != __l; ++__f, (void) ++__i )\n            __skip_->insert(*__f, __i);\n\n        this->__build_suffix_table ( __first_, __last_, __pred_ );\n        }\n        \n    template <typename _RandomAccessIterator2>\n    pair<_RandomAccessIterator2, _RandomAccessIterator2>\n    operator ()(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const\n    {\n        static_assert ( std::is_same<\n                typename std::decay<typename std::iterator_traits<_RandomAccessIterator1>::value_type>::type, \n                typename std::decay<typename std::iterator_traits<_RandomAccessIterator2>::value_type>::type\n                    >::value,\n                \"Corpus and Pattern iterators must point to the same type\" );\n\n        if (__f      == __l )    return make_pair(__l, __l); // empty corpus\n        if (__first_ == __last_) return make_pair(__f, __f); // empty pattern\n\n    //  If the pattern is larger than the corpus, we can't find it!\n        if ( __pattern_length_ > _VSTD::distance (__f, __l)) \n            return make_pair(__l, __l);\n\n    //  Do the search \n        return this->__search(__f, __l);\n    }\n        \npublic: // TODO private:\n    _RandomAccessIterator1               __first_;\n    _RandomAccessIterator1               __last_;\n    _BinaryPredicate                     __pred_;\n    difference_type                      __pattern_length_;\n    shared_ptr<skip_table_type>          __skip_;\n    shared_ptr<vector<difference_type>>  __suffix_;\n\n    template <typename _RandomAccessIterator2>\n    pair<_RandomAccessIterator2, _RandomAccessIterator2>\n    __search(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const\n    {\n        _RandomAccessIterator2 __cur = __f;\n        const _RandomAccessIterator2 __last = __l - __pattern_length_;\n        const skip_table_type &         __skip   = *__skip_.get();\n        const vector<difference_type> & __suffix = *__suffix_.get();\n        \n        while (__cur <= __last)\n        {\n\n        //  Do we match right where we are?\n            difference_type __j = __pattern_length_;\n            while (__pred_(__first_ [__j-1], __cur [__j-1])) {\n                __j--;\n            //  We matched - we're done!\n                if ( __j == 0 )\n                    return make_pair(__cur, __cur + __pattern_length_);\n                }\n            \n        //  Since we didn't match, figure out how far to skip forward\n            difference_type __k = __skip[__cur [ __j - 1 ]];\n            difference_type __m = __j - __k - 1;\n            if (__k < __j && __m > __suffix[ __j ])\n                __cur += __m;\n            else\n                __cur += __suffix[ __j ];\n        }\n    \n        return make_pair(__l, __l);     // We didn't find anything\n    }\n\n\n    template<typename _Iterator, typename _Container>\n    void __compute_bm_prefix ( _Iterator __f, _Iterator __l, _BinaryPredicate __pred, _Container &__prefix )\n    {\n        const std::size_t __count = _VSTD::distance(__f, __l);\n                        \n        __prefix[0] = 0;\n        std::size_t __k = 0;\n        for ( std::size_t __i = 1; __i < __count; ++__i )\n        {\n            while ( __k > 0 && !__pred ( __f[__k], __f[__i] ))\n                __k = __prefix [ __k - 1 ];\n                \n            if ( __pred ( __f[__k], __f[__i] ))\n                __k++;\n            __prefix [ __i ] = __k;\n        }\n    }\n\n    void __build_suffix_table(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l, \n                                                    _BinaryPredicate __pred)\n    {\n        const std::size_t __count = _VSTD::distance(__f, __l);\n        vector<difference_type> & __suffix = *__suffix_.get();\n        if (__count > 0)\n        {\n            _VSTD::vector<value_type> __scratch(__count);\n            \n            __compute_bm_prefix(__f, __l, __pred, __scratch);\n            for ( std::size_t __i = 0; __i <= __count; __i++ )\n                __suffix[__i] = __count - __scratch[__count-1];\n    \n            typedef _VSTD::reverse_iterator<_RandomAccessIterator1> _RevIter;\n            __compute_bm_prefix(_RevIter(__l), _RevIter(__f), __pred, __scratch);\n     \n            for ( std::size_t __i = 0; __i < __count; __i++ )\n            {\n                const std::size_t     __j = __count - __scratch[__i];\n                const difference_type __k = __i     - __scratch[__i] + 1;\n     \n                if (__suffix[__j] > __k)\n                    __suffix[__j] = __k;\n            }\n        }\n    }\n\n};\n\ntemplate<class _RandomAccessIterator, \n         class _Hash = hash<typename iterator_traits<_RandomAccessIterator>::value_type>, \n         class _BinaryPredicate = equal_to<>>\n_LIBCPP_INLINE_VISIBILITY\nboyer_moore_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>\nmake_boyer_moore_searcher( _RandomAccessIterator __f, _RandomAccessIterator __l, \n                    _Hash __hf = _Hash(), _BinaryPredicate __p = _BinaryPredicate ())\n{\n    return boyer_moore_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>(__f, __l, __hf, __p);\n}\n\n// boyer-moore-horspool\ntemplate <class _RandomAccessIterator1, \n          class _Hash = hash<typename iterator_traits<_RandomAccessIterator1>::value_type>, \n          class _BinaryPredicate = equal_to<>>\n_LIBCPP_TYPE_VIS\nclass boyer_moore_horspool_searcher {\nprivate:\n    typedef typename std::iterator_traits<_RandomAccessIterator1>::difference_type difference_type;\n    typedef typename std::iterator_traits<_RandomAccessIterator1>::value_type      value_type;\n    typedef _BMSkipTable<value_type, difference_type, _Hash, _BinaryPredicate,\n                    _VSTD::is_integral<value_type>::value && // what about enums?\n                    sizeof(value_type) == 1 &&\n                    is_same<_Hash, hash<value_type>>::value &&\n                    is_same<_BinaryPredicate, equal_to<>>::value\n            > skip_table_type;\n\npublic:\n    boyer_moore_horspool_searcher(_RandomAccessIterator1 __f, _RandomAccessIterator1 __l, \n                _Hash __hf = _Hash(), _BinaryPredicate __pred = _BinaryPredicate())\n            : __first_(__f), __last_(__l), __pred_(__pred),\n              __pattern_length_(_VSTD::distance(__first_, __last_)),\n              __skip_{_VSTD::make_shared<skip_table_type>(__pattern_length_, __pattern_length_, __hf, __pred_)}\n        {\n    //  build the skip table\n            if ( __f != __l )\n            {\n                __l = __l - 1;\n                for ( difference_type __i = 0; __f != __l; ++__f, (void) ++__i )\n                    __skip_->insert(*__f, __pattern_length_ - 1 - __i);\n            }\n        }\n            \n    template <typename _RandomAccessIterator2>\n    pair<_RandomAccessIterator2, _RandomAccessIterator2>\n    operator ()(_RandomAccessIterator2 __f, _RandomAccessIterator2 __l) const\n    {\n        static_assert ( std::is_same<\n                typename std::decay<typename std::iterator_traits<_RandomAccessIterator1>::value_type>::type, \n                typename std::decay<typename std::iterator_traits<_RandomAccessIterator2>::value_type>::type\n                    >::value,\n                \"Corpus and Pattern iterators must point to the same type\" );\n\n        if (__f      == __l )    return make_pair(__l, __l); // empty corpus\n        if (__first_ == __last_) return make_pair(__f, __f); // empty pattern\n\n    //  If the pattern is larger than the corpus, we can't find it!\n        if ( __pattern_length_ > _VSTD::distance (__f, __l)) \n            return make_pair(__l, __l);\n\n    //  Do the search \n        return this->__search(__f, __l);\n    }\n        \nprivate:\n    _RandomAccessIterator1      __first_;\n    _RandomAccessIterator1      __last_;\n    _BinaryPredicate            __pred_;\n    difference_type             __pattern_length_;\n    shared_ptr<skip_table_type> __skip_;\n\n    template <typename _RandomAccessIterator2>\n    pair<_RandomAccessIterator2, _RandomAccessIterator2>\n    __search ( _RandomAccessIterator2 __f, _RandomAccessIterator2 __l ) const {\n        _RandomAccessIterator2 __cur = __f;\n        const _RandomAccessIterator2 __last = __l - __pattern_length_;\n        const skip_table_type & __skip = *__skip_.get();\n\n        while (__cur <= __last)\n        {\n        //  Do we match right where we are?\n            difference_type __j = __pattern_length_;\n            while (__pred_(__first_[__j-1], __cur[__j-1]))\n            {\n                __j--;\n            //  We matched - we're done!\n                if ( __j == 0 )\n                    return make_pair(__cur, __cur + __pattern_length_);\n            }\n            __cur += __skip[__cur[__pattern_length_-1]];\n        }\n        \n        return make_pair(__l, __l);\n    }\n};\n\ntemplate<class _RandomAccessIterator, \n         class _Hash = hash<typename iterator_traits<_RandomAccessIterator>::value_type>, \n         class _BinaryPredicate = equal_to<>>\n_LIBCPP_INLINE_VISIBILITY\nboyer_moore_horspool_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>\nmake_boyer_moore_horspool_searcher( _RandomAccessIterator __f, _RandomAccessIterator __l, \n                    _Hash __hf = _Hash(), _BinaryPredicate __p = _BinaryPredicate ())\n{\n    return boyer_moore_horspool_searcher<_RandomAccessIterator, _Hash, _BinaryPredicate>(__f, __l, __hf, __p);\n}\n\n#endif // _LIBCPP_STD_VER > 11\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n_LIBCPP_POP_MACROS\n\n#endif /* _LIBCPP_EXPERIMENTAL_FUNCTIONAL */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/iterator",
    "content": "// -*- C++ -*-\n//===----------------------------- iterator -------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_ITERATOR\n#define _LIBCPP_EXPERIMENTAL_ITERATOR\n\n/*\nnamespace std {\n  namespace experimental {\n    inline namespace fundamentals_v2 {\n\n    template <class DelimT, class charT = char, class traits = char_traits<charT>>\n        class ostream_joiner {\n        public:\n         typedef charT                        char_type;\n         typedef traits                       traits_type;\n         typedef basic_ostream<charT, traits> ostream_type;\n         typedef output_iterator_tag          iterator_category;\n         typedef void                         value_type;\n         typedef void                         difference_type;\n         typedef void                         pointer;\n         typedef void                         reference;\n      \n         ostream_joiner(ostream_type& s, const DelimT& delimiter);\n         ostream_joiner(ostream_type& s, DelimT&& delimiter);\n\n         template<typename T>  \n         ostream_joiner& operator=(const T& value);\n\n         ostream_joiner& operator*() noexcept;\n         ostream_joiner& operator++() noexcept;\n         ostream_joiner& operator++(int) noexcept;\n   private:\n      ostream_type* out_stream;   // exposition only \n      DelimT delim;               // exposition only \n      bool first_element;         // exposition only\n   };\n\n  template <class charT, class traits, class DelimT>\n    ostream_joiner<decay_t<DelimT>, charT, traits>\n    make_ostream_joiner(basic_ostream<charT, traits>& os, DelimT&& delimiter);\n\n    } // inline namespace fundamentals_v2\n  } // namespace experimental\n} // namespace std\n\n*/\n\n#include <experimental/__config>\n\n#if _LIBCPP_STD_VER > 11\n\n#include <iterator>\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\ntemplate <class _Delim, class _CharT = char, class _Traits = char_traits<_CharT>>\nclass ostream_joiner {\npublic:\n\n    typedef _CharT                               char_type;\n    typedef _Traits                              traits_type;\n    typedef basic_ostream<char_type,traits_type> ostream_type;\n    typedef output_iterator_tag                  iterator_category;\n    typedef void                                 value_type;\n    typedef void                                 difference_type;\n    typedef void                                 pointer;\n    typedef void                                 reference;\n\n    ostream_joiner(ostream_type& __os, _Delim&& __d)\n        : __output(_VSTD::addressof(__os)), __delim(_VSTD::move(__d)), __first(true) {}\n        \n    ostream_joiner(ostream_type& __os, const _Delim& __d)\n        : __output(_VSTD::addressof(__os)), __delim(__d), __first(true) {}\n    \n\n    template<typename _Tp>\n    ostream_joiner& operator=(const _Tp& __v)\n    {\n        if (!__first)\n            *__output << __delim;\n        __first = false;\n        *__output << __v;\n        return *this;\n    }\n\n    ostream_joiner& operator*()     _NOEXCEPT { return *this; }\n    ostream_joiner& operator++()    _NOEXCEPT { return *this; }\n    ostream_joiner& operator++(int) _NOEXCEPT { return *this; }\n\nprivate:\n    ostream_type*   __output;\n    _Delim          __delim;\n    bool            __first;\n};\n\n\ntemplate <class _CharT, class _Traits, class _Delim>\nostream_joiner<typename decay<_Delim>::type, _CharT, _Traits>\nmake_ostream_joiner(basic_ostream<_CharT, _Traits>& __os, _Delim && __d)\n{ return ostream_joiner<typename decay<_Delim>::type, _CharT, _Traits>(__os, _VSTD::forward<_Delim>(__d)); }\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n#endif /* _LIBCPP_STD_VER > 11 */\n\n#endif // _LIBCPP_EXPERIMENTAL_ITERATOR\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/list",
    "content": "// -*- C++ -*-\n//===--------------------------- list ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_LIST\n#define _LIBCPP_EXPERIMENTAL_LIST\n/*\n    experimental/list synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class T>\n  using list = std::list<T,polymorphic_allocator<T>>;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <list>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _ValueT>\nusing list = _VSTD::list<_ValueT, polymorphic_allocator<_ValueT>>;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_LIST */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/map",
    "content": "// -*- C++ -*-\n//===----------------------------- map ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_MAP\n#define _LIBCPP_EXPERIMENTAL_MAP\n/*\n    experimental/map synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class Key, class T, class Compare = less<Key>>\n  using map = std::map<Key, T, Compare,\n                       polymorphic_allocator<pair<const Key,T>>>;\n\n  template <class Key, class T, class Compare = less<Key>>\n  using multimap = std::multimap<Key, T, Compare,\n                                 polymorphic_allocator<pair<const Key,T>>>;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <map>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _Key, class _Value, class  _Compare = less<_Key>>\nusing map = _VSTD::map<_Key, _Value, _Compare,\n                        polymorphic_allocator<pair<const _Key, _Value>>>;\n\ntemplate <class _Key, class _Value, class  _Compare = less<_Key>>\nusing multimap = _VSTD::multimap<_Key, _Value, _Compare,\n                        polymorphic_allocator<pair<const _Key, _Value>>>;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_MAP */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/memory_resource",
    "content": "// -*- C++ -*-\n//===------------------------ memory_resource -----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_MEMORY_RESOURCE\n#define _LIBCPP_EXPERIMENTAL_MEMORY_RESOURCE\n\n/**\n    experimental/memory_resource synopsis\n\n// C++1y\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  class memory_resource;\n\n  bool operator==(const memory_resource& a,\n                  const memory_resource& b) noexcept;\n  bool operator!=(const memory_resource& a,\n                  const memory_resource& b) noexcept;\n\n  template <class Tp> class polymorphic_allocator;\n\n  template <class T1, class T2>\n  bool operator==(const polymorphic_allocator<T1>& a,\n                  const polymorphic_allocator<T2>& b) noexcept;\n  template <class T1, class T2>\n  bool operator!=(const polymorphic_allocator<T1>& a,\n                  const polymorphic_allocator<T2>& b) noexcept;\n\n  // The name resource_adaptor_imp is for exposition only.\n  template <class Allocator> class resource_adaptor_imp;\n\n  template <class Allocator>\n    using resource_adaptor = resource_adaptor_imp<\n      allocator_traits<Allocator>::rebind_alloc<char>>;\n\n  // Global memory resources\n  memory_resource* new_delete_resource() noexcept;\n  memory_resource* null_memory_resource() noexcept;\n\n  // The default memory resource\n  memory_resource* set_default_resource(memory_resource* r) noexcept;\n  memory_resource* get_default_resource() noexcept;\n\n  // Standard memory resources\n  struct pool_options;\n  class synchronized_pool_resource;\n  class unsynchronized_pool_resource;\n  class monotonic_buffer_resource;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <experimental/__memory>\n#include <limits>\n#include <memory>\n#include <new>\n#include <stdexcept>\n#include <tuple>\n#include <type_traits>\n#include <utility>\n#include <cstddef>\n#include <cstdlib>\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\n// Round __s up to next multiple of __a.\ninline _LIBCPP_INLINE_VISIBILITY\nsize_t __aligned_allocation_size(size_t __s, size_t __a) _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s + __a > __s, \"aligned allocation size overflows\");\n    return (__s + __a - 1) & ~(__a - 1);\n}\n\n// 8.5, memory.resource\nclass _LIBCPP_TEMPLATE_VIS memory_resource\n{\n    static const size_t __max_align = alignof(max_align_t);\n\n// 8.5.2, memory.resource.public\npublic:\n    virtual ~memory_resource() = default;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void* allocate(size_t __bytes, size_t __align = __max_align)\n        { return do_allocate(__bytes, __align); }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void deallocate(void * __p, size_t __bytes, size_t __align = __max_align)\n        { do_deallocate(__p, __bytes, __align); }\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool is_equal(memory_resource const & __other) const _NOEXCEPT\n        { return do_is_equal(__other); }\n\n// 8.5.3, memory.resource.priv\nprotected:\n    virtual void* do_allocate(size_t, size_t) = 0;\n    virtual void do_deallocate(void*, size_t, size_t) = 0;\n    virtual bool do_is_equal(memory_resource const &) const _NOEXCEPT = 0;\n};\n\n// 8.5.4, memory.resource.eq\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator==(memory_resource const & __lhs,\n                memory_resource const & __rhs) _NOEXCEPT\n{\n    return &__lhs == &__rhs || __lhs.is_equal(__rhs);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator!=(memory_resource const & __lhs,\n                memory_resource const & __rhs) _NOEXCEPT\n{\n    return !(__lhs == __rhs);\n}\n\n_LIBCPP_FUNC_VIS\nmemory_resource * new_delete_resource() _NOEXCEPT;\n\n_LIBCPP_FUNC_VIS\nmemory_resource * null_memory_resource() _NOEXCEPT;\n\n_LIBCPP_FUNC_VIS\nmemory_resource * get_default_resource() _NOEXCEPT;\n\n_LIBCPP_FUNC_VIS\nmemory_resource * set_default_resource(memory_resource * __new_res) _NOEXCEPT;\n\n// 8.6, memory.polymorphic.allocator.class\n\n// 8.6.1, memory.polymorphic.allocator.overview\ntemplate <class _ValueType>\nclass _LIBCPP_TEMPLATE_VIS polymorphic_allocator\n{\npublic:\n    typedef _ValueType value_type;\n\n    // 8.6.2, memory.polymorphic.allocator.ctor\n    _LIBCPP_INLINE_VISIBILITY\n    polymorphic_allocator() _NOEXCEPT\n      : __res_(_VSTD_LFTS_PMR::get_default_resource())\n    {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    polymorphic_allocator(memory_resource * __r) _NOEXCEPT\n      : __res_(__r)\n    {}\n\n    polymorphic_allocator(polymorphic_allocator const &) = default;\n\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY\n    polymorphic_allocator(polymorphic_allocator<_Tp> const & __other) _NOEXCEPT\n      : __res_(__other.resource())\n    {}\n\n    polymorphic_allocator &\n    operator=(polymorphic_allocator const &) = delete;\n\n    // 8.6.3, memory.polymorphic.allocator.mem\n    _LIBCPP_INLINE_VISIBILITY\n    _ValueType* allocate(size_t __n) {\n        if (__n > __max_size()) {\n            __throw_length_error(\n                \"std::experimental::pmr::polymorphic_allocator<T>::allocate(size_t n)\"\n                \" 'n' exceeds maximum supported size\");\n        }\n        return static_cast<_ValueType*>(\n            __res_->allocate(__n * sizeof(_ValueType), alignof(_ValueType))\n        );\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void deallocate(_ValueType * __p, size_t __n) _NOEXCEPT {\n        _LIBCPP_ASSERT(__n <= __max_size(),\n                       \"deallocate called for size which exceeds max_size()\");\n        __res_->deallocate(__p, __n * sizeof(_ValueType), alignof(_ValueType));\n    }\n\n    template <class _Tp, class ..._Ts>\n    _LIBCPP_INLINE_VISIBILITY\n    void construct(_Tp* __p, _Ts &&... __args)\n    {\n        _VSTD_LFTS::__lfts_user_alloc_construct(\n            __p, resource(), _VSTD::forward<_Ts>(__args)...\n          );\n    }\n\n    template <class _T1, class _T2, class ..._Args1, class ..._Args2>\n    _LIBCPP_INLINE_VISIBILITY\n    void construct(pair<_T1, _T2>* __p, piecewise_construct_t,\n                   tuple<_Args1...> __x, tuple<_Args2...> __y)\n    {\n        ::new ((void*)__p) pair<_T1, _T2>(piecewise_construct\n          , __transform_tuple(\n              typename __lfts_uses_alloc_ctor<\n                  _T1, memory_resource*, _Args1...\n              >::type()\n            , _VSTD::move(__x)\n            , typename __make_tuple_indices<sizeof...(_Args1)>::type{}\n          )\n          , __transform_tuple(\n              typename __lfts_uses_alloc_ctor<\n                  _T2, memory_resource*, _Args2...\n              >::type()\n            , _VSTD::move(__y)\n            , typename __make_tuple_indices<sizeof...(_Args2)>::type{}\n          )\n        );\n    }\n\n    template <class _T1, class _T2>\n    _LIBCPP_INLINE_VISIBILITY\n    void construct(pair<_T1, _T2>* __p) {\n        construct(__p, piecewise_construct, tuple<>(), tuple<>());\n    }\n\n    template <class _T1, class _T2, class _Up, class _Vp>\n    _LIBCPP_INLINE_VISIBILITY\n    void construct(pair<_T1, _T2> * __p, _Up && __u, _Vp && __v) {\n        construct(__p, piecewise_construct\n          , _VSTD::forward_as_tuple(_VSTD::forward<_Up>(__u))\n          , _VSTD::forward_as_tuple(_VSTD::forward<_Vp>(__v)));\n    }\n\n    template <class _T1, class _T2, class _U1, class _U2>\n    _LIBCPP_INLINE_VISIBILITY\n    void construct(pair<_T1, _T2> * __p, pair<_U1, _U2> const & __pr) {\n        construct(__p, piecewise_construct\n            , _VSTD::forward_as_tuple(__pr.first)\n            , _VSTD::forward_as_tuple(__pr.second));\n    }\n\n    template <class _T1, class _T2, class _U1, class _U2>\n    _LIBCPP_INLINE_VISIBILITY\n    void construct(pair<_T1, _T2> * __p, pair<_U1, _U2> && __pr){\n        construct(__p, piecewise_construct\n            , _VSTD::forward_as_tuple(_VSTD::forward<_U1>(__pr.first))\n            , _VSTD::forward_as_tuple(_VSTD::forward<_U2>(__pr.second)));\n    }\n\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY\n    void destroy(_Tp * __p) _NOEXCEPT\n        { __p->~_Tp(); }\n\n    _LIBCPP_INLINE_VISIBILITY\n    polymorphic_allocator\n    select_on_container_copy_construction() const _NOEXCEPT\n        { return polymorphic_allocator(); }\n\n    _LIBCPP_INLINE_VISIBILITY\n    memory_resource * resource() const _NOEXCEPT\n        { return __res_; }\n\nprivate:\n    template <class ..._Args, size_t ..._Idx>\n    _LIBCPP_INLINE_VISIBILITY\n    tuple<_Args&&...>\n    __transform_tuple(integral_constant<int, 0>, tuple<_Args...>&& __t,\n                      __tuple_indices<_Idx...>) const\n    {\n        return _VSTD::forward_as_tuple(_VSTD::get<_Idx>(_VSTD::move(__t))...);\n    }\n\n    template <class ..._Args, size_t ..._Idx>\n    _LIBCPP_INLINE_VISIBILITY\n    tuple<allocator_arg_t const&, memory_resource*, _Args&&...>\n    __transform_tuple(integral_constant<int, 1>, tuple<_Args...> && __t,\n                      __tuple_indices<_Idx...>) const\n    {\n        using _Tup = tuple<allocator_arg_t const&, memory_resource*, _Args&&...>;\n        return _Tup(allocator_arg, resource(),\n                    _VSTD::get<_Idx>(_VSTD::move(__t))...);\n    }\n\n    template <class ..._Args, size_t ..._Idx>\n    _LIBCPP_INLINE_VISIBILITY\n    tuple<_Args&&..., memory_resource*>\n    __transform_tuple(integral_constant<int, 2>, tuple<_Args...> && __t,\n                      __tuple_indices<_Idx...>) const\n    {\n        using _Tup = tuple<_Args&&..., memory_resource*>;\n        return _Tup(_VSTD::get<_Idx>(_VSTD::move(__t))..., resource());\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t __max_size() const _NOEXCEPT\n        { return numeric_limits<size_t>::max() / sizeof(value_type); }\n\n    memory_resource * __res_;\n};\n\n// 8.6.4, memory.polymorphic.allocator.eq\n\ntemplate <class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator==(polymorphic_allocator<_Tp> const & __lhs,\n                polymorphic_allocator<_Up> const & __rhs) _NOEXCEPT\n{\n    return *__lhs.resource() == *__rhs.resource();\n}\n\ntemplate <class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator!=(polymorphic_allocator<_Tp> const & __lhs,\n                polymorphic_allocator<_Up> const & __rhs) _NOEXCEPT\n{\n    return !(__lhs == __rhs);\n}\n\n// 8.7, memory.resource.adaptor\n\n// 8.7.1, memory.resource.adaptor.overview\ntemplate <class _CharAlloc>\nclass _LIBCPP_TEMPLATE_VIS __resource_adaptor_imp\n  : public memory_resource\n{\n    using _CTraits = allocator_traits<_CharAlloc>;\n    static_assert(is_same<typename _CTraits::value_type, char>::value\n               && is_same<typename _CTraits::pointer, char*>::value\n               && is_same<typename _CTraits::void_pointer, void*>::value, \"\");\n\n    static const size_t _MaxAlign = alignof(max_align_t);\n\n    using _Alloc = typename _CTraits::template rebind_alloc<\n            typename aligned_storage<_MaxAlign, _MaxAlign>::type\n        >;\n\n    using _ValueType = typename _Alloc::value_type;\n\n    _Alloc __alloc_;\n\npublic:\n    typedef _CharAlloc allocator_type;\n\n    __resource_adaptor_imp() = default;\n    __resource_adaptor_imp(__resource_adaptor_imp const &) = default;\n    __resource_adaptor_imp(__resource_adaptor_imp &&) = default;\n\n    // 8.7.2, memory.resource.adaptor.ctor\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __resource_adaptor_imp(allocator_type const & __a)\n      : __alloc_(__a)\n    {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __resource_adaptor_imp(allocator_type && __a)\n      : __alloc_(_VSTD::move(__a))\n    {}\n\n    __resource_adaptor_imp &\n    operator=(__resource_adaptor_imp const &) = default;\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const\n    { return __alloc_; }\n\n// 8.7.3, memory.resource.adaptor.mem\nprotected:\n    virtual void * do_allocate(size_t __bytes, size_t)\n    {\n        if (__bytes > __max_size()) {\n            __throw_length_error(\n                \"std::experimental::pmr::resource_adaptor<T>::do_allocate(size_t bytes, size_t align)\"\n                \" 'bytes' exceeds maximum supported size\");\n        }\n        size_t __s = __aligned_allocation_size(__bytes, _MaxAlign) / _MaxAlign;\n        return __alloc_.allocate(__s);\n    }\n\n    virtual void do_deallocate(void * __p, size_t __bytes, size_t)\n    {\n        _LIBCPP_ASSERT(__bytes <= __max_size(),\n            \"do_deallocate called for size which exceeds the maximum allocation size\");\n        size_t __s = __aligned_allocation_size(__bytes, _MaxAlign) / _MaxAlign;\n        __alloc_.deallocate((_ValueType*)__p, __s);\n    }\n\n    virtual bool do_is_equal(memory_resource const & __other) const _NOEXCEPT {\n        __resource_adaptor_imp const * __p\n          = dynamic_cast<__resource_adaptor_imp const *>(&__other);\n        return __p  ? __alloc_ == __p->__alloc_ : false;\n    }\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    size_t __max_size() const _NOEXCEPT {\n        return numeric_limits<size_t>::max() - _MaxAlign;\n    }\n};\n\ntemplate <class _Alloc>\nusing resource_adaptor = __resource_adaptor_imp<\n    typename allocator_traits<_Alloc>::template rebind_alloc<char>\n  >;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n_LIBCPP_POP_MACROS\n\n#endif /* _LIBCPP_EXPERIMENTAL_MEMORY_RESOURCE */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/numeric",
    "content": "// -*- C++ -*-\n//===--------------------------- numeric ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_NUMERIC\n#define _LIBCPP_EXPERIMENTAL_NUMERIC\n/*\n    experimental/numeric synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v2 {\n\n  // 13.1.2, Greatest common divisor\n  template<class M, class N>\n  constexpr common_type_t<M,N> gcd(M m, N n);\n\n  // 13.1.3, Least common multiple\n  template<class M, class N>\n  constexpr common_type_t<M,N> lcm(M m, N n);\n\n} // namespace fundamentals_v2\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <numeric>\n#include <type_traits>              // is_integral\n#include <limits>                   // numeric_limits\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n#if _LIBCPP_STD_VER > 11\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_V2\n\ntemplate <typename _Result, typename _Source, bool _IsSigned = is_signed<_Source>::value> struct __abs;\n\ntemplate <typename _Result, typename _Source>\nstruct __abs<_Result, _Source, true> {\n    _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n    _Result operator()(_Source __t) const noexcept\n    {\n    if (__t >= 0) return __t;\n    if (__t == numeric_limits<_Source>::min()) return -static_cast<_Result>(__t);\n    return -__t;\n    }\n};\n\ntemplate <typename _Result, typename _Source>\nstruct __abs<_Result, _Source, false> {\n    _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n    _Result operator()(_Source __t) const noexcept { return __t; }\n};\n\n\ntemplate<class _Tp>\n_LIBCPP_CONSTEXPR _LIBCPP_HIDDEN\ninline _Tp __gcd(_Tp __m, _Tp __n)\n{\n    static_assert((!is_signed<_Tp>::value), \"\" );\n    return __n == 0 ? __m : _VSTD_LFTS_V2::__gcd<_Tp>(__n, __m % __n);\n}\n\n\ntemplate<class _Tp, class _Up>\n_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\ncommon_type_t<_Tp,_Up>\ngcd(_Tp __m, _Up __n)\n{\n    static_assert((is_integral<_Tp>::value && is_integral<_Up>::value), \"Arguments to gcd must be integer types\");\n    static_assert((!is_same<typename remove_cv<_Tp>::type, bool>::value), \"First argument to gcd cannot be bool\" );\n    static_assert((!is_same<typename remove_cv<_Up>::type, bool>::value), \"Second argument to gcd cannot be bool\" );\n    using _Rp = common_type_t<_Tp,_Up>;\n    using _Wp = make_unsigned_t<_Rp>;\n    return static_cast<_Rp>(_VSTD_LFTS_V2::__gcd(\n      static_cast<_Wp>(__abs<_Rp, _Tp>()(__m)),\n      static_cast<_Wp>(__abs<_Rp, _Up>()(__n))));\n}\n\ntemplate<class _Tp, class _Up>\n_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\ncommon_type_t<_Tp,_Up>\nlcm(_Tp __m, _Up __n)\n{\n    static_assert((is_integral<_Tp>::value && is_integral<_Up>::value), \"Arguments to lcm must be integer types\");\n    static_assert((!is_same<typename remove_cv<_Tp>::type, bool>::value), \"First argument to lcm cannot be bool\" );\n    static_assert((!is_same<typename remove_cv<_Up>::type, bool>::value), \"Second argument to lcm cannot be bool\" );\n    if (__m == 0 || __n == 0)\n        return 0;\n\n    using _Rp = common_type_t<_Tp,_Up>;\n    _Rp __val1 = __abs<_Rp, _Tp>()(__m) / _VSTD_LFTS_V2::gcd(__m, __n);\n    _Rp __val2 = __abs<_Rp, _Up>()(__n);\n    _LIBCPP_ASSERT((numeric_limits<_Rp>::max() / __val1 > __val2), \"Overflow in lcm\");\n    return __val1 * __val2;\n}\n\n_LIBCPP_END_NAMESPACE_LFTS_V2\n\n#endif /* _LIBCPP_STD_VER > 11 */\n\n_LIBCPP_POP_MACROS\n\n#endif /* _LIBCPP_EXPERIMENTAL_NUMERIC */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/optional",
    "content": "// -*- C++ -*-\n//===-------------------------- optional ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_OPTIONAL\n#define _LIBCPP_EXPERIMENTAL_OPTIONAL\n\n/*\n    optional synopsis\n\n// C++1y\n\nnamespace std { namespace experimental { inline namespace fundamentals_v1 {\n\n    // 5.3, optional for object types\n    template <class T> class optional;\n\n    // 5.4, In-place construction\n    struct in_place_t{};\n    constexpr in_place_t in_place{};\n\n    // 5.5, No-value state indicator\n    struct nullopt_t{see below};\n    constexpr nullopt_t nullopt(unspecified);\n\n    // 5.6, Class bad_optional_access\n    class bad_optional_access;\n\n    // 5.7, Relational operators\n    template <class T>\n      constexpr bool operator==(const optional<T>&, const optional<T>&);\n    template <class T>\n      constexpr bool operator!=(const optional<T>&, const optional<T>&);\n    template <class T>\n      constexpr bool operator<(const optional<T>&, const optional<T>&);\n    template <class T>\n      constexpr bool operator>(const optional<T>&, const optional<T>&);\n    template <class T>\n      constexpr bool operator<=(const optional<T>&, const optional<T>&);\n    template <class T>\n      constexpr bool operator>=(const optional<T>&, const optional<T>&);\n\n    // 5.8, Comparison with nullopt\n    template <class T> constexpr bool operator==(const optional<T>&, nullopt_t) noexcept;\n    template <class T> constexpr bool operator==(nullopt_t, const optional<T>&) noexcept;\n    template <class T> constexpr bool operator!=(const optional<T>&, nullopt_t) noexcept;\n    template <class T> constexpr bool operator!=(nullopt_t, const optional<T>&) noexcept;\n    template <class T> constexpr bool operator<(const optional<T>&, nullopt_t) noexcept;\n    template <class T> constexpr bool operator<(nullopt_t, const optional<T>&) noexcept;\n    template <class T> constexpr bool operator<=(const optional<T>&, nullopt_t) noexcept;\n    template <class T> constexpr bool operator<=(nullopt_t, const optional<T>&) noexcept;\n    template <class T> constexpr bool operator>(const optional<T>&, nullopt_t) noexcept;\n    template <class T> constexpr bool operator>(nullopt_t, const optional<T>&) noexcept;\n    template <class T> constexpr bool operator>=(const optional<T>&, nullopt_t) noexcept;\n    template <class T> constexpr bool operator>=(nullopt_t, const optional<T>&) noexcept;\n\n    // 5.9, Comparison with T\n    template <class T> constexpr bool operator==(const optional<T>&, const T&);\n    template <class T> constexpr bool operator==(const T&, const optional<T>&);\n    template <class T> constexpr bool operator!=(const optional<T>&, const T&);\n    template <class T> constexpr bool operator!=(const T&, const optional<T>&);\n    template <class T> constexpr bool operator<(const optional<T>&, const T&);\n    template <class T> constexpr bool operator<(const T&, const optional<T>&);\n    template <class T> constexpr bool operator<=(const optional<T>&, const T&);\n    template <class T> constexpr bool operator<=(const T&, const optional<T>&);\n    template <class T> constexpr bool operator>(const optional<T>&, const T&);\n    template <class T> constexpr bool operator>(const T&, const optional<T>&);\n    template <class T> constexpr bool operator>=(const optional<T>&, const T&);\n    template <class T> constexpr bool operator>=(const T&, const optional<T>&);\n\n    // 5.10, Specialized algorithms\n    template <class T> void swap(optional<T>&, optional<T>&) noexcept(see below);\n    template <class T> constexpr optional<see below> make_optional(T&&);\n\n\ttemplate <class T>\n\tclass optional\n\t{\n\tpublic:\n\t  typedef T value_type;\n\n\t  // 5.3.1, Constructors\n\t  constexpr optional() noexcept;\n\t  constexpr optional(nullopt_t) noexcept;\n\t  optional(const optional&);\n\t  optional(optional&&) noexcept(see below);\n\t  constexpr optional(const T&);\n\t  constexpr optional(T&&);\n\t  template <class... Args> constexpr explicit optional(in_place_t, Args&&...);\n\t  template <class U, class... Args>\n\t\tconstexpr explicit optional(in_place_t, initializer_list<U>, Args&&...);\n\n\t  // 5.3.2, Destructor\n\t  ~optional();\n\n\t  // 5.3.3, Assignment\n\t  optional& operator=(nullopt_t) noexcept;\n\t  optional& operator=(const optional&);\n\t  optional& operator=(optional&&) noexcept(see below);\n\t  template <class U> optional& operator=(U&&);\n\t  template <class... Args> void emplace(Args&&...);\n\t  template <class U, class... Args>\n\t\tvoid emplace(initializer_list<U>, Args&&...);\n\n\t  // 5.3.4, Swap\n\t  void swap(optional&) noexcept(see below);\n\n\t  // 5.3.5, Observers\n\t  constexpr T const* operator ->() const;\n\t  constexpr T* operator ->();\n\t  constexpr T const& operator *() const &;\n\t  constexpr T& operator *() &;\n\t  constexpr T&& operator *() &&;\n\t  constexpr const T&& operator *() const &&;\n\t  constexpr explicit operator bool() const noexcept;\n\t  constexpr T const& value() const &;\n\t  constexpr T& value() &;\n\t  constexpr T&& value() &&;\n\t  constexpr const T&& value() const &&;\n\t  template <class U> constexpr T value_or(U&&) const &;\n\t  template <class U> constexpr T value_or(U&&) &&;\n\n\tprivate:\n\t  T*   val;  // exposition only\n\t};\n\n  } // namespace fundamentals_v1\n  } // namespace experimental\n\n  // 5.11, Hash support\n  template <class T> struct hash;\n  template <class T> struct hash<experimental::optional<T>>;\n\n} // namespace std\n\n*/\n\n#include <experimental/__config>\n#include <functional>\n#include <stdexcept>\n#if _LIBCPP_STD_VER > 11\n#include <initializer_list>\n#include <type_traits>\n#include <new>\n#include <__functional_base>\n#include <__debug>\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_EXPERIMENTAL\nclass _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS bad_optional_access\n    : public std::logic_error\n{\npublic:\n\tbad_optional_access() : std::logic_error(\"Bad optional Access\") {}\n\n//\tGet the key function ~bad_optional_access() into the dylib\n    virtual ~bad_optional_access() _NOEXCEPT;\n};\n\n_LIBCPP_END_NAMESPACE_EXPERIMENTAL\n\n\n#if _LIBCPP_STD_VER > 11\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\nstruct in_place_t {};\nconstexpr in_place_t in_place{};\n\nstruct nullopt_t\n{\n    explicit constexpr nullopt_t(int) noexcept {}\n};\n\nconstexpr nullopt_t nullopt{0};\n\ntemplate <class _Tp, bool = is_trivially_destructible<_Tp>::value>\nclass __optional_storage\n{\nprotected:\n    typedef _Tp value_type;\n    union\n    {\n        char __null_state_;\n        value_type __val_;\n    };\n    bool __engaged_ = false;\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~__optional_storage()\n    {\n        if (__engaged_)\n            __val_.~value_type();\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr __optional_storage() noexcept\n        :  __null_state_('\\0') {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __optional_storage(const __optional_storage& __x)\n        :  __engaged_(__x.__engaged_)\n        {\n            if (__engaged_)\n                ::new((void*)_VSTD::addressof(__val_)) value_type(__x.__val_);\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __optional_storage(__optional_storage&& __x)\n                      noexcept(is_nothrow_move_constructible<value_type>::value)\n        :  __engaged_(__x.__engaged_)\n        {\n            if (__engaged_)\n                ::new((void*)_VSTD::addressof(__val_)) value_type(_VSTD::move(__x.__val_));\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr __optional_storage(const value_type& __v)\n        :  __val_(__v),\n           __engaged_(true) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr __optional_storage(value_type&& __v)\n        :  __val_(_VSTD::move(__v)),\n           __engaged_(true) {}\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr\n    explicit __optional_storage(in_place_t, _Args&&... __args)\n       :  __val_(_VSTD::forward<_Args>(__args)...),\n           __engaged_(true) {}\n};\n\ntemplate <class _Tp>\nclass __optional_storage<_Tp, true>\n{\nprotected:\n    typedef _Tp value_type;\n    union\n    {\n        char __null_state_;\n        value_type __val_;\n    };\n    bool __engaged_ = false;\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr __optional_storage() noexcept\n        :  __null_state_('\\0') {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __optional_storage(const __optional_storage& __x)\n        :  __engaged_(__x.__engaged_)\n        {\n            if (__engaged_)\n                ::new((void*)_VSTD::addressof(__val_)) value_type(__x.__val_);\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __optional_storage(__optional_storage&& __x)\n                      noexcept(is_nothrow_move_constructible<value_type>::value)\n        :  __engaged_(__x.__engaged_)\n        {\n            if (__engaged_)\n                ::new((void*)_VSTD::addressof(__val_)) value_type(_VSTD::move(__x.__val_));\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr __optional_storage(const value_type& __v)\n        :  __val_(__v),\n           __engaged_(true) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr __optional_storage(value_type&& __v)\n        :  __val_(_VSTD::move(__v)),\n           __engaged_(true) {}\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr\n    explicit __optional_storage(in_place_t, _Args&&... __args)\n       :  __val_(_VSTD::forward<_Args>(__args)...),\n           __engaged_(true) {}\n};\n\ntemplate <class _Tp>\nclass optional\n    : private __optional_storage<_Tp>\n{\n    typedef __optional_storage<_Tp> __base;\npublic:\n    typedef _Tp value_type;\n\n    static_assert(!is_reference<value_type>::value,\n              \"Instantiation of optional with a reference type is ill-formed.\");\n    static_assert(!is_same<typename remove_cv<value_type>::type, in_place_t>::value,\n              \"Instantiation of optional with a in_place_t type is ill-formed.\");\n    static_assert(!is_same<typename remove_cv<value_type>::type, nullopt_t>::value,\n              \"Instantiation of optional with a nullopt_t type is ill-formed.\");\n    static_assert(is_object<value_type>::value,\n        \"Instantiation of optional with a non-object type is undefined behavior.\");\n    static_assert(is_nothrow_destructible<value_type>::value,\n        \"Instantiation of optional with an object type that is not noexcept destructible is undefined behavior.\");\n\n    _LIBCPP_INLINE_VISIBILITY constexpr optional() noexcept {}\n    _LIBCPP_INLINE_VISIBILITY optional(const optional&) = default;\n    _LIBCPP_INLINE_VISIBILITY optional(optional&&) = default;\n    _LIBCPP_INLINE_VISIBILITY ~optional() = default;\n    _LIBCPP_INLINE_VISIBILITY constexpr optional(nullopt_t) noexcept {}\n    _LIBCPP_INLINE_VISIBILITY constexpr optional(const value_type& __v)\n        : __base(__v) {}\n    _LIBCPP_INLINE_VISIBILITY constexpr optional(value_type&& __v)\n        : __base(_VSTD::move(__v)) {}\n\n    template <class... _Args,\n              class = typename enable_if\n                      <\n                           is_constructible<value_type, _Args...>::value\n                      >::type\n             >\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr\n    explicit optional(in_place_t, _Args&&... __args)\n        : __base(in_place, _VSTD::forward<_Args>(__args)...) {}\n\n    template <class _Up, class... _Args,\n              class = typename enable_if\n                      <\n                           is_constructible<value_type, initializer_list<_Up>&, _Args...>::value\n                      >::type\n             >\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr\n    explicit optional(in_place_t, initializer_list<_Up> __il, _Args&&... __args)\n        : __base(in_place, __il, _VSTD::forward<_Args>(__args)...) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    optional& operator=(nullopt_t) noexcept\n    {\n        if (this->__engaged_)\n        {\n            this->__val_.~value_type();\n            this->__engaged_ = false;\n        }\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    optional&\n    operator=(const optional& __opt)\n    {\n        if (this->__engaged_ == __opt.__engaged_)\n        {\n            if (this->__engaged_)\n                this->__val_ = __opt.__val_;\n        }\n        else\n        {\n            if (this->__engaged_)\n                this->__val_.~value_type();\n            else\n                ::new((void*)_VSTD::addressof(this->__val_)) value_type(__opt.__val_);\n            this->__engaged_ = __opt.__engaged_;\n        }\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    optional&\n    operator=(optional&& __opt)\n        noexcept(is_nothrow_move_assignable<value_type>::value &&\n                 is_nothrow_move_constructible<value_type>::value)\n    {\n        if (this->__engaged_ == __opt.__engaged_)\n        {\n            if (this->__engaged_)\n                this->__val_ = _VSTD::move(__opt.__val_);\n        }\n        else\n        {\n            if (this->__engaged_)\n                this->__val_.~value_type();\n            else\n                ::new((void*)_VSTD::addressof(this->__val_))\n                    value_type(_VSTD::move(__opt.__val_));\n            this->__engaged_ = __opt.__engaged_;\n        }\n        return *this;\n    }\n\n    template <class _Up,\n              class = typename enable_if\n                      <\n                          is_same<typename remove_reference<_Up>::type, value_type>::value &&\n                          is_constructible<value_type, _Up>::value &&\n                          is_assignable<value_type&, _Up>::value\n                      >::type\n             >\n    _LIBCPP_INLINE_VISIBILITY\n    optional&\n    operator=(_Up&& __v)\n    {\n        if (this->__engaged_)\n            this->__val_ = _VSTD::forward<_Up>(__v);\n        else\n        {\n            ::new((void*)_VSTD::addressof(this->__val_)) value_type(_VSTD::forward<_Up>(__v));\n            this->__engaged_ = true;\n        }\n        return *this;\n    }\n\n    template <class... _Args,\n              class = typename enable_if\n                      <\n                          is_constructible<value_type, _Args...>::value\n                      >::type\n             >\n    _LIBCPP_INLINE_VISIBILITY\n    void\n    emplace(_Args&&... __args)\n    {\n        *this = nullopt;\n        ::new((void*)_VSTD::addressof(this->__val_))\n            value_type(_VSTD::forward<_Args>(__args)...);\n        this->__engaged_ = true;\n    }\n\n    template <class _Up, class... _Args,\n              class = typename enable_if\n                      <\n                          is_constructible<value_type, initializer_list<_Up>&, _Args...>::value\n                      >::type\n             >\n    _LIBCPP_INLINE_VISIBILITY\n    void\n    emplace(initializer_list<_Up> __il, _Args&&... __args)\n    {\n        *this = nullopt;\n        ::new((void*)_VSTD::addressof(this->__val_))\n            value_type(__il, _VSTD::forward<_Args>(__args)...);\n        this->__engaged_ = true;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void\n    swap(optional& __opt)\n        noexcept(is_nothrow_move_constructible<value_type>::value &&\n                 __is_nothrow_swappable<value_type>::value)\n    {\n        using _VSTD::swap;\n        if (this->__engaged_ == __opt.__engaged_)\n        {\n            if (this->__engaged_)\n                swap(this->__val_, __opt.__val_);\n        }\n        else\n        {\n            if (this->__engaged_)\n            {\n                ::new((void*)_VSTD::addressof(__opt.__val_))\n                    value_type(_VSTD::move(this->__val_));\n                this->__val_.~value_type();\n            }\n            else\n            {\n                ::new((void*)_VSTD::addressof(this->__val_))\n                    value_type(_VSTD::move(__opt.__val_));\n                __opt.__val_.~value_type();\n            }\n            swap(this->__engaged_, __opt.__engaged_);\n        }\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr\n    value_type const*\n    operator->() const\n    {\n        _LIBCPP_ASSERT(this->__engaged_, \"optional operator-> called for disengaged value\");\n#ifndef _LIBCPP_HAS_NO_BUILTIN_ADDRESSOF\n        return __builtin_addressof(this->__val_);\n#else\n        return __operator_arrow(__has_operator_addressof<value_type>{});\n#endif\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type*\n    operator->()\n    {\n        _LIBCPP_ASSERT(this->__engaged_, \"optional operator-> called for disengaged value\");\n        return _VSTD::addressof(this->__val_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr\n    const value_type&\n    operator*() const\n    {\n        _LIBCPP_ASSERT(this->__engaged_, \"optional operator* called for disengaged value\");\n        return this->__val_;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type&\n    operator*()\n    {\n        _LIBCPP_ASSERT(this->__engaged_, \"optional operator* called for disengaged value\");\n        return this->__val_;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr explicit operator bool() const noexcept {return this->__engaged_;}\n\n\t_LIBCPP_NORETURN _LIBCPP_INLINE_VISIBILITY \n#ifndef _LIBCPP_NO_EXCEPTIONS\n_LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS\n#endif\n\tconstexpr void __throw_bad_optional_access() const\n\t{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        throw bad_optional_access();\n#else\n        _VSTD::abort();\n#endif\n\t}\n\t\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS\n    constexpr value_type const& value() const\n    {\n        if (!this->__engaged_)\n            __throw_bad_optional_access();\n        return this->__val_;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_AVAILABILITY_BAD_OPTIONAL_ACCESS\n    value_type& value()\n    {\n        if (!this->__engaged_)\n            __throw_bad_optional_access();\n        return this->__val_;\n    }\n\n    template <class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr value_type value_or(_Up&& __v) const&\n    {\n        static_assert(is_copy_constructible<value_type>::value,\n                      \"optional<T>::value_or: T must be copy constructible\");\n        static_assert(is_convertible<_Up, value_type>::value,\n                      \"optional<T>::value_or: U must be convertible to T\");\n        return this->__engaged_ ? this->__val_ :\n                                  static_cast<value_type>(_VSTD::forward<_Up>(__v));\n    }\n\n    template <class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n    value_type value_or(_Up&& __v) &&\n    {\n        static_assert(is_move_constructible<value_type>::value,\n                      \"optional<T>::value_or: T must be move constructible\");\n        static_assert(is_convertible<_Up, value_type>::value,\n                      \"optional<T>::value_or: U must be convertible to T\");\n        return this->__engaged_ ? _VSTD::move(this->__val_) :\n                                  static_cast<value_type>(_VSTD::forward<_Up>(__v));\n    }\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    value_type const*\n    __operator_arrow(true_type) const\n    {\n        return _VSTD::addressof(this->__val_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr\n    value_type const*\n    __operator_arrow(false_type) const\n    {\n        return &this->__val_;\n    }\n};\n\n// Comparisons between optionals\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator==(const optional<_Tp>& __x, const optional<_Tp>& __y)\n{\n    if (static_cast<bool>(__x) != static_cast<bool>(__y))\n        return false;\n    if (!static_cast<bool>(__x))\n        return true;\n    return *__x == *__y;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator!=(const optional<_Tp>& __x, const optional<_Tp>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<(const optional<_Tp>& __x, const optional<_Tp>& __y)\n{\n    if (!static_cast<bool>(__y))\n        return false;\n    if (!static_cast<bool>(__x))\n        return true;\n    return *__x < *__y;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>(const optional<_Tp>& __x, const optional<_Tp>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<=(const optional<_Tp>& __x, const optional<_Tp>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>=(const optional<_Tp>& __x, const optional<_Tp>& __y)\n{\n    return !(__x < __y);\n}\n\n\n// Comparisons with nullopt\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator==(const optional<_Tp>& __x, nullopt_t) noexcept\n{\n    return !static_cast<bool>(__x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator==(nullopt_t, const optional<_Tp>& __x) noexcept\n{\n    return !static_cast<bool>(__x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator!=(const optional<_Tp>& __x, nullopt_t) noexcept\n{\n    return static_cast<bool>(__x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator!=(nullopt_t, const optional<_Tp>& __x) noexcept\n{\n    return static_cast<bool>(__x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<(const optional<_Tp>&, nullopt_t) noexcept\n{\n    return false;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<(nullopt_t, const optional<_Tp>& __x) noexcept\n{\n    return static_cast<bool>(__x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<=(const optional<_Tp>& __x, nullopt_t) noexcept\n{\n    return !static_cast<bool>(__x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<=(nullopt_t, const optional<_Tp>&) noexcept\n{\n    return true;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>(const optional<_Tp>& __x, nullopt_t) noexcept\n{\n    return static_cast<bool>(__x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>(nullopt_t, const optional<_Tp>&) noexcept\n{\n    return false;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>=(const optional<_Tp>&, nullopt_t) noexcept\n{\n    return true;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>=(nullopt_t, const optional<_Tp>& __x) noexcept\n{\n    return !static_cast<bool>(__x);\n}\n\n// Comparisons with T\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator==(const optional<_Tp>& __x, const _Tp& __v)\n{\n    return static_cast<bool>(__x) ? *__x == __v : false;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator==(const _Tp& __v, const optional<_Tp>& __x)\n{\n    return static_cast<bool>(__x) ? *__x == __v : false;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator!=(const optional<_Tp>& __x, const _Tp& __v)\n{\n    return static_cast<bool>(__x) ? !(*__x == __v) : true;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator!=(const _Tp& __v, const optional<_Tp>& __x)\n{\n    return static_cast<bool>(__x) ? !(*__x == __v) : true;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<(const optional<_Tp>& __x, const _Tp& __v)\n{\n    return static_cast<bool>(__x) ? less<_Tp>{}(*__x, __v) : true;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<(const _Tp& __v, const optional<_Tp>& __x)\n{\n    return static_cast<bool>(__x) ? less<_Tp>{}(__v, *__x) : false;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<=(const optional<_Tp>& __x, const _Tp& __v)\n{\n    return !(__x > __v);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator<=(const _Tp& __v, const optional<_Tp>& __x)\n{\n    return !(__v > __x);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>(const optional<_Tp>& __x, const _Tp& __v)\n{\n    return static_cast<bool>(__x) ? __v < __x : false;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>(const _Tp& __v, const optional<_Tp>& __x)\n{\n    return static_cast<bool>(__x) ? __x < __v : true;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>=(const optional<_Tp>& __x, const _Tp& __v)\n{\n    return !(__x < __v);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\nbool\noperator>=(const _Tp& __v, const optional<_Tp>& __x)\n{\n    return !(__v < __x);\n}\n\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(optional<_Tp>& __x, optional<_Tp>& __y) noexcept(noexcept(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr\noptional<typename decay<_Tp>::type>\nmake_optional(_Tp&& __v)\n{\n    return optional<typename decay<_Tp>::type>(_VSTD::forward<_Tp>(__v));\n}\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS hash<std::experimental::optional<_Tp> >\n{\n    typedef std::experimental::optional<_Tp> argument_type;\n    typedef size_t        result_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator()(const argument_type& __opt) const _NOEXCEPT\n    {\n        return static_cast<bool>(__opt) ? hash<_Tp>()(*__opt) : 0;\n    }\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_STD_VER > 11\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_EXPERIMENTAL_OPTIONAL\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/propagate_const",
    "content": "// -*- C++ -*-\n//===------------------------ propagate_const -----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST\n#define _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST\n/*\n    propagate_const synopsis\n\n    namespace std { namespace experimental { inline namespace fundamentals_v2 {\n\n    // [propagate_const]\n    template <class T> class propagate_const;\n\n    // [propagate_const.underlying], underlying pointer access\n    constexpr const _Tp& _VSTD_LFTS_V2::get_underlying(const propagate_const<T>& pt) noexcept;\n    constexpr T& _VSTD_LFTS_V2::get_underlying(propagate_const<T>& pt) noexcept;\n\n    // [propagate_const.relational], relational operators\n    template <class T> constexpr bool operator==(const propagate_const<T>& pt, nullptr_t);\n    template <class T> constexpr bool operator==(nullptr_t, const propagate_const<T>& pu);\n    template <class T> constexpr bool operator!=(const propagate_const<T>& pt, nullptr_t);\n    template <class T> constexpr bool operator!=(nullptr_t, const propagate_const<T>& pu);\n    template <class T, class U> constexpr bool operator==(const propagate_const<T>& pt, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator!=(const propagate_const<T>& pt, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator<(const propagate_const<T>& pt, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator>(const propagate_const<T>& pt, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator<=(const propagate_const<T>& pt, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator>=(const propagate_const<T>& pt, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator==(const propagate_const<T>& pt, const _Up& u);\n    template <class T, class U> constexpr bool operator!=(const propagate_const<T>& pt, const _Up& u);\n    template <class T, class U> constexpr bool operator<(const propagate_const<T>& pt, const _Up& u);\n    template <class T, class U> constexpr bool operator>(const propagate_const<T>& pt, const _Up& u);\n    template <class T, class U> constexpr bool operator<=(const propagate_const<T>& pt, const _Up& u);\n    template <class T, class U> constexpr bool operator>=(const propagate_const<T>& pt, const _Up& u);\n    template <class T, class U> constexpr bool operator==(const _Tp& t, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator!=(const _Tp& t, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator<(const _Tp& t, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator>(const _Tp& t, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator<=(const _Tp& t, const propagate_const<_Up>& pu);\n    template <class T, class U> constexpr bool operator>=(const _Tp& t, const propagate_const<_Up>& pu);\n\n    // [propagate_const.algorithms], specialized algorithms\n    template <class T> constexpr void swap(propagate_const<T>& pt, propagate_const<T>& pu) noexcept(see below);\n\n    template <class T>\n    class propagate_const\n    {\n\n    public:\n      typedef remove_reference_t<decltype(*declval<T&>())> element_type;\n\n      // [propagate_const.ctor], constructors\n      constexpr propagate_const() = default;\n      propagate_const(const propagate_const& p) = delete;\n      constexpr propagate_const(propagate_const&& p) = default;\n      template <class U> EXPLICIT constexpr propagate_const(propagate_const<_Up>&& pu); // see below\n      template <class U> EXPLICIT constexpr propagate_const(U&& u); // see below\n\n      // [propagate_const.assignment], assignment\n      propagate_const& operator=(const propagate_const& p) = delete;\n      constexpr propagate_const& operator=(propagate_const&& p) = default;\n      template <class U> constexpr propagate_const& operator=(propagate_const<_Up>&& pu);\n      template <class U> constexpr propagate_const& operator=(U&& u); // see below\n\n      // [propagate_const.const_observers], const observers\n      explicit constexpr operator bool() const;\n      constexpr const element_type* operator->() const;\n      constexpr operator const element_type*() const; // Not always defined\n      constexpr const element_type& operator*() const;\n      constexpr const element_type* get() const;\n\n      // [propagate_const.non_const_observers], non-const observers\n      constexpr element_type* operator->();\n      constexpr operator element_type*(); // Not always defined\n      constexpr element_type& operator*();\n      constexpr element_type* get();\n\n      // [propagate_const.modifiers], modifiers\n      constexpr void swap(propagate_const& pt) noexcept(see below)\n\n    private:\n      T t_; // exposition only\n    };\n\n  } // namespace fundamentals_v2\n  } // namespace experimental\n\n  // [propagate_const.hash], hash support\n  template <class T> struct hash<experimental::fundamentals_v2::propagate_const<T>>;\n\n  // [propagate_const.comparison_function_objects], comparison function objects\n  template <class T> struct equal_to<experimental::fundamentals_v2::propagate_const<T>>;\n  template <class T> struct not_equal_to<experimental::fundamentals_v2::propagate_const<T>>;\n  template <class T> struct less<experimental::fundamentals_v2::propagate_const<T>>;\n  template <class T> struct greater<experimental::fundamentals_v2::propagate_const<T>>;\n  template <class T> struct less_equal<experimental::fundamentals_v2::propagate_const<T>>;\n  template <class T> struct greater_equal<experimental::fundamentals_v2::propagate_const<T>>;\n\n} // namespace std\n\n*/\n\n#include <experimental/__config>\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#if _LIBCPP_STD_VER > 11\n\n#include <type_traits>\n#include <utility>\n#include <functional>\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_V2\n\n\ntemplate <class _Tp>\nclass propagate_const;\n\ntemplate <class _Up>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\nconst _Up& get_underlying(const propagate_const<_Up>& __pu) _NOEXCEPT;\n\ntemplate <class _Up>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n_Up& get_underlying(propagate_const<_Up>& __pu) _NOEXCEPT;\n\ntemplate <class _Tp>\nclass propagate_const\n{\npublic:\n  typedef remove_reference_t<decltype(*_VSTD::declval<_Tp&>())> element_type;\n\n  static_assert(!is_array<_Tp>::value,\n      \"Instantiation of propagate_const with an array type is ill-formed.\");\n  static_assert(!is_reference<_Tp>::value,\n      \"Instantiation of propagate_const with a reference type is ill-formed.\");\n  static_assert(!(is_pointer<_Tp>::value && is_function<typename remove_pointer<_Tp>::type>::value),\n      \"Instantiation of propagate_const with a function-pointer type is ill-formed.\");\n  static_assert(!(is_pointer<_Tp>::value && is_same<typename remove_cv<typename remove_pointer<_Tp>::type>::type, void>::value),\n      \"Instantiation of propagate_const with a pointer to (possibly cv-qualified) void is ill-formed.\");\n\nprivate:\n  template <class _Up>\n  static _LIBCPP_CONSTEXPR element_type* __get_pointer(_Up* __u)\n  {\n    return __u;\n  }\n\n  template <class _Up>\n  static _LIBCPP_CONSTEXPR element_type* __get_pointer(_Up& __u)\n  {\n    return __get_pointer(__u.get());\n  }\n\n  template <class _Up>\n  static _LIBCPP_CONSTEXPR const element_type* __get_pointer(const _Up* __u)\n  {\n    return __u;\n  }\n\n  template <class _Up>\n  static _LIBCPP_CONSTEXPR const element_type* __get_pointer(const _Up& __u)\n  {\n    return __get_pointer(__u.get());\n  }\n\n  template <class _Up>\n  struct __is_propagate_const : false_type\n  {\n  };\n\n  template <class _Up>\n  struct __is_propagate_const<propagate_const<_Up>> : true_type\n  {\n  };\n\n  _Tp __t_;\n\npublic:\n\n  template <class _Up> friend _LIBCPP_CONSTEXPR const _Up& ::_VSTD_LFTS_V2::get_underlying(const propagate_const<_Up>& __pu) _NOEXCEPT;\n  template <class _Up> friend _LIBCPP_CONSTEXPR _Up& ::_VSTD_LFTS_V2::get_underlying(propagate_const<_Up>& __pu) _NOEXCEPT;\n\n  _LIBCPP_CONSTEXPR propagate_const() = default;\n\n  propagate_const(const propagate_const&) = delete;\n\n  _LIBCPP_CONSTEXPR propagate_const(propagate_const&&) = default;\n\n  template <class _Up, enable_if_t<!is_convertible<_Up, _Tp>::value &&\n                                 is_constructible<_Tp, _Up&&>::value,bool> = true>\n  explicit _LIBCPP_CONSTEXPR propagate_const(propagate_const<_Up>&& __pu)\n      : __t_(std::move(_VSTD_LFTS_V2::get_underlying(__pu)))\n  {\n  }\n\n  template <class _Up, enable_if_t<is_convertible<_Up&&, _Tp>::value &&\n                                 is_constructible<_Tp, _Up&&>::value,bool> = false>\n  _LIBCPP_CONSTEXPR propagate_const(propagate_const<_Up>&& __pu)\n      : __t_(std::move(_VSTD_LFTS_V2::get_underlying(__pu)))\n  {\n  }\n\n  template <class _Up, enable_if_t<!is_convertible<_Up&&, _Tp>::value &&\n                                 is_constructible<_Tp, _Up&&>::value &&\n                                 !__is_propagate_const<decay_t<_Up>>::value,bool> = true>\n  explicit _LIBCPP_CONSTEXPR propagate_const(_Up&& __u)\n      : __t_(std::forward<_Up>(__u))\n  {\n  }\n\n  template <class _Up, enable_if_t<is_convertible<_Up&&, _Tp>::value &&\n                                 is_constructible<_Tp, _Up&&>::value &&\n                                 !__is_propagate_const<decay_t<_Up>>::value,bool> = false>\n  _LIBCPP_CONSTEXPR propagate_const(_Up&& __u)\n      : __t_(std::forward<_Up>(__u))\n  {\n  }\n\n  propagate_const& operator=(const propagate_const&) = delete;\n\n  _LIBCPP_CONSTEXPR propagate_const& operator=(propagate_const&&) = default;\n\n  template <class _Up>\n  _LIBCPP_CONSTEXPR propagate_const& operator=(propagate_const<_Up>&& __pu)\n  {\n    __t_ = std::move(_VSTD_LFTS_V2::get_underlying(__pu));\n    return *this;\n  }\n\n  template <class _Up, class _Vp = enable_if_t<!__is_propagate_const<decay_t<_Up>>::value>>\n  _LIBCPP_CONSTEXPR propagate_const& operator=(_Up&& __u)\n  {\n    __t_ = std::forward<_Up>(__u);\n    return *this;\n  }\n\n  _LIBCPP_CONSTEXPR const element_type* get() const\n  {\n    return __get_pointer(__t_);\n  }\n\n  _LIBCPP_CONSTEXPR element_type* get()\n  {\n    return __get_pointer(__t_);\n  }\n\n  explicit _LIBCPP_CONSTEXPR operator bool() const\n  {\n    return get() != nullptr;\n  }\n\n  _LIBCPP_CONSTEXPR const element_type* operator->() const\n  {\n    return get();\n  }\n\n  template <class _Tp_ = _Tp, class _Up = enable_if_t<is_convertible<\n                                  const _Tp_, const element_type *>::value>>\n  _LIBCPP_CONSTEXPR operator const element_type *() const {\n    return get();\n  }\n\n  _LIBCPP_CONSTEXPR const element_type& operator*() const\n  {\n    return *get();\n  }\n\n  _LIBCPP_CONSTEXPR element_type* operator->()\n  {\n    return get();\n  }\n\n  template <class _Tp_ = _Tp, class _Up = enable_if_t<\n                                  is_convertible<_Tp_, element_type *>::value>>\n  _LIBCPP_CONSTEXPR operator element_type *() {\n    return get();\n  }\n\n  _LIBCPP_CONSTEXPR element_type& operator*()\n  {\n    return *get();\n  }\n\n  _LIBCPP_CONSTEXPR void swap(propagate_const& __pt) _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value)\n  {\n    using _VSTD::swap;\n    swap(__t_, __pt.__t_);\n  }\n};\n\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator==(const propagate_const<_Tp>& __pt, nullptr_t)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) == nullptr;\n}\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator==(nullptr_t, const propagate_const<_Tp>& __pt)\n{\n  return nullptr == _VSTD_LFTS_V2::get_underlying(__pt);\n}\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator!=(const propagate_const<_Tp>& __pt, nullptr_t)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) != nullptr;\n}\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator!=(nullptr_t, const propagate_const<_Tp>& __pt)\n{\n  return nullptr != _VSTD_LFTS_V2::get_underlying(__pt);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator==(const propagate_const<_Tp>& __pt,\n                          const propagate_const<_Up>& __pu)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) == _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator!=(const propagate_const<_Tp>& __pt,\n                          const propagate_const<_Up>& __pu)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) != _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator<(const propagate_const<_Tp>& __pt,\n                         const propagate_const<_Up>& __pu)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) < _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator>(const propagate_const<_Tp>& __pt,\n                         const propagate_const<_Up>& __pu)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) > _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator<=(const propagate_const<_Tp>& __pt,\n                          const propagate_const<_Up>& __pu)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) <= _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator>=(const propagate_const<_Tp>& __pt,\n                          const propagate_const<_Up>& __pu)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) >= _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator==(const propagate_const<_Tp>& __pt, const _Up& __u)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) == __u;\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator!=(const propagate_const<_Tp>& __pt, const _Up& __u)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) != __u;\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator<(const propagate_const<_Tp>& __pt, const _Up& __u)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) < __u;\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator>(const propagate_const<_Tp>& __pt, const _Up& __u)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) > __u;\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator<=(const propagate_const<_Tp>& __pt, const _Up& __u)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) <= __u;\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator>=(const propagate_const<_Tp>& __pt, const _Up& __u)\n{\n  return _VSTD_LFTS_V2::get_underlying(__pt) >= __u;\n}\n\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator==(const _Tp& __t, const propagate_const<_Up>& __pu)\n{\n  return __t == _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator!=(const _Tp& __t, const propagate_const<_Up>& __pu)\n{\n  return __t != _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator<(const _Tp& __t, const propagate_const<_Up>& __pu)\n{\n  return __t < _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator>(const _Tp& __t, const propagate_const<_Up>& __pu)\n{\n  return __t > _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator<=(const _Tp& __t, const propagate_const<_Up>& __pu)\n{\n  return __t <= _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp, class _Up>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR bool operator>=(const _Tp& __t, const propagate_const<_Up>& __pu)\n{\n  return __t >= _VSTD_LFTS_V2::get_underlying(__pu);\n}\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR void swap(propagate_const<_Tp>& __pc1, propagate_const<_Tp>& __pc2) _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value)\n{\n  using _VSTD::swap;\n  swap(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));\n}\n\ntemplate <class _Tp>\n_LIBCPP_CONSTEXPR const _Tp& get_underlying(const propagate_const<_Tp>& __pt) _NOEXCEPT\n{\n  return __pt.__t_;\n}\n\ntemplate <class _Tp>\n_LIBCPP_CONSTEXPR _Tp& get_underlying(propagate_const<_Tp>& __pt) _NOEXCEPT\n{\n  return __pt.__t_;\n}\n\n_LIBCPP_END_NAMESPACE_LFTS_V2\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp>\nstruct hash<experimental::fundamentals_v2::propagate_const<_Tp>>\n{\n  typedef size_t result_type;\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> argument_type;\n\n  size_t operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1) const\n  {\n    return std::hash<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1));\n  }\n};\n\ntemplate <class _Tp>\nstruct equal_to<experimental::fundamentals_v2::propagate_const<_Tp>>\n{\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;\n\n  bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,\n      const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const\n  {\n    return std::equal_to<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));\n  }\n};\n\ntemplate <class _Tp>\nstruct not_equal_to<experimental::fundamentals_v2::propagate_const<_Tp>>\n{\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;\n\n  bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,\n      const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const\n  {\n    return std::not_equal_to<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));\n  }\n};\n\ntemplate <class _Tp>\nstruct less<experimental::fundamentals_v2::propagate_const<_Tp>>\n{\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;\n\n  bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,\n      const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const\n  {\n    return std::less<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));\n  }\n};\n\ntemplate <class _Tp>\nstruct greater<experimental::fundamentals_v2::propagate_const<_Tp>>\n{\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;\n\n  bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,\n      const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const\n  {\n    return std::greater<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));\n  }\n};\n\ntemplate <class _Tp>\nstruct less_equal<experimental::fundamentals_v2::propagate_const<_Tp>>\n{\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;\n\n  bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,\n      const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const\n  {\n    return std::less_equal<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));\n  }\n};\n\ntemplate <class _Tp>\nstruct greater_equal<experimental::fundamentals_v2::propagate_const<_Tp>>\n{\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> first_argument_type;\n  typedef experimental::fundamentals_v2::propagate_const<_Tp> second_argument_type;\n\n  bool operator()(const experimental::fundamentals_v2::propagate_const<_Tp>& __pc1,\n      const experimental::fundamentals_v2::propagate_const<_Tp>& __pc2) const\n  {\n    return std::greater_equal<_Tp>()(_VSTD_LFTS_V2::get_underlying(__pc1), _VSTD_LFTS_V2::get_underlying(__pc2));\n  }\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif // _LIBCPP_STD_VER > 11\n#endif // _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST\n\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/ratio",
    "content": "// -*- C++ -*-\n//===------------------------------ ratio ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_RATIO\n#define _LIBCPP_EXPERIMENTAL_RATIO\n\n/**\n    experimental/ratio synopsis\n    C++1y\n#include <ratio>\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\n  // See C++14 20.11.5, ratio comparison\n  template <class R1, class R2> constexpr bool ratio_equal_v\n    = ratio_equal<R1, R2>::value;\n  template <class R1, class R2> constexpr bool ratio_not_equal_v\n    = ratio_not_equal<R1, R2>::value;\n  template <class R1, class R2> constexpr bool ratio_less_v\n    = ratio_less<R1, R2>::value;\n  template <class R1, class R2> constexpr bool ratio_less_equal_v\n    = ratio_less_equal<R1, R2>::value;\n  template <class R1, class R2> constexpr bool ratio_greater_v\n    = ratio_greater<R1, R2>::value;\n  template <class R1, class R2> constexpr bool ratio_greater_equal_v\n    = ratio_greater_equal<R1, R2>::value;\n\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n*/\n\n#include <experimental/__config>\n\n#if _LIBCPP_STD_VER > 11\n\n#include <ratio>\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\n#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_equal_v\n    = ratio_equal<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_not_equal_v\n    = ratio_not_equal<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_less_v\n    = ratio_less<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_less_equal_v\n    = ratio_less_equal<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_v\n    = ratio_greater<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_equal_v\n    = ratio_greater_equal<_R1, _R2>::value;\n\n#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n#endif /* _LIBCPP_STD_VER > 11 */\n\n#endif // _LIBCPP_EXPERIMENTAL_RATIO\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/regex",
    "content": "// -*- C++ -*-\n//===----------------------------- regex ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_REGEX\n#define _LIBCPP_EXPERIMENTAL_REGEX\n/*\n    experimental/regex synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class BidirectionalIterator>\n  using match_results =\n    std::match_results<BidirectionalIterator,\n                       polymorphic_allocator<sub_match<BidirectionalIterator>>>;\n\n  typedef match_results<const char*> cmatch;\n  typedef match_results<const wchar_t*> wcmatch;\n  typedef match_results<string::const_iterator> smatch;\n  typedef match_results<wstring::const_iterator> wsmatch;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <regex>\n#include <experimental/string>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _BiDirIter>\nusing match_results =\n    _VSTD::match_results<_BiDirIter,\n        polymorphic_allocator<_VSTD::sub_match<_BiDirIter>>>;\n\ntypedef match_results<const char*> cmatch;\ntypedef match_results<const wchar_t*> wcmatch;\ntypedef match_results<_VSTD_LFTS_PMR::string::const_iterator> smatch;\ntypedef match_results<_VSTD_LFTS_PMR::wstring::const_iterator> wsmatch;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_REGEX */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/set",
    "content": "// -*- C++ -*-\n//===--------------------------- list ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_SET\n#define _LIBCPP_EXPERIMENTAL_SET\n/*\n    experimental/set synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class Key, class T, class Compare = less<Key>>\n  using set = std::set<Key, T, Compare,\n                       polymorphic_allocator<pair<const Key,T>>>;\n\n  template <class Key, class T, class Compare = less<Key>>\n  using multiset = std::multiset<Key, T, Compare,\n                                 polymorphic_allocator<pair<const Key,T>>>;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <set>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _Value, class  _Compare = less<_Value>>\nusing set = _VSTD::set<_Value, _Compare,\n                        polymorphic_allocator<_Value>>;\n\ntemplate <class _Value, class  _Compare = less<_Value>>\nusing multiset = _VSTD::multiset<_Value, _Compare,\n                        polymorphic_allocator<_Value>>;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_SET */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/string",
    "content": "// -*- C++ -*-\n//===--------------------------- string ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_STRING\n#define _LIBCPP_EXPERIMENTAL_STRING\n/*\n    experimental/string synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  // basic_string using polymorphic allocator in namespace pmr\n  template <class charT, class traits = char_traits<charT>>\n   using basic_string =\n     std::basic_string<charT, traits, polymorphic_allocator<charT>>;\n\n  // basic_string typedef names using polymorphic allocator in namespace\n  // std::experimental::pmr\n  typedef basic_string<char> string;\n  typedef basic_string<char16_t> u16string;\n  typedef basic_string<char32_t> u32string;\n  typedef basic_string<wchar_t> wstring;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <string>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _CharT, class _Traits = char_traits<_CharT>>\nusing basic_string =\n    _VSTD::basic_string<_CharT, _Traits, polymorphic_allocator<_CharT>>;\n\ntypedef basic_string<char> string;\ntypedef basic_string<char16_t> u16string;\ntypedef basic_string<char32_t> u32string;\ntypedef basic_string<wchar_t> wstring;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_STRING */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/string_view",
    "content": "// -*- C++ -*-\n//===------------------------ string_view ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_LFTS_STRING_VIEW\n#define _LIBCPP_LFTS_STRING_VIEW\n\n/*\nstring_view synopsis\n\nnamespace std {\n namespace experimental {\n  inline namespace library_fundamentals_v1 {\n\n    // 7.2, Class template basic_string_view\n    template<class charT, class traits = char_traits<charT>>\n        class basic_string_view;\n\n    // 7.9, basic_string_view non-member comparison functions\n    template<class charT, class traits>\n    constexpr bool operator==(basic_string_view<charT, traits> x,\n                              basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator!=(basic_string_view<charT, traits> x,\n                              basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator< (basic_string_view<charT, traits> x,\n                                 basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator> (basic_string_view<charT, traits> x,\n                              basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator<=(basic_string_view<charT, traits> x,\n                                 basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator>=(basic_string_view<charT, traits> x,\n                              basic_string_view<charT, traits> y) noexcept;\n    // see below, sufficient additional overloads of comparison functions\n\n    // 7.10, Inserters and extractors\n    template<class charT, class traits>\n      basic_ostream<charT, traits>&\n        operator<<(basic_ostream<charT, traits>& os,\n                   basic_string_view<charT, traits> str);\n\n    // basic_string_view typedef names\n    typedef basic_string_view<char> string_view;\n    typedef basic_string_view<char16_t> u16string_view;\n    typedef basic_string_view<char32_t> u32string_view;\n    typedef basic_string_view<wchar_t> wstring_view;\n\n    template<class charT, class traits = char_traits<charT>>\n    class basic_string_view {\n      public:\n      // types\n      typedef traits traits_type;\n      typedef charT value_type;\n      typedef charT* pointer;\n      typedef const charT* const_pointer;\n      typedef charT& reference;\n      typedef const charT& const_reference;\n      typedef implementation-defined const_iterator;\n      typedef const_iterator iterator;\n      typedef reverse_iterator<const_iterator> const_reverse_iterator;\n      typedef const_reverse_iterator reverse_iterator;\n      typedef size_t size_type;\n      typedef ptrdiff_t difference_type;\n      static constexpr size_type npos = size_type(-1);\n\n      // 7.3, basic_string_view constructors and assignment operators\n      constexpr basic_string_view() noexcept;\n      constexpr basic_string_view(const basic_string_view&) noexcept = default;\n      basic_string_view& operator=(const basic_string_view&) noexcept = default;\n      template<class Allocator>\n      basic_string_view(const basic_string<charT, traits, Allocator>& str) noexcept;\n      constexpr basic_string_view(const charT* str);\n      constexpr basic_string_view(const charT* str, size_type len);\n\n      // 7.4, basic_string_view iterator support\n      constexpr const_iterator begin() const noexcept;\n      constexpr const_iterator end() const noexcept;\n      constexpr const_iterator cbegin() const noexcept;\n      constexpr const_iterator cend() const noexcept;\n      const_reverse_iterator rbegin() const noexcept;\n      const_reverse_iterator rend() const noexcept;\n      const_reverse_iterator crbegin() const noexcept;\n      const_reverse_iterator crend() const noexcept;\n\n      // 7.5, basic_string_view capacity\n      constexpr size_type size() const noexcept;\n      constexpr size_type length() const noexcept;\n      constexpr size_type max_size() const noexcept;\n      constexpr bool empty() const noexcept;\n\n      // 7.6, basic_string_view element access\n      constexpr const_reference operator[](size_type pos) const;\n      constexpr const_reference at(size_type pos) const;\n      constexpr const_reference front() const;\n      constexpr const_reference back() const;\n      constexpr const_pointer data() const noexcept;\n\n      // 7.7, basic_string_view modifiers\n      constexpr void clear() noexcept;\n      constexpr void remove_prefix(size_type n);\n      constexpr void remove_suffix(size_type n);\n      constexpr void swap(basic_string_view& s) noexcept;\n\n      // 7.8, basic_string_view string operations\n      template<class Allocator>\n      explicit operator basic_string<charT, traits, Allocator>() const;\n      template<class Allocator = allocator<charT>>\n      basic_string<charT, traits, Allocator> to_string(\n        const Allocator& a = Allocator()) const;\n\n      size_type copy(charT* s, size_type n, size_type pos = 0) const;\n\n      constexpr basic_string_view substr(size_type pos = 0, size_type n = npos) const;\n      constexpr int compare(basic_string_view s) const noexcept;\n      constexpr int compare(size_type pos1, size_type n1, basic_string_view s) const;\n      constexpr int compare(size_type pos1, size_type n1,\n                            basic_string_view s, size_type pos2, size_type n2) const;\n      constexpr int compare(const charT* s) const;\n      constexpr int compare(size_type pos1, size_type n1, const charT* s) const;\n      constexpr int compare(size_type pos1, size_type n1,\n                            const charT* s, size_type n2) const;\n      constexpr size_type find(basic_string_view s, size_type pos = 0) const noexcept;\n      constexpr size_type find(charT c, size_type pos = 0) const noexcept;\n      constexpr size_type find(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find(const charT* s, size_type pos = 0) const;\n      constexpr size_type rfind(basic_string_view s, size_type pos = npos) const noexcept;\n      constexpr size_type rfind(charT c, size_type pos = npos) const noexcept;\n      constexpr size_type rfind(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type rfind(const charT* s, size_type pos = npos) const;\n      constexpr size_type find_first_of(basic_string_view s, size_type pos = 0) const noexcept;\n      constexpr size_type find_first_of(charT c, size_type pos = 0) const noexcept;\n      constexpr size_type find_first_of(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find_first_of(const charT* s, size_type pos = 0) const;\n      constexpr size_type find_last_of(basic_string_view s, size_type pos = npos) const noexcept;\n      constexpr size_type find_last_of(charT c, size_type pos = npos) const noexcept;\n      constexpr size_type find_last_of(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find_last_of(const charT* s, size_type pos = npos) const;\n      constexpr size_type find_first_not_of(basic_string_view s, size_type pos = 0) const noexcept;\n      constexpr size_type find_first_not_of(charT c, size_type pos = 0) const noexcept;\n      constexpr size_type find_first_not_of(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find_first_not_of(const charT* s, size_type pos = 0) const;\n      constexpr size_type find_last_not_of(basic_string_view s, size_type pos = npos) const noexcept;\n      constexpr size_type find_last_not_of(charT c, size_type pos = npos) const noexcept;\n      constexpr size_type find_last_not_of(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find_last_not_of(const charT* s, size_type pos = npos) const;\n\n     private:\n      const_pointer data_;  // exposition only\n      size_type     size_;  // exposition only\n    };\n\n  }  // namespace fundamentals_v1\n }  // namespace experimental\n\n  // 7.11, Hash support\n  template <class T> struct hash;\n  template <> struct hash<experimental::string_view>;\n  template <> struct hash<experimental::u16string_view>;\n  template <> struct hash<experimental::u32string_view>;\n  template <> struct hash<experimental::wstring_view>;\n\n}  // namespace std\n\n\n*/\n\n#include <experimental/__config>\n\n#include <string>\n#include <algorithm>\n#include <iterator>\n#include <ostream>\n#include <stdexcept>\n#include <iomanip>\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\n    template<class _CharT, class _Traits = _VSTD::char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_string_view {\n    public:\n        // types\n        typedef _Traits                                    traits_type;\n        typedef _CharT                                     value_type;\n        typedef const _CharT*                              pointer;\n        typedef const _CharT*                              const_pointer;\n        typedef const _CharT&                              reference;\n        typedef const _CharT&                              const_reference;\n        typedef const_pointer                              const_iterator; // See [string.view.iterators]\n        typedef const_iterator                             iterator;\n        typedef _VSTD::reverse_iterator<const_iterator>    const_reverse_iterator;\n        typedef const_reverse_iterator                     reverse_iterator;\n        typedef size_t                                     size_type;\n        typedef ptrdiff_t                                  difference_type;\n        static _LIBCPP_CONSTEXPR const size_type npos = -1; // size_type(-1);\n\n        // [string.view.cons], construct/copy\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        basic_string_view() _NOEXCEPT : __data (nullptr), __size(0) {}\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        basic_string_view(const basic_string_view&) _NOEXCEPT = default;\n\n        _LIBCPP_INLINE_VISIBILITY\n        basic_string_view& operator=(const basic_string_view&) _NOEXCEPT = default;\n\n        template<class _Allocator>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_string_view(const basic_string<_CharT, _Traits, _Allocator>& __str) _NOEXCEPT\n            : __data (__str.data()), __size(__str.size()) {}\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        basic_string_view(const _CharT* __s, size_type __len)\n            : __data(__s), __size(__len)\n        {\n//             _LIBCPP_ASSERT(__len == 0 || __s != nullptr, \"string_view::string_view(_CharT *, size_t): received nullptr\");\n        }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        basic_string_view(const _CharT* __s)\n            : __data(__s), __size(_Traits::length(__s)) {}\n\n        // [string.view.iterators], iterators\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_iterator begin()  const _NOEXCEPT { return cbegin(); }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_iterator end()    const _NOEXCEPT { return cend(); }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_iterator cbegin() const _NOEXCEPT { return __data; }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_iterator cend()   const _NOEXCEPT { return __data + __size; }\n\n        _LIBCPP_INLINE_VISIBILITY\n        const_reverse_iterator rbegin()   const _NOEXCEPT { return const_reverse_iterator(cend()); }\n\n        _LIBCPP_INLINE_VISIBILITY\n        const_reverse_iterator rend()     const _NOEXCEPT { return const_reverse_iterator(cbegin()); }\n\n        _LIBCPP_INLINE_VISIBILITY\n        const_reverse_iterator crbegin()  const _NOEXCEPT { return const_reverse_iterator(cend()); }\n\n        _LIBCPP_INLINE_VISIBILITY\n        const_reverse_iterator crend()    const _NOEXCEPT { return const_reverse_iterator(cbegin()); }\n\n        // [string.view.capacity], capacity\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        size_type size()     const _NOEXCEPT { return __size; }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        size_type length()   const _NOEXCEPT { return __size; }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        size_type max_size() const _NOEXCEPT { return _VSTD::numeric_limits<size_type>::max(); }\n\n        _LIBCPP_CONSTEXPR bool _LIBCPP_INLINE_VISIBILITY\n        empty()         const _NOEXCEPT { return __size == 0; }\n\n        // [string.view.access], element access\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_reference operator[](size_type __pos) const { return __data[__pos]; }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_reference at(size_type __pos) const\n        {\n            return __pos >= size()\n                ? (__throw_out_of_range(\"string_view::at\"), __data[0])\n                : __data[__pos];\n        }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_reference front() const\n        {\n            return _LIBCPP_ASSERT(!empty(), \"string_view::front(): string is empty\"), __data[0];\n        }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_reference back() const\n        {\n            return _LIBCPP_ASSERT(!empty(), \"string_view::back(): string is empty\"), __data[__size-1];\n        }\n\n        _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n        const_pointer data() const _NOEXCEPT { return __data; }\n\n        // [string.view.modifiers], modifiers:\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        void clear() _NOEXCEPT\n        {\n            __data = nullptr;\n            __size = 0;\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        void remove_prefix(size_type __n) _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__n <= size(), \"remove_prefix() can't remove more than size()\");\n            __data += __n;\n            __size -= __n;\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        void remove_suffix(size_type __n) _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__n <= size(), \"remove_suffix() can't remove more than size()\");\n            __size -= __n;\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        void swap(basic_string_view& __other) _NOEXCEPT\n        {\n            const value_type *__p = __data;\n            __data = __other.__data;\n            __other.__data = __p;\n\n            size_type __sz = __size;\n            __size = __other.__size;\n            __other.__size = __sz;\n//             _VSTD::swap( __data, __other.__data );\n//             _VSTD::swap( __size, __other.__size );\n        }\n\n        // [string.view.ops], string operations:\n        template<class _Allocator>\n        _LIBCPP_INLINE_VISIBILITY\n        _LIBCPP_EXPLICIT operator basic_string<_CharT, _Traits, _Allocator>() const\n        { return basic_string<_CharT, _Traits, _Allocator>( begin(), end()); }\n\n        template<class _Allocator = allocator<_CharT> >\n        _LIBCPP_INLINE_VISIBILITY\n        basic_string<_CharT, _Traits, _Allocator>\n        to_string( const _Allocator& __a = _Allocator()) const\n        { return basic_string<_CharT, _Traits, _Allocator> ( begin(), end(), __a ); }\n\n        size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const\n        {\n            if ( __pos > size())\n                __throw_out_of_range(\"string_view::copy\");\n            size_type __rlen = _VSTD::min( __n, size() - __pos );\n            _VSTD::copy_n(begin() + __pos, __rlen, __s );\n            return __rlen;\n        }\n\n        _LIBCPP_CONSTEXPR\n        basic_string_view substr(size_type __pos = 0, size_type __n = npos) const\n        {\n//             if (__pos > size())\n//                 __throw_out_of_range(\"string_view::substr\");\n//             size_type __rlen = _VSTD::min( __n, size() - __pos );\n//             return basic_string_view(data() + __pos, __rlen);\n            return __pos > size()\n                ? (__throw_out_of_range(\"string_view::substr\"), basic_string_view())\n                : basic_string_view(data() + __pos, _VSTD::min(__n, size() - __pos));\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 int compare(basic_string_view __sv) const _NOEXCEPT\n        {\n            size_type __rlen = _VSTD::min( size(), __sv.size());\n            int __retval = _Traits::compare(data(), __sv.data(), __rlen);\n            if ( __retval == 0 ) // first __rlen chars matched\n                __retval = size() == __sv.size() ? 0 : ( size() < __sv.size() ? -1 : 1 );\n            return __retval;\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        int compare(size_type __pos1, size_type __n1, basic_string_view __sv) const\n        {\n            return substr(__pos1, __n1).compare(__sv);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        int compare(                       size_type __pos1, size_type __n1, \n                    basic_string_view _sv, size_type __pos2, size_type __n2) const\n        {\n            return substr(__pos1, __n1).compare(_sv.substr(__pos2, __n2));\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        int compare(const _CharT* __s) const\n        {\n            return compare(basic_string_view(__s));\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        int compare(size_type __pos1, size_type __n1, const _CharT* __s) const\n        {\n            return substr(__pos1, __n1).compare(basic_string_view(__s));\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        int compare(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2) const\n        {\n            return substr(__pos1, __n1).compare(basic_string_view(__s, __n2));\n        }\n\n        // find\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find(): received nullptr\");\n            return _VSTD::__str_find<value_type, size_type, traits_type, npos>\n                (data(), size(), __s.data(), __pos, __s.size());\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find(_CharT __c, size_type __pos = 0) const _NOEXCEPT\n        {\n            return _VSTD::__str_find<value_type, size_type, traits_type, npos>\n                (data(), size(), __c, __pos);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find(const _CharT* __s, size_type __pos, size_type __n) const\n        {\n            _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find(): received nullptr\");\n            return _VSTD::__str_find<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, __n);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find(const _CharT* __s, size_type __pos = 0) const\n        {\n            _LIBCPP_ASSERT(__s != nullptr, \"string_view::find(): received nullptr\");\n            return _VSTD::__str_find<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, traits_type::length(__s));\n        }\n\n        // rfind\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type rfind(basic_string_view __s, size_type __pos = npos) const _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find(): received nullptr\");\n            return _VSTD::__str_rfind<value_type, size_type, traits_type, npos>\n                (data(), size(), __s.data(), __pos, __s.size());\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type rfind(_CharT __c, size_type __pos = npos) const _NOEXCEPT\n        {\n            return _VSTD::__str_rfind<value_type, size_type, traits_type, npos>\n                (data(), size(), __c, __pos);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const\n        {\n            _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::rfind(): received nullptr\");\n            return _VSTD::__str_rfind<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, __n);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type rfind(const _CharT* __s, size_type __pos=npos) const\n        {\n            _LIBCPP_ASSERT(__s != nullptr, \"string_view::rfind(): received nullptr\");\n            return _VSTD::__str_rfind<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, traits_type::length(__s));\n        }\n\n        // find_first_of\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_first_of(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find_first_of(): received nullptr\");\n            return _VSTD::__str_find_first_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s.data(), __pos, __s.size());\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_first_of(_CharT __c, size_type __pos = 0) const _NOEXCEPT\n        { return find(__c, __pos); }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const\n        {\n            _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find_first_of(): received nullptr\");\n            return _VSTD::__str_find_first_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, __n);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_first_of(const _CharT* __s, size_type __pos=0) const\n        {\n            _LIBCPP_ASSERT(__s != nullptr, \"string_view::find_first_of(): received nullptr\");\n            return _VSTD::__str_find_first_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, traits_type::length(__s));\n        }\n\n        // find_last_of\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_last_of(basic_string_view __s, size_type __pos=npos) const _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find_last_of(): received nullptr\");\n            return _VSTD::__str_find_last_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s.data(), __pos, __s.size());\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_last_of(_CharT __c, size_type __pos = npos) const _NOEXCEPT\n        { return rfind(__c, __pos); }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const\n        {\n            _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find_last_of(): received nullptr\");\n            return _VSTD::__str_find_last_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, __n);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_last_of(const _CharT* __s, size_type __pos=npos) const\n        {\n            _LIBCPP_ASSERT(__s != nullptr, \"string_view::find_last_of(): received nullptr\");\n            return _VSTD::__str_find_last_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, traits_type::length(__s));\n        }\n\n        // find_first_not_of\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_first_not_of(basic_string_view __s, size_type __pos=0) const _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find_first_not_of(): received nullptr\");\n            return _VSTD::__str_find_first_not_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s.data(), __pos, __s.size());\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_first_not_of(_CharT __c, size_type __pos=0) const _NOEXCEPT\n        {\n            return _VSTD::__str_find_first_not_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __c, __pos);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const\n        {\n            _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find_first_not_of(): received nullptr\");\n            return _VSTD::__str_find_first_not_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, __n);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_first_not_of(const _CharT* __s, size_type __pos=0) const\n        {\n            _LIBCPP_ASSERT(__s != nullptr, \"string_view::find_first_not_of(): received nullptr\");\n            return _VSTD::__str_find_first_not_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, traits_type::length(__s));\n        }\n\n        // find_last_not_of\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_last_not_of(basic_string_view __s, size_type __pos=npos) const _NOEXCEPT\n        {\n            _LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find_last_not_of(): received nullptr\");\n            return _VSTD::__str_find_last_not_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s.data(), __pos, __s.size());\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_last_not_of(_CharT __c, size_type __pos=npos) const _NOEXCEPT\n        {\n            return _VSTD::__str_find_last_not_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __c, __pos);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const\n        {\n            _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find_last_not_of(): received nullptr\");\n            return _VSTD::__str_find_last_not_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, __n);\n        }\n\n        _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n        size_type find_last_not_of(const _CharT* __s, size_type __pos=npos) const\n        {\n            _LIBCPP_ASSERT(__s != nullptr, \"string_view::find_last_not_of(): received nullptr\");\n            return _VSTD::__str_find_last_not_of<value_type, size_type, traits_type, npos>\n                (data(), size(), __s, __pos, traits_type::length(__s));\n        }\n\n    private:\n        const   value_type* __data;\n        size_type           __size;\n    };\n\n\n    // [string.view.comparison]\n    // operator ==\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator==(basic_string_view<_CharT, _Traits> __lhs,\n                    basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        if ( __lhs.size() != __rhs.size()) return false;\n        return __lhs.compare(__rhs) == 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator==(basic_string_view<_CharT, _Traits> __lhs,\n                    typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n    {\n        if ( __lhs.size() != __rhs.size()) return false;\n        return __lhs.compare(__rhs) == 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator==(typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n                    basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        if ( __lhs.size() != __rhs.size()) return false;\n        return __lhs.compare(__rhs) == 0;\n    }\n\n\n    // operator !=\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        if ( __lhs.size() != __rhs.size())\n            return true;\n        return __lhs.compare(__rhs) != 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(basic_string_view<_CharT, _Traits> __lhs,\n                    typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n    {\n        if ( __lhs.size() != __rhs.size())\n            return true;\n        return __lhs.compare(__rhs) != 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n                    basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        if ( __lhs.size() != __rhs.size())\n            return true;\n        return __lhs.compare(__rhs) != 0;\n    }\n\n\n    // operator <\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator<(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) < 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator<(basic_string_view<_CharT, _Traits> __lhs,\n                    typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) < 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator<(typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n                    basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) < 0;\n    }\n\n\n    // operator >\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator> (basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) > 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator>(basic_string_view<_CharT, _Traits> __lhs,\n                    typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) > 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator>(typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n                    basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) > 0;\n    }\n\n\n    // operator <=\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator<=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) <= 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator<=(basic_string_view<_CharT, _Traits> __lhs,\n                    typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) <= 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator<=(typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n                    basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) <= 0;\n    }\n\n\n    // operator >=\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator>=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) >= 0;\n    }\n\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator>=(basic_string_view<_CharT, _Traits> __lhs,\n                    typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) >= 0;\n    }\n\n    template<class _CharT, class _Traits>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator>=(typename _VSTD::common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n                    basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n    {\n        return __lhs.compare(__rhs) >= 0;\n    }\n\n\n    // [string.view.io]\n    template<class _CharT, class _Traits>\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, basic_string_view<_CharT, _Traits> __sv)\n    {\n        return _VSTD::__put_character_sequence(__os, __sv.data(), __sv.size());\n    }\n\n  typedef basic_string_view<char>     string_view;\n  typedef basic_string_view<char16_t> u16string_view;\n  typedef basic_string_view<char32_t> u32string_view;\n  typedef basic_string_view<wchar_t>  wstring_view;\n\n_LIBCPP_END_NAMESPACE_LFTS\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// [string.view.hash]\n// Shamelessly stolen from <string>\ntemplate<class _CharT, class _Traits>\nstruct _LIBCPP_TEMPLATE_VIS hash<std::experimental::basic_string_view<_CharT, _Traits> >\n    : public unary_function<std::experimental::basic_string_view<_CharT, _Traits>, size_t>\n{\n    size_t operator()(const std::experimental::basic_string_view<_CharT, _Traits>& __val) const _NOEXCEPT;\n};\n\ntemplate<class _CharT, class _Traits>\nsize_t\nhash<std::experimental::basic_string_view<_CharT, _Traits> >::operator()(\n        const std::experimental::basic_string_view<_CharT, _Traits>& __val) const _NOEXCEPT\n{\n    return __do_string_hash(__val.data(), __val.data() + __val.size());\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _CharT, class _Traits>\n__quoted_output_proxy<_CharT, const _CharT *, _Traits>\nquoted ( std::experimental::basic_string_view <_CharT, _Traits> __sv,\n             _CharT __delim = _CharT('\"'), _CharT __escape=_CharT('\\\\'))\n{\n    return __quoted_output_proxy<_CharT, const _CharT *, _Traits> \n         ( __sv.data(), __sv.data() + __sv.size(), __delim, __escape );\n}\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif // _LIBCPP_LFTS_STRING_VIEW\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/system_error",
    "content": "// -*- C++ -*-\n//===-------------------------- system_error ------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR\n#define _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR\n\n/**\n    experimental/system_error synopsis\n\n// C++1y\n\n#include <system_error>\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\n  // See C++14 19.5, System error support\n  template <class T> constexpr bool is_error_code_enum_v\n    = is_error_code_enum<T>::value;\n  template <class T> constexpr bool is_error_condition_enum_v\n    = is_error_condition_enum<T>::value;\n\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n*/\n\n#include <experimental/__config>\n\n#if _LIBCPP_STD_VER > 11\n\n#include <system_error>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\n#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_error_code_enum_v\n    = is_error_code_enum<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_error_condition_enum_v\n    = is_error_condition_enum<_Tp>::value;\n\n#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n#endif /* _LIBCPP_STD_VER > 11 */\n\n#endif /* _LIBCPP_EXPERIMENTAL_SYSTEM_ERROR */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/tuple",
    "content": "// -*- C++ -*-\n//===----------------------------- tuple ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_TUPLE\n#define _LIBCPP_EXPERIMENTAL_TUPLE\n\n/*\n    experimental/tuple synopsis\n\n// C++1y\n\n#include <tuple>\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\n  // See C++14 20.4.2.5, tuple helper classes\n  template <class T> constexpr size_t tuple_size_v\n    = tuple_size<T>::value;\n\n  // 3.2.2, Calling a function with a tuple of arguments\n  template <class F, class Tuple>\n  constexpr decltype(auto) apply(F&& f, Tuple&& t);\n\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n# include <experimental/__config>\n\n#if _LIBCPP_STD_VER > 11\n\n# include <tuple>\n# include <utility>\n# include <__functional_base>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\n#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\ntemplate <class _Tp>\n_LIBCPP_CONSTEXPR size_t tuple_size_v = tuple_size<_Tp>::value;\n#endif\n\ntemplate <class _Fn, class _Tuple, size_t ..._Id>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR_AFTER_CXX11\ndecltype(auto) __apply_tuple_impl(_Fn && __f, _Tuple && __t,\n                                  integer_sequence<size_t, _Id...>) {\n    return _VSTD::__invoke_constexpr(\n        _VSTD::forward<_Fn>(__f),\n        _VSTD::get<_Id>(_VSTD::forward<_Tuple>(__t))...\n    );\n}\n\ntemplate <class _Fn, class _Tuple>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ndecltype(auto) apply(_Fn && __f, _Tuple && __t) {\n    return _VSTD_LFTS::__apply_tuple_impl(\n        _VSTD::forward<_Fn>(__f), _VSTD::forward<_Tuple>(__t),\n        make_index_sequence<tuple_size<typename decay<_Tuple>::type>::value>()\n    );\n}\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n#endif /* _LIBCPP_STD_VER > 11 */\n\n#endif /* _LIBCPP_EXPERIMENTAL_TUPLE */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/type_traits",
    "content": "// -*- C++ -*-\n//===-------------------------- type_traits -------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_TYPE_TRAITS\n#define _LIBCPP_EXPERIMENTAL_TYPE_TRAITS\n\n/**\n    experimental/type_traits synopsis\n\n// C++1y\n#include <type_traits>\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\n  // See C++14 20.10.4.1, primary type categories\n  template <class T> constexpr bool is_void_v\n    = is_void<T>::value;\n  template <class T> constexpr bool is_null_pointer_v\n    = is_null_pointer<T>::value;\n  template <class T> constexpr bool is_integral_v\n    = is_integral<T>::value;\n  template <class T> constexpr bool is_floating_point_v\n    = is_floating_point<T>::value;\n  template <class T> constexpr bool is_array_v\n    = is_array<T>::value;\n  template <class T> constexpr bool is_pointer_v\n    = is_pointer<T>::value;\n  template <class T> constexpr bool is_lvalue_reference_v\n    = is_lvalue_reference<T>::value;\n  template <class T> constexpr bool is_rvalue_reference_v\n    = is_rvalue_reference<T>::value;\n  template <class T> constexpr bool is_member_object_pointer_v\n    = is_member_object_pointer<T>::value;\n  template <class T> constexpr bool is_member_function_pointer_v\n    = is_member_function_pointer<T>::value;\n  template <class T> constexpr bool is_enum_v\n    = is_enum<T>::value;\n  template <class T> constexpr bool is_union_v\n    = is_union<T>::value;\n  template <class T> constexpr bool is_class_v\n    = is_class<T>::value;\n  template <class T> constexpr bool is_function_v\n    = is_function<T>::value;\n\n  // See C++14 20.10.4.2, composite type categories\n  template <class T> constexpr bool is_reference_v\n    = is_reference<T>::value;\n  template <class T> constexpr bool is_arithmetic_v\n    = is_arithmetic<T>::value;\n  template <class T> constexpr bool is_fundamental_v\n    = is_fundamental<T>::value;\n  template <class T> constexpr bool is_object_v\n    = is_object<T>::value;\n  template <class T> constexpr bool is_scalar_v\n    = is_scalar<T>::value;\n  template <class T> constexpr bool is_compound_v\n    = is_compound<T>::value;\n  template <class T> constexpr bool is_member_pointer_v\n    = is_member_pointer<T>::value;\n\n  // See C++14 20.10.4.3, type properties\n  template <class T> constexpr bool is_const_v\n    = is_const<T>::value;\n  template <class T> constexpr bool is_volatile_v\n    = is_volatile<T>::value;\n  template <class T> constexpr bool is_trivial_v\n    = is_trivial<T>::value;\n  template <class T> constexpr bool is_trivially_copyable_v\n    = is_trivially_copyable<T>::value;\n  template <class T> constexpr bool is_standard_layout_v\n    = is_standard_layout<T>::value;\n  template <class T> constexpr bool is_pod_v\n    = is_pod<T>::value;\n  template <class T> constexpr bool is_literal_type_v\n    = is_literal_type<T>::value;\n  template <class T> constexpr bool is_empty_v\n    = is_empty<T>::value;\n  template <class T> constexpr bool is_polymorphic_v\n    = is_polymorphic<T>::value;\n  template <class T> constexpr bool is_abstract_v\n    = is_abstract<T>::value;\n  template <class T> constexpr bool is_final_v\n    = is_final<T>::value;\n  template <class T> constexpr bool is_signed_v\n    = is_signed<T>::value;\n  template <class T> constexpr bool is_unsigned_v\n    = is_unsigned<T>::value;\n  template <class T, class... Args> constexpr bool is_constructible_v\n    = is_constructible<T, Args...>::value;\n  template <class T> constexpr bool is_default_constructible_v\n    = is_default_constructible<T>::value;\n  template <class T> constexpr bool is_copy_constructible_v\n    = is_copy_constructible<T>::value;\n  template <class T> constexpr bool is_move_constructible_v\n    = is_move_constructible<T>::value;\n  template <class T, class U> constexpr bool is_assignable_v\n    = is_assignable<T, U>::value;\n  template <class T> constexpr bool is_copy_assignable_v\n    = is_copy_assignable<T>::value;\n  template <class T> constexpr bool is_move_assignable_v\n    = is_move_assignable<T>::value;\n  template <class T> constexpr bool is_destructible_v\n    = is_destructible<T>::value;\n  template <class T, class... Args> constexpr bool is_trivially_constructible_v\n    = is_trivially_constructible<T, Args...>::value;\n  template <class T> constexpr bool is_trivially_default_constructible_v\n    = is_trivially_default_constructible<T>::value;\n  template <class T> constexpr bool is_trivially_copy_constructible_v\n    = is_trivially_copy_constructible<T>::value;\n  template <class T> constexpr bool is_trivially_move_constructible_v\n    = is_trivially_move_constructible<T>::value;\n  template <class T, class U> constexpr bool is_trivially_assignable_v\n    = is_trivially_assignable<T, U>::value;\n  template <class T> constexpr bool is_trivially_copy_assignable_v\n    = is_trivially_copy_assignable<T>::value;\n  template <class T> constexpr bool is_trivially_move_assignable_v\n    = is_trivially_move_assignable<T>::value;\n  template <class T> constexpr bool is_trivially_destructible_v\n    = is_trivially_destructible<T>::value;\n  template <class T, class... Args> constexpr bool is_nothrow_constructible_v\n    = is_nothrow_constructible<T, Args...>::value;\n  template <class T> constexpr bool is_nothrow_default_constructible_v\n    = is_nothrow_default_constructible<T>::value;\n  template <class T> constexpr bool is_nothrow_copy_constructible_v\n    = is_nothrow_copy_constructible<T>::value;\n  template <class T> constexpr bool is_nothrow_move_constructible_v\n    = is_nothrow_move_constructible<T>::value;\n  template <class T, class U> constexpr bool is_nothrow_assignable_v\n    = is_nothrow_assignable<T, U>::value;\n  template <class T> constexpr bool is_nothrow_copy_assignable_v\n    = is_nothrow_copy_assignable<T>::value;\n  template <class T> constexpr bool is_nothrow_move_assignable_v\n    = is_nothrow_move_assignable<T>::value;\n  template <class T> constexpr bool is_nothrow_destructible_v\n    = is_nothrow_destructible<T>::value;\n  template <class T> constexpr bool has_virtual_destructor_v\n    = has_virtual_destructor<T>::value;\n\n  // See C++14 20.10.5, type property queries\n  template <class T> constexpr size_t alignment_of_v\n    = alignment_of<T>::value;\n  template <class T> constexpr size_t rank_v\n    = rank<T>::value;\n  template <class T, unsigned I = 0> constexpr size_t extent_v\n    = extent<T, I>::value;\n\n  // See C++14 20.10.6, type relations\n  template <class T, class U> constexpr bool is_same_v\n    = is_same<T, U>::value;\n  template <class Base, class Derived> constexpr bool is_base_of_v\n    = is_base_of<Base, Derived>::value;\n  template <class From, class To> constexpr bool is_convertible_v\n    = is_convertible<From, To>::value;\n\n  // 3.3.2, Other type transformations\n  template <class> class invocation_type; // not defined\n  template <class F, class... ArgTypes> class invocation_type<F(ArgTypes...)>;\n  template <class> class raw_invocation_type; // not defined\n  template <class F, class... ArgTypes> class raw_invocation_type<F(ArgTypes...)>;\n\n  template <class T>\n    using invocation_type_t = typename invocation_type<T>::type;\n  template <class T>\n    using raw_invocation_type_t = typename raw_invocation_type<T>::type;\n\n  // 3.3.3, Logical operator traits\n  template<class... B> struct conjunction;\n  template<class... B> constexpr bool conjunction_v = conjunction<B...>::value;\n  template<class... B> struct disjunction;\n  template<class... B> constexpr bool disjunction_v = disjunction<B...>::value;\n  template<class B> struct negation;\n  template<class B> constexpr bool negation_v = negation<B>::value;\n\n  // 3.3.4, Detection idiom\n  template <class...> using void_t = void;\n\n  struct nonesuch {\n    nonesuch() = delete;\n    ~nonesuch() = delete;\n    nonesuch(nonesuch const&) = delete;\n    void operator=(nonesuch const&) = delete;\n  };\n\n  template <template<class...> class Op, class... Args>\n    using is_detected = see below;\n  template <template<class...> class Op, class... Args>\n    constexpr bool is_detected_v = is_detected<Op, Args...>::value;\n  template <template<class...> class Op, class... Args>\n    using detected_t = see below;\n  template <class Default, template<class...> class Op, class... Args>\n    using detected_or = see below;\n  template <class Default, template<class...> class Op, class... Args>\n    using detected_or_t = typename detected_or<Default, Op, Args...>::type;\n  template <class Expected, template<class...> class Op, class... Args>\n    using is_detected_exact = is_same<Expected, detected_t<Op, Args...>>;\n  template <class Expected, template<class...> class Op, class... Args>\n    constexpr bool is_detected_exact_v\n      = is_detected_exact<Expected, Op, Args...>::value;\n  template <class To, template<class...> class Op, class... Args>\n     using is_detected_convertible = is_convertible<detected_t<Op, Args...>, To>;\n  template <class To, template<class...> class Op, class... Args>\n     constexpr bool is_detected_convertible_v\n       = is_detected_convertible<To, Op, Args...>::value;  \n\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n\n#if _LIBCPP_STD_VER > 11\n\n#include <type_traits>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\n#ifndef _LIBCPP_HAS_NO_VARIABLE_TEMPLATES\n\n// C++14 20.10.4.1, primary type categories\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_void_v\n    = is_void<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_null_pointer_v\n    = is_null_pointer<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_integral_v\n    = is_integral<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_floating_point_v\n    = is_floating_point<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_array_v\n    = is_array<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_pointer_v\n    = is_pointer<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_lvalue_reference_v\n    = is_lvalue_reference<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_rvalue_reference_v\n    = is_rvalue_reference<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_member_object_pointer_v\n    = is_member_object_pointer<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_member_function_pointer_v\n    = is_member_function_pointer<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_enum_v\n    = is_enum<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_union_v\n    = is_union<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_class_v\n    = is_class<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_function_v\n    = is_function<_Tp>::value;\n\n// C++14 20.10.4.2,  composite type categories\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_reference_v\n    = is_reference<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_arithmetic_v\n    = is_arithmetic<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_fundamental_v\n    = is_fundamental<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_object_v\n    = is_object<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_scalar_v\n    = is_scalar<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_compound_v\n    = is_compound<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_member_pointer_v\n    = is_member_pointer<_Tp>::value;\n\n// C++14 20.10.4.3, type properties\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_const_v\n    = is_const<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_volatile_v\n    = is_volatile<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivial_v\n    = is_trivial<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_copyable_v\n    = is_trivially_copyable<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_standard_layout_v\n    = is_standard_layout<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_pod_v\n    = is_pod<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_literal_type_v\n    = is_literal_type<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_empty_v\n    = is_empty<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_polymorphic_v\n    = is_polymorphic<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_abstract_v\n    = is_abstract<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_final_v\n    = is_final<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_signed_v\n    = is_signed<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_unsigned_v\n    = is_unsigned<_Tp>::value;\n\ntemplate <class _Tp, class ..._Ts> _LIBCPP_CONSTEXPR bool is_constructible_v\n    = is_constructible<_Tp, _Ts...>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_default_constructible_v\n    = is_default_constructible<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_copy_constructible_v\n    = is_copy_constructible<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_move_constructible_v\n    = is_move_constructible<_Tp>::value;\n\ntemplate <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_assignable_v\n    = is_assignable<_Tp, _Up>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_copy_assignable_v\n    = is_copy_assignable<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_move_assignable_v\n    = is_move_assignable<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_destructible_v\n    = is_destructible<_Tp>::value;\n\ntemplate <class _Tp, class ..._Ts> _LIBCPP_CONSTEXPR bool is_trivially_constructible_v\n    = is_trivially_constructible<_Tp, _Ts...>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_default_constructible_v\n    = is_trivially_default_constructible<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_copy_constructible_v\n    = is_trivially_copy_constructible<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_move_constructible_v\n    = is_trivially_move_constructible<_Tp>::value;\n\ntemplate <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_trivially_assignable_v\n    = is_trivially_assignable<_Tp, _Up>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_copy_assignable_v\n    = is_trivially_copy_assignable<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_move_assignable_v\n    = is_trivially_move_assignable<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_destructible_v\n    = is_trivially_destructible<_Tp>::value;\n\ntemplate <class _Tp, class ..._Ts> _LIBCPP_CONSTEXPR bool is_nothrow_constructible_v\n    = is_nothrow_constructible<_Tp, _Ts...>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_default_constructible_v\n    = is_nothrow_default_constructible<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_copy_constructible_v\n    = is_nothrow_copy_constructible<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_move_constructible_v\n    = is_nothrow_move_constructible<_Tp>::value;\n\ntemplate <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_nothrow_assignable_v\n    = is_nothrow_assignable<_Tp, _Up>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_copy_assignable_v\n    = is_nothrow_copy_assignable<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_move_assignable_v\n    = is_nothrow_move_assignable<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_destructible_v\n    = is_nothrow_destructible<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool has_virtual_destructor_v\n    = has_virtual_destructor<_Tp>::value;\n\n// C++14 20.10.5, type properties queries\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR size_t alignment_of_v\n    = alignment_of<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR size_t rank_v\n    = rank<_Tp>::value;\n\ntemplate <class _Tp, unsigned _Id = 0> _LIBCPP_CONSTEXPR size_t extent_v\n    = extent<_Tp, _Id>::value;\n\n// C++14 20.10.6, type relations\n\ntemplate <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_same_v\n    = is_same<_Tp, _Up>::value;\n\ntemplate <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_base_of_v\n    = is_base_of<_Tp, _Up>::value;\n\ntemplate <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_convertible_v\n    = is_convertible<_Tp, _Up>::value;\n\n#endif /* _LIBCPP_HAS_NO_VARIABLE_TEMPLATES */\n\n// 3.3.2, Other type transformations\n/*\ntemplate <class>\nclass _LIBCPP_TEMPLATE_VIS raw_invocation_type;\n\ntemplate <class _Fn, class ..._Args>\nclass _LIBCPP_TEMPLATE_VIS raw_invocation_type<_Fn(_Args...)>;\n\ntemplate <class>\nclass _LIBCPP_TEMPLATE_VIS invokation_type;\n\ntemplate <class _Fn, class ..._Args>\nclass _LIBCPP_TEMPLATE_VIS invokation_type<_Fn(_Args...)>;\n\ntemplate <class _Tp>\nusing invokation_type_t = typename invokation_type<_Tp>::type;\n\ntemplate <class _Tp>\nusing raw_invocation_type_t = typename raw_invocation_type<_Tp>::type;\n*/\n\n// 3.3.3, Logical operator traits\ntemplate <class...> using void_t = void;\n\ntemplate <class... _Args>\nstruct conjunction : _VSTD::__and_<_Args...> {};\ntemplate <class... _Args>\n_LIBCPP_CONSTEXPR bool conjunction_v = conjunction<_Args...>::value;\n\ntemplate <class... _Args>\nstruct disjunction : _VSTD::__or_<_Args...> {};\ntemplate <class... _Args>\n_LIBCPP_CONSTEXPR bool disjunction_v = disjunction<_Args...>::value;\n\ntemplate <class _Tp>\nstruct negation : _VSTD::__not_<_Tp> {};\ntemplate<class _Tp>\n_LIBCPP_CONSTEXPR bool negation_v = negation<_Tp>::value;\n\n// 3.3.4, Detection idiom\ntemplate <class...> using void_t = void;\n\nstruct nonesuch {\n    nonesuch()  = delete;\n    ~nonesuch() = delete;\n    nonesuch      (nonesuch const&) = delete;\n    void operator=(nonesuch const&) = delete;\n  };\n\ntemplate <class _Default, class _AlwaysVoid, template <class...> class _Op, class... _Args>\nstruct _DETECTOR {\n   using value_t = false_type;\n   using type = _Default;\n   };\n\ntemplate <class _Default, template <class...> class _Op, class... _Args>\nstruct _DETECTOR<_Default, void_t<_Op<_Args...>>, _Op, _Args...> {\n   using value_t = true_type;\n   using type = _Op<_Args...>;\n   };\n     \n\ntemplate <template<class...> class _Op, class... _Args>\n  using is_detected = typename _DETECTOR<nonesuch, void, _Op, _Args...>::value_t;\ntemplate <template<class...> class _Op, class... _Args>\n  using detected_t = typename _DETECTOR<nonesuch, void, _Op, _Args...>::type;\ntemplate <template<class...> class _Op, class... _Args>\n  _LIBCPP_CONSTEXPR bool is_detected_v = is_detected<_Op, _Args...>::value;\n\ntemplate <class Default, template<class...> class _Op, class... _Args>\n  using detected_or = _DETECTOR<Default, void, _Op, _Args...>;\ntemplate <class Default, template<class...> class _Op, class... _Args>\n  using detected_or_t = typename detected_or<Default, _Op, _Args...>::type;\n\ntemplate <class Expected, template<class...> class _Op, class... _Args>\n  using is_detected_exact = is_same<Expected, detected_t<_Op, _Args...>>;\ntemplate <class Expected, template<class...> class _Op, class... _Args>\n  _LIBCPP_CONSTEXPR bool is_detected_exact_v = is_detected_exact<Expected, _Op, _Args...>::value;\n\ntemplate <class To, template<class...> class _Op, class... _Args>\n  using is_detected_convertible = is_convertible<detected_t<_Op, _Args...>, To>;\ntemplate <class To, template<class...> class _Op, class... _Args>\n  _LIBCPP_CONSTEXPR bool is_detected_convertible_v = is_detected_convertible<To, _Op, _Args...>::value;  \n\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n#endif /* _LIBCPP_STD_VER > 11 */\n\n#endif /* _LIBCPP_EXPERIMENTAL_TYPE_TRAITS */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/unordered_map",
    "content": "// -*- C++ -*-\n//===------------------------- unordered_map ------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_UNORDERED_MAP\n#define _LIBCPP_EXPERIMENTAL_UNORDERED_MAP\n/*\n    experimental/unordered_map synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class Key, class T,\n            class Hash = hash<Key>,\n            class Pred = equal_to<Key>>\n  using unordered_map =\n    std::unordered_map<Key, T, Hash, Pred,\n                       polymorphic_allocator<pair<const Key,T>>>;\n\n  template <class Key, class T,\n            class Hash = hash<Key>,\n            class Pred = equal_to<Key>>\n  using unordered_multimap =\n    std::unordered_multimap<Key, T, Hash, Pred,\n                            polymorphic_allocator<pair<const Key,T>>>;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <unordered_map>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _Key, class _Value,\n          class _Hash = hash<_Key>, class _Pred = equal_to<_Key>>\nusing unordered_map = _VSTD::unordered_map<_Key, _Value, _Hash, _Pred,\n                        polymorphic_allocator<pair<const _Key, _Value>>>;\n\ntemplate <class _Key, class _Value,\n          class _Hash = hash<_Key>, class _Pred = equal_to<_Key>>\nusing unordered_multimap = _VSTD::unordered_multimap<_Key, _Value, _Hash, _Pred,\n                        polymorphic_allocator<pair<const _Key, _Value>>>;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_UNORDERED_MAP */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/unordered_set",
    "content": "// -*- C++ -*-\n//===------------------------- unordered_set ------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_UNORDERED_SET\n#define _LIBCPP_EXPERIMENTAL_UNORDERED_SET\n/*\n    experimental/unordered_set synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class T, class Hash = hash<T>, class Pred = equal_to<T>>\n  using unordered_set = std::unordered_set<T, Hash, Pred,\n                       polymorphic_allocator<T>>;\n\n  template <class T, class Hash = hash<T>, class Pred = equal_to<T>>\n  using unordered_multiset = std::unordered_multiset<T, Hash, Pred,\n                       polymorphic_allocator<T>>;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <unordered_set>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _Value,\n          class _Hash = hash<_Value>, class _Pred = equal_to<_Value>>\nusing unordered_set = _VSTD::unordered_set<_Value, _Hash, _Pred,\n                        polymorphic_allocator<_Value>>;\n\ntemplate <class _Value,\n          class _Hash = hash<_Value>, class _Pred = equal_to<_Value>>\nusing unordered_multiset = _VSTD::unordered_multiset<_Value, _Hash, _Pred,\n                        polymorphic_allocator<_Value>>;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_UNORDERED_SET */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/utility",
    "content": "// -*- C++ -*-\n//===-------------------------- utility ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_UTILITY\n#define _LIBCPP_EXPERIMENTAL_UTILITY\n\n/*\n    experimental/utility synopsis\n\n// C++1y\n\n#include <utility>\n\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\n\n  3.1.2, erased-type placeholder\n  struct erased_type { };\n\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <utility>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS\n\n  struct _LIBCPP_TEMPLATE_VIS erased_type { };\n\n_LIBCPP_END_NAMESPACE_LFTS\n\n#endif /* _LIBCPP_EXPERIMENTAL_UTILITY */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/experimental/vector",
    "content": "// -*- C++ -*-\n//===--------------------------- vector ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXPERIMENTAL_VECTOR\n#define _LIBCPP_EXPERIMENTAL_VECTOR\n/*\n    experimental/vector synopsis\n\n// C++1z\nnamespace std {\nnamespace experimental {\ninline namespace fundamentals_v1 {\nnamespace pmr {\n\n  template <class T>\n  using vector = std::vector<T, polymorphic_allocator<T>>;\n\n} // namespace pmr\n} // namespace fundamentals_v1\n} // namespace experimental\n} // namespace std\n\n */\n\n#include <experimental/__config>\n#include <vector>\n#include <experimental/memory_resource>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_LFTS_PMR\n\ntemplate <class _ValueT>\nusing vector = _VSTD::vector<_ValueT, polymorphic_allocator<_ValueT>>;\n\n_LIBCPP_END_NAMESPACE_LFTS_PMR\n\n#endif /* _LIBCPP_EXPERIMENTAL_VECTOR */\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ext/__hash",
    "content": "// -*- C++ -*-\n//===------------------------- hash_set ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_EXT_HASH\n#define _LIBCPP_EXT_HASH\n\n#pragma GCC system_header\n\n#include <string>\n#include <cstring>\n\nnamespace __gnu_cxx {\nusing namespace std;\n\ntemplate <typename _Tp> struct _LIBCPP_TEMPLATE_VIS hash { };\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<const char*>\n    : public unary_function<const char*, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const char *__c) const _NOEXCEPT\n    {\n        return __do_string_hash(__c, __c + strlen(__c));\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<char *>\n    : public unary_function<char*, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(char *__c) const _NOEXCEPT\n    {\n        return __do_string_hash<const char *>(__c, __c + strlen(__c));\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<char>\n    : public unary_function<char, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(char __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<signed char>\n    : public unary_function<signed char, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(signed char __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned char>\n    : public unary_function<unsigned char, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(unsigned char __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<short>\n    : public unary_function<short, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(short __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned short>\n    : public unary_function<unsigned short, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(unsigned short __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<int>\n    : public unary_function<int, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(int __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned int>\n    : public unary_function<unsigned int, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(unsigned int __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<long>\n    : public unary_function<long, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(long __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS hash<unsigned long>\n    : public unary_function<unsigned long, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(unsigned long __c) const _NOEXCEPT\n    {\n        return __c;\n    }\n};\n}\n\n#endif  // _LIBCPP_EXT_HASH\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ext/hash_map",
    "content": "// -*- C++ -*-\n//===-------------------------- hash_map ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_HASH_MAP\n#define _LIBCPP_HASH_MAP\n\n/*\n\n    hash_map synopsis\n\nnamespace __gnu_cxx\n{\n\ntemplate <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,\n          class Alloc = allocator<pair<const Key, T>>>\nclass hash_map\n{\npublic:\n    // types\n    typedef Key                                                        key_type;\n    typedef T                                                          mapped_type;\n    typedef Hash                                                       hasher;\n    typedef Pred                                                       key_equal;\n    typedef Alloc                                                      allocator_type;\n    typedef pair<const key_type, mapped_type>                          value_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef /unspecified/ iterator;\n    typedef /unspecified/ const_iterator;\n\n    explicit hash_map(size_type n = 193, const hasher& hf = hasher(),\n                           const key_equal& eql = key_equal(),\n                           const allocator_type& a = allocator_type());\n    template <class InputIterator>\n        hash_map(InputIterator f, InputIterator l,\n                      size_type n = 193, const hasher& hf = hasher(),\n                      const key_equal& eql = key_equal(),\n                      const allocator_type& a = allocator_type());\n    hash_map(const hash_map&);\n    ~hash_map();\n    hash_map& operator=(const hash_map&);\n\n    allocator_type get_allocator() const;\n\n    bool      empty() const;\n    size_type size() const;\n    size_type max_size() const;\n\n    iterator       begin();\n    iterator       end();\n    const_iterator begin()  const;\n    const_iterator end()    const;\n\n    pair<iterator, bool> insert(const value_type& obj);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n\n    void erase(const_iterator position);\n    size_type erase(const key_type& k);\n    void erase(const_iterator first, const_iterator last);\n    void clear();\n\n    void swap(hash_map&);\n\n    hasher hash_funct() const;\n    key_equal key_eq() const;\n\n    iterator       find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    size_type count(const key_type& k) const;\n    pair<iterator, iterator>             equal_range(const key_type& k);\n    pair<const_iterator, const_iterator> equal_range(const key_type& k) const;\n\n    mapped_type& operator[](const key_type& k);\n\n    size_type bucket_count() const;\n    size_type max_bucket_count() const;\n\n    size_type elems_in_bucket(size_type n) const;\n\n    void resize(size_type n);\n};\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    void swap(hash_map<Key, T, Hash, Pred, Alloc>& x,\n              hash_map<Key, T, Hash, Pred, Alloc>& y);\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    bool\n    operator==(const hash_map<Key, T, Hash, Pred, Alloc>& x,\n               const hash_map<Key, T, Hash, Pred, Alloc>& y);\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    bool\n    operator!=(const hash_map<Key, T, Hash, Pred, Alloc>& x,\n               const hash_map<Key, T, Hash, Pred, Alloc>& y);\n\ntemplate <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,\n          class Alloc = allocator<pair<const Key, T>>>\nclass hash_multimap\n{\npublic:\n    // types\n    typedef Key                                                        key_type;\n    typedef T                                                          mapped_type;\n    typedef Hash                                                       hasher;\n    typedef Pred                                                       key_equal;\n    typedef Alloc                                                      allocator_type;\n    typedef pair<const key_type, mapped_type>                          value_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef /unspecified/ iterator;\n    typedef /unspecified/ const_iterator;\n\n    explicit hash_multimap(size_type n = 193, const hasher& hf = hasher(),\n                           const key_equal& eql = key_equal(),\n                           const allocator_type& a = allocator_type());\n    template <class InputIterator>\n        hash_multimap(InputIterator f, InputIterator l,\n                      size_type n = 193, const hasher& hf = hasher(),\n                      const key_equal& eql = key_equal(),\n                      const allocator_type& a = allocator_type());\n    explicit hash_multimap(const allocator_type&);\n    hash_multimap(const hash_multimap&);\n    ~hash_multimap();\n    hash_multimap& operator=(const hash_multimap&);\n\n    allocator_type get_allocator() const;\n\n    bool      empty() const;\n    size_type size() const;\n    size_type max_size() const;\n\n    iterator       begin();\n    iterator       end();\n    const_iterator begin()  const;\n    const_iterator end()    const;\n\n    iterator insert(const value_type& obj);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n\n    void erase(const_iterator position);\n    size_type erase(const key_type& k);\n    void erase(const_iterator first, const_iterator last);\n    void clear();\n\n    void swap(hash_multimap&);\n\n    hasher hash_funct() const;\n    key_equal key_eq() const;\n\n    iterator       find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    size_type count(const key_type& k) const;\n    pair<iterator, iterator>             equal_range(const key_type& k);\n    pair<const_iterator, const_iterator> equal_range(const key_type& k) const;\n\n    size_type bucket_count() const;\n    size_type max_bucket_count() const;\n\n    size_type elems_in_bucket(size_type n) const;\n\n    void resize(size_type n);\n};\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    void swap(hash_multimap<Key, T, Hash, Pred, Alloc>& x,\n              hash_multimap<Key, T, Hash, Pred, Alloc>& y);\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    bool\n    operator==(const hash_multimap<Key, T, Hash, Pred, Alloc>& x,\n               const hash_multimap<Key, T, Hash, Pred, Alloc>& y);\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    bool\n    operator!=(const hash_multimap<Key, T, Hash, Pred, Alloc>& x,\n               const hash_multimap<Key, T, Hash, Pred, Alloc>& y);\n\n}  // __gnu_cxx\n\n*/\n\n#include <__config>\n#include <__hash_table>\n#include <functional>\n#include <stdexcept>\n#include <type_traits>\n#include <ext/__hash>\n\n#if __DEPRECATED\n#if defined(_LIBCPP_WARNING)\n    _LIBCPP_WARNING(\"Use of the header <ext/hash_map> is deprecated.  Migrate to <unordered_map>\")\n#else\n#   warning Use of the header <ext/hash_map> is deprecated.  Migrate to <unordered_map>\n#endif\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\nnamespace __gnu_cxx {\n\nusing namespace std;\n\ntemplate <class _Tp, class _Hash,\n          bool = is_empty<_Hash>::value && !__libcpp_is_final<_Hash>::value\n        >\nclass __hash_map_hasher\n    : private _Hash\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY __hash_map_hasher() : _Hash() {}\n    _LIBCPP_INLINE_VISIBILITY __hash_map_hasher(const _Hash& __h) : _Hash(__h) {}\n    _LIBCPP_INLINE_VISIBILITY const _Hash& hash_function() const {return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const _Tp& __x) const\n        {return static_cast<const _Hash&>(*this)(__x.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const typename _Tp::first_type& __x) const\n        {return static_cast<const _Hash&>(*this)(__x);}\n};\n\ntemplate <class _Tp, class _Hash>\nclass __hash_map_hasher<_Tp, _Hash, false>\n{\n    _Hash __hash_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY __hash_map_hasher() : __hash_() {}\n    _LIBCPP_INLINE_VISIBILITY __hash_map_hasher(const _Hash& __h) : __hash_(__h) {}\n    _LIBCPP_INLINE_VISIBILITY const _Hash& hash_function() const {return __hash_;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const _Tp& __x) const\n        {return __hash_(__x.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const typename _Tp::first_type& __x) const\n        {return __hash_(__x);}\n};\n\ntemplate <class _Tp, class _Pred,\n          bool = is_empty<_Pred>::value && !__libcpp_is_final<_Pred>::value\n         >\nclass __hash_map_equal\n    : private _Pred\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY __hash_map_equal() : _Pred() {}\n    _LIBCPP_INLINE_VISIBILITY __hash_map_equal(const _Pred& __p) : _Pred(__p) {}\n    _LIBCPP_INLINE_VISIBILITY const _Pred& key_eq() const {return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return static_cast<const _Pred&>(*this)(__x.first, __y.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const typename _Tp::first_type& __x, const _Tp& __y) const\n        {return static_cast<const _Pred&>(*this)(__x, __y.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const typename _Tp::first_type& __y) const\n        {return static_cast<const _Pred&>(*this)(__x.first, __y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const typename _Tp::first_type& __x,\n                    const typename _Tp::first_type& __y) const\n        {return static_cast<const _Pred&>(*this)(__x, __y);}\n};\n\ntemplate <class _Tp, class _Pred>\nclass __hash_map_equal<_Tp, _Pred, false>\n{\n    _Pred __pred_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY __hash_map_equal() : __pred_() {}\n    _LIBCPP_INLINE_VISIBILITY __hash_map_equal(const _Pred& __p) : __pred_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY const _Pred& key_eq() const {return __pred_;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __pred_(__x.first, __y.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const typename _Tp::first_type& __x, const _Tp& __y) const\n        {return __pred_(__x, __y.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const typename _Tp::first_type& __y) const\n        {return __pred_(__x.first, __y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const typename _Tp::first_type& __x,\n                    const typename _Tp::first_type& __y) const\n        {return __pred_(__x, __y);}\n};\n\ntemplate <class _Alloc>\nclass __hash_map_node_destructor\n{\n    typedef _Alloc                              allocator_type;\n    typedef allocator_traits<allocator_type>    __alloc_traits;\n    typedef typename __alloc_traits::value_type::__node_value_type value_type;\npublic:\n    typedef typename __alloc_traits::pointer    pointer;\nprivate:\n    typedef typename value_type::first_type     first_type;\n    typedef typename value_type::second_type    second_type;\n\n    allocator_type& __na_;\n\n    __hash_map_node_destructor& operator=(const __hash_map_node_destructor&);\n\npublic:\n    bool __first_constructed;\n    bool __second_constructed;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __hash_map_node_destructor(allocator_type& __na)\n        : __na_(__na),\n          __first_constructed(false),\n          __second_constructed(false)\n        {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_node_destructor(__hash_node_destructor<allocator_type>&& __x)\n        : __na_(__x.__na_),\n          __first_constructed(__x.__value_constructed),\n          __second_constructed(__x.__value_constructed)\n        {\n            __x.__value_constructed = false;\n        }\n#else  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_node_destructor(const __hash_node_destructor<allocator_type>& __x)\n        : __na_(__x.__na_),\n          __first_constructed(__x.__value_constructed),\n          __second_constructed(__x.__value_constructed)\n        {\n            const_cast<bool&>(__x.__value_constructed) = false;\n        }\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()(pointer __p)\n    {\n        if (__second_constructed)\n            __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.second));\n        if (__first_constructed)\n            __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.first));\n        if (__p)\n            __alloc_traits::deallocate(__na_, __p, 1);\n    }\n};\n\ntemplate <class _HashIterator>\nclass _LIBCPP_TEMPLATE_VIS __hash_map_iterator\n{\n    _HashIterator __i_;\n\n    typedef const typename _HashIterator::value_type::first_type key_type;\n    typedef typename _HashIterator::value_type::second_type      mapped_type;\npublic:\n    typedef forward_iterator_tag                                 iterator_category;\n    typedef pair<key_type, mapped_type>                          value_type;\n    typedef typename _HashIterator::difference_type              difference_type;\n    typedef value_type&                                          reference;\n    typedef typename __rebind_pointer<typename _HashIterator::pointer, value_type>::type\n        pointer;\n\n    _LIBCPP_INLINE_VISIBILITY __hash_map_iterator() {}\n\n    _LIBCPP_INLINE_VISIBILITY __hash_map_iterator(_HashIterator __i) : __i_(__i) {}\n\n    _LIBCPP_INLINE_VISIBILITY reference operator*() const {return *operator->();}\n    _LIBCPP_INLINE_VISIBILITY pointer operator->() const {return (pointer)__i_.operator->();}\n\n    _LIBCPP_INLINE_VISIBILITY __hash_map_iterator& operator++() {++__i_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_iterator operator++(int)\n    {\n        __hash_map_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY \n    bool operator==(const __hash_map_iterator& __x, const __hash_map_iterator& __y)\n        {return __x.__i_ == __y.__i_;}\n    friend _LIBCPP_INLINE_VISIBILITY \n    bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)\n        {return __x.__i_ != __y.__i_;}\n\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_map;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_multimap;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;\n};\n\ntemplate <class _HashIterator>\nclass _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator\n{\n    _HashIterator __i_;\n\n    typedef const typename _HashIterator::value_type::first_type key_type;\n    typedef typename _HashIterator::value_type::second_type      mapped_type;\npublic:\n    typedef forward_iterator_tag                                 iterator_category;\n    typedef pair<key_type, mapped_type>                          value_type;\n    typedef typename _HashIterator::difference_type              difference_type;\n    typedef const value_type&                                    reference;\n    typedef typename __rebind_pointer<typename _HashIterator::pointer, const value_type>::type\n        pointer;\n\n    _LIBCPP_INLINE_VISIBILITY __hash_map_const_iterator() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator(_HashIterator __i) : __i_(__i) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator(\n            __hash_map_iterator<typename _HashIterator::__non_const_iterator> __i)\n                : __i_(__i.__i_) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {return *operator->();}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {return (pointer)__i_.operator->();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator& operator++() {++__i_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator operator++(int)\n    {\n        __hash_map_const_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)\n        {return __x.__i_ == __y.__i_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)\n        {return __x.__i_ != __y.__i_;}\n\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_map;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS hash_multimap;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;\n};\n\ntemplate <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,\n          class _Alloc = allocator<pair<const _Key, _Tp> > >\nclass _LIBCPP_TEMPLATE_VIS hash_map\n{\npublic:\n    // types\n    typedef _Key                                           key_type;\n    typedef _Tp                                            mapped_type;\n    typedef _Tp                                            data_type;\n    typedef _Hash                                          hasher;\n    typedef _Pred                                          key_equal;\n    typedef _Alloc                                         allocator_type;\n    typedef pair<const key_type, mapped_type>              value_type;\n    typedef value_type&                                    reference;\n    typedef const value_type&                              const_reference;\n\nprivate:\n    typedef pair<key_type, mapped_type>                    __value_type;\n    typedef __hash_map_hasher<__value_type, hasher>   __hasher;\n    typedef __hash_map_equal<__value_type, key_equal> __key_equal;\n    typedef typename __rebind_alloc_helper<allocator_traits<allocator_type>, __value_type>::type __allocator_type;\n\n    typedef __hash_table<__value_type, __hasher,\n                         __key_equal,  __allocator_type>   __table;\n\n    __table __table_;\n\n    typedef typename __table::__node_pointer               __node_pointer;\n    typedef typename __table::__node_const_pointer         __node_const_pointer;\n    typedef typename __table::__node_traits                __node_traits;\n    typedef typename __table::__node_allocator             __node_allocator;\n    typedef typename __table::__node                       __node;\n    typedef __hash_map_node_destructor<__node_allocator>   _Dp;\n    typedef unique_ptr<__node, _Dp>                         __node_holder;\n    typedef allocator_traits<allocator_type>               __alloc_traits;\npublic:\n    typedef typename __alloc_traits::pointer         pointer;\n    typedef typename __alloc_traits::const_pointer   const_pointer;\n    typedef typename __alloc_traits::size_type       size_type;\n    typedef typename __alloc_traits::difference_type difference_type;\n\n    typedef __hash_map_iterator<typename __table::iterator>       iterator;\n    typedef __hash_map_const_iterator<typename __table::const_iterator> const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY hash_map() {__table_.rehash(193);}\n    explicit hash_map(size_type __n, const hasher& __hf = hasher(),\n                           const key_equal& __eql = key_equal());\n    hash_map(size_type __n, const hasher& __hf,\n                  const key_equal& __eql,\n                  const allocator_type& __a);\n    template <class _InputIterator>\n        hash_map(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        hash_map(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf = hasher(),\n                      const key_equal& __eql = key_equal());\n    template <class _InputIterator>\n        hash_map(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf,\n                      const key_equal& __eql,\n                      const allocator_type& __a);\n    hash_map(const hash_map& __u);\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const\n        {return allocator_type(__table_.__node_alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const {return __table_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const  {return __table_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const {return __table_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin()        {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end()          {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const {return __table_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> insert(const value_type& __x)\n        {return __table_.__insert_unique(__x);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator, const value_type& __x) {return insert(__x).first;}\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __first, _InputIterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void erase(const_iterator __p) {__table_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __table_.__erase_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    void erase(const_iterator __first, const_iterator __last)\n        {__table_.erase(__first.__i_, __last.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() {__table_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(hash_map& __u) {__table_.swap(__u.__table_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher hash_funct() const\n        {return __table_.hash_function().hash_function();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal key_eq() const\n        {return __table_.key_eq().key_eq();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       find(const key_type& __k)       {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type count(const key_type& __k) const {return __table_.__count_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, iterator>             equal_range(const key_type& __k)\n        {return __table_.__equal_range_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator, const_iterator> equal_range(const key_type& __k) const\n        {return __table_.__equal_range_unique(__k);}\n\n    mapped_type& operator[](const key_type& __k);\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const {return __table_.bucket_count();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const {return __table_.max_bucket_count();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type elems_in_bucket(size_type __n) const\n        {return __table_.bucket_size(__n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void resize(size_type __n) {__table_.rehash(__n);}\n\nprivate:\n    __node_holder __construct_node(const key_type& __k);\n};\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(\n        size_type __n, const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n    __table_.rehash(__n);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(\n        size_type __n, const hasher& __hf, const key_equal& __eql,\n        const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n    __table_.rehash(__n);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(\n        _InputIterator __first, _InputIterator __last)\n{\n    __table_.rehash(193);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_map(\n        const hash_map& __u)\n    : __table_(__u.__table_)\n{\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntypename hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__node_holder\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__construct_node(const key_type& __k)\n{\n    __node_allocator& __na = __table_.__node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _VSTD::addressof(__h->__value_.first), __k);\n    __h.get_deleter().__first_constructed = true;\n    __node_traits::construct(__na, _VSTD::addressof(__h->__value_.second));\n    __h.get_deleter().__second_constructed = true;\n    return _LIBCPP_EXPLICIT_MOVE(__h);  // explicitly moved for C++03\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\ninline\nvoid\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,\n                                                       _InputIterator __last)\n{\n    for (; __first != __last; ++__first)\n        __table_.__insert_unique(*__first);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\n_Tp&\nhash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](const key_type& __k)\n{\n    iterator __i = find(__k);\n    if (__i != end())\n        return __i->second;\n    __node_holder __h = __construct_node(__k);\n    pair<iterator, bool> __r = __table_.__node_insert_unique(__h.get());\n    __h.release();\n    return __r.first->second;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n     hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nbool\noperator==(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n           const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    if (__x.size() != __y.size())\n        return false;\n    typedef typename hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator\n                                                                 const_iterator;\n    for (const_iterator __i = __x.begin(), __ex = __x.end(), __ey = __y.end();\n            __i != __ex; ++__i)\n    {\n        const_iterator __j = __y.find(__i->first);\n        if (__j == __ey || !(*__i == *__j))\n            return false;\n    }\n    return true;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n           const hash_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,\n          class _Alloc = allocator<pair<const _Key, _Tp> > >\nclass _LIBCPP_TEMPLATE_VIS hash_multimap\n{\npublic:\n    // types\n    typedef _Key                                           key_type;\n    typedef _Tp                                            mapped_type;\n    typedef _Tp                                            data_type;\n    typedef _Hash                                          hasher;\n    typedef _Pred                                          key_equal;\n    typedef _Alloc                                         allocator_type;\n    typedef pair<const key_type, mapped_type>              value_type;\n    typedef value_type&                                    reference;\n    typedef const value_type&                              const_reference;\n\nprivate:\n    typedef pair<key_type, mapped_type>                    __value_type;\n    typedef __hash_map_hasher<__value_type, hasher>   __hasher;\n    typedef __hash_map_equal<__value_type, key_equal> __key_equal;\n    typedef typename __rebind_alloc_helper<allocator_traits<allocator_type>, __value_type>::type __allocator_type;\n\n    typedef __hash_table<__value_type, __hasher,\n                         __key_equal,  __allocator_type>   __table;\n\n    __table __table_;\n\n    typedef typename __table::__node_traits                __node_traits;\n    typedef typename __table::__node_allocator             __node_allocator;\n    typedef typename __table::__node                       __node;\n    typedef __hash_map_node_destructor<__node_allocator>   _Dp;\n    typedef unique_ptr<__node, _Dp>                         __node_holder;\n    typedef allocator_traits<allocator_type>               __alloc_traits;\npublic:\n    typedef typename __alloc_traits::pointer         pointer;\n    typedef typename __alloc_traits::const_pointer   const_pointer;\n    typedef typename __alloc_traits::size_type       size_type;\n    typedef typename __alloc_traits::difference_type difference_type;\n\n    typedef __hash_map_iterator<typename __table::iterator>       iterator;\n    typedef __hash_map_const_iterator<typename __table::const_iterator> const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    hash_multimap() {__table_.rehash(193);}\n    explicit hash_multimap(size_type __n, const hasher& __hf = hasher(),\n                                const key_equal& __eql = key_equal());\n    hash_multimap(size_type __n, const hasher& __hf,\n                                const key_equal& __eql,\n                                const allocator_type& __a);\n    template <class _InputIterator>\n        hash_multimap(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        hash_multimap(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf = hasher(),\n                      const key_equal& __eql = key_equal());\n    template <class _InputIterator>\n        hash_multimap(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf,\n                      const key_equal& __eql,\n                      const allocator_type& __a);\n    hash_multimap(const hash_multimap& __u);\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const\n        {return allocator_type(__table_.__node_alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const {return __table_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const  {return __table_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const {return __table_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin()        {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end()          {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const {return __table_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const value_type& __x) {return __table_.__insert_multi(__x);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator, const value_type& __x) {return insert(__x);}\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __first, _InputIterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void erase(const_iterator __p) {__table_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __table_.__erase_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    void erase(const_iterator __first, const_iterator __last)\n        {__table_.erase(__first.__i_, __last.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() {__table_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(hash_multimap& __u) {__table_.swap(__u.__table_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher hash_funct() const\n        {return __table_.hash_function().hash_function();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal key_eq() const\n        {return __table_.key_eq().key_eq();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       find(const key_type& __k)       {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type count(const key_type& __k) const {return __table_.__count_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, iterator>             equal_range(const key_type& __k)\n        {return __table_.__equal_range_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator, const_iterator> equal_range(const key_type& __k) const\n        {return __table_.__equal_range_multi(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const {return __table_.bucket_count();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const {return __table_.max_bucket_count();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type elems_in_bucket(size_type __n) const\n        {return __table_.bucket_size(__n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void resize(size_type __n) {__table_.rehash(__n);}\n};\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nhash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(\n        size_type __n, const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n    __table_.rehash(__n);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nhash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(\n        size_type __n, const hasher& __hf, const key_equal& __eql,\n        const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n    __table_.rehash(__n);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(\n        _InputIterator __first, _InputIterator __last)\n{\n    __table_.rehash(193);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nhash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::hash_multimap(\n        const hash_multimap& __u)\n    : __table_(__u.__table_)\n{\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\ninline\nvoid\nhash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,\n                                                            _InputIterator __last)\n{\n    for (; __first != __last; ++__first)\n        __table_.__insert_multi(*__first);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n     hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nbool\noperator==(const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n           const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    if (__x.size() != __y.size())\n        return false;\n    typedef typename hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator\n                                                                 const_iterator;\n    typedef pair<const_iterator, const_iterator> _EqRng;\n    for (const_iterator __i = __x.begin(), __ex = __x.end(); __i != __ex;)\n    {\n        _EqRng __xeq = __x.equal_range(__i->first);\n        _EqRng __yeq = __y.equal_range(__i->first);\n        if (_VSTD::distance(__xeq.first, __xeq.second) !=\n            _VSTD::distance(__yeq.first, __yeq.second) ||\n                  !_VSTD::is_permutation(__xeq.first, __xeq.second, __yeq.first))\n            return false;\n        __i = __xeq.second;\n    }\n    return true;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n           const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\n} // __gnu_cxx\n\n#endif  // _LIBCPP_HASH_MAP\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ext/hash_set",
    "content": "// -*- C++ -*-\n//===------------------------- hash_set ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_HASH_SET\n#define _LIBCPP_HASH_SET\n\n/*\n\n    hash_set synopsis\n\nnamespace __gnu_cxx\n{\n\ntemplate <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,\n          class Alloc = allocator<Value>>\nclass hash_set\n{\npublic:\n    // types\n    typedef Value                                                      key_type;\n    typedef key_type                                                   value_type;\n    typedef Hash                                                       hasher;\n    typedef Pred                                                       key_equal;\n    typedef Alloc                                                      allocator_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef /unspecified/ iterator;\n    typedef /unspecified/ const_iterator;\n\n    explicit hash_set(size_type n = 193, const hasher& hf = hasher(),\n                           const key_equal& eql = key_equal(),\n                           const allocator_type& a = allocator_type());\n    template <class InputIterator>\n        hash_set(InputIterator f, InputIterator l,\n                      size_type n = 193, const hasher& hf = hasher(),\n                      const key_equal& eql = key_equal(),\n                      const allocator_type& a = allocator_type());\n    hash_set(const hash_set&);\n    ~hash_set();\n    hash_set& operator=(const hash_set&);\n\n    allocator_type get_allocator() const;\n\n    bool      empty() const;\n    size_type size() const;\n    size_type max_size() const;\n\n    iterator       begin();\n    iterator       end();\n    const_iterator begin()  const;\n    const_iterator end()    const;\n\n    pair<iterator, bool> insert(const value_type& obj);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n\n    void erase(const_iterator position);\n    size_type erase(const key_type& k);\n    void erase(const_iterator first, const_iterator last);\n    void clear();\n\n    void swap(hash_set&);\n\n    hasher hash_funct() const;\n    key_equal key_eq() const;\n\n    iterator       find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    size_type count(const key_type& k) const;\n    pair<iterator, iterator>             equal_range(const key_type& k);\n    pair<const_iterator, const_iterator> equal_range(const key_type& k) const;\n\n    size_type bucket_count() const;\n    size_type max_bucket_count() const;\n\n    size_type elems_in_bucket(size_type n) const;\n\n    void resize(size_type n);\n};\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    void swap(hash_set<Value, Hash, Pred, Alloc>& x,\n              hash_set<Value, Hash, Pred, Alloc>& y);\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    bool\n    operator==(const hash_set<Value, Hash, Pred, Alloc>& x,\n               const hash_set<Value, Hash, Pred, Alloc>& y);\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    bool\n    operator!=(const hash_set<Value, Hash, Pred, Alloc>& x,\n               const hash_set<Value, Hash, Pred, Alloc>& y);\n\ntemplate <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,\n          class Alloc = allocator<Value>>\nclass hash_multiset\n{\npublic:\n    // types\n    typedef Value                                                      key_type;\n    typedef key_type                                                   value_type;\n    typedef Hash                                                       hasher;\n    typedef Pred                                                       key_equal;\n    typedef Alloc                                                      allocator_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef /unspecified/ iterator;\n    typedef /unspecified/ const_iterator;\n\n    explicit hash_multiset(size_type n = 193, const hasher& hf = hasher(),\n                           const key_equal& eql = key_equal(),\n                           const allocator_type& a = allocator_type());\n    template <class InputIterator>\n        hash_multiset(InputIterator f, InputIterator l,\n                      size_type n = 193, const hasher& hf = hasher(),\n                      const key_equal& eql = key_equal(),\n                      const allocator_type& a = allocator_type());\n    hash_multiset(const hash_multiset&);\n    ~hash_multiset();\n    hash_multiset& operator=(const hash_multiset&);\n\n    allocator_type get_allocator() const;\n\n    bool      empty() const;\n    size_type size() const;\n    size_type max_size() const;\n\n    iterator       begin();\n    iterator       end();\n    const_iterator begin()  const;\n    const_iterator end()    const;\n\n    iterator insert(const value_type& obj);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n\n    void erase(const_iterator position);\n    size_type erase(const key_type& k);\n    void erase(const_iterator first, const_iterator last);\n    void clear();\n\n    void swap(hash_multiset&);\n\n    hasher hash_funct() const;\n    key_equal key_eq() const;\n\n    iterator       find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    size_type count(const key_type& k) const;\n    pair<iterator, iterator>             equal_range(const key_type& k);\n    pair<const_iterator, const_iterator> equal_range(const key_type& k) const;\n\n    size_type bucket_count() const;\n    size_type max_bucket_count() const;\n\n    size_type elems_in_bucket(size_type n) const;\n\n    void resize(size_type n);\n};\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    void swap(hash_multiset<Value, Hash, Pred, Alloc>& x,\n              hash_multiset<Value, Hash, Pred, Alloc>& y);\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    bool\n    operator==(const hash_multiset<Value, Hash, Pred, Alloc>& x,\n               const hash_multiset<Value, Hash, Pred, Alloc>& y);\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    bool\n    operator!=(const hash_multiset<Value, Hash, Pred, Alloc>& x,\n               const hash_multiset<Value, Hash, Pred, Alloc>& y);\n}  // __gnu_cxx\n\n*/\n\n#include <__config>\n#include <__hash_table>\n#include <functional>\n#include <ext/__hash>\n\n#if __DEPRECATED\n#if defined(_LIBCPP_WARNING)\n    _LIBCPP_WARNING(\"Use of the header <ext/hash_set> is deprecated.  Migrate to <unordered_set>\")\n#else\n#   warning Use of the header <ext/hash_set> is deprecated.  Migrate to <unordered_set>\n#endif\n#endif\n\nnamespace __gnu_cxx {\n\nusing namespace std;\n\ntemplate <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,\n          class _Alloc = allocator<_Value> >\nclass _LIBCPP_TEMPLATE_VIS hash_set\n{\npublic:\n    // types\n    typedef _Value                                                     key_type;\n    typedef key_type                                                   value_type;\n    typedef _Hash                                                      hasher;\n    typedef _Pred                                                      key_equal;\n    typedef _Alloc                                                     allocator_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n\nprivate:\n    typedef __hash_table<value_type, hasher, key_equal, allocator_type> __table;\n\n    __table __table_;\n\npublic:\n    typedef typename __table::pointer         pointer;\n    typedef typename __table::const_pointer   const_pointer;\n    typedef typename __table::size_type       size_type;\n    typedef typename __table::difference_type difference_type;\n\n    typedef typename __table::const_iterator       iterator;\n    typedef typename __table::const_iterator       const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    hash_set() {__table_.rehash(193);}\n    explicit hash_set(size_type __n, const hasher& __hf = hasher(),\n                           const key_equal& __eql = key_equal());\n    hash_set(size_type __n, const hasher& __hf, const key_equal& __eql,\n                  const allocator_type& __a);\n    template <class _InputIterator>\n        hash_set(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        hash_set(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf = hasher(),\n                      const key_equal& __eql = key_equal());\n    template <class _InputIterator>\n        hash_set(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf, const key_equal& __eql,\n                      const allocator_type& __a);\n    hash_set(const hash_set& __u);\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const\n        {return allocator_type(__table_.__node_alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const {return __table_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const  {return __table_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const {return __table_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin()        {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end()          {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const {return __table_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> insert(const value_type& __x)\n        {return __table_.__insert_unique(__x);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator, const value_type& __x) {return insert(__x).first;}\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __first, _InputIterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void erase(const_iterator __p) {__table_.erase(__p);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __table_.__erase_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    void erase(const_iterator __first, const_iterator __last)\n        {__table_.erase(__first, __last);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() {__table_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(hash_set& __u) {__table_.swap(__u.__table_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher hash_funct() const {return __table_.hash_function();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal key_eq() const {return __table_.key_eq();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       find(const key_type& __k)       {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type count(const key_type& __k) const {return __table_.__count_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, iterator>             equal_range(const key_type& __k)\n        {return __table_.__equal_range_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator, const_iterator> equal_range(const key_type& __k) const\n        {return __table_.__equal_range_unique(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const {return __table_.bucket_count();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const {return __table_.max_bucket_count();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type elems_in_bucket(size_type __n) const {return __table_.bucket_size(__n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void resize(size_type __n) {__table_.rehash(__n);}\n};\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nhash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n    __table_.rehash(__n);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nhash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n    __table_.rehash(__n);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(\n        _InputIterator __first, _InputIterator __last)\n{\n    __table_.rehash(193);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nhash_set<_Value, _Hash, _Pred, _Alloc>::hash_set(\n        const hash_set& __u)\n    : __table_(__u.__table_)\n{\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\ninline\nvoid\nhash_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,\n                                                    _InputIterator __last)\n{\n    for (; __first != __last; ++__first)\n        __table_.__insert_unique(*__first);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(hash_set<_Value, _Hash, _Pred, _Alloc>& __x,\n     hash_set<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nbool\noperator==(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x,\n           const hash_set<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    if (__x.size() != __y.size())\n        return false;\n    typedef typename hash_set<_Value, _Hash, _Pred, _Alloc>::const_iterator\n                                                                 const_iterator;\n    for (const_iterator __i = __x.begin(), __ex = __x.end(), __ey = __y.end();\n            __i != __ex; ++__i)\n    {\n        const_iterator __j = __y.find(*__i);\n        if (__j == __ey || !(*__i == *__j))\n            return false;\n    }\n    return true;\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const hash_set<_Value, _Hash, _Pred, _Alloc>& __x,\n           const hash_set<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,\n          class _Alloc = allocator<_Value> >\nclass _LIBCPP_TEMPLATE_VIS hash_multiset\n{\npublic:\n    // types\n    typedef _Value                                                     key_type;\n    typedef key_type                                                   value_type;\n    typedef _Hash                                                      hasher;\n    typedef _Pred                                                      key_equal;\n    typedef _Alloc                                                     allocator_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n\nprivate:\n    typedef __hash_table<value_type, hasher, key_equal, allocator_type> __table;\n\n    __table __table_;\n\npublic:\n    typedef typename __table::pointer         pointer;\n    typedef typename __table::const_pointer   const_pointer;\n    typedef typename __table::size_type       size_type;\n    typedef typename __table::difference_type difference_type;\n\n    typedef typename __table::const_iterator       iterator;\n    typedef typename __table::const_iterator       const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    hash_multiset() {__table_.rehash(193);}\n    explicit hash_multiset(size_type __n, const hasher& __hf = hasher(),\n                                const key_equal& __eql = key_equal());\n    hash_multiset(size_type __n, const hasher& __hf,\n                       const key_equal& __eql, const allocator_type& __a);\n    template <class _InputIterator>\n        hash_multiset(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        hash_multiset(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf = hasher(),\n                      const key_equal& __eql = key_equal());\n    template <class _InputIterator>\n        hash_multiset(_InputIterator __first, _InputIterator __last,\n                      size_type __n , const hasher& __hf,\n                      const key_equal& __eql, const allocator_type& __a);\n    hash_multiset(const hash_multiset& __u);\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const\n        {return allocator_type(__table_.__node_alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const {return __table_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const  {return __table_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const {return __table_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin()        {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end()          {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const {return __table_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const value_type& __x) {return __table_.__insert_multi(__x);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator, const value_type& __x) {return insert(__x);}\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __first, _InputIterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void erase(const_iterator __p) {__table_.erase(__p);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __table_.__erase_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    void erase(const_iterator __first, const_iterator __last)\n        {__table_.erase(__first, __last);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() {__table_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(hash_multiset& __u) {__table_.swap(__u.__table_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher hash_funct() const {return __table_.hash_function();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal key_eq() const {return __table_.key_eq();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       find(const key_type& __k)       {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type count(const key_type& __k) const {return __table_.__count_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, iterator>             equal_range(const key_type& __k)\n        {return __table_.__equal_range_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator, const_iterator> equal_range(const key_type& __k) const\n        {return __table_.__equal_range_multi(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const {return __table_.bucket_count();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const {return __table_.max_bucket_count();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type elems_in_bucket(size_type __n) const {return __table_.bucket_size(__n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void resize(size_type __n) {__table_.rehash(__n);}\n};\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nhash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(\n        size_type __n, const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n    __table_.rehash(__n);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nhash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(\n        size_type __n, const hasher& __hf, const key_equal& __eql,\n        const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n    __table_.rehash(__n);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(\n        _InputIterator __first, _InputIterator __last)\n{\n    __table_.rehash(193);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nhash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nhash_multiset<_Value, _Hash, _Pred, _Alloc>::hash_multiset(\n        const hash_multiset& __u)\n    : __table_(__u.__table_)\n{\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\ninline\nvoid\nhash_multiset<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,\n                                                         _InputIterator __last)\n{\n    for (; __first != __last; ++__first)\n        __table_.__insert_multi(*__first);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x,\n     hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nbool\noperator==(const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x,\n           const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    if (__x.size() != __y.size())\n        return false;\n    typedef typename hash_multiset<_Value, _Hash, _Pred, _Alloc>::const_iterator\n                                                                 const_iterator;\n    typedef pair<const_iterator, const_iterator> _EqRng;\n    for (const_iterator __i = __x.begin(), __ex = __x.end(); __i != __ex;)\n    {\n        _EqRng __xeq = __x.equal_range(*__i);\n        _EqRng __yeq = __y.equal_range(*__i);\n        if (_VSTD::distance(__xeq.first, __xeq.second) !=\n            _VSTD::distance(__yeq.first, __yeq.second) ||\n                  !_VSTD::is_permutation(__xeq.first, __xeq.second, __yeq.first))\n            return false;\n        __i = __xeq.second;\n    }\n    return true;\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x,\n           const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\n} // __gnu_cxx\n\n#endif  // _LIBCPP_HASH_SET\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/float.h",
    "content": "// -*- C++ -*-\n//===--------------------------- float.h ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_FLOAT_H\n#define _LIBCPP_FLOAT_H\n\n/*\n    float.h synopsis\n\nMacros:\n\n    FLT_ROUNDS\n    FLT_EVAL_METHOD     // C99\n    FLT_RADIX\n\n    FLT_MANT_DIG\n    DBL_MANT_DIG\n    LDBL_MANT_DIG\n\n    DECIMAL_DIG         // C99\n\n    FLT_DIG\n    DBL_DIG\n    LDBL_DIG\n\n    FLT_MIN_EXP\n    DBL_MIN_EXP\n    LDBL_MIN_EXP\n\n    FLT_MIN_10_EXP\n    DBL_MIN_10_EXP\n    LDBL_MIN_10_EXP\n\n    FLT_MAX_EXP\n    DBL_MAX_EXP\n    LDBL_MAX_EXP\n\n    FLT_MAX_10_EXP\n    DBL_MAX_10_EXP\n    LDBL_MAX_10_EXP\n\n    FLT_MAX\n    DBL_MAX\n    LDBL_MAX\n\n    FLT_EPSILON\n    DBL_EPSILON\n    LDBL_EPSILON\n\n    FLT_MIN\n    DBL_MIN\n    LDBL_MIN\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <float.h>\n\n#ifdef __cplusplus\n\n#ifndef FLT_EVAL_METHOD\n#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__\n#endif\n\n#ifndef DECIMAL_DIG\n#define DECIMAL_DIG __DECIMAL_DIG__\n#endif\n\n#endif // __cplusplus\n\n#endif  // _LIBCPP_FLOAT_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/forward_list",
    "content": "// -*- C++ -*-\n//===----------------------- forward_list ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_FORWARD_LIST\n#define _LIBCPP_FORWARD_LIST\n\n/*\n    forward_list synopsis\n\nnamespace std\n{\n\ntemplate <class T, class Allocator = allocator<T>>\nclass forward_list\n{\npublic:\n    typedef T         value_type;\n    typedef Allocator allocator_type;\n\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef <details> iterator;\n    typedef <details> const_iterator;\n\n    forward_list()\n        noexcept(is_nothrow_default_constructible<allocator_type>::value);\n    explicit forward_list(const allocator_type& a);\n    explicit forward_list(size_type n);\n    explicit forward_list(size_type n, const allocator_type& a); // C++14\n    forward_list(size_type n, const value_type& v);\n    forward_list(size_type n, const value_type& v, const allocator_type& a);\n    template <class InputIterator>\n        forward_list(InputIterator first, InputIterator last);\n    template <class InputIterator>\n        forward_list(InputIterator first, InputIterator last, const allocator_type& a);\n    forward_list(const forward_list& x);\n    forward_list(const forward_list& x, const allocator_type& a);\n    forward_list(forward_list&& x)\n        noexcept(is_nothrow_move_constructible<allocator_type>::value);\n    forward_list(forward_list&& x, const allocator_type& a);\n    forward_list(initializer_list<value_type> il);\n    forward_list(initializer_list<value_type> il, const allocator_type& a);\n\n    ~forward_list();\n\n    forward_list& operator=(const forward_list& x);\n    forward_list& operator=(forward_list&& x)\n        noexcept(\n             allocator_type::propagate_on_container_move_assignment::value &&\n             is_nothrow_move_assignable<allocator_type>::value);\n    forward_list& operator=(initializer_list<value_type> il);\n\n    template <class InputIterator>\n        void assign(InputIterator first, InputIterator last);\n    void assign(size_type n, const value_type& v);\n    void assign(initializer_list<value_type> il);\n\n    allocator_type get_allocator() const noexcept;\n\n    iterator       begin() noexcept;\n    const_iterator begin() const noexcept;\n    iterator       end() noexcept;\n    const_iterator end() const noexcept;\n\n    const_iterator cbegin() const noexcept;\n    const_iterator cend() const noexcept;\n\n    iterator       before_begin() noexcept;\n    const_iterator before_begin() const noexcept;\n    const_iterator cbefore_begin() const noexcept;\n\n    bool empty() const noexcept;\n    size_type max_size() const noexcept;\n\n    reference       front();\n    const_reference front() const;\n\n    template <class... Args> reference emplace_front(Args&&... args);  // reference in C++17\n    void push_front(const value_type& v);\n    void push_front(value_type&& v);\n\n    void pop_front();\n\n    template <class... Args>\n        iterator emplace_after(const_iterator p, Args&&... args);\n    iterator insert_after(const_iterator p, const value_type& v);\n    iterator insert_after(const_iterator p, value_type&& v);\n    iterator insert_after(const_iterator p, size_type n, const value_type& v);\n    template <class InputIterator>\n        iterator insert_after(const_iterator p,\n                              InputIterator first, InputIterator last);\n    iterator insert_after(const_iterator p, initializer_list<value_type> il);\n\n    iterator erase_after(const_iterator p);\n    iterator erase_after(const_iterator first, const_iterator last);\n\n    void swap(forward_list& x)\n        noexcept(allocator_traits<allocator_type>::is_always_equal::value);  // C++17\n\n    void resize(size_type n);\n    void resize(size_type n, const value_type& v);\n    void clear() noexcept;\n\n    void splice_after(const_iterator p, forward_list& x);\n    void splice_after(const_iterator p, forward_list&& x);\n    void splice_after(const_iterator p, forward_list& x, const_iterator i);\n    void splice_after(const_iterator p, forward_list&& x, const_iterator i);\n    void splice_after(const_iterator p, forward_list& x,\n                      const_iterator first, const_iterator last);\n    void splice_after(const_iterator p, forward_list&& x,\n                      const_iterator first, const_iterator last);\n    void remove(const value_type& v);\n    template <class Predicate> void remove_if(Predicate pred);\n    void unique();\n    template <class BinaryPredicate> void unique(BinaryPredicate binary_pred);\n    void merge(forward_list& x);\n    void merge(forward_list&& x);\n    template <class Compare> void merge(forward_list& x, Compare comp);\n    template <class Compare> void merge(forward_list&& x, Compare comp);\n    void sort();\n    template <class Compare> void sort(Compare comp);\n    void reverse() noexcept;\n};\n\ntemplate <class T, class Allocator>\n    bool operator==(const forward_list<T, Allocator>& x,\n                    const forward_list<T, Allocator>& y);\n\ntemplate <class T, class Allocator>\n    bool operator< (const forward_list<T, Allocator>& x,\n                    const forward_list<T, Allocator>& y);\n\ntemplate <class T, class Allocator>\n    bool operator!=(const forward_list<T, Allocator>& x,\n                    const forward_list<T, Allocator>& y);\n\ntemplate <class T, class Allocator>\n    bool operator> (const forward_list<T, Allocator>& x,\n                    const forward_list<T, Allocator>& y);\n\ntemplate <class T, class Allocator>\n    bool operator>=(const forward_list<T, Allocator>& x,\n                    const forward_list<T, Allocator>& y);\n\ntemplate <class T, class Allocator>\n    bool operator<=(const forward_list<T, Allocator>& x,\n                    const forward_list<T, Allocator>& y);\n\ntemplate <class T, class Allocator>\n    void swap(forward_list<T, Allocator>& x, forward_list<T, Allocator>& y)\n         noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n#include <initializer_list>\n#include <memory>\n#include <limits>\n#include <iterator>\n#include <algorithm>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp, class _VoidPtr> struct __forward_list_node;\ntemplate <class _NodePtr> struct __forward_begin_node;\n\n\ntemplate <class>\nstruct __forward_list_node_value_type;\n\ntemplate <class _Tp, class _VoidPtr>\nstruct __forward_list_node_value_type<__forward_list_node<_Tp, _VoidPtr> > {\n  typedef _Tp type;\n};\n\ntemplate <class _NodePtr>\nstruct __forward_node_traits {\n\n  typedef typename remove_cv<\n        typename pointer_traits<_NodePtr>::element_type>::type  __node;\n  typedef typename __forward_list_node_value_type<__node>::type __node_value_type;\n  typedef _NodePtr                                              __node_pointer;\n  typedef __forward_begin_node<_NodePtr>                        __begin_node;\n  typedef typename __rebind_pointer<_NodePtr, __begin_node>::type\n                                                                __begin_node_pointer;\n  typedef typename __rebind_pointer<_NodePtr, void>::type       __void_pointer;\n\n#if defined(_LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB)\n  typedef __begin_node_pointer __iter_node_pointer;\n#else\n  typedef typename conditional<\n          is_pointer<__void_pointer>::value,\n          __begin_node_pointer,\n          __node_pointer\n    >::type __iter_node_pointer;\n#endif\n\n  typedef typename conditional<\n          is_same<__iter_node_pointer, __node_pointer>::value,\n          __begin_node_pointer,\n          __node_pointer\n    >::type __non_iter_node_pointer;\n\n  _LIBCPP_INLINE_VISIBILITY\n  static __iter_node_pointer __as_iter_node(__iter_node_pointer __p) {\n      return __p;\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  static __iter_node_pointer __as_iter_node(__non_iter_node_pointer __p) {\n      return static_cast<__iter_node_pointer>(static_cast<__void_pointer>(__p));\n  }\n};\n\ntemplate <class _NodePtr>\nstruct __forward_begin_node\n{\n    typedef _NodePtr pointer;\n    typedef typename __rebind_pointer<_NodePtr, __forward_begin_node>::type __begin_node_pointer;\n\n    pointer __next_;\n\n    _LIBCPP_INLINE_VISIBILITY __forward_begin_node() : __next_(nullptr) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __begin_node_pointer __next_as_begin() const {\n        return static_cast<__begin_node_pointer>(__next_);\n    }\n};\n\ntemplate <class _Tp, class _VoidPtr>\nstruct _LIBCPP_HIDDEN __begin_node_of\n{\n    typedef __forward_begin_node<\n        typename __rebind_pointer<_VoidPtr, __forward_list_node<_Tp, _VoidPtr> >::type\n    > type;\n};\n\ntemplate <class _Tp, class _VoidPtr>\nstruct __forward_list_node\n    : public __begin_node_of<_Tp, _VoidPtr>::type\n{\n    typedef _Tp value_type;\n\n    value_type __value_;\n};\n\n\ntemplate <class _Tp, class _Alloc = allocator<_Tp> > class _LIBCPP_TEMPLATE_VIS forward_list;\ntemplate<class _NodeConstPtr> class _LIBCPP_TEMPLATE_VIS __forward_list_const_iterator;\n\ntemplate <class _NodePtr>\nclass _LIBCPP_TEMPLATE_VIS __forward_list_iterator\n{\n    typedef __forward_node_traits<_NodePtr>         __traits;\n    typedef typename __traits::__node_pointer       __node_pointer;\n    typedef typename __traits::__begin_node_pointer __begin_node_pointer;\n    typedef typename __traits::__iter_node_pointer  __iter_node_pointer;\n    typedef typename __traits::__void_pointer       __void_pointer;\n\n    __iter_node_pointer __ptr_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __begin_node_pointer __get_begin() const {\n        return static_cast<__begin_node_pointer>(\n                static_cast<__void_pointer>(__ptr_));\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __node_pointer __get_unsafe_node_pointer() const {\n        return static_cast<__node_pointer>(\n                static_cast<__void_pointer>(__ptr_));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __forward_list_iterator(nullptr_t) _NOEXCEPT : __ptr_(nullptr) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __forward_list_iterator(__begin_node_pointer __p) _NOEXCEPT\n        : __ptr_(__traits::__as_iter_node(__p)) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT\n        : __ptr_(__traits::__as_iter_node(__p)) {}\n\n    template<class, class> friend class _LIBCPP_TEMPLATE_VIS forward_list;\n    template<class> friend class _LIBCPP_TEMPLATE_VIS __forward_list_const_iterator;\n\npublic:\n    typedef forward_iterator_tag                              iterator_category;\n    typedef typename __traits::__node_value_type              value_type;\n    typedef value_type&                                       reference;\n    typedef typename pointer_traits<__node_pointer>::difference_type\n                                                              difference_type;\n    typedef typename __rebind_pointer<__node_pointer, value_type>::type pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_iterator() _NOEXCEPT : __ptr_(nullptr) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {return __get_unsafe_node_pointer()->__value_;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {\n        return pointer_traits<pointer>::pointer_to(__get_unsafe_node_pointer()->__value_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_iterator& operator++()\n    {\n        __ptr_ = __traits::__as_iter_node(__ptr_->__next_);\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_iterator operator++(int)\n    {\n        __forward_list_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __forward_list_iterator& __x,\n                    const __forward_list_iterator& __y)\n        {return __x.__ptr_ == __y.__ptr_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __forward_list_iterator& __x,\n                    const __forward_list_iterator& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _NodeConstPtr>\nclass _LIBCPP_TEMPLATE_VIS __forward_list_const_iterator\n{\n    static_assert((!is_const<typename pointer_traits<_NodeConstPtr>::element_type>::value), \"\");\n    typedef _NodeConstPtr _NodePtr;\n\n    typedef __forward_node_traits<_NodePtr>         __traits;\n    typedef typename __traits::__node               __node;\n    typedef typename __traits::__node_pointer       __node_pointer;\n    typedef typename __traits::__begin_node_pointer __begin_node_pointer;\n    typedef typename __traits::__iter_node_pointer  __iter_node_pointer;\n    typedef typename __traits::__void_pointer       __void_pointer;\n\n    __iter_node_pointer __ptr_;\n\n    __begin_node_pointer __get_begin() const {\n        return static_cast<__begin_node_pointer>(\n                static_cast<__void_pointer>(__ptr_));\n    }\n    __node_pointer __get_unsafe_node_pointer() const {\n        return static_cast<__node_pointer>(\n                static_cast<__void_pointer>(__ptr_));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __forward_list_const_iterator(nullptr_t) _NOEXCEPT\n        : __ptr_(nullptr) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __forward_list_const_iterator(__begin_node_pointer __p) _NOEXCEPT\n        : __ptr_(__traits::__as_iter_node(__p)) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __forward_list_const_iterator(__node_pointer __p) _NOEXCEPT\n        : __ptr_(__traits::__as_iter_node(__p)) {}\n\n\n    template<class, class> friend class forward_list;\n\npublic:\n    typedef forward_iterator_tag                              iterator_category;\n    typedef typename __traits::__node_value_type              value_type;\n    typedef const value_type&                                 reference;\n    typedef typename pointer_traits<__node_pointer>::difference_type\n                                                              difference_type;\n    typedef typename __rebind_pointer<__node_pointer, const value_type>::type\n                                                              pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_const_iterator() _NOEXCEPT : __ptr_(nullptr) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_const_iterator(__forward_list_iterator<__node_pointer> __p) _NOEXCEPT\n        : __ptr_(__p.__ptr_) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {return __get_unsafe_node_pointer()->__value_;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {return pointer_traits<pointer>::pointer_to(\n                __get_unsafe_node_pointer()->__value_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_const_iterator& operator++()\n    {\n        __ptr_ = __traits::__as_iter_node(__ptr_->__next_);\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_const_iterator operator++(int)\n    {\n        __forward_list_const_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __forward_list_const_iterator& __x,\n                    const __forward_list_const_iterator& __y)\n        {return __x.__ptr_ == __y.__ptr_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __forward_list_const_iterator& __x,\n                           const __forward_list_const_iterator& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _Tp, class _Alloc>\nclass __forward_list_base\n{\nprotected:\n    typedef _Tp    value_type;\n    typedef _Alloc allocator_type;\n\n    typedef typename allocator_traits<allocator_type>::void_pointer  void_pointer;\n    typedef __forward_list_node<value_type, void_pointer>            __node;\n    typedef typename __begin_node_of<value_type, void_pointer>::type __begin_node;\n    typedef typename __rebind_alloc_helper<allocator_traits<allocator_type>, __node>::type __node_allocator;\n    typedef allocator_traits<__node_allocator>        __node_traits;\n    typedef typename __node_traits::pointer           __node_pointer;\n\n    typedef typename __rebind_alloc_helper<\n        allocator_traits<allocator_type>, __begin_node\n    >::type                                           __begin_node_allocator;\n    typedef typename allocator_traits<__begin_node_allocator>::pointer\n                                                      __begin_node_pointer;\n\n    __compressed_pair<__begin_node, __node_allocator> __before_begin_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __begin_node_pointer        __before_begin() _NOEXCEPT\n        {return pointer_traits<__begin_node_pointer>::pointer_to(__before_begin_.first());}\n    _LIBCPP_INLINE_VISIBILITY\n    __begin_node_pointer __before_begin() const _NOEXCEPT\n        {return pointer_traits<__begin_node_pointer>::pointer_to(const_cast<__begin_node&>(__before_begin_.first()));}\n\n    _LIBCPP_INLINE_VISIBILITY\n          __node_allocator& __alloc() _NOEXCEPT\n            {return __before_begin_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const __node_allocator& __alloc() const _NOEXCEPT\n        {return __before_begin_.second();}\n\n    typedef __forward_list_iterator<__node_pointer>             iterator;\n    typedef __forward_list_const_iterator<__node_pointer>       const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_base()\n        _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)\n        : __before_begin_(__begin_node()) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_base(const allocator_type& __a)\n        : __before_begin_(__begin_node(), __node_allocator(__a)) {}\n\n#ifndef _LIBCPP_CXX03_LANG\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_base(__forward_list_base&& __x)\n        _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    __forward_list_base(__forward_list_base&& __x, const allocator_type& __a);\n#endif  // _LIBCPP_CXX03_LANG\n\nprivate:\n    __forward_list_base(const __forward_list_base&);\n    __forward_list_base& operator=(const __forward_list_base&);\n\npublic:\n    ~__forward_list_base();\n\nprotected:\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __forward_list_base& __x)\n        {__copy_assign_alloc(__x, integral_constant<bool,\n              __node_traits::propagate_on_container_copy_assignment::value>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__forward_list_base& __x)\n        _NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value ||\n                   is_nothrow_move_assignable<__node_allocator>::value)\n        {__move_assign_alloc(__x, integral_constant<bool,\n              __node_traits::propagate_on_container_move_assignment::value>());}\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(__forward_list_base& __x)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT;\n#else\n        _NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value || \n                    __is_nothrow_swappable<__node_allocator>::value);\n#endif\nprotected:\n    void clear() _NOEXCEPT;\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __forward_list_base&, false_type) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __forward_list_base& __x, true_type)\n    {\n        if (__alloc() != __x.__alloc())\n            clear();\n        __alloc() = __x.__alloc();\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__forward_list_base&, false_type) _NOEXCEPT\n        {}\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__forward_list_base& __x, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value)\n        {__alloc() = _VSTD::move(__x.__alloc());}\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\ninline\n__forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base&& __x)\n        _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value)\n    : __before_begin_(_VSTD::move(__x.__before_begin_))\n{\n    __x.__before_begin()->__next_ = nullptr;\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\n__forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base&& __x,\n                                                      const allocator_type& __a)\n    : __before_begin_(__begin_node(), __node_allocator(__a))\n{\n    if (__alloc() == __x.__alloc())\n    {\n        __before_begin()->__next_ = __x.__before_begin()->__next_;\n        __x.__before_begin()->__next_ = nullptr;\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\n__forward_list_base<_Tp, _Alloc>::~__forward_list_base()\n{\n    clear();\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\n__forward_list_base<_Tp, _Alloc>::swap(__forward_list_base& __x)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT\n#else\n        _NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value || \n                    __is_nothrow_swappable<__node_allocator>::value)\n#endif\n{\n    __swap_allocator(__alloc(), __x.__alloc(), \n            integral_constant<bool, __node_traits::propagate_on_container_swap::value>());\n    using _VSTD::swap;\n    swap(__before_begin()->__next_, __x.__before_begin()->__next_);\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\n__forward_list_base<_Tp, _Alloc>::clear() _NOEXCEPT\n{\n    __node_allocator& __a = __alloc();\n    for (__node_pointer __p = __before_begin()->__next_; __p != nullptr;)\n    {\n        __node_pointer __next = __p->__next_;\n        __node_traits::destroy(__a, _VSTD::addressof(__p->__value_));\n        __node_traits::deallocate(__a, __p, 1);\n        __p = __next;\n    }\n    __before_begin()->__next_ = nullptr;\n}\n\ntemplate <class _Tp, class _Alloc /*= allocator<_Tp>*/>\nclass _LIBCPP_TEMPLATE_VIS forward_list\n    : private __forward_list_base<_Tp, _Alloc>\n{\n    typedef __forward_list_base<_Tp, _Alloc> base;\n    typedef typename base::__node_allocator  __node_allocator;\n    typedef typename base::__node               __node;\n    typedef typename base::__node_traits        __node_traits;\n    typedef typename base::__node_pointer       __node_pointer;\n    typedef typename base::__begin_node_pointer __begin_node_pointer;\n\npublic:\n    typedef _Tp    value_type;\n    typedef _Alloc allocator_type;\n\n    static_assert((is_same<typename allocator_type::value_type, value_type>::value),\n                  \"Allocator::value_type must be same type as value_type\");\n\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef typename base::iterator       iterator;\n    typedef typename base::const_iterator const_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    forward_list()\n        _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)\n        {} // = default;\n    _LIBCPP_INLINE_VISIBILITY\n    explicit forward_list(const allocator_type& __a);\n    explicit forward_list(size_type __n);\n#if _LIBCPP_STD_VER > 11\n    explicit forward_list(size_type __n, const allocator_type& __a);\n#endif\n    forward_list(size_type __n, const value_type& __v);\n    forward_list(size_type __n, const value_type& __v, const allocator_type& __a);\n    template <class _InputIterator>\n        forward_list(_InputIterator __f, _InputIterator __l,\n                     typename enable_if<\n                       __is_input_iterator<_InputIterator>::value\n                     >::type* = nullptr);\n    template <class _InputIterator>\n        forward_list(_InputIterator __f, _InputIterator __l,\n                     const allocator_type& __a,\n                     typename enable_if<\n                       __is_input_iterator<_InputIterator>::value\n                     >::type* = nullptr);\n    forward_list(const forward_list& __x);\n    forward_list(const forward_list& __x, const allocator_type& __a);\n\n    forward_list& operator=(const forward_list& __x);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    forward_list(forward_list&& __x)\n        _NOEXCEPT_(is_nothrow_move_constructible<base>::value)\n        : base(_VSTD::move(__x)) {}\n    forward_list(forward_list&& __x, const allocator_type& __a);\n\n    forward_list(initializer_list<value_type> __il);\n    forward_list(initializer_list<value_type> __il, const allocator_type& __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    forward_list& operator=(forward_list&& __x)\n        _NOEXCEPT_(\n             __node_traits::propagate_on_container_move_assignment::value &&\n             is_nothrow_move_assignable<allocator_type>::value);\n\n    _LIBCPP_INLINE_VISIBILITY\n    forward_list& operator=(initializer_list<value_type> __il);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void assign(initializer_list<value_type> __il);\n#endif  // _LIBCPP_CXX03_LANG\n\n    // ~forward_list() = default;\n\n    template <class _InputIterator>\n        typename enable_if\n        <\n            __is_input_iterator<_InputIterator>::value,\n            void\n        >::type\n        assign(_InputIterator __f, _InputIterator __l);\n    void assign(size_type __n, const value_type& __v);\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT\n        {return allocator_type(base::__alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin() _NOEXCEPT\n        {return       iterator(base::__before_begin()->__next_);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT\n        {return const_iterator(base::__before_begin()->__next_);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end() _NOEXCEPT\n        {return       iterator(nullptr);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const _NOEXCEPT\n        {return const_iterator(nullptr);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const _NOEXCEPT\n        {return const_iterator(base::__before_begin()->__next_);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend() const _NOEXCEPT\n        {return const_iterator(nullptr);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       before_begin() _NOEXCEPT\n        {return       iterator(base::__before_begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator before_begin() const _NOEXCEPT\n        {return const_iterator(base::__before_begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbefore_begin() const _NOEXCEPT\n        {return const_iterator(base::__before_begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT\n        {return base::__before_begin()->__next_ == nullptr;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {\n        return std::min<size_type>(\n            __node_traits::max_size(base::__alloc()),\n            numeric_limits<difference_type>::max());\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference       front()       {return base::__before_begin()->__next_->__value_;}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference front() const {return base::__before_begin()->__next_->__value_;}\n\n#ifndef _LIBCPP_CXX03_LANG\n#if _LIBCPP_STD_VER > 14\n    template <class... _Args> reference emplace_front(_Args&&... __args);\n#else\n    template <class... _Args> void      emplace_front(_Args&&... __args);\n#endif\n    void push_front(value_type&& __v);\n#endif  // _LIBCPP_CXX03_LANG\n    void push_front(const value_type& __v);\n\n    void pop_front();\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class... _Args>\n        iterator emplace_after(const_iterator __p, _Args&&... __args);\n\n    iterator insert_after(const_iterator __p, value_type&& __v);\n    iterator insert_after(const_iterator __p, initializer_list<value_type> __il)\n        {return insert_after(__p, __il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n    iterator insert_after(const_iterator __p, const value_type& __v);\n    iterator insert_after(const_iterator __p, size_type __n, const value_type& __v);\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __is_input_iterator<_InputIterator>::value,\n            iterator\n        >::type\n        insert_after(const_iterator __p, _InputIterator __f, _InputIterator __l);\n\n    iterator erase_after(const_iterator __p);\n    iterator erase_after(const_iterator __f, const_iterator __l);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(forward_list& __x)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT\n#else\n        _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value ||\n                   __is_nothrow_swappable<__node_allocator>::value)\n#endif\n        {base::swap(__x);}\n\n    void resize(size_type __n);\n    void resize(size_type __n, const value_type& __v);\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {base::clear();}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void splice_after(const_iterator __p, forward_list&& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    void splice_after(const_iterator __p, forward_list&& __x, const_iterator __i);\n    _LIBCPP_INLINE_VISIBILITY\n    void splice_after(const_iterator __p, forward_list&& __x,\n                      const_iterator __f, const_iterator __l);\n#endif  // _LIBCPP_CXX03_LANG\n    void splice_after(const_iterator __p, forward_list& __x);\n    void splice_after(const_iterator __p, forward_list& __x, const_iterator __i);\n    void splice_after(const_iterator __p, forward_list& __x,\n                      const_iterator __f, const_iterator __l);\n    void remove(const value_type& __v);\n    template <class _Predicate> void remove_if(_Predicate __pred);\n    _LIBCPP_INLINE_VISIBILITY\n    void unique() {unique(__equal_to<value_type>());}\n    template <class _BinaryPredicate> void unique(_BinaryPredicate __binary_pred);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void merge(forward_list&& __x) {merge(__x, __less<value_type>());}\n    template <class _Compare>\n        _LIBCPP_INLINE_VISIBILITY\n        void merge(forward_list&& __x, _Compare __comp)\n        {merge(__x, _VSTD::move(__comp));}\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void merge(forward_list& __x) {merge(__x, __less<value_type>());}\n    template <class _Compare> void merge(forward_list& __x, _Compare __comp);\n    _LIBCPP_INLINE_VISIBILITY\n    void sort() {sort(__less<value_type>());}\n    template <class _Compare> _LIBCPP_INLINE_VISIBILITY void sort(_Compare __comp);\n    void reverse() _NOEXCEPT;\n\nprivate:\n\n#ifndef _LIBCPP_CXX03_LANG\n    void __move_assign(forward_list& __x, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);\n    void __move_assign(forward_list& __x, false_type);\n#endif  // _LIBCPP_CXX03_LANG\n\n    template <class _Compare>\n        static\n        __node_pointer\n        __merge(__node_pointer __f1, __node_pointer __f2, _Compare& __comp);\n\n    template <class _Compare>\n        static\n        __node_pointer\n        __sort(__node_pointer __f, difference_type __sz, _Compare& __comp);\n};\n\ntemplate <class _Tp, class _Alloc>\ninline\nforward_list<_Tp, _Alloc>::forward_list(const allocator_type& __a)\n    : base(__a)\n{\n}\n\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(size_type __n)\n{\n    if (__n > 0)\n    {\n        __node_allocator& __a = base::__alloc();\n        typedef __allocator_destructor<__node_allocator> _Dp;\n        unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1));\n        for (__begin_node_pointer __p = base::__before_begin(); __n > 0; --__n,\n                                                             __p = __p->__next_as_begin())\n        {\n            __h.reset(__node_traits::allocate(__a, 1));\n            __node_traits::construct(__a, _VSTD::addressof(__h->__value_));\n            __h->__next_ = nullptr;\n            __p->__next_ = __h.release();\n        }\n    }\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(size_type __n,\n                                        const allocator_type& __base_alloc)\n    : base ( __base_alloc )\n{\n    if (__n > 0)\n    {\n        __node_allocator& __a = base::__alloc();\n        typedef __allocator_destructor<__node_allocator> _Dp;\n        unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1));\n        for (__begin_node_pointer __p = base::__before_begin(); __n > 0; --__n,\n                                                             __p = __p->__next_as_begin())\n        {\n            __h.reset(__node_traits::allocate(__a, 1));\n            __node_traits::construct(__a, _VSTD::addressof(__h->__value_));\n            __h->__next_ = nullptr;\n            __p->__next_ = __h.release();\n        }\n    }\n}\n#endif\n\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v)\n{\n    insert_after(cbefore_begin(), __n, __v);\n}\n\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v,\n                                        const allocator_type& __a)\n    : base(__a)\n{\n    insert_after(cbefore_begin(), __n, __v);\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _InputIterator>\nforward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l,\n                                        typename enable_if<\n                                          __is_input_iterator<_InputIterator>::value\n                                        >::type*)\n{\n    insert_after(cbefore_begin(), __f, __l);\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _InputIterator>\nforward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l,\n                                        const allocator_type& __a,\n                                        typename enable_if<\n                                          __is_input_iterator<_InputIterator>::value\n                                        >::type*)\n    : base(__a)\n{\n    insert_after(cbefore_begin(), __f, __l);\n}\n\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(const forward_list& __x)\n    : base(allocator_type(\n             __node_traits::select_on_container_copy_construction(__x.__alloc())\n                         )\n          )\n{\n    insert_after(cbefore_begin(), __x.begin(), __x.end());\n}\n\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(const forward_list& __x,\n                                        const allocator_type& __a)\n    : base(__a)\n{\n    insert_after(cbefore_begin(), __x.begin(), __x.end());\n}\n\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>&\nforward_list<_Tp, _Alloc>::operator=(const forward_list& __x)\n{\n    if (this != &__x)\n    {\n        base::__copy_assign_alloc(__x);\n        assign(__x.begin(), __x.end());\n    }\n    return *this;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(forward_list&& __x,\n                                        const allocator_type& __a)\n    : base(_VSTD::move(__x), __a)\n{\n    if (base::__alloc() != __x.__alloc())\n    {\n        typedef move_iterator<iterator> _Ip;\n        insert_after(cbefore_begin(), _Ip(__x.begin()), _Ip(__x.end()));\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(initializer_list<value_type> __il)\n{\n    insert_after(cbefore_begin(), __il.begin(), __il.end());\n}\n\ntemplate <class _Tp, class _Alloc>\nforward_list<_Tp, _Alloc>::forward_list(initializer_list<value_type> __il,\n                                        const allocator_type& __a)\n    : base(__a)\n{\n    insert_after(cbefore_begin(), __il.begin(), __il.end());\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, true_type)\n    _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n{\n    clear();\n    base::__move_assign_alloc(__x);\n    base::__before_begin()->__next_ = __x.__before_begin()->__next_;\n    __x.__before_begin()->__next_ = nullptr;\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, false_type)\n{\n    if (base::__alloc() == __x.__alloc())\n        __move_assign(__x, true_type());\n    else\n    {\n        typedef move_iterator<iterator> _Ip;\n        assign(_Ip(__x.begin()), _Ip(__x.end()));\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nforward_list<_Tp, _Alloc>&\nforward_list<_Tp, _Alloc>::operator=(forward_list&& __x)\n    _NOEXCEPT_(\n             __node_traits::propagate_on_container_move_assignment::value &&\n             is_nothrow_move_assignable<allocator_type>::value)\n{\n    __move_assign(__x, integral_constant<bool,\n          __node_traits::propagate_on_container_move_assignment::value>());\n    return *this;\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nforward_list<_Tp, _Alloc>&\nforward_list<_Tp, _Alloc>::operator=(initializer_list<value_type> __il)\n{\n    assign(__il.begin(), __il.end());\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _InputIterator>\ntypename enable_if\n<\n    __is_input_iterator<_InputIterator>::value,\n    void\n>::type\nforward_list<_Tp, _Alloc>::assign(_InputIterator __f, _InputIterator __l)\n{\n    iterator __i = before_begin();\n    iterator __j = _VSTD::next(__i);\n    iterator __e = end();\n    for (; __j != __e && __f != __l; ++__i, (void) ++__j, ++__f)\n        *__j = *__f;\n    if (__j == __e)\n        insert_after(__i, __f, __l);\n    else\n        erase_after(__i, __e);\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::assign(size_type __n, const value_type& __v)\n{\n    iterator __i = before_begin();\n    iterator __j = _VSTD::next(__i);\n    iterator __e = end();\n    for (; __j != __e && __n > 0; --__n, ++__i, ++__j)\n        *__j = __v;\n    if (__j == __e)\n        insert_after(__i, __n, __v);\n    else\n        erase_after(__i, __e);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\nforward_list<_Tp, _Alloc>::assign(initializer_list<value_type> __il)\n{\n    assign(__il.begin(), __il.end());\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class... _Args>\n#if _LIBCPP_STD_VER > 14\ntypename forward_list<_Tp, _Alloc>::reference\n#else\nvoid\n#endif\nforward_list<_Tp, _Alloc>::emplace_front(_Args&&... __args)\n{\n    __node_allocator& __a = base::__alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));\n    __node_traits::construct(__a, _VSTD::addressof(__h->__value_),\n                                  _VSTD::forward<_Args>(__args)...);\n    __h->__next_ = base::__before_begin()->__next_;\n    base::__before_begin()->__next_ = __h.release();\n#if _LIBCPP_STD_VER > 14\n    return base::__before_begin()->__next_->__value_;\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::push_front(value_type&& __v)\n{\n    __node_allocator& __a = base::__alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));\n    __node_traits::construct(__a, _VSTD::addressof(__h->__value_), _VSTD::move(__v));\n    __h->__next_ = base::__before_begin()->__next_;\n    base::__before_begin()->__next_ = __h.release();\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::push_front(const value_type& __v)\n{\n    __node_allocator& __a = base::__alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));\n    __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);\n    __h->__next_ = base::__before_begin()->__next_;\n    base::__before_begin()->__next_ = __h.release();\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::pop_front()\n{\n    __node_allocator& __a = base::__alloc();\n    __node_pointer __p = base::__before_begin()->__next_;\n    base::__before_begin()->__next_ = __p->__next_;\n    __node_traits::destroy(__a, _VSTD::addressof(__p->__value_));\n    __node_traits::deallocate(__a, __p, 1);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class... _Args>\ntypename forward_list<_Tp, _Alloc>::iterator\nforward_list<_Tp, _Alloc>::emplace_after(const_iterator __p, _Args&&... __args)\n{\n    __begin_node_pointer const __r = __p.__get_begin();\n    __node_allocator& __a = base::__alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));\n    __node_traits::construct(__a, _VSTD::addressof(__h->__value_),\n                                  _VSTD::forward<_Args>(__args)...);\n    __h->__next_ = __r->__next_;\n    __r->__next_ = __h.release();\n    return iterator(__r->__next_);\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename forward_list<_Tp, _Alloc>::iterator\nforward_list<_Tp, _Alloc>::insert_after(const_iterator __p, value_type&& __v)\n{\n    __begin_node_pointer const __r = __p.__get_begin();\n    __node_allocator& __a = base::__alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));\n    __node_traits::construct(__a, _VSTD::addressof(__h->__value_), _VSTD::move(__v));\n    __h->__next_ = __r->__next_;\n    __r->__next_ = __h.release();\n    return iterator(__r->__next_);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\ntypename forward_list<_Tp, _Alloc>::iterator\nforward_list<_Tp, _Alloc>::insert_after(const_iterator __p, const value_type& __v)\n{\n    __begin_node_pointer const __r = __p.__get_begin();\n    __node_allocator& __a = base::__alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));\n    __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);\n    __h->__next_ = __r->__next_;\n    __r->__next_ = __h.release();\n    return iterator(__r->__next_);\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename forward_list<_Tp, _Alloc>::iterator\nforward_list<_Tp, _Alloc>::insert_after(const_iterator __p, size_type __n,\n                                        const value_type& __v)\n{\n    __begin_node_pointer __r = __p.__get_begin();\n    if (__n > 0)\n    {\n        __node_allocator& __a = base::__alloc();\n        typedef __allocator_destructor<__node_allocator> _Dp;\n        unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));\n        __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);\n        __node_pointer __first = __h.release();\n        __node_pointer __last = __first;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (--__n; __n != 0; --__n, __last = __last->__next_)\n            {\n                __h.reset(__node_traits::allocate(__a, 1));\n                __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);\n                __last->__next_ = __h.release();\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            while (__first != nullptr)\n            {\n                __node_pointer __next = __first->__next_;\n                __node_traits::destroy(__a, _VSTD::addressof(__first->__value_));\n                __node_traits::deallocate(__a, __first, 1);\n                __first = __next;\n            }\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __last->__next_ = __r->__next_;\n        __r->__next_ = __first;\n        __r = static_cast<__begin_node_pointer>(__last);\n    }\n    return iterator(__r);\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _InputIterator>\ntypename enable_if\n<\n    __is_input_iterator<_InputIterator>::value,\n    typename forward_list<_Tp, _Alloc>::iterator\n>::type\nforward_list<_Tp, _Alloc>::insert_after(const_iterator __p,\n                                        _InputIterator __f, _InputIterator __l)\n{\n    __begin_node_pointer __r = __p.__get_begin();\n    if (__f != __l)\n    {\n        __node_allocator& __a = base::__alloc();\n        typedef __allocator_destructor<__node_allocator> _Dp;\n        unique_ptr<__node, _Dp> __h(__node_traits::allocate(__a, 1), _Dp(__a, 1));\n        __node_traits::construct(__a, _VSTD::addressof(__h->__value_), *__f);\n        __node_pointer __first = __h.release();\n        __node_pointer __last = __first;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (++__f; __f != __l; ++__f, ((void)(__last = __last->__next_)))\n            {\n                __h.reset(__node_traits::allocate(__a, 1));\n                __node_traits::construct(__a, _VSTD::addressof(__h->__value_), *__f);\n                __last->__next_ = __h.release();\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            while (__first != nullptr)\n            {\n                __node_pointer __next = __first->__next_;\n                __node_traits::destroy(__a, _VSTD::addressof(__first->__value_));\n                __node_traits::deallocate(__a, __first, 1);\n                __first = __next;\n            }\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __last->__next_ = __r->__next_;\n        __r->__next_ = __first;\n        __r = static_cast<__begin_node_pointer>(__last);\n    }\n    return iterator(__r);\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename forward_list<_Tp, _Alloc>::iterator\nforward_list<_Tp, _Alloc>::erase_after(const_iterator __f)\n{\n    __begin_node_pointer __p = __f.__get_begin();\n    __node_pointer __n = __p->__next_;\n    __p->__next_ = __n->__next_;\n    __node_allocator& __a = base::__alloc();\n    __node_traits::destroy(__a, _VSTD::addressof(__n->__value_));\n    __node_traits::deallocate(__a, __n, 1);\n    return iterator(__p->__next_);\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename forward_list<_Tp, _Alloc>::iterator\nforward_list<_Tp, _Alloc>::erase_after(const_iterator __f, const_iterator __l)\n{\n    __node_pointer __e = __l.__get_unsafe_node_pointer();\n    if (__f != __l)\n    {\n        __begin_node_pointer __bp = __f.__get_begin();\n\n        __node_pointer __n = __bp->__next_;\n        if (__n != __e)\n        {\n            __bp->__next_ = __e;\n            __node_allocator& __a = base::__alloc();\n            do\n            {\n                __node_pointer __tmp = __n->__next_;\n                __node_traits::destroy(__a, _VSTD::addressof(__n->__value_));\n                __node_traits::deallocate(__a, __n, 1);\n                __n = __tmp;\n            } while (__n != __e);\n        }\n    }\n    return iterator(__e);\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::resize(size_type __n)\n{\n    size_type __sz = 0;\n    iterator __p = before_begin();\n    iterator __i = begin();\n    iterator __e = end();\n    for (; __i != __e && __sz < __n; ++__p, ++__i, ++__sz)\n        ;\n    if (__i != __e)\n        erase_after(__p, __e);\n    else\n    {\n        __n -= __sz;\n        if (__n > 0)\n        {\n            __node_allocator& __a = base::__alloc();\n            typedef __allocator_destructor<__node_allocator> _Dp;\n            unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1));\n            for (__begin_node_pointer __ptr = __p.__get_begin(); __n > 0; --__n,\n                                                         __ptr = __ptr->__next_as_begin())\n            {\n                __h.reset(__node_traits::allocate(__a, 1));\n                __node_traits::construct(__a, _VSTD::addressof(__h->__value_));\n                __h->__next_ = nullptr;\n                __ptr->__next_ = __h.release();\n            }\n        }\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::resize(size_type __n, const value_type& __v)\n{\n    size_type __sz = 0;\n    iterator __p = before_begin();\n    iterator __i = begin();\n    iterator __e = end();\n    for (; __i != __e && __sz < __n; ++__p, ++__i, ++__sz)\n        ;\n    if (__i != __e)\n        erase_after(__p, __e);\n    else\n    {\n        __n -= __sz;\n        if (__n > 0)\n        {\n            __node_allocator& __a = base::__alloc();\n            typedef __allocator_destructor<__node_allocator> _Dp;\n            unique_ptr<__node, _Dp> __h(nullptr, _Dp(__a, 1));\n            for (__begin_node_pointer __ptr = __p.__get_begin(); __n > 0; --__n,\n                                                         __ptr = __ptr->__next_as_begin())\n            {\n                __h.reset(__node_traits::allocate(__a, 1));\n                __node_traits::construct(__a, _VSTD::addressof(__h->__value_), __v);\n                __h->__next_ = nullptr;\n                __ptr->__next_ = __h.release();\n            }\n        }\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::splice_after(const_iterator __p,\n                                        forward_list& __x)\n{\n    if (!__x.empty())\n    {\n        if (__p.__get_begin()->__next_ != nullptr)\n        {\n            const_iterator __lm1 = __x.before_begin();\n            while (__lm1.__get_begin()->__next_ != nullptr)\n                ++__lm1;\n            __lm1.__get_begin()->__next_ = __p.__get_begin()->__next_;\n        }\n        __p.__get_begin()->__next_ = __x.__before_begin()->__next_;\n        __x.__before_begin()->__next_ = nullptr;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::splice_after(const_iterator __p,\n                                        forward_list& /*__other*/,\n                                        const_iterator __i)\n{\n    const_iterator __lm1 = _VSTD::next(__i);\n    if (__p != __i && __p != __lm1)\n    {\n        __i.__get_begin()->__next_ = __lm1.__get_begin()->__next_;\n        __lm1.__get_begin()->__next_ = __p.__get_begin()->__next_;\n        __p.__get_begin()->__next_ = __lm1.__get_unsafe_node_pointer();\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::splice_after(const_iterator __p,\n                                        forward_list& /*__other*/,\n                                        const_iterator __f, const_iterator __l)\n{\n    if (__f != __l && __p != __f)\n    {\n        const_iterator __lm1 = __f;\n        while (__lm1.__get_begin()->__next_ != __l.__get_begin())\n            ++__lm1;\n        if (__f != __lm1)\n        {\n            __lm1.__get_begin()->__next_ = __p.__get_begin()->__next_;\n            __p.__get_begin()->__next_ = __f.__get_begin()->__next_;\n            __f.__get_begin()->__next_ = __l.__get_unsafe_node_pointer();\n        }\n    }\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nforward_list<_Tp, _Alloc>::splice_after(const_iterator __p,\n                                        forward_list&& __x)\n{\n    splice_after(__p, __x);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nforward_list<_Tp, _Alloc>::splice_after(const_iterator __p,\n                                        forward_list&& __x,\n                                        const_iterator __i)\n{\n    splice_after(__p, __x, __i);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nforward_list<_Tp, _Alloc>::splice_after(const_iterator __p,\n                                        forward_list&& __x,\n                                        const_iterator __f, const_iterator __l)\n{\n    splice_after(__p, __x, __f, __l);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::remove(const value_type& __v)\n{\n    forward_list<_Tp, _Alloc> __deleted_nodes; // collect the nodes we're removing\n    iterator __e = end();\n    for (iterator __i = before_begin(); __i.__get_begin()->__next_ != nullptr;)\n    {\n        if (__i.__get_begin()->__next_->__value_ == __v)\n        {\n            iterator __j = _VSTD::next(__i, 2);\n            for (; __j != __e && *__j == __v; ++__j)\n                ;\n            __deleted_nodes.splice_after(__deleted_nodes.before_begin(), *this, __i, __j);\n            if (__j == __e)\n                break;\n            __i = __j;\n        }\n        else\n            ++__i;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Predicate>\nvoid\nforward_list<_Tp, _Alloc>::remove_if(_Predicate __pred)\n{\n    iterator __e = end();\n    for (iterator __i = before_begin(); __i.__get_begin()->__next_ != nullptr;)\n    {\n        if (__pred(__i.__get_begin()->__next_->__value_))\n        {\n            iterator __j = _VSTD::next(__i, 2);\n            for (; __j != __e && __pred(*__j); ++__j)\n                ;\n            erase_after(__i, __j);\n            if (__j == __e)\n                break;\n            __i = __j;\n        }\n        else\n            ++__i;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _BinaryPredicate>\nvoid\nforward_list<_Tp, _Alloc>::unique(_BinaryPredicate __binary_pred)\n{\n    for (iterator __i = begin(), __e = end(); __i != __e;)\n    {\n        iterator __j = _VSTD::next(__i);\n        for (; __j != __e && __binary_pred(*__i, *__j); ++__j)\n            ;\n        if (__i.__get_begin()->__next_ != __j.__get_unsafe_node_pointer())\n            erase_after(__i, __j);\n        __i = __j;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Compare>\nvoid\nforward_list<_Tp, _Alloc>::merge(forward_list& __x, _Compare __comp)\n{\n    if (this != &__x)\n    {\n        base::__before_begin()->__next_ = __merge(base::__before_begin()->__next_,\n                                                    __x.__before_begin()->__next_,\n                                                    __comp);\n        __x.__before_begin()->__next_ = nullptr;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Compare>\ntypename forward_list<_Tp, _Alloc>::__node_pointer\nforward_list<_Tp, _Alloc>::__merge(__node_pointer __f1, __node_pointer __f2,\n                                   _Compare& __comp)\n{\n    if (__f1 == nullptr)\n        return __f2;\n    if (__f2 == nullptr)\n        return __f1;\n    __node_pointer __r;\n    if (__comp(__f2->__value_, __f1->__value_))\n    {\n        __node_pointer __t = __f2;\n        while (__t->__next_ != nullptr &&\n                             __comp(__t->__next_->__value_, __f1->__value_))\n            __t = __t->__next_;\n        __r = __f2;\n        __f2 = __t->__next_;\n        __t->__next_ = __f1;\n    }\n    else\n        __r = __f1;\n    __node_pointer __p = __f1;\n    __f1 = __f1->__next_;\n    while (__f1 != nullptr && __f2 != nullptr)\n    {\n        if (__comp(__f2->__value_, __f1->__value_))\n        {\n            __node_pointer __t = __f2;\n            while (__t->__next_ != nullptr &&\n                                 __comp(__t->__next_->__value_, __f1->__value_))\n                __t = __t->__next_;\n            __p->__next_ = __f2;\n            __f2 = __t->__next_;\n            __t->__next_ = __f1;\n        }\n        __p = __f1;\n        __f1 = __f1->__next_;\n    }\n    if (__f2 != nullptr)\n        __p->__next_ = __f2;\n    return __r;\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Compare>\ninline\nvoid\nforward_list<_Tp, _Alloc>::sort(_Compare __comp)\n{\n    base::__before_begin()->__next_ = __sort(base::__before_begin()->__next_,\n                                       _VSTD::distance(begin(), end()), __comp);\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Compare>\ntypename forward_list<_Tp, _Alloc>::__node_pointer\nforward_list<_Tp, _Alloc>::__sort(__node_pointer __f1, difference_type __sz,\n                                  _Compare& __comp)\n{\n    switch (__sz)\n    {\n    case 0:\n    case 1:\n        return __f1;\n    case 2:\n        if (__comp(__f1->__next_->__value_, __f1->__value_))\n        {\n            __node_pointer __t = __f1->__next_;\n            __t->__next_ = __f1;\n            __f1->__next_ = nullptr;\n            __f1 = __t;\n        }\n        return __f1;\n    }\n    difference_type __sz1 = __sz / 2;\n    difference_type __sz2 = __sz - __sz1;\n    __node_pointer __t = _VSTD::next(iterator(__f1), __sz1 - 1).__get_unsafe_node_pointer();\n    __node_pointer __f2 = __t->__next_;\n    __t->__next_ = nullptr;\n    return __merge(__sort(__f1, __sz1, __comp),\n                   __sort(__f2, __sz2, __comp), __comp);\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nforward_list<_Tp, _Alloc>::reverse() _NOEXCEPT\n{\n    __node_pointer __p = base::__before_begin()->__next_;\n    if (__p != nullptr)\n    {\n        __node_pointer __f = __p->__next_;\n        __p->__next_ = nullptr;\n        while (__f != nullptr)\n        {\n            __node_pointer __t = __f->__next_;\n            __f->__next_ = __p;\n            __p = __f;\n            __f = __t;\n        }\n        base::__before_begin()->__next_ = __p;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nbool operator==(const forward_list<_Tp, _Alloc>& __x,\n                const forward_list<_Tp, _Alloc>& __y)\n{\n    typedef forward_list<_Tp, _Alloc> _Cp;\n    typedef typename _Cp::const_iterator _Ip;\n    _Ip __ix = __x.begin();\n    _Ip __ex = __x.end();\n    _Ip __iy = __y.begin();\n    _Ip __ey = __y.end();\n    for (; __ix != __ex && __iy != __ey; ++__ix, ++__iy)\n        if (!(*__ix == *__iy))\n            return false;\n    return (__ix == __ex) == (__iy == __ey);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator!=(const forward_list<_Tp, _Alloc>& __x,\n                const forward_list<_Tp, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator< (const forward_list<_Tp, _Alloc>& __x,\n                const forward_list<_Tp, _Alloc>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.begin(), __x.end(),\n                                         __y.begin(), __y.end());\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator> (const forward_list<_Tp, _Alloc>& __x,\n                const forward_list<_Tp, _Alloc>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator>=(const forward_list<_Tp, _Alloc>& __x,\n                const forward_list<_Tp, _Alloc>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator<=(const forward_list<_Tp, _Alloc>& __x,\n                const forward_list<_Tp, _Alloc>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(forward_list<_Tp, _Alloc>& __x, forward_list<_Tp, _Alloc>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_FORWARD_LIST\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/fstream",
    "content": "// -*- C++ -*-\n//===------------------------- fstream ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_FSTREAM\n#define _LIBCPP_FSTREAM\n\n/*\n    fstream synopsis\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass basic_filebuf\n    : public basic_streambuf<charT, traits>\n{\npublic:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    // 27.9.1.2 Constructors/destructor:\n    basic_filebuf();\n    basic_filebuf(basic_filebuf&& rhs);\n    virtual ~basic_filebuf();\n\n    // 27.9.1.3 Assign/swap:\n    basic_filebuf& operator=(basic_filebuf&& rhs);\n    void swap(basic_filebuf& rhs);\n\n    // 27.9.1.4 Members:\n    bool is_open() const;\n    basic_filebuf* open(const char* s, ios_base::openmode mode);\n    basic_filebuf* open(const string& s, ios_base::openmode mode);\n    basic_filebuf* close();\n\nprotected:\n    // 27.9.1.5 Overridden virtual functions:\n    virtual streamsize showmanyc();\n    virtual int_type underflow();\n    virtual int_type uflow();\n    virtual int_type pbackfail(int_type c = traits_type::eof());\n    virtual int_type overflow (int_type c = traits_type::eof());\n    virtual basic_streambuf<char_type, traits_type>* setbuf(char_type* s, streamsize n);\n    virtual pos_type seekoff(off_type off, ios_base::seekdir way,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n    virtual pos_type seekpos(pos_type sp,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n    virtual int sync();\n    virtual void imbue(const locale& loc);\n};\n\ntemplate <class charT, class traits>\n  void\n  swap(basic_filebuf<charT, traits>& x, basic_filebuf<charT, traits>& y);\n\ntypedef basic_filebuf<char>    filebuf;\ntypedef basic_filebuf<wchar_t> wfilebuf;\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass basic_ifstream\n    : public basic_istream<charT,traits>\n{\npublic:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    basic_ifstream();\n    explicit basic_ifstream(const char* s, ios_base::openmode mode = ios_base::in);\n    explicit basic_ifstream(const string& s, ios_base::openmode mode = ios_base::in);\n    basic_ifstream(basic_ifstream&& rhs);\n\n    basic_ifstream& operator=(basic_ifstream&& rhs);\n    void swap(basic_ifstream& rhs);\n\n    basic_filebuf<char_type, traits_type>* rdbuf() const;\n    bool is_open() const;\n    void open(const char* s, ios_base::openmode mode = ios_base::in);\n    void open(const string& s, ios_base::openmode mode = ios_base::in);\n    void close();\n};\n\ntemplate <class charT, class traits>\n  void\n  swap(basic_ifstream<charT, traits>& x, basic_ifstream<charT, traits>& y);\n\ntypedef basic_ifstream<char>    ifstream;\ntypedef basic_ifstream<wchar_t> wifstream;\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass basic_ofstream\n    : public basic_ostream<charT,traits>\n{\npublic:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    basic_ofstream();\n    explicit basic_ofstream(const char* s, ios_base::openmode mode = ios_base::out);\n    explicit basic_ofstream(const string& s, ios_base::openmode mode = ios_base::out);\n    basic_ofstream(basic_ofstream&& rhs);\n\n    basic_ofstream& operator=(basic_ofstream&& rhs);\n    void swap(basic_ofstream& rhs);\n\n    basic_filebuf<char_type, traits_type>* rdbuf() const;\n    bool is_open() const;\n    void open(const char* s, ios_base::openmode mode = ios_base::out);\n    void open(const string& s, ios_base::openmode mode = ios_base::out);\n    void close();\n};\n\ntemplate <class charT, class traits>\n  void\n  swap(basic_ofstream<charT, traits>& x, basic_ofstream<charT, traits>& y);\n\ntypedef basic_ofstream<char>    ofstream;\ntypedef basic_ofstream<wchar_t> wofstream;\n\ntemplate <class charT, class traits=char_traits<charT> >\nclass basic_fstream\n    : public basic_iostream<charT,traits>\n{\npublic:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    basic_fstream();\n    explicit basic_fstream(const char* s, ios_base::openmode mode = ios_base::in|ios_base::out);\n    explicit basic_fstream(const string& s, ios_base::openmode mode = ios_base::in|ios_base::out);\n    basic_fstream(basic_fstream&& rhs);\n\n    basic_fstream& operator=(basic_fstream&& rhs);\n    void swap(basic_fstream& rhs);\n\n    basic_filebuf<char_type, traits_type>* rdbuf() const;\n    bool is_open() const;\n    void open(const char* s, ios_base::openmode mode = ios_base::in|ios_base::out);\n    void open(const string& s, ios_base::openmode mode = ios_base::in|ios_base::out);\n    void close();\n};\n\ntemplate <class charT, class traits>\n  void swap(basic_fstream<charT, traits>& x, basic_fstream<charT, traits>& y);\n\ntypedef basic_fstream<char>    fstream;\ntypedef basic_fstream<wchar_t> wfstream;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <ostream>\n#include <istream>\n#include <__locale>\n#include <cstdio>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_filebuf\n    : public basic_streambuf<_CharT, _Traits>\n{\npublic:\n    typedef _CharT                           char_type;\n    typedef _Traits                          traits_type;\n    typedef typename traits_type::int_type   int_type;\n    typedef typename traits_type::pos_type   pos_type;\n    typedef typename traits_type::off_type   off_type;\n    typedef typename traits_type::state_type state_type;\n\n    // 27.9.1.2 Constructors/destructor:\n    basic_filebuf();\n#ifndef _LIBCPP_CXX03_LANG\n    basic_filebuf(basic_filebuf&& __rhs);\n#endif\n    virtual ~basic_filebuf();\n\n    // 27.9.1.3 Assign/swap:\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_filebuf& operator=(basic_filebuf&& __rhs);\n#endif\n    void swap(basic_filebuf& __rhs);\n\n    // 27.9.1.4 Members:\n    _LIBCPP_INLINE_VISIBILITY\n    bool is_open() const;\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\n    basic_filebuf* open(const char* __s, ios_base::openmode __mode);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_filebuf* open(const string& __s, ios_base::openmode __mode);\n#endif\n    basic_filebuf* close();\n\nprotected:\n    // 27.9.1.5 Overridden virtual functions:\n    virtual int_type underflow();\n    virtual int_type pbackfail(int_type __c = traits_type::eof());\n    virtual int_type overflow (int_type __c = traits_type::eof());\n    virtual basic_streambuf<char_type, traits_type>* setbuf(char_type* __s, streamsize __n);\n    virtual pos_type seekoff(off_type __off, ios_base::seekdir __way,\n                             ios_base::openmode __wch = ios_base::in | ios_base::out);\n    virtual pos_type seekpos(pos_type __sp,\n                             ios_base::openmode __wch = ios_base::in | ios_base::out);\n    virtual int sync();\n    virtual void imbue(const locale& __loc);\n\nprivate:\n    char*       __extbuf_;\n    const char* __extbufnext_;\n    const char* __extbufend_;\n    char __extbuf_min_[8];\n    size_t __ebs_;\n    char_type* __intbuf_;\n    size_t __ibs_;\n    FILE* __file_;\n    const codecvt<char_type, char, state_type>* __cv_;\n    state_type __st_;\n    state_type __st_last_;\n    ios_base::openmode __om_;\n    ios_base::openmode __cm_;\n    bool __owns_eb_;\n    bool __owns_ib_;\n    bool __always_noconv_;\n\n    bool __read_mode();\n    void __write_mode();\n};\n\ntemplate <class _CharT, class _Traits>\nbasic_filebuf<_CharT, _Traits>::basic_filebuf()\n    : __extbuf_(0),\n      __extbufnext_(0),\n      __extbufend_(0),\n      __ebs_(0),\n      __intbuf_(0),\n      __ibs_(0),\n      __file_(0),\n      __cv_(nullptr),\n      __st_(),\n      __st_last_(),\n      __om_(0),\n      __cm_(0),\n      __owns_eb_(false),\n      __owns_ib_(false),\n      __always_noconv_(false)\n{\n    if (has_facet<codecvt<char_type, char, state_type> >(this->getloc()))\n    {\n        __cv_ = &use_facet<codecvt<char_type, char, state_type> >(this->getloc());\n        __always_noconv_ = __cv_->always_noconv();\n    }\n    setbuf(0, 4096);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nbasic_filebuf<_CharT, _Traits>::basic_filebuf(basic_filebuf&& __rhs)\n    : basic_streambuf<_CharT, _Traits>(__rhs)\n{\n    if (__rhs.__extbuf_ == __rhs.__extbuf_min_)\n    {\n        __extbuf_ = __extbuf_min_;\n        __extbufnext_ = __extbuf_ + (__rhs.__extbufnext_ - __rhs.__extbuf_);\n        __extbufend_ = __extbuf_ + (__rhs.__extbufend_ - __rhs.__extbuf_);\n    }\n    else\n    {\n        __extbuf_ = __rhs.__extbuf_;\n        __extbufnext_ = __rhs.__extbufnext_;\n        __extbufend_ = __rhs.__extbufend_;\n    }\n    __ebs_ = __rhs.__ebs_;\n    __intbuf_ = __rhs.__intbuf_;\n    __ibs_ = __rhs.__ibs_;\n    __file_ = __rhs.__file_;\n    __cv_ = __rhs.__cv_;\n    __st_ = __rhs.__st_;\n    __st_last_ = __rhs.__st_last_;\n    __om_ = __rhs.__om_;\n    __cm_ = __rhs.__cm_;\n    __owns_eb_ = __rhs.__owns_eb_;\n    __owns_ib_ = __rhs.__owns_ib_;\n    __always_noconv_ = __rhs.__always_noconv_;\n    if (__rhs.pbase())\n    {\n        if (__rhs.pbase() == __rhs.__intbuf_)\n            this->setp(__intbuf_, __intbuf_ + (__rhs. epptr() - __rhs.pbase()));\n        else\n            this->setp((char_type*)__extbuf_,\n                       (char_type*)__extbuf_ + (__rhs. epptr() - __rhs.pbase()));\n        this->pbump(__rhs. pptr() - __rhs.pbase());\n    }\n    else if (__rhs.eback())\n    {\n        if (__rhs.eback() == __rhs.__intbuf_)\n            this->setg(__intbuf_, __intbuf_ + (__rhs.gptr() - __rhs.eback()),\n                                  __intbuf_ + (__rhs.egptr() - __rhs.eback()));\n        else\n            this->setg((char_type*)__extbuf_,\n                       (char_type*)__extbuf_ + (__rhs.gptr() - __rhs.eback()),\n                       (char_type*)__extbuf_ + (__rhs.egptr() - __rhs.eback()));\n    }\n    __rhs.__extbuf_ = 0;\n    __rhs.__extbufnext_ = 0;\n    __rhs.__extbufend_ = 0;\n    __rhs.__ebs_ = 0;\n    __rhs.__intbuf_ = 0;\n    __rhs.__ibs_ = 0;\n    __rhs.__file_ = 0;\n    __rhs.__st_ = state_type();\n    __rhs.__st_last_ = state_type();\n    __rhs.__om_ = 0;\n    __rhs.__cm_ = 0;\n    __rhs.__owns_eb_ = false;\n    __rhs.__owns_ib_ = false;\n    __rhs.setg(0, 0, 0);\n    __rhs.setp(0, 0);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_filebuf<_CharT, _Traits>&\nbasic_filebuf<_CharT, _Traits>::operator=(basic_filebuf&& __rhs)\n{\n    close();\n    swap(__rhs);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nbasic_filebuf<_CharT, _Traits>::~basic_filebuf()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        close();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    if (__owns_eb_)\n        delete [] __extbuf_;\n    if (__owns_ib_)\n        delete [] __intbuf_;\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_filebuf<_CharT, _Traits>::swap(basic_filebuf& __rhs)\n{\n    basic_streambuf<char_type, traits_type>::swap(__rhs);\n    if (__extbuf_ != __extbuf_min_ && __rhs.__extbuf_ != __rhs.__extbuf_min_)\n    {\n        _VSTD::swap(__extbuf_, __rhs.__extbuf_);\n        _VSTD::swap(__extbufnext_, __rhs.__extbufnext_);\n        _VSTD::swap(__extbufend_, __rhs.__extbufend_);\n    }\n    else\n    {\n        ptrdiff_t __ln = __extbufnext_ - __extbuf_;\n        ptrdiff_t __le = __extbufend_ - __extbuf_;\n        ptrdiff_t __rn = __rhs.__extbufnext_ - __rhs.__extbuf_;\n        ptrdiff_t __re = __rhs.__extbufend_ - __rhs.__extbuf_;\n        if (__extbuf_ == __extbuf_min_ && __rhs.__extbuf_ != __rhs.__extbuf_min_)\n        {\n            __extbuf_ = __rhs.__extbuf_;\n            __rhs.__extbuf_ = __rhs.__extbuf_min_;\n        }\n        else if (__extbuf_ != __extbuf_min_ && __rhs.__extbuf_ == __rhs.__extbuf_min_)\n        {\n            __rhs.__extbuf_ = __extbuf_;\n            __extbuf_ = __extbuf_min_;\n        }\n        __extbufnext_ = __extbuf_ + __rn;\n        __extbufend_ = __extbuf_ + __re;\n        __rhs.__extbufnext_ = __rhs.__extbuf_ + __ln;\n        __rhs.__extbufend_ = __rhs.__extbuf_ + __le;\n    }\n    _VSTD::swap(__ebs_, __rhs.__ebs_);\n    _VSTD::swap(__intbuf_, __rhs.__intbuf_);\n    _VSTD::swap(__ibs_, __rhs.__ibs_);\n    _VSTD::swap(__file_, __rhs.__file_);\n    _VSTD::swap(__cv_, __rhs.__cv_);\n    _VSTD::swap(__st_, __rhs.__st_);\n    _VSTD::swap(__st_last_, __rhs.__st_last_);\n    _VSTD::swap(__om_, __rhs.__om_);\n    _VSTD::swap(__cm_, __rhs.__cm_);\n    _VSTD::swap(__owns_eb_, __rhs.__owns_eb_);\n    _VSTD::swap(__owns_ib_, __rhs.__owns_ib_);\n    _VSTD::swap(__always_noconv_, __rhs.__always_noconv_);\n    if (this->eback() == (char_type*)__rhs.__extbuf_min_)\n    {\n        ptrdiff_t __n = this->gptr() - this->eback();\n        ptrdiff_t __e = this->egptr() - this->eback();\n        this->setg((char_type*)__extbuf_min_,\n                   (char_type*)__extbuf_min_ + __n,\n                   (char_type*)__extbuf_min_ + __e);\n    }\n    else if (this->pbase() == (char_type*)__rhs.__extbuf_min_)\n    {\n        ptrdiff_t __n = this->pptr() - this->pbase();\n        ptrdiff_t __e = this->epptr() - this->pbase();\n        this->setp((char_type*)__extbuf_min_,\n                   (char_type*)__extbuf_min_ + __e);\n        this->pbump(__n);\n    }\n    if (__rhs.eback() == (char_type*)__extbuf_min_)\n    {\n        ptrdiff_t __n = __rhs.gptr() - __rhs.eback();\n        ptrdiff_t __e = __rhs.egptr() - __rhs.eback();\n        __rhs.setg((char_type*)__rhs.__extbuf_min_,\n                   (char_type*)__rhs.__extbuf_min_ + __n,\n                   (char_type*)__rhs.__extbuf_min_ + __e);\n    }\n    else if (__rhs.pbase() == (char_type*)__extbuf_min_)\n    {\n        ptrdiff_t __n = __rhs.pptr() - __rhs.pbase();\n        ptrdiff_t __e = __rhs.epptr() - __rhs.pbase();\n        __rhs.setp((char_type*)__rhs.__extbuf_min_,\n                   (char_type*)__rhs.__extbuf_min_ + __e);\n        __rhs.pbump(__n);\n    }\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_filebuf<_CharT, _Traits>& __x, basic_filebuf<_CharT, _Traits>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbool\nbasic_filebuf<_CharT, _Traits>::is_open() const\n{\n    return __file_ != 0;\n}\n\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\ntemplate <class _CharT, class _Traits>\nbasic_filebuf<_CharT, _Traits>*\nbasic_filebuf<_CharT, _Traits>::open(const char* __s, ios_base::openmode __mode)\n{\n    basic_filebuf<_CharT, _Traits>* __rt = 0;\n    if (__file_ == 0)\n    {\n        __rt = this;\n        const char* __mdstr;\n        switch (__mode & ~ios_base::ate)\n        {\n        case ios_base::out:\n        case ios_base::out | ios_base::trunc:\n            __mdstr = \"w\";\n            break;\n        case ios_base::out | ios_base::app:\n        case ios_base::app:\n            __mdstr = \"a\";\n            break;\n        case ios_base::in:\n            __mdstr = \"r\";\n            break;\n        case ios_base::in | ios_base::out:\n            __mdstr = \"r+\";\n            break;\n        case ios_base::in | ios_base::out | ios_base::trunc:\n            __mdstr = \"w+\";\n            break;\n        case ios_base::in | ios_base::out | ios_base::app:\n        case ios_base::in | ios_base::app:\n            __mdstr = \"a+\";\n            break;\n        case ios_base::out | ios_base::binary:\n        case ios_base::out | ios_base::trunc | ios_base::binary:\n            __mdstr = \"wb\";\n            break;\n        case ios_base::out | ios_base::app | ios_base::binary:\n        case ios_base::app | ios_base::binary:\n            __mdstr = \"ab\";\n            break;\n        case ios_base::in | ios_base::binary:\n            __mdstr = \"rb\";\n            break;\n        case ios_base::in | ios_base::out | ios_base::binary:\n            __mdstr = \"r+b\";\n            break;\n        case ios_base::in | ios_base::out | ios_base::trunc | ios_base::binary:\n            __mdstr = \"w+b\";\n            break;\n        case ios_base::in | ios_base::out | ios_base::app | ios_base::binary:\n        case ios_base::in | ios_base::app | ios_base::binary:\n            __mdstr = \"a+b\";\n            break;\n        default:\n            __rt = 0;\n            break;\n        }\n        if (__rt)\n        {\n            __file_ = fopen(__s, __mdstr);\n            if (__file_)\n            {\n                __om_ = __mode;\n                if (__mode & ios_base::ate)\n                {\n                    if (fseek(__file_, 0, SEEK_END))\n                    {\n                        fclose(__file_);\n                        __file_ = 0;\n                        __rt = 0;\n                    }\n                }\n            }\n            else\n                __rt = 0;\n        }\n    }\n    return __rt;\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_filebuf<_CharT, _Traits>*\nbasic_filebuf<_CharT, _Traits>::open(const string& __s, ios_base::openmode __mode)\n{\n    return open(__s.c_str(), __mode);\n}\n#endif\n\ntemplate <class _CharT, class _Traits>\nbasic_filebuf<_CharT, _Traits>*\nbasic_filebuf<_CharT, _Traits>::close()\n{\n    basic_filebuf<_CharT, _Traits>* __rt = 0;\n    if (__file_)\n    {\n        __rt = this;\n        unique_ptr<FILE, int(*)(FILE*)> __h(__file_, fclose);\n        if (sync())\n            __rt = 0;\n        if (fclose(__h.release()) == 0)\n            __file_ = 0;\n        else\n            __rt = 0;\n    }\n    return __rt;\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_filebuf<_CharT, _Traits>::int_type\nbasic_filebuf<_CharT, _Traits>::underflow()\n{\n    if (__file_ == 0)\n        return traits_type::eof();\n    bool __initial = __read_mode();\n    char_type __1buf;\n    if (this->gptr() == 0)\n        this->setg(&__1buf, &__1buf+1, &__1buf+1);\n    const size_t __unget_sz = __initial ? 0 : min<size_t>((this->egptr() - this->eback()) / 2, 4);\n    int_type __c = traits_type::eof();\n    if (this->gptr() == this->egptr())\n    {\n        memmove(this->eback(), this->egptr() - __unget_sz, __unget_sz * sizeof(char_type));\n        if (__always_noconv_)\n        {\n            size_t __nmemb = static_cast<size_t>(this->egptr() - this->eback() - __unget_sz);\n            __nmemb = fread(this->eback() + __unget_sz, 1, __nmemb, __file_);\n            if (__nmemb != 0)\n            {\n                this->setg(this->eback(),\n                           this->eback() + __unget_sz,\n                           this->eback() + __unget_sz + __nmemb);\n                __c = traits_type::to_int_type(*this->gptr());\n            }\n        }\n        else\n        {\n            _LIBCPP_ASSERT ( !(__extbufnext_ == NULL && (__extbufend_ != __extbufnext_)), \"underflow moving from NULL\" );\n            if (__extbufend_ != __extbufnext_)\n                memmove(__extbuf_, __extbufnext_, __extbufend_ - __extbufnext_);\n            __extbufnext_ = __extbuf_ + (__extbufend_ - __extbufnext_);\n            __extbufend_ = __extbuf_ + (__extbuf_ == __extbuf_min_ ? sizeof(__extbuf_min_) : __ebs_);\n            size_t __nmemb = _VSTD::min(static_cast<size_t>(__ibs_ - __unget_sz),\n                                 static_cast<size_t>(__extbufend_ - __extbufnext_));\n            codecvt_base::result __r;\n            __st_last_ = __st_;\n            size_t __nr = fread((void*) const_cast<char *>(__extbufnext_), 1, __nmemb, __file_);\n            if (__nr != 0)\n            {\n                if (!__cv_)\n                    __throw_bad_cast();\n\n                __extbufend_ = __extbufnext_ + __nr;\n                char_type*  __inext;\n                __r = __cv_->in(__st_, __extbuf_, __extbufend_, __extbufnext_,\n                                       this->eback() + __unget_sz,\n                                       this->eback() + __ibs_, __inext);\n                if (__r == codecvt_base::noconv)\n                {\n                    this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, \n                                          (char_type*)const_cast<char *>(__extbufend_));\n                    __c = traits_type::to_int_type(*this->gptr());\n                }\n                else if (__inext != this->eback() + __unget_sz)\n                {\n                    this->setg(this->eback(), this->eback() + __unget_sz, __inext);\n                    __c = traits_type::to_int_type(*this->gptr());\n                }\n            }\n        }\n    }\n    else\n        __c = traits_type::to_int_type(*this->gptr());\n    if (this->eback() == &__1buf)\n        this->setg(0, 0, 0);\n    return __c;\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_filebuf<_CharT, _Traits>::int_type\nbasic_filebuf<_CharT, _Traits>::pbackfail(int_type __c)\n{\n    if (__file_ && this->eback() < this->gptr())\n    {\n        if (traits_type::eq_int_type(__c, traits_type::eof()))\n        {\n            this->gbump(-1);\n            return traits_type::not_eof(__c);\n        }\n        if ((__om_ & ios_base::out) ||\n            traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1]))\n        {\n            this->gbump(-1);\n            *this->gptr() = traits_type::to_char_type(__c);\n            return __c;\n        }\n    }\n    return traits_type::eof();\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_filebuf<_CharT, _Traits>::int_type\nbasic_filebuf<_CharT, _Traits>::overflow(int_type __c)\n{\n    if (__file_ == 0)\n        return traits_type::eof();\n    __write_mode();\n    char_type __1buf;\n    char_type* __pb_save = this->pbase();\n    char_type* __epb_save = this->epptr();\n    if (!traits_type::eq_int_type(__c, traits_type::eof()))\n    {\n        if (this->pptr() == 0)\n            this->setp(&__1buf, &__1buf+1);\n        *this->pptr() = traits_type::to_char_type(__c);\n        this->pbump(1);\n    }\n    if (this->pptr() != this->pbase())\n    {\n        if (__always_noconv_)\n        {\n            size_t __nmemb = static_cast<size_t>(this->pptr() - this->pbase());\n            if (fwrite(this->pbase(), sizeof(char_type), __nmemb, __file_) != __nmemb)\n                return traits_type::eof();\n        }\n        else\n        {\n            char* __extbe = __extbuf_;\n            codecvt_base::result __r;\n            do\n            {\n                if (!__cv_)\n                    __throw_bad_cast();\n\n                const char_type* __e;\n                __r = __cv_->out(__st_, this->pbase(), this->pptr(), __e,\n                                        __extbuf_, __extbuf_ + __ebs_, __extbe);\n                if (__e == this->pbase())\n                    return traits_type::eof();\n                if (__r == codecvt_base::noconv)\n                {\n                    size_t __nmemb = static_cast<size_t>(this->pptr() - this->pbase());\n                    if (fwrite(this->pbase(), 1, __nmemb, __file_) != __nmemb)\n                        return traits_type::eof();\n                }\n                else if (__r == codecvt_base::ok || __r == codecvt_base::partial)\n                {\n                    size_t __nmemb = static_cast<size_t>(__extbe - __extbuf_);\n                    if (fwrite(__extbuf_, 1, __nmemb, __file_) != __nmemb)\n                        return traits_type::eof();\n                    if (__r == codecvt_base::partial)\n                    {\n                        this->setp(const_cast<char_type*>(__e), this->pptr());\n                        this->pbump(this->epptr() - this->pbase());\n                    }\n                }\n                else\n                    return traits_type::eof();\n            } while (__r == codecvt_base::partial);\n        }\n        this->setp(__pb_save, __epb_save);\n    }\n    return traits_type::not_eof(__c);\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_streambuf<_CharT, _Traits>*\nbasic_filebuf<_CharT, _Traits>::setbuf(char_type* __s, streamsize __n)\n{\n    this->setg(0, 0, 0);\n    this->setp(0, 0);\n    if (__owns_eb_)\n        delete [] __extbuf_;\n    if (__owns_ib_)\n        delete [] __intbuf_;\n    __ebs_ = __n;\n    if (__ebs_ > sizeof(__extbuf_min_))\n    {\n        if (__always_noconv_ && __s)\n        {\n            __extbuf_ = (char*)__s;\n            __owns_eb_ = false;\n        }\n        else\n        {\n            __extbuf_ = new char[__ebs_];\n            __owns_eb_ = true;\n        }\n    }\n    else\n    {\n        __extbuf_ = __extbuf_min_;\n        __ebs_ = sizeof(__extbuf_min_);\n        __owns_eb_ = false;\n    }\n    if (!__always_noconv_)\n    {\n        __ibs_ = max<streamsize>(__n, sizeof(__extbuf_min_));\n        if (__s && __ibs_ >= sizeof(__extbuf_min_))\n        {\n            __intbuf_ = __s;\n            __owns_ib_ = false;\n        }\n        else\n        {\n            __intbuf_ = new char_type[__ibs_];\n            __owns_ib_ = true;\n        }\n    }\n    else\n    {\n        __ibs_ = 0;\n        __intbuf_ = 0;\n        __owns_ib_ = false;\n    }\n    return this;\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_filebuf<_CharT, _Traits>::pos_type\nbasic_filebuf<_CharT, _Traits>::seekoff(off_type __off, ios_base::seekdir __way,\n                                        ios_base::openmode)\n{\n    if (!__cv_)\n        __throw_bad_cast();\n\n    int __width = __cv_->encoding();\n    if (__file_ == 0 || (__width <= 0 && __off != 0) || sync())\n        return pos_type(off_type(-1));\n    // __width > 0 || __off == 0\n    int __whence;\n    switch (__way)\n    {\n    case ios_base::beg:\n        __whence = SEEK_SET;\n        break;\n    case ios_base::cur:\n        __whence = SEEK_CUR;\n        break;\n    case ios_base::end:\n        __whence = SEEK_END;\n        break;\n    default:\n        return pos_type(off_type(-1));\n    }\n#if defined(_LIBCPP_HAS_NO_OFF_T_FUNCTIONS)\n    if (fseek(__file_, __width > 0 ? __width * __off : 0, __whence))\n        return pos_type(off_type(-1));\n    pos_type __r = ftell(__file_);\n#else\n    if (fseeko(__file_, __width > 0 ? __width * __off : 0, __whence))\n        return pos_type(off_type(-1));\n    pos_type __r = ftello(__file_);\n#endif\n    __r.state(__st_);\n    return __r;\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_filebuf<_CharT, _Traits>::pos_type\nbasic_filebuf<_CharT, _Traits>::seekpos(pos_type __sp, ios_base::openmode)\n{\n    if (__file_ == 0 || sync())\n        return pos_type(off_type(-1));\n#if defined(_LIBCPP_HAS_NO_OFF_T_FUNCTIONS)\n    if (fseek(__file_, __sp, SEEK_SET))\n        return pos_type(off_type(-1));\n#else\n    if (fseeko(__file_, __sp, SEEK_SET))\n        return pos_type(off_type(-1));\n#endif\n    __st_ = __sp.state();\n    return __sp;\n}\n\ntemplate <class _CharT, class _Traits>\nint\nbasic_filebuf<_CharT, _Traits>::sync()\n{\n    if (__file_ == 0)\n        return 0;\n    if (!__cv_)\n        __throw_bad_cast();\n\n    if (__cm_ & ios_base::out)\n    {\n        if (this->pptr() != this->pbase())\n            if (overflow() == traits_type::eof())\n                return -1;\n        codecvt_base::result __r;\n        do\n        {\n            char* __extbe;\n            __r = __cv_->unshift(__st_, __extbuf_, __extbuf_ + __ebs_, __extbe);\n            size_t __nmemb = static_cast<size_t>(__extbe - __extbuf_);\n            if (fwrite(__extbuf_, 1, __nmemb, __file_) != __nmemb)\n                return -1;\n        } while (__r == codecvt_base::partial);\n        if (__r == codecvt_base::error)\n            return -1;\n        if (fflush(__file_))\n            return -1;\n    }\n    else if (__cm_ & ios_base::in)\n    {\n        off_type __c;\n        state_type __state = __st_last_;\n        bool __update_st = false;\n        if (__always_noconv_)\n            __c = this->egptr() - this->gptr();\n        else\n        {\n            int __width = __cv_->encoding();\n            __c = __extbufend_ - __extbufnext_;\n            if (__width > 0)\n                __c += __width * (this->egptr() - this->gptr());\n            else\n            {\n                if (this->gptr() != this->egptr())\n                {\n                    const int __off =  __cv_->length(__state, __extbuf_,\n                                                     __extbufnext_,\n                                                     this->gptr() - this->eback());\n                    __c += __extbufnext_ - __extbuf_ - __off;\n                    __update_st = true;\n                }\n            }\n        }\n#if defined(_LIBCPP_HAS_NO_OFF_T_FUNCTIONS)\n        if (fseek(__file_, -__c, SEEK_CUR))\n            return -1;\n#else\n        if (fseeko(__file_, -__c, SEEK_CUR))\n            return -1;\n#endif\n        if (__update_st)\n            __st_ = __state;\n        __extbufnext_ = __extbufend_ = __extbuf_;\n        this->setg(0, 0, 0);\n        __cm_ = 0;\n    }\n    return 0;\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_filebuf<_CharT, _Traits>::imbue(const locale& __loc)\n{\n    sync();\n    __cv_ = &use_facet<codecvt<char_type, char, state_type> >(__loc);\n    bool __old_anc = __always_noconv_;\n    __always_noconv_ = __cv_->always_noconv();\n    if (__old_anc != __always_noconv_)\n    {\n        this->setg(0, 0, 0);\n        this->setp(0, 0);\n        // invariant, char_type is char, else we couldn't get here\n        if (__always_noconv_)  // need to dump __intbuf_\n        {\n            if (__owns_eb_)\n                delete [] __extbuf_;\n            __owns_eb_ = __owns_ib_;\n            __ebs_ = __ibs_;\n            __extbuf_ = (char*)__intbuf_;\n            __ibs_ = 0;\n            __intbuf_ = 0;\n            __owns_ib_ = false;\n        }\n        else  // need to obtain an __intbuf_.\n        {     // If __extbuf_ is user-supplied, use it, else new __intbuf_\n            if (!__owns_eb_ && __extbuf_ != __extbuf_min_)\n            {\n                __ibs_ = __ebs_;\n                __intbuf_ = (char_type*)__extbuf_;\n                __owns_ib_ = false;\n                __extbuf_ = new char[__ebs_];\n                __owns_eb_ = true;\n            }\n            else\n            {\n                __ibs_ = __ebs_;\n                __intbuf_ = new char_type[__ibs_];\n                __owns_ib_ = true;\n            }\n        }\n    }\n}\n\ntemplate <class _CharT, class _Traits>\nbool\nbasic_filebuf<_CharT, _Traits>::__read_mode()\n{\n    if (!(__cm_ & ios_base::in))\n    {\n        this->setp(0, 0);\n        if (__always_noconv_)\n            this->setg((char_type*)__extbuf_,\n                       (char_type*)__extbuf_ + __ebs_,\n                       (char_type*)__extbuf_ + __ebs_);\n        else\n            this->setg(__intbuf_, __intbuf_ + __ibs_, __intbuf_ + __ibs_);\n        __cm_ = ios_base::in;\n        return true;\n    }\n    return false;\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_filebuf<_CharT, _Traits>::__write_mode()\n{\n    if (!(__cm_ & ios_base::out))\n    {\n        this->setg(0, 0, 0);\n        if (__ebs_ > sizeof(__extbuf_min_))\n        {\n            if (__always_noconv_)\n                this->setp((char_type*)__extbuf_,\n                           (char_type*)__extbuf_ + (__ebs_ - 1));\n            else\n                this->setp(__intbuf_, __intbuf_ + (__ibs_ - 1));\n        }\n        else\n            this->setp(0, 0);\n        __cm_ = ios_base::out;\n    }\n}\n\n// basic_ifstream\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_ifstream\n    : public basic_istream<_CharT, _Traits>\n{\npublic:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ifstream();\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\n    _LIBCPP_INLINE_VISIBILITY\n    explicit basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit basic_ifstream(const string& __s, ios_base::openmode __mode = ios_base::in);\n#endif\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ifstream(basic_ifstream&& __rhs);\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ifstream& operator=(basic_ifstream&& __rhs);\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(basic_ifstream& __rhs);\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_filebuf<char_type, traits_type>* rdbuf() const;\n    _LIBCPP_INLINE_VISIBILITY\n    bool is_open() const;\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\n    void open(const char* __s, ios_base::openmode __mode = ios_base::in);\n    void open(const string& __s, ios_base::openmode __mode = ios_base::in);\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void close();\n\nprivate:\n    basic_filebuf<char_type, traits_type> __sb_;\n};\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ifstream<_CharT, _Traits>::basic_ifstream()\n    : basic_istream<char_type, traits_type>(&__sb_)\n{\n}\n\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ifstream<_CharT, _Traits>::basic_ifstream(const char* __s, ios_base::openmode __mode)\n    : basic_istream<char_type, traits_type>(&__sb_)\n{\n    if (__sb_.open(__s, __mode | ios_base::in) == 0)\n        this->setstate(ios_base::failbit);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ifstream<_CharT, _Traits>::basic_ifstream(const string& __s, ios_base::openmode __mode)\n    : basic_istream<char_type, traits_type>(&__sb_)\n{\n    if (__sb_.open(__s, __mode | ios_base::in) == 0)\n        this->setstate(ios_base::failbit);\n}\n#endif\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ifstream<_CharT, _Traits>::basic_ifstream(basic_ifstream&& __rhs)\n    : basic_istream<char_type, traits_type>(_VSTD::move(__rhs)),\n      __sb_(_VSTD::move(__rhs.__sb_))\n{\n    this->set_rdbuf(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ifstream<_CharT, _Traits>&\nbasic_ifstream<_CharT, _Traits>::operator=(basic_ifstream&& __rhs)\n{\n    basic_istream<char_type, traits_type>::operator=(_VSTD::move(__rhs));\n    __sb_ = _VSTD::move(__rhs.__sb_);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\ninline\nvoid\nbasic_ifstream<_CharT, _Traits>::swap(basic_ifstream& __rhs)\n{\n    basic_istream<char_type, traits_type>::swap(__rhs);\n    __sb_.swap(__rhs.__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_ifstream<_CharT, _Traits>& __x, basic_ifstream<_CharT, _Traits>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_filebuf<_CharT, _Traits>*\nbasic_ifstream<_CharT, _Traits>::rdbuf() const\n{\n    return const_cast<basic_filebuf<char_type, traits_type>*>(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbool\nbasic_ifstream<_CharT, _Traits>::is_open() const\n{\n    return __sb_.is_open();\n}\n\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_ifstream<_CharT, _Traits>::open(const char* __s, ios_base::openmode __mode)\n{\n    if (__sb_.open(__s, __mode | ios_base::in))\n        this->clear();\n    else\n        this->setstate(ios_base::failbit);\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_ifstream<_CharT, _Traits>::open(const string& __s, ios_base::openmode __mode)\n{\n    if (__sb_.open(__s, __mode | ios_base::in))\n        this->clear();\n    else\n        this->setstate(ios_base::failbit);\n}\n#endif\n\ntemplate <class _CharT, class _Traits>\ninline\nvoid\nbasic_ifstream<_CharT, _Traits>::close()\n{\n    if (__sb_.close() == 0)\n        this->setstate(ios_base::failbit);\n}\n\n// basic_ofstream\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_ofstream\n    : public basic_ostream<_CharT, _Traits>\n{\npublic:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ofstream();\n    _LIBCPP_INLINE_VISIBILITY\n    explicit basic_ofstream(const char* __s, ios_base::openmode __mode = ios_base::out);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit basic_ofstream(const string& __s, ios_base::openmode __mode = ios_base::out);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ofstream(basic_ofstream&& __rhs);\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ofstream& operator=(basic_ofstream&& __rhs);\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(basic_ofstream& __rhs);\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_filebuf<char_type, traits_type>* rdbuf() const;\n    _LIBCPP_INLINE_VISIBILITY\n    bool is_open() const;\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\n    void open(const char* __s, ios_base::openmode __mode = ios_base::out);\n    void open(const string& __s, ios_base::openmode __mode = ios_base::out);\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void close();\n\nprivate:\n    basic_filebuf<char_type, traits_type> __sb_;\n};\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ofstream<_CharT, _Traits>::basic_ofstream()\n    : basic_ostream<char_type, traits_type>(&__sb_)\n{\n}\n\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ofstream<_CharT, _Traits>::basic_ofstream(const char* __s, ios_base::openmode __mode)\n    : basic_ostream<char_type, traits_type>(&__sb_)\n{\n    if (__sb_.open(__s, __mode | ios_base::out) == 0)\n        this->setstate(ios_base::failbit);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ofstream<_CharT, _Traits>::basic_ofstream(const string& __s, ios_base::openmode __mode)\n    : basic_ostream<char_type, traits_type>(&__sb_)\n{\n    if (__sb_.open(__s, __mode | ios_base::out) == 0)\n        this->setstate(ios_base::failbit);\n}\n#endif\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ofstream<_CharT, _Traits>::basic_ofstream(basic_ofstream&& __rhs)\n    : basic_ostream<char_type, traits_type>(_VSTD::move(__rhs)),\n      __sb_(_VSTD::move(__rhs.__sb_))\n{\n    this->set_rdbuf(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_ofstream<_CharT, _Traits>&\nbasic_ofstream<_CharT, _Traits>::operator=(basic_ofstream&& __rhs)\n{\n    basic_ostream<char_type, traits_type>::operator=(_VSTD::move(__rhs));\n    __sb_ = _VSTD::move(__rhs.__sb_);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\ninline\nvoid\nbasic_ofstream<_CharT, _Traits>::swap(basic_ofstream& __rhs)\n{\n    basic_ostream<char_type, traits_type>::swap(__rhs);\n    __sb_.swap(__rhs.__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_ofstream<_CharT, _Traits>& __x, basic_ofstream<_CharT, _Traits>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_filebuf<_CharT, _Traits>*\nbasic_ofstream<_CharT, _Traits>::rdbuf() const\n{\n    return const_cast<basic_filebuf<char_type, traits_type>*>(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbool\nbasic_ofstream<_CharT, _Traits>::is_open() const\n{\n    return __sb_.is_open();\n}\n\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_ofstream<_CharT, _Traits>::open(const char* __s, ios_base::openmode __mode)\n{\n    if (__sb_.open(__s, __mode | ios_base::out))\n        this->clear();\n    else\n        this->setstate(ios_base::failbit);\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_ofstream<_CharT, _Traits>::open(const string& __s, ios_base::openmode __mode)\n{\n    if (__sb_.open(__s, __mode | ios_base::out))\n        this->clear();\n    else\n        this->setstate(ios_base::failbit);\n}\n#endif\n\ntemplate <class _CharT, class _Traits>\ninline\nvoid\nbasic_ofstream<_CharT, _Traits>::close()\n{\n    if (__sb_.close() == 0)\n        this->setstate(ios_base::failbit);\n}\n\n// basic_fstream\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_fstream\n    : public basic_iostream<_CharT, _Traits>\n{\npublic:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_fstream();\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\n    _LIBCPP_INLINE_VISIBILITY\n    explicit basic_fstream(const char* __s, ios_base::openmode __mode = ios_base::in | ios_base::out);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit basic_fstream(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out);\n#endif\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_fstream(basic_fstream&& __rhs);\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_fstream& operator=(basic_fstream&& __rhs);\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(basic_fstream& __rhs);\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_filebuf<char_type, traits_type>* rdbuf() const;\n    _LIBCPP_INLINE_VISIBILITY\n    bool is_open() const;\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\n    void open(const char* __s, ios_base::openmode __mode = ios_base::in | ios_base::out);\n    void open(const string& __s, ios_base::openmode __mode = ios_base::in | ios_base::out);\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void close();\n\nprivate:\n    basic_filebuf<char_type, traits_type> __sb_;\n};\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_fstream<_CharT, _Traits>::basic_fstream()\n    : basic_iostream<char_type, traits_type>(&__sb_)\n{\n}\n\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\ntemplate <class _CharT, class _Traits>\ninline\nbasic_fstream<_CharT, _Traits>::basic_fstream(const char* __s, ios_base::openmode __mode)\n    : basic_iostream<char_type, traits_type>(&__sb_)\n{\n    if (__sb_.open(__s, __mode) == 0)\n        this->setstate(ios_base::failbit);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_fstream<_CharT, _Traits>::basic_fstream(const string& __s, ios_base::openmode __mode)\n    : basic_iostream<char_type, traits_type>(&__sb_)\n{\n    if (__sb_.open(__s, __mode) == 0)\n        this->setstate(ios_base::failbit);\n}\n#endif\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_fstream<_CharT, _Traits>::basic_fstream(basic_fstream&& __rhs)\n    : basic_iostream<char_type, traits_type>(_VSTD::move(__rhs)),\n      __sb_(_VSTD::move(__rhs.__sb_))\n{\n    this->set_rdbuf(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_fstream<_CharT, _Traits>&\nbasic_fstream<_CharT, _Traits>::operator=(basic_fstream&& __rhs)\n{\n    basic_iostream<char_type, traits_type>::operator=(_VSTD::move(__rhs));\n    __sb_ = _VSTD::move(__rhs.__sb_);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\ninline\nvoid\nbasic_fstream<_CharT, _Traits>::swap(basic_fstream& __rhs)\n{\n    basic_iostream<char_type, traits_type>::swap(__rhs);\n    __sb_.swap(__rhs.__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_fstream<_CharT, _Traits>& __x, basic_fstream<_CharT, _Traits>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbasic_filebuf<_CharT, _Traits>*\nbasic_fstream<_CharT, _Traits>::rdbuf() const\n{\n    return const_cast<basic_filebuf<char_type, traits_type>*>(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline\nbool\nbasic_fstream<_CharT, _Traits>::is_open() const\n{\n    return __sb_.is_open();\n}\n\n#ifndef _LIBCPP_HAS_NO_GLOBAL_FILESYSTEM_NAMESPACE\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_fstream<_CharT, _Traits>::open(const char* __s, ios_base::openmode __mode)\n{\n    if (__sb_.open(__s, __mode))\n        this->clear();\n    else\n        this->setstate(ios_base::failbit);\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_fstream<_CharT, _Traits>::open(const string& __s, ios_base::openmode __mode)\n{\n    if (__sb_.open(__s, __mode))\n        this->clear();\n    else\n        this->setstate(ios_base::failbit);\n}\n#endif\n\ntemplate <class _CharT, class _Traits>\ninline\nvoid\nbasic_fstream<_CharT, _Traits>::close()\n{\n    if (__sb_.close() == 0)\n        this->setstate(ios_base::failbit);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_FSTREAM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional",
    "content": "// -*- C++ -*-\n//===------------------------ functional ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_FUNCTIONAL\n#define _LIBCPP_FUNCTIONAL\n\n/*\n    functional synopsis\n\nnamespace std\n{\n\ntemplate <class Arg, class Result>\nstruct unary_function\n{\n    typedef Arg    argument_type;\n    typedef Result result_type;\n};\n\ntemplate <class Arg1, class Arg2, class Result>\nstruct binary_function\n{\n    typedef Arg1   first_argument_type;\n    typedef Arg2   second_argument_type;\n    typedef Result result_type;\n};\n\ntemplate <class T>\nclass reference_wrapper\n    : public unary_function<T1, R> // if wrapping a unary functor\n    : public binary_function<T1, T2, R> // if wraping a binary functor\n{\npublic:\n    // types\n    typedef T type;\n    typedef see below result_type; // Not always defined\n\n    // construct/copy/destroy\n    reference_wrapper(T&) noexcept;\n    reference_wrapper(T&&) = delete; // do not bind to temps\n    reference_wrapper(const reference_wrapper<T>& x) noexcept;\n\n    // assignment\n    reference_wrapper& operator=(const reference_wrapper<T>& x) noexcept;\n\n    // access\n    operator T& () const noexcept;\n    T& get() const noexcept;\n\n    // invoke\n    template <class... ArgTypes>\n      typename result_of<T&(ArgTypes&&...)>::type\n          operator() (ArgTypes&&...) const;\n};\n\ntemplate <class T> reference_wrapper<T> ref(T& t) noexcept;\ntemplate <class T> void ref(const T&& t) = delete;\ntemplate <class T> reference_wrapper<T> ref(reference_wrapper<T>t) noexcept;\n\ntemplate <class T> reference_wrapper<const T> cref(const T& t) noexcept;\ntemplate <class T> void cref(const T&& t) = delete;\ntemplate <class T> reference_wrapper<const T> cref(reference_wrapper<T> t) noexcept;\n\ntemplate <class T> // <class T=void> in C++14\nstruct plus : binary_function<T, T, T>\n{\n    T operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct minus : binary_function<T, T, T>\n{\n    T operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct multiplies : binary_function<T, T, T>\n{\n    T operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct divides : binary_function<T, T, T>\n{\n    T operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct modulus : binary_function<T, T, T>\n{\n    T operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct negate : unary_function<T, T>\n{\n    T operator()(const T& x) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct equal_to : binary_function<T, T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct not_equal_to : binary_function<T, T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct greater : binary_function<T, T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct less : binary_function<T, T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct greater_equal : binary_function<T, T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct less_equal : binary_function<T, T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct logical_and : binary_function<T, T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct logical_or : binary_function<T, T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct logical_not : unary_function<T, bool>\n{\n    bool operator()(const T& x) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct bit_and : unary_function<T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct bit_or : unary_function<T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T> // <class T=void> in C++14\nstruct bit_xor : unary_function<T, bool>\n{\n    bool operator()(const T& x, const T& y) const;\n};\n\ntemplate <class T=void> // C++14\nstruct bit_xor : unary_function<T, bool>\n{\n    bool operator()(const T& x) const;\n};\n\ntemplate <class Predicate>\nclass unary_negate\n    : public unary_function<typename Predicate::argument_type, bool>\n{\npublic:\n    explicit unary_negate(const Predicate& pred);\n    bool operator()(const typename Predicate::argument_type& x) const;\n};\n\ntemplate <class Predicate> unary_negate<Predicate> not1(const Predicate& pred);\n\ntemplate <class Predicate>\nclass binary_negate\n    : public binary_function<typename Predicate::first_argument_type,\n                             typename Predicate::second_argument_type,\n                             bool>\n{\npublic:\n    explicit binary_negate(const Predicate& pred);\n    bool operator()(const typename Predicate::first_argument_type& x,\n                    const typename Predicate::second_argument_type& y) const;\n};\n\ntemplate <class Predicate> binary_negate<Predicate> not2(const Predicate& pred);\n\ntemplate <class F> unspecified not_fn(F&& f); // C++17\n\ntemplate<class T> struct is_bind_expression;\ntemplate<class T> struct is_placeholder;\n\n    // See C++14 20.9.9, Function object binders\ntemplate <class T> constexpr bool is_bind_expression_v\n  = is_bind_expression<T>::value; // C++17\ntemplate <class T> constexpr int is_placeholder_v\n  = is_placeholder<T>::value; // C++17\n\n\ntemplate<class Fn, class... BoundArgs>\n  unspecified bind(Fn&&, BoundArgs&&...);\ntemplate<class R, class Fn, class... BoundArgs>\n  unspecified bind(Fn&&, BoundArgs&&...);\n\nnamespace placeholders {\n  // M is the implementation-defined number of placeholders\n  extern unspecified _1;\n  extern unspecified _2;\n  .\n  .\n  .\n  extern unspecified _Mp;\n}\n\ntemplate <class Operation>\nclass binder1st     // deprecated in C++11, removed in C++17\n    : public unary_function<typename Operation::second_argument_type,\n                            typename Operation::result_type>\n{\nprotected:\n    Operation                               op;\n    typename Operation::first_argument_type value;\npublic:\n    binder1st(const Operation& x, const typename Operation::first_argument_type y);\n    typename Operation::result_type operator()(      typename Operation::second_argument_type& x) const;\n    typename Operation::result_type operator()(const typename Operation::second_argument_type& x) const;\n};\n\ntemplate <class Operation, class T>\nbinder1st<Operation> bind1st(const Operation& op, const T& x);  // deprecated in C++11, removed in C++17\n\ntemplate <class Operation>\nclass binder2nd     // deprecated in C++11, removed in C++17\n    : public unary_function<typename Operation::first_argument_type,\n                            typename Operation::result_type>\n{\nprotected:\n    Operation                                op;\n    typename Operation::second_argument_type value;\npublic:\n    binder2nd(const Operation& x, const typename Operation::second_argument_type y);\n    typename Operation::result_type operator()(      typename Operation::first_argument_type& x) const;\n    typename Operation::result_type operator()(const typename Operation::first_argument_type& x) const;\n};\n\ntemplate <class Operation, class T>\nbinder2nd<Operation> bind2nd(const Operation& op, const T& x);  // deprecated in C++11, removed in C++17\n\ntemplate <class Arg, class Result>      // deprecated in C++11, removed in C++17\nclass pointer_to_unary_function : public unary_function<Arg, Result>\n{\npublic:\n    explicit pointer_to_unary_function(Result (*f)(Arg));\n    Result operator()(Arg x) const;\n};\n\ntemplate <class Arg, class Result>\npointer_to_unary_function<Arg,Result> ptr_fun(Result (*f)(Arg));      // deprecated in C++11, removed in C++17\n\ntemplate <class Arg1, class Arg2, class Result>      // deprecated in C++11, removed in C++17\nclass pointer_to_binary_function : public binary_function<Arg1, Arg2, Result>\n{\npublic:\n    explicit pointer_to_binary_function(Result (*f)(Arg1, Arg2));\n    Result operator()(Arg1 x, Arg2 y) const;\n};\n\ntemplate <class Arg1, class Arg2, class Result>\npointer_to_binary_function<Arg1,Arg2,Result> ptr_fun(Result (*f)(Arg1,Arg2));      // deprecated in C++11, removed in C++17\n\ntemplate<class S, class T>      // deprecated in C++11, removed in C++17\nclass mem_fun_t : public unary_function<T*, S>\n{\npublic:\n    explicit mem_fun_t(S (T::*p)());\n    S operator()(T* p) const;\n};\n\ntemplate<class S, class T, class A>\nclass mem_fun1_t : public binary_function<T*, A, S>      // deprecated in C++11, removed in C++17\n{\npublic:\n    explicit mem_fun1_t(S (T::*p)(A));\n    S operator()(T* p, A x) const;\n};\n\ntemplate<class S, class T>          mem_fun_t<S,T>    mem_fun(S (T::*f)());      // deprecated in C++11, removed in C++17\ntemplate<class S, class T, class A> mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A));     // deprecated in C++11, removed in C++17\n\ntemplate<class S, class T>\nclass mem_fun_ref_t : public unary_function<T, S>      // deprecated in C++11, removed in C++17\n{\npublic:\n    explicit mem_fun_ref_t(S (T::*p)());\n    S operator()(T& p) const;\n};\n\ntemplate<class S, class T, class A>\nclass mem_fun1_ref_t : public binary_function<T, A, S>      // deprecated in C++11, removed in C++17\n{\npublic:\n    explicit mem_fun1_ref_t(S (T::*p)(A));\n    S operator()(T& p, A x) const;\n};\n\ntemplate<class S, class T>          mem_fun_ref_t<S,T>    mem_fun_ref(S (T::*f)());      // deprecated in C++11, removed in C++17\ntemplate<class S, class T, class A> mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A));     // deprecated in C++11, removed in C++17\n\ntemplate <class S, class T>\nclass const_mem_fun_t : public unary_function<const T*, S>      // deprecated in C++11, removed in C++17\n{\npublic:\n    explicit const_mem_fun_t(S (T::*p)() const);\n    S operator()(const T* p) const;\n};\n\ntemplate <class S, class T, class A>\nclass const_mem_fun1_t : public binary_function<const T*, A, S>      // deprecated in C++11, removed in C++17\n{\npublic:\n    explicit const_mem_fun1_t(S (T::*p)(A) const);\n    S operator()(const T* p, A x) const;\n};\n\ntemplate <class S, class T>          const_mem_fun_t<S,T>    mem_fun(S (T::*f)() const);      // deprecated in C++11, removed in C++17\ntemplate <class S, class T, class A> const_mem_fun1_t<S,T,A> mem_fun(S (T::*f)(A) const);     // deprecated in C++11, removed in C++17\n\ntemplate <class S, class T>\nclass const_mem_fun_ref_t : public unary_function<T, S>      // deprecated in C++11, removed in C++17\n{\npublic:\n    explicit const_mem_fun_ref_t(S (T::*p)() const);\n    S operator()(const T& p) const;\n};\n\ntemplate <class S, class T, class A>\nclass const_mem_fun1_ref_t : public binary_function<T, A, S>      // deprecated in C++11, removed in C++17\n{\npublic:\n    explicit const_mem_fun1_ref_t(S (T::*p)(A) const);\n    S operator()(const T& p, A x) const;\n};\n\ntemplate <class S, class T>          const_mem_fun_ref_t<S,T>    mem_fun_ref(S (T::*f)() const);   // deprecated in C++11, removed in C++17\ntemplate <class S, class T, class A> const_mem_fun1_ref_t<S,T,A> mem_fun_ref(S (T::*f)(A) const);  // deprecated in C++11, removed in C++17\n\ntemplate<class R, class T> unspecified mem_fn(R T::*);\n\nclass bad_function_call\n    : public exception\n{\n};\n\ntemplate<class> class function; // undefined\n\ntemplate<class R, class... ArgTypes>\nclass function<R(ArgTypes...)>\n  : public unary_function<T1, R>      // iff sizeof...(ArgTypes) == 1 and\n                                      // ArgTypes contains T1\n  : public binary_function<T1, T2, R> // iff sizeof...(ArgTypes) == 2 and\n                                      // ArgTypes contains T1 and T2\n{\npublic:\n    typedef R result_type;\n\n    // construct/copy/destroy:\n    function() noexcept;\n    function(nullptr_t) noexcept;\n    function(const function&);\n    function(function&&) noexcept;\n    template<class F>\n      function(F);\n    template<Allocator Alloc>\n      function(allocator_arg_t, const Alloc&) noexcept;            // removed in C++17\n    template<Allocator Alloc>\n      function(allocator_arg_t, const Alloc&, nullptr_t) noexcept; // removed in C++17\n    template<Allocator Alloc>\n      function(allocator_arg_t, const Alloc&, const function&);    // removed in C++17\n    template<Allocator Alloc>\n      function(allocator_arg_t, const Alloc&, function&&);         // removed in C++17\n    template<class F, Allocator Alloc>\n      function(allocator_arg_t, const Alloc&, F);                  // removed in C++17\n\n    function& operator=(const function&);\n    function& operator=(function&&) noexcept;\n    function& operator=(nullptr_t) noexcept;\n    template<class F>\n      function& operator=(F&&);\n    template<class F>\n      function& operator=(reference_wrapper<F>) noexcept;\n\n    ~function();\n\n    // function modifiers:\n    void swap(function&) noexcept;\n    template<class F, class Alloc>\n      void assign(F&&, const Alloc&);                 // Removed in C++17\n\n    // function capacity:\n    explicit operator bool() const noexcept;\n\n    // function invocation:\n    R operator()(ArgTypes...) const;\n\n    // function target access:\n    const std::type_info& target_type() const noexcept;\n    template <typename T>       T* target() noexcept;\n    template <typename T> const T* target() const noexcept;\n};\n\n// Null pointer comparisons:\ntemplate <class R, class ... ArgTypes>\n  bool operator==(const function<R(ArgTypes...)>&, nullptr_t) noexcept;\n\ntemplate <class R, class ... ArgTypes>\n  bool operator==(nullptr_t, const function<R(ArgTypes...)>&) noexcept;\n\ntemplate <class R, class ... ArgTypes>\n  bool operator!=(const function<R(ArgTypes...)>&, nullptr_t) noexcept;\n\ntemplate <class  R, class ... ArgTypes>\n  bool operator!=(nullptr_t, const function<R(ArgTypes...)>&) noexcept;\n\n// specialized algorithms:\ntemplate <class  R, class ... ArgTypes>\n  void swap(function<R(ArgTypes...)>&, function<R(ArgTypes...)>&) noexcept;\n\ntemplate <class T> struct hash;\n\ntemplate <> struct hash<bool>;\ntemplate <> struct hash<char>;\ntemplate <> struct hash<signed char>;\ntemplate <> struct hash<unsigned char>;\ntemplate <> struct hash<char16_t>;\ntemplate <> struct hash<char32_t>;\ntemplate <> struct hash<wchar_t>;\ntemplate <> struct hash<short>;\ntemplate <> struct hash<unsigned short>;\ntemplate <> struct hash<int>;\ntemplate <> struct hash<unsigned int>;\ntemplate <> struct hash<long>;\ntemplate <> struct hash<long long>;\ntemplate <> struct hash<unsigned long>;\ntemplate <> struct hash<unsigned long long>;\n\ntemplate <> struct hash<float>;\ntemplate <> struct hash<double>;\ntemplate <> struct hash<long double>;\n\ntemplate<class T> struct hash<T*>;\ntemplate <> struct hash<nullptr_t>;  // C++17\n\n}  // std\n\nPOLICY:  For non-variadic implementations, the number of arguments is limited\n         to 3.  It is hoped that the need for non-variadic implementations\n         will be minimal.\n\n*/\n\n#include <__config>\n#include <type_traits>\n#include <typeinfo>\n#include <exception>\n#include <memory>\n#include <tuple>\n#include <utility>\n\n#include <__functional_base>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS plus : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x + __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS plus<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) + _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS minus : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x - __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS minus<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) - _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS multiplies : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x * __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS multiplies<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) * _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS divides : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x / __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS divides<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) / _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS modulus : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x % __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS modulus<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) % _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS negate : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return -__x;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS negate<void>\n{\n    template <class _Tp>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_Tp&& __x) const\n    _NOEXCEPT_(noexcept(- _VSTD::forward<_Tp>(__x)))\n    -> decltype        (- _VSTD::forward<_Tp>(__x))\n        { return        - _VSTD::forward<_Tp>(__x); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS equal_to : binary_function<_Tp, _Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x == __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS equal_to<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) == _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS not_equal_to : binary_function<_Tp, _Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x != __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS not_equal_to<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) != _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS greater : binary_function<_Tp, _Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x > __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS greater<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) > _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n// less in <__functional_base>\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS greater_equal : binary_function<_Tp, _Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x >= __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS greater_equal<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) >= _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS less_equal : binary_function<_Tp, _Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x <= __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS less_equal<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) <= _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS logical_and : binary_function<_Tp, _Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x && __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS logical_and<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) && _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS logical_or : binary_function<_Tp, _Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x || __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS logical_or<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) || _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS logical_not : unary_function<_Tp, bool>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Tp& __x) const\n        {return !__x;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS logical_not<void>\n{\n    template <class _Tp>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_Tp&& __x) const\n    _NOEXCEPT_(noexcept(!_VSTD::forward<_Tp>(__x)))\n    -> decltype        (!_VSTD::forward<_Tp>(__x))\n        { return        !_VSTD::forward<_Tp>(__x); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS bit_and : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x & __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS bit_and<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) & _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS bit_or : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x | __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS bit_or<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) | _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\n#else\ntemplate <class _Tp>\n#endif\nstruct _LIBCPP_TEMPLATE_VIS bit_xor : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x ^ __y;}\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS bit_xor<void>\n{\n    template <class _T1, class _T2>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_T1&& __t, _T2&& __u) const\n    _NOEXCEPT_(noexcept(_VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u)))\n    -> decltype        (_VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u))\n        { return        _VSTD::forward<_T1>(__t) ^ _VSTD::forward<_T2>(__u); }\n    typedef void is_transparent;\n};\n#endif\n\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp = void>\nstruct _LIBCPP_TEMPLATE_VIS bit_not : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return ~__x;}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS bit_not<void>\n{\n    template <class _Tp>\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_Tp&& __x) const\n    _NOEXCEPT_(noexcept(~_VSTD::forward<_Tp>(__x)))\n    -> decltype        (~_VSTD::forward<_Tp>(__x))\n        { return        ~_VSTD::forward<_Tp>(__x); }\n    typedef void is_transparent;\n};\n#endif\n\ntemplate <class _Predicate>\nclass _LIBCPP_TEMPLATE_VIS unary_negate\n    : public unary_function<typename _Predicate::argument_type, bool>\n{\n    _Predicate __pred_;\npublic:\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    explicit unary_negate(const _Predicate& __pred)\n        : __pred_(__pred) {}\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const typename _Predicate::argument_type& __x) const\n        {return !__pred_(__x);}\n};\n\ntemplate <class _Predicate>\ninline _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nunary_negate<_Predicate>\nnot1(const _Predicate& __pred) {return unary_negate<_Predicate>(__pred);}\n\ntemplate <class _Predicate>\nclass _LIBCPP_TEMPLATE_VIS binary_negate\n    : public binary_function<typename _Predicate::first_argument_type,\n                             typename _Predicate::second_argument_type,\n                             bool>\n{\n    _Predicate __pred_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit _LIBCPP_CONSTEXPR_AFTER_CXX11 \n    binary_negate(const _Predicate& __pred) : __pred_(__pred) {}\n\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const typename _Predicate::first_argument_type& __x,\n                    const typename _Predicate::second_argument_type& __y) const\n        {return !__pred_(__x, __y);}\n};\n\ntemplate <class _Predicate>\ninline _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbinary_negate<_Predicate>\nnot2(const _Predicate& __pred) {return binary_negate<_Predicate>(__pred);}\n\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)\ntemplate <class __Operation>\nclass _LIBCPP_TEMPLATE_VIS binder1st\n    : public unary_function<typename __Operation::second_argument_type,\n                            typename __Operation::result_type>\n{\nprotected:\n    __Operation                               op;\n    typename __Operation::first_argument_type value;\npublic:\n    _LIBCPP_INLINE_VISIBILITY binder1st(const __Operation& __x,\n                               const typename __Operation::first_argument_type __y)\n        : op(__x), value(__y) {}\n    _LIBCPP_INLINE_VISIBILITY typename __Operation::result_type operator()\n        (typename __Operation::second_argument_type& __x) const\n            {return op(value, __x);}\n    _LIBCPP_INLINE_VISIBILITY typename __Operation::result_type operator()\n        (const typename __Operation::second_argument_type& __x) const\n            {return op(value, __x);}\n};\n\ntemplate <class __Operation, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbinder1st<__Operation>\nbind1st(const __Operation& __op, const _Tp& __x)\n    {return binder1st<__Operation>(__op, __x);}\n\ntemplate <class __Operation>\nclass _LIBCPP_TEMPLATE_VIS binder2nd\n    : public unary_function<typename __Operation::first_argument_type,\n                            typename __Operation::result_type>\n{\nprotected:\n    __Operation                                op;\n    typename __Operation::second_argument_type value;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    binder2nd(const __Operation& __x, const typename __Operation::second_argument_type __y)\n        : op(__x), value(__y) {}\n    _LIBCPP_INLINE_VISIBILITY typename __Operation::result_type operator()\n        (      typename __Operation::first_argument_type& __x) const\n            {return op(__x, value);}\n    _LIBCPP_INLINE_VISIBILITY typename __Operation::result_type operator()\n        (const typename __Operation::first_argument_type& __x) const\n            {return op(__x, value);}\n};\n\ntemplate <class __Operation, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbinder2nd<__Operation>\nbind2nd(const __Operation& __op, const _Tp& __x)\n    {return binder2nd<__Operation>(__op, __x);}\n\ntemplate <class _Arg, class _Result>\nclass _LIBCPP_TEMPLATE_VIS pointer_to_unary_function\n    : public unary_function<_Arg, _Result>\n{\n    _Result (*__f_)(_Arg);\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit pointer_to_unary_function(_Result (*__f)(_Arg))\n        : __f_(__f) {}\n    _LIBCPP_INLINE_VISIBILITY _Result operator()(_Arg __x) const\n        {return __f_(__x);}\n};\n\ntemplate <class _Arg, class _Result>\ninline _LIBCPP_INLINE_VISIBILITY\npointer_to_unary_function<_Arg,_Result>\nptr_fun(_Result (*__f)(_Arg))\n    {return pointer_to_unary_function<_Arg,_Result>(__f);}\n\ntemplate <class _Arg1, class _Arg2, class _Result>\nclass _LIBCPP_TEMPLATE_VIS pointer_to_binary_function\n    : public binary_function<_Arg1, _Arg2, _Result>\n{\n    _Result (*__f_)(_Arg1, _Arg2);\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit pointer_to_binary_function(_Result (*__f)(_Arg1, _Arg2))\n        : __f_(__f) {}\n    _LIBCPP_INLINE_VISIBILITY _Result operator()(_Arg1 __x, _Arg2 __y) const\n        {return __f_(__x, __y);}\n};\n\ntemplate <class _Arg1, class _Arg2, class _Result>\ninline _LIBCPP_INLINE_VISIBILITY\npointer_to_binary_function<_Arg1,_Arg2,_Result>\nptr_fun(_Result (*__f)(_Arg1,_Arg2))\n    {return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__f);}\n\ntemplate<class _Sp, class _Tp>\nclass _LIBCPP_TEMPLATE_VIS mem_fun_t : public unary_function<_Tp*, _Sp>\n{\n    _Sp (_Tp::*__p_)();\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit mem_fun_t(_Sp (_Tp::*__p)())\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY _Sp operator()(_Tp* __p) const\n        {return (__p->*__p_)();}\n};\n\ntemplate<class _Sp, class _Tp, class _Ap>\nclass _LIBCPP_TEMPLATE_VIS mem_fun1_t : public binary_function<_Tp*, _Ap, _Sp>\n{\n    _Sp (_Tp::*__p_)(_Ap);\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit mem_fun1_t(_Sp (_Tp::*__p)(_Ap))\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY _Sp operator()(_Tp* __p, _Ap __x) const\n        {return (__p->*__p_)(__x);}\n};\n\ntemplate<class _Sp, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nmem_fun_t<_Sp,_Tp>\nmem_fun(_Sp (_Tp::*__f)())\n    {return mem_fun_t<_Sp,_Tp>(__f);}\n\ntemplate<class _Sp, class _Tp, class _Ap>\ninline _LIBCPP_INLINE_VISIBILITY\nmem_fun1_t<_Sp,_Tp,_Ap>\nmem_fun(_Sp (_Tp::*__f)(_Ap))\n    {return mem_fun1_t<_Sp,_Tp,_Ap>(__f);}\n\ntemplate<class _Sp, class _Tp>\nclass _LIBCPP_TEMPLATE_VIS mem_fun_ref_t : public unary_function<_Tp, _Sp>\n{\n    _Sp (_Tp::*__p_)();\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit mem_fun_ref_t(_Sp (_Tp::*__p)())\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY _Sp operator()(_Tp& __p) const\n        {return (__p.*__p_)();}\n};\n\ntemplate<class _Sp, class _Tp, class _Ap>\nclass _LIBCPP_TEMPLATE_VIS mem_fun1_ref_t : public binary_function<_Tp, _Ap, _Sp>\n{\n    _Sp (_Tp::*__p_)(_Ap);\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit mem_fun1_ref_t(_Sp (_Tp::*__p)(_Ap))\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY _Sp operator()(_Tp& __p, _Ap __x) const\n        {return (__p.*__p_)(__x);}\n};\n\ntemplate<class _Sp, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nmem_fun_ref_t<_Sp,_Tp>\nmem_fun_ref(_Sp (_Tp::*__f)())\n    {return mem_fun_ref_t<_Sp,_Tp>(__f);}\n\ntemplate<class _Sp, class _Tp, class _Ap>\ninline _LIBCPP_INLINE_VISIBILITY\nmem_fun1_ref_t<_Sp,_Tp,_Ap>\nmem_fun_ref(_Sp (_Tp::*__f)(_Ap))\n    {return mem_fun1_ref_t<_Sp,_Tp,_Ap>(__f);}\n\ntemplate <class _Sp, class _Tp>\nclass _LIBCPP_TEMPLATE_VIS const_mem_fun_t : public unary_function<const _Tp*, _Sp>\n{\n    _Sp (_Tp::*__p_)() const;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit const_mem_fun_t(_Sp (_Tp::*__p)() const)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY _Sp operator()(const _Tp* __p) const\n        {return (__p->*__p_)();}\n};\n\ntemplate <class _Sp, class _Tp, class _Ap>\nclass _LIBCPP_TEMPLATE_VIS const_mem_fun1_t : public binary_function<const _Tp*, _Ap, _Sp>\n{\n    _Sp (_Tp::*__p_)(_Ap) const;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit const_mem_fun1_t(_Sp (_Tp::*__p)(_Ap) const)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY _Sp operator()(const _Tp* __p, _Ap __x) const\n        {return (__p->*__p_)(__x);}\n};\n\ntemplate <class _Sp, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconst_mem_fun_t<_Sp,_Tp>\nmem_fun(_Sp (_Tp::*__f)() const)\n    {return const_mem_fun_t<_Sp,_Tp>(__f);}\n\ntemplate <class _Sp, class _Tp, class _Ap>\ninline _LIBCPP_INLINE_VISIBILITY\nconst_mem_fun1_t<_Sp,_Tp,_Ap>\nmem_fun(_Sp (_Tp::*__f)(_Ap) const)\n    {return const_mem_fun1_t<_Sp,_Tp,_Ap>(__f);}\n\ntemplate <class _Sp, class _Tp>\nclass _LIBCPP_TEMPLATE_VIS const_mem_fun_ref_t : public unary_function<_Tp, _Sp>\n{\n    _Sp (_Tp::*__p_)() const;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit const_mem_fun_ref_t(_Sp (_Tp::*__p)() const)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY _Sp operator()(const _Tp& __p) const\n        {return (__p.*__p_)();}\n};\n\ntemplate <class _Sp, class _Tp, class _Ap>\nclass _LIBCPP_TEMPLATE_VIS const_mem_fun1_ref_t\n    : public binary_function<_Tp, _Ap, _Sp>\n{\n    _Sp (_Tp::*__p_)(_Ap) const;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit const_mem_fun1_ref_t(_Sp (_Tp::*__p)(_Ap) const)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY _Sp operator()(const _Tp& __p, _Ap __x) const\n        {return (__p.*__p_)(__x);}\n};\n\ntemplate <class _Sp, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconst_mem_fun_ref_t<_Sp,_Tp>\nmem_fun_ref(_Sp (_Tp::*__f)() const)\n    {return const_mem_fun_ref_t<_Sp,_Tp>(__f);}\n\ntemplate <class _Sp, class _Tp, class _Ap>\ninline _LIBCPP_INLINE_VISIBILITY\nconst_mem_fun1_ref_t<_Sp,_Tp,_Ap>\nmem_fun_ref(_Sp (_Tp::*__f)(_Ap) const)\n    {return const_mem_fun1_ref_t<_Sp,_Tp,_Ap>(__f);}\n#endif\n\n////////////////////////////////////////////////////////////////////////////////\n//                                MEMFUN\n//==============================================================================\n\ntemplate <class _Tp>\nclass __mem_fn\n    : public __weak_result_type<_Tp>\n{\npublic:\n    // types\n    typedef _Tp type;\nprivate:\n    type __f_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY __mem_fn(type __f) _NOEXCEPT : __f_(__f) {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    // invoke\n    template <class... _ArgTypes>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return<type, _ArgTypes...>::type\n    operator() (_ArgTypes&&... __args) const {\n        return __invoke(__f_, _VSTD::forward<_ArgTypes>(__args)...);\n    }\n#else\n\n    template <class _A0>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return0<type, _A0>::type\n    operator() (_A0& __a0) const {\n        return __invoke(__f_, __a0);\n    }\n\n    template <class _A0>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return0<type, _A0 const>::type\n    operator() (_A0 const& __a0) const {\n        return __invoke(__f_, __a0);\n    }\n\n    template <class _A0, class _A1>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return1<type, _A0, _A1>::type\n    operator() (_A0& __a0, _A1& __a1) const {\n        return __invoke(__f_, __a0, __a1);\n    }\n\n    template <class _A0, class _A1>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return1<type, _A0 const, _A1>::type\n    operator() (_A0 const& __a0, _A1& __a1) const {\n        return __invoke(__f_, __a0, __a1);\n    }\n\n    template <class _A0, class _A1>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return1<type, _A0, _A1 const>::type\n    operator() (_A0& __a0, _A1 const& __a1) const {\n        return __invoke(__f_, __a0, __a1);\n    }\n\n    template <class _A0, class _A1>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return1<type, _A0 const, _A1 const>::type\n    operator() (_A0 const& __a0, _A1 const& __a1) const {\n        return __invoke(__f_, __a0, __a1);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0, _A1, _A2>::type\n    operator() (_A0& __a0, _A1& __a1, _A2& __a2) const {\n        return __invoke(__f_, __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0 const, _A1, _A2>::type\n    operator() (_A0 const& __a0, _A1& __a1, _A2& __a2) const {\n        return __invoke(__f_, __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0, _A1 const, _A2>::type\n    operator() (_A0& __a0, _A1 const& __a1, _A2& __a2) const {\n        return __invoke(__f_, __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0, _A1, _A2 const>::type\n    operator() (_A0& __a0, _A1& __a1, _A2 const& __a2) const {\n        return __invoke(__f_, __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0 const, _A1 const, _A2>::type\n    operator() (_A0 const& __a0, _A1 const& __a1, _A2& __a2) const {\n        return __invoke(__f_, __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0 const, _A1, _A2 const>::type\n    operator() (_A0 const& __a0, _A1& __a1, _A2 const& __a2) const {\n        return __invoke(__f_, __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0, _A1 const, _A2 const>::type\n    operator() (_A0& __a0, _A1 const& __a1, _A2 const& __a2) const {\n        return __invoke(__f_, __a0, __a1, __a2);\n    }\n\n    template <class _A0, class _A1, class _A2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename __invoke_return2<type, _A0 const, _A1 const, _A2 const>::type\n    operator() (_A0 const& __a0, _A1 const& __a1, _A2 const& __a2) const {\n        return __invoke(__f_, __a0, __a1, __a2);\n    }\n#endif\n};\n\ntemplate<class _Rp, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n__mem_fn<_Rp _Tp::*>\nmem_fn(_Rp _Tp::* __pm) _NOEXCEPT\n{\n    return __mem_fn<_Rp _Tp::*>(__pm);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//                                FUNCTION\n//==============================================================================\n\n// bad_function_call\n\nclass _LIBCPP_EXCEPTION_ABI bad_function_call\n    : public exception\n{\n#ifdef _LIBCPP_ABI_BAD_FUNCTION_CALL_KEY_FUNCTION\npublic:\n    virtual ~bad_function_call() _NOEXCEPT;\n\n    virtual const char* what() const _NOEXCEPT;\n#endif\n};\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_bad_function_call()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw bad_function_call();\n#else\n\t_VSTD::abort();\n#endif\n}\n\ntemplate<class _Fp> class _LIBCPP_TEMPLATE_VIS function; // undefined\n\nnamespace __function\n{\n\ntemplate<class _Rp>\nstruct __maybe_derive_from_unary_function\n{\n};\n\ntemplate<class _Rp, class _A1>\nstruct __maybe_derive_from_unary_function<_Rp(_A1)>\n    : public unary_function<_A1, _Rp>\n{\n};\n\ntemplate<class _Rp>\nstruct __maybe_derive_from_binary_function\n{\n};\n\ntemplate<class _Rp, class _A1, class _A2>\nstruct __maybe_derive_from_binary_function<_Rp(_A1, _A2)>\n    : public binary_function<_A1, _A2, _Rp>\n{\n};\n\ntemplate <class _Fp>\n_LIBCPP_INLINE_VISIBILITY\nbool __not_null(_Fp const&) { return true; }\n\ntemplate <class _Fp>\n_LIBCPP_INLINE_VISIBILITY\nbool __not_null(_Fp* __ptr) { return __ptr; }\n\ntemplate <class _Ret, class _Class>\n_LIBCPP_INLINE_VISIBILITY\nbool __not_null(_Ret _Class::*__ptr) { return __ptr; }\n\ntemplate <class _Fp>\n_LIBCPP_INLINE_VISIBILITY\nbool __not_null(function<_Fp> const& __f) { return !!__f; }\n\n} // namespace __function\n\n#ifndef _LIBCPP_CXX03_LANG\n\nnamespace __function {\n\ntemplate<class _Fp> class __base;\n\ntemplate<class _Rp, class ..._ArgTypes>\nclass __base<_Rp(_ArgTypes...)>\n{\n    __base(const __base&);\n    __base& operator=(const __base&);\npublic:\n    _LIBCPP_INLINE_VISIBILITY __base() {}\n    _LIBCPP_INLINE_VISIBILITY virtual ~__base() {}\n    virtual __base* __clone() const = 0;\n    virtual void __clone(__base*) const = 0;\n    virtual void destroy() _NOEXCEPT = 0;\n    virtual void destroy_deallocate() _NOEXCEPT = 0;\n    virtual _Rp operator()(_ArgTypes&& ...) = 0;\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const _NOEXCEPT = 0;\n    virtual const std::type_info& target_type() const _NOEXCEPT = 0;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _FD, class _Alloc, class _FB> class __func;\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nclass __func<_Fp, _Alloc, _Rp(_ArgTypes...)>\n    : public  __base<_Rp(_ArgTypes...)>\n{\n    __compressed_pair<_Fp, _Alloc> __f_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __func(_Fp&& __f)\n        : __f_(piecewise_construct, _VSTD::forward_as_tuple(_VSTD::move(__f)),\n                                    _VSTD::forward_as_tuple()) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __func(const _Fp& __f, const _Alloc& __a)\n        : __f_(piecewise_construct, _VSTD::forward_as_tuple(__f),\n                                    _VSTD::forward_as_tuple(__a)) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __func(const _Fp& __f, _Alloc&& __a)\n        : __f_(piecewise_construct, _VSTD::forward_as_tuple(__f),\n                                    _VSTD::forward_as_tuple(_VSTD::move(__a))) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __func(_Fp&& __f, _Alloc&& __a)\n        : __f_(piecewise_construct, _VSTD::forward_as_tuple(_VSTD::move(__f)),\n                                    _VSTD::forward_as_tuple(_VSTD::move(__a))) {}\n    virtual __base<_Rp(_ArgTypes...)>* __clone() const;\n    virtual void __clone(__base<_Rp(_ArgTypes...)>*) const;\n    virtual void destroy() _NOEXCEPT;\n    virtual void destroy_deallocate() _NOEXCEPT;\n    virtual _Rp operator()(_ArgTypes&& ... __arg);\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* target(const type_info&) const _NOEXCEPT;\n    virtual const std::type_info& target_type() const _NOEXCEPT;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\n__base<_Rp(_ArgTypes...)>*\n__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::__clone() const\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    typedef __allocator_destructor<_Ap> _Dp;\n    unique_ptr<__func, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n    ::new (__hold.get()) __func(__f_.first(), _Alloc(__a));\n    return __hold.release();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nvoid\n__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::__clone(__base<_Rp(_ArgTypes...)>* __p) const\n{\n    ::new (__p) __func(__f_.first(), __f_.second());\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nvoid\n__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy() _NOEXCEPT\n{\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nvoid\n__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy_deallocate() _NOEXCEPT\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __func>::type _Ap;\n    _Ap __a(__f_.second());\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n    __a.deallocate(this, 1);\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\n_Rp\n__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::operator()(_ArgTypes&& ... __arg)\n{\n    typedef __invoke_void_return_wrapper<_Rp> _Invoker;\n    return _Invoker::__call(__f_.first(), _VSTD::forward<_ArgTypes>(__arg)...);\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nconst void*\n__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::target(const type_info& __ti) const _NOEXCEPT\n{\n    if (__ti == typeid(_Fp))\n        return &__f_.first();\n    return (const void*)0;\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nconst std::type_info&\n__func<_Fp, _Alloc, _Rp(_ArgTypes...)>::target_type() const _NOEXCEPT\n{\n    return typeid(_Fp);\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\n}  // __function\n\ntemplate<class _Rp, class ..._ArgTypes>\nclass _LIBCPP_TEMPLATE_VIS function<_Rp(_ArgTypes...)>\n    : public __function::__maybe_derive_from_unary_function<_Rp(_ArgTypes...)>,\n      public __function::__maybe_derive_from_binary_function<_Rp(_ArgTypes...)>\n{\n    typedef __function::__base<_Rp(_ArgTypes...)> __base;\n    typename aligned_storage<3*sizeof(void*)>::type __buf_;\n    __base* __f_;\n\n    _LIBCPP_NO_CFI static __base *__as_base(void *p) {\n      return reinterpret_cast<__base*>(p);\n    }\n\n    template <class _Fp, bool = !is_same<_Fp, function>::value &&\n                                __invokable<_Fp&, _ArgTypes...>::value>\n        struct __callable;\n    template <class _Fp>\n        struct __callable<_Fp, true>\n        {\n            static const bool value = is_same<void, _Rp>::value ||\n                is_convertible<typename __invoke_of<_Fp&, _ArgTypes...>::type,\n                               _Rp>::value;\n        };\n    template <class _Fp>\n        struct __callable<_Fp, false>\n        {\n            static const bool value = false;\n        };\npublic:\n    typedef _Rp result_type;\n\n    // construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY\n    function() _NOEXCEPT : __f_(0) {}\n    _LIBCPP_INLINE_VISIBILITY\n    function(nullptr_t) _NOEXCEPT : __f_(0) {}\n    function(const function&);\n    function(function&&) _NOEXCEPT;\n    template<class _Fp, class = typename enable_if<\n        __callable<_Fp>::value && !is_same<_Fp, function>::value\n    >::type>\n    function(_Fp);\n\n#if _LIBCPP_STD_VER <= 14\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&) _NOEXCEPT : __f_(0) {}\n    template<class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      function(allocator_arg_t, const _Alloc&, nullptr_t) _NOEXCEPT : __f_(0) {}\n    template<class _Alloc>\n      function(allocator_arg_t, const _Alloc&, const function&);\n    template<class _Alloc>\n      function(allocator_arg_t, const _Alloc&, function&&);\n    template<class _Fp, class _Alloc, class = typename enable_if<__callable<_Fp>::value>::type>\n      function(allocator_arg_t, const _Alloc& __a, _Fp __f);\n#endif\n\n    function& operator=(const function&);\n    function& operator=(function&&) _NOEXCEPT;\n    function& operator=(nullptr_t) _NOEXCEPT;\n    template<class _Fp>\n      typename enable_if\n      <\n        __callable<typename decay<_Fp>::type>::value &&\n        !is_same<typename remove_reference<_Fp>::type, function>::value,\n        function&\n      >::type\n      operator=(_Fp&&);\n\n    ~function();\n\n    // function modifiers:\n    void swap(function&) _NOEXCEPT;\n\n#if _LIBCPP_STD_VER <= 14\n    template<class _Fp, class _Alloc>\n      _LIBCPP_INLINE_VISIBILITY\n      void assign(_Fp&& __f, const _Alloc& __a)\n        {function(allocator_arg, __a, _VSTD::forward<_Fp>(__f)).swap(*this);}\n#endif\n\n    // function capacity:\n    _LIBCPP_INLINE_VISIBILITY\n        _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT {return __f_;}\n\n    // deleted overloads close possible hole in the type system\n    template<class _R2, class... _ArgTypes2>\n      bool operator==(const function<_R2(_ArgTypes2...)>&) const = delete;\n    template<class _R2, class... _ArgTypes2>\n      bool operator!=(const function<_R2(_ArgTypes2...)>&) const = delete;\npublic:\n    // function invocation:\n    _Rp operator()(_ArgTypes...) const;\n\n#ifndef _LIBCPP_NO_RTTI\n    // function target access:\n    const std::type_info& target_type() const _NOEXCEPT;\n    template <typename _Tp> _Tp* target() _NOEXCEPT;\n    template <typename _Tp> const _Tp* target() const _NOEXCEPT;\n#endif  // _LIBCPP_NO_RTTI\n};\n\ntemplate<class _Rp, class ..._ArgTypes>\nfunction<_Rp(_ArgTypes...)>::function(const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if ((void *)__f.__f_ == &__f.__buf_)\n    {\n        __f_ = __as_base(&__buf_);\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n\n#if _LIBCPP_STD_VER <= 14\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <class _Alloc>\nfunction<_Rp(_ArgTypes...)>::function(allocator_arg_t, const _Alloc&,\n                                     const function& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if ((void *)__f.__f_ == &__f.__buf_)\n    {\n        __f_ = __as_base(&__buf_);\n        __f.__f_->__clone(__f_);\n    }\n    else\n        __f_ = __f.__f_->__clone();\n}\n#endif\n\ntemplate<class _Rp, class ..._ArgTypes>\nfunction<_Rp(_ArgTypes...)>::function(function&& __f) _NOEXCEPT\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if ((void *)__f.__f_ == &__f.__buf_)\n    {\n        __f_ = __as_base(&__buf_);\n        __f.__f_->__clone(__f_);\n    }\n    else\n    {\n        __f_ = __f.__f_;\n        __f.__f_ = 0;\n    }\n}\n\n#if _LIBCPP_STD_VER <= 14\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <class _Alloc>\nfunction<_Rp(_ArgTypes...)>::function(allocator_arg_t, const _Alloc&,\n                                     function&& __f)\n{\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if ((void *)__f.__f_ == &__f.__buf_)\n    {\n        __f_ = __as_base(&__buf_);\n        __f.__f_->__clone(__f_);\n    }\n    else\n    {\n        __f_ = __f.__f_;\n        __f.__f_ = 0;\n    }\n}\n#endif\n\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <class _Fp, class>\nfunction<_Rp(_ArgTypes...)>::function(_Fp __f)\n    : __f_(0)\n{\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, allocator<_Fp>, _Rp(_ArgTypes...)> _FF;\n        if (sizeof(_FF) <= sizeof(__buf_) && is_nothrow_copy_constructible<_Fp>::value)\n        {\n            __f_ = ::new((void*)&__buf_) _FF(_VSTD::move(__f));\n        }\n        else\n        {\n            typedef allocator<_FF> _Ap;\n            _Ap __a;\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(_VSTD::move(__f), allocator<_Fp>(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n\n#if _LIBCPP_STD_VER <= 14\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <class _Fp, class _Alloc, class>\nfunction<_Rp(_ArgTypes...)>::function(allocator_arg_t, const _Alloc& __a0, _Fp __f)\n    : __f_(0)\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\n    if (__function::__not_null(__f))\n    {\n        typedef __function::__func<_Fp, _Alloc, _Rp(_ArgTypes...)> _FF;\n        typedef typename __rebind_alloc_helper<__alloc_traits, _FF>::type _Ap;\n        _Ap __a(__a0);\n        if (sizeof(_FF) <= sizeof(__buf_) && \n            is_nothrow_copy_constructible<_Fp>::value && is_nothrow_copy_constructible<_Ap>::value)\n        {\n            __f_ = ::new((void*)&__buf_) _FF(_VSTD::move(__f), _Alloc(__a));\n        }\n        else\n        {\n            typedef __allocator_destructor<_Ap> _Dp;\n            unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n            ::new (__hold.get()) _FF(_VSTD::move(__f), _Alloc(__a));\n            __f_ = __hold.release();\n        }\n    }\n}\n#endif\n\ntemplate<class _Rp, class ..._ArgTypes>\nfunction<_Rp(_ArgTypes...)>&\nfunction<_Rp(_ArgTypes...)>::operator=(const function& __f)\n{\n    function(__f).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\nfunction<_Rp(_ArgTypes...)>&\nfunction<_Rp(_ArgTypes...)>::operator=(function&& __f) _NOEXCEPT\n{\n    function::operator=(nullptr);\n    if (__f.__f_ == 0)\n        __f_ = 0;\n    else if ((void *)__f.__f_ == &__f.__buf_)\n    {\n        __f_ = __as_base(&__buf_);\n        __f.__f_->__clone(__f_);\n    }\n    else\n    {\n        __f_ = __f.__f_;\n        __f.__f_ = 0;\n    }\n    return *this;\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\nfunction<_Rp(_ArgTypes...)>&\nfunction<_Rp(_ArgTypes...)>::operator=(nullptr_t) _NOEXCEPT\n{\n    __base* __t = __f_;\n    __f_ = 0;\n    if ((void *)__t == &__buf_)\n        __t->destroy();\n    else if (__t)\n        __t->destroy_deallocate();\n    return *this;\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <class _Fp>\ntypename enable_if\n<\n    function<_Rp(_ArgTypes...)>::template __callable<typename decay<_Fp>::type>::value &&\n    !is_same<typename remove_reference<_Fp>::type, function<_Rp(_ArgTypes...)>>::value,\n    function<_Rp(_ArgTypes...)>&\n>::type\nfunction<_Rp(_ArgTypes...)>::operator=(_Fp&& __f)\n{\n    function(_VSTD::forward<_Fp>(__f)).swap(*this);\n    return *this;\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\nfunction<_Rp(_ArgTypes...)>::~function()\n{\n    if ((void *)__f_ == &__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\nvoid\nfunction<_Rp(_ArgTypes...)>::swap(function& __f) _NOEXCEPT\n{\n    if (_VSTD::addressof(__f) == this)\n      return;\n    if ((void *)__f_ == &__buf_ && (void *)__f.__f_ == &__f.__buf_)\n    {\n        typename aligned_storage<sizeof(__buf_)>::type __tempbuf;\n        __base* __t = __as_base(&__tempbuf);\n        __f_->__clone(__t);\n        __f_->destroy();\n        __f_ = 0;\n        __f.__f_->__clone(__as_base(&__buf_));\n        __f.__f_->destroy();\n        __f.__f_ = 0;\n        __f_ = __as_base(&__buf_);\n        __t->__clone(__as_base(&__f.__buf_));\n        __t->destroy();\n        __f.__f_ = __as_base(&__f.__buf_);\n    }\n    else if ((void *)__f_ == &__buf_)\n    {\n        __f_->__clone(__as_base(&__f.__buf_));\n        __f_->destroy();\n        __f_ = __f.__f_;\n        __f.__f_ = __as_base(&__f.__buf_);\n    }\n    else if ((void *)__f.__f_ == &__f.__buf_)\n    {\n        __f.__f_->__clone(__as_base(&__buf_));\n        __f.__f_->destroy();\n        __f.__f_ = __f_;\n        __f_ = __as_base(&__buf_);\n    }\n    else\n        _VSTD::swap(__f_, __f.__f_);\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\n_Rp\nfunction<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) const\n{\n    if (__f_ == 0)\n        __throw_bad_function_call();\n    return (*__f_)(_VSTD::forward<_ArgTypes>(__arg)...);\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Rp, class ..._ArgTypes>\nconst std::type_info&\nfunction<_Rp(_ArgTypes...)>::target_type() const _NOEXCEPT\n{\n    if (__f_ == 0)\n        return typeid(void);\n    return __f_->target_type();\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <typename _Tp>\n_Tp*\nfunction<_Rp(_ArgTypes...)>::target() _NOEXCEPT\n{\n    if (__f_ == 0)\n        return nullptr;\n    return (_Tp*) const_cast<void *>(__f_->target(typeid(_Tp)));\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <typename _Tp>\nconst _Tp*\nfunction<_Rp(_ArgTypes...)>::target() const _NOEXCEPT\n{\n    if (__f_ == 0)\n        return nullptr;\n    return (const _Tp*)__f_->target(typeid(_Tp));\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate <class _Rp, class... _ArgTypes>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const function<_Rp(_ArgTypes...)>& __f, nullptr_t) _NOEXCEPT {return !__f;}\n\ntemplate <class _Rp, class... _ArgTypes>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(nullptr_t, const function<_Rp(_ArgTypes...)>& __f) _NOEXCEPT {return !__f;}\n\ntemplate <class _Rp, class... _ArgTypes>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const function<_Rp(_ArgTypes...)>& __f, nullptr_t) _NOEXCEPT {return (bool)__f;}\n\ntemplate <class _Rp, class... _ArgTypes>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(nullptr_t, const function<_Rp(_ArgTypes...)>& __f) _NOEXCEPT {return (bool)__f;}\n\ntemplate <class _Rp, class... _ArgTypes>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(function<_Rp(_ArgTypes...)>& __x, function<_Rp(_ArgTypes...)>& __y) _NOEXCEPT\n{return __x.swap(__y);}\n\n#else // _LIBCPP_CXX03_LANG\n\n#include <__functional_03>\n\n#endif\n\n////////////////////////////////////////////////////////////////////////////////\n//                                  BIND\n//==============================================================================\n\ntemplate<class _Tp> struct __is_bind_expression : public false_type {};\ntemplate<class _Tp> struct _LIBCPP_TEMPLATE_VIS is_bind_expression\n    : public __is_bind_expression<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Tp>\nconstexpr size_t is_bind_expression_v = is_bind_expression<_Tp>::value;\n#endif\n\ntemplate<class _Tp> struct __is_placeholder : public integral_constant<int, 0> {};\ntemplate<class _Tp> struct _LIBCPP_TEMPLATE_VIS is_placeholder\n    : public __is_placeholder<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Tp>\nconstexpr size_t is_placeholder_v = is_placeholder<_Tp>::value;\n#endif\n\nnamespace placeholders\n{\n\ntemplate <int _Np> struct __ph {};\n\n#if defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_BUILDING_BIND)\n_LIBCPP_FUNC_VIS extern const __ph<1>   _1;\n_LIBCPP_FUNC_VIS extern const __ph<2>   _2;\n_LIBCPP_FUNC_VIS extern const __ph<3>   _3;\n_LIBCPP_FUNC_VIS extern const __ph<4>   _4;\n_LIBCPP_FUNC_VIS extern const __ph<5>   _5;\n_LIBCPP_FUNC_VIS extern const __ph<6>   _6;\n_LIBCPP_FUNC_VIS extern const __ph<7>   _7;\n_LIBCPP_FUNC_VIS extern const __ph<8>   _8;\n_LIBCPP_FUNC_VIS extern const __ph<9>   _9;\n_LIBCPP_FUNC_VIS extern const __ph<10> _10;\n#else\nconstexpr __ph<1>   _1{};\nconstexpr __ph<2>   _2{};\nconstexpr __ph<3>   _3{};\nconstexpr __ph<4>   _4{};\nconstexpr __ph<5>   _5{};\nconstexpr __ph<6>   _6{};\nconstexpr __ph<7>   _7{};\nconstexpr __ph<8>   _8{};\nconstexpr __ph<9>   _9{};\nconstexpr __ph<10> _10{};\n#endif // defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_BUILDING_BIND)\n\n}  // placeholders\n\ntemplate<int _Np>\nstruct __is_placeholder<placeholders::__ph<_Np> >\n    : public integral_constant<int, _Np> {};\n\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Uj>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp&\n__mu(reference_wrapper<_Tp> __t, _Uj&)\n{\n    return __t.get();\n}\n\ntemplate <class _Ti, class ..._Uj, size_t ..._Indx>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __invoke_of<_Ti&, _Uj...>::type\n__mu_expand(_Ti& __ti, tuple<_Uj...>& __uj, __tuple_indices<_Indx...>)\n{\n    return __ti(_VSTD::forward<_Uj>(_VSTD::get<_Indx>(__uj))...);\n}\n\ntemplate <class _Ti, class ..._Uj>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __lazy_enable_if\n<\n    is_bind_expression<_Ti>::value,\n    __invoke_of<_Ti&, _Uj...>\n>::type\n__mu(_Ti& __ti, tuple<_Uj...>& __uj)\n{\n    typedef typename __make_tuple_indices<sizeof...(_Uj)>::type __indices;\n    return  __mu_expand(__ti, __uj, __indices());\n}\n\ntemplate <bool IsPh, class _Ti, class _Uj>\nstruct __mu_return2 {};\n\ntemplate <class _Ti, class _Uj>\nstruct __mu_return2<true, _Ti, _Uj>\n{\n    typedef typename tuple_element<is_placeholder<_Ti>::value - 1, _Uj>::type type;\n};\n\ntemplate <class _Ti, class _Uj>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    0 < is_placeholder<_Ti>::value,\n    typename __mu_return2<0 < is_placeholder<_Ti>::value, _Ti, _Uj>::type\n>::type\n__mu(_Ti&, _Uj& __uj)\n{\n    const size_t _Indx = is_placeholder<_Ti>::value - 1;\n    return _VSTD::forward<typename tuple_element<_Indx, _Uj>::type>(_VSTD::get<_Indx>(__uj));\n}\n\ntemplate <class _Ti, class _Uj>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    !is_bind_expression<_Ti>::value &&\n    is_placeholder<_Ti>::value == 0 &&\n    !__is_reference_wrapper<_Ti>::value,\n    _Ti&\n>::type\n__mu(_Ti& __ti, _Uj&)\n{\n    return __ti;\n}\n\ntemplate <class _Ti, bool IsReferenceWrapper, bool IsBindEx, bool IsPh,\n          class _TupleUj>\nstruct ____mu_return;\n\ntemplate <bool _Invokable, class _Ti, class ..._Uj>\nstruct ____mu_return_invokable  // false\n{\n    typedef __nat type;\n};\n\ntemplate <class _Ti, class ..._Uj>\nstruct ____mu_return_invokable<true, _Ti, _Uj...>\n{\n    typedef typename __invoke_of<_Ti&, _Uj...>::type type;\n};\n\ntemplate <class _Ti, class ..._Uj>\nstruct ____mu_return<_Ti, false, true, false, tuple<_Uj...> >\n    : public ____mu_return_invokable<__invokable<_Ti&, _Uj...>::value, _Ti, _Uj...>\n{\n};\n\ntemplate <class _Ti, class _TupleUj>\nstruct ____mu_return<_Ti, false, false, true, _TupleUj>\n{\n    typedef typename tuple_element<is_placeholder<_Ti>::value - 1,\n                                   _TupleUj>::type&& type;\n};\n\ntemplate <class _Ti, class _TupleUj>\nstruct ____mu_return<_Ti, true, false, false, _TupleUj>\n{\n    typedef typename _Ti::type& type;\n};\n\ntemplate <class _Ti, class _TupleUj>\nstruct ____mu_return<_Ti, false, false, false, _TupleUj>\n{\n    typedef _Ti& type;\n};\n\ntemplate <class _Ti, class _TupleUj>\nstruct __mu_return\n    : public ____mu_return<_Ti,\n                           __is_reference_wrapper<_Ti>::value,\n                           is_bind_expression<_Ti>::value,\n                           0 < is_placeholder<_Ti>::value &&\n                           is_placeholder<_Ti>::value <= tuple_size<_TupleUj>::value,\n                           _TupleUj>\n{\n};\n\ntemplate <class _Fp, class _BoundArgs, class _TupleUj>\nstruct __is_valid_bind_return\n{\n    static const bool value = false;\n};\n\ntemplate <class _Fp, class ..._BoundArgs, class _TupleUj>\nstruct __is_valid_bind_return<_Fp, tuple<_BoundArgs...>, _TupleUj>\n{\n    static const bool value = __invokable<_Fp,\n                    typename __mu_return<_BoundArgs, _TupleUj>::type...>::value;\n};\n\ntemplate <class _Fp, class ..._BoundArgs, class _TupleUj>\nstruct __is_valid_bind_return<_Fp, const tuple<_BoundArgs...>, _TupleUj>\n{\n    static const bool value = __invokable<_Fp,\n                    typename __mu_return<const _BoundArgs, _TupleUj>::type...>::value;\n};\n\ntemplate <class _Fp, class _BoundArgs, class _TupleUj,\n          bool = __is_valid_bind_return<_Fp, _BoundArgs, _TupleUj>::value>\nstruct __bind_return;\n\ntemplate <class _Fp, class ..._BoundArgs, class _TupleUj>\nstruct __bind_return<_Fp, tuple<_BoundArgs...>, _TupleUj, true>\n{\n    typedef typename __invoke_of\n    <\n        _Fp&,\n        typename __mu_return\n        <\n            _BoundArgs,\n            _TupleUj\n        >::type...\n    >::type type;\n};\n\ntemplate <class _Fp, class ..._BoundArgs, class _TupleUj>\nstruct __bind_return<_Fp, const tuple<_BoundArgs...>, _TupleUj, true>\n{\n    typedef typename __invoke_of\n    <\n        _Fp&,\n        typename __mu_return\n        <\n            const _BoundArgs,\n            _TupleUj\n        >::type...\n    >::type type;\n};\n\ntemplate <class _Fp, class _BoundArgs, size_t ..._Indx, class _Args>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __bind_return<_Fp, _BoundArgs, _Args>::type\n__apply_functor(_Fp& __f, _BoundArgs& __bound_args, __tuple_indices<_Indx...>,\n                _Args&& __args)\n{\n    return _VSTD::__invoke(__f, _VSTD::__mu(_VSTD::get<_Indx>(__bound_args), __args)...);\n}\n\ntemplate<class _Fp, class ..._BoundArgs>\nclass __bind\n    : public __weak_result_type<typename decay<_Fp>::type>\n{\nprotected:\n    typedef typename decay<_Fp>::type _Fd;\n    typedef tuple<typename decay<_BoundArgs>::type...> _Td;\nprivate:\n    _Fd __f_;\n    _Td __bound_args_;\n\n    typedef typename __make_tuple_indices<sizeof...(_BoundArgs)>::type __indices;\npublic:\n    template <class _Gp, class ..._BA,\n              class = typename enable_if\n                               <\n                                  is_constructible<_Fd, _Gp>::value &&\n                                  !is_same<typename remove_reference<_Gp>::type,\n                                           __bind>::value\n                               >::type>\n      _LIBCPP_INLINE_VISIBILITY\n      explicit __bind(_Gp&& __f, _BA&& ...__bound_args)\n        : __f_(_VSTD::forward<_Gp>(__f)),\n          __bound_args_(_VSTD::forward<_BA>(__bound_args)...) {}\n\n    template <class ..._Args>\n        _LIBCPP_INLINE_VISIBILITY\n        typename __bind_return<_Fd, _Td, tuple<_Args&&...> >::type\n        operator()(_Args&& ...__args)\n        {\n            return _VSTD::__apply_functor(__f_, __bound_args_, __indices(),\n                                  tuple<_Args&&...>(_VSTD::forward<_Args>(__args)...));\n        }\n\n    template <class ..._Args>\n        _LIBCPP_INLINE_VISIBILITY\n        typename __bind_return<const _Fd, const _Td, tuple<_Args&&...> >::type\n        operator()(_Args&& ...__args) const\n        {\n            return _VSTD::__apply_functor(__f_, __bound_args_, __indices(),\n                                   tuple<_Args&&...>(_VSTD::forward<_Args>(__args)...));\n        }\n};\n\ntemplate<class _Fp, class ..._BoundArgs>\nstruct __is_bind_expression<__bind<_Fp, _BoundArgs...> > : public true_type {};\n\ntemplate<class _Rp, class _Fp, class ..._BoundArgs>\nclass __bind_r\n    : public __bind<_Fp, _BoundArgs...>\n{\n    typedef __bind<_Fp, _BoundArgs...> base;\n    typedef typename base::_Fd _Fd;\n    typedef typename base::_Td _Td;\npublic:\n    typedef _Rp result_type;\n\n\n    template <class _Gp, class ..._BA,\n              class = typename enable_if\n                               <\n                                  is_constructible<_Fd, _Gp>::value &&\n                                  !is_same<typename remove_reference<_Gp>::type,\n                                           __bind_r>::value\n                               >::type>\n      _LIBCPP_INLINE_VISIBILITY\n      explicit __bind_r(_Gp&& __f, _BA&& ...__bound_args)\n        : base(_VSTD::forward<_Gp>(__f),\n               _VSTD::forward<_BA>(__bound_args)...) {}\n\n    template <class ..._Args>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            is_convertible<typename __bind_return<_Fd, _Td, tuple<_Args&&...> >::type,\n                           result_type>::value || is_void<_Rp>::value,\n            result_type\n        >::type\n        operator()(_Args&& ...__args)\n        {\n            typedef __invoke_void_return_wrapper<_Rp> _Invoker;\n            return _Invoker::__call(static_cast<base&>(*this), _VSTD::forward<_Args>(__args)...);\n        }\n\n    template <class ..._Args>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            is_convertible<typename __bind_return<const _Fd, const _Td, tuple<_Args&&...> >::type,\n                           result_type>::value || is_void<_Rp>::value,\n            result_type\n        >::type\n        operator()(_Args&& ...__args) const\n        {\n            typedef __invoke_void_return_wrapper<_Rp> _Invoker;\n            return _Invoker::__call(static_cast<base const&>(*this), _VSTD::forward<_Args>(__args)...);\n        }\n};\n\ntemplate<class _Rp, class _Fp, class ..._BoundArgs>\nstruct __is_bind_expression<__bind_r<_Rp, _Fp, _BoundArgs...> > : public true_type {};\n\ntemplate<class _Fp, class ..._BoundArgs>\ninline _LIBCPP_INLINE_VISIBILITY\n__bind<_Fp, _BoundArgs...>\nbind(_Fp&& __f, _BoundArgs&&... __bound_args)\n{\n    typedef __bind<_Fp, _BoundArgs...> type;\n    return type(_VSTD::forward<_Fp>(__f), _VSTD::forward<_BoundArgs>(__bound_args)...);\n}\n\ntemplate<class _Rp, class _Fp, class ..._BoundArgs>\ninline _LIBCPP_INLINE_VISIBILITY\n__bind_r<_Rp, _Fp, _BoundArgs...>\nbind(_Fp&& __f, _BoundArgs&&... __bound_args)\n{\n    typedef __bind_r<_Rp, _Fp, _BoundArgs...> type;\n    return type(_VSTD::forward<_Fp>(__f), _VSTD::forward<_BoundArgs>(__bound_args)...);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n#if _LIBCPP_STD_VER > 14\n\n#define __cpp_lib_invoke 201411\n\ntemplate <class _Fn, class ..._Args>\nresult_of_t<_Fn&&(_Args&&...)>\ninvoke(_Fn&& __f, _Args&&... __args)\n    noexcept(noexcept(_VSTD::__invoke(_VSTD::forward<_Fn>(__f), _VSTD::forward<_Args>(__args)...)))\n{\n    return _VSTD::__invoke(_VSTD::forward<_Fn>(__f), _VSTD::forward<_Args>(__args)...);\n}\n\ntemplate <class _DecayFunc>\nclass _LIBCPP_TEMPLATE_VIS __not_fn_imp {\n  _DecayFunc __fd;\n\npublic:\n    __not_fn_imp() = delete;\n\n    template <class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_Args&& ...__args) &\n            noexcept(noexcept(!_VSTD::invoke(__fd, _VSTD::forward<_Args>(__args)...)))\n        -> decltype(          !_VSTD::invoke(__fd, _VSTD::forward<_Args>(__args)...))\n        { return              !_VSTD::invoke(__fd, _VSTD::forward<_Args>(__args)...); }\n\n    template <class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_Args&& ...__args) &&\n            noexcept(noexcept(!_VSTD::invoke(_VSTD::move(__fd), _VSTD::forward<_Args>(__args)...)))\n        -> decltype(          !_VSTD::invoke(_VSTD::move(__fd), _VSTD::forward<_Args>(__args)...))\n        { return              !_VSTD::invoke(_VSTD::move(__fd), _VSTD::forward<_Args>(__args)...); }\n\n    template <class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_Args&& ...__args) const&\n            noexcept(noexcept(!_VSTD::invoke(__fd, _VSTD::forward<_Args>(__args)...)))\n        -> decltype(          !_VSTD::invoke(__fd, _VSTD::forward<_Args>(__args)...))\n        { return              !_VSTD::invoke(__fd, _VSTD::forward<_Args>(__args)...); }\n\n\n    template <class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    auto operator()(_Args&& ...__args) const&&\n            noexcept(noexcept(!_VSTD::invoke(_VSTD::move(__fd), _VSTD::forward<_Args>(__args)...)))\n        -> decltype(          !_VSTD::invoke(_VSTD::move(__fd), _VSTD::forward<_Args>(__args)...))\n        { return              !_VSTD::invoke(_VSTD::move(__fd), _VSTD::forward<_Args>(__args)...); }\n\nprivate:\n    template <class _RawFunc,\n              class = enable_if_t<!is_same<decay_t<_RawFunc>, __not_fn_imp>::value>>\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __not_fn_imp(_RawFunc&& __rf)\n        : __fd(_VSTD::forward<_RawFunc>(__rf)) {}\n\n    template <class _RawFunc>\n    friend inline _LIBCPP_INLINE_VISIBILITY\n    __not_fn_imp<decay_t<_RawFunc>> not_fn(_RawFunc&&);\n};\n\ntemplate <class _RawFunc>\ninline _LIBCPP_INLINE_VISIBILITY\n__not_fn_imp<decay_t<_RawFunc>> not_fn(_RawFunc&& __fn) {\n    return __not_fn_imp<decay_t<_RawFunc>>(_VSTD::forward<_RawFunc>(__fn));\n}\n\n#endif\n\n// struct hash<T*> in <memory>\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_FUNCTIONAL\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/future",
    "content": "// -*- C++ -*-\n//===--------------------------- future -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_FUTURE\n#define _LIBCPP_FUTURE\n\n/*\n    future synopsis\n\nnamespace std\n{\n\nenum class future_errc\n{\n    future_already_retrieved = 1,\n    promise_already_satisfied,\n    no_state,\n    broken_promise\n};\n\nenum class launch\n{\n    async = 1,\n    deferred = 2,\n    any = async | deferred\n};\n\nenum class future_status\n{\n    ready,\n    timeout,\n    deferred\n};\n\ntemplate <> struct is_error_code_enum<future_errc> : public true_type { };\nerror_code make_error_code(future_errc e) noexcept;\nerror_condition make_error_condition(future_errc e) noexcept;\n\nconst error_category& future_category() noexcept;\n\nclass future_error\n    : public logic_error\n{\npublic:\n    future_error(error_code ec);  // exposition only\n    explicit future_error(future_errc); // C++17\n    const error_code& code() const noexcept;\n    const char*       what() const noexcept;\n};\n\ntemplate <class R>\nclass promise\n{\npublic:\n    promise();\n    template <class Allocator>\n        promise(allocator_arg_t, const Allocator& a);\n    promise(promise&& rhs) noexcept;\n    promise(const promise& rhs) = delete;\n    ~promise();\n\n    // assignment\n    promise& operator=(promise&& rhs) noexcept;\n    promise& operator=(const promise& rhs) = delete;\n    void swap(promise& other) noexcept;\n\n    // retrieving the result\n    future<R> get_future();\n\n    // setting the result\n    void set_value(const R& r);\n    void set_value(R&& r);\n    void set_exception(exception_ptr p);\n\n    // setting the result with deferred notification\n    void set_value_at_thread_exit(const R& r);\n    void set_value_at_thread_exit(R&& r);\n    void set_exception_at_thread_exit(exception_ptr p);\n};\n\ntemplate <class R>\nclass promise<R&>\n{\npublic:\n    promise();\n    template <class Allocator>\n        promise(allocator_arg_t, const Allocator& a);\n    promise(promise&& rhs) noexcept;\n    promise(const promise& rhs) = delete;\n    ~promise();\n\n    // assignment\n    promise& operator=(promise&& rhs) noexcept;\n    promise& operator=(const promise& rhs) = delete;\n    void swap(promise& other) noexcept;\n\n    // retrieving the result\n    future<R&> get_future();\n\n    // setting the result\n    void set_value(R& r);\n    void set_exception(exception_ptr p);\n\n    // setting the result with deferred notification\n    void set_value_at_thread_exit(R&);\n    void set_exception_at_thread_exit(exception_ptr p);\n};\n\ntemplate <>\nclass promise<void>\n{\npublic:\n    promise();\n    template <class Allocator>\n        promise(allocator_arg_t, const Allocator& a);\n    promise(promise&& rhs) noexcept;\n    promise(const promise& rhs) = delete;\n    ~promise();\n\n    // assignment\n    promise& operator=(promise&& rhs) noexcept;\n    promise& operator=(const promise& rhs) = delete;\n    void swap(promise& other) noexcept;\n\n    // retrieving the result\n    future<void> get_future();\n\n    // setting the result\n    void set_value();\n    void set_exception(exception_ptr p);\n\n    // setting the result with deferred notification\n    void set_value_at_thread_exit();\n    void set_exception_at_thread_exit(exception_ptr p);\n};\n\ntemplate <class R> void swap(promise<R>& x, promise<R>& y) noexcept;\n\ntemplate <class R, class Alloc>\n    struct uses_allocator<promise<R>, Alloc> : public true_type {};\n\ntemplate <class R>\nclass future\n{\npublic:\n    future() noexcept;\n    future(future&&) noexcept;\n    future(const future& rhs) = delete;\n    ~future();\n    future& operator=(const future& rhs) = delete;\n    future& operator=(future&&) noexcept;\n    shared_future<R> share() noexcept;\n\n    // retrieving the value\n    R get();\n\n    // functions to check state\n    bool valid() const noexcept;\n\n    void wait() const;\n    template <class Rep, class Period>\n        future_status\n        wait_for(const chrono::duration<Rep, Period>& rel_time) const;\n    template <class Clock, class Duration>\n        future_status\n        wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;\n};\n\ntemplate <class R>\nclass future<R&>\n{\npublic:\n    future() noexcept;\n    future(future&&) noexcept;\n    future(const future& rhs) = delete;\n    ~future();\n    future& operator=(const future& rhs) = delete;\n    future& operator=(future&&) noexcept;\n    shared_future<R&> share() noexcept;\n\n    // retrieving the value\n    R& get();\n\n    // functions to check state\n    bool valid() const noexcept;\n\n    void wait() const;\n    template <class Rep, class Period>\n        future_status\n        wait_for(const chrono::duration<Rep, Period>& rel_time) const;\n    template <class Clock, class Duration>\n        future_status\n        wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;\n};\n\ntemplate <>\nclass future<void>\n{\npublic:\n    future() noexcept;\n    future(future&&) noexcept;\n    future(const future& rhs) = delete;\n    ~future();\n    future& operator=(const future& rhs) = delete;\n    future& operator=(future&&) noexcept;\n    shared_future<void> share() noexcept;\n\n    // retrieving the value\n    void get();\n\n    // functions to check state\n    bool valid() const noexcept;\n\n    void wait() const;\n    template <class Rep, class Period>\n        future_status\n        wait_for(const chrono::duration<Rep, Period>& rel_time) const;\n    template <class Clock, class Duration>\n        future_status\n        wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;\n};\n\ntemplate <class R>\nclass shared_future\n{\npublic:\n    shared_future() noexcept;\n    shared_future(const shared_future& rhs);\n    shared_future(future<R>&&) noexcept;\n    shared_future(shared_future&& rhs) noexcept;\n    ~shared_future();\n    shared_future& operator=(const shared_future& rhs);\n    shared_future& operator=(shared_future&& rhs) noexcept;\n\n    // retrieving the value\n    const R& get() const;\n\n    // functions to check state\n    bool valid() const noexcept;\n\n    void wait() const;\n    template <class Rep, class Period>\n        future_status\n        wait_for(const chrono::duration<Rep, Period>& rel_time) const;\n    template <class Clock, class Duration>\n        future_status\n        wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;\n};\n\ntemplate <class R>\nclass shared_future<R&>\n{\npublic:\n    shared_future() noexcept;\n    shared_future(const shared_future& rhs);\n    shared_future(future<R&>&&) noexcept;\n    shared_future(shared_future&& rhs) noexcept;\n    ~shared_future();\n    shared_future& operator=(const shared_future& rhs);\n    shared_future& operator=(shared_future&& rhs) noexcept;\n\n    // retrieving the value\n    R& get() const;\n\n    // functions to check state\n    bool valid() const noexcept;\n\n    void wait() const;\n    template <class Rep, class Period>\n        future_status\n        wait_for(const chrono::duration<Rep, Period>& rel_time) const;\n    template <class Clock, class Duration>\n        future_status\n        wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;\n};\n\ntemplate <>\nclass shared_future<void>\n{\npublic:\n    shared_future() noexcept;\n    shared_future(const shared_future& rhs);\n    shared_future(future<void>&&) noexcept;\n    shared_future(shared_future&& rhs) noexcept;\n    ~shared_future();\n    shared_future& operator=(const shared_future& rhs);\n    shared_future& operator=(shared_future&& rhs) noexcept;\n\n    // retrieving the value\n    void get() const;\n\n    // functions to check state\n    bool valid() const noexcept;\n\n    void wait() const;\n    template <class Rep, class Period>\n        future_status\n        wait_for(const chrono::duration<Rep, Period>& rel_time) const;\n    template <class Clock, class Duration>\n        future_status\n        wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;\n};\n\ntemplate <class F, class... Args>\n  future<typename result_of<typename decay<F>::type(typename decay<Args>::type...)>::type>\n  async(F&& f, Args&&... args);\n\ntemplate <class F, class... Args>\n  future<typename result_of<typename decay<F>::type(typename decay<Args>::type...)>::type>\n  async(launch policy, F&& f, Args&&... args);\n\ntemplate <class> class packaged_task; // undefined\n\ntemplate <class R, class... ArgTypes>\nclass packaged_task<R(ArgTypes...)>\n{\npublic:\n    typedef R result_type; // extension\n\n    // construction and destruction\n    packaged_task() noexcept;\n    template <class F>\n        explicit packaged_task(F&& f);\n    template <class F, class Allocator>\n        packaged_task(allocator_arg_t, const Allocator& a, F&& f);\n    ~packaged_task();\n\n    // no copy\n    packaged_task(const packaged_task&) = delete;\n    packaged_task& operator=(const packaged_task&) = delete;\n\n    // move support\n    packaged_task(packaged_task&& other) noexcept;\n    packaged_task& operator=(packaged_task&& other) noexcept;\n    void swap(packaged_task& other) noexcept;\n\n    bool valid() const noexcept;\n\n    // result retrieval\n    future<R> get_future();\n\n    // execution\n    void operator()(ArgTypes... );\n    void make_ready_at_thread_exit(ArgTypes...);\n\n    void reset();\n};\n\ntemplate <class R>\n  void swap(packaged_task<R(ArgTypes...)&, packaged_task<R(ArgTypes...)>&) noexcept;\n\ntemplate <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <system_error>\n#include <memory>\n#include <chrono>\n#include <exception>\n#include <mutex>\n#include <thread>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifdef _LIBCPP_HAS_NO_THREADS\n#error <future> is not supported on this single threaded system\n#else // !_LIBCPP_HAS_NO_THREADS\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n//enum class future_errc\n_LIBCPP_DECLARE_STRONG_ENUM(future_errc)\n{\n    future_already_retrieved = 1,\n    promise_already_satisfied,\n    no_state,\n    broken_promise\n};\n_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(future_errc)\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS is_error_code_enum<future_errc> : public true_type {};\n\n#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS is_error_code_enum<future_errc::__lx> : public true_type { };\n#endif\n\n//enum class launch\n_LIBCPP_DECLARE_STRONG_ENUM(launch)\n{\n    async = 1,\n    deferred = 2,\n    any = async | deferred\n};\n_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(launch)\n\n#ifndef _LIBCPP_HAS_NO_STRONG_ENUMS\n\n#ifdef _LIBCXX_UNDERLYING_TYPE\ntypedef underlying_type<launch>::type __launch_underlying_type;\n#else\ntypedef int __launch_underlying_type;\n#endif\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nlaunch\noperator&(launch __x, launch __y)\n{\n    return static_cast<launch>(static_cast<__launch_underlying_type>(__x) &\n                               static_cast<__launch_underlying_type>(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nlaunch\noperator|(launch __x, launch __y)\n{\n    return static_cast<launch>(static_cast<__launch_underlying_type>(__x) |\n                               static_cast<__launch_underlying_type>(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nlaunch\noperator^(launch __x, launch __y)\n{\n    return static_cast<launch>(static_cast<__launch_underlying_type>(__x) ^\n                               static_cast<__launch_underlying_type>(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nlaunch\noperator~(launch __x)\n{\n    return static_cast<launch>(~static_cast<__launch_underlying_type>(__x) & 3);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nlaunch&\noperator&=(launch& __x, launch __y)\n{\n    __x = __x & __y; return __x;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nlaunch&\noperator|=(launch& __x, launch __y)\n{\n    __x = __x | __y; return __x;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nlaunch&\noperator^=(launch& __x, launch __y)\n{\n    __x = __x ^ __y; return __x;\n}\n\n#endif  // !_LIBCPP_HAS_NO_STRONG_ENUMS\n\n//enum class future_status\n_LIBCPP_DECLARE_STRONG_ENUM(future_status)\n{\n    ready,\n    timeout,\n    deferred\n};\n_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(future_status)\n\n_LIBCPP_FUNC_VIS\nconst error_category& future_category() _NOEXCEPT;\n\ninline _LIBCPP_INLINE_VISIBILITY\nerror_code\nmake_error_code(future_errc __e) _NOEXCEPT\n{\n    return error_code(static_cast<int>(__e), future_category());\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nerror_condition\nmake_error_condition(future_errc __e) _NOEXCEPT\n{\n    return error_condition(static_cast<int>(__e), future_category());\n}\n\nclass _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_FUTURE_ERROR future_error\n    : public logic_error\n{\n    error_code __ec_;\npublic:\n    future_error(error_code __ec);\n#if _LIBCPP_STD_VERS > 14\n    explicit future_error(future_errc _Ev) : logic_error(), __ec_(make_error_code(_Ev)) {}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    const error_code& code() const _NOEXCEPT {return __ec_;}\n\n    virtual ~future_error() _NOEXCEPT;\n};\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\n#ifndef _LIBCPP_NO_EXCEPTIONS\n_LIBCPP_AVAILABILITY_FUTURE_ERROR\n#endif\nvoid __throw_future_error(future_errc _Ev)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw future_error(make_error_code(_Ev));\n#else\n    ((void)_Ev);\n    _VSTD::abort();\n#endif\n}\n\nclass _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE __assoc_sub_state\n    : public __shared_count\n{\nprotected:\n    exception_ptr __exception_;\n    mutable mutex __mut_;\n    mutable condition_variable __cv_;\n    unsigned __state_;\n\n    virtual void __on_zero_shared() _NOEXCEPT;\n    void __sub_wait(unique_lock<mutex>& __lk);\npublic:\n    enum\n    {\n        __constructed = 1,\n        __future_attached = 2,\n        ready = 4,\n        deferred = 8\n    };\n\n    _LIBCPP_INLINE_VISIBILITY\n    __assoc_sub_state() : __state_(0) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool __has_value() const\n        {return (__state_ & __constructed) || (__exception_ != nullptr);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_future_attached()\n    {\n        lock_guard<mutex> __lk(__mut_);\n        __state_ |= __future_attached;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    bool __has_future_attached() const {return (__state_ & __future_attached) != 0;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_deferred() {__state_ |= deferred;}\n\n    void __make_ready();\n    _LIBCPP_INLINE_VISIBILITY\n    bool __is_ready() const {return (__state_ & ready) != 0;}\n\n    void set_value();\n    void set_value_at_thread_exit();\n\n    void set_exception(exception_ptr __p);\n    void set_exception_at_thread_exit(exception_ptr __p);\n\n    void copy();\n\n    void wait();\n    template <class _Rep, class _Period>\n        future_status\n        _LIBCPP_INLINE_VISIBILITY\n        wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const;\n    template <class _Clock, class _Duration>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        future_status\n        wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const;\n\n    virtual void __execute();\n};\n\ntemplate <class _Clock, class _Duration>\nfuture_status\n__assoc_sub_state::wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const\n{\n    unique_lock<mutex> __lk(__mut_);\n    if (__state_ & deferred)\n        return future_status::deferred;\n    while (!(__state_ & ready) && _Clock::now() < __abs_time)\n        __cv_.wait_until(__lk, __abs_time);\n    if (__state_ & ready)\n        return future_status::ready;\n    return future_status::timeout;\n}\n\ntemplate <class _Rep, class _Period>\ninline\nfuture_status\n__assoc_sub_state::wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const\n{\n    return wait_until(chrono::steady_clock::now() + __rel_time);\n}\n\ntemplate <class _Rp>\nclass _LIBCPP_AVAILABILITY_FUTURE __assoc_state\n    : public __assoc_sub_state\n{\n    typedef __assoc_sub_state base;\n    typedef typename aligned_storage<sizeof(_Rp), alignment_of<_Rp>::value>::type _Up;\nprotected:\n    _Up __value_;\n\n    virtual void __on_zero_shared() _NOEXCEPT;\npublic:\n\n    template <class _Arg>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n        void set_value(_Arg&& __arg);\n#else\n        void set_value(_Arg& __arg);\n#endif\n\n    template <class _Arg>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n        void set_value_at_thread_exit(_Arg&& __arg);\n#else\n        void set_value_at_thread_exit(_Arg& __arg);\n#endif\n\n    _Rp move();\n    typename add_lvalue_reference<_Rp>::type copy();\n};\n\ntemplate <class _Rp>\nvoid\n__assoc_state<_Rp>::__on_zero_shared() _NOEXCEPT\n{\n    if (this->__state_ & base::__constructed)\n        reinterpret_cast<_Rp*>(&__value_)->~_Rp();\n    delete this;\n}\n\ntemplate <class _Rp>\ntemplate <class _Arg>\n_LIBCPP_AVAILABILITY_FUTURE\nvoid\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n__assoc_state<_Rp>::set_value(_Arg&& __arg)\n#else\n__assoc_state<_Rp>::set_value(_Arg& __arg)\n#endif\n{\n    unique_lock<mutex> __lk(this->__mut_);\n    if (this->__has_value())\n        __throw_future_error(future_errc::promise_already_satisfied);\n    ::new(&__value_) _Rp(_VSTD::forward<_Arg>(__arg));\n    this->__state_ |= base::__constructed | base::ready;\n    __cv_.notify_all();\n}\n\ntemplate <class _Rp>\ntemplate <class _Arg>\nvoid\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n__assoc_state<_Rp>::set_value_at_thread_exit(_Arg&& __arg)\n#else\n__assoc_state<_Rp>::set_value_at_thread_exit(_Arg& __arg)\n#endif\n{\n    unique_lock<mutex> __lk(this->__mut_);\n    if (this->__has_value())\n        __throw_future_error(future_errc::promise_already_satisfied);\n    ::new(&__value_) _Rp(_VSTD::forward<_Arg>(__arg));\n    this->__state_ |= base::__constructed;\n    __thread_local_data()->__make_ready_at_thread_exit(this);\n}\n\ntemplate <class _Rp>\n_Rp\n__assoc_state<_Rp>::move()\n{\n    unique_lock<mutex> __lk(this->__mut_);\n    this->__sub_wait(__lk);\n    if (this->__exception_ != nullptr)\n        rethrow_exception(this->__exception_);\n    return _VSTD::move(*reinterpret_cast<_Rp*>(&__value_));\n}\n\ntemplate <class _Rp>\ntypename add_lvalue_reference<_Rp>::type\n__assoc_state<_Rp>::copy()\n{\n    unique_lock<mutex> __lk(this->__mut_);\n    this->__sub_wait(__lk);\n    if (this->__exception_ != nullptr)\n        rethrow_exception(this->__exception_);\n    return *reinterpret_cast<_Rp*>(&__value_);\n}\n\ntemplate <class _Rp>\nclass _LIBCPP_AVAILABILITY_FUTURE __assoc_state<_Rp&>\n    : public __assoc_sub_state\n{\n    typedef __assoc_sub_state base;\n    typedef _Rp* _Up;\nprotected:\n    _Up __value_;\n\n    virtual void __on_zero_shared() _NOEXCEPT;\npublic:\n\n    void set_value(_Rp& __arg);\n    void set_value_at_thread_exit(_Rp& __arg);\n\n    _Rp& copy();\n};\n\ntemplate <class _Rp>\nvoid\n__assoc_state<_Rp&>::__on_zero_shared() _NOEXCEPT\n{\n    delete this;\n}\n\ntemplate <class _Rp>\nvoid\n__assoc_state<_Rp&>::set_value(_Rp& __arg)\n{\n    unique_lock<mutex> __lk(this->__mut_);\n    if (this->__has_value())\n        __throw_future_error(future_errc::promise_already_satisfied);\n    __value_ = _VSTD::addressof(__arg);\n    this->__state_ |= base::__constructed | base::ready;\n    __cv_.notify_all();\n}\n\ntemplate <class _Rp>\nvoid\n__assoc_state<_Rp&>::set_value_at_thread_exit(_Rp& __arg)\n{\n    unique_lock<mutex> __lk(this->__mut_);\n    if (this->__has_value())\n        __throw_future_error(future_errc::promise_already_satisfied);\n    __value_ = _VSTD::addressof(__arg);\n    this->__state_ |= base::__constructed;\n    __thread_local_data()->__make_ready_at_thread_exit(this);\n}\n\ntemplate <class _Rp>\n_Rp&\n__assoc_state<_Rp&>::copy()\n{\n    unique_lock<mutex> __lk(this->__mut_);\n    this->__sub_wait(__lk);\n    if (this->__exception_ != nullptr)\n        rethrow_exception(this->__exception_);\n    return *__value_;\n}\n\ntemplate <class _Rp, class _Alloc>\nclass _LIBCPP_AVAILABILITY_FUTURE __assoc_state_alloc\n    : public __assoc_state<_Rp>\n{\n    typedef __assoc_state<_Rp> base;\n    _Alloc __alloc_;\n\n    virtual void __on_zero_shared() _NOEXCEPT;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __assoc_state_alloc(const _Alloc& __a)\n        : __alloc_(__a) {}\n};\n\ntemplate <class _Rp, class _Alloc>\nvoid\n__assoc_state_alloc<_Rp, _Alloc>::__on_zero_shared() _NOEXCEPT\n{\n    if (this->__state_ & base::__constructed)\n        reinterpret_cast<_Rp*>(_VSTD::addressof(this->__value_))->~_Rp();\n    typedef typename __allocator_traits_rebind<_Alloc, __assoc_state_alloc>::type _Al;\n    typedef allocator_traits<_Al> _ATraits;\n    typedef pointer_traits<typename _ATraits::pointer> _PTraits;\n    _Al __a(__alloc_);\n    this->~__assoc_state_alloc();\n    __a.deallocate(_PTraits::pointer_to(*this), 1);\n}\n\ntemplate <class _Rp, class _Alloc>\nclass _LIBCPP_AVAILABILITY_FUTURE __assoc_state_alloc<_Rp&, _Alloc>\n    : public __assoc_state<_Rp&>\n{\n    typedef __assoc_state<_Rp&> base;\n    _Alloc __alloc_;\n\n    virtual void __on_zero_shared() _NOEXCEPT;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __assoc_state_alloc(const _Alloc& __a)\n        : __alloc_(__a) {}\n};\n\ntemplate <class _Rp, class _Alloc>\nvoid\n__assoc_state_alloc<_Rp&, _Alloc>::__on_zero_shared() _NOEXCEPT\n{\n    typedef typename __allocator_traits_rebind<_Alloc, __assoc_state_alloc>::type _Al;\n    typedef allocator_traits<_Al> _ATraits;\n    typedef pointer_traits<typename _ATraits::pointer> _PTraits;\n    _Al __a(__alloc_);\n    this->~__assoc_state_alloc();\n    __a.deallocate(_PTraits::pointer_to(*this), 1);\n}\n\ntemplate <class _Alloc>\nclass _LIBCPP_AVAILABILITY_FUTURE __assoc_sub_state_alloc\n    : public __assoc_sub_state\n{\n    typedef __assoc_sub_state base;\n    _Alloc __alloc_;\n\n    virtual void __on_zero_shared() _NOEXCEPT;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __assoc_sub_state_alloc(const _Alloc& __a)\n        : __alloc_(__a) {}\n};\n\ntemplate <class _Alloc>\nvoid\n__assoc_sub_state_alloc<_Alloc>::__on_zero_shared() _NOEXCEPT\n{\n    typedef typename __allocator_traits_rebind<_Alloc, __assoc_sub_state_alloc>::type _Al;\n    typedef allocator_traits<_Al> _ATraits;\n    typedef pointer_traits<typename _ATraits::pointer> _PTraits;\n    _Al __a(__alloc_);\n    this->~__assoc_sub_state_alloc();\n    __a.deallocate(_PTraits::pointer_to(*this), 1);\n}\n\ntemplate <class _Rp, class _Fp>\nclass _LIBCPP_AVAILABILITY_FUTURE __deferred_assoc_state\n    : public __assoc_state<_Rp>\n{\n    typedef __assoc_state<_Rp> base;\n\n    _Fp __func_;\n\npublic:\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __deferred_assoc_state(_Fp&& __f);\n#endif\n\n    virtual void __execute();\n};\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Rp, class _Fp>\ninline\n__deferred_assoc_state<_Rp, _Fp>::__deferred_assoc_state(_Fp&& __f)\n    : __func_(_VSTD::forward<_Fp>(__f))\n{\n    this->__set_deferred();\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Rp, class _Fp>\nvoid\n__deferred_assoc_state<_Rp, _Fp>::__execute()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        this->set_value(__func_());\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->set_exception(current_exception());\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate <class _Fp>\nclass _LIBCPP_AVAILABILITY_FUTURE __deferred_assoc_state<void, _Fp>\n    : public __assoc_sub_state\n{\n    typedef __assoc_sub_state base;\n\n    _Fp __func_;\n\npublic:\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __deferred_assoc_state(_Fp&& __f);\n#endif\n\n    virtual void __execute();\n};\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Fp>\ninline\n__deferred_assoc_state<void, _Fp>::__deferred_assoc_state(_Fp&& __f)\n    : __func_(_VSTD::forward<_Fp>(__f))\n{\n    this->__set_deferred();\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Fp>\nvoid\n__deferred_assoc_state<void, _Fp>::__execute()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __func_();\n        this->set_value();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->set_exception(current_exception());\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate <class _Rp, class _Fp>\nclass _LIBCPP_AVAILABILITY_FUTURE __async_assoc_state\n    : public __assoc_state<_Rp>\n{\n    typedef __assoc_state<_Rp> base;\n\n    _Fp __func_;\n\n    virtual void __on_zero_shared() _NOEXCEPT;\npublic:\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __async_assoc_state(_Fp&& __f);\n#endif\n\n    virtual void __execute();\n};\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Rp, class _Fp>\ninline\n__async_assoc_state<_Rp, _Fp>::__async_assoc_state(_Fp&& __f)\n    : __func_(_VSTD::forward<_Fp>(__f))\n{\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Rp, class _Fp>\nvoid\n__async_assoc_state<_Rp, _Fp>::__execute()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        this->set_value(__func_());\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->set_exception(current_exception());\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate <class _Rp, class _Fp>\nvoid\n__async_assoc_state<_Rp, _Fp>::__on_zero_shared() _NOEXCEPT\n{\n    this->wait();\n    base::__on_zero_shared();\n}\n\ntemplate <class _Fp>\nclass _LIBCPP_AVAILABILITY_FUTURE __async_assoc_state<void, _Fp>\n    : public __assoc_sub_state\n{\n    typedef __assoc_sub_state base;\n\n    _Fp __func_;\n\n    virtual void __on_zero_shared() _NOEXCEPT;\npublic:\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __async_assoc_state(_Fp&& __f);\n#endif\n\n    virtual void __execute();\n};\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Fp>\ninline\n__async_assoc_state<void, _Fp>::__async_assoc_state(_Fp&& __f)\n    : __func_(_VSTD::forward<_Fp>(__f))\n{\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Fp>\nvoid\n__async_assoc_state<void, _Fp>::__execute()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __func_();\n        this->set_value();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->set_exception(current_exception());\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate <class _Fp>\nvoid\n__async_assoc_state<void, _Fp>::__on_zero_shared() _NOEXCEPT\n{\n    this->wait();\n    base::__on_zero_shared();\n}\n\ntemplate <class _Rp> class _LIBCPP_TEMPLATE_VIS promise;\ntemplate <class _Rp> class _LIBCPP_TEMPLATE_VIS shared_future;\n\n// future\n\ntemplate <class _Rp> class _LIBCPP_TEMPLATE_VIS future;\n\ntemplate <class _Rp, class _Fp>\nfuture<_Rp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n__make_deferred_assoc_state(_Fp&& __f);\n#else\n__make_deferred_assoc_state(_Fp __f);\n#endif\n\ntemplate <class _Rp, class _Fp>\nfuture<_Rp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n__make_async_assoc_state(_Fp&& __f);\n#else\n__make_async_assoc_state(_Fp __f);\n#endif\n\ntemplate <class _Rp>\nclass _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE future\n{\n    __assoc_state<_Rp>* __state_;\n\n    explicit future(__assoc_state<_Rp>* __state);\n\n    template <class> friend class promise;\n    template <class> friend class shared_future;\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_deferred_assoc_state(_Fp&& __f);\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_async_assoc_state(_Fp&& __f);\n#else\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_deferred_assoc_state(_Fp __f);\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_async_assoc_state(_Fp __f);\n#endif\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    future() _NOEXCEPT : __state_(nullptr) {}\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    future(future&& __rhs) _NOEXCEPT\n        : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;}\n    future(const future&) = delete;\n    future& operator=(const future&) = delete;\n    _LIBCPP_INLINE_VISIBILITY\n    future& operator=(future&& __rhs) _NOEXCEPT\n        {\n            future(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    future(const future&);\n    future& operator=(const future&);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~future();\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future<_Rp> share() _NOEXCEPT;\n\n    // retrieving the value\n    _Rp get();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // functions to check state\n    _LIBCPP_INLINE_VISIBILITY\n    bool valid() const _NOEXCEPT {return __state_ != nullptr;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void wait() const {__state_->wait();}\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const\n            {return __state_->wait_for(__rel_time);}\n    template <class _Clock, class _Duration>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const\n            {return __state_->wait_until(__abs_time);}\n};\n\ntemplate <class _Rp>\nfuture<_Rp>::future(__assoc_state<_Rp>* __state)\n    : __state_(__state)\n{\n    if (__state_->__has_future_attached())\n        __throw_future_error(future_errc::future_already_retrieved);\n    __state_->__add_shared();\n    __state_->__set_future_attached();\n}\n\nstruct __release_shared_count\n{\n    void operator()(__shared_count* p) {p->__release_shared();}\n};\n\ntemplate <class _Rp>\nfuture<_Rp>::~future()\n{\n    if (__state_)\n        __state_->__release_shared();\n}\n\ntemplate <class _Rp>\n_Rp\nfuture<_Rp>::get()\n{\n    unique_ptr<__shared_count, __release_shared_count> __(__state_);\n    __assoc_state<_Rp>* __s = __state_;\n    __state_ = nullptr;\n    return __s->move();\n}\n\ntemplate <class _Rp>\nclass _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE future<_Rp&>\n{\n    __assoc_state<_Rp&>* __state_;\n\n    explicit future(__assoc_state<_Rp&>* __state);\n\n    template <class> friend class promise;\n    template <class> friend class shared_future;\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_deferred_assoc_state(_Fp&& __f);\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_async_assoc_state(_Fp&& __f);\n#else\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_deferred_assoc_state(_Fp __f);\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_async_assoc_state(_Fp __f);\n#endif\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    future() _NOEXCEPT : __state_(nullptr) {}\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    future(future&& __rhs) _NOEXCEPT\n        : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;}\n    future(const future&) = delete;\n    future& operator=(const future&) = delete;\n    _LIBCPP_INLINE_VISIBILITY\n    future& operator=(future&& __rhs) _NOEXCEPT\n        {\n            future(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    future(const future&);\n    future& operator=(const future&);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~future();\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future<_Rp&> share() _NOEXCEPT;\n\n    // retrieving the value\n    _Rp& get();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // functions to check state\n    _LIBCPP_INLINE_VISIBILITY\n    bool valid() const _NOEXCEPT {return __state_ != nullptr;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void wait() const {__state_->wait();}\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const\n            {return __state_->wait_for(__rel_time);}\n    template <class _Clock, class _Duration>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const\n            {return __state_->wait_until(__abs_time);}\n};\n\ntemplate <class _Rp>\nfuture<_Rp&>::future(__assoc_state<_Rp&>* __state)\n    : __state_(__state)\n{\n    if (__state_->__has_future_attached())\n        __throw_future_error(future_errc::future_already_retrieved);\n    __state_->__add_shared();\n    __state_->__set_future_attached();\n}\n\ntemplate <class _Rp>\nfuture<_Rp&>::~future()\n{\n    if (__state_)\n        __state_->__release_shared();\n}\n\ntemplate <class _Rp>\n_Rp&\nfuture<_Rp&>::get()\n{\n    unique_ptr<__shared_count, __release_shared_count> __(__state_);\n    __assoc_state<_Rp&>* __s = __state_;\n    __state_ = nullptr;\n    return __s->copy();\n}\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE future<void>\n{\n    __assoc_sub_state* __state_;\n\n    explicit future(__assoc_sub_state* __state);\n\n    template <class> friend class promise;\n    template <class> friend class shared_future;\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_deferred_assoc_state(_Fp&& __f);\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_async_assoc_state(_Fp&& __f);\n#else\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_deferred_assoc_state(_Fp __f);\n    template <class _R1, class _Fp>\n        friend future<_R1> __make_async_assoc_state(_Fp __f);\n#endif\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    future() _NOEXCEPT : __state_(nullptr) {}\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    future(future&& __rhs) _NOEXCEPT\n        : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;}\n    future(const future&) = delete;\n    future& operator=(const future&) = delete;\n    _LIBCPP_INLINE_VISIBILITY\n    future& operator=(future&& __rhs) _NOEXCEPT\n        {\n            future(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    future(const future&);\n    future& operator=(const future&);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~future();\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future<void> share() _NOEXCEPT;\n\n    // retrieving the value\n    void get();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // functions to check state\n    _LIBCPP_INLINE_VISIBILITY\n    bool valid() const _NOEXCEPT {return __state_ != nullptr;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void wait() const {__state_->wait();}\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const\n            {return __state_->wait_for(__rel_time);}\n    template <class _Clock, class _Duration>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const\n            {return __state_->wait_until(__abs_time);}\n};\n\ntemplate <class _Rp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(future<_Rp>& __x, future<_Rp>& __y) _NOEXCEPT\n{\n    __x.swap(__y);\n}\n\n// promise<R>\n\ntemplate <class _Callable> class packaged_task;\n\ntemplate <class _Rp>\nclass _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE promise\n{\n    __assoc_state<_Rp>* __state_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit promise(nullptr_t) _NOEXCEPT : __state_(nullptr) {}\n\n    template <class> friend class packaged_task;\npublic:\n    promise();\n    template <class _Alloc>\n        promise(allocator_arg_t, const _Alloc& __a);\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    promise(promise&& __rhs) _NOEXCEPT\n        : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;}\n    promise(const promise& __rhs) = delete;\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    promise(const promise& __rhs);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~promise();\n\n    // assignment\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    promise& operator=(promise&& __rhs) _NOEXCEPT\n        {\n            promise(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n    promise& operator=(const promise& __rhs) = delete;\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    promise& operator=(const promise& __rhs);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(promise& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // retrieving the result\n    future<_Rp> get_future();\n\n    // setting the result\n    void set_value(const _Rp& __r);\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    void set_value(_Rp&& __r);\n#endif\n    void set_exception(exception_ptr __p);\n\n    // setting the result with deferred notification\n    void set_value_at_thread_exit(const _Rp& __r);\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    void set_value_at_thread_exit(_Rp&& __r);\n#endif\n    void set_exception_at_thread_exit(exception_ptr __p);\n};\n\ntemplate <class _Rp>\npromise<_Rp>::promise()\n    : __state_(new __assoc_state<_Rp>)\n{\n}\n\ntemplate <class _Rp>\ntemplate <class _Alloc>\npromise<_Rp>::promise(allocator_arg_t, const _Alloc& __a0)\n{\n    typedef __assoc_state_alloc<_Rp, _Alloc> _State;\n    typedef typename __allocator_traits_rebind<_Alloc, _State>::type _A2;\n    typedef __allocator_destructor<_A2> _D2;\n    _A2 __a(__a0);\n    unique_ptr<_State, _D2> __hold(__a.allocate(1), _D2(__a, 1));\n    ::new(static_cast<void*>(_VSTD::addressof(*__hold.get()))) _State(__a0);\n    __state_ = _VSTD::addressof(*__hold.release());\n}\n\ntemplate <class _Rp>\npromise<_Rp>::~promise()\n{\n    if (__state_)\n    {\n        if (!__state_->__has_value() && __state_->use_count() > 1)\n            __state_->set_exception(make_exception_ptr(\n                      future_error(make_error_code(future_errc::broken_promise))\n                                                      ));\n        __state_->__release_shared();\n    }\n}\n\ntemplate <class _Rp>\nfuture<_Rp>\npromise<_Rp>::get_future()\n{\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    return future<_Rp>(__state_);\n}\n\ntemplate <class _Rp>\nvoid\npromise<_Rp>::set_value(const _Rp& __r)\n{\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_value(__r);\n}\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Rp>\nvoid\npromise<_Rp>::set_value(_Rp&& __r)\n{\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_value(_VSTD::move(__r));\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Rp>\nvoid\npromise<_Rp>::set_exception(exception_ptr __p)\n{\n    _LIBCPP_ASSERT( __p != nullptr, \"promise::set_exception: received nullptr\" );\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_exception(__p);\n}\n\ntemplate <class _Rp>\nvoid\npromise<_Rp>::set_value_at_thread_exit(const _Rp& __r)\n{\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_value_at_thread_exit(__r);\n}\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Rp>\nvoid\npromise<_Rp>::set_value_at_thread_exit(_Rp&& __r)\n{\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_value_at_thread_exit(_VSTD::move(__r));\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Rp>\nvoid\npromise<_Rp>::set_exception_at_thread_exit(exception_ptr __p)\n{\n    _LIBCPP_ASSERT( __p != nullptr, \"promise::set_exception_at_thread_exit: received nullptr\" );\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_exception_at_thread_exit(__p);\n}\n\n// promise<R&>\n\ntemplate <class _Rp>\nclass _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE promise<_Rp&>\n{\n    __assoc_state<_Rp&>* __state_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit promise(nullptr_t) _NOEXCEPT : __state_(nullptr) {}\n\n    template <class> friend class packaged_task;\n\npublic:\n    promise();\n    template <class _Allocator>\n        promise(allocator_arg_t, const _Allocator& __a);\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    promise(promise&& __rhs) _NOEXCEPT\n        : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;}\n    promise(const promise& __rhs) = delete;\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    promise(const promise& __rhs);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~promise();\n\n    // assignment\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    promise& operator=(promise&& __rhs) _NOEXCEPT\n        {\n            promise(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n    promise& operator=(const promise& __rhs) = delete;\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    promise& operator=(const promise& __rhs);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(promise& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // retrieving the result\n    future<_Rp&> get_future();\n\n    // setting the result\n    void set_value(_Rp& __r);\n    void set_exception(exception_ptr __p);\n\n    // setting the result with deferred notification\n    void set_value_at_thread_exit(_Rp&);\n    void set_exception_at_thread_exit(exception_ptr __p);\n};\n\ntemplate <class _Rp>\npromise<_Rp&>::promise()\n    : __state_(new __assoc_state<_Rp&>)\n{\n}\n\ntemplate <class _Rp>\ntemplate <class _Alloc>\npromise<_Rp&>::promise(allocator_arg_t, const _Alloc& __a0)\n{\n    typedef __assoc_state_alloc<_Rp&, _Alloc> _State;\n    typedef typename __allocator_traits_rebind<_Alloc, _State>::type _A2;\n    typedef __allocator_destructor<_A2> _D2;\n    _A2 __a(__a0);\n    unique_ptr<_State, _D2> __hold(__a.allocate(1), _D2(__a, 1));\n    ::new(static_cast<void*>(_VSTD::addressof(*__hold.get()))) _State(__a0);\n    __state_ = _VSTD::addressof(*__hold.release());\n}\n\ntemplate <class _Rp>\npromise<_Rp&>::~promise()\n{\n    if (__state_)\n    {\n        if (!__state_->__has_value() && __state_->use_count() > 1)\n            __state_->set_exception(make_exception_ptr(\n                      future_error(make_error_code(future_errc::broken_promise))\n                                                      ));\n        __state_->__release_shared();\n    }\n}\n\ntemplate <class _Rp>\nfuture<_Rp&>\npromise<_Rp&>::get_future()\n{\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    return future<_Rp&>(__state_);\n}\n\ntemplate <class _Rp>\nvoid\npromise<_Rp&>::set_value(_Rp& __r)\n{\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_value(__r);\n}\n\ntemplate <class _Rp>\nvoid\npromise<_Rp&>::set_exception(exception_ptr __p)\n{\n    _LIBCPP_ASSERT( __p != nullptr, \"promise::set_exception: received nullptr\" );\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_exception(__p);\n}\n\ntemplate <class _Rp>\nvoid\npromise<_Rp&>::set_value_at_thread_exit(_Rp& __r)\n{\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_value_at_thread_exit(__r);\n}\n\ntemplate <class _Rp>\nvoid\npromise<_Rp&>::set_exception_at_thread_exit(exception_ptr __p)\n{\n    _LIBCPP_ASSERT( __p != nullptr, \"promise::set_exception_at_thread_exit: received nullptr\" );\n    if (__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    __state_->set_exception_at_thread_exit(__p);\n}\n\n// promise<void>\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE promise<void>\n{\n    __assoc_sub_state* __state_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit promise(nullptr_t) _NOEXCEPT : __state_(nullptr) {}\n\n    template <class> friend class packaged_task;\n\npublic:\n    promise();\n    template <class _Allocator>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        promise(allocator_arg_t, const _Allocator& __a);\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    promise(promise&& __rhs) _NOEXCEPT\n        : __state_(__rhs.__state_) {__rhs.__state_ = nullptr;}\n    promise(const promise& __rhs) = delete;\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    promise(const promise& __rhs);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~promise();\n\n    // assignment\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    promise& operator=(promise&& __rhs) _NOEXCEPT\n        {\n            promise(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n    promise& operator=(const promise& __rhs) = delete;\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\nprivate:\n    promise& operator=(const promise& __rhs);\npublic:\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(promise& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // retrieving the result\n    future<void> get_future();\n\n    // setting the result\n    void set_value();\n    void set_exception(exception_ptr __p);\n\n    // setting the result with deferred notification\n    void set_value_at_thread_exit();\n    void set_exception_at_thread_exit(exception_ptr __p);\n};\n\ntemplate <class _Alloc>\npromise<void>::promise(allocator_arg_t, const _Alloc& __a0)\n{\n    typedef __assoc_sub_state_alloc<_Alloc> _State;\n    typedef typename __allocator_traits_rebind<_Alloc, _State>::type _A2;\n    typedef __allocator_destructor<_A2> _D2;\n    _A2 __a(__a0);\n    unique_ptr<_State, _D2> __hold(__a.allocate(1), _D2(__a, 1));\n    ::new(static_cast<void*>(_VSTD::addressof(*__hold.get()))) _State(__a0);\n    __state_ = _VSTD::addressof(*__hold.release());\n}\n\ntemplate <class _Rp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(promise<_Rp>& __x, promise<_Rp>& __y) _NOEXCEPT\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Rp, class _Alloc>\n    struct _LIBCPP_TEMPLATE_VIS uses_allocator<promise<_Rp>, _Alloc>\n        : public true_type {};\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\n// packaged_task\n\ntemplate<class _Fp> class __packaged_task_base;\n\ntemplate<class _Rp, class ..._ArgTypes>\nclass _LIBCPP_AVAILABILITY_FUTURE __packaged_task_base<_Rp(_ArgTypes...)>\n{\n    __packaged_task_base(const __packaged_task_base&);\n    __packaged_task_base& operator=(const __packaged_task_base&);\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __packaged_task_base() {}\n    _LIBCPP_INLINE_VISIBILITY\n    virtual ~__packaged_task_base() {}\n    virtual void __move_to(__packaged_task_base*) _NOEXCEPT = 0;\n    virtual void destroy() = 0;\n    virtual void destroy_deallocate() = 0;\n    virtual _Rp operator()(_ArgTypes&& ...) = 0;\n};\n\ntemplate<class _FD, class _Alloc, class _FB> class __packaged_task_func;\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nclass _LIBCPP_AVAILABILITY_FUTURE __packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>\n    : public  __packaged_task_base<_Rp(_ArgTypes...)>\n{\n    __compressed_pair<_Fp, _Alloc> __f_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __packaged_task_func(const _Fp& __f) : __f_(__f) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __packaged_task_func(_Fp&& __f) : __f_(_VSTD::move(__f)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __packaged_task_func(const _Fp& __f, const _Alloc& __a)\n        : __f_(__f, __a) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __packaged_task_func(_Fp&& __f, const _Alloc& __a)\n        : __f_(_VSTD::move(__f), __a) {}\n    virtual void __move_to(__packaged_task_base<_Rp(_ArgTypes...)>*) _NOEXCEPT;\n    virtual void destroy();\n    virtual void destroy_deallocate();\n    virtual _Rp operator()(_ArgTypes&& ... __args);\n};\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nvoid\n__packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>::__move_to(\n                              __packaged_task_base<_Rp(_ArgTypes...)>* __p) _NOEXCEPT\n{\n    ::new (__p) __packaged_task_func(_VSTD::move(__f_.first()), _VSTD::move(__f_.second()));\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nvoid\n__packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy()\n{\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\nvoid\n__packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>::destroy_deallocate()\n{\n    typedef typename __allocator_traits_rebind<_Alloc, __packaged_task_func>::type _Ap;\n    typedef allocator_traits<_Ap> _ATraits;\n    typedef pointer_traits<typename _ATraits::pointer> _PTraits;\n    _Ap __a(__f_.second());\n    __f_.~__compressed_pair<_Fp, _Alloc>();\n    __a.deallocate(_PTraits::pointer_to(*this), 1);\n}\n\ntemplate<class _Fp, class _Alloc, class _Rp, class ..._ArgTypes>\n_Rp\n__packaged_task_func<_Fp, _Alloc, _Rp(_ArgTypes...)>::operator()(_ArgTypes&& ... __arg)\n{\n    return __invoke(__f_.first(), _VSTD::forward<_ArgTypes>(__arg)...);\n}\n\ntemplate <class _Callable> class __packaged_task_function;\n\ntemplate<class _Rp, class ..._ArgTypes>\nclass _LIBCPP_AVAILABILITY_FUTURE __packaged_task_function<_Rp(_ArgTypes...)>\n{\n    typedef __packaged_task_base<_Rp(_ArgTypes...)> __base;\n    typename aligned_storage<3*sizeof(void*)>::type __buf_;\n    __base* __f_;\n\npublic:\n    typedef _Rp result_type;\n\n    // construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY\n    __packaged_task_function() _NOEXCEPT : __f_(nullptr) {}\n    template<class _Fp>\n      __packaged_task_function(_Fp&& __f);\n    template<class _Fp, class _Alloc>\n      __packaged_task_function(allocator_arg_t, const _Alloc& __a, _Fp&& __f);\n\n    __packaged_task_function(__packaged_task_function&&) _NOEXCEPT;\n    __packaged_task_function& operator=(__packaged_task_function&&) _NOEXCEPT;\n\n    __packaged_task_function(const __packaged_task_function&) =  delete;\n    __packaged_task_function& operator=(const __packaged_task_function&) =  delete;\n\n    ~__packaged_task_function();\n\n    void swap(__packaged_task_function&) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Rp operator()(_ArgTypes...) const;\n};\n\ntemplate<class _Rp, class ..._ArgTypes>\n__packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(__packaged_task_function&& __f) _NOEXCEPT\n{\n    if (__f.__f_ == nullptr)\n        __f_ = nullptr;\n    else if (__f.__f_ == (__base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__move_to(__f_);\n    }\n    else\n    {\n        __f_ = __f.__f_;\n        __f.__f_ = nullptr;\n    }\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <class _Fp>\n__packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(_Fp&& __f)\n    : __f_(nullptr)\n{\n    typedef typename remove_reference<typename decay<_Fp>::type>::type _FR;\n    typedef __packaged_task_func<_FR, allocator<_FR>, _Rp(_ArgTypes...)> _FF;\n    if (sizeof(_FF) <= sizeof(__buf_))\n    {\n        __f_ = (__base*)&__buf_;\n        ::new (__f_) _FF(_VSTD::forward<_Fp>(__f));\n    }\n    else\n    {\n        typedef allocator<_FF> _Ap;\n        _Ap __a;\n        typedef __allocator_destructor<_Ap> _Dp;\n        unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n        ::new (__hold.get()) _FF(_VSTD::forward<_Fp>(__f), allocator<_FR>(__a));\n        __f_ = __hold.release();\n    }\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\ntemplate <class _Fp, class _Alloc>\n__packaged_task_function<_Rp(_ArgTypes...)>::__packaged_task_function(\n                                  allocator_arg_t, const _Alloc& __a0, _Fp&& __f)\n    : __f_(nullptr)\n{\n    typedef typename remove_reference<typename decay<_Fp>::type>::type _FR;\n    typedef __packaged_task_func<_FR, _Alloc, _Rp(_ArgTypes...)> _FF;\n    if (sizeof(_FF) <= sizeof(__buf_))\n    {\n        __f_ = (__base*)&__buf_;\n        ::new (__f_) _FF(_VSTD::forward<_Fp>(__f));\n    }\n    else\n    {\n        typedef typename __allocator_traits_rebind<_Alloc, _FF>::type _Ap;\n        _Ap __a(__a0);\n        typedef __allocator_destructor<_Ap> _Dp;\n        unique_ptr<__base, _Dp> __hold(__a.allocate(1), _Dp(__a, 1));\n        ::new (static_cast<void*>(_VSTD::addressof(*__hold.get())))\n            _FF(_VSTD::forward<_Fp>(__f), _Alloc(__a));\n        __f_ = _VSTD::addressof(*__hold.release());\n    }\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\n__packaged_task_function<_Rp(_ArgTypes...)>&\n__packaged_task_function<_Rp(_ArgTypes...)>::operator=(__packaged_task_function&& __f) _NOEXCEPT\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n    __f_ = nullptr;\n    if (__f.__f_ == nullptr)\n        __f_ = nullptr;\n    else if (__f.__f_ == (__base*)&__f.__buf_)\n    {\n        __f_ = (__base*)&__buf_;\n        __f.__f_->__move_to(__f_);\n    }\n    else\n    {\n        __f_ = __f.__f_;\n        __f.__f_ = nullptr;\n    }\n    return *this;\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\n__packaged_task_function<_Rp(_ArgTypes...)>::~__packaged_task_function()\n{\n    if (__f_ == (__base*)&__buf_)\n        __f_->destroy();\n    else if (__f_)\n        __f_->destroy_deallocate();\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\nvoid\n__packaged_task_function<_Rp(_ArgTypes...)>::swap(__packaged_task_function& __f) _NOEXCEPT\n{\n    if (__f_ == (__base*)&__buf_ && __f.__f_ == (__base*)&__f.__buf_)\n    {\n        typename aligned_storage<sizeof(__buf_)>::type __tempbuf;\n        __base* __t = (__base*)&__tempbuf;\n        __f_->__move_to(__t);\n        __f_->destroy();\n        __f_ = nullptr;\n        __f.__f_->__move_to((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = nullptr;\n        __f_ = (__base*)&__buf_;\n        __t->__move_to((__base*)&__f.__buf_);\n        __t->destroy();\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f_ == (__base*)&__buf_)\n    {\n        __f_->__move_to((__base*)&__f.__buf_);\n        __f_->destroy();\n        __f_ = __f.__f_;\n        __f.__f_ = (__base*)&__f.__buf_;\n    }\n    else if (__f.__f_ == (__base*)&__f.__buf_)\n    {\n        __f.__f_->__move_to((__base*)&__buf_);\n        __f.__f_->destroy();\n        __f.__f_ = __f_;\n        __f_ = (__base*)&__buf_;\n    }\n    else\n        _VSTD::swap(__f_, __f.__f_);\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\ninline\n_Rp\n__packaged_task_function<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __arg) const\n{\n    return (*__f_)(_VSTD::forward<_ArgTypes>(__arg)...);\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\nclass _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE packaged_task<_Rp(_ArgTypes...)>\n{\npublic:\n    typedef _Rp result_type; // extension\n\nprivate:\n    __packaged_task_function<result_type(_ArgTypes...)> __f_;\n    promise<result_type>                                __p_;\n\npublic:\n    // construction and destruction\n    _LIBCPP_INLINE_VISIBILITY\n    packaged_task() _NOEXCEPT : __p_(nullptr) {}\n    template <class _Fp,\n              class = typename enable_if\n              <\n                  !is_same<\n                      typename decay<_Fp>::type, \n                      packaged_task\n                      >::value\n                  >::type\n             >\n        _LIBCPP_INLINE_VISIBILITY\n        explicit packaged_task(_Fp&& __f) : __f_(_VSTD::forward<_Fp>(__f)) {}\n    template <class _Fp, class _Allocator,\n              class = typename enable_if\n              <\n                  !is_same<\n                      typename decay<_Fp>::type, \n                      packaged_task\n                      >::value\n                  >::type\n              >\n        _LIBCPP_INLINE_VISIBILITY\n        packaged_task(allocator_arg_t, const _Allocator& __a, _Fp&& __f)\n             : __f_(allocator_arg, __a, _VSTD::forward<_Fp>(__f)),\n               __p_(allocator_arg, __a) {}\n    // ~packaged_task() = default;\n\n    // no copy\n    packaged_task(const packaged_task&) = delete;\n    packaged_task& operator=(const packaged_task&) = delete;\n\n    // move support\n    _LIBCPP_INLINE_VISIBILITY\n    packaged_task(packaged_task&& __other) _NOEXCEPT\n        : __f_(_VSTD::move(__other.__f_)), __p_(_VSTD::move(__other.__p_)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    packaged_task& operator=(packaged_task&& __other) _NOEXCEPT\n    {\n        __f_ = _VSTD::move(__other.__f_);\n        __p_ = _VSTD::move(__other.__p_);\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(packaged_task& __other) _NOEXCEPT\n    {\n        __f_.swap(__other.__f_);\n        __p_.swap(__other.__p_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool valid() const _NOEXCEPT {return __p_.__state_ != nullptr;}\n\n    // result retrieval\n    _LIBCPP_INLINE_VISIBILITY\n    future<result_type> get_future() {return __p_.get_future();}\n\n    // execution\n    void operator()(_ArgTypes... __args);\n    void make_ready_at_thread_exit(_ArgTypes... __args);\n\n    void reset();\n};\n\ntemplate<class _Rp, class ..._ArgTypes>\nvoid\npackaged_task<_Rp(_ArgTypes...)>::operator()(_ArgTypes... __args)\n{\n    if (__p_.__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    if (__p_.__state_->__has_value())\n        __throw_future_error(future_errc::promise_already_satisfied);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __p_.set_value(__f_(_VSTD::forward<_ArgTypes>(__args)...));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __p_.set_exception(current_exception());\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\nvoid\npackaged_task<_Rp(_ArgTypes...)>::make_ready_at_thread_exit(_ArgTypes... __args)\n{\n    if (__p_.__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    if (__p_.__state_->__has_value())\n        __throw_future_error(future_errc::promise_already_satisfied);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __p_.set_value_at_thread_exit(__f_(_VSTD::forward<_ArgTypes>(__args)...));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __p_.set_exception_at_thread_exit(current_exception());\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate<class _Rp, class ..._ArgTypes>\nvoid\npackaged_task<_Rp(_ArgTypes...)>::reset()\n{\n    if (!valid())\n        __throw_future_error(future_errc::no_state);\n    __p_ = promise<result_type>();\n}\n\ntemplate<class ..._ArgTypes>\nclass _LIBCPP_TEMPLATE_VIS _LIBCPP_AVAILABILITY_FUTURE packaged_task<void(_ArgTypes...)>\n{\npublic:\n    typedef void result_type; // extension\n\nprivate:\n    __packaged_task_function<result_type(_ArgTypes...)> __f_;\n    promise<result_type>                                __p_;\n\npublic:\n    // construction and destruction\n    _LIBCPP_INLINE_VISIBILITY\n    packaged_task() _NOEXCEPT : __p_(nullptr) {}\n    template <class _Fp,\n              class = typename enable_if\n              <\n                  !is_same<\n                      typename decay<_Fp>::type, \n                      packaged_task\n                      >::value\n                  >::type\n              >\n        _LIBCPP_INLINE_VISIBILITY\n        explicit packaged_task(_Fp&& __f) : __f_(_VSTD::forward<_Fp>(__f)) {}\n    template <class _Fp, class _Allocator,\n              class = typename enable_if\n              <\n                  !is_same<\n                      typename decay<_Fp>::type, \n                      packaged_task\n                      >::value\n                  >::type\n              >    \n        _LIBCPP_INLINE_VISIBILITY\n        packaged_task(allocator_arg_t, const _Allocator& __a, _Fp&& __f)\n             : __f_(allocator_arg, __a, _VSTD::forward<_Fp>(__f)),\n               __p_(allocator_arg, __a) {}\n    // ~packaged_task() = default;\n\n    // no copy\n    packaged_task(const packaged_task&) = delete;\n    packaged_task& operator=(const packaged_task&) = delete;\n\n    // move support\n    _LIBCPP_INLINE_VISIBILITY\n    packaged_task(packaged_task&& __other) _NOEXCEPT\n        : __f_(_VSTD::move(__other.__f_)), __p_(_VSTD::move(__other.__p_)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    packaged_task& operator=(packaged_task&& __other) _NOEXCEPT\n    {\n        __f_ = _VSTD::move(__other.__f_);\n        __p_ = _VSTD::move(__other.__p_);\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(packaged_task& __other) _NOEXCEPT\n    {\n        __f_.swap(__other.__f_);\n        __p_.swap(__other.__p_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool valid() const _NOEXCEPT {return __p_.__state_ != nullptr;}\n\n    // result retrieval\n    _LIBCPP_INLINE_VISIBILITY\n    future<result_type> get_future() {return __p_.get_future();}\n\n    // execution\n    void operator()(_ArgTypes... __args);\n    void make_ready_at_thread_exit(_ArgTypes... __args);\n\n    void reset();\n};\n\ntemplate<class ..._ArgTypes>\nvoid\npackaged_task<void(_ArgTypes...)>::operator()(_ArgTypes... __args)\n{\n    if (__p_.__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    if (__p_.__state_->__has_value())\n        __throw_future_error(future_errc::promise_already_satisfied);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __f_(_VSTD::forward<_ArgTypes>(__args)...);\n        __p_.set_value();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __p_.set_exception(current_exception());\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate<class ..._ArgTypes>\nvoid\npackaged_task<void(_ArgTypes...)>::make_ready_at_thread_exit(_ArgTypes... __args)\n{\n    if (__p_.__state_ == nullptr)\n        __throw_future_error(future_errc::no_state);\n    if (__p_.__state_->__has_value())\n        __throw_future_error(future_errc::promise_already_satisfied);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __f_(_VSTD::forward<_ArgTypes>(__args)...);\n        __p_.set_value_at_thread_exit();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __p_.set_exception_at_thread_exit(current_exception());\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate<class ..._ArgTypes>\nvoid\npackaged_task<void(_ArgTypes...)>::reset()\n{\n    if (!valid())\n        __throw_future_error(future_errc::no_state);\n    __p_ = promise<result_type>();\n}\n\ntemplate <class _Callable>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(packaged_task<_Callable>& __x, packaged_task<_Callable>& __y) _NOEXCEPT\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Callable, class _Alloc>\nstruct _LIBCPP_TEMPLATE_VIS uses_allocator<packaged_task<_Callable>, _Alloc>\n    : public true_type {};\n\ntemplate <class _Rp, class _Fp>\nfuture<_Rp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n__make_deferred_assoc_state(_Fp&& __f)\n#else\n__make_deferred_assoc_state(_Fp __f)\n#endif\n{\n    unique_ptr<__deferred_assoc_state<_Rp, _Fp>, __release_shared_count>\n        __h(new __deferred_assoc_state<_Rp, _Fp>(_VSTD::forward<_Fp>(__f)));\n    return future<_Rp>(__h.get());\n}\n\ntemplate <class _Rp, class _Fp>\nfuture<_Rp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n__make_async_assoc_state(_Fp&& __f)\n#else\n__make_async_assoc_state(_Fp __f)\n#endif\n{\n    unique_ptr<__async_assoc_state<_Rp, _Fp>, __release_shared_count>\n        __h(new __async_assoc_state<_Rp, _Fp>(_VSTD::forward<_Fp>(__f)));\n    _VSTD::thread(&__async_assoc_state<_Rp, _Fp>::__execute, __h.get()).detach();\n    return future<_Rp>(__h.get());\n}\n\ntemplate <class _Fp, class... _Args>\nclass __async_func\n{\n    tuple<_Fp, _Args...> __f_;\n\npublic:\n    typedef typename __invoke_of<_Fp, _Args...>::type _Rp;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __async_func(_Fp&& __f, _Args&&... __args)\n        : __f_(_VSTD::move(__f), _VSTD::move(__args)...) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __async_func(__async_func&& __f) : __f_(_VSTD::move(__f.__f_)) {}\n\n    _Rp operator()()\n    {\n        typedef typename __make_tuple_indices<1+sizeof...(_Args), 1>::type _Index;\n        return __execute(_Index());\n    }\nprivate:\n    template <size_t ..._Indices>\n    _Rp\n    __execute(__tuple_indices<_Indices...>)\n    {\n        return __invoke(_VSTD::move(_VSTD::get<0>(__f_)), _VSTD::move(_VSTD::get<_Indices>(__f_))...);\n    }\n};\n\ninline _LIBCPP_INLINE_VISIBILITY bool __does_policy_contain(launch __policy, launch __value )\n{ return (int(__policy) & int(__value)) != 0; }\n\ntemplate <class _Fp, class... _Args>\nfuture<typename __invoke_of<typename decay<_Fp>::type, typename decay<_Args>::type...>::type>\nasync(launch __policy, _Fp&& __f, _Args&&... __args)\n{\n    typedef __async_func<typename decay<_Fp>::type, typename decay<_Args>::type...> _BF;\n    typedef typename _BF::_Rp _Rp;\n\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif\n        if (__does_policy_contain(__policy, launch::async))\n        return _VSTD::__make_async_assoc_state<_Rp>(_BF(__decay_copy(_VSTD::forward<_Fp>(__f)),\n                                                     __decay_copy(_VSTD::forward<_Args>(__args))...));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch ( ... ) { if (__policy == launch::async) throw ; }\n#endif\n\n    if (__does_policy_contain(__policy, launch::deferred))\n        return _VSTD::__make_deferred_assoc_state<_Rp>(_BF(__decay_copy(_VSTD::forward<_Fp>(__f)),\n                                                        __decay_copy(_VSTD::forward<_Args>(__args))...));\n    return future<_Rp>{};\n}\n\ntemplate <class _Fp, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nfuture<typename __invoke_of<typename decay<_Fp>::type, typename decay<_Args>::type...>::type>\nasync(_Fp&& __f, _Args&&... __args)\n{\n    return _VSTD::async(launch::any, _VSTD::forward<_Fp>(__f),\n                                    _VSTD::forward<_Args>(__args)...);\n}\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\n// shared_future\n\ntemplate <class _Rp>\nclass _LIBCPP_TEMPLATE_VIS shared_future\n{\n    __assoc_state<_Rp>* __state_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future() _NOEXCEPT : __state_(nullptr) {}\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(const shared_future& __rhs)  _NOEXCEPT : __state_(__rhs.__state_)\n        {if (__state_) __state_->__add_shared();}\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(future<_Rp>&& __f) _NOEXCEPT : __state_(__f.__state_)\n        {__f.__state_ = nullptr;}\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(shared_future&& __rhs) _NOEXCEPT : __state_(__rhs.__state_)\n        {__rhs.__state_ = nullptr;}\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~shared_future();\n    shared_future& operator=(const shared_future& __rhs) _NOEXCEPT;\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future& operator=(shared_future&& __rhs) _NOEXCEPT\n        {\n            shared_future(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n    // retrieving the value\n    _LIBCPP_INLINE_VISIBILITY\n    const _Rp& get() const {return __state_->copy();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(shared_future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // functions to check state\n    _LIBCPP_INLINE_VISIBILITY\n    bool valid() const _NOEXCEPT {return __state_ != nullptr;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void wait() const {__state_->wait();}\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const\n            {return __state_->wait_for(__rel_time);}\n    template <class _Clock, class _Duration>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const\n            {return __state_->wait_until(__abs_time);}\n};\n\ntemplate <class _Rp>\nshared_future<_Rp>::~shared_future()\n{\n    if (__state_)\n        __state_->__release_shared();\n}\n\ntemplate <class _Rp>\nshared_future<_Rp>&\nshared_future<_Rp>::operator=(const shared_future& __rhs) _NOEXCEPT\n{\n    if (__rhs.__state_)\n        __rhs.__state_->__add_shared();\n    if (__state_)\n        __state_->__release_shared();\n    __state_ = __rhs.__state_;\n    return *this;\n}\n\ntemplate <class _Rp>\nclass _LIBCPP_TEMPLATE_VIS shared_future<_Rp&>\n{\n    __assoc_state<_Rp&>* __state_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future() _NOEXCEPT : __state_(nullptr) {}\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(const shared_future& __rhs) : __state_(__rhs.__state_)\n        {if (__state_) __state_->__add_shared();}\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(future<_Rp&>&& __f) _NOEXCEPT : __state_(__f.__state_)\n        {__f.__state_ = nullptr;}\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(shared_future&& __rhs) _NOEXCEPT : __state_(__rhs.__state_)\n        {__rhs.__state_ = nullptr;}\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~shared_future();\n    shared_future& operator=(const shared_future& __rhs);\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future& operator=(shared_future&& __rhs) _NOEXCEPT\n        {\n            shared_future(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n    // retrieving the value\n    _LIBCPP_INLINE_VISIBILITY\n    _Rp& get() const {return __state_->copy();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(shared_future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // functions to check state\n    _LIBCPP_INLINE_VISIBILITY\n    bool valid() const _NOEXCEPT {return __state_ != nullptr;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void wait() const {__state_->wait();}\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const\n            {return __state_->wait_for(__rel_time);}\n    template <class _Clock, class _Duration>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const\n            {return __state_->wait_until(__abs_time);}\n};\n\ntemplate <class _Rp>\nshared_future<_Rp&>::~shared_future()\n{\n    if (__state_)\n        __state_->__release_shared();\n}\n\ntemplate <class _Rp>\nshared_future<_Rp&>&\nshared_future<_Rp&>::operator=(const shared_future& __rhs)\n{\n    if (__rhs.__state_)\n        __rhs.__state_->__add_shared();\n    if (__state_)\n        __state_->__release_shared();\n    __state_ = __rhs.__state_;\n    return *this;\n}\n\ntemplate <>\nclass _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_FUTURE shared_future<void>\n{\n    __assoc_sub_state* __state_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future() _NOEXCEPT : __state_(nullptr) {}\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(const shared_future& __rhs) : __state_(__rhs.__state_)\n        {if (__state_) __state_->__add_shared();}\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(future<void>&& __f) _NOEXCEPT : __state_(__f.__state_)\n        {__f.__state_ = nullptr;}\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future(shared_future&& __rhs) _NOEXCEPT : __state_(__rhs.__state_)\n        {__rhs.__state_ = nullptr;}\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~shared_future();\n    shared_future& operator=(const shared_future& __rhs);\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    shared_future& operator=(shared_future&& __rhs) _NOEXCEPT\n        {\n            shared_future(std::move(__rhs)).swap(*this);\n            return *this;\n        }\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n    // retrieving the value\n    _LIBCPP_INLINE_VISIBILITY\n    void get() const {__state_->copy();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(shared_future& __rhs) _NOEXCEPT {_VSTD::swap(__state_, __rhs.__state_);}\n\n    // functions to check state\n    _LIBCPP_INLINE_VISIBILITY\n    bool valid() const _NOEXCEPT {return __state_ != nullptr;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void wait() const {__state_->wait();}\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const\n            {return __state_->wait_for(__rel_time);}\n    template <class _Clock, class _Duration>\n        _LIBCPP_INLINE_VISIBILITY\n        future_status\n        wait_until(const chrono::time_point<_Clock, _Duration>& __abs_time) const\n            {return __state_->wait_until(__abs_time);}\n};\n\ntemplate <class _Rp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(shared_future<_Rp>& __x, shared_future<_Rp>& __y) _NOEXCEPT\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Rp>\ninline\nshared_future<_Rp>\nfuture<_Rp>::share() _NOEXCEPT\n{\n    return shared_future<_Rp>(_VSTD::move(*this));\n}\n\ntemplate <class _Rp>\ninline\nshared_future<_Rp&>\nfuture<_Rp&>::share() _NOEXCEPT\n{\n    return shared_future<_Rp&>(_VSTD::move(*this));\n}\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ninline\nshared_future<void>\nfuture<void>::share() _NOEXCEPT\n{\n    return shared_future<void>(_VSTD::move(*this));\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif // !_LIBCPP_HAS_NO_THREADS\n\n#endif  // _LIBCPP_FUTURE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/initializer_list",
    "content": "// -*- C++ -*-\n//===----------------------- initializer_list -----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_INITIALIZER_LIST\n#define _LIBCPP_INITIALIZER_LIST\n\n/*\n    initializer_list synopsis\n\nnamespace std\n{\n\ntemplate<class E>\nclass initializer_list\n{\npublic:\n    typedef E        value_type;\n    typedef const E& reference;\n    typedef const E& const_reference;\n    typedef size_t   size_type;\n\n    typedef const E* iterator;\n    typedef const E* const_iterator;\n\n    initializer_list() noexcept; // constexpr in C++14\n\n    size_t   size()  const noexcept; // constexpr in C++14\n    const E* begin() const noexcept; // constexpr in C++14\n    const E* end()   const noexcept; // constexpr in C++14\n};\n\ntemplate<class E> const E* begin(initializer_list<E> il) noexcept; // constexpr in C++14\ntemplate<class E> const E* end(initializer_list<E> il) noexcept; // constexpr in C++14\n\n}  // std\n\n*/\n\n#include <__config>\n#include <cstddef>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\nnamespace std  // purposefully not versioned\n{\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _Ep>\nclass _LIBCPP_TEMPLATE_VIS initializer_list\n{\n    const _Ep* __begin_;\n    size_t    __size_;\n\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR_AFTER_CXX11\n    initializer_list(const _Ep* __b, size_t __s) _NOEXCEPT\n        : __begin_(__b),\n          __size_(__s)\n        {}\npublic:\n    typedef _Ep        value_type;\n    typedef const _Ep& reference;\n    typedef const _Ep& const_reference;\n    typedef size_t    size_type;\n\n    typedef const _Ep* iterator;\n    typedef const _Ep* const_iterator;\n\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR_AFTER_CXX11\n    initializer_list() _NOEXCEPT : __begin_(nullptr), __size_(0) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR_AFTER_CXX11\n    size_t    size()  const _NOEXCEPT {return __size_;}\n    \n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR_AFTER_CXX11\n    const _Ep* begin() const _NOEXCEPT {return __begin_;}\n\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR_AFTER_CXX11\n    const _Ep* end()   const _NOEXCEPT {return __begin_ + __size_;}\n};\n\ntemplate<class _Ep>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Ep*\nbegin(initializer_list<_Ep> __il) _NOEXCEPT\n{\n    return __il.begin();\n}\n\ntemplate<class _Ep>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR_AFTER_CXX11\nconst _Ep*\nend(initializer_list<_Ep> __il) _NOEXCEPT\n{\n    return __il.end();\n}\n\n#endif  // !defined(_LIBCPP_CXX03_LANG)\n\n}  // std\n\n#endif  // _LIBCPP_INITIALIZER_LIST\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/inttypes.h",
    "content": "// -*- C++ -*-\n//===--------------------------- inttypes.h -------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_INTTYPES_H\n#define _LIBCPP_INTTYPES_H\n\n/*\n    inttypes.h synopsis\n\nThis entire header is C99 / C++0X\n\n#include <stdint.h>  // <cinttypes> includes <cstdint>\n\nMacros:\n\n    PRId8\n    PRId16\n    PRId32\n    PRId64\n\n    PRIdLEAST8\n    PRIdLEAST16\n    PRIdLEAST32\n    PRIdLEAST64\n\n    PRIdFAST8\n    PRIdFAST16\n    PRIdFAST32\n    PRIdFAST64\n\n    PRIdMAX\n    PRIdPTR\n\n    PRIi8\n    PRIi16\n    PRIi32\n    PRIi64\n\n    PRIiLEAST8\n    PRIiLEAST16\n    PRIiLEAST32\n    PRIiLEAST64\n\n    PRIiFAST8\n    PRIiFAST16\n    PRIiFAST32\n    PRIiFAST64\n\n    PRIiMAX\n    PRIiPTR\n\n    PRIo8\n    PRIo16\n    PRIo32\n    PRIo64\n\n    PRIoLEAST8\n    PRIoLEAST16\n    PRIoLEAST32\n    PRIoLEAST64\n\n    PRIoFAST8\n    PRIoFAST16\n    PRIoFAST32\n    PRIoFAST64\n\n    PRIoMAX\n    PRIoPTR\n\n    PRIu8\n    PRIu16\n    PRIu32\n    PRIu64\n\n    PRIuLEAST8\n    PRIuLEAST16\n    PRIuLEAST32\n    PRIuLEAST64\n\n    PRIuFAST8\n    PRIuFAST16\n    PRIuFAST32\n    PRIuFAST64\n\n    PRIuMAX\n    PRIuPTR\n\n    PRIx8\n    PRIx16\n    PRIx32\n    PRIx64\n\n    PRIxLEAST8\n    PRIxLEAST16\n    PRIxLEAST32\n    PRIxLEAST64\n\n    PRIxFAST8\n    PRIxFAST16\n    PRIxFAST32\n    PRIxFAST64\n\n    PRIxMAX\n    PRIxPTR\n\n    PRIX8\n    PRIX16\n    PRIX32\n    PRIX64\n\n    PRIXLEAST8\n    PRIXLEAST16\n    PRIXLEAST32\n    PRIXLEAST64\n\n    PRIXFAST8\n    PRIXFAST16\n    PRIXFAST32\n    PRIXFAST64\n\n    PRIXMAX\n    PRIXPTR\n\n    SCNd8\n    SCNd16\n    SCNd32\n    SCNd64\n\n    SCNdLEAST8\n    SCNdLEAST16\n    SCNdLEAST32\n    SCNdLEAST64\n\n    SCNdFAST8\n    SCNdFAST16\n    SCNdFAST32\n    SCNdFAST64\n\n    SCNdMAX\n    SCNdPTR\n\n    SCNi8\n    SCNi16\n    SCNi32\n    SCNi64\n\n    SCNiLEAST8\n    SCNiLEAST16\n    SCNiLEAST32\n    SCNiLEAST64\n\n    SCNiFAST8\n    SCNiFAST16\n    SCNiFAST32\n    SCNiFAST64\n\n    SCNiMAX\n    SCNiPTR\n\n    SCNo8\n    SCNo16\n    SCNo32\n    SCNo64\n\n    SCNoLEAST8\n    SCNoLEAST16\n    SCNoLEAST32\n    SCNoLEAST64\n\n    SCNoFAST8\n    SCNoFAST16\n    SCNoFAST32\n    SCNoFAST64\n\n    SCNoMAX\n    SCNoPTR\n\n    SCNu8\n    SCNu16\n    SCNu32\n    SCNu64\n\n    SCNuLEAST8\n    SCNuLEAST16\n    SCNuLEAST32\n    SCNuLEAST64\n\n    SCNuFAST8\n    SCNuFAST16\n    SCNuFAST32\n    SCNuFAST64\n\n    SCNuMAX\n    SCNuPTR\n\n    SCNx8\n    SCNx16\n    SCNx32\n    SCNx64\n\n    SCNxLEAST8\n    SCNxLEAST16\n    SCNxLEAST32\n    SCNxLEAST64\n\n    SCNxFAST8\n    SCNxFAST16\n    SCNxFAST32\n    SCNxFAST64\n\n    SCNxMAX\n    SCNxPTR\n\nTypes:\n\n    imaxdiv_t\n\nintmax_t  imaxabs(intmax_t j);\nimaxdiv_t imaxdiv(intmax_t numer, intmax_t denom);\nintmax_t  strtoimax(const char* restrict nptr, char** restrict endptr, int base);\nuintmax_t strtoumax(const char* restrict nptr, char** restrict endptr, int base);\nintmax_t  wcstoimax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);\nuintmax_t wcstoumax(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n/* C99 stdlib (e.g. glibc < 2.18) does not provide format macros needed\n   for C++11 unless __STDC_FORMAT_MACROS is defined\n*/\n#if defined(__cplusplus) && !defined(__STDC_FORMAT_MACROS)\n#   define __STDC_FORMAT_MACROS\n#endif\n\n#include_next <inttypes.h>\n\n#ifdef __cplusplus\n\n#include <stdint.h>\n\n#undef imaxabs\n#undef imaxdiv\n\n#endif // __cplusplus\n\n#endif  // _LIBCPP_INTTYPES_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iomanip",
    "content": "// -*- C++ -*-\n//===--------------------------- iomanip ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_IOMANIP\n#define _LIBCPP_IOMANIP\n\n/*\n    iomanip synopsis\n\nnamespace std {\n\n// types T1, T2, ... are unspecified implementation types\nT1 resetiosflags(ios_base::fmtflags mask);\nT2 setiosflags (ios_base::fmtflags mask);\nT3 setbase(int base);\ntemplate<charT> T4 setfill(charT c);\nT5 setprecision(int n);\nT6 setw(int n);\ntemplate <class moneyT> T7 get_money(moneyT& mon, bool intl = false);\ntemplate <class charT, class moneyT> T8 put_money(const moneyT& mon, bool intl = false);\ntemplate <class charT> T9 get_time(struct tm* tmb, const charT* fmt);\ntemplate <class charT> T10 put_time(const struct tm* tmb, const charT* fmt);\n\ntemplate <class charT>\n  T11 quoted(const charT* s, charT delim=charT('\"'), charT escape=charT('\\\\')); // C++14\n\ntemplate <class charT, class traits, class Allocator>\n  T12 quoted(const basic_string<charT, traits, Allocator>& s,\n             charT delim=charT('\"'), charT escape=charT('\\\\')); // C++14\n\ntemplate <class charT, class traits, class Allocator>\n  T13 quoted(basic_string<charT, traits, Allocator>& s,\n             charT delim=charT('\"'), charT escape=charT('\\\\')); // C++14\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__string>\n#include <istream>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// resetiosflags\n\nclass __iom_t1\n{\n    ios_base::fmtflags __mask_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __iom_t1(ios_base::fmtflags __m) : __mask_(__m) {}\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t1& __x)\n    {\n        __is.unsetf(__x.__mask_);\n        return __is;\n    }\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t1& __x)\n    {\n        __os.unsetf(__x.__mask_);\n        return __os;\n    }\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t1\nresetiosflags(ios_base::fmtflags __mask)\n{\n    return __iom_t1(__mask);\n}\n\n// setiosflags\n\nclass __iom_t2\n{\n    ios_base::fmtflags __mask_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __iom_t2(ios_base::fmtflags __m) : __mask_(__m) {}\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t2& __x)\n    {\n        __is.setf(__x.__mask_);\n        return __is;\n    }\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t2& __x)\n    {\n        __os.setf(__x.__mask_);\n        return __os;\n    }\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t2\nsetiosflags(ios_base::fmtflags __mask)\n{\n    return __iom_t2(__mask);\n}\n\n// setbase\n\nclass __iom_t3\n{\n    int __base_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __iom_t3(int __b) : __base_(__b) {}\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t3& __x)\n    {\n        __is.setf(__x.__base_ == 8  ? ios_base::oct :\n                  __x.__base_ == 10 ? ios_base::dec :\n                  __x.__base_ == 16 ? ios_base::hex :\n                  ios_base::fmtflags(0), ios_base::basefield);\n        return __is;\n    }\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t3& __x)\n    {\n        __os.setf(__x.__base_ == 8  ? ios_base::oct :\n                  __x.__base_ == 10 ? ios_base::dec :\n                  __x.__base_ == 16 ? ios_base::hex :\n                  ios_base::fmtflags(0), ios_base::basefield);\n        return __os;\n    }\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t3\nsetbase(int __base)\n{\n    return __iom_t3(__base);\n}\n\n// setfill\n\ntemplate<class _CharT>\nclass __iom_t4\n{\n    _CharT __fill_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __iom_t4(_CharT __c) : __fill_(__c) {}\n\n    template <class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t4& __x)\n    {\n        __os.fill(__x.__fill_);\n        return __os;\n    }\n};\n\ntemplate<class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t4<_CharT>\nsetfill(_CharT __c)\n{\n    return __iom_t4<_CharT>(__c);\n}\n\n// setprecision\n\nclass __iom_t5\n{\n    int __n_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __iom_t5(int __n) : __n_(__n) {}\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t5& __x)\n    {\n        __is.precision(__x.__n_);\n        return __is;\n    }\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t5& __x)\n    {\n        __os.precision(__x.__n_);\n        return __os;\n    }\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t5\nsetprecision(int __n)\n{\n    return __iom_t5(__n);\n}\n\n// setw\n\nclass __iom_t6\n{\n    int __n_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __iom_t6(int __n) : __n_(__n) {}\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t6& __x)\n    {\n        __is.width(__x.__n_);\n        return __is;\n    }\n\n    template <class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t6& __x)\n    {\n        __os.width(__x.__n_);\n        return __os;\n    }\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t6\nsetw(int __n)\n{\n    return __iom_t6(__n);\n}\n\n// get_money\n\ntemplate <class _MoneyT> class __iom_t7;\n\ntemplate <class _CharT, class _Traits, class _MoneyT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_MoneyT>& __x);\n\ntemplate <class _MoneyT>\nclass __iom_t7\n{\n    _MoneyT& __mon_;\n    bool __intl_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __iom_t7(_MoneyT& __mon, bool __intl)\n        : __mon_(__mon), __intl_(__intl) {}\n\n    template <class _CharT, class _Traits, class _Mp>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_Mp>& __x);\n};\n\ntemplate <class _CharT, class _Traits, class _MoneyT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t7<_MoneyT>& __x)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_istream<_CharT, _Traits>::sentry __s(__is);\n        if (__s)\n        {\n            typedef istreambuf_iterator<_CharT, _Traits> _Ip;\n            typedef money_get<_CharT, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            const _Fp& __mf = use_facet<_Fp>(__is.getloc());\n            __mf.get(_Ip(__is), _Ip(), __x.__intl_, __is, __err, __x.__mon_);\n            __is.setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __is.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __is;\n}\n\ntemplate <class _MoneyT>\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t7<_MoneyT>\nget_money(_MoneyT& __mon, bool __intl = false)\n{\n    return __iom_t7<_MoneyT>(__mon, __intl);\n}\n\n// put_money\n\ntemplate <class _MoneyT> class __iom_t8;\n\ntemplate <class _CharT, class _Traits, class _MoneyT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_MoneyT>& __x);\n\ntemplate <class _MoneyT>\nclass __iom_t8\n{\n    const _MoneyT& __mon_;\n    bool __intl_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __iom_t8(const _MoneyT& __mon, bool __intl)\n        : __mon_(__mon), __intl_(__intl) {}\n\n    template <class _CharT, class _Traits, class _Mp>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_Mp>& __x);\n};\n\ntemplate <class _CharT, class _Traits, class _MoneyT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t8<_MoneyT>& __x)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_ostream<_CharT, _Traits>::sentry __s(__os);\n        if (__s)\n        {\n            typedef ostreambuf_iterator<_CharT, _Traits> _Op;\n            typedef money_put<_CharT, _Op> _Fp;\n            const _Fp& __mf = use_facet<_Fp>(__os.getloc());\n            if (__mf.put(_Op(__os), __x.__intl_, __os, __os.fill(), __x.__mon_).failed())\n                __os.setstate(ios_base::badbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __os.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __os;\n}\n\ntemplate <class _MoneyT>\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t8<_MoneyT>\nput_money(const _MoneyT& __mon, bool __intl = false)\n{\n    return __iom_t8<_MoneyT>(__mon, __intl);\n}\n\n// get_time\n\ntemplate <class _CharT> class __iom_t9;\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t9<_CharT>& __x);\n\ntemplate <class _CharT>\nclass __iom_t9\n{\n    tm* __tm_;\n    const _CharT* __fmt_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __iom_t9(tm* __tm, const _CharT* __fmt)\n        : __tm_(__tm), __fmt_(__fmt) {}\n\n    template <class _Cp, class _Traits>\n    friend\n    basic_istream<_Cp, _Traits>&\n    operator>>(basic_istream<_Cp, _Traits>& __is, const __iom_t9<_Cp>& __x);\n};\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t9<_CharT>& __x)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_istream<_CharT, _Traits>::sentry __s(__is);\n        if (__s)\n        {\n            typedef istreambuf_iterator<_CharT, _Traits> _Ip;\n            typedef time_get<_CharT, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            const _Fp& __tf = use_facet<_Fp>(__is.getloc());\n            __tf.get(_Ip(__is), _Ip(), __is, __err, __x.__tm_,\n                     __x.__fmt_, __x.__fmt_ + _Traits::length(__x.__fmt_));\n            __is.setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __is.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __is;\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t9<_CharT>\nget_time(tm* __tm, const _CharT* __fmt)\n{\n    return __iom_t9<_CharT>(__tm, __fmt);\n}\n\n// put_time\n\ntemplate <class _CharT> class __iom_t10;\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t10<_CharT>& __x);\n\ntemplate <class _CharT>\nclass __iom_t10\n{\n    const tm* __tm_;\n    const _CharT* __fmt_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __iom_t10(const tm* __tm, const _CharT* __fmt)\n        : __tm_(__tm), __fmt_(__fmt) {}\n\n    template <class _Cp, class _Traits>\n    friend\n    basic_ostream<_Cp, _Traits>&\n    operator<<(basic_ostream<_Cp, _Traits>& __os, const __iom_t10<_Cp>& __x);\n};\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t10<_CharT>& __x)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_ostream<_CharT, _Traits>::sentry __s(__os);\n        if (__s)\n        {\n            typedef ostreambuf_iterator<_CharT, _Traits> _Op;\n            typedef time_put<_CharT, _Op> _Fp;\n            const _Fp& __tf = use_facet<_Fp>(__os.getloc());\n            if (__tf.put(_Op(__os), __os, __os.fill(), __x.__tm_,\n                         __x.__fmt_, __x.__fmt_ + _Traits::length(__x.__fmt_)).failed())\n                __os.setstate(ios_base::badbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __os.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __os;\n}\n\ntemplate <class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\n__iom_t10<_CharT>\nput_time(const tm* __tm, const _CharT* __fmt)\n{\n    return __iom_t10<_CharT>(__tm, __fmt);\n}\n\ntemplate <class _CharT, class _Traits, class _ForwardIterator>\nstd::basic_ostream<_CharT, _Traits> &\n__quoted_output ( basic_ostream<_CharT, _Traits> &__os, \n        _ForwardIterator __first, _ForwardIterator __last, _CharT __delim, _CharT __escape )\n{\n    _VSTD::basic_string<_CharT, _Traits> __str;\n    __str.push_back(__delim);\n    for ( ; __first != __last; ++ __first )\n    {\n        if (_Traits::eq (*__first, __escape) || _Traits::eq (*__first, __delim))\n            __str.push_back(__escape);\n        __str.push_back(*__first);\n    }\n    __str.push_back(__delim);\n    return __put_character_sequence(__os, __str.data(), __str.size());\n}\n\ntemplate <class _CharT, class _Traits, class _String>\nbasic_istream<_CharT, _Traits> &\n__quoted_input ( basic_istream<_CharT, _Traits> &__is, _String & __string, _CharT __delim, _CharT __escape )\n{\n    __string.clear ();\n    _CharT __c;\n    __is >> __c;\n    if ( __is.fail ())\n        return __is;\n\n    if (!_Traits::eq (__c, __delim))    // no delimiter, read the whole string\n    {\n        __is.unget ();\n        __is >> __string;\n        return __is;\n    }\n\n    __save_flags<_CharT, _Traits> sf(__is);\n    noskipws (__is);\n    while (true)\n        {\n        __is >> __c;\n        if ( __is.fail ())\n            break;\n        if (_Traits::eq (__c, __escape))\n        {\n            __is >> __c;\n            if ( __is.fail ())\n                break;\n        }\n        else if (_Traits::eq (__c, __delim))\n            break;\n        __string.push_back ( __c );\n        }\n    return __is;\n}\n\n\ntemplate <class _CharT, class _Traits, class _Iter>\nbasic_ostream<_CharT, _Traits>& operator<<(\n         basic_ostream<_CharT, _Traits>& __os, \n         const __quoted_output_proxy<_CharT, _Iter, _Traits> & __proxy)\n{\n    return __quoted_output (__os, __proxy.__first, __proxy.__last, __proxy.__delim, __proxy.__escape);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nstruct __quoted_proxy\n{\n    basic_string<_CharT, _Traits, _Allocator> &__string;\n    _CharT  __delim;\n    _CharT  __escape;\n\n    __quoted_proxy(basic_string<_CharT, _Traits, _Allocator> &__s, _CharT __d, _CharT __e)\n    : __string(__s), __delim(__d), __escape(__e) {}\n};\n\ntemplate <class _CharT, class _Traits, class _Allocator>\n_LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>& operator<<(\n        basic_ostream<_CharT, _Traits>& __os, \n        const __quoted_proxy<_CharT, _Traits, _Allocator> & __proxy)\n{\n    return __quoted_output (__os, __proxy.__string.cbegin (), __proxy.__string.cend (), __proxy.__delim, __proxy.__escape);\n}\n\n//  extractor for non-const basic_string& proxies\ntemplate <class _CharT, class _Traits, class _Allocator>\n_LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>& operator>>(\n        basic_istream<_CharT, _Traits>& __is, \n        const __quoted_proxy<_CharT, _Traits, _Allocator> & __proxy)\n{\n    return __quoted_input ( __is, __proxy.__string, __proxy.__delim, __proxy.__escape );\n}\n\n\ntemplate <class _CharT>\n_LIBCPP_INLINE_VISIBILITY\n__quoted_output_proxy<_CharT, const _CharT *>\nquoted ( const _CharT *__s, _CharT __delim = _CharT('\"'), _CharT __escape =_CharT('\\\\'))\n{\n    const _CharT *__end = __s;\n    while ( *__end ) ++__end;\n    return __quoted_output_proxy<_CharT, const _CharT *> ( __s, __end, __delim, __escape );\n}\n\n\ntemplate <class _CharT, class _Traits, class _Allocator>\n_LIBCPP_INLINE_VISIBILITY\n__quoted_output_proxy<_CharT, typename basic_string <_CharT, _Traits, _Allocator>::const_iterator>\n__quoted ( const basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('\"'), _CharT __escape=_CharT('\\\\'))\n{\n    return __quoted_output_proxy<_CharT,\n            typename basic_string <_CharT, _Traits, _Allocator>::const_iterator>\n                    ( __s.cbegin(), __s.cend (), __delim, __escape );\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\n_LIBCPP_INLINE_VISIBILITY\n__quoted_proxy<_CharT, _Traits, _Allocator>\n__quoted ( basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('\"'), _CharT __escape=_CharT('\\\\'))\n{\n    return __quoted_proxy<_CharT, _Traits, _Allocator>( __s, __delim, __escape );\n}\n\n\n#if _LIBCPP_STD_VER > 11\n\ntemplate <class _CharT, class _Traits, class _Allocator>\n_LIBCPP_INLINE_VISIBILITY\n__quoted_output_proxy<_CharT, typename basic_string <_CharT, _Traits, _Allocator>::const_iterator>\nquoted ( const basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('\"'), _CharT __escape=_CharT('\\\\'))\n{\n    return __quoted(__s, __delim, __escape);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\n_LIBCPP_INLINE_VISIBILITY\n__quoted_proxy<_CharT, _Traits, _Allocator>\nquoted ( basic_string <_CharT, _Traits, _Allocator> &__s, _CharT __delim = _CharT('\"'), _CharT __escape=_CharT('\\\\'))\n{\n    return __quoted(__s, __delim, __escape);\n}\n\ntemplate <class _CharT, class _Traits>\n__quoted_output_proxy<_CharT, const _CharT *, _Traits>\nquoted (basic_string_view <_CharT, _Traits> __sv,\n             _CharT __delim = _CharT('\"'), _CharT __escape=_CharT('\\\\'))\n{\n    return __quoted_output_proxy<_CharT, const _CharT *, _Traits> \n         ( __sv.data(), __sv.data() + __sv.size(), __delim, __escape );\n}\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_IOMANIP\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ios",
    "content": "// -*- C++ -*-\n//===---------------------------- ios -------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_IOS\n#define _LIBCPP_IOS\n\n/*\n    ios synopsis\n\n#include <iosfwd>\n\nnamespace std\n{\n\ntypedef OFF_T streamoff;\ntypedef SZ_T streamsize;\ntemplate <class stateT> class fpos;\n\nclass ios_base\n{\npublic:\n    class failure;\n\n    typedef T1 fmtflags;\n    static constexpr fmtflags boolalpha;\n    static constexpr fmtflags dec;\n    static constexpr fmtflags fixed;\n    static constexpr fmtflags hex;\n    static constexpr fmtflags internal;\n    static constexpr fmtflags left;\n    static constexpr fmtflags oct;\n    static constexpr fmtflags right;\n    static constexpr fmtflags scientific;\n    static constexpr fmtflags showbase;\n    static constexpr fmtflags showpoint;\n    static constexpr fmtflags showpos;\n    static constexpr fmtflags skipws;\n    static constexpr fmtflags unitbuf;\n    static constexpr fmtflags uppercase;\n    static constexpr fmtflags adjustfield;\n    static constexpr fmtflags basefield;\n    static constexpr fmtflags floatfield;\n\n    typedef T2 iostate;\n    static constexpr iostate badbit;\n    static constexpr iostate eofbit;\n    static constexpr iostate failbit;\n    static constexpr iostate goodbit;\n\n    typedef T3 openmode;\n    static constexpr openmode app;\n    static constexpr openmode ate;\n    static constexpr openmode binary;\n    static constexpr openmode in;\n    static constexpr openmode out;\n    static constexpr openmode trunc;\n\n    typedef T4 seekdir;\n    static constexpr seekdir beg;\n    static constexpr seekdir cur;\n    static constexpr seekdir end;\n\n    class Init;\n\n    // 27.5.2.2 fmtflags state:\n    fmtflags flags() const;\n    fmtflags flags(fmtflags fmtfl);\n    fmtflags setf(fmtflags fmtfl);\n    fmtflags setf(fmtflags fmtfl, fmtflags mask);\n    void unsetf(fmtflags mask);\n\n    streamsize precision() const;\n    streamsize precision(streamsize prec);\n    streamsize width() const;\n    streamsize width(streamsize wide);\n\n    // 27.5.2.3 locales:\n    locale imbue(const locale& loc);\n    locale getloc() const;\n\n    // 27.5.2.5 storage:\n    static int xalloc();\n    long& iword(int index);\n    void*& pword(int index);\n\n    // destructor\n    virtual ~ios_base();\n\n    // 27.5.2.6 callbacks;\n    enum event { erase_event, imbue_event, copyfmt_event };\n    typedef void (*event_callback)(event, ios_base&, int index);\n    void register_callback(event_callback fn, int index);\n\n    ios_base(const ios_base&) = delete;\n    ios_base& operator=(const ios_base&) = delete;\n\n    static bool sync_with_stdio(bool sync = true);\n\nprotected:\n    ios_base();\n};\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass basic_ios\n    : public ios_base\n{\npublic:\n    // types:\n    typedef charT char_type;\n    typedef typename traits::int_type int_type;  // removed in C++17\n    typedef typename traits::pos_type pos_type;  // removed in C++17\n    typedef typename traits::off_type off_type;  // removed in C++17\n    typedef traits traits_type;\n\n    operator unspecified-bool-type() const;\n    bool operator!() const;\n    iostate rdstate() const;\n    void clear(iostate state = goodbit);\n    void setstate(iostate state);\n    bool good() const;\n    bool eof() const;\n    bool fail() const;\n    bool bad() const;\n\n    iostate exceptions() const;\n    void exceptions(iostate except);\n\n    // 27.5.4.1 Constructor/destructor:\n    explicit basic_ios(basic_streambuf<charT,traits>* sb);\n    virtual ~basic_ios();\n\n    // 27.5.4.2 Members:\n    basic_ostream<charT,traits>* tie() const;\n    basic_ostream<charT,traits>* tie(basic_ostream<charT,traits>* tiestr);\n\n    basic_streambuf<charT,traits>* rdbuf() const;\n    basic_streambuf<charT,traits>* rdbuf(basic_streambuf<charT,traits>* sb);\n\n    basic_ios& copyfmt(const basic_ios& rhs);\n\n    char_type fill() const;\n    char_type fill(char_type ch);\n\n    locale imbue(const locale& loc);\n\n    char narrow(char_type c, char dfault) const;\n    char_type widen(char c) const;\n\n    basic_ios(const basic_ios& ) = delete;\n    basic_ios& operator=(const basic_ios&) = delete;\n\nprotected:\n    basic_ios();\n    void init(basic_streambuf<charT,traits>* sb);\n    void move(basic_ios& rhs);\n    void swap(basic_ios& rhs) noexcept;\n    void set_rdbuf(basic_streambuf<charT, traits>* sb);\n};\n\n// 27.5.5, manipulators:\nios_base& boolalpha (ios_base& str);\nios_base& noboolalpha(ios_base& str);\nios_base& showbase (ios_base& str);\nios_base& noshowbase (ios_base& str);\nios_base& showpoint (ios_base& str);\nios_base& noshowpoint(ios_base& str);\nios_base& showpos (ios_base& str);\nios_base& noshowpos (ios_base& str);\nios_base& skipws (ios_base& str);\nios_base& noskipws (ios_base& str);\nios_base& uppercase (ios_base& str);\nios_base& nouppercase(ios_base& str);\nios_base& unitbuf (ios_base& str);\nios_base& nounitbuf (ios_base& str);\n\n// 27.5.5.2 adjustfield:\nios_base& internal (ios_base& str);\nios_base& left (ios_base& str);\nios_base& right (ios_base& str);\n\n// 27.5.5.3 basefield:\nios_base& dec (ios_base& str);\nios_base& hex (ios_base& str);\nios_base& oct (ios_base& str);\n\n// 27.5.5.4 floatfield:\nios_base& fixed (ios_base& str);\nios_base& scientific (ios_base& str);\nios_base& hexfloat (ios_base& str);\nios_base& defaultfloat(ios_base& str);\n\n// 27.5.5.5 error reporting:\nenum class io_errc\n{\n    stream = 1\n};\n\nconcept_map ErrorCodeEnum<io_errc> { };\nerror_code make_error_code(io_errc e) noexcept; \nerror_condition make_error_condition(io_errc e) noexcept; \nstorage-class-specifier const error_category& iostream_category() noexcept;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <iosfwd>\n#include <__locale>\n#include <system_error>\n\n#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)\n#include <atomic>     // for __xindex_\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntypedef ptrdiff_t streamsize;\n\nclass _LIBCPP_TYPE_VIS ios_base\n{\npublic:\n    class _LIBCPP_EXCEPTION_ABI failure;\n\n    typedef unsigned int fmtflags;\n    static const fmtflags boolalpha   = 0x0001;\n    static const fmtflags dec         = 0x0002;\n    static const fmtflags fixed       = 0x0004;\n    static const fmtflags hex         = 0x0008;\n    static const fmtflags internal    = 0x0010;\n    static const fmtflags left        = 0x0020;\n    static const fmtflags oct         = 0x0040;\n    static const fmtflags right       = 0x0080;\n    static const fmtflags scientific  = 0x0100;\n    static const fmtflags showbase    = 0x0200;\n    static const fmtflags showpoint   = 0x0400;\n    static const fmtflags showpos     = 0x0800;\n    static const fmtflags skipws      = 0x1000;\n    static const fmtflags unitbuf     = 0x2000;\n    static const fmtflags uppercase   = 0x4000;\n    static const fmtflags adjustfield = left | right | internal;\n    static const fmtflags basefield   = dec | oct | hex;\n    static const fmtflags floatfield  = scientific | fixed;\n\n    typedef unsigned int iostate;\n    static const iostate badbit  = 0x1;\n    static const iostate eofbit  = 0x2;\n    static const iostate failbit = 0x4;\n    static const iostate goodbit = 0x0;\n\n    typedef unsigned int openmode;\n    static const openmode app    = 0x01;\n    static const openmode ate    = 0x02;\n    static const openmode binary = 0x04;\n    static const openmode in     = 0x08;\n    static const openmode out    = 0x10;\n    static const openmode trunc  = 0x20;\n\n    enum seekdir {beg, cur, end};\n\n#if _LIBCPP_STD_VER <= 14\n    typedef iostate      io_state;\n    typedef openmode     open_mode;\n    typedef seekdir      seek_dir;\n\n    typedef _VSTD::streamoff streamoff;\n    typedef _VSTD::streampos streampos;\n#endif\n\n    class _LIBCPP_TYPE_VIS Init;\n\n    // 27.5.2.2 fmtflags state:\n    _LIBCPP_INLINE_VISIBILITY fmtflags flags() const;\n    _LIBCPP_INLINE_VISIBILITY fmtflags flags(fmtflags __fmtfl);\n    _LIBCPP_INLINE_VISIBILITY fmtflags setf(fmtflags __fmtfl);\n    _LIBCPP_INLINE_VISIBILITY fmtflags setf(fmtflags __fmtfl, fmtflags __mask);\n    _LIBCPP_INLINE_VISIBILITY void unsetf(fmtflags __mask);\n\n    _LIBCPP_INLINE_VISIBILITY streamsize precision() const;\n    _LIBCPP_INLINE_VISIBILITY streamsize precision(streamsize __prec);\n    _LIBCPP_INLINE_VISIBILITY streamsize width() const;\n    _LIBCPP_INLINE_VISIBILITY streamsize width(streamsize __wide);\n\n    // 27.5.2.3 locales:\n    locale imbue(const locale& __loc);\n    locale getloc() const;\n\n    // 27.5.2.5 storage:\n    static int xalloc();\n    long& iword(int __index);\n    void*& pword(int __index);\n\n    // destructor\n    virtual ~ios_base();\n\n    // 27.5.2.6 callbacks;\n    enum event { erase_event, imbue_event, copyfmt_event };\n    typedef void (*event_callback)(event, ios_base&, int __index);\n    void register_callback(event_callback __fn, int __index);\n\nprivate:\n    ios_base(const ios_base&); // = delete;\n    ios_base& operator=(const ios_base&); // = delete;\n\npublic:\n    static bool sync_with_stdio(bool __sync = true);\n\n    _LIBCPP_INLINE_VISIBILITY iostate rdstate() const;\n    void clear(iostate __state = goodbit);\n    _LIBCPP_INLINE_VISIBILITY void setstate(iostate __state);\n\n    _LIBCPP_INLINE_VISIBILITY bool good() const;\n    _LIBCPP_INLINE_VISIBILITY bool eof() const;\n    _LIBCPP_INLINE_VISIBILITY bool fail() const;\n    _LIBCPP_INLINE_VISIBILITY bool bad() const;\n\n    _LIBCPP_INLINE_VISIBILITY iostate exceptions() const;\n    _LIBCPP_INLINE_VISIBILITY void exceptions(iostate __iostate);\n\n    void __set_badbit_and_consider_rethrow();\n    void __set_failbit_and_consider_rethrow();\n\nprotected:\n    _LIBCPP_INLINE_VISIBILITY\n    ios_base() {// purposefully does no initialization\n               }\n\n    void init(void* __sb);\n    _LIBCPP_ALWAYS_INLINE void* rdbuf() const {return __rdbuf_;}\n\n    _LIBCPP_ALWAYS_INLINE\n    void rdbuf(void* __sb)\n    {\n        __rdbuf_ = __sb;\n        clear();\n    }\n\n    void __call_callbacks(event);\n    void copyfmt(const ios_base&);\n    void move(ios_base&);\n    void swap(ios_base&) _NOEXCEPT;\n\n    _LIBCPP_ALWAYS_INLINE\n    void set_rdbuf(void* __sb)\n    {\n        __rdbuf_ = __sb;\n    }\n\nprivate:\n    // All data members must be scalars\n    fmtflags        __fmtflags_;\n    streamsize      __precision_;\n    streamsize      __width_;\n    iostate         __rdstate_;\n    iostate         __exceptions_;\n    void*           __rdbuf_;\n    void*           __loc_;\n    event_callback* __fn_;\n    int*            __index_;\n    size_t          __event_size_;\n    size_t          __event_cap_;\n// TODO(EricWF): Enable this for both Clang and GCC. Currently it is only\n// enabled with clang.\n#if defined(_LIBCPP_HAS_C_ATOMIC_IMP) && !defined(_LIBCPP_HAS_NO_THREADS)\n    static atomic<int> __xindex_;\n#else\n    static int      __xindex_;\n#endif\n    long*           __iarray_;\n    size_t          __iarray_size_;\n    size_t          __iarray_cap_;\n    void**          __parray_;\n    size_t          __parray_size_;\n    size_t          __parray_cap_;\n};\n\n//enum class io_errc\n_LIBCPP_DECLARE_STRONG_ENUM(io_errc)\n{\n    stream = 1\n};\n_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(io_errc)\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS is_error_code_enum<io_errc> : public true_type { };\n\n#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS is_error_code_enum<io_errc::__lx> : public true_type { };\n#endif\n\n_LIBCPP_FUNC_VIS\nconst error_category& iostream_category() _NOEXCEPT;\n\ninline _LIBCPP_INLINE_VISIBILITY\nerror_code\nmake_error_code(io_errc __e) _NOEXCEPT\n{\n    return error_code(static_cast<int>(__e), iostream_category());\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nerror_condition\nmake_error_condition(io_errc __e) _NOEXCEPT\n{\n    return error_condition(static_cast<int>(__e), iostream_category());\n}\n\nclass _LIBCPP_EXCEPTION_ABI ios_base::failure\n    : public system_error\n{\npublic:\n    explicit failure(const string& __msg, const error_code& __ec = io_errc::stream);\n    explicit failure(const char* __msg, const error_code& __ec = io_errc::stream);\n    virtual ~failure() throw();\n};\n\nclass _LIBCPP_TYPE_VIS ios_base::Init\n{\npublic:\n    Init();\n    ~Init();\n};\n\n// fmtflags\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base::fmtflags\nios_base::flags() const\n{\n    return __fmtflags_;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base::fmtflags\nios_base::flags(fmtflags __fmtfl)\n{\n    fmtflags __r = __fmtflags_;\n    __fmtflags_ = __fmtfl;\n    return __r;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base::fmtflags\nios_base::setf(fmtflags __fmtfl)\n{\n    fmtflags __r = __fmtflags_;\n    __fmtflags_ |= __fmtfl;\n    return __r;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nios_base::unsetf(fmtflags __mask)\n{\n    __fmtflags_ &= ~__mask;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base::fmtflags\nios_base::setf(fmtflags __fmtfl, fmtflags __mask)\n{\n    fmtflags __r = __fmtflags_;\n    unsetf(__mask);\n    __fmtflags_ |= __fmtfl & __mask;\n    return __r;\n}\n\n// precision\n\ninline _LIBCPP_INLINE_VISIBILITY\nstreamsize\nios_base::precision() const\n{\n    return __precision_;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nstreamsize\nios_base::precision(streamsize __prec)\n{\n    streamsize __r = __precision_;\n    __precision_ = __prec;\n    return __r;\n}\n\n// width\n\ninline _LIBCPP_INLINE_VISIBILITY\nstreamsize\nios_base::width() const\n{\n    return __width_;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nstreamsize\nios_base::width(streamsize __wide)\n{\n    streamsize __r = __width_;\n    __width_ = __wide;\n    return __r;\n}\n\n// iostate\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base::iostate\nios_base::rdstate() const\n{\n    return __rdstate_;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nios_base::setstate(iostate __state)\n{\n    clear(__rdstate_ | __state);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nios_base::good() const\n{\n    return __rdstate_ == 0;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nios_base::eof() const\n{\n    return (__rdstate_ & eofbit) != 0;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nios_base::fail() const\n{\n    return (__rdstate_ & (failbit | badbit)) != 0;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nios_base::bad() const\n{\n    return (__rdstate_ & badbit) != 0;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base::iostate\nios_base::exceptions() const\n{\n    return __exceptions_;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nios_base::exceptions(iostate __iostate)\n{\n    __exceptions_ = __iostate;\n    clear(__rdstate_);\n}\n\n#if defined(_LIBCPP_CXX03_LANG)\nstruct _LIBCPP_TYPE_VIS __cxx03_bool {\n  typedef void (__cxx03_bool::*__bool_type)();\n  void __true_value() {}\n};\n#endif\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_ios\n    : public ios_base\n{\npublic:\n    // types:\n    typedef _CharT char_type;\n    typedef _Traits traits_type;\n\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n  // __true_value will generate undefined references when linking unless\n  // we give it internal linkage.\n\n#if defined(_LIBCPP_CXX03_LANG)\n    _LIBCPP_ALWAYS_INLINE\n    operator __cxx03_bool::__bool_type() const {\n        return !fail() ? &__cxx03_bool::__true_value : nullptr;\n    }\n#else\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_EXPLICIT operator bool() const {return !fail();}\n#endif\n\n    _LIBCPP_ALWAYS_INLINE bool operator!() const    {return  fail();}\n    _LIBCPP_ALWAYS_INLINE iostate rdstate() const   {return ios_base::rdstate();}\n    _LIBCPP_ALWAYS_INLINE void clear(iostate __state = goodbit) {ios_base::clear(__state);}\n    _LIBCPP_ALWAYS_INLINE void setstate(iostate __state) {ios_base::setstate(__state);}\n    _LIBCPP_ALWAYS_INLINE bool good() const {return ios_base::good();}\n    _LIBCPP_ALWAYS_INLINE bool eof() const  {return ios_base::eof();}\n    _LIBCPP_ALWAYS_INLINE bool fail() const {return ios_base::fail();}\n    _LIBCPP_ALWAYS_INLINE bool bad() const  {return ios_base::bad();}\n\n    _LIBCPP_ALWAYS_INLINE iostate exceptions() const {return ios_base::exceptions();}\n    _LIBCPP_ALWAYS_INLINE void exceptions(iostate __iostate) {ios_base::exceptions(__iostate);}\n\n    // 27.5.4.1 Constructor/destructor:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit basic_ios(basic_streambuf<char_type,traits_type>* __sb);\n    virtual ~basic_ios();\n\n    // 27.5.4.2 Members:\n    _LIBCPP_INLINE_VISIBILITY \n    basic_ostream<char_type, traits_type>* tie() const;\n    _LIBCPP_INLINE_VISIBILITY \n    basic_ostream<char_type, traits_type>* tie(basic_ostream<char_type, traits_type>* __tiestr);\n\n    _LIBCPP_INLINE_VISIBILITY \n    basic_streambuf<char_type, traits_type>* rdbuf() const;\n    _LIBCPP_INLINE_VISIBILITY \n    basic_streambuf<char_type, traits_type>* rdbuf(basic_streambuf<char_type, traits_type>* __sb);\n\n    basic_ios& copyfmt(const basic_ios& __rhs);\n\n    _LIBCPP_INLINE_VISIBILITY \n    char_type fill() const;\n    _LIBCPP_INLINE_VISIBILITY \n    char_type fill(char_type __ch);\n\n    _LIBCPP_INLINE_VISIBILITY \n    locale imbue(const locale& __loc);\n\n    _LIBCPP_INLINE_VISIBILITY \n    char narrow(char_type __c, char __dfault) const;\n    _LIBCPP_INLINE_VISIBILITY \n    char_type widen(char __c) const;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    basic_ios() {// purposefully does no initialization\n                }\n    _LIBCPP_INLINE_VISIBILITY \n    void init(basic_streambuf<char_type, traits_type>* __sb);\n\n    _LIBCPP_INLINE_VISIBILITY \n    void move(basic_ios& __rhs);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_ALWAYS_INLINE\n    void move(basic_ios&& __rhs) {move(__rhs);}\n#endif\n    _LIBCPP_INLINE_VISIBILITY \n    void swap(basic_ios& __rhs) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY \n    void set_rdbuf(basic_streambuf<char_type, traits_type>* __sb);\nprivate:\n    basic_ostream<char_type, traits_type>* __tie_;\n     mutable int_type __fill_;\n};\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ios<_CharT, _Traits>::basic_ios(basic_streambuf<char_type,traits_type>* __sb)\n{\n    init(__sb);\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ios<_CharT, _Traits>::~basic_ios()\n{\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_ios<_CharT, _Traits>::init(basic_streambuf<char_type, traits_type>* __sb)\n{\n    ios_base::init(__sb);\n    __tie_ = 0;\n    __fill_ = traits_type::eof();\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>*\nbasic_ios<_CharT, _Traits>::tie() const\n{\n    return __tie_;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>*\nbasic_ios<_CharT, _Traits>::tie(basic_ostream<char_type, traits_type>* __tiestr)\n{\n    basic_ostream<char_type, traits_type>* __r = __tie_;\n    __tie_ = __tiestr;\n    return __r;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_streambuf<_CharT, _Traits>*\nbasic_ios<_CharT, _Traits>::rdbuf() const\n{\n    return static_cast<basic_streambuf<char_type, traits_type>*>(ios_base::rdbuf());\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_streambuf<_CharT, _Traits>*\nbasic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<char_type, traits_type>* __sb)\n{\n    basic_streambuf<char_type, traits_type>* __r = rdbuf();\n    ios_base::rdbuf(__sb);\n    return __r;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nlocale\nbasic_ios<_CharT, _Traits>::imbue(const locale& __loc)\n{\n    locale __r = getloc();\n    ios_base::imbue(__loc);\n    if (rdbuf())\n        rdbuf()->pubimbue(__loc);\n    return __r;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nchar\nbasic_ios<_CharT, _Traits>::narrow(char_type __c, char __dfault) const\n{\n    return use_facet<ctype<char_type> >(getloc()).narrow(__c, __dfault);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\n_CharT\nbasic_ios<_CharT, _Traits>::widen(char __c) const\n{\n    return use_facet<ctype<char_type> >(getloc()).widen(__c);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\n_CharT\nbasic_ios<_CharT, _Traits>::fill() const\n{\n    if (traits_type::eq_int_type(traits_type::eof(), __fill_))\n        __fill_ = widen(' ');\n    return __fill_;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\n_CharT\nbasic_ios<_CharT, _Traits>::fill(char_type __ch)\n{\n    char_type __r = __fill_;\n    __fill_ = __ch;\n    return __r;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ios<_CharT, _Traits>&\nbasic_ios<_CharT, _Traits>::copyfmt(const basic_ios& __rhs)\n{\n    if (this != &__rhs)\n    {\n        __call_callbacks(erase_event);\n        ios_base::copyfmt(__rhs);\n        __tie_ = __rhs.__tie_;\n        __fill_ = __rhs.__fill_;\n        __call_callbacks(copyfmt_event);\n        exceptions(__rhs.exceptions());\n    }\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_ios<_CharT, _Traits>::move(basic_ios& __rhs)\n{\n    ios_base::move(__rhs);\n    __tie_ = __rhs.__tie_;\n    __rhs.__tie_ = 0;\n    __fill_ = __rhs.__fill_;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_ios<_CharT, _Traits>::swap(basic_ios& __rhs) _NOEXCEPT\n{\n    ios_base::swap(__rhs);\n    _VSTD::swap(__tie_, __rhs.__tie_);\n    _VSTD::swap(__fill_, __rhs.__fill_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_ios<_CharT, _Traits>::set_rdbuf(basic_streambuf<char_type, traits_type>* __sb)\n{\n    ios_base::set_rdbuf(__sb);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nboolalpha(ios_base& __str)\n{\n    __str.setf(ios_base::boolalpha);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nnoboolalpha(ios_base& __str)\n{\n    __str.unsetf(ios_base::boolalpha);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nshowbase(ios_base& __str)\n{\n    __str.setf(ios_base::showbase);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nnoshowbase(ios_base& __str)\n{\n    __str.unsetf(ios_base::showbase);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nshowpoint(ios_base& __str)\n{\n    __str.setf(ios_base::showpoint);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nnoshowpoint(ios_base& __str)\n{\n    __str.unsetf(ios_base::showpoint);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nshowpos(ios_base& __str)\n{\n    __str.setf(ios_base::showpos);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nnoshowpos(ios_base& __str)\n{\n    __str.unsetf(ios_base::showpos);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nskipws(ios_base& __str)\n{\n    __str.setf(ios_base::skipws);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nnoskipws(ios_base& __str)\n{\n    __str.unsetf(ios_base::skipws);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nuppercase(ios_base& __str)\n{\n    __str.setf(ios_base::uppercase);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nnouppercase(ios_base& __str)\n{\n    __str.unsetf(ios_base::uppercase);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nunitbuf(ios_base& __str)\n{\n    __str.setf(ios_base::unitbuf);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nnounitbuf(ios_base& __str)\n{\n    __str.unsetf(ios_base::unitbuf);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\ninternal(ios_base& __str)\n{\n    __str.setf(ios_base::internal, ios_base::adjustfield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nleft(ios_base& __str)\n{\n    __str.setf(ios_base::left, ios_base::adjustfield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nright(ios_base& __str)\n{\n    __str.setf(ios_base::right, ios_base::adjustfield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\ndec(ios_base& __str)\n{\n    __str.setf(ios_base::dec, ios_base::basefield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nhex(ios_base& __str)\n{\n    __str.setf(ios_base::hex, ios_base::basefield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\noct(ios_base& __str)\n{\n    __str.setf(ios_base::oct, ios_base::basefield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nfixed(ios_base& __str)\n{\n    __str.setf(ios_base::fixed, ios_base::floatfield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nscientific(ios_base& __str)\n{\n    __str.setf(ios_base::scientific, ios_base::floatfield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\nhexfloat(ios_base& __str)\n{\n    __str.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield);\n    return __str;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nios_base&\ndefaultfloat(ios_base& __str)\n{\n    __str.unsetf(ios_base::floatfield);\n    return __str;\n}\n\ntemplate <class _CharT, class _Traits>\nclass __save_flags\n{\n    typedef basic_ios<_CharT, _Traits> __stream_type;\n    typedef typename __stream_type::fmtflags fmtflags;\n\n    __stream_type& __stream_;\n    fmtflags       __fmtflags_;\n    _CharT         __fill_;\n\n    __save_flags(const __save_flags&);\n    __save_flags& operator=(const __save_flags&);\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __save_flags(__stream_type& __stream)\n        : __stream_(__stream),\n          __fmtflags_(__stream.flags()),\n          __fill_(__stream.fill())\n        {}\n    _LIBCPP_INLINE_VISIBILITY\n    ~__save_flags()\n    {\n        __stream_.flags(__fmtflags_);\n        __stream_.fill(__fill_);\n    }\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_IOS\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iosfwd",
    "content": "// -*- C++ -*-\n//===--------------------------- iosfwd -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_IOSFWD\n#define _LIBCPP_IOSFWD\n\n/*\n    iosfwd synopsis\n\nnamespace std\n{\n\ntemplate<class charT> struct char_traits;\ntemplate<class T>     class allocator;\n\nclass ios_base;\ntemplate <class charT, class traits = char_traits<charT> > class basic_ios;\n\ntemplate <class charT, class traits = char_traits<charT> > class basic_streambuf;\ntemplate <class charT, class traits = char_traits<charT> > class basic_istream;\ntemplate <class charT, class traits = char_traits<charT> > class basic_ostream;\ntemplate <class charT, class traits = char_traits<charT> > class basic_iostream;\n\ntemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\n    class basic_stringbuf;\ntemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\n    class basic_istringstream;\ntemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\n    class basic_ostringstream;\ntemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\n    class basic_stringstream;\n\ntemplate <class charT, class traits = char_traits<charT> > class basic_filebuf;\ntemplate <class charT, class traits = char_traits<charT> > class basic_ifstream;\ntemplate <class charT, class traits = char_traits<charT> > class basic_ofstream;\ntemplate <class charT, class traits = char_traits<charT> > class basic_fstream;\n\ntemplate <class charT, class traits = char_traits<charT> > class istreambuf_iterator;\ntemplate <class charT, class traits = char_traits<charT> > class ostreambuf_iterator;\n\ntypedef basic_ios<char>              ios;\ntypedef basic_ios<wchar_t>           wios;\n\ntypedef basic_streambuf<char>        streambuf;\ntypedef basic_istream<char>          istream;\ntypedef basic_ostream<char>          ostream;\ntypedef basic_iostream<char>         iostream;\n\ntypedef basic_stringbuf<char>        stringbuf;\ntypedef basic_istringstream<char>    istringstream;\ntypedef basic_ostringstream<char>    ostringstream;\ntypedef basic_stringstream<char>     stringstream;\n\ntypedef basic_filebuf<char>          filebuf;\ntypedef basic_ifstream<char>         ifstream;\ntypedef basic_ofstream<char>         ofstream;\ntypedef basic_fstream<char>          fstream;\n\ntypedef basic_streambuf<wchar_t>     wstreambuf;\ntypedef basic_istream<wchar_t>       wistream;\ntypedef basic_ostream<wchar_t>       wostream;\ntypedef basic_iostream<wchar_t>      wiostream;\n\ntypedef basic_stringbuf<wchar_t>     wstringbuf;\ntypedef basic_istringstream<wchar_t> wistringstream;\ntypedef basic_ostringstream<wchar_t> wostringstream;\ntypedef basic_stringstream<wchar_t>  wstringstream;\n\ntypedef basic_filebuf<wchar_t>       wfilebuf;\ntypedef basic_ifstream<wchar_t>      wifstream;\ntypedef basic_ofstream<wchar_t>      wofstream;\ntypedef basic_fstream<wchar_t>       wfstream;\n\ntemplate <class state> class fpos;\ntypedef fpos<char_traits<char>::state_type>    streampos;\ntypedef fpos<char_traits<wchar_t>::state_type> wstreampos;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <wchar.h>  // for mbstate_t\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nclass _LIBCPP_TYPE_VIS ios_base;\n\ntemplate<class _CharT>  struct _LIBCPP_TEMPLATE_VIS char_traits;\ntemplate<class _Tp>     class _LIBCPP_TEMPLATE_VIS allocator;\n\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_ios;\n\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_streambuf;\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_istream;\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_ostream;\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_iostream;\n\ntemplate <class _CharT, class _Traits = char_traits<_CharT>,\n          class _Allocator = allocator<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_stringbuf;\ntemplate <class _CharT, class _Traits = char_traits<_CharT>,\n          class _Allocator = allocator<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_istringstream;\ntemplate <class _CharT, class _Traits = char_traits<_CharT>,\n          class _Allocator = allocator<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_ostringstream;\ntemplate <class _CharT, class _Traits = char_traits<_CharT>,\n          class _Allocator = allocator<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_stringstream;\n\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_filebuf;\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_ifstream;\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_ofstream;\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_fstream;\n\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS istreambuf_iterator;\ntemplate <class _CharT, class _Traits = char_traits<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS ostreambuf_iterator;\n\ntypedef basic_ios<char>              ios;\ntypedef basic_ios<wchar_t>           wios;\n\ntypedef basic_streambuf<char>        streambuf;\ntypedef basic_istream<char>          istream;\ntypedef basic_ostream<char>          ostream;\ntypedef basic_iostream<char>         iostream;\n\ntypedef basic_stringbuf<char>        stringbuf;\ntypedef basic_istringstream<char>    istringstream;\ntypedef basic_ostringstream<char>    ostringstream;\ntypedef basic_stringstream<char>     stringstream;\n\ntypedef basic_filebuf<char>          filebuf;\ntypedef basic_ifstream<char>         ifstream;\ntypedef basic_ofstream<char>         ofstream;\ntypedef basic_fstream<char>          fstream;\n\ntypedef basic_streambuf<wchar_t>     wstreambuf;\ntypedef basic_istream<wchar_t>       wistream;\ntypedef basic_ostream<wchar_t>       wostream;\ntypedef basic_iostream<wchar_t>      wiostream;\n\ntypedef basic_stringbuf<wchar_t>     wstringbuf;\ntypedef basic_istringstream<wchar_t> wistringstream;\ntypedef basic_ostringstream<wchar_t> wostringstream;\ntypedef basic_stringstream<wchar_t>  wstringstream;\n\ntypedef basic_filebuf<wchar_t>       wfilebuf;\ntypedef basic_ifstream<wchar_t>      wifstream;\ntypedef basic_ofstream<wchar_t>      wofstream;\ntypedef basic_fstream<wchar_t>       wfstream;\n\ntemplate <class _State>             class _LIBCPP_TEMPLATE_VIS fpos;\ntypedef fpos<mbstate_t>    streampos;\ntypedef fpos<mbstate_t>    wstreampos;\n#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS\ntypedef fpos<mbstate_t>    u16streampos;\ntypedef fpos<mbstate_t>    u32streampos;\n#endif  // _LIBCPP_HAS_NO_UNICODE_CHARS\n\n#if defined(_NEWLIB_VERSION)\n// On newlib, off_t is 'long int'\ntypedef long int streamoff;         // for char_traits in <string>\n#else\ntypedef long long streamoff;        // for char_traits in <string>\n#endif\n\ntemplate <class _CharT,             // for <stdexcept>\n          class _Traits = char_traits<_CharT>,\n          class _Allocator = allocator<_CharT> >\n    class _LIBCPP_TEMPLATE_VIS basic_string;\ntypedef basic_string<char, char_traits<char>, allocator<char> > string;\ntypedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;\n\n\n// Include other forward declarations here\ntemplate <class _Tp, class _Alloc = allocator<_Tp> >\nclass _LIBCPP_TEMPLATE_VIS vector;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_IOSFWD\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iostream",
    "content": "// -*- C++ -*-\n//===--------------------------- iostream ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_IOSTREAM\n#define _LIBCPP_IOSTREAM\n\n/*\n    iostream synopsis\n\n#include <ios>\n#include <streambuf>\n#include <istream>\n#include <ostream>\n\nnamespace std {\n\nextern istream cin;\nextern ostream cout;\nextern ostream cerr;\nextern ostream clog;\nextern wistream wcin;\nextern wostream wcout;\nextern wostream wcerr;\nextern wostream wclog;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <ios>\n#include <streambuf>\n#include <istream>\n#include <ostream>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#ifndef _LIBCPP_HAS_NO_STDIN\nextern _LIBCPP_FUNC_VIS istream cin;\nextern _LIBCPP_FUNC_VIS wistream wcin;\n#endif\n#ifndef _LIBCPP_HAS_NO_STDOUT\nextern _LIBCPP_FUNC_VIS ostream cout;\nextern _LIBCPP_FUNC_VIS wostream wcout;\n#endif\nextern _LIBCPP_FUNC_VIS ostream cerr;\nextern _LIBCPP_FUNC_VIS wostream wcerr;\nextern _LIBCPP_FUNC_VIS ostream clog;\nextern _LIBCPP_FUNC_VIS wostream wclog;\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_IOSTREAM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/istream",
    "content": "// -*- C++ -*-\n//===--------------------------- istream ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_ISTREAM\n#define _LIBCPP_ISTREAM\n\n/*\n    istream synopsis\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass basic_istream\n    : virtual public basic_ios<charT,traits>\n{\npublic:\n    // types (inherited from basic_ios (27.5.4)):\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    // 27.7.1.1.1 Constructor/destructor:\n    explicit basic_istream(basic_streambuf<char_type, traits_type>* sb);\n    basic_istream(basic_istream&& rhs);\n    virtual ~basic_istream();\n\n    // 27.7.1.1.2 Assign/swap:\n    basic_istream& operator=(basic_istream&& rhs);\n    void swap(basic_istream& rhs);\n\n    // 27.7.1.1.3 Prefix/suffix:\n    class sentry;\n\n    // 27.7.1.2 Formatted input:\n    basic_istream& operator>>(basic_istream& (*pf)(basic_istream&));\n    basic_istream& operator>>(basic_ios<char_type, traits_type>&\n                              (*pf)(basic_ios<char_type, traits_type>&));\n    basic_istream& operator>>(ios_base& (*pf)(ios_base&));\n    basic_istream& operator>>(basic_streambuf<char_type, traits_type>* sb);\n    basic_istream& operator>>(bool& n);\n    basic_istream& operator>>(short& n);\n    basic_istream& operator>>(unsigned short& n);\n    basic_istream& operator>>(int& n);\n    basic_istream& operator>>(unsigned int& n);\n    basic_istream& operator>>(long& n);\n    basic_istream& operator>>(unsigned long& n);\n    basic_istream& operator>>(long long& n);\n    basic_istream& operator>>(unsigned long long& n);\n    basic_istream& operator>>(float& f);\n    basic_istream& operator>>(double& f);\n    basic_istream& operator>>(long double& f);\n    basic_istream& operator>>(void*& p);\n\n    // 27.7.1.3 Unformatted input:\n    streamsize gcount() const;\n    int_type get();\n    basic_istream& get(char_type& c);\n    basic_istream& get(char_type* s, streamsize n);\n    basic_istream& get(char_type* s, streamsize n, char_type delim);\n    basic_istream& get(basic_streambuf<char_type,traits_type>& sb);\n    basic_istream& get(basic_streambuf<char_type,traits_type>& sb, char_type delim);\n\n    basic_istream& getline(char_type* s, streamsize n);\n    basic_istream& getline(char_type* s, streamsize n, char_type delim);\n\n    basic_istream& ignore(streamsize n = 1, int_type delim = traits_type::eof());\n    int_type peek();\n    basic_istream& read (char_type* s, streamsize n);\n    streamsize readsome(char_type* s, streamsize n);\n\n    basic_istream& putback(char_type c);\n    basic_istream& unget();\n    int sync();\n\n    pos_type tellg();\n    basic_istream& seekg(pos_type);\n    basic_istream& seekg(off_type, ios_base::seekdir);\nprotected:\n    basic_istream(const basic_istream& rhs) = delete;\n    basic_istream(basic_istream&& rhs);\n    // 27.7.2.1.2 Assign/swap:\n    basic_istream& operator=(const basic_istream& rhs) = delete;\n    basic_istream& operator=(basic_istream&& rhs);\n    void swap(basic_istream& rhs);\n};\n\n// 27.7.1.2.3 character extraction templates:\ntemplate<class charT, class traits>\n  basic_istream<charT,traits>& operator>>(basic_istream<charT,traits>&, charT&);\n\ntemplate<class traits>\n  basic_istream<char,traits>& operator>>(basic_istream<char,traits>&, unsigned char&);\n\ntemplate<class traits>\n  basic_istream<char,traits>& operator>>(basic_istream<char,traits>&, signed char&);\n\ntemplate<class charT, class traits>\n  basic_istream<charT,traits>& operator>>(basic_istream<charT,traits>&, charT*);\n\ntemplate<class traits>\n  basic_istream<char,traits>& operator>>(basic_istream<char,traits>&, unsigned char*);\n\ntemplate<class traits>\n  basic_istream<char,traits>& operator>>(basic_istream<char,traits>&, signed char*);\n\ntemplate <class charT, class traits>\n  void\n  swap(basic_istream<charT, traits>& x, basic_istream<charT, traits>& y);\n\ntypedef basic_istream<char> istream;\ntypedef basic_istream<wchar_t> wistream;\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass basic_iostream :\n    public basic_istream<charT,traits>,\n    public basic_ostream<charT,traits>\n{\npublic:\n    // types:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    // constructor/destructor\n    explicit basic_iostream(basic_streambuf<char_type, traits_type>* sb);\n    basic_iostream(basic_iostream&& rhs);\n    virtual ~basic_iostream();\n\n    // assign/swap\n    basic_iostream& operator=(basic_iostream&& rhs);\n    void swap(basic_iostream& rhs);\n};\n\ntemplate <class charT, class traits>\n  void\n  swap(basic_iostream<charT, traits>& x, basic_iostream<charT, traits>& y);\n\ntypedef basic_iostream<char> iostream;\ntypedef basic_iostream<wchar_t> wiostream;\n\ntemplate <class charT, class traits>\n  basic_istream<charT,traits>&\n  ws(basic_istream<charT,traits>& is);\n\ntemplate <class charT, class traits, class T>\n  basic_istream<charT, traits>&\n  operator>>(basic_istream<charT, traits>&& is, T& x);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <ostream>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_istream\n    : virtual public basic_ios<_CharT, _Traits>\n{\n    streamsize __gc_;\npublic:\n    // types (inherited from basic_ios (27.5.4)):\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    // 27.7.1.1.1 Constructor/destructor:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    explicit basic_istream(basic_streambuf<char_type, traits_type>* __sb) : __gc_(0)\n    { this->init(__sb); }\n    virtual ~basic_istream();\nprotected:\n#ifndef _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_istream(basic_istream&& __rhs);\n\n    // 27.7.1.1.2 Assign/swap:\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_istream& operator=(basic_istream&& __rhs);\n#endif\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    void swap(basic_istream& __rhs) {\n      _VSTD::swap(__gc_, __rhs.__gc_);\n      basic_ios<char_type, traits_type>::swap(__rhs);\n    }\n\n#ifndef _LIBCPP_CXX03_LANG\n    basic_istream           (const basic_istream& __rhs) = delete;\n    basic_istream& operator=(const basic_istream& __rhs) = delete;\n#endif\npublic:\n\n    // 27.7.1.1.3 Prefix/suffix:\n    class _LIBCPP_TEMPLATE_VIS sentry;\n\n    // 27.7.1.2 Formatted input:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_istream& operator>>(basic_istream& (*__pf)(basic_istream&))\n    { return __pf(*this); }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_istream& operator>>(basic_ios<char_type, traits_type>&\n                              (*__pf)(basic_ios<char_type, traits_type>&))\n    { __pf(*this); return *this; }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_istream& operator>>(ios_base& (*__pf)(ios_base&))\n    { __pf(*this); return *this; }\n\n    basic_istream& operator>>(basic_streambuf<char_type, traits_type>* __sb);\n    basic_istream& operator>>(bool& __n);\n    basic_istream& operator>>(short& __n);\n    basic_istream& operator>>(unsigned short& __n);\n    basic_istream& operator>>(int& __n);\n    basic_istream& operator>>(unsigned int& __n);\n    basic_istream& operator>>(long& __n);\n    basic_istream& operator>>(unsigned long& __n);\n    basic_istream& operator>>(long long& __n);\n    basic_istream& operator>>(unsigned long long& __n);\n    basic_istream& operator>>(float& __f);\n    basic_istream& operator>>(double& __f);\n    basic_istream& operator>>(long double& __f);\n    basic_istream& operator>>(void*& __p);\n\n    // 27.7.1.3 Unformatted input:\n    _LIBCPP_INLINE_VISIBILITY\n    streamsize gcount() const {return __gc_;}\n    int_type get();\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_istream& get(char_type& __c) {\n      int_type __ch = get();\n      if (__ch != traits_type::eof())\n        __c = traits_type::to_char_type(__ch);\n      return *this;\n    }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_istream& get(char_type* __s, streamsize __n)\n    { return get(__s, __n, this->widen('\\n')); }\n\n    basic_istream& get(char_type* __s, streamsize __n, char_type __dlm);\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_istream& get(basic_streambuf<char_type, traits_type>& __sb)\n    { return get(__sb, this->widen('\\n')); }\n\n    basic_istream& get(basic_streambuf<char_type, traits_type>& __sb, char_type __dlm);\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_istream& getline(char_type* __s, streamsize __n)\n    { return getline(__s, __n, this->widen('\\n')); }\n\n    basic_istream& getline(char_type* __s, streamsize __n, char_type __dlm);\n\n    basic_istream& ignore(streamsize __n = 1, int_type __dlm = traits_type::eof());\n    int_type peek();\n    basic_istream& read (char_type* __s, streamsize __n);\n    streamsize readsome(char_type* __s, streamsize __n);\n\n    basic_istream& putback(char_type __c);\n    basic_istream& unget();\n    int sync();\n\n    pos_type tellg();\n    basic_istream& seekg(pos_type __pos);\n    basic_istream& seekg(off_type __off, ios_base::seekdir __dir);\n};\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_istream<_CharT, _Traits>::sentry\n{\n    bool __ok_;\n\n    sentry(const sentry&); // = delete;\n    sentry& operator=(const sentry&); // = delete;\n\npublic:\n    explicit sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false);\n//    ~sentry() = default;\n\n    _LIBCPP_INLINE_VISIBILITY\n        _LIBCPP_EXPLICIT\n        operator bool() const {return __ok_;}\n};\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>::sentry::sentry(basic_istream<_CharT, _Traits>& __is,\n                                               bool __noskipws)\n    : __ok_(false)\n{\n    if (__is.good())\n    {\n        if (__is.tie())\n            __is.tie()->flush();\n        if (!__noskipws && (__is.flags() & ios_base::skipws))\n        {\n            typedef istreambuf_iterator<_CharT, _Traits> _Ip;\n            const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc());\n            _Ip __i(__is);\n            _Ip __eof;\n            for (; __i != __eof; ++__i)\n                if (!__ct.is(__ct.space, *__i))\n                    break;\n            if (__i == __eof)\n                __is.setstate(ios_base::failbit | ios_base::eofbit);\n        }\n        __ok_ = __is.good();\n    }\n    else\n        __is.setstate(ios_base::failbit);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>::basic_istream(basic_istream&& __rhs)\n    : __gc_(__rhs.__gc_)\n{\n    __rhs.__gc_ = 0;\n    this->move(__rhs);\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator=(basic_istream&& __rhs)\n{\n    swap(__rhs);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>::~basic_istream()\n{\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(unsigned short& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(unsigned int& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(long& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(unsigned long& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(long long& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(unsigned long long& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(float& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(double& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(long double& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(bool& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(void*& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __n);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(short& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            long __temp;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __temp);\n            if (__temp < numeric_limits<short>::min())\n            {\n                __err |= ios_base::failbit;\n                __n = numeric_limits<short>::min();\n            }\n            else if (__temp > numeric_limits<short>::max())\n            {\n                __err |= ios_base::failbit;\n                __n = numeric_limits<short>::max();\n            }\n            else\n                __n = static_cast<short>(__temp);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(int& __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef istreambuf_iterator<char_type, traits_type> _Ip;\n            typedef num_get<char_type, _Ip> _Fp;\n            ios_base::iostate __err = ios_base::goodbit;\n            long __temp;\n            use_facet<_Fp>(this->getloc()).get(_Ip(*this), _Ip(), *this, __err, __temp);\n            if (__temp < numeric_limits<int>::min())\n            {\n                __err |= ios_base::failbit;\n                __n = numeric_limits<int>::min();\n            }\n            else if (__temp > numeric_limits<int>::max())\n            {\n                __err |= ios_base::failbit;\n                __n = numeric_limits<int>::max();\n            }\n            else\n                __n = static_cast<int>(__temp);\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, _CharT* __s)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_istream<_CharT, _Traits>::sentry __sen(__is);\n        if (__sen)\n        {\n            streamsize __n = __is.width();\n            if (__n <= 0)\n                __n = numeric_limits<streamsize>::max() / sizeof(_CharT) - 1;\n            streamsize __c = 0;\n            const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc());\n            ios_base::iostate __err = ios_base::goodbit;\n            while (__c < __n-1)\n            {\n                typename _Traits::int_type __i = __is.rdbuf()->sgetc();\n                if (_Traits::eq_int_type(__i, _Traits::eof()))\n                {\n                   __err |= ios_base::eofbit;\n                   break;\n                }\n                _CharT __ch = _Traits::to_char_type(__i);\n                if (__ct.is(__ct.space, __ch))\n                    break;\n                *__s++ = __ch;\n                ++__c;\n                 __is.rdbuf()->sbumpc();\n            }\n            *__s = _CharT();\n            __is.width(0);\n            if (__c == 0)\n               __err |= ios_base::failbit;\n            __is.setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __is.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __is;\n}\n\ntemplate<class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<char, _Traits>&\noperator>>(basic_istream<char, _Traits>& __is, unsigned char* __s)\n{\n    return __is >> (char*)__s;\n}\n\ntemplate<class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<char, _Traits>&\noperator>>(basic_istream<char, _Traits>& __is, signed char* __s)\n{\n    return __is >> (char*)__s;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, _CharT& __c)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_istream<_CharT, _Traits>::sentry __sen(__is);\n        if (__sen)\n        {\n            typename _Traits::int_type __i = __is.rdbuf()->sbumpc();\n            if (_Traits::eq_int_type(__i, _Traits::eof()))\n                __is.setstate(ios_base::eofbit | ios_base::failbit);\n            else\n                __c = _Traits::to_char_type(__i);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __is.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __is;\n}\n\ntemplate<class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<char, _Traits>&\noperator>>(basic_istream<char, _Traits>& __is, unsigned char& __c)\n{\n    return __is >> (char&)__c;\n}\n\ntemplate<class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<char, _Traits>&\noperator>>(basic_istream<char, _Traits>& __is, signed char& __c)\n{\n    return __is >> (char&)__c;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::operator>>(basic_streambuf<char_type, traits_type>* __sb)\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this, true);\n        if (__s)\n        {\n            if (__sb)\n            {\n#ifndef _LIBCPP_NO_EXCEPTIONS\n                try\n                {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n                    ios_base::iostate __err = ios_base::goodbit;\n                    while (true)\n                    {\n                        typename traits_type::int_type __i = this->rdbuf()->sgetc();\n                        if (traits_type::eq_int_type(__i, _Traits::eof()))\n                        {\n                           __err |= ios_base::eofbit;\n                           break;\n                        }\n                        if (traits_type::eq_int_type(\n                                __sb->sputc(traits_type::to_char_type(__i)),\n                                traits_type::eof()))\n                            break;\n                        ++__gc_;\n                        this->rdbuf()->sbumpc();\n                    }\n                    if (__gc_ == 0)\n                       __err |= ios_base::failbit;\n                    this->setstate(__err);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n                }\n                catch (...)\n                {\n                    if (__gc_ == 0)\n                        this->__set_failbit_and_consider_rethrow();\n                }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            }\n            else\n                this->setstate(ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\ntypename basic_istream<_CharT, _Traits>::int_type\nbasic_istream<_CharT, _Traits>::get()\n{\n    __gc_ = 0;\n    int_type __r = traits_type::eof();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this, true);\n        if (__s)\n        {\n            __r = this->rdbuf()->sbumpc();\n            if (traits_type::eq_int_type(__r, traits_type::eof()))\n               this->setstate(ios_base::failbit | ios_base::eofbit);\n            else\n                __gc_ = 1;\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __r;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::get(char_type* __s, streamsize __n, char_type __dlm)\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            if (__n > 0)\n            {\n                ios_base::iostate __err = ios_base::goodbit;\n                while (__gc_ < __n-1)\n                {\n                    int_type __i = this->rdbuf()->sgetc();\n                    if (traits_type::eq_int_type(__i, traits_type::eof()))\n                    {\n                       __err |= ios_base::eofbit;\n                       break;\n                    }\n                    char_type __ch = traits_type::to_char_type(__i);\n                    if (traits_type::eq(__ch, __dlm))\n                        break;\n                    *__s++ = __ch;\n                    ++__gc_;\n                     this->rdbuf()->sbumpc();\n                }\n                if (__gc_ == 0)\n                   __err |= ios_base::failbit;\n                this->setstate(__err);\n            }\n            else\n                this->setstate(ios_base::failbit);\n        }\n        if (__n > 0)\n            *__s = char_type();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        if (__n > 0)\n            *__s = char_type();\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::get(basic_streambuf<char_type, traits_type>& __sb,\n                                    char_type __dlm)\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            ios_base::iostate __err = ios_base::goodbit;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n            try\n            {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n                while (true)\n                {\n                    typename traits_type::int_type __i = this->rdbuf()->sgetc();\n                    if (traits_type::eq_int_type(__i, traits_type::eof()))\n                    {\n                       __err |= ios_base::eofbit;\n                       break;\n                    }\n                    char_type __ch = traits_type::to_char_type(__i);\n                    if (traits_type::eq(__ch, __dlm))\n                        break;\n                    if (traits_type::eq_int_type(__sb.sputc(__ch), traits_type::eof()))\n                        break;\n                    ++__gc_;\n                    this->rdbuf()->sbumpc();\n                }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n            }\n            catch (...)\n            {\n            }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            if (__gc_ == 0)\n               __err |= ios_base::failbit;\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::getline(char_type* __s, streamsize __n, char_type __dlm)\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            ios_base::iostate __err = ios_base::goodbit;\n            while (true)\n            {\n                typename traits_type::int_type __i = this->rdbuf()->sgetc();\n                if (traits_type::eq_int_type(__i, traits_type::eof()))\n                {\n                   __err |= ios_base::eofbit;\n                   break;\n                }\n                char_type __ch = traits_type::to_char_type(__i);\n                if (traits_type::eq(__ch, __dlm))\n                {\n                    this->rdbuf()->sbumpc();\n                    ++__gc_;\n                    break;\n                }\n                if (__gc_ >= __n-1)\n                {\n                    __err |= ios_base::failbit;\n                    break;\n                }\n                *__s++ = __ch;\n                this->rdbuf()->sbumpc();\n                ++__gc_;\n            }\n            if (__gc_ == 0)\n               __err |= ios_base::failbit;\n            this->setstate(__err);\n        }\n        if (__n > 0)\n            *__s = char_type();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        if (__n > 0)\n            *__s = char_type();\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::ignore(streamsize __n, int_type __dlm)\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            ios_base::iostate __err = ios_base::goodbit;\n            if (__n == numeric_limits<streamsize>::max())\n            {\n                while (true)\n                {\n                    typename traits_type::int_type __i = this->rdbuf()->sbumpc();\n                    if (traits_type::eq_int_type(__i, traits_type::eof()))\n                    {\n                       __err |= ios_base::eofbit;\n                       break;\n                    }\n                    ++__gc_;\n                    if (traits_type::eq_int_type(__i, __dlm))\n                        break;\n                }\n            }\n            else\n            {\n                while (__gc_ < __n)\n                {\n                    typename traits_type::int_type __i = this->rdbuf()->sbumpc();\n                    if (traits_type::eq_int_type(__i, traits_type::eof()))\n                    {\n                       __err |= ios_base::eofbit;\n                       break;\n                    }\n                    ++__gc_;\n                    if (traits_type::eq_int_type(__i, __dlm))\n                        break;\n                }\n            }\n            this->setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\ntypename basic_istream<_CharT, _Traits>::int_type\nbasic_istream<_CharT, _Traits>::peek()\n{\n    __gc_ = 0;\n    int_type __r = traits_type::eof();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            __r = this->rdbuf()->sgetc();\n            if (traits_type::eq_int_type(__r, traits_type::eof()))\n                this->setstate(ios_base::eofbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __r;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::read(char_type* __s, streamsize __n)\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            __gc_ = this->rdbuf()->sgetn(__s, __n);\n            if (__gc_ != __n)\n                this->setstate(ios_base::failbit | ios_base::eofbit);\n        }\n        else\n            this->setstate(ios_base::failbit);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nstreamsize\nbasic_istream<_CharT, _Traits>::readsome(char_type* __s, streamsize __n)\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            streamsize __c = this->rdbuf()->in_avail();\n            switch (__c)\n            {\n            case -1:\n                this->setstate(ios_base::eofbit);\n                break;\n            case 0:\n                break;\n            default:\n                read(__s, _VSTD::min(__c, __n));\n                break;\n            }\n        }\n        else\n            this->setstate(ios_base::failbit);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __gc_;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::putback(char_type __c)\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        this->clear(this->rdstate() & ~ios_base::eofbit);\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            if (this->rdbuf() == 0 || this->rdbuf()->sputbackc(__c) == traits_type::eof())\n                this->setstate(ios_base::badbit);\n        }\n        else\n            this->setstate(ios_base::failbit);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::unget()\n{\n    __gc_ = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        this->clear(this->rdstate() & ~ios_base::eofbit);\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            if (this->rdbuf() == 0 || this->rdbuf()->sungetc() == traits_type::eof())\n                this->setstate(ios_base::badbit);\n        }\n        else\n            this->setstate(ios_base::failbit);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nint\nbasic_istream<_CharT, _Traits>::sync()\n{\n    int __r = 0;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            if (this->rdbuf() == 0)\n                return -1;\n            if (this->rdbuf()->pubsync() == -1)\n            {\n                this->setstate(ios_base::badbit);\n                return -1;\n            }\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __r;\n}\n\ntemplate<class _CharT, class _Traits>\ntypename basic_istream<_CharT, _Traits>::pos_type\nbasic_istream<_CharT, _Traits>::tellg()\n{\n    pos_type __r(-1);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this, true);\n        if (__sen)\n            __r = this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::in);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __r;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::seekg(pos_type __pos)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        this->clear(this->rdstate() & ~ios_base::eofbit);\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            if (this->rdbuf()->pubseekpos(__pos, ios_base::in) == pos_type(-1))\n                this->setstate(ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nbasic_istream<_CharT, _Traits>::seekg(off_type __off, ios_base::seekdir __dir)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        this->clear(this->rdstate() & ~ios_base::eofbit);\n        sentry __sen(*this, true);\n        if (__sen)\n        {\n            if (this->rdbuf()->pubseekoff(__off, __dir, ios_base::in) == pos_type(-1))\n                this->setstate(ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\nws(basic_istream<_CharT, _Traits>& __is)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_istream<_CharT, _Traits>::sentry __sen(__is, true);\n        if (__sen)\n        {\n            const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc());\n            while (true)\n            {\n                typename _Traits::int_type __i = __is.rdbuf()->sgetc();\n                if (_Traits::eq_int_type(__i, _Traits::eof()))\n                {\n                   __is.setstate(ios_base::eofbit);\n                   break;\n                }\n                if (!__ct.is(__ct.space, _Traits::to_char_type(__i)))\n                    break;\n                __is.rdbuf()->sbumpc();\n            }\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __is.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __is;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>&& __is, _Tp&& __x)\n{\n    __is >> _VSTD::forward<_Tp>(__x);\n    return __is;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_iostream\n    : public basic_istream<_CharT, _Traits>,\n      public basic_ostream<_CharT, _Traits>\n{\npublic:\n    // types:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    // constructor/destructor\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    explicit basic_iostream(basic_streambuf<char_type, traits_type>* __sb)\n      : basic_istream<_CharT, _Traits>(__sb)\n    {}\n\n    virtual ~basic_iostream();\nprotected:\n#ifndef _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_iostream(basic_iostream&& __rhs);\n\n    // assign/swap\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_iostream& operator=(basic_iostream&& __rhs);\n#endif\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    void swap(basic_iostream& __rhs)\n    { basic_istream<char_type, traits_type>::swap(__rhs); }\npublic:\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nbasic_iostream<_CharT, _Traits>::basic_iostream(basic_iostream&& __rhs)\n    : basic_istream<_CharT, _Traits>(_VSTD::move(__rhs))\n{\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_iostream<_CharT, _Traits>&\nbasic_iostream<_CharT, _Traits>::operator=(basic_iostream&& __rhs)\n{\n    swap(__rhs);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nbasic_iostream<_CharT, _Traits>::~basic_iostream()\n{\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           basic_string<_CharT, _Traits, _Allocator>& __str)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_istream<_CharT, _Traits>::sentry __sen(__is);\n        if (__sen)\n        {\n            __str.clear();\n            streamsize __n = __is.width();\n            if (__n <= 0)\n                __n = __str.max_size();\n            if (__n <= 0)\n                __n = numeric_limits<streamsize>::max();\n            streamsize __c = 0;\n            const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc());\n            ios_base::iostate __err = ios_base::goodbit;\n            while (__c < __n)\n            {\n                typename _Traits::int_type __i = __is.rdbuf()->sgetc();\n                if (_Traits::eq_int_type(__i, _Traits::eof()))\n                {\n                   __err |= ios_base::eofbit;\n                   break;\n                }\n                _CharT __ch = _Traits::to_char_type(__i);\n                if (__ct.is(__ct.space, __ch))\n                    break;\n                __str.push_back(__ch);\n                ++__c;\n                 __is.rdbuf()->sbumpc();\n            }\n            __is.width(0);\n            if (__c == 0)\n               __err |= ios_base::failbit;\n            __is.setstate(__err);\n        }\n        else\n            __is.setstate(ios_base::failbit);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __is.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __is;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_istream<_CharT, _Traits>&\ngetline(basic_istream<_CharT, _Traits>& __is,\n        basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_istream<_CharT, _Traits>::sentry __sen(__is, true);\n        if (__sen)\n        {\n            __str.clear();\n            ios_base::iostate __err = ios_base::goodbit;\n            streamsize __extr = 0;\n            while (true)\n            {\n                typename _Traits::int_type __i = __is.rdbuf()->sbumpc();\n                if (_Traits::eq_int_type(__i, _Traits::eof()))\n                {\n                   __err |= ios_base::eofbit;\n                   break;\n                }\n                ++__extr;\n                _CharT __ch = _Traits::to_char_type(__i);\n                if (_Traits::eq(__ch, __dlm))\n                    break;\n                __str.push_back(__ch);\n                if (__str.size() == __str.max_size())\n                {\n                    __err |= ios_base::failbit;\n                    break;\n                }\n            }\n            if (__extr == 0)\n               __err |= ios_base::failbit;\n            __is.setstate(__err);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __is.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __is;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>&\ngetline(basic_istream<_CharT, _Traits>& __is,\n        basic_string<_CharT, _Traits, _Allocator>& __str)\n{\n    return getline(__is, __str, __is.widen('\\n'));\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>&\ngetline(basic_istream<_CharT, _Traits>&& __is,\n        basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm)\n{\n    return getline(__is, __str, __dlm);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>&\ngetline(basic_istream<_CharT, _Traits>&& __is,\n        basic_string<_CharT, _Traits, _Allocator>& __str)\n{\n    return getline(__is, __str, __is.widen('\\n'));\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, size_t _Size>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Size>& __x)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_istream<_CharT, _Traits>::sentry __sen(__is);\n        if (__sen)\n        {\n            basic_string<_CharT, _Traits> __str;\n            const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__is.getloc());\n            size_t __c = 0;\n            ios_base::iostate __err = ios_base::goodbit;\n            _CharT __zero = __ct.widen('0');\n            _CharT __one = __ct.widen('1');\n            while (__c < _Size)\n            {\n                typename _Traits::int_type __i = __is.rdbuf()->sgetc();\n                if (_Traits::eq_int_type(__i, _Traits::eof()))\n                {\n                   __err |= ios_base::eofbit;\n                   break;\n                }\n                _CharT __ch = _Traits::to_char_type(__i);\n                if (!_Traits::eq(__ch, __zero) && !_Traits::eq(__ch, __one))\n                    break;\n                __str.push_back(__ch);\n                ++__c;\n                 __is.rdbuf()->sbumpc();\n            }\n            __x = bitset<_Size>(__str);\n            if (__c == 0)\n               __err |= ios_base::failbit;\n            __is.setstate(__err);\n        }\n        else\n            __is.setstate(ios_base::failbit);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __is.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __is;\n}\n\n#ifndef _LIBCPP_AVAILABILITY_NO_STREAMS_EXTERN_TEMPLATE\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_istream<char>)\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_istream<wchar_t>)\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_iostream<char>)\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_ISTREAM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/iterator",
    "content": "// -*- C++ -*-\n//===-------------------------- iterator ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_ITERATOR\n#define _LIBCPP_ITERATOR\n\n/*\n    iterator synopsis\n\nnamespace std\n{\n\ntemplate<class Iterator>\nstruct iterator_traits\n{\n    typedef typename Iterator::difference_type difference_type;\n    typedef typename Iterator::value_type value_type;\n    typedef typename Iterator::pointer pointer;\n    typedef typename Iterator::reference reference;\n    typedef typename Iterator::iterator_category iterator_category;\n};\n\ntemplate<class T>\nstruct iterator_traits<T*>\n{\n    typedef ptrdiff_t difference_type;\n    typedef T value_type;\n    typedef T* pointer;\n    typedef T& reference;\n    typedef random_access_iterator_tag iterator_category;\n};\n\ntemplate<class T>\nstruct iterator_traits<const T*>\n{\n    typedef ptrdiff_t difference_type;\n    typedef T value_type;\n    typedef const T* pointer;\n    typedef const T& reference;\n    typedef random_access_iterator_tag iterator_category;\n};\n\ntemplate<class Category, class T, class Distance = ptrdiff_t,\n         class Pointer = T*, class Reference = T&>\nstruct iterator\n{\n    typedef T         value_type;\n    typedef Distance  difference_type;\n    typedef Pointer   pointer;\n    typedef Reference reference;\n    typedef Category  iterator_category;\n};\n\nstruct input_iterator_tag  {};\nstruct output_iterator_tag {};\nstruct forward_iterator_tag       : public input_iterator_tag         {};\nstruct bidirectional_iterator_tag : public forward_iterator_tag       {};\nstruct random_access_iterator_tag : public bidirectional_iterator_tag {};\n\n// 27.4.3, iterator operations\n// extension: second argument not conforming to C++03\ntemplate <class InputIterator>  // constexpr in C++17\n  constexpr void advance(InputIterator& i,\n             typename iterator_traits<InputIterator>::difference_type n);\n\ntemplate <class InputIterator>  // constexpr in C++17\n  constexpr typename iterator_traits<InputIterator>::difference_type\n    distance(InputIterator first, InputIterator last);\n\ntemplate <class InputIterator>  // constexpr in C++17\n  constexpr InputIterator next(InputIterator x,\ntypename iterator_traits<InputIterator>::difference_type n = 1);\n\ntemplate <class BidirectionalIterator>  // constexpr in C++17\n  constexpr BidirectionalIterator prev(BidirectionalIterator x,\n    typename iterator_traits<BidirectionalIterator>::difference_type n = 1);    \n\ntemplate <class Iterator>\nclass reverse_iterator\n    : public iterator<typename iterator_traits<Iterator>::iterator_category,\n                      typename iterator_traits<Iterator>::value_type,\n                      typename iterator_traits<Iterator>::difference_type,\n                      typename iterator_traits<Iterator>::pointer,\n                      typename iterator_traits<Iterator>::reference>\n{\nprotected:\n    Iterator current;\npublic:\n    typedef Iterator                                            iterator_type;\n    typedef typename iterator_traits<Iterator>::difference_type difference_type;\n    typedef typename iterator_traits<Iterator>::reference       reference;\n    typedef typename iterator_traits<Iterator>::pointer         pointer;\n\n    constexpr reverse_iterator();\n    constexpr explicit reverse_iterator(Iterator x);\n    template <class U> constexpr reverse_iterator(const reverse_iterator<U>& u);\n    template <class U> constexpr reverse_iterator& operator=(const reverse_iterator<U>& u);\n    constexpr Iterator base() const;\n    constexpr reference operator*() const;\n    constexpr pointer   operator->() const;\n    constexpr reverse_iterator& operator++();\n    constexpr reverse_iterator  operator++(int);\n    constexpr reverse_iterator& operator--();\n    constexpr reverse_iterator  operator--(int);\n    constexpr reverse_iterator  operator+ (difference_type n) const;\n    constexpr reverse_iterator& operator+=(difference_type n);\n    constexpr reverse_iterator  operator- (difference_type n) const;\n    constexpr reverse_iterator& operator-=(difference_type n);\n    constexpr reference         operator[](difference_type n) const;\n};\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool                          // constexpr in C++17\noperator==(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool                          // constexpr in C++17\noperator<(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool                          // constexpr in C++17\noperator!=(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool                          // constexpr in C++17\noperator>(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool                          // constexpr in C++17\noperator>=(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool                          // constexpr in C++17\noperator<=(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr auto\noperator-(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y)\n-> decltype(__y.base() - __x.base());   // constexpr in C++17\n\ntemplate <class Iterator>\nconstexpr reverse_iterator<Iterator>\noperator+(typename reverse_iterator<Iterator>::difference_type n, \n          const reverse_iterator<Iterator>& x);   // constexpr in C++17\n\ntemplate <class Iterator>\nconstexpr reverse_iterator<Iterator> make_reverse_iterator(Iterator i); // C++14, constexpr in C++17\n\ntemplate <class Container>\nclass back_insert_iterator\n{\nprotected:\n    Container* container;\npublic:\n    typedef Container                   container_type;\n    typedef void                        value_type;\n    typedef void                        difference_type;\n    typedef void                        reference;\n    typedef void                        pointer;\n\n    explicit back_insert_iterator(Container& x);\n    back_insert_iterator& operator=(const typename Container::value_type& value);\n    back_insert_iterator& operator*();\n    back_insert_iterator& operator++();\n    back_insert_iterator  operator++(int);\n};\n\ntemplate <class Container> back_insert_iterator<Container> back_inserter(Container& x);\n\ntemplate <class Container>\nclass front_insert_iterator\n{\nprotected:\n    Container* container;\npublic:\n    typedef Container                    container_type;\n    typedef void                         value_type;\n    typedef void                         difference_type;\n    typedef void                         reference;\n    typedef void                         pointer;\n\n    explicit front_insert_iterator(Container& x);\n    front_insert_iterator& operator=(const typename Container::value_type& value);\n    front_insert_iterator& operator*();\n    front_insert_iterator& operator++();\n    front_insert_iterator  operator++(int);\n};\n\ntemplate <class Container> front_insert_iterator<Container> front_inserter(Container& x);\n\ntemplate <class Container>\nclass insert_iterator\n{\nprotected:\n    Container* container;\n    typename Container::iterator iter;\npublic:\n    typedef Container              container_type;\n    typedef void                   value_type;\n    typedef void                   difference_type;\n    typedef void                   reference;\n    typedef void                   pointer;\n\n    insert_iterator(Container& x, typename Container::iterator i);\n    insert_iterator& operator=(const typename Container::value_type& value);\n    insert_iterator& operator*();\n    insert_iterator& operator++();\n    insert_iterator& operator++(int);\n};\n\ntemplate <class Container, class Iterator>\ninsert_iterator<Container> inserter(Container& x, Iterator i);\n\ntemplate <class Iterator>\nclass move_iterator {\npublic:\n    typedef Iterator                                              iterator_type;\n    typedef typename iterator_traits<Iterator>::difference_type   difference_type;\n    typedef Iterator                                              pointer;\n    typedef typename iterator_traits<Iterator>::value_type        value_type;\n    typedef typename iterator_traits<Iterator>::iterator_category iterator_category;\n    typedef value_type&&                                          reference;\n \n    constexpr move_iterator();  // all the constexprs are in C++17\n    constexpr explicit move_iterator(Iterator i);\n    template <class U>\n      constexpr move_iterator(const move_iterator<U>& u);\n    template <class U>\n      constexpr move_iterator& operator=(const move_iterator<U>& u);\n    constexpr iterator_type base() const;\n    constexpr reference operator*() const;\n    constexpr pointer operator->() const;\n    constexpr move_iterator& operator++();\n    constexpr move_iterator operator++(int);\n    constexpr move_iterator& operator--();\n    constexpr move_iterator operator--(int);\n    constexpr move_iterator operator+(difference_type n) const; \n    constexpr move_iterator& operator+=(difference_type n); \n    constexpr move_iterator operator-(difference_type n) const; \n    constexpr move_iterator& operator-=(difference_type n); \n    constexpr unspecified operator[](difference_type n) const;\nprivate:\n    Iterator current; // exposition only\n};\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool   // constexpr in C++17\noperator==(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool   // constexpr in C++17\noperator!=(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool   // constexpr in C++17\noperator<(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool   // constexpr in C++17\noperator<=(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool   // constexpr in C++17\noperator>(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr bool   // constexpr in C++17\noperator>=(const move_iterator<Iterator1>& x, const move_iterator<Iterator2>& y);\n\ntemplate <class Iterator1, class Iterator2>\nconstexpr auto   // constexpr in C++17\noperator-(const move_iterator<Iterator1>& x,\n          const move_iterator<Iterator2>& y) -> decltype(x.base() - y.base());\n\ntemplate <class Iterator>\nconstexpr move_iterator<Iterator> operator+(   // constexpr in C++17\n            typename move_iterator<Iterator>::difference_type n, \n            const move_iterator<Iterator>& x);\n\ntemplate <class Iterator>   // constexpr in C++17\nconstexpr  move_iterator<Iterator> make_move_iterator(const Iterator& i);\n\n\ntemplate <class T, class charT = char, class traits = char_traits<charT>, class Distance = ptrdiff_t>\nclass istream_iterator\n    : public iterator<input_iterator_tag, T, Distance, const T*, const T&>\n{\npublic:\n    typedef charT char_type;\n    typedef traits traits_type;\n    typedef basic_istream<charT,traits> istream_type;\n\n    constexpr istream_iterator();\n    istream_iterator(istream_type& s);\n    istream_iterator(const istream_iterator& x);\n    ~istream_iterator();\n\n    const T& operator*() const;\n    const T* operator->() const;\n    istream_iterator& operator++();\n    istream_iterator  operator++(int);\n};\n\ntemplate <class T, class charT, class traits, class Distance>\nbool operator==(const istream_iterator<T,charT,traits,Distance>& x,\n                const istream_iterator<T,charT,traits,Distance>& y);\ntemplate <class T, class charT, class traits, class Distance>\nbool operator!=(const istream_iterator<T,charT,traits,Distance>& x,\n                const istream_iterator<T,charT,traits,Distance>& y);\n\ntemplate <class T, class charT = char, class traits = char_traits<charT> >\nclass ostream_iterator\n    : public iterator<output_iterator_tag, void, void, void ,void>\n{\npublic:\n    typedef charT char_type;\n    typedef traits traits_type;\n    typedef basic_ostream<charT,traits> ostream_type;\n\n    ostream_iterator(ostream_type& s);\n    ostream_iterator(ostream_type& s, const charT* delimiter);\n    ostream_iterator(const ostream_iterator& x);\n    ~ostream_iterator();\n    ostream_iterator& operator=(const T& value);\n\n    ostream_iterator& operator*();\n    ostream_iterator& operator++();\n    ostream_iterator& operator++(int);\n};\n\ntemplate<class charT, class traits = char_traits<charT> >\nclass istreambuf_iterator\n    : public iterator<input_iterator_tag, charT,\n                      typename traits::off_type, unspecified,\n                      charT>\n{\npublic:\n    typedef charT                         char_type;\n    typedef traits                        traits_type;\n    typedef typename traits::int_type     int_type;\n    typedef basic_streambuf<charT,traits> streambuf_type;\n    typedef basic_istream<charT,traits>   istream_type;\n\n    istreambuf_iterator() noexcept;\n    istreambuf_iterator(istream_type& s) noexcept;\n    istreambuf_iterator(streambuf_type* s) noexcept;\n    istreambuf_iterator(a-private-type) noexcept;\n\n    charT                operator*() const;\n    pointer operator->() const;\n    istreambuf_iterator& operator++();\n    a-private-type       operator++(int);\n\n    bool equal(const istreambuf_iterator& b) const;\n};\n\ntemplate <class charT, class traits>\nbool operator==(const istreambuf_iterator<charT,traits>& a,\n                const istreambuf_iterator<charT,traits>& b);\ntemplate <class charT, class traits>\nbool operator!=(const istreambuf_iterator<charT,traits>& a,\n                const istreambuf_iterator<charT,traits>& b);\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass ostreambuf_iterator\n    : public iterator<output_iterator_tag, void, void, void, void>\n{\npublic:\n    typedef charT                         char_type;\n    typedef traits                        traits_type;\n    typedef basic_streambuf<charT,traits> streambuf_type;\n    typedef basic_ostream<charT,traits>   ostream_type;\n\n    ostreambuf_iterator(ostream_type& s) noexcept;\n    ostreambuf_iterator(streambuf_type* s) noexcept;\n    ostreambuf_iterator& operator=(charT c);\n    ostreambuf_iterator& operator*();\n    ostreambuf_iterator& operator++();\n    ostreambuf_iterator& operator++(int);\n    bool failed() const noexcept;\n};\n\ntemplate <class C> constexpr auto begin(C& c) -> decltype(c.begin());\ntemplate <class C> constexpr auto begin(const C& c) -> decltype(c.begin());\ntemplate <class C> constexpr auto end(C& c) -> decltype(c.end());\ntemplate <class C> constexpr auto end(const C& c) -> decltype(c.end());\ntemplate <class T, size_t N> constexpr T* begin(T (&array)[N]);\ntemplate <class T, size_t N> constexpr T* end(T (&array)[N]);\n\ntemplate <class C> auto constexpr cbegin(const C& c) -> decltype(std::begin(c));        // C++14\ntemplate <class C> auto constexpr cend(const C& c) -> decltype(std::end(c));            // C++14\ntemplate <class C> auto constexpr rbegin(C& c) -> decltype(c.rbegin());                 // C++14\ntemplate <class C> auto constexpr rbegin(const C& c) -> decltype(c.rbegin());           // C++14\ntemplate <class C> auto constexpr rend(C& c) -> decltype(c.rend());                     // C++14\ntemplate <class C> constexpr auto rend(const C& c) -> decltype(c.rend());               // C++14\ntemplate <class E> reverse_iterator<const E*> constexpr rbegin(initializer_list<E> il); // C++14\ntemplate <class E> reverse_iterator<const E*> constexpr rend(initializer_list<E> il);   // C++14\ntemplate <class T, size_t N> reverse_iterator<T*> constexpr rbegin(T (&array)[N]);      // C++14\ntemplate <class T, size_t N> reverse_iterator<T*> constexpr rend(T (&array)[N]);        // C++14\ntemplate <class C> constexpr auto crbegin(const C& c) -> decltype(std::rbegin(c));      // C++14\ntemplate <class C> constexpr auto crend(const C& c) -> decltype(std::rend(c));          // C++14\n\n// 24.8, container access:\ntemplate <class C> constexpr auto size(const C& c) -> decltype(c.size());         // C++17\ntemplate <class T, size_t N> constexpr size_t size(const T (&array)[N]) noexcept; // C++17\ntemplate <class C> constexpr auto empty(const C& c) -> decltype(c.empty());       // C++17\ntemplate <class T, size_t N> constexpr bool empty(const T (&array)[N]) noexcept;  // C++17\ntemplate <class E> constexpr bool empty(initializer_list<E> il) noexcept;         // C++17\ntemplate <class C> constexpr auto data(C& c) -> decltype(c.data());               // C++17\ntemplate <class C> constexpr auto data(const C& c) -> decltype(c.data());         // C++17\ntemplate <class T, size_t N> constexpr T* data(T (&array)[N]) noexcept;           // C++17\ntemplate <class E> constexpr const E* data(initializer_list<E> il) noexcept;      // C++17\n\n}  // std\n\n*/\n\n#include <__config>\n#include <iosfwd> // for forward declarations of vector and string.\n#include <__functional_base>\n#include <type_traits>\n#include <cstddef>\n#include <initializer_list>\n#ifdef __APPLE__\n#include <Availability.h>\n#endif\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nstruct _LIBCPP_TEMPLATE_VIS input_iterator_tag {};\nstruct _LIBCPP_TEMPLATE_VIS output_iterator_tag {};\nstruct _LIBCPP_TEMPLATE_VIS forward_iterator_tag       : public input_iterator_tag {};\nstruct _LIBCPP_TEMPLATE_VIS bidirectional_iterator_tag : public forward_iterator_tag {};\nstruct _LIBCPP_TEMPLATE_VIS random_access_iterator_tag : public bidirectional_iterator_tag {};\n\ntemplate <class _Tp>\nstruct __has_iterator_category\n{\nprivate:\n    struct __two {char __lx; char __lxx;};\n    template <class _Up> static __two __test(...);\n    template <class _Up> static char __test(typename _Up::iterator_category* = 0);\npublic:\n    static const bool value = sizeof(__test<_Tp>(0)) == 1;\n};\n\ntemplate <class _Iter, bool> struct __iterator_traits_impl {};\n\ntemplate <class _Iter>\nstruct __iterator_traits_impl<_Iter, true>\n{\n    typedef typename _Iter::difference_type   difference_type;\n    typedef typename _Iter::value_type        value_type;\n    typedef typename _Iter::pointer           pointer;\n    typedef typename _Iter::reference         reference;\n    typedef typename _Iter::iterator_category iterator_category;\n};\n\ntemplate <class _Iter, bool> struct __iterator_traits {};\n\ntemplate <class _Iter>\nstruct __iterator_traits<_Iter, true>\n    :  __iterator_traits_impl\n      <\n        _Iter,\n        is_convertible<typename _Iter::iterator_category, input_iterator_tag>::value ||\n        is_convertible<typename _Iter::iterator_category, output_iterator_tag>::value\n      >\n{};\n\n// iterator_traits<Iterator> will only have the nested types if Iterator::iterator_category\n//    exists.  Else iterator_traits<Iterator> will be an empty class.  This is a\n//    conforming extension which allows some programs to compile and behave as\n//    the client expects instead of failing at compile time.\n\ntemplate <class _Iter>\nstruct _LIBCPP_TEMPLATE_VIS iterator_traits\n    : __iterator_traits<_Iter, __has_iterator_category<_Iter>::value> {};\n\ntemplate<class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS iterator_traits<_Tp*>\n{\n    typedef ptrdiff_t difference_type;\n    typedef typename remove_const<_Tp>::type value_type;\n    typedef _Tp* pointer;\n    typedef _Tp& reference;\n    typedef random_access_iterator_tag iterator_category;\n};\n\ntemplate <class _Tp, class _Up, bool = __has_iterator_category<iterator_traits<_Tp> >::value>\nstruct __has_iterator_category_convertible_to\n    : public integral_constant<bool, is_convertible<typename iterator_traits<_Tp>::iterator_category, _Up>::value>\n{};\n\ntemplate <class _Tp, class _Up>\nstruct __has_iterator_category_convertible_to<_Tp, _Up, false> : public false_type {};\n\ntemplate <class _Tp>\nstruct __is_input_iterator : public __has_iterator_category_convertible_to<_Tp, input_iterator_tag> {};\n\ntemplate <class _Tp>\nstruct __is_forward_iterator : public __has_iterator_category_convertible_to<_Tp, forward_iterator_tag> {};\n\ntemplate <class _Tp>\nstruct __is_bidirectional_iterator : public __has_iterator_category_convertible_to<_Tp, bidirectional_iterator_tag> {};\n\ntemplate <class _Tp>\nstruct __is_random_access_iterator : public __has_iterator_category_convertible_to<_Tp, random_access_iterator_tag> {};\n\ntemplate <class _Tp>\nstruct __is_exactly_input_iterator\n    : public integral_constant<bool, \n         __has_iterator_category_convertible_to<_Tp, input_iterator_tag>::value && \n        !__has_iterator_category_convertible_to<_Tp, forward_iterator_tag>::value> {};\n\ntemplate<class _Category, class _Tp, class _Distance = ptrdiff_t,\n         class _Pointer = _Tp*, class _Reference = _Tp&>\nstruct _LIBCPP_TEMPLATE_VIS iterator\n{\n    typedef _Tp        value_type;\n    typedef _Distance  difference_type;\n    typedef _Pointer   pointer;\n    typedef _Reference reference;\n    typedef _Category  iterator_category;\n};\n\ntemplate <class _InputIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nvoid __advance(_InputIter& __i,\n             typename iterator_traits<_InputIter>::difference_type __n, input_iterator_tag)\n{\n    for (; __n > 0; --__n)\n        ++__i;\n}\n\ntemplate <class _BiDirIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nvoid __advance(_BiDirIter& __i,\n             typename iterator_traits<_BiDirIter>::difference_type __n, bidirectional_iterator_tag)\n{\n    if (__n >= 0)\n        for (; __n > 0; --__n)\n            ++__i;\n    else\n        for (; __n < 0; ++__n)\n            --__i;\n}\n\ntemplate <class _RandIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nvoid __advance(_RandIter& __i,\n             typename iterator_traits<_RandIter>::difference_type __n, random_access_iterator_tag)\n{\n   __i += __n;\n}\n\ntemplate <class _InputIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nvoid advance(_InputIter& __i,\n             typename iterator_traits<_InputIter>::difference_type __n)\n{\n    __advance(__i, __n, typename iterator_traits<_InputIter>::iterator_category());\n}\n\ntemplate <class _InputIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\ntypename iterator_traits<_InputIter>::difference_type\n__distance(_InputIter __first, _InputIter __last, input_iterator_tag)\n{\n    typename iterator_traits<_InputIter>::difference_type __r(0);\n    for (; __first != __last; ++__first)\n        ++__r;\n    return __r;\n}\n\ntemplate <class _RandIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\ntypename iterator_traits<_RandIter>::difference_type\n__distance(_RandIter __first, _RandIter __last, random_access_iterator_tag)\n{\n    return __last - __first;\n}\n\ntemplate <class _InputIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\ntypename iterator_traits<_InputIter>::difference_type\ndistance(_InputIter __first, _InputIter __last)\n{\n    return __distance(__first, __last, typename iterator_traits<_InputIter>::iterator_category());\n}\n\ntemplate <class _InputIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n_InputIter\nnext(_InputIter __x,\n     typename iterator_traits<_InputIter>::difference_type __n = 1,\n     typename enable_if<__is_input_iterator<_InputIter>::value>::type* = 0)\n{\n    _VSTD::advance(__x, __n);\n    return __x;\n}\n\ntemplate <class _BidiretionalIter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n_BidiretionalIter\nprev(_BidiretionalIter __x,\n     typename iterator_traits<_BidiretionalIter>::difference_type __n = 1,\n     typename enable_if<__is_bidirectional_iterator<_BidiretionalIter>::value>::type* = 0)\n{\n    _VSTD::advance(__x, -__n);\n    return __x;\n}\n\n\ntemplate <class _Tp, class = void>\nstruct __is_stashing_iterator : false_type {};\n\ntemplate <class _Tp>\nstruct __is_stashing_iterator<_Tp, typename __void_t<typename _Tp::__stashing_iterator_tag>::type>\n  : true_type {};\n\ntemplate <class _Iter>\nclass _LIBCPP_TEMPLATE_VIS reverse_iterator\n    : public iterator<typename iterator_traits<_Iter>::iterator_category,\n                      typename iterator_traits<_Iter>::value_type,\n                      typename iterator_traits<_Iter>::difference_type,\n                      typename iterator_traits<_Iter>::pointer,\n                      typename iterator_traits<_Iter>::reference>\n{\nprivate:\n    /*mutable*/ _Iter __t;  // no longer used as of LWG #2360, not removed due to ABI break\n\n    static_assert(!__is_stashing_iterator<_Iter>::value,\n      \"The specified iterator type cannot be used with reverse_iterator; \"\n      \"Using stashing iterators with reverse_iterator causes undefined behavior\");\n\nprotected:\n    _Iter current;\npublic:\n    typedef _Iter                                            iterator_type;\n    typedef typename iterator_traits<_Iter>::difference_type difference_type;\n    typedef typename iterator_traits<_Iter>::reference       reference;\n    typedef typename iterator_traits<_Iter>::pointer         pointer;\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator() : __t(), current() {}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    explicit reverse_iterator(_Iter __x) : __t(__x), current(__x) {}\n    template <class _Up>\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n        reverse_iterator(const reverse_iterator<_Up>& __u) : __t(__u.base()), current(__u.base()) {}\n    template <class _Up>\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n        reverse_iterator& operator=(const reverse_iterator<_Up>& __u)\n            { __t = current = __u.base(); return *this; }\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    _Iter base() const {return current;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reference operator*() const {_Iter __tmp = current; return *--__tmp;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    pointer  operator->() const {return _VSTD::addressof(operator*());}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator& operator++() {--current; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator  operator++(int) {reverse_iterator __tmp(*this); --current; return __tmp;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator& operator--() {++current; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator  operator--(int) {reverse_iterator __tmp(*this); ++current; return __tmp;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator  operator+ (difference_type __n) const {return reverse_iterator(current - __n);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator& operator+=(difference_type __n) {current -= __n; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator  operator- (difference_type __n) const {return reverse_iterator(current + __n);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reverse_iterator& operator-=(difference_type __n) {current += __n; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reference         operator[](difference_type __n) const {return *(*this + __n);}\n};\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator==(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)\n{\n    return __x.base() == __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator<(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)\n{\n    return __x.base() > __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator!=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)\n{\n    return __x.base() != __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)\n{\n    return __x.base() < __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)\n{\n    return __x.base() <= __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator<=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)\n{\n    return __x.base() >= __y.base();\n}\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto\noperator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)\n-> decltype(__y.base() - __x.base())\n{\n    return __y.base() - __x.base();\n}\n#else\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename reverse_iterator<_Iter1>::difference_type\noperator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)\n{\n    return __y.base() - __x.base();\n}\n#endif\n\ntemplate <class _Iter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nreverse_iterator<_Iter>\noperator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x)\n{\n    return reverse_iterator<_Iter>(__x.base() - __n);\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Iter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nreverse_iterator<_Iter> make_reverse_iterator(_Iter __i)\n{\n    return reverse_iterator<_Iter>(__i);\n}\n#endif\n\ntemplate <class _Container>\nclass _LIBCPP_TEMPLATE_VIS back_insert_iterator\n    : public iterator<output_iterator_tag,\n                      void,\n                      void,\n                      void,\n                      void>\n{\nprotected:\n    _Container* container;\npublic:\n    typedef _Container container_type;\n\n    _LIBCPP_INLINE_VISIBILITY explicit back_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {}\n    _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator=(const typename _Container::value_type& __value_)\n        {container->push_back(__value_); return *this;}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator=(typename _Container::value_type&& __value_)\n        {container->push_back(_VSTD::move(__value_)); return *this;}\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator*()     {return *this;}\n    _LIBCPP_INLINE_VISIBILITY back_insert_iterator& operator++()    {return *this;}\n    _LIBCPP_INLINE_VISIBILITY back_insert_iterator  operator++(int) {return *this;}\n};\n\ntemplate <class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nback_insert_iterator<_Container>\nback_inserter(_Container& __x)\n{\n    return back_insert_iterator<_Container>(__x);\n}\n\ntemplate <class _Container>\nclass _LIBCPP_TEMPLATE_VIS front_insert_iterator\n    : public iterator<output_iterator_tag,\n                      void,\n                      void,\n                      void,\n                      void>\n{\nprotected:\n    _Container* container;\npublic:\n    typedef _Container container_type;\n\n    _LIBCPP_INLINE_VISIBILITY explicit front_insert_iterator(_Container& __x) : container(_VSTD::addressof(__x)) {}\n    _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator=(const typename _Container::value_type& __value_)\n        {container->push_front(__value_); return *this;}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator=(typename _Container::value_type&& __value_)\n        {container->push_front(_VSTD::move(__value_)); return *this;}\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator*()     {return *this;}\n    _LIBCPP_INLINE_VISIBILITY front_insert_iterator& operator++()    {return *this;}\n    _LIBCPP_INLINE_VISIBILITY front_insert_iterator  operator++(int) {return *this;}\n};\n\ntemplate <class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nfront_insert_iterator<_Container>\nfront_inserter(_Container& __x)\n{\n    return front_insert_iterator<_Container>(__x);\n}\n\ntemplate <class _Container>\nclass _LIBCPP_TEMPLATE_VIS insert_iterator\n    : public iterator<output_iterator_tag,\n                      void,\n                      void,\n                      void,\n                      void>\n{\nprotected:\n    _Container* container;\n    typename _Container::iterator iter;\npublic:\n    typedef _Container container_type;\n\n    _LIBCPP_INLINE_VISIBILITY insert_iterator(_Container& __x, typename _Container::iterator __i)\n        : container(_VSTD::addressof(__x)), iter(__i) {}\n    _LIBCPP_INLINE_VISIBILITY insert_iterator& operator=(const typename _Container::value_type& __value_)\n        {iter = container->insert(iter, __value_); ++iter; return *this;}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY insert_iterator& operator=(typename _Container::value_type&& __value_)\n        {iter = container->insert(iter, _VSTD::move(__value_)); ++iter; return *this;}\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY insert_iterator& operator*()        {return *this;}\n    _LIBCPP_INLINE_VISIBILITY insert_iterator& operator++()       {return *this;}\n    _LIBCPP_INLINE_VISIBILITY insert_iterator& operator++(int)    {return *this;}\n};\n\ntemplate <class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\ninsert_iterator<_Container>\ninserter(_Container& __x, typename _Container::iterator __i)\n{\n    return insert_iterator<_Container>(__x, __i);\n}\n\ntemplate <class _Tp, class _CharT = char,\n          class _Traits = char_traits<_CharT>, class _Distance = ptrdiff_t>\nclass _LIBCPP_TEMPLATE_VIS istream_iterator\n    : public iterator<input_iterator_tag, _Tp, _Distance, const _Tp*, const _Tp&>\n{\npublic:\n    typedef _CharT char_type;\n    typedef _Traits traits_type;\n    typedef basic_istream<_CharT,_Traits> istream_type;\nprivate:\n    istream_type* __in_stream_;\n    _Tp __value_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR istream_iterator() : __in_stream_(0), __value_() {}\n    _LIBCPP_INLINE_VISIBILITY istream_iterator(istream_type& __s) : __in_stream_(_VSTD::addressof(__s))\n        {\n            if (!(*__in_stream_ >> __value_))\n                __in_stream_ = 0;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY const _Tp& operator*() const {return __value_;}\n    _LIBCPP_INLINE_VISIBILITY const _Tp* operator->() const {return _VSTD::addressof((operator*()));}\n    _LIBCPP_INLINE_VISIBILITY istream_iterator& operator++()\n        {\n            if (!(*__in_stream_ >> __value_))\n                __in_stream_ = 0;\n            return *this;\n        }\n    _LIBCPP_INLINE_VISIBILITY istream_iterator  operator++(int)\n        {istream_iterator __t(*this); ++(*this); return __t;}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const istream_iterator& __x, const istream_iterator& __y)\n        {return __x.__in_stream_ == __y.__in_stream_;}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const istream_iterator& __x, const istream_iterator& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _Tp, class _CharT = char, class _Traits = char_traits<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS ostream_iterator\n    : public iterator<output_iterator_tag, void, void, void, void>\n{\npublic:\n    typedef _CharT char_type;\n    typedef _Traits traits_type;\n    typedef basic_ostream<_CharT,_Traits> ostream_type;\nprivate:\n    ostream_type* __out_stream_;\n    const char_type* __delim_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY ostream_iterator(ostream_type& __s) _NOEXCEPT\n        : __out_stream_(_VSTD::addressof(__s)), __delim_(0) {}\n    _LIBCPP_INLINE_VISIBILITY ostream_iterator(ostream_type& __s, const _CharT* __delimiter) _NOEXCEPT\n        : __out_stream_(_VSTD::addressof(__s)), __delim_(__delimiter) {}\n    _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator=(const _Tp& __value_)\n        {\n            *__out_stream_ << __value_;\n            if (__delim_)\n                *__out_stream_ << __delim_;\n            return *this;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator*()     {return *this;}\n    _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator++()    {return *this;}\n    _LIBCPP_INLINE_VISIBILITY ostream_iterator& operator++(int) {return *this;}\n};\n\ntemplate<class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS istreambuf_iterator\n    : public iterator<input_iterator_tag, _CharT,\n                      typename _Traits::off_type, _CharT*,\n                      _CharT>\n{\npublic:\n    typedef _CharT                          char_type;\n    typedef _Traits                         traits_type;\n    typedef typename _Traits::int_type      int_type;\n    typedef basic_streambuf<_CharT,_Traits> streambuf_type;\n    typedef basic_istream<_CharT,_Traits>   istream_type;\nprivate:\n    mutable streambuf_type* __sbuf_;\n\n    class __proxy\n    {\n        char_type __keep_;\n        streambuf_type* __sbuf_;\n        _LIBCPP_INLINE_VISIBILITY __proxy(char_type __c, streambuf_type* __s)\n            : __keep_(__c), __sbuf_(__s) {}\n        friend class istreambuf_iterator;\n    public:\n        _LIBCPP_INLINE_VISIBILITY char_type operator*() const {return __keep_;}\n    };\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool __test_for_eof() const\n    {\n        if (__sbuf_ && traits_type::eq_int_type(__sbuf_->sgetc(), traits_type::eof()))\n            __sbuf_ = 0;\n        return __sbuf_ == 0;\n    }\npublic:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR istreambuf_iterator() _NOEXCEPT : __sbuf_(0) {}\n    _LIBCPP_INLINE_VISIBILITY istreambuf_iterator(istream_type& __s) _NOEXCEPT\n        : __sbuf_(__s.rdbuf()) {}\n    _LIBCPP_INLINE_VISIBILITY istreambuf_iterator(streambuf_type* __s) _NOEXCEPT\n        : __sbuf_(__s) {}\n    _LIBCPP_INLINE_VISIBILITY istreambuf_iterator(const __proxy& __p) _NOEXCEPT\n        : __sbuf_(__p.__sbuf_) {}\n\n    _LIBCPP_INLINE_VISIBILITY char_type  operator*() const\n        {return static_cast<char_type>(__sbuf_->sgetc());}\n    _LIBCPP_INLINE_VISIBILITY istreambuf_iterator& operator++()\n        {\n            __sbuf_->sbumpc();\n            return *this;\n        }\n    _LIBCPP_INLINE_VISIBILITY __proxy              operator++(int)\n        {\n            return __proxy(__sbuf_->sbumpc(), __sbuf_);\n        }\n\n    _LIBCPP_INLINE_VISIBILITY bool equal(const istreambuf_iterator& __b) const\n        {return __test_for_eof() == __b.__test_for_eof();}\n};\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator==(const istreambuf_iterator<_CharT,_Traits>& __a,\n                const istreambuf_iterator<_CharT,_Traits>& __b)\n                {return __a.equal(__b);}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator!=(const istreambuf_iterator<_CharT,_Traits>& __a,\n                const istreambuf_iterator<_CharT,_Traits>& __b)\n                {return !__a.equal(__b);}\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS ostreambuf_iterator\n    : public iterator<output_iterator_tag, void, void, void, void>\n{\npublic:\n    typedef _CharT                          char_type;\n    typedef _Traits                         traits_type;\n    typedef basic_streambuf<_CharT,_Traits> streambuf_type;\n    typedef basic_ostream<_CharT,_Traits>   ostream_type;\nprivate:\n    streambuf_type* __sbuf_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator(ostream_type& __s) _NOEXCEPT\n        : __sbuf_(__s.rdbuf()) {}\n    _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator(streambuf_type* __s) _NOEXCEPT\n        : __sbuf_(__s) {}\n    _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator=(_CharT __c)\n        {\n            if (__sbuf_ && traits_type::eq_int_type(__sbuf_->sputc(__c), traits_type::eof()))\n                __sbuf_ = 0;\n            return *this;\n        }\n    _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator*()     {return *this;}\n    _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator++()    {return *this;}\n    _LIBCPP_INLINE_VISIBILITY ostreambuf_iterator& operator++(int) {return *this;}\n    _LIBCPP_INLINE_VISIBILITY bool failed() const _NOEXCEPT {return __sbuf_ == 0;}\n\n#if !defined(__APPLE__) || \\\n    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \\\n    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)\n\n    template <class _Ch, class _Tr>\n    friend\n    _LIBCPP_HIDDEN\n    ostreambuf_iterator<_Ch, _Tr>\n    __pad_and_output(ostreambuf_iterator<_Ch, _Tr> __s,\n                     const _Ch* __ob, const _Ch* __op, const _Ch* __oe,\n                     ios_base& __iob, _Ch __fl);\n#endif\n};\n\ntemplate <class _Iter>\nclass _LIBCPP_TEMPLATE_VIS move_iterator\n{\nprivate:\n    _Iter __i;\npublic:\n    typedef _Iter                                            iterator_type;\n    typedef typename iterator_traits<iterator_type>::iterator_category iterator_category;\n    typedef typename iterator_traits<iterator_type>::value_type value_type;\n    typedef typename iterator_traits<iterator_type>::difference_type difference_type;\n    typedef iterator_type pointer;\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename iterator_traits<iterator_type>::reference __reference;\n    typedef typename conditional<\n            is_reference<__reference>::value,\n            typename remove_reference<__reference>::type&&,\n            __reference\n        >::type reference;\n#else\n    typedef typename iterator_traits<iterator_type>::reference reference;\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator() : __i() {}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    explicit move_iterator(_Iter __x) : __i(__x) {}\n    template <class _Up>\n      _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n      move_iterator(const move_iterator<_Up>& __u) : __i(__u.base()) {}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 _Iter base() const {return __i;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 \n    reference operator*() const { return static_cast<reference>(*__i); }\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    pointer  operator->() const { return __i;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator& operator++() {++__i; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator  operator++(int) {move_iterator __tmp(*this); ++__i; return __tmp;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator& operator--() {--__i; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator  operator--(int) {move_iterator __tmp(*this); --__i; return __tmp;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator  operator+ (difference_type __n) const {return move_iterator(__i + __n);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator& operator+=(difference_type __n) {__i += __n; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator  operator- (difference_type __n) const {return move_iterator(__i - __n);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    move_iterator& operator-=(difference_type __n) {__i -= __n; return *this;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n    reference operator[](difference_type __n) const { return static_cast<reference>(__i[__n]); }\n};\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator==(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)\n{\n    return __x.base() == __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator<(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)\n{\n    return __x.base() < __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator!=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)\n{\n    return __x.base() != __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator>(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)\n{\n    return __x.base() > __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator>=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)\n{\n    return __x.base() >= __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nbool\noperator<=(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)\n{\n    return __x.base() <= __y.base();\n}\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto\noperator-(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)\n-> decltype(__x.base() - __y.base())\n{\n    return __x.base() - __y.base();\n}\n#else\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename move_iterator<_Iter1>::difference_type\noperator-(const move_iterator<_Iter1>& __x, const move_iterator<_Iter2>& __y)\n{\n    return __x.base() - __y.base();\n}\n#endif\n\ntemplate <class _Iter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nmove_iterator<_Iter>\noperator+(typename move_iterator<_Iter>::difference_type __n, const move_iterator<_Iter>& __x)\n{\n    return move_iterator<_Iter>(__x.base() + __n);\n}\n\ntemplate <class _Iter>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nmove_iterator<_Iter>\nmake_move_iterator(_Iter __i)\n{\n    return move_iterator<_Iter>(__i);\n}\n\n// __wrap_iter\n\ntemplate <class _Iter> class __wrap_iter;\n\ntemplate <class _Iter1, class _Iter2>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\ntemplate <class _Iter1, class _Iter2>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\ntemplate <class _Iter1, class _Iter2>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\ntemplate <class _Iter1, class _Iter2>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\ntemplate <class _Iter1, class _Iter2>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\ntemplate <class _Iter1, class _Iter2>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Iter1, class _Iter2>\n_LIBCPP_INLINE_VISIBILITY\nauto\noperator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n-> decltype(__x.base() - __y.base());\n#else\ntemplate <class _Iter1, class _Iter2>\n_LIBCPP_INLINE_VISIBILITY\ntypename __wrap_iter<_Iter1>::difference_type\noperator-(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n#endif\n\ntemplate <class _Iter>\n_LIBCPP_INLINE_VISIBILITY\n__wrap_iter<_Iter>\noperator+(typename __wrap_iter<_Iter>::difference_type, __wrap_iter<_Iter>) _NOEXCEPT_DEBUG;\n\ntemplate <class _Ip, class _Op> _Op _LIBCPP_INLINE_VISIBILITY copy(_Ip, _Ip, _Op);\ntemplate <class _B1, class _B2> _B2 _LIBCPP_INLINE_VISIBILITY copy_backward(_B1, _B1, _B2);\ntemplate <class _Ip, class _Op> _Op _LIBCPP_INLINE_VISIBILITY move(_Ip, _Ip, _Op);\ntemplate <class _B1, class _B2> _B2 _LIBCPP_INLINE_VISIBILITY move_backward(_B1, _B1, _B2);\n\n#if _LIBCPP_DEBUG_LEVEL < 2\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_trivially_copy_assignable<_Tp>::value,\n    _Tp*\n>::type\n__unwrap_iter(__wrap_iter<_Tp*>);\n\n#else\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    is_trivially_copy_assignable<_Tp>::value,\n    __wrap_iter<_Tp*>\n>::type\n__unwrap_iter(__wrap_iter<_Tp*> __i);\n\n#endif\n\ntemplate <class _Iter>\nclass __wrap_iter\n{\npublic:\n    typedef _Iter                                                      iterator_type;\n    typedef typename iterator_traits<iterator_type>::iterator_category iterator_category;\n    typedef typename iterator_traits<iterator_type>::value_type        value_type;\n    typedef typename iterator_traits<iterator_type>::difference_type   difference_type;\n    typedef typename iterator_traits<iterator_type>::pointer           pointer;\n    typedef typename iterator_traits<iterator_type>::reference         reference;\nprivate:\n    iterator_type __i;\npublic:\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter() _NOEXCEPT_DEBUG\n#if _LIBCPP_STD_VER > 11\n                : __i{}\n#endif\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->__insert_i(this);\n#endif\n    }\n    template <class _Up> _LIBCPP_INLINE_VISIBILITY __wrap_iter(const __wrap_iter<_Up>& __u,\n        typename enable_if<is_convertible<_Up, iterator_type>::value>::type* = 0) _NOEXCEPT_DEBUG\n        : __i(__u.base())\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->__iterator_copy(this, &__u);\n#endif\n    }\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    __wrap_iter(const __wrap_iter& __x)\n        : __i(__x.base())\n    {\n        __get_db()->__iterator_copy(this, &__x);\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __wrap_iter& operator=(const __wrap_iter& __x)\n    {\n        if (this != &__x)\n        {\n            __get_db()->__iterator_copy(this, &__x);\n            __i = __x.__i;\n        }\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    ~__wrap_iter()\n    {\n        __get_db()->__erase_i(this);\n    }\n#endif\n    _LIBCPP_INLINE_VISIBILITY reference operator*() const _NOEXCEPT_DEBUG\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to dereference a non-dereferenceable iterator\");\n#endif\n        return *__i;\n    }\n    _LIBCPP_INLINE_VISIBILITY pointer  operator->() const _NOEXCEPT_DEBUG\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to dereference a non-dereferenceable iterator\");\n#endif\n        return (pointer)_VSTD::addressof(*__i);\n    }\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter& operator++() _NOEXCEPT_DEBUG\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to increment non-incrementable iterator\");\n#endif\n        ++__i;\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter  operator++(int) _NOEXCEPT_DEBUG\n        {__wrap_iter __tmp(*this); ++(*this); return __tmp;}\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter& operator--() _NOEXCEPT_DEBUG\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__decrementable(this),\n                       \"Attempted to decrement non-decrementable iterator\");\n#endif\n        --__i;\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter  operator--(int) _NOEXCEPT_DEBUG\n        {__wrap_iter __tmp(*this); --(*this); return __tmp;}\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter  operator+ (difference_type __n) const _NOEXCEPT_DEBUG\n        {__wrap_iter __w(*this); __w += __n; return __w;}\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter& operator+=(difference_type __n) _NOEXCEPT_DEBUG\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__addable(this, __n),\n                   \"Attempted to add/subtract iterator outside of valid range\");\n#endif\n        __i += __n;\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter  operator- (difference_type __n) const _NOEXCEPT_DEBUG\n        {return *this + (-__n);}\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter& operator-=(difference_type __n) _NOEXCEPT_DEBUG\n        {*this += -__n; return *this;}\n    _LIBCPP_INLINE_VISIBILITY reference        operator[](difference_type __n) const _NOEXCEPT_DEBUG\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__subscriptable(this, __n),\n                   \"Attempted to subscript iterator outside of valid range\");\n#endif\n        return __i[__n];\n    }\n\n    _LIBCPP_INLINE_VISIBILITY iterator_type base() const _NOEXCEPT_DEBUG {return __i;}\n\nprivate:\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter(const void* __p, iterator_type __x) : __i(__x)\n    {\n        __get_db()->__insert_ic(this, __p);\n    }\n#else\n    _LIBCPP_INLINE_VISIBILITY __wrap_iter(iterator_type __x) _NOEXCEPT_DEBUG : __i(__x) {}\n#endif\n\n    template <class _Up> friend class __wrap_iter;\n    template <class _CharT, class _Traits, class _Alloc> friend class basic_string;\n    template <class _Tp, class _Alloc> friend class _LIBCPP_TEMPLATE_VIS vector;\n\n    template <class _Iter1, class _Iter2>\n    friend\n    bool\n    operator==(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\n    template <class _Iter1, class _Iter2>\n    friend\n    bool\n    operator<(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\n    template <class _Iter1, class _Iter2>\n    friend\n    bool\n    operator!=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\n    template <class _Iter1, class _Iter2>\n    friend\n    bool\n    operator>(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\n    template <class _Iter1, class _Iter2>\n    friend\n    bool\n    operator>=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\n    template <class _Iter1, class _Iter2>\n    friend\n    bool\n    operator<=(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Iter1, class _Iter2>\n    friend\n    auto\n    operator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n    -> decltype(__x.base() - __y.base());\n#else\n    template <class _Iter1, class _Iter2>\n    friend\n    typename __wrap_iter<_Iter1>::difference_type\n    operator-(const __wrap_iter<_Iter1>&, const __wrap_iter<_Iter2>&) _NOEXCEPT_DEBUG;\n#endif\n\n    template <class _Iter1>\n    friend\n    __wrap_iter<_Iter1>\n    operator+(typename __wrap_iter<_Iter1>::difference_type, __wrap_iter<_Iter1>) _NOEXCEPT_DEBUG;\n\n    template <class _Ip, class _Op> friend _Op copy(_Ip, _Ip, _Op);\n    template <class _B1, class _B2> friend _B2 copy_backward(_B1, _B1, _B2);\n    template <class _Ip, class _Op> friend _Op move(_Ip, _Ip, _Op);\n    template <class _B1, class _B2> friend _B2 move_backward(_B1, _B1, _B2);\n\n#if _LIBCPP_DEBUG_LEVEL < 2\n    template <class _Tp>\n    friend\n    typename enable_if\n    <\n        is_trivially_copy_assignable<_Tp>::value,\n        _Tp*\n    >::type\n    __unwrap_iter(__wrap_iter<_Tp*>);\n#else\n  template <class _Tp>\n  inline _LIBCPP_INLINE_VISIBILITY\n  typename enable_if\n  <\n      is_trivially_copy_assignable<_Tp>::value,\n      __wrap_iter<_Tp*>\n  >::type\n  __unwrap_iter(__wrap_iter<_Tp*> __i);\n#endif\n};\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n{\n    return __x.base() == __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__less_than_comparable(&__x, &__y),\n                   \"Attempted to compare incomparable iterators\");\n#endif\n    return __x.base() < __y.base();\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n{\n    return __y < __x;\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Iter1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT_DEBUG\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Iter1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT_DEBUG\n{\n    return __y < __x;\n}\n\ntemplate <class _Iter1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT_DEBUG\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Iter1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter1>& __y) _NOEXCEPT_DEBUG\n{\n    return !(__y < __x);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\nauto\noperator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n-> decltype(__x.base() - __y.base())\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__less_than_comparable(&__x, &__y),\n                   \"Attempted to subtract incompatible iterators\");\n#endif\n    return __x.base() - __y.base();\n}\n#else\ntemplate <class _Iter1, class _Iter2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __wrap_iter<_Iter1>::difference_type\noperator-(const __wrap_iter<_Iter1>& __x, const __wrap_iter<_Iter2>& __y) _NOEXCEPT_DEBUG\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__less_than_comparable(&__x, &__y),\n                   \"Attempted to subtract incompatible iterators\");\n#endif\n    return __x.base() - __y.base();\n}\n#endif\n\ntemplate <class _Iter>\ninline _LIBCPP_INLINE_VISIBILITY\n__wrap_iter<_Iter>\noperator+(typename __wrap_iter<_Iter>::difference_type __n,\n          __wrap_iter<_Iter> __x) _NOEXCEPT_DEBUG\n{\n    __x += __n;\n    return __x;\n}\n\ntemplate <class _Iter>\nstruct __libcpp_is_trivial_iterator\n    : public _LIBCPP_BOOL_CONSTANT(is_pointer<_Iter>::value) {};\n    \ntemplate <class _Iter>\nstruct __libcpp_is_trivial_iterator<move_iterator<_Iter> >\n    : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};\n\ntemplate <class _Iter>\nstruct __libcpp_is_trivial_iterator<reverse_iterator<_Iter> >\n    : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};\n\ntemplate <class _Iter>\nstruct __libcpp_is_trivial_iterator<__wrap_iter<_Iter> >\n    : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};\n\n\ntemplate <class _Tp, size_t _Np>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp*\nbegin(_Tp (&__array)[_Np])\n{\n    return __array;\n}\n\ntemplate <class _Tp, size_t _Np>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n_Tp*\nend(_Tp (&__array)[_Np])\n{\n    return __array + _Np;\n}\n\n#if !defined(_LIBCPP_CXX03_LANG)\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto\nbegin(_Cp& __c) -> decltype(__c.begin())\n{\n    return __c.begin();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto\nbegin(const _Cp& __c) -> decltype(__c.begin())\n{\n    return __c.begin();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto\nend(_Cp& __c) -> decltype(__c.end())\n{\n    return __c.end();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto\nend(const _Cp& __c) -> decltype(__c.end())\n{\n    return __c.end();\n}\n\n#if _LIBCPP_STD_VER > 11\n\ntemplate <class _Tp, size_t _Np>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nreverse_iterator<_Tp*> rbegin(_Tp (&__array)[_Np])\n{\n    return reverse_iterator<_Tp*>(__array + _Np);\n}\n\ntemplate <class _Tp, size_t _Np>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nreverse_iterator<_Tp*> rend(_Tp (&__array)[_Np])\n{\n    return reverse_iterator<_Tp*>(__array);\n}\n\ntemplate <class _Ep>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nreverse_iterator<const _Ep*> rbegin(initializer_list<_Ep> __il)\n{\n    return reverse_iterator<const _Ep*>(__il.end());\n}\n\ntemplate <class _Ep>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nreverse_iterator<const _Ep*> rend(initializer_list<_Ep> __il)\n{\n    return reverse_iterator<const _Ep*>(__il.begin());\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nauto cbegin(const _Cp& __c) -> decltype(_VSTD::begin(__c))\n{\n    return _VSTD::begin(__c);\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nauto cend(const _Cp& __c) -> decltype(_VSTD::end(__c))\n{\n    return _VSTD::end(__c);\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto rbegin(_Cp& __c) -> decltype(__c.rbegin())\n{\n    return __c.rbegin();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto rbegin(const _Cp& __c) -> decltype(__c.rbegin())\n{\n    return __c.rbegin();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto rend(_Cp& __c) -> decltype(__c.rend())\n{\n    return __c.rend();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto rend(const _Cp& __c) -> decltype(__c.rend())\n{\n    return __c.rend();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto crbegin(const _Cp& __c) -> decltype(_VSTD::rbegin(__c))\n{\n    return _VSTD::rbegin(__c);\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\nauto crend(const _Cp& __c) -> decltype(_VSTD::rend(__c))\n{\n    return _VSTD::rend(__c);\n}\n\n#endif\n\n\n#else  // defined(_LIBCPP_CXX03_LANG)\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename _Cp::iterator\nbegin(_Cp& __c)\n{\n    return __c.begin();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename _Cp::const_iterator\nbegin(const _Cp& __c)\n{\n    return __c.begin();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename _Cp::iterator\nend(_Cp& __c)\n{\n    return __c.end();\n}\n\ntemplate <class _Cp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename _Cp::const_iterator\nend(const _Cp& __c)\n{\n    return __c.end();\n}\n\n#endif  // !defined(_LIBCPP_CXX03_LANG)\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Cont>\nconstexpr auto size(const _Cont& __c) -> decltype(__c.size()) { return __c.size(); }\n\ntemplate <class _Tp, size_t _Sz>\nconstexpr size_t size(const _Tp (&)[_Sz]) noexcept { return _Sz; }\n\ntemplate <class _Cont>\nconstexpr auto empty(const _Cont& __c) -> decltype(__c.empty()) { return __c.empty(); }\n\ntemplate <class _Tp, size_t _Sz>\nconstexpr bool empty(const _Tp (&)[_Sz]) noexcept { return false; }\n\ntemplate <class _Ep>\nconstexpr bool empty(initializer_list<_Ep> __il) noexcept { return __il.size() == 0; }\n\ntemplate <class _Cont> constexpr\nauto data(_Cont& __c) -> decltype(__c.data()) { return __c.data(); }\n\ntemplate <class _Cont> constexpr\nauto data(const _Cont& __c) -> decltype(__c.data()) { return __c.data(); }\n\ntemplate <class _Tp, size_t _Sz>\nconstexpr _Tp* data(_Tp (&__array)[_Sz]) noexcept { return __array; }\n\ntemplate <class _Ep>\nconstexpr const _Ep* data(initializer_list<_Ep> __il) noexcept { return __il.begin(); }\n#endif\n\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_ITERATOR\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/limits",
    "content": "// -*- C++ -*-\n//===---------------------------- limits ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_LIMITS\n#define _LIBCPP_LIMITS\n\n/*\n    limits synopsis\n\nnamespace std\n{\n\ntemplate<class T>\nclass numeric_limits\n{\npublic:\n    static constexpr bool is_specialized = false;\n    static constexpr T min() noexcept;\n    static constexpr T max() noexcept;\n    static constexpr T lowest() noexcept;\n\n    static constexpr int  digits = 0;\n    static constexpr int  digits10 = 0;\n    static constexpr int  max_digits10 = 0;\n    static constexpr bool is_signed = false;\n    static constexpr bool is_integer = false;\n    static constexpr bool is_exact = false;\n    static constexpr int  radix = 0;\n    static constexpr T epsilon() noexcept;\n    static constexpr T round_error() noexcept;\n\n    static constexpr int  min_exponent = 0;\n    static constexpr int  min_exponent10 = 0;\n    static constexpr int  max_exponent = 0;\n    static constexpr int  max_exponent10 = 0;\n\n    static constexpr bool has_infinity = false;\n    static constexpr bool has_quiet_NaN = false;\n    static constexpr bool has_signaling_NaN = false;\n    static constexpr float_denorm_style has_denorm = denorm_absent;\n    static constexpr bool has_denorm_loss = false;\n    static constexpr T infinity() noexcept;\n    static constexpr T quiet_NaN() noexcept;\n    static constexpr T signaling_NaN() noexcept;\n    static constexpr T denorm_min() noexcept;\n\n    static constexpr bool is_iec559 = false;\n    static constexpr bool is_bounded = false;\n    static constexpr bool is_modulo = false;\n\n    static constexpr bool traps = false;\n    static constexpr bool tinyness_before = false;\n    static constexpr float_round_style round_style = round_toward_zero;\n};\n\nenum float_round_style\n{\n    round_indeterminate       = -1,\n    round_toward_zero         =  0,\n    round_to_nearest          =  1,\n    round_toward_infinity     =  2,\n    round_toward_neg_infinity =  3\n};\n\nenum float_denorm_style\n{\n    denorm_indeterminate = -1,\n    denorm_absent = 0,\n    denorm_present = 1\n};\n\ntemplate<> class numeric_limits<cv bool>;\n\ntemplate<> class numeric_limits<cv char>;\ntemplate<> class numeric_limits<cv signed char>;\ntemplate<> class numeric_limits<cv unsigned char>;\ntemplate<> class numeric_limits<cv wchar_t>;\ntemplate<> class numeric_limits<cv char16_t>;\ntemplate<> class numeric_limits<cv char32_t>;\n\ntemplate<> class numeric_limits<cv short>;\ntemplate<> class numeric_limits<cv int>;\ntemplate<> class numeric_limits<cv long>;\ntemplate<> class numeric_limits<cv long long>;\ntemplate<> class numeric_limits<cv unsigned short>;\ntemplate<> class numeric_limits<cv unsigned int>;\ntemplate<> class numeric_limits<cv unsigned long>;\ntemplate<> class numeric_limits<cv unsigned long long>;\n\ntemplate<> class numeric_limits<cv float>;\ntemplate<> class numeric_limits<cv double>;\ntemplate<> class numeric_limits<cv long double>;\n\n}  // std\n\n*/\n#include <__config>\n#include <type_traits>\n\n#if defined(_LIBCPP_COMPILER_MSVC)\n#include \"support/win32/limits_msvc_win32.h\"\n#endif // _LIBCPP_MSVCRT\n\n#if defined(__IBMCPP__)\n#include \"support/ibm/limits.h\"\n#endif // __IBMCPP__\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nenum float_round_style\n{\n    round_indeterminate       = -1,\n    round_toward_zero         =  0,\n    round_to_nearest          =  1,\n    round_toward_infinity     =  2,\n    round_toward_neg_infinity =  3\n};\n\nenum float_denorm_style\n{\n    denorm_indeterminate = -1,\n    denorm_absent = 0,\n    denorm_present = 1\n};\n\ntemplate <class _Tp, bool = is_arithmetic<_Tp>::value>\nclass __libcpp_numeric_limits\n{\nprotected:\n    typedef _Tp type;\n\n    static _LIBCPP_CONSTEXPR const  bool is_specialized = false;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return type();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return type();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return type();}\n\n    static _LIBCPP_CONSTEXPR const int  digits = 0;\n    static _LIBCPP_CONSTEXPR const int  digits10 = 0;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = 0;\n    static _LIBCPP_CONSTEXPR const bool is_signed = false;\n    static _LIBCPP_CONSTEXPR const bool is_integer = false;\n    static _LIBCPP_CONSTEXPR const bool is_exact = false;\n    static _LIBCPP_CONSTEXPR const int  radix = 0;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return type();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return type();}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = 0;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = 0;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = 0;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = 0;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = false;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = false;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = false;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_absent;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return type();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return type();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return type();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return type();}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = false;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = false;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = false;\n\n    static _LIBCPP_CONSTEXPR const bool traps = false;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = false;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = round_toward_zero;\n};\n\ntemplate <class _Tp, int __digits, bool _IsSigned>\nstruct __libcpp_compute_min\n{\n    static _LIBCPP_CONSTEXPR const _Tp value = _Tp(_Tp(1) << __digits);\n};\n\ntemplate <class _Tp, int __digits>\nstruct __libcpp_compute_min<_Tp, __digits, false>\n{\n    static _LIBCPP_CONSTEXPR const _Tp value = _Tp(0);\n};\n\ntemplate <class _Tp>\nclass __libcpp_numeric_limits<_Tp, true>\n{\nprotected:\n    typedef _Tp type;\n\n    static _LIBCPP_CONSTEXPR const bool is_specialized = true;\n\n    static _LIBCPP_CONSTEXPR const bool is_signed = type(-1) < type(0);\n    static _LIBCPP_CONSTEXPR const int  digits = static_cast<int>(sizeof(type) * __CHAR_BIT__ - is_signed);\n    static _LIBCPP_CONSTEXPR const int  digits10 = digits * 3 / 10;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = 0;\n    static _LIBCPP_CONSTEXPR const type __min = __libcpp_compute_min<type, digits, is_signed>::value;\n    static _LIBCPP_CONSTEXPR const type __max = is_signed ? type(type(~0) ^ __min) : type(~0);\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __min;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __max;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return min();}\n\n    static _LIBCPP_CONSTEXPR const bool is_integer = true;\n    static _LIBCPP_CONSTEXPR const bool is_exact = true;\n    static _LIBCPP_CONSTEXPR const int  radix = 2;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return type(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return type(0);}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = 0;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = 0;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = 0;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = 0;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = false;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = false;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = false;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_absent;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return type(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return type(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return type(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return type(0);}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = false;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = true;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = !_VSTD::is_signed<_Tp>::value;\n\n#if defined(__i386__) || defined(__x86_64__) || defined(__pnacl__) || \\\n    defined(__wasm__)\n    static _LIBCPP_CONSTEXPR const bool traps = true;\n#else\n    static _LIBCPP_CONSTEXPR const bool traps = false;\n#endif\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = false;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = round_toward_zero;\n};\n\ntemplate <>\nclass __libcpp_numeric_limits<bool, true>\n{\nprotected:\n    typedef bool type;\n\n    static _LIBCPP_CONSTEXPR const bool is_specialized = true;\n\n    static _LIBCPP_CONSTEXPR const bool is_signed = false;\n    static _LIBCPP_CONSTEXPR const int  digits = 1;\n    static _LIBCPP_CONSTEXPR const int  digits10 = 0;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = 0;\n    static _LIBCPP_CONSTEXPR const type __min = false;\n    static _LIBCPP_CONSTEXPR const type __max = true;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __min;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __max;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return min();}\n\n    static _LIBCPP_CONSTEXPR const bool is_integer = true;\n    static _LIBCPP_CONSTEXPR const bool is_exact = true;\n    static _LIBCPP_CONSTEXPR const int  radix = 2;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return type(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return type(0);}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = 0;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = 0;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = 0;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = 0;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = false;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = false;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = false;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_absent;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return type(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return type(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return type(0);}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return type(0);}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = false;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = true;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = false;\n\n    static _LIBCPP_CONSTEXPR const bool traps = false;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = false;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = round_toward_zero;\n};\n\ntemplate <>\nclass __libcpp_numeric_limits<float, true>\n{\nprotected:\n    typedef float type;\n\n    static _LIBCPP_CONSTEXPR const bool is_specialized = true;\n\n    static _LIBCPP_CONSTEXPR const bool is_signed = true;\n    static _LIBCPP_CONSTEXPR const int  digits = __FLT_MANT_DIG__;\n    static _LIBCPP_CONSTEXPR const int  digits10 = __FLT_DIG__;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = 2+(digits * 30103l)/100000l;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __FLT_MIN__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __FLT_MAX__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return -max();}\n\n    static _LIBCPP_CONSTEXPR const bool is_integer = false;\n    static _LIBCPP_CONSTEXPR const bool is_exact = false;\n    static _LIBCPP_CONSTEXPR const int  radix = __FLT_RADIX__;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __FLT_EPSILON__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return 0.5F;}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = __FLT_MIN_EXP__;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = __FLT_MIN_10_EXP__;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = __FLT_MAX_EXP__;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = __FLT_MAX_10_EXP__;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = true;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = true;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = true;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_present;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __builtin_huge_valf();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __builtin_nanf(\"\");}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansf(\"\");}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __FLT_DENORM_MIN__;}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = true;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = true;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = false;\n\n    static _LIBCPP_CONSTEXPR const bool traps = false;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = false;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest;\n};\n\ntemplate <>\nclass __libcpp_numeric_limits<double, true>\n{\nprotected:\n    typedef double type;\n\n    static _LIBCPP_CONSTEXPR const bool is_specialized = true;\n\n    static _LIBCPP_CONSTEXPR const bool is_signed = true;\n    static _LIBCPP_CONSTEXPR const int  digits = __DBL_MANT_DIG__;\n    static _LIBCPP_CONSTEXPR const int  digits10 = __DBL_DIG__;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = 2+(digits * 30103l)/100000l;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __DBL_MIN__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __DBL_MAX__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return -max();}\n\n    static _LIBCPP_CONSTEXPR const bool is_integer = false;\n    static _LIBCPP_CONSTEXPR const bool is_exact = false;\n    static _LIBCPP_CONSTEXPR const int  radix = __FLT_RADIX__;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __DBL_EPSILON__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return 0.5;}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = __DBL_MIN_EXP__;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = __DBL_MIN_10_EXP__;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = __DBL_MAX_EXP__;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = __DBL_MAX_10_EXP__;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = true;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = true;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = true;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_present;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __builtin_huge_val();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __builtin_nan(\"\");}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nans(\"\");}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __DBL_DENORM_MIN__;}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = true;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = true;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = false;\n\n    static _LIBCPP_CONSTEXPR const bool traps = false;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = false;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest;\n};\n\ntemplate <>\nclass __libcpp_numeric_limits<long double, true>\n{\nprotected:\n    typedef long double type;\n\n    static _LIBCPP_CONSTEXPR const bool is_specialized = true;\n\n    static _LIBCPP_CONSTEXPR const bool is_signed = true;\n    static _LIBCPP_CONSTEXPR const int  digits = __LDBL_MANT_DIG__;\n    static _LIBCPP_CONSTEXPR const int  digits10 = __LDBL_DIG__;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = 2+(digits * 30103l)/100000l;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __LDBL_MIN__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __LDBL_MAX__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return -max();}\n\n    static _LIBCPP_CONSTEXPR const bool is_integer = false;\n    static _LIBCPP_CONSTEXPR const bool is_exact = false;\n    static _LIBCPP_CONSTEXPR const int  radix = __FLT_RADIX__;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __LDBL_EPSILON__;}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return 0.5;}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = __LDBL_MIN_EXP__;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = __LDBL_MIN_10_EXP__;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = __LDBL_MAX_EXP__;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = __LDBL_MAX_10_EXP__;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = true;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = true;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = true;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = denorm_present;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = false;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __builtin_huge_vall();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __builtin_nanl(\"\");}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl(\"\");}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}\n\n#if (defined(__ppc__) || defined(__ppc64__))\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = false;\n#else\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = true;\n#endif\n    static _LIBCPP_CONSTEXPR const bool is_bounded = true;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = false;\n\n    static _LIBCPP_CONSTEXPR const bool traps = false;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = false;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = round_to_nearest;\n};\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS numeric_limits\n    : private __libcpp_numeric_limits<typename remove_cv<_Tp>::type>\n{\n    typedef __libcpp_numeric_limits<typename remove_cv<_Tp>::type> __base;\n    typedef typename __base::type type;\npublic:\n    static _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __base::min();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __base::max();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return __base::lowest();}\n\n    static _LIBCPP_CONSTEXPR const int  digits = __base::digits;\n    static _LIBCPP_CONSTEXPR const int  digits10 = __base::digits10;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = __base::max_digits10;\n    static _LIBCPP_CONSTEXPR const bool is_signed = __base::is_signed;\n    static _LIBCPP_CONSTEXPR const bool is_integer = __base::is_integer;\n    static _LIBCPP_CONSTEXPR const bool is_exact = __base::is_exact;\n    static _LIBCPP_CONSTEXPR const int  radix = __base::radix;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __base::epsilon();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return __base::round_error();}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = __base::min_exponent;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = __base::min_exponent10;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = __base::max_exponent;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = __base::max_exponent10;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = __base::has_infinity;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = __base::has_quiet_NaN;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = __base::has_signaling_NaN;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __base::infinity();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __base::quiet_NaN();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __base::signaling_NaN();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __base::denorm_min();}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = __base::is_iec559;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = __base::is_modulo;\n\n    static _LIBCPP_CONSTEXPR const bool traps = __base::traps;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = __base::tinyness_before;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;\n};\n\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_specialized;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::digits;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::digits10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_digits10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_signed;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_integer;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_exact;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::radix;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::min_exponent;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::min_exponent10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_exponent;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<_Tp>::max_exponent10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_infinity;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_quiet_NaN;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_signaling_NaN;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<_Tp>::has_denorm;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::has_denorm_loss;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_iec559;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_bounded;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::is_modulo;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::traps;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<_Tp>::tinyness_before;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const float_round_style numeric_limits<_Tp>::round_style;\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS numeric_limits<const _Tp>\n    : private numeric_limits<_Tp>\n{\n    typedef numeric_limits<_Tp> __base;\n    typedef _Tp type;\npublic:\n    static _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __base::min();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __base::max();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return __base::lowest();}\n\n    static _LIBCPP_CONSTEXPR const int  digits = __base::digits;\n    static _LIBCPP_CONSTEXPR const int  digits10 = __base::digits10;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = __base::max_digits10;\n    static _LIBCPP_CONSTEXPR const bool is_signed = __base::is_signed;\n    static _LIBCPP_CONSTEXPR const bool is_integer = __base::is_integer;\n    static _LIBCPP_CONSTEXPR const bool is_exact = __base::is_exact;\n    static _LIBCPP_CONSTEXPR const int  radix = __base::radix;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __base::epsilon();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return __base::round_error();}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = __base::min_exponent;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = __base::min_exponent10;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = __base::max_exponent;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = __base::max_exponent10;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = __base::has_infinity;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = __base::has_quiet_NaN;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = __base::has_signaling_NaN;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __base::infinity();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __base::quiet_NaN();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __base::signaling_NaN();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __base::denorm_min();}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = __base::is_iec559;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = __base::is_modulo;\n\n    static _LIBCPP_CONSTEXPR const bool traps = __base::traps;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = __base::tinyness_before;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;\n};\n\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_specialized;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::digits;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::digits10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_digits10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_signed;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_integer;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_exact;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::radix;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::min_exponent;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::min_exponent10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_exponent;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const _Tp>::max_exponent10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_infinity;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_quiet_NaN;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_signaling_NaN;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<const _Tp>::has_denorm;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::has_denorm_loss;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_iec559;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_bounded;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::is_modulo;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::traps;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const _Tp>::tinyness_before;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const float_round_style numeric_limits<const _Tp>::round_style;\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS numeric_limits<volatile _Tp>\n    : private numeric_limits<_Tp>\n{\n    typedef numeric_limits<_Tp> __base;\n    typedef _Tp type;\npublic:\n    static _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __base::min();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __base::max();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return __base::lowest();}\n\n    static _LIBCPP_CONSTEXPR const int  digits = __base::digits;\n    static _LIBCPP_CONSTEXPR const int  digits10 = __base::digits10;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = __base::max_digits10;\n    static _LIBCPP_CONSTEXPR const bool is_signed = __base::is_signed;\n    static _LIBCPP_CONSTEXPR const bool is_integer = __base::is_integer;\n    static _LIBCPP_CONSTEXPR const bool is_exact = __base::is_exact;\n    static _LIBCPP_CONSTEXPR const int  radix = __base::radix;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __base::epsilon();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return __base::round_error();}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = __base::min_exponent;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = __base::min_exponent10;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = __base::max_exponent;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = __base::max_exponent10;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = __base::has_infinity;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = __base::has_quiet_NaN;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = __base::has_signaling_NaN;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __base::infinity();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __base::quiet_NaN();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __base::signaling_NaN();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __base::denorm_min();}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = __base::is_iec559;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = __base::is_modulo;\n\n    static _LIBCPP_CONSTEXPR const bool traps = __base::traps;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = __base::tinyness_before;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;\n};\n\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_specialized;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::digits;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::digits10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_digits10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_signed;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_integer;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_exact;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::radix;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::min_exponent;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::min_exponent10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_exponent;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<volatile _Tp>::max_exponent10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_infinity;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_quiet_NaN;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_signaling_NaN;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<volatile _Tp>::has_denorm;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::has_denorm_loss;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_iec559;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_bounded;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::is_modulo;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::traps;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<volatile _Tp>::tinyness_before;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const float_round_style numeric_limits<volatile _Tp>::round_style;\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS numeric_limits<const volatile _Tp>\n    : private numeric_limits<_Tp>\n{\n    typedef numeric_limits<_Tp> __base;\n    typedef _Tp type;\npublic:\n    static _LIBCPP_CONSTEXPR const bool is_specialized = __base::is_specialized;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type min() _NOEXCEPT {return __base::min();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type max() _NOEXCEPT {return __base::max();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type lowest() _NOEXCEPT {return __base::lowest();}\n\n    static _LIBCPP_CONSTEXPR const int  digits = __base::digits;\n    static _LIBCPP_CONSTEXPR const int  digits10 = __base::digits10;\n    static _LIBCPP_CONSTEXPR const int  max_digits10 = __base::max_digits10;\n    static _LIBCPP_CONSTEXPR const bool is_signed = __base::is_signed;\n    static _LIBCPP_CONSTEXPR const bool is_integer = __base::is_integer;\n    static _LIBCPP_CONSTEXPR const bool is_exact = __base::is_exact;\n    static _LIBCPP_CONSTEXPR const int  radix = __base::radix;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type epsilon() _NOEXCEPT {return __base::epsilon();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type round_error() _NOEXCEPT {return __base::round_error();}\n\n    static _LIBCPP_CONSTEXPR const int  min_exponent = __base::min_exponent;\n    static _LIBCPP_CONSTEXPR const int  min_exponent10 = __base::min_exponent10;\n    static _LIBCPP_CONSTEXPR const int  max_exponent = __base::max_exponent;\n    static _LIBCPP_CONSTEXPR const int  max_exponent10 = __base::max_exponent10;\n\n    static _LIBCPP_CONSTEXPR const bool has_infinity = __base::has_infinity;\n    static _LIBCPP_CONSTEXPR const bool has_quiet_NaN = __base::has_quiet_NaN;\n    static _LIBCPP_CONSTEXPR const bool has_signaling_NaN = __base::has_signaling_NaN;\n    static _LIBCPP_CONSTEXPR const float_denorm_style has_denorm = __base::has_denorm;\n    static _LIBCPP_CONSTEXPR const bool has_denorm_loss = __base::has_denorm_loss;\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type infinity() _NOEXCEPT {return __base::infinity();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type quiet_NaN() _NOEXCEPT {return __base::quiet_NaN();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __base::signaling_NaN();}\n    _LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __base::denorm_min();}\n\n    static _LIBCPP_CONSTEXPR const bool is_iec559 = __base::is_iec559;\n    static _LIBCPP_CONSTEXPR const bool is_bounded = __base::is_bounded;\n    static _LIBCPP_CONSTEXPR const bool is_modulo = __base::is_modulo;\n\n    static _LIBCPP_CONSTEXPR const bool traps = __base::traps;\n    static _LIBCPP_CONSTEXPR const bool tinyness_before = __base::tinyness_before;\n    static _LIBCPP_CONSTEXPR const float_round_style round_style = __base::round_style;\n};\n\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_specialized;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::digits;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::digits10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::max_digits10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_signed;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_integer;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_exact;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::radix;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::min_exponent;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::min_exponent10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::max_exponent;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const int numeric_limits<const volatile _Tp>::max_exponent10;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_infinity;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_quiet_NaN;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_signaling_NaN;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const float_denorm_style numeric_limits<const volatile _Tp>::has_denorm;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::has_denorm_loss;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_iec559;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_bounded;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::is_modulo;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::traps;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const bool numeric_limits<const volatile _Tp>::tinyness_before;\ntemplate <class _Tp>\n    _LIBCPP_CONSTEXPR const float_round_style numeric_limits<const volatile _Tp>::round_style;\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_LIMITS\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/limits.h",
    "content": "// -*- C++ -*-\n//===--------------------------- limits.h ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_LIMITS_H\n#define _LIBCPP_LIMITS_H\n\n/*\n    limits.h synopsis\n\nMacros:\n\n    CHAR_BIT\n    SCHAR_MIN\n    SCHAR_MAX\n    UCHAR_MAX\n    CHAR_MIN\n    CHAR_MAX\n    MB_LEN_MAX\n    SHRT_MIN\n    SHRT_MAX\n    USHRT_MAX\n    INT_MIN\n    INT_MAX\n    UINT_MAX\n    LONG_MIN\n    LONG_MAX\n    ULONG_MAX\n    LLONG_MIN   // C99\n    LLONG_MAX   // C99\n    ULLONG_MAX  // C99\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifndef __GNUC__\n#include_next <limits.h>\n#else\n// GCC header limits.h recursively includes itself through another header called\n// syslimits.h for some reason. This setup breaks down if we directly\n// #include_next GCC's limits.h (reasons not entirely clear to me). Therefore,\n// we manually re-create the necessary include sequence below:\n\n// Get the system limits.h defines (force recurse into the next level)\n#define _GCC_LIMITS_H_\n#define _GCC_NEXT_LIMITS_H\n#include_next <limits.h>\n\n// Get the ISO C defines\n#undef _GCC_LIMITS_H_\n#include_next <limits.h>\n#endif // __GNUC__\n\n#endif  // _LIBCPP_LIMITS_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/list",
    "content": "// -*- C++ -*-\n//===---------------------------- list ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_LIST\n#define _LIBCPP_LIST\n\n/*\n    list synopsis\n\nnamespace std\n{\n\ntemplate <class T, class Alloc = allocator<T> >\nclass list\n{\npublic:\n\n    // types:\n    typedef T value_type;\n    typedef Alloc allocator_type;\n    typedef typename allocator_type::reference reference;\n    typedef typename allocator_type::const_reference const_reference;\n    typedef typename allocator_type::pointer pointer;\n    typedef typename allocator_type::const_pointer const_pointer;\n    typedef implementation-defined iterator;\n    typedef implementation-defined const_iterator;\n    typedef implementation-defined size_type;\n    typedef implementation-defined difference_type;\n    typedef reverse_iterator<iterator> reverse_iterator;\n    typedef reverse_iterator<const_iterator> const_reverse_iterator;\n\n    list()\n        noexcept(is_nothrow_default_constructible<allocator_type>::value);\n    explicit list(const allocator_type& a);\n    explicit list(size_type n);\n    explicit list(size_type n, const allocator_type& a); // C++14\n    list(size_type n, const value_type& value);\n    list(size_type n, const value_type& value, const allocator_type& a);\n    template <class Iter>\n        list(Iter first, Iter last);\n    template <class Iter>\n        list(Iter first, Iter last, const allocator_type& a);\n    list(const list& x);\n    list(const list&, const allocator_type& a);\n    list(list&& x)\n        noexcept(is_nothrow_move_constructible<allocator_type>::value);\n    list(list&&, const allocator_type& a);\n    list(initializer_list<value_type>);\n    list(initializer_list<value_type>, const allocator_type& a);\n\n    ~list();\n\n    list& operator=(const list& x);\n    list& operator=(list&& x)\n        noexcept(\n             allocator_type::propagate_on_container_move_assignment::value &&\n             is_nothrow_move_assignable<allocator_type>::value);\n    list& operator=(initializer_list<value_type>);\n    template <class Iter>\n        void assign(Iter first, Iter last);\n    void assign(size_type n, const value_type& t);\n    void assign(initializer_list<value_type>);\n\n    allocator_type get_allocator() const noexcept;\n\n    iterator begin() noexcept;\n    const_iterator begin() const noexcept;\n    iterator end() noexcept;\n    const_iterator end() const noexcept;\n    reverse_iterator rbegin() noexcept;\n    const_reverse_iterator rbegin() const noexcept;\n    reverse_iterator rend() noexcept;\n    const_reverse_iterator rend() const noexcept;\n    const_iterator cbegin() const noexcept;\n    const_iterator cend() const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend() const noexcept;\n\n    reference front();\n    const_reference front() const;\n    reference back();\n    const_reference back() const;\n\n    bool empty() const noexcept;\n    size_type size() const noexcept;\n    size_type max_size() const noexcept;\n\n    template <class... Args>\n        reference emplace_front(Args&&... args); // reference in C++17\n    void pop_front();\n    template <class... Args>\n        reference emplace_back(Args&&... args);  // reference in C++17\n    void pop_back();\n    void push_front(const value_type& x);\n    void push_front(value_type&& x);\n    void push_back(const value_type& x);\n    void push_back(value_type&& x);\n    template <class... Args>\n        iterator emplace(const_iterator position, Args&&... args);\n    iterator insert(const_iterator position, const value_type& x);\n    iterator insert(const_iterator position, value_type&& x);\n    iterator insert(const_iterator position, size_type n, const value_type& x);\n    template <class Iter>\n        iterator insert(const_iterator position, Iter first, Iter last);\n    iterator insert(const_iterator position, initializer_list<value_type> il);\n\n    iterator erase(const_iterator position);\n    iterator erase(const_iterator position, const_iterator last);\n\n    void resize(size_type sz);\n    void resize(size_type sz, const value_type& c);\n\n    void swap(list&)\n        noexcept(allocator_traits<allocator_type>::is_always_equal::value);  // C++17\n    void clear() noexcept;\n\n    void splice(const_iterator position, list& x);\n    void splice(const_iterator position, list&& x);\n    void splice(const_iterator position, list& x, const_iterator i);\n    void splice(const_iterator position, list&& x, const_iterator i);\n    void splice(const_iterator position, list& x, const_iterator first,\n                                                  const_iterator last);\n    void splice(const_iterator position, list&& x, const_iterator first,\n                                                  const_iterator last);\n\n    void remove(const value_type& value);\n    template <class Pred> void remove_if(Pred pred);\n    void unique();\n    template <class BinaryPredicate>\n        void unique(BinaryPredicate binary_pred);\n    void merge(list& x);\n    void merge(list&& x);\n    template <class Compare>\n        void merge(list& x, Compare comp);\n    template <class Compare>\n        void merge(list&& x, Compare comp);\n    void sort();\n    template <class Compare>\n        void sort(Compare comp);\n    void reverse() noexcept;\n};\n\ntemplate <class T, class Alloc>\n    bool operator==(const list<T,Alloc>& x, const list<T,Alloc>& y);\ntemplate <class T, class Alloc>\n    bool operator< (const list<T,Alloc>& x, const list<T,Alloc>& y);\ntemplate <class T, class Alloc>\n    bool operator!=(const list<T,Alloc>& x, const list<T,Alloc>& y);\ntemplate <class T, class Alloc>\n    bool operator> (const list<T,Alloc>& x, const list<T,Alloc>& y);\ntemplate <class T, class Alloc>\n    bool operator>=(const list<T,Alloc>& x, const list<T,Alloc>& y);\ntemplate <class T, class Alloc>\n    bool operator<=(const list<T,Alloc>& x, const list<T,Alloc>& y);\n\ntemplate <class T, class Alloc>\n    void swap(list<T,Alloc>& x, list<T,Alloc>& y)\n         noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n\n#include <memory>\n#include <limits>\n#include <initializer_list>\n#include <iterator>\n#include <algorithm>\n#include <type_traits>\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp, class _VoidPtr> struct __list_node;\ntemplate <class _Tp, class _VoidPtr> struct __list_node_base;\n\ntemplate <class _Tp, class _VoidPtr>\nstruct __list_node_pointer_traits {\n  typedef typename __rebind_pointer<_VoidPtr, __list_node<_Tp, _VoidPtr> >::type\n        __node_pointer;\n  typedef typename __rebind_pointer<_VoidPtr, __list_node_base<_Tp, _VoidPtr> >::type\n        __base_pointer;\n\n#if defined(_LIBCPP_ABI_LIST_REMOVE_NODE_POINTER_UB)\n  typedef __base_pointer __link_pointer;\n#else\n  typedef typename conditional<\n          is_pointer<_VoidPtr>::value,\n          __base_pointer,\n          __node_pointer\n  >::type __link_pointer;\n#endif\n\n  typedef typename conditional<\n          is_same<__link_pointer, __node_pointer>::value,\n          __base_pointer,\n          __node_pointer\n  >::type __non_link_pointer;\n\n  static _LIBCPP_INLINE_VISIBILITY\n  __link_pointer __unsafe_link_pointer_cast(__link_pointer __p) {\n      return __p;\n  }\n\n  static _LIBCPP_INLINE_VISIBILITY\n  __link_pointer __unsafe_link_pointer_cast(__non_link_pointer __p) {\n      return static_cast<__link_pointer>(static_cast<_VoidPtr>(__p));\n  }\n\n};\n\ntemplate <class _Tp, class _VoidPtr>\nstruct __list_node_base\n{\n    typedef __list_node_pointer_traits<_Tp, _VoidPtr> _NodeTraits;\n    typedef typename _NodeTraits::__node_pointer __node_pointer;\n    typedef typename _NodeTraits::__base_pointer __base_pointer;\n    typedef typename _NodeTraits::__link_pointer __link_pointer;\n\n    __link_pointer __prev_;\n    __link_pointer __next_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_node_base() : __prev_(_NodeTraits::__unsafe_link_pointer_cast(__self())),\n                         __next_(_NodeTraits::__unsafe_link_pointer_cast(__self())) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __base_pointer __self() {\n        return pointer_traits<__base_pointer>::pointer_to(*this);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __node_pointer __as_node() {\n        return static_cast<__node_pointer>(__self());\n    }\n};\n\ntemplate <class _Tp, class _VoidPtr>\nstruct __list_node\n    : public __list_node_base<_Tp, _VoidPtr>\n{\n    _Tp __value_;\n\n    typedef __list_node_base<_Tp, _VoidPtr> __base;\n    typedef typename __base::__link_pointer __link_pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __link_pointer __as_link() {\n        return static_cast<__link_pointer>(__base::__self());\n    }\n};\n\ntemplate <class _Tp, class _Alloc = allocator<_Tp> > class _LIBCPP_TEMPLATE_VIS list;\ntemplate <class _Tp, class _Alloc> class __list_imp;\ntemplate <class _Tp, class _VoidPtr> class _LIBCPP_TEMPLATE_VIS __list_const_iterator;\n\ntemplate <class _Tp, class _VoidPtr>\nclass _LIBCPP_TEMPLATE_VIS __list_iterator\n{\n    typedef __list_node_pointer_traits<_Tp, _VoidPtr> _NodeTraits;\n    typedef typename _NodeTraits::__link_pointer __link_pointer;\n\n    __link_pointer __ptr_;\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __list_iterator(__link_pointer __p, const void* __c) _NOEXCEPT\n        : __ptr_(__p)\n    {\n        __get_db()->__insert_ic(this, __c);\n    }\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __list_iterator(__link_pointer __p) _NOEXCEPT : __ptr_(__p) {}\n#endif\n\n\n\n    template<class, class> friend class list;\n    template<class, class> friend class __list_imp;\n    template<class, class> friend class __list_const_iterator;\npublic:\n    typedef bidirectional_iterator_tag       iterator_category;\n    typedef _Tp                              value_type;\n    typedef value_type&                      reference;\n    typedef typename __rebind_pointer<_VoidPtr, value_type>::type pointer;\n    typedef typename pointer_traits<pointer>::difference_type difference_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_iterator() _NOEXCEPT : __ptr_(nullptr)\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->__insert_i(this);\n#endif\n    }\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_iterator(const __list_iterator& __p)\n        : __ptr_(__p.__ptr_)\n    {\n        __get_db()->__iterator_copy(this, &__p);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~__list_iterator()\n    {\n        __get_db()->__erase_i(this);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_iterator& operator=(const __list_iterator& __p)\n    {\n        if (this != &__p)\n        {\n            __get_db()->__iterator_copy(this, &__p);\n            __ptr_ = __p.__ptr_;\n        }\n        return *this;\n    }\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to dereference a non-dereferenceable list::iterator\");\n#endif\n        return __ptr_->__as_node()->__value_;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to dereference a non-dereferenceable list::iterator\");\n#endif\n        return pointer_traits<pointer>::pointer_to(__ptr_->__as_node()->__value_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_iterator& operator++()\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to increment non-incrementable list::iterator\");\n#endif\n        __ptr_ = __ptr_->__next_;\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __list_iterator operator++(int) {__list_iterator __t(*this); ++(*this); return __t;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_iterator& operator--()\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__decrementable(this),\n                       \"Attempted to decrement non-decrementable list::iterator\");\n#endif\n        __ptr_ = __ptr_->__prev_;\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __list_iterator operator--(int) {__list_iterator __t(*this); --(*this); return __t;}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __list_iterator& __x, const __list_iterator& __y)\n    {\n        return __x.__ptr_ == __y.__ptr_;\n    }\n    friend _LIBCPP_INLINE_VISIBILITY\n     bool operator!=(const __list_iterator& __x, const __list_iterator& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _Tp, class _VoidPtr>\nclass _LIBCPP_TEMPLATE_VIS __list_const_iterator\n{\n    typedef __list_node_pointer_traits<_Tp, _VoidPtr> _NodeTraits;\n    typedef typename _NodeTraits::__link_pointer __link_pointer;\n\n    __link_pointer __ptr_;\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __list_const_iterator(__link_pointer __p, const void* __c) _NOEXCEPT\n        : __ptr_(__p)\n    {\n        __get_db()->__insert_ic(this, __c);\n    }\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __list_const_iterator(__link_pointer __p) _NOEXCEPT : __ptr_(__p) {}\n#endif\n\n    template<class, class> friend class list;\n    template<class, class> friend class __list_imp;\npublic:\n    typedef bidirectional_iterator_tag       iterator_category;\n    typedef _Tp                              value_type;\n    typedef const value_type&                reference;\n    typedef typename __rebind_pointer<_VoidPtr, const value_type>::type pointer;\n    typedef typename pointer_traits<pointer>::difference_type difference_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_const_iterator() _NOEXCEPT : __ptr_(nullptr)\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->__insert_i(this);\n#endif\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __list_const_iterator(const __list_iterator<_Tp, _VoidPtr>& __p) _NOEXCEPT\n        : __ptr_(__p.__ptr_)\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->__iterator_copy(this, &__p);\n#endif\n    }\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_const_iterator(const __list_const_iterator& __p)\n        : __ptr_(__p.__ptr_)\n    {\n        __get_db()->__iterator_copy(this, &__p);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~__list_const_iterator()\n    {\n        __get_db()->__erase_i(this);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_const_iterator& operator=(const __list_const_iterator& __p)\n    {\n        if (this != &__p)\n        {\n            __get_db()->__iterator_copy(this, &__p);\n            __ptr_ = __p.__ptr_;\n        }\n        return *this;\n    }\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to dereference a non-dereferenceable list::const_iterator\");\n#endif\n        return __ptr_->__as_node()->__value_;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to dereference a non-dereferenceable list::iterator\");\n#endif\n        return pointer_traits<pointer>::pointer_to(__ptr_->__as_node()->__value_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_const_iterator& operator++()\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(this),\n                       \"Attempted to increment non-incrementable list::const_iterator\");\n#endif\n        __ptr_ = __ptr_->__next_;\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __list_const_iterator operator++(int) {__list_const_iterator __t(*this); ++(*this); return __t;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_const_iterator& operator--()\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__decrementable(this),\n                       \"Attempted to decrement non-decrementable list::const_iterator\");\n#endif\n        __ptr_ = __ptr_->__prev_;\n        return *this;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    __list_const_iterator operator--(int) {__list_const_iterator __t(*this); --(*this); return __t;}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __list_const_iterator& __x, const __list_const_iterator& __y)\n    {\n        return __x.__ptr_ == __y.__ptr_;\n    }\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __list_const_iterator& __x, const __list_const_iterator& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _Tp, class _Alloc>\nclass __list_imp\n{\n    __list_imp(const __list_imp&);\n    __list_imp& operator=(const __list_imp&);\nprotected:\n    typedef _Tp                                                     value_type;\n    typedef _Alloc                                                  allocator_type;\n    typedef allocator_traits<allocator_type>                        __alloc_traits;\n    typedef typename __alloc_traits::size_type                      size_type;\n    typedef typename __alloc_traits::void_pointer                   __void_pointer;\n    typedef __list_iterator<value_type, __void_pointer>             iterator;\n    typedef __list_const_iterator<value_type, __void_pointer>       const_iterator;\n    typedef __list_node_base<value_type, __void_pointer>            __node_base;\n    typedef __list_node<value_type, __void_pointer>                 __node;\n    typedef typename __rebind_alloc_helper<__alloc_traits, __node>::type __node_allocator;\n    typedef allocator_traits<__node_allocator>                       __node_alloc_traits;\n    typedef typename __node_alloc_traits::pointer                    __node_pointer;\n    typedef typename __node_alloc_traits::pointer                    __node_const_pointer;\n    typedef __list_node_pointer_traits<value_type, __void_pointer> __node_pointer_traits;\n    typedef typename __node_pointer_traits::__link_pointer __link_pointer;\n    typedef __link_pointer __link_const_pointer;\n    typedef typename __alloc_traits::pointer                         pointer;\n    typedef typename __alloc_traits::const_pointer                   const_pointer;\n    typedef typename __alloc_traits::difference_type                 difference_type;\n\n    typedef typename __rebind_alloc_helper<__alloc_traits, __node_base>::type __node_base_allocator;\n    typedef typename allocator_traits<__node_base_allocator>::pointer __node_base_pointer;\n\n    __node_base __end_;\n    __compressed_pair<size_type, __node_allocator> __size_alloc_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __link_pointer __end_as_link() const _NOEXCEPT {\n        return __node_pointer_traits::__unsafe_link_pointer_cast(\n                const_cast<__node_base&>(__end_).__self());\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n          size_type& __sz() _NOEXCEPT {return __size_alloc_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n    const size_type& __sz() const _NOEXCEPT\n        {return __size_alloc_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n          __node_allocator& __node_alloc() _NOEXCEPT\n          {return __size_alloc_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const __node_allocator& __node_alloc() const _NOEXCEPT\n        {return __size_alloc_.second();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type __node_alloc_max_size() const _NOEXCEPT {\n        return __node_alloc_traits::max_size(__node_alloc());\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    static void __unlink_nodes(__link_pointer __f, __link_pointer __l) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __list_imp()\n        _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    __list_imp(const allocator_type& __a);\n    ~__list_imp();\n    void clear() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT {return __sz() == 0;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator begin() _NOEXCEPT\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return iterator(__end_.__next_, this);\n#else\n        return iterator(__end_.__next_);\n#endif\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const  _NOEXCEPT\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return const_iterator(__end_.__next_, this);\n#else\n        return const_iterator(__end_.__next_);\n#endif\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    iterator end() _NOEXCEPT\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return iterator(__end_as_link(), this);\n#else\n        return iterator(__end_as_link());\n#endif\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const _NOEXCEPT\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        return const_iterator(__end_as_link(), this);\n#else\n        return const_iterator(__end_as_link());\n#endif\n    }\n\n    void swap(__list_imp& __c)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT_DEBUG;\n#else\n        _NOEXCEPT_DEBUG_(!__alloc_traits::propagate_on_container_swap::value ||\n                    __is_nothrow_swappable<allocator_type>::value);\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __list_imp& __c)\n        {__copy_assign_alloc(__c, integral_constant<bool,\n                      __node_alloc_traits::propagate_on_container_copy_assignment::value>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__list_imp& __c)\n        _NOEXCEPT_(\n            !__node_alloc_traits::propagate_on_container_move_assignment::value ||\n            is_nothrow_move_assignable<__node_allocator>::value)\n        {__move_assign_alloc(__c, integral_constant<bool,\n                      __node_alloc_traits::propagate_on_container_move_assignment::value>());}\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __list_imp& __c, true_type)\n        {\n            if (__node_alloc() != __c.__node_alloc())\n                clear();\n            __node_alloc() = __c.__node_alloc();\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __list_imp&, false_type)\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__list_imp& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value)\n        {\n            __node_alloc() = _VSTD::move(__c.__node_alloc());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__list_imp&, false_type)\n        _NOEXCEPT\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __invalidate_all_iterators() {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n      __get_db()->__invalidate_all(this);\n#endif\n    }\n};\n\n// Unlink nodes [__f, __l]\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\n__list_imp<_Tp, _Alloc>::__unlink_nodes(__link_pointer __f, __link_pointer __l)\n    _NOEXCEPT\n{\n    __f->__prev_->__next_ = __l->__next_;\n    __l->__next_->__prev_ = __f->__prev_;\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\n__list_imp<_Tp, _Alloc>::__list_imp()\n        _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)\n    : __size_alloc_(0)\n{\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\n__list_imp<_Tp, _Alloc>::__list_imp(const allocator_type& __a)\n    : __size_alloc_(0, __node_allocator(__a))\n{\n}\n\ntemplate <class _Tp, class _Alloc>\n__list_imp<_Tp, _Alloc>::~__list_imp()\n{\n    clear();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__erase_c(this);\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\n__list_imp<_Tp, _Alloc>::clear() _NOEXCEPT\n{\n    if (!empty())\n    {\n        __node_allocator& __na = __node_alloc();\n        __link_pointer __f = __end_.__next_;\n        __link_pointer __l = __end_as_link();\n        __unlink_nodes(__f, __l->__prev_);\n        __sz() = 0;\n        while (__f != __l)\n        {\n            __node_pointer __np = __f->__as_node();\n            __f = __f->__next_;\n            __node_alloc_traits::destroy(__na, _VSTD::addressof(__np->__value_));\n            __node_alloc_traits::deallocate(__na, __np, 1);\n        }\n        __invalidate_all_iterators();\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\n__list_imp<_Tp, _Alloc>::swap(__list_imp& __c)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT_DEBUG\n#else\n        _NOEXCEPT_DEBUG_(!__alloc_traits::propagate_on_container_swap::value ||\n                    __is_nothrow_swappable<allocator_type>::value)\n#endif\n{\n    _LIBCPP_ASSERT(__alloc_traits::propagate_on_container_swap::value ||\n                   this->__node_alloc() == __c.__node_alloc(),\n                   \"list::swap: Either propagate_on_container_swap must be true\"\n                   \" or the allocators must compare equal\");\n    using _VSTD::swap;\n    __swap_allocator(__node_alloc(), __c.__node_alloc());\n    swap(__sz(), __c.__sz());\n    swap(__end_, __c.__end_);\n    if (__sz() == 0)\n        __end_.__next_ = __end_.__prev_ = __end_as_link();\n    else\n        __end_.__prev_->__next_ = __end_.__next_->__prev_ = __end_as_link();\n    if (__c.__sz() == 0)\n        __c.__end_.__next_ = __c.__end_.__prev_ = __c.__end_as_link();\n    else\n        __c.__end_.__prev_->__next_ = __c.__end_.__next_->__prev_ = __c.__end_as_link();\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __libcpp_db* __db = __get_db();\n    __c_node* __cn1 = __db->__find_c_and_lock(this);\n    __c_node* __cn2 = __db->__find_c(&__c);\n    std::swap(__cn1->beg_, __cn2->beg_);\n    std::swap(__cn1->end_, __cn2->end_);\n    std::swap(__cn1->cap_, __cn2->cap_);\n    for (__i_node** __p = __cn1->end_; __p != __cn1->beg_;)\n    {\n        --__p;\n        const_iterator* __i = static_cast<const_iterator*>((*__p)->__i_);\n        if (__i->__ptr_ == __c.__end_as_link())\n        {\n            __cn2->__add(*__p);\n            if (--__cn1->end_ != __p)\n                memmove(__p, __p+1, (__cn1->end_ - __p)*sizeof(__i_node*));\n        }\n        else\n            (*__p)->__c_ = __cn1;\n    }\n    for (__i_node** __p = __cn2->end_; __p != __cn2->beg_;)\n    {\n        --__p;\n        const_iterator* __i = static_cast<const_iterator*>((*__p)->__i_);\n        if (__i->__ptr_ == __end_as_link())\n        {\n            __cn1->__add(*__p);\n            if (--__cn2->end_ != __p)\n                memmove(__p, __p+1, (__cn2->end_ - __p)*sizeof(__i_node*));\n        }\n        else\n            (*__p)->__c_ = __cn2;\n    }\n    __db->unlock();\n#endif\n}\n\ntemplate <class _Tp, class _Alloc /*= allocator<_Tp>*/>\nclass _LIBCPP_TEMPLATE_VIS list\n    : private __list_imp<_Tp, _Alloc>\n{\n    typedef __list_imp<_Tp, _Alloc> base;\n    typedef typename base::__node              __node;\n    typedef typename base::__node_allocator    __node_allocator;\n    typedef typename base::__node_pointer      __node_pointer;\n    typedef typename base::__node_alloc_traits __node_alloc_traits;\n    typedef typename base::__node_base         __node_base;\n    typedef typename base::__node_base_pointer __node_base_pointer;\n    typedef typename base::__link_pointer __link_pointer;\n\npublic:\n    typedef _Tp                                      value_type;\n    typedef _Alloc                                   allocator_type;\n    static_assert((is_same<value_type, typename allocator_type::value_type>::value),\n                  \"Invalid allocator::value_type\");\n    typedef value_type&                              reference;\n    typedef const value_type&                        const_reference;\n    typedef typename base::pointer                   pointer;\n    typedef typename base::const_pointer             const_pointer;\n    typedef typename base::size_type                 size_type;\n    typedef typename base::difference_type           difference_type;\n    typedef typename base::iterator                  iterator;\n    typedef typename base::const_iterator            const_iterator;\n    typedef _VSTD::reverse_iterator<iterator>         reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator>   const_reverse_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    list()\n        _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->__insert_c(this);\n#endif\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    explicit list(const allocator_type& __a) : base(__a)\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->__insert_c(this);\n#endif\n    }\n    explicit list(size_type __n);\n#if _LIBCPP_STD_VER > 11\n    explicit list(size_type __n, const allocator_type& __a);\n#endif\n    list(size_type __n, const value_type& __x);\n    list(size_type __n, const value_type& __x, const allocator_type& __a);\n    template <class _InpIter>\n        list(_InpIter __f, _InpIter __l,\n             typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0);\n    template <class _InpIter>\n        list(_InpIter __f, _InpIter __l, const allocator_type& __a,\n             typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0);\n\n    list(const list& __c);\n    list(const list& __c, const allocator_type& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    list& operator=(const list& __c);\n#ifndef _LIBCPP_CXX03_LANG\n    list(initializer_list<value_type> __il);\n    list(initializer_list<value_type> __il, const allocator_type& __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    list(list&& __c)\n        _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    list(list&& __c, const allocator_type& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    list& operator=(list&& __c)\n        _NOEXCEPT_(\n            __node_alloc_traits::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<__node_allocator>::value);\n\n    _LIBCPP_INLINE_VISIBILITY\n    list& operator=(initializer_list<value_type> __il)\n        {assign(__il.begin(), __il.end()); return *this;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void assign(initializer_list<value_type> __il)\n        {assign(__il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    template <class _InpIter>\n        void assign(_InpIter __f, _InpIter __l,\n             typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0);\n    void assign(size_type __n, const value_type& __x);\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT     {return base::__sz();}\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT         {return base::empty();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT\n        {\n            return std::min<size_type>(\n                base::__node_alloc_max_size(),\n                numeric_limits<difference_type >::max());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n          iterator begin() _NOEXCEPT        {return base::begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const _NOEXCEPT {return base::begin();}\n    _LIBCPP_INLINE_VISIBILITY\n          iterator end() _NOEXCEPT          {return base::end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const _NOEXCEPT {return base::end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const _NOEXCEPT {return base::begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend()   const _NOEXCEPT {return base::end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rbegin() _NOEXCEPT\n            {return       reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin()  const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rend() _NOEXCEPT\n            {return       reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend()    const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend()   const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference front()\n    {\n        _LIBCPP_ASSERT(!empty(), \"list::front called on empty list\");\n        return base::__end_.__next_->__as_node()->__value_;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference front() const\n    {\n        _LIBCPP_ASSERT(!empty(), \"list::front called on empty list\");\n        return base::__end_.__next_->__as_node()->__value_;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    reference back()\n    {\n        _LIBCPP_ASSERT(!empty(), \"list::back called on empty list\");\n        return base::__end_.__prev_->__as_node()->__value_;\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference back() const\n    {\n        _LIBCPP_ASSERT(!empty(), \"list::back called on empty list\");\n        return base::__end_.__prev_->__as_node()->__value_;\n    }\n\n#ifndef _LIBCPP_CXX03_LANG\n    void push_front(value_type&& __x);\n    void push_back(value_type&& __x);\n\n    template <class... _Args>\n#if _LIBCPP_STD_VER > 14\n       reference emplace_front(_Args&&... __args);\n#else\n       void      emplace_front(_Args&&... __args);\n#endif\n    template <class... _Args>\n#if _LIBCPP_STD_VER > 14\n        reference emplace_back(_Args&&... __args);\n#else\n       void       emplace_back(_Args&&... __args);\n#endif\n    template <class... _Args>\n        iterator emplace(const_iterator __p, _Args&&... __args);\n\n    iterator insert(const_iterator __p, value_type&& __x);\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, initializer_list<value_type> __il)\n        {return insert(__p, __il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    void push_front(const value_type& __x);\n    void push_back(const value_type& __x);\n\n    iterator insert(const_iterator __p, const value_type& __x);\n    iterator insert(const_iterator __p, size_type __n, const value_type& __x);\n    template <class _InpIter>\n        iterator insert(const_iterator __p, _InpIter __f, _InpIter __l,\n             typename enable_if<__is_input_iterator<_InpIter>::value>::type* = 0);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(list& __c)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT_DEBUG\n#else\n        _NOEXCEPT_DEBUG_(!__node_alloc_traits::propagate_on_container_swap::value ||\n                   __is_nothrow_swappable<__node_allocator>::value)\n#endif\n        {base::swap(__c);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {base::clear();}\n\n    void pop_front();\n    void pop_back();\n\n    iterator erase(const_iterator __p);\n    iterator erase(const_iterator __f, const_iterator __l);\n\n    void resize(size_type __n);\n    void resize(size_type __n, const value_type& __x);\n\n    void splice(const_iterator __p, list& __c);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void splice(const_iterator __p, list&& __c) {splice(__p, __c);}\n    _LIBCPP_INLINE_VISIBILITY\n    void splice(const_iterator __p, list&& __c, const_iterator __i)\n        {splice(__p, __c, __i);}\n    _LIBCPP_INLINE_VISIBILITY\n    void splice(const_iterator __p, list&& __c, const_iterator __f, const_iterator __l)\n        {splice(__p, __c, __f, __l);}\n#endif\n    void splice(const_iterator __p, list& __c, const_iterator __i);\n    void splice(const_iterator __p, list& __c, const_iterator __f, const_iterator __l);\n\n    void remove(const value_type& __x);\n    template <class _Pred> void remove_if(_Pred __pred);\n    _LIBCPP_INLINE_VISIBILITY\n    void unique();\n    template <class _BinaryPred>\n        void unique(_BinaryPred __binary_pred);\n    _LIBCPP_INLINE_VISIBILITY\n    void merge(list& __c);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void merge(list&& __c) {merge(__c);}\n\n    template <class _Comp>\n    _LIBCPP_INLINE_VISIBILITY\n        void merge(list&& __c, _Comp __comp) {merge(__c, __comp);}\n#endif\n    template <class _Comp>\n        void merge(list& __c, _Comp __comp);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void sort();\n    template <class _Comp>\n        _LIBCPP_INLINE_VISIBILITY\n        void sort(_Comp __comp);\n\n    void reverse() _NOEXCEPT;\n\n    bool __invariants() const;\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    bool __dereferenceable(const const_iterator* __i) const;\n    bool __decrementable(const const_iterator* __i) const;\n    bool __addable(const const_iterator* __i, ptrdiff_t __n) const;\n    bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const;\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    static void __link_nodes  (__link_pointer __p, __link_pointer __f, __link_pointer __l);\n    _LIBCPP_INLINE_VISIBILITY\n    void __link_nodes_at_front(__link_pointer __f, __link_pointer __l);\n    _LIBCPP_INLINE_VISIBILITY\n    void __link_nodes_at_back (__link_pointer __f, __link_pointer __l);\n    iterator __iterator(size_type __n);\n    template <class _Comp>\n        static iterator __sort(iterator __f1, iterator __e2, size_type __n, _Comp& __comp);\n\n    void __move_assign(list& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value);\n    void __move_assign(list& __c, false_type);\n};\n\n// Link in nodes [__f, __l] just prior to __p\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\nlist<_Tp, _Alloc>::__link_nodes(__link_pointer __p, __link_pointer __f, __link_pointer __l)\n{\n    __p->__prev_->__next_ = __f;\n    __f->__prev_ = __p->__prev_;\n    __p->__prev_ = __l;\n    __l->__next_ = __p;\n}\n\n// Link in nodes [__f, __l] at the front of the list\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\nlist<_Tp, _Alloc>::__link_nodes_at_front(__link_pointer __f, __link_pointer __l)\n{\n    __f->__prev_ = base::__end_as_link();\n    __l->__next_ = base::__end_.__next_;\n    __l->__next_->__prev_ = __l;\n    base::__end_.__next_ = __f;\n}\n\n// Link in nodes [__f, __l] at the front of the list\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\nlist<_Tp, _Alloc>::__link_nodes_at_back(__link_pointer __f, __link_pointer __l)\n{\n    __l->__next_ = base::__end_as_link();\n    __f->__prev_ = base::__end_.__prev_;\n    __f->__prev_->__next_ = __f;\n    base::__end_.__prev_ = __l;\n}\n\n\ntemplate <class _Tp, class _Alloc>\ninline\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::__iterator(size_type __n)\n{\n    return __n <= base::__sz() / 2 ? _VSTD::next(begin(), __n)\n                                   : _VSTD::prev(end(), base::__sz() - __n);\n}\n\ntemplate <class _Tp, class _Alloc>\nlist<_Tp, _Alloc>::list(size_type __n)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (; __n > 0; --__n)\n#ifndef _LIBCPP_CXX03_LANG\n        emplace_back();\n#else\n        push_back(value_type());\n#endif\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp, class _Alloc>\nlist<_Tp, _Alloc>::list(size_type __n, const allocator_type& __a) : base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (; __n > 0; --__n)\n        emplace_back();\n}\n#endif\n\ntemplate <class _Tp, class _Alloc>\nlist<_Tp, _Alloc>::list(size_type __n, const value_type& __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (; __n > 0; --__n)\n        push_back(__x);\n}\n\ntemplate <class _Tp, class _Alloc>\nlist<_Tp, _Alloc>::list(size_type __n, const value_type& __x, const allocator_type& __a)\n    : base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (; __n > 0; --__n)\n        push_back(__x);\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _InpIter>\nlist<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l,\n                        typename enable_if<__is_input_iterator<_InpIter>::value>::type*)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (; __f != __l; ++__f)\n        push_back(*__f);\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _InpIter>\nlist<_Tp, _Alloc>::list(_InpIter __f, _InpIter __l, const allocator_type& __a,\n                        typename enable_if<__is_input_iterator<_InpIter>::value>::type*)\n    : base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (; __f != __l; ++__f)\n        push_back(*__f);\n}\n\ntemplate <class _Tp, class _Alloc>\nlist<_Tp, _Alloc>::list(const list& __c)\n    : base(allocator_type(\n           __node_alloc_traits::select_on_container_copy_construction(\n                __c.__node_alloc())))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (const_iterator __i = __c.begin(), __e = __c.end(); __i != __e; ++__i)\n        push_back(*__i);\n}\n\ntemplate <class _Tp, class _Alloc>\nlist<_Tp, _Alloc>::list(const list& __c, const allocator_type& __a)\n    : base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (const_iterator __i = __c.begin(), __e = __c.end(); __i != __e; ++__i)\n        push_back(*__i);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\nlist<_Tp, _Alloc>::list(initializer_list<value_type> __il, const allocator_type& __a)\n    : base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (typename initializer_list<value_type>::const_iterator __i = __il.begin(),\n            __e = __il.end(); __i != __e; ++__i)\n        push_back(*__i);\n}\n\ntemplate <class _Tp, class _Alloc>\nlist<_Tp, _Alloc>::list(initializer_list<value_type> __il)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (typename initializer_list<value_type>::const_iterator __i = __il.begin(),\n            __e = __il.end(); __i != __e; ++__i)\n        push_back(*__i);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nlist<_Tp, _Alloc>::list(list&& __c)\n    _NOEXCEPT_(is_nothrow_move_constructible<__node_allocator>::value)\n    : base(allocator_type(_VSTD::move(__c.__node_alloc())))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    splice(end(), __c);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nlist<_Tp, _Alloc>::list(list&& __c, const allocator_type& __a)\n    : base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__a == __c.get_allocator())\n        splice(end(), __c);\n    else\n    {\n        typedef move_iterator<iterator> _Ip;\n        assign(_Ip(__c.begin()), _Ip(__c.end()));\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nlist<_Tp, _Alloc>&\nlist<_Tp, _Alloc>::operator=(list&& __c)\n        _NOEXCEPT_(\n            __node_alloc_traits::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<__node_allocator>::value)\n{\n    __move_assign(__c, integral_constant<bool,\n          __node_alloc_traits::propagate_on_container_move_assignment::value>());\n    return *this;\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::__move_assign(list& __c, false_type)\n{\n    if (base::__node_alloc() != __c.__node_alloc())\n    {\n        typedef move_iterator<iterator> _Ip;\n        assign(_Ip(__c.begin()), _Ip(__c.end()));\n    }\n    else\n        __move_assign(__c, true_type());\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::__move_assign(list& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value)\n{\n    clear();\n    base::__move_assign_alloc(__c);\n    splice(end(), __c);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\ninline\nlist<_Tp, _Alloc>&\nlist<_Tp, _Alloc>::operator=(const list& __c)\n{\n    if (this != &__c)\n    {\n        base::__copy_assign_alloc(__c);\n        assign(__c.begin(), __c.end());\n    }\n    return *this;\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _InpIter>\nvoid\nlist<_Tp, _Alloc>::assign(_InpIter __f, _InpIter __l,\n                          typename enable_if<__is_input_iterator<_InpIter>::value>::type*)\n{\n    iterator __i = begin();\n    iterator __e = end();\n    for (; __f != __l && __i != __e; ++__f, ++__i)\n        *__i = *__f;\n    if (__i == __e)\n        insert(__e, __f, __l);\n    else\n        erase(__i, __e);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n      __get_db()->__invalidate_all(this);\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::assign(size_type __n, const value_type& __x)\n{\n    iterator __i = begin();\n    iterator __e = end();\n    for (; __n > 0 && __i != __e; --__n, ++__i)\n        *__i = __x;\n    if (__i == __e)\n        insert(__e, __n, __x);\n    else\n        erase(__i, __e);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n      __get_db()->__invalidate_all(this);\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\n_Alloc\nlist<_Tp, _Alloc>::get_allocator() const _NOEXCEPT\n{\n    return allocator_type(base::__node_alloc());\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::insert(const_iterator __p, const value_type& __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::insert(iterator, x) called with an iterator not\"\n        \" referring to this list\");\n#endif\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __hold->__prev_ = 0;\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);\n    __link_nodes(__p.__ptr_, __hold->__as_link(), __hold->__as_link());\n    ++base::__sz();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(__hold.release()->__as_link(), this);\n#else\n    return iterator(__hold.release()->__as_link());\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::insert(const_iterator __p, size_type __n, const value_type& __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::insert(iterator, n, x) called with an iterator not\"\n        \" referring to this list\");\n    iterator __r(__p.__ptr_, this);\n#else\n    iterator __r(__p.__ptr_);\n#endif\n    if (__n > 0)\n    {\n        size_type __ds = 0;\n        __node_allocator& __na = base::__node_alloc();\n        typedef __allocator_destructor<__node_allocator> _Dp;\n        unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n        __hold->__prev_ = 0;\n        __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);\n        ++__ds;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __r = iterator(__hold->__as_link(), this);\n#else\n        __r = iterator(__hold->__as_link());\n#endif\n        __hold.release();\n        iterator __e = __r;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (--__n; __n != 0; --__n, ++__e, ++__ds)\n            {\n                __hold.reset(__node_alloc_traits::allocate(__na, 1));\n                __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);\n                __e.__ptr_->__next_ = __hold->__as_link();\n                __hold->__prev_ = __e.__ptr_;\n                __hold.release();\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            while (true)\n            {\n                __node_alloc_traits::destroy(__na, _VSTD::addressof(*__e));\n                __link_pointer __prev = __e.__ptr_->__prev_;\n                __node_alloc_traits::deallocate(__na, __e.__ptr_->__as_node(), 1);\n                if (__prev == 0)\n                    break;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n                __e = iterator(__prev, this);\n#else\n                __e = iterator(__prev);\n#endif\n            }\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __link_nodes(__p.__ptr_, __r.__ptr_, __e.__ptr_);\n        base::__sz() += __ds;\n    }\n    return __r;\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _InpIter>\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::insert(const_iterator __p, _InpIter __f, _InpIter __l,\n             typename enable_if<__is_input_iterator<_InpIter>::value>::type*)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::insert(iterator, range) called with an iterator not\"\n        \" referring to this list\");\n    iterator __r(__p.__ptr_, this);\n#else\n    iterator __r(__p.__ptr_);\n#endif\n    if (__f != __l)\n    {\n        size_type __ds = 0;\n        __node_allocator& __na = base::__node_alloc();\n        typedef __allocator_destructor<__node_allocator> _Dp;\n        unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n        __hold->__prev_ = 0;\n        __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), *__f);\n        ++__ds;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __r = iterator(__hold.get()->__as_link(), this);\n#else\n        __r = iterator(__hold.get()->__as_link());\n#endif\n        __hold.release();\n        iterator __e = __r;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (++__f; __f != __l; ++__f, (void) ++__e, (void) ++__ds)\n            {\n                __hold.reset(__node_alloc_traits::allocate(__na, 1));\n                __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), *__f);\n                __e.__ptr_->__next_ = __hold.get()->__as_link();\n                __hold->__prev_ = __e.__ptr_;\n                __hold.release();\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            while (true)\n            {\n                __node_alloc_traits::destroy(__na, _VSTD::addressof(*__e));\n                __link_pointer __prev = __e.__ptr_->__prev_;\n                __node_alloc_traits::deallocate(__na, __e.__ptr_->__as_node(), 1);\n                if (__prev == 0)\n                    break;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n                __e = iterator(__prev, this);\n#else\n                __e = iterator(__prev);\n#endif\n            }\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __link_nodes(__p.__ptr_, __r.__ptr_, __e.__ptr_);\n        base::__sz() += __ds;\n    }\n    return __r;\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::push_front(const value_type& __x)\n{\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);\n    __link_pointer __nl = __hold->__as_link();\n    __link_nodes_at_front(__nl, __nl);\n    ++base::__sz();\n    __hold.release();\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::push_back(const value_type& __x)\n{\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);\n    __link_nodes_at_back(__hold.get()->__as_link(), __hold.get()->__as_link());\n    ++base::__sz();\n    __hold.release();\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::push_front(value_type&& __x)\n{\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::move(__x));\n    __link_nodes_at_front(__hold.get()->__as_link(), __hold.get()->__as_link());\n    ++base::__sz();\n    __hold.release();\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::push_back(value_type&& __x)\n{\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::move(__x));\n    __link_nodes_at_back(__hold.get()->__as_link(), __hold.get()->__as_link());\n    ++base::__sz();\n    __hold.release();\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class... _Args>\n#if _LIBCPP_STD_VER > 14\ntypename list<_Tp, _Alloc>::reference\n#else\nvoid\n#endif\nlist<_Tp, _Alloc>::emplace_front(_Args&&... __args)\n{\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::forward<_Args>(__args)...);\n    __link_nodes_at_front(__hold.get()->__as_link(), __hold.get()->__as_link());\n    ++base::__sz();\n#if _LIBCPP_STD_VER > 14\n    return __hold.release()->__value_;\n#else\n    __hold.release();\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class... _Args>\n#if _LIBCPP_STD_VER > 14\ntypename list<_Tp, _Alloc>::reference\n#else\nvoid\n#endif\nlist<_Tp, _Alloc>::emplace_back(_Args&&... __args)\n{\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::forward<_Args>(__args)...);\n    __link_pointer __nl = __hold->__as_link();\n    __link_nodes_at_back(__nl, __nl);\n    ++base::__sz();\n#if _LIBCPP_STD_VER > 14\n    return __hold.release()->__value_;\n#else\n    __hold.release();\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class... _Args>\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::emplace(const_iterator __p, _Args&&... __args)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::emplace(iterator, args...) called with an iterator not\"\n        \" referring to this list\");\n#endif\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __hold->__prev_ = 0;\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::forward<_Args>(__args)...);\n    __link_pointer __nl = __hold.get()->__as_link();\n    __link_nodes(__p.__ptr_, __nl, __nl);\n    ++base::__sz();\n    __hold.release();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(__nl, this);\n#else\n    return iterator(__nl);\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::insert(const_iterator __p, value_type&& __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::insert(iterator, x) called with an iterator not\"\n        \" referring to this list\");\n#endif\n    __node_allocator& __na = base::__node_alloc();\n    typedef __allocator_destructor<__node_allocator> _Dp;\n    unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n    __hold->__prev_ = 0;\n    __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), _VSTD::move(__x));\n    __link_pointer __nl = __hold->__as_link();\n    __link_nodes(__p.__ptr_, __nl, __nl);\n    ++base::__sz();\n    __hold.release();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(__nl, this);\n#else\n    return iterator(__nl);\n#endif\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::pop_front()\n{\n    _LIBCPP_ASSERT(!empty(), \"list::pop_front() called with empty list\");\n    __node_allocator& __na = base::__node_alloc();\n    __link_pointer __n = base::__end_.__next_;\n    base::__unlink_nodes(__n, __n);\n    --base::__sz();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __c_node* __c = __get_db()->__find_c_and_lock(this);\n    for (__i_node** __p = __c->end_; __p != __c->beg_; )\n    {\n        --__p;\n        iterator* __i = static_cast<iterator*>((*__p)->__i_);\n        if (__i->__ptr_ == __n)\n        {\n            (*__p)->__c_ = nullptr;\n            if (--__c->end_ != __p)\n                memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*));\n        }\n    }\n    __get_db()->unlock();\n#endif\n    __node_pointer __np = __n->__as_node();\n    __node_alloc_traits::destroy(__na, _VSTD::addressof(__np->__value_));\n    __node_alloc_traits::deallocate(__na, __np, 1);\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::pop_back()\n{\n    _LIBCPP_ASSERT(!empty(), \"list::pop_back() called with empty list\");\n    __node_allocator& __na = base::__node_alloc();\n    __link_pointer __n = base::__end_.__prev_;\n    base::__unlink_nodes(__n, __n);\n    --base::__sz();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __c_node* __c = __get_db()->__find_c_and_lock(this);\n    for (__i_node** __p = __c->end_; __p != __c->beg_; )\n    {\n        --__p;\n        iterator* __i = static_cast<iterator*>((*__p)->__i_);\n        if (__i->__ptr_ == __n)\n        {\n            (*__p)->__c_ = nullptr;\n            if (--__c->end_ != __p)\n                memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*));\n        }\n    }\n    __get_db()->unlock();\n#endif\n    __node_pointer __np = __n->__as_node();\n    __node_alloc_traits::destroy(__na, _VSTD::addressof(__np->__value_));\n    __node_alloc_traits::deallocate(__na, __np, 1);\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::erase(const_iterator __p)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::erase(iterator) called with an iterator not\"\n        \" referring to this list\");\n#endif\n    _LIBCPP_ASSERT(__p != end(),\n        \"list::erase(iterator) called with a non-dereferenceable iterator\");\n    __node_allocator& __na = base::__node_alloc();\n    __link_pointer __n = __p.__ptr_;\n    __link_pointer __r = __n->__next_;\n    base::__unlink_nodes(__n, __n);\n    --base::__sz();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __c_node* __c = __get_db()->__find_c_and_lock(this);\n    for (__i_node** __ip = __c->end_; __ip != __c->beg_; )\n    {\n        --__ip;\n        iterator* __i = static_cast<iterator*>((*__ip)->__i_);\n        if (__i->__ptr_ == __n)\n        {\n            (*__ip)->__c_ = nullptr;\n            if (--__c->end_ != __ip)\n                memmove(__ip, __ip+1, (__c->end_ - __ip)*sizeof(__i_node*));\n        }\n    }\n    __get_db()->unlock();\n#endif\n    __node_pointer __np = __n->__as_node();\n    __node_alloc_traits::destroy(__na, _VSTD::addressof(__np->__value_));\n    __node_alloc_traits::deallocate(__na, __np, 1);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(__r, this);\n#else\n    return iterator(__r);\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::erase(const_iterator __f, const_iterator __l)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__f) == this,\n        \"list::erase(iterator, iterator) called with an iterator not\"\n        \" referring to this list\");\n   _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__l) == this,\n        \"list::erase(iterator, iterator) called with an iterator not\"\n        \" referring to this list\");\n#endif\n    if (__f != __l)\n    {\n        __node_allocator& __na = base::__node_alloc();\n        base::__unlink_nodes(__f.__ptr_, __l.__ptr_->__prev_);\n        while (__f != __l)\n        {\n            __link_pointer __n = __f.__ptr_;\n            ++__f;\n            --base::__sz();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n            __c_node* __c = __get_db()->__find_c_and_lock(this);\n            for (__i_node** __p = __c->end_; __p != __c->beg_; )\n            {\n                --__p;\n                iterator* __i = static_cast<iterator*>((*__p)->__i_);\n                if (__i->__ptr_ == __n)\n                {\n                    (*__p)->__c_ = nullptr;\n                    if (--__c->end_ != __p)\n                        memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*));\n                }\n            }\n            __get_db()->unlock();\n#endif\n            __node_pointer __np = __n->__as_node();\n            __node_alloc_traits::destroy(__na, _VSTD::addressof(__np->__value_));\n            __node_alloc_traits::deallocate(__na, __np, 1);\n        }\n    }\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(__l.__ptr_, this);\n#else\n    return iterator(__l.__ptr_);\n#endif\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::resize(size_type __n)\n{\n    if (__n < base::__sz())\n        erase(__iterator(__n), end());\n    else if (__n > base::__sz())\n    {\n        __n -= base::__sz();\n        size_type __ds = 0;\n        __node_allocator& __na = base::__node_alloc();\n        typedef __allocator_destructor<__node_allocator> _Dp;\n        unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n        __hold->__prev_ = 0;\n        __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_));\n        ++__ds;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        iterator __r = iterator(__hold.release()->__as_link(), this);\n#else\n        iterator __r = iterator(__hold.release()->__as_link());\n#endif\n        iterator __e = __r;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (--__n; __n != 0; --__n, ++__e, ++__ds)\n            {\n                __hold.reset(__node_alloc_traits::allocate(__na, 1));\n                __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_));\n                __e.__ptr_->__next_ = __hold.get()->__as_link();\n                __hold->__prev_ = __e.__ptr_;\n                __hold.release();\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            while (true)\n            {\n                __node_alloc_traits::destroy(__na, _VSTD::addressof(*__e));\n                __link_pointer __prev = __e.__ptr_->__prev_;\n                __node_alloc_traits::deallocate(__na, __e.__ptr_->__as_node(), 1);\n                if (__prev == 0)\n                    break;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n                __e = iterator(__prev, this);\n#else\n                __e = iterator(__prev);\n#endif\n            }\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __link_nodes_at_back(__r.__ptr_, __e.__ptr_);\n        base::__sz() += __ds;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::resize(size_type __n, const value_type& __x)\n{\n    if (__n < base::__sz())\n        erase(__iterator(__n), end());\n    else if (__n > base::__sz())\n    {\n        __n -= base::__sz();\n        size_type __ds = 0;\n        __node_allocator& __na = base::__node_alloc();\n        typedef __allocator_destructor<__node_allocator> _Dp;\n        unique_ptr<__node, _Dp> __hold(__node_alloc_traits::allocate(__na, 1), _Dp(__na, 1));\n        __hold->__prev_ = 0;\n        __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);\n        ++__ds;\n        __link_pointer __nl = __hold.release()->__as_link();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        iterator __r = iterator(__nl, this);\n#else\n        iterator __r = iterator(__nl);\n#endif\n        iterator __e = __r;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (--__n; __n != 0; --__n, ++__e, ++__ds)\n            {\n                __hold.reset(__node_alloc_traits::allocate(__na, 1));\n                __node_alloc_traits::construct(__na, _VSTD::addressof(__hold->__value_), __x);\n                __e.__ptr_->__next_ = __hold.get()->__as_link();\n                __hold->__prev_ = __e.__ptr_;\n                __hold.release();\n            }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            while (true)\n            {\n                __node_alloc_traits::destroy(__na, _VSTD::addressof(*__e));\n                __link_pointer __prev = __e.__ptr_->__prev_;\n                __node_alloc_traits::deallocate(__na, __e.__ptr_->__as_node(), 1);\n                if (__prev == 0)\n                    break;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n                __e = iterator(__prev, this);\n#else\n                __e = iterator(__prev);\n#endif\n            }\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        __link_nodes(base::__end_as_link(), __r.__ptr_, __e.__ptr_);\n        base::__sz() += __ds;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::splice(const_iterator __p, list& __c)\n{\n    _LIBCPP_ASSERT(this != &__c,\n                   \"list::splice(iterator, list) called with this == &list\");\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::splice(iterator, list) called with an iterator not\"\n        \" referring to this list\");\n#endif\n    if (!__c.empty())\n    {\n        __link_pointer __f = __c.__end_.__next_;\n        __link_pointer __l = __c.__end_.__prev_;\n        base::__unlink_nodes(__f, __l);\n        __link_nodes(__p.__ptr_, __f, __l);\n        base::__sz() += __c.__sz();\n        __c.__sz() = 0;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __libcpp_db* __db = __get_db();\n        __c_node* __cn1 = __db->__find_c_and_lock(this);\n        __c_node* __cn2 = __db->__find_c(&__c);\n        for (__i_node** __ip = __cn2->end_; __ip != __cn2->beg_;)\n        {\n            --__ip;\n            iterator* __i = static_cast<iterator*>((*__ip)->__i_);\n            if (__i->__ptr_ != __c.__end_as_link())\n            {\n                __cn1->__add(*__ip);\n                (*__ip)->__c_ = __cn1;\n                if (--__cn2->end_ != __ip)\n                    memmove(__ip, __ip+1, (__cn2->end_ - __ip)*sizeof(__i_node*));\n            }\n        }\n        __db->unlock();\n#endif\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __i)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::splice(iterator, list, iterator) called with first iterator not\"\n        \" referring to this list\");\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__i) == &__c,\n        \"list::splice(iterator, list, iterator) called with second iterator not\"\n        \" referring to list argument\");\n    _LIBCPP_ASSERT(__get_const_db()->__dereferenceable(&__i),\n        \"list::splice(iterator, list, iterator) called with second iterator not\"\n        \" derefereceable\");\n#endif\n    if (__p.__ptr_ != __i.__ptr_ && __p.__ptr_ != __i.__ptr_->__next_)\n    {\n        __link_pointer __f = __i.__ptr_;\n        base::__unlink_nodes(__f, __f);\n        __link_nodes(__p.__ptr_, __f, __f);\n        --__c.__sz();\n        ++base::__sz();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __libcpp_db* __db = __get_db();\n        __c_node* __cn1 = __db->__find_c_and_lock(this);\n        __c_node* __cn2 = __db->__find_c(&__c);\n        for (__i_node** __ip = __cn2->end_; __ip != __cn2->beg_;)\n        {\n            --__ip;\n            iterator* __j = static_cast<iterator*>((*__ip)->__i_);\n            if (__j->__ptr_ == __f)\n            {\n                __cn1->__add(*__ip);\n                (*__ip)->__c_ = __cn1;\n                if (--__cn2->end_ != __ip)\n                    memmove(__ip, __ip+1, (__cn2->end_ - __ip)*sizeof(__i_node*));\n            }\n        }\n        __db->unlock();\n#endif\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::splice(const_iterator __p, list& __c, const_iterator __f, const_iterator __l)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n        \"list::splice(iterator, list, iterator, iterator) called with first iterator not\"\n        \" referring to this list\");\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__f) == &__c,\n        \"list::splice(iterator, list, iterator, iterator) called with second iterator not\"\n        \" referring to list argument\");\n    if (this == &__c)\n    {\n        for (const_iterator __i = __f; __i != __l; ++__i)\n            _LIBCPP_ASSERT(__i != __p,\n                           \"list::splice(iterator, list, iterator, iterator)\"\n                           \" called with the first iterator within the range\"\n                           \" of the second and third iterators\");\n    }\n#endif\n    if (__f != __l)\n    {\n        if (this != &__c)\n        {\n            size_type __s = _VSTD::distance(__f, __l);\n            __c.__sz() -= __s;\n            base::__sz() += __s;\n        }\n        __link_pointer __first = __f.__ptr_;\n        --__l;\n        __link_pointer __last = __l.__ptr_;\n        base::__unlink_nodes(__first, __last);\n        __link_nodes(__p.__ptr_, __first, __last);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __libcpp_db* __db = __get_db();\n        __c_node* __cn1 = __db->__find_c_and_lock(this);\n        __c_node* __cn2 = __db->__find_c(&__c);\n        for (__i_node** __ip = __cn2->end_; __ip != __cn2->beg_;)\n        {\n            --__ip;\n            iterator* __j = static_cast<iterator*>((*__ip)->__i_);\n            for (__link_pointer __k = __f.__ptr_;\n                                          __k != __l.__ptr_; __k = __k->__next_)\n            {\n                if (__j->__ptr_ == __k)\n                {\n                    __cn1->__add(*__ip);\n                    (*__ip)->__c_ = __cn1;\n                    if (--__cn2->end_ != __ip)\n                        memmove(__ip, __ip+1, (__cn2->end_ - __ip)*sizeof(__i_node*));\n                }\n            }\n        }\n        __db->unlock();\n#endif\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::remove(const value_type& __x)\n{\n    list<_Tp, _Alloc> __deleted_nodes(get_allocator()); // collect the nodes we're removing\n    for (const_iterator __i = begin(), __e = end(); __i != __e;)\n    {\n        if (*__i == __x)\n        {\n            const_iterator __j = _VSTD::next(__i);\n            for (; __j != __e && *__j == __x; ++__j)\n                ;\n            __deleted_nodes.splice(__deleted_nodes.end(), *this, __i, __j);\n            __i = __j;\n            if (__i != __e)\n                ++__i;\n        }\n        else\n            ++__i;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Pred>\nvoid\nlist<_Tp, _Alloc>::remove_if(_Pred __pred)\n{\n    for (iterator __i = begin(), __e = end(); __i != __e;)\n    {\n        if (__pred(*__i))\n        {\n            iterator __j = _VSTD::next(__i);\n            for (; __j != __e && __pred(*__j); ++__j)\n                ;\n            __i = erase(__i, __j);\n            if (__i != __e)\n                ++__i;\n        }\n        else\n            ++__i;\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\nlist<_Tp, _Alloc>::unique()\n{\n    unique(__equal_to<value_type>());\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _BinaryPred>\nvoid\nlist<_Tp, _Alloc>::unique(_BinaryPred __binary_pred)\n{\n    for (iterator __i = begin(), __e = end(); __i != __e;)\n    {\n        iterator __j = _VSTD::next(__i);\n        for (; __j != __e && __binary_pred(*__i, *__j); ++__j)\n            ;\n        if (++__i != __j)\n            __i = erase(__i, __j);\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\nlist<_Tp, _Alloc>::merge(list& __c)\n{\n    merge(__c, __less<value_type>());\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Comp>\nvoid\nlist<_Tp, _Alloc>::merge(list& __c, _Comp __comp)\n{\n    if (this != &__c)\n    {\n        iterator __f1 = begin();\n        iterator __e1 = end();\n        iterator __f2 = __c.begin();\n        iterator __e2 = __c.end();\n        while (__f1 != __e1 && __f2 != __e2)\n        {\n            if (__comp(*__f2, *__f1))\n            {\n                size_type __ds = 1;\n                iterator __m2 = _VSTD::next(__f2);\n                for (; __m2 != __e2 && __comp(*__m2, *__f1); ++__m2, ++__ds)\n                    ;\n                base::__sz() += __ds;\n                __c.__sz() -= __ds;\n                __link_pointer __f = __f2.__ptr_;\n                __link_pointer __l = __m2.__ptr_->__prev_;\n                __f2 = __m2;\n                base::__unlink_nodes(__f, __l);\n                __m2 = _VSTD::next(__f1);\n                __link_nodes(__f1.__ptr_, __f, __l);\n                __f1 = __m2;\n            }\n            else\n                ++__f1;\n        }\n        splice(__e1, __c);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __libcpp_db* __db = __get_db();\n        __c_node* __cn1 = __db->__find_c_and_lock(this);\n        __c_node* __cn2 = __db->__find_c(&__c);\n        for (__i_node** __p = __cn2->end_; __p != __cn2->beg_;)\n        {\n            --__p;\n            iterator* __i = static_cast<iterator*>((*__p)->__i_);\n            if (__i->__ptr_ != __c.__end_as_link())\n            {\n                __cn1->__add(*__p);\n                (*__p)->__c_ = __cn1;\n                if (--__cn2->end_ != __p)\n                    memmove(__p, __p+1, (__cn2->end_ - __p)*sizeof(__i_node*));\n            }\n        }\n        __db->unlock();\n#endif\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\ninline\nvoid\nlist<_Tp, _Alloc>::sort()\n{\n    sort(__less<value_type>());\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Comp>\ninline\nvoid\nlist<_Tp, _Alloc>::sort(_Comp __comp)\n{\n    __sort(begin(), end(), base::__sz(), __comp);\n}\n\ntemplate <class _Tp, class _Alloc>\ntemplate <class _Comp>\ntypename list<_Tp, _Alloc>::iterator\nlist<_Tp, _Alloc>::__sort(iterator __f1, iterator __e2, size_type __n, _Comp& __comp)\n{\n    switch (__n)\n    {\n    case 0:\n    case 1:\n        return __f1;\n    case 2:\n        if (__comp(*--__e2, *__f1))\n        {\n            __link_pointer __f = __e2.__ptr_;\n            base::__unlink_nodes(__f, __f);\n            __link_nodes(__f1.__ptr_, __f, __f);\n            return __e2;\n        }\n        return __f1;\n    }\n    size_type __n2 = __n / 2;\n    iterator __e1 = _VSTD::next(__f1, __n2);\n    iterator  __r = __f1 = __sort(__f1, __e1, __n2, __comp);\n    iterator __f2 = __e1 = __sort(__e1, __e2, __n - __n2, __comp);\n    if (__comp(*__f2, *__f1))\n    {\n        iterator __m2 = _VSTD::next(__f2);\n        for (; __m2 != __e2 && __comp(*__m2, *__f1); ++__m2)\n            ;\n        __link_pointer __f = __f2.__ptr_;\n        __link_pointer __l = __m2.__ptr_->__prev_;\n        __r = __f2;\n        __e1 = __f2 = __m2;\n        base::__unlink_nodes(__f, __l);\n        __m2 = _VSTD::next(__f1);\n        __link_nodes(__f1.__ptr_, __f, __l);\n        __f1 = __m2;\n    }\n    else\n        ++__f1;\n    while (__f1 != __e1 && __f2 != __e2)\n    {\n        if (__comp(*__f2, *__f1))\n        {\n            iterator __m2 = _VSTD::next(__f2);\n            for (; __m2 != __e2 && __comp(*__m2, *__f1); ++__m2)\n                ;\n            __link_pointer __f = __f2.__ptr_;\n            __link_pointer __l = __m2.__ptr_->__prev_;\n            if (__e1 == __f2)\n                __e1 = __m2;\n            __f2 = __m2;\n            base::__unlink_nodes(__f, __l);\n            __m2 = _VSTD::next(__f1);\n            __link_nodes(__f1.__ptr_, __f, __l);\n            __f1 = __m2;\n        }\n        else\n            ++__f1;\n    }\n    return __r;\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\nlist<_Tp, _Alloc>::reverse() _NOEXCEPT\n{\n    if (base::__sz() > 1)\n    {\n        iterator __e = end();\n        for (iterator __i = begin(); __i.__ptr_ != __e.__ptr_;)\n        {\n            _VSTD::swap(__i.__ptr_->__prev_, __i.__ptr_->__next_);\n            __i.__ptr_ = __i.__ptr_->__prev_;\n        }\n        _VSTD::swap(__e.__ptr_->__prev_, __e.__ptr_->__next_);\n    }\n}\n\ntemplate <class _Tp, class _Alloc>\nbool\nlist<_Tp, _Alloc>::__invariants() const\n{\n    return size() == _VSTD::distance(begin(), end());\n}\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\ntemplate <class _Tp, class _Alloc>\nbool\nlist<_Tp, _Alloc>::__dereferenceable(const const_iterator* __i) const\n{\n    return __i->__ptr_ != this->__end_as_link();\n}\n\ntemplate <class _Tp, class _Alloc>\nbool\nlist<_Tp, _Alloc>::__decrementable(const const_iterator* __i) const\n{\n    return !empty() &&  __i->__ptr_ != base::__end_.__next_;\n}\n\ntemplate <class _Tp, class _Alloc>\nbool\nlist<_Tp, _Alloc>::__addable(const const_iterator*, ptrdiff_t) const\n{\n    return false;\n}\n\ntemplate <class _Tp, class _Alloc>\nbool\nlist<_Tp, _Alloc>::__subscriptable(const const_iterator*, ptrdiff_t) const\n{\n    return false;\n}\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)\n{\n    return __x.size() == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const list<_Tp, _Alloc>& __x, const list<_Tp, _Alloc>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(list<_Tp, _Alloc>& __x, list<_Tp, _Alloc>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_LIST\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/locale",
    "content": "// -*- C++ -*-\n//===-------------------------- locale ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_LOCALE\n#define _LIBCPP_LOCALE\n\n/*\n    locale synopsis\n\nnamespace std\n{\n\nclass locale\n{\npublic:\n    // types:\n    class facet;\n    class id;\n\n    typedef int category;\n    static const category // values assigned here are for exposition only\n        none     = 0x000,\n        collate  = 0x010,\n        ctype    = 0x020,\n        monetary = 0x040,\n        numeric  = 0x080,\n        time     = 0x100,\n        messages = 0x200,\n        all = collate | ctype | monetary | numeric | time | messages;\n\n    // construct/copy/destroy:\n    locale() noexcept;\n    locale(const locale& other) noexcept;\n    explicit locale(const char* std_name);\n    explicit locale(const string& std_name);\n    locale(const locale& other, const char* std_name, category);\n    locale(const locale& other, const string& std_name, category);\n    template <class Facet> locale(const locale& other, Facet* f);\n    locale(const locale& other, const locale& one, category);\n\n    ~locale(); // not virtual\n\n    const locale& operator=(const locale& other) noexcept;\n\n    template <class Facet> locale combine(const locale& other) const;\n\n    // locale operations:\n    basic_string<char> name() const;\n    bool operator==(const locale& other) const;\n    bool operator!=(const locale& other) const;\n    template <class charT, class Traits, class Allocator>\n      bool operator()(const basic_string<charT,Traits,Allocator>& s1,\n                      const basic_string<charT,Traits,Allocator>& s2) const;\n\n    // global locale objects:\n    static locale global(const locale&);\n    static const locale& classic();\n};\n\ntemplate <class Facet> const Facet& use_facet(const locale&);\ntemplate <class Facet> bool has_facet(const locale&) noexcept;\n\n// 22.3.3, convenience interfaces:\ntemplate <class charT> bool isspace (charT c, const locale& loc);\ntemplate <class charT> bool isprint (charT c, const locale& loc);\ntemplate <class charT> bool iscntrl (charT c, const locale& loc);\ntemplate <class charT> bool isupper (charT c, const locale& loc);\ntemplate <class charT> bool islower (charT c, const locale& loc);\ntemplate <class charT> bool isalpha (charT c, const locale& loc);\ntemplate <class charT> bool isdigit (charT c, const locale& loc);\ntemplate <class charT> bool ispunct (charT c, const locale& loc);\ntemplate <class charT> bool isxdigit(charT c, const locale& loc);\ntemplate <class charT> bool isalnum (charT c, const locale& loc);\ntemplate <class charT> bool isgraph (charT c, const locale& loc);\ntemplate <class charT> charT toupper(charT c, const locale& loc);\ntemplate <class charT> charT tolower(charT c, const locale& loc);\n\ntemplate<class Codecvt, class Elem = wchar_t,\n         class Wide_alloc = allocator<Elem>,\n         class Byte_alloc = allocator<char>>\nclass wstring_convert\n{\npublic:\n    typedef basic_string<char, char_traits<char>, Byte_alloc> byte_string;\n    typedef basic_string<Elem, char_traits<Elem>, Wide_alloc> wide_string;\n    typedef typename Codecvt::state_type                      state_type;\n    typedef typename wide_string::traits_type::int_type       int_type;\n\n    explicit wstring_convert(Codecvt* pcvt = new Codecvt);          // explicit in C++14\n    wstring_convert(Codecvt* pcvt, state_type state);\n    explicit wstring_convert(const byte_string& byte_err,           // explicit in C++14\n                    const wide_string& wide_err = wide_string());\n    wstring_convert(const wstring_convert&) = delete;               // C++14\n    wstring_convert & operator=(const wstring_convert &) = delete;  // C++14\n    ~wstring_convert();\n\n    wide_string from_bytes(char byte);\n    wide_string from_bytes(const char* ptr);\n    wide_string from_bytes(const byte_string& str);\n    wide_string from_bytes(const char* first, const char* last);\n\n    byte_string to_bytes(Elem wchar);\n    byte_string to_bytes(const Elem* wptr);\n    byte_string to_bytes(const wide_string& wstr);\n    byte_string to_bytes(const Elem* first, const Elem* last);\n\n    size_t converted() const; // noexcept in C++14\n    state_type state() const;\n};\n\ntemplate <class Codecvt, class Elem = wchar_t, class Tr = char_traits<Elem>>\nclass wbuffer_convert\n    : public basic_streambuf<Elem, Tr>\n{\npublic:\n    typedef typename Tr::state_type state_type;\n\n    explicit wbuffer_convert(streambuf* bytebuf = 0, Codecvt* pcvt = new Codecvt,\n                    state_type state = state_type());       // explicit in C++14\n    wbuffer_convert(const wbuffer_convert&) = delete;               // C++14\n    wbuffer_convert & operator=(const wbuffer_convert &) = delete;  // C++14\n    ~wbuffer_convert();                                             // C++14\n    \n    streambuf* rdbuf() const;\n    streambuf* rdbuf(streambuf* bytebuf);\n\n    state_type state() const;\n};\n\n// 22.4.1 and 22.4.1.3, ctype:\nclass ctype_base;\ntemplate <class charT> class ctype;\ntemplate <> class ctype<char>; // specialization\ntemplate <class charT> class ctype_byname;\ntemplate <> class ctype_byname<char>; // specialization\n\nclass codecvt_base;\ntemplate <class internT, class externT, class stateT> class codecvt;\ntemplate <class internT, class externT, class stateT> class codecvt_byname;\n\n// 22.4.2 and 22.4.3, numeric:\ntemplate <class charT, class InputIterator> class num_get;\ntemplate <class charT, class OutputIterator> class num_put;\ntemplate <class charT> class numpunct;\ntemplate <class charT> class numpunct_byname;\n\n// 22.4.4, col lation:\ntemplate <class charT> class collate;\ntemplate <class charT> class collate_byname;\n\n// 22.4.5, date and time:\nclass time_base;\ntemplate <class charT, class InputIterator> class time_get;\ntemplate <class charT, class InputIterator> class time_get_byname;\ntemplate <class charT, class OutputIterator> class time_put;\ntemplate <class charT, class OutputIterator> class time_put_byname;\n\n// 22.4.6, money:\nclass money_base;\ntemplate <class charT, class InputIterator> class money_get;\ntemplate <class charT, class OutputIterator> class money_put;\ntemplate <class charT, bool Intl> class moneypunct;\ntemplate <class charT, bool Intl> class moneypunct_byname;\n\n// 22.4.7, message retrieval:\nclass messages_base;\ntemplate <class charT> class messages;\ntemplate <class charT> class messages_byname;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__locale>\n#include <__debug>\n#include <algorithm>\n#include <memory>\n#include <ios>\n#include <streambuf>\n#include <iterator>\n#include <limits>\n#ifndef __APPLE__\n#include <cstdarg>\n#endif\n#include <cstdlib>\n#include <ctime>\n#include <cstdio>\n#ifdef _LIBCPP_HAS_CATOPEN\n#include <nl_types.h>\n#endif\n\n#ifdef __APPLE__\n#include <Availability.h>\n#endif\n\n#ifdef _LIBCPP_LOCALE__L_EXTENSIONS\n#include <__bsd_locale_defaults.h>\n#else\n#include <__bsd_locale_fallbacks.h>\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#if defined(__APPLE__) || defined(__FreeBSD__)\n#  define _LIBCPP_GET_C_LOCALE 0\n#elif defined(__CloudABI__) || defined(__NetBSD__)\n#  define _LIBCPP_GET_C_LOCALE LC_C_LOCALE\n#else\n#  define _LIBCPP_GET_C_LOCALE __cloc()\n   // Get the C locale object\n   _LIBCPP_FUNC_VIS locale_t __cloc();\n#define __cloc_defined\n#endif\n\n// __scan_keyword\n// Scans [__b, __e) until a match is found in the basic_strings range\n//  [__kb, __ke) or until it can be shown that there is no match in [__kb, __ke).\n//  __b will be incremented (visibly), consuming CharT until a match is found\n//  or proved to not exist.  A keyword may be \"\", in which will match anything.\n//  If one keyword is a prefix of another, and the next CharT in the input\n//  might match another keyword, the algorithm will attempt to find the longest\n//  matching keyword.  If the longer matching keyword ends up not matching, then\n//  no keyword match is found.  If no keyword match is found, __ke is returned\n//  and failbit is set in __err.\n//  Else an iterator pointing to the matching keyword is found.  If more than\n//  one keyword matches, an iterator to the first matching keyword is returned.\n//  If on exit __b == __e, eofbit is set in __err.  If __case_sensitive is false,\n//  __ct is used to force to lower case before comparing characters.\n//  Examples:\n//  Keywords:  \"a\", \"abb\"\n//  If the input is \"a\", the first keyword matches and eofbit is set.\n//  If the input is \"abc\", no match is found and \"ab\" are consumed.\ntemplate <class _InputIterator, class _ForwardIterator, class _Ctype>\n_LIBCPP_HIDDEN\n_ForwardIterator\n__scan_keyword(_InputIterator& __b, _InputIterator __e,\n               _ForwardIterator __kb, _ForwardIterator __ke,\n               const _Ctype& __ct, ios_base::iostate& __err,\n               bool __case_sensitive = true)\n{\n    typedef typename iterator_traits<_InputIterator>::value_type _CharT;\n    size_t __nkw = static_cast<size_t>(_VSTD::distance(__kb, __ke));\n    const unsigned char __doesnt_match = '\\0';\n    const unsigned char __might_match = '\\1';\n    const unsigned char __does_match = '\\2';\n    unsigned char __statbuf[100];\n    unsigned char* __status = __statbuf;\n    unique_ptr<unsigned char, void(*)(void*)> __stat_hold(0, free);\n    if (__nkw > sizeof(__statbuf))\n    {\n        __status = (unsigned char*)malloc(__nkw);\n        if (__status == 0)\n            __throw_bad_alloc();\n        __stat_hold.reset(__status);\n    }\n    size_t __n_might_match = __nkw;  // At this point, any keyword might match\n    size_t __n_does_match = 0;       // but none of them definitely do\n    // Initialize all statuses to __might_match, except for \"\" keywords are __does_match\n    unsigned char* __st = __status;\n    for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st)\n    {\n        if (!__ky->empty())\n            *__st = __might_match;\n        else\n        {\n            *__st = __does_match;\n            --__n_might_match;\n            ++__n_does_match;\n        }\n    }\n    // While there might be a match, test keywords against the next CharT\n    for (size_t __indx = 0; __b != __e && __n_might_match > 0; ++__indx)\n    {\n        // Peek at the next CharT but don't consume it\n        _CharT __c = *__b;\n        if (!__case_sensitive)\n            __c = __ct.toupper(__c);\n        bool __consume = false;\n        // For each keyword which might match, see if the __indx character is __c\n        // If a match if found, consume __c\n        // If a match is found, and that is the last character in the keyword,\n        //    then that keyword matches.\n        // If the keyword doesn't match this character, then change the keyword\n        //    to doesn't match\n        __st = __status;\n        for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st)\n        {\n            if (*__st == __might_match)\n            {\n                _CharT __kc = (*__ky)[__indx];\n                if (!__case_sensitive)\n                    __kc = __ct.toupper(__kc);\n                if (__c == __kc)\n                {\n                    __consume = true;\n                    if (__ky->size() == __indx+1)\n                    {\n                        *__st = __does_match;\n                        --__n_might_match;\n                        ++__n_does_match;\n                    }\n                }\n                else\n                {\n                    *__st = __doesnt_match;\n                    --__n_might_match;\n                }\n            }\n        }\n        // consume if we matched a character\n        if (__consume)\n        {\n            ++__b;\n            // If we consumed a character and there might be a matched keyword that\n            //   was marked matched on a previous iteration, then such keywords\n            //   which are now marked as not matching.\n            if (__n_might_match + __n_does_match > 1)\n            {\n                __st = __status;\n                for (_ForwardIterator __ky = __kb; __ky != __ke; ++__ky, (void) ++__st)\n                {\n                    if (*__st == __does_match && __ky->size() != __indx+1)\n                    {\n                        *__st = __doesnt_match;\n                        --__n_does_match;\n                    }\n                }\n            }\n        }\n    }\n    // We've exited the loop because we hit eof and/or we have no more \"might matches\".\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    // Return the first matching result\n    for (__st = __status; __kb != __ke; ++__kb, (void) ++__st)\n        if (*__st == __does_match)\n            break;\n    if (__kb == __ke)\n        __err |= ios_base::failbit;\n    return __kb;\n}\n\nstruct _LIBCPP_TYPE_VIS __num_get_base\n{\n    static const int __num_get_buf_sz = 40;\n\n    static int __get_base(ios_base&);\n    static const char __src[33];\n};\n\n_LIBCPP_FUNC_VIS\nvoid __check_grouping(const string& __grouping, unsigned* __g, unsigned* __g_end,\n                      ios_base::iostate& __err);\n\ntemplate <class _CharT>\nstruct __num_get\n    : protected __num_get_base\n{\n    static string __stage2_float_prep(ios_base& __iob, _CharT* __atoms, _CharT& __decimal_point,\n                                      _CharT& __thousands_sep);\n\n    static int __stage2_float_loop(_CharT __ct, bool& __in_units, char& __exp,\n                                   char* __a, char*& __a_end,\n                                   _CharT __decimal_point, _CharT __thousands_sep,\n                                   const string& __grouping, unsigned* __g,\n                                   unsigned*& __g_end, unsigned& __dc, _CharT* __atoms);\n#ifndef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET\n    static string __stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep);\n    static int __stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,\n                  unsigned& __dc, _CharT __thousands_sep, const string& __grouping,\n                  unsigned* __g, unsigned*& __g_end, _CharT* __atoms);\n\n#else\n    static string __stage2_int_prep(ios_base& __iob, _CharT& __thousands_sep)\n    {\n        locale __loc = __iob.getloc();\n        const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);\n        __thousands_sep = __np.thousands_sep();\n        return __np.grouping();\n    }\n\n    const _CharT* __do_widen(ios_base& __iob, _CharT* __atoms) const\n    {\n      return __do_widen_p(__iob, __atoms);\n    }\n\n\n    static int __stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,\n                  unsigned& __dc, _CharT __thousands_sep, const string& __grouping,\n                  unsigned* __g, unsigned*& __g_end, const _CharT* __atoms);\nprivate:\n    template<typename T>\n    const T* __do_widen_p(ios_base& __iob, T* __atoms) const\n    {\n      locale __loc = __iob.getloc();\n      use_facet<ctype<T> >(__loc).widen(__src, __src + 26, __atoms);\n      return __atoms;\n    }\n\n    const char* __do_widen_p(ios_base& __iob, char* __atoms) const\n    {\n      (void)__iob;\n      (void)__atoms;\n      return __src;\n    }\n#endif\n};\n\n#ifndef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET\ntemplate <class _CharT>\nstring\n__num_get<_CharT>::__stage2_int_prep(ios_base& __iob, _CharT* __atoms, _CharT& __thousands_sep)\n{\n    locale __loc = __iob.getloc();\n    use_facet<ctype<_CharT> >(__loc).widen(__src, __src + 26, __atoms);\n    const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);\n    __thousands_sep = __np.thousands_sep();\n    return __np.grouping();\n}\n#endif\n\ntemplate <class _CharT>\nstring\n__num_get<_CharT>::__stage2_float_prep(ios_base& __iob, _CharT* __atoms, _CharT& __decimal_point,\n                    _CharT& __thousands_sep)\n{\n    locale __loc = __iob.getloc();\n    use_facet<ctype<_CharT> >(__loc).widen(__src, __src + 32, __atoms);\n    const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc);\n    __decimal_point = __np.decimal_point();\n    __thousands_sep = __np.thousands_sep();\n    return __np.grouping();\n}\n\ntemplate <class _CharT>\nint\n#ifndef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET\n__num_get<_CharT>::__stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,\n                  unsigned& __dc, _CharT __thousands_sep, const string& __grouping,\n                  unsigned* __g, unsigned*& __g_end, _CharT* __atoms)\n#else\n__num_get<_CharT>::__stage2_int_loop(_CharT __ct, int __base, char* __a, char*& __a_end,\n                  unsigned& __dc, _CharT __thousands_sep, const string& __grouping,\n                  unsigned* __g, unsigned*& __g_end, const _CharT* __atoms)\n\n#endif\n{\n    if (__a_end == __a && (__ct == __atoms[24] || __ct == __atoms[25]))\n    {\n        *__a_end++ = __ct == __atoms[24] ? '+' : '-';\n        __dc = 0;\n        return 0;\n    }\n    if (__grouping.size() != 0 && __ct == __thousands_sep)\n    {\n        if (__g_end-__g < __num_get_buf_sz)\n        {\n            *__g_end++ = __dc;\n            __dc = 0;\n        }\n        return 0;\n    }\n    ptrdiff_t __f = find(__atoms, __atoms + 26, __ct) - __atoms;\n    if (__f >= 24)\n        return -1;\n    switch (__base)\n    {\n    case 8:\n    case 10:\n        if (__f >= __base)\n            return -1;\n        break;\n    case 16:\n        if (__f < 22)\n            break;\n        if (__a_end != __a && __a_end - __a <= 2 && __a_end[-1] == '0')\n        {\n            __dc = 0;\n            *__a_end++ = __src[__f];\n            return 0;\n        }\n        return -1;\n    }\n    *__a_end++ = __src[__f];\n    ++__dc;\n    return 0;\n}\n\ntemplate <class _CharT>\nint\n__num_get<_CharT>::__stage2_float_loop(_CharT __ct, bool& __in_units, char& __exp, char* __a, char*& __a_end,\n                    _CharT __decimal_point, _CharT __thousands_sep, const string& __grouping,\n                    unsigned* __g, unsigned*& __g_end, unsigned& __dc, _CharT* __atoms)\n{\n    if (__ct == __decimal_point)\n    {\n        if (!__in_units)\n            return -1;\n        __in_units = false;\n        *__a_end++ = '.';\n        if (__grouping.size() != 0 && __g_end-__g < __num_get_buf_sz)\n            *__g_end++ = __dc;\n        return 0;\n    }\n    if (__ct == __thousands_sep && __grouping.size() != 0)\n    {\n        if (!__in_units)\n            return -1;\n        if (__g_end-__g < __num_get_buf_sz)\n        {\n            *__g_end++ = __dc;\n            __dc = 0;\n        }\n        return 0;\n    }\n    ptrdiff_t __f = find(__atoms, __atoms + 32, __ct) - __atoms;\n    if (__f >= 32)\n        return -1;\n    char __x = __src[__f];\n    if (__x == '-' || __x == '+')\n    {\n        if (__a_end == __a || (__a_end[-1] & 0x5F) == (__exp & 0x7F))\n        {\n            *__a_end++ = __x;\n            return 0;\n        }\n        return -1;\n    }\n    if (__x == 'x' || __x == 'X')\n        __exp = 'P';\n    else if ((__x & 0x5F) == __exp)\n    {\n        __exp |= 0x80;\n        if (__in_units)\n        {\n            __in_units = false;\n            if (__grouping.size() != 0 && __g_end-__g < __num_get_buf_sz)\n                *__g_end++ = __dc;\n        }\n    }\n    *__a_end++ = __x;\n    if (__f >= 22)\n        return 0;\n    ++__dc;\n    return 0;\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<char>)\n_LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_get<wchar_t>)\n\ntemplate <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS num_get\n    : public locale::facet,\n      private __num_get<_CharT>\n{\npublic:\n    typedef _CharT char_type;\n    typedef _InputIterator iter_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit num_get(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, bool& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, long& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, long long& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, unsigned short& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, unsigned int& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, unsigned long& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, unsigned long long& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, float& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, double& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, long double& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, void*& __v) const\n    {\n        return do_get(__b, __e, __iob, __err, __v);\n    }\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~num_get() {}\n\n    template <class _Fp>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    iter_type __do_get_floating_point\n                            (iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, _Fp& __v) const;\n\n    template <class _Signed>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    iter_type __do_get_signed\n                            (iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, _Signed& __v) const;\n\n    template <class _Unsigned>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    iter_type __do_get_unsigned\n                            (iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, _Unsigned& __v) const;\n\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, bool& __v) const;\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, long& __v) const\n    { return this->__do_get_signed ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, long long& __v) const\n    { return this->__do_get_signed ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, unsigned short& __v) const\n    { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, unsigned int& __v) const\n    { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, unsigned long& __v) const\n    { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, unsigned long long& __v) const\n    { return this->__do_get_unsigned ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, float& __v) const\n    { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, double& __v) const\n    { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, long double& __v) const\n    { return this->__do_get_floating_point ( __b, __e, __iob, __err, __v ); }\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, void*& __v) const;\n};\n\ntemplate <class _CharT, class _InputIterator>\nlocale::id\nnum_get<_CharT, _InputIterator>::id;\n\ntemplate <class _Tp>\n_Tp\n__num_get_signed_integral(const char* __a, const char* __a_end,\n                          ios_base::iostate& __err, int __base)\n{\n    if (__a != __a_end)\n    {\n        typename remove_reference<decltype(errno)>::type __save_errno = errno;\n        errno = 0;\n        char *__p2;\n        long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);\n        typename remove_reference<decltype(errno)>::type __current_errno = errno;\n        if (__current_errno == 0)\n            errno = __save_errno;\n        if (__p2 != __a_end)\n        {\n            __err = ios_base::failbit;\n            return 0;\n        }\n        else if (__current_errno == ERANGE         ||\n                 __ll < numeric_limits<_Tp>::min() ||\n                 numeric_limits<_Tp>::max() < __ll)\n        {\n            __err = ios_base::failbit;\n            if (__ll > 0)\n                return numeric_limits<_Tp>::max();\n            else\n                return numeric_limits<_Tp>::min();\n        }\n        return static_cast<_Tp>(__ll);\n    }\n    __err = ios_base::failbit;\n    return 0;\n}\n\ntemplate <class _Tp>\n_Tp\n__num_get_unsigned_integral(const char* __a, const char* __a_end,\n                            ios_base::iostate& __err, int __base)\n{\n    if (__a != __a_end)\n    {\n        if (*__a == '-')\n        {\n            __err = ios_base::failbit;\n            return 0;\n        }\n        typename remove_reference<decltype(errno)>::type __save_errno = errno;\n        errno = 0;\n        char *__p2;\n        unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);\n        typename remove_reference<decltype(errno)>::type __current_errno = errno;\n        if (__current_errno == 0)\n            errno = __save_errno;\n        if (__p2 != __a_end)\n        {\n            __err = ios_base::failbit;\n            return 0;\n        }\n        else if (__current_errno == ERANGE ||\n                 numeric_limits<_Tp>::max() < __ll)\n        {\n            __err = ios_base::failbit;\n            return numeric_limits<_Tp>::max();\n        }\n        return static_cast<_Tp>(__ll);\n    }\n    __err = ios_base::failbit;\n    return 0;\n}\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\n_Tp __do_strtod(const char* __a, char** __p2);\n\ntemplate <>\ninline _LIBCPP_INLINE_VISIBILITY\nfloat __do_strtod<float>(const char* __a, char** __p2) {\n    return strtof_l(__a, __p2, _LIBCPP_GET_C_LOCALE);\n}\n\ntemplate <>\ninline _LIBCPP_INLINE_VISIBILITY\ndouble __do_strtod<double>(const char* __a, char** __p2) {\n    return strtod_l(__a, __p2, _LIBCPP_GET_C_LOCALE);\n}\n\ntemplate <>\ninline _LIBCPP_INLINE_VISIBILITY\nlong double __do_strtod<long double>(const char* __a, char** __p2) {\n    return strtold_l(__a, __p2, _LIBCPP_GET_C_LOCALE);\n}\n\ntemplate <class _Tp>\n_LIBCPP_HIDDEN\n_Tp\n__num_get_float(const char* __a, const char* __a_end, ios_base::iostate& __err)\n{\n    if (__a != __a_end)\n    {\n        typename remove_reference<decltype(errno)>::type __save_errno = errno;\n        errno = 0;\n        char *__p2;\n        _Tp __ld = __do_strtod<_Tp>(__a, &__p2);\n        typename remove_reference<decltype(errno)>::type __current_errno = errno;\n        if (__current_errno == 0)\n            errno = __save_errno;\n        if (__p2 != __a_end)\n        {\n            __err = ios_base::failbit;\n            return 0;\n        }\n        else if (__current_errno == ERANGE)\n            __err = ios_base::failbit;\n        return __ld;\n    }\n    __err = ios_base::failbit;\n    return 0;\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\nnum_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e,\n                                        ios_base& __iob,\n                                        ios_base::iostate& __err,\n                                        bool& __v) const\n{\n    if ((__iob.flags() & ios_base::boolalpha) == 0)\n    {\n        long __lv = -1;\n        __b = do_get(__b, __e, __iob, __err, __lv);\n        switch (__lv)\n        {\n        case 0:\n            __v = false;\n            break;\n        case 1:\n            __v = true;\n            break;\n        default:\n            __v = true;\n            __err = ios_base::failbit;\n            break;\n        }\n        return __b;\n    }\n    const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__iob.getloc());\n    const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__iob.getloc());\n    typedef typename numpunct<_CharT>::string_type string_type;\n    const string_type __names[2] = {__np.truename(), __np.falsename()};\n    const string_type* __i = __scan_keyword(__b, __e, __names, __names+2,\n                                            __ct, __err);\n    __v = __i == __names;\n    return __b;\n}\n\n// signed\n\ntemplate <class _CharT, class _InputIterator>\ntemplate <class _Signed>\n_InputIterator\nnum_get<_CharT, _InputIterator>::__do_get_signed(iter_type __b, iter_type __e,\n                                        ios_base& __iob,\n                                        ios_base::iostate& __err,\n                                        _Signed& __v) const\n{\n    // Stage 1\n    int __base = this->__get_base(__iob);\n    // Stage 2\n    char_type __thousands_sep;\n    const int __atoms_size = 26;\n#ifdef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET\n    char_type __atoms1[__atoms_size];\n    const char_type *__atoms = this->__do_widen(__iob, __atoms1);\n    string __grouping = this->__stage2_int_prep(__iob, __thousands_sep);\n#else\n    char_type __atoms[__atoms_size];\n    string __grouping = this->__stage2_int_prep(__iob, __atoms, __thousands_sep);\n#endif\n    string __buf;\n    __buf.resize(__buf.capacity());\n    char* __a = &__buf[0];\n    char* __a_end = __a;\n    unsigned __g[__num_get_base::__num_get_buf_sz];\n    unsigned* __g_end = __g;\n    unsigned __dc = 0;\n    for (; __b != __e; ++__b)\n    {\n        if (__a_end == __a + __buf.size())\n        {\n            size_t __tmp = __buf.size();\n            __buf.resize(2*__buf.size());\n            __buf.resize(__buf.capacity());\n            __a = &__buf[0];\n            __a_end = __a + __tmp;\n        }\n        if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc,\n                                    __thousands_sep, __grouping, __g, __g_end,\n                                    __atoms))\n            break;\n    }\n    if (__grouping.size() != 0 && __g_end-__g < __num_get_base::__num_get_buf_sz)\n        *__g_end++ = __dc;\n    // Stage 3\n    __v = __num_get_signed_integral<_Signed>(__a, __a_end, __err, __base);\n    // Digit grouping checked\n    __check_grouping(__grouping, __g, __g_end, __err);\n    // EOF checked\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    return __b;\n}\n\n// unsigned\n\ntemplate <class _CharT, class _InputIterator>\ntemplate <class _Unsigned>\n_InputIterator\nnum_get<_CharT, _InputIterator>::__do_get_unsigned(iter_type __b, iter_type __e,\n                                        ios_base& __iob,\n                                        ios_base::iostate& __err,\n                                        _Unsigned& __v) const\n{\n    // Stage 1\n    int __base = this->__get_base(__iob);\n    // Stage 2\n    char_type __thousands_sep;\n    const int __atoms_size = 26;\n#ifdef _LIBCPP_ABI_OPTIMIZED_LOCALE_NUM_GET\n    char_type __atoms1[__atoms_size];\n    const char_type *__atoms = this->__do_widen(__iob, __atoms1);\n    string __grouping = this->__stage2_int_prep(__iob, __thousands_sep);\n#else\n    char_type __atoms[__atoms_size];\n    string __grouping = this->__stage2_int_prep(__iob, __atoms, __thousands_sep);\n#endif\n    string __buf;\n    __buf.resize(__buf.capacity());\n    char* __a = &__buf[0];\n    char* __a_end = __a;\n    unsigned __g[__num_get_base::__num_get_buf_sz];\n    unsigned* __g_end = __g;\n    unsigned __dc = 0;\n    for (; __b != __e; ++__b)\n    {\n        if (__a_end == __a + __buf.size())\n        {\n            size_t __tmp = __buf.size();\n            __buf.resize(2*__buf.size());\n            __buf.resize(__buf.capacity());\n            __a = &__buf[0];\n            __a_end = __a + __tmp;\n        }\n        if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc,\n                                    __thousands_sep, __grouping, __g, __g_end,\n                                    __atoms))\n            break;\n    }\n    if (__grouping.size() != 0 && __g_end-__g < __num_get_base::__num_get_buf_sz)\n        *__g_end++ = __dc;\n    // Stage 3\n    __v = __num_get_unsigned_integral<_Unsigned>(__a, __a_end, __err, __base);\n    // Digit grouping checked\n    __check_grouping(__grouping, __g, __g_end, __err);\n    // EOF checked\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    return __b;\n}\n\n// floating point\n\ntemplate <class _CharT, class _InputIterator>\ntemplate <class _Fp>\n_InputIterator\nnum_get<_CharT, _InputIterator>::__do_get_floating_point(iter_type __b, iter_type __e,\n                                        ios_base& __iob,\n                                        ios_base::iostate& __err,\n                                        _Fp& __v) const\n{\n    // Stage 1, nothing to do\n    // Stage 2\n    char_type __atoms[32];\n    char_type __decimal_point;\n    char_type __thousands_sep;\n    string __grouping = this->__stage2_float_prep(__iob, __atoms,\n                                                  __decimal_point,\n                                                  __thousands_sep);\n    string __buf;\n    __buf.resize(__buf.capacity());\n    char* __a = &__buf[0];\n    char* __a_end = __a;\n    unsigned __g[__num_get_base::__num_get_buf_sz];\n    unsigned* __g_end = __g;\n    unsigned __dc = 0;\n    bool __in_units = true;\n    char __exp = 'E';\n    for (; __b != __e; ++__b)\n    {\n        if (__a_end == __a + __buf.size())\n        {\n            size_t __tmp = __buf.size();\n            __buf.resize(2*__buf.size());\n            __buf.resize(__buf.capacity());\n            __a = &__buf[0];\n            __a_end = __a + __tmp;\n        }\n        if (this->__stage2_float_loop(*__b, __in_units, __exp, __a, __a_end,\n                                      __decimal_point, __thousands_sep,\n                                      __grouping, __g, __g_end,\n                                      __dc, __atoms))\n            break;\n    }\n    if (__grouping.size() != 0 && __in_units && __g_end-__g < __num_get_base::__num_get_buf_sz)\n        *__g_end++ = __dc;\n    // Stage 3\n    __v = __num_get_float<_Fp>(__a, __a_end, __err);\n    // Digit grouping checked\n    __check_grouping(__grouping, __g, __g_end, __err);\n    // EOF checked\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    return __b;\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\nnum_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e,\n                                        ios_base& __iob,\n                                        ios_base::iostate& __err,\n                                        void*& __v) const\n{\n    // Stage 1\n    int __base = 16;\n    // Stage 2\n    char_type __atoms[26];\n    char_type __thousands_sep = 0;\n    string __grouping;\n    use_facet<ctype<_CharT> >(__iob.getloc()).widen(__num_get_base::__src,\n                                                    __num_get_base::__src + 26, __atoms);\n    string __buf;\n    __buf.resize(__buf.capacity());\n    char* __a = &__buf[0];\n    char* __a_end = __a;\n    unsigned __g[__num_get_base::__num_get_buf_sz];\n    unsigned* __g_end = __g;\n    unsigned __dc = 0;\n    for (; __b != __e; ++__b)\n    {\n        if (__a_end == __a + __buf.size())\n        {\n            size_t __tmp = __buf.size();\n            __buf.resize(2*__buf.size());\n            __buf.resize(__buf.capacity());\n            __a = &__buf[0];\n            __a_end = __a + __tmp;\n        }\n        if (this->__stage2_int_loop(*__b, __base, __a, __a_end, __dc,\n                                    __thousands_sep, __grouping,\n                                    __g, __g_end, __atoms))\n            break;\n    }\n    // Stage 3\n    __buf.resize(__a_end - __a);\n    if (__libcpp_sscanf_l(__buf.c_str(), _LIBCPP_GET_C_LOCALE, \"%p\", &__v) != 1)\n        __err = ios_base::failbit;\n    // EOF checked\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    return __b;\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_get<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_get<wchar_t>)\n\nstruct _LIBCPP_TYPE_VIS __num_put_base\n{\nprotected:\n    static void __format_int(char* __fmt, const char* __len, bool __signd,\n                             ios_base::fmtflags __flags);\n    static bool __format_float(char* __fmt, const char* __len,\n                               ios_base::fmtflags __flags);\n    static char* __identify_padding(char* __nb, char* __ne,\n                                    const ios_base& __iob);\n};\n\ntemplate <class _CharT>\nstruct __num_put\n    : protected __num_put_base\n{\n    static void __widen_and_group_int(char* __nb, char* __np, char* __ne,\n                                      _CharT* __ob, _CharT*& __op, _CharT*& __oe,\n                                      const locale& __loc);\n    static void __widen_and_group_float(char* __nb, char* __np, char* __ne,\n                                        _CharT* __ob, _CharT*& __op, _CharT*& __oe,\n                                        const locale& __loc);\n};\n\ntemplate <class _CharT>\nvoid\n__num_put<_CharT>::__widen_and_group_int(char* __nb, char* __np, char* __ne,\n                                         _CharT* __ob, _CharT*& __op, _CharT*& __oe,\n                                         const locale& __loc)\n{\n    const ctype<_CharT>&    __ct = use_facet<ctype<_CharT> >   (__loc);\n    const numpunct<_CharT>& __npt = use_facet<numpunct<_CharT> >(__loc);\n    string __grouping = __npt.grouping();\n    if (__grouping.empty())\n    {\n        __ct.widen(__nb, __ne, __ob);\n        __oe = __ob + (__ne - __nb);\n    }\n    else\n    {\n        __oe = __ob;\n        char* __nf = __nb;\n        if (*__nf == '-' || *__nf == '+')\n            *__oe++ = __ct.widen(*__nf++);\n        if (__ne - __nf >= 2 && __nf[0] == '0' && (__nf[1] == 'x' ||\n                                                   __nf[1] == 'X'))\n        {\n            *__oe++ = __ct.widen(*__nf++);\n            *__oe++ = __ct.widen(*__nf++);\n        }\n        reverse(__nf, __ne);\n        _CharT __thousands_sep = __npt.thousands_sep();\n        unsigned __dc = 0;\n        unsigned __dg = 0;\n        for (char* __p = __nf; __p < __ne; ++__p)\n        {\n            if (static_cast<unsigned>(__grouping[__dg]) > 0 &&\n                __dc == static_cast<unsigned>(__grouping[__dg]))\n            {\n                *__oe++ = __thousands_sep;\n                __dc = 0;\n                if (__dg < __grouping.size()-1)\n                    ++__dg;\n            }\n            *__oe++ = __ct.widen(*__p);\n            ++__dc;\n        }\n        reverse(__ob + (__nf - __nb), __oe);\n    }\n    if (__np == __ne)\n        __op = __oe;\n    else\n        __op = __ob + (__np - __nb);\n}\n\ntemplate <class _CharT>\nvoid\n__num_put<_CharT>::__widen_and_group_float(char* __nb, char* __np, char* __ne,\n                                           _CharT* __ob, _CharT*& __op, _CharT*& __oe,\n                                           const locale& __loc)\n{\n    const ctype<_CharT>&    __ct = use_facet<ctype<_CharT> >   (__loc);\n    const numpunct<_CharT>& __npt = use_facet<numpunct<_CharT> >(__loc);\n    string __grouping = __npt.grouping();\n    __oe = __ob;\n    char* __nf = __nb;\n    if (*__nf == '-' || *__nf == '+')\n        *__oe++ = __ct.widen(*__nf++);\n    char* __ns;\n    if (__ne - __nf >= 2 && __nf[0] == '0' && (__nf[1] == 'x' ||\n                                               __nf[1] == 'X'))\n    {\n        *__oe++ = __ct.widen(*__nf++);\n        *__oe++ = __ct.widen(*__nf++);\n        for (__ns = __nf; __ns < __ne; ++__ns)\n            if (!isxdigit_l(*__ns, _LIBCPP_GET_C_LOCALE))\n                break;\n    }\n    else\n    {\n        for (__ns = __nf; __ns < __ne; ++__ns)\n            if (!isdigit_l(*__ns, _LIBCPP_GET_C_LOCALE))\n                break;\n    }\n    if (__grouping.empty())\n    {\n        __ct.widen(__nf, __ns, __oe);\n        __oe += __ns - __nf;\n    }\n    else\n    {\n        reverse(__nf, __ns);\n        _CharT __thousands_sep = __npt.thousands_sep();\n        unsigned __dc = 0;\n        unsigned __dg = 0;\n        for (char* __p = __nf; __p < __ns; ++__p)\n        {\n            if (__grouping[__dg] > 0 && __dc == static_cast<unsigned>(__grouping[__dg]))\n            {\n                *__oe++ = __thousands_sep;\n                __dc = 0;\n                if (__dg < __grouping.size()-1)\n                    ++__dg;\n            }\n            *__oe++ = __ct.widen(*__p);\n            ++__dc;\n        }\n        reverse(__ob + (__nf - __nb), __oe);\n    }\n    for (__nf = __ns; __nf < __ne; ++__nf)\n    {\n        if (*__nf == '.')\n        {\n            *__oe++ = __npt.decimal_point();\n            ++__nf;\n            break;\n        }\n        else\n            *__oe++ = __ct.widen(*__nf);\n    }\n    __ct.widen(__nf, __ne, __oe);\n    __oe += __ne - __nf;\n    if (__np == __ne)\n        __op = __oe;\n    else\n        __op = __ob + (__np - __nb);\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<char>)\n_LIBCPP_EXTERN_TEMPLATE2(struct _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __num_put<wchar_t>)\n\ntemplate <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS num_put\n    : public locale::facet,\n      private __num_put<_CharT>\n{\npublic:\n    typedef _CharT char_type;\n    typedef _OutputIterator iter_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit num_put(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  bool __v) const\n    {\n        return do_put(__s, __iob, __fl, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  long __v) const\n    {\n        return do_put(__s, __iob, __fl, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  long long __v) const\n    {\n        return do_put(__s, __iob, __fl, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  unsigned long __v) const\n    {\n        return do_put(__s, __iob, __fl, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  unsigned long long __v) const\n    {\n        return do_put(__s, __iob, __fl, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  double __v) const\n    {\n        return do_put(__s, __iob, __fl, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  long double __v) const\n    {\n        return do_put(__s, __iob, __fl, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  const void* __v) const\n    {\n        return do_put(__s, __iob, __fl, __v);\n    }\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~num_put() {}\n\n    virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl,\n                             bool __v) const;\n    virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl,\n                             long __v) const;\n    virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl,\n                             long long __v) const;\n    virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl,\n                             unsigned long) const;\n    virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl,\n                             unsigned long long) const;\n    virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl,\n                             double __v) const;\n    virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl,\n                             long double __v) const;\n    virtual iter_type do_put(iter_type __s, ios_base& __iob, char_type __fl,\n                             const void* __v) const;\n};\n\ntemplate <class _CharT, class _OutputIterator>\nlocale::id\nnum_put<_CharT, _OutputIterator>::id;\n\ntemplate <class _CharT, class _OutputIterator>\n_LIBCPP_HIDDEN\n_OutputIterator\n__pad_and_output(_OutputIterator __s,\n                 const _CharT* __ob, const _CharT* __op, const _CharT* __oe,\n                 ios_base& __iob, _CharT __fl)\n{\n    streamsize __sz = __oe - __ob;\n    streamsize __ns = __iob.width();\n    if (__ns > __sz)\n        __ns -= __sz;\n    else\n        __ns = 0;\n    for (;__ob < __op; ++__ob, ++__s)\n        *__s = *__ob;\n    for (; __ns; --__ns, ++__s)\n        *__s = __fl;\n    for (; __ob < __oe; ++__ob, ++__s)\n        *__s = *__ob;\n    __iob.width(0);\n    return __s;\n}\n\n#if !defined(__APPLE__) || \\\n    (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_8) || \\\n    (defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_0)\n\ntemplate <class _CharT, class _Traits>\n_LIBCPP_HIDDEN\nostreambuf_iterator<_CharT, _Traits>\n__pad_and_output(ostreambuf_iterator<_CharT, _Traits> __s,\n                 const _CharT* __ob, const _CharT* __op, const _CharT* __oe,\n                 ios_base& __iob, _CharT __fl)\n{\n    if (__s.__sbuf_ == nullptr)\n        return __s;\n    streamsize __sz = __oe - __ob;\n    streamsize __ns = __iob.width();\n    if (__ns > __sz)\n        __ns -= __sz;\n    else\n        __ns = 0;\n    streamsize __np = __op - __ob;\n    if (__np > 0)\n    {\n        if (__s.__sbuf_->sputn(__ob, __np) != __np)\n        {\n            __s.__sbuf_ = nullptr;\n            return __s;\n        }\n    }\n    if (__ns > 0)\n    {\n        basic_string<_CharT, _Traits> __sp(__ns, __fl);\n        if (__s.__sbuf_->sputn(__sp.data(), __ns) != __ns)\n        {\n            __s.__sbuf_ = nullptr;\n            return __s;\n        }\n    }\n    __np = __oe - __op;\n    if (__np > 0)\n    {\n        if (__s.__sbuf_->sputn(__op, __np) != __np)\n        {\n            __s.__sbuf_ = nullptr;\n            return __s;\n        }\n    }\n    __iob.width(0);\n    return __s;\n}\n\n#endif\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nnum_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,\n                                         char_type __fl, bool __v) const\n{\n    if ((__iob.flags() & ios_base::boolalpha) == 0)\n        return do_put(__s, __iob, __fl, (unsigned long)__v);\n    const numpunct<char_type>& __np = use_facet<numpunct<char_type> >(__iob.getloc());\n    typedef typename numpunct<char_type>::string_type string_type;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    string_type __tmp(__v ? __np.truename() : __np.falsename());\n    string_type __nm = _VSTD::move(__tmp);\n#else\n    string_type __nm = __v ? __np.truename() : __np.falsename();\n#endif\n    for (typename string_type::iterator __i = __nm.begin(); __i != __nm.end(); ++__i, ++__s)\n        *__s = *__i;\n    return __s;\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nnum_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,\n                                         char_type __fl, long __v) const\n{\n    // Stage 1 - Get number in narrow char\n    char __fmt[6] = {'%', 0};\n    const char* __len = \"l\";\n    this->__format_int(__fmt+1, __len, true, __iob.flags());\n    const unsigned __nbuf = (numeric_limits<long>::digits / 3)\n                          + ((numeric_limits<long>::digits % 3) != 0)\n                          + ((__iob.flags() & ios_base::showbase) != 0)\n                          + 2;\n    char __nar[__nbuf];\n    int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v);\n    char* __ne = __nar + __nc;\n    char* __np = this->__identify_padding(__nar, __ne, __iob);\n    // Stage 2 - Widen __nar while adding thousands separators\n    char_type __o[2*(__nbuf-1) - 1];\n    char_type* __op;  // pad here\n    char_type* __oe;  // end of output\n    this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc());\n    // [__o, __oe) contains thousands_sep'd wide number\n    // Stage 3 & 4\n    return __pad_and_output(__s, __o, __op, __oe, __iob, __fl);\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nnum_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,\n                                         char_type __fl, long long __v) const\n{\n    // Stage 1 - Get number in narrow char\n    char __fmt[8] = {'%', 0};\n    const char* __len = \"ll\";\n    this->__format_int(__fmt+1, __len, true, __iob.flags());\n    const unsigned __nbuf = (numeric_limits<long long>::digits / 3)\n                          + ((numeric_limits<long long>::digits % 3) != 0)\n                          + ((__iob.flags() & ios_base::showbase) != 0)\n                          + 2;\n    char __nar[__nbuf];\n    int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v);\n    char* __ne = __nar + __nc;\n    char* __np = this->__identify_padding(__nar, __ne, __iob);\n    // Stage 2 - Widen __nar while adding thousands separators\n    char_type __o[2*(__nbuf-1) - 1];\n    char_type* __op;  // pad here\n    char_type* __oe;  // end of output\n    this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc());\n    // [__o, __oe) contains thousands_sep'd wide number\n    // Stage 3 & 4\n    return __pad_and_output(__s, __o, __op, __oe, __iob, __fl);\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nnum_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,\n                                         char_type __fl, unsigned long __v) const\n{\n    // Stage 1 - Get number in narrow char\n    char __fmt[6] = {'%', 0};\n    const char* __len = \"l\";\n    this->__format_int(__fmt+1, __len, false, __iob.flags());\n    const unsigned __nbuf = (numeric_limits<unsigned long>::digits / 3)\n                          + ((numeric_limits<unsigned long>::digits % 3) != 0)\n                          + ((__iob.flags() & ios_base::showbase) != 0)\n                          + 1;\n    char __nar[__nbuf];\n    int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v);\n    char* __ne = __nar + __nc;\n    char* __np = this->__identify_padding(__nar, __ne, __iob);\n    // Stage 2 - Widen __nar while adding thousands separators\n    char_type __o[2*(__nbuf-1) - 1];\n    char_type* __op;  // pad here\n    char_type* __oe;  // end of output\n    this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc());\n    // [__o, __oe) contains thousands_sep'd wide number\n    // Stage 3 & 4\n    return __pad_and_output(__s, __o, __op, __oe, __iob, __fl);\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nnum_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,\n                                         char_type __fl, unsigned long long __v) const\n{\n    // Stage 1 - Get number in narrow char\n    char __fmt[8] = {'%', 0};\n    const char* __len = \"ll\";\n    this->__format_int(__fmt+1, __len, false, __iob.flags());\n    const unsigned __nbuf = (numeric_limits<unsigned long long>::digits / 3)\n                          + ((numeric_limits<unsigned long long>::digits % 3) != 0)\n                          + ((__iob.flags() & ios_base::showbase) != 0)\n                          + 1;\n    char __nar[__nbuf];\n    int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v);\n    char* __ne = __nar + __nc;\n    char* __np = this->__identify_padding(__nar, __ne, __iob);\n    // Stage 2 - Widen __nar while adding thousands separators\n    char_type __o[2*(__nbuf-1) - 1];\n    char_type* __op;  // pad here\n    char_type* __oe;  // end of output\n    this->__widen_and_group_int(__nar, __np, __ne, __o, __op, __oe, __iob.getloc());\n    // [__o, __oe) contains thousands_sep'd wide number\n    // Stage 3 & 4\n    return __pad_and_output(__s, __o, __op, __oe, __iob, __fl);\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nnum_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,\n                                         char_type __fl, double __v) const\n{\n    // Stage 1 - Get number in narrow char\n    char __fmt[8] = {'%', 0};\n    const char* __len = \"\";\n    bool __specify_precision = this->__format_float(__fmt+1, __len, __iob.flags());\n    const unsigned __nbuf = 30;\n    char __nar[__nbuf];\n    char* __nb = __nar;\n    int __nc;\n    if (__specify_precision)\n        __nc = __libcpp_snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt,\n                                   (int)__iob.precision(), __v);\n    else\n        __nc = __libcpp_snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, __v);\n    unique_ptr<char, void(*)(void*)> __nbh(0, free);\n    if (__nc > static_cast<int>(__nbuf-1))\n    {\n        if (__specify_precision)\n            __nc = __libcpp_asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, (int)__iob.precision(), __v);\n        else\n            __nc = __libcpp_asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, __v);\n        if (__nb == 0)\n            __throw_bad_alloc();\n        __nbh.reset(__nb);\n    }\n    char* __ne = __nb + __nc;\n    char* __np = this->__identify_padding(__nb, __ne, __iob);\n    // Stage 2 - Widen __nar while adding thousands separators\n    char_type __o[2*(__nbuf-1) - 1];\n    char_type* __ob = __o;\n    unique_ptr<char_type, void(*)(void*)> __obh(0, free);\n    if (__nb != __nar)\n    {\n        __ob = (char_type*)malloc(2*static_cast<size_t>(__nc)*sizeof(char_type));\n        if (__ob == 0)\n            __throw_bad_alloc();\n        __obh.reset(__ob);\n    }\n    char_type* __op;  // pad here\n    char_type* __oe;  // end of output\n    this->__widen_and_group_float(__nb, __np, __ne, __ob, __op, __oe, __iob.getloc());\n    // [__o, __oe) contains thousands_sep'd wide number\n    // Stage 3 & 4\n    __s = __pad_and_output(__s, __ob, __op, __oe, __iob, __fl);\n    return __s;\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nnum_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,\n                                         char_type __fl, long double __v) const\n{\n    // Stage 1 - Get number in narrow char\n    char __fmt[8] = {'%', 0};\n    const char* __len = \"L\";\n    bool __specify_precision = this->__format_float(__fmt+1, __len, __iob.flags());\n    const unsigned __nbuf = 30;\n    char __nar[__nbuf];\n    char* __nb = __nar;\n    int __nc;\n    if (__specify_precision)\n        __nc = __libcpp_snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt,\n                                   (int)__iob.precision(), __v);\n    else\n        __nc = __libcpp_snprintf_l(__nb, __nbuf, _LIBCPP_GET_C_LOCALE, __fmt, __v);\n    unique_ptr<char, void(*)(void*)> __nbh(0, free);\n    if (__nc > static_cast<int>(__nbuf-1))\n    {\n        if (__specify_precision)\n            __nc = __libcpp_asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, (int)__iob.precision(), __v);\n        else\n            __nc = __libcpp_asprintf_l(&__nb, _LIBCPP_GET_C_LOCALE, __fmt, __v);\n        if (__nb == 0)\n            __throw_bad_alloc();\n        __nbh.reset(__nb);\n    }\n    char* __ne = __nb + __nc;\n    char* __np = this->__identify_padding(__nb, __ne, __iob);\n    // Stage 2 - Widen __nar while adding thousands separators\n    char_type __o[2*(__nbuf-1) - 1];\n    char_type* __ob = __o;\n    unique_ptr<char_type, void(*)(void*)> __obh(0, free);\n    if (__nb != __nar)\n    {\n        __ob = (char_type*)malloc(2*static_cast<size_t>(__nc)*sizeof(char_type));\n        if (__ob == 0)\n            __throw_bad_alloc();\n        __obh.reset(__ob);\n    }\n    char_type* __op;  // pad here\n    char_type* __oe;  // end of output\n    this->__widen_and_group_float(__nb, __np, __ne, __ob, __op, __oe, __iob.getloc());\n    // [__o, __oe) contains thousands_sep'd wide number\n    // Stage 3 & 4\n    __s = __pad_and_output(__s, __ob, __op, __oe, __iob, __fl);\n    return __s;\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nnum_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base& __iob,\n                                         char_type __fl, const void* __v) const\n{\n    // Stage 1 - Get pointer in narrow char\n    char __fmt[6] = \"%p\";\n    const unsigned __nbuf = 20;\n    char __nar[__nbuf];\n    int __nc = __libcpp_snprintf_l(__nar, sizeof(__nar), _LIBCPP_GET_C_LOCALE, __fmt, __v);\n    char* __ne = __nar + __nc;\n    char* __np = this->__identify_padding(__nar, __ne, __iob);\n    // Stage 2 - Widen __nar\n    char_type __o[2*(__nbuf-1) - 1];\n    char_type* __op;  // pad here\n    char_type* __oe;  // end of output\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc());\n    __ct.widen(__nar, __ne, __o);\n    __oe = __o + (__ne - __nar);\n    if (__np == __ne)\n        __op = __oe;\n    else\n        __op = __o + (__np - __nar);\n    // [__o, __oe) contains wide number\n    // Stage 3 & 4\n    return __pad_and_output(__s, __o, __op, __oe, __iob, __fl);\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_put<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS num_put<wchar_t>)\n\ntemplate <class _CharT, class _InputIterator>\n_LIBCPP_HIDDEN\nint\n__get_up_to_n_digits(_InputIterator& __b, _InputIterator __e,\n                     ios_base::iostate& __err, const ctype<_CharT>& __ct, int __n)\n{\n    // Precondition:  __n >= 1\n    if (__b == __e)\n    {\n        __err |= ios_base::eofbit | ios_base::failbit;\n        return 0;\n    }\n    // get first digit\n    _CharT __c = *__b;\n    if (!__ct.is(ctype_base::digit, __c))\n    {\n        __err |= ios_base::failbit;\n        return 0;\n    }\n    int __r = __ct.narrow(__c, 0) - '0';\n    for (++__b, (void) --__n; __b != __e && __n > 0; ++__b, (void) --__n)\n    {\n        // get next digit\n        __c = *__b;\n        if (!__ct.is(ctype_base::digit, __c))\n            return __r;\n        __r = __r * 10 + __ct.narrow(__c, 0) - '0';\n    }\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    return __r;\n}\n\nclass _LIBCPP_TYPE_VIS time_base\n{\npublic:\n    enum dateorder {no_order, dmy, mdy, ymd, ydm};\n};\n\ntemplate <class _CharT>\nclass _LIBCPP_TEMPLATE_VIS __time_get_c_storage\n{\nprotected:\n    typedef basic_string<_CharT> string_type;\n\n    virtual const string_type* __weeks() const;\n    virtual const string_type* __months() const;\n    virtual const string_type* __am_pm() const;\n    virtual const string_type& __c() const;\n    virtual const string_type& __r() const;\n    virtual const string_type& __x() const;\n    virtual const string_type& __X() const;\n\n    _LIBCPP_ALWAYS_INLINE\n    ~__time_get_c_storage() {}\n};\n\ntemplate <> _LIBCPP_FUNC_VIS const string* __time_get_c_storage<char>::__weeks() const;\ntemplate <> _LIBCPP_FUNC_VIS const string* __time_get_c_storage<char>::__months() const;\ntemplate <> _LIBCPP_FUNC_VIS const string* __time_get_c_storage<char>::__am_pm() const;\ntemplate <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage<char>::__c() const;\ntemplate <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage<char>::__r() const;\ntemplate <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage<char>::__x() const;\ntemplate <> _LIBCPP_FUNC_VIS const string& __time_get_c_storage<char>::__X() const;\n\ntemplate <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage<wchar_t>::__weeks() const;\ntemplate <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage<wchar_t>::__months() const;\ntemplate <> _LIBCPP_FUNC_VIS const wstring* __time_get_c_storage<wchar_t>::__am_pm() const;\ntemplate <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage<wchar_t>::__c() const;\ntemplate <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage<wchar_t>::__r() const;\ntemplate <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage<wchar_t>::__x() const;\ntemplate <> _LIBCPP_FUNC_VIS const wstring& __time_get_c_storage<wchar_t>::__X() const;\n\ntemplate <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS time_get\n    : public locale::facet,\n      public time_base,\n      private __time_get_c_storage<_CharT>\n{\npublic:\n    typedef _CharT                  char_type;\n    typedef _InputIterator          iter_type;\n    typedef time_base::dateorder    dateorder;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit time_get(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    dateorder date_order() const\n    {\n        return this->do_date_order();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get_time(iter_type __b, iter_type __e, ios_base& __iob,\n                       ios_base::iostate& __err, tm* __tm) const\n    {\n        return do_get_time(__b, __e, __iob, __err, __tm);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get_date(iter_type __b, iter_type __e, ios_base& __iob,\n                       ios_base::iostate& __err, tm* __tm) const\n    {\n        return do_get_date(__b, __e, __iob, __err, __tm);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get_weekday(iter_type __b, iter_type __e, ios_base& __iob,\n                          ios_base::iostate& __err, tm* __tm) const\n    {\n        return do_get_weekday(__b, __e, __iob, __err, __tm);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get_monthname(iter_type __b, iter_type __e, ios_base& __iob,\n                            ios_base::iostate& __err, tm* __tm) const\n    {\n        return do_get_monthname(__b, __e, __iob, __err, __tm);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get_year(iter_type __b, iter_type __e, ios_base& __iob,\n                       ios_base::iostate& __err, tm* __tm) const\n    {\n        return do_get_year(__b, __e, __iob, __err, __tm);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, tm *__tm,\n                  char __fmt, char __mod = 0) const\n    {\n        return do_get(__b, __e, __iob, __err, __tm, __fmt, __mod);\n    }\n\n    iter_type get(iter_type __b, iter_type __e, ios_base& __iob,\n                  ios_base::iostate& __err, tm* __tm,\n                  const char_type* __fmtb, const char_type* __fmte) const;\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~time_get() {}\n\n    virtual dateorder do_date_order() const;\n    virtual iter_type do_get_time(iter_type __b, iter_type __e, ios_base& __iob,\n                                  ios_base::iostate& __err, tm* __tm) const;\n    virtual iter_type do_get_date(iter_type __b, iter_type __e, ios_base& __iob,\n                                  ios_base::iostate& __err, tm* __tm) const;\n    virtual iter_type do_get_weekday(iter_type __b, iter_type __e, ios_base& __iob,\n                                     ios_base::iostate& __err, tm* __tm) const;\n    virtual iter_type do_get_monthname(iter_type __b, iter_type __e, ios_base& __iob,\n                                       ios_base::iostate& __err, tm* __tm) const;\n    virtual iter_type do_get_year(iter_type __b, iter_type __e, ios_base& __iob,\n                                  ios_base::iostate& __err, tm* __tm) const;\n    virtual iter_type do_get(iter_type __b, iter_type __e, ios_base& __iob,\n                             ios_base::iostate& __err, tm* __tm,\n                             char __fmt, char __mod) const;\nprivate:\n    void __get_white_space(iter_type& __b, iter_type __e,\n                           ios_base::iostate& __err, const ctype<char_type>& __ct) const;\n    void __get_percent(iter_type& __b, iter_type __e, ios_base::iostate& __err,\n                       const ctype<char_type>& __ct) const;\n\n    void __get_weekdayname(int& __m,\n                           iter_type& __b, iter_type __e,\n                           ios_base::iostate& __err,\n                           const ctype<char_type>& __ct) const;\n    void __get_monthname(int& __m,\n                         iter_type& __b, iter_type __e,\n                         ios_base::iostate& __err,\n                         const ctype<char_type>& __ct) const;\n    void __get_day(int& __d,\n                   iter_type& __b, iter_type __e,\n                   ios_base::iostate& __err,\n                   const ctype<char_type>& __ct) const;\n    void __get_month(int& __m,\n                     iter_type& __b, iter_type __e,\n                     ios_base::iostate& __err,\n                     const ctype<char_type>& __ct) const;\n    void __get_year(int& __y,\n                   iter_type& __b, iter_type __e,\n                   ios_base::iostate& __err,\n                   const ctype<char_type>& __ct) const;\n    void __get_year4(int& __y,\n                    iter_type& __b, iter_type __e,\n                    ios_base::iostate& __err,\n                    const ctype<char_type>& __ct) const;\n    void __get_hour(int& __d,\n                    iter_type& __b, iter_type __e,\n                    ios_base::iostate& __err,\n                    const ctype<char_type>& __ct) const;\n    void __get_12_hour(int& __h,\n                       iter_type& __b, iter_type __e,\n                       ios_base::iostate& __err,\n                       const ctype<char_type>& __ct) const;\n    void __get_am_pm(int& __h,\n                     iter_type& __b, iter_type __e,\n                     ios_base::iostate& __err,\n                     const ctype<char_type>& __ct) const;\n    void __get_minute(int& __m,\n                      iter_type& __b, iter_type __e,\n                      ios_base::iostate& __err,\n                      const ctype<char_type>& __ct) const;\n    void __get_second(int& __s,\n                      iter_type& __b, iter_type __e,\n                      ios_base::iostate& __err,\n                      const ctype<char_type>& __ct) const;\n    void __get_weekday(int& __w,\n                       iter_type& __b, iter_type __e,\n                       ios_base::iostate& __err,\n                       const ctype<char_type>& __ct) const;\n    void __get_day_year_num(int& __w,\n                            iter_type& __b, iter_type __e,\n                            ios_base::iostate& __err,\n                            const ctype<char_type>& __ct) const;\n};\n\ntemplate <class _CharT, class _InputIterator>\nlocale::id\ntime_get<_CharT, _InputIterator>::id;\n\n// time_get primitives\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_weekdayname(int& __w,\n                                                    iter_type& __b, iter_type __e,\n                                                    ios_base::iostate& __err,\n                                                    const ctype<char_type>& __ct) const\n{\n    // Note:  ignoring case comes from the POSIX strptime spec\n    const string_type* __wk = this->__weeks();\n    ptrdiff_t __i = __scan_keyword(__b, __e, __wk, __wk+14, __ct, __err, false) - __wk;\n    if (__i < 14)\n        __w = __i % 7;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_monthname(int& __m,\n                                                  iter_type& __b, iter_type __e,\n                                                  ios_base::iostate& __err,\n                                                  const ctype<char_type>& __ct) const\n{\n    // Note:  ignoring case comes from the POSIX strptime spec\n    const string_type* __month = this->__months();\n    ptrdiff_t __i = __scan_keyword(__b, __e, __month, __month+24, __ct, __err, false) - __month;\n    if (__i < 24)\n        __m = __i % 12;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_day(int& __d,\n                                            iter_type& __b, iter_type __e,\n                                            ios_base::iostate& __err,\n                                            const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2);\n    if (!(__err & ios_base::failbit) && 1 <= __t && __t <= 31)\n        __d = __t;\n    else\n        __err |= ios_base::failbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_month(int& __m,\n                                              iter_type& __b, iter_type __e,\n                                              ios_base::iostate& __err,\n                                              const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2) - 1;\n    if (!(__err & ios_base::failbit) && __t <= 11)\n        __m = __t;\n    else\n        __err |= ios_base::failbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_year(int& __y,\n                                             iter_type& __b, iter_type __e,\n                                             ios_base::iostate& __err,\n                                             const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 4);\n    if (!(__err & ios_base::failbit))\n    {\n        if (__t < 69)\n            __t += 2000;\n        else if (69 <= __t && __t <= 99)\n            __t += 1900;\n        __y = __t - 1900;\n    }\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_year4(int& __y,\n                                              iter_type& __b, iter_type __e,\n                                              ios_base::iostate& __err,\n                                              const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 4);\n    if (!(__err & ios_base::failbit))\n        __y = __t - 1900;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_hour(int& __h,\n                                             iter_type& __b, iter_type __e,\n                                             ios_base::iostate& __err,\n                                             const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2);\n    if (!(__err & ios_base::failbit) && __t <= 23)\n        __h = __t;\n    else\n        __err |= ios_base::failbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_12_hour(int& __h,\n                                                iter_type& __b, iter_type __e,\n                                                ios_base::iostate& __err,\n                                                const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2);\n    if (!(__err & ios_base::failbit) && 1 <= __t && __t <= 12)\n        __h = __t;\n    else\n        __err |= ios_base::failbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_minute(int& __m,\n                                               iter_type& __b, iter_type __e,\n                                               ios_base::iostate& __err,\n                                               const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2);\n    if (!(__err & ios_base::failbit) && __t <= 59)\n        __m = __t;\n    else\n        __err |= ios_base::failbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_second(int& __s,\n                                               iter_type& __b, iter_type __e,\n                                               ios_base::iostate& __err,\n                                               const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 2);\n    if (!(__err & ios_base::failbit) && __t <= 60)\n        __s = __t;\n    else\n        __err |= ios_base::failbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_weekday(int& __w,\n                                                iter_type& __b, iter_type __e,\n                                                ios_base::iostate& __err,\n                                                const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 1);\n    if (!(__err & ios_base::failbit) && __t <= 6)\n        __w = __t;\n    else\n        __err |= ios_base::failbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_day_year_num(int& __d,\n                                                     iter_type& __b, iter_type __e,\n                                                     ios_base::iostate& __err,\n                                                     const ctype<char_type>& __ct) const\n{\n    int __t = __get_up_to_n_digits(__b, __e, __err, __ct, 3);\n    if (!(__err & ios_base::failbit) && __t <= 365)\n        __d = __t;\n    else\n        __err |= ios_base::failbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_white_space(iter_type& __b, iter_type __e,\n                                                    ios_base::iostate& __err,\n                                                    const ctype<char_type>& __ct) const\n{\n    for (; __b != __e && __ct.is(ctype_base::space, *__b); ++__b)\n        ;\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_am_pm(int& __h,\n                                              iter_type& __b, iter_type __e,\n                                              ios_base::iostate& __err,\n                                              const ctype<char_type>& __ct) const\n{\n    const string_type* __ap = this->__am_pm();\n    if (__ap[0].size() + __ap[1].size() == 0)\n    {\n        __err |= ios_base::failbit;\n        return;\n    }\n    ptrdiff_t __i = __scan_keyword(__b, __e, __ap, __ap+2, __ct, __err, false) - __ap;\n    if (__i == 0 && __h == 12)\n        __h = 0;\n    else if (__i == 1 && __h < 12)\n        __h += 12;\n}\n\ntemplate <class _CharT, class _InputIterator>\nvoid\ntime_get<_CharT, _InputIterator>::__get_percent(iter_type& __b, iter_type __e,\n                                                ios_base::iostate& __err,\n                                                const ctype<char_type>& __ct) const\n{\n    if (__b == __e)\n    {\n        __err |= ios_base::eofbit | ios_base::failbit;\n        return;\n    }\n    if (__ct.narrow(*__b, 0) != '%')\n        __err |= ios_base::failbit;\n    else if(++__b == __e)\n        __err |= ios_base::eofbit;\n}\n\n// time_get end primitives\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\ntime_get<_CharT, _InputIterator>::get(iter_type __b, iter_type __e,\n                                      ios_base& __iob,\n                                      ios_base::iostate& __err, tm* __tm,\n                                      const char_type* __fmtb, const char_type* __fmte) const\n{\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc());\n    __err = ios_base::goodbit;\n    while (__fmtb != __fmte && __err == ios_base::goodbit)\n    {\n        if (__b == __e)\n        {\n            __err = ios_base::failbit;\n            break;\n        }\n        if (__ct.narrow(*__fmtb, 0) == '%')\n        {\n            if (++__fmtb == __fmte)\n            {\n                __err = ios_base::failbit;\n                break;\n            }\n            char __cmd = __ct.narrow(*__fmtb, 0);\n            char __opt = '\\0';\n            if (__cmd == 'E' || __cmd == '0')\n            {\n                if (++__fmtb == __fmte)\n                {\n                    __err = ios_base::failbit;\n                    break;\n                }\n                __opt = __cmd;\n                __cmd = __ct.narrow(*__fmtb, 0);\n            }\n            __b = do_get(__b, __e, __iob, __err, __tm, __cmd, __opt);\n            ++__fmtb;\n        }\n        else if (__ct.is(ctype_base::space, *__fmtb))\n        {\n            for (++__fmtb; __fmtb != __fmte && __ct.is(ctype_base::space, *__fmtb); ++__fmtb)\n                ;\n            for (        ;    __b != __e    && __ct.is(ctype_base::space, *__b);    ++__b)\n                ;\n        }\n        else if (__ct.toupper(*__b) == __ct.toupper(*__fmtb))\n        {\n            ++__b;\n            ++__fmtb;\n        }\n        else\n            __err = ios_base::failbit;\n    }\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    return __b;\n}\n\ntemplate <class _CharT, class _InputIterator>\ntypename time_get<_CharT, _InputIterator>::dateorder\ntime_get<_CharT, _InputIterator>::do_date_order() const\n{\n    return mdy;\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\ntime_get<_CharT, _InputIterator>::do_get_time(iter_type __b, iter_type __e,\n                                              ios_base& __iob,\n                                              ios_base::iostate& __err,\n                                              tm* __tm) const\n{\n    const char_type __fmt[] = {'%', 'H', ':', '%', 'M', ':', '%', 'S'};\n    return get(__b, __e, __iob, __err, __tm, __fmt, __fmt + sizeof(__fmt)/sizeof(__fmt[0]));\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\ntime_get<_CharT, _InputIterator>::do_get_date(iter_type __b, iter_type __e,\n                                              ios_base& __iob,\n                                              ios_base::iostate& __err,\n                                              tm* __tm) const\n{\n    const string_type& __fmt = this->__x();\n    return get(__b, __e, __iob, __err, __tm, __fmt.data(), __fmt.data() + __fmt.size());\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\ntime_get<_CharT, _InputIterator>::do_get_weekday(iter_type __b, iter_type __e,\n                                                 ios_base& __iob,\n                                                 ios_base::iostate& __err,\n                                                 tm* __tm) const\n{\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc());\n    __get_weekdayname(__tm->tm_wday, __b, __e, __err, __ct);\n    return __b;\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\ntime_get<_CharT, _InputIterator>::do_get_monthname(iter_type __b, iter_type __e,\n                                                   ios_base& __iob,\n                                                   ios_base::iostate& __err,\n                                                   tm* __tm) const\n{\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc());\n    __get_monthname(__tm->tm_mon, __b, __e, __err, __ct);\n    return __b;\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\ntime_get<_CharT, _InputIterator>::do_get_year(iter_type __b, iter_type __e,\n                                              ios_base& __iob,\n                                              ios_base::iostate& __err,\n                                              tm* __tm) const\n{\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc());\n    __get_year(__tm->tm_year, __b, __e, __err, __ct);\n    return __b;\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\ntime_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e,\n                                         ios_base& __iob,\n                                         ios_base::iostate& __err, tm* __tm,\n                                         char __fmt, char) const\n{\n    __err = ios_base::goodbit;\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc());\n    switch (__fmt)\n    {\n    case 'a':\n    case 'A':\n        __get_weekdayname(__tm->tm_wday, __b, __e, __err, __ct);\n        break;\n    case 'b':\n    case 'B':\n    case 'h':\n        __get_monthname(__tm->tm_mon, __b, __e, __err, __ct);\n        break;\n    case 'c':\n        {\n        const string_type& __fm = this->__c();\n        __b = get(__b, __e, __iob, __err, __tm, __fm.data(), __fm.data() + __fm.size());\n        }\n        break;\n    case 'd':\n    case 'e':\n        __get_day(__tm->tm_mday, __b, __e, __err, __ct);\n        break;\n    case 'D':\n        {\n        const char_type __fm[] = {'%', 'm', '/', '%', 'd', '/', '%', 'y'};\n        __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0]));\n        }\n        break;\n    case 'F':\n        {\n        const char_type __fm[] = {'%', 'Y', '-', '%', 'm', '-', '%', 'd'};\n        __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0]));\n        }\n        break;\n    case 'H':\n        __get_hour(__tm->tm_hour, __b, __e, __err, __ct);\n        break;\n    case 'I':\n        __get_12_hour(__tm->tm_hour, __b, __e, __err, __ct);\n        break;\n    case 'j':\n        __get_day_year_num(__tm->tm_yday, __b, __e, __err, __ct);\n        break;\n    case 'm':\n        __get_month(__tm->tm_mon, __b, __e, __err, __ct);\n        break;\n    case 'M':\n        __get_minute(__tm->tm_min, __b, __e, __err, __ct);\n        break;\n    case 'n':\n    case 't':\n        __get_white_space(__b, __e, __err, __ct);\n        break;\n    case 'p':\n        __get_am_pm(__tm->tm_hour, __b, __e, __err, __ct);\n        break;\n    case 'r':\n        {\n        const char_type __fm[] = {'%', 'I', ':', '%', 'M', ':', '%', 'S', ' ', '%', 'p'};\n        __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0]));\n        }\n        break;\n    case 'R':\n        {\n        const char_type __fm[] = {'%', 'H', ':', '%', 'M'};\n        __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0]));\n        }\n        break;\n    case 'S':\n        __get_second(__tm->tm_sec, __b, __e, __err, __ct);\n        break;\n    case 'T':\n        {\n        const char_type __fm[] = {'%', 'H', ':', '%', 'M', ':', '%', 'S'};\n        __b = get(__b, __e, __iob, __err, __tm, __fm, __fm + sizeof(__fm)/sizeof(__fm[0]));\n        }\n        break;\n    case 'w':\n        __get_weekday(__tm->tm_wday, __b, __e, __err, __ct);\n        break;\n    case 'x':\n        return do_get_date(__b, __e, __iob, __err, __tm);\n    case 'X':\n        {\n        const string_type& __fm = this->__X();\n        __b = get(__b, __e, __iob, __err, __tm, __fm.data(), __fm.data() + __fm.size());\n        }\n        break;\n    case 'y':\n        __get_year(__tm->tm_year, __b, __e, __err, __ct);\n        break;\n    case 'Y':\n        __get_year4(__tm->tm_year, __b, __e, __err, __ct);\n        break;\n    case '%':\n        __get_percent(__b, __e, __err, __ct);\n        break;\n    default:\n        __err |= ios_base::failbit;\n    }\n    return __b;\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get<wchar_t>)\n\nclass _LIBCPP_TYPE_VIS __time_get\n{\nprotected:\n    locale_t __loc_;\n\n    __time_get(const char* __nm);\n    __time_get(const string& __nm);\n    ~__time_get();\n};\n\ntemplate <class _CharT>\nclass _LIBCPP_TEMPLATE_VIS __time_get_storage\n    : public __time_get\n{\nprotected:\n    typedef basic_string<_CharT> string_type;\n\n    string_type __weeks_[14];\n    string_type __months_[24];\n    string_type __am_pm_[2];\n    string_type __c_;\n    string_type __r_;\n    string_type __x_;\n    string_type __X_;\n\n    explicit __time_get_storage(const char* __nm);\n    explicit __time_get_storage(const string& __nm);\n\n    _LIBCPP_ALWAYS_INLINE ~__time_get_storage() {}\n\n    time_base::dateorder __do_date_order() const;\n\nprivate:\n    void init(const ctype<_CharT>&);\n    string_type __analyze(char __fmt, const ctype<_CharT>&);\n};\n\ntemplate <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS time_get_byname\n    : public time_get<_CharT, _InputIterator>,\n      private __time_get_storage<_CharT>\n{\npublic:\n    typedef time_base::dateorder    dateorder;\n    typedef _InputIterator          iter_type;\n    typedef _CharT                  char_type;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit time_get_byname(const char* __nm, size_t __refs = 0)\n        : time_get<_CharT, _InputIterator>(__refs),\n          __time_get_storage<_CharT>(__nm) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit time_get_byname(const string& __nm, size_t __refs = 0)\n        : time_get<_CharT, _InputIterator>(__refs),\n          __time_get_storage<_CharT>(__nm) {}\n\nprotected:\n    _LIBCPP_INLINE_VISIBILITY\n    ~time_get_byname() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    virtual dateorder do_date_order() const {return this->__do_date_order();}\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    virtual const string_type* __weeks() const  {return this->__weeks_;}\n    _LIBCPP_INLINE_VISIBILITY\n    virtual const string_type* __months() const {return this->__months_;}\n    _LIBCPP_INLINE_VISIBILITY\n    virtual const string_type* __am_pm() const  {return this->__am_pm_;}\n    _LIBCPP_INLINE_VISIBILITY\n    virtual const string_type& __c() const      {return this->__c_;}\n    _LIBCPP_INLINE_VISIBILITY\n    virtual const string_type& __r() const      {return this->__r_;}\n    _LIBCPP_INLINE_VISIBILITY\n    virtual const string_type& __x() const      {return this->__x_;}\n    _LIBCPP_INLINE_VISIBILITY\n    virtual const string_type& __X() const      {return this->__X_;}\n};\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get_byname<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_get_byname<wchar_t>)\n\nclass _LIBCPP_TYPE_VIS __time_put\n{\n    locale_t __loc_;\nprotected:\n    _LIBCPP_ALWAYS_INLINE __time_put() : __loc_(_LIBCPP_GET_C_LOCALE) {}\n    __time_put(const char* __nm);\n    __time_put(const string& __nm);\n    ~__time_put();\n    void __do_put(char* __nb, char*& __ne, const tm* __tm,\n                  char __fmt, char __mod) const;\n    void __do_put(wchar_t* __wb, wchar_t*& __we, const tm* __tm,\n                  char __fmt, char __mod) const;\n};\n\ntemplate <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS time_put\n    : public locale::facet,\n      private __time_put\n{\npublic:\n    typedef _CharT char_type;\n    typedef _OutputIterator iter_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit time_put(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl, const tm* __tm,\n                  const char_type* __pb, const char_type* __pe) const;\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, ios_base& __iob, char_type __fl,\n                  const tm* __tm, char __fmt, char __mod = 0) const\n    {\n        return do_put(__s, __iob, __fl, __tm, __fmt, __mod);\n    }\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~time_put() {}\n    virtual iter_type do_put(iter_type __s, ios_base&, char_type, const tm* __tm,\n                             char __fmt, char __mod) const;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit time_put(const char* __nm, size_t __refs)\n        : locale::facet(__refs),\n          __time_put(__nm) {}\n    _LIBCPP_ALWAYS_INLINE\n    explicit time_put(const string& __nm, size_t __refs)\n        : locale::facet(__refs),\n          __time_put(__nm) {}\n};\n\ntemplate <class _CharT, class _OutputIterator>\nlocale::id\ntime_put<_CharT, _OutputIterator>::id;\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\ntime_put<_CharT, _OutputIterator>::put(iter_type __s, ios_base& __iob,\n                                       char_type __fl, const tm* __tm,\n                                       const char_type* __pb,\n                                       const char_type* __pe) const\n{\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__iob.getloc());\n    for (; __pb != __pe; ++__pb)\n    {\n        if (__ct.narrow(*__pb, 0) == '%')\n        {\n            if (++__pb == __pe)\n            {\n                *__s++ = __pb[-1];\n                break;\n            }\n            char __mod = 0;\n            char __fmt = __ct.narrow(*__pb, 0);\n            if (__fmt == 'E' || __fmt == 'O')\n            {\n                if (++__pb == __pe)\n                {\n                    *__s++ = __pb[-2];\n                    *__s++ = __pb[-1];\n                    break;\n                }\n                __mod = __fmt;\n                __fmt = __ct.narrow(*__pb, 0);\n            }\n            __s = do_put(__s, __iob, __fl, __tm, __fmt, __mod);\n        }\n        else\n            *__s++ = *__pb;\n    }\n    return __s;\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\ntime_put<_CharT, _OutputIterator>::do_put(iter_type __s, ios_base&,\n                                          char_type, const tm* __tm,\n                                          char __fmt, char __mod) const\n{\n    char_type __nar[100];\n    char_type* __nb = __nar;\n    char_type* __ne = __nb + 100;\n    __do_put(__nb, __ne, __tm, __fmt, __mod);\n    return _VSTD::copy(__nb, __ne, __s);\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put<wchar_t>)\n\ntemplate <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS time_put_byname\n    : public time_put<_CharT, _OutputIterator>\n{\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    explicit time_put_byname(const char* __nm, size_t __refs = 0)\n        : time_put<_CharT, _OutputIterator>(__nm, __refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit time_put_byname(const string& __nm, size_t __refs = 0)\n        : time_put<_CharT, _OutputIterator>(__nm, __refs) {}\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~time_put_byname() {}\n};\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put_byname<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS time_put_byname<wchar_t>)\n\n// money_base\n\nclass _LIBCPP_TYPE_VIS money_base\n{\npublic:\n    enum part {none, space, symbol, sign, value};\n    struct pattern {char field[4];};\n\n    _LIBCPP_ALWAYS_INLINE money_base() {}\n};\n\n// moneypunct\n\ntemplate <class _CharT, bool _International = false>\nclass _LIBCPP_TEMPLATE_VIS moneypunct\n    : public locale::facet,\n      public money_base\n{\npublic:\n    typedef _CharT                  char_type;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit moneypunct(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE char_type   decimal_point() const {return do_decimal_point();}\n    _LIBCPP_ALWAYS_INLINE char_type   thousands_sep() const {return do_thousands_sep();}\n    _LIBCPP_ALWAYS_INLINE string      grouping()      const {return do_grouping();}\n    _LIBCPP_ALWAYS_INLINE string_type curr_symbol()   const {return do_curr_symbol();}\n    _LIBCPP_ALWAYS_INLINE string_type positive_sign() const {return do_positive_sign();}\n    _LIBCPP_ALWAYS_INLINE string_type negative_sign() const {return do_negative_sign();}\n    _LIBCPP_ALWAYS_INLINE int         frac_digits()   const {return do_frac_digits();}\n    _LIBCPP_ALWAYS_INLINE pattern     pos_format()    const {return do_pos_format();}\n    _LIBCPP_ALWAYS_INLINE pattern     neg_format()    const {return do_neg_format();}\n\n    static locale::id id;\n    static const bool intl = _International;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~moneypunct() {}\n\n    virtual char_type   do_decimal_point() const {return numeric_limits<char_type>::max();}\n    virtual char_type   do_thousands_sep() const {return numeric_limits<char_type>::max();}\n    virtual string      do_grouping()      const {return string();}\n    virtual string_type do_curr_symbol()   const {return string_type();}\n    virtual string_type do_positive_sign() const {return string_type();}\n    virtual string_type do_negative_sign() const {return string_type(1, '-');}\n    virtual int         do_frac_digits()   const {return 0;}\n    virtual pattern     do_pos_format()    const\n        {pattern __p = {{symbol, sign, none, value}}; return __p;}\n    virtual pattern     do_neg_format()    const\n        {pattern __p = {{symbol, sign, none, value}}; return __p;}\n};\n\ntemplate <class _CharT, bool _International>\nlocale::id\nmoneypunct<_CharT, _International>::id;\n\ntemplate <class _CharT, bool _International>\nconst bool\nmoneypunct<_CharT, _International>::intl;\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<char, false>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<char, true>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<wchar_t, false>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct<wchar_t, true>)\n\n// moneypunct_byname\n\ntemplate <class _CharT, bool _International = false>\nclass _LIBCPP_TEMPLATE_VIS moneypunct_byname\n    : public moneypunct<_CharT, _International>\n{\npublic:\n    typedef money_base::pattern  pattern;\n    typedef _CharT                  char_type;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit moneypunct_byname(const char* __nm, size_t __refs = 0)\n        : moneypunct<_CharT, _International>(__refs) {init(__nm);}\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit moneypunct_byname(const string& __nm, size_t __refs = 0)\n        : moneypunct<_CharT, _International>(__refs) {init(__nm.c_str());}\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~moneypunct_byname() {}\n\n    virtual char_type   do_decimal_point() const {return __decimal_point_;}\n    virtual char_type   do_thousands_sep() const {return __thousands_sep_;}\n    virtual string      do_grouping()      const {return __grouping_;}\n    virtual string_type do_curr_symbol()   const {return __curr_symbol_;}\n    virtual string_type do_positive_sign() const {return __positive_sign_;}\n    virtual string_type do_negative_sign() const {return __negative_sign_;}\n    virtual int         do_frac_digits()   const {return __frac_digits_;}\n    virtual pattern     do_pos_format()    const {return __pos_format_;}\n    virtual pattern     do_neg_format()    const {return __neg_format_;}\n\nprivate:\n    char_type   __decimal_point_;\n    char_type   __thousands_sep_;\n    string      __grouping_;\n    string_type __curr_symbol_;\n    string_type __positive_sign_;\n    string_type __negative_sign_;\n    int         __frac_digits_;\n    pattern     __pos_format_;\n    pattern     __neg_format_;\n\n    void init(const char*);\n};\n\ntemplate<> _LIBCPP_FUNC_VIS void moneypunct_byname<char, false>::init(const char*);\ntemplate<> _LIBCPP_FUNC_VIS void moneypunct_byname<char, true>::init(const char*);\ntemplate<> _LIBCPP_FUNC_VIS void moneypunct_byname<wchar_t, false>::init(const char*);\ntemplate<> _LIBCPP_FUNC_VIS void moneypunct_byname<wchar_t, true>::init(const char*);\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<char, false>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<char, true>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<wchar_t, false>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS moneypunct_byname<wchar_t, true>)\n\n// money_get\n\ntemplate <class _CharT>\nclass __money_get\n{\nprotected:\n    typedef _CharT                  char_type;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_ALWAYS_INLINE __money_get() {}\n\n    static void __gather_info(bool __intl, const locale& __loc,\n                              money_base::pattern& __pat, char_type& __dp,\n                              char_type& __ts, string& __grp,\n                              string_type& __sym, string_type& __psn,\n                              string_type& __nsn, int& __fd);\n};\n\ntemplate <class _CharT>\nvoid\n__money_get<_CharT>::__gather_info(bool __intl, const locale& __loc,\n                                   money_base::pattern& __pat, char_type& __dp,\n                                   char_type& __ts, string& __grp,\n                                   string_type& __sym, string_type& __psn,\n                                   string_type& __nsn, int& __fd)\n{\n    if (__intl)\n    {\n        const moneypunct<char_type, true>& __mp =\n            use_facet<moneypunct<char_type, true> >(__loc);\n        __pat = __mp.neg_format();\n        __nsn = __mp.negative_sign();\n        __psn = __mp.positive_sign();\n        __dp = __mp.decimal_point();\n        __ts = __mp.thousands_sep();\n        __grp = __mp.grouping();\n        __sym = __mp.curr_symbol();\n        __fd = __mp.frac_digits();\n    }\n    else\n    {\n        const moneypunct<char_type, false>& __mp =\n            use_facet<moneypunct<char_type, false> >(__loc);\n        __pat = __mp.neg_format();\n        __nsn = __mp.negative_sign();\n        __psn = __mp.positive_sign();\n        __dp = __mp.decimal_point();\n        __ts = __mp.thousands_sep();\n        __grp = __mp.grouping();\n        __sym = __mp.curr_symbol();\n        __fd = __mp.frac_digits();\n    }\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_get<wchar_t>)\n\ntemplate <class _CharT, class _InputIterator = istreambuf_iterator<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS money_get\n    : public locale::facet,\n      private __money_get<_CharT>\n{\npublic:\n    typedef _CharT                  char_type;\n    typedef _InputIterator          iter_type;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit money_get(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob,\n                  ios_base::iostate& __err, long double& __v) const\n    {\n        return do_get(__b, __e, __intl, __iob, __err, __v);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type get(iter_type __b, iter_type __e, bool __intl, ios_base& __iob,\n                  ios_base::iostate& __err, string_type& __v) const\n    {\n        return do_get(__b, __e, __intl, __iob, __err, __v);\n    }\n\n    static locale::id id;\n\nprotected:\n\n    _LIBCPP_ALWAYS_INLINE\n    ~money_get() {}\n\n    virtual iter_type do_get(iter_type __b, iter_type __e, bool __intl,\n                             ios_base& __iob, ios_base::iostate& __err,\n                             long double& __v) const;\n    virtual iter_type do_get(iter_type __b, iter_type __e, bool __intl,\n                             ios_base& __iob, ios_base::iostate& __err,\n                             string_type& __v) const;\n\nprivate:\n    static bool __do_get(iter_type& __b, iter_type __e,\n                         bool __intl, const locale& __loc,\n                         ios_base::fmtflags __flags, ios_base::iostate& __err,\n                         bool& __neg, const ctype<char_type>& __ct,\n                         unique_ptr<char_type, void(*)(void*)>& __wb,\n                         char_type*& __wn, char_type* __we);\n};\n\ntemplate <class _CharT, class _InputIterator>\nlocale::id\nmoney_get<_CharT, _InputIterator>::id;\n\n_LIBCPP_FUNC_VIS void __do_nothing(void*);\n\ntemplate <class _Tp>\n_LIBCPP_HIDDEN\nvoid\n__double_or_nothing(unique_ptr<_Tp, void(*)(void*)>& __b, _Tp*& __n, _Tp*& __e)\n{\n    bool __owns = __b.get_deleter() != __do_nothing;\n    size_t __cur_cap = static_cast<size_t>(__e-__b.get()) * sizeof(_Tp);\n    size_t __new_cap = __cur_cap < numeric_limits<size_t>::max() / 2 ?\n                       2 * __cur_cap : numeric_limits<size_t>::max();\n    if (__new_cap == 0)\n        __new_cap = sizeof(_Tp);\n    size_t __n_off = static_cast<size_t>(__n - __b.get());\n    _Tp* __t = (_Tp*)realloc(__owns ? __b.get() : 0, __new_cap);\n    if (__t == 0)\n        __throw_bad_alloc();\n    if (__owns)\n        __b.release();\n    __b = unique_ptr<_Tp, void(*)(void*)>(__t, free);\n    __new_cap /= sizeof(_Tp);\n    __n = __b.get() + __n_off;\n    __e = __b.get() + __new_cap;\n}\n\n// true == success\ntemplate <class _CharT, class _InputIterator>\nbool\nmoney_get<_CharT, _InputIterator>::__do_get(iter_type& __b, iter_type __e,\n                                            bool __intl, const locale& __loc,\n                                            ios_base::fmtflags __flags,\n                                            ios_base::iostate& __err,\n                                            bool& __neg,\n                                            const ctype<char_type>& __ct,\n                                            unique_ptr<char_type, void(*)(void*)>& __wb,\n                                            char_type*& __wn, char_type* __we)\n{\n    const unsigned __bz = 100;\n    unsigned __gbuf[__bz];\n    unique_ptr<unsigned, void(*)(void*)> __gb(__gbuf, __do_nothing);\n    unsigned* __gn = __gb.get();\n    unsigned* __ge = __gn + __bz;\n    money_base::pattern __pat;\n    char_type __dp;\n    char_type __ts;\n    string __grp;\n    string_type __sym;\n    string_type __psn;\n    string_type __nsn;\n    // Capture the spaces read into money_base::{space,none} so they\n    // can be compared to initial spaces in __sym.\n    string_type __spaces;\n    int __fd;\n    __money_get<_CharT>::__gather_info(__intl, __loc, __pat, __dp, __ts, __grp,\n                                       __sym, __psn, __nsn, __fd);\n    const string_type* __trailing_sign = 0;\n    __wn = __wb.get();\n    for (unsigned __p = 0; __p < 4 && __b != __e; ++__p)\n    {\n        switch (__pat.field[__p])\n        {\n        case money_base::space:\n            if (__p != 3)\n            {\n                if (__ct.is(ctype_base::space, *__b))\n                    __spaces.push_back(*__b++);\n                else\n                {\n                    __err |= ios_base::failbit;\n                    return false;\n                }\n            }\n            _LIBCPP_FALLTHROUGH();\n        case money_base::none:\n            if (__p != 3)\n            {\n                while (__b != __e && __ct.is(ctype_base::space, *__b))\n                    __spaces.push_back(*__b++);\n            }\n            break;\n        case money_base::sign:\n            if (__psn.size() + __nsn.size() > 0)\n            {\n                if (__psn.size() == 0 || __nsn.size() == 0)\n                {   // sign is optional\n                    if (__psn.size() > 0)\n                    {   // __nsn.size() == 0\n                        if (*__b == __psn[0])\n                        {\n                            ++__b;\n                            if (__psn.size() > 1)\n                                __trailing_sign = &__psn;\n                        }\n                        else\n                            __neg = true;\n                    }\n                    else if (*__b == __nsn[0])  // __nsn.size() > 0 &&  __psn.size() == 0\n                    {\n                        ++__b;\n                        __neg = true;\n                        if (__nsn.size() > 1)\n                            __trailing_sign = &__nsn;\n                    }\n                }\n                else  // sign is required\n                {\n                    if (*__b == __psn[0])\n                    {\n                        ++__b;\n                        if (__psn.size() > 1)\n                            __trailing_sign = &__psn;\n                    }\n                    else if (*__b == __nsn[0])\n                    {\n                        ++__b;\n                        __neg = true;\n                        if (__nsn.size() > 1)\n                            __trailing_sign = &__nsn;\n                    }\n                    else\n                    {\n                        __err |= ios_base::failbit;\n                        return false;\n                    }\n                }\n            }\n            break;\n        case money_base::symbol:\n            {\n            bool __more_needed = __trailing_sign ||\n                                 (__p < 2)       ||\n                                 (__p == 2 && __pat.field[3] != static_cast<char>(money_base::none));\n            bool __sb = (__flags & ios_base::showbase) != 0;\n            if (__sb || __more_needed)\n            {\n                typename string_type::const_iterator __sym_space_end = __sym.begin();\n                if (__p > 0 && (__pat.field[__p - 1] == money_base::none ||\n                                __pat.field[__p - 1] == money_base::space)) {\n                    // Match spaces we've already read against spaces at\n                    // the beginning of __sym.\n                    while (__sym_space_end != __sym.end() &&\n                           __ct.is(ctype_base::space, *__sym_space_end))\n                        ++__sym_space_end;\n                    const size_t __num_spaces = __sym_space_end - __sym.begin();\n                    if (__num_spaces > __spaces.size() ||\n                        !equal(__spaces.end() - __num_spaces, __spaces.end(),\n                               __sym.begin())) {\n                        // No match. Put __sym_space_end back at the\n                        // beginning of __sym, which will prevent a\n                        // match in the next loop.\n                        __sym_space_end = __sym.begin();\n                    }\n                }\n                typename string_type::const_iterator __sym_curr_char = __sym_space_end;\n                while (__sym_curr_char != __sym.end() && __b != __e &&\n                       *__b == *__sym_curr_char) {\n                    ++__b;\n                    ++__sym_curr_char;\n                }\n                if (__sb && __sym_curr_char != __sym.end())\n                {\n                    __err |= ios_base::failbit;\n                    return false;\n                }\n            }\n            }\n            break;\n        case money_base::value:\n            {\n            unsigned __ng = 0;\n            for (; __b != __e; ++__b)\n            {\n                char_type __c = *__b;\n                if (__ct.is(ctype_base::digit, __c))\n                {\n                    if (__wn == __we)\n                        __double_or_nothing(__wb, __wn, __we);\n                    *__wn++ = __c;\n                    ++__ng;\n                }\n                else if (__grp.size() > 0 && __ng > 0 && __c == __ts)\n                {\n                    if (__gn == __ge)\n                        __double_or_nothing(__gb, __gn, __ge);\n                    *__gn++ = __ng;\n                    __ng = 0;\n                }\n                else\n                    break;\n            }\n            if (__gb.get() != __gn && __ng > 0)\n            {\n                if (__gn == __ge)\n                    __double_or_nothing(__gb, __gn, __ge);\n                *__gn++ = __ng;\n            }\n            if (__fd > 0)\n            {\n                if (__b == __e || *__b != __dp)\n                {\n                    __err |= ios_base::failbit;\n                    return false;\n                }\n                for (++__b; __fd > 0; --__fd, ++__b)\n                {\n                    if (__b == __e || !__ct.is(ctype_base::digit, *__b))\n                    {\n                        __err |= ios_base::failbit;\n                        return false;\n                    }\n                    if (__wn == __we)\n                        __double_or_nothing(__wb, __wn, __we);\n                    *__wn++ = *__b;\n                }\n            }\n            if (__wn == __wb.get())\n            {\n                __err |= ios_base::failbit;\n                return false;\n            }\n            }\n            break;\n        }\n    }\n    if (__trailing_sign)\n    {\n        for (unsigned __i = 1; __i < __trailing_sign->size(); ++__i, ++__b)\n        {\n            if (__b == __e || *__b != (*__trailing_sign)[__i])\n            {\n                __err |= ios_base::failbit;\n                return false;\n            }\n        }\n    }\n    if (__gb.get() != __gn)\n    {\n        ios_base::iostate __et = ios_base::goodbit;\n        __check_grouping(__grp, __gb.get(), __gn, __et);\n        if (__et)\n        {\n            __err |= ios_base::failbit;\n            return false;\n        }\n    }\n    return true;\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\nmoney_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e,\n                                          bool __intl, ios_base& __iob,\n                                          ios_base::iostate& __err,\n                                          long double& __v) const\n{\n    const int __bz = 100;\n    char_type __wbuf[__bz];\n    unique_ptr<char_type, void(*)(void*)> __wb(__wbuf, __do_nothing);\n    char_type* __wn;\n    char_type* __we = __wbuf + __bz;\n    locale __loc = __iob.getloc();\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__loc);\n    bool __neg = false;\n    if (__do_get(__b, __e, __intl, __loc, __iob.flags(), __err, __neg, __ct,\n                 __wb, __wn, __we))\n    {\n        const char __src[] = \"0123456789\";\n        char_type __atoms[sizeof(__src)-1];\n        __ct.widen(__src, __src + (sizeof(__src)-1), __atoms);\n        char __nbuf[__bz];\n        char* __nc = __nbuf;\n        unique_ptr<char, void(*)(void*)> __h(0, free);\n        if (__wn - __wb.get() > __bz-2)\n        {\n            __h.reset((char*)malloc(static_cast<size_t>(__wn - __wb.get() + 2)));\n            if (__h.get() == 0)\n                __throw_bad_alloc();\n            __nc = __h.get();\n        }\n        if (__neg)\n            *__nc++ = '-';\n        for (const char_type* __w = __wb.get(); __w < __wn; ++__w, ++__nc)\n            *__nc = __src[find(__atoms, _VSTD::end(__atoms), *__w) - __atoms];\n        *__nc = char();\n        if (sscanf(__nbuf, \"%Lf\", &__v) != 1)\n            __throw_runtime_error(\"money_get error\");\n    }\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    return __b;\n}\n\ntemplate <class _CharT, class _InputIterator>\n_InputIterator\nmoney_get<_CharT, _InputIterator>::do_get(iter_type __b, iter_type __e,\n                                          bool __intl, ios_base& __iob,\n                                          ios_base::iostate& __err,\n                                          string_type& __v) const\n{\n    const int __bz = 100;\n    char_type __wbuf[__bz];\n    unique_ptr<char_type, void(*)(void*)> __wb(__wbuf, __do_nothing);\n    char_type* __wn;\n    char_type* __we = __wbuf + __bz;\n    locale __loc = __iob.getloc();\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__loc);\n    bool __neg = false;\n    if (__do_get(__b, __e, __intl, __loc, __iob.flags(), __err, __neg, __ct,\n                 __wb, __wn, __we))\n    {\n        __v.clear();\n        if (__neg)\n            __v.push_back(__ct.widen('-'));\n        char_type __z = __ct.widen('0');\n        char_type* __w;\n        for (__w = __wb.get(); __w < __wn-1; ++__w)\n            if (*__w != __z)\n                break;\n        __v.append(__w, __wn);\n    }\n    if (__b == __e)\n        __err |= ios_base::eofbit;\n    return __b;\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_get<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_get<wchar_t>)\n\n// money_put\n\ntemplate <class _CharT>\nclass __money_put\n{\nprotected:\n    typedef _CharT                  char_type;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_ALWAYS_INLINE __money_put() {}\n\n    static void __gather_info(bool __intl, bool __neg, const locale& __loc,\n                              money_base::pattern& __pat, char_type& __dp,\n                              char_type& __ts, string& __grp,\n                              string_type& __sym, string_type& __sn,\n                              int& __fd);\n    static void __format(char_type* __mb, char_type*& __mi, char_type*& __me,\n                         ios_base::fmtflags __flags,\n                         const char_type* __db, const char_type* __de,\n                         const ctype<char_type>& __ct, bool __neg,\n                         const money_base::pattern& __pat, char_type __dp,\n                         char_type __ts, const string& __grp,\n                         const string_type& __sym, const string_type& __sn,\n                         int __fd);\n};\n\ntemplate <class _CharT>\nvoid\n__money_put<_CharT>::__gather_info(bool __intl, bool __neg, const locale& __loc,\n                                   money_base::pattern& __pat, char_type& __dp,\n                                   char_type& __ts, string& __grp,\n                                   string_type& __sym, string_type& __sn,\n                                   int& __fd)\n{\n    if (__intl)\n    {\n        const moneypunct<char_type, true>& __mp =\n            use_facet<moneypunct<char_type, true> >(__loc);\n        if (__neg)\n        {\n            __pat = __mp.neg_format();\n            __sn = __mp.negative_sign();\n        }\n        else\n        {\n            __pat = __mp.pos_format();\n            __sn = __mp.positive_sign();\n        }\n        __dp = __mp.decimal_point();\n        __ts = __mp.thousands_sep();\n        __grp = __mp.grouping();\n        __sym = __mp.curr_symbol();\n        __fd = __mp.frac_digits();\n    }\n    else\n    {\n        const moneypunct<char_type, false>& __mp =\n            use_facet<moneypunct<char_type, false> >(__loc);\n        if (__neg)\n        {\n            __pat = __mp.neg_format();\n            __sn = __mp.negative_sign();\n        }\n        else\n        {\n            __pat = __mp.pos_format();\n            __sn = __mp.positive_sign();\n        }\n        __dp = __mp.decimal_point();\n        __ts = __mp.thousands_sep();\n        __grp = __mp.grouping();\n        __sym = __mp.curr_symbol();\n        __fd = __mp.frac_digits();\n    }\n}\n\ntemplate <class _CharT>\nvoid\n__money_put<_CharT>::__format(char_type* __mb, char_type*& __mi, char_type*& __me,\n                              ios_base::fmtflags __flags,\n                              const char_type* __db, const char_type* __de,\n                              const ctype<char_type>& __ct, bool __neg,\n                              const money_base::pattern& __pat, char_type __dp,\n                              char_type __ts, const string& __grp,\n                              const string_type& __sym, const string_type& __sn,\n                              int __fd)\n{\n    __me = __mb;\n    for (unsigned __p = 0; __p < 4; ++__p)\n    {\n        switch (__pat.field[__p])\n        {\n        case money_base::none:\n            __mi = __me;\n            break;\n        case money_base::space:\n            __mi = __me;\n            *__me++ = __ct.widen(' ');\n            break;\n        case money_base::sign:\n            if (!__sn.empty())\n                *__me++ = __sn[0];\n            break;\n        case money_base::symbol:\n            if (!__sym.empty() && (__flags & ios_base::showbase))\n                __me = _VSTD::copy(__sym.begin(), __sym.end(), __me);\n            break;\n        case money_base::value:\n            {\n            // remember start of value so we can reverse it\n            char_type* __t = __me;\n            // find beginning of digits\n            if (__neg)\n                ++__db;\n            // find end of digits\n            const char_type* __d;\n            for (__d = __db; __d < __de; ++__d)\n                if (!__ct.is(ctype_base::digit, *__d))\n                    break;\n            // print fractional part\n            if (__fd > 0)\n            {\n                int __f;\n                for (__f = __fd; __d > __db && __f > 0; --__f)\n                    *__me++ = *--__d;\n                char_type __z = __f > 0 ? __ct.widen('0') : char_type();\n                for (; __f > 0; --__f)\n                    *__me++ = __z;\n                *__me++ = __dp;\n            }\n            // print units part\n            if (__d == __db)\n            {\n                *__me++ = __ct.widen('0');\n            }\n            else\n            {\n                unsigned __ng = 0;\n                unsigned __ig = 0;\n                unsigned __gl = __grp.empty() ? numeric_limits<unsigned>::max()\n                                              : static_cast<unsigned>(__grp[__ig]);\n                while (__d != __db)\n                {\n                    if (__ng == __gl)\n                    {\n                        *__me++ = __ts;\n                        __ng = 0;\n                        if (++__ig < __grp.size())\n                            __gl = __grp[__ig] == numeric_limits<char>::max() ?\n                                        numeric_limits<unsigned>::max() :\n                                        static_cast<unsigned>(__grp[__ig]);\n                    }\n                    *__me++ = *--__d;\n                    ++__ng;\n                }\n            }\n            // reverse it\n            reverse(__t, __me);\n            }\n            break;\n        }\n    }\n    // print rest of sign, if any\n    if (__sn.size() > 1)\n        __me = _VSTD::copy(__sn.begin()+1, __sn.end(), __me);\n    // set alignment\n    if ((__flags & ios_base::adjustfield) == ios_base::left)\n        __mi = __me;\n    else if ((__flags & ios_base::adjustfield) != ios_base::internal)\n        __mi = __mb;\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __money_put<wchar_t>)\n\ntemplate <class _CharT, class _OutputIterator = ostreambuf_iterator<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS money_put\n    : public locale::facet,\n      private __money_put<_CharT>\n{\npublic:\n    typedef _CharT                  char_type;\n    typedef _OutputIterator         iter_type;\n    typedef basic_string<char_type> string_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit money_put(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl,\n                  long double __units) const\n    {\n        return do_put(__s, __intl, __iob, __fl, __units);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    iter_type put(iter_type __s, bool __intl, ios_base& __iob, char_type __fl,\n                  const string_type& __digits) const\n    {\n        return do_put(__s, __intl, __iob, __fl, __digits);\n    }\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~money_put() {}\n\n    virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __iob,\n                             char_type __fl, long double __units) const;\n    virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __iob,\n                             char_type __fl, const string_type& __digits) const;\n};\n\ntemplate <class _CharT, class _OutputIterator>\nlocale::id\nmoney_put<_CharT, _OutputIterator>::id;\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nmoney_put<_CharT, _OutputIterator>::do_put(iter_type __s, bool __intl,\n                                           ios_base& __iob, char_type __fl,\n                                           long double __units) const\n{\n    // convert to char\n    const size_t __bs = 100;\n    char __buf[__bs];\n    char* __bb = __buf;\n    char_type __digits[__bs];\n    char_type* __db = __digits;\n    size_t __n = static_cast<size_t>(snprintf(__bb, __bs, \"%.0Lf\", __units));\n    unique_ptr<char, void(*)(void*)> __hn(0, free);\n    unique_ptr<char_type, void(*)(void*)> __hd(0, free);\n    // secure memory for digit storage\n    if (__n > __bs-1)\n    {\n        __n = static_cast<size_t>(__libcpp_asprintf_l(&__bb, _LIBCPP_GET_C_LOCALE, \"%.0Lf\", __units));\n        if (__bb == 0)\n            __throw_bad_alloc();\n        __hn.reset(__bb);\n        __hd.reset((char_type*)malloc(__n * sizeof(char_type)));\n        if (__hd == nullptr)\n            __throw_bad_alloc();\n        __db = __hd.get();\n    }\n    // gather info\n    locale __loc = __iob.getloc();\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__loc);\n    __ct.widen(__bb, __bb + __n, __db);\n    bool __neg = __n > 0 && __bb[0] == '-';\n    money_base::pattern __pat;\n    char_type __dp;\n    char_type __ts;\n    string __grp;\n    string_type __sym;\n    string_type __sn;\n    int __fd;\n    this->__gather_info(__intl, __neg, __loc, __pat, __dp, __ts, __grp, __sym, __sn, __fd);\n    // secure memory for formatting\n    char_type __mbuf[__bs];\n    char_type* __mb = __mbuf;\n    unique_ptr<char_type, void(*)(void*)> __hw(0, free);\n    size_t __exn = static_cast<int>(__n) > __fd ?\n                   (__n - static_cast<size_t>(__fd)) * 2 + __sn.size() +\n                    __sym.size() + static_cast<size_t>(__fd) + 1\n                 : __sn.size() + __sym.size() + static_cast<size_t>(__fd) + 2;\n    if (__exn > __bs)\n    {\n        __hw.reset((char_type*)malloc(__exn * sizeof(char_type)));\n        __mb = __hw.get();\n        if (__mb == 0)\n            __throw_bad_alloc();\n    }\n    // format\n    char_type* __mi;\n    char_type* __me;\n    this->__format(__mb, __mi, __me, __iob.flags(),\n                   __db, __db + __n, __ct,\n                   __neg, __pat, __dp, __ts, __grp, __sym, __sn, __fd);\n    return __pad_and_output(__s, __mb, __mi, __me, __iob, __fl);\n}\n\ntemplate <class _CharT, class _OutputIterator>\n_OutputIterator\nmoney_put<_CharT, _OutputIterator>::do_put(iter_type __s, bool __intl,\n                                           ios_base& __iob, char_type __fl,\n                                           const string_type& __digits) const\n{\n    // gather info\n    locale __loc = __iob.getloc();\n    const ctype<char_type>& __ct = use_facet<ctype<char_type> >(__loc);\n    bool __neg = __digits.size() > 0 && __digits[0] == __ct.widen('-');\n    money_base::pattern __pat;\n    char_type __dp;\n    char_type __ts;\n    string __grp;\n    string_type __sym;\n    string_type __sn;\n    int __fd;\n    this->__gather_info(__intl, __neg, __loc, __pat, __dp, __ts, __grp, __sym, __sn, __fd);\n    // secure memory for formatting\n    char_type __mbuf[100];\n    char_type* __mb = __mbuf;\n    unique_ptr<char_type, void(*)(void*)> __h(0, free);\n    size_t __exn = static_cast<int>(__digits.size()) > __fd ?\n                   (__digits.size() - static_cast<size_t>(__fd)) * 2 +\n                    __sn.size() + __sym.size() + static_cast<size_t>(__fd) + 1\n                 : __sn.size() + __sym.size() + static_cast<size_t>(__fd) + 2;\n    if (__exn > 100)\n    {\n        __h.reset((char_type*)malloc(__exn * sizeof(char_type)));\n        __mb = __h.get();\n        if (__mb == 0)\n            __throw_bad_alloc();\n    }\n    // format\n    char_type* __mi;\n    char_type* __me;\n    this->__format(__mb, __mi, __me, __iob.flags(),\n                   __digits.data(), __digits.data() + __digits.size(), __ct,\n                   __neg, __pat, __dp, __ts, __grp, __sym, __sn, __fd);\n    return __pad_and_output(__s, __mb, __mi, __me, __iob, __fl);\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_put<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS money_put<wchar_t>)\n\n// messages\n\nclass _LIBCPP_TYPE_VIS messages_base\n{\npublic:\n    typedef ptrdiff_t catalog;\n\n    _LIBCPP_ALWAYS_INLINE messages_base() {}\n};\n\ntemplate <class _CharT>\nclass _LIBCPP_TEMPLATE_VIS messages\n    : public locale::facet,\n      public messages_base\n{\npublic:\n    typedef _CharT               char_type;\n    typedef basic_string<_CharT> string_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit messages(size_t __refs = 0)\n        : locale::facet(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    catalog open(const basic_string<char>& __nm, const locale& __loc) const\n    {\n        return do_open(__nm, __loc);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    string_type get(catalog __c, int __set, int __msgid,\n                    const string_type& __dflt) const\n    {\n        return do_get(__c, __set, __msgid, __dflt);\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    void close(catalog __c) const\n    {\n        do_close(__c);\n    }\n\n    static locale::id id;\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~messages() {}\n\n    virtual catalog do_open(const basic_string<char>&, const locale&) const;\n    virtual string_type do_get(catalog, int __set, int __msgid,\n                               const string_type& __dflt) const;\n    virtual void do_close(catalog) const;\n};\n\ntemplate <class _CharT>\nlocale::id\nmessages<_CharT>::id;\n\ntemplate <class _CharT>\ntypename messages<_CharT>::catalog\nmessages<_CharT>::do_open(const basic_string<char>& __nm, const locale&) const\n{\n#ifdef _LIBCPP_HAS_CATOPEN\n    catalog __cat = (catalog)catopen(__nm.c_str(), NL_CAT_LOCALE);\n    if (__cat != -1)\n        __cat = static_cast<catalog>((static_cast<size_t>(__cat) >> 1));\n    return __cat;\n#else // !_LIBCPP_HAS_CATOPEN\n    return -1;\n#endif // _LIBCPP_HAS_CATOPEN\n}\n\ntemplate <class _CharT>\ntypename messages<_CharT>::string_type\nmessages<_CharT>::do_get(catalog __c, int __set, int __msgid,\n                         const string_type& __dflt) const\n{\n#ifdef _LIBCPP_HAS_CATOPEN\n    string __ndflt;\n    __narrow_to_utf8<sizeof(char_type)*__CHAR_BIT__>()(back_inserter(__ndflt),\n                                                       __dflt.c_str(),\n                                                       __dflt.c_str() + __dflt.size());\n    if (__c != -1)\n        __c <<= 1;\n    nl_catd __cat = (nl_catd)__c;\n    char* __n = catgets(__cat, __set, __msgid, __ndflt.c_str());\n    string_type __w;\n    __widen_from_utf8<sizeof(char_type)*__CHAR_BIT__>()(back_inserter(__w),\n                                                        __n, __n + strlen(__n));\n    return __w;\n#else // !_LIBCPP_HAS_CATOPEN\n    return __dflt;\n#endif // _LIBCPP_HAS_CATOPEN\n}\n\ntemplate <class _CharT>\nvoid\nmessages<_CharT>::do_close(catalog __c) const\n{\n#ifdef _LIBCPP_HAS_CATOPEN\n    if (__c != -1)\n        __c <<= 1;\n    nl_catd __cat = (nl_catd)__c;\n    catclose(__cat);\n#endif // _LIBCPP_HAS_CATOPEN\n}\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages<wchar_t>)\n\ntemplate <class _CharT>\nclass _LIBCPP_TEMPLATE_VIS messages_byname\n    : public messages<_CharT>\n{\npublic:\n    typedef messages_base::catalog catalog;\n    typedef basic_string<_CharT> string_type;\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit messages_byname(const char*, size_t __refs = 0)\n        : messages<_CharT>(__refs) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    explicit messages_byname(const string&, size_t __refs = 0)\n        : messages<_CharT>(__refs) {}\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    ~messages_byname() {}\n};\n\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages_byname<char>)\n_LIBCPP_EXTERN_TEMPLATE2(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS messages_byname<wchar_t>)\n\ntemplate<class _Codecvt, class _Elem = wchar_t,\n         class _Wide_alloc = allocator<_Elem>,\n         class _Byte_alloc = allocator<char> >\nclass _LIBCPP_TEMPLATE_VIS wstring_convert\n{\npublic:\n    typedef basic_string<char, char_traits<char>, _Byte_alloc>   byte_string;\n    typedef basic_string<_Elem, char_traits<_Elem>, _Wide_alloc> wide_string;\n    typedef typename _Codecvt::state_type                        state_type;\n    typedef typename wide_string::traits_type::int_type          int_type;\n\nprivate:\n    byte_string __byte_err_string_;\n    wide_string __wide_err_string_;\n    _Codecvt* __cvtptr_;\n    state_type __cvtstate_;\n    size_t __cvtcount_;\n\n    wstring_convert(const wstring_convert& __wc);\n    wstring_convert& operator=(const wstring_convert& __wc);\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_EXPLICIT_AFTER_CXX11 wstring_convert(_Codecvt* __pcvt = new _Codecvt);\n    _LIBCPP_ALWAYS_INLINE\n    wstring_convert(_Codecvt* __pcvt, state_type __state);\n    _LIBCPP_EXPLICIT_AFTER_CXX11 wstring_convert(const byte_string& __byte_err,\n                    const wide_string& __wide_err = wide_string());\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_ALWAYS_INLINE\n    wstring_convert(wstring_convert&& __wc);\n#endif\n    ~wstring_convert();\n\n    _LIBCPP_ALWAYS_INLINE\n    wide_string from_bytes(char __byte)\n        {return from_bytes(&__byte, &__byte+1);}\n    _LIBCPP_ALWAYS_INLINE\n    wide_string from_bytes(const char* __ptr)\n        {return from_bytes(__ptr, __ptr + char_traits<char>::length(__ptr));}\n    _LIBCPP_ALWAYS_INLINE\n    wide_string from_bytes(const byte_string& __str)\n        {return from_bytes(__str.data(), __str.data() + __str.size());}\n    wide_string from_bytes(const char* __first, const char* __last);\n\n    _LIBCPP_ALWAYS_INLINE\n    byte_string to_bytes(_Elem __wchar)\n        {return to_bytes(&__wchar, &__wchar+1);}\n    _LIBCPP_ALWAYS_INLINE\n    byte_string to_bytes(const _Elem* __wptr)\n        {return to_bytes(__wptr, __wptr + char_traits<_Elem>::length(__wptr));}\n    _LIBCPP_ALWAYS_INLINE\n    byte_string to_bytes(const wide_string& __wstr)\n        {return to_bytes(__wstr.data(), __wstr.data() + __wstr.size());}\n    byte_string to_bytes(const _Elem* __first, const _Elem* __last);\n\n    _LIBCPP_ALWAYS_INLINE\n    size_t converted() const _NOEXCEPT {return __cvtcount_;}\n    _LIBCPP_ALWAYS_INLINE\n    state_type state() const {return __cvtstate_;}\n};\n\ntemplate<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>\ninline\nwstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::\n    wstring_convert(_Codecvt* __pcvt)\n        : __cvtptr_(__pcvt), __cvtstate_(), __cvtcount_(0)\n{\n}\n\ntemplate<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>\ninline\nwstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::\n    wstring_convert(_Codecvt* __pcvt, state_type __state)\n        : __cvtptr_(__pcvt), __cvtstate_(__state), __cvtcount_(0)\n{\n}\n\ntemplate<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>\nwstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::\n    wstring_convert(const byte_string& __byte_err, const wide_string& __wide_err)\n        : __byte_err_string_(__byte_err), __wide_err_string_(__wide_err),\n          __cvtstate_(), __cvtcount_(0)\n{\n    __cvtptr_ = new _Codecvt;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>\ninline\nwstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::\n    wstring_convert(wstring_convert&& __wc)\n        : __byte_err_string_(_VSTD::move(__wc.__byte_err_string_)),\n          __wide_err_string_(_VSTD::move(__wc.__wide_err_string_)),\n          __cvtptr_(__wc.__cvtptr_),\n          __cvtstate_(__wc.__cvtstate_), __cvtcount_(__wc.__cvtcount_)\n{\n    __wc.__cvtptr_ = nullptr;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>\nwstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::~wstring_convert()\n{\n    delete __cvtptr_;\n}\n\ntemplate<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>\ntypename wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::wide_string\nwstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::\n    from_bytes(const char* __frm, const char* __frm_end)\n{\n    __cvtcount_ = 0;\n    if (__cvtptr_ != nullptr)\n    {\n        wide_string __ws(2*(__frm_end - __frm), _Elem());\n        if (__frm != __frm_end)\n            __ws.resize(__ws.capacity());\n        codecvt_base::result __r = codecvt_base::ok;\n        state_type __st = __cvtstate_;\n        if (__frm != __frm_end)\n        {\n            _Elem* __to = &__ws[0];\n            _Elem* __to_end = __to + __ws.size();\n            const char* __frm_nxt;\n            do\n            {\n                _Elem* __to_nxt;\n                __r = __cvtptr_->in(__st, __frm, __frm_end, __frm_nxt,\n                                          __to, __to_end, __to_nxt);\n                __cvtcount_ += __frm_nxt - __frm;\n                if (__frm_nxt == __frm)\n                {\n                    __r = codecvt_base::error;\n                }\n                else if (__r == codecvt_base::noconv)\n                {\n                    __ws.resize(__to - &__ws[0]);\n                    // This only gets executed if _Elem is char\n                    __ws.append((const _Elem*)__frm, (const _Elem*)__frm_end);\n                    __frm = __frm_nxt;\n                    __r = codecvt_base::ok;\n                }\n                else if (__r == codecvt_base::ok)\n                {\n                    __ws.resize(__to_nxt - &__ws[0]);\n                    __frm = __frm_nxt;\n                }\n                else if (__r == codecvt_base::partial)\n                {\n                    ptrdiff_t __s = __to_nxt - &__ws[0];\n                    __ws.resize(2 * __s);\n                    __to = &__ws[0] + __s;\n                    __to_end = &__ws[0] + __ws.size();\n                    __frm = __frm_nxt;\n                }\n            } while (__r == codecvt_base::partial && __frm_nxt < __frm_end);\n        }\n        if (__r == codecvt_base::ok)\n            return __ws;\n    }\n\n    if (__wide_err_string_.empty())\n        __throw_range_error(\"wstring_convert: from_bytes error\");\n\n    return __wide_err_string_;\n}\n\ntemplate<class _Codecvt, class _Elem, class _Wide_alloc, class _Byte_alloc>\ntypename wstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::byte_string\nwstring_convert<_Codecvt, _Elem, _Wide_alloc, _Byte_alloc>::\n    to_bytes(const _Elem* __frm, const _Elem* __frm_end)\n{\n    __cvtcount_ = 0;\n    if (__cvtptr_ != nullptr)\n    {\n        byte_string __bs(2*(__frm_end - __frm), char());\n        if (__frm != __frm_end)\n            __bs.resize(__bs.capacity());\n        codecvt_base::result __r = codecvt_base::ok;\n        state_type __st = __cvtstate_;\n        if (__frm != __frm_end)\n        {\n            char* __to = &__bs[0];\n            char* __to_end = __to + __bs.size();\n            const _Elem* __frm_nxt;\n            do\n            {\n                char* __to_nxt;\n                __r = __cvtptr_->out(__st, __frm, __frm_end, __frm_nxt,\n                                           __to, __to_end, __to_nxt);\n                __cvtcount_ += __frm_nxt - __frm;\n                if (__frm_nxt == __frm)\n                {\n                    __r = codecvt_base::error;\n                }\n                else if (__r == codecvt_base::noconv)\n                {\n                    __bs.resize(__to - &__bs[0]);\n                    // This only gets executed if _Elem is char\n                    __bs.append((const char*)__frm, (const char*)__frm_end);\n                    __frm = __frm_nxt;\n                    __r = codecvt_base::ok;\n                }\n                else if (__r == codecvt_base::ok)\n                {\n                    __bs.resize(__to_nxt - &__bs[0]);\n                    __frm = __frm_nxt;\n                }\n                else if (__r == codecvt_base::partial)\n                {\n                    ptrdiff_t __s = __to_nxt - &__bs[0];\n                    __bs.resize(2 * __s);\n                    __to = &__bs[0] + __s;\n                    __to_end = &__bs[0] + __bs.size();\n                    __frm = __frm_nxt;\n                }\n            } while (__r == codecvt_base::partial && __frm_nxt < __frm_end);\n        }\n        if (__r == codecvt_base::ok)\n        {\n            size_t __s = __bs.size();\n            __bs.resize(__bs.capacity());\n            char* __to = &__bs[0] + __s;\n            char* __to_end = __to + __bs.size();\n            do\n            {\n                char* __to_nxt;\n                __r = __cvtptr_->unshift(__st, __to, __to_end, __to_nxt);\n                if (__r == codecvt_base::noconv)\n                {\n                    __bs.resize(__to - &__bs[0]);\n                    __r = codecvt_base::ok;\n                }\n                else if (__r == codecvt_base::ok)\n                {\n                    __bs.resize(__to_nxt - &__bs[0]);\n                }\n                else if (__r == codecvt_base::partial)\n                {\n                    ptrdiff_t __sp = __to_nxt - &__bs[0];\n                    __bs.resize(2 * __sp);\n                    __to = &__bs[0] + __sp;\n                    __to_end = &__bs[0] + __bs.size();\n                }\n            } while (__r == codecvt_base::partial);\n            if (__r == codecvt_base::ok)\n                return __bs;\n        }\n    }\n\n    if (__byte_err_string_.empty())\n        __throw_range_error(\"wstring_convert: to_bytes error\");\n\n    return __byte_err_string_;\n}\n\ntemplate <class _Codecvt, class _Elem = wchar_t, class _Tr = char_traits<_Elem> >\nclass _LIBCPP_TEMPLATE_VIS wbuffer_convert\n    : public basic_streambuf<_Elem, _Tr>\n{\npublic:\n    // types:\n    typedef _Elem                          char_type;\n    typedef _Tr                            traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef typename _Codecvt::state_type  state_type;\n\nprivate:\n    char*       __extbuf_;\n    const char* __extbufnext_;\n    const char* __extbufend_;\n    char __extbuf_min_[8];\n    size_t __ebs_;\n    char_type* __intbuf_;\n    size_t __ibs_;\n    streambuf* __bufptr_;\n    _Codecvt* __cv_;\n    state_type __st_;\n    ios_base::openmode __cm_;\n    bool __owns_eb_;\n    bool __owns_ib_;\n    bool __always_noconv_;\n\n    wbuffer_convert(const wbuffer_convert&);\n    wbuffer_convert& operator=(const wbuffer_convert&);\npublic:\n    _LIBCPP_EXPLICIT_AFTER_CXX11 wbuffer_convert(streambuf* __bytebuf = 0, \n            _Codecvt* __pcvt = new _Codecvt, state_type __state = state_type());\n    ~wbuffer_convert();\n\n    _LIBCPP_INLINE_VISIBILITY\n    streambuf* rdbuf() const {return __bufptr_;}\n    _LIBCPP_INLINE_VISIBILITY\n    streambuf* rdbuf(streambuf* __bytebuf)\n    {\n        streambuf* __r = __bufptr_;\n        __bufptr_ = __bytebuf;\n        return __r;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    state_type state() const {return __st_;}\n\nprotected:\n    virtual int_type underflow();\n    virtual int_type pbackfail(int_type __c = traits_type::eof());\n    virtual int_type overflow (int_type __c = traits_type::eof());\n    virtual basic_streambuf<char_type, traits_type>* setbuf(char_type* __s,\n                                                            streamsize __n);\n    virtual pos_type seekoff(off_type __off, ios_base::seekdir __way,\n                             ios_base::openmode __wch = ios_base::in | ios_base::out);\n    virtual pos_type seekpos(pos_type __sp,\n                             ios_base::openmode __wch = ios_base::in | ios_base::out);\n    virtual int sync();\n\nprivate:\n    bool __read_mode();\n    void __write_mode();\n    wbuffer_convert* __close();\n};\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\nwbuffer_convert<_Codecvt, _Elem, _Tr>::\n    wbuffer_convert(streambuf* __bytebuf, _Codecvt* __pcvt, state_type __state)\n    : __extbuf_(0),\n      __extbufnext_(0),\n      __extbufend_(0),\n      __ebs_(0),\n      __intbuf_(0),\n      __ibs_(0),\n      __bufptr_(__bytebuf),\n      __cv_(__pcvt),\n      __st_(__state),\n      __cm_(0),\n      __owns_eb_(false),\n      __owns_ib_(false),\n      __always_noconv_(__cv_ ? __cv_->always_noconv() : false)\n{\n    setbuf(0, 4096);\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\nwbuffer_convert<_Codecvt, _Elem, _Tr>::~wbuffer_convert()\n{\n    __close();\n    delete __cv_;\n    if (__owns_eb_)\n        delete [] __extbuf_;\n    if (__owns_ib_)\n        delete [] __intbuf_;\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\ntypename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type\nwbuffer_convert<_Codecvt, _Elem, _Tr>::underflow()\n{\n    if (__cv_ == 0 || __bufptr_ == 0)\n        return traits_type::eof();\n    bool __initial = __read_mode();\n    char_type __1buf;\n    if (this->gptr() == 0)\n        this->setg(&__1buf, &__1buf+1, &__1buf+1);\n    const size_t __unget_sz = __initial ? 0 : min<size_t>((this->egptr() - this->eback()) / 2, 4);\n    int_type __c = traits_type::eof();\n    if (this->gptr() == this->egptr())\n    {\n        memmove(this->eback(), this->egptr() - __unget_sz, __unget_sz * sizeof(char_type));\n        if (__always_noconv_)\n        {\n            streamsize __nmemb = static_cast<streamsize>(this->egptr() - this->eback() - __unget_sz);\n            __nmemb = __bufptr_->sgetn((char*)this->eback() + __unget_sz, __nmemb);\n            if (__nmemb != 0)\n            {\n                this->setg(this->eback(),\n                           this->eback() + __unget_sz,\n                           this->eback() + __unget_sz + __nmemb);\n                __c = *this->gptr();\n            }\n        }\n        else\n        {\n             _LIBCPP_ASSERT(!(__extbufnext_ == NULL && (__extbufend_ != __extbufnext_)), \"underflow moving from NULL\" );\n             if (__extbufend_ != __extbufnext_)\n                memmove(__extbuf_, __extbufnext_, __extbufend_ - __extbufnext_);\n            __extbufnext_ = __extbuf_ + (__extbufend_ - __extbufnext_);\n            __extbufend_ = __extbuf_ + (__extbuf_ == __extbuf_min_ ? sizeof(__extbuf_min_) : __ebs_);\n            streamsize __nmemb = _VSTD::min(static_cast<streamsize>(this->egptr() - this->eback() - __unget_sz),\n                                 static_cast<streamsize>(__extbufend_ - __extbufnext_));\n            codecvt_base::result __r;\n            // FIXME: Do we ever need to restore the state here?\n            //state_type __svs = __st_;\n            streamsize __nr = __bufptr_->sgetn(const_cast<char*>(__extbufnext_), __nmemb);\n            if (__nr != 0)\n            {\n                __extbufend_ = __extbufnext_ + __nr;\n                char_type*  __inext;\n                __r = __cv_->in(__st_, __extbuf_, __extbufend_, __extbufnext_,\n                                       this->eback() + __unget_sz,\n                                       this->egptr(), __inext);\n                if (__r == codecvt_base::noconv)\n                {\n                    this->setg((char_type*)__extbuf_, (char_type*)__extbuf_, \n                               (char_type*) const_cast<char *>(__extbufend_));\n                    __c = *this->gptr();\n                }\n                else if (__inext != this->eback() + __unget_sz)\n                {\n                    this->setg(this->eback(), this->eback() + __unget_sz, __inext);\n                    __c = *this->gptr();\n                }\n            }\n        }\n    }\n    else\n        __c = *this->gptr();\n    if (this->eback() == &__1buf)\n        this->setg(0, 0, 0);\n    return __c;\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\ntypename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type\nwbuffer_convert<_Codecvt, _Elem, _Tr>::pbackfail(int_type __c)\n{\n    if (__cv_ != 0 && __bufptr_ != 0 && this->eback() < this->gptr())\n    {\n        if (traits_type::eq_int_type(__c, traits_type::eof()))\n        {\n            this->gbump(-1);\n            return traits_type::not_eof(__c);\n        }\n        if (traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1]))\n        {\n            this->gbump(-1);\n            *this->gptr() = traits_type::to_char_type(__c);\n            return __c;\n        }\n    }\n    return traits_type::eof();\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\ntypename wbuffer_convert<_Codecvt, _Elem, _Tr>::int_type\nwbuffer_convert<_Codecvt, _Elem, _Tr>::overflow(int_type __c)\n{\n    if (__cv_ == 0 || __bufptr_ == 0)\n        return traits_type::eof();\n    __write_mode();\n    char_type __1buf;\n    char_type* __pb_save = this->pbase();\n    char_type* __epb_save = this->epptr();\n    if (!traits_type::eq_int_type(__c, traits_type::eof()))\n    {\n        if (this->pptr() == 0)\n            this->setp(&__1buf, &__1buf+1);\n        *this->pptr() = traits_type::to_char_type(__c);\n        this->pbump(1);\n    }\n    if (this->pptr() != this->pbase())\n    {\n        if (__always_noconv_)\n        {\n            streamsize __nmemb = static_cast<streamsize>(this->pptr() - this->pbase());\n            if (__bufptr_->sputn((const char*)this->pbase(), __nmemb) != __nmemb)\n                return traits_type::eof();\n        }\n        else\n        {\n            char* __extbe = __extbuf_;\n            codecvt_base::result __r;\n            do\n            {\n                const char_type* __e;\n                __r = __cv_->out(__st_, this->pbase(), this->pptr(), __e,\n                                        __extbuf_, __extbuf_ + __ebs_, __extbe);\n                if (__e == this->pbase())\n                    return traits_type::eof();\n                if (__r == codecvt_base::noconv)\n                {\n                    streamsize __nmemb = static_cast<size_t>(this->pptr() - this->pbase());\n                    if (__bufptr_->sputn((const char*)this->pbase(), __nmemb) != __nmemb)\n                        return traits_type::eof();\n                }\n                else if (__r == codecvt_base::ok || __r == codecvt_base::partial)\n                {\n                    streamsize __nmemb = static_cast<size_t>(__extbe - __extbuf_);\n                    if (__bufptr_->sputn(__extbuf_, __nmemb) != __nmemb)\n                        return traits_type::eof();\n                    if (__r == codecvt_base::partial)\n                    {\n                        this->setp(const_cast<char_type *>(__e), this->pptr());\n                        this->pbump(this->epptr() - this->pbase());\n                    }\n                }\n                else\n                    return traits_type::eof();\n            } while (__r == codecvt_base::partial);\n        }\n        this->setp(__pb_save, __epb_save);\n    }\n    return traits_type::not_eof(__c);\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\nbasic_streambuf<_Elem, _Tr>*\nwbuffer_convert<_Codecvt, _Elem, _Tr>::setbuf(char_type* __s, streamsize __n)\n{\n    this->setg(0, 0, 0);\n    this->setp(0, 0);\n    if (__owns_eb_)\n        delete [] __extbuf_;\n    if (__owns_ib_)\n        delete [] __intbuf_;\n    __ebs_ = __n;\n    if (__ebs_ > sizeof(__extbuf_min_))\n    {\n        if (__always_noconv_ && __s)\n        {\n            __extbuf_ = (char*)__s;\n            __owns_eb_ = false;\n        }\n        else\n        {\n            __extbuf_ = new char[__ebs_];\n            __owns_eb_ = true;\n        }\n    }\n    else\n    {\n        __extbuf_ = __extbuf_min_;\n        __ebs_ = sizeof(__extbuf_min_);\n        __owns_eb_ = false;\n    }\n    if (!__always_noconv_)\n    {\n        __ibs_ = max<streamsize>(__n, sizeof(__extbuf_min_));\n        if (__s && __ibs_ >= sizeof(__extbuf_min_))\n        {\n            __intbuf_ = __s;\n            __owns_ib_ = false;\n        }\n        else\n        {\n            __intbuf_ = new char_type[__ibs_];\n            __owns_ib_ = true;\n        }\n    }\n    else\n    {\n        __ibs_ = 0;\n        __intbuf_ = 0;\n        __owns_ib_ = false;\n    }\n    return this;\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\ntypename wbuffer_convert<_Codecvt, _Elem, _Tr>::pos_type\nwbuffer_convert<_Codecvt, _Elem, _Tr>::seekoff(off_type __off, ios_base::seekdir __way,\n                                        ios_base::openmode __om)\n{\n    int __width = __cv_->encoding();\n    if (__cv_ == 0 || __bufptr_ == 0 || (__width <= 0 && __off != 0) || sync())\n        return pos_type(off_type(-1));\n    // __width > 0 || __off == 0, now check __way\n    if (__way != ios_base::beg && __way != ios_base::cur && __way != ios_base::end)\n        return pos_type(off_type(-1));\n    pos_type __r = __bufptr_->pubseekoff(__width * __off, __way, __om);\n    __r.state(__st_);\n    return __r;\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\ntypename wbuffer_convert<_Codecvt, _Elem, _Tr>::pos_type\nwbuffer_convert<_Codecvt, _Elem, _Tr>::seekpos(pos_type __sp, ios_base::openmode __wch)\n{\n    if (__cv_ == 0 || __bufptr_ == 0 || sync())\n        return pos_type(off_type(-1));\n    if (__bufptr_->pubseekpos(__sp, __wch) == pos_type(off_type(-1)))\n        return pos_type(off_type(-1));\n    return __sp;\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\nint\nwbuffer_convert<_Codecvt, _Elem, _Tr>::sync()\n{\n    if (__cv_ == 0 || __bufptr_ == 0)\n        return 0;\n    if (__cm_ & ios_base::out)\n    {\n        if (this->pptr() != this->pbase())\n            if (overflow() == traits_type::eof())\n                return -1;\n        codecvt_base::result __r;\n        do\n        {\n            char* __extbe;\n            __r = __cv_->unshift(__st_, __extbuf_, __extbuf_ + __ebs_, __extbe);\n            streamsize __nmemb = static_cast<streamsize>(__extbe - __extbuf_);\n            if (__bufptr_->sputn(__extbuf_, __nmemb) != __nmemb)\n                return -1;\n        } while (__r == codecvt_base::partial);\n        if (__r == codecvt_base::error)\n            return -1;\n        if (__bufptr_->pubsync())\n            return -1;\n    }\n    else if (__cm_ & ios_base::in)\n    {\n        off_type __c;\n        if (__always_noconv_)\n            __c = this->egptr() - this->gptr();\n        else\n        {\n            int __width = __cv_->encoding();\n            __c = __extbufend_ - __extbufnext_;\n            if (__width > 0)\n                __c += __width * (this->egptr() - this->gptr());\n            else\n            {\n                if (this->gptr() != this->egptr())\n                {\n                    reverse(this->gptr(), this->egptr());\n                    codecvt_base::result __r;\n                    const char_type* __e = this->gptr();\n                    char* __extbe;\n                    do\n                    {\n                        __r = __cv_->out(__st_, __e, this->egptr(), __e,\n                                         __extbuf_, __extbuf_ + __ebs_, __extbe);\n                        switch (__r)\n                        {\n                        case codecvt_base::noconv:\n                            __c += this->egptr() - this->gptr();\n                            break;\n                        case codecvt_base::ok:\n                        case codecvt_base::partial:\n                            __c += __extbe - __extbuf_;\n                            break;\n                        default:\n                            return -1;\n                        }\n                    } while (__r == codecvt_base::partial);\n                }\n            }\n        }\n        if (__bufptr_->pubseekoff(-__c, ios_base::cur, __cm_) == pos_type(off_type(-1)))\n            return -1;\n        this->setg(0, 0, 0);\n        __cm_ = 0;\n    }\n    return 0;\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\nbool\nwbuffer_convert<_Codecvt, _Elem, _Tr>::__read_mode()\n{\n    if (!(__cm_ & ios_base::in))\n    {\n        this->setp(0, 0);\n        if (__always_noconv_)\n            this->setg((char_type*)__extbuf_,\n                       (char_type*)__extbuf_ + __ebs_,\n                       (char_type*)__extbuf_ + __ebs_);\n        else\n            this->setg(__intbuf_, __intbuf_ + __ibs_, __intbuf_ + __ibs_);\n        __cm_ = ios_base::in;\n        return true;\n    }\n    return false;\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\nvoid\nwbuffer_convert<_Codecvt, _Elem, _Tr>::__write_mode()\n{\n    if (!(__cm_ & ios_base::out))\n    {\n        this->setg(0, 0, 0);\n        if (__ebs_ > sizeof(__extbuf_min_))\n        {\n            if (__always_noconv_)\n                this->setp((char_type*)__extbuf_,\n                           (char_type*)__extbuf_ + (__ebs_ - 1));\n            else\n                this->setp(__intbuf_, __intbuf_ + (__ibs_ - 1));\n        }\n        else\n            this->setp(0, 0);\n        __cm_ = ios_base::out;\n    }\n}\n\ntemplate <class _Codecvt, class _Elem, class _Tr>\nwbuffer_convert<_Codecvt, _Elem, _Tr>*\nwbuffer_convert<_Codecvt, _Elem, _Tr>::__close()\n{\n    wbuffer_convert* __rt = 0;\n    if (__cv_ != 0 && __bufptr_ != 0)\n    {\n        __rt = this;\n        if ((__cm_ & ios_base::out) && sync())\n            __rt = 0;\n    }\n    return __rt;\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_LOCALE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/locale.h",
    "content": "// -*- C++ -*-\n//===---------------------------- locale.h --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_LOCALE_H\n#define _LIBCPP_LOCALE_H\n\n/*\n    locale.h synopsis\n\nMacros:\n\n    LC_ALL\n    LC_COLLATE\n    LC_CTYPE\n    LC_MONETARY\n    LC_NUMERIC\n    LC_TIME\n\nTypes:\n\n    lconv\n\nFunctions:\n\n   setlocale\n   localeconv\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <locale.h>\n\n#endif  // _LIBCPP_LOCALE_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/map",
    "content": "// -*- C++ -*-\n//===----------------------------- map ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_MAP\n#define _LIBCPP_MAP\n\n/*\n\n    map synopsis\n\nnamespace std\n{\n\ntemplate <class Key, class T, class Compare = less<Key>,\n          class Allocator = allocator<pair<const Key, T>>>\nclass map\n{\npublic:\n    // types:\n    typedef Key                                      key_type;\n    typedef T                                        mapped_type;\n    typedef pair<const key_type, mapped_type>        value_type;\n    typedef Compare                                  key_compare;\n    typedef Allocator                                allocator_type;\n    typedef typename allocator_type::reference       reference;\n    typedef typename allocator_type::const_reference const_reference;\n    typedef typename allocator_type::pointer         pointer;\n    typedef typename allocator_type::const_pointer   const_pointer;\n    typedef typename allocator_type::size_type       size_type;\n    typedef typename allocator_type::difference_type difference_type;\n\n    typedef implementation-defined                   iterator;\n    typedef implementation-defined                   const_iterator;\n    typedef std::reverse_iterator<iterator>          reverse_iterator;\n    typedef std::reverse_iterator<const_iterator>    const_reverse_iterator;\n\n    class value_compare\n        : public binary_function<value_type, value_type, bool>\n    {\n        friend class map;\n    protected:\n        key_compare comp;\n\n        value_compare(key_compare c);\n    public:\n        bool operator()(const value_type& x, const value_type& y) const;\n    };\n\n    // construct/copy/destroy:\n    map()\n        noexcept(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_default_constructible<key_compare>::value &&\n            is_nothrow_copy_constructible<key_compare>::value);\n    explicit map(const key_compare& comp);\n    map(const key_compare& comp, const allocator_type& a);\n    template <class InputIterator>\n        map(InputIterator first, InputIterator last,\n            const key_compare& comp = key_compare());\n    template <class InputIterator>\n        map(InputIterator first, InputIterator last,\n            const key_compare& comp, const allocator_type& a);\n    map(const map& m);\n    map(map&& m)\n        noexcept(\n            is_nothrow_move_constructible<allocator_type>::value &&\n            is_nothrow_move_constructible<key_compare>::value);\n    explicit map(const allocator_type& a);\n    map(const map& m, const allocator_type& a);\n    map(map&& m, const allocator_type& a);\n    map(initializer_list<value_type> il, const key_compare& comp = key_compare());\n    map(initializer_list<value_type> il, const key_compare& comp, const allocator_type& a);\n    template <class InputIterator>\n        map(InputIterator first, InputIterator last, const allocator_type& a)\n            : map(first, last, Compare(), a) {}  // C++14\n    map(initializer_list<value_type> il, const allocator_type& a)\n        : map(il, Compare(), a) {}  // C++14\n   ~map();\n\n    map& operator=(const map& m);\n    map& operator=(map&& m)\n        noexcept(\n            allocator_type::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<allocator_type>::value &&\n            is_nothrow_move_assignable<key_compare>::value);\n    map& operator=(initializer_list<value_type> il);\n\n    // iterators:\n          iterator begin() noexcept;\n    const_iterator begin() const noexcept;\n          iterator end() noexcept;\n    const_iterator end()   const noexcept;\n\n          reverse_iterator rbegin() noexcept;\n    const_reverse_iterator rbegin() const noexcept;\n          reverse_iterator rend() noexcept;\n    const_reverse_iterator rend()   const noexcept;\n\n    const_iterator         cbegin()  const noexcept;\n    const_iterator         cend()    const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend()   const noexcept;\n\n    // capacity:\n    bool      empty()    const noexcept;\n    size_type size()     const noexcept;\n    size_type max_size() const noexcept;\n\n    // element access:\n    mapped_type& operator[](const key_type& k);\n    mapped_type& operator[](key_type&& k);\n\n          mapped_type& at(const key_type& k);\n    const mapped_type& at(const key_type& k) const;\n\n    // modifiers:\n    template <class... Args>\n        pair<iterator, bool> emplace(Args&&... args);\n    template <class... Args>\n        iterator emplace_hint(const_iterator position, Args&&... args);\n    pair<iterator, bool> insert(const value_type& v);\n    pair<iterator, bool> insert(      value_type&& v);                                // C++17\n    template <class P>\n        pair<iterator, bool> insert(P&& p);\n    iterator insert(const_iterator position, const value_type& v);\n    iterator insert(const_iterator position,       value_type&& v);                   // C++17\n    template <class P>\n        iterator insert(const_iterator position, P&& p);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n    void insert(initializer_list<value_type> il);\n\n    template <class... Args>\n        pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);          // C++17\n    template <class... Args>\n        pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);               // C++17\n    template <class... Args>\n        iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); // C++17\n    template <class... Args>\n        iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);      // C++17\n    template <class M>\n        pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);            // C++17\n    template <class M>\n        pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);                 // C++17\n    template <class M>\n        iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);   // C++17\n    template <class M>\n        iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);        // C++17\n\n    iterator  erase(const_iterator position);\n    iterator  erase(iterator position); // C++14\n    size_type erase(const key_type& k);\n    iterator  erase(const_iterator first, const_iterator last);\n    void clear() noexcept;\n\n    void swap(map& m)\n        noexcept(allocator_traits<allocator_type>::is_always_equal::value &&\n            is_nothrow_swappable<key_compare>::value); // C++17\n\n    // observers:\n    allocator_type get_allocator() const noexcept;\n    key_compare    key_comp()      const;\n    value_compare  value_comp()    const;\n\n    // map operations:\n          iterator find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    template<typename K>\n        iterator find(const K& x);              // C++14\n    template<typename K>\n        const_iterator find(const K& x) const;  // C++14\n    template<typename K>\n      size_type count(const K& x) const;        // C++14\n\n    size_type      count(const key_type& k) const;\n          iterator lower_bound(const key_type& k);\n    const_iterator lower_bound(const key_type& k) const;\n    template<typename K>\n        iterator lower_bound(const K& x);              // C++14\n    template<typename K>\n        const_iterator lower_bound(const K& x) const;  // C++14\n\n          iterator upper_bound(const key_type& k);\n    const_iterator upper_bound(const key_type& k) const;\n    template<typename K>\n        iterator upper_bound(const K& x);              // C++14\n    template<typename K>\n        const_iterator upper_bound(const K& x) const;  // C++14\n\n    pair<iterator,iterator>             equal_range(const key_type& k);\n    pair<const_iterator,const_iterator> equal_range(const key_type& k) const;\n    template<typename K>\n        pair<iterator,iterator>             equal_range(const K& x);        // C++14\n    template<typename K>\n        pair<const_iterator,const_iterator> equal_range(const K& x) const;  // C++14\n};\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator==(const map<Key, T, Compare, Allocator>& x,\n           const map<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator< (const map<Key, T, Compare, Allocator>& x,\n           const map<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator!=(const map<Key, T, Compare, Allocator>& x,\n           const map<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator> (const map<Key, T, Compare, Allocator>& x,\n           const map<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator>=(const map<Key, T, Compare, Allocator>& x,\n           const map<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator<=(const map<Key, T, Compare, Allocator>& x,\n           const map<Key, T, Compare, Allocator>& y);\n\n// specialized algorithms:\ntemplate <class Key, class T, class Compare, class Allocator>\nvoid\nswap(map<Key, T, Compare, Allocator>& x, map<Key, T, Compare, Allocator>& y)\n    noexcept(noexcept(x.swap(y)));\n\ntemplate <class Key, class T, class Compare = less<Key>,\n          class Allocator = allocator<pair<const Key, T>>>\nclass multimap\n{\npublic:\n    // types:\n    typedef Key                                      key_type;\n    typedef T                                        mapped_type;\n    typedef pair<const key_type,mapped_type>         value_type;\n    typedef Compare                                  key_compare;\n    typedef Allocator                                allocator_type;\n    typedef typename allocator_type::reference       reference;\n    typedef typename allocator_type::const_reference const_reference;\n    typedef typename allocator_type::size_type       size_type;\n    typedef typename allocator_type::difference_type difference_type;\n    typedef typename allocator_type::pointer         pointer;\n    typedef typename allocator_type::const_pointer   const_pointer;\n\n    typedef implementation-defined                   iterator;\n    typedef implementation-defined                   const_iterator;\n    typedef std::reverse_iterator<iterator>          reverse_iterator;\n    typedef std::reverse_iterator<const_iterator>    const_reverse_iterator;\n\n    class value_compare\n        : public binary_function<value_type,value_type,bool>\n    {\n        friend class multimap;\n    protected:\n        key_compare comp;\n        value_compare(key_compare c);\n    public:\n        bool operator()(const value_type& x, const value_type& y) const;\n    };\n\n    // construct/copy/destroy:\n    multimap()\n        noexcept(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_default_constructible<key_compare>::value &&\n            is_nothrow_copy_constructible<key_compare>::value);\n    explicit multimap(const key_compare& comp);\n    multimap(const key_compare& comp, const allocator_type& a);\n    template <class InputIterator>\n        multimap(InputIterator first, InputIterator last, const key_compare& comp);\n    template <class InputIterator>\n        multimap(InputIterator first, InputIterator last, const key_compare& comp,\n                 const allocator_type& a);\n    multimap(const multimap& m);\n    multimap(multimap&& m)\n        noexcept(\n            is_nothrow_move_constructible<allocator_type>::value &&\n            is_nothrow_move_constructible<key_compare>::value);\n    explicit multimap(const allocator_type& a);\n    multimap(const multimap& m, const allocator_type& a);\n    multimap(multimap&& m, const allocator_type& a);\n    multimap(initializer_list<value_type> il, const key_compare& comp = key_compare());\n    multimap(initializer_list<value_type> il, const key_compare& comp,\n             const allocator_type& a);\n    template <class InputIterator>\n        multimap(InputIterator first, InputIterator last, const allocator_type& a)\n            : multimap(first, last, Compare(), a) {} // C++14\n    multimap(initializer_list<value_type> il, const allocator_type& a)\n        : multimap(il, Compare(), a) {} // C++14\n    ~multimap();\n\n    multimap& operator=(const multimap& m);\n    multimap& operator=(multimap&& m)\n        noexcept(\n            allocator_type::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<allocator_type>::value &&\n            is_nothrow_move_assignable<key_compare>::value);\n    multimap& operator=(initializer_list<value_type> il);\n\n    // iterators:\n          iterator begin() noexcept;\n    const_iterator begin() const noexcept;\n          iterator end() noexcept;\n    const_iterator end()   const noexcept;\n\n          reverse_iterator rbegin() noexcept;\n    const_reverse_iterator rbegin() const noexcept;\n          reverse_iterator rend() noexcept;\n    const_reverse_iterator rend()   const noexcept;\n\n    const_iterator         cbegin()  const noexcept;\n    const_iterator         cend()    const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend()   const noexcept;\n\n    // capacity:\n    bool      empty()    const noexcept;\n    size_type size()     const noexcept;\n    size_type max_size() const noexcept;\n\n    // modifiers:\n    template <class... Args>\n        iterator emplace(Args&&... args);\n    template <class... Args>\n        iterator emplace_hint(const_iterator position, Args&&... args);\n    iterator insert(const value_type& v);\n    iterator insert(      value_type&& v);                                            // C++17\n    template <class P>\n        iterator insert(P&& p);\n    iterator insert(const_iterator position, const value_type& v);\n    iterator insert(const_iterator position,       value_type&& v);                   // C++17\n    template <class P>\n        iterator insert(const_iterator position, P&& p);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n    void insert(initializer_list<value_type> il);\n\n    iterator  erase(const_iterator position);\n    iterator  erase(iterator position); // C++14\n    size_type erase(const key_type& k);\n    iterator  erase(const_iterator first, const_iterator last);\n    void clear() noexcept;\n\n    void swap(multimap& m)\n        noexcept(allocator_traits<allocator_type>::is_always_equal::value &&\n            is_nothrow_swappable<key_compare>::value); // C++17\n\n    // observers:\n    allocator_type get_allocator() const noexcept;\n    key_compare    key_comp()      const;\n    value_compare  value_comp()    const;\n\n    // map operations:\n          iterator find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    template<typename K>\n        iterator find(const K& x);              // C++14\n    template<typename K>\n        const_iterator find(const K& x) const;  // C++14\n    template<typename K>\n      size_type count(const K& x) const;        // C++14\n\n    size_type      count(const key_type& k) const;\n          iterator lower_bound(const key_type& k);\n    const_iterator lower_bound(const key_type& k) const;\n    template<typename K>\n        iterator lower_bound(const K& x);              // C++14\n    template<typename K>\n        const_iterator lower_bound(const K& x) const;  // C++14\n\n          iterator upper_bound(const key_type& k);\n    const_iterator upper_bound(const key_type& k) const;\n    template<typename K>\n        iterator upper_bound(const K& x);              // C++14\n    template<typename K>\n        const_iterator upper_bound(const K& x) const;  // C++14\n\n    pair<iterator,iterator>             equal_range(const key_type& k);\n    pair<const_iterator,const_iterator> equal_range(const key_type& k) const;\n    template<typename K>\n        pair<iterator,iterator>             equal_range(const K& x);        // C++14\n    template<typename K>\n        pair<const_iterator,const_iterator> equal_range(const K& x) const;  // C++14\n};\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator==(const multimap<Key, T, Compare, Allocator>& x,\n           const multimap<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator< (const multimap<Key, T, Compare, Allocator>& x,\n           const multimap<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator!=(const multimap<Key, T, Compare, Allocator>& x,\n           const multimap<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator> (const multimap<Key, T, Compare, Allocator>& x,\n           const multimap<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator>=(const multimap<Key, T, Compare, Allocator>& x,\n           const multimap<Key, T, Compare, Allocator>& y);\n\ntemplate <class Key, class T, class Compare, class Allocator>\nbool\noperator<=(const multimap<Key, T, Compare, Allocator>& x,\n           const multimap<Key, T, Compare, Allocator>& y);\n\n// specialized algorithms:\ntemplate <class Key, class T, class Compare, class Allocator>\nvoid\nswap(multimap<Key, T, Compare, Allocator>& x,\n     multimap<Key, T, Compare, Allocator>& y)\n    noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__tree>\n#include <iterator>\n#include <memory>\n#include <utility>\n#include <functional>\n#include <initializer_list>\n#include <type_traits>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Key, class _CP, class _Compare, bool _IsSmall>\nclass __map_value_compare\n    : private _Compare\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __map_value_compare()\n        _NOEXCEPT_(is_nothrow_default_constructible<_Compare>::value)\n        : _Compare() {}\n    _LIBCPP_INLINE_VISIBILITY\n    __map_value_compare(_Compare c)\n        _NOEXCEPT_(is_nothrow_copy_constructible<_Compare>::value)\n        : _Compare(c) {}\n    _LIBCPP_INLINE_VISIBILITY\n    const _Compare& key_comp() const _NOEXCEPT {return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _CP& __x, const _CP& __y) const\n        {return static_cast<const _Compare&>(*this)(__x.__cc.first, __y.__cc.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _CP& __x, const _Key& __y) const\n        {return static_cast<const _Compare&>(*this)(__x.__cc.first, __y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Key& __x, const _CP& __y) const\n        {return static_cast<const _Compare&>(*this)(__x, __y.__cc.first);}\n    void swap(__map_value_compare&__y)\n        _NOEXCEPT_(__is_nothrow_swappable<_Compare>::value)\n    {\n      using _VSTD::swap;\n      swap(static_cast<_Compare&>(*this), static_cast<_Compare&>(__y));\n    }\n\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value, bool>::type\n    operator () ( const _K2& __x, const _CP& __y ) const\n        {return static_cast<const _Compare&>(*this) (__x, __y.__cc.first);}\n\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value, bool>::type\n    operator () (const _CP& __x, const _K2& __y) const\n        {return static_cast<const _Compare&>(*this) (__x.__cc.first, __y);}\n#endif\n};\n\ntemplate <class _Key, class _CP, class _Compare>\nclass __map_value_compare<_Key, _CP, _Compare, false>\n{\n    _Compare comp;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __map_value_compare()\n        _NOEXCEPT_(is_nothrow_default_constructible<_Compare>::value)\n        : comp() {}\n    _LIBCPP_INLINE_VISIBILITY\n    __map_value_compare(_Compare c)\n        _NOEXCEPT_(is_nothrow_copy_constructible<_Compare>::value)\n        : comp(c) {}\n    _LIBCPP_INLINE_VISIBILITY\n    const _Compare& key_comp() const _NOEXCEPT {return comp;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _CP& __x, const _CP& __y) const\n        {return comp(__x.__cc.first, __y.__cc.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _CP& __x, const _Key& __y) const\n        {return comp(__x.__cc.first, __y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Key& __x, const _CP& __y) const\n        {return comp(__x, __y.__cc.first);}\n    void swap(__map_value_compare&__y)\n        _NOEXCEPT_(__is_nothrow_swappable<_Compare>::value)\n    {\n        using _VSTD::swap;\n        swap(comp, __y.comp);\n    }\n\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value, bool>::type\n    operator () ( const _K2& __x, const _CP& __y ) const\n        {return comp (__x, __y.__cc.first);}\n\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value, bool>::type\n    operator () (const _CP& __x, const _K2& __y) const\n        {return comp (__x.__cc.first, __y);}\n#endif\n};\n\ntemplate <class _Key, class _CP, class _Compare, bool __b>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__map_value_compare<_Key, _CP, _Compare, __b>& __x,\n     __map_value_compare<_Key, _CP, _Compare, __b>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Allocator>\nclass __map_node_destructor\n{\n    typedef _Allocator                          allocator_type;\n    typedef allocator_traits<allocator_type>    __alloc_traits;\n\npublic:\n    typedef typename __alloc_traits::pointer    pointer;\n\nprivate:\n    allocator_type& __na_;\n\n    __map_node_destructor& operator=(const __map_node_destructor&);\n\npublic:\n    bool __first_constructed;\n    bool __second_constructed;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __map_node_destructor(allocator_type& __na) _NOEXCEPT\n        : __na_(__na),\n          __first_constructed(false),\n          __second_constructed(false)\n        {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __map_node_destructor(__tree_node_destructor<allocator_type>&& __x) _NOEXCEPT\n        : __na_(__x.__na_),\n          __first_constructed(__x.__value_constructed),\n          __second_constructed(__x.__value_constructed)\n        {\n            __x.__value_constructed = false;\n        }\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()(pointer __p) _NOEXCEPT\n    {\n        if (__second_constructed)\n            __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.__cc.second));\n        if (__first_constructed)\n            __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.__cc.first));\n        if (__p)\n            __alloc_traits::deallocate(__na_, __p, 1);\n    }\n};\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\n    class map;\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\n    class multimap;\ntemplate <class _TreeIterator> class __map_const_iterator;\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Tp>\nunion __value_type\n{\n    typedef _Key                                     key_type;\n    typedef _Tp                                      mapped_type;\n    typedef pair<const key_type, mapped_type>        value_type;\n    typedef pair<key_type, mapped_type>              __nc_value_type;\n\n    value_type __cc;\n    __nc_value_type __nc;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __value_type& operator=(const __value_type& __v)\n        {__nc = __v.__cc; return *this;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __value_type& operator=(__value_type&& __v)\n        {__nc = _VSTD::move(__v.__nc); return *this;}\n\n    template <class _ValueTp,\n              class = typename enable_if<\n                    __is_same_uncvref<_ValueTp, value_type>::value\n                 >::type\n             >\n    _LIBCPP_INLINE_VISIBILITY\n    __value_type& operator=(_ValueTp&& __v) {\n        __nc = _VSTD::forward<_ValueTp>(__v); return *this;\n    }\n\nprivate:\n    __value_type() _LIBCPP_EQUAL_DELETE;\n    ~__value_type() _LIBCPP_EQUAL_DELETE;\n    __value_type(const __value_type& __v) _LIBCPP_EQUAL_DELETE;\n    __value_type(__value_type&& __v) _LIBCPP_EQUAL_DELETE;\n};\n\n#else\n\ntemplate <class _Key, class _Tp>\nstruct __value_type\n{\n    typedef _Key                                     key_type;\n    typedef _Tp                                      mapped_type;\n    typedef pair<const key_type, mapped_type>        value_type;\n\n    value_type __cc;\n\nprivate:\n   __value_type();\n   __value_type(__value_type const&);\n   __value_type& operator=(__value_type const&);\n   ~__value_type();\n};\n\n#endif // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\nstruct __extract_key_value_types;\n\ntemplate <class _Key, class _Tp>\nstruct __extract_key_value_types<__value_type<_Key, _Tp> >\n{\n  typedef _Key const __key_type;\n  typedef _Tp        __mapped_type;\n};\n\ntemplate <class _TreeIterator>\nclass _LIBCPP_TEMPLATE_VIS __map_iterator\n{\n    typedef typename _TreeIterator::_NodeTypes                   _NodeTypes;\n    typedef typename _TreeIterator::__pointer_traits             __pointer_traits;\n\n    _TreeIterator __i_;\n\npublic:\n    typedef bidirectional_iterator_tag                           iterator_category;\n    typedef typename _NodeTypes::__map_value_type                value_type;\n    typedef typename _TreeIterator::difference_type              difference_type;\n    typedef value_type&                                          reference;\n    typedef typename _NodeTypes::__map_value_type_pointer        pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __map_iterator() _NOEXCEPT {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __map_iterator(_TreeIterator __i) _NOEXCEPT : __i_(__i) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {return __i_->__cc;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {return pointer_traits<pointer>::pointer_to(__i_->__cc);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __map_iterator& operator++() {++__i_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    __map_iterator operator++(int)\n    {\n        __map_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __map_iterator& operator--() {--__i_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    __map_iterator operator--(int)\n    {\n        __map_iterator __t(*this);\n        --(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __map_iterator& __x, const __map_iterator& __y)\n        {return __x.__i_ == __y.__i_;}\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __map_iterator& __x, const __map_iterator& __y)\n        {return __x.__i_ != __y.__i_;}\n\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __map_const_iterator;\n};\n\ntemplate <class _TreeIterator>\nclass _LIBCPP_TEMPLATE_VIS __map_const_iterator\n{\n    typedef typename _TreeIterator::_NodeTypes                   _NodeTypes;\n    typedef typename _TreeIterator::__pointer_traits             __pointer_traits;\n\n    _TreeIterator __i_;\n\npublic:\n    typedef bidirectional_iterator_tag                           iterator_category;\n    typedef typename _NodeTypes::__map_value_type                value_type;\n    typedef typename _TreeIterator::difference_type              difference_type;\n    typedef const value_type&                                    reference;\n    typedef typename _NodeTypes::__const_map_value_type_pointer  pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __map_const_iterator() _NOEXCEPT {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __map_const_iterator(_TreeIterator __i) _NOEXCEPT : __i_(__i) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __map_const_iterator(__map_iterator<\n        typename _TreeIterator::__non_const_iterator> __i) _NOEXCEPT\n        : __i_(__i.__i_) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {return __i_->__cc;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {return pointer_traits<pointer>::pointer_to(__i_->__cc);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __map_const_iterator& operator++() {++__i_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    __map_const_iterator operator++(int)\n    {\n        __map_const_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __map_const_iterator& operator--() {--__i_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    __map_const_iterator operator--(int)\n    {\n        __map_const_iterator __t(*this);\n        --(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const __map_const_iterator& __x, const __map_const_iterator& __y)\n        {return __x.__i_ == __y.__i_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const __map_const_iterator& __x, const __map_const_iterator& __y)\n        {return __x.__i_ != __y.__i_;}\n\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS map;\n    template <class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS multimap;\n    template <class, class, class> friend class _LIBCPP_TEMPLATE_VIS __tree_const_iterator;\n};\n\ntemplate <class _Key, class _Tp, class _Compare = less<_Key>,\n          class _Allocator = allocator<pair<const _Key, _Tp> > >\nclass _LIBCPP_TEMPLATE_VIS map\n{\npublic:\n    // types:\n    typedef _Key                                     key_type;\n    typedef _Tp                                      mapped_type;\n    typedef pair<const key_type, mapped_type>        value_type;\n    typedef pair<key_type, mapped_type>              __nc_value_type;\n    typedef _Compare                                 key_compare;\n    typedef _Allocator                               allocator_type;\n    typedef value_type&                              reference;\n    typedef const value_type&                        const_reference;\n\n    static_assert((is_same<typename allocator_type::value_type, value_type>::value),\n                  \"Allocator::value_type must be same type as value_type\");\n\n    class _LIBCPP_TEMPLATE_VIS value_compare\n        : public binary_function<value_type, value_type, bool>\n    {\n        friend class map;\n    protected:\n        key_compare comp;\n\n        _LIBCPP_INLINE_VISIBILITY value_compare(key_compare c) : comp(c) {}\n    public:\n        _LIBCPP_INLINE_VISIBILITY\n        bool operator()(const value_type& __x, const value_type& __y) const\n            {return comp(__x.first, __y.first);}\n    };\n\nprivate:\n\n    typedef _VSTD::__value_type<key_type, mapped_type>             __value_type;\n    typedef __map_value_compare<key_type, __value_type, key_compare> __vc;\n    typedef typename __rebind_alloc_helper<allocator_traits<allocator_type>,\n                                                 __value_type>::type __allocator_type;\n    typedef __tree<__value_type, __vc, __allocator_type>   __base;\n    typedef typename __base::__node_traits                 __node_traits;\n    typedef allocator_traits<allocator_type>               __alloc_traits;\n\n    __base __tree_;\n\npublic:\n    typedef typename __alloc_traits::pointer               pointer;\n    typedef typename __alloc_traits::const_pointer         const_pointer;\n    typedef typename __alloc_traits::size_type             size_type;\n    typedef typename __alloc_traits::difference_type       difference_type;\n    typedef __map_iterator<typename __base::iterator>             iterator;\n    typedef __map_const_iterator<typename __base::const_iterator> const_iterator;\n    typedef _VSTD::reverse_iterator<iterator>               reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator>         const_reverse_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    map()\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_default_constructible<key_compare>::value &&\n            is_nothrow_copy_constructible<key_compare>::value)\n        : __tree_(__vc(key_compare())) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit map(const key_compare& __comp)\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_copy_constructible<key_compare>::value)\n        : __tree_(__vc(__comp)) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit map(const key_compare& __comp, const allocator_type& __a)\n        : __tree_(__vc(__comp), typename __base::allocator_type(__a)) {}\n\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n        map(_InputIterator __f, _InputIterator __l,\n            const key_compare& __comp = key_compare())\n        : __tree_(__vc(__comp))\n        {\n            insert(__f, __l);\n        }\n\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n        map(_InputIterator __f, _InputIterator __l,\n            const key_compare& __comp, const allocator_type& __a)\n        : __tree_(__vc(__comp), typename __base::allocator_type(__a))\n        {\n            insert(__f, __l);\n        }\n\n#if _LIBCPP_STD_VER > 11\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n    map(_InputIterator __f, _InputIterator __l, const allocator_type& __a)\n        : map(__f, __l, key_compare(), __a) {}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    map(const map& __m)\n        : __tree_(__m.__tree_)\n        {\n            insert(__m.begin(), __m.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    map& operator=(const map& __m)\n        {\n#ifndef _LIBCPP_CXX03_LANG\n            __tree_ = __m.__tree_;\n#else\n            if (this != &__m) {\n                __tree_.clear();\n                __tree_.value_comp() = __m.__tree_.value_comp();\n                __tree_.__copy_assign_alloc(__m.__tree_);\n                insert(__m.begin(), __m.end());\n            }\n#endif\n            return *this;\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    map(map&& __m)\n        _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)\n        : __tree_(_VSTD::move(__m.__tree_))\n        {\n        }\n\n    map(map&& __m, const allocator_type& __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    map& operator=(map&& __m)\n        _NOEXCEPT_(is_nothrow_move_assignable<__base>::value)\n        {\n            __tree_ = _VSTD::move(__m.__tree_);\n            return *this;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    map(initializer_list<value_type> __il, const key_compare& __comp = key_compare())\n        : __tree_(__vc(__comp))\n        {\n            insert(__il.begin(), __il.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    map(initializer_list<value_type> __il, const key_compare& __comp, const allocator_type& __a)\n        : __tree_(__vc(__comp), typename __base::allocator_type(__a))\n        {\n            insert(__il.begin(), __il.end());\n        }\n\n#if _LIBCPP_STD_VER > 11\n    _LIBCPP_INLINE_VISIBILITY\n    map(initializer_list<value_type> __il, const allocator_type& __a)\n        : map(__il, key_compare(), __a) {}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    map& operator=(initializer_list<value_type> __il)\n        {\n            __tree_.__assign_unique(__il.begin(), __il.end());\n            return *this;\n        }\n\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit map(const allocator_type& __a)\n        : __tree_(typename __base::allocator_type(__a))\n        {\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    map(const map& __m, const allocator_type& __a)\n        : __tree_(__m.__tree_.value_comp(), typename __base::allocator_type(__a))\n        {\n            insert(__m.begin(), __m.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n          iterator begin() _NOEXCEPT {return __tree_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT {return __tree_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n          iterator end() _NOEXCEPT {return __tree_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const _NOEXCEPT {return __tree_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rbegin() _NOEXCEPT {return reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin() const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rend() _NOEXCEPT\n            {return       reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend() const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const _NOEXCEPT {return begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend() const _NOEXCEPT {return end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT {return rbegin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend() const _NOEXCEPT {return rend();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const _NOEXCEPT {return __tree_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT {return __tree_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {return __tree_.max_size();}\n\n    mapped_type& operator[](const key_type& __k);\n#ifndef _LIBCPP_CXX03_LANG\n    mapped_type& operator[](key_type&& __k);\n#endif\n\n          mapped_type& at(const key_type& __k);\n    const mapped_type& at(const key_type& __k) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT {return allocator_type(__tree_.__alloc());}\n    _LIBCPP_INLINE_VISIBILITY\n    key_compare    key_comp()      const {return __tree_.value_comp().key_comp();}\n    _LIBCPP_INLINE_VISIBILITY\n    value_compare  value_comp()    const {return value_compare(__tree_.value_comp().key_comp());}\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> emplace(_Args&& ...__args) {\n        return __tree_.__emplace_unique(_VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator emplace_hint(const_iterator __p, _Args&& ...__args) {\n        return __tree_.__emplace_hint_unique(__p.__i_, _VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class _Pp,\n              class = typename enable_if<is_constructible<value_type, _Pp>::value>::type>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> insert(_Pp&& __p)\n            {return __tree_.__insert_unique(_VSTD::forward<_Pp>(__p));}\n\n    template <class _Pp,\n              class = typename enable_if<is_constructible<value_type, _Pp>::value>::type>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator insert(const_iterator __pos, _Pp&& __p)\n            {return __tree_.__insert_unique(__pos.__i_, _VSTD::forward<_Pp>(__p));}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n        insert(const value_type& __v) {return __tree_.__insert_unique(__v);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator\n        insert(const_iterator __p, const value_type& __v)\n            {return __tree_.__insert_unique(__p.__i_, __v);}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool>\n    insert(value_type&& __v) {return __tree_.__insert_unique(_VSTD::move(__v));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p,  value_type&& __v)\n    {return __tree_.__insert_unique(__p.__i_, _VSTD::move(__v));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(initializer_list<value_type> __il)\n        {insert(__il.begin(), __il.end());}\n#endif\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __f, _InputIterator __l)\n        {\n            for (const_iterator __e = cend(); __f != __l; ++__f)\n                insert(__e.__i_, *__f);\n        }\n\n#if _LIBCPP_STD_VER > 14\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> try_emplace(const key_type& __k, _Args&&... __args)\n    {\n        return __tree_.__emplace_unique_key_args(__k,\n            _VSTD::piecewise_construct,\n            _VSTD::forward_as_tuple(__k),\n            _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...));\n    }\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> try_emplace(key_type&& __k, _Args&&... __args)\n    {\n        return __tree_.__emplace_unique_key_args(__k,\n            _VSTD::piecewise_construct,\n            _VSTD::forward_as_tuple(_VSTD::move(__k)),\n            _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...));\n    }\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator try_emplace(const_iterator __h, const key_type& __k, _Args&&... __args)\n    {\n        return __tree_.__emplace_hint_unique_key_args(__h.__i_, __k,\n            _VSTD::piecewise_construct,\n            _VSTD::forward_as_tuple(__k),\n            _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...));\n    }\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator try_emplace(const_iterator __h, key_type&& __k, _Args&&... __args)\n    {\n        return __tree_.__emplace_hint_unique_key_args(__h.__i_, __k,\n            _VSTD::piecewise_construct,\n            _VSTD::forward_as_tuple(_VSTD::move(__k)),\n            _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...));\n    }\n\n    template <class _Vp>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> insert_or_assign(const key_type& __k, _Vp&& __v)\n    {\n        iterator __p = lower_bound(__k);\n        if ( __p != end() && !key_comp()(__k, __p->first))\n        {\n            __p->second = _VSTD::forward<_Vp>(__v);\n            return _VSTD::make_pair(__p, false);\n        }\n        return _VSTD::make_pair(emplace_hint(__p, __k, _VSTD::forward<_Vp>(__v)), true);\n    }\n\n    template <class _Vp>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> insert_or_assign(key_type&& __k, _Vp&& __v)\n    {\n        iterator __p = lower_bound(__k);\n        if ( __p != end() && !key_comp()(__k, __p->first))\n        {\n            __p->second = _VSTD::forward<_Vp>(__v);\n            return _VSTD::make_pair(__p, false);\n        }\n        return _VSTD::make_pair(emplace_hint(__p, _VSTD::move(__k), _VSTD::forward<_Vp>(__v)), true);\n    }\n\n    template <class _Vp>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator insert_or_assign(const_iterator __h, const key_type& __k, _Vp&& __v)\n     {\n        iterator __p = lower_bound(__k);\n        if ( __p != end() && !key_comp()(__k, __p->first))\n        {\n            __p->second = _VSTD::forward<_Vp>(__v);\n            return __p;\n        }\n        return emplace_hint(__h, __k, _VSTD::forward<_Vp>(__v));\n     }\n\n    template <class _Vp>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator insert_or_assign(const_iterator __h, key_type&& __k, _Vp&& __v)\n     {\n        iterator __p = lower_bound(__k);\n        if ( __p != end() && !key_comp()(__k, __p->first))\n        {\n            __p->second = _VSTD::forward<_Vp>(__v);\n            return __p;\n        }\n        return emplace_hint(__h, _VSTD::move(__k), _VSTD::forward<_Vp>(__v));\n     }\n\n#endif // _LIBCPP_STD_VER > 14\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __p) {return __tree_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(iterator __p)       {return __tree_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k)\n        {return __tree_.__erase_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator  erase(const_iterator __f, const_iterator __l)\n        {return __tree_.erase(__f.__i_, __l.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__tree_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(map& __m)\n        _NOEXCEPT_(__is_nothrow_swappable<__base>::value)\n        {__tree_.swap(__m.__tree_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator find(const key_type& __k)             {return __tree_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __tree_.find(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    find(const _K2& __k)                           {return __tree_.find(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    find(const _K2& __k) const                     {return __tree_.find(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type      count(const key_type& __k) const\n        {return __tree_.__count_unique(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,size_type>::type\n    count(const _K2& __k) const {return __tree_.__count_unique(__k);}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    iterator lower_bound(const key_type& __k)\n        {return __tree_.lower_bound(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator lower_bound(const key_type& __k) const\n        {return __tree_.lower_bound(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    lower_bound(const _K2& __k)       {return __tree_.lower_bound(__k);}\n\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    lower_bound(const _K2& __k) const {return __tree_.lower_bound(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator upper_bound(const key_type& __k)\n        {return __tree_.upper_bound(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator upper_bound(const key_type& __k) const\n        {return __tree_.upper_bound(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    upper_bound(const _K2& __k)       {return __tree_.upper_bound(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    upper_bound(const _K2& __k) const {return __tree_.upper_bound(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator,iterator> equal_range(const key_type& __k)\n        {return __tree_.__equal_range_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator,const_iterator> equal_range(const key_type& __k) const\n        {return __tree_.__equal_range_unique(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,pair<iterator,iterator>>::type\n    equal_range(const _K2& __k)       {return __tree_.__equal_range_unique(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,pair<const_iterator,const_iterator>>::type\n    equal_range(const _K2& __k) const {return __tree_.__equal_range_unique(__k);}\n#endif\n\nprivate:\n    typedef typename __base::__node                    __node;\n    typedef typename __base::__node_allocator          __node_allocator;\n    typedef typename __base::__node_pointer            __node_pointer;\n    typedef typename __base::__node_base_pointer       __node_base_pointer;\n    typedef typename __base::__parent_pointer          __parent_pointer;\n\n    typedef __map_node_destructor<__node_allocator> _Dp;\n    typedef unique_ptr<__node, _Dp> __node_holder;\n\n#ifdef _LIBCPP_CXX03_LANG\n    __node_holder __construct_node_with_key(const key_type& __k);\n#endif\n};\n\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\nmap<_Key, _Tp, _Compare, _Allocator>::map(map&& __m, const allocator_type& __a)\n    : __tree_(_VSTD::move(__m.__tree_), typename __base::allocator_type(__a))\n{\n    if (__a != __m.get_allocator())\n    {\n        const_iterator __e = cend();\n        while (!__m.empty())\n            __tree_.__insert_unique(__e.__i_,\n                    _VSTD::move(__m.__tree_.remove(__m.begin().__i_)->__value_.__nc));\n    }\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\n_Tp&\nmap<_Key, _Tp, _Compare, _Allocator>::operator[](const key_type& __k)\n{\n    return __tree_.__emplace_unique_key_args(__k,\n        _VSTD::piecewise_construct,\n        _VSTD::forward_as_tuple(__k),\n        _VSTD::forward_as_tuple()).first->__cc.second;\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\n_Tp&\nmap<_Key, _Tp, _Compare, _Allocator>::operator[](key_type&& __k)\n{\n    return __tree_.__emplace_unique_key_args(__k,\n        _VSTD::piecewise_construct,\n        _VSTD::forward_as_tuple(_VSTD::move(__k)),\n        _VSTD::forward_as_tuple()).first->__cc.second;\n}\n\n#else // _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ntypename map<_Key, _Tp, _Compare, _Allocator>::__node_holder\nmap<_Key, _Tp, _Compare, _Allocator>::__construct_node_with_key(const key_type& __k)\n{\n    __node_allocator& __na = __tree_.__node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.first), __k);\n    __h.get_deleter().__first_constructed = true;\n    __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.second));\n    __h.get_deleter().__second_constructed = true;\n    return _LIBCPP_EXPLICIT_MOVE(__h);  // explicitly moved for C++03\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\n_Tp&\nmap<_Key, _Tp, _Compare, _Allocator>::operator[](const key_type& __k)\n{\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __tree_.__find_equal(__parent, __k);\n    __node_pointer __r = static_cast<__node_pointer>(__child);\n    if (__child == nullptr)\n    {\n        __node_holder __h = __construct_node_with_key(__k);\n        __tree_.__insert_node_at(__parent, __child, static_cast<__node_base_pointer>(__h.get()));\n        __r = __h.release();\n    }\n    return __r->__value_.__cc.second;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\n_Tp&\nmap<_Key, _Tp, _Compare, _Allocator>::at(const key_type& __k)\n{\n    __parent_pointer __parent;\n    __node_base_pointer& __child = __tree_.__find_equal(__parent, __k);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    if (__child == nullptr)\n        throw out_of_range(\"map::at:  key not found\");\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return static_cast<__node_pointer>(__child)->__value_.__cc.second;\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\nconst _Tp&\nmap<_Key, _Tp, _Compare, _Allocator>::at(const key_type& __k) const\n{\n    __parent_pointer __parent;\n    __node_base_pointer __child = __tree_.__find_equal(__parent, __k);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    if (__child == nullptr)\n        throw out_of_range(\"map::at:  key not found\");\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return static_cast<__node_pointer>(__child)->__value_.__cc.second;\n}\n\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const map<_Key, _Tp, _Compare, _Allocator>& __x,\n           const map<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return __x.size() == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const map<_Key, _Tp, _Compare, _Allocator>& __x,\n           const map<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const map<_Key, _Tp, _Compare, _Allocator>& __x,\n           const map<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const map<_Key, _Tp, _Compare, _Allocator>& __x,\n           const map<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const map<_Key, _Tp, _Compare, _Allocator>& __x,\n           const map<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const map<_Key, _Tp, _Compare, _Allocator>& __x,\n           const map<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(map<_Key, _Tp, _Compare, _Allocator>& __x,\n     map<_Key, _Tp, _Compare, _Allocator>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Key, class _Tp, class _Compare = less<_Key>,\n          class _Allocator = allocator<pair<const _Key, _Tp> > >\nclass _LIBCPP_TEMPLATE_VIS multimap\n{\npublic:\n    // types:\n    typedef _Key                                     key_type;\n    typedef _Tp                                      mapped_type;\n    typedef pair<const key_type, mapped_type>        value_type;\n    typedef pair<key_type, mapped_type>              __nc_value_type;\n    typedef _Compare                                 key_compare;\n    typedef _Allocator                               allocator_type;\n    typedef value_type&                              reference;\n    typedef const value_type&                        const_reference;\n\n    static_assert((is_same<typename allocator_type::value_type, value_type>::value),\n                  \"Allocator::value_type must be same type as value_type\");\n\n    class _LIBCPP_TEMPLATE_VIS value_compare\n        : public binary_function<value_type, value_type, bool>\n    {\n        friend class multimap;\n    protected:\n        key_compare comp;\n\n        _LIBCPP_INLINE_VISIBILITY\n        value_compare(key_compare c) : comp(c) {}\n    public:\n        _LIBCPP_INLINE_VISIBILITY\n        bool operator()(const value_type& __x, const value_type& __y) const\n            {return comp(__x.first, __y.first);}\n    };\n\nprivate:\n\n    typedef _VSTD::__value_type<key_type, mapped_type>             __value_type;\n    typedef __map_value_compare<key_type, __value_type, key_compare> __vc;\n    typedef typename __rebind_alloc_helper<allocator_traits<allocator_type>,\n                                                 __value_type>::type __allocator_type;\n    typedef __tree<__value_type, __vc, __allocator_type>            __base;\n    typedef typename __base::__node_traits                          __node_traits;\n    typedef allocator_traits<allocator_type>                        __alloc_traits;\n\n    __base __tree_;\n\npublic:\n    typedef typename __alloc_traits::pointer               pointer;\n    typedef typename __alloc_traits::const_pointer         const_pointer;\n    typedef typename __alloc_traits::size_type             size_type;\n    typedef typename __alloc_traits::difference_type       difference_type;\n    typedef __map_iterator<typename __base::iterator>      iterator;\n    typedef __map_const_iterator<typename __base::const_iterator> const_iterator;\n    typedef _VSTD::reverse_iterator<iterator>               reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator>         const_reverse_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap()\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_default_constructible<key_compare>::value &&\n            is_nothrow_copy_constructible<key_compare>::value)\n        : __tree_(__vc(key_compare())) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit multimap(const key_compare& __comp)\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_copy_constructible<key_compare>::value)\n        : __tree_(__vc(__comp)) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit multimap(const key_compare& __comp, const allocator_type& __a)\n        : __tree_(__vc(__comp), typename __base::allocator_type(__a)) {}\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        multimap(_InputIterator __f, _InputIterator __l,\n            const key_compare& __comp = key_compare())\n        : __tree_(__vc(__comp))\n        {\n            insert(__f, __l);\n        }\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        multimap(_InputIterator __f, _InputIterator __l,\n            const key_compare& __comp, const allocator_type& __a)\n        : __tree_(__vc(__comp), typename __base::allocator_type(__a))\n        {\n            insert(__f, __l);\n        }\n\n#if _LIBCPP_STD_VER > 11\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n    multimap(_InputIterator __f, _InputIterator __l, const allocator_type& __a)\n        : multimap(__f, __l, key_compare(), __a) {}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap(const multimap& __m)\n        : __tree_(__m.__tree_.value_comp(),\n          __alloc_traits::select_on_container_copy_construction(__m.__tree_.__alloc()))\n        {\n            insert(__m.begin(), __m.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap& operator=(const multimap& __m)\n        {\n#ifndef _LIBCPP_CXX03_LANG\n            __tree_ = __m.__tree_;\n#else\n            if (this != &__m) {\n                __tree_.clear();\n                __tree_.value_comp() = __m.__tree_.value_comp();\n                __tree_.__copy_assign_alloc(__m.__tree_);\n                insert(__m.begin(), __m.end());\n            }\n#endif\n            return *this;\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap(multimap&& __m)\n        _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)\n        : __tree_(_VSTD::move(__m.__tree_))\n        {\n        }\n\n    multimap(multimap&& __m, const allocator_type& __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap& operator=(multimap&& __m)\n        _NOEXCEPT_(is_nothrow_move_assignable<__base>::value)\n        {\n            __tree_ = _VSTD::move(__m.__tree_);\n            return *this;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap(initializer_list<value_type> __il, const key_compare& __comp = key_compare())\n        : __tree_(__vc(__comp))\n        {\n            insert(__il.begin(), __il.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap(initializer_list<value_type> __il, const key_compare& __comp, const allocator_type& __a)\n        : __tree_(__vc(__comp), typename __base::allocator_type(__a))\n        {\n            insert(__il.begin(), __il.end());\n        }\n\n#if _LIBCPP_STD_VER > 11\n    _LIBCPP_INLINE_VISIBILITY\n    multimap(initializer_list<value_type> __il, const allocator_type& __a)\n        : multimap(__il, key_compare(), __a) {}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap& operator=(initializer_list<value_type> __il)\n        {\n            __tree_.__assign_multi(__il.begin(), __il.end());\n            return *this;\n        }\n\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit multimap(const allocator_type& __a)\n        : __tree_(typename __base::allocator_type(__a))\n        {\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    multimap(const multimap& __m, const allocator_type& __a)\n        : __tree_(__m.__tree_.value_comp(), typename __base::allocator_type(__a))\n        {\n            insert(__m.begin(), __m.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n          iterator begin() _NOEXCEPT {return __tree_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT {return __tree_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n          iterator end() _NOEXCEPT {return __tree_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const _NOEXCEPT {return __tree_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rbegin() _NOEXCEPT {return reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin() const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rend() _NOEXCEPT {return reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend() const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin()  const _NOEXCEPT {return begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend() const _NOEXCEPT {return end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT {return rbegin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend() const _NOEXCEPT {return rend();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT {return __tree_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT {return __tree_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {return __tree_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT {return allocator_type(__tree_.__alloc());}\n    _LIBCPP_INLINE_VISIBILITY\n    key_compare    key_comp() const {return __tree_.value_comp().key_comp();}\n    _LIBCPP_INLINE_VISIBILITY\n    value_compare  value_comp() const\n        {return value_compare(__tree_.value_comp().key_comp());}\n\n#ifndef _LIBCPP_CXX03_LANG\n\n    template <class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator emplace(_Args&& ...__args) {\n        return __tree_.__emplace_multi(_VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class ..._Args>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator emplace_hint(const_iterator __p, _Args&& ...__args) {\n        return __tree_.__emplace_hint_multi(__p.__i_, _VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class _Pp,\n              class = typename enable_if<is_constructible<value_type, _Pp>::value>::type>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator insert(_Pp&& __p)\n            {return __tree_.__insert_multi(_VSTD::forward<_Pp>(__p));}\n\n    template <class _Pp,\n              class = typename enable_if<is_constructible<value_type, _Pp>::value>::type>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator insert(const_iterator __pos, _Pp&& __p)\n            {return __tree_.__insert_multi(__pos.__i_, _VSTD::forward<_Pp>(__p));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(value_type&& __v)\n        {return __tree_.__insert_multi(_VSTD::move(__v));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, value_type&& __v)\n        {return __tree_.__insert_multi(__p.__i_, _VSTD::move(__v));}\n\n\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(initializer_list<value_type> __il)\n        {insert(__il.begin(), __il.end());}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const value_type& __v) {return __tree_.__insert_multi(__v);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, const value_type& __v)\n            {return __tree_.__insert_multi(__p.__i_, __v);}\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __f, _InputIterator __l)\n        {\n            for (const_iterator __e = cend(); __f != __l; ++__f)\n                __tree_.__insert_multi(__e.__i_, *__f);\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __p) {return __tree_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(iterator __p)       {return __tree_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __tree_.__erase_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator  erase(const_iterator __f, const_iterator __l)\n        {return __tree_.erase(__f.__i_, __l.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() {__tree_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(multimap& __m)\n        _NOEXCEPT_(__is_nothrow_swappable<__base>::value)\n        {__tree_.swap(__m.__tree_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator find(const key_type& __k)             {return __tree_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __tree_.find(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    find(const _K2& __k)                           {return __tree_.find(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    find(const _K2& __k) const                     {return __tree_.find(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type      count(const key_type& __k) const\n        {return __tree_.__count_multi(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,size_type>::type\n    count(const _K2& __k) const {return __tree_.__count_multi(__k);}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    iterator lower_bound(const key_type& __k)\n        {return __tree_.lower_bound(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator lower_bound(const key_type& __k) const\n            {return __tree_.lower_bound(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    lower_bound(const _K2& __k)       {return __tree_.lower_bound(__k);}\n\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    lower_bound(const _K2& __k) const {return __tree_.lower_bound(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator upper_bound(const key_type& __k)\n            {return __tree_.upper_bound(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator upper_bound(const key_type& __k) const\n            {return __tree_.upper_bound(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    upper_bound(const _K2& __k)       {return __tree_.upper_bound(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    upper_bound(const _K2& __k) const {return __tree_.upper_bound(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator,iterator>             equal_range(const key_type& __k)\n            {return __tree_.__equal_range_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator,const_iterator> equal_range(const key_type& __k) const\n            {return __tree_.__equal_range_multi(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,pair<iterator,iterator>>::type\n    equal_range(const _K2& __k)       {return __tree_.__equal_range_multi(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,pair<const_iterator,const_iterator>>::type\n    equal_range(const _K2& __k) const {return __tree_.__equal_range_multi(__k);}\n#endif\n\nprivate:\n    typedef typename __base::__node                    __node;\n    typedef typename __base::__node_allocator          __node_allocator;\n    typedef typename __base::__node_pointer            __node_pointer;\n\n    typedef __map_node_destructor<__node_allocator> _Dp;\n    typedef unique_ptr<__node, _Dp> __node_holder;\n};\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\nmultimap<_Key, _Tp, _Compare, _Allocator>::multimap(multimap&& __m, const allocator_type& __a)\n    : __tree_(_VSTD::move(__m.__tree_), typename __base::allocator_type(__a))\n{\n    if (__a != __m.get_allocator())\n    {\n        const_iterator __e = cend();\n        while (!__m.empty())\n            __tree_.__insert_multi(__e.__i_,\n                    _VSTD::move(__m.__tree_.remove(__m.begin().__i_)->__value_.__nc));\n    }\n}\n#endif\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const multimap<_Key, _Tp, _Compare, _Allocator>& __x,\n           const multimap<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return __x.size() == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const multimap<_Key, _Tp, _Compare, _Allocator>& __x,\n           const multimap<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const multimap<_Key, _Tp, _Compare, _Allocator>& __x,\n           const multimap<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const multimap<_Key, _Tp, _Compare, _Allocator>& __x,\n           const multimap<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const multimap<_Key, _Tp, _Compare, _Allocator>& __x,\n           const multimap<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const multimap<_Key, _Tp, _Compare, _Allocator>& __x,\n           const multimap<_Key, _Tp, _Compare, _Allocator>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Key, class _Tp, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(multimap<_Key, _Tp, _Compare, _Allocator>& __x,\n     multimap<_Key, _Tp, _Compare, _Allocator>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_MAP\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/math.h",
    "content": "// -*- C++ -*-\n//===---------------------------- math.h ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_MATH_H\n#define _LIBCPP_MATH_H\n\n/*\n    math.h synopsis\n\nMacros:\n\n    HUGE_VAL\n    HUGE_VALF               // C99\n    HUGE_VALL               // C99\n    INFINITY                // C99\n    NAN                     // C99\n    FP_INFINITE             // C99\n    FP_NAN                  // C99\n    FP_NORMAL               // C99\n    FP_SUBNORMAL            // C99\n    FP_ZERO                 // C99\n    FP_FAST_FMA             // C99\n    FP_FAST_FMAF            // C99\n    FP_FAST_FMAL            // C99\n    FP_ILOGB0               // C99\n    FP_ILOGBNAN             // C99\n    MATH_ERRNO              // C99\n    MATH_ERREXCEPT          // C99\n    math_errhandling        // C99\n\nTypes:\n\n    float_t                 // C99\n    double_t                // C99\n\n// C90\n\nfloating_point abs(floating_point x);\n\nfloating_point acos (arithmetic x);\nfloat          acosf(float x);\nlong double    acosl(long double x);\n\nfloating_point asin (arithmetic x);\nfloat          asinf(float x);\nlong double    asinl(long double x);\n\nfloating_point atan (arithmetic x);\nfloat          atanf(float x);\nlong double    atanl(long double x);\n\nfloating_point atan2 (arithmetic y, arithmetic x);\nfloat          atan2f(float y, float x);\nlong double    atan2l(long double y, long double x);\n\nfloating_point ceil (arithmetic x);\nfloat          ceilf(float x);\nlong double    ceill(long double x);\n\nfloating_point cos (arithmetic x);\nfloat          cosf(float x);\nlong double    cosl(long double x);\n\nfloating_point cosh (arithmetic x);\nfloat          coshf(float x);\nlong double    coshl(long double x);\n\nfloating_point exp (arithmetic x);\nfloat          expf(float x);\nlong double    expl(long double x);\n\nfloating_point fabs (arithmetic x);\nfloat          fabsf(float x);\nlong double    fabsl(long double x);\n\nfloating_point floor (arithmetic x);\nfloat          floorf(float x);\nlong double    floorl(long double x);\n\nfloating_point fmod (arithmetic x, arithmetic y);\nfloat          fmodf(float x, float y);\nlong double    fmodl(long double x, long double y);\n\nfloating_point frexp (arithmetic value, int* exp);\nfloat          frexpf(float value, int* exp);\nlong double    frexpl(long double value, int* exp);\n\nfloating_point ldexp (arithmetic value, int exp);\nfloat          ldexpf(float value, int exp);\nlong double    ldexpl(long double value, int exp);\n\nfloating_point log (arithmetic x);\nfloat          logf(float x);\nlong double    logl(long double x);\n\nfloating_point log10 (arithmetic x);\nfloat          log10f(float x);\nlong double    log10l(long double x);\n\nfloating_point modf (floating_point value, floating_point* iptr);\nfloat          modff(float value, float* iptr);\nlong double    modfl(long double value, long double* iptr);\n\nfloating_point pow (arithmetic x, arithmetic y);\nfloat          powf(float x, float y);\nlong double    powl(long double x, long double y);\n\nfloating_point sin (arithmetic x);\nfloat          sinf(float x);\nlong double    sinl(long double x);\n\nfloating_point sinh (arithmetic x);\nfloat          sinhf(float x);\nlong double    sinhl(long double x);\n\nfloating_point sqrt (arithmetic x);\nfloat          sqrtf(float x);\nlong double    sqrtl(long double x);\n\nfloating_point tan (arithmetic x);\nfloat          tanf(float x);\nlong double    tanl(long double x);\n\nfloating_point tanh (arithmetic x);\nfloat          tanhf(float x);\nlong double    tanhl(long double x);\n\n//  C99\n\nbool signbit(arithmetic x);\n\nint fpclassify(arithmetic x);\n\nbool isfinite(arithmetic x);\nbool isinf(arithmetic x);\nbool isnan(arithmetic x);\nbool isnormal(arithmetic x);\n\nbool isgreater(arithmetic x, arithmetic y);\nbool isgreaterequal(arithmetic x, arithmetic y);\nbool isless(arithmetic x, arithmetic y);\nbool islessequal(arithmetic x, arithmetic y);\nbool islessgreater(arithmetic x, arithmetic y);\nbool isunordered(arithmetic x, arithmetic y);\n\nfloating_point acosh (arithmetic x);\nfloat          acoshf(float x);\nlong double    acoshl(long double x);\n\nfloating_point asinh (arithmetic x);\nfloat          asinhf(float x);\nlong double    asinhl(long double x);\n\nfloating_point atanh (arithmetic x);\nfloat          atanhf(float x);\nlong double    atanhl(long double x);\n\nfloating_point cbrt (arithmetic x);\nfloat          cbrtf(float x);\nlong double    cbrtl(long double x);\n\nfloating_point copysign (arithmetic x, arithmetic y);\nfloat          copysignf(float x, float y);\nlong double    copysignl(long double x, long double y);\n\nfloating_point erf (arithmetic x);\nfloat          erff(float x);\nlong double    erfl(long double x);\n\nfloating_point erfc (arithmetic x);\nfloat          erfcf(float x);\nlong double    erfcl(long double x);\n\nfloating_point exp2 (arithmetic x);\nfloat          exp2f(float x);\nlong double    exp2l(long double x);\n\nfloating_point expm1 (arithmetic x);\nfloat          expm1f(float x);\nlong double    expm1l(long double x);\n\nfloating_point fdim (arithmetic x, arithmetic y);\nfloat          fdimf(float x, float y);\nlong double    fdiml(long double x, long double y);\n\nfloating_point fma (arithmetic x, arithmetic y, arithmetic z);\nfloat          fmaf(float x, float y, float z);\nlong double    fmal(long double x, long double y, long double z);\n\nfloating_point fmax (arithmetic x, arithmetic y);\nfloat          fmaxf(float x, float y);\nlong double    fmaxl(long double x, long double y);\n\nfloating_point fmin (arithmetic x, arithmetic y);\nfloat          fminf(float x, float y);\nlong double    fminl(long double x, long double y);\n\nfloating_point hypot (arithmetic x, arithmetic y);\nfloat          hypotf(float x, float y);\nlong double    hypotl(long double x, long double y);\n\nint ilogb (arithmetic x);\nint ilogbf(float x);\nint ilogbl(long double x);\n\nfloating_point lgamma (arithmetic x);\nfloat          lgammaf(float x);\nlong double    lgammal(long double x);\n\nlong long llrint (arithmetic x);\nlong long llrintf(float x);\nlong long llrintl(long double x);\n\nlong long llround (arithmetic x);\nlong long llroundf(float x);\nlong long llroundl(long double x);\n\nfloating_point log1p (arithmetic x);\nfloat          log1pf(float x);\nlong double    log1pl(long double x);\n\nfloating_point log2 (arithmetic x);\nfloat          log2f(float x);\nlong double    log2l(long double x);\n\nfloating_point logb (arithmetic x);\nfloat          logbf(float x);\nlong double    logbl(long double x);\n\nlong lrint (arithmetic x);\nlong lrintf(float x);\nlong lrintl(long double x);\n\nlong lround (arithmetic x);\nlong lroundf(float x);\nlong lroundl(long double x);\n\ndouble      nan (const char* str);\nfloat       nanf(const char* str);\nlong double nanl(const char* str);\n\nfloating_point nearbyint (arithmetic x);\nfloat          nearbyintf(float x);\nlong double    nearbyintl(long double x);\n\nfloating_point nextafter (arithmetic x, arithmetic y);\nfloat          nextafterf(float x, float y);\nlong double    nextafterl(long double x, long double y);\n\nfloating_point nexttoward (arithmetic x, long double y);\nfloat          nexttowardf(float x, long double y);\nlong double    nexttowardl(long double x, long double y);\n\nfloating_point remainder (arithmetic x, arithmetic y);\nfloat          remainderf(float x, float y);\nlong double    remainderl(long double x, long double y);\n\nfloating_point remquo (arithmetic x, arithmetic y, int* pquo);\nfloat          remquof(float x, float y, int* pquo);\nlong double    remquol(long double x, long double y, int* pquo);\n\nfloating_point rint (arithmetic x);\nfloat          rintf(float x);\nlong double    rintl(long double x);\n\nfloating_point round (arithmetic x);\nfloat          roundf(float x);\nlong double    roundl(long double x);\n\nfloating_point scalbln (arithmetic x, long ex);\nfloat          scalblnf(float x, long ex);\nlong double    scalblnl(long double x, long ex);\n\nfloating_point scalbn (arithmetic x, int ex);\nfloat          scalbnf(float x, int ex);\nlong double    scalbnl(long double x, int ex);\n\nfloating_point tgamma (arithmetic x);\nfloat          tgammaf(float x);\nlong double    tgammal(long double x);\n\nfloating_point trunc (arithmetic x);\nfloat          truncf(float x);\nlong double    truncl(long double x);\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <math.h>\n\n#ifdef __cplusplus\n\n// We support including .h headers inside 'extern \"C\"' contexts, so switch\n// back to C++ linkage before including these C++ headers.\nextern \"C++\" {\n\n#include <type_traits>\n#include <limits>\n\n// signbit\n\n#ifdef signbit\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_signbit(_A1 __lcpp_x) _NOEXCEPT\n{\n    return signbit(__lcpp_x);\n}\n\n#undef signbit\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_floating_point<_A1>::value, bool>::type\nsignbit(_A1 __lcpp_x) _NOEXCEPT\n{\n    return __libcpp_signbit((typename std::__promote<_A1>::type)__lcpp_x);\n}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<\n    std::is_integral<_A1>::value && std::is_signed<_A1>::value, bool>::type\nsignbit(_A1 __lcpp_x) _NOEXCEPT\n{ return __lcpp_x < 0; }\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<\n    std::is_integral<_A1>::value && !std::is_signed<_A1>::value, bool>::type\nsignbit(_A1) _NOEXCEPT\n{ return false; }\n\n#elif defined(_LIBCPP_MSVCRT)\n\ntemplate <typename _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_floating_point<_A1>::value, bool>::type\nsignbit(_A1 __lcpp_x) _NOEXCEPT\n{\n  return ::signbit(static_cast<typename std::__promote<_A1>::type>(__lcpp_x));\n}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<\n    std::is_integral<_A1>::value && std::is_signed<_A1>::value, bool>::type\nsignbit(_A1 __lcpp_x) _NOEXCEPT\n{ return __lcpp_x < 0; }\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<\n    std::is_integral<_A1>::value && !std::is_signed<_A1>::value, bool>::type\nsignbit(_A1) _NOEXCEPT\n{ return false; }\n\n#endif  // signbit\n\n// fpclassify\n\n#ifdef fpclassify\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\nint\n__libcpp_fpclassify(_A1 __lcpp_x) _NOEXCEPT\n{\n    return fpclassify(__lcpp_x);\n}\n\n#undef fpclassify\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_floating_point<_A1>::value, int>::type\nfpclassify(_A1 __lcpp_x) _NOEXCEPT\n{\n    return __libcpp_fpclassify((typename std::__promote<_A1>::type)__lcpp_x);\n}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, int>::type\nfpclassify(_A1 __lcpp_x) _NOEXCEPT\n{ return __lcpp_x == 0 ? FP_ZERO : FP_NORMAL; }\n\n#elif defined(_LIBCPP_MSVCRT)\n\ntemplate <typename _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_floating_point<_A1>::value, bool>::type\nfpclassify(_A1 __lcpp_x) _NOEXCEPT\n{\n  return ::fpclassify(static_cast<typename std::__promote<_A1>::type>(__lcpp_x));\n}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, int>::type\nfpclassify(_A1 __lcpp_x) _NOEXCEPT\n{ return __lcpp_x == 0 ? FP_ZERO : FP_NORMAL; }\n\n#endif  // fpclassify\n\n// isfinite\n\n#ifdef isfinite\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_isfinite(_A1 __lcpp_x) _NOEXCEPT\n{\n    return isfinite(__lcpp_x);\n}\n\n#undef isfinite\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<\n    std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity,\n    bool>::type\nisfinite(_A1 __lcpp_x) _NOEXCEPT\n{\n    return __libcpp_isfinite((typename std::__promote<_A1>::type)__lcpp_x);\n}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<\n    std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity,\n    bool>::type\nisfinite(_A1) _NOEXCEPT\n{ return true; }\n\n#endif  // isfinite\n\n// isinf\n\n#ifdef isinf\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_isinf(_A1 __lcpp_x) _NOEXCEPT\n{\n    return isinf(__lcpp_x);\n}\n\n#undef isinf\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<\n    std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity,\n    bool>::type\nisinf(_A1 __lcpp_x) _NOEXCEPT\n{\n    return __libcpp_isinf((typename std::__promote<_A1>::type)__lcpp_x);\n}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<\n    std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity,\n    bool>::type\nisinf(_A1) _NOEXCEPT\n{ return false; }\n\n#endif  // isinf\n\n// isnan\n\n#ifdef isnan\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_isnan(_A1 __lcpp_x) _NOEXCEPT\n{\n    return isnan(__lcpp_x);\n}\n\n#undef isnan\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_floating_point<_A1>::value, bool>::type\nisnan(_A1 __lcpp_x) _NOEXCEPT\n{\n    return __libcpp_isnan((typename std::__promote<_A1>::type)__lcpp_x);\n}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, bool>::type\nisnan(_A1) _NOEXCEPT\n{ return false; }\n\n#endif  // isnan\n\n// isnormal\n\n#ifdef isnormal\n\ntemplate <class _A1>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_isnormal(_A1 __lcpp_x) _NOEXCEPT\n{\n    return isnormal(__lcpp_x);\n}\n\n#undef isnormal\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_floating_point<_A1>::value, bool>::type\nisnormal(_A1 __lcpp_x) _NOEXCEPT\n{\n    return __libcpp_isnormal((typename std::__promote<_A1>::type)__lcpp_x);\n}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, bool>::type\nisnormal(_A1 __lcpp_x) _NOEXCEPT\n{ return __lcpp_x != 0; }\n\n#endif  // isnormal\n\n// isgreater\n\n#ifdef isgreater\n\ntemplate <class _A1, class _A2>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_isgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    return isgreater(__lcpp_x, __lcpp_y);\n}\n\n#undef isgreater\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    bool\n>::type\nisgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type type;\n    return __libcpp_isgreater((type)__lcpp_x, (type)__lcpp_y);\n}\n\n#endif  // isgreater\n\n// isgreaterequal\n\n#ifdef isgreaterequal\n\ntemplate <class _A1, class _A2>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    return isgreaterequal(__lcpp_x, __lcpp_y);\n}\n\n#undef isgreaterequal\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    bool\n>::type\nisgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type type;\n    return __libcpp_isgreaterequal((type)__lcpp_x, (type)__lcpp_y);\n}\n\n#endif  // isgreaterequal\n\n// isless\n\n#ifdef isless\n\ntemplate <class _A1, class _A2>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_isless(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    return isless(__lcpp_x, __lcpp_y);\n}\n\n#undef isless\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    bool\n>::type\nisless(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type type;\n    return __libcpp_isless((type)__lcpp_x, (type)__lcpp_y);\n}\n\n#endif  // isless\n\n// islessequal\n\n#ifdef islessequal\n\ntemplate <class _A1, class _A2>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_islessequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    return islessequal(__lcpp_x, __lcpp_y);\n}\n\n#undef islessequal\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    bool\n>::type\nislessequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type type;\n    return __libcpp_islessequal((type)__lcpp_x, (type)__lcpp_y);\n}\n\n#endif  // islessequal\n\n// islessgreater\n\n#ifdef islessgreater\n\ntemplate <class _A1, class _A2>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    return islessgreater(__lcpp_x, __lcpp_y);\n}\n\n#undef islessgreater\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    bool\n>::type\nislessgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type type;\n    return __libcpp_islessgreater((type)__lcpp_x, (type)__lcpp_y);\n}\n\n#endif  // islessgreater\n\n// isunordered\n\n#ifdef isunordered\n\ntemplate <class _A1, class _A2>\n_LIBCPP_ALWAYS_INLINE\nbool\n__libcpp_isunordered(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    return isunordered(__lcpp_x, __lcpp_y);\n}\n\n#undef isunordered\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    bool\n>::type\nisunordered(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type type;\n    return __libcpp_isunordered((type)__lcpp_x, (type)__lcpp_y);\n}\n\n#endif  // isunordered\n\n// abs\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY\nfloat\nabs(float __lcpp_x) _NOEXCEPT {return ::fabsf(__lcpp_x);}\n\ninline _LIBCPP_INLINE_VISIBILITY\ndouble\nabs(double __lcpp_x) _NOEXCEPT {return ::fabs(__lcpp_x);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nlong double\nabs(long double __lcpp_x) _NOEXCEPT {return ::fabsl(__lcpp_x);}\n#endif // !(defined(_AIX) || defined(__sun__))\n\n// acos\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       acos(float __lcpp_x) _NOEXCEPT       {return ::acosf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return ::acosl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nacos(_A1 __lcpp_x) _NOEXCEPT {return ::acos((double)__lcpp_x);}\n\n// asin\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       asin(float __lcpp_x) _NOEXCEPT       {return ::asinf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return ::asinl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nasin(_A1 __lcpp_x) _NOEXCEPT {return ::asin((double)__lcpp_x);}\n\n// atan\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       atan(float __lcpp_x) _NOEXCEPT       {return ::atanf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return ::atanl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\natan(_A1 __lcpp_x) _NOEXCEPT {return ::atan((double)__lcpp_x);}\n\n// atan2\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT             {return ::atan2f(__lcpp_y, __lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, long double __lcpp_x) _NOEXCEPT {return ::atan2l(__lcpp_y, __lcpp_x);}\n#endif\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\natan2(_A1 __lcpp_y, _A2 __lcpp_x) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::atan2((__result_type)__lcpp_y, (__result_type)__lcpp_x);\n}\n\n// ceil\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       ceil(float __lcpp_x) _NOEXCEPT       {return ::ceilf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double ceil(long double __lcpp_x) _NOEXCEPT {return ::ceill(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nceil(_A1 __lcpp_x) _NOEXCEPT {return ::ceil((double)__lcpp_x);}\n\n// cos\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       cos(float __lcpp_x) _NOEXCEPT       {return ::cosf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x) _NOEXCEPT {return ::cosl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\ncos(_A1 __lcpp_x) _NOEXCEPT {return ::cos((double)__lcpp_x);}\n\n// cosh\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       cosh(float __lcpp_x) _NOEXCEPT       {return ::coshf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x) _NOEXCEPT {return ::coshl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\ncosh(_A1 __lcpp_x) _NOEXCEPT {return ::cosh((double)__lcpp_x);}\n\n// exp\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       exp(float __lcpp_x) _NOEXCEPT       {return ::expf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x) _NOEXCEPT {return ::expl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nexp(_A1 __lcpp_x) _NOEXCEPT {return ::exp((double)__lcpp_x);}\n\n// fabs\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       fabs(float __lcpp_x) _NOEXCEPT       {return ::fabsf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double fabs(long double __lcpp_x) _NOEXCEPT {return ::fabsl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nfabs(_A1 __lcpp_x) _NOEXCEPT {return ::fabs((double)__lcpp_x);}\n\n// floor\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       floor(float __lcpp_x) _NOEXCEPT       {return ::floorf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double floor(long double __lcpp_x) _NOEXCEPT {return ::floorl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nfloor(_A1 __lcpp_x) _NOEXCEPT {return ::floor((double)__lcpp_x);}\n\n// fmod\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       fmod(float __lcpp_x, float __lcpp_y) _NOEXCEPT             {return ::fmodf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fmodl(__lcpp_x, __lcpp_y);}\n#endif\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\nfmod(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::fmod((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// frexp\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       frexp(float __lcpp_x, int* __lcpp_e) _NOEXCEPT       {return ::frexpf(__lcpp_x, __lcpp_e);}\ninline _LIBCPP_INLINE_VISIBILITY long double frexp(long double __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexpl(__lcpp_x, __lcpp_e);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nfrexp(_A1 __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexp((double)__lcpp_x, __lcpp_e);}\n\n// ldexp\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       ldexp(float __lcpp_x, int __lcpp_e) _NOEXCEPT       {return ::ldexpf(__lcpp_x, __lcpp_e);}\ninline _LIBCPP_INLINE_VISIBILITY long double ldexp(long double __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexpl(__lcpp_x, __lcpp_e);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nldexp(_A1 __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexp((double)__lcpp_x, __lcpp_e);}\n\n// log\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       log(float __lcpp_x) _NOEXCEPT       {return ::logf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return ::logl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nlog(_A1 __lcpp_x) _NOEXCEPT {return ::log((double)__lcpp_x);}\n\n// log10\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       log10(float __lcpp_x) _NOEXCEPT       {return ::log10f(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x) _NOEXCEPT {return ::log10l(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nlog10(_A1 __lcpp_x) _NOEXCEPT {return ::log10((double)__lcpp_x);}\n\n// modf\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       modf(float __lcpp_x, float* __lcpp_y) _NOEXCEPT             {return ::modff(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x, long double* __lcpp_y) _NOEXCEPT {return ::modfl(__lcpp_x, __lcpp_y);}\n#endif\n\n// pow\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       pow(float __lcpp_x, float __lcpp_y) _NOEXCEPT             {return ::powf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::powl(__lcpp_x, __lcpp_y);}\n#endif\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\npow(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::pow((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// sin\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       sin(float __lcpp_x) _NOEXCEPT       {return ::sinf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x) _NOEXCEPT {return ::sinl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nsin(_A1 __lcpp_x) _NOEXCEPT {return ::sin((double)__lcpp_x);}\n\n// sinh\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       sinh(float __lcpp_x) _NOEXCEPT       {return ::sinhf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x) _NOEXCEPT {return ::sinhl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nsinh(_A1 __lcpp_x) _NOEXCEPT {return ::sinh((double)__lcpp_x);}\n\n// sqrt\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       sqrt(float __lcpp_x) _NOEXCEPT       {return ::sqrtf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x) _NOEXCEPT {return ::sqrtl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nsqrt(_A1 __lcpp_x) _NOEXCEPT {return ::sqrt((double)__lcpp_x);}\n\n// tan\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       tan(float __lcpp_x) _NOEXCEPT       {return ::tanf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x) _NOEXCEPT {return ::tanl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\ntan(_A1 __lcpp_x) _NOEXCEPT {return ::tan((double)__lcpp_x);}\n\n// tanh\n\n#if !(defined(_AIX) || defined(__sun__))\ninline _LIBCPP_INLINE_VISIBILITY float       tanh(float __lcpp_x) _NOEXCEPT       {return ::tanhf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x) _NOEXCEPT {return ::tanhl(__lcpp_x);}\n#endif\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\ntanh(_A1 __lcpp_x) _NOEXCEPT {return ::tanh((double)__lcpp_x);}\n\n// acosh\n\ninline _LIBCPP_INLINE_VISIBILITY float       acosh(float __lcpp_x) _NOEXCEPT       {return ::acoshf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x) _NOEXCEPT {return ::acoshl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nacosh(_A1 __lcpp_x) _NOEXCEPT {return ::acosh((double)__lcpp_x);}\n\n// asinh\n\ninline _LIBCPP_INLINE_VISIBILITY float       asinh(float __lcpp_x) _NOEXCEPT       {return ::asinhf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x) _NOEXCEPT {return ::asinhl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nasinh(_A1 __lcpp_x) _NOEXCEPT {return ::asinh((double)__lcpp_x);}\n\n// atanh\n\ninline _LIBCPP_INLINE_VISIBILITY float       atanh(float __lcpp_x) _NOEXCEPT       {return ::atanhf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double atanh(long double __lcpp_x) _NOEXCEPT {return ::atanhl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\natanh(_A1 __lcpp_x) _NOEXCEPT {return ::atanh((double)__lcpp_x);}\n\n// cbrt\n\ninline _LIBCPP_INLINE_VISIBILITY float       cbrt(float __lcpp_x) _NOEXCEPT       {return ::cbrtf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double cbrt(long double __lcpp_x) _NOEXCEPT {return ::cbrtl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\ncbrt(_A1 __lcpp_x) _NOEXCEPT {return ::cbrt((double)__lcpp_x);}\n\n// copysign\n\ninline _LIBCPP_INLINE_VISIBILITY float copysign(float __lcpp_x,\n                                                float __lcpp_y) _NOEXCEPT {\n  return ::copysignf(__lcpp_x, __lcpp_y);\n}\ninline _LIBCPP_INLINE_VISIBILITY long double\ncopysign(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {\n  return ::copysignl(__lcpp_x, __lcpp_y);\n}\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\ncopysign(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::copysign((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// erf\n\ninline _LIBCPP_INLINE_VISIBILITY float       erf(float __lcpp_x) _NOEXCEPT       {return ::erff(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double erf(long double __lcpp_x) _NOEXCEPT {return ::erfl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nerf(_A1 __lcpp_x) _NOEXCEPT {return ::erf((double)__lcpp_x);}\n\n// erfc\n\ninline _LIBCPP_INLINE_VISIBILITY float       erfc(float __lcpp_x) _NOEXCEPT       {return ::erfcf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double erfc(long double __lcpp_x) _NOEXCEPT {return ::erfcl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nerfc(_A1 __lcpp_x) _NOEXCEPT {return ::erfc((double)__lcpp_x);}\n\n// exp2\n\ninline _LIBCPP_INLINE_VISIBILITY float       exp2(float __lcpp_x) _NOEXCEPT       {return ::exp2f(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double exp2(long double __lcpp_x) _NOEXCEPT {return ::exp2l(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nexp2(_A1 __lcpp_x) _NOEXCEPT {return ::exp2((double)__lcpp_x);}\n\n// expm1\n\ninline _LIBCPP_INLINE_VISIBILITY float       expm1(float __lcpp_x) _NOEXCEPT       {return ::expm1f(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double expm1(long double __lcpp_x) _NOEXCEPT {return ::expm1l(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nexpm1(_A1 __lcpp_x) _NOEXCEPT {return ::expm1((double)__lcpp_x);}\n\n// fdim\n\ninline _LIBCPP_INLINE_VISIBILITY float       fdim(float __lcpp_x, float __lcpp_y) _NOEXCEPT             {return ::fdimf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double fdim(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fdiml(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\nfdim(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::fdim((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// fma\n\ninline _LIBCPP_INLINE_VISIBILITY float       fma(float __lcpp_x, float __lcpp_y, float __lcpp_z) _NOEXCEPT                   {return ::fmaf(__lcpp_x, __lcpp_y, __lcpp_z);}\ninline _LIBCPP_INLINE_VISIBILITY long double fma(long double __lcpp_x, long double __lcpp_y, long double __lcpp_z) _NOEXCEPT {return ::fmal(__lcpp_x, __lcpp_y, __lcpp_z);}\n\ntemplate <class _A1, class _A2, class _A3>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value &&\n    std::is_arithmetic<_A3>::value,\n    std::__promote<_A1, _A2, _A3>\n>::type\nfma(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2, _A3>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value &&\n                     std::is_same<_A3, __result_type>::value)), \"\");\n    return ::fma((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z);\n}\n\n// fmax\n\ninline _LIBCPP_INLINE_VISIBILITY float       fmax(float __lcpp_x, float __lcpp_y) _NOEXCEPT             {return ::fmaxf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double fmax(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fmaxl(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\nfmax(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::fmax((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// fmin\n\ninline _LIBCPP_INLINE_VISIBILITY float       fmin(float __lcpp_x, float __lcpp_y) _NOEXCEPT             {return ::fminf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double fmin(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fminl(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\nfmin(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::fmin((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// hypot\n\ninline _LIBCPP_INLINE_VISIBILITY float       hypot(float __lcpp_x, float __lcpp_y) _NOEXCEPT             {return ::hypotf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double hypot(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::hypotl(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\nhypot(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// ilogb\n\ninline _LIBCPP_INLINE_VISIBILITY int ilogb(float __lcpp_x) _NOEXCEPT       {return ::ilogbf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY int ilogb(long double __lcpp_x) _NOEXCEPT {return ::ilogbl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, int>::type\nilogb(_A1 __lcpp_x) _NOEXCEPT {return ::ilogb((double)__lcpp_x);}\n\n// lgamma\n\ninline _LIBCPP_INLINE_VISIBILITY float       lgamma(float __lcpp_x) _NOEXCEPT       {return ::lgammaf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double lgamma(long double __lcpp_x) _NOEXCEPT {return ::lgammal(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nlgamma(_A1 __lcpp_x) _NOEXCEPT {return ::lgamma((double)__lcpp_x);}\n\n// llrint\n\ninline _LIBCPP_INLINE_VISIBILITY long long llrint(float __lcpp_x) _NOEXCEPT       {return ::llrintf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long long llrint(long double __lcpp_x) _NOEXCEPT {return ::llrintl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, long long>::type\nllrint(_A1 __lcpp_x) _NOEXCEPT {return ::llrint((double)__lcpp_x);}\n\n// llround\n\ninline _LIBCPP_INLINE_VISIBILITY long long llround(float __lcpp_x) _NOEXCEPT       {return ::llroundf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long long llround(long double __lcpp_x) _NOEXCEPT {return ::llroundl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, long long>::type\nllround(_A1 __lcpp_x) _NOEXCEPT {return ::llround((double)__lcpp_x);}\n\n// log1p\n\ninline _LIBCPP_INLINE_VISIBILITY float       log1p(float __lcpp_x) _NOEXCEPT       {return ::log1pf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double log1p(long double __lcpp_x) _NOEXCEPT {return ::log1pl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nlog1p(_A1 __lcpp_x) _NOEXCEPT {return ::log1p((double)__lcpp_x);}\n\n// log2\n\ninline _LIBCPP_INLINE_VISIBILITY float       log2(float __lcpp_x) _NOEXCEPT       {return ::log2f(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double log2(long double __lcpp_x) _NOEXCEPT {return ::log2l(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nlog2(_A1 __lcpp_x) _NOEXCEPT {return ::log2((double)__lcpp_x);}\n\n// logb\n\ninline _LIBCPP_INLINE_VISIBILITY float       logb(float __lcpp_x) _NOEXCEPT       {return ::logbf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double logb(long double __lcpp_x) _NOEXCEPT {return ::logbl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nlogb(_A1 __lcpp_x) _NOEXCEPT {return ::logb((double)__lcpp_x);}\n\n// lrint\n\ninline _LIBCPP_INLINE_VISIBILITY long lrint(float __lcpp_x) _NOEXCEPT       {return ::lrintf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long lrint(long double __lcpp_x) _NOEXCEPT {return ::lrintl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, long>::type\nlrint(_A1 __lcpp_x) _NOEXCEPT {return ::lrint((double)__lcpp_x);}\n\n// lround\n\ninline _LIBCPP_INLINE_VISIBILITY long lround(float __lcpp_x) _NOEXCEPT       {return ::lroundf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long lround(long double __lcpp_x) _NOEXCEPT {return ::lroundl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, long>::type\nlround(_A1 __lcpp_x) _NOEXCEPT {return ::lround((double)__lcpp_x);}\n\n// nan\n\n// nearbyint\n\ninline _LIBCPP_INLINE_VISIBILITY float       nearbyint(float __lcpp_x) _NOEXCEPT       {return ::nearbyintf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double nearbyint(long double __lcpp_x) _NOEXCEPT {return ::nearbyintl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nnearbyint(_A1 __lcpp_x) _NOEXCEPT {return ::nearbyint((double)__lcpp_x);}\n\n// nextafter\n\ninline _LIBCPP_INLINE_VISIBILITY float       nextafter(float __lcpp_x, float __lcpp_y) _NOEXCEPT             {return ::nextafterf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double nextafter(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nextafterl(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\nnextafter(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::nextafter((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// nexttoward\n\ninline _LIBCPP_INLINE_VISIBILITY float       nexttoward(float __lcpp_x, long double __lcpp_y) _NOEXCEPT       {return ::nexttowardf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double nexttoward(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nexttowardl(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nnexttoward(_A1 __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nexttoward((double)__lcpp_x, __lcpp_y);}\n\n// remainder\n\ninline _LIBCPP_INLINE_VISIBILITY float       remainder(float __lcpp_x, float __lcpp_y) _NOEXCEPT             {return ::remainderf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double remainder(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::remainderl(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\nremainder(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::remainder((__result_type)__lcpp_x, (__result_type)__lcpp_y);\n}\n\n// remquo\n\ninline _LIBCPP_INLINE_VISIBILITY float       remquo(float __lcpp_x, float __lcpp_y, int* __lcpp_z) _NOEXCEPT             {return ::remquof(__lcpp_x, __lcpp_y, __lcpp_z);}\ninline _LIBCPP_INLINE_VISIBILITY long double remquo(long double __lcpp_x, long double __lcpp_y, int* __lcpp_z) _NOEXCEPT {return ::remquol(__lcpp_x, __lcpp_y, __lcpp_z);}\n\ntemplate <class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::__lazy_enable_if\n<\n    std::is_arithmetic<_A1>::value &&\n    std::is_arithmetic<_A2>::value,\n    std::__promote<_A1, _A2>\n>::type\nremquo(_A1 __lcpp_x, _A2 __lcpp_y, int* __lcpp_z) _NOEXCEPT\n{\n    typedef typename std::__promote<_A1, _A2>::type __result_type;\n    static_assert((!(std::is_same<_A1, __result_type>::value &&\n                     std::is_same<_A2, __result_type>::value)), \"\");\n    return ::remquo((__result_type)__lcpp_x, (__result_type)__lcpp_y, __lcpp_z);\n}\n\n// rint\n\ninline _LIBCPP_INLINE_VISIBILITY float       rint(float __lcpp_x) _NOEXCEPT       {return ::rintf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double rint(long double __lcpp_x) _NOEXCEPT {return ::rintl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nrint(_A1 __lcpp_x) _NOEXCEPT {return ::rint((double)__lcpp_x);}\n\n// round\n\ninline _LIBCPP_INLINE_VISIBILITY float       round(float __lcpp_x) _NOEXCEPT       {return ::roundf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double round(long double __lcpp_x) _NOEXCEPT {return ::roundl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nround(_A1 __lcpp_x) _NOEXCEPT {return ::round((double)__lcpp_x);}\n\n// scalbln\n\ninline _LIBCPP_INLINE_VISIBILITY float       scalbln(float __lcpp_x, long __lcpp_y) _NOEXCEPT       {return ::scalblnf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double scalbln(long double __lcpp_x, long __lcpp_y) _NOEXCEPT {return ::scalblnl(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nscalbln(_A1 __lcpp_x, long __lcpp_y) _NOEXCEPT {return ::scalbln((double)__lcpp_x, __lcpp_y);}\n\n// scalbn\n\ninline _LIBCPP_INLINE_VISIBILITY float       scalbn(float __lcpp_x, int __lcpp_y) _NOEXCEPT       {return ::scalbnf(__lcpp_x, __lcpp_y);}\ninline _LIBCPP_INLINE_VISIBILITY long double scalbn(long double __lcpp_x, int __lcpp_y) _NOEXCEPT {return ::scalbnl(__lcpp_x, __lcpp_y);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\nscalbn(_A1 __lcpp_x, int __lcpp_y) _NOEXCEPT {return ::scalbn((double)__lcpp_x, __lcpp_y);}\n\n// tgamma\n\ninline _LIBCPP_INLINE_VISIBILITY float       tgamma(float __lcpp_x) _NOEXCEPT       {return ::tgammaf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double tgamma(long double __lcpp_x) _NOEXCEPT {return ::tgammal(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\ntgamma(_A1 __lcpp_x) _NOEXCEPT {return ::tgamma((double)__lcpp_x);}\n\n// trunc\n\ninline _LIBCPP_INLINE_VISIBILITY float       trunc(float __lcpp_x) _NOEXCEPT       {return ::truncf(__lcpp_x);}\ninline _LIBCPP_INLINE_VISIBILITY long double trunc(long double __lcpp_x) _NOEXCEPT {return ::truncl(__lcpp_x);}\n\ntemplate <class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename std::enable_if<std::is_integral<_A1>::value, double>::type\ntrunc(_A1 __lcpp_x) _NOEXCEPT {return ::trunc((double)__lcpp_x);}\n\n} // extern \"C++\"\n\n#endif // __cplusplus\n\n#endif  // _LIBCPP_MATH_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/memory",
    "content": "// -*- C++ -*-\n//===-------------------------- memory ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_MEMORY\n#define _LIBCPP_MEMORY\n\n/*\n    memory synopsis\n\nnamespace std\n{\n\nstruct allocator_arg_t { };\nconstexpr allocator_arg_t allocator_arg = allocator_arg_t();\n\ntemplate <class T, class Alloc> struct uses_allocator;\n\ntemplate <class Ptr>\nstruct pointer_traits\n{\n    typedef Ptr pointer;\n    typedef <details> element_type;\n    typedef <details> difference_type;\n\n    template <class U> using rebind = <details>;\n\n    static pointer pointer_to(<details>);\n};\n\ntemplate <class T>\nstruct pointer_traits<T*>\n{\n    typedef T* pointer;\n    typedef T element_type;\n    typedef ptrdiff_t difference_type;\n\n    template <class U> using rebind = U*;\n\n    static pointer pointer_to(<details>) noexcept;\n};\n\ntemplate <class Alloc>\nstruct allocator_traits\n{\n    typedef Alloc                        allocator_type;\n    typedef typename allocator_type::value_type\n                                         value_type;\n\n    typedef Alloc::pointer | value_type* pointer;\n    typedef Alloc::const_pointer\n          | pointer_traits<pointer>::rebind<const value_type>\n                                         const_pointer;\n    typedef Alloc::void_pointer\n          | pointer_traits<pointer>::rebind<void>\n                                         void_pointer;\n    typedef Alloc::const_void_pointer\n          | pointer_traits<pointer>::rebind<const void>\n                                         const_void_pointer;\n    typedef Alloc::difference_type\n          | pointer_traits<pointer>::difference_type\n                                         difference_type;\n    typedef Alloc::size_type\n          | make_unsigned<difference_type>::type\n                                         size_type;\n    typedef Alloc::propagate_on_container_copy_assignment\n          | false_type                   propagate_on_container_copy_assignment;\n    typedef Alloc::propagate_on_container_move_assignment\n          | false_type                   propagate_on_container_move_assignment;\n    typedef Alloc::propagate_on_container_swap\n          | false_type                   propagate_on_container_swap;\n    typedef Alloc::is_always_equal\n          | is_empty                     is_always_equal;\n\n    template <class T> using rebind_alloc  = Alloc::rebind<U>::other | Alloc<T, Args...>;\n    template <class T> using rebind_traits = allocator_traits<rebind_alloc<T>>;\n\n    static pointer allocate(allocator_type& a, size_type n);\n    static pointer allocate(allocator_type& a, size_type n, const_void_pointer hint);\n\n    static void deallocate(allocator_type& a, pointer p, size_type n) noexcept;\n\n    template <class T, class... Args>\n        static void construct(allocator_type& a, T* p, Args&&... args);\n\n    template <class T>\n        static void destroy(allocator_type& a, T* p);\n\n    static size_type max_size(const allocator_type& a); // noexcept in C++14\n\n    static allocator_type\n        select_on_container_copy_construction(const allocator_type& a);\n};\n\ntemplate <>\nclass allocator<void>\n{\npublic:\n    typedef void*                                 pointer;\n    typedef const void*                           const_pointer;\n    typedef void                                  value_type;\n\n    template <class _Up> struct rebind {typedef allocator<_Up> other;};\n};\n\ntemplate <class T>\nclass allocator\n{\npublic:\n    typedef size_t                                size_type;\n    typedef ptrdiff_t                             difference_type;\n    typedef T*                                    pointer;\n    typedef const T*                              const_pointer;\n    typedef typename add_lvalue_reference<T>::type       reference;\n    typedef typename add_lvalue_reference<const T>::type const_reference;\n    typedef T                                     value_type;\n\n    template <class U> struct rebind {typedef allocator<U> other;};\n\n    allocator() noexcept;\n    allocator(const allocator&) noexcept;\n    template <class U> allocator(const allocator<U>&) noexcept;\n    ~allocator();\n    pointer address(reference x) const noexcept;\n    const_pointer address(const_reference x) const noexcept;\n    pointer allocate(size_type, allocator<void>::const_pointer hint = 0);\n    void deallocate(pointer p, size_type n) noexcept;\n    size_type max_size() const noexcept;\n    template<class U, class... Args>\n        void construct(U* p, Args&&... args);\n    template <class U>\n        void destroy(U* p);\n};\n\ntemplate <class T, class U>\nbool operator==(const allocator<T>&, const allocator<U>&) noexcept;\n\ntemplate <class T, class U>\nbool operator!=(const allocator<T>&, const allocator<U>&) noexcept;\n\ntemplate <class OutputIterator, class T>\nclass raw_storage_iterator\n    : public iterator<output_iterator_tag,\n                      T,                               // purposefully not C++03\n                      ptrdiff_t,                       // purposefully not C++03\n                      T*,                              // purposefully not C++03\n                      raw_storage_iterator&>           // purposefully not C++03\n{\npublic:\n    explicit raw_storage_iterator(OutputIterator x);\n    raw_storage_iterator& operator*();\n    raw_storage_iterator& operator=(const T& element);\n    raw_storage_iterator& operator++();\n    raw_storage_iterator  operator++(int);\n};\n\ntemplate <class T> pair<T*,ptrdiff_t> get_temporary_buffer(ptrdiff_t n) noexcept;\ntemplate <class T> void               return_temporary_buffer(T* p) noexcept;\n\ntemplate <class T> T* addressof(T& r) noexcept;\ntemplate <class T> T* addressof(const T&& r) noexcept = delete;\n\ntemplate <class InputIterator, class ForwardIterator>\nForwardIterator\nuninitialized_copy(InputIterator first, InputIterator last, ForwardIterator result);\n\ntemplate <class InputIterator, class Size, class ForwardIterator>\nForwardIterator\nuninitialized_copy_n(InputIterator first, Size n, ForwardIterator result);\n\ntemplate <class ForwardIterator, class T>\nvoid uninitialized_fill(ForwardIterator first, ForwardIterator last, const T& x);\n\ntemplate <class ForwardIterator, class Size, class T>\nForwardIterator\nuninitialized_fill_n(ForwardIterator first, Size n, const T& x);\n\ntemplate <class T>\nvoid destroy_at(T* location);\n\ntemplate <class ForwardIterator>\n void destroy(ForwardIterator first, ForwardIterator last);\n\ntemplate <class ForwardIterator, class Size>\n ForwardIterator destroy_n(ForwardIterator first, Size n);\n\ntemplate <class InputIterator, class ForwardIterator>\n ForwardIterator uninitialized_move(InputIterator first, InputIterator last, ForwardIterator result);\n\ntemplate <class InputIterator, class Size, class ForwardIterator>\n pair<InputIterator,ForwardIterator> uninitialized_move_n(InputIterator first, Size n, ForwardIterator result);\n\ntemplate <class ForwardIterator>\n void uninitialized_value_construct(ForwardIterator first, ForwardIterator last);\n\ntemplate <class ForwardIterator, class Size>\n ForwardIterator uninitialized_value_construct_n(ForwardIterator first, Size n);\n\ntemplate <class ForwardIterator>\n void uninitialized_default_construct(ForwardIterator first, ForwardIterator last);\n\ntemplate <class ForwardIterator, class Size>\n ForwardIterator uninitialized_default_construct_n(ForwardIterator first, Size n);\n\ntemplate <class Y> struct auto_ptr_ref {};      // removed in C++17\n\ntemplate<class X>\nclass auto_ptr                                  // removed in C++17\n{\npublic:\n    typedef X element_type;\n\n    explicit auto_ptr(X* p =0) throw();\n    auto_ptr(auto_ptr&) throw();\n    template<class Y> auto_ptr(auto_ptr<Y>&) throw();\n    auto_ptr& operator=(auto_ptr&) throw();\n    template<class Y> auto_ptr& operator=(auto_ptr<Y>&) throw();\n    auto_ptr& operator=(auto_ptr_ref<X> r) throw();\n    ~auto_ptr() throw();\n\n    typename add_lvalue_reference<X>::type operator*() const throw();\n    X* operator->() const throw();\n    X* get() const throw();\n    X* release() throw();\n    void reset(X* p =0) throw();\n\n    auto_ptr(auto_ptr_ref<X>) throw();\n    template<class Y> operator auto_ptr_ref<Y>() throw();\n    template<class Y> operator auto_ptr<Y>() throw();\n};\n\ntemplate <class T>\nstruct default_delete\n{\n    constexpr default_delete() noexcept = default;\n    template <class U> default_delete(const default_delete<U>&) noexcept;\n\n    void operator()(T*) const noexcept;\n};\n\ntemplate <class T>\nstruct default_delete<T[]>\n{\n    constexpr default_delete() noexcept = default;\n    void operator()(T*) const noexcept;\n    template <class U> void operator()(U*) const = delete;\n};\n\ntemplate <class T, class D = default_delete<T>>\nclass unique_ptr\n{\npublic:\n    typedef see below pointer;\n    typedef T element_type;\n    typedef D deleter_type;\n\n    // constructors\n    constexpr unique_ptr() noexcept;\n    explicit unique_ptr(pointer p) noexcept;\n    unique_ptr(pointer p, see below d1) noexcept;\n    unique_ptr(pointer p, see below d2) noexcept;\n    unique_ptr(unique_ptr&& u) noexcept;\n    unique_ptr(nullptr_t) noexcept : unique_ptr() { }\n    template <class U, class E>\n        unique_ptr(unique_ptr<U, E>&& u) noexcept;\n    template <class U>\n        unique_ptr(auto_ptr<U>&& u) noexcept;       // removed in C++17\n\n    // destructor\n    ~unique_ptr();\n\n    // assignment\n    unique_ptr& operator=(unique_ptr&& u) noexcept;\n    template <class U, class E> unique_ptr& operator=(unique_ptr<U, E>&& u) noexcept;\n    unique_ptr& operator=(nullptr_t) noexcept;\n\n    // observers\n    typename add_lvalue_reference<T>::type operator*() const;\n    pointer operator->() const noexcept;\n    pointer get() const noexcept;\n    deleter_type& get_deleter() noexcept;\n    const deleter_type& get_deleter() const noexcept;\n    explicit operator bool() const noexcept;\n\n    // modifiers\n    pointer release() noexcept;\n    void reset(pointer p = pointer()) noexcept;\n    void swap(unique_ptr& u) noexcept;\n};\n\ntemplate <class T, class D>\nclass unique_ptr<T[], D>\n{\npublic:\n    typedef implementation-defined pointer;\n    typedef T element_type;\n    typedef D deleter_type;\n\n    // constructors\n    constexpr unique_ptr() noexcept;\n    explicit unique_ptr(pointer p) noexcept;\n    unique_ptr(pointer p, see below d) noexcept;\n    unique_ptr(pointer p, see below d) noexcept;\n    unique_ptr(unique_ptr&& u) noexcept;\n    unique_ptr(nullptr_t) noexcept : unique_ptr() { }\n\n    // destructor\n    ~unique_ptr();\n\n    // assignment\n    unique_ptr& operator=(unique_ptr&& u) noexcept;\n    unique_ptr& operator=(nullptr_t) noexcept;\n\n    // observers\n    T& operator[](size_t i) const;\n    pointer get() const noexcept;\n    deleter_type& get_deleter() noexcept;\n    const deleter_type& get_deleter() const noexcept;\n    explicit operator bool() const noexcept;\n\n    // modifiers\n    pointer release() noexcept;\n    void reset(pointer p = pointer()) noexcept;\n    void reset(nullptr_t) noexcept;\n    template <class U> void reset(U) = delete;\n    void swap(unique_ptr& u) noexcept;\n};\n\ntemplate <class T, class D>\n    void swap(unique_ptr<T, D>& x, unique_ptr<T, D>& y) noexcept;\n\ntemplate <class T1, class D1, class T2, class D2>\n    bool operator==(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);\ntemplate <class T1, class D1, class T2, class D2>\n    bool operator!=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);\ntemplate <class T1, class D1, class T2, class D2>\n    bool operator<(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);\ntemplate <class T1, class D1, class T2, class D2>\n    bool operator<=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);\ntemplate <class T1, class D1, class T2, class D2>\n    bool operator>(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);\ntemplate <class T1, class D1, class T2, class D2>\n    bool operator>=(const unique_ptr<T1, D1>& x, const unique_ptr<T2, D2>& y);\n\ntemplate <class T, class D>\n    bool operator==(const unique_ptr<T, D>& x, nullptr_t) noexcept;\ntemplate <class T, class D>\n    bool operator==(nullptr_t, const unique_ptr<T, D>& y) noexcept;\ntemplate <class T, class D>\n    bool operator!=(const unique_ptr<T, D>& x, nullptr_t) noexcept;\ntemplate <class T, class D>\n    bool operator!=(nullptr_t, const unique_ptr<T, D>& y) noexcept;\n\ntemplate <class T, class D>\n    bool operator<(const unique_ptr<T, D>& x, nullptr_t);\ntemplate <class T, class D>\n    bool operator<(nullptr_t, const unique_ptr<T, D>& y);\ntemplate <class T, class D>\n    bool operator<=(const unique_ptr<T, D>& x, nullptr_t);\ntemplate <class T, class D>\n    bool operator<=(nullptr_t, const unique_ptr<T, D>& y);\ntemplate <class T, class D>\n    bool operator>(const unique_ptr<T, D>& x, nullptr_t);\ntemplate <class T, class D>\n    bool operator>(nullptr_t, const unique_ptr<T, D>& y);\ntemplate <class T, class D>\n    bool operator>=(const unique_ptr<T, D>& x, nullptr_t);\ntemplate <class T, class D>\n    bool operator>=(nullptr_t, const unique_ptr<T, D>& y);\n\nclass bad_weak_ptr\n    : public std::exception\n{\n    bad_weak_ptr() noexcept;\n};\n\ntemplate<class T, class... Args> unique_ptr<T> make_unique(Args&&... args);     // C++14\ntemplate<class T>                unique_ptr<T> make_unique(size_t n);           // C++14\ntemplate<class T, class... Args> unspecified   make_unique(Args&&...) = delete; // C++14, T == U[N]\n\ntemplate<class T>\nclass shared_ptr\n{\npublic:\n    typedef T element_type;\n    typedef weak_ptr<T> weak_type; // C++17\n\n    // constructors:\n    constexpr shared_ptr() noexcept;\n    template<class Y> explicit shared_ptr(Y* p);\n    template<class Y, class D> shared_ptr(Y* p, D d);\n    template<class Y, class D, class A> shared_ptr(Y* p, D d, A a);\n    template <class D> shared_ptr(nullptr_t p, D d);\n    template <class D, class A> shared_ptr(nullptr_t p, D d, A a);\n    template<class Y> shared_ptr(const shared_ptr<Y>& r, T *p) noexcept;\n    shared_ptr(const shared_ptr& r) noexcept;\n    template<class Y> shared_ptr(const shared_ptr<Y>& r) noexcept;\n    shared_ptr(shared_ptr&& r) noexcept;\n    template<class Y> shared_ptr(shared_ptr<Y>&& r) noexcept;\n    template<class Y> explicit shared_ptr(const weak_ptr<Y>& r);\n    template<class Y> shared_ptr(auto_ptr<Y>&& r);          // removed in C++17\n    template <class Y, class D> shared_ptr(unique_ptr<Y, D>&& r);\n    shared_ptr(nullptr_t) : shared_ptr() { }\n\n    // destructor:\n    ~shared_ptr();\n\n    // assignment:\n    shared_ptr& operator=(const shared_ptr& r) noexcept;\n    template<class Y> shared_ptr& operator=(const shared_ptr<Y>& r) noexcept;\n    shared_ptr& operator=(shared_ptr&& r) noexcept;\n    template<class Y> shared_ptr& operator=(shared_ptr<Y>&& r);\n    template<class Y> shared_ptr& operator=(auto_ptr<Y>&& r); // removed in C++17\n    template <class Y, class D> shared_ptr& operator=(unique_ptr<Y, D>&& r);\n\n    // modifiers:\n    void swap(shared_ptr& r) noexcept;\n    void reset() noexcept;\n    template<class Y> void reset(Y* p);\n    template<class Y, class D> void reset(Y* p, D d);\n    template<class Y, class D, class A> void reset(Y* p, D d, A a);\n\n    // observers:\n    T* get() const noexcept;\n    T& operator*() const noexcept;\n    T* operator->() const noexcept;\n    long use_count() const noexcept;\n    bool unique() const noexcept;\n    explicit operator bool() const noexcept;\n    template<class U> bool owner_before(shared_ptr<U> const& b) const noexcept;\n    template<class U> bool owner_before(weak_ptr<U> const& b) const noexcept;\n};\n\n// shared_ptr comparisons:\ntemplate<class T, class U>\n    bool operator==(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;\ntemplate<class T, class U>\n    bool operator!=(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;\ntemplate<class T, class U>\n    bool operator<(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;\ntemplate<class T, class U>\n    bool operator>(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;\ntemplate<class T, class U>\n    bool operator<=(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;\ntemplate<class T, class U>\n    bool operator>=(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;\n\ntemplate <class T>\n    bool operator==(const shared_ptr<T>& x, nullptr_t) noexcept;\ntemplate <class T>\n    bool operator==(nullptr_t, const shared_ptr<T>& y) noexcept;\ntemplate <class T>\n    bool operator!=(const shared_ptr<T>& x, nullptr_t) noexcept;\ntemplate <class T>\n    bool operator!=(nullptr_t, const shared_ptr<T>& y) noexcept;\ntemplate <class T>\n    bool operator<(const shared_ptr<T>& x, nullptr_t) noexcept;\ntemplate <class T>\nbool operator<(nullptr_t, const shared_ptr<T>& y) noexcept;\ntemplate <class T>\n    bool operator<=(const shared_ptr<T>& x, nullptr_t) noexcept;\ntemplate <class T>\n    bool operator<=(nullptr_t, const shared_ptr<T>& y) noexcept;\ntemplate <class T>\n    bool operator>(const shared_ptr<T>& x, nullptr_t) noexcept;\ntemplate <class T>\n    bool operator>(nullptr_t, const shared_ptr<T>& y) noexcept;\ntemplate <class T>\n    bool operator>=(const shared_ptr<T>& x, nullptr_t) noexcept;\ntemplate <class T>\n    bool operator>=(nullptr_t, const shared_ptr<T>& y) noexcept;\n\n// shared_ptr specialized algorithms:\ntemplate<class T> void swap(shared_ptr<T>& a, shared_ptr<T>& b) noexcept;\n\n// shared_ptr casts:\ntemplate<class T, class U>\n    shared_ptr<T> static_pointer_cast(shared_ptr<U> const& r) noexcept;\ntemplate<class T, class U>\n    shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const& r) noexcept;\ntemplate<class T, class U>\n    shared_ptr<T> const_pointer_cast(shared_ptr<U> const& r) noexcept;\n\n// shared_ptr I/O:\ntemplate<class E, class T, class Y>\n    basic_ostream<E, T>& operator<< (basic_ostream<E, T>& os, shared_ptr<Y> const& p);\n\n// shared_ptr get_deleter:\ntemplate<class D, class T> D* get_deleter(shared_ptr<T> const& p) noexcept;\n\ntemplate<class T, class... Args>\n    shared_ptr<T> make_shared(Args&&... args);\ntemplate<class T, class A, class... Args>\n    shared_ptr<T> allocate_shared(const A& a, Args&&... args);\n\ntemplate<class T>\nclass weak_ptr\n{\npublic:\n    typedef T element_type;\n\n    // constructors\n    constexpr weak_ptr() noexcept;\n    template<class Y> weak_ptr(shared_ptr<Y> const& r) noexcept;\n    weak_ptr(weak_ptr const& r) noexcept;\n    template<class Y> weak_ptr(weak_ptr<Y> const& r) noexcept;\n    weak_ptr(weak_ptr&& r) noexcept;                      // C++14\n    template<class Y> weak_ptr(weak_ptr<Y>&& r) noexcept; // C++14\n\n    // destructor\n    ~weak_ptr();\n\n    // assignment\n    weak_ptr& operator=(weak_ptr const& r) noexcept;\n    template<class Y> weak_ptr& operator=(weak_ptr<Y> const& r) noexcept;\n    template<class Y> weak_ptr& operator=(shared_ptr<Y> const& r) noexcept;\n    weak_ptr& operator=(weak_ptr&& r) noexcept;                      // C++14\n    template<class Y> weak_ptr& operator=(weak_ptr<Y>&& r) noexcept; // C++14\n\n    // modifiers\n    void swap(weak_ptr& r) noexcept;\n    void reset() noexcept;\n\n    // observers\n    long use_count() const noexcept;\n    bool expired() const noexcept;\n    shared_ptr<T> lock() const noexcept;\n    template<class U> bool owner_before(shared_ptr<U> const& b) const noexcept;\n    template<class U> bool owner_before(weak_ptr<U> const& b) const noexcept;\n};\n\n// weak_ptr specialized algorithms:\ntemplate<class T> void swap(weak_ptr<T>& a, weak_ptr<T>& b) noexcept;\n\n// class owner_less:\ntemplate<class T> struct owner_less;\n\ntemplate<class T>\nstruct owner_less<shared_ptr<T>>\n    : binary_function<shared_ptr<T>, shared_ptr<T>, bool>\n{\n    typedef bool result_type;\n    bool operator()(shared_ptr<T> const&, shared_ptr<T> const&) const noexcept;\n    bool operator()(shared_ptr<T> const&, weak_ptr<T> const&) const noexcept;\n    bool operator()(weak_ptr<T> const&, shared_ptr<T> const&) const noexcept;\n};\n\ntemplate<class T>\nstruct owner_less<weak_ptr<T>>\n    : binary_function<weak_ptr<T>, weak_ptr<T>, bool>\n{\n    typedef bool result_type;\n    bool operator()(weak_ptr<T> const&, weak_ptr<T> const&) const noexcept;\n    bool operator()(shared_ptr<T> const&, weak_ptr<T> const&) const noexcept;\n    bool operator()(weak_ptr<T> const&, shared_ptr<T> const&) const noexcept;\n};\n\ntemplate <>  // Added in C++14\nstruct owner_less<void>\n{\n    template <class _Tp, class _Up>\n    bool operator()( shared_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const noexcept;\n    template <class _Tp, class _Up>\n    bool operator()( shared_ptr<_Tp> const& __x,   weak_ptr<_Up> const& __y) const noexcept;\n    template <class _Tp, class _Up>\n    bool operator()(   weak_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const noexcept;\n    template <class _Tp, class _Up>\n    bool operator()(   weak_ptr<_Tp> const& __x,   weak_ptr<_Up> const& __y) const noexcept;\n\n    typedef void is_transparent;\n};\n\ntemplate<class T>\nclass enable_shared_from_this\n{\nprotected:\n    constexpr enable_shared_from_this() noexcept;\n    enable_shared_from_this(enable_shared_from_this const&) noexcept;\n    enable_shared_from_this& operator=(enable_shared_from_this const&) noexcept;\n    ~enable_shared_from_this();\npublic:\n    shared_ptr<T> shared_from_this();\n    shared_ptr<T const> shared_from_this() const;\n};\n\ntemplate<class T>\n    bool atomic_is_lock_free(const shared_ptr<T>* p);\ntemplate<class T>\n    shared_ptr<T> atomic_load(const shared_ptr<T>* p);\ntemplate<class T>\n    shared_ptr<T> atomic_load_explicit(const shared_ptr<T>* p, memory_order mo);\ntemplate<class T>\n    void atomic_store(shared_ptr<T>* p, shared_ptr<T> r);\ntemplate<class T>\n    void atomic_store_explicit(shared_ptr<T>* p, shared_ptr<T> r, memory_order mo);\ntemplate<class T>\n    shared_ptr<T> atomic_exchange(shared_ptr<T>* p, shared_ptr<T> r);\ntemplate<class T>\n    shared_ptr<T>\n    atomic_exchange_explicit(shared_ptr<T>* p, shared_ptr<T> r, memory_order mo);\ntemplate<class T>\n    bool\n    atomic_compare_exchange_weak(shared_ptr<T>* p, shared_ptr<T>* v, shared_ptr<T> w);\ntemplate<class T>\n    bool\n    atomic_compare_exchange_strong( shared_ptr<T>* p, shared_ptr<T>* v, shared_ptr<T> w);\ntemplate<class T>\n    bool\n    atomic_compare_exchange_weak_explicit(shared_ptr<T>* p, shared_ptr<T>* v,\n                                          shared_ptr<T> w, memory_order success,\n                                          memory_order failure);\ntemplate<class T>\n    bool\n    atomic_compare_exchange_strong_explicit(shared_ptr<T>* p, shared_ptr<T>* v,\n                                            shared_ptr<T> w, memory_order success,\n                                            memory_order failure);\n// Hash support\ntemplate <class T> struct hash;\ntemplate <class T, class D> struct hash<unique_ptr<T, D> >;\ntemplate <class T> struct hash<shared_ptr<T> >;\n\n// Pointer safety\nenum class pointer_safety { relaxed, preferred, strict };\nvoid declare_reachable(void *p);\ntemplate <class T> T *undeclare_reachable(T *p);\nvoid declare_no_pointers(char *p, size_t n);\nvoid undeclare_no_pointers(char *p, size_t n);\npointer_safety get_pointer_safety() noexcept;\n\nvoid* align(size_t alignment, size_t size, void*& ptr, size_t& space);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <type_traits>\n#include <typeinfo>\n#include <cstddef>\n#include <cstdint>\n#include <new>\n#include <utility>\n#include <limits>\n#include <iterator>\n#include <__functional_base>\n#include <iosfwd>\n#include <tuple>\n#include <stdexcept>\n#include <cstring>\n#include <cassert>\n#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)\n#  include <atomic>\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _ValueType>\ninline _LIBCPP_ALWAYS_INLINE\n_ValueType __libcpp_relaxed_load(_ValueType const* __value) {\n#if !defined(_LIBCPP_HAS_NO_THREADS) && \\\n    defined(__ATOMIC_RELAXED) &&        \\\n    (__has_builtin(__atomic_load_n) || _GNUC_VER >= 407)\n    return __atomic_load_n(__value, __ATOMIC_RELAXED);\n#else\n    return *__value;\n#endif\n}\n\ntemplate <class _ValueType>\ninline _LIBCPP_ALWAYS_INLINE\n_ValueType __libcpp_acquire_load(_ValueType const* __value) {\n#if !defined(_LIBCPP_HAS_NO_THREADS) && \\\n    defined(__ATOMIC_ACQUIRE) &&        \\\n    (__has_builtin(__atomic_load_n) || _GNUC_VER >= 407)\n    return __atomic_load_n(__value, __ATOMIC_ACQUIRE);\n#else\n    return *__value;\n#endif\n}\n\n// addressof moved to <type_traits>\n\ntemplate <class _Tp> class allocator;\n\ntemplate <>\nclass _LIBCPP_TEMPLATE_VIS allocator<void>\n{\npublic:\n    typedef void*             pointer;\n    typedef const void*       const_pointer;\n    typedef void              value_type;\n\n    template <class _Up> struct rebind {typedef allocator<_Up> other;};\n};\n\ntemplate <>\nclass _LIBCPP_TEMPLATE_VIS allocator<const void>\n{\npublic:\n    typedef const void*       pointer;\n    typedef const void*       const_pointer;\n    typedef const void        value_type;\n\n    template <class _Up> struct rebind {typedef allocator<_Up> other;};\n};\n\n// pointer_traits\n\ntemplate <class _Tp, class = void>\nstruct __has_element_type : false_type {};\n\ntemplate <class _Tp>\nstruct __has_element_type<_Tp, \n              typename __void_t<typename _Tp::element_type>::type> : true_type {};\n\ntemplate <class _Ptr, bool = __has_element_type<_Ptr>::value>\nstruct __pointer_traits_element_type;\n\ntemplate <class _Ptr>\nstruct __pointer_traits_element_type<_Ptr, true>\n{\n    typedef typename _Ptr::element_type type;\n};\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <template <class, class...> class _Sp, class _Tp, class ..._Args>\nstruct __pointer_traits_element_type<_Sp<_Tp, _Args...>, true>\n{\n    typedef typename _Sp<_Tp, _Args...>::element_type type;\n};\n\ntemplate <template <class, class...> class _Sp, class _Tp, class ..._Args>\nstruct __pointer_traits_element_type<_Sp<_Tp, _Args...>, false>\n{\n    typedef _Tp type;\n};\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <template <class> class _Sp, class _Tp>\nstruct __pointer_traits_element_type<_Sp<_Tp>, true>\n{\n    typedef typename _Sp<_Tp>::element_type type;\n};\n\ntemplate <template <class> class _Sp, class _Tp>\nstruct __pointer_traits_element_type<_Sp<_Tp>, false>\n{\n    typedef _Tp type;\n};\n\ntemplate <template <class, class> class _Sp, class _Tp, class _A0>\nstruct __pointer_traits_element_type<_Sp<_Tp, _A0>, true>\n{\n    typedef typename _Sp<_Tp, _A0>::element_type type;\n};\n\ntemplate <template <class, class> class _Sp, class _Tp, class _A0>\nstruct __pointer_traits_element_type<_Sp<_Tp, _A0>, false>\n{\n    typedef _Tp type;\n};\n\ntemplate <template <class, class, class> class _Sp, class _Tp, class _A0, class _A1>\nstruct __pointer_traits_element_type<_Sp<_Tp, _A0, _A1>, true>\n{\n    typedef typename _Sp<_Tp, _A0, _A1>::element_type type;\n};\n\ntemplate <template <class, class, class> class _Sp, class _Tp, class _A0, class _A1>\nstruct __pointer_traits_element_type<_Sp<_Tp, _A0, _A1>, false>\n{\n    typedef _Tp type;\n};\n\ntemplate <template <class, class, class, class> class _Sp, class _Tp, class _A0,\n                                                           class _A1, class _A2>\nstruct __pointer_traits_element_type<_Sp<_Tp, _A0, _A1, _A2>, true>\n{\n    typedef typename _Sp<_Tp, _A0, _A1, _A2>::element_type type;\n};\n\ntemplate <template <class, class, class, class> class _Sp, class _Tp, class _A0,\n                                                           class _A1, class _A2>\nstruct __pointer_traits_element_type<_Sp<_Tp, _A0, _A1, _A2>, false>\n{\n    typedef _Tp type;\n};\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Tp, class = void>\nstruct __has_difference_type : false_type {};\n\ntemplate <class _Tp>\nstruct __has_difference_type<_Tp, \n            typename __void_t<typename _Tp::difference_type>::type> : true_type {};\n\ntemplate <class _Ptr, bool = __has_difference_type<_Ptr>::value>\nstruct __pointer_traits_difference_type\n{\n    typedef ptrdiff_t type;\n};\n\ntemplate <class _Ptr>\nstruct __pointer_traits_difference_type<_Ptr, true>\n{\n    typedef typename _Ptr::difference_type type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __has_rebind\n{\nprivate:\n    struct __two {char __lx; char __lxx;};\n    template <class _Xp> static __two __test(...);\n    template <class _Xp> static char __test(typename _Xp::template rebind<_Up>* = 0);\npublic:\n    static const bool value = sizeof(__test<_Tp>(0)) == 1;\n};\n\ntemplate <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value>\nstruct __pointer_traits_rebind\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename _Tp::template rebind<_Up> type;\n#else\n    typedef typename _Tp::template rebind<_Up>::other type;\n#endif\n};\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, true>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename _Sp<_Tp, _Args...>::template rebind<_Up> type;\n#else\n    typedef typename _Sp<_Tp, _Args...>::template rebind<_Up>::other type;\n#endif\n};\n\ntemplate <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp, _Args...>, _Up, false>\n{\n    typedef _Sp<_Up, _Args...> type;\n};\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <template <class> class _Sp, class _Tp, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp>, _Up, true>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename _Sp<_Tp>::template rebind<_Up> type;\n#else\n    typedef typename _Sp<_Tp>::template rebind<_Up>::other type;\n#endif\n};\n\ntemplate <template <class> class _Sp, class _Tp, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp>, _Up, false>\n{\n    typedef _Sp<_Up> type;\n};\n\ntemplate <template <class, class> class _Sp, class _Tp, class _A0, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp, _A0>, _Up, true>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename _Sp<_Tp, _A0>::template rebind<_Up> type;\n#else\n    typedef typename _Sp<_Tp, _A0>::template rebind<_Up>::other type;\n#endif\n};\n\ntemplate <template <class, class> class _Sp, class _Tp, class _A0, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp, _A0>, _Up, false>\n{\n    typedef _Sp<_Up, _A0> type;\n};\n\ntemplate <template <class, class, class> class _Sp, class _Tp, class _A0,\n                                         class _A1, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp, _A0, _A1>, _Up, true>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename _Sp<_Tp, _A0, _A1>::template rebind<_Up> type;\n#else\n    typedef typename _Sp<_Tp, _A0, _A1>::template rebind<_Up>::other type;\n#endif\n};\n\ntemplate <template <class, class, class> class _Sp, class _Tp, class _A0,\n                                         class _A1, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp, _A0, _A1>, _Up, false>\n{\n    typedef _Sp<_Up, _A0, _A1> type;\n};\n\ntemplate <template <class, class, class, class> class _Sp, class _Tp, class _A0,\n                                                class _A1, class _A2, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp, _A0, _A1, _A2>, _Up, true>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename _Sp<_Tp, _A0, _A1, _A2>::template rebind<_Up> type;\n#else\n    typedef typename _Sp<_Tp, _A0, _A1, _A2>::template rebind<_Up>::other type;\n#endif\n};\n\ntemplate <template <class, class, class, class> class _Sp, class _Tp, class _A0,\n                                                class _A1, class _A2, class _Up>\nstruct __pointer_traits_rebind<_Sp<_Tp, _A0, _A1, _A2>, _Up, false>\n{\n    typedef _Sp<_Up, _A0, _A1, _A2> type;\n};\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Ptr>\nstruct _LIBCPP_TEMPLATE_VIS pointer_traits\n{\n    typedef _Ptr                                                     pointer;\n    typedef typename __pointer_traits_element_type<pointer>::type    element_type;\n    typedef typename __pointer_traits_difference_type<pointer>::type difference_type;\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Up> using rebind = typename __pointer_traits_rebind<pointer, _Up>::type;\n#else\n    template <class _Up> struct rebind\n        {typedef typename __pointer_traits_rebind<pointer, _Up>::type other;};\n#endif  // _LIBCPP_CXX03_LANG\n\nprivate:\n    struct __nat {};\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    static pointer pointer_to(typename conditional<is_void<element_type>::value,\n                                           __nat, element_type>::type& __r)\n        {return pointer::pointer_to(__r);}\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS pointer_traits<_Tp*>\n{\n    typedef _Tp*      pointer;\n    typedef _Tp       element_type;\n    typedef ptrdiff_t difference_type;\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Up> using rebind = _Up*;\n#else\n    template <class _Up> struct rebind {typedef _Up* other;};\n#endif\n\nprivate:\n    struct __nat {};\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    static pointer pointer_to(typename conditional<is_void<element_type>::value,\n                                      __nat, element_type>::type& __r) _NOEXCEPT\n        {return _VSTD::addressof(__r);}\n};\n\ntemplate <class _From, class _To>\nstruct __rebind_pointer {\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename pointer_traits<_From>::template rebind<_To>        type;\n#else\n    typedef typename pointer_traits<_From>::template rebind<_To>::other type;\n#endif\n};\n\n// allocator_traits\n\ntemplate <class _Tp, class = void>\nstruct __has_pointer_type : false_type {};\n\ntemplate <class _Tp>\nstruct __has_pointer_type<_Tp, \n          typename __void_t<typename _Tp::pointer>::type> : true_type {};\n\nnamespace __pointer_type_imp\n{\n\ntemplate <class _Tp, class _Dp, bool = __has_pointer_type<_Dp>::value>\nstruct __pointer_type\n{\n    typedef typename _Dp::pointer type;\n};\n\ntemplate <class _Tp, class _Dp>\nstruct __pointer_type<_Tp, _Dp, false>\n{\n    typedef _Tp* type;\n};\n\n}  // __pointer_type_imp\n\ntemplate <class _Tp, class _Dp>\nstruct __pointer_type\n{\n    typedef typename __pointer_type_imp::__pointer_type<_Tp, typename remove_reference<_Dp>::type>::type type;\n};\n\ntemplate <class _Tp, class = void>\nstruct __has_const_pointer : false_type {};\n\ntemplate <class _Tp>\nstruct __has_const_pointer<_Tp, \n            typename __void_t<typename _Tp::const_pointer>::type> : true_type {};\n\ntemplate <class _Tp, class _Ptr, class _Alloc, bool = __has_const_pointer<_Alloc>::value>\nstruct __const_pointer\n{\n    typedef typename _Alloc::const_pointer type;\n};\n\ntemplate <class _Tp, class _Ptr, class _Alloc>\nstruct __const_pointer<_Tp, _Ptr, _Alloc, false>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename pointer_traits<_Ptr>::template rebind<const _Tp> type;\n#else\n    typedef typename pointer_traits<_Ptr>::template rebind<const _Tp>::other type;\n#endif\n};\n\ntemplate <class _Tp, class = void>\nstruct __has_void_pointer : false_type {};\n\ntemplate <class _Tp>\nstruct __has_void_pointer<_Tp, \n               typename __void_t<typename _Tp::void_pointer>::type> : true_type {};\n\ntemplate <class _Ptr, class _Alloc, bool = __has_void_pointer<_Alloc>::value>\nstruct __void_pointer\n{\n    typedef typename _Alloc::void_pointer type;\n};\n\ntemplate <class _Ptr, class _Alloc>\nstruct __void_pointer<_Ptr, _Alloc, false>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename pointer_traits<_Ptr>::template rebind<void> type;\n#else\n    typedef typename pointer_traits<_Ptr>::template rebind<void>::other type;\n#endif\n};\n\ntemplate <class _Tp, class = void>\nstruct __has_const_void_pointer : false_type {};\n\ntemplate <class _Tp>\nstruct __has_const_void_pointer<_Tp, \n            typename __void_t<typename _Tp::const_void_pointer>::type> : true_type {};\n\ntemplate <class _Ptr, class _Alloc, bool = __has_const_void_pointer<_Alloc>::value>\nstruct __const_void_pointer\n{\n    typedef typename _Alloc::const_void_pointer type;\n};\n\ntemplate <class _Ptr, class _Alloc>\nstruct __const_void_pointer<_Ptr, _Alloc, false>\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename pointer_traits<_Ptr>::template rebind<const void> type;\n#else\n    typedef typename pointer_traits<_Ptr>::template rebind<const void>::other type;\n#endif\n};\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\n__to_raw_pointer(_Tp* __p) _NOEXCEPT\n{\n    return __p;\n}\n\ntemplate <class _Pointer>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename pointer_traits<_Pointer>::element_type*\n__to_raw_pointer(_Pointer __p) _NOEXCEPT\n{\n    return _VSTD::__to_raw_pointer(__p.operator->());\n}\n\ntemplate <class _Tp, class = void>\nstruct __has_size_type : false_type {};\n\ntemplate <class _Tp>\nstruct __has_size_type<_Tp,\n               typename __void_t<typename _Tp::size_type>::type> : true_type {};\n\ntemplate <class _Alloc, class _DiffType, bool = __has_size_type<_Alloc>::value>\nstruct __size_type\n{\n    typedef typename make_unsigned<_DiffType>::type type;\n};\n\ntemplate <class _Alloc, class _DiffType>\nstruct __size_type<_Alloc, _DiffType, true>\n{\n    typedef typename _Alloc::size_type type;\n};\n\ntemplate <class _Tp, class = void>\nstruct __has_propagate_on_container_copy_assignment : false_type {};\n\ntemplate <class _Tp>\nstruct __has_propagate_on_container_copy_assignment<_Tp,\n    typename __void_t<typename _Tp::propagate_on_container_copy_assignment>::type>\n        : true_type {};\n\ntemplate <class _Alloc, bool = __has_propagate_on_container_copy_assignment<_Alloc>::value>\nstruct __propagate_on_container_copy_assignment\n{\n    typedef false_type type;\n};\n\ntemplate <class _Alloc>\nstruct __propagate_on_container_copy_assignment<_Alloc, true>\n{\n    typedef typename _Alloc::propagate_on_container_copy_assignment type;\n};\n\ntemplate <class _Tp, class = void>\nstruct __has_propagate_on_container_move_assignment : false_type {};\n\ntemplate <class _Tp>\nstruct __has_propagate_on_container_move_assignment<_Tp, \n           typename __void_t<typename _Tp::propagate_on_container_move_assignment>::type>\n               : true_type {};\n\ntemplate <class _Alloc, bool = __has_propagate_on_container_move_assignment<_Alloc>::value>\nstruct __propagate_on_container_move_assignment\n{\n    typedef false_type type;\n};\n\ntemplate <class _Alloc>\nstruct __propagate_on_container_move_assignment<_Alloc, true>\n{\n    typedef typename _Alloc::propagate_on_container_move_assignment type;\n};\n\ntemplate <class _Tp, class = void>\nstruct __has_propagate_on_container_swap : false_type {};\n\ntemplate <class _Tp>\nstruct __has_propagate_on_container_swap<_Tp, \n           typename __void_t<typename _Tp::propagate_on_container_swap>::type>\n               : true_type {};\n\ntemplate <class _Alloc, bool = __has_propagate_on_container_swap<_Alloc>::value>\nstruct __propagate_on_container_swap\n{\n    typedef false_type type;\n};\n\ntemplate <class _Alloc>\nstruct __propagate_on_container_swap<_Alloc, true>\n{\n    typedef typename _Alloc::propagate_on_container_swap type;\n};\n\ntemplate <class _Tp, class = void>\nstruct __has_is_always_equal : false_type {};\n\ntemplate <class _Tp>\nstruct __has_is_always_equal<_Tp, \n           typename __void_t<typename _Tp::is_always_equal>::type>\n               : true_type {};\n\ntemplate <class _Alloc, bool = __has_is_always_equal<_Alloc>::value>\nstruct __is_always_equal\n{\n    typedef typename _VSTD::is_empty<_Alloc>::type type;\n};\n\ntemplate <class _Alloc>\nstruct __is_always_equal<_Alloc, true>\n{\n    typedef typename _Alloc::is_always_equal type;\n};\n\ntemplate <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value>\nstruct __has_rebind_other\n{\nprivate:\n    struct __two {char __lx; char __lxx;};\n    template <class _Xp> static __two __test(...);\n    template <class _Xp> static char __test(typename _Xp::template rebind<_Up>::other* = 0);\npublic:\n    static const bool value = sizeof(__test<_Tp>(0)) == 1;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __has_rebind_other<_Tp, _Up, false>\n{\n    static const bool value = false;\n};\n\ntemplate <class _Tp, class _Up, bool = __has_rebind_other<_Tp, _Up>::value>\nstruct __allocator_traits_rebind\n{\n    typedef typename _Tp::template rebind<_Up>::other type;\n};\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp, _Args...>, _Up, true>\n{\n    typedef typename _Alloc<_Tp, _Args...>::template rebind<_Up>::other type;\n};\n\ntemplate <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp, _Args...>, _Up, false>\n{\n    typedef _Alloc<_Up, _Args...> type;\n};\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <template <class> class _Alloc, class _Tp, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp>, _Up, true>\n{\n    typedef typename _Alloc<_Tp>::template rebind<_Up>::other type;\n};\n\ntemplate <template <class> class _Alloc, class _Tp, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp>, _Up, false>\n{\n    typedef _Alloc<_Up> type;\n};\n\ntemplate <template <class, class> class _Alloc, class _Tp, class _A0, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp, _A0>, _Up, true>\n{\n    typedef typename _Alloc<_Tp, _A0>::template rebind<_Up>::other type;\n};\n\ntemplate <template <class, class> class _Alloc, class _Tp, class _A0, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp, _A0>, _Up, false>\n{\n    typedef _Alloc<_Up, _A0> type;\n};\n\ntemplate <template <class, class, class> class _Alloc, class _Tp, class _A0,\n                                         class _A1, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp, _A0, _A1>, _Up, true>\n{\n    typedef typename _Alloc<_Tp, _A0, _A1>::template rebind<_Up>::other type;\n};\n\ntemplate <template <class, class, class> class _Alloc, class _Tp, class _A0,\n                                         class _A1, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp, _A0, _A1>, _Up, false>\n{\n    typedef _Alloc<_Up, _A0, _A1> type;\n};\n\ntemplate <template <class, class, class, class> class _Alloc, class _Tp, class _A0,\n                                                class _A1, class _A2, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp, _A0, _A1, _A2>, _Up, true>\n{\n    typedef typename _Alloc<_Tp, _A0, _A1, _A2>::template rebind<_Up>::other type;\n};\n\ntemplate <template <class, class, class, class> class _Alloc, class _Tp, class _A0,\n                                                class _A1, class _A2, class _Up>\nstruct __allocator_traits_rebind<_Alloc<_Tp, _A0, _A1, _A2>, _Up, false>\n{\n    typedef _Alloc<_Up, _A0, _A1, _A2> type;\n};\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Alloc, class _SizeType, class _ConstVoidPtr>\nauto\n__has_allocate_hint_test(_Alloc&& __a, _SizeType&& __sz, _ConstVoidPtr&& __p)\n    -> decltype(__a.allocate(__sz, __p), true_type());\n\ntemplate <class _Alloc, class _SizeType, class _ConstVoidPtr>\nauto\n__has_allocate_hint_test(const _Alloc& __a, _SizeType&& __sz, _ConstVoidPtr&& __p)\n    -> false_type;\n\ntemplate <class _Alloc, class _SizeType, class _ConstVoidPtr>\nstruct __has_allocate_hint\n    : integral_constant<bool,\n        is_same<\n            decltype(__has_allocate_hint_test(declval<_Alloc>(),\n                                          declval<_SizeType>(),\n                                          declval<_ConstVoidPtr>())),\n            true_type>::value>\n{\n};\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Alloc, class _SizeType, class _ConstVoidPtr>\nstruct __has_allocate_hint\n    : true_type\n{\n};\n\n#endif  // _LIBCPP_CXX03_LANG\n\n#if !defined(_LIBCPP_CXX03_LANG)\n\ntemplate <class _Alloc, class _Tp, class ..._Args>\ndecltype(_VSTD::declval<_Alloc>().construct(_VSTD::declval<_Tp*>(),\n                                           _VSTD::declval<_Args>()...),\n                                           true_type())\n__has_construct_test(_Alloc&& __a, _Tp* __p, _Args&& ...__args);\n\ntemplate <class _Alloc, class _Pointer, class ..._Args>\nfalse_type\n__has_construct_test(const _Alloc& __a, _Pointer&& __p, _Args&& ...__args);\n\ntemplate <class _Alloc, class _Pointer, class ..._Args>\nstruct __has_construct\n    : integral_constant<bool,\n        is_same<\n            decltype(__has_construct_test(declval<_Alloc>(),\n                                          declval<_Pointer>(),\n                                          declval<_Args>()...)),\n            true_type>::value>\n{\n};\n\ntemplate <class _Alloc, class _Pointer>\nauto\n__has_destroy_test(_Alloc&& __a, _Pointer&& __p)\n    -> decltype(__a.destroy(__p), true_type());\n\ntemplate <class _Alloc, class _Pointer>\nauto\n__has_destroy_test(const _Alloc& __a, _Pointer&& __p)\n    -> false_type;\n\ntemplate <class _Alloc, class _Pointer>\nstruct __has_destroy\n    : integral_constant<bool,\n        is_same<\n            decltype(__has_destroy_test(declval<_Alloc>(),\n                                        declval<_Pointer>())),\n            true_type>::value>\n{\n};\n\ntemplate <class _Alloc>\nauto\n__has_max_size_test(_Alloc&& __a)\n    -> decltype(__a.max_size(), true_type());\n\ntemplate <class _Alloc>\nauto\n__has_max_size_test(const volatile _Alloc& __a)\n    -> false_type;\n\ntemplate <class _Alloc>\nstruct __has_max_size\n    : integral_constant<bool,\n        is_same<\n            decltype(__has_max_size_test(declval<_Alloc&>())),\n            true_type>::value>\n{\n};\n\ntemplate <class _Alloc>\nauto\n__has_select_on_container_copy_construction_test(_Alloc&& __a)\n    -> decltype(__a.select_on_container_copy_construction(), true_type());\n\ntemplate <class _Alloc>\nauto\n__has_select_on_container_copy_construction_test(const volatile _Alloc& __a)\n    -> false_type;\n\ntemplate <class _Alloc>\nstruct __has_select_on_container_copy_construction\n    : integral_constant<bool,\n        is_same<\n            decltype(__has_select_on_container_copy_construction_test(declval<_Alloc&>())),\n            true_type>::value>\n{\n};\n\n#else  // _LIBCPP_CXX03_LANG\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Alloc, class _Pointer, class ..._Args>\nstruct __has_construct\n    : false_type\n{\n};\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Alloc, class _Pointer, class _Args>\nstruct __has_construct\n    : false_type\n{\n};\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Alloc, class _Pointer>\nstruct __has_destroy\n    : false_type\n{\n};\n\ntemplate <class _Alloc>\nstruct __has_max_size\n    : true_type\n{\n};\n\ntemplate <class _Alloc>\nstruct __has_select_on_container_copy_construction\n    : false_type\n{\n};\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Alloc, class _Ptr, bool = __has_difference_type<_Alloc>::value>\nstruct __alloc_traits_difference_type\n{\n    typedef typename pointer_traits<_Ptr>::difference_type type;\n};\n\ntemplate <class _Alloc, class _Ptr>\nstruct __alloc_traits_difference_type<_Alloc, _Ptr, true>\n{\n    typedef typename _Alloc::difference_type type;\n};\n\ntemplate <class _Alloc>\nstruct _LIBCPP_TEMPLATE_VIS allocator_traits\n{\n    typedef _Alloc                              allocator_type;\n    typedef typename allocator_type::value_type value_type;\n\n    typedef typename __pointer_type<value_type, allocator_type>::type pointer;\n    typedef typename __const_pointer<value_type, pointer, allocator_type>::type const_pointer;\n    typedef typename __void_pointer<pointer, allocator_type>::type void_pointer;\n    typedef typename __const_void_pointer<pointer, allocator_type>::type const_void_pointer;\n\n    typedef typename __alloc_traits_difference_type<allocator_type, pointer>::type difference_type;\n    typedef typename __size_type<allocator_type, difference_type>::type size_type;\n\n    typedef typename __propagate_on_container_copy_assignment<allocator_type>::type\n                     propagate_on_container_copy_assignment;\n    typedef typename __propagate_on_container_move_assignment<allocator_type>::type\n                     propagate_on_container_move_assignment;\n    typedef typename __propagate_on_container_swap<allocator_type>::type\n                     propagate_on_container_swap;\n    typedef typename __is_always_equal<allocator_type>::type\n                     is_always_equal;\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Tp> using rebind_alloc =\n                  typename __allocator_traits_rebind<allocator_type, _Tp>::type;\n    template <class _Tp> using rebind_traits = allocator_traits<rebind_alloc<_Tp>>;\n#else  // _LIBCPP_CXX03_LANG\n    template <class _Tp> struct rebind_alloc\n        {typedef typename __allocator_traits_rebind<allocator_type, _Tp>::type other;};\n    template <class _Tp> struct rebind_traits\n        {typedef allocator_traits<typename rebind_alloc<_Tp>::other> other;};\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    static pointer allocate(allocator_type& __a, size_type __n)\n        {return __a.allocate(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    static pointer allocate(allocator_type& __a, size_type __n, const_void_pointer __hint)\n        {return __allocate(__a, __n, __hint,\n            __has_allocate_hint<allocator_type, size_type, const_void_pointer>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    static void deallocate(allocator_type& __a, pointer __p, size_type __n) _NOEXCEPT\n        {__a.deallocate(__p, __n);}\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n    template <class _Tp, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        static void construct(allocator_type& __a, _Tp* __p, _Args&&... __args)\n            {__construct(__has_construct<allocator_type, _Tp*, _Args...>(),\n                         __a, __p, _VSTD::forward<_Args>(__args)...);}\n#else  // _LIBCPP_HAS_NO_VARIADICS\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        static void construct(allocator_type&, _Tp* __p)\n            {\n                ::new ((void*)__p) _Tp();\n            }\n    template <class _Tp, class _A0>\n        _LIBCPP_INLINE_VISIBILITY\n        static void construct(allocator_type&, _Tp* __p, const _A0& __a0)\n            {\n                ::new ((void*)__p) _Tp(__a0);\n            }\n    template <class _Tp, class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        static void construct(allocator_type&, _Tp* __p, const _A0& __a0,\n                              const _A1& __a1)\n            {\n                ::new ((void*)__p) _Tp(__a0, __a1);\n            }\n    template <class _Tp, class _A0, class _A1, class _A2>\n        _LIBCPP_INLINE_VISIBILITY\n        static void construct(allocator_type&, _Tp* __p, const _A0& __a0,\n                              const _A1& __a1, const _A2& __a2)\n            {\n                ::new ((void*)__p) _Tp(__a0, __a1, __a2);\n            }\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        static void destroy(allocator_type& __a, _Tp* __p)\n            {__destroy(__has_destroy<allocator_type, _Tp*>(), __a, __p);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    static size_type max_size(const allocator_type& __a) _NOEXCEPT\n        {return __max_size(__has_max_size<const allocator_type>(), __a);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    static allocator_type\n        select_on_container_copy_construction(const allocator_type& __a)\n            {return __select_on_container_copy_construction(\n                __has_select_on_container_copy_construction<const allocator_type>(),\n                __a);}\n\n    template <class _Ptr>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        void\n        __construct_forward(allocator_type& __a, _Ptr __begin1, _Ptr __end1, _Ptr& __begin2)\n        {\n            for (; __begin1 != __end1; ++__begin1, ++__begin2)\n                construct(__a, _VSTD::__to_raw_pointer(__begin2), _VSTD::move_if_noexcept(*__begin1));\n        }\n\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            (is_same<allocator_type, allocator<_Tp> >::value\n                || !__has_construct<allocator_type, _Tp*, _Tp>::value) &&\n             is_trivially_move_constructible<_Tp>::value,\n            void\n        >::type\n        __construct_forward(allocator_type&, _Tp* __begin1, _Tp* __end1, _Tp*& __begin2)\n        {\n            ptrdiff_t _Np = __end1 - __begin1;\n            if (_Np > 0)\n            {\n                _VSTD::memcpy(__begin2, __begin1, _Np * sizeof(_Tp));\n                __begin2 += _Np;\n            }\n        }\n\n    template <class _Iter, class _Ptr>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        void\n        __construct_range_forward(allocator_type& __a, _Iter __begin1, _Iter __end1, _Ptr& __begin2)\n        {\n            for (; __begin1 != __end1; ++__begin1, (void) ++__begin2)\n                construct(__a, _VSTD::__to_raw_pointer(__begin2), *__begin1);\n        }\n\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            (is_same<allocator_type, allocator<_Tp> >::value\n                || !__has_construct<allocator_type, _Tp*, _Tp>::value) &&\n             is_trivially_move_constructible<_Tp>::value,\n            void\n        >::type\n        __construct_range_forward(allocator_type&, _Tp* __begin1, _Tp* __end1, _Tp*& __begin2)\n        {\n            typedef typename remove_const<_Tp>::type _Vp;\n            ptrdiff_t _Np = __end1 - __begin1;\n            if (_Np > 0)\n            {\n                _VSTD::memcpy(const_cast<_Vp*>(__begin2), __begin1, _Np * sizeof(_Tp));\n                __begin2 += _Np;\n            }\n        }\n\n    template <class _Ptr>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        void\n        __construct_backward(allocator_type& __a, _Ptr __begin1, _Ptr __end1, _Ptr& __end2)\n        {\n            while (__end1 != __begin1)\n            {\n                construct(__a, _VSTD::__to_raw_pointer(__end2-1), _VSTD::move_if_noexcept(*--__end1));\n                --__end2;\n            }\n        }\n\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            (is_same<allocator_type, allocator<_Tp> >::value\n                || !__has_construct<allocator_type, _Tp*, _Tp>::value) &&\n             is_trivially_move_constructible<_Tp>::value,\n            void\n        >::type\n        __construct_backward(allocator_type&, _Tp* __begin1, _Tp* __end1, _Tp*& __end2)\n        {\n            ptrdiff_t _Np = __end1 - __begin1;\n            __end2 -= _Np;\n            if (_Np > 0)\n                _VSTD::memcpy(__end2, __begin1, _Np * sizeof(_Tp));\n        }\n\nprivate:\n\n    _LIBCPP_INLINE_VISIBILITY\n    static pointer __allocate(allocator_type& __a, size_type __n,\n        const_void_pointer __hint, true_type)\n        {return __a.allocate(__n, __hint);}\n    _LIBCPP_INLINE_VISIBILITY\n    static pointer __allocate(allocator_type& __a, size_type __n,\n        const_void_pointer, false_type)\n        {return __a.allocate(__n);}\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n    template <class _Tp, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        static void __construct(true_type, allocator_type& __a, _Tp* __p, _Args&&... __args)\n            {__a.construct(__p, _VSTD::forward<_Args>(__args)...);}\n    template <class _Tp, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        static void __construct(false_type, allocator_type&, _Tp* __p, _Args&&... __args)\n            {\n                ::new ((void*)__p) _Tp(_VSTD::forward<_Args>(__args)...);\n            }\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        static void __destroy(true_type, allocator_type& __a, _Tp* __p)\n            {__a.destroy(__p);}\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        static void __destroy(false_type, allocator_type&, _Tp* __p)\n            {\n                __p->~_Tp();\n            }\n\n    _LIBCPP_INLINE_VISIBILITY\n    static size_type __max_size(true_type, const allocator_type& __a)\n            {return __a.max_size();}\n    _LIBCPP_INLINE_VISIBILITY\n    static size_type __max_size(false_type, const allocator_type&)\n            {return numeric_limits<size_type>::max() / sizeof(value_type);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    static allocator_type\n        __select_on_container_copy_construction(true_type, const allocator_type& __a)\n            {return __a.select_on_container_copy_construction();}\n    _LIBCPP_INLINE_VISIBILITY\n    static allocator_type\n        __select_on_container_copy_construction(false_type, const allocator_type& __a)\n            {return __a;}\n};\n\ntemplate <class _Traits, class _Tp>\nstruct __rebind_alloc_helper\n{\n#ifndef _LIBCPP_CXX03_LANG\n    typedef typename _Traits::template rebind_alloc<_Tp>        type;\n#else\n    typedef typename _Traits::template rebind_alloc<_Tp>::other type;\n#endif\n};\n\n// allocator\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS allocator\n{\npublic:\n    typedef size_t            size_type;\n    typedef ptrdiff_t         difference_type;\n    typedef _Tp*              pointer;\n    typedef const _Tp*        const_pointer;\n    typedef _Tp&              reference;\n    typedef const _Tp&        const_reference;\n    typedef _Tp               value_type;\n\n    typedef true_type propagate_on_container_move_assignment;\n    typedef true_type is_always_equal;\n\n    template <class _Up> struct rebind {typedef allocator<_Up> other;};\n\n    _LIBCPP_INLINE_VISIBILITY allocator() _NOEXCEPT {}\n    template <class _Up> _LIBCPP_INLINE_VISIBILITY allocator(const allocator<_Up>&) _NOEXCEPT {}\n    _LIBCPP_INLINE_VISIBILITY pointer address(reference __x) const _NOEXCEPT\n        {return _VSTD::addressof(__x);}\n    _LIBCPP_INLINE_VISIBILITY const_pointer address(const_reference __x) const _NOEXCEPT\n        {return _VSTD::addressof(__x);}\n    _LIBCPP_INLINE_VISIBILITY pointer allocate(size_type __n, allocator<void>::const_pointer = 0)\n        {\n        if (__n > max_size())\n            __throw_length_error(\"allocator<T>::allocate(size_t n)\"\n                                 \" 'n' exceeds maximum supported size\");\n        return static_cast<pointer>(_VSTD::__allocate(__n * sizeof(_Tp)));\n        }\n    _LIBCPP_INLINE_VISIBILITY void deallocate(pointer __p, size_type) _NOEXCEPT\n        {_VSTD::__libcpp_deallocate((void*)__p);}\n    _LIBCPP_INLINE_VISIBILITY size_type max_size() const _NOEXCEPT\n        {return size_type(~0) / sizeof(_Tp);}\n#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\n    template <class _Up, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(_Up* __p, _Args&&... __args)\n        {\n            ::new((void*)__p) _Up(_VSTD::forward<_Args>(__args)...);\n        }\n#else  // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p)\n        {\n            ::new((void*)__p) _Tp();\n        }\n# if defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)\n\n    template <class _A0>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, _A0& __a0)\n        {\n            ::new((void*)__p) _Tp(__a0);\n        }\n    template <class _A0>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, const _A0& __a0)\n        {\n            ::new((void*)__p) _Tp(__a0);\n        }\n# endif  // defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, _A0& __a0, _A1& __a1)\n        {\n            ::new((void*)__p) _Tp(__a0, __a1);\n        }\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, const _A0& __a0, _A1& __a1)\n        {\n            ::new((void*)__p) _Tp(__a0, __a1);\n        }\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, _A0& __a0, const _A1& __a1)\n        {\n            ::new((void*)__p) _Tp(__a0, __a1);\n        }\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, const _A0& __a0, const _A1& __a1)\n        {\n            ::new((void*)__p) _Tp(__a0, __a1);\n        }\n#endif  // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\n    _LIBCPP_INLINE_VISIBILITY void destroy(pointer __p) {__p->~_Tp();}\n};\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS allocator<const _Tp>\n{\npublic:\n    typedef size_t            size_type;\n    typedef ptrdiff_t         difference_type;\n    typedef const _Tp*        pointer;\n    typedef const _Tp*        const_pointer;\n    typedef const _Tp&        reference;\n    typedef const _Tp&        const_reference;\n    typedef const _Tp         value_type;\n\n    typedef true_type propagate_on_container_move_assignment;\n    typedef true_type is_always_equal;\n\n    template <class _Up> struct rebind {typedef allocator<_Up> other;};\n\n    _LIBCPP_INLINE_VISIBILITY allocator() _NOEXCEPT {}\n    template <class _Up> _LIBCPP_INLINE_VISIBILITY allocator(const allocator<_Up>&) _NOEXCEPT {}\n    _LIBCPP_INLINE_VISIBILITY const_pointer address(const_reference __x) const _NOEXCEPT\n        {return _VSTD::addressof(__x);}\n    _LIBCPP_INLINE_VISIBILITY pointer allocate(size_type __n, allocator<void>::const_pointer = 0)\n    {\n        if (__n > max_size())\n            __throw_length_error(\"allocator<const T>::allocate(size_t n)\"\n                                 \" 'n' exceeds maximum supported size\");\n        return static_cast<pointer>(_VSTD::__allocate(__n * sizeof(_Tp)));\n    }\n    _LIBCPP_INLINE_VISIBILITY void deallocate(pointer __p, size_type) _NOEXCEPT\n        {_VSTD::__libcpp_deallocate((void*) const_cast<_Tp *>(__p));}\n    _LIBCPP_INLINE_VISIBILITY size_type max_size() const _NOEXCEPT\n        {return size_type(~0) / sizeof(_Tp);}\n#if !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\n    template <class _Up, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(_Up* __p, _Args&&... __args)\n        {\n            ::new((void*)__p) _Up(_VSTD::forward<_Args>(__args)...);\n        }\n#else  // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p)\n        {\n            ::new((void*) const_cast<_Tp *>(__p)) _Tp();\n        }\n# if defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)\n\n    template <class _A0>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, _A0& __a0)\n        {\n            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0);\n        }\n    template <class _A0>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, const _A0& __a0)\n        {\n            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0);\n        }\n# endif  // defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, _A0& __a0, _A1& __a1)\n        {\n            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0, __a1);\n        }\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, const _A0& __a0, _A1& __a1)\n        {\n            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0, __a1);\n        }\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, _A0& __a0, const _A1& __a1)\n        {\n            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0, __a1);\n        }\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        void\n        construct(pointer __p, const _A0& __a0, const _A1& __a1)\n        {\n            ::new((void*) const_cast<_Tp *>(__p)) _Tp(__a0, __a1);\n        }\n#endif  // !defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\n    _LIBCPP_INLINE_VISIBILITY void destroy(pointer __p) {__p->~_Tp();}\n};\n\ntemplate <class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator==(const allocator<_Tp>&, const allocator<_Up>&) _NOEXCEPT {return true;}\n\ntemplate <class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator!=(const allocator<_Tp>&, const allocator<_Up>&) _NOEXCEPT {return false;}\n\ntemplate <class _OutputIterator, class _Tp>\nclass _LIBCPP_TEMPLATE_VIS raw_storage_iterator\n    : public iterator<output_iterator_tag,\n                      _Tp,                                         // purposefully not C++03\n                      ptrdiff_t,                                   // purposefully not C++03\n                      _Tp*,                                        // purposefully not C++03\n                      raw_storage_iterator<_OutputIterator, _Tp>&> // purposefully not C++03\n{\nprivate:\n    _OutputIterator __x_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit raw_storage_iterator(_OutputIterator __x) : __x_(__x) {}\n    _LIBCPP_INLINE_VISIBILITY raw_storage_iterator& operator*() {return *this;}\n    _LIBCPP_INLINE_VISIBILITY raw_storage_iterator& operator=(const _Tp& __element)\n        {::new(&*__x_) _Tp(__element); return *this;}\n#if _LIBCPP_STD_VER >= 14\n    _LIBCPP_INLINE_VISIBILITY raw_storage_iterator& operator=(_Tp&& __element)\n        {::new(&*__x_) _Tp(_VSTD::move(__element)); return *this;}\n#endif\n    _LIBCPP_INLINE_VISIBILITY raw_storage_iterator& operator++() {++__x_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY raw_storage_iterator  operator++(int)\n        {raw_storage_iterator __t(*this); ++__x_; return __t;}\n#if _LIBCPP_STD_VER >= 14\n    _LIBCPP_INLINE_VISIBILITY _OutputIterator base() const { return __x_; } \n#endif\n};\n\ntemplate <class _Tp>\npair<_Tp*, ptrdiff_t>\nget_temporary_buffer(ptrdiff_t __n) _NOEXCEPT\n{\n    pair<_Tp*, ptrdiff_t> __r(0, 0);\n    const ptrdiff_t __m = (~ptrdiff_t(0) ^\n                           ptrdiff_t(ptrdiff_t(1) << (sizeof(ptrdiff_t) * __CHAR_BIT__ - 1)))\n                           / sizeof(_Tp);\n    if (__n > __m)\n        __n = __m;\n    while (__n > 0)\n    {\n        __r.first = static_cast<_Tp*>(::operator new(__n * sizeof(_Tp), nothrow));\n        if (__r.first)\n        {\n            __r.second = __n;\n            break;\n        }\n        __n /= 2;\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid return_temporary_buffer(_Tp* __p) _NOEXCEPT {::operator delete(__p);}\n\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\ntemplate <class _Tp>\nstruct auto_ptr_ref\n{\n    _Tp* __ptr_;\n};\n\ntemplate<class _Tp>\nclass _LIBCPP_TEMPLATE_VIS auto_ptr\n{\nprivate:\n    _Tp* __ptr_;\npublic:\n    typedef _Tp element_type;\n\n    _LIBCPP_INLINE_VISIBILITY explicit auto_ptr(_Tp* __p = 0) throw() : __ptr_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr& __p) throw() : __ptr_(__p.release()) {}\n    template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>& __p) throw()\n        : __ptr_(__p.release()) {}\n    _LIBCPP_INLINE_VISIBILITY auto_ptr& operator=(auto_ptr& __p) throw()\n        {reset(__p.release()); return *this;}\n    template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr& operator=(auto_ptr<_Up>& __p) throw()\n        {reset(__p.release()); return *this;}\n    _LIBCPP_INLINE_VISIBILITY auto_ptr& operator=(auto_ptr_ref<_Tp> __p) throw()\n        {reset(__p.__ptr_); return *this;}\n    _LIBCPP_INLINE_VISIBILITY ~auto_ptr() throw() {delete __ptr_;}\n\n    _LIBCPP_INLINE_VISIBILITY _Tp& operator*() const throw()\n        {return *__ptr_;}\n    _LIBCPP_INLINE_VISIBILITY _Tp* operator->() const throw() {return __ptr_;}\n    _LIBCPP_INLINE_VISIBILITY _Tp* get() const throw() {return __ptr_;}\n    _LIBCPP_INLINE_VISIBILITY _Tp* release() throw()\n    {\n        _Tp* __t = __ptr_;\n        __ptr_ = 0;\n        return __t;\n    }\n    _LIBCPP_INLINE_VISIBILITY void reset(_Tp* __p = 0) throw()\n    {\n        if (__ptr_ != __p)\n            delete __ptr_;\n        __ptr_ = __p;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr_ref<_Tp> __p) throw() : __ptr_(__p.__ptr_) {}\n    template<class _Up> _LIBCPP_INLINE_VISIBILITY operator auto_ptr_ref<_Up>() throw()\n        {auto_ptr_ref<_Up> __t; __t.__ptr_ = release(); return __t;}\n    template<class _Up> _LIBCPP_INLINE_VISIBILITY operator auto_ptr<_Up>() throw()\n        {return auto_ptr<_Up>(release());}\n};\n\ntemplate <>\nclass _LIBCPP_TEMPLATE_VIS auto_ptr<void>\n{\npublic:\n    typedef void element_type;\n};\n#endif\n\ntemplate <class _Tp, int _Idx,\n          bool _CanBeEmptyBase =\n              is_empty<_Tp>::value && !__libcpp_is_final<_Tp>::value>\nstruct __compressed_pair_elem {\n  typedef _Tp _ParamT;\n  typedef _Tp& reference;\n  typedef const _Tp& const_reference;\n\n#ifndef _LIBCPP_CXX03_LANG\n  _LIBCPP_INLINE_VISIBILITY constexpr __compressed_pair_elem() : __value_() {}\n\n  template <class _Up, class = typename enable_if<\n      !is_same<__compressed_pair_elem, typename decay<_Up>::type>::value\n  >::type>\n  _LIBCPP_INLINE_VISIBILITY\n  constexpr explicit\n  __compressed_pair_elem(_Up&& __u)\n      : __value_(_VSTD::forward<_Up>(__u)){};\n\n  template <class... _Args, size_t... _Indexes>\n  _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n  __compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args,\n                         __tuple_indices<_Indexes...>)\n      : __value_(_VSTD::forward<_Args>(_VSTD::get<_Indexes>(__args))...) {}\n#else\n  _LIBCPP_INLINE_VISIBILITY __compressed_pair_elem() : __value_() {}\n  _LIBCPP_INLINE_VISIBILITY\n  __compressed_pair_elem(_ParamT __p) : __value_(std::forward<_ParamT>(__p)) {}\n#endif\n\n  _LIBCPP_INLINE_VISIBILITY reference __get() _NOEXCEPT { return __value_; }\n  _LIBCPP_INLINE_VISIBILITY\n  const_reference __get() const _NOEXCEPT { return __value_; }\n\nprivate:\n  _Tp __value_;\n};\n\ntemplate <class _Tp, int _Idx>\nstruct __compressed_pair_elem<_Tp, _Idx, true> : private _Tp {\n  typedef _Tp _ParamT;\n  typedef _Tp& reference;\n  typedef const _Tp& const_reference;\n  typedef _Tp __value_type;\n\n#ifndef _LIBCPP_CXX03_LANG\n  _LIBCPP_INLINE_VISIBILITY constexpr __compressed_pair_elem() = default;\n\n  template <class _Up, class = typename enable_if<\n        !is_same<__compressed_pair_elem, typename decay<_Up>::type>::value\n  >::type>\n  _LIBCPP_INLINE_VISIBILITY\n  constexpr explicit\n  __compressed_pair_elem(_Up&& __u)\n      : __value_type(_VSTD::forward<_Up>(__u)){};\n\n  template <class... _Args, size_t... _Indexes>\n  _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n  __compressed_pair_elem(piecewise_construct_t, tuple<_Args...> __args,\n                         __tuple_indices<_Indexes...>)\n      : __value_type(_VSTD::forward<_Args>(_VSTD::get<_Indexes>(__args))...) {}\n#else\n  _LIBCPP_INLINE_VISIBILITY __compressed_pair_elem() : __value_type() {}\n  _LIBCPP_INLINE_VISIBILITY\n  __compressed_pair_elem(_ParamT __p)\n      : __value_type(std::forward<_ParamT>(__p)) {}\n#endif\n\n  _LIBCPP_INLINE_VISIBILITY reference __get() _NOEXCEPT { return *this; }\n  _LIBCPP_INLINE_VISIBILITY\n  const_reference __get() const _NOEXCEPT { return *this; }\n};\n\n// Tag used to construct the second element of the compressed pair.\nstruct __second_tag {};\n\ntemplate <class _T1, class _T2>\nclass __compressed_pair : private __compressed_pair_elem<_T1, 0>,\n                          private __compressed_pair_elem<_T2, 1> {\n  typedef __compressed_pair_elem<_T1, 0> _Base1;\n  typedef __compressed_pair_elem<_T2, 1> _Base2;\n\n  // NOTE: This static assert should never fire because __compressed_pair\n  // is *almost never* used in a scenario where it's possible for T1 == T2.\n  // (The exception is std::function where it is possible that the function\n  //  object and the allocator have the same type).\n  static_assert((!is_same<_T1, _T2>::value),\n    \"__compressed_pair cannot be instantated when T1 and T2 are the same type; \"\n    \"The current implementation is NOT ABI-compatible with the previous \"\n    \"implementation for this configuration\");\n\npublic:\n#ifndef _LIBCPP_CXX03_LANG\n  template <bool _Dummy = true,\n      class = typename enable_if<\n          __dependent_type<is_default_constructible<_T1>, _Dummy>::value &&\n          __dependent_type<is_default_constructible<_T2>, _Dummy>::value\n      >::type\n  >\n  _LIBCPP_INLINE_VISIBILITY\n  constexpr __compressed_pair() {}\n\n  template <class _Tp, typename enable_if<!is_same<typename decay<_Tp>::type,\n                                                   __compressed_pair>::value,\n                                          bool>::type = true>\n  _LIBCPP_INLINE_VISIBILITY constexpr explicit\n  __compressed_pair(_Tp&& __t)\n      : _Base1(std::forward<_Tp>(__t)), _Base2() {}\n\n  template <class _Tp>\n  _LIBCPP_INLINE_VISIBILITY constexpr\n  __compressed_pair(__second_tag, _Tp&& __t)\n      : _Base1(), _Base2(std::forward<_Tp>(__t)) {}\n\n  template <class _U1, class _U2>\n  _LIBCPP_INLINE_VISIBILITY constexpr\n  __compressed_pair(_U1&& __t1, _U2&& __t2)\n      : _Base1(std::forward<_U1>(__t1)), _Base2(std::forward<_U2>(__t2)) {}\n\n  template <class... _Args1, class... _Args2>\n  _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14\n  __compressed_pair(piecewise_construct_t __pc, tuple<_Args1...> __first_args,\n                    tuple<_Args2...> __second_args)\n      : _Base1(__pc, _VSTD::move(__first_args),\n               typename __make_tuple_indices<sizeof...(_Args1)>::type()),\n        _Base2(__pc, _VSTD::move(__second_args),\n               typename __make_tuple_indices<sizeof...(_Args2)>::type()) {}\n\n#else\n  _LIBCPP_INLINE_VISIBILITY\n  __compressed_pair() {}\n\n  _LIBCPP_INLINE_VISIBILITY explicit\n  __compressed_pair(_T1 __t1) : _Base1(_VSTD::forward<_T1>(__t1)) {}\n\n  _LIBCPP_INLINE_VISIBILITY\n  __compressed_pair(__second_tag, _T2 __t2)\n      : _Base1(), _Base2(_VSTD::forward<_T2>(__t2)) {}\n\n  _LIBCPP_INLINE_VISIBILITY\n  __compressed_pair(_T1 __t1, _T2 __t2)\n      : _Base1(_VSTD::forward<_T1>(__t1)), _Base2(_VSTD::forward<_T2>(__t2)) {}\n#endif\n\n  _LIBCPP_INLINE_VISIBILITY\n  typename _Base1::reference first() _NOEXCEPT {\n    return static_cast<_Base1&>(*this).__get();\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  typename _Base1::const_reference first() const _NOEXCEPT {\n    return static_cast<_Base1 const&>(*this).__get();\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  typename _Base2::reference second() _NOEXCEPT {\n    return static_cast<_Base2&>(*this).__get();\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  typename _Base2::const_reference second() const _NOEXCEPT {\n    return static_cast<_Base2 const&>(*this).__get();\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  void swap(__compressed_pair& __x)\n    _NOEXCEPT_(__is_nothrow_swappable<_T1>::value &&\n               __is_nothrow_swappable<_T2>::value)\n  {\n    using std::swap;\n    swap(first(), __x.first());\n    swap(second(), __x.second());\n  }\n};\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid swap(__compressed_pair<_T1, _T2>& __x, __compressed_pair<_T1, _T2>& __y)\n    _NOEXCEPT_(__is_nothrow_swappable<_T1>::value &&\n               __is_nothrow_swappable<_T2>::value) {\n  __x.swap(__y);\n}\n\n// default_delete\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS default_delete {\n    static_assert(!is_function<_Tp>::value,\n                  \"default_delete cannot be instantiated for function types\");\n#ifndef _LIBCPP_CXX03_LANG\n  _LIBCPP_INLINE_VISIBILITY constexpr default_delete() noexcept = default;\n#else\n  _LIBCPP_INLINE_VISIBILITY default_delete() {}\n#endif\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n  default_delete(const default_delete<_Up>&,\n                 typename enable_if<is_convertible<_Up*, _Tp*>::value>::type* =\n                     0) _NOEXCEPT {}\n\n  _LIBCPP_INLINE_VISIBILITY void operator()(_Tp* __ptr) const _NOEXCEPT {\n    static_assert(sizeof(_Tp) > 0,\n                  \"default_delete can not delete incomplete type\");\n    static_assert(!is_void<_Tp>::value,\n                  \"default_delete can not delete incomplete type\");\n    delete __ptr;\n  }\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS default_delete<_Tp[]> {\nprivate:\n  template <class _Up>\n  struct _EnableIfConvertible\n      : enable_if<is_convertible<_Up(*)[], _Tp(*)[]>::value> {};\n\npublic:\n#ifndef _LIBCPP_CXX03_LANG\n  _LIBCPP_INLINE_VISIBILITY constexpr default_delete() noexcept = default;\n#else\n  _LIBCPP_INLINE_VISIBILITY default_delete() {}\n#endif\n\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n  default_delete(const default_delete<_Up[]>&,\n                 typename _EnableIfConvertible<_Up>::type* = 0) _NOEXCEPT {}\n\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n  typename _EnableIfConvertible<_Up>::type\n  operator()(_Up* __ptr) const _NOEXCEPT {\n    static_assert(sizeof(_Tp) > 0,\n                  \"default_delete can not delete incomplete type\");\n    static_assert(!is_void<_Tp>::value,\n                  \"default_delete can not delete void type\");\n    delete[] __ptr;\n  }\n};\n\n\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Deleter>\nstruct __unique_ptr_deleter_sfinae {\n  static_assert(!is_reference<_Deleter>::value, \"incorrect specialization\");\n  typedef const _Deleter& __lval_ref_type;\n  typedef _Deleter&& __good_rval_ref_type;\n  typedef true_type __enable_rval_overload;\n};\n\ntemplate <class _Deleter>\nstruct __unique_ptr_deleter_sfinae<_Deleter const&> {\n  typedef const _Deleter& __lval_ref_type;\n  typedef const _Deleter&& __bad_rval_ref_type;\n  typedef false_type __enable_rval_overload;\n};\n\ntemplate <class _Deleter>\nstruct __unique_ptr_deleter_sfinae<_Deleter&> {\n  typedef _Deleter& __lval_ref_type;\n  typedef _Deleter&& __bad_rval_ref_type;\n  typedef false_type __enable_rval_overload;\n};\n#endif // !defined(_LIBCPP_CXX03_LANG)\n\ntemplate <class _Tp, class _Dp = default_delete<_Tp> >\nclass _LIBCPP_TEMPLATE_VIS unique_ptr {\npublic:\n  typedef _Tp element_type;\n  typedef _Dp deleter_type;\n  typedef typename __pointer_type<_Tp, deleter_type>::type pointer;\n\n  static_assert(!is_rvalue_reference<deleter_type>::value,\n                \"the specified deleter type cannot be an rvalue reference\");\n\nprivate:\n  __compressed_pair<pointer, deleter_type> __ptr_;\n\n  struct __nat { int __for_bool_; };\n\n#ifndef _LIBCPP_CXX03_LANG\n  typedef __unique_ptr_deleter_sfinae<_Dp> _DeleterSFINAE;\n\n  template <bool _Dummy>\n  using _LValRefType =\n      typename __dependent_type<_DeleterSFINAE, _Dummy>::__lval_ref_type;\n\n  template <bool _Dummy>\n  using _GoodRValRefType =\n      typename __dependent_type<_DeleterSFINAE, _Dummy>::__good_rval_ref_type;\n\n  template <bool _Dummy>\n  using _BadRValRefType =\n      typename __dependent_type<_DeleterSFINAE, _Dummy>::__bad_rval_ref_type;\n\n  template <bool _Dummy, class _Deleter = typename __dependent_type<\n                             __identity<deleter_type>, _Dummy>::type>\n  using _EnableIfDeleterDefaultConstructible =\n      typename enable_if<is_default_constructible<_Deleter>::value &&\n                         !is_pointer<_Deleter>::value>::type;\n\n  template <class _ArgType>\n  using _EnableIfDeleterConstructible =\n      typename enable_if<is_constructible<deleter_type, _ArgType>::value>::type;\n\n  template <class _UPtr, class _Up>\n  using _EnableIfMoveConvertible = typename enable_if<\n      is_convertible<typename _UPtr::pointer, pointer>::value &&\n      !is_array<_Up>::value\n  >::type;\n\n  template <class _UDel>\n  using _EnableIfDeleterConvertible = typename enable_if<\n      (is_reference<_Dp>::value && is_same<_Dp, _UDel>::value) ||\n      (!is_reference<_Dp>::value && is_convertible<_UDel, _Dp>::value)\n    >::type;\n\n  template <class _UDel>\n  using _EnableIfDeleterAssignable = typename enable_if<\n      is_assignable<_Dp&, _UDel&&>::value\n    >::type;\n\npublic:\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterDefaultConstructible<_Dummy>>\n  _LIBCPP_INLINE_VISIBILITY\n  constexpr unique_ptr() noexcept : __ptr_(pointer()) {}\n\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterDefaultConstructible<_Dummy>>\n  _LIBCPP_INLINE_VISIBILITY\n  constexpr unique_ptr(nullptr_t) noexcept : __ptr_(pointer()) {}\n\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterDefaultConstructible<_Dummy>>\n  _LIBCPP_INLINE_VISIBILITY\n  explicit unique_ptr(pointer __p) noexcept : __ptr_(__p) {}\n\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterConstructible<_LValRefType<_Dummy>>>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(pointer __p, _LValRefType<_Dummy> __d) noexcept\n      : __ptr_(__p, __d) {}\n\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy>>>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(pointer __p, _GoodRValRefType<_Dummy> __d) noexcept\n      : __ptr_(__p, _VSTD::move(__d)) {\n    static_assert(!is_reference<deleter_type>::value,\n                  \"rvalue deleter bound to reference\");\n  }\n\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterConstructible<_BadRValRefType<_Dummy>>>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(pointer __p, _BadRValRefType<_Dummy> __d) = delete;\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(unique_ptr&& __u) noexcept\n      : __ptr_(__u.release(), _VSTD::forward<deleter_type>(__u.get_deleter())) {\n  }\n\n  template <class _Up, class _Ep,\n      class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>,\n      class = _EnableIfDeleterConvertible<_Ep>\n  >\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(unique_ptr<_Up, _Ep>&& __u) _NOEXCEPT\n      : __ptr_(__u.release(), _VSTD::forward<_Ep>(__u.get_deleter())) {}\n\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(auto_ptr<_Up>&& __p,\n             typename enable_if<is_convertible<_Up*, _Tp*>::value &&\n                                    is_same<_Dp, default_delete<_Tp>>::value,\n                                __nat>::type = __nat()) _NOEXCEPT\n      : __ptr_(__p.release()) {}\n#endif\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr& operator=(unique_ptr&& __u) _NOEXCEPT {\n    reset(__u.release());\n    __ptr_.second() = _VSTD::forward<deleter_type>(__u.get_deleter());\n    return *this;\n  }\n\n  template <class _Up, class _Ep,\n      class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>,\n      class = _EnableIfDeleterAssignable<_Ep>\n  >\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr& operator=(unique_ptr<_Up, _Ep>&& __u) _NOEXCEPT {\n    reset(__u.release());\n    __ptr_.second() = _VSTD::forward<_Ep>(__u.get_deleter());\n    return *this;\n  }\n\n#else  // _LIBCPP_CXX03_LANG\nprivate:\n  unique_ptr(unique_ptr&);\n  template <class _Up, class _Ep> unique_ptr(unique_ptr<_Up, _Ep>&);\n\n  unique_ptr& operator=(unique_ptr&);\n  template <class _Up, class _Ep> unique_ptr& operator=(unique_ptr<_Up, _Ep>&);\n\npublic:\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr() : __ptr_(pointer())\n  {\n    static_assert(!is_pointer<deleter_type>::value,\n                  \"unique_ptr constructed with null function pointer deleter\");\n    static_assert(is_default_constructible<deleter_type>::value,\n                  \"unique_ptr::deleter_type is not default constructible\");\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(nullptr_t) : __ptr_(pointer())\n  {\n    static_assert(!is_pointer<deleter_type>::value,\n                  \"unique_ptr constructed with null function pointer deleter\");\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  explicit unique_ptr(pointer __p)\n      : __ptr_(_VSTD::move(__p)) {\n    static_assert(!is_pointer<deleter_type>::value,\n                  \"unique_ptr constructed with null function pointer deleter\");\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  operator __rv<unique_ptr>() {\n    return __rv<unique_ptr>(*this);\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(__rv<unique_ptr> __u)\n      : __ptr_(__u->release(),\n               _VSTD::forward<deleter_type>(__u->get_deleter())) {}\n\n  template <class _Up, class _Ep>\n  _LIBCPP_INLINE_VISIBILITY\n  typename enable_if<\n      !is_array<_Up>::value &&\n          is_convertible<typename unique_ptr<_Up, _Ep>::pointer,\n                         pointer>::value &&\n          is_assignable<deleter_type&, _Ep&>::value,\n      unique_ptr&>::type\n  operator=(unique_ptr<_Up, _Ep> __u) {\n    reset(__u.release());\n    __ptr_.second() = _VSTD::forward<_Ep>(__u.get_deleter());\n    return *this;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(pointer __p, deleter_type __d)\n      : __ptr_(_VSTD::move(__p), _VSTD::move(__d)) {}\n#endif // _LIBCPP_CXX03_LANG\n\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\n  template <class _Up>\n  _LIBCPP_INLINE_VISIBILITY\n      typename enable_if<is_convertible<_Up*, _Tp*>::value &&\n                             is_same<_Dp, default_delete<_Tp> >::value,\n                         unique_ptr&>::type\n      operator=(auto_ptr<_Up> __p) {\n    reset(__p.release());\n    return *this;\n  }\n#endif\n\n  _LIBCPP_INLINE_VISIBILITY\n  ~unique_ptr() { reset(); }\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr& operator=(nullptr_t) _NOEXCEPT {\n    reset();\n    return *this;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  typename add_lvalue_reference<_Tp>::type\n  operator*() const {\n    return *__ptr_.first();\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  pointer operator->() const _NOEXCEPT {\n    return __ptr_.first();\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  pointer get() const _NOEXCEPT {\n    return __ptr_.first();\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  deleter_type& get_deleter() _NOEXCEPT {\n    return __ptr_.second();\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  const deleter_type& get_deleter() const _NOEXCEPT {\n    return __ptr_.second();\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT {\n    return __ptr_.first() != nullptr;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  pointer release() _NOEXCEPT {\n    pointer __t = __ptr_.first();\n    __ptr_.first() = pointer();\n    return __t;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  void reset(pointer __p = pointer()) _NOEXCEPT {\n    pointer __tmp = __ptr_.first();\n    __ptr_.first() = __p;\n    if (__tmp)\n      __ptr_.second()(__tmp);\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  void swap(unique_ptr& __u) _NOEXCEPT {\n    __ptr_.swap(__u.__ptr_);\n  }\n};\n\n\ntemplate <class _Tp, class _Dp>\nclass _LIBCPP_TEMPLATE_VIS unique_ptr<_Tp[], _Dp> {\npublic:\n  typedef _Tp element_type;\n  typedef _Dp deleter_type;\n  typedef typename __pointer_type<_Tp, deleter_type>::type pointer;\n\nprivate:\n  __compressed_pair<pointer, deleter_type> __ptr_;\n\n  template <class _From>\n  struct _CheckArrayPointerConversion : is_same<_From, pointer> {};\n\n  template <class _FromElem>\n  struct _CheckArrayPointerConversion<_FromElem*>\n      : integral_constant<bool,\n          is_same<_FromElem*, pointer>::value ||\n            (is_same<pointer, element_type*>::value &&\n             is_convertible<_FromElem(*)[], element_type(*)[]>::value)\n      >\n  {};\n\n#ifndef _LIBCPP_CXX03_LANG\n  typedef __unique_ptr_deleter_sfinae<_Dp> _DeleterSFINAE;\n\n  template <bool _Dummy>\n  using _LValRefType =\n      typename __dependent_type<_DeleterSFINAE, _Dummy>::__lval_ref_type;\n\n  template <bool _Dummy>\n  using _GoodRValRefType =\n      typename __dependent_type<_DeleterSFINAE, _Dummy>::__good_rval_ref_type;\n\n  template <bool _Dummy>\n  using _BadRValRefType =\n      typename __dependent_type<_DeleterSFINAE, _Dummy>::__bad_rval_ref_type;\n\n  template <bool _Dummy, class _Deleter = typename __dependent_type<\n                             __identity<deleter_type>, _Dummy>::type>\n  using _EnableIfDeleterDefaultConstructible =\n      typename enable_if<is_default_constructible<_Deleter>::value &&\n                         !is_pointer<_Deleter>::value>::type;\n\n  template <class _ArgType>\n  using _EnableIfDeleterConstructible =\n      typename enable_if<is_constructible<deleter_type, _ArgType>::value>::type;\n\n  template <class _Pp>\n  using _EnableIfPointerConvertible = typename enable_if<\n      _CheckArrayPointerConversion<_Pp>::value\n  >::type;\n\n  template <class _UPtr, class _Up,\n        class _ElemT = typename _UPtr::element_type>\n  using _EnableIfMoveConvertible = typename enable_if<\n      is_array<_Up>::value &&\n      is_same<pointer, element_type*>::value &&\n      is_same<typename _UPtr::pointer, _ElemT*>::value &&\n      is_convertible<_ElemT(*)[], element_type(*)[]>::value\n    >::type;\n\n  template <class _UDel>\n  using _EnableIfDeleterConvertible = typename enable_if<\n      (is_reference<_Dp>::value && is_same<_Dp, _UDel>::value) ||\n      (!is_reference<_Dp>::value && is_convertible<_UDel, _Dp>::value)\n    >::type;\n\n  template <class _UDel>\n  using _EnableIfDeleterAssignable = typename enable_if<\n      is_assignable<_Dp&, _UDel&&>::value\n    >::type;\n\npublic:\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterDefaultConstructible<_Dummy>>\n  _LIBCPP_INLINE_VISIBILITY\n  constexpr unique_ptr() noexcept : __ptr_(pointer()) {}\n\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterDefaultConstructible<_Dummy>>\n  _LIBCPP_INLINE_VISIBILITY\n  constexpr unique_ptr(nullptr_t) noexcept : __ptr_(pointer()) {}\n\n  template <class _Pp, bool _Dummy = true,\n            class = _EnableIfDeleterDefaultConstructible<_Dummy>,\n            class = _EnableIfPointerConvertible<_Pp>>\n  _LIBCPP_INLINE_VISIBILITY\n  explicit unique_ptr(_Pp __p) noexcept\n      : __ptr_(__p) {}\n\n  template <class _Pp, bool _Dummy = true,\n            class = _EnableIfDeleterConstructible<_LValRefType<_Dummy>>,\n            class = _EnableIfPointerConvertible<_Pp>>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(_Pp __p, _LValRefType<_Dummy> __d) noexcept\n      : __ptr_(__p, __d) {}\n\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterConstructible<_LValRefType<_Dummy>>>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(nullptr_t, _LValRefType<_Dummy> __d) noexcept\n      : __ptr_(nullptr, __d) {}\n\n  template <class _Pp, bool _Dummy = true,\n            class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy>>,\n            class = _EnableIfPointerConvertible<_Pp>>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(_Pp __p, _GoodRValRefType<_Dummy> __d) noexcept\n      : __ptr_(__p, _VSTD::move(__d)) {\n    static_assert(!is_reference<deleter_type>::value,\n                  \"rvalue deleter bound to reference\");\n  }\n\n  template <bool _Dummy = true,\n            class = _EnableIfDeleterConstructible<_GoodRValRefType<_Dummy>>>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(nullptr_t, _GoodRValRefType<_Dummy> __d) noexcept\n      : __ptr_(nullptr, _VSTD::move(__d)) {\n    static_assert(!is_reference<deleter_type>::value,\n                  \"rvalue deleter bound to reference\");\n  }\n\n  template <class _Pp, bool _Dummy = true,\n            class = _EnableIfDeleterConstructible<_BadRValRefType<_Dummy>>,\n            class = _EnableIfPointerConvertible<_Pp>>\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(_Pp __p, _BadRValRefType<_Dummy> __d) = delete;\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(unique_ptr&& __u) noexcept\n      : __ptr_(__u.release(), _VSTD::forward<deleter_type>(__u.get_deleter())) {\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr& operator=(unique_ptr&& __u) noexcept {\n    reset(__u.release());\n    __ptr_.second() = _VSTD::forward<deleter_type>(__u.get_deleter());\n    return *this;\n  }\n\n  template <class _Up, class _Ep,\n      class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>,\n      class = _EnableIfDeleterConvertible<_Ep>\n  >\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept\n      : __ptr_(__u.release(), _VSTD::forward<_Ep>(__u.get_deleter())) {\n  }\n\n  template <class _Up, class _Ep,\n      class = _EnableIfMoveConvertible<unique_ptr<_Up, _Ep>, _Up>,\n      class = _EnableIfDeleterAssignable<_Ep>\n  >\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr&\n  operator=(unique_ptr<_Up, _Ep>&& __u) noexcept {\n    reset(__u.release());\n    __ptr_.second() = _VSTD::forward<_Ep>(__u.get_deleter());\n    return *this;\n  }\n\n#else // _LIBCPP_CXX03_LANG\nprivate:\n  template <class _Up> explicit unique_ptr(_Up);\n\n  unique_ptr(unique_ptr&);\n  template <class _Up> unique_ptr(unique_ptr<_Up>&);\n\n  unique_ptr& operator=(unique_ptr&);\n  template <class _Up> unique_ptr& operator=(unique_ptr<_Up>&);\n\n  template <class _Up>\n  unique_ptr(_Up __u,\n             typename conditional<\n                 is_reference<deleter_type>::value, deleter_type,\n                 typename add_lvalue_reference<const deleter_type>::type>::type,\n             typename enable_if<is_convertible<_Up, pointer>::value,\n                                __nat>::type = __nat());\npublic:\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr() : __ptr_(pointer()) {\n    static_assert(!is_pointer<deleter_type>::value,\n                  \"unique_ptr constructed with null function pointer deleter\");\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(nullptr_t) : __ptr_(pointer()) {\n    static_assert(!is_pointer<deleter_type>::value,\n                  \"unique_ptr constructed with null function pointer deleter\");\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  explicit unique_ptr(pointer __p) : __ptr_(__p) {\n    static_assert(!is_pointer<deleter_type>::value,\n                  \"unique_ptr constructed with null function pointer deleter\");\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(pointer __p, deleter_type __d)\n      : __ptr_(__p, _VSTD::forward<deleter_type>(__d)) {}\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(nullptr_t, deleter_type __d)\n      : __ptr_(pointer(), _VSTD::forward<deleter_type>(__d)) {}\n\n  _LIBCPP_INLINE_VISIBILITY\n  operator __rv<unique_ptr>() {\n    return __rv<unique_ptr>(*this);\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr(__rv<unique_ptr> __u)\n      : __ptr_(__u->release(),\n               _VSTD::forward<deleter_type>(__u->get_deleter())) {}\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr& operator=(__rv<unique_ptr> __u) {\n    reset(__u->release());\n    __ptr_.second() = _VSTD::forward<deleter_type>(__u->get_deleter());\n    return *this;\n  }\n\n#endif // _LIBCPP_CXX03_LANG\n\npublic:\n  _LIBCPP_INLINE_VISIBILITY\n  ~unique_ptr() { reset(); }\n\n  _LIBCPP_INLINE_VISIBILITY\n  unique_ptr& operator=(nullptr_t) _NOEXCEPT {\n    reset();\n    return *this;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  typename add_lvalue_reference<_Tp>::type\n  operator[](size_t __i) const {\n    return __ptr_.first()[__i];\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  pointer get() const _NOEXCEPT {\n    return __ptr_.first();\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  deleter_type& get_deleter() _NOEXCEPT {\n    return __ptr_.second();\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  const deleter_type& get_deleter() const _NOEXCEPT {\n    return __ptr_.second();\n  }\n  _LIBCPP_INLINE_VISIBILITY\n  _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT {\n    return __ptr_.first() != nullptr;\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  pointer release() _NOEXCEPT {\n    pointer __t = __ptr_.first();\n    __ptr_.first() = pointer();\n    return __t;\n  }\n\n  template <class _Pp>\n  _LIBCPP_INLINE_VISIBILITY\n  typename enable_if<\n      _CheckArrayPointerConversion<_Pp>::value\n  >::type\n  reset(_Pp __p) _NOEXCEPT {\n    pointer __tmp = __ptr_.first();\n    __ptr_.first() = __p;\n    if (__tmp)\n      __ptr_.second()(__tmp);\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  void reset(nullptr_t = nullptr) _NOEXCEPT {\n    pointer __tmp = __ptr_.first();\n    __ptr_.first() = nullptr;\n    if (__tmp)\n      __ptr_.second()(__tmp);\n  }\n\n  _LIBCPP_INLINE_VISIBILITY\n  void swap(unique_ptr& __u) _NOEXCEPT {\n    __ptr_.swap(__u.__ptr_);\n  }\n\n};\n\ntemplate <class _Tp, class _Dp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if<\n    __is_swappable<_Dp>::value,\n    void\n>::type\nswap(unique_ptr<_Tp, _Dp>& __x, unique_ptr<_Tp, _Dp>& __y) _NOEXCEPT {__x.swap(__y);}\n\ntemplate <class _T1, class _D1, class _T2, class _D2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return __x.get() == __y.get();}\n\ntemplate <class _T1, class _D1, class _T2, class _D2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__x == __y);}\n\ntemplate <class _T1, class _D1, class _T2, class _D2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y)\n{\n    typedef typename unique_ptr<_T1, _D1>::pointer _P1;\n    typedef typename unique_ptr<_T2, _D2>::pointer _P2;\n    typedef typename common_type<_P1, _P2>::type _Vp;\n    return less<_Vp>()(__x.get(), __y.get());\n}\n\ntemplate <class _T1, class _D1, class _T2, class _D2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return __y < __x;}\n\ntemplate <class _T1, class _D1, class _T2, class _D2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__y < __x);}\n\ntemplate <class _T1, class _D1, class _T2, class _D2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const unique_ptr<_T1, _D1>& __x, const unique_ptr<_T2, _D2>& __y) {return !(__x < __y);}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const unique_ptr<_T1, _D1>& __x, nullptr_t) _NOEXCEPT\n{\n    return !__x;\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(nullptr_t, const unique_ptr<_T1, _D1>& __x) _NOEXCEPT\n{\n    return !__x;\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const unique_ptr<_T1, _D1>& __x, nullptr_t) _NOEXCEPT\n{\n    return static_cast<bool>(__x);\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(nullptr_t, const unique_ptr<_T1, _D1>& __x) _NOEXCEPT\n{\n    return static_cast<bool>(__x);\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const unique_ptr<_T1, _D1>& __x, nullptr_t)\n{\n    typedef typename unique_ptr<_T1, _D1>::pointer _P1;\n    return less<_P1>()(__x.get(), nullptr);\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(nullptr_t, const unique_ptr<_T1, _D1>& __x)\n{\n    typedef typename unique_ptr<_T1, _D1>::pointer _P1;\n    return less<_P1>()(nullptr, __x.get());\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const unique_ptr<_T1, _D1>& __x, nullptr_t)\n{\n    return nullptr < __x;\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(nullptr_t, const unique_ptr<_T1, _D1>& __x)\n{\n    return __x < nullptr;\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const unique_ptr<_T1, _D1>& __x, nullptr_t)\n{\n    return !(nullptr < __x);\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(nullptr_t, const unique_ptr<_T1, _D1>& __x)\n{\n    return !(__x < nullptr);\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const unique_ptr<_T1, _D1>& __x, nullptr_t)\n{\n    return !(__x < nullptr);\n}\n\ntemplate <class _T1, class _D1>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(nullptr_t, const unique_ptr<_T1, _D1>& __x)\n{\n    return !(nullptr < __x);\n}\n\n#ifdef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp, class _Dp>\ninline _LIBCPP_INLINE_VISIBILITY\nunique_ptr<_Tp, _Dp>\nmove(unique_ptr<_Tp, _Dp>& __t)\n{\n    return unique_ptr<_Tp, _Dp>(__rv<unique_ptr<_Tp, _Dp> >(__t));\n}\n\n#endif\n\n#if _LIBCPP_STD_VER > 11\n\ntemplate<class _Tp>\nstruct __unique_if\n{\n    typedef unique_ptr<_Tp> __unique_single;\n};\n\ntemplate<class _Tp>\nstruct __unique_if<_Tp[]>\n{\n    typedef unique_ptr<_Tp[]> __unique_array_unknown_bound;\n};\n\ntemplate<class _Tp, size_t _Np>\nstruct __unique_if<_Tp[_Np]>\n{\n    typedef void __unique_array_known_bound;\n};\n\ntemplate<class _Tp, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __unique_if<_Tp>::__unique_single\nmake_unique(_Args&&... __args)\n{\n    return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...));\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __unique_if<_Tp>::__unique_array_unknown_bound\nmake_unique(size_t __n)\n{\n    typedef typename remove_extent<_Tp>::type _Up;\n    return unique_ptr<_Tp>(new _Up[__n]());\n}\n\ntemplate<class _Tp, class... _Args>\n    typename __unique_if<_Tp>::__unique_array_known_bound\n    make_unique(_Args&&...) = delete;\n\n#endif  // _LIBCPP_STD_VER > 11\n\ntemplate <class _Tp, class _Dp>\n#ifdef _LIBCPP_CXX03_LANG\nstruct _LIBCPP_TEMPLATE_VIS hash<unique_ptr<_Tp, _Dp> >\n#else\nstruct _LIBCPP_TEMPLATE_VIS hash<__enable_hash_helper<\n    unique_ptr<_Tp, _Dp>, typename unique_ptr<_Tp, _Dp>::pointer>>\n#endif\n{\n    typedef unique_ptr<_Tp, _Dp> argument_type;\n    typedef size_t               result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator()(const argument_type& __ptr) const\n    {\n        typedef typename argument_type::pointer pointer;\n        return hash<pointer>()(__ptr.get());\n    }\n};\n\nstruct __destruct_n\n{\nprivate:\n    size_t __size_;\n\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY void __process(_Tp* __p, false_type) _NOEXCEPT\n        {for (size_t __i = 0; __i < __size_; ++__i, ++__p) __p->~_Tp();}\n\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY void __process(_Tp*, true_type) _NOEXCEPT\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY void __incr(false_type) _NOEXCEPT\n        {++__size_;}\n    _LIBCPP_INLINE_VISIBILITY void __incr(true_type) _NOEXCEPT\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY void __set(size_t __s, false_type) _NOEXCEPT\n        {__size_ = __s;}\n    _LIBCPP_INLINE_VISIBILITY void __set(size_t, true_type) _NOEXCEPT\n        {}\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit __destruct_n(size_t __s) _NOEXCEPT\n        : __size_(__s) {}\n\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY void __incr(_Tp*) _NOEXCEPT\n        {__incr(integral_constant<bool, is_trivially_destructible<_Tp>::value>());}\n\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY void __set(size_t __s, _Tp*) _NOEXCEPT\n        {__set(__s, integral_constant<bool, is_trivially_destructible<_Tp>::value>());}\n\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY void operator()(_Tp* __p) _NOEXCEPT\n        {__process(__p, integral_constant<bool, is_trivially_destructible<_Tp>::value>());}\n};\n\ntemplate <class _Alloc>\nclass __allocator_destructor\n{\n    typedef allocator_traits<_Alloc> __alloc_traits;\npublic:\n    typedef typename __alloc_traits::pointer pointer;\n    typedef typename __alloc_traits::size_type size_type;\nprivate:\n    _Alloc& __alloc_;\n    size_type __s_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY __allocator_destructor(_Alloc& __a, size_type __s)\n             _NOEXCEPT\n        : __alloc_(__a), __s_(__s) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()(pointer __p) _NOEXCEPT\n        {__alloc_traits::deallocate(__alloc_, __p, __s_);}\n};\n\ntemplate <class _InputIterator, class _ForwardIterator>\n_ForwardIterator\nuninitialized_copy(_InputIterator __f, _InputIterator __l, _ForwardIterator __r)\n{\n    typedef typename iterator_traits<_ForwardIterator>::value_type value_type;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    _ForwardIterator __s = __r;\n    try\n    {\n#endif\n        for (; __f != __l; ++__f, (void) ++__r)\n            ::new (static_cast<void*>(_VSTD::addressof(*__r))) value_type(*__f);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        for (; __s != __r; ++__s)\n            __s->~value_type();\n        throw;\n    }\n#endif\n    return __r;\n}\n\ntemplate <class _InputIterator, class _Size, class _ForwardIterator>\n_ForwardIterator\nuninitialized_copy_n(_InputIterator __f, _Size __n, _ForwardIterator __r)\n{\n    typedef typename iterator_traits<_ForwardIterator>::value_type value_type;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    _ForwardIterator __s = __r;\n    try\n    {\n#endif\n        for (; __n > 0; ++__f, (void) ++__r, (void) --__n)\n            ::new (static_cast<void*>(_VSTD::addressof(*__r))) value_type(*__f);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        for (; __s != __r; ++__s)\n            __s->~value_type();\n        throw;\n    }\n#endif\n    return __r;\n}\n\ntemplate <class _ForwardIterator, class _Tp>\nvoid\nuninitialized_fill(_ForwardIterator __f, _ForwardIterator __l, const _Tp& __x)\n{\n    typedef typename iterator_traits<_ForwardIterator>::value_type value_type;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    _ForwardIterator __s = __f;\n    try\n    {\n#endif\n        for (; __f != __l; ++__f)\n            ::new (static_cast<void*>(_VSTD::addressof(*__f))) value_type(__x);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        for (; __s != __f; ++__s)\n            __s->~value_type();\n        throw;\n    }\n#endif\n}\n\ntemplate <class _ForwardIterator, class _Size, class _Tp>\n_ForwardIterator\nuninitialized_fill_n(_ForwardIterator __f, _Size __n, const _Tp& __x)\n{\n    typedef typename iterator_traits<_ForwardIterator>::value_type value_type;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    _ForwardIterator __s = __f;\n    try\n    {\n#endif\n        for (; __n > 0; ++__f, (void) --__n)\n            ::new (static_cast<void*>(_VSTD::addressof(*__f))) value_type(__x);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        for (; __s != __f; ++__s)\n            __s->~value_type();\n        throw;\n    }\n#endif\n    return __f;\n}\n\n#if _LIBCPP_STD_VER > 14\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid destroy_at(_Tp* __loc) {\n    _LIBCPP_ASSERT(__loc, \"null pointer given to destroy_at\");\n    __loc->~_Tp();\n}\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid destroy(_ForwardIterator __first, _ForwardIterator __last) {\n    for (; __first != __last; ++__first)\n        _VSTD::destroy_at(_VSTD::addressof(*__first));\n}\n\ntemplate <class _ForwardIterator, class _Size>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator destroy_n(_ForwardIterator __first, _Size __n) {\n    for (; __n > 0; (void)++__first, --__n)\n        _VSTD::destroy_at(_VSTD::addressof(*__first));\n    return __first;\n}\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid uninitialized_default_construct(_ForwardIterator __first, _ForwardIterator __last) {\n    using _Vt = typename iterator_traits<_ForwardIterator>::value_type;\n    auto __idx = __first;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try {\n#endif\n    for (; __idx != __last; ++__idx)\n        ::new((void*)_VSTD::addressof(*__idx)) _Vt;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    } catch (...) {\n        _VSTD::destroy(__first, __idx);\n        throw;\n    }\n#endif\n}\n\ntemplate <class _ForwardIterator, class _Size>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator uninitialized_default_construct_n(_ForwardIterator __first, _Size __n) {\n    using _Vt = typename iterator_traits<_ForwardIterator>::value_type;\n    auto __idx = __first;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try {\n#endif\n    for (; __n > 0; (void)++__idx, --__n)\n        ::new((void*)_VSTD::addressof(*__idx)) _Vt;\n    return __idx;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    } catch (...) {\n        _VSTD::destroy(__first, __idx);\n        throw;\n    }\n#endif\n}\n\n\ntemplate <class _ForwardIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid uninitialized_value_construct(_ForwardIterator __first, _ForwardIterator __last) {\n    using _Vt = typename iterator_traits<_ForwardIterator>::value_type;\n    auto __idx = __first;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try {\n#endif\n    for (; __idx != __last; ++__idx)\n        ::new((void*)_VSTD::addressof(*__idx)) _Vt();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    } catch (...) {\n        _VSTD::destroy(__first, __idx);\n        throw;\n    }\n#endif\n}\n\ntemplate <class _ForwardIterator, class _Size>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator uninitialized_value_construct_n(_ForwardIterator __first, _Size __n) {\n    using _Vt = typename iterator_traits<_ForwardIterator>::value_type;\n    auto __idx = __first;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try {\n#endif\n    for (; __n > 0; (void)++__idx, --__n)\n        ::new((void*)_VSTD::addressof(*__idx)) _Vt();\n    return __idx;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    } catch (...) {\n        _VSTD::destroy(__first, __idx);\n        throw;\n    }\n#endif\n}\n\n\ntemplate <class _InputIt, class _ForwardIt>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIt uninitialized_move(_InputIt __first, _InputIt __last, _ForwardIt __first_res) {\n    using _Vt = typename iterator_traits<_ForwardIt>::value_type;\n    auto __idx = __first_res;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try {\n#endif\n    for (; __first != __last; (void)++__idx, ++__first)\n        ::new((void*)_VSTD::addressof(*__idx)) _Vt(std::move(*__first));\n    return __idx;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    } catch (...) {\n        _VSTD::destroy(__first_res, __idx);\n        throw;\n    }\n#endif\n}\n\ntemplate <class _InputIt, class _Size, class _ForwardIt>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_InputIt, _ForwardIt>\nuninitialized_move_n(_InputIt __first, _Size __n, _ForwardIt __first_res) {\n    using _Vt = typename iterator_traits<_ForwardIt>::value_type;\n    auto __idx = __first_res;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try {\n#endif\n    for (; __n > 0; ++__idx, (void)++__first, --__n)\n        ::new((void*)_VSTD::addressof(*__idx)) _Vt(std::move(*__first));\n    return {__first, __idx};\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    } catch (...) {\n        _VSTD::destroy(__first_res, __idx);\n        throw;\n    }\n#endif\n}\n\n\n#endif // _LIBCPP_STD_VER > 14\n\n// NOTE: Relaxed and acq/rel atomics (for increment and decrement respectively)\n// should be sufficient for thread safety.\n// See https://bugs.llvm.org/show_bug.cgi?id=22803\n#if defined(__clang__) && __has_builtin(__atomic_add_fetch)          \\\n                       && defined(__ATOMIC_RELAXED)                  \\\n                       && defined(__ATOMIC_ACQ_REL)\n#   define _LIBCPP_HAS_BUILTIN_ATOMIC_SUPPORT\n#elif !defined(__clang__) && defined(_GNUC_VER) && _GNUC_VER >= 407\n#   define _LIBCPP_HAS_BUILTIN_ATOMIC_SUPPORT\n#endif\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _Tp\n__libcpp_atomic_refcount_increment(_Tp& __t) _NOEXCEPT\n{\n#if defined(_LIBCPP_HAS_BUILTIN_ATOMIC_SUPPORT) && !defined(_LIBCPP_HAS_NO_THREADS)\n    return __atomic_add_fetch(&__t, 1, __ATOMIC_RELAXED);\n#else\n    return __t += 1;\n#endif\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _Tp\n__libcpp_atomic_refcount_decrement(_Tp& __t) _NOEXCEPT\n{\n#if defined(_LIBCPP_HAS_BUILTIN_ATOMIC_SUPPORT) && !defined(_LIBCPP_HAS_NO_THREADS)\n    return __atomic_add_fetch(&__t, -1, __ATOMIC_ACQ_REL);\n#else\n    return __t -= 1;\n#endif\n}\n\nclass _LIBCPP_EXCEPTION_ABI bad_weak_ptr\n    : public std::exception\n{\npublic:\n    virtual ~bad_weak_ptr() _NOEXCEPT;\n    virtual const char* what() const  _NOEXCEPT;\n};\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_bad_weak_ptr()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw bad_weak_ptr();\n#else\n    _VSTD::abort();\n#endif\n}\n\ntemplate<class _Tp> class _LIBCPP_TEMPLATE_VIS weak_ptr;\n\nclass _LIBCPP_TYPE_VIS __shared_count\n{\n    __shared_count(const __shared_count&);\n    __shared_count& operator=(const __shared_count&);\n\nprotected:\n    long __shared_owners_;\n    virtual ~__shared_count();\nprivate:\n    virtual void __on_zero_shared() _NOEXCEPT = 0;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __shared_count(long __refs = 0) _NOEXCEPT\n        : __shared_owners_(__refs) {}\n\n#if defined(_LIBCPP_BUILDING_MEMORY) && \\\n    defined(_LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS)\n    void __add_shared() _NOEXCEPT;\n    bool __release_shared() _NOEXCEPT;\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_shared() _NOEXCEPT {\n      __libcpp_atomic_refcount_increment(__shared_owners_);\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    bool __release_shared() _NOEXCEPT {\n      if (__libcpp_atomic_refcount_decrement(__shared_owners_) == -1) {\n        __on_zero_shared();\n        return true;\n      }\n      return false;\n    }\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    long use_count() const _NOEXCEPT {\n        return __libcpp_relaxed_load(&__shared_owners_) + 1;\n    }\n};\n\nclass _LIBCPP_TYPE_VIS __shared_weak_count\n    : private __shared_count\n{\n    long __shared_weak_owners_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __shared_weak_count(long __refs = 0) _NOEXCEPT\n        : __shared_count(__refs),\n          __shared_weak_owners_(__refs) {}\nprotected:\n    virtual ~__shared_weak_count();\n\npublic:\n#if defined(_LIBCPP_BUILDING_MEMORY) && \\\n    defined(_LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS)\n    void __add_shared() _NOEXCEPT;\n    void __add_weak() _NOEXCEPT;\n    void __release_shared() _NOEXCEPT;\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_shared() _NOEXCEPT {\n      __shared_count::__add_shared();\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_weak() _NOEXCEPT {\n      __libcpp_atomic_refcount_increment(__shared_weak_owners_);\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    void __release_shared() _NOEXCEPT {\n      if (__shared_count::__release_shared())\n        __release_weak();\n    }\n#endif\n    void __release_weak() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    long use_count() const _NOEXCEPT {return __shared_count::use_count();}\n    __shared_weak_count* lock() _NOEXCEPT;\n\n    // Define the function out only if we build static libc++ without RTTI.\n    // Otherwise we may break clients who need to compile their projects with\n    // -fno-rtti and yet link against a libc++.dylib compiled\n    // without -fno-rtti.\n#if !defined(_LIBCPP_NO_RTTI) || !defined(_LIBCPP_BUILD_STATIC)\n    virtual const void* __get_deleter(const type_info&) const _NOEXCEPT;\n#endif\nprivate:\n    virtual void __on_zero_shared_weak() _NOEXCEPT = 0;\n};\n\ntemplate <class _Tp, class _Dp, class _Alloc>\nclass __shared_ptr_pointer\n    : public __shared_weak_count\n{\n    __compressed_pair<__compressed_pair<_Tp, _Dp>, _Alloc> __data_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __shared_ptr_pointer(_Tp __p, _Dp __d, _Alloc __a)\n        :  __data_(__compressed_pair<_Tp, _Dp>(__p, _VSTD::move(__d)), _VSTD::move(__a)) {}\n\n#ifndef _LIBCPP_NO_RTTI\n    virtual const void* __get_deleter(const type_info&) const _NOEXCEPT;\n#endif\n\nprivate:\n    virtual void __on_zero_shared() _NOEXCEPT;\n    virtual void __on_zero_shared_weak() _NOEXCEPT;\n};\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate <class _Tp, class _Dp, class _Alloc>\nconst void*\n__shared_ptr_pointer<_Tp, _Dp, _Alloc>::__get_deleter(const type_info& __t) const _NOEXCEPT\n{\n    return __t == typeid(_Dp) ? _VSTD::addressof(__data_.first().second()) : nullptr;\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate <class _Tp, class _Dp, class _Alloc>\nvoid\n__shared_ptr_pointer<_Tp, _Dp, _Alloc>::__on_zero_shared() _NOEXCEPT\n{\n    __data_.first().second()(__data_.first().first());\n    __data_.first().second().~_Dp();\n}\n\ntemplate <class _Tp, class _Dp, class _Alloc>\nvoid\n__shared_ptr_pointer<_Tp, _Dp, _Alloc>::__on_zero_shared_weak() _NOEXCEPT\n{\n    typedef typename __allocator_traits_rebind<_Alloc, __shared_ptr_pointer>::type _Al;\n    typedef allocator_traits<_Al> _ATraits;\n    typedef pointer_traits<typename _ATraits::pointer> _PTraits;\n\n    _Al __a(__data_.second());\n    __data_.second().~_Alloc();\n    __a.deallocate(_PTraits::pointer_to(*this), 1);\n}\n\ntemplate <class _Tp, class _Alloc>\nclass __shared_ptr_emplace\n    : public __shared_weak_count\n{\n    __compressed_pair<_Alloc, _Tp> __data_;\npublic:\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\n    _LIBCPP_INLINE_VISIBILITY\n    __shared_ptr_emplace(_Alloc __a)\n        :  __data_(_VSTD::move(__a)) {}\n\n    template <class ..._Args>\n        _LIBCPP_INLINE_VISIBILITY\n        __shared_ptr_emplace(_Alloc __a, _Args&& ...__args)\n            :  __data_(piecewise_construct, _VSTD::forward_as_tuple(__a),\n                   _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...)) {}\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\n    _LIBCPP_INLINE_VISIBILITY\n    __shared_ptr_emplace(_Alloc __a)\n        :  __data_(__a) {}\n\n    template <class _A0>\n        _LIBCPP_INLINE_VISIBILITY\n        __shared_ptr_emplace(_Alloc __a, _A0& __a0)\n            :  __data_(__a, _Tp(__a0)) {}\n\n    template <class _A0, class _A1>\n        _LIBCPP_INLINE_VISIBILITY\n        __shared_ptr_emplace(_Alloc __a, _A0& __a0, _A1& __a1)\n            :  __data_(__a, _Tp(__a0, __a1)) {}\n\n    template <class _A0, class _A1, class _A2>\n        _LIBCPP_INLINE_VISIBILITY\n        __shared_ptr_emplace(_Alloc __a, _A0& __a0, _A1& __a1, _A2& __a2)\n            :  __data_(__a, _Tp(__a0, __a1, __a2)) {}\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\nprivate:\n    virtual void __on_zero_shared() _NOEXCEPT;\n    virtual void __on_zero_shared_weak() _NOEXCEPT;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp* get() _NOEXCEPT {return &__data_.second();}\n};\n\ntemplate <class _Tp, class _Alloc>\nvoid\n__shared_ptr_emplace<_Tp, _Alloc>::__on_zero_shared() _NOEXCEPT\n{\n    __data_.second().~_Tp();\n}\n\ntemplate <class _Tp, class _Alloc>\nvoid\n__shared_ptr_emplace<_Tp, _Alloc>::__on_zero_shared_weak() _NOEXCEPT\n{\n    typedef typename __allocator_traits_rebind<_Alloc, __shared_ptr_emplace>::type _Al;\n    typedef allocator_traits<_Al> _ATraits;\n    typedef pointer_traits<typename _ATraits::pointer> _PTraits;\n    _Al __a(__data_.first());\n    __data_.first().~_Alloc();\n    __a.deallocate(_PTraits::pointer_to(*this), 1);\n}\n\nstruct __shared_ptr_dummy_rebind_allocator_type;\ntemplate <>\nclass _LIBCPP_TEMPLATE_VIS allocator<__shared_ptr_dummy_rebind_allocator_type>\n{\npublic:\n    template <class _Other>\n    struct rebind\n    {\n        typedef allocator<_Other> other;\n    };\n};\n\ntemplate<class _Tp> class _LIBCPP_TEMPLATE_VIS enable_shared_from_this;\n\ntemplate<class _Tp>\nclass _LIBCPP_TEMPLATE_VIS shared_ptr\n{\npublic:\n    typedef _Tp element_type;\n\n#if _LIBCPP_STD_VER > 14\n    typedef weak_ptr<_Tp> weak_type;\n#endif\nprivate:\n    element_type*      __ptr_;\n    __shared_weak_count* __cntrl_;\n\n    struct __nat {int __for_bool_;};\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR shared_ptr() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR shared_ptr(nullptr_t) _NOEXCEPT;\n    template<class _Yp>\n        explicit shared_ptr(_Yp* __p,\n                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());\n    template<class _Yp, class _Dp>\n        shared_ptr(_Yp* __p, _Dp __d,\n                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());\n    template<class _Yp, class _Dp, class _Alloc>\n        shared_ptr(_Yp* __p, _Dp __d, _Alloc __a,\n                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());\n    template <class _Dp> shared_ptr(nullptr_t __p, _Dp __d);\n    template <class _Dp, class _Alloc> shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a);\n    template<class _Yp> _LIBCPP_INLINE_VISIBILITY shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    shared_ptr(const shared_ptr& __r) _NOEXCEPT;\n    template<class _Yp>\n        _LIBCPP_INLINE_VISIBILITY\n        shared_ptr(const shared_ptr<_Yp>& __r,\n                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat())\n                       _NOEXCEPT;\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    shared_ptr(shared_ptr&& __r) _NOEXCEPT;\n    template<class _Yp> _LIBCPP_INLINE_VISIBILITY  shared_ptr(shared_ptr<_Yp>&& __r,\n                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat())\n                       _NOEXCEPT;\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    template<class _Yp> explicit shared_ptr(const weak_ptr<_Yp>& __r,\n                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type= __nat());\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    template<class _Yp>\n        shared_ptr(auto_ptr<_Yp>&& __r,\n                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());\n#else\n    template<class _Yp>\n        shared_ptr(auto_ptr<_Yp> __r,\n                   typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type = __nat());\n#endif\n#endif\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    template <class _Yp, class _Dp>\n        shared_ptr(unique_ptr<_Yp, _Dp>&&,\n                   typename enable_if\n                   <\n                       !is_lvalue_reference<_Dp>::value &&\n                       !is_array<_Yp>::value &&\n                       is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,\n                       __nat\n                   >::type = __nat());\n    template <class _Yp, class _Dp>\n        shared_ptr(unique_ptr<_Yp, _Dp>&&,\n                   typename enable_if\n                   <\n                       is_lvalue_reference<_Dp>::value &&\n                       !is_array<_Yp>::value &&\n                       is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,\n                       __nat\n                   >::type = __nat());\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    template <class _Yp, class _Dp>\n        shared_ptr(unique_ptr<_Yp, _Dp>,\n                   typename enable_if\n                   <\n                       !is_lvalue_reference<_Dp>::value &&\n                       !is_array<_Yp>::value &&\n                       is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,\n                       __nat\n                   >::type = __nat());\n    template <class _Yp, class _Dp>\n        shared_ptr(unique_ptr<_Yp, _Dp>,\n                   typename enable_if\n                   <\n                       is_lvalue_reference<_Dp>::value &&\n                       !is_array<_Yp>::value &&\n                       is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,\n                       __nat\n                   >::type = __nat());\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n    ~shared_ptr();\n\n    _LIBCPP_INLINE_VISIBILITY\n    shared_ptr& operator=(const shared_ptr& __r) _NOEXCEPT;\n    template<class _Yp>\n        typename enable_if\n        <\n            is_convertible<_Yp*, element_type*>::value,\n            shared_ptr&\n        >::type\n        _LIBCPP_INLINE_VISIBILITY\n        operator=(const shared_ptr<_Yp>& __r) _NOEXCEPT;\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    shared_ptr& operator=(shared_ptr&& __r) _NOEXCEPT;\n    template<class _Yp>\n        typename enable_if\n        <\n            is_convertible<_Yp*, element_type*>::value,\n            shared_ptr<_Tp>&\n        >::type\n        _LIBCPP_INLINE_VISIBILITY\n        operator=(shared_ptr<_Yp>&& __r);\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\n    template<class _Yp>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            !is_array<_Yp>::value &&\n            is_convertible<_Yp*, element_type*>::value,\n            shared_ptr\n        >::type&\n        operator=(auto_ptr<_Yp>&& __r);\n#endif\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\n    template<class _Yp>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            !is_array<_Yp>::value &&\n            is_convertible<_Yp*, element_type*>::value,\n            shared_ptr&\n        >::type\n        operator=(auto_ptr<_Yp> __r);\n#endif\n#endif\n    template <class _Yp, class _Dp>\n        typename enable_if\n        <\n            !is_array<_Yp>::value &&\n            is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,\n            shared_ptr&\n        >::type\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n        _LIBCPP_INLINE_VISIBILITY\n        operator=(unique_ptr<_Yp, _Dp>&& __r);\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n        _LIBCPP_INLINE_VISIBILITY\n        operator=(unique_ptr<_Yp, _Dp> __r);\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(shared_ptr& __r) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() _NOEXCEPT;\n    template<class _Yp>\n        typename enable_if\n        <\n            is_convertible<_Yp*, element_type*>::value,\n            void\n        >::type\n        _LIBCPP_INLINE_VISIBILITY\n        reset(_Yp* __p);\n    template<class _Yp, class _Dp>\n        typename enable_if\n        <\n            is_convertible<_Yp*, element_type*>::value,\n            void\n        >::type\n        _LIBCPP_INLINE_VISIBILITY\n        reset(_Yp* __p, _Dp __d);\n    template<class _Yp, class _Dp, class _Alloc>\n        typename enable_if\n        <\n            is_convertible<_Yp*, element_type*>::value,\n            void\n        >::type\n        _LIBCPP_INLINE_VISIBILITY\n        reset(_Yp* __p, _Dp __d, _Alloc __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    element_type* get() const _NOEXCEPT {return __ptr_;}\n    _LIBCPP_INLINE_VISIBILITY\n    typename add_lvalue_reference<element_type>::type operator*() const _NOEXCEPT\n        {return *__ptr_;}\n    _LIBCPP_INLINE_VISIBILITY\n    element_type* operator->() const _NOEXCEPT {return __ptr_;}\n    _LIBCPP_INLINE_VISIBILITY\n    long use_count() const _NOEXCEPT {return __cntrl_ ? __cntrl_->use_count() : 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool unique() const _NOEXCEPT {return use_count() == 1;}\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_EXPLICIT operator bool() const _NOEXCEPT {return get() != 0;}\n    template <class _Up>\n        _LIBCPP_INLINE_VISIBILITY\n        bool owner_before(shared_ptr<_Up> const& __p) const _NOEXCEPT\n        {return __cntrl_ < __p.__cntrl_;}\n    template <class _Up>\n        _LIBCPP_INLINE_VISIBILITY\n        bool owner_before(weak_ptr<_Up> const& __p) const _NOEXCEPT\n        {return __cntrl_ < __p.__cntrl_;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool\n    __owner_equivalent(const shared_ptr& __p) const\n        {return __cntrl_ == __p.__cntrl_;}\n\n#ifndef _LIBCPP_NO_RTTI\n    template <class _Dp>\n        _LIBCPP_INLINE_VISIBILITY\n        _Dp* __get_deleter() const _NOEXCEPT\n            {return static_cast<_Dp*>(__cntrl_\n                    ? const_cast<void *>(__cntrl_->__get_deleter(typeid(_Dp))) \n                      : nullptr);}\n#endif  // _LIBCPP_NO_RTTI\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\n    template<class ..._Args>\n        static\n        shared_ptr<_Tp>\n        make_shared(_Args&& ...__args);\n\n    template<class _Alloc, class ..._Args>\n        static\n        shared_ptr<_Tp>\n        allocate_shared(const _Alloc& __a, _Args&& ...__args);\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\n    static shared_ptr<_Tp> make_shared();\n\n    template<class _A0>\n        static shared_ptr<_Tp> make_shared(_A0&);\n\n    template<class _A0, class _A1>\n        static shared_ptr<_Tp> make_shared(_A0&, _A1&);\n\n    template<class _A0, class _A1, class _A2>\n        static shared_ptr<_Tp> make_shared(_A0&, _A1&, _A2&);\n\n    template<class _Alloc>\n        static shared_ptr<_Tp>\n        allocate_shared(const _Alloc& __a);\n\n    template<class _Alloc, class _A0>\n        static shared_ptr<_Tp>\n        allocate_shared(const _Alloc& __a, _A0& __a0);\n\n    template<class _Alloc, class _A0, class _A1>\n        static shared_ptr<_Tp>\n        allocate_shared(const _Alloc& __a, _A0& __a0, _A1& __a1);\n\n    template<class _Alloc, class _A0, class _A1, class _A2>\n        static shared_ptr<_Tp>\n        allocate_shared(const _Alloc& __a, _A0& __a0, _A1& __a1, _A2& __a2);\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\nprivate:\n    template <class _Yp, bool = is_function<_Yp>::value>\n        struct __shared_ptr_default_allocator\n        {\n            typedef allocator<_Yp> type;\n        };\n\n    template <class _Yp>\n        struct __shared_ptr_default_allocator<_Yp, true>\n        {\n            typedef allocator<__shared_ptr_dummy_rebind_allocator_type> type;\n        };\n\n    template <class _Yp, class _OrigPtr>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if<is_convertible<_OrigPtr*,\n                                          const enable_shared_from_this<_Yp>*\n        >::value,\n            void>::type\n        __enable_weak_this(const enable_shared_from_this<_Yp>* __e,\n                           _OrigPtr* __ptr) _NOEXCEPT\n        {\n            typedef typename remove_cv<_Yp>::type _RawYp;\n            if (__e && __e->__weak_this_.expired())\n            {\n                __e->__weak_this_ = shared_ptr<_RawYp>(*this,\n                    const_cast<_RawYp*>(static_cast<const _Yp*>(__ptr)));\n            }\n        }\n\n    _LIBCPP_INLINE_VISIBILITY void __enable_weak_this(...) _NOEXCEPT {}\n\n    template <class _Up> friend class _LIBCPP_TEMPLATE_VIS shared_ptr;\n    template <class _Up> friend class _LIBCPP_TEMPLATE_VIS weak_ptr;\n};\n\n\ntemplate<class _Tp>\ninline\n_LIBCPP_CONSTEXPR\nshared_ptr<_Tp>::shared_ptr() _NOEXCEPT\n    : __ptr_(0),\n      __cntrl_(0)\n{\n}\n\ntemplate<class _Tp>\ninline\n_LIBCPP_CONSTEXPR\nshared_ptr<_Tp>::shared_ptr(nullptr_t) _NOEXCEPT\n    : __ptr_(0),\n      __cntrl_(0)\n{\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\nshared_ptr<_Tp>::shared_ptr(_Yp* __p,\n                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)\n    : __ptr_(__p)\n{\n    unique_ptr<_Yp> __hold(__p);\n    typedef typename __shared_ptr_default_allocator<_Yp>::type _AllocT;\n    typedef __shared_ptr_pointer<_Yp*, default_delete<_Yp>, _AllocT > _CntrlBlk;\n    __cntrl_ = new _CntrlBlk(__p, default_delete<_Yp>(), _AllocT());\n    __hold.release();\n    __enable_weak_this(__p, __p);\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp, class _Dp>\nshared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d,\n                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)\n    : __ptr_(__p)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typedef typename __shared_ptr_default_allocator<_Yp>::type _AllocT;\n        typedef __shared_ptr_pointer<_Yp*, _Dp, _AllocT > _CntrlBlk;\n        __cntrl_ = new _CntrlBlk(__p, __d, _AllocT());\n        __enable_weak_this(__p, __p);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __d(__p);\n        throw;\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate<class _Tp>\ntemplate<class _Dp>\nshared_ptr<_Tp>::shared_ptr(nullptr_t __p, _Dp __d)\n    : __ptr_(0)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typedef typename __shared_ptr_default_allocator<_Tp>::type _AllocT;\n        typedef __shared_ptr_pointer<nullptr_t, _Dp, _AllocT > _CntrlBlk;\n        __cntrl_ = new _CntrlBlk(__p, __d, _AllocT());\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __d(__p);\n        throw;\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp, class _Dp, class _Alloc>\nshared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d, _Alloc __a,\n                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)\n    : __ptr_(__p)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typedef __shared_ptr_pointer<_Yp*, _Dp, _Alloc> _CntrlBlk;\n        typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _A2;\n        typedef __allocator_destructor<_A2> _D2;\n        _A2 __a2(__a);\n        unique_ptr<_CntrlBlk, _D2> __hold2(__a2.allocate(1), _D2(__a2, 1));\n        ::new(static_cast<void*>(_VSTD::addressof(*__hold2.get())))\n            _CntrlBlk(__p, __d, __a);\n        __cntrl_ = _VSTD::addressof(*__hold2.release());\n        __enable_weak_this(__p, __p);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __d(__p);\n        throw;\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate<class _Tp>\ntemplate<class _Dp, class _Alloc>\nshared_ptr<_Tp>::shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a)\n    : __ptr_(0)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typedef __shared_ptr_pointer<nullptr_t, _Dp, _Alloc> _CntrlBlk;\n        typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _A2;\n        typedef __allocator_destructor<_A2> _D2;\n        _A2 __a2(__a);\n        unique_ptr<_CntrlBlk, _D2> __hold2(__a2.allocate(1), _D2(__a2, 1));\n        ::new(static_cast<void*>(_VSTD::addressof(*__hold2.get())))\n            _CntrlBlk(__p, __d, __a);\n        __cntrl_ = _VSTD::addressof(*__hold2.release());\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __d(__p);\n        throw;\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\nshared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r, element_type *__p) _NOEXCEPT\n    : __ptr_(__p),\n      __cntrl_(__r.__cntrl_)\n{\n    if (__cntrl_)\n        __cntrl_->__add_shared();\n}\n\ntemplate<class _Tp>\ninline\nshared_ptr<_Tp>::shared_ptr(const shared_ptr& __r) _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    if (__cntrl_)\n        __cntrl_->__add_shared();\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\nshared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r,\n                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)\n         _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    if (__cntrl_)\n        __cntrl_->__add_shared();\n}\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate<class _Tp>\ninline\nshared_ptr<_Tp>::shared_ptr(shared_ptr&& __r) _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    __r.__ptr_ = 0;\n    __r.__cntrl_ = 0;\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\nshared_ptr<_Tp>::shared_ptr(shared_ptr<_Yp>&& __r,\n                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)\n         _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    __r.__ptr_ = 0;\n    __r.__cntrl_ = 0;\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\ntemplate<class _Tp>\ntemplate<class _Yp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\nshared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp>&& __r,\n#else\nshared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp> __r,\n#endif\n                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)\n    : __ptr_(__r.get())\n{\n    typedef __shared_ptr_pointer<_Yp*, default_delete<_Yp>, allocator<_Yp> > _CntrlBlk;\n    __cntrl_ = new _CntrlBlk(__r.get(), default_delete<_Yp>(), allocator<_Yp>());\n    __enable_weak_this(__r.get(), __r.get());\n    __r.release();\n}\n#endif\n\ntemplate<class _Tp>\ntemplate <class _Yp, class _Dp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\nshared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp>&& __r,\n#else\nshared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp> __r,\n#endif\n                            typename enable_if\n                            <\n                                !is_lvalue_reference<_Dp>::value &&\n                                !is_array<_Yp>::value &&\n                                is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,\n                                __nat\n                            >::type)\n    : __ptr_(__r.get())\n{\n#if _LIBCPP_STD_VER > 11\n    if (__ptr_ == nullptr)\n        __cntrl_ = nullptr;\n    else\n#endif\n    {\n        typedef typename __shared_ptr_default_allocator<_Yp>::type _AllocT;\n        typedef __shared_ptr_pointer<_Yp*, _Dp, _AllocT > _CntrlBlk;\n        __cntrl_ = new _CntrlBlk(__r.get(), __r.get_deleter(), _AllocT());\n        __enable_weak_this(__r.get(), __r.get());\n    }\n    __r.release();\n}\n\ntemplate<class _Tp>\ntemplate <class _Yp, class _Dp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\nshared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp>&& __r,\n#else\nshared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp> __r,\n#endif\n                            typename enable_if\n                            <\n                                is_lvalue_reference<_Dp>::value &&\n                                !is_array<_Yp>::value &&\n                                is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, element_type*>::value,\n                                __nat\n                            >::type)\n    : __ptr_(__r.get())\n{\n#if _LIBCPP_STD_VER > 11\n    if (__ptr_ == nullptr)\n        __cntrl_ = nullptr;\n    else\n#endif\n    {\n        typedef typename __shared_ptr_default_allocator<_Yp>::type _AllocT;\n        typedef __shared_ptr_pointer<_Yp*,\n                                     reference_wrapper<typename remove_reference<_Dp>::type>,\n                                     _AllocT > _CntrlBlk;\n        __cntrl_ = new _CntrlBlk(__r.get(), ref(__r.get_deleter()), _AllocT());\n        __enable_weak_this(__r.get(), __r.get());\n    }\n    __r.release();\n}\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate<class _Tp>\ntemplate<class ..._Args>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::make_shared(_Args&& ...__args)\n{\n    typedef __shared_ptr_emplace<_Tp, allocator<_Tp> > _CntrlBlk;\n    typedef allocator<_CntrlBlk> _A2;\n    typedef __allocator_destructor<_A2> _D2;\n    _A2 __a2;\n    unique_ptr<_CntrlBlk, _D2> __hold2(__a2.allocate(1), _D2(__a2, 1));\n    ::new(__hold2.get()) _CntrlBlk(__a2, _VSTD::forward<_Args>(__args)...);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = __hold2.release();\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\ntemplate<class _Tp>\ntemplate<class _Alloc, class ..._Args>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args)\n{\n    typedef __shared_ptr_emplace<_Tp, _Alloc> _CntrlBlk;\n    typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _A2;\n    typedef __allocator_destructor<_A2> _D2;\n    _A2 __a2(__a);\n    unique_ptr<_CntrlBlk, _D2> __hold2(__a2.allocate(1), _D2(__a2, 1));\n    ::new(static_cast<void*>(_VSTD::addressof(*__hold2.get())))\n        _CntrlBlk(__a, _VSTD::forward<_Args>(__args)...);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = _VSTD::addressof(*__hold2.release());\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate<class _Tp>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::make_shared()\n{\n    typedef __shared_ptr_emplace<_Tp, allocator<_Tp> > _CntrlBlk;\n    typedef allocator<_CntrlBlk> _Alloc2;\n    typedef __allocator_destructor<_Alloc2> _D2;\n    _Alloc2 __alloc2;\n    unique_ptr<_CntrlBlk, _D2> __hold2(__alloc2.allocate(1), _D2(__alloc2, 1));\n    ::new(__hold2.get()) _CntrlBlk(__alloc2);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = __hold2.release();\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\ntemplate<class _Tp>\ntemplate<class _A0>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::make_shared(_A0& __a0)\n{\n    typedef __shared_ptr_emplace<_Tp, allocator<_Tp> > _CntrlBlk;\n    typedef allocator<_CntrlBlk> _Alloc2;\n    typedef __allocator_destructor<_Alloc2> _D2;\n    _Alloc2 __alloc2;\n    unique_ptr<_CntrlBlk, _D2> __hold2(__alloc2.allocate(1), _D2(__alloc2, 1));\n    ::new(__hold2.get()) _CntrlBlk(__alloc2, __a0);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = __hold2.release();\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\ntemplate<class _Tp>\ntemplate<class _A0, class _A1>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::make_shared(_A0& __a0, _A1& __a1)\n{\n    typedef __shared_ptr_emplace<_Tp, allocator<_Tp> > _CntrlBlk;\n    typedef allocator<_CntrlBlk> _Alloc2;\n    typedef __allocator_destructor<_Alloc2> _D2;\n    _Alloc2 __alloc2;\n    unique_ptr<_CntrlBlk, _D2> __hold2(__alloc2.allocate(1), _D2(__alloc2, 1));\n    ::new(__hold2.get()) _CntrlBlk(__alloc2, __a0, __a1);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = __hold2.release();\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\ntemplate<class _Tp>\ntemplate<class _A0, class _A1, class _A2>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::make_shared(_A0& __a0, _A1& __a1, _A2& __a2)\n{\n    typedef __shared_ptr_emplace<_Tp, allocator<_Tp> > _CntrlBlk;\n    typedef allocator<_CntrlBlk> _Alloc2;\n    typedef __allocator_destructor<_Alloc2> _D2;\n    _Alloc2 __alloc2;\n    unique_ptr<_CntrlBlk, _D2> __hold2(__alloc2.allocate(1), _D2(__alloc2, 1));\n    ::new(__hold2.get()) _CntrlBlk(__alloc2, __a0, __a1, __a2);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = __hold2.release();\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\ntemplate<class _Tp>\ntemplate<class _Alloc>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::allocate_shared(const _Alloc& __a)\n{\n    typedef __shared_ptr_emplace<_Tp, _Alloc> _CntrlBlk;\n    typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _Alloc2;\n    typedef __allocator_destructor<_Alloc2> _D2;\n    _Alloc2 __alloc2(__a);\n    unique_ptr<_CntrlBlk, _D2> __hold2(__alloc2.allocate(1), _D2(__alloc2, 1));\n    ::new(static_cast<void*>(_VSTD::addressof(*__hold2.get())))\n        _CntrlBlk(__a);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = _VSTD::addressof(*__hold2.release());\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\ntemplate<class _Tp>\ntemplate<class _Alloc, class _A0>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _A0& __a0)\n{\n    typedef __shared_ptr_emplace<_Tp, _Alloc> _CntrlBlk;\n    typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _Alloc2;\n    typedef __allocator_destructor<_Alloc2> _D2;\n    _Alloc2 __alloc2(__a);\n    unique_ptr<_CntrlBlk, _D2> __hold2(__alloc2.allocate(1), _D2(__alloc2, 1));\n    ::new(static_cast<void*>(_VSTD::addressof(*__hold2.get())))\n        _CntrlBlk(__a, __a0);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = _VSTD::addressof(*__hold2.release());\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\ntemplate<class _Tp>\ntemplate<class _Alloc, class _A0, class _A1>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _A0& __a0, _A1& __a1)\n{\n    typedef __shared_ptr_emplace<_Tp, _Alloc> _CntrlBlk;\n    typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _Alloc2;\n    typedef __allocator_destructor<_Alloc2> _D2;\n    _Alloc2 __alloc2(__a);\n    unique_ptr<_CntrlBlk, _D2> __hold2(__alloc2.allocate(1), _D2(__alloc2, 1));\n    ::new(static_cast<void*>(_VSTD::addressof(*__hold2.get())))\n        _CntrlBlk(__a, __a0, __a1);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = _VSTD::addressof(*__hold2.release());\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\ntemplate<class _Tp>\ntemplate<class _Alloc, class _A0, class _A1, class _A2>\nshared_ptr<_Tp>\nshared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _A0& __a0, _A1& __a1, _A2& __a2)\n{\n    typedef __shared_ptr_emplace<_Tp, _Alloc> _CntrlBlk;\n    typedef typename __allocator_traits_rebind<_Alloc, _CntrlBlk>::type _Alloc2;\n    typedef __allocator_destructor<_Alloc2> _D2;\n    _Alloc2 __alloc2(__a);\n    unique_ptr<_CntrlBlk, _D2> __hold2(__alloc2.allocate(1), _D2(__alloc2, 1));\n    ::new(static_cast<void*>(_VSTD::addressof(*__hold2.get())))\n        _CntrlBlk(__a, __a0, __a1, __a2);\n    shared_ptr<_Tp> __r;\n    __r.__ptr_ = __hold2.get()->get();\n    __r.__cntrl_ = _VSTD::addressof(*__hold2.release());\n    __r.__enable_weak_this(__r.__ptr_, __r.__ptr_);\n    return __r;\n}\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate<class _Tp>\nshared_ptr<_Tp>::~shared_ptr()\n{\n    if (__cntrl_)\n        __cntrl_->__release_shared();\n}\n\ntemplate<class _Tp>\ninline\nshared_ptr<_Tp>&\nshared_ptr<_Tp>::operator=(const shared_ptr& __r) _NOEXCEPT\n{\n    shared_ptr(__r).swap(*this);\n    return *this;\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\ntypename enable_if\n<\n    is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,\n    shared_ptr<_Tp>&\n>::type\nshared_ptr<_Tp>::operator=(const shared_ptr<_Yp>& __r) _NOEXCEPT\n{\n    shared_ptr(__r).swap(*this);\n    return *this;\n}\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate<class _Tp>\ninline\nshared_ptr<_Tp>&\nshared_ptr<_Tp>::operator=(shared_ptr&& __r) _NOEXCEPT\n{\n    shared_ptr(_VSTD::move(__r)).swap(*this);\n    return *this;\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\ntypename enable_if\n<\n    is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,\n    shared_ptr<_Tp>&\n>::type\nshared_ptr<_Tp>::operator=(shared_ptr<_Yp>&& __r)\n{\n    shared_ptr(_VSTD::move(__r)).swap(*this);\n    return *this;\n}\n\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\ntypename enable_if\n<\n    !is_array<_Yp>::value &&\n    is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,\n    shared_ptr<_Tp>\n>::type&\nshared_ptr<_Tp>::operator=(auto_ptr<_Yp>&& __r)\n{\n    shared_ptr(_VSTD::move(__r)).swap(*this);\n    return *this;\n}\n#endif\n\ntemplate<class _Tp>\ntemplate <class _Yp, class _Dp>\ninline\ntypename enable_if\n<\n    !is_array<_Yp>::value &&\n    is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, \n                   typename shared_ptr<_Tp>::element_type*>::value,\n    shared_ptr<_Tp>&\n>::type\nshared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp>&& __r)\n{\n    shared_ptr(_VSTD::move(__r)).swap(*this);\n    return *this;\n}\n\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    !is_array<_Yp>::value &&\n    is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,\n    shared_ptr<_Tp>&\n>::type\nshared_ptr<_Tp>::operator=(auto_ptr<_Yp> __r)\n{\n    shared_ptr(__r).swap(*this);\n    return *this;\n}\n#endif\n\ntemplate<class _Tp>\ntemplate <class _Yp, class _Dp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    !is_array<_Yp>::value &&\n    is_convertible<typename unique_ptr<_Yp, _Dp>::pointer, \n                   typename shared_ptr<_Tp>::element_type*>::value,\n    shared_ptr<_Tp>&\n>::type\nshared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp> __r)\n{\n    shared_ptr(_VSTD::move(__r)).swap(*this);\n    return *this;\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate<class _Tp>\ninline\nvoid\nshared_ptr<_Tp>::swap(shared_ptr& __r) _NOEXCEPT\n{\n    _VSTD::swap(__ptr_, __r.__ptr_);\n    _VSTD::swap(__cntrl_, __r.__cntrl_);\n}\n\ntemplate<class _Tp>\ninline\nvoid\nshared_ptr<_Tp>::reset() _NOEXCEPT\n{\n    shared_ptr().swap(*this);\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\ntypename enable_if\n<\n    is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,\n    void\n>::type\nshared_ptr<_Tp>::reset(_Yp* __p)\n{\n    shared_ptr(__p).swap(*this);\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp, class _Dp>\ninline\ntypename enable_if\n<\n    is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,\n    void\n>::type\nshared_ptr<_Tp>::reset(_Yp* __p, _Dp __d)\n{\n    shared_ptr(__p, __d).swap(*this);\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp, class _Dp, class _Alloc>\ninline\ntypename enable_if\n<\n    is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,\n    void\n>::type\nshared_ptr<_Tp>::reset(_Yp* __p, _Dp __d, _Alloc __a)\n{\n    shared_ptr(__p, __d, __a).swap(*this);\n}\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate<class _Tp, class ..._Args>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    !is_array<_Tp>::value,\n    shared_ptr<_Tp>\n>::type\nmake_shared(_Args&& ...__args)\n{\n    return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);\n}\n\ntemplate<class _Tp, class _Alloc, class ..._Args>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    !is_array<_Tp>::value,\n    shared_ptr<_Tp>\n>::type\nallocate_shared(const _Alloc& __a, _Args&& ...__args)\n{\n    return shared_ptr<_Tp>::allocate_shared(__a, _VSTD::forward<_Args>(__args)...);\n}\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nshared_ptr<_Tp>\nmake_shared()\n{\n    return shared_ptr<_Tp>::make_shared();\n}\n\ntemplate<class _Tp, class _A0>\ninline _LIBCPP_INLINE_VISIBILITY\nshared_ptr<_Tp>\nmake_shared(_A0& __a0)\n{\n    return shared_ptr<_Tp>::make_shared(__a0);\n}\n\ntemplate<class _Tp, class _A0, class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\nshared_ptr<_Tp>\nmake_shared(_A0& __a0, _A1& __a1)\n{\n    return shared_ptr<_Tp>::make_shared(__a0, __a1);\n}\n\ntemplate<class _Tp, class _A0, class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\nshared_ptr<_Tp>\nmake_shared(_A0& __a0, _A1& __a1, _A2& __a2)\n{\n    return shared_ptr<_Tp>::make_shared(__a0, __a1, __a2);\n}\n\ntemplate<class _Tp, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nshared_ptr<_Tp>\nallocate_shared(const _Alloc& __a)\n{\n    return shared_ptr<_Tp>::allocate_shared(__a);\n}\n\ntemplate<class _Tp, class _Alloc, class _A0>\ninline _LIBCPP_INLINE_VISIBILITY\nshared_ptr<_Tp>\nallocate_shared(const _Alloc& __a, _A0& __a0)\n{\n    return shared_ptr<_Tp>::allocate_shared(__a, __a0);\n}\n\ntemplate<class _Tp, class _Alloc, class _A0, class _A1>\ninline _LIBCPP_INLINE_VISIBILITY\nshared_ptr<_Tp>\nallocate_shared(const _Alloc& __a, _A0& __a0, _A1& __a1)\n{\n    return shared_ptr<_Tp>::allocate_shared(__a, __a0, __a1);\n}\n\ntemplate<class _Tp, class _Alloc, class _A0, class _A1, class _A2>\ninline _LIBCPP_INLINE_VISIBILITY\nshared_ptr<_Tp>\nallocate_shared(const _Alloc& __a, _A0& __a0, _A1& __a1, _A2& __a2)\n{\n    return shared_ptr<_Tp>::allocate_shared(__a, __a0, __a1, __a2);\n}\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT\n{\n    return __x.get() == __y.get();\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT\n{\n    return !(__x == __y);\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT\n{\n    typedef typename common_type<_Tp*, _Up*>::type _Vp;\n    return less<_Vp>()(__x.get(), __y.get());\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT\n{\n    return __y < __x;\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT\n{\n    return !(__y < __x);\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT\n{\n    return !(__x < __y);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT\n{\n    return !__x;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT\n{\n    return !__x;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT\n{\n    return static_cast<bool>(__x);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT\n{\n    return static_cast<bool>(__x);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT\n{\n    return less<_Tp*>()(__x.get(), nullptr);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT\n{\n    return less<_Tp*>()(nullptr, __x.get());\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT\n{\n    return nullptr < __x;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT\n{\n    return __x < nullptr;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT\n{\n    return !(nullptr < __x);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT\n{\n    return !(__x < nullptr);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT\n{\n    return !(__x < nullptr);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT\n{\n    return !(nullptr < __x);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(shared_ptr<_Tp>& __x, shared_ptr<_Tp>& __y) _NOEXCEPT\n{\n    __x.swap(__y);\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    !is_array<_Tp>::value && !is_array<_Up>::value,\n    shared_ptr<_Tp>\n>::type\nstatic_pointer_cast(const shared_ptr<_Up>& __r) _NOEXCEPT\n{\n    return shared_ptr<_Tp>(__r, static_cast<_Tp*>(__r.get()));\n}\n\ntemplate<class _Tp, class _Up>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    !is_array<_Tp>::value && !is_array<_Up>::value,\n    shared_ptr<_Tp>\n>::type\ndynamic_pointer_cast(const shared_ptr<_Up>& __r) _NOEXCEPT\n{\n    _Tp* __p = dynamic_cast<_Tp*>(__r.get());\n    return __p ? shared_ptr<_Tp>(__r, __p) : shared_ptr<_Tp>();\n}\n\ntemplate<class _Tp, class _Up>\ntypename enable_if\n<\n    is_array<_Tp>::value == is_array<_Up>::value,\n    shared_ptr<_Tp>\n>::type\nconst_pointer_cast(const shared_ptr<_Up>& __r) _NOEXCEPT\n{\n    typedef typename remove_extent<_Tp>::type _RTp;\n    return shared_ptr<_Tp>(__r, const_cast<_RTp*>(__r.get()));\n}\n\n#ifndef _LIBCPP_NO_RTTI\n\ntemplate<class _Dp, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Dp*\nget_deleter(const shared_ptr<_Tp>& __p) _NOEXCEPT\n{\n    return __p.template __get_deleter<_Dp>();\n}\n\n#endif  // _LIBCPP_NO_RTTI\n\ntemplate<class _Tp>\nclass _LIBCPP_TEMPLATE_VIS weak_ptr\n{\npublic:\n    typedef _Tp element_type;\nprivate:\n    element_type*        __ptr_;\n    __shared_weak_count* __cntrl_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR weak_ptr() _NOEXCEPT;\n    template<class _Yp> _LIBCPP_INLINE_VISIBILITY weak_ptr(shared_ptr<_Yp> const& __r,\n                   typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)\n                        _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    weak_ptr(weak_ptr const& __r) _NOEXCEPT;\n    template<class _Yp> _LIBCPP_INLINE_VISIBILITY weak_ptr(weak_ptr<_Yp> const& __r,\n                   typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)\n                         _NOEXCEPT;\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    _LIBCPP_INLINE_VISIBILITY\n    weak_ptr(weak_ptr&& __r) _NOEXCEPT;\n    template<class _Yp> _LIBCPP_INLINE_VISIBILITY weak_ptr(weak_ptr<_Yp>&& __r,\n                   typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type = 0)\n                         _NOEXCEPT;\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    ~weak_ptr();\n\n    _LIBCPP_INLINE_VISIBILITY\n    weak_ptr& operator=(weak_ptr const& __r) _NOEXCEPT;\n    template<class _Yp>\n        typename enable_if\n        <\n            is_convertible<_Yp*, element_type*>::value,\n            weak_ptr&\n        >::type\n        _LIBCPP_INLINE_VISIBILITY\n        operator=(weak_ptr<_Yp> const& __r) _NOEXCEPT;\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n    _LIBCPP_INLINE_VISIBILITY\n    weak_ptr& operator=(weak_ptr&& __r) _NOEXCEPT;\n    template<class _Yp>\n        typename enable_if\n        <\n            is_convertible<_Yp*, element_type*>::value,\n            weak_ptr&\n        >::type\n        _LIBCPP_INLINE_VISIBILITY\n        operator=(weak_ptr<_Yp>&& __r) _NOEXCEPT;\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n    template<class _Yp>\n        typename enable_if\n        <\n            is_convertible<_Yp*, element_type*>::value,\n            weak_ptr&\n        >::type\n        _LIBCPP_INLINE_VISIBILITY\n        operator=(shared_ptr<_Yp> const& __r) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(weak_ptr& __r) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    long use_count() const _NOEXCEPT\n        {return __cntrl_ ? __cntrl_->use_count() : 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool expired() const _NOEXCEPT\n        {return __cntrl_ == 0 || __cntrl_->use_count() == 0;}\n    shared_ptr<_Tp> lock() const _NOEXCEPT;\n    template<class _Up>\n        _LIBCPP_INLINE_VISIBILITY\n        bool owner_before(const shared_ptr<_Up>& __r) const _NOEXCEPT\n        {return __cntrl_ < __r.__cntrl_;}\n    template<class _Up>\n        _LIBCPP_INLINE_VISIBILITY\n        bool owner_before(const weak_ptr<_Up>& __r) const _NOEXCEPT\n        {return __cntrl_ < __r.__cntrl_;}\n\n    template <class _Up> friend class _LIBCPP_TEMPLATE_VIS weak_ptr;\n    template <class _Up> friend class _LIBCPP_TEMPLATE_VIS shared_ptr;\n};\n\ntemplate<class _Tp>\ninline\n_LIBCPP_CONSTEXPR\nweak_ptr<_Tp>::weak_ptr() _NOEXCEPT\n    : __ptr_(0),\n      __cntrl_(0)\n{\n}\n\ntemplate<class _Tp>\ninline\nweak_ptr<_Tp>::weak_ptr(weak_ptr const& __r) _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    if (__cntrl_)\n        __cntrl_->__add_weak();\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\nweak_ptr<_Tp>::weak_ptr(shared_ptr<_Yp> const& __r,\n                        typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)\n                         _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    if (__cntrl_)\n        __cntrl_->__add_weak();\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\nweak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp> const& __r,\n                        typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)\n         _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    if (__cntrl_)\n        __cntrl_->__add_weak();\n}\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate<class _Tp>\ninline\nweak_ptr<_Tp>::weak_ptr(weak_ptr&& __r) _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    __r.__ptr_ = 0;\n    __r.__cntrl_ = 0;\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\nweak_ptr<_Tp>::weak_ptr(weak_ptr<_Yp>&& __r,\n                        typename enable_if<is_convertible<_Yp*, _Tp*>::value, __nat*>::type)\n         _NOEXCEPT\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_)\n{\n    __r.__ptr_ = 0;\n    __r.__cntrl_ = 0;\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate<class _Tp>\nweak_ptr<_Tp>::~weak_ptr()\n{\n    if (__cntrl_)\n        __cntrl_->__release_weak();\n}\n\ntemplate<class _Tp>\ninline\nweak_ptr<_Tp>&\nweak_ptr<_Tp>::operator=(weak_ptr const& __r) _NOEXCEPT\n{\n    weak_ptr(__r).swap(*this);\n    return *this;\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\ntypename enable_if\n<\n    is_convertible<_Yp*, _Tp*>::value,\n    weak_ptr<_Tp>&\n>::type\nweak_ptr<_Tp>::operator=(weak_ptr<_Yp> const& __r) _NOEXCEPT\n{\n    weak_ptr(__r).swap(*this);\n    return *this;\n}\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate<class _Tp>\ninline\nweak_ptr<_Tp>&\nweak_ptr<_Tp>::operator=(weak_ptr&& __r) _NOEXCEPT\n{\n    weak_ptr(_VSTD::move(__r)).swap(*this);\n    return *this;\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\ntypename enable_if\n<\n    is_convertible<_Yp*, _Tp*>::value,\n    weak_ptr<_Tp>&\n>::type\nweak_ptr<_Tp>::operator=(weak_ptr<_Yp>&& __r) _NOEXCEPT\n{\n    weak_ptr(_VSTD::move(__r)).swap(*this);\n    return *this;\n}\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate<class _Tp>\ntemplate<class _Yp>\ninline\ntypename enable_if\n<\n    is_convertible<_Yp*, _Tp*>::value,\n    weak_ptr<_Tp>&\n>::type\nweak_ptr<_Tp>::operator=(shared_ptr<_Yp> const& __r) _NOEXCEPT\n{\n    weak_ptr(__r).swap(*this);\n    return *this;\n}\n\ntemplate<class _Tp>\ninline\nvoid\nweak_ptr<_Tp>::swap(weak_ptr& __r) _NOEXCEPT\n{\n    _VSTD::swap(__ptr_, __r.__ptr_);\n    _VSTD::swap(__cntrl_, __r.__cntrl_);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(weak_ptr<_Tp>& __x, weak_ptr<_Tp>& __y) _NOEXCEPT\n{\n    __x.swap(__y);\n}\n\ntemplate<class _Tp>\ninline\nvoid\nweak_ptr<_Tp>::reset() _NOEXCEPT\n{\n    weak_ptr().swap(*this);\n}\n\ntemplate<class _Tp>\ntemplate<class _Yp>\nshared_ptr<_Tp>::shared_ptr(const weak_ptr<_Yp>& __r,\n                            typename enable_if<is_convertible<_Yp*, element_type*>::value, __nat>::type)\n    : __ptr_(__r.__ptr_),\n      __cntrl_(__r.__cntrl_ ? __r.__cntrl_->lock() : __r.__cntrl_)\n{\n    if (__cntrl_ == 0)\n        __throw_bad_weak_ptr();\n}\n\ntemplate<class _Tp>\nshared_ptr<_Tp>\nweak_ptr<_Tp>::lock() const _NOEXCEPT\n{\n    shared_ptr<_Tp> __r;\n    __r.__cntrl_ = __cntrl_ ? __cntrl_->lock() : __cntrl_;\n    if (__r.__cntrl_)\n        __r.__ptr_ = __ptr_;\n    return __r;\n}\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Tp = void> struct owner_less;\n#else\ntemplate <class _Tp> struct owner_less;\n#endif\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS owner_less<shared_ptr<_Tp> >\n    : binary_function<shared_ptr<_Tp>, shared_ptr<_Tp>, bool>\n{\n    typedef bool result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(shared_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(shared_ptr<_Tp> const& __x,   weak_ptr<_Tp> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(  weak_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS owner_less<weak_ptr<_Tp> >\n    : binary_function<weak_ptr<_Tp>, weak_ptr<_Tp>, bool>\n{\n    typedef bool result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(  weak_ptr<_Tp> const& __x,   weak_ptr<_Tp> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(shared_ptr<_Tp> const& __x,   weak_ptr<_Tp> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(  weak_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n};\n\n#if _LIBCPP_STD_VER > 14\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS owner_less<void>\n{\n    template <class _Tp, class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()( shared_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n    template <class _Tp, class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()( shared_ptr<_Tp> const& __x,   weak_ptr<_Up> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n    template <class _Tp, class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(   weak_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n    template <class _Tp, class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(   weak_ptr<_Tp> const& __x,   weak_ptr<_Up> const& __y) const _NOEXCEPT\n        {return __x.owner_before(__y);}\n    typedef void is_transparent;\n};\n#endif\n\ntemplate<class _Tp>\nclass _LIBCPP_TEMPLATE_VIS enable_shared_from_this\n{\n    mutable weak_ptr<_Tp> __weak_this_;\nprotected:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    enable_shared_from_this() _NOEXCEPT {}\n    _LIBCPP_INLINE_VISIBILITY\n    enable_shared_from_this(enable_shared_from_this const&) _NOEXCEPT {}\n    _LIBCPP_INLINE_VISIBILITY\n    enable_shared_from_this& operator=(enable_shared_from_this const&) _NOEXCEPT\n        {return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    ~enable_shared_from_this() {}\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    shared_ptr<_Tp> shared_from_this()\n        {return shared_ptr<_Tp>(__weak_this_);}\n    _LIBCPP_INLINE_VISIBILITY\n    shared_ptr<_Tp const> shared_from_this() const\n        {return shared_ptr<const _Tp>(__weak_this_);}\n\n#if _LIBCPP_STD_VER > 14\n    _LIBCPP_INLINE_VISIBILITY\n    weak_ptr<_Tp> weak_from_this() _NOEXCEPT\n       { return __weak_this_; }\n\n    _LIBCPP_INLINE_VISIBILITY\n    weak_ptr<const _Tp> weak_from_this() const _NOEXCEPT\n        { return __weak_this_; }\n#endif // _LIBCPP_STD_VER > 14\n\n    template <class _Up> friend class shared_ptr;\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS hash<shared_ptr<_Tp> >\n{\n    typedef shared_ptr<_Tp>      argument_type;\n    typedef size_t               result_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator()(const argument_type& __ptr) const _NOEXCEPT\n    {\n        return hash<_Tp*>()(__ptr.get());\n    }\n};\n\ntemplate<class _CharT, class _Traits, class _Yp>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Yp> const& __p);\n\n\n#if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)\n\nclass _LIBCPP_TYPE_VIS __sp_mut\n{\n    void* __lx;\npublic:\n    void lock() _NOEXCEPT;\n    void unlock() _NOEXCEPT;\n\nprivate:\n    _LIBCPP_CONSTEXPR __sp_mut(void*) _NOEXCEPT;\n    __sp_mut(const __sp_mut&);\n    __sp_mut& operator=(const __sp_mut&);\n\n    friend _LIBCPP_FUNC_VIS __sp_mut& __get_sp_mut(const void*);\n};\n\n_LIBCPP_FUNC_VIS _LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\n__sp_mut& __get_sp_mut(const void*);\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\natomic_is_lock_free(const shared_ptr<_Tp>*)\n{\n    return false;\n}\n\ntemplate <class _Tp>\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nshared_ptr<_Tp>\natomic_load(const shared_ptr<_Tp>* __p)\n{\n    __sp_mut& __m = __get_sp_mut(__p);\n    __m.lock();\n    shared_ptr<_Tp> __q = *__p;\n    __m.unlock();\n    return __q;\n}\n  \ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nshared_ptr<_Tp>\natomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order)\n{\n    return atomic_load(__p);\n}\n\ntemplate <class _Tp>\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nvoid\natomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r)\n{\n    __sp_mut& __m = __get_sp_mut(__p);\n    __m.lock();\n    __p->swap(__r);\n    __m.unlock();\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nvoid\natomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order)\n{\n    atomic_store(__p, __r);\n}\n\ntemplate <class _Tp>\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nshared_ptr<_Tp>\natomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r)\n{\n    __sp_mut& __m = __get_sp_mut(__p);\n    __m.lock();\n    __p->swap(__r);\n    __m.unlock();\n    return __r;\n}\n  \ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nshared_ptr<_Tp>\natomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order)\n{\n    return atomic_exchange(__p, __r);\n}\n\ntemplate <class _Tp>\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nbool\natomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w)\n{\n    shared_ptr<_Tp> __temp;\n    __sp_mut& __m = __get_sp_mut(__p);\n    __m.lock();\n    if (__p->__owner_equivalent(*__v))\n    {\n        _VSTD::swap(__temp, *__p);\n        *__p = __w;\n        __m.unlock();\n        return true;\n    }\n    _VSTD::swap(__temp, *__v);\n    *__v = *__p;\n    __m.unlock();\n    return false;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nbool\natomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w)\n{\n    return atomic_compare_exchange_strong(__p, __v, __w);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nbool\natomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v,\n                                        shared_ptr<_Tp> __w, memory_order, memory_order)\n{\n    return atomic_compare_exchange_strong(__p, __v, __w);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_AVAILABILITY_ATOMIC_SHARED_PTR\nbool\natomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v,\n                                      shared_ptr<_Tp> __w, memory_order, memory_order)\n{\n    return atomic_compare_exchange_weak(__p, __v, __w);\n}\n\n#endif  // !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)\n\n//enum class\n#if defined(_LIBCPP_ABI_POINTER_SAFETY_ENUM_TYPE)\n# ifndef _LIBCPP_CXX03_LANG\nenum class pointer_safety : unsigned char {\n  relaxed,\n  preferred,\n  strict\n};\n# endif\n#else\nstruct _LIBCPP_TYPE_VIS pointer_safety\n{\n    enum __lx\n    {\n        relaxed,\n        preferred,\n        strict\n    };\n\n    __lx __v_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    pointer_safety() : __v_() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pointer_safety(__lx __v) : __v_(__v) {}\n    _LIBCPP_INLINE_VISIBILITY\n    operator int() const {return __v_;}\n};\n#endif\n\n#if !defined(_LIBCPP_ABI_POINTER_SAFETY_ENUM_TYPE) && \\\n    defined(_LIBCPP_BUILDING_MEMORY)\n_LIBCPP_FUNC_VIS pointer_safety get_pointer_safety() _NOEXCEPT;\n#else\n// This function is only offered in C++03 under ABI v1.\n# if !defined(_LIBCPP_ABI_POINTER_SAFETY_ENUM_TYPE) || !defined(_LIBCPP_CXX03_LANG)\ninline _LIBCPP_INLINE_VISIBILITY\npointer_safety get_pointer_safety() _NOEXCEPT {\n  return pointer_safety::relaxed;\n}\n# endif\n#endif\n\n\n_LIBCPP_FUNC_VIS void declare_reachable(void* __p);\n_LIBCPP_FUNC_VIS void declare_no_pointers(char* __p, size_t __n);\n_LIBCPP_FUNC_VIS void undeclare_no_pointers(char* __p, size_t __n);\n_LIBCPP_FUNC_VIS void* __undeclare_reachable(void* __p);\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\nundeclare_reachable(_Tp* __p)\n{\n    return static_cast<_Tp*>(__undeclare_reachable(__p));\n}\n\n_LIBCPP_FUNC_VIS void* align(size_t __align, size_t __sz, void*& __ptr, size_t& __space);\n\n// --- Helper for container swap --\ntemplate <typename _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __swap_allocator(_Alloc & __a1, _Alloc & __a2)\n#if _LIBCPP_STD_VER >= 14\n    _NOEXCEPT\n#else\n    _NOEXCEPT_(__is_nothrow_swappable<_Alloc>::value)\n#endif\n{\n    __swap_allocator(__a1, __a2, \n      integral_constant<bool, _VSTD::allocator_traits<_Alloc>::propagate_on_container_swap::value>());\n}\n\ntemplate <typename _Alloc>\n_LIBCPP_INLINE_VISIBILITY\nvoid __swap_allocator(_Alloc & __a1, _Alloc & __a2, true_type)\n#if _LIBCPP_STD_VER >= 14\n    _NOEXCEPT\n#else\n    _NOEXCEPT_(__is_nothrow_swappable<_Alloc>::value)\n#endif\n{\n    using _VSTD::swap;\n    swap(__a1, __a2);\n}\n\ntemplate <typename _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __swap_allocator(_Alloc &, _Alloc &, false_type) _NOEXCEPT {}\n\ntemplate <typename _Alloc, typename _Traits=allocator_traits<_Alloc> >\nstruct __noexcept_move_assign_container : public integral_constant<bool, \n    _Traits::propagate_on_container_move_assignment::value\n#if _LIBCPP_STD_VER > 14\n        || _Traits::is_always_equal::value\n#else\n        && is_nothrow_move_assignable<_Alloc>::value\n#endif\n    > {};\n\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\ntemplate <class _Tp, class _Alloc>\nstruct __temp_value {\n    typedef allocator_traits<_Alloc> _Traits;\n    \n    typename aligned_storage<sizeof(_Tp), alignof(_Tp)>::type __v;\n    _Alloc &__a;\n\n    _Tp *__addr() { return reinterpret_cast<_Tp *>(addressof(__v)); }\n    _Tp &   get() { return *__addr(); }\n        \n    template<class... _Args>\n    __temp_value(_Alloc &__alloc, _Args&& ... __args) : __a(__alloc)\n    { _Traits::construct(__a, __addr(), _VSTD::forward<_Args>(__args)...); }\n    \n    ~__temp_value() { _Traits::destroy(__a, __addr()); }\n    };\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_MEMORY\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/module.modulemap",
    "content": "// define the module for __config outside of the top level 'std' module\n// since __config may be included from C headers which may create an\n// include cycle.\nmodule std_config [system] [extern_c] {\n    header \"__config\"\n}\n\nmodule std [system] {\n  export std_config\n  // FIXME: The standard does not require that each of these submodules\n  // re-exports its imported modules. We should provide an alternative form of\n  // export that issues a warning if a name from the submodule is used, and\n  // use that to provide a 'strict mode' for libc++.\n\n  // Deprecated C-compatibility headers. These can all be included from within\n  // an 'extern \"C\"' context.\n  module depr [extern_c] {\n    // <assert.h> provided by C library.\n    module ctype_h {\n      header \"ctype.h\"\n      export *\n    }\n    module errno_h {\n      header \"errno.h\"\n      export *\n    }\n    // <fenv.h> provided by C library.\n    // <float.h> provided by compiler or C library.\n    module inttypes_h {\n      header \"inttypes.h\"\n      export stdint_h\n      export *\n    }\n    // <iso646.h> provided by compiler.\n    // <limits.h> provided by compiler or C library.\n    module locale_h {\n      header \"locale.h\"\n      export *\n    }\n    module math_h {\n      header \"math.h\"\n      export *\n    }\n    module setjmp_h {\n      header \"setjmp.h\"\n      export *\n    }\n    // FIXME: <stdalign.h> is missing.\n    // <signal.h> provided by C library.\n    // <stdarg.h> provided by compiler.\n    // <stdbool.h> provided by compiler.\n    module stddef_h {\n      // <stddef.h>'s __need_* macros require textual inclusion.\n      textual header \"stddef.h\"\n    }\n    module stdint_h {\n      header \"stdint.h\"\n      export *\n      // FIXME: This module only exists on OS X and for some reason the\n      // wildcard above doesn't export it.\n      export Darwin.C.stdint\n    }\n    module stdio_h {\n      // <stdio.h>'s __need_* macros require textual inclusion.\n      textual header \"stdio.h\"\n      export *\n      export Darwin.C.stdio\n    }\n    module stdlib_h {\n      // <stdlib.h>'s __need_* macros require textual inclusion.\n      textual header \"stdlib.h\"\n      export *\n    }\n    module string_h {\n      header \"string.h\"\n      export *\n    }\n    // FIXME: <uchar.h> is missing.\n    // <time.h> provided by C library.\n    module wchar_h {\n      // <wchar.h>'s __need_* macros require textual inclusion.\n      textual header \"wchar.h\"\n      export *\n    }\n    module wctype_h {\n      header \"wctype.h\"\n      export *\n    }\n  }\n\n  // <complex.h> and <tgmath.h> are not C headers in any real sense, do not\n  // allow their use in extern \"C\" contexts.\n  module complex_h {\n    header \"complex.h\"\n    export ccomplex\n    export *\n  }\n  module tgmath_h {\n    header \"tgmath.h\"\n    export ccomplex\n    export cmath\n    export *\n  }\n\n  // C compatibility headers.\n  module compat {\n    module cassert {\n      // <cassert>'s use of NDEBUG requires textual inclusion.\n      textual header \"cassert\"\n    }\n    module ccomplex {\n      header \"ccomplex\"\n      export complex\n      export *\n    }\n    module cctype {\n      header \"cctype\"\n      export *\n    }\n    module cerrno {\n      header \"cerrno\"\n      export *\n    }\n    module cfenv {\n      header \"cfenv\"\n      export *\n    }\n    module cfloat {\n      header \"cfloat\"\n      export *\n    }\n    module cinttypes {\n      header \"cinttypes\"\n      export cstdint\n      export *\n    }\n    module ciso646 {\n      header \"ciso646\"\n      export *\n    }\n    module climits {\n      header \"climits\"\n      export *\n    }\n    module clocale {\n      header \"clocale\"\n      export *\n    }\n    module cmath {\n      header \"cmath\"\n      export *\n    }\n    module csetjmp {\n      header \"csetjmp\"\n      export *\n    }\n    module csignal {\n      header \"csignal\"\n      export *\n    }\n    // FIXME: <cstdalign> is missing.\n    module cstdarg {\n      header \"cstdarg\"\n      export *\n    }\n    module cstdbool {\n      header \"cstdbool\"\n      export *\n    }\n    module cstddef {\n      header \"cstddef\"\n      export *\n    }\n    module cstdint {\n      header \"cstdint\"\n      export depr.stdint_h\n      export *\n    }\n    module cstdio {\n      header \"cstdio\"\n      export *\n    }\n    module cstdlib {\n      header \"cstdlib\"\n      export *\n    }\n    module cstring {\n      header \"cstring\"\n      export *\n    }\n    module ctgmath {\n      header \"ctgmath\"\n      export ccomplex\n      export cmath\n      export *\n    }\n    module ctime {\n      header \"ctime\"\n      export *\n    }\n    // FIXME: <cuchar> is missing.\n    module cwchar {\n      header \"cwchar\"\n      export depr.stdio_h\n      export *\n    }\n    module cwctype {\n      header \"cwctype\"\n      export *\n    }\n  }\n\n  module algorithm {\n    header \"algorithm\"\n    export initializer_list\n    export *\n  }\n  module array {\n    header \"array\"\n    export initializer_list\n    export *\n  }\n  module atomic {\n    header \"atomic\"\n    export *\n  }\n  module bitset {\n    header \"bitset\"\n    export string\n    export iosfwd\n    export *\n  }\n  // No submodule for cassert. It fundamentally needs repeated, textual inclusion.\n  module chrono {\n    header \"chrono\"\n    export *\n  }\n  module codecvt {\n    header \"codecvt\"\n    export *\n  }\n  module complex {\n    header \"complex\"\n    export *\n  }\n  module condition_variable {\n    header \"condition_variable\"\n    export *\n  }\n  module deque {\n    header \"deque\"\n    export initializer_list\n    export *\n  }\n  module exception {\n    header \"exception\"\n    export *\n  }\n  module forward_list {\n    header \"forward_list\"\n    export initializer_list\n    export *\n  }\n  module fstream {\n    header \"fstream\"\n    export *\n  }\n  module functional {\n    header \"functional\"\n    export *\n  }\n  module future {\n    header \"future\"\n    export *\n  }\n  module initializer_list {\n    header \"initializer_list\"\n    export *\n  }\n  module iomanip {\n    header \"iomanip\"\n    export *\n  }\n  module ios {\n    header \"ios\"\n    export iosfwd\n    export *\n  }\n  module iosfwd {\n    header \"iosfwd\"\n    export *\n  }\n  module iostream {\n    header \"iostream\"\n    export ios\n    export streambuf\n    export istream\n    export ostream\n    export *\n  }\n  module istream {\n    header \"istream\"\n    // FIXME: should re-export ios, streambuf?\n    export *\n  }\n  module iterator {\n    header \"iterator\"\n    export *\n  }\n  module limits {\n    header \"limits\"\n    export *\n  }\n  module list {\n    header \"list\"\n    export initializer_list\n    export *\n  }\n  module locale {\n    header \"locale\"\n    export *\n  }\n  module map {\n    header \"map\"\n    export initializer_list\n    export *\n  }\n  module memory {\n    header \"memory\"\n    export *\n  }\n  module mutex {\n    header \"mutex\"\n    export *\n  }\n  module new {\n    header \"new\"\n    export *\n  }\n  module numeric {\n    header \"numeric\"\n    export *\n  }\n  module ostream {\n    header \"ostream\"\n    // FIXME: should re-export ios, streambuf?\n    export *\n  }\n  module queue {\n    header \"queue\"\n    export initializer_list\n    export *\n  }\n  module random {\n    header \"random\"\n    export initializer_list\n    export *\n  }\n  module ratio {\n    header \"ratio\"\n    export *\n  }\n  module regex {\n    header \"regex\"\n    export initializer_list\n    export *\n  }\n  module scoped_allocator {\n    header \"scoped_allocator\"\n    export *\n  }\n  module set {\n    header \"set\"\n    export initializer_list\n    export *\n  }\n  module sstream {\n    header \"sstream\"\n    // FIXME: should re-export istream, ostream, ios, streambuf, string?\n    export *\n  }\n  module stack {\n    header \"stack\"\n    export initializer_list\n    export *\n  }\n  module stdexcept {\n    header \"stdexcept\"\n    export *\n  }\n  module streambuf {\n    header \"streambuf\"\n    export *\n  }\n  module string {\n    header \"string\"\n    export initializer_list\n    export string_view\n    export __string\n    export *\n  }\n  module string_view {\n    header \"string_view\"\n    export initializer_list\n    export __string\n    export *\n  }\n  module strstream {\n    header \"strstream\"\n    export *\n  }\n  module system_error {\n    header \"system_error\"\n    export *\n  }\n  module thread {\n    header \"thread\"\n    export *\n  }\n  module tuple {\n    header \"tuple\"\n    export *\n  }\n  module type_traits {\n    header \"type_traits\"\n    export *\n  }\n  module typeindex {\n    header \"typeindex\"\n    export *\n  }\n  module typeinfo {\n    header \"typeinfo\"\n    export *\n  }\n  module unordered_map {\n    header \"unordered_map\"\n    export initializer_list\n    export *\n  }\n  module unordered_set {\n    header \"unordered_set\"\n    export initializer_list\n    export *\n  }\n  module utility {\n    header \"utility\"\n    export initializer_list\n    export *\n  }\n  module valarray {\n    header \"valarray\"\n    export initializer_list\n    export *\n  }\n  module vector {\n    header \"vector\"\n    export initializer_list\n    export *\n  }\n\n  // FIXME: These should be private.\n  module __bit_reference { header \"__bit_reference\" export * }\n  module __debug { header \"__debug\" export * }\n  module __functional_base { header \"__functional_base\" export * }\n  module __hash_table { header \"__hash_table\" export * }\n  module __locale { header \"__locale\" export * }\n  module __mutex_base { header \"__mutex_base\" export * }\n  module __split_buffer { header \"__split_buffer\" export * }\n  module __sso_allocator { header \"__sso_allocator\" export * }\n  module __std_stream { header \"__std_stream\" export * }\n  module __string { header \"__string\" export * }\n  module __tree { header \"__tree\" export * }\n  module __tuple { header \"__tuple\" export * }\n  module __undef_macros { header \"__undef_macros\" export * }\n\n  module experimental {\n    requires cplusplus11\n\n    module algorithm {\n      header \"experimental/algorithm\"\n      export *\n    }\n    module any {\n      header \"experimental/any\"\n      export *\n    }\n    module chrono {\n      header \"experimental/chrono\"\n      export *\n    }\n     module coroutine {\n      requires coroutines\n      header \"experimental/coroutine\"\n      export *\n    }\n    module deque {\n      header \"experimental/deque\"\n      export *\n    }\n    module dynarray {\n      header \"experimental/dynarray\"\n      export *\n    }\n    module forward_list {\n      header \"experimental/forward_list\"\n      export *\n    }\n    module functional {\n      header \"experimental/functional\"\n      export *\n    }\n    module iterator {\n      header \"experimental/iterator\"\n      export *\n    }\n    module list {\n      header \"experimental/list\"\n      export *\n    }\n    module map {\n      header \"experimental/map\"\n      export *\n    }\n    module memory_resource {\n      header \"experimental/memory_resource\"\n      export *\n    }\n    module numeric {\n      header \"experimental/numeric\"\n      export *\n    }\n    module optional {\n      header \"experimental/optional\"\n      export *\n    }\n    module propagate_const {\n      header \"experimental/propagate_const\"\n      export *\n    }\n    module ratio {\n      header \"experimental/ratio\"\n      export *\n    }\n    module regex {\n      header \"experimental/regex\"\n      export *\n    }\n    module set {\n      header \"experimental/set\"\n      export *\n    }\n    module string {\n      header \"experimental/string\"\n      export *\n    }\n    module string_view {\n      header \"experimental/string_view\"\n      export *\n    }\n    module system_error {\n      header \"experimental/system_error\"\n      export *\n    }\n    module tuple {\n      header \"experimental/tuple\"\n      export *\n    }\n    module type_traits {\n      header \"experimental/type_traits\"\n      export *\n    }\n    module unordered_map {\n      header \"experimental/unordered_map\"\n      export *\n    }\n    module unordered_set {\n      header \"experimental/unordered_set\"\n      export *\n    }\n    module utility {\n      header \"experimental/utility\"\n      export *\n    }\n    module vector {\n      header \"experimental/vector\"\n      export *\n    }\n    // FIXME these should be private\n    module __memory {\n      header \"experimental/__memory\"\n      export *\n    }\n  } // end experimental\n}\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/mutex",
    "content": "// -*- C++ -*-\n//===--------------------------- mutex ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_MUTEX\n#define _LIBCPP_MUTEX\n\n/*\n    mutex synopsis\n\nnamespace std\n{\n\nclass mutex\n{\npublic:\n     constexpr mutex() noexcept;\n     ~mutex();\n\n    mutex(const mutex&) = delete;\n    mutex& operator=(const mutex&) = delete;\n\n    void lock();\n    bool try_lock();\n    void unlock();\n\n    typedef pthread_mutex_t* native_handle_type;\n    native_handle_type native_handle();\n};\n\nclass recursive_mutex\n{\npublic:\n     recursive_mutex();\n     ~recursive_mutex();\n\n    recursive_mutex(const recursive_mutex&) = delete;\n    recursive_mutex& operator=(const recursive_mutex&) = delete;\n\n    void lock();\n    bool try_lock() noexcept;\n    void unlock();\n\n    typedef pthread_mutex_t* native_handle_type;\n    native_handle_type native_handle();\n};\n\nclass timed_mutex\n{\npublic:\n     timed_mutex();\n     ~timed_mutex();\n\n    timed_mutex(const timed_mutex&) = delete;\n    timed_mutex& operator=(const timed_mutex&) = delete;\n\n    void lock();\n    bool try_lock();\n    template <class Rep, class Period>\n        bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);\n    template <class Clock, class Duration>\n        bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);\n    void unlock();\n};\n\nclass recursive_timed_mutex\n{\npublic:\n     recursive_timed_mutex();\n     ~recursive_timed_mutex();\n\n    recursive_timed_mutex(const recursive_timed_mutex&) = delete;\n    recursive_timed_mutex& operator=(const recursive_timed_mutex&) = delete;\n\n    void lock();\n    bool try_lock() noexcept;\n    template <class Rep, class Period>\n        bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);\n    template <class Clock, class Duration>\n        bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);\n    void unlock();\n};\n\nstruct defer_lock_t {};\nstruct try_to_lock_t {};\nstruct adopt_lock_t {};\n\nconstexpr defer_lock_t  defer_lock{};\nconstexpr try_to_lock_t try_to_lock{};\nconstexpr adopt_lock_t  adopt_lock{};\n\ntemplate <class Mutex>\nclass lock_guard\n{\npublic:\n    typedef Mutex mutex_type;\n\n    explicit lock_guard(mutex_type& m);\n    lock_guard(mutex_type& m, adopt_lock_t);\n    ~lock_guard();\n\n    lock_guard(lock_guard const&) = delete;\n    lock_guard& operator=(lock_guard const&) = delete;\n};\n\ntemplate <class... MutexTypes>\nclass scoped_lock // C++17\n{\npublic:\n    using mutex_type = Mutex;  // If MutexTypes... consists of the single type Mutex\n\n    explicit scoped_lock(MutexTypes&... m);\n    scoped_lock(MutexTypes&... m, adopt_lock_t);\n    ~scoped_lock();\n    scoped_lock(scoped_lock const&) = delete;\n    scoped_lock& operator=(scoped_lock const&) = delete;\nprivate:\n    tuple<MutexTypes&...> pm; // exposition only\n};\n\ntemplate <class Mutex>\nclass unique_lock\n{\npublic:\n    typedef Mutex mutex_type;\n    unique_lock() noexcept;\n    explicit unique_lock(mutex_type& m);\n    unique_lock(mutex_type& m, defer_lock_t) noexcept;\n    unique_lock(mutex_type& m, try_to_lock_t);\n    unique_lock(mutex_type& m, adopt_lock_t);\n    template <class Clock, class Duration>\n        unique_lock(mutex_type& m, const chrono::time_point<Clock, Duration>& abs_time);\n    template <class Rep, class Period>\n        unique_lock(mutex_type& m, const chrono::duration<Rep, Period>& rel_time);\n    ~unique_lock();\n\n    unique_lock(unique_lock const&) = delete;\n    unique_lock& operator=(unique_lock const&) = delete;\n\n    unique_lock(unique_lock&& u) noexcept;\n    unique_lock& operator=(unique_lock&& u) noexcept;\n\n    void lock();\n    bool try_lock();\n\n    template <class Rep, class Period>\n        bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);\n    template <class Clock, class Duration>\n        bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);\n\n    void unlock();\n\n    void swap(unique_lock& u) noexcept;\n    mutex_type* release() noexcept;\n\n    bool owns_lock() const noexcept;\n    explicit operator bool () const noexcept;\n    mutex_type* mutex() const noexcept;\n};\n\ntemplate <class Mutex>\n  void swap(unique_lock<Mutex>& x, unique_lock<Mutex>& y) noexcept;\n\ntemplate <class L1, class L2, class... L3>\n  int try_lock(L1&, L2&, L3&...);\ntemplate <class L1, class L2, class... L3>\n  void lock(L1&, L2&, L3&...);\n\nstruct once_flag\n{\n    constexpr once_flag() noexcept;\n\n    once_flag(const once_flag&) = delete;\n    once_flag& operator=(const once_flag&) = delete;\n};\n\ntemplate<class Callable, class ...Args>\n  void call_once(once_flag& flag, Callable&& func, Args&&... args);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__mutex_base>\n#include <functional>\n#include <memory>\n#ifndef _LIBCPP_CXX03_LANG\n#include <tuple>\n#endif\n#include <__threading_support>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#ifndef _LIBCPP_HAS_NO_THREADS\n\nclass _LIBCPP_TYPE_VIS recursive_mutex\n{\n    __libcpp_recursive_mutex_t __m_;\n\npublic:\n     recursive_mutex();\n     ~recursive_mutex();\n\nprivate:\n    recursive_mutex(const recursive_mutex&); // = delete;\n    recursive_mutex& operator=(const recursive_mutex&); // = delete;\n\npublic:\n    void lock();\n    bool try_lock() _NOEXCEPT;\n    void unlock()  _NOEXCEPT;\n\n    typedef __libcpp_recursive_mutex_t* native_handle_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    native_handle_type native_handle() {return &__m_;}\n};\n\nclass _LIBCPP_TYPE_VIS timed_mutex\n{\n    mutex              __m_;\n    condition_variable __cv_;\n    bool               __locked_;\npublic:\n     timed_mutex();\n     ~timed_mutex();\n\nprivate:\n    timed_mutex(const timed_mutex&); // = delete;\n    timed_mutex& operator=(const timed_mutex&); // = delete;\n\npublic:\n    void lock();\n    bool try_lock() _NOEXCEPT;\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        bool try_lock_for(const chrono::duration<_Rep, _Period>& __d)\n            {return try_lock_until(chrono::steady_clock::now() + __d);}\n    template <class _Clock, class _Duration>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t);\n    void unlock() _NOEXCEPT;\n};\n\ntemplate <class _Clock, class _Duration>\nbool\ntimed_mutex::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t)\n{\n    using namespace chrono;\n    unique_lock<mutex> __lk(__m_);\n    bool no_timeout = _Clock::now() < __t;\n    while (no_timeout && __locked_)\n        no_timeout = __cv_.wait_until(__lk, __t) == cv_status::no_timeout;\n    if (!__locked_)\n    {\n        __locked_ = true;\n        return true;\n    }\n    return false;\n}\n\nclass _LIBCPP_TYPE_VIS recursive_timed_mutex\n{\n    mutex              __m_;\n    condition_variable __cv_;\n    size_t             __count_;\n    __libcpp_thread_id __id_;\npublic:\n     recursive_timed_mutex();\n     ~recursive_timed_mutex();\n\nprivate:\n    recursive_timed_mutex(const recursive_timed_mutex&); // = delete;\n    recursive_timed_mutex& operator=(const recursive_timed_mutex&); // = delete;\n\npublic:\n    void lock();\n    bool try_lock() _NOEXCEPT;\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        bool try_lock_for(const chrono::duration<_Rep, _Period>& __d)\n            {return try_lock_until(chrono::steady_clock::now() + __d);}\n    template <class _Clock, class _Duration>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t);\n    void unlock() _NOEXCEPT;\n};\n\ntemplate <class _Clock, class _Duration>\nbool\nrecursive_timed_mutex::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t)\n{\n    using namespace chrono;\n    __libcpp_thread_id __id = __libcpp_thread_get_current_id();\n    unique_lock<mutex> lk(__m_);\n    if (__libcpp_thread_id_equal(__id, __id_))\n    {\n        if (__count_ == numeric_limits<size_t>::max())\n            return false;\n        ++__count_;\n        return true;\n    }\n    bool no_timeout = _Clock::now() < __t;\n    while (no_timeout && __count_ != 0)\n        no_timeout = __cv_.wait_until(lk, __t) == cv_status::no_timeout;\n    if (__count_ == 0)\n    {\n        __count_ = 1;\n        __id_ = __id;\n        return true;\n    }\n    return false;\n}\n\ntemplate <class _L0, class _L1>\nint\ntry_lock(_L0& __l0, _L1& __l1)\n{\n    unique_lock<_L0> __u0(__l0, try_to_lock);\n    if (__u0.owns_lock())\n    {\n        if (__l1.try_lock())\n        {\n            __u0.release();\n            return -1;\n        }\n        else\n            return 1;\n    }\n    return 0;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _L0, class _L1, class _L2, class... _L3>\nint\ntry_lock(_L0& __l0, _L1& __l1, _L2& __l2, _L3&... __l3)\n{\n    int __r = 0;\n    unique_lock<_L0> __u0(__l0, try_to_lock);\n    if (__u0.owns_lock())\n    {\n        __r = try_lock(__l1, __l2, __l3...);\n        if (__r == -1)\n            __u0.release();\n        else\n            ++__r;\n    }\n    return __r;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _L0, class _L1>\nvoid\nlock(_L0& __l0, _L1& __l1)\n{\n    while (true)\n    {\n        {\n            unique_lock<_L0> __u0(__l0);\n            if (__l1.try_lock())\n            {\n                __u0.release();\n                break;\n            }\n        }\n        __libcpp_thread_yield();\n        {\n            unique_lock<_L1> __u1(__l1);\n            if (__l0.try_lock())\n            {\n                __u1.release();\n                break;\n            }\n        }\n        __libcpp_thread_yield();\n    }\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _L0, class _L1, class _L2, class ..._L3>\nvoid\n__lock_first(int __i, _L0& __l0, _L1& __l1, _L2& __l2, _L3& ...__l3)\n{\n    while (true)\n    {\n        switch (__i)\n        {\n        case 0:\n            {\n                unique_lock<_L0> __u0(__l0);\n                __i = try_lock(__l1, __l2, __l3...);\n                if (__i == -1)\n                {\n                    __u0.release();\n                    return;\n                }\n            }\n            ++__i;\n            __libcpp_thread_yield();\n            break;\n        case 1:\n            {\n                unique_lock<_L1> __u1(__l1);\n                __i = try_lock(__l2, __l3..., __l0);\n                if (__i == -1)\n                {\n                    __u1.release();\n                    return;\n                }\n            }\n            if (__i == sizeof...(_L3) + 1)\n                __i = 0;\n            else\n                __i += 2;\n            __libcpp_thread_yield();\n            break;\n        default:\n            __lock_first(__i - 2, __l2, __l3..., __l0, __l1);\n            return;\n        }\n    }\n}\n\ntemplate <class _L0, class _L1, class _L2, class ..._L3>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nlock(_L0& __l0, _L1& __l1, _L2& __l2, _L3& ...__l3)\n{\n    __lock_first(0, __l0, __l1, __l2, __l3...);\n}\n\ntemplate <class _L0>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __unlock(_L0& __l0) {\n    __l0.unlock();\n}\n\ntemplate <class _L0, class _L1>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __unlock(_L0& __l0, _L1& __l1) {\n    __l0.unlock();\n    __l1.unlock();\n}\n\ntemplate <class _L0, class _L1, class _L2, class ..._L3>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid __unlock(_L0& __l0, _L1& __l1, _L2& __l2, _L3&... __l3) {\n    __l0.unlock();\n    __l1.unlock();\n    _VSTD::__unlock(__l2, __l3...);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class ..._Mutexes>\nclass _LIBCPP_TEMPLATE_VIS scoped_lock;\n\ntemplate <>\nclass _LIBCPP_TEMPLATE_VIS scoped_lock<> {\npublic:\n    explicit scoped_lock() {}\n    ~scoped_lock() = default;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit scoped_lock(adopt_lock_t) {}\n\n    scoped_lock(scoped_lock const&) = delete;\n    scoped_lock& operator=(scoped_lock const&) = delete;\n};\n\ntemplate <class _Mutex>\nclass _LIBCPP_TEMPLATE_VIS scoped_lock<_Mutex> {\npublic:\n    typedef _Mutex  mutex_type;\nprivate:\n    mutex_type& __m_;\npublic:\n    explicit scoped_lock(mutex_type & __m) _LIBCPP_THREAD_SAFETY_ANNOTATION(acquire_capability(__m))\n        : __m_(__m) {__m_.lock();}\n\n    ~scoped_lock() _LIBCPP_THREAD_SAFETY_ANNOTATION(release_capability()) {__m_.unlock();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit scoped_lock(mutex_type& __m, adopt_lock_t) _LIBCPP_THREAD_SAFETY_ANNOTATION(requires_capability(__m))\n        : __m_(__m) {}\n\n    scoped_lock(scoped_lock const&) = delete;\n    scoped_lock& operator=(scoped_lock const&) = delete;\n};\n\ntemplate <class ..._MArgs>\nclass _LIBCPP_TEMPLATE_VIS scoped_lock\n{\n    static_assert(sizeof...(_MArgs) > 1, \"At least 2 lock types required\");\n    typedef tuple<_MArgs&...> _MutexTuple;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit scoped_lock(_MArgs&... __margs)\n      : __t_(__margs...)\n    {\n        _VSTD::lock(__margs...);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    scoped_lock(_MArgs&... __margs, adopt_lock_t)\n        : __t_(__margs...)\n    {\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~scoped_lock() {\n        typedef typename __make_tuple_indices<sizeof...(_MArgs)>::type _Indices;\n        __unlock_unpack(_Indices{}, __t_);\n    }\n\n    scoped_lock(scoped_lock const&) = delete;\n    scoped_lock& operator=(scoped_lock const&) = delete;\n\nprivate:\n    template <size_t ..._Indx>\n    _LIBCPP_INLINE_VISIBILITY\n    static void __unlock_unpack(__tuple_indices<_Indx...>, _MutexTuple& __mt) {\n        _VSTD::__unlock(_VSTD::get<_Indx>(__mt)...);\n    }\n\n    _MutexTuple __t_;\n};\n\n#endif // _LIBCPP_STD_VER > 14\n#endif // !_LIBCPP_HAS_NO_THREADS\n\nstruct _LIBCPP_TEMPLATE_VIS once_flag;\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _Callable, class... _Args>\n_LIBCPP_INLINE_VISIBILITY\nvoid call_once(once_flag&, _Callable&&, _Args&&...);\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate<class _Callable>\n_LIBCPP_INLINE_VISIBILITY\nvoid call_once(once_flag&, _Callable&);\n\ntemplate<class _Callable>\n_LIBCPP_INLINE_VISIBILITY\nvoid call_once(once_flag&, const _Callable&);\n\n#endif  // _LIBCPP_CXX03_LANG\n\nstruct _LIBCPP_TEMPLATE_VIS once_flag\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR\n        once_flag() _NOEXCEPT : __state_(0) {}\n\nprivate:\n    once_flag(const once_flag&); // = delete;\n    once_flag& operator=(const once_flag&); // = delete;\n\n    unsigned long __state_;\n\n#ifndef _LIBCPP_CXX03_LANG\n    template<class _Callable, class... _Args>\n    friend\n    void call_once(once_flag&, _Callable&&, _Args&&...);\n#else  // _LIBCPP_CXX03_LANG\n    template<class _Callable>\n    friend\n    void call_once(once_flag&, _Callable&);\n\n    template<class _Callable>\n    friend\n    void call_once(once_flag&, const _Callable&);\n#endif  // _LIBCPP_CXX03_LANG\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Fp>\nclass __call_once_param\n{\n    _Fp& __f_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __call_once_param(_Fp& __f) : __f_(__f) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()()\n    {\n        typedef typename __make_tuple_indices<tuple_size<_Fp>::value, 1>::type _Index;\n        __execute(_Index());\n    }\n\nprivate:\n    template <size_t ..._Indices>\n    _LIBCPP_INLINE_VISIBILITY\n    void __execute(__tuple_indices<_Indices...>)\n    {\n        __invoke(_VSTD::get<0>(_VSTD::move(__f_)), _VSTD::get<_Indices>(_VSTD::move(__f_))...);\n    }\n};\n\n#else\n\ntemplate <class _Fp>\nclass __call_once_param\n{\n    _Fp& __f_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __call_once_param(_Fp& __f) : __f_(__f) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()()\n    {\n        __f_();\n    }\n};\n\n#endif\n\ntemplate <class _Fp>\nvoid\n__call_once_proxy(void* __vp)\n{\n    __call_once_param<_Fp>* __p = static_cast<__call_once_param<_Fp>*>(__vp);\n    (*__p)();\n}\n\n_LIBCPP_FUNC_VIS void __call_once(volatile unsigned long&, void*, void(*)(void*));\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _Callable, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\ncall_once(once_flag& __flag, _Callable&& __func, _Args&&... __args)\n{\n    if (__libcpp_acquire_load(&__flag.__state_) != ~0ul)\n    {\n        typedef tuple<_Callable&&, _Args&&...> _Gp;\n        _Gp __f(_VSTD::forward<_Callable>(__func), _VSTD::forward<_Args>(__args)...);\n        __call_once_param<_Gp> __p(__f);\n        __call_once(__flag.__state_, &__p, &__call_once_proxy<_Gp>);\n    }\n}\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate<class _Callable>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\ncall_once(once_flag& __flag, _Callable& __func)\n{\n    if (__libcpp_acquire_load(&__flag.__state_) != ~0ul)\n    {\n        __call_once_param<_Callable> __p(__func);\n        __call_once(__flag.__state_, &__p, &__call_once_proxy<_Callable>);\n    }\n}\n\ntemplate<class _Callable>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\ncall_once(once_flag& __flag, const _Callable& __func)\n{\n    if (__libcpp_acquire_load(&__flag.__state_) != ~0ul)\n    {\n        __call_once_param<const _Callable> __p(__func);\n        __call_once(__flag.__state_, &__p, &__call_once_proxy<const _Callable>);\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_MUTEX\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/new",
    "content": "// -*- C++ -*-\n//===----------------------------- new ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_NEW\n#define _LIBCPP_NEW\n\n/*\n    new synopsis\n\nnamespace std\n{\n\nclass bad_alloc\n    : public exception\n{\npublic:\n    bad_alloc() noexcept;\n    bad_alloc(const bad_alloc&) noexcept;\n    bad_alloc& operator=(const bad_alloc&) noexcept;\n    virtual const char* what() const noexcept;\n};\n\nclass bad_array_length : public bad_alloc // FIXME: Not part of C++\n{\npublic:\n    bad_array_length() noexcept;\n};\n\nclass bad_array_new_length : public bad_alloc // C++14\n{\npublic:\n    bad_array_new_length() noexcept;\n};\n\nenum class align_val_t : size_t {}; // C++17\nstruct nothrow_t {};\nextern const nothrow_t nothrow;\ntypedef void (*new_handler)();\nnew_handler set_new_handler(new_handler new_p) noexcept;\nnew_handler get_new_handler() noexcept;\n\n}  // std\n\nvoid* operator new(std::size_t size);                                   // replaceable\nvoid* operator new(std::size_t size, std::align_val_t alignment);       // replaceable, C++17\nvoid* operator new(std::size_t size, const std::nothrow_t&) noexcept;   // replaceable\nvoid* operator new(std::size_t size, std::align_val_t alignment,\n                   const std::nothrow_t&) noexcept;                     // replaceable, C++17\nvoid  operator delete(void* ptr) noexcept;                              // replaceable\nvoid  operator delete(void* ptr, std::size_t size) noexcept;            // replaceable, C++14\nvoid  operator delete(void* ptr, std::align_val_t alignment) noexcept;  // replaceable, C++17\nvoid  operator delete(void* ptr, std::size_t size,\n                      std::align_val_t alignment) noexcept;             // replaceable, C++17\nvoid  operator delete(void* ptr, const std::nothrow_t&) noexcept;       // replaceable\nvoid  operator delete(void* ptr, std:align_val_t alignment,\n                      const std::nothrow_t&) noexcept;                  // replaceable, C++17\n\nvoid* operator new[](std::size_t size);                                 // replaceable\nvoid* operator new[](std::size_t size,\n                     std::align_val_t alignment) noexcept;              // replaceable, C++17\nvoid* operator new[](std::size_t size, const std::nothrow_t&) noexcept; // replaceable\nvoid* operator new[](std::size_t size, std::align_val_t alignment,\n                     const std::nothrow_t&) noexcept;                   // replaceable, C++17\nvoid  operator delete[](void* ptr) noexcept;                            // replaceable\nvoid  operator delete[](void* ptr, std::size_t size) noexcept;          // replaceable, C++14\nvoid  operator delete[](void* ptr,\n                        std::align_val_t alignment) noexcept;           // replaceable, C++17\nvoid  operator delete[](void* ptr, std::size_t size,\n                        std::align_val_t alignment) noexcept;           // replaceable, C++17\nvoid  operator delete[](void* ptr, const std::nothrow_t&) noexcept;     // replaceable\nvoid  operator delete[](void* ptr, std::align_val_t alignment,\n                        const std::nothrow_t&) noexcept;                // replaceable, C++17\n\nvoid* operator new  (std::size_t size, void* ptr) noexcept;\nvoid* operator new[](std::size_t size, void* ptr) noexcept;\nvoid  operator delete  (void* ptr, void*) noexcept;\nvoid  operator delete[](void* ptr, void*) noexcept;\n\n*/\n\n#include <__config>\n#include <exception>\n#include <cstddef>\n#ifdef _LIBCPP_NO_EXCEPTIONS\n#include <cstdlib>\n#endif\n\n#if defined(_LIBCPP_ABI_MICROSOFT)\n#include <new.h>\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#if !(defined(_LIBCPP_BUILDING_NEW) || _LIBCPP_STD_VER >= 14 || \\\n    (defined(__cpp_sized_deallocation) && __cpp_sized_deallocation >= 201309))\n# define _LIBCPP_HAS_NO_SIZED_DEALLOCATION\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) && \\\n    (!(defined(_LIBCPP_BUILDING_NEW) || _LIBCPP_STD_VER > 14 || \\\n    (defined(__cpp_aligned_new) && __cpp_aligned_new >= 201606)))\n# define _LIBCPP_HAS_NO_ALIGNED_ALLOCATION\n#endif\n\nnamespace std  // purposefully not using versioning namespace\n{\n\n#if !defined(_LIBCPP_ABI_MICROSOFT)\nstruct _LIBCPP_TYPE_VIS nothrow_t {};\nextern _LIBCPP_FUNC_VIS const nothrow_t nothrow;\n\nclass _LIBCPP_EXCEPTION_ABI bad_alloc\n    : public exception\n{\npublic:\n    bad_alloc() _NOEXCEPT;\n    virtual ~bad_alloc() _NOEXCEPT;\n    virtual const char* what() const _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI bad_array_new_length\n    : public bad_alloc\n{\npublic:\n    bad_array_new_length() _NOEXCEPT;\n    virtual ~bad_array_new_length() _NOEXCEPT;\n    virtual const char* what() const _NOEXCEPT;\n};\n\ntypedef void (*new_handler)();\n_LIBCPP_FUNC_VIS new_handler set_new_handler(new_handler) _NOEXCEPT;\n_LIBCPP_FUNC_VIS new_handler get_new_handler() _NOEXCEPT;\n\n#endif // !_LIBCPP_ABI_MICROSOFT\n\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void __throw_bad_alloc();  // not in C++ spec\n\n#if defined(_LIBCPP_BUILDING_LIBRARY) || (_LIBCPP_STD_VER > 11)\n\nclass _LIBCPP_EXCEPTION_ABI _LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH\n    bad_array_length : public bad_alloc {\npublic:\n    bad_array_length() _NOEXCEPT;\n    virtual ~bad_array_length() _NOEXCEPT;\n    virtual const char* what() const _NOEXCEPT;\n};\n\n#define _LIBCPP_BAD_ARRAY_LENGTH_DEFINED\n\n#endif  // defined(_LIBCPP_BUILDING_NEW) || (_LIBCPP_STD_VER > 11)\n\n#if !defined(_LIBCPP_HAS_NO_ALIGNED_ALLOCATION) || _LIBCPP_STD_VER > 14\n#ifndef _LIBCPP_CXX03_LANG\nenum class _LIBCPP_ENUM_VIS align_val_t : size_t { };\n#else\nenum align_val_t { __zero = 0, __max = (size_t)-1 };\n#endif\n#endif\n\n}  // std\n\n#if defined(_LIBCPP_CXX03_LANG)\n#define _THROW_BAD_ALLOC throw(std::bad_alloc)\n#else\n#define _THROW_BAD_ALLOC\n#endif\n\n#if !defined(_LIBCPP_ABI_MICROSOFT)\n\n_LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new(std::size_t __sz) _THROW_BAD_ALLOC;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new(std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void  operator delete(void* __p) _NOEXCEPT;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void  operator delete(void* __p, const std::nothrow_t&) _NOEXCEPT;\n#ifndef _LIBCPP_HAS_NO_SIZED_DEALLOCATION\n_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz) _NOEXCEPT;\n#endif\n\n_LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new[](std::size_t __sz) _THROW_BAD_ALLOC;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new[](std::size_t __sz, const std::nothrow_t&) _NOEXCEPT _NOALIAS;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void  operator delete[](void* __p) _NOEXCEPT;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void  operator delete[](void* __p, const std::nothrow_t&) _NOEXCEPT;\n#ifndef _LIBCPP_HAS_NO_SIZED_DEALLOCATION\n_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete[](void* __p, std::size_t __sz) _NOEXCEPT;\n#endif\n\n#ifndef _LIBCPP_HAS_NO_ALIGNED_ALLOCATION\n_LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new(std::size_t __sz, std::align_val_t) _THROW_BAD_ALLOC;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new(std::size_t __sz, std::align_val_t, const std::nothrow_t&) _NOEXCEPT _NOALIAS;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void  operator delete(void* __p, std::align_val_t) _NOEXCEPT;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void  operator delete(void* __p, std::align_val_t, const std::nothrow_t&) _NOEXCEPT;\n#ifndef _LIBCPP_HAS_NO_SIZED_DEALLOCATION\n_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete(void* __p, std::size_t __sz, std::align_val_t) _NOEXCEPT;\n#endif\n\n_LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new[](std::size_t __sz, std::align_val_t) _THROW_BAD_ALLOC;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new[](std::size_t __sz, std::align_val_t, const std::nothrow_t&) _NOEXCEPT _NOALIAS;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void  operator delete[](void* __p, std::align_val_t) _NOEXCEPT;\n_LIBCPP_OVERRIDABLE_FUNC_VIS void  operator delete[](void* __p, std::align_val_t, const std::nothrow_t&) _NOEXCEPT;\n#ifndef _LIBCPP_HAS_NO_SIZED_DEALLOCATION\n_LIBCPP_OVERRIDABLE_FUNC_VIS _LIBCPP_AVAILABILITY_SIZED_NEW_DELETE void  operator delete[](void* __p, std::size_t __sz, std::align_val_t) _NOEXCEPT;\n#endif\n#endif\n\ninline _LIBCPP_INLINE_VISIBILITY void* operator new  (std::size_t, void* __p) _NOEXCEPT {return __p;}\ninline _LIBCPP_INLINE_VISIBILITY void* operator new[](std::size_t, void* __p) _NOEXCEPT {return __p;}\ninline _LIBCPP_INLINE_VISIBILITY void  operator delete  (void*, void*) _NOEXCEPT {}\ninline _LIBCPP_INLINE_VISIBILITY void  operator delete[](void*, void*) _NOEXCEPT {}\n\n#endif // !_LIBCPP_ABI_MICROSOFT\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ninline _LIBCPP_INLINE_VISIBILITY void *__allocate(size_t __size) {\n#ifdef _LIBCPP_HAS_NO_BUILTIN_OPERATOR_NEW_DELETE\n  return ::operator new(__size);\n#else\n  return __builtin_operator_new(__size);\n#endif\n}\n\ninline _LIBCPP_INLINE_VISIBILITY void __libcpp_deallocate(void *__ptr) {\n#ifdef _LIBCPP_HAS_NO_BUILTIN_OPERATOR_NEW_DELETE\n  ::operator delete(__ptr);\n#else\n  __builtin_operator_delete(__ptr);\n#endif\n}\n\n#ifdef _LIBCPP_BAD_ARRAY_LENGTH_DEFINED\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\n#ifndef _LIBCPP_NO_EXCEPTIONS\n_LIBCPP_AVAILABILITY_BAD_ARRAY_LENGTH\n#endif\nvoid __throw_bad_array_length()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw bad_array_length();\n#else\n\t_VSTD::abort();\n#endif\n}\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_NEW\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/numeric",
    "content": "// -*- C++ -*-\n//===---------------------------- numeric ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_NUMERIC\n#define _LIBCPP_NUMERIC\n\n/*\n    numeric synopsis\n\nnamespace std\n{\n\ntemplate <class InputIterator, class T>\n    T\n    accumulate(InputIterator first, InputIterator last, T init);\n\ntemplate <class InputIterator, class T, class BinaryOperation>\n    T\n    accumulate(InputIterator first, InputIterator last, T init, BinaryOperation binary_op);\n\ntemplate<class InputIterator>\n    typename iterator_traits<InputIterator>::value_type\n    reduce(InputIterator first, InputIterator last);  // C++17\n\ntemplate<class InputIterator, class T>\n    T\n    reduce(InputIterator first, InputIterator last, T init);  // C++17\n\ntemplate<class InputIterator, class T, class BinaryOperation>\n    T\n    reduce(InputIterator first, InputIterator last, T init, BinaryOperation binary_op);  // C++17\n\ntemplate <class InputIterator1, class InputIterator2, class T>\n    T\n    inner_product(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, T init);\n\ntemplate <class InputIterator1, class InputIterator2, class T, class BinaryOperation1, class BinaryOperation2>\n    T\n    inner_product(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2,\n                  T init, BinaryOperation1 binary_op1, BinaryOperation2 binary_op2);\n\n\ntemplate<class InputIterator1, class InputIterator2, class T>\n    T\n    transform_reduce(InputIterator1 first1, InputIterator1 last1,\n                     InputIterator2 first2, T init);  // C++17\n                     \ntemplate<class InputIterator1, class InputIterator2, class T, class BinaryOperation1, class BinaryOperation2>\n    T\n    transform_reduce(InputIterator1 first1, InputIterator1 last1,\n                     InputIterator2 first2, T init,\n                     BinaryOperation1 binary_op1, BinaryOperation2 binary_op2);  // C++17\n\ntemplate<class InputIterator, class T, class BinaryOperation, class UnaryOperation>\n    T\n    transform_reduce(InputIterator first, InputIterator last, T init,\n                     BinaryOperation binary_op, UnaryOperation unary_op);  // C++17\n\ntemplate <class InputIterator, class OutputIterator>\n    OutputIterator\n    partial_sum(InputIterator first, InputIterator last, OutputIterator result);\n\ntemplate <class InputIterator, class OutputIterator, class BinaryOperation>\n    OutputIterator\n    partial_sum(InputIterator first, InputIterator last, OutputIterator result, BinaryOperation binary_op);\n\ntemplate<class InputIterator, class OutputIterator, class T>\n    OutputIterator\n    exclusive_scan(InputIterator first, InputIterator last,\n                   OutputIterator result, T init); // C++17\n                           \ntemplate<class InputIterator, class OutputIterator, class T, class BinaryOperation>\n    OutputIterator\n    exclusive_scan(InputIterator first, InputIterator last, \n                   OutputIterator result, T init, BinaryOperation binary_op); // C++17\n\ntemplate<class InputIterator, class OutputIterator>\n    OutputIterator\n    inclusive_scan(InputIterator first, InputIterator last, OutputIterator result);  // C++17\n\ntemplate<class InputIterator, class OutputIterator, class BinaryOperation>\n    OutputIterator\n    inclusive_scan(InputIterator first, InputIterator last,\n                   OutputIterator result, BinaryOperation binary_op);  // C++17\n\ntemplate<class InputIterator, class OutputIterator, class BinaryOperation, class T>\n    OutputIterator\n    inclusive_scan(InputIterator first, InputIterator last,\n                   OutputIterator result, BinaryOperation binary_op, T init);  // C++17\n\ntemplate<class InputIterator, class OutputIterator, class T,\n         class BinaryOperation, class UnaryOperation>\n    OutputIterator\n    transform_exclusive_scan(InputIterator first, InputIterator last,\n                             OutputIterator result, T init,\n                             BinaryOperation binary_op, UnaryOperation unary_op);  // C++17\n\ntemplate<class InputIterator, class OutputIterator,\n         class BinaryOperation, class UnaryOperation>\n\tOutputIterator\n\ttransform_inclusive_scan(InputIterator first, InputIterator last,\n                             OutputIterator result,\n                             BinaryOperation binary_op, UnaryOperation unary_op);  // C++17\n                                          \ntemplate<class InputIterator, class OutputIterator,\n         class BinaryOperation, class UnaryOperation, class T>\n\tOutputIterator\n\ttransform_inclusive_scan(InputIterator first, InputIterator last,\n                             OutputIterator result,\n                             BinaryOperation binary_op, UnaryOperation unary_op,\n                             T init);  // C++17\n\ntemplate <class InputIterator, class OutputIterator>\n    OutputIterator\n    adjacent_difference(InputIterator first, InputIterator last, OutputIterator result);\n\ntemplate <class InputIterator, class OutputIterator, class BinaryOperation>\n    OutputIterator\n    adjacent_difference(InputIterator first, InputIterator last, OutputIterator result, BinaryOperation binary_op);\n\ntemplate <class ForwardIterator, class T>\n    void iota(ForwardIterator first, ForwardIterator last, T value);\n\ntemplate <class M, class N>\n    constexpr common_type_t<M,N> gcd(M m, N n);    // C++17\n\ntemplate <class M, class N>\n    constexpr common_type_t<M,N> lcm(M m, N n);    // C++17\n\n}  // std\n\n*/\n\n#include <__config>\n#include <iterator>\n#include <limits> // for numeric_limits\n#include <functional>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _InputIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\naccumulate(_InputIterator __first, _InputIterator __last, _Tp __init)\n{\n    for (; __first != __last; ++__first)\n        __init = __init + *__first;\n    return __init;\n}\n\ntemplate <class _InputIterator, class _Tp, class _BinaryOperation>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\naccumulate(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOperation __binary_op)\n{\n    for (; __first != __last; ++__first)\n        __init = __binary_op(__init, *__first);\n    return __init;\n}\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _InputIterator, class _Tp, class _BinaryOp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\nreduce(_InputIterator __first, _InputIterator __last, _Tp __init, _BinaryOp __b)\n{\n    for (; __first != __last; ++__first)\n        __init = __b(__init, *__first);\n    return __init;\n}\n\ntemplate <class _InputIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\nreduce(_InputIterator __first, _InputIterator __last, _Tp __init)\n{\n    return _VSTD::reduce(__first, __last, __init, _VSTD::plus<>());\n}\n\ntemplate <class _InputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename iterator_traits<_InputIterator>::value_type\nreduce(_InputIterator __first, _InputIterator __last)\n{\n    return _VSTD::reduce(__first, __last, \n       typename iterator_traits<_InputIterator>::value_type{});\n}\n#endif\n\ntemplate <class _InputIterator1, class _InputIterator2, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\ninner_product(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _Tp __init)\n{\n    for (; __first1 != __last1; ++__first1, (void) ++__first2)\n        __init = __init + *__first1 * *__first2;\n    return __init;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _Tp, class _BinaryOperation1, class _BinaryOperation2>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\ninner_product(_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2,\n              _Tp __init, _BinaryOperation1 __binary_op1, _BinaryOperation2 __binary_op2)\n{\n    for (; __first1 != __last1; ++__first1, (void) ++__first2)\n        __init = __binary_op1(__init, __binary_op2(*__first1, *__first2));\n    return __init;\n}\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _InputIterator, class _Tp, class _BinaryOp, class _UnaryOp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\ntransform_reduce(_InputIterator __first, _InputIterator __last, \n           _Tp __init,  _BinaryOp __b, _UnaryOp __u)\n{\n    for (; __first != __last; ++__first)\n        __init = __b(__init, __u(*__first));\n    return __init;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, \n          class _Tp, class _BinaryOp1, class _BinaryOp2>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\ntransform_reduce(_InputIterator1 __first1, _InputIterator1 __last1,\n                 _InputIterator2 __first2, _Tp __init,  _BinaryOp1 __b1, _BinaryOp2 __b2)\n{\n    for (; __first1 != __last1; ++__first1, (void) ++__first2)\n        __init = __b1(__init, __b2(*__first1, *__first2));\n    return __init;\n}\n\ntemplate <class _InputIterator1, class _InputIterator2, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp\ntransform_reduce(_InputIterator1 __first1, _InputIterator1 __last1, \n                 _InputIterator2 __first2, _Tp __init)\n{\n    return _VSTD::transform_reduce(__first1, __last1, __first2, __init, \n                                   _VSTD::plus<>(), _VSTD::multiplies<>());\n}\n#endif\n\ntemplate <class _InputIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\npartial_sum(_InputIterator __first, _InputIterator __last, _OutputIterator __result)\n{\n    if (__first != __last)\n    {\n        typename iterator_traits<_InputIterator>::value_type __t(*__first);\n        *__result = __t;\n        for (++__first, (void) ++__result; __first != __last; ++__first, (void) ++__result)\n        {\n            __t = __t + *__first;\n            *__result = __t;\n        }\n    }\n    return __result;\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _BinaryOperation>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\npartial_sum(_InputIterator __first, _InputIterator __last, _OutputIterator __result,\n              _BinaryOperation __binary_op)\n{\n    if (__first != __last)\n    {\n        typename iterator_traits<_InputIterator>::value_type __t(*__first);\n        *__result = __t;\n        for (++__first, (void) ++__result; __first != __last; ++__first, (void) ++__result)\n        {\n            __t = __binary_op(__t, *__first);\n            *__result = __t;\n        }\n    }\n    return __result;\n}\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _InputIterator, class _OutputIterator, class _Tp, class _BinaryOp>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nexclusive_scan(_InputIterator __first, _InputIterator __last, \n               _OutputIterator __result, _Tp __init, _BinaryOp __b)\n{\n    if (__first != __last)\n    {\n        _Tp __saved = __init;\n        do\n        {\n            __init = __b(__init, *__first);\n            *__result = __saved;\n            __saved = __init;\n            ++__result;\n        } while (++__first != __last);\n    }\n    return __result;\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nexclusive_scan(_InputIterator __first, _InputIterator __last, \n               _OutputIterator __result, _Tp __init)\n{\n    return _VSTD::exclusive_scan(__first, __last, __result, __init, _VSTD::plus<>());\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _Tp, class _BinaryOp>\n_OutputIterator inclusive_scan(_InputIterator __first, _InputIterator __last, \n                               _OutputIterator __result, _BinaryOp __b,  _Tp __init)\n{\n    for (; __first != __last; ++__first, (void) ++__result) {\n        __init = __b(__init, *__first);\n        *__result = __init;\n        }\n    return __result;\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _BinaryOp>\n_OutputIterator inclusive_scan(_InputIterator __first, _InputIterator __last, \n                               _OutputIterator __result, _BinaryOp __b)\n{\n    if (__first != __last) {\n        typename std::iterator_traits<_InputIterator>::value_type __init = *__first;\n        *__result++ = __init;\n        if (++__first != __last)\n            return _VSTD::inclusive_scan(__first, __last, __result, __b, __init);\n        }\n\n    return __result;\n}\n\ntemplate <class _InputIterator, class _OutputIterator>\n_OutputIterator inclusive_scan(_InputIterator __first, _InputIterator __last, \n                               _OutputIterator __result)\n{\n    return _VSTD::inclusive_scan(__first, __last, __result, std::plus<>());\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _Tp, \n          class _BinaryOp, class _UnaryOp>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\ntransform_exclusive_scan(_InputIterator __first, _InputIterator __last, \n                           _OutputIterator __result, _Tp __init,\n                           _BinaryOp __b, _UnaryOp __u)\n{\n    if (__first != __last)\n    {\n        _Tp __saved = __init;\n        do\n        {\n            __init = __b(__init, __u(*__first));\n            *__result = __saved;\n            __saved = __init;\n            ++__result;\n        } while (++__first != __last);\n    }\n    return __result;\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _Tp, class _BinaryOp, class _UnaryOp>\n_OutputIterator transform_inclusive_scan(_InputIterator __first, _InputIterator __last, \n                           _OutputIterator __result, _BinaryOp __b, _UnaryOp __u, _Tp __init)\n{\n    for (; __first != __last; ++__first, (void) ++__result) {\n        __init = __b(__init, __u(*__first));\n        *__result = __init;\n        }\n\n    return __result;\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _BinaryOp, class _UnaryOp>\n_OutputIterator transform_inclusive_scan(_InputIterator __first, _InputIterator __last, \n                               _OutputIterator __result, _BinaryOp __b, _UnaryOp __u)\n{\n    if (__first != __last) {\n        typename std::iterator_traits<_InputIterator>::value_type __init = __u(*__first);\n        *__result++ = __init;\n        if (++__first != __last)\n            return _VSTD::transform_inclusive_scan(__first, __last, __result, __b, __u, __init);\n        }\n    \n    return __result;\n}\n#endif\n\ntemplate <class _InputIterator, class _OutputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nadjacent_difference(_InputIterator __first, _InputIterator __last, _OutputIterator __result)\n{\n    if (__first != __last)\n    {\n        typename iterator_traits<_InputIterator>::value_type __t1(*__first);\n        *__result = __t1;\n        for (++__first, (void) ++__result; __first != __last; ++__first, (void) ++__result)\n        {\n            typename iterator_traits<_InputIterator>::value_type __t2(*__first);\n            *__result = __t2 - __t1;\n            __t1 = _VSTD::move(__t2);\n        }\n    }\n    return __result;\n}\n\ntemplate <class _InputIterator, class _OutputIterator, class _BinaryOperation>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nadjacent_difference(_InputIterator __first, _InputIterator __last, _OutputIterator __result,\n                      _BinaryOperation __binary_op)\n{\n    if (__first != __last)\n    {\n        typename iterator_traits<_InputIterator>::value_type __t1(*__first);\n        *__result = __t1;\n        for (++__first, (void) ++__result; __first != __last; ++__first, (void) ++__result)\n        {\n            typename iterator_traits<_InputIterator>::value_type __t2(*__first);\n            *__result = __binary_op(__t2, __t1);\n            __t1 = _VSTD::move(__t2);\n        }\n    }\n    return __result;\n}\n\ntemplate <class _ForwardIterator, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\niota(_ForwardIterator __first, _ForwardIterator __last, _Tp __value_)\n{\n    for (; __first != __last; ++__first, (void) ++__value_)\n        *__first = __value_;\n}\n\n\n#if _LIBCPP_STD_VER > 14\ntemplate <typename _Result, typename _Source, bool _IsSigned = is_signed<_Source>::value> struct __abs;\n\ntemplate <typename _Result, typename _Source>\nstruct __abs<_Result, _Source, true> {\n    _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n    _Result operator()(_Source __t) const noexcept\n    {\n    if (__t >= 0) return __t;\n    if (__t == numeric_limits<_Source>::min()) return -static_cast<_Result>(__t);\n    return -__t;\n    }\n};\n\ntemplate <typename _Result, typename _Source>\nstruct __abs<_Result, _Source, false> {\n    _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n    _Result operator()(_Source __t) const noexcept { return __t; }\n};\n\n\ntemplate<class _Tp>\n_LIBCPP_CONSTEXPR _LIBCPP_HIDDEN\n_Tp __gcd(_Tp __m, _Tp __n)\n{\n    static_assert((!is_signed<_Tp>::value), \"\");\n    return __n == 0 ? __m : _VSTD::__gcd<_Tp>(__n, __m % __n);\n}\n\n\ntemplate<class _Tp, class _Up>\n_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\ncommon_type_t<_Tp,_Up>\ngcd(_Tp __m, _Up __n)\n{\n    static_assert((is_integral<_Tp>::value && is_integral<_Up>::value), \"Arguments to gcd must be integer types\");\n    static_assert((!is_same<typename remove_cv<_Tp>::type, bool>::value), \"First argument to gcd cannot be bool\" );\n    static_assert((!is_same<typename remove_cv<_Up>::type, bool>::value), \"Second argument to gcd cannot be bool\" );\n    using _Rp = common_type_t<_Tp,_Up>;\n    using _Wp = make_unsigned_t<_Rp>;\n    return static_cast<_Rp>(_VSTD::__gcd(\n        static_cast<_Wp>(__abs<_Rp, _Tp>()(__m)),\n        static_cast<_Wp>(__abs<_Rp, _Up>()(__n))));\n}\n\ntemplate<class _Tp, class _Up>\n_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\ncommon_type_t<_Tp,_Up>\nlcm(_Tp __m, _Up __n)\n{\n    static_assert((is_integral<_Tp>::value && is_integral<_Up>::value), \"Arguments to lcm must be integer types\");\n    static_assert((!is_same<typename remove_cv<_Tp>::type, bool>::value), \"First argument to lcm cannot be bool\" );\n    static_assert((!is_same<typename remove_cv<_Up>::type, bool>::value), \"Second argument to lcm cannot be bool\" );\n    if (__m == 0 || __n == 0)\n        return 0;\n\n    using _Rp = common_type_t<_Tp,_Up>;\n    _Rp __val1 = __abs<_Rp, _Tp>()(__m) / _VSTD::gcd(__m, __n);\n    _Rp __val2 = __abs<_Rp, _Up>()(__n);\n    _LIBCPP_ASSERT((numeric_limits<_Rp>::max() / __val1 > __val2), \"Overflow in lcm\");\n    return __val1 * __val2;\n}\n\n#endif /* _LIBCPP_STD_VER > 14 */\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_NUMERIC\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ostream",
    "content": "// -*- C++ -*-\n//===-------------------------- ostream -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_OSTREAM\n#define _LIBCPP_OSTREAM\n\n/*\n    ostream synopsis\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass basic_ostream\n    : virtual public basic_ios<charT,traits>\n{\npublic:\n    // types (inherited from basic_ios (27.5.4)):\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    // 27.7.2.2 Constructor/destructor:\n    explicit basic_ostream(basic_streambuf<char_type,traits>* sb);\n    basic_ostream(basic_ostream&& rhs);\n    virtual ~basic_ostream();\n\n    // 27.7.2.3 Assign/swap\n    basic_ostream& operator=(const basic_ostream& rhs) = delete; // C++14\n    basic_ostream& operator=(basic_ostream&& rhs);\n    void swap(basic_ostream& rhs);\n\n    // 27.7.2.4 Prefix/suffix:\n    class sentry;\n\n    // 27.7.2.6 Formatted output:\n    basic_ostream& operator<<(basic_ostream& (*pf)(basic_ostream&));\n    basic_ostream& operator<<(basic_ios<charT, traits>& (*pf)(basic_ios<charT,traits>&));\n    basic_ostream& operator<<(ios_base& (*pf)(ios_base&));\n    basic_ostream& operator<<(bool n);\n    basic_ostream& operator<<(short n);\n    basic_ostream& operator<<(unsigned short n);\n    basic_ostream& operator<<(int n);\n    basic_ostream& operator<<(unsigned int n);\n    basic_ostream& operator<<(long n);\n    basic_ostream& operator<<(unsigned long n);\n    basic_ostream& operator<<(long long n);\n    basic_ostream& operator<<(unsigned long long n);\n    basic_ostream& operator<<(float f);\n    basic_ostream& operator<<(double f);\n    basic_ostream& operator<<(long double f);\n    basic_ostream& operator<<(const void* p);\n    basic_ostream& operator<<(basic_streambuf<char_type,traits>* sb);\n\n    // 27.7.2.7 Unformatted output:\n    basic_ostream& put(char_type c);\n    basic_ostream& write(const char_type* s, streamsize n);\n    basic_ostream& flush();\n\n    // 27.7.2.5 seeks:\n    pos_type tellp();\n    basic_ostream& seekp(pos_type);\n    basic_ostream& seekp(off_type, ios_base::seekdir);\nprotected:\n    basic_ostream(const basic_ostream& rhs) = delete;\n    basic_ostream(basic_ostream&& rhs);\n    // 27.7.3.3 Assign/swap\n    basic_ostream& operator=(basic_ostream& rhs) = delete;\n    basic_ostream& operator=(const basic_ostream&& rhs);\n    void swap(basic_ostream& rhs);\n};\n\n// 27.7.2.6.4 character inserters\n\ntemplate<class charT, class traits>\n  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, charT);\n\ntemplate<class charT, class traits>\n  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, char);\n\ntemplate<class traits>\n  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, char);\n\n// signed and unsigned\n\ntemplate<class traits>\n  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, signed char);\n\ntemplate<class traits>\n  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, unsigned char);\n\n// NTBS\ntemplate<class charT, class traits>\n  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const charT*);\n\ntemplate<class charT, class traits>\n  basic_ostream<charT,traits>& operator<<(basic_ostream<charT,traits>&, const char*);\n\ntemplate<class traits>\n  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const char*);\n\n// signed and unsigned\ntemplate<class traits>\nbasic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const signed char*);\n\ntemplate<class traits>\n  basic_ostream<char,traits>& operator<<(basic_ostream<char,traits>&, const unsigned char*);\n\n// swap:\ntemplate <class charT, class traits>\n  void swap(basic_ostream<charT, traits>& x, basic_ostream<charT, traits>& y);\n\ntemplate <class charT, class traits>\n  basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os);\n\ntemplate <class charT, class traits>\n  basic_ostream<charT,traits>& ends(basic_ostream<charT,traits>& os);\n\ntemplate <class charT, class traits>\n  basic_ostream<charT,traits>& flush(basic_ostream<charT,traits>& os);\n\n// rvalue stream insertion\ntemplate <class charT, class traits, class T>\n  basic_ostream<charT, traits>&\n  operator<<(basic_ostream<charT, traits>&& os, const T& x);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <ios>\n#include <streambuf>\n#include <locale>\n#include <iterator>\n#include <bitset>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_ostream\n    : virtual public basic_ios<_CharT, _Traits>\n{\npublic:\n    // types (inherited from basic_ios (27.5.4)):\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    // 27.7.2.2 Constructor/destructor:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    explicit basic_ostream(basic_streambuf<char_type, traits_type>* __sb)\n    { this->init(__sb); }\n    virtual ~basic_ostream();\nprotected:\n#ifndef _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_ostream(basic_ostream&& __rhs);\n\n    // 27.7.2.3 Assign/swap\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_ostream& operator=(basic_ostream&& __rhs);\n#endif\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    void swap(basic_ostream& __rhs)\n    { basic_ios<char_type, traits_type>::swap(__rhs); }\n\n#ifndef _LIBCPP_CXX03_LANG\n    basic_ostream           (const basic_ostream& __rhs) = delete;\n    basic_ostream& operator=(const basic_ostream& __rhs) = delete;\n#else\n    basic_ostream           (const basic_ostream& __rhs); // not defined\n    basic_ostream& operator=(const basic_ostream& __rhs); // not defined\n#endif\npublic:\n\n    // 27.7.2.4 Prefix/suffix:\n    class _LIBCPP_TEMPLATE_VIS sentry;\n\n    // 27.7.2.6 Formatted output:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_ostream& operator<<(basic_ostream& (*__pf)(basic_ostream&))\n    { return __pf(*this); }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_ostream& operator<<(basic_ios<char_type, traits_type>&\n                              (*__pf)(basic_ios<char_type,traits_type>&))\n    { __pf(*this); return *this; }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_ostream& operator<<(ios_base& (*__pf)(ios_base&))\n    { __pf(*this); return *this; }\n\n    basic_ostream& operator<<(bool __n);\n    basic_ostream& operator<<(short __n);\n    basic_ostream& operator<<(unsigned short __n);\n    basic_ostream& operator<<(int __n);\n    basic_ostream& operator<<(unsigned int __n);\n    basic_ostream& operator<<(long __n);\n    basic_ostream& operator<<(unsigned long __n);\n    basic_ostream& operator<<(long long __n);\n    basic_ostream& operator<<(unsigned long long __n);\n    basic_ostream& operator<<(float __f);\n    basic_ostream& operator<<(double __f);\n    basic_ostream& operator<<(long double __f);\n    basic_ostream& operator<<(const void* __p);\n    basic_ostream& operator<<(basic_streambuf<char_type, traits_type>* __sb);\n\n    // 27.7.2.7 Unformatted output:\n    basic_ostream& put(char_type __c);\n    basic_ostream& write(const char_type* __s, streamsize __n);\n    basic_ostream& flush();\n\n    // 27.7.2.5 seeks:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    pos_type tellp();\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_ostream& seekp(pos_type __pos);\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_ostream& seekp(off_type __off, ios_base::seekdir __dir);\n\nprotected:\n    _LIBCPP_ALWAYS_INLINE\n    basic_ostream() {}  // extension, intentially does not initialize\n};\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_ostream<_CharT, _Traits>::sentry\n{\n    bool __ok_;\n    basic_ostream<_CharT, _Traits>& __os_;\n\n    sentry(const sentry&); // = delete;\n    sentry& operator=(const sentry&); // = delete;\n\npublic:\n    explicit sentry(basic_ostream<_CharT, _Traits>& __os);\n    ~sentry();\n\n    _LIBCPP_ALWAYS_INLINE\n        _LIBCPP_EXPLICIT\n        operator bool() const {return __ok_;}\n};\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>::sentry::sentry(basic_ostream<_CharT, _Traits>& __os)\n    : __ok_(false),\n      __os_(__os)\n{\n    if (__os.good())\n    {\n        if (__os.tie())\n            __os.tie()->flush();\n        __ok_ = true;\n    }\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>::sentry::~sentry()\n{\n    if (__os_.rdbuf() && __os_.good() && (__os_.flags() & ios_base::unitbuf)\n                      && !uncaught_exception())\n    {\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            if (__os_.rdbuf()->pubsync() == -1)\n                __os_.setstate(ios_base::badbit);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>::basic_ostream(basic_ostream&& __rhs)\n{\n    this->move(__rhs);\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator=(basic_ostream&& __rhs)\n{\n    swap(__rhs);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>::~basic_ostream()\n{\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(basic_streambuf<char_type, traits_type>* __sb)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            if (__sb)\n            {\n#ifndef _LIBCPP_NO_EXCEPTIONS\n                try\n                {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n                    typedef istreambuf_iterator<_CharT, _Traits> _Ip;\n                    typedef ostreambuf_iterator<_CharT, _Traits> _Op;\n                    _Ip __i(__sb);\n                    _Ip __eof;\n                    _Op __o(*this);\n                    size_t __c = 0;\n                    for (; __i != __eof; ++__i, ++__o, ++__c)\n                    {\n                        *__o = *__i;\n                        if (__o.failed())\n                            break;\n                    }\n                    if (__c == 0)\n                        this->setstate(ios_base::failbit);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n                }\n                catch (...)\n                {\n                    this->__set_failbit_and_consider_rethrow();\n                }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            }\n            else\n                this->setstate(ios_base::badbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(bool __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), __n).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(short __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            ios_base::fmtflags __flags = ios_base::flags() & ios_base::basefield;\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(),\n                        __flags == ios_base::oct || __flags == ios_base::hex ?\n                        static_cast<long>(static_cast<unsigned short>(__n))  :\n                        static_cast<long>(__n)).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(unsigned short __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), static_cast<unsigned long>(__n)).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(int __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            ios_base::fmtflags __flags = ios_base::flags() & ios_base::basefield;\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(),\n                        __flags == ios_base::oct || __flags == ios_base::hex ?\n                        static_cast<long>(static_cast<unsigned int>(__n))  :\n                        static_cast<long>(__n)).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(unsigned int __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), static_cast<unsigned long>(__n)).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(long __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), __n).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(unsigned long __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), __n).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(long long __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), __n).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(unsigned long long __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), __n).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(float __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), static_cast<double>(__n)).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(double __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), __n).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(long double __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), __n).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::operator<<(const void* __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef num_put<char_type, ostreambuf_iterator<char_type, traits_type> > _Fp;\n            const _Fp& __f = use_facet<_Fp>(this->getloc());\n            if (__f.put(*this, *this, this->fill(), __n).failed())\n                this->setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\n__put_character_sequence(basic_ostream<_CharT, _Traits>& __os,\n                          const _CharT* __str, size_t __len)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_ostream<_CharT, _Traits>::sentry __s(__os);\n        if (__s)\n        {\n            typedef ostreambuf_iterator<_CharT, _Traits> _Ip;\n            if (__pad_and_output(_Ip(__os),\n                                 __str,\n                                 (__os.flags() & ios_base::adjustfield) == ios_base::left ?\n                                     __str + __len :\n                                     __str,\n                                 __str + __len,\n                                 __os,\n                                 __os.fill()).failed())\n                __os.setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __os.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __os;\n}\n\n\ntemplate<class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, _CharT __c)\n{\n    return _VSTD::__put_character_sequence(__os, &__c, 1);\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, char __cn)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_ostream<_CharT, _Traits>::sentry __s(__os);\n        if (__s)\n        {\n            _CharT __c = __os.widen(__cn);\n            typedef ostreambuf_iterator<_CharT, _Traits> _Ip;\n            if (__pad_and_output(_Ip(__os),\n                                 &__c,\n                                 (__os.flags() & ios_base::adjustfield) == ios_base::left ?\n                                     &__c + 1 :\n                                     &__c,\n                                 &__c + 1,\n                                 __os,\n                                 __os.fill()).failed())\n                __os.setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __os.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __os;\n}\n\ntemplate<class _Traits>\nbasic_ostream<char, _Traits>&\noperator<<(basic_ostream<char, _Traits>& __os, char __c)\n{\n    return _VSTD::__put_character_sequence(__os, &__c, 1);\n}\n\ntemplate<class _Traits>\nbasic_ostream<char, _Traits>&\noperator<<(basic_ostream<char, _Traits>& __os, signed char __c)\n{\n    return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);\n}\n\ntemplate<class _Traits>\nbasic_ostream<char, _Traits>&\noperator<<(basic_ostream<char, _Traits>& __os, unsigned char __c)\n{\n    return _VSTD::__put_character_sequence(__os, (char *) &__c, 1);\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const _CharT* __str)\n{\n    return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const char* __strn)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        typename basic_ostream<_CharT, _Traits>::sentry __s(__os);\n        if (__s)\n        {\n            typedef ostreambuf_iterator<_CharT, _Traits> _Ip;\n            size_t __len = char_traits<char>::length(__strn);\n            const int __bs = 100;\n            _CharT __wbb[__bs];\n            _CharT* __wb = __wbb;\n            unique_ptr<_CharT, void(*)(void*)> __h(0, free);\n            if (__len > __bs)\n            {\n                __wb = (_CharT*)malloc(__len*sizeof(_CharT));\n                if (__wb == 0)\n                    __throw_bad_alloc();\n                __h.reset(__wb);\n            }\n            for (_CharT* __p = __wb; *__strn != '\\0'; ++__strn, ++__p)\n                *__p = __os.widen(*__strn);\n            if (__pad_and_output(_Ip(__os),\n                                 __wb,\n                                 (__os.flags() & ios_base::adjustfield) == ios_base::left ?\n                                     __wb + __len :\n                                     __wb,\n                                 __wb + __len,\n                                 __os,\n                                 __os.fill()).failed())\n                __os.setstate(ios_base::badbit | ios_base::failbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        __os.__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __os;\n}\n\ntemplate<class _Traits>\nbasic_ostream<char, _Traits>&\noperator<<(basic_ostream<char, _Traits>& __os, const char* __str)\n{\n    return _VSTD::__put_character_sequence(__os, __str, _Traits::length(__str));\n}\n\ntemplate<class _Traits>\nbasic_ostream<char, _Traits>&\noperator<<(basic_ostream<char, _Traits>& __os, const signed char* __str)\n{\n    const char *__s = (const char *) __str;\n    return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));\n}\n\ntemplate<class _Traits>\nbasic_ostream<char, _Traits>&\noperator<<(basic_ostream<char, _Traits>& __os, const unsigned char* __str)\n{\n    const char *__s = (const char *) __str;\n    return _VSTD::__put_character_sequence(__os, __s, _Traits::length(__s));\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::put(char_type __c)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __s(*this);\n        if (__s)\n        {\n            typedef ostreambuf_iterator<_CharT, _Traits> _Op;\n            _Op __o(*this);\n            *__o = __c;\n            if (__o.failed())\n                this->setstate(ios_base::badbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::write(const char_type* __s, streamsize __n)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        sentry __sen(*this);\n        if (__sen && __n)\n        {\n            if (this->rdbuf()->sputn(__s, __n) != __n)\n                this->setstate(ios_base::badbit);\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::flush()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        if (this->rdbuf())\n        {\n            sentry __s(*this);\n            if (__s)\n            {\n                if (this->rdbuf()->pubsync() == -1)\n                    this->setstate(ios_base::badbit);\n            }\n        }\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        this->__set_badbit_and_consider_rethrow();\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_ostream<_CharT, _Traits>::pos_type\nbasic_ostream<_CharT, _Traits>::tellp()\n{\n    if (this->fail())\n        return pos_type(-1);\n    return this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out);\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::seekp(pos_type __pos)\n{\n    sentry __s(*this);\n    if (!this->fail())\n    {\n        if (this->rdbuf()->pubseekpos(__pos, ios_base::out) == pos_type(-1))\n            this->setstate(ios_base::failbit);\n    }\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\nbasic_ostream<_CharT, _Traits>::seekp(off_type __off, ios_base::seekdir __dir)\n{\n    sentry __s(*this);\n    if (!this->fail())\n    {\n        if (this->rdbuf()->pubseekoff(__off, __dir, ios_base::out) == pos_type(-1))\n            this->setstate(ios_base::failbit);\n    }\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\nendl(basic_ostream<_CharT, _Traits>& __os)\n{\n    __os.put(__os.widen('\\n'));\n    __os.flush();\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\nends(basic_ostream<_CharT, _Traits>& __os)\n{\n    __os.put(_CharT());\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\nflush(basic_ostream<_CharT, _Traits>& __os)\n{\n    __os.flush();\n    return __os;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Stream, class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    !is_lvalue_reference<_Stream>::value &&\n    is_base_of<ios_base, _Stream>::value,\n    _Stream&&\n>::type\noperator<<(_Stream&& __os, const _Tp& __x)\n{\n    __os << __x;\n    return _VSTD::move(__os);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const basic_string<_CharT, _Traits, _Allocator>& __str)\n{\n    return _VSTD::__put_character_sequence(__os, __str.data(), __str.size());\n}\n\ntemplate<class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const basic_string_view<_CharT, _Traits> __sv)\n{\n    return _VSTD::__put_character_sequence(__os, __sv.data(), __sv.size());\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __ec)\n{\n    return __os << __ec.category().name() << ':' << __ec.value();\n}\n\ntemplate<class _CharT, class _Traits, class _Yp>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Yp> const& __p)\n{\n    return __os << __p.get();\n}\n\ntemplate <class _CharT, class _Traits, size_t _Size>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Size>& __x)\n{\n    return __os << __x.template to_string<_CharT, _Traits>\n                        (use_facet<ctype<_CharT> >(__os.getloc()).widen('0'),\n                         use_facet<ctype<_CharT> >(__os.getloc()).widen('1'));\n}\n\n#ifndef _LIBCPP_AVAILABILITY_NO_STREAMS_EXTERN_TEMPLATE\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_ostream<char>)\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_ostream<wchar_t>)\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_OSTREAM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/queue",
    "content": "// -*- C++ -*-\n//===--------------------------- queue ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_QUEUE\n#define _LIBCPP_QUEUE\n\n/*\n    queue synopsis\n\nnamespace std\n{\n\ntemplate <class T, class Container = deque<T>>\nclass queue\n{\npublic:\n    typedef Container                                container_type;\n    typedef typename container_type::value_type      value_type;\n    typedef typename container_type::reference       reference;\n    typedef typename container_type::const_reference const_reference;\n    typedef typename container_type::size_type       size_type;\n\nprotected:\n    container_type c;\n\npublic:\n    queue() = default;\n    ~queue() = default;\n\n    queue(const queue& q) = default;\n    queue(queue&& q) = default;\n\n    queue& operator=(const queue& q) = default;\n    queue& operator=(queue&& q) = default;\n\n    explicit queue(const container_type& c);\n    explicit queue(container_type&& c)\n    template <class Alloc>\n        explicit queue(const Alloc& a);\n    template <class Alloc>\n        queue(const container_type& c, const Alloc& a);\n    template <class Alloc>\n        queue(container_type&& c, const Alloc& a);\n    template <class Alloc>\n        queue(const queue& q, const Alloc& a);\n    template <class Alloc>\n        queue(queue&& q, const Alloc& a);\n\n    bool      empty() const;\n    size_type size() const;\n\n    reference       front();\n    const_reference front() const;\n    reference       back();\n    const_reference back() const;\n\n    void push(const value_type& v);\n    void push(value_type&& v);\n    template <class... Args> reference emplace(Args&&... args); // reference in C++17\n    void pop();\n\n    void swap(queue& q) noexcept(is_nothrow_swappable_v<Container>)\n};\n\ntemplate <class T, class Container>\n  bool operator==(const queue<T, Container>& x,const queue<T, Container>& y);\n\ntemplate <class T, class Container>\n  bool operator< (const queue<T, Container>& x,const queue<T, Container>& y);\n\ntemplate <class T, class Container>\n  bool operator!=(const queue<T, Container>& x,const queue<T, Container>& y);\n\ntemplate <class T, class Container>\n  bool operator> (const queue<T, Container>& x,const queue<T, Container>& y);\n\ntemplate <class T, class Container>\n  bool operator>=(const queue<T, Container>& x,const queue<T, Container>& y);\n\ntemplate <class T, class Container>\n  bool operator<=(const queue<T, Container>& x,const queue<T, Container>& y);\n\ntemplate <class T, class Container>\n  void swap(queue<T, Container>& x, queue<T, Container>& y)\n  noexcept(noexcept(x.swap(y)));\n\ntemplate <class T, class Container = vector<T>,\n          class Compare = less<typename Container::value_type>>\nclass priority_queue\n{\npublic:\n    typedef Container                                container_type;\n    typedef typename container_type::value_type      value_type;\n    typedef typename container_type::reference       reference;\n    typedef typename container_type::const_reference const_reference;\n    typedef typename container_type::size_type       size_type;\n\nprotected:\n    container_type c;\n    Compare comp;\n\npublic:\n    priority_queue() = default;\n    ~priority_queue() = default;\n\n    priority_queue(const priority_queue& q) = default;\n    priority_queue(priority_queue&& q) = default;\n\n    priority_queue& operator=(const priority_queue& q) = default;\n    priority_queue& operator=(priority_queue&& q) = default;\n\n    explicit priority_queue(const Compare& comp);\n    priority_queue(const Compare& comp, const container_type& c);\n    explicit priority_queue(const Compare& comp, container_type&& c);\n    template <class InputIterator>\n        priority_queue(InputIterator first, InputIterator last,\n                       const Compare& comp = Compare());\n    template <class InputIterator>\n        priority_queue(InputIterator first, InputIterator last,\n                       const Compare& comp, const container_type& c);\n    template <class InputIterator>\n        priority_queue(InputIterator first, InputIterator last,\n                       const Compare& comp, container_type&& c);\n    template <class Alloc>\n        explicit priority_queue(const Alloc& a);\n    template <class Alloc>\n        priority_queue(const Compare& comp, const Alloc& a);\n    template <class Alloc>\n        priority_queue(const Compare& comp, const container_type& c,\n                       const Alloc& a);\n    template <class Alloc>\n        priority_queue(const Compare& comp, container_type&& c,\n                       const Alloc& a);\n    template <class Alloc>\n        priority_queue(const priority_queue& q, const Alloc& a);\n    template <class Alloc>\n        priority_queue(priority_queue&& q, const Alloc& a);\n\n    bool            empty() const;\n    size_type       size() const;\n    const_reference top() const;\n\n    void push(const value_type& v);\n    void push(value_type&& v);\n    template <class... Args> void emplace(Args&&... args);\n    void pop();\n\n    void swap(priority_queue& q)\n        noexcept(is_nothrow_swappable_v<Container> &&\n                 is_nothrow_swappable_v<Comp>)\n};\n\ntemplate <class T, class Container, class Compare>\n  void swap(priority_queue<T, Container, Compare>& x,\n            priority_queue<T, Container, Compare>& y)\n            noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n#include <deque>\n#include <vector>\n#include <functional>\n#include <algorithm>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp, class _Container = deque<_Tp> > class _LIBCPP_TEMPLATE_VIS queue;\n\ntemplate <class _Tp, class _Container>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y);\n\ntemplate <class _Tp, class _Container>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y);\n\ntemplate <class _Tp, class _Container /*= deque<_Tp>*/>\nclass _LIBCPP_TEMPLATE_VIS queue\n{\npublic:\n    typedef _Container                               container_type;\n    typedef typename container_type::value_type      value_type;\n    typedef typename container_type::reference       reference;\n    typedef typename container_type::const_reference const_reference;\n    typedef typename container_type::size_type       size_type;\n    static_assert((is_same<_Tp, value_type>::value), \"\" );\n\nprotected:\n    container_type c;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    queue()\n        _NOEXCEPT_(is_nothrow_default_constructible<container_type>::value)\n        : c() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    queue(const queue& __q) : c(__q.c) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    queue& operator=(const queue& __q) {c = __q.c; return *this;}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    queue(queue&& __q)\n        _NOEXCEPT_(is_nothrow_move_constructible<container_type>::value)\n        : c(_VSTD::move(__q.c)) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    queue& operator=(queue&& __q)\n        _NOEXCEPT_(is_nothrow_move_assignable<container_type>::value)\n        {c = _VSTD::move(__q.c); return *this;}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit queue(const container_type& __c)  : c(__c) {}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit queue(container_type&& __c) : c(_VSTD::move(__c)) {}\n#endif  // _LIBCPP_CXX03_LANG\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit queue(const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0)\n            : c(__a) {}\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        queue(const queue& __q, const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0)\n            : c(__q.c, __a) {}\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        queue(const container_type& __c, const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0)\n            : c(__c, __a) {}\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        queue(container_type&& __c, const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0)\n            : c(_VSTD::move(__c), __a) {}\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        queue(queue&& __q, const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0)\n            : c(_VSTD::move(__q.c), __a) {}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const {return c.empty();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const  {return c.size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference       front()       {return c.front();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference front() const {return c.front();}\n    _LIBCPP_INLINE_VISIBILITY\n    reference       back()        {return c.back();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference back() const  {return c.back();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void push(const value_type& __v) {c.push_back(__v);}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void push(value_type&& __v)      {c.push_back(_VSTD::move(__v));}\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n#if _LIBCPP_STD_VER > 14\n        reference emplace(_Args&&... __args)\n            { return c.emplace_back(_VSTD::forward<_Args>(__args)...);}\n#else\n        void     emplace(_Args&&... __args)\n            {        c.emplace_back(_VSTD::forward<_Args>(__args)...);}\n#endif\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void pop() {c.pop_front();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(queue& __q)\n        _NOEXCEPT_(__is_nothrow_swappable<container_type>::value)\n    {\n        using _VSTD::swap;\n        swap(c, __q.c);\n    }\n\n    template <class _T1, class _C1>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    bool\n    operator==(const queue<_T1, _C1>& __x,const queue<_T1, _C1>& __y);\n\n    template <class _T1, class _C1>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    bool\n    operator< (const queue<_T1, _C1>& __x,const queue<_T1, _C1>& __y);\n};\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y)\n{\n    return __x.c == __y.c;\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y)\n{\n    return __x.c < __y.c;\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const queue<_Tp, _Container>& __x,const queue<_Tp, _Container>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if<\n    __is_swappable<_Container>::value,\n    void\n>::type\nswap(queue<_Tp, _Container>& __x, queue<_Tp, _Container>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Tp, class _Container, class _Alloc>\nstruct _LIBCPP_TEMPLATE_VIS uses_allocator<queue<_Tp, _Container>, _Alloc>\n    : public uses_allocator<_Container, _Alloc>\n{\n};\n\ntemplate <class _Tp, class _Container = vector<_Tp>,\n          class _Compare = less<typename _Container::value_type> >\nclass _LIBCPP_TEMPLATE_VIS priority_queue\n{\npublic:\n    typedef _Container                               container_type;\n    typedef _Compare                                 value_compare;\n    typedef typename container_type::value_type      value_type;\n    typedef typename container_type::reference       reference;\n    typedef typename container_type::const_reference const_reference;\n    typedef typename container_type::size_type       size_type;\n    static_assert((is_same<_Tp, value_type>::value), \"\" );\n\nprotected:\n    container_type c;\n    value_compare comp;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    priority_queue()\n        _NOEXCEPT_(is_nothrow_default_constructible<container_type>::value &&\n                   is_nothrow_default_constructible<value_compare>::value)\n        : c(), comp() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    priority_queue(const priority_queue& __q) : c(__q.c), comp(__q.comp) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    priority_queue& operator=(const priority_queue& __q)\n        {c = __q.c; comp = __q.comp; return *this;}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    priority_queue(priority_queue&& __q)\n        _NOEXCEPT_(is_nothrow_move_constructible<container_type>::value &&\n                   is_nothrow_move_constructible<value_compare>::value)\n        : c(_VSTD::move(__q.c)), comp(_VSTD::move(__q.comp)) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    priority_queue& operator=(priority_queue&& __q)\n        _NOEXCEPT_(is_nothrow_move_assignable<container_type>::value &&\n                   is_nothrow_move_assignable<value_compare>::value)\n        {c = _VSTD::move(__q.c); comp = _VSTD::move(__q.comp); return *this;}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit priority_queue(const value_compare& __comp)\n        : c(), comp(__comp) {}\n    _LIBCPP_INLINE_VISIBILITY\n    priority_queue(const value_compare& __comp, const container_type& __c);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit priority_queue(const value_compare& __comp, container_type&& __c);\n#endif\n    template <class _InputIter>\n        _LIBCPP_INLINE_VISIBILITY\n        priority_queue(_InputIter __f, _InputIter __l,\n                       const value_compare& __comp = value_compare());\n    template <class _InputIter>\n        _LIBCPP_INLINE_VISIBILITY\n        priority_queue(_InputIter __f, _InputIter __l,\n                       const value_compare& __comp, const container_type& __c);\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _InputIter>\n        _LIBCPP_INLINE_VISIBILITY\n        priority_queue(_InputIter __f, _InputIter __l,\n                       const value_compare& __comp, container_type&& __c);\n#endif  // _LIBCPP_CXX03_LANG\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit priority_queue(const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0);\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        priority_queue(const value_compare& __comp, const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0);\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        priority_queue(const value_compare& __comp, const container_type& __c,\n                       const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0);\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        priority_queue(const priority_queue& __q, const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0);\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        priority_queue(const value_compare& __comp, container_type&& __c,\n                       const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0);\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        priority_queue(priority_queue&& __q, const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0);\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool            empty() const {return c.empty();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type       size() const  {return c.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference top() const   {return c.front();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void push(const value_type& __v);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void push(value_type&& __v);\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    void emplace(_Args&&... __args);\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void pop();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(priority_queue& __q)\n        _NOEXCEPT_(__is_nothrow_swappable<container_type>::value &&\n                   __is_nothrow_swappable<value_compare>::value);\n};\n\ntemplate <class _Tp, class _Container, class _Compare>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(const _Compare& __comp,\n                                                          const container_type& __c)\n    : c(__c),\n      comp(__comp)\n{\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Container, class _Compare>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(const value_compare& __comp,\n                                                          container_type&& __c)\n    : c(_VSTD::move(__c)),\n      comp(__comp)\n{\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _InputIter>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(_InputIter __f, _InputIter __l,\n                                                          const value_compare& __comp)\n    : c(__f, __l),\n      comp(__comp)\n{\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _InputIter>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(_InputIter __f, _InputIter __l,\n                                                          const value_compare& __comp,\n                                                          const container_type& __c)\n    : c(__c),\n      comp(__comp)\n{\n    c.insert(c.end(), __f, __l);\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _InputIter>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(_InputIter __f, _InputIter __l,\n                                                          const value_compare& __comp,\n                                                          container_type&& __c)\n    : c(_VSTD::move(__c)),\n      comp(__comp)\n{\n    c.insert(c.end(), __f, __l);\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _Alloc>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type*)\n    : c(__a)\n{\n}\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _Alloc>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(const value_compare& __comp,\n                                                          const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type*)\n    : c(__a),\n      comp(__comp)\n{\n}\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _Alloc>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(const value_compare& __comp,\n                                                          const container_type& __c,\n                                                          const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type*)\n    : c(__c, __a),\n      comp(__comp)\n{\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _Alloc>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(const priority_queue& __q,\n                                                          const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type*)\n    : c(__q.c, __a),\n      comp(__q.comp)\n{\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _Alloc>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(const value_compare& __comp,\n                                                          container_type&& __c,\n                                                          const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type*)\n    : c(_VSTD::move(__c), __a),\n      comp(__comp)\n{\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class _Alloc>\ninline\npriority_queue<_Tp, _Container, _Compare>::priority_queue(priority_queue&& __q,\n                                                          const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type*)\n    : c(_VSTD::move(__q.c), __a),\n      comp(_VSTD::move(__q.comp))\n{\n    _VSTD::make_heap(c.begin(), c.end(), comp);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Container, class _Compare>\ninline\nvoid\npriority_queue<_Tp, _Container, _Compare>::push(const value_type& __v)\n{\n    c.push_back(__v);\n    _VSTD::push_heap(c.begin(), c.end(), comp);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Container, class _Compare>\ninline\nvoid\npriority_queue<_Tp, _Container, _Compare>::push(value_type&& __v)\n{\n    c.push_back(_VSTD::move(__v));\n    _VSTD::push_heap(c.begin(), c.end(), comp);\n}\n\ntemplate <class _Tp, class _Container, class _Compare>\ntemplate <class... _Args>\ninline\nvoid\npriority_queue<_Tp, _Container, _Compare>::emplace(_Args&&... __args)\n{\n    c.emplace_back(_VSTD::forward<_Args>(__args)...);\n    _VSTD::push_heap(c.begin(), c.end(), comp);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Container, class _Compare>\ninline\nvoid\npriority_queue<_Tp, _Container, _Compare>::pop()\n{\n    _VSTD::pop_heap(c.begin(), c.end(), comp);\n    c.pop_back();\n}\n\ntemplate <class _Tp, class _Container, class _Compare>\ninline\nvoid\npriority_queue<_Tp, _Container, _Compare>::swap(priority_queue& __q)\n        _NOEXCEPT_(__is_nothrow_swappable<container_type>::value &&\n                   __is_nothrow_swappable<value_compare>::value)\n{\n    using _VSTD::swap;\n    swap(c, __q.c);\n    swap(comp, __q.comp);\n}\n\ntemplate <class _Tp, class _Container, class _Compare>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if<\n    __is_swappable<_Container>::value\n    && __is_swappable<_Compare>::value,\n    void\n>::type\nswap(priority_queue<_Tp, _Container, _Compare>& __x,\n     priority_queue<_Tp, _Container, _Compare>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Tp, class _Container, class _Compare, class _Alloc>\nstruct _LIBCPP_TEMPLATE_VIS uses_allocator<priority_queue<_Tp, _Container, _Compare>, _Alloc>\n    : public uses_allocator<_Container, _Alloc>\n{\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_QUEUE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/random",
    "content": "// -*- C++ -*-\n//===--------------------------- random -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_RANDOM\n#define _LIBCPP_RANDOM\n\n/*\n    random synopsis\n\n#include <initializer_list>\n\nnamespace std\n{\n\n// Engines\n\ntemplate <class UIntType, UIntType a, UIntType c, UIntType m>\nclass linear_congruential_engine\n{\npublic:\n    // types\n    typedef UIntType result_type;\n\n    // engine characteristics\n    static constexpr result_type multiplier = a;\n    static constexpr result_type increment = c;\n    static constexpr result_type modulus = m;\n    static constexpr result_type min() { return c == 0u ? 1u: 0u;}\n    static constexpr result_type max() { return m - 1u;}\n    static constexpr result_type default_seed = 1u;\n\n    // constructors and seeding functions\n    explicit linear_congruential_engine(result_type s = default_seed);\n    template<class Sseq> explicit linear_congruential_engine(Sseq& q);\n    void seed(result_type s = default_seed);\n    template<class Sseq> void seed(Sseq& q);\n\n    // generating functions\n    result_type operator()();\n    void discard(unsigned long long z);\n};\n\ntemplate <class UIntType, UIntType a, UIntType c, UIntType m>\nbool\noperator==(const linear_congruential_engine<UIntType, a, c, m>& x,\n           const linear_congruential_engine<UIntType, a, c, m>& y);\n\ntemplate <class UIntType, UIntType a, UIntType c, UIntType m>\nbool\noperator!=(const linear_congruential_engine<UIntType, a, c, m>& x,\n           const linear_congruential_engine<UIntType, a, c, m>& y);\n\ntemplate <class charT, class traits,\n          class UIntType, UIntType a, UIntType c, UIntType m>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& os,\n           const linear_congruential_engine<UIntType, a, c, m>& x);\n\ntemplate <class charT, class traits,\n          class UIntType, UIntType a, UIntType c, UIntType m>\nbasic_istream<charT, traits>&\noperator>>(basic_istream<charT, traits>& is,\n           linear_congruential_engine<UIntType, a, c, m>& x);\n\ntemplate <class UIntType, size_t w, size_t n, size_t m, size_t r,\n          UIntType a, size_t u, UIntType d, size_t s,\n          UIntType b, size_t t, UIntType c, size_t l, UIntType f>\nclass mersenne_twister_engine\n{\npublic:\n    // types\n    typedef UIntType result_type;\n\n    // engine characteristics\n    static constexpr size_t word_size = w;\n    static constexpr size_t state_size = n;\n    static constexpr size_t shift_size = m;\n    static constexpr size_t mask_bits = r;\n    static constexpr result_type xor_mask = a;\n    static constexpr size_t tempering_u = u;\n    static constexpr result_type tempering_d = d;\n    static constexpr size_t tempering_s = s;\n    static constexpr result_type tempering_b = b;\n    static constexpr size_t tempering_t = t;\n    static constexpr result_type tempering_c = c;\n    static constexpr size_t tempering_l = l;\n    static constexpr result_type initialization_multiplier = f;\n    static constexpr result_type min () { return 0; }\n    static constexpr result_type max() { return 2^w - 1; }\n    static constexpr result_type default_seed = 5489u;\n\n    // constructors and seeding functions\n    explicit mersenne_twister_engine(result_type value = default_seed);\n    template<class Sseq> explicit mersenne_twister_engine(Sseq& q);\n    void seed(result_type value = default_seed);\n    template<class Sseq> void seed(Sseq& q);\n\n    // generating functions\n    result_type operator()();\n    void discard(unsigned long long z);\n};\n\ntemplate <class UIntType, size_t w, size_t n, size_t m, size_t r,\n          UIntType a, size_t u, UIntType d, size_t s,\n          UIntType b, size_t t, UIntType c, size_t l, UIntType f>\nbool\noperator==(\n    const mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>& x,\n    const mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>& y);\n\ntemplate <class UIntType, size_t w, size_t n, size_t m, size_t r,\n          UIntType a, size_t u, UIntType d, size_t s,\n          UIntType b, size_t t, UIntType c, size_t l, UIntType f>\nbool\noperator!=(\n    const mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>& x,\n    const mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>& y);\n\ntemplate <class charT, class traits,\n          class UIntType, size_t w, size_t n, size_t m, size_t r,\n          UIntType a, size_t u, UIntType d, size_t s,\n          UIntType b, size_t t, UIntType c, size_t l, UIntType f>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& os,\n           const mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>& x);\n\ntemplate <class charT, class traits,\n          class UIntType, size_t w, size_t n, size_t m, size_t r,\n          UIntType a, size_t u, UIntType d, size_t s,\n          UIntType b, size_t t, UIntType c, size_t l, UIntType f>\nbasic_istream<charT, traits>&\noperator>>(basic_istream<charT, traits>& is,\n           mersenne_twister_engine<UIntType, w, n, m, r, a, u, d, s, b, t, c, l, f>& x);\n\ntemplate<class UIntType, size_t w, size_t s, size_t r>\nclass subtract_with_carry_engine\n{\npublic:\n    // types\n    typedef UIntType result_type;\n\n    // engine characteristics\n    static constexpr size_t word_size = w;\n    static constexpr size_t short_lag = s;\n    static constexpr size_t long_lag = r;\n    static constexpr result_type min() { return 0; }\n    static constexpr result_type max() { return m-1; }\n    static constexpr result_type default_seed = 19780503u;\n\n    // constructors and seeding functions\n    explicit subtract_with_carry_engine(result_type value = default_seed);\n    template<class Sseq> explicit subtract_with_carry_engine(Sseq& q);\n    void seed(result_type value = default_seed);\n    template<class Sseq> void seed(Sseq& q);\n\n    // generating functions\n    result_type operator()();\n    void discard(unsigned long long z);\n};\n\ntemplate<class UIntType, size_t w, size_t s, size_t r>\nbool\noperator==(\n    const subtract_with_carry_engine<UIntType, w, s, r>& x,\n    const subtract_with_carry_engine<UIntType, w, s, r>& y);\n\ntemplate<class UIntType, size_t w, size_t s, size_t r>\nbool\noperator!=(\n    const subtract_with_carry_engine<UIntType, w, s, r>& x,\n    const subtract_with_carry_engine<UIntType, w, s, r>& y);\n\ntemplate <class charT, class traits,\n          class UIntType, size_t w, size_t s, size_t r>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& os,\n           const subtract_with_carry_engine<UIntType, w, s, r>& x);\n\ntemplate <class charT, class traits,\n          class UIntType, size_t w, size_t s, size_t r>\nbasic_istream<charT, traits>&\noperator>>(basic_istream<charT, traits>& is,\n           subtract_with_carry_engine<UIntType, w, s, r>& x);\n\ntemplate<class Engine, size_t p, size_t r>\nclass discard_block_engine\n{\npublic:\n    // types\n    typedef typename Engine::result_type result_type;\n\n    // engine characteristics\n    static constexpr size_t block_size = p;\n    static constexpr size_t used_block = r;\n    static constexpr result_type min() { return Engine::min(); }\n    static constexpr result_type max() { return Engine::max(); }\n\n    // constructors and seeding functions\n    discard_block_engine();\n    explicit discard_block_engine(const Engine& e);\n    explicit discard_block_engine(Engine&& e);\n    explicit discard_block_engine(result_type s);\n    template<class Sseq> explicit discard_block_engine(Sseq& q);\n    void seed();\n    void seed(result_type s);\n    template<class Sseq> void seed(Sseq& q);\n\n    // generating functions\n    result_type operator()();\n    void discard(unsigned long long z);\n\n    // property functions\n    const Engine& base() const noexcept;\n};\n\ntemplate<class Engine, size_t p, size_t r>\nbool\noperator==(\n    const discard_block_engine<Engine, p, r>& x,\n    const discard_block_engine<Engine, p, r>& y);\n\ntemplate<class Engine, size_t p, size_t r>\nbool\noperator!=(\n    const discard_block_engine<Engine, p, r>& x,\n    const discard_block_engine<Engine, p, r>& y);\n\ntemplate <class charT, class traits,\n          class Engine, size_t p, size_t r>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& os,\n           const discard_block_engine<Engine, p, r>& x);\n\ntemplate <class charT, class traits,\n          class Engine, size_t p, size_t r>\nbasic_istream<charT, traits>&\noperator>>(basic_istream<charT, traits>& is,\n           discard_block_engine<Engine, p, r>& x);\n\ntemplate<class Engine, size_t w, class UIntType>\nclass independent_bits_engine\n{\npublic:\n    // types\n    typedef UIntType result_type;\n\n    // engine characteristics\n    static constexpr result_type min() { return 0; }\n    static constexpr result_type max() { return 2^w - 1; }\n\n    // constructors and seeding functions\n    independent_bits_engine();\n    explicit independent_bits_engine(const Engine& e);\n    explicit independent_bits_engine(Engine&& e);\n    explicit independent_bits_engine(result_type s);\n    template<class Sseq> explicit independent_bits_engine(Sseq& q);\n    void seed();\n    void seed(result_type s);\n    template<class Sseq> void seed(Sseq& q);\n\n    // generating functions\n    result_type operator()(); void discard(unsigned long long z);\n\n    // property functions\n    const Engine& base() const noexcept;\n};\n\ntemplate<class Engine, size_t w, class UIntType>\nbool\noperator==(\n    const independent_bits_engine<Engine, w, UIntType>& x,\n    const independent_bits_engine<Engine, w, UIntType>& y);\n\ntemplate<class Engine, size_t w, class UIntType>\nbool\noperator!=(\n    const independent_bits_engine<Engine, w, UIntType>& x,\n    const independent_bits_engine<Engine, w, UIntType>& y);\n\ntemplate <class charT, class traits,\n          class Engine, size_t w, class UIntType>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& os,\n           const independent_bits_engine<Engine, w, UIntType>& x);\n\ntemplate <class charT, class traits,\n          class Engine, size_t w, class UIntType>\nbasic_istream<charT, traits>&\noperator>>(basic_istream<charT, traits>& is,\n           independent_bits_engine<Engine, w, UIntType>& x);\n\ntemplate<class Engine, size_t k>\nclass shuffle_order_engine\n{\npublic:\n    // types\n    typedef typename Engine::result_type result_type;\n\n    // engine characteristics\n    static constexpr size_t table_size = k;\n    static constexpr result_type min() { return Engine::min; }\n    static constexpr result_type max() { return Engine::max; }\n\n    // constructors and seeding functions\n    shuffle_order_engine();\n    explicit shuffle_order_engine(const Engine& e);\n    explicit shuffle_order_engine(Engine&& e);\n    explicit shuffle_order_engine(result_type s);\n    template<class Sseq> explicit shuffle_order_engine(Sseq& q);\n    void seed();\n    void seed(result_type s);\n    template<class Sseq> void seed(Sseq& q);\n\n    // generating functions\n    result_type operator()();\n    void discard(unsigned long long z);\n\n    // property functions\n    const Engine& base() const noexcept;\n};\n\ntemplate<class Engine, size_t k>\nbool\noperator==(\n    const shuffle_order_engine<Engine, k>& x,\n    const shuffle_order_engine<Engine, k>& y);\n\ntemplate<class Engine, size_t k>\nbool\noperator!=(\n    const shuffle_order_engine<Engine, k>& x,\n    const shuffle_order_engine<Engine, k>& y);\n\ntemplate <class charT, class traits,\n          class Engine, size_t k>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& os,\n           const shuffle_order_engine<Engine, k>& x);\n\ntemplate <class charT, class traits,\n          class Engine, size_t k>\nbasic_istream<charT, traits>&\noperator>>(basic_istream<charT, traits>& is,\n           shuffle_order_engine<Engine, k>& x);\n\ntypedef linear_congruential_engine<uint_fast32_t, 16807, 0, 2147483647>\n                                                                   minstd_rand0;\ntypedef linear_congruential_engine<uint_fast32_t, 48271, 0, 2147483647>\n                                                                    minstd_rand;\ntypedef mersenne_twister_engine<uint_fast32_t, 32, 624, 397, 31,\n                                0x9908b0df,\n                                11, 0xffffffff,\n                                7,  0x9d2c5680,\n                                15, 0xefc60000,\n                                18, 1812433253>                         mt19937;\ntypedef mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31,\n                                0xb5026f5aa96619e9,\n                                29, 0x5555555555555555,\n                                17, 0x71d67fffeda60000,\n                                37, 0xfff7eee000000000,\n                                43, 6364136223846793005>             mt19937_64;\ntypedef subtract_with_carry_engine<uint_fast32_t, 24, 10, 24>     ranlux24_base;\ntypedef subtract_with_carry_engine<uint_fast64_t, 48,  5, 12>     ranlux48_base;\ntypedef discard_block_engine<ranlux24_base, 223, 23>                   ranlux24;\ntypedef discard_block_engine<ranlux48_base, 389, 11>                   ranlux48;\ntypedef shuffle_order_engine<minstd_rand0, 256>                         knuth_b;\ntypedef minstd_rand                                       default_random_engine;\n\n// Generators\n\nclass random_device\n{\npublic:\n    // types\n    typedef unsigned int result_type;\n\n    // generator characteristics\n    static constexpr result_type min() { return numeric_limits<result_type>::min(); }\n    static constexpr result_type max() { return numeric_limits<result_type>::max(); }\n\n    // constructors\n    explicit random_device(const string& token = \"/dev/urandom\");\n\n    // generating functions\n    result_type operator()();\n\n    // property functions\n    double entropy() const noexcept;\n\n    // no copy functions\n    random_device(const random_device& ) = delete;\n    void operator=(const random_device& ) = delete;\n};\n\n// Utilities\n\nclass seed_seq\n{\npublic:\n    // types\n    typedef uint_least32_t result_type;\n\n    // constructors\n    seed_seq();\n    template<class T>\n        seed_seq(initializer_list<T> il);\n    template<class InputIterator>\n        seed_seq(InputIterator begin, InputIterator end);\n\n    // generating functions\n    template<class RandomAccessIterator>\n        void generate(RandomAccessIterator begin, RandomAccessIterator end);\n\n    // property functions\n    size_t size() const;\n    template<class OutputIterator>\n        void param(OutputIterator dest) const;\n\n    // no copy functions\n    seed_seq(const seed_seq&) = delete;\n    void operator=(const seed_seq& ) = delete;\n};\n\ntemplate<class RealType, size_t bits, class URNG>\n    RealType generate_canonical(URNG& g);\n\n// Distributions\n\ntemplate<class IntType = int>\nclass uniform_int_distribution\n{\npublic:\n    // types\n    typedef IntType result_type;\n\n    class param_type\n    {\n    public:\n        typedef uniform_int_distribution distribution_type;\n\n        explicit param_type(IntType a = 0,\n                                    IntType b = numeric_limits<IntType>::max());\n\n        result_type a() const;\n        result_type b() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit uniform_int_distribution(IntType a = 0,\n                                    IntType b = numeric_limits<IntType>::max());\n    explicit uniform_int_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type a() const;\n    result_type b() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const uniform_int_distribution& x,\n                           const uniform_int_distribution& y);\n    friend bool operator!=(const uniform_int_distribution& x,\n                           const uniform_int_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const uniform_int_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               uniform_int_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass uniform_real_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef uniform_real_distribution distribution_type;\n\n        explicit param_type(RealType a = 0,\n                            RealType b = 1);\n\n        result_type a() const;\n        result_type b() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit uniform_real_distribution(RealType a = 0.0, RealType b = 1.0);\n    explicit uniform_real_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type a() const;\n    result_type b() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const uniform_real_distribution& x,\n                           const uniform_real_distribution& y);\n    friend bool operator!=(const uniform_real_distribution& x,\n                           const uniform_real_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const uniform_real_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               uniform_real_distribution& x);\n};\n\nclass bernoulli_distribution\n{\npublic:\n    // types\n    typedef bool result_type;\n\n    class param_type\n    {\n    public:\n        typedef bernoulli_distribution distribution_type;\n\n        explicit param_type(double p = 0.5);\n\n        double p() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit bernoulli_distribution(double p = 0.5);\n    explicit bernoulli_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    double p() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const bernoulli_distribution& x,\n                           const bernoulli_distribution& y);\n    friend bool operator!=(const bernoulli_distribution& x,\n                           const bernoulli_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const bernoulli_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               bernoulli_distribution& x);\n};\n\ntemplate<class IntType = int>\nclass binomial_distribution\n{\npublic:\n    // types\n    typedef IntType result_type;\n\n    class param_type\n    {\n    public:\n        typedef binomial_distribution distribution_type;\n\n        explicit param_type(IntType t = 1, double p = 0.5);\n\n        IntType t() const;\n        double p() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit binomial_distribution(IntType t = 1, double p = 0.5);\n    explicit binomial_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    IntType t() const;\n    double p() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const binomial_distribution& x,\n                           const binomial_distribution& y);\n    friend bool operator!=(const binomial_distribution& x,\n                           const binomial_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const binomial_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               binomial_distribution& x);\n};\n\ntemplate<class IntType = int>\nclass geometric_distribution\n{\npublic:\n    // types\n    typedef IntType result_type;\n\n    class param_type\n    {\n    public:\n        typedef geometric_distribution distribution_type;\n\n        explicit param_type(double p = 0.5);\n\n        double p() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit geometric_distribution(double p = 0.5);\n    explicit geometric_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    double p() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const geometric_distribution& x,\n                           const geometric_distribution& y);\n    friend bool operator!=(const geometric_distribution& x,\n                           const geometric_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const geometric_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               geometric_distribution& x);\n};\n\ntemplate<class IntType = int>\nclass negative_binomial_distribution\n{\npublic:\n    // types\n    typedef IntType result_type;\n\n    class param_type\n    {\n    public:\n        typedef negative_binomial_distribution distribution_type;\n\n        explicit param_type(result_type k = 1, double p = 0.5);\n\n        result_type k() const;\n        double p() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    explicit negative_binomial_distribution(result_type k = 1, double p = 0.5);\n    explicit negative_binomial_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type k() const;\n    double p() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const negative_binomial_distribution& x,\n                           const negative_binomial_distribution& y);\n    friend bool operator!=(const negative_binomial_distribution& x,\n                           const negative_binomial_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const negative_binomial_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               negative_binomial_distribution& x);\n};\n\ntemplate<class IntType = int>\nclass poisson_distribution\n{\npublic:\n    // types\n    typedef IntType result_type;\n\n    class param_type\n    {\n    public:\n        typedef poisson_distribution distribution_type;\n\n        explicit param_type(double mean = 1.0);\n\n        double mean() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit poisson_distribution(double mean = 1.0);\n    explicit poisson_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    double mean() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const poisson_distribution& x,\n                           const poisson_distribution& y);\n    friend bool operator!=(const poisson_distribution& x,\n                           const poisson_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const poisson_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               poisson_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass exponential_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef exponential_distribution distribution_type;\n\n        explicit param_type(result_type lambda = 1.0);\n\n        result_type lambda() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit exponential_distribution(result_type lambda = 1.0);\n    explicit exponential_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type lambda() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const exponential_distribution& x,\n                           const exponential_distribution& y);\n    friend bool operator!=(const exponential_distribution& x,\n                           const exponential_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const exponential_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               exponential_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass gamma_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef gamma_distribution distribution_type;\n\n        explicit param_type(result_type alpha = 1, result_type beta = 1);\n\n        result_type alpha() const;\n        result_type beta() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit gamma_distribution(result_type alpha = 1, result_type beta = 1);\n    explicit gamma_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type alpha() const;\n    result_type beta() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const gamma_distribution& x,\n                           const gamma_distribution& y);\n    friend bool operator!=(const gamma_distribution& x,\n                           const gamma_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const gamma_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               gamma_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass weibull_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef weibull_distribution distribution_type;\n\n        explicit param_type(result_type alpha = 1, result_type beta = 1);\n\n        result_type a() const;\n        result_type b() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    explicit weibull_distribution(result_type a = 1, result_type b = 1);\n    explicit weibull_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type a() const;\n    result_type b() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const weibull_distribution& x,\n                           const weibull_distribution& y);\n    friend bool operator!=(const weibull_distribution& x,\n                           const weibull_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const weibull_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               weibull_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass extreme_value_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef extreme_value_distribution distribution_type;\n\n        explicit param_type(result_type a = 0, result_type b = 1);\n\n        result_type a() const;\n        result_type b() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    explicit extreme_value_distribution(result_type a = 0, result_type b = 1);\n    explicit extreme_value_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type a() const;\n    result_type b() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const extreme_value_distribution& x,\n                           const extreme_value_distribution& y);\n    friend bool operator!=(const extreme_value_distribution& x,\n                           const extreme_value_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const extreme_value_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               extreme_value_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass normal_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef normal_distribution distribution_type;\n\n        explicit param_type(result_type mean = 0, result_type stddev = 1);\n\n        result_type mean() const;\n        result_type stddev() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructors and reset functions\n    explicit normal_distribution(result_type mean = 0, result_type stddev = 1);\n    explicit normal_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type mean() const;\n    result_type stddev() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const normal_distribution& x,\n                           const normal_distribution& y);\n    friend bool operator!=(const normal_distribution& x,\n                           const normal_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const normal_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               normal_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass lognormal_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef lognormal_distribution distribution_type;\n\n        explicit param_type(result_type m = 0, result_type s = 1);\n\n        result_type m() const;\n        result_type s() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    explicit lognormal_distribution(result_type m = 0, result_type s = 1);\n    explicit lognormal_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type m() const;\n    result_type s() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const lognormal_distribution& x,\n                           const lognormal_distribution& y);\n    friend bool operator!=(const lognormal_distribution& x,\n                           const lognormal_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const lognormal_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               lognormal_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass chi_squared_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef chi_squared_distribution distribution_type;\n\n        explicit param_type(result_type n = 1);\n\n        result_type n() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    explicit chi_squared_distribution(result_type n = 1);\n    explicit chi_squared_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type n() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const chi_squared_distribution& x,\n                           const chi_squared_distribution& y);\n    friend bool operator!=(const chi_squared_distribution& x,\n                           const chi_squared_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const chi_squared_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               chi_squared_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass cauchy_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef cauchy_distribution distribution_type;\n\n        explicit param_type(result_type a = 0, result_type b = 1);\n\n        result_type a() const;\n        result_type b() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    explicit cauchy_distribution(result_type a = 0, result_type b = 1);\n    explicit cauchy_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type a() const;\n    result_type b() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const cauchy_distribution& x,\n                           const cauchy_distribution& y);\n    friend bool operator!=(const cauchy_distribution& x,\n                           const cauchy_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const cauchy_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               cauchy_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass fisher_f_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef fisher_f_distribution distribution_type;\n\n        explicit param_type(result_type m = 1, result_type n = 1);\n\n        result_type m() const;\n        result_type n() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    explicit fisher_f_distribution(result_type m = 1, result_type n = 1);\n    explicit fisher_f_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type m() const;\n    result_type n() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const fisher_f_distribution& x,\n                           const fisher_f_distribution& y);\n    friend bool operator!=(const fisher_f_distribution& x,\n                           const fisher_f_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const fisher_f_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               fisher_f_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass student_t_distribution\n{\npublic:\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef student_t_distribution distribution_type;\n\n        explicit param_type(result_type n = 1);\n\n        result_type n() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    explicit student_t_distribution(result_type n = 1);\n    explicit student_t_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    result_type n() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const student_t_distribution& x,\n                           const student_t_distribution& y);\n    friend bool operator!=(const student_t_distribution& x,\n                           const student_t_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const student_t_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               student_t_distribution& x);\n};\n\ntemplate<class IntType = int>\nclass discrete_distribution\n{\npublic:\n    // types\n    typedef IntType result_type;\n\n    class param_type\n    {\n    public:\n        typedef discrete_distribution distribution_type;\n\n        param_type();\n        template<class InputIterator>\n            param_type(InputIterator firstW, InputIterator lastW);\n        param_type(initializer_list<double> wl);\n        template<class UnaryOperation>\n            param_type(size_t nw, double xmin, double xmax, UnaryOperation fw);\n\n        vector<double> probabilities() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    discrete_distribution();\n    template<class InputIterator>\n        discrete_distribution(InputIterator firstW, InputIterator lastW);\n    discrete_distribution(initializer_list<double> wl);\n    template<class UnaryOperation>\n        discrete_distribution(size_t nw, double xmin, double xmax,\n                              UnaryOperation fw);\n    explicit discrete_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    vector<double> probabilities() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const discrete_distribution& x,\n                           const discrete_distribution& y);\n    friend bool operator!=(const discrete_distribution& x,\n                           const discrete_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const discrete_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               discrete_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass piecewise_constant_distribution\n{\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef piecewise_constant_distribution distribution_type;\n\n        param_type();\n        template<class InputIteratorB, class InputIteratorW>\n            param_type(InputIteratorB firstB, InputIteratorB lastB,\n                       InputIteratorW firstW);\n        template<class UnaryOperation>\n            param_type(initializer_list<result_type> bl, UnaryOperation fw);\n        template<class UnaryOperation>\n            param_type(size_t nw, result_type xmin, result_type xmax,\n                       UnaryOperation fw);\n\n        vector<result_type> intervals() const;\n        vector<result_type> densities() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    piecewise_constant_distribution();\n    template<class InputIteratorB, class InputIteratorW>\n        piecewise_constant_distribution(InputIteratorB firstB,\n                                        InputIteratorB lastB,\n                                        InputIteratorW firstW);\n    template<class UnaryOperation>\n        piecewise_constant_distribution(initializer_list<result_type> bl,\n                                        UnaryOperation fw);\n    template<class UnaryOperation>\n        piecewise_constant_distribution(size_t nw, result_type xmin,\n                                        result_type xmax, UnaryOperation fw);\n    explicit piecewise_constant_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    vector<result_type> intervals() const;\n    vector<result_type> densities() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const piecewise_constant_distribution& x,\n                           const piecewise_constant_distribution& y);\n    friend bool operator!=(const piecewise_constant_distribution& x,\n                           const piecewise_constant_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const piecewise_constant_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               piecewise_constant_distribution& x);\n};\n\ntemplate<class RealType = double>\nclass piecewise_linear_distribution\n{\n    // types\n    typedef RealType result_type;\n\n    class param_type\n    {\n    public:\n        typedef piecewise_linear_distribution distribution_type;\n\n        param_type();\n        template<class InputIteratorB, class InputIteratorW>\n            param_type(InputIteratorB firstB, InputIteratorB lastB,\n                       InputIteratorW firstW);\n        template<class UnaryOperation>\n            param_type(initializer_list<result_type> bl, UnaryOperation fw);\n        template<class UnaryOperation>\n            param_type(size_t nw, result_type xmin, result_type xmax,\n                       UnaryOperation fw);\n\n        vector<result_type> intervals() const;\n        vector<result_type> densities() const;\n\n        friend bool operator==(const param_type& x, const param_type& y);\n        friend bool operator!=(const param_type& x, const param_type& y);\n    };\n\n    // constructor and reset functions\n    piecewise_linear_distribution();\n    template<class InputIteratorB, class InputIteratorW>\n        piecewise_linear_distribution(InputIteratorB firstB,\n                                      InputIteratorB lastB,\n                                      InputIteratorW firstW);\n\n    template<class UnaryOperation>\n        piecewise_linear_distribution(initializer_list<result_type> bl,\n                                      UnaryOperation fw);\n\n    template<class UnaryOperation>\n        piecewise_linear_distribution(size_t nw, result_type xmin,\n                                      result_type xmax, UnaryOperation fw);\n\n    explicit piecewise_linear_distribution(const param_type& parm);\n    void reset();\n\n    // generating functions\n    template<class URNG> result_type operator()(URNG& g);\n    template<class URNG> result_type operator()(URNG& g, const param_type& parm);\n\n    // property functions\n    vector<result_type> intervals() const;\n    vector<result_type> densities() const;\n\n    param_type param() const;\n    void param(const param_type& parm);\n\n    result_type min() const;\n    result_type max() const;\n\n    friend bool operator==(const piecewise_linear_distribution& x,\n                           const piecewise_linear_distribution& y);\n    friend bool operator!=(const piecewise_linear_distribution& x,\n                           const piecewise_linear_distribution& y);\n\n    template <class charT, class traits>\n    friend\n    basic_ostream<charT, traits>&\n    operator<<(basic_ostream<charT, traits>& os,\n               const piecewise_linear_distribution& x);\n\n    template <class charT, class traits>\n    friend\n    basic_istream<charT, traits>&\n    operator>>(basic_istream<charT, traits>& is,\n               piecewise_linear_distribution& x);\n};\n\n} // std\n*/\n\n#include <__config>\n#include <cstddef>\n#include <cstdint>\n#include <cmath>\n#include <type_traits>\n#include <initializer_list>\n#include <limits>\n#include <algorithm>\n#include <numeric>\n#include <vector>\n#include <string>\n#include <istream>\n#include <ostream>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// __is_seed_sequence\n\ntemplate <class _Sseq, class _Engine>\nstruct __is_seed_sequence\n{\n    static _LIBCPP_CONSTEXPR const bool value =\n              !is_convertible<_Sseq, typename _Engine::result_type>::value &&\n              !is_same<typename remove_cv<_Sseq>::type, _Engine>::value;\n};\n\n// linear_congruential_engine\n\ntemplate <unsigned long long __a, unsigned long long __c,\n          unsigned long long __m, unsigned long long _Mp,\n          bool _MightOverflow = (__a != 0 && __m != 0 && __m-1 > (_Mp-__c)/__a)>\nstruct __lce_ta;\n\n// 64\n\ntemplate <unsigned long long __a, unsigned long long __c, unsigned long long __m>\nstruct __lce_ta<__a, __c, __m, (unsigned long long)(~0), true>\n{\n    typedef unsigned long long result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        // Schrage's algorithm\n        const result_type __q = __m / __a;\n        const result_type __r = __m % __a;\n        const result_type __t0 = __a * (__x % __q);\n        const result_type __t1 = __r * (__x / __q);\n        __x = __t0 + (__t0 < __t1) * __m - __t1;\n        __x += __c - (__x >= __m - __c) * __m;\n        return __x;\n    }\n};\n\ntemplate <unsigned long long __a, unsigned long long __m>\nstruct __lce_ta<__a, 0, __m, (unsigned long long)(~0), true>\n{\n    typedef unsigned long long result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        // Schrage's algorithm\n        const result_type __q = __m / __a;\n        const result_type __r = __m % __a;\n        const result_type __t0 = __a * (__x % __q);\n        const result_type __t1 = __r * (__x / __q);\n        __x = __t0 + (__t0 < __t1) * __m - __t1;\n        return __x;\n    }\n};\n\ntemplate <unsigned long long __a, unsigned long long __c, unsigned long long __m>\nstruct __lce_ta<__a, __c, __m, (unsigned long long)(~0), false>\n{\n    typedef unsigned long long result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        return (__a * __x + __c) % __m;\n    }\n};\n\ntemplate <unsigned long long __a, unsigned long long __c>\nstruct __lce_ta<__a, __c, 0, (unsigned long long)(~0), false>\n{\n    typedef unsigned long long result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        return __a * __x + __c;\n    }\n};\n\n// 32\n\ntemplate <unsigned long long _Ap, unsigned long long _Cp, unsigned long long _Mp>\nstruct __lce_ta<_Ap, _Cp, _Mp, unsigned(~0), true>\n{\n    typedef unsigned result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        const result_type __a = static_cast<result_type>(_Ap);\n        const result_type __c = static_cast<result_type>(_Cp);\n        const result_type __m = static_cast<result_type>(_Mp);\n        // Schrage's algorithm\n        const result_type __q = __m / __a;\n        const result_type __r = __m % __a;\n        const result_type __t0 = __a * (__x % __q);\n        const result_type __t1 = __r * (__x / __q);\n        __x = __t0 + (__t0 < __t1) * __m - __t1;\n        __x += __c - (__x >= __m - __c) * __m;\n        return __x;\n    }\n};\n\ntemplate <unsigned long long _Ap, unsigned long long _Mp>\nstruct __lce_ta<_Ap, 0, _Mp, unsigned(~0), true>\n{\n    typedef unsigned result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        const result_type __a = static_cast<result_type>(_Ap);\n        const result_type __m = static_cast<result_type>(_Mp);\n        // Schrage's algorithm\n        const result_type __q = __m / __a;\n        const result_type __r = __m % __a;\n        const result_type __t0 = __a * (__x % __q);\n        const result_type __t1 = __r * (__x / __q);\n        __x = __t0 + (__t0 < __t1) * __m - __t1;\n        return __x;\n    }\n};\n\ntemplate <unsigned long long _Ap, unsigned long long _Cp, unsigned long long _Mp>\nstruct __lce_ta<_Ap, _Cp, _Mp, unsigned(~0), false>\n{\n    typedef unsigned result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        const result_type __a = static_cast<result_type>(_Ap);\n        const result_type __c = static_cast<result_type>(_Cp);\n        const result_type __m = static_cast<result_type>(_Mp);\n        return (__a * __x + __c) % __m;\n    }\n};\n\ntemplate <unsigned long long _Ap, unsigned long long _Cp>\nstruct __lce_ta<_Ap, _Cp, 0, unsigned(~0), false>\n{\n    typedef unsigned result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        const result_type __a = static_cast<result_type>(_Ap);\n        const result_type __c = static_cast<result_type>(_Cp);\n        return __a * __x + __c;\n    }\n};\n\n// 16\n\ntemplate <unsigned long long __a, unsigned long long __c, unsigned long long __m, bool __b>\nstruct __lce_ta<__a, __c, __m, (unsigned short)(~0), __b>\n{\n    typedef unsigned short result_type;\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type next(result_type __x)\n    {\n        return static_cast<result_type>(__lce_ta<__a, __c, __m, unsigned(~0)>::next(__x));\n    }\n};\n\ntemplate <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\nclass _LIBCPP_TEMPLATE_VIS linear_congruential_engine;\n\ntemplate <class _CharT, class _Traits,\n          class _Up, _Up _Ap, _Up _Cp, _Up _Np>\n_LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const linear_congruential_engine<_Up, _Ap, _Cp, _Np>&);\n\ntemplate <class _CharT, class _Traits,\n          class _Up, _Up _Ap, _Up _Cp, _Up _Np>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           linear_congruential_engine<_Up, _Ap, _Cp, _Np>& __x);\n\ntemplate <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\nclass _LIBCPP_TEMPLATE_VIS linear_congruential_engine\n{\npublic:\n    // types\n    typedef _UIntType result_type;\n\nprivate:\n    result_type __x_;\n\n    static _LIBCPP_CONSTEXPR const result_type _Mp = result_type(~0);\n\n    static_assert(__m == 0 || __a < __m, \"linear_congruential_engine invalid parameters\");\n    static_assert(__m == 0 || __c < __m, \"linear_congruential_engine invalid parameters\");\npublic:\n    static _LIBCPP_CONSTEXPR const result_type _Min = __c == 0u ? 1u: 0u;\n    static _LIBCPP_CONSTEXPR const result_type _Max = __m - 1u;\n    static_assert(_Min < _Max,           \"linear_congruential_engine invalid parameters\");\n\n    // engine characteristics\n    static _LIBCPP_CONSTEXPR const result_type multiplier = __a;\n    static _LIBCPP_CONSTEXPR const result_type increment = __c;\n    static _LIBCPP_CONSTEXPR const result_type modulus = __m;\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type min() {return _Min;}\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type max() {return _Max;}\n    static _LIBCPP_CONSTEXPR const result_type default_seed = 1u;\n\n    // constructors and seeding functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit linear_congruential_engine(result_type __s = default_seed)\n        {seed(__s);}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit linear_congruential_engine(_Sseq& __q,\n        typename enable_if<__is_seed_sequence<_Sseq, linear_congruential_engine>::value>::type* = 0)\n        {seed(__q);}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(result_type __s = default_seed)\n        {seed(integral_constant<bool, __m == 0>(),\n              integral_constant<bool, __c == 0>(), __s);}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __is_seed_sequence<_Sseq, linear_congruential_engine>::value,\n            void\n        >::type\n        seed(_Sseq& __q)\n            {__seed(__q, integral_constant<unsigned,\n                1 + (__m == 0 ? (sizeof(result_type) * __CHAR_BIT__ - 1)/32\n                             :  (__m > 0x100000000ull))>());}\n\n    // generating functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator()()\n        {return __x_ = static_cast<result_type>(__lce_ta<__a, __c, __m, _Mp>::next(__x_));}\n    _LIBCPP_INLINE_VISIBILITY\n    void discard(unsigned long long __z) {for (; __z; --__z) operator()();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const linear_congruential_engine& __x,\n                    const linear_congruential_engine& __y)\n        {return __x.__x_ == __y.__x_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const linear_congruential_engine& __x,\n                    const linear_congruential_engine& __y)\n        {return !(__x == __y);}\n\nprivate:\n\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(true_type, true_type, result_type __s) {__x_ = __s == 0 ? 1 : __s;}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(true_type, false_type, result_type __s) {__x_ = __s;}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(false_type, true_type, result_type __s) {__x_ = __s % __m == 0 ?\n                                                                 1 : __s % __m;}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(false_type, false_type, result_type __s) {__x_ = __s % __m;}\n\n    template<class _Sseq>\n        void __seed(_Sseq& __q, integral_constant<unsigned, 1>);\n    template<class _Sseq>\n        void __seed(_Sseq& __q, integral_constant<unsigned, 2>);\n\n    template <class _CharT, class _Traits,\n              class _Up, _Up _Ap, _Up _Cp, _Up _Np>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const linear_congruential_engine<_Up, _Ap, _Cp, _Np>&);\n\n    template <class _CharT, class _Traits,\n              class _Up, _Up _Ap, _Up _Cp, _Up _Np>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               linear_congruential_engine<_Up, _Ap, _Cp, _Np>& __x);\n};\n\ntemplate <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\n    _LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type\n    linear_congruential_engine<_UIntType, __a, __c, __m>::multiplier;\n\ntemplate <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\n    _LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type\n    linear_congruential_engine<_UIntType, __a, __c, __m>::increment;\n\ntemplate <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\n    _LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type\n    linear_congruential_engine<_UIntType, __a, __c, __m>::modulus;\n\ntemplate <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\n    _LIBCPP_CONSTEXPR const typename linear_congruential_engine<_UIntType, __a, __c, __m>::result_type\n    linear_congruential_engine<_UIntType, __a, __c, __m>::default_seed;\n\ntemplate <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\ntemplate<class _Sseq>\nvoid\nlinear_congruential_engine<_UIntType, __a, __c, __m>::__seed(_Sseq& __q,\n                                                 integral_constant<unsigned, 1>)\n{\n    const unsigned __k = 1;\n    uint32_t __ar[__k+3];\n    __q.generate(__ar, __ar + __k + 3);\n    result_type __s = static_cast<result_type>(__ar[3] % __m);\n    __x_ = __c == 0 && __s == 0 ? result_type(1) : __s;\n}\n\ntemplate <class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\ntemplate<class _Sseq>\nvoid\nlinear_congruential_engine<_UIntType, __a, __c, __m>::__seed(_Sseq& __q,\n                                                 integral_constant<unsigned, 2>)\n{\n    const unsigned __k = 2;\n    uint32_t __ar[__k+3];\n    __q.generate(__ar, __ar + __k + 3);\n    result_type __s = static_cast<result_type>((__ar[3] +\n                                              ((uint64_t)__ar[4] << 32)) % __m);\n    __x_ = __c == 0 && __s == 0 ? result_type(1) : __s;\n}\n\ntemplate <class _CharT, class _Traits,\n          class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const linear_congruential_engine<_UIntType, __a, __c, __m>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left);\n    __os.fill(__os.widen(' '));\n    return __os << __x.__x_;\n}\n\ntemplate <class _CharT, class _Traits,\n          class _UIntType, _UIntType __a, _UIntType __c, _UIntType __m>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           linear_congruential_engine<_UIntType, __a, __c, __m>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    _UIntType __t;\n    __is >> __t;\n    if (!__is.fail())\n        __x.__x_ = __t;\n    return __is;\n}\n\ntypedef linear_congruential_engine<uint_fast32_t, 16807, 0, 2147483647>\n                                                                   minstd_rand0;\ntypedef linear_congruential_engine<uint_fast32_t, 48271, 0, 2147483647>\n                                                                    minstd_rand;\ntypedef minstd_rand                                       default_random_engine;\n// mersenne_twister_engine\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\nclass _LIBCPP_TEMPLATE_VIS mersenne_twister_engine;\n\ntemplate <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\nbool\noperator==(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __x,\n           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __y);\n\ntemplate <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __x,\n           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __y);\n\ntemplate <class _CharT, class _Traits,\n          class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __x);\n\ntemplate <class _CharT, class _Traits,\n          class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                   _Bp, _Tp, _Cp, _Lp, _Fp>& __x);\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\nclass _LIBCPP_TEMPLATE_VIS mersenne_twister_engine\n{\npublic:\n    // types\n    typedef _UIntType result_type;\n\nprivate:\n    result_type __x_[__n];\n    size_t      __i_;\n\n    static_assert(  0 <  __m, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__m <= __n, \"mersenne_twister_engine invalid parameters\");\n    static _LIBCPP_CONSTEXPR const result_type _Dt = numeric_limits<result_type>::digits;\n    static_assert(__w <= _Dt, \"mersenne_twister_engine invalid parameters\");\n    static_assert(  2 <= __w, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__r <= __w, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__u <= __w, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__s <= __w, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__t <= __w, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__l <= __w, \"mersenne_twister_engine invalid parameters\");\npublic:\n    static _LIBCPP_CONSTEXPR const result_type _Min = 0;\n    static _LIBCPP_CONSTEXPR const result_type _Max = __w == _Dt ? result_type(~0) :\n                                                      (result_type(1) << __w) - result_type(1);\n    static_assert(_Min < _Max, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__a <= _Max, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__b <= _Max, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__c <= _Max, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__d <= _Max, \"mersenne_twister_engine invalid parameters\");\n    static_assert(__f <= _Max, \"mersenne_twister_engine invalid parameters\");\n\n    // engine characteristics\n    static _LIBCPP_CONSTEXPR const size_t word_size = __w;\n    static _LIBCPP_CONSTEXPR const size_t state_size = __n;\n    static _LIBCPP_CONSTEXPR const size_t shift_size = __m;\n    static _LIBCPP_CONSTEXPR const size_t mask_bits = __r;\n    static _LIBCPP_CONSTEXPR const result_type xor_mask = __a;\n    static _LIBCPP_CONSTEXPR const size_t tempering_u = __u;\n    static _LIBCPP_CONSTEXPR const result_type tempering_d = __d;\n    static _LIBCPP_CONSTEXPR const size_t tempering_s = __s;\n    static _LIBCPP_CONSTEXPR const result_type tempering_b = __b;\n    static _LIBCPP_CONSTEXPR const size_t tempering_t = __t;\n    static _LIBCPP_CONSTEXPR const result_type tempering_c = __c;\n    static _LIBCPP_CONSTEXPR const size_t tempering_l = __l;\n    static _LIBCPP_CONSTEXPR const result_type initialization_multiplier = __f;\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type min() { return _Min; }\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type max() { return _Max; }\n    static _LIBCPP_CONSTEXPR const result_type default_seed = 5489u;\n\n    // constructors and seeding functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit mersenne_twister_engine(result_type __sd = default_seed)\n        {seed(__sd);}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit mersenne_twister_engine(_Sseq& __q,\n        typename enable_if<__is_seed_sequence<_Sseq, mersenne_twister_engine>::value>::type* = 0)\n        {seed(__q);}\n    void seed(result_type __sd = default_seed);\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __is_seed_sequence<_Sseq, mersenne_twister_engine>::value,\n            void\n        >::type\n        seed(_Sseq& __q)\n            {__seed(__q, integral_constant<unsigned, 1 + (__w - 1) / 32>());}\n\n    // generating functions\n    result_type operator()();\n    _LIBCPP_INLINE_VISIBILITY\n    void discard(unsigned long long __z) {for (; __z; --__z) operator()();}\n\n    template <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n              _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n              _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\n    friend\n    bool\n    operator==(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                             _Bp, _Tp, _Cp, _Lp, _Fp>& __x,\n               const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                             _Bp, _Tp, _Cp, _Lp, _Fp>& __y);\n\n    template <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n              _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n              _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\n    friend\n    bool\n    operator!=(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                             _Bp, _Tp, _Cp, _Lp, _Fp>& __x,\n               const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                             _Bp, _Tp, _Cp, _Lp, _Fp>& __y);\n\n    template <class _CharT, class _Traits,\n              class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n              _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n              _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                             _Bp, _Tp, _Cp, _Lp, _Fp>& __x);\n\n    template <class _CharT, class _Traits,\n              class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n              _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n              _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                       _Bp, _Tp, _Cp, _Lp, _Fp>& __x);\nprivate:\n\n    template<class _Sseq>\n        void __seed(_Sseq& __q, integral_constant<unsigned, 1>);\n    template<class _Sseq>\n        void __seed(_Sseq& __q, integral_constant<unsigned, 2>);\n\n    template <size_t __count>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            __count < __w,\n            result_type\n        >::type\n        __lshift(result_type __x) {return (__x << __count) & _Max;}\n\n    template <size_t __count>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            (__count >= __w),\n            result_type\n        >::type\n        __lshift(result_type) {return result_type(0);}\n\n    template <size_t __count>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            __count < _Dt,\n            result_type\n        >::type\n        __rshift(result_type __x) {return __x >> __count;}\n\n    template <size_t __count>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            (__count >= _Dt),\n            result_type\n        >::type\n        __rshift(result_type) {return result_type(0);}\n};\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const size_t\n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::word_size;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const size_t \n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::state_size;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const size_t \n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::shift_size;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const size_t \n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::mask_bits;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type\n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::xor_mask;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const size_t \n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_u;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type\n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_d;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const size_t \n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_s;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type\n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_b;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const size_t \n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_t;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type\n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_c;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const size_t \n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::tempering_l;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type\n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::initialization_multiplier;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n    _LIBCPP_CONSTEXPR const typename mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::result_type\n    mersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b, __t, __c, __l, __f>::default_seed;\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\nvoid\nmersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b,\n    __t, __c, __l, __f>::seed(result_type __sd)\n    _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n{   // __w >= 2\n    __x_[0] = __sd & _Max;\n    for (size_t __i = 1; __i < __n; ++__i)\n        __x_[__i] = (__f * (__x_[__i-1] ^ __rshift<__w - 2>(__x_[__i-1])) + __i) & _Max;\n    __i_ = 0;\n}\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\ntemplate<class _Sseq>\nvoid\nmersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b,\n    __t, __c, __l, __f>::__seed(_Sseq& __q, integral_constant<unsigned, 1>)\n{\n    const unsigned __k = 1;\n    uint32_t __ar[__n * __k];\n    __q.generate(__ar, __ar + __n * __k);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __x_[__i] = static_cast<result_type>(__ar[__i] & _Max);\n    const result_type __mask = __r == _Dt ? result_type(~0) :\n                                       (result_type(1) << __r) - result_type(1);\n    __i_ = 0;\n    if ((__x_[0] & ~__mask) == 0)\n    {\n        for (size_t __i = 1; __i < __n; ++__i)\n            if (__x_[__i] != 0)\n                return;\n        __x_[0] = _Max;\n    }\n}\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\ntemplate<class _Sseq>\nvoid\nmersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b,\n    __t, __c, __l, __f>::__seed(_Sseq& __q, integral_constant<unsigned, 2>)\n{\n    const unsigned __k = 2;\n    uint32_t __ar[__n * __k];\n    __q.generate(__ar, __ar + __n * __k);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __x_[__i] = static_cast<result_type>(\n            (__ar[2 * __i] + ((uint64_t)__ar[2 * __i + 1] << 32)) & _Max);\n    const result_type __mask = __r == _Dt ? result_type(~0) :\n                                       (result_type(1) << __r) - result_type(1);\n    __i_ = 0;\n    if ((__x_[0] & ~__mask) == 0)\n    {\n        for (size_t __i = 1; __i < __n; ++__i)\n            if (__x_[__i] != 0)\n                return;\n        __x_[0] = _Max;\n    }\n}\n\ntemplate <class _UIntType, size_t __w, size_t __n, size_t __m, size_t __r,\n          _UIntType __a, size_t __u, _UIntType __d, size_t __s,\n          _UIntType __b, size_t __t, _UIntType __c, size_t __l, _UIntType __f>\n_UIntType\nmersenne_twister_engine<_UIntType, __w, __n, __m, __r, __a, __u, __d, __s, __b,\n    __t, __c, __l, __f>::operator()()\n{\n    const size_t __j = (__i_ + 1) % __n;\n    const result_type __mask = __r == _Dt ? result_type(~0) :\n                                       (result_type(1) << __r) - result_type(1);\n    const result_type _Yp = (__x_[__i_] & ~__mask) | (__x_[__j] & __mask);\n    const size_t __k = (__i_ + __m) % __n;\n    __x_[__i_] = __x_[__k] ^ __rshift<1>(_Yp) ^ (__a * (_Yp & 1));\n    result_type __z = __x_[__i_] ^ (__rshift<__u>(__x_[__i_]) & __d);\n    __i_ = __j;\n    __z ^= __lshift<__s>(__z) & __b;\n    __z ^= __lshift<__t>(__z) & __c;\n    return __z ^ __rshift<__l>(__z);\n}\n\ntemplate <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\nbool\noperator==(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __x,\n           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __y)\n{\n    if (__x.__i_ == __y.__i_)\n        return _VSTD::equal(__x.__x_, __x.__x_ + _Np, __y.__x_);\n    if (__x.__i_ == 0 || __y.__i_ == 0)\n    {\n        size_t __j = _VSTD::min(_Np - __x.__i_, _Np - __y.__i_);\n        if (!_VSTD::equal(__x.__x_ + __x.__i_, __x.__x_ + __x.__i_ + __j,\n                         __y.__x_ + __y.__i_))\n            return false;\n        if (__x.__i_ == 0)\n            return _VSTD::equal(__x.__x_ + __j, __x.__x_ + _Np, __y.__x_);\n        return _VSTD::equal(__x.__x_, __x.__x_ + (_Np - __j), __y.__x_ + __j);\n    }\n    if (__x.__i_ < __y.__i_)\n    {\n        size_t __j = _Np - __y.__i_;\n        if (!_VSTD::equal(__x.__x_ + __x.__i_, __x.__x_ + (__x.__i_ + __j),\n                         __y.__x_ + __y.__i_))\n            return false;\n        if (!_VSTD::equal(__x.__x_ + (__x.__i_ + __j), __x.__x_ + _Np,\n                         __y.__x_))\n            return false;\n        return _VSTD::equal(__x.__x_, __x.__x_ + __x.__i_,\n                           __y.__x_ + (_Np - (__x.__i_ + __j)));\n    }\n    size_t __j = _Np - __x.__i_;\n    if (!_VSTD::equal(__y.__x_ + __y.__i_, __y.__x_ + (__y.__i_ + __j),\n                     __x.__x_ + __x.__i_))\n        return false;\n    if (!_VSTD::equal(__y.__x_ + (__y.__i_ + __j), __y.__x_ + _Np,\n                     __x.__x_))\n        return false;\n    return _VSTD::equal(__y.__x_, __y.__x_ + __y.__i_,\n                       __x.__x_ + (_Np - (__y.__i_ + __j)));\n}\n\ntemplate <class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __x,\n           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _CharT, class _Traits,\n          class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                         _Bp, _Tp, _Cp, _Lp, _Fp>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.__x_[__x.__i_];\n    for (size_t __j = __x.__i_ + 1; __j < _Np; ++__j)\n        __os << __sp << __x.__x_[__j];\n    for (size_t __j = 0; __j < __x.__i_; ++__j)\n        __os << __sp << __x.__x_[__j];\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits,\n          class _UInt, size_t _Wp, size_t _Np, size_t _Mp, size_t _Rp,\n          _UInt _Ap, size_t _Up, _UInt _Dp, size_t _Sp,\n          _UInt _Bp, size_t _Tp, _UInt _Cp, size_t _Lp, _UInt _Fp>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           mersenne_twister_engine<_UInt, _Wp, _Np, _Mp, _Rp, _Ap, _Up, _Dp, _Sp,\n                                   _Bp, _Tp, _Cp, _Lp, _Fp>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    _UInt __t[_Np];\n    for (size_t __i = 0; __i < _Np; ++__i)\n        __is >> __t[__i];\n    if (!__is.fail())\n    {\n        for (size_t __i = 0; __i < _Np; ++__i)\n            __x.__x_[__i] = __t[__i];\n        __x.__i_ = 0;\n    }\n    return __is;\n}\n\ntypedef mersenne_twister_engine<uint_fast32_t, 32, 624, 397, 31,\n                                0x9908b0df, 11, 0xffffffff,\n                                7,  0x9d2c5680,\n                                15, 0xefc60000,\n                                18, 1812433253>                         mt19937;\ntypedef mersenne_twister_engine<uint_fast64_t, 64, 312, 156, 31,\n                                0xb5026f5aa96619e9ULL, 29, 0x5555555555555555ULL,\n                                17, 0x71d67fffeda60000ULL,\n                                37, 0xfff7eee000000000ULL,\n                                43, 6364136223846793005ULL>          mt19937_64;\n\n// subtract_with_carry_engine\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\nclass _LIBCPP_TEMPLATE_VIS subtract_with_carry_engine;\n\ntemplate<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\nbool\noperator==(\n    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,\n    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y);\n\ntemplate<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(\n    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,\n    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y);\n\ntemplate <class _CharT, class _Traits,\n          class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x);\n\ntemplate <class _CharT, class _Traits,\n          class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x);\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\nclass _LIBCPP_TEMPLATE_VIS subtract_with_carry_engine\n{\npublic:\n    // types\n    typedef _UIntType result_type;\n\nprivate:\n    result_type __x_[__r];\n    result_type  __c_;\n    size_t      __i_;\n\n    static _LIBCPP_CONSTEXPR const result_type _Dt = numeric_limits<result_type>::digits;\n    static_assert(  0 <  __w, \"subtract_with_carry_engine invalid parameters\");\n    static_assert(__w <= _Dt, \"subtract_with_carry_engine invalid parameters\");\n    static_assert(  0 <  __s, \"subtract_with_carry_engine invalid parameters\");\n    static_assert(__s <  __r, \"subtract_with_carry_engine invalid parameters\");\npublic:\n    static _LIBCPP_CONSTEXPR const result_type _Min = 0;\n    static _LIBCPP_CONSTEXPR const result_type _Max = __w == _Dt ? result_type(~0) :\n                                                      (result_type(1) << __w) - result_type(1);\n    static_assert(_Min < _Max, \"subtract_with_carry_engine invalid parameters\");\n\n    // engine characteristics\n    static _LIBCPP_CONSTEXPR const size_t word_size = __w;\n    static _LIBCPP_CONSTEXPR const size_t short_lag = __s;\n    static _LIBCPP_CONSTEXPR const size_t long_lag = __r;\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type min() { return _Min; }\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type max() { return _Max; }\n    static _LIBCPP_CONSTEXPR const result_type default_seed = 19780503u;\n\n    // constructors and seeding functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit subtract_with_carry_engine(result_type __sd = default_seed)\n        {seed(__sd);}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit subtract_with_carry_engine(_Sseq& __q,\n        typename enable_if<__is_seed_sequence<_Sseq, subtract_with_carry_engine>::value>::type* = 0)\n        {seed(__q);}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(result_type __sd = default_seed)\n        {seed(__sd, integral_constant<unsigned, 1 + (__w - 1) / 32>());}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __is_seed_sequence<_Sseq, subtract_with_carry_engine>::value,\n            void\n        >::type\n        seed(_Sseq& __q)\n            {__seed(__q, integral_constant<unsigned, 1 + (__w - 1) / 32>());}\n\n    // generating functions\n    result_type operator()();\n    _LIBCPP_INLINE_VISIBILITY\n    void discard(unsigned long long __z) {for (; __z; --__z) operator()();}\n\n    template<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\n    friend\n    bool\n    operator==(\n        const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,\n        const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y);\n\n    template<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\n    friend\n    bool\n    operator!=(\n        const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,\n        const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y);\n\n    template <class _CharT, class _Traits,\n              class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x);\n\n    template <class _CharT, class _Traits,\n              class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x);\n\nprivate:\n\n    void seed(result_type __sd, integral_constant<unsigned, 1>);\n    void seed(result_type __sd, integral_constant<unsigned, 2>);\n    template<class _Sseq>\n        void __seed(_Sseq& __q, integral_constant<unsigned, 1>);\n    template<class _Sseq>\n        void __seed(_Sseq& __q, integral_constant<unsigned, 2>);\n};\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\n    _LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::word_size;\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\n    _LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::short_lag;\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\n    _LIBCPP_CONSTEXPR const size_t subtract_with_carry_engine<_UIntType, __w, __s, __r>::long_lag;\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\n    _LIBCPP_CONSTEXPR const typename subtract_with_carry_engine<_UIntType, __w, __s, __r>::result_type\n    subtract_with_carry_engine<_UIntType, __w, __s, __r>::default_seed;\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\nvoid\nsubtract_with_carry_engine<_UIntType, __w, __s, __r>::seed(result_type __sd,\n        integral_constant<unsigned, 1>)\n{\n    linear_congruential_engine<result_type, 40014u, 0u, 2147483563u>\n        __e(__sd == 0u ? default_seed : __sd);\n    for (size_t __i = 0; __i < __r; ++__i)\n        __x_[__i] = static_cast<result_type>(__e() & _Max);\n    __c_ = __x_[__r-1] == 0;\n    __i_ = 0;\n}\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\nvoid\nsubtract_with_carry_engine<_UIntType, __w, __s, __r>::seed(result_type __sd,\n        integral_constant<unsigned, 2>)\n{\n    linear_congruential_engine<result_type, 40014u, 0u, 2147483563u>\n        __e(__sd == 0u ? default_seed : __sd);\n    for (size_t __i = 0; __i < __r; ++__i)\n    {\n        result_type __e0 = __e();\n        __x_[__i] = static_cast<result_type>(\n                                    (__e0 + ((uint64_t)__e() << 32)) & _Max);\n    }\n    __c_ = __x_[__r-1] == 0;\n    __i_ = 0;\n}\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\ntemplate<class _Sseq>\nvoid\nsubtract_with_carry_engine<_UIntType, __w, __s, __r>::__seed(_Sseq& __q,\n        integral_constant<unsigned, 1>)\n{\n    const unsigned __k = 1;\n    uint32_t __ar[__r * __k];\n    __q.generate(__ar, __ar + __r * __k);\n    for (size_t __i = 0; __i < __r; ++__i)\n        __x_[__i] = static_cast<result_type>(__ar[__i] & _Max);\n    __c_ = __x_[__r-1] == 0;\n    __i_ = 0;\n}\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\ntemplate<class _Sseq>\nvoid\nsubtract_with_carry_engine<_UIntType, __w, __s, __r>::__seed(_Sseq& __q,\n        integral_constant<unsigned, 2>)\n{\n    const unsigned __k = 2;\n    uint32_t __ar[__r * __k];\n    __q.generate(__ar, __ar + __r * __k);\n    for (size_t __i = 0; __i < __r; ++__i)\n        __x_[__i] = static_cast<result_type>(\n                  (__ar[2 * __i] + ((uint64_t)__ar[2 * __i + 1] << 32)) & _Max);\n    __c_ = __x_[__r-1] == 0;\n    __i_ = 0;\n}\n\ntemplate<class _UIntType, size_t __w, size_t __s, size_t __r>\n_UIntType\nsubtract_with_carry_engine<_UIntType, __w, __s, __r>::operator()()\n{\n    const result_type& __xs = __x_[(__i_ + (__r - __s)) % __r];\n    result_type& __xr = __x_[__i_];\n    result_type __new_c = __c_ == 0 ? __xs < __xr : __xs != 0 ? __xs <= __xr : 1;\n    __xr = (__xs - __xr - __c_) & _Max;\n    __c_ = __new_c;\n    __i_ = (__i_ + 1) % __r;\n    return __xr;\n}\n\ntemplate<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\nbool\noperator==(\n    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,\n    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y)\n{\n    if (__x.__c_ != __y.__c_)\n        return false;\n    if (__x.__i_ == __y.__i_)\n        return _VSTD::equal(__x.__x_, __x.__x_ + _Rp, __y.__x_);\n    if (__x.__i_ == 0 || __y.__i_ == 0)\n    {\n        size_t __j = _VSTD::min(_Rp - __x.__i_, _Rp - __y.__i_);\n        if (!_VSTD::equal(__x.__x_ + __x.__i_, __x.__x_ + __x.__i_ + __j,\n                         __y.__x_ + __y.__i_))\n            return false;\n        if (__x.__i_ == 0)\n            return _VSTD::equal(__x.__x_ + __j, __x.__x_ + _Rp, __y.__x_);\n        return _VSTD::equal(__x.__x_, __x.__x_ + (_Rp - __j), __y.__x_ + __j);\n    }\n    if (__x.__i_ < __y.__i_)\n    {\n        size_t __j = _Rp - __y.__i_;\n        if (!_VSTD::equal(__x.__x_ + __x.__i_, __x.__x_ + (__x.__i_ + __j),\n                         __y.__x_ + __y.__i_))\n            return false;\n        if (!_VSTD::equal(__x.__x_ + (__x.__i_ + __j), __x.__x_ + _Rp,\n                         __y.__x_))\n            return false;\n        return _VSTD::equal(__x.__x_, __x.__x_ + __x.__i_,\n                           __y.__x_ + (_Rp - (__x.__i_ + __j)));\n    }\n    size_t __j = _Rp - __x.__i_;\n    if (!_VSTD::equal(__y.__x_ + __y.__i_, __y.__x_ + (__y.__i_ + __j),\n                     __x.__x_ + __x.__i_))\n        return false;\n    if (!_VSTD::equal(__y.__x_ + (__y.__i_ + __j), __y.__x_ + _Rp,\n                     __x.__x_))\n        return false;\n    return _VSTD::equal(__y.__x_, __y.__x_ + __y.__i_,\n                       __x.__x_ + (_Rp - (__y.__i_ + __j)));\n}\n\ntemplate<class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(\n    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x,\n    const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _CharT, class _Traits,\n          class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.__x_[__x.__i_];\n    for (size_t __j = __x.__i_ + 1; __j < _Rp; ++__j)\n        __os << __sp << __x.__x_[__j];\n    for (size_t __j = 0; __j < __x.__i_; ++__j)\n        __os << __sp << __x.__x_[__j];\n    __os << __sp << __x.__c_;\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits,\n          class _UInt, size_t _Wp, size_t _Sp, size_t _Rp>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           subtract_with_carry_engine<_UInt, _Wp, _Sp, _Rp>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    _UInt __t[_Rp+1];\n    for (size_t __i = 0; __i < _Rp+1; ++__i)\n        __is >> __t[__i];\n    if (!__is.fail())\n    {\n        for (size_t __i = 0; __i < _Rp; ++__i)\n            __x.__x_[__i] = __t[__i];\n        __x.__c_ = __t[_Rp];\n        __x.__i_ = 0;\n    }\n    return __is;\n}\n\ntypedef subtract_with_carry_engine<uint_fast32_t, 24, 10, 24>     ranlux24_base;\ntypedef subtract_with_carry_engine<uint_fast64_t, 48,  5, 12>     ranlux48_base;\n\n// discard_block_engine\n\ntemplate<class _Engine, size_t __p, size_t __r>\nclass _LIBCPP_TEMPLATE_VIS discard_block_engine\n{\n    _Engine __e_;\n    int     __n_;\n\n    static_assert(  0 <  __r, \"discard_block_engine invalid parameters\");\n    static_assert(__r <= __p, \"discard_block_engine invalid parameters\");\n    static_assert(__r <= INT_MAX, \"discard_block_engine invalid parameters\");\npublic:\n    // types\n    typedef typename _Engine::result_type result_type;\n\n    // engine characteristics\n    static _LIBCPP_CONSTEXPR const size_t block_size = __p;\n    static _LIBCPP_CONSTEXPR const size_t used_block = __r;\n\n#ifdef _LIBCPP_CXX03_LANG\n    static const result_type _Min = _Engine::_Min;\n    static const result_type _Max = _Engine::_Max;\n#else\n    static _LIBCPP_CONSTEXPR const result_type _Min = _Engine::min();\n    static _LIBCPP_CONSTEXPR const result_type _Max = _Engine::max();\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type min() { return _Engine::min(); }\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type max() { return _Engine::max(); }\n\n    // constructors and seeding functions\n    _LIBCPP_INLINE_VISIBILITY\n    discard_block_engine() : __n_(0) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit discard_block_engine(const _Engine& __e)\n        : __e_(__e), __n_(0) {}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit discard_block_engine(_Engine&& __e)\n        : __e_(_VSTD::move(__e)), __n_(0) {}\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit discard_block_engine(result_type __sd) : __e_(__sd), __n_(0) {}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit discard_block_engine(_Sseq& __q,\n        typename enable_if<__is_seed_sequence<_Sseq, discard_block_engine>::value &&\n                           !is_convertible<_Sseq, _Engine>::value>::type* = 0)\n        : __e_(__q), __n_(0) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed() {__e_.seed(); __n_ = 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(result_type __sd) {__e_.seed(__sd); __n_ = 0;}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __is_seed_sequence<_Sseq, discard_block_engine>::value,\n            void\n        >::type\n        seed(_Sseq& __q) {__e_.seed(__q); __n_ = 0;}\n\n    // generating functions\n    result_type operator()();\n    _LIBCPP_INLINE_VISIBILITY\n    void discard(unsigned long long __z) {for (; __z; --__z) operator()();}\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    const _Engine& base() const _NOEXCEPT {return __e_;}\n\n    template<class _Eng, size_t _Pp, size_t _Rp>\n    friend\n    bool\n    operator==(\n        const discard_block_engine<_Eng, _Pp, _Rp>& __x,\n        const discard_block_engine<_Eng, _Pp, _Rp>& __y);\n\n    template<class _Eng, size_t _Pp, size_t _Rp>\n    friend\n    bool\n    operator!=(\n        const discard_block_engine<_Eng, _Pp, _Rp>& __x,\n        const discard_block_engine<_Eng, _Pp, _Rp>& __y);\n\n    template <class _CharT, class _Traits,\n              class _Eng, size_t _Pp, size_t _Rp>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const discard_block_engine<_Eng, _Pp, _Rp>& __x);\n\n    template <class _CharT, class _Traits,\n              class _Eng, size_t _Pp, size_t _Rp>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               discard_block_engine<_Eng, _Pp, _Rp>& __x);\n};\n\ntemplate<class _Engine, size_t __p, size_t __r>\n    _LIBCPP_CONSTEXPR const size_t discard_block_engine<_Engine, __p, __r>::block_size;\n\ntemplate<class _Engine, size_t __p, size_t __r>\n    _LIBCPP_CONSTEXPR const size_t discard_block_engine<_Engine, __p, __r>::used_block;\n\ntemplate<class _Engine, size_t __p, size_t __r>\ntypename discard_block_engine<_Engine, __p, __r>::result_type\ndiscard_block_engine<_Engine, __p, __r>::operator()()\n{\n    if (__n_ >= static_cast<int>(__r))\n    {\n        __e_.discard(__p - __r);\n        __n_ = 0;\n    }\n    ++__n_;\n    return __e_();\n}\n\ntemplate<class _Eng, size_t _Pp, size_t _Rp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const discard_block_engine<_Eng, _Pp, _Rp>& __x,\n           const discard_block_engine<_Eng, _Pp, _Rp>& __y)\n{\n    return __x.__n_ == __y.__n_ && __x.__e_ == __y.__e_;\n}\n\ntemplate<class _Eng, size_t _Pp, size_t _Rp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const discard_block_engine<_Eng, _Pp, _Rp>& __x,\n           const discard_block_engine<_Eng, _Pp, _Rp>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _CharT, class _Traits,\n          class _Eng, size_t _Pp, size_t _Rp>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const discard_block_engine<_Eng, _Pp, _Rp>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    return __os << __x.__e_ << __sp << __x.__n_;\n}\n\ntemplate <class _CharT, class _Traits,\n          class _Eng, size_t _Pp, size_t _Rp>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           discard_block_engine<_Eng, _Pp, _Rp>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    _Eng __e;\n    int __n;\n    __is >> __e >> __n;\n    if (!__is.fail())\n    {\n        __x.__e_ = __e;\n        __x.__n_ = __n;\n    }\n    return __is;\n}\n\ntypedef discard_block_engine<ranlux24_base, 223, 23> ranlux24;\ntypedef discard_block_engine<ranlux48_base, 389, 11> ranlux48;\n\n// independent_bits_engine\n\ntemplate<class _Engine, size_t __w, class _UIntType>\nclass _LIBCPP_TEMPLATE_VIS independent_bits_engine\n{\n    template <class _UInt, _UInt _R0, size_t _Wp, size_t _Mp>\n    class __get_n\n    {\n        static _LIBCPP_CONSTEXPR const size_t _Dt = numeric_limits<_UInt>::digits;\n        static _LIBCPP_CONSTEXPR const size_t _Np = _Wp / _Mp + (_Wp % _Mp != 0);\n        static _LIBCPP_CONSTEXPR const size_t _W0 = _Wp / _Np;\n        static _LIBCPP_CONSTEXPR const _UInt _Y0 = _W0 >= _Dt ? 0 : (_R0 >> _W0) << _W0;\n    public:\n        static _LIBCPP_CONSTEXPR const size_t value = _R0 - _Y0 > _Y0 / _Np ? _Np + 1 : _Np;\n    };\npublic:\n    // types\n    typedef _UIntType result_type;\n\nprivate:\n    _Engine __e_;\n\n    static _LIBCPP_CONSTEXPR const result_type _Dt = numeric_limits<result_type>::digits;\n    static_assert(  0 <  __w, \"independent_bits_engine invalid parameters\");\n    static_assert(__w <= _Dt, \"independent_bits_engine invalid parameters\");\n\n    typedef typename _Engine::result_type _Engine_result_type;\n    typedef typename conditional\n        <\n            sizeof(_Engine_result_type) <= sizeof(result_type),\n                result_type,\n                _Engine_result_type\n        >::type _Working_result_type;\n#ifdef _LIBCPP_CXX03_LANG\n    static const _Working_result_type _Rp = _Engine::_Max - _Engine::_Min\n                                          + _Working_result_type(1);\n#else\n    static _LIBCPP_CONSTEXPR const _Working_result_type _Rp = _Engine::max() - _Engine::min()\n                                                            + _Working_result_type(1);\n#endif\n    static _LIBCPP_CONSTEXPR const size_t __m = __log2<_Working_result_type, _Rp>::value;\n    static _LIBCPP_CONSTEXPR const size_t __n = __get_n<_Working_result_type, _Rp, __w, __m>::value;\n    static _LIBCPP_CONSTEXPR const size_t __w0 = __w / __n;\n    static _LIBCPP_CONSTEXPR const size_t __n0 = __n - __w % __n;\n    static _LIBCPP_CONSTEXPR const size_t _WDt = numeric_limits<_Working_result_type>::digits;\n    static _LIBCPP_CONSTEXPR const size_t _EDt = numeric_limits<_Engine_result_type>::digits;\n    static _LIBCPP_CONSTEXPR const _Working_result_type __y0 = __w0 >= _WDt ? 0 :\n                                                               (_Rp >> __w0) << __w0;\n    static _LIBCPP_CONSTEXPR const _Working_result_type __y1 = __w0 >= _WDt - 1 ? 0 :\n                                                               (_Rp >> (__w0+1)) << (__w0+1);\n    static _LIBCPP_CONSTEXPR const _Engine_result_type __mask0 = __w0 > 0 ?\n                                _Engine_result_type(~0) >> (_EDt - __w0) :\n                                _Engine_result_type(0);\n    static _LIBCPP_CONSTEXPR const _Engine_result_type __mask1 = __w0 < _EDt - 1 ?\n                                _Engine_result_type(~0) >> (_EDt - (__w0 + 1)) :\n                                _Engine_result_type(~0);\npublic:\n    static _LIBCPP_CONSTEXPR const result_type _Min = 0;\n    static _LIBCPP_CONSTEXPR const result_type _Max = __w == _Dt ? result_type(~0) :\n                                                      (result_type(1) << __w) - result_type(1);\n    static_assert(_Min < _Max, \"independent_bits_engine invalid parameters\");\n\n    // engine characteristics\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type min() { return _Min; }\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type max() { return _Max; }\n\n    // constructors and seeding functions\n    _LIBCPP_INLINE_VISIBILITY\n    independent_bits_engine() {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit independent_bits_engine(const _Engine& __e)\n        : __e_(__e) {}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit independent_bits_engine(_Engine&& __e)\n        : __e_(_VSTD::move(__e)) {}\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit independent_bits_engine(result_type __sd) : __e_(__sd) {}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit independent_bits_engine(_Sseq& __q,\n        typename enable_if<__is_seed_sequence<_Sseq, independent_bits_engine>::value &&\n                           !is_convertible<_Sseq, _Engine>::value>::type* = 0)\n         : __e_(__q) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed() {__e_.seed();}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(result_type __sd) {__e_.seed(__sd);}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __is_seed_sequence<_Sseq, independent_bits_engine>::value,\n            void\n        >::type\n        seed(_Sseq& __q) {__e_.seed(__q);}\n\n    // generating functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator()() {return __eval(integral_constant<bool, _Rp != 0>());}\n    _LIBCPP_INLINE_VISIBILITY\n    void discard(unsigned long long __z) {for (; __z; --__z) operator()();}\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    const _Engine& base() const _NOEXCEPT {return __e_;}\n\n    template<class _Eng, size_t _Wp, class _UInt>\n    friend\n    bool\n    operator==(\n        const independent_bits_engine<_Eng, _Wp, _UInt>& __x,\n        const independent_bits_engine<_Eng, _Wp, _UInt>& __y);\n\n    template<class _Eng, size_t _Wp, class _UInt>\n    friend\n    bool\n    operator!=(\n        const independent_bits_engine<_Eng, _Wp, _UInt>& __x,\n        const independent_bits_engine<_Eng, _Wp, _UInt>& __y);\n\n    template <class _CharT, class _Traits,\n              class _Eng, size_t _Wp, class _UInt>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const independent_bits_engine<_Eng, _Wp, _UInt>& __x);\n\n    template <class _CharT, class _Traits,\n              class _Eng, size_t _Wp, class _UInt>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               independent_bits_engine<_Eng, _Wp, _UInt>& __x);\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    result_type __eval(false_type);\n    result_type __eval(true_type);\n\n    template <size_t __count>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            __count < _Dt,\n            result_type\n        >::type\n        __lshift(result_type __x) {return __x << __count;}\n\n    template <size_t __count>\n        _LIBCPP_INLINE_VISIBILITY\n        static\n        typename enable_if\n        <\n            (__count >= _Dt),\n            result_type\n        >::type\n        __lshift(result_type) {return result_type(0);}\n};\n\ntemplate<class _Engine, size_t __w, class _UIntType>\ninline\n_UIntType\nindependent_bits_engine<_Engine, __w, _UIntType>::__eval(false_type)\n{\n    return static_cast<result_type>(__e_() & __mask0);\n}\n\ntemplate<class _Engine, size_t __w, class _UIntType>\n_UIntType\nindependent_bits_engine<_Engine, __w, _UIntType>::__eval(true_type)\n{\n    result_type _Sp = 0;\n    for (size_t __k = 0; __k < __n0; ++__k)\n    {\n        _Engine_result_type __u;\n        do\n        {\n            __u = __e_() - _Engine::min();\n        } while (__u >= __y0);\n        _Sp = static_cast<result_type>(__lshift<__w0>(_Sp) + (__u & __mask0));\n    }\n    for (size_t __k = __n0; __k < __n; ++__k)\n    {\n        _Engine_result_type __u;\n        do\n        {\n            __u = __e_() - _Engine::min();\n        } while (__u >= __y1);\n        _Sp = static_cast<result_type>(__lshift<__w0+1>(_Sp) + (__u & __mask1));\n    }\n    return _Sp;\n}\n\ntemplate<class _Eng, size_t _Wp, class _UInt>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(\n    const independent_bits_engine<_Eng, _Wp, _UInt>& __x,\n    const independent_bits_engine<_Eng, _Wp, _UInt>& __y)\n{\n    return __x.base() == __y.base();\n}\n\ntemplate<class _Eng, size_t _Wp, class _UInt>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(\n    const independent_bits_engine<_Eng, _Wp, _UInt>& __x,\n    const independent_bits_engine<_Eng, _Wp, _UInt>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _CharT, class _Traits,\n          class _Eng, size_t _Wp, class _UInt>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const independent_bits_engine<_Eng, _Wp, _UInt>& __x)\n{\n    return __os << __x.base();\n}\n\ntemplate <class _CharT, class _Traits,\n          class _Eng, size_t _Wp, class _UInt>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           independent_bits_engine<_Eng, _Wp, _UInt>& __x)\n{\n    _Eng __e;\n    __is >> __e;\n    if (!__is.fail())\n        __x.__e_ = __e;\n    return __is;\n}\n\n// shuffle_order_engine\n\ntemplate <uint64_t _Xp, uint64_t _Yp>\nstruct __ugcd\n{\n    static _LIBCPP_CONSTEXPR const uint64_t value = __ugcd<_Yp, _Xp % _Yp>::value;\n};\n\ntemplate <uint64_t _Xp>\nstruct __ugcd<_Xp, 0>\n{\n    static _LIBCPP_CONSTEXPR const uint64_t value = _Xp;\n};\n\ntemplate <uint64_t _Np, uint64_t _Dp>\nclass __uratio\n{\n    static_assert(_Dp != 0, \"__uratio divide by 0\");\n    static _LIBCPP_CONSTEXPR const uint64_t __gcd = __ugcd<_Np, _Dp>::value;\npublic:\n    static _LIBCPP_CONSTEXPR const uint64_t num = _Np / __gcd;\n    static _LIBCPP_CONSTEXPR const uint64_t den = _Dp / __gcd;\n\n    typedef __uratio<num, den> type;\n};\n\ntemplate<class _Engine, size_t __k>\nclass _LIBCPP_TEMPLATE_VIS shuffle_order_engine\n{\n    static_assert(0 < __k, \"shuffle_order_engine invalid parameters\");\npublic:\n    // types\n    typedef typename _Engine::result_type result_type;\n\nprivate:\n    _Engine __e_;\n    result_type _V_[__k];\n    result_type _Y_;\n\npublic:\n    // engine characteristics\n    static _LIBCPP_CONSTEXPR const size_t table_size = __k;\n\n#ifdef _LIBCPP_CXX03_LANG\n    static const result_type _Min = _Engine::_Min;\n    static const result_type _Max = _Engine::_Max;\n#else\n    static _LIBCPP_CONSTEXPR const result_type _Min = _Engine::min();\n    static _LIBCPP_CONSTEXPR const result_type _Max = _Engine::max();\n#endif\n    static_assert(_Min < _Max, \"shuffle_order_engine invalid parameters\");\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type min() { return _Min; }\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type max() { return _Max; }\n\n    static _LIBCPP_CONSTEXPR const unsigned long long _Rp = _Max - _Min + 1ull;\n\n    // constructors and seeding functions\n    _LIBCPP_INLINE_VISIBILITY\n    shuffle_order_engine() {__init();}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit shuffle_order_engine(const _Engine& __e)\n        : __e_(__e) {__init();}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit shuffle_order_engine(_Engine&& __e)\n        : __e_(_VSTD::move(__e)) {__init();}\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit shuffle_order_engine(result_type __sd) : __e_(__sd) {__init();}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit shuffle_order_engine(_Sseq& __q,\n        typename enable_if<__is_seed_sequence<_Sseq, shuffle_order_engine>::value &&\n                           !is_convertible<_Sseq, _Engine>::value>::type* = 0)\n         : __e_(__q) {__init();}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed() {__e_.seed(); __init();}\n    _LIBCPP_INLINE_VISIBILITY\n    void seed(result_type __sd) {__e_.seed(__sd); __init();}\n    template<class _Sseq>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __is_seed_sequence<_Sseq, shuffle_order_engine>::value,\n            void\n        >::type\n        seed(_Sseq& __q) {__e_.seed(__q); __init();}\n\n    // generating functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator()() {return __eval(integral_constant<bool, _Rp != 0>());}\n    _LIBCPP_INLINE_VISIBILITY\n    void discard(unsigned long long __z) {for (; __z; --__z) operator()();}\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    const _Engine& base() const _NOEXCEPT {return __e_;}\n\nprivate:\n    template<class _Eng, size_t _Kp>\n    friend\n    bool\n    operator==(\n        const shuffle_order_engine<_Eng, _Kp>& __x,\n        const shuffle_order_engine<_Eng, _Kp>& __y);\n\n    template<class _Eng, size_t _Kp>\n    friend\n    bool\n    operator!=(\n        const shuffle_order_engine<_Eng, _Kp>& __x,\n        const shuffle_order_engine<_Eng, _Kp>& __y);\n\n    template <class _CharT, class _Traits,\n              class _Eng, size_t _Kp>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const shuffle_order_engine<_Eng, _Kp>& __x);\n\n    template <class _CharT, class _Traits,\n              class _Eng, size_t _Kp>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               shuffle_order_engine<_Eng, _Kp>& __x);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __init()\n    {\n        for (size_t __i = 0; __i < __k; ++__i)\n            _V_[__i] = __e_();\n        _Y_ = __e_();\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type __eval(false_type) {return __eval2(integral_constant<bool, __k & 1>());}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type __eval(true_type) {return __eval(__uratio<__k, _Rp>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type __eval2(false_type) {return __eval(__uratio<__k/2, 0x8000000000000000ull>());}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type __eval2(true_type) {return __evalf<__k, 0>();}\n\n    template <uint64_t _Np, uint64_t _Dp>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            (__uratio<_Np, _Dp>::num > 0xFFFFFFFFFFFFFFFFull / (_Max - _Min)),\n            result_type\n        >::type\n        __eval(__uratio<_Np, _Dp>)\n            {return __evalf<__uratio<_Np, _Dp>::num, __uratio<_Np, _Dp>::den>();}\n\n    template <uint64_t _Np, uint64_t _Dp>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __uratio<_Np, _Dp>::num <= 0xFFFFFFFFFFFFFFFFull / (_Max - _Min),\n            result_type\n        >::type\n        __eval(__uratio<_Np, _Dp>)\n        {\n            const size_t __j = static_cast<size_t>(__uratio<_Np, _Dp>::num * (_Y_ - _Min)\n                                                   / __uratio<_Np, _Dp>::den);\n            _Y_ = _V_[__j];\n            _V_[__j] = __e_();\n            return _Y_;\n        }\n\n    template <uint64_t __n, uint64_t __d>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type __evalf()\n        {\n            const double _Fp = __d == 0 ?\n                __n / (2. * 0x8000000000000000ull) :\n                __n / (double)__d;\n            const size_t __j = static_cast<size_t>(_Fp * (_Y_ - _Min));\n            _Y_ = _V_[__j];\n            _V_[__j] = __e_();\n            return _Y_;\n        }\n};\n\ntemplate<class _Engine, size_t __k>\n    _LIBCPP_CONSTEXPR const size_t shuffle_order_engine<_Engine, __k>::table_size;\n\ntemplate<class _Eng, size_t _Kp>\nbool\noperator==(\n    const shuffle_order_engine<_Eng, _Kp>& __x,\n    const shuffle_order_engine<_Eng, _Kp>& __y)\n{\n    return __x._Y_ == __y._Y_ && _VSTD::equal(__x._V_, __x._V_ + _Kp, __y._V_) &&\n           __x.__e_ == __y.__e_;\n}\n\ntemplate<class _Eng, size_t _Kp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(\n    const shuffle_order_engine<_Eng, _Kp>& __x,\n    const shuffle_order_engine<_Eng, _Kp>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _CharT, class _Traits,\n          class _Eng, size_t _Kp>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const shuffle_order_engine<_Eng, _Kp>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.__e_ << __sp << __x._V_[0];\n    for (size_t __i = 1; __i < _Kp; ++__i)\n        __os << __sp << __x._V_[__i];\n    return __os << __sp << __x._Y_;\n}\n\ntemplate <class _CharT, class _Traits,\n          class _Eng, size_t _Kp>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           shuffle_order_engine<_Eng, _Kp>& __x)\n{\n    typedef typename shuffle_order_engine<_Eng, _Kp>::result_type result_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    _Eng __e;\n    result_type _Vp[_Kp+1];\n    __is >> __e;\n    for (size_t __i = 0; __i < _Kp+1; ++__i)\n        __is >> _Vp[__i];\n    if (!__is.fail())\n    {\n        __x.__e_ = __e;\n        for (size_t __i = 0; __i < _Kp; ++__i)\n            __x._V_[__i] = _Vp[__i];\n        __x._Y_ = _Vp[_Kp];\n    }\n    return __is;\n}\n\ntypedef shuffle_order_engine<minstd_rand0, 256>                         knuth_b;\n\n// random_device\n\nclass _LIBCPP_TYPE_VIS random_device\n{\n#ifdef _LIBCPP_USING_DEV_RANDOM\n    int __f_;\n#endif // defined(_LIBCPP_USING_DEV_RANDOM)\npublic:\n    // types\n    typedef unsigned result_type;\n\n    // generator characteristics\n    static _LIBCPP_CONSTEXPR const result_type _Min = 0;\n    static _LIBCPP_CONSTEXPR const result_type _Max = 0xFFFFFFFFu;\n\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type min() { return _Min;}\n    _LIBCPP_INLINE_VISIBILITY\n    static _LIBCPP_CONSTEXPR result_type max() { return _Max;}\n\n    // constructors\n    explicit random_device(const string& __token = \"/dev/urandom\");\n    ~random_device();\n\n    // generating functions\n    result_type operator()();\n\n    // property functions\n    double entropy() const _NOEXCEPT;\n\nprivate:\n    // no copy functions\n    random_device(const random_device&); // = delete;\n    random_device& operator=(const random_device&); // = delete;\n};\n\n// seed_seq\n\nclass _LIBCPP_TEMPLATE_VIS seed_seq\n{\npublic:\n    // types\n    typedef uint32_t result_type;\n\nprivate:\n    vector<result_type> __v_;\n\n    template<class _InputIterator>\n        void init(_InputIterator __first, _InputIterator __last);\npublic:\n    // constructors\n    _LIBCPP_INLINE_VISIBILITY\n    seed_seq() _NOEXCEPT {}\n#ifndef _LIBCPP_CXX03_LANG\n    template<class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        seed_seq(initializer_list<_Tp> __il) {init(__il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    template<class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        seed_seq(_InputIterator __first, _InputIterator __last)\n             {init(__first, __last);}\n\n    // generating functions\n    template<class _RandomAccessIterator>\n        void generate(_RandomAccessIterator __first, _RandomAccessIterator __last);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const _NOEXCEPT {return __v_.size();}\n    template<class _OutputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void param(_OutputIterator __dest) const\n            {_VSTD::copy(__v_.begin(), __v_.end(), __dest);}\n\nprivate:\n    // no copy functions\n    seed_seq(const seed_seq&); // = delete;\n    void operator=(const seed_seq&); // = delete;\n\n    _LIBCPP_INLINE_VISIBILITY\n    static result_type _Tp(result_type __x) {return __x ^ (__x >> 27);}\n};\n\ntemplate<class _InputIterator>\nvoid\nseed_seq::init(_InputIterator __first, _InputIterator __last)\n{\n    for (_InputIterator __s = __first; __s != __last; ++__s)\n        __v_.push_back(*__s & 0xFFFFFFFF);\n}\n\ntemplate<class _RandomAccessIterator>\nvoid\nseed_seq::generate(_RandomAccessIterator __first, _RandomAccessIterator __last)\n{\n    if (__first != __last)\n    {\n        _VSTD::fill(__first, __last, 0x8b8b8b8b);\n        const size_t __n = static_cast<size_t>(__last - __first);\n        const size_t __s = __v_.size();\n        const size_t __t = (__n >= 623) ? 11\n                         : (__n >= 68) ? 7\n                         : (__n >= 39) ? 5\n                         : (__n >= 7)  ? 3\n                         : (__n - 1) / 2;\n        const size_t __p = (__n - __t) / 2;\n        const size_t __q = __p + __t;\n        const size_t __m = _VSTD::max(__s + 1, __n);\n        // __k = 0;\n        {\n            result_type __r = 1664525 * _Tp(__first[0] ^ __first[__p]\n                                                      ^  __first[__n - 1]);\n            __first[__p] += __r;\n            __r += __s;\n            __first[__q] += __r;\n            __first[0] = __r;\n        }\n        for (size_t __k = 1; __k <= __s; ++__k)\n        {\n            const size_t __kmodn = __k % __n;\n            const size_t __kpmodn = (__k + __p) % __n;\n            result_type __r = 1664525 * _Tp(__first[__kmodn] ^ __first[__kpmodn]\n                                           ^ __first[(__k - 1) % __n]);\n            __first[__kpmodn] += __r;\n            __r +=  __kmodn + __v_[__k-1];\n            __first[(__k + __q) % __n] += __r;\n            __first[__kmodn] = __r;\n        }\n        for (size_t __k = __s + 1; __k < __m; ++__k)\n        {\n            const size_t __kmodn = __k % __n;\n            const size_t __kpmodn = (__k + __p) % __n;\n            result_type __r = 1664525 * _Tp(__first[__kmodn] ^ __first[__kpmodn]\n                                           ^ __first[(__k - 1) % __n]);\n            __first[__kpmodn] += __r;\n            __r +=  __kmodn;\n            __first[(__k + __q) % __n] += __r;\n            __first[__kmodn] = __r;\n        }\n        for (size_t __k = __m; __k < __m + __n; ++__k)\n        {\n            const size_t __kmodn = __k % __n;\n            const size_t __kpmodn = (__k + __p) % __n;\n            result_type __r = 1566083941 * _Tp(__first[__kmodn] +\n                                              __first[__kpmodn] +\n                                              __first[(__k - 1) % __n]);\n            __first[__kpmodn] ^= __r;\n            __r -= __kmodn;\n            __first[(__k + __q) % __n] ^= __r;\n            __first[__kmodn] = __r;\n        }\n    }\n}\n\n// generate_canonical\n\ntemplate<class _RealType, size_t __bits, class _URNG>\n_RealType\ngenerate_canonical(_URNG& __g)\n{\n    const size_t _Dt = numeric_limits<_RealType>::digits;\n    const size_t __b = _Dt < __bits ? _Dt : __bits;\n#ifdef _LIBCPP_CXX03_LANG\n    const size_t __logR = __log2<uint64_t, _URNG::_Max - _URNG::_Min + uint64_t(1)>::value;\n#else\n    const size_t __logR = __log2<uint64_t, _URNG::max() - _URNG::min() + uint64_t(1)>::value;\n#endif\n    const size_t __k = __b / __logR + (__b % __logR != 0) + (__b == 0);\n    const _RealType _Rp = _URNG::max() - _URNG::min() + _RealType(1);\n    _RealType __base = _Rp;\n    _RealType _Sp = __g() - _URNG::min();\n    for (size_t __i = 1; __i < __k; ++__i, __base *= _Rp)\n        _Sp += (__g() - _URNG::min()) * __base;\n    return _Sp / __base;\n}\n\n// uniform_int_distribution\n\n// in <algorithm>\n\ntemplate <class _CharT, class _Traits, class _IT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const uniform_int_distribution<_IT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    return __os << __x.a() << __sp << __x.b();\n}\n\ntemplate <class _CharT, class _Traits, class _IT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           uniform_int_distribution<_IT>& __x)\n{\n    typedef uniform_int_distribution<_IT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __a;\n    result_type __b;\n    __is >> __a >> __b;\n    if (!__is.fail())\n        __x.param(param_type(__a, __b));\n    return __is;\n}\n\n// uniform_real_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS uniform_real_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __a_;\n        result_type __b_;\n    public:\n        typedef uniform_real_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __a = 0,\n                            result_type __b = 1)\n            : __a_(__a), __b_(__b) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type a() const {return __a_;}\n        _LIBCPP_INLINE_VISIBILITY\n        result_type b() const {return __b_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__a_ == __y.__a_ && __x.__b_ == __y.__b_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructors and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit uniform_real_distribution(result_type __a = 0, result_type __b = 1)\n        : __p_(param_type(__a, __b)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit uniform_real_distribution(const param_type& __p) : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> _LIBCPP_INLINE_VISIBILITY result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type a() const {return __p_.a();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type b() const {return __p_.b();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return a();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return b();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const uniform_real_distribution& __x,\n                        const uniform_real_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const uniform_real_distribution& __x,\n                        const uniform_real_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate<class _RealType>\ntemplate<class _URNG>\ninline\ntypename uniform_real_distribution<_RealType>::result_type\nuniform_real_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    return (__p.b() - __p.a())\n        * _VSTD::generate_canonical<_RealType, numeric_limits<_RealType>::digits>(__g)\n        + __p.a();\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const uniform_real_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    return __os << __x.a() << __sp << __x.b();\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           uniform_real_distribution<_RT>& __x)\n{\n    typedef uniform_real_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __a;\n    result_type __b;\n    __is >> __a >> __b;\n    if (!__is.fail())\n        __x.param(param_type(__a, __b));\n    return __is;\n}\n\n// bernoulli_distribution\n\nclass _LIBCPP_TEMPLATE_VIS bernoulli_distribution\n{\npublic:\n    // types\n    typedef bool result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        double __p_;\n    public:\n        typedef bernoulli_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(double __p = 0.5) : __p_(__p) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        double p() const {return __p_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__p_ == __y.__p_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructors and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit bernoulli_distribution(double __p = 0.5)\n        : __p_(param_type(__p)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit bernoulli_distribution(const param_type& __p) : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> _LIBCPP_INLINE_VISIBILITY result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    double p() const {return __p_.p();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return false;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return true;}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const bernoulli_distribution& __x,\n                        const bernoulli_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const bernoulli_distribution& __x,\n                        const bernoulli_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate<class _URNG>\ninline\nbernoulli_distribution::result_type\nbernoulli_distribution::operator()(_URNG& __g, const param_type& __p)\n{\n    uniform_real_distribution<double> __gen;\n    return __gen(__g) < __p.p();\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os, const bernoulli_distribution& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    return __os << __x.p();\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is, bernoulli_distribution& __x)\n{\n    typedef bernoulli_distribution _Eng;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    double __p;\n    __is >> __p;\n    if (!__is.fail())\n        __x.param(param_type(__p));\n    return __is;\n}\n\n// binomial_distribution\n\ntemplate<class _IntType = int>\nclass _LIBCPP_TEMPLATE_VIS binomial_distribution\n{\npublic:\n    // types\n    typedef _IntType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __t_;\n        double __p_;\n        double __pr_;\n        double __odds_ratio_;\n        result_type __r0_;\n    public:\n        typedef binomial_distribution distribution_type;\n\n        explicit param_type(result_type __t = 1, double __p = 0.5);\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type t() const {return __t_;}\n        _LIBCPP_INLINE_VISIBILITY\n        double p() const {return __p_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__t_ == __y.__t_ && __x.__p_ == __y.__p_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n\n        friend class binomial_distribution;\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructors and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit binomial_distribution(result_type __t = 1, double __p = 0.5)\n        : __p_(param_type(__t, __p)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit binomial_distribution(const param_type& __p) : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type t() const {return __p_.t();}\n    _LIBCPP_INLINE_VISIBILITY\n    double p() const {return __p_.p();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return t();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const binomial_distribution& __x,\n                        const binomial_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const binomial_distribution& __x,\n                        const binomial_distribution& __y)\n        {return !(__x == __y);}\n};\n\n#ifndef _LIBCPP_MSVCRT\nextern \"C\" double lgamma_r(double, int *);\n#endif\n\ninline _LIBCPP_INLINE_VISIBILITY double __libcpp_lgamma(double __d) {\n#if defined(_LIBCPP_MSVCRT)\n  return lgamma(__d);\n#else\n  int __sign;\n  return lgamma_r(__d, &__sign);\n#endif\n}\n\ntemplate<class _IntType>\nbinomial_distribution<_IntType>::param_type::param_type(const result_type __t, const double __p)\n    : __t_(__t), __p_(__p)\n{\n    if (0 < __p_ && __p_ < 1)\n    {\n        __r0_ = static_cast<result_type>((__t_ + 1) * __p_);\n        __pr_ = _VSTD::exp(__libcpp_lgamma(__t_ + 1.) -\n                           __libcpp_lgamma(__r0_ + 1.) -\n                           __libcpp_lgamma(__t_ - __r0_ + 1.) + __r0_ * _VSTD::log(__p_) +\n                           (__t_ - __r0_) * _VSTD::log(1 - __p_));\n        __odds_ratio_ = __p_ / (1 - __p_);\n    }\n}\n\n// Reference: Kemp, C.D. (1986). `A modal method for generating binomial\n//           variables', Commun. Statist. - Theor. Meth. 15(3), 805-813.\ntemplate<class _IntType>\ntemplate<class _URNG>\n_IntType\nbinomial_distribution<_IntType>::operator()(_URNG& __g, const param_type& __pr)\n{\n    if (__pr.__t_ == 0 || __pr.__p_ == 0)\n        return 0;\n    if (__pr.__p_ == 1)\n        return __pr.__t_;\n    uniform_real_distribution<double> __gen;\n    double __u = __gen(__g) - __pr.__pr_;\n    if (__u < 0)\n        return __pr.__r0_;\n    double __pu = __pr.__pr_;\n    double __pd = __pu;\n    result_type __ru = __pr.__r0_;\n    result_type __rd = __ru;\n    while (true)\n    {\n        if (__rd >= 1)\n        {\n            __pd *= __rd / (__pr.__odds_ratio_ * (__pr.__t_ - __rd + 1));\n            __u -= __pd;\n            if (__u < 0)\n                return __rd - 1;\n        }\n        if ( __rd != 0 )\n            --__rd;\n        ++__ru;\n        if (__ru <= __pr.__t_)\n        {\n            __pu *= (__pr.__t_ - __ru + 1) * __pr.__odds_ratio_ / __ru;\n            __u -= __pu;\n            if (__u < 0)\n                return __ru;\n        }\n    }\n}\n\ntemplate <class _CharT, class _Traits, class _IntType>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const binomial_distribution<_IntType>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    return __os << __x.t() << __sp << __x.p();\n}\n\ntemplate <class _CharT, class _Traits, class _IntType>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           binomial_distribution<_IntType>& __x)\n{\n    typedef binomial_distribution<_IntType> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __t;\n    double __p;\n    __is >> __t >> __p;\n    if (!__is.fail())\n        __x.param(param_type(__t, __p));\n    return __is;\n}\n\n// exponential_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS exponential_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __lambda_;\n    public:\n        typedef exponential_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __lambda = 1) : __lambda_(__lambda) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type lambda() const {return __lambda_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__lambda_ == __y.__lambda_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructors and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit exponential_distribution(result_type __lambda = 1)\n        : __p_(param_type(__lambda)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit exponential_distribution(const param_type& __p) : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type lambda() const {return __p_.lambda();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const exponential_distribution& __x,\n                        const exponential_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const exponential_distribution& __x,\n                        const exponential_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _RealType>\ntemplate<class _URNG>\n_RealType\nexponential_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    return -_VSTD::log\n                  (\n                      result_type(1) -\n                      _VSTD::generate_canonical<result_type,\n                                       numeric_limits<result_type>::digits>(__g)\n                  )\n                  / __p.lambda();\n}\n\ntemplate <class _CharT, class _Traits, class _RealType>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const exponential_distribution<_RealType>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    return __os << __x.lambda();\n}\n\ntemplate <class _CharT, class _Traits, class _RealType>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           exponential_distribution<_RealType>& __x)\n{\n    typedef exponential_distribution<_RealType> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __lambda;\n    __is >> __lambda;\n    if (!__is.fail())\n        __x.param(param_type(__lambda));\n    return __is;\n}\n\n// normal_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS normal_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __mean_;\n        result_type __stddev_;\n    public:\n        typedef normal_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __mean = 0, result_type __stddev = 1)\n            : __mean_(__mean), __stddev_(__stddev) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type mean() const {return __mean_;}\n        _LIBCPP_INLINE_VISIBILITY\n        result_type stddev() const {return __stddev_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__mean_ == __y.__mean_ && __x.__stddev_ == __y.__stddev_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n    result_type _V_;\n    bool _V_hot_;\n\npublic:\n    // constructors and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit normal_distribution(result_type __mean = 0, result_type __stddev = 1)\n        : __p_(param_type(__mean, __stddev)), _V_hot_(false) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit normal_distribution(const param_type& __p)\n        : __p_(__p), _V_hot_(false) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {_V_hot_ = false;}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type mean() const {return __p_.mean();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type stddev() const {return __p_.stddev();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return -numeric_limits<result_type>::infinity();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const normal_distribution& __x,\n                        const normal_distribution& __y)\n        {return __x.__p_ == __y.__p_ && __x._V_hot_ == __y._V_hot_ &&\n                (!__x._V_hot_ || __x._V_ == __y._V_);}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const normal_distribution& __x,\n                        const normal_distribution& __y)\n        {return !(__x == __y);}\n\n    template <class _CharT, class _Traits, class _RT>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const normal_distribution<_RT>& __x);\n\n    template <class _CharT, class _Traits, class _RT>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               normal_distribution<_RT>& __x);\n};\n\ntemplate <class _RealType>\ntemplate<class _URNG>\n_RealType\nnormal_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    result_type _Up;\n    if (_V_hot_)\n    {\n        _V_hot_ = false;\n        _Up = _V_;\n    }\n    else\n    {\n        uniform_real_distribution<result_type> _Uni(-1, 1);\n        result_type __u;\n        result_type __v;\n        result_type __s;\n        do\n        {\n            __u = _Uni(__g);\n            __v = _Uni(__g);\n            __s = __u * __u + __v * __v;\n        } while (__s > 1 || __s == 0);\n        result_type _Fp = _VSTD::sqrt(-2 * _VSTD::log(__s) / __s);\n        _V_ = __v * _Fp;\n        _V_hot_ = true;\n        _Up = __u * _Fp;\n    }\n    return _Up * __p.stddev() + __p.mean();\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const normal_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.mean() << __sp << __x.stddev() << __sp << __x._V_hot_;\n    if (__x._V_hot_)\n        __os << __sp << __x._V_;\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           normal_distribution<_RT>& __x)\n{\n    typedef normal_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __mean;\n    result_type __stddev;\n    result_type _Vp = 0;\n    bool _V_hot = false;\n    __is >> __mean >> __stddev >> _V_hot;\n    if (_V_hot)\n        __is >> _Vp;\n    if (!__is.fail())\n    {\n        __x.param(param_type(__mean, __stddev));\n        __x._V_hot_ = _V_hot;\n        __x._V_ = _Vp;\n    }\n    return __is;\n}\n\n// lognormal_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS lognormal_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        normal_distribution<result_type> __nd_;\n    public:\n        typedef lognormal_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __m = 0, result_type __s = 1)\n            : __nd_(__m, __s) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type m() const {return __nd_.mean();}\n        _LIBCPP_INLINE_VISIBILITY\n        result_type s() const {return __nd_.stddev();}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__nd_ == __y.__nd_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n        friend class lognormal_distribution;\n\n        template <class _CharT, class _Traits, class _RT>\n        friend\n        basic_ostream<_CharT, _Traits>&\n        operator<<(basic_ostream<_CharT, _Traits>& __os,\n                   const lognormal_distribution<_RT>& __x);\n\n        template <class _CharT, class _Traits, class _RT>\n        friend\n        basic_istream<_CharT, _Traits>&\n        operator>>(basic_istream<_CharT, _Traits>& __is,\n                   lognormal_distribution<_RT>& __x);\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit lognormal_distribution(result_type __m = 0, result_type __s = 1)\n        : __p_(param_type(__m, __s)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit lognormal_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {__p_.__nd_.reset();}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g, const param_type& __p)\n        {return _VSTD::exp(const_cast<normal_distribution<result_type>&>(__p.__nd_)(__g));}\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type m() const {return __p_.m();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type s() const {return __p_.s();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const lognormal_distribution& __x,\n                        const lognormal_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const lognormal_distribution& __x,\n                        const lognormal_distribution& __y)\n        {return !(__x == __y);}\n\n    template <class _CharT, class _Traits, class _RT>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const lognormal_distribution<_RT>& __x);\n\n    template <class _CharT, class _Traits, class _RT>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               lognormal_distribution<_RT>& __x);\n};\n\ntemplate <class _CharT, class _Traits, class _RT>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const lognormal_distribution<_RT>& __x)\n{\n    return __os << __x.__p_.__nd_;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           lognormal_distribution<_RT>& __x)\n{\n    return __is >> __x.__p_.__nd_;\n}\n\n// poisson_distribution\n\ntemplate<class _IntType = int>\nclass _LIBCPP_TEMPLATE_VIS poisson_distribution\n{\npublic:\n    // types\n    typedef _IntType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        double __mean_;\n        double __s_;\n        double __d_;\n        double __l_;\n        double __omega_;\n        double __c0_;\n        double __c1_;\n        double __c2_;\n        double __c3_;\n        double __c_;\n\n    public:\n        typedef poisson_distribution distribution_type;\n\n        explicit param_type(double __mean = 1.0);\n\n        _LIBCPP_INLINE_VISIBILITY\n        double mean() const {return __mean_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__mean_ == __y.__mean_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n\n        friend class poisson_distribution;\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructors and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit poisson_distribution(double __mean = 1.0) : __p_(__mean) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit poisson_distribution(const param_type& __p) : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    double mean() const {return __p_.mean();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::max();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const poisson_distribution& __x,\n                        const poisson_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const poisson_distribution& __x,\n                        const poisson_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate<class _IntType>\npoisson_distribution<_IntType>::param_type::param_type(double __mean)\n    : __mean_(__mean)\n{\n    if (__mean_ < 10)\n    {\n        __s_ = 0;\n        __d_ = 0;\n        __l_ = _VSTD::exp(-__mean_);\n        __omega_ = 0;\n        __c3_ = 0;\n        __c2_ = 0;\n        __c1_ = 0;\n        __c0_ = 0;\n        __c_ = 0;\n    }\n    else\n    {\n        __s_ = _VSTD::sqrt(__mean_);\n        __d_ = 6 * __mean_ * __mean_;\n        __l_ = static_cast<result_type>(__mean_ - 1.1484);\n        __omega_ = .3989423 / __s_;\n        double __b1_ = .4166667E-1 / __mean_;\n        double __b2_ = .3 * __b1_ * __b1_;\n        __c3_ = .1428571 * __b1_ * __b2_;\n        __c2_ = __b2_ - 15. * __c3_;\n        __c1_ = __b1_ - 6. * __b2_ + 45. * __c3_;\n        __c0_ = 1. - __b1_ + 3. * __b2_ - 15. * __c3_;\n        __c_ = .1069 / __mean_;\n    }\n}\n\ntemplate <class _IntType>\ntemplate<class _URNG>\n_IntType\npoisson_distribution<_IntType>::operator()(_URNG& __urng, const param_type& __pr)\n{\n    result_type __x;\n    uniform_real_distribution<double> __urd;\n    if (__pr.__mean_ < 10)\n    {\n         __x = 0;\n        for (double __p = __urd(__urng); __p > __pr.__l_; ++__x)\n            __p *= __urd(__urng);\n    }\n    else\n    {\n        double __difmuk;\n        double __g = __pr.__mean_ + __pr.__s_ * normal_distribution<double>()(__urng);\n        double __u;\n        if (__g > 0)\n        {\n            __x = static_cast<result_type>(__g);\n            if (__x >= __pr.__l_)\n                return __x;\n            __difmuk = __pr.__mean_ - __x;\n            __u = __urd(__urng);\n            if (__pr.__d_ * __u >= __difmuk * __difmuk * __difmuk)\n                return __x;\n        }\n        exponential_distribution<double> __edist;\n        for (bool __using_exp_dist = false; true; __using_exp_dist = true)\n        {\n            double __e;\n            if (__using_exp_dist || __g < 0)\n            {\n                double __t;\n                do\n                {\n                    __e = __edist(__urng);\n                    __u = __urd(__urng);\n                    __u += __u - 1;\n                    __t = 1.8 + (__u < 0 ? -__e : __e);\n                } while (__t <= -.6744);\n                __x = __pr.__mean_ + __pr.__s_ * __t;\n                __difmuk = __pr.__mean_ - __x;\n                __using_exp_dist = true;\n            }\n            double __px;\n            double __py;\n            if (__x < 10)\n            {\n                const result_type __fac[] = {1, 1, 2, 6, 24, 120, 720, 5040,\n                                             40320, 362880};\n                __px = -__pr.__mean_;\n                __py = _VSTD::pow(__pr.__mean_, (double)__x) / __fac[__x];\n            }\n            else\n            {\n                double __del = .8333333E-1 / __x;\n                __del -= 4.8 * __del * __del * __del;\n                double __v = __difmuk / __x;\n                if (_VSTD::abs(__v) > 0.25)\n                    __px = __x * _VSTD::log(1 + __v) - __difmuk - __del;\n                else\n                    __px = __x * __v * __v * (((((((.1250060 * __v + -.1384794) *\n                           __v + .1421878) * __v + -.1661269) * __v + .2000118) *\n                           __v + -.2500068) * __v + .3333333) * __v + -.5) - __del;\n                __py = .3989423 / _VSTD::sqrt(__x);\n            }\n            double __r = (0.5 - __difmuk) / __pr.__s_;\n            double __r2 = __r * __r;\n            double __fx = -0.5 * __r2;\n            double __fy = __pr.__omega_ * (((__pr.__c3_ * __r2 + __pr.__c2_) *\n                                        __r2 + __pr.__c1_) * __r2 + __pr.__c0_);\n            if (__using_exp_dist)\n            {\n                if (__pr.__c_ * _VSTD::abs(__u) <= __py * _VSTD::exp(__px + __e) -\n                                                   __fy * _VSTD::exp(__fx + __e))\n                    break;\n            }\n            else\n            {\n                if (__fy - __u * __fy <= __py * _VSTD::exp(__px - __fx))\n                    break;\n            }\n        }\n    }\n    return __x;\n}\n\ntemplate <class _CharT, class _Traits, class _IntType>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const poisson_distribution<_IntType>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    return __os << __x.mean();\n}\n\ntemplate <class _CharT, class _Traits, class _IntType>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           poisson_distribution<_IntType>& __x)\n{\n    typedef poisson_distribution<_IntType> _Eng;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    double __mean;\n    __is >> __mean;\n    if (!__is.fail())\n        __x.param(param_type(__mean));\n    return __is;\n}\n\n// weibull_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS weibull_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __a_;\n        result_type __b_;\n    public:\n        typedef weibull_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __a = 1, result_type __b = 1)\n            : __a_(__a), __b_(__b) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type a() const {return __a_;}\n        _LIBCPP_INLINE_VISIBILITY\n        result_type b() const {return __b_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__a_ == __y.__a_ && __x.__b_ == __y.__b_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit weibull_distribution(result_type __a = 1, result_type __b = 1)\n        : __p_(param_type(__a, __b)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit weibull_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g, const param_type& __p)\n        {return __p.b() *\n            _VSTD::pow(exponential_distribution<result_type>()(__g), 1/__p.a());}\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type a() const {return __p_.a();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type b() const {return __p_.b();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const weibull_distribution& __x,\n                        const weibull_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const weibull_distribution& __x,\n                        const weibull_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const weibull_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.a() << __sp << __x.b();\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           weibull_distribution<_RT>& __x)\n{\n    typedef weibull_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __a;\n    result_type __b;\n    __is >> __a >> __b;\n    if (!__is.fail())\n        __x.param(param_type(__a, __b));\n    return __is;\n}\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS extreme_value_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __a_;\n        result_type __b_;\n    public:\n        typedef extreme_value_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __a = 0, result_type __b = 1)\n            : __a_(__a), __b_(__b) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type a() const {return __a_;}\n        _LIBCPP_INLINE_VISIBILITY\n        result_type b() const {return __b_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__a_ == __y.__a_ && __x.__b_ == __y.__b_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit extreme_value_distribution(result_type __a = 0, result_type __b = 1)\n        : __p_(param_type(__a, __b)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit extreme_value_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type a() const {return __p_.a();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type b() const {return __p_.b();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return -numeric_limits<result_type>::infinity();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const extreme_value_distribution& __x,\n                        const extreme_value_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const extreme_value_distribution& __x,\n                        const extreme_value_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate<class _RealType>\ntemplate<class _URNG>\n_RealType\nextreme_value_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    return __p.a() - __p.b() *\n         _VSTD::log(-_VSTD::log(1-uniform_real_distribution<result_type>()(__g)));\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const extreme_value_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.a() << __sp << __x.b();\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           extreme_value_distribution<_RT>& __x)\n{\n    typedef extreme_value_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __a;\n    result_type __b;\n    __is >> __a >> __b;\n    if (!__is.fail())\n        __x.param(param_type(__a, __b));\n    return __is;\n}\n\n// gamma_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS gamma_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __alpha_;\n        result_type __beta_;\n    public:\n        typedef gamma_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __alpha = 1, result_type __beta = 1)\n            : __alpha_(__alpha), __beta_(__beta) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type alpha() const {return __alpha_;}\n        _LIBCPP_INLINE_VISIBILITY\n        result_type beta() const {return __beta_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__alpha_ == __y.__alpha_ && __x.__beta_ == __y.__beta_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructors and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit gamma_distribution(result_type __alpha = 1, result_type __beta = 1)\n        : __p_(param_type(__alpha, __beta)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit gamma_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type alpha() const {return __p_.alpha();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type beta() const {return __p_.beta();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const gamma_distribution& __x,\n                        const gamma_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const gamma_distribution& __x,\n                        const gamma_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _RealType>\ntemplate<class _URNG>\n_RealType\ngamma_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    result_type __a = __p.alpha();\n    uniform_real_distribution<result_type> __gen(0, 1);\n    exponential_distribution<result_type> __egen;\n    result_type __x;\n    if (__a == 1)\n        __x = __egen(__g);\n    else if (__a > 1)\n    {\n        const result_type __b = __a - 1;\n        const result_type __c = 3 * __a - result_type(0.75);\n        while (true)\n        {\n            const result_type __u = __gen(__g);\n            const result_type __v = __gen(__g);\n            const result_type __w = __u * (1 - __u);\n            if (__w != 0)\n            {\n                const result_type __y = _VSTD::sqrt(__c / __w) *\n                                        (__u - result_type(0.5));\n                __x = __b + __y;\n                if (__x >= 0)\n                {\n                    const result_type __z = 64 * __w * __w * __w * __v * __v;\n                    if (__z <= 1 - 2 * __y * __y / __x)\n                        break;\n                    if (_VSTD::log(__z) <= 2 * (__b * _VSTD::log(__x / __b) - __y))\n                        break;\n                }\n            }\n        }\n    }\n    else  // __a < 1\n    {\n        while (true)\n        {\n            const result_type __u = __gen(__g);\n            const result_type __es = __egen(__g);\n            if (__u <= 1 - __a)\n            {\n                __x = _VSTD::pow(__u, 1 / __a);\n                if (__x <= __es)\n                    break;\n            }\n            else\n            {\n                const result_type __e = -_VSTD::log((1-__u)/__a);\n                __x = _VSTD::pow(1 - __a + __a * __e, 1 / __a);\n                if (__x <= __e + __es)\n                    break;\n            }\n        }\n    }\n    return __x * __p.beta();\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const gamma_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.alpha() << __sp << __x.beta();\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           gamma_distribution<_RT>& __x)\n{\n    typedef gamma_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __alpha;\n    result_type __beta;\n    __is >> __alpha >> __beta;\n    if (!__is.fail())\n        __x.param(param_type(__alpha, __beta));\n    return __is;\n}\n\n// negative_binomial_distribution\n\ntemplate<class _IntType = int>\nclass _LIBCPP_TEMPLATE_VIS negative_binomial_distribution\n{\npublic:\n    // types\n    typedef _IntType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __k_;\n        double __p_;\n    public:\n        typedef negative_binomial_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __k = 1, double __p = 0.5)\n            : __k_(__k), __p_(__p) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type k() const {return __k_;}\n        _LIBCPP_INLINE_VISIBILITY\n        double p() const {return __p_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__k_ == __y.__k_ && __x.__p_ == __y.__p_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit negative_binomial_distribution(result_type __k = 1, double __p = 0.5)\n        : __p_(__k, __p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit negative_binomial_distribution(const param_type& __p) : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type k() const {return __p_.k();}\n    _LIBCPP_INLINE_VISIBILITY\n    double p() const {return __p_.p();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::max();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const negative_binomial_distribution& __x,\n                        const negative_binomial_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const negative_binomial_distribution& __x,\n                        const negative_binomial_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _IntType>\ntemplate<class _URNG>\n_IntType\nnegative_binomial_distribution<_IntType>::operator()(_URNG& __urng, const param_type& __pr)\n{\n    result_type __k = __pr.k();\n    double __p = __pr.p();\n    if (__k <= 21 * __p)\n    {\n        bernoulli_distribution __gen(__p);\n        result_type __f = 0;\n        result_type __s = 0;\n        while (__s < __k)\n        {\n            if (__gen(__urng))\n                ++__s;\n            else\n                ++__f;\n        }\n        return __f;\n    }\n    return poisson_distribution<result_type>(gamma_distribution<double>\n                                            (__k, (1-__p)/__p)(__urng))(__urng);\n}\n\ntemplate <class _CharT, class _Traits, class _IntType>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const negative_binomial_distribution<_IntType>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    return __os << __x.k() << __sp << __x.p();\n}\n\ntemplate <class _CharT, class _Traits, class _IntType>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           negative_binomial_distribution<_IntType>& __x)\n{\n    typedef negative_binomial_distribution<_IntType> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __k;\n    double __p;\n    __is >> __k >> __p;\n    if (!__is.fail())\n        __x.param(param_type(__k, __p));\n    return __is;\n}\n\n// geometric_distribution\n\ntemplate<class _IntType = int>\nclass _LIBCPP_TEMPLATE_VIS geometric_distribution\n{\npublic:\n    // types\n    typedef _IntType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        double __p_;\n    public:\n        typedef geometric_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(double __p = 0.5) : __p_(__p) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        double p() const {return __p_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__p_ == __y.__p_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructors and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit geometric_distribution(double __p = 0.5) : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit geometric_distribution(const param_type& __p) : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g, const param_type& __p)\n        {return negative_binomial_distribution<result_type>(1, __p.p())(__g);}\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    double p() const {return __p_.p();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::max();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const geometric_distribution& __x,\n                        const geometric_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const geometric_distribution& __x,\n                        const geometric_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _CharT, class _Traits, class _IntType>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const geometric_distribution<_IntType>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    return __os << __x.p();\n}\n\ntemplate <class _CharT, class _Traits, class _IntType>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           geometric_distribution<_IntType>& __x)\n{\n    typedef geometric_distribution<_IntType> _Eng;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    double __p;\n    __is >> __p;\n    if (!__is.fail())\n        __x.param(param_type(__p));\n    return __is;\n}\n\n// chi_squared_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS chi_squared_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __n_;\n    public:\n        typedef chi_squared_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __n = 1) : __n_(__n) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type n() const {return __n_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__n_ == __y.__n_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit chi_squared_distribution(result_type __n = 1)\n        : __p_(param_type(__n)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit chi_squared_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g, const param_type& __p)\n        {return gamma_distribution<result_type>(__p.n() / 2, 2)(__g);}\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type n() const {return __p_.n();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const chi_squared_distribution& __x,\n                        const chi_squared_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const chi_squared_distribution& __x,\n                        const chi_squared_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const chi_squared_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    __os << __x.n();\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           chi_squared_distribution<_RT>& __x)\n{\n    typedef chi_squared_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __n;\n    __is >> __n;\n    if (!__is.fail())\n        __x.param(param_type(__n));\n    return __is;\n}\n\n// cauchy_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS cauchy_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __a_;\n        result_type __b_;\n    public:\n        typedef cauchy_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __a = 0, result_type __b = 1)\n            : __a_(__a), __b_(__b) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type a() const {return __a_;}\n        _LIBCPP_INLINE_VISIBILITY\n        result_type b() const {return __b_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__a_ == __y.__a_ && __x.__b_ == __y.__b_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit cauchy_distribution(result_type __a = 0, result_type __b = 1)\n        : __p_(param_type(__a, __b)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit cauchy_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> _LIBCPP_INLINE_VISIBILITY result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type a() const {return __p_.a();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type b() const {return __p_.b();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return -numeric_limits<result_type>::infinity();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const cauchy_distribution& __x,\n                        const cauchy_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const cauchy_distribution& __x,\n                        const cauchy_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _RealType>\ntemplate<class _URNG>\ninline\n_RealType\ncauchy_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    uniform_real_distribution<result_type> __gen;\n    // purposefully let tan arg get as close to pi/2 as it wants, tan will return a finite\n    return __p.a() + __p.b() * _VSTD::tan(3.1415926535897932384626433832795 * __gen(__g));\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const cauchy_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.a() << __sp << __x.b();\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           cauchy_distribution<_RT>& __x)\n{\n    typedef cauchy_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __a;\n    result_type __b;\n    __is >> __a >> __b;\n    if (!__is.fail())\n        __x.param(param_type(__a, __b));\n    return __is;\n}\n\n// fisher_f_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS fisher_f_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __m_;\n        result_type __n_;\n    public:\n        typedef fisher_f_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __m = 1, result_type __n = 1)\n            : __m_(__m), __n_(__n) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type m() const {return __m_;}\n        _LIBCPP_INLINE_VISIBILITY\n        result_type n() const {return __n_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__m_ == __y.__m_ && __x.__n_ == __y.__n_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit fisher_f_distribution(result_type __m = 1, result_type __n = 1)\n        : __p_(param_type(__m, __n)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit fisher_f_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type m() const {return __p_.m();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type n() const {return __p_.n();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const fisher_f_distribution& __x,\n                        const fisher_f_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const fisher_f_distribution& __x,\n                        const fisher_f_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _RealType>\ntemplate<class _URNG>\n_RealType\nfisher_f_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    gamma_distribution<result_type> __gdm(__p.m() * result_type(.5));\n    gamma_distribution<result_type> __gdn(__p.n() * result_type(.5));\n    return __p.n() * __gdm(__g) / (__p.m() * __gdn(__g));\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const fisher_f_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    __os << __x.m() << __sp << __x.n();\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           fisher_f_distribution<_RT>& __x)\n{\n    typedef fisher_f_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __m;\n    result_type __n;\n    __is >> __m >> __n;\n    if (!__is.fail())\n        __x.param(param_type(__m, __n));\n    return __is;\n}\n\n// student_t_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS student_t_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        result_type __n_;\n    public:\n        typedef student_t_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        explicit param_type(result_type __n = 1) : __n_(__n) {}\n\n        _LIBCPP_INLINE_VISIBILITY\n        result_type n() const {return __n_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__n_ == __y.__n_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n    };\n\nprivate:\n    param_type __p_;\n    normal_distribution<result_type> __nd_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    explicit student_t_distribution(result_type __n = 1)\n        : __p_(param_type(__n)) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit student_t_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {__nd_.reset();}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    result_type n() const {return __p_.n();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return -numeric_limits<result_type>::infinity();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return numeric_limits<result_type>::infinity();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const student_t_distribution& __x,\n                        const student_t_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const student_t_distribution& __x,\n                        const student_t_distribution& __y)\n        {return !(__x == __y);}\n};\n\ntemplate <class _RealType>\ntemplate<class _URNG>\n_RealType\nstudent_t_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    gamma_distribution<result_type> __gd(__p.n() * .5, 2);\n    return __nd_(__g) * _VSTD::sqrt(__p.n()/__gd(__g));\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const student_t_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    __os << __x.n();\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           student_t_distribution<_RT>& __x)\n{\n    typedef student_t_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    typedef typename _Eng::param_type param_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    result_type __n;\n    __is >> __n;\n    if (!__is.fail())\n        __x.param(param_type(__n));\n    return __is;\n}\n\n// discrete_distribution\n\ntemplate<class _IntType = int>\nclass _LIBCPP_TEMPLATE_VIS discrete_distribution\n{\npublic:\n    // types\n    typedef _IntType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        vector<double> __p_;\n    public:\n        typedef discrete_distribution distribution_type;\n\n        _LIBCPP_INLINE_VISIBILITY\n        param_type() {}\n        template<class _InputIterator>\n            _LIBCPP_INLINE_VISIBILITY\n            param_type(_InputIterator __f, _InputIterator __l)\n            : __p_(__f, __l) {__init();}\n#ifndef _LIBCPP_CXX03_LANG\n        _LIBCPP_INLINE_VISIBILITY\n        param_type(initializer_list<double> __wl)\n            : __p_(__wl.begin(), __wl.end()) {__init();}\n#endif  // _LIBCPP_CXX03_LANG\n        template<class _UnaryOperation>\n            param_type(size_t __nw, double __xmin, double __xmax,\n                       _UnaryOperation __fw);\n\n        vector<double> probabilities() const;\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__p_ == __y.__p_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n\n    private:\n        void __init();\n\n        friend class discrete_distribution;\n\n        template <class _CharT, class _Traits, class _IT>\n        friend\n        basic_ostream<_CharT, _Traits>&\n        operator<<(basic_ostream<_CharT, _Traits>& __os,\n                   const discrete_distribution<_IT>& __x);\n\n        template <class _CharT, class _Traits, class _IT>\n        friend\n        basic_istream<_CharT, _Traits>&\n        operator>>(basic_istream<_CharT, _Traits>& __is,\n                   discrete_distribution<_IT>& __x);\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    discrete_distribution() {}\n    template<class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        discrete_distribution(_InputIterator __f, _InputIterator __l)\n            : __p_(__f, __l) {}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    discrete_distribution(initializer_list<double> __wl)\n        : __p_(__wl) {}\n#endif  // _LIBCPP_CXX03_LANG\n    template<class _UnaryOperation>\n        _LIBCPP_INLINE_VISIBILITY\n        discrete_distribution(size_t __nw, double __xmin, double __xmax,\n                              _UnaryOperation __fw)\n        : __p_(__nw, __xmin, __xmax, __fw) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit discrete_distribution(const param_type& __p)\n        : __p_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    vector<double> probabilities() const {return __p_.probabilities();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return __p_.__p_.size();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const discrete_distribution& __x,\n                        const discrete_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const discrete_distribution& __x,\n                        const discrete_distribution& __y)\n        {return !(__x == __y);}\n\n    template <class _CharT, class _Traits, class _IT>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const discrete_distribution<_IT>& __x);\n\n    template <class _CharT, class _Traits, class _IT>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               discrete_distribution<_IT>& __x);\n};\n\ntemplate<class _IntType>\ntemplate<class _UnaryOperation>\ndiscrete_distribution<_IntType>::param_type::param_type(size_t __nw,\n                                                        double __xmin,\n                                                        double __xmax,\n                                                        _UnaryOperation __fw)\n{\n    if (__nw > 1)\n    {\n        __p_.reserve(__nw - 1);\n        double __d = (__xmax - __xmin) / __nw;\n        double __d2 = __d / 2;\n        for (size_t __k = 0; __k < __nw; ++__k)\n            __p_.push_back(__fw(__xmin + __k * __d + __d2));\n        __init();\n    }\n}\n\ntemplate<class _IntType>\nvoid\ndiscrete_distribution<_IntType>::param_type::__init()\n{\n    if (!__p_.empty())\n    {\n        if (__p_.size() > 1)\n        {\n            double __s = _VSTD::accumulate(__p_.begin(), __p_.end(), 0.0);\n            for (_VSTD::vector<double>::iterator __i = __p_.begin(), __e = __p_.end();\n                                                                       __i < __e; ++__i)\n                *__i /= __s;\n            vector<double> __t(__p_.size() - 1);\n            _VSTD::partial_sum(__p_.begin(), __p_.end() - 1, __t.begin());\n            swap(__p_, __t);\n        }\n        else\n        {\n            __p_.clear();\n            __p_.shrink_to_fit();\n        }\n    }\n}\n\ntemplate<class _IntType>\nvector<double>\ndiscrete_distribution<_IntType>::param_type::probabilities() const\n{\n    size_t __n = __p_.size();\n    _VSTD::vector<double> __p(__n+1);\n    _VSTD::adjacent_difference(__p_.begin(), __p_.end(), __p.begin());\n    if (__n > 0)\n        __p[__n] = 1 - __p_[__n-1];\n    else\n        __p[0] = 1;\n    return __p;\n}\n\ntemplate<class _IntType>\ntemplate<class _URNG>\n_IntType\ndiscrete_distribution<_IntType>::operator()(_URNG& __g, const param_type& __p)\n{\n    uniform_real_distribution<double> __gen;\n    return static_cast<_IntType>(\n           _VSTD::upper_bound(__p.__p_.begin(), __p.__p_.end(), __gen(__g)) -\n                                                              __p.__p_.begin());\n}\n\ntemplate <class _CharT, class _Traits, class _IT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const discrete_distribution<_IT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    size_t __n = __x.__p_.__p_.size();\n    __os << __n;\n    for (size_t __i = 0; __i < __n; ++__i)\n        __os << __sp << __x.__p_.__p_[__i];\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _IT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           discrete_distribution<_IT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    size_t __n;\n    __is >> __n;\n    vector<double> __p(__n);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __is >> __p[__i];\n    if (!__is.fail())\n        swap(__x.__p_.__p_, __p);\n    return __is;\n}\n\n// piecewise_constant_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS piecewise_constant_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        vector<result_type> __b_;\n        vector<result_type> __densities_;\n        vector<result_type> __areas_;\n    public:\n        typedef piecewise_constant_distribution distribution_type;\n\n        param_type();\n        template<class _InputIteratorB, class _InputIteratorW>\n            param_type(_InputIteratorB __fB, _InputIteratorB __lB,\n                       _InputIteratorW __fW);\n#ifndef _LIBCPP_CXX03_LANG\n        template<class _UnaryOperation>\n            param_type(initializer_list<result_type> __bl, _UnaryOperation __fw);\n#endif  // _LIBCPP_CXX03_LANG\n        template<class _UnaryOperation>\n            param_type(size_t __nw, result_type __xmin, result_type __xmax,\n                       _UnaryOperation __fw);\n        param_type & operator=(const param_type& __rhs);\n\n        _LIBCPP_INLINE_VISIBILITY\n        vector<result_type> intervals() const {return __b_;}\n        _LIBCPP_INLINE_VISIBILITY\n        vector<result_type> densities() const {return __densities_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__densities_ == __y.__densities_ && __x.__b_ == __y.__b_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n\n    private:\n        void __init();\n\n        friend class piecewise_constant_distribution;\n\n        template <class _CharT, class _Traits, class _RT>\n        friend\n        basic_ostream<_CharT, _Traits>&\n        operator<<(basic_ostream<_CharT, _Traits>& __os,\n                   const piecewise_constant_distribution<_RT>& __x);\n\n        template <class _CharT, class _Traits, class _RT>\n        friend\n        basic_istream<_CharT, _Traits>&\n        operator>>(basic_istream<_CharT, _Traits>& __is,\n                   piecewise_constant_distribution<_RT>& __x);\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    piecewise_constant_distribution() {}\n    template<class _InputIteratorB, class _InputIteratorW>\n        _LIBCPP_INLINE_VISIBILITY\n        piecewise_constant_distribution(_InputIteratorB __fB,\n                                        _InputIteratorB __lB,\n                                        _InputIteratorW __fW)\n        : __p_(__fB, __lB, __fW) {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    template<class _UnaryOperation>\n        _LIBCPP_INLINE_VISIBILITY\n        piecewise_constant_distribution(initializer_list<result_type> __bl,\n                                        _UnaryOperation __fw)\n        : __p_(__bl, __fw) {}\n#endif  // _LIBCPP_CXX03_LANG\n\n    template<class _UnaryOperation>\n        _LIBCPP_INLINE_VISIBILITY\n        piecewise_constant_distribution(size_t __nw, result_type __xmin,\n                                        result_type __xmax, _UnaryOperation __fw)\n        : __p_(__nw, __xmin, __xmax, __fw) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit piecewise_constant_distribution(const param_type& __p)\n        : __p_(__p) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    vector<result_type> intervals() const {return __p_.intervals();}\n    _LIBCPP_INLINE_VISIBILITY\n    vector<result_type> densities() const {return __p_.densities();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return __p_.__b_.front();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return __p_.__b_.back();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const piecewise_constant_distribution& __x,\n                        const piecewise_constant_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const piecewise_constant_distribution& __x,\n                           const piecewise_constant_distribution& __y)\n        {return !(__x == __y);}\n\n    template <class _CharT, class _Traits, class _RT>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const piecewise_constant_distribution<_RT>& __x);\n\n    template <class _CharT, class _Traits, class _RT>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               piecewise_constant_distribution<_RT>& __x);\n};\n\ntemplate<class _RealType>\ntypename piecewise_constant_distribution<_RealType>::param_type &\npiecewise_constant_distribution<_RealType>::param_type::operator=\n                                                       (const param_type& __rhs)\n{\n//  These can throw\n    __b_.reserve        (__rhs.__b_.size ());\n    __densities_.reserve(__rhs.__densities_.size());\n    __areas_.reserve    (__rhs.__areas_.size());\n\n//  These can not throw\n    __b_         = __rhs.__b_;\n    __densities_ = __rhs.__densities_;\n    __areas_     =  __rhs.__areas_;\n    return *this;\n}\n\ntemplate<class _RealType>\nvoid\npiecewise_constant_distribution<_RealType>::param_type::__init()\n{\n    // __densities_ contains non-normalized areas\n    result_type __total_area = _VSTD::accumulate(__densities_.begin(),\n                                                __densities_.end(),\n                                                result_type());\n    for (size_t __i = 0; __i < __densities_.size(); ++__i)\n        __densities_[__i] /= __total_area;\n    // __densities_ contains normalized areas\n    __areas_.assign(__densities_.size(), result_type());\n    _VSTD::partial_sum(__densities_.begin(), __densities_.end() - 1,\n                                                          __areas_.begin() + 1);\n    // __areas_ contains partial sums of normalized areas: [0, __densities_ - 1]\n    __densities_.back() = 1 - __areas_.back();  // correct round off error\n    for (size_t __i = 0; __i < __densities_.size(); ++__i)\n        __densities_[__i] /= (__b_[__i+1] - __b_[__i]);\n    // __densities_ now contains __densities_\n}\n\ntemplate<class _RealType>\npiecewise_constant_distribution<_RealType>::param_type::param_type()\n    : __b_(2),\n      __densities_(1, 1.0),\n      __areas_(1, 0.0)\n{\n    __b_[1] = 1;\n}\n\ntemplate<class _RealType>\ntemplate<class _InputIteratorB, class _InputIteratorW>\npiecewise_constant_distribution<_RealType>::param_type::param_type(\n        _InputIteratorB __fB, _InputIteratorB __lB, _InputIteratorW __fW)\n    : __b_(__fB, __lB)\n{\n    if (__b_.size() < 2)\n    {\n        __b_.resize(2);\n        __b_[0] = 0;\n        __b_[1] = 1;\n        __densities_.assign(1, 1.0);\n        __areas_.assign(1, 0.0);\n    }\n    else\n    {\n        __densities_.reserve(__b_.size() - 1);\n        for (size_t __i = 0; __i < __b_.size() - 1; ++__i, ++__fW)\n            __densities_.push_back(*__fW);\n        __init();\n    }\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _RealType>\ntemplate<class _UnaryOperation>\npiecewise_constant_distribution<_RealType>::param_type::param_type(\n        initializer_list<result_type> __bl, _UnaryOperation __fw)\n    : __b_(__bl.begin(), __bl.end())\n{\n    if (__b_.size() < 2)\n    {\n        __b_.resize(2);\n        __b_[0] = 0;\n        __b_[1] = 1;\n        __densities_.assign(1, 1.0);\n        __areas_.assign(1, 0.0);\n    }\n    else\n    {\n        __densities_.reserve(__b_.size() - 1);\n        for (size_t __i = 0; __i < __b_.size() - 1; ++__i)\n            __densities_.push_back(__fw((__b_[__i+1] + __b_[__i])*.5));\n        __init();\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate<class _RealType>\ntemplate<class _UnaryOperation>\npiecewise_constant_distribution<_RealType>::param_type::param_type(\n        size_t __nw, result_type __xmin, result_type __xmax, _UnaryOperation __fw)\n    : __b_(__nw == 0 ? 2 : __nw + 1)\n{\n    size_t __n = __b_.size() - 1;\n    result_type __d = (__xmax - __xmin) / __n;\n    __densities_.reserve(__n);\n    for (size_t __i = 0; __i < __n; ++__i)\n    {\n        __b_[__i] = __xmin + __i * __d;\n        __densities_.push_back(__fw(__b_[__i] + __d*.5));\n    }\n    __b_[__n] = __xmax;\n    __init();\n}\n\ntemplate<class _RealType>\ntemplate<class _URNG>\n_RealType\npiecewise_constant_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    typedef uniform_real_distribution<result_type> _Gen;\n    result_type __u = _Gen()(__g);\n    ptrdiff_t __k = _VSTD::upper_bound(__p.__areas_.begin(), __p.__areas_.end(),\n                                      __u) - __p.__areas_.begin() - 1;\n    return (__u - __p.__areas_[__k]) / __p.__densities_[__k] + __p.__b_[__k];\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const piecewise_constant_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    size_t __n = __x.__p_.__b_.size();\n    __os << __n;\n    for (size_t __i = 0; __i < __n; ++__i)\n        __os << __sp << __x.__p_.__b_[__i];\n    __n = __x.__p_.__densities_.size();\n    __os << __sp << __n;\n    for (size_t __i = 0; __i < __n; ++__i)\n        __os << __sp << __x.__p_.__densities_[__i];\n    __n = __x.__p_.__areas_.size();\n    __os << __sp << __n;\n    for (size_t __i = 0; __i < __n; ++__i)\n        __os << __sp << __x.__p_.__areas_[__i];\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           piecewise_constant_distribution<_RT>& __x)\n{\n    typedef piecewise_constant_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    size_t __n;\n    __is >> __n;\n    vector<result_type> __b(__n);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __is >> __b[__i];\n    __is >> __n;\n    vector<result_type> __densities(__n);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __is >> __densities[__i];\n    __is >> __n;\n    vector<result_type> __areas(__n);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __is >> __areas[__i];\n    if (!__is.fail())\n    {\n        swap(__x.__p_.__b_, __b);\n        swap(__x.__p_.__densities_, __densities);\n        swap(__x.__p_.__areas_, __areas);\n    }\n    return __is;\n}\n\n// piecewise_linear_distribution\n\ntemplate<class _RealType = double>\nclass _LIBCPP_TEMPLATE_VIS piecewise_linear_distribution\n{\npublic:\n    // types\n    typedef _RealType result_type;\n\n    class _LIBCPP_TEMPLATE_VIS param_type\n    {\n        vector<result_type> __b_;\n        vector<result_type> __densities_;\n        vector<result_type> __areas_;\n    public:\n        typedef piecewise_linear_distribution distribution_type;\n\n        param_type();\n        template<class _InputIteratorB, class _InputIteratorW>\n            param_type(_InputIteratorB __fB, _InputIteratorB __lB,\n                       _InputIteratorW __fW);\n#ifndef _LIBCPP_CXX03_LANG\n        template<class _UnaryOperation>\n            param_type(initializer_list<result_type> __bl, _UnaryOperation __fw);\n#endif  // _LIBCPP_CXX03_LANG\n        template<class _UnaryOperation>\n            param_type(size_t __nw, result_type __xmin, result_type __xmax,\n                       _UnaryOperation __fw);\n        param_type & operator=(const param_type& __rhs);\n        \n        _LIBCPP_INLINE_VISIBILITY\n        vector<result_type> intervals() const {return __b_;}\n        _LIBCPP_INLINE_VISIBILITY\n        vector<result_type> densities() const {return __densities_;}\n\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator==(const param_type& __x, const param_type& __y)\n            {return __x.__densities_ == __y.__densities_ && __x.__b_ == __y.__b_;}\n        friend _LIBCPP_INLINE_VISIBILITY\n            bool operator!=(const param_type& __x, const param_type& __y)\n            {return !(__x == __y);}\n\n    private:\n        void __init();\n\n        friend class piecewise_linear_distribution;\n\n        template <class _CharT, class _Traits, class _RT>\n        friend\n        basic_ostream<_CharT, _Traits>&\n        operator<<(basic_ostream<_CharT, _Traits>& __os,\n                   const piecewise_linear_distribution<_RT>& __x);\n\n        template <class _CharT, class _Traits, class _RT>\n        friend\n        basic_istream<_CharT, _Traits>&\n        operator>>(basic_istream<_CharT, _Traits>& __is,\n                   piecewise_linear_distribution<_RT>& __x);\n    };\n\nprivate:\n    param_type __p_;\n\npublic:\n    // constructor and reset functions\n    _LIBCPP_INLINE_VISIBILITY\n    piecewise_linear_distribution() {}\n    template<class _InputIteratorB, class _InputIteratorW>\n        _LIBCPP_INLINE_VISIBILITY\n        piecewise_linear_distribution(_InputIteratorB __fB,\n                                      _InputIteratorB __lB,\n                                      _InputIteratorW __fW)\n        : __p_(__fB, __lB, __fW) {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    template<class _UnaryOperation>\n        _LIBCPP_INLINE_VISIBILITY\n        piecewise_linear_distribution(initializer_list<result_type> __bl,\n                                      _UnaryOperation __fw)\n        : __p_(__bl, __fw) {}\n#endif  // _LIBCPP_CXX03_LANG\n\n    template<class _UnaryOperation>\n        _LIBCPP_INLINE_VISIBILITY\n        piecewise_linear_distribution(size_t __nw, result_type __xmin,\n                                      result_type __xmax, _UnaryOperation __fw)\n        : __p_(__nw, __xmin, __xmax, __fw) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit piecewise_linear_distribution(const param_type& __p)\n        : __p_(__p) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void reset() {}\n\n    // generating functions\n    template<class _URNG>\n        _LIBCPP_INLINE_VISIBILITY\n        result_type operator()(_URNG& __g)\n        {return (*this)(__g, __p_);}\n    template<class _URNG> result_type operator()(_URNG& __g, const param_type& __p);\n\n    // property functions\n    _LIBCPP_INLINE_VISIBILITY\n    vector<result_type> intervals() const {return __p_.intervals();}\n    _LIBCPP_INLINE_VISIBILITY\n    vector<result_type> densities() const {return __p_.densities();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    param_type param() const {return __p_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void param(const param_type& __p) {__p_ = __p;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const {return __p_.__b_.front();}\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const {return __p_.__b_.back();}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const piecewise_linear_distribution& __x,\n                        const piecewise_linear_distribution& __y)\n        {return __x.__p_ == __y.__p_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const piecewise_linear_distribution& __x,\n                        const piecewise_linear_distribution& __y)\n        {return !(__x == __y);}\n\n    template <class _CharT, class _Traits, class _RT>\n    friend\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os,\n               const piecewise_linear_distribution<_RT>& __x);\n\n    template <class _CharT, class _Traits, class _RT>\n    friend\n    basic_istream<_CharT, _Traits>&\n    operator>>(basic_istream<_CharT, _Traits>& __is,\n               piecewise_linear_distribution<_RT>& __x);\n};\n\ntemplate<class _RealType>\ntypename piecewise_linear_distribution<_RealType>::param_type &\npiecewise_linear_distribution<_RealType>::param_type::operator=\n                                                       (const param_type& __rhs)\n{\n//  These can throw\n    __b_.reserve        (__rhs.__b_.size ());\n    __densities_.reserve(__rhs.__densities_.size());\n    __areas_.reserve    (__rhs.__areas_.size());\n\n//  These can not throw\n    __b_         = __rhs.__b_;\n    __densities_ = __rhs.__densities_;\n    __areas_     =  __rhs.__areas_;\n    return *this;\n}\n\n\ntemplate<class _RealType>\nvoid\npiecewise_linear_distribution<_RealType>::param_type::__init()\n{\n    __areas_.assign(__densities_.size() - 1, result_type());\n    result_type _Sp = 0;\n    for (size_t __i = 0; __i < __areas_.size(); ++__i)\n    {\n        __areas_[__i] = (__densities_[__i+1] + __densities_[__i]) *\n                        (__b_[__i+1] - __b_[__i]) * .5;\n        _Sp += __areas_[__i];\n    }\n    for (size_t __i = __areas_.size(); __i > 1;)\n    {\n        --__i;\n        __areas_[__i] = __areas_[__i-1] / _Sp;\n    }\n    __areas_[0] = 0;\n    for (size_t __i = 1; __i < __areas_.size(); ++__i)\n        __areas_[__i] += __areas_[__i-1];\n    for (size_t __i = 0; __i < __densities_.size(); ++__i)\n        __densities_[__i] /= _Sp;\n}\n\ntemplate<class _RealType>\npiecewise_linear_distribution<_RealType>::param_type::param_type()\n    : __b_(2),\n      __densities_(2, 1.0),\n      __areas_(1, 0.0)\n{\n    __b_[1] = 1;\n}\n\ntemplate<class _RealType>\ntemplate<class _InputIteratorB, class _InputIteratorW>\npiecewise_linear_distribution<_RealType>::param_type::param_type(\n        _InputIteratorB __fB, _InputIteratorB __lB, _InputIteratorW __fW)\n    : __b_(__fB, __lB)\n{\n    if (__b_.size() < 2)\n    {\n        __b_.resize(2);\n        __b_[0] = 0;\n        __b_[1] = 1;\n        __densities_.assign(2, 1.0);\n        __areas_.assign(1, 0.0);\n    }\n    else\n    {\n        __densities_.reserve(__b_.size());\n        for (size_t __i = 0; __i < __b_.size(); ++__i, ++__fW)\n            __densities_.push_back(*__fW);\n        __init();\n    }\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _RealType>\ntemplate<class _UnaryOperation>\npiecewise_linear_distribution<_RealType>::param_type::param_type(\n        initializer_list<result_type> __bl, _UnaryOperation __fw)\n    : __b_(__bl.begin(), __bl.end())\n{\n    if (__b_.size() < 2)\n    {\n        __b_.resize(2);\n        __b_[0] = 0;\n        __b_[1] = 1;\n        __densities_.assign(2, 1.0);\n        __areas_.assign(1, 0.0);\n    }\n    else\n    {\n        __densities_.reserve(__b_.size());\n        for (size_t __i = 0; __i < __b_.size(); ++__i)\n            __densities_.push_back(__fw(__b_[__i]));\n        __init();\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate<class _RealType>\ntemplate<class _UnaryOperation>\npiecewise_linear_distribution<_RealType>::param_type::param_type(\n        size_t __nw, result_type __xmin, result_type __xmax, _UnaryOperation __fw)\n    : __b_(__nw == 0 ? 2 : __nw + 1)\n{\n    size_t __n = __b_.size() - 1;\n    result_type __d = (__xmax - __xmin) / __n;\n    __densities_.reserve(__b_.size());\n    for (size_t __i = 0; __i < __n; ++__i)\n    {\n        __b_[__i] = __xmin + __i * __d;\n        __densities_.push_back(__fw(__b_[__i]));\n    }\n    __b_[__n] = __xmax;\n    __densities_.push_back(__fw(__b_[__n]));\n    __init();\n}\n\ntemplate<class _RealType>\ntemplate<class _URNG>\n_RealType\npiecewise_linear_distribution<_RealType>::operator()(_URNG& __g, const param_type& __p)\n{\n    typedef uniform_real_distribution<result_type> _Gen;\n    result_type __u = _Gen()(__g);\n    ptrdiff_t __k = _VSTD::upper_bound(__p.__areas_.begin(), __p.__areas_.end(),\n                                      __u) - __p.__areas_.begin() - 1;\n    __u -= __p.__areas_[__k];\n    const result_type __dk = __p.__densities_[__k];\n    const result_type __dk1 = __p.__densities_[__k+1];\n    const result_type __deltad = __dk1 - __dk;\n    const result_type __bk = __p.__b_[__k];\n    if (__deltad == 0)\n        return __u / __dk + __bk;\n    const result_type __bk1 = __p.__b_[__k+1];\n    const result_type __deltab = __bk1 - __bk;\n    return (__bk * __dk1 - __bk1 * __dk +\n        _VSTD::sqrt(__deltab * (__deltab * __dk * __dk + 2 * __deltad * __u))) /\n        __deltad;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const piecewise_linear_distribution<_RT>& __x)\n{\n    __save_flags<_CharT, _Traits> __lx(__os);\n    __os.flags(ios_base::dec | ios_base::left | ios_base::fixed |\n               ios_base::scientific);\n    _CharT __sp = __os.widen(' ');\n    __os.fill(__sp);\n    size_t __n = __x.__p_.__b_.size();\n    __os << __n;\n    for (size_t __i = 0; __i < __n; ++__i)\n        __os << __sp << __x.__p_.__b_[__i];\n    __n = __x.__p_.__densities_.size();\n    __os << __sp << __n;\n    for (size_t __i = 0; __i < __n; ++__i)\n        __os << __sp << __x.__p_.__densities_[__i];\n    __n = __x.__p_.__areas_.size();\n    __os << __sp << __n;\n    for (size_t __i = 0; __i < __n; ++__i)\n        __os << __sp << __x.__p_.__areas_[__i];\n    return __os;\n}\n\ntemplate <class _CharT, class _Traits, class _RT>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           piecewise_linear_distribution<_RT>& __x)\n{\n    typedef piecewise_linear_distribution<_RT> _Eng;\n    typedef typename _Eng::result_type result_type;\n    __save_flags<_CharT, _Traits> __lx(__is);\n    __is.flags(ios_base::dec | ios_base::skipws);\n    size_t __n;\n    __is >> __n;\n    vector<result_type> __b(__n);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __is >> __b[__i];\n    __is >> __n;\n    vector<result_type> __densities(__n);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __is >> __densities[__i];\n    __is >> __n;\n    vector<result_type> __areas(__n);\n    for (size_t __i = 0; __i < __n; ++__i)\n        __is >> __areas[__i];\n    if (!__is.fail())\n    {\n        swap(__x.__p_.__b_, __b);\n        swap(__x.__p_.__densities_, __densities);\n        swap(__x.__p_.__areas_, __areas);\n    }\n    return __is;\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_RANDOM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ratio",
    "content": "// -*- C++ -*-\n//===---------------------------- ratio -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_RATIO\n#define _LIBCPP_RATIO\n\n/*\n    ratio synopsis\n\nnamespace std\n{\n\ntemplate <intmax_t N, intmax_t D = 1>\nclass ratio\n{\npublic:\n    static constexpr intmax_t num;\n    static constexpr intmax_t den;\n    typedef ratio<num, den> type;\n};\n\n// ratio arithmetic\ntemplate <class R1, class R2> using ratio_add = ...;\ntemplate <class R1, class R2> using ratio_subtract = ...;\ntemplate <class R1, class R2> using ratio_multiply = ...;\ntemplate <class R1, class R2> using ratio_divide = ...;\n\n// ratio comparison\ntemplate <class R1, class R2> struct ratio_equal;\ntemplate <class R1, class R2> struct ratio_not_equal;\ntemplate <class R1, class R2> struct ratio_less;\ntemplate <class R1, class R2> struct ratio_less_equal;\ntemplate <class R1, class R2> struct ratio_greater;\ntemplate <class R1, class R2> struct ratio_greater_equal;\n\n// convenience SI typedefs\ntypedef ratio<1, 1000000000000000000000000> yocto;  // not supported\ntypedef ratio<1,    1000000000000000000000> zepto;  // not supported\ntypedef ratio<1,       1000000000000000000> atto;\ntypedef ratio<1,          1000000000000000> femto;\ntypedef ratio<1,             1000000000000> pico;\ntypedef ratio<1,                1000000000> nano;\ntypedef ratio<1,                   1000000> micro;\ntypedef ratio<1,                      1000> milli;\ntypedef ratio<1,                       100> centi;\ntypedef ratio<1,                        10> deci;\ntypedef ratio<                       10, 1> deca;\ntypedef ratio<                      100, 1> hecto;\ntypedef ratio<                     1000, 1> kilo;\ntypedef ratio<                  1000000, 1> mega;\ntypedef ratio<               1000000000, 1> giga;\ntypedef ratio<            1000000000000, 1> tera;\ntypedef ratio<         1000000000000000, 1> peta;\ntypedef ratio<      1000000000000000000, 1> exa;\ntypedef ratio<   1000000000000000000000, 1> zetta;  // not supported\ntypedef ratio<1000000000000000000000000, 1> yotta;  // not supported\n\n  // 20.11.5, ratio comparison\n  template <class R1, class R2> constexpr bool ratio_equal_v\n    = ratio_equal<R1, R2>::value;                                       // C++17\n  template <class R1, class R2> constexpr bool ratio_not_equal_v\n    = ratio_not_equal<R1, R2>::value;                                   // C++17\n  template <class R1, class R2> constexpr bool ratio_less_v\n    = ratio_less<R1, R2>::value;                                        // C++17\n  template <class R1, class R2> constexpr bool ratio_less_equal_v\n    = ratio_less_equal<R1, R2>::value;                                  // C++17\n  template <class R1, class R2> constexpr bool ratio_greater_v\n    = ratio_greater<R1, R2>::value;                                     // C++17\n  template <class R1, class R2> constexpr bool ratio_greater_equal_v\n    = ratio_greater_equal<R1, R2>::value;                               // C++17\n}\n*/\n\n#include <__config>\n#include <cstdint>\n#include <climits>\n#include <type_traits>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// __static_gcd\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nstruct __static_gcd\n{\n    static const intmax_t value = __static_gcd<_Yp, _Xp % _Yp>::value;\n};\n\ntemplate <intmax_t _Xp>\nstruct __static_gcd<_Xp, 0>\n{\n    static const intmax_t value = _Xp;\n};\n\ntemplate <>\nstruct __static_gcd<0, 0>\n{\n    static const intmax_t value = 1;\n};\n\n// __static_lcm\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nstruct __static_lcm\n{\n    static const intmax_t value = _Xp / __static_gcd<_Xp, _Yp>::value * _Yp;\n};\n\ntemplate <intmax_t _Xp>\nstruct __static_abs\n{\n    static const intmax_t value = _Xp < 0 ? -_Xp : _Xp;\n};\n\ntemplate <intmax_t _Xp>\nstruct __static_sign\n{\n    static const intmax_t value = _Xp == 0 ? 0 : (_Xp < 0 ? -1 : 1);\n};\n\ntemplate <intmax_t _Xp, intmax_t _Yp, intmax_t = __static_sign<_Yp>::value>\nclass __ll_add;\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nclass __ll_add<_Xp, _Yp, 1>\n{\n    static const intmax_t min = (1LL << (sizeof(intmax_t) * CHAR_BIT - 1)) + 1;\n    static const intmax_t max = -min;\n\n    static_assert(_Xp <= max - _Yp, \"overflow in __ll_add\");\npublic:\n    static const intmax_t value = _Xp + _Yp;\n};\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nclass __ll_add<_Xp, _Yp, 0>\n{\npublic:\n    static const intmax_t value = _Xp;\n};\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nclass __ll_add<_Xp, _Yp, -1>\n{\n    static const intmax_t min = (1LL << (sizeof(intmax_t) * CHAR_BIT - 1)) + 1;\n    static const intmax_t max = -min;\n\n    static_assert(min - _Yp <= _Xp, \"overflow in __ll_add\");\npublic:\n    static const intmax_t value = _Xp + _Yp;\n};\n\ntemplate <intmax_t _Xp, intmax_t _Yp, intmax_t = __static_sign<_Yp>::value>\nclass __ll_sub;\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nclass __ll_sub<_Xp, _Yp, 1>\n{\n    static const intmax_t min = (1LL << (sizeof(intmax_t) * CHAR_BIT - 1)) + 1;\n    static const intmax_t max = -min;\n\n    static_assert(min + _Yp <= _Xp, \"overflow in __ll_sub\");\npublic:\n    static const intmax_t value = _Xp - _Yp;\n};\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nclass __ll_sub<_Xp, _Yp, 0>\n{\npublic:\n    static const intmax_t value = _Xp;\n};\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nclass __ll_sub<_Xp, _Yp, -1>\n{\n    static const intmax_t min = (1LL << (sizeof(intmax_t) * CHAR_BIT - 1)) + 1;\n    static const intmax_t max = -min;\n\n    static_assert(_Xp <= max + _Yp, \"overflow in __ll_sub\");\npublic:\n    static const intmax_t value = _Xp - _Yp;\n};\n\ntemplate <intmax_t _Xp, intmax_t _Yp>\nclass __ll_mul\n{\n    static const intmax_t nan = (1LL << (sizeof(intmax_t) * CHAR_BIT - 1));\n    static const intmax_t min = nan + 1;\n    static const intmax_t max = -min;\n    static const intmax_t __a_x = __static_abs<_Xp>::value;\n    static const intmax_t __a_y = __static_abs<_Yp>::value;\n\n    static_assert(_Xp != nan && _Yp != nan && __a_x <= max / __a_y, \"overflow in __ll_mul\");\npublic:\n    static const intmax_t value = _Xp * _Yp;\n};\n\ntemplate <intmax_t _Yp>\nclass __ll_mul<0, _Yp>\n{\npublic:\n    static const intmax_t value = 0;\n};\n\ntemplate <intmax_t _Xp>\nclass __ll_mul<_Xp, 0>\n{\npublic:\n    static const intmax_t value = 0;\n};\n\ntemplate <>\nclass __ll_mul<0, 0>\n{\npublic:\n    static const intmax_t value = 0;\n};\n\n// Not actually used but left here in case needed in future maintenance\ntemplate <intmax_t _Xp, intmax_t _Yp>\nclass __ll_div\n{\n    static const intmax_t nan = (1LL << (sizeof(intmax_t) * CHAR_BIT - 1));\n    static const intmax_t min = nan + 1;\n    static const intmax_t max = -min;\n\n    static_assert(_Xp != nan && _Yp != nan && _Yp != 0, \"overflow in __ll_div\");\npublic:\n    static const intmax_t value = _Xp / _Yp;\n};\n\ntemplate <intmax_t _Num, intmax_t _Den = 1>\nclass _LIBCPP_TEMPLATE_VIS ratio\n{\n    static_assert(__static_abs<_Num>::value >= 0, \"ratio numerator is out of range\");\n    static_assert(_Den != 0, \"ratio divide by 0\");\n    static_assert(__static_abs<_Den>::value >  0, \"ratio denominator is out of range\");\n    static _LIBCPP_CONSTEXPR const intmax_t __na = __static_abs<_Num>::value;\n    static _LIBCPP_CONSTEXPR const intmax_t __da = __static_abs<_Den>::value;\n    static _LIBCPP_CONSTEXPR const intmax_t __s = __static_sign<_Num>::value * __static_sign<_Den>::value;\n    static _LIBCPP_CONSTEXPR const intmax_t __gcd = __static_gcd<__na, __da>::value;\npublic:\n    static _LIBCPP_CONSTEXPR const intmax_t num = __s * __na / __gcd;\n    static _LIBCPP_CONSTEXPR const intmax_t den = __da / __gcd;\n\n    typedef ratio<num, den> type;\n};\n\ntemplate <intmax_t _Num, intmax_t _Den>\n_LIBCPP_CONSTEXPR const intmax_t ratio<_Num, _Den>::num;\n\ntemplate <intmax_t _Num, intmax_t _Den>\n_LIBCPP_CONSTEXPR const intmax_t ratio<_Num, _Den>::den;\n\ntemplate <class _Tp>                    struct __is_ratio                     : false_type {};\ntemplate <intmax_t _Num, intmax_t _Den> struct __is_ratio<ratio<_Num, _Den> > : true_type  {};\n\ntypedef ratio<1LL, 1000000000000000000LL> atto;\ntypedef ratio<1LL,    1000000000000000LL> femto;\ntypedef ratio<1LL,       1000000000000LL> pico;\ntypedef ratio<1LL,          1000000000LL> nano;\ntypedef ratio<1LL,             1000000LL> micro;\ntypedef ratio<1LL,                1000LL> milli;\ntypedef ratio<1LL,                 100LL> centi;\ntypedef ratio<1LL,                  10LL> deci;\ntypedef ratio<                 10LL, 1LL> deca;\ntypedef ratio<                100LL, 1LL> hecto;\ntypedef ratio<               1000LL, 1LL> kilo;\ntypedef ratio<            1000000LL, 1LL> mega;\ntypedef ratio<         1000000000LL, 1LL> giga;\ntypedef ratio<      1000000000000LL, 1LL> tera;\ntypedef ratio<   1000000000000000LL, 1LL> peta;\ntypedef ratio<1000000000000000000LL, 1LL> exa;\n\ntemplate <class _R1, class _R2>\nstruct __ratio_multiply\n{\nprivate:\n    static const intmax_t __gcd_n1_d2 = __static_gcd<_R1::num, _R2::den>::value;\n    static const intmax_t __gcd_d1_n2 = __static_gcd<_R1::den, _R2::num>::value;\npublic:\n    typedef typename ratio\n        <\n            __ll_mul<_R1::num / __gcd_n1_d2, _R2::num / __gcd_d1_n2>::value,\n            __ll_mul<_R2::den / __gcd_n1_d2, _R1::den / __gcd_d1_n2>::value\n        >::type type;\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2> using ratio_multiply\n                                    = typename __ratio_multiply<_R1, _R2>::type;\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_multiply\n    : public __ratio_multiply<_R1, _R2>::type {};\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2>\nstruct __ratio_divide\n{\nprivate:\n    static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value;\n    static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value;\npublic:\n    typedef typename ratio\n        <\n            __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value,\n            __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value\n        >::type type;\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2> using ratio_divide\n                                      = typename __ratio_divide<_R1, _R2>::type;\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_divide\n    : public __ratio_divide<_R1, _R2>::type {};\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2>\nstruct __ratio_add\n{\nprivate:\n    static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value;\n    static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value;\npublic:\n    typedef typename ratio_multiply\n        <\n            ratio<__gcd_n1_n2, _R1::den / __gcd_d1_d2>,\n            ratio\n            <\n                __ll_add\n                <\n                    __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value,\n                    __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value\n                >::value,\n                _R2::den\n            >\n        >::type type;\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2> using ratio_add\n                                         = typename __ratio_add<_R1, _R2>::type;\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_add\n    : public __ratio_add<_R1, _R2>::type {};\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2>\nstruct __ratio_subtract\n{\nprivate:\n    static const intmax_t __gcd_n1_n2 = __static_gcd<_R1::num, _R2::num>::value;\n    static const intmax_t __gcd_d1_d2 = __static_gcd<_R1::den, _R2::den>::value;\npublic:\n    typedef typename ratio_multiply\n        <\n            ratio<__gcd_n1_n2, _R1::den / __gcd_d1_d2>,\n            ratio\n            <\n                __ll_sub\n                <\n                    __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value,\n                    __ll_mul<_R2::num / __gcd_n1_n2, _R1::den / __gcd_d1_d2>::value\n                >::value,\n                _R2::den\n            >\n        >::type type;\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2> using ratio_subtract\n                                    = typename __ratio_subtract<_R1, _R2>::type;\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_subtract\n    : public __ratio_subtract<_R1, _R2>::type {};\n\n#endif  // _LIBCPP_CXX03_LANG\n\n// ratio_equal\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_equal\n    : public _LIBCPP_BOOL_CONSTANT((_R1::num == _R2::num && _R1::den == _R2::den)) {};\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_not_equal\n    : public _LIBCPP_BOOL_CONSTANT((!ratio_equal<_R1, _R2>::value)) {};\n\n// ratio_less\n\ntemplate <class _R1, class _R2, bool _Odd = false,\n          intmax_t _Q1 = _R1::num / _R1::den, intmax_t _M1 = _R1::num % _R1::den,\n          intmax_t _Q2 = _R2::num / _R2::den, intmax_t _M2 = _R2::num % _R2::den>\nstruct __ratio_less1\n{\n    static const bool value = _Odd ? _Q2 < _Q1 : _Q1 < _Q2;\n};\n\ntemplate <class _R1, class _R2, bool _Odd, intmax_t _Qp>\nstruct __ratio_less1<_R1, _R2, _Odd, _Qp, 0, _Qp, 0>\n{\n    static const bool value = false;\n};\n\ntemplate <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M2>\nstruct __ratio_less1<_R1, _R2, _Odd, _Qp, 0, _Qp, _M2>\n{\n    static const bool value = !_Odd;\n};\n\ntemplate <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M1>\nstruct __ratio_less1<_R1, _R2, _Odd, _Qp, _M1, _Qp, 0>\n{\n    static const bool value = _Odd;\n};\n\ntemplate <class _R1, class _R2, bool _Odd, intmax_t _Qp, intmax_t _M1,\n                                                        intmax_t _M2>\nstruct __ratio_less1<_R1, _R2, _Odd, _Qp, _M1, _Qp, _M2>\n{\n    static const bool value = __ratio_less1<ratio<_R1::den, _M1>,\n                                            ratio<_R2::den, _M2>, !_Odd>::value;\n};\n\ntemplate <class _R1, class _R2, intmax_t _S1 = __static_sign<_R1::num>::value,\n                                intmax_t _S2 = __static_sign<_R2::num>::value>\nstruct __ratio_less\n{\n    static const bool value = _S1 < _S2;\n};\n\ntemplate <class _R1, class _R2>\nstruct __ratio_less<_R1, _R2, 1LL, 1LL>\n{\n    static const bool value = __ratio_less1<_R1, _R2>::value;\n};\n\ntemplate <class _R1, class _R2>\nstruct __ratio_less<_R1, _R2, -1LL, -1LL>\n{\n    static const bool value = __ratio_less1<ratio<-_R2::num, _R2::den>, ratio<-_R1::num, _R1::den> >::value;\n};\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_less\n    : public _LIBCPP_BOOL_CONSTANT((__ratio_less<_R1, _R2>::value)) {};\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_less_equal\n    : public _LIBCPP_BOOL_CONSTANT((!ratio_less<_R2, _R1>::value)) {};\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_greater\n    : public _LIBCPP_BOOL_CONSTANT((ratio_less<_R2, _R1>::value)) {};\n\ntemplate <class _R1, class _R2>\nstruct _LIBCPP_TEMPLATE_VIS ratio_greater_equal\n    : public _LIBCPP_BOOL_CONSTANT((!ratio_less<_R1, _R2>::value)) {};\n\ntemplate <class _R1, class _R2>\nstruct __ratio_gcd\n{\n    typedef ratio<__static_gcd<_R1::num, _R2::num>::value,\n                  __static_lcm<_R1::den, _R2::den>::value> type;\n};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_equal_v\n    = ratio_equal<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_not_equal_v\n    = ratio_not_equal<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_less_v\n    = ratio_less<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_less_equal_v\n    = ratio_less_equal<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_v\n    = ratio_greater<_R1, _R2>::value;\n\ntemplate <class _R1, class _R2> _LIBCPP_CONSTEXPR bool ratio_greater_equal_v\n    = ratio_greater_equal<_R1, _R2>::value;\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_RATIO\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/regex",
    "content": "// -*- C++ -*-\n//===--------------------------- regex ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_REGEX\n#define _LIBCPP_REGEX\n\n/*\n    regex synopsis\n\n#include <initializer_list>\n\nnamespace std\n{\n\nnamespace regex_constants\n{\n\nemum syntax_option_type\n{\n    icase      = unspecified,\n    nosubs     = unspecified,\n    optimize   = unspecified,\n    collate    = unspecified,\n    ECMAScript = unspecified,\n    basic      = unspecified,\n    extended   = unspecified,\n    awk        = unspecified,\n    grep       = unspecified,\n    egrep      = unspecified\n};\n\nconstexpr syntax_option_type operator~(syntax_option_type f);\nconstexpr syntax_option_type operator&(syntax_option_type lhs, syntax_option_type rhs);\nconstexpr syntax_option_type operator|(syntax_option_type lhs, syntax_option_type rhs);\n\nenum match_flag_type\n{\n    match_default     = 0,\n    match_not_bol     = unspecified,\n    match_not_eol     = unspecified,\n    match_not_bow     = unspecified,\n    match_not_eow     = unspecified,\n    match_any         = unspecified,\n    match_not_null    = unspecified,\n    match_continuous  = unspecified,\n    match_prev_avail  = unspecified,\n    format_default    = 0,\n    format_sed        = unspecified,\n    format_no_copy    = unspecified,\n    format_first_only = unspecified\n};\n\nconstexpr match_flag_type operator~(match_flag_type f);\nconstexpr match_flag_type operator&(match_flag_type lhs, match_flag_type rhs);\nconstexpr match_flag_type operator|(match_flag_type lhs, match_flag_type rhs);\n\nenum error_type\n{\n    error_collate    = unspecified,\n    error_ctype      = unspecified,\n    error_escape     = unspecified,\n    error_backref    = unspecified,\n    error_brack      = unspecified,\n    error_paren      = unspecified,\n    error_brace      = unspecified,\n    error_badbrace   = unspecified,\n    error_range      = unspecified,\n    error_space      = unspecified,\n    error_badrepeat  = unspecified,\n    error_complexity = unspecified,\n    error_stack      = unspecified\n};\n\n}  // regex_constants\n\nclass regex_error\n    : public runtime_error\n{\npublic:\n    explicit regex_error(regex_constants::error_type ecode);\n    regex_constants::error_type code() const;\n};\n\ntemplate <class charT>\nstruct regex_traits\n{\npublic:\n    typedef charT                   char_type;\n    typedef basic_string<char_type> string_type;\n    typedef locale                  locale_type;\n    typedef /bitmask_type/          char_class_type;\n\n    regex_traits();\n\n    static size_t length(const char_type* p);\n    charT translate(charT c) const;\n    charT translate_nocase(charT c) const;\n    template <class ForwardIterator>\n        string_type\n        transform(ForwardIterator first, ForwardIterator last) const;\n    template <class ForwardIterator>\n        string_type\n        transform_primary( ForwardIterator first, ForwardIterator last) const;\n    template <class ForwardIterator>\n        string_type\n        lookup_collatename(ForwardIterator first, ForwardIterator last) const;\n    template <class ForwardIterator>\n        char_class_type\n        lookup_classname(ForwardIterator first, ForwardIterator last,\n                         bool icase = false) const;\n    bool isctype(charT c, char_class_type f) const;\n    int value(charT ch, int radix) const;\n    locale_type imbue(locale_type l);\n    locale_type getloc()const;\n};\n\ntemplate <class charT, class traits = regex_traits<charT>>\nclass basic_regex\n{\npublic:\n    // types:\n    typedef charT                               value_type;\n    typedef traits                              traits_type;\n    typedef typename traits::string_type        string_type;\n    typedef regex_constants::syntax_option_type flag_type;\n    typedef typename traits::locale_type        locale_type;\n\n    // constants:\n    static constexpr regex_constants::syntax_option_type icase = regex_constants::icase;\n    static constexpr regex_constants::syntax_option_type nosubs = regex_constants::nosubs;\n    static constexpr regex_constants::syntax_option_type optimize = regex_constants::optimize;\n    static constexpr regex_constants::syntax_option_type collate = regex_constants::collate;\n    static constexpr regex_constants::syntax_option_type ECMAScript = regex_constants::ECMAScript;\n    static constexpr regex_constants::syntax_option_type basic = regex_constants::basic;\n    static constexpr regex_constants::syntax_option_type extended = regex_constants::extended;\n    static constexpr regex_constants::syntax_option_type awk = regex_constants::awk;\n    static constexpr regex_constants::syntax_option_type grep = regex_constants::grep;\n    static constexpr regex_constants::syntax_option_type egrep = regex_constants::egrep;\n\n    // construct/copy/destroy:\n    basic_regex();\n    explicit basic_regex(const charT* p, flag_type f = regex_constants::ECMAScript);\n    basic_regex(const charT* p, size_t len, flag_type f = regex_constants::ECMAScript);\n    basic_regex(const basic_regex&);\n    basic_regex(basic_regex&&) noexcept;\n    template <class ST, class SA>\n        explicit basic_regex(const basic_string<charT, ST, SA>& p,\n                             flag_type f = regex_constants::ECMAScript);\n    template <class ForwardIterator>\n        basic_regex(ForwardIterator first, ForwardIterator last,\n                    flag_type f = regex_constants::ECMAScript);\n    basic_regex(initializer_list<charT>, flag_type = regex_constants::ECMAScript);\n\n    ~basic_regex();\n\n    basic_regex& operator=(const basic_regex&);\n    basic_regex& operator=(basic_regex&&) noexcept;\n    basic_regex& operator=(const charT* ptr);\n    basic_regex& operator=(initializer_list<charT> il);\n    template <class ST, class SA>\n        basic_regex& operator=(const basic_string<charT, ST, SA>& p);\n\n    // assign:\n    basic_regex& assign(const basic_regex& that);\n    basic_regex& assign(basic_regex&& that) noexcept;\n    basic_regex& assign(const charT* ptr, flag_type f = regex_constants::ECMAScript);\n    basic_regex& assign(const charT* p, size_t len, flag_type f);\n    template <class string_traits, class A>\n        basic_regex& assign(const basic_string<charT, string_traits, A>& s,\n                            flag_type f = regex_constants::ECMAScript);\n    template <class InputIterator>\n        basic_regex& assign(InputIterator first, InputIterator last,\n                            flag_type f = regex_constants::ECMAScript);\n    basic_regex& assign(initializer_list<charT>, flag_type = regex_constants::ECMAScript);\n\n    // const operations:\n    unsigned mark_count() const;\n    flag_type flags() const;\n\n    // locale:\n    locale_type imbue(locale_type loc);\n    locale_type getloc() const;\n\n    // swap:\n    void swap(basic_regex&);\n};\n\ntypedef basic_regex<char>    regex;\ntypedef basic_regex<wchar_t> wregex;\n\ntemplate <class charT, class traits>\n    void swap(basic_regex<charT, traits>& e1, basic_regex<charT, traits>& e2);\n\ntemplate <class BidirectionalIterator>\nclass sub_match\n    : public pair<BidirectionalIterator, BidirectionalIterator>\n{\npublic:\n    typedef typename iterator_traits<BidirectionalIterator>::value_type value_type;\n    typedef typename iterator_traits<BidirectionalIterator>::difference_type difference_type;\n    typedef BidirectionalIterator                                      iterator;\n    typedef basic_string<value_type>                                string_type;\n\n    bool matched;\n\n    constexpr sub_match();\n\n    difference_type length() const;\n    operator string_type() const;\n    string_type str() const;\n\n    int compare(const sub_match& s) const;\n    int compare(const string_type& s) const;\n    int compare(const value_type* s) const;\n};\n\ntypedef sub_match<const char*>             csub_match;\ntypedef sub_match<const wchar_t*>          wcsub_match;\ntypedef sub_match<string::const_iterator>  ssub_match;\ntypedef sub_match<wstring::const_iterator> wssub_match;\n\ntemplate <class BiIter>\n    bool\n    operator==(const sub_match<BiIter>& lhs, const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator!=(const sub_match<BiIter>& lhs, const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<(const sub_match<BiIter>& lhs, const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<=(const sub_match<BiIter>& lhs, const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>=(const sub_match<BiIter>& lhs, const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>(const sub_match<BiIter>& lhs, const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator==(const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator!=(const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator<(const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,\n              const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator>(const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,\n              const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool operator>=(const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,\n                    const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator<=(const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator==(const sub_match<BiIter>& lhs,\n               const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator!=(const sub_match<BiIter>& lhs,\n               const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator<(const sub_match<BiIter>& lhs,\n              const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool operator>(const sub_match<BiIter>& lhs,\n                   const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator>=(const sub_match<BiIter>& lhs,\n               const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);\n\ntemplate <class BiIter, class ST, class SA>\n    bool\n    operator<=(const sub_match<BiIter>& lhs,\n               const basic_string<typename iterator_traits<BiIter>::value_type, ST, SA>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator==(typename iterator_traits<BiIter>::value_type const* lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator!=(typename iterator_traits<BiIter>::value_type const* lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<(typename iterator_traits<BiIter>::value_type const* lhs,\n              const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>(typename iterator_traits<BiIter>::value_type const* lhs,\n              const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>=(typename iterator_traits<BiIter>::value_type const* lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<=(typename iterator_traits<BiIter>::value_type const* lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator==(const sub_match<BiIter>& lhs,\n               typename iterator_traits<BiIter>::value_type const* rhs);\n\ntemplate <class BiIter>\n    bool\n    operator!=(const sub_match<BiIter>& lhs,\n               typename iterator_traits<BiIter>::value_type const* rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<(const sub_match<BiIter>& lhs,\n              typename iterator_traits<BiIter>::value_type const* rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>(const sub_match<BiIter>& lhs,\n              typename iterator_traits<BiIter>::value_type const* rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>=(const sub_match<BiIter>& lhs,\n               typename iterator_traits<BiIter>::value_type const* rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<=(const sub_match<BiIter>& lhs,\n               typename iterator_traits<BiIter>::value_type const* rhs);\n\ntemplate <class BiIter>\n    bool\n    operator==(typename iterator_traits<BiIter>::value_type const& lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator!=(typename iterator_traits<BiIter>::value_type const& lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<(typename iterator_traits<BiIter>::value_type const& lhs,\n              const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>(typename iterator_traits<BiIter>::value_type const& lhs,\n              const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>=(typename iterator_traits<BiIter>::value_type const& lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<=(typename iterator_traits<BiIter>::value_type const& lhs,\n               const sub_match<BiIter>& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator==(const sub_match<BiIter>& lhs,\n               typename iterator_traits<BiIter>::value_type const& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator!=(const sub_match<BiIter>& lhs,\n               typename iterator_traits<BiIter>::value_type const& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<(const sub_match<BiIter>& lhs,\n              typename iterator_traits<BiIter>::value_type const& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>(const sub_match<BiIter>& lhs,\n              typename iterator_traits<BiIter>::value_type const& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator>=(const sub_match<BiIter>& lhs,\n               typename iterator_traits<BiIter>::value_type const& rhs);\n\ntemplate <class BiIter>\n    bool\n    operator<=(const sub_match<BiIter>& lhs,\n               typename iterator_traits<BiIter>::value_type const& rhs);\n\ntemplate <class charT, class ST, class BiIter>\n    basic_ostream<charT, ST>&\n    operator<<(basic_ostream<charT, ST>& os, const sub_match<BiIter>& m);\n\ntemplate <class BidirectionalIterator,\n          class Allocator = allocator<sub_match<BidirectionalIterator>>>\nclass match_results\n{\npublic:\n    typedef sub_match<BidirectionalIterator>                  value_type;\n    typedef const value_type&                                 const_reference;\n    typedef value_type&                                       reference;\n    typedef /implementation-defined/                          const_iterator;\n    typedef const_iterator                                    iterator;\n    typedef typename iterator_traits<BidirectionalIterator>::difference_type difference_type;\n    typedef typename allocator_traits<Allocator>::size_type   size_type;\n    typedef Allocator                                         allocator_type;\n    typedef typename iterator_traits<BidirectionalIterator>::value_type char_type;\n    typedef basic_string<char_type>                           string_type;\n\n    // construct/copy/destroy:\n    explicit match_results(const Allocator& a = Allocator());\n    match_results(const match_results& m);\n    match_results(match_results&& m) noexcept;\n    match_results& operator=(const match_results& m);\n    match_results& operator=(match_results&& m);\n    ~match_results();\n\n    bool ready() const;\n\n    // size:\n    size_type size() const;\n    size_type max_size() const;\n    bool empty() const;\n\n    // element access:\n    difference_type length(size_type sub = 0) const;\n    difference_type position(size_type sub = 0) const;\n    string_type str(size_type sub = 0) const;\n    const_reference operator[](size_type n) const;\n\n    const_reference prefix() const;\n    const_reference suffix() const;\n\n    const_iterator begin() const;\n    const_iterator end() const;\n    const_iterator cbegin() const;\n    const_iterator cend() const;\n\n    // format:\n    template <class OutputIter>\n        OutputIter\n        format(OutputIter out, const char_type* fmt_first,\n               const char_type* fmt_last,\n               regex_constants::match_flag_type flags = regex_constants::format_default) const;\n    template <class OutputIter, class ST, class SA>\n        OutputIter\n        format(OutputIter out, const basic_string<char_type, ST, SA>& fmt,\n               regex_constants::match_flag_type flags = regex_constants::format_default) const;\n    template <class ST, class SA>\n        basic_string<char_type, ST, SA>\n        format(const basic_string<char_type, ST, SA>& fmt,\n               regex_constants::match_flag_type flags = regex_constants::format_default) const;\n    string_type\n        format(const char_type* fmt,\n               regex_constants::match_flag_type flags = regex_constants::format_default) const;\n\n    // allocator:\n    allocator_type get_allocator() const;\n\n    // swap:\n    void swap(match_results& that);\n};\n\ntypedef match_results<const char*>             cmatch;\ntypedef match_results<const wchar_t*>          wcmatch;\ntypedef match_results<string::const_iterator>  smatch;\ntypedef match_results<wstring::const_iterator> wsmatch;\n\ntemplate <class BidirectionalIterator, class Allocator>\n    bool\n    operator==(const match_results<BidirectionalIterator, Allocator>& m1,\n               const match_results<BidirectionalIterator, Allocator>& m2);\n\ntemplate <class BidirectionalIterator, class Allocator>\n    bool\n    operator!=(const match_results<BidirectionalIterator, Allocator>& m1,\n               const match_results<BidirectionalIterator, Allocator>& m2);\n\ntemplate <class BidirectionalIterator, class Allocator>\n    void\n    swap(match_results<BidirectionalIterator, Allocator>& m1,\n         match_results<BidirectionalIterator, Allocator>& m2);\n\ntemplate <class BidirectionalIterator, class Allocator, class charT, class traits>\n    bool\n    regex_match(BidirectionalIterator first, BidirectionalIterator last,\n                match_results<BidirectionalIterator, Allocator>& m,\n                const basic_regex<charT, traits>& e,\n                regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class BidirectionalIterator, class charT, class traits>\n    bool\n    regex_match(BidirectionalIterator first, BidirectionalIterator last,\n                const basic_regex<charT, traits>& e,\n                regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class charT, class Allocator, class traits>\n    bool\n    regex_match(const charT* str, match_results<const charT*, Allocator>& m,\n                const basic_regex<charT, traits>& e,\n                regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class ST, class SA, class Allocator, class charT, class traits>\n    bool\n    regex_match(const basic_string<charT, ST, SA>& s,\n                match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,\n                const basic_regex<charT, traits>& e,\n                regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class ST, class SA, class Allocator, class charT, class traits>\n    bool\n    regex_match(const basic_string<charT, ST, SA>&& s,\n                match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,\n                const basic_regex<charT, traits>& e,\n                regex_constants::match_flag_type flags = regex_constants::match_default) = delete; // C++14\n\ntemplate <class charT, class traits>\n    bool\n    regex_match(const charT* str, const basic_regex<charT, traits>& e,\n                regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class ST, class SA, class charT, class traits>\n    bool\n    regex_match(const basic_string<charT, ST, SA>& s,\n                const basic_regex<charT, traits>& e,\n                regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class BidirectionalIterator, class Allocator, class charT, class traits>\n    bool\n    regex_search(BidirectionalIterator first, BidirectionalIterator last,\n                 match_results<BidirectionalIterator, Allocator>& m,\n                 const basic_regex<charT, traits>& e,\n                 regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class BidirectionalIterator, class charT, class traits>\n    bool\n    regex_search(BidirectionalIterator first, BidirectionalIterator last,\n                 const basic_regex<charT, traits>& e,\n                 regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class charT, class Allocator, class traits>\n    bool\n    regex_search(const charT* str, match_results<const charT*, Allocator>& m,\n                 const basic_regex<charT, traits>& e,\n                 regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class charT, class traits>\n    bool\n    regex_search(const charT* str, const basic_regex<charT, traits>& e,\n                 regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class ST, class SA, class charT, class traits>\n    bool\n    regex_search(const basic_string<charT, ST, SA>& s,\n                 const basic_regex<charT, traits>& e,\n                 regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class ST, class SA, class Allocator, class charT, class traits>\n    bool\n    regex_search(const basic_string<charT, ST, SA>& s,\n                 match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,\n                 const basic_regex<charT, traits>& e,\n                 regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class ST, class SA, class Allocator, class charT, class traits>\n    bool\n    regex_search(const basic_string<charT, ST, SA>&& s,\n                 match_results<typename basic_string<charT, ST, SA>::const_iterator, Allocator>& m,\n                 const basic_regex<charT, traits>& e,\n                 regex_constants::match_flag_type flags = regex_constants::match_default) = delete; // C++14\n\ntemplate <class OutputIterator, class BidirectionalIterator,\n          class traits, class charT, class ST, class SA>\n    OutputIterator\n    regex_replace(OutputIterator out,\n                  BidirectionalIterator first, BidirectionalIterator last,\n                  const basic_regex<charT, traits>& e,\n                  const basic_string<charT, ST, SA>& fmt,\n                  regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class OutputIterator, class BidirectionalIterator,\n          class traits, class charT>\n    OutputIterator\n    regex_replace(OutputIterator out,\n                  BidirectionalIterator first, BidirectionalIterator last,\n                  const basic_regex<charT, traits>& e, const charT* fmt,\n                  regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class traits, class charT, class ST, class SA, class FST, class FSA>>\n    basic_string<charT, ST, SA>\n    regex_replace(const basic_string<charT, ST, SA>& s,\n                  const basic_regex<charT, traits>& e,\n                  const basic_string<charT, FST, FSA>& fmt,\n                  regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class traits, class charT, class ST, class SA>\n    basic_string<charT, ST, SA>\n    regex_replace(const basic_string<charT, ST, SA>& s,\n                  const basic_regex<charT, traits>& e, const charT* fmt,\n                  regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class traits, class charT, class ST, class SA>\n    basic_string<charT>\n    regex_replace(const charT* s,\n                  const basic_regex<charT, traits>& e,\n                  const basic_string<charT, ST, SA>& fmt,\n                  regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class traits, class charT>\n    basic_string<charT>\n    regex_replace(const charT* s,\n                  const basic_regex<charT, traits>& e,\n                  const charT* fmt,\n                  regex_constants::match_flag_type flags = regex_constants::match_default);\n\ntemplate <class BidirectionalIterator,\n          class charT = typename iterator_traits< BidirectionalIterator>::value_type,\n          class traits = regex_traits<charT>>\nclass regex_iterator\n{\npublic:\n    typedef basic_regex<charT, traits>           regex_type;\n    typedef match_results<BidirectionalIterator> value_type;\n    typedef ptrdiff_t                            difference_type;\n    typedef const value_type*                    pointer;\n    typedef const value_type&                    reference;\n    typedef forward_iterator_tag                 iterator_category;\n\n    regex_iterator();\n    regex_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                   const regex_type& re,\n                   regex_constants::match_flag_type m = regex_constants::match_default);\n    regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                   const regex_type&& __re,\n                   regex_constants::match_flag_type __m \n                                     = regex_constants::match_default) = delete; // C++14\n    regex_iterator(const regex_iterator&);\n    regex_iterator& operator=(const regex_iterator&);\n\n    bool operator==(const regex_iterator&) const;\n    bool operator!=(const regex_iterator&) const;\n\n    const value_type& operator*() const;\n    const value_type* operator->() const;\n\n    regex_iterator& operator++();\n    regex_iterator operator++(int);\n};\n\ntypedef regex_iterator<const char*>             cregex_iterator;\ntypedef regex_iterator<const wchar_t*>          wcregex_iterator;\ntypedef regex_iterator<string::const_iterator>  sregex_iterator;\ntypedef regex_iterator<wstring::const_iterator> wsregex_iterator;\n\ntemplate <class BidirectionalIterator,\n          class charT = typename iterator_traits< BidirectionalIterator>::value_type,\n          class traits = regex_traits<charT>>\nclass regex_token_iterator\n{\npublic:\n    typedef basic_regex<charT, traits>       regex_type;\n    typedef sub_match<BidirectionalIterator> value_type;\n    typedef ptrdiff_t                        difference_type;\n    typedef const value_type*                pointer;\n    typedef const value_type&                reference;\n    typedef forward_iterator_tag             iterator_category;\n\n    regex_token_iterator();\n    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                         const regex_type& re, int submatch = 0,\n                         regex_constants::match_flag_type m = regex_constants::match_default);\n    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                         const regex_type&& re, int submatch = 0,\n                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14\n    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                         const regex_type& re, const vector<int>& submatches,\n                         regex_constants::match_flag_type m = regex_constants::match_default);\n    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                         const regex_type&& re, const vector<int>& submatches,\n                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14\n    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                         const regex_type& re, initializer_list<int> submatches,\n                         regex_constants::match_flag_type m = regex_constants::match_default);\n    regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                         const regex_type&& re, initializer_list<int> submatches,\n                         regex_constants::match_flag_type m = regex_constants::match_default) = delete; // C++14\n    template <size_t N>\n        regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                             const regex_type& re, const int (&submatches)[N],\n                             regex_constants::match_flag_type m = regex_constants::match_default);\n    template <size_t N>\n        regex_token_iterator(BidirectionalIterator a, BidirectionalIterator b,\n                             const regex_type& re, const int (&submatches)[N],\n                             regex_constants::match_flag_type m = regex_constants::match_default) = delete // C++14;\n    regex_token_iterator(const regex_token_iterator&);\n    regex_token_iterator& operator=(const regex_token_iterator&);\n\n    bool operator==(const regex_token_iterator&) const;\n    bool operator!=(const regex_token_iterator&) const;\n\n    const value_type& operator*() const;\n    const value_type* operator->() const;\n\n    regex_token_iterator& operator++();\n    regex_token_iterator operator++(int);\n};\n\ntypedef regex_token_iterator<const char*>             cregex_token_iterator;\ntypedef regex_token_iterator<const wchar_t*>          wcregex_token_iterator;\ntypedef regex_token_iterator<string::const_iterator>  sregex_token_iterator;\ntypedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;\n\n} // std\n*/\n\n#include <__config>\n#include <stdexcept>\n#include <__locale>\n#include <initializer_list>\n#include <utility>\n#include <iterator>\n#include <string>\n#include <memory>\n#include <vector>\n#include <deque>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nnamespace regex_constants\n{\n\n// syntax_option_type\n\nenum syntax_option_type\n{\n    icase      = 1 << 0,\n    nosubs     = 1 << 1,\n    optimize   = 1 << 2,\n    collate    = 1 << 3,\n    ECMAScript = 0,\n    basic      = 1 << 4,\n    extended   = 1 << 5,\n    awk        = 1 << 6,\n    grep       = 1 << 7,\n    egrep      = 1 << 8\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nsyntax_option_type\noperator~(syntax_option_type __x)\n{\n    return syntax_option_type(~int(__x) & 0x1FF);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nsyntax_option_type\noperator&(syntax_option_type __x, syntax_option_type __y)\n{\n    return syntax_option_type(int(__x) & int(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nsyntax_option_type\noperator|(syntax_option_type __x, syntax_option_type __y)\n{\n    return syntax_option_type(int(__x) | int(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nsyntax_option_type\noperator^(syntax_option_type __x, syntax_option_type __y)\n{\n    return syntax_option_type(int(__x) ^ int(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nsyntax_option_type&\noperator&=(syntax_option_type& __x, syntax_option_type __y)\n{\n    __x = __x & __y;\n    return __x;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nsyntax_option_type&\noperator|=(syntax_option_type& __x, syntax_option_type __y)\n{\n    __x = __x | __y;\n    return __x;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nsyntax_option_type&\noperator^=(syntax_option_type& __x, syntax_option_type __y)\n{\n    __x = __x ^ __y;\n    return __x;\n}\n\n// match_flag_type\n\nenum match_flag_type\n{\n    match_default     = 0,\n    match_not_bol     = 1 << 0,\n    match_not_eol     = 1 << 1,\n    match_not_bow     = 1 << 2,\n    match_not_eow     = 1 << 3,\n    match_any         = 1 << 4,\n    match_not_null    = 1 << 5,\n    match_continuous  = 1 << 6,\n    match_prev_avail  = 1 << 7,\n    format_default    = 0,\n    format_sed        = 1 << 8,\n    format_no_copy    = 1 << 9,\n    format_first_only = 1 << 10,\n    __no_update_pos   = 1 << 11,\n    __full_match      = 1 << 12\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nmatch_flag_type\noperator~(match_flag_type __x)\n{\n    return match_flag_type(~int(__x) & 0x0FFF);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nmatch_flag_type\noperator&(match_flag_type __x, match_flag_type __y)\n{\n    return match_flag_type(int(__x) & int(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nmatch_flag_type\noperator|(match_flag_type __x, match_flag_type __y)\n{\n    return match_flag_type(int(__x) | int(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR\nmatch_flag_type\noperator^(match_flag_type __x, match_flag_type __y)\n{\n    return match_flag_type(int(__x) ^ int(__y));\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nmatch_flag_type&\noperator&=(match_flag_type& __x, match_flag_type __y)\n{\n    __x = __x & __y;\n    return __x;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nmatch_flag_type&\noperator|=(match_flag_type& __x, match_flag_type __y)\n{\n    __x = __x | __y;\n    return __x;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nmatch_flag_type&\noperator^=(match_flag_type& __x, match_flag_type __y)\n{\n    __x = __x ^ __y;\n    return __x;\n}\n\nenum error_type\n{\n    error_collate = 1,\n    error_ctype,\n    error_escape,\n    error_backref,\n    error_brack,\n    error_paren,\n    error_brace,\n    error_badbrace,\n    error_range,\n    error_space,\n    error_badrepeat,\n    error_complexity,\n    error_stack,\n    __re_err_grammar,\n    __re_err_empty,\n    __re_err_unknown\n};\n\n}  // regex_constants\n\nclass _LIBCPP_EXCEPTION_ABI regex_error\n    : public runtime_error\n{\n    regex_constants::error_type __code_;\npublic:\n    explicit regex_error(regex_constants::error_type __ecode);\n    virtual ~regex_error() throw();\n     _LIBCPP_INLINE_VISIBILITY\n    regex_constants::error_type code() const {return __code_;}\n};\n\ntemplate <regex_constants::error_type _Ev>\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_regex_error()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw regex_error(_Ev);\n#else\n    _VSTD::abort();\n#endif\n}\n\ntemplate <class _CharT>\nstruct _LIBCPP_TEMPLATE_VIS regex_traits\n{\npublic:\n    typedef _CharT                  char_type;\n    typedef basic_string<char_type> string_type;\n    typedef locale                  locale_type;\n    typedef ctype_base::mask        char_class_type;\n\n#if defined(__mips__) && defined(__GLIBC__)\n    static const char_class_type __regex_word = static_cast<char_class_type>(_ISbit(15));\n#else\n    static const char_class_type __regex_word = 0x80;\n#endif\n\nprivate:\n    locale __loc_;\n    const ctype<char_type>* __ct_;\n    const collate<char_type>* __col_;\n\npublic:\n    regex_traits();\n\n    _LIBCPP_INLINE_VISIBILITY\n    static size_t length(const char_type* __p)\n        {return char_traits<char_type>::length(__p);}\n    _LIBCPP_INLINE_VISIBILITY\n    char_type translate(char_type __c) const {return __c;}\n    char_type translate_nocase(char_type __c) const;\n    template <class _ForwardIterator>\n        string_type\n        transform(_ForwardIterator __f, _ForwardIterator __l) const;\n    template <class _ForwardIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        string_type\n        transform_primary( _ForwardIterator __f, _ForwardIterator __l) const\n            {return __transform_primary(__f, __l, char_type());}\n    template <class _ForwardIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        string_type\n        lookup_collatename(_ForwardIterator __f, _ForwardIterator __l) const\n            {return __lookup_collatename(__f, __l, char_type());}\n    template <class _ForwardIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        char_class_type\n        lookup_classname(_ForwardIterator __f, _ForwardIterator __l,\n                         bool __icase = false) const\n            {return __lookup_classname(__f, __l, __icase, char_type());}\n    bool isctype(char_type __c, char_class_type __m) const;\n    _LIBCPP_INLINE_VISIBILITY\n    int value(char_type __ch, int __radix) const\n        {return __regex_traits_value(__ch, __radix);}\n    locale_type imbue(locale_type __l);\n    _LIBCPP_INLINE_VISIBILITY\n    locale_type getloc()const {return __loc_;}\n\nprivate:\n    void __init();\n\n    template <class _ForwardIterator>\n        string_type\n        __transform_primary(_ForwardIterator __f, _ForwardIterator __l, char) const;\n    template <class _ForwardIterator>\n        string_type\n        __transform_primary(_ForwardIterator __f, _ForwardIterator __l, wchar_t) const;\n\n    template <class _ForwardIterator>\n        string_type\n        __lookup_collatename(_ForwardIterator __f, _ForwardIterator __l, char) const;\n    template <class _ForwardIterator>\n        string_type\n        __lookup_collatename(_ForwardIterator __f, _ForwardIterator __l, wchar_t) const;\n\n    template <class _ForwardIterator>\n        char_class_type\n        __lookup_classname(_ForwardIterator __f, _ForwardIterator __l,\n                           bool __icase, char) const;\n    template <class _ForwardIterator>\n        char_class_type\n        __lookup_classname(_ForwardIterator __f, _ForwardIterator __l,\n                           bool __icase, wchar_t) const;\n\n    static int __regex_traits_value(unsigned char __ch, int __radix);\n    _LIBCPP_INLINE_VISIBILITY\n    int __regex_traits_value(char __ch, int __radix) const\n        {return __regex_traits_value(static_cast<unsigned char>(__ch), __radix);}\n    _LIBCPP_INLINE_VISIBILITY\n    int __regex_traits_value(wchar_t __ch, int __radix) const;\n};\n\ntemplate <class _CharT>\nconst typename regex_traits<_CharT>::char_class_type\nregex_traits<_CharT>::__regex_word;\n\ntemplate <class _CharT>\nregex_traits<_CharT>::regex_traits()\n{\n    __init();\n}\n\ntemplate <class _CharT>\ntypename regex_traits<_CharT>::char_type\nregex_traits<_CharT>::translate_nocase(char_type __c) const\n{\n    return __ct_->tolower(__c);\n}\n\ntemplate <class _CharT>\ntemplate <class _ForwardIterator>\ntypename regex_traits<_CharT>::string_type\nregex_traits<_CharT>::transform(_ForwardIterator __f, _ForwardIterator __l) const\n{\n    string_type __s(__f, __l);\n    return __col_->transform(__s.data(), __s.data() + __s.size());\n}\n\ntemplate <class _CharT>\nvoid\nregex_traits<_CharT>::__init()\n{\n    __ct_ = &use_facet<ctype<char_type> >(__loc_);\n    __col_ = &use_facet<collate<char_type> >(__loc_);\n}\n\ntemplate <class _CharT>\ntypename regex_traits<_CharT>::locale_type\nregex_traits<_CharT>::imbue(locale_type __l)\n{\n    locale __r = __loc_;\n    __loc_ = __l;\n    __init();\n    return __r;\n}\n\n// transform_primary is very FreeBSD-specific\n\ntemplate <class _CharT>\ntemplate <class _ForwardIterator>\ntypename regex_traits<_CharT>::string_type\nregex_traits<_CharT>::__transform_primary(_ForwardIterator __f,\n                                          _ForwardIterator __l, char) const\n{\n    const string_type __s(__f, __l);\n    string_type __d = __col_->transform(__s.data(), __s.data() + __s.size());\n    switch (__d.size())\n    {\n    case 1:\n        break;\n    case 12:\n        __d[11] = __d[3];\n        break;\n    default:\n        __d.clear();\n        break;\n    }\n    return __d;\n}\n\ntemplate <class _CharT>\ntemplate <class _ForwardIterator>\ntypename regex_traits<_CharT>::string_type\nregex_traits<_CharT>::__transform_primary(_ForwardIterator __f,\n                                          _ForwardIterator __l, wchar_t) const\n{\n    const string_type __s(__f, __l);\n    string_type __d = __col_->transform(__s.data(), __s.data() + __s.size());\n    switch (__d.size())\n    {\n    case 1:\n        break;\n    case 3:\n        __d[2] = __d[0];\n        break;\n    default:\n        __d.clear();\n        break;\n    }\n    return __d;\n}\n\n// lookup_collatename is very FreeBSD-specific\n\n_LIBCPP_FUNC_VIS string __get_collation_name(const char* __s);\n\ntemplate <class _CharT>\ntemplate <class _ForwardIterator>\ntypename regex_traits<_CharT>::string_type\nregex_traits<_CharT>::__lookup_collatename(_ForwardIterator __f,\n                                           _ForwardIterator __l, char) const\n{\n    string_type __s(__f, __l);\n    string_type __r;\n    if (!__s.empty())\n    {\n        __r = __get_collation_name(__s.c_str());\n        if (__r.empty() && __s.size() <= 2)\n        {\n            __r = __col_->transform(__s.data(), __s.data() + __s.size());\n            if (__r.size() == 1 || __r.size() == 12)\n                __r = __s;\n            else\n                __r.clear();\n        }\n    }\n    return __r;\n}\n\ntemplate <class _CharT>\ntemplate <class _ForwardIterator>\ntypename regex_traits<_CharT>::string_type\nregex_traits<_CharT>::__lookup_collatename(_ForwardIterator __f,\n                                           _ForwardIterator __l, wchar_t) const\n{\n    string_type __s(__f, __l);\n    string __n;\n    __n.reserve(__s.size());\n    for (typename string_type::const_iterator __i = __s.begin(), __e = __s.end();\n                                                              __i != __e; ++__i)\n    {\n        if (static_cast<unsigned>(*__i) >= 127)\n            return string_type();\n        __n.push_back(char(*__i));\n    }\n    string_type __r;\n    if (!__s.empty())\n    {\n        __n = __get_collation_name(__n.c_str());\n        if (!__n.empty())\n            __r.assign(__n.begin(), __n.end());\n        else if (__s.size() <= 2)\n        {\n            __r = __col_->transform(__s.data(), __s.data() + __s.size());\n            if (__r.size() == 1 || __r.size() == 3)\n                __r = __s;\n            else\n                __r.clear();\n        }\n    }\n    return __r;\n}\n\n// lookup_classname\n\nregex_traits<char>::char_class_type _LIBCPP_FUNC_VIS\n__get_classname(const char* __s, bool __icase);\n\ntemplate <class _CharT>\ntemplate <class _ForwardIterator>\ntypename regex_traits<_CharT>::char_class_type\nregex_traits<_CharT>::__lookup_classname(_ForwardIterator __f,\n                                         _ForwardIterator __l,\n                                         bool __icase, char) const\n{\n    string_type __s(__f, __l);\n    __ct_->tolower(&__s[0], &__s[0] + __s.size());\n    return __get_classname(__s.c_str(), __icase);\n}\n\ntemplate <class _CharT>\ntemplate <class _ForwardIterator>\ntypename regex_traits<_CharT>::char_class_type\nregex_traits<_CharT>::__lookup_classname(_ForwardIterator __f,\n                                         _ForwardIterator __l,\n                                         bool __icase, wchar_t) const\n{\n    string_type __s(__f, __l);\n    __ct_->tolower(&__s[0], &__s[0] + __s.size());\n    string __n;\n    __n.reserve(__s.size());\n    for (typename string_type::const_iterator __i = __s.begin(), __e = __s.end();\n                                                              __i != __e; ++__i)\n    {\n        if (static_cast<unsigned>(*__i) >= 127)\n            return char_class_type();\n        __n.push_back(char(*__i));\n    }\n    return __get_classname(__n.c_str(), __icase);\n}\n\ntemplate <class _CharT>\nbool\nregex_traits<_CharT>::isctype(char_type __c, char_class_type __m) const\n{\n    if (__ct_->is(__m, __c))\n        return true;\n    return (__c == '_' && (__m & __regex_word));\n}\n\ntemplate <class _CharT>\nint\nregex_traits<_CharT>::__regex_traits_value(unsigned char __ch, int __radix)\n{\n    if ((__ch & 0xF8u) == 0x30)  // '0' <= __ch && __ch <= '7'\n        return __ch - '0';\n    if (__radix != 8)\n    {\n        if ((__ch & 0xFEu) == 0x38)  // '8' <= __ch && __ch <= '9'\n            return __ch - '0';\n        if (__radix == 16)\n        {\n            __ch |= 0x20;  // tolower\n            if ('a' <= __ch && __ch <= 'f')\n                return __ch - ('a' - 10);\n        }\n    }\n    return -1;\n}\n\ntemplate <class _CharT>\ninline\nint\nregex_traits<_CharT>::__regex_traits_value(wchar_t __ch, int __radix) const\n{\n    return __regex_traits_value(static_cast<unsigned char>(__ct_->narrow(__ch, char_type())), __radix);\n}\n\ntemplate <class _CharT> class __node;\n\ntemplate <class _BidirectionalIterator> class _LIBCPP_TEMPLATE_VIS sub_match;\n\ntemplate <class _BidirectionalIterator,\n          class _Allocator = allocator<sub_match<_BidirectionalIterator> > >\nclass _LIBCPP_TEMPLATE_VIS match_results;\n\ntemplate <class _CharT>\nstruct __state\n{\n    enum\n    {\n        __end_state = -1000,\n        __consume_input,  // -999\n        __begin_marked_expr, // -998\n        __end_marked_expr,   // -997\n        __pop_state,           // -996\n        __accept_and_consume,  // -995\n        __accept_but_not_consume,  // -994\n        __reject,                  // -993\n        __split,\n        __repeat\n    };\n\n    int __do_;\n    const _CharT* __first_;\n    const _CharT* __current_;\n    const _CharT* __last_;\n    vector<sub_match<const _CharT*> > __sub_matches_;\n    vector<pair<size_t, const _CharT*> > __loop_data_;\n    const __node<_CharT>* __node_;\n    regex_constants::match_flag_type __flags_;\n    bool __at_first_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __state()\n        : __do_(0), __first_(nullptr), __current_(nullptr), __last_(nullptr),\n          __node_(nullptr), __flags_() {}\n};\n\n// __node\n\ntemplate <class _CharT>\nclass __node\n{\n    __node(const __node&);\n    __node& operator=(const __node&);\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __node() {}\n    _LIBCPP_INLINE_VISIBILITY\n    virtual ~__node() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    virtual void __exec(__state&) const {};\n    _LIBCPP_INLINE_VISIBILITY\n    virtual void __exec_split(bool, __state&) const {};\n};\n\n// __end_state\n\ntemplate <class _CharT>\nclass __end_state\n    : public __node<_CharT>\n{\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __end_state() {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__end_state<_CharT>::__exec(__state& __s) const\n{\n    __s.__do_ = __state::__end_state;\n}\n\n// __has_one_state\n\ntemplate <class _CharT>\nclass __has_one_state\n    : public __node<_CharT>\n{\n    __node<_CharT>* __first_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __has_one_state(__node<_CharT>* __s)\n        : __first_(__s) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __node<_CharT>*  first() const {return __first_;}\n    _LIBCPP_INLINE_VISIBILITY\n    __node<_CharT>*& first()       {return __first_;}\n};\n\n// __owns_one_state\n\ntemplate <class _CharT>\nclass __owns_one_state\n    : public __has_one_state<_CharT>\n{\n    typedef __has_one_state<_CharT> base;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __owns_one_state(__node<_CharT>* __s)\n        : base(__s) {}\n\n    virtual ~__owns_one_state();\n};\n\ntemplate <class _CharT>\n__owns_one_state<_CharT>::~__owns_one_state()\n{\n    delete this->first();\n}\n\n// __empty_state\n\ntemplate <class _CharT>\nclass __empty_state\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __empty_state(__node<_CharT>* __s)\n        : base(__s) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__empty_state<_CharT>::__exec(__state& __s) const\n{\n    __s.__do_ = __state::__accept_but_not_consume;\n    __s.__node_ = this->first();\n}\n\n// __empty_non_own_state\n\ntemplate <class _CharT>\nclass __empty_non_own_state\n    : public __has_one_state<_CharT>\n{\n    typedef __has_one_state<_CharT> base;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __empty_non_own_state(__node<_CharT>* __s)\n        : base(__s) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__empty_non_own_state<_CharT>::__exec(__state& __s) const\n{\n    __s.__do_ = __state::__accept_but_not_consume;\n    __s.__node_ = this->first();\n}\n\n// __repeat_one_loop\n\ntemplate <class _CharT>\nclass __repeat_one_loop\n    : public __has_one_state<_CharT>\n{\n    typedef __has_one_state<_CharT> base;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __repeat_one_loop(__node<_CharT>* __s)\n        : base(__s) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__repeat_one_loop<_CharT>::__exec(__state& __s) const\n{\n    __s.__do_ = __state::__repeat;\n    __s.__node_ = this->first();\n}\n\n// __owns_two_states\n\ntemplate <class _CharT>\nclass __owns_two_states\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    base* __second_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __owns_two_states(__node<_CharT>* __s1, base* __s2)\n        : base(__s1), __second_(__s2) {}\n\n    virtual ~__owns_two_states();\n\n    _LIBCPP_INLINE_VISIBILITY\n    base*  second() const {return __second_;}\n    _LIBCPP_INLINE_VISIBILITY\n    base*& second()       {return __second_;}\n};\n\ntemplate <class _CharT>\n__owns_two_states<_CharT>::~__owns_two_states()\n{\n    delete __second_;\n}\n\n// __loop\n\ntemplate <class _CharT>\nclass __loop\n    : public __owns_two_states<_CharT>\n{\n    typedef __owns_two_states<_CharT> base;\n\n    size_t __min_;\n    size_t __max_;\n    unsigned __loop_id_;\n    unsigned __mexp_begin_;\n    unsigned __mexp_end_;\n    bool __greedy_;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __loop(unsigned __loop_id,\n                          __node<_CharT>* __s1, __owns_one_state<_CharT>* __s2,\n                          unsigned __mexp_begin, unsigned __mexp_end,\n                          bool __greedy = true,\n                          size_t __min = 0,\n                          size_t __max = numeric_limits<size_t>::max())\n        : base(__s1, __s2), __min_(__min), __max_(__max), __loop_id_(__loop_id),\n          __mexp_begin_(__mexp_begin), __mexp_end_(__mexp_end),\n          __greedy_(__greedy) {}\n\n    virtual void __exec(__state& __s) const;\n    virtual void __exec_split(bool __second, __state& __s) const;\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    void __init_repeat(__state& __s) const\n    {\n        __s.__loop_data_[__loop_id_].second = __s.__current_;\n        for (size_t __i = __mexp_begin_-1; __i != __mexp_end_-1; ++__i)\n        {\n            __s.__sub_matches_[__i].first = __s.__last_;\n            __s.__sub_matches_[__i].second = __s.__last_;\n            __s.__sub_matches_[__i].matched = false;\n        }\n    }\n};\n\ntemplate <class _CharT>\nvoid\n__loop<_CharT>::__exec(__state& __s) const\n{\n    if (__s.__do_ == __state::__repeat)\n    {\n        bool __do_repeat = ++__s.__loop_data_[__loop_id_].first < __max_;\n        bool __do_alt = __s.__loop_data_[__loop_id_].first >= __min_;\n        if (__do_repeat && __do_alt &&\n                               __s.__loop_data_[__loop_id_].second == __s.__current_)\n            __do_repeat = false;\n        if (__do_repeat && __do_alt)\n            __s.__do_ = __state::__split;\n        else if (__do_repeat)\n        {\n            __s.__do_ = __state::__accept_but_not_consume;\n            __s.__node_ = this->first();\n            __init_repeat(__s);\n        }\n        else\n        {\n            __s.__do_ = __state::__accept_but_not_consume;\n            __s.__node_ = this->second();\n        }\n    }\n    else\n    {\n        __s.__loop_data_[__loop_id_].first = 0;\n        bool __do_repeat = 0 < __max_;\n        bool __do_alt = 0 >= __min_;\n        if (__do_repeat && __do_alt)\n            __s.__do_ = __state::__split;\n        else if (__do_repeat)\n        {\n            __s.__do_ = __state::__accept_but_not_consume;\n            __s.__node_ = this->first();\n            __init_repeat(__s);\n        }\n        else\n        {\n            __s.__do_ = __state::__accept_but_not_consume;\n            __s.__node_ = this->second();\n        }\n    }\n}\n\ntemplate <class _CharT>\nvoid\n__loop<_CharT>::__exec_split(bool __second, __state& __s) const\n{\n    __s.__do_ = __state::__accept_but_not_consume;\n    if (__greedy_ != __second)\n    {\n        __s.__node_ = this->first();\n        __init_repeat(__s);\n    }\n    else\n        __s.__node_ = this->second();\n}\n\n// __alternate\n\ntemplate <class _CharT>\nclass __alternate\n    : public __owns_two_states<_CharT>\n{\n    typedef __owns_two_states<_CharT> base;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __alternate(__owns_one_state<_CharT>* __s1,\n                         __owns_one_state<_CharT>* __s2)\n        : base(__s1, __s2) {}\n\n    virtual void __exec(__state& __s) const;\n    virtual void __exec_split(bool __second, __state& __s) const;\n};\n\ntemplate <class _CharT>\nvoid\n__alternate<_CharT>::__exec(__state& __s) const\n{\n    __s.__do_ = __state::__split;\n}\n\ntemplate <class _CharT>\nvoid\n__alternate<_CharT>::__exec_split(bool __second, __state& __s) const\n{\n    __s.__do_ = __state::__accept_but_not_consume;\n    if (__second)\n        __s.__node_ = this->second();\n    else\n        __s.__node_ = this->first();\n}\n\n// __begin_marked_subexpression\n\ntemplate <class _CharT>\nclass __begin_marked_subexpression\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    unsigned __mexp_;\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __begin_marked_subexpression(unsigned __mexp, __node<_CharT>* __s)\n        : base(__s), __mexp_(__mexp) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__begin_marked_subexpression<_CharT>::__exec(__state& __s) const\n{\n    __s.__do_ = __state::__accept_but_not_consume;\n    __s.__sub_matches_[__mexp_-1].first = __s.__current_;\n    __s.__node_ = this->first();\n}\n\n// __end_marked_subexpression\n\ntemplate <class _CharT>\nclass __end_marked_subexpression\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    unsigned __mexp_;\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __end_marked_subexpression(unsigned __mexp, __node<_CharT>* __s)\n        : base(__s), __mexp_(__mexp) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__end_marked_subexpression<_CharT>::__exec(__state& __s) const\n{\n    __s.__do_ = __state::__accept_but_not_consume;\n    __s.__sub_matches_[__mexp_-1].second = __s.__current_;\n    __s.__sub_matches_[__mexp_-1].matched = true;\n    __s.__node_ = this->first();\n}\n\n// __back_ref\n\ntemplate <class _CharT>\nclass __back_ref\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    unsigned __mexp_;\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __back_ref(unsigned __mexp, __node<_CharT>* __s)\n        : base(__s), __mexp_(__mexp) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__back_ref<_CharT>::__exec(__state& __s) const\n{\n    if (__mexp_ > __s.__sub_matches_.size())\n        __throw_regex_error<regex_constants::error_backref>();\n    sub_match<const _CharT*>& __sm = __s.__sub_matches_[__mexp_-1];\n    if (__sm.matched)\n    {\n        ptrdiff_t __len = __sm.second - __sm.first;\n        if (__s.__last_ - __s.__current_ >= __len &&\n            _VSTD::equal(__sm.first, __sm.second, __s.__current_))\n        {\n            __s.__do_ = __state::__accept_but_not_consume;\n            __s.__current_ += __len;\n            __s.__node_ = this->first();\n        }\n        else\n        {\n            __s.__do_ = __state::__reject;\n            __s.__node_ = nullptr;\n        }\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __back_ref_icase\n\ntemplate <class _CharT, class _Traits>\nclass __back_ref_icase\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    _Traits __traits_;\n    unsigned __mexp_;\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __back_ref_icase(const _Traits& __traits, unsigned __mexp,\n                              __node<_CharT>* __s)\n        : base(__s), __traits_(__traits), __mexp_(__mexp) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT, class _Traits>\nvoid\n__back_ref_icase<_CharT, _Traits>::__exec(__state& __s) const\n{\n    sub_match<const _CharT*>& __sm = __s.__sub_matches_[__mexp_-1];\n    if (__sm.matched)\n    {\n        ptrdiff_t __len = __sm.second - __sm.first;\n        if (__s.__last_ - __s.__current_ >= __len)\n        {\n            for (ptrdiff_t __i = 0; __i < __len; ++__i)\n            {\n                if (__traits_.translate_nocase(__sm.first[__i]) !=\n                                __traits_.translate_nocase(__s.__current_[__i]))\n                    goto __not_equal;\n            }\n            __s.__do_ = __state::__accept_but_not_consume;\n            __s.__current_ += __len;\n            __s.__node_ = this->first();\n        }\n        else\n        {\n            __s.__do_ = __state::__reject;\n            __s.__node_ = nullptr;\n        }\n    }\n    else\n    {\n__not_equal:\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __back_ref_collate\n\ntemplate <class _CharT, class _Traits>\nclass __back_ref_collate\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    _Traits __traits_;\n    unsigned __mexp_;\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __back_ref_collate(const _Traits& __traits, unsigned __mexp,\n                              __node<_CharT>* __s)\n        : base(__s), __traits_(__traits), __mexp_(__mexp) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT, class _Traits>\nvoid\n__back_ref_collate<_CharT, _Traits>::__exec(__state& __s) const\n{\n    sub_match<const _CharT*>& __sm = __s.__sub_matches_[__mexp_-1];\n    if (__sm.matched)\n    {\n        ptrdiff_t __len = __sm.second - __sm.first;\n        if (__s.__last_ - __s.__current_ >= __len)\n        {\n            for (ptrdiff_t __i = 0; __i < __len; ++__i)\n            {\n                if (__traits_.translate(__sm.first[__i]) !=\n                                       __traits_.translate(__s.__current_[__i]))\n                    goto __not_equal;\n            }\n            __s.__do_ = __state::__accept_but_not_consume;\n            __s.__current_ += __len;\n            __s.__node_ = this->first();\n        }\n        else\n        {\n            __s.__do_ = __state::__reject;\n            __s.__node_ = nullptr;\n        }\n    }\n    else\n    {\n__not_equal:\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __word_boundary\n\ntemplate <class _CharT, class _Traits>\nclass __word_boundary\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    _Traits __traits_;\n    bool __invert_;\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __word_boundary(const _Traits& __traits, bool __invert,\n                             __node<_CharT>* __s)\n        : base(__s), __traits_(__traits), __invert_(__invert) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT, class _Traits>\nvoid\n__word_boundary<_CharT, _Traits>::__exec(__state& __s) const\n{\n    bool __is_word_b = false;\n    if (__s.__first_ != __s.__last_)\n    {\n        if (__s.__current_ == __s.__last_)\n        {\n            if (!(__s.__flags_ & regex_constants::match_not_eow))\n            {\n                _CharT __c = __s.__current_[-1];\n                __is_word_b = __c == '_' ||\n                              __traits_.isctype(__c, ctype_base::alnum);\n            }\n        }\n        else if (__s.__current_ == __s.__first_ &&\n                !(__s.__flags_ & regex_constants::match_prev_avail))\n        {\n            if (!(__s.__flags_ & regex_constants::match_not_bow))\n            {\n                _CharT __c = *__s.__current_;\n                __is_word_b = __c == '_' ||\n                              __traits_.isctype(__c, ctype_base::alnum);\n            }\n        }\n        else\n        {\n            _CharT __c1 = __s.__current_[-1];\n            _CharT __c2 = *__s.__current_;\n            bool __is_c1_b = __c1 == '_' ||\n                             __traits_.isctype(__c1, ctype_base::alnum);\n            bool __is_c2_b = __c2 == '_' ||\n                             __traits_.isctype(__c2, ctype_base::alnum);\n            __is_word_b = __is_c1_b != __is_c2_b;\n        }\n    }\n    if (__is_word_b != __invert_)\n    {\n        __s.__do_ = __state::__accept_but_not_consume;\n        __s.__node_ = this->first();\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __l_anchor\n\ntemplate <class _CharT>\nclass __l_anchor\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __l_anchor(__node<_CharT>* __s)\n        : base(__s) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__l_anchor<_CharT>::__exec(__state& __s) const\n{\n    if (__s.__at_first_ && __s.__current_ == __s.__first_ &&\n        !(__s.__flags_ & regex_constants::match_not_bol))\n    {\n        __s.__do_ = __state::__accept_but_not_consume;\n        __s.__node_ = this->first();\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __r_anchor\n\ntemplate <class _CharT>\nclass __r_anchor\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __r_anchor(__node<_CharT>* __s)\n        : base(__s) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__r_anchor<_CharT>::__exec(__state& __s) const\n{\n    if (__s.__current_ == __s.__last_ &&\n        !(__s.__flags_ & regex_constants::match_not_eol))\n    {\n        __s.__do_ = __state::__accept_but_not_consume;\n        __s.__node_ = this->first();\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __match_any\n\ntemplate <class _CharT>\nclass __match_any\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __match_any(__node<_CharT>* __s)\n        : base(__s) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__match_any<_CharT>::__exec(__state& __s) const\n{\n    if (__s.__current_ != __s.__last_ && *__s.__current_ != 0)\n    {\n        __s.__do_ = __state::__accept_and_consume;\n        ++__s.__current_;\n        __s.__node_ = this->first();\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __match_any_but_newline\n\ntemplate <class _CharT>\nclass __match_any_but_newline\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __match_any_but_newline(__node<_CharT>* __s)\n        : base(__s) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <> _LIBCPP_FUNC_VIS void __match_any_but_newline<char>::__exec(__state&) const;\ntemplate <> _LIBCPP_FUNC_VIS void __match_any_but_newline<wchar_t>::__exec(__state&) const;\n\n// __match_char\n\ntemplate <class _CharT>\nclass __match_char\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    _CharT __c_;\n\n    __match_char(const __match_char&);\n    __match_char& operator=(const __match_char&);\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __match_char(_CharT __c, __node<_CharT>* __s)\n        : base(__s), __c_(__c) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT>\nvoid\n__match_char<_CharT>::__exec(__state& __s) const\n{\n    if (__s.__current_ != __s.__last_ && *__s.__current_ == __c_)\n    {\n        __s.__do_ = __state::__accept_and_consume;\n        ++__s.__current_;\n        __s.__node_ = this->first();\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __match_char_icase\n\ntemplate <class _CharT, class _Traits>\nclass __match_char_icase\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    _Traits __traits_;\n    _CharT __c_;\n\n    __match_char_icase(const __match_char_icase&);\n    __match_char_icase& operator=(const __match_char_icase&);\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __match_char_icase(const _Traits& __traits, _CharT __c, __node<_CharT>* __s)\n        : base(__s), __traits_(__traits), __c_(__traits.translate_nocase(__c)) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT, class _Traits>\nvoid\n__match_char_icase<_CharT, _Traits>::__exec(__state& __s) const\n{\n    if (__s.__current_ != __s.__last_ &&\n        __traits_.translate_nocase(*__s.__current_) == __c_)\n    {\n        __s.__do_ = __state::__accept_and_consume;\n        ++__s.__current_;\n        __s.__node_ = this->first();\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __match_char_collate\n\ntemplate <class _CharT, class _Traits>\nclass __match_char_collate\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    _Traits __traits_;\n    _CharT __c_;\n\n    __match_char_collate(const __match_char_collate&);\n    __match_char_collate& operator=(const __match_char_collate&);\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __match_char_collate(const _Traits& __traits, _CharT __c, __node<_CharT>* __s)\n        : base(__s), __traits_(__traits), __c_(__traits.translate(__c)) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT, class _Traits>\nvoid\n__match_char_collate<_CharT, _Traits>::__exec(__state& __s) const\n{\n    if (__s.__current_ != __s.__last_ &&\n        __traits_.translate(*__s.__current_) == __c_)\n    {\n        __s.__do_ = __state::__accept_and_consume;\n        ++__s.__current_;\n        __s.__node_ = this->first();\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\n// __bracket_expression\n\ntemplate <class _CharT, class _Traits>\nclass __bracket_expression\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n    typedef typename _Traits::string_type string_type;\n\n    _Traits __traits_;\n    vector<_CharT> __chars_;\n    vector<_CharT> __neg_chars_;\n    vector<pair<string_type, string_type> > __ranges_;\n    vector<pair<_CharT, _CharT> > __digraphs_;\n    vector<string_type> __equivalences_;\n    typename regex_traits<_CharT>::char_class_type __mask_;\n    typename regex_traits<_CharT>::char_class_type __neg_mask_;\n    bool __negate_;\n    bool __icase_;\n    bool __collate_;\n    bool __might_have_digraph_;\n\n    __bracket_expression(const __bracket_expression&);\n    __bracket_expression& operator=(const __bracket_expression&);\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __bracket_expression(const _Traits& __traits, __node<_CharT>* __s,\n                                 bool __negate, bool __icase, bool __collate)\n        : base(__s), __traits_(__traits), __mask_(), __neg_mask_(),\n          __negate_(__negate), __icase_(__icase), __collate_(__collate),\n          __might_have_digraph_(__traits_.getloc().name() != \"C\") {}\n\n    virtual void __exec(__state&) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool __negated() const {return __negate_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_char(_CharT __c)\n        {\n            if (__icase_)\n                __chars_.push_back(__traits_.translate_nocase(__c));\n            else if (__collate_)\n                __chars_.push_back(__traits_.translate(__c));\n            else\n                __chars_.push_back(__c);\n        }\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_neg_char(_CharT __c)\n        {\n            if (__icase_)\n                __neg_chars_.push_back(__traits_.translate_nocase(__c));\n            else if (__collate_)\n                __neg_chars_.push_back(__traits_.translate(__c));\n            else\n                __neg_chars_.push_back(__c);\n        }\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_range(string_type __b, string_type __e)\n        {\n            if (__collate_)\n            {\n                if (__icase_)\n                {\n                    for (size_t __i = 0; __i < __b.size(); ++__i)\n                        __b[__i] = __traits_.translate_nocase(__b[__i]);\n                    for (size_t __i = 0; __i < __e.size(); ++__i)\n                        __e[__i] = __traits_.translate_nocase(__e[__i]);\n                }\n                else\n                {\n                    for (size_t __i = 0; __i < __b.size(); ++__i)\n                        __b[__i] = __traits_.translate(__b[__i]);\n                    for (size_t __i = 0; __i < __e.size(); ++__i)\n                        __e[__i] = __traits_.translate(__e[__i]);\n                }\n                __ranges_.push_back(make_pair(\n                                  __traits_.transform(__b.begin(), __b.end()),\n                                  __traits_.transform(__e.begin(), __e.end())));\n            }\n            else\n            {\n                if (__b.size() != 1 || __e.size() != 1)\n                    __throw_regex_error<regex_constants::error_collate>();\n                if (__icase_)\n                {\n                    __b[0] = __traits_.translate_nocase(__b[0]);\n                    __e[0] = __traits_.translate_nocase(__e[0]);\n                }\n                __ranges_.push_back(make_pair(_VSTD::move(__b), _VSTD::move(__e)));\n            }\n        }\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_digraph(_CharT __c1, _CharT __c2)\n        {\n            if (__icase_)\n                __digraphs_.push_back(make_pair(__traits_.translate_nocase(__c1),\n                                                __traits_.translate_nocase(__c2)));\n            else if (__collate_)\n                __digraphs_.push_back(make_pair(__traits_.translate(__c1),\n                                                __traits_.translate(__c2)));\n            else\n                __digraphs_.push_back(make_pair(__c1, __c2));\n        }\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_equivalence(const string_type& __s)\n        {__equivalences_.push_back(__s);}\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_class(typename regex_traits<_CharT>::char_class_type __mask)\n        {__mask_ |= __mask;}\n    _LIBCPP_INLINE_VISIBILITY\n    void __add_neg_class(typename regex_traits<_CharT>::char_class_type __mask)\n        {__neg_mask_ |= __mask;}\n};\n\ntemplate <class _CharT, class _Traits>\nvoid\n__bracket_expression<_CharT, _Traits>::__exec(__state& __s) const\n{\n    bool __found = false;\n    unsigned __consumed = 0;\n    if (__s.__current_ != __s.__last_)\n    {\n        ++__consumed;\n        if (__might_have_digraph_)\n        {\n            const _CharT* __next = _VSTD::next(__s.__current_);\n            if (__next != __s.__last_)\n            {\n                pair<_CharT, _CharT> __ch2(*__s.__current_, *__next);\n                if (__icase_)\n                {\n                    __ch2.first = __traits_.translate_nocase(__ch2.first);\n                    __ch2.second = __traits_.translate_nocase(__ch2.second);\n                }\n                else if (__collate_)\n                {\n                    __ch2.first = __traits_.translate(__ch2.first);\n                    __ch2.second = __traits_.translate(__ch2.second);\n                }\n                if (!__traits_.lookup_collatename(&__ch2.first, &__ch2.first+2).empty())\n                {\n                    // __ch2 is a digraph in this locale\n                    ++__consumed;\n                    for (size_t __i = 0; __i < __digraphs_.size(); ++__i)\n                    {\n                        if (__ch2 == __digraphs_[__i])\n                        {\n                            __found = true;\n                            goto __exit;\n                        }\n                    }\n                    if (__collate_ && !__ranges_.empty())\n                    {\n                        string_type __s2 = __traits_.transform(&__ch2.first,\n                                                               &__ch2.first + 2);\n                        for (size_t __i = 0; __i < __ranges_.size(); ++__i)\n                        {\n                            if (__ranges_[__i].first <= __s2 &&\n                                __s2 <= __ranges_[__i].second)\n                            {\n                                __found = true;\n                                goto __exit;\n                            }\n                        }\n                    }\n                    if (!__equivalences_.empty())\n                    {\n                        string_type __s2 = __traits_.transform_primary(&__ch2.first,\n                                                                       &__ch2.first + 2);\n                        for (size_t __i = 0; __i < __equivalences_.size(); ++__i)\n                        {\n                            if (__s2 == __equivalences_[__i])\n                            {\n                                __found = true;\n                                goto __exit;\n                            }\n                        }\n                    }\n                    if (__traits_.isctype(__ch2.first, __mask_) &&\n                        __traits_.isctype(__ch2.second, __mask_))\n                    {\n                        __found = true;\n                        goto __exit;\n                    }\n                    if (!__traits_.isctype(__ch2.first, __neg_mask_) &&\n                        !__traits_.isctype(__ch2.second, __neg_mask_))\n                    {\n                        __found = true;\n                        goto __exit;\n                    }\n                    goto __exit;\n                }\n            }\n        }\n        // test *__s.__current_ as not a digraph\n        _CharT __ch = *__s.__current_;\n        if (__icase_)\n            __ch = __traits_.translate_nocase(__ch);\n        else if (__collate_)\n            __ch = __traits_.translate(__ch);\n        for (size_t __i = 0; __i < __chars_.size(); ++__i)\n        {\n            if (__ch == __chars_[__i])\n            {\n                __found = true;\n                goto __exit;\n            }\n        }\n        if (!__neg_chars_.empty())\n        {\n            for (size_t __i = 0; __i < __neg_chars_.size(); ++__i)\n            {\n                if (__ch == __neg_chars_[__i])\n                    goto __is_neg_char;\n            }\n            __found = true;\n            goto __exit;\n        }\n__is_neg_char:\n        if (!__ranges_.empty())\n        {\n            string_type __s2 = __collate_ ?\n                                   __traits_.transform(&__ch, &__ch + 1) :\n                                   string_type(1, __ch);\n            for (size_t __i = 0; __i < __ranges_.size(); ++__i)\n            {\n                if (__ranges_[__i].first <= __s2 && __s2 <= __ranges_[__i].second)\n                {\n                    __found = true;\n                    goto __exit;\n                }\n            }\n        }\n        if (!__equivalences_.empty())\n        {\n            string_type __s2 = __traits_.transform_primary(&__ch, &__ch + 1);\n            for (size_t __i = 0; __i < __equivalences_.size(); ++__i)\n            {\n                if (__s2 == __equivalences_[__i])\n                {\n                    __found = true;\n                    goto __exit;\n                }\n            }\n        }\n        if (__traits_.isctype(__ch, __mask_))\n        {\n            __found = true;\n            goto __exit;\n        }\n        if (__neg_mask_ && !__traits_.isctype(__ch, __neg_mask_))\n        {\n            __found = true;\n            goto __exit;\n        }\n    }\n    else\n        __found = __negate_;  // force reject\n__exit:\n    if (__found != __negate_)\n    {\n        __s.__do_ = __state::__accept_and_consume;\n        __s.__current_ += __consumed;\n        __s.__node_ = this->first();\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\ntemplate <class _CharT, class _Traits> class __lookahead;\n\ntemplate <class _CharT, class _Traits = regex_traits<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS basic_regex\n{\npublic:\n    // types:\n    typedef _CharT                              value_type;\n    typedef _Traits                             traits_type;\n    typedef typename _Traits::string_type       string_type;\n    typedef regex_constants::syntax_option_type flag_type;\n    typedef typename _Traits::locale_type       locale_type;\n\nprivate:\n    _Traits   __traits_;\n    flag_type __flags_;\n    unsigned __marked_count_;\n    unsigned __loop_count_;\n    int __open_count_;\n    shared_ptr<__empty_state<_CharT> > __start_;\n    __owns_one_state<_CharT>* __end_;\n\n    typedef _VSTD::__state<_CharT> __state;\n    typedef _VSTD::__node<_CharT> __node;\n\npublic:\n    // constants:\n    static const regex_constants::syntax_option_type icase = regex_constants::icase;\n    static const regex_constants::syntax_option_type nosubs = regex_constants::nosubs;\n    static const regex_constants::syntax_option_type optimize = regex_constants::optimize;\n    static const regex_constants::syntax_option_type collate = regex_constants::collate;\n    static const regex_constants::syntax_option_type ECMAScript = regex_constants::ECMAScript;\n    static const regex_constants::syntax_option_type basic = regex_constants::basic;\n    static const regex_constants::syntax_option_type extended = regex_constants::extended;\n    static const regex_constants::syntax_option_type awk = regex_constants::awk;\n    static const regex_constants::syntax_option_type grep = regex_constants::grep;\n    static const regex_constants::syntax_option_type egrep = regex_constants::egrep;\n\n    // construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex()\n        : __flags_(), __marked_count_(0), __loop_count_(0), __open_count_(0),\n          __end_(0)\n        {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit basic_regex(const value_type* __p, flag_type __f = regex_constants::ECMAScript)\n        : __flags_(__f), __marked_count_(0), __loop_count_(0), __open_count_(0),\n          __end_(0)\n        {__parse(__p, __p + __traits_.length(__p));}\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex(const value_type* __p, size_t __len, flag_type __f = regex_constants::ECMAScript)\n        : __flags_(__f), __marked_count_(0), __loop_count_(0), __open_count_(0),\n          __end_(0)\n        {__parse(__p, __p + __len);}\n//     basic_regex(const basic_regex&) = default;\n//     basic_regex(basic_regex&&) = default;\n    template <class _ST, class _SA>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit basic_regex(const basic_string<value_type, _ST, _SA>& __p,\n                             flag_type __f = regex_constants::ECMAScript)\n        : __flags_(__f), __marked_count_(0), __loop_count_(0), __open_count_(0),\n          __end_(0)\n        {__parse(__p.begin(), __p.end());}\n    template <class _ForwardIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_regex(_ForwardIterator __first, _ForwardIterator __last,\n                    flag_type __f = regex_constants::ECMAScript)\n        : __flags_(__f), __marked_count_(0), __loop_count_(0), __open_count_(0),\n          __end_(0)\n        {__parse(__first, __last);}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex(initializer_list<value_type> __il,\n                flag_type __f = regex_constants::ECMAScript)\n        : __flags_(__f), __marked_count_(0), __loop_count_(0), __open_count_(0),\n          __end_(0)\n        {__parse(__il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n//    ~basic_regex() = default;\n\n//     basic_regex& operator=(const basic_regex&) = default;\n//     basic_regex& operator=(basic_regex&&) = default;\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex& operator=(const value_type* __p)\n        {return assign(__p);}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex& operator=(initializer_list<value_type> __il)\n        {return assign(__il);}\n#endif  // _LIBCPP_CXX03_LANG\n    template <class _ST, class _SA>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_regex& operator=(const basic_string<value_type, _ST, _SA>& __p)\n        {return assign(__p);}\n\n    // assign:\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex& assign(const basic_regex& __that)\n        {return *this = __that;}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex& assign(basic_regex&& __that) _NOEXCEPT\n        {return *this = _VSTD::move(__that);}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex& assign(const value_type* __p, flag_type __f = regex_constants::ECMAScript)\n        {return assign(__p, __p + __traits_.length(__p), __f);}\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex& assign(const value_type* __p, size_t __len, flag_type __f)\n        {return assign(__p, __p + __len, __f);}\n    template <class _ST, class _SA>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_regex& assign(const basic_string<value_type, _ST, _SA>& __s,\n                            flag_type __f = regex_constants::ECMAScript)\n            {return assign(__s.begin(), __s.end(), __f);}\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n             __is_input_iterator  <_InputIterator>::value &&\n            !__is_forward_iterator<_InputIterator>::value,\n            basic_regex&\n        >::type\n        assign(_InputIterator __first, _InputIterator __last,\n                            flag_type __f = regex_constants::ECMAScript)\n        {\n            basic_string<_CharT> __t(__first, __last);\n            return assign(__t.begin(), __t.end(), __f);\n        }\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    void __member_init(flag_type __f)\n    {\n        __flags_ = __f;\n        __marked_count_ = 0;\n        __loop_count_ = 0;\n        __open_count_ = 0;\n        __end_ = nullptr;\n    }\npublic:\n\n    template <class _ForwardIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value,\n            basic_regex&\n        >::type\n        assign(_ForwardIterator __first, _ForwardIterator __last,\n                            flag_type __f = regex_constants::ECMAScript)\n        {\n            return assign(basic_regex(__first, __last, __f));\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_regex& assign(initializer_list<value_type> __il,\n                        flag_type __f = regex_constants::ECMAScript)\n        {return assign(__il.begin(), __il.end(), __f);}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n    // const operations:\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned mark_count() const {return __marked_count_;}\n    _LIBCPP_INLINE_VISIBILITY\n    flag_type flags() const {return __flags_;}\n\n    // locale:\n    _LIBCPP_INLINE_VISIBILITY\n    locale_type imbue(locale_type __loc)\n    {\n        __member_init(ECMAScript);\n        __start_.reset();\n        return __traits_.imbue(__loc);\n    }\n    _LIBCPP_INLINE_VISIBILITY\n    locale_type getloc() const {return __traits_.getloc();}\n\n    // swap:\n    void swap(basic_regex& __r);\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    unsigned __loop_count() const {return __loop_count_;}\n\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_basic_reg_exp(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_RE_expression(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_simple_RE(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_nondupl_RE(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_one_char_or_coll_elem_RE(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_Back_open_paren(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_Back_close_paren(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_Back_open_brace(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_Back_close_brace(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_BACKREF(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_ORD_CHAR(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_QUOTED_CHAR(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_RE_dupl_symbol(_ForwardIterator __first, _ForwardIterator __last,\n                               __owns_one_state<_CharT>* __s,\n                               unsigned __mexp_begin, unsigned __mexp_end);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_ERE_dupl_symbol(_ForwardIterator __first, _ForwardIterator __last,\n                                __owns_one_state<_CharT>* __s,\n                                unsigned __mexp_begin, unsigned __mexp_end);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_bracket_expression(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_follow_list(_ForwardIterator __first, _ForwardIterator __last,\n                            __bracket_expression<_CharT, _Traits>* __ml);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_expression_term(_ForwardIterator __first, _ForwardIterator __last,\n                                __bracket_expression<_CharT, _Traits>* __ml);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_equivalence_class(_ForwardIterator __first, _ForwardIterator __last,\n                                  __bracket_expression<_CharT, _Traits>* __ml);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_character_class(_ForwardIterator __first, _ForwardIterator __last,\n                                __bracket_expression<_CharT, _Traits>* __ml);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_collating_symbol(_ForwardIterator __first, _ForwardIterator __last,\n                                 basic_string<_CharT>& __col_sym);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_DUP_COUNT(_ForwardIterator __first, _ForwardIterator __last, int& __c);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_extended_reg_exp(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_ERE_branch(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_ERE_expression(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_one_char_or_coll_elem_ERE(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_ORD_CHAR_ERE(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_QUOTED_CHAR_ERE(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_ecma_exp(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_alternative(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_term(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_assertion(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_atom(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_atom_escape(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_decimal_escape(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_character_class_escape(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_character_escape(_ForwardIterator __first, _ForwardIterator __last,\n                                 basic_string<_CharT>* __str = nullptr);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_pattern_character(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_grep(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_egrep(_ForwardIterator __first, _ForwardIterator __last);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_class_escape(_ForwardIterator __first, _ForwardIterator __last,\n                          basic_string<_CharT>& __str,\n                          __bracket_expression<_CharT, _Traits>* __ml);\n    template <class _ForwardIterator>\n        _ForwardIterator\n        __parse_awk_escape(_ForwardIterator __first, _ForwardIterator __last,\n                          basic_string<_CharT>* __str = nullptr);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __push_l_anchor();\n    void __push_r_anchor();\n    void __push_match_any();\n    void __push_match_any_but_newline();\n    _LIBCPP_INLINE_VISIBILITY\n    void __push_greedy_inf_repeat(size_t __min, __owns_one_state<_CharT>* __s,\n                                  unsigned __mexp_begin = 0, unsigned __mexp_end = 0)\n        {__push_loop(__min, numeric_limits<size_t>::max(), __s,\n                     __mexp_begin, __mexp_end);}\n    _LIBCPP_INLINE_VISIBILITY\n    void __push_nongreedy_inf_repeat(size_t __min, __owns_one_state<_CharT>* __s,\n                                  unsigned __mexp_begin = 0, unsigned __mexp_end = 0)\n        {__push_loop(__min, numeric_limits<size_t>::max(), __s,\n                     __mexp_begin, __mexp_end, false);}\n    void __push_loop(size_t __min, size_t __max, __owns_one_state<_CharT>* __s,\n                     size_t __mexp_begin = 0, size_t __mexp_end = 0,\n                     bool __greedy = true);\n    __bracket_expression<_CharT, _Traits>* __start_matching_list(bool __negate);\n    void __push_char(value_type __c);\n    void __push_back_ref(int __i);\n    void __push_alternation(__owns_one_state<_CharT>* __sa,\n                            __owns_one_state<_CharT>* __sb);\n    void __push_begin_marked_subexpression();\n    void __push_end_marked_subexpression(unsigned);\n    void __push_empty();\n    void __push_word_boundary(bool);\n    void __push_lookahead(const basic_regex&, bool, unsigned);\n\n    template <class _Allocator>\n        bool\n        __search(const _CharT* __first, const _CharT* __last,\n                 match_results<const _CharT*, _Allocator>& __m,\n                 regex_constants::match_flag_type __flags) const;\n\n    template <class _Allocator>\n        bool\n        __match_at_start(const _CharT* __first, const _CharT* __last,\n                 match_results<const _CharT*, _Allocator>& __m,\n                 regex_constants::match_flag_type __flags, bool) const;\n    template <class _Allocator>\n        bool\n        __match_at_start_ecma(const _CharT* __first, const _CharT* __last,\n                 match_results<const _CharT*, _Allocator>& __m,\n                 regex_constants::match_flag_type __flags, bool) const;\n    template <class _Allocator>\n        bool\n        __match_at_start_posix_nosubs(const _CharT* __first, const _CharT* __last,\n                 match_results<const _CharT*, _Allocator>& __m,\n                 regex_constants::match_flag_type __flags, bool) const;\n    template <class _Allocator>\n        bool\n        __match_at_start_posix_subs(const _CharT* __first, const _CharT* __last,\n                 match_results<const _CharT*, _Allocator>& __m,\n                 regex_constants::match_flag_type __flags, bool) const;\n\n    template <class _Bp, class _Ap, class _Cp, class _Tp>\n    friend\n    bool\n    regex_search(_Bp, _Bp, match_results<_Bp, _Ap>&, const basic_regex<_Cp, _Tp>&,\n                 regex_constants::match_flag_type);\n\n    template <class _Ap, class _Cp, class _Tp>\n    friend\n    bool\n    regex_search(const _Cp*, const _Cp*, match_results<const _Cp*, _Ap>&,\n                 const basic_regex<_Cp, _Tp>&, regex_constants::match_flag_type);\n\n    template <class _Bp, class _Cp, class _Tp>\n    friend\n    bool\n    regex_search(_Bp, _Bp, const basic_regex<_Cp, _Tp>&,\n                 regex_constants::match_flag_type);\n\n    template <class _Cp, class _Tp>\n    friend\n    bool\n    regex_search(const _Cp*, const _Cp*,\n                 const basic_regex<_Cp, _Tp>&, regex_constants::match_flag_type);\n\n    template <class _Cp, class _Ap, class _Tp>\n    friend\n    bool\n    regex_search(const _Cp*, match_results<const _Cp*, _Ap>&, const basic_regex<_Cp, _Tp>&,\n                 regex_constants::match_flag_type);\n\n    template <class _ST, class _SA, class _Cp, class _Tp>\n    friend\n    bool\n    regex_search(const basic_string<_Cp, _ST, _SA>& __s,\n                 const basic_regex<_Cp, _Tp>& __e,\n                 regex_constants::match_flag_type __flags);\n\n    template <class _ST, class _SA, class _Ap, class _Cp, class _Tp>\n    friend\n    bool\n    regex_search(const basic_string<_Cp, _ST, _SA>& __s,\n                 match_results<typename basic_string<_Cp, _ST, _SA>::const_iterator, _Ap>&,\n                 const basic_regex<_Cp, _Tp>& __e,\n                 regex_constants::match_flag_type __flags);\n\n    template <class _Iter, class _Ap, class _Cp, class _Tp>\n    friend\n    bool\n    regex_search(__wrap_iter<_Iter> __first,\n                 __wrap_iter<_Iter> __last,\n                 match_results<__wrap_iter<_Iter>, _Ap>& __m,\n                 const basic_regex<_Cp, _Tp>& __e,\n                 regex_constants::match_flag_type __flags);\n\n    template <class, class> friend class __lookahead;\n};\n\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::icase;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::nosubs;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::optimize;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::collate;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::ECMAScript;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::basic;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::extended;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::awk;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::grep;\ntemplate <class _CharT, class _Traits>\n    const regex_constants::syntax_option_type basic_regex<_CharT, _Traits>::egrep;\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::swap(basic_regex& __r)\n{\n    using _VSTD::swap;\n    swap(__traits_, __r.__traits_);\n    swap(__flags_, __r.__flags_);\n    swap(__marked_count_, __r.__marked_count_);\n    swap(__loop_count_, __r.__loop_count_);\n    swap(__open_count_, __r.__open_count_);\n    swap(__start_, __r.__start_);\n    swap(__end_, __r.__end_);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_regex<_CharT, _Traits>& __x, basic_regex<_CharT, _Traits>& __y)\n{\n    return __x.swap(__y);\n}\n\n// __lookahead\n\ntemplate <class _CharT, class _Traits>\nclass __lookahead\n    : public __owns_one_state<_CharT>\n{\n    typedef __owns_one_state<_CharT> base;\n\n    basic_regex<_CharT, _Traits> __exp_;\n    unsigned __mexp_;\n    bool __invert_;\n\n    __lookahead(const __lookahead&);\n    __lookahead& operator=(const __lookahead&);\npublic:\n    typedef _VSTD::__state<_CharT> __state;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __lookahead(const basic_regex<_CharT, _Traits>& __exp, bool __invert, __node<_CharT>* __s, unsigned __mexp)\n        : base(__s), __exp_(__exp), __mexp_(__mexp), __invert_(__invert) {}\n\n    virtual void __exec(__state&) const;\n};\n\ntemplate <class _CharT, class _Traits>\nvoid\n__lookahead<_CharT, _Traits>::__exec(__state& __s) const\n{\n    match_results<const _CharT*> __m;\n    __m.__init(1 + __exp_.mark_count(), __s.__current_, __s.__last_);\n    bool __matched = __exp_.__match_at_start_ecma(\n        __s.__current_, __s.__last_,\n        __m,\n        (__s.__flags_ | regex_constants::match_continuous) &\n        ~regex_constants::__full_match,\n        __s.__at_first_ && __s.__current_ == __s.__first_);\n    if (__matched != __invert_)\n    {\n        __s.__do_ = __state::__accept_but_not_consume;\n        __s.__node_ = this->first();\n        for (unsigned __i = 1; __i < __m.size(); ++__i) {\n            __s.__sub_matches_[__mexp_ + __i - 1] = __m.__matches_[__i];\n        }\n    }\n    else\n    {\n        __s.__do_ = __state::__reject;\n        __s.__node_ = nullptr;\n    }\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse(_ForwardIterator __first,\n                                      _ForwardIterator __last)\n{\n    {\n        unique_ptr<__node> __h(new __end_state<_CharT>);\n        __start_.reset(new __empty_state<_CharT>(__h.get()));\n        __h.release();\n        __end_ = __start_.get();\n    }\n    switch (__flags_ & 0x1F0)\n    {\n    case ECMAScript:\n        __first = __parse_ecma_exp(__first, __last);\n        break;\n    case basic:\n        __first = __parse_basic_reg_exp(__first, __last);\n        break;\n    case extended:\n    case awk:\n        __first = __parse_extended_reg_exp(__first, __last);\n        break;\n    case grep:\n        __first = __parse_grep(__first, __last);\n        break;\n    case egrep:\n        __first = __parse_egrep(__first, __last);\n        break;\n    default:\n        __throw_regex_error<regex_constants::__re_err_grammar>();\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_basic_reg_exp(_ForwardIterator __first,\n                                                    _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        if (*__first == '^')\n        {\n            __push_l_anchor();\n            ++__first;\n        }\n        if (__first != __last)\n        {\n            __first = __parse_RE_expression(__first, __last);\n            if (__first != __last)\n            {\n                _ForwardIterator __temp = _VSTD::next(__first);\n                if (__temp == __last && *__first == '$')\n                {\n                    __push_r_anchor();\n                    ++__first;\n                }\n            }\n        }\n        if (__first != __last)\n            __throw_regex_error<regex_constants::__re_err_empty>();\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_extended_reg_exp(_ForwardIterator __first,\n                                                       _ForwardIterator __last)\n{\n    __owns_one_state<_CharT>* __sa = __end_;\n    _ForwardIterator __temp = __parse_ERE_branch(__first, __last);\n    if (__temp == __first)\n        __throw_regex_error<regex_constants::__re_err_empty>();\n    __first = __temp;\n    while (__first != __last && *__first == '|')\n    {\n        __owns_one_state<_CharT>* __sb = __end_;\n        __temp = __parse_ERE_branch(++__first, __last);\n        if (__temp == __first)\n            __throw_regex_error<regex_constants::__re_err_empty>();\n        __push_alternation(__sa, __sb);\n        __first = __temp;\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_ERE_branch(_ForwardIterator __first,\n                                                 _ForwardIterator __last)\n{\n    _ForwardIterator __temp = __parse_ERE_expression(__first, __last);\n    if (__temp == __first)\n        __throw_regex_error<regex_constants::__re_err_empty>();\n    do\n    {\n        __first = __temp;\n        __temp = __parse_ERE_expression(__first, __last);\n    } while (__temp != __first);\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_ERE_expression(_ForwardIterator __first,\n                                                     _ForwardIterator __last)\n{\n    __owns_one_state<_CharT>* __e = __end_;\n    unsigned __mexp_begin = __marked_count_;\n    _ForwardIterator __temp = __parse_one_char_or_coll_elem_ERE(__first, __last);\n    if (__temp == __first && __temp != __last)\n    {\n        switch (*__temp)\n        {\n        case '^':\n            __push_l_anchor();\n            ++__temp;\n            break;\n        case '$':\n            __push_r_anchor();\n            ++__temp;\n            break;\n        case '(':\n            __push_begin_marked_subexpression();\n            unsigned __temp_count = __marked_count_;\n            ++__open_count_;\n            __temp = __parse_extended_reg_exp(++__temp, __last);\n            if (__temp == __last || *__temp != ')')\n                __throw_regex_error<regex_constants::error_paren>();\n            __push_end_marked_subexpression(__temp_count);\n            --__open_count_;\n            ++__temp;\n            break;\n        }\n    }\n    if (__temp != __first)\n        __temp = __parse_ERE_dupl_symbol(__temp, __last, __e, __mexp_begin+1,\n                                         __marked_count_+1);\n    __first = __temp;\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_RE_expression(_ForwardIterator __first,\n                                                    _ForwardIterator __last)\n{\n    while (true)\n    {\n        _ForwardIterator __temp = __parse_simple_RE(__first, __last);\n        if (__temp == __first)\n            break;\n        __first = __temp;\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_simple_RE(_ForwardIterator __first,\n                                                _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        __owns_one_state<_CharT>* __e = __end_;\n        unsigned __mexp_begin = __marked_count_;\n        _ForwardIterator __temp = __parse_nondupl_RE(__first, __last);\n        if (__temp != __first)\n            __first = __parse_RE_dupl_symbol(__temp, __last, __e,\n                                             __mexp_begin+1, __marked_count_+1);\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_nondupl_RE(_ForwardIterator __first,\n                                                 _ForwardIterator __last)\n{\n    _ForwardIterator __temp = __first;\n    __first = __parse_one_char_or_coll_elem_RE(__first, __last);\n    if (__temp == __first)\n    {\n        __temp = __parse_Back_open_paren(__first, __last);\n        if (__temp != __first)\n        {\n            __push_begin_marked_subexpression();\n            unsigned __temp_count = __marked_count_;\n            __first = __parse_RE_expression(__temp, __last);\n            __temp = __parse_Back_close_paren(__first, __last);\n            if (__temp == __first)\n                __throw_regex_error<regex_constants::error_paren>();\n            __push_end_marked_subexpression(__temp_count);\n            __first = __temp;\n        }\n        else\n            __first = __parse_BACKREF(__first, __last);\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_one_char_or_coll_elem_RE(\n                                                       _ForwardIterator __first,\n                                                       _ForwardIterator __last)\n{\n    _ForwardIterator __temp = __parse_ORD_CHAR(__first, __last);\n    if (__temp == __first)\n    {\n        __temp = __parse_QUOTED_CHAR(__first, __last);\n        if (__temp == __first)\n        {\n            if (__temp != __last && *__temp == '.')\n            {\n                __push_match_any();\n                ++__temp;\n            }\n            else\n                __temp = __parse_bracket_expression(__first, __last);\n        }\n    }\n    __first = __temp;\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_one_char_or_coll_elem_ERE(\n                                                       _ForwardIterator __first,\n                                                       _ForwardIterator __last)\n{\n    _ForwardIterator __temp = __parse_ORD_CHAR_ERE(__first, __last);\n    if (__temp == __first)\n    {\n        __temp = __parse_QUOTED_CHAR_ERE(__first, __last);\n        if (__temp == __first)\n        {\n            if (__temp != __last && *__temp == '.')\n            {\n                __push_match_any();\n                ++__temp;\n            }\n            else\n                __temp = __parse_bracket_expression(__first, __last);\n        }\n    }\n    __first = __temp;\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_Back_open_paren(_ForwardIterator __first,\n                                                      _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        if (__temp != __last)\n        {\n            if (*__first == '\\\\' && *__temp == '(')\n                __first = ++__temp;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_Back_close_paren(_ForwardIterator __first,\n                                                       _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        if (__temp != __last)\n        {\n            if (*__first == '\\\\' && *__temp == ')')\n                __first = ++__temp;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_Back_open_brace(_ForwardIterator __first,\n                                                      _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        if (__temp != __last)\n        {\n            if (*__first == '\\\\' && *__temp == '{')\n                __first = ++__temp;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_Back_close_brace(_ForwardIterator __first,\n                                                       _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        if (__temp != __last)\n        {\n            if (*__first == '\\\\' && *__temp == '}')\n                __first = ++__temp;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_BACKREF(_ForwardIterator __first,\n                                              _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        if (__temp != __last)\n        {\n            if (*__first == '\\\\')\n            { \n                int __val = __traits_.value(*__temp, 10);\n                if (__val >= 1 && __val <= 9)\n                {\n                    __push_back_ref(__val);\n                    __first = ++__temp;\n                }\n            }\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_ORD_CHAR(_ForwardIterator __first,\n                                               _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        if (__temp == __last && *__first == '$')\n            return __first;\n        // Not called inside a bracket\n        if (*__first == '.' || *__first == '\\\\' || *__first == '[')\n            return __first;\n        __push_char(*__first);\n        ++__first;\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_ORD_CHAR_ERE(_ForwardIterator __first,\n                                                   _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        switch (*__first)\n        {\n        case '^':\n        case '.':\n        case '[':\n        case '$':\n        case '(':\n        case '|':\n        case '*':\n        case '+':\n        case '?':\n        case '{':\n        case '\\\\':\n            break;\n        case ')':\n            if (__open_count_ == 0)\n            {\n                __push_char(*__first);\n                ++__first;\n            }\n            break;\n        default:\n            __push_char(*__first);\n            ++__first;\n            break;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_QUOTED_CHAR(_ForwardIterator __first,\n                                                  _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        if (__temp != __last)\n        {\n            if (*__first == '\\\\')\n            {\n                switch (*__temp)\n                {\n                case '^':\n                case '.':\n                case '*':\n                case '[':\n                case '$':\n                case '\\\\':\n                    __push_char(*__temp);\n                    __first = ++__temp;\n                    break;\n                }\n            }\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_QUOTED_CHAR_ERE(_ForwardIterator __first,\n                                                      _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        if (__temp != __last)\n        {\n            if (*__first == '\\\\')\n            {\n                switch (*__temp)\n                {\n                case '^':\n                case '.':\n                case '*':\n                case '[':\n                case '$':\n                case '\\\\':\n                case '(':\n                case ')':\n                case '|':\n                case '+':\n                case '?':\n                case '{':\n                case '}':\n                    __push_char(*__temp);\n                    __first = ++__temp;\n                    break;\n                default:\n                    if ((__flags_ & 0x1F0) == awk)\n                        __first = __parse_awk_escape(++__first, __last);\n                    break;\n                }\n            }\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_RE_dupl_symbol(_ForwardIterator __first,\n                                                     _ForwardIterator __last,\n                                                     __owns_one_state<_CharT>* __s,\n                                                     unsigned __mexp_begin,\n                                                     unsigned __mexp_end)\n{\n    if (__first != __last)\n    {\n        if (*__first == '*')\n        {\n            __push_greedy_inf_repeat(0, __s, __mexp_begin, __mexp_end);\n            ++__first;\n        }\n        else\n        {\n            _ForwardIterator __temp = __parse_Back_open_brace(__first, __last);\n            if (__temp != __first)\n            {\n                int __min = 0;\n                __first = __temp;\n                __temp = __parse_DUP_COUNT(__first, __last, __min);\n                if (__temp == __first)\n                    __throw_regex_error<regex_constants::error_badbrace>();\n                __first = __temp;\n                if (__first == __last)\n                    __throw_regex_error<regex_constants::error_brace>();\n                if (*__first != ',')\n                {\n                    __temp = __parse_Back_close_brace(__first, __last);\n                    if (__temp == __first)\n                        __throw_regex_error<regex_constants::error_brace>();\n                    __push_loop(__min, __min, __s, __mexp_begin, __mexp_end,\n                                    true);\n                    __first = __temp;\n                }\n                else\n                {\n                    ++__first;  // consume ','\n                    int __max = -1;\n                    __first = __parse_DUP_COUNT(__first, __last, __max);\n                    __temp = __parse_Back_close_brace(__first, __last);\n                    if (__temp == __first)\n                        __throw_regex_error<regex_constants::error_brace>();\n                    if (__max == -1)\n                        __push_greedy_inf_repeat(__min, __s, __mexp_begin, __mexp_end);\n                    else\n                    {\n                        if (__max < __min)\n                            __throw_regex_error<regex_constants::error_badbrace>();\n                        __push_loop(__min, __max, __s, __mexp_begin, __mexp_end,\n                                    true);\n                    }\n                    __first = __temp;\n                }\n            }\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_ERE_dupl_symbol(_ForwardIterator __first,\n                                                      _ForwardIterator __last,\n                                                      __owns_one_state<_CharT>* __s,\n                                                      unsigned __mexp_begin,\n                                                      unsigned __mexp_end)\n{\n    if (__first != __last)\n    {\n        unsigned __grammar = __flags_ & 0x1F0;\n        switch (*__first)\n        {\n        case '*':\n            ++__first;\n            if (__grammar == ECMAScript && __first != __last && *__first == '?')\n            {\n                ++__first;\n                __push_nongreedy_inf_repeat(0, __s, __mexp_begin, __mexp_end);\n            }\n            else\n                __push_greedy_inf_repeat(0, __s, __mexp_begin, __mexp_end);\n            break;\n        case '+':\n            ++__first;\n            if (__grammar == ECMAScript && __first != __last && *__first == '?')\n            {\n                ++__first;\n                __push_nongreedy_inf_repeat(1, __s, __mexp_begin, __mexp_end);\n            }\n            else\n                __push_greedy_inf_repeat(1, __s, __mexp_begin, __mexp_end);\n            break;\n        case '?':\n            ++__first;\n            if (__grammar == ECMAScript && __first != __last && *__first == '?')\n            {\n                ++__first;\n                __push_loop(0, 1, __s, __mexp_begin, __mexp_end, false);\n            }\n            else\n                __push_loop(0, 1, __s, __mexp_begin, __mexp_end);\n            break;\n        case '{':\n            {\n                int __min;\n                _ForwardIterator __temp = __parse_DUP_COUNT(++__first, __last, __min);\n                if (__temp == __first)\n                    __throw_regex_error<regex_constants::error_badbrace>();\n                __first = __temp;\n                if (__first == __last)\n                    __throw_regex_error<regex_constants::error_brace>();\n                switch (*__first)\n                {\n                case '}':\n                    ++__first;\n                    if (__grammar == ECMAScript && __first != __last && *__first == '?')\n                    {\n                        ++__first;\n                        __push_loop(__min, __min, __s, __mexp_begin, __mexp_end, false);\n                    }\n                    else\n                        __push_loop(__min, __min, __s, __mexp_begin, __mexp_end);\n                    break;\n                case ',':\n                    ++__first;\n                    if (__first == __last)\n                        __throw_regex_error<regex_constants::error_badbrace>();\n                    if (*__first == '}')\n                    {\n                        ++__first;\n                        if (__grammar == ECMAScript && __first != __last && *__first == '?')\n                        {\n                            ++__first;\n                            __push_nongreedy_inf_repeat(__min, __s, __mexp_begin, __mexp_end);\n                        }\n                        else\n                            __push_greedy_inf_repeat(__min, __s, __mexp_begin, __mexp_end);\n                    }\n                    else\n                    {\n                        int __max = -1;\n                        __temp = __parse_DUP_COUNT(__first, __last, __max);\n                        if (__temp == __first)\n                            __throw_regex_error<regex_constants::error_brace>();\n                        __first = __temp;\n                        if (__first == __last || *__first != '}')\n                            __throw_regex_error<regex_constants::error_brace>();\n                        ++__first;\n                        if (__max < __min)\n                            __throw_regex_error<regex_constants::error_badbrace>();\n                        if (__grammar == ECMAScript && __first != __last && *__first == '?')\n                        {\n                            ++__first;\n                            __push_loop(__min, __max, __s, __mexp_begin, __mexp_end, false);\n                        }\n                        else\n                            __push_loop(__min, __max, __s, __mexp_begin, __mexp_end);\n                    }\n                    break;\n                default:\n                    __throw_regex_error<regex_constants::error_badbrace>();\n                }\n            }\n            break;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_bracket_expression(_ForwardIterator __first,\n                                                         _ForwardIterator __last)\n{\n    if (__first != __last && *__first == '[')\n    {\n        ++__first;\n        if (__first == __last)\n            __throw_regex_error<regex_constants::error_brack>();\n        bool __negate = false;\n        if (*__first == '^')\n        {\n            ++__first;\n            __negate = true;\n        }\n        __bracket_expression<_CharT, _Traits>* __ml = __start_matching_list(__negate);\n        // __ml owned by *this\n        if (__first == __last)\n            __throw_regex_error<regex_constants::error_brack>();\n        if ((__flags_ & 0x1F0) != ECMAScript && *__first == ']')\n        {\n            __ml->__add_char(']');\n            ++__first;\n        }\n        __first = __parse_follow_list(__first, __last, __ml);\n        if (__first == __last)\n            __throw_regex_error<regex_constants::error_brack>();\n        if (*__first == '-')\n        {\n            __ml->__add_char('-');\n            ++__first;\n        }\n        if (__first == __last || *__first != ']')\n            __throw_regex_error<regex_constants::error_brack>();\n        ++__first;\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_follow_list(_ForwardIterator __first,\n                                    _ForwardIterator __last,\n                                    __bracket_expression<_CharT, _Traits>* __ml)\n{\n    if (__first != __last)\n    {\n        while (true)\n        {\n            _ForwardIterator __temp = __parse_expression_term(__first, __last,\n                                                              __ml);\n            if (__temp == __first)\n                break;\n            __first = __temp;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_expression_term(_ForwardIterator __first,\n                                    _ForwardIterator __last,\n                                    __bracket_expression<_CharT, _Traits>* __ml)\n{\n    if (__first != __last && *__first != ']')\n    {\n        _ForwardIterator __temp = _VSTD::next(__first);\n        basic_string<_CharT> __start_range;\n        if (__temp != __last && *__first == '[')\n        {\n            if (*__temp == '=')\n                return __parse_equivalence_class(++__temp, __last, __ml);\n            else if (*__temp == ':')\n                return __parse_character_class(++__temp, __last, __ml);\n            else if (*__temp == '.')\n                __first = __parse_collating_symbol(++__temp, __last, __start_range);\n        }\n        unsigned __grammar = __flags_ & 0x1F0;\n        if (__start_range.empty())\n        {\n            if ((__grammar == ECMAScript || __grammar == awk) && *__first == '\\\\')\n            {\n                if (__grammar == ECMAScript)\n                    __first = __parse_class_escape(++__first, __last, __start_range, __ml);\n                else\n                    __first = __parse_awk_escape(++__first, __last, &__start_range);\n            }\n            else\n            {\n                __start_range = *__first;\n                ++__first;\n            }\n        }\n        if (__first != __last && *__first != ']')\n        {\n            __temp = _VSTD::next(__first);\n            if (__temp != __last && *__first == '-' && *__temp != ']')\n            {\n                // parse a range\n                basic_string<_CharT> __end_range;\n                __first = __temp;\n                ++__temp;\n                if (__temp != __last && *__first == '[' && *__temp == '.')\n                    __first = __parse_collating_symbol(++__temp, __last, __end_range);\n                else\n                {\n                    if ((__grammar == ECMAScript || __grammar == awk) && *__first == '\\\\')\n                    {\n                        if (__grammar == ECMAScript)\n                            __first = __parse_class_escape(++__first, __last,\n                                                           __end_range, __ml);\n                        else\n                            __first = __parse_awk_escape(++__first, __last,\n                                                         &__end_range);\n                    }\n                    else\n                    {\n                        __end_range = *__first;\n                        ++__first;\n                    }\n                }\n                __ml->__add_range(_VSTD::move(__start_range), _VSTD::move(__end_range));\n            }\n            else if (!__start_range.empty())\n            {\n                if (__start_range.size() == 1)\n                    __ml->__add_char(__start_range[0]);\n                else\n                    __ml->__add_digraph(__start_range[0], __start_range[1]);\n            }\n        }\n        else if (!__start_range.empty())\n        {\n            if (__start_range.size() == 1)\n                __ml->__add_char(__start_range[0]);\n            else\n                __ml->__add_digraph(__start_range[0], __start_range[1]);\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_class_escape(_ForwardIterator __first,\n                          _ForwardIterator __last,\n                          basic_string<_CharT>& __str,\n                          __bracket_expression<_CharT, _Traits>* __ml)\n{\n    if (__first == __last)\n        __throw_regex_error<regex_constants::error_escape>();\n    switch (*__first)\n    {\n    case 0:\n        __str = *__first;\n        return ++__first;\n    case 'b':\n        __str = _CharT(8);\n        return ++__first;\n    case 'd':\n        __ml->__add_class(ctype_base::digit);\n        return ++__first;\n    case 'D':\n        __ml->__add_neg_class(ctype_base::digit);\n        return ++__first;\n    case 's':\n        __ml->__add_class(ctype_base::space);\n        return ++__first;\n    case 'S':\n        __ml->__add_neg_class(ctype_base::space);\n        return ++__first;\n    case 'w':\n        __ml->__add_class(ctype_base::alnum);\n        __ml->__add_char('_');\n        return ++__first;\n    case 'W':\n        __ml->__add_neg_class(ctype_base::alnum);\n        __ml->__add_neg_char('_');\n        return ++__first;\n    }\n    __first = __parse_character_escape(__first, __last, &__str);\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_awk_escape(_ForwardIterator __first,\n                          _ForwardIterator __last,\n                          basic_string<_CharT>* __str)\n{\n    if (__first == __last)\n        __throw_regex_error<regex_constants::error_escape>();\n    switch (*__first)\n    {\n    case '\\\\':\n    case '\"':\n    case '/':\n        if (__str)\n            *__str = *__first;\n        else\n            __push_char(*__first);\n        return ++__first;\n    case 'a':\n        if (__str)\n            *__str = _CharT(7);\n        else\n            __push_char(_CharT(7));\n        return ++__first;\n    case 'b':\n        if (__str)\n            *__str = _CharT(8);\n        else\n            __push_char(_CharT(8));\n        return ++__first;\n    case 'f':\n        if (__str)\n            *__str = _CharT(0xC);\n        else\n            __push_char(_CharT(0xC));\n        return ++__first;\n    case 'n':\n        if (__str)\n            *__str = _CharT(0xA);\n        else\n            __push_char(_CharT(0xA));\n        return ++__first;\n    case 'r':\n        if (__str)\n            *__str = _CharT(0xD);\n        else\n            __push_char(_CharT(0xD));\n        return ++__first;\n    case 't':\n        if (__str)\n            *__str = _CharT(0x9);\n        else\n            __push_char(_CharT(0x9));\n        return ++__first;\n    case 'v':\n        if (__str)\n            *__str = _CharT(0xB);\n        else\n            __push_char(_CharT(0xB));\n        return ++__first;\n    }\n    if ('0' <= *__first && *__first <= '7')\n    {\n        unsigned __val = *__first - '0';\n        if (++__first != __last && ('0' <= *__first && *__first <= '7'))\n        {\n            __val = 8 * __val + *__first - '0';\n            if (++__first != __last && ('0' <= *__first && *__first <= '7'))\n                __val = 8 * __val + *__first++ - '0';\n        }\n        if (__str)\n            *__str = _CharT(__val);\n        else\n            __push_char(_CharT(__val));\n    }\n    else\n        __throw_regex_error<regex_constants::error_escape>();\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_equivalence_class(_ForwardIterator __first,\n                                    _ForwardIterator __last,\n                                    __bracket_expression<_CharT, _Traits>* __ml)\n{\n    // Found [=\n    //   This means =] must exist\n    value_type _Equal_close[2] = {'=', ']'};\n    _ForwardIterator __temp = _VSTD::search(__first, __last, _Equal_close,\n                                                            _Equal_close+2);\n    if (__temp == __last)\n        __throw_regex_error<regex_constants::error_brack>();\n    // [__first, __temp) contains all text in [= ... =]\n    string_type __collate_name =\n        __traits_.lookup_collatename(__first, __temp);\n    if (__collate_name.empty())\n        __throw_regex_error<regex_constants::error_collate>();\n    string_type __equiv_name =\n        __traits_.transform_primary(__collate_name.begin(),\n                                    __collate_name.end());\n    if (!__equiv_name.empty())\n        __ml->__add_equivalence(__equiv_name);\n    else\n    {\n        switch (__collate_name.size())\n        {\n        case 1:\n            __ml->__add_char(__collate_name[0]);\n            break;\n        case 2:\n            __ml->__add_digraph(__collate_name[0], __collate_name[1]);\n            break;\n        default:\n            __throw_regex_error<regex_constants::error_collate>();\n        }\n    }\n    __first = _VSTD::next(__temp, 2);\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_character_class(_ForwardIterator __first,\n                                    _ForwardIterator __last,\n                                    __bracket_expression<_CharT, _Traits>* __ml)\n{\n    // Found [:\n    //   This means :] must exist\n    value_type _Colon_close[2] = {':', ']'};\n    _ForwardIterator __temp = _VSTD::search(__first, __last, _Colon_close,\n                                                            _Colon_close+2);\n    if (__temp == __last)\n        __throw_regex_error<regex_constants::error_brack>();\n    // [__first, __temp) contains all text in [: ... :]\n    typedef typename _Traits::char_class_type char_class_type;\n    char_class_type __class_type =\n        __traits_.lookup_classname(__first, __temp, __flags_ & icase);\n    if (__class_type == 0)\n        __throw_regex_error<regex_constants::error_brack>();\n    __ml->__add_class(__class_type);\n    __first = _VSTD::next(__temp, 2);\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_collating_symbol(_ForwardIterator __first,\n                                                _ForwardIterator __last,\n                                                basic_string<_CharT>& __col_sym)\n{\n    // Found [.\n    //   This means .] must exist\n    value_type _Dot_close[2] = {'.', ']'};\n    _ForwardIterator __temp = _VSTD::search(__first, __last, _Dot_close,\n                                                            _Dot_close+2);\n    if (__temp == __last)\n        __throw_regex_error<regex_constants::error_brack>();\n    // [__first, __temp) contains all text in [. ... .]\n    __col_sym = __traits_.lookup_collatename(__first, __temp);\n    switch (__col_sym.size())\n    {\n    case 1:\n    case 2:\n        break;\n    default:\n        __throw_regex_error<regex_constants::error_collate>();\n    }\n    __first = _VSTD::next(__temp, 2);\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_DUP_COUNT(_ForwardIterator __first,\n                                                _ForwardIterator __last,\n                                                int& __c)\n{\n    if (__first != __last )\n    {\n        int __val = __traits_.value(*__first, 10);\n        if ( __val != -1 )\n        {\n            __c = __val;\n            for (++__first; \n                 __first != __last && ( __val = __traits_.value(*__first, 10)) != -1;\n                 ++__first)\n            {\n                __c *= 10;\n                __c += __val;\n            }\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_ecma_exp(_ForwardIterator __first,\n                                               _ForwardIterator __last)\n{\n    __owns_one_state<_CharT>* __sa = __end_;\n    _ForwardIterator __temp = __parse_alternative(__first, __last);\n    if (__temp == __first)\n        __push_empty();\n    __first = __temp;\n    while (__first != __last && *__first == '|')\n    {\n        __owns_one_state<_CharT>* __sb = __end_;\n        __temp = __parse_alternative(++__first, __last);\n        if (__temp == __first)\n            __push_empty();\n        __push_alternation(__sa, __sb);\n        __first = __temp;\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_alternative(_ForwardIterator __first,\n                                                  _ForwardIterator __last)\n{\n    while (true)\n    {\n        _ForwardIterator __temp = __parse_term(__first, __last);\n        if (__temp == __first)\n            break;\n        __first = __temp;\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_term(_ForwardIterator __first,\n                                           _ForwardIterator __last)\n{\n    _ForwardIterator __temp = __parse_assertion(__first, __last);\n    if (__temp == __first)\n    {\n        __owns_one_state<_CharT>* __e = __end_;\n        unsigned __mexp_begin = __marked_count_;\n        __temp = __parse_atom(__first, __last);\n        if (__temp != __first)\n            __first = __parse_ERE_dupl_symbol(__temp, __last, __e,\n                                              __mexp_begin+1, __marked_count_+1);\n    }\n    else\n        __first = __temp;\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_assertion(_ForwardIterator __first,\n                                                _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        switch (*__first)\n        {\n        case '^':\n            __push_l_anchor();\n            ++__first;\n            break;\n        case '$':\n            __push_r_anchor();\n            ++__first;\n            break;\n        case '\\\\':\n            {\n                _ForwardIterator __temp = _VSTD::next(__first);\n                if (__temp != __last)\n                {\n                    if (*__temp == 'b')\n                    {\n                        __push_word_boundary(false);\n                        __first = ++__temp;\n                    }\n                    else if (*__temp == 'B')\n                    {\n                        __push_word_boundary(true);\n                        __first = ++__temp;\n                    }\n                }\n            }\n            break;\n        case '(':\n            {\n                _ForwardIterator __temp = _VSTD::next(__first);\n                if (__temp != __last && *__temp == '?')\n                {\n                    if (++__temp != __last)\n                    {\n                        switch (*__temp)\n                        {\n                        case '=':\n                            {\n                                basic_regex __exp;\n                                __exp.__flags_ = __flags_;\n                                __temp = __exp.__parse(++__temp, __last);\n                                unsigned __mexp = __exp.__marked_count_;\n                                __push_lookahead(_VSTD::move(__exp), false, __marked_count_);\n                                __marked_count_ += __mexp;\n                                if (__temp == __last || *__temp != ')')\n                                    __throw_regex_error<regex_constants::error_paren>();\n                                __first = ++__temp;\n                            }\n                            break;\n                        case '!':\n                            {\n                                basic_regex __exp;\n                                __exp.__flags_ = __flags_;\n                                __temp = __exp.__parse(++__temp, __last);\n                                unsigned __mexp = __exp.__marked_count_;\n                                __push_lookahead(_VSTD::move(__exp), true, __marked_count_);\n                                __marked_count_ += __mexp;\n                                if (__temp == __last || *__temp != ')')\n                                    __throw_regex_error<regex_constants::error_paren>();\n                                __first = ++__temp;\n                            }\n                            break;\n                        }\n                    }\n                }\n            }\n            break;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_atom(_ForwardIterator __first,\n                                           _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        switch (*__first)\n        {\n        case '.':\n            __push_match_any_but_newline();\n            ++__first;\n            break;\n        case '\\\\':\n            __first = __parse_atom_escape(__first, __last);\n            break;\n        case '[':\n            __first = __parse_bracket_expression(__first, __last);\n            break;\n        case '(':\n            {\n                ++__first;\n                if (__first == __last)\n                    __throw_regex_error<regex_constants::error_paren>();\n                _ForwardIterator __temp = _VSTD::next(__first);\n                if (__temp != __last && *__first == '?' && *__temp == ':')\n                {\n                    ++__open_count_;\n                    __first = __parse_ecma_exp(++__temp, __last);\n                    if (__first == __last || *__first != ')')\n                        __throw_regex_error<regex_constants::error_paren>();\n                    --__open_count_;\n                    ++__first;\n                }\n                else\n                {\n                    __push_begin_marked_subexpression();\n                    unsigned __temp_count = __marked_count_;\n                    ++__open_count_;\n                    __first = __parse_ecma_exp(__first, __last);\n                    if (__first == __last || *__first != ')')\n                        __throw_regex_error<regex_constants::error_paren>();\n                    __push_end_marked_subexpression(__temp_count);\n                    --__open_count_;\n                    ++__first;\n                }\n            }\n            break;\n        case '*':\n        case '+':\n        case '?':\n        case '{':\n            __throw_regex_error<regex_constants::error_badrepeat>();\n            break;\n        default:\n            __first = __parse_pattern_character(__first, __last);\n            break;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_atom_escape(_ForwardIterator __first,\n                                                  _ForwardIterator __last)\n{\n    if (__first != __last && *__first == '\\\\')\n    {\n        _ForwardIterator __t1 = _VSTD::next(__first);\n        if (__t1 == __last)\n            __throw_regex_error<regex_constants::error_escape>();\n\n        _ForwardIterator __t2 = __parse_decimal_escape(__t1, __last);\n        if (__t2 != __t1)\n            __first = __t2;\n        else\n        {\n            __t2 = __parse_character_class_escape(__t1, __last);\n            if (__t2 != __t1)\n                __first = __t2;\n            else\n            {\n                __t2 = __parse_character_escape(__t1, __last);\n                if (__t2 != __t1)\n                    __first = __t2;\n            }\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_decimal_escape(_ForwardIterator __first,\n                                                     _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        if (*__first == '0')\n        {\n            __push_char(_CharT());\n            ++__first;\n        }\n        else if ('1' <= *__first && *__first <= '9')\n        {\n            unsigned __v = *__first - '0';\n            for (++__first;\n                    __first != __last && '0' <= *__first && *__first <= '9'; ++__first)\n                __v = 10 * __v + *__first - '0';\n            if (__v > mark_count())\n                __throw_regex_error<regex_constants::error_backref>();\n            __push_back_ref(__v);\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_character_class_escape(_ForwardIterator __first,\n                                                             _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        __bracket_expression<_CharT, _Traits>* __ml;\n        switch (*__first)\n        {\n        case 'd':\n            __ml = __start_matching_list(false);\n            __ml->__add_class(ctype_base::digit);\n            ++__first;\n            break;\n        case 'D':\n            __ml = __start_matching_list(true);\n            __ml->__add_class(ctype_base::digit);\n            ++__first;\n            break;\n        case 's':\n            __ml = __start_matching_list(false);\n            __ml->__add_class(ctype_base::space);\n            ++__first;\n            break;\n        case 'S':\n            __ml = __start_matching_list(true);\n            __ml->__add_class(ctype_base::space);\n            ++__first;\n            break;\n        case 'w':\n            __ml = __start_matching_list(false);\n            __ml->__add_class(ctype_base::alnum);\n            __ml->__add_char('_');\n            ++__first;\n            break;\n        case 'W':\n            __ml = __start_matching_list(true);\n            __ml->__add_class(ctype_base::alnum);\n            __ml->__add_char('_');\n            ++__first;\n            break;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_character_escape(_ForwardIterator __first,\n                                                    _ForwardIterator __last,\n                                                    basic_string<_CharT>* __str)\n{\n    if (__first != __last)\n    {\n        _ForwardIterator __t;\n        unsigned __sum = 0;\n        int __hd;\n        switch (*__first)\n        {\n        case 'f':\n            if (__str)\n                *__str = _CharT(0xC);\n            else\n                __push_char(_CharT(0xC));\n            ++__first;\n            break;\n        case 'n':\n            if (__str)\n                *__str = _CharT(0xA);\n            else\n                __push_char(_CharT(0xA));\n            ++__first;\n            break;\n        case 'r':\n            if (__str)\n                *__str = _CharT(0xD);\n            else\n                __push_char(_CharT(0xD));\n            ++__first;\n            break;\n        case 't':\n            if (__str)\n                *__str = _CharT(0x9);\n            else\n                __push_char(_CharT(0x9));\n            ++__first;\n            break;\n        case 'v':\n            if (__str)\n                *__str = _CharT(0xB);\n            else\n                __push_char(_CharT(0xB));\n            ++__first;\n            break;\n        case 'c':\n            if ((__t = _VSTD::next(__first)) != __last)\n            {\n                if (('A' <= *__t && *__t <= 'Z') || \n                    ('a' <= *__t && *__t <= 'z'))\n                {\n                    if (__str)\n                        *__str = _CharT(*__t % 32);\n                    else\n                        __push_char(_CharT(*__t % 32));\n                    __first = ++__t;\n                }\n                else \n                    __throw_regex_error<regex_constants::error_escape>();\n            }\n            else\n                __throw_regex_error<regex_constants::error_escape>();\n            break;\n        case 'u':\n            ++__first;\n            if (__first == __last)\n                __throw_regex_error<regex_constants::error_escape>();\n            __hd = __traits_.value(*__first, 16);\n            if (__hd == -1)\n                __throw_regex_error<regex_constants::error_escape>();\n            __sum = 16 * __sum + static_cast<unsigned>(__hd);\n            ++__first;\n            if (__first == __last)\n                __throw_regex_error<regex_constants::error_escape>();\n            __hd = __traits_.value(*__first, 16);\n            if (__hd == -1)\n                __throw_regex_error<regex_constants::error_escape>();\n            __sum = 16 * __sum + static_cast<unsigned>(__hd);\n            // drop through\n        case 'x':\n            ++__first;\n            if (__first == __last)\n                __throw_regex_error<regex_constants::error_escape>();\n            __hd = __traits_.value(*__first, 16);\n            if (__hd == -1)\n                __throw_regex_error<regex_constants::error_escape>();\n            __sum = 16 * __sum + static_cast<unsigned>(__hd);\n            ++__first;\n            if (__first == __last)\n                __throw_regex_error<regex_constants::error_escape>();\n            __hd = __traits_.value(*__first, 16);\n            if (__hd == -1)\n                __throw_regex_error<regex_constants::error_escape>();\n            __sum = 16 * __sum + static_cast<unsigned>(__hd);\n            if (__str)\n                *__str = _CharT(__sum);\n            else\n                __push_char(_CharT(__sum));\n            ++__first;\n            break;\n        case '0':\n            if (__str)\n                *__str = _CharT(0);\n            else\n                __push_char(_CharT(0));\n            ++__first;\n            break;\n        default:\n            if (*__first != '_' && !__traits_.isctype(*__first, ctype_base::alnum))\n            {\n                if (__str)\n                    *__str = *__first;\n                else\n                    __push_char(*__first);\n                ++__first;\n            }\n            else\n                __throw_regex_error<regex_constants::error_escape>();\n            break;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_pattern_character(_ForwardIterator __first,\n                                                        _ForwardIterator __last)\n{\n    if (__first != __last)\n    {\n        switch (*__first)\n        {\n        case '^':\n        case '$':\n        case '\\\\':\n        case '.':\n        case '*':\n        case '+':\n        case '?':\n        case '(':\n        case ')':\n        case '[':\n        case ']':\n        case '{':\n        case '}':\n        case '|':\n            break;\n        default:\n            __push_char(*__first);\n            ++__first;\n            break;\n        }\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_grep(_ForwardIterator __first,\n                                           _ForwardIterator __last)\n{\n    __owns_one_state<_CharT>* __sa = __end_;\n    _ForwardIterator __t1 = _VSTD::find(__first, __last, _CharT('\\n'));\n    if (__t1 != __first)\n        __parse_basic_reg_exp(__first, __t1);\n    else\n        __push_empty();\n    __first = __t1;\n    if (__first != __last)\n        ++__first;\n    while (__first != __last)\n    {\n        __t1 = _VSTD::find(__first, __last, _CharT('\\n'));\n        __owns_one_state<_CharT>* __sb = __end_;\n        if (__t1 != __first)\n            __parse_basic_reg_exp(__first, __t1);\n        else\n            __push_empty();\n        __push_alternation(__sa, __sb);\n        __first = __t1;\n        if (__first != __last)\n            ++__first;\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _ForwardIterator>\n_ForwardIterator\nbasic_regex<_CharT, _Traits>::__parse_egrep(_ForwardIterator __first,\n                                            _ForwardIterator __last)\n{\n    __owns_one_state<_CharT>* __sa = __end_;\n    _ForwardIterator __t1 = _VSTD::find(__first, __last, _CharT('\\n'));\n    if (__t1 != __first)\n        __parse_extended_reg_exp(__first, __t1);\n    else\n        __push_empty();\n    __first = __t1;\n    if (__first != __last)\n        ++__first;\n    while (__first != __last)\n    {\n        __t1 = _VSTD::find(__first, __last, _CharT('\\n'));\n        __owns_one_state<_CharT>* __sb = __end_;\n        if (__t1 != __first)\n            __parse_extended_reg_exp(__first, __t1);\n        else\n            __push_empty();\n        __push_alternation(__sa, __sb);\n        __first = __t1;\n        if (__first != __last)\n            ++__first;\n    }\n    return __first;\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_loop(size_t __min, size_t __max,\n        __owns_one_state<_CharT>* __s, size_t __mexp_begin, size_t __mexp_end,\n        bool __greedy)\n{\n    unique_ptr<__empty_state<_CharT> > __e1(new __empty_state<_CharT>(__end_->first()));\n    __end_->first() = nullptr;\n    unique_ptr<__loop<_CharT> > __e2(new __loop<_CharT>(__loop_count_,\n                __s->first(), __e1.get(), __mexp_begin, __mexp_end, __greedy,\n                __min, __max));\n    __s->first() = nullptr;\n    __e1.release();\n    __end_->first() = new __repeat_one_loop<_CharT>(__e2.get());\n    __end_ = __e2->second();\n    __s->first() = __e2.release();\n    ++__loop_count_;\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_char(value_type __c)\n{\n    if (flags() & icase)\n        __end_->first() = new __match_char_icase<_CharT, _Traits>\n                                              (__traits_, __c, __end_->first());\n    else if (flags() & collate)\n        __end_->first() = new __match_char_collate<_CharT, _Traits>\n                                              (__traits_, __c, __end_->first());\n    else\n        __end_->first() = new __match_char<_CharT>(__c, __end_->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_begin_marked_subexpression()\n{\n    if (!(__flags_ & nosubs))\n    {\n        __end_->first() =\n                new __begin_marked_subexpression<_CharT>(++__marked_count_,\n                                                         __end_->first());\n        __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n    }\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_end_marked_subexpression(unsigned __sub)\n{\n    if (!(__flags_ & nosubs))\n    {\n        __end_->first() =\n                new __end_marked_subexpression<_CharT>(__sub, __end_->first());\n        __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n    }\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_l_anchor()\n{\n    __end_->first() = new __l_anchor<_CharT>(__end_->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_r_anchor()\n{\n    __end_->first() = new __r_anchor<_CharT>(__end_->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_match_any()\n{\n    __end_->first() = new __match_any<_CharT>(__end_->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_match_any_but_newline()\n{\n    __end_->first() = new __match_any_but_newline<_CharT>(__end_->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_empty()\n{\n    __end_->first() = new __empty_state<_CharT>(__end_->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_word_boundary(bool __invert)\n{\n    __end_->first() = new __word_boundary<_CharT, _Traits>(__traits_, __invert,\n                                                           __end_->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_back_ref(int __i)\n{\n    if (flags() & icase)\n        __end_->first() = new __back_ref_icase<_CharT, _Traits>\n                                              (__traits_, __i, __end_->first());\n    else if (flags() & collate)\n        __end_->first() = new __back_ref_collate<_CharT, _Traits>\n                                              (__traits_, __i, __end_->first());\n    else\n        __end_->first() = new __back_ref<_CharT>(__i, __end_->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_alternation(__owns_one_state<_CharT>* __sa,\n                                                 __owns_one_state<_CharT>* __ea)\n{\n    __sa->first() = new __alternate<_CharT>(\n                         static_cast<__owns_one_state<_CharT>*>(__sa->first()),\n                         static_cast<__owns_one_state<_CharT>*>(__ea->first()));\n    __ea->first() = nullptr;\n    __ea->first() = new __empty_state<_CharT>(__end_->first());\n    __end_->first() = nullptr;\n    __end_->first() = new __empty_non_own_state<_CharT>(__ea->first());\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__ea->first());\n}\n\ntemplate <class _CharT, class _Traits>\n__bracket_expression<_CharT, _Traits>*\nbasic_regex<_CharT, _Traits>::__start_matching_list(bool __negate)\n{\n    __bracket_expression<_CharT, _Traits>* __r =\n        new __bracket_expression<_CharT, _Traits>(__traits_, __end_->first(),\n                                                  __negate, __flags_ & icase,\n                                                  __flags_ & collate);\n    __end_->first() = __r;\n    __end_ = __r;\n    return __r;\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_regex<_CharT, _Traits>::__push_lookahead(const basic_regex& __exp,\n                                               bool __invert,\n                                               unsigned __mexp)\n{\n    __end_->first() = new __lookahead<_CharT, _Traits>(__exp, __invert,\n                                                           __end_->first(), __mexp);\n    __end_ = static_cast<__owns_one_state<_CharT>*>(__end_->first());\n}\n\ntypedef basic_regex<char>    regex;\ntypedef basic_regex<wchar_t> wregex;\n\n// sub_match\n\ntemplate <class _BidirectionalIterator>\nclass _LIBCPP_TEMPLATE_VIS sub_match\n    : public pair<_BidirectionalIterator, _BidirectionalIterator>\n{\npublic:\n    typedef _BidirectionalIterator                              iterator;\n    typedef typename iterator_traits<iterator>::value_type      value_type;\n    typedef typename iterator_traits<iterator>::difference_type difference_type;\n    typedef basic_string<value_type>                            string_type;\n\n    bool matched;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR sub_match() : matched() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    difference_type length() const\n        {return matched ? _VSTD::distance(this->first, this->second) : 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    string_type str() const\n        {return matched ? string_type(this->first, this->second) : string_type();}\n    _LIBCPP_INLINE_VISIBILITY\n    operator string_type() const\n        {return str();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    int compare(const sub_match& __s) const\n        {return str().compare(__s.str());}\n    _LIBCPP_INLINE_VISIBILITY\n    int compare(const string_type& __s) const\n        {return str().compare(__s);}\n    _LIBCPP_INLINE_VISIBILITY\n    int compare(const value_type* __s) const\n        {return str().compare(__s);}\n};\n\ntypedef sub_match<const char*>             csub_match;\ntypedef sub_match<const wchar_t*>          wcsub_match;\ntypedef sub_match<string::const_iterator>  ssub_match;\ntypedef sub_match<wstring::const_iterator> wssub_match;\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const sub_match<_BiIter>& __x, const sub_match<_BiIter>& __y)\n{\n    return __x.compare(__y) == 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const sub_match<_BiIter>& __x, const sub_match<_BiIter>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const sub_match<_BiIter>& __x, const sub_match<_BiIter>& __y)\n{\n    return __x.compare(__y) < 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const sub_match<_BiIter>& __x, const sub_match<_BiIter>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const sub_match<_BiIter>& __x, const sub_match<_BiIter>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const sub_match<_BiIter>& __x, const sub_match<_BiIter>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __x,\n           const sub_match<_BiIter>& __y)\n{\n    return __y.compare(typename sub_match<_BiIter>::string_type(__x.data(), __x.size())) == 0;\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __x,\n           const sub_match<_BiIter>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __x,\n          const sub_match<_BiIter>& __y)\n{\n    return __y.compare(typename sub_match<_BiIter>::string_type(__x.data(), __x.size())) > 0;\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __x,\n          const sub_match<_BiIter>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator>=(const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __x,\n                const sub_match<_BiIter>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __x,\n           const sub_match<_BiIter>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const sub_match<_BiIter>& __x,\n           const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __y)\n{\n    return __x.compare(typename sub_match<_BiIter>::string_type(__y.data(), __y.size())) == 0;\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const sub_match<_BiIter>& __x,\n           const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const sub_match<_BiIter>& __x,\n          const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __y)\n{\n    return __x.compare(typename sub_match<_BiIter>::string_type(__y.data(), __y.size())) < 0;\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator>(const sub_match<_BiIter>& __x,\n               const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const sub_match<_BiIter>& __x,\n           const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _BiIter, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const sub_match<_BiIter>& __x,\n           const basic_string<typename iterator_traits<_BiIter>::value_type, _ST, _SA>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(typename iterator_traits<_BiIter>::value_type const* __x,\n           const sub_match<_BiIter>& __y)\n{\n    return __y.compare(__x) == 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(typename iterator_traits<_BiIter>::value_type const* __x,\n           const sub_match<_BiIter>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(typename iterator_traits<_BiIter>::value_type const* __x,\n          const sub_match<_BiIter>& __y)\n{\n    return __y.compare(__x) > 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(typename iterator_traits<_BiIter>::value_type const* __x,\n          const sub_match<_BiIter>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(typename iterator_traits<_BiIter>::value_type const* __x,\n           const sub_match<_BiIter>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(typename iterator_traits<_BiIter>::value_type const* __x,\n           const sub_match<_BiIter>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const sub_match<_BiIter>& __x,\n           typename iterator_traits<_BiIter>::value_type const* __y)\n{\n    return __x.compare(__y) == 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const sub_match<_BiIter>& __x,\n           typename iterator_traits<_BiIter>::value_type const* __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const sub_match<_BiIter>& __x,\n          typename iterator_traits<_BiIter>::value_type const* __y)\n{\n    return __x.compare(__y) < 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const sub_match<_BiIter>& __x,\n          typename iterator_traits<_BiIter>::value_type const* __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const sub_match<_BiIter>& __x,\n           typename iterator_traits<_BiIter>::value_type const* __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const sub_match<_BiIter>& __x,\n           typename iterator_traits<_BiIter>::value_type const* __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(typename iterator_traits<_BiIter>::value_type const& __x,\n           const sub_match<_BiIter>& __y)\n{\n    typedef basic_string<typename iterator_traits<_BiIter>::value_type> string_type;\n    return __y.compare(string_type(1, __x)) == 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(typename iterator_traits<_BiIter>::value_type const& __x,\n           const sub_match<_BiIter>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(typename iterator_traits<_BiIter>::value_type const& __x,\n          const sub_match<_BiIter>& __y)\n{\n    typedef basic_string<typename iterator_traits<_BiIter>::value_type> string_type;\n    return __y.compare(string_type(1, __x)) > 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(typename iterator_traits<_BiIter>::value_type const& __x,\n          const sub_match<_BiIter>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(typename iterator_traits<_BiIter>::value_type const& __x,\n           const sub_match<_BiIter>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(typename iterator_traits<_BiIter>::value_type const& __x,\n           const sub_match<_BiIter>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const sub_match<_BiIter>& __x,\n           typename iterator_traits<_BiIter>::value_type const& __y)\n{\n    typedef basic_string<typename iterator_traits<_BiIter>::value_type> string_type;\n    return __x.compare(string_type(1, __y)) == 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const sub_match<_BiIter>& __x,\n           typename iterator_traits<_BiIter>::value_type const& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const sub_match<_BiIter>& __x,\n          typename iterator_traits<_BiIter>::value_type const& __y)\n{\n    typedef basic_string<typename iterator_traits<_BiIter>::value_type> string_type;\n    return __x.compare(string_type(1, __y)) < 0;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>(const sub_match<_BiIter>& __x,\n          typename iterator_traits<_BiIter>::value_type const& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const sub_match<_BiIter>& __x,\n           typename iterator_traits<_BiIter>::value_type const& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const sub_match<_BiIter>& __x,\n           typename iterator_traits<_BiIter>::value_type const& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _CharT, class _ST, class _BiIter>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_ostream<_CharT, _ST>&\noperator<<(basic_ostream<_CharT, _ST>& __os, const sub_match<_BiIter>& __m)\n{\n    return __os << __m.str();\n}\n\ntemplate <class _BidirectionalIterator, class _Allocator>\nclass _LIBCPP_TEMPLATE_VIS match_results\n{\npublic:\n    typedef _Allocator                                        allocator_type;\n    typedef sub_match<_BidirectionalIterator>                 value_type;\nprivate:\n    typedef vector<value_type, allocator_type>                __container_type;\n\n    __container_type  __matches_;\n    value_type __unmatched_;\n    value_type __prefix_;\n    value_type __suffix_;\n    bool       __ready_;\npublic:\n    _BidirectionalIterator __position_start_;\n    typedef const value_type&                                 const_reference;\n    typedef value_type&                                       reference;\n    typedef typename __container_type::const_iterator         const_iterator;\n    typedef const_iterator                                    iterator;\n    typedef typename iterator_traits<_BidirectionalIterator>::difference_type difference_type;\n    typedef typename allocator_traits<allocator_type>::size_type size_type;\n    typedef typename iterator_traits<_BidirectionalIterator>::value_type char_type;\n    typedef basic_string<char_type>                           string_type;\n\n    // construct/copy/destroy:\n    explicit match_results(const allocator_type& __a = allocator_type());\n//    match_results(const match_results&) = default;\n//    match_results& operator=(const match_results&) = default;\n//    match_results(match_results&& __m) = default;\n//    match_results& operator=(match_results&& __m) = default;\n//    ~match_results() = default;\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool ready() const {return __ready_;}\n\n    // size:\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const {return __matches_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const {return __matches_.max_size();}\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const {return size() == 0;}\n\n    // element access:\n    _LIBCPP_INLINE_VISIBILITY\n    difference_type length(size_type __sub = 0) const\n        {return (*this)[__sub].length();}\n    _LIBCPP_INLINE_VISIBILITY\n    difference_type position(size_type __sub = 0) const\n        {return _VSTD::distance(__position_start_, (*this)[__sub].first);}\n    _LIBCPP_INLINE_VISIBILITY\n    string_type str(size_type __sub = 0) const\n        {return (*this)[__sub].str();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference operator[](size_type __n) const\n        {return __n < __matches_.size() ? __matches_[__n] : __unmatched_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference prefix() const {return __prefix_;}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference suffix() const {return __suffix_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const {return empty() ? __matches_.end() : __matches_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const {return __matches_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const {return empty() ? __matches_.end() : __matches_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend() const {return __matches_.end();}\n\n    // format:\n    template <class _OutputIter>\n        _OutputIter\n        format(_OutputIter __output, const char_type* __fmt_first,\n               const char_type* __fmt_last,\n               regex_constants::match_flag_type __flags = regex_constants::format_default) const;\n    template <class _OutputIter, class _ST, class _SA>\n        _LIBCPP_INLINE_VISIBILITY\n        _OutputIter\n        format(_OutputIter __output, const basic_string<char_type, _ST, _SA>& __fmt,\n               regex_constants::match_flag_type __flags = regex_constants::format_default) const\n            {return format(__output, __fmt.data(), __fmt.data() + __fmt.size(), __flags);}\n    template <class _ST, class _SA>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_string<char_type, _ST, _SA>\n        format(const basic_string<char_type, _ST, _SA>& __fmt,\n               regex_constants::match_flag_type __flags = regex_constants::format_default) const\n        {\n            basic_string<char_type, _ST, _SA> __r;\n            format(back_inserter(__r), __fmt.data(), __fmt.data() + __fmt.size(),\n                   __flags);\n            return __r;\n        }\n    _LIBCPP_INLINE_VISIBILITY\n    string_type\n        format(const char_type* __fmt,\n               regex_constants::match_flag_type __flags = regex_constants::format_default) const\n        {\n            string_type __r;\n            format(back_inserter(__r), __fmt,\n                   __fmt + char_traits<char_type>::length(__fmt), __flags);\n            return __r;\n        }\n\n    // allocator:\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const {return __matches_.get_allocator();}\n\n    // swap:\n    void swap(match_results& __m);\n\n    template <class _Bp, class _Ap>\n        _LIBCPP_INLINE_VISIBILITY\n        void __assign(_BidirectionalIterator __f, _BidirectionalIterator __l,\n                      const match_results<_Bp, _Ap>& __m, bool __no_update_pos)\n    {\n        _Bp __mf = __m.prefix().first;\n        __matches_.resize(__m.size());\n        for (size_type __i = 0; __i < __matches_.size(); ++__i)\n        {\n            __matches_[__i].first = _VSTD::next(__f, _VSTD::distance(__mf, __m[__i].first));\n            __matches_[__i].second = _VSTD::next(__f, _VSTD::distance(__mf, __m[__i].second));\n            __matches_[__i].matched = __m[__i].matched;\n        }\n        __unmatched_.first   = __l;\n        __unmatched_.second  = __l;\n        __unmatched_.matched = false;\n        __prefix_.first = _VSTD::next(__f, _VSTD::distance(__mf, __m.prefix().first));\n        __prefix_.second = _VSTD::next(__f, _VSTD::distance(__mf, __m.prefix().second));\n        __prefix_.matched = __m.prefix().matched;\n        __suffix_.first = _VSTD::next(__f, _VSTD::distance(__mf, __m.suffix().first));\n        __suffix_.second = _VSTD::next(__f, _VSTD::distance(__mf, __m.suffix().second));\n        __suffix_.matched = __m.suffix().matched;\n        if (!__no_update_pos)\n            __position_start_ = __prefix_.first;\n        __ready_ = __m.ready();\n    }\n\nprivate:\n    void __init(unsigned __s,\n                _BidirectionalIterator __f, _BidirectionalIterator __l,\n                bool __no_update_pos = false);\n\n    template <class, class> friend class basic_regex;\n\n    template <class _Bp, class _Ap, class _Cp, class _Tp>\n    friend\n    bool\n    regex_match(_Bp, _Bp, match_results<_Bp, _Ap>&, const basic_regex<_Cp, _Tp>&,\n                regex_constants::match_flag_type);\n\n    template <class _Bp, class _Ap>\n    friend\n    bool\n    operator==(const match_results<_Bp, _Ap>&, const match_results<_Bp, _Ap>&);\n\n    template <class, class> friend class __lookahead;\n};\n\ntemplate <class _BidirectionalIterator, class _Allocator>\nmatch_results<_BidirectionalIterator, _Allocator>::match_results(\n        const allocator_type& __a)\n    : __matches_(__a),\n      __unmatched_(),\n      __prefix_(),\n      __suffix_(),\n      __ready_(false),\n      __position_start_()\n{\n}\n\ntemplate <class _BidirectionalIterator, class _Allocator>\nvoid\nmatch_results<_BidirectionalIterator, _Allocator>::__init(unsigned __s,\n                         _BidirectionalIterator __f, _BidirectionalIterator __l,\n                         bool __no_update_pos)\n{\n    __unmatched_.first   = __l;\n    __unmatched_.second  = __l;\n    __unmatched_.matched = false;\n    __matches_.assign(__s, __unmatched_);\n    __prefix_.first      = __f;\n    __prefix_.second     = __f;\n    __prefix_.matched    = false;\n    __suffix_ = __unmatched_;\n    if (!__no_update_pos)\n        __position_start_ = __prefix_.first;\n    __ready_ = true;\n}\n\ntemplate <class _BidirectionalIterator, class _Allocator>\ntemplate <class _OutputIter>\n_OutputIter\nmatch_results<_BidirectionalIterator, _Allocator>::format(_OutputIter __output,\n        const char_type* __fmt_first, const char_type* __fmt_last,\n        regex_constants::match_flag_type __flags) const\n{\n    if (__flags & regex_constants::format_sed)\n    {\n        for (; __fmt_first != __fmt_last; ++__fmt_first)\n        {\n            if (*__fmt_first == '&')\n                __output = _VSTD::copy(__matches_[0].first, __matches_[0].second,\n                                   __output);\n            else if (*__fmt_first == '\\\\' && __fmt_first + 1 != __fmt_last)\n            {\n                ++__fmt_first;\n                if ('0' <= *__fmt_first && *__fmt_first <= '9')\n                {\n                    size_t __i = *__fmt_first - '0';\n                    __output = _VSTD::copy((*this)[__i].first,\n                                        (*this)[__i].second, __output);\n                }\n                else\n                {\n                    *__output = *__fmt_first;\n                    ++__output;\n                }\n            }\n            else\n            {\n                *__output = *__fmt_first;\n                ++__output;\n            }\n        }\n    }\n    else\n    {\n        for (; __fmt_first != __fmt_last; ++__fmt_first)\n        {\n            if (*__fmt_first == '$' && __fmt_first + 1 != __fmt_last)\n            {\n                switch (__fmt_first[1])\n                {\n                case '$':\n                    *__output = *++__fmt_first;\n                    ++__output;\n                    break;\n                case '&':\n                    ++__fmt_first;\n                    __output = _VSTD::copy(__matches_[0].first, __matches_[0].second,\n                                       __output);\n                    break;\n                case '`':\n                    ++__fmt_first;\n                    __output = _VSTD::copy(__prefix_.first, __prefix_.second, __output);\n                    break;\n                case '\\'':\n                    ++__fmt_first;\n                    __output = _VSTD::copy(__suffix_.first, __suffix_.second, __output);\n                    break;\n                default:\n                    if ('0' <= __fmt_first[1] && __fmt_first[1] <= '9')\n                    {\n                        ++__fmt_first;\n                        size_t __i = *__fmt_first - '0';\n                        if (__fmt_first + 1 != __fmt_last &&\n                            '0' <= __fmt_first[1] && __fmt_first[1] <= '9')\n                        {\n                            ++__fmt_first;\n                            __i = 10 * __i + *__fmt_first - '0';\n                        }\n                        __output = _VSTD::copy((*this)[__i].first,\n                                            (*this)[__i].second, __output);\n                    }\n                    else\n                    {\n                        *__output = *__fmt_first;\n                        ++__output;\n                    }\n                    break;\n                }\n            }\n            else\n            {\n                *__output = *__fmt_first;\n                ++__output;\n            }\n        }\n    }\n    return __output;\n}\n\ntemplate <class _BidirectionalIterator, class _Allocator>\nvoid\nmatch_results<_BidirectionalIterator, _Allocator>::swap(match_results& __m)\n{\n    using _VSTD::swap;\n    swap(__matches_, __m.__matches_);\n    swap(__unmatched_, __m.__unmatched_);\n    swap(__prefix_, __m.__prefix_);\n    swap(__suffix_, __m.__suffix_);\n    swap(__position_start_, __m.__position_start_);\n    swap(__ready_, __m.__ready_);\n}\n\ntypedef match_results<const char*>             cmatch;\ntypedef match_results<const wchar_t*>          wcmatch;\ntypedef match_results<string::const_iterator>  smatch;\ntypedef match_results<wstring::const_iterator> wsmatch;\n\ntemplate <class _BidirectionalIterator, class _Allocator>\nbool\noperator==(const match_results<_BidirectionalIterator, _Allocator>& __x,\n           const match_results<_BidirectionalIterator, _Allocator>& __y)\n{\n    if (__x.__ready_ != __y.__ready_)\n        return false;\n    if (!__x.__ready_)\n        return true;\n    return __x.__matches_ == __y.__matches_ &&\n           __x.__prefix_ == __y.__prefix_ &&\n           __x.__suffix_ == __y.__suffix_;\n}\n\ntemplate <class _BidirectionalIterator, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const match_results<_BidirectionalIterator, _Allocator>& __x,\n           const match_results<_BidirectionalIterator, _Allocator>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _BidirectionalIterator, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(match_results<_BidirectionalIterator, _Allocator>& __x,\n     match_results<_BidirectionalIterator, _Allocator>& __y)\n{\n    __x.swap(__y);\n}\n\n// regex_search\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _Allocator>\nbool\nbasic_regex<_CharT, _Traits>::__match_at_start_ecma(\n        const _CharT* __first, const _CharT* __last,\n        match_results<const _CharT*, _Allocator>& __m,\n        regex_constants::match_flag_type __flags, bool __at_first) const\n{\n    vector<__state> __states;\n    __node* __st = __start_.get();\n    if (__st)\n    {\n        sub_match<const _CharT*> __unmatched;\n        __unmatched.first   = __last;\n        __unmatched.second  = __last;\n        __unmatched.matched = false;\n\n        __states.push_back(__state());\n        __states.back().__do_ = 0;\n        __states.back().__first_ = __first;\n        __states.back().__current_ = __first;\n        __states.back().__last_ = __last;\n        __states.back().__sub_matches_.resize(mark_count(), __unmatched);\n        __states.back().__loop_data_.resize(__loop_count());\n        __states.back().__node_ = __st;\n        __states.back().__flags_ = __flags;\n        __states.back().__at_first_ = __at_first;\n        do\n        {\n            __state& __s = __states.back();\n            if (__s.__node_)\n                __s.__node_->__exec(__s);\n            switch (__s.__do_)\n            {\n            case __state::__end_state:\n                if ((__flags & regex_constants::match_not_null) &&\n                    __s.__current_ == __first)\n                {\n                  __states.pop_back();\n                  break;\n                }\n                if ((__flags & regex_constants::__full_match) &&\n                    __s.__current_ != __last)\n                {\n                  __states.pop_back();\n                  break;\n                }\n                __m.__matches_[0].first = __first;\n                __m.__matches_[0].second = _VSTD::next(__first, __s.__current_ - __first);\n                __m.__matches_[0].matched = true;\n                for (unsigned __i = 0; __i < __s.__sub_matches_.size(); ++__i)\n                    __m.__matches_[__i+1] = __s.__sub_matches_[__i];\n                return true;\n            case __state::__accept_and_consume:\n            case __state::__repeat:\n            case __state::__accept_but_not_consume:\n                break;\n            case __state::__split:\n                {\n                __state __snext = __s;\n                __s.__node_->__exec_split(true, __s);\n                __snext.__node_->__exec_split(false, __snext);\n                __states.push_back(_VSTD::move(__snext));\n                }\n                break;\n            case __state::__reject:\n                __states.pop_back();\n                break;\n            default:\n                __throw_regex_error<regex_constants::__re_err_unknown>();\n                break;\n\n            }\n        } while (!__states.empty());\n    }\n    return false;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _Allocator>\nbool\nbasic_regex<_CharT, _Traits>::__match_at_start_posix_nosubs(\n        const _CharT* __first, const _CharT* __last,\n        match_results<const _CharT*, _Allocator>& __m,\n        regex_constants::match_flag_type __flags, bool __at_first) const\n{\n    deque<__state> __states;\n    ptrdiff_t __highest_j = 0;\n    ptrdiff_t _Np = _VSTD::distance(__first, __last);\n    __node* __st = __start_.get();\n    if (__st)\n    {\n        __states.push_back(__state());\n        __states.back().__do_ = 0;\n        __states.back().__first_ = __first;\n        __states.back().__current_ = __first;\n        __states.back().__last_ = __last;\n        __states.back().__loop_data_.resize(__loop_count());\n        __states.back().__node_ = __st;\n        __states.back().__flags_ = __flags;\n        __states.back().__at_first_ = __at_first;\n        bool __matched = false;\n        do\n        {\n            __state& __s = __states.back();\n            if (__s.__node_)\n                __s.__node_->__exec(__s);\n            switch (__s.__do_)\n            {\n            case __state::__end_state:\n                if ((__flags & regex_constants::match_not_null) &&\n                    __s.__current_ == __first)\n                {\n                  __states.pop_back();\n                  break;\n                }\n                if ((__flags & regex_constants::__full_match) &&\n                    __s.__current_ != __last)\n                {\n                  __states.pop_back();\n                  break;\n                }\n                if (!__matched || __highest_j < __s.__current_ - __s.__first_)\n                    __highest_j = __s.__current_ - __s.__first_;\n                __matched = true;\n                if (__highest_j == _Np)\n                    __states.clear();\n                else\n                    __states.pop_back();\n                break;\n            case __state::__consume_input:\n                break;\n            case __state::__accept_and_consume:\n                __states.push_front(_VSTD::move(__s));\n                __states.pop_back();\n                break;\n            case __state::__repeat:\n            case __state::__accept_but_not_consume:\n                break;\n            case __state::__split:\n                {\n                __state __snext = __s;\n                __s.__node_->__exec_split(true, __s);\n                __snext.__node_->__exec_split(false, __snext);\n                __states.push_back(_VSTD::move(__snext));\n                }\n                break;\n            case __state::__reject:\n                __states.pop_back();\n                break;\n            default:\n                __throw_regex_error<regex_constants::__re_err_unknown>();\n                break;\n            }\n        } while (!__states.empty());\n        if (__matched)\n        {\n            __m.__matches_[0].first = __first;\n            __m.__matches_[0].second = _VSTD::next(__first, __highest_j);\n            __m.__matches_[0].matched = true;\n            return true;\n        }\n    }\n    return false;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _Allocator>\nbool\nbasic_regex<_CharT, _Traits>::__match_at_start_posix_subs(\n        const _CharT* __first, const _CharT* __last,\n        match_results<const _CharT*, _Allocator>& __m,\n        regex_constants::match_flag_type __flags, bool __at_first) const\n{\n    vector<__state> __states;\n    __state __best_state;\n    ptrdiff_t __j = 0;\n    ptrdiff_t __highest_j = 0;\n    ptrdiff_t _Np = _VSTD::distance(__first, __last);\n    __node* __st = __start_.get();\n    if (__st)\n    {\n        sub_match<const _CharT*> __unmatched;\n        __unmatched.first   = __last;\n        __unmatched.second  = __last;\n        __unmatched.matched = false;\n\n        __states.push_back(__state());\n        __states.back().__do_ = 0;\n        __states.back().__first_ = __first;\n        __states.back().__current_ = __first;\n        __states.back().__last_ = __last;\n        __states.back().__sub_matches_.resize(mark_count(), __unmatched);\n        __states.back().__loop_data_.resize(__loop_count());\n        __states.back().__node_ = __st;\n        __states.back().__flags_ = __flags;\n        __states.back().__at_first_ = __at_first;\n        const _CharT* __current = __first;\n        bool __matched = false;\n        do\n        {\n            __state& __s = __states.back();\n            if (__s.__node_)\n                __s.__node_->__exec(__s);\n            switch (__s.__do_)\n            {\n            case __state::__end_state:\n                if ((__flags & regex_constants::match_not_null) &&\n                    __s.__current_ == __first)\n                {\n                  __states.pop_back();\n                  break;\n                }\n                if ((__flags & regex_constants::__full_match) &&\n                    __s.__current_ != __last)\n                {\n                  __states.pop_back();\n                  break;\n                }\n                if (!__matched || __highest_j < __s.__current_ - __s.__first_)\n                {\n                    __highest_j = __s.__current_ - __s.__first_;\n                    __best_state = __s;\n                }\n                __matched = true;\n                if (__highest_j == _Np)\n                    __states.clear();\n                else\n                    __states.pop_back();\n                break;\n            case __state::__accept_and_consume:\n                __j += __s.__current_ - __current;\n                __current = __s.__current_;\n                break;\n            case __state::__repeat:\n            case __state::__accept_but_not_consume:\n                break;\n            case __state::__split:\n                {\n                __state __snext = __s;\n                __s.__node_->__exec_split(true, __s);\n                __snext.__node_->__exec_split(false, __snext);\n                __states.push_back(_VSTD::move(__snext));\n                }\n                break;\n            case __state::__reject:\n                __states.pop_back();\n                break;\n            default:\n                __throw_regex_error<regex_constants::__re_err_unknown>();\n                break;\n            }\n        } while (!__states.empty());\n        if (__matched)\n        {\n            __m.__matches_[0].first = __first;\n            __m.__matches_[0].second = _VSTD::next(__first, __highest_j);\n            __m.__matches_[0].matched = true;\n            for (unsigned __i = 0; __i < __best_state.__sub_matches_.size(); ++__i)\n                __m.__matches_[__i+1] = __best_state.__sub_matches_[__i];\n            return true;\n        }\n    }\n    return false;\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _Allocator>\nbool\nbasic_regex<_CharT, _Traits>::__match_at_start(\n        const _CharT* __first, const _CharT* __last,\n        match_results<const _CharT*, _Allocator>& __m,\n        regex_constants::match_flag_type __flags, bool __at_first) const\n{\n    if ((__flags_ & 0x1F0) == ECMAScript)\n        return __match_at_start_ecma(__first, __last, __m, __flags, __at_first);\n    if (mark_count() == 0)\n        return __match_at_start_posix_nosubs(__first, __last, __m, __flags, __at_first);\n    return __match_at_start_posix_subs(__first, __last, __m, __flags, __at_first);\n}\n\ntemplate <class _CharT, class _Traits>\ntemplate <class _Allocator>\nbool\nbasic_regex<_CharT, _Traits>::__search(\n        const _CharT* __first, const _CharT* __last,\n        match_results<const _CharT*, _Allocator>& __m,\n        regex_constants::match_flag_type __flags) const\n{\n    __m.__init(1 + mark_count(), __first, __last,\n                                    __flags & regex_constants::__no_update_pos);\n    if (__match_at_start(__first, __last, __m, __flags, \n                                    !(__flags & regex_constants::__no_update_pos)))\n    {\n        __m.__prefix_.second = __m[0].first;\n        __m.__prefix_.matched = __m.__prefix_.first != __m.__prefix_.second;\n        __m.__suffix_.first = __m[0].second;\n        __m.__suffix_.matched = __m.__suffix_.first != __m.__suffix_.second;\n        return true;\n    }\n    if (__first != __last && !(__flags & regex_constants::match_continuous))\n    {\n        __flags |= regex_constants::match_prev_avail;\n        for (++__first; __first != __last; ++__first)\n        {\n            __m.__matches_.assign(__m.size(), __m.__unmatched_);\n            if (__match_at_start(__first, __last, __m, __flags, false))\n            {\n                __m.__prefix_.second = __m[0].first;\n                __m.__prefix_.matched = __m.__prefix_.first != __m.__prefix_.second;\n                __m.__suffix_.first = __m[0].second;\n                __m.__suffix_.matched = __m.__suffix_.first != __m.__suffix_.second;\n                return true;\n            }\n            __m.__matches_.assign(__m.size(), __m.__unmatched_);\n        }\n    }\n    __m.__matches_.clear();\n    return false;\n}\n\ntemplate <class _BidirectionalIterator, class _Allocator, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(_BidirectionalIterator __first, _BidirectionalIterator __last,\n             match_results<_BidirectionalIterator, _Allocator>& __m,\n             const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    int __offset = (__flags & regex_constants::match_prev_avail) ? 1 : 0;\n    basic_string<_CharT> __s(_VSTD::prev(__first, __offset), __last);\n    match_results<const _CharT*> __mc;\n    bool __r = __e.__search(__s.data() + __offset, __s.data() + __s.size(), __mc, __flags);\n    __m.__assign(__first, __last, __mc, __flags & regex_constants::__no_update_pos);\n    return __r;\n}\n\ntemplate <class _Iter, class _Allocator, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(__wrap_iter<_Iter> __first,\n             __wrap_iter<_Iter> __last,\n             match_results<__wrap_iter<_Iter>, _Allocator>& __m,\n             const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    match_results<const _CharT*> __mc;\n    bool __r = __e.__search(__first.base(), __last.base(), __mc, __flags);\n    __m.__assign(__first, __last, __mc, __flags & regex_constants::__no_update_pos);\n    return __r;\n}\n\ntemplate <class _Allocator, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(const _CharT* __first, const _CharT* __last,\n             match_results<const _CharT*, _Allocator>& __m,\n             const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    return __e.__search(__first, __last, __m, __flags);\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(_BidirectionalIterator __first, _BidirectionalIterator __last,\n             const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    basic_string<_CharT> __s(__first, __last);\n    match_results<const _CharT*> __mc;\n    return __e.__search(__s.data(), __s.data() + __s.size(), __mc, __flags);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(const _CharT* __first, const _CharT* __last,\n             const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    match_results<const _CharT*> __mc;\n    return __e.__search(__first, __last, __mc, __flags);\n}\n\ntemplate <class _CharT, class _Allocator, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(const _CharT* __str, match_results<const _CharT*, _Allocator>& __m,\n             const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    return __e.__search(__str, __str + _Traits::length(__str), __m, __flags);\n}\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(const _CharT* __str, const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    match_results<const _CharT*> __m;\n    return _VSTD::regex_search(__str, __m, __e, __flags);\n}\n\ntemplate <class _ST, class _SA, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(const basic_string<_CharT, _ST, _SA>& __s,\n             const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    match_results<const _CharT*> __mc;\n    return __e.__search(__s.data(), __s.data() + __s.size(), __mc, __flags);\n}\n\ntemplate <class _ST, class _SA, class _Allocator, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_search(const basic_string<_CharT, _ST, _SA>& __s,\n             match_results<typename basic_string<_CharT, _ST, _SA>::const_iterator, _Allocator>& __m,\n             const basic_regex<_CharT, _Traits>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    match_results<const _CharT*> __mc;\n    bool __r = __e.__search(__s.data(), __s.data() + __s.size(), __mc, __flags);\n    __m.__assign(__s.begin(), __s.end(), __mc, __flags & regex_constants::__no_update_pos);\n    return __r;\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _ST, class _SA, class _Ap, class _Cp, class _Tp>\nbool\nregex_search(const basic_string<_Cp, _ST, _SA>&& __s,\n             match_results<typename basic_string<_Cp, _ST, _SA>::const_iterator, _Ap>&,\n             const basic_regex<_Cp, _Tp>& __e,\n             regex_constants::match_flag_type __flags = regex_constants::match_default) = delete; \n#endif\n\n// regex_match\n\ntemplate <class _BidirectionalIterator, class _Allocator, class _CharT, class _Traits>\nbool\nregex_match(_BidirectionalIterator __first, _BidirectionalIterator __last,\n            match_results<_BidirectionalIterator, _Allocator>& __m,\n            const basic_regex<_CharT, _Traits>& __e,\n            regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    bool __r = _VSTD::regex_search(\n        __first, __last, __m, __e,\n        __flags | regex_constants::match_continuous |\n        regex_constants::__full_match);\n    if (__r)\n    {\n        __r = !__m.suffix().matched;\n        if (!__r)\n            __m.__matches_.clear();\n    }\n    return __r;\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_match(_BidirectionalIterator __first, _BidirectionalIterator __last,\n            const basic_regex<_CharT, _Traits>& __e,\n            regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    match_results<_BidirectionalIterator> __m;\n    return _VSTD::regex_match(__first, __last, __m, __e, __flags);\n}\n\ntemplate <class _CharT, class _Allocator, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_match(const _CharT* __str, match_results<const _CharT*, _Allocator>& __m,\n            const basic_regex<_CharT, _Traits>& __e,\n            regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    return _VSTD::regex_match(__str, __str + _Traits::length(__str), __m, __e, __flags);\n}\n\ntemplate <class _ST, class _SA, class _Allocator, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_match(const basic_string<_CharT, _ST, _SA>& __s,\n            match_results<typename basic_string<_CharT, _ST, _SA>::const_iterator, _Allocator>& __m,\n            const basic_regex<_CharT, _Traits>& __e,\n            regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    return _VSTD::regex_match(__s.begin(), __s.end(), __m, __e, __flags);\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _ST, class _SA, class _Allocator, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_match(const basic_string<_CharT, _ST, _SA>&& __s,\n            match_results<typename basic_string<_CharT, _ST, _SA>::const_iterator, _Allocator>& __m,\n            const basic_regex<_CharT, _Traits>& __e,\n            regex_constants::match_flag_type __flags = regex_constants::match_default) = delete; \n#endif\n\ntemplate <class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_match(const _CharT* __str, const basic_regex<_CharT, _Traits>& __e,\n            regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    return _VSTD::regex_match(__str, __str + _Traits::length(__str), __e, __flags);\n}\n\ntemplate <class _ST, class _SA, class _CharT, class _Traits>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nregex_match(const basic_string<_CharT, _ST, _SA>& __s,\n            const basic_regex<_CharT, _Traits>& __e,\n            regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    return _VSTD::regex_match(__s.begin(), __s.end(), __e, __flags);\n}\n\n// regex_iterator\n\ntemplate <class _BidirectionalIterator,\n          class _CharT = typename iterator_traits<_BidirectionalIterator>::value_type,\n          class _Traits = regex_traits<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS regex_iterator\n{\npublic:\n    typedef basic_regex<_CharT, _Traits>          regex_type;\n    typedef match_results<_BidirectionalIterator> value_type;\n    typedef ptrdiff_t                             difference_type;\n    typedef const value_type*                     pointer;\n    typedef const value_type&                     reference;\n    typedef forward_iterator_tag                  iterator_category;\n\nprivate:\n    _BidirectionalIterator           __begin_;\n    _BidirectionalIterator           __end_;\n    const regex_type*                __pregex_;\n    regex_constants::match_flag_type __flags_;\n    value_type                       __match_;\n\npublic:\n    regex_iterator();\n    regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                   const regex_type& __re,\n                   regex_constants::match_flag_type __m\n                                              = regex_constants::match_default);\n#if _LIBCPP_STD_VER > 11\n    regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                   const regex_type&& __re,\n                   regex_constants::match_flag_type __m \n                                     = regex_constants::match_default) = delete;\n#endif\n\n    bool operator==(const regex_iterator& __x) const;\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const regex_iterator& __x) const {return !(*this == __x);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {return  __match_;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const  {return &__match_;}\n\n    regex_iterator& operator++();\n    _LIBCPP_INLINE_VISIBILITY\n    regex_iterator operator++(int)\n    {\n        regex_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n};\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_iterator<_BidirectionalIterator, _CharT, _Traits>::regex_iterator()\n    : __begin_(), __end_(), __pregex_(nullptr), __flags_(), __match_()\n{\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    regex_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                   const regex_type& __re, regex_constants::match_flag_type __m)\n    : __begin_(__a),\n      __end_(__b),\n      __pregex_(&__re),\n      __flags_(__m)\n{\n    _VSTD::regex_search(__begin_, __end_, __match_, *__pregex_, __flags_);\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nbool\nregex_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    operator==(const regex_iterator& __x) const\n{\n    if (__match_.empty() && __x.__match_.empty())\n        return true;\n    if (__match_.empty() || __x.__match_.empty())\n        return false;\n    return __begin_ == __x.__begin_       &&\n           __end_ == __x.__end_           &&\n           __pregex_ == __x.__pregex_     &&\n           __flags_ == __x.__flags_       &&\n           __match_[0] == __x.__match_[0];\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_iterator<_BidirectionalIterator, _CharT, _Traits>&\nregex_iterator<_BidirectionalIterator, _CharT, _Traits>::operator++()\n{\n    __flags_ |= regex_constants::__no_update_pos;\n    _BidirectionalIterator __start = __match_[0].second;\n    if (__match_[0].first == __match_[0].second)\n    {\n        if (__start == __end_)\n        {\n            __match_ = value_type();\n            return *this;\n        }\n        else if (_VSTD::regex_search(__start, __end_, __match_, *__pregex_,\n                                    __flags_ | regex_constants::match_not_null |\n                                    regex_constants::match_continuous))\n            return *this;\n        else\n            ++__start;\n    }\n    __flags_ |= regex_constants::match_prev_avail;\n    if (!_VSTD::regex_search(__start, __end_, __match_, *__pregex_, __flags_))\n        __match_ = value_type();\n    return *this;\n}\n\ntypedef regex_iterator<const char*>             cregex_iterator;\ntypedef regex_iterator<const wchar_t*>          wcregex_iterator;\ntypedef regex_iterator<string::const_iterator>  sregex_iterator;\ntypedef regex_iterator<wstring::const_iterator> wsregex_iterator;\n\n// regex_token_iterator\n\ntemplate <class _BidirectionalIterator,\n          class _CharT = typename iterator_traits<_BidirectionalIterator>::value_type,\n          class _Traits = regex_traits<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS regex_token_iterator\n{\npublic:\n    typedef basic_regex<_CharT, _Traits>      regex_type;\n    typedef sub_match<_BidirectionalIterator> value_type;\n    typedef ptrdiff_t                         difference_type;\n    typedef const value_type*                 pointer;\n    typedef const value_type&                 reference;\n    typedef forward_iterator_tag              iterator_category;\n\nprivate:\n    typedef regex_iterator<_BidirectionalIterator, _CharT, _Traits> _Position;\n\n    _Position         __position_;\n    const value_type* __result_;\n    value_type        __suffix_;\n    ptrdiff_t         __n_;\n    vector<int>       __subs_;\n\npublic:\n    regex_token_iterator();\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type& __re, int __submatch = 0,\n                         regex_constants::match_flag_type __m =\n                                                regex_constants::match_default);\n#if _LIBCPP_STD_VER > 11\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type&& __re, int __submatch = 0,\n                         regex_constants::match_flag_type __m =\n                                       regex_constants::match_default) = delete;\n#endif\n\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type& __re, const vector<int>& __submatches,\n                         regex_constants::match_flag_type __m =\n                                                regex_constants::match_default);\n#if _LIBCPP_STD_VER > 11\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type&& __re, const vector<int>& __submatches,\n                         regex_constants::match_flag_type __m =\n                                     regex_constants::match_default) = delete;\n#endif\n\n#ifndef _LIBCPP_CXX03_LANG\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type& __re,\n                         initializer_list<int> __submatches,\n                         regex_constants::match_flag_type __m =\n                                                regex_constants::match_default);\n\n#if _LIBCPP_STD_VER > 11\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type&& __re,\n                         initializer_list<int> __submatches,\n                         regex_constants::match_flag_type __m =\n                                       regex_constants::match_default) = delete;\n#endif\n#endif  // _LIBCPP_CXX03_LANG\n    template <size_t _Np>\n        regex_token_iterator(_BidirectionalIterator __a,\n                             _BidirectionalIterator __b,\n                             const regex_type& __re,\n                             const int (&__submatches)[_Np],\n                             regex_constants::match_flag_type __m =\n                                                regex_constants::match_default);\n#if _LIBCPP_STD_VER > 11\n    template <std::size_t _Np>\n        regex_token_iterator(_BidirectionalIterator __a,\n                             _BidirectionalIterator __b,\n                             const regex_type&& __re,\n                             const int (&__submatches)[_Np],\n                             regex_constants::match_flag_type __m =\n                                      regex_constants::match_default) = delete;\n#endif\n\n    regex_token_iterator(const regex_token_iterator&);\n    regex_token_iterator& operator=(const regex_token_iterator&);\n\n    bool operator==(const regex_token_iterator& __x) const;\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const regex_token_iterator& __x) const {return !(*this == __x);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const value_type& operator*() const {return *__result_;}\n    _LIBCPP_INLINE_VISIBILITY\n    const value_type* operator->() const {return __result_;}\n\n    regex_token_iterator& operator++();\n    _LIBCPP_INLINE_VISIBILITY\n    regex_token_iterator operator++(int)\n    {\n        regex_token_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\nprivate:\n    void __init(_BidirectionalIterator __a, _BidirectionalIterator __b);\n    void __establish_result () {\n        if (__subs_[__n_] == -1)\n            __result_ = &__position_->prefix();\n        else\n            __result_ = &(*__position_)[__subs_[__n_]];\n        }       \n};\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    regex_token_iterator()\n    : __result_(nullptr),\n      __suffix_(),\n      __n_(0)\n{\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nvoid\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    __init(_BidirectionalIterator __a, _BidirectionalIterator __b)\n{\n    if (__position_ != _Position())\n        __establish_result ();\n    else if (__subs_[__n_] == -1)\n    {\n        __suffix_.matched = true;\n        __suffix_.first = __a;\n        __suffix_.second = __b;\n        __result_ = &__suffix_;\n    }\n    else\n        __result_ = nullptr;\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type& __re, int __submatch,\n                         regex_constants::match_flag_type __m)\n    : __position_(__a, __b, __re, __m),\n      __n_(0),\n      __subs_(1, __submatch)\n{\n    __init(__a, __b);\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type& __re, const vector<int>& __submatches,\n                         regex_constants::match_flag_type __m)\n    : __position_(__a, __b, __re, __m),\n      __n_(0),\n      __subs_(__submatches)\n{\n    __init(__a, __b);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                         const regex_type& __re,\n                         initializer_list<int> __submatches,\n                         regex_constants::match_flag_type __m)\n    : __position_(__a, __b, __re, __m),\n      __n_(0),\n      __subs_(__submatches)\n{\n    __init(__a, __b);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\ntemplate <size_t _Np>\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    regex_token_iterator(_BidirectionalIterator __a, _BidirectionalIterator __b,\n                             const regex_type& __re,\n                             const int (&__submatches)[_Np],\n                             regex_constants::match_flag_type __m)\n    : __position_(__a, __b, __re, __m),\n      __n_(0),\n      __subs_(__submatches, __submatches + _Np)\n{\n    __init(__a, __b);\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    regex_token_iterator(const regex_token_iterator& __x)\n    : __position_(__x.__position_),\n      __result_(__x.__result_),\n      __suffix_(__x.__suffix_),\n      __n_(__x.__n_),\n      __subs_(__x.__subs_)\n{\n    if (__x.__result_ == &__x.__suffix_)\n        __result_ = &__suffix_;\n    else if ( __result_ != nullptr )\n        __establish_result ();\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>&\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    operator=(const regex_token_iterator& __x)\n{\n    if (this != &__x)\n    {\n        __position_ = __x.__position_;\n        if (__x.__result_ == &__x.__suffix_)\n            __result_ = &__suffix_;\n        else\n            __result_ = __x.__result_;\n        __suffix_ = __x.__suffix_;\n        __n_ = __x.__n_;\n        __subs_ = __x.__subs_;\n\n        if ( __result_ != nullptr && __result_ != &__suffix_ )\n            __establish_result();\n    }\n    return *this;\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nbool\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::\n    operator==(const regex_token_iterator& __x) const\n{\n    if (__result_ == nullptr && __x.__result_ == nullptr)\n        return true;\n    if (__result_ == &__suffix_ && __x.__result_ == &__x.__suffix_ &&\n            __suffix_ == __x.__suffix_)\n        return true;\n    if (__result_ == nullptr || __x.__result_ == nullptr)\n        return false;\n    if (__result_ == &__suffix_ || __x.__result_ == &__x.__suffix_)\n        return false;\n    return __position_ == __x.__position_ && __n_ == __x.__n_ &&\n           __subs_ == __x.__subs_;\n}\n\ntemplate <class _BidirectionalIterator, class _CharT, class _Traits>\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>&\nregex_token_iterator<_BidirectionalIterator, _CharT, _Traits>::operator++()\n{\n    _Position __prev = __position_;\n    if (__result_ == &__suffix_)\n        __result_ = nullptr;\n    else if (static_cast<size_t>(__n_ + 1) < __subs_.size())\n    {\n        ++__n_;\n        __establish_result();\n    }\n    else\n    {\n        __n_ = 0;\n        ++__position_;\n        if (__position_ != _Position())\n            __establish_result();\n        else\n        {\n            if (_VSTD::find(__subs_.begin(), __subs_.end(), -1) != __subs_.end()\n                && __prev->suffix().length() != 0)\n            {\n                __suffix_.matched = true;\n                __suffix_.first = __prev->suffix().first;\n                __suffix_.second = __prev->suffix().second;\n                __result_ = &__suffix_;\n            }\n            else\n                __result_ = nullptr;\n        }\n    }\n    return *this;\n}\n\ntypedef regex_token_iterator<const char*>             cregex_token_iterator;\ntypedef regex_token_iterator<const wchar_t*>          wcregex_token_iterator;\ntypedef regex_token_iterator<string::const_iterator>  sregex_token_iterator;\ntypedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;\n\n// regex_replace\n\ntemplate <class _OutputIterator, class _BidirectionalIterator,\n          class _Traits, class _CharT>\n_OutputIterator\nregex_replace(_OutputIterator __output,\n              _BidirectionalIterator __first, _BidirectionalIterator __last,\n              const basic_regex<_CharT, _Traits>& __e, const _CharT* __fmt,\n              regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    typedef regex_iterator<_BidirectionalIterator, _CharT, _Traits> _Iter;\n    _Iter __i(__first, __last, __e, __flags);\n    _Iter __eof;\n    if (__i == __eof)\n    {\n        if (!(__flags & regex_constants::format_no_copy))\n            __output = _VSTD::copy(__first, __last, __output);\n    }\n    else\n    {\n        sub_match<_BidirectionalIterator> __lm;\n        for (size_t __len = char_traits<_CharT>::length(__fmt); __i != __eof; ++__i)\n        {\n            if (!(__flags & regex_constants::format_no_copy))\n                __output = _VSTD::copy(__i->prefix().first, __i->prefix().second, __output);\n            __output = __i->format(__output, __fmt, __fmt + __len, __flags);\n            __lm = __i->suffix();\n            if (__flags & regex_constants::format_first_only)\n                break;\n        }\n        if (!(__flags & regex_constants::format_no_copy))\n            __output = _VSTD::copy(__lm.first, __lm.second, __output);\n    }\n    return __output;\n}\n\ntemplate <class _OutputIterator, class _BidirectionalIterator,\n          class _Traits, class _CharT, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\n_OutputIterator\nregex_replace(_OutputIterator __output,\n              _BidirectionalIterator __first, _BidirectionalIterator __last,\n              const basic_regex<_CharT, _Traits>& __e,\n              const basic_string<_CharT, _ST, _SA>& __fmt,\n              regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    return _VSTD::regex_replace(__output, __first, __last, __e, __fmt.c_str(), __flags);\n}\n\ntemplate <class _Traits, class _CharT, class _ST, class _SA, class _FST,\n          class _FSA>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _ST, _SA>\nregex_replace(const basic_string<_CharT, _ST, _SA>& __s,\n              const basic_regex<_CharT, _Traits>& __e,\n              const basic_string<_CharT, _FST, _FSA>& __fmt,\n              regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    basic_string<_CharT, _ST, _SA> __r;\n    _VSTD::regex_replace(back_inserter(__r), __s.begin(), __s.end(), __e,\n                        __fmt.c_str(), __flags);\n    return __r;\n}\n\ntemplate <class _Traits, class _CharT, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _ST, _SA>\nregex_replace(const basic_string<_CharT, _ST, _SA>& __s,\n              const basic_regex<_CharT, _Traits>& __e, const _CharT* __fmt,\n              regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    basic_string<_CharT, _ST, _SA> __r;\n    _VSTD::regex_replace(back_inserter(__r), __s.begin(), __s.end(), __e,\n                        __fmt, __flags);\n    return __r;\n}\n\ntemplate <class _Traits, class _CharT, class _ST, class _SA>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT>\nregex_replace(const _CharT* __s,\n              const basic_regex<_CharT, _Traits>& __e,\n              const basic_string<_CharT, _ST, _SA>& __fmt,\n              regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    basic_string<_CharT> __r;\n    _VSTD::regex_replace(back_inserter(__r), __s,\n                        __s + char_traits<_CharT>::length(__s), __e,\n                        __fmt.c_str(), __flags);\n    return __r;\n}\n\ntemplate <class _Traits, class _CharT>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT>\nregex_replace(const _CharT* __s,\n              const basic_regex<_CharT, _Traits>& __e,\n              const _CharT* __fmt,\n              regex_constants::match_flag_type __flags = regex_constants::match_default)\n{\n    basic_string<_CharT> __r;\n    _VSTD::regex_replace(back_inserter(__r), __s,\n                        __s + char_traits<_CharT>::length(__s), __e,\n                        __fmt, __flags);\n    return __r;\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_REGEX\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/scoped_allocator",
    "content": "// -*- C++ -*-\n//===-------------------------- scoped_allocator --------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_SCOPED_ALLOCATOR\n#define _LIBCPP_SCOPED_ALLOCATOR\n\n/*\n    scoped_allocator synopsis\n\nnamespace std\n{\n\ntemplate <class OuterAlloc, class... InnerAllocs>\nclass scoped_allocator_adaptor : public OuterAlloc\n{\n    typedef allocator_traits<OuterAlloc> OuterTraits; // exposition only\n    scoped_allocator_adaptor<InnerAllocs...> inner;   // exposition only\npublic:\n\n    typedef OuterAlloc outer_allocator_type;\n    typedef see below inner_allocator_type;\n\n    typedef typename OuterTraits::value_type value_type;\n    typedef typename OuterTraits::size_type size_type;\n    typedef typename OuterTraits::difference_type difference_type;\n    typedef typename OuterTraits::pointer pointer;\n    typedef typename OuterTraits::const_pointer const_pointer;\n    typedef typename OuterTraits::void_pointer void_pointer;\n    typedef typename OuterTraits::const_void_pointer const_void_pointer;\n\n    typedef see below propagate_on_container_copy_assignment;\n    typedef see below propagate_on_container_move_assignment;\n    typedef see below propagate_on_container_swap;\n    typedef see below is_always_equal;\n\n    template <class Tp>\n        struct rebind\n        {\n            typedef scoped_allocator_adaptor<\n                OuterTraits::template rebind_alloc<Tp>, InnerAllocs...> other;\n        };\n\n    scoped_allocator_adaptor();\n    template <class OuterA2>\n        scoped_allocator_adaptor(OuterA2&& outerAlloc,\n                                 const InnerAllocs&... innerAllocs) noexcept;\n    scoped_allocator_adaptor(const scoped_allocator_adaptor& other) noexcept;\n    scoped_allocator_adaptor(scoped_allocator_adaptor&& other) noexcept;\n    template <class OuterA2>\n        scoped_allocator_adaptor(const scoped_allocator_adaptor<OuterA2, InnerAllocs...>& other) noexcept;\n    template <class OuterA2>\n        scoped_allocator_adaptor(const scoped_allocator_adaptor<OuterA2, InnerAllocs...>&& other) noexcept;\n\n    scoped_allocator_adaptor& operator=(const scoped_allocator_adaptor&) = default;\n    scoped_allocator_adaptor& operator=(scoped_allocator_adaptor&&) = default;\n    ~scoped_allocator_adaptor();\n\n    inner_allocator_type& inner_allocator() noexcept;\n    const inner_allocator_type& inner_allocator() const noexcept;\n\n    outer_allocator_type& outer_allocator() noexcept;\n    const outer_allocator_type& outer_allocator() const noexcept;\n\n    pointer allocate(size_type n);\n    pointer allocate(size_type n, const_void_pointer hint);\n    void deallocate(pointer p, size_type n) noexcept;\n\n    size_type max_size() const;\n    template <class T, class... Args> void construct(T* p, Args&& args);\n    template <class T1, class T2, class... Args1, class... Args2>\n        void construct(pair<T1, T2>* p, piecewise_construct t, tuple<Args1...> x,\n                       tuple<Args2...> y);\n    template <class T1, class T2>\n        void construct(pair<T1, T2>* p);\n    template <class T1, class T2, class U, class V>\n        void construct(pair<T1, T2>* p, U&& x, V&& y);\n    template <class T1, class T2, class U, class V>\n        void construct(pair<T1, T2>* p, const pair<U, V>& x);\n    template <class T1, class T2, class U, class V>\n        void construct(pair<T1, T2>* p, pair<U, V>&& x);\n    template <class T> void destroy(T* p);\n\n    template <class T> void destroy(T* p) noexcept;\n\n    scoped_allocator_adaptor select_on_container_copy_construction() const noexcept;\n};\n\ntemplate <class OuterA1, class OuterA2, class... InnerAllocs>\n    bool\n    operator==(const scoped_allocator_adaptor<OuterA1, InnerAllocs...>& a,\n               const scoped_allocator_adaptor<OuterA2, InnerAllocs...>& b) noexcept;\n\ntemplate <class OuterA1, class OuterA2, class... InnerAllocs>\n    bool\n    operator!=(const scoped_allocator_adaptor<OuterA1, InnerAllocs...>& a,\n               const scoped_allocator_adaptor<OuterA2, InnerAllocs...>& b) noexcept;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <memory>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#if !defined(_LIBCPP_CXX03_LANG)\n\n// scoped_allocator_adaptor\n\ntemplate <class ..._Allocs>\nclass scoped_allocator_adaptor;\n\ntemplate <class ..._Allocs> struct __get_poc_copy_assignment;\n\ntemplate <class _A0>\nstruct __get_poc_copy_assignment<_A0>\n{\n    static const bool value = allocator_traits<_A0>::\n                              propagate_on_container_copy_assignment::value;\n};\n\ntemplate <class _A0, class ..._Allocs>\nstruct __get_poc_copy_assignment<_A0, _Allocs...>\n{\n    static const bool value =\n        allocator_traits<_A0>::propagate_on_container_copy_assignment::value ||\n        __get_poc_copy_assignment<_Allocs...>::value;\n};\n\ntemplate <class ..._Allocs> struct __get_poc_move_assignment;\n\ntemplate <class _A0>\nstruct __get_poc_move_assignment<_A0>\n{\n    static const bool value = allocator_traits<_A0>::\n                              propagate_on_container_move_assignment::value;\n};\n\ntemplate <class _A0, class ..._Allocs>\nstruct __get_poc_move_assignment<_A0, _Allocs...>\n{\n    static const bool value =\n        allocator_traits<_A0>::propagate_on_container_move_assignment::value ||\n        __get_poc_move_assignment<_Allocs...>::value;\n};\n\ntemplate <class ..._Allocs> struct __get_poc_swap;\n\ntemplate <class _A0>\nstruct __get_poc_swap<_A0>\n{\n    static const bool value = allocator_traits<_A0>::\n                              propagate_on_container_swap::value;\n};\n\ntemplate <class _A0, class ..._Allocs>\nstruct __get_poc_swap<_A0, _Allocs...>\n{\n    static const bool value =\n        allocator_traits<_A0>::propagate_on_container_swap::value ||\n        __get_poc_swap<_Allocs...>::value;\n};\n\ntemplate <class ..._Allocs> struct __get_is_always_equal;\n\ntemplate <class _A0>\nstruct __get_is_always_equal<_A0>\n{\n    static const bool value = allocator_traits<_A0>::is_always_equal::value;\n};\n\ntemplate <class _A0, class ..._Allocs>\nstruct __get_is_always_equal<_A0, _Allocs...>\n{\n    static const bool value =\n        allocator_traits<_A0>::is_always_equal::value &&\n        __get_is_always_equal<_Allocs...>::value;\n};\n\ntemplate <class ..._Allocs>\nclass __scoped_allocator_storage;\n\ntemplate <class _OuterAlloc, class... _InnerAllocs>\nclass __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...>\n    : public _OuterAlloc\n{\n    typedef _OuterAlloc outer_allocator_type;\nprotected:\n    typedef scoped_allocator_adaptor<_InnerAllocs...> inner_allocator_type;\n\nprivate:\n    inner_allocator_type __inner_;\n\nprotected:\n\n    _LIBCPP_INLINE_VISIBILITY\n    __scoped_allocator_storage() _NOEXCEPT {}\n\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, _OuterA2>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        __scoped_allocator_storage(_OuterA2&& __outerAlloc,\n                                   const _InnerAllocs& ...__innerAllocs) _NOEXCEPT\n            : outer_allocator_type(_VSTD::forward<_OuterA2>(__outerAlloc)),\n              __inner_(__innerAllocs...) {}\n\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, const _OuterA2&>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        __scoped_allocator_storage(\n            const __scoped_allocator_storage<_OuterA2, _InnerAllocs...>& __other) _NOEXCEPT\n            : outer_allocator_type(__other.outer_allocator()),\n              __inner_(__other.inner_allocator()) {}\n\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, _OuterA2>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        __scoped_allocator_storage(\n            __scoped_allocator_storage<_OuterA2, _InnerAllocs...>&& __other) _NOEXCEPT\n            : outer_allocator_type(_VSTD::move(__other.outer_allocator())),\n              __inner_(_VSTD::move(__other.inner_allocator())) {}\n\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, _OuterA2>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        __scoped_allocator_storage(_OuterA2&& __o,\n                                   const inner_allocator_type& __i) _NOEXCEPT\n            : outer_allocator_type(_VSTD::forward<_OuterA2>(__o)),\n              __inner_(__i)\n        {\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    inner_allocator_type& inner_allocator() _NOEXCEPT             {return __inner_;}\n    _LIBCPP_INLINE_VISIBILITY\n    const inner_allocator_type& inner_allocator() const _NOEXCEPT {return __inner_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    outer_allocator_type& outer_allocator() _NOEXCEPT\n        {return static_cast<outer_allocator_type&>(*this);}\n    _LIBCPP_INLINE_VISIBILITY\n    const outer_allocator_type& outer_allocator() const _NOEXCEPT\n        {return static_cast<const outer_allocator_type&>(*this);}\n\n    scoped_allocator_adaptor<outer_allocator_type, _InnerAllocs...>\n    _LIBCPP_INLINE_VISIBILITY\n    select_on_container_copy_construction() const _NOEXCEPT\n        {\n            return scoped_allocator_adaptor<outer_allocator_type, _InnerAllocs...>\n            (\n                allocator_traits<outer_allocator_type>::\n                    select_on_container_copy_construction(outer_allocator()),\n                allocator_traits<inner_allocator_type>::\n                    select_on_container_copy_construction(inner_allocator())\n            );\n        }\n\n    template <class...> friend class __scoped_allocator_storage;\n};\n\ntemplate <class _OuterAlloc>\nclass __scoped_allocator_storage<_OuterAlloc>\n    : public _OuterAlloc\n{\n    typedef _OuterAlloc outer_allocator_type;\nprotected:\n    typedef scoped_allocator_adaptor<_OuterAlloc> inner_allocator_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __scoped_allocator_storage() _NOEXCEPT {}\n\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, _OuterA2>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        __scoped_allocator_storage(_OuterA2&& __outerAlloc) _NOEXCEPT\n            : outer_allocator_type(_VSTD::forward<_OuterA2>(__outerAlloc)) {}\n\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, const _OuterA2&>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        __scoped_allocator_storage(\n            const __scoped_allocator_storage<_OuterA2>& __other) _NOEXCEPT\n            : outer_allocator_type(__other.outer_allocator()) {}\n\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, _OuterA2>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        __scoped_allocator_storage(\n            __scoped_allocator_storage<_OuterA2>&& __other) _NOEXCEPT\n            : outer_allocator_type(_VSTD::move(__other.outer_allocator())) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    inner_allocator_type& inner_allocator() _NOEXCEPT\n        {return static_cast<inner_allocator_type&>(*this);}\n    _LIBCPP_INLINE_VISIBILITY\n    const inner_allocator_type& inner_allocator() const _NOEXCEPT\n        {return static_cast<const inner_allocator_type&>(*this);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    outer_allocator_type& outer_allocator() _NOEXCEPT\n        {return static_cast<outer_allocator_type&>(*this);}\n    _LIBCPP_INLINE_VISIBILITY\n    const outer_allocator_type& outer_allocator() const _NOEXCEPT\n        {return static_cast<const outer_allocator_type&>(*this);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    scoped_allocator_adaptor<outer_allocator_type>\n    select_on_container_copy_construction() const _NOEXCEPT\n        {return scoped_allocator_adaptor<outer_allocator_type>(\n            allocator_traits<outer_allocator_type>::\n                select_on_container_copy_construction(outer_allocator())\n        );}\n\n    __scoped_allocator_storage(const outer_allocator_type& __o,\n                               const inner_allocator_type& __i) _NOEXCEPT;\n\n    template <class...> friend class __scoped_allocator_storage;\n};\n\n// __outermost\n\ntemplate <class _Alloc>\ndecltype(declval<_Alloc>().outer_allocator(), true_type())\n__has_outer_allocator_test(_Alloc&& __a);\n\ntemplate <class _Alloc>\nfalse_type\n__has_outer_allocator_test(const volatile _Alloc& __a);\n\ntemplate <class _Alloc>\nstruct __has_outer_allocator\n    : public common_type\n             <\n                 decltype(__has_outer_allocator_test(declval<_Alloc&>()))\n             >::type\n{\n};\n\ntemplate <class _Alloc, bool = __has_outer_allocator<_Alloc>::value>\nstruct __outermost\n{\n    typedef _Alloc type;\n    _LIBCPP_INLINE_VISIBILITY\n    type& operator()(type& __a) const _NOEXCEPT {return __a;}\n};\n\ntemplate <class _Alloc>\nstruct __outermost<_Alloc, true>\n{\n    typedef typename remove_reference\n                     <\n                        decltype(_VSTD::declval<_Alloc>().outer_allocator())\n                     >::type                                    _OuterAlloc;\n    typedef typename __outermost<_OuterAlloc>::type             type;\n    _LIBCPP_INLINE_VISIBILITY\n    type& operator()(_Alloc& __a) const _NOEXCEPT\n        {return __outermost<_OuterAlloc>()(__a.outer_allocator());}\n};\n\ntemplate <class _OuterAlloc, class... _InnerAllocs>\nclass _LIBCPP_TEMPLATE_VIS scoped_allocator_adaptor<_OuterAlloc, _InnerAllocs...>\n    : public __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...>\n{\n    typedef __scoped_allocator_storage<_OuterAlloc, _InnerAllocs...> base;\n    typedef allocator_traits<_OuterAlloc>             _OuterTraits;\npublic:\n    typedef _OuterAlloc                               outer_allocator_type;\n    typedef typename base::inner_allocator_type       inner_allocator_type;\n    typedef typename _OuterTraits::size_type          size_type;\n    typedef typename _OuterTraits::difference_type    difference_type;\n    typedef typename _OuterTraits::pointer            pointer;\n    typedef typename _OuterTraits::const_pointer      const_pointer;\n    typedef typename _OuterTraits::void_pointer       void_pointer;\n    typedef typename _OuterTraits::const_void_pointer const_void_pointer;\n\n    typedef integral_constant\n            <\n                bool,\n                __get_poc_copy_assignment<outer_allocator_type,\n                                          _InnerAllocs...>::value\n            > propagate_on_container_copy_assignment;\n    typedef integral_constant\n            <\n                bool,\n                __get_poc_move_assignment<outer_allocator_type,\n                                          _InnerAllocs...>::value\n            > propagate_on_container_move_assignment;\n    typedef integral_constant\n            <\n                bool,\n                __get_poc_swap<outer_allocator_type, _InnerAllocs...>::value\n            > propagate_on_container_swap;\n    typedef integral_constant\n            <\n                bool,\n                __get_is_always_equal<outer_allocator_type, _InnerAllocs...>::value\n            > is_always_equal;\n\n    template <class _Tp>\n    struct rebind\n    {\n        typedef scoped_allocator_adaptor\n        <\n            typename _OuterTraits::template rebind_alloc<_Tp>, _InnerAllocs...\n        > other;\n    };\n\n    _LIBCPP_INLINE_VISIBILITY\n    scoped_allocator_adaptor() _NOEXCEPT {}\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, _OuterA2>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        scoped_allocator_adaptor(_OuterA2&& __outerAlloc,\n                                 const _InnerAllocs& ...__innerAllocs) _NOEXCEPT\n            : base(_VSTD::forward<_OuterA2>(__outerAlloc), __innerAllocs...) {}\n    // scoped_allocator_adaptor(const scoped_allocator_adaptor& __other) = default;\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, const _OuterA2&>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        scoped_allocator_adaptor(\n            const scoped_allocator_adaptor<_OuterA2, _InnerAllocs...>& __other) _NOEXCEPT\n                : base(__other) {}\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, _OuterA2>::value\n                      >::type>\n        _LIBCPP_INLINE_VISIBILITY\n        scoped_allocator_adaptor(\n            scoped_allocator_adaptor<_OuterA2, _InnerAllocs...>&& __other) _NOEXCEPT\n                : base(_VSTD::move(__other)) {}\n\n    // scoped_allocator_adaptor& operator=(const scoped_allocator_adaptor&) = default;\n    // scoped_allocator_adaptor& operator=(scoped_allocator_adaptor&&) = default;\n    // ~scoped_allocator_adaptor() = default;\n\n    _LIBCPP_INLINE_VISIBILITY\n    inner_allocator_type& inner_allocator() _NOEXCEPT\n        {return base::inner_allocator();}\n    _LIBCPP_INLINE_VISIBILITY\n    const inner_allocator_type& inner_allocator() const _NOEXCEPT\n        {return base::inner_allocator();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    outer_allocator_type& outer_allocator() _NOEXCEPT\n        {return base::outer_allocator();}\n    _LIBCPP_INLINE_VISIBILITY\n    const outer_allocator_type& outer_allocator() const _NOEXCEPT\n        {return base::outer_allocator();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pointer allocate(size_type __n)\n        {return allocator_traits<outer_allocator_type>::\n            allocate(outer_allocator(), __n);}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer allocate(size_type __n, const_void_pointer __hint)\n        {return allocator_traits<outer_allocator_type>::\n            allocate(outer_allocator(), __n, __hint);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void deallocate(pointer __p, size_type __n) _NOEXCEPT\n        {allocator_traits<outer_allocator_type>::\n            deallocate(outer_allocator(), __p, __n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const\n        {return allocator_traits<outer_allocator_type>::max_size(outer_allocator());}\n\n    template <class _Tp, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        void construct(_Tp* __p, _Args&& ...__args)\n            {__construct(__uses_alloc_ctor<_Tp, inner_allocator_type&, _Args...>(),\n                         __p, _VSTD::forward<_Args>(__args)...);}\n\n    template <class _T1, class _T2, class... _Args1, class... _Args2>\n    void construct(pair<_T1, _T2>* __p, piecewise_construct_t,\n                       tuple<_Args1...> __x, tuple<_Args2...> __y)\n    {\n        typedef __outermost<outer_allocator_type> _OM;\n        allocator_traits<typename _OM::type>::construct(\n            _OM()(outer_allocator()), __p, piecewise_construct\n          , __transform_tuple(\n              typename __uses_alloc_ctor<\n                  _T1, inner_allocator_type&, _Args1...\n              >::type()\n            , _VSTD::move(__x)\n            , typename __make_tuple_indices<sizeof...(_Args1)>::type{}\n          )\n          , __transform_tuple(\n              typename __uses_alloc_ctor<\n                  _T2, inner_allocator_type&, _Args2...\n              >::type()\n            , _VSTD::move(__y)\n            , typename __make_tuple_indices<sizeof...(_Args2)>::type{}\n          )\n        );\n    }\n\n    template <class _T1, class _T2>\n    void construct(pair<_T1, _T2>* __p)\n    { construct(__p, piecewise_construct, tuple<>{}, tuple<>{}); }\n\n    template <class _T1, class _T2, class _Up, class _Vp>\n    void construct(pair<_T1, _T2>* __p, _Up&& __x, _Vp&& __y) {\n        construct(__p, piecewise_construct,\n                  _VSTD::forward_as_tuple(_VSTD::forward<_Up>(__x)),\n                  _VSTD::forward_as_tuple(_VSTD::forward<_Vp>(__y)));\n    }\n\n    template <class _T1, class _T2, class _Up, class _Vp>\n    void construct(pair<_T1, _T2>* __p, const pair<_Up, _Vp>& __x) {\n        construct(__p, piecewise_construct,\n                  _VSTD::forward_as_tuple(__x.first),\n                  _VSTD::forward_as_tuple(__x.second));\n    }\n\n    template <class _T1, class _T2, class _Up, class _Vp>\n    void construct(pair<_T1, _T2>* __p, pair<_Up, _Vp>&& __x) {\n        construct(__p, piecewise_construct,\n                  _VSTD::forward_as_tuple(_VSTD::forward<_Up>(__x.first)),\n                  _VSTD::forward_as_tuple(_VSTD::forward<_Vp>(__x.second)));\n    }\n\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        void destroy(_Tp* __p)\n            {\n                typedef __outermost<outer_allocator_type> _OM;\n                allocator_traits<typename _OM::type>::\n                                         destroy(_OM()(outer_allocator()), __p);\n            }\n\n    _LIBCPP_INLINE_VISIBILITY\n    scoped_allocator_adaptor select_on_container_copy_construction() const _NOEXCEPT\n        {return base::select_on_container_copy_construction();}\n\nprivate:\n\n\n    template <class _OuterA2,\n              class = typename enable_if<\n                        is_constructible<outer_allocator_type, _OuterA2>::value\n                      >::type>\n    _LIBCPP_INLINE_VISIBILITY\n    scoped_allocator_adaptor(_OuterA2&& __o,\n                             const inner_allocator_type& __i) _NOEXCEPT\n        : base(_VSTD::forward<_OuterA2>(__o), __i) {}\n\n    template <class _Tp, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        void __construct(integral_constant<int, 0>, _Tp* __p, _Args&& ...__args)\n            {\n                typedef __outermost<outer_allocator_type> _OM;\n                allocator_traits<typename _OM::type>::construct\n                (\n                    _OM()(outer_allocator()),\n                    __p,\n                    _VSTD::forward<_Args>(__args)...\n                );\n            }\n\n    template <class _Tp, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        void __construct(integral_constant<int, 1>, _Tp* __p, _Args&& ...__args)\n            {\n                typedef __outermost<outer_allocator_type> _OM;\n                allocator_traits<typename _OM::type>::construct\n                (\n                    _OM()(outer_allocator()),\n                    __p, allocator_arg, inner_allocator(),\n                    _VSTD::forward<_Args>(__args)...\n                );\n            }\n\n    template <class _Tp, class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        void __construct(integral_constant<int, 2>, _Tp* __p, _Args&& ...__args)\n            {\n                typedef __outermost<outer_allocator_type> _OM;\n                allocator_traits<typename _OM::type>::construct\n                (\n                    _OM()(outer_allocator()),\n                    __p,\n                    _VSTD::forward<_Args>(__args)...,\n                    inner_allocator()\n                );\n            }\n\n    template <class ..._Args, size_t ..._Idx>\n    _LIBCPP_INLINE_VISIBILITY\n    tuple<_Args&&...>\n    __transform_tuple(integral_constant<int, 0>, tuple<_Args...>&& __t,\n                      __tuple_indices<_Idx...>)\n    {\n        return _VSTD::forward_as_tuple(_VSTD::get<_Idx>(_VSTD::move(__t))...);\n    }\n\n    template <class ..._Args, size_t ..._Idx>\n    _LIBCPP_INLINE_VISIBILITY\n    tuple<allocator_arg_t, inner_allocator_type&, _Args&&...>\n    __transform_tuple(integral_constant<int, 1>, tuple<_Args...> && __t,\n                      __tuple_indices<_Idx...>)\n    {\n        using _Tup = tuple<allocator_arg_t, inner_allocator_type&, _Args&&...>;\n        return _Tup(allocator_arg, inner_allocator(),\n                    _VSTD::get<_Idx>(_VSTD::move(__t))...);\n    }\n\n    template <class ..._Args, size_t ..._Idx>\n    _LIBCPP_INLINE_VISIBILITY\n    tuple<_Args&&..., inner_allocator_type&>\n    __transform_tuple(integral_constant<int, 2>, tuple<_Args...> && __t,\n                      __tuple_indices<_Idx...>)\n    {\n        using _Tup = tuple<_Args&&..., inner_allocator_type&>;\n        return _Tup(_VSTD::get<_Idx>(_VSTD::move(__t))..., inner_allocator());\n    }\n\n    template <class...> friend class __scoped_allocator_storage;\n};\n\ntemplate <class _OuterA1, class _OuterA2>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const scoped_allocator_adaptor<_OuterA1>& __a,\n           const scoped_allocator_adaptor<_OuterA2>& __b) _NOEXCEPT\n{\n    return __a.outer_allocator() == __b.outer_allocator();\n}\n\ntemplate <class _OuterA1, class _OuterA2, class _InnerA0, class... _InnerAllocs>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const scoped_allocator_adaptor<_OuterA1, _InnerA0, _InnerAllocs...>& __a,\n           const scoped_allocator_adaptor<_OuterA2, _InnerA0, _InnerAllocs...>& __b) _NOEXCEPT\n{\n    return __a.outer_allocator() == __b.outer_allocator() &&\n           __a.inner_allocator() == __b.inner_allocator();\n}\n\ntemplate <class _OuterA1, class _OuterA2, class... _InnerAllocs>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const scoped_allocator_adaptor<_OuterA1, _InnerAllocs...>& __a,\n           const scoped_allocator_adaptor<_OuterA2, _InnerAllocs...>& __b) _NOEXCEPT\n{\n    return !(__a == __b);\n}\n\n#endif  // !defined(_LIBCPP_CXX03_LANG)\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_SCOPED_ALLOCATOR\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/set",
    "content": "// -*- C++ -*-\n//===---------------------------- set -------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_SET\n#define _LIBCPP_SET\n\n/*\n\n    set synopsis\n\nnamespace std\n{\n\ntemplate <class Key, class Compare = less<Key>,\n          class Allocator = allocator<Key>>\nclass set\n{\npublic:\n    // types:\n    typedef Key                                      key_type;\n    typedef key_type                                 value_type;\n    typedef Compare                                  key_compare;\n    typedef key_compare                              value_compare;\n    typedef Allocator                                allocator_type;\n    typedef typename allocator_type::reference       reference;\n    typedef typename allocator_type::const_reference const_reference;\n    typedef typename allocator_type::size_type       size_type;\n    typedef typename allocator_type::difference_type difference_type;\n    typedef typename allocator_type::pointer         pointer;\n    typedef typename allocator_type::const_pointer   const_pointer;\n\n    typedef implementation-defined                   iterator;\n    typedef implementation-defined                   const_iterator;\n    typedef std::reverse_iterator<iterator>          reverse_iterator;\n    typedef std::reverse_iterator<const_iterator>    const_reverse_iterator;\n\n    // construct/copy/destroy:\n    set()\n        noexcept(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_default_constructible<key_compare>::value &&\n            is_nothrow_copy_constructible<key_compare>::value);\n    explicit set(const value_compare& comp);\n    set(const value_compare& comp, const allocator_type& a);\n    template <class InputIterator>\n        set(InputIterator first, InputIterator last,\n            const value_compare& comp = value_compare());\n    template <class InputIterator>\n        set(InputIterator first, InputIterator last, const value_compare& comp,\n            const allocator_type& a);\n    set(const set& s);\n    set(set&& s)\n        noexcept(\n            is_nothrow_move_constructible<allocator_type>::value &&\n            is_nothrow_move_constructible<key_compare>::value);\n    explicit set(const allocator_type& a);\n    set(const set& s, const allocator_type& a);\n    set(set&& s, const allocator_type& a);\n    set(initializer_list<value_type> il, const value_compare& comp = value_compare());\n    set(initializer_list<value_type> il, const value_compare& comp,\n        const allocator_type& a);\n    template <class InputIterator>\n        set(InputIterator first, InputIterator last, const allocator_type& a)\n            : set(first, last, Compare(), a) {}  // C++14\n    set(initializer_list<value_type> il, const allocator_type& a)\n        : set(il, Compare(), a) {}  // C++14\n    ~set();\n\n    set& operator=(const set& s);\n    set& operator=(set&& s)\n        noexcept(\n            allocator_type::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<allocator_type>::value &&\n            is_nothrow_move_assignable<key_compare>::value);\n    set& operator=(initializer_list<value_type> il);\n\n    // iterators:\n          iterator begin() noexcept;\n    const_iterator begin() const noexcept;\n          iterator end() noexcept;\n    const_iterator end()   const noexcept;\n\n          reverse_iterator rbegin() noexcept;\n    const_reverse_iterator rbegin() const noexcept;\n          reverse_iterator rend() noexcept;\n    const_reverse_iterator rend()   const noexcept;\n\n    const_iterator         cbegin()  const noexcept;\n    const_iterator         cend()    const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend()   const noexcept;\n\n    // capacity:\n    bool      empty()    const noexcept;\n    size_type size()     const noexcept;\n    size_type max_size() const noexcept;\n\n    // modifiers:\n    template <class... Args>\n        pair<iterator, bool> emplace(Args&&... args);\n    template <class... Args>\n        iterator emplace_hint(const_iterator position, Args&&... args);\n    pair<iterator,bool> insert(const value_type& v);\n    pair<iterator,bool> insert(value_type&& v);\n    iterator insert(const_iterator position, const value_type& v);\n    iterator insert(const_iterator position, value_type&& v);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n    void insert(initializer_list<value_type> il);\n\n    iterator  erase(const_iterator position);\n    iterator  erase(iterator position);  // C++14\n    size_type erase(const key_type& k);\n    iterator  erase(const_iterator first, const_iterator last);\n    void clear() noexcept;\n\n    void swap(set& s)\n        noexcept(\n            __is_nothrow_swappable<key_compare>::value &&\n            (!allocator_type::propagate_on_container_swap::value ||\n             __is_nothrow_swappable<allocator_type>::value));\n\n    // observers:\n    allocator_type get_allocator() const noexcept;\n    key_compare    key_comp()      const;\n    value_compare  value_comp()    const;\n\n    // set operations:\n          iterator find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    template<typename K>\n        iterator find(const K& x);\n    template<typename K>\n        const_iterator find(const K& x) const;  // C++14\n    template<typename K>\n      size_type count(const K& x) const;        // C++14\n\n    size_type      count(const key_type& k) const;\n          iterator lower_bound(const key_type& k);\n    const_iterator lower_bound(const key_type& k) const;\n    template<typename K>\n        iterator lower_bound(const K& x);              // C++14\n    template<typename K>\n        const_iterator lower_bound(const K& x) const;  // C++14\n\n          iterator upper_bound(const key_type& k);\n    const_iterator upper_bound(const key_type& k) const;\n    template<typename K>\n        iterator upper_bound(const K& x);              // C++14\n    template<typename K>\n        const_iterator upper_bound(const K& x) const;  // C++14\n    pair<iterator,iterator>             equal_range(const key_type& k);\n    pair<const_iterator,const_iterator> equal_range(const key_type& k) const;\n    template<typename K>\n        pair<iterator,iterator>             equal_range(const K& x);        // C++14\n    template<typename K>\n        pair<const_iterator,const_iterator> equal_range(const K& x) const;  // C++14\n};\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator==(const set<Key, Compare, Allocator>& x,\n           const set<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator< (const set<Key, Compare, Allocator>& x,\n           const set<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator!=(const set<Key, Compare, Allocator>& x,\n           const set<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator> (const set<Key, Compare, Allocator>& x,\n           const set<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator>=(const set<Key, Compare, Allocator>& x,\n           const set<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator<=(const set<Key, Compare, Allocator>& x,\n           const set<Key, Compare, Allocator>& y);\n\n// specialized algorithms:\ntemplate <class Key, class Compare, class Allocator>\nvoid\nswap(set<Key, Compare, Allocator>& x, set<Key, Compare, Allocator>& y)\n    noexcept(noexcept(x.swap(y)));\n\ntemplate <class Key, class Compare = less<Key>,\n          class Allocator = allocator<Key>>\nclass multiset\n{\npublic:\n    // types:\n    typedef Key                                      key_type;\n    typedef key_type                                 value_type;\n    typedef Compare                                  key_compare;\n    typedef key_compare                              value_compare;\n    typedef Allocator                                allocator_type;\n    typedef typename allocator_type::reference       reference;\n    typedef typename allocator_type::const_reference const_reference;\n    typedef typename allocator_type::size_type       size_type;\n    typedef typename allocator_type::difference_type difference_type;\n    typedef typename allocator_type::pointer         pointer;\n    typedef typename allocator_type::const_pointer   const_pointer;\n\n    typedef implementation-defined                   iterator;\n    typedef implementation-defined                   const_iterator;\n    typedef std::reverse_iterator<iterator>          reverse_iterator;\n    typedef std::reverse_iterator<const_iterator>    const_reverse_iterator;\n\n    // construct/copy/destroy:\n    multiset()\n        noexcept(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_default_constructible<key_compare>::value &&\n            is_nothrow_copy_constructible<key_compare>::value);\n    explicit multiset(const value_compare& comp);\n    multiset(const value_compare& comp, const allocator_type& a);\n    template <class InputIterator>\n        multiset(InputIterator first, InputIterator last,\n                 const value_compare& comp = value_compare());\n    template <class InputIterator>\n        multiset(InputIterator first, InputIterator last,\n                 const value_compare& comp, const allocator_type& a);\n    multiset(const multiset& s);\n    multiset(multiset&& s)\n        noexcept(\n            is_nothrow_move_constructible<allocator_type>::value &&\n            is_nothrow_move_constructible<key_compare>::value);\n    explicit multiset(const allocator_type& a);\n    multiset(const multiset& s, const allocator_type& a);\n    multiset(multiset&& s, const allocator_type& a);\n    multiset(initializer_list<value_type> il, const value_compare& comp = value_compare());\n    multiset(initializer_list<value_type> il, const value_compare& comp,\n             const allocator_type& a);\n    template <class InputIterator>\n        multiset(InputIterator first, InputIterator last, const allocator_type& a)\n            : set(first, last, Compare(), a) {}  // C++14\n    multiset(initializer_list<value_type> il, const allocator_type& a)\n        : set(il, Compare(), a) {}  // C++14\n    ~multiset();\n\n    multiset& operator=(const multiset& s);\n    multiset& operator=(multiset&& s)\n        noexcept(\n            allocator_type::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<allocator_type>::value &&\n            is_nothrow_move_assignable<key_compare>::value);\n    multiset& operator=(initializer_list<value_type> il);\n\n    // iterators:\n          iterator begin() noexcept;\n    const_iterator begin() const noexcept;\n          iterator end() noexcept;\n    const_iterator end()   const noexcept;\n\n          reverse_iterator rbegin() noexcept;\n    const_reverse_iterator rbegin() const noexcept;\n          reverse_iterator rend() noexcept;\n    const_reverse_iterator rend()   const noexcept;\n\n    const_iterator         cbegin()  const noexcept;\n    const_iterator         cend()    const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend()   const noexcept;\n\n    // capacity:\n    bool      empty()    const noexcept;\n    size_type size()     const noexcept;\n    size_type max_size() const noexcept;\n\n    // modifiers:\n    template <class... Args>\n        iterator emplace(Args&&... args);\n    template <class... Args>\n        iterator emplace_hint(const_iterator position, Args&&... args);\n    iterator insert(const value_type& v);\n    iterator insert(value_type&& v);\n    iterator insert(const_iterator position, const value_type& v);\n    iterator insert(const_iterator position, value_type&& v);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n    void insert(initializer_list<value_type> il);\n\n    iterator  erase(const_iterator position);\n    iterator  erase(iterator position);  // C++14\n    size_type erase(const key_type& k);\n    iterator  erase(const_iterator first, const_iterator last);\n    void clear() noexcept;\n\n    void swap(multiset& s)\n        noexcept(\n            __is_nothrow_swappable<key_compare>::value &&\n            (!allocator_type::propagate_on_container_swap::value ||\n             __is_nothrow_swappable<allocator_type>::value));\n\n    // observers:\n    allocator_type get_allocator() const noexcept;\n    key_compare    key_comp()      const;\n    value_compare  value_comp()    const;\n\n    // set operations:\n          iterator find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    template<typename K>\n        iterator find(const K& x);\n    template<typename K>\n        const_iterator find(const K& x) const;  // C++14\n\n    size_type      count(const key_type& k) const;\n          iterator lower_bound(const key_type& k);\n    const_iterator lower_bound(const key_type& k) const;\n    template<typename K>\n        iterator lower_bound(const K& x);              // C++14\n    template<typename K>\n        const_iterator lower_bound(const K& x) const;  // C++14\n\n          iterator upper_bound(const key_type& k);\n    const_iterator upper_bound(const key_type& k) const;\n    template<typename K>\n        iterator upper_bound(const K& x);              // C++14\n    template<typename K>\n        const_iterator upper_bound(const K& x) const;  // C++14\n\n    pair<iterator,iterator>             equal_range(const key_type& k);\n    pair<const_iterator,const_iterator> equal_range(const key_type& k) const;\n    template<typename K>\n        pair<iterator,iterator>             equal_range(const K& x);        // C++14\n    template<typename K>\n        pair<const_iterator,const_iterator> equal_range(const K& x) const;  // C++14\n};\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator==(const multiset<Key, Compare, Allocator>& x,\n           const multiset<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator< (const multiset<Key, Compare, Allocator>& x,\n           const multiset<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator!=(const multiset<Key, Compare, Allocator>& x,\n           const multiset<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator> (const multiset<Key, Compare, Allocator>& x,\n           const multiset<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator>=(const multiset<Key, Compare, Allocator>& x,\n           const multiset<Key, Compare, Allocator>& y);\n\ntemplate <class Key, class Compare, class Allocator>\nbool\noperator<=(const multiset<Key, Compare, Allocator>& x,\n           const multiset<Key, Compare, Allocator>& y);\n\n// specialized algorithms:\ntemplate <class Key, class Compare, class Allocator>\nvoid\nswap(multiset<Key, Compare, Allocator>& x, multiset<Key, Compare, Allocator>& y)\n    noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__tree>\n#include <functional>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Key, class _Compare = less<_Key>,\n          class _Allocator = allocator<_Key> >\nclass _LIBCPP_TEMPLATE_VIS set\n{\npublic:\n    // types:\n    typedef _Key                                     key_type;\n    typedef key_type                                 value_type;\n    typedef _Compare                                 key_compare;\n    typedef key_compare                              value_compare;\n    typedef _Allocator                               allocator_type;\n    typedef value_type&                              reference;\n    typedef const value_type&                        const_reference;\n\n    static_assert((is_same<typename allocator_type::value_type, value_type>::value),\n                  \"Allocator::value_type must be same type as value_type\");\n\nprivate:\n    typedef __tree<value_type, value_compare, allocator_type> __base;\n    typedef allocator_traits<allocator_type>                  __alloc_traits;\n    typedef typename __base::__node_holder                    __node_holder;\n\n    __base __tree_;\n\npublic:\n    typedef typename __base::pointer               pointer;\n    typedef typename __base::const_pointer         const_pointer;\n    typedef typename __base::size_type             size_type;\n    typedef typename __base::difference_type       difference_type;\n    typedef typename __base::const_iterator        iterator;\n    typedef typename __base::const_iterator        const_iterator;\n    typedef _VSTD::reverse_iterator<iterator>       reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    set()\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_default_constructible<key_compare>::value &&\n            is_nothrow_copy_constructible<key_compare>::value)\n        : __tree_(value_compare()) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit set(const value_compare& __comp)\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_copy_constructible<key_compare>::value)\n        : __tree_(__comp) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit set(const value_compare& __comp, const allocator_type& __a)\n        : __tree_(__comp, __a) {}\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        set(_InputIterator __f, _InputIterator __l,\n            const value_compare& __comp = value_compare())\n        : __tree_(__comp)\n        {\n            insert(__f, __l);\n        }\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        set(_InputIterator __f, _InputIterator __l, const value_compare& __comp,\n            const allocator_type& __a)\n        : __tree_(__comp, __a)\n        {\n            insert(__f, __l);\n        }\n\n#if _LIBCPP_STD_VER > 11\n        template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY \n        set(_InputIterator __f, _InputIterator __l, const allocator_type& __a)\n            : set(__f, __l, key_compare(), __a) {}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    set(const set& __s)\n        : __tree_(__s.__tree_)\n        {\n            insert(__s.begin(), __s.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    set& operator=(const set& __s)\n        {\n            __tree_ = __s.__tree_;\n            return *this;\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    set(set&& __s)\n        _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)\n        : __tree_(_VSTD::move(__s.__tree_)) {}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit set(const allocator_type& __a)\n        : __tree_(__a) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    set(const set& __s, const allocator_type& __a)\n        : __tree_(__s.__tree_.value_comp(), __a)\n        {\n            insert(__s.begin(), __s.end());\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n    set(set&& __s, const allocator_type& __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    set(initializer_list<value_type> __il, const value_compare& __comp = value_compare())\n        : __tree_(__comp)\n        {\n            insert(__il.begin(), __il.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    set(initializer_list<value_type> __il, const value_compare& __comp,\n        const allocator_type& __a)\n        : __tree_(__comp, __a)\n        {\n            insert(__il.begin(), __il.end());\n        }\n\n#if _LIBCPP_STD_VER > 11\n    _LIBCPP_INLINE_VISIBILITY \n    set(initializer_list<value_type> __il, const allocator_type& __a)\n        : set(__il, key_compare(), __a) {}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    set& operator=(initializer_list<value_type> __il)\n        {\n            __tree_.__assign_unique(__il.begin(), __il.end());\n            return *this;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    set& operator=(set&& __s)\n        _NOEXCEPT_(is_nothrow_move_assignable<__base>::value)\n        {\n            __tree_ = _VSTD::move(__s.__tree_);\n            return *this;\n        }\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n          iterator begin() _NOEXCEPT       {return __tree_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT {return __tree_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n          iterator end() _NOEXCEPT         {return __tree_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()   const _NOEXCEPT {return __tree_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rbegin() _NOEXCEPT\n            {return reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin() const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rend() _NOEXCEPT\n            {return reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend() const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin()  const _NOEXCEPT {return begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend() const _NOEXCEPT {return end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT {return rbegin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend() const _NOEXCEPT {return rend();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT {return __tree_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT {return __tree_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {return __tree_.max_size();}\n\n    // modifiers:\n#ifndef _LIBCPP_CXX03_LANG\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> emplace(_Args&&... __args)\n            {return __tree_.__emplace_unique(_VSTD::forward<_Args>(__args)...);}\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator emplace_hint(const_iterator __p, _Args&&... __args)\n            {return __tree_.__emplace_hint_unique(__p, _VSTD::forward<_Args>(__args)...);}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator,bool> insert(const value_type& __v)\n        {return __tree_.__insert_unique(__v);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, const value_type& __v)\n        {return __tree_.__insert_unique(__p, __v);}\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __f, _InputIterator __l)\n        {\n            for (const_iterator __e = cend(); __f != __l; ++__f)\n                __tree_.__insert_unique(__e, *__f);\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator,bool> insert(value_type&& __v)\n        {return __tree_.__insert_unique(_VSTD::move(__v));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, value_type&& __v)\n        {return __tree_.__insert_unique(__p, _VSTD::move(__v));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(initializer_list<value_type> __il)\n        {insert(__il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator  erase(const_iterator __p) {return __tree_.erase(__p);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k)\n        {return __tree_.__erase_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator  erase(const_iterator __f, const_iterator __l)\n        {return __tree_.erase(__f, __l);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__tree_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(set& __s) _NOEXCEPT_(__is_nothrow_swappable<__base>::value)\n        {__tree_.swap(__s.__tree_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT {return __tree_.__alloc();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_compare    key_comp()      const {return __tree_.value_comp();}\n    _LIBCPP_INLINE_VISIBILITY\n    value_compare  value_comp()    const {return __tree_.value_comp();}\n\n    // set operations:\n    _LIBCPP_INLINE_VISIBILITY\n    iterator find(const key_type& __k)             {return __tree_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __tree_.find(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    find(const _K2& __k)                           {return __tree_.find(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    find(const _K2& __k) const                     {return __tree_.find(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type      count(const key_type& __k) const\n        {return __tree_.__count_unique(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,size_type>::type\n    count(const _K2& __k) const                    {return __tree_.__count_unique(__k);}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    iterator lower_bound(const key_type& __k)\n        {return __tree_.lower_bound(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator lower_bound(const key_type& __k) const\n        {return __tree_.lower_bound(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    lower_bound(const _K2& __k)       {return __tree_.lower_bound(__k);}\n\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    lower_bound(const _K2& __k) const {return __tree_.lower_bound(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator upper_bound(const key_type& __k)\n        {return __tree_.upper_bound(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator upper_bound(const key_type& __k) const\n        {return __tree_.upper_bound(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,iterator>::type\n    upper_bound(const _K2& __k)       {return __tree_.upper_bound(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    upper_bound(const _K2& __k) const {return __tree_.upper_bound(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator,iterator> equal_range(const key_type& __k)\n        {return __tree_.__equal_range_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator,const_iterator> equal_range(const key_type& __k) const\n        {return __tree_.__equal_range_unique(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,pair<iterator,iterator>>::type\n    equal_range(const _K2& __k)       {return __tree_.__equal_range_unique(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,pair<const_iterator,const_iterator>>::type\n    equal_range(const _K2& __k) const {return __tree_.__equal_range_unique(__k);}\n#endif\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Compare, class _Allocator>\nset<_Key, _Compare, _Allocator>::set(set&& __s, const allocator_type& __a)\n    : __tree_(_VSTD::move(__s.__tree_), __a)\n{\n    if (__a != __s.get_allocator())\n    {\n        const_iterator __e = cend();\n        while (!__s.empty())\n            insert(__e, _VSTD::move(__s.__tree_.remove(__s.begin())->__value_));\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const set<_Key, _Compare, _Allocator>& __x,\n           const set<_Key, _Compare, _Allocator>& __y)\n{\n    return __x.size() == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const set<_Key, _Compare, _Allocator>& __x,\n           const set<_Key, _Compare, _Allocator>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const set<_Key, _Compare, _Allocator>& __x,\n           const set<_Key, _Compare, _Allocator>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const set<_Key, _Compare, _Allocator>& __x,\n           const set<_Key, _Compare, _Allocator>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const set<_Key, _Compare, _Allocator>& __x,\n           const set<_Key, _Compare, _Allocator>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const set<_Key, _Compare, _Allocator>& __x,\n           const set<_Key, _Compare, _Allocator>& __y)\n{\n    return !(__y < __x);\n}\n\n// specialized algorithms:\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(set<_Key, _Compare, _Allocator>& __x,\n     set<_Key, _Compare, _Allocator>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Key, class _Compare = less<_Key>,\n          class _Allocator = allocator<_Key> >\nclass _LIBCPP_TEMPLATE_VIS multiset\n{\npublic:\n    // types:\n    typedef _Key                                      key_type;\n    typedef key_type                                 value_type;\n    typedef _Compare                                  key_compare;\n    typedef key_compare                              value_compare;\n    typedef _Allocator                                allocator_type;\n    typedef value_type&                              reference;\n    typedef const value_type&                        const_reference;\n\n    static_assert((is_same<typename allocator_type::value_type, value_type>::value),\n                  \"Allocator::value_type must be same type as value_type\");\n\nprivate:\n    typedef __tree<value_type, value_compare, allocator_type> __base;\n    typedef allocator_traits<allocator_type>                  __alloc_traits;\n    typedef typename __base::__node_holder                    __node_holder;\n\n    __base __tree_;\n\npublic:\n    typedef typename __base::pointer               pointer;\n    typedef typename __base::const_pointer         const_pointer;\n    typedef typename __base::size_type             size_type;\n    typedef typename __base::difference_type       difference_type;\n    typedef typename __base::const_iterator        iterator;\n    typedef typename __base::const_iterator        const_iterator;\n    typedef _VSTD::reverse_iterator<iterator>       reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator> const_reverse_iterator;\n\n    // construct/copy/destroy:\n    _LIBCPP_INLINE_VISIBILITY\n    multiset()\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_default_constructible<key_compare>::value &&\n            is_nothrow_copy_constructible<key_compare>::value)\n        : __tree_(value_compare()) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit multiset(const value_compare& __comp)\n        _NOEXCEPT_(\n            is_nothrow_default_constructible<allocator_type>::value &&\n            is_nothrow_copy_constructible<key_compare>::value)\n        : __tree_(__comp) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit multiset(const value_compare& __comp, const allocator_type& __a)\n        : __tree_(__comp, __a) {}\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        multiset(_InputIterator __f, _InputIterator __l,\n                 const value_compare& __comp = value_compare())\n        : __tree_(__comp)\n        {\n            insert(__f, __l);\n        }\n\n#if _LIBCPP_STD_VER > 11\n        template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY \n        multiset(_InputIterator __f, _InputIterator __l, const allocator_type& __a)\n            : multiset(__f, __l, key_compare(), __a) {}\n#endif\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        multiset(_InputIterator __f, _InputIterator __l,\n                 const value_compare& __comp, const allocator_type& __a)\n        : __tree_(__comp, __a)\n        {\n            insert(__f, __l);\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    multiset(const multiset& __s)\n        : __tree_(__s.__tree_.value_comp(),\n          __alloc_traits::select_on_container_copy_construction(__s.__tree_.__alloc()))\n        {\n            insert(__s.begin(), __s.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    multiset& operator=(const multiset& __s)\n        {\n            __tree_ = __s.__tree_;\n            return *this;\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    multiset(multiset&& __s)\n        _NOEXCEPT_(is_nothrow_move_constructible<__base>::value)\n        : __tree_(_VSTD::move(__s.__tree_)) {}\n\n    multiset(multiset&& __s, const allocator_type& __a);\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    explicit multiset(const allocator_type& __a)\n        : __tree_(__a) {}\n    _LIBCPP_INLINE_VISIBILITY\n    multiset(const multiset& __s, const allocator_type& __a)\n        : __tree_(__s.__tree_.value_comp(), __a)\n        {\n            insert(__s.begin(), __s.end());\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    multiset(initializer_list<value_type> __il, const value_compare& __comp = value_compare())\n        : __tree_(__comp)\n        {\n            insert(__il.begin(), __il.end());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    multiset(initializer_list<value_type> __il, const value_compare& __comp,\n        const allocator_type& __a)\n        : __tree_(__comp, __a)\n        {\n            insert(__il.begin(), __il.end());\n        }\n\n#if _LIBCPP_STD_VER > 11\n    _LIBCPP_INLINE_VISIBILITY \n    multiset(initializer_list<value_type> __il, const allocator_type& __a)\n        : multiset(__il, key_compare(), __a) {}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    multiset& operator=(initializer_list<value_type> __il)\n        {\n            __tree_.__assign_multi(__il.begin(), __il.end());\n            return *this;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    multiset& operator=(multiset&& __s)\n        _NOEXCEPT_(is_nothrow_move_assignable<__base>::value)\n        {\n            __tree_ = _VSTD::move(__s.__tree_);\n            return *this;\n        }\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n          iterator begin() _NOEXCEPT       {return __tree_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT {return __tree_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n          iterator end() _NOEXCEPT         {return __tree_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()   const _NOEXCEPT {return __tree_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rbegin() _NOEXCEPT\n            {return reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin() const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n          reverse_iterator rend() _NOEXCEPT\n            {return       reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend() const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin()  const _NOEXCEPT {return begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend() const _NOEXCEPT {return end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT {return rbegin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend() const _NOEXCEPT {return rend();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT {return __tree_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT {return __tree_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {return __tree_.max_size();}\n\n    // modifiers:\n#ifndef _LIBCPP_CXX03_LANG\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator emplace(_Args&&... __args)\n            {return __tree_.__emplace_multi(_VSTD::forward<_Args>(__args)...);}\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator emplace_hint(const_iterator __p, _Args&&... __args)\n            {return __tree_.__emplace_hint_multi(__p, _VSTD::forward<_Args>(__args)...);}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const value_type& __v)\n        {return __tree_.__insert_multi(__v);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, const value_type& __v)\n        {return __tree_.__insert_multi(__p, __v);}\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __f, _InputIterator __l)\n        {\n            for (const_iterator __e = cend(); __f != __l; ++__f)\n                __tree_.__insert_multi(__e, *__f);\n        }\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(value_type&& __v)\n        {return __tree_.__insert_multi(_VSTD::move(__v));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, value_type&& __v)\n        {return __tree_.__insert_multi(__p, _VSTD::move(__v));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(initializer_list<value_type> __il)\n        {insert(__il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator  erase(const_iterator __p) {return __tree_.erase(__p);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __tree_.__erase_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator  erase(const_iterator __f, const_iterator __l)\n        {return __tree_.erase(__f, __l);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__tree_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(multiset& __s)\n        _NOEXCEPT_(__is_nothrow_swappable<__base>::value)\n        {__tree_.swap(__s.__tree_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT {return __tree_.__alloc();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_compare    key_comp()      const {return __tree_.value_comp();}\n    _LIBCPP_INLINE_VISIBILITY\n    value_compare  value_comp()    const {return __tree_.value_comp();}\n\n    // set operations:\n    _LIBCPP_INLINE_VISIBILITY\n    iterator find(const key_type& __k)             {return __tree_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __tree_.find(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename _VSTD::enable_if<_VSTD::__is_transparent<_Compare, _K2>::value,iterator>::type\n    find(const _K2& __k)                           {return __tree_.find(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename _VSTD::enable_if<_VSTD::__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    find(const _K2& __k) const                     {return __tree_.find(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type      count(const key_type& __k) const\n        {return __tree_.__count_multi(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename enable_if<__is_transparent<_Compare, _K2>::value,size_type>::type\n    count(const _K2& __k)                  {return __tree_.__count_multi(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator lower_bound(const key_type& __k)\n        {return __tree_.lower_bound(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator lower_bound(const key_type& __k) const\n            {return __tree_.lower_bound(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename _VSTD::enable_if<_VSTD::__is_transparent<_Compare, _K2>::value,iterator>::type\n    lower_bound(const _K2& __k)       {return __tree_.lower_bound(__k);}\n\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename _VSTD::enable_if<_VSTD::__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    lower_bound(const _K2& __k) const {return __tree_.lower_bound(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator upper_bound(const key_type& __k)\n            {return __tree_.upper_bound(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator upper_bound(const key_type& __k) const\n            {return __tree_.upper_bound(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename _VSTD::enable_if<_VSTD::__is_transparent<_Compare, _K2>::value,iterator>::type\n    upper_bound(const _K2& __k)       {return __tree_.upper_bound(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename _VSTD::enable_if<_VSTD::__is_transparent<_Compare, _K2>::value,const_iterator>::type\n    upper_bound(const _K2& __k) const {return __tree_.upper_bound(__k);}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator,iterator>             equal_range(const key_type& __k)\n            {return __tree_.__equal_range_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator,const_iterator> equal_range(const key_type& __k) const\n            {return __tree_.__equal_range_multi(__k);}\n#if _LIBCPP_STD_VER > 11\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename _VSTD::enable_if<_VSTD::__is_transparent<_Compare, _K2>::value,pair<iterator,iterator>>::type\n    equal_range(const _K2& __k)       {return __tree_.__equal_range_multi(__k);}\n    template <typename _K2>\n    _LIBCPP_INLINE_VISIBILITY\n    typename _VSTD::enable_if<_VSTD::__is_transparent<_Compare, _K2>::value,pair<const_iterator,const_iterator>>::type\n    equal_range(const _K2& __k) const {return __tree_.__equal_range_multi(__k);}\n#endif\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Compare, class _Allocator>\nmultiset<_Key, _Compare, _Allocator>::multiset(multiset&& __s, const allocator_type& __a)\n    : __tree_(_VSTD::move(__s.__tree_), __a)\n{\n    if (__a != __s.get_allocator())\n    {\n        const_iterator __e = cend();\n        while (!__s.empty())\n            insert(__e, _VSTD::move(__s.__tree_.remove(__s.begin())->__value_));\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const multiset<_Key, _Compare, _Allocator>& __x,\n           const multiset<_Key, _Compare, _Allocator>& __y)\n{\n    return __x.size() == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const multiset<_Key, _Compare, _Allocator>& __x,\n           const multiset<_Key, _Compare, _Allocator>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const multiset<_Key, _Compare, _Allocator>& __x,\n           const multiset<_Key, _Compare, _Allocator>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const multiset<_Key, _Compare, _Allocator>& __x,\n           const multiset<_Key, _Compare, _Allocator>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const multiset<_Key, _Compare, _Allocator>& __x,\n           const multiset<_Key, _Compare, _Allocator>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const multiset<_Key, _Compare, _Allocator>& __x,\n           const multiset<_Key, _Compare, _Allocator>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Key, class _Compare, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(multiset<_Key, _Compare, _Allocator>& __x,\n     multiset<_Key, _Compare, _Allocator>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_SET\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/setjmp.h",
    "content": "// -*- C++ -*-\n//===--------------------------- setjmp.h ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_SETJMP_H\n#define _LIBCPP_SETJMP_H\n\n/*\n    setjmp.h synopsis\n\nMacros:\n\n    setjmp\n\nTypes:\n\n    jmp_buf\n\nvoid longjmp(jmp_buf env, int val);\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <setjmp.h>\n\n#ifdef __cplusplus\n\n#ifndef setjmp\n#define setjmp(env) setjmp(env)\n#endif\n\n#endif // __cplusplus\n\n#endif  // _LIBCPP_SETJMP_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/shared_mutex",
    "content": "// -*- C++ -*-\n//===------------------------ shared_mutex --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_SHARED_MUTEX\n#define _LIBCPP_SHARED_MUTEX\n\n/*\n    shared_mutex synopsis\n\n// C++1y\n\nnamespace std\n{\n\nclass shared_mutex      // C++17\n{\npublic:\n    shared_mutex();\n    ~shared_mutex();\n\n    shared_mutex(const shared_mutex&) = delete;\n    shared_mutex& operator=(const shared_mutex&) = delete;\n\n    // Exclusive ownership\n    void lock(); // blocking\n    bool try_lock();\n    void unlock();\n\n    // Shared ownership\n    void lock_shared(); // blocking\n    bool try_lock_shared();\n    void unlock_shared();\n\n    typedef implementation-defined native_handle_type; // See 30.2.3\n    native_handle_type native_handle(); // See 30.2.3\n};\n\nclass shared_timed_mutex\n{\npublic:\n    shared_timed_mutex();\n    ~shared_timed_mutex();\n\n    shared_timed_mutex(const shared_timed_mutex&) = delete;\n    shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;\n\n    // Exclusive ownership\n    void lock(); // blocking\n    bool try_lock();\n    template <class Rep, class Period>\n        bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);\n    template <class Clock, class Duration>\n        bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);\n    void unlock();\n\n    // Shared ownership\n    void lock_shared(); // blocking\n    bool try_lock_shared();\n    template <class Rep, class Period>\n        bool\n        try_lock_shared_for(const chrono::duration<Rep, Period>& rel_time);\n    template <class Clock, class Duration>\n        bool\n        try_lock_shared_until(const chrono::time_point<Clock, Duration>& abs_time);\n    void unlock_shared();\n};\n\ntemplate <class Mutex>\nclass shared_lock\n{\npublic:\n    typedef Mutex mutex_type;\n\n    // Shared locking\n    shared_lock() noexcept;\n    explicit shared_lock(mutex_type& m); // blocking\n    shared_lock(mutex_type& m, defer_lock_t) noexcept;\n    shared_lock(mutex_type& m, try_to_lock_t);\n    shared_lock(mutex_type& m, adopt_lock_t);\n    template <class Clock, class Duration>\n        shared_lock(mutex_type& m,\n                    const chrono::time_point<Clock, Duration>& abs_time);\n    template <class Rep, class Period>\n        shared_lock(mutex_type& m,\n                    const chrono::duration<Rep, Period>& rel_time);\n    ~shared_lock();\n\n    shared_lock(shared_lock const&) = delete;\n    shared_lock& operator=(shared_lock const&) = delete;\n\n    shared_lock(shared_lock&& u) noexcept;\n    shared_lock& operator=(shared_lock&& u) noexcept;\n\n    void lock(); // blocking\n    bool try_lock();\n    template <class Rep, class Period>\n        bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);\n    template <class Clock, class Duration>\n        bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);\n    void unlock();\n\n    // Setters\n    void swap(shared_lock& u) noexcept;\n    mutex_type* release() noexcept;\n\n    // Getters\n    bool owns_lock() const noexcept;\n    explicit operator bool () const noexcept;\n    mutex_type* mutex() const noexcept;\n};\n\ntemplate <class Mutex>\n    void swap(shared_lock<Mutex>& x, shared_lock<Mutex>& y) noexcept;\n\n}  // std\n\n*/\n\n#include <__config>\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n#if _LIBCPP_STD_VER > 11 || defined(_LIBCPP_BUILDING_SHARED_MUTEX)\n\n#include <__mutex_base>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifdef _LIBCPP_HAS_NO_THREADS\n#error <shared_mutex> is not supported on this single threaded system\n#else // !_LIBCPP_HAS_NO_THREADS\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nstruct _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_SHARED_MUTEX __shared_mutex_base\n{\n    mutex               __mut_;\n    condition_variable  __gate1_;\n    condition_variable  __gate2_;\n    unsigned            __state_;\n\n    static const unsigned __write_entered_ = 1U << (sizeof(unsigned)*__CHAR_BIT__ - 1);\n    static const unsigned __n_readers_ = ~__write_entered_;\n\n    __shared_mutex_base();\n    _LIBCPP_INLINE_VISIBILITY ~__shared_mutex_base() = default;\n\n    __shared_mutex_base(const __shared_mutex_base&) = delete;\n    __shared_mutex_base& operator=(const __shared_mutex_base&) = delete;\n\n    // Exclusive ownership\n    void lock(); // blocking\n    bool try_lock();\n    void unlock();\n\n    // Shared ownership\n    void lock_shared(); // blocking\n    bool try_lock_shared();\n    void unlock_shared();\n\n//     typedef implementation-defined native_handle_type; // See 30.2.3\n//     native_handle_type native_handle(); // See 30.2.3\n};\n\n\n#if _LIBCPP_STD_VER > 14\nclass _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_SHARED_MUTEX shared_mutex\n{\n    __shared_mutex_base __base;\npublic:\n    _LIBCPP_INLINE_VISIBILITY shared_mutex() : __base() {}\n    _LIBCPP_INLINE_VISIBILITY ~shared_mutex() = default;\n\n    shared_mutex(const shared_mutex&) = delete;\n    shared_mutex& operator=(const shared_mutex&) = delete;\n\n    // Exclusive ownership\n    _LIBCPP_INLINE_VISIBILITY void lock()     { return __base.lock(); }\n    _LIBCPP_INLINE_VISIBILITY bool try_lock() { return __base.try_lock(); }\n    _LIBCPP_INLINE_VISIBILITY void unlock()   { return __base.unlock(); }\n\n    // Shared ownership\n    _LIBCPP_INLINE_VISIBILITY void lock_shared()     { return __base.lock_shared(); }\n    _LIBCPP_INLINE_VISIBILITY bool try_lock_shared() { return __base.try_lock_shared(); }\n    _LIBCPP_INLINE_VISIBILITY void unlock_shared()   { return __base.unlock_shared(); }\n\n//     typedef __shared_mutex_base::native_handle_type native_handle_type;\n//     _LIBCPP_INLINE_VISIBILITY native_handle_type native_handle() { return __base::unlock_shared(); }\n};\n#endif\n\n\nclass _LIBCPP_TYPE_VIS _LIBCPP_AVAILABILITY_SHARED_MUTEX shared_timed_mutex\n{\n    __shared_mutex_base __base;\npublic:\n    shared_timed_mutex();\n    _LIBCPP_INLINE_VISIBILITY ~shared_timed_mutex() = default;\n\n    shared_timed_mutex(const shared_timed_mutex&) = delete;\n    shared_timed_mutex& operator=(const shared_timed_mutex&) = delete;\n\n    // Exclusive ownership\n    void lock();\n    bool try_lock();\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        bool\n        try_lock_for(const chrono::duration<_Rep, _Period>& __rel_time)\n        {\n            return try_lock_until(chrono::steady_clock::now() + __rel_time);\n        }\n    template <class _Clock, class _Duration>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        bool\n        try_lock_until(const chrono::time_point<_Clock, _Duration>& __abs_time);\n    void unlock();\n\n    // Shared ownership\n    void lock_shared();\n    bool try_lock_shared();\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        bool\n        try_lock_shared_for(const chrono::duration<_Rep, _Period>& __rel_time)\n        {\n            return try_lock_shared_until(chrono::steady_clock::now() + __rel_time);\n        }\n    template <class _Clock, class _Duration>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        bool\n        try_lock_shared_until(const chrono::time_point<_Clock, _Duration>& __abs_time);\n    void unlock_shared();\n};\n\ntemplate <class _Clock, class _Duration>\nbool\nshared_timed_mutex::try_lock_until(\n                        const chrono::time_point<_Clock, _Duration>& __abs_time)\n{\n    unique_lock<mutex> __lk(__base.__mut_);\n    if (__base.__state_ & __base.__write_entered_)\n    {\n        while (true)\n        {\n            cv_status __status = __base.__gate1_.wait_until(__lk, __abs_time);\n            if ((__base.__state_ & __base.__write_entered_) == 0)\n                break;\n            if (__status == cv_status::timeout)\n                return false;\n        }\n    }\n    __base.__state_ |= __base.__write_entered_;\n    if (__base.__state_ & __base.__n_readers_)\n    {\n        while (true)\n        {\n            cv_status __status = __base.__gate2_.wait_until(__lk, __abs_time);\n            if ((__base.__state_ & __base.__n_readers_) == 0)\n                break;\n            if (__status == cv_status::timeout)\n            {\n                __base.__state_ &= ~__base.__write_entered_;\n                __base.__gate1_.notify_all();\n                return false;\n            }\n        }\n    }\n    return true;\n}\n\ntemplate <class _Clock, class _Duration>\nbool\nshared_timed_mutex::try_lock_shared_until(\n                        const chrono::time_point<_Clock, _Duration>& __abs_time)\n{\n    unique_lock<mutex> __lk(__base.__mut_);\n    if ((__base.__state_ & __base.__write_entered_) || (__base.__state_ & __base.__n_readers_) == __base.__n_readers_)\n    {\n        while (true)\n        {\n            cv_status status = __base.__gate1_.wait_until(__lk, __abs_time);\n            if ((__base.__state_ & __base.__write_entered_) == 0 &&\n                                       (__base.__state_ & __base.__n_readers_) < __base.__n_readers_)\n                break;\n            if (status == cv_status::timeout)\n                return false;\n        }\n    }\n    unsigned __num_readers = (__base.__state_ & __base.__n_readers_) + 1;\n    __base.__state_ &= ~__base.__n_readers_;\n    __base.__state_ |= __num_readers;\n    return true;\n}\n\ntemplate <class _Mutex>\nclass shared_lock\n{\npublic:\n    typedef _Mutex mutex_type;\n\nprivate:\n    mutex_type* __m_;\n    bool __owns_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    shared_lock() _NOEXCEPT\n        : __m_(nullptr),\n          __owns_(false)\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit shared_lock(mutex_type& __m)\n        : __m_(_VSTD::addressof(__m)),\n          __owns_(true)\n        {__m_->lock_shared();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    shared_lock(mutex_type& __m, defer_lock_t) _NOEXCEPT\n        : __m_(_VSTD::addressof(__m)),\n          __owns_(false)\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    shared_lock(mutex_type& __m, try_to_lock_t)\n        : __m_(_VSTD::addressof(__m)),\n          __owns_(__m.try_lock_shared())\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    shared_lock(mutex_type& __m, adopt_lock_t)\n        : __m_(_VSTD::addressof(__m)),\n          __owns_(true)\n        {}\n\n    template <class _Clock, class _Duration>\n        _LIBCPP_INLINE_VISIBILITY\n        shared_lock(mutex_type& __m,\n                    const chrono::time_point<_Clock, _Duration>& __abs_time)\n            : __m_(_VSTD::addressof(__m)),\n              __owns_(__m.try_lock_shared_until(__abs_time))\n            {}\n\n    template <class _Rep, class _Period>\n        _LIBCPP_INLINE_VISIBILITY\n        shared_lock(mutex_type& __m,\n                    const chrono::duration<_Rep, _Period>& __rel_time)\n            : __m_(_VSTD::addressof(__m)),\n              __owns_(__m.try_lock_shared_for(__rel_time))\n            {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    ~shared_lock()\n    {\n        if (__owns_)\n            __m_->unlock_shared();\n    }\n\n    shared_lock(shared_lock const&) = delete;\n    shared_lock& operator=(shared_lock const&) = delete;\n\n    _LIBCPP_INLINE_VISIBILITY\n    shared_lock(shared_lock&& __u) _NOEXCEPT\n        : __m_(__u.__m_),\n          __owns_(__u.__owns_)\n        {\n            __u.__m_ = nullptr;\n            __u.__owns_ = false;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    shared_lock& operator=(shared_lock&& __u) _NOEXCEPT\n    {\n        if (__owns_)\n            __m_->unlock_shared();\n        __m_ = nullptr;\n        __owns_ = false;\n        __m_ = __u.__m_;\n        __owns_ = __u.__owns_;\n        __u.__m_ = nullptr;\n        __u.__owns_ = false;\n        return *this;\n    }\n\n    void lock();\n    bool try_lock();\n    template <class Rep, class Period>\n        bool try_lock_for(const chrono::duration<Rep, Period>& rel_time);\n    template <class Clock, class Duration>\n        bool try_lock_until(const chrono::time_point<Clock, Duration>& abs_time);\n    void unlock();\n\n    // Setters\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(shared_lock& __u) _NOEXCEPT\n    {\n        _VSTD::swap(__m_, __u.__m_);\n        _VSTD::swap(__owns_, __u.__owns_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    mutex_type* release() _NOEXCEPT\n    {\n        mutex_type* __m = __m_;\n        __m_ = nullptr;\n        __owns_ = false;\n        return __m;\n    }\n\n    // Getters\n    _LIBCPP_INLINE_VISIBILITY\n    bool owns_lock() const _NOEXCEPT {return __owns_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit operator bool () const _NOEXCEPT {return __owns_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    mutex_type* mutex() const _NOEXCEPT {return __m_;}\n};\n\ntemplate <class _Mutex>\nvoid\nshared_lock<_Mutex>::lock()\n{\n    if (__m_ == nullptr)\n        __throw_system_error(EPERM, \"shared_lock::lock: references null mutex\");\n    if (__owns_)\n        __throw_system_error(EDEADLK, \"shared_lock::lock: already locked\");\n    __m_->lock_shared();\n    __owns_ = true;\n}\n\ntemplate <class _Mutex>\nbool\nshared_lock<_Mutex>::try_lock()\n{\n    if (__m_ == nullptr)\n        __throw_system_error(EPERM, \"shared_lock::try_lock: references null mutex\");\n    if (__owns_)\n        __throw_system_error(EDEADLK, \"shared_lock::try_lock: already locked\");\n    __owns_ = __m_->try_lock_shared();\n    return __owns_;\n}\n\ntemplate <class _Mutex>\ntemplate <class _Rep, class _Period>\nbool\nshared_lock<_Mutex>::try_lock_for(const chrono::duration<_Rep, _Period>& __d)\n{\n    if (__m_ == nullptr)\n        __throw_system_error(EPERM, \"shared_lock::try_lock_for: references null mutex\");\n    if (__owns_)\n        __throw_system_error(EDEADLK, \"shared_lock::try_lock_for: already locked\");\n    __owns_ = __m_->try_lock_shared_for(__d);\n    return __owns_;\n}\n\ntemplate <class _Mutex>\ntemplate <class _Clock, class _Duration>\nbool\nshared_lock<_Mutex>::try_lock_until(const chrono::time_point<_Clock, _Duration>& __t)\n{\n    if (__m_ == nullptr)\n        __throw_system_error(EPERM, \"shared_lock::try_lock_until: references null mutex\");\n    if (__owns_)\n        __throw_system_error(EDEADLK, \"shared_lock::try_lock_until: already locked\");\n    __owns_ = __m_->try_lock_shared_until(__t);\n    return __owns_;\n}\n\ntemplate <class _Mutex>\nvoid\nshared_lock<_Mutex>::unlock()\n{\n    if (!__owns_)\n        __throw_system_error(EPERM, \"shared_lock::unlock: not locked\");\n    __m_->unlock_shared();\n    __owns_ = false;\n}\n\ntemplate <class _Mutex>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(shared_lock<_Mutex>& __x, shared_lock<_Mutex>& __y) _NOEXCEPT\n    {__x.swap(__y);}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // !_LIBCPP_HAS_NO_THREADS\n\n#endif  // _LIBCPP_STD_VER > 11\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_SHARED_MUTEX\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/sstream",
    "content": "// -*- C++ -*-\n//===--------------------------- sstream ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_SSTREAM\n#define _LIBCPP_SSTREAM\n\n/*\n    sstream synopsis\n\ntemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\nclass basic_stringbuf\n    : public basic_streambuf<charT, traits>\n{\npublic:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef Allocator                      allocator_type;\n\n    // 27.8.1.1 Constructors:\n    explicit basic_stringbuf(ios_base::openmode which = ios_base::in | ios_base::out);\n    explicit basic_stringbuf(const basic_string<char_type, traits_type, allocator_type>& str,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n    basic_stringbuf(basic_stringbuf&& rhs);\n\n    // 27.8.1.2 Assign and swap:\n    basic_stringbuf& operator=(basic_stringbuf&& rhs);\n    void swap(basic_stringbuf& rhs);\n\n    // 27.8.1.3 Get and set:\n    basic_string<char_type, traits_type, allocator_type> str() const;\n    void str(const basic_string<char_type, traits_type, allocator_type>& s);\n\nprotected:\n    // 27.8.1.4 Overridden virtual functions:\n    virtual int_type underflow();\n    virtual int_type pbackfail(int_type c = traits_type::eof());\n    virtual int_type overflow (int_type c = traits_type::eof());\n    virtual basic_streambuf<char_type, traits_type>* setbuf(char_type*, streamsize);\n    virtual pos_type seekoff(off_type off, ios_base::seekdir way,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n    virtual pos_type seekpos(pos_type sp,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n};\n\ntemplate <class charT, class traits, class Allocator>\n  void swap(basic_stringbuf<charT, traits, Allocator>& x,\n            basic_stringbuf<charT, traits, Allocator>& y);\n\ntypedef basic_stringbuf<char>    stringbuf;\ntypedef basic_stringbuf<wchar_t> wstringbuf;\n\ntemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\nclass basic_istringstream\n    : public basic_istream<charT, traits>\n{\npublic:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef Allocator                      allocator_type;\n\n    // 27.8.2.1 Constructors:\n    explicit basic_istringstream(ios_base::openmode which = ios_base::in);\n    explicit basic_istringstream(const basic_string<char_type, traits_type,allocator_type>& str,\n                                 ios_base::openmode which = ios_base::in);\n    basic_istringstream(basic_istringstream&& rhs);\n\n    // 27.8.2.2 Assign and swap:\n    basic_istringstream& operator=(basic_istringstream&& rhs);\n    void swap(basic_istringstream& rhs);\n\n    // 27.8.2.3 Members:\n    basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const;\n    basic_string<char_type, traits_type, allocator_type> str() const;\n    void str(const basic_string<char_type, traits_type, allocator_type>& s);\n};\n\ntemplate <class charT, class traits, class Allocator>\n  void swap(basic_istringstream<charT, traits, Allocator>& x,\n            basic_istringstream<charT, traits, Allocator>& y);\n\ntypedef basic_istringstream<char>    istringstream;\ntypedef basic_istringstream<wchar_t> wistringstream;\n\ntemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\nclass basic_ostringstream\n    : public basic_ostream<charT, traits>\n{\npublic:\n    // types:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef Allocator                      allocator_type;\n\n    // 27.8.3.1 Constructors/destructor:\n    explicit basic_ostringstream(ios_base::openmode which = ios_base::out);\n    explicit basic_ostringstream(const basic_string<char_type, traits_type, allocator_type>& str,\n                                 ios_base::openmode which = ios_base::out);\n    basic_ostringstream(basic_ostringstream&& rhs);\n\n    // 27.8.3.2 Assign/swap:\n    basic_ostringstream& operator=(basic_ostringstream&& rhs);\n    void swap(basic_ostringstream& rhs);\n\n    // 27.8.3.3 Members:\n    basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const;\n    basic_string<char_type, traits_type, allocator_type> str() const;\n    void str(const basic_string<char_type, traits_type, allocator_type>& s);\n};\n\ntemplate <class charT, class traits, class Allocator>\n  void swap(basic_ostringstream<charT, traits, Allocator>& x,\n            basic_ostringstream<charT, traits, Allocator>& y);\n\ntypedef basic_ostringstream<char>    ostringstream;\ntypedef basic_ostringstream<wchar_t> wostringstream;\n\ntemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\nclass basic_stringstream\n    : public basic_iostream<charT, traits>\n{\npublic:\n    // types:\n    typedef charT                          char_type;\n    typedef traits                         traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef Allocator                      allocator_type;\n\n    // constructors/destructor\n    explicit basic_stringstream(ios_base::openmode which = ios_base::out|ios_base::in);\n    explicit basic_stringstream(const basic_string<char_type, traits_type, allocator_type>& str,\n                                ios_base::openmode which = ios_base::out|ios_base::in);\n    basic_stringstream(basic_stringstream&& rhs);\n\n    // 27.8.5.1 Assign/swap:\n    basic_stringstream& operator=(basic_stringstream&& rhs);\n    void swap(basic_stringstream& rhs);\n\n    // Members:\n    basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const;\n    basic_string<char_type, traits_type, allocator_type> str() const;\n    void str(const basic_string<char_type, traits_type, allocator_type>& str);\n};\n\ntemplate <class charT, class traits, class Allocator>\n  void swap(basic_stringstream<charT, traits, Allocator>& x,\n            basic_stringstream<charT, traits, Allocator>& y);\n\ntypedef basic_stringstream<char>    stringstream;\ntypedef basic_stringstream<wchar_t> wstringstream;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <ostream>\n#include <istream>\n#include <string>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// basic_stringbuf\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nclass _LIBCPP_TEMPLATE_VIS basic_stringbuf\n    : public basic_streambuf<_CharT, _Traits>\n{\npublic:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef _Allocator                     allocator_type;\n\n    typedef basic_string<char_type, traits_type, allocator_type> string_type;\n\nprivate:\n\n    string_type __str_;\n    mutable char_type* __hm_;\n    ios_base::openmode __mode_;\n\npublic:\n    // 27.8.1.1 Constructors:\n    inline _LIBCPP_INLINE_VISIBILITY\n    explicit basic_stringbuf(ios_base::openmode __wch = ios_base::in | ios_base::out);\n    inline _LIBCPP_INLINE_VISIBILITY\n    explicit basic_stringbuf(const string_type& __s,\n                             ios_base::openmode __wch = ios_base::in | ios_base::out);\n#ifndef _LIBCPP_CXX03_LANG\n    basic_stringbuf(basic_stringbuf&& __rhs);\n\n    // 27.8.1.2 Assign and swap:\n    basic_stringbuf& operator=(basic_stringbuf&& __rhs);\n#endif\n    void swap(basic_stringbuf& __rhs);\n\n    // 27.8.1.3 Get and set:\n    string_type str() const;\n    void str(const string_type& __s);\n\nprotected:\n    // 27.8.1.4 Overridden virtual functions:\n    virtual int_type underflow();\n    virtual int_type pbackfail(int_type __c = traits_type::eof());\n    virtual int_type overflow (int_type __c = traits_type::eof());\n    virtual pos_type seekoff(off_type __off, ios_base::seekdir __way,\n                             ios_base::openmode __wch = ios_base::in | ios_base::out);\n    inline _LIBCPP_INLINE_VISIBILITY\n    virtual pos_type seekpos(pos_type __sp,\n                             ios_base::openmode __wch = ios_base::in | ios_base::out);\n};\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(ios_base::openmode __wch)\n    : __hm_(0),\n      __mode_(__wch)\n{\n    str(string_type());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(const string_type& __s,\n                             ios_base::openmode __wch)\n    : __hm_(0),\n      __mode_(__wch)\n{\n    str(__s);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(basic_stringbuf&& __rhs)\n    : __mode_(__rhs.__mode_)\n{\n    char_type* __p = const_cast<char_type*>(__rhs.__str_.data());\n    ptrdiff_t __binp = -1;\n    ptrdiff_t __ninp = -1;\n    ptrdiff_t __einp = -1;\n    if (__rhs.eback() != nullptr)\n    {\n        __binp = __rhs.eback() - __p;\n        __ninp = __rhs.gptr() - __p;\n        __einp = __rhs.egptr() - __p;\n    }\n    ptrdiff_t __bout = -1;\n    ptrdiff_t __nout = -1;\n    ptrdiff_t __eout = -1;\n    if (__rhs.pbase() != nullptr)\n    {\n        __bout = __rhs.pbase() - __p;\n        __nout = __rhs.pptr() - __p;\n        __eout = __rhs.epptr() - __p;\n    }\n    ptrdiff_t __hm = __rhs.__hm_ == nullptr ? -1 : __rhs.__hm_ - __p;\n    __str_ = _VSTD::move(__rhs.__str_);\n    __p = const_cast<char_type*>(__str_.data());\n    if (__binp != -1)\n        this->setg(__p + __binp, __p + __ninp, __p + __einp);\n    if (__bout != -1)\n    {\n        this->setp(__p + __bout, __p + __eout);\n        this->pbump(__nout);\n    }\n    __hm_ = __hm == -1 ? nullptr : __p + __hm;\n    __p = const_cast<char_type*>(__rhs.__str_.data());\n    __rhs.setg(__p, __p, __p);\n    __rhs.setp(__p, __p);\n    __rhs.__hm_ = __p;\n    this->pubimbue(__rhs.getloc());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringbuf<_CharT, _Traits, _Allocator>&\nbasic_stringbuf<_CharT, _Traits, _Allocator>::operator=(basic_stringbuf&& __rhs)\n{\n    char_type* __p = const_cast<char_type*>(__rhs.__str_.data());\n    ptrdiff_t __binp = -1;\n    ptrdiff_t __ninp = -1;\n    ptrdiff_t __einp = -1;\n    if (__rhs.eback() != nullptr)\n    {\n        __binp = __rhs.eback() - __p;\n        __ninp = __rhs.gptr() - __p;\n        __einp = __rhs.egptr() - __p;\n    }\n    ptrdiff_t __bout = -1;\n    ptrdiff_t __nout = -1;\n    ptrdiff_t __eout = -1;\n    if (__rhs.pbase() != nullptr)\n    {\n        __bout = __rhs.pbase() - __p;\n        __nout = __rhs.pptr() - __p;\n        __eout = __rhs.epptr() - __p;\n    }\n    ptrdiff_t __hm = __rhs.__hm_ == nullptr ? -1 : __rhs.__hm_ - __p;\n    __str_ = _VSTD::move(__rhs.__str_);\n    __p = const_cast<char_type*>(__str_.data());\n    if (__binp != -1)\n        this->setg(__p + __binp, __p + __ninp, __p + __einp);\n    else\n        this->setg(nullptr, nullptr, nullptr);\n    if (__bout != -1)\n    {\n        this->setp(__p + __bout, __p + __eout);\n        this->pbump(__nout);\n    }\n    else\n        this->setp(nullptr, nullptr);\n\n    __hm_ = __hm == -1 ? nullptr : __p + __hm;\n    __mode_ = __rhs.__mode_;\n    __p = const_cast<char_type*>(__rhs.__str_.data());\n    __rhs.setg(__p, __p, __p);\n    __rhs.setp(__p, __p);\n    __rhs.__hm_ = __p;\n    this->pubimbue(__rhs.getloc());\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_stringbuf<_CharT, _Traits, _Allocator>::swap(basic_stringbuf& __rhs)\n{\n    char_type* __p = const_cast<char_type*>(__rhs.__str_.data());\n    ptrdiff_t __rbinp = -1;\n    ptrdiff_t __rninp = -1;\n    ptrdiff_t __reinp = -1;\n    if (__rhs.eback() != nullptr)\n    {\n        __rbinp = __rhs.eback() - __p;\n        __rninp = __rhs.gptr() - __p;\n        __reinp = __rhs.egptr() - __p;\n    }\n    ptrdiff_t __rbout = -1;\n    ptrdiff_t __rnout = -1;\n    ptrdiff_t __reout = -1;\n    if (__rhs.pbase() != nullptr)\n    {\n        __rbout = __rhs.pbase() - __p;\n        __rnout = __rhs.pptr() - __p;\n        __reout = __rhs.epptr() - __p;\n    }\n    ptrdiff_t __rhm = __rhs.__hm_ == nullptr ? -1 : __rhs.__hm_ - __p;\n    __p = const_cast<char_type*>(__str_.data());\n    ptrdiff_t __lbinp = -1;\n    ptrdiff_t __lninp = -1;\n    ptrdiff_t __leinp = -1;\n    if (this->eback() != nullptr)\n    {\n        __lbinp = this->eback() - __p;\n        __lninp = this->gptr() - __p;\n        __leinp = this->egptr() - __p;\n    }\n    ptrdiff_t __lbout = -1;\n    ptrdiff_t __lnout = -1;\n    ptrdiff_t __leout = -1;\n    if (this->pbase() != nullptr)\n    {\n        __lbout = this->pbase() - __p;\n        __lnout = this->pptr() - __p;\n        __leout = this->epptr() - __p;\n    }\n    ptrdiff_t __lhm = __hm_ == nullptr ? -1 : __hm_ - __p;\n    _VSTD::swap(__mode_, __rhs.__mode_);\n    __str_.swap(__rhs.__str_);\n    __p = const_cast<char_type*>(__str_.data());\n    if (__rbinp != -1)\n        this->setg(__p + __rbinp, __p + __rninp, __p + __reinp);\n    else\n        this->setg(nullptr, nullptr, nullptr);\n    if (__rbout != -1)\n    {\n        this->setp(__p + __rbout, __p + __reout);\n        this->pbump(__rnout);\n    }\n    else\n        this->setp(nullptr, nullptr);\n    __hm_ = __rhm == -1 ? nullptr : __p + __rhm;\n    __p = const_cast<char_type*>(__rhs.__str_.data());\n    if (__lbinp != -1)\n        __rhs.setg(__p + __lbinp, __p + __lninp, __p + __leinp);\n    else\n        __rhs.setg(nullptr, nullptr, nullptr);\n    if (__lbout != -1)\n    {\n        __rhs.setp(__p + __lbout, __p + __leout);\n        __rhs.pbump(__lnout);\n    }\n    else\n        __rhs.setp(nullptr, nullptr);\n    __rhs.__hm_ = __lhm == -1 ? nullptr : __p + __lhm;\n    locale __tl = __rhs.getloc();\n    __rhs.pubimbue(this->getloc());\n    this->pubimbue(__tl);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x,\n     basic_stringbuf<_CharT, _Traits, _Allocator>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\nbasic_stringbuf<_CharT, _Traits, _Allocator>::str() const\n{\n    if (__mode_ & ios_base::out)\n    {\n        if (__hm_ < this->pptr())\n            __hm_ = this->pptr();\n        return string_type(this->pbase(), __hm_, __str_.get_allocator());\n    }\n    else if (__mode_ & ios_base::in)\n        return string_type(this->eback(), this->egptr(), __str_.get_allocator());\n    return string_type(__str_.get_allocator());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_stringbuf<_CharT, _Traits, _Allocator>::str(const string_type& __s)\n{\n    __str_ = __s;\n    __hm_ = 0;\n    if (__mode_ & ios_base::in)\n    {\n        __hm_ = const_cast<char_type*>(__str_.data()) + __str_.size();\n        this->setg(const_cast<char_type*>(__str_.data()),\n                   const_cast<char_type*>(__str_.data()),\n                   __hm_);\n    }\n    if (__mode_ & ios_base::out)\n    {\n        typename string_type::size_type __sz = __str_.size();\n        __hm_ = const_cast<char_type*>(__str_.data()) + __sz;\n        __str_.resize(__str_.capacity());\n        this->setp(const_cast<char_type*>(__str_.data()),\n                   const_cast<char_type*>(__str_.data()) + __str_.size());\n        if (__mode_ & (ios_base::app | ios_base::ate))\n            this->pbump(__sz);\n    }\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_stringbuf<_CharT, _Traits, _Allocator>::int_type\nbasic_stringbuf<_CharT, _Traits, _Allocator>::underflow()\n{\n    if (__hm_ < this->pptr())\n        __hm_ = this->pptr();\n    if (__mode_ & ios_base::in)\n    {\n        if (this->egptr() < __hm_)\n            this->setg(this->eback(), this->gptr(), __hm_);\n        if (this->gptr() < this->egptr())\n            return traits_type::to_int_type(*this->gptr());\n    }\n    return traits_type::eof();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_stringbuf<_CharT, _Traits, _Allocator>::int_type\nbasic_stringbuf<_CharT, _Traits, _Allocator>::pbackfail(int_type __c)\n{\n    if (__hm_ < this->pptr())\n        __hm_ = this->pptr();\n    if (this->eback() < this->gptr())\n    {\n        if (traits_type::eq_int_type(__c, traits_type::eof()))\n        {\n            this->setg(this->eback(), this->gptr()-1, __hm_);\n            return traits_type::not_eof(__c);\n        }\n        if ((__mode_ & ios_base::out) ||\n            traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1]))\n        {\n            this->setg(this->eback(), this->gptr()-1, __hm_);\n            *this->gptr() = traits_type::to_char_type(__c);\n            return __c;\n        }\n    }\n    return traits_type::eof();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_stringbuf<_CharT, _Traits, _Allocator>::int_type\nbasic_stringbuf<_CharT, _Traits, _Allocator>::overflow(int_type __c)\n{\n    if (!traits_type::eq_int_type(__c, traits_type::eof()))\n    {\n        ptrdiff_t __ninp = this->gptr()  - this->eback();\n        if (this->pptr() == this->epptr())\n        {\n            if (!(__mode_ & ios_base::out))\n                return traits_type::eof();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n            try\n            {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n                ptrdiff_t __nout = this->pptr()  - this->pbase();\n                ptrdiff_t __hm = __hm_ - this->pbase();\n                __str_.push_back(char_type());\n                __str_.resize(__str_.capacity());\n                char_type* __p = const_cast<char_type*>(__str_.data());\n                this->setp(__p, __p + __str_.size());\n                this->pbump(__nout);\n                __hm_ = this->pbase() + __hm;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n            }\n            catch (...)\n            {\n                return traits_type::eof();\n            }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        }\n        __hm_ = _VSTD::max(this->pptr() + 1, __hm_);\n        if (__mode_ & ios_base::in)\n        {\n            char_type* __p = const_cast<char_type*>(__str_.data());\n            this->setg(__p, __p + __ninp, __hm_);\n        }\n        return this->sputc(__c);\n    }\n    return traits_type::not_eof(__c);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_stringbuf<_CharT, _Traits, _Allocator>::pos_type\nbasic_stringbuf<_CharT, _Traits, _Allocator>::seekoff(off_type __off,\n                                                      ios_base::seekdir __way,\n                                                      ios_base::openmode __wch)\n{\n    if (__hm_ < this->pptr())\n        __hm_ = this->pptr();\n    if ((__wch & (ios_base::in | ios_base::out)) == 0)\n        return pos_type(-1);\n    if ((__wch & (ios_base::in | ios_base::out)) == (ios_base::in | ios_base::out)\n        && __way == ios_base::cur)\n        return pos_type(-1);\n    off_type __noff;\n    switch (__way)\n    {\n    case ios_base::beg:\n        __noff = 0;\n        break;\n    case ios_base::cur:\n        if (__wch & ios_base::in)\n            __noff = this->gptr() - this->eback();\n        else\n            __noff = this->pptr() - this->pbase();\n        break;\n    case ios_base::end:\n        __noff = __hm_ - __str_.data();\n        break;\n    default:\n        return pos_type(-1);\n    }\n    __noff += __off;\n    if (__noff < 0 || __hm_ - __str_.data() < __noff)\n        return pos_type(-1);\n    if (__noff != 0)\n    {\n        if ((__wch & ios_base::in) && this->gptr() == 0)\n            return pos_type(-1);\n        if ((__wch & ios_base::out) && this->pptr() == 0)\n            return pos_type(-1);\n    }\n    if (__wch & ios_base::in)\n        this->setg(this->eback(), this->eback() + __noff, __hm_);\n    if (__wch & ios_base::out)\n    {\n        this->setp(this->pbase(), this->epptr());\n        this->pbump(__noff);\n    }\n    return pos_type(__noff);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_stringbuf<_CharT, _Traits, _Allocator>::pos_type\nbasic_stringbuf<_CharT, _Traits, _Allocator>::seekpos(pos_type __sp,\n                                                      ios_base::openmode __wch)\n{\n    return seekoff(__sp, ios_base::beg, __wch);\n}\n\n// basic_istringstream\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nclass _LIBCPP_TEMPLATE_VIS basic_istringstream\n    : public basic_istream<_CharT, _Traits>\n{\npublic:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef _Allocator                     allocator_type;\n\n    typedef basic_string<char_type, traits_type, allocator_type> string_type;\n\nprivate:\n    basic_stringbuf<char_type, traits_type, allocator_type> __sb_;\n\npublic:\n    // 27.8.2.1 Constructors:\n    inline _LIBCPP_INLINE_VISIBILITY\n    explicit basic_istringstream(ios_base::openmode __wch = ios_base::in);\n    inline _LIBCPP_INLINE_VISIBILITY\n    explicit basic_istringstream(const string_type& __s,\n                                 ios_base::openmode __wch = ios_base::in);\n#ifndef _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_istringstream(basic_istringstream&& __rhs);\n\n    // 27.8.2.2 Assign and swap:\n    basic_istringstream& operator=(basic_istringstream&& __rhs);\n#endif  // _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    void swap(basic_istringstream& __rhs);\n\n    // 27.8.2.3 Members:\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const;\n    inline _LIBCPP_INLINE_VISIBILITY\n    string_type str() const;\n    inline _LIBCPP_INLINE_VISIBILITY\n    void str(const string_type& __s);\n};\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(ios_base::openmode __wch)\n    : basic_istream<_CharT, _Traits>(&__sb_),\n      __sb_(__wch | ios_base::in)\n{\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(const string_type& __s,\n                                                                      ios_base::openmode __wch)\n    : basic_istream<_CharT, _Traits>(&__sb_),\n      __sb_(__s, __wch | ios_base::in)\n{\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(basic_istringstream&& __rhs)\n    : basic_istream<_CharT, _Traits>(_VSTD::move(__rhs)),\n      __sb_(_VSTD::move(__rhs.__sb_))\n{\n    basic_istream<_CharT, _Traits>::set_rdbuf(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_istringstream<_CharT, _Traits, _Allocator>&\nbasic_istringstream<_CharT, _Traits, _Allocator>::operator=(basic_istringstream&& __rhs)\n{\n    basic_istream<char_type, traits_type>::operator=(_VSTD::move(__rhs));\n    __sb_ = _VSTD::move(__rhs.__sb_);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid basic_istringstream<_CharT, _Traits, _Allocator>::swap(basic_istringstream& __rhs)\n{\n    basic_istream<char_type, traits_type>::swap(__rhs);\n    __sb_.swap(__rhs.__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_istringstream<_CharT, _Traits, _Allocator>& __x,\n     basic_istringstream<_CharT, _Traits, _Allocator>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringbuf<_CharT, _Traits, _Allocator>*\nbasic_istringstream<_CharT, _Traits, _Allocator>::rdbuf() const\n{\n    return const_cast<basic_stringbuf<char_type, traits_type, allocator_type>*>(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\nbasic_istringstream<_CharT, _Traits, _Allocator>::str() const\n{\n    return __sb_.str();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid basic_istringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s)\n{\n    __sb_.str(__s);\n}\n\n// basic_ostringstream\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nclass _LIBCPP_TEMPLATE_VIS basic_ostringstream\n    : public basic_ostream<_CharT, _Traits>\n{\npublic:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef _Allocator                     allocator_type;\n\n    typedef basic_string<char_type, traits_type, allocator_type> string_type;\n\nprivate:\n    basic_stringbuf<char_type, traits_type, allocator_type> __sb_;\n\npublic:\n    // 27.8.2.1 Constructors:\n    inline _LIBCPP_INLINE_VISIBILITY\n    explicit basic_ostringstream(ios_base::openmode __wch = ios_base::out);\n    inline _LIBCPP_INLINE_VISIBILITY\n    explicit basic_ostringstream(const string_type& __s,\n                                 ios_base::openmode __wch = ios_base::out);\n#ifndef _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_ostringstream(basic_ostringstream&& __rhs);\n\n    // 27.8.2.2 Assign and swap:\n    basic_ostringstream& operator=(basic_ostringstream&& __rhs);\n#endif  // _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    void swap(basic_ostringstream& __rhs);\n\n    // 27.8.2.3 Members:\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const;\n    inline _LIBCPP_INLINE_VISIBILITY\n    string_type str() const;\n    inline _LIBCPP_INLINE_VISIBILITY\n    void str(const string_type& __s);\n};\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(ios_base::openmode __wch)\n    : basic_ostream<_CharT, _Traits>(&__sb_),\n      __sb_(__wch | ios_base::out)\n{\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(const string_type& __s,\n                                                                      ios_base::openmode __wch)\n    : basic_ostream<_CharT, _Traits>(&__sb_),\n      __sb_(__s, __wch | ios_base::out)\n{\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(basic_ostringstream&& __rhs)\n    : basic_ostream<_CharT, _Traits>(_VSTD::move(__rhs)),\n      __sb_(_VSTD::move(__rhs.__sb_))\n{\n    basic_ostream<_CharT, _Traits>::set_rdbuf(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_ostringstream<_CharT, _Traits, _Allocator>&\nbasic_ostringstream<_CharT, _Traits, _Allocator>::operator=(basic_ostringstream&& __rhs)\n{\n    basic_ostream<char_type, traits_type>::operator=(_VSTD::move(__rhs));\n    __sb_ = _VSTD::move(__rhs.__sb_);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_ostringstream<_CharT, _Traits, _Allocator>::swap(basic_ostringstream& __rhs)\n{\n    basic_ostream<char_type, traits_type>::swap(__rhs);\n    __sb_.swap(__rhs.__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x,\n     basic_ostringstream<_CharT, _Traits, _Allocator>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringbuf<_CharT, _Traits, _Allocator>*\nbasic_ostringstream<_CharT, _Traits, _Allocator>::rdbuf() const\n{\n    return const_cast<basic_stringbuf<char_type, traits_type, allocator_type>*>(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\nbasic_ostringstream<_CharT, _Traits, _Allocator>::str() const\n{\n    return __sb_.str();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_ostringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s)\n{\n    __sb_.str(__s);\n}\n\n// basic_stringstream\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nclass _LIBCPP_TEMPLATE_VIS basic_stringstream\n    : public basic_iostream<_CharT, _Traits>\n{\npublic:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n    typedef _Allocator                     allocator_type;\n\n    typedef basic_string<char_type, traits_type, allocator_type> string_type;\n\nprivate:\n    basic_stringbuf<char_type, traits_type, allocator_type> __sb_;\n\npublic:\n    // 27.8.2.1 Constructors:\n    inline _LIBCPP_INLINE_VISIBILITY\n    explicit basic_stringstream(ios_base::openmode __wch = ios_base::in | ios_base::out);\n    inline _LIBCPP_INLINE_VISIBILITY\n    explicit basic_stringstream(const string_type& __s,\n                                ios_base::openmode __wch = ios_base::in | ios_base::out);\n#ifndef _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_stringstream(basic_stringstream&& __rhs);\n\n    // 27.8.2.2 Assign and swap:\n    basic_stringstream& operator=(basic_stringstream&& __rhs);\n#endif  // _LIBCPP_CXX03_LANG\n    inline _LIBCPP_INLINE_VISIBILITY\n    void swap(basic_stringstream& __rhs);\n\n    // 27.8.2.3 Members:\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_stringbuf<char_type, traits_type, allocator_type>* rdbuf() const;\n    inline _LIBCPP_INLINE_VISIBILITY\n    string_type str() const;\n    inline _LIBCPP_INLINE_VISIBILITY\n    void str(const string_type& __s);\n};\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(ios_base::openmode __wch)\n    : basic_iostream<_CharT, _Traits>(&__sb_),\n      __sb_(__wch)\n{\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(const string_type& __s,\n                                                                    ios_base::openmode __wch)\n    : basic_iostream<_CharT, _Traits>(&__sb_),\n      __sb_(__s, __wch)\n{\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(basic_stringstream&& __rhs)\n    : basic_iostream<_CharT, _Traits>(_VSTD::move(__rhs)),\n      __sb_(_VSTD::move(__rhs.__sb_))\n{\n    basic_istream<_CharT, _Traits>::set_rdbuf(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringstream<_CharT, _Traits, _Allocator>&\nbasic_stringstream<_CharT, _Traits, _Allocator>::operator=(basic_stringstream&& __rhs)\n{\n    basic_iostream<char_type, traits_type>::operator=(_VSTD::move(__rhs));\n    __sb_ = _VSTD::move(__rhs.__sb_);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_stringstream<_CharT, _Traits, _Allocator>::swap(basic_stringstream& __rhs)\n{\n    basic_iostream<char_type, traits_type>::swap(__rhs);\n    __sb_.swap(__rhs.__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_stringstream<_CharT, _Traits, _Allocator>& __x,\n     basic_stringstream<_CharT, _Traits, _Allocator>& __y)\n{\n    __x.swap(__y);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_stringbuf<_CharT, _Traits, _Allocator>*\nbasic_stringstream<_CharT, _Traits, _Allocator>::rdbuf() const\n{\n    return const_cast<basic_stringbuf<char_type, traits_type, allocator_type>*>(&__sb_);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\nbasic_stringstream<_CharT, _Traits, _Allocator>::str() const\n{\n    return __sb_.str();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_stringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s)\n{\n    __sb_.str(__s);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_SSTREAM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stack",
    "content": "// -*- C++ -*-\n//===---------------------------- stack -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_STACK\n#define _LIBCPP_STACK\n\n/*\n    stack synopsis\n\nnamespace std\n{\n\ntemplate <class T, class Container = deque<T>>\nclass stack\n{\npublic:\n    typedef Container                                container_type;\n    typedef typename container_type::value_type      value_type;\n    typedef typename container_type::reference       reference;\n    typedef typename container_type::const_reference const_reference;\n    typedef typename container_type::size_type       size_type;\n\nprotected:\n    container_type c;\n\npublic:\n    stack() = default;\n    ~stack() = default;\n\n    stack(const stack& q) = default;\n    stack(stack&& q) = default;\n\n    stack& operator=(const stack& q) = default;\n    stack& operator=(stack&& q) = default;\n\n    explicit stack(const container_type& c);\n    explicit stack(container_type&& c);\n    template <class Alloc> explicit stack(const Alloc& a);\n    template <class Alloc> stack(const container_type& c, const Alloc& a);\n    template <class Alloc> stack(container_type&& c, const Alloc& a);\n    template <class Alloc> stack(const stack& c, const Alloc& a);\n    template <class Alloc> stack(stack&& c, const Alloc& a);\n\n    bool empty() const;\n    size_type size() const;\n    reference top();\n    const_reference top() const;\n\n    void push(const value_type& x);\n    void push(value_type&& x);\n    template <class... Args> reference emplace(Args&&... args); // reference in C++17\n    void pop();\n\n    void swap(stack& c) noexcept(is_nothrow_swappable_v<Container>)\n};\n\ntemplate <class T, class Container>\n  bool operator==(const stack<T, Container>& x, const stack<T, Container>& y);\ntemplate <class T, class Container>\n  bool operator< (const stack<T, Container>& x, const stack<T, Container>& y);\ntemplate <class T, class Container>\n  bool operator!=(const stack<T, Container>& x, const stack<T, Container>& y);\ntemplate <class T, class Container>\n  bool operator> (const stack<T, Container>& x, const stack<T, Container>& y);\ntemplate <class T, class Container>\n  bool operator>=(const stack<T, Container>& x, const stack<T, Container>& y);\ntemplate <class T, class Container>\n  bool operator<=(const stack<T, Container>& x, const stack<T, Container>& y);\n\ntemplate <class T, class Container>\n  void swap(stack<T, Container>& x, stack<T, Container>& y)\n  noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n#include <deque>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp, class _Container = deque<_Tp> > class _LIBCPP_TEMPLATE_VIS stack;\n\ntemplate <class _Tp, class _Container>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y);\n\ntemplate <class _Tp, class _Container>\n_LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y);\n\ntemplate <class _Tp, class _Container /*= deque<_Tp>*/>\nclass _LIBCPP_TEMPLATE_VIS stack\n{\npublic:\n    typedef _Container                               container_type;\n    typedef typename container_type::value_type      value_type;\n    typedef typename container_type::reference       reference;\n    typedef typename container_type::const_reference const_reference;\n    typedef typename container_type::size_type       size_type;\n    static_assert((is_same<_Tp, value_type>::value), \"\" );\n    \nprotected:\n    container_type c;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    stack()\n        _NOEXCEPT_(is_nothrow_default_constructible<container_type>::value)\n        : c() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    stack(const stack& __q) : c(__q.c) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    stack& operator=(const stack& __q) {c = __q.c; return *this;}\n\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    stack(stack&& __q)\n        _NOEXCEPT_(is_nothrow_move_constructible<container_type>::value)\n        : c(_VSTD::move(__q.c)) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    stack& operator=(stack&& __q)\n        _NOEXCEPT_(is_nothrow_move_assignable<container_type>::value)\n        {c = _VSTD::move(__q.c); return *this;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit stack(container_type&& __c) : c(_VSTD::move(__c)) {}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit stack(const container_type& __c) : c(__c) {}\n\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit stack(const _Alloc& __a,\n                       typename enable_if<uses_allocator<container_type,\n                                                         _Alloc>::value>::type* = 0)\n            : c(__a) {}\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        stack(const container_type& __c, const _Alloc& __a,\n              typename enable_if<uses_allocator<container_type,\n                                                _Alloc>::value>::type* = 0)\n            : c(__c, __a) {}\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        stack(const stack& __s, const _Alloc& __a,\n              typename enable_if<uses_allocator<container_type,\n                                                _Alloc>::value>::type* = 0)\n            : c(__s.c, __a) {}\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        stack(container_type&& __c, const _Alloc& __a,\n              typename enable_if<uses_allocator<container_type,\n                                                _Alloc>::value>::type* = 0)\n            : c(_VSTD::move(__c), __a) {}\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        stack(stack&& __s, const _Alloc& __a,\n              typename enable_if<uses_allocator<container_type,\n                                                _Alloc>::value>::type* = 0)\n            : c(_VSTD::move(__s.c), __a) {}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty()     const      {return c.empty();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const      {return c.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    reference top()             {return c.back();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference top() const {return c.back();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void push(const value_type& __v) {c.push_back(__v);}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void push(value_type&& __v) {c.push_back(_VSTD::move(__v));}\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n#if _LIBCPP_STD_VER > 14\n        reference emplace(_Args&&... __args)\n        { return c.emplace_back(_VSTD::forward<_Args>(__args)...);}\n#else\n        void      emplace(_Args&&... __args)\n        {        c.emplace_back(_VSTD::forward<_Args>(__args)...);}\n#endif\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    void pop() {c.pop_back();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(stack& __s)\n        _NOEXCEPT_(__is_nothrow_swappable<container_type>::value)\n    {\n        using _VSTD::swap;\n        swap(c, __s.c);\n    }\n\n    template <class T1, class _C1>\n    friend\n    bool\n    operator==(const stack<T1, _C1>& __x, const stack<T1, _C1>& __y);\n\n    template <class T1, class _C1>\n    friend\n    bool\n    operator< (const stack<T1, _C1>& __x, const stack<T1, _C1>& __y);\n};\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y)\n{\n    return __x.c == __y.c;\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y)\n{\n    return __x.c < __y.c;\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const stack<_Tp, _Container>& __x, const stack<_Tp, _Container>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Tp, class _Container>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if<\n    __is_swappable<_Container>::value,\n    void\n>::type\nswap(stack<_Tp, _Container>& __x, stack<_Tp, _Container>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Tp, class _Container, class _Alloc>\nstruct _LIBCPP_TEMPLATE_VIS uses_allocator<stack<_Tp, _Container>, _Alloc>\n    : public uses_allocator<_Container, _Alloc>\n{\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_STACK\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdbool.h",
    "content": "// -*- C++ -*-\n//===--------------------------- stdbool.h --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n#ifndef _LIBCPP_STDBOOL_H\n#define _LIBCPP_STDBOOL_H\n\n\n/*\n    stdbool.h synopsis\n\nMacros:\n\n    __bool_true_false_are_defined\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <stdbool.h>\n\n#ifdef __cplusplus\n#undef bool\n#undef true\n#undef false\n#undef __bool_true_false_are_defined\n#define __bool_true_false_are_defined 1\n#endif\n\n#endif  // _LIBCPP_STDBOOL_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stddef.h",
    "content": "// -*- C++ -*-\n//===--------------------------- stddef.h ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#if defined(__need_ptrdiff_t) || defined(__need_size_t) || \\\n    defined(__need_wchar_t) || defined(__need_NULL) || defined(__need_wint_t)\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <stddef.h>\n\n#elif !defined(_LIBCPP_STDDEF_H)\n#define _LIBCPP_STDDEF_H\n\n/*\n    stddef.h synopsis\n\nMacros:\n\n    offsetof(type,member-designator)\n    NULL\n\nTypes:\n\n    ptrdiff_t\n    size_t\n    max_align_t\n    nullptr_t\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <stddef.h>\n\n#ifdef __cplusplus\n\nextern \"C++\" {\n#include <__nullptr>\nusing std::nullptr_t;\n}\n\n// Re-use the compiler's <stddef.h> max_align_t where possible.\n#if !defined(__CLANG_MAX_ALIGN_T_DEFINED) && !defined(_GCC_MAX_ALIGN_T) && \\\n    !defined(__DEFINED_max_align_t)\ntypedef long double max_align_t;\n#endif\n\n#endif\n\n#endif  // _LIBCPP_STDDEF_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdexcept",
    "content": "// -*- C++ -*-\n//===--------------------------- stdexcept --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_STDEXCEPT\n#define _LIBCPP_STDEXCEPT\n\n/*\n    stdexcept synopsis\n\nnamespace std\n{\n\nclass logic_error;\n    class domain_error;\n    class invalid_argument;\n    class length_error;\n    class out_of_range;\nclass runtime_error;\n    class range_error;\n    class overflow_error;\n    class underflow_error;\n\nfor each class xxx_error:\n\nclass xxx_error : public exception // at least indirectly\n{\npublic:\n    explicit xxx_error(const string& what_arg);\n    explicit xxx_error(const char*   what_arg);\n\n    virtual const char* what() const noexcept // returns what_arg\n};\n\n}  // std\n\n*/\n\n#include <__config>\n#include <exception>\n#include <iosfwd>  // for string forward decl\n#ifdef _LIBCPP_NO_EXCEPTIONS\n#include <cstdlib>\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nclass _LIBCPP_HIDDEN __libcpp_refstring\n{\n    const char* __imp_;\n\n    bool __uses_refcount() const;\npublic:\n    explicit __libcpp_refstring(const char* __msg);\n    __libcpp_refstring(const __libcpp_refstring& __s) _NOEXCEPT;\n    __libcpp_refstring& operator=(const __libcpp_refstring& __s) _NOEXCEPT;\n    ~__libcpp_refstring();\n\n    const char* c_str() const _NOEXCEPT {return __imp_;}\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\nnamespace std  // purposefully not using versioning namespace\n{\n\nclass _LIBCPP_EXCEPTION_ABI logic_error\n    : public exception\n{\nprivate:\n    _VSTD::__libcpp_refstring __imp_;\npublic:\n    explicit logic_error(const string&);\n    explicit logic_error(const char*);\n\n    logic_error(const logic_error&) _NOEXCEPT;\n    logic_error& operator=(const logic_error&) _NOEXCEPT;\n\n    virtual ~logic_error() _NOEXCEPT;\n\n    virtual const char* what() const _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI runtime_error\n    : public exception\n{\nprivate:\n    _VSTD::__libcpp_refstring __imp_;\npublic:\n    explicit runtime_error(const string&);\n    explicit runtime_error(const char*);\n\n    runtime_error(const runtime_error&) _NOEXCEPT;\n    runtime_error& operator=(const runtime_error&) _NOEXCEPT;\n\n    virtual ~runtime_error() _NOEXCEPT;\n\n    virtual const char* what() const _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI domain_error\n    : public logic_error\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit domain_error(const string& __s) : logic_error(__s) {}\n    _LIBCPP_INLINE_VISIBILITY explicit domain_error(const char* __s)   : logic_error(__s) {}\n\n    virtual ~domain_error() _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI invalid_argument\n    : public logic_error\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit invalid_argument(const string& __s) : logic_error(__s) {}\n    _LIBCPP_INLINE_VISIBILITY explicit invalid_argument(const char* __s)   : logic_error(__s) {}\n\n    virtual ~invalid_argument() _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI length_error\n    : public logic_error\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit length_error(const string& __s) : logic_error(__s) {}\n    _LIBCPP_INLINE_VISIBILITY explicit length_error(const char* __s)   : logic_error(__s) {}\n\n    virtual ~length_error() _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI out_of_range\n    : public logic_error\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit out_of_range(const string& __s) : logic_error(__s) {}\n    _LIBCPP_INLINE_VISIBILITY explicit out_of_range(const char* __s)   : logic_error(__s) {}\n\n    virtual ~out_of_range() _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI range_error\n    : public runtime_error\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit range_error(const string& __s) : runtime_error(__s) {}\n    _LIBCPP_INLINE_VISIBILITY explicit range_error(const char* __s)   : runtime_error(__s) {}\n\n    virtual ~range_error() _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI overflow_error\n    : public runtime_error\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit overflow_error(const string& __s) : runtime_error(__s) {}\n    _LIBCPP_INLINE_VISIBILITY explicit overflow_error(const char* __s)   : runtime_error(__s) {}\n\n    virtual ~overflow_error() _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI underflow_error\n    : public runtime_error\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY explicit underflow_error(const string& __s) : runtime_error(__s) {}\n    _LIBCPP_INLINE_VISIBILITY explicit underflow_error(const char* __s)   : runtime_error(__s) {}\n\n    virtual ~underflow_error() _NOEXCEPT;\n};\n\n}  // std\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// in the dylib\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS void __throw_runtime_error(const char*);\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_logic_error(const char*__msg)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw logic_error(__msg);\n#else\n    ((void)__msg);\n\t  _VSTD::abort();\n#endif\n}\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_domain_error(const char*__msg)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw domain_error(__msg);\n#else\n    ((void)__msg);\n\t  _VSTD::abort();\n#endif\n}\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_invalid_argument(const char*__msg)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw invalid_argument(__msg);\n#else\n    ((void)__msg);\n\t  _VSTD::abort();\n#endif\n}\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_length_error(const char*__msg)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw length_error(__msg);\n#else\n    ((void)__msg);\n\t  _VSTD::abort();\n#endif\n}\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_out_of_range(const char*__msg)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw out_of_range(__msg);\n#else\n    ((void)__msg);\n\t  _VSTD::abort();\n#endif\n}\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_range_error(const char*__msg)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw range_error(__msg);\n#else\n    ((void)__msg);\n\t  _VSTD::abort();\n#endif\n}\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_overflow_error(const char*__msg)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw overflow_error(__msg);\n#else\n    ((void)__msg);\n    _VSTD::abort();\n#endif\n}\n\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_underflow_error(const char*__msg)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw underflow_error(__msg);\n#else\n    ((void)__msg);\n    _VSTD::abort();\n#endif\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_STDEXCEPT\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdint.h",
    "content": "// -*- C++ -*-\n//===---------------------------- stdint.h --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_STDINT_H\n#define _LIBCPP_STDINT_H\n\n/*\n    stdint.h synopsis\n\nMacros:\n\n    INT8_MIN\n    INT16_MIN\n    INT32_MIN\n    INT64_MIN\n\n    INT8_MAX\n    INT16_MAX\n    INT32_MAX\n    INT64_MAX\n\n    UINT8_MAX\n    UINT16_MAX\n    UINT32_MAX\n    UINT64_MAX\n\n    INT_LEAST8_MIN\n    INT_LEAST16_MIN\n    INT_LEAST32_MIN\n    INT_LEAST64_MIN\n\n    INT_LEAST8_MAX\n    INT_LEAST16_MAX\n    INT_LEAST32_MAX\n    INT_LEAST64_MAX\n\n    UINT_LEAST8_MAX\n    UINT_LEAST16_MAX\n    UINT_LEAST32_MAX\n    UINT_LEAST64_MAX\n\n    INT_FAST8_MIN\n    INT_FAST16_MIN\n    INT_FAST32_MIN\n    INT_FAST64_MIN\n\n    INT_FAST8_MAX\n    INT_FAST16_MAX\n    INT_FAST32_MAX\n    INT_FAST64_MAX\n\n    UINT_FAST8_MAX\n    UINT_FAST16_MAX\n    UINT_FAST32_MAX\n    UINT_FAST64_MAX\n\n    INTPTR_MIN\n    INTPTR_MAX\n    UINTPTR_MAX\n\n    INTMAX_MIN\n    INTMAX_MAX\n\n    UINTMAX_MAX\n\n    PTRDIFF_MIN\n    PTRDIFF_MAX\n\n    SIG_ATOMIC_MIN\n    SIG_ATOMIC_MAX\n\n    SIZE_MAX\n\n    WCHAR_MIN\n    WCHAR_MAX\n\n    WINT_MIN\n    WINT_MAX\n\n    INT8_C(value)\n    INT16_C(value)\n    INT32_C(value)\n    INT64_C(value)\n\n    UINT8_C(value)\n    UINT16_C(value)\n    UINT32_C(value)\n    UINT64_C(value)\n\n    INTMAX_C(value)\n    UINTMAX_C(value)\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n/* C99 stdlib (e.g. glibc < 2.18) does not provide macros needed\n   for C++11 unless __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS\n   are defined\n*/\n#if defined(__cplusplus) && !defined(__STDC_LIMIT_MACROS)\n#   define __STDC_LIMIT_MACROS\n#endif\n#if defined(__cplusplus) && !defined(__STDC_CONSTANT_MACROS)\n#   define __STDC_CONSTANT_MACROS\n#endif\n\n#include_next <stdint.h>\n\n#endif  // _LIBCPP_STDINT_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdio.h",
    "content": "// -*- C++ -*-\n//===---------------------------- stdio.h ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#if defined(__need_FILE) || defined(__need___FILE)\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <stdio.h>\n\n#elif !defined(_LIBCPP_STDIO_H)\n#define _LIBCPP_STDIO_H\n\n/*\n    stdio.h synopsis\n\nMacros:\n\n    BUFSIZ\n    EOF\n    FILENAME_MAX\n    FOPEN_MAX\n    L_tmpnam\n    NULL\n    SEEK_CUR\n    SEEK_END\n    SEEK_SET\n    TMP_MAX\n    _IOFBF\n    _IOLBF\n    _IONBF\n    stderr\n    stdin\n    stdout\n\nTypes:\n\nFILE\nfpos_t\nsize_t\n\nint remove(const char* filename);\nint rename(const char* old, const char* new);\nFILE* tmpfile(void);\nchar* tmpnam(char* s);\nint fclose(FILE* stream);\nint fflush(FILE* stream);\nFILE* fopen(const char* restrict filename, const char* restrict mode);\nFILE* freopen(const char* restrict filename, const char * restrict mode,\n              FILE * restrict stream);\nvoid setbuf(FILE* restrict stream, char* restrict buf);\nint setvbuf(FILE* restrict stream, char* restrict buf, int mode, size_t size);\nint fprintf(FILE* restrict stream, const char* restrict format, ...);\nint fscanf(FILE* restrict stream, const char * restrict format, ...);\nint printf(const char* restrict format, ...);\nint scanf(const char* restrict format, ...);\nint snprintf(char* restrict s, size_t n, const char* restrict format, ...);    // C99\nint sprintf(char* restrict s, const char* restrict format, ...);\nint sscanf(const char* restrict s, const char* restrict format, ...);\nint vfprintf(FILE* restrict stream, const char* restrict format, va_list arg);\nint vfscanf(FILE* restrict stream, const char* restrict format, va_list arg);  // C99\nint vprintf(const char* restrict format, va_list arg);\nint vscanf(const char* restrict format, va_list arg);                          // C99\nint vsnprintf(char* restrict s, size_t n, const char* restrict format,         // C99\n              va_list arg);\nint vsprintf(char* restrict s, const char* restrict format, va_list arg);\nint vsscanf(const char* restrict s, const char* restrict format, va_list arg); // C99\nint fgetc(FILE* stream);\nchar* fgets(char* restrict s, int n, FILE* restrict stream);\nint fputc(int c, FILE* stream);\nint fputs(const char* restrict s, FILE* restrict stream);\nint getc(FILE* stream);\nint getchar(void);\nchar* gets(char* s);  // removed in C++14\nint putc(int c, FILE* stream);\nint putchar(int c);\nint puts(const char* s);\nint ungetc(int c, FILE* stream);\nsize_t fread(void* restrict ptr, size_t size, size_t nmemb,\n             FILE* restrict stream);\nsize_t fwrite(const void* restrict ptr, size_t size, size_t nmemb,\n              FILE* restrict stream);\nint fgetpos(FILE* restrict stream, fpos_t* restrict pos);\nint fseek(FILE* stream, long offset, int whence);\nint fsetpos(FILE*stream, const fpos_t* pos);\nlong ftell(FILE* stream);\nvoid rewind(FILE* stream);\nvoid clearerr(FILE* stream);\nint feof(FILE* stream);\nint ferror(FILE* stream);\nvoid perror(const char* s);\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <stdio.h>\n\n#ifdef __cplusplus\n\n// snprintf\n#if defined(_LIBCPP_MSVCRT_LIKE)\nextern \"C\" {\nint vasprintf(char **sptr, const char *__restrict fmt, va_list ap);\n}\n#endif\n\n#undef getc\n#undef putc\n#undef clearerr\n#undef feof\n#undef ferror\n\n#endif\n\n#endif  // _LIBCPP_STDIO_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stdlib.h",
    "content": "// -*- C++ -*-\n//===--------------------------- stdlib.h ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#if defined(__need_malloc_and_calloc)\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <stdlib.h>\n\n#elif !defined(_LIBCPP_STDLIB_H)\n#define _LIBCPP_STDLIB_H\n\n/*\n    stdlib.h synopsis\n\nMacros:\n\n    EXIT_FAILURE\n    EXIT_SUCCESS\n    MB_CUR_MAX\n    NULL\n    RAND_MAX\n\nTypes:\n\n    size_t\n    div_t\n    ldiv_t\n    lldiv_t                                                               // C99\n\ndouble    atof (const char* nptr);\nint       atoi (const char* nptr);\nlong      atol (const char* nptr);\nlong long atoll(const char* nptr);                                        // C99\ndouble             strtod  (const char* restrict nptr, char** restrict endptr);\nfloat              strtof  (const char* restrict nptr, char** restrict endptr); // C99\nlong double        strtold (const char* restrict nptr, char** restrict endptr); // C99\nlong               strtol  (const char* restrict nptr, char** restrict endptr, int base);\nlong long          strtoll (const char* restrict nptr, char** restrict endptr, int base); // C99\nunsigned long      strtoul (const char* restrict nptr, char** restrict endptr, int base);\nunsigned long long strtoull(const char* restrict nptr, char** restrict endptr, int base); // C99\nint rand(void);\nvoid srand(unsigned int seed);\nvoid* calloc(size_t nmemb, size_t size);\nvoid free(void* ptr);\nvoid* malloc(size_t size);\nvoid* realloc(void* ptr, size_t size);\nvoid abort(void);\nint atexit(void (*func)(void));\nvoid exit(int status);\nvoid _Exit(int status);\nchar* getenv(const char* name);\nint system(const char* string);\nvoid* bsearch(const void* key, const void* base, size_t nmemb, size_t size,\n              int (*compar)(const void *, const void *));\nvoid qsort(void* base, size_t nmemb, size_t size,\n           int (*compar)(const void *, const void *));\nint         abs(      int j);\nlong        abs(     long j);\nlong long   abs(long long j);                                             // C++0X\nlong       labs(     long j);\nlong long llabs(long long j);                                             // C99\ndiv_t     div(      int numer,       int denom);\nldiv_t    div(     long numer,      long denom);\nlldiv_t   div(long long numer, long long denom);                          // C++0X\nldiv_t   ldiv(     long numer,      long denom);\nlldiv_t lldiv(long long numer, long long denom);                          // C99\nint mblen(const char* s, size_t n);\nint mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n);\nint wctomb(char* s, wchar_t wchar);\nsize_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n);\nsize_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n);\nint at_quick_exit(void (*func)(void))                                     // C++11\nvoid quick_exit(int status);                                              // C++11\nvoid *aligned_alloc(size_t alignment, size_t size);                       // C11\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <stdlib.h>\n\n#ifdef __cplusplus\n\nextern \"C++\" {\n\n#undef abs\n#undef div\n#undef labs\n#undef ldiv\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\n#undef llabs\n#undef lldiv\n#endif\n\n// MSVCRT already has the correct prototype in <stdlib.h> if __cplusplus is defined\n#if !defined(_LIBCPP_MSVCRT) && !defined(__sun__) && !defined(_AIX)\ninline _LIBCPP_INLINE_VISIBILITY long      abs(     long __x) _NOEXCEPT {return  labs(__x);}\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\ninline _LIBCPP_INLINE_VISIBILITY long long abs(long long __x) _NOEXCEPT {return llabs(__x);}\n#endif // _LIBCPP_HAS_NO_LONG_LONG\n\ninline _LIBCPP_INLINE_VISIBILITY  ldiv_t div(     long __x,      long __y) _NOEXCEPT {return  ldiv(__x, __y);}\n#ifndef _LIBCPP_HAS_NO_LONG_LONG\ninline _LIBCPP_INLINE_VISIBILITY lldiv_t div(long long __x, long long __y) _NOEXCEPT {return lldiv(__x, __y);}\n#endif // _LIBCPP_HAS_NO_LONG_LONG\n#endif // _LIBCPP_MSVCRT / __sun__ / _AIX\n\n}  // extern \"C++\"\n\n#endif  // __cplusplus\n\n#endif  // _LIBCPP_STDLIB_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/streambuf",
    "content": "// -*- C++ -*-\n//===------------------------- streambuf ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_STEAMBUF\n#define _LIBCPP_STEAMBUF\n\n/*\n    streambuf synopsis\n\nnamespace std\n{\n\ntemplate <class charT, class traits = char_traits<charT> >\nclass basic_streambuf\n{\npublic:\n    // types:\n    typedef charT char_type;\n    typedef traits traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    virtual ~basic_streambuf();\n\n    // 27.6.2.2.1 locales:\n    locale pubimbue(const locale& loc);\n    locale getloc() const;\n\n    // 27.6.2.2.2 buffer and positioning:\n    basic_streambuf* pubsetbuf(char_type* s, streamsize n);\n    pos_type pubseekoff(off_type off, ios_base::seekdir way,\n                        ios_base::openmode which = ios_base::in | ios_base::out);\n    pos_type pubseekpos(pos_type sp,\n                        ios_base::openmode which = ios_base::in | ios_base::out);\n    int pubsync();\n\n    // Get and put areas:\n    // 27.6.2.2.3 Get area:\n    streamsize in_avail();\n    int_type snextc();\n    int_type sbumpc();\n    int_type sgetc();\n    streamsize sgetn(char_type* s, streamsize n);\n\n    // 27.6.2.2.4 Putback:\n    int_type sputbackc(char_type c);\n    int_type sungetc();\n\n    // 27.6.2.2.5 Put area:\n    int_type sputc(char_type c);\n    streamsize sputn(const char_type* s, streamsize n);\n\nprotected:\n    basic_streambuf();\n    basic_streambuf(const basic_streambuf& rhs);\n    basic_streambuf& operator=(const basic_streambuf& rhs);\n    void swap(basic_streambuf& rhs);\n\n    // 27.6.2.3.2 Get area:\n    char_type* eback() const;\n    char_type* gptr() const;\n    char_type* egptr() const;\n    void gbump(int n);\n    void setg(char_type* gbeg, char_type* gnext, char_type* gend);\n\n    // 27.6.2.3.3 Put area:\n    char_type* pbase() const;\n    char_type* pptr() const;\n    char_type* epptr() const;\n    void pbump(int n);\n    void setp(char_type* pbeg, char_type* pend);\n\n    // 27.6.2.4 virtual functions:\n    // 27.6.2.4.1 Locales:\n    virtual void imbue(const locale& loc);\n\n    // 27.6.2.4.2 Buffer management and positioning:\n    virtual basic_streambuf* setbuf(char_type* s, streamsize n);\n    virtual pos_type seekoff(off_type off, ios_base::seekdir way,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n    virtual pos_type seekpos(pos_type sp,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n    virtual int sync();\n\n    // 27.6.2.4.3 Get area:\n    virtual streamsize showmanyc();\n    virtual streamsize xsgetn(char_type* s, streamsize n);\n    virtual int_type underflow();\n    virtual int_type uflow();\n\n    // 27.6.2.4.4 Putback:\n    virtual int_type pbackfail(int_type c = traits_type::eof());\n\n    // 27.6.2.4.5 Put area:\n    virtual streamsize xsputn(const char_type* s, streamsize n);\n    virtual int_type overflow (int_type c = traits_type::eof());\n};\n\n}  // std\n\n*/\n\n#include <__config>\n#include <iosfwd>\n#include <ios>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _CharT, class _Traits>\nclass _LIBCPP_TEMPLATE_VIS basic_streambuf\n{\npublic:\n    // types:\n    typedef _CharT                         char_type;\n    typedef _Traits                        traits_type;\n    typedef typename traits_type::int_type int_type;\n    typedef typename traits_type::pos_type pos_type;\n    typedef typename traits_type::off_type off_type;\n\n    virtual ~basic_streambuf();\n\n    // 27.6.2.2.1 locales:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    locale pubimbue(const locale& __loc) {\n        imbue(__loc);\n        locale __r = __loc_;\n        __loc_ = __loc;\n        return __r;\n    }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    locale getloc() const { return __loc_; }\n\n    // 27.6.2.2.2 buffer and positioning:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    basic_streambuf* pubsetbuf(char_type* __s, streamsize __n)\n    { return setbuf(__s, __n); }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    pos_type pubseekoff(off_type __off, ios_base::seekdir __way,\n                        ios_base::openmode __which = ios_base::in | ios_base::out)\n    { return seekoff(__off, __way, __which); }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    pos_type pubseekpos(pos_type __sp,\n                        ios_base::openmode __which = ios_base::in | ios_base::out)\n    { return seekpos(__sp, __which); }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    int pubsync() { return sync(); }\n\n    // Get and put areas:\n    // 27.6.2.2.3 Get area:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    streamsize in_avail() {\n        if (__ninp_ < __einp_)\n            return static_cast<streamsize>(__einp_ - __ninp_);\n        return showmanyc();\n    }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    int_type snextc() {\n        if (sbumpc() == traits_type::eof())\n            return traits_type::eof();\n        return sgetc();\n    }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    int_type sbumpc() {\n        if (__ninp_ == __einp_)\n            return uflow();\n        return traits_type::to_int_type(*__ninp_++);\n    }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    int_type sgetc() {\n        if (__ninp_ == __einp_)\n            return underflow();\n        return traits_type::to_int_type(*__ninp_);\n    }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    streamsize sgetn(char_type* __s, streamsize __n)\n    { return xsgetn(__s, __n); }\n\n    // 27.6.2.2.4 Putback:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    int_type sputbackc(char_type __c) {\n        if (__binp_ == __ninp_ || !traits_type::eq(__c, __ninp_[-1]))\n            return pbackfail(traits_type::to_int_type(__c));\n        return traits_type::to_int_type(*--__ninp_);\n    }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    int_type sungetc() {\n        if (__binp_ == __ninp_)\n          return pbackfail();\n        return traits_type::to_int_type(*--__ninp_);\n    }\n\n    // 27.6.2.2.5 Put area:\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    int_type sputc(char_type __c) {\n        if (__nout_ == __eout_)\n            return overflow(traits_type::to_int_type(__c));\n        *__nout_++ = __c;\n        return traits_type::to_int_type(__c);\n    }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    streamsize sputn(const char_type* __s, streamsize __n)\n    { return xsputn(__s, __n); }\n\nprotected:\n    basic_streambuf();\n    basic_streambuf(const basic_streambuf& __rhs);\n    basic_streambuf& operator=(const basic_streambuf& __rhs);\n    void swap(basic_streambuf& __rhs);\n\n    // 27.6.2.3.2 Get area:\n    _LIBCPP_ALWAYS_INLINE char_type* eback() const {return __binp_;}\n    _LIBCPP_ALWAYS_INLINE char_type* gptr()  const {return __ninp_;}\n    _LIBCPP_ALWAYS_INLINE char_type* egptr() const {return __einp_;}\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    void gbump(int __n) { __ninp_ += __n; }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    void setg(char_type* __gbeg, char_type* __gnext, char_type* __gend) {\n        __binp_ = __gbeg;\n        __ninp_ = __gnext;\n        __einp_ = __gend;\n    }\n\n    // 27.6.2.3.3 Put area:\n    _LIBCPP_ALWAYS_INLINE char_type* pbase() const {return __bout_;}\n    _LIBCPP_ALWAYS_INLINE char_type* pptr()  const {return __nout_;}\n    _LIBCPP_ALWAYS_INLINE char_type* epptr() const {return __eout_;}\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    void pbump(int __n) { __nout_ += __n; }\n\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    void setp(char_type* __pbeg, char_type* __pend) {\n        __bout_ = __nout_ = __pbeg;\n        __eout_ = __pend;\n    }\n\n    // 27.6.2.4 virtual functions:\n    // 27.6.2.4.1 Locales:\n    virtual void imbue(const locale& __loc);\n\n    // 27.6.2.4.2 Buffer management and positioning:\n    virtual basic_streambuf* setbuf(char_type* __s, streamsize __n);\n    virtual pos_type seekoff(off_type __off, ios_base::seekdir __way,\n                             ios_base::openmode __which = ios_base::in | ios_base::out);\n    virtual pos_type seekpos(pos_type __sp,\n                             ios_base::openmode __which = ios_base::in | ios_base::out);\n    virtual int sync();\n\n    // 27.6.2.4.3 Get area:\n    virtual streamsize showmanyc();\n    virtual streamsize xsgetn(char_type* __s, streamsize __n);\n    virtual int_type underflow();\n    virtual int_type uflow();\n\n    // 27.6.2.4.4 Putback:\n    virtual int_type pbackfail(int_type __c = traits_type::eof());\n\n    // 27.6.2.4.5 Put area:\n    virtual streamsize xsputn(const char_type* __s, streamsize __n);\n    virtual int_type overflow(int_type __c = traits_type::eof());\n\nprivate:\n    locale __loc_;\n    char_type* __binp_;\n    char_type* __ninp_;\n    char_type* __einp_;\n    char_type* __bout_;\n    char_type* __nout_;\n    char_type* __eout_;\n};\n\ntemplate <class _CharT, class _Traits>\nbasic_streambuf<_CharT, _Traits>::~basic_streambuf()\n{\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_streambuf<_CharT, _Traits>::basic_streambuf()\n    : __binp_(0),\n      __ninp_(0),\n      __einp_(0),\n      __bout_(0),\n      __nout_(0),\n      __eout_(0)\n{\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_streambuf<_CharT, _Traits>::basic_streambuf(const basic_streambuf& __sb)\n    : __loc_(__sb.__loc_),\n      __binp_(__sb.__binp_),\n      __ninp_(__sb.__ninp_),\n      __einp_(__sb.__einp_),\n      __bout_(__sb.__bout_),\n      __nout_(__sb.__nout_),\n      __eout_(__sb.__eout_)\n{\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_streambuf<_CharT, _Traits>&\nbasic_streambuf<_CharT, _Traits>::operator=(const basic_streambuf& __sb)\n{\n    __loc_ = __sb.__loc_;\n    __binp_ = __sb.__binp_;\n    __ninp_ = __sb.__ninp_;\n    __einp_ = __sb.__einp_;\n    __bout_ = __sb.__bout_;\n    __nout_ = __sb.__nout_;\n    __eout_ = __sb.__eout_;\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_streambuf<_CharT, _Traits>::swap(basic_streambuf& __sb)\n{\n    _VSTD::swap(__loc_, __sb.__loc_);\n    _VSTD::swap(__binp_, __sb.__binp_);\n    _VSTD::swap(__ninp_, __sb.__ninp_);\n    _VSTD::swap(__einp_, __sb.__einp_);\n    _VSTD::swap(__bout_, __sb.__bout_);\n    _VSTD::swap(__nout_, __sb.__nout_);\n    _VSTD::swap(__eout_, __sb.__eout_);\n}\n\ntemplate <class _CharT, class _Traits>\nvoid\nbasic_streambuf<_CharT, _Traits>::imbue(const locale&)\n{\n}\n\ntemplate <class _CharT, class _Traits>\nbasic_streambuf<_CharT, _Traits>*\nbasic_streambuf<_CharT, _Traits>::setbuf(char_type*, streamsize)\n{\n    return this;\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_streambuf<_CharT, _Traits>::pos_type\nbasic_streambuf<_CharT, _Traits>::seekoff(off_type, ios_base::seekdir,\n                                          ios_base::openmode)\n{\n    return pos_type(off_type(-1));\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_streambuf<_CharT, _Traits>::pos_type\nbasic_streambuf<_CharT, _Traits>::seekpos(pos_type, ios_base::openmode)\n{\n    return pos_type(off_type(-1));\n}\n\ntemplate <class _CharT, class _Traits>\nint\nbasic_streambuf<_CharT, _Traits>::sync()\n{\n    return 0;\n}\n\ntemplate <class _CharT, class _Traits>\nstreamsize\nbasic_streambuf<_CharT, _Traits>::showmanyc()\n{\n    return 0;\n}\n\ntemplate <class _CharT, class _Traits>\nstreamsize\nbasic_streambuf<_CharT, _Traits>::xsgetn(char_type* __s, streamsize __n)\n{\n    const int_type __eof = traits_type::eof();\n    int_type __c;\n    streamsize __i = 0;\n    while(__i < __n)\n    {\n        if (__ninp_ < __einp_)\n        {\n            const streamsize __len = _VSTD::min(__einp_ - __ninp_, __n - __i);\n            traits_type::copy(__s, __ninp_, __len);\n            __s +=  __len;\n            __i +=  __len;\n            this->gbump(__len);\n        }\n        else if ((__c = uflow()) != __eof)\n        {\n            *__s = traits_type::to_char_type(__c);\n            ++__s;\n            ++__i;\n        }\n        else\n            break;\n    }\n    return __i;\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_streambuf<_CharT, _Traits>::int_type\nbasic_streambuf<_CharT, _Traits>::underflow()\n{\n    return traits_type::eof();\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_streambuf<_CharT, _Traits>::int_type\nbasic_streambuf<_CharT, _Traits>::uflow()\n{\n    if (underflow() == traits_type::eof())\n        return traits_type::eof();\n    return traits_type::to_int_type(*__ninp_++);\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_streambuf<_CharT, _Traits>::int_type\nbasic_streambuf<_CharT, _Traits>::pbackfail(int_type)\n{\n    return traits_type::eof();\n}\n\ntemplate <class _CharT, class _Traits>\nstreamsize\nbasic_streambuf<_CharT, _Traits>::xsputn(const char_type* __s, streamsize __n)\n{\n    streamsize __i = 0;\n    int_type __eof = traits_type::eof();\n    while( __i < __n)\n    {\n        if (__nout_ >= __eout_)\n        {\n            if (overflow(traits_type::to_int_type(*__s)) == __eof)\n                break;\n            ++__s;\n            ++__i;\n        }\n        else\n        {\n            streamsize __chunk_size = _VSTD::min(__eout_ - __nout_, __n - __i);\n            traits_type::copy(__nout_, __s, __chunk_size);\n            __nout_ += __chunk_size;\n            __s     += __chunk_size;\n            __i     += __chunk_size;\n        }\n    }\n    return __i;\n}\n\ntemplate <class _CharT, class _Traits>\ntypename basic_streambuf<_CharT, _Traits>::int_type\nbasic_streambuf<_CharT, _Traits>::overflow(int_type)\n{\n    return traits_type::eof();\n}\n\n#ifndef _LIBCPP_AVAILABILITY_NO_STREAMS_EXTERN_TEMPLATE\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_streambuf<char>)\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_streambuf<wchar_t>)\n\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_ios<char>)\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_ios<wchar_t>)\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_STEAMBUF\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string",
    "content": "// -*- C++ -*-\n//===--------------------------- string -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_STRING\n#define _LIBCPP_STRING\n\n/*\n    string synopsis\n\nnamespace std\n{\n\ntemplate <class stateT>\nclass fpos\n{\nprivate:\n    stateT st;\npublic:\n    fpos(streamoff = streamoff());\n\n    operator streamoff() const;\n\n    stateT state() const;\n    void state(stateT);\n\n    fpos& operator+=(streamoff);\n    fpos  operator+ (streamoff) const;\n    fpos& operator-=(streamoff);\n    fpos  operator- (streamoff) const;\n};\n\ntemplate <class stateT> streamoff operator-(const fpos<stateT>& x, const fpos<stateT>& y);\n\ntemplate <class stateT> bool operator==(const fpos<stateT>& x, const fpos<stateT>& y);\ntemplate <class stateT> bool operator!=(const fpos<stateT>& x, const fpos<stateT>& y);\n\ntemplate <class charT>\nstruct char_traits\n{\n    typedef charT     char_type;\n    typedef ...       int_type;\n    typedef streamoff off_type;\n    typedef streampos pos_type;\n    typedef mbstate_t state_type;\n\n    static void assign(char_type& c1, const char_type& c2) noexcept;\n    static constexpr bool eq(char_type c1, char_type c2) noexcept;\n    static constexpr bool lt(char_type c1, char_type c2) noexcept;\n\n    static int              compare(const char_type* s1, const char_type* s2, size_t n);\n    static size_t           length(const char_type* s);\n    static const char_type* find(const char_type* s, size_t n, const char_type& a);\n    static char_type*       move(char_type* s1, const char_type* s2, size_t n);\n    static char_type*       copy(char_type* s1, const char_type* s2, size_t n);\n    static char_type*       assign(char_type* s, size_t n, char_type a);\n\n    static constexpr int_type  not_eof(int_type c) noexcept;\n    static constexpr char_type to_char_type(int_type c) noexcept;\n    static constexpr int_type  to_int_type(char_type c) noexcept;\n    static constexpr bool      eq_int_type(int_type c1, int_type c2) noexcept;\n    static constexpr int_type  eof() noexcept;\n};\n\ntemplate <> struct char_traits<char>;\ntemplate <> struct char_traits<wchar_t>;\n\ntemplate<class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >\nclass basic_string\n{\npublic:\n// types:\n    typedef traits traits_type;\n    typedef typename traits_type::char_type value_type;\n    typedef Allocator allocator_type;\n    typedef typename allocator_type::size_type size_type;\n    typedef typename allocator_type::difference_type difference_type;\n    typedef typename allocator_type::reference reference;\n    typedef typename allocator_type::const_reference const_reference;\n    typedef typename allocator_type::pointer pointer;\n    typedef typename allocator_type::const_pointer const_pointer;\n    typedef implementation-defined iterator;\n    typedef implementation-defined const_iterator;\n    typedef std::reverse_iterator<iterator> reverse_iterator;\n    typedef std::reverse_iterator<const_iterator> const_reverse_iterator;\n\n    static const size_type npos = -1;\n\n    basic_string()\n        noexcept(is_nothrow_default_constructible<allocator_type>::value);\n    explicit basic_string(const allocator_type& a);\n    basic_string(const basic_string& str);\n    basic_string(basic_string&& str)\n        noexcept(is_nothrow_move_constructible<allocator_type>::value);\n    basic_string(const basic_string& str, size_type pos,\n                 const allocator_type& a = allocator_type());\n    basic_string(const basic_string& str, size_type pos, size_type n,\n                 const Allocator& a = Allocator());\n    template<class T>\n        basic_string(const T& t, size_type pos, size_type n, const Allocator& a = Allocator()); // C++17\n    explicit basic_string(const basic_string_view<charT, traits> sv, const Allocator& a = Allocator());\n    basic_string(const value_type* s, const allocator_type& a = allocator_type());\n    basic_string(const value_type* s, size_type n, const allocator_type& a = allocator_type());\n    basic_string(size_type n, value_type c, const allocator_type& a = allocator_type());\n    template<class InputIterator>\n        basic_string(InputIterator begin, InputIterator end,\n                     const allocator_type& a = allocator_type());\n    basic_string(initializer_list<value_type>, const Allocator& = Allocator());\n    basic_string(const basic_string&, const Allocator&);\n    basic_string(basic_string&&, const Allocator&);\n\n    ~basic_string();\n\n    operator basic_string_view<charT, traits>() const noexcept;\n\n    basic_string& operator=(const basic_string& str);\n    basic_string& operator=(basic_string_view<charT, traits> sv);\n    basic_string& operator=(basic_string&& str)\n        noexcept(\n             allocator_type::propagate_on_container_move_assignment::value ||\n             allocator_type::is_always_equal::value ); // C++17\n    basic_string& operator=(const value_type* s);\n    basic_string& operator=(value_type c);\n    basic_string& operator=(initializer_list<value_type>);\n\n    iterator       begin() noexcept;\n    const_iterator begin() const noexcept;\n    iterator       end() noexcept;\n    const_iterator end() const noexcept;\n\n    reverse_iterator       rbegin() noexcept;\n    const_reverse_iterator rbegin() const noexcept;\n    reverse_iterator       rend() noexcept;\n    const_reverse_iterator rend() const noexcept;\n\n    const_iterator         cbegin() const noexcept;\n    const_iterator         cend() const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend() const noexcept;\n\n    size_type size() const noexcept;\n    size_type length() const noexcept;\n    size_type max_size() const noexcept;\n    size_type capacity() const noexcept;\n\n    void resize(size_type n, value_type c);\n    void resize(size_type n);\n\n    void reserve(size_type res_arg = 0);\n    void shrink_to_fit();\n    void clear() noexcept;\n    bool empty() const noexcept;\n\n    const_reference operator[](size_type pos) const;\n    reference       operator[](size_type pos);\n\n    const_reference at(size_type n) const;\n    reference       at(size_type n);\n\n    basic_string& operator+=(const basic_string& str);\n    basic_string& operator+=(basic_string_view<charT, traits> sv);\n    basic_string& operator+=(const value_type* s);\n    basic_string& operator+=(value_type c);\n    basic_string& operator+=(initializer_list<value_type>);\n\n    basic_string& append(const basic_string& str);\n    basic_string& append(basic_string_view<charT, traits> sv);\n    basic_string& append(const basic_string& str, size_type pos, size_type n=npos); //C++14\n    template <class T>\n        basic_string& append(const T& t, size_type pos, size_type n=npos); // C++17\n    basic_string& append(const value_type* s, size_type n);\n    basic_string& append(const value_type* s);\n    basic_string& append(size_type n, value_type c);\n    template<class InputIterator>\n        basic_string& append(InputIterator first, InputIterator last);\n    basic_string& append(initializer_list<value_type>);\n\n    void push_back(value_type c);\n    void pop_back();\n    reference       front();\n    const_reference front() const;\n    reference       back();\n    const_reference back() const;\n\n    basic_string& assign(const basic_string& str);\n    basic_string& assign(basic_string_view<charT, traits> sv);\n    basic_string& assign(basic_string&& str);\n    basic_string& assign(const basic_string& str, size_type pos, size_type n=npos); // C++14\n    template <class T>\n        basic_string& assign(const T& t, size_type pos, size_type n=npos); // C++17\n    basic_string& assign(const value_type* s, size_type n);\n    basic_string& assign(const value_type* s);\n    basic_string& assign(size_type n, value_type c);\n    template<class InputIterator>\n        basic_string& assign(InputIterator first, InputIterator last);\n    basic_string& assign(initializer_list<value_type>);\n\n    basic_string& insert(size_type pos1, const basic_string& str);\n    basic_string& insert(size_type pos1, basic_string_view<charT, traits> sv);\n    basic_string& insert(size_type pos1, const basic_string& str,\n                         size_type pos2, size_type n);\n    template <class T>\n        basic_string& insert(size_type pos1, const T& t, size_type pos2, size_type n); // C++17\n    basic_string& insert(size_type pos, const value_type* s, size_type n=npos); //C++14\n    basic_string& insert(size_type pos, const value_type* s);\n    basic_string& insert(size_type pos, size_type n, value_type c);\n    iterator      insert(const_iterator p, value_type c);\n    iterator      insert(const_iterator p, size_type n, value_type c);\n    template<class InputIterator>\n        iterator insert(const_iterator p, InputIterator first, InputIterator last);\n    iterator      insert(const_iterator p, initializer_list<value_type>);\n\n    basic_string& erase(size_type pos = 0, size_type n = npos);\n    iterator      erase(const_iterator position);\n    iterator      erase(const_iterator first, const_iterator last);\n\n    basic_string& replace(size_type pos1, size_type n1, const basic_string& str);\n    basic_string& replace(size_type pos1, size_type n1, basic_string_view<charT, traits> sv);\n    basic_string& replace(size_type pos1, size_type n1, const basic_string& str,\n                          size_type pos2, size_type n2=npos); // C++14\n    template <class T>\n        basic_string& replace(size_type pos1, size_type n1, const T& t,\n                              size_type pos2, size_type n); // C++17\n    basic_string& replace(size_type pos, size_type n1, const value_type* s, size_type n2);\n    basic_string& replace(size_type pos, size_type n1, const value_type* s);\n    basic_string& replace(size_type pos, size_type n1, size_type n2, value_type c);\n    basic_string& replace(const_iterator i1, const_iterator i2, const basic_string& str);\n    basic_string& replace(const_iterator i1, const_iterator i2, basic_string_view<charT, traits> sv);\n    basic_string& replace(const_iterator i1, const_iterator i2, const value_type* s, size_type n);\n    basic_string& replace(const_iterator i1, const_iterator i2, const value_type* s);\n    basic_string& replace(const_iterator i1, const_iterator i2, size_type n, value_type c);\n    template<class InputIterator>\n        basic_string& replace(const_iterator i1, const_iterator i2, InputIterator j1, InputIterator j2);\n    basic_string& replace(const_iterator i1, const_iterator i2, initializer_list<value_type>);\n\n    size_type copy(value_type* s, size_type n, size_type pos = 0) const;\n    basic_string substr(size_type pos = 0, size_type n = npos) const;\n\n    void swap(basic_string& str)\n        noexcept(allocator_traits<allocator_type>::propagate_on_container_swap::value ||\n                 allocator_traits<allocator_type>::is_always_equal::value);  // C++17\n\n    const value_type* c_str() const noexcept;\n    const value_type* data() const noexcept;\n          value_type* data()       noexcept;   // C++17\n\n    allocator_type get_allocator() const noexcept;\n\n    size_type find(const basic_string& str, size_type pos = 0) const noexcept;\n    size_type find(basic_string_view<charT, traits> sv, size_type pos = 0) const noexcept;\n    size_type find(const value_type* s, size_type pos, size_type n) const noexcept;\n    size_type find(const value_type* s, size_type pos = 0) const noexcept;\n    size_type find(value_type c, size_type pos = 0) const noexcept;\n\n    size_type rfind(const basic_string& str, size_type pos = npos) const noexcept;\n    size_type ffind(basic_string_view<charT, traits> sv, size_type pos = 0) const noexcept;\n    size_type rfind(const value_type* s, size_type pos, size_type n) const noexcept;\n    size_type rfind(const value_type* s, size_type pos = npos) const noexcept;\n    size_type rfind(value_type c, size_type pos = npos) const noexcept;\n\n    size_type find_first_of(const basic_string& str, size_type pos = 0) const noexcept;\n    size_type find_first_of(basic_string_view<charT, traits> sv, size_type pos = 0) const noexcept;\n    size_type find_first_of(const value_type* s, size_type pos, size_type n) const noexcept;\n    size_type find_first_of(const value_type* s, size_type pos = 0) const noexcept;\n    size_type find_first_of(value_type c, size_type pos = 0) const noexcept;\n\n    size_type find_last_of(const basic_string& str, size_type pos = npos) const noexcept;\n    size_type find_last_of(basic_string_view<charT, traits> sv, size_type pos = 0) const noexcept;\n    size_type find_last_of(const value_type* s, size_type pos, size_type n) const noexcept;\n    size_type find_last_of(const value_type* s, size_type pos = npos) const noexcept;\n    size_type find_last_of(value_type c, size_type pos = npos) const noexcept;\n\n    size_type find_first_not_of(const basic_string& str, size_type pos = 0) const noexcept;\n    size_type find_first_not_of(basic_string_view<charT, traits> sv, size_type pos = 0) const noexcept;\n    size_type find_first_not_of(const value_type* s, size_type pos, size_type n) const noexcept;\n    size_type find_first_not_of(const value_type* s, size_type pos = 0) const noexcept;\n    size_type find_first_not_of(value_type c, size_type pos = 0) const noexcept;\n\n    size_type find_last_not_of(const basic_string& str, size_type pos = npos) const noexcept;\n    size_type find_last_not_of(basic_string_view<charT, traits> sv, size_type pos = 0) const noexcept;\n    size_type find_last_not_of(const value_type* s, size_type pos, size_type n) const noexcept;\n    size_type find_last_not_of(const value_type* s, size_type pos = npos) const noexcept;\n    size_type find_last_not_of(value_type c, size_type pos = npos) const noexcept;\n\n    int compare(const basic_string& str) const noexcept;\n    int compare(basic_string_view<charT, traits> sv) const noexcept;\n    int compare(size_type pos1, size_type n1, const basic_string& str) const;\n    int compare(size_type pos1, size_type n1, basic_string_view<charT, traits> sv) const;\n    int compare(size_type pos1, size_type n1, const basic_string& str,\n                size_type pos2, size_type n2=npos) const; // C++14\n    template <class T>\n        int compare(size_type pos1, size_type n1, const T& t,\n                    size_type pos2, size_type n2=npos) const; // C++17\n    int compare(const value_type* s) const noexcept;\n    int compare(size_type pos1, size_type n1, const value_type* s) const;\n    int compare(size_type pos1, size_type n1, const value_type* s, size_type n2) const;\n\n    bool __invariants() const;\n};\n\ntemplate<class charT, class traits, class Allocator>\nbasic_string<charT, traits, Allocator>\noperator+(const basic_string<charT, traits, Allocator>& lhs,\n          const basic_string<charT, traits, Allocator>& rhs);\n\ntemplate<class charT, class traits, class Allocator>\nbasic_string<charT, traits, Allocator>\noperator+(const charT* lhs , const basic_string<charT,traits,Allocator>&rhs);\n\ntemplate<class charT, class traits, class Allocator>\nbasic_string<charT, traits, Allocator>\noperator+(charT lhs, const basic_string<charT,traits,Allocator>& rhs);\n\ntemplate<class charT, class traits, class Allocator>\nbasic_string<charT, traits, Allocator>\noperator+(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs);\n\ntemplate<class charT, class traits, class Allocator>\nbasic_string<charT, traits, Allocator>\noperator+(const basic_string<charT, traits, Allocator>& lhs, charT rhs);\n\ntemplate<class charT, class traits, class Allocator>\nbool operator==(const basic_string<charT, traits, Allocator>& lhs,\n                const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator==(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator==(const basic_string<charT,traits,Allocator>& lhs, const charT* rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator!=(const basic_string<charT,traits,Allocator>& lhs,\n                const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator!=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator!=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator< (const basic_string<charT, traits, Allocator>& lhs,\n                const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator< (const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator< (const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator> (const basic_string<charT, traits, Allocator>& lhs,\n                const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator> (const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator> (const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator<=(const basic_string<charT, traits, Allocator>& lhs,\n                const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator<=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator<=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator>=(const basic_string<charT, traits, Allocator>& lhs,\n                const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator>=(const basic_string<charT, traits, Allocator>& lhs, const charT* rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nbool operator>=(const charT* lhs, const basic_string<charT, traits, Allocator>& rhs) noexcept;\n\ntemplate<class charT, class traits, class Allocator>\nvoid swap(basic_string<charT, traits, Allocator>& lhs,\n          basic_string<charT, traits, Allocator>& rhs)\n            noexcept(noexcept(lhs.swap(rhs)));\n\ntemplate<class charT, class traits, class Allocator>\nbasic_istream<charT, traits>&\noperator>>(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str);\n\ntemplate<class charT, class traits, class Allocator>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& os, const basic_string<charT, traits, Allocator>& str);\n\ntemplate<class charT, class traits, class Allocator>\nbasic_istream<charT, traits>&\ngetline(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str,\n        charT delim);\n\ntemplate<class charT, class traits, class Allocator>\nbasic_istream<charT, traits>&\ngetline(basic_istream<charT, traits>& is, basic_string<charT, traits, Allocator>& str);\n\ntypedef basic_string<char>    string;\ntypedef basic_string<wchar_t> wstring;\ntypedef basic_string<char16_t> u16string;\ntypedef basic_string<char32_t> u32string;\n\nint                stoi  (const string& str, size_t* idx = 0, int base = 10);\nlong               stol  (const string& str, size_t* idx = 0, int base = 10);\nunsigned long      stoul (const string& str, size_t* idx = 0, int base = 10);\nlong long          stoll (const string& str, size_t* idx = 0, int base = 10);\nunsigned long long stoull(const string& str, size_t* idx = 0, int base = 10);\n\nfloat       stof (const string& str, size_t* idx = 0);\ndouble      stod (const string& str, size_t* idx = 0);\nlong double stold(const string& str, size_t* idx = 0);\n\nstring to_string(int val);\nstring to_string(unsigned val);\nstring to_string(long val);\nstring to_string(unsigned long val);\nstring to_string(long long val);\nstring to_string(unsigned long long val);\nstring to_string(float val);\nstring to_string(double val);\nstring to_string(long double val);\n\nint                stoi  (const wstring& str, size_t* idx = 0, int base = 10);\nlong               stol  (const wstring& str, size_t* idx = 0, int base = 10);\nunsigned long      stoul (const wstring& str, size_t* idx = 0, int base = 10);\nlong long          stoll (const wstring& str, size_t* idx = 0, int base = 10);\nunsigned long long stoull(const wstring& str, size_t* idx = 0, int base = 10);\n\nfloat       stof (const wstring& str, size_t* idx = 0);\ndouble      stod (const wstring& str, size_t* idx = 0);\nlong double stold(const wstring& str, size_t* idx = 0);\n\nwstring to_wstring(int val);\nwstring to_wstring(unsigned val);\nwstring to_wstring(long val);\nwstring to_wstring(unsigned long val);\nwstring to_wstring(long long val);\nwstring to_wstring(unsigned long long val);\nwstring to_wstring(float val);\nwstring to_wstring(double val);\nwstring to_wstring(long double val);\n\ntemplate <> struct hash<string>;\ntemplate <> struct hash<u16string>;\ntemplate <> struct hash<u32string>;\ntemplate <> struct hash<wstring>;\n\nbasic_string<char>     operator \"\" s( const char *str,     size_t len ); // C++14\nbasic_string<wchar_t>  operator \"\" s( const wchar_t *str,  size_t len ); // C++14\nbasic_string<char16_t> operator \"\" s( const char16_t *str, size_t len ); // C++14\nbasic_string<char32_t> operator \"\" s( const char32_t *str, size_t len ); // C++14\n\n}  // std\n\n*/\n\n#include <__config>\n#include <string_view>\n#include <iosfwd>\n#include <cstring>\n#include <cstdio>  // For EOF.\n#include <cwchar>\n#include <algorithm>\n#include <iterator>\n#include <utility>\n#include <memory>\n#include <stdexcept>\n#include <type_traits>\n#include <initializer_list>\n#include <__functional_base>\n#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS\n#include <cstdint>\n#endif\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// fpos\n\ntemplate <class _StateT>\nclass _LIBCPP_TEMPLATE_VIS fpos\n{\nprivate:\n    _StateT __st_;\n    streamoff __off_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY fpos(streamoff __off = streamoff()) : __st_(), __off_(__off) {}\n\n    _LIBCPP_INLINE_VISIBILITY operator streamoff() const {return __off_;}\n\n    _LIBCPP_INLINE_VISIBILITY _StateT state() const {return __st_;}\n    _LIBCPP_INLINE_VISIBILITY void state(_StateT __st) {__st_ = __st;}\n\n    _LIBCPP_INLINE_VISIBILITY fpos& operator+=(streamoff __off) {__off_ += __off; return *this;}\n    _LIBCPP_INLINE_VISIBILITY fpos  operator+ (streamoff __off) const {fpos __t(*this); __t += __off; return __t;}\n    _LIBCPP_INLINE_VISIBILITY fpos& operator-=(streamoff __off) {__off_ -= __off; return *this;}\n    _LIBCPP_INLINE_VISIBILITY fpos  operator- (streamoff __off) const {fpos __t(*this); __t -= __off; return __t;}\n};\n\ntemplate <class _StateT>\ninline _LIBCPP_INLINE_VISIBILITY\nstreamoff operator-(const fpos<_StateT>& __x, const fpos<_StateT>& __y)\n    {return streamoff(__x) - streamoff(__y);}\n\ntemplate <class _StateT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator==(const fpos<_StateT>& __x, const fpos<_StateT>& __y)\n    {return streamoff(__x) == streamoff(__y);}\n\ntemplate <class _StateT>\ninline _LIBCPP_INLINE_VISIBILITY\nbool operator!=(const fpos<_StateT>& __x, const fpos<_StateT>& __y)\n    {return streamoff(__x) != streamoff(__y);}\n\n// basic_string\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const basic_string<_CharT, _Traits, _Allocator>& __x,\n          const basic_string<_CharT, _Traits, _Allocator>& __y);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const _CharT* __x, const basic_string<_CharT,_Traits,_Allocator>& __y);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(_CharT __x, const basic_string<_CharT,_Traits,_Allocator>& __y);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const basic_string<_CharT, _Traits, _Allocator>& __x, const _CharT* __y);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const basic_string<_CharT, _Traits, _Allocator>& __x, _CharT __y);\n\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS string operator+<char, char_traits<char>, allocator<char> >(char const*, string const&))\n\ntemplate <bool>\nclass _LIBCPP_TEMPLATE_VIS __basic_string_common\n{\nprotected:\n    _LIBCPP_NORETURN void __throw_length_error() const;\n    _LIBCPP_NORETURN void __throw_out_of_range() const;\n};\n\ntemplate <bool __b>\nvoid\n__basic_string_common<__b>::__throw_length_error() const\n{\n    _VSTD::__throw_length_error(\"basic_string\");\n}\n\ntemplate <bool __b>\nvoid\n__basic_string_common<__b>::__throw_out_of_range() const\n{\n    _VSTD::__throw_out_of_range(\"basic_string\");\n}\n\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __basic_string_common<true>)\n\n#ifdef _LIBCPP_NO_EXCEPTIONS\ntemplate <class _Iter>\nstruct __libcpp_string_gets_noexcept_iterator_impl : public true_type {};\n#elif defined(_LIBCPP_HAS_NO_NOEXCEPT)\ntemplate <class _Iter>\nstruct __libcpp_string_gets_noexcept_iterator_impl : public false_type {};\n#else\ntemplate <class _Iter, bool = __is_forward_iterator<_Iter>::value>\nstruct __libcpp_string_gets_noexcept_iterator_impl : public _LIBCPP_BOOL_CONSTANT((\n    noexcept(++(declval<_Iter&>())) && \n    is_nothrow_assignable<_Iter&, _Iter>::value && \n    noexcept(declval<_Iter>() == declval<_Iter>()) && \n    noexcept(*declval<_Iter>())\n)) {};\n\ntemplate <class _Iter> \nstruct __libcpp_string_gets_noexcept_iterator_impl<_Iter, false> : public false_type {};\n#endif\n\n\ntemplate <class _Iter>\nstruct __libcpp_string_gets_noexcept_iterator\n    : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value || __libcpp_string_gets_noexcept_iterator_impl<_Iter>::value) {};\n\ntemplate <class _CharT, class _Traits, class _Tp>\nstruct __can_be_converted_to_string_view : public _LIBCPP_BOOL_CONSTANT(\n\t( is_convertible<const _Tp&, basic_string_view<_CharT, _Traits> >::value &&\n     !is_convertible<const _Tp&, const _CharT*>::value)) {};\n\n#ifdef _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n\ntemplate <class _CharT, size_t = sizeof(_CharT)>\nstruct __padding\n{\n    unsigned char __xx[sizeof(_CharT)-1];\n};\n\ntemplate <class _CharT>\nstruct __padding<_CharT, 1>\n{\n};\n\n#endif  // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nclass _LIBCPP_TEMPLATE_VIS basic_string\n    : private __basic_string_common<true>\n{\npublic:\n    typedef basic_string                                 __self;\n    typedef basic_string_view<_CharT, _Traits>           __self_view;\n    typedef _Traits                                      traits_type;\n    typedef _CharT                                       value_type;\n    typedef _Allocator                                   allocator_type;\n    typedef allocator_traits<allocator_type>             __alloc_traits;\n    typedef typename __alloc_traits::size_type           size_type;\n    typedef typename __alloc_traits::difference_type     difference_type;\n    typedef value_type&                                  reference;\n    typedef const value_type&                            const_reference;\n    typedef typename __alloc_traits::pointer             pointer;\n    typedef typename __alloc_traits::const_pointer       const_pointer;\n\n    static_assert(is_pod<value_type>::value, \"Character type of basic_string must be a POD\");\n    static_assert((is_same<_CharT, typename traits_type::char_type>::value),\n                  \"traits_type::char_type must be the same type as CharT\");\n    static_assert((is_same<typename allocator_type::value_type, value_type>::value),\n                  \"Allocator::value_type must be same type as value_type\");\n#if defined(_LIBCPP_RAW_ITERATORS)\n    typedef pointer                                      iterator;\n    typedef const_pointer                                const_iterator;\n#else  // defined(_LIBCPP_RAW_ITERATORS)\n    typedef __wrap_iter<pointer>                         iterator;\n    typedef __wrap_iter<const_pointer>                   const_iterator;\n#endif  // defined(_LIBCPP_RAW_ITERATORS)\n    typedef _VSTD::reverse_iterator<iterator>             reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator>       const_reverse_iterator;\n\nprivate:\n\n#ifdef _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n\n    struct __long\n    {\n        pointer   __data_;\n        size_type __size_;\n        size_type __cap_;\n    };\n\n#if _LIBCPP_BIG_ENDIAN\n    static const size_type __short_mask = 0x01;\n    static const size_type __long_mask  = 0x1ul;\n#else  // _LIBCPP_BIG_ENDIAN\n    static const size_type __short_mask = 0x80;\n    static const size_type __long_mask  = ~(size_type(~0) >> 1);\n#endif  // _LIBCPP_BIG_ENDIAN\n\n    enum {__min_cap = (sizeof(__long) - 1)/sizeof(value_type) > 2 ?\n                      (sizeof(__long) - 1)/sizeof(value_type) : 2};\n\n    struct __short\n    {\n        value_type __data_[__min_cap];\n        struct\n            : __padding<value_type>\n        {\n            unsigned char __size_;\n        };\n    };\n\n#else\n\n    struct __long\n    {\n        size_type __cap_;\n        size_type __size_;\n        pointer   __data_;\n    };\n\n#if _LIBCPP_BIG_ENDIAN\n    static const size_type __short_mask = 0x80;\n    static const size_type __long_mask  = ~(size_type(~0) >> 1);\n#else  // _LIBCPP_BIG_ENDIAN\n    static const size_type __short_mask = 0x01;\n    static const size_type __long_mask  = 0x1ul;\n#endif  // _LIBCPP_BIG_ENDIAN\n\n    enum {__min_cap = (sizeof(__long) - 1)/sizeof(value_type) > 2 ?\n                      (sizeof(__long) - 1)/sizeof(value_type) : 2};\n\n    struct __short\n    {\n        union\n        {\n            unsigned char __size_;\n            value_type __lx;\n        };\n        value_type __data_[__min_cap];\n    };\n\n#endif  // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n\n    union __ulx{__long __lx; __short __lxx;};\n\n    enum {__n_words = sizeof(__ulx) / sizeof(size_type)};\n\n    struct __raw\n    {\n        size_type __words[__n_words];\n    };\n\n    struct __rep\n    {\n        union\n        {\n            __long  __l;\n            __short __s;\n            __raw   __r;\n        };\n    };\n\n    __compressed_pair<__rep, allocator_type> __r_;\n\npublic:\n    static const size_type npos = -1;\n\n    _LIBCPP_INLINE_VISIBILITY basic_string()\n        _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);\n\n    _LIBCPP_INLINE_VISIBILITY explicit basic_string(const allocator_type& __a)\n#if _LIBCPP_STD_VER <= 14\n        _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value);\n#else\n        _NOEXCEPT;\n#endif\n\n    basic_string(const basic_string& __str);\n    basic_string(const basic_string& __str, const allocator_type& __a);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(basic_string&& __str)\n#if _LIBCPP_STD_VER <= 14\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);\n#else\n        _NOEXCEPT;\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(basic_string&& __str, const allocator_type& __a);\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY basic_string(const _CharT* __s);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(const _CharT* __s, const _Allocator& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(const _CharT* __s, size_type __n);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(const _CharT* __s, size_type __n, const _Allocator& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(size_type __n, _CharT __c);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(size_type __n, _CharT __c, const _Allocator& __a);\n    basic_string(const basic_string& __str, size_type __pos, size_type __n,\n                 const _Allocator& __a = _Allocator());\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(const basic_string& __str, size_type __pos,\n                 const _Allocator& __a = _Allocator());\n    template<class _Tp>\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        basic_string(const _Tp& __t, size_type __pos, size_type __n,\n                     const allocator_type& __a = allocator_type(),\n                     typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type* = 0);\n    _LIBCPP_INLINE_VISIBILITY explicit\n    basic_string(__self_view __sv);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(__self_view __sv, const _Allocator& __a);\n    template<class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_string(_InputIterator __first, _InputIterator __last);\n    template<class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        basic_string(_InputIterator __first, _InputIterator __last, const allocator_type& __a);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(initializer_list<_CharT> __il);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string(initializer_list<_CharT> __il, const _Allocator& __a);\n#endif  // _LIBCPP_CXX03_LANG\n\n    inline ~basic_string();\n\n    _LIBCPP_INLINE_VISIBILITY\n    operator __self_view() const _NOEXCEPT { return __self_view(data(), size()); }\n\n    basic_string& operator=(const basic_string& __str);\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class = void>\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& operator=(__self_view __sv)  {return assign(__sv);}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& operator=(basic_string&& __str)\n        _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));\n     _LIBCPP_INLINE_VISIBILITY\n    basic_string& operator=(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}\n#endif\n    _LIBCPP_INLINE_VISIBILITY basic_string& operator=(const value_type* __s) {return assign(__s);}\n    basic_string& operator=(value_type __c);\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    iterator begin() _NOEXCEPT\n        {return iterator(this, __get_pointer());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT\n        {return const_iterator(this, __get_pointer());}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator end() _NOEXCEPT\n        {return iterator(this, __get_pointer() + size());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const _NOEXCEPT\n        {return const_iterator(this, __get_pointer() + size());}\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    iterator begin() _NOEXCEPT\n        {return iterator(__get_pointer());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT\n        {return const_iterator(__get_pointer());}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator end() _NOEXCEPT\n        {return iterator(__get_pointer() + size());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end() const _NOEXCEPT\n        {return const_iterator(__get_pointer() + size());}\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    reverse_iterator rbegin() _NOEXCEPT\n        {return reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin() const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    reverse_iterator rend() _NOEXCEPT\n        {return reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend() const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const _NOEXCEPT\n        {return begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend() const _NOEXCEPT\n        {return end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT\n        {return rbegin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend() const _NOEXCEPT\n        {return rend();}\n\n    _LIBCPP_INLINE_VISIBILITY size_type size() const _NOEXCEPT\n        {return __is_long() ? __get_long_size() : __get_short_size();}\n    _LIBCPP_INLINE_VISIBILITY size_type length() const _NOEXCEPT {return size();}\n    _LIBCPP_INLINE_VISIBILITY size_type max_size() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY size_type capacity() const _NOEXCEPT\n        {return (__is_long() ? __get_long_cap()\n                             : static_cast<size_type>(__min_cap)) - 1;}\n\n    void resize(size_type __n, value_type __c);\n    _LIBCPP_INLINE_VISIBILITY void resize(size_type __n) {resize(__n, value_type());}\n\n    void reserve(size_type __res_arg = 0);\n    _LIBCPP_INLINE_VISIBILITY\n    void shrink_to_fit() _NOEXCEPT {reserve();}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY bool empty() const _NOEXCEPT {return size() == 0;}\n\n    _LIBCPP_INLINE_VISIBILITY const_reference operator[](size_type __pos) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY reference       operator[](size_type __pos)       _NOEXCEPT;\n\n    const_reference at(size_type __n) const;\n    reference       at(size_type __n);\n\n    _LIBCPP_INLINE_VISIBILITY basic_string& operator+=(const basic_string& __str) {return append(__str);}\n    _LIBCPP_INLINE_VISIBILITY basic_string& operator+=(__self_view __sv)          {return append(__sv);}\n    _LIBCPP_INLINE_VISIBILITY basic_string& operator+=(const value_type* __s)     {return append(__s);}\n    _LIBCPP_INLINE_VISIBILITY basic_string& operator+=(value_type __c)            {push_back(__c); return *this;}\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY basic_string& operator+=(initializer_list<value_type> __il) {return append(__il);}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& append(const basic_string& __str);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& append(__self_view __sv) { return append(__sv.data(), __sv.size()); }\n    basic_string& append(const basic_string& __str, size_type __pos, size_type __n=npos);\n    template <class _Tp>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n            basic_string&\n        >::type\n                  append(const _Tp& __t, size_type __pos, size_type __n=npos);\n    basic_string& append(const value_type* __s, size_type __n);\n    basic_string& append(const value_type* __s);\n    basic_string& append(size_type __n, value_type __c);\n    template <class _ForwardIterator>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    basic_string& __append_forward_unsafe(_ForwardIterator, _ForwardIterator);\n    template<class _InputIterator>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __is_exactly_input_iterator<_InputIterator>::value\n                || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value,\n            basic_string&\n        >::type\n    _LIBCPP_INLINE_VISIBILITY\n    append(_InputIterator __first, _InputIterator __last) {\n      const basic_string __temp (__first, __last, __alloc());\n      append(__temp.data(), __temp.size());\n      return *this;\n    }\n    template<class _ForwardIterator>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value\n                && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value,\n            basic_string&\n        >::type\n    _LIBCPP_INLINE_VISIBILITY\n    append(_ForwardIterator __first, _ForwardIterator __last) {\n      return __append_forward_unsafe(__first, __last);\n    }\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& append(initializer_list<value_type> __il) {return append(__il.begin(), __il.size());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    void push_back(value_type __c);\n    _LIBCPP_INLINE_VISIBILITY\n    void pop_back();\n    _LIBCPP_INLINE_VISIBILITY reference       front();\n    _LIBCPP_INLINE_VISIBILITY const_reference front() const;\n    _LIBCPP_INLINE_VISIBILITY reference       back();\n    _LIBCPP_INLINE_VISIBILITY const_reference back() const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& assign(__self_view __sv) { return assign(__sv.data(), __sv.size()); }\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& assign(const basic_string& __str) { return *this = __str; }\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& assign(basic_string&& __str)\n        _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value))\n        {*this = _VSTD::move(__str); return *this;}\n#endif\n    basic_string& assign(const basic_string& __str, size_type __pos, size_type __n=npos);\n    template <class _Tp>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n            basic_string&\n        >::type\n                  assign(const _Tp & __t, size_type __pos, size_type __n=npos);\n    basic_string& assign(const value_type* __s, size_type __n);\n    basic_string& assign(const value_type* __s);\n    basic_string& assign(size_type __n, value_type __c);\n    template<class _InputIterator>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n           __is_exactly_input_iterator<_InputIterator>::value\n                || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value,\n            basic_string&\n        >::type\n        assign(_InputIterator __first, _InputIterator __last);\n    template<class _ForwardIterator>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value\n                 && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value,\n            basic_string&\n        >::type\n        assign(_ForwardIterator __first, _ForwardIterator __last);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& assign(initializer_list<value_type> __il) {return assign(__il.begin(), __il.size());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& insert(size_type __pos1, const basic_string& __str);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& insert(size_type __pos1, __self_view __sv) { return insert(__pos1, __sv.data(), __sv.size()); }\n    template <class _Tp>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n            basic_string&\n        >::type\n                  insert(size_type __pos1, const _Tp& __t, size_type __pos2, size_type __n=npos);\n    basic_string& insert(size_type __pos1, const basic_string& __str, size_type __pos2, size_type __n=npos);\n    basic_string& insert(size_type __pos, const value_type* __s, size_type __n);\n    basic_string& insert(size_type __pos, const value_type* __s);\n    basic_string& insert(size_type __pos, size_type __n, value_type __c);\n    iterator      insert(const_iterator __pos, value_type __c);\n    _LIBCPP_INLINE_VISIBILITY\n    iterator      insert(const_iterator __pos, size_type __n, value_type __c);\n    template<class _InputIterator>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n           __is_exactly_input_iterator<_InputIterator>::value\n                || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value,\n            iterator\n        >::type\n        insert(const_iterator __pos, _InputIterator __first, _InputIterator __last);\n    template<class _ForwardIterator>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value\n                 && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value,\n            iterator\n        >::type\n        insert(const_iterator __pos, _ForwardIterator __first, _ForwardIterator __last);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __pos, initializer_list<value_type> __il)\n                    {return insert(__pos, __il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    basic_string& erase(size_type __pos = 0, size_type __n = npos);\n    _LIBCPP_INLINE_VISIBILITY\n    iterator      erase(const_iterator __pos);\n    _LIBCPP_INLINE_VISIBILITY\n    iterator      erase(const_iterator __first, const_iterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& replace(size_type __pos1, size_type __n1, __self_view __sv) { return replace(__pos1, __n1, __sv.data(), __sv.size()); }\n    basic_string& replace(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos);\n    template <class _Tp>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n            basic_string&\n        >::type\n                  replace(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2=npos);\n    basic_string& replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2);\n    basic_string& replace(size_type __pos, size_type __n1, const value_type* __s);\n    basic_string& replace(size_type __pos, size_type __n1, size_type __n2, value_type __c);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& replace(const_iterator __i1, const_iterator __i2, const basic_string& __str);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& replace(const_iterator __i1, const_iterator __i2, __self_view __sv) { return replace(__i1 - begin(), __i2 - __i1, __sv); }\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& replace(const_iterator __i1, const_iterator __i2, const value_type* __s);\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c);\n    template<class _InputIterator>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    typename enable_if\n        <\n            __is_input_iterator<_InputIterator>::value,\n            basic_string&\n        >::type\n        replace(const_iterator __i1, const_iterator __i2, _InputIterator __j1, _InputIterator __j2);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string& replace(const_iterator __i1, const_iterator __i2, initializer_list<value_type> __il)\n        {return replace(__i1, __i2, __il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    size_type copy(value_type* __s, size_type __n, size_type __pos = 0) const;\n    _LIBCPP_INLINE_VISIBILITY\n    basic_string substr(size_type __pos = 0, size_type __n = npos) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(basic_string& __str)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT_DEBUG;\n#else\n        _NOEXCEPT_DEBUG_(!__alloc_traits::propagate_on_container_swap::value ||\n                    __is_nothrow_swappable<allocator_type>::value);\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    const value_type* c_str() const _NOEXCEPT {return data();}\n    _LIBCPP_INLINE_VISIBILITY\n    const value_type* data() const _NOEXCEPT  {return _VSTD::__to_raw_pointer(__get_pointer());}\n#if _LIBCPP_STD_VER > 14\n    _LIBCPP_INLINE_VISIBILITY\n    value_type* data()             _NOEXCEPT  {return _VSTD::__to_raw_pointer(__get_pointer());}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT {return __alloc();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;\n    size_type find(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;\n    size_type find(value_type __c, size_type __pos = 0) const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type rfind(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type rfind(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;\n    size_type rfind(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type rfind(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;\n    size_type rfind(value_type __c, size_type __pos = npos) const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_first_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_first_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;\n    size_type find_first_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_first_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_first_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_last_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_last_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;\n    size_type find_last_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_last_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_last_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_first_not_of(const basic_string& __str, size_type __pos = 0) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_first_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;\n    size_type find_first_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_first_not_of(const value_type* __s, size_type __pos = 0) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_first_not_of(value_type __c, size_type __pos = 0) const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_last_not_of(const basic_string& __str, size_type __pos = npos) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_last_not_of(__self_view __sv, size_type __pos = 0) const _NOEXCEPT;\n    size_type find_last_not_of(const value_type* __s, size_type __pos, size_type __n) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_last_not_of(const value_type* __s, size_type __pos = npos) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type find_last_not_of(value_type __c, size_type __pos = npos) const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    int compare(const basic_string& __str) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    int compare(__self_view __sv) const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    int compare(size_type __pos1, size_type __n1, __self_view __sv) const;\n    _LIBCPP_INLINE_VISIBILITY\n    int compare(size_type __pos1, size_type __n1, const basic_string& __str) const;\n    int compare(size_type __pos1, size_type __n1, const basic_string& __str, size_type __pos2, size_type __n2=npos) const;\n    template <class _Tp>\n    inline _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n            int\n        >::type\n        compare(size_type __pos1, size_type __n1, const _Tp& __t, size_type __pos2, size_type __n2=npos) const;\n    int compare(const value_type* __s) const _NOEXCEPT;\n    int compare(size_type __pos1, size_type __n1, const value_type* __s) const;\n    int compare(size_type __pos1, size_type __n1, const value_type* __s, size_type __n2) const;\n\n    _LIBCPP_INLINE_VISIBILITY bool __invariants() const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool __is_long() const _NOEXCEPT\n        {return bool(__r_.first().__s.__size_ & __short_mask);}\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    bool __dereferenceable(const const_iterator* __i) const;\n    bool __decrementable(const const_iterator* __i) const;\n    bool __addable(const const_iterator* __i, ptrdiff_t __n) const;\n    bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const;\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type& __alloc() _NOEXCEPT\n        {return __r_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const allocator_type& __alloc() const _NOEXCEPT\n        {return __r_.second();}\n\n#ifdef _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_short_size(size_type __s) _NOEXCEPT\n#   if _LIBCPP_BIG_ENDIAN\n        {__r_.first().__s.__size_ = (unsigned char)(__s << 1);}\n#   else\n        {__r_.first().__s.__size_ = (unsigned char)(__s);}\n#   endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type __get_short_size() const _NOEXCEPT\n#   if _LIBCPP_BIG_ENDIAN\n        {return __r_.first().__s.__size_ >> 1;}\n#   else\n        {return __r_.first().__s.__size_;}\n#   endif\n\n#else  // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_short_size(size_type __s) _NOEXCEPT\n#   if _LIBCPP_BIG_ENDIAN\n        {__r_.first().__s.__size_ = (unsigned char)(__s);}\n#   else\n        {__r_.first().__s.__size_ = (unsigned char)(__s << 1);}\n#   endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type __get_short_size() const _NOEXCEPT\n#   if _LIBCPP_BIG_ENDIAN\n        {return __r_.first().__s.__size_;}\n#   else\n        {return __r_.first().__s.__size_ >> 1;}\n#   endif\n\n#endif  // _LIBCPP_ABI_ALTERNATE_STRING_LAYOUT\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_long_size(size_type __s) _NOEXCEPT\n        {__r_.first().__l.__size_ = __s;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type __get_long_size() const _NOEXCEPT\n        {return __r_.first().__l.__size_;}\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_size(size_type __s) _NOEXCEPT\n        {if (__is_long()) __set_long_size(__s); else __set_short_size(__s);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_long_cap(size_type __s) _NOEXCEPT\n        {__r_.first().__l.__cap_  = __long_mask | __s;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type __get_long_cap() const _NOEXCEPT\n        {return __r_.first().__l.__cap_ & size_type(~__long_mask);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __set_long_pointer(pointer __p) _NOEXCEPT\n        {__r_.first().__l.__data_ = __p;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer __get_long_pointer() _NOEXCEPT\n        {return __r_.first().__l.__data_;}\n    _LIBCPP_INLINE_VISIBILITY\n    const_pointer __get_long_pointer() const _NOEXCEPT\n        {return __r_.first().__l.__data_;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer __get_short_pointer() _NOEXCEPT\n        {return pointer_traits<pointer>::pointer_to(__r_.first().__s.__data_[0]);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_pointer __get_short_pointer() const _NOEXCEPT\n        {return pointer_traits<const_pointer>::pointer_to(__r_.first().__s.__data_[0]);}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer __get_pointer() _NOEXCEPT\n        {return __is_long() ? __get_long_pointer() : __get_short_pointer();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_pointer __get_pointer() const _NOEXCEPT\n        {return __is_long() ? __get_long_pointer() : __get_short_pointer();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __zero() _NOEXCEPT\n        {\n            size_type (&__a)[__n_words] = __r_.first().__r.__words;\n            for (unsigned __i = 0; __i < __n_words; ++__i)\n                __a[__i] = 0;\n        }\n\n    template <size_type __a> static\n        _LIBCPP_INLINE_VISIBILITY\n        size_type __align_it(size_type __s) _NOEXCEPT\n            {return (__s + (__a-1)) & ~(__a-1);}\n    enum {__alignment = 16};\n    static _LIBCPP_INLINE_VISIBILITY\n    size_type __recommend(size_type __s) _NOEXCEPT\n        {return (__s < __min_cap ? static_cast<size_type>(__min_cap) :\n                 __align_it<sizeof(value_type) < __alignment ?\n                            __alignment/sizeof(value_type) : 1 > (__s+1)) - 1;}\n\n    inline\n    void __init(const value_type* __s, size_type __sz, size_type __reserve);\n    inline\n    void __init(const value_type* __s, size_type __sz);\n    inline\n    void __init(size_type __n, value_type __c);\n\n    template <class _InputIterator>\n    inline\n    typename enable_if\n    <\n        __is_exactly_input_iterator<_InputIterator>::value,\n        void\n    >::type\n    __init(_InputIterator __first, _InputIterator __last);\n\n    template <class _ForwardIterator>\n    inline\n    typename enable_if\n    <\n        __is_forward_iterator<_ForwardIterator>::value,\n        void\n    >::type\n    __init(_ForwardIterator __first, _ForwardIterator __last);\n\n    void __grow_by(size_type __old_cap, size_type __delta_cap, size_type __old_sz,\n                   size_type __n_copy,  size_type __n_del,     size_type __n_add = 0);\n    void __grow_by_and_replace(size_type __old_cap, size_type __delta_cap, size_type __old_sz,\n                               size_type __n_copy,  size_type __n_del,\n                               size_type __n_add, const value_type* __p_new_stuff);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __erase_to_end(size_type __pos);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const basic_string& __str)\n        {__copy_assign_alloc(__str, integral_constant<bool,\n                      __alloc_traits::propagate_on_container_copy_assignment::value>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const basic_string& __str, true_type)\n        {\n            if (__alloc() == __str.__alloc())\n                __alloc() = __str.__alloc();\n            else\n            {\n                if (!__str.__is_long())\n                {\n                    clear();\n                    shrink_to_fit();\n                    __alloc() = __str.__alloc();\n                }\n                else\n                {\n                    allocator_type __a = __str.__alloc();\n                    pointer __p = __alloc_traits::allocate(__a, __str.__get_long_cap());\n                    clear();\n                    shrink_to_fit();\n                    __alloc() = _VSTD::move(__a);\n                    __set_long_pointer(__p);\n                    __set_long_cap(__str.__get_long_cap());\n                    __set_long_size(__str.size());\n                }\n            }\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const basic_string&, false_type) _NOEXCEPT\n        {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign(basic_string& __str, false_type)\n        _NOEXCEPT_(__alloc_traits::is_always_equal::value);\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign(basic_string& __str, true_type)\n#if _LIBCPP_STD_VER > 14\n        _NOEXCEPT;\n#else\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);\n#endif\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    void\n    __move_assign_alloc(basic_string& __str)\n        _NOEXCEPT_(\n            !__alloc_traits::propagate_on_container_move_assignment::value ||\n            is_nothrow_move_assignable<allocator_type>::value)\n    {__move_assign_alloc(__str, integral_constant<bool,\n                      __alloc_traits::propagate_on_container_move_assignment::value>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(basic_string& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n        {\n            __alloc() = _VSTD::move(__c.__alloc());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(basic_string&, false_type)\n        _NOEXCEPT\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY void __invalidate_all_iterators();\n    _LIBCPP_INLINE_VISIBILITY void __invalidate_iterators_past(size_type);\n\n    friend basic_string operator+<>(const basic_string&, const basic_string&);\n    friend basic_string operator+<>(const value_type*, const basic_string&);\n    friend basic_string operator+<>(value_type, const basic_string&);\n    friend basic_string operator+<>(const basic_string&, const value_type*);\n    friend basic_string operator+<>(const basic_string&, value_type);\n};\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__invalidate_all_iterators()\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__invalidate_all(this);\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__invalidate_iterators_past(size_type\n#if _LIBCPP_DEBUG_LEVEL >= 2\n                                                                        __pos\n#endif\n                                                                      )\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __c_node* __c = __get_db()->__find_c_and_lock(this);\n    if (__c)\n    {\n        const_pointer __new_last = __get_pointer() + __pos;\n        for (__i_node** __p = __c->end_; __p != __c->beg_; )\n        {\n            --__p;\n            const_iterator* __i = static_cast<const_iterator*>((*__p)->__i_);\n            if (__i->base() > __new_last)\n            {\n                (*__p)->__c_ = nullptr;\n                if (--__c->end_ != __p)\n                    memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*));\n            }\n        }\n        __get_db()->unlock();\n    }\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string()\n    _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __zero();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(const allocator_type& __a)\n#if _LIBCPP_STD_VER <= 14\n        _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)\n#else\n        _NOEXCEPT\n#endif\n: __r_(__second_tag(), __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __zero();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid basic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s,\n                                                       size_type __sz,\n                                                       size_type __reserve)\n{\n    if (__reserve > max_size())\n        this->__throw_length_error();\n    pointer __p;\n    if (__reserve < __min_cap)\n    {\n        __set_short_size(__sz);\n        __p = __get_short_pointer();\n    }\n    else\n    {\n        size_type __cap = __recommend(__reserve);\n        __p = __alloc_traits::allocate(__alloc(), __cap+1);\n        __set_long_pointer(__p);\n        __set_long_cap(__cap+1);\n        __set_long_size(__sz);\n    }\n    traits_type::copy(_VSTD::__to_raw_pointer(__p), __s, __sz);\n    traits_type::assign(__p[__sz], value_type());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__init(const value_type* __s, size_type __sz)\n{\n    if (__sz > max_size())\n        this->__throw_length_error();\n    pointer __p;\n    if (__sz < __min_cap)\n    {\n        __set_short_size(__sz);\n        __p = __get_short_pointer();\n    }\n    else\n    {\n        size_type __cap = __recommend(__sz);\n        __p = __alloc_traits::allocate(__alloc(), __cap+1);\n        __set_long_pointer(__p);\n        __set_long_cap(__cap+1);\n        __set_long_size(__sz);\n    }\n    traits_type::copy(_VSTD::__to_raw_pointer(__p), __s, __sz);\n    traits_type::assign(__p[__sz], value_type());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s)\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"basic_string(const char*) detected nullptr\");\n    __init(__s, traits_type::length(__s));\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, const _Allocator& __a)\n    : __r_(__second_tag(), __a)\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"basic_string(const char*, allocator) detected nullptr\");\n    __init(__s, traits_type::length(__s));\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n)\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"basic_string(const char*, n) detected nullptr\");\n    __init(__s, __n);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(const _CharT* __s, size_type __n, const _Allocator& __a)\n    : __r_(__second_tag(), __a)\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"basic_string(const char*, n, allocator) detected nullptr\");\n    __init(__s, __n);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str)\n    : __r_(__second_tag(), __alloc_traits::select_on_container_copy_construction(__str.__alloc()))\n{\n    if (!__str.__is_long())\n        __r_.first().__r = __str.__r_.first().__r;\n    else\n        __init(_VSTD::__to_raw_pointer(__str.__get_long_pointer()), __str.__get_long_size());\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(\n    const basic_string& __str, const allocator_type& __a)\n    : __r_(__second_tag(), __a)\n{\n    if (!__str.__is_long())\n        __r_.first().__r = __str.__r_.first().__r;\n    else\n        __init(_VSTD::__to_raw_pointer(__str.__get_long_pointer()), __str.__get_long_size());\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str)\n#if _LIBCPP_STD_VER <= 14\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)\n#else\n        _NOEXCEPT\n#endif\n    : __r_(_VSTD::move(__str.__r_))\n{\n    __str.__zero();\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n    if (__is_long())\n        __get_db()->swap(this, &__str);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(basic_string&& __str, const allocator_type& __a)\n    : __r_(__second_tag(), __a)\n{\n    if (__str.__is_long() && __a != __str.__alloc()) // copy, not move\n        __init(_VSTD::__to_raw_pointer(__str.__get_long_pointer()), __str.__get_long_size());\n    else\n    {\n        __r_.first().__r = __str.__r_.first().__r;\n        __str.__zero();\n    }\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n    if (__is_long())\n        __get_db()->swap(this, &__str);\n#endif\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__init(size_type __n, value_type __c)\n{\n    if (__n > max_size())\n        this->__throw_length_error();\n    pointer __p;\n    if (__n < __min_cap)\n    {\n        __set_short_size(__n);\n        __p = __get_short_pointer();\n    }\n    else\n    {\n        size_type __cap = __recommend(__n);\n        __p = __alloc_traits::allocate(__alloc(), __cap+1);\n        __set_long_pointer(__p);\n        __set_long_cap(__cap+1);\n        __set_long_size(__n);\n    }\n    traits_type::assign(_VSTD::__to_raw_pointer(__p), __n, __c);\n    traits_type::assign(__p[__n], value_type());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c)\n{\n    __init(__n, __c);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(size_type __n, _CharT __c, const _Allocator& __a)\n    : __r_(__second_tag(), __a)\n{\n    __init(__n, __c);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str,\n                                                        size_type __pos, size_type __n,\n                                                        const _Allocator& __a)\n    : __r_(__second_tag(), __a)\n{\n    size_type __str_sz = __str.size();\n    if (__pos > __str_sz)\n        this->__throw_out_of_range();\n    __init(__str.data() + __pos, _VSTD::min(__n, __str_sz - __pos));\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(const basic_string& __str, size_type __pos,\n                                                        const _Allocator& __a)\n    : __r_(__second_tag(), __a)\n{\n    size_type __str_sz = __str.size();\n    if (__pos > __str_sz)\n        this->__throw_out_of_range();\n    __init(__str.data() + __pos, __str_sz - __pos);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate <class _Tp>\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(\n             const _Tp& __t, size_type __pos, size_type __n, const allocator_type& __a,\n\t\t\t typename enable_if<__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value, void>::type *)\n    : __r_(__second_tag(), __a)\n{\n\t__self_view __sv = __self_view(__t).substr(__pos, __n);\n    __init(__sv.data(), __sv.size());\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv)\n{\n    __init(__sv.data(), __sv.size());\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(__self_view __sv, const _Allocator& __a)\n    : __r_(__second_tag(), __a)\n{\n    __init(__sv.data(), __sv.size());\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate <class _InputIterator>\ntypename enable_if\n<\n    __is_exactly_input_iterator<_InputIterator>::value,\n    void\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::__init(_InputIterator __first, _InputIterator __last)\n{\n    __zero();\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    for (; __first != __last; ++__first)\n        push_back(*__first);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        if (__is_long())\n            __alloc_traits::deallocate(__alloc(), __get_long_pointer(), __get_long_cap());\n        throw;\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate <class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value,\n    void\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::__init(_ForwardIterator __first, _ForwardIterator __last)\n{\n    size_type __sz = static_cast<size_type>(_VSTD::distance(__first, __last));\n    if (__sz > max_size())\n        this->__throw_length_error();\n    pointer __p;\n    if (__sz < __min_cap)\n    {\n        __set_short_size(__sz);\n        __p = __get_short_pointer();\n    }\n    else\n    {\n        size_type __cap = __recommend(__sz);\n        __p = __alloc_traits::allocate(__alloc(), __cap+1);\n        __set_long_pointer(__p);\n        __set_long_cap(__cap+1);\n        __set_long_size(__sz);\n    }\n    for (; __first != __last; ++__first, (void) ++__p)\n        traits_type::assign(*__p, *__first);\n    traits_type::assign(*__p, value_type());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate<class _InputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last)\n{\n    __init(__first, __last);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate<class _InputIterator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(_InputIterator __first, _InputIterator __last,\n                                                        const allocator_type& __a)\n    : __r_(__second_tag(), __a)\n{\n    __init(__first, __last);\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(\n    initializer_list<_CharT> __il)\n{\n    __init(__il.begin(), __il.end());\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\n\nbasic_string<_CharT, _Traits, _Allocator>::basic_string(\n    initializer_list<_CharT> __il, const _Allocator& __a)\n    : __r_(__second_tag(), __a)\n{\n    __init(__il.begin(), __il.end());\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>::~basic_string()\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__erase_c(this);\n#endif\n    if (__is_long())\n        __alloc_traits::deallocate(__alloc(), __get_long_pointer(), __get_long_cap());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__grow_by_and_replace\n    (size_type __old_cap, size_type __delta_cap, size_type __old_sz,\n     size_type __n_copy,  size_type __n_del,     size_type __n_add, const value_type* __p_new_stuff)\n{\n    size_type __ms = max_size();\n    if (__delta_cap > __ms - __old_cap - 1)\n        this->__throw_length_error();\n    pointer __old_p = __get_pointer();\n    size_type __cap = __old_cap < __ms / 2 - __alignment ?\n                          __recommend(_VSTD::max(__old_cap + __delta_cap, 2 * __old_cap)) :\n                          __ms - 1;\n    pointer __p = __alloc_traits::allocate(__alloc(), __cap+1);\n    __invalidate_all_iterators();\n    if (__n_copy != 0)\n        traits_type::copy(_VSTD::__to_raw_pointer(__p),\n                          _VSTD::__to_raw_pointer(__old_p), __n_copy);\n    if (__n_add != 0)\n        traits_type::copy(_VSTD::__to_raw_pointer(__p) + __n_copy, __p_new_stuff, __n_add);\n    size_type __sec_cp_sz = __old_sz - __n_del - __n_copy;\n    if (__sec_cp_sz != 0)\n        traits_type::copy(_VSTD::__to_raw_pointer(__p) + __n_copy + __n_add,\n                          _VSTD::__to_raw_pointer(__old_p) + __n_copy + __n_del, __sec_cp_sz);\n    if (__old_cap+1 != __min_cap)\n        __alloc_traits::deallocate(__alloc(), __old_p, __old_cap+1);\n    __set_long_pointer(__p);\n    __set_long_cap(__cap+1);\n    __old_sz = __n_copy + __n_add + __sec_cp_sz;\n    __set_long_size(__old_sz);\n    traits_type::assign(__p[__old_sz], value_type());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__grow_by(size_type __old_cap, size_type __delta_cap, size_type __old_sz,\n                                                     size_type __n_copy,  size_type __n_del,     size_type __n_add)\n{\n    size_type __ms = max_size();\n    if (__delta_cap > __ms - __old_cap)\n        this->__throw_length_error();\n    pointer __old_p = __get_pointer();\n    size_type __cap = __old_cap < __ms / 2 - __alignment ?\n                          __recommend(_VSTD::max(__old_cap + __delta_cap, 2 * __old_cap)) :\n                          __ms - 1;\n    pointer __p = __alloc_traits::allocate(__alloc(), __cap+1);\n    __invalidate_all_iterators();\n    if (__n_copy != 0)\n        traits_type::copy(_VSTD::__to_raw_pointer(__p),\n                          _VSTD::__to_raw_pointer(__old_p), __n_copy);\n    size_type __sec_cp_sz = __old_sz - __n_del - __n_copy;\n    if (__sec_cp_sz != 0)\n        traits_type::copy(_VSTD::__to_raw_pointer(__p) + __n_copy + __n_add,\n                          _VSTD::__to_raw_pointer(__old_p) + __n_copy + __n_del,\n                          __sec_cp_sz);\n    if (__old_cap+1 != __min_cap)\n        __alloc_traits::deallocate(__alloc(), __old_p, __old_cap+1);\n    __set_long_pointer(__p);\n    __set_long_cap(__cap+1);\n}\n\n// assign\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::assign(const value_type* __s, size_type __n)\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::assign received nullptr\");\n    size_type __cap = capacity();\n    if (__cap >= __n)\n    {\n        value_type* __p = _VSTD::__to_raw_pointer(__get_pointer());\n        traits_type::move(__p, __s, __n);\n        traits_type::assign(__p[__n], value_type());\n        __set_size(__n);\n        __invalidate_iterators_past(__n);\n    }\n    else\n    {\n        size_type __sz = size();\n        __grow_by_and_replace(__cap, __n - __cap, __sz, 0, __sz, __n, __s);\n    }\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::assign(size_type __n, value_type __c)\n{\n    size_type __cap = capacity();\n    if (__cap < __n)\n    {\n        size_type __sz = size();\n        __grow_by(__cap, __n - __cap, __sz, 0, __sz);\n    }\n    else\n        __invalidate_iterators_past(__n);\n    value_type* __p = _VSTD::__to_raw_pointer(__get_pointer());\n    traits_type::assign(__p, __n, __c);\n    traits_type::assign(__p[__n], value_type());\n    __set_size(__n);\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::operator=(value_type __c)\n{\n    pointer __p;\n    if (__is_long())\n    {\n        __p = __get_long_pointer();\n        __set_long_size(1);\n    }\n    else\n    {\n        __p = __get_short_pointer();\n        __set_short_size(1);\n    }\n    traits_type::assign(*__p, __c);\n    traits_type::assign(*++__p, value_type());\n    __invalidate_iterators_past(1);\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::operator=(const basic_string& __str)\n{\n    if (this != &__str)\n    {\n        __copy_assign_alloc(__str);\n        assign(__str.data(), __str.size());\n    }\n    return *this;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, false_type)\n    _NOEXCEPT_(__alloc_traits::is_always_equal::value)\n{\n    if (__alloc() != __str.__alloc())\n        assign(__str);\n    else\n        __move_assign(__str, true_type());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__move_assign(basic_string& __str, true_type)\n#if _LIBCPP_STD_VER > 14\n    _NOEXCEPT\n#else\n    _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n#endif\n{\n    clear();\n    shrink_to_fit();\n    __r_.first() = __str.__r_.first();\n    __move_assign_alloc(__str);\n    __str.__zero();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::operator=(basic_string&& __str)\n    _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value))\n{\n    __move_assign(__str, integral_constant<bool,\n          __alloc_traits::propagate_on_container_move_assignment::value>());\n    return *this;\n}\n\n#endif\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate<class _InputIterator>\ntypename enable_if\n<\n     __is_exactly_input_iterator <_InputIterator>::value\n          || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value,\n    basic_string<_CharT, _Traits, _Allocator>&\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::assign(_InputIterator __first, _InputIterator __last)\n{\n    const basic_string __temp(__first, __last, __alloc());\n    assign(__temp.data(), __temp.size());\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate<class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value\n         && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value,\n    basic_string<_CharT, _Traits, _Allocator>&\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::assign(_ForwardIterator __first, _ForwardIterator __last)\n{\n    size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));\n    size_type __cap = capacity();\n    if (__cap < __n)\n    {\n        size_type __sz = size();\n        __grow_by(__cap, __n - __cap, __sz, 0, __sz);\n    }\n    else\n        __invalidate_iterators_past(__n);\n    pointer __p = __get_pointer();\n    for (; __first != __last; ++__first, ++__p)\n        traits_type::assign(*__p, *__first);\n    traits_type::assign(*__p, value_type());\n    __set_size(__n);\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::assign(const basic_string& __str, size_type __pos, size_type __n)\n{\n    size_type __sz = __str.size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    return assign(__str.data() + __pos, _VSTD::min(__n, __sz - __pos));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate <class _Tp>\ntypename enable_if\n<\n    __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n\tbasic_string<_CharT, _Traits, _Allocator>&\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::assign(const _Tp & __t, size_type __pos, size_type __n)\n{\n    __self_view __sv = __t;\n    size_type __sz = __sv.size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    return assign(__sv.data() + __pos, _VSTD::min(__n, __sz - __pos));\n}\n\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::assign(const value_type* __s)\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::assign received nullptr\");\n    return assign(__s, traits_type::length(__s));\n}\n\n// append\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::append(const value_type* __s, size_type __n)\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::append received nullptr\");\n    size_type __cap = capacity();\n    size_type __sz = size();\n    if (__cap - __sz >= __n)\n    {\n        if (__n)\n        {\n            value_type* __p = _VSTD::__to_raw_pointer(__get_pointer());\n            traits_type::copy(__p + __sz, __s, __n);\n            __sz += __n;\n            __set_size(__sz);\n            traits_type::assign(__p[__sz], value_type());\n        }\n    }\n    else\n        __grow_by_and_replace(__cap, __sz + __n - __cap, __sz, __sz, 0, __n, __s);\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::append(size_type __n, value_type __c)\n{\n    if (__n)\n    {\n        size_type __cap = capacity();\n        size_type __sz = size();\n        if (__cap - __sz < __n)\n            __grow_by(__cap, __sz + __n - __cap, __sz, __sz, 0);\n        pointer __p = __get_pointer();\n        traits_type::assign(_VSTD::__to_raw_pointer(__p) + __sz, __n, __c);\n        __sz += __n;\n        __set_size(__sz);\n        traits_type::assign(__p[__sz], value_type());\n    }\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::push_back(value_type __c)\n{\n    bool __is_short = !__is_long();\n    size_type __cap;\n    size_type __sz;\n    if (__is_short)\n    {\n        __cap = __min_cap - 1;\n        __sz = __get_short_size();\n    }\n    else\n    {\n        __cap = __get_long_cap() - 1;\n        __sz = __get_long_size();\n    }\n    if (__sz == __cap)\n    {\n        __grow_by(__cap, 1, __sz, __sz, 0);\n        __is_short = !__is_long();\n    }\n    pointer __p;\n    if (__is_short)\n    {\n        __p = __get_short_pointer() + __sz;\n        __set_short_size(__sz+1);\n    }\n    else\n    {\n        __p = __get_long_pointer() + __sz;\n        __set_long_size(__sz+1);\n    }\n    traits_type::assign(*__p, __c);\n    traits_type::assign(*++__p, value_type());\n}\n\ntemplate <class _Tp>\nbool __ptr_in_range (const _Tp* __p, const _Tp* __first, const _Tp* __last)\n{\n    return __first <= __p && __p < __last;\n}\n\ntemplate <class _Tp1, class _Tp2>\nbool __ptr_in_range (const _Tp1*, const _Tp2*, const _Tp2*)\n{\n    return false;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate<class _ForwardIterator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::__append_forward_unsafe(\n    _ForwardIterator __first, _ForwardIterator __last)\n{\n    static_assert(__is_forward_iterator<_ForwardIterator>::value,\n                  \"function requires a ForwardIterator\");\n    size_type __sz = size();\n    size_type __cap = capacity();\n    size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));\n    if (__n)\n    {\n        typedef typename iterator_traits<_ForwardIterator>::reference _CharRef;\n        _CharRef __tmp_ref = *__first;\n        if (__ptr_in_range(_VSTD::addressof(__tmp_ref), data(), data() + size()))\n        {\n            const basic_string __temp (__first, __last, __alloc());\n            append(__temp.data(), __temp.size());\n        }\n        else \n        {\n            if (__cap - __sz < __n)\n                __grow_by(__cap, __sz + __n - __cap, __sz, __sz, 0);\n            pointer __p = __get_pointer() + __sz;\n            for (; __first != __last; ++__p, ++__first)\n                traits_type::assign(*__p, *__first);\n            traits_type::assign(*__p, value_type());\n            __set_size(__sz + __n);\n        }\n    }\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::append(const basic_string& __str)\n{\n    return append(__str.data(), __str.size());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::append(const basic_string& __str, size_type __pos, size_type __n)\n{\n    size_type __sz = __str.size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    return append(__str.data() + __pos, _VSTD::min(__n, __sz - __pos));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate <class _Tp>\n    typename enable_if\n    <\n        __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n        basic_string<_CharT, _Traits, _Allocator>&\n    >::type\nbasic_string<_CharT, _Traits, _Allocator>::append(const _Tp & __t, size_type __pos, size_type __n)\n{\n    __self_view __sv = __t;\n    size_type __sz = __sv.size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    return append(__sv.data() + __pos, _VSTD::min(__n, __sz - __pos));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::append(const value_type* __s)\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::append received nullptr\");\n    return append(__s, traits_type::length(__s));\n}\n\n// insert\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s, size_type __n)\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::insert received nullptr\");\n    size_type __sz = size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    size_type __cap = capacity();\n    if (__cap - __sz >= __n)\n    {\n        if (__n)\n        {\n            value_type* __p = _VSTD::__to_raw_pointer(__get_pointer());\n            size_type __n_move = __sz - __pos;\n            if (__n_move != 0)\n            {\n                if (__p + __pos <= __s && __s < __p + __sz)\n                    __s += __n;\n                traits_type::move(__p + __pos + __n, __p + __pos, __n_move);\n            }\n            traits_type::move(__p + __pos, __s, __n);\n            __sz += __n;\n            __set_size(__sz);\n            traits_type::assign(__p[__sz], value_type());\n        }\n    }\n    else\n        __grow_by_and_replace(__cap, __sz + __n - __cap, __sz, __pos, 0, __n, __s);\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, size_type __n, value_type __c)\n{\n    size_type __sz = size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    if (__n)\n    {\n        size_type __cap = capacity();\n        value_type* __p;\n        if (__cap - __sz >= __n)\n        {\n            __p = _VSTD::__to_raw_pointer(__get_pointer());\n            size_type __n_move = __sz - __pos;\n            if (__n_move != 0)\n                traits_type::move(__p + __pos + __n, __p + __pos, __n_move);\n        }\n        else\n        {\n            __grow_by(__cap, __sz + __n - __cap, __sz, __pos, 0, __n);\n            __p = _VSTD::__to_raw_pointer(__get_long_pointer());\n        }\n        traits_type::assign(__p + __pos, __n, __c);\n        __sz += __n;\n        __set_size(__sz);\n        traits_type::assign(__p[__sz], value_type());\n    }\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate<class _InputIterator>\ntypename enable_if\n<\n   __is_exactly_input_iterator<_InputIterator>::value\n        || !__libcpp_string_gets_noexcept_iterator<_InputIterator>::value,\n   typename basic_string<_CharT, _Traits, _Allocator>::iterator\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, _InputIterator __first, _InputIterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,\n        \"string::insert(iterator, range) called with an iterator not\"\n        \" referring to this string\");\n#endif\n    const basic_string __temp(__first, __last, __alloc());\n    return insert(__pos, __temp.data(), __temp.data() + __temp.size());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate<class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value\n        && __libcpp_string_gets_noexcept_iterator<_ForwardIterator>::value,\n    typename basic_string<_CharT, _Traits, _Allocator>::iterator\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, _ForwardIterator __first, _ForwardIterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,\n        \"string::insert(iterator, range) called with an iterator not\"\n        \" referring to this string\");\n#endif\n    size_type __ip = static_cast<size_type>(__pos - begin());\n    size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));\n    if (__n)\n    {\n        typedef typename iterator_traits<_ForwardIterator>::reference _CharRef;\n        _CharRef __tmp_char = *__first;\n        if (__ptr_in_range(_VSTD::addressof(__tmp_char), data(), data() + size()))\n        {\n            const basic_string __temp(__first, __last, __alloc());\n            return insert(__pos, __temp.data(), __temp.data() + __temp.size());\n        }\n\n        size_type __sz = size();\n        size_type __cap = capacity();\n        value_type* __p;\n        if (__cap - __sz >= __n)\n        {\n            __p = _VSTD::__to_raw_pointer(__get_pointer());\n            size_type __n_move = __sz - __ip;\n            if (__n_move != 0)\n                traits_type::move(__p + __ip + __n, __p + __ip, __n_move);\n        }\n        else\n        {\n            __grow_by(__cap, __sz + __n - __cap, __sz, __ip, 0, __n);\n            __p = _VSTD::__to_raw_pointer(__get_long_pointer());\n        }\n        __sz += __n;\n        __set_size(__sz);\n        traits_type::assign(__p[__sz], value_type());\n        for (__p += __ip; __first != __last; ++__p, ++__first)\n            traits_type::assign(*__p, *__first);\n    }\n    return begin() + __ip;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos1, const basic_string& __str)\n{\n    return insert(__pos1, __str.data(), __str.size());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos1, const basic_string& __str,\n                                                  size_type __pos2, size_type __n)\n{\n    size_type __str_sz = __str.size();\n    if (__pos2 > __str_sz)\n        this->__throw_out_of_range();\n    return insert(__pos1, __str.data() + __pos2, _VSTD::min(__n, __str_sz - __pos2));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate <class _Tp>\ntypename enable_if\n<\n    __can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n\tbasic_string<_CharT, _Traits, _Allocator>&\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos1, const _Tp& __t,\n                                                  size_type __pos2, size_type __n)\n{\n    __self_view __sv = __t;\n    size_type __str_sz = __sv.size();\n    if (__pos2 > __str_sz)\n        this->__throw_out_of_range();\n    return insert(__pos1, __sv.data() + __pos2, _VSTD::min(__n, __str_sz - __pos2));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::insert(size_type __pos, const value_type* __s)\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::insert received nullptr\");\n    return insert(__pos, __s, traits_type::length(__s));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::iterator\nbasic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, value_type __c)\n{\n    size_type __ip = static_cast<size_type>(__pos - begin());\n    size_type __sz = size();\n    size_type __cap = capacity();\n    value_type* __p;\n    if (__cap == __sz)\n    {\n        __grow_by(__cap, 1, __sz, __ip, 0, 1);\n        __p = _VSTD::__to_raw_pointer(__get_long_pointer());\n    }\n    else\n    {\n        __p = _VSTD::__to_raw_pointer(__get_pointer());\n        size_type __n_move = __sz - __ip;\n        if (__n_move != 0)\n            traits_type::move(__p + __ip + 1, __p + __ip, __n_move);\n    }\n    traits_type::assign(__p[__ip], __c);\n    traits_type::assign(__p[++__sz], value_type());\n    __set_size(__sz);\n    return begin() + static_cast<difference_type>(__ip);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::iterator\nbasic_string<_CharT, _Traits, _Allocator>::insert(const_iterator __pos, size_type __n, value_type __c)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,\n        \"string::insert(iterator, n, value) called with an iterator not\"\n        \" referring to this string\");\n#endif\n    difference_type __p = __pos - begin();\n    insert(static_cast<size_type>(__p), __n, __c);\n    return begin() + __p;\n}\n\n// replace\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, const value_type* __s, size_type __n2)\n    _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n{\n    _LIBCPP_ASSERT(__n2 == 0 || __s != nullptr, \"string::replace received nullptr\");\n    size_type __sz = size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    __n1 = _VSTD::min(__n1, __sz - __pos);\n    size_type __cap = capacity();\n    if (__cap - __sz + __n1 >= __n2)\n    {\n        value_type* __p = _VSTD::__to_raw_pointer(__get_pointer());\n        if (__n1 != __n2)\n        {\n            size_type __n_move = __sz - __pos - __n1;\n            if (__n_move != 0)\n            {\n                if (__n1 > __n2)\n                {\n                    traits_type::move(__p + __pos, __s, __n2);\n                    traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move);\n                    goto __finish;\n                }\n                if (__p + __pos < __s && __s < __p + __sz)\n                {\n                    if (__p + __pos + __n1 <= __s)\n                        __s += __n2 - __n1;\n                    else // __p + __pos < __s < __p + __pos + __n1\n                    {\n                        traits_type::move(__p + __pos, __s, __n1);\n                        __pos += __n1;\n                        __s += __n2;\n                        __n2 -= __n1;\n                        __n1 = 0;\n                    }\n                }\n                traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move);\n            }\n        }\n        traits_type::move(__p + __pos, __s, __n2);\n__finish:\n// __sz += __n2 - __n1; in this and the below function below can cause unsigned integer overflow,\n// but this is a safe operation, so we disable the check.\n        __sz += __n2 - __n1;\n        __set_size(__sz);\n        __invalidate_iterators_past(__sz);\n        traits_type::assign(__p[__sz], value_type());\n    }\n    else\n        __grow_by_and_replace(__cap, __sz - __n1 + __n2 - __cap, __sz, __pos, __n1, __n2, __s);\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, size_type __n2, value_type __c)\n    _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n{\n    size_type __sz = size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    __n1 = _VSTD::min(__n1, __sz - __pos);\n    size_type __cap = capacity();\n    value_type* __p;\n    if (__cap - __sz + __n1 >= __n2)\n    {\n        __p = _VSTD::__to_raw_pointer(__get_pointer());\n        if (__n1 != __n2)\n        {\n            size_type __n_move = __sz - __pos - __n1;\n            if (__n_move != 0)\n                traits_type::move(__p + __pos + __n2, __p + __pos + __n1, __n_move);\n        }\n    }\n    else\n    {\n        __grow_by(__cap, __sz - __n1 + __n2 - __cap, __sz, __pos, __n1, __n2);\n        __p = _VSTD::__to_raw_pointer(__get_long_pointer());\n    }\n    traits_type::assign(__p + __pos, __n2, __c);\n    __sz += __n2 - __n1;\n    __set_size(__sz);\n    __invalidate_iterators_past(__sz);\n    traits_type::assign(__p[__sz], value_type());\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate<class _InputIterator>\ntypename enable_if\n<\n    __is_input_iterator<_InputIterator>::value,\n    basic_string<_CharT, _Traits, _Allocator>&\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2,\n                                                   _InputIterator __j1, _InputIterator __j2)\n{\n    const basic_string __temp(__j1, __j2, __alloc());\n    return this->replace(__i1, __i2, __temp);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos1, size_type __n1, const basic_string& __str)\n{\n    return replace(__pos1, __n1, __str.data(), __str.size());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos1, size_type __n1, const basic_string& __str,\n                                                   size_type __pos2, size_type __n2)\n{\n    size_type __str_sz = __str.size();\n    if (__pos2 > __str_sz)\n        this->__throw_out_of_range();\n    return replace(__pos1, __n1, __str.data() + __pos2, _VSTD::min(__n2, __str_sz - __pos2));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate <class _Tp>\ntypename enable_if\n<\n\t__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n\tbasic_string<_CharT, _Traits, _Allocator>&\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos1, size_type __n1, const _Tp& __t,\n                                                   size_type __pos2, size_type __n2)\n{\n    __self_view __sv = __t;\n    size_type __str_sz = __sv.size();\n    if (__pos2 > __str_sz)\n        this->__throw_out_of_range();\n    return replace(__pos1, __n1, __sv.data() + __pos2, _VSTD::min(__n2, __str_sz - __pos2));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(size_type __pos, size_type __n1, const value_type* __s)\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::replace received nullptr\");\n    return replace(__pos, __n1, __s, traits_type::length(__s));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, const basic_string& __str)\n{\n    return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1),\n                   __str.data(), __str.size());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, const value_type* __s, size_type __n)\n{\n    return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __s, __n);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, const value_type* __s)\n{\n    return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __s);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::replace(const_iterator __i1, const_iterator __i2, size_type __n, value_type __c)\n{\n    return replace(static_cast<size_type>(__i1 - begin()), static_cast<size_type>(__i2 - __i1), __n, __c);\n}\n\n// erase\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>&\nbasic_string<_CharT, _Traits, _Allocator>::erase(size_type __pos, size_type __n)\n{\n    size_type __sz = size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    if (__n)\n    {\n        value_type* __p = _VSTD::__to_raw_pointer(__get_pointer());\n        __n = _VSTD::min(__n, __sz - __pos);\n        size_type __n_move = __sz - __pos - __n;\n        if (__n_move != 0)\n            traits_type::move(__p + __pos, __p + __pos + __n, __n_move);\n        __sz -= __n;\n        __set_size(__sz);\n        __invalidate_iterators_past(__sz);\n        traits_type::assign(__p[__sz], value_type());\n    }\n    return *this;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::iterator\nbasic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __pos)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__pos) == this,\n        \"string::erase(iterator) called with an iterator not\"\n        \" referring to this string\");\n#endif\n    _LIBCPP_ASSERT(__pos != end(),\n        \"string::erase(iterator) called with a non-dereferenceable iterator\");\n    iterator __b = begin();\n    size_type __r = static_cast<size_type>(__pos - __b);\n    erase(__r, 1);\n    return __b + static_cast<difference_type>(__r);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::iterator\nbasic_string<_CharT, _Traits, _Allocator>::erase(const_iterator __first, const_iterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this,\n        \"string::erase(iterator,  iterator) called with an iterator not\"\n        \" referring to this string\");\n#endif\n    _LIBCPP_ASSERT(__first <= __last, \"string::erase(first, last) called with invalid range\");\n    iterator __b = begin();\n    size_type __r = static_cast<size_type>(__first - __b);\n    erase(__r, static_cast<size_type>(__last - __first));\n    return __b + static_cast<difference_type>(__r);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::pop_back()\n{\n    _LIBCPP_ASSERT(!empty(), \"string::pop_back(): string is already empty\");\n    size_type __sz;\n    if (__is_long())\n    {\n        __sz = __get_long_size() - 1;\n        __set_long_size(__sz);\n        traits_type::assign(*(__get_long_pointer() + __sz), value_type());\n    }\n    else\n    {\n        __sz = __get_short_size() - 1;\n        __set_short_size(__sz);\n        traits_type::assign(*(__get_short_pointer() + __sz), value_type());\n    }\n    __invalidate_iterators_past(__sz);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::clear() _NOEXCEPT\n{\n    __invalidate_all_iterators();\n    if (__is_long())\n    {\n        traits_type::assign(*__get_long_pointer(), value_type());\n        __set_long_size(0);\n    }\n    else\n    {\n        traits_type::assign(*__get_short_pointer(), value_type());\n        __set_short_size(0);\n    }\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::__erase_to_end(size_type __pos)\n{\n    if (__is_long())\n    {\n        traits_type::assign(*(__get_long_pointer() + __pos), value_type());\n        __set_long_size(__pos);\n    }\n    else\n    {\n        traits_type::assign(*(__get_short_pointer() + __pos), value_type());\n        __set_short_size(__pos);\n    }\n    __invalidate_iterators_past(__pos);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::resize(size_type __n, value_type __c)\n{\n    size_type __sz = size();\n    if (__n > __sz)\n        append(__n - __sz, __c);\n    else\n        __erase_to_end(__n);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::max_size() const _NOEXCEPT\n{\n    size_type __m = __alloc_traits::max_size(__alloc());\n#if _LIBCPP_BIG_ENDIAN\n    return (__m <= ~__long_mask ? __m : __m/2) - __alignment;\n#else\n    return __m - __alignment;\n#endif\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::reserve(size_type __res_arg)\n{\n    if (__res_arg > max_size())\n        this->__throw_length_error();\n    size_type __cap = capacity();\n    size_type __sz = size();\n    __res_arg = _VSTD::max(__res_arg, __sz);\n    __res_arg = __recommend(__res_arg);\n    if (__res_arg != __cap)\n    {\n        pointer __new_data, __p;\n        bool __was_long, __now_long;\n        if (__res_arg == __min_cap - 1)\n        {\n            __was_long = true;\n            __now_long = false;\n            __new_data = __get_short_pointer();\n            __p = __get_long_pointer();\n        }\n        else\n        {\n            if (__res_arg > __cap)\n                __new_data = __alloc_traits::allocate(__alloc(), __res_arg+1);\n            else\n            {\n            #ifndef _LIBCPP_NO_EXCEPTIONS\n                try\n                {\n            #endif  // _LIBCPP_NO_EXCEPTIONS\n                    __new_data = __alloc_traits::allocate(__alloc(), __res_arg+1);\n            #ifndef _LIBCPP_NO_EXCEPTIONS\n                }\n                catch (...)\n                {\n                    return;\n                }\n            #else  // _LIBCPP_NO_EXCEPTIONS\n                if (__new_data == nullptr)\n                    return;\n            #endif  // _LIBCPP_NO_EXCEPTIONS\n            }\n            __now_long = true;\n            __was_long = __is_long();\n            __p = __get_pointer();\n        }\n        traits_type::copy(_VSTD::__to_raw_pointer(__new_data),\n                          _VSTD::__to_raw_pointer(__p), size()+1);\n        if (__was_long)\n            __alloc_traits::deallocate(__alloc(), __p, __cap+1);\n        if (__now_long)\n        {\n            __set_long_cap(__res_arg+1);\n            __set_long_size(__sz);\n            __set_long_pointer(__new_data);\n        }\n        else\n            __set_short_size(__sz);\n        __invalidate_all_iterators();\n    }\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::const_reference\nbasic_string<_CharT, _Traits, _Allocator>::operator[](size_type __pos) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__pos <= size(), \"string index out of bounds\");\n    return *(data() + __pos);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::reference\nbasic_string<_CharT, _Traits, _Allocator>::operator[](size_type __pos) _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__pos <= size(), \"string index out of bounds\");\n    return *(__get_pointer() + __pos);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::const_reference\nbasic_string<_CharT, _Traits, _Allocator>::at(size_type __n) const\n{\n    if (__n >= size())\n        this->__throw_out_of_range();\n    return (*this)[__n];\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::reference\nbasic_string<_CharT, _Traits, _Allocator>::at(size_type __n)\n{\n    if (__n >= size())\n        this->__throw_out_of_range();\n    return (*this)[__n];\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::reference\nbasic_string<_CharT, _Traits, _Allocator>::front()\n{\n    _LIBCPP_ASSERT(!empty(), \"string::front(): string is empty\");\n    return *__get_pointer();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::const_reference\nbasic_string<_CharT, _Traits, _Allocator>::front() const\n{\n    _LIBCPP_ASSERT(!empty(), \"string::front(): string is empty\");\n    return *data();\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::reference\nbasic_string<_CharT, _Traits, _Allocator>::back()\n{\n    _LIBCPP_ASSERT(!empty(), \"string::back(): string is empty\");\n    return *(__get_pointer() + size() - 1);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::const_reference\nbasic_string<_CharT, _Traits, _Allocator>::back() const\n{\n    _LIBCPP_ASSERT(!empty(), \"string::back(): string is empty\");\n    return *(data() + size() - 1);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::copy(value_type* __s, size_type __n, size_type __pos) const\n{\n    size_type __sz = size();\n    if (__pos > __sz)\n        this->__throw_out_of_range();\n    size_type __rlen = _VSTD::min(__n, __sz - __pos);\n    traits_type::copy(__s, data() + __pos, __rlen);\n    return __rlen;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>::substr(size_type __pos, size_type __n) const\n{\n    return basic_string(*this, __pos, __n, __alloc());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nbasic_string<_CharT, _Traits, _Allocator>::swap(basic_string& __str)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT_DEBUG\n#else\n        _NOEXCEPT_DEBUG_(!__alloc_traits::propagate_on_container_swap::value ||\n                    __is_nothrow_swappable<allocator_type>::value)\n#endif\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    if (!__is_long())\n        __get_db()->__invalidate_all(this);\n    if (!__str.__is_long())\n        __get_db()->__invalidate_all(&__str);\n    __get_db()->swap(this, &__str);\n#endif\n    _LIBCPP_ASSERT(\n        __alloc_traits::propagate_on_container_swap::value ||\n        __alloc_traits::is_always_equal::value ||\n        __alloc() == __str.__alloc(), \"swapping non-equal allocators\");\n    _VSTD::swap(__r_.first(), __str.__r_.first());\n    __swap_allocator(__alloc(), __str.__alloc());\n}\n\n// find\n\ntemplate <class _Traits>\nstruct _LIBCPP_HIDDEN __traits_eq\n{\n    typedef typename _Traits::char_type char_type;\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const char_type& __x, const char_type& __y) _NOEXCEPT\n        {return _Traits::eq(__x, __y);}\n};\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,\n                                                size_type __pos,\n                                                size_type __n) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::find(): received nullptr\");\n    return __str_find<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, __n);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find(const basic_string& __str,\n                                                size_type __pos) const _NOEXCEPT\n{\n    return __str_find<value_type, size_type, traits_type, npos>\n        (data(), size(), __str.data(), __pos, __str.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find(__self_view __sv,\n                                                size_type __pos) const _NOEXCEPT\n{\n    return __str_find<value_type, size_type, traits_type, npos>\n        (data(), size(), __sv.data(), __pos, __sv.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find(const value_type* __s,\n                                                size_type __pos) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::find(): received nullptr\");\n    return __str_find<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, traits_type::length(__s));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find(value_type __c,\n                                                size_type __pos) const _NOEXCEPT\n{\n    return __str_find<value_type, size_type, traits_type, npos>\n        (data(), size(), __c, __pos);\n}\n\n// rfind\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,\n                                                 size_type __pos,\n                                                 size_type __n) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::rfind(): received nullptr\");\n    return __str_rfind<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, __n);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::rfind(const basic_string& __str,\n                                                 size_type __pos) const _NOEXCEPT\n{\n    return __str_rfind<value_type, size_type, traits_type, npos>\n        (data(), size(), __str.data(), __pos, __str.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::rfind(__self_view __sv,\n                                                size_type __pos) const _NOEXCEPT\n{\n    return __str_rfind<value_type, size_type, traits_type, npos>\n        (data(), size(), __sv.data(), __pos, __sv.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::rfind(const value_type* __s,\n                                                 size_type __pos) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::rfind(): received nullptr\");\n    return __str_rfind<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, traits_type::length(__s));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::rfind(value_type __c,\n                                                 size_type __pos) const _NOEXCEPT\n{\n    return __str_rfind<value_type, size_type, traits_type, npos>\n        (data(), size(), __c, __pos);\n}\n\n// find_first_of\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,\n                                                         size_type __pos,\n                                                         size_type __n) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::find_first_of(): received nullptr\");\n    return __str_find_first_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, __n);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_of(const basic_string& __str,\n                                                         size_type __pos) const _NOEXCEPT\n{\n    return __str_find_first_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __str.data(), __pos, __str.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_of(__self_view __sv,\n                                                size_type __pos) const _NOEXCEPT\n{\n    return __str_find_first_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __sv.data(), __pos, __sv.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_of(const value_type* __s,\n                                                         size_type __pos) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::find_first_of(): received nullptr\");\n    return __str_find_first_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, traits_type::length(__s));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_of(value_type __c,\n                                                         size_type __pos) const _NOEXCEPT\n{\n    return find(__c, __pos);\n}\n\n// find_last_of\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,\n                                                        size_type __pos,\n                                                        size_type __n) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::find_last_of(): received nullptr\");\n    return __str_find_last_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, __n);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_of(const basic_string& __str,\n                                                        size_type __pos) const _NOEXCEPT\n{\n    return __str_find_last_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __str.data(), __pos, __str.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_of(__self_view __sv,\n                                                size_type __pos) const _NOEXCEPT\n{\n    return __str_find_last_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __sv.data(), __pos, __sv.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_of(const value_type* __s,\n                                                        size_type __pos) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::find_last_of(): received nullptr\");\n    return __str_find_last_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, traits_type::length(__s));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_of(value_type __c,\n                                                        size_type __pos) const _NOEXCEPT\n{\n    return rfind(__c, __pos);\n}\n\n// find_first_not_of\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,\n                                                             size_type __pos,\n                                                             size_type __n) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::find_first_not_of(): received nullptr\");\n    return __str_find_first_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, __n);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const basic_string& __str,\n                                                             size_type __pos) const _NOEXCEPT\n{\n    return __str_find_first_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __str.data(), __pos, __str.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_not_of(__self_view __sv,\n                                                size_type __pos) const _NOEXCEPT\n{\n    return __str_find_first_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __sv.data(), __pos, __sv.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_not_of(const value_type* __s,\n                                                             size_type __pos) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::find_first_not_of(): received nullptr\");\n    return __str_find_first_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, traits_type::length(__s));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_first_not_of(value_type __c,\n                                                             size_type __pos) const _NOEXCEPT\n{\n    return __str_find_first_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __c, __pos);\n}\n\n// find_last_not_of\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,\n                                                            size_type __pos,\n                                                            size_type __n) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string::find_last_not_of(): received nullptr\");\n    return __str_find_last_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, __n);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const basic_string& __str,\n                                                            size_type __pos) const _NOEXCEPT\n{\n    return __str_find_last_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __str.data(), __pos, __str.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_not_of(__self_view __sv,\n                                                size_type __pos) const _NOEXCEPT\n{\n    return __str_find_last_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __sv.data(), __pos, __sv.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_not_of(const value_type* __s,\n                                                            size_type __pos) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::find_last_not_of(): received nullptr\");\n    return __str_find_last_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __s, __pos, traits_type::length(__s));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename basic_string<_CharT, _Traits, _Allocator>::size_type\nbasic_string<_CharT, _Traits, _Allocator>::find_last_not_of(value_type __c,\n                                                            size_type __pos) const _NOEXCEPT\n{\n    return __str_find_last_not_of<value_type, size_type, traits_type, npos>\n        (data(), size(), __c, __pos);\n}\n\n// compare\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nint\nbasic_string<_CharT, _Traits, _Allocator>::compare(__self_view __sv) const _NOEXCEPT\n{\n    size_t __lhs_sz = size();\n    size_t __rhs_sz = __sv.size();\n    int __result = traits_type::compare(data(), __sv.data(),\n                                        _VSTD::min(__lhs_sz, __rhs_sz));\n    if (__result != 0)\n        return __result;\n    if (__lhs_sz < __rhs_sz)\n        return -1;\n    if (__lhs_sz > __rhs_sz)\n        return 1;\n    return 0;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nint\nbasic_string<_CharT, _Traits, _Allocator>::compare(const basic_string& __str) const _NOEXCEPT\n{\n    return compare(__self_view(__str));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nint\nbasic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,\n                                                   size_type __n1,\n                                                   const value_type* __s,\n                                                   size_type __n2) const\n{\n    _LIBCPP_ASSERT(__n2 == 0 || __s != nullptr, \"string::compare(): received nullptr\");\n    size_type __sz = size();\n    if (__pos1 > __sz || __n2 == npos)\n        this->__throw_out_of_range();\n    size_type __rlen = _VSTD::min(__n1, __sz - __pos1);\n    int __r = traits_type::compare(data() + __pos1, __s, _VSTD::min(__rlen, __n2));\n    if (__r == 0)\n    {\n        if (__rlen < __n2)\n            __r = -1;\n        else if (__rlen > __n2)\n            __r = 1;\n    }\n    return __r;\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nint\nbasic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,\n                                                   size_type __n1,\n                                                   __self_view __sv) const\n{\n    return compare(__pos1, __n1, __sv.data(), __sv.size());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nint\nbasic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,\n                                                   size_type __n1,\n                                                   const basic_string& __str) const\n{\n    return compare(__pos1, __n1, __str.data(), __str.size());\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\ntemplate <class _Tp>\ntypename enable_if\n<\n\t__can_be_converted_to_string_view<_CharT, _Traits, _Tp>::value,\n\tint\n>::type\nbasic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,\n                                                   size_type __n1,\n                                                   const _Tp& __t,\n                                                   size_type __pos2,\n                                                   size_type __n2) const\n{\n    __self_view __sv = __t;\n    return __self_view(*this).substr(__pos1, __n1).compare(__sv.substr(__pos2, __n2));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nint\nbasic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,\n                                                   size_type __n1,\n                                                   const basic_string& __str,\n                                                   size_type __pos2,\n                                                   size_type __n2) const\n{\n        return compare(__pos1, __n1, __self_view(__str), __pos2, __n2);\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nint\nbasic_string<_CharT, _Traits, _Allocator>::compare(const value_type* __s) const _NOEXCEPT\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::compare(): received nullptr\");\n    return compare(0, npos, __s, traits_type::length(__s));\n}\n\ntemplate <class _CharT, class _Traits, class _Allocator>\nint\nbasic_string<_CharT, _Traits, _Allocator>::compare(size_type __pos1,\n                                                   size_type __n1,\n                                                   const value_type* __s) const\n{\n    _LIBCPP_ASSERT(__s != nullptr, \"string::compare(): received nullptr\");\n    return compare(__pos1, __n1, __s, traits_type::length(__s));\n}\n\n// __invariants\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\nbasic_string<_CharT, _Traits, _Allocator>::__invariants() const\n{\n    if (size() > capacity())\n        return false;\n    if (capacity() < __min_cap - 1)\n        return false;\n    if (data() == 0)\n        return false;\n    if (data()[size()] != value_type(0))\n        return false;\n    return true;\n}\n\n// operator==\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    size_t __lhs_sz = __lhs.size();\n    return __lhs_sz == __rhs.size() && _Traits::compare(__lhs.data(),\n                                                        __rhs.data(),\n                                                        __lhs_sz) == 0;\n}\n\ntemplate<class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const basic_string<char, char_traits<char>, _Allocator>& __lhs,\n           const basic_string<char, char_traits<char>, _Allocator>& __rhs) _NOEXCEPT\n{\n    size_t __lhs_sz = __lhs.size();\n    if (__lhs_sz != __rhs.size())\n        return false;\n    const char* __lp = __lhs.data();\n    const char* __rp = __rhs.data();\n    if (__lhs.__is_long())\n        return char_traits<char>::compare(__lp, __rp, __lhs_sz) == 0;\n    for (; __lhs_sz != 0; --__lhs_sz, ++__lp, ++__rp)\n        if (*__lp != *__rp)\n            return false;\n    return true;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const _CharT* __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    typedef basic_string<_CharT, _Traits, _Allocator> _String;\n    _LIBCPP_ASSERT(__lhs != nullptr, \"operator==(char*, basic_string): received nullptr\");\n    size_t __lhs_len = _Traits::length(__lhs);\n    if (__lhs_len != __rhs.size()) return false;\n    return __rhs.compare(0, _String::npos, __lhs, __lhs_len) == 0;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const basic_string<_CharT,_Traits,_Allocator>& __lhs,\n           const _CharT* __rhs) _NOEXCEPT\n{\n    typedef basic_string<_CharT, _Traits, _Allocator> _String;\n    _LIBCPP_ASSERT(__rhs != nullptr, \"operator==(basic_string, char*): received nullptr\");\n    size_t __rhs_len = _Traits::length(__rhs);\n    if (__rhs_len != __lhs.size()) return false;\n    return __lhs.compare(0, _String::npos, __rhs, __rhs_len) == 0;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const basic_string<_CharT,_Traits,_Allocator>& __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return !(__lhs == __rhs);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const _CharT* __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return !(__lhs == __rhs);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const _CharT* __rhs) _NOEXCEPT\n{\n    return !(__lhs == __rhs);\n}\n\n// operator<\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return __lhs.compare(__rhs) < 0;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const _CharT* __rhs) _NOEXCEPT\n{\n    return __lhs.compare(__rhs) < 0;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const _CharT* __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return __rhs.compare(__lhs) > 0;\n}\n\n// operator>\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return __rhs < __lhs;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const _CharT* __rhs) _NOEXCEPT\n{\n    return __rhs < __lhs;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const _CharT* __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return __rhs < __lhs;\n}\n\n// operator<=\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return !(__rhs < __lhs);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const _CharT* __rhs) _NOEXCEPT\n{\n    return !(__rhs < __lhs);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const _CharT* __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return !(__rhs < __lhs);\n}\n\n// operator>=\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return !(__lhs < __rhs);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n           const _CharT* __rhs) _NOEXCEPT\n{\n    return !(__lhs < __rhs);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const _CharT* __lhs,\n           const basic_string<_CharT, _Traits, _Allocator>& __rhs) _NOEXCEPT\n{\n    return !(__lhs < __rhs);\n}\n\n// operator +\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs,\n          const basic_string<_CharT, _Traits, _Allocator>& __rhs)\n{\n    basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator());\n    typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size();\n    typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size();\n    __r.__init(__lhs.data(), __lhs_sz, __lhs_sz + __rhs_sz);\n    __r.append(__rhs.data(), __rhs_sz);\n    return __r;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const _CharT* __lhs , const basic_string<_CharT,_Traits,_Allocator>& __rhs)\n{\n    basic_string<_CharT, _Traits, _Allocator> __r(__rhs.get_allocator());\n    typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = _Traits::length(__lhs);\n    typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size();\n    __r.__init(__lhs, __lhs_sz, __lhs_sz + __rhs_sz);\n    __r.append(__rhs.data(), __rhs_sz);\n    return __r;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(_CharT __lhs, const basic_string<_CharT,_Traits,_Allocator>& __rhs)\n{\n    basic_string<_CharT, _Traits, _Allocator> __r(__rhs.get_allocator());\n    typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = __rhs.size();\n    __r.__init(&__lhs, 1, 1 + __rhs_sz);\n    __r.append(__rhs.data(), __rhs_sz);\n    return __r;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, const _CharT* __rhs)\n{\n    basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator());\n    typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size();\n    typename basic_string<_CharT, _Traits, _Allocator>::size_type __rhs_sz = _Traits::length(__rhs);\n    __r.__init(__lhs.data(), __lhs_sz, __lhs_sz + __rhs_sz);\n    __r.append(__rhs, __rhs_sz);\n    return __r;\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, _CharT __rhs)\n{\n    basic_string<_CharT, _Traits, _Allocator> __r(__lhs.get_allocator());\n    typename basic_string<_CharT, _Traits, _Allocator>::size_type __lhs_sz = __lhs.size();\n    __r.__init(__lhs.data(), __lhs_sz, __lhs_sz + 1);\n    __r.push_back(__rhs);\n    return __r;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const basic_string<_CharT, _Traits, _Allocator>& __rhs)\n{\n    return _VSTD::move(__lhs.append(__rhs));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const basic_string<_CharT, _Traits, _Allocator>& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)\n{\n    return _VSTD::move(__rhs.insert(0, __lhs));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, basic_string<_CharT, _Traits, _Allocator>&& __rhs)\n{\n    return _VSTD::move(__lhs.append(__rhs));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(const _CharT* __lhs , basic_string<_CharT,_Traits,_Allocator>&& __rhs)\n{\n    return _VSTD::move(__rhs.insert(0, __lhs));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(_CharT __lhs, basic_string<_CharT,_Traits,_Allocator>&& __rhs)\n{\n    __rhs.insert(__rhs.begin(), __lhs);\n    return _VSTD::move(__rhs);\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, const _CharT* __rhs)\n{\n    return _VSTD::move(__lhs.append(__rhs));\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_string<_CharT, _Traits, _Allocator>\noperator+(basic_string<_CharT, _Traits, _Allocator>&& __lhs, _CharT __rhs)\n{\n    __lhs.push_back(__rhs);\n    return _VSTD::move(__lhs);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n// swap\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(basic_string<_CharT, _Traits, _Allocator>& __lhs,\n     basic_string<_CharT, _Traits, _Allocator>& __rhs)\n     _NOEXCEPT_(_NOEXCEPT_(__lhs.swap(__rhs)))\n{\n    __lhs.swap(__rhs);\n}\n\n#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS\n\ntypedef basic_string<char16_t> u16string;\ntypedef basic_string<char32_t> u32string;\n\n#endif  // _LIBCPP_HAS_NO_UNICODE_CHARS\n\n_LIBCPP_FUNC_VIS int                stoi  (const string& __str, size_t* __idx = 0, int __base = 10);\n_LIBCPP_FUNC_VIS long               stol  (const string& __str, size_t* __idx = 0, int __base = 10);\n_LIBCPP_FUNC_VIS unsigned long      stoul (const string& __str, size_t* __idx = 0, int __base = 10);\n_LIBCPP_FUNC_VIS long long          stoll (const string& __str, size_t* __idx = 0, int __base = 10);\n_LIBCPP_FUNC_VIS unsigned long long stoull(const string& __str, size_t* __idx = 0, int __base = 10);\n\n_LIBCPP_FUNC_VIS float       stof (const string& __str, size_t* __idx = 0);\n_LIBCPP_FUNC_VIS double      stod (const string& __str, size_t* __idx = 0);\n_LIBCPP_FUNC_VIS long double stold(const string& __str, size_t* __idx = 0);\n\n_LIBCPP_FUNC_VIS string to_string(int __val);\n_LIBCPP_FUNC_VIS string to_string(unsigned __val);\n_LIBCPP_FUNC_VIS string to_string(long __val);\n_LIBCPP_FUNC_VIS string to_string(unsigned long __val);\n_LIBCPP_FUNC_VIS string to_string(long long __val);\n_LIBCPP_FUNC_VIS string to_string(unsigned long long __val);\n_LIBCPP_FUNC_VIS string to_string(float __val);\n_LIBCPP_FUNC_VIS string to_string(double __val);\n_LIBCPP_FUNC_VIS string to_string(long double __val);\n\n_LIBCPP_FUNC_VIS int                stoi  (const wstring& __str, size_t* __idx = 0, int __base = 10);\n_LIBCPP_FUNC_VIS long               stol  (const wstring& __str, size_t* __idx = 0, int __base = 10);\n_LIBCPP_FUNC_VIS unsigned long      stoul (const wstring& __str, size_t* __idx = 0, int __base = 10);\n_LIBCPP_FUNC_VIS long long          stoll (const wstring& __str, size_t* __idx = 0, int __base = 10);\n_LIBCPP_FUNC_VIS unsigned long long stoull(const wstring& __str, size_t* __idx = 0, int __base = 10);\n\n_LIBCPP_FUNC_VIS float       stof (const wstring& __str, size_t* __idx = 0);\n_LIBCPP_FUNC_VIS double      stod (const wstring& __str, size_t* __idx = 0);\n_LIBCPP_FUNC_VIS long double stold(const wstring& __str, size_t* __idx = 0);\n\n_LIBCPP_FUNC_VIS wstring to_wstring(int __val);\n_LIBCPP_FUNC_VIS wstring to_wstring(unsigned __val);\n_LIBCPP_FUNC_VIS wstring to_wstring(long __val);\n_LIBCPP_FUNC_VIS wstring to_wstring(unsigned long __val);\n_LIBCPP_FUNC_VIS wstring to_wstring(long long __val);\n_LIBCPP_FUNC_VIS wstring to_wstring(unsigned long long __val);\n_LIBCPP_FUNC_VIS wstring to_wstring(float __val);\n_LIBCPP_FUNC_VIS wstring to_wstring(double __val);\n_LIBCPP_FUNC_VIS wstring to_wstring(long double __val);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\n    const typename basic_string<_CharT, _Traits, _Allocator>::size_type\n                   basic_string<_CharT, _Traits, _Allocator>::npos;\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nstruct _LIBCPP_TEMPLATE_VIS hash<basic_string<_CharT, _Traits, _Allocator> >\n    : public unary_function<basic_string<_CharT, _Traits, _Allocator>, size_t>\n{\n    size_t\n        operator()(const basic_string<_CharT, _Traits, _Allocator>& __val) const _NOEXCEPT;\n};\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nsize_t\nhash<basic_string<_CharT, _Traits, _Allocator> >::operator()(\n        const basic_string<_CharT, _Traits, _Allocator>& __val) const _NOEXCEPT\n{\n    return __do_string_hash(__val.data(), __val.data() + __val.size());\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_ostream<_CharT, _Traits>&\noperator<<(basic_ostream<_CharT, _Traits>& __os,\n           const basic_string<_CharT, _Traits, _Allocator>& __str);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_istream<_CharT, _Traits>&\noperator>>(basic_istream<_CharT, _Traits>& __is,\n           basic_string<_CharT, _Traits, _Allocator>& __str);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbasic_istream<_CharT, _Traits>&\ngetline(basic_istream<_CharT, _Traits>& __is,\n        basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>&\ngetline(basic_istream<_CharT, _Traits>& __is,\n        basic_string<_CharT, _Traits, _Allocator>& __str);\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>&\ngetline(basic_istream<_CharT, _Traits>&& __is,\n        basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm);\n\ntemplate<class _CharT, class _Traits, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbasic_istream<_CharT, _Traits>&\ngetline(basic_istream<_CharT, _Traits>&& __is,\n        basic_string<_CharT, _Traits, _Allocator>& __str);\n\n#endif  // _LIBCPP_CXX03_LANG\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbool\nbasic_string<_CharT, _Traits, _Allocator>::__dereferenceable(const const_iterator* __i) const\n{\n    return this->data() <= _VSTD::__to_raw_pointer(__i->base()) &&\n           _VSTD::__to_raw_pointer(__i->base()) < this->data() + this->size();\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbool\nbasic_string<_CharT, _Traits, _Allocator>::__decrementable(const const_iterator* __i) const\n{\n    return this->data() < _VSTD::__to_raw_pointer(__i->base()) &&\n           _VSTD::__to_raw_pointer(__i->base()) <= this->data() + this->size();\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbool\nbasic_string<_CharT, _Traits, _Allocator>::__addable(const const_iterator* __i, ptrdiff_t __n) const\n{\n    const value_type* __p = _VSTD::__to_raw_pointer(__i->base()) + __n;\n    return this->data() <= __p && __p <= this->data() + this->size();\n}\n\ntemplate<class _CharT, class _Traits, class _Allocator>\nbool\nbasic_string<_CharT, _Traits, _Allocator>::__subscriptable(const const_iterator* __i, ptrdiff_t __n) const\n{\n    const value_type* __p = _VSTD::__to_raw_pointer(__i->base()) + __n;\n    return this->data() <= __p && __p < this->data() + this->size();\n}\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_string<char>)\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_string<wchar_t>)\n\n#if _LIBCPP_STD_VER > 11 \n// Literal suffixes for basic_string [basic.string.literals]\ninline namespace literals\n{\n  inline namespace string_literals\n  {\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_string<char> operator \"\" s( const char *__str, size_t __len )\n    {\n        return basic_string<char> (__str, __len);\n    }\n\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_string<wchar_t> operator \"\" s( const wchar_t *__str, size_t __len )\n    {\n        return basic_string<wchar_t> (__str, __len);\n    }\n\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_string<char16_t> operator \"\" s( const char16_t *__str, size_t __len )\n    {\n        return basic_string<char16_t> (__str, __len);\n    }\n\n    inline _LIBCPP_INLINE_VISIBILITY\n    basic_string<char32_t> operator \"\" s( const char32_t *__str, size_t __len )\n    {\n        return basic_string<char32_t> (__str, __len);\n    }\n  }\n}\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_STRING\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string.h",
    "content": "// -*- C++ -*-\n//===--------------------------- string.h ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_STRING_H\n#define _LIBCPP_STRING_H\n\n/*\n    string.h synopsis\n\nMacros:\n\n    NULL\n\nTypes:\n\n    size_t\n\nvoid* memcpy(void* restrict s1, const void* restrict s2, size_t n);\nvoid* memmove(void* s1, const void* s2, size_t n);\nchar* strcpy (char* restrict s1, const char* restrict s2);\nchar* strncpy(char* restrict s1, const char* restrict s2, size_t n);\nchar* strcat (char* restrict s1, const char* restrict s2);\nchar* strncat(char* restrict s1, const char* restrict s2, size_t n);\nint memcmp(const void* s1, const void* s2, size_t n);\nint strcmp (const char* s1, const char* s2);\nint strncmp(const char* s1, const char* s2, size_t n);\nint strcoll(const char* s1, const char* s2);\nsize_t strxfrm(char* restrict s1, const char* restrict s2, size_t n);\nconst void* memchr(const void* s, int c, size_t n);\n      void* memchr(      void* s, int c, size_t n);\nconst char* strchr(const char* s, int c);\n      char* strchr(      char* s, int c);\nsize_t strcspn(const char* s1, const char* s2);\nconst char* strpbrk(const char* s1, const char* s2);\n      char* strpbrk(      char* s1, const char* s2);\nconst char* strrchr(const char* s, int c);\n      char* strrchr(      char* s, int c);\nsize_t strspn(const char* s1, const char* s2);\nconst char* strstr(const char* s1, const char* s2);\n      char* strstr(      char* s1, const char* s2);\nchar* strtok(char* restrict s1, const char* restrict s2);\nvoid* memset(void* s, int c, size_t n);\nchar* strerror(int errnum);\nsize_t strlen(const char* s);\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <string.h>\n\n// MSVCRT, GNU libc and its derivates may already have the correct prototype in\n// <string.h>. This macro can be defined by users if their C library provides\n// the right signature.\n#if defined(__CORRECT_ISO_CPP_STRING_H_PROTO) || defined(_LIBCPP_MSVCRT) || \\\n    defined(__sun__) || defined(_STRING_H_CPLUSPLUS_98_CONFORMANCE_)\n#define _LIBCPP_STRING_H_HAS_CONST_OVERLOADS\n#endif\n\n#if defined(__cplusplus) && !defined(_LIBCPP_STRING_H_HAS_CONST_OVERLOADS) && defined(_LIBCPP_PREFERRED_OVERLOAD)\nextern \"C++\" {\ninline _LIBCPP_INLINE_VISIBILITY\nchar* __libcpp_strchr(const char* __s, int __c) {return (char*)strchr(__s, __c);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst char* strchr(const char* __s, int __c) {return __libcpp_strchr(__s, __c);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      char* strchr(      char* __s, int __c) {return __libcpp_strchr(__s, __c);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nchar* __libcpp_strpbrk(const char* __s1, const char* __s2) {return (char*)strpbrk(__s1, __s2);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst char* strpbrk(const char* __s1, const char* __s2) {return __libcpp_strpbrk(__s1, __s2);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      char* strpbrk(      char* __s1, const char* __s2) {return __libcpp_strpbrk(__s1, __s2);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nchar* __libcpp_strrchr(const char* __s, int __c) {return (char*)strrchr(__s, __c);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst char* strrchr(const char* __s, int __c) {return __libcpp_strrchr(__s, __c);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      char* strrchr(      char* __s, int __c) {return __libcpp_strrchr(__s, __c);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid* __libcpp_memchr(const void* __s, int __c, size_t __n) {return (void*)memchr(__s, __c, __n);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst void* memchr(const void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      void* memchr(      void* __s, int __c, size_t __n) {return __libcpp_memchr(__s, __c, __n);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nchar* __libcpp_strstr(const char* __s1, const char* __s2) {return (char*)strstr(__s1, __s2);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst char* strstr(const char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      char* strstr(      char* __s1, const char* __s2) {return __libcpp_strstr(__s1, __s2);}\n}\n#endif\n\n#endif  // _LIBCPP_STRING_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/string_view",
    "content": "// -*- C++ -*-\n//===------------------------ string_view ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_STRING_VIEW\n#define _LIBCPP_STRING_VIEW\n\n/*\nstring_view synopsis\n\nnamespace std {\n\n    // 7.2, Class template basic_string_view\n    template<class charT, class traits = char_traits<charT>>\n        class basic_string_view;\n\n    // 7.9, basic_string_view non-member comparison functions\n    template<class charT, class traits>\n    constexpr bool operator==(basic_string_view<charT, traits> x,\n                              basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator!=(basic_string_view<charT, traits> x,\n                              basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator< (basic_string_view<charT, traits> x,\n                                 basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator> (basic_string_view<charT, traits> x,\n                              basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator<=(basic_string_view<charT, traits> x,\n                                 basic_string_view<charT, traits> y) noexcept;\n    template<class charT, class traits>\n    constexpr bool operator>=(basic_string_view<charT, traits> x,\n                              basic_string_view<charT, traits> y) noexcept;\n    // see below, sufficient additional overloads of comparison functions\n\n    // 7.10, Inserters and extractors\n    template<class charT, class traits>\n      basic_ostream<charT, traits>&\n        operator<<(basic_ostream<charT, traits>& os,\n                   basic_string_view<charT, traits> str);\n\n    // basic_string_view typedef names\n    typedef basic_string_view<char> string_view;\n    typedef basic_string_view<char16_t> u16string_view;\n    typedef basic_string_view<char32_t> u32string_view;\n    typedef basic_string_view<wchar_t> wstring_view;\n\n    template<class charT, class traits = char_traits<charT>>\n    class basic_string_view {\n      public:\n      // types\n      typedef traits traits_type;\n      typedef charT value_type;\n      typedef charT* pointer;\n      typedef const charT* const_pointer;\n      typedef charT& reference;\n      typedef const charT& const_reference;\n      typedef implementation-defined const_iterator;\n      typedef const_iterator iterator;\n      typedef reverse_iterator<const_iterator> const_reverse_iterator;\n      typedef const_reverse_iterator reverse_iterator;\n      typedef size_t size_type;\n      typedef ptrdiff_t difference_type;\n      static constexpr size_type npos = size_type(-1);\n\n      // 7.3, basic_string_view constructors and assignment operators\n      constexpr basic_string_view() noexcept;\n      constexpr basic_string_view(const basic_string_view&) noexcept = default;\n      basic_string_view& operator=(const basic_string_view&) noexcept = default;\n      template<class Allocator>\n      constexpr basic_string_view(const charT* str);\n      constexpr basic_string_view(const charT* str, size_type len);\n\n      // 7.4, basic_string_view iterator support\n      constexpr const_iterator begin() const noexcept;\n      constexpr const_iterator end() const noexcept;\n      constexpr const_iterator cbegin() const noexcept;\n      constexpr const_iterator cend() const noexcept;\n      const_reverse_iterator rbegin() const noexcept;\n      const_reverse_iterator rend() const noexcept;\n      const_reverse_iterator crbegin() const noexcept;\n      const_reverse_iterator crend() const noexcept;\n\n      // 7.5, basic_string_view capacity\n      constexpr size_type size() const noexcept;\n      constexpr size_type length() const noexcept;\n      constexpr size_type max_size() const noexcept;\n      constexpr bool empty() const noexcept;\n\n      // 7.6, basic_string_view element access\n      constexpr const_reference operator[](size_type pos) const;\n      constexpr const_reference at(size_type pos) const;\n      constexpr const_reference front() const;\n      constexpr const_reference back() const;\n      constexpr const_pointer data() const noexcept;\n\n      // 7.7, basic_string_view modifiers\n      constexpr void remove_prefix(size_type n);\n      constexpr void remove_suffix(size_type n);\n      constexpr void swap(basic_string_view& s) noexcept;\n\n      size_type copy(charT* s, size_type n, size_type pos = 0) const;\n\n      constexpr basic_string_view substr(size_type pos = 0, size_type n = npos) const;\n      constexpr int compare(basic_string_view s) const noexcept;\n      constexpr int compare(size_type pos1, size_type n1, basic_string_view s) const;\n      constexpr int compare(size_type pos1, size_type n1,\n                            basic_string_view s, size_type pos2, size_type n2) const;\n      constexpr int compare(const charT* s) const;\n      constexpr int compare(size_type pos1, size_type n1, const charT* s) const;\n      constexpr int compare(size_type pos1, size_type n1,\n                            const charT* s, size_type n2) const;\n      constexpr size_type find(basic_string_view s, size_type pos = 0) const noexcept;\n      constexpr size_type find(charT c, size_type pos = 0) const noexcept;\n      constexpr size_type find(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find(const charT* s, size_type pos = 0) const;\n      constexpr size_type rfind(basic_string_view s, size_type pos = npos) const noexcept;\n      constexpr size_type rfind(charT c, size_type pos = npos) const noexcept;\n      constexpr size_type rfind(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type rfind(const charT* s, size_type pos = npos) const;\n      constexpr size_type find_first_of(basic_string_view s, size_type pos = 0) const noexcept;\n      constexpr size_type find_first_of(charT c, size_type pos = 0) const noexcept;\n      constexpr size_type find_first_of(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find_first_of(const charT* s, size_type pos = 0) const;\n      constexpr size_type find_last_of(basic_string_view s, size_type pos = npos) const noexcept;\n      constexpr size_type find_last_of(charT c, size_type pos = npos) const noexcept;\n      constexpr size_type find_last_of(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find_last_of(const charT* s, size_type pos = npos) const;\n      constexpr size_type find_first_not_of(basic_string_view s, size_type pos = 0) const noexcept;\n      constexpr size_type find_first_not_of(charT c, size_type pos = 0) const noexcept;\n      constexpr size_type find_first_not_of(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find_first_not_of(const charT* s, size_type pos = 0) const;\n      constexpr size_type find_last_not_of(basic_string_view s, size_type pos = npos) const noexcept;\n      constexpr size_type find_last_not_of(charT c, size_type pos = npos) const noexcept;\n      constexpr size_type find_last_not_of(const charT* s, size_type pos, size_type n) const;\n      constexpr size_type find_last_not_of(const charT* s, size_type pos = npos) const;\n\n     private:\n      const_pointer data_;  // exposition only\n      size_type     size_;  // exposition only\n    };\n\n  // 7.11, Hash support\n  template <class T> struct hash;\n  template <> struct hash<string_view>;\n  template <> struct hash<u16string_view>;\n  template <> struct hash<u32string_view>;\n  template <> struct hash<wstring_view>;\n\n  constexpr basic_string<char>     operator \"\" s( const char *str,     size_t len ); // C++17\n  constexpr basic_string<wchar_t>  operator \"\" s( const wchar_t *str,  size_t len ); // C++17\n  constexpr basic_string<char16_t> operator \"\" s( const char16_t *str, size_t len ); // C++17\n  constexpr basic_string<char32_t> operator \"\" s( const char32_t *str, size_t len ); // C++17\n\n}  // namespace std\n\n\n*/\n\n#include <__config>\n#include <__string>\n#include <algorithm>\n#include <iterator>\n#include <limits>\n#include <stdexcept>\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate<class _CharT, class _Traits = char_traits<_CharT> >\nclass _LIBCPP_TEMPLATE_VIS basic_string_view {\npublic:\n\t// types\n\ttypedef _Traits                                    traits_type;\n\ttypedef _CharT                                     value_type;\n\ttypedef const _CharT*                              pointer;\n\ttypedef const _CharT*                              const_pointer;\n\ttypedef const _CharT&                              reference;\n\ttypedef const _CharT&                              const_reference;\n\ttypedef const_pointer                              const_iterator; // See [string.view.iterators]\n\ttypedef const_iterator                             iterator;\n\ttypedef _VSTD::reverse_iterator<const_iterator>    const_reverse_iterator;\n\ttypedef const_reverse_iterator                     reverse_iterator;\n\ttypedef size_t                                     size_type;\n\ttypedef ptrdiff_t                                  difference_type;\n\tstatic _LIBCPP_CONSTEXPR const size_type npos = -1; // size_type(-1);\n\n    static_assert(is_pod<value_type>::value, \"Character type of basic_string_view must be a POD\");\n    static_assert((is_same<_CharT, typename traits_type::char_type>::value),\n                  \"traits_type::char_type must be the same type as CharT\");\n\n\t// [string.view.cons], construct/copy\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tbasic_string_view() _NOEXCEPT : __data (nullptr), __size(0) {}\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tbasic_string_view(const basic_string_view&) _NOEXCEPT = default;\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tbasic_string_view& operator=(const basic_string_view&) _NOEXCEPT = default;\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tbasic_string_view(const _CharT* __s, size_type __len)\n\t\t: __data(__s), __size(__len)\n\t{\n// #if _LIBCPP_STD_VER > 11\n//         _LIBCPP_ASSERT(__len == 0 || __s != nullptr, \"string_view::string_view(_CharT *, size_t): received nullptr\");\n// #endif\n\t}\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tbasic_string_view(const _CharT* __s)\n\t\t: __data(__s), __size(_Traits::length(__s)) {}\n\n\t// [string.view.iterators], iterators\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_iterator begin()  const _NOEXCEPT { return cbegin(); }\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_iterator end()    const _NOEXCEPT { return cend(); }\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_iterator cbegin() const _NOEXCEPT { return __data; }\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_iterator cend()   const _NOEXCEPT { return __data + __size; }\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX14 _LIBCPP_INLINE_VISIBILITY\n\tconst_reverse_iterator rbegin()   const _NOEXCEPT { return const_reverse_iterator(cend()); }\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX14 _LIBCPP_INLINE_VISIBILITY\n\tconst_reverse_iterator rend()     const _NOEXCEPT { return const_reverse_iterator(cbegin()); }\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX14 _LIBCPP_INLINE_VISIBILITY\n\tconst_reverse_iterator crbegin()  const _NOEXCEPT { return const_reverse_iterator(cend()); }\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX14 _LIBCPP_INLINE_VISIBILITY\n\tconst_reverse_iterator crend()    const _NOEXCEPT { return const_reverse_iterator(cbegin()); }\n\n\t// [string.view.capacity], capacity\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tsize_type size()     const _NOEXCEPT { return __size; }\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tsize_type length()   const _NOEXCEPT { return __size; }\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tsize_type max_size() const _NOEXCEPT { return numeric_limits<size_type>::max(); }\n\n\t_LIBCPP_CONSTEXPR bool _LIBCPP_INLINE_VISIBILITY\n\tempty()         const _NOEXCEPT { return __size == 0; }\n\n\t// [string.view.access], element access\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_reference operator[](size_type __pos) const _NOEXCEPT { return __data[__pos]; }\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_reference at(size_type __pos) const\n\t{\n\t\treturn __pos >= size()\n\t\t\t? (__throw_out_of_range(\"string_view::at\"), __data[0])\n\t\t\t: __data[__pos];\n\t}\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_reference front() const\n\t{\n\t\treturn _LIBCPP_ASSERT(!empty(), \"string_view::front(): string is empty\"), __data[0];\n\t}\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_reference back() const\n\t{\n\t\treturn _LIBCPP_ASSERT(!empty(), \"string_view::back(): string is empty\"), __data[__size-1];\n\t}\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tconst_pointer data() const _NOEXCEPT { return __data; }\n\n\t// [string.view.modifiers], modifiers:\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tvoid remove_prefix(size_type __n) _NOEXCEPT\n\t{\n\t\t_LIBCPP_ASSERT(__n <= size(), \"remove_prefix() can't remove more than size()\");\n\t\t__data += __n;\n\t\t__size -= __n;\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tvoid remove_suffix(size_type __n) _NOEXCEPT\n\t{\n\t\t_LIBCPP_ASSERT(__n <= size(), \"remove_suffix() can't remove more than size()\");\n\t\t__size -= __n;\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tvoid swap(basic_string_view& __other) _NOEXCEPT\n\t{\n\t\tconst value_type *__p = __data;\n\t\t__data = __other.__data;\n\t\t__other.__data = __p;\n\n\t\tsize_type __sz = __size;\n\t\t__size = __other.__size;\n\t\t__other.__size = __sz;\n\t}\n\n\t_LIBCPP_INLINE_VISIBILITY\n\tsize_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const\n\t{\n\t\tif (__pos > size())\n\t\t\t__throw_out_of_range(\"string_view::copy\");\n\t\tsize_type __rlen = _VSTD::min(__n, size() - __pos);\n\t\t_Traits::copy(__s, data() + __pos, __rlen);\n\t\treturn __rlen;\n\t}\n\n\t_LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n\tbasic_string_view substr(size_type __pos = 0, size_type __n = npos) const\n\t{\n\t\treturn __pos > size()\n\t\t\t? (__throw_out_of_range(\"string_view::substr\"), basic_string_view())\n\t\t\t: basic_string_view(data() + __pos, _VSTD::min(__n, size() - __pos));\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 int compare(basic_string_view __sv) const _NOEXCEPT\n\t{\n\t\tsize_type __rlen = _VSTD::min( size(), __sv.size());\n\t\tint __retval = _Traits::compare(data(), __sv.data(), __rlen);\n\t\tif ( __retval == 0 ) // first __rlen chars matched\n\t\t\t__retval = size() == __sv.size() ? 0 : ( size() < __sv.size() ? -1 : 1 );\n\t\treturn __retval;\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tint compare(size_type __pos1, size_type __n1, basic_string_view __sv) const\n\t{\n\t\treturn substr(__pos1, __n1).compare(__sv);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tint compare(                       size_type __pos1, size_type __n1, \n\t\t\t\tbasic_string_view __sv, size_type __pos2, size_type __n2) const\n\t{\n\t\treturn substr(__pos1, __n1).compare(__sv.substr(__pos2, __n2));\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tint compare(const _CharT* __s) const _NOEXCEPT\n\t{\n\t\treturn compare(basic_string_view(__s));\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tint compare(size_type __pos1, size_type __n1, const _CharT* __s) const\n\t{\n\t\treturn substr(__pos1, __n1).compare(basic_string_view(__s));\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tint compare(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2) const\n\t{\n\t\treturn substr(__pos1, __n1).compare(basic_string_view(__s, __n2));\n\t}\n\n\t// find\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT\n\t{\n\t\t_LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find(): received nullptr\");\n\t\treturn __str_find<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s.data(), __pos, __s.size());\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find(_CharT __c, size_type __pos = 0) const _NOEXCEPT\n\t{\n\t\treturn __str_find<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __c, __pos);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find(const _CharT* __s, size_type __pos, size_type __n) const\n\t{\n\t\t_LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find(): received nullptr\");\n\t\treturn __str_find<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, __n);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find(const _CharT* __s, size_type __pos = 0) const\n\t{\n\t\t_LIBCPP_ASSERT(__s != nullptr, \"string_view::find(): received nullptr\");\n\t\treturn __str_find<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, traits_type::length(__s));\n\t}\n\n\t// rfind\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type rfind(basic_string_view __s, size_type __pos = npos) const _NOEXCEPT\n\t{\n\t\t_LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find(): received nullptr\");\n\t\treturn __str_rfind<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s.data(), __pos, __s.size());\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type rfind(_CharT __c, size_type __pos = npos) const _NOEXCEPT\n\t{\n\t\treturn __str_rfind<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __c, __pos);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type rfind(const _CharT* __s, size_type __pos, size_type __n) const\n\t{\n\t\t_LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::rfind(): received nullptr\");\n\t\treturn __str_rfind<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, __n);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type rfind(const _CharT* __s, size_type __pos=npos) const\n\t{\n\t\t_LIBCPP_ASSERT(__s != nullptr, \"string_view::rfind(): received nullptr\");\n\t\treturn __str_rfind<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, traits_type::length(__s));\n\t}\n\n\t// find_first_of\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_first_of(basic_string_view __s, size_type __pos = 0) const _NOEXCEPT\n\t{\n\t\t_LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find_first_of(): received nullptr\");\n\t\treturn __str_find_first_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s.data(), __pos, __s.size());\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_first_of(_CharT __c, size_type __pos = 0) const _NOEXCEPT\n\t{ return find(__c, __pos); }\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const\n\t{\n\t\t_LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find_first_of(): received nullptr\");\n\t\treturn __str_find_first_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, __n);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_first_of(const _CharT* __s, size_type __pos=0) const\n\t{\n\t\t_LIBCPP_ASSERT(__s != nullptr, \"string_view::find_first_of(): received nullptr\");\n\t\treturn __str_find_first_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, traits_type::length(__s));\n\t}\n\n\t// find_last_of\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_last_of(basic_string_view __s, size_type __pos=npos) const _NOEXCEPT\n\t{\n\t\t_LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find_last_of(): received nullptr\");\n\t\treturn __str_find_last_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s.data(), __pos, __s.size());\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_last_of(_CharT __c, size_type __pos = npos) const _NOEXCEPT\n\t{ return rfind(__c, __pos); }\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const\n\t{\n\t\t_LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find_last_of(): received nullptr\");\n\t\treturn __str_find_last_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, __n);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_last_of(const _CharT* __s, size_type __pos=npos) const\n\t{\n\t\t_LIBCPP_ASSERT(__s != nullptr, \"string_view::find_last_of(): received nullptr\");\n\t\treturn __str_find_last_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, traits_type::length(__s));\n\t}\n\n\t// find_first_not_of\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_first_not_of(basic_string_view __s, size_type __pos=0) const _NOEXCEPT\n\t{\n\t\t_LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find_first_not_of(): received nullptr\");\n\t\treturn __str_find_first_not_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s.data(), __pos, __s.size());\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_first_not_of(_CharT __c, size_type __pos=0) const _NOEXCEPT\n\t{\n\t\treturn __str_find_first_not_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __c, __pos);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const\n\t{\n\t\t_LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find_first_not_of(): received nullptr\");\n\t\treturn __str_find_first_not_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, __n);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_first_not_of(const _CharT* __s, size_type __pos=0) const\n\t{\n\t\t_LIBCPP_ASSERT(__s != nullptr, \"string_view::find_first_not_of(): received nullptr\");\n\t\treturn __str_find_first_not_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, traits_type::length(__s));\n\t}\n\n\t// find_last_not_of\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_last_not_of(basic_string_view __s, size_type __pos=npos) const _NOEXCEPT\n\t{\n\t\t_LIBCPP_ASSERT(__s.size() == 0 || __s.data() != nullptr, \"string_view::find_last_not_of(): received nullptr\");\n\t\treturn __str_find_last_not_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s.data(), __pos, __s.size());\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_last_not_of(_CharT __c, size_type __pos=npos) const _NOEXCEPT\n\t{\n\t\treturn __str_find_last_not_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __c, __pos);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const\n\t{\n\t\t_LIBCPP_ASSERT(__n == 0 || __s != nullptr, \"string_view::find_last_not_of(): received nullptr\");\n\t\treturn __str_find_last_not_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, __n);\n\t}\n\n\t_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n\tsize_type find_last_not_of(const _CharT* __s, size_type __pos=npos) const\n\t{\n\t\t_LIBCPP_ASSERT(__s != nullptr, \"string_view::find_last_not_of(): received nullptr\");\n\t\treturn __str_find_last_not_of<value_type, size_type, traits_type, npos>\n\t\t\t(data(), size(), __s, __pos, traits_type::length(__s));\n\t}\n\nprivate:\n\tconst   value_type* __data;\n\tsize_type           __size;\n};\n\n\n// [string.view.comparison]\n// operator ==\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator==(basic_string_view<_CharT, _Traits> __lhs,\n\t\t\t\tbasic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\tif ( __lhs.size() != __rhs.size()) return false;\n\treturn __lhs.compare(__rhs) == 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator==(basic_string_view<_CharT, _Traits> __lhs,\n\t\t\t\ttypename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n{\n\tif ( __lhs.size() != __rhs.size()) return false;\n\treturn __lhs.compare(__rhs) == 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator==(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n\t\t\t\tbasic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\tif ( __lhs.size() != __rhs.size()) return false;\n\treturn __lhs.compare(__rhs) == 0;\n}\n\n\n// operator !=\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator!=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\tif ( __lhs.size() != __rhs.size())\n\t\treturn true;\n\treturn __lhs.compare(__rhs) != 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator!=(basic_string_view<_CharT, _Traits> __lhs,\n\t\t\t\ttypename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n{\n\tif ( __lhs.size() != __rhs.size())\n\t\treturn true;\n\treturn __lhs.compare(__rhs) != 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator!=(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n\t\t\t\tbasic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\tif ( __lhs.size() != __rhs.size())\n\t\treturn true;\n\treturn __lhs.compare(__rhs) != 0;\n}\n\n\n// operator <\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator<(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) < 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator<(basic_string_view<_CharT, _Traits> __lhs,\n\t\t\t\ttypename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) < 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator<(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n\t\t\t\tbasic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) < 0;\n}\n\n\n// operator >\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator> (basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) > 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator>(basic_string_view<_CharT, _Traits> __lhs,\n\t\t\t\ttypename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) > 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator>(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n\t\t\t\tbasic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) > 0;\n}\n\n\n// operator <=\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator<=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) <= 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator<=(basic_string_view<_CharT, _Traits> __lhs,\n\t\t\t\ttypename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) <= 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator<=(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n\t\t\t\tbasic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) <= 0;\n}\n\n\n// operator >=\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator>=(basic_string_view<_CharT, _Traits> __lhs, basic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) >= 0;\n}\n\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator>=(basic_string_view<_CharT, _Traits> __lhs,\n\t\t\t\ttypename common_type<basic_string_view<_CharT, _Traits> >::type __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) >= 0;\n}\n\ntemplate<class _CharT, class _Traits>\n_LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\nbool operator>=(typename common_type<basic_string_view<_CharT, _Traits> >::type __lhs, \n\t\t\t\tbasic_string_view<_CharT, _Traits> __rhs) _NOEXCEPT\n{\n\treturn __lhs.compare(__rhs) >= 0;\n}\n\ntypedef basic_string_view<char>     string_view;\ntypedef basic_string_view<char16_t> u16string_view;\ntypedef basic_string_view<char32_t> u32string_view;\ntypedef basic_string_view<wchar_t>  wstring_view;\n\n// [string.view.hash]\ntemplate<class _CharT, class _Traits>\nstruct _LIBCPP_TEMPLATE_VIS hash<basic_string_view<_CharT, _Traits> >\n    : public unary_function<basic_string_view<_CharT, _Traits>, size_t>\n{\n    size_t operator()(const basic_string_view<_CharT, _Traits> __val) const _NOEXCEPT;\n};\n\ntemplate<class _CharT, class _Traits>\nsize_t\nhash<basic_string_view<_CharT, _Traits> >::operator()(\n        const basic_string_view<_CharT, _Traits> __val) const _NOEXCEPT\n{\n    return __do_string_hash(__val.data(), __val.data() + __val.size());\n}\n\n\n#if _LIBCPP_STD_VER > 11 \ninline namespace literals\n{\n  inline namespace string_view_literals\n  {\n    inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    basic_string_view<char> operator \"\" sv(const char *__str, size_t __len)\n    {\n        return basic_string_view<char> (__str, __len);\n    }\n\n    inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    basic_string_view<wchar_t> operator \"\" sv(const wchar_t *__str, size_t __len)\n    {\n        return basic_string_view<wchar_t> (__str, __len);\n    }\n\n    inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    basic_string_view<char16_t> operator \"\" sv(const char16_t *__str, size_t __len)\n    {\n        return basic_string_view<char16_t> (__str, __len);\n    }\n\n    inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    basic_string_view<char32_t> operator \"\" sv(const char32_t *__str, size_t __len)\n    {\n        return basic_string_view<char32_t> (__str, __len);\n    }\n  }\n}\n#endif\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif // _LIBCPP_STRING_VIEW\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/strstream",
    "content": "// -*- C++ -*-\n//===--------------------------- strstream --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_STRSTREAM\n#define _LIBCPP_STRSTREAM\n\n/*\n    strstream synopsis\n\nclass strstreambuf\n    : public basic_streambuf<char>\n{\npublic:\n    explicit strstreambuf(streamsize alsize_arg = 0);\n    strstreambuf(void* (*palloc_arg)(size_t), void (*pfree_arg)(void*));\n    strstreambuf(char* gnext_arg, streamsize n, char* pbeg_arg = 0);\n    strstreambuf(const char* gnext_arg, streamsize n);\n\n    strstreambuf(signed char* gnext_arg, streamsize n, signed char* pbeg_arg = 0);\n    strstreambuf(const signed char* gnext_arg, streamsize n);\n    strstreambuf(unsigned char* gnext_arg, streamsize n, unsigned char* pbeg_arg = 0);\n    strstreambuf(const unsigned char* gnext_arg, streamsize n);\n\n    strstreambuf(strstreambuf&& rhs);\n    strstreambuf& operator=(strstreambuf&& rhs);\n\n    virtual ~strstreambuf();\n\n    void swap(strstreambuf& rhs);\n\n    void freeze(bool freezefl = true);\n    char* str();\n    int pcount() const;\n\nprotected:\n    virtual int_type overflow (int_type c = EOF);\n    virtual int_type pbackfail(int_type c = EOF);\n    virtual int_type underflow();\n    virtual pos_type seekoff(off_type off, ios_base::seekdir way,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n    virtual pos_type seekpos(pos_type sp,\n                             ios_base::openmode which = ios_base::in | ios_base::out);\n    virtual streambuf* setbuf(char* s, streamsize n);\n\nprivate:\n    typedef T1 strstate;                // exposition only\n    static const strstate allocated;    // exposition only\n    static const strstate constant;     // exposition only\n    static const strstate dynamic;      // exposition only\n    static const strstate frozen;       // exposition only\n    strstate strmode;                   // exposition only\n    streamsize alsize;                  // exposition only\n    void* (*palloc)(size_t);            // exposition only\n    void (*pfree)(void*);               // exposition only\n};\n\nclass istrstream\n    : public basic_istream<char>\n{\npublic:\n    explicit istrstream(const char* s);\n    explicit istrstream(char* s);\n    istrstream(const char* s, streamsize n);\n    istrstream(char* s, streamsize n);\n\n    virtual ~istrstream();\n\n    strstreambuf* rdbuf() const;\n    char *str();\n\nprivate:\n    strstreambuf sb; // exposition only\n};\n\nclass ostrstream\n    : public basic_ostream<char>\n{\npublic:\n    ostrstream();\n    ostrstream(char* s, int n, ios_base::openmode mode = ios_base::out);\n\n    virtual ~ostrstream();\n\n    strstreambuf* rdbuf() const;\n    void freeze(bool freezefl = true);\n    char* str();\n    int pcount() const;\n\nprivate:\n    strstreambuf sb; // exposition only\n};\n\nclass strstream\n    : public basic_iostream<char>\n{\npublic:\n    // Types\n    typedef char                        char_type;\n    typedef char_traits<char>::int_type int_type;\n    typedef char_traits<char>::pos_type pos_type;\n    typedef char_traits<char>::off_type off_type;\n\n    // constructors/destructor\n    strstream();\n    strstream(char* s, int n, ios_base::openmode mode = ios_base::in | ios_base::out);\n\n    virtual ~strstream();\n\n    // Members:\n    strstreambuf* rdbuf() const;\n    void freeze(bool freezefl = true);\n    int pcount() const;\n    char* str();\n\nprivate:\n    strstreambuf sb; // exposition only\n};\n\n}  // std\n\n*/\n\n#include <__config>\n#include <ostream>\n#include <istream>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nclass _LIBCPP_TYPE_VIS strstreambuf\n    : public streambuf\n{\npublic:\n    explicit strstreambuf(streamsize __alsize = 0);\n    strstreambuf(void* (*__palloc)(size_t), void (*__pfree)(void*));\n    strstreambuf(char* __gnext, streamsize __n, char* __pbeg = 0);\n    strstreambuf(const char* __gnext, streamsize __n);\n\n    strstreambuf(signed char* __gnext, streamsize __n, signed char* __pbeg = 0);\n    strstreambuf(const signed char* __gnext, streamsize __n);\n    strstreambuf(unsigned char* __gnext, streamsize __n, unsigned char* __pbeg = 0);\n    strstreambuf(const unsigned char* __gnext, streamsize __n);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    strstreambuf(strstreambuf&& __rhs);\n    _LIBCPP_INLINE_VISIBILITY\n    strstreambuf& operator=(strstreambuf&& __rhs);\n#endif  // _LIBCPP_CXX03_LANG\n\n    virtual ~strstreambuf();\n\n    void swap(strstreambuf& __rhs);\n\n    void freeze(bool __freezefl = true);\n    char* str();\n    int pcount() const;\n\nprotected:\n    virtual int_type overflow (int_type __c = EOF);\n    virtual int_type pbackfail(int_type __c = EOF);\n    virtual int_type underflow();\n    virtual pos_type seekoff(off_type __off, ios_base::seekdir __way,\n                             ios_base::openmode __which = ios_base::in | ios_base::out);\n    virtual pos_type seekpos(pos_type __sp,\n                             ios_base::openmode __which = ios_base::in | ios_base::out);\n\nprivate:\n    typedef unsigned __mode_type;\n    static const __mode_type __allocated = 0x01;\n    static const __mode_type __constant  = 0x02;\n    static const __mode_type __dynamic   = 0x04;\n    static const __mode_type __frozen    = 0x08;\n    static const streamsize    __default_alsize = 4096;\n\n    __mode_type __strmode_;\n    streamsize __alsize_;\n    void* (*__palloc_)(size_t);\n    void (*__pfree_)(void*);\n\n    void __init(char* __gnext, streamsize __n, char* __pbeg);\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ninline _LIBCPP_INLINE_VISIBILITY\nstrstreambuf::strstreambuf(strstreambuf&& __rhs)\n    : streambuf(__rhs),\n      __strmode_(__rhs.__strmode_),\n      __alsize_(__rhs.__alsize_),\n      __palloc_(__rhs.__palloc_),\n      __pfree_(__rhs.__pfree_)\n{\n    __rhs.setg(nullptr, nullptr, nullptr);\n    __rhs.setp(nullptr, nullptr);\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nstrstreambuf&\nstrstreambuf::operator=(strstreambuf&& __rhs)\n{\n    if (eback() && (__strmode_ & __allocated) != 0 && (__strmode_ & __frozen) == 0)\n    {\n        if (__pfree_)\n            __pfree_(eback());\n        else\n            delete [] eback();\n    }\n    streambuf::operator=(__rhs);\n    __strmode_ = __rhs.__strmode_;\n    __alsize_ = __rhs.__alsize_;\n    __palloc_ = __rhs.__palloc_;\n    __pfree_ = __rhs.__pfree_;\n    __rhs.setg(nullptr, nullptr, nullptr);\n    __rhs.setp(nullptr, nullptr);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\nclass _LIBCPP_TYPE_VIS istrstream\n    : public istream\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit istrstream(const char* __s)\n        : istream(&__sb_), __sb_(__s, 0) {}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit istrstream(char* __s)\n        : istream(&__sb_), __sb_(__s, 0) {}\n    _LIBCPP_INLINE_VISIBILITY\n    istrstream(const char* __s, streamsize __n)\n        : istream(&__sb_), __sb_(__s, __n) {}\n    _LIBCPP_INLINE_VISIBILITY\n    istrstream(char* __s, streamsize __n)\n        : istream(&__sb_), __sb_(__s, __n) {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    istrstream(istrstream&& __rhs)\n        : istream(_VSTD::move(__rhs)),\n          __sb_(_VSTD::move(__rhs.__sb_))\n    {\n        istream::set_rdbuf(&__sb_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    istrstream& operator=(istrstream&& __rhs)\n    {\n        istream::operator=(_VSTD::move(__rhs));\n        __sb_ = _VSTD::move(__rhs.__sb_);\n        return *this;\n    }\n#endif  // _LIBCPP_CXX03_LANG\n\n    virtual ~istrstream();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(istrstream& __rhs)\n    {\n        istream::swap(__rhs);\n        __sb_.swap(__rhs.__sb_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    strstreambuf* rdbuf() const {return const_cast<strstreambuf*>(&__sb_);}\n    _LIBCPP_INLINE_VISIBILITY\n    char *str() {return __sb_.str();}\n\nprivate:\n    strstreambuf __sb_;\n};\n\nclass _LIBCPP_TYPE_VIS ostrstream\n    : public ostream\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    ostrstream()\n        : ostream(&__sb_) {}\n    _LIBCPP_INLINE_VISIBILITY\n    ostrstream(char* __s, int __n, ios_base::openmode __mode = ios_base::out)\n        : ostream(&__sb_),\n          __sb_(__s, __n, __s + (__mode & ios::app ? strlen(__s) : 0))\n        {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    ostrstream(ostrstream&& __rhs)\n        : ostream(_VSTD::move(__rhs)),\n          __sb_(_VSTD::move(__rhs.__sb_))\n    {\n        ostream::set_rdbuf(&__sb_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    ostrstream& operator=(ostrstream&& __rhs)\n    {\n        ostream::operator=(_VSTD::move(__rhs));\n        __sb_ = _VSTD::move(__rhs.__sb_);\n        return *this;\n    }\n#endif  // _LIBCPP_CXX03_LANG\n\n    virtual ~ostrstream();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(ostrstream& __rhs)\n    {\n        ostream::swap(__rhs);\n        __sb_.swap(__rhs.__sb_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    strstreambuf* rdbuf() const {return const_cast<strstreambuf*>(&__sb_);}\n    _LIBCPP_INLINE_VISIBILITY\n    void freeze(bool __freezefl = true) {__sb_.freeze(__freezefl);}\n    _LIBCPP_INLINE_VISIBILITY\n    char* str()         {return __sb_.str();}\n    _LIBCPP_INLINE_VISIBILITY\n    int pcount() const  {return __sb_.pcount();}\n\nprivate:\n    strstreambuf __sb_; // exposition only\n};\n\nclass _LIBCPP_TYPE_VIS strstream\n    : public iostream\n{\npublic:\n    // Types\n    typedef char                        char_type;\n    typedef char_traits<char>::int_type int_type;\n    typedef char_traits<char>::pos_type pos_type;\n    typedef char_traits<char>::off_type off_type;\n\n    // constructors/destructor\n    _LIBCPP_INLINE_VISIBILITY\n    strstream()\n        : iostream(&__sb_) {}\n    _LIBCPP_INLINE_VISIBILITY\n    strstream(char* __s, int __n, ios_base::openmode __mode = ios_base::in | ios_base::out)\n        : iostream(&__sb_),\n          __sb_(__s, __n, __s + (__mode & ios::app ? strlen(__s) : 0))\n        {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    strstream(strstream&& __rhs)\n        : iostream(_VSTD::move(__rhs)),\n          __sb_(_VSTD::move(__rhs.__sb_))\n    {\n        iostream::set_rdbuf(&__sb_);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    strstream& operator=(strstream&& __rhs)\n    {\n        iostream::operator=(_VSTD::move(__rhs));\n        __sb_ = _VSTD::move(__rhs.__sb_);\n        return *this;\n    }\n#endif  // _LIBCPP_CXX03_LANG\n\n    virtual ~strstream();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(strstream& __rhs)\n    {\n        iostream::swap(__rhs);\n        __sb_.swap(__rhs.__sb_);\n    }\n\n    // Members:\n    _LIBCPP_INLINE_VISIBILITY\n    strstreambuf* rdbuf() const {return const_cast<strstreambuf*>(&__sb_);}\n    _LIBCPP_INLINE_VISIBILITY\n    void freeze(bool __freezefl = true) {__sb_.freeze(__freezefl);}\n    _LIBCPP_INLINE_VISIBILITY\n    int pcount() const {return __sb_.pcount();}\n    _LIBCPP_INLINE_VISIBILITY\n    char* str()        {return __sb_.str();}\n\nprivate:\n    strstreambuf __sb_; // exposition only\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_STRSTREAM\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/system_error",
    "content": "// -*- C++ -*-\n//===---------------------------- system_error ----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_SYSTEM_ERROR\n#define _LIBCPP_SYSTEM_ERROR\n\n/*\n    system_error synopsis\n\nnamespace std\n{\n\nclass error_category\n{\npublic:\n    virtual ~error_category() noexcept;\n\n    constexpr error_category();\n    error_category(const error_category&) = delete;\n    error_category& operator=(const error_category&) = delete;\n\n    virtual const char* name() const noexcept = 0;\n    virtual error_condition default_error_condition(int ev) const noexcept;\n    virtual bool equivalent(int code, const error_condition& condition) const noexcept;\n    virtual bool equivalent(const error_code& code, int condition) const noexcept;\n    virtual string message(int ev) const = 0;\n\n    bool operator==(const error_category& rhs) const noexcept;\n    bool operator!=(const error_category& rhs) const noexcept;\n    bool operator<(const error_category& rhs) const noexcept;\n};\n\nconst error_category& generic_category() noexcept;\nconst error_category& system_category() noexcept;\n\ntemplate <class T> struct is_error_code_enum\n    : public false_type {};\n\ntemplate <class T> struct is_error_condition_enum\n    : public false_type {};\n\ntemplate <class _Tp>\nconstexpr size_t is_error_condition_enum_v = is_error_condition_enum<_Tp>::value; // C++17\n\ntemplate <class _Tp>\nconstexpr size_t is_error_code_enum_v = is_error_code_enum<_Tp>::value; // C++17\n\nclass error_code\n{\npublic:\n    // constructors:\n    error_code() noexcept;\n    error_code(int val, const error_category& cat) noexcept;\n    template <class ErrorCodeEnum>\n        error_code(ErrorCodeEnum e) noexcept;\n\n    // modifiers:\n    void assign(int val, const error_category& cat) noexcept;\n    template <class ErrorCodeEnum>\n        error_code& operator=(ErrorCodeEnum e) noexcept;\n    void clear() noexcept;\n\n    // observers:\n    int value() const noexcept;\n    const error_category& category() const noexcept;\n    error_condition default_error_condition() const noexcept;\n    string message() const;\n    explicit operator bool() const noexcept;\n};\n\n// non-member functions:\nbool operator<(const error_code& lhs, const error_code& rhs) noexcept;\ntemplate <class charT, class traits>\n    basic_ostream<charT,traits>&\n    operator<<(basic_ostream<charT,traits>& os, const error_code& ec);\n\nclass error_condition\n{\npublic:\n    // constructors:\n    error_condition() noexcept;\n    error_condition(int val, const error_category& cat) noexcept;\n    template <class ErrorConditionEnum>\n        error_condition(ErrorConditionEnum e) noexcept;\n\n    // modifiers:\n    void assign(int val, const error_category& cat) noexcept;\n    template <class ErrorConditionEnum>\n        error_condition& operator=(ErrorConditionEnum e) noexcept;\n    void clear() noexcept;\n\n    // observers:\n    int value() const noexcept;\n    const error_category& category() const noexcept;\n    string message() const noexcept;\n    explicit operator bool() const noexcept;\n};\n\nbool operator<(const error_condition& lhs, const error_condition& rhs) noexcept;\n\nclass system_error\n    : public runtime_error\n{\npublic:\n    system_error(error_code ec, const string& what_arg);\n    system_error(error_code ec, const char* what_arg);\n    system_error(error_code ec);\n    system_error(int ev, const error_category& ecat, const string& what_arg);\n    system_error(int ev, const error_category& ecat, const char* what_arg);\n    system_error(int ev, const error_category& ecat);\n\n    const error_code& code() const noexcept;\n    const char* what() const noexcept;\n};\n\nenum class errc\n{\n    address_family_not_supported,       // EAFNOSUPPORT\n    address_in_use,                     // EADDRINUSE\n    address_not_available,              // EADDRNOTAVAIL\n    already_connected,                  // EISCONN\n    argument_list_too_long,             // E2BIG\n    argument_out_of_domain,             // EDOM\n    bad_address,                        // EFAULT\n    bad_file_descriptor,                // EBADF\n    bad_message,                        // EBADMSG\n    broken_pipe,                        // EPIPE\n    connection_aborted,                 // ECONNABORTED\n    connection_already_in_progress,     // EALREADY\n    connection_refused,                 // ECONNREFUSED\n    connection_reset,                   // ECONNRESET\n    cross_device_link,                  // EXDEV\n    destination_address_required,       // EDESTADDRREQ\n    device_or_resource_busy,            // EBUSY\n    directory_not_empty,                // ENOTEMPTY\n    executable_format_error,            // ENOEXEC\n    file_exists,                        // EEXIST\n    file_too_large,                     // EFBIG\n    filename_too_long,                  // ENAMETOOLONG\n    function_not_supported,             // ENOSYS\n    host_unreachable,                   // EHOSTUNREACH\n    identifier_removed,                 // EIDRM\n    illegal_byte_sequence,              // EILSEQ\n    inappropriate_io_control_operation, // ENOTTY\n    interrupted,                        // EINTR\n    invalid_argument,                   // EINVAL\n    invalid_seek,                       // ESPIPE\n    io_error,                           // EIO\n    is_a_directory,                     // EISDIR\n    message_size,                       // EMSGSIZE\n    network_down,                       // ENETDOWN\n    network_reset,                      // ENETRESET\n    network_unreachable,                // ENETUNREACH\n    no_buffer_space,                    // ENOBUFS\n    no_child_process,                   // ECHILD\n    no_link,                            // ENOLINK\n    no_lock_available,                  // ENOLCK\n    no_message_available,               // ENODATA\n    no_message,                         // ENOMSG\n    no_protocol_option,                 // ENOPROTOOPT\n    no_space_on_device,                 // ENOSPC\n    no_stream_resources,                // ENOSR\n    no_such_device_or_address,          // ENXIO\n    no_such_device,                     // ENODEV\n    no_such_file_or_directory,          // ENOENT\n    no_such_process,                    // ESRCH\n    not_a_directory,                    // ENOTDIR\n    not_a_socket,                       // ENOTSOCK\n    not_a_stream,                       // ENOSTR\n    not_connected,                      // ENOTCONN\n    not_enough_memory,                  // ENOMEM\n    not_supported,                      // ENOTSUP\n    operation_canceled,                 // ECANCELED\n    operation_in_progress,              // EINPROGRESS\n    operation_not_permitted,            // EPERM\n    operation_not_supported,            // EOPNOTSUPP\n    operation_would_block,              // EWOULDBLOCK\n    owner_dead,                         // EOWNERDEAD\n    permission_denied,                  // EACCES\n    protocol_error,                     // EPROTO\n    protocol_not_supported,             // EPROTONOSUPPORT\n    read_only_file_system,              // EROFS\n    resource_deadlock_would_occur,      // EDEADLK\n    resource_unavailable_try_again,     // EAGAIN\n    result_out_of_range,                // ERANGE\n    state_not_recoverable,              // ENOTRECOVERABLE\n    stream_timeout,                     // ETIME\n    text_file_busy,                     // ETXTBSY\n    timed_out,                          // ETIMEDOUT\n    too_many_files_open_in_system,      // ENFILE\n    too_many_files_open,                // EMFILE\n    too_many_links,                     // EMLINK\n    too_many_symbolic_link_levels,      // ELOOP\n    value_too_large,                    // EOVERFLOW\n    wrong_protocol_type                 // EPROTOTYPE\n};\n\ntemplate <> struct is_error_condition_enum<errc>\n    : true_type { }\n\nerror_code make_error_code(errc e) noexcept;\nerror_condition make_error_condition(errc e) noexcept;\n\n// Comparison operators:\nbool operator==(const error_code& lhs, const error_code& rhs) noexcept;\nbool operator==(const error_code& lhs, const error_condition& rhs) noexcept;\nbool operator==(const error_condition& lhs, const error_code& rhs) noexcept;\nbool operator==(const error_condition& lhs, const error_condition& rhs) noexcept;\nbool operator!=(const error_code& lhs, const error_code& rhs) noexcept;\nbool operator!=(const error_code& lhs, const error_condition& rhs) noexcept;\nbool operator!=(const error_condition& lhs, const error_code& rhs) noexcept;\nbool operator!=(const error_condition& lhs, const error_condition& rhs) noexcept;\n\ntemplate <> struct hash<std::error_code>;\ntemplate <> struct hash<std::error_condition>;\n\n}  // std\n\n*/\n\n#include <__config>\n#include <cerrno>\n#include <type_traits>\n#include <stdexcept>\n#include <__functional_base>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n// is_error_code_enum\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_error_code_enum\n    : public false_type {};\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Tp>\nconstexpr size_t is_error_code_enum_v = is_error_code_enum<_Tp>::value;\n#endif\n\n// is_error_condition_enum\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_error_condition_enum\n    : public false_type {};\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Tp>\nconstexpr size_t is_error_condition_enum_v = is_error_condition_enum<_Tp>::value;\n#endif\n\n// Some error codes are not present on all platforms, so we provide equivalents\n// for them:\n\n//enum class errc\n_LIBCPP_DECLARE_STRONG_ENUM(errc)\n{\n    address_family_not_supported        = EAFNOSUPPORT,\n    address_in_use                      = EADDRINUSE,\n    address_not_available               = EADDRNOTAVAIL,\n    already_connected                   = EISCONN,\n    argument_list_too_long              = E2BIG,\n    argument_out_of_domain              = EDOM,\n    bad_address                         = EFAULT,\n    bad_file_descriptor                 = EBADF,\n    bad_message                         = EBADMSG,\n    broken_pipe                         = EPIPE,\n    connection_aborted                  = ECONNABORTED,\n    connection_already_in_progress      = EALREADY,\n    connection_refused                  = ECONNREFUSED,\n    connection_reset                    = ECONNRESET,\n    cross_device_link                   = EXDEV,\n    destination_address_required        = EDESTADDRREQ,\n    device_or_resource_busy             = EBUSY,\n    directory_not_empty                 = ENOTEMPTY,\n    executable_format_error             = ENOEXEC,\n    file_exists                         = EEXIST,\n    file_too_large                      = EFBIG,\n    filename_too_long                   = ENAMETOOLONG,\n    function_not_supported              = ENOSYS,\n    host_unreachable                    = EHOSTUNREACH,\n    identifier_removed                  = EIDRM,\n    illegal_byte_sequence               = EILSEQ,\n    inappropriate_io_control_operation  = ENOTTY,\n    interrupted                         = EINTR,\n    invalid_argument                    = EINVAL,\n    invalid_seek                        = ESPIPE,\n    io_error                            = EIO,\n    is_a_directory                      = EISDIR,\n    message_size                        = EMSGSIZE,\n    network_down                        = ENETDOWN,\n    network_reset                       = ENETRESET,\n    network_unreachable                 = ENETUNREACH,\n    no_buffer_space                     = ENOBUFS,\n    no_child_process                    = ECHILD,\n    no_link                             = ENOLINK,\n    no_lock_available                   = ENOLCK,\n#ifdef ENODATA\n    no_message_available                = ENODATA,\n#else\n    no_message_available                = ENOMSG,\n#endif\n    no_message                          = ENOMSG,\n    no_protocol_option                  = ENOPROTOOPT,\n    no_space_on_device                  = ENOSPC,\n#ifdef ENOSR\n    no_stream_resources                 = ENOSR,\n#else\n    no_stream_resources                 = ENOMEM,\n#endif\n    no_such_device_or_address           = ENXIO,\n    no_such_device                      = ENODEV,\n    no_such_file_or_directory           = ENOENT,\n    no_such_process                     = ESRCH,\n    not_a_directory                     = ENOTDIR,\n    not_a_socket                        = ENOTSOCK,\n#ifdef ENOSTR\n    not_a_stream                        = ENOSTR,\n#else\n    not_a_stream                        = EINVAL,\n#endif\n    not_connected                       = ENOTCONN,\n    not_enough_memory                   = ENOMEM,\n    not_supported                       = ENOTSUP,\n    operation_canceled                  = ECANCELED,\n    operation_in_progress               = EINPROGRESS,\n    operation_not_permitted             = EPERM,\n    operation_not_supported             = EOPNOTSUPP,\n    operation_would_block               = EWOULDBLOCK,\n    owner_dead                          = EOWNERDEAD,\n    permission_denied                   = EACCES,\n    protocol_error                      = EPROTO,\n    protocol_not_supported              = EPROTONOSUPPORT,\n    read_only_file_system               = EROFS,\n    resource_deadlock_would_occur       = EDEADLK,\n    resource_unavailable_try_again      = EAGAIN,\n    result_out_of_range                 = ERANGE,\n    state_not_recoverable               = ENOTRECOVERABLE,\n#ifdef ETIME\n    stream_timeout                      = ETIME,\n#else\n    stream_timeout                      = ETIMEDOUT,\n#endif\n    text_file_busy                      = ETXTBSY,\n    timed_out                           = ETIMEDOUT,\n    too_many_files_open_in_system       = ENFILE,\n    too_many_files_open                 = EMFILE,\n    too_many_links                      = EMLINK,\n    too_many_symbolic_link_levels       = ELOOP,\n    value_too_large                     = EOVERFLOW,\n    wrong_protocol_type                 = EPROTOTYPE\n};\n_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(errc)\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS is_error_condition_enum<errc>\n    : true_type { };\n\n#ifdef _LIBCPP_HAS_NO_STRONG_ENUMS\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS is_error_condition_enum<errc::__lx>\n    : true_type { };\n#endif\n\nclass _LIBCPP_TYPE_VIS error_condition;\nclass _LIBCPP_TYPE_VIS error_code;\n\n// class error_category\n\nclass _LIBCPP_HIDDEN __do_message;\n\nclass _LIBCPP_TYPE_VIS error_category\n{\npublic:\n    virtual ~error_category() _NOEXCEPT;\n\n#if defined(_LIBCPP_BUILDING_SYSTEM_ERROR) && \\\n    defined(_LIBCPP_DEPRECATED_ABI_LEGACY_LIBRARY_DEFINITIONS_FOR_INLINE_FUNCTIONS)\n    error_category() _NOEXCEPT;\n#else\n    _LIBCPP_ALWAYS_INLINE\n    _LIBCPP_CONSTEXPR_AFTER_CXX11 error_category() _NOEXCEPT _LIBCPP_DEFAULT\n#endif\nprivate:\n    error_category(const error_category&);// = delete;\n    error_category& operator=(const error_category&);// = delete;\n\npublic:\n    virtual const char* name() const _NOEXCEPT = 0;\n    virtual error_condition default_error_condition(int __ev) const _NOEXCEPT;\n    virtual bool equivalent(int __code, const error_condition& __condition) const _NOEXCEPT;\n    virtual bool equivalent(const error_code& __code, int __condition) const _NOEXCEPT;\n    virtual string message(int __ev) const = 0;\n\n    _LIBCPP_ALWAYS_INLINE\n    bool operator==(const error_category& __rhs) const _NOEXCEPT {return this == &__rhs;}\n\n    _LIBCPP_ALWAYS_INLINE\n    bool operator!=(const error_category& __rhs) const _NOEXCEPT {return !(*this == __rhs);}\n\n    _LIBCPP_ALWAYS_INLINE\n    bool operator< (const error_category& __rhs) const _NOEXCEPT {return this < &__rhs;}\n\n    friend class _LIBCPP_HIDDEN __do_message;\n};\n\nclass _LIBCPP_HIDDEN __do_message\n    : public error_category\n{\npublic:\n    virtual string message(int ev) const;\n};\n\n_LIBCPP_FUNC_VIS const error_category& generic_category() _NOEXCEPT;\n_LIBCPP_FUNC_VIS const error_category& system_category() _NOEXCEPT;\n\nclass _LIBCPP_TYPE_VIS error_condition\n{\n    int __val_;\n    const error_category* __cat_;\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    error_condition() _NOEXCEPT : __val_(0), __cat_(&generic_category()) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    error_condition(int __val, const error_category& __cat) _NOEXCEPT\n        : __val_(__val), __cat_(&__cat) {}\n\n    template <class _Ep>\n        _LIBCPP_ALWAYS_INLINE\n        error_condition(_Ep __e,\n              typename enable_if<is_error_condition_enum<_Ep>::value>::type* = 0\n                                                                     ) _NOEXCEPT\n            {*this = make_error_condition(__e);}\n\n    _LIBCPP_ALWAYS_INLINE\n    void assign(int __val, const error_category& __cat) _NOEXCEPT\n    {\n        __val_ = __val;\n        __cat_ = &__cat;\n    }\n\n    template <class _Ep>\n        _LIBCPP_ALWAYS_INLINE\n        typename enable_if\n        <\n            is_error_condition_enum<_Ep>::value,\n            error_condition&\n        >::type\n        operator=(_Ep __e) _NOEXCEPT\n            {*this = make_error_condition(__e); return *this;}\n\n    _LIBCPP_ALWAYS_INLINE\n    void clear() _NOEXCEPT\n    {\n        __val_ = 0;\n        __cat_ = &generic_category();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int value() const _NOEXCEPT {return __val_;}\n\n    _LIBCPP_ALWAYS_INLINE\n    const error_category& category() const _NOEXCEPT {return *__cat_;}\n    string message() const;\n\n    _LIBCPP_ALWAYS_INLINE\n        _LIBCPP_EXPLICIT\n        operator bool() const _NOEXCEPT {return __val_ != 0;}\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\nerror_condition\nmake_error_condition(errc __e) _NOEXCEPT\n{\n    return error_condition(static_cast<int>(__e), generic_category());\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const error_condition& __x, const error_condition& __y) _NOEXCEPT\n{\n    return __x.category() < __y.category()\n        || (__x.category() == __y.category() && __x.value() < __y.value());\n}\n\n// error_code\n\nclass _LIBCPP_TYPE_VIS error_code\n{\n    int __val_;\n    const error_category* __cat_;\npublic:\n    _LIBCPP_ALWAYS_INLINE\n    error_code() _NOEXCEPT : __val_(0), __cat_(&system_category()) {}\n\n    _LIBCPP_ALWAYS_INLINE\n    error_code(int __val, const error_category& __cat) _NOEXCEPT\n        : __val_(__val), __cat_(&__cat) {}\n\n    template <class _Ep>\n        _LIBCPP_ALWAYS_INLINE\n        error_code(_Ep __e,\n                   typename enable_if<is_error_code_enum<_Ep>::value>::type* = 0\n                                                                     ) _NOEXCEPT\n            {*this = make_error_code(__e);}\n\n    _LIBCPP_ALWAYS_INLINE\n    void assign(int __val, const error_category& __cat) _NOEXCEPT\n    {\n        __val_ = __val;\n        __cat_ = &__cat;\n    }\n\n    template <class _Ep>\n        _LIBCPP_ALWAYS_INLINE\n        typename enable_if\n        <\n            is_error_code_enum<_Ep>::value,\n            error_code&\n        >::type\n        operator=(_Ep __e) _NOEXCEPT\n            {*this = make_error_code(__e); return *this;}\n\n    _LIBCPP_ALWAYS_INLINE\n    void clear() _NOEXCEPT\n    {\n        __val_ = 0;\n        __cat_ = &system_category();\n    }\n\n    _LIBCPP_ALWAYS_INLINE\n    int value() const _NOEXCEPT {return __val_;}\n\n    _LIBCPP_ALWAYS_INLINE\n    const error_category& category() const _NOEXCEPT {return *__cat_;}\n\n    _LIBCPP_ALWAYS_INLINE\n    error_condition default_error_condition() const _NOEXCEPT\n        {return __cat_->default_error_condition(__val_);}\n\n    string message() const;\n\n    _LIBCPP_ALWAYS_INLINE\n        _LIBCPP_EXPLICIT\n        operator bool() const _NOEXCEPT {return __val_ != 0;}\n};\n\ninline _LIBCPP_INLINE_VISIBILITY\nerror_code\nmake_error_code(errc __e) _NOEXCEPT\n{\n    return error_code(static_cast<int>(__e), generic_category());\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<(const error_code& __x, const error_code& __y) _NOEXCEPT\n{\n    return __x.category() < __y.category()\n        || (__x.category() == __y.category() && __x.value() < __y.value());\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const error_code& __x, const error_code& __y) _NOEXCEPT\n{\n    return __x.category() == __y.category() && __x.value() == __y.value();\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const error_code& __x, const error_condition& __y) _NOEXCEPT\n{\n    return __x.category().equivalent(__x.value(), __y)\n        || __y.category().equivalent(__x, __y.value());\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const error_condition& __x, const error_code& __y) _NOEXCEPT\n{\n    return __y == __x;\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const error_condition& __x, const error_condition& __y) _NOEXCEPT\n{\n    return __x.category() == __y.category() && __x.value() == __y.value();\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const error_code& __x, const error_code& __y) _NOEXCEPT\n{return !(__x == __y);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const error_code& __x, const error_condition& __y) _NOEXCEPT\n{return !(__x == __y);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const error_condition& __x, const error_code& __y) _NOEXCEPT\n{return !(__x == __y);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const error_condition& __x, const error_condition& __y) _NOEXCEPT\n{return !(__x == __y);}\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<error_code>\n    : public unary_function<error_code, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const error_code& __ec) const _NOEXCEPT\n    {\n        return static_cast<size_t>(__ec.value());\n    }\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<error_condition>\n    : public unary_function<error_condition, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const error_condition& __ec) const _NOEXCEPT\n    {\n        return static_cast<size_t>(__ec.value());\n    }\n};\n\n// system_error\n\nclass _LIBCPP_TYPE_VIS system_error\n    : public runtime_error\n{\n    error_code __ec_;\npublic:\n    system_error(error_code __ec, const string& __what_arg);\n    system_error(error_code __ec, const char* __what_arg);\n    system_error(error_code __ec);\n    system_error(int __ev, const error_category& __ecat, const string& __what_arg);\n    system_error(int __ev, const error_category& __ecat, const char* __what_arg);\n    system_error(int __ev, const error_category& __ecat);\n    ~system_error() _NOEXCEPT;\n\n    _LIBCPP_ALWAYS_INLINE\n    const error_code& code() const _NOEXCEPT {return __ec_;}\n\nprivate:\n    static string __init(const error_code&, string);\n};\n\n_LIBCPP_NORETURN _LIBCPP_FUNC_VIS\nvoid __throw_system_error(int ev, const char* what_arg);\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_SYSTEM_ERROR\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/tgmath.h",
    "content": "// -*- C++ -*-\n//===-------------------------- tgmath.h ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_TGMATH_H\n#define _LIBCPP_TGMATH_H\n\n/*\n    tgmath.h synopsis\n\n#include <complex.h>\n#include <math.h>\n\n*/\n\n#include <complex.h>\n#include <math.h>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#endif  // _LIBCPP_TGMATH_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread",
    "content": "// -*- C++ -*-\n//===--------------------------- thread -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_THREAD\n#define _LIBCPP_THREAD\n\n/*\n\n    thread synopsis\n\n#define __STDCPP_THREADS__ __cplusplus\n\nnamespace std\n{\n\nclass thread\n{\npublic:\n    class id;\n    typedef pthread_t native_handle_type;\n\n    thread() noexcept;\n    template <class F, class ...Args> explicit thread(F&& f, Args&&... args);\n    ~thread();\n\n    thread(const thread&) = delete;\n    thread(thread&& t) noexcept;\n\n    thread& operator=(const thread&) = delete;\n    thread& operator=(thread&& t) noexcept;\n\n    void swap(thread& t) noexcept;\n\n    bool joinable() const noexcept;\n    void join();\n    void detach();\n    id get_id() const noexcept;\n    native_handle_type native_handle();\n\n    static unsigned hardware_concurrency() noexcept;\n};\n\nvoid swap(thread& x, thread& y) noexcept;\n\nclass thread::id\n{\npublic:\n    id() noexcept;\n};\n\nbool operator==(thread::id x, thread::id y) noexcept;\nbool operator!=(thread::id x, thread::id y) noexcept;\nbool operator< (thread::id x, thread::id y) noexcept;\nbool operator<=(thread::id x, thread::id y) noexcept;\nbool operator> (thread::id x, thread::id y) noexcept;\nbool operator>=(thread::id x, thread::id y) noexcept;\n\ntemplate<class charT, class traits>\nbasic_ostream<charT, traits>&\noperator<<(basic_ostream<charT, traits>& out, thread::id id);\n\nnamespace this_thread\n{\n\nthread::id get_id() noexcept;\n\nvoid yield() noexcept;\n\ntemplate <class Clock, class Duration>\nvoid sleep_until(const chrono::time_point<Clock, Duration>& abs_time);\n\ntemplate <class Rep, class Period>\nvoid sleep_for(const chrono::duration<Rep, Period>& rel_time);\n\n}  // this_thread\n\n}  // std\n\n*/\n\n#include <__config>\n#include <iosfwd>\n#include <__functional_base>\n#include <type_traits>\n#include <cstddef>\n#include <functional>\n#include <memory>\n#include <system_error>\n#include <chrono>\n#include <__mutex_base>\n#ifndef _LIBCPP_CXX03_LANG\n#include <tuple>\n#endif\n#include <__threading_support>\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n#define __STDCPP_THREADS__ __cplusplus\n\n#ifdef _LIBCPP_HAS_NO_THREADS\n#error <thread> is not supported on this single threaded system\n#else // !_LIBCPP_HAS_NO_THREADS\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Tp> class __thread_specific_ptr;\nclass _LIBCPP_TYPE_VIS __thread_struct;\nclass _LIBCPP_HIDDEN __thread_struct_imp;\nclass __assoc_sub_state;\n\n_LIBCPP_FUNC_VIS __thread_specific_ptr<__thread_struct>& __thread_local_data();\n\nclass _LIBCPP_TYPE_VIS __thread_struct\n{\n    __thread_struct_imp* __p_;\n\n    __thread_struct(const __thread_struct&);\n    __thread_struct& operator=(const __thread_struct&);\npublic:\n    __thread_struct();\n    ~__thread_struct();\n\n    void notify_all_at_thread_exit(condition_variable*, mutex*);\n    void __make_ready_at_thread_exit(__assoc_sub_state*);\n};\n\ntemplate <class _Tp>\nclass __thread_specific_ptr\n{\n    __libcpp_tls_key __key_;\n\n     // Only __thread_local_data() may construct a __thread_specific_ptr\n     // and only with _Tp == __thread_struct.\n    static_assert((is_same<_Tp, __thread_struct>::value), \"\");\n    __thread_specific_ptr();\n    friend _LIBCPP_FUNC_VIS __thread_specific_ptr<__thread_struct>& __thread_local_data();\n\n    __thread_specific_ptr(const __thread_specific_ptr&);\n    __thread_specific_ptr& operator=(const __thread_specific_ptr&);\n\n    static void _LIBCPP_TLS_DESTRUCTOR_CC __at_thread_exit(void*);\n\npublic:\n    typedef _Tp* pointer;\n\n    ~__thread_specific_ptr();\n\n    _LIBCPP_INLINE_VISIBILITY\n    pointer get() const {return static_cast<_Tp*>(__libcpp_tls_get(__key_));}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator*() const {return *get();}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {return get();}\n    void set_pointer(pointer __p);\n};\n\ntemplate <class _Tp>\nvoid _LIBCPP_TLS_DESTRUCTOR_CC\n__thread_specific_ptr<_Tp>::__at_thread_exit(void* __p)\n{\n    delete static_cast<pointer>(__p);\n}\n\ntemplate <class _Tp>\n__thread_specific_ptr<_Tp>::__thread_specific_ptr()\n{\n  int __ec =\n      __libcpp_tls_create(&__key_, &__thread_specific_ptr::__at_thread_exit);\n  if (__ec)\n    __throw_system_error(__ec, \"__thread_specific_ptr construction failed\");\n}\n\ntemplate <class _Tp>\n__thread_specific_ptr<_Tp>::~__thread_specific_ptr()\n{\n    // __thread_specific_ptr is only created with a static storage duration\n    // so this destructor is only invoked during program termination. Invoking\n    // pthread_key_delete(__key_) may prevent other threads from deleting their\n    // thread local data. For this reason we leak the key.\n}\n\ntemplate <class _Tp>\nvoid\n__thread_specific_ptr<_Tp>::set_pointer(pointer __p)\n{\n    _LIBCPP_ASSERT(get() == nullptr,\n                   \"Attempting to overwrite thread local data\");\n    __libcpp_tls_set(__key_, __p);\n}\n\nclass _LIBCPP_TYPE_VIS thread;\nclass _LIBCPP_TYPE_VIS __thread_id;\n\nnamespace this_thread\n{\n\n_LIBCPP_INLINE_VISIBILITY __thread_id get_id() _NOEXCEPT;\n\n}  // this_thread\n\ntemplate<> struct hash<__thread_id>;\n\nclass _LIBCPP_TEMPLATE_VIS __thread_id\n{\n    // FIXME: pthread_t is a pointer on Darwin but a long on Linux.\n    // NULL is the no-thread value on Darwin.  Someone needs to check\n    // on other platforms.  We assume 0 works everywhere for now.\n    __libcpp_thread_id __id_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __thread_id() _NOEXCEPT : __id_(0) {}\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(__thread_id __x, __thread_id __y) _NOEXCEPT\n        {return __libcpp_thread_id_equal(__x.__id_, __y.__id_);}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(__thread_id __x, __thread_id __y) _NOEXCEPT\n        {return !(__x == __y);}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator< (__thread_id __x, __thread_id __y) _NOEXCEPT\n        {return  __libcpp_thread_id_less(__x.__id_, __y.__id_);}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator<=(__thread_id __x, __thread_id __y) _NOEXCEPT\n        {return !(__y < __x);}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator> (__thread_id __x, __thread_id __y) _NOEXCEPT\n        {return   __y < __x ;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator>=(__thread_id __x, __thread_id __y) _NOEXCEPT\n        {return !(__x < __y);}\n\n    template<class _CharT, class _Traits>\n    friend\n    _LIBCPP_INLINE_VISIBILITY\n    basic_ostream<_CharT, _Traits>&\n    operator<<(basic_ostream<_CharT, _Traits>& __os, __thread_id __id)\n        {return __os << __id.__id_;}\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    __thread_id(__libcpp_thread_id __id) : __id_(__id) {}\n\n    friend __thread_id this_thread::get_id() _NOEXCEPT;\n    friend class _LIBCPP_TYPE_VIS thread;\n    friend struct _LIBCPP_TEMPLATE_VIS hash<__thread_id>;\n};\n\ntemplate<>\nstruct _LIBCPP_TEMPLATE_VIS hash<__thread_id>\n    : public unary_function<__thread_id, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(__thread_id __v) const _NOEXCEPT\n    {\n        return hash<__libcpp_thread_id>()(__v.__id_);\n    }\n};\n\nnamespace this_thread\n{\n\ninline _LIBCPP_INLINE_VISIBILITY\n__thread_id\nget_id() _NOEXCEPT\n{\n    return __libcpp_thread_get_current_id();\n}\n\n}  // this_thread\n\nclass _LIBCPP_TYPE_VIS thread\n{\n    __libcpp_thread_t __t_;\n\n    thread(const thread&);\n    thread& operator=(const thread&);\npublic:\n    typedef __thread_id id;\n    typedef __libcpp_thread_t native_handle_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    thread() _NOEXCEPT : __t_(_LIBCPP_NULL_THREAD) {}\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Fp, class ..._Args,\n              class = typename enable_if\n              <\n                   !is_same<typename decay<_Fp>::type, thread>::value\n              >::type\n             >\n        _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n        explicit thread(_Fp&& __f, _Args&&... __args);\n#else  // _LIBCPP_CXX03_LANG\n    template <class _Fp>\n    _LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS\n    explicit thread(_Fp __f);\n#endif\n    ~thread();\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    thread(thread&& __t) _NOEXCEPT : __t_(__t.__t_) {__t.__t_ = _LIBCPP_NULL_THREAD;}\n    _LIBCPP_INLINE_VISIBILITY\n    thread& operator=(thread&& __t) _NOEXCEPT;\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(thread& __t) _NOEXCEPT {_VSTD::swap(__t_, __t.__t_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool joinable() const _NOEXCEPT {return !__libcpp_thread_isnull(&__t_);}\n    void join();\n    void detach();\n    _LIBCPP_INLINE_VISIBILITY\n    id get_id() const _NOEXCEPT {return __libcpp_thread_get_id(&__t_);}\n    _LIBCPP_INLINE_VISIBILITY\n    native_handle_type native_handle() _NOEXCEPT {return __t_;}\n\n    static unsigned hardware_concurrency() _NOEXCEPT;\n};\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _TSp, class _Fp, class ..._Args, size_t ..._Indices>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__thread_execute(tuple<_TSp, _Fp, _Args...>& __t, __tuple_indices<_Indices...>)\n{\n    __invoke(_VSTD::move(_VSTD::get<1>(__t)), _VSTD::move(_VSTD::get<_Indices>(__t))...);\n}\n\ntemplate <class _Fp>\nvoid* __thread_proxy(void* __vp)\n{\n    // _Fp = std::tuple< unique_ptr<__thread_struct>, Functor, Args...>\n    std::unique_ptr<_Fp> __p(static_cast<_Fp*>(__vp));\n    __thread_local_data().set_pointer(_VSTD::get<0>(*__p).release());\n    typedef typename __make_tuple_indices<tuple_size<_Fp>::value, 2>::type _Index;\n    __thread_execute(*__p, _Index());\n    return nullptr;\n}\n\ntemplate <class _Fp, class ..._Args,\n          class\n         >\nthread::thread(_Fp&& __f, _Args&&... __args)\n{\n    typedef unique_ptr<__thread_struct> _TSPtr;\n    _TSPtr __tsp(new __thread_struct);\n    typedef tuple<_TSPtr, typename decay<_Fp>::type, typename decay<_Args>::type...> _Gp;\n    _VSTD::unique_ptr<_Gp> __p(\n            new _Gp(std::move(__tsp),\n                    __decay_copy(_VSTD::forward<_Fp>(__f)),\n                    __decay_copy(_VSTD::forward<_Args>(__args))...));\n    int __ec = __libcpp_thread_create(&__t_, &__thread_proxy<_Gp>, __p.get());\n    if (__ec == 0)\n        __p.release();\n    else\n        __throw_system_error(__ec, \"thread constructor failed\");\n}\n\ninline\nthread&\nthread::operator=(thread&& __t) _NOEXCEPT\n{\n    if (!__libcpp_thread_isnull(&__t_))\n        terminate();\n    __t_ = __t.__t_;\n    __t.__t_ = _LIBCPP_NULL_THREAD;\n    return *this;\n}\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Fp>\nstruct __thread_invoke_pair {\n    // This type is used to pass memory for thread local storage and a functor\n    // to a newly created thread because std::pair doesn't work with\n    // std::unique_ptr in C++03.\n    __thread_invoke_pair(_Fp& __f) : __tsp_(new __thread_struct), __fn_(__f) {}\n    unique_ptr<__thread_struct> __tsp_;\n    _Fp __fn_;\n};\n\ntemplate <class _Fp>\nvoid* __thread_proxy_cxx03(void* __vp)\n{\n    std::unique_ptr<_Fp> __p(static_cast<_Fp*>(__vp));\n    __thread_local_data().set_pointer(__p->__tsp_.release());\n    (__p->__fn_)();\n    return nullptr;\n}\n\ntemplate <class _Fp>\nthread::thread(_Fp __f)\n{\n\n    typedef __thread_invoke_pair<_Fp> _InvokePair;\n    typedef std::unique_ptr<_InvokePair> _PairPtr;\n    _PairPtr __pp(new _InvokePair(__f));\n    int __ec = __libcpp_thread_create(&__t_, &__thread_proxy_cxx03<_InvokePair>, __pp.get());\n    if (__ec == 0)\n        __pp.release();\n    else\n        __throw_system_error(__ec, \"thread constructor failed\");\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid swap(thread& __x, thread& __y) _NOEXCEPT {__x.swap(__y);}\n\nnamespace this_thread\n{\n\n_LIBCPP_FUNC_VIS void sleep_for(const chrono::nanoseconds& __ns);\n\ntemplate <class _Rep, class _Period>\nvoid\nsleep_for(const chrono::duration<_Rep, _Period>& __d)\n{\n    using namespace chrono;\n    if (__d > duration<_Rep, _Period>::zero())\n    {\n        _LIBCPP_CONSTEXPR duration<long double> _Max = nanoseconds::max();\n        nanoseconds __ns;\n        if (__d < _Max)\n        {\n            __ns = duration_cast<nanoseconds>(__d);\n            if (__ns < __d)\n                ++__ns;\n        }\n        else\n            __ns = nanoseconds::max();\n        sleep_for(__ns);\n    }\n}\n\ntemplate <class _Clock, class _Duration>\nvoid\nsleep_until(const chrono::time_point<_Clock, _Duration>& __t)\n{\n    using namespace chrono;\n    mutex __mut;\n    condition_variable __cv;\n    unique_lock<mutex> __lk(__mut);\n    while (_Clock::now() < __t)\n        __cv.wait_until(__lk, __t);\n}\n\ntemplate <class _Duration>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nsleep_until(const chrono::time_point<chrono::steady_clock, _Duration>& __t)\n{\n    using namespace chrono;\n    sleep_for(__t - steady_clock::now());\n}\n\ninline _LIBCPP_INLINE_VISIBILITY\nvoid yield() _NOEXCEPT {__libcpp_thread_yield();}\n\n}  // this_thread\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif // !_LIBCPP_HAS_NO_THREADS\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_THREAD\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/tuple",
    "content": "// -*- C++ -*-\n//===--------------------------- tuple ------------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is distributed under the University of Illinois Open Source\n// License. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_TUPLE\n#define _LIBCPP_TUPLE\n\n/*\n    tuple synopsis\n\nnamespace std\n{\n\ntemplate <class... T>\nclass tuple {\npublic:\n    constexpr tuple();\n    explicit tuple(const T&...);  // constexpr in C++14\n    template <class... U>\n        explicit tuple(U&&...);  // constexpr in C++14\n    tuple(const tuple&) = default;\n    tuple(tuple&&) = default;\n    template <class... U>\n        tuple(const tuple<U...>&);  // constexpr in C++14\n    template <class... U>\n        tuple(tuple<U...>&&);  // constexpr in C++14\n    template <class U1, class U2>\n        tuple(const pair<U1, U2>&); // iff sizeof...(T) == 2 // constexpr in C++14\n    template <class U1, class U2>\n        tuple(pair<U1, U2>&&); // iff sizeof...(T) == 2  // constexpr in C++14\n\n    // allocator-extended constructors\n    template <class Alloc>\n        tuple(allocator_arg_t, const Alloc& a);\n    template <class Alloc>\n        tuple(allocator_arg_t, const Alloc& a, const T&...);\n    template <class Alloc, class... U>\n        tuple(allocator_arg_t, const Alloc& a, U&&...);\n    template <class Alloc>\n        tuple(allocator_arg_t, const Alloc& a, const tuple&);\n    template <class Alloc>\n        tuple(allocator_arg_t, const Alloc& a, tuple&&);\n    template <class Alloc, class... U>\n        tuple(allocator_arg_t, const Alloc& a, const tuple<U...>&);\n    template <class Alloc, class... U>\n        tuple(allocator_arg_t, const Alloc& a, tuple<U...>&&);\n    template <class Alloc, class U1, class U2>\n        tuple(allocator_arg_t, const Alloc& a, const pair<U1, U2>&);\n    template <class Alloc, class U1, class U2>\n        tuple(allocator_arg_t, const Alloc& a, pair<U1, U2>&&);\n\n    tuple& operator=(const tuple&);\n    tuple&\n        operator=(tuple&&) noexcept(AND(is_nothrow_move_assignable<T>::value ...));\n    template <class... U>\n        tuple& operator=(const tuple<U...>&);\n    template <class... U>\n        tuple& operator=(tuple<U...>&&);\n    template <class U1, class U2>\n        tuple& operator=(const pair<U1, U2>&); // iff sizeof...(T) == 2\n    template <class U1, class U2>\n        tuple& operator=(pair<U1, U2>&&); //iffsizeof...(T) == 2\n\n    void swap(tuple&) noexcept(AND(swap(declval<T&>(), declval<T&>())...));\n};\n\nconst unspecified ignore;\n\ntemplate <class... T> tuple<V...>  make_tuple(T&&...); // constexpr in C++14\ntemplate <class... T> tuple<ATypes...> forward_as_tuple(T&&...) noexcept; // constexpr in C++14\ntemplate <class... T> tuple<T&...> tie(T&...) noexcept; // constexpr in C++14\ntemplate <class... Tuples> tuple<CTypes...> tuple_cat(Tuples&&... tpls); // constexpr in C++14\n\n// [tuple.apply], calling a function with a tuple of arguments:\ntemplate <class F, class Tuple>\n  constexpr decltype(auto) apply(F&& f, Tuple&& t); // C++17\ntemplate <class T, class Tuple>\n  constexpr T make_from_tuple(Tuple&& t); // C++17\n\n// 20.4.1.4, tuple helper classes:\ntemplate <class T> class tuple_size; // undefined\ntemplate <class... T> class tuple_size<tuple<T...>>;\ntemplate <class T>\n constexpr size_t tuple_size_v = tuple_size<T>::value; // C++17\ntemplate <size_t I, class T> class tuple_element; // undefined\ntemplate <size_t I, class... T> class tuple_element<I, tuple<T...>>;\ntemplate <size_t I, class T>\n  using tuple_element_t = typename tuple_element <I, T>::type; // C++14\n\n// 20.4.1.5, element access:\ntemplate <size_t I, class... T>\n    typename tuple_element<I, tuple<T...>>::type&\n    get(tuple<T...>&) noexcept; // constexpr in C++14\ntemplate <size_t I, class... T>\n    const typename tuple_element<I, tuple<T...>>::type&\n    get(const tuple<T...>&) noexcept; // constexpr in C++14\ntemplate <size_t I, class... T>\n    typename tuple_element<I, tuple<T...>>::type&&\n    get(tuple<T...>&&) noexcept; // constexpr in C++14\ntemplate <size_t I, class... T>\n    const typename tuple_element<I, tuple<T...>>::type&&\n    get(const tuple<T...>&&) noexcept; // constexpr in C++14\n\ntemplate <class T1, class... T>\n    constexpr T1& get(tuple<T...>&) noexcept;  // C++14\ntemplate <class T1, class... T>\n    constexpr const T1& get(const tuple<T...>&) noexcept;   // C++14\ntemplate <class T1, class... T>\n    constexpr T1&& get(tuple<T...>&&) noexcept;   // C++14\ntemplate <class T1, class... T>\n    constexpr const T1&& get(const tuple<T...>&&) noexcept;   // C++14\n\n// 20.4.1.6, relational operators:\ntemplate<class... T, class... U> bool operator==(const tuple<T...>&, const tuple<U...>&); // constexpr in C++14\ntemplate<class... T, class... U> bool operator<(const tuple<T...>&, const tuple<U...>&);  // constexpr in C++14\ntemplate<class... T, class... U> bool operator!=(const tuple<T...>&, const tuple<U...>&); // constexpr in C++14\ntemplate<class... T, class... U> bool operator>(const tuple<T...>&, const tuple<U...>&);  // constexpr in C++14\ntemplate<class... T, class... U> bool operator<=(const tuple<T...>&, const tuple<U...>&); // constexpr in C++14\ntemplate<class... T, class... U> bool operator>=(const tuple<T...>&, const tuple<U...>&); // constexpr in C++14\n\ntemplate <class... Types, class Alloc>\n  struct uses_allocator<tuple<Types...>, Alloc>;\n\ntemplate <class... Types>\n  void\n  swap(tuple<Types...>& x, tuple<Types...>& y) noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__tuple>\n#include <cstddef>\n#include <type_traits>\n#include <__functional_base>\n#include <utility>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\n#ifndef _LIBCPP_CXX03_LANG\n\n\n// __tuple_leaf\n\ntemplate <size_t _Ip, class _Hp,\n          bool=is_empty<_Hp>::value && !__libcpp_is_final<_Hp>::value\n         >\nclass __tuple_leaf;\n\ntemplate <size_t _Ip, class _Hp, bool _Ep>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid swap(__tuple_leaf<_Ip, _Hp, _Ep>& __x, __tuple_leaf<_Ip, _Hp, _Ep>& __y)\n    _NOEXCEPT_(__is_nothrow_swappable<_Hp>::value)\n{\n    swap(__x.get(), __y.get());\n}\n\ntemplate <size_t _Ip, class _Hp, bool>\nclass __tuple_leaf\n{\n    _Hp __value_;\n\n    template <class _Tp>\n    static constexpr bool __can_bind_reference() {\n        using _RawTp = typename remove_reference<_Tp>::type;\n        using _RawHp = typename remove_reference<_Hp>::type;\n        using _CheckLValueArg = integral_constant<bool,\n            is_lvalue_reference<_Tp>::value\n        ||  is_same<_RawTp, reference_wrapper<_RawHp>>::value\n        ||  is_same<_RawTp, reference_wrapper<typename remove_const<_RawHp>::type>>::value\n        >;\n        return  !is_reference<_Hp>::value\n            || (is_lvalue_reference<_Hp>::value && _CheckLValueArg::value)\n            || (is_rvalue_reference<_Hp>::value && !is_lvalue_reference<_Tp>::value);\n    }\n\n    __tuple_leaf& operator=(const __tuple_leaf&);\npublic:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR __tuple_leaf()\n             _NOEXCEPT_(is_nothrow_default_constructible<_Hp>::value) : __value_()\n       {static_assert(!is_reference<_Hp>::value,\n              \"Attempted to default construct a reference element in a tuple\");}\n\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_leaf(integral_constant<int, 0>, const _Alloc&)\n            : __value_()\n        {static_assert(!is_reference<_Hp>::value,\n              \"Attempted to default construct a reference element in a tuple\");}\n\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a)\n            : __value_(allocator_arg_t(), __a)\n        {static_assert(!is_reference<_Hp>::value,\n              \"Attempted to default construct a reference element in a tuple\");}\n\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a)\n            : __value_(__a)\n        {static_assert(!is_reference<_Hp>::value,\n              \"Attempted to default construct a reference element in a tuple\");}\n\n    template <class _Tp,\n              class = typename enable_if<\n                  __lazy_and<\n                      __lazy_not<is_same<typename decay<_Tp>::type, __tuple_leaf>>\n                    , is_constructible<_Hp, _Tp>\n                    >::value\n                >::type\n            >\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n        explicit __tuple_leaf(_Tp&& __t) _NOEXCEPT_((is_nothrow_constructible<_Hp, _Tp>::value))\n            : __value_(_VSTD::forward<_Tp>(__t))\n        {static_assert(__can_bind_reference<_Tp>(),\n       \"Attempted to construct a reference element in a tuple with an rvalue\");}\n\n    template <class _Tp, class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit __tuple_leaf(integral_constant<int, 0>, const _Alloc&, _Tp&& __t)\n            : __value_(_VSTD::forward<_Tp>(__t))\n        {static_assert(__can_bind_reference<_Tp>(),\n       \"Attempted to construct a reference element in a tuple with an rvalue\");}\n\n    template <class _Tp, class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a, _Tp&& __t)\n            : __value_(allocator_arg_t(), __a, _VSTD::forward<_Tp>(__t))\n        {static_assert(!is_reference<_Hp>::value,\n            \"Attempted to uses-allocator construct a reference element in a tuple\");}\n\n    template <class _Tp, class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a, _Tp&& __t)\n            : __value_(_VSTD::forward<_Tp>(__t), __a)\n        {static_assert(!is_reference<_Hp>::value,\n           \"Attempted to uses-allocator construct a reference element in a tuple\");}\n\n    __tuple_leaf(const __tuple_leaf& __t) = default;\n    __tuple_leaf(__tuple_leaf&& __t) = default;\n\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_leaf&\n        operator=(_Tp&& __t) _NOEXCEPT_((is_nothrow_assignable<_Hp&, _Tp>::value))\n        {\n            __value_ = _VSTD::forward<_Tp>(__t);\n            return *this;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    int swap(__tuple_leaf& __t) _NOEXCEPT_(__is_nothrow_swappable<__tuple_leaf>::value)\n    {\n        _VSTD::swap(*this, __t);\n        return 0;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11       _Hp& get()       _NOEXCEPT {return __value_;}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const _Hp& get() const _NOEXCEPT {return __value_;}\n};\n\ntemplate <size_t _Ip, class _Hp>\nclass __tuple_leaf<_Ip, _Hp, true>\n    : private _Hp\n{\n\n    __tuple_leaf& operator=(const __tuple_leaf&);\npublic:\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR __tuple_leaf()\n             _NOEXCEPT_(is_nothrow_default_constructible<_Hp>::value) {}\n\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_leaf(integral_constant<int, 0>, const _Alloc&) {}\n\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a)\n            : _Hp(allocator_arg_t(), __a) {}\n\n    template <class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a)\n            : _Hp(__a) {}\n\n    template <class _Tp,\n              class = typename enable_if<\n                  __lazy_and<\n                        __lazy_not<is_same<typename decay<_Tp>::type, __tuple_leaf>>\n                      , is_constructible<_Hp, _Tp>\n                    >::value\n                >::type\n            >\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n        explicit __tuple_leaf(_Tp&& __t) _NOEXCEPT_((is_nothrow_constructible<_Hp, _Tp>::value))\n            : _Hp(_VSTD::forward<_Tp>(__t)) {}\n\n    template <class _Tp, class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit __tuple_leaf(integral_constant<int, 0>, const _Alloc&, _Tp&& __t)\n            : _Hp(_VSTD::forward<_Tp>(__t)) {}\n\n    template <class _Tp, class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit __tuple_leaf(integral_constant<int, 1>, const _Alloc& __a, _Tp&& __t)\n            : _Hp(allocator_arg_t(), __a, _VSTD::forward<_Tp>(__t)) {}\n\n    template <class _Tp, class _Alloc>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit __tuple_leaf(integral_constant<int, 2>, const _Alloc& __a, _Tp&& __t)\n            : _Hp(_VSTD::forward<_Tp>(__t), __a) {}\n\n    __tuple_leaf(__tuple_leaf const &) = default;\n    __tuple_leaf(__tuple_leaf &&) = default;\n\n    template <class _Tp>\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_leaf&\n        operator=(_Tp&& __t) _NOEXCEPT_((is_nothrow_assignable<_Hp&, _Tp>::value))\n        {\n            _Hp::operator=(_VSTD::forward<_Tp>(__t));\n            return *this;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    int\n    swap(__tuple_leaf& __t) _NOEXCEPT_(__is_nothrow_swappable<__tuple_leaf>::value)\n    {\n        _VSTD::swap(*this, __t);\n        return 0;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11       _Hp& get()       _NOEXCEPT {return static_cast<_Hp&>(*this);}\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11 const _Hp& get() const _NOEXCEPT {return static_cast<const _Hp&>(*this);}\n};\n\ntemplate <class ..._Tp>\n_LIBCPP_INLINE_VISIBILITY\nvoid __swallow(_Tp&&...) _NOEXCEPT {}\n\ntemplate <class ..._Tp>\nstruct __lazy_all : __all<_Tp::value...> {};\n\ntemplate <class _Tp>\nstruct __all_default_constructible;\n\ntemplate <class ..._Tp>\nstruct __all_default_constructible<__tuple_types<_Tp...>>\n    : __all<is_default_constructible<_Tp>::value...>\n{ };\n\n// __tuple_impl\n\ntemplate<class _Indx, class ..._Tp> struct __tuple_impl;\n\ntemplate<size_t ..._Indx, class ..._Tp>\nstruct _LIBCPP_DECLSPEC_EMPTY_BASES __tuple_impl<__tuple_indices<_Indx...>, _Tp...>\n    : public __tuple_leaf<_Indx, _Tp>...\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR __tuple_impl()\n        _NOEXCEPT_(__all<is_nothrow_default_constructible<_Tp>::value...>::value) {}\n\n    template <size_t ..._Uf, class ..._Tf,\n              size_t ..._Ul, class ..._Tl, class ..._Up>\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n        explicit\n        __tuple_impl(__tuple_indices<_Uf...>, __tuple_types<_Tf...>,\n                     __tuple_indices<_Ul...>, __tuple_types<_Tl...>,\n                     _Up&&... __u)\n                     _NOEXCEPT_((__all<is_nothrow_constructible<_Tf, _Up>::value...>::value &&\n                                 __all<is_nothrow_default_constructible<_Tl>::value...>::value)) :\n            __tuple_leaf<_Uf, _Tf>(_VSTD::forward<_Up>(__u))...,\n            __tuple_leaf<_Ul, _Tl>()...\n            {}\n\n    template <class _Alloc, size_t ..._Uf, class ..._Tf,\n              size_t ..._Ul, class ..._Tl, class ..._Up>\n        _LIBCPP_INLINE_VISIBILITY\n        explicit\n        __tuple_impl(allocator_arg_t, const _Alloc& __a,\n                     __tuple_indices<_Uf...>, __tuple_types<_Tf...>,\n                     __tuple_indices<_Ul...>, __tuple_types<_Tl...>,\n                     _Up&&... __u) :\n            __tuple_leaf<_Uf, _Tf>(__uses_alloc_ctor<_Tf, _Alloc, _Up>(), __a,\n            _VSTD::forward<_Up>(__u))...,\n            __tuple_leaf<_Ul, _Tl>(__uses_alloc_ctor<_Tl, _Alloc>(), __a)...\n            {}\n\n    template <class _Tuple,\n              class = typename enable_if\n                      <\n                         __tuple_constructible<_Tuple, tuple<_Tp...> >::value\n                      >::type\n             >\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n        __tuple_impl(_Tuple&& __t) _NOEXCEPT_((__all<is_nothrow_constructible<_Tp, typename tuple_element<_Indx,\n                                       typename __make_tuple_types<_Tuple>::type>::type>::value...>::value))\n            : __tuple_leaf<_Indx, _Tp>(_VSTD::forward<typename tuple_element<_Indx,\n                                       typename __make_tuple_types<_Tuple>::type>::type>(_VSTD::get<_Indx>(__t)))...\n            {}\n\n    template <class _Alloc, class _Tuple,\n              class = typename enable_if\n                      <\n                         __tuple_constructible<_Tuple, tuple<_Tp...> >::value\n                      >::type\n             >\n        _LIBCPP_INLINE_VISIBILITY\n        __tuple_impl(allocator_arg_t, const _Alloc& __a, _Tuple&& __t)\n            : __tuple_leaf<_Indx, _Tp>(__uses_alloc_ctor<_Tp, _Alloc, typename tuple_element<_Indx,\n                                       typename __make_tuple_types<_Tuple>::type>::type>(), __a,\n                                       _VSTD::forward<typename tuple_element<_Indx,\n                                       typename __make_tuple_types<_Tuple>::type>::type>(_VSTD::get<_Indx>(__t)))...\n            {}\n\n    template <class _Tuple>\n        _LIBCPP_INLINE_VISIBILITY\n        typename enable_if\n        <\n            __tuple_assignable<_Tuple, tuple<_Tp...> >::value,\n            __tuple_impl&\n        >::type\n        operator=(_Tuple&& __t) _NOEXCEPT_((__all<is_nothrow_assignable<_Tp&, typename tuple_element<_Indx,\n                                       typename __make_tuple_types<_Tuple>::type>::type>::value...>::value))\n        {\n            __swallow(__tuple_leaf<_Indx, _Tp>::operator=(_VSTD::forward<typename tuple_element<_Indx,\n                                       typename __make_tuple_types<_Tuple>::type>::type>(_VSTD::get<_Indx>(__t)))...);\n            return *this;\n        }\n\n    __tuple_impl(const __tuple_impl&) = default;\n    __tuple_impl(__tuple_impl&&) = default;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tuple_impl&\n    operator=(const __tuple_impl& __t) _NOEXCEPT_((__all<is_nothrow_copy_assignable<_Tp>::value...>::value))\n    {\n        __swallow(__tuple_leaf<_Indx, _Tp>::operator=(static_cast<const __tuple_leaf<_Indx, _Tp>&>(__t).get())...);\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __tuple_impl&\n    operator=(__tuple_impl&& __t) _NOEXCEPT_((__all<is_nothrow_move_assignable<_Tp>::value...>::value))\n    {\n        __swallow(__tuple_leaf<_Indx, _Tp>::operator=(_VSTD::forward<_Tp>(static_cast<__tuple_leaf<_Indx, _Tp>&>(__t).get()))...);\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(__tuple_impl& __t)\n        _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value)\n    {\n        __swallow(__tuple_leaf<_Indx, _Tp>::swap(static_cast<__tuple_leaf<_Indx, _Tp>&>(__t))...);\n    }\n};\n\n\n\ntemplate <class ..._Tp>\nclass _LIBCPP_TEMPLATE_VIS tuple\n{\n    typedef __tuple_impl<typename __make_tuple_indices<sizeof...(_Tp)>::type, _Tp...> _BaseT;\n\n    _BaseT __base_;\n\n#if defined(_LIBCPP_ENABLE_TUPLE_IMPLICIT_REDUCED_ARITY_EXTENSION)\n    static constexpr bool _EnableImplicitReducedArityExtension = true;\n#else\n    static constexpr bool _EnableImplicitReducedArityExtension = false;\n#endif\n\n    template <class ..._Args>\n    struct _PackExpandsToThisTuple : false_type {};\n\n    template <class _Arg>\n    struct _PackExpandsToThisTuple<_Arg>\n        : is_same<typename __uncvref<_Arg>::type, tuple> {};\n\n    template <bool _MaybeEnable, class _Dummy = void>\n    struct _CheckArgsConstructor : __check_tuple_constructor_fail {};\n\n    template <class _Dummy>\n    struct _CheckArgsConstructor<true, _Dummy>\n    {\n        template <class ..._Args>\n        static constexpr bool __enable_default() {\n            return __all<is_default_constructible<_Args>::value...>::value;\n        }\n\n        template <class ..._Args>\n        static constexpr bool __enable_explicit() {\n            return\n                __tuple_constructible<\n                    tuple<_Args...>,\n                    typename __make_tuple_types<tuple,\n                             sizeof...(_Args) < sizeof...(_Tp) ?\n                                 sizeof...(_Args) :\n                                 sizeof...(_Tp)>::type\n                >::value &&\n                !__tuple_convertible<\n                    tuple<_Args...>,\n                    typename __make_tuple_types<tuple,\n                             sizeof...(_Args) < sizeof...(_Tp) ?\n                                 sizeof...(_Args) :\n                                 sizeof...(_Tp)>::type\n                >::value &&\n                __all_default_constructible<\n                    typename __make_tuple_types<tuple, sizeof...(_Tp),\n                             sizeof...(_Args) < sizeof...(_Tp) ?\n                                 sizeof...(_Args) :\n                                 sizeof...(_Tp)>::type\n                >::value;\n        }\n\n        template <class ..._Args>\n        static constexpr bool __enable_implicit() {\n            return\n                __tuple_convertible<\n                    tuple<_Args...>,\n                    typename __make_tuple_types<tuple,\n                             sizeof...(_Args) < sizeof...(_Tp) ?\n                                 sizeof...(_Args) :\n                                 sizeof...(_Tp)>::type\n                >::value &&\n                __all_default_constructible<\n                    typename __make_tuple_types<tuple, sizeof...(_Tp),\n                             sizeof...(_Args) < sizeof...(_Tp) ?\n                                 sizeof...(_Args) :\n                                 sizeof...(_Tp)>::type\n                >::value;\n        }\n    };\n\n    template <bool _MaybeEnable,\n              bool = sizeof...(_Tp) == 1,\n              class _Dummy = void>\n    struct _CheckTupleLikeConstructor : __check_tuple_constructor_fail {};\n\n    template <class _Dummy>\n    struct _CheckTupleLikeConstructor<true, false, _Dummy>\n    {\n        template <class _Tuple>\n        static constexpr bool __enable_implicit() {\n            return __tuple_convertible<_Tuple, tuple>::value;\n        }\n\n        template <class _Tuple>\n        static constexpr bool __enable_explicit() {\n            return __tuple_constructible<_Tuple, tuple>::value\n               && !__tuple_convertible<_Tuple, tuple>::value;\n        }\n    };\n\n    template <class _Dummy>\n    struct _CheckTupleLikeConstructor<true, true, _Dummy>\n    {\n        // This trait is used to disable the tuple-like constructor when\n        // the UTypes... constructor should be selected instead.\n        // See LWG issue #2549.\n        template <class _Tuple>\n        using _PreferTupleLikeConstructor = __lazy_or<\n            // Don't attempt the two checks below if the tuple we are given\n            // has the same type as this tuple.\n            is_same<typename __uncvref<_Tuple>::type, tuple>,\n            __lazy_and<\n                __lazy_not<is_constructible<_Tp..., _Tuple>>,\n                __lazy_not<is_convertible<_Tuple, _Tp...>>\n            >\n        >;\n\n        template <class _Tuple>\n        static constexpr bool __enable_implicit() {\n            return __lazy_and<\n                __tuple_convertible<_Tuple, tuple>,\n                _PreferTupleLikeConstructor<_Tuple>\n            >::value;\n        }\n\n        template <class _Tuple>\n        static constexpr bool __enable_explicit() {\n            return __lazy_and<\n                __tuple_constructible<_Tuple, tuple>,\n                _PreferTupleLikeConstructor<_Tuple>,\n                __lazy_not<__tuple_convertible<_Tuple, tuple>>\n            >::value;\n        }\n    };\n\n    template <size_t _Jp, class ..._Up> friend _LIBCPP_CONSTEXPR_AFTER_CXX11\n        typename tuple_element<_Jp, tuple<_Up...> >::type& get(tuple<_Up...>&) _NOEXCEPT;\n    template <size_t _Jp, class ..._Up> friend _LIBCPP_CONSTEXPR_AFTER_CXX11\n        const typename tuple_element<_Jp, tuple<_Up...> >::type& get(const tuple<_Up...>&) _NOEXCEPT;\n    template <size_t _Jp, class ..._Up> friend _LIBCPP_CONSTEXPR_AFTER_CXX11\n        typename tuple_element<_Jp, tuple<_Up...> >::type&& get(tuple<_Up...>&&) _NOEXCEPT;\n    template <size_t _Jp, class ..._Up> friend _LIBCPP_CONSTEXPR_AFTER_CXX11\n        const typename tuple_element<_Jp, tuple<_Up...> >::type&& get(const tuple<_Up...>&&) _NOEXCEPT;\npublic:\n\n    template <bool _Dummy = true, class = typename enable_if<\n        _CheckArgsConstructor<_Dummy>::template __enable_default<_Tp...>()\n    >::type>\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR tuple()\n        _NOEXCEPT_(__all<is_nothrow_default_constructible<_Tp>::value...>::value) {}\n\n    tuple(tuple const&) = default;\n    tuple(tuple&&) = default;\n\n    template <class _AllocArgT, class _Alloc, bool _Dummy = true, class = typename enable_if<\n        __lazy_and<\n            is_same<allocator_arg_t, _AllocArgT>,\n            __lazy_all<__dependent_type<is_default_constructible<_Tp>, _Dummy>...>\n       >::value\n    >::type>\n    _LIBCPP_INLINE_VISIBILITY\n    tuple(_AllocArgT, _Alloc const& __a)\n      : __base_(allocator_arg_t(), __a,\n                    __tuple_indices<>(), __tuple_types<>(),\n                    typename __make_tuple_indices<sizeof...(_Tp), 0>::type(),\n                    __tuple_types<_Tp...>()) {}\n\n    template <bool _Dummy = true,\n              typename enable_if\n                      <\n                         _CheckArgsConstructor<\n                            _Dummy\n                         >::template __enable_implicit<_Tp const&...>(),\n                         bool\n                      >::type = false\n        >\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    tuple(const _Tp& ... __t) _NOEXCEPT_((__all<is_nothrow_copy_constructible<_Tp>::value...>::value))\n        : __base_(typename __make_tuple_indices<sizeof...(_Tp)>::type(),\n                typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(),\n                typename __make_tuple_indices<0>::type(),\n                typename __make_tuple_types<tuple, 0>::type(),\n                __t...\n               ) {}\n\n    template <bool _Dummy = true,\n              typename enable_if\n                      <\n                         _CheckArgsConstructor<\n                            _Dummy\n                         >::template __enable_explicit<_Tp const&...>(),\n                         bool\n                      >::type = false\n        >\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    explicit tuple(const _Tp& ... __t) _NOEXCEPT_((__all<is_nothrow_copy_constructible<_Tp>::value...>::value))\n        : __base_(typename __make_tuple_indices<sizeof...(_Tp)>::type(),\n                typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(),\n                typename __make_tuple_indices<0>::type(),\n                typename __make_tuple_types<tuple, 0>::type(),\n                __t...\n               ) {}\n\n    template <class _Alloc, bool _Dummy = true,\n              typename enable_if\n                      <\n                         _CheckArgsConstructor<\n                            _Dummy\n                         >::template __enable_implicit<_Tp const&...>(),\n                         bool\n                      >::type = false\n        >\n      _LIBCPP_INLINE_VISIBILITY\n      tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t)\n        : __base_(allocator_arg_t(), __a,\n                typename __make_tuple_indices<sizeof...(_Tp)>::type(),\n                typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(),\n                typename __make_tuple_indices<0>::type(),\n                typename __make_tuple_types<tuple, 0>::type(),\n                __t...\n               ) {}\n\n    template <class _Alloc, bool _Dummy = true,\n              typename enable_if\n                      <\n                         _CheckArgsConstructor<\n                            _Dummy\n                         >::template __enable_explicit<_Tp const&...>(),\n                         bool\n                      >::type = false\n        >\n      _LIBCPP_INLINE_VISIBILITY\n      explicit\n      tuple(allocator_arg_t, const _Alloc& __a, const _Tp& ... __t)\n        : __base_(allocator_arg_t(), __a,\n                typename __make_tuple_indices<sizeof...(_Tp)>::type(),\n                typename __make_tuple_types<tuple, sizeof...(_Tp)>::type(),\n                typename __make_tuple_indices<0>::type(),\n                typename __make_tuple_types<tuple, 0>::type(),\n                __t...\n               ) {}\n\n    template <class ..._Up,\n              bool _PackIsTuple = _PackExpandsToThisTuple<_Up...>::value,\n              typename enable_if\n                      <\n                         _CheckArgsConstructor<\n                             sizeof...(_Up) == sizeof...(_Tp)\n                             && !_PackIsTuple\n                         >::template __enable_implicit<_Up...>() ||\n                        _CheckArgsConstructor<\n                            _EnableImplicitReducedArityExtension\n                            && sizeof...(_Up) < sizeof...(_Tp)\n                            && !_PackIsTuple\n                         >::template __enable_implicit<_Up...>(),\n                         bool\n                      >::type = false\n             >\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n        tuple(_Up&&... __u)\n            _NOEXCEPT_((\n                is_nothrow_constructible<_BaseT,\n                    typename __make_tuple_indices<sizeof...(_Up)>::type,\n                    typename __make_tuple_types<tuple, sizeof...(_Up)>::type,\n                    typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type,\n                    typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type,\n                    _Up...\n                >::value\n            ))\n            : __base_(typename __make_tuple_indices<sizeof...(_Up)>::type(),\n                    typename __make_tuple_types<tuple, sizeof...(_Up)>::type(),\n                    typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(),\n                    typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(),\n                    _VSTD::forward<_Up>(__u)...) {}\n\n    template <class ..._Up,\n              typename enable_if\n                      <\n                         _CheckArgsConstructor<\n                             sizeof...(_Up) <= sizeof...(_Tp)\n                             && !_PackExpandsToThisTuple<_Up...>::value\n                         >::template __enable_explicit<_Up...>() ||\n                         _CheckArgsConstructor<\n                            !_EnableImplicitReducedArityExtension\n                            && sizeof...(_Up) < sizeof...(_Tp)\n                            && !_PackExpandsToThisTuple<_Up...>::value\n                         >::template __enable_implicit<_Up...>(),\n                         bool\n                      >::type = false\n             >\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n        explicit\n        tuple(_Up&&... __u)\n            _NOEXCEPT_((\n                is_nothrow_constructible<_BaseT,\n                    typename __make_tuple_indices<sizeof...(_Up)>::type,\n                    typename __make_tuple_types<tuple, sizeof...(_Up)>::type,\n                    typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type,\n                    typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type,\n                    _Up...\n                >::value\n            ))\n            : __base_(typename __make_tuple_indices<sizeof...(_Up)>::type(),\n                    typename __make_tuple_types<tuple, sizeof...(_Up)>::type(),\n                    typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(),\n                    typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(),\n                    _VSTD::forward<_Up>(__u)...) {}\n\n    template <class _Alloc, class ..._Up,\n              typename enable_if\n                      <\n                         _CheckArgsConstructor<\n                             sizeof...(_Up) == sizeof...(_Tp) &&\n                             !_PackExpandsToThisTuple<_Up...>::value\n                         >::template __enable_implicit<_Up...>(),\n                         bool\n                      >::type = false\n             >\n        _LIBCPP_INLINE_VISIBILITY\n        tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u)\n            : __base_(allocator_arg_t(), __a,\n                    typename __make_tuple_indices<sizeof...(_Up)>::type(),\n                    typename __make_tuple_types<tuple, sizeof...(_Up)>::type(),\n                    typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(),\n                    typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(),\n                    _VSTD::forward<_Up>(__u)...) {}\n\n    template <class _Alloc, class ..._Up,\n              typename enable_if\n                      <\n                         _CheckArgsConstructor<\n                             sizeof...(_Up) == sizeof...(_Tp) &&\n                             !_PackExpandsToThisTuple<_Up...>::value\n                         >::template __enable_explicit<_Up...>(),\n                         bool\n                      >::type = false\n             >\n        _LIBCPP_INLINE_VISIBILITY\n        explicit\n        tuple(allocator_arg_t, const _Alloc& __a, _Up&&... __u)\n            : __base_(allocator_arg_t(), __a,\n                    typename __make_tuple_indices<sizeof...(_Up)>::type(),\n                    typename __make_tuple_types<tuple, sizeof...(_Up)>::type(),\n                    typename __make_tuple_indices<sizeof...(_Tp), sizeof...(_Up)>::type(),\n                    typename __make_tuple_types<tuple, sizeof...(_Tp), sizeof...(_Up)>::type(),\n                    _VSTD::forward<_Up>(__u)...) {}\n\n    template <class _Tuple,\n              typename enable_if\n                      <\n                         _CheckTupleLikeConstructor<\n                             __tuple_like_with_size<_Tuple, sizeof...(_Tp)>::value\n                             && !_PackExpandsToThisTuple<_Tuple>::value\n                         >::template __enable_implicit<_Tuple>(),\n                         bool\n                      >::type = false\n             >\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n        tuple(_Tuple&& __t) _NOEXCEPT_((is_nothrow_constructible<_BaseT, _Tuple>::value))\n            : __base_(_VSTD::forward<_Tuple>(__t)) {}\n\n    template <class _Tuple,\n              typename enable_if\n                      <\n                         _CheckTupleLikeConstructor<\n                             __tuple_like_with_size<_Tuple, sizeof...(_Tp)>::value\n                             && !_PackExpandsToThisTuple<_Tuple>::value\n                         >::template __enable_explicit<_Tuple>(),\n                         bool\n                      >::type = false\n             >\n        _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n        explicit\n        tuple(_Tuple&& __t) _NOEXCEPT_((is_nothrow_constructible<_BaseT, _Tuple>::value))\n            : __base_(_VSTD::forward<_Tuple>(__t)) {}\n\n    template <class _Alloc, class _Tuple,\n              typename enable_if\n                      <\n                         _CheckTupleLikeConstructor<\n                             __tuple_like_with_size<_Tuple, sizeof...(_Tp)>::value\n                         >::template __enable_implicit<_Tuple>(),\n                         bool\n                      >::type = false\n             >\n        _LIBCPP_INLINE_VISIBILITY\n        tuple(allocator_arg_t, const _Alloc& __a, _Tuple&& __t)\n            : __base_(allocator_arg_t(), __a, _VSTD::forward<_Tuple>(__t)) {}\n\n    template <class _Alloc, class _Tuple,\n              typename enable_if\n                      <\n                         _CheckTupleLikeConstructor<\n                             __tuple_like_with_size<_Tuple, sizeof...(_Tp)>::value\n                         >::template __enable_explicit<_Tuple>(),\n                         bool\n                      >::type = false\n             >\n        _LIBCPP_INLINE_VISIBILITY\n        explicit\n        tuple(allocator_arg_t, const _Alloc& __a, _Tuple&& __t)\n            : __base_(allocator_arg_t(), __a, _VSTD::forward<_Tuple>(__t)) {}\n\n    using _CanCopyAssign = __all<is_copy_assignable<_Tp>::value...>;\n    using _CanMoveAssign = __all<is_move_assignable<_Tp>::value...>;\n\n    _LIBCPP_INLINE_VISIBILITY\n    tuple& operator=(typename conditional<_CanCopyAssign::value, tuple, __nat>::type const& __t)\n        _NOEXCEPT_((__all<is_nothrow_copy_assignable<_Tp>::value...>::value))\n    {\n        __base_.operator=(__t.__base_);\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    tuple& operator=(typename conditional<_CanMoveAssign::value, tuple, __nat>::type&& __t)\n        _NOEXCEPT_((__all<is_nothrow_move_assignable<_Tp>::value...>::value))\n    {\n        __base_.operator=(static_cast<_BaseT&&>(__t.__base_));\n        return *this;\n    }\n\n    template <class _Tuple,\n              class = typename enable_if\n                      <\n                         __tuple_assignable<_Tuple, tuple>::value\n                      >::type\n             >\n        _LIBCPP_INLINE_VISIBILITY\n        tuple&\n        operator=(_Tuple&& __t) _NOEXCEPT_((is_nothrow_assignable<_BaseT&, _Tuple>::value))\n        {\n            __base_.operator=(_VSTD::forward<_Tuple>(__t));\n            return *this;\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(tuple& __t) _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value)\n        {__base_.swap(__t.__base_);}\n};\n\ntemplate <>\nclass _LIBCPP_TEMPLATE_VIS tuple<>\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    _LIBCPP_CONSTEXPR tuple() _NOEXCEPT {}\n    template <class _Alloc>\n    _LIBCPP_INLINE_VISIBILITY\n        tuple(allocator_arg_t, const _Alloc&) _NOEXCEPT {}\n    template <class _Alloc>\n    _LIBCPP_INLINE_VISIBILITY\n        tuple(allocator_arg_t, const _Alloc&, const tuple&) _NOEXCEPT {}\n    template <class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n        tuple(array<_Up, 0>) _NOEXCEPT {}\n    template <class _Alloc, class _Up>\n    _LIBCPP_INLINE_VISIBILITY\n        tuple(allocator_arg_t, const _Alloc&, array<_Up, 0>) _NOEXCEPT {}\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(tuple&) _NOEXCEPT {}\n};\n\n#ifdef __cpp_deduction_guides\n// NOTE: These are not yet standardized, but are required to simulate the\n// implicit deduction guide that should be generated had libc++ declared the\n// tuple-like constructors \"correctly\"\ntemplate <class _Alloc, class ..._Args>\ntuple(allocator_arg_t, const _Alloc&, tuple<_Args...> const&) -> tuple<_Args...>;\ntemplate <class _Alloc, class ..._Args>\ntuple(allocator_arg_t, const _Alloc&, tuple<_Args...>&&) -> tuple<_Args...>;\n#endif\n\ntemplate <class ..._Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __all<__is_swappable<_Tp>::value...>::value,\n    void\n>::type\nswap(tuple<_Tp...>& __t, tuple<_Tp...>& __u)\n                 _NOEXCEPT_(__all<__is_nothrow_swappable<_Tp>::value...>::value)\n    {__t.swap(__u);}\n\n// get\n\ntemplate <size_t _Ip, class ..._Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename tuple_element<_Ip, tuple<_Tp...> >::type&\nget(tuple<_Tp...>& __t) _NOEXCEPT\n{\n    typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type;\n    return static_cast<__tuple_leaf<_Ip, type>&>(__t.__base_).get();\n}\n\ntemplate <size_t _Ip, class ..._Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst typename tuple_element<_Ip, tuple<_Tp...> >::type&\nget(const tuple<_Tp...>& __t) _NOEXCEPT\n{\n    typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type;\n    return static_cast<const __tuple_leaf<_Ip, type>&>(__t.__base_).get();\n}\n\ntemplate <size_t _Ip, class ..._Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename tuple_element<_Ip, tuple<_Tp...> >::type&&\nget(tuple<_Tp...>&& __t) _NOEXCEPT\n{\n    typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type;\n    return static_cast<type&&>(\n             static_cast<__tuple_leaf<_Ip, type>&&>(__t.__base_).get());\n}\n\ntemplate <size_t _Ip, class ..._Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst typename tuple_element<_Ip, tuple<_Tp...> >::type&&\nget(const tuple<_Tp...>&& __t) _NOEXCEPT\n{\n    typedef typename tuple_element<_Ip, tuple<_Tp...> >::type type;\n    return static_cast<const type&&>(\n             static_cast<const __tuple_leaf<_Ip, type>&&>(__t.__base_).get());\n}\n\n#if _LIBCPP_STD_VER > 11\n\nnamespace __find_detail {\n\nstatic constexpr size_t __not_found = -1;\nstatic constexpr size_t __ambiguous = __not_found - 1;\n\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr size_t __find_idx_return(size_t __curr_i, size_t __res, bool __matches) {\n    return !__matches ? __res :\n        (__res == __not_found ? __curr_i : __ambiguous);\n}\n\ntemplate <size_t _Nx>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr size_t __find_idx(size_t __i, const bool (&__matches)[_Nx]) {\n  return __i == _Nx ? __not_found :\n      __find_idx_return(__i, __find_idx(__i + 1, __matches), __matches[__i]);\n}\n\ntemplate <class _T1, class ..._Args>\nstruct __find_exactly_one_checked {\n  static constexpr bool __matches[] = {is_same<_T1, _Args>::value...};\n    static constexpr size_t value = __find_detail::__find_idx(0, __matches);\n    static_assert (value != __not_found, \"type not found in type list\" );\n    static_assert(value != __ambiguous,\"type occurs more than once in type list\");\n};\n\ntemplate <class _T1>\nstruct __find_exactly_one_checked<_T1> {\n    static_assert(!is_same<_T1, _T1>::value, \"type not in empty type list\");\n};\n\n} // namespace __find_detail;\n\ntemplate <typename _T1, typename... _Args>\nstruct __find_exactly_one_t\n    : public __find_detail::__find_exactly_one_checked<_T1, _Args...> {\n};\n\ntemplate <class _T1, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1& get(tuple<_Args...>& __tup) noexcept\n{\n    return _VSTD::get<__find_exactly_one_t<_T1, _Args...>::value>(__tup);\n}\n\ntemplate <class _T1, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 const& get(tuple<_Args...> const& __tup) noexcept\n{\n    return _VSTD::get<__find_exactly_one_t<_T1, _Args...>::value>(__tup);\n}\n\ntemplate <class _T1, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1&& get(tuple<_Args...>&& __tup) noexcept\n{\n    return _VSTD::get<__find_exactly_one_t<_T1, _Args...>::value>(_VSTD::move(__tup));\n}\n\ntemplate <class _T1, class... _Args>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 const&& get(tuple<_Args...> const&& __tup) noexcept\n{\n    return _VSTD::get<__find_exactly_one_t<_T1, _Args...>::value>(_VSTD::move(__tup));\n}\n\n#endif\n\n// tie\n\ntemplate <class ..._Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntuple<_Tp&...>\ntie(_Tp&... __t) _NOEXCEPT\n{\n    return tuple<_Tp&...>(__t...);\n}\n\ntemplate <class _Up>\nstruct __ignore_t\n{\n    template <class _Tp>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    const __ignore_t& operator=(_Tp&&) const {return *this;}\n};\n\nnamespace {\n  constexpr __ignore_t<unsigned char> ignore = __ignore_t<unsigned char>();\n}\n\ntemplate <class _Tp>\nstruct __make_tuple_return_impl\n{\n    typedef _Tp type;\n};\n\ntemplate <class _Tp>\nstruct __make_tuple_return_impl<reference_wrapper<_Tp> >\n{\n    typedef _Tp& type;\n};\n\ntemplate <class _Tp>\nstruct __make_tuple_return\n{\n    typedef typename __make_tuple_return_impl<typename decay<_Tp>::type>::type type;\n};\n\ntemplate <class... _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntuple<typename __make_tuple_return<_Tp>::type...>\nmake_tuple(_Tp&&... __t)\n{\n    return tuple<typename __make_tuple_return<_Tp>::type...>(_VSTD::forward<_Tp>(__t)...);\n}\n\ntemplate <class... _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntuple<_Tp&&...>\nforward_as_tuple(_Tp&&... __t) _NOEXCEPT\n{\n    return tuple<_Tp&&...>(_VSTD::forward<_Tp>(__t)...);\n}\n\ntemplate <size_t _Ip>\nstruct __tuple_equal\n{\n    template <class _Tp, class _Up>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _Tp& __x, const _Up& __y)\n    {\n        return __tuple_equal<_Ip - 1>()(__x, __y) && _VSTD::get<_Ip-1>(__x) == _VSTD::get<_Ip-1>(__y);\n    }\n};\n\ntemplate <>\nstruct __tuple_equal<0>\n{\n    template <class _Tp, class _Up>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _Tp&, const _Up&)\n    {\n        return true;\n    }\n};\n\ntemplate <class ..._Tp, class ..._Up>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator==(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)\n{\n    return __tuple_equal<sizeof...(_Tp)>()(__x, __y);\n}\n\ntemplate <class ..._Tp, class ..._Up>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator!=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <size_t _Ip>\nstruct __tuple_less\n{\n    template <class _Tp, class _Up>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _Tp& __x, const _Up& __y)\n    {\n        const size_t __idx = tuple_size<_Tp>::value - _Ip;\n        if (_VSTD::get<__idx>(__x) < _VSTD::get<__idx>(__y))\n            return true;\n        if (_VSTD::get<__idx>(__y) < _VSTD::get<__idx>(__x))\n            return false;\n        return __tuple_less<_Ip-1>()(__x, __y);\n    }\n};\n\ntemplate <>\nstruct __tuple_less<0>\n{\n    template <class _Tp, class _Up>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    bool operator()(const _Tp&, const _Up&)\n    {\n        return false;\n    }\n};\n\ntemplate <class ..._Tp, class ..._Up>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator<(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)\n{\n    return __tuple_less<sizeof...(_Tp)>()(__x, __y);\n}\n\ntemplate <class ..._Tp, class ..._Up>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator>(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class ..._Tp, class ..._Up>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator>=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class ..._Tp, class ..._Up>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator<=(const tuple<_Tp...>& __x, const tuple<_Up...>& __y)\n{\n    return !(__y < __x);\n}\n\n// tuple_cat\n\ntemplate <class _Tp, class _Up> struct __tuple_cat_type;\n\ntemplate <class ..._Ttypes, class ..._Utypes>\nstruct __tuple_cat_type<tuple<_Ttypes...>, __tuple_types<_Utypes...> >\n{\n    typedef tuple<_Ttypes..., _Utypes...> type;\n};\n\ntemplate <class _ResultTuple, bool _Is_Tuple0TupleLike, class ..._Tuples>\nstruct __tuple_cat_return_1\n{\n};\n\ntemplate <class ..._Types, class _Tuple0>\nstruct __tuple_cat_return_1<tuple<_Types...>, true, _Tuple0>\n{\n    typedef typename __tuple_cat_type<tuple<_Types...>,\n            typename __make_tuple_types<typename remove_reference<_Tuple0>::type>::type>::type\n                                                                           type;\n};\n\ntemplate <class ..._Types, class _Tuple0, class _Tuple1, class ..._Tuples>\nstruct __tuple_cat_return_1<tuple<_Types...>, true, _Tuple0, _Tuple1, _Tuples...>\n    : public __tuple_cat_return_1<\n                 typename __tuple_cat_type<\n                     tuple<_Types...>,\n                     typename __make_tuple_types<typename remove_reference<_Tuple0>::type>::type\n                 >::type,\n                 __tuple_like<typename remove_reference<_Tuple1>::type>::value,\n                 _Tuple1, _Tuples...>\n{\n};\n\ntemplate <class ..._Tuples> struct __tuple_cat_return;\n\ntemplate <class _Tuple0, class ..._Tuples>\nstruct __tuple_cat_return<_Tuple0, _Tuples...>\n    : public __tuple_cat_return_1<tuple<>,\n         __tuple_like<typename remove_reference<_Tuple0>::type>::value, _Tuple0,\n                                                                     _Tuples...>\n{\n};\n\ntemplate <>\nstruct __tuple_cat_return<>\n{\n    typedef tuple<> type;\n};\n\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntuple<>\ntuple_cat()\n{\n    return tuple<>();\n}\n\ntemplate <class _Rp, class _Indices, class _Tuple0, class ..._Tuples>\nstruct __tuple_cat_return_ref_imp;\n\ntemplate <class ..._Types, size_t ..._I0, class _Tuple0>\nstruct __tuple_cat_return_ref_imp<tuple<_Types...>, __tuple_indices<_I0...>, _Tuple0>\n{\n    typedef typename remove_reference<_Tuple0>::type _T0;\n    typedef tuple<_Types..., typename __apply_cv<_Tuple0,\n                          typename tuple_element<_I0, _T0>::type>::type&&...> type;\n};\n\ntemplate <class ..._Types, size_t ..._I0, class _Tuple0, class _Tuple1, class ..._Tuples>\nstruct __tuple_cat_return_ref_imp<tuple<_Types...>, __tuple_indices<_I0...>,\n                                  _Tuple0, _Tuple1, _Tuples...>\n    : public __tuple_cat_return_ref_imp<\n         tuple<_Types..., typename __apply_cv<_Tuple0,\n               typename tuple_element<_I0,\n                  typename remove_reference<_Tuple0>::type>::type>::type&&...>,\n         typename __make_tuple_indices<tuple_size<typename\n                                 remove_reference<_Tuple1>::type>::value>::type,\n         _Tuple1, _Tuples...>\n{\n};\n\ntemplate <class _Tuple0, class ..._Tuples>\nstruct __tuple_cat_return_ref\n    : public __tuple_cat_return_ref_imp<tuple<>,\n               typename __make_tuple_indices<\n                        tuple_size<typename remove_reference<_Tuple0>::type>::value\n               >::type, _Tuple0, _Tuples...>\n{\n};\n\ntemplate <class _Types, class _I0, class _J0>\nstruct __tuple_cat;\n\ntemplate <class ..._Types, size_t ..._I0, size_t ..._J0>\nstruct __tuple_cat<tuple<_Types...>, __tuple_indices<_I0...>, __tuple_indices<_J0...> >\n{\n    template <class _Tuple0>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&>::type\n    operator()(tuple<_Types...> __t, _Tuple0&& __t0)\n    {\n        return forward_as_tuple(_VSTD::forward<_Types>(_VSTD::get<_I0>(__t))...,\n                                      _VSTD::get<_J0>(_VSTD::forward<_Tuple0>(__t0))...);\n    }\n\n    template <class _Tuple0, class _Tuple1, class ..._Tuples>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    typename __tuple_cat_return_ref<tuple<_Types...>&&, _Tuple0&&, _Tuple1&&, _Tuples&&...>::type\n    operator()(tuple<_Types...> __t, _Tuple0&& __t0, _Tuple1&& __t1, _Tuples&& ...__tpls)\n    {\n        typedef typename remove_reference<_Tuple0>::type _T0;\n        typedef typename remove_reference<_Tuple1>::type _T1;\n        return __tuple_cat<\n           tuple<_Types..., typename __apply_cv<_Tuple0, typename tuple_element<_J0, _T0>::type>::type&&...>,\n           typename __make_tuple_indices<sizeof ...(_Types) + tuple_size<_T0>::value>::type,\n           typename __make_tuple_indices<tuple_size<_T1>::value>::type>()\n                           (forward_as_tuple(\n                              _VSTD::forward<_Types>(_VSTD::get<_I0>(__t))...,\n                              _VSTD::get<_J0>(_VSTD::forward<_Tuple0>(__t0))...\n                            ),\n                            _VSTD::forward<_Tuple1>(__t1),\n                            _VSTD::forward<_Tuples>(__tpls)...);\n    }\n};\n\ntemplate <class _Tuple0, class... _Tuples>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename __tuple_cat_return<_Tuple0, _Tuples...>::type\ntuple_cat(_Tuple0&& __t0, _Tuples&&... __tpls)\n{\n    typedef typename remove_reference<_Tuple0>::type _T0;\n    return __tuple_cat<tuple<>, __tuple_indices<>,\n                  typename __make_tuple_indices<tuple_size<_T0>::value>::type>()\n                  (tuple<>(), _VSTD::forward<_Tuple0>(__t0),\n                                            _VSTD::forward<_Tuples>(__tpls)...);\n}\n\ntemplate <class ..._Tp, class _Alloc>\nstruct _LIBCPP_TEMPLATE_VIS uses_allocator<tuple<_Tp...>, _Alloc>\n    : true_type {};\n\ntemplate <class _T1, class _T2>\ntemplate <class... _Args1, class... _Args2, size_t ..._I1, size_t ..._I2>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_T1, _T2>::pair(piecewise_construct_t,\n                     tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args,\n                     __tuple_indices<_I1...>, __tuple_indices<_I2...>)\n    :  first(_VSTD::forward<_Args1>(_VSTD::get<_I1>( __first_args))...),\n      second(_VSTD::forward<_Args2>(_VSTD::get<_I2>(__second_args))...)\n{\n}\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Tp>\nconstexpr size_t tuple_size_v = tuple_size<_Tp>::value;\n\n#define _LIBCPP_NOEXCEPT_RETURN(...) noexcept(noexcept(__VA_ARGS__)) { return __VA_ARGS__; }\n\ntemplate <class _Fn, class _Tuple, size_t ..._Id>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr decltype(auto) __apply_tuple_impl(_Fn && __f, _Tuple && __t,\n                                            __tuple_indices<_Id...>)\n_LIBCPP_NOEXCEPT_RETURN(\n    _VSTD::__invoke_constexpr(\n        _VSTD::forward<_Fn>(__f),\n        _VSTD::get<_Id>(_VSTD::forward<_Tuple>(__t))...)\n)\n\ntemplate <class _Fn, class _Tuple>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr decltype(auto) apply(_Fn && __f, _Tuple && __t)\n_LIBCPP_NOEXCEPT_RETURN(\n    _VSTD::__apply_tuple_impl(\n        _VSTD::forward<_Fn>(__f), _VSTD::forward<_Tuple>(__t),\n        typename __make_tuple_indices<tuple_size_v<decay_t<_Tuple>>>::type{})\n)\n\ntemplate <class _Tp, class _Tuple, size_t... _Idx>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _Tp __make_from_tuple_impl(_Tuple&& __t, __tuple_indices<_Idx...>)\n_LIBCPP_NOEXCEPT_RETURN(\n    _Tp(_VSTD::get<_Idx>(_VSTD::forward<_Tuple>(__t))...)\n)\n\ntemplate <class _Tp, class _Tuple>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _Tp make_from_tuple(_Tuple&& __t)\n_LIBCPP_NOEXCEPT_RETURN(\n    _VSTD::__make_from_tuple_impl<_Tp>(_VSTD::forward<_Tuple>(__t),\n        typename __make_tuple_indices<tuple_size_v<decay_t<_Tuple>>>::type{})\n)\n\n#undef _LIBCPP_NOEXCEPT_RETURN\n\n#endif // _LIBCPP_STD_VER > 14\n\n#endif // !defined(_LIBCPP_CXX03_LANG)\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_TUPLE\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits",
    "content": "// -*- C++ -*-\n//===------------------------ type_traits ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_TYPE_TRAITS\n#define _LIBCPP_TYPE_TRAITS\n\n/*\n    type_traits synopsis\n\nnamespace std\n{\n\n    // helper class:\n    template <class T, T v> struct integral_constant;\n    typedef integral_constant<bool, true>  true_type;   // C++11\n    typedef integral_constant<bool, false> false_type;  // C++11\n    \n    template <bool B>                                   // C++14\n    using bool_constant = integral_constant<bool, B>;   // C++14\n    typedef bool_constant<true> true_type;              // C++14\n    typedef bool_constant<false> false_type;            // C++14\n\n    // helper traits\n    template <bool, class T = void> struct enable_if;\n    template <bool, class T, class F> struct conditional;\n\n    // Primary classification traits:\n    template <class T> struct is_void;\n    template <class T> struct is_null_pointer;  // C++14\n    template <class T> struct is_integral;\n    template <class T> struct is_floating_point;\n    template <class T> struct is_array;\n    template <class T> struct is_pointer;\n    template <class T> struct is_lvalue_reference;\n    template <class T> struct is_rvalue_reference;\n    template <class T> struct is_member_object_pointer;\n    template <class T> struct is_member_function_pointer;\n    template <class T> struct is_enum;\n    template <class T> struct is_union;\n    template <class T> struct is_class;\n    template <class T> struct is_function;\n\n    // Secondary classification traits:\n    template <class T> struct is_reference;\n    template <class T> struct is_arithmetic;\n    template <class T> struct is_fundamental;\n    template <class T> struct is_member_pointer;\n    template <class T> struct is_scalar;\n    template <class T> struct is_object;\n    template <class T> struct is_compound;\n\n    // Const-volatile properties and transformations:\n    template <class T> struct is_const;\n    template <class T> struct is_volatile;\n    template <class T> struct remove_const;\n    template <class T> struct remove_volatile;\n    template <class T> struct remove_cv;\n    template <class T> struct add_const;\n    template <class T> struct add_volatile;\n    template <class T> struct add_cv;\n\n    // Reference transformations:\n    template <class T> struct remove_reference;\n    template <class T> struct add_lvalue_reference;\n    template <class T> struct add_rvalue_reference;\n\n    // Pointer transformations:\n    template <class T> struct remove_pointer;\n    template <class T> struct add_pointer;\n\n    // Integral properties:\n    template <class T> struct is_signed;\n    template <class T> struct is_unsigned;\n    template <class T> struct make_signed;\n    template <class T> struct make_unsigned;\n\n    // Array properties and transformations:\n    template <class T> struct rank;\n    template <class T, unsigned I = 0> struct extent;\n    template <class T> struct remove_extent;\n    template <class T> struct remove_all_extents;\n\n    // Member introspection:\n    template <class T> struct is_pod;\n    template <class T> struct is_trivial;\n    template <class T> struct is_trivially_copyable;\n    template <class T> struct is_standard_layout;\n    template <class T> struct is_literal_type;\n    template <class T> struct is_empty;\n    template <class T> struct is_polymorphic;\n    template <class T> struct is_abstract;\n    template <class T> struct is_final; // C++14\n    template <class T> struct is_aggregate; // C++17\n\n    template <class T, class... Args> struct is_constructible;\n    template <class T>                struct is_default_constructible;\n    template <class T>                struct is_copy_constructible;\n    template <class T>                struct is_move_constructible;\n    template <class T, class U>       struct is_assignable;\n    template <class T>                struct is_copy_assignable;\n    template <class T>                struct is_move_assignable;\n    template <class T, class U>       struct is_swappable_with;       // C++17\n    template <class T>                struct is_swappable;            // C++17\n    template <class T>                struct is_destructible;\n\n    template <class T, class... Args> struct is_trivially_constructible;\n    template <class T>                struct is_trivially_default_constructible;\n    template <class T>                struct is_trivially_copy_constructible;\n    template <class T>                struct is_trivially_move_constructible;\n    template <class T, class U>       struct is_trivially_assignable;\n    template <class T>                struct is_trivially_copy_assignable;\n    template <class T>                struct is_trivially_move_assignable;\n    template <class T>                struct is_trivially_destructible;\n\n    template <class T, class... Args> struct is_nothrow_constructible;\n    template <class T>                struct is_nothrow_default_constructible;\n    template <class T>                struct is_nothrow_copy_constructible;\n    template <class T>                struct is_nothrow_move_constructible;\n    template <class T, class U>       struct is_nothrow_assignable;\n    template <class T>                struct is_nothrow_copy_assignable;\n    template <class T>                struct is_nothrow_move_assignable;\n    template <class T, class U>       struct is_nothrow_swappable_with; // C++17\n    template <class T>                struct is_nothrow_swappable;      // C++17\n    template <class T>                struct is_nothrow_destructible;\n\n    template <class T> struct has_virtual_destructor;\n\n    // Relationships between types:\n    template <class T, class U> struct is_same;\n    template <class Base, class Derived> struct is_base_of;\n    template <class From, class To> struct is_convertible;\n\n    template <class, class R = void> struct is_callable; // not defined\n    template <class Fn, class... ArgTypes, class R>\n      struct is_callable<Fn(ArgTypes...), R>;\n\n    template <class, class R = void> struct is_nothrow_callable; // not defined\n    template <class Fn, class... ArgTypes, class R>\n      struct is_nothrow_callable<Fn(ArgTypes...), R>;\n\n    // Alignment properties and transformations:\n    template <class T> struct alignment_of;\n    template <size_t Len, size_t Align = most_stringent_alignment_requirement>\n        struct aligned_storage;\n    template <size_t Len, class... Types> struct aligned_union;\n\n    template <class T> struct decay;\n    template <class... T> struct common_type;\n    template <class T> struct underlying_type;\n    template <class> class result_of; // undefined\n    template <class Fn, class... ArgTypes> class result_of<Fn(ArgTypes...)>;\n\n    // const-volatile modifications:\n    template <class T>\n      using remove_const_t    = typename remove_const<T>::type;  // C++14\n    template <class T>\n      using remove_volatile_t = typename remove_volatile<T>::type;  // C++14\n    template <class T>\n      using remove_cv_t       = typename remove_cv<T>::type;  // C++14\n    template <class T>\n      using add_const_t       = typename add_const<T>::type;  // C++14\n    template <class T>\n      using add_volatile_t    = typename add_volatile<T>::type;  // C++14\n    template <class T>\n      using add_cv_t          = typename add_cv<T>::type;  // C++14\n  \n    // reference modifications:\n    template <class T>\n      using remove_reference_t     = typename remove_reference<T>::type;  // C++14\n    template <class T>\n      using add_lvalue_reference_t = typename add_lvalue_reference<T>::type;  // C++14\n    template <class T>\n      using add_rvalue_reference_t = typename add_rvalue_reference<T>::type;  // C++14\n  \n    // sign modifications:\n    template <class T>\n      using make_signed_t   = typename make_signed<T>::type;  // C++14\n    template <class T>\n      using make_unsigned_t = typename make_unsigned<T>::type;  // C++14\n  \n    // array modifications:\n    template <class T>\n      using remove_extent_t      = typename remove_extent<T>::type;  // C++14\n    template <class T>\n      using remove_all_extents_t = typename remove_all_extents<T>::type;  // C++14\n\n    // pointer modifications:\n    template <class T>\n      using remove_pointer_t = typename remove_pointer<T>::type;  // C++14\n    template <class T>\n      using add_pointer_t    = typename add_pointer<T>::type;  // C++14\n\n    // other transformations:\n    template <size_t Len, std::size_t Align=default-alignment>\n      using aligned_storage_t = typename aligned_storage<Len,Align>::type;  // C++14\n    template <std::size_t Len, class... Types>\n      using aligned_union_t   = typename aligned_union<Len,Types...>::type;  // C++14\n    template <class T>\n      using decay_t           = typename decay<T>::type;  // C++14\n    template <bool b, class T=void>\n      using enable_if_t       = typename enable_if<b,T>::type;  // C++14\n    template <bool b, class T, class F>\n      using conditional_t     = typename conditional<b,T,F>::type;  // C++14\n    template <class... T>\n      using common_type_t     = typename common_type<T...>::type;  // C++14\n    template <class T>\n      using underlying_type_t = typename underlying_type<T>::type;  // C++14\n    template <class F, class... ArgTypes>\n      using result_of_t       = typename result_of<F(ArgTypes...)>::type;  // C++14\n\n    template <class...>\n      using void_t = void;   // C++17\n      \n      // See C++14 20.10.4.1, primary type categories\n      template <class T> constexpr bool is_void_v\n        = is_void<T>::value;                                             // C++17\n      template <class T> constexpr bool is_null_pointer_v\n        = is_null_pointer<T>::value;                                     // C++17\n      template <class T> constexpr bool is_integral_v\n        = is_integral<T>::value;                                         // C++17\n      template <class T> constexpr bool is_floating_point_v\n        = is_floating_point<T>::value;                                   // C++17\n      template <class T> constexpr bool is_array_v\n        = is_array<T>::value;                                            // C++17\n      template <class T> constexpr bool is_pointer_v\n        = is_pointer<T>::value;                                          // C++17\n      template <class T> constexpr bool is_lvalue_reference_v\n        = is_lvalue_reference<T>::value;                                 // C++17\n      template <class T> constexpr bool is_rvalue_reference_v\n        = is_rvalue_reference<T>::value;                                 // C++17\n      template <class T> constexpr bool is_member_object_pointer_v\n        = is_member_object_pointer<T>::value;                            // C++17\n      template <class T> constexpr bool is_member_function_pointer_v\n        = is_member_function_pointer<T>::value;                          // C++17\n      template <class T> constexpr bool is_enum_v\n        = is_enum<T>::value;                                             // C++17\n      template <class T> constexpr bool is_union_v\n        = is_union<T>::value;                                            // C++17\n      template <class T> constexpr bool is_class_v\n        = is_class<T>::value;                                            // C++17\n      template <class T> constexpr bool is_function_v\n        = is_function<T>::value;                                         // C++17\n\n      // See C++14 20.10.4.2, composite type categories\n      template <class T> constexpr bool is_reference_v\n        = is_reference<T>::value;                                        // C++17\n      template <class T> constexpr bool is_arithmetic_v\n        = is_arithmetic<T>::value;                                       // C++17\n      template <class T> constexpr bool is_fundamental_v\n        = is_fundamental<T>::value;                                      // C++17\n      template <class T> constexpr bool is_object_v\n        = is_object<T>::value;                                           // C++17\n      template <class T> constexpr bool is_scalar_v\n        = is_scalar<T>::value;                                           // C++17\n      template <class T> constexpr bool is_compound_v\n        = is_compound<T>::value;                                         // C++17\n      template <class T> constexpr bool is_member_pointer_v\n        = is_member_pointer<T>::value;                                   // C++17\n\n      // See C++14 20.10.4.3, type properties\n      template <class T> constexpr bool is_const_v\n        = is_const<T>::value;                                            // C++17\n      template <class T> constexpr bool is_volatile_v\n        = is_volatile<T>::value;                                         // C++17\n      template <class T> constexpr bool is_trivial_v\n        = is_trivial<T>::value;                                          // C++17\n      template <class T> constexpr bool is_trivially_copyable_v\n        = is_trivially_copyable<T>::value;                               // C++17\n      template <class T> constexpr bool is_standard_layout_v\n        = is_standard_layout<T>::value;                                  // C++17\n      template <class T> constexpr bool is_pod_v\n        = is_pod<T>::value;                                              // C++17\n      template <class T> constexpr bool is_literal_type_v\n        = is_literal_type<T>::value;                                     // C++17\n      template <class T> constexpr bool is_empty_v\n        = is_empty<T>::value;                                            // C++17\n      template <class T> constexpr bool is_polymorphic_v\n        = is_polymorphic<T>::value;                                      // C++17\n      template <class T> constexpr bool is_abstract_v\n        = is_abstract<T>::value;                                         // C++17\n      template <class T> constexpr bool is_final_v\n        = is_final<T>::value;                                            // C++17\n      template <class T> constexpr bool is_aggregate_v\n        = is_aggregate<T>::value;                                        // C++17\n      template <class T> constexpr bool is_signed_v\n        = is_signed<T>::value;                                           // C++17\n      template <class T> constexpr bool is_unsigned_v\n        = is_unsigned<T>::value;                                         // C++17\n      template <class T, class... Args> constexpr bool is_constructible_v\n        = is_constructible<T, Args...>::value;                           // C++17\n      template <class T> constexpr bool is_default_constructible_v\n        = is_default_constructible<T>::value;                            // C++17\n      template <class T> constexpr bool is_copy_constructible_v\n        = is_copy_constructible<T>::value;                               // C++17\n      template <class T> constexpr bool is_move_constructible_v\n        = is_move_constructible<T>::value;                               // C++17\n      template <class T, class U> constexpr bool is_assignable_v\n        = is_assignable<T, U>::value;                                    // C++17\n      template <class T> constexpr bool is_copy_assignable_v\n        = is_copy_assignable<T>::value;                                  // C++17\n      template <class T> constexpr bool is_move_assignable_v\n        = is_move_assignable<T>::value;                                  // C++17\n      template <class T, class U> constexpr bool is_swappable_with_v\n        = is_swappable_with<T, U>::value;                                // C++17\n      template <class T> constexpr bool is_swappable_v\n        = is_swappable<T>::value;                                        // C++17\n      template <class T> constexpr bool is_destructible_v\n        = is_destructible<T>::value;                                     // C++17\n      template <class T, class... Args> constexpr bool is_trivially_constructible_v\n        = is_trivially_constructible<T, Args...>::value;                 // C++17\n      template <class T> constexpr bool is_trivially_default_constructible_v\n        = is_trivially_default_constructible<T>::value;                  // C++17\n      template <class T> constexpr bool is_trivially_copy_constructible_v\n        = is_trivially_copy_constructible<T>::value;                     // C++17\n      template <class T> constexpr bool is_trivially_move_constructible_v\n        = is_trivially_move_constructible<T>::value;                     // C++17\n      template <class T, class U> constexpr bool is_trivially_assignable_v\n        = is_trivially_assignable<T, U>::value;                          // C++17\n      template <class T> constexpr bool is_trivially_copy_assignable_v\n        = is_trivially_copy_assignable<T>::value;                        // C++17\n      template <class T> constexpr bool is_trivially_move_assignable_v\n        = is_trivially_move_assignable<T>::value;                        // C++17\n      template <class T> constexpr bool is_trivially_destructible_v\n        = is_trivially_destructible<T>::value;                           // C++17\n      template <class T, class... Args> constexpr bool is_nothrow_constructible_v\n        = is_nothrow_constructible<T, Args...>::value;                   // C++17\n      template <class T> constexpr bool is_nothrow_default_constructible_v\n        = is_nothrow_default_constructible<T>::value;                    // C++17\n      template <class T> constexpr bool is_nothrow_copy_constructible_v\n        = is_nothrow_copy_constructible<T>::value;                       // C++17\n      template <class T> constexpr bool is_nothrow_move_constructible_v\n        = is_nothrow_move_constructible<T>::value;                       // C++17\n      template <class T, class U> constexpr bool is_nothrow_assignable_v\n        = is_nothrow_assignable<T, U>::value;                            // C++17\n      template <class T> constexpr bool is_nothrow_copy_assignable_v\n        = is_nothrow_copy_assignable<T>::value;                          // C++17\n      template <class T> constexpr bool is_nothrow_move_assignable_v\n        = is_nothrow_move_assignable<T>::value;                          // C++17\n      template <class T, class U> constexpr bool is_nothrow_swappable_with_v\n        = is_nothrow_swappable_with<T, U>::value;                       // C++17\n      template <class T> constexpr bool is_nothrow_swappable_v\n        = is_nothrow_swappable<T>::value;                               // C++17\n      template <class T> constexpr bool is_nothrow_destructible_v\n        = is_nothrow_destructible<T>::value;                             // C++17\n      template <class T> constexpr bool has_virtual_destructor_v\n        = has_virtual_destructor<T>::value;                              // C++17\n\n      // See C++14 20.10.5, type property queries\n      template <class T> constexpr size_t alignment_of_v\n        = alignment_of<T>::value;                                        // C++17\n      template <class T> constexpr size_t rank_v\n        = rank<T>::value;                                                // C++17\n      template <class T, unsigned I = 0> constexpr size_t extent_v\n        = extent<T, I>::value;                                           // C++17\n\n      // See C++14 20.10.6, type relations\n      template <class T, class U> constexpr bool is_same_v\n        = is_same<T, U>::value;                                          // C++17\n      template <class Base, class Derived> constexpr bool is_base_of_v\n        = is_base_of<Base, Derived>::value;                              // C++17\n      template <class From, class To> constexpr bool is_convertible_v\n        = is_convertible<From, To>::value;                               // C++17\n      template <class T, class R = void> constexpr bool is_callable_v\n        = is_callable<T, R>::value;                                      // C++17\n      template <class T, class R = void> constexpr bool is_nothrow_callable_v\n        = is_nothrow_callable<T, R>::value;                              // C++17\n\n      // [meta.logical], logical operator traits:\n      template<class... B> struct conjunction;                           // C++17\n      template<class... B> \n        constexpr bool conjunction_v = conjunction<B...>::value;         // C++17\n      template<class... B> struct disjunction;                           // C++17\n      template<class... B>\n        constexpr bool disjunction_v = disjunction<B...>::value;         // C++17\n      template<class B> struct negation;                                 // C++17\n      template<class B> \n        constexpr bool negation_v = negation<B>::value;                  // C++17\n\n}\n\n*/\n#include <__config>\n#include <cstddef>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _T1, class _T2> struct _LIBCPP_TEMPLATE_VIS pair;\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS reference_wrapper;\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;\n\ntemplate <class>\nstruct __void_t { typedef void type; };\n\ntemplate <class _Tp>\nstruct __identity { typedef _Tp type; };\n\ntemplate <class _Tp, bool>\nstruct _LIBCPP_TEMPLATE_VIS __dependent_type : public _Tp {};\n\ntemplate <bool _Bp, class _If, class _Then>\n    struct _LIBCPP_TEMPLATE_VIS conditional {typedef _If type;};\ntemplate <class _If, class _Then>\n    struct _LIBCPP_TEMPLATE_VIS conditional<false, _If, _Then> {typedef _Then type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <bool _Bp, class _If, class _Then> using conditional_t = typename conditional<_Bp, _If, _Then>::type;\n#endif\n\ntemplate <bool, class _Tp> struct _LIBCPP_TEMPLATE_VIS __lazy_enable_if {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS __lazy_enable_if<true, _Tp> {typedef typename _Tp::type type;};\n\ntemplate <bool, class _Tp = void> struct _LIBCPP_TEMPLATE_VIS enable_if {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS enable_if<true, _Tp> {typedef _Tp type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <bool _Bp, class _Tp = void> using enable_if_t = typename enable_if<_Bp, _Tp>::type;\n#endif\n\n// addressof\n#ifndef _LIBCPP_HAS_NO_BUILTIN_ADDRESSOF\n\ntemplate <class _Tp>\ninline _LIBCPP_CONSTEXPR_AFTER_CXX14\n_LIBCPP_NO_CFI _LIBCPP_INLINE_VISIBILITY\n_Tp*\naddressof(_Tp& __x) _NOEXCEPT\n{\n    return __builtin_addressof(__x);\n}\n\n#else\n\ntemplate <class _Tp>\ninline _LIBCPP_NO_CFI _LIBCPP_INLINE_VISIBILITY\n_Tp*\naddressof(_Tp& __x) _NOEXCEPT\n{\n  return reinterpret_cast<_Tp *>(\n      const_cast<char *>(&reinterpret_cast<const volatile char &>(__x)));\n}\n\n#endif // _LIBCPP_HAS_NO_BUILTIN_ADDRESSOF\n\n#if defined(_LIBCPP_HAS_OBJC_ARC) && !defined(_LIBCPP_PREDEFINED_OBJC_ARC_ADDRESSOF)\n// Objective-C++ Automatic Reference Counting uses qualified pointers\n// that require special addressof() signatures. When\n// _LIBCPP_PREDEFINED_OBJC_ARC_ADDRESSOF is defined, the compiler\n// itself is providing these definitions. Otherwise, we provide them.\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n__strong _Tp*\naddressof(__strong _Tp& __x) _NOEXCEPT\n{\n  return &__x;\n}\n\n#ifdef _LIBCPP_HAS_OBJC_ARC_WEAK\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n__weak _Tp*\naddressof(__weak _Tp& __x) _NOEXCEPT\n{\n  return &__x;\n}\n#endif\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n__autoreleasing _Tp*\naddressof(__autoreleasing _Tp& __x) _NOEXCEPT\n{\n  return &__x;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n__unsafe_unretained _Tp*\naddressof(__unsafe_unretained _Tp& __x) _NOEXCEPT\n{\n  return &__x;\n}\n#endif\n\n#if !defined(_LIBCPP_CXX03_LANG)\ntemplate <class _Tp> _Tp* addressof(const _Tp&&) noexcept = delete;\n#endif\n\nstruct __two {char __lx[2];};\n\n// helper class:\n\ntemplate <class _Tp, _Tp __v>\nstruct _LIBCPP_TEMPLATE_VIS integral_constant\n{\n    static _LIBCPP_CONSTEXPR const _Tp      value = __v;\n    typedef _Tp               value_type;\n    typedef integral_constant type;\n    _LIBCPP_INLINE_VISIBILITY\n        _LIBCPP_CONSTEXPR operator value_type() const _NOEXCEPT {return value;}\n#if _LIBCPP_STD_VER > 11\n    _LIBCPP_INLINE_VISIBILITY\n         constexpr value_type operator ()() const _NOEXCEPT {return value;}\n#endif\n};\n\ntemplate <class _Tp, _Tp __v>\n_LIBCPP_CONSTEXPR const _Tp integral_constant<_Tp, __v>::value;\n\n#if _LIBCPP_STD_VER > 14\ntemplate <bool __b>\nusing bool_constant = integral_constant<bool, __b>;\n#define _LIBCPP_BOOL_CONSTANT(__b) bool_constant<(__b)>\n#else\n#define _LIBCPP_BOOL_CONSTANT(__b) integral_constant<bool,(__b)>\n#endif\n\ntypedef _LIBCPP_BOOL_CONSTANT(true)  true_type;\ntypedef _LIBCPP_BOOL_CONSTANT(false) false_type;\n\n#if !defined(_LIBCPP_CXX03_LANG)\n\n// __lazy_and\n\ntemplate <bool _Last, class ..._Preds>\nstruct __lazy_and_impl;\n\ntemplate <class ..._Preds>\nstruct __lazy_and_impl<false, _Preds...> : false_type {};\n\ntemplate <>\nstruct __lazy_and_impl<true> : true_type {};\n\ntemplate <class _Pred>\nstruct __lazy_and_impl<true, _Pred> : integral_constant<bool, _Pred::type::value> {};\n\ntemplate <class _Hp, class ..._Tp>\nstruct __lazy_and_impl<true, _Hp, _Tp...> : __lazy_and_impl<_Hp::type::value, _Tp...> {};\n\ntemplate <class _P1, class ..._Pr>\nstruct __lazy_and : __lazy_and_impl<_P1::type::value, _Pr...> {};\n\n// __lazy_or\n\ntemplate <bool _List, class ..._Preds>\nstruct __lazy_or_impl;\n\ntemplate <class ..._Preds>\nstruct __lazy_or_impl<true, _Preds...> : true_type {};\n\ntemplate <>\nstruct __lazy_or_impl<false> : false_type {};\n\ntemplate <class _Hp, class ..._Tp>\nstruct __lazy_or_impl<false, _Hp, _Tp...>\n        : __lazy_or_impl<_Hp::type::value, _Tp...> {};\n\ntemplate <class _P1, class ..._Pr>\nstruct __lazy_or : __lazy_or_impl<_P1::type::value, _Pr...> {};\n\n// __lazy_not\n\ntemplate <class _Pred>\nstruct __lazy_not : integral_constant<bool, !_Pred::type::value> {};\n\n// __and_\ntemplate<class...> struct __and_;\ntemplate<> struct __and_<> : true_type {};\n\ntemplate<class _B0> struct __and_<_B0> : _B0 {};\n\ntemplate<class _B0, class _B1>\nstruct __and_<_B0, _B1> : conditional<_B0::value, _B1, _B0>::type {};\n\ntemplate<class _B0, class _B1, class _B2, class... _Bn>\nstruct __and_<_B0, _B1, _B2, _Bn...> \n        : conditional<_B0::value, __and_<_B1, _B2, _Bn...>, _B0>::type {};\n\n// __or_\ntemplate<class...> struct __or_;\ntemplate<> struct __or_<> : false_type {};\n\ntemplate<class _B0> struct __or_<_B0> : _B0 {};\n\ntemplate<class _B0, class _B1>\nstruct __or_<_B0, _B1> : conditional<_B0::value, _B0, _B1>::type {};\n\ntemplate<class _B0, class _B1, class _B2, class... _Bn>\nstruct __or_<_B0, _B1, _B2, _Bn...> \n        : conditional<_B0::value, _B0, __or_<_B1, _B2, _Bn...> >::type {};\n\n// __not_\ntemplate<class _Tp> \nstruct __not_ : conditional<_Tp::value, false_type, true_type>::type {};\n\n#endif // !defined(_LIBCPP_CXX03_LANG)\n\n// is_const\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_const            : public false_type {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_const<_Tp const> : public true_type {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_const_v\n    = is_const<_Tp>::value;\n#endif\n\n// is_volatile\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_volatile               : public false_type {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_volatile<_Tp volatile> : public true_type {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_volatile_v\n    = is_volatile<_Tp>::value;\n#endif\n\n// remove_const\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_const            {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_const<const _Tp> {typedef _Tp type;};\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using remove_const_t = typename remove_const<_Tp>::type;\n#endif\n\n// remove_volatile\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_volatile               {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_volatile<volatile _Tp> {typedef _Tp type;};\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using remove_volatile_t = typename remove_volatile<_Tp>::type;\n#endif\n\n// remove_cv\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_cv\n{typedef typename remove_volatile<typename remove_const<_Tp>::type>::type type;};\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using remove_cv_t = typename remove_cv<_Tp>::type;\n#endif\n\n// is_void\n\ntemplate <class _Tp> struct __libcpp_is_void       : public false_type {};\ntemplate <>          struct __libcpp_is_void<void> : public true_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_void\n    : public __libcpp_is_void<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_void_v\n    = is_void<_Tp>::value;\n#endif\n\n// __is_nullptr_t\n\ntemplate <class _Tp> struct __is_nullptr_t_impl       : public false_type {};\ntemplate <>          struct __is_nullptr_t_impl<nullptr_t> : public true_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS __is_nullptr_t\n    : public __is_nullptr_t_impl<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_null_pointer\n    : public __is_nullptr_t_impl<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_null_pointer_v\n    = is_null_pointer<_Tp>::value;\n#endif\n#endif\n\n// is_integral\n\ntemplate <class _Tp> struct __libcpp_is_integral                     : public false_type {};\ntemplate <>          struct __libcpp_is_integral<bool>               : public true_type {};\ntemplate <>          struct __libcpp_is_integral<char>               : public true_type {};\ntemplate <>          struct __libcpp_is_integral<signed char>        : public true_type {};\ntemplate <>          struct __libcpp_is_integral<unsigned char>      : public true_type {};\ntemplate <>          struct __libcpp_is_integral<wchar_t>            : public true_type {};\n#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS\ntemplate <>          struct __libcpp_is_integral<char16_t>           : public true_type {};\ntemplate <>          struct __libcpp_is_integral<char32_t>           : public true_type {};\n#endif  // _LIBCPP_HAS_NO_UNICODE_CHARS\ntemplate <>          struct __libcpp_is_integral<short>              : public true_type {};\ntemplate <>          struct __libcpp_is_integral<unsigned short>     : public true_type {};\ntemplate <>          struct __libcpp_is_integral<int>                : public true_type {};\ntemplate <>          struct __libcpp_is_integral<unsigned int>       : public true_type {};\ntemplate <>          struct __libcpp_is_integral<long>               : public true_type {};\ntemplate <>          struct __libcpp_is_integral<unsigned long>      : public true_type {};\ntemplate <>          struct __libcpp_is_integral<long long>          : public true_type {};\ntemplate <>          struct __libcpp_is_integral<unsigned long long> : public true_type {};\n#ifndef _LIBCPP_HAS_NO_INT128\ntemplate <>          struct __libcpp_is_integral<__int128_t>         : public true_type {};\ntemplate <>          struct __libcpp_is_integral<__uint128_t>        : public true_type {};\n#endif\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_integral\n    : public __libcpp_is_integral<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_integral_v\n    = is_integral<_Tp>::value;\n#endif\n\n// is_floating_point\n\ntemplate <class _Tp> struct __libcpp_is_floating_point              : public false_type {};\ntemplate <>          struct __libcpp_is_floating_point<float>       : public true_type {};\ntemplate <>          struct __libcpp_is_floating_point<double>      : public true_type {};\ntemplate <>          struct __libcpp_is_floating_point<long double> : public true_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_floating_point\n    : public __libcpp_is_floating_point<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_floating_point_v\n    = is_floating_point<_Tp>::value;\n#endif\n\n// is_array\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_array\n    : public false_type {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_array<_Tp[]>\n    : public true_type {};\ntemplate <class _Tp, size_t _Np> struct _LIBCPP_TEMPLATE_VIS is_array<_Tp[_Np]>\n    : public true_type {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_array_v\n    = is_array<_Tp>::value;\n#endif\n\n// is_pointer\n\ntemplate <class _Tp> struct __libcpp_is_pointer       : public false_type {};\ntemplate <class _Tp> struct __libcpp_is_pointer<_Tp*> : public true_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_pointer\n    : public __libcpp_is_pointer<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_pointer_v\n    = is_pointer<_Tp>::value;\n#endif\n\n// is_reference\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_lvalue_reference       : public false_type {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_lvalue_reference<_Tp&> : public true_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_rvalue_reference        : public false_type {};\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_rvalue_reference<_Tp&&> : public true_type {};\n#endif\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_reference        : public false_type {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_reference<_Tp&>  : public true_type {};\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_reference<_Tp&&> : public true_type {};\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_reference_v\n    = is_reference<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_lvalue_reference_v\n    = is_lvalue_reference<_Tp>::value;\n\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_rvalue_reference_v\n    = is_rvalue_reference<_Tp>::value;\n#endif\n// is_union\n\n#if __has_feature(is_union) || (_GNUC_VER >= 403)\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_union\n    : public integral_constant<bool, __is_union(_Tp)> {};\n\n#else\n\ntemplate <class _Tp> struct __libcpp_union : public false_type {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_union\n    : public __libcpp_union<typename remove_cv<_Tp>::type> {};\n\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_union_v\n    = is_union<_Tp>::value;\n#endif\n\n// is_class\n\n#if __has_feature(is_class) || (_GNUC_VER >= 403)\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_class\n    : public integral_constant<bool, __is_class(_Tp)> {};\n\n#else\n\nnamespace __is_class_imp\n{\ntemplate <class _Tp> char  __test(int _Tp::*);\ntemplate <class _Tp> __two __test(...);\n}\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_class\n    : public integral_constant<bool, sizeof(__is_class_imp::__test<_Tp>(0)) == 1 && !is_union<_Tp>::value> {};\n\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_class_v\n    = is_class<_Tp>::value;\n#endif\n\n// is_same\n\ntemplate <class _Tp, class _Up> struct _LIBCPP_TEMPLATE_VIS is_same           : public false_type {};\ntemplate <class _Tp>            struct _LIBCPP_TEMPLATE_VIS is_same<_Tp, _Tp> : public true_type {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp, class _Up> _LIBCPP_CONSTEXPR bool is_same_v\n    = is_same<_Tp, _Up>::value;\n#endif\n\n// is_function\n\nnamespace __libcpp_is_function_imp\n{\nstruct __dummy_type {};\ntemplate <class _Tp> char  __test(_Tp*);\ntemplate <class _Tp> char __test(__dummy_type);\ntemplate <class _Tp> __two __test(...);\ntemplate <class _Tp> _Tp&  __source(int);\ntemplate <class _Tp> __dummy_type __source(...);\n}\n\ntemplate <class _Tp, bool = is_class<_Tp>::value ||\n                            is_union<_Tp>::value ||\n                            is_void<_Tp>::value  ||\n                            is_reference<_Tp>::value ||\n                            __is_nullptr_t<_Tp>::value >\nstruct __libcpp_is_function\n    : public integral_constant<bool, sizeof(__libcpp_is_function_imp::__test<_Tp>(__libcpp_is_function_imp::__source<_Tp>(0))) == 1>\n    {};\ntemplate <class _Tp> struct __libcpp_is_function<_Tp, true> : public false_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_function\n    : public __libcpp_is_function<_Tp> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_function_v\n    = is_function<_Tp>::value;\n#endif\n\n// is_member_function_pointer\n\n// template <class _Tp> struct            __libcpp_is_member_function_pointer             : public false_type {};\n// template <class _Tp, class _Up> struct __libcpp_is_member_function_pointer<_Tp _Up::*> : public is_function<_Tp> {};\n// \n\ntemplate <class _MP, bool _IsMemberFunctionPtr, bool _IsMemberObjectPtr>\nstruct __member_pointer_traits_imp\n{  // forward declaration; specializations later\n};\n\n\ntemplate <class _Tp> struct __libcpp_is_member_function_pointer\n    : public false_type {};\n\ntemplate <class _Ret, class _Class>\nstruct __libcpp_is_member_function_pointer<_Ret _Class::*>\n    : public is_function<_Ret> {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_member_function_pointer\n    : public __libcpp_is_member_function_pointer<typename remove_cv<_Tp>::type>::type {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_member_function_pointer_v\n    = is_member_function_pointer<_Tp>::value;\n#endif\n\n// is_member_pointer\n\ntemplate <class _Tp>            struct __libcpp_is_member_pointer             : public false_type {};\ntemplate <class _Tp, class _Up> struct __libcpp_is_member_pointer<_Tp _Up::*> : public true_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_member_pointer\n    : public __libcpp_is_member_pointer<typename remove_cv<_Tp>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_member_pointer_v\n    = is_member_pointer<_Tp>::value;\n#endif\n\n// is_member_object_pointer\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_member_object_pointer\n    : public integral_constant<bool, is_member_pointer<_Tp>::value &&\n                                    !is_member_function_pointer<_Tp>::value> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_member_object_pointer_v\n    = is_member_object_pointer<_Tp>::value;\n#endif\n\n// is_enum\n\n#if __has_feature(is_enum) || (_GNUC_VER >= 403)\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_enum\n    : public integral_constant<bool, __is_enum(_Tp)> {};\n\n#else\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_enum\n    : public integral_constant<bool, !is_void<_Tp>::value             &&\n                                     !is_integral<_Tp>::value         &&\n                                     !is_floating_point<_Tp>::value   &&\n                                     !is_array<_Tp>::value            &&\n                                     !is_pointer<_Tp>::value          &&\n                                     !is_reference<_Tp>::value        &&\n                                     !is_member_pointer<_Tp>::value   &&\n                                     !is_union<_Tp>::value            &&\n                                     !is_class<_Tp>::value            &&\n                                     !is_function<_Tp>::value         > {};\n\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_enum_v\n    = is_enum<_Tp>::value;\n#endif\n\n// is_arithmetic\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_arithmetic\n    : public integral_constant<bool, is_integral<_Tp>::value      ||\n                                     is_floating_point<_Tp>::value> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_arithmetic_v\n    = is_arithmetic<_Tp>::value;\n#endif\n\n// is_fundamental\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_fundamental\n    : public integral_constant<bool, is_void<_Tp>::value        ||\n                                     __is_nullptr_t<_Tp>::value ||\n                                     is_arithmetic<_Tp>::value> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_fundamental_v\n    = is_fundamental<_Tp>::value;\n#endif\n\n// is_scalar\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_scalar\n    : public integral_constant<bool, is_arithmetic<_Tp>::value     ||\n                                     is_member_pointer<_Tp>::value ||\n                                     is_pointer<_Tp>::value        ||\n                                     __is_nullptr_t<_Tp>::value    ||\n                                     is_enum<_Tp>::value           > {};\n\ntemplate <> struct _LIBCPP_TEMPLATE_VIS is_scalar<nullptr_t> : public true_type {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_scalar_v\n    = is_scalar<_Tp>::value;\n#endif\n\n// is_object\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_object\n    : public integral_constant<bool, is_scalar<_Tp>::value ||\n                                     is_array<_Tp>::value  ||\n                                     is_union<_Tp>::value  ||\n                                     is_class<_Tp>::value  > {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_object_v\n    = is_object<_Tp>::value;\n#endif\n\n// is_compound\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_compound\n    : public integral_constant<bool, !is_fundamental<_Tp>::value> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_compound_v\n    = is_compound<_Tp>::value;\n#endif\n\n\n// __is_referenceable  [defns.referenceable]\n\nstruct __is_referenceable_impl {\n    template <class _Tp> static _Tp& __test(int);\n    template <class _Tp> static __two __test(...);\n};\n\ntemplate <class _Tp>\nstruct __is_referenceable : integral_constant<bool,\n    !is_same<decltype(__is_referenceable_impl::__test<_Tp>(0)), __two>::value> {};\n\n\n// add_const\n\ntemplate <class _Tp, bool = is_reference<_Tp>::value ||\n                            is_function<_Tp>::value  ||\n                            is_const<_Tp>::value     >\nstruct __add_const             {typedef _Tp type;};\n\ntemplate <class _Tp>\nstruct __add_const<_Tp, false> {typedef const _Tp type;};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS add_const\n    {typedef typename __add_const<_Tp>::type type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using add_const_t = typename add_const<_Tp>::type;\n#endif\n\n// add_volatile\n\ntemplate <class _Tp, bool = is_reference<_Tp>::value ||\n                            is_function<_Tp>::value  ||\n                            is_volatile<_Tp>::value  >\nstruct __add_volatile             {typedef _Tp type;};\n\ntemplate <class _Tp>\nstruct __add_volatile<_Tp, false> {typedef volatile _Tp type;};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS add_volatile\n    {typedef typename __add_volatile<_Tp>::type type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using add_volatile_t = typename add_volatile<_Tp>::type;\n#endif\n\n// add_cv\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS add_cv\n    {typedef typename add_const<typename add_volatile<_Tp>::type>::type type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using add_cv_t = typename add_cv<_Tp>::type;\n#endif\n\n// remove_reference\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_reference        {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_reference<_Tp&>  {typedef _Tp type;};\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_reference<_Tp&&> {typedef _Tp type;};\n#endif\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using remove_reference_t = typename remove_reference<_Tp>::type;\n#endif\n\n// add_lvalue_reference\n\ntemplate <class _Tp, bool = __is_referenceable<_Tp>::value> struct __add_lvalue_reference_impl            { typedef _Tp  type; };\ntemplate <class _Tp                                       > struct __add_lvalue_reference_impl<_Tp, true> { typedef _Tp& type; };\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS add_lvalue_reference\n{typedef typename __add_lvalue_reference_impl<_Tp>::type type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using add_lvalue_reference_t = typename add_lvalue_reference<_Tp>::type;\n#endif\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp, bool = __is_referenceable<_Tp>::value> struct __add_rvalue_reference_impl            { typedef _Tp   type; };\ntemplate <class _Tp                                       > struct __add_rvalue_reference_impl<_Tp, true> { typedef _Tp&& type; };\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS add_rvalue_reference\n{typedef typename __add_rvalue_reference_impl<_Tp>::type type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using add_rvalue_reference_t = typename add_rvalue_reference<_Tp>::type;\n#endif\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp> _Tp&& __declval(int);\ntemplate <class _Tp> _Tp   __declval(long);\n\ntemplate <class _Tp>\ndecltype(_VSTD::__declval<_Tp>(0))\ndeclval() _NOEXCEPT;\n\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp>\ntypename add_lvalue_reference<_Tp>::type\ndeclval();\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n// __uncvref\n\ntemplate <class _Tp>\nstruct __uncvref  {\n    typedef typename remove_cv<typename remove_reference<_Tp>::type>::type type;\n};\n\ntemplate <class _Tp>\nstruct __unconstref {\n    typedef typename remove_const<typename remove_reference<_Tp>::type>::type type;\n};\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Tp>\nusing __uncvref_t = typename __uncvref<_Tp>::type;\n#endif\n\n// __is_same_uncvref\n\ntemplate <class _Tp, class _Up>\nstruct __is_same_uncvref : is_same<typename __uncvref<_Tp>::type,\n                                   typename __uncvref<_Up>::type> {};\n\nstruct __any\n{\n    __any(...);\n};\n\n// remove_pointer\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_pointer                      {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_pointer<_Tp*>                {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_pointer<_Tp* const>          {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_pointer<_Tp* volatile>       {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_pointer<_Tp* const volatile> {typedef _Tp type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using remove_pointer_t = typename remove_pointer<_Tp>::type;\n#endif\n\n// add_pointer\n\ntemplate <class _Tp, \n        bool = __is_referenceable<_Tp>::value || \n                is_same<typename remove_cv<_Tp>::type, void>::value>\nstruct __add_pointer_impl\n    {typedef typename remove_reference<_Tp>::type* type;};\ntemplate <class _Tp> struct __add_pointer_impl<_Tp, false> \n    {typedef _Tp type;};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS add_pointer\n    {typedef typename __add_pointer_impl<_Tp>::type type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using add_pointer_t = typename add_pointer<_Tp>::type;\n#endif\n\n// is_signed\n\ntemplate <class _Tp, bool = is_integral<_Tp>::value>\nstruct __libcpp_is_signed_impl : public _LIBCPP_BOOL_CONSTANT(_Tp(-1) < _Tp(0)) {};\n\ntemplate <class _Tp>\nstruct __libcpp_is_signed_impl<_Tp, false> : public true_type {};  // floating point\n\ntemplate <class _Tp, bool = is_arithmetic<_Tp>::value>\nstruct __libcpp_is_signed : public __libcpp_is_signed_impl<_Tp> {};\n\ntemplate <class _Tp> struct __libcpp_is_signed<_Tp, false> : public false_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_signed : public __libcpp_is_signed<_Tp> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_signed_v\n    = is_signed<_Tp>::value;\n#endif\n\n// is_unsigned\n\ntemplate <class _Tp, bool = is_integral<_Tp>::value>\nstruct __libcpp_is_unsigned_impl : public _LIBCPP_BOOL_CONSTANT(_Tp(0) < _Tp(-1)) {};\n\ntemplate <class _Tp>\nstruct __libcpp_is_unsigned_impl<_Tp, false> : public false_type {};  // floating point\n\ntemplate <class _Tp, bool = is_arithmetic<_Tp>::value>\nstruct __libcpp_is_unsigned : public __libcpp_is_unsigned_impl<_Tp> {};\n\ntemplate <class _Tp> struct __libcpp_is_unsigned<_Tp, false> : public false_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_unsigned : public __libcpp_is_unsigned<_Tp> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_unsigned_v\n    = is_unsigned<_Tp>::value;\n#endif\n\n// rank\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS rank\n    : public integral_constant<size_t, 0> {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS rank<_Tp[]>\n    : public integral_constant<size_t, rank<_Tp>::value + 1> {};\ntemplate <class _Tp, size_t _Np> struct _LIBCPP_TEMPLATE_VIS rank<_Tp[_Np]>\n    : public integral_constant<size_t, rank<_Tp>::value + 1> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR size_t rank_v\n    = rank<_Tp>::value;\n#endif\n\n// extent\n\ntemplate <class _Tp, unsigned _Ip = 0> struct _LIBCPP_TEMPLATE_VIS extent\n    : public integral_constant<size_t, 0> {};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS extent<_Tp[], 0>\n    : public integral_constant<size_t, 0> {};\ntemplate <class _Tp, unsigned _Ip> struct _LIBCPP_TEMPLATE_VIS extent<_Tp[], _Ip>\n    : public integral_constant<size_t, extent<_Tp, _Ip-1>::value> {};\ntemplate <class _Tp, size_t _Np> struct _LIBCPP_TEMPLATE_VIS extent<_Tp[_Np], 0>\n    : public integral_constant<size_t, _Np> {};\ntemplate <class _Tp, size_t _Np, unsigned _Ip> struct _LIBCPP_TEMPLATE_VIS extent<_Tp[_Np], _Ip>\n    : public integral_constant<size_t, extent<_Tp, _Ip-1>::value> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp, unsigned _Ip = 0> _LIBCPP_CONSTEXPR size_t extent_v\n    = extent<_Tp, _Ip>::value;\n#endif\n\n// remove_extent\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_extent\n    {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_extent<_Tp[]>\n    {typedef _Tp type;};\ntemplate <class _Tp, size_t _Np> struct _LIBCPP_TEMPLATE_VIS remove_extent<_Tp[_Np]>\n    {typedef _Tp type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using remove_extent_t = typename remove_extent<_Tp>::type;\n#endif\n\n// remove_all_extents\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_all_extents\n    {typedef _Tp type;};\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_all_extents<_Tp[]>\n    {typedef typename remove_all_extents<_Tp>::type type;};\ntemplate <class _Tp, size_t _Np> struct _LIBCPP_TEMPLATE_VIS remove_all_extents<_Tp[_Np]>\n    {typedef typename remove_all_extents<_Tp>::type type;};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using remove_all_extents_t = typename remove_all_extents<_Tp>::type;\n#endif\n\n// decay\n\ntemplate <class _Up, bool>\nstruct __decay {\n    typedef typename remove_cv<_Up>::type type;\n};\n\ntemplate <class _Up>\nstruct __decay<_Up, true> {\npublic:\n    typedef typename conditional\n                     <\n                         is_array<_Up>::value,\n                         typename remove_extent<_Up>::type*,\n                         typename conditional\n                         <\n                              is_function<_Up>::value,\n                              typename add_pointer<_Up>::type,\n                              typename remove_cv<_Up>::type\n                         >::type\n                     >::type type;\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS decay\n{\nprivate:\n    typedef typename remove_reference<_Tp>::type _Up;\npublic:\n    typedef typename __decay<_Up, __is_referenceable<_Up>::value>::type type;\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using decay_t = typename decay<_Tp>::type;\n#endif\n\n// is_abstract\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_abstract\n    : public integral_constant<bool, __is_abstract(_Tp)> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_abstract_v\n    = is_abstract<_Tp>::value;\n#endif\n\n// is_final\n\n#if defined(_LIBCPP_HAS_IS_FINAL)\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS\n__libcpp_is_final : public integral_constant<bool, __is_final(_Tp)> {};\n#else\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS\n__libcpp_is_final : public false_type {};\n#endif\n\n#if defined(_LIBCPP_HAS_IS_FINAL) && _LIBCPP_STD_VER > 11\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS\nis_final : public integral_constant<bool, __is_final(_Tp)> {};\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_final_v\n    = is_final<_Tp>::value;\n#endif\n\n// is_aggregate\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_IS_AGGREGATE)\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS\nis_aggregate : public integral_constant<bool, __is_aggregate(_Tp)> {};\n\n#if !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp>\nconstexpr bool is_aggregate_v = is_aggregate<_Tp>::value;\n#endif\n\n#endif // _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_IS_AGGREGATE)\n\n// is_base_of\n\n#ifdef _LIBCPP_HAS_IS_BASE_OF\n\ntemplate <class _Bp, class _Dp>\nstruct _LIBCPP_TEMPLATE_VIS is_base_of\n    : public integral_constant<bool, __is_base_of(_Bp, _Dp)> {};\n\n#else  // _LIBCPP_HAS_IS_BASE_OF\n\nnamespace __is_base_of_imp\n{\ntemplate <class _Tp>\nstruct _Dst\n{\n    _Dst(const volatile _Tp &);\n};\ntemplate <class _Tp>\nstruct _Src\n{\n    operator const volatile _Tp &();\n    template <class _Up> operator const _Dst<_Up> &();\n};\ntemplate <size_t> struct __one { typedef char type; };\ntemplate <class _Bp, class _Dp> typename __one<sizeof(_Dst<_Bp>(declval<_Src<_Dp> >()))>::type __test(int);\ntemplate <class _Bp, class _Dp> __two __test(...);\n}\n\ntemplate <class _Bp, class _Dp>\nstruct _LIBCPP_TEMPLATE_VIS is_base_of\n    : public integral_constant<bool, is_class<_Bp>::value &&\n                                     sizeof(__is_base_of_imp::__test<_Bp, _Dp>(0)) == 2> {};\n\n#endif  // _LIBCPP_HAS_IS_BASE_OF\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Bp, class _Dp> _LIBCPP_CONSTEXPR bool is_base_of_v\n    = is_base_of<_Bp, _Dp>::value;\n#endif\n\n// is_convertible\n\n#if __has_feature(is_convertible_to) && !defined(_LIBCPP_USE_IS_CONVERTIBLE_FALLBACK)\n\ntemplate <class _T1, class _T2> struct _LIBCPP_TEMPLATE_VIS is_convertible\n    : public integral_constant<bool, __is_convertible_to(_T1, _T2) &&\n                                     !is_abstract<_T2>::value> {};\n\n#else  // __has_feature(is_convertible_to)\n\nnamespace __is_convertible_imp\n{\ntemplate <class _Tp> void  __test_convert(_Tp);\n\ntemplate <class _From, class _To, class = void>\nstruct __is_convertible_test : public false_type {};\n\ntemplate <class _From, class _To>\nstruct __is_convertible_test<_From, _To,\n    decltype(_VSTD::__is_convertible_imp::__test_convert<_To>(_VSTD::declval<_From>()))> : public true_type\n{};\n\ntemplate <class _Tp, bool _IsArray =    is_array<_Tp>::value,\n                     bool _IsFunction = is_function<_Tp>::value,\n                     bool _IsVoid =     is_void<_Tp>::value>\n                     struct __is_array_function_or_void                          {enum {value = 0};};\ntemplate <class _Tp> struct __is_array_function_or_void<_Tp, true, false, false> {enum {value = 1};};\ntemplate <class _Tp> struct __is_array_function_or_void<_Tp, false, true, false> {enum {value = 2};};\ntemplate <class _Tp> struct __is_array_function_or_void<_Tp, false, false, true> {enum {value = 3};};\n}\n\ntemplate <class _Tp,\n    unsigned = __is_convertible_imp::__is_array_function_or_void<typename remove_reference<_Tp>::type>::value>\nstruct __is_convertible_check\n{\n    static const size_t __v = 0;\n};\n\ntemplate <class _Tp>\nstruct __is_convertible_check<_Tp, 0>\n{\n    static const size_t __v = sizeof(_Tp);\n};\n\ntemplate <class _T1, class _T2,\n    unsigned _T1_is_array_function_or_void = __is_convertible_imp::__is_array_function_or_void<_T1>::value,\n    unsigned _T2_is_array_function_or_void = __is_convertible_imp::__is_array_function_or_void<_T2>::value>\nstruct __is_convertible\n    : public integral_constant<bool,\n        __is_convertible_imp::__is_convertible_test<_T1, _T2>::value\n#if defined(_LIBCPP_HAS_NO_RVALUE_REFERENCES)\n         && !(!is_function<_T1>::value && !is_reference<_T1>::value && is_reference<_T2>::value\n              && (!is_const<typename remove_reference<_T2>::type>::value\n                  || is_volatile<typename remove_reference<_T2>::type>::value)\n                  && (is_same<typename remove_cv<_T1>::type,\n                              typename remove_cv<typename remove_reference<_T2>::type>::type>::value\n                      || is_base_of<typename remove_reference<_T2>::type, _T1>::value))\n#endif\n    >\n{};\n\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 1> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 1> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 1> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 1> : public false_type {};\n\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 2> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 2> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 2> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 2> : public false_type {};\n\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 0, 3> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 1, 3> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 2, 3> : public false_type {};\ntemplate <class _T1, class _T2> struct __is_convertible<_T1, _T2, 3, 3> : public true_type {};\n\ntemplate <class _T1, class _T2> struct _LIBCPP_TEMPLATE_VIS is_convertible\n    : public __is_convertible<_T1, _T2>\n{\n    static const size_t __complete_check1 = __is_convertible_check<_T1>::__v;\n    static const size_t __complete_check2 = __is_convertible_check<_T2>::__v;\n};\n\n#endif  // __has_feature(is_convertible_to)\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _From, class _To> _LIBCPP_CONSTEXPR bool is_convertible_v\n    = is_convertible<_From, _To>::value;\n#endif\n\n// is_empty\n\n#if __has_feature(is_empty) || (_GNUC_VER >= 407)\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_empty\n    : public integral_constant<bool, __is_empty(_Tp)> {};\n\n#else  // __has_feature(is_empty)\n\ntemplate <class _Tp>\nstruct __is_empty1\n    : public _Tp\n{\n    double __lx;\n};\n\nstruct __is_empty2\n{\n    double __lx;\n};\n\ntemplate <class _Tp, bool = is_class<_Tp>::value>\nstruct __libcpp_empty : public integral_constant<bool, sizeof(__is_empty1<_Tp>) == sizeof(__is_empty2)> {};\n\ntemplate <class _Tp> struct __libcpp_empty<_Tp, false> : public false_type {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_empty : public __libcpp_empty<_Tp> {};\n\n#endif  // __has_feature(is_empty)\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_empty_v\n    = is_empty<_Tp>::value;\n#endif\n\n// is_polymorphic\n\n#if __has_feature(is_polymorphic) || defined(_LIBCPP_COMPILER_MSVC)\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_polymorphic\n    : public integral_constant<bool, __is_polymorphic(_Tp)> {};\n\n#else\n\ntemplate<typename _Tp> char &__is_polymorphic_impl(\n    typename enable_if<sizeof((_Tp*)dynamic_cast<const volatile void*>(declval<_Tp*>())) != 0,\n                       int>::type);\ntemplate<typename _Tp> __two &__is_polymorphic_impl(...);\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_polymorphic\n    : public integral_constant<bool, sizeof(__is_polymorphic_impl<_Tp>(0)) == 1> {};\n\n#endif // __has_feature(is_polymorphic)\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_polymorphic_v\n    = is_polymorphic<_Tp>::value;\n#endif\n\n// has_virtual_destructor\n\n#if __has_feature(has_virtual_destructor) || (_GNUC_VER >= 403)\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS has_virtual_destructor\n    : public integral_constant<bool, __has_virtual_destructor(_Tp)> {};\n\n#else\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS has_virtual_destructor\n    : public false_type {};\n\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool has_virtual_destructor_v\n    = has_virtual_destructor<_Tp>::value;\n#endif\n\n// alignment_of\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS alignment_of\n    : public integral_constant<size_t, __alignof__(_Tp)> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR size_t alignment_of_v\n    = alignment_of<_Tp>::value;\n#endif\n\n// aligned_storage\n\ntemplate <class _Hp, class _Tp>\nstruct __type_list\n{\n    typedef _Hp _Head;\n    typedef _Tp _Tail;\n};\n\nstruct __nat\n{\n#ifndef _LIBCPP_CXX03_LANG\n    __nat() = delete;\n    __nat(const __nat&) = delete;\n    __nat& operator=(const __nat&) = delete;\n    ~__nat() = delete;\n#endif\n};\n\ntemplate <class _Tp>\nstruct __align_type\n{\n    static const size_t value = alignment_of<_Tp>::value;\n    typedef _Tp type;\n};\n\nstruct __struct_double {long double __lx;};\nstruct __struct_double4 {double __lx[4];};\n\ntypedef\n    __type_list<__align_type<unsigned char>,\n    __type_list<__align_type<unsigned short>,\n    __type_list<__align_type<unsigned int>,\n    __type_list<__align_type<unsigned long>,\n    __type_list<__align_type<unsigned long long>,\n    __type_list<__align_type<double>,\n    __type_list<__align_type<long double>,\n    __type_list<__align_type<__struct_double>,\n    __type_list<__align_type<__struct_double4>,\n    __type_list<__align_type<int*>,\n    __nat\n    > > > > > > > > > > __all_types;\n\ntemplate <class _TL, size_t _Align> struct __find_pod;\n\ntemplate <class _Hp, size_t _Align>\nstruct __find_pod<__type_list<_Hp, __nat>, _Align>\n{\n    typedef typename conditional<\n                             _Align == _Hp::value,\n                             typename _Hp::type,\n                             void\n                         >::type type;\n};\n\ntemplate <class _Hp, class _Tp, size_t _Align>\nstruct __find_pod<__type_list<_Hp, _Tp>, _Align>\n{\n    typedef typename conditional<\n                             _Align == _Hp::value,\n                             typename _Hp::type,\n                             typename __find_pod<_Tp, _Align>::type\n                         >::type type;\n};\n\ntemplate <class _TL, size_t _Len> struct __find_max_align;\n\ntemplate <class _Hp, size_t _Len>\nstruct __find_max_align<__type_list<_Hp, __nat>, _Len> : public integral_constant<size_t, _Hp::value> {};\n\ntemplate <size_t _Len, size_t _A1, size_t _A2>\nstruct __select_align\n{\nprivate:\n    static const size_t __min = _A2 < _A1 ? _A2 : _A1;\n    static const size_t __max = _A1 < _A2 ? _A2 : _A1;\npublic:\n    static const size_t value = _Len < __max ? __min : __max;\n};\n\ntemplate <class _Hp, class _Tp, size_t _Len>\nstruct __find_max_align<__type_list<_Hp, _Tp>, _Len>\n    : public integral_constant<size_t, __select_align<_Len, _Hp::value, __find_max_align<_Tp, _Len>::value>::value> {};\n\ntemplate <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value>\nstruct _LIBCPP_TEMPLATE_VIS aligned_storage\n{\n    typedef typename __find_pod<__all_types, _Align>::type _Aligner;\n    static_assert(!is_void<_Aligner>::value, \"\");\n    union type\n    {\n        _Aligner __align;\n        unsigned char __data[(_Len + _Align - 1)/_Align * _Align];\n    };\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <size_t _Len, size_t _Align = __find_max_align<__all_types, _Len>::value>\n    using aligned_storage_t = typename aligned_storage<_Len, _Align>::type;\n#endif\n\n#define _CREATE_ALIGNED_STORAGE_SPECIALIZATION(n) \\\ntemplate <size_t _Len>\\\nstruct _LIBCPP_TEMPLATE_VIS aligned_storage<_Len, n>\\\n{\\\n    struct _ALIGNAS(n) type\\\n    {\\\n        unsigned char __lx[(_Len + n - 1)/n * n];\\\n    };\\\n}\n\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x1);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x2);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x4);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x8);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x10);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x20);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x40);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x80);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x100);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x200);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x400);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x800);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x1000);\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x2000);\n// PE/COFF does not support alignment beyond 8192 (=0x2000)\n#if !defined(_LIBCPP_OBJECT_FORMAT_COFF)\n_CREATE_ALIGNED_STORAGE_SPECIALIZATION(0x4000);\n#endif // !defined(_LIBCPP_OBJECT_FORMAT_COFF)\n\n#undef _CREATE_ALIGNED_STORAGE_SPECIALIZATION\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\n// aligned_union\n\ntemplate <size_t _I0, size_t ..._In>\nstruct __static_max;\n\ntemplate <size_t _I0>\nstruct __static_max<_I0>\n{\n    static const size_t value = _I0;\n};\n\ntemplate <size_t _I0, size_t _I1, size_t ..._In>\nstruct __static_max<_I0, _I1, _In...>\n{\n    static const size_t value = _I0 >= _I1 ? __static_max<_I0, _In...>::value :\n                                             __static_max<_I1, _In...>::value;\n};\n\ntemplate <size_t _Len, class _Type0, class ..._Types>\nstruct aligned_union\n{\n    static const size_t alignment_value = __static_max<__alignof__(_Type0),\n                                                       __alignof__(_Types)...>::value;\n    static const size_t __len = __static_max<_Len, sizeof(_Type0),\n                                             sizeof(_Types)...>::value;\n    typedef typename aligned_storage<__len, alignment_value>::type type;\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <size_t _Len, class ..._Types> using aligned_union_t = typename aligned_union<_Len, _Types...>::type;\n#endif\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Tp>\nstruct __numeric_type\n{\n   static void __test(...);\n   static float __test(float);\n   static double __test(char);\n   static double __test(int);\n   static double __test(unsigned);\n   static double __test(long);\n   static double __test(unsigned long);\n   static double __test(long long);\n   static double __test(unsigned long long);\n   static double __test(double);\n   static long double __test(long double);\n\n   typedef decltype(__test(declval<_Tp>())) type;\n   static const bool value = !is_same<type, void>::value;\n};\n\ntemplate <>\nstruct __numeric_type<void>\n{\n   static const bool value = true;\n};\n\n// __promote\n\ntemplate <class _A1, class _A2 = void, class _A3 = void,\n          bool = __numeric_type<_A1>::value &&\n                 __numeric_type<_A2>::value &&\n                 __numeric_type<_A3>::value>\nclass __promote_imp\n{\npublic:\n    static const bool value = false;\n};\n\ntemplate <class _A1, class _A2, class _A3>\nclass __promote_imp<_A1, _A2, _A3, true>\n{\nprivate:\n    typedef typename __promote_imp<_A1>::type __type1;\n    typedef typename __promote_imp<_A2>::type __type2;\n    typedef typename __promote_imp<_A3>::type __type3;\npublic:\n    typedef decltype(__type1() + __type2() + __type3()) type;\n    static const bool value = true;\n};\n\ntemplate <class _A1, class _A2>\nclass __promote_imp<_A1, _A2, void, true>\n{\nprivate:\n    typedef typename __promote_imp<_A1>::type __type1;\n    typedef typename __promote_imp<_A2>::type __type2;\npublic:\n    typedef decltype(__type1() + __type2()) type;\n    static const bool value = true;\n};\n\ntemplate <class _A1>\nclass __promote_imp<_A1, void, void, true>\n{\npublic:\n    typedef typename __numeric_type<_A1>::type type;\n    static const bool value = true;\n};\n\ntemplate <class _A1, class _A2 = void, class _A3 = void>\nclass __promote : public __promote_imp<_A1, _A2, _A3> {};\n\n// make_signed / make_unsigned\n\ntypedef\n    __type_list<signed char,\n    __type_list<signed short,\n    __type_list<signed int,\n    __type_list<signed long,\n    __type_list<signed long long,\n#ifndef _LIBCPP_HAS_NO_INT128\n    __type_list<__int128_t,\n#endif\n    __nat\n#ifndef _LIBCPP_HAS_NO_INT128\n    >\n#endif\n    > > > > > __signed_types;\n\ntypedef\n    __type_list<unsigned char,\n    __type_list<unsigned short,\n    __type_list<unsigned int,\n    __type_list<unsigned long,\n    __type_list<unsigned long long,\n#ifndef _LIBCPP_HAS_NO_INT128\n    __type_list<__uint128_t,\n#endif\n    __nat\n#ifndef _LIBCPP_HAS_NO_INT128\n    >\n#endif\n    > > > > > __unsigned_types;\n\ntemplate <class _TypeList, size_t _Size, bool = _Size <= sizeof(typename _TypeList::_Head)> struct __find_first;\n\ntemplate <class _Hp, class _Tp, size_t _Size>\nstruct __find_first<__type_list<_Hp, _Tp>, _Size, true>\n{\n    typedef _Hp type;\n};\n\ntemplate <class _Hp, class _Tp, size_t _Size>\nstruct __find_first<__type_list<_Hp, _Tp>, _Size, false>\n{\n    typedef typename __find_first<_Tp, _Size>::type type;\n};\n\ntemplate <class _Tp, class _Up, bool = is_const<typename remove_reference<_Tp>::type>::value,\n                             bool = is_volatile<typename remove_reference<_Tp>::type>::value>\nstruct __apply_cv\n{\n    typedef _Up type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __apply_cv<_Tp, _Up, true, false>\n{\n    typedef const _Up type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __apply_cv<_Tp, _Up, false, true>\n{\n    typedef volatile _Up type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __apply_cv<_Tp, _Up, true, true>\n{\n    typedef const volatile _Up type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __apply_cv<_Tp&, _Up, false, false>\n{\n    typedef _Up& type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __apply_cv<_Tp&, _Up, true, false>\n{\n    typedef const _Up& type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __apply_cv<_Tp&, _Up, false, true>\n{\n    typedef volatile _Up& type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __apply_cv<_Tp&, _Up, true, true>\n{\n    typedef const volatile _Up& type;\n};\n\ntemplate <class _Tp, bool = is_integral<_Tp>::value || is_enum<_Tp>::value>\nstruct __make_signed {};\n\ntemplate <class _Tp>\nstruct __make_signed<_Tp, true>\n{\n    typedef typename __find_first<__signed_types, sizeof(_Tp)>::type type;\n};\n\ntemplate <> struct __make_signed<bool,               true> {};\ntemplate <> struct __make_signed<  signed short,     true> {typedef short     type;};\ntemplate <> struct __make_signed<unsigned short,     true> {typedef short     type;};\ntemplate <> struct __make_signed<  signed int,       true> {typedef int       type;};\ntemplate <> struct __make_signed<unsigned int,       true> {typedef int       type;};\ntemplate <> struct __make_signed<  signed long,      true> {typedef long      type;};\ntemplate <> struct __make_signed<unsigned long,      true> {typedef long      type;};\ntemplate <> struct __make_signed<  signed long long, true> {typedef long long type;};\ntemplate <> struct __make_signed<unsigned long long, true> {typedef long long type;};\n#ifndef _LIBCPP_HAS_NO_INT128\ntemplate <> struct __make_signed<__int128_t,         true> {typedef __int128_t type;};\ntemplate <> struct __make_signed<__uint128_t,        true> {typedef __int128_t type;};\n#endif\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS make_signed\n{\n    typedef typename __apply_cv<_Tp, typename __make_signed<typename remove_cv<_Tp>::type>::type>::type type;\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using make_signed_t = typename make_signed<_Tp>::type;\n#endif\n\ntemplate <class _Tp, bool = is_integral<_Tp>::value || is_enum<_Tp>::value>\nstruct __make_unsigned {};\n\ntemplate <class _Tp>\nstruct __make_unsigned<_Tp, true>\n{\n    typedef typename __find_first<__unsigned_types, sizeof(_Tp)>::type type;\n};\n\ntemplate <> struct __make_unsigned<bool,               true> {};\ntemplate <> struct __make_unsigned<  signed short,     true> {typedef unsigned short     type;};\ntemplate <> struct __make_unsigned<unsigned short,     true> {typedef unsigned short     type;};\ntemplate <> struct __make_unsigned<  signed int,       true> {typedef unsigned int       type;};\ntemplate <> struct __make_unsigned<unsigned int,       true> {typedef unsigned int       type;};\ntemplate <> struct __make_unsigned<  signed long,      true> {typedef unsigned long      type;};\ntemplate <> struct __make_unsigned<unsigned long,      true> {typedef unsigned long      type;};\ntemplate <> struct __make_unsigned<  signed long long, true> {typedef unsigned long long type;};\ntemplate <> struct __make_unsigned<unsigned long long, true> {typedef unsigned long long type;};\n#ifndef _LIBCPP_HAS_NO_INT128\ntemplate <> struct __make_unsigned<__int128_t,         true> {typedef __uint128_t        type;};\ntemplate <> struct __make_unsigned<__uint128_t,        true> {typedef __uint128_t        type;};\n#endif\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS make_unsigned\n{\n    typedef typename __apply_cv<_Tp, typename __make_unsigned<typename remove_cv<_Tp>::type>::type>::type type;\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using make_unsigned_t = typename make_unsigned<_Tp>::type;\n#endif\n\n#ifdef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Tp, class _Up = void, class _Vp = void>\nstruct _LIBCPP_TEMPLATE_VIS common_type\n{\npublic:\n    typedef typename common_type<typename common_type<_Tp, _Up>::type, _Vp>::type type;\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS common_type<void, void, void>\n{\npublic:\n    typedef void type;\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS common_type<_Tp, void, void>\n{\npublic:\n    typedef typename common_type<_Tp, _Tp>::type type;\n};\n\ntemplate <class _Tp, class _Up>\nstruct _LIBCPP_TEMPLATE_VIS common_type<_Tp, _Up, void>\n{\n    typedef typename decay<decltype(\n        true ? _VSTD::declval<_Tp>() : _VSTD::declval<_Up>()\n      )>::type type;\n};\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\n// bullet 1 - sizeof...(Tp) == 0\n\ntemplate <class ..._Tp>\nstruct _LIBCPP_TEMPLATE_VIS common_type {};\n\n// bullet 2 - sizeof...(Tp) == 1\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS common_type<_Tp>\n    : public common_type<_Tp, _Tp> {};\n\n// bullet 3 - sizeof...(Tp) == 2\n\ntemplate <class _Tp, class _Up, class = void>\nstruct __common_type2_imp {};\n\ntemplate <class _Tp, class _Up>\nstruct __common_type2_imp<_Tp, _Up,\n    typename __void_t<decltype(\n        true ? _VSTD::declval<_Tp>() : _VSTD::declval<_Up>()\n    )>::type>\n{\n    typedef typename decay<decltype(\n        true ? _VSTD::declval<_Tp>() : _VSTD::declval<_Up>()\n    )>::type type;\n};\n\ntemplate <class _Tp, class _Up,\n          class _DTp = typename decay<_Tp>::type,\n          class _DUp = typename decay<_Up>::type>\nusing __common_type2 =\n  typename conditional<\n    is_same<_Tp, _DTp>::value && is_same<_Up, _DUp>::value,\n    __common_type2_imp<_Tp, _Up>,\n    common_type<_DTp, _DUp>\n  >::type;\n\ntemplate <class _Tp, class _Up>\nstruct _LIBCPP_TEMPLATE_VIS common_type<_Tp, _Up>\n    : __common_type2<_Tp, _Up> {};\n\n// bullet 4 - sizeof...(Tp) > 2\n\ntemplate <class ...Tp> struct __common_types;\n\ntemplate <class, class = void>\nstruct __common_type_impl {};\n\ntemplate <class _Tp, class _Up>\nstruct __common_type_impl<\n    __common_types<_Tp, _Up>,\n    typename __void_t<typename common_type<_Tp, _Up>::type>::type>\n{\n  typedef typename common_type<_Tp, _Up>::type type;\n};\n\ntemplate <class _Tp, class _Up, class ..._Vp>\nstruct __common_type_impl<__common_types<_Tp, _Up, _Vp...>,\n    typename __void_t<typename common_type<_Tp, _Up>::type>::type>\n  : __common_type_impl<\n      __common_types<typename common_type<_Tp, _Up>::type, _Vp...> >\n{\n\n};\n\ntemplate <class _Tp, class _Up, class ..._Vp>\nstruct _LIBCPP_TEMPLATE_VIS common_type<_Tp, _Up, _Vp...>\n    : __common_type_impl<__common_types<_Tp, _Up, _Vp...> > {};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class ..._Tp> using common_type_t = typename common_type<_Tp...>::type;\n#endif\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\n// is_assignable\n\ntemplate<typename, typename _Tp> struct __select_2nd { typedef _Tp type; };\n\ntemplate <class _Tp, class _Arg>\ntypename __select_2nd<decltype((_VSTD::declval<_Tp>() = _VSTD::declval<_Arg>())), true_type>::type\n__is_assignable_test(int);\n\ntemplate <class, class>\nfalse_type __is_assignable_test(...);\n\n\ntemplate <class _Tp, class _Arg, bool = is_void<_Tp>::value || is_void<_Arg>::value>\nstruct __is_assignable_imp\n    : public decltype((_VSTD::__is_assignable_test<_Tp, _Arg>(0))) {};\n\ntemplate <class _Tp, class _Arg>\nstruct __is_assignable_imp<_Tp, _Arg, true>\n    : public false_type\n{\n};\n\ntemplate <class _Tp, class _Arg>\nstruct is_assignable\n    : public __is_assignable_imp<_Tp, _Arg> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp, class _Arg> _LIBCPP_CONSTEXPR bool is_assignable_v\n    = is_assignable<_Tp, _Arg>::value;\n#endif\n\n// is_copy_assignable\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_copy_assignable\n    : public is_assignable<typename add_lvalue_reference<_Tp>::type,\n                  typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_copy_assignable_v\n    = is_copy_assignable<_Tp>::value;\n#endif\n\n// is_move_assignable\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_move_assignable\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    : public is_assignable<typename add_lvalue_reference<_Tp>::type,\n                           typename add_rvalue_reference<_Tp>::type> {};\n#else\n    : public is_copy_assignable<_Tp> {};\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_move_assignable_v\n    = is_move_assignable<_Tp>::value;\n#endif\n\n// is_destructible\n\n//  if it's a reference, return true\n//  if it's a function, return false\n//  if it's   void,     return false\n//  if it's an array of unknown bound, return false\n//  Otherwise, return \"std::declval<_Up&>().~_Up()\" is well-formed\n//    where _Up is remove_all_extents<_Tp>::type\n\ntemplate <class>\nstruct __is_destructible_apply { typedef int type; };\n\ntemplate <typename _Tp>\nstruct __is_destructor_wellformed {\n    template <typename _Tp1>\n    static char  __test (\n        typename __is_destructible_apply<decltype(_VSTD::declval<_Tp1&>().~_Tp1())>::type\n    );\n\n    template <typename _Tp1>\n    static __two __test (...);\n    \n    static const bool value = sizeof(__test<_Tp>(12)) == sizeof(char);\n};\n\ntemplate <class _Tp, bool>\nstruct __destructible_imp;\n\ntemplate <class _Tp>\nstruct __destructible_imp<_Tp, false> \n   : public _VSTD::integral_constant<bool, \n        __is_destructor_wellformed<typename _VSTD::remove_all_extents<_Tp>::type>::value> {};\n\ntemplate <class _Tp>\nstruct __destructible_imp<_Tp, true>\n    : public _VSTD::true_type {};\n\ntemplate <class _Tp, bool>\nstruct __destructible_false;\n\ntemplate <class _Tp>\nstruct __destructible_false<_Tp, false> : public __destructible_imp<_Tp, _VSTD::is_reference<_Tp>::value> {};\n\ntemplate <class _Tp>\nstruct __destructible_false<_Tp, true> : public _VSTD::false_type {};\n\ntemplate <class _Tp>\nstruct is_destructible\n    : public __destructible_false<_Tp, _VSTD::is_function<_Tp>::value> {};\n\ntemplate <class _Tp>\nstruct is_destructible<_Tp[]>\n    : public _VSTD::false_type {};\n\ntemplate <>\nstruct is_destructible<void>\n    : public _VSTD::false_type {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_destructible_v\n    = is_destructible<_Tp>::value;\n#endif\n\n// move\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\ntypename remove_reference<_Tp>::type&&\nmove(_Tp&& __t) _NOEXCEPT\n{\n    typedef typename remove_reference<_Tp>::type _Up;\n    return static_cast<_Up&&>(__t);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n_Tp&&\nforward(typename remove_reference<_Tp>::type& __t) _NOEXCEPT\n{\n    return static_cast<_Tp&&>(__t);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n_Tp&&\nforward(typename remove_reference<_Tp>::type&& __t) _NOEXCEPT\n{\n    static_assert(!is_lvalue_reference<_Tp>::value,\n                  \"can not forward an rvalue as an lvalue\");\n    return static_cast<_Tp&&>(__t);\n}\n\n#else  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp&\nmove(_Tp& __t)\n{\n    return __t;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconst _Tp&\nmove(const _Tp& __t)\n{\n    return __t;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp&\nforward(typename remove_reference<_Tp>::type& __t) _NOEXCEPT\n{\n    return __t;\n}\n\n\ntemplate <class _Tp>\nclass __rv\n{\n    typedef typename remove_reference<_Tp>::type _Trr;\n    _Trr& t_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    _Trr* operator->() {return &t_;}\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __rv(_Trr& __t) : t_(__t) {}\n};\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename decay<_Tp>::type\n__decay_copy(_Tp&& __t)\n{\n    return _VSTD::forward<_Tp>(__t);\n}\n\n#else\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename decay<_Tp>::type\n__decay_copy(const _Tp& __t)\n{\n    return _VSTD::forward<_Tp>(__t);\n}\n\n#endif\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\n#if __has_feature(cxx_reference_qualified_functions) || \\\n    (defined(_GNUC_VER) && _GNUC_VER >= 409)\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &, true, false>\n{\n    typedef _Class& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &, true, false>\n{\n    typedef _Class& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&, true, false>\n{\n    typedef _Class const& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&, true, false>\n{\n    typedef _Class const& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&, true, false>\n{\n    typedef _Class volatile& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&, true, false>\n{\n    typedef _Class volatile& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&, true, false>\n{\n    typedef _Class const volatile& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&, true, false>\n{\n    typedef _Class const volatile& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) &&, true, false>\n{\n    typedef _Class&& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) &&, true, false>\n{\n    typedef _Class&& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const&&, true, false>\n{\n    typedef _Class const&& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const&&, true, false>\n{\n    typedef _Class const&& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) volatile&&, true, false>\n{\n    typedef _Class volatile&& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) volatile&&, true, false>\n{\n    typedef _Class volatile&& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param...) const volatile&&, true, false>\n{\n    typedef _Class const volatile&& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param...);\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_Param..., ...) const volatile&&, true, false>\n{\n    typedef _Class const volatile&& _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_Param..., ...);\n};\n\n#endif  // __has_feature(cxx_reference_qualified_functions) || _GNUC_VER >= 409\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) ();\n};\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(...), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (...);\n};\n\ntemplate <class _Rp, class _Class, class _P0>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0);\n};\n\ntemplate <class _Rp, class _Class, class _P0>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, ...), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, ...);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, ...), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, ...);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1, class _P2>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, _P2);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1, class _P2>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2, ...), true, false>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, _P2, ...);\n};\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)() const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) ();\n};\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(...) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (...);\n};\n\ntemplate <class _Rp, class _Class, class _P0>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0);\n};\n\ntemplate <class _Rp, class _Class, class _P0>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, ...) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, ...);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, ...) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, ...);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1, class _P2>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, _P2);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1, class _P2>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2, ...) const, true, false>\n{\n    typedef _Class const _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, _P2, ...);\n};\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)() volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) ();\n};\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(...) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (...);\n};\n\ntemplate <class _Rp, class _Class, class _P0>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0);\n};\n\ntemplate <class _Rp, class _Class, class _P0>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, ...) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, ...);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, ...) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, ...);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1, class _P2>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, _P2);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1, class _P2>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2, ...) volatile, true, false>\n{\n    typedef _Class volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, _P2, ...);\n};\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)() const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) ();\n};\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(...) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (...);\n};\n\ntemplate <class _Rp, class _Class, class _P0>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0);\n};\n\ntemplate <class _Rp, class _Class, class _P0>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, ...) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, ...);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, ...) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, ...);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1, class _P2>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, _P2);\n};\n\ntemplate <class _Rp, class _Class, class _P0, class _P1, class _P2>\nstruct __member_pointer_traits_imp<_Rp (_Class::*)(_P0, _P1, _P2, ...) const volatile, true, false>\n{\n    typedef _Class const volatile _ClassType;\n    typedef _Rp _ReturnType;\n    typedef _Rp (_FnType) (_P0, _P1, _P2, ...);\n};\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Rp, class _Class>\nstruct __member_pointer_traits_imp<_Rp _Class::*, false, true>\n{\n    typedef _Class _ClassType;\n    typedef _Rp _ReturnType;\n};\n\ntemplate <class _MP>\nstruct __member_pointer_traits\n    : public __member_pointer_traits_imp<typename remove_cv<_MP>::type,\n                    is_member_function_pointer<_MP>::value,\n                    is_member_object_pointer<_MP>::value>\n{\n//     typedef ... _ClassType;\n//     typedef ... _ReturnType;\n//     typedef ... _FnType;\n};\n\n\ntemplate <class _DecayedFp>\nstruct __member_pointer_class_type {};\n\ntemplate <class _Ret, class _ClassType>\nstruct __member_pointer_class_type<_Ret _ClassType::*> {\n  typedef _ClassType type;\n};\n\n// result_of\n\ntemplate <class _Callable> class result_of;\n\n#ifdef _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Fn, bool, bool>\nclass __result_of\n{\n};\n\ntemplate <class _Fn>\nclass __result_of<_Fn(), true, false>\n{\npublic:\n    typedef decltype(declval<_Fn>()()) type;\n};\n\ntemplate <class _Fn, class _A0>\nclass __result_of<_Fn(_A0), true, false>\n{\npublic:\n    typedef decltype(declval<_Fn>()(declval<_A0>())) type;\n};\n\ntemplate <class _Fn, class _A0, class _A1>\nclass __result_of<_Fn(_A0, _A1), true, false>\n{\npublic:\n    typedef decltype(declval<_Fn>()(declval<_A0>(), declval<_A1>())) type;\n};\n\ntemplate <class _Fn, class _A0, class _A1, class _A2>\nclass __result_of<_Fn(_A0, _A1, _A2), true, false>\n{\npublic:\n    typedef decltype(declval<_Fn>()(declval<_A0>(), declval<_A1>(), declval<_A2>())) type;\n};\n\ntemplate <class _MP, class _Tp, bool _IsMemberFunctionPtr>\nstruct __result_of_mp;\n\n// member function pointer\n\ntemplate <class _MP, class _Tp>\nstruct __result_of_mp<_MP, _Tp, true>\n    : public __identity<typename __member_pointer_traits<_MP>::_ReturnType>\n{\n};\n\n// member data pointer\n\ntemplate <class _MP, class _Tp, bool>\nstruct __result_of_mdp;\n\ntemplate <class _Rp, class _Class, class _Tp>\nstruct __result_of_mdp<_Rp _Class::*, _Tp, false>\n{\n    typedef typename __apply_cv<decltype(*_VSTD::declval<_Tp>()), _Rp>::type& type;\n};\n\ntemplate <class _Rp, class _Class, class _Tp>\nstruct __result_of_mdp<_Rp _Class::*, _Tp, true>\n{\n    typedef typename __apply_cv<_Tp, _Rp>::type& type;\n};\n\ntemplate <class _Rp, class _Class, class _Tp>\nstruct __result_of_mp<_Rp _Class::*, _Tp, false>\n    : public __result_of_mdp<_Rp _Class::*, _Tp,\n            is_base_of<_Class, typename remove_reference<_Tp>::type>::value>\n{\n};\n\n\n\ntemplate <class _Fn, class _Tp>\nclass __result_of<_Fn(_Tp), false, true>  // _Fn must be member pointer\n    : public __result_of_mp<typename remove_reference<_Fn>::type,\n                            _Tp,\n                            is_member_function_pointer<typename remove_reference<_Fn>::type>::value>\n{\n};\n\ntemplate <class _Fn, class _Tp, class _A0>\nclass __result_of<_Fn(_Tp, _A0), false, true>  // _Fn must be member pointer\n    : public __result_of_mp<typename remove_reference<_Fn>::type,\n                            _Tp,\n                            is_member_function_pointer<typename remove_reference<_Fn>::type>::value>\n{\n};\n\ntemplate <class _Fn, class _Tp, class _A0, class _A1>\nclass __result_of<_Fn(_Tp, _A0, _A1), false, true>  // _Fn must be member pointer\n    : public __result_of_mp<typename remove_reference<_Fn>::type,\n                            _Tp,\n                            is_member_function_pointer<typename remove_reference<_Fn>::type>::value>\n{\n};\n\ntemplate <class _Fn, class _Tp, class _A0, class _A1, class _A2>\nclass __result_of<_Fn(_Tp, _A0, _A1, _A2), false, true>  // _Fn must be member pointer\n    : public __result_of_mp<typename remove_reference<_Fn>::type,\n                            _Tp,\n                            is_member_function_pointer<typename remove_reference<_Fn>::type>::value>\n{\n};\n\n// result_of\n\ntemplate <class _Fn>\nclass _LIBCPP_TEMPLATE_VIS result_of<_Fn()>\n    : public __result_of<_Fn(),\n                         is_class<typename remove_reference<_Fn>::type>::value ||\n                         is_function<typename remove_pointer<typename remove_reference<_Fn>::type>::type>::value,\n                         is_member_pointer<typename remove_reference<_Fn>::type>::value\n                        >\n{\n};\n\ntemplate <class _Fn, class _A0>\nclass _LIBCPP_TEMPLATE_VIS result_of<_Fn(_A0)>\n    : public __result_of<_Fn(_A0),\n                         is_class<typename remove_reference<_Fn>::type>::value ||\n                         is_function<typename remove_pointer<typename remove_reference<_Fn>::type>::type>::value,\n                         is_member_pointer<typename remove_reference<_Fn>::type>::value\n                        >\n{\n};\n\ntemplate <class _Fn, class _A0, class _A1>\nclass _LIBCPP_TEMPLATE_VIS result_of<_Fn(_A0, _A1)>\n    : public __result_of<_Fn(_A0, _A1),\n                         is_class<typename remove_reference<_Fn>::type>::value ||\n                         is_function<typename remove_pointer<typename remove_reference<_Fn>::type>::type>::value,\n                         is_member_pointer<typename remove_reference<_Fn>::type>::value\n                        >\n{\n};\n\ntemplate <class _Fn, class _A0, class _A1, class _A2>\nclass _LIBCPP_TEMPLATE_VIS result_of<_Fn(_A0, _A1, _A2)>\n    : public __result_of<_Fn(_A0, _A1, _A2),\n                         is_class<typename remove_reference<_Fn>::type>::value ||\n                         is_function<typename remove_pointer<typename remove_reference<_Fn>::type>::type>::value,\n                         is_member_pointer<typename remove_reference<_Fn>::type>::value\n                        >\n{\n};\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\n// template <class T, class... Args> struct is_constructible;\n\nnamespace __is_construct\n{\nstruct __nat {};\n}\n\n#if !defined(_LIBCPP_CXX03_LANG) && (!__has_feature(is_constructible) || \\\n    defined(_LIBCPP_TESTING_FALLBACK_IS_CONSTRUCTIBLE))\n\ntemplate <class _Tp, class... _Args>\nstruct __libcpp_is_constructible;\n\ntemplate <class _To, class _From>\nstruct __is_invalid_base_to_derived_cast {\n  static_assert(is_reference<_To>::value, \"Wrong specialization\");\n  using _RawFrom = __uncvref_t<_From>;\n  using _RawTo = __uncvref_t<_To>;\n  static const bool value = __lazy_and<\n        __lazy_not<is_same<_RawFrom, _RawTo>>,\n        is_base_of<_RawFrom, _RawTo>,\n        __lazy_not<__libcpp_is_constructible<_RawTo, _From>>\n  >::value;\n};\n\ntemplate <class _To, class _From>\nstruct __is_invalid_lvalue_to_rvalue_cast : false_type {\n  static_assert(is_reference<_To>::value, \"Wrong specialization\");\n};\n\ntemplate <class _ToRef, class _FromRef>\nstruct __is_invalid_lvalue_to_rvalue_cast<_ToRef&&, _FromRef&> {\n  using _RawFrom = __uncvref_t<_FromRef>;\n  using _RawTo = __uncvref_t<_ToRef>;\n  static const bool value = __lazy_and<\n      __lazy_not<is_function<_RawTo>>,\n      __lazy_or<\n        is_same<_RawFrom, _RawTo>,\n        is_base_of<_RawTo, _RawFrom>>\n    >::value;\n};\n\nstruct __is_constructible_helper\n{\n    template <class _To>\n    static void __eat(_To);\n\n    // This overload is needed to work around a Clang bug that disallows\n    // static_cast<T&&>(e) for non-reference-compatible types.\n    // Example: static_cast<int&&>(declval<double>());\n    // NOTE: The static_cast implementation below is required to support\n    //  classes with explicit conversion operators.\n    template <class _To, class _From,\n              class = decltype(__eat<_To>(_VSTD::declval<_From>()))>\n    static true_type __test_cast(int);\n\n    template <class _To, class _From,\n              class = decltype(static_cast<_To>(_VSTD::declval<_From>()))>\n    static integral_constant<bool,\n        !__is_invalid_base_to_derived_cast<_To, _From>::value &&\n        !__is_invalid_lvalue_to_rvalue_cast<_To, _From>::value\n    > __test_cast(long);\n\n    template <class, class>\n    static false_type __test_cast(...);\n\n    template <class _Tp, class ..._Args,\n        class = decltype(_Tp(_VSTD::declval<_Args>()...))>\n    static true_type __test_nary(int);\n    template <class _Tp, class...>\n    static false_type __test_nary(...);\n\n    template <class _Tp, class _A0, class = decltype(::new _Tp(_VSTD::declval<_A0>()))>\n    static is_destructible<_Tp> __test_unary(int);\n    template <class, class>\n    static false_type __test_unary(...);\n};\n\ntemplate <class _Tp, bool = is_void<_Tp>::value>\nstruct __is_default_constructible\n    : decltype(__is_constructible_helper::__test_nary<_Tp>(0))\n{};\n\ntemplate <class _Tp>\nstruct __is_default_constructible<_Tp, true> : false_type {};\n\ntemplate <class _Tp>\nstruct __is_default_constructible<_Tp[], false> : false_type {};\n\ntemplate <class _Tp, size_t _Nx>\nstruct __is_default_constructible<_Tp[_Nx], false>\n    : __is_default_constructible<typename remove_all_extents<_Tp>::type>  {};\n\ntemplate <class _Tp, class... _Args>\nstruct __libcpp_is_constructible\n{\n  static_assert(sizeof...(_Args) > 1, \"Wrong specialization\");\n  typedef decltype(__is_constructible_helper::__test_nary<_Tp, _Args...>(0))\n      type;\n};\n\ntemplate <class _Tp>\nstruct __libcpp_is_constructible<_Tp> : __is_default_constructible<_Tp> {};\n\ntemplate <class _Tp, class _A0>\nstruct __libcpp_is_constructible<_Tp, _A0>\n    : public decltype(__is_constructible_helper::__test_unary<_Tp, _A0>(0))\n{};\n\ntemplate <class _Tp, class _A0>\nstruct __libcpp_is_constructible<_Tp&, _A0>\n    : public decltype(__is_constructible_helper::\n    __test_cast<_Tp&, _A0>(0))\n{};\n\ntemplate <class _Tp, class _A0>\nstruct __libcpp_is_constructible<_Tp&&, _A0>\n    : public decltype(__is_constructible_helper::\n    __test_cast<_Tp&&, _A0>(0))\n{};\n\n#endif\n\n#if __has_feature(is_constructible)\ntemplate <class _Tp, class ..._Args>\nstruct _LIBCPP_TEMPLATE_VIS is_constructible\n    : public integral_constant<bool, __is_constructible(_Tp, _Args...)>\n    {};\n#elif !defined(_LIBCPP_CXX03_LANG)\ntemplate <class _Tp, class... _Args>\nstruct _LIBCPP_TEMPLATE_VIS is_constructible\n    : public __libcpp_is_constructible<_Tp, _Args...>::type {};\n#else\n// template <class T> struct is_constructible0;\n\n//      main is_constructible0 test\n\ntemplate <class _Tp>\ndecltype((_Tp(), true_type()))\n__is_constructible0_test(_Tp&);\n\nfalse_type\n__is_constructible0_test(__any);\n\ntemplate <class _Tp, class _A0>\ndecltype((_Tp(_VSTD::declval<_A0>()), true_type()))\n__is_constructible1_test(_Tp&, _A0&);\n\ntemplate <class _A0>\nfalse_type\n__is_constructible1_test(__any, _A0&);\n\ntemplate <class _Tp, class _A0, class _A1>\ndecltype((_Tp(_VSTD::declval<_A0>(), _VSTD::declval<_A1>()), true_type()))\n__is_constructible2_test(_Tp&, _A0&, _A1&);\n\ntemplate <class _A0, class _A1>\nfalse_type\n__is_constructible2_test(__any, _A0&, _A1&);\n\ntemplate <bool, class _Tp>\nstruct __is_constructible0_imp // false, _Tp is not a scalar\n    : public common_type\n             <\n                 decltype(__is_constructible0_test(declval<_Tp&>()))\n             >::type\n    {};\n\ntemplate <bool, class _Tp, class _A0>\nstruct __is_constructible1_imp // false, _Tp is not a scalar\n    : public common_type\n             <\n                 decltype(__is_constructible1_test(declval<_Tp&>(), declval<_A0&>()))\n             >::type\n    {};\n\ntemplate <bool, class _Tp, class _A0, class _A1>\nstruct __is_constructible2_imp // false, _Tp is not a scalar\n    : public common_type\n             <\n                 decltype(__is_constructible2_test(declval<_Tp&>(), declval<_A0>(), declval<_A1>()))\n             >::type\n    {};\n\n//      handle scalars and reference types\n\n//      Scalars are default constructible, references are not\n\ntemplate <class _Tp>\nstruct __is_constructible0_imp<true, _Tp>\n    : public is_scalar<_Tp>\n    {};\n\ntemplate <class _Tp, class _A0>\nstruct __is_constructible1_imp<true, _Tp, _A0>\n    : public is_convertible<_A0, _Tp>\n    {};\n\ntemplate <class _Tp, class _A0, class _A1>\nstruct __is_constructible2_imp<true, _Tp, _A0, _A1>\n    : public false_type\n    {};\n\n//      Treat scalars and reference types separately\n\ntemplate <bool, class _Tp>\nstruct __is_constructible0_void_check\n    : public __is_constructible0_imp<is_scalar<_Tp>::value || is_reference<_Tp>::value,\n                                _Tp>\n    {};\n\ntemplate <bool, class _Tp, class _A0>\nstruct __is_constructible1_void_check\n    : public __is_constructible1_imp<is_scalar<_Tp>::value || is_reference<_Tp>::value,\n                                _Tp, _A0>\n    {};\n\ntemplate <bool, class _Tp, class _A0, class _A1>\nstruct __is_constructible2_void_check\n    : public __is_constructible2_imp<is_scalar<_Tp>::value || is_reference<_Tp>::value,\n                                _Tp, _A0, _A1>\n    {};\n\n//      If any of T or Args is void, is_constructible should be false\n\ntemplate <class _Tp>\nstruct __is_constructible0_void_check<true, _Tp>\n    : public false_type\n    {};\n\ntemplate <class _Tp, class _A0>\nstruct __is_constructible1_void_check<true, _Tp, _A0>\n    : public false_type\n    {};\n\ntemplate <class _Tp, class _A0, class _A1>\nstruct __is_constructible2_void_check<true, _Tp, _A0, _A1>\n    : public false_type\n    {};\n\n//      is_constructible entry point\n\ntemplate <class _Tp, class _A0 = __is_construct::__nat,\n                     class _A1 = __is_construct::__nat>\nstruct _LIBCPP_TEMPLATE_VIS is_constructible\n    : public __is_constructible2_void_check<is_void<_Tp>::value\n                                        || is_abstract<_Tp>::value\n                                        || is_function<_Tp>::value\n                                        || is_void<_A0>::value\n                                        || is_void<_A1>::value,\n                                           _Tp, _A0, _A1>\n    {};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_constructible<_Tp, __is_construct::__nat, __is_construct::__nat>\n    : public __is_constructible0_void_check<is_void<_Tp>::value\n                                        || is_abstract<_Tp>::value\n                                        || is_function<_Tp>::value,\n                                           _Tp>\n    {};\n\ntemplate <class _Tp, class _A0>\nstruct _LIBCPP_TEMPLATE_VIS is_constructible<_Tp, _A0, __is_construct::__nat>\n    : public __is_constructible1_void_check<is_void<_Tp>::value\n                                        || is_abstract<_Tp>::value\n                                        || is_function<_Tp>::value\n                                        || is_void<_A0>::value,\n                                           _Tp, _A0>\n    {};\n\n//      Array types are default constructible if their element type\n//      is default constructible\n\ntemplate <class _Ap, size_t _Np>\nstruct __is_constructible0_imp<false, _Ap[_Np]>\n    : public is_constructible<typename remove_all_extents<_Ap>::type>\n    {};\n\ntemplate <class _Ap, size_t _Np, class _A0>\nstruct __is_constructible1_imp<false, _Ap[_Np], _A0>\n    : public false_type\n    {};\n\ntemplate <class _Ap, size_t _Np, class _A0, class _A1>\nstruct __is_constructible2_imp<false, _Ap[_Np], _A0, _A1>\n    : public false_type\n    {};\n\n//      Incomplete array types are not constructible\n\ntemplate <class _Ap>\nstruct __is_constructible0_imp<false, _Ap[]>\n    : public false_type\n    {};\n\ntemplate <class _Ap, class _A0>\nstruct __is_constructible1_imp<false, _Ap[], _A0>\n    : public false_type\n    {};\n\ntemplate <class _Ap, class _A0, class _A1>\nstruct __is_constructible2_imp<false, _Ap[], _A0, _A1>\n    : public false_type\n    {};\n\n#endif // __has_feature(is_constructible)\n\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\ntemplate <class _Tp, class ..._Args> _LIBCPP_CONSTEXPR bool is_constructible_v\n    = is_constructible<_Tp, _Args...>::value;\n#endif\n\n// is_default_constructible\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_default_constructible\n    : public is_constructible<_Tp>\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_default_constructible_v\n    = is_default_constructible<_Tp>::value;\n#endif\n\n// is_copy_constructible\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_copy_constructible\n    : public is_constructible<_Tp, \n                  typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_copy_constructible_v\n    = is_copy_constructible<_Tp>::value;\n#endif\n\n// is_move_constructible\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_move_constructible\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    : public is_constructible<_Tp, typename add_rvalue_reference<_Tp>::type>\n#else\n    : public is_copy_constructible<_Tp>\n#endif\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_move_constructible_v\n    = is_move_constructible<_Tp>::value;\n#endif\n\n// is_trivially_constructible\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\n#if __has_feature(is_trivially_constructible) || _GNUC_VER >= 501\n\ntemplate <class _Tp, class... _Args>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible\n    : integral_constant<bool, __is_trivially_constructible(_Tp, _Args...)>\n{\n};\n\n#else  // !__has_feature(is_trivially_constructible)\n\ntemplate <class _Tp, class... _Args>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible\n    : false_type\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp>\n#if __has_feature(has_trivial_constructor) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_trivial_constructor(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\ntemplate <class _Tp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, _Tp&&>\n#else\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, _Tp>\n#endif\n    : integral_constant<bool, is_scalar<_Tp>::value>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, const _Tp&>\n    : integral_constant<bool, is_scalar<_Tp>::value>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, _Tp&>\n    : integral_constant<bool, is_scalar<_Tp>::value>\n{\n};\n\n#endif  // !__has_feature(is_trivially_constructible)\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Tp, class _A0 = __is_construct::__nat,\n                     class _A1 = __is_construct::__nat>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible\n    : false_type\n{\n};\n\n#if __has_feature(is_trivially_constructible) || _GNUC_VER >= 501\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, __is_construct::__nat,\n                                                       __is_construct::__nat>\n    : integral_constant<bool, __is_trivially_constructible(_Tp)>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, _Tp,\n                                                       __is_construct::__nat>\n    : integral_constant<bool, __is_trivially_constructible(_Tp, _Tp)>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, const _Tp&,\n                                                       __is_construct::__nat>\n    : integral_constant<bool, __is_trivially_constructible(_Tp, const _Tp&)>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, _Tp&,\n                                                       __is_construct::__nat>\n    : integral_constant<bool, __is_trivially_constructible(_Tp, _Tp&)>\n{\n};\n\n#else  // !__has_feature(is_trivially_constructible)\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, __is_construct::__nat,\n                                                       __is_construct::__nat>\n    : integral_constant<bool, is_scalar<_Tp>::value>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, _Tp,\n                                                       __is_construct::__nat>\n    : integral_constant<bool, is_scalar<_Tp>::value>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, const _Tp&,\n                                                       __is_construct::__nat>\n    : integral_constant<bool, is_scalar<_Tp>::value>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_trivially_constructible<_Tp, _Tp&,\n                                                       __is_construct::__nat>\n    : integral_constant<bool, is_scalar<_Tp>::value>\n{\n};\n\n#endif  // !__has_feature(is_trivially_constructible)\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\ntemplate <class _Tp, class... _Args> _LIBCPP_CONSTEXPR bool is_trivially_constructible_v\n    = is_trivially_constructible<_Tp, _Args...>::value;\n#endif\n\n// is_trivially_default_constructible\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_default_constructible\n    : public is_trivially_constructible<_Tp>\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_default_constructible_v\n    = is_trivially_default_constructible<_Tp>::value;\n#endif\n\n// is_trivially_copy_constructible\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_copy_constructible\n    : public is_trivially_constructible<_Tp, typename add_lvalue_reference<const _Tp>::type>\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_copy_constructible_v\n    = is_trivially_copy_constructible<_Tp>::value;\n#endif\n\n// is_trivially_move_constructible\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_move_constructible\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    : public is_trivially_constructible<_Tp, typename add_rvalue_reference<_Tp>::type>\n#else\n    : public is_trivially_copy_constructible<_Tp>\n#endif\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_move_constructible_v\n    = is_trivially_move_constructible<_Tp>::value;\n#endif\n\n// is_trivially_assignable\n\n#if __has_feature(is_trivially_assignable) || _GNUC_VER >= 501\n\ntemplate <class _Tp, class _Arg>\nstruct is_trivially_assignable\n    : integral_constant<bool, __is_trivially_assignable(_Tp, _Arg)>\n{\n};\n\n#else  // !__has_feature(is_trivially_assignable)\n\ntemplate <class _Tp, class _Arg>\nstruct is_trivially_assignable\n    : public false_type {};\n\ntemplate <class _Tp>\nstruct is_trivially_assignable<_Tp&, _Tp>\n    : integral_constant<bool, is_scalar<_Tp>::value> {};\n\ntemplate <class _Tp>\nstruct is_trivially_assignable<_Tp&, _Tp&>\n    : integral_constant<bool, is_scalar<_Tp>::value> {};\n\ntemplate <class _Tp>\nstruct is_trivially_assignable<_Tp&, const _Tp&>\n    : integral_constant<bool, is_scalar<_Tp>::value> {};\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp>\nstruct is_trivially_assignable<_Tp&, _Tp&&>\n    : integral_constant<bool, is_scalar<_Tp>::value> {};\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n#endif  // !__has_feature(is_trivially_assignable)\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp, class _Arg> _LIBCPP_CONSTEXPR bool is_trivially_assignable_v\n    = is_trivially_assignable<_Tp, _Arg>::value;\n#endif\n\n// is_trivially_copy_assignable\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_copy_assignable\n    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,\n                  typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_copy_assignable_v\n    = is_trivially_copy_assignable<_Tp>::value;\n#endif\n\n// is_trivially_move_assignable\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_move_assignable\n    : public is_trivially_assignable<typename add_lvalue_reference<_Tp>::type,\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n                                     typename add_rvalue_reference<_Tp>::type>\n#else\n                                     typename add_lvalue_reference<_Tp>::type>\n#endif\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_move_assignable_v\n    = is_trivially_move_assignable<_Tp>::value;\n#endif\n\n// is_trivially_destructible\n\n#if __has_feature(has_trivial_destructor) || (_GNUC_VER >= 403)\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_destructible\n    : public integral_constant<bool, is_destructible<_Tp>::value && __has_trivial_destructor(_Tp)> {};\n\n#else\n\ntemplate <class _Tp> struct __libcpp_trivial_destructor\n    : public integral_constant<bool, is_scalar<_Tp>::value ||\n                                     is_reference<_Tp>::value> {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_destructible\n    : public __libcpp_trivial_destructor<typename remove_all_extents<_Tp>::type> {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_destructible<_Tp[]>\n    : public false_type {};\n\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_destructible_v\n    = is_trivially_destructible<_Tp>::value;\n#endif\n\n// is_nothrow_constructible\n\n#if 0\ntemplate <class _Tp, class... _Args>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible\n    : public integral_constant<bool, __is_nothrow_constructible(_Tp(_Args...))>\n{\n};\n\n#else\n\n#ifndef _LIBCPP_HAS_NO_VARIADICS\n\n#if __has_feature(cxx_noexcept) || (_GNUC_VER >= 407 && __cplusplus >= 201103L)\n\ntemplate <bool, bool, class _Tp, class... _Args> struct __libcpp_is_nothrow_constructible;\n\ntemplate <class _Tp, class... _Args>\nstruct __libcpp_is_nothrow_constructible</*is constructible*/true, /*is reference*/false, _Tp, _Args...>\n    : public integral_constant<bool, noexcept(_Tp(declval<_Args>()...))>\n{\n};\n\ntemplate <class _Tp>\nvoid __implicit_conversion_to(_Tp) noexcept { }\n\ntemplate <class _Tp, class _Arg>\nstruct __libcpp_is_nothrow_constructible</*is constructible*/true, /*is reference*/true, _Tp, _Arg>\n    : public integral_constant<bool, noexcept(__implicit_conversion_to<_Tp>(declval<_Arg>()))>\n{\n};\n\ntemplate <class _Tp, bool _IsReference, class... _Args>\nstruct __libcpp_is_nothrow_constructible</*is constructible*/false, _IsReference, _Tp, _Args...>\n    : public false_type\n{\n};\n\ntemplate <class _Tp, class... _Args>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible\n    : __libcpp_is_nothrow_constructible<is_constructible<_Tp, _Args...>::value, is_reference<_Tp>::value, _Tp, _Args...>\n{\n};\n\ntemplate <class _Tp, size_t _Ns>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp[_Ns]>\n    : __libcpp_is_nothrow_constructible<is_constructible<_Tp>::value, is_reference<_Tp>::value, _Tp>\n{\n};\n\n#else  // __has_feature(cxx_noexcept)\n\ntemplate <class _Tp, class... _Args>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible\n    : false_type\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp>\n#if __has_feature(has_nothrow_constructor) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_constructor(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\ntemplate <class _Tp>\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp, _Tp&&>\n#else\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp, _Tp>\n#endif\n#if __has_feature(has_nothrow_copy) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_copy(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp, const _Tp&>\n#if __has_feature(has_nothrow_copy) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_copy(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp, _Tp&>\n#if __has_feature(has_nothrow_copy) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_copy(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\n#endif  // __has_feature(cxx_noexcept)\n\n#else  // _LIBCPP_HAS_NO_VARIADICS\n\ntemplate <class _Tp, class _A0 = __is_construct::__nat,\n                     class _A1 = __is_construct::__nat>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible\n    : false_type\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp, __is_construct::__nat,\n                                                       __is_construct::__nat>\n#if __has_feature(has_nothrow_constructor) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_constructor(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp, _Tp,\n                                                       __is_construct::__nat>\n#if __has_feature(has_nothrow_copy) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_copy(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp, const _Tp&,\n                                                       __is_construct::__nat>\n#if __has_feature(has_nothrow_copy) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_copy(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible<_Tp, _Tp&,\n                                                       __is_construct::__nat>\n#if __has_feature(has_nothrow_copy) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_copy(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value>\n#endif\n{\n};\n\n#endif  // _LIBCPP_HAS_NO_VARIADICS\n#endif  // __has_feature(is_nothrow_constructible)\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES) && !defined(_LIBCPP_HAS_NO_VARIADICS)\ntemplate <class _Tp, class ..._Args> _LIBCPP_CONSTEXPR bool is_nothrow_constructible_v\n    = is_nothrow_constructible<_Tp, _Args...>::value;\n#endif\n\n// is_nothrow_default_constructible\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_nothrow_default_constructible\n    : public is_nothrow_constructible<_Tp>\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_default_constructible_v\n    = is_nothrow_default_constructible<_Tp>::value;\n#endif\n\n// is_nothrow_copy_constructible\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_nothrow_copy_constructible\n    : public is_nothrow_constructible<_Tp,\n                  typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_copy_constructible_v\n    = is_nothrow_copy_constructible<_Tp>::value;\n#endif\n\n// is_nothrow_move_constructible\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_nothrow_move_constructible\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n    : public is_nothrow_constructible<_Tp, typename add_rvalue_reference<_Tp>::type>\n#else\n    : public is_nothrow_copy_constructible<_Tp>\n#endif\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_move_constructible_v\n    = is_nothrow_move_constructible<_Tp>::value;\n#endif\n\n// is_nothrow_assignable\n\n#if __has_feature(cxx_noexcept) || (_GNUC_VER >= 407 && __cplusplus >= 201103L)\n\ntemplate <bool, class _Tp, class _Arg> struct __libcpp_is_nothrow_assignable;\n\ntemplate <class _Tp, class _Arg>\nstruct __libcpp_is_nothrow_assignable<false, _Tp, _Arg>\n    : public false_type\n{\n};\n\ntemplate <class _Tp, class _Arg>\nstruct __libcpp_is_nothrow_assignable<true, _Tp, _Arg>\n    : public integral_constant<bool, noexcept(_VSTD::declval<_Tp>() = _VSTD::declval<_Arg>()) >\n{\n};\n\ntemplate <class _Tp, class _Arg>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_assignable\n    : public __libcpp_is_nothrow_assignable<is_assignable<_Tp, _Arg>::value, _Tp, _Arg>\n{\n};\n\n#else  // __has_feature(cxx_noexcept)\n\ntemplate <class _Tp, class _Arg>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_assignable\n    : public false_type {};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_assignable<_Tp&, _Tp>\n#if __has_feature(has_nothrow_assign) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_assign(_Tp)> {};\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value> {};\n#endif\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_assignable<_Tp&, _Tp&>\n#if __has_feature(has_nothrow_assign) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_assign(_Tp)> {};\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value> {};\n#endif\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_assignable<_Tp&, const _Tp&>\n#if __has_feature(has_nothrow_assign) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_assign(_Tp)> {};\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value> {};\n#endif\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp>\nstruct is_nothrow_assignable<_Tp&, _Tp&&>\n#if __has_feature(has_nothrow_assign) || (_GNUC_VER >= 403)\n    : integral_constant<bool, __has_nothrow_assign(_Tp)> {};\n#else\n    : integral_constant<bool, is_scalar<_Tp>::value> {};\n#endif\n\n#endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\n#endif  // __has_feature(cxx_noexcept)\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp, class _Arg> _LIBCPP_CONSTEXPR bool is_nothrow_assignable_v\n    = is_nothrow_assignable<_Tp, _Arg>::value;\n#endif\n\n// is_nothrow_copy_assignable\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_nothrow_copy_assignable\n    : public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type,\n                  typename add_lvalue_reference<typename add_const<_Tp>::type>::type> {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_copy_assignable_v\n    = is_nothrow_copy_assignable<_Tp>::value;\n#endif\n\n// is_nothrow_move_assignable\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_nothrow_move_assignable\n    : public is_nothrow_assignable<typename add_lvalue_reference<_Tp>::type,\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n                                     typename add_rvalue_reference<_Tp>::type>\n#else\n                                     typename add_lvalue_reference<_Tp>::type>\n#endif\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_move_assignable_v\n    = is_nothrow_move_assignable<_Tp>::value;\n#endif\n\n// is_nothrow_destructible\n\n#if __has_feature(cxx_noexcept) || (_GNUC_VER >= 407 && __cplusplus >= 201103L)\n\ntemplate <bool, class _Tp> struct __libcpp_is_nothrow_destructible;\n\ntemplate <class _Tp>\nstruct __libcpp_is_nothrow_destructible<false, _Tp>\n    : public false_type\n{\n};\n\ntemplate <class _Tp>\nstruct __libcpp_is_nothrow_destructible<true, _Tp>\n    : public integral_constant<bool, noexcept(_VSTD::declval<_Tp>().~_Tp()) >\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_destructible\n    : public __libcpp_is_nothrow_destructible<is_destructible<_Tp>::value, _Tp>\n{\n};\n\ntemplate <class _Tp, size_t _Ns>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_destructible<_Tp[_Ns]>\n    : public is_nothrow_destructible<_Tp>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_destructible<_Tp&>\n    : public true_type\n{\n};\n\n#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_destructible<_Tp&&>\n    : public true_type\n{\n};\n\n#endif\n\n#else\n\ntemplate <class _Tp> struct __libcpp_nothrow_destructor\n    : public integral_constant<bool, is_scalar<_Tp>::value ||\n                                     is_reference<_Tp>::value> {};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_nothrow_destructible\n    : public __libcpp_nothrow_destructor<typename remove_all_extents<_Tp>::type> {};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_destructible<_Tp[]>\n    : public false_type {};\n\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_nothrow_destructible_v\n    = is_nothrow_destructible<_Tp>::value;\n#endif\n\n// is_pod\n\n#if __has_feature(is_pod) || (_GNUC_VER >= 403)\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_pod\n    : public integral_constant<bool, __is_pod(_Tp)> {};\n\n#else\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_pod\n    : public integral_constant<bool, is_trivially_default_constructible<_Tp>::value   &&\n                                     is_trivially_copy_constructible<_Tp>::value      &&\n                                     is_trivially_copy_assignable<_Tp>::value    &&\n                                     is_trivially_destructible<_Tp>::value> {};\n\n#endif\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_pod_v\n    = is_pod<_Tp>::value;\n#endif\n\n// is_literal_type;\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_literal_type\n#ifdef _LIBCPP_IS_LITERAL\n    : public integral_constant<bool, _LIBCPP_IS_LITERAL(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value ||\n                              is_reference<typename remove_all_extents<_Tp>::type>::value>\n#endif\n    {};\n    \n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_literal_type_v\n    = is_literal_type<_Tp>::value;\n#endif\n\n// is_standard_layout;\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_standard_layout\n#if __has_feature(is_standard_layout) || (_GNUC_VER >= 407)\n    : public integral_constant<bool, __is_standard_layout(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value>\n#endif\n    {};\n    \n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_standard_layout_v\n    = is_standard_layout<_Tp>::value;\n#endif\n\n// is_trivially_copyable;\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivially_copyable\n#if __has_feature(is_trivially_copyable)\n    : public integral_constant<bool, __is_trivially_copyable(_Tp)>\n#elif _GNUC_VER >= 501\n    : public integral_constant<bool, !is_volatile<_Tp>::value && __is_trivially_copyable(_Tp)>\n#else\n    : integral_constant<bool, is_scalar<typename remove_all_extents<_Tp>::type>::value>\n#endif\n    {};\n    \n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivially_copyable_v\n    = is_trivially_copyable<_Tp>::value;\n#endif\n\n// is_trivial;\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS is_trivial\n#if __has_feature(is_trivial) || _GNUC_VER >= 407\n    : public integral_constant<bool, __is_trivial(_Tp)>\n#else\n    : integral_constant<bool, is_trivially_copyable<_Tp>::value &&\n                                 is_trivially_default_constructible<_Tp>::value>\n#endif\n    {};\n\n#if _LIBCPP_STD_VER > 14 && !defined(_LIBCPP_HAS_NO_VARIABLE_TEMPLATES)\ntemplate <class _Tp> _LIBCPP_CONSTEXPR bool is_trivial_v\n    = is_trivial<_Tp>::value;\n#endif\n\ntemplate <class _Tp> struct __is_reference_wrapper_impl : public false_type {};\ntemplate <class _Tp> struct __is_reference_wrapper_impl<reference_wrapper<_Tp> > : public true_type {};\ntemplate <class _Tp> struct __is_reference_wrapper\n    : public __is_reference_wrapper_impl<typename remove_cv<_Tp>::type> {};\n\n#ifndef _LIBCPP_CXX03_LANG\n\n// Check for complete types\n\ntemplate <class ..._Tp> struct __check_complete;\n\ntemplate <>\nstruct __check_complete<>\n{\n};\n\ntemplate <class _Hp, class _T0, class ..._Tp>\nstruct __check_complete<_Hp, _T0, _Tp...>\n    : private __check_complete<_Hp>,\n      private __check_complete<_T0, _Tp...>\n{\n};\n\ntemplate <class _Hp>\nstruct __check_complete<_Hp, _Hp>\n    : private __check_complete<_Hp>\n{\n};\n\ntemplate <class _Tp>\nstruct __check_complete<_Tp>\n{\n    static_assert(sizeof(_Tp) > 0, \"Type must be complete.\");\n};\n\ntemplate <class _Tp>\nstruct __check_complete<_Tp&>\n    : private __check_complete<_Tp>\n{\n};\n\ntemplate <class _Tp>\nstruct __check_complete<_Tp&&>\n    : private __check_complete<_Tp>\n{\n};\n\ntemplate <class _Rp, class ..._Param>\nstruct __check_complete<_Rp (*)(_Param...)>\n    : private __check_complete<_Rp>\n{\n};\n\ntemplate <class ..._Param>\nstruct __check_complete<void (*)(_Param...)>\n{\n};\n\ntemplate <class _Rp, class ..._Param>\nstruct __check_complete<_Rp (_Param...)>\n    : private __check_complete<_Rp>\n{\n};\n\ntemplate <class ..._Param>\nstruct __check_complete<void (_Param...)>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...)>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) const>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) volatile>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) const volatile>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) &>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) const&>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) volatile&>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) const volatile&>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) &&>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) const&&>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) volatile&&>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class, class ..._Param>\nstruct __check_complete<_Rp (_Class::*)(_Param...) const volatile&&>\n    : private __check_complete<_Class>\n{\n};\n\ntemplate <class _Rp, class _Class>\nstruct __check_complete<_Rp _Class::*>\n    : private __check_complete<_Class>\n{\n};\n\n\ntemplate <class _Fp, class _A0,\n         class _DecayFp = typename decay<_Fp>::type,\n         class _DecayA0 = typename decay<_A0>::type,\n         class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>\nusing __enable_if_bullet1 = typename enable_if\n    <\n        is_member_function_pointer<_DecayFp>::value\n        && is_base_of<_ClassT, _DecayA0>::value\n    >::type;\n\ntemplate <class _Fp, class _A0,\n         class _DecayFp = typename decay<_Fp>::type,\n         class _DecayA0 = typename decay<_A0>::type>\nusing __enable_if_bullet2 = typename enable_if\n    <\n        is_member_function_pointer<_DecayFp>::value\n        && __is_reference_wrapper<_DecayA0>::value\n    >::type;\n\ntemplate <class _Fp, class _A0,\n         class _DecayFp = typename decay<_Fp>::type,\n         class _DecayA0 = typename decay<_A0>::type,\n         class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>\nusing __enable_if_bullet3 = typename enable_if\n    <\n        is_member_function_pointer<_DecayFp>::value\n        && !is_base_of<_ClassT, _DecayA0>::value\n        && !__is_reference_wrapper<_DecayA0>::value\n    >::type;\n\ntemplate <class _Fp, class _A0,\n         class _DecayFp = typename decay<_Fp>::type,\n         class _DecayA0 = typename decay<_A0>::type,\n         class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>\nusing __enable_if_bullet4 = typename enable_if\n    <\n        is_member_object_pointer<_DecayFp>::value\n        && is_base_of<_ClassT, _DecayA0>::value\n    >::type;\n\ntemplate <class _Fp, class _A0,\n         class _DecayFp = typename decay<_Fp>::type,\n         class _DecayA0 = typename decay<_A0>::type>\nusing __enable_if_bullet5 = typename enable_if\n    <\n        is_member_object_pointer<_DecayFp>::value\n        && __is_reference_wrapper<_DecayA0>::value\n    >::type;\n\ntemplate <class _Fp, class _A0,\n         class _DecayFp = typename decay<_Fp>::type,\n         class _DecayA0 = typename decay<_A0>::type,\n         class _ClassT = typename __member_pointer_class_type<_DecayFp>::type>\nusing __enable_if_bullet6 = typename enable_if\n    <\n        is_member_object_pointer<_DecayFp>::value\n        && !is_base_of<_ClassT, _DecayA0>::value\n        && !__is_reference_wrapper<_DecayA0>::value\n    >::type;\n\n// __invoke forward declarations\n\n// fall back - none of the bullets\n\n#define _LIBCPP_INVOKE_RETURN(...) \\\n    noexcept(noexcept(__VA_ARGS__)) -> decltype(__VA_ARGS__) \\\n    { return __VA_ARGS__; }\n\ntemplate <class ..._Args>\nauto __invoke(__any, _Args&& ...__args) -> __nat;\n\ntemplate <class ..._Args>\nauto __invoke_constexpr(__any, _Args&& ...__args) -> __nat;\n\n// bullets 1, 2 and 3\n\ntemplate <class _Fp, class _A0, class ..._Args,\n          class = __enable_if_bullet1<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\nauto\n__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)\n_LIBCPP_INVOKE_RETURN((_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...))\n\ntemplate <class _Fp, class _A0, class ..._Args,\n          class = __enable_if_bullet1<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR auto\n__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args)\n_LIBCPP_INVOKE_RETURN((_VSTD::forward<_A0>(__a0).*__f)(_VSTD::forward<_Args>(__args)...))\n\ntemplate <class _Fp, class _A0, class ..._Args,\n          class = __enable_if_bullet2<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\nauto\n__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)\n_LIBCPP_INVOKE_RETURN((__a0.get().*__f)(_VSTD::forward<_Args>(__args)...))\n\ntemplate <class _Fp, class _A0, class ..._Args,\n          class = __enable_if_bullet2<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR auto\n__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args)\n_LIBCPP_INVOKE_RETURN((__a0.get().*__f)(_VSTD::forward<_Args>(__args)...))\n\ntemplate <class _Fp, class _A0, class ..._Args,\n          class = __enable_if_bullet3<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\nauto\n__invoke(_Fp&& __f, _A0&& __a0, _Args&& ...__args)\n_LIBCPP_INVOKE_RETURN(((*_VSTD::forward<_A0>(__a0)).*__f)(_VSTD::forward<_Args>(__args)...))\n\ntemplate <class _Fp, class _A0, class ..._Args,\n          class = __enable_if_bullet3<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR auto\n__invoke_constexpr(_Fp&& __f, _A0&& __a0, _Args&& ...__args)\n_LIBCPP_INVOKE_RETURN(((*_VSTD::forward<_A0>(__a0)).*__f)(_VSTD::forward<_Args>(__args)...))\n\n// bullets 4, 5 and 6\n\ntemplate <class _Fp, class _A0,\n          class = __enable_if_bullet4<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\nauto\n__invoke(_Fp&& __f, _A0&& __a0)\n_LIBCPP_INVOKE_RETURN(_VSTD::forward<_A0>(__a0).*__f)\n\ntemplate <class _Fp, class _A0,\n          class = __enable_if_bullet4<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR auto\n__invoke_constexpr(_Fp&& __f, _A0&& __a0)\n_LIBCPP_INVOKE_RETURN(_VSTD::forward<_A0>(__a0).*__f)\n\ntemplate <class _Fp, class _A0,\n          class = __enable_if_bullet5<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\nauto\n__invoke(_Fp&& __f, _A0&& __a0)\n_LIBCPP_INVOKE_RETURN(__a0.get().*__f)\n\ntemplate <class _Fp, class _A0,\n          class = __enable_if_bullet5<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR auto\n__invoke_constexpr(_Fp&& __f, _A0&& __a0)\n_LIBCPP_INVOKE_RETURN(__a0.get().*__f)\n\ntemplate <class _Fp, class _A0,\n          class = __enable_if_bullet6<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\nauto\n__invoke(_Fp&& __f, _A0&& __a0)\n_LIBCPP_INVOKE_RETURN((*_VSTD::forward<_A0>(__a0)).*__f)\n\ntemplate <class _Fp, class _A0,\n          class = __enable_if_bullet6<_Fp, _A0>>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR auto\n__invoke_constexpr(_Fp&& __f, _A0&& __a0)\n_LIBCPP_INVOKE_RETURN((*_VSTD::forward<_A0>(__a0)).*__f)\n\n// bullet 7\n\ntemplate <class _Fp, class ..._Args>\ninline _LIBCPP_INLINE_VISIBILITY\nauto\n__invoke(_Fp&& __f, _Args&& ...__args)\n_LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))\n\ntemplate <class _Fp, class ..._Args>\ninline _LIBCPP_INLINE_VISIBILITY\n_LIBCPP_CONSTEXPR auto\n__invoke_constexpr(_Fp&& __f, _Args&& ...__args)\n_LIBCPP_INVOKE_RETURN(_VSTD::forward<_Fp>(__f)(_VSTD::forward<_Args>(__args)...))\n\n#undef _LIBCPP_INVOKE_RETURN\n\n// __invokable\n\ntemplate <class _Ret, class _Fp, class ..._Args>\nstruct __invokable_r\n    : private __check_complete<_Fp>\n{\n    using _Result = decltype(\n        _VSTD::__invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...));\n\n    static const bool value =\n        conditional<\n            !is_same<_Result, __nat>::value,\n            typename conditional<\n                is_void<_Ret>::value,\n                true_type,\n                is_convertible<_Result, _Ret>\n            >::type,\n            false_type\n        >::type::value;\n};\n\ntemplate <class _Fp, class ..._Args>\nusing __invokable = __invokable_r<void, _Fp, _Args...>;\n\ntemplate <bool _IsInvokable, bool _IsCVVoid, class _Ret, class _Fp, class ..._Args>\nstruct __nothrow_invokable_r_imp {\n  static const bool value = false;\n};\n\ntemplate <class _Ret, class _Fp, class ..._Args>\nstruct __nothrow_invokable_r_imp<true, false, _Ret, _Fp, _Args...>\n{\n    typedef __nothrow_invokable_r_imp _ThisT;\n\n    template <class _Tp>\n    static void __test_noexcept(_Tp) noexcept;\n\n    static const bool value = noexcept(_ThisT::__test_noexcept<_Ret>(\n        _VSTD::__invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...)));\n};\n\ntemplate <class _Ret, class _Fp, class ..._Args>\nstruct __nothrow_invokable_r_imp<true, true, _Ret, _Fp, _Args...>\n{\n    static const bool value = noexcept(\n        _VSTD::__invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...));\n};\n\ntemplate <class _Ret, class _Fp, class ..._Args>\nusing __nothrow_invokable_r =\n    __nothrow_invokable_r_imp<\n            __invokable_r<_Ret, _Fp, _Args...>::value,\n            is_void<_Ret>::value,\n            _Ret, _Fp, _Args...\n    >;\n\ntemplate <class _Fp, class ..._Args>\nstruct __invoke_of\n    : public enable_if<\n        __invokable<_Fp, _Args...>::value,\n        typename __invokable_r<void, _Fp, _Args...>::_Result>\n{\n};\n\n// result_of\n\ntemplate <class _Fp, class ..._Args>\nclass _LIBCPP_TEMPLATE_VIS result_of<_Fp(_Args...)>\n    : public __invoke_of<_Fp, _Args...>\n{\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using result_of_t = typename result_of<_Tp>::type;\n#endif\n\n#if _LIBCPP_STD_VER > 14\n\n// is_callable\n\ntemplate <class _Fn, class _Ret = void>\nstruct _LIBCPP_TEMPLATE_VIS is_callable;\n\ntemplate <class _Fn, class ..._Args, class _Ret>\nstruct _LIBCPP_TEMPLATE_VIS is_callable<_Fn(_Args...), _Ret>\n    : integral_constant<bool, __invokable_r<_Ret, _Fn, _Args...>::value> {};\n\ntemplate <class _Fn, class _Ret = void>\nconstexpr bool is_callable_v = is_callable<_Fn, _Ret>::value;\n\n// is_nothrow_callable\n\ntemplate <class _Fn, class _Ret = void>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_callable;\n\ntemplate <class _Fn, class ..._Args, class _Ret>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_callable<_Fn(_Args...), _Ret>\n    : integral_constant<bool, __nothrow_invokable_r<_Ret, _Fn, _Args...>::value>\n{};\n\ntemplate <class _Fn, class _Ret = void>\nconstexpr bool is_nothrow_callable_v = is_nothrow_callable<_Fn, _Ret>::value;\n\n#endif // _LIBCPP_STD_VER > 14\n\n#endif  // !defined(_LIBCPP_CXX03_LANG)\n\ntemplate <class _Tp> struct __is_swappable;\ntemplate <class _Tp> struct __is_nothrow_swappable;\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n#ifndef _LIBCPP_CXX03_LANG\ntypename enable_if\n<\n    is_move_constructible<_Tp>::value &&\n    is_move_assignable<_Tp>::value\n>::type\n#else\nvoid\n#endif\nswap(_Tp& __x, _Tp& __y) _NOEXCEPT_(is_nothrow_move_constructible<_Tp>::value &&\n                                    is_nothrow_move_assignable<_Tp>::value)\n{\n    _Tp __t(_VSTD::move(__x));\n    __x = _VSTD::move(__y);\n    __y = _VSTD::move(__t);\n}\n\ntemplate<class _Tp, size_t _Np>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if<\n    __is_swappable<_Tp>::value\n>::type\nswap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value);\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\niter_swap(_ForwardIterator1 __a, _ForwardIterator2 __b)\n    //                                  _NOEXCEPT_(_NOEXCEPT_(swap(*__a, *__b)))\n               _NOEXCEPT_(_NOEXCEPT_(swap(*_VSTD::declval<_ForwardIterator1>(),\n                                          *_VSTD::declval<_ForwardIterator2>())))\n{\n    swap(*__a, *__b);\n}\n\n// __swappable\n\nnamespace __detail\n{\n// ALL generic swap overloads MUST already have a declaration available at this point.\n\ntemplate <class _Tp, class _Up = _Tp,\n          bool _NotVoid = !is_void<_Tp>::value && !is_void<_Up>::value>\nstruct __swappable_with\n{\n    template <class _LHS, class _RHS>\n    static decltype(swap(_VSTD::declval<_LHS>(), _VSTD::declval<_RHS>()))\n    __test_swap(int);\n    template <class, class>\n    static __nat __test_swap(long);\n\n    // Extra parens are needed for the C++03 definition of decltype.\n    typedef decltype((__test_swap<_Tp, _Up>(0))) __swap1;\n    typedef decltype((__test_swap<_Up, _Tp>(0))) __swap2;\n\n    static const bool value = !is_same<__swap1, __nat>::value\n                           && !is_same<__swap2, __nat>::value;\n};\n\ntemplate <class _Tp, class _Up>\nstruct __swappable_with<_Tp, _Up,  false> : false_type {};\n\ntemplate <class _Tp, class _Up = _Tp, bool _Swappable = __swappable_with<_Tp, _Up>::value>\nstruct __nothrow_swappable_with {\n  static const bool value =\n#ifndef _LIBCPP_HAS_NO_NOEXCEPT\n      noexcept(swap(_VSTD::declval<_Tp>(), _VSTD::declval<_Up>()))\n  &&  noexcept(swap(_VSTD::declval<_Up>(), _VSTD::declval<_Tp>()));\n#else\n      false;\n#endif\n};\n\ntemplate <class _Tp, class _Up>\nstruct __nothrow_swappable_with<_Tp, _Up, false> : false_type {};\n\n}  // __detail\n\ntemplate <class _Tp>\nstruct __is_swappable\n    : public integral_constant<bool, __detail::__swappable_with<_Tp&>::value>\n{\n};\n\ntemplate <class _Tp>\nstruct __is_nothrow_swappable\n    : public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp&>::value>\n{\n};\n\n#if _LIBCPP_STD_VER > 14\n\ntemplate <class _Tp, class _Up>\nstruct _LIBCPP_TEMPLATE_VIS is_swappable_with\n    : public integral_constant<bool, __detail::__swappable_with<_Tp, _Up>::value>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_swappable\n    : public conditional<\n        __is_referenceable<_Tp>::value,\n        is_swappable_with<\n            typename add_lvalue_reference<_Tp>::type,\n            typename add_lvalue_reference<_Tp>::type>,\n        false_type\n    >::type\n{\n};\n\ntemplate <class _Tp, class _Up>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_swappable_with\n    : public integral_constant<bool, __detail::__nothrow_swappable_with<_Tp, _Up>::value>\n{\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS is_nothrow_swappable\n    : public conditional<\n        __is_referenceable<_Tp>::value,\n        is_nothrow_swappable_with<\n            typename add_lvalue_reference<_Tp>::type,\n            typename add_lvalue_reference<_Tp>::type>,\n        false_type\n    >::type\n{\n};\n\ntemplate <class _Tp, class _Up>\nconstexpr bool is_swappable_with_v = is_swappable_with<_Tp, _Up>::value;\n\ntemplate <class _Tp>\nconstexpr bool is_swappable_v = is_swappable<_Tp>::value;\n\ntemplate <class _Tp, class _Up>\nconstexpr bool is_nothrow_swappable_with_v = is_nothrow_swappable_with<_Tp, _Up>::value;\n\ntemplate <class _Tp>\nconstexpr bool is_nothrow_swappable_v = is_nothrow_swappable<_Tp>::value;\n\n#endif // _LIBCPP_STD_VER > 14\n\n#ifdef _LIBCPP_UNDERLYING_TYPE\n\ntemplate <class _Tp>\nstruct underlying_type\n{\n    typedef _LIBCPP_UNDERLYING_TYPE(_Tp) type;\n};\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp> using underlying_type_t = typename underlying_type<_Tp>::type;\n#endif\n\n#else  // _LIBCPP_UNDERLYING_TYPE\n\ntemplate <class _Tp, bool _Support = false>\nstruct underlying_type\n{\n    static_assert(_Support, \"The underyling_type trait requires compiler \"\n                            \"support. Either no such support exists or \"\n                            \"libc++ does not know how to use it.\");\n};\n\n#endif // _LIBCPP_UNDERLYING_TYPE\n\n\ntemplate <class _Tp, bool = is_enum<_Tp>::value>\nstruct __sfinae_underlying_type\n{\n    typedef typename underlying_type<_Tp>::type type;\n    typedef decltype(((type)1) + 0) __promoted_type;\n};\n\ntemplate <class _Tp>\nstruct __sfinae_underlying_type<_Tp, false> {};\n\ninline _LIBCPP_INLINE_VISIBILITY\nint __convert_to_integral(int __val) { return __val; }\n\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned __convert_to_integral(unsigned __val) { return __val; }\n\ninline _LIBCPP_INLINE_VISIBILITY\nlong __convert_to_integral(long __val) { return __val; }\n\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned long __convert_to_integral(unsigned long __val) { return __val; }\n\ninline _LIBCPP_INLINE_VISIBILITY\nlong long __convert_to_integral(long long __val) { return __val; }\n\ninline _LIBCPP_INLINE_VISIBILITY\nunsigned long long __convert_to_integral(unsigned long long __val) {return __val; }\n\n#ifndef _LIBCPP_HAS_NO_INT128\ninline _LIBCPP_INLINE_VISIBILITY\n__int128_t __convert_to_integral(__int128_t __val) { return __val; }\n\ninline _LIBCPP_INLINE_VISIBILITY\n__uint128_t __convert_to_integral(__uint128_t __val) { return __val; }\n#endif\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename __sfinae_underlying_type<_Tp>::__promoted_type\n__convert_to_integral(_Tp __val) { return __val; }\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\nstruct __has_operator_addressof_member_imp\n{\n    template <class _Up>\n        static auto __test(int)\n            -> typename __select_2nd<decltype(_VSTD::declval<_Up>().operator&()), true_type>::type;\n    template <class>\n        static auto __test(long) -> false_type;\n\n    static const bool value = decltype(__test<_Tp>(0))::value;\n};\n\ntemplate <class _Tp>\nstruct __has_operator_addressof_free_imp\n{\n    template <class _Up>\n        static auto __test(int)\n            -> typename __select_2nd<decltype(operator&(_VSTD::declval<_Up>())), true_type>::type;\n    template <class>\n        static auto __test(long) -> false_type;\n\n    static const bool value = decltype(__test<_Tp>(0))::value;\n};\n\ntemplate <class _Tp>\nstruct __has_operator_addressof\n    : public integral_constant<bool, __has_operator_addressof_member_imp<_Tp>::value\n                                  || __has_operator_addressof_free_imp<_Tp>::value>\n{};\n\n#endif  // _LIBCPP_CXX03_LANG\n\n#if _LIBCPP_STD_VER > 14\n\n#define __cpp_lib_void_t 201411\ntemplate <class...> using void_t = void;\n\n# ifndef _LIBCPP_HAS_NO_VARIADICS\ntemplate <class... _Args>\nstruct conjunction : __and_<_Args...> {};\ntemplate<class... _Args> constexpr bool conjunction_v = conjunction<_Args...>::value;\n\ntemplate <class... _Args>\nstruct disjunction : __or_<_Args...> {};\ntemplate<class... _Args> constexpr bool disjunction_v = disjunction<_Args...>::value;\n\ntemplate <class _Tp>\nstruct negation : __not_<_Tp> {};\ntemplate<class _Tp> constexpr bool negation_v = negation<_Tp>::value;\n# endif // _LIBCPP_HAS_NO_VARIADICS\n#endif  // _LIBCPP_STD_VER > 14\n\n// These traits are used in __tree and __hash_table\n#ifndef _LIBCPP_CXX03_LANG\nstruct __extract_key_fail_tag {};\nstruct __extract_key_self_tag {};\nstruct __extract_key_first_tag {};\n\ntemplate <class _ValTy, class _Key,\n          class _RawValTy = typename __unconstref<_ValTy>::type>\nstruct __can_extract_key\n    : conditional<is_same<_RawValTy, _Key>::value, __extract_key_self_tag,\n                  __extract_key_fail_tag>::type {};\n\ntemplate <class _Pair, class _Key, class _First, class _Second>\nstruct __can_extract_key<_Pair, _Key, pair<_First, _Second>>\n    : conditional<is_same<typename remove_const<_First>::type, _Key>::value,\n                  __extract_key_first_tag, __extract_key_fail_tag>::type {};\n\n// __can_extract_map_key uses true_type/false_type instead of the tags.\n// It returns true if _Key != _ContainerValueTy (the container is a map not a set)\n// and _ValTy == _Key.\ntemplate <class _ValTy, class _Key, class _ContainerValueTy,\n          class _RawValTy = typename __unconstref<_ValTy>::type>\nstruct __can_extract_map_key\n    : integral_constant<bool, is_same<_RawValTy, _Key>::value> {};\n\n// This specialization returns __extract_key_fail_tag for non-map containers\n// because _Key == _ContainerValueTy\ntemplate <class _ValTy, class _Key, class _RawValTy>\nstruct __can_extract_map_key<_ValTy, _Key, _Key, _RawValTy>\n    : false_type {};\n\n#endif\n\n_LIBCPP_END_NAMESPACE_STD\n\n#if _LIBCPP_STD_VER > 14\n// std::byte\nnamespace std  // purposefully not versioned\n{\ntemplate <class _Integer>\n  constexpr typename enable_if<is_integral_v<_Integer>, byte>::type &\n  operator<<=(byte& __lhs, _Integer __shift) noexcept\n  { return __lhs = byte(static_cast<unsigned char>(__lhs) << __shift); }\n  \ntemplate <class _Integer>\n  constexpr typename enable_if<is_integral_v<_Integer>, byte>::type\n  operator<< (byte  __lhs, _Integer __shift) noexcept\n  { return         byte(static_cast<unsigned char>(__lhs) << __shift); }\n\ntemplate <class _Integer>\n  constexpr typename enable_if<is_integral_v<_Integer>, byte>::type &\n  operator>>=(byte& __lhs, _Integer __shift) noexcept\n  { return __lhs = byte(static_cast<unsigned char>(__lhs) >> __shift); }\n\ntemplate <class _Integer>\n  constexpr typename enable_if<is_integral_v<_Integer>, byte>::type\n  operator>> (byte  __lhs, _Integer __shift) noexcept\n  { return         byte(static_cast<unsigned char>(__lhs) >> __shift); }\n  \ntemplate <class _Integer>\n  constexpr typename enable_if<is_integral_v<_Integer>, _Integer>::type\n  to_integer(byte __b) noexcept { return _Integer(__b); }\n\n}\n#endif\n\n#endif  // _LIBCPP_TYPE_TRAITS\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/typeindex",
    "content": "// -*- C++ -*-\n//===-------------------------- typeindex ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_TYPEINDEX\n#define _LIBCPP_TYPEINDEX\n\n/*\n\n    typeindex synopsis\n\nnamespace std\n{\n\nclass type_index\n{\npublic:\n    type_index(const type_info& rhs) noexcept;\n\n    bool operator==(const type_index& rhs) const noexcept;\n    bool operator!=(const type_index& rhs) const noexcept;\n    bool operator< (const type_index& rhs) const noexcept;\n    bool operator<=(const type_index& rhs) const noexcept;\n    bool operator> (const type_index& rhs) const noexcept;\n    bool operator>=(const type_index& rhs) const noexcept;\n\n    size_t hash_code() const noexcept;\n    const char* name() const noexcept;\n};\n\ntemplate <>\nstruct hash<type_index>\n    : public unary_function<type_index, size_t>\n{\n    size_t operator()(type_index index) const noexcept;\n};\n\n}  // std\n\n*/\n\n#include <__config>\n#include <typeinfo>\n#include <__functional_base>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nclass _LIBCPP_TEMPLATE_VIS type_index\n{\n    const type_info* __t_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    type_index(const type_info& __y) _NOEXCEPT : __t_(&__y) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const type_index& __y) const _NOEXCEPT\n        {return *__t_ == *__y.__t_;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const type_index& __y) const _NOEXCEPT\n        {return *__t_ != *__y.__t_;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator< (const type_index& __y) const _NOEXCEPT\n        {return  __t_->before(*__y.__t_);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator<=(const type_index& __y) const _NOEXCEPT\n        {return !__y.__t_->before(*__t_);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator> (const type_index& __y) const _NOEXCEPT\n        {return  __y.__t_->before(*__t_);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator>=(const type_index& __y) const _NOEXCEPT\n        {return !__t_->before(*__y.__t_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t hash_code() const _NOEXCEPT {return __t_->hash_code();}\n    _LIBCPP_INLINE_VISIBILITY\n    const char* name() const _NOEXCEPT {return __t_->name();}\n};\n\ntemplate <class _Tp> struct _LIBCPP_TEMPLATE_VIS hash;\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<type_index>\n    : public unary_function<type_index, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(type_index __index) const _NOEXCEPT\n        {return __index.hash_code();}\n};\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_TYPEINDEX\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/typeinfo",
    "content": "// -*- C++ -*-\n//===-------------------------- typeinfo ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef __LIBCPP_TYPEINFO\n#define __LIBCPP_TYPEINFO\n\n/*\n\n    typeinfo synopsis\n\nnamespace std {\n\nclass type_info\n{\npublic:\n    virtual ~type_info();\n\n    bool operator==(const type_info& rhs) const noexcept;\n    bool operator!=(const type_info& rhs) const noexcept;\n\n    bool before(const type_info& rhs) const noexcept;\n    size_t hash_code() const noexcept;\n    const char* name() const noexcept;\n\n    type_info(const type_info& rhs) = delete;\n    type_info& operator=(const type_info& rhs) = delete;\n};\n\nclass bad_cast\n    : public exception\n{\npublic:\n    bad_cast() noexcept;\n    bad_cast(const bad_cast&) noexcept;\n    bad_cast& operator=(const bad_cast&) noexcept;\n    virtual const char* what() const noexcept;\n};\n\nclass bad_typeid\n    : public exception\n{\npublic:\n    bad_typeid() noexcept;\n    bad_typeid(const bad_typeid&) noexcept;\n    bad_typeid& operator=(const bad_typeid&) noexcept;\n    virtual const char* what() const noexcept;\n};\n\n}  // std\n\n*/\n\n#include <__config>\n#include <exception>\n#include <cstddef>\n#include <cstdint>\n#ifdef _LIBCPP_NO_EXCEPTIONS\n#include <cstdlib>\n#endif\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#if defined(_LIBCPP_ABI_MICROSOFT)\n#include <vcruntime_typeinfo.h>\n#elif defined(_LIBCPP_NONUNIQUE_RTTI_BIT)\n#define _LIBCPP_HAS_NONUNIQUE_TYPEINFO\n#else\n#define _LIBCPP_HAS_UNIQUE_TYPEINFO\n#endif\n\nnamespace std  // purposefully not using versioning namespace\n{\n\n#if !defined(_LIBCPP_ABI_MICROSOFT)\nclass _LIBCPP_EXCEPTION_ABI type_info\n{\n    type_info& operator=(const type_info&);\n    type_info(const type_info&);\n\n#if defined(_LIBCPP_HAS_NONUNIQUE_TYPEINFO)\n    _LIBCPP_INLINE_VISIBILITY\n    int __compare_nonunique_names(const type_info &__arg) const _NOEXCEPT\n    { return __builtin_strcmp(name(), __arg.name()); }\n#endif\n\nprotected:\n#if defined(_LIBCPP_HAS_NONUNIQUE_TYPEINFO)\n    // A const char* with the non-unique RTTI bit possibly set.\n    uintptr_t __type_name;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit type_info(const char* __n)\n      : __type_name(reinterpret_cast<uintptr_t>(__n)) {}\n#else\n    const char *__type_name;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit type_info(const char* __n) : __type_name(__n) {}\n#endif\n\npublic:\n    _LIBCPP_AVAILABILITY_TYPEINFO_VTABLE\n    virtual ~type_info();\n\n#if defined(_LIBCPP_HAS_NONUNIQUE_TYPEINFO)\n    _LIBCPP_INLINE_VISIBILITY\n    const char* name() const _NOEXCEPT\n    {\n      return reinterpret_cast<const char*>(__type_name &\n                                           ~_LIBCPP_NONUNIQUE_RTTI_BIT);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool before(const type_info& __arg) const _NOEXCEPT\n    {\n      if (!((__type_name & __arg.__type_name) & _LIBCPP_NONUNIQUE_RTTI_BIT))\n        return __type_name < __arg.__type_name;\n      return __compare_nonunique_names(__arg) < 0;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t hash_code() const _NOEXCEPT\n    {\n      if (!(__type_name & _LIBCPP_NONUNIQUE_RTTI_BIT))\n        return __type_name;\n\n      const char* __ptr = name();\n      size_t __hash = 5381;\n      while (unsigned char __c = static_cast<unsigned char>(*__ptr++))\n        __hash = (__hash * 33) ^ __c;\n      return __hash;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const type_info& __arg) const _NOEXCEPT\n    {\n      if (__type_name == __arg.__type_name)\n        return true;\n\n      if (!((__type_name & __arg.__type_name) & _LIBCPP_NONUNIQUE_RTTI_BIT))\n        return false;\n      return __compare_nonunique_names(__arg) == 0;\n    }\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    const char* name() const _NOEXCEPT\n    { return __type_name; }\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool before(const type_info& __arg) const _NOEXCEPT\n    { return __type_name < __arg.__type_name; }\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t hash_code() const _NOEXCEPT\n    { return reinterpret_cast<size_t>(__type_name); }\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator==(const type_info& __arg) const _NOEXCEPT\n    { return __type_name == __arg.__type_name; }\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator!=(const type_info& __arg) const _NOEXCEPT\n    { return !operator==(__arg); }\n};\n\nclass _LIBCPP_EXCEPTION_ABI bad_cast\n    : public exception\n{\npublic:\n    bad_cast() _NOEXCEPT;\n    virtual ~bad_cast() _NOEXCEPT;\n    virtual const char* what() const _NOEXCEPT;\n};\n\nclass _LIBCPP_EXCEPTION_ABI bad_typeid\n    : public exception\n{\npublic:\n    bad_typeid() _NOEXCEPT;\n    virtual ~bad_typeid() _NOEXCEPT;\n    virtual const char* what() const _NOEXCEPT;\n};\n\n#endif // !_LIBCPP_ABI_MICROSOFT\n\n}  // std\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n_LIBCPP_NORETURN inline _LIBCPP_ALWAYS_INLINE\nvoid __throw_bad_cast()\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    throw bad_cast();\n#else\n\t_VSTD::abort();\n#endif\n}\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // __LIBCPP_TYPEINFO\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/unordered_map",
    "content": "// -*- C++ -*-\n//===-------------------------- unordered_map -----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_UNORDERED_MAP\n#define _LIBCPP_UNORDERED_MAP\n\n/*\n\n    unordered_map synopsis\n\n#include <initializer_list>\n\nnamespace std\n{\n\ntemplate <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,\n          class Alloc = allocator<pair<const Key, T>>>\nclass unordered_map\n{\npublic:\n    // types\n    typedef Key                                                        key_type;\n    typedef T                                                          mapped_type;\n    typedef Hash                                                       hasher;\n    typedef Pred                                                       key_equal;\n    typedef Alloc                                                      allocator_type;\n    typedef pair<const key_type, mapped_type>                          value_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef /unspecified/ iterator;\n    typedef /unspecified/ const_iterator;\n    typedef /unspecified/ local_iterator;\n    typedef /unspecified/ const_local_iterator;\n\n    unordered_map()\n        noexcept(\n            is_nothrow_default_constructible<hasher>::value &&\n            is_nothrow_default_constructible<key_equal>::value &&\n            is_nothrow_default_constructible<allocator_type>::value);\n    explicit unordered_map(size_type n, const hasher& hf = hasher(),\n                           const key_equal& eql = key_equal(),\n                           const allocator_type& a = allocator_type());\n    template <class InputIterator>\n        unordered_map(InputIterator f, InputIterator l,\n                      size_type n = 0, const hasher& hf = hasher(),\n                      const key_equal& eql = key_equal(),\n                      const allocator_type& a = allocator_type());\n    explicit unordered_map(const allocator_type&);\n    unordered_map(const unordered_map&);\n    unordered_map(const unordered_map&, const Allocator&);\n    unordered_map(unordered_map&&)\n        noexcept(\n            is_nothrow_move_constructible<hasher>::value &&\n            is_nothrow_move_constructible<key_equal>::value &&\n            is_nothrow_move_constructible<allocator_type>::value);\n    unordered_map(unordered_map&&, const Allocator&);\n    unordered_map(initializer_list<value_type>, size_type n = 0,\n                  const hasher& hf = hasher(), const key_equal& eql = key_equal(),\n                  const allocator_type& a = allocator_type());\n    unordered_map(size_type n, const allocator_type& a)\n      : unordered_map(n, hasher(), key_equal(), a) {}  // C++14\n    unordered_map(size_type n, const hasher& hf, const allocator_type& a)\n      : unordered_map(n, hf, key_equal(), a) {}  // C++14\n    template <class InputIterator>\n      unordered_map(InputIterator f, InputIterator l, size_type n, const allocator_type& a)\n      : unordered_map(f, l, n, hasher(), key_equal(), a) {}  // C++14\n    template <class InputIterator>\n      unordered_map(InputIterator f, InputIterator l, size_type n, const hasher& hf, \n        const allocator_type& a)\n      : unordered_map(f, l, n, hf, key_equal(), a) {}  // C++14\n    unordered_map(initializer_list<value_type> il, size_type n, const allocator_type& a)\n      : unordered_map(il, n, hasher(), key_equal(), a) {}  // C++14\n    unordered_map(initializer_list<value_type> il, size_type n, const hasher& hf, \n      const allocator_type& a)\n      : unordered_map(il, n, hf, key_equal(), a) {}  // C++14\n    ~unordered_map();\n    unordered_map& operator=(const unordered_map&);\n    unordered_map& operator=(unordered_map&&)\n        noexcept(\n            allocator_type::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<allocator_type>::value &&\n            is_nothrow_move_assignable<hasher>::value &&\n            is_nothrow_move_assignable<key_equal>::value);\n    unordered_map& operator=(initializer_list<value_type>);\n\n    allocator_type get_allocator() const noexcept;\n\n    bool      empty() const noexcept;\n    size_type size() const noexcept;\n    size_type max_size() const noexcept;\n\n    iterator       begin() noexcept;\n    iterator       end() noexcept;\n    const_iterator begin()  const noexcept;\n    const_iterator end()    const noexcept;\n    const_iterator cbegin() const noexcept;\n    const_iterator cend()   const noexcept;\n\n    template <class... Args>\n        pair<iterator, bool> emplace(Args&&... args);\n    template <class... Args>\n        iterator emplace_hint(const_iterator position, Args&&... args);\n    pair<iterator, bool> insert(const value_type& obj);\n    template <class P>\n        pair<iterator, bool> insert(P&& obj);\n    iterator insert(const_iterator hint, const value_type& obj);\n    template <class P>\n        iterator insert(const_iterator hint, P&& obj);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n    void insert(initializer_list<value_type>);\n\n    template <class... Args>\n        pair<iterator, bool> try_emplace(const key_type& k, Args&&... args);          // C++17\n    template <class... Args>\n        pair<iterator, bool> try_emplace(key_type&& k, Args&&... args);               // C++17\n    template <class... Args>\n        iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); // C++17\n    template <class... Args>\n        iterator try_emplace(const_iterator hint, key_type&& k, Args&&... args);      // C++17\n    template <class M>\n        pair<iterator, bool> insert_or_assign(const key_type& k, M&& obj);            // C++17\n    template <class M>\n        pair<iterator, bool> insert_or_assign(key_type&& k, M&& obj);                 // C++17\n    template <class M>\n        iterator insert_or_assign(const_iterator hint, const key_type& k, M&& obj);   // C++17\n    template <class M>\n        iterator insert_or_assign(const_iterator hint, key_type&& k, M&& obj);        // C++17\n\n    iterator erase(const_iterator position);\n    iterator erase(iterator position);  // C++14\n    size_type erase(const key_type& k);\n    iterator erase(const_iterator first, const_iterator last);\n    void clear() noexcept;\n\n    void swap(unordered_map&)\n        noexcept(\n            (!allocator_type::propagate_on_container_swap::value ||\n             __is_nothrow_swappable<allocator_type>::value) &&\n            __is_nothrow_swappable<hasher>::value &&\n            __is_nothrow_swappable<key_equal>::value);\n\n    hasher hash_function() const;\n    key_equal key_eq() const;\n\n    iterator       find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    size_type count(const key_type& k) const;\n    pair<iterator, iterator>             equal_range(const key_type& k);\n    pair<const_iterator, const_iterator> equal_range(const key_type& k) const;\n\n    mapped_type& operator[](const key_type& k);\n    mapped_type& operator[](key_type&& k);\n\n    mapped_type&       at(const key_type& k);\n    const mapped_type& at(const key_type& k) const;\n\n    size_type bucket_count() const noexcept;\n    size_type max_bucket_count() const noexcept;\n\n    size_type bucket_size(size_type n) const;\n    size_type bucket(const key_type& k) const;\n\n    local_iterator       begin(size_type n);\n    local_iterator       end(size_type n);\n    const_local_iterator begin(size_type n) const;\n    const_local_iterator end(size_type n) const;\n    const_local_iterator cbegin(size_type n) const;\n    const_local_iterator cend(size_type n) const;\n\n    float load_factor() const noexcept;\n    float max_load_factor() const noexcept;\n    void max_load_factor(float z);\n    void rehash(size_type n);\n    void reserve(size_type n);\n};\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,\n              unordered_map<Key, T, Hash, Pred, Alloc>& y)\n              noexcept(noexcept(x.swap(y)));\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    bool\n    operator==(const unordered_map<Key, T, Hash, Pred, Alloc>& x,\n               const unordered_map<Key, T, Hash, Pred, Alloc>& y);\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    bool\n    operator!=(const unordered_map<Key, T, Hash, Pred, Alloc>& x,\n               const unordered_map<Key, T, Hash, Pred, Alloc>& y);\n\ntemplate <class Key, class T, class Hash = hash<Key>, class Pred = equal_to<Key>,\n          class Alloc = allocator<pair<const Key, T>>>\nclass unordered_multimap\n{\npublic:\n    // types\n    typedef Key                                                        key_type;\n    typedef T                                                          mapped_type;\n    typedef Hash                                                       hasher;\n    typedef Pred                                                       key_equal;\n    typedef Alloc                                                      allocator_type;\n    typedef pair<const key_type, mapped_type>                          value_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef /unspecified/ iterator;\n    typedef /unspecified/ const_iterator;\n    typedef /unspecified/ local_iterator;\n    typedef /unspecified/ const_local_iterator;\n\n    unordered_multimap()\n        noexcept(\n            is_nothrow_default_constructible<hasher>::value &&\n            is_nothrow_default_constructible<key_equal>::value &&\n            is_nothrow_default_constructible<allocator_type>::value);\n    explicit unordered_multimap(size_type n, const hasher& hf = hasher(),\n                           const key_equal& eql = key_equal(),\n                           const allocator_type& a = allocator_type());\n    template <class InputIterator>\n        unordered_multimap(InputIterator f, InputIterator l,\n                      size_type n = 0, const hasher& hf = hasher(),\n                      const key_equal& eql = key_equal(),\n                      const allocator_type& a = allocator_type());\n    explicit unordered_multimap(const allocator_type&);\n    unordered_multimap(const unordered_multimap&);\n    unordered_multimap(const unordered_multimap&, const Allocator&);\n    unordered_multimap(unordered_multimap&&)\n        noexcept(\n            is_nothrow_move_constructible<hasher>::value &&\n            is_nothrow_move_constructible<key_equal>::value &&\n            is_nothrow_move_constructible<allocator_type>::value);\n    unordered_multimap(unordered_multimap&&, const Allocator&);\n    unordered_multimap(initializer_list<value_type>, size_type n = 0,\n                  const hasher& hf = hasher(), const key_equal& eql = key_equal(),\n                  const allocator_type& a = allocator_type());\n    unordered_multimap(size_type n, const allocator_type& a)\n      : unordered_multimap(n, hasher(), key_equal(), a) {}  // C++14\n    unordered_multimap(size_type n, const hasher& hf, const allocator_type& a)\n      : unordered_multimap(n, hf, key_equal(), a) {}  // C++14\n    template <class InputIterator>\n      unordered_multimap(InputIterator f, InputIterator l, size_type n, const allocator_type& a)\n      : unordered_multimap(f, l, n, hasher(), key_equal(), a) {}  // C++14\n    template <class InputIterator>\n      unordered_multimap(InputIterator f, InputIterator l, size_type n, const hasher& hf, \n        const allocator_type& a)\n      : unordered_multimap(f, l, n, hf, key_equal(), a) {}  // C++14\n    unordered_multimap(initializer_list<value_type> il, size_type n, const allocator_type& a)\n      : unordered_multimap(il, n, hasher(), key_equal(), a) {}  // C++14\n    unordered_multimap(initializer_list<value_type> il, size_type n, const hasher& hf, \n      const allocator_type& a)\n      : unordered_multimap(il, n, hf, key_equal(), a) {}  // C++14\n    ~unordered_multimap();\n    unordered_multimap& operator=(const unordered_multimap&);\n    unordered_multimap& operator=(unordered_multimap&&)\n        noexcept(\n            allocator_type::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<allocator_type>::value &&\n            is_nothrow_move_assignable<hasher>::value &&\n            is_nothrow_move_assignable<key_equal>::value);\n    unordered_multimap& operator=(initializer_list<value_type>);\n\n    allocator_type get_allocator() const noexcept;\n\n    bool      empty() const noexcept;\n    size_type size() const noexcept;\n    size_type max_size() const noexcept;\n\n    iterator       begin() noexcept;\n    iterator       end() noexcept;\n    const_iterator begin()  const noexcept;\n    const_iterator end()    const noexcept;\n    const_iterator cbegin() const noexcept;\n    const_iterator cend()   const noexcept;\n\n    template <class... Args>\n        iterator emplace(Args&&... args);\n    template <class... Args>\n        iterator emplace_hint(const_iterator position, Args&&... args);\n    iterator insert(const value_type& obj);\n    template <class P>\n        iterator insert(P&& obj);\n    iterator insert(const_iterator hint, const value_type& obj);\n    template <class P>\n        iterator insert(const_iterator hint, P&& obj);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n    void insert(initializer_list<value_type>);\n\n    iterator erase(const_iterator position);\n    iterator erase(iterator position);  // C++14\n    size_type erase(const key_type& k);\n    iterator erase(const_iterator first, const_iterator last);\n    void clear() noexcept;\n\n    void swap(unordered_multimap&)\n        noexcept(\n            (!allocator_type::propagate_on_container_swap::value ||\n             __is_nothrow_swappable<allocator_type>::value) &&\n            __is_nothrow_swappable<hasher>::value &&\n            __is_nothrow_swappable<key_equal>::value);\n\n    hasher hash_function() const;\n    key_equal key_eq() const;\n\n    iterator       find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    size_type count(const key_type& k) const;\n    pair<iterator, iterator>             equal_range(const key_type& k);\n    pair<const_iterator, const_iterator> equal_range(const key_type& k) const;\n\n    size_type bucket_count() const noexcept;\n    size_type max_bucket_count() const noexcept;\n\n    size_type bucket_size(size_type n) const;\n    size_type bucket(const key_type& k) const;\n\n    local_iterator       begin(size_type n);\n    local_iterator       end(size_type n);\n    const_local_iterator begin(size_type n) const;\n    const_local_iterator end(size_type n) const;\n    const_local_iterator cbegin(size_type n) const;\n    const_local_iterator cend(size_type n) const;\n\n    float load_factor() const noexcept;\n    float max_load_factor() const noexcept;\n    void max_load_factor(float z);\n    void rehash(size_type n);\n    void reserve(size_type n);\n};\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,\n              unordered_multimap<Key, T, Hash, Pred, Alloc>& y)\n              noexcept(noexcept(x.swap(y)));\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    bool\n    operator==(const unordered_multimap<Key, T, Hash, Pred, Alloc>& x,\n               const unordered_multimap<Key, T, Hash, Pred, Alloc>& y);\n\ntemplate <class Key, class T, class Hash, class Pred, class Alloc>\n    bool\n    operator!=(const unordered_multimap<Key, T, Hash, Pred, Alloc>& x,\n               const unordered_multimap<Key, T, Hash, Pred, Alloc>& y);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__hash_table>\n#include <functional>\n#include <stdexcept>\n#include <tuple>\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Key, class _Cp, class _Hash, bool _IsEmpty>\nclass __unordered_map_hasher\n    : private _Hash\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __unordered_map_hasher()\n        _NOEXCEPT_(is_nothrow_default_constructible<_Hash>::value)\n        : _Hash() {}\n    _LIBCPP_INLINE_VISIBILITY\n    __unordered_map_hasher(const _Hash& __h)\n        _NOEXCEPT_(is_nothrow_copy_constructible<_Hash>::value)\n        : _Hash(__h) {}\n    _LIBCPP_INLINE_VISIBILITY\n    const _Hash& hash_function() const _NOEXCEPT {return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const _Cp& __x) const\n        {return static_cast<const _Hash&>(*this)(__x.__cc.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const _Key& __x) const\n        {return static_cast<const _Hash&>(*this)(__x);}\n    void swap(__unordered_map_hasher&__y)\n        _NOEXCEPT_(__is_nothrow_swappable<_Hash>::value)\n    {\n        using _VSTD::swap;\n        swap(static_cast<_Hash&>(*this), static_cast<_Hash&>(__y));\n    }\n};\n\ntemplate <class _Key, class _Cp, class _Hash>\nclass __unordered_map_hasher<_Key, _Cp, _Hash, false>\n{\n    _Hash __hash_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __unordered_map_hasher()\n        _NOEXCEPT_(is_nothrow_default_constructible<_Hash>::value)\n        : __hash_() {}\n    _LIBCPP_INLINE_VISIBILITY\n    __unordered_map_hasher(const _Hash& __h)\n        _NOEXCEPT_(is_nothrow_copy_constructible<_Hash>::value)\n        : __hash_(__h) {}\n    _LIBCPP_INLINE_VISIBILITY\n    const _Hash& hash_function() const _NOEXCEPT {return __hash_;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const _Cp& __x) const\n        {return __hash_(__x.__cc.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const _Key& __x) const\n        {return __hash_(__x);}\n    void swap(__unordered_map_hasher&__y)\n        _NOEXCEPT_(__is_nothrow_swappable<_Hash>::value)\n    {\n        using _VSTD::swap;\n        swap(__hash_, __y.__hash_);\n    }\n};\n\ntemplate <class _Key, class _Cp, class _Hash, bool __b>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__unordered_map_hasher<_Key, _Cp, _Hash, __b>& __x,\n     __unordered_map_hasher<_Key, _Cp, _Hash, __b>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Key, class _Cp, class _Pred, bool _IsEmpty>\nclass __unordered_map_equal\n    : private _Pred\n{\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __unordered_map_equal()\n        _NOEXCEPT_(is_nothrow_default_constructible<_Pred>::value)\n        : _Pred() {}\n    _LIBCPP_INLINE_VISIBILITY\n    __unordered_map_equal(const _Pred& __p)\n        _NOEXCEPT_(is_nothrow_copy_constructible<_Pred>::value)\n        : _Pred(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    const _Pred& key_eq() const _NOEXCEPT {return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Cp& __x, const _Cp& __y) const\n        {return static_cast<const _Pred&>(*this)(__x.__cc.first, __y.__cc.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Cp& __x, const _Key& __y) const\n        {return static_cast<const _Pred&>(*this)(__x.__cc.first, __y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Key& __x, const _Cp& __y) const\n        {return static_cast<const _Pred&>(*this)(__x, __y.__cc.first);}\n    void swap(__unordered_map_equal&__y)\n        _NOEXCEPT_(__is_nothrow_swappable<_Pred>::value)\n    {\n        using _VSTD::swap;\n        swap(static_cast<_Pred&>(*this), static_cast<_Pred&>(__y));\n    }\n};\n\ntemplate <class _Key, class _Cp, class _Pred>\nclass __unordered_map_equal<_Key, _Cp, _Pred, false>\n{\n    _Pred __pred_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    __unordered_map_equal()\n        _NOEXCEPT_(is_nothrow_default_constructible<_Pred>::value)\n        : __pred_() {}\n    _LIBCPP_INLINE_VISIBILITY\n    __unordered_map_equal(const _Pred& __p)\n        _NOEXCEPT_(is_nothrow_copy_constructible<_Pred>::value)\n        : __pred_(__p) {}\n    _LIBCPP_INLINE_VISIBILITY\n    const _Pred& key_eq() const _NOEXCEPT {return __pred_;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Cp& __x, const _Cp& __y) const\n        {return __pred_(__x.__cc.first, __y.__cc.first);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Cp& __x, const _Key& __y) const\n        {return __pred_(__x.__cc.first, __y);}\n    _LIBCPP_INLINE_VISIBILITY\n    bool operator()(const _Key& __x, const _Cp& __y) const\n        {return __pred_(__x, __y.__cc.first);}\n    void swap(__unordered_map_equal&__y)\n        _NOEXCEPT_(__is_nothrow_swappable<_Pred>::value)\n    {\n        using _VSTD::swap;\n        swap(__pred_, __y.__pred_);\n    }\n};\n\ntemplate <class _Key, class _Cp, class _Pred, bool __b>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(__unordered_map_equal<_Key, _Cp, _Pred, __b>& __x,\n     __unordered_map_equal<_Key, _Cp, _Pred, __b>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Alloc>\nclass __hash_map_node_destructor\n{\n    typedef _Alloc                              allocator_type;\n    typedef allocator_traits<allocator_type>    __alloc_traits;\n\npublic:\n\n    typedef typename __alloc_traits::pointer       pointer;\nprivate:\n\n    allocator_type& __na_;\n\n    __hash_map_node_destructor& operator=(const __hash_map_node_destructor&);\n\npublic:\n    bool __first_constructed;\n    bool __second_constructed;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __hash_map_node_destructor(allocator_type& __na) _NOEXCEPT\n        : __na_(__na),\n          __first_constructed(false),\n          __second_constructed(false)\n        {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_node_destructor(__hash_node_destructor<allocator_type>&& __x)\n        _NOEXCEPT\n        : __na_(__x.__na_),\n          __first_constructed(__x.__value_constructed),\n          __second_constructed(__x.__value_constructed)\n        {\n            __x.__value_constructed = false;\n        }\n#else  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_node_destructor(const __hash_node_destructor<allocator_type>& __x)\n        : __na_(__x.__na_),\n          __first_constructed(__x.__value_constructed),\n          __second_constructed(__x.__value_constructed)\n        {\n            const_cast<bool&>(__x.__value_constructed) = false;\n        }\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator()(pointer __p) _NOEXCEPT\n    {\n        if (__second_constructed)\n            __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.__cc.second));\n        if (__first_constructed)\n            __alloc_traits::destroy(__na_, _VSTD::addressof(__p->__value_.__cc.first));\n        if (__p)\n            __alloc_traits::deallocate(__na_, __p, 1);\n    }\n};\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Key, class _Tp>\nunion __hash_value_type\n{\n    typedef _Key                                     key_type;\n    typedef _Tp                                      mapped_type;\n    typedef pair<const key_type, mapped_type>        value_type;\n    typedef pair<key_type, mapped_type>              __nc_value_type;\n\n    value_type __cc;\n    __nc_value_type __nc;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_value_type& operator=(const __hash_value_type& __v)\n        {__nc = __v.__cc; return *this;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_value_type& operator=(__hash_value_type&& __v)\n        {__nc = _VSTD::move(__v.__nc); return *this;}\n\n    template <class _ValueTp,\n              class = typename enable_if<\n                    __is_same_uncvref<_ValueTp, value_type>::value\n                 >::type\n             >\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_value_type& operator=(_ValueTp&& __v) {\n        __nc = _VSTD::forward<_ValueTp>(__v); return *this;\n    }\n\nprivate:\n    __hash_value_type(const __hash_value_type& __v) = delete;\n    __hash_value_type(__hash_value_type&& __v) = delete;\n    template <class ..._Args>\n    explicit __hash_value_type(_Args&& ...__args) = delete;\n\n    ~__hash_value_type() = delete;\n};\n\n#else\n\ntemplate <class _Key, class _Tp>\nstruct __hash_value_type\n{\n    typedef _Key                                     key_type;\n    typedef _Tp                                      mapped_type;\n    typedef pair<const key_type, mapped_type>        value_type;\n\n    value_type __cc;\n\nprivate:\n   ~__hash_value_type();\n};\n\n#endif\n\ntemplate <class _HashIterator>\nclass _LIBCPP_TEMPLATE_VIS __hash_map_iterator\n{\n    _HashIterator __i_;\n\n    typedef  __hash_node_types_from_iterator<_HashIterator> _NodeTypes;\n\npublic:\n    typedef forward_iterator_tag                                 iterator_category;\n    typedef typename _NodeTypes::__map_value_type                value_type;\n    typedef typename _NodeTypes::difference_type                 difference_type;\n    typedef value_type&                                          reference;\n    typedef typename _NodeTypes::__map_value_type_pointer       pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_iterator() _NOEXCEPT {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_iterator(_HashIterator __i) _NOEXCEPT : __i_(__i) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {return __i_->__cc;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {return pointer_traits<pointer>::pointer_to(__i_->__cc);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_iterator& operator++() {++__i_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_iterator operator++(int)\n    {\n        __hash_map_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const __hash_map_iterator& __x, const __hash_map_iterator& __y)\n        {return __x.__i_ == __y.__i_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const __hash_map_iterator& __x, const __hash_map_iterator& __y)\n        {return __x.__i_ != __y.__i_;}\n\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator;\n};\n\ntemplate <class _HashIterator>\nclass _LIBCPP_TEMPLATE_VIS __hash_map_const_iterator\n{\n    _HashIterator __i_;\n\n    typedef  __hash_node_types_from_iterator<_HashIterator> _NodeTypes;\n\npublic:\n    typedef forward_iterator_tag                                 iterator_category;\n    typedef typename _NodeTypes::__map_value_type                value_type;\n    typedef typename _NodeTypes::difference_type                 difference_type;\n    typedef const value_type&                                    reference;\n    typedef typename _NodeTypes::__const_map_value_type_pointer  pointer;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator() _NOEXCEPT {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator(_HashIterator __i) _NOEXCEPT : __i_(__i) {}\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator(\n            __hash_map_iterator<typename _HashIterator::__non_const_iterator> __i)\n                 _NOEXCEPT\n                : __i_(__i.__i_) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reference operator*() const {return __i_->__cc;}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer operator->() const {return pointer_traits<pointer>::pointer_to(__i_->__cc);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator& operator++() {++__i_; return *this;}\n    _LIBCPP_INLINE_VISIBILITY\n    __hash_map_const_iterator operator++(int)\n    {\n        __hash_map_const_iterator __t(*this);\n        ++(*this);\n        return __t;\n    }\n\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator==(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)\n        {return __x.__i_ == __y.__i_;}\n    friend _LIBCPP_INLINE_VISIBILITY\n        bool operator!=(const __hash_map_const_iterator& __x, const __hash_map_const_iterator& __y)\n        {return __x.__i_ != __y.__i_;}\n\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_map;\n    template <class, class, class, class, class> friend class _LIBCPP_TEMPLATE_VIS unordered_multimap;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_iterator;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS __hash_const_local_iterator;\n};\n\ntemplate <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,\n          class _Alloc = allocator<pair<const _Key, _Tp> > >\nclass _LIBCPP_TEMPLATE_VIS unordered_map\n{\npublic:\n    // types\n    typedef _Key                                           key_type;\n    typedef _Tp                                            mapped_type;\n    typedef _Hash                                          hasher;\n    typedef _Pred                                          key_equal;\n    typedef _Alloc                                         allocator_type;\n    typedef pair<const key_type, mapped_type>              value_type;\n    typedef pair<key_type, mapped_type>                    __nc_value_type;\n    typedef value_type&                                    reference;\n    typedef const value_type&                              const_reference;\n    static_assert((is_same<value_type, typename allocator_type::value_type>::value),\n                  \"Invalid allocator::value_type\");\n\nprivate:\n    typedef __hash_value_type<key_type, mapped_type>                 __value_type;\n    typedef __unordered_map_hasher<key_type, __value_type, hasher>   __hasher;\n    typedef __unordered_map_equal<key_type, __value_type, key_equal> __key_equal;\n    typedef typename __rebind_alloc_helper<allocator_traits<allocator_type>,\n                                                 __value_type>::type __allocator_type;\n\n    typedef __hash_table<__value_type, __hasher,\n                         __key_equal,  __allocator_type>   __table;\n\n    __table __table_;\n\n    typedef typename __table::_NodeTypes                   _NodeTypes;\n    typedef typename __table::__node_pointer               __node_pointer;\n    typedef typename __table::__node_const_pointer         __node_const_pointer;\n    typedef typename __table::__node_traits                __node_traits;\n    typedef typename __table::__node_allocator             __node_allocator;\n    typedef typename __table::__node                       __node;\n    typedef __hash_map_node_destructor<__node_allocator>   _Dp;\n    typedef unique_ptr<__node, _Dp>                         __node_holder;\n    typedef allocator_traits<allocator_type>               __alloc_traits;\n\n    static_assert((is_same<typename __table::__container_value_type, value_type>::value), \"\");\n    static_assert((is_same<typename __table::__node_value_type, __value_type>::value), \"\");\npublic:\n    typedef typename __alloc_traits::pointer         pointer;\n    typedef typename __alloc_traits::const_pointer   const_pointer;\n    typedef typename __table::size_type              size_type;\n    typedef typename __table::difference_type        difference_type;\n\n    typedef __hash_map_iterator<typename __table::iterator>       iterator;\n    typedef __hash_map_const_iterator<typename __table::const_iterator> const_iterator;\n    typedef __hash_map_iterator<typename __table::local_iterator> local_iterator;\n    typedef __hash_map_const_iterator<typename __table::const_local_iterator> const_local_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map()\n        _NOEXCEPT_(is_nothrow_default_constructible<__table>::value)\n        {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n            __get_db()->__insert_c(this);\n#endif\n        }\n    explicit unordered_map(size_type __n, const hasher& __hf = hasher(),\n                           const key_equal& __eql = key_equal());\n    unordered_map(size_type __n, const hasher& __hf,\n                  const key_equal& __eql,\n                  const allocator_type& __a);\n    template <class _InputIterator>\n        unordered_map(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        unordered_map(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf = hasher(),\n                      const key_equal& __eql = key_equal());\n    template <class _InputIterator>\n        unordered_map(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf,\n                      const key_equal& __eql,\n                      const allocator_type& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit unordered_map(const allocator_type& __a);\n    unordered_map(const unordered_map& __u);\n    unordered_map(const unordered_map& __u, const allocator_type& __a);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map(unordered_map&& __u)\n        _NOEXCEPT_(is_nothrow_move_constructible<__table>::value);\n    unordered_map(unordered_map&& __u, const allocator_type& __a);\n    unordered_map(initializer_list<value_type> __il);\n    unordered_map(initializer_list<value_type> __il, size_type __n,\n                  const hasher& __hf = hasher(), const key_equal& __eql = key_equal());\n    unordered_map(initializer_list<value_type> __il, size_type __n,\n                  const hasher& __hf, const key_equal& __eql,\n                  const allocator_type& __a);\n#endif  // _LIBCPP_CXX03_LANG\n#if _LIBCPP_STD_VER > 11\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map(size_type __n, const allocator_type& __a)\n      : unordered_map(__n, hasher(), key_equal(), __a) {}\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map(size_type __n, const hasher& __hf, const allocator_type& __a)\n      : unordered_map(__n, __hf, key_equal(), __a) {}\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n      unordered_map(_InputIterator __first, _InputIterator __last, size_type __n, const allocator_type& __a)\n      : unordered_map(__first, __last, __n, hasher(), key_equal(), __a) {}\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n      unordered_map(_InputIterator __first, _InputIterator __last, size_type __n, const hasher& __hf, \n        const allocator_type& __a)\n      : unordered_map(__first, __last, __n, __hf, key_equal(), __a) {}\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map(initializer_list<value_type> __il, size_type __n, const allocator_type& __a)\n      : unordered_map(__il, __n, hasher(), key_equal(), __a) {}\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map(initializer_list<value_type> __il, size_type __n, const hasher& __hf, \n      const allocator_type& __a)\n      : unordered_map(__il, __n, __hf, key_equal(), __a) {}\n#endif\n    // ~unordered_map() = default;\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map& operator=(const unordered_map& __u)\n    {\n#ifndef _LIBCPP_CXX03_LANG\n        __table_ = __u.__table_;\n#else\n        if (this != &__u) {\n            __table_.clear();\n            __table_.hash_function() = __u.__table_.hash_function();\n            __table_.key_eq() = __u.__table_.key_eq();\n            __table_.max_load_factor() = __u.__table_.max_load_factor();\n            __table_.__copy_assign_alloc(__u.__table_);\n            insert(__u.begin(), __u.end());\n        }\n#endif\n        return *this;\n    }\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map& operator=(unordered_map&& __u)\n        _NOEXCEPT_(is_nothrow_move_assignable<__table>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_map& operator=(initializer_list<value_type> __il);\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT\n        {return allocator_type(__table_.__node_alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const _NOEXCEPT {return __table_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT  {return __table_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {return __table_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin() _NOEXCEPT        {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end() _NOEXCEPT          {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const _NOEXCEPT {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const _NOEXCEPT {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const _NOEXCEPT {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend()   const _NOEXCEPT {return __table_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> insert(const value_type& __x)\n        {return __table_.__insert_unique(__x);}\n\n    iterator insert(const_iterator __p, const value_type& __x) {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n            \"unordered_map::insert(const_iterator, const value_type&) called with an iterator not\"\n            \" referring to this unordered_map\");\n#else\n        ((void)__p);\n#endif\n        return insert(__x).first;\n    }\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __first, _InputIterator __last);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(initializer_list<value_type> __il)\n        {insert(__il.begin(), __il.end());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> insert(value_type&& __x)\n        {return __table_.__insert_unique(_VSTD::move(__x));}\n\n    iterator insert(const_iterator __p, value_type&& __x) {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n            \"unordered_map::insert(const_iterator, const value_type&) called with an iterator not\"\n            \" referring to this unordered_map\");\n#else\n        ((void)__p);\n#endif\n        return __table_.__insert_unique(_VSTD::move(__x)).first;\n    }\n\n    template <class _Pp,\n              class = typename enable_if<is_constructible<value_type, _Pp>::value>::type>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> insert(_Pp&& __x)\n            {return __table_.__insert_unique(_VSTD::forward<_Pp>(__x));}\n\n    template <class _Pp,\n              class = typename enable_if<is_constructible<value_type, _Pp>::value>::type>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator insert(const_iterator __p, _Pp&& __x)\n        {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n            _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n                \"unordered_map::insert(const_iterator, value_type&&) called with an iterator not\"\n                \" referring to this unordered_map\");\n#else\n          ((void)__p);\n#endif\n            return insert(_VSTD::forward<_Pp>(__x)).first;\n        }\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> emplace(_Args&&... __args) {\n        return __table_.__emplace_unique(_VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class... _Args>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator emplace_hint(const_iterator __p, _Args&&... __args) {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n            \"unordered_map::emplace_hint(const_iterator, args...) called with an iterator not\"\n            \" referring to this unordered_map\");\n#else\n          ((void)__p);\n#endif\n        return __table_.__emplace_unique(_VSTD::forward<_Args>(__args)...).first;\n    }\n\n#endif  // _LIBCPP_CXX03_LANG\n\n#if _LIBCPP_STD_VER > 14\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> try_emplace(const key_type& __k, _Args&&... __args)\n    {\n        return __table_.__emplace_unique_key_args(__k, _VSTD::piecewise_construct,\n            _VSTD::forward_as_tuple(__k),\n            _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...));\n    }\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> try_emplace(key_type&& __k, _Args&&... __args)\n    {\n        return __table_.__emplace_unique_key_args(__k, _VSTD::piecewise_construct,\n            _VSTD::forward_as_tuple(_VSTD::move(__k)),\n            _VSTD::forward_as_tuple(_VSTD::forward<_Args>(__args)...));\n    }\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator try_emplace(const_iterator __h, const key_type& __k, _Args&&... __args)\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__h) == this,\n            \"unordered_map::try_emplace(const_iterator, key, args...) called with an iterator not\"\n            \" referring to this unordered_map\");\n#else\n        ((void)__h);\n#endif\n        return try_emplace(__k, _VSTD::forward<_Args>(__args)...).first;\n    }\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator try_emplace(const_iterator __h, key_type&& __k, _Args&&... __args)\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__h) == this,\n            \"unordered_map::try_emplace(const_iterator, key, args...) called with an iterator not\"\n            \" referring to this unordered_map\");\n#else\n        ((void)__h);\n#endif\n        return try_emplace(_VSTD::move(__k), _VSTD::forward<_Args>(__args)...).first;\n    }\n\n    template <class _Vp>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> insert_or_assign(const key_type& __k, _Vp&& __v)\n    {\n        pair<iterator, bool> __res = __table_.__emplace_unique_key_args(__k,\n            __k, _VSTD::forward<_Vp>(__v));\n        if (!__res.second) {\n            __res.first->second = _VSTD::forward<_Vp>(__v);\n        }\n        return __res;\n    }\n\n    template <class _Vp>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> insert_or_assign(key_type&& __k, _Vp&& __v)\n    {\n        pair<iterator, bool> __res = __table_.__emplace_unique_key_args(__k,\n            _VSTD::move(__k), _VSTD::forward<_Vp>(__v));\n        if (!__res.second) {\n            __res.first->second = _VSTD::forward<_Vp>(__v);\n        }\n        return __res;\n    }\n\n    template <class _Vp>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator insert_or_assign(const_iterator, const key_type& __k, _Vp&& __v)\n     {\n          // FIXME: Add debug mode checking for the iterator input\n          return insert_or_assign(__k, _VSTD::forward<_Vp>(__v)).first;\n     }\n\n    template <class _Vp>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator insert_or_assign(const_iterator, key_type&& __k, _Vp&& __v)\n     {\n        // FIXME: Add debug mode checking for the iterator input\n        return insert_or_assign(_VSTD::move(__k), _VSTD::forward<_Vp>(__v)).first;\n     }\n#endif // _LIBCPP_STD_VER > 14\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __p) {return __table_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(iterator __p)       {return __table_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __table_.__erase_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __first, const_iterator __last)\n        {return __table_.erase(__first.__i_, __last.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__table_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(unordered_map& __u)\n        _NOEXCEPT_(__is_nothrow_swappable<__table>::value)\n        { __table_.swap(__u.__table_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher hash_function() const\n        {return __table_.hash_function().hash_function();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal key_eq() const\n        {return __table_.key_eq().key_eq();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       find(const key_type& __k)       {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type count(const key_type& __k) const {return __table_.__count_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, iterator>             equal_range(const key_type& __k)\n        {return __table_.__equal_range_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator, const_iterator> equal_range(const key_type& __k) const\n        {return __table_.__equal_range_unique(__k);}\n\n    mapped_type& operator[](const key_type& __k);\n#ifndef _LIBCPP_CXX03_LANG\n    mapped_type& operator[](key_type&& __k);\n#endif\n\n    mapped_type&       at(const key_type& __k);\n    const mapped_type& at(const key_type& __k) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const _NOEXCEPT {return __table_.bucket_count();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const _NOEXCEPT {return __table_.max_bucket_count();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_size(size_type __n) const\n        {return __table_.bucket_size(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket(const key_type& __k) const {return __table_.bucket(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator       begin(size_type __n)        {return __table_.begin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator       end(size_type __n)          {return __table_.end(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator begin(size_type __n) const  {return __table_.cbegin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator end(size_type __n) const    {return __table_.cend(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator cbegin(size_type __n) const {return __table_.cbegin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator cend(size_type __n) const   {return __table_.cend(__n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    float load_factor() const _NOEXCEPT {return __table_.load_factor();}\n    _LIBCPP_INLINE_VISIBILITY\n    float max_load_factor() const _NOEXCEPT {return __table_.max_load_factor();}\n    _LIBCPP_INLINE_VISIBILITY\n    void max_load_factor(float __mlf) {__table_.max_load_factor(__mlf);}\n    _LIBCPP_INLINE_VISIBILITY\n    void rehash(size_type __n) {__table_.rehash(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    void reserve(size_type __n) {__table_.reserve(__n);}\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    bool __dereferenceable(const const_iterator* __i) const\n        {return __table_.__dereferenceable(&__i->__i_);}\n    bool __decrementable(const const_iterator* __i) const\n        {return __table_.__decrementable(&__i->__i_);}\n    bool __addable(const const_iterator* __i, ptrdiff_t __n) const\n        {return __table_.__addable(&__i->__i_, __n);}\n    bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const\n        {return __table_.__addable(&__i->__i_, __n);}\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\nprivate:\n\n#ifdef _LIBCPP_CXX03_LANG\n    __node_holder __construct_node_with_key(const key_type& __k);\n#endif\n};\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        size_type __n, const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        size_type __n, const hasher& __hf, const key_equal& __eql,\n        const allocator_type& __a)\n    : __table_(__hf, __eql, typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        const allocator_type& __a)\n    : __table_(typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        _InputIterator __first, _InputIterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        const unordered_map& __u)\n    : __table_(__u.__table_)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        const unordered_map& __u, const allocator_type& __a)\n    : __table_(__u.__table_, typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        unordered_map&& __u)\n    _NOEXCEPT_(is_nothrow_move_constructible<__table>::value)\n    : __table_(_VSTD::move(__u.__table_))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n    __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        unordered_map&& __u, const allocator_type& __a)\n    : __table_(_VSTD::move(__u.__table_), typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__a != __u.get_allocator())\n    {\n        iterator __i = __u.begin();\n        while (__u.size() != 0) {\n            __table_.__emplace_unique(_VSTD::move(\n                __u.__table_.remove((__i++).__i_)->__value_.__nc));\n        }\n    }\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    else\n        __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        initializer_list<value_type> __il)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        initializer_list<value_type> __il, size_type __n, const hasher& __hf,\n        const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_map(\n        initializer_list<value_type> __il, size_type __n, const hasher& __hf,\n        const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>&\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator=(unordered_map&& __u)\n    _NOEXCEPT_(is_nothrow_move_assignable<__table>::value)\n{\n    __table_ = _VSTD::move(__u.__table_);\n    return *this;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>&\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator=(\n        initializer_list<value_type> __il)\n{\n    __table_.__assign_unique(__il.begin(), __il.end());\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\ninline\nvoid\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,\n                                                       _InputIterator __last)\n{\n    for (; __first != __last; ++__first)\n        __table_.__insert_unique(*__first);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\n_Tp&\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](const key_type& __k)\n{\n    return __table_.__emplace_unique_key_args(__k,\n        std::piecewise_construct, std::forward_as_tuple(__k),\n                                  std::forward_as_tuple()).first->__cc.second;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\n_Tp&\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](key_type&& __k)\n{\n    return __table_.__emplace_unique_key_args(__k,\n        std::piecewise_construct, std::forward_as_tuple(std::move(__k)),\n                                  std::forward_as_tuple()).first->__cc.second;\n}\n#else // _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntypename unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__node_holder\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::__construct_node_with_key(const key_type& __k)\n{\n    __node_allocator& __na = __table_.__node_alloc();\n    __node_holder __h(__node_traits::allocate(__na, 1), _Dp(__na));\n    __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.first), __k);\n    __h.get_deleter().__first_constructed = true;\n    __node_traits::construct(__na, _VSTD::addressof(__h->__value_.__cc.second));\n    __h.get_deleter().__second_constructed = true;\n    return _LIBCPP_EXPLICIT_MOVE(__h);  // explicitly moved for C++03\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\n_Tp&\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](const key_type& __k)\n{\n    iterator __i = find(__k);\n    if (__i != end())\n        return __i->second;\n    __node_holder __h = __construct_node_with_key(__k);\n    pair<iterator, bool> __r = __table_.__node_insert_unique(__h.get());\n    __h.release();\n    return __r.first->second;\n}\n\n#endif  // _LIBCPP_CXX03_MODE\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\n_Tp&\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::at(const key_type& __k)\n{\n    iterator __i = find(__k);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    if (__i == end())\n        throw out_of_range(\"unordered_map::at: key not found\");\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __i->second;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nconst _Tp&\nunordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::at(const key_type& __k) const\n{\n    const_iterator __i = find(__k);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    if (__i == end())\n        throw out_of_range(\"unordered_map::at: key not found\");\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    return __i->second;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n     unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nbool\noperator==(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n           const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    if (__x.size() != __y.size())\n        return false;\n    typedef typename unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator\n                                                                 const_iterator;\n    for (const_iterator __i = __x.begin(), __ex = __x.end(), __ey = __y.end();\n            __i != __ex; ++__i)\n    {\n        const_iterator __j = __y.find(__i->first);\n        if (__j == __ey || !(*__i == *__j))\n            return false;\n    }\n    return true;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n           const unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Key, class _Tp, class _Hash = hash<_Key>, class _Pred = equal_to<_Key>,\n          class _Alloc = allocator<pair<const _Key, _Tp> > >\nclass _LIBCPP_TEMPLATE_VIS unordered_multimap\n{\npublic:\n    // types\n    typedef _Key                                           key_type;\n    typedef _Tp                                            mapped_type;\n    typedef _Hash                                          hasher;\n    typedef _Pred                                          key_equal;\n    typedef _Alloc                                         allocator_type;\n    typedef pair<const key_type, mapped_type>              value_type;\n    typedef pair<key_type, mapped_type>                    __nc_value_type;\n    typedef value_type&                                    reference;\n    typedef const value_type&                              const_reference;\n    static_assert((is_same<value_type, typename allocator_type::value_type>::value),\n                  \"Invalid allocator::value_type\");\n\nprivate:\n    typedef __hash_value_type<key_type, mapped_type>                 __value_type;\n    typedef __unordered_map_hasher<key_type, __value_type, hasher>   __hasher;\n    typedef __unordered_map_equal<key_type, __value_type, key_equal> __key_equal;\n    typedef typename __rebind_alloc_helper<allocator_traits<allocator_type>,\n                                                 __value_type>::type __allocator_type;\n\n    typedef __hash_table<__value_type, __hasher,\n                         __key_equal,  __allocator_type>   __table;\n\n    __table __table_;\n\n    typedef typename __table::_NodeTypes                   _NodeTypes;\n    typedef typename __table::__node_traits                __node_traits;\n    typedef typename __table::__node_allocator             __node_allocator;\n    typedef typename __table::__node                       __node;\n    typedef __hash_map_node_destructor<__node_allocator>   _Dp;\n    typedef unique_ptr<__node, _Dp>                         __node_holder;\n    typedef allocator_traits<allocator_type>               __alloc_traits;\n    static_assert((is_same<typename __node_traits::size_type,\n                          typename __alloc_traits::size_type>::value),\n                 \"Allocator uses different size_type for different types\");\npublic:\n    typedef typename __alloc_traits::pointer         pointer;\n    typedef typename __alloc_traits::const_pointer   const_pointer;\n    typedef typename __table::size_type              size_type;\n    typedef typename __table::difference_type        difference_type;\n\n    typedef __hash_map_iterator<typename __table::iterator>       iterator;\n    typedef __hash_map_const_iterator<typename __table::const_iterator> const_iterator;\n    typedef __hash_map_iterator<typename __table::local_iterator> local_iterator;\n    typedef __hash_map_const_iterator<typename __table::const_local_iterator> const_local_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap()\n        _NOEXCEPT_(is_nothrow_default_constructible<__table>::value)\n        {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n            __get_db()->__insert_c(this);\n#endif\n        }\n    explicit unordered_multimap(size_type __n, const hasher& __hf = hasher(),\n                                const key_equal& __eql = key_equal());\n    unordered_multimap(size_type __n, const hasher& __hf,\n                                const key_equal& __eql,\n                                const allocator_type& __a);\n    template <class _InputIterator>\n        unordered_multimap(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        unordered_multimap(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf = hasher(),\n                      const key_equal& __eql = key_equal());\n    template <class _InputIterator>\n        unordered_multimap(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf,\n                      const key_equal& __eql,\n                      const allocator_type& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    explicit unordered_multimap(const allocator_type& __a);\n    unordered_multimap(const unordered_multimap& __u);\n    unordered_multimap(const unordered_multimap& __u, const allocator_type& __a);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap(unordered_multimap&& __u)\n        _NOEXCEPT_(is_nothrow_move_constructible<__table>::value);\n    unordered_multimap(unordered_multimap&& __u, const allocator_type& __a);\n    unordered_multimap(initializer_list<value_type> __il);\n    unordered_multimap(initializer_list<value_type> __il, size_type __n,\n                       const hasher& __hf = hasher(),\n                       const key_equal& __eql = key_equal());\n    unordered_multimap(initializer_list<value_type> __il, size_type __n,\n                       const hasher& __hf, const key_equal& __eql,\n                       const allocator_type& __a);\n#endif  // _LIBCPP_CXX03_LANG\n#if _LIBCPP_STD_VER > 11\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap(size_type __n, const allocator_type& __a)\n      : unordered_multimap(__n, hasher(), key_equal(), __a) {}\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap(size_type __n, const hasher& __hf, const allocator_type& __a)\n      : unordered_multimap(__n, __hf, key_equal(), __a) {}\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n      unordered_multimap(_InputIterator __first, _InputIterator __last, size_type __n, const allocator_type& __a)\n      : unordered_multimap(__first, __last, __n, hasher(), key_equal(), __a) {}\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n      unordered_multimap(_InputIterator __first, _InputIterator __last, size_type __n, const hasher& __hf, \n        const allocator_type& __a)\n      : unordered_multimap(__first, __last, __n, __hf, key_equal(), __a) {}\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap(initializer_list<value_type> __il, size_type __n, const allocator_type& __a)\n      : unordered_multimap(__il, __n, hasher(), key_equal(), __a) {}\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap(initializer_list<value_type> __il, size_type __n, const hasher& __hf, \n      const allocator_type& __a)\n      : unordered_multimap(__il, __n, __hf, key_equal(), __a) {}\n#endif\n    // ~unordered_multimap() = default;\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap& operator=(const unordered_multimap& __u)\n    {\n#ifndef _LIBCPP_CXX03_LANG\n        __table_ = __u.__table_;\n#else\n        if (this != &__u) {\n            __table_.clear();\n            __table_.hash_function() = __u.__table_.hash_function();\n            __table_.key_eq() = __u.__table_.key_eq();\n            __table_.max_load_factor() = __u.__table_.max_load_factor();\n            __table_.__copy_assign_alloc(__u.__table_);\n            insert(__u.begin(), __u.end());\n        }\n#endif\n        return *this;\n    }\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap& operator=(unordered_multimap&& __u)\n        _NOEXCEPT_(is_nothrow_move_assignable<__table>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multimap& operator=(initializer_list<value_type> __il);\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT\n        {return allocator_type(__table_.__node_alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const _NOEXCEPT {return __table_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT  {return __table_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {return __table_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin() _NOEXCEPT        {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end() _NOEXCEPT          {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const _NOEXCEPT {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const _NOEXCEPT {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const _NOEXCEPT {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend()   const _NOEXCEPT {return __table_.end();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const value_type& __x) {return __table_.__insert_multi(__x);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, const value_type& __x)\n        {return __table_.__insert_multi(__p.__i_, __x);}\n\n    template <class _InputIterator>\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(_InputIterator __first, _InputIterator __last);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(initializer_list<value_type> __il)\n        {insert(__il.begin(), __il.end());}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(value_type&& __x) {return __table_.__insert_multi(_VSTD::move(__x));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, value_type&& __x)\n        {return __table_.__insert_multi(__p.__i_, _VSTD::move(__x));}\n\n    template <class _Pp,\n              class = typename enable_if<is_constructible<value_type, _Pp>::value>::type>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(_Pp&& __x)\n        {return __table_.__insert_multi(_VSTD::forward<_Pp>(__x));}\n\n    template <class _Pp,\n              class = typename enable_if<is_constructible<value_type, _Pp>::value>::type>\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, _Pp&& __x)\n        {return __table_.__insert_multi(__p.__i_, _VSTD::forward<_Pp>(__x));}\n\n    template <class... _Args>\n    iterator emplace(_Args&&... __args) {\n        return __table_.__emplace_multi(_VSTD::forward<_Args>(__args)...);\n    }\n\n    template <class... _Args>\n    iterator emplace_hint(const_iterator __p, _Args&&... __args) {\n        return __table_.__emplace_hint_multi(__p.__i_, _VSTD::forward<_Args>(__args)...);\n    }\n#endif  // _LIBCPP_CXX03_LANG\n\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __p) {return __table_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(iterator __p)       {return __table_.erase(__p.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __table_.__erase_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __first, const_iterator __last)\n        {return __table_.erase(__first.__i_, __last.__i_);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__table_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(unordered_multimap& __u)\n        _NOEXCEPT_(__is_nothrow_swappable<__table>::value)\n        {__table_.swap(__u.__table_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher hash_function() const\n        {return __table_.hash_function().hash_function();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal key_eq() const\n        {return __table_.key_eq().key_eq();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       find(const key_type& __k)       {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type count(const key_type& __k) const {return __table_.__count_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, iterator>             equal_range(const key_type& __k)\n        {return __table_.__equal_range_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator, const_iterator> equal_range(const key_type& __k) const\n        {return __table_.__equal_range_multi(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const _NOEXCEPT {return __table_.bucket_count();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const _NOEXCEPT\n        {return __table_.max_bucket_count();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_size(size_type __n) const\n        {return __table_.bucket_size(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket(const key_type& __k) const {return __table_.bucket(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator       begin(size_type __n)        {return __table_.begin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator       end(size_type __n)          {return __table_.end(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator begin(size_type __n) const  {return __table_.cbegin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator end(size_type __n) const    {return __table_.cend(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator cbegin(size_type __n) const {return __table_.cbegin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator cend(size_type __n) const   {return __table_.cend(__n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    float load_factor() const _NOEXCEPT {return __table_.load_factor();}\n    _LIBCPP_INLINE_VISIBILITY\n    float max_load_factor() const _NOEXCEPT {return __table_.max_load_factor();}\n    _LIBCPP_INLINE_VISIBILITY\n    void max_load_factor(float __mlf) {__table_.max_load_factor(__mlf);}\n    _LIBCPP_INLINE_VISIBILITY\n    void rehash(size_type __n) {__table_.rehash(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    void reserve(size_type __n) {__table_.reserve(__n);}\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    bool __dereferenceable(const const_iterator* __i) const\n        {return __table_.__dereferenceable(&__i->__i_);}\n    bool __decrementable(const const_iterator* __i) const\n        {return __table_.__decrementable(&__i->__i_);}\n    bool __addable(const const_iterator* __i, ptrdiff_t __n) const\n        {return __table_.__addable(&__i->__i_, __n);}\n    bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const\n        {return __table_.__addable(&__i->__i_, __n);}\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n\n};\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        size_type __n, const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        size_type __n, const hasher& __hf, const key_equal& __eql,\n        const allocator_type& __a)\n    : __table_(__hf, __eql, typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        _InputIterator __first, _InputIterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        const allocator_type& __a)\n    : __table_(typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        const unordered_multimap& __u)\n    : __table_(__u.__table_)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        const unordered_multimap& __u, const allocator_type& __a)\n    : __table_(__u.__table_, typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        unordered_multimap&& __u)\n    _NOEXCEPT_(is_nothrow_move_constructible<__table>::value)\n    : __table_(_VSTD::move(__u.__table_))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n    __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        unordered_multimap&& __u, const allocator_type& __a)\n    : __table_(_VSTD::move(__u.__table_), typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__a != __u.get_allocator())\n    {\n        iterator __i = __u.begin();\n        while (__u.size() != 0)\n        {\n            __table_.__insert_multi(\n                      _VSTD::move(__u.__table_.remove((__i++).__i_)->__value_.__nc)\n                                   );\n        }\n    }\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    else\n        __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        initializer_list<value_type> __il)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        initializer_list<value_type> __il, size_type __n, const hasher& __hf,\n        const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::unordered_multimap(\n        initializer_list<value_type> __il, size_type __n, const hasher& __hf,\n        const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, typename __table::allocator_type(__a))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>&\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::operator=(unordered_multimap&& __u)\n    _NOEXCEPT_(is_nothrow_move_assignable<__table>::value)\n{\n    __table_ = _VSTD::move(__u.__table_);\n    return *this;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>&\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::operator=(\n        initializer_list<value_type> __il)\n{\n    __table_.__assign_multi(__il.begin(), __il.end());\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\ninline\nvoid\nunordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,\n                                                            _InputIterator __last)\n{\n    for (; __first != __last; ++__first)\n        __table_.__insert_multi(*__first);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n     unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\nbool\noperator==(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n           const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    if (__x.size() != __y.size())\n        return false;\n    typedef typename unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>::const_iterator\n                                                                 const_iterator;\n    typedef pair<const_iterator, const_iterator> _EqRng;\n    for (const_iterator __i = __x.begin(), __ex = __x.end(); __i != __ex;)\n    {\n        _EqRng __xeq = __x.equal_range(__i->first);\n        _EqRng __yeq = __y.equal_range(__i->first);\n        if (_VSTD::distance(__xeq.first, __xeq.second) !=\n            _VSTD::distance(__yeq.first, __yeq.second) ||\n                  !_VSTD::is_permutation(__xeq.first, __xeq.second, __yeq.first))\n            return false;\n        __i = __xeq.second;\n    }\n    return true;\n}\n\ntemplate <class _Key, class _Tp, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,\n           const unordered_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_UNORDERED_MAP\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/unordered_set",
    "content": "// -*- C++ -*-\n//===-------------------------- unordered_set -----------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_UNORDERED_SET\n#define _LIBCPP_UNORDERED_SET\n\n/*\n\n    unordered_set synopsis\n\n#include <initializer_list>\n\nnamespace std\n{\n\ntemplate <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,\n          class Alloc = allocator<Value>>\nclass unordered_set\n{\npublic:\n    // types\n    typedef Value                                                      key_type;\n    typedef key_type                                                   value_type;\n    typedef Hash                                                       hasher;\n    typedef Pred                                                       key_equal;\n    typedef Alloc                                                      allocator_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef /unspecified/ iterator;\n    typedef /unspecified/ const_iterator;\n    typedef /unspecified/ local_iterator;\n    typedef /unspecified/ const_local_iterator;\n\n    unordered_set()\n        noexcept(\n            is_nothrow_default_constructible<hasher>::value &&\n            is_nothrow_default_constructible<key_equal>::value &&\n            is_nothrow_default_constructible<allocator_type>::value);\n    explicit unordered_set(size_type n, const hasher& hf = hasher(),\n                           const key_equal& eql = key_equal(),\n                           const allocator_type& a = allocator_type());\n    template <class InputIterator>\n        unordered_set(InputIterator f, InputIterator l,\n                      size_type n = 0, const hasher& hf = hasher(),\n                      const key_equal& eql = key_equal(),\n                      const allocator_type& a = allocator_type());\n    explicit unordered_set(const allocator_type&);\n    unordered_set(const unordered_set&);\n    unordered_set(const unordered_set&, const Allocator&);\n    unordered_set(unordered_set&&)\n        noexcept(\n            is_nothrow_move_constructible<hasher>::value &&\n            is_nothrow_move_constructible<key_equal>::value &&\n            is_nothrow_move_constructible<allocator_type>::value);\n    unordered_set(unordered_set&&, const Allocator&);\n    unordered_set(initializer_list<value_type>, size_type n = 0,\n                  const hasher& hf = hasher(), const key_equal& eql = key_equal(),\n                  const allocator_type& a = allocator_type());\n    unordered_set(size_type n, const allocator_type& a); // C++14\n    unordered_set(size_type n, const hasher& hf, const allocator_type& a); // C++14\n    template <class InputIterator>\n      unordered_set(InputIterator f, InputIterator l, size_type n, const allocator_type& a); // C++14\n    template <class InputIterator>\n      unordered_set(InputIterator f, InputIterator l, size_type n, \n                    const hasher& hf,  const allocator_type& a); // C++14\n    unordered_set(initializer_list<value_type> il, size_type n, const allocator_type& a); // C++14\n    unordered_set(initializer_list<value_type> il, size_type n,\n                  const hasher& hf,  const allocator_type& a); // C++14\n    ~unordered_set();\n    unordered_set& operator=(const unordered_set&);\n    unordered_set& operator=(unordered_set&&)\n        noexcept(\n            allocator_type::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<allocator_type>::value &&\n            is_nothrow_move_assignable<hasher>::value &&\n            is_nothrow_move_assignable<key_equal>::value);\n    unordered_set& operator=(initializer_list<value_type>);\n\n    allocator_type get_allocator() const noexcept;\n\n    bool      empty() const noexcept;\n    size_type size() const noexcept;\n    size_type max_size() const noexcept;\n\n    iterator       begin() noexcept;\n    iterator       end() noexcept;\n    const_iterator begin()  const noexcept;\n    const_iterator end()    const noexcept;\n    const_iterator cbegin() const noexcept;\n    const_iterator cend()   const noexcept;\n\n    template <class... Args>\n        pair<iterator, bool> emplace(Args&&... args);\n    template <class... Args>\n        iterator emplace_hint(const_iterator position, Args&&... args);\n    pair<iterator, bool> insert(const value_type& obj);\n    pair<iterator, bool> insert(value_type&& obj);\n    iterator insert(const_iterator hint, const value_type& obj);\n    iterator insert(const_iterator hint, value_type&& obj);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n    void insert(initializer_list<value_type>);\n\n    iterator erase(const_iterator position);\n    iterator erase(iterator position);  // C++14\n    size_type erase(const key_type& k);\n    iterator erase(const_iterator first, const_iterator last);\n    void clear() noexcept;\n\n    void swap(unordered_set&)\n       noexcept(allocator_traits<Allocator>::is_always_equal::value &&\n                 noexcept(swap(declval<hasher&>(), declval<hasher&>())) &&\n                 noexcept(swap(declval<key_equal&>(), declval<key_equal&>()))); // C++17\n\n    hasher hash_function() const;\n    key_equal key_eq() const;\n\n    iterator       find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    size_type count(const key_type& k) const;\n    pair<iterator, iterator>             equal_range(const key_type& k);\n    pair<const_iterator, const_iterator> equal_range(const key_type& k) const;\n\n    size_type bucket_count() const noexcept;\n    size_type max_bucket_count() const noexcept;\n\n    size_type bucket_size(size_type n) const;\n    size_type bucket(const key_type& k) const;\n\n    local_iterator       begin(size_type n);\n    local_iterator       end(size_type n);\n    const_local_iterator begin(size_type n) const;\n    const_local_iterator end(size_type n) const;\n    const_local_iterator cbegin(size_type n) const;\n    const_local_iterator cend(size_type n) const;\n\n    float load_factor() const noexcept;\n    float max_load_factor() const noexcept;\n    void max_load_factor(float z);\n    void rehash(size_type n);\n    void reserve(size_type n);\n};\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    void swap(unordered_set<Value, Hash, Pred, Alloc>& x,\n              unordered_set<Value, Hash, Pred, Alloc>& y)\n              noexcept(noexcept(x.swap(y)));\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    bool\n    operator==(const unordered_set<Value, Hash, Pred, Alloc>& x,\n               const unordered_set<Value, Hash, Pred, Alloc>& y);\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    bool\n    operator!=(const unordered_set<Value, Hash, Pred, Alloc>& x,\n               const unordered_set<Value, Hash, Pred, Alloc>& y);\n\ntemplate <class Value, class Hash = hash<Value>, class Pred = equal_to<Value>,\n          class Alloc = allocator<Value>>\nclass unordered_multiset\n{\npublic:\n    // types\n    typedef Value                                                      key_type;\n    typedef key_type                                                   value_type;\n    typedef Hash                                                       hasher;\n    typedef Pred                                                       key_equal;\n    typedef Alloc                                                      allocator_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    typedef typename allocator_traits<allocator_type>::pointer         pointer;\n    typedef typename allocator_traits<allocator_type>::const_pointer   const_pointer;\n    typedef typename allocator_traits<allocator_type>::size_type       size_type;\n    typedef typename allocator_traits<allocator_type>::difference_type difference_type;\n\n    typedef /unspecified/ iterator;\n    typedef /unspecified/ const_iterator;\n    typedef /unspecified/ local_iterator;\n    typedef /unspecified/ const_local_iterator;\n\n    unordered_multiset()\n        noexcept(\n            is_nothrow_default_constructible<hasher>::value &&\n            is_nothrow_default_constructible<key_equal>::value &&\n            is_nothrow_default_constructible<allocator_type>::value);\n    explicit unordered_multiset(size_type n, const hasher& hf = hasher(),\n                           const key_equal& eql = key_equal(),\n                           const allocator_type& a = allocator_type());\n    template <class InputIterator>\n        unordered_multiset(InputIterator f, InputIterator l,\n                      size_type n = 0, const hasher& hf = hasher(),\n                      const key_equal& eql = key_equal(),\n                      const allocator_type& a = allocator_type());\n    explicit unordered_multiset(const allocator_type&);\n    unordered_multiset(const unordered_multiset&);\n    unordered_multiset(const unordered_multiset&, const Allocator&);\n    unordered_multiset(unordered_multiset&&)\n        noexcept(\n            is_nothrow_move_constructible<hasher>::value &&\n            is_nothrow_move_constructible<key_equal>::value &&\n            is_nothrow_move_constructible<allocator_type>::value);\n    unordered_multiset(unordered_multiset&&, const Allocator&);\n    unordered_multiset(initializer_list<value_type>, size_type n = /see below/,\n                  const hasher& hf = hasher(), const key_equal& eql = key_equal(),\n                  const allocator_type& a = allocator_type());\n    unordered_multiset(size_type n, const allocator_type& a); // C++14\n    unordered_multiset(size_type n, const hasher& hf, const allocator_type& a); // C++14\n    template <class InputIterator>\n      unordered_multiset(InputIterator f, InputIterator l, size_type n, const allocator_type& a); // C++14\n    template <class InputIterator>\n      unordered_multiset(InputIterator f, InputIterator l, size_type n,\n                         const hasher& hf, const allocator_type& a); // C++14\n    unordered_multiset(initializer_list<value_type> il, size_type n, const allocator_type& a); // C++14\n    unordered_multiset(initializer_list<value_type> il, size_type n, \n                       const hasher& hf,  const allocator_type& a); // C++14\n    ~unordered_multiset();\n    unordered_multiset& operator=(const unordered_multiset&);\n    unordered_multiset& operator=(unordered_multiset&&)\n        noexcept(\n            allocator_type::propagate_on_container_move_assignment::value &&\n            is_nothrow_move_assignable<allocator_type>::value &&\n            is_nothrow_move_assignable<hasher>::value &&\n            is_nothrow_move_assignable<key_equal>::value);\n    unordered_multiset& operator=(initializer_list<value_type>);\n\n    allocator_type get_allocator() const noexcept;\n\n    bool      empty() const noexcept;\n    size_type size() const noexcept;\n    size_type max_size() const noexcept;\n\n    iterator       begin() noexcept;\n    iterator       end() noexcept;\n    const_iterator begin()  const noexcept;\n    const_iterator end()    const noexcept;\n    const_iterator cbegin() const noexcept;\n    const_iterator cend()   const noexcept;\n\n    template <class... Args>\n        iterator emplace(Args&&... args);\n    template <class... Args>\n        iterator emplace_hint(const_iterator position, Args&&... args);\n    iterator insert(const value_type& obj);\n    iterator insert(value_type&& obj);\n    iterator insert(const_iterator hint, const value_type& obj);\n    iterator insert(const_iterator hint, value_type&& obj);\n    template <class InputIterator>\n        void insert(InputIterator first, InputIterator last);\n    void insert(initializer_list<value_type>);\n\n    iterator erase(const_iterator position);\n    iterator erase(iterator position);  // C++14\n    size_type erase(const key_type& k);\n    iterator erase(const_iterator first, const_iterator last);\n    void clear() noexcept;\n\n    void swap(unordered_multiset&)\n       noexcept(allocator_traits<Allocator>::is_always_equal::value &&\n                 noexcept(swap(declval<hasher&>(), declval<hasher&>())) &&\n                 noexcept(swap(declval<key_equal&>(), declval<key_equal&>()))); // C++17\n\n    hasher hash_function() const;\n    key_equal key_eq() const;\n\n    iterator       find(const key_type& k);\n    const_iterator find(const key_type& k) const;\n    size_type count(const key_type& k) const;\n    pair<iterator, iterator>             equal_range(const key_type& k);\n    pair<const_iterator, const_iterator> equal_range(const key_type& k) const;\n\n    size_type bucket_count() const noexcept;\n    size_type max_bucket_count() const noexcept;\n\n    size_type bucket_size(size_type n) const;\n    size_type bucket(const key_type& k) const;\n\n    local_iterator       begin(size_type n);\n    local_iterator       end(size_type n);\n    const_local_iterator begin(size_type n) const;\n    const_local_iterator end(size_type n) const;\n    const_local_iterator cbegin(size_type n) const;\n    const_local_iterator cend(size_type n) const;\n\n    float load_factor() const noexcept;\n    float max_load_factor() const noexcept;\n    void max_load_factor(float z);\n    void rehash(size_type n);\n    void reserve(size_type n);\n};\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    void swap(unordered_multiset<Value, Hash, Pred, Alloc>& x,\n              unordered_multiset<Value, Hash, Pred, Alloc>& y)\n              noexcept(noexcept(x.swap(y)));\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    bool\n    operator==(const unordered_multiset<Value, Hash, Pred, Alloc>& x,\n               const unordered_multiset<Value, Hash, Pred, Alloc>& y);\n\ntemplate <class Value, class Hash, class Pred, class Alloc>\n    bool\n    operator!=(const unordered_multiset<Value, Hash, Pred, Alloc>& x,\n               const unordered_multiset<Value, Hash, Pred, Alloc>& y);\n}  // std\n\n*/\n\n#include <__config>\n#include <__hash_table>\n#include <functional>\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,\n          class _Alloc = allocator<_Value> >\nclass _LIBCPP_TEMPLATE_VIS unordered_set\n{\npublic:\n    // types\n    typedef _Value                                                     key_type;\n    typedef key_type                                                   value_type;\n    typedef _Hash                                                      hasher;\n    typedef _Pred                                                      key_equal;\n    typedef _Alloc                                                     allocator_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    static_assert((is_same<value_type, typename allocator_type::value_type>::value),\n                  \"Invalid allocator::value_type\");\n\nprivate:\n    typedef __hash_table<value_type, hasher, key_equal, allocator_type> __table;\n\n    __table __table_;\n\npublic:\n    typedef typename __table::pointer         pointer;\n    typedef typename __table::const_pointer   const_pointer;\n    typedef typename __table::size_type       size_type;\n    typedef typename __table::difference_type difference_type;\n\n    typedef typename __table::const_iterator       iterator;\n    typedef typename __table::const_iterator       const_iterator;\n    typedef typename __table::const_local_iterator local_iterator;\n    typedef typename __table::const_local_iterator const_local_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_set()\n        _NOEXCEPT_(is_nothrow_default_constructible<__table>::value)\n        {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n            __get_db()->__insert_c(this);\n#endif\n        }\n    explicit unordered_set(size_type __n, const hasher& __hf = hasher(),\n                           const key_equal& __eql = key_equal());\n#if _LIBCPP_STD_VER > 11\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_set(size_type __n, const allocator_type& __a)\n        : unordered_set(__n, hasher(), key_equal(), __a) {}\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_set(size_type __n, const hasher& __hf, const allocator_type& __a)\n        : unordered_set(__n, __hf, key_equal(), __a) {}\n#endif\n    unordered_set(size_type __n, const hasher& __hf, const key_equal& __eql,\n                  const allocator_type& __a);\n    template <class _InputIterator>\n        unordered_set(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        unordered_set(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf = hasher(),\n                      const key_equal& __eql = key_equal());\n    template <class _InputIterator>\n        unordered_set(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf, const key_equal& __eql,\n                      const allocator_type& __a);\n#if _LIBCPP_STD_VER > 11\n    template <class _InputIterator>\n    inline _LIBCPP_INLINE_VISIBILITY\n        unordered_set(_InputIterator __first, _InputIterator __last, \n                    size_type __n, const allocator_type& __a)\n            : unordered_set(__first, __last, __n, hasher(), key_equal(), __a) {}\n    template <class _InputIterator>\n        unordered_set(_InputIterator __first, _InputIterator __last, \n                      size_type __n, const hasher& __hf, const allocator_type& __a)\n            : unordered_set(__first, __last, __n, __hf, key_equal(), __a) {}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    explicit unordered_set(const allocator_type& __a);\n    unordered_set(const unordered_set& __u);\n    unordered_set(const unordered_set& __u, const allocator_type& __a);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_set(unordered_set&& __u)\n        _NOEXCEPT_(is_nothrow_move_constructible<__table>::value);\n    unordered_set(unordered_set&& __u, const allocator_type& __a);\n    unordered_set(initializer_list<value_type> __il);\n    unordered_set(initializer_list<value_type> __il, size_type __n,\n                  const hasher& __hf = hasher(),\n                  const key_equal& __eql = key_equal());\n    unordered_set(initializer_list<value_type> __il, size_type __n,\n                  const hasher& __hf, const key_equal& __eql,\n                  const allocator_type& __a);\n#if _LIBCPP_STD_VER > 11\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_set(initializer_list<value_type> __il, size_type __n,\n                                                      const allocator_type& __a)\n        : unordered_set(__il, __n, hasher(), key_equal(), __a) {}\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_set(initializer_list<value_type> __il, size_type __n, \n                                  const hasher& __hf, const allocator_type& __a)\n        : unordered_set(__il, __n, __hf, key_equal(), __a) {}\n#endif\n#endif  // _LIBCPP_CXX03_LANG\n    // ~unordered_set() = default;\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_set& operator=(const unordered_set& __u)\n    {\n        __table_ = __u.__table_;\n        return *this;\n    }\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_set& operator=(unordered_set&& __u)\n        _NOEXCEPT_(is_nothrow_move_assignable<__table>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_set& operator=(initializer_list<value_type> __il);\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT\n        {return allocator_type(__table_.__node_alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const _NOEXCEPT {return __table_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT  {return __table_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {return __table_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin() _NOEXCEPT        {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end() _NOEXCEPT          {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const _NOEXCEPT {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const _NOEXCEPT {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const _NOEXCEPT {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend()   const _NOEXCEPT {return __table_.end();}\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        pair<iterator, bool> emplace(_Args&&... __args)\n            {return __table_.__emplace_unique(_VSTD::forward<_Args>(__args)...);}\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        iterator emplace_hint(const_iterator __p, _Args&&... __args)\n        {\n            _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n                \"unordered_set::emplace_hint(const_iterator, args...) called with an iterator not\"\n                \" referring to this unordered_set\");\n            return __table_.__emplace_unique(_VSTD::forward<_Args>(__args)...).first;\n        }\n#else\n        iterator emplace_hint(const_iterator, _Args&&... __args)\n            {return __table_.__emplace_unique(_VSTD::forward<_Args>(__args)...).first;}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> insert(value_type&& __x)\n        {return __table_.__insert_unique(_VSTD::move(__x));}\n    _LIBCPP_INLINE_VISIBILITY\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    iterator insert(const_iterator __p, value_type&& __x)\n        {\n            _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n                \"unordered_set::insert(const_iterator, value_type&&) called with an iterator not\"\n                \" referring to this unordered_set\");\n            return insert(_VSTD::move(__x)).first;\n        }\n#else\n    iterator insert(const_iterator, value_type&& __x)\n        {return insert(_VSTD::move(__x)).first;}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(initializer_list<value_type> __il)\n        {insert(__il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, bool> insert(const value_type& __x)\n        {return __table_.__insert_unique(__x);}\n\n    _LIBCPP_INLINE_VISIBILITY\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    iterator insert(const_iterator __p, const value_type& __x)\n        {\n            _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__p) == this,\n                \"unordered_set::insert(const_iterator, const value_type&) called with an iterator not\"\n                \" referring to this unordered_set\");\n            return insert(__x).first;\n        }\n#else\n    iterator insert(const_iterator, const value_type& __x)\n        {return insert(__x).first;}\n#endif\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __first, _InputIterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __p) {return __table_.erase(__p);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __table_.__erase_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __first, const_iterator __last)\n        {return __table_.erase(__first, __last);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__table_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(unordered_set& __u)\n        _NOEXCEPT_(__is_nothrow_swappable<__table>::value)\n        {__table_.swap(__u.__table_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher hash_function() const {return __table_.hash_function();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal key_eq() const {return __table_.key_eq();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       find(const key_type& __k)       {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type count(const key_type& __k) const {return __table_.__count_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, iterator>             equal_range(const key_type& __k)\n        {return __table_.__equal_range_unique(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator, const_iterator> equal_range(const key_type& __k) const\n        {return __table_.__equal_range_unique(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const _NOEXCEPT {return __table_.bucket_count();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const _NOEXCEPT {return __table_.max_bucket_count();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_size(size_type __n) const {return __table_.bucket_size(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket(const key_type& __k) const {return __table_.bucket(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator       begin(size_type __n)        {return __table_.begin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator       end(size_type __n)          {return __table_.end(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator begin(size_type __n) const  {return __table_.cbegin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator end(size_type __n) const    {return __table_.cend(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator cbegin(size_type __n) const {return __table_.cbegin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator cend(size_type __n) const   {return __table_.cend(__n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    float load_factor() const _NOEXCEPT {return __table_.load_factor();}\n    _LIBCPP_INLINE_VISIBILITY\n    float max_load_factor() const _NOEXCEPT {return __table_.max_load_factor();}\n    _LIBCPP_INLINE_VISIBILITY\n    void max_load_factor(float __mlf) {__table_.max_load_factor(__mlf);}\n    _LIBCPP_INLINE_VISIBILITY\n    void rehash(size_type __n) {__table_.rehash(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    void reserve(size_type __n) {__table_.reserve(__n);}\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    bool __dereferenceable(const const_iterator* __i) const\n        {return __table_.__dereferenceable(__i);}\n    bool __decrementable(const const_iterator* __i) const\n        {return __table_.__decrementable(__i);}\n    bool __addable(const const_iterator* __i, ptrdiff_t __n) const\n        {return __table_.__addable(__i, __n);}\n    bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const\n        {return __table_.__addable(__i, __n);}\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n};\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        _InputIterator __first, _InputIterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        const allocator_type& __a)\n    : __table_(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        const unordered_set& __u)\n    : __table_(__u.__table_)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        const unordered_set& __u, const allocator_type& __a)\n    : __table_(__u.__table_, __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        unordered_set&& __u)\n    _NOEXCEPT_(is_nothrow_move_constructible<__table>::value)\n    : __table_(_VSTD::move(__u.__table_))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n    __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        unordered_set&& __u, const allocator_type& __a)\n    : __table_(_VSTD::move(__u.__table_), __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__a != __u.get_allocator())\n    {\n        iterator __i = __u.begin();\n        while (__u.size() != 0)\n            __table_.__insert_unique(_VSTD::move(__u.__table_.remove(__i++)->__value_));\n    }\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    else\n        __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        initializer_list<value_type> __il)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        initializer_list<value_type> __il, size_type __n, const hasher& __hf,\n        const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_set<_Value, _Hash, _Pred, _Alloc>::unordered_set(\n        initializer_list<value_type> __il, size_type __n, const hasher& __hf,\n        const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_set<_Value, _Hash, _Pred, _Alloc>&\nunordered_set<_Value, _Hash, _Pred, _Alloc>::operator=(unordered_set&& __u)\n    _NOEXCEPT_(is_nothrow_move_assignable<__table>::value)\n{\n    __table_ = _VSTD::move(__u.__table_);\n    return *this;\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_set<_Value, _Hash, _Pred, _Alloc>&\nunordered_set<_Value, _Hash, _Pred, _Alloc>::operator=(\n        initializer_list<value_type> __il)\n{\n    __table_.__assign_unique(__il.begin(), __il.end());\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\ninline\nvoid\nunordered_set<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,\n                                                    _InputIterator __last)\n{\n    for (; __first != __last; ++__first)\n        __table_.__insert_unique(*__first);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(unordered_set<_Value, _Hash, _Pred, _Alloc>& __x,\n     unordered_set<_Value, _Hash, _Pred, _Alloc>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nbool\noperator==(const unordered_set<_Value, _Hash, _Pred, _Alloc>& __x,\n           const unordered_set<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    if (__x.size() != __y.size())\n        return false;\n    typedef typename unordered_set<_Value, _Hash, _Pred, _Alloc>::const_iterator\n                                                                 const_iterator;\n    for (const_iterator __i = __x.begin(), __ex = __x.end(), __ey = __y.end();\n            __i != __ex; ++__i)\n    {\n        const_iterator __j = __y.find(*__i);\n        if (__j == __ey || !(*__i == *__j))\n            return false;\n    }\n    return true;\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const unordered_set<_Value, _Hash, _Pred, _Alloc>& __x,\n           const unordered_set<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Value, class _Hash = hash<_Value>, class _Pred = equal_to<_Value>,\n          class _Alloc = allocator<_Value> >\nclass _LIBCPP_TEMPLATE_VIS unordered_multiset\n{\npublic:\n    // types\n    typedef _Value                                                     key_type;\n    typedef key_type                                                   value_type;\n    typedef _Hash                                                      hasher;\n    typedef _Pred                                                      key_equal;\n    typedef _Alloc                                                     allocator_type;\n    typedef value_type&                                                reference;\n    typedef const value_type&                                          const_reference;\n    static_assert((is_same<value_type, typename allocator_type::value_type>::value),\n                  \"Invalid allocator::value_type\");\n\nprivate:\n    typedef __hash_table<value_type, hasher, key_equal, allocator_type> __table;\n\n    __table __table_;\n\npublic:\n    typedef typename __table::pointer         pointer;\n    typedef typename __table::const_pointer   const_pointer;\n    typedef typename __table::size_type       size_type;\n    typedef typename __table::difference_type difference_type;\n\n    typedef typename __table::const_iterator       iterator;\n    typedef typename __table::const_iterator       const_iterator;\n    typedef typename __table::const_local_iterator local_iterator;\n    typedef typename __table::const_local_iterator const_local_iterator;\n\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset()\n        _NOEXCEPT_(is_nothrow_default_constructible<__table>::value)\n        {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n            __get_db()->__insert_c(this);\n#endif\n        }\n    explicit unordered_multiset(size_type __n, const hasher& __hf = hasher(),\n                                const key_equal& __eql = key_equal());\n    unordered_multiset(size_type __n, const hasher& __hf,\n                       const key_equal& __eql, const allocator_type& __a);\n#if _LIBCPP_STD_VER > 11\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset(size_type __n, const allocator_type& __a)\n        : unordered_multiset(__n, hasher(), key_equal(), __a) {}\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset(size_type __n, const hasher& __hf, const allocator_type& __a)\n        : unordered_multiset(__n, __hf, key_equal(), __a) {}\n#endif\n    template <class _InputIterator>\n        unordered_multiset(_InputIterator __first, _InputIterator __last);\n    template <class _InputIterator>\n        unordered_multiset(_InputIterator __first, _InputIterator __last,\n                      size_type __n, const hasher& __hf = hasher(),\n                      const key_equal& __eql = key_equal());\n    template <class _InputIterator>\n        unordered_multiset(_InputIterator __first, _InputIterator __last,\n                      size_type __n , const hasher& __hf,\n                      const key_equal& __eql, const allocator_type& __a);\n#if _LIBCPP_STD_VER > 11\n    template <class _InputIterator>\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset(_InputIterator __first, _InputIterator __last, \n                       size_type __n, const allocator_type& __a)\n        : unordered_multiset(__first, __last, __n, hasher(), key_equal(), __a) {}\n    template <class _InputIterator>\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset(_InputIterator __first, _InputIterator __last,\n                       size_type __n, const hasher& __hf, const allocator_type& __a)\n        : unordered_multiset(__first, __last, __n, __hf, key_equal(), __a) {}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    explicit unordered_multiset(const allocator_type& __a);\n    unordered_multiset(const unordered_multiset& __u);\n    unordered_multiset(const unordered_multiset& __u, const allocator_type& __a);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset(unordered_multiset&& __u)\n        _NOEXCEPT_(is_nothrow_move_constructible<__table>::value);\n    unordered_multiset(unordered_multiset&& __u, const allocator_type& __a);\n    unordered_multiset(initializer_list<value_type> __il);\n    unordered_multiset(initializer_list<value_type> __il, size_type __n,\n                       const hasher& __hf = hasher(),\n                       const key_equal& __eql = key_equal());\n    unordered_multiset(initializer_list<value_type> __il, size_type __n,\n                       const hasher& __hf, const key_equal& __eql,\n                       const allocator_type& __a);\n#if _LIBCPP_STD_VER > 11\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset(initializer_list<value_type> __il, size_type __n, const allocator_type& __a)\n      : unordered_multiset(__il, __n, hasher(), key_equal(), __a) {}\n    inline _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset(initializer_list<value_type> __il, size_type __n, const hasher& __hf, const allocator_type& __a)\n      : unordered_multiset(__il, __n, __hf, key_equal(), __a) {}\n#endif\n#endif  // _LIBCPP_CXX03_LANG\n    // ~unordered_multiset() = default;\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset& operator=(const unordered_multiset& __u)\n    {\n        __table_ = __u.__table_;\n        return *this;\n    }\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    unordered_multiset& operator=(unordered_multiset&& __u)\n        _NOEXCEPT_(is_nothrow_move_assignable<__table>::value);\n    unordered_multiset& operator=(initializer_list<value_type> __il);\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT\n        {return allocator_type(__table_.__node_alloc());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    bool      empty() const _NOEXCEPT {return __table_.size() == 0;}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT  {return __table_.size();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_size() const _NOEXCEPT {return __table_.max_size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       begin() _NOEXCEPT        {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       end() _NOEXCEPT          {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin()  const _NOEXCEPT {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()    const _NOEXCEPT {return __table_.end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cbegin() const _NOEXCEPT {return __table_.begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator cend()   const _NOEXCEPT {return __table_.end();}\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator emplace(_Args&&... __args)\n            {return __table_.__emplace_multi(_VSTD::forward<_Args>(__args)...);}\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n        iterator emplace_hint(const_iterator __p, _Args&&... __args)\n            {return __table_.__emplace_hint_multi(__p, _VSTD::forward<_Args>(__args)...);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(value_type&& __x) {return __table_.__insert_multi(_VSTD::move(__x));}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, value_type&& __x)\n        {return __table_.__insert_multi(__p, _VSTD::move(__x));}\n    _LIBCPP_INLINE_VISIBILITY\n    void insert(initializer_list<value_type> __il)\n        {insert(__il.begin(), __il.end());}\n#endif  // _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const value_type& __x) {return __table_.__insert_multi(__x);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __p, const value_type& __x)\n        {return __table_.__insert_multi(__p, __x);}\n\n    template <class _InputIterator>\n        _LIBCPP_INLINE_VISIBILITY\n        void insert(_InputIterator __first, _InputIterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __p) {return __table_.erase(__p);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type erase(const key_type& __k) {return __table_.__erase_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator erase(const_iterator __first, const_iterator __last)\n        {return __table_.erase(__first, __last);}\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__table_.clear();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(unordered_multiset& __u)\n        _NOEXCEPT_(__is_nothrow_swappable<__table>::value)\n        {__table_.swap(__u.__table_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    hasher hash_function() const {return __table_.hash_function();}\n    _LIBCPP_INLINE_VISIBILITY\n    key_equal key_eq() const {return __table_.key_eq();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       find(const key_type& __k)       {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator find(const key_type& __k) const {return __table_.find(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type count(const key_type& __k) const {return __table_.__count_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<iterator, iterator>             equal_range(const key_type& __k)\n        {return __table_.__equal_range_multi(__k);}\n    _LIBCPP_INLINE_VISIBILITY\n    pair<const_iterator, const_iterator> equal_range(const key_type& __k) const\n        {return __table_.__equal_range_multi(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_count() const _NOEXCEPT {return __table_.bucket_count();}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type max_bucket_count() const _NOEXCEPT {return __table_.max_bucket_count();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket_size(size_type __n) const {return __table_.bucket_size(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type bucket(const key_type& __k) const {return __table_.bucket(__k);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator       begin(size_type __n)        {return __table_.begin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    local_iterator       end(size_type __n)          {return __table_.end(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator begin(size_type __n) const  {return __table_.cbegin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator end(size_type __n) const    {return __table_.cend(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator cbegin(size_type __n) const {return __table_.cbegin(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_local_iterator cend(size_type __n) const   {return __table_.cend(__n);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    float load_factor() const _NOEXCEPT {return __table_.load_factor();}\n    _LIBCPP_INLINE_VISIBILITY\n    float max_load_factor() const _NOEXCEPT {return __table_.max_load_factor();}\n    _LIBCPP_INLINE_VISIBILITY\n    void max_load_factor(float __mlf) {__table_.max_load_factor(__mlf);}\n    _LIBCPP_INLINE_VISIBILITY\n    void rehash(size_type __n) {__table_.rehash(__n);}\n    _LIBCPP_INLINE_VISIBILITY\n    void reserve(size_type __n) {__table_.reserve(__n);}\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    bool __dereferenceable(const const_iterator* __i) const\n        {return __table_.__dereferenceable(__i);}\n    bool __decrementable(const const_iterator* __i) const\n        {return __table_.__decrementable(__i);}\n    bool __addable(const const_iterator* __i, ptrdiff_t __n) const\n        {return __table_.__addable(__i, __n);}\n    bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const\n        {return __table_.__addable(__i, __n);}\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\n};\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        size_type __n, const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        size_type __n, const hasher& __hf, const key_equal& __eql,\n        const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        _InputIterator __first, _InputIterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        _InputIterator __first, _InputIterator __last, size_type __n,\n        const hasher& __hf, const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__first, __last);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        const allocator_type& __a)\n    : __table_(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        const unordered_multiset& __u)\n    : __table_(__u.__table_)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        const unordered_multiset& __u, const allocator_type& __a)\n    : __table_(__u.__table_, __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__u.bucket_count());\n    insert(__u.begin(), __u.end());\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        unordered_multiset&& __u)\n    _NOEXCEPT_(is_nothrow_move_constructible<__table>::value)\n    : __table_(_VSTD::move(__u.__table_))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n    __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        unordered_multiset&& __u, const allocator_type& __a)\n    : __table_(_VSTD::move(__u.__table_), __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__a != __u.get_allocator())\n    {\n        iterator __i = __u.begin();\n        while (__u.size() != 0)\n            __table_.__insert_multi(_VSTD::move(__u.__table_.remove(__i++)->__value_));\n    }\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    else\n        __get_db()->swap(this, &__u);\n#endif\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        initializer_list<value_type> __il)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        initializer_list<value_type> __il, size_type __n, const hasher& __hf,\n        const key_equal& __eql)\n    : __table_(__hf, __eql)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::unordered_multiset(\n        initializer_list<value_type> __il, size_type __n, const hasher& __hf,\n        const key_equal& __eql, const allocator_type& __a)\n    : __table_(__hf, __eql, __a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    __table_.rehash(__n);\n    insert(__il.begin(), __il.end());\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>&\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::operator=(\n        unordered_multiset&& __u)\n    _NOEXCEPT_(is_nothrow_move_assignable<__table>::value)\n{\n    __table_ = _VSTD::move(__u.__table_);\n    return *this;\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>&\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::operator=(\n        initializer_list<value_type> __il)\n{\n    __table_.__assign_multi(__il.begin(), __il.end());\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ntemplate <class _InputIterator>\ninline\nvoid\nunordered_multiset<_Value, _Hash, _Pred, _Alloc>::insert(_InputIterator __first,\n                                                         _InputIterator __last)\n{\n    for (; __first != __last; ++__first)\n        __table_.__insert_multi(*__first);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __x,\n     unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\nbool\noperator==(const unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __x,\n           const unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    if (__x.size() != __y.size())\n        return false;\n    typedef typename unordered_multiset<_Value, _Hash, _Pred, _Alloc>::const_iterator\n                                                                 const_iterator;\n    typedef pair<const_iterator, const_iterator> _EqRng;\n    for (const_iterator __i = __x.begin(), __ex = __x.end(); __i != __ex;)\n    {\n        _EqRng __xeq = __x.equal_range(*__i);\n        _EqRng __yeq = __y.equal_range(*__i);\n        if (_VSTD::distance(__xeq.first, __xeq.second) !=\n            _VSTD::distance(__yeq.first, __yeq.second) ||\n                  !_VSTD::is_permutation(__xeq.first, __xeq.second, __yeq.first))\n            return false;\n        __i = __xeq.second;\n    }\n    return true;\n}\n\ntemplate <class _Value, class _Hash, class _Pred, class _Alloc>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __x,\n           const unordered_multiset<_Value, _Hash, _Pred, _Alloc>& __y)\n{\n    return !(__x == __y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_UNORDERED_SET\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/utility",
    "content": "// -*- C++ -*-\n//===-------------------------- utility -----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_UTILITY\n#define _LIBCPP_UTILITY\n\n/*\n    utility synopsis\n\nnamespace std\n{\n\ntemplate <class T>\n    void\n    swap(T& a, T& b);\n\nnamespace rel_ops\n{\n    template<class T> bool operator!=(const T&, const T&);\n    template<class T> bool operator> (const T&, const T&);\n    template<class T> bool operator<=(const T&, const T&);\n    template<class T> bool operator>=(const T&, const T&);\n}\n\ntemplate<class T>\nvoid\nswap(T& a, T& b) noexcept(is_nothrow_move_constructible<T>::value &&\n                          is_nothrow_move_assignable<T>::value);\n\ntemplate <class T, size_t N>\nvoid\nswap(T (&a)[N], T (&b)[N]) noexcept(noexcept(swap(*a, *b)));\n\ntemplate <class T> T&& forward(typename remove_reference<T>::type& t) noexcept;  // constexpr in C++14\ntemplate <class T> T&& forward(typename remove_reference<T>::type&& t) noexcept; // constexpr in C++14\n\ntemplate <class T> typename remove_reference<T>::type&& move(T&&) noexcept;      // constexpr in C++14\n\ntemplate <class T>\n    typename conditional\n    <\n        !is_nothrow_move_constructible<T>::value && is_copy_constructible<T>::value,\n        const T&,\n        T&&\n    >::type\n    move_if_noexcept(T& x) noexcept; // constexpr in C++14\n\ntemplate <class T> constexpr add_const<T>_t& as_const(T& t) noexcept;      // C++17\ntemplate <class T>                      void as_const(const T&&) = delete; // C++17\n\ntemplate <class T> typename add_rvalue_reference<T>::type declval() noexcept;\n\ntemplate <class T1, class T2>\nstruct pair\n{\n    typedef T1 first_type;\n    typedef T2 second_type;\n\n    T1 first;\n    T2 second;\n\n    pair(const pair&) = default;\n    pair(pair&&) = default;\n    constexpr pair();\n    pair(const T1& x, const T2& y);                          // constexpr in C++14\n    template <class U, class V> pair(U&& x, V&& y);          // constexpr in C++14\n    template <class U, class V> pair(const pair<U, V>& p);   // constexpr in C++14\n    template <class U, class V> pair(pair<U, V>&& p);        // constexpr in C++14\n    template <class... Args1, class... Args2>\n        pair(piecewise_construct_t, tuple<Args1...> first_args,\n             tuple<Args2...> second_args);\n\n    template <class U, class V> pair& operator=(const pair<U, V>& p);\n    pair& operator=(pair&& p) noexcept(is_nothrow_move_assignable<T1>::value &&\n                                       is_nothrow_move_assignable<T2>::value);\n    template <class U, class V> pair& operator=(pair<U, V>&& p);\n\n    void swap(pair& p) noexcept(is_nothrow_swappable_v<T1> &&\n                                is_nothrow_swappable_v<T2>);\n};\n\ntemplate <class T1, class T2> bool operator==(const pair<T1,T2>&, const pair<T1,T2>&); // constexpr in C++14\ntemplate <class T1, class T2> bool operator!=(const pair<T1,T2>&, const pair<T1,T2>&); // constexpr in C++14\ntemplate <class T1, class T2> bool operator< (const pair<T1,T2>&, const pair<T1,T2>&); // constexpr in C++14\ntemplate <class T1, class T2> bool operator> (const pair<T1,T2>&, const pair<T1,T2>&); // constexpr in C++14\ntemplate <class T1, class T2> bool operator>=(const pair<T1,T2>&, const pair<T1,T2>&); // constexpr in C++14\ntemplate <class T1, class T2> bool operator<=(const pair<T1,T2>&, const pair<T1,T2>&); // constexpr in C++14\n\ntemplate <class T1, class T2> pair<V1, V2> make_pair(T1&&, T2&&);   // constexpr in C++14\ntemplate <class T1, class T2>\nvoid\nswap(pair<T1, T2>& x, pair<T1, T2>& y) noexcept(noexcept(x.swap(y)));\n\nstruct piecewise_construct_t { };\nconstexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();\n\ntemplate <class T> class tuple_size;\ntemplate <size_t I, class T> class tuple_element;\n\ntemplate <class T1, class T2> struct tuple_size<pair<T1, T2> >;\ntemplate <class T1, class T2> struct tuple_element<0, pair<T1, T2> >;\ntemplate <class T1, class T2> struct tuple_element<1, pair<T1, T2> >;\n\ntemplate<size_t I, class T1, class T2>\n    typename tuple_element<I, pair<T1, T2> >::type&\n    get(pair<T1, T2>&) noexcept; // constexpr in C++14\n\ntemplate<size_t I, class T1, class T2>\n    const typename tuple_element<I, pair<T1, T2> >::type&\n    get(const pair<T1, T2>&) noexcept; // constexpr in C++14\n\ntemplate<size_t I, class T1, class T2>\n    typename tuple_element<I, pair<T1, T2> >::type&&\n    get(pair<T1, T2>&&) noexcept; // constexpr in C++14\n\ntemplate<size_t I, class T1, class T2>\n    const typename tuple_element<I, pair<T1, T2> >::type&&\n    get(const pair<T1, T2>&&) noexcept; // constexpr in C++14\n\ntemplate<class T1, class T2>\n    constexpr T1& get(pair<T1, T2>&) noexcept; // C++14\n\ntemplate<class T1, class T2>\n    constexpr const T1& get(const pair<T1, T2>&) noexcept; // C++14\n\ntemplate<class T1, class T2>\n    constexpr T1&& get(pair<T1, T2>&&) noexcept; // C++14\n\ntemplate<class T1, class T2>\n    constexpr const T1&& get(const pair<T1, T2>&&) noexcept; // C++14\n\ntemplate<class T1, class T2>\n    constexpr T1& get(pair<T2, T1>&) noexcept; // C++14\n\ntemplate<class T1, class T2>\n    constexpr const T1& get(const pair<T2, T1>&) noexcept; // C++14\n\ntemplate<class T1, class T2>\n    constexpr T1&& get(pair<T2, T1>&&) noexcept; // C++14\n\ntemplate<class T1, class T2>\n    constexpr const T1&& get(const pair<T2, T1>&&) noexcept; // C++14\n\n// C++14\n\ntemplate<class T, T... I>\nstruct integer_sequence\n{\n    typedef T value_type;\n\n    static constexpr size_t size() noexcept;\n};\n\ntemplate<size_t... I>\n  using index_sequence = integer_sequence<size_t, I...>;\n\ntemplate<class T, T N>\n  using make_integer_sequence = integer_sequence<T, 0, 1, ..., N-1>;\ntemplate<size_t N>\n  using make_index_sequence = make_integer_sequence<size_t, N>;\n\ntemplate<class... T>\n  using index_sequence_for = make_index_sequence<sizeof...(T)>;\n\ntemplate<class T, class U=T>\n    T exchange(T& obj, U&& new_value);\n\n// 20.2.7, in-place construction // C++17\nstruct in_place_t {\n  explicit in_place_t() = default;\n};\ninline constexpr in_place_t in_place{};\ntemplate <class T>\n  struct in_place_type_t {\n    explicit in_place_type_t() = default;\n  };\ntemplate <class T>\n  inline constexpr in_place_type_t<T> in_place_type{};\ntemplate <size_t I>\n  struct in_place_index_t {\n    explicit in_place_index_t() = default;\n  };\ntemplate <size_t I>\n  inline constexpr in_place_index_t<I> in_place_index{};\n\n}  // std\n\n*/\n\n#include <__config>\n#include <__tuple>\n#include <type_traits>\n#include <initializer_list>\n#include <cstddef>\n#include <cstring>\n#include <cstdint>\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\nnamespace rel_ops\n{\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const _Tp& __x, const _Tp& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const _Tp& __x, const _Tp& __y)\n{\n    return __y < __x;\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const _Tp& __x, const _Tp& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const _Tp& __x, const _Tp& __y)\n{\n    return !(__x < __y);\n}\n\n}  // rel_ops\n\n// swap_ranges\n\n\ntemplate <class _ForwardIterator1, class _ForwardIterator2>\ninline _LIBCPP_INLINE_VISIBILITY\n_ForwardIterator2\nswap_ranges(_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2)\n{\n    for(; __first1 != __last1; ++__first1, (void) ++__first2)\n        swap(*__first1, *__first2);\n    return __first2;\n}\n\n// forward declared in <type_traits>\ntemplate<class _Tp, size_t _Np>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if<\n    __is_swappable<_Tp>::value\n>::type\nswap(_Tp (&__a)[_Np], _Tp (&__b)[_Np]) _NOEXCEPT_(__is_nothrow_swappable<_Tp>::value)\n{\n    _VSTD::swap_ranges(__a, __a + _Np, __b);\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n#ifndef _LIBCPP_CXX03_LANG\ntypename conditional\n<\n    !is_nothrow_move_constructible<_Tp>::value && is_copy_constructible<_Tp>::value,\n    const _Tp&,\n    _Tp&&\n>::type\n#else  // _LIBCPP_CXX03_LANG\nconst _Tp&\n#endif\nmove_if_noexcept(_Tp& __x) _NOEXCEPT\n{\n    return _VSTD::move(__x);\n}\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Tp> constexpr add_const_t<_Tp>& as_const(_Tp& __t) noexcept { return __t; }\ntemplate <class _Tp>                        void as_const(const _Tp&&) = delete;\n#endif\n\nstruct _LIBCPP_TEMPLATE_VIS piecewise_construct_t { };\n#if defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_BUILDING_UTILITY)\nextern const piecewise_construct_t piecewise_construct;// = piecewise_construct_t();\n#else\nconstexpr piecewise_construct_t piecewise_construct = piecewise_construct_t();\n#endif\n\n#if defined(_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR)\nstruct __non_trivially_copyable_base {\n  _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY\n  __non_trivially_copyable_base() _NOEXCEPT {}\n  _LIBCPP_CONSTEXPR_AFTER_CXX11 _LIBCPP_INLINE_VISIBILITY\n  __non_trivially_copyable_base(__non_trivially_copyable_base const&) _NOEXCEPT {}\n};\n#endif\n\ntemplate <class _T1, class _T2>\nstruct _LIBCPP_TEMPLATE_VIS pair\n#if defined(_LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR)\n: private __non_trivially_copyable_base\n#endif\n{\n    typedef _T1 first_type;\n    typedef _T2 second_type;\n\n    _T1 first;\n    _T2 second;\n\n#if !defined(_LIBCPP_CXX03_LANG)\n    pair(pair const&) = default;\n    pair(pair&&) = default;\n#else\n  // Use the implicitly declared copy constructor in C++03\n#endif\n\n#ifdef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    pair() : first(), second() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair(_T1 const& __t1, _T2 const& __t2) : first(__t1), second(__t2) {}\n\n    template <class _U1, class _U2>\n    _LIBCPP_INLINE_VISIBILITY\n    pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair& operator=(pair const& __p) {\n        first = __p.first;\n        second = __p.second;\n        return *this;\n    }\n#else\n    template <bool _Val>\n    using _EnableB = typename enable_if<_Val, bool>::type;\n\n    struct _CheckArgs {\n      template <class _U1, class _U2>\n      static constexpr bool __enable_default() {\n          return is_default_constructible<_U1>::value\n              && is_default_constructible<_U2>::value;\n      }\n\n      template <class _U1, class _U2>\n      static constexpr bool __enable_explicit() {\n          return is_constructible<first_type, _U1>::value\n              && is_constructible<second_type, _U2>::value\n              && (!is_convertible<_U1, first_type>::value\n                  || !is_convertible<_U2, second_type>::value);\n      }\n\n      template <class _U1, class _U2>\n      static constexpr bool __enable_implicit() {\n          return is_constructible<first_type, _U1>::value\n              && is_constructible<second_type, _U2>::value\n              && is_convertible<_U1, first_type>::value\n              && is_convertible<_U2, second_type>::value;\n      }\n    };\n\n    template <bool _MaybeEnable>\n    using _CheckArgsDep = typename conditional<\n      _MaybeEnable, _CheckArgs, __check_tuple_constructor_fail>::type;\n\n    struct _CheckTupleLikeConstructor {\n        template <class _Tuple>\n        static constexpr bool __enable_implicit() {\n            return __tuple_convertible<_Tuple, pair>::value;\n        }\n\n        template <class _Tuple>\n        static constexpr bool __enable_explicit() {\n            return __tuple_constructible<_Tuple, pair>::value\n               && !__tuple_convertible<_Tuple, pair>::value;\n        }\n\n        template <class _Tuple>\n        static constexpr bool __enable_assign() {\n            return __tuple_assignable<_Tuple, pair>::value;\n        }\n    };\n\n    template <class _Tuple>\n    using _CheckTLC = typename conditional<\n        __tuple_like_with_size<_Tuple, 2>::value\n            && !is_same<typename decay<_Tuple>::type, pair>::value,\n        _CheckTupleLikeConstructor,\n        __check_tuple_constructor_fail\n    >::type;\n\n    template<bool _Dummy = true, _EnableB<\n            _CheckArgsDep<_Dummy>::template __enable_default<_T1, _T2>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR\n    pair() : first(), second() {}\n\n    template <bool _Dummy = true, _EnableB<\n             _CheckArgsDep<_Dummy>::template __enable_explicit<_T1 const&, _T2 const&>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    explicit pair(_T1 const& __t1, _T2 const& __t2)\n        : first(__t1), second(__t2) {}\n\n    template<bool _Dummy = true, _EnableB<\n            _CheckArgsDep<_Dummy>::template __enable_implicit<_T1 const&, _T2 const&>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    pair(_T1 const& __t1, _T2 const& __t2)\n        : first(__t1), second(__t2) {}\n\n    template<class _U1, class _U2, _EnableB<\n             _CheckArgs::template __enable_explicit<_U1, _U2>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    explicit pair(_U1&& __u1, _U2&& __u2)\n        : first(_VSTD::forward<_U1>(__u1)), second(_VSTD::forward<_U2>(__u2)) {}\n\n    template<class _U1, class _U2, _EnableB<\n            _CheckArgs::template __enable_implicit<_U1, _U2>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    pair(_U1&& __u1, _U2&& __u2)\n        : first(_VSTD::forward<_U1>(__u1)), second(_VSTD::forward<_U2>(__u2)) {}\n\n    template<class _U1, class _U2, _EnableB<\n            _CheckArgs::template __enable_explicit<_U1 const&, _U2 const&>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    explicit pair(pair<_U1, _U2> const& __p)\n        : first(__p.first), second(__p.second) {}\n\n    template<class _U1, class _U2, _EnableB<\n            _CheckArgs::template __enable_implicit<_U1 const&, _U2 const&>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    pair(pair<_U1, _U2> const& __p)\n        : first(__p.first), second(__p.second) {}\n\n    template<class _U1, class _U2, _EnableB<\n            _CheckArgs::template __enable_explicit<_U1, _U2>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    explicit pair(pair<_U1, _U2>&&__p)\n        : first(_VSTD::forward<_U1>(__p.first)), second(_VSTD::forward<_U2>(__p.second)) {}\n\n    template<class _U1, class _U2, _EnableB<\n            _CheckArgs::template __enable_implicit<_U1, _U2>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    pair(pair<_U1, _U2>&& __p)\n        : first(_VSTD::forward<_U1>(__p.first)), second(_VSTD::forward<_U2>(__p.second)) {}\n\n    template<class _Tuple, _EnableB<\n            _CheckTLC<_Tuple>::template __enable_explicit<_Tuple>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    explicit pair(_Tuple&& __p)\n        : first(_VSTD::get<0>(_VSTD::forward<_Tuple>(__p))),\n          second(_VSTD::get<1>(_VSTD::forward<_Tuple>(__p))) {}\n\n    template<class _Tuple, _EnableB<\n            _CheckTLC<_Tuple>::template __enable_implicit<_Tuple>()\n    > = false>\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    pair(_Tuple&& __p)\n        : first(_VSTD::get<0>(_VSTD::forward<_Tuple>(__p))),\n          second(_VSTD::get<1>(_VSTD::forward<_Tuple>(__p))) {}\n\n    template <class... _Args1, class... _Args2>\n    _LIBCPP_INLINE_VISIBILITY\n    pair(piecewise_construct_t __pc,\n         tuple<_Args1...> __first_args, tuple<_Args2...> __second_args)\n        : pair(__pc, __first_args, __second_args,\n                typename __make_tuple_indices<sizeof...(_Args1)>::type(),\n                typename __make_tuple_indices<sizeof...(_Args2) >::type()) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair& operator=(typename conditional<\n                        is_copy_assignable<first_type>::value &&\n                        is_copy_assignable<second_type>::value,\n                    pair, __nat>::type const& __p)\n        _NOEXCEPT_(is_nothrow_copy_assignable<first_type>::value &&\n                   is_nothrow_copy_assignable<second_type>::value)\n    {\n        first = __p.first;\n        second = __p.second;\n        return *this;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    pair& operator=(typename conditional<\n                        is_move_assignable<first_type>::value &&\n                        is_move_assignable<second_type>::value,\n                    pair, __nat>::type&& __p)\n        _NOEXCEPT_(is_nothrow_move_assignable<first_type>::value &&\n                   is_nothrow_move_assignable<second_type>::value)\n    {\n        first = _VSTD::forward<first_type>(__p.first);\n        second = _VSTD::forward<second_type>(__p.second);\n        return *this;\n    }\n\n    template <class _Tuple, _EnableB<\n            _CheckTLC<_Tuple>::template __enable_assign<_Tuple>()\n     > = false>\n    _LIBCPP_INLINE_VISIBILITY\n    pair& operator=(_Tuple&& __p) {\n        first = _VSTD::get<0>(_VSTD::forward<_Tuple>(__p));\n        second = _VSTD::get<1>(_VSTD::forward<_Tuple>(__p));\n        return *this;\n    }\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    void\n    swap(pair& __p) _NOEXCEPT_(__is_nothrow_swappable<first_type>::value &&\n                               __is_nothrow_swappable<second_type>::value)\n    {\n        using _VSTD::swap;\n        swap(first,  __p.first);\n        swap(second, __p.second);\n    }\nprivate:\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>\n        _LIBCPP_INLINE_VISIBILITY\n        pair(piecewise_construct_t,\n             tuple<_Args1...>& __first_args, tuple<_Args2...>& __second_args,\n             __tuple_indices<_I1...>, __tuple_indices<_I2...>);\n#endif\n};\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator==(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)\n{\n    return __x.first == __y.first && __x.second == __y.second;\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator!=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator< (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)\n{\n    return __x.first < __y.first || (!(__y.first < __x.first) && __x.second < __y.second);\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator> (const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator>=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nbool\noperator<=(const pair<_T1,_T2>& __x, const pair<_T1,_T2>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_swappable<_T1>::value &&\n    __is_swappable<_T2>::value,\n    void\n>::type\nswap(pair<_T1, _T2>& __x, pair<_T1, _T2>& __y)\n                     _NOEXCEPT_((__is_nothrow_swappable<_T1>::value &&\n                                 __is_nothrow_swappable<_T2>::value))\n{\n    __x.swap(__y);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\nstruct __make_pair_return_impl\n{\n    typedef _Tp type;\n};\n\ntemplate <class _Tp>\nstruct __make_pair_return_impl<reference_wrapper<_Tp>>\n{\n    typedef _Tp& type;\n};\n\ntemplate <class _Tp>\nstruct __make_pair_return\n{\n    typedef typename __make_pair_return_impl<typename decay<_Tp>::type>::type type;\n};\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\npair<typename __make_pair_return<_T1>::type, typename __make_pair_return<_T2>::type>\nmake_pair(_T1&& __t1, _T2&& __t2)\n{\n    return pair<typename __make_pair_return<_T1>::type, typename __make_pair_return<_T2>::type>\n               (_VSTD::forward<_T1>(__t1), _VSTD::forward<_T2>(__t2));\n}\n\n#else  // _LIBCPP_CXX03_LANG\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\npair<_T1,_T2>\nmake_pair(_T1 __x, _T2 __y)\n{\n    return pair<_T1, _T2>(__x, __y);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _T1, class _T2>\n  class _LIBCPP_TEMPLATE_VIS tuple_size<pair<_T1, _T2> >\n    : public integral_constant<size_t, 2> {};\n\ntemplate <size_t _Ip, class _T1, class _T2>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<_Ip, pair<_T1, _T2> >\n{\n    static_assert(_Ip < 2, \"Index out of bounds in std::tuple_element<std::pair<T1, T2>>\");\n};\n\ntemplate <class _T1, class _T2>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<0, pair<_T1, _T2> >\n{\npublic:\n    typedef _T1 type;\n};\n\ntemplate <class _T1, class _T2>\nclass _LIBCPP_TEMPLATE_VIS tuple_element<1, pair<_T1, _T2> >\n{\npublic:\n    typedef _T2 type;\n};\n\ntemplate <size_t _Ip> struct __get_pair;\n\ntemplate <>\nstruct __get_pair<0>\n{\n    template <class _T1, class _T2>\n    static\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    _T1&\n    get(pair<_T1, _T2>& __p) _NOEXCEPT {return __p.first;}\n\n    template <class _T1, class _T2>\n    static\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    const _T1&\n    get(const pair<_T1, _T2>& __p) _NOEXCEPT {return __p.first;}\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _T1, class _T2>\n    static\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    _T1&&\n    get(pair<_T1, _T2>&& __p) _NOEXCEPT {return _VSTD::forward<_T1>(__p.first);}\n\n    template <class _T1, class _T2>\n    static\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    const _T1&&\n    get(const pair<_T1, _T2>&& __p) _NOEXCEPT {return _VSTD::forward<const _T1>(__p.first);}\n#endif  // _LIBCPP_CXX03_LANG\n};\n\ntemplate <>\nstruct __get_pair<1>\n{\n    template <class _T1, class _T2>\n    static\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    _T2&\n    get(pair<_T1, _T2>& __p) _NOEXCEPT {return __p.second;}\n\n    template <class _T1, class _T2>\n    static\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    const _T2&\n    get(const pair<_T1, _T2>& __p) _NOEXCEPT {return __p.second;}\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _T1, class _T2>\n    static\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    _T2&&\n    get(pair<_T1, _T2>&& __p) _NOEXCEPT {return _VSTD::forward<_T2>(__p.second);}\n\n    template <class _T1, class _T2>\n    static\n    _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\n    const _T2&&\n    get(const pair<_T1, _T2>&& __p) _NOEXCEPT {return _VSTD::forward<const _T2>(__p.second);}\n#endif  // _LIBCPP_CXX03_LANG\n};\n\ntemplate <size_t _Ip, class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename tuple_element<_Ip, pair<_T1, _T2> >::type&\nget(pair<_T1, _T2>& __p) _NOEXCEPT\n{\n    return __get_pair<_Ip>::get(__p);\n}\n\ntemplate <size_t _Ip, class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst typename tuple_element<_Ip, pair<_T1, _T2> >::type&\nget(const pair<_T1, _T2>& __p) _NOEXCEPT\n{\n    return __get_pair<_Ip>::get(__p);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <size_t _Ip, class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\ntypename tuple_element<_Ip, pair<_T1, _T2> >::type&&\nget(pair<_T1, _T2>&& __p) _NOEXCEPT\n{\n    return __get_pair<_Ip>::get(_VSTD::move(__p));\n}\n\ntemplate <size_t _Ip, class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11\nconst typename tuple_element<_Ip, pair<_T1, _T2> >::type&&\nget(const pair<_T1, _T2>&& __p) _NOEXCEPT\n{\n    return __get_pair<_Ip>::get(_VSTD::move(__p));\n}\n#endif  // _LIBCPP_CXX03_LANG\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 & get(pair<_T1, _T2>& __p) _NOEXCEPT\n{\n    return __get_pair<0>::get(__p);\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 const & get(pair<_T1, _T2> const& __p) _NOEXCEPT\n{\n    return __get_pair<0>::get(__p);\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 && get(pair<_T1, _T2>&& __p) _NOEXCEPT\n{\n    return __get_pair<0>::get(_VSTD::move(__p));\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 const && get(pair<_T1, _T2> const&& __p) _NOEXCEPT\n{\n    return __get_pair<0>::get(_VSTD::move(__p));\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 & get(pair<_T2, _T1>& __p) _NOEXCEPT\n{\n    return __get_pair<1>::get(__p);\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 const & get(pair<_T2, _T1> const& __p) _NOEXCEPT\n{\n    return __get_pair<1>::get(__p);\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 && get(pair<_T2, _T1>&& __p) _NOEXCEPT\n{\n    return __get_pair<1>::get(_VSTD::move(__p));\n}\n\ntemplate <class _T1, class _T2>\ninline _LIBCPP_INLINE_VISIBILITY\nconstexpr _T1 const && get(pair<_T2, _T1> const&& __p) _NOEXCEPT\n{\n    return __get_pair<1>::get(_VSTD::move(__p));\n}\n\n#endif\n\n#if _LIBCPP_STD_VER > 11\n\ntemplate<class _Tp, _Tp... _Ip>\nstruct _LIBCPP_TEMPLATE_VIS integer_sequence\n{\n    typedef _Tp value_type;\n    static_assert( is_integral<_Tp>::value,\n                  \"std::integer_sequence can only be instantiated with an integral type\" );\n    static\n    _LIBCPP_INLINE_VISIBILITY\n    constexpr\n    size_t\n    size() noexcept { return sizeof...(_Ip); }\n};\n\ntemplate<size_t... _Ip>\n    using index_sequence = integer_sequence<size_t, _Ip...>;\n\n#if __has_builtin(__make_integer_seq) && !defined(_LIBCPP_TESTING_FALLBACK_MAKE_INTEGER_SEQUENCE)\n\ntemplate <class _Tp, _Tp _Ep>\nusing __make_integer_sequence = __make_integer_seq<integer_sequence, _Tp, _Ep>;\n\n#else\n\ntemplate<typename _Tp, _Tp _Np> using __make_integer_sequence_unchecked =\n  typename __detail::__make<_Np>::type::template __convert<integer_sequence, _Tp>;\n\ntemplate <class _Tp, _Tp _Ep>\nstruct __make_integer_sequence_checked\n{\n    static_assert(is_integral<_Tp>::value,\n                  \"std::make_integer_sequence can only be instantiated with an integral type\" );\n    static_assert(0 <= _Ep, \"std::make_integer_sequence must have a non-negative sequence length\");\n    // Workaround GCC bug by preventing bad installations when 0 <= _Ep\n    // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68929\n    typedef __make_integer_sequence_unchecked<_Tp, 0 <= _Ep ? _Ep : 0> type;\n};\n\ntemplate <class _Tp, _Tp _Ep>\nusing __make_integer_sequence = typename __make_integer_sequence_checked<_Tp, _Ep>::type;\n\n#endif\n\ntemplate<class _Tp, _Tp _Np>\n    using make_integer_sequence = __make_integer_sequence<_Tp, _Np>;\n\ntemplate<size_t _Np>\n    using make_index_sequence = make_integer_sequence<size_t, _Np>;\n\ntemplate<class... _Tp>\n    using index_sequence_for = make_index_sequence<sizeof...(_Tp)>;\n\n#endif  // _LIBCPP_STD_VER > 11\n\n#if _LIBCPP_STD_VER > 11\ntemplate<class _T1, class _T2 = _T1>\ninline _LIBCPP_INLINE_VISIBILITY\n_T1 exchange(_T1& __obj, _T2 && __new_value)\n{\n    _T1 __old_value = _VSTD::move(__obj);\n    __obj = _VSTD::forward<_T2>(__new_value);\n    return __old_value;\n}\n#endif  // _LIBCPP_STD_VER > 11\n\n#if _LIBCPP_STD_VER > 14\n\nstruct _LIBCPP_TYPE_VIS in_place_t {\n    explicit in_place_t() = default;\n};\n#ifndef _LIBCPP_HAS_NO_INLINE_VARIABLES\ninline\n#endif\nconstexpr in_place_t in_place{};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS in_place_type_t {\n    explicit in_place_type_t() = default;\n};\ntemplate <class _Tp>\n#ifndef _LIBCPP_HAS_NO_INLINE_VARIABLES\ninline\n#endif\nconstexpr in_place_type_t<_Tp> in_place_type{};\n\ntemplate <size_t _Idx>\nstruct _LIBCPP_TYPE_VIS in_place_index_t {\n    explicit in_place_index_t() = default;\n};\ntemplate <size_t _Idx>\n#ifndef _LIBCPP_HAS_NO_INLINE_VARIABLES\ninline\n#endif\nconstexpr in_place_index_t<_Idx> in_place_index{};\n\ntemplate <class _Tp> struct __is_inplace_type_imp : false_type {};\ntemplate <class _Tp> struct __is_inplace_type_imp<in_place_type_t<_Tp>> : true_type {};\n\ntemplate <class _Tp>\nusing __is_inplace_type = __is_inplace_type_imp<__uncvref_t<_Tp>>;\n\ntemplate <class _Tp> struct __is_inplace_index_imp : false_type {};\ntemplate <size_t _Idx> struct __is_inplace_index_imp<in_place_index_t<_Idx>> : true_type {};\n\ntemplate <class _Tp>\nusing __is_inplace_index = __is_inplace_index_imp<__uncvref_t<_Tp>>;\n\n#endif // _LIBCPP_STD_VER > 14\n\ntemplate <class _Arg, class _Result>\nstruct _LIBCPP_TEMPLATE_VIS unary_function\n{\n    typedef _Arg    argument_type;\n    typedef _Result result_type;\n};\n\ntemplate <class _Size>\ninline _LIBCPP_INLINE_VISIBILITY\n_Size\n__loadword(const void* __p)\n{\n    _Size __r;\n    std::memcpy(&__r, __p, sizeof(__r));\n    return __r;\n}\n\n// We use murmur2 when size_t is 32 bits, and cityhash64 when size_t\n// is 64 bits.  This is because cityhash64 uses 64bit x 64bit\n// multiplication, which can be very slow on 32-bit systems.\ntemplate <class _Size, size_t = sizeof(_Size)*__CHAR_BIT__>\nstruct __murmur2_or_cityhash;\n\ntemplate <class _Size>\nstruct __murmur2_or_cityhash<_Size, 32>\n{\n    inline _Size operator()(const void* __key, _Size __len)\n         _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK;\n};\n\n// murmur2\ntemplate <class _Size>\n_Size\n__murmur2_or_cityhash<_Size, 32>::operator()(const void* __key, _Size __len)\n{\n    const _Size __m = 0x5bd1e995;\n    const _Size __r = 24;\n    _Size __h = __len;\n    const unsigned char* __data = static_cast<const unsigned char*>(__key);\n    for (; __len >= 4; __data += 4, __len -= 4)\n    {\n        _Size __k = __loadword<_Size>(__data);\n        __k *= __m;\n        __k ^= __k >> __r;\n        __k *= __m;\n        __h *= __m;\n        __h ^= __k;\n    }\n    switch (__len)\n    {\n    case 3:\n        __h ^= __data[2] << 16;\n    case 2:\n        __h ^= __data[1] << 8;\n    case 1:\n        __h ^= __data[0];\n        __h *= __m;\n    }\n    __h ^= __h >> 13;\n    __h *= __m;\n    __h ^= __h >> 15;\n    return __h;\n}\n\ntemplate <class _Size>\nstruct __murmur2_or_cityhash<_Size, 64>\n{\n    inline _Size operator()(const void* __key, _Size __len)  _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK;\n\n private:\n  // Some primes between 2^63 and 2^64.\n  static const _Size __k0 = 0xc3a5c85c97cb3127ULL;\n  static const _Size __k1 = 0xb492b66fbe98f273ULL;\n  static const _Size __k2 = 0x9ae16a3b2f90404fULL;\n  static const _Size __k3 = 0xc949d7c7509e6557ULL;\n\n  static _Size __rotate(_Size __val, int __shift) {\n    return __shift == 0 ? __val : ((__val >> __shift) | (__val << (64 - __shift)));\n  }\n\n  static _Size __rotate_by_at_least_1(_Size __val, int __shift) {\n    return (__val >> __shift) | (__val << (64 - __shift));\n  }\n\n  static _Size __shift_mix(_Size __val) {\n    return __val ^ (__val >> 47);\n  }\n\n  static _Size __hash_len_16(_Size __u, _Size __v)\n     _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n  {\n    const _Size __mul = 0x9ddfea08eb382d69ULL;\n    _Size __a = (__u ^ __v) * __mul;\n    __a ^= (__a >> 47);\n    _Size __b = (__v ^ __a) * __mul;\n    __b ^= (__b >> 47);\n    __b *= __mul;\n    return __b;\n  }\n\n  static _Size __hash_len_0_to_16(const char* __s, _Size __len)\n     _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n  {\n    if (__len > 8) {\n      const _Size __a = __loadword<_Size>(__s);\n      const _Size __b = __loadword<_Size>(__s + __len - 8);\n      return __hash_len_16(__a, __rotate_by_at_least_1(__b + __len, __len)) ^ __b;\n    }\n    if (__len >= 4) {\n      const uint32_t __a = __loadword<uint32_t>(__s);\n      const uint32_t __b = __loadword<uint32_t>(__s + __len - 4);\n      return __hash_len_16(__len + (__a << 3), __b);\n    }\n    if (__len > 0) {\n      const unsigned char __a = __s[0];\n      const unsigned char __b = __s[__len >> 1];\n      const unsigned char __c = __s[__len - 1];\n      const uint32_t __y = static_cast<uint32_t>(__a) +\n                           (static_cast<uint32_t>(__b) << 8);\n      const uint32_t __z = __len + (static_cast<uint32_t>(__c) << 2);\n      return __shift_mix(__y * __k2 ^ __z * __k3) * __k2;\n    }\n    return __k2;\n  }\n\n  static _Size __hash_len_17_to_32(const char *__s, _Size __len)\n     _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n  {\n    const _Size __a = __loadword<_Size>(__s) * __k1;\n    const _Size __b = __loadword<_Size>(__s + 8);\n    const _Size __c = __loadword<_Size>(__s + __len - 8) * __k2;\n    const _Size __d = __loadword<_Size>(__s + __len - 16) * __k0;\n    return __hash_len_16(__rotate(__a - __b, 43) + __rotate(__c, 30) + __d,\n                         __a + __rotate(__b ^ __k3, 20) - __c + __len);\n  }\n\n  // Return a 16-byte hash for 48 bytes.  Quick and dirty.\n  // Callers do best to use \"random-looking\" values for a and b.\n  static pair<_Size, _Size> __weak_hash_len_32_with_seeds(\n      _Size __w, _Size __x, _Size __y, _Size __z, _Size __a, _Size __b)\n        _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n  {\n    __a += __w;\n    __b = __rotate(__b + __a + __z, 21);\n    const _Size __c = __a;\n    __a += __x;\n    __a += __y;\n    __b += __rotate(__a, 44);\n    return pair<_Size, _Size>(__a + __z, __b + __c);\n  }\n\n  // Return a 16-byte hash for s[0] ... s[31], a, and b.  Quick and dirty.\n  static pair<_Size, _Size> __weak_hash_len_32_with_seeds(\n      const char* __s, _Size __a, _Size __b)\n    _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n  {\n    return __weak_hash_len_32_with_seeds(__loadword<_Size>(__s),\n                                         __loadword<_Size>(__s + 8),\n                                         __loadword<_Size>(__s + 16),\n                                         __loadword<_Size>(__s + 24),\n                                         __a,\n                                         __b);\n  }\n\n  // Return an 8-byte hash for 33 to 64 bytes.\n  static _Size __hash_len_33_to_64(const char *__s, size_t __len)\n    _LIBCPP_DISABLE_UBSAN_UNSIGNED_INTEGER_CHECK\n  {\n    _Size __z = __loadword<_Size>(__s + 24);\n    _Size __a = __loadword<_Size>(__s) +\n                (__len + __loadword<_Size>(__s + __len - 16)) * __k0;\n    _Size __b = __rotate(__a + __z, 52);\n    _Size __c = __rotate(__a, 37);\n    __a += __loadword<_Size>(__s + 8);\n    __c += __rotate(__a, 7);\n    __a += __loadword<_Size>(__s + 16);\n    _Size __vf = __a + __z;\n    _Size __vs = __b + __rotate(__a, 31) + __c;\n    __a = __loadword<_Size>(__s + 16) + __loadword<_Size>(__s + __len - 32);\n    __z += __loadword<_Size>(__s + __len - 8);\n    __b = __rotate(__a + __z, 52);\n    __c = __rotate(__a, 37);\n    __a += __loadword<_Size>(__s + __len - 24);\n    __c += __rotate(__a, 7);\n    __a += __loadword<_Size>(__s + __len - 16);\n    _Size __wf = __a + __z;\n    _Size __ws = __b + __rotate(__a, 31) + __c;\n    _Size __r = __shift_mix((__vf + __ws) * __k2 + (__wf + __vs) * __k0);\n    return __shift_mix(__r * __k0 + __vs) * __k2;\n  }\n};\n\n// cityhash64\ntemplate <class _Size>\n_Size\n__murmur2_or_cityhash<_Size, 64>::operator()(const void* __key, _Size __len)\n{\n  const char* __s = static_cast<const char*>(__key);\n  if (__len <= 32) {\n    if (__len <= 16) {\n      return __hash_len_0_to_16(__s, __len);\n    } else {\n      return __hash_len_17_to_32(__s, __len);\n    }\n  } else if (__len <= 64) {\n    return __hash_len_33_to_64(__s, __len);\n  }\n\n  // For strings over 64 bytes we hash the end first, and then as we\n  // loop we keep 56 bytes of state: v, w, x, y, and z.\n  _Size __x = __loadword<_Size>(__s + __len - 40);\n  _Size __y = __loadword<_Size>(__s + __len - 16) +\n              __loadword<_Size>(__s + __len - 56);\n  _Size __z = __hash_len_16(__loadword<_Size>(__s + __len - 48) + __len,\n                          __loadword<_Size>(__s + __len - 24));\n  pair<_Size, _Size> __v = __weak_hash_len_32_with_seeds(__s + __len - 64, __len, __z);\n  pair<_Size, _Size> __w = __weak_hash_len_32_with_seeds(__s + __len - 32, __y + __k1, __x);\n  __x = __x * __k1 + __loadword<_Size>(__s);\n\n  // Decrease len to the nearest multiple of 64, and operate on 64-byte chunks.\n  __len = (__len - 1) & ~static_cast<_Size>(63);\n  do {\n    __x = __rotate(__x + __y + __v.first + __loadword<_Size>(__s + 8), 37) * __k1;\n    __y = __rotate(__y + __v.second + __loadword<_Size>(__s + 48), 42) * __k1;\n    __x ^= __w.second;\n    __y += __v.first + __loadword<_Size>(__s + 40);\n    __z = __rotate(__z + __w.first, 33) * __k1;\n    __v = __weak_hash_len_32_with_seeds(__s, __v.second * __k1, __x + __w.first);\n    __w = __weak_hash_len_32_with_seeds(__s + 32, __z + __w.second,\n                                        __y + __loadword<_Size>(__s + 16));\n    std::swap(__z, __x);\n    __s += 64;\n    __len -= 64;\n  } while (__len != 0);\n  return __hash_len_16(\n      __hash_len_16(__v.first, __w.first) + __shift_mix(__y) * __k1 + __z,\n      __hash_len_16(__v.second, __w.second) + __x);\n}\n\ntemplate <class _Tp, size_t = sizeof(_Tp) / sizeof(size_t)>\nstruct __scalar_hash;\n\ntemplate <class _Tp>\nstruct __scalar_hash<_Tp, 0>\n    : public unary_function<_Tp, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(_Tp __v) const _NOEXCEPT\n    {\n        union\n        {\n            _Tp    __t;\n            size_t __a;\n        } __u;\n        __u.__a = 0;\n        __u.__t = __v;\n        return __u.__a;\n    }\n};\n\ntemplate <class _Tp>\nstruct __scalar_hash<_Tp, 1>\n    : public unary_function<_Tp, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(_Tp __v) const _NOEXCEPT\n    {\n        union\n        {\n            _Tp    __t;\n            size_t __a;\n        } __u;\n        __u.__t = __v;\n        return __u.__a;\n    }\n};\n\ntemplate <class _Tp>\nstruct __scalar_hash<_Tp, 2>\n    : public unary_function<_Tp, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(_Tp __v) const _NOEXCEPT\n    {\n        union\n        {\n            _Tp __t;\n            struct\n            {\n                size_t __a;\n                size_t __b;\n            } __s;\n        } __u;\n        __u.__t = __v;\n        return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));\n    }\n};\n\ntemplate <class _Tp>\nstruct __scalar_hash<_Tp, 3>\n    : public unary_function<_Tp, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(_Tp __v) const _NOEXCEPT\n    {\n        union\n        {\n            _Tp __t;\n            struct\n            {\n                size_t __a;\n                size_t __b;\n                size_t __c;\n            } __s;\n        } __u;\n        __u.__t = __v;\n        return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));\n    }\n};\n\ntemplate <class _Tp>\nstruct __scalar_hash<_Tp, 4>\n    : public unary_function<_Tp, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(_Tp __v) const _NOEXCEPT\n    {\n        union\n        {\n            _Tp __t;\n            struct\n            {\n                size_t __a;\n                size_t __b;\n                size_t __c;\n                size_t __d;\n            } __s;\n        } __u;\n        __u.__t = __v;\n        return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));\n    }\n};\n\nstruct _PairT {\n  size_t first;\n  size_t second;\n};\n\n_LIBCPP_INLINE_VISIBILITY\ninline size_t __hash_combine(size_t __lhs, size_t __rhs) _NOEXCEPT {\n    typedef __scalar_hash<_PairT> _HashT;\n    const _PairT __p = {__lhs, __rhs};\n    return _HashT()(__p);\n}\n\ntemplate<class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS hash<_Tp*>\n    : public unary_function<_Tp*, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(_Tp* __v) const _NOEXCEPT\n    {\n        union\n        {\n            _Tp* __t;\n            size_t __a;\n        } __u;\n        __u.__t = __v;\n        return __murmur2_or_cityhash<size_t>()(&__u, sizeof(__u));\n    }\n};\n\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<bool>\n    : public unary_function<bool, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(bool __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<char>\n    : public unary_function<char, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(char __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<signed char>\n    : public unary_function<signed char, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(signed char __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<unsigned char>\n    : public unary_function<unsigned char, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(unsigned char __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\n#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<char16_t>\n    : public unary_function<char16_t, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(char16_t __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<char32_t>\n    : public unary_function<char32_t, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(char32_t __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\n#endif  // _LIBCPP_HAS_NO_UNICODE_CHARS\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<wchar_t>\n    : public unary_function<wchar_t, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(wchar_t __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<short>\n    : public unary_function<short, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(short __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<unsigned short>\n    : public unary_function<unsigned short, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(unsigned short __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<int>\n    : public unary_function<int, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(int __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<unsigned int>\n    : public unary_function<unsigned int, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(unsigned int __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<long>\n    : public unary_function<long, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(long __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<unsigned long>\n    : public unary_function<unsigned long, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(unsigned long __v) const _NOEXCEPT {return static_cast<size_t>(__v);}\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<long long>\n    : public __scalar_hash<long long>\n{\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<unsigned long long>\n    : public __scalar_hash<unsigned long long>\n{\n};\n\n#ifndef _LIBCPP_HAS_NO_INT128\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<__int128_t>\n    : public __scalar_hash<__int128_t>\n{\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<__uint128_t>\n    : public __scalar_hash<__uint128_t>\n{\n};\n\n#endif\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<float>\n    : public __scalar_hash<float>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(float __v) const _NOEXCEPT\n    {\n        // -0.0 and 0.0 should return same hash\n       if (__v == 0)\n           return 0;\n        return __scalar_hash<float>::operator()(__v);\n    }\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<double>\n    : public __scalar_hash<double>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(double __v) const _NOEXCEPT\n    {\n        // -0.0 and 0.0 should return same hash\n       if (__v == 0)\n           return 0;\n        return __scalar_hash<double>::operator()(__v);\n    }\n};\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<long double>\n    : public __scalar_hash<long double>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(long double __v) const _NOEXCEPT\n    {\n        // -0.0 and 0.0 should return same hash\n        if (__v == 0)\n            return 0;\n#if defined(__i386__)\n        // Zero out padding bits\n        union\n        {\n            long double __t;\n            struct\n            {\n                size_t __a;\n                size_t __b;\n                size_t __c;\n                size_t __d;\n            } __s;\n        } __u;\n        __u.__s.__a = 0;\n        __u.__s.__b = 0;\n        __u.__s.__c = 0;\n        __u.__s.__d = 0;\n        __u.__t = __v;\n        return __u.__s.__a ^ __u.__s.__b ^ __u.__s.__c ^ __u.__s.__d;\n#elif defined(__x86_64__)\n        // Zero out padding bits\n        union\n        {\n            long double __t;\n            struct\n            {\n                size_t __a;\n                size_t __b;\n            } __s;\n        } __u;\n        __u.__s.__a = 0;\n        __u.__s.__b = 0;\n        __u.__t = __v;\n        return __u.__s.__a ^ __u.__s.__b;\n#else\n        return __scalar_hash<long double>::operator()(__v);\n#endif\n    }\n};\n\n#if _LIBCPP_STD_VER > 11\n\ntemplate <class _Tp, bool = is_enum<_Tp>::value>\nstruct _LIBCPP_TEMPLATE_VIS __enum_hash\n    : public unary_function<_Tp, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(_Tp __v) const _NOEXCEPT\n    {\n        typedef typename underlying_type<_Tp>::type type;\n        return hash<type>{}(static_cast<type>(__v));\n    }\n};\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS __enum_hash<_Tp, false> {\n    __enum_hash() = delete;\n    __enum_hash(__enum_hash const&) = delete;\n    __enum_hash& operator=(__enum_hash const&) = delete;\n};\n\ntemplate <class _Tp>\nstruct _LIBCPP_TEMPLATE_VIS hash : public __enum_hash<_Tp>\n{\n};\n#endif\n\n#if _LIBCPP_STD_VER > 14\n\ntemplate <>\nstruct _LIBCPP_TEMPLATE_VIS hash<nullptr_t>\n  : public unary_function<nullptr_t, size_t>\n{\n  _LIBCPP_INLINE_VISIBILITY\n  size_t operator()(nullptr_t) const _NOEXCEPT {\n    return 662607004ull;\n  }\n};\n#endif\n\n#ifndef _LIBCPP_CXX03_LANG\ntemplate <class _Key, class _Hash>\nusing __check_hash_requirements = integral_constant<bool,\n    is_copy_constructible<_Hash>::value &&\n    is_move_constructible<_Hash>::value &&\n    __invokable_r<size_t, _Hash, _Key const&>::value\n>;\n\ntemplate <class _Key, class _Hash = std::hash<_Key> >\nusing __has_enabled_hash = integral_constant<bool,\n    __check_hash_requirements<_Key, _Hash>::value &&\n    is_default_constructible<_Hash>::value\n>;\n\n#if _LIBCPP_STD_VER > 14\ntemplate <class _Type, class>\nusing __enable_hash_helper_imp = _Type;\n\ntemplate <class _Type, class ..._Keys>\nusing __enable_hash_helper = __enable_hash_helper_imp<_Type,\n  typename enable_if<__all<__has_enabled_hash<_Keys>::value...>::value>::type\n>;\n#else\ntemplate <class _Type, class ...>\nusing __enable_hash_helper = _Type;\n#endif\n\n#endif // !_LIBCPP_CXX03_LANG\n\n_LIBCPP_END_NAMESPACE_STD\n\n#endif  // _LIBCPP_UTILITY\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/valarray",
    "content": "// -*- C++ -*-\n//===-------------------------- valarray ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_VALARRAY\n#define _LIBCPP_VALARRAY\n\n/*\n    valarray synopsis\n\nnamespace std\n{\n\ntemplate<class T>\nclass valarray\n{\npublic:\n    typedef T value_type;\n\n    // construct/destroy:\n    valarray();\n    explicit valarray(size_t n);\n    valarray(const value_type& x, size_t n);\n    valarray(const value_type* px, size_t n);\n    valarray(const valarray& v);\n    valarray(valarray&& v) noexcept;\n    valarray(const slice_array<value_type>& sa);\n    valarray(const gslice_array<value_type>& ga);\n    valarray(const mask_array<value_type>& ma);\n    valarray(const indirect_array<value_type>& ia);\n    valarray(initializer_list<value_type> il);\n    ~valarray();\n\n    // assignment:\n    valarray& operator=(const valarray& v);\n    valarray& operator=(valarray&& v) noexcept;\n    valarray& operator=(initializer_list<value_type> il);\n    valarray& operator=(const value_type& x);\n    valarray& operator=(const slice_array<value_type>& sa);\n    valarray& operator=(const gslice_array<value_type>& ga);\n    valarray& operator=(const mask_array<value_type>& ma);\n    valarray& operator=(const indirect_array<value_type>& ia);\n\n    // element access:\n    const value_type& operator[](size_t i) const;\n    value_type&       operator[](size_t i);\n\n    // subset operations:\n    valarray                   operator[](slice s) const;\n    slice_array<value_type>    operator[](slice s);\n    valarray                   operator[](const gslice& gs) const;\n    gslice_array<value_type>   operator[](const gslice& gs);\n    valarray                   operator[](const valarray<bool>& vb) const;\n    mask_array<value_type>     operator[](const valarray<bool>& vb);\n    valarray                   operator[](const valarray<size_t>& vs) const;\n    indirect_array<value_type> operator[](const valarray<size_t>& vs);\n\n    // unary operators:\n    valarray       operator+() const;\n    valarray       operator-() const;\n    valarray       operator~() const;\n    valarray<bool> operator!() const;\n\n    // computed assignment:\n    valarray& operator*= (const value_type& x);\n    valarray& operator/= (const value_type& x);\n    valarray& operator%= (const value_type& x);\n    valarray& operator+= (const value_type& x);\n    valarray& operator-= (const value_type& x);\n    valarray& operator^= (const value_type& x);\n    valarray& operator&= (const value_type& x);\n    valarray& operator|= (const value_type& x);\n    valarray& operator<<=(const value_type& x);\n    valarray& operator>>=(const value_type& x);\n\n    valarray& operator*= (const valarray& v);\n    valarray& operator/= (const valarray& v);\n    valarray& operator%= (const valarray& v);\n    valarray& operator+= (const valarray& v);\n    valarray& operator-= (const valarray& v);\n    valarray& operator^= (const valarray& v);\n    valarray& operator|= (const valarray& v);\n    valarray& operator&= (const valarray& v);\n    valarray& operator<<=(const valarray& v);\n    valarray& operator>>=(const valarray& v);\n\n    // member functions:\n    void swap(valarray& v) noexcept;\n\n    size_t size() const;\n\n    value_type sum() const;\n    value_type min() const;\n    value_type max() const;\n\n    valarray shift (int i) const;\n    valarray cshift(int i) const;\n    valarray apply(value_type f(value_type)) const;\n    valarray apply(value_type f(const value_type&)) const;\n    void resize(size_t n, value_type x = value_type());\n};\n\nclass slice\n{\npublic:\n    slice();\n    slice(size_t start, size_t size, size_t stride);\n\n    size_t start()  const;\n    size_t size()   const;\n    size_t stride() const;\n};\n\ntemplate <class T>\nclass slice_array\n{\npublic:\n    typedef T value_type;\n\n    const slice_array& operator=(const slice_array& sa) const;\n    void operator=  (const valarray<value_type>& v) const;\n    void operator*= (const valarray<value_type>& v) const;\n    void operator/= (const valarray<value_type>& v) const;\n    void operator%= (const valarray<value_type>& v) const;\n    void operator+= (const valarray<value_type>& v) const;\n    void operator-= (const valarray<value_type>& v) const;\n    void operator^= (const valarray<value_type>& v) const;\n    void operator&= (const valarray<value_type>& v) const;\n    void operator|= (const valarray<value_type>& v) const;\n    void operator<<=(const valarray<value_type>& v) const;\n    void operator>>=(const valarray<value_type>& v) const;\n\n    void operator=(const value_type& x) const;\n\n    slice_array() = delete;\n};\n\nclass gslice\n{\npublic:\n    gslice();\n    gslice(size_t start, const valarray<size_t>& size,\n                         const valarray<size_t>& stride);\n\n    size_t           start()  const;\n    valarray<size_t> size()   const;\n    valarray<size_t> stride() const;\n};\n\ntemplate <class T>\nclass gslice_array\n{\npublic:\n    typedef T value_type;\n\n    void operator=  (const valarray<value_type>& v) const;\n    void operator*= (const valarray<value_type>& v) const;\n    void operator/= (const valarray<value_type>& v) const;\n    void operator%= (const valarray<value_type>& v) const;\n    void operator+= (const valarray<value_type>& v) const;\n    void operator-= (const valarray<value_type>& v) const;\n    void operator^= (const valarray<value_type>& v) const;\n    void operator&= (const valarray<value_type>& v) const;\n    void operator|= (const valarray<value_type>& v) const;\n    void operator<<=(const valarray<value_type>& v) const;\n    void operator>>=(const valarray<value_type>& v) const;\n\n    gslice_array(const gslice_array& ga);\n    ~gslice_array();\n    const gslice_array& operator=(const gslice_array& ga) const;\n    void operator=(const value_type& x) const;\n\n    gslice_array() = delete;\n};\n\ntemplate <class T>\nclass mask_array\n{\npublic:\n    typedef T value_type;\n\n    void operator=  (const valarray<value_type>& v) const;\n    void operator*= (const valarray<value_type>& v) const;\n    void operator/= (const valarray<value_type>& v) const;\n    void operator%= (const valarray<value_type>& v) const;\n    void operator+= (const valarray<value_type>& v) const;\n    void operator-= (const valarray<value_type>& v) const;\n    void operator^= (const valarray<value_type>& v) const;\n    void operator&= (const valarray<value_type>& v) const;\n    void operator|= (const valarray<value_type>& v) const;\n    void operator<<=(const valarray<value_type>& v) const;\n    void operator>>=(const valarray<value_type>& v) const;\n\n    mask_array(const mask_array& ma);\n    ~mask_array();\n    const mask_array& operator=(const mask_array& ma) const;\n    void operator=(const value_type& x) const;\n\n    mask_array() = delete;\n};\n\ntemplate <class T>\nclass indirect_array\n{\npublic:\n    typedef T value_type;\n\n    void operator=  (const valarray<value_type>& v) const;\n    void operator*= (const valarray<value_type>& v) const;\n    void operator/= (const valarray<value_type>& v) const;\n    void operator%= (const valarray<value_type>& v) const;\n    void operator+= (const valarray<value_type>& v) const;\n    void operator-= (const valarray<value_type>& v) const;\n    void operator^= (const valarray<value_type>& v) const;\n    void operator&= (const valarray<value_type>& v) const;\n    void operator|= (const valarray<value_type>& v) const;\n    void operator<<=(const valarray<value_type>& v) const;\n    void operator>>=(const valarray<value_type>& v) const;\n\n    indirect_array(const indirect_array& ia);\n    ~indirect_array();\n    const indirect_array& operator=(const indirect_array& ia) const;\n    void operator=(const value_type& x) const;\n\n    indirect_array() = delete;\n};\n\ntemplate<class T> void swap(valarray<T>& x, valarray<T>& y) noexcept;\n\ntemplate<class T> valarray<T> operator* (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator* (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator* (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator/ (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator/ (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator/ (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator% (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator% (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator% (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator+ (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator+ (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator+ (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator- (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator- (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator- (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator^ (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator^ (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator^ (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator& (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator& (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator& (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator| (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator| (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator| (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator<<(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator<<(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator<<(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> operator>>(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> operator>>(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> operator>>(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<bool> operator&&(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<bool> operator&&(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<bool> operator&&(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<bool> operator||(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<bool> operator||(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<bool> operator||(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<bool> operator==(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<bool> operator==(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<bool> operator==(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<bool> operator!=(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<bool> operator!=(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<bool> operator!=(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<bool> operator< (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<bool> operator< (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<bool> operator< (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<bool> operator> (const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<bool> operator> (const valarray<T>& x, const T& y);\ntemplate<class T> valarray<bool> operator> (const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<bool> operator<=(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<bool> operator<=(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<bool> operator<=(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<bool> operator>=(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<bool> operator>=(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<bool> operator>=(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> abs (const valarray<T>& x);\ntemplate<class T> valarray<T> acos (const valarray<T>& x);\ntemplate<class T> valarray<T> asin (const valarray<T>& x);\ntemplate<class T> valarray<T> atan (const valarray<T>& x);\n\ntemplate<class T> valarray<T> atan2(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> atan2(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> atan2(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> cos (const valarray<T>& x);\ntemplate<class T> valarray<T> cosh (const valarray<T>& x);\ntemplate<class T> valarray<T> exp (const valarray<T>& x);\ntemplate<class T> valarray<T> log (const valarray<T>& x);\ntemplate<class T> valarray<T> log10(const valarray<T>& x);\n\ntemplate<class T> valarray<T> pow(const valarray<T>& x, const valarray<T>& y);\ntemplate<class T> valarray<T> pow(const valarray<T>& x, const T& y);\ntemplate<class T> valarray<T> pow(const T& x, const valarray<T>& y);\n\ntemplate<class T> valarray<T> sin (const valarray<T>& x);\ntemplate<class T> valarray<T> sinh (const valarray<T>& x);\ntemplate<class T> valarray<T> sqrt (const valarray<T>& x);\ntemplate<class T> valarray<T> tan (const valarray<T>& x);\ntemplate<class T> valarray<T> tanh (const valarray<T>& x);\n\ntemplate <class T> unspecified1 begin(valarray<T>& v);\ntemplate <class T> unspecified2 begin(const valarray<T>& v);\ntemplate <class T> unspecified1 end(valarray<T>& v);\ntemplate <class T> unspecified2 end(const valarray<T>& v);\n\n}  // std\n\n*/\n\n#include <__config>\n#include <cstddef>\n#include <cmath>\n#include <initializer_list>\n#include <algorithm>\n#include <functional>\n#include <new>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate<class _Tp> class _LIBCPP_TEMPLATE_VIS valarray;\n\nclass _LIBCPP_TEMPLATE_VIS slice\n{\n    size_t __start_;\n    size_t __size_;\n    size_t __stride_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    slice()\n        : __start_(0),\n          __size_(0),\n          __stride_(0)\n          {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    slice(size_t __start, size_t __size, size_t __stride)\n        : __start_(__start),\n          __size_(__size),\n          __stride_(__stride)\n          {}\n\n    _LIBCPP_INLINE_VISIBILITY size_t start()  const {return __start_;}\n    _LIBCPP_INLINE_VISIBILITY size_t size()   const {return __size_;}\n    _LIBCPP_INLINE_VISIBILITY size_t stride() const {return __stride_;}\n};\n\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS slice_array;\nclass _LIBCPP_TYPE_VIS gslice;\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS gslice_array;\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS mask_array;\ntemplate <class _Tp> class _LIBCPP_TEMPLATE_VIS indirect_array;\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\n_Tp*\nbegin(valarray<_Tp>& __v);\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\nconst _Tp*\nbegin(const valarray<_Tp>& __v);\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\n_Tp*\nend(valarray<_Tp>& __v);\n\ntemplate <class _Tp>\n_LIBCPP_INLINE_VISIBILITY\nconst _Tp*\nend(const valarray<_Tp>& __v);\n\ntemplate <class _Op, class _A0>\nstruct _UnaryOp\n{\n    typedef typename _Op::result_type result_type;\n    typedef typename _A0::value_type value_type;\n\n    _Op __op_;\n    _A0 __a0_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _UnaryOp(const _Op& __op, const _A0& __a0) : __op_(__op), __a0_(__a0) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t __i) const {return __op_(__a0_[__i]);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __a0_.size();}\n};\n\ntemplate <class _Op, class _A0, class _A1>\nstruct _BinaryOp\n{\n    typedef typename _Op::result_type result_type;\n    typedef typename _A0::value_type value_type;\n\n    _Op __op_;\n    _A0 __a0_;\n    _A1 __a1_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _BinaryOp(const _Op& __op, const _A0& __a0, const _A1& __a1)\n        : __op_(__op), __a0_(__a0), __a1_(__a1) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type operator[](size_t __i) const {return __op_(__a0_[__i], __a1_[__i]);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __a0_.size();}\n};\n\ntemplate <class _Tp>\nclass __scalar_expr\n{\npublic:\n    typedef _Tp        value_type;\n    typedef const _Tp& result_type;\nprivate:\n    const value_type& __t_;\n    size_t __s_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __scalar_expr(const value_type& __t, size_t __s) : __t_(__t), __s_(__s) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t) const {return __t_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __s_;}\n};\n\ntemplate <class _Tp>\nstruct __unary_plus : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return +__x;}\n};\n\ntemplate <class _Tp>\nstruct __bit_not  : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return ~__x;}\n};\n\ntemplate <class _Tp>\nstruct __bit_shift_left : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x << __y;}\n};\n\ntemplate <class _Tp>\nstruct __bit_shift_right : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return __x >> __y;}\n};\n\ntemplate <class _Tp, class _Fp>\nstruct __apply_expr   : unary_function<_Tp, _Tp>\n{\nprivate:\n    _Fp __f_;\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __apply_expr(_Fp __f) : __f_(__f) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return __f_(__x);}\n};\n\ntemplate <class _Tp>\nstruct __abs_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return abs(__x);}\n};\n\ntemplate <class _Tp>\nstruct __acos_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return acos(__x);}\n};\n\ntemplate <class _Tp>\nstruct __asin_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return asin(__x);}\n};\n\ntemplate <class _Tp>\nstruct __atan_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return atan(__x);}\n};\n\ntemplate <class _Tp>\nstruct __atan2_expr : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return atan2(__x, __y);}\n};\n\ntemplate <class _Tp>\nstruct __cos_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return cos(__x);}\n};\n\ntemplate <class _Tp>\nstruct __cosh_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return cosh(__x);}\n};\n\ntemplate <class _Tp>\nstruct __exp_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return exp(__x);}\n};\n\ntemplate <class _Tp>\nstruct __log_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return log(__x);}\n};\n\ntemplate <class _Tp>\nstruct __log10_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return log10(__x);}\n};\n\ntemplate <class _Tp>\nstruct __pow_expr : binary_function<_Tp, _Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x, const _Tp& __y) const\n        {return pow(__x, __y);}\n};\n\ntemplate <class _Tp>\nstruct __sin_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return sin(__x);}\n};\n\ntemplate <class _Tp>\nstruct __sinh_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return sinh(__x);}\n};\n\ntemplate <class _Tp>\nstruct __sqrt_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return sqrt(__x);}\n};\n\ntemplate <class _Tp>\nstruct __tan_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return tan(__x);}\n};\n\ntemplate <class _Tp>\nstruct __tanh_expr : unary_function<_Tp, _Tp>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    _Tp operator()(const _Tp& __x) const\n        {return tanh(__x);}\n};\n\ntemplate <class _ValExpr>\nclass __slice_expr\n{\n    typedef typename remove_reference<_ValExpr>::type  _RmExpr;\npublic:\n    typedef typename _RmExpr::value_type value_type;\n    typedef value_type result_type;\n\nprivate:\n    _ValExpr __expr_;\n    size_t __start_;\n    size_t __size_;\n    size_t __stride_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __slice_expr(const slice& __sl, const _RmExpr& __e)\n        : __expr_(__e),\n          __start_(__sl.start()),\n          __size_(__sl.size()),\n          __stride_(__sl.stride())\n        {}\npublic:\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t __i) const\n        {return __expr_[__start_ + __i * __stride_];}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __size_;}\n\n    template <class> friend class _LIBCPP_TEMPLATE_VIS valarray;\n};\n\ntemplate <class _ValExpr>\nclass __mask_expr;\n\ntemplate <class _ValExpr>\nclass __indirect_expr;\n\ntemplate <class _ValExpr>\nclass __shift_expr\n{\n    typedef typename remove_reference<_ValExpr>::type  _RmExpr;\npublic:\n    typedef typename _RmExpr::value_type value_type;\n    typedef value_type result_type;\n\nprivate:\n    _ValExpr __expr_;\n    size_t __size_;\n    ptrdiff_t __ul_;\n    ptrdiff_t __sn_;\n    ptrdiff_t __n_;\n    static const ptrdiff_t _Np = static_cast<ptrdiff_t>(\n                                    sizeof(ptrdiff_t) * __CHAR_BIT__ - 1);\n\n    _LIBCPP_INLINE_VISIBILITY\n    __shift_expr(int __n, const _RmExpr& __e)\n        : __expr_(__e),\n          __size_(__e.size()),\n          __n_(__n)\n        {\n            ptrdiff_t __neg_n = static_cast<ptrdiff_t>(__n_ >> _Np);\n            __sn_ = __neg_n | static_cast<ptrdiff_t>(static_cast<size_t>(-__n_) >> _Np);\n            __ul_ = ((__size_ - __n_) & ~__neg_n) | ((__n_ + 1) & __neg_n);\n        }\npublic:\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t __j) const\n        {\n            ptrdiff_t __i = static_cast<ptrdiff_t>(__j);\n            ptrdiff_t __m = (__sn_ * __i - __ul_) >> _Np;\n            return (__expr_[(__i + __n_) & __m] & __m) | (value_type() & ~__m);\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __size_;}\n\n    template <class> friend class __val_expr;\n};\n\ntemplate <class _ValExpr>\nclass __cshift_expr\n{\n    typedef typename remove_reference<_ValExpr>::type  _RmExpr;\npublic:\n    typedef typename _RmExpr::value_type value_type;\n    typedef value_type result_type;\n\nprivate:\n    _ValExpr __expr_;\n    size_t __size_;\n    size_t __m_;\n    size_t __o1_;\n    size_t __o2_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __cshift_expr(int __n, const _RmExpr& __e)\n        : __expr_(__e),\n          __size_(__e.size())\n        {\n            __n %= static_cast<int>(__size_);\n            if (__n >= 0)\n            {\n                __m_ = __size_ - __n;\n                __o1_ = __n;\n                __o2_ = __n - __size_;\n            }\n            else\n            {\n                __m_ = -__n;\n                __o1_ = __n + __size_;\n                __o2_ = __n;\n            }\n        }\npublic:\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t __i) const\n        {\n            if (__i < __m_)\n                return __expr_[__i + __o1_];\n            return __expr_[__i + __o2_];\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __size_;}\n\n    template <class> friend class __val_expr;\n};\n\ntemplate<class _ValExpr>\nclass __val_expr;\n\ntemplate<class _ValExpr>\nstruct __is_val_expr : false_type {};\n\ntemplate<class _ValExpr>\nstruct __is_val_expr<__val_expr<_ValExpr> > : true_type {};\n\ntemplate<class _Tp>\nstruct __is_val_expr<valarray<_Tp> > : true_type {};\n\ntemplate<class _Tp>\nclass _LIBCPP_TEMPLATE_VIS valarray\n{\npublic:\n    typedef _Tp value_type;\n    typedef _Tp result_type;\n\nprivate:\n    value_type* __begin_;\n    value_type* __end_;\n\npublic:\n    // construct/destroy:\n    _LIBCPP_INLINE_VISIBILITY\n    valarray() : __begin_(0), __end_(0) {}\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    explicit valarray(size_t __n);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray(const value_type& __x, size_t __n);\n    valarray(const value_type* __p, size_t __n);\n    valarray(const valarray& __v);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    valarray(valarray&& __v) _NOEXCEPT;\n    valarray(initializer_list<value_type> __il);\n#endif  // _LIBCPP_CXX03_LANG\n    valarray(const slice_array<value_type>& __sa);\n    valarray(const gslice_array<value_type>& __ga);\n    valarray(const mask_array<value_type>& __ma);\n    valarray(const indirect_array<value_type>& __ia);\n    inline _LIBCPP_EXTERN_TEMPLATE_INLINE_VISIBILITY\n    ~valarray();\n\n    // assignment:\n    valarray& operator=(const valarray& __v);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator=(valarray&& __v) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator=(initializer_list<value_type>);\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator=(const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator=(const slice_array<value_type>& __sa);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator=(const gslice_array<value_type>& __ga);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator=(const mask_array<value_type>& __ma);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator=(const indirect_array<value_type>& __ia);\n    template <class _ValExpr>\n        _LIBCPP_INLINE_VISIBILITY\n        valarray& operator=(const __val_expr<_ValExpr>& __v);\n\n    // element access:\n    _LIBCPP_INLINE_VISIBILITY\n    const value_type& operator[](size_t __i) const {return __begin_[__i];}\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type&       operator[](size_t __i)       {return __begin_[__i];}\n\n    // subset operations:\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__slice_expr<const valarray&> >    operator[](slice __s) const;\n    _LIBCPP_INLINE_VISIBILITY\n    slice_array<value_type>                       operator[](slice __s);\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__indirect_expr<const valarray&> > operator[](const gslice& __gs) const;\n    _LIBCPP_INLINE_VISIBILITY\n    gslice_array<value_type>   operator[](const gslice& __gs);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__indirect_expr<const valarray&> > operator[](gslice&& __gs) const;\n    _LIBCPP_INLINE_VISIBILITY\n    gslice_array<value_type>                      operator[](gslice&& __gs);\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__mask_expr<const valarray&> >     operator[](const valarray<bool>& __vb) const;\n    _LIBCPP_INLINE_VISIBILITY\n    mask_array<value_type>                        operator[](const valarray<bool>& __vb);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__mask_expr<const valarray&> >     operator[](valarray<bool>&& __vb) const;\n    _LIBCPP_INLINE_VISIBILITY\n    mask_array<value_type>                        operator[](valarray<bool>&& __vb);\n#endif  // _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__indirect_expr<const valarray&> > operator[](const valarray<size_t>& __vs) const;\n    _LIBCPP_INLINE_VISIBILITY\n    indirect_array<value_type>                    operator[](const valarray<size_t>& __vs);\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__indirect_expr<const valarray&> > operator[](valarray<size_t>&& __vs) const;\n    _LIBCPP_INLINE_VISIBILITY\n    indirect_array<value_type>                    operator[](valarray<size_t>&& __vs);\n#endif  // _LIBCPP_CXX03_LANG\n\n    // unary operators:\n    valarray       operator+() const;\n    valarray       operator-() const;\n    valarray       operator~() const;\n    valarray<bool> operator!() const;\n\n    // computed assignment:\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator*= (const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator/= (const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator%= (const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator+= (const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator-= (const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator^= (const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator&= (const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator|= (const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator<<=(const value_type& __x);\n    _LIBCPP_INLINE_VISIBILITY\n    valarray& operator>>=(const value_type& __x);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator*= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator/= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator%= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator+= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator-= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator^= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator|= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator&= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator<<= (const _Expr& __v);\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        valarray&\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator>>= (const _Expr& __v);\n\n    // member functions:\n    _LIBCPP_INLINE_VISIBILITY\n    void swap(valarray& __v) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return static_cast<size_t>(__end_ - __begin_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type sum() const;\n    _LIBCPP_INLINE_VISIBILITY\n    value_type min() const;\n    _LIBCPP_INLINE_VISIBILITY\n    value_type max() const;\n\n    valarray shift (int __i) const;\n    valarray cshift(int __i) const;\n    valarray apply(value_type __f(value_type)) const;\n    valarray apply(value_type __f(const value_type&)) const;\n    void     resize(size_t __n, value_type __x = value_type());\n\nprivate:\n    template <class> friend class _LIBCPP_TEMPLATE_VIS valarray;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS slice_array;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS gslice_array;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS mask_array;\n    template <class> friend class __mask_expr;\n    template <class> friend class _LIBCPP_TEMPLATE_VIS indirect_array;\n    template <class> friend class __indirect_expr;\n    template <class> friend class __val_expr;\n\n    template <class _Up>\n    friend\n    _Up*\n    begin(valarray<_Up>& __v);\n\n    template <class _Up>\n    friend\n    const _Up*\n    begin(const valarray<_Up>& __v);\n\n    template <class _Up>\n    friend\n    _Up*\n    end(valarray<_Up>& __v);\n\n    template <class _Up>\n    friend\n    const _Up*\n    end(const valarray<_Up>& __v);\n};\n\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS valarray<size_t>::valarray(size_t))\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS valarray<size_t>::~valarray())\n_LIBCPP_EXTERN_TEMPLATE(_LIBCPP_FUNC_VIS void valarray<size_t>::resize(size_t, size_t))\n\ntemplate <class _Op, class _Tp>\nstruct _UnaryOp<_Op, valarray<_Tp> >\n{\n    typedef typename _Op::result_type result_type;\n    typedef _Tp value_type;\n\n    _Op __op_;\n    const valarray<_Tp>& __a0_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _UnaryOp(const _Op& __op, const valarray<_Tp>& __a0) : __op_(__op), __a0_(__a0) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t __i) const {return __op_(__a0_[__i]);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __a0_.size();}\n};\n\ntemplate <class _Op, class _Tp, class _A1>\nstruct _BinaryOp<_Op, valarray<_Tp>, _A1>\n{\n    typedef typename _Op::result_type result_type;\n    typedef _Tp value_type;\n\n    _Op __op_;\n    const valarray<_Tp>& __a0_;\n    _A1 __a1_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _BinaryOp(const _Op& __op, const valarray<_Tp>& __a0, const _A1& __a1)\n        : __op_(__op), __a0_(__a0), __a1_(__a1) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type operator[](size_t __i) const {return __op_(__a0_[__i], __a1_[__i]);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __a0_.size();}\n};\n\ntemplate <class _Op, class _A0, class _Tp>\nstruct _BinaryOp<_Op, _A0, valarray<_Tp> >\n{\n    typedef typename _Op::result_type result_type;\n    typedef _Tp value_type;\n\n    _Op __op_;\n    _A0 __a0_;\n    const valarray<_Tp>& __a1_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _BinaryOp(const _Op& __op, const _A0& __a0, const valarray<_Tp>& __a1)\n        : __op_(__op), __a0_(__a0), __a1_(__a1) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type operator[](size_t __i) const {return __op_(__a0_[__i], __a1_[__i]);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __a0_.size();}\n};\n\ntemplate <class _Op, class _Tp>\nstruct _BinaryOp<_Op, valarray<_Tp>, valarray<_Tp> >\n{\n    typedef typename _Op::result_type result_type;\n    typedef _Tp value_type;\n\n    _Op __op_;\n    const valarray<_Tp>& __a0_;\n    const valarray<_Tp>& __a1_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    _BinaryOp(const _Op& __op, const valarray<_Tp>& __a0, const valarray<_Tp>& __a1)\n        : __op_(__op), __a0_(__a0), __a1_(__a1) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type operator[](size_t __i) const {return __op_(__a0_[__i], __a1_[__i]);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __a0_.size();}\n};\n\n// slice_array\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS slice_array\n{\npublic:\n    typedef _Tp value_type;\n\nprivate:\n    value_type* __vp_;\n    size_t __size_;\n    size_t __stride_;\n\npublic:\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator*=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator/=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator%=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator+=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator-=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator^=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator&=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator|=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator<<=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator>>=(const _Expr& __v) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    const slice_array& operator=(const slice_array& __sa) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator=(const value_type& __x) const;\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    slice_array(const slice& __sl, const valarray<value_type>& __v)\n        : __vp_(const_cast<value_type*>(__v.__begin_ + __sl.start())),\n          __size_(__sl.size()),\n          __stride_(__sl.stride())\n        {}\n\n    template <class> friend class valarray;\n    template <class> friend class sliceExpr;\n};\n\ntemplate <class _Tp>\ninline\nconst slice_array<_Tp>&\nslice_array<_Tp>::operator=(const slice_array& __sa) const\n{\n    value_type* __t = __vp_;\n    const value_type* __s = __sa.__vp_;\n    for (size_t __n = __size_; __n; --__n, __t += __stride_, __s += __sa.__stride_)\n        *__t = *__s;\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t = __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator*=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t *= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator/=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t /= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator%=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t %= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator+=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t += __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator-=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t -= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator^=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t ^= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator&=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t &= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator|=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t |= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator<<=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t <<= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nslice_array<_Tp>::operator>>=(const _Expr& __v) const\n{\n    value_type* __t = __vp_;\n    for (size_t __i = 0; __i < __size_; ++__i, __t += __stride_)\n        *__t >>= __v[__i];\n}\n\ntemplate <class _Tp>\ninline\nvoid\nslice_array<_Tp>::operator=(const value_type& __x) const\n{\n    value_type* __t = __vp_;\n    for (size_t __n = __size_; __n; --__n, __t += __stride_)\n        *__t = __x;\n}\n\n// gslice\n\nclass _LIBCPP_TYPE_VIS gslice\n{\n    valarray<size_t> __size_;\n    valarray<size_t> __stride_;\n    valarray<size_t> __1d_;\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    gslice() {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    gslice(size_t __start, const valarray<size_t>& __size,\n                           const valarray<size_t>& __stride)\n        : __size_(__size),\n          __stride_(__stride)\n        {__init(__start);}\n\n#ifndef _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    gslice(size_t __start, const valarray<size_t>&  __size,\n                                 valarray<size_t>&& __stride)\n        : __size_(__size),\n          __stride_(move(__stride))\n        {__init(__start);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    gslice(size_t __start,       valarray<size_t>&& __size,\n                           const valarray<size_t>&  __stride)\n        : __size_(move(__size)),\n          __stride_(__stride)\n        {__init(__start);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    gslice(size_t __start,       valarray<size_t>&& __size,\n                                 valarray<size_t>&& __stride)\n        : __size_(move(__size)),\n          __stride_(move(__stride))\n        {__init(__start);}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n//  gslice(const gslice&)            = default;\n//  gslice(gslice&&)                 = default;\n//  gslice& operator=(const gslice&) = default;\n//  gslice& operator=(gslice&&)      = default;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t           start()  const {return __1d_.size() ? __1d_[0] : 0;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    valarray<size_t> size()   const {return __size_;}\n\n    _LIBCPP_INLINE_VISIBILITY\n    valarray<size_t> stride() const {return __stride_;}\n\nprivate:\n    void __init(size_t __start);\n\n    template <class> friend class gslice_array;\n    template <class> friend class valarray;\n    template <class> friend class __val_expr;\n};\n\n// gslice_array\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS gslice_array\n{\npublic:\n    typedef _Tp value_type;\n\nprivate:\n    value_type*      __vp_;\n    valarray<size_t> __1d_;\n\npublic:\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator*=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator/=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator%=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator+=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator-=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator^=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator&=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator|=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator<<=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator>>=(const _Expr& __v) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    const gslice_array& operator=(const gslice_array& __ga) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator=(const value_type& __x) const;\n\n//  gslice_array(const gslice_array&)            = default;\n//  gslice_array(gslice_array&&)                 = default;\n//  gslice_array& operator=(const gslice_array&) = default;\n//  gslice_array& operator=(gslice_array&&)      = default;\n\nprivate:\n    gslice_array(const gslice& __gs, const valarray<value_type>& __v)\n        : __vp_(const_cast<value_type*>(__v.__begin_)),\n          __1d_(__gs.__1d_)\n        {}\n\n#ifndef _LIBCPP_CXX03_LANG\n    gslice_array(gslice&& __gs, const valarray<value_type>& __v)\n        : __vp_(const_cast<value_type*>(__v.__begin_)),\n          __1d_(move(__gs.__1d_))\n        {}\n#endif  // _LIBCPP_CXX03_LANG\n\n    template <class> friend class valarray;\n};\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] = __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator*=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] *= __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator/=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] /= __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator%=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] %= __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator+=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] += __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator-=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] -= __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator^=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] ^= __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator&=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] &= __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator|=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] |= __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator<<=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] <<= __v[__j];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\ngslice_array<_Tp>::operator>>=(const _Expr& __v) const\n{\n    typedef const size_t* _Ip;\n    size_t __j = 0;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i, ++__j)\n        __vp_[*__i] >>= __v[__j];\n}\n\ntemplate <class _Tp>\ninline\nconst gslice_array<_Tp>&\ngslice_array<_Tp>::operator=(const gslice_array& __ga) const\n{\n    typedef const size_t* _Ip;\n    const value_type* __s = __ga.__vp_;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_, __j = __ga.__1d_.__begin_;\n            __i != __e; ++__i, ++__j)\n        __vp_[*__i] = __s[*__j];\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvoid\ngslice_array<_Tp>::operator=(const value_type& __x) const\n{\n    typedef const size_t* _Ip;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i)\n        __vp_[*__i] = __x;\n}\n\n// mask_array\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS mask_array\n{\npublic:\n    typedef _Tp value_type;\n\nprivate:\n    value_type*      __vp_;\n    valarray<size_t> __1d_;\n\npublic:\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator*=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator/=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator%=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator+=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator-=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator^=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator&=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator|=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator<<=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator>>=(const _Expr& __v) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    const mask_array& operator=(const mask_array& __ma) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator=(const value_type& __x) const;\n\n//  mask_array(const mask_array&)            = default;\n//  mask_array(mask_array&&)                 = default;\n//  mask_array& operator=(const mask_array&) = default;\n//  mask_array& operator=(mask_array&&)      = default;\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    mask_array(const valarray<bool>& __vb, const valarray<value_type>& __v)\n        : __vp_(const_cast<value_type*>(__v.__begin_)),\n          __1d_(static_cast<size_t>(count(__vb.__begin_, __vb.__end_, true)))\n          {\n              size_t __j = 0;\n              for (size_t __i = 0; __i < __vb.size(); ++__i)\n                  if (__vb[__i])\n                      __1d_[__j++] = __i;\n          }\n\n    template <class> friend class valarray;\n};\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] = __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator*=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] *= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator/=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] /= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator%=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] %= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator+=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] += __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator-=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] -= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator^=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] ^= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator&=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] &= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator|=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] |= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator<<=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] <<= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nmask_array<_Tp>::operator>>=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] >>= __v[__i];\n}\n\ntemplate <class _Tp>\ninline\nconst mask_array<_Tp>&\nmask_array<_Tp>::operator=(const mask_array& __ma) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] = __ma.__vp_[__1d_[__i]];\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvoid\nmask_array<_Tp>::operator=(const value_type& __x) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] = __x;\n}\n\ntemplate <class _ValExpr>\nclass __mask_expr\n{\n    typedef typename remove_reference<_ValExpr>::type  _RmExpr;\npublic:\n    typedef typename _RmExpr::value_type value_type;\n    typedef value_type result_type;\n\nprivate:\n    _ValExpr __expr_;\n    valarray<size_t> __1d_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __mask_expr(const valarray<bool>& __vb, const _RmExpr& __e)\n        : __expr_(__e),\n          __1d_(static_cast<size_t>(count(__vb.__begin_, __vb.__end_, true)))\n          {\n              size_t __j = 0;\n              for (size_t __i = 0; __i < __vb.size(); ++__i)\n                  if (__vb[__i])\n                      __1d_[__j++] = __i;\n          }\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t __i) const\n        {return __expr_[__1d_[__i]];}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __1d_.size();}\n\n    template <class> friend class valarray;\n};\n\n// indirect_array\n\ntemplate <class _Tp>\nclass _LIBCPP_TEMPLATE_VIS indirect_array\n{\npublic:\n    typedef _Tp value_type;\n\nprivate:\n    value_type*      __vp_;\n    valarray<size_t> __1d_;\n\npublic:\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator*=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator/=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator%=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator+=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator-=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator^=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator&=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator|=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator<<=(const _Expr& __v) const;\n\n    template <class _Expr>\n    typename enable_if\n    <\n        __is_val_expr<_Expr>::value,\n        void\n    >::type\n    _LIBCPP_INLINE_VISIBILITY\n    operator>>=(const _Expr& __v) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    const indirect_array& operator=(const indirect_array& __ia) const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void operator=(const value_type& __x) const;\n\n//  indirect_array(const indirect_array&)            = default;\n//  indirect_array(indirect_array&&)                 = default;\n//  indirect_array& operator=(const indirect_array&) = default;\n//  indirect_array& operator=(indirect_array&&)      = default;\n\nprivate:\n     _LIBCPP_INLINE_VISIBILITY\n   indirect_array(const valarray<size_t>& __ia, const valarray<value_type>& __v)\n        : __vp_(const_cast<value_type*>(__v.__begin_)),\n          __1d_(__ia)\n        {}\n\n#ifndef _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    indirect_array(valarray<size_t>&& __ia, const valarray<value_type>& __v)\n        : __vp_(const_cast<value_type*>(__v.__begin_)),\n          __1d_(move(__ia))\n        {}\n\n#endif  // _LIBCPP_CXX03_LANG\n\n    template <class> friend class valarray;\n};\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] = __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator*=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] *= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator/=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] /= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator%=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] %= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator+=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] += __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator-=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] -= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator^=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] ^= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator&=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] &= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator|=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] |= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator<<=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] <<= __v[__i];\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    void\n>::type\nindirect_array<_Tp>::operator>>=(const _Expr& __v) const\n{\n    size_t __n = __1d_.size();\n    for (size_t __i = 0; __i < __n; ++__i)\n        __vp_[__1d_[__i]] >>= __v[__i];\n}\n\ntemplate <class _Tp>\ninline\nconst indirect_array<_Tp>&\nindirect_array<_Tp>::operator=(const indirect_array& __ia) const\n{\n    typedef const size_t* _Ip;\n    const value_type* __s = __ia.__vp_;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_, __j = __ia.__1d_.__begin_;\n            __i != __e; ++__i, ++__j)\n        __vp_[*__i] = __s[*__j];\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvoid\nindirect_array<_Tp>::operator=(const value_type& __x) const\n{\n    typedef const size_t* _Ip;\n    for (_Ip __i = __1d_.__begin_, __e = __1d_.__end_; __i != __e; ++__i)\n        __vp_[*__i] = __x;\n}\n\ntemplate <class _ValExpr>\nclass __indirect_expr\n{\n    typedef typename remove_reference<_ValExpr>::type  _RmExpr;\npublic:\n    typedef typename _RmExpr::value_type value_type;\n    typedef value_type result_type;\n\nprivate:\n    _ValExpr __expr_;\n    valarray<size_t> __1d_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    __indirect_expr(const valarray<size_t>& __ia, const _RmExpr& __e)\n        : __expr_(__e),\n          __1d_(__ia)\n          {}\n\n#ifndef _LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    __indirect_expr(valarray<size_t>&& __ia, const _RmExpr& __e)\n        : __expr_(__e),\n          __1d_(move(__ia))\n          {}\n\n#endif  // _LIBCPP_CXX03_LANG\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t __i) const\n        {return __expr_[__1d_[__i]];}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __1d_.size();}\n\n    template <class> friend class _LIBCPP_TEMPLATE_VIS valarray;\n};\n\ntemplate<class _ValExpr>\nclass __val_expr\n{\n    typedef typename remove_reference<_ValExpr>::type  _RmExpr;\n\n    _ValExpr __expr_;\npublic:\n    typedef typename _RmExpr::value_type value_type;\n    typedef typename _RmExpr::result_type result_type;\n\n    _LIBCPP_INLINE_VISIBILITY\n    explicit __val_expr(const _RmExpr& __e) : __expr_(__e) {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type operator[](size_t __i) const\n        {return __expr_[__i];}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__slice_expr<_ValExpr> > operator[](slice __s) const\n        {return __val_expr<__slice_expr<_ValExpr> >(__expr_, __s);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__indirect_expr<_ValExpr> > operator[](const gslice& __gs) const\n        {return __val_expr<__indirect_expr<_ValExpr> >(__expr_, __gs.__1d_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__mask_expr<_ValExpr> > operator[](const valarray<bool>& __vb) const\n        {return __val_expr<__mask_expr<_ValExpr> >(__expr_, __vb);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__indirect_expr<_ValExpr> > operator[](const valarray<size_t>& __vs) const\n        {return __val_expr<__indirect_expr<_ValExpr> >(__expr_, __vs);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<_UnaryOp<__unary_plus<value_type>, _ValExpr> >\n    operator+() const\n    {\n        typedef _UnaryOp<__unary_plus<value_type>, _ValExpr> _NewExpr;\n        return __val_expr<_NewExpr>(_NewExpr(__unary_plus<value_type>(), __expr_));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<_UnaryOp<negate<value_type>, _ValExpr> >\n    operator-() const\n    {\n        typedef _UnaryOp<negate<value_type>, _ValExpr> _NewExpr;\n        return __val_expr<_NewExpr>(_NewExpr(negate<value_type>(), __expr_));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<_UnaryOp<__bit_not<value_type>, _ValExpr> >\n    operator~() const\n    {\n        typedef _UnaryOp<__bit_not<value_type>, _ValExpr> _NewExpr;\n        return __val_expr<_NewExpr>(_NewExpr(__bit_not<value_type>(), __expr_));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<_UnaryOp<logical_not<value_type>, _ValExpr> >\n    operator!() const\n    {\n        typedef _UnaryOp<logical_not<value_type>, _ValExpr> _NewExpr;\n        return __val_expr<_NewExpr>(_NewExpr(logical_not<value_type>(), __expr_));\n    }\n\n    operator valarray<result_type>() const;\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_t size() const {return __expr_.size();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type sum() const\n    {\n        size_t __n = __expr_.size();\n        result_type __r = __n ? __expr_[0] : result_type();\n        for (size_t __i = 1; __i < __n; ++__i)\n            __r += __expr_[__i];\n        return __r;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type min() const\n    {\n        size_t __n = size();\n        result_type __r = __n ? (*this)[0] : result_type();\n        for (size_t __i = 1; __i < __n; ++__i)\n        {\n            result_type __x = __expr_[__i];\n            if (__x < __r)\n                __r = __x;\n        }\n        return __r;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    result_type max() const\n    {\n        size_t __n = size();\n        result_type __r = __n ? (*this)[0] : result_type();\n        for (size_t __i = 1; __i < __n; ++__i)\n        {\n            result_type __x = __expr_[__i];\n            if (__r < __x)\n                __r = __x;\n        }\n        return __r;\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__shift_expr<_ValExpr> > shift (int __i) const\n        {return __val_expr<__shift_expr<_ValExpr> >(__shift_expr<_ValExpr>(__i, __expr_));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<__cshift_expr<_ValExpr> > cshift(int __i) const\n        {return __val_expr<__cshift_expr<_ValExpr> >(__cshift_expr<_ValExpr>(__i, __expr_));}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<_UnaryOp<__apply_expr<value_type, value_type(*)(value_type)>, _ValExpr> >\n    apply(value_type __f(value_type)) const\n    {\n        typedef __apply_expr<value_type, value_type(*)(value_type)> _Op;\n        typedef _UnaryOp<_Op, _ValExpr> _NewExpr;\n        return __val_expr<_NewExpr>(_NewExpr(_Op(__f), __expr_));\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    __val_expr<_UnaryOp<__apply_expr<value_type, value_type(*)(const value_type&)>, _ValExpr> >\n    apply(value_type __f(const value_type&)) const\n    {\n        typedef __apply_expr<value_type, value_type(*)(const value_type&)> _Op;\n        typedef _UnaryOp<_Op, _ValExpr> _NewExpr;\n        return __val_expr<_NewExpr>(_NewExpr(_Op(__f), __expr_));\n    }\n};\n\ntemplate<class _ValExpr>\n__val_expr<_ValExpr>::operator valarray<__val_expr::result_type>() const\n{\n    valarray<result_type> __r;\n    size_t __n = __expr_.size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<result_type*>(_VSTD::__allocate(__n * sizeof(result_type)));\n        for (size_t __i = 0; __i != __n; ++__r.__end_, ++__i)\n            ::new (__r.__end_) result_type(__expr_[__i]);\n    }\n    return __r;\n}\n\n// valarray\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>::valarray(size_t __n)\n    : __begin_(0),\n      __end_(0)\n{\n    resize(__n);\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>::valarray(const value_type& __x, size_t __n)\n    : __begin_(0),\n      __end_(0)\n{\n    resize(__n, __x);\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>::valarray(const value_type* __p, size_t __n)\n    : __begin_(0),\n      __end_(0)\n{\n    if (__n)\n    {\n        __begin_ = __end_ = static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (; __n; ++__end_, ++__p, --__n)\n                ::new (__end_) value_type(*__p);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            resize(0);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>::valarray(const valarray& __v)\n    : __begin_(0),\n      __end_(0)\n{\n    if (__v.size())\n    {\n        __begin_ = __end_ = static_cast<value_type*>(_VSTD::__allocate(__v.size() * sizeof(value_type)));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (value_type* __p = __v.__begin_; __p != __v.__end_; ++__end_, ++__p)\n                ::new (__end_) value_type(*__p);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            resize(0);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>::valarray(valarray&& __v) _NOEXCEPT\n    : __begin_(__v.__begin_),\n      __end_(__v.__end_)\n{\n    __v.__begin_ = __v.__end_ = nullptr;\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>::valarray(initializer_list<value_type> __il)\n    : __begin_(0),\n      __end_(0)\n{\n    size_t __n = __il.size();\n    if (__n)\n    {\n        __begin_ = __end_ = static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (const value_type* __p = __il.begin(); __n; ++__end_, ++__p, --__n)\n                ::new (__end_) value_type(*__p);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            resize(0);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\nvalarray<_Tp>::valarray(const slice_array<value_type>& __sa)\n    : __begin_(0),\n      __end_(0)\n{\n    size_t __n = __sa.__size_;\n    if (__n)\n    {\n        __begin_ = __end_ = static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (const value_type* __p = __sa.__vp_; __n; ++__end_, __p += __sa.__stride_, --__n)\n                ::new (__end_) value_type(*__p);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            resize(0);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>::valarray(const gslice_array<value_type>& __ga)\n    : __begin_(0),\n      __end_(0)\n{\n    size_t __n = __ga.__1d_.size();\n    if (__n)\n    {\n        __begin_ = __end_ = static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            typedef const size_t* _Ip;\n            const value_type* __s = __ga.__vp_;\n            for (_Ip __i = __ga.__1d_.__begin_, __e = __ga.__1d_.__end_;\n                    __i != __e; ++__i, ++__end_)\n                ::new (__end_) value_type(__s[*__i]);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            resize(0);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>::valarray(const mask_array<value_type>& __ma)\n    : __begin_(0),\n      __end_(0)\n{\n    size_t __n = __ma.__1d_.size();\n    if (__n)\n    {\n        __begin_ = __end_ = static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            typedef const size_t* _Ip;\n            const value_type* __s = __ma.__vp_;\n            for (_Ip __i = __ma.__1d_.__begin_, __e = __ma.__1d_.__end_;\n                    __i != __e; ++__i, ++__end_)\n                ::new (__end_) value_type(__s[*__i]);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            resize(0);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>::valarray(const indirect_array<value_type>& __ia)\n    : __begin_(0),\n      __end_(0)\n{\n    size_t __n = __ia.__1d_.size();\n    if (__n)\n    {\n        __begin_ = __end_ = static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            typedef const size_t* _Ip;\n            const value_type* __s = __ia.__vp_;\n            for (_Ip __i = __ia.__1d_.__begin_, __e = __ia.__1d_.__end_;\n                    __i != __e; ++__i, ++__end_)\n                ::new (__end_) value_type(__s[*__i]);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            resize(0);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>::~valarray()\n{\n    resize(0);\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(const valarray& __v)\n{\n    if (this != &__v)\n    {\n        if (size() != __v.size())\n            resize(__v.size());\n        _VSTD::copy(__v.__begin_, __v.__end_, __begin_);\n    }\n    return *this;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(valarray&& __v) _NOEXCEPT\n{\n    resize(0);\n    __begin_ = __v.__begin_;\n    __end_ = __v.__end_;\n    __v.__begin_ = nullptr;\n    __v.__end_ = nullptr;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(initializer_list<value_type> __il)\n{\n    if (size() != __il.size())\n        resize(__il.size());\n    _VSTD::copy(__il.begin(), __il.end(), __begin_);\n    return *this;\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(const value_type& __x)\n{\n    _VSTD::fill(__begin_, __end_, __x);\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(const slice_array<value_type>& __sa)\n{\n    value_type* __t = __begin_;\n    const value_type* __s = __sa.__vp_;\n    for (size_t __n = __sa.__size_; __n; --__n, __s += __sa.__stride_, ++__t)\n        *__t = *__s;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(const gslice_array<value_type>& __ga)\n{\n    typedef const size_t* _Ip;\n    value_type* __t = __begin_;\n    const value_type* __s = __ga.__vp_;\n    for (_Ip __i = __ga.__1d_.__begin_, __e = __ga.__1d_.__end_;\n                    __i != __e; ++__i, ++__t)\n        *__t = __s[*__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(const mask_array<value_type>& __ma)\n{\n    typedef const size_t* _Ip;\n    value_type* __t = __begin_;\n    const value_type* __s = __ma.__vp_;\n    for (_Ip __i = __ma.__1d_.__begin_, __e = __ma.__1d_.__end_;\n                    __i != __e; ++__i, ++__t)\n        *__t = __s[*__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(const indirect_array<value_type>& __ia)\n{\n    typedef const size_t* _Ip;\n    value_type* __t = __begin_;\n    const value_type* __s = __ia.__vp_;\n    for (_Ip __i = __ia.__1d_.__begin_, __e = __ia.__1d_.__end_;\n                    __i != __e; ++__i, ++__t)\n        *__t = __s[*__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _ValExpr>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator=(const __val_expr<_ValExpr>& __v)\n{\n    size_t __n = __v.size();\n    if (size() != __n)\n        resize(__n);\n    value_type* __t = __begin_;\n    for (size_t __i = 0; __i != __n; ++__t, ++__i)\n        *__t = result_type(__v[__i]);\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\n__val_expr<__slice_expr<const valarray<_Tp>&> >\nvalarray<_Tp>::operator[](slice __s) const\n{\n    return __val_expr<__slice_expr<const valarray&> >(__slice_expr<const valarray&>(__s, *this));\n}\n\ntemplate <class _Tp>\ninline\nslice_array<_Tp>\nvalarray<_Tp>::operator[](slice __s)\n{\n    return slice_array<value_type>(__s, *this);\n}\n\ntemplate <class _Tp>\ninline\n__val_expr<__indirect_expr<const valarray<_Tp>&> >\nvalarray<_Tp>::operator[](const gslice& __gs) const\n{\n    return __val_expr<__indirect_expr<const valarray&> >(__indirect_expr<const valarray&>(__gs.__1d_, *this));\n}\n\ntemplate <class _Tp>\ninline\ngslice_array<_Tp>\nvalarray<_Tp>::operator[](const gslice& __gs)\n{\n    return gslice_array<value_type>(__gs, *this);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\ninline\n__val_expr<__indirect_expr<const valarray<_Tp>&> >\nvalarray<_Tp>::operator[](gslice&& __gs) const\n{\n    return __val_expr<__indirect_expr<const valarray&> >(__indirect_expr<const valarray&>(move(__gs.__1d_), *this));\n}\n\ntemplate <class _Tp>\ninline\ngslice_array<_Tp>\nvalarray<_Tp>::operator[](gslice&& __gs)\n{\n    return gslice_array<value_type>(move(__gs), *this);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\ninline\n__val_expr<__mask_expr<const valarray<_Tp>&> >\nvalarray<_Tp>::operator[](const valarray<bool>& __vb) const\n{\n    return __val_expr<__mask_expr<const valarray&> >(__mask_expr<const valarray&>(__vb, *this));\n}\n\ntemplate <class _Tp>\ninline\nmask_array<_Tp>\nvalarray<_Tp>::operator[](const valarray<bool>& __vb)\n{\n    return mask_array<value_type>(__vb, *this);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\ninline\n__val_expr<__mask_expr<const valarray<_Tp>&> >\nvalarray<_Tp>::operator[](valarray<bool>&& __vb) const\n{\n    return __val_expr<__mask_expr<const valarray&> >(__mask_expr<const valarray&>(move(__vb), *this));\n}\n\ntemplate <class _Tp>\ninline\nmask_array<_Tp>\nvalarray<_Tp>::operator[](valarray<bool>&& __vb)\n{\n    return mask_array<value_type>(move(__vb), *this);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\ninline\n__val_expr<__indirect_expr<const valarray<_Tp>&> >\nvalarray<_Tp>::operator[](const valarray<size_t>& __vs) const\n{\n    return __val_expr<__indirect_expr<const valarray&> >(__indirect_expr<const valarray&>(__vs, *this));\n}\n\ntemplate <class _Tp>\ninline\nindirect_array<_Tp>\nvalarray<_Tp>::operator[](const valarray<size_t>& __vs)\n{\n    return indirect_array<value_type>(__vs, *this);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\ninline\n__val_expr<__indirect_expr<const valarray<_Tp>&> >\nvalarray<_Tp>::operator[](valarray<size_t>&& __vs) const\n{\n    return __val_expr<__indirect_expr<const valarray&> >(__indirect_expr<const valarray&>(move(__vs), *this));\n}\n\ntemplate <class _Tp>\ninline\nindirect_array<_Tp>\nvalarray<_Tp>::operator[](valarray<size_t>&& __vs)\n{\n    return indirect_array<value_type>(move(__vs), *this);\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp>\nvalarray<_Tp>\nvalarray<_Tp>::operator+() const\n{\n    valarray<value_type> __r;\n    size_t __n = size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n        for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)\n            ::new (__r.__end_) value_type(+*__p);\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>\nvalarray<_Tp>::operator-() const\n{\n    valarray<value_type> __r;\n    size_t __n = size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n        for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)\n            ::new (__r.__end_) value_type(-*__p);\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>\nvalarray<_Tp>::operator~() const\n{\n    valarray<value_type> __r;\n    size_t __n = size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n        for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)\n            ::new (__r.__end_) value_type(~*__p);\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\nvalarray<bool>\nvalarray<_Tp>::operator!() const\n{\n    valarray<bool> __r;\n    size_t __n = size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<bool*>(_VSTD::__allocate(__n * sizeof(bool)));\n        for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)\n            ::new (__r.__end_) bool(!*__p);\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator*=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p *= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator/=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p /= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator%=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p %= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator+=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p += __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator-=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p -= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator^=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p ^= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator&=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p &= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator|=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p |= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator<<=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p <<= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvalarray<_Tp>&\nvalarray<_Tp>::operator>>=(const value_type& __x)\n{\n    for (value_type* __p = __begin_; __p != __end_; ++__p)\n        *__p >>= __x;\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator*=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t *= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator/=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t /= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator%=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t %= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator+=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t += __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator-=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t -= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator^=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t ^= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator|=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t |= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator&=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t &= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator<<=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t <<= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ntemplate <class _Expr>\ninline\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    valarray<_Tp>&\n>::type\nvalarray<_Tp>::operator>>=(const _Expr& __v)\n{\n    size_t __i = 0;\n    for (value_type* __t = __begin_; __t != __end_ ; ++__t, ++__i)\n        *__t >>= __v[__i];\n    return *this;\n}\n\ntemplate <class _Tp>\ninline\nvoid\nvalarray<_Tp>::swap(valarray& __v) _NOEXCEPT\n{\n    _VSTD::swap(__begin_, __v.__begin_);\n    _VSTD::swap(__end_, __v.__end_);\n}\n\ntemplate <class _Tp>\ninline\n_Tp\nvalarray<_Tp>::sum() const\n{\n    if (__begin_ == __end_)\n        return value_type();\n    const value_type* __p = __begin_;\n    _Tp __r = *__p;\n    for (++__p; __p != __end_; ++__p)\n        __r += *__p;\n    return __r;\n}\n\ntemplate <class _Tp>\ninline\n_Tp\nvalarray<_Tp>::min() const\n{\n    if (__begin_ == __end_)\n        return value_type();\n    return *_VSTD::min_element(__begin_, __end_);\n}\n\ntemplate <class _Tp>\ninline\n_Tp\nvalarray<_Tp>::max() const\n{\n    if (__begin_ == __end_)\n        return value_type();\n    return *_VSTD::max_element(__begin_, __end_);\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>\nvalarray<_Tp>::shift(int __i) const\n{\n    valarray<value_type> __r;\n    size_t __n = size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n        const value_type* __sb;\n        value_type* __tb;\n        value_type* __te;\n        if (__i >= 0)\n        {\n            __i = _VSTD::min(__i, static_cast<int>(__n));\n            __sb = __begin_ + __i;\n            __tb = __r.__begin_;\n            __te = __r.__begin_ + (__n - __i);\n        }\n        else\n        {\n            __i = _VSTD::min(-__i, static_cast<int>(__n));\n            __sb = __begin_;\n            __tb = __r.__begin_ + __i;\n            __te = __r.__begin_ + __n;\n        }\n        for (; __r.__end_ != __tb; ++__r.__end_)\n            ::new (__r.__end_) value_type();\n        for (; __r.__end_ != __te; ++__r.__end_, ++__sb)\n            ::new (__r.__end_) value_type(*__sb);\n        for (__te = __r.__begin_ + __n; __r.__end_ != __te; ++__r.__end_)\n            ::new (__r.__end_) value_type();\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>\nvalarray<_Tp>::cshift(int __i) const\n{\n    valarray<value_type> __r;\n    size_t __n = size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n        __i %= static_cast<int>(__n);\n        const value_type* __m = __i >= 0 ? __begin_ + __i : __end_ + __i;\n        for (const value_type* __s = __m; __s != __end_; ++__r.__end_, ++__s)\n            ::new (__r.__end_) value_type(*__s);\n        for (const value_type* __s = __begin_; __s != __m; ++__r.__end_, ++__s)\n            ::new (__r.__end_) value_type(*__s);\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>\nvalarray<_Tp>::apply(value_type __f(value_type)) const\n{\n    valarray<value_type> __r;\n    size_t __n = size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n        for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)\n            ::new (__r.__end_) value_type(__f(*__p));\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\nvalarray<_Tp>\nvalarray<_Tp>::apply(value_type __f(const value_type&)) const\n{\n    valarray<value_type> __r;\n    size_t __n = size();\n    if (__n)\n    {\n        __r.__begin_ =\n            __r.__end_ =\n                static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n        for (const value_type* __p = __begin_; __n; ++__r.__end_, ++__p, --__n)\n            ::new (__r.__end_) value_type(__f(*__p));\n    }\n    return __r;\n}\n\ntemplate <class _Tp>\nvoid\nvalarray<_Tp>::resize(size_t __n, value_type __x)\n{\n    if (__begin_ != nullptr)\n    {\n        while (__end_ != __begin_)\n            (--__end_)->~value_type();\n        _VSTD::__libcpp_deallocate(__begin_);\n        __begin_ = __end_ = nullptr;\n    }\n    if (__n)\n    {\n        __begin_ = __end_ = static_cast<value_type*>(_VSTD::__allocate(__n * sizeof(value_type)));\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            for (; __n; --__n, ++__end_)\n                ::new (__end_) value_type(__x);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            resize(0);\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate<class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(valarray<_Tp>& __x, valarray<_Tp>& __y) _NOEXCEPT\n{\n    __x.swap(__y);\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<multiplies<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator*(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<multiplies<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(multiplies<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<multiplies<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator*(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<multiplies<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(multiplies<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<multiplies<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator*(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<multiplies<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(multiplies<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<divides<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator/(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<divides<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(divides<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<divides<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator/(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<divides<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(divides<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<divides<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator/(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<divides<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(divides<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<modulus<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator%(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<modulus<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(modulus<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<modulus<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator%(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<modulus<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(modulus<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<modulus<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator%(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<modulus<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(modulus<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<plus<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator+(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<plus<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(plus<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<plus<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator+(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<plus<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(plus<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<plus<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator+(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<plus<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(plus<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<minus<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator-(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<minus<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(minus<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<minus<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator-(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<minus<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(minus<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<minus<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator-(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<minus<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(minus<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<bit_xor<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator^(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<bit_xor<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(bit_xor<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<bit_xor<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator^(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<bit_xor<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(bit_xor<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<bit_xor<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator^(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<bit_xor<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(bit_xor<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<bit_and<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator&(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<bit_and<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(bit_and<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<bit_and<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator&(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<bit_and<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(bit_and<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<bit_and<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator&(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<bit_and<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(bit_and<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<bit_or<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator|(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<bit_or<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(bit_or<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<bit_or<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator|(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<bit_or<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(bit_or<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<bit_or<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator|(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<bit_or<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(bit_or<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<__bit_shift_left<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator<<(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<__bit_shift_left<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(__bit_shift_left<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<__bit_shift_left<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator<<(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<__bit_shift_left<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(__bit_shift_left<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<__bit_shift_left<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator<<(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<__bit_shift_left<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__bit_shift_left<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<__bit_shift_right<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator>>(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<__bit_shift_right<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(__bit_shift_right<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<__bit_shift_right<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator>>(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<__bit_shift_right<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(__bit_shift_right<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<__bit_shift_right<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator>>(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<__bit_shift_right<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__bit_shift_right<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<logical_and<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator&&(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<logical_and<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(logical_and<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<logical_and<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator&&(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<logical_and<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(logical_and<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<logical_and<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator&&(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<logical_and<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(logical_and<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<logical_or<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator||(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<logical_or<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(logical_or<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<logical_or<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator||(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<logical_or<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(logical_or<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<logical_or<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator||(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<logical_or<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(logical_or<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<equal_to<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator==(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<equal_to<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(equal_to<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<equal_to<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator==(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<equal_to<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(equal_to<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<equal_to<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator==(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<equal_to<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(equal_to<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<not_equal_to<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator!=(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<not_equal_to<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(not_equal_to<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<not_equal_to<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator!=(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<not_equal_to<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(not_equal_to<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<not_equal_to<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator!=(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<not_equal_to<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(not_equal_to<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<less<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator<(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<less<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(less<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<less<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator<(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<less<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(less<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<less<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator<(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<less<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(less<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<greater<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator>(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<greater<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(greater<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<greater<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator>(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<greater<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(greater<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<greater<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator>(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<greater<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(greater<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<less_equal<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator<=(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<less_equal<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(less_equal<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<less_equal<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator<=(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<less_equal<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(less_equal<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<less_equal<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator<=(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<less_equal<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(less_equal<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<greater_equal<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\noperator>=(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<greater_equal<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(greater_equal<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<greater_equal<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\noperator>=(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<greater_equal<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(greater_equal<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<greater_equal<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\noperator>=(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<greater_equal<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(greater_equal<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__abs_expr<typename _Expr::value_type>, _Expr> >\n>::type\nabs(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__abs_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__abs_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__acos_expr<typename _Expr::value_type>, _Expr> >\n>::type\nacos(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__acos_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__acos_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__asin_expr<typename _Expr::value_type>, _Expr> >\n>::type\nasin(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__asin_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__asin_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__atan_expr<typename _Expr::value_type>, _Expr> >\n>::type\natan(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__atan_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__atan_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<__atan2_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\natan2(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<__atan2_expr<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(__atan2_expr<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<__atan2_expr<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\natan2(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<__atan2_expr<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(__atan2_expr<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<__atan2_expr<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\natan2(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<__atan2_expr<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__atan2_expr<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__cos_expr<typename _Expr::value_type>, _Expr> >\n>::type\ncos(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__cos_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__cos_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__cosh_expr<typename _Expr::value_type>, _Expr> >\n>::type\ncosh(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__cosh_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__cosh_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__exp_expr<typename _Expr::value_type>, _Expr> >\n>::type\nexp(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__exp_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__exp_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__log_expr<typename _Expr::value_type>, _Expr> >\n>::type\nlog(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__log_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__log_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__log10_expr<typename _Expr::value_type>, _Expr> >\n>::type\nlog10(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__log10_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__log10_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr1, class _Expr2>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr1>::value && __is_val_expr<_Expr2>::value,\n    __val_expr<_BinaryOp<__pow_expr<typename _Expr1::value_type>, _Expr1, _Expr2> >\n>::type\npow(const _Expr1& __x, const _Expr2& __y)\n{\n    typedef typename _Expr1::value_type value_type;\n    typedef _BinaryOp<__pow_expr<value_type>, _Expr1, _Expr2> _Op;\n    return __val_expr<_Op>(_Op(__pow_expr<value_type>(), __x, __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<__pow_expr<typename _Expr::value_type>,\n               _Expr, __scalar_expr<typename _Expr::value_type> > >\n>::type\npow(const _Expr& __x, const typename _Expr::value_type& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<__pow_expr<value_type>, _Expr, __scalar_expr<value_type> > _Op;\n    return __val_expr<_Op>(_Op(__pow_expr<value_type>(),\n                           __x, __scalar_expr<value_type>(__y, __x.size())));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_BinaryOp<__pow_expr<typename _Expr::value_type>,\n               __scalar_expr<typename _Expr::value_type>, _Expr> >\n>::type\npow(const typename _Expr::value_type& __x, const _Expr& __y)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _BinaryOp<__pow_expr<value_type>, __scalar_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__pow_expr<value_type>(),\n                           __scalar_expr<value_type>(__x, __y.size()), __y));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__sin_expr<typename _Expr::value_type>, _Expr> >\n>::type\nsin(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__sin_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__sin_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__sinh_expr<typename _Expr::value_type>, _Expr> >\n>::type\nsinh(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__sinh_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__sinh_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__sqrt_expr<typename _Expr::value_type>, _Expr> >\n>::type\nsqrt(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__sqrt_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__sqrt_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__tan_expr<typename _Expr::value_type>, _Expr> >\n>::type\ntan(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__tan_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__tan_expr<value_type>(), __x));\n}\n\ntemplate<class _Expr>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename enable_if\n<\n    __is_val_expr<_Expr>::value,\n    __val_expr<_UnaryOp<__tanh_expr<typename _Expr::value_type>, _Expr> >\n>::type\ntanh(const _Expr& __x)\n{\n    typedef typename _Expr::value_type value_type;\n    typedef _UnaryOp<__tanh_expr<value_type>, _Expr> _Op;\n    return __val_expr<_Op>(_Op(__tanh_expr<value_type>(), __x));\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\nbegin(valarray<_Tp>& __v)\n{\n    return __v.__begin_;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconst _Tp*\nbegin(const valarray<_Tp>& __v)\n{\n    return __v.__begin_;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\n_Tp*\nend(valarray<_Tp>& __v)\n{\n    return __v.__end_;\n}\n\ntemplate <class _Tp>\ninline _LIBCPP_INLINE_VISIBILITY\nconst _Tp*\nend(const valarray<_Tp>& __v)\n{\n    return __v.__end_;\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_VALARRAY\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/vector",
    "content": "// -*- C++ -*-\n//===------------------------------ vector --------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_VECTOR\n#define _LIBCPP_VECTOR\n\n/*\n    vector synopsis\n\nnamespace std\n{\n\ntemplate <class T, class Allocator = allocator<T> >\nclass vector\n{\npublic:\n    typedef T                                        value_type;\n    typedef Allocator                                allocator_type;\n    typedef typename allocator_type::reference       reference;\n    typedef typename allocator_type::const_reference const_reference;\n    typedef implementation-defined                   iterator;\n    typedef implementation-defined                   const_iterator;\n    typedef typename allocator_type::size_type       size_type;\n    typedef typename allocator_type::difference_type difference_type;\n    typedef typename allocator_type::pointer         pointer;\n    typedef typename allocator_type::const_pointer   const_pointer;\n    typedef std::reverse_iterator<iterator>          reverse_iterator;\n    typedef std::reverse_iterator<const_iterator>    const_reverse_iterator;\n\n    vector()\n        noexcept(is_nothrow_default_constructible<allocator_type>::value);\n    explicit vector(const allocator_type&);\n    explicit vector(size_type n);\n    explicit vector(size_type n, const allocator_type&); // C++14\n    vector(size_type n, const value_type& value, const allocator_type& = allocator_type());\n    template <class InputIterator>\n        vector(InputIterator first, InputIterator last, const allocator_type& = allocator_type());\n    vector(const vector& x);\n    vector(vector&& x)\n        noexcept(is_nothrow_move_constructible<allocator_type>::value);\n    vector(initializer_list<value_type> il);\n    vector(initializer_list<value_type> il, const allocator_type& a);\n    ~vector();\n    vector& operator=(const vector& x);\n    vector& operator=(vector&& x)\n        noexcept(\n             allocator_type::propagate_on_container_move_assignment::value ||\n             allocator_type::is_always_equal::value); // C++17\n    vector& operator=(initializer_list<value_type> il);\n    template <class InputIterator>\n        void assign(InputIterator first, InputIterator last);\n    void assign(size_type n, const value_type& u);\n    void assign(initializer_list<value_type> il);\n\n    allocator_type get_allocator() const noexcept;\n\n    iterator               begin() noexcept;\n    const_iterator         begin()   const noexcept;\n    iterator               end() noexcept;\n    const_iterator         end()     const noexcept;\n\n    reverse_iterator       rbegin() noexcept;\n    const_reverse_iterator rbegin()  const noexcept;\n    reverse_iterator       rend() noexcept;\n    const_reverse_iterator rend()    const noexcept;\n\n    const_iterator         cbegin()  const noexcept;\n    const_iterator         cend()    const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend()   const noexcept;\n\n    size_type size() const noexcept;\n    size_type max_size() const noexcept;\n    size_type capacity() const noexcept;\n    bool empty() const noexcept;\n    void reserve(size_type n);\n    void shrink_to_fit() noexcept;\n\n    reference       operator[](size_type n);\n    const_reference operator[](size_type n) const;\n    reference       at(size_type n);\n    const_reference at(size_type n) const;\n\n    reference       front();\n    const_reference front() const;\n    reference       back();\n    const_reference back() const;\n\n    value_type*       data() noexcept;\n    const value_type* data() const noexcept;\n\n    void push_back(const value_type& x);\n    void push_back(value_type&& x);\n    template <class... Args>\n        reference emplace_back(Args&&... args); // reference in C++17\n    void pop_back();\n\n    template <class... Args> iterator emplace(const_iterator position, Args&&... args);\n    iterator insert(const_iterator position, const value_type& x);\n    iterator insert(const_iterator position, value_type&& x);\n    iterator insert(const_iterator position, size_type n, const value_type& x);\n    template <class InputIterator>\n        iterator insert(const_iterator position, InputIterator first, InputIterator last);\n    iterator insert(const_iterator position, initializer_list<value_type> il);\n\n    iterator erase(const_iterator position);\n    iterator erase(const_iterator first, const_iterator last);\n\n    void clear() noexcept;\n\n    void resize(size_type sz);\n    void resize(size_type sz, const value_type& c);\n\n    void swap(vector&)\n        noexcept(allocator_traits<allocator_type>::propagate_on_container_swap::value ||\n                 allocator_traits<allocator_type>::is_always_equal::value);  // C++17\n\n    bool __invariants() const;\n};\n\ntemplate <class Allocator = allocator<T> >\nclass vector<bool, Allocator>\n{\npublic:\n    typedef bool                                     value_type;\n    typedef Allocator                                allocator_type;\n    typedef implementation-defined                   iterator;\n    typedef implementation-defined                   const_iterator;\n    typedef typename allocator_type::size_type       size_type;\n    typedef typename allocator_type::difference_type difference_type;\n    typedef iterator                                 pointer;\n    typedef const_iterator                           const_pointer;\n    typedef std::reverse_iterator<iterator>          reverse_iterator;\n    typedef std::reverse_iterator<const_iterator>    const_reverse_iterator;\n\n    class reference\n    {\n    public:\n        reference(const reference&) noexcept;\n        operator bool() const noexcept;\n        reference& operator=(const bool x) noexcept;\n        reference& operator=(const reference& x) noexcept;\n        iterator operator&() const noexcept;\n        void flip() noexcept;\n    };\n\n    class const_reference\n    {\n    public:\n        const_reference(const reference&) noexcept;\n        operator bool() const noexcept;\n        const_iterator operator&() const noexcept;\n    };\n\n    vector()\n        noexcept(is_nothrow_default_constructible<allocator_type>::value);\n    explicit vector(const allocator_type&);\n    explicit vector(size_type n, const allocator_type& a = allocator_type()); // C++14\n    vector(size_type n, const value_type& value, const allocator_type& = allocator_type());\n    template <class InputIterator>\n        vector(InputIterator first, InputIterator last, const allocator_type& = allocator_type());\n    vector(const vector& x);\n    vector(vector&& x)\n        noexcept(is_nothrow_move_constructible<allocator_type>::value);\n    vector(initializer_list<value_type> il);\n    vector(initializer_list<value_type> il, const allocator_type& a);\n    ~vector();\n    vector& operator=(const vector& x);\n    vector& operator=(vector&& x)\n        noexcept(\n             allocator_type::propagate_on_container_move_assignment::value ||\n             allocator_type::is_always_equal::value); // C++17\n    vector& operator=(initializer_list<value_type> il);\n    template <class InputIterator>\n        void assign(InputIterator first, InputIterator last);\n    void assign(size_type n, const value_type& u);\n    void assign(initializer_list<value_type> il);\n\n    allocator_type get_allocator() const noexcept;\n\n    iterator               begin() noexcept;\n    const_iterator         begin()   const noexcept;\n    iterator               end() noexcept;\n    const_iterator         end()     const noexcept;\n\n    reverse_iterator       rbegin() noexcept;\n    const_reverse_iterator rbegin()  const noexcept;\n    reverse_iterator       rend() noexcept;\n    const_reverse_iterator rend()    const noexcept;\n\n    const_iterator         cbegin()  const noexcept;\n    const_iterator         cend()    const noexcept;\n    const_reverse_iterator crbegin() const noexcept;\n    const_reverse_iterator crend()   const noexcept;\n\n    size_type size() const noexcept;\n    size_type max_size() const noexcept;\n    size_type capacity() const noexcept;\n    bool empty() const noexcept;\n    void reserve(size_type n);\n    void shrink_to_fit() noexcept;\n\n    reference       operator[](size_type n);\n    const_reference operator[](size_type n) const;\n    reference       at(size_type n);\n    const_reference at(size_type n) const;\n\n    reference       front();\n    const_reference front() const;\n    reference       back();\n    const_reference back() const;\n\n    void push_back(const value_type& x);\n    template <class... Args> reference emplace_back(Args&&... args);  // C++14; reference in C++17\n    void pop_back();\n\n    template <class... Args> iterator emplace(const_iterator position, Args&&... args);  // C++14\n    iterator insert(const_iterator position, const value_type& x);\n    iterator insert(const_iterator position, size_type n, const value_type& x);\n    template <class InputIterator>\n        iterator insert(const_iterator position, InputIterator first, InputIterator last);\n    iterator insert(const_iterator position, initializer_list<value_type> il);\n\n    iterator erase(const_iterator position);\n    iterator erase(const_iterator first, const_iterator last);\n\n    void clear() noexcept;\n\n    void resize(size_type sz);\n    void resize(size_type sz, value_type x);\n\n    void swap(vector&)\n        noexcept(allocator_traits<allocator_type>::propagate_on_container_swap::value ||\n                 allocator_traits<allocator_type>::is_always_equal::value);  // C++17\n    void flip() noexcept;\n\n    bool __invariants() const;\n};\n\ntemplate <class Allocator> struct hash<std::vector<bool, Allocator>>;\n\ntemplate <class T, class Allocator> bool operator==(const vector<T,Allocator>& x, const vector<T,Allocator>& y);\ntemplate <class T, class Allocator> bool operator< (const vector<T,Allocator>& x, const vector<T,Allocator>& y);\ntemplate <class T, class Allocator> bool operator!=(const vector<T,Allocator>& x, const vector<T,Allocator>& y);\ntemplate <class T, class Allocator> bool operator> (const vector<T,Allocator>& x, const vector<T,Allocator>& y);\ntemplate <class T, class Allocator> bool operator>=(const vector<T,Allocator>& x, const vector<T,Allocator>& y);\ntemplate <class T, class Allocator> bool operator<=(const vector<T,Allocator>& x, const vector<T,Allocator>& y);\n\ntemplate <class T, class Allocator>\nvoid swap(vector<T,Allocator>& x, vector<T,Allocator>& y)\n    noexcept(noexcept(x.swap(y)));\n\n}  // std\n\n*/\n\n#include <__config>\n#include <iosfwd> // for forward declaration of vector\n#include <__bit_reference>\n#include <type_traits>\n#include <climits>\n#include <limits>\n#include <initializer_list>\n#include <memory>\n#include <stdexcept>\n#include <algorithm>\n#include <cstring>\n#include <__split_buffer>\n#include <__functional_base>\n\n#include <__debug>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n_LIBCPP_PUSH_MACROS\n#include <__undef_macros>\n\n\n_LIBCPP_BEGIN_NAMESPACE_STD\n\ntemplate <bool>\nclass __vector_base_common\n{\nprotected:\n    _LIBCPP_ALWAYS_INLINE __vector_base_common() {}\n    _LIBCPP_NORETURN void __throw_length_error() const;\n    _LIBCPP_NORETURN void __throw_out_of_range() const;\n};\n\ntemplate <bool __b>\nvoid\n__vector_base_common<__b>::__throw_length_error() const\n{\n    _VSTD::__throw_length_error(\"vector\");\n}\n\ntemplate <bool __b>\nvoid\n__vector_base_common<__b>::__throw_out_of_range() const\n{\n    _VSTD::__throw_out_of_range(\"vector\");\n}\n\n_LIBCPP_EXTERN_TEMPLATE(class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS __vector_base_common<true>)\n\ntemplate <class _Tp, class _Allocator>\nclass __vector_base\n    : protected __vector_base_common<true>\n{\nprotected:\n    typedef _Tp                                      value_type;\n    typedef _Allocator                               allocator_type;\n    typedef allocator_traits<allocator_type>         __alloc_traits;\n    typedef value_type&                              reference;\n    typedef const value_type&                        const_reference;\n    typedef typename __alloc_traits::size_type       size_type;\n    typedef typename __alloc_traits::difference_type difference_type;\n    typedef typename __alloc_traits::pointer         pointer;\n    typedef typename __alloc_traits::const_pointer   const_pointer;\n    typedef pointer                                  iterator;\n    typedef const_pointer                            const_iterator;\n\n    pointer                                         __begin_;\n    pointer                                         __end_;\n    __compressed_pair<pointer, allocator_type> __end_cap_;\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type& __alloc() _NOEXCEPT\n        {return __end_cap_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const allocator_type& __alloc() const _NOEXCEPT\n        {return __end_cap_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    pointer& __end_cap() _NOEXCEPT\n        {return __end_cap_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n    const pointer& __end_cap() const _NOEXCEPT\n        {return __end_cap_.first();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    __vector_base()\n        _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);\n    _LIBCPP_INLINE_VISIBILITY __vector_base(const allocator_type& __a);\n    ~__vector_base();\n\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__destruct_at_end(__begin_);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type capacity() const _NOEXCEPT\n        {return static_cast<size_type>(__end_cap() - __begin_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __destruct_at_end(pointer __new_last) _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __vector_base& __c)\n        {__copy_assign_alloc(__c, integral_constant<bool,\n                      __alloc_traits::propagate_on_container_copy_assignment::value>());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__vector_base& __c)\n        _NOEXCEPT_(\n            !__alloc_traits::propagate_on_container_move_assignment::value ||\n            is_nothrow_move_assignable<allocator_type>::value)\n        {__move_assign_alloc(__c, integral_constant<bool,\n                      __alloc_traits::propagate_on_container_move_assignment::value>());}\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __vector_base& __c, true_type)\n        {\n            if (__alloc() != __c.__alloc())\n            {\n                clear();\n                __alloc_traits::deallocate(__alloc(), __begin_, capacity());\n                __begin_ = __end_ = __end_cap() = nullptr;\n            }\n            __alloc() = __c.__alloc();\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const __vector_base&, false_type)\n        {}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__vector_base& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n        {\n            __alloc() = _VSTD::move(__c.__alloc());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(__vector_base&, false_type)\n        _NOEXCEPT\n        {}\n};\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\n__vector_base<_Tp, _Allocator>::__destruct_at_end(pointer __new_last) _NOEXCEPT\n{\n    pointer __soon_to_be_end = __end_;\n    while (__new_last != __soon_to_be_end)\n        __alloc_traits::destroy(__alloc(), _VSTD::__to_raw_pointer(--__soon_to_be_end));\n    __end_ = __new_last;\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\n__vector_base<_Tp, _Allocator>::__vector_base()\n        _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)\n    : __begin_(nullptr),\n      __end_(nullptr),\n      __end_cap_(nullptr)\n{\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\n__vector_base<_Tp, _Allocator>::__vector_base(const allocator_type& __a)\n    : __begin_(nullptr),\n      __end_(nullptr),\n      __end_cap_(nullptr, __a)\n{\n}\n\ntemplate <class _Tp, class _Allocator>\n__vector_base<_Tp, _Allocator>::~__vector_base()\n{\n    if (__begin_ != nullptr)\n    {\n        clear();\n        __alloc_traits::deallocate(__alloc(), __begin_, capacity());\n    }\n}\n\ntemplate <class _Tp, class _Allocator /* = allocator<_Tp> */>\nclass _LIBCPP_TEMPLATE_VIS vector\n    : private __vector_base<_Tp, _Allocator>\n{\nprivate:\n    typedef __vector_base<_Tp, _Allocator>           __base;\n    typedef allocator<_Tp>                           __default_allocator_type;\npublic:\n    typedef vector                                   __self;\n    typedef _Tp                                      value_type;\n    typedef _Allocator                               allocator_type;\n    typedef typename __base::__alloc_traits          __alloc_traits;\n    typedef typename __base::reference               reference;\n    typedef typename __base::const_reference         const_reference;\n    typedef typename __base::size_type               size_type;\n    typedef typename __base::difference_type         difference_type;\n    typedef typename __base::pointer                 pointer;\n    typedef typename __base::const_pointer           const_pointer;\n    typedef __wrap_iter<pointer>                     iterator;\n    typedef __wrap_iter<const_pointer>               const_iterator;\n    typedef _VSTD::reverse_iterator<iterator>         reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator>   const_reverse_iterator;\n\n    static_assert((is_same<typename allocator_type::value_type, value_type>::value),\n                  \"Allocator::value_type must be same type as value_type\");\n\n    _LIBCPP_INLINE_VISIBILITY\n    vector() _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)\n        {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n            __get_db()->__insert_c(this);\n#endif\n        }\n    _LIBCPP_INLINE_VISIBILITY explicit vector(const allocator_type& __a)\n#if _LIBCPP_STD_VER <= 14\n        _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)\n#else\n        _NOEXCEPT\n#endif\n        : __base(__a)\n    {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->__insert_c(this);\n#endif\n    }\n    explicit vector(size_type __n);\n#if _LIBCPP_STD_VER > 11\n    explicit vector(size_type __n, const allocator_type& __a);\n#endif\n    vector(size_type __n, const_reference __x);\n    vector(size_type __n, const_reference __x, const allocator_type& __a);\n    template <class _InputIterator>\n        vector(_InputIterator __first,\n               typename enable_if<__is_input_iterator  <_InputIterator>::value &&\n                                 !__is_forward_iterator<_InputIterator>::value &&\n                                 is_constructible<\n                                    value_type,\n                                    typename iterator_traits<_InputIterator>::reference>::value,\n                                 _InputIterator>::type __last);\n    template <class _InputIterator>\n        vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a,\n               typename enable_if<__is_input_iterator  <_InputIterator>::value &&\n                                 !__is_forward_iterator<_InputIterator>::value &&\n                                 is_constructible<\n                                    value_type,\n                                    typename iterator_traits<_InputIterator>::reference>::value>::type* = 0);\n    template <class _ForwardIterator>\n        vector(_ForwardIterator __first,\n               typename enable_if<__is_forward_iterator<_ForwardIterator>::value &&\n                                 is_constructible<\n                                    value_type,\n                                    typename iterator_traits<_ForwardIterator>::reference>::value,\n                                 _ForwardIterator>::type __last);\n    template <class _ForwardIterator>\n        vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a,\n               typename enable_if<__is_forward_iterator<_ForwardIterator>::value &&\n                                 is_constructible<\n                                    value_type,\n                                    typename iterator_traits<_ForwardIterator>::reference>::value>::type* = 0);\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_INLINE_VISIBILITY\n    ~vector()\n    {\n        __get_db()->__erase_c(this);\n    }\n#endif\n\n    vector(const vector& __x);\n    vector(const vector& __x, const allocator_type& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    vector& operator=(const vector& __x);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    vector(initializer_list<value_type> __il);\n\n    _LIBCPP_INLINE_VISIBILITY\n    vector(initializer_list<value_type> __il, const allocator_type& __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    vector(vector&& __x)\n#if _LIBCPP_STD_VER > 14\n        _NOEXCEPT;\n#else\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    vector(vector&& __x, const allocator_type& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    vector& operator=(vector&& __x)\n        _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));\n\n    _LIBCPP_INLINE_VISIBILITY\n    vector& operator=(initializer_list<value_type> __il)\n        {assign(__il.begin(), __il.end()); return *this;}\n\n#endif  // !_LIBCPP_CXX03_LANG\n\n    template <class _InputIterator>\n        typename enable_if\n        <\n             __is_input_iterator  <_InputIterator>::value &&\n            !__is_forward_iterator<_InputIterator>::value &&\n            is_constructible<\n                 value_type,\n                 typename iterator_traits<_InputIterator>::reference>::value,\n            void\n        >::type\n        assign(_InputIterator __first, _InputIterator __last);\n    template <class _ForwardIterator>\n        typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value &&\n            is_constructible<\n                 value_type,\n                 typename iterator_traits<_ForwardIterator>::reference>::value,\n            void\n        >::type\n        assign(_ForwardIterator __first, _ForwardIterator __last);\n\n    void assign(size_type __n, const_reference __u);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void assign(initializer_list<value_type> __il)\n        {assign(__il.begin(), __il.end());}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY\n    allocator_type get_allocator() const _NOEXCEPT\n        {return this->__alloc();}\n\n    _LIBCPP_INLINE_VISIBILITY iterator               begin() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY const_iterator         begin()   const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY iterator               end() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY const_iterator         end()     const _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    reverse_iterator       rbegin() _NOEXCEPT\n        {return       reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin()  const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    reverse_iterator       rend() _NOEXCEPT\n        {return       reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend()    const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator         cbegin()  const _NOEXCEPT\n        {return begin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator         cend()    const _NOEXCEPT\n        {return end();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT\n        {return rbegin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend()   const _NOEXCEPT\n        {return rend();}\n\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT\n        {return static_cast<size_type>(this->__end_ - this->__begin_);}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type capacity() const _NOEXCEPT\n        {return __base::capacity();}\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT\n        {return this->__begin_ == this->__end_;}\n    size_type max_size() const _NOEXCEPT;\n    void reserve(size_type __n);\n    void shrink_to_fit() _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY reference       operator[](size_type __n);\n    _LIBCPP_INLINE_VISIBILITY const_reference operator[](size_type __n) const;\n    reference       at(size_type __n);\n    const_reference at(size_type __n) const;\n\n    _LIBCPP_INLINE_VISIBILITY reference       front()\n    {\n        _LIBCPP_ASSERT(!empty(), \"front() called for empty vector\");\n        return *this->__begin_;\n    }\n    _LIBCPP_INLINE_VISIBILITY const_reference front() const\n    {\n        _LIBCPP_ASSERT(!empty(), \"front() called for empty vector\");\n        return *this->__begin_;\n    }\n    _LIBCPP_INLINE_VISIBILITY reference       back()\n    {\n        _LIBCPP_ASSERT(!empty(), \"back() called for empty vector\");\n        return *(this->__end_ - 1);\n    }\n    _LIBCPP_INLINE_VISIBILITY const_reference back()  const\n    {\n        _LIBCPP_ASSERT(!empty(), \"back() called for empty vector\");\n        return *(this->__end_ - 1);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    value_type*       data() _NOEXCEPT\n        {return _VSTD::__to_raw_pointer(this->__begin_);}\n    _LIBCPP_INLINE_VISIBILITY\n    const value_type* data() const _NOEXCEPT\n        {return _VSTD::__to_raw_pointer(this->__begin_);}\n\n    _LIBCPP_INLINE_VISIBILITY void push_back(const_reference __x);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY void push_back(value_type&& __x);\n\n    template <class... _Args>\n        _LIBCPP_INLINE_VISIBILITY\n#if _LIBCPP_STD_VER > 14\n        reference emplace_back(_Args&&... __args);\n#else\n        void      emplace_back(_Args&&... __args);\n#endif\n#endif // !_LIBCPP_CXX03_LANG\n\n    _LIBCPP_INLINE_VISIBILITY\n    void pop_back();\n\n    iterator insert(const_iterator __position, const_reference __x);\n\n#ifndef _LIBCPP_CXX03_LANG\n    iterator insert(const_iterator __position, value_type&& __x);\n    template <class... _Args>\n        iterator emplace(const_iterator __position, _Args&&... __args);\n#endif  // !_LIBCPP_CXX03_LANG\n\n    iterator insert(const_iterator __position, size_type __n, const_reference __x);\n    template <class _InputIterator>\n        typename enable_if\n        <\n             __is_input_iterator  <_InputIterator>::value &&\n            !__is_forward_iterator<_InputIterator>::value &&\n            is_constructible<\n                 value_type,\n                 typename iterator_traits<_InputIterator>::reference>::value,\n            iterator\n        >::type\n        insert(const_iterator __position, _InputIterator __first, _InputIterator __last);\n    template <class _ForwardIterator>\n        typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value &&\n            is_constructible<\n                 value_type,\n                 typename iterator_traits<_ForwardIterator>::reference>::value,\n            iterator\n        >::type\n        insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __position, initializer_list<value_type> __il)\n        {return insert(__position, __il.begin(), __il.end());}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY iterator erase(const_iterator __position);\n    iterator erase(const_iterator __first, const_iterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT\n    {\n        size_type __old_size = size();\n        __base::clear();\n        __annotate_shrink(__old_size);\n        __invalidate_all_iterators();\n    }\n\n    void resize(size_type __sz);\n    void resize(size_type __sz, const_reference __x);\n\n    void swap(vector&)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT_DEBUG;\n#else\n        _NOEXCEPT_DEBUG_(!__alloc_traits::propagate_on_container_swap::value ||\n                    __is_nothrow_swappable<allocator_type>::value);\n#endif\n\n    bool __invariants() const;\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\n    bool __dereferenceable(const const_iterator* __i) const;\n    bool __decrementable(const const_iterator* __i) const;\n    bool __addable(const const_iterator* __i, ptrdiff_t __n) const;\n    bool __subscriptable(const const_iterator* __i, ptrdiff_t __n) const;\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY void __invalidate_all_iterators();\n    _LIBCPP_INLINE_VISIBILITY void __invalidate_iterators_past(pointer __new_last);\n    void allocate(size_type __n);\n    void deallocate() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY size_type __recommend(size_type __new_size) const;\n    void __construct_at_end(size_type __n);\n    _LIBCPP_INLINE_VISIBILITY\n    void __construct_at_end(size_type __n, const_reference __x);\n    template <class _ForwardIterator>\n        typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value,\n            void\n        >::type\n        __construct_at_end(_ForwardIterator __first, _ForwardIterator __last, size_type __n);\n    void __append(size_type __n);\n    void __append(size_type __n, const_reference __x);\n    _LIBCPP_INLINE_VISIBILITY\n    iterator       __make_iter(pointer __p) _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator __make_iter(const_pointer __p) const _NOEXCEPT;\n    void __swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v);\n    pointer __swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v, pointer __p);\n    void __move_range(pointer __from_s, pointer __from_e, pointer __to);\n    void __move_assign(vector& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);\n    void __move_assign(vector& __c, false_type)\n        _NOEXCEPT_(__alloc_traits::is_always_equal::value);\n    _LIBCPP_INLINE_VISIBILITY\n    void __destruct_at_end(pointer __new_last) _NOEXCEPT\n    {\n        __invalidate_iterators_past(__new_last);\n        size_type __old_size = size();\n        __base::__destruct_at_end(__new_last);\n        __annotate_shrink(__old_size);\n    }\n\n#ifndef _LIBCPP_CXX03_LANG\n    template <class _Up> void __push_back_slow_path(_Up&& __x);\n\n    template <class... _Args>\n    void __emplace_back_slow_path(_Args&&... __args);\n#else\n    template <class _Up> void __push_back_slow_path(_Up& __x);\n#endif\n\n    // The following functions are no-ops outside of AddressSanitizer mode.\n    // We call annotatations only for the default Allocator because other allocators\n    // may not meet the AddressSanitizer alignment constraints.\n    // See the documentation for __sanitizer_annotate_contiguous_container for more details.\n#ifndef _LIBCPP_HAS_NO_ASAN\n    void __annotate_contiguous_container(const void *__beg, const void *__end,\n                                         const void *__old_mid,\n                                         const void *__new_mid) const\n    {\n\n      if (__beg && is_same<allocator_type, __default_allocator_type>::value)\n        __sanitizer_annotate_contiguous_container(__beg, __end, __old_mid, __new_mid);\n    }\n#else\n    _LIBCPP_INLINE_VISIBILITY\n    void __annotate_contiguous_container(const void*, const void*, const void*,\n                                         const void*) const {}\n#endif\n    _LIBCPP_INLINE_VISIBILITY\n    void __annotate_new(size_type __current_size) const {\n      __annotate_contiguous_container(data(), data() + capacity(),\n                                      data() + capacity(), data() + __current_size);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __annotate_delete() const {\n      __annotate_contiguous_container(data(), data() + capacity(),\n                                      data() + size(), data() + capacity());\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __annotate_increase(size_type __n) const\n    {\n      __annotate_contiguous_container(data(), data() + capacity(),\n                                      data() + size(), data() + size() + __n);\n    }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __annotate_shrink(size_type __old_size) const\n    {\n      __annotate_contiguous_container(data(), data() + capacity(),\n                                      data() + __old_size, data() + size());\n    }\n#ifndef _LIBCPP_HAS_NO_ASAN\n    // The annotation for size increase should happen before the actual increase,\n    // but if an exception is thrown after that the annotation has to be undone.\n    struct __RAII_IncreaseAnnotator {\n      __RAII_IncreaseAnnotator(const vector &__v, size_type __n = 1)\n        : __commit(false), __v(__v), __old_size(__v.size() + __n) {\n        __v.__annotate_increase(__n);\n      }\n      void __done() { __commit = true; }\n      ~__RAII_IncreaseAnnotator() {\n        if (__commit) return;\n        __v.__annotate_shrink(__old_size);\n      }\n      bool __commit;\n      const vector &__v;\n      size_type __old_size;\n    };\n#else\n    struct __RAII_IncreaseAnnotator {\n      _LIBCPP_INLINE_VISIBILITY\n      __RAII_IncreaseAnnotator(const vector &, size_type = 1) {}\n      _LIBCPP_INLINE_VISIBILITY void __done() {}\n    };\n#endif\n\n};\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v)\n{\n    __annotate_delete();\n    __alloc_traits::__construct_backward(this->__alloc(), this->__begin_, this->__end_, __v.__begin_);\n    _VSTD::swap(this->__begin_, __v.__begin_);\n    _VSTD::swap(this->__end_, __v.__end_);\n    _VSTD::swap(this->__end_cap(), __v.__end_cap());\n    __v.__first_ = __v.__begin_;\n    __annotate_new(size());\n    __invalidate_all_iterators();\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename vector<_Tp, _Allocator>::pointer\nvector<_Tp, _Allocator>::__swap_out_circular_buffer(__split_buffer<value_type, allocator_type&>& __v, pointer __p)\n{\n    __annotate_delete();\n    pointer __r = __v.__begin_;\n    __alloc_traits::__construct_backward(this->__alloc(), this->__begin_, __p, __v.__begin_);\n    __alloc_traits::__construct_forward(this->__alloc(), __p, this->__end_, __v.__end_);\n    _VSTD::swap(this->__begin_, __v.__begin_);\n    _VSTD::swap(this->__end_, __v.__end_);\n    _VSTD::swap(this->__end_cap(), __v.__end_cap());\n    __v.__first_ = __v.__begin_;\n    __annotate_new(size());\n    __invalidate_all_iterators();\n    return __r;\n}\n\n//  Allocate space for __n objects\n//  throws length_error if __n > max_size()\n//  throws (probably bad_alloc) if memory run out\n//  Precondition:  __begin_ == __end_ == __end_cap() == 0\n//  Precondition:  __n > 0\n//  Postcondition:  capacity() == __n\n//  Postcondition:  size() == 0\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::allocate(size_type __n)\n{\n    if (__n > max_size())\n        this->__throw_length_error();\n    this->__begin_ = this->__end_ = __alloc_traits::allocate(this->__alloc(), __n);\n    this->__end_cap() = this->__begin_ + __n;\n    __annotate_new(0);\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::deallocate() _NOEXCEPT\n{\n    if (this->__begin_ != nullptr)\n    {\n        clear();\n        __alloc_traits::deallocate(this->__alloc(), this->__begin_, capacity());\n        this->__begin_ = this->__end_ = this->__end_cap() = nullptr;\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename vector<_Tp, _Allocator>::size_type\nvector<_Tp, _Allocator>::max_size() const _NOEXCEPT\n{\n    return _VSTD::min<size_type>(__alloc_traits::max_size(this->__alloc()),\n                                 numeric_limits<difference_type>::max());\n}\n\n//  Precondition:  __new_size > capacity()\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::size_type\nvector<_Tp, _Allocator>::__recommend(size_type __new_size) const\n{\n    const size_type __ms = max_size();\n    if (__new_size > __ms)\n        this->__throw_length_error();\n    const size_type __cap = capacity();\n    if (__cap >= __ms / 2)\n        return __ms;\n    return _VSTD::max<size_type>(2*__cap, __new_size);\n}\n\n//  Default constructs __n objects starting at __end_\n//  throws if construction throws\n//  Precondition:  __n > 0\n//  Precondition:  size() + __n <= capacity()\n//  Postcondition:  size() == size() + __n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::__construct_at_end(size_type __n)\n{\n    allocator_type& __a = this->__alloc();\n    do\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_));\n        ++this->__end_;\n        --__n;\n        __annotator.__done();\n    } while (__n > 0);\n}\n\n//  Copy constructs __n objects starting at __end_ from __x\n//  throws if construction throws\n//  Precondition:  __n > 0\n//  Precondition:  size() + __n <= capacity()\n//  Postcondition:  size() == old size() + __n\n//  Postcondition:  [i] == __x for all i in [size() - __n, __n)\ntemplate <class _Tp, class _Allocator>\ninline\nvoid\nvector<_Tp, _Allocator>::__construct_at_end(size_type __n, const_reference __x)\n{\n    allocator_type& __a = this->__alloc();\n    do\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_), __x);\n        ++this->__end_;\n        --__n;\n        __annotator.__done();\n    } while (__n > 0);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value,\n    void\n>::type\nvector<_Tp, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last, size_type __n)\n{\n    allocator_type& __a = this->__alloc();\n    __RAII_IncreaseAnnotator __annotator(*this, __n);\n    __alloc_traits::__construct_range_forward(__a, __first, __last, this->__end_);\n    __annotator.__done();\n}\n\n//  Default constructs __n objects starting at __end_\n//  throws if construction throws\n//  Postcondition:  size() == size() + __n\n//  Exception safety: strong.\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::__append(size_type __n)\n{\n    if (static_cast<size_type>(this->__end_cap() - this->__end_) >= __n)\n        this->__construct_at_end(__n);\n    else\n    {\n        allocator_type& __a = this->__alloc();\n        __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), size(), __a);\n        __v.__construct_at_end(__n);\n        __swap_out_circular_buffer(__v);\n    }\n}\n\n//  Default constructs __n objects starting at __end_\n//  throws if construction throws\n//  Postcondition:  size() == size() + __n\n//  Exception safety: strong.\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::__append(size_type __n, const_reference __x)\n{\n    if (static_cast<size_type>(this->__end_cap() - this->__end_) >= __n)\n        this->__construct_at_end(__n, __x);\n    else\n    {\n        allocator_type& __a = this->__alloc();\n        __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), size(), __a);\n        __v.__construct_at_end(__n, __x);\n        __swap_out_circular_buffer(__v);\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvector<_Tp, _Allocator>::vector(size_type __n)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__n);\n    }\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Tp, class _Allocator>\nvector<_Tp, _Allocator>::vector(size_type __n, const allocator_type& __a)\n    : __base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__n);\n    }\n}\n#endif\n\ntemplate <class _Tp, class _Allocator>\nvector<_Tp, _Allocator>::vector(size_type __n, const_reference __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__n, __x);\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvector<_Tp, _Allocator>::vector(size_type __n, const_reference __x, const allocator_type& __a)\n    : __base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__n, __x);\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIterator>\nvector<_Tp, _Allocator>::vector(_InputIterator __first,\n       typename enable_if<__is_input_iterator  <_InputIterator>::value &&\n                         !__is_forward_iterator<_InputIterator>::value &&\n                         is_constructible<\n                            value_type,\n                            typename iterator_traits<_InputIterator>::reference>::value,\n                          _InputIterator>::type __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (; __first != __last; ++__first)\n        push_back(*__first);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIterator>\nvector<_Tp, _Allocator>::vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a,\n       typename enable_if<__is_input_iterator  <_InputIterator>::value &&\n                         !__is_forward_iterator<_InputIterator>::value &&\n                         is_constructible<\n                            value_type,\n                            typename iterator_traits<_InputIterator>::reference>::value>::type*)\n    : __base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    for (; __first != __last; ++__first)\n        push_back(*__first);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _ForwardIterator>\nvector<_Tp, _Allocator>::vector(_ForwardIterator __first,\n                                typename enable_if<__is_forward_iterator<_ForwardIterator>::value &&\n                                is_constructible<\n                                   value_type,\n                                   typename iterator_traits<_ForwardIterator>::reference>::value,\n                                                   _ForwardIterator>::type __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__first, __last, __n);\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _ForwardIterator>\nvector<_Tp, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a,\n                                typename enable_if<__is_forward_iterator<_ForwardIterator>::value &&\n                                is_constructible<\n                                   value_type,\n                                   typename iterator_traits<_ForwardIterator>::reference>::value>::type*)\n    : __base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__first, __last, __n);\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvector<_Tp, _Allocator>::vector(const vector& __x)\n    : __base(__alloc_traits::select_on_container_copy_construction(__x.__alloc()))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    size_type __n = __x.size();\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__x.__begin_, __x.__end_, __n);\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvector<_Tp, _Allocator>::vector(const vector& __x, const allocator_type& __a)\n    : __base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    size_type __n = __x.size();\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__x.__begin_, __x.__end_, __n);\n    }\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<_Tp, _Allocator>::vector(vector&& __x)\n#if _LIBCPP_STD_VER > 14\n        _NOEXCEPT\n#else\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)\n#endif\n    : __base(_VSTD::move(__x.__alloc()))\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n    __get_db()->swap(this, &__x);\n#endif\n    this->__begin_ = __x.__begin_;\n    this->__end_ = __x.__end_;\n    this->__end_cap() = __x.__end_cap();\n    __x.__begin_ = __x.__end_ = __x.__end_cap() = nullptr;\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<_Tp, _Allocator>::vector(vector&& __x, const allocator_type& __a)\n    : __base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__a == __x.__alloc())\n    {\n        this->__begin_ = __x.__begin_;\n        this->__end_ = __x.__end_;\n        this->__end_cap() = __x.__end_cap();\n        __x.__begin_ = __x.__end_ = __x.__end_cap() = nullptr;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n        __get_db()->swap(this, &__x);\n#endif\n    }\n    else\n    {\n        typedef move_iterator<iterator> _Ip;\n        assign(_Ip(__x.begin()), _Ip(__x.end()));\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<_Tp, _Allocator>::vector(initializer_list<value_type> __il)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__il.size() > 0)\n    {\n        allocate(__il.size());\n        __construct_at_end(__il.begin(), __il.end(), __il.size());\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<_Tp, _Allocator>::vector(initializer_list<value_type> __il, const allocator_type& __a)\n    : __base(__a)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__insert_c(this);\n#endif\n    if (__il.size() > 0)\n    {\n        allocate(__il.size());\n        __construct_at_end(__il.begin(), __il.end(), __il.size());\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<_Tp, _Allocator>&\nvector<_Tp, _Allocator>::operator=(vector&& __x)\n    _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value))\n{\n    __move_assign(__x, integral_constant<bool,\n          __alloc_traits::propagate_on_container_move_assignment::value>());\n    return *this;\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::__move_assign(vector& __c, false_type)\n    _NOEXCEPT_(__alloc_traits::is_always_equal::value)\n{\n    if (__base::__alloc() != __c.__alloc())\n    {\n        typedef move_iterator<iterator> _Ip;\n        assign(_Ip(__c.begin()), _Ip(__c.end()));\n    }\n    else\n        __move_assign(__c, true_type());\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::__move_assign(vector& __c, true_type)\n    _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n{\n    deallocate();\n    __base::__move_assign_alloc(__c); // this can throw\n    this->__begin_ = __c.__begin_;\n    this->__end_ = __c.__end_;\n    this->__end_cap() = __c.__end_cap();\n    __c.__begin_ = __c.__end_ = __c.__end_cap() = nullptr;\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->swap(this, &__c);\n#endif\n}\n\n#endif  // !_LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<_Tp, _Allocator>&\nvector<_Tp, _Allocator>::operator=(const vector& __x)\n{\n    if (this != &__x)\n    {\n        __base::__copy_assign_alloc(__x);\n        assign(__x.__begin_, __x.__end_);\n    }\n    return *this;\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIterator>\ntypename enable_if\n<\n     __is_input_iterator  <_InputIterator>::value &&\n    !__is_forward_iterator<_InputIterator>::value &&\n    is_constructible<\n       _Tp,\n       typename iterator_traits<_InputIterator>::reference>::value,\n    void\n>::type\nvector<_Tp, _Allocator>::assign(_InputIterator __first, _InputIterator __last)\n{\n    clear();\n    for (; __first != __last; ++__first)\n        push_back(*__first);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value &&\n    is_constructible<\n       _Tp,\n       typename iterator_traits<_ForwardIterator>::reference>::value,\n    void\n>::type\nvector<_Tp, _Allocator>::assign(_ForwardIterator __first, _ForwardIterator __last)\n{\n    size_type __new_size = static_cast<size_type>(_VSTD::distance(__first, __last));\n    if (__new_size <= capacity())\n    {\n        _ForwardIterator __mid = __last;\n        bool __growing = false;\n        if (__new_size > size())\n        {\n            __growing = true;\n            __mid =  __first;\n            _VSTD::advance(__mid, size());\n        }\n        pointer __m = _VSTD::copy(__first, __mid, this->__begin_);\n        if (__growing)\n            __construct_at_end(__mid, __last, __new_size - size());\n        else\n            this->__destruct_at_end(__m);\n    }\n    else\n    {\n        deallocate();\n        allocate(__recommend(__new_size));\n        __construct_at_end(__first, __last, __new_size);\n    }\n    __invalidate_all_iterators();\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::assign(size_type __n, const_reference __u)\n{\n    if (__n <= capacity())\n    {\n        size_type __s = size();\n        _VSTD::fill_n(this->__begin_, _VSTD::min(__n, __s), __u);\n        if (__n > __s)\n            __construct_at_end(__n - __s, __u);\n        else\n            this->__destruct_at_end(this->__begin_ + __n);\n    }\n    else\n    {\n        deallocate();\n        allocate(__recommend(static_cast<size_type>(__n)));\n        __construct_at_end(__n, __u);\n    }\n    __invalidate_all_iterators();\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::__make_iter(pointer __p) _NOEXCEPT\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return iterator(this, __p);\n#else\n    return iterator(__p);\n#endif\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::const_iterator\nvector<_Tp, _Allocator>::__make_iter(const_pointer __p) const _NOEXCEPT\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    return const_iterator(this, __p);\n#else\n    return const_iterator(__p);\n#endif\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::begin() _NOEXCEPT\n{\n    return __make_iter(this->__begin_);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::const_iterator\nvector<_Tp, _Allocator>::begin() const _NOEXCEPT\n{\n    return __make_iter(this->__begin_);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::end() _NOEXCEPT\n{\n    return __make_iter(this->__end_);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::const_iterator\nvector<_Tp, _Allocator>::end() const _NOEXCEPT\n{\n    return __make_iter(this->__end_);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::reference\nvector<_Tp, _Allocator>::operator[](size_type __n)\n{\n    _LIBCPP_ASSERT(__n < size(), \"vector[] index out of bounds\");\n    return this->__begin_[__n];\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::const_reference\nvector<_Tp, _Allocator>::operator[](size_type __n) const\n{\n    _LIBCPP_ASSERT(__n < size(), \"vector[] index out of bounds\");\n    return this->__begin_[__n];\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename vector<_Tp, _Allocator>::reference\nvector<_Tp, _Allocator>::at(size_type __n)\n{\n    if (__n >= size())\n        this->__throw_out_of_range();\n    return this->__begin_[__n];\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename vector<_Tp, _Allocator>::const_reference\nvector<_Tp, _Allocator>::at(size_type __n) const\n{\n    if (__n >= size())\n        this->__throw_out_of_range();\n    return this->__begin_[__n];\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::reserve(size_type __n)\n{\n    if (__n > capacity())\n    {\n        allocator_type& __a = this->__alloc();\n        __split_buffer<value_type, allocator_type&> __v(__n, size(), __a);\n        __swap_out_circular_buffer(__v);\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::shrink_to_fit() _NOEXCEPT\n{\n    if (capacity() > size())\n    {\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            allocator_type& __a = this->__alloc();\n            __split_buffer<value_type, allocator_type&> __v(size(), size(), __a);\n            __swap_out_circular_buffer(__v);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _Up>\nvoid\n#ifndef _LIBCPP_CXX03_LANG\nvector<_Tp, _Allocator>::__push_back_slow_path(_Up&& __x)\n#else\nvector<_Tp, _Allocator>::__push_back_slow_path(_Up& __x)\n#endif\n{\n    allocator_type& __a = this->__alloc();\n    __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), size(), __a);\n    // __v.push_back(_VSTD::forward<_Up>(__x));\n    __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(__v.__end_), _VSTD::forward<_Up>(__x));\n    __v.__end_++;\n    __swap_out_circular_buffer(__v);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nvector<_Tp, _Allocator>::push_back(const_reference __x)\n{\n    if (this->__end_ != this->__end_cap())\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        __alloc_traits::construct(this->__alloc(),\n                                  _VSTD::__to_raw_pointer(this->__end_), __x);\n        __annotator.__done();\n        ++this->__end_;\n    }\n    else\n        __push_back_slow_path(__x);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nvector<_Tp, _Allocator>::push_back(value_type&& __x)\n{\n    if (this->__end_ < this->__end_cap())\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        __alloc_traits::construct(this->__alloc(),\n                                  _VSTD::__to_raw_pointer(this->__end_),\n                                  _VSTD::move(__x));\n        __annotator.__done();\n        ++this->__end_;\n    }\n    else\n        __push_back_slow_path(_VSTD::move(__x));\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class... _Args>\nvoid\nvector<_Tp, _Allocator>::__emplace_back_slow_path(_Args&&... __args)\n{\n    allocator_type& __a = this->__alloc();\n    __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), size(), __a);\n//    __v.emplace_back(_VSTD::forward<_Args>(__args)...);\n    __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(__v.__end_), _VSTD::forward<_Args>(__args)...);\n    __v.__end_++;\n    __swap_out_circular_buffer(__v);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class... _Args>\ninline\n#if _LIBCPP_STD_VER > 14\ntypename vector<_Tp, _Allocator>::reference\n#else\nvoid\n#endif\nvector<_Tp, _Allocator>::emplace_back(_Args&&... __args)\n{\n    if (this->__end_ < this->__end_cap())\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        __alloc_traits::construct(this->__alloc(),\n                                  _VSTD::__to_raw_pointer(this->__end_),\n                                  _VSTD::forward<_Args>(__args)...);\n        __annotator.__done();\n        ++this->__end_;\n    }\n    else\n        __emplace_back_slow_path(_VSTD::forward<_Args>(__args)...);\n#if _LIBCPP_STD_VER > 14\n    return this->back();\n#endif\n}\n\n#endif  // !_LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ninline\nvoid\nvector<_Tp, _Allocator>::pop_back()\n{\n    _LIBCPP_ASSERT(!empty(), \"vector::pop_back called for empty vector\");\n    this->__destruct_at_end(this->__end_ - 1);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::erase(const_iterator __position)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,\n        \"vector::erase(iterator) called with an iterator not\"\n        \" referring to this vector\");\n#endif\n    _LIBCPP_ASSERT(__position != end(),\n        \"vector::erase(iterator) called with a non-dereferenceable iterator\");\n    difference_type __ps = __position - cbegin();\n    pointer __p = this->__begin_ + __ps;\n    this->__destruct_at_end(_VSTD::move(__p + 1, this->__end_, __p));\n    this->__invalidate_iterators_past(__p-1);\n    iterator __r = __make_iter(__p);\n    return __r;\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::erase(const_iterator __first, const_iterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__first) == this,\n        \"vector::erase(iterator,  iterator) called with an iterator not\"\n        \" referring to this vector\");\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__last) == this,\n        \"vector::erase(iterator,  iterator) called with an iterator not\"\n        \" referring to this vector\");\n#endif\n    _LIBCPP_ASSERT(__first <= __last, \"vector::erase(first, last) called with invalid range\");\n    pointer __p = this->__begin_ + (__first - begin());\n    if (__first != __last) {\n        this->__destruct_at_end(_VSTD::move(__p + (__last - __first), this->__end_, __p));\n        this->__invalidate_iterators_past(__p - 1);\n    }\n    iterator __r = __make_iter(__p);\n    return __r;\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::__move_range(pointer __from_s, pointer __from_e, pointer __to)\n{\n    pointer __old_last = this->__end_;\n    difference_type __n = __old_last - __to;\n    for (pointer __i = __from_s + __n; __i < __from_e; ++__i, ++this->__end_)\n        __alloc_traits::construct(this->__alloc(),\n                                  _VSTD::__to_raw_pointer(this->__end_),\n                                  _VSTD::move(*__i));\n    _VSTD::move_backward(__from_s, __from_s + __n, __old_last);\n}\n\ntemplate <class _Tp, class _Allocator>\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::insert(const_iterator __position, const_reference __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,\n        \"vector::insert(iterator, x) called with an iterator not\"\n        \" referring to this vector\");\n#endif\n    pointer __p = this->__begin_ + (__position - begin());\n    if (this->__end_ < this->__end_cap())\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        if (__p == this->__end_)\n        {\n            __alloc_traits::construct(this->__alloc(),\n                                      _VSTD::__to_raw_pointer(this->__end_), __x);\n            ++this->__end_;\n        }\n        else\n        {\n            __move_range(__p, this->__end_, __p + 1);\n            const_pointer __xr = pointer_traits<const_pointer>::pointer_to(__x);\n            if (__p <= __xr && __xr < this->__end_)\n                ++__xr;\n            *__p = *__xr;\n        }\n        __annotator.__done();\n    }\n    else\n    {\n        allocator_type& __a = this->__alloc();\n        __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, __a);\n        __v.push_back(__x);\n        __p = __swap_out_circular_buffer(__v, __p);\n    }\n    return __make_iter(__p);\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::insert(const_iterator __position, value_type&& __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,\n        \"vector::insert(iterator, x) called with an iterator not\"\n        \" referring to this vector\");\n#endif\n    pointer __p = this->__begin_ + (__position - begin());\n    if (this->__end_ < this->__end_cap())\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        if (__p == this->__end_)\n        {\n            __alloc_traits::construct(this->__alloc(),\n                                      _VSTD::__to_raw_pointer(this->__end_),\n                                      _VSTD::move(__x));\n            ++this->__end_;\n        }\n        else\n        {\n            __move_range(__p, this->__end_, __p + 1);\n            *__p = _VSTD::move(__x);\n        }\n        __annotator.__done();\n    }\n    else\n    {\n        allocator_type& __a = this->__alloc();\n        __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, __a);\n        __v.push_back(_VSTD::move(__x));\n        __p = __swap_out_circular_buffer(__v, __p);\n    }\n    return __make_iter(__p);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class... _Args>\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::emplace(const_iterator __position, _Args&&... __args)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,\n        \"vector::emplace(iterator, x) called with an iterator not\"\n        \" referring to this vector\");\n#endif\n    pointer __p = this->__begin_ + (__position - begin());\n    if (this->__end_ < this->__end_cap())\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        if (__p == this->__end_)\n        {\n            __alloc_traits::construct(this->__alloc(),\n                                      _VSTD::__to_raw_pointer(this->__end_),\n                                      _VSTD::forward<_Args>(__args)...);\n            ++this->__end_;\n        }\n        else\n        {\n            __temp_value<value_type, _Allocator> __tmp(this->__alloc(), _VSTD::forward<_Args>(__args)...);\n            __move_range(__p, this->__end_, __p + 1);\n            *__p = _VSTD::move(__tmp.get());\n        }\n        __annotator.__done();\n    }\n    else\n    {\n        allocator_type& __a = this->__alloc();\n        __split_buffer<value_type, allocator_type&> __v(__recommend(size() + 1), __p - this->__begin_, __a);\n        __v.emplace_back(_VSTD::forward<_Args>(__args)...);\n        __p = __swap_out_circular_buffer(__v, __p);\n    }\n    return __make_iter(__p);\n}\n\n#endif  // !_LIBCPP_CXX03_LANG\n\ntemplate <class _Tp, class _Allocator>\ntypename vector<_Tp, _Allocator>::iterator\nvector<_Tp, _Allocator>::insert(const_iterator __position, size_type __n, const_reference __x)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,\n        \"vector::insert(iterator, n, x) called with an iterator not\"\n        \" referring to this vector\");\n#endif\n    pointer __p = this->__begin_ + (__position - begin());\n    if (__n > 0)\n    {\n        if (__n <= static_cast<size_type>(this->__end_cap() - this->__end_))\n        {\n            size_type __old_n = __n;\n            pointer __old_last = this->__end_;\n            if (__n > static_cast<size_type>(this->__end_ - __p))\n            {\n                size_type __cx = __n - (this->__end_ - __p);\n                __construct_at_end(__cx, __x);\n                __n -= __cx;\n            }\n            if (__n > 0)\n            {\n                __RAII_IncreaseAnnotator __annotator(*this, __n);\n                __move_range(__p, __old_last, __p + __old_n);\n                __annotator.__done();\n                const_pointer __xr = pointer_traits<const_pointer>::pointer_to(__x);\n                if (__p <= __xr && __xr < this->__end_)\n                    __xr += __old_n;\n                _VSTD::fill_n(__p, __n, *__xr);\n            }\n        }\n        else\n        {\n            allocator_type& __a = this->__alloc();\n            __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), __p - this->__begin_, __a);\n            __v.__construct_at_end(__n, __x);\n            __p = __swap_out_circular_buffer(__v, __p);\n        }\n    }\n    return __make_iter(__p);\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _InputIterator>\ntypename enable_if\n<\n     __is_input_iterator  <_InputIterator>::value &&\n    !__is_forward_iterator<_InputIterator>::value &&\n    is_constructible<\n       _Tp,\n       typename iterator_traits<_InputIterator>::reference>::value,\n    typename vector<_Tp, _Allocator>::iterator\n>::type\nvector<_Tp, _Allocator>::insert(const_iterator __position, _InputIterator __first, _InputIterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,\n        \"vector::insert(iterator, range) called with an iterator not\"\n        \" referring to this vector\");\n#endif\n    difference_type __off = __position - begin();\n    pointer __p = this->__begin_ + __off;\n    allocator_type& __a = this->__alloc();\n    pointer __old_last = this->__end_;\n    for (; this->__end_ != this->__end_cap() && __first != __last; ++__first)\n    {\n        __RAII_IncreaseAnnotator __annotator(*this);\n        __alloc_traits::construct(__a, _VSTD::__to_raw_pointer(this->__end_),\n                                  *__first);\n        ++this->__end_;\n        __annotator.__done();\n    }\n    __split_buffer<value_type, allocator_type&> __v(__a);\n    if (__first != __last)\n    {\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            __v.__construct_at_end(__first, __last);\n            difference_type __old_size = __old_last - this->__begin_;\n            difference_type __old_p = __p - this->__begin_;\n            reserve(__recommend(size() + __v.size()));\n            __p = this->__begin_ + __old_p;\n            __old_last = this->__begin_ + __old_size;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            erase(__make_iter(__old_last), end());\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n    __p = _VSTD::rotate(__p, __old_last, this->__end_);\n    insert(__make_iter(__p), make_move_iterator(__v.begin()),\n                                    make_move_iterator(__v.end()));\n    return begin() + __off;\n}\n\ntemplate <class _Tp, class _Allocator>\ntemplate <class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value &&\n    is_constructible<\n       _Tp,\n       typename iterator_traits<_ForwardIterator>::reference>::value,\n    typename vector<_Tp, _Allocator>::iterator\n>::type\nvector<_Tp, _Allocator>::insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last)\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    _LIBCPP_ASSERT(__get_const_db()->__find_c_from_i(&__position) == this,\n        \"vector::insert(iterator, range) called with an iterator not\"\n        \" referring to this vector\");\n#endif\n    pointer __p = this->__begin_ + (__position - begin());\n    difference_type __n = _VSTD::distance(__first, __last);\n    if (__n > 0)\n    {\n        if (__n <= this->__end_cap() - this->__end_)\n        {\n            size_type __old_n = __n;\n            pointer __old_last = this->__end_;\n            _ForwardIterator __m = __last;\n            difference_type __dx = this->__end_ - __p;\n            if (__n > __dx)\n            {\n                __m = __first;\n                difference_type __diff = this->__end_ - __p;\n                _VSTD::advance(__m, __diff);\n                __construct_at_end(__m, __last, __n - __diff);\n                __n = __dx;\n            }\n            if (__n > 0)\n            {\n                __RAII_IncreaseAnnotator __annotator(*this, __n);\n                __move_range(__p, __old_last, __p + __old_n);\n                __annotator.__done();\n                _VSTD::copy(__first, __m, __p);\n            }\n        }\n        else\n        {\n            allocator_type& __a = this->__alloc();\n            __split_buffer<value_type, allocator_type&> __v(__recommend(size() + __n), __p - this->__begin_, __a);\n            __v.__construct_at_end(__first, __last);\n            __p = __swap_out_circular_buffer(__v, __p);\n        }\n    }\n    return __make_iter(__p);\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::resize(size_type __sz)\n{\n    size_type __cs = size();\n    if (__cs < __sz)\n        this->__append(__sz - __cs);\n    else if (__cs > __sz)\n        this->__destruct_at_end(this->__begin_ + __sz);\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::resize(size_type __sz, const_reference __x)\n{\n    size_type __cs = size();\n    if (__cs < __sz)\n        this->__append(__sz - __cs, __x);\n    else if (__cs > __sz)\n        this->__destruct_at_end(this->__begin_ + __sz);\n}\n\ntemplate <class _Tp, class _Allocator>\nvoid\nvector<_Tp, _Allocator>::swap(vector& __x)\n#if _LIBCPP_STD_VER >= 14\n    _NOEXCEPT_DEBUG\n#else\n    _NOEXCEPT_DEBUG_(!__alloc_traits::propagate_on_container_swap::value ||\n                __is_nothrow_swappable<allocator_type>::value)\n#endif\n{\n    _LIBCPP_ASSERT(__alloc_traits::propagate_on_container_swap::value ||\n                   this->__alloc() == __x.__alloc(),\n                   \"vector::swap: Either propagate_on_container_swap must be true\"\n                   \" or the allocators must compare equal\");\n    _VSTD::swap(this->__begin_, __x.__begin_);\n    _VSTD::swap(this->__end_, __x.__end_);\n    _VSTD::swap(this->__end_cap(), __x.__end_cap());\n    __swap_allocator(this->__alloc(), __x.__alloc(),\n        integral_constant<bool,__alloc_traits::propagate_on_container_swap::value>());\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->swap(this, &__x);\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n}\n\ntemplate <class _Tp, class _Allocator>\nbool\nvector<_Tp, _Allocator>::__invariants() const\n{\n    if (this->__begin_ == nullptr)\n    {\n        if (this->__end_ != nullptr || this->__end_cap() != nullptr)\n            return false;\n    }\n    else\n    {\n        if (this->__begin_ > this->__end_)\n            return false;\n        if (this->__begin_ == this->__end_cap())\n            return false;\n        if (this->__end_ > this->__end_cap())\n            return false;\n    }\n    return true;\n}\n\n#if _LIBCPP_DEBUG_LEVEL >= 2\n\ntemplate <class _Tp, class _Allocator>\nbool\nvector<_Tp, _Allocator>::__dereferenceable(const const_iterator* __i) const\n{\n    return this->__begin_ <= __i->base() && __i->base() < this->__end_;\n}\n\ntemplate <class _Tp, class _Allocator>\nbool\nvector<_Tp, _Allocator>::__decrementable(const const_iterator* __i) const\n{\n    return this->__begin_ < __i->base() && __i->base() <= this->__end_;\n}\n\ntemplate <class _Tp, class _Allocator>\nbool\nvector<_Tp, _Allocator>::__addable(const const_iterator* __i, ptrdiff_t __n) const\n{\n    const_pointer __p = __i->base() + __n;\n    return this->__begin_ <= __p && __p <= this->__end_;\n}\n\ntemplate <class _Tp, class _Allocator>\nbool\nvector<_Tp, _Allocator>::__subscriptable(const const_iterator* __i, ptrdiff_t __n) const\n{\n    const_pointer __p = __i->base() + __n;\n    return this->__begin_ <= __p && __p < this->__end_;\n}\n\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nvector<_Tp, _Allocator>::__invalidate_all_iterators()\n{\n#if _LIBCPP_DEBUG_LEVEL >= 2\n    __get_db()->__invalidate_all(this);\n#endif  // _LIBCPP_DEBUG_LEVEL >= 2\n}\n\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nvector<_Tp, _Allocator>::__invalidate_iterators_past(pointer __new_last) {\n#if _LIBCPP_DEBUG_LEVEL >= 2\n  __c_node* __c = __get_db()->__find_c_and_lock(this);\n  for (__i_node** __p = __c->end_; __p != __c->beg_; ) {\n    --__p;\n    const_iterator* __i = static_cast<const_iterator*>((*__p)->__i_);\n    if (__i->base() > __new_last) {\n      (*__p)->__c_ = nullptr;\n      if (--__c->end_ != __p)\n        memmove(__p, __p+1, (__c->end_ - __p)*sizeof(__i_node*));\n    }\n  }\n  __get_db()->unlock();\n#else\n  ((void)__new_last);\n#endif\n}\n\n// vector<bool>\n\ntemplate <class _Allocator> class vector<bool, _Allocator>;\n\ntemplate <class _Allocator> struct hash<vector<bool, _Allocator> >;\n\ntemplate <class _Allocator>\nstruct __has_storage_type<vector<bool, _Allocator> >\n{\n    static const bool value = true;\n};\n\ntemplate <class _Allocator>\nclass _LIBCPP_TEMPLATE_VIS vector<bool, _Allocator>\n    : private __vector_base_common<true>\n{\npublic:\n    typedef vector                                   __self;\n    typedef bool                                     value_type;\n    typedef _Allocator                               allocator_type;\n    typedef allocator_traits<allocator_type>         __alloc_traits;\n    typedef typename __alloc_traits::size_type       size_type;\n    typedef typename __alloc_traits::difference_type difference_type;\n    typedef size_type __storage_type;\n    typedef __bit_iterator<vector, false>            pointer;\n    typedef __bit_iterator<vector, true>             const_pointer;\n    typedef pointer                                  iterator;\n    typedef const_pointer                            const_iterator;\n    typedef _VSTD::reverse_iterator<iterator>         reverse_iterator;\n    typedef _VSTD::reverse_iterator<const_iterator>   const_reverse_iterator;\n\nprivate:\n    typedef typename __rebind_alloc_helper<__alloc_traits, __storage_type>::type __storage_allocator;\n    typedef allocator_traits<__storage_allocator>    __storage_traits;\n    typedef typename __storage_traits::pointer       __storage_pointer;\n    typedef typename __storage_traits::const_pointer __const_storage_pointer;\n\n    __storage_pointer                                      __begin_;\n    size_type                                              __size_;\n    __compressed_pair<size_type, __storage_allocator> __cap_alloc_;\npublic:\n    typedef __bit_reference<vector>                  reference;\n    typedef __bit_const_reference<vector>            const_reference;\nprivate:\n    _LIBCPP_INLINE_VISIBILITY\n    size_type& __cap() _NOEXCEPT\n        {return __cap_alloc_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n    const size_type& __cap() const _NOEXCEPT\n        {return __cap_alloc_.first();}\n    _LIBCPP_INLINE_VISIBILITY\n    __storage_allocator& __alloc() _NOEXCEPT\n        {return __cap_alloc_.second();}\n    _LIBCPP_INLINE_VISIBILITY\n    const __storage_allocator& __alloc() const _NOEXCEPT\n        {return __cap_alloc_.second();}\n\n    static const unsigned __bits_per_word = static_cast<unsigned>(sizeof(__storage_type) * CHAR_BIT);\n\n    _LIBCPP_INLINE_VISIBILITY\n    static size_type __internal_cap_to_external(size_type __n) _NOEXCEPT\n        {return __n * __bits_per_word;}\n    _LIBCPP_INLINE_VISIBILITY\n    static size_type __external_cap_to_internal(size_type __n) _NOEXCEPT\n        {return (__n - 1) / __bits_per_word + 1;}\n\npublic:\n    _LIBCPP_INLINE_VISIBILITY\n    vector() _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value);\n\n    _LIBCPP_INLINE_VISIBILITY explicit vector(const allocator_type& __a)\n#if _LIBCPP_STD_VER <= 14\n        _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value);\n#else\n        _NOEXCEPT;\n#endif\n    ~vector();\n    explicit vector(size_type __n);\n#if _LIBCPP_STD_VER > 11\n    explicit vector(size_type __n, const allocator_type& __a);\n#endif\n    vector(size_type __n, const value_type& __v);\n    vector(size_type __n, const value_type& __v, const allocator_type& __a);\n    template <class _InputIterator>\n        vector(_InputIterator __first, _InputIterator __last,\n               typename enable_if<__is_input_iterator  <_InputIterator>::value &&\n                                 !__is_forward_iterator<_InputIterator>::value>::type* = 0);\n    template <class _InputIterator>\n        vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a,\n               typename enable_if<__is_input_iterator  <_InputIterator>::value &&\n                                 !__is_forward_iterator<_InputIterator>::value>::type* = 0);\n    template <class _ForwardIterator>\n        vector(_ForwardIterator __first, _ForwardIterator __last,\n               typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type* = 0);\n    template <class _ForwardIterator>\n        vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a,\n               typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type* = 0);\n\n    vector(const vector& __v);\n    vector(const vector& __v, const allocator_type& __a);\n    vector& operator=(const vector& __v);\n\n#ifndef _LIBCPP_CXX03_LANG\n    vector(initializer_list<value_type> __il);\n    vector(initializer_list<value_type> __il, const allocator_type& __a);\n\n    _LIBCPP_INLINE_VISIBILITY\n    vector(vector&& __v)\n#if _LIBCPP_STD_VER > 14\n        _NOEXCEPT;\n#else\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value);\n#endif\n    vector(vector&& __v, const allocator_type& __a);\n    _LIBCPP_INLINE_VISIBILITY\n    vector& operator=(vector&& __v)\n        _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value));\n\n    _LIBCPP_INLINE_VISIBILITY\n    vector& operator=(initializer_list<value_type> __il)\n        {assign(__il.begin(), __il.end()); return *this;}\n\n#endif  // !_LIBCPP_CXX03_LANG\n\n    template <class _InputIterator>\n        typename enable_if\n        <\n            __is_input_iterator<_InputIterator>::value &&\n           !__is_forward_iterator<_InputIterator>::value,\n           void\n        >::type\n        assign(_InputIterator __first, _InputIterator __last);\n    template <class _ForwardIterator>\n        typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value,\n           void\n        >::type\n        assign(_ForwardIterator __first, _ForwardIterator __last);\n\n    void assign(size_type __n, const value_type& __x);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    void assign(initializer_list<value_type> __il)\n        {assign(__il.begin(), __il.end());}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY allocator_type get_allocator() const _NOEXCEPT\n        {return allocator_type(this->__alloc());}\n\n    size_type max_size() const _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    size_type capacity() const _NOEXCEPT\n        {return __internal_cap_to_external(__cap());}\n    _LIBCPP_INLINE_VISIBILITY\n    size_type size() const _NOEXCEPT\n        {return __size_;}\n    _LIBCPP_INLINE_VISIBILITY\n    bool empty() const _NOEXCEPT\n        {return __size_ == 0;}\n    void reserve(size_type __n);\n    void shrink_to_fit() _NOEXCEPT;\n\n    _LIBCPP_INLINE_VISIBILITY\n    iterator begin() _NOEXCEPT\n        {return __make_iter(0);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator begin() const _NOEXCEPT\n        {return __make_iter(0);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator end() _NOEXCEPT\n        {return __make_iter(__size_);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator end()   const _NOEXCEPT\n        {return __make_iter(__size_);}\n\n    _LIBCPP_INLINE_VISIBILITY\n    reverse_iterator rbegin() _NOEXCEPT\n        {return       reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rbegin() const _NOEXCEPT\n        {return const_reverse_iterator(end());}\n    _LIBCPP_INLINE_VISIBILITY\n    reverse_iterator rend() _NOEXCEPT\n        {return       reverse_iterator(begin());}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator rend()   const _NOEXCEPT\n        {return const_reverse_iterator(begin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator         cbegin()  const _NOEXCEPT\n        {return __make_iter(0);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator         cend()    const _NOEXCEPT\n        {return __make_iter(__size_);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crbegin() const _NOEXCEPT\n        {return rbegin();}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reverse_iterator crend()   const _NOEXCEPT\n        {return rend();}\n\n    _LIBCPP_INLINE_VISIBILITY reference       operator[](size_type __n)       {return __make_ref(__n);}\n    _LIBCPP_INLINE_VISIBILITY const_reference operator[](size_type __n) const {return __make_ref(__n);}\n    reference       at(size_type __n);\n    const_reference at(size_type __n) const;\n\n    _LIBCPP_INLINE_VISIBILITY reference       front()       {return __make_ref(0);}\n    _LIBCPP_INLINE_VISIBILITY const_reference front() const {return __make_ref(0);}\n    _LIBCPP_INLINE_VISIBILITY reference       back()        {return __make_ref(__size_ - 1);}\n    _LIBCPP_INLINE_VISIBILITY const_reference back()  const {return __make_ref(__size_ - 1);}\n\n    void push_back(const value_type& __x);\n#if _LIBCPP_STD_VER > 11\n    template <class... _Args>\n#if _LIBCPP_STD_VER > 14\n    _LIBCPP_INLINE_VISIBILITY reference emplace_back(_Args&&... __args)\n#else\n    _LIBCPP_INLINE_VISIBILITY void      emplace_back(_Args&&... __args)\n#endif\n    {\n        push_back ( value_type ( _VSTD::forward<_Args>(__args)... ));\n#if _LIBCPP_STD_VER > 14\n        return this->back();\n#endif\n    }\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY void pop_back() {--__size_;}\n\n#if _LIBCPP_STD_VER > 11\n    template <class... _Args>\n   _LIBCPP_INLINE_VISIBILITY iterator emplace(const_iterator position, _Args&&... __args)\n        { return insert ( position, value_type ( _VSTD::forward<_Args>(__args)... )); }\n#endif\n\n    iterator insert(const_iterator __position, const value_type& __x);\n    iterator insert(const_iterator __position, size_type __n, const value_type& __x);\n    iterator insert(const_iterator __position, size_type __n, const_reference __x);\n    template <class _InputIterator>\n        typename enable_if\n        <\n             __is_input_iterator  <_InputIterator>::value &&\n            !__is_forward_iterator<_InputIterator>::value,\n            iterator\n        >::type\n        insert(const_iterator __position, _InputIterator __first, _InputIterator __last);\n    template <class _ForwardIterator>\n        typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value,\n            iterator\n        >::type\n        insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last);\n\n#ifndef _LIBCPP_CXX03_LANG\n    _LIBCPP_INLINE_VISIBILITY\n    iterator insert(const_iterator __position, initializer_list<value_type> __il)\n        {return insert(__position, __il.begin(), __il.end());}\n#endif\n\n    _LIBCPP_INLINE_VISIBILITY iterator erase(const_iterator __position);\n    iterator erase(const_iterator __first, const_iterator __last);\n\n    _LIBCPP_INLINE_VISIBILITY\n    void clear() _NOEXCEPT {__size_ = 0;}\n\n    void swap(vector&)\n#if _LIBCPP_STD_VER >= 14\n        _NOEXCEPT;\n#else\n        _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||\n                    __is_nothrow_swappable<allocator_type>::value);\n#endif\n    static void swap(reference __x, reference __y) _NOEXCEPT { _VSTD::swap(__x, __y); }\n\n    void resize(size_type __sz, value_type __x = false);\n    void flip() _NOEXCEPT;\n\n    bool __invariants() const;\n\nprivate:\n    _LIBCPP_INLINE_VISIBILITY void __invalidate_all_iterators();\n    void allocate(size_type __n);\n    void deallocate() _NOEXCEPT;\n    _LIBCPP_INLINE_VISIBILITY\n    static size_type __align_it(size_type __new_size) _NOEXCEPT\n        {return __new_size + (__bits_per_word-1) & ~((size_type)__bits_per_word-1);};\n    _LIBCPP_INLINE_VISIBILITY  size_type __recommend(size_type __new_size) const;\n    _LIBCPP_INLINE_VISIBILITY void __construct_at_end(size_type __n, bool __x);\n    template <class _ForwardIterator>\n        typename enable_if\n        <\n            __is_forward_iterator<_ForwardIterator>::value,\n            void\n        >::type\n        __construct_at_end(_ForwardIterator __first, _ForwardIterator __last);\n    void __append(size_type __n, const_reference __x);\n    _LIBCPP_INLINE_VISIBILITY\n    reference __make_ref(size_type __pos) _NOEXCEPT\n        {return reference(__begin_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);}\n    _LIBCPP_INLINE_VISIBILITY\n    const_reference __make_ref(size_type __pos) const _NOEXCEPT\n        {return const_reference(__begin_ + __pos / __bits_per_word, __storage_type(1) << __pos % __bits_per_word);}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __make_iter(size_type __pos) _NOEXCEPT\n        {return iterator(__begin_ + __pos / __bits_per_word, static_cast<unsigned>(__pos % __bits_per_word));}\n    _LIBCPP_INLINE_VISIBILITY\n    const_iterator __make_iter(size_type __pos) const _NOEXCEPT\n        {return const_iterator(__begin_ + __pos / __bits_per_word, static_cast<unsigned>(__pos % __bits_per_word));}\n    _LIBCPP_INLINE_VISIBILITY\n    iterator __const_iterator_cast(const_iterator __p) _NOEXCEPT\n        {return begin() + (__p - cbegin());}\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const vector& __v)\n        {__copy_assign_alloc(__v, integral_constant<bool,\n                      __storage_traits::propagate_on_container_copy_assignment::value>());}\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const vector& __c, true_type)\n        {\n            if (__alloc() != __c.__alloc())\n                deallocate();\n            __alloc() = __c.__alloc();\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __copy_assign_alloc(const vector&, false_type)\n        {}\n\n    void __move_assign(vector& __c, false_type);\n    void __move_assign(vector& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(vector& __c)\n        _NOEXCEPT_(\n            !__storage_traits::propagate_on_container_move_assignment::value ||\n            is_nothrow_move_assignable<allocator_type>::value)\n        {__move_assign_alloc(__c, integral_constant<bool,\n                      __storage_traits::propagate_on_container_move_assignment::value>());}\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(vector& __c, true_type)\n        _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n        {\n            __alloc() = _VSTD::move(__c.__alloc());\n        }\n\n    _LIBCPP_INLINE_VISIBILITY\n    void __move_assign_alloc(vector&, false_type)\n        _NOEXCEPT\n        {}\n\n    size_t __hash_code() const _NOEXCEPT;\n\n    friend class __bit_reference<vector>;\n    friend class __bit_const_reference<vector>;\n    friend class __bit_iterator<vector, false>;\n    friend class __bit_iterator<vector, true>;\n    friend struct __bit_array<vector>;\n    friend struct _LIBCPP_TEMPLATE_VIS hash<vector>;\n};\n\ntemplate <class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nvector<bool, _Allocator>::__invalidate_all_iterators()\n{\n}\n\n//  Allocate space for __n objects\n//  throws length_error if __n > max_size()\n//  throws (probably bad_alloc) if memory run out\n//  Precondition:  __begin_ == __end_ == __cap() == 0\n//  Precondition:  __n > 0\n//  Postcondition:  capacity() == __n\n//  Postcondition:  size() == 0\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::allocate(size_type __n)\n{\n    if (__n > max_size())\n        this->__throw_length_error();\n    __n = __external_cap_to_internal(__n);\n    this->__begin_ = __storage_traits::allocate(this->__alloc(), __n);\n    this->__size_ = 0;\n    this->__cap() = __n;\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::deallocate() _NOEXCEPT\n{\n    if (this->__begin_ != nullptr)\n    {\n        __storage_traits::deallocate(this->__alloc(), this->__begin_, __cap());\n        __invalidate_all_iterators();\n        this->__begin_ = nullptr;\n        this->__size_ = this->__cap() = 0;\n    }\n}\n\ntemplate <class _Allocator>\ntypename vector<bool, _Allocator>::size_type\nvector<bool, _Allocator>::max_size() const _NOEXCEPT\n{\n    size_type __amax = __storage_traits::max_size(__alloc());\n    size_type __nmax = numeric_limits<size_type>::max() / 2;  // end() >= begin(), always\n    if (__nmax / __bits_per_word <= __amax)\n        return __nmax;\n    return __internal_cap_to_external(__amax);\n}\n\n//  Precondition:  __new_size > capacity()\ntemplate <class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<bool, _Allocator>::size_type\nvector<bool, _Allocator>::__recommend(size_type __new_size) const\n{\n    const size_type __ms = max_size();\n    if (__new_size > __ms)\n        this->__throw_length_error();\n    const size_type __cap = capacity();\n    if (__cap >= __ms / 2)\n        return __ms;\n    return _VSTD::max(2*__cap, __align_it(__new_size));\n}\n\n//  Default constructs __n objects starting at __end_\n//  Precondition:  __n > 0\n//  Precondition:  size() + __n <= capacity()\n//  Postcondition:  size() == size() + __n\ntemplate <class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nvector<bool, _Allocator>::__construct_at_end(size_type __n, bool __x)\n{\n    size_type __old_size = this->__size_;\n    this->__size_ += __n;\n    _VSTD::fill_n(__make_iter(__old_size), __n, __x);\n}\n\ntemplate <class _Allocator>\ntemplate <class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value,\n    void\n>::type\nvector<bool, _Allocator>::__construct_at_end(_ForwardIterator __first, _ForwardIterator __last)\n{\n    size_type __old_size = this->__size_;\n    this->__size_ += _VSTD::distance(__first, __last);\n    _VSTD::copy(__first, __last, __make_iter(__old_size));\n}\n\ntemplate <class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<bool, _Allocator>::vector()\n    _NOEXCEPT_(is_nothrow_default_constructible<allocator_type>::value)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0)\n{\n}\n\ntemplate <class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<bool, _Allocator>::vector(const allocator_type& __a)\n#if _LIBCPP_STD_VER <= 14\n        _NOEXCEPT_(is_nothrow_copy_constructible<allocator_type>::value)\n#else\n        _NOEXCEPT\n#endif\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, static_cast<__storage_allocator>(__a))\n{\n}\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(size_type __n)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0)\n{\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__n, false);\n    }\n}\n\n#if _LIBCPP_STD_VER > 11\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(size_type __n, const allocator_type& __a)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, static_cast<__storage_allocator>(__a))\n{\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__n, false);\n    }\n}\n#endif\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(size_type __n, const value_type& __x)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0)\n{\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__n, __x);\n    }\n}\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(size_type __n, const value_type& __x, const allocator_type& __a)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, static_cast<__storage_allocator>(__a))\n{\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__n, __x);\n    }\n}\n\ntemplate <class _Allocator>\ntemplate <class _InputIterator>\nvector<bool, _Allocator>::vector(_InputIterator __first, _InputIterator __last,\n       typename enable_if<__is_input_iterator  <_InputIterator>::value &&\n                         !__is_forward_iterator<_InputIterator>::value>::type*)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0)\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        for (; __first != __last; ++__first)\n            push_back(*__first);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        if (__begin_ != nullptr)\n            __storage_traits::deallocate(__alloc(), __begin_, __cap());\n        __invalidate_all_iterators();\n        throw;\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate <class _Allocator>\ntemplate <class _InputIterator>\nvector<bool, _Allocator>::vector(_InputIterator __first, _InputIterator __last, const allocator_type& __a,\n       typename enable_if<__is_input_iterator  <_InputIterator>::value &&\n                         !__is_forward_iterator<_InputIterator>::value>::type*)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, static_cast<__storage_allocator>(__a))\n{\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    try\n    {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n        for (; __first != __last; ++__first)\n            push_back(*__first);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n    }\n    catch (...)\n    {\n        if (__begin_ != nullptr)\n            __storage_traits::deallocate(__alloc(), __begin_, __cap());\n        __invalidate_all_iterators();\n        throw;\n    }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n}\n\ntemplate <class _Allocator>\ntemplate <class _ForwardIterator>\nvector<bool, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last,\n                                typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type*)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0)\n{\n    size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__first, __last);\n    }\n}\n\ntemplate <class _Allocator>\ntemplate <class _ForwardIterator>\nvector<bool, _Allocator>::vector(_ForwardIterator __first, _ForwardIterator __last, const allocator_type& __a,\n                                typename enable_if<__is_forward_iterator<_ForwardIterator>::value>::type*)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, static_cast<__storage_allocator>(__a))\n{\n    size_type __n = static_cast<size_type>(_VSTD::distance(__first, __last));\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__first, __last);\n    }\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(initializer_list<value_type> __il)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0)\n{\n    size_type __n = static_cast<size_type>(__il.size());\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__il.begin(), __il.end());\n    }\n}\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(initializer_list<value_type> __il, const allocator_type& __a)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, static_cast<__storage_allocator>(__a))\n{\n    size_type __n = static_cast<size_type>(__il.size());\n    if (__n > 0)\n    {\n        allocate(__n);\n        __construct_at_end(__il.begin(), __il.end());\n    }\n}\n\n#endif  // _LIBCPP_CXX03_LANG\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::~vector()\n{\n    if (__begin_ != nullptr)\n        __storage_traits::deallocate(__alloc(), __begin_, __cap());\n    __invalidate_all_iterators();\n}\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(const vector& __v)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, __storage_traits::select_on_container_copy_construction(__v.__alloc()))\n{\n    if (__v.size() > 0)\n    {\n        allocate(__v.size());\n        __construct_at_end(__v.begin(), __v.end());\n    }\n}\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(const vector& __v, const allocator_type& __a)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, __a)\n{\n    if (__v.size() > 0)\n    {\n        allocate(__v.size());\n        __construct_at_end(__v.begin(), __v.end());\n    }\n}\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>&\nvector<bool, _Allocator>::operator=(const vector& __v)\n{\n    if (this != &__v)\n    {\n        __copy_assign_alloc(__v);\n        if (__v.__size_)\n        {\n            if (__v.__size_ > capacity())\n            {\n                deallocate();\n                allocate(__v.__size_);\n            }\n            _VSTD::copy(__v.__begin_, __v.__begin_ + __external_cap_to_internal(__v.__size_), __begin_);\n        }\n        __size_ = __v.__size_;\n    }\n    return *this;\n}\n\n#ifndef _LIBCPP_CXX03_LANG\n\ntemplate <class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<bool, _Allocator>::vector(vector&& __v)\n#if _LIBCPP_STD_VER > 14\n        _NOEXCEPT\n#else\n        _NOEXCEPT_(is_nothrow_move_constructible<allocator_type>::value)\n#endif\n    : __begin_(__v.__begin_),\n      __size_(__v.__size_),\n      __cap_alloc_(__v.__cap_alloc_)\n{\n    __v.__begin_ = nullptr;\n    __v.__size_ = 0;\n    __v.__cap() = 0;\n}\n\ntemplate <class _Allocator>\nvector<bool, _Allocator>::vector(vector&& __v, const allocator_type& __a)\n    : __begin_(nullptr),\n      __size_(0),\n      __cap_alloc_(0, __a)\n{\n    if (__a == allocator_type(__v.__alloc()))\n    {\n        this->__begin_ = __v.__begin_;\n        this->__size_ = __v.__size_;\n        this->__cap() = __v.__cap();\n        __v.__begin_ = nullptr;\n        __v.__cap() = __v.__size_ = 0;\n    }\n    else if (__v.size() > 0)\n    {\n        allocate(__v.size());\n        __construct_at_end(__v.begin(), __v.end());\n    }\n}\n\ntemplate <class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvector<bool, _Allocator>&\nvector<bool, _Allocator>::operator=(vector&& __v)\n    _NOEXCEPT_((__noexcept_move_assign_container<_Allocator, __alloc_traits>::value))\n{\n    __move_assign(__v, integral_constant<bool,\n          __storage_traits::propagate_on_container_move_assignment::value>());\n    return *this;\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::__move_assign(vector& __c, false_type)\n{\n    if (__alloc() != __c.__alloc())\n        assign(__c.begin(), __c.end());\n    else\n        __move_assign(__c, true_type());\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::__move_assign(vector& __c, true_type)\n    _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value)\n{\n    deallocate();\n    __move_assign_alloc(__c);\n    this->__begin_ = __c.__begin_;\n    this->__size_ = __c.__size_;\n    this->__cap() = __c.__cap();\n    __c.__begin_ = nullptr;\n    __c.__cap() = __c.__size_ = 0;\n}\n\n#endif  // !_LIBCPP_CXX03_LANG\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::assign(size_type __n, const value_type& __x)\n{\n    __size_ = 0;\n    if (__n > 0)\n    {\n        size_type __c = capacity();\n        if (__n <= __c)\n            __size_ = __n;\n        else\n        {\n            vector __v(__alloc());\n            __v.reserve(__recommend(__n));\n            __v.__size_ = __n;\n            swap(__v);\n        }\n        _VSTD::fill_n(begin(), __n, __x);\n    }\n  __invalidate_all_iterators();\n}\n\ntemplate <class _Allocator>\ntemplate <class _InputIterator>\ntypename enable_if\n<\n    __is_input_iterator<_InputIterator>::value &&\n   !__is_forward_iterator<_InputIterator>::value,\n   void\n>::type\nvector<bool, _Allocator>::assign(_InputIterator __first, _InputIterator __last)\n{\n    clear();\n    for (; __first != __last; ++__first)\n        push_back(*__first);\n}\n\ntemplate <class _Allocator>\ntemplate <class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value,\n   void\n>::type\nvector<bool, _Allocator>::assign(_ForwardIterator __first, _ForwardIterator __last)\n{\n    clear();\n    difference_type __ns = _VSTD::distance(__first, __last);\n    _LIBCPP_ASSERT(__ns >= 0, \"invalid range specified\");\n    const size_t __n = static_cast<size_type>(__ns);\n    if (__n)\n    {\n        if (__n > capacity())\n        {\n            deallocate();\n            allocate(__n);\n        }\n        __construct_at_end(__first, __last);\n    }\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::reserve(size_type __n)\n{\n    if (__n > capacity())\n    {\n        vector __v(this->__alloc());\n        __v.allocate(__n);\n        __v.__construct_at_end(this->begin(), this->end());\n        swap(__v);\n        __invalidate_all_iterators();\n    }\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::shrink_to_fit() _NOEXCEPT\n{\n    if (__external_cap_to_internal(size()) > __cap())\n    {\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            vector(*this, allocator_type(__alloc())).swap(*this);\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n}\n\ntemplate <class _Allocator>\ntypename vector<bool, _Allocator>::reference\nvector<bool, _Allocator>::at(size_type __n)\n{\n    if (__n >= size())\n        this->__throw_out_of_range();\n    return (*this)[__n];\n}\n\ntemplate <class _Allocator>\ntypename vector<bool, _Allocator>::const_reference\nvector<bool, _Allocator>::at(size_type __n) const\n{\n    if (__n >= size())\n        this->__throw_out_of_range();\n    return (*this)[__n];\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::push_back(const value_type& __x)\n{\n    if (this->__size_ == this->capacity())\n        reserve(__recommend(this->__size_ + 1));\n    ++this->__size_;\n    back() = __x;\n}\n\ntemplate <class _Allocator>\ntypename vector<bool, _Allocator>::iterator\nvector<bool, _Allocator>::insert(const_iterator __position, const value_type& __x)\n{\n    iterator __r;\n    if (size() < capacity())\n    {\n        const_iterator __old_end = end();\n        ++__size_;\n        _VSTD::copy_backward(__position, __old_end, end());\n        __r = __const_iterator_cast(__position);\n    }\n    else\n    {\n        vector __v(__alloc());\n        __v.reserve(__recommend(__size_ + 1));\n        __v.__size_ = __size_ + 1;\n        __r = _VSTD::copy(cbegin(), __position, __v.begin());\n        _VSTD::copy_backward(__position, cend(), __v.end());\n        swap(__v);\n    }\n    *__r = __x;\n    return __r;\n}\n\ntemplate <class _Allocator>\ntypename vector<bool, _Allocator>::iterator\nvector<bool, _Allocator>::insert(const_iterator __position, size_type __n, const value_type& __x)\n{\n    iterator __r;\n    size_type __c = capacity();\n    if (__n <= __c && size() <= __c - __n)\n    {\n        const_iterator __old_end = end();\n        __size_ += __n;\n        _VSTD::copy_backward(__position, __old_end, end());\n        __r = __const_iterator_cast(__position);\n    }\n    else\n    {\n        vector __v(__alloc());\n        __v.reserve(__recommend(__size_ + __n));\n        __v.__size_ = __size_ + __n;\n        __r = _VSTD::copy(cbegin(), __position, __v.begin());\n        _VSTD::copy_backward(__position, cend(), __v.end());\n        swap(__v);\n    }\n    _VSTD::fill_n(__r, __n, __x);\n    return __r;\n}\n\ntemplate <class _Allocator>\ntemplate <class _InputIterator>\ntypename enable_if\n<\n     __is_input_iterator  <_InputIterator>::value &&\n    !__is_forward_iterator<_InputIterator>::value,\n    typename vector<bool, _Allocator>::iterator\n>::type\nvector<bool, _Allocator>::insert(const_iterator __position, _InputIterator __first, _InputIterator __last)\n{\n    difference_type __off = __position - begin();\n    iterator __p = __const_iterator_cast(__position);\n    iterator __old_end = end();\n    for (; size() != capacity() && __first != __last; ++__first)\n    {\n        ++this->__size_;\n        back() = *__first;\n    }\n    vector __v(__alloc());\n    if (__first != __last)\n    {\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        try\n        {\n#endif  // _LIBCPP_NO_EXCEPTIONS\n            __v.assign(__first, __last);\n            difference_type __old_size = static_cast<difference_type>(__old_end - begin());\n            difference_type __old_p = __p - begin();\n            reserve(__recommend(size() + __v.size()));\n            __p = begin() + __old_p;\n            __old_end = begin() + __old_size;\n#ifndef _LIBCPP_NO_EXCEPTIONS\n        }\n        catch (...)\n        {\n            erase(__old_end, end());\n            throw;\n        }\n#endif  // _LIBCPP_NO_EXCEPTIONS\n    }\n    __p = _VSTD::rotate(__p, __old_end, end());\n    insert(__p, __v.begin(), __v.end());\n    return begin() + __off;\n}\n\ntemplate <class _Allocator>\ntemplate <class _ForwardIterator>\ntypename enable_if\n<\n    __is_forward_iterator<_ForwardIterator>::value,\n    typename vector<bool, _Allocator>::iterator\n>::type\nvector<bool, _Allocator>::insert(const_iterator __position, _ForwardIterator __first, _ForwardIterator __last)\n{\n    const difference_type __n_signed = _VSTD::distance(__first, __last);\n    _LIBCPP_ASSERT(__n_signed >= 0, \"invalid range specified\");\n    const size_type __n = static_cast<size_type>(__n_signed);\n    iterator __r;\n    size_type __c = capacity();\n    if (__n <= __c && size() <= __c - __n)\n    {\n        const_iterator __old_end = end();\n        __size_ += __n;\n        _VSTD::copy_backward(__position, __old_end, end());\n        __r = __const_iterator_cast(__position);\n    }\n    else\n    {\n        vector __v(__alloc());\n        __v.reserve(__recommend(__size_ + __n));\n        __v.__size_ = __size_ + __n;\n        __r = _VSTD::copy(cbegin(), __position, __v.begin());\n        _VSTD::copy_backward(__position, cend(), __v.end());\n        swap(__v);\n    }\n    _VSTD::copy(__first, __last, __r);\n    return __r;\n}\n\ntemplate <class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\ntypename vector<bool, _Allocator>::iterator\nvector<bool, _Allocator>::erase(const_iterator __position)\n{\n    iterator __r = __const_iterator_cast(__position);\n    _VSTD::copy(__position + 1, this->cend(), __r);\n    --__size_;\n    return __r;\n}\n\ntemplate <class _Allocator>\ntypename vector<bool, _Allocator>::iterator\nvector<bool, _Allocator>::erase(const_iterator __first, const_iterator __last)\n{\n    iterator __r = __const_iterator_cast(__first);\n    difference_type __d = __last - __first;\n    _VSTD::copy(__last, this->cend(), __r);\n    __size_ -= __d;\n    return __r;\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::swap(vector& __x)\n#if _LIBCPP_STD_VER >= 14\n    _NOEXCEPT\n#else\n    _NOEXCEPT_(!__alloc_traits::propagate_on_container_swap::value ||\n                __is_nothrow_swappable<allocator_type>::value)\n#endif\n{\n    _VSTD::swap(this->__begin_, __x.__begin_);\n    _VSTD::swap(this->__size_, __x.__size_);\n    _VSTD::swap(this->__cap(), __x.__cap());\n    __swap_allocator(this->__alloc(), __x.__alloc(),\n        integral_constant<bool, __alloc_traits::propagate_on_container_swap::value>());\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::resize(size_type __sz, value_type __x)\n{\n    size_type __cs = size();\n    if (__cs < __sz)\n    {\n        iterator __r;\n        size_type __c = capacity();\n        size_type __n = __sz - __cs;\n        if (__n <= __c && __cs <= __c - __n)\n        {\n            __r = end();\n            __size_ += __n;\n        }\n        else\n        {\n            vector __v(__alloc());\n            __v.reserve(__recommend(__size_ + __n));\n            __v.__size_ = __size_ + __n;\n            __r = _VSTD::copy(cbegin(), cend(), __v.begin());\n            swap(__v);\n        }\n        _VSTD::fill_n(__r, __n, __x);\n    }\n    else\n        __size_ = __sz;\n}\n\ntemplate <class _Allocator>\nvoid\nvector<bool, _Allocator>::flip() _NOEXCEPT\n{\n    // do middle whole words\n    size_type __n = __size_;\n    __storage_pointer __p = __begin_;\n    for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word)\n        *__p = ~*__p;\n    // do last partial word\n    if (__n > 0)\n    {\n        __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        __storage_type __b = *__p & __m;\n        *__p &= ~__m;\n        *__p |= ~__b & __m;\n    }\n}\n\ntemplate <class _Allocator>\nbool\nvector<bool, _Allocator>::__invariants() const\n{\n    if (this->__begin_ == nullptr)\n    {\n        if (this->__size_ != 0 || this->__cap() != 0)\n            return false;\n    }\n    else\n    {\n        if (this->__cap() == 0)\n            return false;\n        if (this->__size_ > this->capacity())\n            return false;\n    }\n    return true;\n}\n\ntemplate <class _Allocator>\nsize_t\nvector<bool, _Allocator>::__hash_code() const _NOEXCEPT\n{\n    size_t __h = 0;\n    // do middle whole words\n    size_type __n = __size_;\n    __storage_pointer __p = __begin_;\n    for (; __n >= __bits_per_word; ++__p, __n -= __bits_per_word)\n        __h ^= *__p;\n    // do last partial word\n    if (__n > 0)\n    {\n        const __storage_type __m = ~__storage_type(0) >> (__bits_per_word - __n);\n        __h ^= *__p & __m;\n    }\n    return __h;\n}\n\ntemplate <class _Allocator>\nstruct _LIBCPP_TEMPLATE_VIS hash<vector<bool, _Allocator> >\n    : public unary_function<vector<bool, _Allocator>, size_t>\n{\n    _LIBCPP_INLINE_VISIBILITY\n    size_t operator()(const vector<bool, _Allocator>& __vec) const _NOEXCEPT\n        {return __vec.__hash_code();}\n};\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator==(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)\n{\n    const typename vector<_Tp, _Allocator>::size_type __sz = __x.size();\n    return __sz == __y.size() && _VSTD::equal(__x.begin(), __x.end(), __y.begin());\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator!=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)\n{\n    return !(__x == __y);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator< (const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)\n{\n    return _VSTD::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator> (const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)\n{\n    return __y < __x;\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator>=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)\n{\n    return !(__x < __y);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nbool\noperator<=(const vector<_Tp, _Allocator>& __x, const vector<_Tp, _Allocator>& __y)\n{\n    return !(__y < __x);\n}\n\ntemplate <class _Tp, class _Allocator>\ninline _LIBCPP_INLINE_VISIBILITY\nvoid\nswap(vector<_Tp, _Allocator>& __x, vector<_Tp, _Allocator>& __y)\n    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y)))\n{\n    __x.swap(__y);\n}\n\n_LIBCPP_END_NAMESPACE_STD\n\n_LIBCPP_POP_MACROS\n\n#endif  // _LIBCPP_VECTOR\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/wchar.h",
    "content": "// -*- C++ -*-\n//===--------------------------- wchar.h ----------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#if defined(__need_wint_t) || defined(__need_mbstate_t)\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <wchar.h>\n\n#elif !defined(_LIBCPP_WCHAR_H)\n#define _LIBCPP_WCHAR_H\n\n/*\n    wchar.h synopsis\n\nMacros:\n\n    NULL\n    WCHAR_MAX\n    WCHAR_MIN\n    WEOF\n\nTypes:\n\n    mbstate_t\n    size_t\n    tm\n    wint_t\n\nint fwprintf(FILE* restrict stream, const wchar_t* restrict format, ...);\nint fwscanf(FILE* restrict stream, const wchar_t* restrict format, ...);\nint swprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, ...);\nint swscanf(const wchar_t* restrict s, const wchar_t* restrict format, ...);\nint vfwprintf(FILE* restrict stream, const wchar_t* restrict format, va_list arg);\nint vfwscanf(FILE* restrict stream, const wchar_t* restrict format, va_list arg);  // C99\nint vswprintf(wchar_t* restrict s, size_t n, const wchar_t* restrict format, va_list arg);\nint vswscanf(const wchar_t* restrict s, const wchar_t* restrict format, va_list arg);  // C99\nint vwprintf(const wchar_t* restrict format, va_list arg);\nint vwscanf(const wchar_t* restrict format, va_list arg);  // C99\nint wprintf(const wchar_t* restrict format, ...);\nint wscanf(const wchar_t* restrict format, ...);\nwint_t fgetwc(FILE* stream);\nwchar_t* fgetws(wchar_t* restrict s, int n, FILE* restrict stream);\nwint_t fputwc(wchar_t c, FILE* stream);\nint fputws(const wchar_t* restrict s, FILE* restrict stream);\nint fwide(FILE* stream, int mode);\nwint_t getwc(FILE* stream);\nwint_t getwchar();\nwint_t putwc(wchar_t c, FILE* stream);\nwint_t putwchar(wchar_t c);\nwint_t ungetwc(wint_t c, FILE* stream);\ndouble wcstod(const wchar_t* restrict nptr, wchar_t** restrict endptr);\nfloat wcstof(const wchar_t* restrict nptr, wchar_t** restrict endptr);         // C99\nlong double wcstold(const wchar_t* restrict nptr, wchar_t** restrict endptr);  // C99\nlong wcstol(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);\nlong long wcstoll(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);  // C99\nunsigned long wcstoul(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);\nunsigned long long wcstoull(const wchar_t* restrict nptr, wchar_t** restrict endptr, int base);  // C99\nwchar_t* wcscpy(wchar_t* restrict s1, const wchar_t* restrict s2);\nwchar_t* wcsncpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nwchar_t* wcscat(wchar_t* restrict s1, const wchar_t* restrict s2);\nwchar_t* wcsncat(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nint wcscmp(const wchar_t* s1, const wchar_t* s2);\nint wcscoll(const wchar_t* s1, const wchar_t* s2);\nint wcsncmp(const wchar_t* s1, const wchar_t* s2, size_t n);\nsize_t wcsxfrm(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nconst wchar_t* wcschr(const wchar_t* s, wchar_t c);\n      wchar_t* wcschr(      wchar_t* s, wchar_t c);\nsize_t wcscspn(const wchar_t* s1, const wchar_t* s2);\nsize_t wcslen(const wchar_t* s);\nconst wchar_t* wcspbrk(const wchar_t* s1, const wchar_t* s2);\n      wchar_t* wcspbrk(      wchar_t* s1, const wchar_t* s2);\nconst wchar_t* wcsrchr(const wchar_t* s, wchar_t c);\n      wchar_t* wcsrchr(      wchar_t* s, wchar_t c);\nsize_t wcsspn(const wchar_t* s1, const wchar_t* s2);\nconst wchar_t* wcsstr(const wchar_t* s1, const wchar_t* s2);\n      wchar_t* wcsstr(      wchar_t* s1, const wchar_t* s2);\nwchar_t* wcstok(wchar_t* restrict s1, const wchar_t* restrict s2, wchar_t** restrict ptr);\nconst wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);\n      wchar_t* wmemchr(      wchar_t* s, wchar_t c, size_t n);\nint wmemcmp(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nwchar_t* wmemcpy(wchar_t* restrict s1, const wchar_t* restrict s2, size_t n);\nwchar_t* wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);\nwchar_t* wmemset(wchar_t* s, wchar_t c, size_t n);\nsize_t wcsftime(wchar_t* restrict s, size_t maxsize, const wchar_t* restrict format,\n                const tm* restrict timeptr);\nwint_t btowc(int c);\nint wctob(wint_t c);\nint mbsinit(const mbstate_t* ps);\nsize_t mbrlen(const char* restrict s, size_t n, mbstate_t* restrict ps);\nsize_t mbrtowc(wchar_t* restrict pwc, const char* restrict s, size_t n, mbstate_t* restrict ps);\nsize_t wcrtomb(char* restrict s, wchar_t wc, mbstate_t* restrict ps);\nsize_t mbsrtowcs(wchar_t* restrict dst, const char** restrict src, size_t len,\n                 mbstate_t* restrict ps);\nsize_t wcsrtombs(char* restrict dst, const wchar_t** restrict src, size_t len,\n                 mbstate_t* restrict ps);\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#ifdef __cplusplus\n#define __CORRECT_ISO_CPP_WCHAR_H_PROTO\n#endif\n\n#include_next <wchar.h>\n\n// Determine whether we have const-correct overloads for wcschr and friends.\n#if defined(_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_)\n#  define _LIBCPP_WCHAR_H_HAS_CONST_OVERLOADS 1\n#elif defined(__GLIBC_PREREQ)\n#  if __GLIBC_PREREQ(2, 10)\n#    define _LIBCPP_WCHAR_H_HAS_CONST_OVERLOADS 1\n#  endif\n#endif\n\n#if defined(__cplusplus) && !defined(_LIBCPP_WCHAR_H_HAS_CONST_OVERLOADS) && defined(_LIBCPP_PREFERRED_OVERLOAD)\nextern \"C++\" {\ninline _LIBCPP_INLINE_VISIBILITY\nwchar_t* __libcpp_wcschr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcschr(__s, __c);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst wchar_t* wcschr(const wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      wchar_t* wcschr(      wchar_t* __s, wchar_t __c) {return __libcpp_wcschr(__s, __c);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nwchar_t* __libcpp_wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcspbrk(__s1, __s2);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst wchar_t* wcspbrk(const wchar_t* __s1, const wchar_t* __s2) {return __libcpp_wcspbrk(__s1, __s2);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      wchar_t* wcspbrk(      wchar_t* __s1, const wchar_t* __s2) {return __libcpp_wcspbrk(__s1, __s2);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nwchar_t* __libcpp_wcsrchr(const wchar_t* __s, wchar_t __c) {return (wchar_t*)wcsrchr(__s, __c);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst wchar_t* wcsrchr(const wchar_t* __s, wchar_t __c) {return __libcpp_wcsrchr(__s, __c);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      wchar_t* wcsrchr(      wchar_t* __s, wchar_t __c) {return __libcpp_wcsrchr(__s, __c);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nwchar_t* __libcpp_wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return (wchar_t*)wcsstr(__s1, __s2);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst wchar_t* wcsstr(const wchar_t* __s1, const wchar_t* __s2) {return __libcpp_wcsstr(__s1, __s2);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      wchar_t* wcsstr(      wchar_t* __s1, const wchar_t* __s2) {return __libcpp_wcsstr(__s1, __s2);}\n\ninline _LIBCPP_INLINE_VISIBILITY\nwchar_t* __libcpp_wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return (wchar_t*)wmemchr(__s, __c, __n);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\nconst wchar_t* wmemchr(const wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}\ninline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD\n      wchar_t* wmemchr(      wchar_t* __s, wchar_t __c, size_t __n) {return __libcpp_wmemchr(__s, __c, __n);}\n}\n#endif\n\n#if defined(__cplusplus) && defined(_LIBCPP_MSVCRT_LIKE)\nextern \"C\" {\nsize_t mbsnrtowcs(wchar_t *__restrict dst, const char **__restrict src,\n                  size_t nmc, size_t len, mbstate_t *__restrict ps);\nsize_t wcsnrtombs(char *__restrict dst, const wchar_t **__restrict src,\n                  size_t nwc, size_t len, mbstate_t *__restrict ps);\n}  // extern \"C++\"\n#endif  // __cplusplus && _LIBCPP_MSVCRT\n\n#endif  // _LIBCPP_WCHAR_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/wctype.h",
    "content": "// -*- C++ -*-\n//===--------------------------- wctype.h ---------------------------------===//\n//\n//                     The LLVM Compiler Infrastructure\n//\n// This file is dual licensed under the MIT and the University of Illinois Open\n// Source Licenses. See LICENSE.TXT for details.\n//\n//===----------------------------------------------------------------------===//\n\n#ifndef _LIBCPP_WCTYPE_H\n#define _LIBCPP_WCTYPE_H\n\n/*\n    wctype.h synopsis\n\nMacros:\n\n    WEOF\n\nTypes:\n\n    wint_t\n    wctrans_t\n    wctype_t\n\nint iswalnum(wint_t wc);\nint iswalpha(wint_t wc);\nint iswblank(wint_t wc);  // C99\nint iswcntrl(wint_t wc);\nint iswdigit(wint_t wc);\nint iswgraph(wint_t wc);\nint iswlower(wint_t wc);\nint iswprint(wint_t wc);\nint iswpunct(wint_t wc);\nint iswspace(wint_t wc);\nint iswupper(wint_t wc);\nint iswxdigit(wint_t wc);\nint iswctype(wint_t wc, wctype_t desc);\nwctype_t wctype(const char* property);\nwint_t towlower(wint_t wc);\nwint_t towupper(wint_t wc);\nwint_t towctrans(wint_t wc, wctrans_t desc);\nwctrans_t wctrans(const char* property);\n\n*/\n\n#include <__config>\n\n#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)\n#pragma GCC system_header\n#endif\n\n#include_next <wctype.h>\n\n#ifdef __cplusplus\n\n#undef iswalnum\n#undef iswalpha\n#undef iswblank\n#undef iswcntrl\n#undef iswdigit\n#undef iswgraph\n#undef iswlower\n#undef iswprint\n#undef iswpunct\n#undef iswspace\n#undef iswupper\n#undef iswxdigit\n#undef iswctype\n#undef wctype\n#undef towlower\n#undef towupper\n#undef towctrans\n#undef wctrans\n\n#endif  // __cplusplus\n\n#endif  // _LIBCPP_WCTYPE_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/swift/SwiftRemoteMirror/MemoryReaderInterface.h",
    "content": "//===--- MemoryReaderInterface.h - Public reader interface ------*- C++ -*-===//\n//\n// This source file is part of the Swift.org open source project\n//\n// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors\n// Licensed under Apache License v2.0 with Runtime Library Exception\n//\n// See https://swift.org/LICENSE.txt for license information\n// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors\n//\n//===----------------------------------------------------------------------===//\n///\n/// \\file\n/// This header declares the MemoryReader interface struct, which is a\n/// a collection of function pointers to provide reading memory from external\n/// processes.\n///\n//===----------------------------------------------------------------------===//\n\n#ifndef SWIFT_REFLECTION_MEMORYREADERINTERFACE_H\n#define SWIFT_REFLECTION_MEMORYREADERINTERFACE_H\n\n#include <stdint.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n// They would think the type 'addr_t' is defined in the standard library\n// because it has the same name format with the types in <cstdint>. In\n// addition, the definition conflicts in Cygwin which defines it differently\n// in the system library, so we use 'swift_addr_t'.\ntypedef uint64_t swift_addr_t;\n\ntypedef uint8_t (*PointerSizeFunction)(void *reader_context);\ntypedef uint8_t (*SizeSizeFunction)(void *reader_context);\ntypedef int (*ReadBytesFunction)(void *reader_context, swift_addr_t address,\n                                 void *dest, uint64_t size);\ntypedef uint64_t (*GetStringLengthFunction)(void *reader_context,\n                                            swift_addr_t address);\ntypedef swift_addr_t (*GetSymbolAddressFunction)(void *reader_context,\n                                                 const char *name,\n                                                 uint64_t name_length);\n\ntypedef struct MemoryReaderImpl {\n  /// An opaque context that the implementor can specify to\n  /// be passed to each of the APIs below.\n  void *reader_context;\n\n  /// Get the size in bytes of the target's pointer type.\n  PointerSizeFunction getPointerSize;\n\n  /// Get the size in bytes of the target's size type.\n  SizeSizeFunction getSizeSize;\n\n  // FIXME: -Wdocumentation complains about \\param and \\returns on function pointers.\n#pragma clang diagnostic push\n#pragma clang diagnostic ignored \"-Wdocumentation\"\n\n  /// Read a sequence of bytes at an address in the target.\n  ///\n  /// \\param address the address in the target address space\n  /// \\param dest the caller-owned buffer into which to store the string\n  /// \\param size the number of bytes to read\n  /// \\returns true if the read was successful\n  ReadBytesFunction readBytes;\n\n  /// Get the string length at the given address.\n  ///\n  /// This scan always occurs in a read-only data section. If the scan\n  /// would go beyond the section boundary, a length of 0 should be\n  /// returned.\n  ///\n  /// \\param address the address in the target address space\n  /// \\returns The length of the string or 0 if the scan was unsuccessful.\n  GetStringLengthFunction getStringLength;\n\n  /// Get the address of a symbol in the target address space.\n  ///\n  /// \\returns true if the lookup was successful.\n  GetSymbolAddressFunction getSymbolAddress;\n\n#pragma clang diagnostic pop\n\n} MemoryReaderImpl;\n\n#ifdef __cplusplus\n} // extern \"C\"\n#endif\n\n#endif //SWIFT_REFLECTION_MEMORYREADERINTERFACE_H\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/swift/SwiftRemoteMirror/SwiftRemoteMirror.h",
    "content": "//===--- SwiftRemoteMirror.h - Public remote reflection interf. -*- C++ -*-===//\n//\n// This source file is part of the Swift.org open source project\n//\n// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors\n// Licensed under Apache License v2.0 with Runtime Library Exception\n//\n// See https://swift.org/LICENSE.txt for license information\n// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors\n//\n//===----------------------------------------------------------------------===//\n///\n/// \\file\n/// This header declares functions in the libswiftReflection library,\n/// which provides mechanisms for reflecting heap information in a\n/// remote Swift process.\n///\n//===----------------------------------------------------------------------===//\n\n#ifndef SWIFT_REFLECTION_SWIFT_REFLECTION_H\n#define SWIFT_REFLECTION_SWIFT_REFLECTION_H\n\n#include \"MemoryReaderInterface.h\"\n#include \"SwiftRemoteMirrorTypes.h\"\n\n#include <stdlib.h>\n\n/// Major version changes when there are ABI or source incompatible changes.\n#define SWIFT_REFLECTION_VERSION_MAJOR 3\n\n/// Minor version changes when new APIs are added in ABI- and source-compatible\n/// way.\n#define SWIFT_REFLECTION_VERSION_MINOR 0\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n/// Get the metadata version supported by the Remote Mirror library.\nuint16_t\nswift_reflection_getSupportedMetadataVersion();\n\n/// \\returns An opaque reflection context.\nSwiftReflectionContextRef\nswift_reflection_createReflectionContext(\n    void *ReaderContext,\n    PointerSizeFunction getPointerSize,\n    SizeSizeFunction getSizeSize,\n    ReadBytesFunction readBytes,\n    GetStringLengthFunction getStringLength,\n    GetSymbolAddressFunction getSymbolAddress);\n\n/// Destroys an opaque reflection context.\nvoid\nswift_reflection_destroyReflectionContext(SwiftReflectionContextRef Context);\n\n/// Add reflection sections for a loaded Swift image.\nvoid\nswift_reflection_addReflectionInfo(SwiftReflectionContextRef ContextRef,\n                                   swift_reflection_info_t Info);\n\n\n/// Returns a boolean indicating if the isa mask was successfully\n/// read, in which case it is stored in the isaMask out parameter.\nint\nswift_reflection_readIsaMask(SwiftReflectionContextRef ContextRef,\n                             uintptr_t *outIsaMask);\n\n/// Returns an opaque type reference for a metadata pointer, or\n/// NULL if one can't be constructed.\n///\n/// This function loses information; in particular, passing the\n/// result to swift_reflection_infoForTypeRef() will not give\n/// the same result as calling swift_reflection_infoForMetadata().\nswift_typeref_t\nswift_reflection_typeRefForMetadata(SwiftReflectionContextRef ContextRef,\n                                    uintptr_t Metadata);\n\n/// Returns an opaque type reference for a class or closure context\n/// instance pointer, or NULL if one can't be constructed.\n///\n/// This function loses information; in particular, passing the\n/// result to swift_reflection_infoForTypeRef() will not give\n/// the same result as calling swift_reflection_infoForInstance().\nswift_typeref_t\nswift_reflection_typeRefForInstance(SwiftReflectionContextRef ContextRef,\n                                    uintptr_t Object);\n\n/// Returns a typeref from a mangled type name string.\nswift_typeref_t\nswift_reflection_typeRefForMangledTypeName(SwiftReflectionContextRef ContextRef,\n                                           const char *MangledName,\n                                           uint64_t Length);\n\n/// Returns a structure describing the layout of a value of a typeref.\n/// For classes, this returns the reference value itself.\nswift_typeinfo_t\nswift_reflection_infoForTypeRef(SwiftReflectionContextRef ContextRef,\n                                swift_typeref_t OpaqueTypeRef);\n\n/// Returns the information about a child field of a value by index.\nswift_childinfo_t\nswift_reflection_childOfTypeRef(SwiftReflectionContextRef ContextRef,\n                                swift_typeref_t OpaqueTypeRef,\n                                unsigned Index);\n\n/// Returns a structure describing the layout of a class instance\n/// from the isa pointer of a class.\nswift_typeinfo_t\nswift_reflection_infoForMetadata(SwiftReflectionContextRef ContextRef,\n                                 uintptr_t Metadata);\n\n/// Returns the information about a child field of a class instance\n/// by index.\nswift_childinfo_t\nswift_reflection_childOfMetadata(SwiftReflectionContextRef ContextRef,\n                                 uintptr_t Metadata,\n                                 unsigned Index);\n\n/// Returns a structure describing the layout of a class or closure\n/// context instance, from a pointer to the object itself.\nswift_typeinfo_t\nswift_reflection_infoForInstance(SwiftReflectionContextRef ContextRef,\n                                 uintptr_t Object);\n\n/// Returns the information about a child field of a class or closure\n/// context instance.\nswift_childinfo_t\nswift_reflection_childOfInstance(SwiftReflectionContextRef ContextRef,\n                                 uintptr_t Object,\n                                 unsigned Index);\n\n/// Returns the number of generic arguments of a typeref.\nunsigned\nswift_reflection_genericArgumentCountOfTypeRef(swift_typeref_t OpaqueTypeRef);\n\n/// Returns a fully instantiated typeref for a generic argument by index.\nswift_typeref_t\nswift_reflection_genericArgumentOfTypeRef(swift_typeref_t OpaqueTypeRef,\n                                          unsigned Index);\n\n/// Projects the type inside of an existential container.\n///\n/// Takes the address of the start of an existential container and the typeref\n/// for the existential, and sets two out parameters:\n///\n/// - InstanceTypeRef: A type reference for the type inside of the existential\n///   container.\n/// - StartOfInstanceData: The address to the start of the inner type's instance\n///   data, which may or may not be inside the container directly.\n///   If the type is a reference type, the pointer to the instance is the first\n///   word in the container.\n///\n///   If the existential contains a value type that can fit in the first three\n///   spare words of the container, *StartOfInstanceData == InstanceAddress.\n///   If it's a value type that can't fit in three words, the data will be in\n///   its own heap box, so *StartOfInstanceData will be the address of that box.\n///\n/// Returns true if InstanceTypeRef and StartOfInstanceData contain valid\n/// valid values.\nint swift_reflection_projectExistential(SwiftReflectionContextRef ContextRef,\n                                        swift_addr_t ExistentialAddress,\n                                        swift_typeref_t ExistentialTypeRef,\n                                        swift_typeref_t *OutInstanceTypeRef,\n                                        swift_addr_t *OutStartOfInstanceData);\n\n/// Dump a brief description of the typeref as a tree to stderr.\nvoid swift_reflection_dumpTypeRef(swift_typeref_t OpaqueTypeRef);\n\n/// Dump information about the layout for a typeref.\nvoid swift_reflection_dumpInfoForTypeRef(SwiftReflectionContextRef ContextRef,\n                                         swift_typeref_t OpaqueTypeRef);\n\n/// Dump information about the layout of a class instance from its isa pointer.\nvoid swift_reflection_dumpInfoForMetadata(SwiftReflectionContextRef ContextRef,\n                                          uintptr_t Metadata);\n\n/// Dump information about the layout of a class or closure context instance.\nvoid swift_reflection_dumpInfoForInstance(SwiftReflectionContextRef ContextRef,\n                                          uintptr_t Object);\n\n/// Demangle a type name.\n///\n/// Copies at most `MaxLength` bytes from the demangled name string into\n/// `OutDemangledName`.\n///\n/// Returns the length of the demangled string this function tried to copy\n/// into `OutDemangledName`.\nsize_t swift_reflection_demangle(const char *MangledName,\n                                 size_t Length,\n                                 char *OutDemangledName,\n                                 size_t MaxLength);\n\n#ifdef __cplusplus\n} // extern \"C\"\n#endif\n\n#endif // SWIFT_REFLECTION_SWIFT_REFLECTION_H\n\n"
  },
  {
    "path": "Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/swift/SwiftRemoteMirror/SwiftRemoteMirrorTypes.h",
    "content": "//===--- SwiftRemoteMirrorTypes.h - Remote reflection types -----*- C++ -*-===//\n//\n// This source file is part of the Swift.org open source project\n//\n// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors\n// Licensed under Apache License v2.0 with Runtime Library Exception\n//\n// See https://swift.org/LICENSE.txt for license information\n// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors\n//\n//===----------------------------------------------------------------------===//\n///\n/// \\file\n/// This header declares types in the libswiftReflection library.\n///\n//===----------------------------------------------------------------------===//\n\n#ifndef SWIFT_REMOTE_MIRROR_TYPES_H\n#define SWIFT_REMOTE_MIRROR_TYPES_H\n\n#include <stdint.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef uintptr_t swift_typeref_t;\n\n/// \\brief Represents one of the Swift reflection sections of an image.\ntypedef struct swift_reflection_section {\n  void *Begin;\n  void *End;\n} swift_reflection_section_t;\n\n/// \\brief Represents the set of Swift reflection sections of an image.\n/// Not all sections may be present.\ntypedef struct swift_reflection_info {\n  swift_reflection_section_t fieldmd;\n  swift_reflection_section_t assocty;\n  swift_reflection_section_t builtin;\n  swift_reflection_section_t capture;\n  swift_reflection_section_t typeref;\n  swift_reflection_section_t reflstr;\n\n  // Start address in local and remote address spaces.\n  uintptr_t LocalStartAddress;\n  uintptr_t RemoteStartAddress;\n} swift_reflection_info_t;\n\n/// The layout kind of a Swift type.\ntypedef enum swift_layout_kind {\n  // Nothing is known about the size or contents of this value.\n  SWIFT_UNKNOWN,\n\n  // An opaque value with known size and alignment but no specific\n  // interpretation.\n  SWIFT_BUILTIN,\n\n  // A pointer-size value that is known to contain the address of\n  // another heap allocation, or NULL.\n  SWIFT_RAW_POINTER,\n\n  // Value types consisting of zero or more fields.\n  SWIFT_TUPLE,\n  SWIFT_STRUCT,\n\n  // An enum with no payload cases. The record will have no fields, but\n  // will have the correct size.\n  SWIFT_NO_PAYLOAD_ENUM,\n\n  // An enum with a single payload case. The record consists of a single\n  // field, being the enum payload.\n  SWIFT_SINGLE_PAYLOAD_ENUM,\n\n  // An enum with multiple payload cases. The record consists of a multiple\n  // fields, one for each enum payload.\n  SWIFT_MULTI_PAYLOAD_ENUM,\n\n  SWIFT_THICK_FUNCTION,\n\n  SWIFT_OPAQUE_EXISTENTIAL,\n  SWIFT_CLASS_EXISTENTIAL,\n  SWIFT_ERROR_EXISTENTIAL,\n  SWIFT_EXISTENTIAL_METATYPE,\n\n  // References to other objects in the heap.\n  SWIFT_STRONG_REFERENCE,\n  SWIFT_UNOWNED_REFERENCE,\n  SWIFT_WEAK_REFERENCE,\n  SWIFT_UNMANAGED_REFERENCE,\n\n  // Layouts of heap objects. These are only ever returned from\n  // swift_reflection_infoFor{Instance,Metadata}(), and not\n  // swift_reflection_infoForTypeRef().\n  SWIFT_CLASS_INSTANCE,\n  SWIFT_CLOSURE_CONTEXT,\n} swift_layout_kind_t;\n\nstruct swift_childinfo;\n\n/// A description of the memory layout of a type or field of a type.\ntypedef struct swift_typeinfo {\n  swift_layout_kind_t Kind;\n\n  unsigned Size;\n  unsigned Alignment;\n  unsigned Stride;\n\n  unsigned NumFields;\n} swift_typeinfo_t;\n\ntypedef struct swift_childinfo {\n  /// The memory for Name is owned by the reflection context.\n  const char *Name;\n  unsigned Offset;\n  swift_layout_kind_t Kind;\n  swift_typeref_t TR;\n} swift_childinfo_t;\n\n/// \\brief An opaque pointer to a context which maintains state and\n/// caching of reflection structure for heap instances.\ntypedef struct SwiftReflectionContext *SwiftReflectionContextRef;\n\n#ifdef __cplusplus\n} // extern \"C\"\n#endif\n\n#endif // SWIFT_REMOTE_MIRROR_TYPES_H\n"
  },
  {
    "path": "Developer/symlinks.sh",
    "content": "SDK=\"`pwd`/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk\"\nFRAMEWORKS=\"$SDK/System/Library/Frameworks\"\nLIBS=\"$SDK/usr/lib\"\nTOOLS=\"`pwd`/Toolchains/XcodeDefault.xctoolchain/usr/bin\"\n\nln -sf \"$BUILD/src/external/foundation/Foundation\" \"$FRAMEWORKS/Foundation.framework/Versions/C\"\nln -sf \"$BUILD/src/external/corefoundation/CoreFoundation\" \"$FRAMEWORKS/CoreFoundation.framework/Versions/A\"\n\nln -sf \"$BUILD/src/external/objc4/runtime/libobjc.A.dylib\" \"$LIBS\"\nln -sf \"$BUILD/src/libsystem/libSystem.B.dylib\" \"$LIBS\"\n\necho $BUILD\n\nmkdir -p \"$LIBS/system\"\nln -sf \"$BUILD/src/sandbox/libsystem_sandbox.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/quarantine/libquarantine.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/libremovefile/libremovefile.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/copyfile/libcopyfile.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/libsystem_coreservices/libsystem_coreservices.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/coretls/libsystem_coretls.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/libmalloc/libsystem_malloc.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/libc/libsystem_c.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/kernel/libsystem_kernel.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/keymgr/libkeymgr.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/libm/libsystem_m.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/Libinfo/libsystem_info.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/libnotify/libsystem_notify.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/libdispatch/libdispatch.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/compiler-rt/lib/builtins/libcompiler_rt.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/libunwind/libunwind.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/dyld/libdyld.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/libmacho/libmacho.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/libpthread/src/libsystem_pthread.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/libplatform/libsystem_platform.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/syslog/libsystem_asl.tproj/libsystem_asl.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/duct/src/libsystem_duct.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/libclosure/libsystem_blocks.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/libxpc/libxpc.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/corecrypto/libcorecrypto.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/external/commoncrypto/libcommonCrypto.dylib\" \"$LIBS/system\"\nln -sf \"$BUILD/src/launchd/liblaunch/liblaunch.dylib\" \"$LIBS/system\"\n\nln -sf \"$BUILD/src/bsdln/bsdln\" \"$TOOLS/bsdln\"\nln -sf \"$BUILD/src/bsdln/bsdln\" \"$TOOLS/ln\"\n"
  },
  {
    "path": "LICENSE",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <http://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<http://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<http://www.gnu.org/philosophy/why-not-lgpl.html>.\n"
  },
  {
    "path": "README.md",
    "content": "# Darling\n\n![Darling logo](https://darlinghq.org/img/darling250.png)\n\nDarling is a runtime environment for macOS applications.\n\nPlease note that most GUI applications will not run at the moment.\n\n## Download\n\nPackages for some distributions are available for download\nunder [releases](https://github.com/darlinghq/darling/releases).\n\n## Build Instructions\n\nFor build instructions, visit [Darling Docs](https://docs.darlinghq.org/build-instructions.html).\n\n### Prefixes\n\nDarling has support for DPREFIXes, which are very similar to WINEPREFIXes. They are virtual “chroot” environments with an macOS-like filesystem structure, where you can install software safely. The default DPREFIX location is `~/.darling`, but this can be changed by exporting an identically named environment variable. A prefix is automatically created and initialized on first use.\n\nPlease note that we use `overlayfs` for creating prefixes, and so we cannot support putting prefix on a filesystem like NFS or eCryptfs. In particular, the default prefix location won't work if you have an encrypted home directory.\n\n### Hello world\n\nLet's start with a Hello world:\n\n````\n$ darling shell echo Hello world\nHello world\n````\n\nCongratulations, you have printed Hello world through Darling's OS X system call emulation and runtime libraries.\n\n### Installing software\n\nYou can install `.pkg` packages with the installer tool available inside shell. It is a somewhat limited cousin of OS X's installer:\n\n````\n$ darling shell\nDarling [~]$ installer -pkg mc-4.8.7-0.pkg -target /\n````\n\nThe Midnight Commander package from the above example is [available for download](https://darling-misc.s3.eu-central-1.amazonaws.com/mc-4.8.7-0.pkg).\n\nYou can uninstall and list packages with the `uninstaller` command.\n\n### Working with DMG images\n\nDMG images can be attached and detached from inside `darling shell` with `hdiutil`. This is how you can install Xcode along with its toolchain and SDKs (note that Xcode itself doesn't run yet):\n\n````\nDarling [~]$ hdiutil attach Xcode_7.2.dmg\n/Volumes/Xcode_7.2\nDarling [~]$ cp -r /Volumes/Xcode_7.2/Xcode.app /Applications\nDarling [~]$ export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk\nDarling [~]$ echo 'void main() { puts(\"Hello world\"); }' > helloworld.c\nDarling [~]$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang helloworld.c -o helloworld\nDarling [~]$ ./helloworld\nHello world\n````\n\nCongratulations, you have just compiled and run your own Hello world application with Apple's toolchain.\n\n### Working with XIP archives\n\nXcode is now distributed in `.xip` files. These can be installed using `unxip`:\n\n```\ncd /Applications\nunxip Xcode_11.3.xip\n```\n"
  },
  {
    "path": "basic-headers/AssertMacros.h",
    "content": "/*\n * Copyright (c) 2002-2008 by Apple Inc.. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n\n/*\n\tFile:       AssertMacros.h\n \n\tContains:   This file defines structured error handling and assertion macros for\n\t\t\t\tprogramming in C. Originally used in QuickDraw GX and later enhanced.\n\t\t\t\tThese macros are used throughout Apple's software.\n\t\n\t\t\t\tNew code may not want to begin adopting these macros and instead use\n\t\t\t\texisting language functionality.\n\t\n\t\t\t\tSee \"Living In an Exceptional World\" by Sean Parent\n\t\t\t\t(develop, The Apple Technical Journal, Issue 11, August/September 1992)\n\t\t\t\t<http://developer.apple.com/dev/techsupport/develop/issue11toc.shtml> or\n\t\t\t\t<http://www.mactech.com/articles/develop/issue_11/Parent_final.html>\n\t\t\t\tfor the methodology behind these error handling and assertion macros.\n\t\n\tBugs?:      For bug reports, consult the following page on\n\t\t\t\tthe World Wide Web:\n\n\t http://developer.apple.com/bugreporter/ \n*/\n#ifndef __ASSERTMACROS__\n#define __ASSERTMACROS__\n\n/*\n *  Macro overview:\n *  \n *      check(assertion)\n *         In production builds, pre-processed away  \n *         In debug builds, if assertion evaluates to false, calls DEBUG_ASSERT_MESSAGE\n *  \n *      verify(assertion)\n *         In production builds, evaluates assertion and does nothing\n *         In debug builds, if assertion evaluates to false, calls DEBUG_ASSERT_MESSAGE\n *  \n *      require(assertion, exceptionLabel)\n *         In production builds, if the assertion expression evaluates to false, goto exceptionLabel\n *         In debug builds, if the assertion expression evaluates to false, calls DEBUG_ASSERT_MESSAGE\n *                          and jumps to exceptionLabel\n *  \n *      In addition the following suffixes are available:\n * \n *         _noerr     Adds \"!= 0\" to assertion.  Useful for asserting and OSStatus or OSErr is noErr (zero)\n *         _action    Adds statement to be executued if assertion fails\n *         _quiet     Suppress call to DEBUG_ASSERT_MESSAGE\n *         _string    Allows you to add explanitory message to DEBUG_ASSERT_MESSAGE\n *  \n *        For instance, require_noerr_string(resultCode, label, msg) will do nothing if \n *        resultCode is zero, otherwise it will call DEBUG_ASSERT_MESSAGE with msg\n *        and jump to label.\n *\n *  Configuration:\n *\n *      By default all macros generate \"production code\" (i.e non-debug).  If  \n *      DEBUG_ASSERT_PRODUCTION_CODE is defined to zero or DEBUG is defined to non-zero\n *      while this header is included, the macros will generated debug code.\n *\n *      If DEBUG_ASSERT_COMPONENT_NAME_STRING is defined, all debug messages will\n *      be prefixed with it.\n *\n *      By default, all messages write to stderr.  If you would like to write a custom\n *      error message formater, defined DEBUG_ASSERT_MESSAGE to your function name.\n *\n *      Each individual macro will only be defined if it is not already defined, so\n *      you can redefine their behavior singly by providing your own definition before\n *      this file is included.\n *\n *      If you define __ASSERTMACROS__ before this file is included, then nothing in\n *      this file will take effect.\n *\n *      Prior to Mac OS X 10.6 the macro names used in this file conflicted with some\n *      user code, including libraries in boost and the proposed C++ standards efforts,\n *      and there was no way for a client of this header to resolve this conflict. Because\n *      of this, most of the macros have been changed so that they are prefixed with \n *      __ and contain at least one capital letter, which should alleviate the current\n *      and future conflicts.  However, to allow current sources to continue to compile,\n *      compatibility macros are defined at the end with the old names.  A tops script \n *      at the end of this file will convert all of the old macro names used in a directory\n *      to the new names.  Clients are recommended to migrate over to these new macros as\n *      they update their sources because a future release of Mac OS X will remove the\n *      old macro definitions ( without the double-underscore prefix ).  Clients who\n *      want to compile without the old macro definitions can define the macro\n *      __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES to 0 before this file is\n *      included.\n */\n\n\n/*\n *  Before including this file, #define DEBUG_ASSERT_COMPONENT_NAME_STRING to\n *  a C-string containing the name of your client. This string will be passed to\n *  the DEBUG_ASSERT_MESSAGE macro for inclusion in any assertion messages.\n *\n *  If you do not define DEBUG_ASSERT_COMPONENT_NAME_STRING, the default\n *  DEBUG_ASSERT_COMPONENT_NAME_STRING value, an empty string, will be used by\n *  the assertion macros.\n */\n#ifndef DEBUG_ASSERT_COMPONENT_NAME_STRING\n    #define DEBUG_ASSERT_COMPONENT_NAME_STRING \"\"\n#endif\n\n\n/*\n *  To activate the additional assertion code and messages for non-production builds,\n *  #define DEBUG_ASSERT_PRODUCTION_CODE to zero before including this file.\n *\n *  If you do not define DEBUG_ASSERT_PRODUCTION_CODE, the default value 1 will be used\n *  (production code = no assertion code and no messages).\n */\n#ifndef DEBUG_ASSERT_PRODUCTION_CODE\n   #define DEBUG_ASSERT_PRODUCTION_CODE !DEBUG\n#endif\n\n\n/*\n *  DEBUG_ASSERT_MESSAGE(component, assertion, label, error, file, line, errorCode)\n *\n *  Summary:\n *    All assertion messages are routed through this macro. If you wish to use your\n *    own routine to display assertion messages, you can override DEBUG_ASSERT_MESSAGE\n *    by #defining DEBUG_ASSERT_MESSAGE before including this file.\n *\n *  Parameters:\n *\n *    componentNameString:\n *      A pointer to a string constant containing the name of the\n *      component this code is part of. This must be a string constant\n *      (and not a string variable or NULL) because the preprocessor\n *      concatenates it with other string constants.\n *\n *    assertionString:\n *      A pointer to a string constant containing the assertion.\n *      This must be a string constant (and not a string variable or\n *      NULL) because the Preprocessor concatenates it with other\n *      string constants.\n *    \n *    exceptionLabelString:\n *      A pointer to a string containing the exceptionLabel, or NULL.\n *    \n *    errorString:\n *      A pointer to the error string, or NULL. DEBUG_ASSERT_MESSAGE macros\n *      must not attempt to concatenate this string with constant\n *      character strings.\n *    \n *    fileName:\n *      A pointer to the fileName or pathname (generated by the\n *      preprocessor __FILE__ identifier), or NULL.\n *    \n *    lineNumber:\n *      The line number in the file (generated by the preprocessor\n *      __LINE__ identifier), or 0 (zero).\n *    \n *    errorCode:\n *      A value associated with the assertion, or 0.\n *\n *  Here is an example of a DEBUG_ASSERT_MESSAGE macro and a routine which displays\n *  assertion messsages:\n *\n *      #define DEBUG_ASSERT_COMPONENT_NAME_STRING \"MyCoolProgram\"\n *\n *      #define DEBUG_ASSERT_MESSAGE(componentNameString, assertionString,                           \\\n *                                   exceptionLabelString, errorString, fileName, lineNumber, errorCode) \\\n *              MyProgramDebugAssert(componentNameString, assertionString,                           \\\n *                                   exceptionLabelString, errorString, fileName, lineNumber, errorCode)\n *\n *      static void\n *      MyProgramDebugAssert(const char *componentNameString, const char *assertionString, \n *                           const char *exceptionLabelString, const char *errorString, \n *                           const char *fileName, long lineNumber, int errorCode)\n *      {\n *          if ( (assertionString != NULL) && (*assertionString != '\\0') )\n *              fprintf(stderr, \"Assertion failed: %s: %s\\n\", componentNameString, assertionString);\n *          else\n *              fprintf(stderr, \"Check failed: %s:\\n\", componentNameString);\n *          if ( exceptionLabelString != NULL )\n *              fprintf(stderr, \"    %s\\n\", exceptionLabelString);\n *          if ( errorString != NULL )\n *              fprintf(stderr, \"    %s\\n\", errorString);\n *          if ( fileName != NULL )\n *              fprintf(stderr, \"    file: %s\\n\", fileName);\n *          if ( lineNumber != 0 )\n *              fprintf(stderr, \"    line: %ld\\n\", lineNumber);\n *          if ( errorCode != 0 )\n *              fprintf(stderr, \"    error: %d\\n\", errorCode);\n *      }\n *\n *  If you do not define DEBUG_ASSERT_MESSAGE, a simple printf to stderr will be used.\n */\n#ifndef DEBUG_ASSERT_MESSAGE\n   #ifdef KERNEL\n      #include <libkern/libkern.h>\n      #define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \\\n                                  printf( \"AssertMacros: %s, %s file: %s, line: %d\\n\", assertion, (message!=0) ? message : \"\", file, line);\n   #else\n      #include <stdio.h>\n      #define DEBUG_ASSERT_MESSAGE(name, assertion, label, message, file, line, value) \\\n                                  fprintf(stderr, \"AssertMacros: %s, %s file: %s, line: %d\\n\", assertion, (message!=0) ? message : \"\", file, line);\n   #endif\n#endif\n\n\n\n\n\n/*\n *  __Debug_String(message)\n *\n *  Summary:\n *    Production builds: does nothing and produces no code.\n *\n *    Non-production builds: call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    message:\n *      The C string to display.\n *\n */\n#ifndef __Debug_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Debug_String(message)\n\t#else\n\t   #define __Debug_String(message)                                             \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  DEBUG_ASSERT_MESSAGE(                                               \\\n\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                             \\\n\t\t\t\t  \"\",                                                             \\\n\t\t\t\t  0,                                                              \\\n\t\t\t\t  message,                                                        \\\n\t\t\t\t  __FILE__,                                                       \\\n\t\t\t\t  __LINE__,                                                       \\\n\t\t\t\t  0);                                                             \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Check(assertion)\n *\n *  Summary:\n *    Production builds: does nothing and produces no code.\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n */\n#ifndef __Check\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Check(assertion)\n\t#else\n\t   #define __Check(assertion)                                                 \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #assertion, 0, 0, __FILE__, __LINE__, 0 );                  \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n#ifndef __nCheck\n\t#define __nCheck(assertion)  __Check(!(assertion))\n#endif\n\n/*\n *  __Check_String(assertion, message)\n *\n *  Summary:\n *    Production builds: does nothing and produces no code.\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    message:\n *      The C string to display.\n */\n#ifndef __Check_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Check_String(assertion, message)\n\t#else\n\t   #define __Check_String(assertion, message)                                 \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #assertion, 0, message, __FILE__, __LINE__, 0 );            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n#ifndef __nCheck_String\n\t#define __nCheck_String(assertion, message)  __Check_String(!(assertion), message)\n#endif\n\n/*\n *  __Check_noErr(errorCode)\n *\n *  Summary:\n *    Production builds: does nothing and produces no code.\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The errorCode expression to compare with 0.\n */\n#ifndef __Check_noErr\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Check_noErr(errorCode)\n\t#else\n\t   #define __Check_noErr(errorCode)                                           \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  long evalOnceErrorCode = (errorCode);                               \\\n\t\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #errorCode \" == 0 \", 0, 0, __FILE__, __LINE__, evalOnceErrorCode ); \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Check_noErr_String(errorCode, message)\n *\n *  Summary:\n *    Production builds: check_noerr_string() does nothing and produces\n *    no code.\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The errorCode expression to compare to 0.\n *\n *    message:\n *      The C string to display.\n */\n#ifndef __Check_noErr_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Check_noErr_String(errorCode, message)\n\t#else\n\t   #define __Check_noErr_String(errorCode, message)                           \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  long evalOnceErrorCode = (errorCode);                               \\\n\t\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #errorCode \" == 0 \", 0, message, __FILE__, __LINE__, evalOnceErrorCode ); \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Verify(assertion)\n *\n *  Summary:\n *    Production builds: evaluate the assertion expression, but ignore\n *    the result.\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n */\n#ifndef __Verify\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Verify(assertion)                                                \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( !(assertion) )                                                 \\\n\t\t\t  {                                                                   \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Verify(assertion)                                                \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #assertion, 0, 0, __FILE__, __LINE__, 0 );                  \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n#ifndef __nVerify\n\t#define __nVerify(assertion)\t__Verify(!(assertion))\n#endif\n\n/*\n *  __Verify_String(assertion, message)\n *\n *  Summary:\n *    Production builds: evaluate the assertion expression, but ignore\n *    the result.\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    message:\n *      The C string to display.\n */\n#ifndef __Verify_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Verify_String(assertion, message)                                \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( !(assertion) )                                                 \\\n\t\t\t  {                                                                   \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Verify_String(assertion, message)                                \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #assertion, 0, message, __FILE__, __LINE__, 0 );            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n#ifndef __nVerify_String\n\t#define __nVerify_String(assertion, message)  __Verify_String(!(assertion), message)\n#endif\n\n/*\n *  __Verify_noErr(errorCode)\n *\n *  Summary:\n *    Production builds: evaluate the errorCode expression, but ignore\n *    the result.\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n */\n#ifndef __Verify_noErr\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Verify_noErr(errorCode)                                          \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( 0 != (errorCode) )                                             \\\n\t\t\t  {                                                                   \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Verify_noErr(errorCode)                                          \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  long evalOnceErrorCode = (errorCode);                               \\\n\t\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #errorCode \" == 0 \", 0, 0, __FILE__, __LINE__, evalOnceErrorCode ); \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Verify_noErr_String(errorCode, message)\n *\n *  Summary:\n *    Production builds: evaluate the errorCode expression, but ignore\n *    the result.\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n *\n *    message:\n *      The C string to display.\n */\n#ifndef __Verify_noErr_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Verify_noErr_String(errorCode, message)                          \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( 0 != (errorCode) )                                             \\\n\t\t\t  {                                                                   \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Verify_noErr_String(errorCode, message)                          \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  long evalOnceErrorCode = (errorCode);                               \\\n\t\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #errorCode \" == 0 \", 0, message, __FILE__, __LINE__, evalOnceErrorCode ); \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Verify_noErr_Action(errorCode, action)\n *\n *  Summary:\n *    Production builds: if the errorCode expression does not equal 0 (noErr),\n *    execute the action statement or compound statement (block).\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE and then execute the action statement or compound\n *    statement (block).\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n *\n *    action:\n *      The statement or compound statement (block).\n */\n#ifndef __Verify_noErr_Action\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Verify_noErr_Action(errorCode, action)                          \\\n\t\t  if ( 0 != (errorCode) ) {                                              \\\n\t\t\t  action;                                                            \\\n\t\t  }                                                                      \\\n\t\t  else do {} while (0)\n\t#else\n\t   #define __Verify_noErr_Action(errorCode, action)                          \\\n               do {                                                                   \\\n\t\t  long evalOnceErrorCode = (errorCode);                                  \\\n\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) ) {                   \\\n\t\t\t  DEBUG_ASSERT_MESSAGE(                                              \\\n\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                            \\\n\t\t\t\t  #errorCode \" == 0 \", 0, 0, __FILE__, __LINE__, evalOnceErrorCode );            \\\n\t\t\t  action;                                                            \\\n\t\t  }                                                                      \\\n\t       } while (0)\n\t#endif\n#endif\n\n/*\n *  __Verify_Action(assertion, action)\n *\n *  Summary:\n *    Production builds: if the assertion expression evaluates to false,\n *    then execute the action statement or compound statement (block).\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE and then execute the action statement or compound\n *    statement (block).\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    action:\n *      The statement or compound statement (block).\n */\n#ifndef __Verify_Action\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Verify_Action(assertion, action)                                \\\n\t\t  if ( __builtin_expect(!(assertion), 0) ) {                             \\\n\t\t\taction;                                                              \\\n\t\t  }                                                                      \\\n\t\t  else do {} while (0)\n\t#else\n\t   #define __Verify_Action(assertion, action)                                \\\n\t\t  if ( __builtin_expect(!(assertion), 0) ) {                             \\\n\t\t\t  DEBUG_ASSERT_MESSAGE(                                              \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                        \\\n\t\t\t\t\t  #assertion, 0, 0, __FILE__, __LINE__, 0 );                 \\\n\t\t\t  action;                                                            \\\n\t\t  }                                                                      \\\n\t\t  else do {} while (0)\n\t#endif\n#endif\n\n/*\n *  __Require(assertion, exceptionLabel)\n *\n *  Summary:\n *    Production builds: if the assertion expression evaluates to false,\n *    goto exceptionLabel.\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE and then goto exceptionLabel.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    exceptionLabel:\n *      The label.\n */\n#ifndef __Require\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Require(assertion, exceptionLabel)                               \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Require(assertion, exceptionLabel)                               \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) ) {                          \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #assertion, #exceptionLabel, 0, __FILE__, __LINE__,  0);    \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n#ifndef __nRequire\n\t#define __nRequire(assertion, exceptionLabel)  __Require(!(assertion), exceptionLabel)\n#endif\n\n/*\n *  __Require_Action(assertion, exceptionLabel, action)\n *\n *  Summary:\n *    Production builds: if the assertion expression evaluates to false,\n *    execute the action statement or compound statement (block) and then\n *    goto exceptionLabel.\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE, execute the action statement or compound\n *    statement (block), and then goto exceptionLabel.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    exceptionLabel:\n *      The label.\n *\n *    action:\n *      The statement or compound statement (block).\n */\n#ifndef __Require_Action\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Require_Action(assertion, exceptionLabel, action)                \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  {                                                               \\\n\t\t\t\t\t  action;                                                     \\\n\t\t\t\t  }                                                               \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Require_Action(assertion, exceptionLabel, action)                \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #assertion, #exceptionLabel, 0,   __FILE__, __LINE__, 0);   \\\n\t\t\t\t  {                                                               \\\n\t\t\t\t\t  action;                                                     \\\n\t\t\t\t  }                                                               \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n#ifndef __nRequire_Action\n\t#define __nRequire_Action(assertion, exceptionLabel, action)                  \\\n\t__Require_Action(!(assertion), exceptionLabel, action)\n#endif\n\n/*\n *  __Require_Quiet(assertion, exceptionLabel)\n *\n *  Summary:\n *    If the assertion expression evaluates to false, goto exceptionLabel.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    exceptionLabel:\n *      The label.\n */\n#ifndef __Require_Quiet\n\t#define __Require_Quiet(assertion, exceptionLabel)                            \\\n\t  do                                                                          \\\n\t  {                                                                           \\\n\t\t  if ( __builtin_expect(!(assertion), 0) )                                \\\n\t\t  {                                                                       \\\n\t\t\t  goto exceptionLabel;                                                \\\n\t\t  }                                                                       \\\n\t  } while ( 0 )\n#endif\n\n#ifndef __nRequire_Quiet\n\t#define __nRequire_Quiet(assertion, exceptionLabel)  __Require_Quiet(!(assertion), exceptionLabel)\n#endif\n\n/*\n *  __Require_Action_Quiet(assertion, exceptionLabel, action)\n *\n *  Summary:\n *    If the assertion expression evaluates to false, execute the action\n *    statement or compound statement (block), and goto exceptionLabel.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    exceptionLabel:\n *      The label.\n *\n *    action:\n *      The statement or compound statement (block).\n */\n#ifndef __Require_Action_Quiet\n\t#define __Require_Action_Quiet(assertion, exceptionLabel, action)             \\\n\t  do                                                                          \\\n\t  {                                                                           \\\n\t\t  if ( __builtin_expect(!(assertion), 0) )                                \\\n\t\t  {                                                                       \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  action;                                                         \\\n\t\t\t  }                                                                   \\\n\t\t\t  goto exceptionLabel;                                                \\\n\t\t  }                                                                       \\\n\t  } while ( 0 )\n#endif\n\n#ifndef __nRequire_Action_Quiet\n\t#define __nRequire_Action_Quiet(assertion, exceptionLabel, action)              \\\n\t\t__Require_Action_Quiet(!(assertion), exceptionLabel, action)\n#endif\n\n/*\n *  __Require_String(assertion, exceptionLabel, message)\n *\n *  Summary:\n *    Production builds: if the assertion expression evaluates to false,\n *    goto exceptionLabel.\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE, and then goto exceptionLabel.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    exceptionLabel:\n *      The label.\n *\n *    message:\n *      The C string to display.\n */\n#ifndef __Require_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Require_String(assertion, exceptionLabel, message)               \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Require_String(assertion, exceptionLabel, message)               \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #assertion, #exceptionLabel,  message,  __FILE__, __LINE__, 0); \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n#ifndef __nRequire_String\n\t#define __nRequire_String(assertion, exceptionLabel, string)                  \\\n\t\t__Require_String(!(assertion), exceptionLabel, string)\n#endif\n\n/*\n *  __Require_Action_String(assertion, exceptionLabel, action, message)\n *\n *  Summary:\n *    Production builds: if the assertion expression evaluates to false,\n *    execute the action statement or compound statement (block), and then\n *    goto exceptionLabel.\n *\n *    Non-production builds: if the assertion expression evaluates to false,\n *    call DEBUG_ASSERT_MESSAGE, execute the action statement or compound\n *    statement (block), and then goto exceptionLabel.\n *\n *  Parameters:\n *\n *    assertion:\n *      The assertion expression.\n *\n *    exceptionLabel:\n *      The label.\n *\n *    action:\n *      The statement or compound statement (block).\n *\n *    message:\n *      The C string to display.\n */\n#ifndef __Require_Action_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Require_Action_String(assertion, exceptionLabel, action, message)  \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  {                                                               \\\n\t\t\t\t\t  action;                                                     \\\n\t\t\t\t  }                                                               \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Require_Action_String(assertion, exceptionLabel, action, message)  \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(!(assertion), 0) )                            \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #assertion, #exceptionLabel,  message,  __FILE__,  __LINE__, 0); \\\n\t\t\t\t  {                                                               \\\n\t\t\t\t\t  action;                                                     \\\n\t\t\t\t  }                                                               \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n#ifndef __nRequire_Action_String\n\t#define __nRequire_Action_String(assertion, exceptionLabel, action, message)    \\\n\t\t__Require_Action_String(!(assertion), exceptionLabel, action, message)\n#endif\n\n/*\n *  __Require_noErr(errorCode, exceptionLabel)\n *\n *  Summary:\n *    Production builds: if the errorCode expression does not equal 0 (noErr),\n *    goto exceptionLabel.\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE and then goto exceptionLabel.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n *\n *    exceptionLabel:\n *      The label.\n */\n#ifndef __Require_noErr\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Require_noErr(errorCode, exceptionLabel)                         \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(0 != (errorCode), 0) )                        \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Require_noErr(errorCode, exceptionLabel)                         \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  long evalOnceErrorCode = (errorCode);                               \\\n\t\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #errorCode \" == 0 \",  #exceptionLabel,  0,  __FILE__, __LINE__, evalOnceErrorCode); \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Require_noErr_Action(errorCode, exceptionLabel, action)\n *\n *  Summary:\n *    Production builds: if the errorCode expression does not equal 0 (noErr),\n *    execute the action statement or compound statement (block) and\n *    goto exceptionLabel.\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE, execute the action statement or\n *    compound statement (block), and then goto exceptionLabel.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n *\n *    exceptionLabel:\n *      The label.\n *\n *    action:\n *      The statement or compound statement (block).\n */\n#ifndef __Require_noErr_Action\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Require_noErr_Action(errorCode, exceptionLabel, action)          \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(0 != (errorCode), 0) )                        \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  {                                                               \\\n\t\t\t\t\t  action;                                                     \\\n\t\t\t\t  }                                                               \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Require_noErr_Action(errorCode, exceptionLabel, action)          \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  long evalOnceErrorCode = (errorCode);                               \\\n\t\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #errorCode \" == 0 \", #exceptionLabel,  0,  __FILE__, __LINE__,  evalOnceErrorCode); \\\n\t\t\t\t  {                                                               \\\n\t\t\t\t\t  action;                                                     \\\n\t\t\t\t  }                                                               \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Require_noErr_Quiet(errorCode, exceptionLabel)\n *\n *  Summary:\n *    If the errorCode expression does not equal 0 (noErr),\n *    goto exceptionLabel.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n *\n *    exceptionLabel:\n *      The label.\n */\n#ifndef __Require_noErr_Quiet\n\t#define __Require_noErr_Quiet(errorCode, exceptionLabel)                      \\\n\t  do                                                                          \\\n\t  {                                                                           \\\n\t\t  if ( __builtin_expect(0 != (errorCode), 0) )                            \\\n\t\t  {                                                                       \\\n\t\t\t  goto exceptionLabel;                                                \\\n\t\t  }                                                                       \\\n\t  } while ( 0 )\n#endif\n\n/*\n *  __Require_noErr_Action_Quiet(errorCode, exceptionLabel, action)\n *\n *  Summary:\n *    If the errorCode expression does not equal 0 (noErr),\n *    execute the action statement or compound statement (block) and\n *    goto exceptionLabel.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n *\n *    exceptionLabel:\n *      The label.\n *\n *    action:\n *      The statement or compound statement (block).\n */\n#ifndef __Require_noErr_Action_Quiet\n\t#define __Require_noErr_Action_Quiet(errorCode, exceptionLabel, action)       \\\n\t  do                                                                          \\\n\t  {                                                                           \\\n\t\t  if ( __builtin_expect(0 != (errorCode), 0) )                            \\\n\t\t  {                                                                       \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  action;                                                         \\\n\t\t\t  }                                                                   \\\n\t\t\t  goto exceptionLabel;                                                \\\n\t\t  }                                                                       \\\n\t  } while ( 0 )\n#endif\n\n/*\n *  __Require_noErr_String(errorCode, exceptionLabel, message)\n *\n *  Summary:\n *    Production builds: if the errorCode expression does not equal 0 (noErr),\n *    goto exceptionLabel.\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE, and then goto exceptionLabel.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n *\n *    exceptionLabel:\n *      The label.\n *\n *    message:\n *      The C string to display.\n */\n#ifndef __Require_noErr_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Require_noErr_String(errorCode, exceptionLabel, message)         \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(0 != (errorCode), 0) )                        \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Require_noErr_String(errorCode, exceptionLabel, message)         \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  long evalOnceErrorCode = (errorCode);                               \\\n\t\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #errorCode \" == 0 \",  #exceptionLabel, message, __FILE__,  __LINE__,  evalOnceErrorCode); \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Require_noErr_Action_String(errorCode, exceptionLabel, action, message)\n *\n *  Summary:\n *    Production builds: if the errorCode expression does not equal 0 (noErr),\n *    execute the action statement or compound statement (block) and\n *    goto exceptionLabel.\n *\n *    Non-production builds: if the errorCode expression does not equal 0 (noErr),\n *    call DEBUG_ASSERT_MESSAGE, execute the action statement or compound\n *    statement (block), and then goto exceptionLabel.\n *\n *  Parameters:\n *\n *    errorCode:\n *      The expression to compare to 0.\n *\n *    exceptionLabel:\n *      The label.\n *\n *    action:\n *      The statement or compound statement (block).\n *\n *    message:\n *      The C string to display.\n */\n#ifndef __Require_noErr_Action_String\n\t#if DEBUG_ASSERT_PRODUCTION_CODE\n\t   #define __Require_noErr_Action_String(errorCode, exceptionLabel, action, message) \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  if ( __builtin_expect(0 != (errorCode), 0) )                        \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  {                                                               \\\n\t\t\t\t\t  action;                                                     \\\n\t\t\t\t  }                                                               \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#else\n\t   #define __Require_noErr_Action_String(errorCode, exceptionLabel, action, message) \\\n\t\t  do                                                                      \\\n\t\t  {                                                                       \\\n\t\t\t  long evalOnceErrorCode = (errorCode);                               \\\n\t\t\t  if ( __builtin_expect(0 != evalOnceErrorCode, 0) )                  \\\n\t\t\t  {                                                                   \\\n\t\t\t\t  DEBUG_ASSERT_MESSAGE(                                           \\\n\t\t\t\t\t  DEBUG_ASSERT_COMPONENT_NAME_STRING,                         \\\n\t\t\t\t\t  #errorCode \" == 0 \", #exceptionLabel, message, __FILE__, __LINE__, evalOnceErrorCode); \\\n\t\t\t\t  {                                                               \\\n\t\t\t\t\t  action;                                                     \\\n\t\t\t\t  }                                                               \\\n\t\t\t\t  goto exceptionLabel;                                            \\\n\t\t\t  }                                                                   \\\n\t\t  } while ( 0 )\n\t#endif\n#endif\n\n/*\n *  __Check_Compile_Time(expr)\n *\n *  Summary:\n *    any build: if the expression is not true, generated a compile time error.\n *\n *  Parameters:\n *\n *    expr:\n *      The compile time expression that should evaluate to non-zero.\n *\n *  Discussion:\n *     This declares an array with a size that is determined by a compile-time expression.\n *     If false, it declares a negatively sized array, which generates a compile-time error.\n *\n * Examples:\n *     __Check_Compile_Time( sizeof( int ) == 4 );\n *     __Check_Compile_Time( offsetof( MyStruct, myField ) == 4 );\n *     __Check_Compile_Time( ( kMyBufferSize % 512 ) == 0 );\n *\n *  Note: This only works with compile-time expressions.\n *  Note: This only works in places where extern declarations are allowed (e.g. global scope).\n */\n#ifndef __Check_Compile_Time\n    #ifdef __GNUC__ \n        #define __Check_Compile_Time( expr )    \\\n            extern int compile_time_assert_failed[ ( expr ) ? 1 : -1 ] __attribute__( ( unused ) )\n    #else\n        #define __Check_Compile_Time( expr )    \\\n            extern int compile_time_assert_failed[ ( expr ) ? 1 : -1 ]\n    #endif\n#endif\n\n/*\n *\tFor time immemorial, Mac OS X has defined version of most of these macros without the __ prefix, which\n *\tcould collide with similarly named functions or macros in user code, including new functionality in\n *\tBoost and the C++ standard library.\n *\n *\tA future release of Mac OS X will no longer do this, and will require that clients move to the\n *  new macros as defined above.  However, in the interim both the new and old macros will work, unless\n *  clients define a macro __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES before this file is included\n *  in their compilations.  Clients who do not want the older macros defined can accomplish this by adding\n *    #define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0\n *  at the top of their sources, or my adding -D__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES=0 to the\n *  gcc compilation options.\n *\n *  To aid users of these macros in converting their sources, the following tops script will convert usages\n *  of the old macros into the new equivalents.  To do so, in Terminal go into the directory containing the\n *  sources to be converted and run this command.\n *\n    find . -name '*.[c|cc|cp|cpp|m|mm|h]' -print0 |  xargs -0 tops -verbose \\\n      replace \"check(<b args>)\" with \"__Check(<args>)\" \\\n      replace \"check_noerr(<b args>)\" with \"__Check_noErr(<args>)\" \\\n      replace \"check_noerr_string(<b args>)\" with \"__Check_noErr_String(<args>)\" \\\n      replace \"check_string(<b args>)\" with \"__Check_String(<args>)\" \\\n      replace \"require(<b args>)\" with \"__Require(<args>)\" \\\n      replace \"require_action(<b args>)\" with \"__Require_Action(<args>)\" \\\n      replace \"require_action_string(<b args>)\" with \"__Require_Action_String(<args>)\" \\\n      replace \"require_noerr(<b args>)\" with \"__Require_noErr(<args>)\" \\\n      replace \"require_noerr_action(<b args>)\" with \"__Require_noErr_Action(<args>)\" \\\n      replace \"require_noerr_action_string(<b args>)\" with \"__Require_noErr_Action_String(<args>)\" \\\n      replace \"require_noerr_string(<b args>)\" with \"__Require_noErr_String(<args>)\" \\\n      replace \"require_string(<b args>)\" with \"__Require_String(<args>)\" \\\n      replace \"verify(<b args>)\" with \"__Verify(<args>)\" \\\n      replace \"verify_action(<b args>)\" with \"__Verify_Action(<args>)\" \\\n      replace \"verify_noerr(<b args>)\" with \"__Verify_noErr(<args>)\" \\\n      replace \"verify_noerr_action(<b args>)\" with \"__Verify_noErr_Action(<args>)\" \\\n      replace \"verify_noerr_string(<b args>)\" with \"__Verify_noErr_String(<args>)\" \\\n      replace \"verify_string(<b args>)\" with \"__Verify_String(<args>)\" \\\n      replace \"ncheck(<b args>)\" with \"__nCheck(<args>)\" \\\n      replace \"ncheck_string(<b args>)\" with \"__nCheck_String(<args>)\" \\\n      replace \"nrequire(<b args>)\" with \"__nRequire(<args>)\" \\\n      replace \"nrequire_action(<b args>)\" with \"__nRequire_Action(<args>)\" \\\n      replace \"nrequire_action_quiet(<b args>)\" with \"__nRequire_Action_Quiet(<args>)\" \\\n      replace \"nrequire_action_string(<b args>)\" with \"__nRequire_Action_String(<args>)\" \\\n      replace \"nrequire_quiet(<b args>)\" with \"__nRequire_Quiet(<args>)\" \\\n      replace \"nrequire_string(<b args>)\" with \"__nRequire_String(<args>)\" \\\n      replace \"nverify(<b args>)\" with \"__nVerify(<args>)\" \\\n      replace \"nverify_string(<b args>)\" with \"__nVerify_String(<args>)\" \\\n      replace \"require_action_quiet(<b args>)\" with \"__Require_Action_Quiet(<args>)\" \\\n      replace \"require_noerr_action_quiet(<b args>)\" with \"__Require_noErr_Action_Quiet(<args>)\" \\\n      replace \"require_noerr_quiet(<b args>)\" with \"__Require_noErr_Quiet(<args>)\" \\\n      replace \"require_quiet(<b args>)\" with \"__Require_Quiet(<args>)\" \\\n      replace \"check_compile_time(<b args>)\" with \"__Check_Compile_Time(<args>)\" \\\n      replace \"debug_string(<b args>)\" with \"__Debug_String(<args>)\"\n *\n */\n\n#ifndef __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES\n\t/* If we haven't set this yet, it defaults to on.  In the next release, this will default to off. */\n\t#define\t__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES\t1\n#endif\n\n#if\t__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES\n\n\t#ifndef check\n\t#define check(assertion)  __Check(assertion)\n\t#endif\n\n\t#ifndef check_noerr\n\t#define check_noerr(errorCode)  __Check_noErr(errorCode)\n\t#endif\n\n\t#ifndef check_noerr_string\n\t\t#define check_noerr_string(errorCode, message)  __Check_noErr_String(errorCode, message)\n\t#endif\n\n\t#ifndef check_string\n\t\t#define check_string(assertion, message)  __Check_String(assertion, message)\n\t#endif\n\n\t#ifndef require\n\t\t#define require(assertion, exceptionLabel)  __Require(assertion, exceptionLabel)\n\t#endif\n\n\t#ifndef require_action\n\t\t#define require_action(assertion, exceptionLabel, action)  __Require_Action(assertion, exceptionLabel, action)\n\t#endif\n\n\t#ifndef require_action_string\n\t\t#define require_action_string(assertion, exceptionLabel, action, message)  __Require_Action_String(assertion, exceptionLabel, action, message)\n\t#endif\n\n\t#ifndef require_noerr\n\t\t#define require_noerr(errorCode, exceptionLabel)  __Require_noErr(errorCode, exceptionLabel)\n\t#endif\n\n\t#ifndef require_noerr_action\n\t\t#define require_noerr_action(errorCode, exceptionLabel, action)  __Require_noErr_Action(errorCode, exceptionLabel, action)\n\t#endif\n\n\t#ifndef require_noerr_action_string\n\t\t#define require_noerr_action_string(errorCode, exceptionLabel, action, message)  __Require_noErr_Action_String(errorCode, exceptionLabel, action, message)\n\t#endif\n\n\t#ifndef require_noerr_string\n\t\t#define require_noerr_string(errorCode, exceptionLabel, message)  __Require_noErr_String(errorCode, exceptionLabel, message)\n\t#endif\n\n\t#ifndef require_string\n\t\t#define require_string(assertion, exceptionLabel, message)  __Require_String(assertion, exceptionLabel, message)\n\t#endif\n\n\t#ifndef verify\n\t\t#define verify(assertion) __Verify(assertion)\n\t#endif\n\n\t#ifndef verify_action\n\t\t#define verify_action(assertion, action)  __Verify_Action(assertion, action)\n\t#endif\n\n\t#ifndef verify_noerr\n\t\t#define verify_noerr(errorCode)  __Verify_noErr(errorCode)\n\t#endif\n\n\t#ifndef verify_noerr_action\n\t\t#define verify_noerr_action(errorCode, action)  __Verify_noErr_Action(errorCode, action)\n\t#endif\n\n\t#ifndef verify_noerr_string\n\t\t#define verify_noerr_string(errorCode, message)  __Verify_noErr_String(errorCode, message)\n\t#endif\n\n\t#ifndef verify_string\n\t\t#define verify_string(assertion, message)  __Verify_String(assertion, message)\n\t#endif\n\n\t#ifndef ncheck\n\t\t#define ncheck(assertion)  __nCheck(assertion)\n\t#endif\n\n\t#ifndef ncheck_string\n\t\t#define ncheck_string(assertion, message)  __nCheck_String(assertion, message)\n\t#endif\n\n\t#ifndef nrequire\n\t\t#define nrequire(assertion, exceptionLabel)  __nRequire(assertion, exceptionLabel)\n\t#endif\n\n\t#ifndef nrequire_action\n\t\t#define nrequire_action(assertion, exceptionLabel, action)  __nRequire_Action(assertion, exceptionLabel, action)\n\t#endif\n\n\t#ifndef nrequire_action_quiet\n\t\t#define nrequire_action_quiet(assertion, exceptionLabel, action)  __nRequire_Action_Quiet(assertion, exceptionLabel, action)\n\t#endif\n\n\t#ifndef nrequire_action_string\n\t\t#define nrequire_action_string(assertion, exceptionLabel, action, message)  __nRequire_Action_String(assertion, exceptionLabel, action, message)\n\t#endif\n\n\t#ifndef nrequire_quiet\n\t\t#define nrequire_quiet(assertion, exceptionLabel)  __nRequire_Quiet(assertion, exceptionLabel)\n\t#endif\n\n\t#ifndef nrequire_string\n\t\t#define nrequire_string(assertion, exceptionLabel, string)  __nRequire_String(assertion, exceptionLabel, string)\n\t#endif\n\n\t#ifndef nverify\n\t\t#define nverify(assertion)  __nVerify(assertion)\n\t#endif\n\n\t#ifndef nverify_string\n\t\t#define nverify_string(assertion, message)  __nVerify_String(assertion, message)\n\t#endif\n\n\t#ifndef require_action_quiet\n\t\t#define require_action_quiet(assertion, exceptionLabel, action)  __Require_Action_Quiet(assertion, exceptionLabel, action)\n\t#endif\n\n\t#ifndef require_noerr_action_quiet\n\t\t#define require_noerr_action_quiet(errorCode, exceptionLabel, action)  __Require_noErr_Action_Quiet(errorCode, exceptionLabel, action)\n\t#endif\n\n\t#ifndef require_noerr_quiet\n\t\t#define require_noerr_quiet(errorCode, exceptionLabel)  __Require_noErr_Quiet(errorCode, exceptionLabel)\n\t#endif\n\n\t#ifndef require_quiet\n\t\t#define require_quiet(assertion, exceptionLabel)  __Require_Quiet(assertion, exceptionLabel)\n\t#endif\n\n\t#ifndef check_compile_time\n\t\t#define check_compile_time( expr )  __Check_Compile_Time( expr )\n\t#endif\n\n\t#ifndef debug_string\n\t\t#define debug_string(message)  __Debug_String(message)\n\t#endif\n\t\n#endif\t/* ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES */\n\n\n#endif /* __ASSERTMACROS__ */\n"
  },
  {
    "path": "basic-headers/Availability.h",
    "content": "/*\n * Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n \n#ifndef __AVAILABILITY__\n#define __AVAILABILITY__\n /*     \n    These macros are for use in OS header files. They enable function prototypes\n    and Objective-C methods to be tagged with the OS version in which they\n    were first available; and, if applicable, the OS version in which they \n    became deprecated.  \n     \n    The desktop Mac OS X and iOS each have different version numbers.\n    The __OSX_AVAILABLE_STARTING() macro allows you to specify both the desktop\n    and iOS version numbers.  For instance:\n        __OSX_AVAILABLE_STARTING(__MAC_10_2,__IPHONE_2_0)\n    means the function/method was first available on Mac OS X 10.2 on the desktop\n    and first available in iOS 2.0 on the iPhone.\n    \n    If a function is available on one platform, but not the other a _NA (not\n    applicable) parameter is used.  For instance:\n            __OSX_AVAILABLE_STARTING(__MAC_10_3,__IPHONE_NA)\n    means that the function/method was first available on Mac OS X 10.3, and it\n    currently not implemented on the iPhone.\n\n    At some point, a function/method may be deprecated.  That means Apple\n    recommends applications stop using the function, either because there is a \n    better replacement or the functionality is being phased out.  Deprecated\n    functions/methods can be tagged with a __OSX_AVAILABLE_BUT_DEPRECATED()\n    macro which specifies the OS version where the function became available\n    as well as the OS version in which it became deprecated.  For instance:\n        __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0,__MAC_10_5,__IPHONE_NA,__IPHONE_NA)\n    means that the function/method was introduced in Mac OS X 10.0, then\n    became deprecated beginning in Mac OS X 10.5.  On iOS the function \n    has never been available.  \n    \n    For these macros to function properly, a program must specify the OS version range \n    it is targeting.  The min OS version is specified as an option to the compiler:\n    -mmacosx-version-min=10.x when building for Mac OS X, and -miphoneos-version-min=y.z\n    when building for the iPhone.  The upper bound for the OS version is rarely needed,\n    but it can be set on the command line via: -D__MAC_OS_X_VERSION_MAX_ALLOWED=10x0 for\n    Mac OS X and __IPHONE_OS_VERSION_MAX_ALLOWED = y0z00 for iOS.  \n    \n    Examples:\n\n        A function available in Mac OS X 10.5 and later, but not on the phone:\n        \n            extern void mymacfunc() __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);\n\n\n        An Objective-C method in Mac OS X 10.5 and later, but not on the phone:\n        \n            @interface MyClass : NSObject\n            -(void) mymacmethod __OSX_AVAILABLE_STARTING(__MAC_10_5,__IPHONE_NA);\n            @end\n\n        \n        An enum available on the phone, but not available on Mac OS X:\n        \n            #if __IPHONE_OS_VERSION_MIN_REQUIRED\n                enum { myEnum = 1 };\n            #endif\n           Note: this works when targeting the Mac OS X platform because \n           __IPHONE_OS_VERSION_MIN_REQUIRED is undefined which evaluates to zero. \n        \n\n        An enum with values added in different iPhoneOS versions:\n\t\t\n\t\t\tenum {\n\t\t\t    myX  = 1,\t// Usable on iPhoneOS 2.1 and later\n\t\t\t    myY  = 2,\t// Usable on iPhoneOS 3.0 and later\n\t\t\t    myZ  = 3,\t// Usable on iPhoneOS 3.0 and later\n\t\t\t\t...\n\t\t      Note: you do not want to use #if with enumeration values\n\t\t\t  when a client needs to see all values at compile time\n\t\t\t  and use runtime logic to only use the viable values.\n\t\t\t  \n\n    It is also possible to use the *_VERSION_MIN_REQUIRED in source code to make one\n    source base that can be compiled to target a range of OS versions.  It is best\n    to not use the _MAC_* and __IPHONE_* macros for comparisons, but rather their values.\n    That is because you might get compiled on an old OS that does not define a later\n    OS version macro, and in the C preprocessor undefined values evaluate to zero\n    in expresssions, which could cause the #if expression to evaluate in an unexpected\n    way.\n    \n        #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED\n            // code only compiled when targeting Mac OS X and not iPhone\n            // note use of 1050 instead of __MAC_10_5\n            #if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050\n                // code in here might run on pre-Leopard OS\n            #else\n                // code here can assume Leopard or later\n            #endif\n        #endif\n\n\n*/\n\n/* \n * __API_TO_BE_DEPRECATED is used as a version number in API that will be deprecated \n * in an upcoming release. This soft deprecation is an intermediate step before formal \n * deprecation to notify developers about the API before compiler warnings are generated.\n * You can find all places in your code that use soft deprecated API by redefining the \n * value of this macro to your current minimum deployment target, for example:\n * (macOS)\n *   clang -D__API_TO_BE_DEPRECATED=10.12 <other compiler flags>\n * (iOS)\n *   clang -D__API_TO_BE_DEPRECATED=11.0 <other compiler flags>\n */\n \n#ifndef __API_TO_BE_DEPRECATED\n#define __API_TO_BE_DEPRECATED 100000\n#endif\n\n#ifndef __MAC_10_0\n#define __MAC_10_0            1000\n#define __MAC_10_1            1010\n#define __MAC_10_2            1020\n#define __MAC_10_3            1030\n#define __MAC_10_4            1040\n#define __MAC_10_5            1050\n#define __MAC_10_6            1060\n#define __MAC_10_7            1070\n#define __MAC_10_8            1080\n#define __MAC_10_9            1090\n#define __MAC_10_10         101000\n#define __MAC_10_10_2       101002\n#define __MAC_10_10_3       101003\n#define __MAC_10_11         101100\n#define __MAC_10_11_2       101102\n#define __MAC_10_11_3       101103\n#define __MAC_10_11_4       101104\n#define __MAC_10_12         101200\n#define __MAC_10_12_1       101201\n#define __MAC_10_12_2       101202\n#define __MAC_10_12_4       101204\n#define __MAC_10_13         101300\n#define __MAC_10_13_1       101301\n#define __MAC_10_13_2       101302\n#define __MAC_10_13_4       101304\n#define __MAC_10_14         101400\n#define __MAC_10_14_1       101401\n#define __MAC_10_14_4       101404\n#define __MAC_10_15         101500\n#define __MAC_10_15_1       101501\n/* __MAC_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable */\n\n#define __IPHONE_2_0      20000\n#define __IPHONE_2_1      20100\n#define __IPHONE_2_2      20200\n#define __IPHONE_3_0      30000\n#define __IPHONE_3_1      30100\n#define __IPHONE_3_2      30200\n#define __IPHONE_4_0      40000\n#define __IPHONE_4_1      40100\n#define __IPHONE_4_2      40200\n#define __IPHONE_4_3      40300\n#define __IPHONE_5_0      50000\n#define __IPHONE_5_1      50100\n#define __IPHONE_6_0      60000\n#define __IPHONE_6_1      60100\n#define __IPHONE_7_0      70000\n#define __IPHONE_7_1      70100\n#define __IPHONE_8_0      80000\n#define __IPHONE_8_1      80100\n#define __IPHONE_8_2      80200\n#define __IPHONE_8_3      80300\n#define __IPHONE_8_4      80400\n#define __IPHONE_9_0      90000\n#define __IPHONE_9_1      90100\n#define __IPHONE_9_2      90200\n#define __IPHONE_9_3      90300\n#define __IPHONE_10_0    100000\n#define __IPHONE_10_1    100100\n#define __IPHONE_10_2    100200\n#define __IPHONE_10_3    100300\n#define __IPHONE_11_0    110000\n#define __IPHONE_11_1    110100\n#define __IPHONE_11_2    110200\n#define __IPHONE_11_3    110300\n#define __IPHONE_11_4    110400\n#define __IPHONE_12_0    120000\n#define __IPHONE_12_1    120100\n#define __IPHONE_12_2    120200\n#define __IPHONE_12_3    120300\n#define __IPHONE_13_0    130000\n#define __IPHONE_13_1    130100\n#define __IPHONE_13_2    130200\n/* __IPHONE_NA is not defined to a value but is uses as a token by macros to indicate that the API is unavailable */\n\n#define __TVOS_9_0        90000\n#define __TVOS_9_1        90100\n#define __TVOS_9_2        90200\n#define __TVOS_10_0      100000\n#define __TVOS_10_0_1    100001\n#define __TVOS_10_1      100100\n#define __TVOS_10_2      100200\n#define __TVOS_11_0      110000\n#define __TVOS_11_1      110100\n#define __TVOS_11_2      110200\n#define __TVOS_11_3      110300\n#define __TVOS_11_4      110400\n#define __TVOS_12_0      120000\n#define __TVOS_12_1      120100\n#define __TVOS_12_2      120200\n#define __TVOS_12_3      120300\n#define __TVOS_13_0      130000\n#define __TVOS_13_1      130100\n\n#define __WATCHOS_1_0     10000\n#define __WATCHOS_2_0     20000\n#define __WATCHOS_2_1     20100\n#define __WATCHOS_2_2     20200\n#define __WATCHOS_3_0     30000\n#define __WATCHOS_3_1     30100\n#define __WATCHOS_3_1_1   30101\n#define __WATCHOS_3_2     30200\n#define __WATCHOS_4_0     40000\n#define __WATCHOS_4_1     40100\n#define __WATCHOS_4_2     40200\n#define __WATCHOS_4_3     40300\n#define __WATCHOS_5_0     50000\n#define __WATCHOS_5_1     50100\n#define __WATCHOS_5_2     50200\n#define __WATCHOS_6_0     60000\n#define __WATCHOS_6_0_1   60001\n\n#define __DRIVERKIT_19_0 190000\n#endif /* __MAC_10_0 */\n\n#include <AvailabilityInternal.h>\n\n#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED\n    #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_ios\n    #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \\\n                                                    __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep\n    #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \\\n                                                    __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep##_MSG(_msg)\n\n#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED)\n\n   #if defined(__has_builtin)\n    #if __has_builtin(__is_target_arch)\n     #if __has_builtin(__is_target_vendor)\n      #if __has_builtin(__is_target_os)\n       #if __has_builtin(__is_target_environment)\n        #if __has_builtin(__is_target_variant_os)\n         #if __has_builtin(__is_target_variant_environment)\n          #if (__is_target_arch(x86_64) && __is_target_vendor(apple) && ((__is_target_os(ios) && __is_target_environment(macabi)) || (__is_target_variant_os(ios) && __is_target_variant_environment(macabi))))\n            #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_osx __AVAILABILITY_INTERNAL##_ios\n            #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \\\n                                                            __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep\n            #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \\\n                                                            __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep##_MSG(_msg) __AVAILABILITY_INTERNAL##_iosIntro##_DEP##_iosDep##_MSG(_msg)\n          #endif /* # if __is_target_arch... */\n         #endif /* #if __has_builtin(__is_target_variant_environment) */\n        #endif /* #if __has_builtin(__is_target_variant_os) */\n       #endif /* #if __has_builtin(__is_target_environment) */\n      #endif /* #if __has_builtin(__is_target_os) */\n     #endif /* #if __has_builtin(__is_target_vendor) */\n    #endif /* #if __has_builtin(__is_target_arch) */\n   #endif /* #if defined(__has_builtin) */\n\n    #ifndef __OSX_AVAILABLE_STARTING\n      #if defined(__has_attribute) && defined(__has_feature)\n          #if __has_attribute(availability)      \n        #define __OSX_AVAILABLE_STARTING(_osx, _ios) __AVAILABILITY_INTERNAL##_osx\n        #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep) \\\n                                                        __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep\n        #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg) \\\n                                                        __AVAILABILITY_INTERNAL##_osxIntro##_DEP##_osxDep##_MSG(_msg)\n        #else\n        #define __OSX_AVAILABLE_STARTING(_osx, _ios)\n        #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)\n        #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)\n      #endif\n    #endif\n#endif /* __OSX_AVAILABLE_STARTING */\n\n#else\n    #define __OSX_AVAILABLE_STARTING(_osx, _ios)\n    #define __OSX_AVAILABLE_BUT_DEPRECATED(_osxIntro, _osxDep, _iosIntro, _iosDep)\n    #define __OSX_AVAILABLE_BUT_DEPRECATED_MSG(_osxIntro, _osxDep, _iosIntro, _iosDep, _msg)\n#endif\n\n\n#if defined(__has_feature)\n  #if __has_feature(attribute_availability_with_message)\n    #define __OS_AVAILABILITY(_target, _availability)            __attribute__((availability(_target,_availability)))\n    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)  __attribute__((availability(_target,_availability,message=_msg)))\n  #elif __has_feature(attribute_availability)\n    #define __OS_AVAILABILITY(_target, _availability)            __attribute__((availability(_target,_availability)))\n    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)  __attribute__((availability(_target,_availability)))\n  #else\n    #define __OS_AVAILABILITY(_target, _availability)\n    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)\n  #endif\n#else\n    #define __OS_AVAILABILITY(_target, _availability)\n    #define __OS_AVAILABILITY_MSG(_target, _availability, _msg)\n#endif\n\n\n/* for use to document app extension usage */\n#if defined(__has_feature)\n  #if __has_feature(attribute_availability_app_extension)\n    #define __OSX_EXTENSION_UNAVAILABLE(_msg)  __OS_AVAILABILITY_MSG(macosx_app_extension,unavailable,_msg)\n    #define __IOS_EXTENSION_UNAVAILABLE(_msg)  __OS_AVAILABILITY_MSG(ios_app_extension,unavailable,_msg)\n  #else\n    #define __OSX_EXTENSION_UNAVAILABLE(_msg)\n    #define __IOS_EXTENSION_UNAVAILABLE(_msg)\n  #endif\n#else\n    #define __OSX_EXTENSION_UNAVAILABLE(_msg)\n    #define __IOS_EXTENSION_UNAVAILABLE(_msg)\n#endif\n\n#define __OS_EXTENSION_UNAVAILABLE(_msg)  __OSX_EXTENSION_UNAVAILABLE(_msg) __IOS_EXTENSION_UNAVAILABLE(_msg)\n\n\n\n/* for use marking APIs available info for Mac OSX */\n#if defined(__has_attribute)\n  #if __has_attribute(availability)\n    #define __OSX_UNAVAILABLE                    __OS_AVAILABILITY(macosx,unavailable)\n    #define __OSX_AVAILABLE(_vers)               __OS_AVAILABILITY(macosx,introduced=_vers)\n    #define __OSX_DEPRECATED(_start, _dep, _msg) __OSX_AVAILABLE(_start) __OS_AVAILABILITY_MSG(macosx,deprecated=_dep,_msg)\n  #endif\n#endif\n\n#ifndef __OSX_UNAVAILABLE\n  #define __OSX_UNAVAILABLE\n#endif\n\n#ifndef __OSX_AVAILABLE\n  #define __OSX_AVAILABLE(_vers)\n#endif\n\n#ifndef __OSX_DEPRECATED\n  #define __OSX_DEPRECATED(_start, _dep, _msg)\n#endif\n\n\n/* for use marking APIs available info for iOS */\n#if defined(__has_attribute)\n  #if __has_attribute(availability)\n    #define __IOS_UNAVAILABLE                    __OS_AVAILABILITY(ios,unavailable)\n    #define __IOS_PROHIBITED                     __OS_AVAILABILITY(ios,unavailable)\n    #define __IOS_AVAILABLE(_vers)               __OS_AVAILABILITY(ios,introduced=_vers)\n    #define __IOS_DEPRECATED(_start, _dep, _msg) __IOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(ios,deprecated=_dep,_msg)\n  #endif\n#endif\n\n#ifndef __IOS_UNAVAILABLE\n  #define __IOS_UNAVAILABLE\n#endif\n\n#ifndef __IOS_PROHIBITED\n  #define __IOS_PROHIBITED\n#endif\n\n#ifndef __IOS_AVAILABLE\n  #define __IOS_AVAILABLE(_vers)\n#endif\n\n#ifndef __IOS_DEPRECATED\n  #define __IOS_DEPRECATED(_start, _dep, _msg)\n#endif\n\n\n/* for use marking APIs available info for tvOS */\n#if defined(__has_feature)\n  #if __has_feature(attribute_availability_tvos)\n    #define __TVOS_UNAVAILABLE                    __OS_AVAILABILITY(tvos,unavailable)\n    #define __TVOS_PROHIBITED                     __OS_AVAILABILITY(tvos,unavailable)\n    #define __TVOS_AVAILABLE(_vers)               __OS_AVAILABILITY(tvos,introduced=_vers)\n    #define __TVOS_DEPRECATED(_start, _dep, _msg) __TVOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(tvos,deprecated=_dep,_msg)\n  #endif\n#endif\n\n#ifndef __TVOS_UNAVAILABLE\n  #define __TVOS_UNAVAILABLE\n#endif\n\n#ifndef __TVOS_PROHIBITED\n  #define __TVOS_PROHIBITED\n#endif\n\n#ifndef __TVOS_AVAILABLE\n  #define __TVOS_AVAILABLE(_vers)\n#endif\n\n#ifndef __TVOS_DEPRECATED\n  #define __TVOS_DEPRECATED(_start, _dep, _msg)\n#endif\n\n\n/* for use marking APIs available info for Watch OS */\n#if defined(__has_feature)\n  #if __has_feature(attribute_availability_watchos)\n    #define __WATCHOS_UNAVAILABLE                    __OS_AVAILABILITY(watchos,unavailable)\n    #define __WATCHOS_PROHIBITED                     __OS_AVAILABILITY(watchos,unavailable)\n    #define __WATCHOS_AVAILABLE(_vers)               __OS_AVAILABILITY(watchos,introduced=_vers)\n    #define __WATCHOS_DEPRECATED(_start, _dep, _msg) __WATCHOS_AVAILABLE(_start) __OS_AVAILABILITY_MSG(watchos,deprecated=_dep,_msg)\n  #endif\n#endif\n\n#ifndef __WATCHOS_UNAVAILABLE\n  #define __WATCHOS_UNAVAILABLE\n#endif\n\n#ifndef __WATCHOS_PROHIBITED\n  #define __WATCHOS_PROHIBITED\n#endif\n\n#ifndef __WATCHOS_AVAILABLE\n  #define __WATCHOS_AVAILABLE(_vers)\n#endif\n\n#ifndef __WATCHOS_DEPRECATED\n  #define __WATCHOS_DEPRECATED(_start, _dep, _msg)\n#endif\n\n\n/* for use marking APIs unavailable for swift */\n#if defined(__has_feature)\n  #if __has_feature(attribute_availability_swift)\n    #define __SWIFT_UNAVAILABLE                   __OS_AVAILABILITY(swift,unavailable)\n    #define __SWIFT_UNAVAILABLE_MSG(_msg)         __OS_AVAILABILITY_MSG(swift,unavailable,_msg)\n  #endif\n#endif\n\n#ifndef __SWIFT_UNAVAILABLE\n  #define __SWIFT_UNAVAILABLE\n#endif\n\n#ifndef __SWIFT_UNAVAILABLE_MSG\n  #define __SWIFT_UNAVAILABLE_MSG(_msg)\n#endif\n\n/*\n Macros for defining which versions/platform a given symbol can be used.\n \n @see http://clang.llvm.org/docs/AttributeReference.html#availability\n \n * Note that these macros are only compatible with clang compilers that\n * support the following target selection options:\n *\n * -mmacosx-version-min\n * -miphoneos-version-min\n * -mwatchos-version-min\n * -mtvos-version-min\n */\n\n#if defined(__has_feature) && defined(__has_attribute)\n #if __has_attribute(availability)\n\n    /*\n     * API Introductions\n     *\n     * Use to specify the release that a particular API became available.\n     *\n     * Platform names:\n     *   macos, ios, tvos, watchos\n     *\n     * Examples:\n     *    __API_AVAILABLE(macos(10.10))\n     *    __API_AVAILABLE(macos(10.9), ios(10.0))\n     *    __API_AVAILABLE(macos(10.4), ios(8.0), watchos(2.0), tvos(10.0))\n     *    __API_AVAILABLE(driverkit(19.0))\n     */\n    #define __API_AVAILABLE(...) __API_AVAILABLE_GET_MACRO(__VA_ARGS__,__API_AVAILABLE7, __API_AVAILABLE6, __API_AVAILABLE5, __API_AVAILABLE4, __API_AVAILABLE3, __API_AVAILABLE2, __API_AVAILABLE1, 0)(__VA_ARGS__)\n    \n    #define __API_AVAILABLE_BEGIN(...) _Pragma(\"clang attribute push\") __API_AVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_AVAILABLE_BEGIN7, __API_AVAILABLE_BEGIN6, __API_AVAILABLE_BEGIN5, __API_AVAILABLE_BEGIN4, __API_AVAILABLE_BEGIN3, __API_AVAILABLE_BEGIN2, __API_AVAILABLE_BEGIN1, 0)(__VA_ARGS__)\n    #define __API_AVAILABLE_END _Pragma(\"clang attribute pop\")\n\n    /*\n     * API Deprecations\n     *\n     * Use to specify the release that a particular API became unavailable.\n     *\n     * Platform names:\n     *   macos, ios, tvos, watchos\n     *\n     * Examples:\n     *\n     *    __API_DEPRECATED(\"No longer supported\", macos(10.4, 10.8))\n     *    __API_DEPRECATED(\"No longer supported\", macos(10.4, 10.8), ios(2.0, 3.0), watchos(2.0, 3.0), tvos(9.0, 10.0))\n     *\n     *    __API_DEPRECATED_WITH_REPLACEMENT(\"-setName:\", tvos(10.0, 10.4), ios(9.0, 10.0))\n     *    __API_DEPRECATED_WITH_REPLACEMENT(\"SomeClassName\", macos(10.4, 10.6), watchos(2.0, 3.0))\n     */\n    #define __API_DEPRECATED(...) __API_DEPRECATED_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_MSG8,__API_DEPRECATED_MSG7,__API_DEPRECATED_MSG6,__API_DEPRECATED_MSG5,__API_DEPRECATED_MSG4,__API_DEPRECATED_MSG3,__API_DEPRECATED_MSG2,__API_DEPRECATED_MSG1, 0)(__VA_ARGS__)\n    #define __API_DEPRECATED_WITH_REPLACEMENT(...) __API_DEPRECATED_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_REP8,__API_DEPRECATED_REP7,__API_DEPRECATED_REP6,__API_DEPRECATED_REP5,__API_DEPRECATED_REP4,__API_DEPRECATED_REP3,__API_DEPRECATED_REP2,__API_DEPRECATED_REP1, 0)(__VA_ARGS__)\n\n    #define __API_DEPRECATED_BEGIN(...) _Pragma(\"clang attribute push\") __API_DEPRECATED_BEGIN_MSG_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_MSG8,__API_DEPRECATED_BEGIN_MSG7, __API_DEPRECATED_BEGIN_MSG6, __API_DEPRECATED_BEGIN_MSG5, __API_DEPRECATED_BEGIN_MSG4, __API_DEPRECATED_BEGIN_MSG3, __API_DEPRECATED_BEGIN_MSG2, __API_DEPRECATED_BEGIN_MSG1, 0)(__VA_ARGS__)\n    #define __API_DEPRECATED_END _Pragma(\"clang attribute pop\")\n\n    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...) _Pragma(\"clang attribute push\") __API_DEPRECATED_BEGIN_REP_GET_MACRO(__VA_ARGS__,__API_DEPRECATED_BEGIN_REP8,__API_DEPRECATED_BEGIN_REP7, __API_DEPRECATED_BEGIN_REP6, __API_DEPRECATED_BEGIN_REP5, __API_DEPRECATED_BEGIN_REP4, __API_DEPRECATED_BEGIN_REP3, __API_DEPRECATED_BEGIN_REP2, __API_DEPRECATED_BEGIN_REP1, 0)(__VA_ARGS__)\n    #define __API_DEPRECATED_WITH_REPLACEMENT_END _Pragma(\"clang attribute pop\")\n\n    /*\n     * API Unavailability\n     * Use to specify that an API is unavailable for a particular platform.\n     *\n     * Example:\n     *    __API_UNAVAILABLE(macos)\n     *    __API_UNAVAILABLE(watchos, tvos)\n     */\n    #define __API_UNAVAILABLE(...) __API_UNAVAILABLE_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE7,__API_UNAVAILABLE6,__API_UNAVAILABLE5,__API_UNAVAILABLE4,__API_UNAVAILABLE3,__API_UNAVAILABLE2,__API_UNAVAILABLE1, 0)(__VA_ARGS__)\n\n    #define __API_UNAVAILABLE_BEGIN(...) _Pragma(\"clang attribute push\") __API_UNAVAILABLE_BEGIN_GET_MACRO(__VA_ARGS__,__API_UNAVAILABLE_BEGIN7,__API_UNAVAILABLE_BEGIN6, __API_UNAVAILABLE_BEGIN5, __API_UNAVAILABLE_BEGIN4, __API_UNAVAILABLE_BEGIN3, __API_UNAVAILABLE_BEGIN2, __API_UNAVAILABLE_BEGIN1, 0)(__VA_ARGS__)\n    #define __API_UNAVAILABLE_END _Pragma(\"clang attribute pop\")\n #else \n\n    /* \n     * Evaluate to nothing for compilers that don't support availability.\n     */\n    \n    #define __API_AVAILABLE(...)\n    #define __API_AVAILABLE_BEGIN(...)\n    #define __API_AVAILABLE_END\n    #define __API_DEPRECATED(...)\n    #define __API_DEPRECATED_WITH_REPLACEMENT(...)\n    #define __API_DEPRECATED_BEGIN(...)\n    #define __API_DEPRECATED_END\n    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)\n    #define __API_DEPRECATED_WITH_REPLACEMENT_END\n    #define __API_UNAVAILABLE(...)\n    #define __API_UNAVAILABLE_BEGIN(...)\n    #define __API_UNAVAILABLE_END\n #endif /* __has_attribute(availability) */\n#else\n\n    /* \n     * Evaluate to nothing for compilers that don't support clang language extensions.\n     */\n    \n    #define __API_AVAILABLE(...)\n    #define __API_AVAILABLE_BEGIN(...)\n    #define __API_AVAILABLE_END\n    #define __API_DEPRECATED(...)\n    #define __API_DEPRECATED_WITH_REPLACEMENT(...)\n    #define __API_DEPRECATED_BEGIN(...)\n    #define __API_DEPRECATED_END\n    #define __API_DEPRECATED_WITH_REPLACEMENT_BEGIN(...)\n    #define __API_DEPRECATED_WITH_REPLACEMENT_END\n    #define __API_UNAVAILABLE(...)\n    #define __API_UNAVAILABLE_BEGIN(...)\n    #define __API_UNAVAILABLE_END\n#endif /*  #if defined(__has_feature) && defined(__has_attribute) */\n\n#if __has_include(<AvailabilityProhibitedInternal.h>)\n  #include <AvailabilityProhibitedInternal.h>\n#endif\n\n/*\n * If SPI decorations have not been defined elsewhere, disable them.\n */\n\n#ifndef __SPI_AVAILABLE\n  #define __SPI_AVAILABLE(...)\n#endif\n\n#ifndef __SPI_DEPRECATED\n  #define __SPI_DEPRECATED(...)\n#endif\n\n#ifndef __SPI_DEPRECATED_WITH_REPLACEMENT\n  #define __SPI_DEPRECATED_WITH_REPLACEMENT(...)\n#endif\n\n\n\n#endif /* __AVAILABILITY__ */\n\n"
  },
  {
    "path": "basic-headers/AvailabilityInternal.h",
    "content": "/*\n * Copyright (c) 2007-2016 by Apple Inc.. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n/*\n    File:       AvailabilityInternal.h\n \n    Contains:   implementation details of __OSX_AVAILABLE_* macros from <Availability.h>\n\n*/\n#ifndef __AVAILABILITY_INTERNAL__\n#define __AVAILABILITY_INTERNAL__\n\n#if __has_include(<AvailabilityInternalPrivate.h>)\n  #include <AvailabilityInternalPrivate.h>\n#endif\n\n#ifndef __MAC_OS_X_VERSION_MIN_REQUIRED\n    #ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__\n        /* compiler for Mac OS X sets __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ */\n        #define __MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__\n    #endif\n#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED*/\n\n#ifndef __IPHONE_OS_VERSION_MIN_REQUIRED\n    #ifdef __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__\n        /* compiler sets __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ when -miphoneos-version-min is used */\n        #define __IPHONE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__\n    #endif\n#endif /* __IPHONE_OS_VERSION_MIN_REQUIRED */\n\n#ifndef __TV_OS_VERSION_MIN_REQUIRED\n    #ifdef __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__\n        /* compiler sets __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ when -mtvos-version-min is used */\n        #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__\n        #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_13_0 \n        /* for compatibility with existing code.  New code should use platform specific checks */\n        #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000\n    #endif\n#endif\n\n#ifndef __WATCH_OS_VERSION_MIN_REQUIRED\n    #ifdef __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__\n        /* compiler sets __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ when -mwatchos-version-min is used */\n        #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__\n        #define __WATCH_OS_VERSION_MAX_ALLOWED 60000\n        /* for compatibility with existing code.  New code should use platform specific checks */\n        #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000\n    #endif\n#endif\n\n#ifndef __BRIDGE_OS_VERSION_MIN_REQUIRED\n    #ifdef __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__\n        \n        #define __BRIDGE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__\n        #define __BRIDGE_OS_VERSION_MAX_ALLOWED 20000\n        /* for compatibility with existing code.  New code should use platform specific checks */\n        #define __IPHONE_OS_VERSION_MIN_REQUIRED 110000\n    #endif\n#endif\n\n#ifndef __DRIVERKIT_VERSION_MIN_REQUIRED\n    #ifdef __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__\n        #define __DRIVERKIT_VERSION_MIN_REQUIRED __ENVIRONMENT_DRIVERKIT_VERSION_MIN_REQUIRED__\n    #endif\n#endif\n\n#ifdef __MAC_OS_X_VERSION_MIN_REQUIRED\n    /* make sure a default max version is set */\n    #ifndef __MAC_OS_X_VERSION_MAX_ALLOWED\n        #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_10_15\n    #endif\n#endif /* __MAC_OS_X_VERSION_MIN_REQUIRED */\n\n#ifdef __IPHONE_OS_VERSION_MIN_REQUIRED\n    /* make sure a default max version is set */\n    #ifndef __IPHONE_OS_VERSION_MAX_ALLOWED\n        #define __IPHONE_OS_VERSION_MAX_ALLOWED     __IPHONE_13_0\n    #endif\n    /* make sure a valid min is set */\n    #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0\n        #undef __IPHONE_OS_VERSION_MIN_REQUIRED\n        #define __IPHONE_OS_VERSION_MIN_REQUIRED    __IPHONE_2_0\n    #endif\n#endif\n\n#define __AVAILABILITY_INTERNAL_DEPRECATED            __attribute__((deprecated))\n#ifdef __has_feature\n    #if __has_feature(attribute_deprecated_with_message)\n        #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated(_msg)))\n    #else\n        #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated))\n    #endif\n#elif defined(__GNUC__) && ((__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)))\n    #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated(_msg)))\n#else\n    #define __AVAILABILITY_INTERNAL_DEPRECATED_MSG(_msg)  __attribute__((deprecated))\n#endif\n#define __AVAILABILITY_INTERNAL_UNAVAILABLE           __attribute__((unavailable))\n#define __AVAILABILITY_INTERNAL_WEAK_IMPORT           __attribute__((weak_import))\n#define __AVAILABILITY_INTERNAL_REGULAR            \n\n#if defined(__has_builtin)\n #if __has_builtin(__is_target_arch)\n  #if __has_builtin(__is_target_vendor)\n   #if __has_builtin(__is_target_os)\n    #if __has_builtin(__is_target_environment)\n     #if __has_builtin(__is_target_variant_os)\n      #if __has_builtin(__is_target_variant_environment)\n       #if (__is_target_arch(x86_64) && __is_target_vendor(apple) && ((__is_target_os(ios) && __is_target_environment(macabi)) || (__is_target_variant_os(ios) && __is_target_variant_environment(macabi))))\n         #define __ENABLE_LEGACY_IPHONE_AVAILABILITY 1\n         #define __ENABLE_LEGACY_MAC_AVAILABILITY 1\n       #endif /* # if __is_target_arch... */\n      #endif /* #if __has_builtin(__is_target_variant_environment) */\n     #endif /* #if __has_builtin(__is_target_variant_os) */\n    #endif /* #if __has_builtin(__is_target_environment) */\n   #endif /* #if __has_builtin(__is_target_os) */\n  #endif /* #if __has_builtin(__is_target_vendor) */\n #endif /* #if __has_builtin(__is_target_arch) */\n#endif /* #if defined(__has_builtin) */\n\n#ifndef __ENABLE_LEGACY_IPHONE_AVAILABILITY\n #ifdef __IPHONE_OS_VERSION_MIN_REQUIRED\n  #define __ENABLE_LEGACY_IPHONE_AVAILABILITY 1\n #elif defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)\n  #define __ENABLE_LEGACY_MAC_AVAILABILITY 1\n #endif\n#endif /* __ENABLE_LEGACY_IPHONE_AVAILABILITY */\n\n#ifdef __ENABLE_LEGACY_IPHONE_AVAILABILITY\n    #if defined(__has_attribute) && defined(__has_feature)\n        #if __has_attribute(availability)\n            /* use better attributes if possible */\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0                    __attribute__((availability(ios,introduced=2.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=2.0,deprecated=11.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0   __attribute__((availability(ios,introduced=2.0,deprecated=2.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1   __attribute__((availability(ios,introduced=2.0,deprecated=2.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.0,deprecated=2.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=2.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.0,deprecated=3.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.0,deprecated=3.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.0,deprecated=3.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=3.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.0,deprecated=4.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.0,deprecated=4.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.0,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.0,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.0,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.0,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.0,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.0,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.0,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.0,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.0,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.0,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.0,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.0,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.0,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.0,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.0,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.0,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.0,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.0,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1                    __attribute__((availability(ios,introduced=2.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.1,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1   __attribute__((availability(ios,introduced=2.1,deprecated=2.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.1,deprecated=2.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=2.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.1,deprecated=3.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.1,deprecated=3.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.1,deprecated=3.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=3.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.1,deprecated=4.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.1,deprecated=4.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.1,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.1,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.1,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.1,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.1,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.1,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.1,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.1,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.1,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.1,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.1,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.1,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.1,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.1,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.1,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.1,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.1,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.1,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2                    __attribute__((availability(ios,introduced=2.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=2.2,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=2.2,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=2.2,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=2.2,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2   __attribute__((availability(ios,introduced=2.2,deprecated=2.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=2.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_2_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=2.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=2.2,deprecated=3.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=2.2,deprecated=3.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=2.2,deprecated=3.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=3.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=2.2,deprecated=4.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=2.2,deprecated=4.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=2.2,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=2.2,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=2.2,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=2.2,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=2.2,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=2.2,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=2.2,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=2.2,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=2.2,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=2.2,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=2.2,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=2.2,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=2.2,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=2.2,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=2.2,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=2.2,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=2.2,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=2.2,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=2.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_2_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=2.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0                    __attribute__((availability(ios,introduced=3.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0   __attribute__((availability(ios,introduced=3.0,deprecated=3.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=3.0,deprecated=3.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.0,deprecated=3.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=3.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.0,deprecated=4.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.0,deprecated=4.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.0,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.0,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.0,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.0,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.0,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.0,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.0,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.0,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.0,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.0,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.0,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.0,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.0,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.0,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.0,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.0,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.0,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.0,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1                    __attribute__((availability(ios,introduced=3.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.1,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1   __attribute__((availability(ios,introduced=3.1,deprecated=3.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.1,deprecated=3.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=3.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.1,deprecated=4.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.1,deprecated=4.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.1,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.1,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.1,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.1,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.1,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.1,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.1,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.1,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.1,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.1,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.1,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.1,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.1,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.1,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.1,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.1,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.1,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.1,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2                    __attribute__((availability(ios,introduced=3.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=3.2,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=3.2,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=3.2,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=3.2,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2   __attribute__((availability(ios,introduced=3.2,deprecated=3.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=3.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_3_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=3.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=3.2,deprecated=4.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=3.2,deprecated=4.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=3.2,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=3.2,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=3.2,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=3.2,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=3.2,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=3.2,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=3.2,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=3.2,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=3.2,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=3.2,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=3.2,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=3.2,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=3.2,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=3.2,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=3.2,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=3.2,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=3.2,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=3.2,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=3.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_3_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=3.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0                    __attribute__((availability(ios,introduced=4.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=12.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=12.0)))\n            #endif            \n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=4.0,deprecated=4.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.0,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.0,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.0,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.0,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.0,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.0,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.0,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.0,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.0,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.0,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.0,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.0,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.0,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.0,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.0,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.0,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.0,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1                    __attribute__((availability(ios,introduced=4.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.1,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1   __attribute__((availability(ios,introduced=4.1,deprecated=4.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.1,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.1,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.1,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.1,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.1,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.1,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.1,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.1,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.1,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.1,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.1,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.1,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.1,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.1,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.1,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.1,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.1,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.1,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2                    __attribute__((availability(ios,introduced=4.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.2,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.2,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.2,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.2,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2   __attribute__((availability(ios,introduced=4.2,deprecated=4.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.2,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.2,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.2,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.2,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.2,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.2,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.2,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.2,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.2,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.2,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.2,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.2,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.2,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.2,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.2,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.2,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.2,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3                    __attribute__((availability(ios,introduced=4.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=4.3,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=4.3,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=4.3,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=4.3,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3   __attribute__((availability(ios,introduced=4.3,deprecated=4.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=4.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_4_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=4.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=4.3,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=4.3,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=4.3,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=4.3,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=4.3,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=4.3,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=4.3,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=4.3,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=4.3,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=4.3,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=4.3,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=4.3,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=4.3,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=4.3,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=4.3,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=4.3,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=4.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_4_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=4.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0                    __attribute__((availability(ios,introduced=5.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=5.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=5.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=5.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=5.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=5.0,deprecated=11.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0   __attribute__((availability(ios,introduced=5.0,deprecated=5.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=5.0,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=5.0,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=5.0,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=5.0,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=5.0,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=5.0,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=5.0,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=5.0,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=5.0,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=5.0,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=5.0,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=5.0,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=5.0,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=5.0,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.0,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=5.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=5.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1                    __attribute__((availability(ios,introduced=5.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=5.1,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=5.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=5.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=5.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1   __attribute__((availability(ios,introduced=5.1,deprecated=5.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=5.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_5_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=5.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=5.1,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=5.1,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=5.1,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=5.1,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=5.1,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=5.1,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=5.1,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=5.1,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=5.1,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=5.1,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=5.1,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=5.1,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=5.1,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=5.1,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=5.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_5_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=5.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0                    __attribute__((availability(ios,introduced=6.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=6.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=6.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=6.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=6.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0   __attribute__((availability(ios,introduced=6.0,deprecated=6.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=6.0,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=6.0,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=6.0,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=6.0,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=6.0,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=6.0,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=6.0,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=6.0,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=6.0,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=6.0,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=6.0,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=6.0,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.0,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=6.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=6.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1                    __attribute__((availability(ios,introduced=6.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=6.1,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=6.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=6.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=6.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1   __attribute__((availability(ios,introduced=6.1,deprecated=6.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=6.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_6_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=6.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=6.1,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=6.1,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=6.1,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=6.1,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=6.1,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=6.1,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=6.1,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=6.1,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=6.1,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=6.1,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=6.1,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=6.1,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=6.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_6_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=6.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0                    __attribute__((availability(ios,introduced=7.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=7.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=7.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=7.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=7.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=7.0,deprecated=11.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_11_3   __attribute__((availability(ios,introduced=7.0,deprecated=11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=12.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_12_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=12.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0   __attribute__((availability(ios,introduced=7.0,deprecated=7.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=7.0,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=7.0,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=7.0,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=7.0,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=7.0,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=7.0,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=7.0,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=7.0,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=7.0,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=7.0,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.0,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=7.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=7.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1                    __attribute__((availability(ios,introduced=7.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=7.1,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=7.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=7.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=7.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1   __attribute__((availability(ios,introduced=7.1,deprecated=7.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=7.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_7_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=7.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=7.1,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=7.1,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=7.1,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=7.1,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=7.1,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=7.1,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=7.1,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=7.1,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=7.1,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=7.1,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=7.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_7_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=7.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0                    __attribute__((availability(ios,introduced=8.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_11_3   __attribute__((availability(ios,introduced=8.0,deprecated=11.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_12_0   __attribute__((availability(ios,introduced=8.0,deprecated=12.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0   __attribute__((availability(ios,introduced=8.0,deprecated=8.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=8.0,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.0,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.0,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.0,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.0,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.0,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.0,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.0,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.0,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1                    __attribute__((availability(ios,introduced=8.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.1,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1   __attribute__((availability(ios,introduced=8.1,deprecated=8.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.1,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.1,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.1,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.1,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.1,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.1,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.1,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.1,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2                    __attribute__((availability(ios,introduced=8.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.2,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.2,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.2,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.2,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2   __attribute__((availability(ios,introduced=8.2,deprecated=8.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.2,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.2,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.2,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.2,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.2,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.2,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.2,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3                    __attribute__((availability(ios,introduced=8.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.3,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.3,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.3,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.3,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3   __attribute__((availability(ios,introduced=8.3,deprecated=8.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.3,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.3,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.3,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.3,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.3,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.3,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4                    __attribute__((availability(ios,introduced=8.4)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=8.4,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=8.4,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=8.4,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=8.4,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4   __attribute__((availability(ios,introduced=8.4,deprecated=8.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=8.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_8_4_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=8.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=8.4,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=8.4,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=8.4,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=8.4,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=8.4,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=8.4)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_8_4_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=8.4)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0                    __attribute__((availability(ios,introduced=9.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0   __attribute__((availability(ios,introduced=9.0,deprecated=9.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=9.0,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.0,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.0,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.0,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1                    __attribute__((availability(ios,introduced=9.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.1,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1   __attribute__((availability(ios,introduced=9.1,deprecated=9.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.1,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.1,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.1,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2                    __attribute__((availability(ios,introduced=9.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.2,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.2,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.2,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.2,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2   __attribute__((availability(ios,introduced=9.2,deprecated=9.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.2,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.2,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_3                    __attribute__((availability(ios,introduced=9.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=9.3,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=9.3,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=9.3,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=9.3,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3   __attribute__((availability(ios,introduced=9.3,deprecated=9.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=9.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_9_3_MSG(_msg)   __attribute__((availability(ios,introduced=9.3,deprecated=9.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=9.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_9_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=9.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0                    __attribute__((availability(ios,introduced=10.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0   __attribute__((availability(ios,introduced=10.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_0_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=10.0,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.0,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_11_0   __attribute__((availability(ios,introduced=10.0,deprecated=11.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_12_0   __attribute__((availability(ios,introduced=10.0,deprecated=12.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_0_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_1                    __attribute__((availability(ios,introduced=10.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1   __attribute__((availability(ios,introduced=10.1,deprecated=10.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_1_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_1_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.1)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_2                    __attribute__((availability(ios,introduced=10.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2   __attribute__((availability(ios,introduced=10.2,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_2_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.2,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.2,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_2_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.2)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_3                    __attribute__((availability(ios,introduced=10.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3   __attribute__((availability(ios,introduced=10.3,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.3,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_10_3_MSG(_msg)   __attribute__((availability(ios,introduced=10.3,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_NA   __attribute__((availability(ios,introduced=10.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_10_3_DEP__IPHONE_NA_MSG(_msg)   __attribute__((availability(ios,introduced=10.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_11                    __attribute__((availability(ios,introduced=11)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_11_0                    __attribute__((availability(ios,introduced=11.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_11_3                    __attribute__((availability(ios,introduced=11.3)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_12_0                    __attribute__((availability(ios,introduced=12.0)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_13_0                    __attribute__((availability(ios,introduced=13.0)))\n\n            #define __AVAILABILITY_INTERNAL__IPHONE_NA                      __attribute__((availability(ios,unavailable)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_NA__IPHONE_NA           __attribute__((availability(ios,unavailable)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA       __attribute__((availability(ios,unavailable)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA_MSG(_msg) __attribute__((availability(ios,unavailable)))\n\n            #if __has_builtin(__is_target_arch)\n             #if __has_builtin(__is_target_vendor)\n              #if __has_builtin(__is_target_os)\n               #if __has_builtin(__is_target_environment)\n                #if __has_builtin(__is_target_variant_os)\n                 #if __has_builtin(__is_target_variant_environment)\n                  #if (__is_target_arch(x86_64) && __is_target_vendor(apple) && __is_target_os(ios) && __is_target_environment(macabi))\n                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION __attribute__((availability(ios,introduced=4.0)))\n                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION               __attribute__((availability(ios,unavailable)))\n                    #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)     __attribute__((availability(ios,unavailable)))\n                  #endif\n                 #endif /* #if __has_builtin(__is_target_variant_environment) */\n                #endif /* #if __has_builtin(__is_target_variant_os) */\n               #endif /* #if __has_builtin(__is_target_environment) */\n              #endif /* #if __has_builtin(__is_target_os) */\n             #endif /* #if __has_builtin(__is_target_vendor) */\n            #endif /* #if __has_builtin(__is_target_arch) */\n\n            #ifndef __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION\n                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION __attribute__((availability(ios,introduced=4.0)))\n                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))\n                #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0,message=_msg)))\n                #else\n                #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)   __attribute__((availability(ios,introduced=4.0,deprecated=4.0)))\n                #endif\n            #endif /* __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION */\n        #endif\n    #endif\n#endif\n\n#if __ENABLE_LEGACY_MAC_AVAILABILITY\n    #if defined(__has_attribute) && defined(__has_feature)\n        #if __has_attribute(availability)\n            /* use better attributes if possible */\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.12)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.5)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.6)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.7)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_1_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_2                    __attribute__((availability(macosx,introduced=10.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.2,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.2,deprecated=10.13)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.5)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.6)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.7)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_3                    __attribute__((availability(macosx,introduced=10.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.3,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.3,deprecated=10.13)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.5)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.6)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.7)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_4                    __attribute__((availability(macosx,introduced=10.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.4,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.4,deprecated=10.13)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.5)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.6)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.7)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_5                    __attribute__((availability(macosx,introduced=10.5)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEPRECATED__MAC_10_7                    __attribute__((availability(macosx,introduced=10.5.DEPRECATED..MAC.10.7)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.5,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.5)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.6)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.7)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.5)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.5)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_6                    __attribute__((availability(macosx,introduced=10.6)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.6,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.6,deprecated=10.13)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.6)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.7)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.6)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.6)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_7                    __attribute__((availability(macosx,introduced=10.7)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.7,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_13_2   __attribute__((availability(macosx,introduced=10.7,deprecated=10.13.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.7)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.7)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.7)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_8                    __attribute__((availability(macosx,introduced=10.8)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.8,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.8,deprecated=10.13)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.8)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.8)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9                    __attribute__((availability(macosx,introduced=10.9)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.9,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.9,deprecated=10.13)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.9,deprecated=10.14)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9,deprecated=10.9)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.9)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.9)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_0                    __attribute__((availability(macosx,introduced=10.0)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_0_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.0)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_5_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.5)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_6_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.6)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_7_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.7)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_8_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.8)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_9_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.9)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0,deprecated=10.13)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.0)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_0_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.0)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_1                    __attribute__((availability(macosx,introduced=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10                    __attribute__((availability(macosx,introduced=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2                    __attribute__((availability(macosx,introduced=10.10.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3                    __attribute__((availability(macosx,introduced=10.10.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.10.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.10,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10.3)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_10_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.10)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_13_4   __attribute__((availability(macosx,introduced=10.10,deprecated=10.13.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.10)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11                    __attribute__((availability(macosx,introduced=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2                    __attribute__((availability(macosx,introduced=10.11.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.11.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3                    __attribute__((availability(macosx,introduced=10.11.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.11.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_3_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.3)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_4                    __attribute__((availability(macosx,introduced=10.11.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.11.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_1   __attribute__((availability(macosx,introduced=10.11,deprecated=10.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_3_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.3)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.11)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.11)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12                    __attribute__((availability(macosx,introduced=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_1                    __attribute__((availability(macosx,introduced=10.12.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1,deprecated=10.12.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_1_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.1)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_2                    __attribute__((availability(macosx,introduced=10.12.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2,deprecated=10.12.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_2_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.2)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_4                    __attribute__((availability(macosx,introduced=10.12.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4,deprecated=10.12.4)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_4_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_1_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.1)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_2_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.2)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_4_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12.4)))\n            #endif\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_12_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.12)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13)))\n            #if __has_feature(attribute_availability_with_message)\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13,message=_msg)))\n            #else\n                #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13)))\n            #endif\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_13_4   __attribute__((availability(macosx,introduced=10.12,deprecated=10.13.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.12,deprecated=10.14)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA   __attribute__((availability(macosx,introduced=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_12_DEP__MAC_NA_MSG(_msg)   __attribute__((availability(macosx,introduced=10.12)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_13                    __attribute__((availability(macosx,introduced=10.13)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_13_4                    __attribute__((availability(macosx,introduced=10.13.4)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_14                    __attribute__((availability(macosx,introduced=10.14)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_14_DEP__MAC_10_14   __attribute__((availability(macosx,introduced=10.14,deprecated=10.14)))\n            #define __AVAILABILITY_INTERNAL__MAC_10_15                    __attribute__((availability(macosx,introduced=10.15)))\n\n            #define __AVAILABILITY_INTERNAL__MAC_NA                        __attribute__((availability(macosx,unavailable)))\n            #define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA            __attribute__((availability(macosx,unavailable)))\n            #define __AVAILABILITY_INTERNAL__MAC_NA_DEP__MAC_NA_MSG(_msg)  __attribute__((availability(macosx,unavailable)))\n\n            #define __AVAILABILITY_INTERNAL__IPHONE_NA                      __attribute__((availability(ios,unavailable)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_NA__IPHONE_NA           __attribute__((availability(ios,unavailable)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA       __attribute__((availability(ios,unavailable)))\n            #define __AVAILABILITY_INTERNAL__IPHONE_NA_DEP__IPHONE_NA_MSG(_msg) __attribute__((availability(ios,unavailable)))\n\n            #ifndef __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION\n             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION                                          __attribute__((availability(ios,unavailable)))\n             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION               __attribute__((availability(ios,unavailable)))\n             #define __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION_DEP__IPHONE_COMPAT_VERSION_MSG(_msg)     __attribute__((availability(ios,unavailable)))\n            #endif /* __AVAILABILITY_INTERNAL__IPHONE_COMPAT_VERSION */\n        #endif\n    #endif\n#endif /* __ENABLE_LEGACY_MAC_AVAILABILITY */\n\n/*\n Macros for defining which versions/platform a given symbol can be used.\n \n @see http://clang.llvm.org/docs/AttributeReference.html#availability\n */\n\n#if defined(__has_feature) && defined(__has_attribute)\n #if __has_attribute(availability)\n\n    \n    #define __API_AVAILABLE_PLATFORM_macos(x) macos,introduced=x\n    #define __API_AVAILABLE_PLATFORM_macosx(x) macosx,introduced=x\n    #define __API_AVAILABLE_PLATFORM_ios(x) ios,introduced=x\n    #define __API_AVAILABLE_PLATFORM_watchos(x) watchos,introduced=x\n    #define __API_AVAILABLE_PLATFORM_tvos(x) tvos,introduced=x\n    #define __API_AVAILABLE_PLATFORM_bridgeos(x) bridgeos,introduced=x\n    \n    #define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x\n    #define __API_AVAILABLE_PLATFORM_macCatalyst(x) macCatalyst,introduced=x\n    #ifndef __API_AVAILABLE_PLATFORM_uikitformac\n     #define __API_AVAILABLE_PLATFORM_uikitformac(x) uikitformac,introduced=x\n    #endif\n    #define __API_AVAILABLE_PLATFORM_driverkit(x) driverkit,introduced=x\n    #define __API_AVAILABLE_PLATFORM_iosmac(x) iosmac,introduced=x\n\n    #if defined(__has_attribute)\n      #if __has_attribute(availability)\n        #define __API_A(x) __attribute__((availability(__API_AVAILABLE_PLATFORM_##x)))\n      #else\n        #define __API_A(x)\n      #endif\n    #else\n        #define __API_A(x)\n    #endif\n    \n    #define __API_AVAILABLE1(x) __API_A(x)\n    #define __API_AVAILABLE2(x,y) __API_A(x) __API_A(y)\n    #define __API_AVAILABLE3(x,y,z)  __API_A(x) __API_A(y) __API_A(z)\n    #define __API_AVAILABLE4(x,y,z,t) __API_A(x) __API_A(y) __API_A(z) __API_A(t)\n    #define __API_AVAILABLE5(x,y,z,t,b) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b)\n    #define __API_AVAILABLE6(x,y,z,t,b,m) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m)\n    #define __API_AVAILABLE7(x,y,z,t,b,m,d) __API_A(x) __API_A(y) __API_A(z) __API_A(t) __API_A(b) __API_A(m) __API_A(d)\n    #define __API_AVAILABLE_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME\n\n    #define __API_APPLY_TO any(record, enum, enum_constant, function, objc_method, objc_category, objc_protocol, objc_interface, objc_property, type_alias, variable, field)\n    #define __API_RANGE_STRINGIFY(x) __API_RANGE_STRINGIFY2(x)\n    #define __API_RANGE_STRINGIFY2(x) #x \n    \n    #define __API_A_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_AVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO)))\n\n    #define __API_AVAILABLE_BEGIN1(a) __API_A_BEGIN(a)\n    #define __API_AVAILABLE_BEGIN2(a,b) __API_A_BEGIN(a) __API_A_BEGIN(b)\n    #define __API_AVAILABLE_BEGIN3(a,b,c) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c)\n    #define __API_AVAILABLE_BEGIN4(a,b,c,d) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d)\n    #define __API_AVAILABLE_BEGIN5(a,b,c,d,e) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e)\n    #define __API_AVAILABLE_BEGIN6(a,b,c,d,e,f) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f)\n    #define __API_AVAILABLE_BEGIN7(a,b,c,d,e,f,g) __API_A_BEGIN(a) __API_A_BEGIN(b) __API_A_BEGIN(c) __API_A_BEGIN(d) __API_A_BEGIN(e) __API_A_BEGIN(f) __API_A_BEGIN(g)\n    #define __API_AVAILABLE_BEGIN_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME\n\n    \n    #define __API_DEPRECATED_PLATFORM_macos(x,y) macos,introduced=x,deprecated=y\n    #define __API_DEPRECATED_PLATFORM_macosx(x,y) macosx,introduced=x,deprecated=y\n    #define __API_DEPRECATED_PLATFORM_ios(x,y) ios,introduced=x,deprecated=y\n    #define __API_DEPRECATED_PLATFORM_watchos(x,y) watchos,introduced=x,deprecated=y\n    #define __API_DEPRECATED_PLATFORM_tvos(x,y) tvos,introduced=x,deprecated=y\n    #define __API_DEPRECATED_PLATFORM_bridgeos(x,y) bridgeos,introduced=x,deprecated=y\n    \n    #define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y\n    #define __API_DEPRECATED_PLATFORM_macCatalyst(x,y) macCatalyst,introduced=x,deprecated=y\n    #ifndef __API_DEPRECATED_PLATFORM_uikitformac\n     #define __API_DEPRECATED_PLATFORM_uikitformac(x) uikitformac,introduced=x,deprecated=y\n    #endif\n    #define __API_DEPRECATED_PLATFORM_driverkit(x,y) driverkit,introduced=x,deprecated=y\n    #define __API_DEPRECATED_PLATFORM_iosmac(x,y) iosmac,introduced=x,deprecated=y\n\n    #if defined(__has_attribute)\n      #if __has_attribute(availability)\n        #define __API_D(msg,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg)))\n      #else\n        #define __API_D(msg,x)\n      #endif\n    #else\n        #define __API_D(msg,x)\n    #endif\n    \n    #define __API_DEPRECATED_MSG2(msg,x) __API_D(msg,x)\n    #define __API_DEPRECATED_MSG3(msg,x,y) __API_D(msg,x) __API_D(msg,y)\n    #define __API_DEPRECATED_MSG4(msg,x,y,z) __API_DEPRECATED_MSG3(msg,x,y) __API_D(msg,z)\n    #define __API_DEPRECATED_MSG5(msg,x,y,z,t) __API_DEPRECATED_MSG4(msg,x,y,z) __API_D(msg,t)\n    #define __API_DEPRECATED_MSG6(msg,x,y,z,t,b) __API_DEPRECATED_MSG5(msg,x,y,z,t) __API_D(msg,b)\n    #define __API_DEPRECATED_MSG7(msg,x,y,z,t,b,m) __API_DEPRECATED_MSG6(msg,x,y,z,t,b) __API_D(msg,m)\n    #define __API_DEPRECATED_MSG8(msg,x,y,z,t,b,m,d) __API_DEPRECATED_MSG7(msg,x,y,z,t,b,m) __API_D(msg,d)\n    #define __API_DEPRECATED_MSG_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME\n\n    #define __API_D_BEGIN(msg, x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg))), apply_to = __API_APPLY_TO)))\n\n    #define __API_DEPRECATED_BEGIN_MSG2(msg,a) __API_D_BEGIN(msg,a)\n    #define __API_DEPRECATED_BEGIN_MSG3(msg,a,b) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b)\n    #define __API_DEPRECATED_BEGIN_MSG4(msg,a,b,c) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c)\n    #define __API_DEPRECATED_BEGIN_MSG5(msg,a,b,c,d) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d)\n    #define __API_DEPRECATED_BEGIN_MSG6(msg,a,b,c,d,e) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e)\n    #define __API_DEPRECATED_BEGIN_MSG7(msg,a,b,c,d,e,f) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f)\n    #define __API_DEPRECATED_BEGIN_MSG8(msg,a,b,c,d,e,f,g) __API_D_BEGIN(msg,a) __API_D_BEGIN(msg,b) __API_D_BEGIN(msg,c) __API_D_BEGIN(msg,d) __API_D_BEGIN(msg,e) __API_D_BEGIN(msg,f) __API_D_BEGIN(msg,g)\n    #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME\n\n    #if __has_feature(attribute_availability_with_replacement)\n        #define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep)))\n    #else\n        #define __API_R(rep,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x)))\n    #endif\n\n    #define __API_DEPRECATED_REP2(rep,x) __API_R(rep,x)\n    #define __API_DEPRECATED_REP3(rep,x,y) __API_R(rep,x) __API_R(rep,y)\n    #define __API_DEPRECATED_REP4(rep,x,y,z)  __API_DEPRECATED_REP3(rep,x,y) __API_R(rep,z)\n    #define __API_DEPRECATED_REP5(rep,x,y,z,t) __API_DEPRECATED_REP4(rep,x,y,z) __API_R(rep,t)\n    #define __API_DEPRECATED_REP6(rep,x,y,z,t,b) __API_DEPRECATED_REP5(rep,x,y,z,t) __API_R(rep,b)\n    #define __API_DEPRECATED_REP7(rep,x,y,z,t,b,m) __API_DEPRECATED_REP6(rep,x,y,z,t,b) __API_R(rep,m)\n    #define __API_DEPRECATED_REP8(rep,x,y,z,t,b,m,d) __API_DEPRECATED_REP7(rep,x,y,z,t,b,m) __API_R(rep,d)\n    #define __API_DEPRECATED_REP_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME\n\n    #if __has_feature(attribute_availability_with_replacement)\n        #define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x,replacement=rep))), apply_to = __API_APPLY_TO)))    \n    #else\n        #define __API_R_BEGIN(rep,x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_DEPRECATED_PLATFORM_##x))), apply_to = __API_APPLY_TO)))    \n    #endif\n\n    #define __API_DEPRECATED_BEGIN_REP2(rep,a) __API_R_BEGIN(rep,a)\n    #define __API_DEPRECATED_BEGIN_REP3(rep,a,b) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b)\n    #define __API_DEPRECATED_BEGIN_REP4(rep,a,b,c) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c)\n    #define __API_DEPRECATED_BEGIN_REP5(rep,a,b,c,d) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d)\n    #define __API_DEPRECATED_BEGIN_REP6(rep,a,b,c,d,e) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e)\n    #define __API_DEPRECATED_BEGIN_REP7(rep,a,b,c,d,e,f) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f)\n    #define __API_DEPRECATED_BEGIN_REP8(rep,a,b,c,d,e,f,g) __API_R_BEGIN(rep,a) __API_R_BEGIN(rep,b) __API_R_BEGIN(rep,c) __API_R_BEGIN(rep,d) __API_R_BEGIN(rep,e) __API_R_BEGIN(rep,f) __API_R_BEGIN(rep,g)\n    #define __API_DEPRECATED_BEGIN_REP_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,_8,NAME,...) NAME\n\n    /*\n     * API Unavailability\n     * Use to specify that an API is unavailable for a particular platform.\n     *\n     * Example:\n     *    __API_UNAVAILABLE(macos)\n     *    __API_UNAVAILABLE(watchos, tvos)\n     */\n    #define __API_UNAVAILABLE_PLATFORM_macos macos,unavailable\n    #define __API_UNAVAILABLE_PLATFORM_macosx macosx,unavailable\n    #define __API_UNAVAILABLE_PLATFORM_ios ios,unavailable\n    #define __API_UNAVAILABLE_PLATFORM_watchos watchos,unavailable\n    #define __API_UNAVAILABLE_PLATFORM_tvos tvos,unavailable\n    #define __API_UNAVAILABLE_PLATFORM_bridgeos bridgeos,unavailable\n    \n    #define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable\n    #define __API_UNAVAILABLE_PLATFORM_macCatalyst macCatalyst,unavailable\n    #ifndef __API_UNAVAILABLE_PLATFORM_uikitformac\n     #define __API_UNAVAILABLE_PLATFORM_uikitformac(x) uikitformac,unavailable\n    #endif\n    #define __API_UNAVAILABLE_PLATFORM_driverkit driverkit,unavailable\n    #define __API_UNAVAILABLE_PLATFORM_iosmac iosmac,unavailable\n\n    #if defined(__has_attribute)\n      #if __has_attribute(availability)\n        #define __API_U(x) __attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x)))\n      #else\n        #define __API_U(x)\n      #endif\n    #else\n        #define __API_U(x)\n    #endif\n    \n    #define __API_UNAVAILABLE1(x) __API_U(x)\n    #define __API_UNAVAILABLE2(x,y) __API_U(x) __API_U(y)\n    #define __API_UNAVAILABLE3(x,y,z) __API_UNAVAILABLE2(x,y) __API_U(z)\n    #define __API_UNAVAILABLE4(x,y,z,t) __API_UNAVAILABLE3(x,y,z) __API_U(t)\n    #define __API_UNAVAILABLE5(x,y,z,t,b) __API_UNAVAILABLE4(x,y,z,t) __API_U(b)\n    #define __API_UNAVAILABLE6(x,y,z,t,b,m) __API_UNAVAILABLE5(x,y,z,t,b) __API_U(m)\n    #define __API_UNAVAILABLE7(x,y,z,t,b,m,d) __API_UNAVAILABLE6(x,y,z,t,b,m) __API_U(d)\n    #define __API_UNAVAILABLE_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME\n\n    #define __API_U_BEGIN(x) _Pragma(__API_RANGE_STRINGIFY (clang attribute (__attribute__((availability(__API_UNAVAILABLE_PLATFORM_##x))), apply_to = __API_APPLY_TO)))\n\n    #define __API_UNAVAILABLE_BEGIN1(a) __API_U_BEGIN(a)\n    #define __API_UNAVAILABLE_BEGIN2(a,b) __API_U_BEGIN(a) __API_U_BEGIN(b)\n    #define __API_UNAVAILABLE_BEGIN3(a,b,c) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c)\n    #define __API_UNAVAILABLE_BEGIN4(a,b,c,d) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d)\n    #define __API_UNAVAILABLE_BEGIN5(a,b,c,d,e) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e)\n    #define __API_UNAVAILABLE_BEGIN6(a,b,c,d,e,f) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f)\n    #define __API_UNAVAILABLE_BEGIN7(a,b,c,d,e,f) __API_U_BEGIN(a) __API_U_BEGIN(b) __API_U_BEGIN(c) __API_U_BEGIN(d) __API_U_BEGIN(e) __API_U_BEGIN(f) __API_U_BEGIN(g)\n    #define __API_UNAVAILABLE_BEGIN_GET_MACRO(_1,_2,_3,_4,_5,_6,_7,NAME,...) NAME\n #else \n\n /* \n  * Evaluate to nothing for compilers that don't support availability.\n  */\n    \n  #define __API_AVAILABLE_GET_MACRO(...)\n  #define __API_AVAILABLE_BEGIN_GET_MACRO(...)\n  #define __API_DEPRECATED_MSG_GET_MACRO(...)\n  #define __API_DEPRECATED_REP_GET_MACRO(...)\n  #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(...)\n  #define __API_DEPRECATED_BEGIN_REP_GET_MACRO\n  #define __API_UNAVAILABLE_GET_MACRO(...)\n  #define __API_UNAVAILABLE_BEGIN_GET_MACRO(...)\n #endif /* __has_attribute(availability) */\n#else\n\n    /* \n     * Evaluate to nothing for compilers that don't support clang language extensions.\n     */\n    \n    #define __API_AVAILABLE_GET_MACRO(...)\n    #define __API_AVAILABLE_BEGIN_GET_MACRO(...)\n    #define __API_DEPRECATED_MSG_GET_MACRO(...)\n    #define __API_DEPRECATED_REP_GET_MACRO(...)\n    #define __API_DEPRECATED_BEGIN_MSG_GET_MACRO(...)\n    #define __API_DEPRECATED_BEGIN_REP_GET_MACRO\n    #define __API_UNAVAILABLE_GET_MACRO(...)\n    #define __API_UNAVAILABLE_BEGIN_GET_MACRO(...)\n#endif /* #if defined(__has_feature) && defined(__has_attribute) */\n\n/*\n * Swift compiler version\n * Allows for project-agnostic “epochs” for frameworks imported into Swift via the Clang importer, like #if _compiler_version for Swift\n * Example:\n *\n *  #if __swift_compiler_version_at_least(800, 2, 20)\n *  - (nonnull NSString *)description;\n *  #else\n *  - (NSString *)description;\n *  #endif\n */\n \n#ifdef __SWIFT_COMPILER_VERSION\n    #define __swift_compiler_version_at_least_impl(X, Y, Z, a, b, ...) \\\n    __SWIFT_COMPILER_VERSION >= ((X * UINT64_C(1000) * 1000 * 1000) + (Z * 1000 * 1000) + (a * 1000) + b)\n    #define __swift_compiler_version_at_least(...) __swift_compiler_version_at_least_impl(__VA_ARGS__, 0, 0, 0, 0)\n#else\n    #define __swift_compiler_version_at_least(...) 1\n#endif\n\n/*\n * If __SPI_AVAILABLE has not been defined elsewhere, disable it.\n */\n \n#ifndef __SPI_AVAILABLE\n  #define __SPI_AVAILABLE(...)\n#endif\n\n#endif /* __AVAILABILITY_INTERNAL__ */\n"
  },
  {
    "path": "basic-headers/AvailabilityMacros.h",
    "content": "/*\n * Copyright (c) 2001-2010 by Apple Inc.. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n/*\n     File:       AvailabilityMacros.h\n \n     More Info:  See the SDK Compatibility Guide\n\n     Contains:   Autoconfiguration of AVAILABLE_ macros for Mac OS X\n\n                 This header enables a developer to specify build time\n                 constraints on what Mac OS X versions the resulting\n                 application will be run.  There are two bounds a developer\n                 can specify:\n                 \n                      MAC_OS_X_VERSION_MIN_REQUIRED\n                      MAC_OS_X_VERSION_MAX_ALLOWED\n                      \n                The lower bound controls which calls to OS functions will \n                be weak-importing (allowed to be unresolved at launch time).\n                The upper bound controls which OS functionality, if used,\n                will result in a compiler error because that functionality is\n                not available on any OS in the specifed range.\n                \n                For example, suppose an application is compiled with:\n                \n                      MAC_OS_X_VERSION_MIN_REQUIRED = MAC_OS_X_VERSION_10_2\n                      MAC_OS_X_VERSION_MAX_ALLOWED  = MAC_OS_X_VERSION_10_3\n                     \n                and an OS header contains:\n                \n                     extern void funcA(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER;\n                     extern void funcB(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2;\n                     extern void funcC(void) AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3;\n                     extern void funcD(void) AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER;\n                     extern void funcE(void) AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER;\n                     extern void funcF(void) AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER;\n                     extern void funcG(void) AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER;\n                     \n                     typedef long TypeA DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER;\n                     typedef long TypeB DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER;\n                     typedef long TypeC DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER;\n                     typedef long TypeD DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER;\n                     typedef long TypeE DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER;\n\n                Any application code which uses these declarations will get the following:\n                \n                                compile         link          run \n                                -------         ------        -------\n                     funcA:     normal          normal        normal\n                     funcB:     warning         normal        normal\n                     funcC:     normal          normal        normal\n                     funcD:     normal          normal        normal\n                     funcE:     normal          normal        normal\n                     funcF:     normal          weak          on 10.3 normal, on 10.2 (&funcF == NULL)\n                     funcG:     error           error         n/a\n                     typeA:     warning\n                     typeB:     warning\n                     typeC:     warning\n                     typeD:     normal\n                     typeE:     normal\n                  \n  \n*/\n#ifndef __AVAILABILITYMACROS__\n#define __AVAILABILITYMACROS__\n\n/*\n * Set up standard Mac OS X versions\n */\n#define MAC_OS_X_VERSION_10_0         1000\n#define MAC_OS_X_VERSION_10_1         1010\n#define MAC_OS_X_VERSION_10_2         1020\n#define MAC_OS_X_VERSION_10_3         1030\n#define MAC_OS_X_VERSION_10_4         1040\n#define MAC_OS_X_VERSION_10_5         1050\n#define MAC_OS_X_VERSION_10_6         1060\n#define MAC_OS_X_VERSION_10_7         1070\n#define MAC_OS_X_VERSION_10_8         1080\n#define MAC_OS_X_VERSION_10_9         1090\n#define MAC_OS_X_VERSION_10_10      101000\n#define MAC_OS_X_VERSION_10_10_2    101002\n#define MAC_OS_X_VERSION_10_10_3    101003\n#define MAC_OS_X_VERSION_10_11      101100\n#define MAC_OS_X_VERSION_10_11_2    101102\n#define MAC_OS_X_VERSION_10_11_3    101103\n#define MAC_OS_X_VERSION_10_11_4    101104\n#define MAC_OS_X_VERSION_10_12      101200\n#define MAC_OS_X_VERSION_10_12_1    101201\n#define MAC_OS_X_VERSION_10_12_2    101202\n#define MAC_OS_X_VERSION_10_12_4    101204\n#define MAC_OS_X_VERSION_10_13      101300\n#define MAC_OS_X_VERSION_10_13_1    101301\n#define MAC_OS_X_VERSION_10_13_2    101302\n#define MAC_OS_X_VERSION_10_13_4    101304\n#define MAC_OS_X_VERSION_10_14      101400\n#define MAC_OS_X_VERSION_10_14_1    101401\n#define MAC_OS_X_VERSION_10_14_4    101404\n#define MAC_OS_X_VERSION_10_15      101500\n#define MAC_OS_X_VERSION_10_15_1    101501\n\n/*\n * If min OS not specified, assume 10.4 for intel\n * Note: compiler driver may set _ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED_ based on MACOSX_DEPLOYMENT_TARGET environment variable\n */\n#ifndef MAC_OS_X_VERSION_MIN_REQUIRED\n    #ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__\n        #if (__i386__ || __x86_64__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < MAC_OS_X_VERSION_10_4)\n            #warning Building for Intel with Mac OS X Deployment Target < 10.4 is invalid.\n        #endif\n        #define MAC_OS_X_VERSION_MIN_REQUIRED __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__\n    #else\n        #if __i386__ || __x86_64__\n            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_4\n        #elif __arm__ || __arm64__\n            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_5\n        #else\n            #define MAC_OS_X_VERSION_MIN_REQUIRED MAC_OS_X_VERSION_10_1\n        #endif\n     #endif\n#endif\n\n/*\n * if max OS not specified, assume larger of (10.15, min)\n */\n#ifndef MAC_OS_X_VERSION_MAX_ALLOWED\n    #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_15\n        #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_MIN_REQUIRED\n    #else\n        #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_10_15\n    #endif\n#endif\n\n/*\n * Error on bad values\n */\n#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_MIN_REQUIRED\n    #error MAC_OS_X_VERSION_MAX_ALLOWED must be >= MAC_OS_X_VERSION_MIN_REQUIRED\n#endif\n#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_0\n    #error MAC_OS_X_VERSION_MIN_REQUIRED must be >= MAC_OS_X_VERSION_10_0\n#endif\n\n/*\n * only certain compilers support __attribute__((weak_import))\n */\n#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1))) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1020)\n    #define WEAK_IMPORT_ATTRIBUTE __attribute__((weak_import))\n#elif defined(__MWERKS__) && (__MWERKS__ >= 0x3205) && (MAC_OS_X_VERSION_MIN_REQUIRED >= 1020) && !defined(__INTEL__)\n    #define WEAK_IMPORT_ATTRIBUTE __attribute__((weak_import))\n#else\n    #define WEAK_IMPORT_ATTRIBUTE\n#endif\n\n/*\n * only certain compilers support __attribute__((deprecated))\n */\n#if defined(__has_feature) && defined(__has_attribute)\n    #if __has_attribute(deprecated)\n        #define DEPRECATED_ATTRIBUTE        __attribute__((deprecated))\n        #if __has_feature(attribute_deprecated_with_message)\n            #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated(s)))\n        #else\n            #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated))\n        #endif\n    #else\n        #define DEPRECATED_ATTRIBUTE\n        #define DEPRECATED_MSG_ATTRIBUTE(s)\n    #endif\n#elif defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))\n    #define DEPRECATED_ATTRIBUTE        __attribute__((deprecated))\n    #if (__GNUC__ >= 5) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5))\n        #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated(s)))\n    #else\n        #define DEPRECATED_MSG_ATTRIBUTE(s) __attribute__((deprecated))\n    #endif\n#else\n    #define DEPRECATED_ATTRIBUTE\n    #define DEPRECATED_MSG_ATTRIBUTE(s)\n#endif\n\n/*\n * only certain compilers support __attribute__((unavailable))\n */\n#if defined(__GNUC__) && ((__GNUC__ >= 4) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))\n    #define UNAVAILABLE_ATTRIBUTE __attribute__((unavailable))\n#else\n    #define UNAVAILABLE_ATTRIBUTE\n#endif\n\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n * \n * Used on functions introduced in Mac OS X 10.0 \n */\n#define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED\n * \n * Used on functions introduced in Mac OS X 10.0, \n * and deprecated in Mac OS X 10.0\n */\n#define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER\n * \n * Used on types deprecated in Mac OS X 10.0 \n */\n#define DEPRECATED_IN_MAC_OS_X_VERSION_10_0_AND_LATER     DEPRECATED_ATTRIBUTE\n\n#ifndef __AVAILABILITY_MACROS_USES_AVAILABILITY\n\t#ifdef __has_attribute\n\t\t#if __has_attribute(availability)\n\t\t\t#include <Availability.h>\n\t\t\t#define __AVAILABILITY_MACROS_USES_AVAILABILITY 1\n\t\t#endif\n\t#endif\n#endif\n\n#if TARGET_OS_OSX\n#define __IPHONE_COMPAT_VERSION  __IPHONE_NA\n#elif TARGET_OS_MACCATALYST\n#define __IPHONE_COMPAT_VERSION  __IPHONE_NA\n#else\n#define __IPHONE_COMPAT_VERSION  __IPHONE_4_0\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.1 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_1, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * and deprecated in Mac OS X 10.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_1    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.2 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_2, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * and deprecated in Mac OS X 10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.3 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_3, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * and deprecated in Mac OS X 10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.4 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_4, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * and deprecated in Mac OS X 10.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.5 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_5\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * and deprecated in Mac OS X 10.5\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.5\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.5\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.5\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.5\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.5\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_5    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.6 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * and deprecated in Mac OS X 10.6\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.6\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.6\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.6\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.6\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.6\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.6\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_6    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.7 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * and deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_7    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.13\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_13, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    DEPRECATED_ATTRIBUTE\n#else\n#define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_13    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.8 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * and deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_8    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.9 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * and deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_9    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.10 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * and deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.10.2 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10_2, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * and deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.10.3 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_10_3, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * and deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_10_3    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.11 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.11,\n * and deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * but later deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.11.2 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_2, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.11.2,\n * and deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2\n *\n * Used on declarations introduced in Mac OS X 10.11,\n * but later deprecated in Mac OS X 10.11.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_2    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.11.3 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_3, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.11.3,\n * and deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.11,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3\n *\n * Used on declarations introduced in Mac OS X 10.11.2,\n * but later deprecated in Mac OS X 10.11.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_3\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_3    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.11.4 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_11_4, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.11.4,\n * and deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.11,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.11.2,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4\n *\n * Used on declarations introduced in Mac OS X 10.11.3,\n * but later deprecated in Mac OS X 10.11.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_11_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_11_4    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.12 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.12,\n * and deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.11,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.11.2,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.11.3,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12\n *\n * Used on declarations introduced in Mac OS X 10.11.4,\n * but later deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.12.1 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_1, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.12.1,\n * and deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.11,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.11.2,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.11.3,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.11.4,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1\n *\n * Used on declarations introduced in Mac OS X 10.12,\n * but later deprecated in Mac OS X 10.12.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_1\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_1    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.12.2 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_2, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.12.2,\n * and deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.11,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.11.2,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.11.3,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.11.4,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.12,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2\n *\n * Used on declarations introduced in Mac OS X 10.12.1,\n * but later deprecated in Mac OS X 10.12.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_2\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_2    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.12.4 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_12_4, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED\n *\n * Used on declarations introduced in Mac OS X 10.12.4,\n * and deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER_BUT_DEPRECATED    AVAILABLE_MAC_OS_X_VERSION_10_12_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.0,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_0_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.1,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_1, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.2,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.3,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.4,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.5,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.6,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.7,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_7, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.8,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_8, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.9,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.10,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.10.2,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.10.3,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_10_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_10_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.11,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.11.2,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.11.3,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_3, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_3_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.11.4,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_11_4, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_11_4_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.12,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.12.1,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_1, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_1_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4\n *\n * Used on declarations introduced in Mac OS X 10.12.2,\n * but later deprecated in Mac OS X 10.12.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_12_2, __MAC_10_12_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12_4\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    DEPRECATED_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER_BUT_DEPRECATED_IN_MAC_OS_X_VERSION_10_12_4    AVAILABLE_MAC_OS_X_VERSION_10_12_2_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.13 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_13, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_13\n    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_13\n    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.14 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_14, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_14\n    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_14\n    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_14_AND_LATER\n#endif\n\n/*\n * AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER\n * \n * Used on declarations introduced in Mac OS X 10.15 \n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     __OSX_AVAILABLE_STARTING(__MAC_10_15, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_15\n    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     UNAVAILABLE_ATTRIBUTE\n#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_15\n    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER     WEAK_IMPORT_ATTRIBUTE\n#else\n    #define AVAILABLE_MAC_OS_X_VERSION_10_15_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.1\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_1, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_1\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_1_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.2\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_2, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_2\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_2_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.3\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_3, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_3_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_4_AND_LATER\n#endif\n\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.5\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_5_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.6\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_6, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_6\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_6_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.7\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_7, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_7\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.8\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_8\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_8_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.9\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_9, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_9_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.10\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_10, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_10_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.11\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_11, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_11\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_11_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.12\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_12, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_12_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.13\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_13, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_13_AND_LATER\n#endif\n\n/*\n * DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER\n *\n * Used on types deprecated in Mac OS X 10.14.4\n */\n#if __AVAILABILITY_MACROS_USES_AVAILABILITY\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_14_4, __IPHONE_COMPAT_VERSION, __IPHONE_COMPAT_VERSION)\n#elif MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_14_4\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER    DEPRECATED_ATTRIBUTE\n#else\n    #define DEPRECATED_IN_MAC_OS_X_VERSION_10_14_4_AND_LATER\n#endif\n\n#endif  /* __AVAILABILITYMACROS__ */\n\n\n"
  },
  {
    "path": "basic-headers/ConditionalMacros.h",
    "content": "/*\n * Copyright (c) 1993-2011 by Apple Inc.. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n/*\n     File:       ConditionalMacros.h\n \n     Contains:   Set up for compiler independent conditionals\n \n     Version:    CarbonCore-769~1\n  \n     Bugs?:      For bug reports, consult the following page on\n                 the World Wide Web:\n \n                     http://developer.apple.com/bugreporter/\n \n*/\n#ifndef __CONDITIONALMACROS__\n#define __CONDITIONALMACROS__\n\n#include <Availability.h>\n/****************************************************************************************************\n    UNIVERSAL_INTERFACES_VERSION\n    \n        0x0400 --> version 4.0 (Mac OS X only)\n        0x0335 --> version 3.4 \n        0x0331 --> version 3.3.1\n        0x0330 --> version 3.3\n        0x0320 --> version 3.2\n        0x0310 --> version 3.1\n        0x0301 --> version 3.0.1\n        0x0300 --> version 3.0\n        0x0210 --> version 2.1\n        This conditional did not exist prior to version 2.1\n****************************************************************************************************/\n#define UNIVERSAL_INTERFACES_VERSION 0x0400\n/****************************************************************************************************\n\n    All TARGET_* condtionals are set up by TargetConditionals.h\n\n****************************************************************************************************/\n#include <TargetConditionals.h>\n\n\n\n\n/****************************************************************************************************\n\n    PRAGMA_*\n    These conditionals specify whether the compiler supports particular #pragma's\n    \n        PRAGMA_IMPORT           - Compiler supports: #pragma import on/off/reset\n        PRAGMA_ONCE             - Compiler supports: #pragma once\n        PRAGMA_STRUCT_ALIGN     - Compiler supports: #pragma options align=mac68k/power/reset\n        PRAGMA_STRUCT_PACK      - Compiler supports: #pragma pack(n)\n        PRAGMA_STRUCT_PACKPUSH  - Compiler supports: #pragma pack(push, n)/pack(pop)\n        PRAGMA_ENUM_PACK        - Compiler supports: #pragma options(!pack_enums)\n        PRAGMA_ENUM_ALWAYSINT   - Compiler supports: #pragma enumsalwaysint on/off/reset\n        PRAGMA_ENUM_OPTIONS     - Compiler supports: #pragma options enum=int/small/reset\n\n\n    FOUR_CHAR_CODE\n    This conditional is deprecated.  It was used to work around a bug in one obscure compiler that did not pack multiple characters in single quotes rationally.\n    It was never intended for endian swapping.\n\n        FOUR_CHAR_CODE('abcd')  - Convert a four-char-code to the correct 32-bit value\n\n\n    TYPE_*\n    These conditionals specify whether the compiler supports particular types.\n\n        TYPE_LONGLONG               - Compiler supports \"long long\" 64-bit integers\n        TYPE_EXTENDED               - Compiler supports \"extended\" 80/96 bit floating point\n        TYPE_LONGDOUBLE_IS_DOUBLE   - Compiler implements \"long double\" same as \"double\"\n\n\n    FUNCTION_*\n    These conditionals specify whether the compiler supports particular language extensions\n    to function prototypes and definitions.\n\n        FUNCTION_PASCAL         - Compiler supports \"pascal void Foo()\"\n        FUNCTION_DECLSPEC       - Compiler supports \"__declspec(xxx) void Foo()\"\n        FUNCTION_WIN32CC        - Compiler supports \"void __cdecl Foo()\" and \"void __stdcall Foo()\"\n\n****************************************************************************************************/\n\n#if defined(__GNUC__) && (defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__NEXT_CPP__) || defined(__MACOS_CLASSIC__))\n   /*\n     gcc based compilers used on Mac OS X\n   */\n  #define PRAGMA_IMPORT               0\n  #define PRAGMA_ONCE                 0\n\n  #if __GNUC__ >= 4\n    #define PRAGMA_STRUCT_PACK          1\n    #define PRAGMA_STRUCT_PACKPUSH      1\n  #else\n    #define PRAGMA_STRUCT_PACK          0\n    #define PRAGMA_STRUCT_PACKPUSH      0\n  #endif\n\n  #if __LP64__ || __arm64__ || __ARM_ARCH_7K\n    #define PRAGMA_STRUCT_ALIGN         0\n  #else\n    #define PRAGMA_STRUCT_ALIGN         1\n  #endif\n\n  #define PRAGMA_ENUM_PACK            0\n  #define PRAGMA_ENUM_ALWAYSINT       0\n  #define PRAGMA_ENUM_OPTIONS         0\n  #define FOUR_CHAR_CODE(x)           (x)\n\n  #define TYPE_EXTENDED               0\n\n  #ifdef __ppc__\n  #ifdef __LONG_DOUBLE_128__\n     #define TYPE_LONGDOUBLE_IS_DOUBLE 0\n    #else\n      #define TYPE_LONGDOUBLE_IS_DOUBLE 1\n    #endif\n  #else\n    #define TYPE_LONGDOUBLE_IS_DOUBLE 0\n  #endif\n\n  #define TYPE_LONGLONG               1\n \n  #define FUNCTION_PASCAL             0\n  #define FUNCTION_DECLSPEC           0\n  #define FUNCTION_WIN32CC            0 \n  \n  #ifdef __MACOS_CLASSIC__\n    #ifndef TARGET_API_MAC_CARBON            /* gcc cfm cross compiler assumes you're building Carbon code */\n       #define TARGET_API_MAC_CARBON 1\n    #endif\n  #endif\n  \n\n\n#elif defined(__MWERKS__)\n   /*\n       CodeWarrior compiler from Metrowerks/Motorola\n   */\n   #define PRAGMA_ONCE                 1\n   #define PRAGMA_IMPORT               0\n   #define PRAGMA_STRUCT_ALIGN         1\n   #define PRAGMA_STRUCT_PACK          1\n   #define PRAGMA_STRUCT_PACKPUSH      0\n   #define PRAGMA_ENUM_PACK            0\n   #define PRAGMA_ENUM_ALWAYSINT       1\n   #define PRAGMA_ENUM_OPTIONS         0\n   #if __option(enumsalwaysint) && __option(ANSI_strict)\n     #define FOUR_CHAR_CODE(x)       ((long)(x)) /* otherwise compiler will complain about values with high bit set */\n   #else\n     #define FOUR_CHAR_CODE(x)       (x)\n   #endif\n   #define FUNCTION_PASCAL             1\n   #define FUNCTION_DECLSPEC           1\n   #define FUNCTION_WIN32CC            0           \n      \n   #if __option(longlong)\n      #define TYPE_LONGLONG            1\n   #else\n     #define TYPE_LONGLONG             0\n   #endif\n   #define TYPE_EXTENDED               0\n   #define TYPE_LONGDOUBLE_IS_DOUBLE   1\n\n\n\n#else\n    /*\n     Unknown compiler, perhaps set up from the command line\n    */\n   #error unknown compiler\n    #ifndef PRAGMA_IMPORT\n  #define PRAGMA_IMPORT               0\n  #endif\n #ifndef PRAGMA_STRUCT_ALIGN\n    #define PRAGMA_STRUCT_ALIGN         0\n  #endif\n #ifndef PRAGMA_ONCE\n    #define PRAGMA_ONCE                 0\n  #endif\n #ifndef PRAGMA_STRUCT_PACK\n #define PRAGMA_STRUCT_PACK          0\n  #endif\n #ifndef PRAGMA_STRUCT_PACKPUSH\n #define PRAGMA_STRUCT_PACKPUSH      0\n  #endif\n #ifndef PRAGMA_ENUM_PACK\n   #define PRAGMA_ENUM_PACK            0\n  #endif\n #ifndef PRAGMA_ENUM_ALWAYSINT\n  #define PRAGMA_ENUM_ALWAYSINT       0\n  #endif\n #ifndef PRAGMA_ENUM_OPTIONS\n    #define PRAGMA_ENUM_OPTIONS         0\n  #endif\n #ifndef FOUR_CHAR_CODE\n #define FOUR_CHAR_CODE(x)           (x)\n    #endif\n\n    #ifndef TYPE_LONGDOUBLE_IS_DOUBLE\n  #define TYPE_LONGDOUBLE_IS_DOUBLE   1\n  #endif\n #ifndef TYPE_EXTENDED\n  #define TYPE_EXTENDED               0\n  #endif\n #ifndef TYPE_LONGLONG\n  #define TYPE_LONGLONG               0\n  #endif\n #ifndef FUNCTION_PASCAL\n    #define FUNCTION_PASCAL             0\n  #endif\n #ifndef FUNCTION_DECLSPEC\n  #define FUNCTION_DECLSPEC           0\n  #endif\n #ifndef FUNCTION_WIN32CC\n   #define FUNCTION_WIN32CC            0\n  #endif\n#endif\n\n\n\n\n/****************************************************************************************************\n\n    Under MacOS, the classic 68k runtime has two calling conventions: pascal or C\n    Under Win32, there are two calling conventions: __cdecl or __stdcall\n    Headers and implementation files can use the following macros to make their\n    source more portable by hiding the calling convention details:\n\n    EXTERN_API*\n    These macros are used to specify the calling convention on a function prototype.\n\n        EXTERN_API              - Classic 68k: pascal, Win32: __cdecl\n        EXTERN_API_C            - Classic 68k: C,      Win32: __cdecl\n        EXTERN_API_STDCALL      - Classic 68k: pascal, Win32: __stdcall\n        EXTERN_API_C_STDCALL    - Classic 68k: C,      Win32: __stdcall\n\n\n    DEFINE_API*\n    These macros are used to specify the calling convention on a function definition.\n\n        DEFINE_API              - Classic 68k: pascal, Win32: __cdecl\n        DEFINE_API_C            - Classic 68k: C,      Win32: __cdecl\n        DEFINE_API_STDCALL      - Classic 68k: pascal, Win32: __stdcall\n        DEFINE_API_C_STDCALL    - Classic 68k: C,      Win32: __stdcall\n\n\n    CALLBACK_API*\n    These macros are used to specify the calling convention of a function pointer.\n\n        CALLBACK_API            - Classic 68k: pascal, Win32: __stdcall\n        CALLBACK_API_C          - Classic 68k: C,      Win32: __stdcall\n        CALLBACK_API_STDCALL    - Classic 68k: pascal, Win32: __cdecl\n        CALLBACK_API_C_STDCALL  - Classic 68k: C,      Win32: __cdecl\n\n****************************************************************************************************/\n\n#if FUNCTION_PASCAL && !FUNCTION_DECLSPEC && !FUNCTION_WIN32CC\n    /* compiler supports pascal keyword only  */\n    #define EXTERN_API(_type)                       extern pascal _type\n    #define EXTERN_API_C(_type)                     extern        _type\n    #define EXTERN_API_STDCALL(_type)               extern pascal _type\n    #define EXTERN_API_C_STDCALL(_type)             extern        _type\n    \n    #define DEFINE_API(_type)                       pascal _type\n    #define DEFINE_API_C(_type)                            _type\n    #define DEFINE_API_STDCALL(_type)               pascal _type\n    #define DEFINE_API_C_STDCALL(_type)                    _type\n    \n    #define CALLBACK_API(_type, _name)              pascal _type (*_name)\n    #define CALLBACK_API_C(_type, _name)                   _type (*_name)\n    #define CALLBACK_API_STDCALL(_type, _name)      pascal _type (*_name)\n    #define CALLBACK_API_C_STDCALL(_type, _name)           _type (*_name)\n\n#elif FUNCTION_PASCAL && FUNCTION_DECLSPEC && !FUNCTION_WIN32CC\n    /* compiler supports pascal and __declspec() */\n    #define EXTERN_API(_type)                       extern pascal __declspec(dllimport) _type\n    #define EXTERN_API_C(_type)                     extern        __declspec(dllimport) _type\n    #define EXTERN_API_STDCALL(_type)               extern pascal __declspec(dllimport) _type\n    #define EXTERN_API_C_STDCALL(_type)             extern        __declspec(dllimport) _type\n    \n    #define DEFINE_API(_type)                       pascal __declspec(dllexport) _type\n    #define DEFINE_API_C(_type)                            __declspec(dllexport) _type\n    #define DEFINE_API_STDCALL(_type)               pascal __declspec(dllexport) _type\n    #define DEFINE_API_C_STDCALL(_type)                    __declspec(dllexport) _type\n\n    #define CALLBACK_API(_type, _name)              pascal _type (*_name)\n    #define CALLBACK_API_C(_type, _name)                   _type (*_name)\n    #define CALLBACK_API_STDCALL(_type, _name)      pascal _type (*_name)\n    #define CALLBACK_API_C_STDCALL(_type, _name)           _type (*_name)\n\n#elif !FUNCTION_PASCAL && FUNCTION_DECLSPEC && !FUNCTION_WIN32CC\n    /* compiler supports __declspec() */\n    #define EXTERN_API(_type)                       extern __declspec(dllimport) _type\n    #define EXTERN_API_C(_type)                     extern __declspec(dllimport) _type\n    #define EXTERN_API_STDCALL(_type)               extern __declspec(dllimport) _type\n    #define EXTERN_API_C_STDCALL(_type)             extern __declspec(dllimport) _type\n    \n    #define DEFINE_API(_type)                       __declspec(dllexport) _type \n    #define DEFINE_API_C(_type)                     __declspec(dllexport) _type\n    #define DEFINE_API_STDCALL(_type)               __declspec(dllexport) _type\n    #define DEFINE_API_C_STDCALL(_type)             __declspec(dllexport) _type\n\n    #define CALLBACK_API(_type, _name)              _type ( * _name)\n    #define CALLBACK_API_C(_type, _name)            _type ( * _name)\n    #define CALLBACK_API_STDCALL(_type, _name)      _type ( * _name)\n    #define CALLBACK_API_C_STDCALL(_type, _name)    _type ( * _name)\n\n#elif !FUNCTION_PASCAL && FUNCTION_DECLSPEC && FUNCTION_WIN32CC\n    /* compiler supports __declspec() and __cdecl */\n    #define EXTERN_API(_type)                       __declspec(dllimport) _type __cdecl\n    #define EXTERN_API_C(_type)                     __declspec(dllimport) _type __cdecl\n    #define EXTERN_API_STDCALL(_type)               __declspec(dllimport) _type __stdcall\n    #define EXTERN_API_C_STDCALL(_type)             __declspec(dllimport) _type __stdcall\n    \n    #define DEFINE_API(_type)                       __declspec(dllexport) _type __cdecl\n    #define DEFINE_API_C(_type)                     __declspec(dllexport) _type __cdecl\n    #define DEFINE_API_STDCALL(_type)               __declspec(dllexport) _type __stdcall\n    #define DEFINE_API_C_STDCALL(_type)             __declspec(dllexport) _type __stdcall\n    \n    #define CALLBACK_API(_type, _name)              _type (__cdecl * _name)\n    #define CALLBACK_API_C(_type, _name)            _type (__cdecl * _name)\n    #define CALLBACK_API_STDCALL(_type, _name)      _type (__stdcall * _name)\n    #define CALLBACK_API_C_STDCALL(_type, _name)    _type (__stdcall * _name)\n\n#elif !FUNCTION_PASCAL && !FUNCTION_DECLSPEC && FUNCTION_WIN32CC\n    /* compiler supports __cdecl */\n    #define EXTERN_API(_type)                       _type __cdecl\n    #define EXTERN_API_C(_type)                     _type __cdecl\n    #define EXTERN_API_STDCALL(_type)               _type __stdcall\n    #define EXTERN_API_C_STDCALL(_type)             _type __stdcall\n    \n    #define DEFINE_API(_type)                       _type __cdecl\n    #define DEFINE_API_C(_type)                     _type __cdecl\n    #define DEFINE_API_STDCALL(_type)               _type __stdcall\n    #define DEFINE_API_C_STDCALL(_type)             _type __stdcall\n    \n    #define CALLBACK_API(_type, _name)              _type (__cdecl * _name)\n    #define CALLBACK_API_C(_type, _name)            _type (__cdecl * _name)\n    #define CALLBACK_API_STDCALL(_type, _name)      _type (__stdcall * _name)\n    #define CALLBACK_API_C_STDCALL(_type, _name)    _type (__stdcall * _name)\n\n#else \n    /* compiler supports no extensions */\n    #define EXTERN_API(_type)                       extern _type\n    #define EXTERN_API_C(_type)                     extern _type\n    #define EXTERN_API_STDCALL(_type)               extern _type\n    #define EXTERN_API_C_STDCALL(_type)             extern _type\n    \n    #define DEFINE_API(_type)                       _type\n    #define DEFINE_API_C(_type)                     _type\n    #define DEFINE_API_STDCALL(_type)               _type\n    #define DEFINE_API_C_STDCALL(_type)             _type\n\n    #define CALLBACK_API(_type, _name)              _type ( * _name)\n    #define CALLBACK_API_C(_type, _name)            _type ( * _name)\n    #define CALLBACK_API_STDCALL(_type, _name)      _type ( * _name)\n    #define CALLBACK_API_C_STDCALL(_type, _name)    _type ( * _name)\n    #undef pascal\n    #define pascal\n#endif\n\n/****************************************************************************************************\n    \n    Set up TARGET_API_*_* values\n\n****************************************************************************************************/\n#if !defined(TARGET_API_MAC_OS8) && !defined(TARGET_API_MAC_OSX) && !defined(TARGET_API_MAC_CARBON)\n/* No TARGET_API_MAC_* predefined on command line */\n#if TARGET_RT_MAC_MACHO\n/* Looks like MachO style compiler */\n#define TARGET_API_MAC_OS8 0\n#define TARGET_API_MAC_CARBON 1\n#define TARGET_API_MAC_OSX 1\n#elif defined(TARGET_CARBON) && TARGET_CARBON\n/* grandfather in use of TARGET_CARBON */\n#define TARGET_API_MAC_OS8 0\n#define TARGET_API_MAC_CARBON 1\n#define TARGET_API_MAC_OSX 0\n#elif TARGET_CPU_PPC && TARGET_RT_MAC_CFM\n/* Looks like CFM style PPC compiler */\n#define TARGET_API_MAC_OS8 1\n#define TARGET_API_MAC_CARBON 0\n#define TARGET_API_MAC_OSX 0\n#else\n/* 68k or some other compiler */\n#define TARGET_API_MAC_OS8 1\n#define TARGET_API_MAC_CARBON 0\n#define TARGET_API_MAC_OSX 0\n#endif  /*  */\n\n#else\n#ifndef TARGET_API_MAC_OS8\n#define TARGET_API_MAC_OS8 0\n#endif  /* !defined(TARGET_API_MAC_OS8) */\n\n#ifndef TARGET_API_MAC_OSX\n#define TARGET_API_MAC_OSX TARGET_RT_MAC_MACHO\n#endif  /* !defined(TARGET_API_MAC_OSX) */\n\n#ifndef TARGET_API_MAC_CARBON\n#define TARGET_API_MAC_CARBON TARGET_API_MAC_OSX\n#endif  /* !defined(TARGET_API_MAC_CARBON) */\n\n#endif  /* !defined(TARGET_API_MAC_OS8) && !defined(TARGET_API_MAC_OSX) && !defined(TARGET_API_MAC_CARBON) */\n\n#if TARGET_API_MAC_OS8 && TARGET_API_MAC_OSX\n#error TARGET_API_MAC_OS8 and TARGET_API_MAC_OSX are mutually exclusive\n#endif  /* TARGET_API_MAC_OS8 && TARGET_API_MAC_OSX */\n\n#if !TARGET_API_MAC_OS8 && !TARGET_API_MAC_CARBON && !TARGET_API_MAC_OSX\n#error At least one of TARGET_API_MAC_* must be true\n#endif  /* !TARGET_API_MAC_OS8 && !TARGET_API_MAC_CARBON && !TARGET_API_MAC_OSX */\n\n/* Support source code still using TARGET_CARBON */\n#ifndef TARGET_CARBON\n#if TARGET_API_MAC_CARBON && !TARGET_API_MAC_OS8\n#define TARGET_CARBON 1\n#else\n#define TARGET_CARBON 0\n#endif  /* TARGET_API_MAC_CARBON && !TARGET_API_MAC_OS8 */\n\n#endif  /* !defined(TARGET_CARBON) */\n\n/****************************************************************************************************\n    Backward compatibility for clients expecting 2.x version on ConditionalMacros.h\n\n    GENERATINGPOWERPC       - Compiler is generating PowerPC instructions\n    GENERATING68K           - Compiler is generating 68k family instructions\n    GENERATING68881         - Compiler is generating mc68881 floating point instructions\n    GENERATINGCFM           - Code being generated assumes CFM calling conventions\n    CFMSYSTEMCALLS          - No A-traps.  Systems calls are made using CFM and UPP's\n    PRAGMA_ALIGN_SUPPORTED  - Compiler supports: #pragma options align=mac68k/power/reset\n    PRAGMA_IMPORT_SUPPORTED - Compiler supports: #pragma import on/off/reset\n    CGLUESUPPORTED          - Clients can use all lowercase toolbox functions that take C strings instead of pascal strings\n\n****************************************************************************************************/\n#if !TARGET_API_MAC_CARBON\n#define GENERATINGPOWERPC TARGET_CPU_PPC\n#define GENERATING68K 0\n#define GENERATING68881 TARGET_RT_MAC_68881\n#define GENERATINGCFM TARGET_RT_MAC_CFM\n#define CFMSYSTEMCALLS TARGET_RT_MAC_CFM\n#ifndef CGLUESUPPORTED\n#define CGLUESUPPORTED 0\n#endif  /* !defined(CGLUESUPPORTED) */\n\n#ifndef OLDROUTINELOCATIONS\n#define OLDROUTINELOCATIONS 0\n#endif  /* !defined(OLDROUTINELOCATIONS) */\n\n#define PRAGMA_ALIGN_SUPPORTED  PRAGMA_STRUCT_ALIGN\n#define PRAGMA_IMPORT_SUPPORTED PRAGMA_IMPORT\n#else\n/* Carbon code should not use old conditionals */\n#define PRAGMA_ALIGN_SUPPORTED  ..PRAGMA_ALIGN_SUPPORTED_is_obsolete..\n#define GENERATINGPOWERPC       ..GENERATINGPOWERPC_is_obsolete..\n#define GENERATING68K           ..GENERATING68K_is_obsolete..\n#define GENERATING68881         ..GENERATING68881_is_obsolete..\n#define GENERATINGCFM           ..GENERATINGCFM_is_obsolete..\n#define CFMSYSTEMCALLS          ..CFMSYSTEMCALLS_is_obsolete..\n#endif  /* !TARGET_API_MAC_CARBON */\n\n\n\n/****************************************************************************************************\n\n    OLDROUTINENAMES         - \"Old\" names for Macintosh system calls are allowed in source code.\n                              (e.g. DisposPtr instead of DisposePtr). The names of system routine\n                              are now more sensitive to change because CFM binds by name.  In the \n                              past, system routine names were compiled out to just an A-Trap.  \n                              Macros have been added that each map an old name to its new name.  \n                              This allows old routine names to be used in existing source files,\n                              but the macros only work if OLDROUTINENAMES is true.  This support\n                              will be removed in the near future.  Thus, all source code should \n                              be changed to use the new names! You can set OLDROUTINENAMES to false\n                              to see if your code has any old names left in it.\n    \n****************************************************************************************************/\n#ifndef OLDROUTINENAMES\n#define OLDROUTINENAMES 0\n#endif  /* !defined(OLDROUTINENAMES) */\n\n\n\n/****************************************************************************************************\n The following macros isolate the use of 68K inlines in function prototypes.\n    On the Mac OS under the Classic 68K runtime, function prototypes were followed\n by a list of 68K opcodes which the compiler inserted in the generated code instead\n of a JSR.  Under Classic 68K on the Mac OS, this macro will put the opcodes\n    in the right syntax.  For all other OS's and runtimes the macro suppress the opcodes.\n  Example:\n   \n       EXTERN_P void DrawPicture(PicHandle myPicture, const Rect *dstRect)\n            ONEWORDINLINE(0xA8F6);\n \n****************************************************************************************************/\n\n#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM\n #define ONEWORDINLINE(w1) = w1\n #define TWOWORDINLINE(w1,w2) = {w1,w2}\n #define THREEWORDINLINE(w1,w2,w3) = {w1,w2,w3}\n #define FOURWORDINLINE(w1,w2,w3,w4)  = {w1,w2,w3,w4}\n   #define FIVEWORDINLINE(w1,w2,w3,w4,w5) = {w1,w2,w3,w4,w5}\n  #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6)     = {w1,w2,w3,w4,w5,w6}\n #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7)    = {w1,w2,w3,w4,w5,w6,w7}\n  #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8)     = {w1,w2,w3,w4,w5,w6,w7,w8}\n   #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9)   = {w1,w2,w3,w4,w5,w6,w7,w8,w9}\n    #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10)  = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10}\n  #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11)     = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11}\n    #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12)     = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12}\n#else\n  #define ONEWORDINLINE(w1)\n  #define TWOWORDINLINE(w1,w2)\n   #define THREEWORDINLINE(w1,w2,w3)\n  #define FOURWORDINLINE(w1,w2,w3,w4)\n    #define FIVEWORDINLINE(w1,w2,w3,w4,w5)\n #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6)\n   #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7)\n  #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8)\n   #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9)\n #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10)\n  #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11)\n   #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12)\n#endif\n\n\n/****************************************************************************************************\n\n    TARGET_CARBON                   - default: false. Switches all of the above as described.  Overrides all others\n                                    - NOTE: If you set TARGET_CARBON to 1, then the other switches will be setup by\n                                            ConditionalMacros, and should not be set manually.\n\n    If you wish to do development for pre-Carbon Systems, you can set the following:\n\n    OPAQUE_TOOLBOX_STRUCTS          - default: false. True for Carbon builds, hides struct fields.\n    OPAQUE_UPP_TYPES                - default: false. True for Carbon builds, UPP types are unique and opaque.\n    ACCESSOR_CALLS_ARE_FUNCTIONS    - default: false. True for Carbon builds, enables accessor functions.\n    CALL_NOT_IN_CARBON              - default: true.  False for Carbon builds, hides calls not supported in Carbon.\n    \n    Specifically, if you are building a non-Carbon application (one that links against InterfaceLib)\n    but you wish to use some of the accessor functions, you can set ACCESSOR_CALLS_ARE_FUNCTIONS to 1\n    and link with CarbonAccessors.o, which implements just the accessor functions. This will help you\n    preserve source compatibility between your Carbon and non-Carbon application targets.\n    \n    MIXEDMODE_CALLS_ARE_FUNCTIONS   - deprecated.\n\n****************************************************************************************************/\n#if TARGET_API_MAC_CARBON && !TARGET_API_MAC_OS8\n#ifndef OPAQUE_TOOLBOX_STRUCTS\n#define OPAQUE_TOOLBOX_STRUCTS 1\n#endif  /* !defined(OPAQUE_TOOLBOX_STRUCTS) */\n\n#ifndef OPAQUE_UPP_TYPES\n#define OPAQUE_UPP_TYPES 1\n#endif  /* !defined(OPAQUE_UPP_TYPES) */\n\n#ifndef ACCESSOR_CALLS_ARE_FUNCTIONS\n#define ACCESSOR_CALLS_ARE_FUNCTIONS 1\n#endif  /* !defined(ACCESSOR_CALLS_ARE_FUNCTIONS) */\n\n#ifndef CALL_NOT_IN_CARBON\n#define CALL_NOT_IN_CARBON 0\n#endif  /* !defined(CALL_NOT_IN_CARBON) */\n\n#ifndef MIXEDMODE_CALLS_ARE_FUNCTIONS\n#define MIXEDMODE_CALLS_ARE_FUNCTIONS 1\n#endif  /* !defined(MIXEDMODE_CALLS_ARE_FUNCTIONS) */\n\n#else\n#ifndef OPAQUE_TOOLBOX_STRUCTS\n#define OPAQUE_TOOLBOX_STRUCTS 0\n#endif  /* !defined(OPAQUE_TOOLBOX_STRUCTS) */\n\n#ifndef ACCESSOR_CALLS_ARE_FUNCTIONS\n#define ACCESSOR_CALLS_ARE_FUNCTIONS 0\n#endif  /* !defined(ACCESSOR_CALLS_ARE_FUNCTIONS) */\n\n/*\n     * It's possible to have ACCESSOR_CALLS_ARE_FUNCTIONS set to true and OPAQUE_TOOLBOX_STRUCTS\n     * set to false, but not the other way around, so make sure the defines are not set this way.\n     */\n#ifndef CALL_NOT_IN_CARBON\n#define CALL_NOT_IN_CARBON 1\n#endif  /* !defined(CALL_NOT_IN_CARBON) */\n\n#ifndef MIXEDMODE_CALLS_ARE_FUNCTIONS\n#define MIXEDMODE_CALLS_ARE_FUNCTIONS 0\n#endif  /* !defined(MIXEDMODE_CALLS_ARE_FUNCTIONS) */\n\n#endif  /* TARGET_API_MAC_CARBON && !TARGET_API_MAC_OS8 */\n\n\n\n\n#endif /* __CONDITIONALMACROS__ */\n\n"
  },
  {
    "path": "basic-headers/MacTypes.h",
    "content": "/*\n * Copyright (c) 1985-2011 by Apple Inc.. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n \n/*\n     File:       MacTypes.h\n \n     Contains:   Basic Macintosh data types.\n \n     Version:    CarbonCore-769~1\n  \n     Bugs?:      For bug reports, consult the following page on\n                 the World Wide Web:\n \n                     http://developer.apple.com/bugreporter/\n \n*/\n#ifndef __MACTYPES__\n#define __MACTYPES__\n\n#ifndef __CONDITIONALMACROS__\n#include <ConditionalMacros.h>\n#endif\n\n#include <stdbool.h>\n\n#include <sys/types.h>\n\n#include <Availability.h>\n\n#if PRAGMA_ONCE\n#pragma once\n#endif\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#pragma pack(push, 2)\n\n\n/*\n        CarbonCore Deprecation flags.\n\n     Certain Carbon API functions are deprecated in 10.3 and later\n      systems.  These will produce a warning when compiling on 10.3.\n\n        Other functions and constants do not produce meaningful\n        results when building Carbon for Mac OS X.  For these\n      functions, no-op macros are provided, but only when the\n        ALLOW_OBSOLETE_CARBON flag is defined to be 0: eg\n      -DALLOW_OBSOLETE_CARBON=0.\n*/\n\n#if  ! defined(ALLOW_OBSOLETE_CARBON) || ! ALLOW_OBSOLETE_CARBON\n\n#define ALLOW_OBSOLETE_CARBON_MACMEMORY        0\n#define ALLOW_OBSOLETE_CARBON_OSUTILS     0\n\n#else\n\n#define ALLOW_OBSOLETE_CARBON_MACMEMORY       1       /* Removes obsolete constants; turns HLock/HUnlock into no-op macros */\n#define ALLOW_OBSOLETE_CARBON_OSUTILS       1       /* Removes obsolete structures */\n\n#endif\n\n#ifndef NULL\n#define NULL    __DARWIN_NULL\n#endif /* ! NULL */\n#ifndef nil\n  #if defined(__has_feature) \n    #if __has_feature(cxx_nullptr)\n      #define nil nullptr\n    #else\n      #define nil __DARWIN_NULL\n    #endif\n  #else\n    #define nil __DARWIN_NULL\n  #endif\n#endif\n\n/********************************************************************************\n\n    Base integer types for all target OS's and CPU's\n    \n        UInt8            8-bit unsigned integer \n        SInt8            8-bit signed integer\n        UInt16          16-bit unsigned integer \n        SInt16          16-bit signed integer           \n        UInt32          32-bit unsigned integer \n        SInt32          32-bit signed integer   \n        UInt64          64-bit unsigned integer \n        SInt64          64-bit signed integer   \n\n*********************************************************************************/\ntypedef unsigned char                   UInt8;\ntypedef signed char                     SInt8;\ntypedef unsigned short                  UInt16;\ntypedef signed short                    SInt16;\n\n#if __LP64__\ntypedef unsigned int                    UInt32;\ntypedef signed int                      SInt32;\n#else\ntypedef unsigned long                   UInt32;\ntypedef signed long                     SInt32;\n#endif\n\n/* avoid redeclaration if libkern/OSTypes.h */\n#ifndef _OS_OSTYPES_H\n#if TARGET_RT_BIG_ENDIAN\nstruct wide {\n  SInt32              hi;\n  UInt32              lo;\n};\ntypedef struct wide                     wide;\nstruct UnsignedWide {\n  UInt32              hi;\n  UInt32              lo;\n};\ntypedef struct UnsignedWide             UnsignedWide;\n#else\nstruct wide {\n  UInt32              lo;\n  SInt32              hi;\n};\ntypedef struct wide                     wide;\nstruct UnsignedWide {\n  UInt32              lo;\n  UInt32              hi;\n};\ntypedef struct UnsignedWide             UnsignedWide;\n#endif  /* TARGET_RT_BIG_ENDIAN */\n\n#endif\n\n#if TYPE_LONGLONG\n/*\n  Note:   wide and UnsignedWide must always be structs for source code\n           compatibility. On the other hand UInt64 and SInt64 can be\n          either a struct or a long long, depending on the compiler.\n         \n           If you use UInt64 and SInt64 you should do all operations on \n          those data types through the functions/macros in Math64.h.  \n           This will assure that your code compiles with compilers that\n           support long long and those that don't.\n            \n           The MS Visual C/C++ compiler uses __int64 instead of long long. \n*/\n    #if defined(_MSC_VER) && !defined(__MWERKS__) && defined(_M_IX86)\n      typedef   signed __int64                SInt64;\n        typedef unsigned __int64                UInt64;\n    #else\n      typedef   signed long long              SInt64;\n        typedef unsigned long long              UInt64;\n    #endif\n#else\n\n\ntypedef wide                            SInt64;\ntypedef UnsignedWide                    UInt64;\n#endif  /* TYPE_LONGLONG */\n\n/********************************************************************************\n\n    Base fixed point types \n    \n        Fixed           16-bit signed integer plus 16-bit fraction\n        UnsignedFixed   16-bit unsigned integer plus 16-bit fraction\n        Fract           2-bit signed integer plus 30-bit fraction\n        ShortFixed      8-bit signed integer plus 8-bit fraction\n        \n*********************************************************************************/\ntypedef SInt32                          Fixed;\ntypedef Fixed *                         FixedPtr;\ntypedef SInt32                          Fract;\ntypedef Fract *                         FractPtr;\ntypedef UInt32                          UnsignedFixed;\ntypedef UnsignedFixed *                 UnsignedFixedPtr;\ntypedef short                           ShortFixed;\ntypedef ShortFixed *                    ShortFixedPtr;\n\n\n/********************************************************************************\n\n    Base floating point types \n    \n        Float32         32 bit IEEE float:  1 sign bit, 8 exponent bits, 23 fraction bits\n        Float64         64 bit IEEE float:  1 sign bit, 11 exponent bits, 52 fraction bits  \n        Float80         80 bit MacOS float: 1 sign bit, 15 exponent bits, 1 integer bit, 63 fraction bits\n        Float96         96 bit 68881 float: 1 sign bit, 15 exponent bits, 16 pad bits, 1 integer bit, 63 fraction bits\n        \n    Note: These are fixed size floating point types, useful when writing a floating\n          point value to disk.  If your compiler does not support a particular size \n          float, a struct is used instead.\n          Use of of the NCEG types (e.g. double_t) or an ANSI C type (e.g. double) if\n          you want a floating point representation that is natural for any given\n          compiler, but might be a different size on different compilers.\n\n*********************************************************************************/\ntypedef float               Float32;\ntypedef double              Float64;\nstruct Float80 {\n    SInt16  exp;\n    UInt16  man[4];\n};\ntypedef struct Float80 Float80;\n\nstruct Float96 {\n    SInt16  exp[2];     /* the second 16-bits are undefined */\n    UInt16  man[4];\n};\ntypedef struct Float96 Float96;\nstruct Float32Point {\n    Float32             x;\n    Float32             y;\n};\ntypedef struct Float32Point Float32Point;\n\n/********************************************************************************\n\n    MacOS Memory Manager types\n    \n        Ptr             Pointer to a non-relocatable block\n        Handle          Pointer to a master pointer to a relocatable block\n        Size            The number of bytes in a block (signed for historical reasons)\n        \n*********************************************************************************/\ntypedef char *                          Ptr;\ntypedef Ptr *                           Handle;\ntypedef long                            Size;\n\n/********************************************************************************\n\n    Higher level basic types\n    \n        OSErr                   16-bit result error code\n        OSStatus                32-bit result error code\n        LogicalAddress          Address in the clients virtual address space\n        ConstLogicalAddress     Address in the clients virtual address space that will only be read\n        PhysicalAddress         Real address as used on the hardware bus\n        BytePtr                 Pointer to an array of bytes\n        ByteCount               The size of an array of bytes\n        ByteOffset              An offset into an array of bytes\n        ItemCount               32-bit iteration count\n        OptionBits              Standard 32-bit set of bit flags\n        PBVersion               ?\n        Duration                32-bit millisecond timer for drivers\n        AbsoluteTime            64-bit clock\n        ScriptCode              A particular set of written characters (e.g. Roman vs Cyrillic) and their encoding\n        LangCode                A particular language (e.g. English), as represented using a particular ScriptCode\n        RegionCode              Designates a language as used in a particular region (e.g. British vs American\n                                English) together with other region-dependent characteristics (e.g. date format)\n        FourCharCode            A 32-bit value made by packing four 1 byte characters together\n        OSType                  A FourCharCode used in the OS and file system (e.g. creator)\n        ResType                 A FourCharCode used to tag resources (e.g. 'DLOG')\n        \n*********************************************************************************/\ntypedef SInt16                          OSErr;\ntypedef SInt32                          OSStatus;\ntypedef void *                          LogicalAddress;\ntypedef const void *                    ConstLogicalAddress;\ntypedef void *                          PhysicalAddress;\ntypedef UInt8 *                         BytePtr;\ntypedef unsigned long                   ByteCount;\ntypedef unsigned long                   ByteOffset;\ntypedef SInt32                          Duration;\ntypedef UnsignedWide                    AbsoluteTime;\ntypedef UInt32                          OptionBits;\ntypedef unsigned long                   ItemCount;\ntypedef UInt32                          PBVersion;\ntypedef SInt16                          ScriptCode;\ntypedef SInt16                          LangCode;\ntypedef SInt16                          RegionCode;\ntypedef UInt32                          FourCharCode;\ntypedef FourCharCode                    OSType;\ntypedef FourCharCode                    ResType;\ntypedef OSType *                        OSTypePtr;\ntypedef ResType *                       ResTypePtr;\n/********************************************************************************\n\n    Boolean types and values\n    \n        Boolean         Mac OS historic type, sizeof(Boolean)==1\n        bool            Defined in stdbool.h, ISO C/C++ standard type\n        false           Now defined in stdbool.h\n        true            Now defined in stdbool.h\n        \n*********************************************************************************/\ntypedef unsigned char                   Boolean;\n/********************************************************************************\n\n    Function Pointer Types\n    \n        ProcPtr                 Generic pointer to a function\n        Register68kProcPtr      Pointer to a 68K function that expects parameters in registers\n        UniversalProcPtr        Pointer to classic 68K code or a RoutineDescriptor\n        \n        ProcHandle              Pointer to a ProcPtr\n        UniversalProcHandle     Pointer to a UniversalProcPtr\n        \n*********************************************************************************/\ntypedef CALLBACK_API_C( long , ProcPtr )();\ntypedef CALLBACK_API( void , Register68kProcPtr )();\n#if TARGET_RT_MAC_CFM\n/*  The RoutineDescriptor structure is defined in MixedMode.h */\ntypedef struct RoutineDescriptor *UniversalProcPtr;\n#else\ntypedef ProcPtr                         UniversalProcPtr;\n#endif  /* TARGET_RT_MAC_CFM */\n\ntypedef ProcPtr *                       ProcHandle;\ntypedef UniversalProcPtr *              UniversalProcHandle;\n/********************************************************************************\n\n    RefCon Types\n    \n        For access to private data in callbacks, etc.; refcons are generally\n        used as a pointer to something, but in the 32-bit world refcons in\n        different APIs have had various types: pointer, unsigned scalar, and\n        signed scalar. The RefCon types defined here support the current 32-bit\n        usage but provide normalization to pointer types for 64-bit.\n        \n        PRefCon is preferred for new APIs; URefCon and SRefCon are primarily\n        for compatibility with existing APIs.\n        \n*********************************************************************************/\ntypedef void *                          PRefCon;\n#if __LP64__\ntypedef void *                          URefCon;\ntypedef void *                          SRefCon;\n#else\ntypedef UInt32                          URefCon;\ntypedef SInt32                          SRefCon;\n#endif  /* __LP64__ */\n\n/********************************************************************************\n\n    Common Constants\n    \n        noErr                   OSErr: function performed properly - no error\n        kNilOptions             OptionBits: all flags false\n        kInvalidID              KernelID: NULL is for pointers as kInvalidID is for ID's\n        kVariableLengthArray    array bounds: variable length array\n\n    Note: kVariableLengthArray was used in array bounds to specify a variable length array,\n          usually the last field in a struct.  Now that the C language supports \n\t\t  the concept of flexible array members, you can instead use: \n\t\t\n\t\tstruct BarList\n\t\t{\n\t\t\tshort\tlistLength;\n\t\t\tBar\t\telements[];\n\t\t};\n\n\t\tHowever, this changes the semantics somewhat, as sizeof( BarList ) contains\n\t\tno space for any of the elements, so to allocate a list with space for\n\t\tthe count elements\n\n\t\tstruct BarList* l = (struct BarList*) malloc( sizeof(BarList) + count * sizeof(Bar) );\n        \n*********************************************************************************/\nenum {\n  noErr                         = 0\n};\n\nenum {\n  kNilOptions                   = 0\n};\n\n#define kInvalidID   0\nenum {\n  kVariableLengthArray  \n#ifdef __has_extension\n   #if __has_extension(enumerator_attributes)\n\t\t__attribute__((deprecated))  \n\t#endif\n#endif\n  = 1\n};\n\nenum {\n  kUnknownType                  = 0x3F3F3F3F /* \"????\" QuickTime 3.0: default unknown ResType or OSType */\n};\n\n\n\n/********************************************************************************\n\n    String Types and Unicode Types\n    \n        UnicodeScalarValue,     A complete Unicode character in UTF-32 format, with\n        UTF32Char               values from 0 through 0x10FFFF (excluding the surrogate\n                                range 0xD800-0xDFFF and certain disallowed values).\n\n        UniChar,                A 16-bit Unicode code value in the default UTF-16 format.\n        UTF16Char               UnicodeScalarValues 0-0xFFFF are expressed in UTF-16\n                                format using a single UTF16Char with the same value.\n                                UnicodeScalarValues 0x10000-0x10FFFF are expressed in\n                                UTF-16 format using a pair of UTF16Chars - one in the\n                                high surrogate range (0xD800-0xDBFF) followed by one in\n                                the low surrogate range (0xDC00-0xDFFF). All of the\n                                characters defined in Unicode versions through 3.0 are\n                                in the range 0-0xFFFF and can be expressed using a single\n                                UTF16Char, thus the term \"Unicode character\" generally\n                                refers to a UniChar = UTF16Char.\n\n        UTF8Char                An 8-bit code value in UTF-8 format. UnicodeScalarValues\n                                0-0x7F are expressed in UTF-8 format using one UTF8Char\n                                with the same value. UnicodeScalarValues above 0x7F are\n                                expressed in UTF-8 format using 2-4 UTF8Chars, all with\n                                values in the range 0x80-0xF4 (UnicodeScalarValues\n                                0x100-0xFFFF use two or three UTF8Chars,\n                                UnicodeScalarValues 0x10000-0x10FFFF use four UTF8Chars).\n\n        UniCharCount            A count of UTF-16 code values in an array or buffer.\n\n        StrNNN                  Pascal string holding up to NNN bytes\n        StringPtr               Pointer to a pascal string\n        StringHandle            Pointer to a StringPtr\n        ConstStringPtr          Pointer to a read-only pascal string\n        ConstStrNNNParam        For function parameters only - means string is const\n        \n        CStringPtr              Pointer to a C string           (in C:  char*)\n        ConstCStringPtr         Pointer to a read-only C string (in C:  const char*)\n        \n    Note: The length of a pascal string is stored as the first byte.\n          A pascal string does not have a termination byte.\n          A pascal string can hold at most 255 bytes of data.\n          The first character in a pascal string is offset one byte from the start of the string. \n          \n          A C string is terminated with a byte of value zero.  \n          A C string has no length limitation.\n          The first character in a C string is the zeroth byte of the string. \n          \n        \n*********************************************************************************/\ntypedef UInt32                          UnicodeScalarValue;\ntypedef UInt32                          UTF32Char;\ntypedef UInt16                          UniChar;\ntypedef UInt16                          UTF16Char;\ntypedef UInt8                           UTF8Char;\ntypedef UniChar *                       UniCharPtr;\ntypedef unsigned long                   UniCharCount;\ntypedef UniCharCount *                  UniCharCountPtr;\ntypedef unsigned char                   Str255[256];\ntypedef unsigned char                   Str63[64];\ntypedef unsigned char                   Str32[33];\ntypedef unsigned char                   Str31[32];\ntypedef unsigned char                   Str27[28];\ntypedef unsigned char                   Str15[16];\n/*\n    The type Str32 is used in many AppleTalk based data structures.\n    It holds up to 32 one byte chars.  The problem is that with the\n    length byte it is 33 bytes long.  This can cause weird alignment\n    problems in structures.  To fix this the type \"Str32Field\" has\n    been created.  It should only be used to hold 32 chars, but\n    it is 34 bytes long so that there are no alignment problems.\n*/\ntypedef unsigned char                   Str32Field[34];\n/*\n    QuickTime 3.0:\n    The type StrFileName is used to make MacOS structs work \n    cross-platform.  For example FSSpec or SFReply previously\n    contained a Str63 field.  They now contain a StrFileName\n    field which is the same when targeting the MacOS but is\n    a 256 char buffer for Win32 and unix, allowing them to\n    contain long file names.\n*/\ntypedef Str63                           StrFileName;\ntypedef unsigned char *                 StringPtr;\ntypedef StringPtr *                     StringHandle;\ntypedef const unsigned char *           ConstStringPtr;\ntypedef const unsigned char *           ConstStr255Param;\ntypedef const unsigned char *           ConstStr63Param;\ntypedef const unsigned char *           ConstStr32Param;\ntypedef const unsigned char *           ConstStr31Param;\ntypedef const unsigned char *           ConstStr27Param;\ntypedef const unsigned char *           ConstStr15Param;\ntypedef ConstStr63Param                 ConstStrFileNameParam;\n#ifdef __cplusplus\ninline unsigned char StrLength(ConstStr255Param string) { return (*string); }\n#else\n#define StrLength(string) (*(unsigned char *)(string))\n#endif  /* defined(__cplusplus) */\n\n#if OLDROUTINENAMES\n#define Length(string) StrLength(string)\n#endif  /* OLDROUTINENAMES */\n\n/********************************************************************************\n\n    Process Manager type ProcessSerialNumber (previously in Processes.h)\n\n*********************************************************************************/\n/* type for unique process identifier */\nstruct ProcessSerialNumber {\n  UInt32              highLongOfPSN;\n  UInt32              lowLongOfPSN;\n};\ntypedef struct ProcessSerialNumber      ProcessSerialNumber;\ntypedef ProcessSerialNumber *           ProcessSerialNumberPtr;\n/********************************************************************************\n\n    Quickdraw Types\n    \n        Point               2D Quickdraw coordinate, range: -32K to +32K\n        Rect                Rectangular Quickdraw area\n        Style               Quickdraw font rendering styles\n        StyleParameter      Style when used as a parameter (historical 68K convention)\n        StyleField          Style when used as a field (historical 68K convention)\n        CharParameter       Char when used as a parameter (historical 68K convention)\n        \n    Note:   The original Macintosh toolbox in 68K Pascal defined Style as a SET.  \n            Both Style and CHAR occupy 8-bits in packed records or 16-bits when \n            used as fields in non-packed records or as parameters. \n        \n*********************************************************************************/\nstruct Point {\n  short               v;\n  short               h;\n};\ntypedef struct Point                    Point;\ntypedef Point *                         PointPtr;\nstruct Rect {\n  short               top;\n  short               left;\n  short               bottom;\n  short               right;\n};\ntypedef struct Rect                     Rect;\ntypedef Rect *                          RectPtr;\nstruct FixedPoint {\n  Fixed               x;\n  Fixed               y;\n};\ntypedef struct FixedPoint               FixedPoint;\nstruct FixedRect {\n  Fixed               left;\n  Fixed               top;\n  Fixed               right;\n  Fixed               bottom;\n};\ntypedef struct FixedRect                FixedRect;\n\ntypedef short                           CharParameter;\nenum {\n  normal                        = 0,\n  bold                          = 1,\n  italic                        = 2,\n  underline                     = 4,\n  outline                       = 8,\n  shadow                        = 0x10,\n  condense                      = 0x20,\n  extend                        = 0x40\n};\n\ntypedef unsigned char                   Style;\ntypedef short                           StyleParameter;\ntypedef Style                           StyleField;\n\n\n/********************************************************************************\n\n    QuickTime TimeBase types (previously in Movies.h)\n    \n        TimeValue           Count of units\n        TimeScale           Units per second\n        CompTimeValue       64-bit count of units (always a struct) \n        TimeValue64         64-bit count of units (long long or struct) \n        TimeBase            An opaque reference to a time base\n        TimeRecord          Package of TimeBase, duration, and scale\n        \n*********************************************************************************/\ntypedef SInt32                          TimeValue;\ntypedef SInt32                          TimeScale;\ntypedef wide                            CompTimeValue;\ntypedef SInt64                          TimeValue64;\ntypedef struct TimeBaseRecord*          TimeBase;\nstruct TimeRecord {\n  CompTimeValue       value;                  /* units (duration or absolute) */\n  TimeScale           scale;                  /* units per second */\n  TimeBase            base;                   /* refernce to the time base */\n};\ntypedef struct TimeRecord               TimeRecord;\n\n/********************************************************************************\n\n    THINK C base objects\n\n        HandleObject        Root class for handle based THINK C++ objects\n        PascalObject        Root class for pascal style objects in THINK C++ \n\n*********************************************************************************/\n#if defined(__SC__) && !defined(__STDC__) && defined(__cplusplus)\n        class __machdl HandleObject {};\n        #if TARGET_CPU_68K\n            class __pasobj PascalObject {};\n        #endif\n#endif\n\n\n/********************************************************************************\n\n    MacOS versioning structures\n    \n        VersRec                 Contents of a 'vers' resource\n        VersRecPtr              Pointer to a VersRecPtr\n        VersRecHndl             Resource Handle containing a VersRec\n        NumVersion              Packed BCD version representation (e.g. \"4.2.1a3\" is 0x04214003)\n        UniversalProcPtr        Pointer to classic 68K code or a RoutineDescriptor\n        \n        ProcHandle              Pointer to a ProcPtr\n        UniversalProcHandle     Pointer to a UniversalProcPtr\n        \n*********************************************************************************/\n#if TARGET_RT_BIG_ENDIAN\nstruct NumVersion {\n                                              /* Numeric version part of 'vers' resource */\n  UInt8               majorRev;               /*1st part of version number in BCD*/\n  UInt8               minorAndBugRev;         /*2nd & 3rd part of version number share a byte*/\n  UInt8               stage;                  /*stage code: dev, alpha, beta, final*/\n  UInt8               nonRelRev;              /*revision level of non-released version*/\n};\ntypedef struct NumVersion               NumVersion;\n#else\nstruct NumVersion {\n                                              /* Numeric version part of 'vers' resource accessable in little endian format */\n  UInt8               nonRelRev;              /*revision level of non-released version*/\n  UInt8               stage;                  /*stage code: dev, alpha, beta, final*/\n  UInt8               minorAndBugRev;         /*2nd & 3rd part of version number share a byte*/\n  UInt8               majorRev;               /*1st part of version number in BCD*/\n};\ntypedef struct NumVersion               NumVersion;\n#endif  /* TARGET_RT_BIG_ENDIAN */\n\nenum {\n                                        /* Version Release Stage Codes */\n  developStage                  = 0x20,\n  alphaStage                    = 0x40,\n  betaStage                     = 0x60,\n  finalStage                    = 0x80\n};\n\nunion NumVersionVariant {\n                                              /* NumVersionVariant is a wrapper so NumVersion can be accessed as a 32-bit value */\n  NumVersion          parts;\n  UInt32              whole;\n};\ntypedef union NumVersionVariant         NumVersionVariant;\ntypedef NumVersionVariant *             NumVersionVariantPtr;\ntypedef NumVersionVariantPtr *          NumVersionVariantHandle;\nstruct VersRec {\n                                              /* 'vers' resource format */\n  NumVersion          numericVersion;         /*encoded version number*/\n  short               countryCode;            /*country code from intl utilities*/\n  Str255              shortVersion;           /*version number string - worst case*/\n  Str255              reserved;               /*longMessage string packed after shortVersion*/\n};\ntypedef struct VersRec                  VersRec;\ntypedef VersRec *                       VersRecPtr;\ntypedef VersRecPtr *                    VersRecHndl;\n/*********************************************************************************\n\n    Old names for types\n        \n*********************************************************************************/\ntypedef UInt8                           Byte;\ntypedef SInt8                           SignedByte;\ntypedef wide *                          WidePtr;\ntypedef UnsignedWide *                  UnsignedWidePtr;\ntypedef Float80                         extended80;\ntypedef Float96                         extended96;\ntypedef SInt8                           VHSelect;\n/*********************************************************************************\n\n    Debugger functions\n    \n*********************************************************************************/\n/*\n *  Debugger()\n *  \n *  Availability:\n *    Mac OS X:         in version 10.0 and later in CoreServices.framework\n *    CarbonLib:        in CarbonLib 1.0 and later\n *    Non-Carbon CFM:   in InterfaceLib 7.1 and later\n */\nextern void \nDebugger(void)                                                __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);\n\n\n/*\n *  DebugStr()\n *  \n *  Availability:\n *    Mac OS X:         in version 10.0 and later in CoreServices.framework\n *    CarbonLib:        in CarbonLib 1.0 and later\n *    Non-Carbon CFM:   in InterfaceLib 7.1 and later\n */\nextern void \nDebugStr(ConstStr255Param debuggerMsg)                        __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);\n\n\n/*\n *  debugstr()\n *  \n *  Availability:\n *    Mac OS X:         not available\n *    CarbonLib:        not available\n *    Non-Carbon CFM:   in InterfaceLib 7.1 and later\n */\n\n\n#if TARGET_CPU_PPC\n/* Only for Mac OS native drivers */\n/*\n *  SysDebug()\n *  \n *  Availability:\n *    Mac OS X:         not available\n *    CarbonLib:        not available\n *    Non-Carbon CFM:   in DriverServicesLib 1.0 and later\n */\n\n\n/*\n *  SysDebugStr()\n *  \n *  Availability:\n *    Mac OS X:         not available\n *    CarbonLib:        not available\n *    Non-Carbon CFM:   in DriverServicesLib 1.0 and later\n */\n\n\n#endif  /* TARGET_CPU_PPC */\n\n/* SADE break points */\n/*\n *  SysBreak()\n *  \n *  Availability:\n *    Mac OS X:         in version 10.0 and later in CoreServices.framework\n *    CarbonLib:        in CarbonLib 1.0 and later\n *    Non-Carbon CFM:   in InterfaceLib 7.1 and later\n */\nextern void \nSysBreak(void)                                                __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);\n\n\n/*\n *  SysBreakStr()\n *  \n *  Availability:\n *    Mac OS X:         in version 10.0 and later in CoreServices.framework\n *    CarbonLib:        in CarbonLib 1.0 and later\n *    Non-Carbon CFM:   in InterfaceLib 7.1 and later\n */\nextern void \nSysBreakStr(ConstStr255Param debuggerMsg)                     __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);\n\n\n/*\n *  SysBreakFunc()\n *  \n *  Availability:\n *    Mac OS X:         in version 10.0 and later in CoreServices.framework\n *    CarbonLib:        in CarbonLib 1.0 and later\n *    Non-Carbon CFM:   in InterfaceLib 7.1 and later\n */\nextern void \nSysBreakFunc(ConstStr255Param debuggerMsg)                    __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_8, __IPHONE_NA, __IPHONE_NA);\n\n\n/* old names for Debugger and DebugStr */\n#if OLDROUTINENAMES && TARGET_CPU_68K\n    #define Debugger68k()   Debugger()\n    #define DebugStr68k(s)  DebugStr(s)\n#endif\n\n\n#pragma pack(pop)\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* __MACTYPES__ */\n\n"
  },
  {
    "path": "basic-headers/TargetConditionals.h",
    "content": "/*\n * Copyright (c) 2000-2014 by Apple Inc.. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n \n/*\n     File:       TargetConditionals.h\n \n     Contains:   Autoconfiguration of TARGET_ conditionals for Mac OS X and iPhone\n     \n                 Note:  TargetConditionals.h in 3.4 Universal Interfaces works\n                        with all compilers.  This header only recognizes compilers\n                        known to run on Mac OS X.\n  \n*/\n\n#ifndef __TARGETCONDITIONALS__\n#define __TARGETCONDITIONALS__\n/****************************************************************************************************\n\n    TARGET_CPU_*    \n    These conditionals specify which microprocessor instruction set is being\n    generated.  At most one of these is true, the rest are false.\n\n        TARGET_CPU_PPC          - Compiler is generating PowerPC instructions for 32-bit mode\n        TARGET_CPU_PPC64        - Compiler is generating PowerPC instructions for 64-bit mode\n        TARGET_CPU_68K          - Compiler is generating 680x0 instructions\n        TARGET_CPU_X86          - Compiler is generating x86 instructions\n        TARGET_CPU_ARM          - Compiler is generating ARM instructions\n        TARGET_CPU_MIPS         - Compiler is generating MIPS instructions\n        TARGET_CPU_SPARC        - Compiler is generating Sparc instructions\n        TARGET_CPU_ALPHA        - Compiler is generating Dec Alpha instructions\n\n\n    TARGET_OS_* \n    These conditionals specify in which Operating System the generated code will\n    run.  Indention is used to show which conditionals are evolutionary subclasses.  \n    \n    The MAC/WIN32/UNIX conditionals are mutually exclusive.\n    The IOS/TV/WATCH conditionals are mutually exclusive.\n    \n    \n        TARGET_OS_WIN32           - Generated code will run under 32-bit Windows\n        TARGET_OS_UNIX            - Generated code will run under some Unix (not OSX) \n        TARGET_OS_MAC             - Generated code will run under Mac OS X variant\n           TARGET_OS_OSX          - Generated code will run under OS X devices\n           TARGET_OS_IPHONE          - Generated code for firmware, devices, or simulator\n              TARGET_OS_IOS             - Generated code will run under iOS \n              TARGET_OS_TV              - Generated code will run under Apple TV OS\n              TARGET_OS_WATCH           - Generated code will run under Apple Watch OS\n                 TARGET_OS_BRIDGE          - Generated code will run under Bridge devices\n           TARGET_OS_SIMULATOR      - Generated code will run under a simulator\n           TARGET_OS_EMBEDDED       - Generated code for firmware\n       \n        TARGET_IPHONE_SIMULATOR   - DEPRECATED: Same as TARGET_OS_SIMULATOR\n        TARGET_OS_NANO            - DEPRECATED: Same as TARGET_OS_WATCH\n\n    TARGET_RT_* \n    These conditionals specify in which runtime the generated code will\n    run. This is needed when the OS and CPU support more than one runtime\n    (e.g. Mac OS X supports CFM and mach-o).\n\n        TARGET_RT_LITTLE_ENDIAN - Generated code uses little endian format for integers\n        TARGET_RT_BIG_ENDIAN    - Generated code uses big endian format for integers    \n        TARGET_RT_64_BIT        - Generated code uses 64-bit pointers    \n        TARGET_RT_MAC_CFM       - TARGET_OS_MAC is true and CFM68K or PowerPC CFM (TVectors) are used\n        TARGET_RT_MAC_MACHO     - TARGET_OS_MAC is true and Mach-O/dlyd runtime is used\n        \n\n****************************************************************************************************/\n\n\n/*\n *    gcc based compiler used on Mac OS X\n */\n#if defined(__GNUC__) && ( defined(__APPLE_CPP__) || defined(__APPLE_CC__) || defined(__MACOS_CLASSIC__) )\n    #define TARGET_OS_MAC               1\n    #define TARGET_OS_WIN32             0\n    #define TARGET_OS_UNIX              0\n    #define TARGET_OS_OSX               1\n    #define TARGET_OS_IPHONE            0\n    #define TARGET_OS_IOS               0\n    #define TARGET_OS_WATCH             0\n    #define TARGET_OS_BRIDGE            0\n    #define TARGET_OS_TV                0\n    #define TARGET_OS_SIMULATOR         0\n    #define TARGET_OS_EMBEDDED          0 \n    #define TARGET_IPHONE_SIMULATOR     TARGET_OS_SIMULATOR /* deprecated */\n    #define TARGET_OS_NANO              TARGET_OS_WATCH /* deprecated */ \n    #if defined(__ppc__) \n        #define TARGET_CPU_PPC          1\n        #define TARGET_CPU_PPC64        0\n        #define TARGET_CPU_68K          0\n        #define TARGET_CPU_X86          0\n        #define TARGET_CPU_X86_64       0\n        #define TARGET_CPU_ARM          0\n        #define TARGET_CPU_ARM64        0\n        #define TARGET_CPU_MIPS         0\n        #define TARGET_CPU_SPARC        0   \n        #define TARGET_CPU_ALPHA        0\n        #define TARGET_RT_LITTLE_ENDIAN 0\n        #define TARGET_RT_BIG_ENDIAN    1\n        #define TARGET_RT_64_BIT        0\n        #ifdef __MACOS_CLASSIC__\n           #define TARGET_RT_MAC_CFM    1\n           #define TARGET_RT_MAC_MACHO  0\n        #else\n           #define TARGET_RT_MAC_CFM    0\n           #define TARGET_RT_MAC_MACHO  1\n       #endif\n    #elif defined(__ppc64__) \n        #define TARGET_CPU_PPC          0\n        #define TARGET_CPU_PPC64        1\n        #define TARGET_CPU_68K          0\n        #define TARGET_CPU_X86          0\n        #define TARGET_CPU_X86_64       0\n        #define TARGET_CPU_ARM          0\n        #define TARGET_CPU_ARM64        0\n        #define TARGET_CPU_MIPS         0\n        #define TARGET_CPU_SPARC        0   \n        #define TARGET_CPU_ALPHA        0\n        #define TARGET_RT_LITTLE_ENDIAN 0\n        #define TARGET_RT_BIG_ENDIAN    1\n        #define TARGET_RT_64_BIT        1\n        #define TARGET_RT_MAC_CFM       0\n        #define TARGET_RT_MAC_MACHO     1\n    #elif defined(__i386__) \n        #define TARGET_CPU_PPC          0\n        #define TARGET_CPU_PPC64        0\n        #define TARGET_CPU_68K          0\n        #define TARGET_CPU_X86          1\n        #define TARGET_CPU_X86_64       0\n        #define TARGET_CPU_ARM          0\n        #define TARGET_CPU_ARM64        0\n        #define TARGET_CPU_MIPS         0\n        #define TARGET_CPU_SPARC        0\n        #define TARGET_CPU_ALPHA        0\n        #define TARGET_RT_MAC_CFM       0\n        #define TARGET_RT_MAC_MACHO     1\n        #define TARGET_RT_LITTLE_ENDIAN 1\n        #define TARGET_RT_BIG_ENDIAN    0\n        #define TARGET_RT_64_BIT        0\n    #elif defined(__x86_64__) \n        #define TARGET_CPU_PPC          0\n        #define TARGET_CPU_PPC64        0\n        #define TARGET_CPU_68K          0\n        #define TARGET_CPU_X86          0\n        #define TARGET_CPU_X86_64       1\n        #define TARGET_CPU_ARM          0\n        #define TARGET_CPU_ARM64        0\n        #define TARGET_CPU_MIPS         0\n        #define TARGET_CPU_SPARC        0\n        #define TARGET_CPU_ALPHA        0\n        #define TARGET_RT_MAC_CFM       0\n        #define TARGET_RT_MAC_MACHO     1\n        #define TARGET_RT_LITTLE_ENDIAN 1\n        #define TARGET_RT_BIG_ENDIAN    0\n        #define TARGET_RT_64_BIT        1\n    #elif defined(__arm__) \n        #define TARGET_CPU_PPC          0\n        #define TARGET_CPU_PPC64        0\n        #define TARGET_CPU_68K          0\n        #define TARGET_CPU_X86          0\n        #define TARGET_CPU_X86_64       0\n        #define TARGET_CPU_ARM          1\n        #define TARGET_CPU_ARM64        0\n        #define TARGET_CPU_MIPS         0\n        #define TARGET_CPU_SPARC        0\n        #define TARGET_CPU_ALPHA        0\n        #define TARGET_RT_MAC_CFM       0\n        #define TARGET_RT_MAC_MACHO     1\n        #define TARGET_RT_LITTLE_ENDIAN 1\n        #define TARGET_RT_BIG_ENDIAN    0\n        #define TARGET_RT_64_BIT        0\n    #elif defined(__arm64__)\n        #define TARGET_CPU_PPC          0\n        #define TARGET_CPU_PPC64        0\n        #define TARGET_CPU_68K          0\n        #define TARGET_CPU_X86          0\n        #define TARGET_CPU_X86_64       0\n        #define TARGET_CPU_ARM          0\n        #define TARGET_CPU_ARM64        1\n        #define TARGET_CPU_MIPS         0\n        #define TARGET_CPU_SPARC        0\n        #define TARGET_CPU_ALPHA        0\n        #define TARGET_RT_MAC_CFM       0\n        #define TARGET_RT_MAC_MACHO     1\n        #define TARGET_RT_LITTLE_ENDIAN 1\n        #define TARGET_RT_BIG_ENDIAN    0\n        #define TARGET_RT_64_BIT        1\n    #else\n        #error unrecognized GNU C compiler\n    #endif\n\n\n\n/*\n *   CodeWarrior compiler from Metrowerks/Motorola\n */\n#elif defined(__MWERKS__)\n    #define TARGET_OS_MAC               1\n    #define TARGET_OS_WIN32             0\n    #define TARGET_OS_UNIX              0\n    #define TARGET_OS_EMBEDDED          0\n    #if defined(__POWERPC__)\n        #define TARGET_CPU_PPC          1\n        #define TARGET_CPU_PPC64        0\n        #define TARGET_CPU_68K          0\n        #define TARGET_CPU_X86          0\n        #define TARGET_CPU_MIPS         0\n        #define TARGET_CPU_SPARC        0\n        #define TARGET_CPU_ALPHA        0\n        #define TARGET_RT_LITTLE_ENDIAN 0\n        #define TARGET_RT_BIG_ENDIAN    1\n    #elif defined(__INTEL__)\n        #define TARGET_CPU_PPC          0\n        #define TARGET_CPU_PPC64        0\n        #define TARGET_CPU_68K          0\n        #define TARGET_CPU_X86          1\n        #define TARGET_CPU_MIPS         0\n        #define TARGET_CPU_SPARC        0\n        #define TARGET_CPU_ALPHA        0\n        #define TARGET_RT_LITTLE_ENDIAN 1\n        #define TARGET_RT_BIG_ENDIAN    0\n    #else\n        #error unknown Metrowerks CPU type\n    #endif\n    #define TARGET_RT_64_BIT            0\n    #ifdef __MACH__\n        #define TARGET_RT_MAC_CFM       0\n        #define TARGET_RT_MAC_MACHO     1\n    #else\n        #define TARGET_RT_MAC_CFM       1\n        #define TARGET_RT_MAC_MACHO     0\n    #endif\n\n/*\n *   unknown compiler\n */\n#else\n    #if defined(TARGET_CPU_PPC) && TARGET_CPU_PPC\n        #define TARGET_CPU_PPC64    0\n        #define TARGET_CPU_68K      0\n        #define TARGET_CPU_X86      0\n        #define TARGET_CPU_X86_64   0\n        #define TARGET_CPU_ARM      0\n        #define TARGET_CPU_ARM64    0\n        #define TARGET_CPU_MIPS     0\n        #define TARGET_CPU_SPARC    0\n        #define TARGET_CPU_ALPHA    0\n    #elif defined(TARGET_CPU_PPC64) && TARGET_CPU_PPC64\n        #define TARGET_CPU_PPC      0\n        #define TARGET_CPU_68K      0\n        #define TARGET_CPU_X86      0\n        #define TARGET_CPU_X86_64   0\n        #define TARGET_CPU_ARM      0\n        #define TARGET_CPU_ARM64    0\n        #define TARGET_CPU_MIPS     0\n        #define TARGET_CPU_SPARC    0\n        #define TARGET_CPU_ALPHA    0\n    #elif defined(TARGET_CPU_X86) && TARGET_CPU_X86\n        #define TARGET_CPU_PPC      0\n        #define TARGET_CPU_PPC64    0\n        #define TARGET_CPU_X86_64   0\n        #define TARGET_CPU_68K      0\n        #define TARGET_CPU_ARM      0\n        #define TARGET_CPU_ARM64    0\n        #define TARGET_CPU_MIPS     0\n        #define TARGET_CPU_SPARC    0\n        #define TARGET_CPU_ALPHA    0\n    #elif defined(TARGET_CPU_X86_64) && TARGET_CPU_X86_64\n        #define TARGET_CPU_PPC      0\n        #define TARGET_CPU_PPC64    0\n        #define TARGET_CPU_X86      0\n        #define TARGET_CPU_68K      0\n        #define TARGET_CPU_ARM      0\n        #define TARGET_CPU_ARM64    0\n        #define TARGET_CPU_MIPS     0\n        #define TARGET_CPU_SPARC    0\n        #define TARGET_CPU_ALPHA    0\n    #elif defined(TARGET_CPU_ARM) && TARGET_CPU_ARM\n        #define TARGET_CPU_PPC      0\n        #define TARGET_CPU_PPC64    0\n        #define TARGET_CPU_X86      0\n        #define TARGET_CPU_X86_64   0\n        #define TARGET_CPU_68K      0\n        #define TARGET_CPU_ARM64    0\n        #define TARGET_CPU_MIPS     0\n        #define TARGET_CPU_SPARC    0\n        #define TARGET_CPU_ALPHA    0\n    #elif defined(TARGET_CPU_ARM64) && TARGET_CPU_ARM64\n        #define TARGET_CPU_PPC      0\n        #define TARGET_CPU_PPC64    0\n        #define TARGET_CPU_X86      0\n        #define TARGET_CPU_X86_64   0\n        #define TARGET_CPU_68K      0\n        #define TARGET_CPU_ARM      0\n        #define TARGET_CPU_MIPS     0\n        #define TARGET_CPU_SPARC    0\n        #define TARGET_CPU_ALPHA    0\n    #else\n        /*\n            NOTE:   If your compiler errors out here then support for your compiler \n            has not yet been added to TargetConditionals.h.  \n            \n            TargetConditionals.h is designed to be plug-and-play.  It auto detects\n            which compiler is being run and configures the TARGET_ conditionals\n            appropriately.  \n            \n            The short term work around is to set the TARGET_CPU_ and TARGET_OS_\n            on the command line to the compiler (e.g. -DTARGET_CPU_MIPS=1 -DTARGET_OS_UNIX=1)\n            \n            The long term solution is to add a new case to this file which\n            auto detects your compiler and sets up the TARGET_ conditionals.\n            Then submit the changes to Apple Computer.\n        */\n        #error TargetConditionals.h: unknown compiler (see comment above)\n        #define TARGET_CPU_PPC    0\n        #define TARGET_CPU_68K    0\n        #define TARGET_CPU_X86    0\n        #define TARGET_CPU_ARM    0\n        #define TARGET_CPU_ARM64  0\n        #define TARGET_CPU_MIPS   0\n        #define TARGET_CPU_SPARC  0\n        #define TARGET_CPU_ALPHA  0\n    #endif\n    #define TARGET_OS_MAC                1\n    #define TARGET_OS_WIN32              0\n    #define TARGET_OS_UNIX               0\n    #define TARGET_OS_EMBEDDED           0\n    #if TARGET_CPU_PPC || TARGET_CPU_PPC64\n        #define TARGET_RT_BIG_ENDIAN     1\n        #define TARGET_RT_LITTLE_ENDIAN  0\n    #else\n        #define TARGET_RT_BIG_ENDIAN     0\n        #define TARGET_RT_LITTLE_ENDIAN  1\n    #endif\n    #if TARGET_CPU_PPC64 || TARGET_CPU_X86_64\n        #define TARGET_RT_64_BIT         1\n    #else\n        #define TARGET_RT_64_BIT         0\n    #endif\n    #ifdef __MACH__\n        #define TARGET_RT_MAC_MACHO      1\n        #define TARGET_RT_MAC_CFM        0\n    #else\n        #define TARGET_RT_MAC_MACHO      0\n        #define TARGET_RT_MAC_CFM        1\n    #endif\n    \n#endif\n\n#endif  /* __TARGETCONDITIONALS__ */\n"
  },
  {
    "path": "ci/Debian.Dockerfile",
    "content": "# this Dockerfile must be built using the following command:\n#     docker build -f ../ci/Debian.Dockerfile .\n# this command must be run while in the `debian` directory in the root of the repo.\nARG BASE_IMAGE=ubuntu:jammy\nFROM $BASE_IMAGE\nLABEL name=darling-build-image version=0.1.0\nARG DEBIAN_FRONTEND=\"noninteractive\"\nRUN cp /etc/apt/sources.list /etc/apt/sources.list.d/sources-src.list && sed -i 's|deb http|deb-src http|g' /etc/apt/sources.list.d/sources-src.list\nRUN apt-get -y update\nRUN apt-get -y install cmake clang bison flex libfuse-dev libudev-dev pkg-config libc6-dev-i386 gcc-multilib libcairo2-dev libgl1-mesa-dev libglu1-mesa-dev libtiff5-dev libfreetype6-dev git git-lfs libelf-dev libxml2-dev libegl1-mesa-dev libfontconfig1-dev libbsd-dev libxrandr-dev libxcursor-dev libgif-dev libavutil-dev libpulse-dev libavformat-dev libavcodec-dev libswresample-dev libdbus-1-dev libxkbfile-dev libssl-dev llvm-dev libvulkan-dev && apt clean -y\nRUN apt-get -y install lsb-release && apt clean -y\nRUN apt-get -y install devscripts equivs debhelper && apt clean -y\nCOPY control /control\nRUN mk-build-deps -i -r -t \"apt-get --no-install-recommends -y\" /control && apt clean -y\nRUN rm /control\nRUN apt-get -y install ccache && apt clean -y\nRUN apt-get -y install wget gpg ca-certificates && apt clean -y\n\nRUN if [ \"$(clang --version | head -n 1 | cut -d ' ' -f 3 | cut -d '.' -f 1)\" -lt 11 ]; then \\\n      wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - && \\\n      echo \"deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs) main\" >> /etc/apt/sources.list.d/llvm.list && \\\n      echo \"deb-src http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs) main\" >> /etc/apt/sources.list.d/llvm.list && \\\n      apt-get update; \\\n    fi\n\nRUN if [ \"$(cmake --version | head -n 1 | cut -d ' ' -f 3 | awk '{print $1\"\\n3.20\"}' | sort -Vr | head -n 1)\" = \"3.20\" ]; then \\\n      wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null && \\\n      echo \"deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ $(lsb_release -cs) main\" | tee /etc/apt/sources.list.d/kitware.list >/dev/null && \\\n      apt-get update; \\\n    fi\n\nRUN apt-get install -y --only-upgrade clang cmake && apt clean -y\n\nARG CI_UID=1111\nARG CI_GID=1111\nRUN groupadd -g \"${CI_GID}\" ci || true\nRUN useradd -u \"${CI_UID}\" -g \"${CI_GID}\" -m ci || true\nRUN mkdir -p /ccache\nRUN mkdir -p /src/mnt\nRUN chown -R ${CI_UID}:${CI_GID} /src\nUSER ${CI_UID}:${CI_GID}\n"
  },
  {
    "path": "ci/Jenkinsfile",
    "content": "pipeline {\n\tagent {\n\t\tdocker {\n\t\t\timage 'registry.git.facekapow.dev/darling-build-image-top:latest'\n\t\t\tregistryUrl 'https://registry.git.facekapow.dev'\n\t\t\talwaysPull true\n\t\t\targs '-u ci:ci -v /var/run/docker.sock:/var/run/docker.sock --group-add docker'\n\t\t\tlabel 'darling'\n\t\t}\n\t}\n\n\tparameters {\n\t\tbooleanParam(name: 'DEB', defaultValue: true, description: 'If true, build Debian packages.')\n\t\tbooleanParam(name: 'RPM', defaultValue: true, description: 'If true, build RPM packages.')\n\t}\n\n\ttriggers {\n\t\tgithubPush()\n\t}\n\n\tenvironment {\n\t\tESCAPED_JOB_NAME = sh(script: 'echo \"${JOB_NAME}\" | sed \\'s/\\\\//-/g\\'', returnStdout: true).trim()\n\t\tCCACHE_DIR = credentials('darling-ccache-dir')\n\t}\n\n\toptions {\n\t\tskipDefaultCheckout()\n\t\tdisableConcurrentBuilds abortPrevious: true\n\t}\n\n\tstages {\n\t\tstage('Start Job') {\n\t\t\tsteps {\n\t\t\t\tscmSkip(deleteBuild: true, skipPattern:'.*\\\\[ci skip\\\\].*')\n\n\t\t\t\tdir('source') {\n\t\t\t\t\tcheckout scm\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tstage('Prepare') {\n\t\t\tsteps {\n\t\t\t\tdir('source') {\n\t\t\t\t\tsh 'git submodule update --init --recursive'\n\t\t\t\t\tsh 'cd src/external/swift && git lfs install && git lfs pull'\n\t\t\t\t\ttouch '../.submodules-cloned'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tstage('Build Debian') {\n\t\t\twhen { expression { params.DEB } }\n\t\t\tagent {\n\t\t\t\tdocker {\n\t\t\t\t\timage 'registry.git.facekapow.dev/darling-build-image:latest'\n\t\t\t\t\tregistryUrl 'https://registry.git.facekapow.dev'\n\t\t\t\t\talwaysPull true\n\t\t\t\t\targs '-u ci:ci -v ${WORKSPACE}/source:/src/mnt:rw -v ${CCACHE_DIR}:/ccache:rw'\n\t\t\t\t\tlabel 'darling'\n\t\t\t\t\treuseNode true\n\t\t\t\t}\n\t\t\t}\n\t\t\tenvironment {\n\t\t\t\tDEB_DISTRO = sh(script: 'lsb_release -cs', returnStdout: true).trim()\n\t\t\t\tCCACHE_DIR = '/ccache'\n\t\t\t\tCCACHE_BASEDIR = '/src/mnt'\n\t\t\t}\n\t\t\tsteps {\n\t\t\t\t//sh 'tools/debian/make-deb --dsc'\n\t\t\t\tsh '''#!/bin/bash\n\t\t\t\t\tpushd /src/mnt\n\t\t\t\t\t\ttools/debian/make-deb\n\t\t\t\t\tpopd\n\t\t\t\t'''\n\n\t\t\t\tsh 'rm -rf out-deb'\n\t\t\t\tsh 'mkdir out-deb'\n\n\t\t\t\tdir('out-deb') {\n\t\t\t\t\tsh 'mv /src/*.deb ./'\n\t\t\t\t}\n\n\t\t\t\tarchiveArtifacts artifacts: 'out-deb/**/*', fingerprint: true\n\t\t\t}\n\t\t}\n\n\t\tstage('Build RPM') {\n\t\t\twhen { expression { params.RPM } }\n\t\t\tagent {\n\t\t\t\tdocker {\n\t\t\t\t\timage 'registry.git.facekapow.dev/darling-build-image-fedora:latest'\n\t\t\t\t\tregistryUrl 'https://registry.git.facekapow.dev'\n\t\t\t\t\talwaysPull true\n\t\t\t\t\targs '-v ${WORKSPACE}/source:/src:ro -v ${CCACHE_DIR}:/ccache:rw'\n\t\t\t\t\tlabel 'darling'\n\t\t\t\t\treuseNode true\n\t\t\t\t}\n\t\t\t}\n\t\t\tenvironment {\n\t\t\t\tCCACHE_DIR = '/ccache'\n\t\t\t\tCCACHE_BASEDIR = '/home/ci/rpmbuild/BUILD/darling'\n\t\t\t}\n\t\t\tsteps {\n\t\t\t\tsh 'bash -xv /src/rpm/build.bsh'\n\n\t\t\t\tsh 'rm -rf out-rpm'\n\t\t\t\tsh 'mkdir out-rpm'\n\n\t\t\t\tdir('out-rpm') {\n\t\t\t\t\tsh 'mv ${HOME}/rpmbuild/RPMS/x86_64/*.rpm ./'\n\t\t\t\t}\n\n\t\t\t\tarchiveArtifacts artifacts: 'out-rpm/**/*', fingerprint: true\n\t\t\t}\n\t\t}\n\t}\n\n\tpost {\n\t\tcleanup {\n\t\t\tscript {\n\t\t\t\tif (!fileExists('.submodules-cloned')) {\n\t\t\t\t\tsh 'rm -rf source'\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "ci/RPM.Dockerfile",
    "content": "# this Dockerfile must be built using the following command:\n#     docker build -f ../ci/RPM.Dockerfile .\n# this command must be run while in the `rpm` directory in the root of the repo.\nARG BASE_IMAGE=fedora:37\nFROM $BASE_IMAGE\nLABEL name=darling-build-image-fedora version=0.1.0\nARG CI_UID=1111\nARG CI_GID=1111\nRUN dnf install -y rpm-build dnf-utils rpmdevtools git; \\\n    source /etc/os-release; \\\n    dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-${VERSION_ID}.noarch.rpm; \\\n    dnf clean all\nRUN groupadd -g \"${CI_GID}\" ci\nRUN useradd -u \"${CI_UID}\" -g \"${CI_GID}\" -m ci\nCOPY SPECS/darling.spec /darling.spec\nRUN yum-builddep -y /darling.spec; \\\n    dnf clean all\nRUN rm /darling.spec\nRUN dnf install -y sudo; \\\n    dnf clean all\nRUN echo 'ci ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers\nRUN mkdir -p /src\nRUN dnf install -y ccache; \\\n    dnf clean all\nRUN mkdir -p /ccache\nUSER ci\n"
  },
  {
    "path": "ci/top.Dockerfile",
    "content": "FROM alpine:latest\nLABEL name=darling-build-image-top version=0.1.0\nARG DOCKER_GID=109\nARG CI_UID=1111\nARG CI_GID=1111\nRUN addgroup -g ${DOCKER_GID} -S docker\nRUN apk add docker git git-lfs sed\nRUN addgroup -g \"${CI_GID}\" ci\nRUN adduser -u \"${CI_UID}\" -G ci --disabled-password ci\nRUN addgroup ci docker\nUSER ci\n"
  },
  {
    "path": "cmake/FindFFmpeg.cmake",
    "content": "# - Try to find ffmpeg libraries (libavcodec, libavformat and libavutil)\n# Once done this will define\n#\n# FFMPEG_FOUND - system has ffmpeg or libav\n# FFMPEG_INCLUDE_DIR - the ffmpeg include directory\n# FFMPEG_LIBRARIES - Link these to use ffmpeg\n# FFMPEG_LIBAVCODEC\n# FFMPEG_LIBAVFORMAT\n# FFMPEG_LIBAVUTIL\n#\n# Copyright (c) 2008 Andreas Schneider <mail@cynapses.org>\n# Modified for other libraries by Lasse Kärkkäinen <tronic>\n# Modified for Hedgewars by Stepik777\n# Modified for FFmpeg-example Tuukka Pasanen 2018\n#\n# Redistribution and use is allowed according to the terms of the New\n# BSD license.\n#\n\ninclude(FindPackageHandleStandardArgs)\n\nif(FFMPEG_LIBRARIES AND FFMPEG_INCLUDE_DIR)\n  # in cache already\n  set(FFMPEG_FOUND TRUE)\nelse()\n  # use pkg-config to get the directories and then use these values\n  # in the FIND_PATH() and FIND_LIBRARY() calls\n  find_package(PkgConfig)\n  if(PKG_CONFIG_FOUND)\n    pkg_check_modules(_FFMPEG_AVCODEC libavcodec)\n    pkg_check_modules(_FFMPEG_AVFORMAT libavformat)\n    pkg_check_modules(_FFMPEG_AVUTIL libavutil)\n  endif()\n\n  find_path(FFMPEG_AVCODEC_INCLUDE_DIR\n    NAMES libavcodec/avcodec.h\n    PATHS ${_FFMPEG_AVCODEC_INCLUDE_DIRS}\n      /usr/include\n      /usr/local/include\n      /opt/local/include\n      /sw/include\n    PATH_SUFFIXES ffmpeg libav)\n\n  find_library(FFMPEG_LIBAVCODEC\n    NAMES avcodec\n    PATHS ${_FFMPEG_AVCODEC_LIBRARY_DIRS}\n      /usr/lib\n      /usr/local/lib\n      /opt/local/lib\n      /sw/lib)\n\n  find_library(FFMPEG_LIBAVFORMAT\n    NAMES avformat\n    PATHS ${_FFMPEG_AVFORMAT_LIBRARY_DIRS}\n      /usr/lib\n      /usr/local/lib\n      /opt/local/lib\n      /sw/lib)\n\n  find_library(FFMPEG_LIBAVUTIL\n    NAMES avutil\n    PATHS ${_FFMPEG_AVUTIL_LIBRARY_DIRS}\n      /usr/lib\n      /usr/local/lib\n      /opt/local/lib\n      /sw/lib)\n\n  if(FFMPEG_LIBAVCODEC AND FFMPEG_LIBAVFORMAT)\n    set(FFMPEG_FOUND TRUE)\n  endif()\n\n  if(FFMPEG_FOUND)\n    set(FFMPEG_INCLUDE_DIR ${FFMPEG_AVCODEC_INCLUDE_DIR})\n    set(FFMPEG_LIBRARIES\n      ${FFMPEG_LIBAVCODEC}\n      ${FFMPEG_LIBAVFORMAT}\n      ${FFMPEG_LIBAVUTIL})\n  endif()\n\n  if(FFMPEG_FOUND)\n    if(NOT FFMPEG_FIND_QUIETLY)\n      message(STATUS\n      \"Found FFMPEG or Libav: ${FFMPEG_LIBRARIES}, ${FFMPEG_INCLUDE_DIR}\")\n    endif()\n  else()\n      message(FATAL_ERROR\n      \"Could not find libavcodec or libavformat or libavutil\")\n  endif()\nendif()\n\nfind_package_handle_standard_args(FFmpeg\nFOUND_VAR FFMPEG_FOUND\nREQUIRED_VARS\n\tFFMPEG_LIBRARIES\n\tFFMPEG_INCLUDE_DIR\nVERSION_VAR FFMPEG_VERSION\n)\n"
  },
  {
    "path": "cmake/FindPulseAudio.cmake",
    "content": "\ninclude(FindPackageHandleStandardArgs)\n\nfind_path(PULSEAUDIO_INCLUDE_DIRS\n\tNAMES pulse/pulseaudio.h\n\tDOC \"PulseAudio include directory\"\n)\n\nfind_library(PULSEAUDIO_LIBRARIES\n\tNAMES pulse\n\tDOC \"PulseAudio library\"\n)\n\nfind_package_handle_standard_args(PulseAudio\n\tREQUIRED_VARS PULSEAUDIO_LIBRARIES PULSEAUDIO_INCLUDE_DIRS VERSION_VAR PULSEAUDIO_VERSION\n\tFAIL_MESSAGE \"Could NOT find PulseAudio!\")\n\nmark_as_advanced(PULSEAUDIO_INCLUDE_DIRS PULSEAUDIO_LIBRARIES)\n"
  },
  {
    "path": "cmake/FindSetcap.cmake",
    "content": "include(FindPackageHandleStandardArgs)\n\nfind_program(SETCAP_EXECUTABLE\n\tNAMES setcap\n\tPATHS /bin /usr/bin /sbin /usr/sbin\n)\n\nfind_package_handle_standard_args(Setcap DEFAULT_MSG SETCAP_EXECUTABLE)\n\nmark_as_advanced(SETCAP_EXECUTABLE)\n\n"
  },
  {
    "path": "cmake/InstallSymlink.cmake",
    "content": "# This macro can be used to install symlinks, which turns out to be\n# non-trivial due to CMake version differences and limitations on how\n# files can be installed when building binary packages.\n#\n# The rule for binary packaging is that files (including symlinks) must\n# be installed with the standard CMake install() macro.\n#\n# The rule for non-binary packaging is that CMake 2.6 cannot install()\n# symlinks, but can create the symlink at install-time via scripting.\n# Though, we assume that CMake 2.6 isn't going to be used to generate\n# packages because versions later than 2.8.3 are superior for that purpose.\n#\n#   _filepath: the absolute path to the file to symlink\n#   _sympath: absolute path of the installed symlink\n\nmacro(InstallSymlink _filepath _sympath)\n    cmake_parse_arguments(INSTALL_SYMLINK \"EXCLUDE_FROM_ALL\" \"COMPONENT\" \"\" ${ARGN})\n\n    get_filename_component(_symname ${_sympath} NAME)\n    get_filename_component(_installdir ${_sympath} PATH)\n\n    if (INSTALL_SYMLINK_EXCLUDE_FROM_ALL)\n        set(EXCLUDE_FROM_ALL_ARG \"EXCLUDE_FROM_ALL\")\n    else()\n        set(EXCLUDE_FROM_ALL_ARG \"\")\n    endif()\n\n    if (DEFINED INSTALL_SYMLINK_COMPONENT)\n        set(COMPONENT_ARG COMPONENT \"${INSTALL_SYMLINK_COMPONENT}\")\n    else()\n        set(COMPONENT_ARG \"\")\n    endif()\n\n    if (BINARY_PACKAGING_MODE)\n        execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink\n                        ${_filepath}\n                        ${CMAKE_CURRENT_BINARY_DIR}/${_symname})\n        install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_symname}\n                DESTINATION ${_installdir} ${EXCLUDE_FROM_ALL_ARG} ${COMPONENT_ARG})\n    else ()\n        # scripting the symlink installation at install time should work\n        # for CMake 2.6.x and 2.8.x\n        install(CODE \"\n            if (\\\"\\$ENV{DESTDIR}\\\" STREQUAL \\\"\\\")\n                execute_process(COMMAND \\\"${CMAKE_COMMAND}\\\" -E make_directory ${_installdir})\n                execute_process(COMMAND \\\"${CMAKE_COMMAND}\\\" -E create_symlink\n                                ${_filepath}\n                                ${_installdir}/${_symname})\n            else ()\n                execute_process(COMMAND \\\"${CMAKE_COMMAND}\\\" -E make_directory \\$ENV{DESTDIR}/${_installdir})\n                execute_process(COMMAND \\\"${CMAKE_COMMAND}\\\" -E create_symlink\n                                ${_filepath}\n                                \\$ENV{DESTDIR}/${_installdir}/${_symname})\n            endif ()\n        \" ${EXCLUDE_FROM_ALL_ARG} ${COMPONENT_ARG})\n    endif ()\nendmacro(InstallSymlink)\n"
  },
  {
    "path": "cmake/MacroEnsureOutOfSourceBuild.cmake",
    "content": "macro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD )\nstring( COMPARE EQUAL \"${CMAKE_SOURCE_DIR}\" \"${CMAKE_BINARY_DIR}\" _insource )\nif( _insource )\n message( FATAL_ERROR\n \"In-source builds are not allowed.\n CMake would overwrite the Linux kernel module Makefile.\n Please create a directory and run cmake from there, passing the path\n to this source directory as the last argument.\n This process created the file `CMakeCache.txt' and the directory `CMakeFiles'.\n Please delete them.\"\n )\nendif( _insource )\nendmacro( MACRO_ENSURE_OUT_OF_SOURCE_BUILD )\n\n"
  },
  {
    "path": "cmake/architecture.cmake",
    "content": "macro(generate_architecture)\n    if (TARGET_x86_64)\n        set(APPLE_ARCH_64BIT \"x86_64\")\n    else ()\n        set(APPLE_ARCH_64BIT \"\")\n    endif ()\n\n    if (TARGET_i386)\n        set(APPLE_ARCH_32BIT \"i386\")\n    else ()\n        set(APPLE_ARCH_32BIT \"\")\n    endif ()\n\n    if (TARGET_x86_64)\n        set(BUILD_TARGET_64BIT TRUE)\n        set(APPLE_TARGET_TRIPLET_64BIT \"x86_64-apple-darwin20\")\n    else ()\n        set(BUILD_TARGET_64BIT FALSE)\n        set(APPLE_TARGET_TRIPLET_64BIT \"\")\n    endif ()\n    if (TARGET_i386)\n        set(BUILD_TARGET_32BIT TRUE)\n        set(APPLE_TARGET_TRIPLET_32BIT \"i386-apple-darwin20\")\n    else ()\n        set(BUILD_TARGET_32BIT FALSE)\n        set(APPLE_TARGET_TRIPLET_32BIT \"\")\n    endif ()\n\n    if (BUILD_TARGET_64BIT)\n        set(APPLE_TARGET_TRIPLET_PRIMARY ${APPLE_TARGET_TRIPLET_64BIT})\n        set(APPLE_ARCH_PRIMARY ${APPLE_ARCH_64BIT})\n    elseif (BUILD_TARGET_32BIT)\n        set(APPLE_TARGET_TRIPLET_PRIMARY ${APPLE_TARGET_TRIPLET_32BIT})\n        set(APPLE_ARCH_PRIMARY ${APPLE_ARCH_32BIT})\n    else ()\n        set(APPLE_TARGET_TRIPLET_PRIMARY \"\")\n    endif ()\nendmacro()\n"
  },
  {
    "path": "cmake/clang_version_check.cmake",
    "content": "set(MANUALLY_SET_COMPILER_ERROR_MESSAGE \n\"If you already have a supported version of clang installed, you may need to \\\nmanually set CMAKE_C_COMPILER and CMAKE_CXX_COMPILER. Refer to the Darling docs \\\nfor more details.\"\n)\n\nmacro(clang_version_check compiler source_type clang_minimum_version)\n    if (compiler STREQUAL \"\")\n        message(FATAL_ERROR \"Unable to find a compatible compiler\")\n    endif (compiler STREQUAL \"\")\n\n    file(WRITE \"${CMAKE_BINARY_DIR}/clang_major.${source_type}\"  \"#include <stdio.h>\\n\" \n    \"#if !__clang__\\n\" \"#error \\\"Not running on a clang compiler!\\\"\\n\" \"#endif\\n\" \"int main() { printf(\\\"%d\\\", __clang_major__); }\")\n    execute_process(COMMAND \"${compiler}\" \"${CMAKE_BINARY_DIR}/clang_major.${source_type}\" \"-o\" \"${CMAKE_BINARY_DIR}/clang_${source_type}_major\"\n    \tRESULT_VARIABLE BUILD_CLANG_TEST_RESULT\n    \tOUTPUT_VARIABLE BUILD_CLANG_TEST_OUTPUT\n\t\tCOMMAND_ECHO NONE\n    )\n\n    if (BUILD_CLANG_TEST_RESULT)\n    \tmessage(FATAL_ERROR\n\t\t\t\"Failed to build ${CMAKE_BINARY_DIR}/clang_major.${source_type}\\n\"\n\t\t\t\"This could indicate that `${compiler}` is either not a clang compiler, \"\n\t\t\t\"or the path does not exist. ${MANUALLY_SET_COMPILER_ERROR_MESSAGE}\")\n    endif (BUILD_CLANG_TEST_RESULT)\n\n    execute_process(COMMAND \"${CMAKE_BINARY_DIR}/clang_${source_type}_major\"\n    \tRESULT_VARIABLE CLANG_MAJOR_VERSION_RESULT\n    \tOUTPUT_VARIABLE CLANG_MAJOR_VERSION_OUTPUT\n    )\n\n    if (CLANG_MAJOR_VERSION_RESULT)\n        # This should normally never fail...\n    \tmessage(FATAL_ERROR \"Failed to check clang major version\")\n    endif (CLANG_MAJOR_VERSION_RESULT)\n\n    if (\"${CLANG_MAJOR_VERSION_OUTPUT}\" LESS ${clang_minimum_version})\n    \tmessage(FATAL_ERROR\n    \t\t\"Your clang version (${CLANG_MAJOR_VERSION_OUTPUT}) is below the recommend supported version (${clang_minimum_version})\\n\"\n\t\t\t\"${MANUALLY_SET_COMPILER_ERROR_MESSAGE}\")\n    endif (\"${CLANG_MAJOR_VERSION_OUTPUT}\" LESS ${clang_minimum_version})\nendmacro()\n"
  },
  {
    "path": "cmake/compiler_include.cmake",
    "content": "# Detect the location of compiler-specific header files\n# such as stdbool.h or xmmintrin.h\nfunction(GetCompilerInclude OutputVar)\n\tfile(WRITE \"${CMAKE_BINARY_DIR}/cinctest.c\" \"#include <cpuid.h>\")\n\texecute_process(COMMAND \"${CMAKE_C_COMPILER}\" -M \"${CMAKE_BINARY_DIR}/cinctest.c\"\n\t\tRESULT_VARIABLE BuildResult\n\t\tOUTPUT_VARIABLE BuildOutput\n\t)\n\n\tif (BuildResult)\n\t\tmessage(FATAL_ERROR \"Cannot detect compiler header include path\")\n\tendif (BuildResult)\n\n\tseparate_arguments(BuildOutput)\n\n\tforeach (str ${BuildOutput})\n\t\tstring(REGEX REPLACE \"\\n$\" \"\" str \"${str}\")\n\t\t# message(STATUS \"Output: ${str}\")\n\n\t\tif (str MATCHES \"cpuid.h$\")\n\t\t\t# message(STATUS \"Str matched: ${str}\")\n\t\t\tstring(REGEX REPLACE \"cpuid\\\\.h\" \"\" IncPath \"${str}\")\n\t\tendif (str MATCHES \"cpuid.h$\")\n\tendforeach (str)\n\n\tif (NOT IncPath)\n\t\tmessage(FATAL_ERROR \"Cannot parse compiler output to detect include path\")\n\tendif (NOT IncPath)\n\n\tset(${OutputVar} ${IncPath} PARENT_SCOPE)\nendfunction(GetCompilerInclude)\n\n"
  },
  {
    "path": "cmake/create_symlink.cmake",
    "content": "#\n# used to create a symbolic link at configuration time\n#\nfunction(create_symlink target output_path)\n\tif(${CMAKE_VERSION} VERSION_GREATER_EQUAL \"3.14.0\")\n\t\t# use CREATE_LINK if we can\n\t\tfile(CREATE_LINK \"${target}\" \"${output_path}\" SYMBOLIC)\n\telse()\n\t\t# fallback to `ln` otherwise\n\t\texecute_process(COMMAND ln -sfn \"${target}\" \"${output_path}\")\n\tendif()\nendfunction()\n"
  },
  {
    "path": "cmake/darling_bundle.cmake",
    "content": "\nFUNCTION(add_darling_bundle name loader)\n\tadd_darling_library(${name} ${ARGN})\n\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\tLINK_FLAGS \" -Wl,-bundle \")\n\n\tif (loader)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -Wl,-bundle_loader,${loader} \")\n\tendif (loader)\nENDFUNCTION(add_darling_bundle)\n\n"
  },
  {
    "path": "cmake/darling_exe.cmake",
    "content": "if(COMMAND cmake_policy)\n\tcmake_policy(SET CMP0003 NEW)\n\tcmake_policy(SET CMP0011 NEW)\nendif(COMMAND cmake_policy)\n\ninclude(use_ld64)\n\nFUNCTION(add_darling_executable exe)\n\tforeach(f IN LISTS ARGN)\n\t\tset(files ${files} ${f})\n\tendforeach(f)\n\n\tadd_executable(${exe} ${files})\n\tset_property(TARGET ${exe} APPEND_STRING PROPERTY\n\t\tLINK_FLAGS \" ${CMAKE_EXE_LINKER_FLAGS} -nostdlib ${CMAKE_BINARY_DIR}/src/external/csu/CMakeFiles/crt1.10.6.dir/start.S.o \")\n\n\tif (BUILD_TARGET_64BIT)\n\t\ttarget_compile_options(${exe} PRIVATE -arch ${APPLE_ARCH_64BIT})\n\telseif (BUILD_TARGET_32BIT)\n\t\ttarget_compile_options(${exe} PRIVATE -arch ${APPLE_ARCH_32BIT})\n\t\tset_property(TARGET ${exe} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -arch ${APPLE_ARCH_32BIT}\")\n\tendif (BUILD_TARGET_64BIT)\n\n\tuse_ld64(${exe})\n\ttarget_link_libraries(${exe} system)\n\tadd_dependencies(${exe} crt1.10.6)\n\n\tif ((NOT NO_DSYM) AND (NOT ${exe}_NO_DSYM))\n\t\tdsym(${exe})\n\tendif ((NOT NO_DSYM) AND (NOT ${exe}_NO_DSYM))\nENDFUNCTION(add_darling_executable)\n\n"
  },
  {
    "path": "cmake/darling_framework.cmake",
    "content": "include(CMakeParseArguments)\ninclude(darling_lib)\ninclude(darling_open_source_sdk)\ninclude(InstallSymlink)\n\ndefine_property(TARGET PROPERTY DYLIB_INSTALL_NAME BRIEF_DOCS \"Stores the DYLIB_INSTALL_NAME of the framework's main binary\"\n\tFULL_DOCS \"Used to make reexporting child frameworks less painful.\")\n\nfunction(add_framework name)\n\tcmake_parse_arguments(FRAMEWORK \"CURRENT_VERSION;FAT;PRIVATE;IOSSUPPORT;CIRCULAR;NO_INSTALL\" \"VERSION;LINK_FLAGS;PARENT;PARENT_VERSION;TARGET_NAME;PARENT_COMPONENT;PARENT_DIR\"\n\t\t\"SOURCES;DEPENDENCIES;CIRCULAR_DEPENDENCIES;RESOURCES;UPWARD_DEPENDENCIES;OBJECTS;STRONG_DEPENDENCIES\" ${ARGN})\n\n\tif (FRAMEWORK_NO_INSTALL)\n\t\tset(EXCLUDE_FROM_ALL_ARG \"EXCLUDE_FROM_ALL\")\n\telse()\n\t\tset(EXCLUDE_FROM_ALL_ARG \"\")\n\tendif()\n\n\tif (DEFINED FRAMEWORK_TARGET_NAME)\n\t\tset(my_name \"${FRAMEWORK_TARGET_NAME}\")\n\telseif (FRAMEWORK_CURRENT_VERSION)\n\t\tset(my_name \"${name}\")\n\telse()\n\t\tset(my_name \"${name}_${FRAMEWORK_VERSION}\")\n\tendif()\n\n\tif (FRAMEWORK_PRIVATE)\n\t\tset(dir_name \"PrivateFrameworks\")\n\telse (FRAMEWORK_PRIVATE)\n\t\tset(dir_name \"Frameworks\")\n\tendif (FRAMEWORK_PRIVATE)\n\n\tif (FRAMEWORK_IOSSUPPORT)\n\t\tset(sys_library_dir \"System/iOSSupport/System/Library\")\n\telse (FRAMEWORK_IOSSUPPORT)\n\t\tset(sys_library_dir \"System/Library\")\n\tendif (FRAMEWORK_IOSSUPPORT)\n\n\tset(root_dir \"/${sys_library_dir}/${dir_name}\")\n\n\tif (FRAMEWORK_PARENT_DIR)\n\t\tset(root_dir \"${FRAMEWORK_PARENT_DIR}\")\n\tendif()\n\n\tif (NOT (root_dir MATCHES \"^/\"))\n\t\tset(root_dir \"/${root_dir}\")\n\tendif()\n\n\tif(DEFINED FRAMEWORK_PARENT)\n\t\tif(NOT DEFINED FRAMEWORK_PARENT_VERSION)\n\t\t\t# 99% of the time it's version A\n\t\t\tset(FRAMEWORK_PARENT_VERSION \"A\")\n\t\tendif(NOT DEFINED FRAMEWORK_PARENT_VERSION)\n\t\tif (DEFINED FRAMEWORK_PARENT_COMPONENT)\n\t\t\tset(COMPONENT_ARG COMPONENT \"${FRAMEWORK_PARENT_COMPONENT}\")\n\t\telse()\n\t\t\tset(COMPONENT_ARG \"\")\n\t\tendif()\n\t\tInstallSymlink(Versions/Current/Frameworks\n\t\t\t\"${CMAKE_INSTALL_PREFIX}/libexec/darling${root_dir}/${FRAMEWORK_PARENT}.framework/Frameworks\"\n\t\t\t${EXCLUDE_FROM_ALL_ARG} ${COMPONENT_ARG})\n\t\tset(root_dir \"${root_dir}/${FRAMEWORK_PARENT}.framework/Versions/${FRAMEWORK_PARENT_VERSION}/Frameworks\")\n\tendif(DEFINED FRAMEWORK_PARENT)\n\n\tset(DYLIB_INSTALL_NAME \"${root_dir}/${name}.framework/Versions/${FRAMEWORK_VERSION}/${name}\")\n\n\tif (FRAMEWORK_CIRCULAR OR FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\tif (FRAMEWORK_FAT)\n\t\t\tset (FRAMEWORK_FAT_ARG FAT)\n\t\telse (FRAMEWORK_FAT)\n\t\t\tset (FRAMEWORK_FAT_ARG)\n\t\tendif (FRAMEWORK_FAT)\n\t\tadd_circular(${my_name}\n\t\t\t${FRAMEWORK_FAT_ARG}\n\t\t\tSOURCES ${FRAMEWORK_SOURCES}\n\t\t\tSIBLINGS ${FRAMEWORK_CIRCULAR_DEPENDENCIES}\n\t\t\tUPWARD ${FRAMEWORK_UPWARD_DEPENDENCIES}\n\t\t\tOBJECTS ${FRAMEWORK_OBJECTS}\n\t\t\tSTRONG_DEPENDENCIES ${FRAMEWORK_STRONG_DEPENDENCIES}\n\t\t)\n\n\telse (FRAMEWORK_CIRCULAR OR FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\tadd_darling_library(${my_name} SHARED ${FRAMEWORK_SOURCES} ${FRAMEWORK_OBJECTS})\n\t\ttarget_link_libraries(${my_name} PRIVATE ${FRAMEWORK_STRONG_DEPENDENCIES})\n\n\t\tif (FRAMEWORK_FAT)\n\t\t\tmake_fat(${my_name})\n\t\tendif (FRAMEWORK_FAT)\n\n\tendif (FRAMEWORK_CIRCULAR OR FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\n\tset_property(TARGET ${my_name} PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\n\n\tif (FRAMEWORK_CURRENT_VERSION AND NOT DEFINED FRAMEWORK_TARGET_NAME)\n\t\tadd_library(\"${name}_${FRAMEWORK_VERSION}\" ALIAS \"${name}\")\n\tendif()\n\n\tset_target_properties(${my_name} PROPERTIES\n\t\t\t\tOUTPUT_NAME \"${name}\"\n\t\t        SUFFIX \"\"\n\t\t\t\tPREFIX \"\")\n\n\tif (FRAMEWORK_DEPENDENCIES)\n\t\ttarget_link_libraries(${my_name} PRIVATE ${FRAMEWORK_DEPENDENCIES})\n\tendif (FRAMEWORK_DEPENDENCIES)\n\n\tif (FRAMEWORK_LINK_FLAGS)\n\t\tset_property(TARGET ${my_name} APPEND_STRING PROPERTY LINK_FLAGS \" ${FRAMEWORK_LINK_FLAGS}\")\n\tendif (FRAMEWORK_LINK_FLAGS)\n\n\tinstall(TARGETS ${my_name} DESTINATION \"libexec/darling${root_dir}/${name}.framework/Versions/${FRAMEWORK_VERSION}/\" ${EXCLUDE_FROM_ALL_ARG})\n\n\tif (FRAMEWORK_RESOURCES)\n\t\tif (FRAMEWORK_CURRENT_VERSION)\n\t\t\tInstallSymlink(\"Versions/Current/Resources\" \"${CMAKE_INSTALL_PREFIX}/libexec/darling${root_dir}/${name}.framework/Resources\" ${EXCLUDE_FROM_ALL_ARG})\n\t\tendif (FRAMEWORK_CURRENT_VERSION)\n\t\twhile (FRAMEWORK_RESOURCES)\n\t\t\tlist(GET FRAMEWORK_RESOURCES 0 res_install_path)\n\t\t\tlist(GET FRAMEWORK_RESOURCES 1 res_source_path)\n\t\t\tget_filename_component(res_install_dir ${res_install_path} DIRECTORY)\n\t\t\tget_filename_component(res_install_name ${res_install_path} NAME)\n\t\t\tinstall(FILES ${res_source_path}\n\t\t\t\tDESTINATION libexec/darling${root_dir}/${name}.framework/Versions/${FRAMEWORK_VERSION}/Resources/${res_install_dir}\n\t\t\t\tRENAME ${res_install_name} ${EXCLUDE_FROM_ALL_ARG})\n\t\t\tlist(REMOVE_AT FRAMEWORK_RESOURCES 0 1)\n\t\tendwhile (FRAMEWORK_RESOURCES)\n\tendif()\n\n\tif (FRAMEWORK_CURRENT_VERSION)\n\t\tInstallSymlink(${FRAMEWORK_VERSION} \"${CMAKE_INSTALL_PREFIX}/libexec/darling${root_dir}/${name}.framework/Versions/Current\" ${EXCLUDE_FROM_ALL_ARG})\n\t\tInstallSymlink(\"Versions/Current/${name}\" \"${CMAKE_INSTALL_PREFIX}/libexec/darling${root_dir}/${name}.framework/${name}\" ${EXCLUDE_FROM_ALL_ARG})\n\tendif()\nendfunction(add_framework)\n\nfunction(add_separated_framework name)\n\tcmake_parse_arguments(FRAMEWORK \"CURRENT_VERSION;PRIVATE;IOSSUPPORT\" \"VERSION;LINK_FLAGS\" \"SOURCES;ARCHS;DEPENDENCIES;CIRCULAR_DEPENDENCIES;UPWARD_DEPENDENCIES;OBJECTS;STRONG_DEPENDENCIES;RESOURCES\" ${ARGN})\n\tif (FRAMEWORK_CURRENT_VERSION)\n\t\tset(my_name \"${name}\")\n\telse (FRAMEWORK_CURRENT_VERSION)\n\t\tset(my_name \"${name}_${FRAMEWORK_VERSION}\")\n\tendif (FRAMEWORK_CURRENT_VERSION)\n\n\tif (FRAMEWORK_PRIVATE)\n\t\tset(dir_name \"PrivateFrameworks\")\n\telse (FRAMEWORK_PRIVATE)\n\t\tset(dir_name \"Frameworks\")\n\tendif (FRAMEWORK_PRIVATE)\n\n\tif (FRAMEWORK_IOSSUPPORT)\n\t\tset(sys_library_dir \"System/iOSSupport/System/Library\")\n\telse (FRAMEWORK_IOSSUPPORT)\n\t\tset(sys_library_dir \"System/Library\")\n\tendif (FRAMEWORK_IOSSUPPORT)\n\n\tset(DYLIB_INSTALL_NAME \"/${sys_library_dir}/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/${name}\")\n\n\t# reduce unnecessary recompilation by creating a single object library\n\t# `add_darling_object_library` automatically adds arch flags based on the same variables we use, so this works fine\n\tadd_darling_object_library(${my_name}_obj ${FRAMEWORK_SOURCES})\n\n\tif (BUILD_TARGET_32BIT)\n\t\tset(DARLING_LIB_32BIT_ONLY TRUE)\n\t\tif (FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\t\tadd_circular(${my_name}_${APPLE_ARCH_32BIT}\n\t\t\t\tSIBLINGS ${FRAMEWORK_CIRCULAR_DEPENDENCIES}\n\t\t\t\tUPWARD ${FRAMEWORK_UPWARD_DEPENDENCIES}\n\t\t\t\tOBJECTS $<TARGET_OBJECTS:${my_name}_obj> ${FRAMEWORK_OBJECTS}\n\t\t\t\tSTRONG_DEPENDENCIES ${FRAMEWORK_STRONG_DEPENDENCIES}\n\t\t\t)\n\t\telse (FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\t\tadd_darling_library(${my_name}_${APPLE_ARCH_32BIT} $<TARGET_OBJECTS:${my_name}_obj> ${FRAMEWORK_OBJECTS})\n\t\t\ttarget_link_libraries(${my_name}_${APPLE_ARCH_32BIT} PRIVATE ${FRAMEWORK_STRONG_DEPENDENCIES})\n\t\tendif (FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\tset(DARLING_LIB_32BIT_ONLY FALSE)\n\t\tset_target_properties(${my_name}_${APPLE_ARCH_32BIT} PROPERTIES\n\t\t\t\t\tOUTPUT_NAME \"${name}_${APPLE_ARCH_32BIT}\"\n\t\t\t\t\t\t\tSUFFIX \"\"\n\t\t\t\t\tPREFIX \"\")\n\t\tset_property(TARGET ${my_name}_${APPLE_ARCH_32BIT} APPEND_STRING PROPERTY\n\t\t\tCOMPILE_FLAGS \" -arch ${APPLE_ARCH_32BIT}\")\n\t\t set_property(TARGET ${my_name}_${APPLE_ARCH_32BIT} APPEND_STRING PROPERTY\n\t\t\t\tLINK_FLAGS \" -arch ${APPLE_ARCH_32BIT}\")\n\t\tif (NOT FRAMEWORK_CURRENT_VERSION)\n\t\t\tadd_library(\"${my_name}_${APPLE_ARCH_32BIT}\" ALIAS \"${name}_${APPLE_ARCH_32BIT}\")\n\t\tendif (NOT FRAMEWORK_CURRENT_VERSION)\n\n\t\tif (FRAMEWORK_DEPENDENCIES)\n\t\t  target_link_libraries(${my_name}_${APPLE_ARCH_32BIT} PRIVATE ${FRAMEWORK_DEPENDENCIES})\n\t\tendif (FRAMEWORK_DEPENDENCIES)\n\n\t\tif (FRAMEWORK_LINK_FLAGS)\n\t\t\tset_property(TARGET ${my_name}_${APPLE_ARCH_32BIT} APPEND_STRING PROPERTY LINK_FLAGS \" ${FRAMEWORK_LINK_FLAGS}\")\n\t\tendif (FRAMEWORK_LINK_FLAGS)\n\tendif (BUILD_TARGET_32BIT)\n\n\tif (BUILD_TARGET_64BIT)\n\t\tset(DARLING_LIB_64BIT_ONLY TRUE)\n\t\tif (FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\t\tadd_circular(${my_name}_${APPLE_ARCH_64BIT}\n\t\t\t\tSIBLINGS ${FRAMEWORK_CIRCULAR_DEPENDENCIES}\n\t\t\t\tUPWARD ${FRAMEWORK_UPWARD_DEPENDENCIES}\n\t\t\t\tOBJECTS $<TARGET_OBJECTS:${my_name}_obj> ${FRAMEWORK_OBJECTS}\n\t\t\t\tSTRONG_DEPENDENCIES ${FRAMEWORK_STRONG_DEPENDENCIES}\n\t\t\t)\n\t\telse (FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\t\tadd_darling_library(${my_name}_${APPLE_ARCH_64BIT} $<TARGET_OBJECTS:${my_name}_obj> ${FRAMEWORK_OBJECTS})\n\t\t\ttarget_link_libraries(${my_name}_${APPLE_ARCH_64BIT} PRIVATE ${FRAMEWORK_STRONG_DEPENDENCIES})\n\t\tendif (FRAMEWORK_CIRCULAR_DEPENDENCIES OR FRAMEWORK_UPWARD_DEPENDENCIES)\n\t\tset(DARLING_LIB_64BIT_ONLY FALSE)\n\t\tset_target_properties(${my_name}_${APPLE_ARCH_64BIT} PROPERTIES\n\t\t\t\t\tOUTPUT_NAME \"${name}_${APPLE_ARCH_64BIT}\"\n\t\t\t\t\t\t\tSUFFIX \"\"\n\t\t\t\t\tPREFIX \"\")\n\t\tset_property(TARGET ${my_name}_${APPLE_ARCH_64BIT} APPEND_STRING PROPERTY\n\t\t\tCOMPILE_FLAGS \" -arch ${APPLE_ARCH_64BIT}\")\n\t\tset_property(TARGET ${my_name}_${APPLE_ARCH_64BIT} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -arch ${APPLE_ARCH_64BIT}\")\n\t\tif (NOT FRAMEWORK_CURRENT_VERSION)\n\t\t\tadd_library(\"${my_name}_${APPLE_ARCH_64BIT}\" ALIAS \"${name}_${APPLE_ARCH_64BIT}\")\n\t\tendif (NOT FRAMEWORK_CURRENT_VERSION)\n\n\t\tif (FRAMEWORK_DEPENDENCIES)\n\t\t  target_link_libraries(${my_name}_${APPLE_ARCH_64BIT} PRIVATE ${FRAMEWORK_DEPENDENCIES})\n\t\tendif (FRAMEWORK_DEPENDENCIES)\n\n\t\tif (FRAMEWORK_LINK_FLAGS)\n\t\t\tset_property(TARGET ${my_name}_${APPLE_ARCH_64BIT} APPEND_STRING PROPERTY LINK_FLAGS \" ${FRAMEWORK_LINK_FLAGS}\")\n\t\tendif (FRAMEWORK_LINK_FLAGS)\n\tendif (BUILD_TARGET_64BIT)\n\n\tif (BUILD_TARGET_32BIT AND BUILD_TARGET_64BIT)\n\t\tif (FRAMEWORK_CIRCULAR_DEPENDENCIES)\n\t\t\tadd_dependencies(${my_name}_${APPLE_ARCH_64BIT}_firstpass ${my_name}_${APPLE_ARCH_32BIT}_firstpass)\n\t\t\tadd_custom_command(TARGET ${my_name}_${APPLE_ARCH_64BIT}_firstpass POST_BUILD\n\t\t\t\tCOMMAND ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/lipo\n\t\t\t\t\t-arch ${APPLE_ARCH_32BIT} $<TARGET_FILE:${my_name}_${APPLE_ARCH_32BIT}_firstpass>\n\t\t\t\t\t-arch ${APPLE_ARCH_64BIT} $<TARGET_FILE:${my_name}_${APPLE_ARCH_64BIT}_firstpass>\n\t\t\t\t\t-create\n\t\t\t\t\t-output\n\t\t\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t\tCOMMENT \"Running lipo to create ${my_name}_firstpass\"\n\t\t\t\tBYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t)\n\t\t\tadd_library(${my_name}_firstpass SHARED IMPORTED GLOBAL)\n\t\t\tset_target_properties(${my_name}_firstpass PROPERTIES\n\t\t\t\tSUFFIX \"\"\n\t\t\t\tPREFIX \"\"\n\t\t\t\tIMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t)\n\t\t\tadd_dependencies(${my_name}_firstpass ${my_name}_${APPLE_ARCH_64BIT}_firstpass)\n\t\tendif (FRAMEWORK_CIRCULAR_DEPENDENCIES)\n\n\t\tadd_dependencies(${my_name}_${APPLE_ARCH_64BIT} ${my_name}_${APPLE_ARCH_32BIT})\n\t\tadd_custom_command(TARGET ${my_name}_${APPLE_ARCH_64BIT} POST_BUILD\n\t\t\tCOMMAND ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/lipo\n\t\t\t\t-arch ${APPLE_ARCH_32BIT} $<TARGET_FILE:${my_name}_${APPLE_ARCH_32BIT}>\n\t\t\t\t-arch ${APPLE_ARCH_64BIT} $<TARGET_FILE:${my_name}_${APPLE_ARCH_64BIT}>\n\t\t\t\t-create\n\t\t\t\t-output\n\t\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t\tCOMMENT \"Running lipo to create ${my_name}\"\n\t\t\tBYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t)\n\t\tadd_library(${my_name} SHARED IMPORTED GLOBAL)\n\t\tset_target_properties(${my_name} PROPERTIES\n\t\t\tSUFFIX \"\"\n\t\t\tPREFIX \"\"\n\t\t\tIMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t)\n\t\tadd_dependencies(${my_name} ${my_name}_${APPLE_ARCH_64BIT})\n\telseif (BUILD_TARGET_32BIT)\n\t\tif (FRAMEWORK_CIRCULAR_DEPENDENCIES)\n\t\t\tadd_custom_command(TARGET ${my_name}_${APPLE_ARCH_32BIT}_firstpass POST_BUILD\n\t\t\t\tCOMMAND ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/lipo\n\t\t\t\t\t-arch ${APPLE_ARCH_32BIT} $<TARGET_FILE:${my_name}_${APPLE_ARCH_32BIT}_firstpass>\n\t\t\t\t\t-create\n\t\t\t\t\t-output\n\t\t\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t\tCOMMENT \"Running lipo to create ${my_name}_firstpass\"\n\t\t\t\tBYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t)\n\t\t\tadd_library(${my_name}_firstpass SHARED IMPORTED GLOBAL)\n\t\t\tset_target_properties(${my_name}_firstpass PROPERTIES\n\t\t\t\tSUFFIX \"\"\n\t\t\t\tPREFIX \"\"\n\t\t\t\tIMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t)\n\t\t\tadd_dependencies(${my_name}_firstpass ${my_name}_${APPLE_ARCH_32BIT}_firstpass)\n\t\tendif (FRAMEWORK_CIRCULAR_DEPENDENCIES)\n\n\t\tadd_custom_command(TARGET ${my_name}_${APPLE_ARCH_32BIT} POST_BUILD\n\t\t\tCOMMAND ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/lipo\n\t\t\t\t-arch ${APPLE_ARCH_32BIT} $<TARGET_FILE:${my_name}_${APPLE_ARCH_32BIT}>\n\t\t\t\t-create\n\t\t\t\t-output\n\t\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t\tCOMMENT \"Running lipo to create ${my_name}\"\n\t\t\tBYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t)\n\t\tadd_library(${my_name} SHARED IMPORTED GLOBAL)\n\t\tset_target_properties(${my_name} PROPERTIES\n\t\t\tSUFFIX \"\"\n\t\t\tPREFIX \"\"\n\t\t\tIMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t)\n\t\tadd_dependencies(${my_name} ${my_name}_${APPLE_ARCH_32BIT})\n\telseif (BUILD_TARGET_64BIT)\n\t\tif (FRAMEWORK_CIRCULAR_DEPENDENCIES)\n\t\t\tadd_custom_command(TARGET ${my_name}_${APPLE_ARCH_64BIT}_firstpass POST_BUILD\n\t\t\t\tCOMMAND ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/lipo\n\t\t\t\t\t-arch ${APPLE_ARCH_64BIT} $<TARGET_FILE:${my_name}_${APPLE_ARCH_64BIT}_firstpass>\n\t\t\t\t\t-create\n\t\t\t\t\t-output\n\t\t\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t\tCOMMENT \"Running lipo to create ${my_name}_firstpass\"\n\t\t\t\tBYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t)\n\t\t\tadd_library(${my_name}_firstpass SHARED IMPORTED GLOBAL)\n\t\t\tset_target_properties(${my_name}_firstpass PROPERTIES\n\t\t\t\tSUFFIX \"\"\n\t\t\t\tPREFIX \"\"\n\t\t\t\tIMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${my_name}_firstpass\n\t\t\t)\n\t\t\tadd_dependencies(${my_name}_firstpass ${my_name}_${APPLE_ARCH_64BIT}_firstpass)\n\t\tendif (FRAMEWORK_CIRCULAR_DEPENDENCIES)\n\n\t\tadd_custom_command(TARGET ${my_name}_${APPLE_ARCH_64BIT} POST_BUILD\n\t\t\tCOMMAND ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/lipo\n\t\t\t\t-arch ${APPLE_ARCH_64BIT} $<TARGET_FILE:${my_name}_${APPLE_ARCH_64BIT}>\n\t\t\t\t-create\n\t\t\t\t-output\n\t\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t\tCOMMENT \"Running lipo to create ${my_name}\"\n\t\t\tBYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t)\n\t\tadd_library(${my_name} SHARED IMPORTED GLOBAL)\n\t\tset_target_properties(${my_name} PROPERTIES\n\t\t\tSUFFIX \"\"\n\t\t\tPREFIX \"\"\n\t\t\tIMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${my_name}\n\t\t)\n\t\tadd_dependencies(${my_name} ${my_name}_${APPLE_ARCH_64BIT})\n\tendif (BUILD_TARGET_32BIT AND BUILD_TARGET_64BIT)\n\n\tinstall(FILES ${CMAKE_CURRENT_BINARY_DIR}/${my_name} DESTINATION \"libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/\")\n\n\tif (FRAMEWORK_RESOURCES)\n\t\tif (FRAMEWORK_CURRENT_VERSION)\n\t\t\tInstallSymlink(\"Versions/Current/Resources\" \"${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Resources\")\n\t\tendif (FRAMEWORK_CURRENT_VERSION)\n\t\twhile (FRAMEWORK_RESOURCES)\n\t\t\tlist(GET FRAMEWORK_RESOURCES 0 res_install_path)\n\t\t\tlist(GET FRAMEWORK_RESOURCES 1 res_source_path)\n\t\t\tget_filename_component(res_install_dir ${res_install_path} DIRECTORY)\n\t\t\tget_filename_component(res_install_name ${res_install_path} NAME)\n\t\t\tinstall(FILES ${res_source_path}\n\t\t\t\tDESTINATION libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/${FRAMEWORK_VERSION}/Resources/${res_install_dir}\n\t\t\t\tRENAME ${res_install_name})\n\t\t\tlist(REMOVE_AT FRAMEWORK_RESOURCES 0 1)\n\t\tendwhile (FRAMEWORK_RESOURCES)\n\tendif (FRAMEWORK_RESOURCES)\n\n\tif (FRAMEWORK_CURRENT_VERSION)\n\t\tInstallSymlink(${FRAMEWORK_VERSION} \"${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/Versions/Current\")\n\t\tInstallSymlink(\"Versions/Current/${name}\" \"${CMAKE_INSTALL_PREFIX}/libexec/darling/${sys_library_dir}/${dir_name}/${name}.framework/${name}\")\n\tendif (FRAMEWORK_CURRENT_VERSION)\nendfunction(add_separated_framework)\n"
  },
  {
    "path": "cmake/darling_lib.cmake",
    "content": "if(COMMAND cmake_policy)\n    cmake_policy(SET CMP0003 NEW)\n    cmake_policy(SET CMP0011 NEW)\nendif(COMMAND cmake_policy)\n\ninclude(use_ld64)\ninclude(CMakeParseArguments)\ninclude(dsym)\n\nFUNCTION(add_darling_library name)\n\tforeach(f IN LISTS ARGN)\n\t\tset(files ${files} ${f})\n\tendforeach(f)\n\n\tset(CMAKE_SKIP_RPATH TRUE)\n\tadd_library(${name} SHARED ${files})\n\n\t# Link using Apple's ld64\n\tset_target_properties(${name} PROPERTIES\n\t\tSUFFIX \".dylib\"\n\t\tNO_SONAME TRUE)\n\n\tset_target_properties(${name} PROPERTIES PREFIX \"lib\")\n\n\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\tLINK_FLAGS \" ${CMAKE_SHARED_LINKER_FLAGS} -nostdlib\")\n\n\tif (DYLIB_INSTALL_NAME)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -Wl,-dylib_install_name,${DYLIB_INSTALL_NAME} \")\n\tendif (DYLIB_INSTALL_NAME)\n\tif (DYLIB_COMPAT_VERSION)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -Wl,-compatibility_version,${DYLIB_COMPAT_VERSION} \")\n\telse (DYLIB_COMPAT_VERSION)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -Wl,-compatibility_version,1.0.0 \")\n\tendif (DYLIB_COMPAT_VERSION)\n\tif (DYLIB_CURRENT_VERSION)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -Wl,-current_version,${DYLIB_CURRENT_VERSION} \")\n\tendif (DYLIB_CURRENT_VERSION)\n\n\tset_property(TARGET ${name} APPEND_STRING PROPERTY COMPILE_FLAGS  \" -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/\")\n\tadd_dependencies(${name} lipo)\n\n\tif (BUILD_TARGET_64BIT AND NOT DARLING_LIB_32BIT_ONLY)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY COMPILE_FLAGS  \" -arch ${APPLE_ARCH_64BIT}\")\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY LINK_FLAGS \" -arch ${APPLE_ARCH_64BIT}\")\n\tendif (BUILD_TARGET_64BIT AND NOT DARLING_LIB_32BIT_ONLY)\n\tif (BUILD_TARGET_32BIT AND NOT DARLING_LIB_64BIT_ONLY)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY COMPILE_FLAGS \" -arch ${APPLE_ARCH_32BIT}\")\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY LINK_FLAGS \" -arch ${APPLE_ARCH_32BIT}\")\n\tendif (BUILD_TARGET_32BIT AND NOT DARLING_LIB_64BIT_ONLY)\n\n\tuse_ld64(${name})\n\n\tif ((NOT NO_DSYM) AND (NOT ${name}_NO_DSYM))\n\t\tdsym(${name})\n\tendif ((NOT NO_DSYM) AND (NOT ${name}_NO_DSYM))\nENDFUNCTION(add_darling_library)\n\nFUNCTION(make_fat)\n\tif (BUILD_TARGET_32BIT AND BUILD_TARGET_64BIT)\n\t\tset_property(TARGET ${ARGV} APPEND_STRING PROPERTY\n\t\t\tCOMPILE_FLAGS \" -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/ -arch ${APPLE_ARCH_32BIT} -arch ${APPLE_ARCH_64BIT}\")\n\t\tset_property(TARGET ${ARGV} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -arch ${APPLE_ARCH_32BIT} -arch ${APPLE_ARCH_64BIT}\")\n\t\tforeach(tgt ${ARGV})\n\t\t\tadd_dependencies(${tgt} lipo)\n\t\tendforeach(tgt)\n\telseif (BUILD_TARGET_32BIT)\n\t\tset_property(TARGET ${ARGV} APPEND_STRING PROPERTY\n\t\t\tCOMPILE_FLAGS \" -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/ -arch ${APPLE_ARCH_32BIT}\")\n\t\tset_property(TARGET ${ARGV} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -arch ${APPLE_ARCH_32BIT}\")\n\t\tforeach(tgt ${ARGV})\n\t\t\tadd_dependencies(${tgt} lipo)\n\t\tendforeach(tgt)\n\telseif (BUILD_TARGET_64BIT)\n\t\tset_property(TARGET ${ARGV} APPEND_STRING PROPERTY\n\t\t\tCOMPILE_FLAGS \" -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/ -arch ${APPLE_ARCH_64BIT}\")\n\t\tset_property(TARGET ${ARGV} APPEND_STRING PROPERTY\n\t\t\tLINK_FLAGS \" -arch ${APPLE_ARCH_64BIT}\")\n\t\tforeach(tgt ${ARGV})\n\t\t\tadd_dependencies(${tgt} lipo)\n\t\tendforeach(tgt)\n\tendif (BUILD_TARGET_32BIT AND BUILD_TARGET_64BIT)\nENDFUNCTION(make_fat)\n\n# add_circular(name ...)\n#\n# Creates a shared library with circular/mutual dependencies on other libraries.\n#\n# Typical use: circular dependencies between libs in /usr/lib/system\n#\n# Parameters:\n# * SOURCES: Sources to build the library from. This function will internally create an object library for them.\n# * OBJECTS: Object libraries to build the library from. (Because we cannot add object libraries into object libraries.)\n# * SIBLINGS: Which \"circular\" libraries we should link against in the final pass.\n#             All specified libs must also be built with this function!\n# * STRONG_SIBLINGS: Which \"circular\" libraries we should link against in the 1st pass.\n#             Only use for special cases, e.g. if this library reexports from this strong siblibg\n#             and another sibling depends on this reexport's existence.\n# * DEPENDENCIES: Which standard libraries we should link against.\n# * LINK_FLAGS: Extra linker flags, e.g. an alias list\n# * UPWARD: Add an upward dependency. This affects initialization order. The specified dependency will only be\n#             loaded and initialized after the current library is fully loaded. This is needed to break\n#             certain dependency issues, esp. if a libSystem sublibrary depends on a library that depends on libSystem\n#             and has initializers. dyld bails out unless this dependency is upward.\n# * STRONG_DEPENDENCIES: Which regular dependencies we should link against in the firstpass.\n#             Just like STRONG_SIBLINGS, this should only be used in special cases. The intended use case is when\n#             another sibling depends on symbols linked into this sibling from dependencies (usually static libraries).\n#             Current use case is for Security to link to its static libraries in the firstpass,\n#             because coretls_cfhelpers depends on them.\nFUNCTION(add_circular name)\n\tcmake_parse_arguments(CIRCULAR \"FAT\" \"LINK_FLAGS\" \"SOURCES;OBJECTS;SIBLINGS;STRONG_SIBLINGS;DEPENDENCIES;UPWARD;STRONG_DEPENDENCIES\" ${ARGN})\n\t#message(STATUS \"${name} sources: ${CIRCULAR_SOURCES}\")\n\t#message(STATUS \"${name} siblings ${CIRCULAR_SIBLINGS}\")\n\t#message(STATUS \"${name} deps: ${CIRCULAR_DEPENDENCIES}\")\n\n\tset(all_objects \"${CIRCULAR_OBJECTS}\")\n\n\t# First create an object library for all sources with the aim to avoid rebuild\n\tif (CIRCULAR_SOURCES)\n\t\tadd_library(\"${name}_obj\" OBJECT ${CIRCULAR_SOURCES})\n\t\tif (CIRCULAR_FAT)\n\t\t\tmake_fat(\"${name}_obj\")\n\t\tendif (CIRCULAR_FAT)\n\t\tset(all_objects \"${all_objects};$<TARGET_OBJECTS:${name}_obj>\")\n\tendif (CIRCULAR_SOURCES)\n\n\t# Then create a shared Darling library, while ignoring all dependencies and using flat namespace\n\tadd_darling_library(\"${name}_firstpass\" SHARED ${all_objects})\n\tset_property(TARGET \"${name}_firstpass\" APPEND_STRING PROPERTY LINK_FLAGS \" ${CIRCULAR_LINK_FLAGS} -Wl,-flat_namespace -Wl,-undefined,suppress\")\n\n\tforeach(dep ${CIRCULAR_STRONG_SIBLINGS})\n\t\ttarget_link_libraries(\"${name}_firstpass\" PRIVATE \"${dep}_firstpass\")\n\tendforeach(dep)\n\n\t# strong dependencies are linked in the firstpass\n\ttarget_link_libraries(\"${name}_firstpass\" PRIVATE ${CIRCULAR_STRONG_DEPENDENCIES})\n\t\n\tif (CIRCULAR_FAT)\n\t\tmake_fat(\"${name}_firstpass\")\n\tendif (CIRCULAR_FAT)\n\n\t# Then build the final product while linking against firstpass libraries\n\tadd_darling_library(${name} SHARED ${all_objects})\n\n\tforeach(dep ${CIRCULAR_SIBLINGS})\n\t\ttarget_link_libraries(\"${name}\" PRIVATE \"${dep}_firstpass\")\n\tendforeach(dep)\n\tforeach(dep ${CIRCULAR_UPWARD})\n\t\t#get_property(lib_location TARGET ${dep} PROPERTY LOCATION_${CMAKE_BUILD_TYPE})\n\t\t#set_property(TARGET \"${name}\" APPEND_STRING PROPERTY LINK_FLAGS \" -Wl,-upward_library,${lib_location}\")\n\t\ttarget_link_libraries(\"${name}\" PRIVATE -Wl,-upward_library,$<TARGET_FILE:${dep}_firstpass>)\n\t\tadd_dependencies(\"${name}\" \"${dep}_firstpass\")\n\tendforeach(dep)\n\t\n\tget_property(dylib_files GLOBAL PROPERTY FIRSTPASS_MAP)\n\tset_property(TARGET \"${name}\" APPEND_STRING PROPERTY LINK_FLAGS \" ${CIRCULAR_LINK_FLAGS}\")\n\n\ttarget_link_libraries(\"${name}\" PRIVATE ${CIRCULAR_DEPENDENCIES})\n\n\t# strong dependencies are linked again in the finalpass\n\ttarget_link_libraries(\"${name}\" PRIVATE ${CIRCULAR_STRONG_DEPENDENCIES})\n\n\tif (CIRCULAR_FAT)\n\t\tmake_fat(${name})\n\tendif (CIRCULAR_FAT)\nENDFUNCTION(add_circular)\n\nfunction(add_darling_object_library name)\n\tcmake_parse_arguments(OBJECT_LIB \"32BIT_ONLY;64BIT_ONLY\" \"\" \"\" ${ARGN})\n\tforeach(f IN LISTS OBJECT_LIB_UNPARSED_ARGUMENTS)\n\t\tset(files ${files} ${f})\n\tendforeach(f)\n\n\tadd_library(${name} OBJECT ${files})\n\tadd_dependencies(${name} lipo)\n\tset_property(TARGET ${name} APPEND_STRING PROPERTY COMPILE_FLAGS \" -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/\")\n\n\tif (BUILD_TARGET_32BIT AND NOT OBJECT_LIB_64BIT_ONLY)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY COMPILE_FLAGS \" -arch ${APPLE_ARCH_32BIT}\")\n\tendif (BUILD_TARGET_32BIT AND NOT OBJECT_LIB_64BIT_ONLY)\n\tif (BUILD_TARGET_64BIT AND NOT OBJECT_LIB_32BIT_ONLY)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY COMPILE_FLAGS \" -arch ${APPLE_ARCH_64BIT}\")\n\tendif (BUILD_TARGET_64BIT AND NOT OBJECT_LIB_32BIT_ONLY)\nendfunction(add_darling_object_library)\n"
  },
  {
    "path": "cmake/darling_open_source_sdk.cmake",
    "content": "include(create_symlink)\n\nfunction(remove_sdk_framework name)\n    cmake_parse_arguments(SDK\n        \"PRIVATE;IOSSUPPORT\"\n        \"PARENT_DIR\"\n        \"\"\n        ${ARGN}\n    )\n\n    if (REGENERATE_SDK)\n        if (SDK_IOSSUPPORT)\n            set(developer_sys_library_dir \"System/iOSSupport/System/Library\")\n        else (SDK_IOSSUPPORT)\n            set(developer_sys_library_dir \"System/Library\")\n        endif (SDK_IOSSUPPORT)\n\n        if (SDK_PRIVATE)\n            set(developer_framework_dir \"PrivateFrameworks\")\n            set(header_framework_include \"framework-private-include\")\n        else (SDK_PRIVATE)\n            set(developer_framework_dir \"Frameworks\")\n            set(header_framework_include \"framework-include\")\n        endif (SDK_PRIVATE)\n\n        set(developer_platform \"MacOSX.platform\")\n        set(developer_sdk \"MacOSX.sdk\")\n\n        set(developer_sdk_path \"Developer/Platforms/${developer_platform}/Developer/SDKs/${developer_sdk}\")\n        set(developer_framework_path \"${DARLING_TOP_DIRECTORY}/${developer_sdk_path}/${developer_sys_library_dir}/${developer_framework_dir}/${name}.framework\")\n\n        if (SDK_PARENT_DIR)\n            set(developer_framework_path \"${DARLING_TOP_DIRECTORY}/${developer_sdk_path}/${SDK_PARENT_DIR}/${name}.framework\")\n        endif()\n\n        set(header_framework_include_path \"${DARLING_TOP_DIRECTORY}/${header_framework_include}/${name}\")\n\n        # Remove file from 'Developer' folder\n        file(REMOVE_RECURSE ${developer_framework_path})\n        # Also remove the the header folder from the framework/framework-private-include header\n        file(REMOVE_RECURSE ${header_framework_include_path})\n\n        message(\"Deleted SDK framework ${developer_framework_path}\")\n    endif (REGENERATE_SDK)\nendfunction(remove_sdk_framework)\n\nfunction(get_path_preframework result)\n    cmake_parse_arguments(SDK\n        \"PRIVATE;IOSSUPPORT\"\n        \"PARENT_DIR\"\n        \"\"\n        ${ARGN}\n    )\n\n    set(developer_platform \"MacOSX.platform\")\n    set(developer_sdk \"MacOSX.sdk\")\n    set(developer_sdk_path \"Developer/Platforms/${developer_platform}/Developer/SDKs/${developer_sdk}\")\n\n    if (SDK_IOSSUPPORT)\n        set(developer_sys_library_dir \"System/iOSSupport/System/Library\")\n    else (SDK_IOSSUPPORT)\n        set(developer_sys_library_dir \"System/Library\")\n    endif (SDK_IOSSUPPORT)\n\n    if (SDK_PRIVATE)\n        set(developer_framework_dir \"PrivateFrameworks\")\n    else (SDK_PRIVATE)\n        set(developer_framework_dir \"Frameworks\")\n    endif (SDK_PRIVATE)\n\n    set(developer_framework_path \"${DARLING_TOP_DIRECTORY}/${developer_sdk_path}/${developer_sys_library_dir}/${developer_framework_dir}\")\n\n    if (SDK_PARENT_DIR)\n        set(developer_framework_path \"${DARLING_TOP_DIRECTORY}/${developer_sdk_path}/${SDK_PARENT_DIR}\")\n    endif()\n\n    set(\"${result}\" \"${developer_framework_path}\" PARENT_SCOPE)\nendfunction(get_path_preframework)\n\nfunction(append_path_sdk_subframework input_path output_path name)\n    cmake_parse_arguments(SDK\n        \"\"\n        \"VERSION\"\n        \"\"\n        ${ARGN}\n    )\n\n    set(\"${output_path}\" \"${input_path}/${name}.framework/Versions/${SDK_VERSION}/Frameworks\" PARENT_SCOPE)\nendfunction(append_path_sdk_subframework)\n\nfunction(internal_generate_developer_framework name path)\n    cmake_parse_arguments(SDK\n        \"\"\n        \"VERSION;HEADER;PARENT_DIR\"\n        \"\"\n        ${ARGN}\n    )\n\n    set(developer_framework_path \"${path}/${name}.framework\")\n    set(sdk_path_exact_version \"${developer_framework_path}/Versions/${SDK_VERSION}\")\n    file(MAKE_DIRECTORY ${sdk_path_exact_version})\n\n    # message(developer_sdk_path=\"${developer_sdk_path}\")\n    # message(developer_framework_path=\"${developer_framework_path}\")\n    # message(sdk_path_exact_version=\"${sdk_path_exact_version}\")\n\n    file(RELATIVE_PATH sdk_relative_dir_include \"${sdk_path_exact_version}\" ${CMAKE_CURRENT_SOURCE_DIR}/${SDK_HEADER})\n    # message(sdk_relative_dir_include=\"${sdk_relative_dir_include}\")\n\n    create_symlink(\"${SDK_VERSION}\" \"${developer_framework_path}/Versions/Current\")\n    create_symlink(\"Versions/${SDK_VERSION}/Headers\" \"${developer_framework_path}/Headers\")\n    create_symlink(\"${sdk_relative_dir_include}\" \"${sdk_path_exact_version}/Headers\")\n\n    if(EXISTS \"${sdk_path_exact_version}/Frameworks\")\n        create_symlink(\"Versions/${SDK_VERSION}/Frameworks\" \"${developer_framework_path}/Frameworks\")\n    endif()\n\n    message(\"Generated SDK framework ${developer_framework_path}\")\nendfunction(internal_generate_developer_framework)\n\nfunction(internal_generate_framework_include name path)\n    cmake_parse_arguments(SDK\n        \"PRIVATE\"\n        \"\"\n        \"\"\n        ${ARGN}\n    )\n\n    if (SDK_PRIVATE)\n        set(header_framework_include \"framework-private-include\")\n    else (SDK_PRIVATE)\n        set(header_framework_include \"framework-include\")\n    endif (SDK_PRIVATE)\n\n    set(developer_headers_path \"${path}/${name}.framework/Headers\")\n    set(header_framework_include_absolute_path \"${DARLING_TOP_DIRECTORY}/${header_framework_include}\")\n\n    file(RELATIVE_PATH sdk_relative_dir_include \"${header_framework_include_absolute_path}\" \"${developer_headers_path}\")\n    create_symlink(\"${sdk_relative_dir_include}\" \"${header_framework_include_absolute_path}/${name}\")\n\n    message(\"Created header symbolic-link ${header_framework_include_absolute_path}/${name}\")\nendfunction(internal_generate_framework_include)\n\nfunction(generate_sdk_framework name)\n    cmake_parse_arguments(SDK\n        \"PRIVATE;IOSSUPPORT\"\n        \"VERSION;HEADER;PARENT_DIR\"\n        \"\"\n        ${ARGN}\n    )\n\n    if (REGENERATE_SDK)\n        if (SDK_IOSSUPPORT)\n            set(IOSSUPPORT \"IOSSUPPORT\")\n        else (SDK_IOSSUPPORT)\n            set(IOSSUPPORT \"\")\n        endif (SDK_IOSSUPPORT)\n\n        if (SDK_PRIVATE)\n            set(PRIVATE \"PRIVATE\")\n        else (SDK_PRIVATE)\n            set(PRIVATE \"\")\n        endif (SDK_PRIVATE)\n\n        get_path_preframework(sdk_path\n            ${PRIVATE}\n            ${IOSSUPPORT}\n            PARENT_DIR \"${SDK_PARENT_DIR}\"\n        )\n\n        internal_generate_developer_framework(${name}\n            \"${sdk_path}\"\n            VERSION ${SDK_VERSION}\n            HEADER ${SDK_HEADER}\n        )\n\n        internal_generate_framework_include(${name}\n            \"${sdk_path}\"\n            ${PRIVATE}\n        )\n    endif (REGENERATE_SDK)\nendfunction(generate_sdk_framework)\n\nfunction(generate_sdk_subframework name)\n    cmake_parse_arguments(SDK\n        \"PRIVATE\"\n        \"VERSION;HEADER;BASE_PATH\"\n        \"\"\n        ${ARGN}\n    )\n\n    if (REGENERATE_SDK)\n        if (SDK_PRIVATE)\n            set(PRIVATE \"PRIVATE\")\n        else (SDK_PRIVATE)\n            set(PRIVATE \"\")\n        endif (SDK_PRIVATE)\n\n        internal_generate_developer_framework(${name}\n            \"${SDK_BASE_PATH}\"\n            VERSION ${SDK_VERSION}\n            HEADER ${SDK_HEADER}\n        )\n\n        internal_generate_framework_include(${name}\n            \"${SDK_BASE_PATH}\"\n            ${PRIVATE}\n        )\n    endif (REGENERATE_SDK)\nendfunction(generate_sdk_subframework)\n"
  },
  {
    "path": "cmake/darling_parse_components.cmake",
    "content": "#\n# Takes a single component and returns all its dependencies in `COMPONENT_DEPS`\n#\nfunction(darling_parse_components_get_deps COMPONENT)\n\tif ((\"${COMPONENT}\" STREQUAL \"system\") OR (\"${COMPONENT}\" STREQUAL \"python\") OR (\"${COMPONENT}\" STREQUAL \"ruby\") OR (\"${COMPONENT}\" STREQUAL \"perl\"))\n\t\tset(COMPONENT_DEPS core PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"cli\")\n\t\tset(COMPONENT_DEPS system PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"cli_dev\")\n\t\tset(COMPONENT_DEPS cli python ruby perl dev_gui_common dev_gui_frameworks_common dev_gui_stubs_common PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"cli_extra\")\n\t\tset(COMPONENT_DEPS cli PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"gui\")\n\t\tset(COMPONENT_DEPS system dev_gui_common iokitd PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"gui_frameworks\")\n\t\tset(COMPONENT_DEPS gui dev_gui_frameworks_common PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"gui_stubs\")\n\t\tset(COMPONENT_DEPS gui dev_gui_stubs_common PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"dev_gui_common\")\n\t\tset(COMPONENT_DEPS system PARENT_SCOPE)\n\telseif ((\"${COMPONENT}\" STREQUAL \"dev_gui_frameworks_common\") OR (\"${COMPONENT}\" STREQUAL \"dev_gui_stubs_common\"))\n\t\tset(COMPONENT_DEPS dev_gui_common PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"jsc\")\n\t\tset(COMPONENT_DEPS system PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"webkit\")\n\t\tset(COMPONENT_DEPS dev_gui_frameworks_common dev_gui_stubs_common PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"iokitd\")\n\t\tset(COMPONENT_DEPS system PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"stock\")\n\t\tset(COMPONENT_DEPS cli python ruby perl dev_gui_common dev_gui_frameworks_common dev_gui_stubs_common gui_frameworks gui_stubs PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"cli_dev_gui_stubs\")\n\t\tset(COMPONENT_DEPS dev_gui_common PARENT_SCOPE)\n\telseif (\"${COMPONENT}\" STREQUAL \"all\")\n\t\tset(COMPONENT_DEPS stock jsc webkit cli_extra cli_dev_gui_stubs PARENT_SCOPE)\n\tendif()\nendfunction()\n\nfunction(darling_parse_components DARLING_RAW_COMPONENTS)\n\tstring(REPLACE \",\" \";\" RAW_COMPONENTS_LIST \"${DARLING_RAW_COMPONENTS}\")\n\n\tset(COMPONENTS_TO_PROCESS \"\")\n\n\tforeach(RAW_COMPONENT IN LISTS RAW_COMPONENTS_LIST)\n\t\tstring(STRIP \"${RAW_COMPONENT}\" STRIPPED_COMPONENT)\n\t\tstring(TOLOWER \"${STRIPPED_COMPONENT}\" COMPONENT)\n\n\t\tlist(APPEND COMPONENTS_TO_PROCESS \"${COMPONENT}\")\n\tendforeach()\n\n\tlist(REMOVE_DUPLICATES COMPONENTS_TO_PROCESS)\n\n\tset(COMPONENTS_LIST \"\")\n\n\t# iterate through the list and add each component along with its dependencies.\n\t# this also handles circular dependencies between components (in case we ever have such dependency situations arise).\n\twhile (COMPONENTS_TO_PROCESS)\n\t\t# get the next component and remove it from the list to process\n\t\tlist(GET COMPONENTS_TO_PROCESS 0 COMPONENT)\n\t\tlist(REMOVE_AT COMPONENTS_TO_PROCESS 0)\n\n\t\t# add it to the list of processed components\n\t\tlist(APPEND COMPONENTS_LIST \"${COMPONENT}\")\n\t\tlist(REMOVE_DUPLICATES COMPONENTS_LIST)\n\n\t\t# get its dependencies (into `COMPONENT_DEPS`)\n\t\tdarling_parse_components_get_deps(\"${COMPONENT}\")\n\n\t\t# add them to the list of components to process\n\t\tlist(APPEND COMPONENTS_TO_PROCESS ${COMPONENT_DEPS})\n\t\tlist(REMOVE_DUPLICATES COMPONENTS_TO_PROCESS)\n\n\t\t# remove components that we've already processed\n\t\tlist(REMOVE_ITEM COMPONENTS_TO_PROCESS ${COMPONENTS_LIST})\n\tendwhile()\n\n\t# the \"core\" component is always on\n\tset(COMPONENT_core ON PARENT_SCOPE)\n\n\t# first, set every component off\n\tforeach(COMPONENT IN ITEMS system python ruby perl cli cli_dev cli_extra gui gui_frameworks gui_stubs jsc webkit dev_gui_common dev_gui_frameworks_common dev_gui_stubs_common)\n\t\tset(\"COMPONENT_${COMPONENT}\" OFF PARENT_SCOPE)\n\tendforeach()\n\n\t# now turn on each component that was requested\n\tforeach(COMPONENT IN LISTS COMPONENTS_LIST)\n\t\tmessage(NOTICE \"Including component: ${COMPONENT}\")\n\t\tset(\"COMPONENT_${COMPONENT}\" ON PARENT_SCOPE)\n\tendforeach()\nendfunction()\n"
  },
  {
    "path": "cmake/darling_static_lib.cmake",
    "content": "cmake_policy(SET CMP0069 NEW)\ncmake_policy(SET CMP0063 NEW)\n\ninclude(darling_lib)\n\nfunction(add_darling_static_library name)\n\tcmake_parse_arguments(STATIC_LIB \"FAT;64BIT_ONLY;32BIT_ONLY\" \"\" \"SOURCES\" ${ARGN})\n\n\tset(CMAKE_AR \"${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/ar/${APPLE_TARGET_TRIPLET_PRIMARY}-ar\")\n\tset(CMAKE_RANLIB \"${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/ar/${APPLE_TARGET_TRIPLET_PRIMARY}-ranlib\")\n\tadd_library(${name} STATIC ${STATIC_LIB_SOURCES})\n\n\tset_property(TARGET ${name} APPEND_STRING PROPERTY COMPILE_FLAGS \" -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/\")\n\tset_property(TARGET ${name} APPEND_STRING PROPERTY LINK_FLAGS \" -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/\")\n\tadd_dependencies(${name} lipo)\n\n\tif (BUILD_TARGET_64BIT AND NOT STATIC_LIB_32BIT_ONLY)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\t\tCOMPILE_FLAGS \" -arch ${APPLE_ARCH_64BIT}\")\n\tendif ()\n\n\tif (BUILD_TARGET_32BIT AND NOT STATIC_LIB_64BIT_ONLY)\n\t\tset_property(TARGET ${name} APPEND_STRING PROPERTY\n\t\t\tCOMPILE_FLAGS \" -arch ${APPLE_ARCH_32BIT}\")\n\tendif ()\n\n\tif (STATIC_LIB_FAT)\n\t\tmake_fat(${name})\n\tendif (STATIC_LIB_FAT)\n\n\tadd_dependencies(${name} ranlib ${APPLE_TARGET_TRIPLET_PRIMARY}-ar)\nendfunction(add_darling_static_library)\n"
  },
  {
    "path": "cmake/dsym.cmake",
    "content": "\nfunction(dsym target)\n\tcmake_parse_arguments(DSYM \"EXCLUDE_FROM_ALL\" \"\" \"\" ${ARGN})\n\tstring(TOLOWER \"${CMAKE_BUILD_TYPE}\" build_type)\n\n\tif (DSYM_EXCLUDE_FROM_ALL)\n\t\tset(EXCLUDE_FROM_ALL_ARG \"EXCLUDE_FROM_ALL\")\n\telse()\n\t\tset(EXCLUDE_FROM_ALL_ARG \"\")\n\tendif()\n\n\tif (DSYMUTIL_EXE AND build_type MATCHES debug)\n\n\t\tadd_custom_command(OUTPUT \"${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM\" DEPENDS \"${target}\" COMMAND ${CMAKE_COMMAND} -E env\n\t\t\t\"PATH='${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc:$ENV{PATH}'\"\n\t\t\t\"${DSYMUTIL_EXE}\" \"-flat\" \"-o\" \"${target}.dSYM\" \"$<TARGET_FILE:${target}>\")\n\n\t\tadd_custom_target(\"${target}-dSYM\" ALL DEPENDS \"${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM\" getuuid lipo)\n\n\t\tinstall(FILES \"${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM\" DESTINATION \"${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/files\" ${EXCLUDE_FROM_ALL_ARG})\n\t\tinstall(DIRECTORY DESTINATION \"${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/uuid\" ${EXCLUDE_FROM_ALL_ARG})\n\n\t\tinstall(CODE \"execute_process(COMMAND \\\"${CMAKE_BINARY_DIR}/src/buildtools/getuuid\\\" \\\"${CMAKE_CURRENT_BINARY_DIR}/${target}.dSYM\\\" RESULT_VARIABLE getuuid_result OUTPUT_VARIABLE macho_uuid)\n\n\t\t\tif (NOT \\${getuuid_result} EQUAL 0)\n\t\t\t\tmessage(WARNING \\\"Cannot determine UUID of ${target}\\\")\n\t\t\telse()\n\t\t\t\t# message(STATUS \\\"Installing dsym for ${target}\\\")\n\t\t\t\tforeach (uuid \\${macho_uuid})\n\t\t\t\t\t# message(STATUS \\\"    UUID \\${uuid}\\\")\n\n\t\t\t\t\texecute_process(COMMAND \\\"${CMAKE_COMMAND}\\\" -E create_symlink\n\t\t\t\t\t\t\\\"../files/${target}.dSYM\\\"\n\t\t\t\t\t\t\\$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Caches/dsym/uuid/\\${uuid}.dSYM)\n\t\t\t\tendforeach (uuid)\n\t\t\tendif()\n\t\t\" ${EXCLUDE_FROM_ALL_ARG})\n\tendif ()\n\nendfunction(dsym)\n\nfunction(FindDsymutil)\n\t# llvm-dsymutil-4.0 is not listed, because it's very buggy\n\tfind_program(DSYMUTIL_EXE NAMES \"llvm-dsymutil\" \"dsymutil\" \"dsymutil-7\" \"llvm-dsymutil-7.0\" \"llvm-dsymutil-6.0\" \"llvm-dsymutil-5.0\" \"llvm-dsymutil-3.9\" \"llvm-dsymutil-3.8\" \"llvm-dsymutil-3.7\" \"dsymutil-10 dsymutil-11 dsymutil-12 dsymutil-13 dsymutil-14 dsymutil-15 dsymutil-16\")\n\tif (DSYMUTIL_EXE)\n\t\tmessage(STATUS \"Found dsymutil: ${DSYMUTIL_EXE}\")\n\telse (DSYMUTIL_EXE)\n\t\tmessage(WARNING \"Cannot find llvm-dsymutil, will not produce debug information\")\n\tendif (DSYMUTIL_EXE)\nendfunction(FindDsymutil)\n"
  },
  {
    "path": "cmake/mig.cmake",
    "content": "function(mig defFileName)\n        set(MIG_EXECUTABLE \"${CMAKE_BINARY_DIR}/build-mig\")\n\n        if (NOT MIG_USER_SOURCE_SUFFIX)\n                set (MIG_USER_SOURCE_SUFFIX \"User.c\")\n        endif (NOT MIG_USER_SOURCE_SUFFIX)\n        if (NOT MIG_USER_HEADER_SUFFIX)\n                set (MIG_USER_HEADER_SUFFIX \".h\")\n        endif (NOT MIG_USER_HEADER_SUFFIX)\n        if (NOT MIG_SERVER_SOURCE_SUFFIX)\n                set (MIG_SERVER_SOURCE_SUFFIX \"Server.c\")\n        endif (NOT MIG_SERVER_SOURCE_SUFFIX)\n        if (NOT MIG_SERVER_HEADER_SUFFIX)\n                set (MIG_SERVER_HEADER_SUFFIX \"Server.h\")\n        endif (NOT MIG_SERVER_HEADER_SUFFIX)\n        if (NOT MIG_XTRACE_SUFFIX)\n                set (MIG_XTRACE_SUFFIX \"XtraceMig.c\")\n        endif (NOT MIG_XTRACE_SUFFIX)\n\n        get_directory_property(DirDefs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMPILE_DEFINITIONS)\n        get_directory_property(InclDirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} INCLUDE_DIRECTORIES)\n\n        set(MIG_FLAGS \"\")\n        foreach (def ${DirDefs})\n                set(MIG_FLAGS \"${MIG_FLAGS} -D${def}\")\n        endforeach()\n        foreach (dir ${InclDirs})\n                set(MIG_FLAGS \"${MIG_FLAGS} -I${dir}\")\n        endforeach()\n\n        # message(STATUS \"MIG flags: ${MIG_FLAGS}\")\n        separate_arguments(MIG_FLAGS)\n\n        string(REPLACE \".defs\" \"\" relativeName \"${defFileName}\")\n        get_filename_component(bareName \"${relativeName}\" NAME)\n        get_filename_component(dirName \"${relativeName}\" DIRECTORY)\n\n\tif (NOT MIG_MULTIARCH)\n\t\tset(MIG_MULTIARCH_NO_SUFFIX 1)\n\t\tif (NOT MIG_ARCH)\n\t\t\tset(MIG_MULTIARCH \"${APPLE_ARCH_PRIMARY}\")\n\t\telse()\n\t\t\tset(MIG_MULTIARCH \"${MIG_ARCH}\")\n\t\tendif()\n\tendif()\n\n\t# TODO: Add support for multi-triplet targets\n\tset(MIG_TARGET_TRIPLET_PRIMARY \"${APPLE_TARGET_TRIPLET_PRIMARY}\")\n\n\tforeach(MIG_ARCH ${MIG_MULTIARCH})\n\t\tif (MIG_MULTIARCH_NO_SUFFIX)\n\t\t\tset(MIG_ARCH_SUFFIX \"\")\n\t\telse()\n\t\t\tset(MIG_ARCH_SUFFIX \"-${MIG_ARCH}-\")\n\t\tendif()\n\n\t\tadd_custom_command(OUTPUT\n\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_USER_SOURCE_SUFFIX}\n\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_USER_HEADER_SUFFIX}\n\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_SERVER_SOURCE_SUFFIX}\n\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_SERVER_HEADER_SUFFIX}\n\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_XTRACE_SUFFIX}\n\t\t\tCOMMAND\n\t\t\t\t/bin/mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/${dirName} \\;\n\t\t\t\t${MIG_EXECUTABLE}\n\t\t\t\t-arch ${MIG_ARCH}\n\t\t\t\t-target ${MIG_TARGET_TRIPLET_PRIMARY}\n\t\t\t\t-user ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_USER_SOURCE_SUFFIX}\n\t\t\t\t-header ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_USER_HEADER_SUFFIX}\n\t\t\t\t-server ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_SERVER_SOURCE_SUFFIX}\n\t\t\t\t-sheader ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_SERVER_HEADER_SUFFIX}\n\t\t\t\t-xtracemig ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_XTRACE_SUFFIX}\n\t\t\t\t${MIG_FLAGS}\n\t\t\t\t${CMAKE_CURRENT_SOURCE_DIR}/${defFileName} \\;\n\t\t\t\t# this is so that the xtrace file is always produced so that the command is not constantly re-run\n\t\t\t\t# for MIG definitions that produce no xtrace files\n\t\t\t\ttouch ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_XTRACE_SUFFIX}\n\t\t\tDEPENDS\n\t\t\t\tmigexe migcom\n\t\t)\n\n\t\tif (NOT TARGET ${bareName}_xtrace_mig AND NOT MIG_NO_XTRACE)\n\t\t\tadd_darling_library(${bareName}_xtrace_mig ${CMAKE_CURRENT_BINARY_DIR}/${relativeName}${MIG_ARCH_SUFFIX}${MIG_XTRACE_SUFFIX})\n\t\t\ttarget_compile_options(${bareName}_xtrace_mig PRIVATE\n\t\t\t\t\"-I\" \"${CMAKE_SOURCE_DIR}/src/xtrace/include\"\n\t\t\t\t\"-Wno-extern-initializer\")\n\t\t\tinstall(TARGETS ${bareName}_xtrace_mig DESTINATION \"libexec/darling/usr/lib/darling/xtrace-mig/\")\n\t\tendif (NOT TARGET ${bareName}_xtrace_mig AND NOT MIG_NO_XTRACE)\n\tendforeach()\nendfunction(mig)\n"
  },
  {
    "path": "cmake/pyc.cmake",
    "content": "include(CMakeParseArguments)\n\nfunction(pyc target_name)\n\tcmake_parse_arguments(PYC \"\" \"DESTINATION\" \"SOURCES\" ${ARGN})\n\tset(generated_files \"\")\n\nif (COMPILE_PY2_BYTECODE)\n\tforeach(pyfile ${PYC_SOURCES})\n\t\tSTRING(REGEX REPLACE \"^${CMAKE_CURRENT_SOURCE_DIR}\" \"\" pyfile_rel ${pyfile})\n\t\t\n\t\tget_filename_component(bareName \"${pyfile_rel}\" NAME)\n\t\tget_filename_component(dirName \"${pyfile_rel}\" DIRECTORY)\n\n\t\t# message(STATUS \"Process ${pyfile}, dirName ${dirName}, bareName ${bareName}\")\n\t\tfile(MAKE_DIRECTORY \"${CMAKE_CURRENT_BINARY_DIR}/${dirName}\")\n\n\t\tset(output_name \"${CMAKE_CURRENT_BINARY_DIR}/${dirName}/${bareName}c\")\n\t\tadd_custom_command(OUTPUT \"${output_name}\"\n\t\t\tCOMMAND \"${CMAKE_SOURCE_DIR}/tools/pyc\" \"${pyfile}\" \"${CMAKE_CURRENT_BINARY_DIR}/${dirName}/${bareName}c\"\n\t\t\tWORKING_DIRECTORY \"${CMAKE_CURRENT_SOURCE_DIR}\")\n\t\t\n\t\tlist(APPEND generated_files \"${output_name}\")\n\t\tinstall(FILES \"${output_name}\" DESTINATION \"${PYC_DESTINATION}\")\n\tendforeach(pyfile)\n\n\tadd_custom_target(\"${target_name}\" ALL DEPENDS ${generated_files})\n\nendif (COMPILE_PY2_BYTECODE)\nendfunction(pyc)\n\n"
  },
  {
    "path": "cmake/setcap.cmake",
    "content": "include(FindSetcap)\n\nfunction(setcap file caps)\ninstall(CODE \"execute_process(\n\t\tCOMMAND\n\t\t\t\t${SETCAP_EXECUTABLE}\n\t\t\t\t${caps}\n\t\t\t\t\\$ENV{DESTDIR}/${CMAKE_INSTALL_PREFIX}/${file}\n\t\tRESULT_VARIABLE\n\t\t\t\t_SETCAP_RESULT\n\t\t)\n\t\tif( _SETCAP_RESULT )\n\t\t\t\tmessage( WARNING \\\"setcap failed (${_SETCAP_RESULT}).\\\")\n\t\tendif()\"\n)\n\nendfunction(setcap)\n\n"
  },
  {
    "path": "cmake/use_ld64.cmake",
    "content": "FUNCTION(use_ld64 target)\n\tset_property(TARGET ${target} APPEND_STRING PROPERTY\n\t\tLINK_FLAGS \" -fuse-ld=${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/ld64/src/${APPLE_TARGET_TRIPLET_PRIMARY}-ld \")\n\n\tif (COMPONENT_gui)\n\t\tset(COCOTRON_FW_PATH \"${CMAKE_BINARY_DIR}/src/external/cocotron\")\n\t\tset(IMAGE_IO_PATH \"${CMAKE_BINARY_DIR}/src/frameworks/ImageIO/ImageIO\")\n\telse()\n\t\tset(COCOTRON_FW_PATH \"${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs\")\n\t\tset(IMAGE_IO_PATH \"${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs/ImageIO/ImageIO\")\n\tendif()\n\n\tset_property(TARGET ${target} APPEND_STRING PROPERTY\n\t\tLINK_FLAGS \" -B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/ld64/src/ \\\n-B ${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/misc/ \\\n-target ${APPLE_TARGET_TRIPLET_PRIMARY} -Wl,-Z \\\n-Wl,-sdk_version,${CMAKE_OSX_DEPLOYMENT_TARGET} \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_c.dylib:${CMAKE_BINARY_DIR}/src/external/libc/libsystem_c_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_darwin.dylib:${CMAKE_BINARY_DIR}/src/external/libc/libdarwin/libsystem_darwin.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_kernel.dylib:${CMAKE_BINARY_DIR}/src/external/xnu/darling/src/libsystem_kernel/libsystem_kernel_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libunwind.dylib:${CMAKE_BINARY_DIR}/src/external/libunwind/libunwind_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_m.dylib:${CMAKE_BINARY_DIR}/src/libm/libsystem_m_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libcompiler_rt.dylib:${CMAKE_BINARY_DIR}/src/external/compiler-rt/lib/builtins/libcompiler_rt_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libdyld.dylib:${CMAKE_BINARY_DIR}/src/external/dyld/libsystem_dyld_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_info.dylib:${CMAKE_BINARY_DIR}/src/external/Libinfo/libsystem_info_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_blocks.dylib:${CMAKE_BINARY_DIR}/src/external/libclosure/libsystem_blocks_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/libc++abi.dylib:${CMAKE_BINARY_DIR}/src/external/libcxxabi/libc++abi.dylib \\\n-Wl,-dylib_file,/usr/lib/system/liblaunch.dylib:${CMAKE_BINARY_DIR}/src/launchd/liblaunch/liblaunch_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libkeymgr.dylib:${CMAKE_BINARY_DIR}/src/external/keymgr/libkeymgr_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libquarantine.dylib:${CMAKE_BINARY_DIR}/src/quarantine/libquarantine.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libremovefile.dylib:${CMAKE_BINARY_DIR}/src/external/removefile/libremovefile.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libcopyfile.dylib:${CMAKE_BINARY_DIR}/src/external/copyfile/libcopyfile.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_coreservices.dylib:${CMAKE_BINARY_DIR}/src/libsystem_coreservices/libsystem_coreservices.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_notify.dylib:${CMAKE_BINARY_DIR}/src/external/libnotify/libsystem_notify_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libdispatch.dylib:${CMAKE_BINARY_DIR}/src/external/libdispatch/liblibdispatch_shared_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libmacho.dylib:${CMAKE_BINARY_DIR}/src/external/cctools/libmacho/libmacho_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_sandbox.dylib:${CMAKE_BINARY_DIR}/src/sandbox/libsystem_sandbox.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_duct.dylib:${CMAKE_BINARY_DIR}/src/duct/src/libsystem_duct_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_pthread.dylib:${CMAKE_BINARY_DIR}/src/external/libpthread/src/libsystem_pthread_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_platform.dylib:${CMAKE_BINARY_DIR}/src/external/libplatform/libplatform_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_trace.dylib:${CMAKE_BINARY_DIR}/src/external/libtrace/libsystem_trace_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libcorecrypto.dylib:${CMAKE_BINARY_DIR}/src/external/corecrypto/libcorecrypto_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_dnssd.dylib:${CMAKE_BINARY_DIR}/src/lib/system/dnssd/libsystem_dnssd.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_networkextension.dylib:${CMAKE_BINARY_DIR}/src/networkextension/libsystem_networkextension.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_coretls.dylib:${CMAKE_BINARY_DIR}/src/external/coretls/libsystem_coretls.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libcommonCrypto.dylib:${CMAKE_BINARY_DIR}/src/external/commoncrypto/libcommonCrypto.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_asl.dylib:${CMAKE_BINARY_DIR}/src/external/syslog/libsystem_asl.tproj/libsystem_asl_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/libresolv.9.dylib:${CMAKE_BINARY_DIR}/src/external/libresolv/libresolv.9.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libxpc.dylib:${CMAKE_BINARY_DIR}/src/external/libxpc/libxpc_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/libc++.1.dylib:${CMAKE_BINARY_DIR}/src/external/libcxx/libc++.1.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_malloc.dylib:${CMAKE_BINARY_DIR}/src/external/libmalloc/libsystem_malloc_firstpass.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libsystem_configuration.dylib:${CMAKE_BINARY_DIR}/src/external/configd/libsystem_configuration.dylib \\\n-Wl,-dylib_file,/usr/lib/libobjc.A.dylib:${CMAKE_BINARY_DIR}/src/external/objc4/runtime/libobjc.A.dylib \\\n-Wl,-dylib_file,/usr/lib/libicucore.A.dylib:${CMAKE_BINARY_DIR}/src/external/icu/icuSources/libicucore.A.dylib \\\n-Wl,-dylib_file,/usr/lib/libncurses.5.4.dylib:${CMAKE_BINARY_DIR}/src/external/ncurses/ncurses/ncurses/libncurses.5.4.dylib \\\n-Wl,-dylib_file,/usr/lib/libDiagnosticMessagesClient.dylib:${CMAKE_BINARY_DIR}/src/libDiagnosticMessagesClient/libDiagnosticMessagesClient.dylib \\\n-Wl,-dylib_file,/usr/lib/libSystem.B.dylib:${CMAKE_BINARY_DIR}/src/external/libsystem/libSystem.B.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Python.framework/Versions/2.7/Python:${CMAKE_BINARY_DIR}/src/external/python/2.7/Python-2.7.16/Python \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:${CMAKE_BINARY_DIR}/src/external/corefoundation/CoreFoundation \\\n-Wl,-dylib_file,/System/Library/Frameworks/Ruby.framework/Versions/2.0/Ruby:${CMAKE_BINARY_DIR}/src/external/ruby/Ruby \\\n-Wl,-dylib_file,/usr/lib/libiconv.2.dylib:${CMAKE_BINARY_DIR}/src/libiconv/libiconv.2.dylib \\\n-Wl,-dylib_file,/usr/lib/libcharset.1.dylib:${CMAKE_BINARY_DIR}/src/external/libiconv/libcharset.1.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork:${CMAKE_BINARY_DIR}/src/external/cfnetwork/src/CFNetwork \\\n-Wl,-dylib_file,/usr/lib/libxml2.2.dylib:${CMAKE_BINARY_DIR}/src/external/libxml2/libxml2.2.dylib \\\n-Wl,-dylib_file,/usr/lib/libpam.2.dylib:${CMAKE_BINARY_DIR}/src/external/openpam/libpam.2.dylib \\\n-Wl,-dylib_file,/usr/lib/libbsm.0.dylib:${CMAKE_BINARY_DIR}/src/external/bsm/libbsm.0.dylib \\\n-Wl,-dylib_file,/usr/lib/libauto.dylib:${CMAKE_BINARY_DIR}/src/external/libauto/libauto.dylib \\\n-Wl,-dylib_file,/usr/lib/libxar.1.dylib:${CMAKE_BINARY_DIR}/src/external/xar/libxar.1.dylib \\\n-Wl,-dylib_file,/usr/lib/libsqlite3.0.dylib:${CMAKE_BINARY_DIR}/src/external/sqlite/libsqlite3.0.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/CryptoTokenKit.framework/Versions/A/CryptoTokenKit:${CMAKE_BINARY_DIR}/src/frameworks/CryptoTokenKit/CryptoTokenKit \\\n-Wl,-dylib_file,/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit:${CMAKE_BINARY_DIR}/src/external/IOKitUser/IOKit \\\n-Wl,-dylib_file,/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration:${CMAKE_BINARY_DIR}/src/frameworks/SystemConfiguration/SystemConfiguration\t\\\n-Wl,-dylib_file,/usr/lib/libbz2.1.0.dylib:${CMAKE_BINARY_DIR}/src/external/bzip2/libbz2.1.0.dylib \\\n-Wl,-dylib_file,/usr/lib/libssl.0.9.8.dylib:${CMAKE_BINARY_DIR}/src/external/openssl/src/libssl.0.9.8.dylib \\\n-Wl,-dylib_file,/usr/lib/libcrypto.0.9.8.dylib:${CMAKE_BINARY_DIR}/src/external/openssl/src/libcrypto.0.9.8.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:${CMAKE_BINARY_DIR}/src/native/libGL.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib:${CMAKE_BINARY_DIR}/src/native/libGLU.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage:${CMAKE_BINARY_DIR}/src/frameworks/CoreImage/CoreImage \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/FSEvents/FSEvents \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/LaunchServices/LaunchServices \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/CarbonCore/CarbonCore \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/AE/AE \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/OSServices/OSServices \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/DictionaryServices/DictionaryServices \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/Metadata/Metadata \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/SearchKit/SearchKit \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/src/SharedFileList/SharedFileList \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/vMisc/libvMisc.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/vDSP/libvDSP.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/BLAS/libBLAS.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/LAPACK/libLAPACK.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/LinearAlgebra/libLinearAlgebra.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/SparseBLAS/libSparseBLAS.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/Quadrature/libQuadrature.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/BNNS/libBNNS.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib\\\n:${CMAKE_BINARY_DIR}/src/frameworks/Accelerate/vecLib/Sparse/libSparse.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/ColorSync.framework/Versions/A/ColorSync:${CMAKE_BINARY_DIR}/src/frameworks/ColorSync/ColorSync \\\n-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ATS.framework/Versions/A/ATS\\\n:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/ATS/ATS \\\n-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSyncLegacy.framework/Versions/A/ColorSyncLegacy\\\n:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/ColorSyncLegacy/ColorSyncLegacy \\\n-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/HIServices\\\n:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/HIServices/HIServices \\\n-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/LangAnalysis.framework/Versions/A/LangAnalysis\\\n:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/LangAnalysis/LangAnalysis \\\n-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/PrintCore.framework/Versions/A/PrintCore\\\n:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/PrintCore/PrintCore \\\n-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/QD.framework/Versions/A/QD\\\n:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/QD/QD \\\n-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/SpeechSynthesis.framework/Versions/A/SpeechSynthesis\\\n:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/SpeechSynthesis/SpeechSynthesis \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices:${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/CoreServices \\\n-Wl,-dylib_file,/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices:${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/ApplicationServices \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics:${COCOTRON_FW_PATH}/CoreGraphics/CoreGraphics \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreText.framework/Versions/A/CoreText:${COCOTRON_FW_PATH}/CoreText/CoreText \\\n-Wl,-dylib_file,/System/Library/Frameworks/ImageIO.framework/Versions/A/ImageIO:${IMAGE_IO_PATH} \\\n-Wl,-dylib_file,/System/Library/Frameworks/LocalAuthentication.framework/Versions/A/LocalAuthentication:${CMAKE_BINARY_DIR}/src/frameworks/LocalAuthentication/LocalAuthentication \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreVideo.framework/Versions/A/CoreVideo:${CMAKE_BINARY_DIR}/src/frameworks/CoreVideo/CoreVideo \\\n-Wl,-dylib_file,/System/Library/PrivateFrameworks/FMDB.framework/Versions/A/FMDB:${CMAKE_BINARY_DIR}/src/external/fmdb/FMDB \\\n-Wl,-dylib_file,/usr/lib/system/libkxld.dylib:${CMAKE_BINARY_DIR}/src/external/xnu/libkern/kxld/libkxld.dylib \\\n-Wl,-dylib_file,/usr/lib/libcrypto.44.dylib:${CMAKE_BINARY_DIR}/src/external/libressl-2.8.3/libcrypto.44.dylib \\\n-Wl,-dylib_file,/usr/lib/libssl.46.dylib:${CMAKE_BINARY_DIR}/src/external/libressl-2.8.3/libssl.46.dylib \\\n-Wl,-dylib_file,/usr/lib/libMobileGestalt.dylib:${CMAKE_BINARY_DIR}/src/libMobileGestalt/libMobileGestalt.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Security.framework/Versions/A/Security:${CMAKE_BINARY_DIR}/src/external/security/OSX/Security \\\n-Wl,-dylib_file,/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation:${CMAKE_BINARY_DIR}/src/external/foundation/Foundation \\\n-Wl,-dylib_file,/usr/lib/libz.1.dylib:${CMAKE_BINARY_DIR}/src/external/zlib/libz.1.dylib \\\n-Wl,-dylib_file,/usr/lib/libcoretls_cfhelpers.dylib:${CMAKE_BINARY_DIR}/src/external/coretls/libcoretls_cfhelpers.dylib \\\n-Wl,-dylib_file,/System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression:${CMAKE_BINARY_DIR}/src/private-frameworks/AppleFSCompression/AppleFSCompression \\\n-Wl,-dylib_file,/usr/lib/libcoretls.dylib:${CMAKE_BINARY_DIR}/src/external/coretls/libcoretls.dylib \\\n-Wl,-dylib_file,/usr/lib/libenergytrace.dylib:${CMAKE_BINARY_DIR}/src/external/energytrace/libenergytrace.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory:${CMAKE_BINARY_DIR}/src/frameworks/OpenDirectory/CFOpenDirectory/CFOpenDirectory \\\n-Wl,-dylib_file,/usr/lib/libnetwork.dylib:${CMAKE_BINARY_DIR}/src/external/libnetwork/libnetwork.dylib \\\n-Wl,-dylib_file,/usr/lib/system/libcache.dylib:${CMAKE_BINARY_DIR}/src/libcache/libcache.dylib \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/CommonPanels.framework/Versions/A/CommonPanels:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/CommonPanels/CommonPanels \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Help.framework/Versions/A/Help:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/Help/Help \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/HIToolbox:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/HIToolbox/HIToolbox \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/ImageCapture.framework/Versions/A/ImageCapture:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/ImageCapture/ImageCapture \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Ink.framework/Versions/A/Ink:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/Ink/Ink \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/OpenScripting.framework/Versions/A/OpenScripting:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/OpenScripting/OpenScripting \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/Print.framework/Versions/A/Print:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/Print/Print \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SecurityHI.framework/Versions/A/SecurityHI:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/SecurityHI/SecurityHI \\\n-Wl,-dylib_file,/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/SpeechRecognition.framework/Versions/A/SpeechRecognition:${CMAKE_BINARY_DIR}/src/frameworks/Carbon/SpeechRecognition/SpeechRecognition \\\n-Wl,-dylib_file,/System/Library/Frameworks/CoreData.framework/Versions/A/CoreData:${COCOTRON_FW_PATH}/CoreData/CoreData \\\n-Wl,-dylib_file,/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore:${COCOTRON_FW_PATH}/QuartzCore/QuartzCore \\\n-Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL:${CMAKE_BINARY_DIR}/src/frameworks/OpenGL/OpenGL \\\n-Wl,-dylib_file,/System/Library/PrivateFrameworks/Onyx2D.framework/Versions/A/Onyx2D:${CMAKE_BINARY_DIR}/src/external/cocotron/Onyx2D/Onyx2D \\\n-Wl,-dylib_file,/System/Library/PrivateFrameworks/UIFoundation.framework/Versions/A/UIFoundation:${CMAKE_BINARY_DIR}/src/private-frameworks/UIFoundation/UIFoundation \\\n-Wl,-dylib_file,/usr/lib/darling/libelfloader.dylib:${CMAKE_BINARY_DIR}/src/libelfloader/libelfloader.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libavcodec.dylib:${CMAKE_BINARY_DIR}/src/native/libavcodec.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libavformat.dylib:${CMAKE_BINARY_DIR}/src/native/libavformat.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libswresample.dylib:${CMAKE_BINARY_DIR}/src/native/libswresample.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libavutil.dylib:${CMAKE_BINARY_DIR}/src/native/libavutil.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libcairo.dylib:${CMAKE_BINARY_DIR}/src/native/libcairo.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libdbus.dylib:${CMAKE_BINARY_DIR}/src/native/libdbus.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libEGL.dylib:${CMAKE_BINARY_DIR}/src/native/libEGL.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libfontconfig.dylib:${CMAKE_BINARY_DIR}/src/native/libfontconfig.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libFreeType.dylib:${CMAKE_BINARY_DIR}/src/native/libFreeType.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libfuse.dylib:${CMAKE_BINARY_DIR}/src/native/libfuse.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libgif.dylib:${CMAKE_BINARY_DIR}/src/native/libgif.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libjpeg.dylib:${CMAKE_BINARY_DIR}/src/native/libjpeg.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libpng.dylib:${CMAKE_BINARY_DIR}/src/native/libpng.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libpulse.dylib:${CMAKE_BINARY_DIR}/src/native/libpulse.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libtiff.dylib:${CMAKE_BINARY_DIR}/src/native/libtiff.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libX11.dylib:${CMAKE_BINARY_DIR}/src/native/libX11.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libXcursor.dylib:${CMAKE_BINARY_DIR}/src/native/libXcursor.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libXext.dylib:${CMAKE_BINARY_DIR}/src/native/libXext.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libxkbfile.dylib:${CMAKE_BINARY_DIR}/src/native/libxkbfile.dylib \\\n-Wl,-dylib_file,/usr/lib/native/libXRandR.dylib:${CMAKE_BINARY_DIR}/src/native/libXRandR.dylib\")\n\n\tadd_dependencies(${target} ${APPLE_TARGET_TRIPLET_PRIMARY}-ld)\n\nENDFUNCTION(use_ld64)\n\nfunction(reexport reexporter reexportee reexportee_output)\n\tadd_dependencies(${reexporter} ${reexportee})\n\tset_property(TARGET ${reexporter} APPEND_STRING PROPERTY LINK_FLAGS \" -Wl,-reexport_library,${reexportee_output} \")\nendfunction(reexport)\n"
  },
  {
    "path": "cmake/versioner.cmake",
    "content": "function(versioner project versions default_version)\n\n\tset(PROJECT ${project})\n\tstring(TOUPPER ${project} UPROJECT)\n\tset(DEFAULTVERSION ${default_version})\n\n\tset(VERSIONS \"\")\n\tlist(LENGTH versions NVERSIONS)\n\n\tforeach(version IN LISTS versions)\n\t\tset(VERSIONS \"${VERSIONS} \\\"${version}\\\",\")\n\tendforeach(version)\n\n\tconfigure_file(${CMAKE_SOURCE_DIR}/src/external/perl/versioner/versions.h.in ${CMAKE_CURRENT_BINARY_DIR}/versions.h)\n\tinclude_directories(${CMAKE_CURRENT_BINARY_DIR})\n\n\tadd_definitions(-std=c99)\n\tadd_darling_executable(${project} ${CMAKE_SOURCE_DIR}/src/external/perl/versioner/versioner.c)\n\ttarget_link_libraries(${project} CoreFoundation)\n\n\tinstall(TARGETS ${project} DESTINATION libexec/darling/usr/bin)\nendfunction(versioner)\n"
  },
  {
    "path": "cmake/wrap_elf.cmake",
    "content": "if(COMMAND cmake_policy)\n\t# cmake_policy(SET CMP0177 NEW)\nendif(COMMAND cmake_policy)\n\ninclude(darling_lib)\n#include(CMakeParseArguments)\n\nfunction(wrap_elf name elfname)\n\tadd_custom_command(\n\t\tOUTPUT\n\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${name}.c\n\t\tCOMMAND\n\t\t\t${CMAKE_BINARY_DIR}/src/libelfloader/wrapgen/wrapgen\n\t\t\t\t${elfname} \n\t\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${name}.c\n\t\t\t\t${CMAKE_CURRENT_BINARY_DIR}/${name}_vars.h\n\t\tDEPENDS\n\t\t\twrapgen\n\t)\n\n\tif (ARGC LESS 3)\n\t\tset(destination \"usr/lib/native\")\n\telse (ARGC LESS 3)\n\t\tset(destination ${ARGV2})\n\tendif (ARGC LESS 3)\n\n\tset(DYLIB_INSTALL_NAME \"/${destination}/lib${name}.dylib\")\n\tinclude_directories(${CMAKE_SOURCE_DIR}/src/startup/mldr/elfcalls)\n\tadd_darling_library(${name} SHARED ${CMAKE_CURRENT_BINARY_DIR}/${name}.c)\n\ttarget_link_libraries(${name} PRIVATE system)\n\tmake_fat(${name})\n\tinstall(TARGETS ${name} DESTINATION libexec/darling/${destination})\nendfunction(wrap_elf)\n\n"
  },
  {
    "path": "cmake/xcproj.cmake",
    "content": "# Create developer dir symlinks\n\nadd_custom_target(xcproj_symlinks\n\tDEPENDS Foundation bsdln\n\tCOMMAND env BUILD=${CMAKE_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Developer/symlinks.sh\n\tWORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/Developer\n)\n\nfunction(xcproj)\n\tset(options)\n\tset(oneValueArgs PROJECT)\n\tset(multiValueArgs EXECUTABLES LIBRARIES FRAMEWORKS)\n\tcmake_parse_arguments(xcproj \"${options}\" \"${oneValueArgs}\" \"${multiValueArgs}\" ${ARGN})\n\n\tset(product_dir ${CMAKE_CURRENT_BINARY_DIR}/Build/Products/Release)\n\t\n\tforeach(executable IN LISTS xcproj_EXECUTABLES)\n\t\tset(output ${output} ${product_dir}/${executable})\n\tendforeach()\n\n\tforeach(library IN LISTS xcproj_LIBRARIES)\n\t\tset(output ${output} ${product_dir}/${library}.dylib)\n\tendforeach()\n\n\tforeach(framework IN LISTS xcproj_FRAMEWORKS)\n\t\tset(output ${output} ${product_dir}/${framework}.framework/${framework})\n\tendforeach()\n\n\tadd_custom_command(\n\t\tOUTPUT ${output}\n\t\tCOMMAND env RUNTIME_SPEC_PATH=${CMAKE_SOURCE_DIR}/src/external/xcbuild/Specifications DEVELOPER_DIR=${CMAKE_SOURCE_DIR}/Developer ${CMAKE_BINARY_DIR}/src/external/xcbuild/Libraries/xcdriver/xcodebuild -project ${CMAKE_CURRENT_SOURCE_DIR}/${xcproj_PROJECT} -derivedDataPath ${CMAKE_CURRENT_BINARY_DIR}\n\t\tDEPENDS xcbuild xcproj_symlinks\n\t)\n\n\tforeach(framework IN LISTS xcproj_FRAMEWORKS)\n\t\tadd_custom_target(${framework} ALL\n\t\t\tDEPENDS ${product_dir}/${framework}.framework/${framework}\n\t\t)\n\tendforeach()\nendfunction(xcproj)\n"
  },
  {
    "path": "debian/compat",
    "content": "10\n"
  },
  {
    "path": "debian/control",
    "content": "Source: darling\nMaintainer: Lubos Dolezel <lubos@dolezel.info>\nSection: misc\nPriority: optional\nStandards-Version: 4.4.0\nBuild-Depends: cmake, clang | clang-9, bison, flex, libfuse-dev, libudev-dev, pkg-config, libc6-dev-i386, linux-headers-amd64|linux-headers-generic, gcc-multilib, libcairo2-dev, libgl1-mesa-dev, libtiff5-dev, libfreetype6-dev, libelf-dev, libxml2-dev, libegl1-mesa-dev, libglu1-mesa-dev, libfontconfig1-dev, libbsd-dev, debhelper, ninja-build, libxrandr-dev, libxcursor-dev, libgif-dev, libavcodec-dev, libavformat-dev, libswresample-dev, libavutil-dev, libpulse-dev, libavformat-dev, libavcodec-dev, libdbus-1-dev, libxkbfile-dev, libcap-dev, llvm-dev, libvulkan-dev, libcap2-bin\n\nPackage: darling\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, darling-cli, darling-python2, darling-ruby, darling-perl, darling-gui, darling-gui-stubs, darling-pyobjc\nDescription: Darling\n Translation layer for running macOS software on Linux\n\nPackage: darling-extra\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, darling, darling-jsc, darling-cli-extra\nDescription: Extra components for Darling\n Extra components for Darling that are not part of a typical (\"stock\") installation\n\nPackage: darling-core\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, xdg-user-dirs\nDescription: Darling core components\n Core components of Darling\n\nPackage: darling-system\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-core\nDescription: Darling system components\n System components of Darling\n\nPackage: darling-cli\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-system, darling-cli-gui-common, darling-cli-python2-common\nDescription: Darling CLI components\n CLI components of Darling\n\nPackage: darling-ffi\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-core\nDescription: libffi for Darling\n libffi built for use within Darling\n\nPackage: darling-cli-devenv\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-cli, darling-python2, darling-ruby, darling-perl, darling-cli-devenv-gui-common, darling-cli-devenv-gui-stubs-common, darling-iosurface\nDescription: Darling developer environment\n A Darling environment for CLI-only programs for building and developing using the command line developer tools\nConflicts: darling-gui, darling-gui-stubs\n\nPackage: darling-cli-gui-common\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-system\nDescription: Darling CLI and GUI common components\n Components of Darling that are shared between the CLI and GUI components\n\nPackage: darling-iokitd\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-system, darling-iosurface\nDescription: Darling IOKit daemon\n IOKit daemon for Darling\n\nPackage: darling-cli-devenv-gui-common\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-system\nDescription: Darling developer environment and GUI common components\n Components of Darling that are shared between the developer environment and the GUI components\n\nPackage: darling-cli-extra\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-cli\nDescription: Extra Darling CLI components\n Non-standard CLI components of Darling\n\nPackage: darling-gui\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-system, darling-cli-devenv-gui-common, darling-iokitd, darling-cli-gui-common, darling-iosurface\nDescription: Darling GUI components\n GUI components of Darling\n\nPackage: darling-python2\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-core, darling-cli-python2-common, darling-ffi\nDescription: Python 2 for Darling\n Python 2 (and associated programs) built for use within Darling\n\nPackage: darling-cli-python2-common\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-core\nDescription: Darling CLI and Python 2 common components\n Components of Darling that are shared between the CLI and Python 2 components\n\nPackage: darling-pyobjc\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-gui-stubs, darling-python2\nDescription: PyObjC for Darling\n PyObjC built for use within Darling\n\nPackage: darling-ruby\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-core, darling-ffi\nDescription: Ruby for Darling\n Ruby built for use within Darling\n\nPackage: darling-perl\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-core\nDescription: Perl for Darling\n Perl built for use within Darling\n\nPackage: darling-jsc-webkit-common\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-system\nDescription: Darling JavaScriptCore and WebKit common components\n Components of Darling that are shared between JavaScriptCore and WebKit\n\nPackage: darling-jsc\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-system, darling-jsc-webkit-common\nDescription: JavaScriptCore for Darling\n JavaScriptCore built for use within Darling\n\nPackage: darling-iosurface\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-system\nDescription: IOSurface framework for Darling\n IOSurface framework built for use within Darling\n\nPackage: darling-cli-devenv-gui-stubs-common\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-cli-devenv-gui-common\nDescription: Darling developer environment and GUI stubs common components\n Components of Darling that are shared between the developer environment and GUI stub components\n\nPackage: darling-gui-stubs\nArchitecture: amd64\nDepends: ${shlibs:Depends}, ${misc:Depends}, ${macho:Depends}, darling-gui, darling-cli-devenv-gui-stubs-common\nDescription: Darling GUI stub components\n GUI stub components of Darling\n"
  },
  {
    "path": "debian/copyright",
    "content": "Copyright (C) 2012-2023 Darling developers\nCopyright (C) 1999-2017 Apple, Inc.\nCopyright (C) 1989-2005 Free Software Foundation, Inc.\n\n"
  },
  {
    "path": "debian/darling-cli-devenv-gui-common.install",
    "content": "cli-devenv-gui-common/usr /\n"
  },
  {
    "path": "debian/darling-cli-devenv-gui-stubs-common.install",
    "content": "cli-devenv-gui-stubs-common/usr /\n"
  },
  {
    "path": "debian/darling-cli-devenv.install",
    "content": "cli-devenv/usr /\n"
  },
  {
    "path": "debian/darling-cli-extra.install",
    "content": "cli-extra/usr /\n"
  },
  {
    "path": "debian/darling-cli-gui-common.install",
    "content": "cli-gui-common/usr /\n"
  },
  {
    "path": "debian/darling-cli-python-common.install",
    "content": "cli-python-common/usr /\n"
  },
  {
    "path": "debian/darling-cli.install",
    "content": "cli/usr /\n"
  },
  {
    "path": "debian/darling-core.install",
    "content": "core/usr /\ntools/shutdown-user.sh usr/lib/darling\n"
  },
  {
    "path": "debian/darling-core.postinst",
    "content": "#!/bin/sh\nset -e\n\necho \">>> Shutting down old instances of Darling\"\nbash /usr/lib/darling/shutdown-user.sh\n"
  },
  {
    "path": "debian/darling-core.prerm",
    "content": "#!/bin/sh\nset -e\n\necho \">>> Shutting down old instances of Darling\"\nbash /usr/lib/darling/shutdown-user.sh\n"
  },
  {
    "path": "debian/darling-ffi.install",
    "content": "ffi/usr /\n"
  },
  {
    "path": "debian/darling-gui-stubs.install",
    "content": "gui-stubs/usr /\n"
  },
  {
    "path": "debian/darling-gui.install",
    "content": "gui/usr /\n"
  },
  {
    "path": "debian/darling-iokitd-cli-devenv-gui-common.install",
    "content": "iokitd-cli-devenv-gui-common/usr /\n"
  },
  {
    "path": "debian/darling-iokitd.install",
    "content": "iokitd/usr /\n"
  },
  {
    "path": "debian/darling-iosurface.install",
    "content": "iosurface/usr /\n"
  },
  {
    "path": "debian/darling-jsc-webkit-common.install",
    "content": "jsc-webkit-common/usr /\n"
  },
  {
    "path": "debian/darling-jsc.install",
    "content": "jsc/usr /\n"
  },
  {
    "path": "debian/darling-perl.install",
    "content": "perl/usr /\n"
  },
  {
    "path": "debian/darling-pyobjc.install",
    "content": "pyobjc/usr /\n"
  },
  {
    "path": "debian/darling-python2.install",
    "content": "python2/usr /\n"
  },
  {
    "path": "debian/darling-ruby.install",
    "content": "ruby/usr /\n"
  },
  {
    "path": "debian/darling-system.install",
    "content": "system/usr /\n"
  },
  {
    "path": "debian/darling.lintian-overrides",
    "content": "executable-not-elf-or-script usr/libexec/darling/*\npackage-installs-python-bytecode usr/libexec/darling/*\nruby-script-but-no-ruby-dep usr/libexec/darling/*\nwrong-path-for-interpreter usr/libexec/darling/*\nscript-not-executable usr/libexec/darling/*\ndescription-starts-with-package-name\ndescription-too-short Darling\ndescription-is-pkg-name Darling\nsetuid-binary usr/bin/darling 4755 root/root\nexecutable-not-elf-or-script usr/lib/darling/*\nshell-script-fails-syntax-check usr/libexec/darling/*\nincorrect-path-for-interpreter usr/libexec/darling/*\nbinary-without-manpage usr/bin/darling\nsymlink-is-self-recursive usr/libexec/darling/*\nembedded-javascript-library usr/libexec/*\nscript-uses-bin-env usr/libexec/darling/*\n"
  },
  {
    "path": "debian/rules",
    "content": "#!/usr/bin/make -f\n\nINDICES = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20\n\nDARLING_COMPONENTS = \\\n\tcore \\\n\tsystem \\\n\tcli \\\n\tffi \\\n\tcli_dev \\\n\tcli_gui_common \\\n\tiokitd \\\n\tcli_dev_gui_common \\\n\tcli_extra \\\n\tgui \\\n\tpython \\\n\tcli_python_common \\\n\tpyobjc \\\n\truby \\\n\tperl \\\n\tjsc_webkit_common \\\n\tjsc \\\n\tiosurface \\\n\tcli_dev_gui_stubs_common \\\n\tgui_stubs\n\nPACKAGE_SUFFIXES = \\\n\tcore \\\n\tsystem \\\n\tcli \\\n\tffi \\\n\tcli-devenv \\\n\tcli-gui-common \\\n\tiokitd \\\n\tcli-devenv-gui-common \\\n\tcli-extra \\\n\tgui \\\n\tpython2 \\\n\tcli-python2-common \\\n\tpyobjc \\\n\truby \\\n\tperl \\\n\tjsc-webkit-common \\\n\tjsc \\\n\tiosurface \\\n\tcli-devenv-gui-stubs-common \\\n\tgui-stubs\n\n%:\n\tdh $@ --builddirectory=debbuild\n\noverride_dh_auto_configure:\n\tmkdir debbuild -p\n\tcd debbuild && CFLAGS=\"\" CXXFLAGS=\"\" CPPFLAGS=\"\" LDFLAGS=\"\" cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DDEBIAN_PACKAGING=ON -DJSC_UNIFIED_BUILD=ON\n\noverride_dh_auto_build:\n\tcd debbuild && $(MAKE) -j$(shell nproc)\n\noverride_dh_auto_install:\n\tcd debbuild; $(foreach INDEX,$(INDICES), \\\n\t\tDESTDIR=../debian/tmp/$(word $(INDEX),$(PACKAGE_SUFFIXES)) cmake -DCOMPONENT=$(word $(INDEX),$(DARLING_COMPONENTS)) -P cmake_install.cmake ; \\\n\t)\n\noverride_dh_makeshlibs:\n\tdh_makeshlibs\n\t$(foreach INDEX,$(INDICES), \\\n\t\ttools/debian/make-shlibdeps $(word $(INDEX),$(PACKAGE_SUFFIXES)) ; \\\n\t)\n\noverride_dh_clean:\n\tdh_clean -X.orig -X.bak -X~\n\trm -rf debbuild\n\noverride_dh_fixperms:\n\tdh_fixperms -Xusr/bin/darling -Xusr/bin/darlingserver -Xusr/libexec/darling/usr/libexec/darling/mldr -Xusr/libexec/darling/usr/libexec/darling/mldr32\n\noverride_dh_update_autotools_config:\n"
  },
  {
    "path": "debian/source/format",
    "content": "3.0 (quilt)\n"
  },
  {
    "path": "etc/resolv.conf",
    "content": "nameserver 8.8.8.8\nnameserver 8.8.4.4\n"
  },
  {
    "path": "rpm/.dockerignore",
    "content": "SOURCES\nRPMS\nSRPMS"
  },
  {
    "path": "rpm/Dockerfile",
    "content": "ARG OS=fedora:37\nFROM ${OS}\n\nSHELL [\"bash\", \"-euxvc\"]\n\nRUN dnf install -y rpm-build dnf-utils rpmdevtools git; \\\n    source /etc/os-release; \\\n    dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-${VERSION_ID}.noarch.rpm; \\\n    dnf clean all\n\nCOPY SPECS/darling.spec /darling.spec\n\n# Bootstrap\nRUN yum-builddep -y /darling.spec; \\\n    dnf clean all\n\nRUN rm /darling.spec\n\nRUN mkdir -p /root/rpmbuild/SOURCES\n\nCMD bash -xv /src/rpm/build.bsh\n"
  },
  {
    "path": "rpm/SPECS/darling-cli-devenv.spec",
    "content": "# NOTE: this package MUST be built after building the main `darling` package\n\n#disable binary striping, in case this is a problem\n%global __os_install_post %{nil}\n#Disable debug packages, since these are emulated files mostly\n%define debug_package %{nil}\n%define commit_date %{getenv:DARLING_COMMIT_DATE}\n%if \"%{commit_date}\" == \"\"\n\t%define commit_date 0\n%endif\n%global _buildshell /bin/bash\n\nName:           darling-cli-devenv\nVersion:        0.1.%{commit_date}\nRelease:        1%{?dist}\nSummary:        Darling developer environment\n\nGroup:          Utility\nLicense:        GPLv3\nURL:            https://www.darlinghq.org/\n# Use this line for Source0 if there are ever official versions.\n# Source0:        https://github.com/darlinghq/darling/archive/%%{version}/%%{name}-%%{version}.tar.gz\nSource0:        %{name}.tar.gz\nBuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)\n\nBuildRequires:  bash\n\nRequires:       darling-cli darling-python2 darling-ruby darling-perl darling-cli-devenv-gui-common darling-cli-devenv-gui-stubs-common darling-iosurface\nConflicts:      darling-gui darling-gui-stubs\n\n%description\nA Darling environment for CLI-only programs for building and developing using the command line developer tools\n\n%prep\n%setup -q -n %{name}\n\n%build\ntrue\n\n%install\n[ \"$RPM_BUILD_ROOT\" != \"/\" ] && rm -rf $RPM_BUILD_ROOT\ncp -rla . %{?buildroot}/\n\n%files\n%{_libexecdir}/darling\n\n%changelog\n* Tue May 02 2023 Ariel Abreu <facekapow@outlook.com> - 0.1.20230502-1\n- Initial version working for Fedora 37\n- Split package off from `darling` package\n"
  },
  {
    "path": "rpm/SPECS/darling-macho-deps.spec",
    "content": "%global __os_install_post %{nil}\n%define debug_package %{nil}\n%define commit_date %{getenv:DARLING_COMMIT_DATE}\n%if \"%{commit_date}\" == \"\"\n\t%define commit_date 0\n%endif\n%global _buildshell /bin/bash\n\nName:           darling-macho-deps\nVersion:        0.1.%{commit_date}\nRelease:        1%{?dist}\nSummary:        Dependency generator for Mach-O files (used by Darling)\n\nGroup:          Utility\nLicense:        GPLv3\nURL:            https://www.darlinghq.org/\n# Use this line for Source0 if there are ever official versions.\n# Source0:        https://github.com/darlinghq/darling/archive/%%{version}/%%{name}-%%{version}.tar.gz\nSource0:        %{name}.tar.gz\nBuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)\n\nBuildRequires:  bash\n\n%description\nAn RPM dependency generator for Mach-O files, used by Darling to generate ELF dependencies for the library it builds\n\n%prep\n%setup -q -n %{name}\n\n%build\ntrue\n\n%install\n[ \"$RPM_BUILD_ROOT\" != \"/\" ] && rm -rf $RPM_BUILD_ROOT\n%{__mkdir_p} %{?buildroot}/usr/lib/rpm/fileattrs\ncp darling.attr %{?buildroot}/usr/lib/rpm/fileattrs/\ncp darling-deps.req %{?buildroot}/usr/lib/rpm/\n\n%files\n/usr/lib/rpm/fileattrs/darling.attr\n/usr/lib/rpm/darling-deps.req\n\n%changelog\n* Tue May 02 2023 Ariel Abreu <facekapow@outlook.com> - 0.1.20230502-1\n- Initial version working for Fedora 37\n"
  },
  {
    "path": "rpm/SPECS/darling.spec",
    "content": "#disable binary striping, in case this is a problem\n%global __os_install_post %{nil}\n#Disable debug packages, since these are emulated files mostly\n%define debug_package %{nil}\n%define commit_date %{getenv:DARLING_COMMIT_DATE}\n%if \"%{commit_date}\" == \"\"\n\t%define commit_date 0\n%endif\n%global _buildshell /bin/bash\n\n# explicitly ignore all the bogus dependencies that the auto-scanner finds in `/usr/libexec/darling`\n#\n# note that we *don't* want to simply use `__requires_exclude_from` to exclude `/usr/libexec/darling` from scanning,\n# since we *do* want our Mach-O scanner to scan that tree (and there's no way to only exclude paths for some dependency generators; it's all or nothing).\n%global __requires_exclude ^(/bin/sed|/bin/sh|/usr/bin/perl|/usr/bin/python2.7|/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7|/usr/bin/python|/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby|/usr/bin/env|/usr/bin/ruby)$\n\nName:           darling\nVersion:        0.1.%{commit_date}\nRelease:        1%{?dist}\nSummary:        Darling\n\nGroup:          Utility\nLicense:        GPLv3\nURL:            https://www.darlinghq.org/\n# Use this line for Source0 if there are ever official versions.\n# Source0:        https://github.com/darlinghq/darling/archive/%%{version}/%%{name}-%%{version}.tar.gz\nSource0:        %{name}.tar.gz\nBuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)\n\nBuildRequires:  cmake clang bison flex python2 glibc-devel(x86-64) glibc-devel(x86-32)\nBuildRequires:  fuse-devel systemd-devel\nBuildRequires:  cairo-devel freetype-devel(x86-64) fontconfig-devel(x86-64)\nBuildRequires:  freetype-devel(x86-32) fontconfig-devel(x86-32) make\nBuildRequires:  libjpeg-turbo-devel(x86-64) libtiff-devel(x86-64)\nBuildRequires:  libjpeg-turbo-devel(x86-32)\nBuildRequires:  libglvnd-devel mesa-libGL-devel mesa-libEGL-devel\nBuildRequires:  libxml2-devel elfutils-libelf-devel\nBuildRequires:  libbsd-devel\nBuildRequires:  ffmpeg-devel pulseaudio-libs-devel openssl-devel giflib-devel\nBuildRequires:  libXrandr-devel libXcursor-devel libxkbfile-devel dbus-devel mesa-libGLU-devel\nBuildRequires:  vulkan-headers llvm-devel libcap-devel bash vulkan-loader-devel\n\nRequires: darling-cli darling-python2 darling-ruby darling-perl darling-gui darling-gui-stubs darling-pyobjc\n\n%description\nTranslation layer for running macOS software on Linux\n\n%package extra\nSummary:       Extra components for Darling\nGroup:         Utility\nRequires:      darling darling-jsc darling-cli-extra\n\n%description extra\nExtra components for Darling that are not part of a typical (\"stock\") installation\n\n%package core\nSummary:    Darling core components\nGroup:      Utility\nRequires:   xdg-user-dirs\n\n%description core\nCore components of Darling\n\n%package system\nSummary:    Darling system components\nGroup:      Utility\nRequires:   darling-core\n\n%description system\nSystem components of Darling\n\n%package cli\nSummary:    Darling CLI components\nGroup:      Utility\nRequires:   darling-system darling-cli-gui-common darling-cli-python2-common\n\n%description cli\nCLI components of Darling\n\n%package ffi\nSummary:    libffi for Darling\nGroup:      Utility\nRequires:   darling-core\n\n%description ffi\nlibffi built for use within Darling\n\n%package cli-gui-common\nSummary:    Darling CLI and GUI common components\nGroup:      Utility\nRequires:   darling-system\n\n%description cli-gui-common\nComponents of Darling that are shared between the CLI and GUI components\n\n%package iokitd\nSummary:    Darling IOKit daemon\nGroup:      Utility\nRequires:   darling-system darling-iosurface\n\n%description iokitd\nIOKit daemon for Darling\n\n%package cli-devenv-gui-common\nSummary:    Darling developer environment and GUI common components\nGroup:      Utility\nRequires:   darling-system\n\n%description cli-devenv-gui-common\nComponents of Darling that are shared between the developer environment and the GUI components\n\n%package cli-extra\nSummary:    Extra Darling CLI components\nGroup:      Utility\nRequires:   darling-cli\n\n%description cli-extra\nNon-standard CLI components of Darling\n\n%package gui\nSummary:    Darling GUI components\nGroup:      Utility\nRequires:   darling-system darling-cli-devenv-gui-common darling-iokitd darling-cli-gui-common darling-iosurface\n\n%description gui\nGUI components of Darling\n\n%package python2\nSummary:    Python 2 for Darling\nGroup:      Utility\nRequires:   darling-core darling-cli-python2-common darling-ffi\n\n%description python2\nPython 2 (and associated programs) built for use within Darling\n\n%package cli-python2-common\nSummary:    Darling CLI and Python 2 common components\nGroup:      Utility\nRequires:   darling-core\n\n%description cli-python2-common\nComponents of Darling that are shared between the CLI and Python 2 components\n\n%package pyobjc\nSummary:    PyObjC for Darling\nGroup:      Utility\nRequires:   darling-gui-stubs darling-python2\n\n%description pyobjc\nPyObjC built for use within Darling\n\n%package ruby\nSummary:    Ruby for Darling\nGroup:      Utility\nRequires:   darling-core darling-ffi\n\n%description ruby\nRuby built for use within Darling\n\n%package perl\nSummary:    Perl for Darling\nGroup:      Utility\nRequires:   darling-core\n\n%description perl\nPerl built for use within Darling\n\n%package jsc-webkit-common\nSummary:    Darling JavaScriptCore and WebKit common components\nGroup:      Utility\nRequires:   darling-system\n\n%description jsc-webkit-common\nComponents of Darling that are shared between JavaScriptCore and WebKit\n\n%package jsc\nSummary:    JavaScriptCore for Darling\nGroup:      Utility\nRequires:   darling-system darling-jsc-webkit-common\n\n%description jsc\nJavaScriptCore built for use within Darling\n\n%package iosurface\nSummary:    IOSurface framework for Darling\nGroup:      Utility\nRequires:   darling-system\n\n%description iosurface\nIOSurface framework built for use within Darling\n\n%package cli-devenv-gui-stubs-common\nSummary:    Darling developer environment and GUI stubs common components\nGroup:      Utility\nRequires:   darling-cli-devenv-gui-common\n\n%description cli-devenv-gui-stubs-common\nComponents of Darling that are shared between the developer environment and GUI stub components\n\n%package gui-stubs\nSummary:    Darling GUI stub components\nGroup:      Utility\nRequires:   darling-gui darling-cli-devenv-gui-stubs-common\n\n%description gui-stubs\nGUI stub components of Darling\n\n%prep\n%setup -q -n %{name}\n\n%build\n%{__mkdir_p} build\npushd build\n\t# Release is broken https://github.com/darlinghq/darling/issues/331\n\t#          -DCMAKE_BUILD_TYPE=Release \\\n\tCFLAGS=\"\" CXXFLAGS=\"\" CPPFLAGS=\"\" LDFLAGS=\"\" \\\n\t%{__cmake} -DCMAKE_INSTALL_PREFIX=%{_prefix} \\\n\t           -DOpenGL_GL_PREFERENCE=GLVND \\\n\t           -DDEBIAN_PACKAGING=ON \\\n\t           -DJSC_UNIFIED_BUILD=ON \\\n\t           ..\n\t%{make_build} -j `nproc`\npopd\n\n%install\n[ \"$RPM_BUILD_ROOT\" != \"/\" ] && rm -rf $RPM_BUILD_ROOT\nDARLING_COMPONENTS=(\n\tcore\n\tsystem\n\tcli\n\tffi\n\tcli_gui_common\n\tiokitd\n\tcli_dev_gui_common\n\tcli_extra\n\tgui\n\tpython\n\tcli_python_common\n\tpyobjc\n\truby\n\tperl\n\tjsc_webkit_common\n\tjsc\n\tiosurface\n\tcli_dev_gui_stubs_common\n\tgui_stubs\n)\nPACKAGE_SUFFIXES=(\n\tcore\n\tsystem\n\tcli\n\tffi\n\tcli-gui-common\n\tiokitd\n\tcli-devenv-gui-common\n\tcli-extra\n\tgui\n\tpython2\n\tcli-python2-common\n\tpyobjc\n\truby\n\tperl\n\tjsc-webkit-common\n\tjsc\n\tiosurface\n\tcli-devenv-gui-stubs-common\n\tgui-stubs\n)\npushd build\n\tfor index in {0..18}; do\n\t\trm -rf tmp/${PACKAGE_SUFFIXES[index]}\n\t\tDESTDIR=tmp/${PACKAGE_SUFFIXES[index]} %{__cmake} -DCOMPONENT=${DARLING_COMPONENTS[index]} -P cmake_install.cmake\n\t\tfind tmp/${PACKAGE_SUFFIXES[index]} \\( ! -type d -o -type d -empty \\) -printf '\"/%%P\"\\n' > files.${PACKAGE_SUFFIXES[index]}.txt\n\t\tcp -rla tmp/${PACKAGE_SUFFIXES[index]}/. %{?buildroot}/\n\tdone\n\n\t# pack up a \"source\" (actually binary) tarball for `darling-cli-devenv`\n\t# NOTE: this is probably not the best approach. fix this if something better comes up.\n\trm -rf tmp/cli-devenv\n\tDESTDIR=tmp/cli-devenv %{__cmake} -DCOMPONENT=cli_dev -P cmake_install.cmake\n\trm -f %{_sourcedir}/darling-cli-devenv.tar.gz\n\ttar --transform \"s|^\\./|darling-cli-devenv/|\" -cf %{_sourcedir}/darling-cli-devenv.tar.gz -C tmp/cli-devenv .\npopd\n\n%files\n%doc LICENSE\n\n%files extra\n\n%files core -f build/files.core.txt\n%files system -f build/files.system.txt\n%files cli -f build/files.cli.txt\n%files ffi -f build/files.ffi.txt\n%files cli-gui-common -f build/files.cli-gui-common.txt\n%files iokitd -f build/files.iokitd.txt\n%files cli-devenv-gui-common -f build/files.cli-devenv-gui-common.txt\n%files cli-extra -f build/files.cli-extra.txt\n%files gui -f build/files.gui.txt\n%files python2 -f build/files.python2.txt\n%files cli-python2-common -f build/files.cli-python2-common.txt\n%files pyobjc -f build/files.pyobjc.txt\n%files ruby -f build/files.ruby.txt\n%files perl -f build/files.perl.txt\n%files jsc-webkit-common -f build/files.jsc-webkit-common.txt\n%files jsc -f build/files.jsc.txt\n%files iosurface -f build/files.iosurface.txt\n%files cli-devenv-gui-stubs-common -f build/files.cli-devenv-gui-stubs-common.txt\n%files gui-stubs -f build/files.gui-stubs.txt\n\n%changelog\n* Tue May 02 2023 Ariel Abreu <facekapow@outlook.com> - 0.1.20230502-1\n- Update to latest version and Fedora 37\n- Split package into multiple packages (one for each component of Darling)\n\n* Tue Aug 18 2020 Andy Neff <andy@visionsystemsinc.com> - 0.1.20200331-1\n- Update for latest version and Fedora 31\n\n* Mon Aug 12 2019 Andy Neff <andy@visionsystemsinc.com> - 0.1-4\n- Update for Fedora 30\n\n* Tue Mar 12 2019 Andy Neff <andy@visionsystemsinc.com> - 0.1-3\n- Remove bad commented macro, cleanup, and verify master works on Fedora 29\n\n* Wed Jul 18 2018 Andy Neff <andy@visionsystemsinc.com> - 0.1-2\n- Update for Fedora 28 and new master\n\n* Tue Jan 23 2018 Andy Neff <andy@visionsystemsinc.com> - 0.1-1\n- Initial version working for Fedora 27\n"
  },
  {
    "path": "rpm/build.bsh",
    "content": "#!/usr/bin/env bash\n\nset -eu\n\nmkdir -p $HOME/rpmbuild/SOURCES\n\nif [ -e \"/src/rpm/SOURCES/darling.tar.gz\" ]; then\n  ln -sf /src/rpm/SOURCES/darling.tar.gz $HOME/rpmbuild/SOURCES/\nelse\n  # Preparing tarball\n  tar --transform \"s|^\\./|./darling/|\" -cf $HOME/rpmbuild/SOURCES/darling.tar.gz -C /src --exclude=.git --exclude SOURCES --exclude SRPMS --exclude RPMS --exclude BUILD .\nfi\n\nif [ -e \"/src/rpm/SOURCES/darling-macho-deps.tar.gz\" ]; then\n  ln -sf /src/rpm/SOURCES/darling-macho-deps.tar.gz $HOME/rpmbuild/SOURCES/\nelse\n  tar --transform \"s|^\\./|darling-macho-deps/|\" -cf $HOME/rpmbuild/SOURCES/darling-macho-deps.tar.gz -C /src/tools/rpm .\nfi\n\nif (cd /src && git describe --tags HEAD); then\n  DARLING_COMMIT_DATE=\"$(cd /src; git describe --tags HEAD)\"\n  export DARLING_COMMIT_DATE=\"${DARLING_COMMIT_DATE//-/}\"\nelse\n  # default to the current date\n  export DARLING_COMMIT_DATE=\"$(printf '%(%Y%m%d)T\\n' -1)\"\nfi\n\nrpmbuild -bb /src/rpm/SPECS/darling-macho-deps.spec\nsudo rpm -U --force $HOME/rpmbuild/RPMS/x86_64/darling-macho-deps*.rpm\n\n#spectool -g -R /src/rpm/SPECS/darling.spec\nrpmbuild -bb /src/rpm/SPECS/darling.spec\nrpmbuild -bb /src/rpm/SPECS/darling-cli-devenv.spec\n"
  },
  {
    "path": "rpm/darling.repo",
    "content": "[darling]\nname=Darling\nbaseurl=file:///data/git/darling-update/rpm/RPMS/x86_64\nenabled=1\ngpgcheck=0\n"
  },
  {
    "path": "rpm/docker-compose.yml",
    "content": "version: \"2.3\"\n\nservices:\n  rpm:\n    build:\n      context: .\n      args:\n        - OS=${RPM_OS-fedora:37}\n    volumes:\n      - ..:/src:ro\n      - ./RPMS:/root/rpmbuild/RPMS\n      - ./SRPMS:/root/rpmbuild/SRPMS\n"
  },
  {
    "path": "rpm/tarup.bsh",
    "content": "#!/usr/bin/env bash\n\nset -euxv\n\nCWD=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\"; pwd)\"\nif [ -e \"${CWD}/SOURCES/darling.tar.gz\" ]; then\n  rm \"${CWD}/SOURCES/darling.tar.gz\"\nfi\nif [ -e \"${CWD}/SOURCES/darling-macho-deps.tar.gz\" ]; then\n  rm \"${CWD}/SOURCES/darling-macho-deps.tar.gz\"\nfi\ntar --transform \"s|^\\./|darling/|\" -cf \"${CWD}/SOURCES/darling.tar.gz\" -C \"${CWD}/..\" --exclude=.git --exclude SOURCES --exclude SRPMS --exclude RPMS --exclude BUILD .\ntar --transform \"s|^\\./|darling-macho-deps/|\" -cf \"${CWD}/SOURCES/darling-macho-deps.tar.gz\" -C \"${CWD}/../tools/rpm\" .\n"
  },
  {
    "path": "src/CMakeLists.txt",
    "content": "project(darling-src)\n\nunset(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES)\nunset(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES)\n\ncmake_policy(SET CMP0005 NEW)\n\nset(CMAKE_MODULE_PATH \"${CMAKE_SOURCE_DIR}/cmake\")\ninclude(mig)\ninclude(pyc)\n\n# Force linker settings to match 3.30.5 behavior\n# Apple's ld64 in cctools does not support the `--dependency-file` flag\nset(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED FALSE)\nset(CMAKE_C_LINKER_DEPFILE_SUPPORTED FALSE)\nset(CMAKE_CXX_LINK_DEPENDS_USE_LINKER FALSE)\nset(CMAKE_C_LINK_DEPENDS_USE_LINKER FALSE)\n\nset(CMAKE_CXX_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED FALSE)\nset(CMAKE_C_LINK_LIBRARY_USING_WHOLE_ARCHIVE_SUPPORTED FALSE)\n\nset(CMAKE_CXX_LINKER_INFORMATION_LOADED FALSE)\nset(CMAKE_C_LINKER_INFORMATION_LOADED FALSE)\nset(CMAKE_CXX_USE_LINKER_INFORMATION FALSE)\nset(CMAKE_C_USE_LINKER_INFORMATION FALSE)\n\n#\n# start core components\n#\n# projects included here are strictly necessary for basic executables to function at all.\n# it should be very clear which projects belong here. a project should only be here if it\n# is one of the following or is necessary for one of the following:\n#   * darlingserver\n#   * dyld\n#   * mldr\n#   * libSystem\n#   * the host-side `darling` executable\n# this includes any build tools that are necessary to build any of those projects.\n#\n# these projects are always built\n#\n\nset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"core\")\n\n#add_subdirectory(external/xcbuild)\nadd_subdirectory(bsdln)\n\nadd_definitions(\n\t-DDARLING\n)\n\nset(DARLING TRUE)\n\nexecute_process(\n\tCOMMAND git rev-parse --abbrev-ref HEAD\n\tWORKING_DIRECTORY ${CMAKE_SOURCE_DIR}\n\tOUTPUT_VARIABLE GIT_BRANCH\n\tOUTPUT_STRIP_TRAILING_WHITESPACE\n)\nexecute_process(\n\tCOMMAND git log -1 --format=%h\n\tWORKING_DIRECTORY ${CMAKE_SOURCE_DIR}\n\tOUTPUT_VARIABLE GIT_COMMIT_HASH\n\tOUTPUT_STRIP_TRAILING_WHITESPACE\n)\n\nconfigure_file(include/darling-config.h.in include/darling-config.h)\ninclude_directories(\"${CMAKE_CURRENT_BINARY_DIR}/include\")\ninclude_directories(\"${CMAKE_CURRENT_SOURCE_DIR}/include\")\n\ninclude(compiler_include)\nGetCompilerInclude(COMPILER_INC_PATH)\nmessage(STATUS \"Compiler include path detected as ${COMPILER_INC_PATH}\")\ninclude_directories(SYSTEM ${COMPILER_INC_PATH})\n\nfind_package(BISON)\nfind_package(FLEX)\n\nset(DARLING_SDK_RELATIVE_PATH \"Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk\")\nset(DARLING_ROOT_RELATIVE_TO_SDK \"../../../../../..\")\n\nadd_subdirectory(external/cctools-port/cctools/ld64/src)\nadd_subdirectory(external/cctools-port/cctools/ar)\n#add_subdirectory(external/cctools-port/cctools/as)\nadd_subdirectory(external/cctools-port/cctools/misc)\n\n#add_subdirectory(util)\n#add_subdirectory(libmach-o)\n#add_subdirectory(libdyld)\nadd_subdirectory(buildtools)\nadd_subdirectory(hosttools)\nadd_subdirectory(libelfloader/wrapgen)\n# add the Linux build of libsimple now\nadd_subdirectory(libsimple \"${CMAKE_CURRENT_BINARY_DIR}/libsimple-linux\")\nadd_subdirectory(external/darlingserver)\nadd_subdirectory(startup)\n\ninclude_directories(${CMAKE_SOURCE_DIR}/basic-headers)\n\nadd_subdirectory(external/bootstrap_cmds)\n\nadd_definitions(\n\t-D__APPLE__\n\t-D__DYNAMIC__\n\t-D__MACH__\n\t-D_DARWIN_C_SOURCE\n\t-D_POSIX_C_SOURCE\n\t-DDARWIN\n\t-DTARGET_OS_MAC=1\n\t-DPLATFORM_MacOSX\n)\n\nset(CMAKE_AR \"${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/ar/${APPLE_TARGET_TRIPLET_PRIMARY}-ar\")\nset(CMAKE_RANLIB \"${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/ar/${APPLE_TARGET_TRIPLET_PRIMARY}-ranlib\")\n#set(CMAKE_ASM_COMPILER \"${CMAKE_BINARY_DIR}/src/external/cctools-port/cctools/as/${APPLE_TARGET_TRIPLET_PRIMARY}-as\")\n\n# set macOS deployment version\nSET(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\")\nSET(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\")\nset(CMAKE_OBJC_FLAGS \"${CMAKE_OBJC_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}\")\n\nadd_definitions(-target ${APPLE_TARGET_TRIPLET_PRIMARY})\ninclude(darling_lib)\ninclude(darling_static_lib)\ninclude(darling_bundle)\n\nfile(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${DARLING_SDK_RELATIVE_PATH}/usr/include)\n\ninclude_directories(\n\t${CMAKE_SOURCE_DIR}/${DARLING_SDK_RELATIVE_PATH}/usr/include\n\t${CMAKE_BINARY_DIR}/${DARLING_SDK_RELATIVE_PATH}/usr/include\n\t${CMAKE_SOURCE_DIR}/framework-include\n\t${CMAKE_SOURCE_DIR}/framework-private-include\n)\n\ninclude_directories(AFTER\n\t${CMAKE_CURRENT_SOURCE_DIR}/external/lkm/include\n\t${CMAKE_CURRENT_SOURCE_DIR}/libDiagnosticMessagesClient/include\n\t${CMAKE_CURRENT_SOURCE_DIR}/libMobileGestalt/include\n\t${CMAKE_CURRENT_SOURCE_DIR}/lib/include\n\n\t# necessary because this is the expected behavior when using `xml2-config --cflags`\n\t# it adds `$sdk_dir/libxml2` to the include path\n\t${CMAKE_SOURCE_DIR}/${DARLING_SDK_RELATIVE_PATH}/usr/include/libxml2\n\t${CMAKE_BINARY_DIR}/${DARLING_SDK_RELATIVE_PATH}/usr/include/libxml2\n)\n\n# add the Mach-O build of libsimple now\nadd_subdirectory(libsimple \"${CMAKE_CURRENT_BINARY_DIR}/libsimple-darling\")\n\nadd_subdirectory(external/libkqueue)\n\n# needs to come before libplatform because it generates mig headers that libplatform needs\nadd_subdirectory(external/xnu/darling/src/libsystem_kernel)\n\nadd_subdirectory(external/libplatform)\nadd_subdirectory(external/libpthread)\nadd_subdirectory(external/libtrace)\nadd_subdirectory(external/libc)\nadd_subdirectory(vchroot)\n\nadd_subdirectory(lib)\n\n# libstdc++ doesn't use the libc++ headers included below\nadd_subdirectory(external/libstdcxx)\n\ninclude_directories(BEFORE\n\t${CMAKE_SOURCE_DIR}/src/external/libcxx/include\n)\n\nadd_definitions(-D_LIBC_NO_FEATURE_VERIFICATION)\n\nadd_subdirectory(launchd)\nadd_subdirectory(libm)\nadd_subdirectory(external/dyld)\nadd_subdirectory(external/libxpc)\nadd_subdirectory(libgcc)\nadd_subdirectory(external/copyfile)\nadd_subdirectory(external/Libinfo)\nadd_subdirectory(external/compiler-rt/lib/builtins)\nadd_subdirectory(external/libnotify)\nadd_subdirectory(duct/src)\nadd_subdirectory(external/syslog)\nadd_subdirectory(external/libclosure)\nadd_subdirectory(external/keymgr)\nadd_subdirectory(external/libunwind)\nadd_subdirectory(external/libmalloc)\nadd_subdirectory(external/coretls)\nadd_subdirectory(libsystem_coreservices)\nadd_subdirectory(external/removefile)\nadd_subdirectory(quarantine)\nadd_subdirectory(sandbox)\nadd_subdirectory(external/corecrypto)\nadd_subdirectory(external/commoncrypto)\nadd_subdirectory(networkextension)\nadd_subdirectory(libcache)\nadd_subdirectory(external/configd)\nadd_subdirectory(external/libsystem)\nadd_subdirectory(external/objc4/runtime)\nadd_subdirectory(external/corefoundation)\nadd_subdirectory(external/icu/icuSources)\nadd_subdirectory(external/csu)\nadd_subdirectory(external/libresolv)\nadd_subdirectory(external/usertemplate)\nadd_subdirectory(external/bsm)\nadd_subdirectory(external/zlib)\n# shellspawn can actually spawn any executable we want within the prefix,\n# so we include it in core to allow executables to be executed with the `darling` command.\nadd_subdirectory(shellspawn)\n\n# typically considered CLI components, but required by launchctl (which is necessary for launchd to bootstrap)\nadd_subdirectory(external/libedit)\nadd_subdirectory(external/ncurses)\n\n#\n# end core components\n#\n# the rest of the projects are not all neatly separated like the core components are because\n# some projects build multiple targets which may be part of different components\n#\n\nif (COMPONENT_system)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"system\")\n\n\tadd_subdirectory(external/libiconv)\n\tadd_subdirectory(external/bzip2)\n\tadd_subdirectory(external/libressl-2.8.3)\n\tadd_subdirectory(external/libarchive/libarchive)\n\tadd_subdirectory(external/liblzma)\n\tadd_subdirectory(external/OpenDirectory)\n\tadd_subdirectory(external/openssl_certificates)\n\tadd_subdirectory(external/bash)\n\tadd_subdirectory(external/zsh)\n\tadd_subdirectory(external/tcsh)\n\tadd_subdirectory(external/files)\n\tadd_subdirectory(external/crontabs)\n\tadd_subdirectory(external/swift)\nendif()\n\nif (COMPONENT_cli)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli\")\n\n\tadd_subdirectory(external/darling-dmg)\n\tadd_subdirectory(external/libutil)\n\tadd_subdirectory(xtrace)\n\tadd_subdirectory(external/libxslt)\n\tadd_subdirectory(external/openssl/src)\n\tadd_subdirectory(external/nghttp2)\n\tadd_subdirectory(external/passwordserver_sasl)\n\tadd_subdirectory(external/curl)\n\tadd_subdirectory(external/OpenLDAP)\n\tadd_subdirectory(external/pcre)\n\tadd_subdirectory(external/libtelnet)\n\tadd_subdirectory(external/remote_cmds)\n\tadd_subdirectory(external/IOKitTools)\n\tadd_subdirectory(external/apr)\n\tadd_subdirectory(xcselect)\n\tadd_subdirectory(external/file/file)\n\tadd_subdirectory(external/shell_cmds)\n\tadd_subdirectory(external/file_cmds)\n\tadd_subdirectory(external/text_cmds)\n\tadd_subdirectory(external/adv_cmds)\n\tadd_subdirectory(external/network_cmds)\n\tadd_subdirectory(external/system_cmds)\n\tadd_subdirectory(external/mail_cmds)\n\tadd_subdirectory(external/doc_cmds)\n\tadd_subdirectory(external/basic_cmds)\n\tadd_subdirectory(external/misc_cmds)\n\tadd_subdirectory(external/patch_cmds)\n\tadd_subdirectory(external/less)\n\tadd_subdirectory(external/grep)\n\tadd_subdirectory(external/awk)\n\tadd_subdirectory(external/groff)\n\tadd_subdirectory(external/nano)\n\tadd_subdirectory(external/man)\n\tadd_subdirectory(external/bc)\n\tadd_subdirectory(external/zip)\n\tadd_subdirectory(external/installer)\n\tadd_subdirectory(external/bind9)\n\tadd_subdirectory(external/netcat)\n\tadd_subdirectory(external/gpatch)\n\tadd_subdirectory(external/gnudiff)\n\tadd_subdirectory(external/openssh)\n\tadd_subdirectory(external/top)\n\tadd_subdirectory(external/screen)\n\tadd_subdirectory(unxip)\n\tadd_subdirectory(external/rsync)\n\tadd_subdirectory(external/DSTools)\n\tadd_subdirectory(libsysmon)\n\tadd_subdirectory(PlistBuddy)\n\tadd_subdirectory(libquit)\n\tadd_subdirectory(external/lzfse)\n\tadd_subdirectory(clt)\n\tadd_subdirectory(diskutil)\n\tadd_subdirectory(ditto)\n\n\t# these aren't used by anything we build (they're just included because they're also present in macOS)\n\t# TODO: maybe we should introduce another component (e.g. `lib_stock`) for libraries we don't need but are expected in a stock macOS installation.\n\tadd_subdirectory(external/libressl-2.2.9)\n\tadd_subdirectory(external/libressl-2.5.5)\n\tadd_subdirectory(external/libressl-2.6.5)\nendif()\n\nif (COMPONENT_python OR COMPONENT_ruby)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"ffi\")\n\tadd_subdirectory(external/libffi)\nendif()\n\nif (COMPONENT_cli_dev)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_dev\")\n\tadd_subdirectory(libgmalloc)\nendif()\n\nif (COMPONENT_cli OR COMPONENT_dev_gui_common)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_gui_common\")\n\n\tadd_subdirectory(external/libxml2)\n\tadd_subdirectory(external/foundation)\n\tadd_subdirectory(external/cfnetwork/src)\n\tadd_subdirectory(external/sqlite)\n\tadd_subdirectory(external/openpam)\n\tadd_subdirectory(external/energytrace)\n\tadd_subdirectory(external/xnu/libkern/kxld)\n\tadd_subdirectory(external/IOKitUser)\n\tadd_subdirectory(external/xar)\n\tadd_subdirectory(libpmenergy)\n\tadd_subdirectory(external/DirectoryService)\n\tadd_subdirectory(libacm)\n\tadd_subdirectory(libaks)\n\tadd_subdirectory(libcompression)\n\tadd_subdirectory(external/Heimdal)\n\tadd_subdirectory(libDiagnosticMessagesClient)\n\tadd_subdirectory(libsandbox)\n\tadd_subdirectory(opendirectory_internal)\n\tadd_subdirectory(external/fmdb)\n\tadd_subdirectory(external/libnetwork)\n\tadd_subdirectory(libMobileGestalt)\n\tadd_subdirectory(external/MITKerberosShim)\n\tadd_subdirectory(MobileKeyBag)\nendif()\n\nif (COMPONENT_iokitd)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME iokitd)\n\tadd_subdirectory(external/iokitd)\nendif()\n\nif (COMPONENT_dev_gui_common)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_dev_gui_common\")\n\n\tadd_subdirectory(libaccessibility)\n\tadd_subdirectory(external/openjdk) # *should* be in `cli` component, but requires AppKit\nendif()\n\nif (COMPONENT_cli_extra)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_extra\")\n\n\tadd_subdirectory(external/gnutar/gnutar)\nendif()\n\nif (COMPONENT_gui)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"gui\")\n\n\tadd_subdirectory(external/cocotron)\n\n\tadd_subdirectory(CoreAudio)\n\tadd_subdirectory(external/cups)\n\tadd_subdirectory(pboard)\n\n\t# not currently used by anything we build\n\tadd_subdirectory(external/dbuskit)\nendif()\n\nif (COMPONENT_python)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"python\")\n\n\tadd_subdirectory(external/python_modules)\n\tadd_subdirectory(external/python/2.7/Python-2.7.16)\nendif()\n\nif (COMPONENT_cli OR COMPONENT_python)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_python_common\")\n\n\tadd_subdirectory(external/BerkeleyDB)\n\tadd_subdirectory(external/expat)\nendif()\n\nif (COMPONENT_gui_frameworks AND COMPONENT_gui_stubs AND COMPONENT_python)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"pyobjc\")\n\n\t# TODO: pyobjc should only build individual modules if the respective components are enabled.\n\t#       right now, it's all-or-nothing.\n\tadd_subdirectory(external/pyobjc)\nendif()\n\nif (COMPONENT_ruby)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"ruby\")\n\n\tadd_subdirectory(external/ruby)\nendif()\n\nif (COMPONENT_perl)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"perl\")\n\n\tadd_subdirectory(external/perl)\nendif()\n\n#add_subdirectory(external/mDNSResponder)\n#add_subdirectory(external/OpenAL)\n#add_subdirectory(VideoDecodeAcceleration)\n#add_subdirectory(external/glut)\n\n# not a core component, but we always add it regardless of the components that are enabled;\n# it has its own component checks to determine which libraries to generate wrappers for.\nadd_subdirectory(native)\n\n# has its own component checks\nadd_subdirectory(external/vim)\n\n# has its own component checks\nadd_subdirectory(tools)\n\n# these have their own component checks on a per-framework basis\nadd_subdirectory(frameworks)\nadd_subdirectory(private-frameworks)\n\n# /Applications\n#add_subdirectory(external/TextEdit)\n\n# Subprojects after this line need C++ headers\n\ninclude_directories(BEFORE\n\t${CMAKE_CURRENT_SOURCE_DIR}/external/libcxxabi/include\n)\n\n#\n# start core components with C++\n#\n\nset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"core\")\n\nadd_subdirectory(external/libcxxabi)\nadd_subdirectory(external/libcxx)\n\nadd_subdirectory(external/libdispatch)\nadd_subdirectory(external/cctools)\n\n#\n# end core components with C++\n#\n\nif (COMPONENT_cli OR COMPONENT_dev_gui_common)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_gui_common\")\n\n\tadd_subdirectory(external/SmartCardServices)\n\tadd_subdirectory(external/security)\n\tadd_subdirectory(external/SecurityTokend)\nendif()\n\nif (COMPONENT_cli)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli\")\n\n\tadd_subdirectory(external/dtrace)\n\tadd_subdirectory(external/libauto)\nendif()\n\nif (COMPONENT_dev_gui_common)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_dev_gui_common\")\n\n\tadd_subdirectory(external/metal)\nendif()\n\nif (COMPONENT_jsc OR COMPONENT_webkit)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"jsc_webkit_common\")\n\n\tadd_subdirectory(external/WTF)\n\tadd_subdirectory(external/bmalloc)\nendif()\n\nif (COMPONENT_jsc)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"jsc\")\n\n\tadd_subdirectory(external/JavaScriptCore)\nendif()\n\n#add_subdirectory(external/WebCore)\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/AVFormatFileObject.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include \"AVFormatFileObject.h\"\n#include <sstream>\n#include \"AudioFileFormatMP3.h\"\n\nextern \"C\" {\n#include <libavformat/avformat.h>\n}\n\n#pragma GCC visibility push(default)\nAUDIOCOMPONENT_ENTRY(AudioFileComponentFactory, AVFormatFileObject);\n#pragma GCC visibility pop\n\nAVFormatFileObject::AVFormatFileObject(AudioComponentInstance inInstance)\n: AudioFileObjectComponentBase(inInstance)\n{\n\n}\n\n// Analyze mAudioFileObject and return an AudioFileFormat based on that\nAudioFileFormat* AVFormatFileObject::GetAudioFormat() const\n{\n\tuint8_t buffer[1024 + AVPROBE_PADDING_SIZE];\n\tAVProbeData probeData;\n\n\tprobeData.filename = \"\";\n\tprobeData.buf = buffer;\n\tprobeData.buf_size = 1024;\n\n\tif (mAudioFileObject->ReadBytes(false, 0, (UInt32*)&probeData.buf_size, probeData.buf) != noErr)\n\t\treturn nullptr;\n\n\tAVInputFormat* fmt = av_probe_input_format(&probeData, true);\n\tif (!fmt)\n\t\treturn nullptr;\n\n\tstd::istringstream ss(fmt->name);\n\tstd::string formatName;\n\n\twhile (std::getline(ss, formatName, ','))\n\t{\n\t\tif (formatName == \"aac\") // Raw AAC\n\t\t{\n\n\t\t}\n\t\telse if (formatName == \"ac3\")\n\t\t{\n\n\t\t}\n\t\telse if (formatName == \"aiff\")\n\t\t{\n\n\t\t}\n\t\telse if (formatName == \"caff\")\n\t\t{\n\n\t\t}\n\t\telse if (formatName == \"mp3\")\n\t\t{\n\t\t\treturn AudioFileFormatMP3::instance();\n\t\t}\n\t\telse if (formatName == \"mov\" || formatName == \"mp4\")\n\t\t{\n\n\t\t}\n\t\telse if (formatName == \"au\")\n\t\t{\n\n\t\t}\n\t\telse if (formatName == \"wav\")\n\t\t{\n\n\t\t}\n\t}\n\n\treturn nullptr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/AVFormatFileObject.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _AV_FORMAT_FILE_OBJECT_H\n#define _AV_FORMAT_FILE_OBJECT_H\n#include \"AudioFileComponentBase.h\"\n\ntemplate <typename FormatClass, typename FileClass, UInt32 FileType>\nclass AVFormatFileObject : public AudioFileObjectComponentBase\n{\npublic:\n\tAVFormatFileObject(AudioComponentInstance inInstance)\n\t: AudioFileObjectComponentBase(inInstance)\n\t{\n\t\tmAudioFileObject = new FileClass;\n\t}\n\tAudioFileFormat* GetAudioFormat() const override\n\t{\n\t\tstatic FormatClass inst;\n\t\treturn &inst;\n\t}\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/AudioFileFormatGeneric.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include \"AudioFileFormatGeneric.h\"\n#include <cstring>\n#include <CarbonCore/MacErrors.h>\n\nextern \"C\" {\n#include <libavformat/avformat.h>\n}\n\nAudioFileFormatGeneric::AudioFileFormatGeneric(UInt32 inFileType, const char* avformatShortName)\n: AudioFileFormat(inFileType), m_avformatShortName(avformatShortName)\n{\n}\n\nBoolean AudioFileFormatGeneric::ExtensionIsThisFormat(CFStringRef inExtension)\n{\n\tconst char* inStr = CFStringGetCStringPtr(inExtension, kCFStringEncodingUTF8);\n\tconst Description& desc = description();\n\n\tfor (const char* ext : desc.extensions)\n\t{\n\t\tif (::strcasecmp(ext, inStr) == 0)\n\t\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nvoid AudioFileFormatGeneric::GetExtensions(CFArrayRef *outArray)\n{\n\t*outArray = toCFArray(description().extensions);\n}\n\nCFArrayRef AudioFileFormatGeneric::toCFArray(const std::vector<const char*>& array)\n{\n\tstd::vector<CFStringRef> strings;\n\tstrings.reserve(array.size());\n\n\tfor (const char* str : array)\n\t\tstrings.push_back(CFStringCreateWithCString(nullptr, str, kCFStringEncodingUTF8));\n\n\tCFArrayRef rv = CFArrayCreate(nullptr, (const void**) strings.data(), array.size(), &kCFTypeArrayCallBacks);\n\n\tfor (CFStringRef str : strings)\n\t\tCFRelease(str);\n\n\treturn rv;\n}\n\nvoid AudioFileFormatGeneric::GetUTIs(CFArrayRef *outArray)\n{\n\t*outArray = toCFArray(description().utis);\n}\n\nvoid AudioFileFormatGeneric::GetMIMETypes(CFArrayRef *outArray)\n{\n\t*outArray = toCFArray(description().mimeTypes);\n}\n\nvoid AudioFileFormatGeneric::GetFileTypeName(CFStringRef *outName)\n{\n\t*outName = CFStringCreateWithCString(nullptr, description().name, kCFStringEncodingUTF8);\n}\n\nUncertainResult AudioFileFormatGeneric::FileDataIsThisFormat(UInt32 inDataByteSize, const void* inData)\n{\n\tstd::vector<uint8_t> buf;\n\tAVProbeData probeData;\n\n\tbuf.reserve(inDataByteSize + AVPROBE_PADDING_SIZE);\n\tbuf.insert(buf.end(), static_cast<const uint8_t*>(inData), static_cast<const uint8_t*>(inData) + inDataByteSize);\n\tbuf.resize(inDataByteSize + AVPROBE_PADDING_SIZE);\n\n\tprobeData.filename = \"\";\n\tprobeData.buf = buf.data();\n\tprobeData.buf_size = inDataByteSize;\n\n\treturn av_probe_input_format(&probeData, false) != nullptr ? kTrue : kFalse;\n}\n\nAudioFileObject* AudioFileFormatGeneric::New()\n{\n\t// This method is never called from AFPublic\n\treturn nullptr;\n}\n\nOSStatus AudioFileFormatGeneric::GetAvailableFormatIDs(UInt32* ioDataSize, void* outPropertyData)\n{\n\tconst std::vector<Format>& formats = description().formats;\n\n\t*ioDataSize = formats.size() * sizeof(UInt32);\n\tif (outPropertyData)\n\t{\n\t\tUInt32* dest = static_cast<UInt32*>(outPropertyData);\n\t\tfor (int i = 0; i < formats.size(); i++)\n\t\t\tdest[i] = formats[i].mFormatID;\n\t}\n\n\treturn noErr;\n}\n\nOSStatus AudioFileFormatGeneric::GetAvailableStreamDescriptions(UInt32 inFormatID, UInt32* ioDataSize, void* outPropertyData)\n{\n\tint count = 0;\n\n\tfor (const Format& format : description().formats)\n\t{\n\t\tif (format.mFormatID == inFormatID)\n\t\t{\n\t\t\tif (outPropertyData)\n\t\t\t{\n\t\t\t\tAudioStreamBasicDescription* ptr = static_cast<AudioStreamBasicDescription*>(outPropertyData);\n\t\t\t\tptr[count] = format;\n\t\t\t}\n\t\t\tcount++;\n\t\t}\n\t}\n\n\t*ioDataSize = count * sizeof(AudioStreamBasicDescription);\n\treturn noErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/AudioFileFormatGeneric.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _AUDIO_FILE_FORMAT_GENERIC_H\n#define _AUDIO_FILE_FORMAT_GENERIC_H\n#include \"AudioFileFormat.h\"\n\nclass AudioFileFormatGeneric : public AudioFileFormat\n{\npublic:\n\tAudioFileFormatGeneric(UInt32 inFileType, const char* avformatShortName);\n\tBoolean ExtensionIsThisFormat(CFStringRef inExtension) override;\n\tvoid GetExtensions(CFArrayRef *outArray) override;\n\tvoid GetUTIs(CFArrayRef *outArray) override;\n\tvoid GetMIMETypes(CFArrayRef *outArray) override;\n\tvoid GetFileTypeName(CFStringRef *outName) override;\n\tUncertainResult FileDataIsThisFormat(UInt32 inDataByteSize, const void* inData) override;\n\n\tAudioFileObject* New() override;\n\tAudioFileStreamObject* NewStream() override { return NULL; }\n\n\t// File format -> data formats\n\t// https://developer.apple.com/library/archive/documentation/MusicAudio/Conceptual/CoreAudioOverview/SupportedAudioFormatsMacOSX/SupportedAudioFormatsMacOSX.html\n\tOSStatus GetAvailableFormatIDs(UInt32* ioDataSize, void* outPropertyData) override;\n\n\tOSStatus GetAvailableStreamDescriptions(UInt32 inFormatID, UInt32* ioDataSize, void* outPropertyData) override;\nprivate:\n\tstatic CFArrayRef toCFArray(const std::vector<const char*>& array);\nprotected:\n\tstruct Format : public AudioStreamBasicDescription\n\t{\n\t\tFormat(UInt32 formatID) { mFormatID = formatID; }\n\t\tFormat(UInt32 formatID, UInt32 formatFlags, UInt32 bitsPerChannel) { mFormatID = formatID; mFormatFlags = formatFlags; mBitsPerChannel = bitsPerChannel; }\n\t\tFormat() {}\n\t};\n\tstruct Description\n\t{\n\t\tconst char* name;\n\t\tstd::vector<const char*> extensions;\n\t\tstd::vector<const char*> utis;\n\t\tstd::vector<const char*> mimeTypes;\n\t\tstd::vector<Format> formats;\n\t};\n\tvirtual const Description& description() const = 0;\nprivate:\n\tconst char* m_avformatShortName;\n};\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/AudioFileMP3.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include \"AudioFileMP3.h\"\n#include \"AVFormatFileObject.h\"\n#include \"AudioFileFormatGeneric.h\"\n\nclass AudioFileFormatMP3 : public AudioFileFormatGeneric\n{\npublic:\n\tAudioFileFormatMP3() : AudioFileFormatGeneric('.mp3', \"mp3\") {}\nprotected:\n\tconst Description& description() const override\n\t{\n\t\tstatic const Description d = {\n\t\t\t.name = \"MPEG Layer 3\",\n\t\t\t.extensions = { \"mp3\" },\n\t\t\t.utis = { \"public.mp3\", \"public.audio\", \"public.data\" },\n\t\t\t.mimeTypes = { \"audio/mpeg\" },\n\t\t\t.formats = { '.mp3' },\n\t\t};\n\t\treturn d;\n\t}\n};\n\nclass MP3Component : public AVFormatFileObject<AudioFileFormatMP3, AudioFileMP3, '.mp3'>\n{\npublic:\n\tMP3Component(AudioComponentInstance inInstance) : AVFormatFileObject(inInstance) {}\n};\n\n#pragma GCC visibility push(default)\nAUDIOCOMPONENT_ENTRY(AudioFileComponentFactory, MP3Component);\n#pragma GCC visibility pop\n\nAudioFileMP3::AudioFileMP3()\n: AudioFileObject('.mp3')\n{\n\n}\n\nBoolean AudioFileMP3::IsDataFormatSupported(const AudioStreamBasicDescription\t*inFormat)\n{\n\treturn true;\n}\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/AudioFileMP3.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _AUDIO_FILE_MP3_H\n#define _AUDIO_FILE_MP3_H\n#include \"AudioFileObject.h\"\n\nclass AudioFileMP3 : public AudioFileObject\n{\npublic:\n\tAudioFileMP3();\n\tBoolean IsDataFormatSupported(const AudioStreamBasicDescription\t*inFormat) override;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/AudioFileWAV.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include \"AudioFileWAV.h\"\n#include \"AVFormatFileObject.h\"\n#include \"AudioFileFormatGeneric.h\"\n\nclass AudioFileFormatWAV : public AudioFileFormatGeneric\n{\npublic:\n\tAudioFileFormatWAV() : AudioFileFormatGeneric('.mp3', \"wav\") {}\nprotected:\n\tconst Description& description() const override\n\t{\n\t\tstatic const Description d = {\n\t\t\t.name = \"WAVE\",\n\t\t\t.extensions = { \"wav\" },\n\t\t\t.utis = { \"com.microsoft.waveform-audio\", \"public.audio\", \"public.data\" },\n\t\t\t.mimeTypes = { \"audio/wav\" },\n\t\t\t.formats = {\n\t\t\t\tFormat(kAudioFormatLinearPCM, 0, 8),\n\t\t\t\tFormat(kAudioFormatLinearPCM, kAudioFormatFlagIsSignedInteger, 16),\n\t\t\t\tFormat(kAudioFormatLinearPCM, kAudioFormatFlagIsSignedInteger, 24),\n\t\t\t\tFormat(kAudioFormatLinearPCM, kAudioFormatFlagIsSignedInteger, 32),\n\t\t\t\tFormat(kAudioFormatLinearPCM, kAudioFormatFlagIsFloat, 32),\n\t\t\t\tFormat(kAudioFormatLinearPCM, kAudioFormatFlagIsFloat, 64),\n\t\t\t\t'ulaw', 'alaw'\n\t\t\t},\n\t\t};\n\t\treturn d;\n\t}\n};\n\nclass WAVComponent : public AVFormatFileObject<AudioFileFormatWAV, AudioFileWAV, '.wav'>\n{\npublic:\n\tWAVComponent(AudioComponentInstance inInstance) : AVFormatFileObject(inInstance) {}\n};\n\n#pragma GCC visibility push(default)\nAUDIOCOMPONENT_ENTRY(AudioFileComponentFactory, WAVComponent);\n#pragma GCC visibility pop\n\nAudioFileWAV::AudioFileWAV()\n: AudioFileObject('.wav')\n{\n\n}\n\nBoolean AudioFileWAV::IsDataFormatSupported(const AudioStreamBasicDescription\t*inFormat)\n{\n\treturn true;\n}\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/AudioFileWAV.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _AUDIO_FILE_WAV_H\n#define _AUDIO_FILE_WAV_H\n#include \"AudioFileObject.h\"\n\nclass AudioFileWAV : public AudioFileObject\n{\npublic:\n\tAudioFileWAV();\n\tBoolean IsDataFormatSupported(const AudioStreamBasicDescription\t*inFormat) override;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/CMakeLists.txt",
    "content": "project(AFAVFormatComponent)\n\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -fvisibility=hidden\")\ninclude_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})\n\ninclude_directories(\n\t${CMAKE_CURRENT_SOURCE_DIR}/PublicUtility\n\t${CMAKE_CURRENT_SOURCE_DIR}/AFPublic\n\t${CMAKE_CURRENT_SOURCE_DIR}/AUPublic/AUBase\n)\n\nset(component_sources\n\tAFPublic/AudioFileComponentBase.cpp\n\tAFPublic/AudioFileFormat.cpp\n\tAFPublic/AudioFileObject.cpp\n\tAFPublic/CompressedPacketTable.cpp\n\tAFPublic/DataSource.cpp\n\tAUPublic/AUBase/ComponentBase.cpp\n\tPublicUtility/CACFDictionary.cpp\n\tAudioFileFormatGeneric.cpp\n\tAudioFileMP3.cpp\n\tAudioFileWAV.cpp\n)\n\nadd_darling_bundle(AFAVFormatComponent \"\" ${component_sources})\ntarget_link_libraries(AFAVFormatComponent\n\tAudioToolbox\n\tcxx\n\tsystem\n\tCoreFoundation\n\tavformat\n)\nset_target_properties(AFAVFormatComponent PROPERTIES OUTPUT_NAME \"AFAVFormat\" PREFIX \"\" SUFFIX \"\")\ninstall(TARGETS AFAVFormatComponent DESTINATION libexec/darling/System/Library/Components/AFAVFormat.component/Contents/MacOS)\n#install(FILES Info.plist DESTINATION libexec/darling/System/Library/Components/AFAVFormat.component/Contents)\n"
  },
  {
    "path": "src/CoreAudio/AFAVFormatComponent/README",
    "content": "This is a file format component built on top of AVFormat.\n\nThe area of macOS surrounding AudioFileComponents is very badly documented, especially with regard to where this component belongs etc.\nThis project may serve as an example: https://sourceforge.net/projects/coreaudio-flac/\n\nThe goal is to support formats specified here: https://developer.apple.com/library/archive/documentation/MusicAudio/Conceptual/CoreAudioOverview/SupportedAudioFormatsMacOSX/SupportedAudioFormatsMacOSX.html\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/AudioFileTools.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 42;\n\tobjects = {\n\n/* Begin PBXAggregateTarget section */\n\t\t91C82D4C05CFF8B20042A20D = {\n\t\t\tisa = PBXAggregateTarget;\n\t\t\tbuildConfigurationList = A9E883AB0874A59B00B2DFE8;\n\t\t\tbuildPhases = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = All;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t\t91C82E0605CFF8B30042A20D,\n\t\t\t\t91C82E0805CFF8B30042A20D,\n\t\t\t\t91C82E0A05CFF8B30042A20D,\n\t\t\t\t91C82E0C05CFF8B30042A20D,\n\t\t\t\t91004357066E8609005A1EC3,\n\t\t\t\tA9E885A40874B31900B2DFE8,\n\t\t\t\t915912E908F7230600A78EF3,\n\t\t\t);\n\t\t\tname = All;\n\t\t\tproductName = All;\n\t\t};\n/* End PBXAggregateTarget section */\n\n/* Begin PBXBuildFile section */\n\t\t910D345109057CCE00A0EDE6 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2406640DFD00B57457;\n\t\t};\n\t\t910D345209057CCE00A0EDE6 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2506640DFD00B57457;\n\t\t};\n\t\t910D345309057CD300A0EDE6 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2406640DFD00B57457;\n\t\t};\n\t\t910D345409057CD400A0EDE6 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2506640DFD00B57457;\n\t\t};\n\t\t9137C6020655A6EB00A1A3A2 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6000655A6EB00A1A3A2;\n\t\t};\n\t\t9137C6030655A6EB00A1A3A2 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6010655A6EB00A1A3A2;\n\t\t};\n\t\t9137C6040655A74F00A1A3A2 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206705B38F280077A2BA;\n\t\t};\n\t\t9137C6050655A75000A1A3A2 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206805B38F280077A2BA;\n\t\t};\n\t\t9137C6220655A76F00A1A3A2 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6200655A76F00A1A3A2;\n\t\t};\n\t\t9137C6230655A76F00A1A3A2 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6210655A76F00A1A3A2;\n\t\t};\n\t\t9138521207138D8100E6E381 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521007138D8100E6E381;\n\t\t};\n\t\t9138521307138D8100E6E381 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521107138D8100E6E381;\n\t\t};\n\t\t9143EEB606876B9300CA9919 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9143EEB406876B9300CA9919;\n\t\t};\n\t\t9143EEB706876B9300CA9919 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9143EEB506876B9300CA9919;\n\t\t};\n\t\t9143EEEC06876BAA00CA9919 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9143EEEB06876BAA00CA9919;\n\t\t};\n\t\t9186C79B072033F000D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C799072033F000D7CA7A;\n\t\t};\n\t\t9186C79C072033F000D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C79A072033F000D7CA7A;\n\t\t};\n\t\t9186C79D0720343600D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C79A072033F000D7CA7A;\n\t\t};\n\t\t9186C79E0720343700D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C799072033F000D7CA7A;\n\t\t};\n\t\t9186C79F0720358400D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C79A072033F000D7CA7A;\n\t\t};\n\t\t9186C7A00720358500D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C799072033F000D7CA7A;\n\t\t};\n\t\t9186C7B30720363600D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521007138D8100E6E381;\n\t\t};\n\t\t9186C7B40720363700D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521107138D8100E6E381;\n\t\t};\n\t\t9186C7B90720365900D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521007138D8100E6E381;\n\t\t};\n\t\t9186C7BA0720365A00D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521107138D8100E6E381;\n\t\t};\n\t\t9186C7BC0720368B00D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521007138D8100E6E381;\n\t\t};\n\t\t9186C7BD0720368B00D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521107138D8100E6E381;\n\t\t};\n\t\t9186C7C70720378800D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C79A072033F000D7CA7A;\n\t\t};\n\t\t9186C7C80720378800D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C799072033F000D7CA7A;\n\t\t};\n\t\t9186C7C90720378D00D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521007138D8100E6E381;\n\t\t};\n\t\t9186C7CA0720378E00D7CA7A = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521107138D8100E6E381;\n\t\t};\n\t\t91AFB5E6071C988A004D7421 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91AFB5E0071C95CF004D7421;\n\t\t};\n\t\t91AFB5E7071C988C004D7421 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91AFB5DF071C95CF004D7421;\n\t\t};\n\t\t91AFB5E8071C9892004D7421 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91AFB5E0071C95CF004D7421;\n\t\t};\n\t\t91AFB5E9071C9893004D7421 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91AFB5DF071C95CF004D7421;\n\t\t};\n\t\t91AFB72F071CB5EF004D7421 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91AFB5E0071C95CF004D7421;\n\t\t};\n\t\t91AFB730071CB5F0004D7421 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91AFB5DF071C95CF004D7421;\n\t\t};\n\t\t91B0CA2606640DFD00B57457 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2406640DFD00B57457;\n\t\t};\n\t\t91B0CA2706640DFD00B57457 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2506640DFD00B57457;\n\t\t};\n\t\t91B0CAC206641DEB00B57457 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2406640DFD00B57457;\n\t\t};\n\t\t91B0CAC306641DEB00B57457 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2506640DFD00B57457;\n\t\t};\n\t\t91B0CAC406641E2500B57457 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2506640DFD00B57457;\n\t\t};\n\t\t91C82D5505CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5203A05B38D870077A2BA;\n\t\t};\n\t\t91C82D5705CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204B05B38E2F0077A2BA;\n\t\t};\n\t\t91C82D5805CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205505B38E750077A2BA;\n\t\t};\n\t\t91C82D5A05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206405B38F100077A2BA;\n\t\t};\n\t\t91C82D5B05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206805B38F280077A2BA;\n\t\t};\n\t\t91C82D5C05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206C05B38F3A0077A2BA;\n\t\t};\n\t\t91C82D5D05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207305B38F4E0077A2BA;\n\t\t};\n\t\t91C82D5F05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5203705B38D750077A2BA;\n\t\t};\n\t\t91C82D6005CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5203905B38D870077A2BA;\n\t\t};\n\t\t91C82D6205CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204A05B38E2F0077A2BA;\n\t\t};\n\t\t91C82D6305CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205405B38E750077A2BA;\n\t\t};\n\t\t91C82D6505CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206305B38F100077A2BA;\n\t\t};\n\t\t91C82D6605CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206705B38F280077A2BA;\n\t\t};\n\t\t91C82D6705CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206B05B38F3A0077A2BA;\n\t\t};\n\t\t91C82D6805CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206D05B38F3A0077A2BA;\n\t\t};\n\t\t91C82D6905CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207205B38F4E0077A2BA;\n\t\t};\n\t\t91C82D6B05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205D05B38EE80077A2BA;\n\t\t};\n\t\t91C82D6C05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205E05B38EE80077A2BA;\n\t\t};\n\t\t91C82D6D05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206105B38EFE0077A2BA;\n\t\t};\n\t\t91C82D7505CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207305B38F4E0077A2BA;\n\t\t};\n\t\t91C82D7605CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5203A05B38D870077A2BA;\n\t\t};\n\t\t91C82D7705CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206C05B38F3A0077A2BA;\n\t\t};\n\t\t91C82D7805CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204B05B38E2F0077A2BA;\n\t\t};\n\t\t91C82D7905CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206805B38F280077A2BA;\n\t\t};\n\t\t91C82D7B05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5253505B38FEB0077A2BA;\n\t\t};\n\t\t91C82D7D05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207205B38F4E0077A2BA;\n\t\t};\n\t\t91C82D7E05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5203905B38D870077A2BA;\n\t\t};\n\t\t91C82D7F05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206B05B38F3A0077A2BA;\n\t\t};\n\t\t91C82D8005CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206D05B38F3A0077A2BA;\n\t\t};\n\t\t91C82D8105CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204A05B38E2F0077A2BA;\n\t\t};\n\t\t91C82D8205CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206705B38F280077A2BA;\n\t\t};\n\t\t91C82D8405CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206105B38EFE0077A2BA;\n\t\t};\n\t\t91C82D8505CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205D05B38EE80077A2BA;\n\t\t};\n\t\t91C82D8C05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255505B479680077A2BA;\n\t\t};\n\t\t91C82D8D05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255905B479680077A2BA;\n\t\t};\n\t\t91C82D8E05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255B05B479680077A2BA;\n\t\t};\n\t\t91C82D8F05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256505B4799F0077A2BA;\n\t\t};\n\t\t91C82D9005CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256905B479C40077A2BA;\n\t\t};\n\t\t91C82D9105CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256D05B479F50077A2BA;\n\t\t};\n\t\t91C82D9305CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5257A05B47A5C0077A2BA;\n\t\t};\n\t\t91C82D9405CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206C05B38F3A0077A2BA;\n\t\t};\n\t\t91C82D9505CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206405B38F100077A2BA;\n\t\t};\n\t\t91C82D9705CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5258705B47AB70077A2BA;\n\t\t};\n\t\t91C82D9805CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204B05B38E2F0077A2BA;\n\t\t};\n\t\t91C82D9905CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206805B38F280077A2BA;\n\t\t};\n\t\t91C82D9A05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207305B38F4E0077A2BA;\n\t\t};\n\t\t91C82D9B05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259105B47AEB0077A2BA;\n\t\t};\n\t\t91C82D9C05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259505B47B050077A2BA;\n\t\t};\n\t\t91C82D9E05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5254D05B390A20077A2BA;\n\t\t};\n\t\t91C82D9F05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255405B479680077A2BA;\n\t\t};\n\t\t91C82DA005CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255805B479680077A2BA;\n\t\t};\n\t\t91C82DA105CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255A05B479680077A2BA;\n\t\t};\n\t\t91C82DA205CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256405B4799F0077A2BA;\n\t\t};\n\t\t91C82DA305CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256805B479C40077A2BA;\n\t\t};\n\t\t91C82DA405CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256C05B479F50077A2BA;\n\t\t};\n\t\t91C82DA605CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5257905B47A5C0077A2BA;\n\t\t};\n\t\t91C82DA705CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206B05B38F3A0077A2BA;\n\t\t};\n\t\t91C82DA805CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206D05B38F3A0077A2BA;\n\t\t};\n\t\t91C82DA905CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206305B38F100077A2BA;\n\t\t};\n\t\t91C82DAB05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5258605B47AB70077A2BA;\n\t\t};\n\t\t91C82DAC05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204A05B38E2F0077A2BA;\n\t\t};\n\t\t91C82DAD05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206705B38F280077A2BA;\n\t\t};\n\t\t91C82DAE05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207205B38F4E0077A2BA;\n\t\t};\n\t\t91C82DAF05CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259005B47AEB0077A2BA;\n\t\t};\n\t\t91C82DB005CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259405B47B050077A2BA;\n\t\t};\n\t\t91C82DB205CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5257005B47A140077A2BA;\n\t\t};\n\t\t91C82DB305CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206105B38EFE0077A2BA;\n\t\t};\n\t\t91C82DB405CFF8B20042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205D05B38EE80077A2BA;\n\t\t};\n\t\t91C82DBC05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255705B479680077A2BA;\n\t\t};\n\t\t91C82DBD05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204B05B38E2F0077A2BA;\n\t\t};\n\t\t91C82DBE05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206C05B38F3A0077A2BA;\n\t\t};\n\t\t91C82DBF05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206805B38F280077A2BA;\n\t\t};\n\t\t91C82DC005CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255905B479680077A2BA;\n\t\t};\n\t\t91C82DC105CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5257A05B47A5C0077A2BA;\n\t\t};\n\t\t91C82DC205CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256905B479C40077A2BA;\n\t\t};\n\t\t91C82DC305CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256505B4799F0077A2BA;\n\t\t};\n\t\t91C82DC405CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259105B47AEB0077A2BA;\n\t\t};\n\t\t91C82DC505CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206405B38F100077A2BA;\n\t\t};\n\t\t91C82DC605CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207305B38F4E0077A2BA;\n\t\t};\n\t\t91C82DC805CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259F05B47B580077A2BA;\n\t\t};\n\t\t91C82DCA05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255605B479680077A2BA;\n\t\t};\n\t\t91C82DCB05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204A05B38E2F0077A2BA;\n\t\t};\n\t\t91C82DCC05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206B05B38F3A0077A2BA;\n\t\t};\n\t\t91C82DCD05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206D05B38F3A0077A2BA;\n\t\t};\n\t\t91C82DCE05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206705B38F280077A2BA;\n\t\t};\n\t\t91C82DCF05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5255805B479680077A2BA;\n\t\t};\n\t\t91C82DD005CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5257905B47A5C0077A2BA;\n\t\t};\n\t\t91C82DD105CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256805B479C40077A2BA;\n\t\t};\n\t\t91C82DD205CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5256405B4799F0077A2BA;\n\t\t};\n\t\t91C82DD305CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259005B47AEB0077A2BA;\n\t\t};\n\t\t91C82DD405CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206305B38F100077A2BA;\n\t\t};\n\t\t91C82DD505CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207205B38F4E0077A2BA;\n\t\t};\n\t\t91C82DD705CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205D05B38EE80077A2BA;\n\t\t};\n\t\t91C82DD805CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206105B38EFE0077A2BA;\n\t\t};\n\t\t91C82DD905CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5257005B47A140077A2BA;\n\t\t};\n\t\t91C82DDA05CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D52FED05B47C070077A2BA;\n\t\t};\n\t\t91C82DE305CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5300A05B4817A0077A2BA;\n\t\t};\n\t\t91C82DE605CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205D05B38EE80077A2BA;\n\t\t};\n\t\t91C82DE705CFF8B30042A20D = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205E05B38EE80077A2BA;\n\t\t};\n\t\t91E2D39806641E7800F19278 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91B0CA2406640DFD00B57457;\n\t\t};\n\t\t91FF724E07306039008E851B = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91FF724D07306039008E851B;\n\t\t};\n\t\t91FF72500730614D008E851B = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 91FF724F0730614D008E851B;\n\t\t};\n\t\tA929CDBA069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204B05B38E2F0077A2BA;\n\t\t};\n\t\tA929CDBC069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206405B38F100077A2BA;\n\t\t};\n\t\tA929CDBD069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206805B38F280077A2BA;\n\t\t};\n\t\tA929CDBE069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206C05B38F3A0077A2BA;\n\t\t};\n\t\tA929CDC5069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204A05B38E2F0077A2BA;\n\t\t};\n\t\tA929CDC7069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206305B38F100077A2BA;\n\t\t};\n\t\tA929CDC8069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206705B38F280077A2BA;\n\t\t};\n\t\tA929CDC9069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206B05B38F3A0077A2BA;\n\t\t};\n\t\tA929CDCA069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206D05B38F3A0077A2BA;\n\t\t};\n\t\tA929CDCE069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205D05B38EE80077A2BA;\n\t\t};\n\t\tA929CDCF069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205E05B38EE80077A2BA;\n\t\t};\n\t\tA929CDD0069E34840010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206105B38EFE0077A2BA;\n\t\t};\n\t\tA929CDD5069E34990010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A929CDD4069E34990010B9C5;\n\t\t};\n\t\tA929CDD6069E34B50010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6000655A6EB00A1A3A2;\n\t\t};\n\t\tA929CDD7069E34B60010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6010655A6EB00A1A3A2;\n\t\t};\n\t\tA929CDD8069E34C40010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207305B38F4E0077A2BA;\n\t\t};\n\t\tA929CDD9069E34C40010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207205B38F4E0077A2BA;\n\t\t};\n\t\tA929CDF3069E358A0010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A929CDF1069E358A0010B9C5;\n\t\t};\n\t\tA929CDF4069E358A0010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A929CDF2069E358A0010B9C5;\n\t\t};\n\t\tA929CDFB069E35CF0010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5257005B47A140077A2BA;\n\t\t};\n\t\tA929CE12069E35DD0010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6210655A76F00A1A3A2;\n\t\t};\n\t\tA929CE18069E35DD0010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6200655A76F00A1A3A2;\n\t\t};\n\t\tA929CE1E069E35E00010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5258605B47AB70077A2BA;\n\t\t};\n\t\tA929CE24069E35E10010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5258705B47AB70077A2BA;\n\t\t};\n\t\tA929CE2A069E35E20010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259405B47B050077A2BA;\n\t\t};\n\t\tA929CE30069E35E30010B9C5 = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259505B47B050077A2BA;\n\t\t};\n\t\tA9E52CE108E1EB0C00A2A9EA = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9E52CE008E1EB0C00A2A9EA;\n\t\t};\n\t\tA9E52CE208E1EB0C00A2A9EA = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9E52CE008E1EB0C00A2A9EA;\n\t\t};\n\t\tA9E52CE308E1EB0C00A2A9EA = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9E52CE008E1EB0C00A2A9EA;\n\t\t};\n\t\tA9E52CE408E1EB0C00A2A9EA = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9E52CE008E1EB0C00A2A9EA;\n\t\t};\n\t\tA9E52CE508E1EB0C00A2A9EA = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9E52CE008E1EB0C00A2A9EA;\n\t\t};\n\t\tA9E52CE608E1EB0C00A2A9EA = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9E52CE008E1EB0C00A2A9EA;\n\t\t};\n\t\tA9E52CE708E1EB0C00A2A9EA = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9E52CE008E1EB0C00A2A9EA;\n\t\t};\n\t\tA9F41D1D08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204B05B38E2F0077A2BA;\n\t\t};\n\t\tA9F41D1E08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206405B38F100077A2BA;\n\t\t};\n\t\tA9F41D1F08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206805B38F280077A2BA;\n\t\t};\n\t\tA9F41D2008F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206C05B38F3A0077A2BA;\n\t\t};\n\t\tA9F41D2108F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6010655A6EB00A1A3A2;\n\t\t};\n\t\tA9F41D2208F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207305B38F4E0077A2BA;\n\t\t};\n\t\tA9F41D2308F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A929CDF2069E358A0010B9C5;\n\t\t};\n\t\tA9F41D2408F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6210655A76F00A1A3A2;\n\t\t};\n\t\tA9F41D2508F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5258705B47AB70077A2BA;\n\t\t};\n\t\tA9F41D2608F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259505B47B050077A2BA;\n\t\t};\n\t\tA9F41D2708F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C799072033F000D7CA7A;\n\t\t};\n\t\tA9F41D2808F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521107138D8100E6E381;\n\t\t};\n\t\tA9F41D2908F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9E52CE008E1EB0C00A2A9EA;\n\t\t};\n\t\tA9F41D2B08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5204A05B38E2F0077A2BA;\n\t\t};\n\t\tA9F41D2C08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206305B38F100077A2BA;\n\t\t};\n\t\tA9F41D2D08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206705B38F280077A2BA;\n\t\t};\n\t\tA9F41D2E08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206B05B38F3A0077A2BA;\n\t\t};\n\t\tA9F41D2F08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206D05B38F3A0077A2BA;\n\t\t};\n\t\tA9F41D3108F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6000655A6EB00A1A3A2;\n\t\t};\n\t\tA9F41D3208F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5207205B38F4E0077A2BA;\n\t\t};\n\t\tA9F41D3308F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A929CDF1069E358A0010B9C5;\n\t\t};\n\t\tA9F41D3408F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9137C6200655A76F00A1A3A2;\n\t\t};\n\t\tA9F41D3508F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5258605B47AB70077A2BA;\n\t\t};\n\t\tA9F41D3608F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5259405B47B050077A2BA;\n\t\t};\n\t\tA9F41D3708F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9186C79A072033F000D7CA7A;\n\t\t};\n\t\tA9F41D3808F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 9138521007138D8100E6E381;\n\t\t};\n\t\tA9F41D3A08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205D05B38EE80077A2BA;\n\t\t};\n\t\tA9F41D3B08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205E05B38EE80077A2BA;\n\t\t};\n\t\tA9F41D3C08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206105B38EFE0077A2BA;\n\t\t};\n\t\tA9F41D3D08F4B00200A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5257005B47A140077A2BA;\n\t\t};\n\t\tA9F41D4F08F4B0A100A2BC1C = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = A9F41D4E08F4B0A100A2BC1C;\n\t\t};\n\t\tB6A359E70667D1BE00A3A2BB = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = 918B313006069285000691DF;\n\t\t};\n\t\tB6A359EA0667D1D000A3A2BB = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5206705B38F280077A2BA;\n\t\t};\n\t\tB6A359EB0667D1DB00A3A2BB = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205D05B38EE80077A2BA;\n\t\t};\n\t\tB6A359EC0667D1DD00A3A2BB = {\n\t\t\tisa = PBXBuildFile;\n\t\t\tfileRef = B6D5205E05B38EE80077A2BA;\n\t\t};\n/* End PBXBuildFile section */\n\n/* Begin PBXBuildStyle section */\n\t\t9171C2B107B060480067EEDA = {\n\t\t\tisa = PBXBuildStyle;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\t9171C2B207B0605F0067EEDA = {\n\t\t\tisa = PBXBuildStyle;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tB6B9FA2A05B38B09007FB890 = {\n\t\t\tisa = PBXBuildStyle;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tB6B9FA2B05B38B09007FB890 = {\n\t\t\tisa = PBXBuildStyle;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n/* End PBXBuildStyle section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t91004356066E8609005A1EC3 = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = B6B9FA2C05B38B09007FB890;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = B6A359E40667D15B00A3A2BB;\n\t\t\tremoteInfo = afinfo;\n\t\t};\n\t\t915912E808F7230600A78EF3 = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = B6B9FA2C05B38B09007FB890;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = A9F41D1B08F4B00200A2BC1C;\n\t\t\tremoteInfo = auprofile;\n\t\t};\n\t\t91C82E0505CFF8B30042A20D = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = B6B9FA2C05B38B09007FB890;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 91C82D5305CFF8B20042A20D;\n\t\t\tremoteInfo = \"afconvert (Upgraded)\";\n\t\t};\n\t\t91C82E0705CFF8B30042A20D = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = B6B9FA2C05B38B09007FB890;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 91C82D7205CFF8B20042A20D;\n\t\t\tremoteInfo = \"afinterleave (Upgraded)\";\n\t\t};\n\t\t91C82E0905CFF8B30042A20D = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = B6B9FA2C05B38B09007FB890;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 91C82D8A05CFF8B20042A20D;\n\t\t\tremoteInfo = \"afplay (Upgraded)\";\n\t\t};\n\t\t91C82E0B05CFF8B30042A20D = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = B6B9FA2C05B38B09007FB890;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 91C82DB905CFF8B30042A20D;\n\t\t\tremoteInfo = \"afrecord (Upgraded)\";\n\t\t};\n\t\tA9E885A30874B31900B2DFE8 = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = B6B9FA2C05B38B09007FB890;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = A929CDB6069E34840010B9C5;\n\t\t\tremoteInfo = auprocess;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t9137C6000655A6EB00A1A3A2 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = AUOutputBL.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9137C6010655A6EB00A1A3A2 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = AUOutputBL.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9137C6200655A76F00A1A3A2 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioUnit.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9137C6210655A76F00A1A3A2 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAudioUnit.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9138521007138D8100E6E381 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioFile.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9138521107138D8100E6E381 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAudioFile.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9143EB7006876B5500CA9919 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CADebugMacros.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9143EB7106876B5500CA9919 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAReferenceCounted.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9143EEB406876B9300CA9919 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CADebugPrintf.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9143EEB506876B9300CA9919 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAMath.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9143EEEB06876BAA00CA9919 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAConditionalMacros.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9186C799072033F000D7CA7A = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 4;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAFilePathUtils.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9186C79A072033F000D7CA7A = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 4;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAFilePathUtils.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t918B313006069285000691DF = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = afinfo.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t91AFB5DF071C95CF004D7421 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 4;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = AFToolsCommon.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t91AFB5E0071C95CF004D7421 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 4;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = AFToolsCommon.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t91B0CA2406640DFD00B57457 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioFileFormats.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t91B0CA2506640DFD00B57457 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAudioFileFormats.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t91C82D7005CFF8B20042A20D = {\n\t\t\tisa = PBXFileReference;\n\t\t\texplicitFileType = \"compiled.mach-o.executable\";\n\t\t\tincludeInIndex = 0;\n\t\t\tpath = afconvert;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\t91C82D8805CFF8B20042A20D = {\n\t\t\tisa = PBXFileReference;\n\t\t\texplicitFileType = \"compiled.mach-o.executable\";\n\t\t\tincludeInIndex = 0;\n\t\t\tpath = afinterleave;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\t91C82DB705CFF8B30042A20D = {\n\t\t\tisa = PBXFileReference;\n\t\t\texplicitFileType = \"compiled.mach-o.executable\";\n\t\t\tincludeInIndex = 0;\n\t\t\tpath = afplay;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\t91C82DDD05CFF8B30042A20D = {\n\t\t\tisa = PBXFileReference;\n\t\t\texplicitFileType = \"compiled.mach-o.executable\";\n\t\t\tincludeInIndex = 0;\n\t\t\tpath = afrecord;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\t91C82DEA05CFF8B30042A20D = {\n\t\t\tisa = PBXFileReference;\n\t\t\texplicitFileType = \"compiled.mach-o.executable\";\n\t\t\tincludeInIndex = 0;\n\t\t\tpath = audioformats;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\t91F7F37605C5DC6B00998F2F = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = QTAACFile.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t91F7F37705C5DC6B00998F2F = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = QTAACFile.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t91FF724D07306039008E851B = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 4;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = afconvert.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t91FF724F0730614D008E851B = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 4;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = afconvert_main.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tA929CDD2069E34840010B9C5 = {\n\t\t\tisa = PBXFileReference;\n\t\t\texplicitFileType = \"compiled.mach-o.executable\";\n\t\t\tincludeInIndex = 0;\n\t\t\tpath = auprocess;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\tA929CDD4069E34990010B9C5 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = auprocess.cpp;\n\t\t\tsourceTree = SOURCE_ROOT;\n\t\t};\n\t\tA929CDF1069E358A0010B9C5 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tname = CAAUProcessor.cpp;\n\t\t\tpath = /Developer/Examples/CoreAudio/PublicUtility/CAAUProcessor.cpp;\n\t\t\tsourceTree = \"<absolute>\";\n\t\t};\n\t\tA929CDF2069E358A0010B9C5 = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tname = CAAUProcessor.h;\n\t\t\tpath = /Developer/Examples/CoreAudio/PublicUtility/CAAUProcessor.h;\n\t\t\tsourceTree = \"<absolute>\";\n\t\t};\n\t\tA9E52CE008E1EB0C00A2A9EA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAtomicStack.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tA9F41D4508F4B00200A2BC1C = {\n\t\t\tisa = PBXFileReference;\n\t\t\texplicitFileType = \"compiled.mach-o.executable\";\n\t\t\tincludeInIndex = 0;\n\t\t\tpath = auprofile;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\tA9F41D4E08F4B0A100A2BC1C = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = auprofile.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6A359E50667D15B00A3A2BB = {\n\t\t\tisa = PBXFileReference;\n\t\t\texplicitFileType = \"compiled.mach-o.executable\";\n\t\t\tincludeInIndex = 0;\n\t\t\tpath = afinfo;\n\t\t\tsourceTree = BUILT_PRODUCTS_DIR;\n\t\t};\n\t\tB6D5203705B38D750077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = afconvert.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5203905B38D870077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAChannelLayouts.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5203A05B38D870077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAChannelLayouts.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5204A05B38E2F0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAXException.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5204B05B38E2F0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAXException.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5205405B38E750077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioFileConverter.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5205505B38E750077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAudioFileConverter.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5205D05B38EE80077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tlastKnownFileType = wrapper.framework;\n\t\t\tname = AudioToolbox.framework;\n\t\t\tpath = /System/Library/Frameworks/AudioToolbox.framework;\n\t\t\tsourceTree = \"<absolute>\";\n\t\t};\n\t\tB6D5205E05B38EE80077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tlastKnownFileType = wrapper.framework;\n\t\t\tname = CoreFoundation.framework;\n\t\t\tpath = /System/Library/Frameworks/CoreFoundation.framework;\n\t\t\tsourceTree = \"<absolute>\";\n\t\t};\n\t\tB6D5206105B38EFE0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tlastKnownFileType = wrapper.framework;\n\t\t\tname = CoreServices.framework;\n\t\t\tpath = /System/Library/Frameworks/CoreServices.framework;\n\t\t\tsourceTree = \"<absolute>\";\n\t\t};\n\t\tB6D5206305B38F100077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAHostTimeBase.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5206405B38F100077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAHostTimeBase.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5206705B38F280077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAStreamBasicDescription.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5206805B38F280077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAStreamBasicDescription.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5206B05B38F3A0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioChannelLayout.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5206C05B38F3A0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAudioChannelLayout.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5206D05B38F3A0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioChannelLayoutObject.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5207205B38F4E0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CABufferList.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5207305B38F4E0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CABufferList.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5253505B38FEB0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = afinterleave.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5254D05B390A20077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = afplay.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5255405B479680077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioFilePlayer.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5255505B479680077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAudioFilePlayer.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5255605B479680077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioFileRecorder.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5255705B479680077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAudioFileRecorder.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5255805B479680077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAAudioFileStreamer.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5255905B479680077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAAudioFileStreamer.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5255A05B479680077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAChannelMappingPlayer.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5255B05B479680077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAChannelMappingPlayer.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5256405B4799F0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAMutex.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5256505B4799F0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAMutex.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5256805B479C40077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAGuard.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5256905B479C40077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAGuard.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5256C05B479F50077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAChannelMapper.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5256D05B479F50077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAChannelMapper.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5257005B47A140077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tlastKnownFileType = wrapper.framework;\n\t\t\tname = AudioUnit.framework;\n\t\t\tpath = /System/Library/Frameworks/AudioUnit.framework;\n\t\t\tsourceTree = \"<absolute>\";\n\t\t};\n\t\tB6D5257905B47A5C0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CABufferQueue.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5257A05B47A5C0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CABufferQueue.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5258605B47AB70077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAComponent.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5258705B47AB70077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAComponent.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5259005B47AEB0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAPThread.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5259105B47AEB0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAPThread.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5259405B47B050077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = CAComponentDescription.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5259505B47B050077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.c.h;\n\t\t\tpath = CAComponentDescription.h;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5259F05B47B580077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = afrecord.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D52FED05B47C070077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tlastKnownFileType = wrapper.framework;\n\t\t\tname = CoreAudio.framework;\n\t\t\tpath = /System/Library/Frameworks/CoreAudio.framework;\n\t\t\tsourceTree = \"<absolute>\";\n\t\t};\n\t\tB6D5300905B47DBE0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tlastKnownFileType = text.rtf;\n\t\t\tpath = ReadMe.rtf;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5300A05B4817A0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tfileEncoding = 30;\n\t\t\tlastKnownFileType = sourcecode.cpp.cpp;\n\t\t\tpath = audioformats.cpp;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5301805B4822C0077A2BA = {\n\t\t\tisa = PBXFileReference;\n\t\t\tlastKnownFileType = text.rtf;\n\t\t\tpath = ReadMe.rtf;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t91C82D6A05CFF8B20042A20D = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82D6B05CFF8B20042A20D,\n\t\t\t\t91C82D6C05CFF8B20042A20D,\n\t\t\t\t91C82D6D05CFF8B20042A20D,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82D8305CFF8B20042A20D = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82D8405CFF8B20042A20D,\n\t\t\t\t91C82D8505CFF8B20042A20D,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DB105CFF8B20042A20D = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82DB205CFF8B20042A20D,\n\t\t\t\t91C82DB305CFF8B20042A20D,\n\t\t\t\t91C82DB405CFF8B20042A20D,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DD605CFF8B30042A20D = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82DD705CFF8B30042A20D,\n\t\t\t\t91C82DD805CFF8B30042A20D,\n\t\t\t\t91C82DD905CFF8B30042A20D,\n\t\t\t\t91C82DDA05CFF8B30042A20D,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DE505CFF8B30042A20D = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82DE605CFF8B30042A20D,\n\t\t\t\t91C82DE705CFF8B30042A20D,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA929CDCD069E34840010B9C5 = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tA929CDCE069E34840010B9C5,\n\t\t\t\tA929CDCF069E34840010B9C5,\n\t\t\t\tA929CDD0069E34840010B9C5,\n\t\t\t\tA929CDFB069E35CF0010B9C5,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA9F41D3908F4B00200A2BC1C = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tA9F41D3A08F4B00200A2BC1C,\n\t\t\t\tA9F41D3B08F4B00200A2BC1C,\n\t\t\t\tA9F41D3C08F4B00200A2BC1C,\n\t\t\t\tA9F41D3D08F4B00200A2BC1C,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tB6A359E30667D15B00A3A2BB = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tB6A359EB0667D1DB00A3A2BB,\n\t\t\t\tB6A359EC0667D1DD00A3A2BB,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\tB6B9FA2805B38B09007FB890 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB6D5203605B38D6C0077A2BA,\n\t\t\t\tB6D5203805B38D870077A2BA,\n\t\t\t\tB6D5204605B38DD60077A2BA,\n\t\t\t\tB6D5205C05B38ECA0077A2BA,\n\t\t\t\tB6D5204105B38D940077A2BA,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5203605B38D6C0077A2BA = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB6D5301805B4822C0077A2BA,\n\t\t\t\t91FF724F0730614D008E851B,\n\t\t\t\tB6D5203705B38D750077A2BA,\n\t\t\t\t91FF724D07306039008E851B,\n\t\t\t\t918B313006069285000691DF,\n\t\t\t\tB6D5253505B38FEB0077A2BA,\n\t\t\t\tB6D5254D05B390A20077A2BA,\n\t\t\t\tB6D5259F05B47B580077A2BA,\n\t\t\t\tB6D5300A05B4817A0077A2BA,\n\t\t\t\tA929CDD4069E34990010B9C5,\n\t\t\t\tA9F41D4E08F4B0A100A2BC1C,\n\t\t\t);\n\t\t\tname = Source;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5203805B38D870077A2BA = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9186C799072033F000D7CA7A,\n\t\t\t\t9186C79A072033F000D7CA7A,\n\t\t\t\t91AFB5DF071C95CF004D7421,\n\t\t\t\t91AFB5E0071C95CF004D7421,\n\t\t\t\tB6D5205405B38E750077A2BA,\n\t\t\t\tB6D5205505B38E750077A2BA,\n\t\t\t\tB6D5203905B38D870077A2BA,\n\t\t\t\tB6D5203A05B38D870077A2BA,\n\t\t\t\t91F7F37605C5DC6B00998F2F,\n\t\t\t\t91F7F37705C5DC6B00998F2F,\n\t\t\t);\n\t\t\tpath = Utility;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5204105B38D940077A2BA = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t91C82D7005CFF8B20042A20D,\n\t\t\t\t91C82D8805CFF8B20042A20D,\n\t\t\t\t91C82DB705CFF8B30042A20D,\n\t\t\t\t91C82DDD05CFF8B30042A20D,\n\t\t\t\t91C82DEA05CFF8B30042A20D,\n\t\t\t\tB6A359E50667D15B00A3A2BB,\n\t\t\t\tA929CDD2069E34840010B9C5,\n\t\t\t\tA9F41D4508F4B00200A2BC1C,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5204605B38DD60077A2BA = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tA9E52CE008E1EB0C00A2A9EA,\n\t\t\t\t9143EEEB06876BAA00CA9919,\n\t\t\t\t9143EEB406876B9300CA9919,\n\t\t\t\t9143EEB506876B9300CA9919,\n\t\t\t\t9143EB7006876B5500CA9919,\n\t\t\t\t9143EB7106876B5500CA9919,\n\t\t\t\tB6D5204705B38E2F0077A2BA,\n\t\t\t\t9137C6000655A6EB00A1A3A2,\n\t\t\t\t9137C6010655A6EB00A1A3A2,\n\t\t\t\tA929CDF1069E358A0010B9C5,\n\t\t\t\tA929CDF2069E358A0010B9C5,\n\t\t\t\t91B0CA2406640DFD00B57457,\n\t\t\t\t91B0CA2506640DFD00B57457,\n\t\t\t\t9137C6200655A76F00A1A3A2,\n\t\t\t\t9137C6210655A76F00A1A3A2,\n\t\t\t\tB6D5206B05B38F3A0077A2BA,\n\t\t\t\tB6D5206C05B38F3A0077A2BA,\n\t\t\t\tB6D5206D05B38F3A0077A2BA,\n\t\t\t\tB6D5207205B38F4E0077A2BA,\n\t\t\t\tB6D5207305B38F4E0077A2BA,\n\t\t\t\tB6D5258605B47AB70077A2BA,\n\t\t\t\tB6D5258705B47AB70077A2BA,\n\t\t\t\tB6D5259405B47B050077A2BA,\n\t\t\t\tB6D5259505B47B050077A2BA,\n\t\t\t\tB6D5256805B479C40077A2BA,\n\t\t\t\tB6D5256905B479C40077A2BA,\n\t\t\t\tB6D5206305B38F100077A2BA,\n\t\t\t\tB6D5206405B38F100077A2BA,\n\t\t\t\tB6D5256405B4799F0077A2BA,\n\t\t\t\tB6D5256505B4799F0077A2BA,\n\t\t\t\tB6D5259005B47AEB0077A2BA,\n\t\t\t\tB6D5259105B47AEB0077A2BA,\n\t\t\t\tB6D5206705B38F280077A2BA,\n\t\t\t\tB6D5206805B38F280077A2BA,\n\t\t\t\tB6D5204A05B38E2F0077A2BA,\n\t\t\t\tB6D5204B05B38E2F0077A2BA,\n\t\t\t);\n\t\t\tname = PublicUtility;\n\t\t\tpath = /Developer/Examples/CoreAudio/PublicUtility;\n\t\t\tsourceTree = \"<absolute>\";\n\t\t};\n\t\tB6D5204705B38E2F0077A2BA = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB6D5300905B47DBE0077A2BA,\n\t\t\t\t9138521007138D8100E6E381,\n\t\t\t\t9138521107138D8100E6E381,\n\t\t\t\tB6D5255405B479680077A2BA,\n\t\t\t\tB6D5255505B479680077A2BA,\n\t\t\t\tB6D5255605B479680077A2BA,\n\t\t\t\tB6D5255705B479680077A2BA,\n\t\t\t\tB6D5255805B479680077A2BA,\n\t\t\t\tB6D5255905B479680077A2BA,\n\t\t\t\tB6D5257905B47A5C0077A2BA,\n\t\t\t\tB6D5257A05B47A5C0077A2BA,\n\t\t\t\tB6D5256C05B479F50077A2BA,\n\t\t\t\tB6D5256D05B479F50077A2BA,\n\t\t\t\tB6D5255A05B479680077A2BA,\n\t\t\t\tB6D5255B05B479680077A2BA,\n\t\t\t);\n\t\t\tpath = \"AudioFile-new\";\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tB6D5205C05B38ECA0077A2BA = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tB6D5205D05B38EE80077A2BA,\n\t\t\t\tB6D5257005B47A140077A2BA,\n\t\t\t\tB6D52FED05B47C070077A2BA,\n\t\t\t\tB6D5205E05B38EE80077A2BA,\n\t\t\t\tB6D5206105B38EFE0077A2BA,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXHeadersBuildPhase section */\n\t\t91C82D5405CFF8B20042A20D = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82D5505CFF8B20042A20D,\n\t\t\t\t91C82D5705CFF8B20042A20D,\n\t\t\t\t91C82D5805CFF8B20042A20D,\n\t\t\t\t91C82D5A05CFF8B20042A20D,\n\t\t\t\t91C82D5B05CFF8B20042A20D,\n\t\t\t\t91C82D5C05CFF8B20042A20D,\n\t\t\t\t91C82D5D05CFF8B20042A20D,\n\t\t\t\t91B0CAC306641DEB00B57457,\n\t\t\t\t9143EEB606876B9300CA9919,\n\t\t\t\t9143EEB706876B9300CA9919,\n\t\t\t\t9143EEEC06876BAA00CA9919,\n\t\t\t\t9138521307138D8100E6E381,\n\t\t\t\t91AFB5E7071C988C004D7421,\n\t\t\t\t9186C79E0720343700D7CA7A,\n\t\t\t\t91FF724E07306039008E851B,\n\t\t\t\tA9E52CE108E1EB0C00A2A9EA,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82D7305CFF8B20042A20D = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82D7505CFF8B20042A20D,\n\t\t\t\t91C82D7605CFF8B20042A20D,\n\t\t\t\t91C82D7705CFF8B20042A20D,\n\t\t\t\t91C82D7805CFF8B20042A20D,\n\t\t\t\t91C82D7905CFF8B20042A20D,\n\t\t\t\t9186C79B072033F000D7CA7A,\n\t\t\t\t9186C7B40720363700D7CA7A,\n\t\t\t\tA9E52CE208E1EB0C00A2A9EA,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82D8B05CFF8B20042A20D = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82D8C05CFF8B20042A20D,\n\t\t\t\t91C82D8D05CFF8B20042A20D,\n\t\t\t\t91C82D8E05CFF8B20042A20D,\n\t\t\t\t91C82D8F05CFF8B20042A20D,\n\t\t\t\t91C82D9005CFF8B20042A20D,\n\t\t\t\t91C82D9105CFF8B20042A20D,\n\t\t\t\t91C82D9305CFF8B20042A20D,\n\t\t\t\t91C82D9405CFF8B20042A20D,\n\t\t\t\t91C82D9505CFF8B20042A20D,\n\t\t\t\t91C82D9705CFF8B20042A20D,\n\t\t\t\t91C82D9805CFF8B20042A20D,\n\t\t\t\t91C82D9905CFF8B20042A20D,\n\t\t\t\t91C82D9A05CFF8B20042A20D,\n\t\t\t\t91C82D9B05CFF8B20042A20D,\n\t\t\t\t91C82D9C05CFF8B20042A20D,\n\t\t\t\t9137C6030655A6EB00A1A3A2,\n\t\t\t\t9137C6230655A76F00A1A3A2,\n\t\t\t\t9186C7BA0720365A00D7CA7A,\n\t\t\t\tA9E52CE308E1EB0C00A2A9EA,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DBA05CFF8B30042A20D = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82DBC05CFF8B30042A20D,\n\t\t\t\t91C82DBD05CFF8B30042A20D,\n\t\t\t\t91C82DBE05CFF8B30042A20D,\n\t\t\t\t91C82DBF05CFF8B30042A20D,\n\t\t\t\t91C82DC005CFF8B30042A20D,\n\t\t\t\t91C82DC105CFF8B30042A20D,\n\t\t\t\t91C82DC205CFF8B30042A20D,\n\t\t\t\t91C82DC305CFF8B30042A20D,\n\t\t\t\t91C82DC405CFF8B30042A20D,\n\t\t\t\t91C82DC505CFF8B30042A20D,\n\t\t\t\t91C82DC605CFF8B30042A20D,\n\t\t\t\t91B0CA2706640DFD00B57457,\n\t\t\t\t91AFB5E9071C9893004D7421,\n\t\t\t\t9186C7A00720358500D7CA7A,\n\t\t\t\t9186C7BD0720368B00D7CA7A,\n\t\t\t\tA9E52CE408E1EB0C00A2A9EA,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DE005CFF8B30042A20D = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t9137C6050655A75000A1A3A2,\n\t\t\t\t91B0CAC406641E2500B57457,\n\t\t\t\t91AFB730071CB5F0004D7421,\n\t\t\t\tA9E52CE508E1EB0C00A2A9EA,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA929CDB7069E34840010B9C5 = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tA929CDBA069E34840010B9C5,\n\t\t\t\tA929CDBC069E34840010B9C5,\n\t\t\t\tA929CDBD069E34840010B9C5,\n\t\t\t\tA929CDBE069E34840010B9C5,\n\t\t\t\tA929CDD7069E34B60010B9C5,\n\t\t\t\tA929CDD8069E34C40010B9C5,\n\t\t\t\tA929CDF4069E358A0010B9C5,\n\t\t\t\tA929CE12069E35DD0010B9C5,\n\t\t\t\tA929CE24069E35E10010B9C5,\n\t\t\t\tA929CE30069E35E30010B9C5,\n\t\t\t\t9186C7C80720378800D7CA7A,\n\t\t\t\t9186C7CA0720378E00D7CA7A,\n\t\t\t\tA9E52CE708E1EB0C00A2A9EA,\n\t\t\t\t910D345209057CCE00A0EDE6,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA9F41D1C08F4B00200A2BC1C = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tA9F41D1D08F4B00200A2BC1C,\n\t\t\t\tA9F41D1E08F4B00200A2BC1C,\n\t\t\t\tA9F41D1F08F4B00200A2BC1C,\n\t\t\t\tA9F41D2008F4B00200A2BC1C,\n\t\t\t\tA9F41D2108F4B00200A2BC1C,\n\t\t\t\tA9F41D2208F4B00200A2BC1C,\n\t\t\t\tA9F41D2308F4B00200A2BC1C,\n\t\t\t\tA9F41D2408F4B00200A2BC1C,\n\t\t\t\tA9F41D2508F4B00200A2BC1C,\n\t\t\t\tA9F41D2608F4B00200A2BC1C,\n\t\t\t\tA9F41D2708F4B00200A2BC1C,\n\t\t\t\tA9F41D2808F4B00200A2BC1C,\n\t\t\t\tA9F41D2908F4B00200A2BC1C,\n\t\t\t\t910D345409057CD400A0EDE6,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tB6A359E00667D15B00A3A2BB = {\n\t\t\tisa = PBXHeadersBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tA9E52CE608E1EB0C00A2A9EA,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXHeadersBuildPhase section */\n\n/* Begin PBXNativeTarget section */\n\t\t91C82D5305CFF8B20042A20D = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A9E883810874A59B00B2DFE8;\n\t\t\tbuildPhases = (\n\t\t\t\t91C82D5405CFF8B20042A20D,\n\t\t\t\t91C82D5E05CFF8B20042A20D,\n\t\t\t\t91C82D6A05CFF8B20042A20D,\n\t\t\t\t91C82D6E05CFF8B20042A20D,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afconvert;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = afconvert;\n\t\t\tproductInstallPath = /usr/local/bin;\n\t\t\tproductName = Untitled;\n\t\t\tproductReference = 91C82D7005CFF8B20042A20D;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\t91C82D7205CFF8B20042A20D = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A9E883870874A59B00B2DFE8;\n\t\t\tbuildPhases = (\n\t\t\t\t91C82D7305CFF8B20042A20D,\n\t\t\t\t91C82D7A05CFF8B20042A20D,\n\t\t\t\t91C82D8305CFF8B20042A20D,\n\t\t\t\t91C82D8605CFF8B20042A20D,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinterleave;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = afinterleave;\n\t\t\tproductInstallPath = /usr/local/bin;\n\t\t\tproductName = afinterleave;\n\t\t\tproductReference = 91C82D8805CFF8B20042A20D;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\t91C82D8A05CFF8B20042A20D = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A9E8838D0874A59B00B2DFE8;\n\t\t\tbuildPhases = (\n\t\t\t\t91C82D8B05CFF8B20042A20D,\n\t\t\t\t91C82D9D05CFF8B20042A20D,\n\t\t\t\t91C82DB105CFF8B20042A20D,\n\t\t\t\t91C82DB505CFF8B20042A20D,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afplay;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = afplay;\n\t\t\tproductInstallPath = /usr/local/bin;\n\t\t\tproductName = afplay;\n\t\t\tproductReference = 91C82DB705CFF8B30042A20D;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\t91C82DB905CFF8B30042A20D = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A9E883930874A59B00B2DFE8;\n\t\t\tbuildPhases = (\n\t\t\t\t91C82DBA05CFF8B30042A20D,\n\t\t\t\t91C82DC705CFF8B30042A20D,\n\t\t\t\t91C82DD605CFF8B30042A20D,\n\t\t\t\t91C82DDB05CFF8B30042A20D,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afrecord;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = afrecord;\n\t\t\tproductInstallPath = /usr/local/bin;\n\t\t\tproductName = afrecord;\n\t\t\tproductReference = 91C82DDD05CFF8B30042A20D;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\t91C82DDF05CFF8B30042A20D = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A9E883990874A59B00B2DFE8;\n\t\t\tbuildPhases = (\n\t\t\t\t91C82DE005CFF8B30042A20D,\n\t\t\t\t91C82DE205CFF8B30042A20D,\n\t\t\t\t91C82DE505CFF8B30042A20D,\n\t\t\t\t91C82DE805CFF8B30042A20D,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = audioformats;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = audioformats;\n\t\t\tproductInstallPath = /usr/local/bin;\n\t\t\tproductName = audioformats;\n\t\t\tproductReference = 91C82DEA05CFF8B30042A20D;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\tA929CDB6069E34840010B9C5 = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A9E883B10874A59B00B2DFE8;\n\t\t\tbuildPhases = (\n\t\t\t\tA929CDB7069E34840010B9C5,\n\t\t\t\tA929CDC1069E34840010B9C5,\n\t\t\t\tA929CDCD069E34840010B9C5,\n\t\t\t\tA929CDD1069E34840010B9C5,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprocess;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = auprocess;\n\t\t\tproductInstallPath = /usr/local/bin;\n\t\t\tproductName = Untitled;\n\t\t\tproductReference = A929CDD2069E34840010B9C5;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\tA9F41D1B08F4B00200A2BC1C = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A9F41D3F08F4B00200A2BC1C;\n\t\t\tbuildPhases = (\n\t\t\t\tA9F41D1C08F4B00200A2BC1C,\n\t\t\t\tA9F41D2A08F4B00200A2BC1C,\n\t\t\t\tA9F41D3908F4B00200A2BC1C,\n\t\t\t\tA9F41D3E08F4B00200A2BC1C,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprocess;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = auprofile;\n\t\t\tproductInstallPath = /usr/local/bin;\n\t\t\tproductName = Untitled;\n\t\t\tproductReference = A9F41D4508F4B00200A2BC1C;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n\t\tB6A359E40667D15B00A3A2BB = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = A9E883A50874A59B00B2DFE8;\n\t\t\tbuildPhases = (\n\t\t\t\tB6A359E00667D15B00A3A2BB,\n\t\t\t\tB6A359E10667D15B00A3A2BB,\n\t\t\t\tB6A359E20667D15B00A3A2BB,\n\t\t\t\tB6A359E30667D15B00A3A2BB,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tbuildSettings = {\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = NO;\n\t\t\t\tGCC_PREFIX_HEADER = \"\";\n\t\t\t\tGCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;\n\t\t\t\tGCC_WARN_UNKNOWN_PRAGMAS = NO;\n\t\t\t\tINSTALL_PATH = /usr/local/bin;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinfo;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = \"-Wmost\";\n\t\t\t};\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = afinfo;\n\t\t\tproductName = afinfo;\n\t\t\tproductReference = B6A359E50667D15B00A3A2BB;\n\t\t\tproductType = \"com.apple.product-type.tool\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\tB6B9FA2C05B38B09007FB890 = {\n\t\t\tisa = PBXProject;\n\t\t\tbuildConfigurationList = A9E883B70874A59B00B2DFE8;\n\t\t\tbuildSettings = {\n\t\t\t};\n\t\t\tbuildStyles = (\n\t\t\t\tB6B9FA2A05B38B09007FB890,\n\t\t\t\t9171C2B107B060480067EEDA,\n\t\t\t\tB6B9FA2B05B38B09007FB890,\n\t\t\t\t9171C2B207B0605F0067EEDA,\n\t\t\t);\n\t\t\thasScannedForEncodings = 1;\n\t\t\tmainGroup = B6B9FA2805B38B09007FB890;\n\t\t\tproductRefGroup = B6D5204105B38D940077A2BA;\n\t\t\tprojectDirPath = \"\";\n\t\t\ttargets = (\n\t\t\t\t91C82D4C05CFF8B20042A20D,\n\t\t\t\t91C82D5305CFF8B20042A20D,\n\t\t\t\t91C82D7205CFF8B20042A20D,\n\t\t\t\t91C82D8A05CFF8B20042A20D,\n\t\t\t\t91C82DB905CFF8B30042A20D,\n\t\t\t\t91C82DDF05CFF8B30042A20D,\n\t\t\t\tB6A359E40667D15B00A3A2BB,\n\t\t\t\tA929CDB6069E34840010B9C5,\n\t\t\t\tA9F41D1B08F4B00200A2BC1C,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXRezBuildPhase section */\n\t\t91C82D6E05CFF8B20042A20D = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82D8605CFF8B20042A20D = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DB505CFF8B20042A20D = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DDB05CFF8B30042A20D = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DE805CFF8B30042A20D = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA929CDD1069E34840010B9C5 = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA9F41D3E08F4B00200A2BC1C = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tB6A359E20667D15B00A3A2BB = {\n\t\t\tisa = PBXRezBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXRezBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t91C82D5E05CFF8B20042A20D = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82D5F05CFF8B20042A20D,\n\t\t\t\t91C82D6005CFF8B20042A20D,\n\t\t\t\t91C82D6205CFF8B20042A20D,\n\t\t\t\t91C82D6305CFF8B20042A20D,\n\t\t\t\t91C82D6505CFF8B20042A20D,\n\t\t\t\t91C82D6605CFF8B20042A20D,\n\t\t\t\t91C82D6705CFF8B20042A20D,\n\t\t\t\t91C82D6805CFF8B20042A20D,\n\t\t\t\t91C82D6905CFF8B20042A20D,\n\t\t\t\t91B0CAC206641DEB00B57457,\n\t\t\t\t9138521207138D8100E6E381,\n\t\t\t\t91AFB5E6071C988A004D7421,\n\t\t\t\t9186C79D0720343600D7CA7A,\n\t\t\t\t91FF72500730614D008E851B,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82D7A05CFF8B20042A20D = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82D7B05CFF8B20042A20D,\n\t\t\t\t91C82D7D05CFF8B20042A20D,\n\t\t\t\t91C82D7E05CFF8B20042A20D,\n\t\t\t\t91C82D7F05CFF8B20042A20D,\n\t\t\t\t91C82D8005CFF8B20042A20D,\n\t\t\t\t91C82D8105CFF8B20042A20D,\n\t\t\t\t91C82D8205CFF8B20042A20D,\n\t\t\t\t9186C79C072033F000D7CA7A,\n\t\t\t\t9186C7B30720363600D7CA7A,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82D9D05CFF8B20042A20D = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82D9E05CFF8B20042A20D,\n\t\t\t\t91C82D9F05CFF8B20042A20D,\n\t\t\t\t91C82DA005CFF8B20042A20D,\n\t\t\t\t91C82DA105CFF8B20042A20D,\n\t\t\t\t91C82DA205CFF8B20042A20D,\n\t\t\t\t91C82DA305CFF8B20042A20D,\n\t\t\t\t91C82DA405CFF8B20042A20D,\n\t\t\t\t91C82DA605CFF8B20042A20D,\n\t\t\t\t91C82DA705CFF8B20042A20D,\n\t\t\t\t91C82DA805CFF8B20042A20D,\n\t\t\t\t91C82DA905CFF8B20042A20D,\n\t\t\t\t91C82DAB05CFF8B20042A20D,\n\t\t\t\t91C82DAC05CFF8B20042A20D,\n\t\t\t\t91C82DAD05CFF8B20042A20D,\n\t\t\t\t91C82DAE05CFF8B20042A20D,\n\t\t\t\t91C82DAF05CFF8B20042A20D,\n\t\t\t\t91C82DB005CFF8B20042A20D,\n\t\t\t\t9137C6020655A6EB00A1A3A2,\n\t\t\t\t9137C6220655A76F00A1A3A2,\n\t\t\t\t9186C7B90720365900D7CA7A,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DC705CFF8B30042A20D = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82DC805CFF8B30042A20D,\n\t\t\t\t91C82DCA05CFF8B30042A20D,\n\t\t\t\t91C82DCB05CFF8B30042A20D,\n\t\t\t\t91C82DCC05CFF8B30042A20D,\n\t\t\t\t91C82DCD05CFF8B30042A20D,\n\t\t\t\t91C82DCE05CFF8B30042A20D,\n\t\t\t\t91C82DCF05CFF8B30042A20D,\n\t\t\t\t91C82DD005CFF8B30042A20D,\n\t\t\t\t91C82DD105CFF8B30042A20D,\n\t\t\t\t91C82DD205CFF8B30042A20D,\n\t\t\t\t91C82DD305CFF8B30042A20D,\n\t\t\t\t91C82DD405CFF8B30042A20D,\n\t\t\t\t91C82DD505CFF8B30042A20D,\n\t\t\t\t91B0CA2606640DFD00B57457,\n\t\t\t\t91AFB5E8071C9892004D7421,\n\t\t\t\t9186C79F0720358400D7CA7A,\n\t\t\t\t9186C7BC0720368B00D7CA7A,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t91C82DE205CFF8B30042A20D = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t91C82DE305CFF8B30042A20D,\n\t\t\t\t9137C6040655A74F00A1A3A2,\n\t\t\t\t91E2D39806641E7800F19278,\n\t\t\t\t91AFB72F071CB5EF004D7421,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA929CDC1069E34840010B9C5 = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tA929CDC5069E34840010B9C5,\n\t\t\t\tA929CDC7069E34840010B9C5,\n\t\t\t\tA929CDC8069E34840010B9C5,\n\t\t\t\tA929CDC9069E34840010B9C5,\n\t\t\t\tA929CDCA069E34840010B9C5,\n\t\t\t\tA929CDD5069E34990010B9C5,\n\t\t\t\tA929CDD6069E34B50010B9C5,\n\t\t\t\tA929CDD9069E34C40010B9C5,\n\t\t\t\tA929CDF3069E358A0010B9C5,\n\t\t\t\tA929CE18069E35DD0010B9C5,\n\t\t\t\tA929CE1E069E35E00010B9C5,\n\t\t\t\tA929CE2A069E35E20010B9C5,\n\t\t\t\t9186C7C70720378800D7CA7A,\n\t\t\t\t9186C7C90720378D00D7CA7A,\n\t\t\t\t910D345109057CCE00A0EDE6,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tA9F41D2A08F4B00200A2BC1C = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tA9F41D2B08F4B00200A2BC1C,\n\t\t\t\tA9F41D2C08F4B00200A2BC1C,\n\t\t\t\tA9F41D2D08F4B00200A2BC1C,\n\t\t\t\tA9F41D2E08F4B00200A2BC1C,\n\t\t\t\tA9F41D2F08F4B00200A2BC1C,\n\t\t\t\tA9F41D3108F4B00200A2BC1C,\n\t\t\t\tA9F41D3208F4B00200A2BC1C,\n\t\t\t\tA9F41D3308F4B00200A2BC1C,\n\t\t\t\tA9F41D3408F4B00200A2BC1C,\n\t\t\t\tA9F41D3508F4B00200A2BC1C,\n\t\t\t\tA9F41D3608F4B00200A2BC1C,\n\t\t\t\tA9F41D3708F4B00200A2BC1C,\n\t\t\t\tA9F41D3808F4B00200A2BC1C,\n\t\t\t\tA9F41D4F08F4B0A100A2BC1C,\n\t\t\t\t910D345309057CD300A0EDE6,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\tB6A359E10667D15B00A3A2BB = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tB6A359E70667D1BE00A3A2BB,\n\t\t\t\tB6A359EA0667D1D000A3A2BB,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t91004357066E8609005A1EC3 = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = B6A359E40667D15B00A3A2BB;\n\t\t\ttargetProxy = 91004356066E8609005A1EC3;\n\t\t};\n\t\t915912E908F7230600A78EF3 = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = A9F41D1B08F4B00200A2BC1C;\n\t\t\ttargetProxy = 915912E808F7230600A78EF3;\n\t\t};\n\t\t91C82E0605CFF8B30042A20D = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 91C82D5305CFF8B20042A20D;\n\t\t\ttargetProxy = 91C82E0505CFF8B30042A20D;\n\t\t};\n\t\t91C82E0805CFF8B30042A20D = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 91C82D7205CFF8B20042A20D;\n\t\t\ttargetProxy = 91C82E0705CFF8B30042A20D;\n\t\t};\n\t\t91C82E0A05CFF8B30042A20D = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 91C82D8A05CFF8B20042A20D;\n\t\t\ttargetProxy = 91C82E0905CFF8B30042A20D;\n\t\t};\n\t\t91C82E0C05CFF8B30042A20D = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 91C82DB905CFF8B30042A20D;\n\t\t\ttargetProxy = 91C82E0B05CFF8B30042A20D;\n\t\t};\n\t\tA9E885A40874B31900B2DFE8 = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = A929CDB6069E34840010B9C5;\n\t\t\ttargetProxy = A9E885A30874B31900B2DFE8;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin XCBuildConfiguration section */\n\t\tA9E883820874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afconvert;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E883830874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS_NOT_USED_IN_PRECOMPS = SUPPORT_CODEC_PROFILE;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afconvert;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E883840874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afconvert;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E883850874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afconvert;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E883860874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afconvert;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9E883880874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinterleave;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E883890874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinterleave;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E8838A0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinterleave;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E8838B0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinterleave;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E8838C0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinterleave;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9E8838E0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afplay;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E8838F0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afplay;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E883900874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afplay;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E883910874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afplay;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E883920874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afplay;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9E883940874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afrecord;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E883950874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afrecord;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E883960874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afrecord;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E883970874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afrecord;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E883980874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afrecord;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9E8839A0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = audioformats;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E8839B0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = audioformats;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E8839C0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = audioformats;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E8839D0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = audioformats;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E8839E0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = audioformats;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9E883A60874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = NO;\n\t\t\t\tGCC_PREFIX_HEADER = \"\";\n\t\t\t\tGCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;\n\t\t\t\tGCC_WARN_UNKNOWN_PRAGMAS = NO;\n\t\t\t\tINSTALL_PATH = /usr/local/bin;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinfo;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = \"-Wmost\";\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E883A70874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = NO;\n\t\t\t\tGCC_PREFIX_HEADER = \"\";\n\t\t\t\tGCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;\n\t\t\t\tGCC_WARN_UNKNOWN_PRAGMAS = NO;\n\t\t\t\tINSTALL_PATH = /usr/local/bin;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinfo;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = \"-Wmost\";\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E883A80874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = NO;\n\t\t\t\tGCC_PREFIX_HEADER = \"\";\n\t\t\t\tGCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;\n\t\t\t\tGCC_WARN_UNKNOWN_PRAGMAS = NO;\n\t\t\t\tINSTALL_PATH = /usr/local/bin;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinfo;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = \"-Wmost\";\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E883A90874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = NO;\n\t\t\t\tGCC_PREFIX_HEADER = \"\";\n\t\t\t\tGCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;\n\t\t\t\tGCC_WARN_UNKNOWN_PRAGMAS = NO;\n\t\t\t\tINSTALL_PATH = /usr/local/bin;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinfo;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = \"-Wmost\";\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E883AA0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_PRECOMPILE_PREFIX_HEADER = NO;\n\t\t\t\tGCC_PREFIX_HEADER = \"\";\n\t\t\t\tGCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;\n\t\t\t\tGCC_WARN_UNKNOWN_PRAGMAS = NO;\n\t\t\t\tINSTALL_PATH = /usr/local/bin;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = afinfo;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = \"-Wmost\";\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9E883AC0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = All;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E883AD0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = All;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E883AE0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = All;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E883AF0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = All;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E883B00874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = All;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9E883B20874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprocess;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E883B30874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprocess;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E883B40874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprocess;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E883B50874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tLIBRARY_SEARCH_PATHS = \"\";\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprocess;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E883B60874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tFRAMEWORK_SEARCH_PATHS = \"\";\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprocess;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9E883B80874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9E883B90874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9E883BA0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9E883BB0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9E883BC0874A59B00B2DFE8 = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n\t\tA9F41D4008F4B00200A2BC1C = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprofile;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Panther\";\n\t\t};\n\t\tA9F41D4108F4B00200A2BC1C = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tGCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"-DDEBUG\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprofile;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Development-Tiger+\";\n\t\t};\n\t\tA9F41D4208F4B00200A2BC1C = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprofile;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Panther\";\n\t\t};\n\t\tA9F41D4308F4B00200A2BC1C = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tCOPY_PHASE_STRIP = YES;\n\t\t\t\tGCC_ENABLE_FIX_AND_CONTINUE = NO;\n\t\t\t\tMACOSX_DEPLOYMENT_TARGET = 10.4;\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprofile;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = \"Deployment-Tiger+\";\n\t\t};\n\t\tA9F41D4408F4B00200A2BC1C = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tOTHER_CFLAGS = \"\";\n\t\t\t\tOTHER_LDFLAGS = \"\";\n\t\t\t\tOTHER_REZFLAGS = \"\";\n\t\t\t\tPRODUCT_NAME = auprofile;\n\t\t\t\tREZ_EXECUTABLE = YES;\n\t\t\t\tSECTORDER_FLAGS = \"\";\n\t\t\t\tWARNING_CFLAGS = (\n\t\t\t\t\t\"-Wmost\",\n\t\t\t\t\t\"-Wno-four-char-constants\",\n\t\t\t\t\t\"-Wno-unknown-pragmas\",\n\t\t\t\t);\n\t\t\t\tZERO_LINK = NO;\n\t\t\t};\n\t\t\tname = Default;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\tA9E883810874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E883820874A59B00B2DFE8,\n\t\t\t\tA9E883830874A59B00B2DFE8,\n\t\t\t\tA9E883840874A59B00B2DFE8,\n\t\t\t\tA9E883850874A59B00B2DFE8,\n\t\t\t\tA9E883860874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9E883870874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E883880874A59B00B2DFE8,\n\t\t\t\tA9E883890874A59B00B2DFE8,\n\t\t\t\tA9E8838A0874A59B00B2DFE8,\n\t\t\t\tA9E8838B0874A59B00B2DFE8,\n\t\t\t\tA9E8838C0874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9E8838D0874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E8838E0874A59B00B2DFE8,\n\t\t\t\tA9E8838F0874A59B00B2DFE8,\n\t\t\t\tA9E883900874A59B00B2DFE8,\n\t\t\t\tA9E883910874A59B00B2DFE8,\n\t\t\t\tA9E883920874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9E883930874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E883940874A59B00B2DFE8,\n\t\t\t\tA9E883950874A59B00B2DFE8,\n\t\t\t\tA9E883960874A59B00B2DFE8,\n\t\t\t\tA9E883970874A59B00B2DFE8,\n\t\t\t\tA9E883980874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9E883990874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E8839A0874A59B00B2DFE8,\n\t\t\t\tA9E8839B0874A59B00B2DFE8,\n\t\t\t\tA9E8839C0874A59B00B2DFE8,\n\t\t\t\tA9E8839D0874A59B00B2DFE8,\n\t\t\t\tA9E8839E0874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9E883A50874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E883A60874A59B00B2DFE8,\n\t\t\t\tA9E883A70874A59B00B2DFE8,\n\t\t\t\tA9E883A80874A59B00B2DFE8,\n\t\t\t\tA9E883A90874A59B00B2DFE8,\n\t\t\t\tA9E883AA0874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9E883AB0874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E883AC0874A59B00B2DFE8,\n\t\t\t\tA9E883AD0874A59B00B2DFE8,\n\t\t\t\tA9E883AE0874A59B00B2DFE8,\n\t\t\t\tA9E883AF0874A59B00B2DFE8,\n\t\t\t\tA9E883B00874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9E883B10874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E883B20874A59B00B2DFE8,\n\t\t\t\tA9E883B30874A59B00B2DFE8,\n\t\t\t\tA9E883B40874A59B00B2DFE8,\n\t\t\t\tA9E883B50874A59B00B2DFE8,\n\t\t\t\tA9E883B60874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9E883B70874A59B00B2DFE8 = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9E883B80874A59B00B2DFE8,\n\t\t\t\tA9E883B90874A59B00B2DFE8,\n\t\t\t\tA9E883BA0874A59B00B2DFE8,\n\t\t\t\tA9E883BB0874A59B00B2DFE8,\n\t\t\t\tA9E883BC0874A59B00B2DFE8,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n\t\tA9F41D3F08F4B00200A2BC1C = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\tA9F41D4008F4B00200A2BC1C,\n\t\t\t\tA9F41D4108F4B00200A2BC1C,\n\t\t\t\tA9F41D4208F4B00200A2BC1C,\n\t\t\t\tA9F41D4308F4B00200A2BC1C,\n\t\t\t\tA9F41D4408F4B00200A2BC1C,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Default;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = B6B9FA2C05B38B09007FB890;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/CMakeLists.txt",
    "content": "project(AudioFileTools)\n\ninclude_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})\n\ninclude_directories(\n\t${CMAKE_CURRENT_SOURCE_DIR}/PublicUtility\n\t${CMAKE_CURRENT_SOURCE_DIR}/Utility\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility\n)\n\nadd_definitions(-U__DARWIN_UNIX03 -D__DARWIN_UNIX03=0)\n\nset(sources\n\tPublicUtility/CAChannelMapper.cpp\n\tPublicUtility/CAChannelMappingPlayer.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioUnit.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CABufferList.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAComponent.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAComponentDescription.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioChannelLayout.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioChannelLayoutObject.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAStreamBasicDescription.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAMutex.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHostTimeBase.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioFileFormats.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAXException.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUProcessor.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAFilePathUtils.cpp\n\t${CMAKE_CURRENT_SOURCE_DIR}/../CoreAudioUtilityClasses/CoreAudio/PublicUtility/AUOutputBL.cpp\n\tPublicUtility/CAAudioFileStreamer.cpp\n\tPublicUtility/CAAudioFilePlayer.cpp\n\tPublicUtility/CAAudioFileRecorder.cpp\n\tPublicUtility/CABufferQueue.cpp\n\tPublicUtility/CAGuard.cpp\n\tPublicUtility/CAPThread.cpp\n\tUtility/CAAudioFileConverter.cpp\n\tUtility/CAChannelLayouts.cpp\n\tUtility/AFToolsCommon.cpp\n)\n\nadd_library(AudioFileTools_util OBJECT ${sources})\n\nadd_darling_executable(afplay afplay.cpp $<TARGET_OBJECTS:AudioFileTools_util>)\ntarget_link_libraries(afplay system AudioToolbox cxx CoreServices CoreAudio)\n\nadd_darling_executable(afrecord afrecord.cpp $<TARGET_OBJECTS:AudioFileTools_util>)\ntarget_link_libraries(afrecord system AudioToolbox cxx CoreServices CoreAudio)\n\nadd_darling_executable(afinfo afinfo.cpp $<TARGET_OBJECTS:AudioFileTools_util>)\ntarget_link_libraries(afinfo system AudioToolbox cxx CoreServices CoreAudio)\n\nadd_darling_executable(afconvert afconvert.cpp afconvert_main.cpp $<TARGET_OBJECTS:AudioFileTools_util>)\ntarget_link_libraries(afconvert system AudioToolbox cxx CoreServices CoreAudio)\n\ninstall(TARGETS afplay afrecord afinfo afconvert DESTINATION libexec/darling/usr/bin)\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAAudioFile.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFile.cpp\n\t\n=============================================================================*/\n\n#include \"CAAudioFile.h\"\n\n#if !CAAF_USE_EXTAUDIOFILE\n\n#include \"CAXException.h\"\n#include <algorithm>\n#include \"CAHostTimeBase.h\"\n#include \"CADebugMacros.h\"\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioToolbox.h>\n#else\n\t#include <AudioFormat.h>\n#endif\n\n#if DEBUG\n\t//#define VERBOSE_IO 1\n\t//#define VERBOSE_CONVERTER 1\n\t//#define VERBOSE_CHANNELMAP 1\n\t//#define LOG_FUNCTION_ENTRIES 1\n\n\t#if VERBOSE_CHANNELMAP\n\t\t#include \"CAChannelLayouts.h\"\t// this is in Source/Tests/AudioFileTools/Utility\n\t#endif\n#endif\n\n#if LOG_FUNCTION_ENTRIES\n\tclass FunctionLogger {\n\tpublic:\n\t\tFunctionLogger(const char *name, const char *fmt=NULL, ...) : mName(name) {\n\t\t\tIndent();\n\t\t\tprintf(\"-> %s \", name);\n\t\t\tif (fmt) {\n\t\t\t\tva_list args;\n\t\t\t\tva_start(args, fmt);\n\t\t\t\tvprintf(fmt, args);\n\t\t\t\tva_end(args);\n\t\t\t}\n\t\t\tprintf(\"\\n\");\n\t\t\t++sIndent;\n\t\t}\n\t\t~FunctionLogger() {\n\t\t\t--sIndent;\n\t\t\tIndent();\n\t\t\tprintf(\"<- %s\\n\", mName);\n\t\t\tif (sIndent == 0)\n\t\t\t\tprintf(\"\\n\");\n\t\t}\n\t\t\n\t\tstatic void\tIndent() {\n\t\t\tfor (int i = sIndent; --i >= 0; ) {\n\t\t\t\tputchar(' '); putchar(' ');\n\t\t\t}\n\t\t}\n\t\t\n\t\tconst char *mName;\n\t\tstatic int sIndent;\n\t};\n\tint FunctionLogger::sIndent = 0;\n\n\t#define LOG_FUNCTION(name, format, ...) FunctionLogger _flog(name, format, ## __VA_ARGS__);\n#else\n\t#define LOG_FUNCTION(name, format, foo)\n#endif\n\nstatic const UInt32 kDefaultIOBufferSizeBytes = 0x10000;\n\n#if CAAUDIOFILE_PROFILE\n\t#define StartTiming(af, starttime) UInt64 starttime = af->mProfiling ? CAHostTimeBase::GetTheCurrentTime() : 0\n\t#define ElapsedTime(af, starttime, counter) if (af->mProfiling) counter += (CAHostTimeBase::GetTheCurrentTime() - starttime)\n#else\n\t#define StartTiming(af, starttime)\n\t#define ElapsedTime(af, starttime, counter)\n#endif\n\n#define kNoMoreInputRightNow 'nein'\n\n// _______________________________________________________________________________________\n//\nCAAudioFile::CAAudioFile() :\n\tmAudioFile(0),\n\tmUseCache(false),\n\tmFinishingEncoding(false),\n\tmMode(kClosed),\n\tmFileDataOffset(-1),\n\tmFramesToSkipFollowingSeek(0),\n\t\n\tmClientOwnsIOBuffer(false),\n\tmPacketDescs(NULL),\n\tmNumPacketDescs(0),\n\tmConverter(NULL),\n\tmMagicCookie(NULL),\n\tmWriteBufferList(NULL)\n#if CAAUDIOFILE_PROFILE\n    ,\n\tmProfiling(false),\n\tmTicksInConverter(0),\n\tmTicksInReadInConverter(0),\n\tmTicksInIO(0),\n\tmInConverter(false)\n#endif\n{\n\tmIOBufferList.mBuffers[0].mData = NULL;\n\tmIOBufferList.mBuffers[0].mDataByteSize = 0;\n\tmClientMaxPacketSize = 0;\n\tmIOBufferSizeBytes = kDefaultIOBufferSizeBytes;\n}\n\n// _______________________________________________________________________________________\n//\nCAAudioFile::~CAAudioFile()\n{\n\tClose();\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::Close()\n{\n\tLOG_FUNCTION(\"CAAudioFile::Close\", NULL, NULL);\n\tif (mMode == kClosed)\n\t\treturn;\n\tif (mMode == kWriting)\n\t\tFlushEncoder();\n\tCloseConverter();\n\tif (mAudioFile != 0 && mOwnOpenFile) {\n\t\tAudioFileClose(mAudioFile);\n\t\tmAudioFile = 0;\n\t}\n\tif (!mClientOwnsIOBuffer) {\n\t\tdelete[] (Byte *)mIOBufferList.mBuffers[0].mData;\n\t\tmIOBufferList.mBuffers[0].mData = NULL;\n\t\tmIOBufferList.mBuffers[0].mDataByteSize = 0;\n\t}\n\tdelete[] mPacketDescs;\tmPacketDescs = NULL;\tmNumPacketDescs = 0;\n\tdelete[] mMagicCookie;\tmMagicCookie = NULL;\n\tdelete mWriteBufferList;\tmWriteBufferList = NULL;\n\tmMode = kClosed;\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::CloseConverter()\n{\n\tif (mConverter) {\n#if VERBOSE_CONVERTER\n\t\tprintf(\"CAAudioFile %p : CloseConverter\\n\", this);\n#endif\n\t\tAudioConverterDispose(mConverter);\n\t\tmConverter = NULL;\n\t}\n}\n\n// =======================================================================================\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::Open(const FSRef &fsref)\n{\n\tLOG_FUNCTION(\"CAAudioFile::Open\", \"%p\", this);\n\tXThrowIf(mMode != kClosed, kExtAudioFileError_InvalidOperationOrder, \"file already open\");\n\tmFSRef = fsref;\n\tXThrowIfError(AudioFileOpen(&mFSRef, fsRdPerm, 0, &mAudioFile), \"open audio file\");\n\tmOwnOpenFile = true;\n\tmMode = kReading;\n\tGetExistingFileInfo();\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::Wrap(AudioFileID fileID, bool forWriting)\n{\n\tLOG_FUNCTION(\"CAAudioFile::Wrap\", \"%p\", this);\n\tXThrowIf(mMode != kClosed, kExtAudioFileError_InvalidOperationOrder, \"file already open\");\n\n\tmAudioFile = fileID;\n\tmOwnOpenFile = false;\n\tmMode = forWriting ? kPreparingToWrite : kReading;\n\tGetExistingFileInfo();\n\tif (forWriting)\n\t\tFileFormatChanged();\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::CreateNew(const FSRef &parentDir, CFStringRef filename, AudioFileTypeID filetype, const AudioStreamBasicDescription &dataFormat, const AudioChannelLayout *layout)\n{\n\tLOG_FUNCTION(\"CAAudioFile::CreateNew\", \"%p\", this);\n\tXThrowIf(mMode != kClosed, kExtAudioFileError_InvalidOperationOrder, \"file already open\");\n\t\n\tmFileDataFormat = dataFormat;\n\tif (layout) {\n\t\tmFileChannelLayout = layout;\n#if VERBOSE_CHANNELMAP\n\t\tprintf(\"PrepareNew passed channel layout: %s\\n\", CAChannelLayouts::ConstantToString(mFileChannelLayout.Tag()));\n#endif\n\t}\n\tmMode = kPreparingToCreate;\n\tFileFormatChanged(&parentDir, filename, filetype);\n}\n\n// _______________________________________________________________________________________\n//\n// called to create the file -- or update its format/channel layout/properties based on an encoder \n// setting change\nvoid\tCAAudioFile::FileFormatChanged(const FSRef *parentDir, CFStringRef filename, AudioFileTypeID filetype)\n{\n\tLOG_FUNCTION(\"CAAudioFile::FileFormatChanged\", \"%p\", this);\n\tXThrowIf(mMode != kPreparingToCreate && mMode != kPreparingToWrite, kExtAudioFileError_InvalidOperationOrder, \"new file not prepared\");\n\t\n\tUInt32 propertySize;\n\tOSStatus err;\n\tAudioStreamBasicDescription saveFileDataFormat = mFileDataFormat;\n\t\n#if VERBOSE_CONVERTER\n\tmFileDataFormat.PrintFormat(stdout, \"\", \"Specified file data format\");\n#endif\n\t\n\t// Find out the actual format the converter will produce. This is necessary in\n\t// case the bitrate has forced a lower sample rate, which needs to be set correctly\n\t// in the stream description passed to AudioFileCreate.\n\tif (mConverter != NULL) {\n\t\tpropertySize = sizeof(AudioStreamBasicDescription);\n\t\tFloat64 origSampleRate = mFileDataFormat.mSampleRate;\n\t\tXThrowIfError(AudioConverterGetProperty(mConverter, kAudioConverterCurrentOutputStreamDescription, &propertySize, &mFileDataFormat), \"get audio converter's output stream description\");\n\t\t// do the same for the channel layout being output by the converter\n#if VERBOSE_CONVERTER\n\t\tmFileDataFormat.PrintFormat(stdout, \"\", \"Converter output\");\n#endif\n\t\tif (fiszero(mFileDataFormat.mSampleRate))\n\t\t\tmFileDataFormat.mSampleRate = origSampleRate;\n\t\terr = AudioConverterGetPropertyInfo(mConverter, kAudioConverterOutputChannelLayout, &propertySize, NULL);\n\t\tif (err == noErr && propertySize > 0) {\n\t\t\tAudioChannelLayout *layout = static_cast<AudioChannelLayout *>(malloc(propertySize));\n\t\t\terr = AudioConverterGetProperty(mConverter, kAudioConverterOutputChannelLayout, &propertySize, layout);\n\t\t\tif (err) {\n\t\t\t\tfree(layout);\n\t\t\t\tXThrow(err, \"couldn't get audio converter's output channel layout\");\n\t\t\t}\n\t\t\tmFileChannelLayout = layout;\n#if VERBOSE_CHANNELMAP\n\t\t\tprintf(\"got new file's channel layout from converter: %s\\n\", CAChannelLayouts::ConstantToString(mFileChannelLayout.Tag()));\n#endif\n\t\t\tfree(layout);\n\t\t}\n\t}\n\t\n\t// create the output file\n\tif (mMode == kPreparingToCreate) {\n\t\tCAStreamBasicDescription newFileDataFormat = mFileDataFormat;\n\t\tif (fiszero(newFileDataFormat.mSampleRate))\n\t\t\tnewFileDataFormat.mSampleRate = 44100;\t// just make something up for now\n#if VERBOSE_CONVERTER\n\t\tnewFileDataFormat.PrintFormat(stdout, \"\", \"Applied to new file\");\n#endif\n\t\tXThrowIfError(AudioFileCreate(parentDir, filename, filetype, &newFileDataFormat, 0, &mFSRef, &mAudioFile), \"create audio file\");\n\t\tmMode = kPreparingToWrite;\n\t\tmOwnOpenFile = true;\n\t} else if (saveFileDataFormat != mFileDataFormat || fnotequal(saveFileDataFormat.mSampleRate, mFileDataFormat.mSampleRate)) {\n\t\t// second check must be explicit since operator== on ASBD treats SR of zero as \"don't care\"\n\t\tif (fiszero(mFileDataFormat.mSampleRate))\n\t\t\tmFileDataFormat.mSampleRate = mClientDataFormat.mSampleRate;\n#if VERBOSE_CONVERTER\n\t\tmFileDataFormat.PrintFormat(stdout, \"\", \"Applied to new file\");\n#endif\n\t\tXThrowIf(fiszero(mFileDataFormat.mSampleRate), kExtAudioFileError_InvalidDataFormat, \"file's sample rate is 0\");\n\t\tXThrowIfError(AudioFileSetProperty(mAudioFile, kAudioFilePropertyDataFormat, sizeof(AudioStreamBasicDescription), &mFileDataFormat), \"couldn't update file's data format\");\n\t}\n\n\tUInt32 deferSizeUpdates = 1;\n\terr = AudioFileSetProperty(mAudioFile, kAudioFilePropertyDeferSizeUpdates, sizeof(UInt32), &deferSizeUpdates);\n\n\tif (mConverter != NULL) {\n\t\t// encoder\n\t\t// get the magic cookie, if any, from the converter\t\t\n\t\tdelete[] mMagicCookie;\tmMagicCookie = NULL;\n\t\tmMagicCookieSize = 0;\n\n\t\terr = AudioConverterGetPropertyInfo(mConverter, kAudioConverterCompressionMagicCookie, &propertySize, NULL);\n\t\t\n\t\t// we can get a noErr result and also a propertySize == 0\n\t\t// -- if the file format does support magic cookies, but this file doesn't have one.\n\t\tif (err == noErr && propertySize > 0) {\n\t\t\tmMagicCookie = new Byte[propertySize];\n\t\t\tXThrowIfError(AudioConverterGetProperty(mConverter, kAudioConverterCompressionMagicCookie, &propertySize, mMagicCookie), \"get audio converter's magic cookie\");\n\t\t\tmMagicCookieSize = propertySize;\t// the converter lies and tell us the wrong size\n\t\t\t// now set the magic cookie on the output file\n\t\t\tUInt32 willEatTheCookie = false;\n\t\t\t// the converter wants to give us one; will the file take it?\n\t\t\terr = AudioFileGetPropertyInfo(mAudioFile, kAudioFilePropertyMagicCookieData,\n\t\t\t\t\tNULL, &willEatTheCookie);\n\t\t\tif (err == noErr && willEatTheCookie) {\n#if VERBOSE_CONVERTER\n\t\t\t\tprintf(\"Setting cookie on encoded file\\n\");\n#endif\n\t\t\t\tXThrowIfError(AudioFileSetProperty(mAudioFile, kAudioFilePropertyMagicCookieData, mMagicCookieSize, mMagicCookie), \"set audio file's magic cookie\");\n\t\t\t}\n\t\t}\n\t\t\n\t\t// get maximum packet size\n\t\tpropertySize = sizeof(UInt32);\n\t\tXThrowIfError(AudioConverterGetProperty(mConverter, kAudioConverterPropertyMaximumOutputPacketSize, &propertySize, &mFileMaxPacketSize), \"get audio converter's maximum output packet size\");\n\n\t\tAllocateBuffers(true /* okToFail */);\n\t} else {\n\t\tInitFileMaxPacketSize();\n\t}\n\t\n\tif (mFileChannelLayout.IsValid() && mFileChannelLayout.NumberChannels() > 2) {\n\t\t// don't bother tagging mono/stereo files\n\t\tUInt32 isWritable;\n\t\terr = AudioFileGetPropertyInfo(mAudioFile, kAudioFilePropertyChannelLayout, NULL, &isWritable);\n\t\tif (!err && isWritable) {\n#if VERBOSE_CHANNELMAP\n\t\t\tprintf(\"writing file's channel layout: %s\\n\", CAChannelLayouts::ConstantToString(mFileChannelLayout.Tag()));\n#endif\n\t\t\terr = AudioFileSetProperty(mAudioFile, kAudioFilePropertyChannelLayout, \n\t\t\t\tmFileChannelLayout.Size(), &mFileChannelLayout.Layout());\n\t\t\tif (err)\n\t\t\t\tCAXException::Warning(\"could not set the file's channel layout\", err);\n\t\t} else {\n#if VERBOSE_CHANNELMAP\n\t\t\tprintf(\"file won't accept a channel layout (write)\\n\");\n#endif\n\t\t}\n\t}\n\t\n\tUpdateClientMaxPacketSize();\t// also sets mFrame0Offset\n\tmPacketMark = 0;\n\tmFrameMark = 0;\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::InitFileMaxPacketSize()\n{\n\tLOG_FUNCTION(\"CAAudioFile::InitFileMaxPacketSize\", \"%p\", this);\n\tUInt32 propertySize = sizeof(UInt32);\n\tOSStatus err = AudioFileGetProperty(mAudioFile, kAudioFilePropertyMaximumPacketSize, \n\t\t&propertySize, &mFileMaxPacketSize);\n\tif (err) {\n\t\t// workaround for 3361377: not all file formats' maximum packet sizes are supported\n\t\tif (!mFileDataFormat.IsPCM())\n\t\t\tXThrowIfError(err, \"get audio file's maximum packet size\");\n\t\tmFileMaxPacketSize = mFileDataFormat.mBytesPerFrame;\n\t}\n\tAllocateBuffers(true /* okToFail */);\n}\n\n\n// _______________________________________________________________________________________\n//\nSInt64  CAAudioFile::FileDataOffset()\n{\n\tif (mFileDataOffset < 0) {\n\t\tUInt32 propertySize = sizeof(SInt64);\n\t\tXThrowIfError(AudioFileGetProperty(mAudioFile, kAudioFilePropertyDataOffset, &propertySize, &mFileDataOffset), \"couldn't get file's data offset\");\n\t}\n\treturn mFileDataOffset;\n}\n\n// _______________________________________________________________________________________\n//\nSInt64  CAAudioFile::GetNumberFrames() const\n{\n\tAudioFilePacketTableInfo pti;\n\tUInt32 propertySize = sizeof(pti);\n\tOSStatus err = AudioFileGetProperty(mAudioFile, kAudioFilePropertyPacketTableInfo, &propertySize, &pti);\n\tif (err == noErr)\n\t\treturn pti.mNumberValidFrames;\n\treturn mFileDataFormat.mFramesPerPacket * GetNumberPackets() - mFrame0Offset;\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::SetNumberFrames(SInt64 nFrames)\n{\n\tXThrowIf(mFileDataFormat.mFramesPerPacket != 1, kExtAudioFileError_InvalidDataFormat, \"SetNumberFrames only supported for PCM\");\n\tXThrowIfError(AudioFileSetProperty(mAudioFile, kAudioFilePropertyAudioDataPacketCount, sizeof(SInt64), &nFrames), \"Couldn't set number of packets on audio file\");\n}\n\n// _______________________________________________________________________________________\n//\n// call for existing file, NOT new one - from Open() or Wrap()\nvoid\tCAAudioFile::GetExistingFileInfo()\n{\n\tLOG_FUNCTION(\"CAAudioFile::GetExistingFileInfo\", \"%p\", this);\n\tUInt32 propertySize;\n\tOSStatus err;\n\t\n\t// get mFileDataFormat\n\tpropertySize = sizeof(AudioStreamBasicDescription);\n\tXThrowIfError(AudioFileGetProperty(mAudioFile, kAudioFilePropertyDataFormat, &propertySize, &mFileDataFormat), \"get audio file's data format\");\n\t\n\t// get mFileChannelLayout\n\terr = AudioFileGetPropertyInfo(mAudioFile, kAudioFilePropertyChannelLayout, &propertySize, NULL);\n\tif (err == noErr && propertySize > 0) {\n\t\tAudioChannelLayout *layout = static_cast<AudioChannelLayout *>(malloc(propertySize));\n\t\terr = AudioFileGetProperty(mAudioFile, kAudioFilePropertyChannelLayout, &propertySize, layout);\n\t\tif (err == noErr) {\n\t\t\tmFileChannelLayout = layout;\n#if VERBOSE_CHANNELMAP\n\t\t\tprintf(\"existing file's channel layout: %s\\n\", CAChannelLayouts::ConstantToString(mFileChannelLayout.Tag()));\n#endif\n\t\t}\n\t\tfree(layout);\n\t\tXThrowIfError(err, \"get audio file's channel layout\");\n\t}\n\tif (mMode != kReading)\n\t\treturn;\n\t\n#if 0\n\t// get mNumberPackets\n\tpropertySize = sizeof(mNumberPackets);\n\tXThrowIfError(AudioFileGetProperty(mAudioFile, kAudioFilePropertyAudioDataPacketCount, &propertySize, &mNumberPackets), \"get audio file's packet count\");\n#if VERBOSE_IO\n\tprintf(\"CAAudioFile::GetExistingFileInfo: %qd packets\\n\", mNumberPackets);\n#endif\n#endif\n\t\n\t// get mMagicCookie\n\terr = AudioFileGetPropertyInfo(mAudioFile, kAudioFilePropertyMagicCookieData, &propertySize, NULL);\n\tif (err == noErr && propertySize > 0) {\n\t\tmMagicCookie = new Byte[propertySize];\n\t\tmMagicCookieSize = propertySize;\n\t\tXThrowIfError(AudioFileGetProperty(mAudioFile, kAudioFilePropertyMagicCookieData, &propertySize, mMagicCookie), \"get audio file's magic cookie\");\n\t}\n\tInitFileMaxPacketSize();\n\tmPacketMark = 0;\n\tmFrameMark = 0;\n\t\n\tUpdateClientMaxPacketSize();\n}\n\n// =======================================================================================\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::SetFileChannelLayout(const CAAudioChannelLayout &layout)\n{\n\tLOG_FUNCTION(\"CAAudioFile::SetFileChannelLayout\", \"%p\", this);\n\tmFileChannelLayout = layout;\n#if VERBOSE_CHANNELMAP\n\tprintf(\"file channel layout set explicitly (%s): %s\\n\", mMode == kReading ? \"read\" : \"write\", CAChannelLayouts::ConstantToString(mFileChannelLayout.Tag()));\n#endif\n\tif (mMode != kReading)\n\t\tFileFormatChanged();\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::SetClientFormat(const CAStreamBasicDescription &dataFormat, const CAAudioChannelLayout *layout)\n{\n\tLOG_FUNCTION(\"CAAudioFile::SetClientFormat\", \"%p\", this);\n\tXThrowIf(!dataFormat.IsPCM(), kExtAudioFileError_NonPCMClientFormat, \"non-PCM client format on audio file\");\n\t\n\tbool dataFormatChanging = (mClientDataFormat.mFormatID == 0 || mClientDataFormat != dataFormat);\n\t\n\tif (dataFormatChanging) {\n\t\tCloseConverter();\n\t\tif (mWriteBufferList) {\n\t\t\tdelete mWriteBufferList;\n\t\t\tmWriteBufferList = NULL;\n\t\t}\n\t\tmClientDataFormat = dataFormat;\n\t}\n\t\n\tif (layout && layout->IsValid()) {\n\t\tXThrowIf(layout->NumberChannels() != mClientDataFormat.NumberChannels(), kExtAudioFileError_InvalidChannelMap, \"inappropriate channel map\");\n\t\tmClientChannelLayout = *layout;\n\t}\n\t\n\tbool differentLayouts;\n\tif (mClientChannelLayout.IsValid()) {\n\t\tif (mFileChannelLayout.IsValid()) {\n\t\t\tdifferentLayouts = mClientChannelLayout.Tag() != mFileChannelLayout.Tag();\n#if VERBOSE_CHANNELMAP\n\t\t\tprintf(\"two valid layouts, %s\\n\", differentLayouts ? \"different\" : \"same\");\n#endif\n\t\t} else {\n\t\t\tdifferentLayouts = false;\n#if VERBOSE_CHANNELMAP\n\t\t\tprintf(\"valid client layout, unknown file layout\\n\");\n#endif\n\t\t}\n\t} else {\n\t\tdifferentLayouts = false;\n#if VERBOSE_CHANNELMAP\n\t\tif (mFileChannelLayout.IsValid())\n\t\t\tprintf(\"valid file layout, unknown client layout\\n\");\n\t\telse\n\t\t\tprintf(\"two invalid layouts\\n\");\n#endif\n\t}\n\t\n\tif (mClientDataFormat != mFileDataFormat || differentLayouts) {\n\t\t// We need an AudioConverter.\n\t\tif (mMode == kReading) {\n\t\t\t// file -> client (decode)\n//mFileDataFormat.PrintFormat(  stdout, \"\", \"File:   \");\n//mClientDataFormat.PrintFormat(stdout, \"\", \"Client: \");\n\n\t\t\tif (mConverter == NULL)\n\t\t\t\tXThrowIfError(AudioConverterNew(&mFileDataFormat, &mClientDataFormat, &mConverter),\n\t\t\t\t\"create audio converter\");\n\t\t\t\n#if VERBOSE_CONVERTER\n\t\t\tprintf(\"CAAudioFile %p -- created converter\\n\", this);\n\t\t\tCAShow(mConverter);\n#endif\n\t\t\t// set the magic cookie, if any (for decode)\n\t\t\tif (mMagicCookie)\n\t\t\t\tSetConverterProperty(kAudioConverterDecompressionMagicCookie, mMagicCookieSize, mMagicCookie, mFileDataFormat.IsPCM());\n\t\t\t\t\t// we get cookies from some AIFF's but the converter barfs on them,\n\t\t\t\t\t// so we set canFail to true for PCM\n\n\t\t\tSetConverterChannelLayout(false, mFileChannelLayout);\n\t\t\tSetConverterChannelLayout(true, mClientChannelLayout);\n\t\t\t\n\t\t\t// propagate leading/trailing frame counts\n\t\t\tif (mFileDataFormat.mBitsPerChannel == 0) {\n\t\t\t\tUInt32 propertySize;\n\t\t\t\tOSStatus err;\n\t\t\t\tAudioFilePacketTableInfo pti;\n\t\t\t\tpropertySize = sizeof(pti);\n\t\t\t\terr = AudioFileGetProperty(mAudioFile, kAudioFilePropertyPacketTableInfo, &propertySize, &pti);\n\t\t\t\tif (err == noErr && (pti.mPrimingFrames > 0 || pti.mRemainderFrames > 0)) {\n\t\t\t\t\tAudioConverterPrimeInfo primeInfo;\n\t\t\t\t\tprimeInfo.leadingFrames = pti.mPrimingFrames;\n\t\t\t\t\tprimeInfo.trailingFrames = pti.mRemainderFrames;\n\t\t\t\t\t/* ignore any error. better to play it at all than not. */\n\t\t\t\t\t/*err = */AudioConverterSetProperty(mConverter, kAudioConverterPrimeInfo, sizeof(primeInfo), &primeInfo);\n\t\t\t\t\t//XThrowIfError(err, \"couldn't set prime info on converter\");\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (mMode == kPreparingToCreate || mMode == kPreparingToWrite) {\n\t\t\t// client -> file (encode)\n\t\t\tif (mConverter == NULL)\n\t\t\t\tXThrowIfError(AudioConverterNew(&mClientDataFormat, &mFileDataFormat, &mConverter), \"create audio converter\");\n\t\t\tmWriteBufferList = CABufferList::New(\"\", mClientDataFormat);\n\t\t\tSetConverterChannelLayout(false, mClientChannelLayout);\n\t\t\tSetConverterChannelLayout(true, mFileChannelLayout);\n\t\t\tif (mMode == kPreparingToWrite)\n\t\t\t\tFileFormatChanged();\n\t\t} else\n\t\t\tXThrowIfError(kExtAudioFileError_InvalidOperationOrder, \"audio file format not yet known\");\n\t}\n\tUpdateClientMaxPacketSize();\n}\n\n// _______________________________________________________________________________________\n//\nOSStatus\tCAAudioFile::SetConverterProperty(\t\n\t\t\t\t\t\t\t\t\t\t\tAudioConverterPropertyID\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinPropertyDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void*\t\t\t\t\tinPropertyData,\n\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\tinCanFail)\n{\n\tOSStatus err = noErr;\n\t//LOG_FUNCTION(\"ExtAudioFile::SetConverterProperty\", \"%p %-4.4s\", this, (char *)&inPropertyID);\n\tif (inPropertyID == kAudioConverterPropertySettings && *(CFPropertyListRef *)inPropertyData == NULL)\n\t\t;\n\telse {\n\t\terr = AudioConverterSetProperty(mConverter, inPropertyID, inPropertyDataSize, inPropertyData);\n\t\tif (!inCanFail) {\n\t\t\tXThrowIfError(err, \"set audio converter property\");\n\t\t}\n\t}\n\tUpdateClientMaxPacketSize();\n\tif (mMode == kPreparingToWrite)\n\t\tFileFormatChanged();\n\treturn err;\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::SetConverterChannelLayout(bool output, const CAAudioChannelLayout &layout)\n{\n\tLOG_FUNCTION(\"CAAudioFile::SetConverterChannelLayout\", \"%p\", this);\n\tOSStatus err;\n\t\n\tif (layout.IsValid()) {\n#if VERBOSE_CHANNELMAP\n\t\tprintf(\"Setting converter's %s channel layout: %s\\n\", output ? \"output\" : \"input\",\n\t\t\tCAChannelLayouts::ConstantToString(mFileChannelLayout.Tag()));\n#endif\n\t\tif (output) {\n\t\t\terr = AudioConverterSetProperty(mConverter, kAudioConverterOutputChannelLayout,\n\t\t\t\tlayout.Size(), &layout.Layout());\n\t\t\tXThrowIf(err && err != kAudioConverterErr_OperationNotSupported, err, \"couldn't set converter's output channel layout\");\n\t\t} else {\n\t\t\terr = AudioConverterSetProperty(mConverter, kAudioConverterInputChannelLayout,\n\t\t\t\tlayout.Size(), &layout.Layout());\n\t\t\tXThrowIf(err && err != kAudioConverterErr_OperationNotSupported, err, \"couldn't set converter's input channel layout\");\n\t\t}\n\t\tif (mMode == kPreparingToWrite)\n\t\t\tFileFormatChanged();\n\t}\n}\n\n// _______________________________________________________________________________________\n//\nCFArrayRef  CAAudioFile::GetConverterConfig()\n{\n\tCFArrayRef plist;\n\tUInt32 propertySize = sizeof(plist);\n\tXThrowIfError(AudioConverterGetProperty(mConverter, kAudioConverterPropertySettings, &propertySize, &plist), \"get converter property settings\");\n\treturn plist;\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::UpdateClientMaxPacketSize()\n{\n\tLOG_FUNCTION(\"CAAudioFile::UpdateClientMaxPacketSize\", \"%p\", this);\n\tmFrame0Offset = 0;\n\tif (mConverter != NULL) {\n\t\tAudioConverterPropertyID property = (mMode == kReading) ? \n\t\t\tkAudioConverterPropertyMaximumOutputPacketSize :\n\t\t\tkAudioConverterPropertyMaximumInputPacketSize;\n\t\t\t\n\t\tUInt32 propertySize = sizeof(UInt32);\n\t\tXThrowIfError(AudioConverterGetProperty(mConverter, property, &propertySize, &mClientMaxPacketSize),\n\t\t\t\"get audio converter's maximum packet size\");\n\t\t\n\t\tif (mFileDataFormat.mBitsPerChannel == 0) {\n\t\t\tAudioConverterPrimeInfo primeInfo;\n\t\t\tpropertySize = sizeof(primeInfo);\n\t\t\tOSStatus err = AudioConverterGetProperty(mConverter, kAudioConverterPrimeInfo, &propertySize, &primeInfo);\n\t\t\tif (err == noErr)\n\t\t\t\tmFrame0Offset = primeInfo.leadingFrames;\n#if VERBOSE_CONVERTER\n\t\t\tprintf(\"kAudioConverterPrimeInfo: err = %ld, leadingFrames = %ld\\n\", err, mFrame0Offset);\n#endif\n\t\t}\n\t} else {\n\t\tmClientMaxPacketSize = mFileMaxPacketSize;\n\t}\n}\n\n// _______________________________________________________________________________________\n//\tAllocates: mIOBufferList, mIOBufferSizePackets, mPacketDescs\n//\tDependent on: mFileMaxPacketSize, mIOBufferSizeBytes\nvoid\tCAAudioFile::AllocateBuffers(bool okToFail)\n{\n\tLOG_FUNCTION(\"CAAudioFile::AllocateBuffers\", \"%p\", this);\n\tif (mFileMaxPacketSize == 0) {\n\t\tif (okToFail)\n\t\t\treturn;\n\t\tXThrowIf(true, kExtAudioFileError_MaxPacketSizeUnknown, \"file's maximum packet size is 0\");\n\t}\n\tUInt32 bufferSizeBytes = mIOBufferSizeBytes = std::max(mIOBufferSizeBytes, mFileMaxPacketSize);\n\t\t// must be big enough for at least one maximum size packet\n\t\n\tif (mIOBufferList.mBuffers[0].mDataByteSize != bufferSizeBytes) {\n\t\tmIOBufferList.mNumberBuffers = 1;\n\t\tmIOBufferList.mBuffers[0].mNumberChannels = mFileDataFormat.mChannelsPerFrame;\n\t\tif (!mClientOwnsIOBuffer) {\n\t\t\t//printf(\"reallocating I/O buffer\\n\");\n\t\t\tdelete[] (Byte *)mIOBufferList.mBuffers[0].mData;\n\t\t\tmIOBufferList.mBuffers[0].mData = new Byte[bufferSizeBytes];\n\t\t}\n\t\tmIOBufferList.mBuffers[0].mDataByteSize = bufferSizeBytes;\n\t\tmIOBufferSizePackets = bufferSizeBytes / mFileMaxPacketSize;\n\t}\n\t\n\tUInt32 propertySize = sizeof(UInt32);\n\tUInt32 externallyFramed;\n\tXThrowIfError(AudioFormatGetProperty(kAudioFormatProperty_FormatIsExternallyFramed,\n\t\t\tsizeof(AudioStreamBasicDescription), &mFileDataFormat, &propertySize, &externallyFramed),\n\t\t\t\"is format externally framed\");\n\tif (mNumPacketDescs != (externallyFramed ? mIOBufferSizePackets : 0)) {\n\t\tdelete[] mPacketDescs;\n\t\tmPacketDescs = NULL;\n\t\tmNumPacketDescs = 0;\n\n\t\tif (externallyFramed) {\n\t\t\t//printf(\"reallocating packet descs\\n\");\n\t\t\tmPacketDescs = new AudioStreamPacketDescription[mIOBufferSizePackets];\n\t\t\tmNumPacketDescs = mIOBufferSizePackets;\n\t\t}\n\t}\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::SetIOBuffer(void *buf)\n{\n\tif (!mClientOwnsIOBuffer)\n\t\tdelete[] (Byte *)mIOBufferList.mBuffers[0].mData;\n\tmIOBufferList.mBuffers[0].mData = buf;\n\n\tif (buf == NULL) {\n\t\tmClientOwnsIOBuffer = false;\n\t\tSetIOBufferSizeBytes(mIOBufferSizeBytes);\n\t} else {\n\t\tmClientOwnsIOBuffer = true;\n\t\tAllocateBuffers();\n\t}\n//\tprintf(\"CAAudioFile::SetIOBuffer %p: %p, 0x%lx bytes, mClientOwns = %d\\n\", this, mIOBufferList.mBuffers[0].mData, mIOBufferSizeBytes, mClientOwnsIOBuffer);\n}\n\n// ===============================================================================\n\n/*\nFor Tiger:\nadded kAudioFilePropertyPacketToFrame and kAudioFilePropertyFrameToPacket.\nYou pass in an AudioFramePacketTranslation struct, with the appropriate field filled in, to AudioFileGetProperty.\n\n\tkAudioFilePropertyPacketToFrame\t\t\t=\t'pkfr',\n\t\t// pass a AudioFramePacketTranslation with mPacket filled out and get mFrame back. mFrameOffsetInPacket is ignored.\n\tkAudioFilePropertyFrameToPacket\t\t\t=\t'frpk',\n\t\t// pass a AudioFramePacketTranslation with mFrame filled out and get mPacket and mFrameOffsetInPacket back.\n\nstruct AudioFramePacketTranslation\n{\n\tSInt64 mFrame;\n\tSInt64 mPacket;\n\tUInt32 mFrameOffsetInPacket;\n};\n*/\n\nSInt64  CAAudioFile::PacketToFrame(SInt64 packet) const\n{\n\tAudioFramePacketTranslation trans;\n\tUInt32 propertySize;\n\t\n\tswitch (mFileDataFormat.mFramesPerPacket) {\n\tcase 1:\n\t\treturn packet;\n\tcase 0:\n\t\ttrans.mPacket = packet;\n\t\tpropertySize = sizeof(trans);\n\t\tXThrowIfError(AudioFileGetProperty(mAudioFile, kAudioFilePropertyPacketToFrame, &propertySize, &trans),\n\t\t\t\"packet <-> frame translation unimplemented for format with variable frames/packet\");\n\t\treturn trans.mFrame;\n\t}\n\treturn packet * mFileDataFormat.mFramesPerPacket;\n}\n\nSInt64\tCAAudioFile::FrameToPacket(SInt64 inFrame) const\n{\n\tAudioFramePacketTranslation trans;\n\tUInt32 propertySize;\n\t\n\tswitch (mFileDataFormat.mFramesPerPacket) {\n\tcase 1:\n\t\treturn inFrame;\n\tcase 0:\n\t\ttrans.mFrame = inFrame;\n\t\tpropertySize = sizeof(trans);\n\t\tXThrowIfError(AudioFileGetProperty(mAudioFile, kAudioFilePropertyFrameToPacket, &propertySize, &trans),\n\t\t\t\"packet <-> frame translation unimplemented for format with variable frames/packet\");\n\t\treturn trans.mPacket;\n\t}\n\treturn inFrame / mFileDataFormat.mFramesPerPacket;\n}\n\n// _______________________________________________________________________________________\n//\n\nSInt64  CAAudioFile::Tell() const\t// frameNumber\n{\n\treturn mFrameMark - mFrame0Offset;\n}\n\nvoid\tCAAudioFile::SeekToPacket(SInt64 packetNumber)\n{\n#if VERBOSE_IO\n\tprintf(\"CAAudioFile::SeekToPacket: %qd\\n\", packetNumber);\n#endif\n\tXThrowIf(mMode != kReading || packetNumber < 0 /*|| packetNumber >= mNumberPackets*/ , kExtAudioFileError_InvalidSeek, \"seek to packet in audio file\");\n\tif (mPacketMark == packetNumber)\n\t\treturn; // already there! don't reset converter\n\tmPacketMark = packetNumber;\n\t\n\tmFrameMark = PacketToFrame(packetNumber) - mFrame0Offset;\n\tmFramesToSkipFollowingSeek = 0;\n\tif (mConverter)\n\t\t// must reset -- if we reached end of stream. converter will no longer work otherwise\n\t\tAudioConverterReset(mConverter);\n}\n\n/*\n\tExample: AAC, 1024 frames/packet, 2112 frame offset\n\t\n                                           2112\n                                             |\n    Absolute frames:  0       1024      2048 |    3072\n                      +---------+---------+--|------+---------+---------+\n    Packets:          |    0    |    1    |  | 2    |    3    |    4    |\n                      +---------+---------+--|------+---------+---------+\n    Client frames:  -2112   -1088       -64  |     960\t\t\t\t\t\tSeekToFrame, TellFrame\n                                             |\n                                             0\n\n\t*   Offset between absolute and client frames is mFrame0Offset.\n\t*** mFrameMark is in client frames ***\n\t\n\tExamples:\n\t\tclientFrame\t\t\t\t\t0\t\t960\t\t1000\t1024\n\t\tabsoluteFrame\t\t\t\t2112\t3072\t3112\t3136\n\t\tpacket\t\t\t\t\t\t0\t\t0\t\t0\t\t1\n\t\ttempFrameMark*\t\t\t\t-2112\t-2112\t-2112\t-1088\n\t\tmFramesToSkipFollowingSeek\t2112\t3072\t3112\t2112\n*/\nvoid\tCAAudioFile::Seek(SInt64 clientFrame)\n{\n\tif (clientFrame == mFrameMark)\n\t\treturn; // already there! don't reset converter\n\n\t//SInt64 absoluteFrame = clientFrame + mFrame0Offset;\n\tXThrowIf(mMode != kReading || clientFrame < 0 || !mClientDataFormat.IsPCM(), kExtAudioFileError_InvalidSeek, \"seek to frame in audio file\");\n\n#if VERBOSE_IO\n\tSInt64 prevFrameMark = mFrameMark;\n#endif\n\t\n\tSInt64 packet;\n\tpacket = FrameToPacket(clientFrame);\n\tif (packet < 0)\n\t\tpacket = 0;\n\tSeekToPacket(packet);\n\t// this will have backed up mFrameMark to match the beginning of the packet\n\tmFramesToSkipFollowingSeek = std::max(UInt32(clientFrame - mFrameMark), UInt32(0));\n\tmFrameMark = clientFrame;\n\t\n#if VERBOSE_IO\n\tprintf(\"CAAudioFile::SeekToFrame: frame %qd (from %qd), packet %qd, skip %ld frames\\n\", mFrameMark, prevFrameMark, packet, mFramesToSkipFollowingSeek);\n#endif\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::Read(UInt32 &ioNumPackets, AudioBufferList *ioData)\n\t\t\t// May read fewer packets than requested if:\n\t\t\t//\t\tbuffer is not big enough\n\t\t\t//\t\tfile does not contain that many more packets\n\t\t\t// Note that eofErr is not fatal, just results in 0 packets returned\n\t\t\t// ioData's buffer sizes may be shortened\n{\n\tXThrowIf(mClientMaxPacketSize == 0, kExtAudioFileError_MaxPacketSizeUnknown, \"client maximum packet size is 0\");\n\tif (mIOBufferList.mBuffers[0].mData == NULL) {\n#if DEBUG\n\t\tprintf(\"warning: CAAudioFile::AllocateBuffers called from ReadPackets\\n\");\n#endif\n\t\tAllocateBuffers();\n\t}\n\tUInt32 bufferSizeBytes = ioData->mBuffers[0].mDataByteSize;\n\tUInt32 maxNumPackets = bufferSizeBytes / mClientMaxPacketSize;\t\n\t// older versions of AudioConverterFillComplexBuffer don't do this, so do our own sanity check\n\tUInt32 nPackets = std::min(ioNumPackets, maxNumPackets);\n\t\n\tmMaxPacketsToRead = ~0UL;\n\t\n\tif (mClientDataFormat.mFramesPerPacket == 1) {  // PCM or equivalent\n\t\twhile (mFramesToSkipFollowingSeek > 0) {\n\t\t\tUInt32 skipFrames = std::min(mFramesToSkipFollowingSeek, maxNumPackets);\n\t\t\tUInt32 framesPerPacket;\n\t\t\tif ((framesPerPacket=mFileDataFormat.mFramesPerPacket) > 0)\n\t\t\t\tmMaxPacketsToRead = (skipFrames + framesPerPacket - 1) / framesPerPacket;\n\n\t\t\tif (mConverter == NULL) {\n\t\t\t\tXThrowIfError(ReadInputProc(NULL, &skipFrames, ioData, NULL, this), \"read audio file\");\n\t\t\t} else {\n#if CAAUDIOFILE_PROFILE\n\t\t\t\tmInConverter = true;\n#endif\n\t\t\t\tStartTiming(this, fill);\n\t\t\t\tXThrowIfError(AudioConverterFillComplexBuffer(mConverter, ReadInputProc, this, &skipFrames, ioData, NULL), \"convert audio packets (pcm read)\");\n\t\t\t\tElapsedTime(this, fill, mTicksInConverter);\n#if CAAUDIOFILE_PROFILE\n\t\t\t\tmInConverter = false;\n#endif\n\t\t\t}\n\t\t\tif (skipFrames == 0) {\t// hit EOF\n\t\t\t\tioNumPackets = 0;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tmFrameMark += skipFrames;\n#if VERBOSE_IO\n\t\t\tprintf(\"CAAudioFile::ReadPackets: skipped %ld frames\\n\", skipFrames);\n#endif\n\n\t\t\tmFramesToSkipFollowingSeek -= skipFrames;\n\n\t\t\t// restore mDataByteSize\n\t\t\tfor (int i = ioData->mNumberBuffers; --i >= 0 ; )\n\t\t\t\tioData->mBuffers[i].mDataByteSize = bufferSizeBytes;\n\t\t}\n\t}\n\t\n\tif (mFileDataFormat.mFramesPerPacket > 0)\n\t\t// don't read more packets than we are being asked to produce\n\t\tmMaxPacketsToRead = nPackets / mFileDataFormat.mFramesPerPacket + 1;\n\tif (mConverter == NULL) {\n\t\tXThrowIfError(ReadInputProc(NULL, &nPackets, ioData, NULL, this), \"read audio file\");\n\t} else {\n#if CAAUDIOFILE_PROFILE\n\t\tmInConverter = true;\n#endif\n\t\tStartTiming(this, fill);\n\t\tXThrowIfError(AudioConverterFillComplexBuffer(mConverter, ReadInputProc, this, &nPackets, ioData, NULL), \"convert audio packets (read)\");\n\t\tElapsedTime(this, fill, mTicksInConverter);\n#if CAAUDIOFILE_PROFILE\n\t\tmInConverter = false;\n#endif\n\t}\n\tif (mClientDataFormat.mFramesPerPacket == 1)\n\t\tmFrameMark += nPackets;\n\t\n\tioNumPackets = nPackets;\n}\n\n// _______________________________________________________________________________________\n//\nOSStatus CAAudioFile::ReadInputProc(\tAudioConverterRef\t\t\t\tinAudioConverter,\n\t\t\t\t\t\t\t\t\t\tUInt32*\t\t\t\t\t\t\tioNumberDataPackets,\n\t\t\t\t\t\t\t\t\t\tAudioBufferList*\t\t\t\tioData,\n\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription**\toutDataPacketDescription,\n\t\t\t\t\t\t\t\t\t\tvoid*\t\t\t\t\t\t\tinUserData)\n{\n\tCAAudioFile *This = static_cast<CAAudioFile *>(inUserData);\n\n#if 0\n\tSInt64 remainingPacketsInFile = This->mNumberPackets - This->mPacketMark;\n\tif (remainingPacketsInFile <= 0) {\n\t\t*ioNumberDataPackets = 0;\n\t\tioData->mBuffers[0].mDataByteSize = 0;\n\t\tif (outDataPacketDescription)\n\t\t\t*outDataPacketDescription = This->mPacketDescs;\n#if VERBOSE_IO\n\t\tprintf(\"CAAudioFile::ReadInputProc: EOF\\n\");\n#endif\n\t\treturn noErr;\t// not eofErr; EOF is signified by 0 packets/0 bytes\n\t}\n#endif\n\t\n\t// determine how much to read\n\tAudioBufferList *readBuffer;\n\tUInt32 readPackets;\n\tif (inAudioConverter != NULL) {\n\t\t// getting called from converter, need to use our I/O buffer\n\t\treadBuffer = &This->mIOBufferList;\n\t\treadPackets = This->mIOBufferSizePackets;\n\t} else {\n\t\t// getting called directly from ReadPackets, use supplied buffer\n\t\tif (This->mFileMaxPacketSize == 0)\n\t\t\treturn kExtAudioFileError_MaxPacketSizeUnknown;\n\t\treadBuffer = ioData;\n\t\treadPackets = std::min(*ioNumberDataPackets, readBuffer->mBuffers[0].mDataByteSize / This->mFileMaxPacketSize);\n\t\t\t// don't attempt to read more packets than will fit in the buffer\n\t}\n\t// don't try to read past EOF\n//\tif (readPackets > remainingPacketsInFile)\n//\t\treadPackets = remainingPacketsInFile;\n\t// don't read more packets than necessary to produce the requested amount of converted data\n\tif (readPackets > This->mMaxPacketsToRead) {\n#if VERBOSE_IO\n\t\tprintf(\"CAAudioFile::ReadInputProc: limiting read to %ld packets (from %ld)\\n\", This->mMaxPacketsToRead, readPackets);\n#endif\n\t\treadPackets = This->mMaxPacketsToRead;\n\t}\n\t\n\t// read\n\tUInt32 bytesRead;\n\tOSStatus err;\n\t\n\tStartTiming(This, read);\n\tStartTiming(This, readinconv);\n\terr = AudioFileReadPackets(This->mAudioFile, This->mUseCache, &bytesRead, This->mPacketDescs, This->mPacketMark, &readPackets, readBuffer->mBuffers[0].mData);\n#if CAAUDIOFILE_PROFILE\n\tif (This->mInConverter) ElapsedTime(This, readinconv, This->mTicksInReadInConverter);\n#endif\n\tElapsedTime(This, read, This->mTicksInIO);\n\n\tif (err) {\n\t\tDebugMessageN1(\"Error %ld from AudioFileReadPackets!!!\\n\", err);\n\t\treturn err;\n\t}\n\t\n#if VERBOSE_IO\n\tprintf(\"CAAudioFile::ReadInputProc: read %ld packets (%qd-%qd), %ld bytes, err %ld\\n\", readPackets, This->mPacketMark, This->mPacketMark + readPackets, bytesRead, err);\n#if VERBOSE_IO >= 2\n\tif (This->mPacketDescs) {\n\t\tfor (UInt32 i = 0; i < readPackets; ++i) {\n\t\t\tprintf(\"  read packet %qd : offset %qd, length %ld\\n\", This->mPacketMark + i, This->mPacketDescs[i].mStartOffset, This->mPacketDescs[i].mDataByteSize);\n\t\t}\n\t}\n\tprintf(\"  read buffer:\"); CAShowAudioBufferList(readBuffer, 0, 4);\n#endif\n#endif\n\tif (readPackets == 0) {\n\t\t*ioNumberDataPackets = 0;\n\t\tioData->mBuffers[0].mDataByteSize = 0;\n\t\treturn noErr;\n\t}\n\n\tif (outDataPacketDescription)\n\t\t*outDataPacketDescription = This->mPacketDescs;\n\tioData->mBuffers[0].mDataByteSize = bytesRead;\n\tioData->mBuffers[0].mData = readBuffer->mBuffers[0].mData;\n\n\tThis->mPacketMark += readPackets;\n\tif (This->mClientDataFormat.mFramesPerPacket != 1) {\t// for PCM client formats we update in Read\n\t\t// but for non-PCM client format (weird case) we must update here/now\n\t\tif (This->mFileDataFormat.mFramesPerPacket > 0)\n\t\t\tThis->mFrameMark += readPackets * This->mFileDataFormat.mFramesPerPacket;\n\t\telse {\n\t\t\tfor (UInt32 i = 0; i < readPackets; ++i)\n\t\t\t\tThis->mFrameMark += This->mPacketDescs[i].mVariableFramesInPacket;\n\t\t}\n\t}\n\t*ioNumberDataPackets = readPackets;\n\treturn noErr;\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::Write(UInt32 numPackets, const AudioBufferList *data)\n{\n\tif (mIOBufferList.mBuffers[0].mData == NULL) {\n#if DEBUG\n\t\tprintf(\"warning: CAAudioFile::AllocateBuffers called from WritePackets\\n\");\n#endif\n\t\tAllocateBuffers();\n\t}\n\n\tif (mMode == kPreparingToWrite)\n\t\tmMode = kWriting;\n\telse\n\t\tXThrowIf(mMode != kWriting, kExtAudioFileError_InvalidOperationOrder, \"can't write to this file\");\n\tif (mConverter != NULL) {\n\t\tmWritePackets = numPackets;\n\t\tmWriteBufferList->SetFrom(data);\n\t\tWritePacketsFromCallback(WriteInputProc, this);\n\t} else {\n\t\tStartTiming(this, write);\n\t\tXThrowIfError(AudioFileWritePackets(mAudioFile, mUseCache, data->mBuffers[0].mDataByteSize, \n\t\t\t\t\t\tNULL, mPacketMark, &numPackets, data->mBuffers[0].mData),\n\t\t\t\t\t\t\"write audio file\");\n\t\tElapsedTime(this, write, mTicksInIO);\n#if VERBOSE_IO\n\t\tprintf(\"CAAudioFile::WritePackets: wrote %ld packets at %qd, %ld bytes\\n\", numPackets, mPacketMark, data->mBuffers[0].mDataByteSize);\n#endif\n\t\t//mNumberPackets = \n\t\tmPacketMark += numPackets;\n\t\tif (mFileDataFormat.mFramesPerPacket > 0)\n\t\t\tmFrameMark += numPackets * mFileDataFormat.mFramesPerPacket;\n\t\t// else: shouldn't happen since we're only called when there's no converter\n\t}\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::FlushEncoder()\n{\n\tif (mConverter != NULL) {\n\t\tmFinishingEncoding = true;\n\t\tWritePacketsFromCallback(WriteInputProc, this);\n\t\tmFinishingEncoding = false;\n\n\t\t// get priming info from converter, set it on the file\n\t\tif (mFileDataFormat.mBitsPerChannel == 0) {\n\t\t\tUInt32 propertySize;\n\t\t\tOSStatus err;\n\t\t\tAudioConverterPrimeInfo primeInfo;\n\t\t\tpropertySize = sizeof(primeInfo);\n\t\n\t\t\terr = AudioConverterGetProperty(mConverter, kAudioConverterPrimeInfo, &propertySize, &primeInfo);\n\t\t\tif (err == noErr) {\n\t\t\t\tAudioFilePacketTableInfo pti;\n\t\t\t\tpropertySize = sizeof(pti);\n\t\t\t\terr = AudioFileGetProperty(mAudioFile, kAudioFilePropertyPacketTableInfo, &propertySize, &pti);\n\t\t\t\tif (err == noErr) {\n//printf(\"old packet table info: %qd valid, %ld priming, %ld remainder\\n\", pti.mNumberValidFrames, pti.mPrimingFrames, pti.mRemainderFrames);\n\t\t\t\t\tUInt64 totalFrames = pti.mNumberValidFrames + pti.mPrimingFrames + pti.mRemainderFrames;\n\t\t\t\t\tpti.mPrimingFrames = primeInfo.leadingFrames;\n\t\t\t\t\tpti.mRemainderFrames = primeInfo.trailingFrames;\n\t\t\t\t\tpti.mNumberValidFrames = totalFrames - pti.mPrimingFrames - pti.mRemainderFrames;\n//printf(\"new packet table info: %qd valid, %ld priming, %ld remainder\\n\", pti.mNumberValidFrames, pti.mPrimingFrames, pti.mRemainderFrames);\n\t\t\t\t\tXThrowIfError(AudioFileSetProperty(mAudioFile, kAudioFilePropertyPacketTableInfo, sizeof(pti), &pti), \"couldn't set packet table info on audio file\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\n\n// _______________________________________________________________________________________\n//\nOSStatus CAAudioFile::WriteInputProc(\tAudioConverterRef\t\t\t\t/*inAudioConverter*/,\n\t\t\t\t\t\t\t\t\t\tUInt32 *\t\t\t\t\t\tioNumberDataPackets,\n\t\t\t\t\t\t\t\t\t\tAudioBufferList*\t\t\t\tioData,\n\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription **\toutDataPacketDescription,\n\t\t\t\t\t\t\t\t\t\tvoid*\t\t\t\t\t\t\tinUserData)\n{\n\tCAAudioFile *This = static_cast<CAAudioFile *>(inUserData);\n\tif (This->mFinishingEncoding) {\n\t\t*ioNumberDataPackets = 0;\n\t\tioData->mBuffers[0].mDataByteSize = 0;\n\t\tioData->mBuffers[0].mData = NULL;\n\t\tif (outDataPacketDescription)\n\t\t\t*outDataPacketDescription = NULL;\n\t\treturn noErr;\n\t}\n\tUInt32 numPackets = This->mWritePackets;\n\tif (numPackets == 0) {\n\t\treturn kNoMoreInputRightNow;\n\t}\n\tThis->mWriteBufferList->ToAudioBufferList(ioData);\n\tThis->mWriteBufferList->BytesConsumed(numPackets * This->mClientDataFormat.mBytesPerFrame);\n\t*ioNumberDataPackets = numPackets;\n\tif (outDataPacketDescription)\n\t\t*outDataPacketDescription = NULL;\n\tThis->mWritePackets -= numPackets;\n\treturn noErr;\n}\n\n// _______________________________________________________________________________________\n//\n#if VERBOSE_IO\nstatic void\thexdump(const void *addr, long len)\n{\n\tconst Byte *p = (Byte *)addr;\n\tUInt32 offset = 0;\n\t\n\tif (len > 0x400) len = 0x400;\n\t\n\twhile (len > 0) {\n\t\tint n = len > 16 ? 16 : len;\n\t\tprintf(\"%08lX:  \", offset);\n\t\tfor (int i = 0; i < 16; ++i)\n\t\t\tif (i < n)\n\t\t\t\tprintf(\"%02X \", p[i]);\n\t\t\telse printf(\"   \");\n\t\tfor (int i = 0; i < 16; ++i)\n\t\t\tif (i < n)\n\t\t\t\tputchar(p[i] >= ' ' && p[i] < 127 ? p[i] : '.');\n\t\t\telse putchar(' ');\n\t\tputchar('\\n');\n\t\tp += 16;\n\t\tlen -= 16;\n\t\toffset += 16;\n\t}\n}\n#endif\n\n// _______________________________________________________________________________________\n//\nvoid\tCAAudioFile::WritePacketsFromCallback(\n\t\t\t\t\t\t\t\tAudioConverterComplexInputDataProc\tinInputDataProc,\n\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\t\tinInputDataProcUserData)\n{\n\twhile (true) {\n\t\t// keep writing until we exhaust the input (temporary stop), or produce no output (EOF)\n\t\tUInt32 numEncodedPackets = mIOBufferSizePackets;\n\t\tmIOBufferList.mBuffers[0].mDataByteSize = mIOBufferSizeBytes;\n#if CAAUDIOFILE_PROFILE\n\t\tmInConverter = true;\n#endif\n\t\tStartTiming(this, fill);\n\t\tOSStatus err = AudioConverterFillComplexBuffer(mConverter, inInputDataProc, inInputDataProcUserData, \n\t\t\t\t\t&numEncodedPackets, &mIOBufferList, mPacketDescs);\n\t\tElapsedTime(this, fill, mTicksInConverter);\n#if CAAUDIOFILE_PROFILE\n\t\tmInConverter = false;\n#endif\n\t\tXThrowIf(err != 0 && err != kNoMoreInputRightNow, err, \"convert audio packets (write)\");\n\t\tif (numEncodedPackets == 0)\n\t\t\tbreak;\n\t\tByte *buf = (Byte *)mIOBufferList.mBuffers[0].mData;\n#if VERBOSE_IO\n\t\tprintf(\"CAAudioFile::WritePacketsFromCallback: wrote %ld packets, %ld bytes\\n\", numEncodedPackets, mIOBufferList.mBuffers[0].mDataByteSize);\n\t\tif (mPacketDescs) {\n\t\t\tfor (UInt32 i = 0; i < numEncodedPackets; ++i) {\n\t\t\t\tprintf(\"  write packet %qd : offset %qd, length %ld\\n\", mPacketMark + i, mPacketDescs[i].mStartOffset, mPacketDescs[i].mDataByteSize);\n#if VERBOSE_IO >= 2\n\t\t\t\thexdump(buf + mPacketDescs[i].mStartOffset, mPacketDescs[i].mDataByteSize);\n#endif\n\t\t\t}\n\t\t}\n#endif\n\t\tStartTiming(this, write);\n\t\tXThrowIfError(AudioFileWritePackets(mAudioFile, mUseCache, mIOBufferList.mBuffers[0].mDataByteSize, mPacketDescs, mPacketMark, &numEncodedPackets, buf), \"write audio file\");\n\t\tElapsedTime(this, write, mTicksInIO);\n\t\tmPacketMark += numEncodedPackets;\n\t\t//mNumberPackets += numEncodedPackets;\n\t\tif (mFileDataFormat.mFramesPerPacket > 0)\n\t\t\tmFrameMark += numEncodedPackets * mFileDataFormat.mFramesPerPacket;\n\t\telse {\n\t\t\tfor (UInt32 i = 0; i < numEncodedPackets; ++i)\n\t\t\t\tmFrameMark += mPacketDescs[i].mVariableFramesInPacket;\n\t\t}\n\t\tif (err == kNoMoreInputRightNow)\n\t\t\tbreak;\n\t}\n}\n\n#endif // !CAAF_USE_EXTAUDIOFILE\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAAudioFile.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFile.h\n\t\n=============================================================================*/\n\n#ifndef __CAAudioFile_h__\n#define __CAAudioFile_h__\n\n#include <AvailabilityMacros.h>\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioToolbox.h>\n#else\n\t#include <AudioToolbox.h>\n#endif\n\n#include \"CAStreamBasicDescription.h\"\n#include \"CABufferList.h\"\n#include \"CAAudioChannelLayout.h\"\n#include \"CAXException.h\"\n#include \"CAMath.h\"\n\n#ifndef CAAF_USE_EXTAUDIOFILE\n// option: use AudioToolbox/ExtAudioFile.h? Only available on Tiger.\n\t#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_3\n\t\t// we are building software that must be deployable on Panther or earlier\n\t\t#define CAAF_USE_EXTAUDIOFILE 0\n\t#else\n\t\t// else we require Tiger and can use the API\n\t\t#define CAAF_USE_EXTAUDIOFILE 1\n\t#endif\n#endif\n\n#ifndef MAC_OS_X_VERSION_10_4\n\t// we have pre-Tiger headers; add our own declarations\n\ttypedef UInt32 AudioFileTypeID;\n\tenum {\n\t\tkExtAudioFileError_InvalidProperty\t\t\t= -66561,\n\t\tkExtAudioFileError_InvalidPropertySize\t\t= -66562,\n\t\tkExtAudioFileError_NonPCMClientFormat\t\t= -66563,\n\t\tkExtAudioFileError_InvalidChannelMap\t\t= -66564,\t// number of channels doesn't match format\n\t\tkExtAudioFileError_InvalidOperationOrder\t= -66565,\n\t\tkExtAudioFileError_InvalidDataFormat\t\t= -66566,\n\t\tkExtAudioFileError_MaxPacketSizeUnknown\t\t= -66567,\n\t\tkExtAudioFileError_InvalidSeek\t\t\t\t= -66568,\t// writing, or offset out of bounds\n\t\tkExtAudioFileError_AsyncWriteTooLarge\t\t= -66569,\n\t\tkExtAudioFileError_AsyncWriteBufferOverflow\t= -66570\t// an async write could not be completed in time\n\t};\n#else\n\t#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t\t#include <AudioToolbox/ExtendedAudioFile.h>\n\t#else\n\t\t#include \"ExtendedAudioFile.h\"\n\t#endif\n#endif\n\n// _______________________________________________________________________________________\n// Wrapper class for an AudioFile, supporting encode/decode to/from a PCM client format\nclass CAAudioFile {\npublic:\n\t// implementation-independent helpers\n\tvoid\tOpen(const char *filePath) {\n\t\tFSRef fsref;\n\t\tXThrowIfError(FSPathMakeRef((UInt8 *)filePath, &fsref, NULL), \"locate audio file\");\n\t\tOpen(fsref);\n\t}\n\n\tbool\t\t\t\t\t\t\tHasConverter() const { return GetConverter() != NULL; }\n\n\tdouble  GetDurationSeconds() {\n\t\tdouble sr = GetFileDataFormat().mSampleRate;\n\t\treturn fnonzero(sr) ? GetNumberFrames() / sr : 0.;\n\t}\n\t\t\t\t// will be 0 if the file's frames/packet is 0 (variable)\n\t\t\t\t// or the file's sample rate is 0 (unknown)\n\n#if CAAF_USE_EXTAUDIOFILE\npublic:\n\tCAAudioFile() : mExtAF(NULL) { }\n\tvirtual ~CAAudioFile() { if (mExtAF) Close(); }\n\n\tvoid\tOpen(const FSRef &fsref) {\n\t\t\t\t// open an existing file\n\t\tXThrowIfError(ExtAudioFileOpen(&fsref, &mExtAF), \"ExtAudioFileOpen failed\");\n\t}\n\t\n\tvoid\tCreateNew(const FSRef &inParentDir, CFStringRef inFileName,\tAudioFileTypeID inFileType, const AudioStreamBasicDescription &inStreamDesc, const AudioChannelLayout *inChannelLayout=NULL) {\n\t\tXThrowIfError(ExtAudioFileCreateNew(&inParentDir, inFileName, inFileType, &inStreamDesc, inChannelLayout, &mExtAF), \"ExtAudioFileCreateNew failed\");\n\t}\n\n\tvoid\tWrap(AudioFileID fileID, bool forWriting) {\n\t\t\t\t// use this to wrap an AudioFileID opened externally\n\t\tXThrowIfError(ExtAudioFileWrapAudioFileID(fileID, forWriting, &mExtAF), \"ExtAudioFileWrapAudioFileID failed\");\n\t}\n\t\n\tvoid\tClose() {\n\t\tXThrowIfError(ExtAudioFileDispose(mExtAF), \"ExtAudioFileClose failed\");\n\t\tmExtAF = NULL;\n\t}\n\n\tconst CAStreamBasicDescription &GetFileDataFormat() {\n\t\tUInt32 size = sizeof(mFileDataFormat);\n\t\tXThrowIfError(ExtAudioFileGetProperty(mExtAF, kExtAudioFileProperty_FileDataFormat, &size, &mFileDataFormat), \"Couldn't get file's data format\");\n\t\treturn mFileDataFormat;\n\t}\n\t\n\tconst CAAudioChannelLayout &\tGetFileChannelLayout() {\n\t\treturn FetchChannelLayout(mFileChannelLayout, kExtAudioFileProperty_FileChannelLayout);\n\t}\n\t\n\tvoid\tSetFileChannelLayout(const CAAudioChannelLayout &layout) {\n\t\tXThrowIfError(ExtAudioFileSetProperty(mExtAF, kExtAudioFileProperty_FileChannelLayout, layout.Size(), &layout.Layout()), \"Couldn't set file's channel layout\");\n\t\tmFileChannelLayout = layout;\n\t}\n\n\tconst CAStreamBasicDescription &GetClientDataFormat() {\n\t\tUInt32 size = sizeof(mClientDataFormat);\n\t\tXThrowIfError(ExtAudioFileGetProperty(mExtAF, kExtAudioFileProperty_ClientDataFormat, &size, &mClientDataFormat), \"Couldn't get client data format\");\n\t\treturn mClientDataFormat;\n\t}\n\t\n\tconst CAAudioChannelLayout &\tGetClientChannelLayout() {\n\t\treturn FetchChannelLayout(mClientChannelLayout, kExtAudioFileProperty_ClientChannelLayout);\n\t}\n\t\n\tvoid\tSetClientFormat(const CAStreamBasicDescription &dataFormat, const CAAudioChannelLayout *layout=NULL) {\n\t\tXThrowIfError(ExtAudioFileSetProperty(mExtAF, kExtAudioFileProperty_ClientDataFormat, sizeof(dataFormat), &dataFormat), \"Couldn't set client format\");\n\t\tif (layout)\n\t\t\tSetClientChannelLayout(*layout);\n\t}\n\t\n\tvoid\tSetClientChannelLayout(const CAAudioChannelLayout &layout) {\n\t\tXThrowIfError(ExtAudioFileSetProperty(mExtAF, kExtAudioFileProperty_ClientChannelLayout, layout.Size(), &layout.Layout()), \"Couldn't set client channel layout\");\n\t}\n\t\n\tAudioConverterRef\t\t\t\tGetConverter() const {\n\t\tUInt32 size = sizeof(AudioConverterRef);\n\t\tAudioConverterRef converter;\n\t\tXThrowIfError(ExtAudioFileGetProperty(mExtAF, kExtAudioFileProperty_AudioConverter, &size, &converter), \"Couldn't get file's AudioConverter\");\n\t\treturn converter;\n\t}\n\n\tOSStatus\tSetConverterProperty(AudioConverterPropertyID inPropertyID,\tUInt32 inPropertyDataSize, const void *inPropertyData, bool inCanFail=false)\n\t{\n\t\tOSStatus err = AudioConverterSetProperty(GetConverter(), inPropertyID, inPropertyDataSize, inPropertyData);\n\t\tif (!inCanFail)\n\t\t\tXThrowIfError(err, \"Couldn't set audio converter property\");\n\t\tif (!err) {\n\t\t\t// must tell the file that we have changed the converter; a NULL converter config is sufficient\n\t\t\tCFPropertyListRef config = NULL;\n\t\t\tXThrowIfError(ExtAudioFileSetProperty(mExtAF, kExtAudioFileProperty_ConverterConfig, sizeof(CFPropertyListRef), &config), \"couldn't signal the file that the converter has changed\");\n\t\t}\n\t\treturn err;\n\t}\n\t\n\tSInt64\t\tGetNumberFrames() {\n\t\tSInt64 length;\n\t\tUInt32 size = sizeof(SInt64);\n\t\tXThrowIfError(ExtAudioFileGetProperty(mExtAF, kExtAudioFileProperty_FileLengthFrames, &size, &length), \"Couldn't get file's length\");\n\t\treturn length;\n\t}\n\t\n\tvoid\t\tSetNumberFrames(SInt64 length) {\n\t\tXThrowIfError(ExtAudioFileSetProperty(mExtAF, kExtAudioFileProperty_FileLengthFrames, sizeof(SInt64), &length), \"Couldn't set file's length\");\n\t}\n\t\n\tvoid\t\tSeek(SInt64 pos) {\n\t\tXThrowIfError(ExtAudioFileSeek(mExtAF, pos), \"Couldn't seek in audio file\");\n\t}\n\t\n\tSInt64\t\tTell() {\n\t\tSInt64 pos;\n\t\tXThrowIfError(ExtAudioFileTell(mExtAF, &pos), \"Couldn't get file's mark\");\n\t\treturn pos;\n\t}\n\t\n\tvoid\t\tRead(UInt32 &ioFrames, AudioBufferList *ioData) {\n\t\tXThrowIfError(ExtAudioFileRead(mExtAF, &ioFrames, ioData), \"Couldn't read audio file\");\n\t}\n\n\tvoid\t\tWrite(UInt32 inFrames, const AudioBufferList *inData) {\n\t\tXThrowIfError(ExtAudioFileWrite(mExtAF, inFrames, inData), \"Couldn't write audio file\");\n\t}\n\n\tvoid\t\tSetIOBufferSizeBytes(UInt32 bufferSizeBytes) {\n\t\tXThrowIfError(ExtAudioFileSetProperty(mExtAF, kExtAudioFileProperty_IOBufferSizeBytes, sizeof(UInt32), &bufferSizeBytes), \"Couldn't set audio file's I/O buffer size\");\n\t}\n\nprivate:\n\tconst CAAudioChannelLayout &\tFetchChannelLayout(CAAudioChannelLayout &layoutObj, ExtAudioFilePropertyID propID) {\n\t\tUInt32 size;\n\t\tXThrowIfError(ExtAudioFileGetPropertyInfo(mExtAF, propID, &size, NULL), \"Couldn't get info about channel layout\");\n\t\tAudioChannelLayout *layout = (AudioChannelLayout *)malloc(size);\n\t\tOSStatus err = ExtAudioFileGetProperty(mExtAF, propID, &size, layout);\n\t\tif (err) {\n\t\t\tfree(layout);\n\t\t\tXThrowIfError(err, \"Couldn't get channel layout\");\n\t\t}\n\t\tlayoutObj = layout;\n\t\tfree(layout);\n\t\treturn layoutObj;\n\t}\n\n\nprivate:\n\tExtAudioFileRef\t\t\t\tmExtAF;\n\n\tCAStreamBasicDescription\tmFileDataFormat;\n\tCAAudioChannelLayout\t\tmFileChannelLayout;\n\n\tCAStreamBasicDescription\tmClientDataFormat;\n\tCAAudioChannelLayout\t\tmClientChannelLayout;\n#endif\n\n#if !CAAF_USE_EXTAUDIOFILE\n\tCAAudioFile();\n\tvirtual ~CAAudioFile();\n\n\t// --- second-stage initializers ---\n\t// Use exactly one of the following:\n\t//\t\t- Open\n\t//\t\t- PrepareNew followed by Create\n\t//\t\t- Wrap\n\t\n\tvoid\tOpen(const FSRef &fsref);\n\t\t\t\t// open an existing file\n\n\tvoid\tCreateNew(const FSRef &inParentDir, CFStringRef inFileName,\tAudioFileTypeID inFileType, const AudioStreamBasicDescription &inStreamDesc, const AudioChannelLayout *inChannelLayout=NULL);\n\t\n\tvoid\tWrap(AudioFileID fileID, bool forWriting);\n\t\t\t\t// use this to wrap an AudioFileID opened externally\n\n\t// ---\n\n\tvoid\tClose();\n\t\t\t\t// In case you want to close the file before the destructor executes\n\t\n\t// --- Data formats ---\n\n\t// Allow specifying the file's channel layout. Must be called before SetClientFormat.\n\t// When writing, the specified channel layout is written to the file (if the file format supports\n\t// the channel layout). When reading, the specified layout overrides the one read from the file,\n\t// if any.\n\tvoid\tSetFileChannelLayout(const CAAudioChannelLayout &layout);\n\t\n\t// This specifies the data format which the client will use for reading/writing the file,\n\t// which may be different from the file's format. An AudioConverter is created if necessary.\n\t// The client format must be linear PCM.\n\tvoid\tSetClientFormat(const CAStreamBasicDescription &dataFormat, const CAAudioChannelLayout *layout=NULL);\n\tvoid\tSetClientDataFormat(const CAStreamBasicDescription &dataFormat) { SetClientFormat(dataFormat, NULL); }\n\tvoid\tSetClientChannelLayout(const CAAudioChannelLayout &layout) { SetClientFormat(mClientDataFormat, &layout); }\n\t\n\t// Wrapping the underlying converter, if there is one\n\tOSStatus\tSetConverterProperty(AudioConverterPropertyID\tinPropertyID,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinPropertyDataSize,\n\t\t\t\t\t\t\t\t\tconst void *\t\t\t\tinPropertyData,\n\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\tinCanFail = false);\n\tvoid\t\tSetConverterConfig(CFArrayRef config) {\n\t\t\t\t\tSetConverterProperty(kAudioConverterPropertySettings, sizeof(config), &config); }\n\tCFArrayRef  GetConverterConfig();\n\t\n\t// --- I/O ---\n\t// All I/O is sequential, but you can seek to an arbitrary position when reading.\n\t// SeekToPacket and TellPacket's packet numbers are in the file's data format, not the client's.\n\t// However, ReadPackets/WritePackets use packet counts in the client data format.\n\n\tvoid\tRead(UInt32 &ioNumFrames, AudioBufferList *ioData);\n\tvoid\tWrite(UInt32 numFrames, const AudioBufferList *data);\n\n\t// These can fail for files without a constant mFramesPerPacket\n\tvoid\tSeek(SInt64 frameNumber);\n\tSInt64  Tell() const;\t// frameNumber\n\t\n\t// --- Accessors ---\n\t// note: client parameters only valid if SetClientFormat has been called\n\tAudioFileID\t\t\t\t\t\tGetAudioFileID() const { return mAudioFile; }\n\tconst CAStreamBasicDescription &GetFileDataFormat() const { return mFileDataFormat; }\n\tconst CAStreamBasicDescription &GetClientDataFormat() const { return mClientDataFormat; }\n\tconst CAAudioChannelLayout &\tGetFileChannelLayout() const { return mFileChannelLayout; }\n\tconst CAAudioChannelLayout &\tGetClientChannelLayout() const { return mClientChannelLayout; }\n\tAudioConverterRef\t\t\t\tGetConverter() const { return mConverter; }\n\n\tUInt32\tGetFileMaxPacketSize() const { return mFileMaxPacketSize; }\n\tUInt32\tGetClientMaxPacketSize() const { return mClientMaxPacketSize; }\n\tSInt64\tGetNumberPackets() const {\n\t\tSInt64 npackets;\n\t\tUInt32 propertySize = sizeof(npackets);\n\t\tXThrowIfError(AudioFileGetProperty(mAudioFile, kAudioFilePropertyAudioDataPacketCount, &propertySize, &npackets), \"get audio file's packet count\");\n\t\treturn npackets;\n\t}\n\tSInt64  GetNumberFrames() const;\n\t\t\t\t// will be 0 if the file's frames/packet is 0 (variable)\n\tvoid\tSetNumberFrames(SInt64 length);\t// should only be set on a PCM file\n\t\n\t// --- Tunable performance parameters ---\n\tvoid\tSetUseCache(bool b) { mUseCache = b; }\n\tvoid\tSetIOBufferSizeBytes(UInt32 bufferSizeBytes) { mIOBufferSizeBytes = bufferSizeBytes; }\n\tUInt32  GetIOBufferSizeBytes() { return mIOBufferSizeBytes; }\n\tvoid *  GetIOBuffer() { return mIOBufferList.mBuffers[0].mData; }\n\tvoid\tSetIOBuffer(void *buf);\n\t\n\t// -- Profiling ---\n#if CAAUDIOFILE_PROFILE\n\tvoid\tEnableProfiling(bool b) { mProfiling = b; }\n\tUInt64\tTicksInConverter() const { return (mTicksInConverter > 0) ? (mTicksInConverter - mTicksInReadInConverter) : 0; }\n\tUInt64\tTicksInIO() const { return mTicksInIO; }\n#endif\n\t\n// _______________________________________________________________________________________\nprivate:\n\tSInt64  FileDataOffset();\n\tvoid\tSeekToPacket(SInt64 packetNumber);\n\tSInt64\tTellPacket() const { return mPacketMark; }  // will be imprecise if SeekToFrame was called\n\t\n\tvoid\tSetConverterChannelLayout(bool output, const CAAudioChannelLayout &layout);\n\tvoid\tWritePacketsFromCallback(\n\t\t\t\t\t\t\t\t\tAudioConverterComplexInputDataProc\tinInputDataProc,\n\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\t\tinInputDataProcUserData);\n\t\t\t\t// will use I/O buffer size\n\tvoid\tInitFileMaxPacketSize();\n\tvoid\tFileFormatChanged(const FSRef *parentDir=0, CFStringRef filename=0, AudioFileTypeID filetype=0);\n\n\tvoid\tGetExistingFileInfo();\n\tvoid\tFlushEncoder();\n\tvoid\tCloseConverter();\n\tvoid\tUpdateClientMaxPacketSize();\n\tvoid\tAllocateBuffers(bool okToFail=false);\n\tSInt64  PacketToFrame(SInt64 packet) const;\n\tSInt64\tFrameToPacket(SInt64 inFrame) const;\n\n\tstatic OSStatus ReadInputProc(\t\tAudioConverterRef\t\t\t\tinAudioConverter,\n\t\t\t\t\t\t\t\t\t\tUInt32*\t\t\t\t\t\t\tioNumberDataPackets,\n\t\t\t\t\t\t\t\t\t\tAudioBufferList*\t\t\t\tioData,\n\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription**\toutDataPacketDescription,\n\t\t\t\t\t\t\t\t\t\tvoid*\t\t\t\t\t\t\tinUserData);\t\n\n\tstatic OSStatus WriteInputProc(\t\tAudioConverterRef\t\t\t\tinAudioConverter,\n\t\t\t\t\t\t\t\t\t\tUInt32*\t\t\t\t\t\t\tioNumberDataPackets,\n\t\t\t\t\t\t\t\t\t\tAudioBufferList*\t\t\t\tioData,\n\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription**\toutDataPacketDescription,\n\t\t\t\t\t\t\t\t\t\tvoid*\t\t\t\t\t\t\tinUserData);\t\n// _______________________________________________________________________________________\nprivate:\n\n\t// the file\n\tFSRef\t\t\t\t\t\tmFSRef;\n\tAudioFileID\t\t\t\t\tmAudioFile;\n\tbool\t\t\t\t\t\tmOwnOpenFile;\n\tbool\t\t\t\t\t\tmUseCache;\n\tbool\t\t\t\t\t\tmFinishingEncoding;\n\tenum { kClosed, kReading, kPreparingToCreate, kPreparingToWrite, kWriting } mMode;\n\t\n//\tSInt64\t\t\t\t\t\tmNumberPackets;\t\t// in file's format\n\tSInt64\t\t\t\t\t\tmFileDataOffset;\n\tSInt64\t\t\t\t\t\tmPacketMark;\t\t// in file's format\n\tSInt64\t\t\t\t\t\tmFrameMark;\t\t\t// this may be offset from the start of the file\n\t\t\t\t\t\t\t\t\t\t\t\t\t// by the codec's latency; i.e. our frame 0 could\n\t\t\t\t\t\t\t\t\t\t\t\t\t// lie at frame 2112 of a decoded AAC file\n\tSInt32\t\t\t\t\t\tmFrame0Offset;\n\tUInt32\t\t\t\t\t\tmFramesToSkipFollowingSeek;\n\t\n\t// buffers\n\tUInt32\t\t\t\t\t\tmIOBufferSizeBytes;\n\tUInt32\t\t\t\t\t\tmIOBufferSizePackets;\n\tAudioBufferList\t\t\t\tmIOBufferList;\t\t// only one buffer -- USE ACCESSOR so it can be lazily initialized\n\tbool\t\t\t\t\t\tmClientOwnsIOBuffer;\n\tAudioStreamPacketDescription *mPacketDescs;\n\tUInt32\t\t\t\t\t\tmNumPacketDescs;\n\t\n\t// formats/conversion\n\tAudioConverterRef\t\t\tmConverter;\n\tCAStreamBasicDescription\tmFileDataFormat;\n\tCAStreamBasicDescription\tmClientDataFormat;\n\tCAAudioChannelLayout\t\tmFileChannelLayout;\n\tCAAudioChannelLayout\t\tmClientChannelLayout;\n\tUInt32\t\t\t\t\t\tmFileMaxPacketSize;\n\tUInt32\t\t\t\t\t\tmClientMaxPacketSize;\n\t\n\t// cookie\n\tByte *\t\t\t\t\t\tmMagicCookie;\n\tUInt32\t\t\t\t\t\tmMagicCookieSize;\n\t\n\t// for ReadPackets\n\tUInt32\t\t\t\t\t\tmMaxPacketsToRead;\n\t\n\t// for WritePackets\n\tUInt32\t\t\t\t\t\tmWritePackets;\n\tCABufferList *\t\t\t\tmWriteBufferList;\n\t\n#if CAAUDIOFILE_PROFILE\n\t// performance\n\tbool\t\t\t\t\t\tmProfiling;\n\tUInt64\t\t\t\t\t\tmTicksInConverter;\n\tUInt64\t\t\t\t\t\tmTicksInReadInConverter;\n\tUInt64\t\t\t\t\t\tmTicksInIO;\n\tbool\t\t\t\t\t\tmInConverter;\n#endif\n\n#endif // CAAF_USE_EXTAUDIOFILE\n};\n\n#endif // __CAAudioFile_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAAudioFilePlayer.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFilePlayer.cpp\n\t\n=============================================================================*/\n\n#include \"CAAudioFilePlayer.h\"\n#include \"CAXException.h\"\n\nCAAudioFilePlayer::CAAudioFilePlayer(int nBuffers, UInt32 bufferSizeFrames) :\n\tCAAudioFileReader(nBuffers, bufferSizeFrames),\n\tmOutputUnit(NULL)\n{\n\t// open output unit\n\tComponent comp;\n\tComponentDescription desc;\n\t\n\tdesc.componentType = kAudioUnitType_Output;\n\tdesc.componentSubType = kAudioUnitSubType_DefaultOutput;\n\tdesc.componentManufacturer = kAudioUnitManufacturer_Apple;\n\tdesc.componentFlags = 0;\n\tdesc.componentFlagsMask = 0;\n\tcomp = FindNextComponent(NULL, &desc);\n\t\n\t//\tif we can't find the default one, look explicitly for AUHAL\n\tif(comp == NULL)\n\t{\n\t\tdesc.componentType = kAudioUnitType_Output;\n\t\tdesc.componentSubType = kAudioUnitSubType_HALOutput;\n\t\tdesc.componentManufacturer = kAudioUnitManufacturer_Apple;\n\t\tdesc.componentFlags = 0;\n\t\tdesc.componentFlagsMask = 0;\n\t\tcomp = FindNextComponent(NULL, &desc);\n\t}\n\t\n\tXThrowIf(comp == NULL, -1, \"find audio output unit\");\n\tXThrowIfError(OpenAComponent(comp, &mOutputUnit), \"open audio output unit\");\n\tXThrowIfError(AudioUnitInitialize(mOutputUnit), \"initialize audio output unit\");\n\n#if 0\n\tAudioStreamBasicDescription theFormat;\n\tUInt32 theSize = sizeof(AudioStreamBasicDescription);\n\tAudioUnitGetProperty(mOutputUnit, 'sfmt', kAudioUnitScope_Output, 0, &theFormat, &theSize);\n\t\n\ttheFormat.mChannelsPerFrame = 6;\n\ttheFormat.mBytesPerFrame = theFormat.mChannelsPerFrame * (theFormat.mBitsPerChannel / 8);\n\ttheFormat.mBytesPerPacket = theFormat.mBytesPerFrame;\t\n\tAudioUnitSetProperty(mOutputUnit, 'sfmt', kAudioUnitScope_Output, 0, &theFormat, theSize);\n#endif\n}\n\nCAAudioFilePlayer::~CAAudioFilePlayer()\n{\n\tif (mOutputUnit)\n\t\tCloseComponent(mOutputUnit);\n}\n\nvoid\tCAAudioFilePlayer::SetFile(const FSRef &inFile)\n{\n\tStop();\n\tCAAudioFileReader::SetFile(inFile);\n\tSetupChannelMapping();\n}\n\nvoid\tCAAudioFilePlayer::SetupChannelMapping()\n{\n\t// set render callback\n\tAURenderCallbackStruct input;\n\tinput.inputProc = InputProc;\n\tinput.inputProcRefCon = this;\n\tXThrowIfError(AudioUnitSetProperty(\n\t\t\t\t\t\t\t\tmOutputUnit, \n\t\t\t\t\t\t\t\tkAudioUnitProperty_SetRenderCallback, \n\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t&input, \n\t\t\t\t\t\t\t\tsizeof(input)), \"connect input proc to output unit\");\n\n\tconst CAStreamBasicDescription &fmt = GetFile().GetClientDataFormat();\n\tXThrowIfError(AudioUnitSetProperty(\n\t\t\t\t\t\t\tmOutputUnit,\n\t\t\t\t\t\t\tkAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\tkAudioUnitScope_Input,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t(void *)&fmt,\n\t\t\t\t\t\t\tsizeof(AudioStreamBasicDescription)), \"set audio output format\");\n\tconst CAAudioChannelLayout &layoutObj = GetFile().GetFileChannelLayout();\n\tif (layoutObj.IsValid()) {\n\t\tconst AudioChannelLayout *layout = layoutObj;\n\t\t/*OSStatus err =*/ AudioUnitSetProperty(\n\t\t\t\t\t\t\t\tmOutputUnit,\n\t\t\t\t\t\t\t\tkAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Input,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tlayout,\n\t\t\t\t\t\t\t\tlayoutObj.Size());\n\t\t// $$$ FIXME: why does this fail sometimes?\n\t}\n}\n\nvoid\tCAAudioFilePlayer::Start()\n{\n\tif (IsRunning())\n\t\tStop();\n\tif (ReachedEndOfStream())\n\t\tSetCurrentPosition(0.);\n\tCAAudioFileReader::Start();\n\tXThrowIfError(AudioOutputUnitStart(mOutputUnit), \"start audio output unit\");\n}\n\nvoid\tCAAudioFilePlayer::Stop()\n{\n\tif (IsRunning()) {\n\t\tXThrowIfError(AudioOutputUnitStop(mOutputUnit), \"stop audio output unit\");\n\t\tCAAudioFileReader::Stop();\n\t}\n}\n\nvoid\tCAAudioFilePlayer::SetVolume(double volume)\n{\n\tAudioUnitSetParameter(mOutputUnit, kHALOutputParam_Volume,\n\t\tkAudioUnitScope_Global, 0, volume, 0);\n}\n\nOSStatus\tCAAudioFilePlayer::GetPlayBuffer(\n\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\tAudioBufferList *\t\t\tioData)\n{\n\tUInt32 nFrames = inNumberFrames;\n\tPullBuffer(nFrames, ioData);\n//\tprintf(\"read %ld frames\\n\", nFrames);\n\tif (nFrames < inNumberFrames) {\n\t\tAudioBuffer *buf = ioData->mBuffers;\n\t\tUInt32 bytesPerFrame = buf->mNumberChannels * sizeof(Float32);\n\t\tfor (UInt32 i = 0; i < ioData->mNumberBuffers; ++i, ++buf) {\n\t\t\tmemset((Byte *)buf->mData + nFrames * bytesPerFrame, 0,\n\t\t\t\t(inNumberFrames - nFrames) * bytesPerFrame);\n\t\t}\n\t}\n\treturn noErr;\n}\n\nOSStatus\tCAAudioFilePlayer::InputProc(\n\t\t\t\t\t\tvoid *\t\t\t\t\t\tinRefCon,\n\t\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags,\n\t\t\t\t\t\tconst AudioTimeStamp *\t\tinTimeStamp,\n\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\tAudioBufferList *\t\t\tioData)\n{\n\tCAAudioFilePlayer *This = static_cast<CAAudioFilePlayer *>(inRefCon);\n\treturn This->GetPlayBuffer(inNumberFrames, ioData);\n}\n\n\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAAudioFilePlayer.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFilePlayer.h\n\t\n=============================================================================*/\n\n#ifndef __CAAudioFilePlayer_h__\n#define __CAAudioFilePlayer_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnit.h>\n#else\n\t#include <AudioUnit.h>\n#endif\n#include \"CAAudioFileStreamer.h\"\n\n// Simple player -- owns an output unit\nclass CAAudioFilePlayer : public CAAudioFileReader {\npublic:\n\tCAAudioFilePlayer(int nBuffers, UInt32 bufferSizeFrames);\n\tvirtual ~CAAudioFilePlayer();\n\n\t// $$$ to add: change device, HAL I/O buffer size\n\n\tvirtual void\tStart();\n\tvirtual void\tStop();\n\tvoid\t\t\tSetVolume(double volume);\t\t// 0-1\n\t\n\tvoid\t\t\tSetFile(const FSRef &inFile);\n\nprotected:\n\t// our virtual methods:\n\tvirtual void\tSetupChannelMapping();\n\t\n\tAudioUnit\t\tGetOutputUnit() { return mOutputUnit; }\n\nprotected:\n\tstatic OSStatus\tInputProc(\n\t\t\t\t\t\t\tvoid *\t\t\t\t\t\tinRefCon,\n\t\t\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags,\n\t\t\t\t\t\t\tconst AudioTimeStamp *\t\tinTimeStamp,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\tAudioBufferList *\t\t\tioData);\n\n\tOSStatus\t\tGetPlayBuffer(\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\tAudioBufferList *\t\t\tioData);\n\n\tAudioUnit\t\tmOutputUnit;\n};\n\n#endif // __CAAudioFilePlayer_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAAudioFileRecorder.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFileRecorder.cpp\n\t\n=============================================================================*/\n\n#include \"CAAudioFileRecorder.h\"\n#include \"CAXException.h\"\n\nCAAudioFileRecorder::CAAudioFileRecorder(int nBuffers, UInt32 bufferSizeFrames) :\n\tCAAudioFileWriter(nBuffers, bufferSizeFrames),\n\tmInputUnit(NULL),\n\tmAudioInputPtrs(NULL)\n{\n\t// open input unit\n\tComponent comp;\n\tComponentDescription desc;\n\t\n\tdesc.componentType = kAudioUnitType_Output;\n\tdesc.componentSubType = kAudioUnitSubType_HALOutput;\n\tdesc.componentManufacturer = kAudioUnitManufacturer_Apple;\n\tdesc.componentFlags = 0;\n\tdesc.componentFlagsMask = 0;\n\tcomp = FindNextComponent(NULL, &desc);\n\tXThrowIf(comp == NULL, -1, \"find audio input unit\");\n\tXThrowIfError(OpenAComponent(comp, &mInputUnit), \"open audio input unit\");\n\n\tUInt32 enableIO;\n\tUInt32 propSize;\n\t\n\tenableIO = 0;\n\tXThrowIfError(AudioUnitSetProperty(mInputUnit,\n\t\tkAudioOutputUnitProperty_EnableIO,\n\t\tkAudioUnitScope_Output,\n\t\t0,\n\t\t&enableIO,\n\t\tsizeof(enableIO)), \"failed to disable output\");\n\n\tenableIO = 1;\n\tXThrowIfError(AudioUnitSetProperty(mInputUnit,\n\t\tkAudioOutputUnitProperty_EnableIO,\n\t\tkAudioUnitScope_Input,\n\t\t1,\n\t\t&enableIO,\n\t\tsizeof(enableIO)), \"failed to enable input\");\n\t\n\t// select the default input device\n\tpropSize = sizeof(AudioDeviceID);\n\tAudioDeviceID inputDevice;\n\tXThrowIfError(\n\t\tAudioHardwareGetProperty(kAudioHardwarePropertyDefaultInputDevice, &propSize, &inputDevice),\n\t\t\"failed to get default input device\");\n\t\n\tXThrowIfError(\n\t\tAudioUnitSetProperty(mInputUnit, kAudioOutputUnitProperty_CurrentDevice, kAudioUnitScope_Global, 0, &inputDevice, sizeof(inputDevice)),\n\t\t\"failed to select input device\");\n\t\n\t// set render callback\n\tAURenderCallbackStruct input;\n\tinput.inputProc = InputProc;\n\tinput.inputProcRefCon = this;\n\tXThrowIfError(AudioUnitSetProperty(\n\t\t\t\t\t\t\t\tmInputUnit, \n\t\t\t\t\t\t\t\tkAudioOutputUnitProperty_SetInputCallback, \n\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t&input, \n\t\t\t\t\t\t\t\tsizeof(input)), \"connect input proc to output unit\");\n\n\tXThrowIfError(AudioUnitInitialize(mInputUnit), \"initialize audio input unit\");\n\t\n\t// get the hardware format\n\tpropSize = sizeof(mInputDataFormat);\n\tXThrowIfError(AudioUnitGetProperty(mInputUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, 1, &mInputDataFormat, &propSize), \"couldn't get input unit's stream format\");\n}\n\nCAAudioFileRecorder::~CAAudioFileRecorder()\n{\n\tif (mInputUnit)\n\t\tCloseComponent(mInputUnit);\n\tdelete mAudioInputPtrs;\n}\n\nvoid\tCAAudioFileRecorder::SetFile(const FSRef &parentFSRef, CFStringRef filename, AudioFileTypeID filetype, const CAStreamBasicDescription &dataFormat, const CAAudioChannelLayout *layout)\n{\n\tdelete mAudioInputPtrs; mAudioInputPtrs = NULL;\n\t\n\tCAStreamBasicDescription fileDataFormat = dataFormat;\n\tif (fileDataFormat.mSampleRate == 0.)\n\t\tfileDataFormat.mSampleRate = mInputDataFormat.mSampleRate;\n\t\n\tCAAudioFileWriter::SetFile(parentFSRef, filename, filetype, fileDataFormat, layout);\n\n\tconst CAStreamBasicDescription &fmt = GetFile().GetClientDataFormat();\n\tXThrowIfError(AudioUnitSetProperty(\n\t\t\t\t\t\t\tmInputUnit,\n\t\t\t\t\t\t\tkAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\tkAudioUnitScope_Output,\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t(void *)&fmt,\n\t\t\t\t\t\t\tsizeof(AudioStreamBasicDescription)), \"set audio input format\");\n\n\tGetFile().SetIOBufferSizeBytes(GetBufferSizeFrames() * fmt.mBytesPerFrame);\n\n\tmAudioInputPtrs = CABufferList::New(\"audio input ptrs\", fmt);\n}\n\n/*\nvoid\tCAAudioFileRecorder::SetFile(AudioFileID fileID)\n{\n\tdelete mAudioInputPtrs; mAudioInputPtrs = NULL;\n\t\n\tCAAudioFileWriter::SetFile(fileID, mInputDataFormat.mSampleRate);\n\n\tconst CAStreamBasicDescription &fmt = GetFile().GetClientDataFormat();\n\tXThrowIfError(AudioUnitSetProperty(\n\t\t\t\t\t\t\tmInputUnit,\n\t\t\t\t\t\t\tkAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\tkAudioUnitScope_Output,\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\t(void *)&fmt,\n\t\t\t\t\t\t\tsizeof(AudioStreamBasicDescription)), \"set audio input format\");\n\n\tGetFile().SetIOBufferSize(GetBufferSizeFrames() * fmt.mBytesPerFrame);\n\n\tmAudioInputPtrs = CABufferList::New(\"audio input ptrs\", fmt);\n}\n*/\n\t\nvoid\tCAAudioFileRecorder::Start()\n{\n\tCAAudioFileWriter::Start();\n\tXThrowIfError(AudioOutputUnitStart(mInputUnit), \"start audio input unit\");\n}\n\nvoid\tCAAudioFileRecorder::Stop()\n{\n\tXThrowIfError(AudioOutputUnitStop(mInputUnit), \"stop audio input unit\");\n\tCAAudioFileWriter::Stop();\n}\n\nOSStatus\tCAAudioFileRecorder::InputProc(\n\t\t\t\t\t\t\tvoid *\t\t\t\t\t\tinRefCon,\n\t\t\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags,\n\t\t\t\t\t\t\tconst AudioTimeStamp *\t\tinTimeStamp,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\tAudioBufferList *\t\t\tioData)\n{\n\tCAAudioFileRecorder *This = static_cast<CAAudioFileRecorder *>(inRefCon);\n\tAudioUnitRenderActionFlags flags = 0;\n\tAudioBufferList *abl = &This->mAudioInputPtrs->GetModifiableBufferList();\n\tfor (UInt32 i = 0; i < abl->mNumberBuffers; ++i)\n\t\tabl->mBuffers[i].mData = NULL;\n\tOSStatus err = AudioUnitRender(This->mInputUnit, &flags, inTimeStamp, 1, inNumberFrames, abl);\n\tif (err)\n\t\treturn err;\n\t\n\tThis->PushBuffer(inNumberFrames, abl);\n\treturn noErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAAudioFileRecorder.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFileRecorder.h\n\t\n=============================================================================*/\n\n#ifndef __CAAudioFileRecorder_h__\n#define __CAAudioFileRecorder_h__\n\n#include \"CAAudioFileStreamer.h\"\n#include <AudioUnit/AudioUnit.h>\n\n// Simple file recorder using the HAL audio \"output\" unit as an input unit.\nclass CAAudioFileRecorder : public CAAudioFileWriter {\npublic:\n\tCAAudioFileRecorder(int nBuffers, UInt32 bufferSizeFrames);\n\t~CAAudioFileRecorder();\n\t\n\tvoid\tStart();\n\tvoid\tStop();\t\n\n\tvoid\tSetFile(AudioFileID fileID);\n\tvoid\tSetFile(const FSRef &parentFSRef, CFStringRef filename, AudioFileTypeID filetype, const CAStreamBasicDescription &dataFormat, const CAAudioChannelLayout *layout);\n\n\tconst CAStreamBasicDescription &\tIODataFormat() { return mInputDataFormat; }\n\nprotected:\n\tstatic OSStatus\tInputProc(\n\t\t\t\t\t\t\tvoid *\t\t\t\t\t\tinRefCon,\n\t\t\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags,\n\t\t\t\t\t\t\tconst AudioTimeStamp *\t\tinTimeStamp,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\tAudioBufferList *\t\t\tioData);\n\t\n\tAudioUnit\t\t\t\t\tmInputUnit;\n\tCABufferList *\t\t\t\tmAudioInputPtrs;\n\tCAStreamBasicDescription\tmInputDataFormat;\n};\n\n#endif // __CAAudioFileRecorder_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAAudioFileStreamer.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFileStreamer.cpp\n\t\n=============================================================================*/\n\n#include \"CAAudioFileStreamer.h\"\n\n// ____________________________________________________________________________\n\nvoid\tCAAudioFileReader::FileReadBuffer::UpdateAfterRead(SInt64 curFrame, UInt32 nFrames)\n{\n\t//printf(\"read %ld PCM packets, file packets %qd-%qd\\n\", nPackets, b->mStartPacket, b->mEndPacket);\n\tmEndFrame = nFrames;\n\tmEndOfStream = (nFrames == 0);\n\tmBufferStartFileFrame = curFrame;\n}\n\n// ____________________________________________________________________________\n\nvoid\tCAAudioFileReader::SetFile(const FSRef &inFile)\n{\n\tStop();\n\tCancelAndDisposeBuffers();\n\t\n\tdelete mFile;   mFile = NULL;\n\tmFile = new CAAudioFile;\n\tmFile->Open(inFile);\n\t\n\tconst CAStreamBasicDescription &fileFmt = mFile->GetFileDataFormat();\n\tCAStreamBasicDescription iofmt;\n\tiofmt.SetCanonical(fileFmt.mChannelsPerFrame, false);\t// deinterleaved\n\tiofmt.mSampleRate = fileFmt.mSampleRate;\n\tmFile->SetClientFormat(iofmt, NULL);\n\t\n\tSetFormat(iofmt);\n}\n\nvoid\tCAAudioFileReader::Start()\n{\n\tmErrorCount = 0;\n\tmEndOfStream = false;\n\tPrime();\n\tmRunning = true;\n}\n\nvoid\tCAAudioFileReader::Stop()\n{\n\tmRunning = false;\n}\n\nvoid\tCAAudioFileReader::ReadBuffer(FileReadBuffer *b)\n{\n\tb->SetEmpty();\n\tCABufferList *ioMemory = b->GetBufferList();\n\tCABufferList *fileBuffers = GetBufferList();\n\tfileBuffers->SetFrom(ioMemory);\n\tUInt32 nFrames = GetBufferSizeFrames();\n\tSInt64 curFrame = mFile->Tell();\n\tmFile->Read(nFrames, &fileBuffers->GetModifiableBufferList());\n\tb->UpdateAfterRead(curFrame, nFrames);\n}\n\ndouble\t\tCAAudioFileReader::GetCurrentPosition() const\n{\n\treturn double(GetCurrentFrame()) / double(GetNumberFrames());\n#if 0\n\tdouble nFrames = double(GetNumberFrames());\t// +1 to account for leftovers from decoder\n\tif (!mRunning)\n\t\treturn double(GetCurrentFrame()) / nFrames;\n\n\tif (mEndOfStream) {\n\t\t//printf(\"EOF\\n\");\n\t\treturn 1.0;\n\t}\n\n\tconst FileReadBuffer *b = static_cast<const FileReadBuffer *>(GetCurrentBuffer());\n\t\t// the buffer from which we're reading\n\tUInt32 startFrame, endFrame;\n\tb->GetLocation(startFrame, endFrame);\n\t//printf(\"%qd + %ld / %.f\\n\", b->mBufferStartFileFrame, startFrame, nFrames);\n\treturn double(b->mBufferStartFileFrame + startFrame) / nFrames;\n\t//if (endFrame > 0) {\n\t\t//double frac = (double(startFrame) / double(endFrame)) * double(endPacket - startPacket);\n\t\t//packetIndex += frac;\n\t\t//printf(\"frames %ld-%ld, packets %qd-%qd, frac %.3f\\n\",\n\t\t//\tstartFrame, endFrame, startPacket, endPacket, frac);\n\t//}\n\t//double pos = packetIndex / nPacketsPlus1;\n\t//printf(\"%.3f / %.0f = %.3f\\n\", packetIndex, nPacketsPlus1, pos);\n\t//return pos;\n\n\t//return double(GetCurrentFrame()) / nFrames;\n#endif\n}\n\nSInt64\tCAAudioFileReader::GetCurrentFrame() const\n{\n\tif (!mRunning)\n\t\treturn mFile->Tell();\n\tif (mEndOfStream)\n\t\treturn GetNumberFrames();\n\tconst FileReadBuffer *b = static_cast<const FileReadBuffer *>(GetCurrentBuffer());\n\t\t// the buffer from which we're reading\n\tUInt32 startFrame, endFrame;\n\tb->GetLocation(startFrame, endFrame);\n\t//printf(\"%qd + %ld / %.f\\n\", b->mBufferStartFileFrame, startFrame, nFrames);\n\treturn b->mBufferStartFileFrame + startFrame;\n}\n\nvoid\tCAAudioFileReader::SetCurrentPosition(double loc)\n{\n\tbool wasRunning = IsRunning();\n\tif (wasRunning)\n\t\tStop();\n\tSInt64 frameNumber = SInt64(loc * GetFile().GetNumberFrames() + 0.5);\n\ttry {\n\t\tGetFile().Seek(frameNumber);\n\t}\n\tcatch (...) {\n\t\n\t}\n\tif (wasRunning)\n\t\tStart();\n}\n\n// ____________________________________________________________________________\n\nvoid\tCAAudioFileWriter::SetFile(AudioFileID fileID)\n{\n\tStop();\n\tCancelAndDisposeBuffers();\n\t\n\tdelete mFile;   mFile = NULL;\n\tmFile = new CAAudioFile;\n\tmFile->Wrap(fileID, true);\n\t\n\tconst CAStreamBasicDescription &fileFmt = mFile->GetFileDataFormat();\n\tCAStreamBasicDescription iofmt;\n\tiofmt.SetCanonical(fileFmt.mChannelsPerFrame, false);\t// deinterleaved\n\tiofmt.mSampleRate = fileFmt.mSampleRate;\n\tmFile->SetClientFormat(iofmt, NULL);\n\t\n\tSetFormat(iofmt);\n}\n\nvoid\tCAAudioFileWriter::SetFile(const FSRef &parentDir, CFStringRef filename, AudioFileTypeID filetype, const CAStreamBasicDescription &dataFormat, const CAAudioChannelLayout *layout)\n{\n\tStop();\n\tCancelAndDisposeBuffers();\n\t\n\tdelete mFile;   mFile = NULL;\n\tmFile = new CAAudioFile;\n\tmFile->CreateNew(parentDir, filename, filetype, dataFormat, layout ? &layout->Layout() : NULL);\n\t\n\tconst CAStreamBasicDescription &fileFmt = mFile->GetFileDataFormat();\n\tCAStreamBasicDescription iofmt;\n\tiofmt.SetCanonical(fileFmt.mChannelsPerFrame, false);\t// deinterleaved\n\tiofmt.mSampleRate = fileFmt.mSampleRate;\n\tmFile->SetClientFormat(iofmt, NULL);\n\t\n\tSetFormat(iofmt);\n}\n\nvoid\tCAAudioFileWriter::Start()\n{\n\tmErrorCount = 0;\n\tmRunning = true;\n}\n\nvoid\tCAAudioFileWriter::Stop()\n{\n\tFlush();\n\tmRunning = false;\n}\n\nvoid\tCAAudioFileWriter::WriteBuffer(CABufferQueue::Buffer *b)\n{\n\tCABufferList *ioMemory = b->GetBufferList();\n\tCABufferList *fileBuffers = GetBufferList();\n\tUInt32 nFrames = b->FrameCount();\n\tfileBuffers->SetFrom(ioMemory, GetBytesPerFrame() * nFrames);\n\tmFile->Write(nFrames, &fileBuffers->GetModifiableBufferList());\n\tb->SetEmpty();\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAAudioFileStreamer.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFileStreamer.h\n\t\n=============================================================================*/\n\n#ifndef __CAAudioFileStreamer_h__\n#define __CAAudioFileStreamer_h__\n\n#include \"CABufferQueue.h\"\n#include \"CAAudioFile.h\"\n\n// ____________________________________________________________________________\n// Base class for CAAudioFileReader and CAAudioFileWriter\nclass CAAudioFileStreamer {\npublic:\n\tCAAudioFileStreamer() : mRunning(false), mFile(NULL) { }\n\tvirtual ~CAAudioFileStreamer() { delete mFile; }\n\n\tCAAudioFile &\t\tGetFile() { return *mFile; }\n\tconst CAAudioFile & GetFile() const { return *mFile; }\n\n\tbool\t\t\t\tIsRunning() { return mRunning; }\n\nprotected:\n\tbool\t\t\t\tmRunning;\n\tCAAudioFile *\t\tmFile;\n};\n\n// ____________________________________________________________________________\n\nclass CAAudioFileReader : public CAPullBufferQueue, public CAAudioFileStreamer {\npublic:\n\tCAAudioFileReader(int nBuffers, UInt32 bufferSizeFrames) :\n\t\tCAPullBufferQueue(nBuffers, bufferSizeFrames) { }\n\t\n\tvoid\t\t\t\tSetFile(const FSRef &inFile);\n\tvirtual void\t\tStart();\n\tvirtual void\t\tStop();\n\tdouble\t\t\t\tGetCurrentPosition() const;\t// 0-1\n\tSInt64\t\t\t\tGetCurrentFrame() const;// { return mFile->Tell(); }\n\tSInt64\t\t\t\tGetNumberFrames() const { return mFile->GetNumberFrames(); }\n\n\tvoid\t\t\t\tSetCurrentPosition(double loc);\t// 0-1\n\nprivate:\n\tclass FileReadBuffer : public CABufferQueue::Buffer {\n\tpublic:\n\t\tFileReadBuffer(CABufferQueue *queue, const CAStreamBasicDescription &fmt, UInt32 nBytes) :\n\t\t\tCABufferQueue::Buffer(queue, fmt, nBytes)\n\t\t{ }\n\t\t\n\t\tvoid\t\t\tUpdateAfterRead(SInt64 curFrame, UInt32 nFramesRead);\n\t\tvoid\t\t\tGetLocation(UInt32 &frm0, UInt32 &frame1) const {\n\t\t\t\t\t\t\tfrm0 = mStartFrame; frame1 = mEndFrame;\n\t\t\t\t\t\t}\n\t\t\n\t\tSInt64\t\t\tmBufferStartFileFrame;\n\t};\n\t\n\tvirtual CABufferQueue::Buffer *\tCreateBuffer(const CAStreamBasicDescription &fmt, UInt32 nBytes) {\n\t\t\t\t\t\t\treturn new FileReadBuffer(this, fmt, nBytes);\n\t\t\t\t\t\t}\n\tvirtual void\t\tProcessBuffer(CABufferQueue::Buffer *b) {\n\t\t\t\t\t\t\tReadBuffer(static_cast<FileReadBuffer *>(b));\n\t\t\t\t\t\t}\n\tvoid\t\t\t\tReadBuffer(FileReadBuffer *b);\n};\n\n// ____________________________________________________________________________\n\nclass CAAudioFileWriter : public CAPushBufferQueue, public CAAudioFileStreamer {\npublic:\n\tCAAudioFileWriter(int nBuffers, UInt32 bufferSizeFrames) :\n\t\tCAPushBufferQueue(nBuffers, bufferSizeFrames) { }\n\n\tvoid\t\t\t\tSetFile(AudioFileID file);\n\tvoid\t\t\t\tSetFile(const FSRef &parentDir, CFStringRef filename, AudioFileTypeID filetype, const CAStreamBasicDescription &dataFormat, const CAAudioChannelLayout *layout);\n\tvirtual void\t\tStart();\n\tvirtual void\t\tStop();\n\nprivate:\n\tvirtual CABufferQueue::Buffer *\tCreateBuffer(const CAStreamBasicDescription &fmt, UInt32 nBytes) {\n\t\t\t\t\t\t\treturn new CABufferQueue::Buffer(this, fmt, nBytes);\n\t\t\t\t\t\t}\n\tvirtual void\t\tProcessBuffer(CABufferQueue::Buffer *b) {\n\t\t\t\t\t\t\tWriteBuffer(b);\n\t\t\t\t\t\t}\n\tvoid\t\t\t\tWriteBuffer(CABufferQueue::Buffer *b);\n};\n\n#endif // __CAAudioFileStreamer_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CABufferQueue.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCABufferQueue.cpp\n\t\n=============================================================================*/\n\n#include \"CABufferQueue.h\"\n\n#if TARGET_OS_WIN32\n\t#include \"CAWindows.h\"\n#endif\n\n// ____________________________________________________________________________\n\nCABufferQueue::WorkThread *CABufferQueue::sWorkThread = NULL;\n\nCABufferQueue::WorkThread::WorkThread() :\n\tCAPThread(ThreadEntry, this, CAPThread::kMaxThreadPriority, true),\n\tmStopped(false),\n\tmRunGuard(\"CABufferQueue::mRunGuard\")\n{\n\t// prime the container to have some elements so we're not calling malloc dynamically\n\tBuffer *b = NULL;\n\tfor (int i = 0; i < 64; ++i)\n\t\tmWorkQueue.push_back(b);\n\tmWorkQueue.clear();\n\tStart();\n}\n\nvoid\tCABufferQueue::WorkThread::Run()\n{\n\twhile (!mStopped) {\n\t\tCAGuard::Locker lock(mRunGuard);\n\t\tmRunGuard.Wait();\n\t\t\n\t\twhile (!mStopped) {\n\t\t\tBuffer *b, *next;\n\t\t\t\n\t\t\t// add buffers from the other thread\n\t\t\tTAtomicStack<Buffer> reversed;\n\t\t\t\n\t\t\tb = mBuffersToAdd.pop_all();\t// these are in reverse order\n\t\t\twhile (b != NULL) {\n\t\t\t\tnext = b->get_next();\n\t\t\t\treversed.push_NA(b);\n\t\t\t\tb = next;\n\t\t\t}\n\t\t\twhile ((b = reversed.pop_NA()) != NULL)\n\t\t\t\tmWorkQueue.push_back(b);\n\t\t\t\n\t\t\tif (mWorkQueue.empty())\n\t\t\t\tbreak;\n\t\t\tb = mWorkQueue.front();\n\t\t\tmWorkQueue.pop_front();\n\t\t\t\n\t\t\tb->Queue()->ProcessBuffer(b);\n\t\t\tb->SetInProgress(false);\n\t\t}\n\t}\n}\n\nvoid\tCABufferQueue::WorkThread::Stop()\n{\n\tmStopped = true;\n\tmRunGuard.Notify();\n}\n\nvoid\tCABufferQueue::WorkThread::AddBuffer(Buffer *b)\n{\n\tb->SetInProgress(true);\n\tmBuffersToAdd.push_atomic(b);\n\tmRunGuard.Notify();\n}\n\nvoid\tCABufferQueue::WorkThread::RemoveBuffers(CABufferQueue *owner)\n{\n\tCAGuard::Locker lock(mRunGuard);\n\tfor (WorkQueue::iterator it = mWorkQueue.begin(); it != mWorkQueue.end(); ) {\n\t\tif ((*it)->Queue() == owner) {\n\t\t\tWorkQueue::iterator next = it;\t++next;\n\t\t\tmWorkQueue.erase(it);\n\t\t\tit = next;\n\t\t} else\n\t\t\t++it;\n\t}\n}\n\n// ____________________________________________________________________________\n\nCABufferQueue::Buffer::Buffer(CABufferQueue *queue, const CAStreamBasicDescription &fmt, UInt32 nBytes) :\n\tmQueue(queue)\n{\n\tmMemory = CABufferList::New(\"\", fmt);\n\tmMemory->AllocateBuffers(nBytes);\n\tmByteSize = nBytes;\n\tmInProgress = false;\n\tmStartFrame = mEndFrame = 0;\n\tmEndOfStream = false;\n}\n\n// return true if buffer emptied AND we're not at end-of-stream\nbool CABufferQueue::Buffer::CopyInto(AudioBufferList *destBufferList, int bytesPerFrame, UInt32 &framesProduced, UInt32 &framesRequired)\n{\n\tUInt32 framesInBuffer = mEndFrame - mStartFrame;\n\tUInt32 framesToCopy = std::min(framesInBuffer, framesRequired);\n\tif (framesToCopy > 0) {\n\t\tconst CABufferList *bufMemory = mMemory;\n\t\tconst AudioBufferList &srcBufferList = bufMemory->GetBufferList();\n\t\tconst AudioBuffer *srcbuf = srcBufferList.mBuffers;\n\t\tAudioBuffer *dstbuf = destBufferList->mBuffers;\n\t\tfor (int i = destBufferList->mNumberBuffers; --i >= 0; ++srcbuf, ++dstbuf) {\n\t\t\tmemcpy(\n\t\t\t\t(Byte *)dstbuf->mData + framesProduced * bytesPerFrame,\n\t\t\t\t(Byte *)srcbuf->mData + mStartFrame * bytesPerFrame,\n\t\t\t\tframesToCopy * bytesPerFrame);\n\t\t}\n\t\tframesProduced += framesToCopy;\n\t\tframesRequired -= framesToCopy;\n\t\tmStartFrame += framesToCopy;\n\t}\n\treturn (framesToCopy == framesInBuffer) && !mEndOfStream;\n}\n\n// return true if buffer filled\nbool\tCABufferQueue::Buffer::CopyFrom(const AudioBufferList *srcBufferList, int bytesPerFrame, UInt32 &framesProduced, UInt32 &framesRequired)\n{\n\tUInt32 framesInBuffer = mEndFrame - mStartFrame;\n\tUInt32 freeFramesInBuffer = (mByteSize / bytesPerFrame) - framesInBuffer;\n\tUInt32 framesToCopy = std::min(freeFramesInBuffer, framesRequired);\n\tif (framesToCopy > 0) {\n\t\tconst AudioBuffer *srcbuf = srcBufferList->mBuffers;\n\t\tconst CABufferList *bufMemory = mMemory;\n\t\tconst AudioBufferList &destBufferList = bufMemory->GetBufferList();\n\t\tconst AudioBuffer *dstbuf = destBufferList.mBuffers;\n\t\tfor (int i = srcBufferList->mNumberBuffers; --i >= 0; ++srcbuf, ++dstbuf) {\n\t\t\tmemcpy(\n\t\t\t\t(Byte *)dstbuf->mData + framesInBuffer * bytesPerFrame,\n\t\t\t\t(Byte *)srcbuf->mData + framesProduced * bytesPerFrame,\n\t\t\t\tframesToCopy * bytesPerFrame);\n\t\t}\n\t\tframesProduced += framesToCopy;\n\t\tframesRequired -= framesToCopy;\n\t\tmEndFrame += framesToCopy;\n\t}\n\treturn (framesToCopy == freeFramesInBuffer);\n}\n\n// ____________________________________________________________________________\n\nCABufferQueue::CABufferQueue(int nBuffers, UInt32 bufferSizeFrames) :\n\tmNumberBuffers(nBuffers),\n\tmBuffers(NULL),\n\tmBufferSizeFrames(bufferSizeFrames),\n\tmBufferList(NULL)\n{\n\tmCurrentBuffer = 0;\n\tmErrorCount = 0;\n\t\n\tif (sWorkThread == NULL)\n\t\tsWorkThread = new WorkThread();\n\tmWorkThread = sWorkThread;  // for now\n}\n\nCABufferQueue::~CABufferQueue()\n{\n\tCancelAndDisposeBuffers();\n}\n\nvoid\tCABufferQueue::CancelBuffers()\n{\n\tmWorkThread->RemoveBuffers(this);\n}\n\nvoid\tCABufferQueue::CancelAndDisposeBuffers()\n{\n\tCancelBuffers();\n\tif (mBuffers) {\n\t\tfor (int i = 0; i < mNumberBuffers; ++i)\n\t\t\tdelete mBuffers[i];\n\t\tdelete[] mBuffers;\t\tmBuffers = NULL;\n\t}\n\tdelete mBufferList;\t\tmBufferList = NULL;\n}\n\nvoid\tCABufferQueue::SetFormat(const CAStreamBasicDescription &fmt)\n{\n\tCancelAndDisposeBuffers();\n\t\n\tmBytesPerFrame = fmt.mBytesPerFrame;\n\tmBuffers = new Buffer*[mNumberBuffers];\n\tfor (int i = 0; i < mNumberBuffers; ++i)\n\t\tmBuffers[i] = CreateBuffer(fmt, mBufferSizeFrames * mBytesPerFrame);\n\tmBufferList = CABufferList::New(\"\", fmt);\n}\n\n// ____________________________________________________________________________\n\nvoid\tCAPushBufferQueue::PushBuffer(UInt32 inNumberFrames, const AudioBufferList *inBufferList)\n{\n\tUInt32 framesRequired = inNumberFrames;\n\tUInt32 framesProduced = 0;\n\t\n\tdo {\n\t\tBuffer *b = mBuffers[mCurrentBuffer];\n\t\t\n\t\tif (b->InProgress()) {\n\t\t\t++mErrorCount;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tif (b->CopyFrom(inBufferList, mBytesPerFrame, framesProduced, framesRequired)) {\n\t\t\t// buffer was filled, we're done with it\n\t\t\tsWorkThread->AddBuffer(b);\n\t\t\tif (++mCurrentBuffer == mNumberBuffers)\n\t\t\t\tmCurrentBuffer = 0;\n\t\t}\n\t} while (framesRequired > 0);\n}\n\nvoid\tCAPushBufferQueue::Flush()\n{\n\tif (mBuffers != NULL) {\n\t\tBuffer *b = mBuffers[mCurrentBuffer];\n\t\tif (b->FrameCount() > 0 && !b->InProgress())\n\t\t\tProcessBuffer(b);\n\t}\n}\n\n// ____________________________________________________________________________\n\nvoid\tCAPullBufferQueue::PullBuffer(UInt32 &ioFrames, AudioBufferList *outBufferList)\n{\n\tif (mEndOfStream) {\n\t\tioFrames = 0;\n\t\treturn;\n\t}\n\tUInt32 framesRequired = ioFrames;\n\tUInt32 framesProduced = 0;\n\t\n\tdo {\n\t\tBuffer *b = mBuffers[mCurrentBuffer];\n\t\t\n\t\tif (b->InProgress()) {\n\t\t\t++mErrorCount;\n\t\t\tbreak;\n\t\t}\n\t\t\n\t\tif (b->CopyInto(outBufferList, mBytesPerFrame, framesProduced, framesRequired)) {\n\t\t\t// buffer emptied\n\t\t\tsWorkThread->AddBuffer(b);\n\t\n\t\t\tif (++mCurrentBuffer == mNumberBuffers)\n\t\t\t\tmCurrentBuffer = 0;\n\t\t}\n\t\telse if (b->ReachedEndOfStream()) {\n\t\t\tmEndOfStream = true;\n\t\t\tbreak;\n\t\t}\n\t} while (framesRequired > 0);\n\tioFrames = framesProduced;\n}\n\nvoid\tCAPullBufferQueue::Prime()\n{\n\tmEndOfStream = false;\n\tfor (int i = 0; i < mNumberBuffers; ++i) {\n\t\tBuffer *b = mBuffers[i];\n\t\tProcessBuffer(b);\n\t\tb->SetInProgress(false);\n\t}\n\tmCurrentBuffer = 0;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CABufferQueue.h",
    "content": "/*\tCopyright: \t� Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apple�s\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCABufferQueue.h\n\t\n=============================================================================*/\n\n#ifndef __CABufferQueue_h__\n#define __CABufferQueue_h__\n\n#include \"CAPThread.h\"\n#include \"CAGuard.h\"\n#include \"CAStreamBasicDescription.h\"\n#include \"CABufferList.h\"\n#include <list>\n#include \"CAAtomicStack.h\"\n\n// ____________________________________________________________________________\n\n// Abstraction for moving audio buffers between threads.\n// Has abstract subclasses for push and pull.\nclass CABufferQueue {\n\tfriend class CAPushBufferQueue;\n\tfriend class CAPullBufferQueue;\npublic:\n\t\t\t\t\t\tCABufferQueue(int nBuffers, UInt32 bufferSizeFrames);\n\tvirtual\t\t\t\t~CABufferQueue();\n\n\tvoid\t\t\t\tSetFormat(const CAStreamBasicDescription &fmt);\n\tUInt32\t\t\t\tGetBufferSizeFrames() const { return mBufferSizeFrames; }\n\tint\t\t\t\t\tErrorCount() const { return mErrorCount; }\n\t\n\t// -----\n\tclass Buffer {\n\tpublic:\n\t\tBuffer(CABufferQueue *owner, const CAStreamBasicDescription &fmt, UInt32 nBytes);\n\t\t\n\t\t~Buffer() { delete mMemory; }\n\t\t\n\t\tCABufferQueue * Queue() { return mQueue; }\n\t\tCABufferList *  GetBufferList() { return mMemory; }\n\t\tUInt32\t\t\tFrameCount() { return mEndFrame - mStartFrame; }\n\t\tvoid\t\t\tSetEmpty() { mStartFrame = mEndFrame = 0; }\n\t\t\n\t\tvoid\t\t\tSetInProgress(bool b) { mInProgress = b; }\n\t\tbool\t\t\tInProgress() const { return mInProgress; }\n\t\tbool\t\t\tReachedEndOfStream() const { return mEndOfStream; }\n\n\t\tbool\t\t\tCopyInto(AudioBufferList *destBufferList, int bytesPerFrame, UInt32 &framesProduced, UInt32 &framesRequired);\t// return true if buffer emptied\n\n\t\tbool\t\t\tCopyFrom(const AudioBufferList *srcBufferList, int bytesPerFrame, UInt32 &framesProduced, UInt32 &framesRequired); // return true if buffer filled and not end-of-stream\n\t\t\n\t\tBuffer *\t\tget_next() { return mNext; }\n\t\tvoid\t\t\tset_next(Buffer *b) { mNext = b; }\n\t\tBuffer *& \t\tnext() { return mNext; }\n\t\t\n#if DEBUG\n\t\tvoid\t\t\tprint() {\n\t\t\t\t\t\t\tprintf(\"Buffer %p:\\n  inProgress %d, endOfStream %d, frames %ld-%ld\\n\", this, mInProgress, mEndOfStream, mStartFrame, mEndFrame);\n\t\t\t\t\t\t}\n#endif\n\t\t\n\tprotected:\n\t\tBuffer *\t\tmNext;\n\t\tCABufferQueue * mQueue;\n\t\tCABufferList *\tmMemory;\n\t\tUInt32\t\t\tmByteSize;\n\t\t\n\t\tbool\t\t\tmInProgress;\t\t\t\t// true if in the work queue\n\t\tbool\t\t\tmEndOfStream;\t\t\t\t// true if the operation resulted in end-of-stream\n\t\tUInt32\t\t\tmStartFrame, mEndFrame;\t\t// produce/consume pointers within the buffer\n\t};\n\t\n#if DEBUG\n\tvoid\tprint() {\n\t\tprintf(\"BufferQueue %p\\n  mCurrentBuffer=%d\\n\", this, mCurrentBuffer);\n\t\tif (mBuffers)\n\t\tfor (int i = 0; i < mNumberBuffers; ++i) {\n\t\t\tBuffer *b = mBuffers[i];\n\t\t\tprintf(\"  buffer[%d]: \", i);\n\t\t\tif (b)\n\t\t\t\tb->print();\n\t\t\telse printf(\"NULL\\n\");\n\t\t}\n\t}\n#endif\n\t\nprotected:\t\n\tvirtual Buffer *\tCreateBuffer(const CAStreamBasicDescription &fmt, UInt32 nBytes) = 0;\n\tvirtual void\t\tProcessBuffer(Buffer *b) = 0;\n\tvoid\t\t\t\tCancelBuffers();\n\tvoid\t\t\t\tCancelAndDisposeBuffers();\n\t\n\tCABufferList *\t\tGetBufferList() { return mBufferList; }\n\tconst Buffer *\t\tGetCurrentBuffer() const { return mBuffers[mCurrentBuffer]; }\n\tUInt32\t\t\t\tGetBytesPerFrame() const { return mBytesPerFrame; }\n\nprivate:\n\t\n\t// -----\n\tclass WorkThread : public CAPThread {\n\tpublic:\n\t\tWorkThread();\n\t\t\n\t\tstatic void * ThreadEntry(void *param)\n\t\t{\n\t\t\tstatic_cast<WorkThread *>(param)->Run();\n\t\t\treturn NULL;\n\t\t}\n\t\tvoid\tRun();\n\t\tvoid\tStop();\n\t\t\n\t\tvoid\tAddBuffer(Buffer *buffer);\n\t\tvoid\tRemoveBuffers(CABufferQueue *owner);\n\t\n\tprivate:\n\t\ttypedef std::list<Buffer *> WorkQueue;\n\n\t\tbool\t\t\tmStopped;\n\t\tWorkQueue\t\tmWorkQueue;\n\t\tCAGuard\t\t\tmRunGuard;\n\t\tTAtomicStack<Buffer>  mBuffersToAdd;\n\t};\n\t\n\tstatic WorkThread *\tsWorkThread;\n\t\n\t// -----\nprivate:\n\tWorkThread *\t\tmWorkThread;\n\n\tint\t\t\t\t\tmCurrentBuffer;\n\tint\t\t\t\t\tmNumberBuffers;\n\tBuffer **\t\t\tmBuffers;\t\t\t\t\t// array of pointers\n\tUInt32\t\t\t\tmBufferSizeFrames;\n\tUInt32\t\t\t\tmBytesPerFrame;\t\t\t\t// function of client format\n\tCABufferList *\t\tmBufferList;\t\t\t\t// maintained in SetFormat\nprotected:\n\tint\t\t\t\t\tmErrorCount;\n};\n\n// ____________________________________________________________________________\n\n// Abstract class.\n// The client pushes buffers in; they are consumed (via ProcessBuffer) on the work thread.\n// (ex: file recorder)\nclass CAPushBufferQueue : public CABufferQueue {\npublic:\n\tCAPushBufferQueue(int nBuffers, UInt32 bufferSizeFrames) :\n\t\tCABufferQueue(nBuffers, bufferSizeFrames) { }\n\n\tvoid\t\t\tPushBuffer(UInt32 inNumberFrames, const AudioBufferList *inBufferList);\n\t\t\t\t\t\t// push a buffer in\n\tvoid\t\t\tFlush();\n\t\t\t\t\t\t// emit a possibly incomplete final buffer\n};\n\n// ____________________________________________________________________________\n\n// Abstract class.\n// The client pulls buffers out; they are produced (via ProcessBuffer) on the work thread.\n// (ex: file player)\nclass CAPullBufferQueue : public CABufferQueue {\npublic:\n\tCAPullBufferQueue(int nBuffers, UInt32 bufferSizeFrames) :\n\t\tCABufferQueue(nBuffers, bufferSizeFrames),\n\t\tmEndOfStream(false) { }\n\n\tvoid\t\t\tPrime();\n\t\t\t\t\t\t// produce initial buffers\n\tvoid\t\t\tPullBuffer(UInt32 &ioFrames, AudioBufferList *outBufferList);\n\t\t\t\t\t\t// pull a buffer out\n\tbool\t\t\tReachedEndOfStream() const { return mEndOfStream; }\n\nprotected:\n\tbool\t\t\tmEndOfStream;\n};\n\n#endif // __CABufferQueue_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAChannelMapper.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAChannelMapper.cpp\n\t\n=============================================================================*/\n\n#include \"CAChannelMapper.h\"\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioToolbox.h>\n#else\n\t#include <AudioToolbox.h>\n#endif\n\nstatic void DefaultChannelLayout(CAAudioChannelLayout &layout, UInt32 nchannels)\n{\n\t// we really can't do a sensible downmix without valid source/destination channel layouts\n\tif (nchannels == 1)\n\t\tlayout = CAAudioChannelLayout(kAudioChannelLayoutTag_Mono);\n\telse if (nchannels == 2)\n\t\tlayout = CAAudioChannelLayout(kAudioChannelLayoutTag_Stereo);\n}\n\nCAChannelMapper::CAChannelMapper(\tconst CAStreamBasicDescription &srcFormat, \n\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription &destFormat,\n\t\t\t\t\t\t\t\t\tconst CAAudioChannelLayout *\tinSrcLayout,\n\t\t\t\t\t\t\t\t\tconst CAAudioChannelLayout *\tinDestLayout) :\n\tmSrcNChannels(srcFormat.mChannelsPerFrame),\n\tmDestNChannels(destFormat.mChannelsPerFrame)\n{\n\tif (inSrcLayout && inSrcLayout->IsValid())\n\t\tmSrcLayout = *inSrcLayout;\n\telse\n\t\tDefaultChannelLayout(mSrcLayout, srcFormat.mChannelsPerFrame);\n\n\tif (inDestLayout && inDestLayout->IsValid())\n\t\tmDestLayout = *inDestLayout;\n\telse\n\t\tDefaultChannelLayout(mDestLayout, destFormat.mChannelsPerFrame);\n}\n\nCAChannelMapper::~CAChannelMapper()\n{\n\tif (mMatrixMixer)\n\t\tCloseComponent(mMatrixMixer);\n}\n\nOSStatus\tCAChannelMapper::OpenMixer(double sampleRate)\n{\n\tCAComponent comp(kAudioUnitType_Mixer, kAudioUnitSubType_MatrixMixer, kAudioUnitManufacturer_Apple);\n\tOSStatus err;\n\t\n\terr = CAAudioUnit::Open(comp, mMatrixMixer);\n\tif (err) return err;\n\n\tCAStreamBasicDescription fmt;\n\tfmt.mSampleRate = sampleRate;\n\tUInt32 nbuses = 1;\n\n\terr = mMatrixMixer.SetProperty(kAudioUnitProperty_BusCount, kAudioUnitScope_Input, 0, &nbuses, sizeof(UInt32));\n\tif (err) return err;\n\terr = mMatrixMixer.SetProperty(kAudioUnitProperty_BusCount, kAudioUnitScope_Output, 0, &nbuses, sizeof(UInt32));\n\tif (err) return err;\n\n\tfmt.SetCanonical(mSrcNChannels, false);\n\terr = mMatrixMixer.SetFormat(kAudioUnitScope_Input, 0, fmt);\n\tif (err) return err;\n\n\tfmt.SetCanonical(mDestNChannels, false);\n\terr = mMatrixMixer.SetFormat(kAudioUnitScope_Output, 0, fmt);\n\tif (err) return err;\n\t\n\t// set render callback\n\tAURenderCallbackStruct input;\n\tinput.inputProc = MixerInputProc;\n\tinput.inputProcRefCon = this;\n\terr = mMatrixMixer.SetProperty(\n\t\t\t\t\t\t\t\tkAudioUnitProperty_SetRenderCallback, \n\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t&input, \n\t\t\t\t\t\t\t\tsizeof(input));\n\t\n\terr = mMatrixMixer.Initialize();\n\tif (err) return err;\n\t\n\treturn ResetMixer();\n}\n\nOSStatus\tCAChannelMapper::ResetMixer()\n{\n\tint nin = mSrcNChannels, nout = mDestNChannels;\n\tint i, j;\n\n\t// set global, input and output volumes\n\tmMatrixMixer.SetParameter(kMatrixMixerParam_Volume, kAudioUnitScope_Global, 0xFFFFFFFF, 1.);\n\tfor (i = 0; i < nout; ++i) {\n\t\tmMatrixMixer.SetParameter(kMatrixMixerParam_Volume, kAudioUnitScope_Global, 0xFFFF0000 | i, 1.);\n\t}\n\tfor (i = 0; i < nin; ++i) {\n\t\tmMatrixMixer.SetParameter(kMatrixMixerParam_Volume, kAudioUnitScope_Global, (i<<16) | 0xFFFF, 1.);\n\t}\n\t// set crosspoint volumes\n\tfor (i = 0; i < nin; ++i) {\n\t\tfor (j = 0; j < nout; ++j) {\n\t\t\tmMatrixMixer.SetParameter(kMatrixMixerParam_Volume, kAudioUnitScope_Global, (i<<16) | j, 0.);\n\t\t}\n\t}\n\treturn noErr;\n}\n\nOSStatus\tCAChannelMapper::ConfigureDownmix()\n{\n\tOSStatus err = ResetMixer();\n\tif (err)\n\t\treturn err;\n\t\n\tconst AudioChannelLayout *layouts[] = { &mSrcLayout.Layout(), &mDestLayout.Layout() };\n\tUInt32 propSize;\n\terr = AudioFormatGetPropertyInfo(kAudioFormatProperty_MatrixMixMap, sizeof(layouts), layouts, &propSize);\n\tif (err)\n\t\treturn err;\n\t\n\tvoid *mixmap = malloc(propSize);\n\terr = AudioFormatGetProperty(kAudioFormatProperty_MatrixMixMap, sizeof(layouts), layouts, &propSize, mixmap);\n\tif (!err) {\n\t\tmMatrixMixer.SetParameter(kMatrixMixerParam_Volume, kAudioUnitScope_Global, 0xFFFFFFFF, 1.);\n\t\tint nin = mSrcNChannels, nout = mDestNChannels;\n\t\tint i, j;\n\t\t// set the crosspoint volumes\n\t\tFloat32 *val = (Float32 *)mixmap;\n\t\tfor (i = 0; i < nin; ++i) {\n\t\t\tfor (j = 0; j < nout; ++j) {\n\t\t\t\tmMatrixMixer.SetParameter(kMatrixMixerParam_Volume, kAudioUnitScope_Global, (i<<16) | j, *val++);\n\t\t\t}\n\t\t}\n\t}\n\tfree(mixmap);\n\treturn noErr;\n}\n\nOSStatus\tCAChannelMapper::ConnectChannelToChannel(UInt32 inChannel, UInt32 outChannel)\n{\n\treturn mMatrixMixer.SetParameter(kMatrixMixerParam_Volume, kAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t(inChannel << 16) | outChannel, 1.);\n}\n\nOSStatus\tCAChannelMapper::Mix(const AudioBufferList *src, AudioBufferList *dest, UInt32 nFrames)\n{\n\tmMixInputBufferList = src;\n\tAudioUnitRenderActionFlags flags = 0;\n\tAudioTimeStamp ts;\n\tts.mFlags = 0;\n\treturn AudioUnitRender(mMatrixMixer.AU(), &flags, &ts, 0, nFrames, dest);\n}\n\nOSStatus\tCAChannelMapper::MixerInputProc(\n\t\t\t\t\t\tvoid *\t\t\t\t\t\tinRefCon,\n\t\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags,\n\t\t\t\t\t\tconst AudioTimeStamp *\t\tinTimeStamp,\n\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\tAudioBufferList *\t\t\tioData)\n{\n\tCAChannelMapper *This = static_cast<CAChannelMapper *>(inRefCon);\n\tconst AudioBufferList *mixInputBufferList = This->mMixInputBufferList;\n\tUInt32 copySize = sizeof(UInt32) + (mixInputBufferList->mNumberBuffers * sizeof(AudioBuffer));\n\tmemcpy(ioData, mixInputBufferList, copySize);\n\t\n\treturn noErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAChannelMapper.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAChannelMapper.h\n\t\n=============================================================================*/\n\n#ifndef __CAChannelMapper_h__\n#define __CAChannelMapper_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnit.h>\n#else\n\t#include <AudioUnit.h>\n#endif\n#include \"CAAudioChannelLayout.h\"\n#include \"CAStreamBasicDescription.h\"\n#include \"CAAudioUnit.h\"\n#include \"MatrixMixerVolumes.h\"\n\nclass CAChannelMapper {\npublic:\n\tCAChannelMapper(const CAStreamBasicDescription &srcFormat, \n\t\t\t\t\tconst CAStreamBasicDescription &destFormat,\n\t\t\t\t\tconst CAAudioChannelLayout *\tsrcLayout = NULL,\n\t\t\t\t\tconst CAAudioChannelLayout *\tdestLayout = NULL);\n\t~CAChannelMapper();\n\t\n\tUInt32\t\t\tNumSourceChannels() { return mSrcNChannels; }\n\tUInt32\t\t\tNumDestChannels() { return mDestNChannels; }\n\tconst CAAudioChannelLayout\t&SourceLayout() { return mSrcLayout; }\n\tconst CAAudioChannelLayout\t&DestLayout() { return mDestLayout; }\n\tAudioUnit\t\tGetMixer() { return mMatrixMixer.AU(); }\n\t\n\tbool\t\t\tCanDownmix() { return mSrcLayout.IsValid() && mDestLayout.IsValid(); }\n\tOSStatus\t\tOpenMixer(double sampleRate);\n\tOSStatus\t\tResetMixer();\t\t// enables all ins/outs, zeroes all crosspoints\n\tOSStatus\t\tConfigureDownmix();\n\tOSStatus\t\tConnectChannelToChannel(UInt32 inChannel, UInt32 outChannel);\n\tOSStatus\t\tMix(const AudioBufferList *src, AudioBufferList *dest, UInt32 nFrames);\n\tvoid\t\t\tPrintMatrixMixerVolumes(FILE *f) { ::PrintMatrixMixerVolumes(f, mMatrixMixer.AU()); }\n\t\nprivate:\n\tstatic OSStatus\tMixerInputProc(\n\t\t\t\t\t\t\tvoid *\t\t\t\t\t\tinRefCon,\n\t\t\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags,\n\t\t\t\t\t\t\tconst AudioTimeStamp *\t\tinTimeStamp,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\tAudioBufferList *\t\t\tioData);\n\n\tUInt32\t\t\t\t\tmSrcNChannels, mDestNChannels;\n\tCAAudioChannelLayout\tmSrcLayout, mDestLayout;\n\tCAAudioUnit\t\t\t\tmMatrixMixer;\n\tconst AudioBufferList *\tmMixInputBufferList;\n};\n\n#endif // __CAChannelMapper_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAChannelMappingPlayer.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAChannelMappingPlayer.cpp\n\t\n=============================================================================*/\n\n#include \"CAChannelMappingPlayer.h\"\n#include \"CAXException.h\"\n\n#if DEBUG\n\t#define VERBOSE 1\n#endif\n\nCAChannelMappingPlayer::CAChannelMappingPlayer(int nBuffers, UInt32 bufferSizeFrames) :\n\tCAAudioFilePlayer(nBuffers, bufferSizeFrames),\n\tmMapper(NULL)\n{\n}\n\nCAChannelMappingPlayer::~CAChannelMappingPlayer()\n{\n\tdelete mMapper;\n}\n\nvoid\tCAChannelMappingPlayer::SetupChannelMapping()\n{\n\tdelete mMapper;\n\tmMapper = NULL;\n\t\n\tconst CAStreamBasicDescription &fileFormat = GetFile().GetClientDataFormat();\n\tCAStreamBasicDescription deviceFormat;\n\tUInt32 propertySize = sizeof(AudioStreamBasicDescription);\n\t\n\tXThrowIfError(AudioUnitGetProperty(\n\t\t\t\t\t\t\tGetOutputUnit(),\n\t\t\t\t\t\t\tkAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\tkAudioUnitScope_Output,\n\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t(void *)&deviceFormat,\n\t\t\t\t\t\t\t&propertySize), \"get output device's format\");\n\n#if VERBOSE\n\tprintf(\"CAChannelMappingPlayer::SetupChannelMapping: %ld-ch file, %ld-ch device\\n\",\n\t\tfileFormat.mChannelsPerFrame, deviceFormat.mChannelsPerFrame);\n#endif\n\n\tif (fileFormat.mChannelsPerFrame <= deviceFormat.mChannelsPerFrame) {\n\t\t// no mapping needed, use output unit's default behavior \n\t\t// (default stereo pair and speaker config from AMS)\n#if VERBOSE\n\t\tprintf(\"  using output unit's channel mapping\\n\");\n#endif\n\t\tCAAudioFilePlayer::SetupChannelMapping();\n\t} else {\n\t\t// fewer device than file channels, mapping needed\n\t\tCAAudioChannelLayout fileLayout, deviceLayout;\n\t\t\n#if VERBOSE\n\t\tprintf(\"  using our own channel mapping\\n\");\n#endif\n\t\tdeviceFormat.mSampleRate = fileFormat.mSampleRate;\n\t\tdeviceFormat.SetCanonical(deviceFormat.mChannelsPerFrame, false);\t// force deinterleaved\n\t\t\n\t\tfileLayout = GetFile().GetFileChannelLayout();\n\n\t\tUInt32 layoutSize;\n\t\tBoolean writable;\n\t\tOSStatus err = AudioUnitGetPropertyInfo(\n\t\t\t\t\t\t\t\tGetOutputUnit(),\n\t\t\t\t\t\t\t\tkAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Input,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t&layoutSize,\n\t\t\t\t\t\t\t\t&writable);\n\t\tif (!err) {\n\t\t\tchar *buf = (char *)malloc(layoutSize);\n\t\t\terr = AudioUnitGetProperty(\n\t\t\t\t\t\t\t\tGetOutputUnit(),\n\t\t\t\t\t\t\t\tkAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Input,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tbuf,\n\t\t\t\t\t\t\t\t&layoutSize);\n\t\t\tdeviceLayout = CAAudioChannelLayout(reinterpret_cast<AudioChannelLayout *>(buf));\n\t\t\tfree(buf);\n\t\t}\n\t\tmMapper = new CAChannelMapper(fileFormat, deviceFormat, &fileLayout, &deviceLayout);\n\n\t\t// give the output unit the same number of channels as in the device, \n\t\t// since we'll be doing the mapping ourselves\n\t\tXThrowIfError(AudioUnitSetProperty(\n\t\t\t\t\t\t\t\tGetOutputUnit(),\n\t\t\t\t\t\t\t\tkAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Input,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t(void *)&deviceFormat,\n\t\t\t\t\t\t\t\tsizeof(AudioStreamBasicDescription)), \"set audio output format\");\n\t\t\n\t\tXThrowIfError(mMapper->OpenMixer(fileFormat.mSampleRate), \"open mixer\");\n\t\tXThrowIfError(mMapper->ConfigureDownmix(), \"configure downmix\");\n\t\t\n\t\tAudioUnitConnection conn;\n\t\tconn.sourceAudioUnit = mMapper->GetMixer();\n\t\tconn.sourceOutputNumber = 0;\n\t\tconn.destInputNumber = 0;\n\n\t\tXThrowIfError(AudioUnitSetProperty(\n\t\t\t\t\t\t\t\tGetOutputUnit(),\n\t\t\t\t\t\t\t\tkAudioUnitProperty_MakeConnection,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t(void *)&conn,\n\t\t\t\t\t\t\t\tsizeof(AudioUnitConnection)), \"connect mixer to output unit\");\n\t\t\n\t\tAURenderCallbackStruct input;\n\t\tinput.inputProc = InputProc;\n\t\tinput.inputProcRefCon = this;\n\t\tXThrowIfError(AudioUnitSetProperty(\n\t\t\t\t\t\t\t\t\tconn.sourceAudioUnit, \n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_SetRenderCallback, \n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t&input, \n\t\t\t\t\t\t\t\t\tsizeof(input)), \"connect input proc to mixer\");\n\t\t// provide NO channel layout\n//\t\tmReadBuf = CABufferList::New(\"\", fileFormat);\n//\t\tmReadBuf->AllocateBuffers(\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAChannelMappingPlayer.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAChannelMappingPlayer.h\n\t\n=============================================================================*/\n\n#ifndef __CAChannelMappingPlayer_h__\n#define __CAChannelMappingPlayer_h__\n\n#include \"CAAudioFilePlayer.h\"\n#include \"CAChannelMapper.h\"\n\n// Specialization of CAAudioFilePlayer to perform channel remapping or downmixing.\nclass CAChannelMappingPlayer : public CAAudioFilePlayer {\npublic:\n\tCAChannelMappingPlayer(int nBuffers, UInt32 bufferSizeFrames);\n\t~CAChannelMappingPlayer();\n\n\t// CAAudioFilePlayer overrides:\n\tvirtual void\t\tSetupChannelMapping();\n\n\tCAChannelMapper *\t\tGetMapper() { return mMapper; }\n\nprivate:\n\tCAChannelMapper *\t\tmMapper;\n};\n\n\n#endif // __CAChannelMappingPlayer_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAGuard.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*==================================================================================================\n\tCAGuard.cpp\n\n==================================================================================================*/\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAGuard.h\"\n\n#if TARGET_OS_MAC\n\t#include <errno.h>\n#endif\n\n//\tPublicUtility Inludes\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n#include \"CAHostTimeBase.h\"\n\n//==================================================================================================\n//\tLogging\n//==================================================================================================\n\n#if CoreAudio_Debug\n//\t#define\tLog_Ownership\t\t1\n//\t#define\tLog_WaitOwnership\t1\n//\t#define\tLog_TimedWaits\t\t1\n//\t#define Log_Latency\t\t\t1\n//\t#define\tLog_Errors\t\t\t1\n#endif\n\n//#warning\t\tNeed a try-based Locker too\n//==================================================================================================\n//\tCAGuard\n//==================================================================================================\n\nCAGuard::CAGuard(const char* inName)\n:\n\tCAMutex(inName)\n#if\tLog_Average_Latency\n\t,mAverageLatencyAccumulator(0.0),\n\tmAverageLatencyCount(0)\n#endif\n{\n#if TARGET_OS_MAC\n\tOSStatus theError = pthread_cond_init(&mCondVar, NULL);\n\tThrowIf(theError != 0, CAException(theError), \"CAGuard::CAGuard: Could not init the cond var\");\n#elif TARGET_OS_WIN32\n\tmEvent = CreateEvent(NULL, true, false, NULL);\n\tThrowIfNULL(mEvent, CAException(GetLastError()), \"CAGuard::CAGuard: Could not create the event\");\n#endif\n}\n\nCAGuard::~CAGuard()\n{\n#if TARGET_OS_MAC\n\tpthread_cond_destroy(&mCondVar);\n#elif TARGET_OS_WIN32\n\tif(mEvent != NULL)\n\t{\n\t\tCloseHandle(mEvent);\n\t}\n#endif\n}\n\nvoid\tCAGuard::Wait()\n{\n#if TARGET_OS_MAC\n\tThrowIf(!pthread_equal(pthread_self(), mOwner), CAException(1), \"CAGuard::Wait: A thread has to have locked a guard before it can wait\");\n\n\tmOwner = 0;\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%p %.4f: CAGuard::Wait: thread %p is waiting on %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\tOSStatus theError = pthread_cond_wait(&mCondVar, &mMutex);\n\tThrowIf(theError != 0, CAException(theError), \"CAGuard::Wait: Could not wait for a signal\");\n\tmOwner = pthread_self();\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%p %.4f: CAGuard::Wait: thread %p waited on %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n#elif TARGET_OS_WIN32\n\tThrowIf(GetCurrentThreadId() != mOwner, CAException(1), \"CAGuard::Wait: A thread has to have locked a guard before it can wait\");\n\n\tmOwner = 0;\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%lu %.4f: CAGuard::Wait: thread %lu is waiting on %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\n\tReleaseMutex(mMutex);\n\tHANDLE theHandles[] = { mMutex, mEvent };\n\tOSStatus theError = WaitForMultipleObjects(2, theHandles, true, INFINITE);\n\tThrowIfError(theError, CAException(GetLastError()), \"CAGuard::Wait: Could not wait for the signal\");\n\tmOwner = GetCurrentThreadId();\n\tResetEvent(mEvent);\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%lu %.4f: CAGuard::Wait: thread %lu waited on %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n#endif\n}\n\nbool\tCAGuard::WaitFor(UInt64 inNanos)\n{\n\tbool theAnswer = false;\n\n#if TARGET_OS_MAC\n\tThrowIf(!pthread_equal(pthread_self(), mOwner), CAException(1), \"CAGuard::WaitFor: A thread has to have locked a guard be for it can wait\");\n\n\t#if\tLog_TimedWaits\n\t\tDebugMessageN1(\"CAGuard::WaitFor: waiting %.0f\", (Float64)inNanos);\n\t#endif\n\n\tstruct timespec\ttheTimeSpec;\n\tstatic const UInt64\tkNanosPerSecond = 1000000000ULL;\n\tif(inNanos > kNanosPerSecond)\n\t{\n\t\ttheTimeSpec.tv_sec = inNanos / kNanosPerSecond;\n\t\ttheTimeSpec.tv_nsec = inNanos % kNanosPerSecond;\n\t}\n\telse\n\t{\n\t\ttheTimeSpec.tv_sec = 0;\n\t\ttheTimeSpec.tv_nsec = inNanos;\n\t}\n\t\n\t#if\tLog_TimedWaits || Log_Latency || Log_Average_Latency\n\t\tUInt64\ttheStartNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t#endif\n\n\tmOwner = 0;\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%p %.4f: CAGuard::WaitFor: thread %p is waiting on %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\tOSStatus theError = pthread_cond_timedwait_relative_np(&mCondVar, &mMutex, &theTimeSpec);\n\tThrowIf((theError != 0) && (theError != ETIMEDOUT), CAException(theError), \"CAGuard::WaitFor: Wait got an error\");\n\tmOwner = pthread_self();\n\t\n\t#if\tLog_TimedWaits || Log_Latency || Log_Average_Latency\n\t\tUInt64\ttheEndNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t#endif\n\t\n\t#if\tLog_TimedWaits\n\t\tDebugMessageN1(\"CAGuard::WaitFor: waited  %.0f\", (Float64)(theEndNanos - theStartNanos));\n\t#endif\n\t\n\t#if\tLog_Latency\n\t\tDebugMessageN1(\"CAGuard::WaitFor: latency  %.0f\", (Float64)((theEndNanos - theStartNanos) - inNanos));\n\t#endif\n\t\n\t#if\tLog_Average_Latency\n\t\t++mAverageLatencyCount;\n\t\tmAverageLatencyAccumulator += (theEndNanos - theStartNanos) - inNanos;\n\t\tif(mAverageLatencyCount >= 50)\n\t\t{\n\t\t\tDebugMessageN2(\"CAGuard::WaitFor: average latency  %.3f ns over %ld waits\", mAverageLatencyAccumulator / mAverageLatencyCount, mAverageLatencyCount);\n\t\t\tmAverageLatencyCount = 0;\n\t\t\tmAverageLatencyAccumulator = 0.0;\n\t\t}\n\t#endif\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%p %.4f: CAGuard::WaitFor: thread %p waited on %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\ttheAnswer = theError == ETIMEDOUT;\n#elif TARGET_OS_WIN32\n\tThrowIf(GetCurrentThreadId() != mOwner, CAException(1), \"CAGuard::WaitFor: A thread has to have locked a guard be for it can wait\");\n\n\t#if\tLog_TimedWaits\n\t\tDebugMessageN1(\"CAGuard::WaitFor: waiting %.0f\", (Float64)inNanos);\n\t#endif\n\n\t//\tthe time out is specified in milliseconds(!)\n\tUInt32 theWaitTime = static_cast<UInt32>(inNanos / 1000000ULL);\n\n\t#if\tLog_TimedWaits || Log_Latency || Log_Average_Latency\n\t\tUInt64\ttheStartNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t#endif\n\n\tmOwner = 0;\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%lu %.4f: CAGuard::WaitFor: thread %lu is waiting on %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\t\n\tReleaseMutex(mMutex);\n\tHANDLE theHandles[] = { mMutex, mEvent };\n\tOSStatus theError = WaitForMultipleObjects(2, theHandles, true, theWaitTime);\n\tThrowIf((theError != WAIT_OBJECT_0) && (theError != WAIT_TIMEOUT), CAException(GetLastError()), \"CAGuard::WaitFor: Wait got an error\");\n\tmOwner = GetCurrentThreadId();\n\tResetEvent(mEvent);\n\t\n\t#if\tLog_TimedWaits || Log_Latency || Log_Average_Latency\n\t\tUInt64\ttheEndNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t#endif\n\t\n\t#if\tLog_TimedWaits\n\t\tDebugMessageN1(\"CAGuard::WaitFor: waited  %.0f\", (Float64)(theEndNanos - theStartNanos));\n\t#endif\n\t\n\t#if\tLog_Latency\n\t\tDebugMessageN1(\"CAGuard::WaitFor: latency  %.0f\", (Float64)((theEndNanos - theStartNanos) - inNanos));\n\t#endif\n\t\n\t#if\tLog_Average_Latency\n\t\t++mAverageLatencyCount;\n\t\tmAverageLatencyAccumulator += (theEndNanos - theStartNanos) - inNanos;\n\t\tif(mAverageLatencyCount >= 50)\n\t\t{\n\t\t\tDebugMessageN2(\"CAGuard::WaitFor: average latency  %.3f ns over %ld waits\", mAverageLatencyAccumulator / mAverageLatencyCount, mAverageLatencyCount);\n\t\t\tmAverageLatencyCount = 0;\n\t\t\tmAverageLatencyAccumulator = 0.0;\n\t\t}\n\t#endif\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%lu %.4f: CAGuard::WaitFor: thread %lu waited on %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\n\ttheAnswer = theError == WAIT_TIMEOUT;\n#endif\n\n\treturn theAnswer;\n}\n\nbool\tCAGuard::WaitUntil(UInt64 inNanos)\n{\n\tbool\ttheAnswer = false;\n\tUInt64\ttheCurrentNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t\n#if\tLog_TimedWaits\n\tDebugMessageN2(\"CAGuard::WaitUntil: now: %.0f, requested: %.0f\", (double)theCurrentNanos, (double)inNanos);\n#endif\n\t\n\tif(inNanos > theCurrentNanos)\n\t{\n#if Log_Errors\n\t\tif((inNanos - theCurrentNanos) > 1000000000ULL)\n\t\t{\n\t\t\tDebugMessage(\"CAGuard::WaitUntil: about to wait for more than a second\");\n\t\t}\n#endif\n\t\ttheAnswer = WaitFor(inNanos - theCurrentNanos);\n\t}\n#if\tLog_Errors\n\telse\n\t{\n\t\tDebugMessageN2(\"CAGuard::WaitUntil: Time has expired before waiting, now: %.0f, requested: %.0f\", (double)theCurrentNanos, (double)inNanos);\n\t}\n#endif\n\n\treturn theAnswer;\n}\n\nvoid\tCAGuard::Notify()\n{\n#if TARGET_OS_MAC\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%p %.4f: CAGuard::Notify: thread %p is notifying %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\tOSStatus theError = pthread_cond_signal(&mCondVar);\n\tThrowIf(theError != 0, CAException(theError), \"CAGuard::Notify: failed\");\n#elif TARGET_OS_WIN32\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%lu %.4f: CAGuard::Notify: thread %lu is notifying %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\t\n\tSetEvent(mEvent);\n#endif\n}\n\nvoid\tCAGuard::NotifyAll()\n{\n#if TARGET_OS_MAC\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%p %.4f: CAGuard::NotifyAll: thread %p is notifying %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\tOSStatus theError = pthread_cond_broadcast(&mCondVar);\n\tThrowIf(theError != 0, CAException(theError), \"CAGuard::NotifyAll: failed\");\n#elif TARGET_OS_WIN32\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFile, \"%lu %.4f: CAGuard::NotifyAll: thread %lu is notifying %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\t\n\tSetEvent(mEvent);\n#endif\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAGuard.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*==================================================================================================\n\tCAGuard.h\n\n==================================================================================================*/\n#if !defined(__CAGuard_h__)\n#define __CAGuard_h__\n\n//==================================================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSuper Class Includes\n#include \"CAMutex.h\"\n\n#if CoreAudio_Debug\n//\t#define\tLog_Average_Latency\t1\n#endif\n\n//==================================================================================================\n//\tCAGuard\n//\n//\tThis is your typical mutex with signalling implemented via pthreads.\n//\tLock() will return true if and only if the guard is locked on that call.\n//\tA thread that already has the guard will receive 'false' if it locks it\n//\tagain. Use of the stack-based CAGuard::Locker class is highly recommended\n//\tto properly manage the recursive nesting. The Wait calls with timeouts\n//\twill return true if and only if the timeout period expired. They will\n//\treturn false if they receive notification any other way.\n//==================================================================================================\n\nclass\tCAGuard : public CAMutex\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tCAGuard(const char* inName);\n\tvirtual\t\t\t~CAGuard();\n\n//\tActions\npublic:\n\tvirtual void\tWait();\n\tvirtual bool\tWaitFor(UInt64 inNanos);\n\tvirtual bool\tWaitUntil(UInt64 inNanos);\n\t\n\tvirtual void\tNotify();\n\tvirtual void\tNotifyAll();\n\n//\tImplementation\nprotected:\n#if TARGET_OS_MAC\n\tpthread_cond_t\tmCondVar;\n#else\n\tHANDLE\t\t\tmEvent;\n#endif\n#if\tLog_Average_Latency\n\tFloat64\t\t\tmAverageLatencyAccumulator;\n\tUInt32\t\t\tmAverageLatencyCount;\n#endif\n\t\n//\tHelper class to manage taking and releasing recursively\npublic:\n\tclass\t\t\tLocker\n\t{\n\t\n\t//\tConstruction/Destruction\n\tpublic:\n\t\t\t\t\tLocker(CAGuard& inGuard) : mGuard(inGuard), mNeedsRelease(false) { mNeedsRelease = mGuard.Lock(); }\n\t\t\t\t\t~Locker() { if(mNeedsRelease) { mGuard.Unlock(); } }\n\t\n\tprivate:\n\t\t\t\t\tLocker(const Locker&);\n\t\tLocker&\t\toperator=(const Locker&);\n\t\n\t//\tActions\n\tpublic:\n\t\tvoid\t\tWait() { mGuard.Wait(); }\n\t\tbool\t\tWaitFor(UInt64 inNanos) { return mGuard.WaitFor(inNanos); }\n\t\tbool\t\tWaitUntil(UInt64 inNanos) { return mGuard.WaitUntil(inNanos); }\n\t\t\n\t\tvoid\t\tNotify() { mGuard.Notify(); }\n\t\tvoid\t\tNotifyAll() { mGuard.NotifyAll(); }\n\n\t//\tImplementation\n\tprivate:\n\t\tCAGuard&\tmGuard;\n\t\tbool\t\tmNeedsRelease;\t\n\t};\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAPThread.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAPThread.cp\n\n=============================================================================*/\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSelf Include\n#include \"CAPThread.h\"\n\n//\tPublicUtility Includes\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n\n//\tSystem Includes\n#if\tTARGET_OS_MAC\n\t#include <mach/mach.h>\n#endif\n\n//\tStandard Library Includes\n#include <stdio.h>\n\n//==================================================================================================\n//\tCAPThread\n//==================================================================================================\n\n// returns the thread's priority as it was last set by the API\n#define CAPTHREAD_SET_PRIORITY\t\t\t\t0\n// returns the thread's priority as it was last scheduled by the Kernel\n#define CAPTHREAD_SCHEDULED_PRIORITY\t\t1\n\nCAPThread::CAPThread(ThreadRoutine inThreadRoutine, void* inParameter, UInt32 inPriority, bool inFixedPriority)\n:\n#if TARGET_OS_MAC\n\tmPThread(0),\n    mSpawningThreadPriority(getScheduledPriority(pthread_self(), CAPTHREAD_SET_PRIORITY)),\n#elif TARGET_OS_WIN32\n\tmThreadHandle(NULL),\n\tmThreadID(0),\n#endif\n\tmThreadRoutine(inThreadRoutine),\n\tmThreadParameter(inParameter),\n\tmPriority(inPriority),\n\tmPeriod(0),\n\tmComputation(0),\n\tmConstraint(0),\n\tmIsPreemptible(true),\n\tmTimeConstraintSet(false),\n\tmFixedPriority(inFixedPriority)\n{\n}\n\nCAPThread::CAPThread(ThreadRoutine inThreadRoutine, void* inParameter, UInt32 inPeriod, UInt32 inComputation, UInt32 inConstraint, bool inIsPreemptible)\n:\n#if TARGET_OS_MAC\n\tmPThread(0),\n    mSpawningThreadPriority(getScheduledPriority(pthread_self(), CAPTHREAD_SET_PRIORITY)),\n#elif TARGET_OS_WIN32\n\tmThreadHandle(NULL),\n\tmThreadID(0),\n#endif\n\tmThreadRoutine(inThreadRoutine),\n\tmThreadParameter(inParameter),\n\tmPriority(kDefaultThreadPriority),\n\tmPeriod(inPeriod),\n\tmComputation(inComputation),\n\tmConstraint(inConstraint),\n\tmIsPreemptible(inIsPreemptible),\n\tmTimeConstraintSet(true),\n\tmFixedPriority(false)\n{\n}\n\nCAPThread::~CAPThread()\n{\n}\n\nUInt32\tCAPThread::GetScheduledPriority()\n{\n#if TARGET_OS_MAC\n    return CAPThread::getScheduledPriority( mPThread, CAPTHREAD_SCHEDULED_PRIORITY );\n#elif TARGET_OS_WIN32\n\tUInt32 theAnswer = 0;\n\tif(mThreadHandle != NULL)\n\t{\n\t\ttheAnswer = GetThreadPriority(mThreadHandle);\n\t}\n\treturn theAnswer;\n#endif\n}\n\nvoid\tCAPThread::SetPriority(UInt32 inPriority, bool inFixedPriority)\n{\n\tmPriority = inPriority;\n\tmTimeConstraintSet = false;\n\tmFixedPriority = inFixedPriority;\n#if TARGET_OS_MAC\n\tif(mPThread != 0)\n\t{\n\t\t\n\t\tif (mFixedPriority)\n\t\t{\n\t\t\tthread_extended_policy_data_t\t\ttheFixedPolicy;\n\t\t\ttheFixedPolicy.timeshare = false;\t// set to true for a non-fixed thread\n\t\t\tAssertNoError(thread_policy_set(pthread_mach_thread_np(mPThread), THREAD_EXTENDED_POLICY, (thread_policy_t)&theFixedPolicy, THREAD_EXTENDED_POLICY_COUNT), \"CAPThread::SetPriority: failed to set the fixed-priority policy\");\n\t\t}\n        // We keep a reference to the spawning thread's priority around (initialized in the constructor), \n        // and set the importance of the child thread relative to the spawning thread's priority.\n        thread_precedence_policy_data_t\t\tthePrecedencePolicy;\n        \n        thePrecedencePolicy.importance = mPriority - mSpawningThreadPriority;\n        AssertNoError(thread_policy_set(pthread_mach_thread_np(mPThread), THREAD_PRECEDENCE_POLICY, (thread_policy_t)&thePrecedencePolicy, THREAD_PRECEDENCE_POLICY_COUNT), \"CAPThread::SetPriority: failed to set the precedence policy\");\n    } \n#elif TARGET_OS_WIN32\n\tif(mThreadHandle != NULL)\n\t{\n\t\tSetThreadPriority(mThreadHandle, mPriority);\n\t}\n#endif\n}\n\nvoid\tCAPThread::SetTimeConstraints(UInt32 inPeriod, UInt32 inComputation, UInt32 inConstraint, bool inIsPreemptible)\n{\n\tmPeriod = inPeriod;\n\tmComputation = inComputation;\n\tmConstraint = inConstraint;\n\tmIsPreemptible = inIsPreemptible;\n\tmTimeConstraintSet = true;\n#if TARGET_OS_MAC\n\tif(mPThread != 0)\n\t{\n\t\tthread_time_constraint_policy_data_t thePolicy;\n\t\tthePolicy.period = mPeriod;\n\t\tthePolicy.computation = mComputation;\n\t\tthePolicy.constraint = mConstraint;\n\t\tthePolicy.preemptible = mIsPreemptible;\n\t\tAssertNoError(thread_policy_set(pthread_mach_thread_np(mPThread), THREAD_TIME_CONSTRAINT_POLICY, (thread_policy_t)&thePolicy, THREAD_TIME_CONSTRAINT_POLICY_COUNT), \"CAPThread::SetTimeConstraints: thread_policy_set failed\");\n\t}\n#elif TARGET_OS_WIN32\n\tif(mThreadHandle != NULL)\n\t{\n\t\tSetThreadPriority(mThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);\n\t}\n#endif\n}\n\nvoid\tCAPThread::Start()\n{\n#if TARGET_OS_MAC\n\tif(mPThread == 0)\n\t{\n\t\tOSStatus\t\t\ttheResult;\n\t\tpthread_attr_t\t\ttheThreadAttributes;\n\t\t\n\t\ttheResult = pthread_attr_init(&theThreadAttributes);\n\t\tThrowIf(theResult != 0, CAException(theResult), \"CAPThread::Start: Thread attributes could not be created.\");\n\t\t\n\t\ttheResult = pthread_attr_setdetachstate(&theThreadAttributes, PTHREAD_CREATE_DETACHED);\n\t\tThrowIf(theResult != 0, CAException(theResult), \"CAPThread::Start: A thread could not be created in the detached state.\");\n\t\t\n\t\ttheResult = pthread_create(&mPThread, &theThreadAttributes, (ThreadRoutine)CAPThread::Entry, this);\n\t\tThrowIf(theResult != 0 || !mPThread, CAException(theResult), \"CAPThread::Start: Could not create a thread.\");\n\t\t\n\t\tpthread_attr_destroy(&theThreadAttributes);\n\t\t\n\t}\n#elif TARGET_OS_WIN32\n\tif(mThreadID == 0)\n\t{\n\t\t//\tclean up the existing thread handle\n\t\tif(mThreadHandle != NULL)\n\t\t{\n\t\t\tCloseHandle(mThreadHandle);\n\t\t\tmThreadHandle = NULL;\n\t\t}\n\t\t\n\t\t//\tcreate a new thread\n\t\tmThreadHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Entry, this, 0, &mThreadID);\n\t\tThrowIf(mThreadHandle == NULL, CAException(GetLastError()), \"CAPThread::Start: Could not create a thread.\");\n\t}\n#endif\n}\n\n#if TARGET_OS_MAC\n\nvoid*\tCAPThread::Entry(CAPThread* inCAPThread)\n{\n\tvoid* theAnswer = NULL;\n\n\ttry \n\t{\n\t\tif(inCAPThread->mTimeConstraintSet)\n\t\t{\n\t\t\tinCAPThread->SetTimeConstraints(inCAPThread->mPeriod, inCAPThread->mComputation, inCAPThread->mConstraint, inCAPThread->mIsPreemptible);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tinCAPThread->SetPriority(inCAPThread->mPriority, inCAPThread->mFixedPriority);\n\t\t}\n\n\t\tif(inCAPThread->mThreadRoutine != NULL)\n\t\t{\n\t\t\ttheAnswer = inCAPThread->mThreadRoutine(inCAPThread->mThreadParameter);\n\t\t}\n\t}\n\tcatch (...)\n\t{\n\t\t// what should be done here?\n\t}\n\tinCAPThread->mPThread = 0;\n\treturn theAnswer;\n}\n\nUInt32 CAPThread::getScheduledPriority(pthread_t inThread, int inPriorityKind)\n{\n    thread_basic_info_data_t\t\t\tthreadInfo;\n\tpolicy_info_data_t\t\t\t\t\tthePolicyInfo;\n\tunsigned int\t\t\t\t\t\tcount;\n\n\tif (inThread == NULL)\n\t\treturn 0;\n    \n    // get basic info\n    count = THREAD_BASIC_INFO_COUNT;\n    thread_info (pthread_mach_thread_np (inThread), THREAD_BASIC_INFO, (thread_info_t)&threadInfo, &count);\n    \n\tswitch (threadInfo.policy) {\n\t\tcase POLICY_TIMESHARE:\n\t\t\tcount = POLICY_TIMESHARE_INFO_COUNT;\n\t\t\tthread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_TIMESHARE_INFO, (thread_info_t)&(thePolicyInfo.ts), &count);\n            if (inPriorityKind == CAPTHREAD_SCHEDULED_PRIORITY) {\n                return thePolicyInfo.ts.cur_priority;\n            }\n            return thePolicyInfo.ts.base_priority;\n            break;\n            \n        case POLICY_FIFO:\n\t\t\tcount = POLICY_FIFO_INFO_COUNT;\n\t\t\tthread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_FIFO_INFO, (thread_info_t)&(thePolicyInfo.fifo), &count);\n            if ( (thePolicyInfo.fifo.depressed) && (inPriorityKind == CAPTHREAD_SCHEDULED_PRIORITY) ) {\n                return thePolicyInfo.fifo.depress_priority;\n            }\n            return thePolicyInfo.fifo.base_priority;\n            break;\n            \n\t\tcase POLICY_RR:\n\t\t\tcount = POLICY_RR_INFO_COUNT;\n\t\t\tthread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_RR_INFO, (thread_info_t)&(thePolicyInfo.rr), &count);\n\t\t\tif ( (thePolicyInfo.rr.depressed) && (inPriorityKind == CAPTHREAD_SCHEDULED_PRIORITY) ) {\n                return thePolicyInfo.rr.depress_priority;\n            }\n            return thePolicyInfo.rr.base_priority;\n            break;\n\t}\n    \n    return 0;\n}\n\n#elif TARGET_OS_WIN32\n\nUInt32 WINAPI\tCAPThread::Entry(CAPThread* inCAPThread)\n{\n\tUInt32 theAnswer = 0;\n\n\ttry \n\t{\n\t\tif(inCAPThread->mTimeConstraintSet)\n\t\t{\n\t\t\tinCAPThread->SetTimeConstraints(inCAPThread->mPeriod, inCAPThread->mComputation, inCAPThread->mConstraint, inCAPThread->mIsPreemptible);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tinCAPThread->SetPriority(inCAPThread->mPriority, inCAPThread->mFixedPriority);\n\t\t}\n\n\t\tif(inCAPThread->mThreadRoutine != NULL)\n\t\t{\n\t\t\ttheAnswer = reinterpret_cast<UInt32>(inCAPThread->mThreadRoutine(inCAPThread->mThreadParameter));\n\t\t}\n\t\tinCAPThread->mThreadID = 0;\n\t}\n\tcatch (...)\n\t{\n\t\t// what should be done here?\n\t}\n\treturn theAnswer;\n}\n\n//\ta definition of this function here for now\nextern \"C\"\nBoolean CompareAndSwap(UInt32 inOldValue, UInt32 inNewValue, UInt32* inOldValuePtr)\n{\n\treturn InterlockedCompareExchange((volatile LONG*)inOldValuePtr, inNewValue, inOldValue) == inOldValue;\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/CAPThread.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*==================================================================================================\n\tCAPThread.h\n\n==================================================================================================*/\n#if !defined(__CAPThread_h__)\n#define __CAPThread_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n#if TARGET_OS_MAC\n\t#include <pthread.h>\n\t#include <unistd.h>\n#elif TARGET_OS_WIN32\n\t#include <windows.h>\n#else\n\t#error\tUnsupported operating system\n#endif\n\n//==================================================================================================\n//\tCAPThread\n//\n//\tThis class wraps a pthread and a Win32 thread.\n//\tcaution: long-running fixed priority threads can make the system unresponsive\n//==================================================================================================\n\nclass\tCAPThread\n{\n\n//\tTypes\npublic:\n\ttypedef void*\t\t\t(*ThreadRoutine)(void* inParameter);\n\n//\tConstants\npublic:\n\tenum\n\t{\n#if\tTARGET_OS_MAC\n\t\t\t\t\t\t\tkMinThreadPriority = 1,\n\t\t\t\t\t\t\tkMaxThreadPriority = 63,\n\t\t\t\t\t\t\tkDefaultThreadPriority = 31\n#elif TARGET_OS_WIN32\n\t\t\t\t\t\t\tkMinThreadPriority = 1,\n\t\t\t\t\t\t\tkMaxThreadPriority = 31,\n\t\t\t\t\t\t\tkDefaultThreadPriority = THREAD_PRIORITY_NORMAL\n#endif\n\t};\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\tCAPThread(ThreadRoutine inThreadRoutine, void* inParameter, UInt32 inPriority = kDefaultThreadPriority, bool inFixedPriority=false);\n\t\t\t\t\t\t\tCAPThread(ThreadRoutine inThreadRoutine, void* inParameter, UInt32 inPeriod, UInt32 inComputation, UInt32 inConstraint, bool inIsPreemptible);\n\tvirtual\t\t\t\t\t~CAPThread();\n\n//\tProperties\npublic:\n#if TARGET_OS_MAC\n\tpthread_t\t\t\t\tGetPThread() const { return mPThread; }\n\tbool\t\t\t\t\tIsCurrentThread() const { return (0 != mPThread) && (pthread_self() == mPThread); }\n\tbool\t\t\t\t\tIsRunning() const { return 0 != mPThread; }\n#elif TARGET_OS_WIN32\n\tHANDLE\t\t\t\t\tGetThreadHandle() const { return mThreadHandle; }\n\tUInt32\t\t\t\t\tGetThreadID() const { return mThreadID; }\n\tbool\t\t\t\t\tIsCurrentThread() const { return (0 != mThreadID) && (GetCurrentThreadId() == mThreadID); }\n\tbool\t\t\t\t\tIsRunning() const { return 0 != mThreadID; }\n#endif\n\n\tbool\t\t\t\t\tIsTimeShareThread() const { return !mTimeConstraintSet; }\n\tbool\t\t\t\t\tIsTimeConstraintThread() const { return mTimeConstraintSet; }\n\n\tUInt32\t\t\t\t\tGetPriority() const { return mPriority; }\n    UInt32\t\t\t\t\tGetScheduledPriority();\n    void\t\t\t\t\tSetPriority(UInt32 inPriority, bool inFixedPriority=false);\n\n\tvoid\t\t\t\t\tGetTimeConstraints(UInt32& outPeriod, UInt32& outComputation, UInt32& outConstraint, bool& outIsPreemptible) const { outPeriod = mPeriod; outComputation = mComputation; outConstraint = mConstraint; outIsPreemptible = mIsPreemptible; }\n\tvoid\t\t\t\t\tSetTimeConstraints(UInt32 inPeriod, UInt32 inComputation, UInt32 inConstraint, bool inIsPreemptible);\n\tvoid\t\t\t\t\tClearTimeConstraints() { SetPriority(mPriority); }\n\t\t\n//\tActions\npublic:\n\tvirtual void\t\t\tStart();\n\n//\tImplementation\nprotected:\n#if TARGET_OS_MAC\n\tstatic void*\t\t\tEntry(CAPThread* inCAPThread);\n    static UInt32\t\t\tgetScheduledPriority(pthread_t inThread, int inPriorityKind);\n#elif TARGET_OS_WIN32\n\tstatic UInt32 WINAPI\tEntry(CAPThread* inCAPThread);\n#endif\n\n#if\tTARGET_OS_MAC\n\tpthread_t\t\t\t\tmPThread;\n    UInt32\t\t\t\t\tmSpawningThreadPriority;\n#elif TARGET_OS_WIN32\n\tHANDLE\t\t\t\t\tmThreadHandle;\n\tUInt32\t\t\t\t\tmThreadID;\n#endif\n\tThreadRoutine\t\t\tmThreadRoutine;\n\tvoid*\t\t\t\t\tmThreadParameter;\n\tSInt32\t\t\t\t\tmPriority;\n\tUInt32\t\t\t\t\tmPeriod;\n\tUInt32\t\t\t\t\tmComputation;\n\tUInt32\t\t\t\t\tmConstraint;\n\tbool\t\t\t\t\tmIsPreemptible;\n\tbool\t\t\t\t\tmTimeConstraintSet;\n    bool\t\t\t\t\tmFixedPriority;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/PublicUtility/ReadMe.rtf",
    "content": "{\\rtf1\\mac\\ansicpg10000\\cocoartf102\n{\\fonttbl\\f0\\fswiss\\fcharset77 Helvetica;\\f1\\fnil\\fcharset77 Monaco;}\n{\\colortbl;\\red255\\green255\\blue255;\\red104\\green56\\blue33;}\n\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\n\n\\f0\\fs36 \\cf0 AudioFile-new\\\n\\\n\n\\fs24 This folder contains new classes for working with audio files, using the AudioToolbox AudioFile and AudioConverter API's. It is currently a work in progress. Some command-line tools using these classes are in the AudioFileTools sample project.\\\n\\\nCAAudioFile has been reworked to optionally use the new ExtendedAudioFile API in Tiger. The functionality is essentially the same but a number of method names have been changed. To use the provided Panther-compatible implementation instead of requiring ExtendedAudioFile, define \n\\f1\\fs18 \\cf2 \\CocoaLigature0 CAAF_USE_EXTAUDIOFILE \n\\f0\\fs24 \\cf0 \\CocoaLigature1 to 1.\\\n\\\nThe main classes are:\\\n\\\nCAAudioFile - wraps an AudioFile in an AudioConverter. The client specifies a PCM format to be used when reading/writing from the file, and the class performs any necessary decoding/encoding transparently. Be aware that most methods of this class may throw exceptions.\\\n\\\nCAAudioFileStreamer / CAAudioFileReader / CAAudioFileWriter - perfom asynchronous streaming of CAAudioFiles on a separate work thread for file I/O and decoding.These classes don't actually connect to the audio hardware.\\\n\\\nCAAudioFilePlayer / CAAudioFileRecorder - Subclasses of CAAudioFileReader / CAAudioFileWriter which use audio \"output\" (now I/O) units to actually play and recorder the audio.\\\n\\\nCAChannelMapper - uses the matrix mixer audio unit for converting (downmixing if necessary) between audio channel layouts.\\\n\\\nThe other classes are support classes for the above.\\\n}"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/ReadMe.rtf",
    "content": "{\\rtf1\\mac\\ansicpg10000\\cocoartf824\\cocoasubrtf100\n{\\fonttbl\\f0\\fswiss\\fcharset77 Helvetica;\\f1\\fmodern\\fcharset77 Courier;\\f2\\fswiss\\fcharset77 Helvetica-Bold;\n}\n{\\colortbl;\\red255\\green255\\blue255;}\n\\vieww12420\\viewh14680\\viewkind0\n\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\ql\\qnatural\n\n\\f0\\fs36 \\cf0 AudioFileTools\\\n\n\\fs24 \\\nThis project contains a collection of sample command-line tools that demonstrate use of the AudioFile, AudioConverter, AudioFormat, and AudioUnit APIs. Most make heavy use of the CAAudioFile class (in PublicUtility/AudioFile-new).\\\n\\\nNote that CAAudioFile.h is conditionalized with \n\\f1 \\CocoaLigature0 CAAF_USE_EXTAUDIOFILE\n\\f0 \\CocoaLigature1 . If this symbol is defined and non-zero, the CAAudioFile implementation uses the ExtendedAudioFile API set introduced in Tiger. Otherwise, CAAudioFile carries its own similar implementation, which is deployable on Panther systems. If your build environment does not define this symbol, the header automatically defines it based on the Mac OS deployment build settings. The \"-Tiger+\" build styles in this project define the Mac OS deployment target to 10.4 and will thus use ExtendedAudioFile. The \"-Panther\" build styles do not define a Mac OS deployment target and thus do not use ExtendedAudioFile.\\\n\\\nThe tools include:\\\n\\\n\n\\f2\\b afconvert\n\\f0\\b0  - reads one audio file, writes it to another format. Good example of the power of CAAudioFile and use of the AudioConverter for codecs.\\\n\\\n\n\\f2\\b afinterleave\n\\f0\\b0  - creates an interleaved file from 2 or more input files\\\n\\\n\n\\f2\\b afplay\n\\f0\\b0  - plays an audio file (can be encoded)\\\n\\\n\n\\f2\\b afrecord\n\\f0\\b0  - records an audio file (record format is hardcoded)\\\n\\\n\n\\f2\\b audioformats\n\\f0\\b0  - demonstrates some uses of the AudioFormat and AudioFile APIs.\\\n\\\n\n\\f2\\b qtaacdecode\n\\f0\\b0  - this has been removed. Please see the QT SDK's examples for using their AudioExtraction API\\\n\\\n\n\\f2\\b auprocess\n\\f0\\b0  - processes an audio file with an Audio Unit and generates a new file. Illustrates the usage of the CAAUProcessor class, which presents a wrapper class around using any AU in either a real-time or offline context}"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/AFToolsCommon.cpp",
    "content": "/*\tCopyright: \t� Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apple�s\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tAFToolsCommon.cpp\n\t\n=============================================================================*/\n\n#include \"AFToolsCommon.h\"\n#include \"CAAudioFileFormats.h\"\n#include <ctype.h>\n#include <CarbonCore/Endian.h>\n\n\n/*\nstruct AudioStreamBasicDescription\n{\n\tFloat64\tmSampleRate;\t\t//\tthe native sample rate of the audio stream\n\tUInt32\tmFormatID;\t\t\t//\tthe specific encoding type of audio stream\n\tUInt32\tmFormatFlags;\t\t//\tflags specific to each format\n\tUInt32\tmBytesPerPacket;\t//\tthe number of bytes in a packet\n\tUInt32\tmFramesPerPacket;\t//\tthe number of frames in each packet\n\tUInt32\tmBytesPerFrame;\t\t//\tthe number of bytes in a frame\n\tUInt32\tmChannelsPerFrame;\t//\tthe number of channels in each frame\n\tUInt32\tmBitsPerChannel;\t//\tthe number of bits in each channel\n\tUInt32\tmReserved;\t\t\t//\treserved, pads the structure out to force 8 byte alignment\n};\n*/\nbool ParseStreamDescription(const char *inTextDesc, CAStreamBasicDescription &fmt)\n{\n\tconst char *p = inTextDesc;\n\tint bitdepth = 0;\n\tCAAudioFileFormats *theFileFormats = CAAudioFileFormats::Instance();\n\t\n\tmemset(&fmt, 0, sizeof(fmt));\n\tOSType formatID;\n\tint x;\n\tif (strchr(\"-@/#\", p[3])) {\n\t\t// special-case for 3-char format ID's ending with a space\n\t\tchar fmtstr[4];\n\t\tmemcpy(fmtstr, p, 3);\n\t\tfmtstr[3] = ' ';\n\t\tformatID = EndianU32_BtoN(*(UInt32 *)fmtstr);\n\t\tx = 3;\n\t} else {\n\t\tx = StrToOSType(p, formatID);\n\t}\n\tif (theFileFormats->IsKnownDataFormat(formatID)) {\n\t\tp += x;\n\t\tfmt.mFormatID = formatID;\n\t\tif (*p == '-') {\n\t\t\t++p;\n\t\t\tbitdepth = 0;\n\t\t\twhile (isdigit(*p))\n\t\t\t\tbitdepth = 10 * bitdepth + *p++ - '0';\n\t\t\tfmt.mBitsPerChannel = bitdepth;\n\t\t}\n\t}\n\t\n\tif (fmt.mFormatID == 0) {\n\t\t// unknown format, assume LPCM\n\t\tif (p[0] == '-')\t// previously we required a leading dash on PCM formats\n\t\t\t// pcm\n\t\t\t++p;\n\t\tfmt.mFormatID = kAudioFormatLinearPCM;\n\t\tfmt.mFormatFlags = kAudioFormatFlagIsPacked;\n\t\tfmt.mFramesPerPacket = 1;\n\t\tfmt.mChannelsPerFrame = 1;\n\t\tbool isUnsigned = false;\n\t\n\t\tif (p[0] == 'B' && p[1] == 'E') {\n\t\t\tfmt.mFormatFlags |= kLinearPCMFormatFlagIsBigEndian;\n\t\t\tp += 2;\n\t\t} else if (p[0] == 'L' && p[1] == 'E') {\n\t\t\tp += 2;\n\t\t} else {\n\t\t\t// default is native-endian\n#if TARGET_RT_BIG_ENDIAN\n\t\t\tfmt.mFormatFlags |= kLinearPCMFormatFlagIsBigEndian;\n#endif\n\t\t}\n\t\tif (p[0] == 'F') {\n\t\t\tfmt.mFormatFlags |= kAudioFormatFlagIsFloat;\n\t\t\t++p;\n\t\t} else {\n\t\t\tif (p[0] == 'U') {\n\t\t\t\tisUnsigned = true;\n\t\t\t\t++p;\n\t\t\t}\n\t\t\tif (p[0] == 'I')\n\t\t\t\t++p;\n\t\t\telse {\n\t\t\t\tfprintf(stderr, \"The format '%s' is unknown or an unparseable PCM format specifier\\n\", inTextDesc);\n\t\t\t\tgoto Bail;\n\t\t\t}\n\t\t}\n\t\t\n\t\twhile (isdigit(*p))\n\t\t\tbitdepth = 10 * bitdepth + *p++ - '0';\n\t\tif (fmt.mFormatFlags & kAudioFormatFlagIsFloat) {\n\t\t\tif (bitdepth != 32 && bitdepth != 64) {\n\t\t\t\tfprintf(stderr, \"Valid float bitdepths are 32 and 64\\n\");\n\t\t\t\tgoto Bail;\n\t\t\t}\n\t\t} else {\n\t\t\tif (bitdepth != 8 && bitdepth != 16 && bitdepth != 24 && bitdepth != 32) {\n\t\t\t\tfprintf(stderr, \"Valid integer bitdepths are 8, 16, 24, and 32\\n\");\n\t\t\t\tgoto Bail;\n\t\t\t}\n\t\t\tif (!isUnsigned)\n\t\t\t\tfmt.mFormatFlags |= kAudioFormatFlagIsSignedInteger;\n\t\t}\n\t\tfmt.mBitsPerChannel = bitdepth;\n\t\tfmt.mBytesPerPacket = fmt.mBytesPerFrame = bitdepth / 8;\n\t}\n\tif (*p == '@') {\n\t\t++p;\n\t\twhile (isdigit(*p))\n\t\t\tfmt.mSampleRate = 10 * fmt.mSampleRate + (*p++ - '0');\n\t}\n\tif (*p == '/') {\n\t\tUInt32 flags = 0;\n\t\twhile (true) {\n\t\t\tchar c = *++p;\n\t\t\tif (c >= '0' && c <= '9')\n\t\t\t\tflags = (flags << 4) | (c - '0');\n\t\t\telse if (c >= 'A' && c <= 'F')\n\t\t\t\tflags = (flags << 4) | (c - 'A' + 10);\n\t\t\telse if (c >= 'a' && c <= 'f')\n\t\t\t\tflags = (flags << 4) | (c - 'a' + 10);\n\t\t\telse break;\n\t\t}\n\t\tfmt.mFormatFlags = flags;\n\t}\n\tif (*p == '#') {\n\t\t++p;\n\t\twhile (isdigit(*p))\n\t\t\tfmt.mFramesPerPacket = 10 * fmt.mFramesPerPacket + (*p++ - '0');\n\t}\n\tif (*p != '\\0')\n\t\tgoto Bail;\n\treturn true;\n\nBail:\n\tfprintf(stderr, \"Invalid format string: %s\\n\", inTextDesc);\n\tfprintf(stderr, \"Syntax of format strings is: [-][BE|LE]{F|I|UI}{8|16|24|32|64}[@sample_rate_hz][/format_flags]\\n\");\n\treturn false;\n}\n\nvoid\tPrintAudioFileTypesAndFormats(FILE *outfile)\n{\n\tCAAudioFileFormats *theFileFormats = CAAudioFileFormats::Instance();\n\n\tfor (int i = 0; i < theFileFormats->mNumFileFormats; ++i) {\n\t\tCAAudioFileFormats::FileFormatInfo *ffi = &theFileFormats->mFileFormats[i];\n\t\t\n\t\tint j;\n\t\tchar buf[20];\n\t\tchar fmtName[256] = { 0 };\n\t\tif (ffi->mFileTypeName)\n\t\t\tCFStringGetCString(ffi->mFileTypeName, fmtName, sizeof(fmtName), kCFStringEncodingUTF8);\n\t\tfprintf(outfile, \"        '%s' = %s\", OSTypeToStr(buf, sizeof(buf), ffi->mFileTypeID), fmtName);\n\t\t\n\t\tint next = ffi->NumberOfExtensions();\n\t\tif (next > 0) {\n\t\t\tfprintf(outfile, \" (\");\n\t\t\tfor (j = 0; j < next; ++j) {\n\t\t\t\tif (j > 0) fprintf(outfile, \", \");\n\t\t\t\tfprintf(outfile, \".%s\", ffi->GetExtension(j, buf, sizeof(buf)));\n\t\t\t}\n\t\t\tfprintf(outfile, \")\");\n\t\t}\n\t\t\n\t\tfprintf(outfile, \"\\n                   data_formats: \");\n\t\tint count = 0;\n\t\tfor (j = 0; j < ffi->mNumDataFormats; ++j) {\n\t\t\tCAAudioFileFormats::DataFormatInfo *dfi = &ffi->mDataFormats[j];\n\t\t\tif (dfi->mFormatID == kAudioFormatLinearPCM) {\n\t\t\t\tfor (int k = 0; k < dfi->mNumVariants; ++k) {\n\t\t\t\t\tif (++count == 6) {\n\t\t\t\t\t\tfprintf(outfile, \"\\n                                 \");\n\t\t\t\t\t\tcount = 0;\n\t\t\t\t\t}\n\t\t\t\t\tAudioStreamBasicDescription *asbd = &dfi->mVariants[k];\n\t\t\t\t\tif (asbd->mFormatFlags & ~(kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsFloat))\n\t\t\t\t\t\tfprintf(outfile, \"(%08lx/%ld) \", asbd->mFormatFlags, asbd->mBitsPerChannel);\n\t\t\t\t\telse {\n\t\t\t\t\t\tfprintf(outfile, \"%s\",\n\t\t\t\t\t\t\t(asbd->mFormatFlags & kAudioFormatFlagIsBigEndian) ? \"BE\" : \"LE\");\n\t\t\t\t\t\tif (asbd->mFormatFlags & kAudioFormatFlagIsFloat)\n\t\t\t\t\t\t\tfprintf(outfile, \"F\");\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tfprintf(outfile, \"%sI\",\n\t\t\t\t\t\t\t\t(asbd->mFormatFlags & kAudioFormatFlagIsSignedInteger) ? \"\" : \"U\");\n\t\t\t\t\t\tfprintf(outfile, \"%ld \", asbd->mBitsPerChannel);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (++count == 6) {\n\t\t\t\t\tfprintf(outfile, \"\\n                                 \");\n\t\t\t\t\tcount = 0;\n\t\t\t\t}\n\t\t\t\tfprintf(outfile, \"'%s' \", OSTypeToStr(buf, sizeof(buf), dfi->mFormatID));\n\t\t\t}\n\t\t}\n\t\tfprintf(outfile, \"\\n\");\n\t}\n}\n\n#if 0\nchar *OSTypeToStr(char *buf, OSType t)\n{\n\tchar *p = buf;\n\tchar str[4], *q = str;\n\t*(UInt32 *)str = EndianU32_NtoB(t);\n\tfor (int i = 0; i < 4; ++i) {\n\t\tif (isprint(*q) && *q != '\\\\')\n\t\t\t*p++ = *q++;\n\t\telse {\n\t\t\tsprintf(p, \"\\\\x%02x\", *q++);\n\t\t\tp += 4;\n\t\t}\n\t}\n\t*p = '\\0';\n\treturn buf;\n}\n\nint\t\tStrToOSType(const char *str, OSType &t)\n{\n\tchar buf[4];\n\tconst char *p = str;\n\tint x;\n\tfor (int i = 0; i < 4; ++i) {\n\t\tif (*p != '\\\\') {\n\t\t\tif ((buf[i] = *p++) == '\\0')\n\t\t\t\tgoto fail;\n\t\t} else {\n\t\t\tif (*++p != 'x') goto fail;\n\t\t\tif (sscanf(++p, \"%02X\", &x) != 1) goto fail;\n\t\t\tbuf[i] = x;\n\t\t\tp += 2;\n\t\t}\n\t}\n\tt = EndianU32_BtoN(*(UInt32 *)buf);\n\treturn p - str;\nfail:\n\treturn 0;\n}\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/AFToolsCommon.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tAFToolsCommon.h\n\t\n=============================================================================*/\n\n#ifndef __AFToolsCommon_h__\n#define __AFToolsCommon_h__\n\n// Various utility functions appropriate for reuse in Core Audio command-line tools\n\n#include <stdio.h>\n#include \"CAStreamBasicDescription.h\"\n\nbool\tParseStreamDescription(const char *inTextDesc, CAStreamBasicDescription &fmt);\n\t\t\t// parse a textual representation of an AudioStreamBasicDescription\nvoid\tPrintAudioFileTypesAndFormats(FILE *outfile);\n\n// utilities to convert OSType's to and from printable strings\n// buffer should be at least 17 bytes\n\n\n#endif // __AFToolsCommon_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/CAAudioFileConverter.cpp",
    "content": "/*\tCopyright: \t� Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apple�s\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFileConverter.cpp\n\t\n=============================================================================*/\n\n#include \"CAAudioFileConverter.h\"\n#include \"CAChannelLayouts.h\"\n#include <sys/stat.h>\n#include <algorithm>\n#include \"CAXException.h\"\n#include \"CAFilePathUtils.h\"\n#if !TARGET_OS_MAC\t\n\t#include <AudioCodec.h>\n#endif\n\nchar* dirname(const char* str)\n{\n\tstatic char buffer[4096];\n\tstrcpy(buffer, str);\n\treturn dirname(buffer);\n}\nchar* basename(const char* str)\n{\n\tstatic char buffer[4096];\n\tstrcpy(buffer, str);\n\treturn basename(buffer);\n}\n\nCAAudioFileConverter::ConversionParameters::ConversionParameters() :\n\tflags(0)\n{\n\tmemset(&input, 0, sizeof(input));\n\tmemset(&output, 0, sizeof(output));\n\toutput.channels = -1;\n\toutput.bitRate = -1;\n\toutput.codecQuality = -1;\n\toutput.srcQuality = -1;\n\toutput.strategy = -1;\n\toutput.primeMethod = -1;\n}\n\nCAAudioFileConverter::CAAudioFileConverter() :\n\tmReadBuffer(NULL),\n\tmReadPtrs(NULL)\n{\n\tmOutName[0] = '\\0';\n}\n\nCAAudioFileConverter::~CAAudioFileConverter()\n{\n}\n\nvoid\tCAAudioFileConverter::GenerateOutputFileName(const char *inputFilePath, \n\t\t\t\t\t\tconst CAStreamBasicDescription &inputFormat,\n\t\t\t\t\t\tconst CAStreamBasicDescription &outputFormat, OSType outputFileType, \n\t\t\t\t\t\tchar *outName)\n{\n\tstruct stat sb;\n\tchar inputDir[256];\n\tchar inputBasename[256];\n\t\n\tstrcpy(inputDir, dirname(inputFilePath));\n\tconst char *infname = basename(inputFilePath);\n\tconst char *inext = strrchr(infname, '.');\n\tif (inext == NULL) strcpy(inputBasename, infname);\n\telse {\n\t\tint n;\n\t\tmemcpy(inputBasename, infname, n = inext - infname);\n\t\tinputBasename[n] = '\\0';\n\t}\n\t\n\tCFArrayRef exts;\n\tUInt32 propSize = sizeof(exts);\n\tXThrowIfError(AudioFileGetGlobalInfo(kAudioFileGlobalInfo_ExtensionsForType,\n\t\tsizeof(OSType), &outputFileType, &propSize, &exts), \"generate output file name\");\n\tchar outputExt[32];\n\tCFStringRef cfext = (CFStringRef)CFArrayGetValueAtIndex(exts, 0);\n\tCFStringGetCString(cfext, outputExt, sizeof(outputExt), kCFStringEncodingUTF8);\n\tCFRelease(exts);\n\t\n\t// 1. olddir + oldname + newext\n\tsprintf(outName, \"%s/%s.%s\", inputDir, inputBasename, outputExt);\n#if TARGET_OS_MAC\t\n\tif (lstat(outName, &sb)) return;\n#else\n\tif (stat(outName, &sb)) return;\n#endif\n\n\tif (outputFormat.IsPCM()) {\n\t\t// If sample rate changed:\n\t\t//\t2. olddir + oldname + \"-SR\" + newext\n\t\tif (inputFormat.mSampleRate != outputFormat.mSampleRate && outputFormat.mSampleRate != 0.) {\n\t\t\tsprintf(outName, \"%s/%s-%.0fk.%s\", inputDir, inputBasename, outputFormat.mSampleRate/1000., outputExt);\n#if TARGET_OS_MAC\t\n\t\t\tif (lstat(outName, &sb)) return;\n#else\n\t\t\tif (stat(outName, &sb)) return;\n#endif\n\t\t}\n\t\t// If bit depth changed:\n\t\t//\t3. olddir + oldname + \"-bit\" + newext\n\t\tif (inputFormat.mBitsPerChannel != outputFormat.mBitsPerChannel) {\n\t\t\tsprintf(outName, \"%s/%s-%ldbit.%s\", inputDir, inputBasename, outputFormat.mBitsPerChannel, outputExt);\n#if TARGET_OS_MAC\t\n\t\t\tif (lstat(outName, &sb)) return;\n#else\n\t\t\tif (stat(outName, &sb)) return;\n#endif\n\t\t}\n\t}\n\t\n\t// maybe more with channels/layouts? $$$\n\t\n\t// now just append digits\n\tfor (int i = 1; ; ++i) {\n\t\tsprintf(outName, \"%s/%s-%d.%s\", inputDir, inputBasename, i, outputExt);\n#if TARGET_OS_MAC\t\n\t\tif (lstat(outName, &sb)) return;\n#else\n\t\tif (stat(outName, &sb)) return;\n#endif\n\t}\n}\n\nvoid\tCAAudioFileConverter::PrintFormats(const CAAudioChannelLayout *origSrcFileLayout)\n{\n\tconst CAAudioChannelLayout &srcFileLayout = mSrcFile.GetFileChannelLayout();\n\tconst CAAudioChannelLayout &destFileLayout = mDestFile.GetFileChannelLayout();\n\t\n\t// see where we've gotten\n\tif (mParams.flags & kOpt_Verbose) {\n\t\tprintf(\"Formats:\\n\");\n\t\tmSrcFile.GetFileDataFormat().PrintFormat(stdout, \"  \", \"Input file   \");\n\t\tif (srcFileLayout.IsValid()) {\n\t\t\tprintf(\"                 %s\", \n\t\t\t\tCAChannelLayouts::ConstantToString(srcFileLayout.Tag()));\n\t\t\tif (srcFileLayout.IsValid() && origSrcFileLayout != NULL &&\n\t\t\tsrcFileLayout != *origSrcFileLayout)\n\t\t\t\tprintf(\" -- overriding layout %s in file\", \n\t\t\t\t\tCAChannelLayouts::ConstantToString(origSrcFileLayout->Tag()));\n\t\t\tprintf(\"\\n\");\n\t\t}\n\t\tmDestFile.GetFileDataFormat().PrintFormat(stdout, \"  \", \"Output file  \");\n\t\tif (destFileLayout.IsValid())\n\t\t\tprintf(\"                 %s\\n\", \n\t\t\t\tCAChannelLayouts::ConstantToString(destFileLayout.Tag()));\n\t\tif (mSrcFile.HasConverter()) {\n\t\t\tmSrcFile.GetClientDataFormat().PrintFormat(stdout, \"  \", \"Input client \");\n\t\t\tCAShow(mSrcFile.GetConverter());\n\t\t}\n\t\tif (mDestFile.HasConverter()) {\n\t\t\tmDestFile.GetClientDataFormat().PrintFormat(stdout, \"  \", \"Output client\");\n\t\t\tCAShow(mDestFile.GetConverter());\n\t\t}\n\t}\n}\n\nvoid\tCAAudioFileConverter::OpenInputFile()\n{\n\tif (mParams.input.audioFileID)\n\t\tmSrcFile.Wrap(mParams.input.audioFileID, false);\n\telse\n\t\tmSrcFile.Open(mParams.input.filePath);\n}\n\nvoid\tCAAudioFileConverter::OpenOutputFile(const CAStreamBasicDescription &srcFormat, const CAStreamBasicDescription &destFormat, FSRef &destFSRef, CAAudioChannelLayout &destFileLayout)\n{\n\tconst ConversionParameters &params = mParams;\n\t\n\t// output file\n\tif (params.output.filePath == NULL) {\n\t\tGenerateOutputFileName(params.input.filePath, srcFormat,\n\t\t\t\t\tdestFormat, params.output.fileType, mOutName);\n\t} else\n\t\tstrcpy(mOutName, params.output.filePath);\n\t\n\t// deal with pre-existing output file\n\tif (FSPathMakeRef((UInt8 *)mOutName, &destFSRef, NULL) == noErr) {\n\t\tXThrowIf(!(params.flags & kOpt_OverwriteOutputFile), 1, \"overwrite output file\");\n\t\t\t// not allowed to overwrite\n\t\t// output file exists - delete it\n\t\tXThrowIfError(FSDeleteObject(&destFSRef), \"delete output file\");\n\t}\n\t// get FSRef/CFStringRef for output file\n\tFSRef outFolderFSRef;\n\tCFStringRef outFileName;\n\tXThrowIfError(PosixPathToParentFSRefAndName(mOutName, outFolderFSRef, outFileName), \"locate output audio file\");\n\t\n\t// create the output file\n\tmDestFile.CreateNew(outFolderFSRef, outFileName, params.output.fileType, destFormat, &destFileLayout.Layout());\n\tCFRelease(outFileName);\n}\n\n\nvoid\tCAAudioFileConverter::ConvertFile(const ConversionParameters &_params)\n{\n\tFSRef destFSRef;\n\tUInt32 propertySize;\n\tCAStreamBasicDescription destFormat;\n\tCAAudioChannelLayout origSrcFileLayout, srcFileLayout, destFileLayout;\n\tbool openedSourceFile = false, createdOutputFile = false;\n\t\n\tmParams = _params;\n\tmReadBuffer = NULL;\n\tmReadPtrs = NULL;\n\tCABufferList *writeBuffer = NULL;\n\tCABufferList *writePtrs = NULL;\n\t\n\tPrepareConversion();\n\n\ttry {\n\t\tif (TaggedDecodingFromCAF())\n\t\t\tReadCAFInfo();\n\t\tOpenInputFile();\n\t\topenedSourceFile = true;\n\t\t\n\t\t// get input file's format\n\t\tconst CAStreamBasicDescription &srcFormat = mSrcFile.GetFileDataFormat();\n\t\tif (mParams.flags & kOpt_Verbose) {\n\t\t\tprintf(\"Input file: %s, %qd frames\\n\", mParams.input.filePath ? basename(mParams.input.filePath) : \"?\", \n\t\t\t\tmSrcFile.GetNumberFrames());\n\t\t}\n\t\tmSrcFormat = srcFormat;\n\t\t\n\t\t// prepare output file's format\n\t\tdestFormat = mParams.output.dataFormat;\n\n\t\tbool encoding = !destFormat.IsPCM();\n\t\tbool decoding = !srcFormat.IsPCM();\n\t\t\n\t\tif (!encoding && destFormat.mSampleRate == 0.)\n\t\t\t// on encode, it's OK to have a 0 sample rate; ExtAudioFile will get the SR from the converter and set it on the file.\n\t\t\t// on decode or PCM->PCM, a sample rate of 0 is interpreted as using the source sample rate\n\t\t\tdestFormat.mSampleRate = srcFormat.mSampleRate;\n\t\t\n\t\t// source channel layout\n\t\tsrcFileLayout = mSrcFile.GetFileChannelLayout();\n\t\torigSrcFileLayout = srcFileLayout;\n\t\tif (mParams.input.channelLayoutTag != 0) {\n\t\t\tXThrowIf(AudioChannelLayoutTag_GetNumberOfChannels(mParams.input.channelLayoutTag)\n\t\t\t\t!= srcFormat.mChannelsPerFrame, -1, \"input channel layout has wrong number of channels for file\");\n\t\t\tsrcFileLayout = CAAudioChannelLayout(mParams.input.channelLayoutTag);\n\t\t\tmSrcFile.SetFileChannelLayout(srcFileLayout);\n\t\t}\n\t\t\n\t\t// destination channel layout\n\t\tint outChannels = mParams.output.channels;\n\t\tif (mParams.output.channelLayoutTag != 0) {\n\t\t\t// use the one specified by caller, if any\n\t\t\tdestFileLayout = CAAudioChannelLayout(mParams.output.channelLayoutTag);\n\t\t} else if (srcFileLayout.IsValid()) {\n\t\t\t// otherwise, assume the same as the source, if any\n\t\t\tdestFileLayout = srcFileLayout;\n\t\t}\n\t\tif (destFileLayout.IsValid()) {\n\t\t\t// the output channel layout specifies the number of output channels\n\t\t\tif (outChannels != -1)\n\t\t\t\tXThrowIf((unsigned)outChannels != destFileLayout.NumberChannels(), -1,\n\t\t\t\t\t\"output channel layout has wrong number of channels\");\n\t\t\telse\n\t\t\t\toutChannels = destFileLayout.NumberChannels();\n\t\t}\n\n\t\tif (!(mParams.flags & kOpt_NoSanitizeOutputFormat)) {\n\t\t\t// adjust the output format's channels; output.channels overrides the channels\n\t\t\tif (outChannels == -1)\n\t\t\t\toutChannels = srcFormat.mChannelsPerFrame;\n\t\t\tif (outChannels > 0) {\n\t\t\t\tdestFormat.mChannelsPerFrame = outChannels;\n\t\t\t\tdestFormat.mBytesPerPacket *= outChannels;\n\t\t\t\tdestFormat.mBytesPerFrame *= outChannels;\n\t\t\t}\n\t\t\n\t\t\t// use AudioFormat API to clean up the output format\n\t\t\tpropertySize = sizeof(AudioStreamBasicDescription);\n\t\t\tXThrowIfError(AudioFormatGetProperty(kAudioFormatProperty_FormatInfo, 0, NULL, &propertySize, &destFormat),\n\t\t\t\t\t\"get destination format info\");\n\t\t}\n\t\tOpenOutputFile(srcFormat, destFormat, destFSRef, destFileLayout);\n\t\tcreatedOutputFile = true;\n\t\tmDestFormat = destFormat;\n\t\t\n\t\t// set up client formats\n\t\tCAStreamBasicDescription srcClientFormat, destClientFormat;\n\t\t{\n\t\t\tCAAudioChannelLayout srcClientLayout, destClientLayout;\n\t\t\t\n\t\t\tif (encoding) {\n\t\t\t\tif (decoding) {\n\t\t\t\t\t// transcoding\n//\t\t\t\t\tXThrowIf(encoding && decoding, -1, \"transcoding not currently supported\");\n\t\t\t\t\t\n\t\t\t\t\tif (srcFormat.mChannelsPerFrame > 2 || destFormat.mChannelsPerFrame > 2)\n\t\t\t\t\t\tCAXException::Warning(\"Transcoding multichannel audio may not handle channel layouts correctly\", 0);\n\t\t\t\t\tsrcClientFormat.SetCanonical(std::min(srcFormat.mChannelsPerFrame, destFormat.mChannelsPerFrame), true);\n\t\t\t\t\tsrcClientFormat.mSampleRate = std::max(srcFormat.mSampleRate, destFormat.mSampleRate);\n\t\t\t\t\tmSrcFile.SetClientFormat(srcClientFormat, NULL);\n\t\t\t\t\t\n\t\t\t\t\tdestClientFormat = srcClientFormat;\n\t\t\t\t} else {\n\t\t\t\t\t// encoding\n\t\t\t\t\tsrcClientFormat = srcFormat;\n\t\t\t\t\tdestClientFormat = srcFormat;\n\t\t\t\t}\n\t\t\t\t// by here, destClientFormat will have a valid sample rate\n\t\t\t\tdestClientLayout = srcFileLayout.IsValid() ? srcFileLayout : destFileLayout;\n\n\t\t\t\tmDestFile.SetClientFormat(destClientFormat, &destClientLayout);\n\t\t\t} else {\n\t\t\t\t// decoding or PCM->PCM\n\t\t\t\tif (destFormat.mSampleRate == 0.)\n\t\t\t\t\tdestFormat.mSampleRate = srcFormat.mSampleRate;\n\t\t\n\t\t\t\tdestClientFormat = destFormat;\n\t\t\t\tsrcClientFormat = destFormat;\n\t\t\t\tsrcClientLayout = destFileLayout;\n\t\t\t\t\n\t\t\t\tmSrcFile.SetClientFormat(srcClientFormat, &srcClientLayout);\n\t\t\t}\n\t\t}\n\t\t\n\t\tXThrowIf(srcClientFormat.mBytesPerPacket == 0, -1, \"source client format not PCM\"); \n\t\tXThrowIf(destClientFormat.mBytesPerPacket == 0, -1, \"dest client format not PCM\"); \t\t\n\t\tif (encoding) {\n\t\t\t// set the bitrate\n\t\t\tif (mParams.output.bitRate != -1) {\n\t\t\t\tif (mParams.flags & kOpt_Verbose)\n\t\t\t\t\tprintf(\"bitrate = %ld\\n\", mParams.output.bitRate);\n\t\t\t\tmDestFile.SetConverterProperty(kAudioConverterEncodeBitRate, sizeof(UInt32), &mParams.output.bitRate);\n\t\t\t}\n\n\t\t\t// set the codec quality\n\t\t\tif (mParams.output.codecQuality != -1) {\n\t\t\t\tif (mParams.flags & kOpt_Verbose)\n\t\t\t\t\tprintf(\"codec quality = %ld\\n\", mParams.output.codecQuality);\n\t\t\t\tmDestFile.SetConverterProperty(kAudioConverterCodecQuality, sizeof(UInt32), &mParams.output.codecQuality);\n\t\t\t}\n\n\t\t\t// set the bitrate strategy -- called bitrate format in the codecs since it had already shipped\n\t\t\tif (mParams.output.strategy != -1) {\n\t\t\t\tif (mParams.flags & kOpt_Verbose)\n\t\t\t\t\tprintf(\"strategy = %ld\\n\", mParams.output.strategy);\n\t\t\t\tmDestFile.SetConverterProperty(kAudioCodecBitRateFormat, sizeof(UInt32), &mParams.output.strategy);\n\t\t\t}\n\t\t}\n\t\t// set the SRC quality\n\t\tif (mParams.output.srcQuality != -1) {\n\t\t\tif (srcFormat.mSampleRate != 0. && destFormat.mSampleRate != 0. && srcFormat.mSampleRate != destFormat.mSampleRate) {\n\t\t\t\tif (mParams.flags & kOpt_Verbose)\n\t\t\t\t\tprintf(\"SRC quality = %ld\\n\", mParams.output.srcQuality);\n\t\t\t\tif (encoding)\n\t\t\t\t\tmDestFile.SetConverterProperty(kAudioConverterSampleRateConverterQuality, sizeof(UInt32), &mParams.output.srcQuality);\n\t\t\t\telse\n\t\t\t\t\tmSrcFile.SetConverterProperty(kAudioConverterSampleRateConverterQuality, sizeof(UInt32), &mParams.output.srcQuality);\n\t\t\t}\n\t\t}\n\t\tif (decoding) {\n\t\t\tif (mParams.output.primeMethod != -1)\n\t\t\t\tmSrcFile.SetConverterProperty(kAudioConverterPrimeMethod, sizeof(UInt32), &mParams.output.primeMethod);\n\t\t}\n\n\t\tPrintFormats(&origSrcFileLayout);\n\n\t\t// prepare I/O buffers\n\t\tUInt32 bytesToRead = 0x10000;\n\t\tUInt32 framesToRead = bytesToRead;\t// OK, ReadPackets will limit as appropriate\n\t\tComputeReadSize(srcFormat, destFormat, bytesToRead, framesToRead);\n\n//\t\tconst SInt64 totalFrames = mSrcFile.GetNumberFrames();\n//#warning \"GetNumberFrames() can be prohibitively slow for some formats\"\n\t\t\n\t\tmReadBuffer = CABufferList::New(\"readbuf\", srcClientFormat);\n\t\tmReadBuffer->AllocateBuffers(bytesToRead);\n\t\tmReadPtrs = CABufferList::New(\"readptrs\", srcClientFormat);\n\t\t\n\t\tBeginConversion();\n\t\t\n\t\twhile (true) {\n\t\t\t//XThrowIf(Progress(mSrcFile.Tell(), totalFrames), userCanceledErr, \"user stopped\");\n\t\t\t\t// this was commented out for awhile -- performance? make it optional?\n\t\t\tUInt32 nFrames = framesToRead;\n\t\t\tmReadPtrs->SetFrom(mReadBuffer);\n\t\t\tAudioBufferList *readbuf = &mReadPtrs->GetModifiableBufferList();\n\t\t\t\n\t\t\tmSrcFile.Read(nFrames, readbuf);\n\t\t\t//printf(\"read %ld of %ld frames\\n\", nFrames, framesToRead);\n\t\t\tif (nFrames == 0)\n\t\t\t\tbreak;\n\n\t\t\tmDestFile.Write(nFrames, readbuf);\n\t\t\tif (ShouldTerminateConversion())\n\t\t\t\tbreak;\n\t\t}\n\t\t\n\t\tif (decoding) {\n\t\t\t// fix up the destination file's length if necessary and possible\n\t\t\tSInt64 nframes = mSrcFile.GetNumberFrames();\n\t\t\tif (nframes != 0) {\n\t\t\t\t// only shorten, don't try to lengthen\n\t\t\t\tnframes = SInt64(ceil(nframes * destFormat.mSampleRate / srcFormat.mSampleRate));\n\t\t\t\tif (nframes < mDestFile.GetNumberFrames()) {\n\t\t\t\t\tmDestFile.SetNumberFrames(nframes);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tEndConversion();\n\t}\n\tcatch (...) {\n\t\tdelete mReadBuffer;\n\t\tdelete mReadPtrs;\n\t\tdelete writeBuffer;\n\t\tdelete writePtrs;\n\t\ttry { mSrcFile.Close(); } catch (...) { }\n\t\ttry { mDestFile.Close(); } catch (...) { }\n\t\tif (createdOutputFile)\n\t\t\tunlink(mOutName);\n\t\tthrow;\n\t}\n\tdelete mReadBuffer;\n\tdelete mReadPtrs;\n\tdelete writeBuffer;\n\tdelete writePtrs;\n\tmSrcFile.Close();\n\tmDestFile.Close();\n\tif (TaggedEncodingToCAF())\n\t\tWriteCAFInfo();\n\t\n\tif (mParams.flags & kOpt_Verbose) {\n\t\t// must close to flush encoder; GetNumberFrames() not necessarily valid until afterwards but then\n\t\t// the file is closed\n\t\tCAAudioFile temp;\n\t\tFSRef destFSRef;\n\t\tif (FSPathMakeRef((UInt8 *)mOutName, &destFSRef, NULL) == noErr) {\n\t\t\ttemp.Open(destFSRef);\n\t\t\tprintf(\"Output file: %s, %qd frames\\n\", basename(mOutName), temp.GetNumberFrames());\n\t\t}\n\t}\n}\n\n#define kMaxFilename 64\nstruct CAFSourceInfo {\n\t// our private user data chunk -- careful about compiler laying this out!\n\t// big endian\n\tchar\tasbd[40];\n\tUInt32\tfiletype;\n\tchar\tfilename[kMaxFilename];\n};\n\nstatic void ASBD_NtoB(const AudioStreamBasicDescription *infmt, AudioStreamBasicDescription *outfmt)\n{\n\t*(UInt64 *)&outfmt->mSampleRate = EndianU64_NtoB(*(UInt64 *)&infmt->mSampleRate);\n\toutfmt->mFormatID = EndianU32_NtoB(infmt->mFormatID);\n\toutfmt->mFormatFlags = EndianU32_NtoB(infmt->mFormatFlags);\n\toutfmt->mBytesPerPacket = EndianU32_NtoB(infmt->mBytesPerPacket);\n\toutfmt->mFramesPerPacket = EndianU32_NtoB(infmt->mFramesPerPacket);\n\toutfmt->mBytesPerFrame = EndianU32_NtoB(infmt->mBytesPerFrame);\n\toutfmt->mChannelsPerFrame = EndianU32_NtoB(infmt->mChannelsPerFrame);\n\toutfmt->mBitsPerChannel = EndianU32_NtoB(infmt->mBitsPerChannel);\n}\n\nstatic void ASBD_BtoN(const AudioStreamBasicDescription *infmt, AudioStreamBasicDescription *outfmt)\n{\n\t*(UInt64 *)&outfmt->mSampleRate = EndianU64_BtoN(*(UInt64 *)&infmt->mSampleRate);\n\toutfmt->mFormatID = EndianU32_BtoN(infmt->mFormatID);\n\toutfmt->mFormatFlags = EndianU32_BtoN(infmt->mFormatFlags);\n\toutfmt->mBytesPerPacket = EndianU32_BtoN(infmt->mBytesPerPacket);\n\toutfmt->mFramesPerPacket = EndianU32_BtoN(infmt->mFramesPerPacket);\n\toutfmt->mBytesPerFrame = EndianU32_BtoN(infmt->mBytesPerFrame);\n\toutfmt->mChannelsPerFrame = EndianU32_BtoN(infmt->mChannelsPerFrame);\n\toutfmt->mBitsPerChannel = EndianU32_BtoN(infmt->mBitsPerChannel);\n}\n\nvoid\tCAAudioFileConverter::WriteCAFInfo()\n{\n\tFSRef fsref;\n\tAudioFileID afid = 0;\n\tCAFSourceInfo info;\n\tUInt32 size;\n\t\n\ttry {\n\t\tXThrowIfError(FSPathMakeRef((UInt8 *)mParams.input.filePath, &fsref, NULL), \"couldn't locate input file\");\n\t\tXThrowIfError(AudioFileOpen(&fsref, fsRdPerm, 0, &afid), \"couldn't open input file\");\n\t\tsize = sizeof(AudioFileTypeID);\n\t\tXThrowIfError(AudioFileGetProperty(afid, kAudioFilePropertyFileFormat, &size, &info.filetype), \"couldn't get input file's format\");\n\t\tAudioFileClose(afid);\n\t\tafid = 0;\n\t\t\n\t\tXThrowIfError(FSPathMakeRef((UInt8 *)mOutName, &fsref, NULL), \"couldn't locate output file\");\n\t\tXThrowIfError(AudioFileOpen(&fsref, fsRdWrPerm, 0, &afid), \"couldn't open output file\");\n\t\tconst char *srcFilename = strrchr(mParams.input.filePath, '/');\n\t\tif (srcFilename++ == NULL) srcFilename = mParams.input.filePath;\n\t\tASBD_NtoB(&mSrcFormat, (AudioStreamBasicDescription *)info.asbd);\n\t\tint namelen = std::min(kMaxFilename-1, (int)strlen(srcFilename));\n\t\tmemcpy(info.filename, srcFilename, namelen);\n\t\tinfo.filename[namelen++] = 0;\n\t\tinfo.filetype = EndianU32_NtoB(info.filetype);\n\t\t\n\t\tXThrowIfError(AudioFileSetUserData(afid, 'srcI', 0, offsetof(CAFSourceInfo, filename) + namelen, &info), \"couldn't set CAF file's source info chunk\");\n\t\tAudioFileClose(afid);\n\t}\n\tcatch (...) {\n\t\tif (afid)\n\t\t\tAudioFileClose(afid);\n\t\tthrow;\n\t}\n}\n\nvoid\tCAAudioFileConverter::ReadCAFInfo()\n{\n\tFSRef fsref;\n\tAudioFileID afid = 0;\n\tCAFSourceInfo info;\n\tUInt32 size;\n\tOSStatus err;\n\t\n\ttry {\n\t\tXThrowIfError(FSPathMakeRef((UInt8 *)mParams.input.filePath, &fsref, NULL), \"couldn't locate input file\");\n\t\tXThrowIfError(AudioFileOpen(&fsref, fsRdPerm, 0, &afid), \"couldn't open input file\");\n\t\tsize = sizeof(AudioFileTypeID);\n\t\tXThrowIfError(AudioFileGetProperty(afid, kAudioFilePropertyFileFormat, &size, &info.filetype), \"couldn't get input file's format\");\n\t\tif (info.filetype == kAudioFileCAFType) {\n\t\t\tsize = sizeof(info);\n\t\t\terr = AudioFileGetUserData(afid, 'srcI', 0, &size, &info);\n\t\t\tif (!err) {\n\t\t\t\t// restore the following from the original file info:\n\t\t\t\t//\tfiletype\n\t\t\t\t//\tdata format\n\t\t\t\t//\tfilename\n\t\t\t\tAudioStreamBasicDescription destfmt;\n\t\t\t\tASBD_BtoN((AudioStreamBasicDescription *)info.asbd, &destfmt);\n\t\t\t\tmParams.output.dataFormat = destfmt;\n\t\t\t\tmParams.output.fileType = EndianU32_BtoN(info.filetype);\n\t\t\t\tif (mParams.output.filePath == NULL) {\n\t\t\t\t\tint len = strlen(mParams.input.filePath) + strlen(info.filename) + 2;\n\t\t\t\t\tchar *newname = (char *)malloc(len);\t// $$$ leaked\n\t\t\t\t\t\n\t\t\t\t\tconst char *dir = dirname(mParams.input.filePath);\n\t\t\t\t\tif (dir && (dir[0] !='.' && dir[1] != '/'))\n\t\t\t\t\t\tsprintf(newname, \"%s/%s\", dir, info.filename);\n\t\t\t\t\telse\n\t\t\t\t\t\tstrcpy(newname, info.filename);\n\t\t\t\t\tmParams.output.filePath = newname;\n\t\t\t\t\tmParams.flags = (mParams.flags & ~kOpt_OverwriteOutputFile) | kOpt_NoSanitizeOutputFormat;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tAudioFileClose(afid);\n\t}\n\tcatch (...) {\n\t\tif (afid)\n\t\t\tAudioFileClose(afid);\n\t\tthrow;\n\t}\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/CAAudioFileConverter.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAAudioFileConverter.h\n\t\n=============================================================================*/\n\n#ifndef __CAAudioFileConverter_h__\n#define __CAAudioFileConverter_h__\n\n/*\n\tCompile options:\n\t\tCAAUDIOFILE_PROFILE\n*/\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioToolbox.h>\n#else\n\t#include <AudioToolbox.h>\n#endif\n#include \"CAStreamBasicDescription.h\"\n#include \"CABufferList.h\"\n#include \"CAHostTimeBase.h\"\n#include \"CAAudioChannelLayout.h\"\n#include \"CAAudioFile.h\"\n\nclass CAAudioFileConverter {\npublic:\n\t// options for ConversionParameters.flags\n\tenum {\n\t\tkOpt_OverwriteOutputFile\t= 1,\n\t\tkOpt_Verbose\t\t\t\t= 2,\n\t\tkOpt_CAFTag\t\t\t\t\t= 4,\t\t\t\t// tags encoded CAF files with info about the source file\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// or restores based on it when decoding\n\t\tkOpt_NoSanitizeOutputFormat = 8\t\t\t\t\t// used internally\n\t};\n\t\n\tstruct ConversionParameters {\n\t\tConversionParameters();\n\t\t\n\t\tUInt32\t\t\t\t\tflags;\n\t\t\n\t\tstruct {\n\t\t\tconst char *\t\t\tfilePath;\t\t\t// POSIX path, UTF-8\n\t\t\tAudioFileID\t\t\t\taudioFileID;\t\t// or set this to non-zero\n\t\t\tAudioChannelLayoutTag\tchannelLayoutTag;\t// 0 to use the one in the file, or default\n\t\t}\t\t\t\t\t\tinput;\n\t\t\n\t\tstruct {\n\t\t\tconst char *\t\t\tfilePath;\t\t\t// POSIX path; if null, file is written to same\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// directory as input file, name generated from\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// its name with the appropriate filename extension\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// (fails if file already exists)\n\t\t\tAudioFileTypeID\t\t\tfileType;\n\t\t\tCAStreamBasicDescription dataFormat;\n\t\t\tint\t\t\t\t\t\tchannels;\t\t\t// -1 for same number of channels as input\n\t\t\tSInt32\t\t\t\t\tbitRate;\t\t\t// -1 for default\n\t\t\tSInt32\t\t\t\t\tcodecQuality;\t\t// 0-127, -1 for default\n\t\t\tSInt32\t\t\t\t\tsrcQuality;\t\t\t// 0-127, -1 for default\n\t\t\tSInt32\t\t\t\t\tstrategy;\t\t\t// 0-2, -1 for default\n\t\t\tSInt32\t\t\t\t\tprimeMethod;\t\t// 0-2, -1 for default\n\t\t\tAudioChannelLayoutTag\tchannelLayoutTag;\t// 0 for default\n\t\t}\t\t\t\t\t\toutput;\n\t\t\n\t\t//UInt32\t\t\t\t\tbufferSize;\t\t\t\t// [UNIMPLEMENTED]\n\t};\n\t\n\tCAAudioFileConverter();\n\n\tvirtual ~CAAudioFileConverter();\n\t\n\tvoid\t\t\tConvertFile(const ConversionParameters &params);\n\tvirtual bool\tProgress(SInt64 packetsConverted, SInt64 packetsTotal) { return false; }\n\tvirtual void\tGenerateOutputFileName(const char *inputFilePath, \n\t\t\t\t\t\tconst CAStreamBasicDescription &inputFormat,\n\t\t\t\t\t\tconst CAStreamBasicDescription &outputFormat,\n\t\t\t\t\t\tOSType outputFileType, char *outName);\n\t\n\tconst char *\tGetOutputFileName() { return mOutName; }\n\tconst CAAudioFile &\tInputFile() { return mSrcFile; }\n\tconst CAAudioFile & OutputFile() { return mDestFile; }\n\t\n\t// customization\n\tvirtual void\tPrepareConversion() { }\n\tvirtual void\tOpenInputFile();\n\tvirtual void\tOpenOutputFile(const CAStreamBasicDescription &srcFormat, const CAStreamBasicDescription &destFormat, FSRef &destFSRef, CAAudioChannelLayout &destFileLayout);\n\tvirtual void\tComputeReadSize(const CAStreamBasicDescription &srcFormat, const CAStreamBasicDescription &destFormat, UInt32 &bytesToRead, UInt32 &framesToRead) { }\n\tvirtual void\tBeginConversion() { }\n\tvirtual void\tEndConversion() { }\n\tvirtual bool\tShouldTerminateConversion() { return false; }\n\n\tbool\tTaggedEncodingToCAF() const {\n\t\t\t\treturn (mParams.flags & kOpt_CAFTag) && mDestFormat.mFormatID != kAudioFormatLinearPCM && mParams.output.fileType == kAudioFileCAFType;\n\t\t\t}\n\tbool\tTaggedDecodingFromCAF() const {\n\t\t\t\treturn (mParams.flags & kOpt_CAFTag) && mSrcFormat.mFormatID != kAudioFormatLinearPCM;\n\t\t\t\t\t// don't know for sure that the source file is CAF...\n\t\t\t}\n\t\n\tvoid\tWriteCAFInfo();\n\tvoid\tReadCAFInfo();\n\t\nprotected:\n\tvoid\t\t\t\t\t\tPrintFormats(const CAAudioChannelLayout *origSrcFileLayout);\n\n\tConversionParameters\t\tmParams;\n\tCAAudioFile\t\t\t\t\tmSrcFile;\n\tCAAudioFile\t\t\t\t\tmDestFile;\n\tCAStreamBasicDescription\tmSrcFormat;\t\t// valid after OpenInputFile\n\tCAStreamBasicDescription\tmDestFormat;\t// valid after OpenOutputFile\n\t\nprivate:\n\tCABufferList *\t\t\t\tmReadBuffer;\n\tCABufferList *\t\t\t\tmReadPtrs;\n\nprotected:\n\tchar\t\t\t\t\t\tmOutName[PATH_MAX];\n};\n\n#endif // __CAAudioFileConverter_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/CAChannelLayouts.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAChannelLayouts.cpp\n\t\n=============================================================================*/\n\n#include \"CAChannelLayouts.h\"\n#include <string.h>\n#include <stdio.h>\n\nstruct LayoutTag {\n\tUInt32\t\tconstant;\n\tconst char *name;\n};\n\n#define TAG(x)\t{ x, #x },\n\nstatic LayoutTag gLayoutTags[] = {\n\tTAG(kAudioChannelLayoutTag_Mono)\n\tTAG(kAudioChannelLayoutTag_Stereo)\n\tTAG(kAudioChannelLayoutTag_StereoHeadphones)\n\tTAG(kAudioChannelLayoutTag_MatrixStereo)\n\tTAG(kAudioChannelLayoutTag_MidSide)\n\tTAG(kAudioChannelLayoutTag_XY)\n\tTAG(kAudioChannelLayoutTag_Binaural)\n\tTAG(kAudioChannelLayoutTag_Ambisonic_B_Format)\n\tTAG(kAudioChannelLayoutTag_Quadraphonic)\n\tTAG(kAudioChannelLayoutTag_Pentagonal)\n\tTAG(kAudioChannelLayoutTag_Hexagonal)\n\tTAG(kAudioChannelLayoutTag_Octagonal)\n\tTAG(kAudioChannelLayoutTag_Cube)\n\tTAG(kAudioChannelLayoutTag_MPEG_1_0)\n\tTAG(kAudioChannelLayoutTag_MPEG_2_0)\n\tTAG(kAudioChannelLayoutTag_MPEG_3_0_A)\n\tTAG(kAudioChannelLayoutTag_MPEG_3_0_B)\n\tTAG(kAudioChannelLayoutTag_MPEG_4_0_A)\n\tTAG(kAudioChannelLayoutTag_MPEG_4_0_B)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_0_A)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_0_B)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_0_C)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_0_D)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_1_A)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_1_B)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_1_C)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_1_D)\n\tTAG(kAudioChannelLayoutTag_MPEG_6_1_A)\n\tTAG(kAudioChannelLayoutTag_MPEG_7_1_A)\n\tTAG(kAudioChannelLayoutTag_MPEG_7_1_B)\n\tTAG(kAudioChannelLayoutTag_MPEG_7_1_C)\n\tTAG(kAudioChannelLayoutTag_Emagic_Default_7_1)\n\tTAG(kAudioChannelLayoutTag_SMPTE_DTV)\n\tTAG(kAudioChannelLayoutTag_ITU_1_0)\n\tTAG(kAudioChannelLayoutTag_ITU_2_0)\n\tTAG(kAudioChannelLayoutTag_ITU_2_1)\n\tTAG(kAudioChannelLayoutTag_ITU_2_2)\n\tTAG(kAudioChannelLayoutTag_ITU_3_0)\n\tTAG(kAudioChannelLayoutTag_ITU_3_1)\n\tTAG(kAudioChannelLayoutTag_ITU_3_2)\n\tTAG(kAudioChannelLayoutTag_ITU_3_2_1)\n\tTAG(kAudioChannelLayoutTag_ITU_3_4_1)\n\tTAG(kAudioChannelLayoutTag_DVD_0)\n\tTAG(kAudioChannelLayoutTag_DVD_1)\n\tTAG(kAudioChannelLayoutTag_DVD_2)\n\tTAG(kAudioChannelLayoutTag_DVD_3)\n\tTAG(kAudioChannelLayoutTag_DVD_4)\n\tTAG(kAudioChannelLayoutTag_DVD_5)\n\tTAG(kAudioChannelLayoutTag_DVD_6)\n\tTAG(kAudioChannelLayoutTag_DVD_7)\n\tTAG(kAudioChannelLayoutTag_DVD_8)\n\tTAG(kAudioChannelLayoutTag_DVD_9)\n\tTAG(kAudioChannelLayoutTag_DVD_10)\n\tTAG(kAudioChannelLayoutTag_DVD_11)\n\tTAG(kAudioChannelLayoutTag_DVD_12)\n\tTAG(kAudioChannelLayoutTag_DVD_13)\n\tTAG(kAudioChannelLayoutTag_DVD_14)\n\tTAG(kAudioChannelLayoutTag_DVD_15)\n\tTAG(kAudioChannelLayoutTag_DVD_16)\n\tTAG(kAudioChannelLayoutTag_DVD_17)\n\tTAG(kAudioChannelLayoutTag_DVD_18)\n\tTAG(kAudioChannelLayoutTag_DVD_19)\n\tTAG(kAudioChannelLayoutTag_DVD_20)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_4)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_5)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_6)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_8)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_5_0)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_6_0)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_7_0)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_5_1)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_6_1)\n\tTAG(kAudioChannelLayoutTag_AudioUnit_7_1)\n\tTAG(kAudioChannelLayoutTag_AAC_Quadraphonic)\n\tTAG(kAudioChannelLayoutTag_AAC_4_0)\n\tTAG(kAudioChannelLayoutTag_AAC_5_0)\n\tTAG(kAudioChannelLayoutTag_AAC_5_1)\n\tTAG(kAudioChannelLayoutTag_AAC_6_0)\t\n\tTAG(kAudioChannelLayoutTag_AAC_6_1)\n\tTAG(kAudioChannelLayoutTag_AAC_7_0)\t\n\tTAG(kAudioChannelLayoutTag_AAC_7_1)\n\tTAG(kAudioChannelLayoutTag_AAC_Octagonal)\n\n\tTAG(kAudioChannelLayoutTag_TMH_10_2_std)  \n\tTAG(kAudioChannelLayoutTag_TMH_10_2_full)\n\t{ 0, NULL }\t// sentinel\n};\n\nstatic const char *prefix = \"kAudioChannelLayoutTag_\";\n\nUInt32\t\tCAChannelLayouts::StringToConstant(const char *s)\n{\n\tint prefixlen = strlen(prefix);\n\tfor (LayoutTag *t = gLayoutTags; t->name != NULL; ++t) {\n\t\tif (!strcmp(t->name, s) || !strcmp(t->name + prefixlen, s))\n\t\t\treturn t->constant;\n\t}\n\treturn kInvalidTag;\n}\n\nconst char *\tCAChannelLayouts::ConstantToString(UInt32 layoutTag)\n{\n\tstatic char buffer[256];\n\tfor (LayoutTag *t = gLayoutTags; t->name != NULL; ++t) {\n\t\tif (layoutTag == t->constant)\n\t\t\treturn t->name + strlen(prefix);\n\t}\n\tsprintf(buffer, \"unknown (0x%lx)\", layoutTag);\n\treturn buffer;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/CAChannelLayouts.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAChannelLayouts.h\n\t\n=============================================================================*/\n\n#ifndef __CAChannelLayouts_h__\n#define __CAChannelLayouts_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n// convert between channel layout tag constant and its name\nclass CAChannelLayouts {\npublic:\n\tstatic const AudioChannelLayoutTag kInvalidTag = 0xFFFF0000;\n\t\n\tstatic AudioChannelLayoutTag\t\tStringToConstant(const char *s);\n\tstatic const char *\t\t\t\t\tConstantToString(AudioChannelLayoutTag layoutTag);\n};\n\n\n#endif // __CAChannelLayouts_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/CAFilePathUtils.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAFilePathUtils.cpp\n\t\n=============================================================================*/\n\n#include \"CAFilePathUtils.h\"\n#include <string.h>\n\nOSStatus\tPosixPathToParentFSRefAndName(const char *path, FSRef &outParentDir, CFStringRef &outFileName)\n{\n\t// convert C string to CFString\n#if !TARGET_OS_WIN32\n\tCFStringRef cfFullPath = CFStringCreateWithCString(NULL, path, kCFStringEncodingUTF8);\n#else\n\tCFStringRef cfFullPath = CFStringCreateWithCString(NULL, path, kCFStringEncodingWindowsLatin1);\n#endif\n\t// convert CF string to URL\n\tCFURLRef fullurl = CFURLCreateWithFileSystemPath(NULL, cfFullPath, TARGET_OS_WIN32 ? kCFURLWindowsPathStyle : kCFURLPOSIXPathStyle, false);\n\tCFRelease(cfFullPath);\n\t// get the directory portion of the URL\n\tCFURLRef dirurl = CFURLCreateCopyDeletingLastPathComponent(NULL, fullurl);\n\t// get the directory's FSSpec\n\tOSStatus err = CFURLGetFSRef(dirurl, &outParentDir) ? OSStatus(noErr) : OSStatus(fnfErr);\n\tCFRelease(dirurl);\n\t\n\tCFStringRef lastPathComponent = CFURLCopyLastPathComponent(fullurl);\n\tCFRelease(fullurl);\n\tCFMutableStringRef filename = CFStringCreateMutableCopy(NULL, 0, lastPathComponent);\n\tCFRelease(lastPathComponent);\n\t// convert colons (legal in POSIX paths, illegal in File Manager) to slashes\n\tCFStringFindAndReplace(filename, CFSTR(\":\"), CFSTR(\"/\"), CFRangeMake(0, CFStringGetLength(filename)), 0);\n\t\n\toutFileName = filename;\n\t\n\treturn err;\n}\n\n\n#if TARGET_OS_WIN32\n\nchar*\tdirname(const char* inPath)\n{\n\tstatic char sAnswer[1024];\n\t\n\tchar* theAnswer = NULL;\n\tSInt32 thePathLength = strlen(inPath);\n\tif(thePathLength < 1023)\n\t{\n\t\t//\tmake a working copy\n\t\tstrcpy(sAnswer, inPath);\n\t\t\n\t\t//\tstart at the end of the string\n\t\tSInt32 theIndex = thePathLength - 1;\n\t\t\n\t\t//\twalk back over the '\\' characters\n\t\twhile((theIndex > 0) && (sAnswer[theIndex] == '\\\\'))\n\t\t{\n\t\t\t--theIndex;\n\t\t}\n\t\t\n\t\t//\tnow keep walking back until we get to a '\\'\n\t\twhile((theIndex > 0) && (sAnswer[theIndex] != '\\\\'))\n\t\t{\n\t\t\t--theIndex;\n\t\t}\n\t\t\n\t\t//\twhere we are now is either the first character of the path or the '\\' that marks the end of the directory name\n\t\tif(theIndex > 0)\n\t\t{\n\t\t\t//\twe have a name so put a '\\0' in place of the '\\'\n\t\t\tsAnswer[theIndex] = 0;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\tno name, so the answer is \".\"\n\t\t\tsAnswer[0] = '.';\n\t\t\tsAnswer[1] = 0;\n\t\t}\n\t\t\n\t\t//\tset the return value\n\t\ttheAnswer = sAnswer;\n\t}\n\t\n\treturn theAnswer;\n}\n\nchar*\tbasename(const char* inPath)\n{\n\tstatic char sAnswer[1024];\n\t\n\tchar* theAnswer = NULL;\n\tSInt32 thePathLength = strlen(inPath);\n\tif(thePathLength < 1023)\n\t{\n\t\t//\tmake a working copy\n\t\tstrcpy(sAnswer, inPath);\n\t\t\n\t\t//\tstart at the end of the string\n\t\tSInt32 theLastIndex = thePathLength - 1;\n\t\t\n\t\t//\twalk back over the '\\' characters\n\t\twhile((theLastIndex > 0) && (sAnswer[theLastIndex] == '\\\\'))\n\t\t{\n\t\t\t--theLastIndex;\n\t\t}\n\t\t\n\t\t//\tcheck to see if we're at the beginning now\n\t\tif(theLastIndex > 0)\n\t\t{\n\t\t\t//\tthere's a name in there now, so start where we are and go back to the next '\\'\n\t\t\tUInt32 theFirstIndex = theLastIndex;\n\t\t\twhile((theFirstIndex > 0) && (sAnswer[theFirstIndex] != '\\\\'))\n\t\t\t{\n\t\t\t\t--theFirstIndex;\n\t\t\t}\n\t\t\t\n\t\t\t//\twe now have a string, so put a '\\0' after the last character\n\t\t\tsAnswer[theLastIndex + 1] = 0;\n\t\t\t\n\t\t\t//\tand set the return value\n\t\t\ttheAnswer = &sAnswer[theFirstIndex];\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\tthe path was entirely '\\' characters, so the return value is \"\\\"\n\t\t\tsAnswer[0] = '\\\\';\n\t\t\tsAnswer[1] = 0;\n\t\t\n\t\t\t//\tset the return value\n\t\t\ttheAnswer = sAnswer;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/CAFilePathUtils.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tCAFilePathUtils.h\n\t\n=============================================================================*/\n\n#ifndef __CAFilePathUtils_h__\n#define __CAFilePathUtils_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreServices/CoreServices.h>\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include <TargetConditionals.h>\n\t#include <CoreServices.h>\n\t#include <CoreFoundation.h>\n#endif\n\nOSStatus\tPosixPathToParentFSRefAndName(const char *path, FSRef &outParentDir, CFStringRef &outFileName);\n#if !TARGET_OS_WIN32\n\t#include <libgen.h>\n#else\n\tchar*\tdirname(const char* inPath);\n\tchar*\tbasename(const char* inPath);\n#endif\n\n#endif // __CAFilePathUtils_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/QTAACFile.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tQTAACFile.cpp\n\t\n=============================================================================*/\n\n#include \"QTAACFile.h\"\n#include \"CAXException.h\"\n#include \"CAStreamBasicDescription.h\"\n\n\n// _______________________________________________________________________________________\n//\nQTAACFile::QTAACFile() :\n\tmMovieResFile(-1),\n\tmMovie(NULL),\n\tmPacketHandle(NULL),\n\tmMagicCookie(NULL),\n\tmConverter(NULL),\n\tmFileMaxPacketSize(0)\n{\n}\n\n// _______________________________________________________________________________________\n//\nQTAACFile::~QTAACFile()\n{\n\tClose();\n\tCloseConverter();\n\tif (mPacketHandle)\n\t\tDisposeHandle(mPacketHandle);\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tQTAACFile::Close()\n{\n\tif (mMovieResFile != -1) {\n\t\tCloseMovieFile(mMovieResFile);\n\t\tmMovieResFile = -1;\n\t}\n\tif (mMovie) {\n\t\tDisposeMovie(mMovie);\n\t\tmMovie = NULL;\n\t}\n\tif (mMagicCookie) {\n\t\tfree(mMagicCookie);\n\t\tmMagicCookie = NULL;\n\t}\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tQTAACFile::CloseConverter()\n{\n\tif (mConverter) {\n\t\tAudioConverterDispose(mConverter);\n\t\tmConverter = NULL;\n\t}\n}\n\n// _______________________________________________________________________________________\n/*\n\tGetMP4DecoderConfig\n\n\tNOTE: This is designed to work only for a very specific case -- an MPEG-4/QuickTime movie\n\tcontaining AAC-encoded audio. It is adapted from the \"SoundPlayer\"QuickTime sample code,\n\tbut with much generality removed.\n\t\n\tIf the audio is not MPEG-4, then we'll fail immediately with an exception.\n\t\n\tIf the audio is MPEG-4, but not AAC-encoded, then we will fail somewhere beyond this function, when passing the magic cookie (ESDS) to the AudioConverter.\n*/\nstatic void GetMP4DecoderConfig(Media inMedia, AudioStreamBasicDescription &outStreamFormat, char **outEsds, UInt32 *outEsdsSize)\n{\n\tOSStatus err = noErr;\n\tSize size;\n\tHandle extension = NULL;\n\tSoundDescriptionHandle hSoundDescription = (SoundDescriptionHandle)NewHandle(0);\n\tstruct MyMP4AudioAtom {\n\t\tUInt32  size;\n\t\tOSType  atomType;\n\t\tUInt32  version;\n\t};\n\t\n\ttry {\n\t\t// get the description of the sample data\n\t\tGetMediaSampleDescription(inMedia, 1, (SampleDescriptionHandle)hSoundDescription);\n\t\tXThrowIfError(GetMoviesError(), \"couldn't get media sample description\");\n\n\t\t// other formats: exercise for the reader!\n\t\tOSType fmt = (*hSoundDescription)->dataFormat;\n\t\tXThrowIf(fmt != 'mp4a', -1, \"can only decode MPEG-4/AAC\");\n\t\t\n\t\textension = NewHandle(0);\n\t\t\n\t\t// get the \"magic\" decompression atom\n\t\t// This extension to the SoundDescription information stores data specific to a given audio decompressor.\n\t\t// Some audio decompression algorithms require a set of out-of-stream values to configure the decompressor\n\t\t// which are stored in a siDecompressionParams atom. The contents of the siDecompressionParams atom are dependent\n\t\t// on the audio decompressor.\n\n\t\terr = GetSoundDescriptionExtension(hSoundDescription, &extension, siDecompressionParams);\n\n\t\t// if it doesn't have an atom, that's ok for some formats, but not for AAC\n\t\tXThrowIfError(err, \"couldn't get sound description extension\");\n\n\t\tsize = GetHandleSize(extension);\n\t\tHLock(extension);\n\t\tUserDataAtom *atom = (UserDataAtom *)*extension;\n\t\tbool moreAtoms = true;\n\t\tdo {\n\t\t\tlong atomSize = EndianS32_BtoN(atom->size);\n\t\t\t\n\t\t\tXThrowIf(atomSize < 8, -1, \"invalid sound description atom\");\n\t\t\tswitch (EndianU32_BtoN(atom->atomType)) {\n\t\t\tcase 'esds':\n\t\t\t\t*outEsdsSize = atomSize - sizeof(MyMP4AudioAtom);\n\t\t\t\t*outEsds = (char *)malloc(*outEsdsSize);\n\t\t\t\tmemcpy(*outEsds, (char *)atom + sizeof(MyMP4AudioAtom), *outEsdsSize);\n\t\t\t\tbreak;\n\t\t\tcase kAudioTerminatorAtomType:\n\t\t\t\tmoreAtoms = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tatom = (UserDataAtom *)((char *)atom + atomSize);\n\t\t} while (moreAtoms);\n\t\t\n\t\tHUnlock(extension);\n\n\t\t// set up our stream description\n\t\tmemset(&outStreamFormat, 0, sizeof(AudioStreamBasicDescription));\n\t\toutStreamFormat.mFormatID = kAudioFormatMPEG4AAC;\n\t}\n\tcatch (...) {\n\t\tif (extension) DisposeHandle(extension);\n\t\tif (hSoundDescription) DisposeHandle((Handle)hSoundDescription);\n\t\tthrow;\n\t}\n\tif (extension) DisposeHandle(extension);\n\tif (hSoundDescription) DisposeHandle((Handle)hSoundDescription);\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tQTAACFile::Open(const char *filename)\n{\n\tFSRef theFSRef;\n\tTrack theAudioTrack;\n\tFSSpec theFSSpec;\n\t\n\t// convert from POSIX full path to FSSpec\n\tXThrowIfError(FSPathMakeRef((UInt8 *)filename, &theFSRef, NULL), \"locate file\");\n\tXThrowIfError(FSGetCatalogInfo(&theFSRef, 0, NULL, NULL, &theFSSpec, NULL), \"get FSSpec\");\n\n\t// make a QuickTime movie (will open MP4 transparently)\n\tXThrowIfError(OpenMovieFile(&theFSSpec, &mMovieResFile, fsRdPerm), \"OpenMovieFile failed\");\n\tSInt16 nResID = 0;\n\tStr255          strName;\n\tBoolean         bWasChanged;\n\tXThrowIfError(NewMovieFromFile(&mMovie, mMovieResFile, &nResID, strName, newMovieActive, &bWasChanged), \"NewMovieFromFile failed\");\n\n\t// NOTE: we're assuming the data we want is in the movie's first enabled audio track\n\ttheAudioTrack = GetMovieIndTrackType(mMovie, 1, SoundMediaType, movieTrackMediaType | movieTrackEnabledOnly);\n\tXThrowIf(theAudioTrack == NULL, -1, \"movie contains no audio track\");\n\t\n\t// find the track's media, and interrogate it for the audio format and magic cookie (decoder config)\n\tmMedia = GetTrackMedia(theAudioTrack);\n\tXThrowIf(mMedia == NULL, -1, \"track contains no media\");\t\n\tGetMP4DecoderConfig(mMedia, mFileDataFormat, &mMagicCookie, &mMagicCookieSize);\n\n\t// Fill out the remaining fields of the ASBD by evaluating the magic cookie\n\tUInt32\tsize = sizeof(mFileDataFormat);\n\tXThrowIfError(AudioFormatGetProperty(kAudioFormatProperty_ASBDFromESDS, mMagicCookieSize, mMagicCookie, &size, &mFileDataFormat),\n\t\t\"couldn't get ASBD from the Magic Cookie\");\n\n\t// build a vector of times at which packets begin\n\t// so later we can randomly access the file by packet number\n\tTimeValue currentTime = 0;\n\tstatic const Fixed oneFixed = 0x10000;\n\twhile (true) {\n\t\tTimeValue interestingTime, interestingDuration;\n\t\tGetMediaNextInterestingTime(mMedia, nextTimeMediaSample | nextTimeEdgeOK, currentTime, oneFixed, &interestingTime, &interestingDuration);\n\t\tif (interestingTime < 0)\n\t\t\tbreak;\n\t\tmPacketTimes.push_back(interestingTime);\n\t\tcurrentTime = interestingTime + 1;\n\t}\n\tmNumberPackets = mPacketTimes.size();\n\tmPacketMark = 0;\n\tmPacketHandle = NewHandle(1024);\t// memory into which packets will be read\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tQTAACFile::SetClientFormat(const CAStreamBasicDescription &dataFormat)\n{\n\tCloseConverter();\n\n\tXThrowIf(!dataFormat.IsPCM(), -1, \"non-PCM client format on audio file\");\n\tmClientDataFormat = dataFormat;\n\t\n\tif (mClientDataFormat != mFileDataFormat) {\n\t\t// We need an AudioConverter.\n\t\t// file -> client\n\t\tXThrowIfError(AudioConverterNew(&mFileDataFormat, &mClientDataFormat, &mConverter),\n\t\t\t\"create audio converter\");\n\n\t\t// set the magic cookie, if any (for decode)\n\t\tif (mMagicCookie)\n\t\t\tSetConverterProperty(kAudioConverterDecompressionMagicCookie,\n\t\t\t\tmMagicCookieSize, mMagicCookie, true);\n\t}\n\tUpdateClientMaxPacketSize();\n}\n\n// _______________________________________________________________________________________\n//\nOSStatus\tQTAACFile::SetConverterProperty(AudioConverterPropertyID\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinPropertyDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void*\t\t\t\t\tinPropertyData,\n\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\tinCanFail)\n{\n\tOSStatus err = AudioConverterSetProperty(mConverter, inPropertyID, inPropertyDataSize, inPropertyData);\n\tif (!inCanFail) {\n\t\tXThrowIfError(err, \"set audio converter property\");\n\t}\n\tUpdateClientMaxPacketSize();\n\treturn err;\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tQTAACFile::UpdateClientMaxPacketSize()\n{\n\tif (mConverter != NULL) {\n\t\tAudioConverterPropertyID property = \n\t\t\tkAudioConverterPropertyMaximumOutputPacketSize;\n\t\t\t\n\t\tUInt32 propertySize = sizeof(UInt32);\n\t\tXThrowIfError(AudioConverterGetProperty(mConverter, property, &propertySize, &mClientMaxPacketSize),\n\t\t\t\"get audio converter's maximum packet size\");\n\t} else\n\t\tmClientMaxPacketSize = mFileMaxPacketSize;\n\tXThrowIf(mClientMaxPacketSize == 0, -1, \"client maximum packet size is 0\");\n}\n\n// _______________________________________________________________________________________\n//\n//\tThis function reads the next packet from the movie. It always reads only 1 packet,\n//\tregardless of how many were asked for -- whether it's called either as a callback from\n//\tAudioConverterFillComplexBuffer, or directly from ReadPackets (below), the caller\n//\twill just call again if it wants more.\nOSStatus QTAACFile::ReadInputProc(  AudioConverterRef\t\t\t\tinAudioConverter,\n\t\t\t\t\t\t\t\t\tUInt32*\t\t\t\t\t\t\tioNumberDataPackets,\n\t\t\t\t\t\t\t\t\tAudioBufferList*\t\t\t\tioData,\n\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription**\toutDataPacketDescription,\n\t\t\t\t\t\t\t\t\tvoid*\t\t\t\t\t\t\tinUserData)\n{\n\tQTAACFile *This = static_cast<QTAACFile *>(inUserData);\n\t\n\tUInt32 remainingPacketsInFile = This->mNumberPackets - This->mPacketMark;\n\tif (remainingPacketsInFile == 0) {\n\t\t// end of file\n\t\t*ioNumberDataPackets = 0;\n\t\tioData->mBuffers[0].mDataByteSize = 0;\n\t\treturn noErr;\t// EOF is signified by 0 packets/0 bytes/noErr\n\t}\n\t\n\tUInt32 ioPackets = 1;\n\n\t// don't try to read past EOF\n\tif (ioPackets > remainingPacketsInFile)\n\t\tioPackets = remainingPacketsInFile;\n\n\tlong bytesRead;\n\tOSStatus err;\n\t\n\tHUnlock(This->mPacketHandle);\n\terr = GetMediaSample(This->mMedia,\t\t\t// specifies the media for this operation\n\t\t\t This->mPacketHandle,\t\t\t// function returns the sample data into this handle\n\t\t\t 0,\t\t\t\t\t\t\t\t// maximum number of bytes of sample data to be returned\n\t\t\t &bytesRead,\t\t\t\t\t// the number of bytes of sample data returned\n\t\t\t This->mPacketTimes[This->mPacketMark],\t\t\n\t\t\t\t\t\t\t\t\t\t\t// starting time of the sample to be retrieved (must be in Media's TimeScale)\n\t\t\t NULL,\t\t\t\t\t\t\t// indicates the actual time of the returned sample data\n\t\t\t NULL,\t\t\t\t\t\t\t// duration of each sample in the media\n\t\t\t NULL,\t\t\t\t\t\t\t// sample description corresponding to the returned sample data (NULL to ignore)\n\t\t\t NULL,\t\t\t\t\t\t\t// index value to the sample description that corresponds to the returned sample data (NULL to ignore)\n\t\t\t 0,\t\t\t\t\t\t\t\t// maximum number of samples to be returned (0 to use a value that is appropriate for the media)\n\t\t\tNULL,\t\t\t\t\t\t\t// number of samples it actually returned\n\t\t\t NULL);\t\t\t\t\t\t\t// flags that describe the sample (NULL to ignore)\t\t\n\t\n\tif (err)\n\t\treturn err;\n\n\tif (outDataPacketDescription) {\n\t\tThis->mPacketDescription.mStartOffset = 0;\n\t\tThis->mPacketDescription.mVariableFramesInPacket = 0;\n\t\tThis->mPacketDescription.mDataByteSize = bytesRead;\n\t\t*outDataPacketDescription = &This->mPacketDescription;\n\t}\n\t\n\tHLock(This->mPacketHandle);\n\tioData->mBuffers[0].mDataByteSize = bytesRead;\n\tioData->mBuffers[0].mData = *This->mPacketHandle;\n\tThis->mPacketMark += ioPackets;\n\t*ioNumberDataPackets = ioPackets;\n\treturn noErr;\n}\n\n// _______________________________________________________________________________________\n//\nvoid\tQTAACFile::ReadPackets(UInt32 &ioNumPackets, AudioBufferList *ioData)\n{\n\t// older versions of AudioConverterFillComplexBuffer don't do this, so do our own sanity check\n\tUInt32 maxNumPackets = ioData->mBuffers[0].mDataByteSize / mClientMaxPacketSize;\t\n\tif (ioNumPackets > maxNumPackets)\n\t\tioNumPackets = maxNumPackets;\n\t\n\tif (mConverter == NULL)\n\t\tXThrowIfError(ReadInputProc(NULL, &ioNumPackets, ioData, NULL, this), \"read audio file\");\n\telse {\n\t\tXThrowIfError(AudioConverterFillComplexBuffer(mConverter, ReadInputProc, this, &ioNumPackets, ioData, NULL),\n\t\t\t\"qt convert audio packets\");\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/Utility/QTAACFile.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tQTAACFile.h\n\t\n=============================================================================*/\n\n#ifndef __QTAACFile_h__\n#define __QTAACFile_h__\n\n#include <QuickTime/QuickTime.h>\n#include <AudioToolbox/AudioConverter.h>\n#include <AudioToolbox/AudioFormat.h>\n#include <vector>\n#include \"CAStreamBasicDescription.h\"\n#include \"CAAudioChannelLayout.h\"\n\n/*\n\tThis class is a stripped-down analogue to CAAudioFile, designed solely for reading AAC audio\n\ttracks from QuickTime/MP4 files.\n\t\n\tThrows CAXException's on errors.\n*/\nclass QTAACFile {\npublic:\n\tQTAACFile();\n\t~QTAACFile();\n\n\tvoid\t\tOpen(const char *filePath);\n\tvoid\t\tClose();\n\n\tvoid\t\tSetClientFormat(const CAStreamBasicDescription &dataFormat);\n\t\t\t\t\t// set the PCM format to which the movie's audio will be decoded\n\n\tOSStatus\tSetConverterProperty(\t\tAudioConverterPropertyID\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinPropertyDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void*\t\t\t\t\tinPropertyData,\n\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\tinCanFail);\n\n\tvoid\t\tReadPackets(UInt32 &ioNumPackets, AudioBufferList *ioData);\n\t\t\t\t\t// read packets from the audio file in the client format\n\t\t\t\t\t\nprivate:\n\tvoid\tCloseConverter();\n\tvoid\tUpdateClientMaxPacketSize();\n\n\tstatic OSStatus ReadInputProc(\t\tAudioConverterRef\t\t\t\tinAudioConverter,\n\t\t\t\t\t\t\t\t\t\tUInt32*\t\t\t\t\t\t\tioNumberDataPackets,\n\t\t\t\t\t\t\t\t\t\tAudioBufferList*\t\t\t\tioData,\n\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription**\toutDataPacketDescription,\n\t\t\t\t\t\t\t\t\t\tvoid*\t\t\t\t\t\t\tinUserData);\t\n\nprivate:\n\ttypedef std::vector<TimeValue> TimeValueList;\n\t\n\tSInt16\t\t\t\t\t\t\tmMovieResFile;\n\tMovie\t\t\t\t\t\t\tmMovie;\n\tMedia\t\t\t\t\t\t\tmMedia;\n\tHandle\t\t\t\t\t\t\tmPacketHandle;\n\tUInt32\t\t\t\t\t\t\tmMagicCookieSize;\n\tchar *\t\t\t\t\t\t\tmMagicCookie;\n\tTimeValueList\t\t\t\t\tmPacketTimes;\n\tUInt32\t\t\t\t\t\t\tmNumberPackets;\t\t// in file's format\n\tUInt32\t\t\t\t\t\t\tmPacketMark;\t\t// location in file, in file's format\n\t\t\n\tCAStreamBasicDescription\t\tmFileDataFormat;\n\tCAStreamBasicDescription\t\tmClientDataFormat;\n\tAudioConverterRef\t\t\t\tmConverter;\n\tUInt32\t\t\t\t\t\t\tmFileMaxPacketSize;\n\tUInt32\t\t\t\t\t\t\tmClientMaxPacketSize;\n\tAudioStreamPacketDescription\tmPacketDescription;\n};\n\n#endif // __QTAACFile_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/afconvert.cpp",
    "content": "/*\tCopyright: \t� Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apple�s\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tafconvert.cpp\n\t\n=============================================================================*/\n\n/*\n\tafconvert\n\t\n\tcommand-line tool to convert an audio file to another format\n*/\n\n#include \"afconvert.h\"\n#include <stdio.h>\n#include <vector>\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreServices/CoreServices.h>\n\t#include <AudioToolbox/AudioToolbox.h>\n#else\n\t#include <CoreServices.h>\n\t#include <AudioToolbox.h>\n#endif\n#include \"CAChannelLayouts.h\"\n\n#include \"CAAudioFileConverter.h\"\n#include \"CAXException.h\"\n#include \"CAAudioFileFormats.h\"\n#include \"AFToolsCommon.h\"\n#if !TARGET_OS_MAC\n\t#include <QTML.h>\n\t#include \"CAWindows.h\"\n#endif\n\n\nvoid AFConvertTool::usage()\n{\n\tfprintf(stderr,\n\t\t\t\"Usage:\\n\"\n\t\t\t\"%s [option...] input_file [output_file]\\n\\n\"\n\t\t\t\"Options: (may appear before or after arguments)\\n\"\n\t\t\t\"    { -f | --file } file_format:\\n\",\n#if !TARGET_OS_WIN32\n\t\t\tgetprogname());\n#else\n\t\t\t\"afconvert\");\n#endif\n\tPrintAudioFileTypesAndFormats(stderr);\n\tfprintf(stderr,\n\t\t\t\"    { -d | --data } data_format[@sample_rate_hz][/format_flags][#frames_per_packet] :\\n\"\n\t\t\t\"        [-][BE|LE]{F|[U]I}{8|16|24|32|64}          (PCM)\\n\"\n\t\t\t\"            e.g.   BEI16   F32@44100\\n\"\n\t\t\t\"        or a data format appropriate to file format, as above\\n\"\n\t\t\t\"        format_flags: hex digits, e.g. '80'\\n\"\n\t\t\t\"        bitdepth on non-PCM formats can be specified, e.g.: alac-24\\n\"\n\t\t\t\"        Frames per packet can be specified for some encoders, e.g.: samr#12\\n\"\n\t\t\t\"    { -c | --channels } number_of_channels\\n\"\n\t\t\t\"        add/remove channels without regard to order\\n\"\n\t\t\t\"    { -l | --channellayout } layout_tag\\n\"\n\t\t\t\"        layout_tag: name of a constant from CoreAudioTypes.h\\n\"\n\t\t\t\"          (prefix \\\"kAudioChannelLayoutTag_\\\" may be omitted)\\n\"\n\t\t\t\"        if specified once, applies to output file; if twice, the first\\n\"\n\t\t\t\"          applies to the input file, the second to the output file\\n\"\n\t\t\t\"    { -b | --bitrate } bit_rate_bps\\n\"\n\t\t\t\"         e.g. 128000\\n\"\n\t\t\t\"    { -q | --quality } codec_quality\\n\"\n\t\t\t\"        codec_quality: 0-127\\n\"\n\t\t\t\"    { -r | --src-quality } src_quality\\n\"\n\t\t\t\"        src_quality (sample rate converter quality): 0-127\\n\"\n\t\t\t\"    { -v | --verbose }\\n\"\n\t\t\t\"        print progress verbosely\\n\"\n\t\t\t\"    { -s | --strategy } strategy\\n\"\n\t\t\t\"        bitrate strategy for encoded file\\n\"\n\t\t\t\"        0 for CBR, 1 for ABR, 2 for VBR\\n\"\n\t\t\t\"    { -t | --tag }\\n\"\n\t\t\t\"        If encoding to CAF, store the source file's format and name in a user chunk.\\n\"\n\t\t\t\"        If decoding from CAF, use the destination format and filename found in a user chunk.\\n\"\n\t\t\t\"    --prime-method method\\n\"\n\t\t\t\"        decode priming method (see AudioConverter.h)\\n\"\n\t\t\t);\n\tExtraUsageOptions();\n\texit(1);\n}\n\nvoid\tWarning(const char *s, OSStatus error)\n{\n\tchar buf[256];\n\tfprintf(stderr, \"*** warning: %s (%s)\\n\", s, CAXException::FormatError(buf, sizeof(buf), error));\n}\n\nOSType AFConvertTool::Parse4CharCode(const char *arg, const char *name)\n{\n\tOSType t;\n\tStrToOSType(arg, t);\n\tif (t == 0) {\n\t\tfprintf(stderr, \"invalid 4-char-code argument for %s: '%s'\\n\\n\", name, arg);\n\t\tusage();\n\t}\n\treturn t;\n}\n\n\nint\t\tAFConvertTool::main(int argc, const char * argv[])\n{\n\tInit();\n\t\n\tCAAudioFileConverter::ConversionParameters &params = *mParams;\n\tbool gotOutDataFormat = false;\n\t\n\tCAXException::SetWarningHandler(Warning);\n\t\n\tif (argc < 2)\n\t\tusage();\n\t\n\tparams.flags = CAAudioFileConverter::kOpt_OverwriteOutputFile;\n\t\n\tfor (int i = 1; i < argc; ++i) {\n\t\tconst char *arg = argv[i];\n\t\tif (arg[0] != '-') {\n\t\t\tif (params.input.filePath == NULL) params.input.filePath = arg;\n\t\t\telse if (params.output.filePath == NULL) params.output.filePath = arg;\n\t\t\telse usage();\n\t\t} else {\n\t\t\targ += 1;\n\t\t\tif (arg[0] == 'f' || !strcmp(arg, \"-file\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tparams.output.fileType = Parse4CharCode(argv[i], \"-f | --file\");\n\t\t\t} else if (arg[0] == 'd' || !strcmp(arg, \"-data\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tif (!ParseStreamDescription(argv[i], params.output.dataFormat))\n\t\t\t\t\tusage();\n\t\t\t\tgotOutDataFormat = true;\n\t\t\t} else if (arg[0] == 'b' || !strcmp(arg, \"-bitrate\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tparams.output.bitRate = ParseInt(argv[i], \"-b | --bitrate\");\n\t\t\t} else if (arg[0] == 'q' || !strcmp(arg, \"-quality\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tparams.output.codecQuality = ParseInt(argv[i], \"-q | --quality\");\n\t\t\t} else if (arg[0] == 'r' || !strcmp(arg, \"-src-quality\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tparams.output.srcQuality = ParseInt(argv[i], \"-r | --src-quality\");\n\t\t\t} else if (arg[0] == 'l' || !strcmp(arg, \"-channellayout\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tUInt32 tag = CAChannelLayouts::StringToConstant(argv[i]);\n\t\t\t\tif (tag == CAChannelLayouts::kInvalidTag) {\n\t\t\t\t\tfprintf(stderr, \"unknown channel layout tag: %s\\n\\n\", argv[i]);\n\t\t\t\t\tusage();\n\t\t\t\t}\n\t\t\t\tif (params.output.channelLayoutTag == 0)\n\t\t\t\t\tparams.output.channelLayoutTag = tag;\n\t\t\t\telse if (params.input.channelLayoutTag == 0) {\n\t\t\t\t\tparams.input.channelLayoutTag = params.output.channelLayoutTag;\n\t\t\t\t\tparams.output.channelLayoutTag = tag;\n\t\t\t\t} else {\n\t\t\t\t\tfprintf(stderr, \"too many channel layout tags!\\n\\n\");\n\t\t\t\t\tusage();\n\t\t\t\t}\n\t\t\t} else if (arg[0] == 'c' || !strcmp(arg, \"-channels\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tparams.output.channels = ParseInt(argv[i], \"-c | --channels\");\n\t\t\t} else if (arg[0] == 'v' || !strcmp(arg, \"-verbose\")) {\n\t\t\t\tparams.flags |= CAAudioFileConverter::kOpt_Verbose;\n\t\t\t} else if (arg[0] == 's' || !strcmp(arg, \"-strategy\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tparams.output.strategy = ParseInt(argv[i], \"-s | --strategy\");\n\t\t\t} else if (arg[0] == 't' || !strcmp(arg, \"-tag\")) {\n\t\t\t\tparams.flags |= CAAudioFileConverter::kOpt_CAFTag;\n\t\t\t} else if (!strcmp(arg, \"-prime-method\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tparams.output.primeMethod = ParseInt(argv[i], \"-p | --prime-method\");\n\t\t\t} else if (!ParseOtherOption(argv, i)) {\n\t\t\t\tfprintf(stderr, \"unknown argument: %s\\n\\n\", arg - 1);\n\t\t\t\tusage();\n\t\t\t}\n\t\t}\n\t}\n\tif (params.input.filePath == NULL) {\n\t\tfprintf(stderr, \"no input file specified\\n\\n\");\n\t\tusage();\n\t}\n\t\n\tif (!(params.flags & CAAudioFileConverter::kOpt_CAFTag)) {\n\t\tif (!gotOutDataFormat) {\n\t\t\tif (params.output.fileType == 0) {\n\t\t\t\tfprintf(stderr, \"no output file or data format specified\\n\\n\");\n\t\t\t\tusage();\n\t\t\t}\n\t\t\tif (!CAAudioFileFormats::Instance()->InferDataFormatFromFileFormat(params.output.fileType, params.output.dataFormat)) {\n\t\t\t\tfprintf(stderr, \"Couldn't infer data format from file format\\n\\n\");\n\t\t\t\tusage();\n\t\t\t}\n\t\t} else if (params.output.fileType == 0) {\n\t\t\tCAAudioFileFormats *formats = CAAudioFileFormats::Instance();\n\t\t\tif (!formats->InferFileFormatFromFilename(params.output.filePath, params.output.fileType) && !formats->InferFileFormatFromDataFormat(params.output.dataFormat, params.output.fileType)) {\n\t\t\t\tparams.output.dataFormat.PrintFormat(stderr, \"\", \"Couldn't infer file format from data format\");\n\t\t\t\tusage();\n\t\t\t}\n\t\t}\n\t}\n\n\ttry {\n\t\tmAFConverter->ConvertFile(params);\n\t\tSuccess();\n\t}\n\tcatch (CAXException &e) {\n\t\tchar buf[256];\n\t\tfprintf(stderr, \"Error: %s (%s)\\n\", e.mOperation, e.FormatError(buf, sizeof(buf)));\n\t\treturn 1;\n\t}\n\tcatch (...) {\n\t\tfprintf(stderr, \"An unknown error occurred\\n\");\n\t\treturn 1;\n\t}\n\n\treturn 0;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/afconvert.h",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tafconvert.h\n\t\n=============================================================================*/\n\n#ifndef __afconvert_h__\n#define __afconvert_h__\n\n#include \"CAAudioFileConverter.h\"\n\nclass AFConvertTool {\npublic:\n\tAFConvertTool() :\n\t\tmAFConverter(NULL),\n\t\tmParams(NULL)\n\t\t{ }\n\t\n\tvirtual ~AFConvertTool() {\n\t\tdelete mAFConverter;\n\t\tdelete mParams;\n\t}\n\t\n\t\n\tint\t\t\t\tmain(int argc, const char *argv[]);\n\tvirtual void\tInit() {\t\t// called on entry to main\n\t\tmParams = new CAAudioFileConverter::ConversionParameters;\n\t\tmAFConverter = new CAAudioFileConverter;\n\t}\n\t\n\tvirtual bool\tParseOtherOption(const char *argv[], int &argIndex) { return false; }\n\tvirtual void\tSuccess() { }\t// called after successful conversion\n\n\tvoid\t\t\tusage();\n\tvirtual void\tExtraUsageOptions() { }\n\tvoid\t\t\tMissingArgument() {\n\t\tfprintf(stderr, \"missing argument\\n\\n\");\n\t\tusage();\n\t}\n\tOSType Parse4CharCode(const char *arg, const char *name);\n\n\tint\tParseInt(const char *arg, const char *name)\n\t{\n\t\tint x;\n\t\tif (sscanf(arg, \"%d\", &x) != 1) {\n\t\t\tfprintf(stderr, \"invalid integer argument for %s: '%s'\\n\\n\", name, arg);\n\t\t\tusage();\n\t\t}\n\t\treturn x;\n\t}\n\n\n\t\n\tCAAudioFileConverter *\t\t\t\t\t\tmAFConverter;\n\tCAAudioFileConverter::ConversionParameters\t*mParams;\n};\n\n#endif // __afconvert_h__\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/afconvert_main.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tafconvert_main.cpp\n\t\n=============================================================================*/\n\n#include \"afconvert.h\"\n#if !TARGET_OS_MAC\n\t#include <QTML.h>\n#endif\n\nint\tmain(int argc, const char * argv[])\n{\n\tAFConvertTool t;\n\t\n\tint theAnswer = t.main(argc, argv);\n\t\n\treturn theAnswer;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/afinfo.cpp",
    "content": "/*\tCopyright: \t� Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apple�s\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tafinfo.cpp\n\t\n=============================================================================*/\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioToolbox.h>\n#else\n\t#include <AudioToolbox.h>\n#endif\n\n#if TARGET_OS_WIN32\n\t#include <QTML.h>\n#endif\n\n#include <stdio.h>\n#include \"CAStreamBasicDescription.h\"\n#include <stdlib.h>\n#include <CarbonCore/Endian.h>\n\n//using namespace std;\n\nint main (int argc, const char * argv[]) \n{\n#if TARGET_OS_WIN32\n\tInitializeQTML(0L);\n#endif\n\tint enc = kCFStringEncodingUTF8;\n\t\n\tfor (int i=1; i<argc; ++i)\n\t{\n\t\tOSStatus err;\n\t\tCAStreamBasicDescription asbd;\n\t\tAudioChannelLayout *acl = 0;\n\t\tUInt32 propertySize;\n\t\tUInt32 specifierSize;\n\t\tAudioFileID afid;\n\t\tBoolean res;\n\t\tFSRef fsRef;\n\t\tAudioFileTypeID filetype;\n\t\tCFStringRef filename = CFStringCreateWithCString(NULL, argv[i], enc);\n\t\tif (!filename) continue;\n\t\t\n\t\tCFURLRef url = CFURLCreateWithFileSystemPath(NULL, filename, kCFURLPOSIXPathStyle, true);\n\t\tif (!url) {\n\t\t\tfprintf(stderr, \"Can't create CFURL for '%s'\\n\", argv[i]);\n\t\t\tgoto Bail3;\n\t\t}\n\t\t\n\t\tres = CFURLGetFSRef(url, &fsRef);\n\t\tif (!res) {\n\t\t\tfprintf(stderr, \"Can't get FSRef for '%s'\\n\", argv[i]);\n\t\t\tgoto Bail2;\n\t\t}\n\n\t\terr = AudioFileOpen(&fsRef, fsRdPerm, 0, &afid);\n\t\tif (err) {\n\t\t\tfprintf(stderr, \"AudioFileOpen failed for '%s'\\n\", argv[i]);\n\t\t\tgoto Bail2;\n\t\t}\n\t\t\n\t\tpropertySize = sizeof(AudioFileTypeID);\n\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyFileFormat, &propertySize, &filetype);\n\t\tif (err) {\n\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyFileFormat failed for '%s'\\n\", argv[i]);\n\t\t\tgoto Bail1;\n\t\t}\n\t\tfiletype = EndianU32_NtoB(filetype);\t// for display purposes\n\t\t\n\t\tpropertySize = sizeof(asbd);\n\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyDataFormat, &propertySize, &asbd);\n\t\tif (err) {\n\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyDataFormat failed for '%s'\\n\", argv[i]);\n\t\t\tgoto Bail1;\n\t\t}\n\n\t\tprintf(\"File:           %s\\n\", argv[i]);\n\t\tprintf(\"File type ID:   %-4.4s\\n\", (char *)&filetype);\n\t\tasbd.PrintFormat(stdout, \"\", \"Data format:   \");\n\n\t\tUInt32 writable;\n\t\terr = AudioFileGetPropertyInfo(afid, kAudioFilePropertyChannelLayout, &propertySize, &writable);\n\t\tif (err) {\n\t\t\t//fprintf(stderr, \"AudioFileGetPropertyInfo kAudioFilePropertyChannelLayout failed for '%s'\\n\", argv[i]);\n\t\t\tprintf(\"   no channel layout.\\n\");\n\t\t} else {\n\t\t\t\n\t\t\tacl = (AudioChannelLayout*)calloc(1, propertySize);\n\t\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyChannelLayout, &propertySize, acl);\n\t\t\tif (err) {\n\t\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyChannelLayout failed for '%s'\\n\", argv[i]);\n\t\t\t\tgoto Bail1;\n\t\t\t}\n\t\t\t\n\t\t\tCFStringRef aclname;\n\t\t\tchar aclstr[512];\n\t\t\tspecifierSize = propertySize;\n\t\t\tpropertySize = sizeof(aclname);\n\t\t\tAudioFormatGetProperty(kAudioFormatProperty_ChannelLayoutName, specifierSize, acl, &propertySize, &aclname);\n\t\t\tif (err) {\n\t\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyChannelLayout failed for '%s'\\n\", argv[i]);\n\t\t\t\tgoto Bail1;\n\t\t\t}\n\t\t\tCFStringGetCString(aclname, aclstr, 512, kCFStringEncodingUTF8);\n\t\t\t\n\t\t\tprintf(\"Channel layout: %s\\n\", aclstr);\n\t\t}\n\t\t\n\t\tUInt64 dataByteCount;\n\t\tpropertySize = sizeof(dataByteCount);\n\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyAudioDataByteCount, &propertySize, &dataByteCount);\n\t\tif (err) {\n\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyAudioDataByteCount failed for '%s'\\n\", argv[i]);\n\t\t} else {\n\t\t\tprintf(\"audio bytes: %llu\\n\", dataByteCount);\n\t\t}\n\t\t\n\t\tUInt64 dataPacketCount;\n\t\tUInt64 totalFrames;\n\t\ttotalFrames = 0;\n\t\tpropertySize = sizeof(dataPacketCount);\n\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyAudioDataPacketCount, &propertySize, &dataPacketCount);\n\t\tif (err) {\n\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyAudioDataPacketCount failed for '%s'\\n\", argv[i]);\n\t\t} else {\n\t\t\tprintf(\"audio packets: %llu\\n\", dataPacketCount);\n\t\t\tif (asbd.mFramesPerPacket)\n\t\t\t\ttotalFrames = asbd.mFramesPerPacket * dataPacketCount;\n\t\t}\n\t\t\n\t\tAudioFilePacketTableInfo pti;\n\t\tpropertySize = sizeof(pti);\n\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyPacketTableInfo, &propertySize, &pti);\n\t\tif (err == noErr) {\n\t\t\ttotalFrames = pti.mNumberValidFrames;\n\t\t\tprintf(\"audio %qd valid frames + %ld priming + %ld remainder = %qd\\n\", pti.mNumberValidFrames, pti.mPrimingFrames, pti.mRemainderFrames, pti.mNumberValidFrames + pti.mPrimingFrames + pti.mRemainderFrames);\n\t\t}\n\t\t\n\t\tif (totalFrames != 0)\n\t\t\tprintf(\"duration: %.4f seconds\\n\", (double)totalFrames / (double)asbd.mSampleRate );\n\n\t\tUInt32 maxPacketSize;\n\t\tpropertySize = sizeof(maxPacketSize);\n\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyMaximumPacketSize, &propertySize, &maxPacketSize);\n\t\tif (err) {\n\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyMaximumPacketSize failed for '%s'\\n\", argv[i]);\n\t\t} else {\n\t\t\tprintf(\"maximum packet size: %lu\\n\", maxPacketSize);\n\t\t}\n\t\t\n\t\tUInt64 dataOffset;\n\t\tpropertySize = sizeof(dataOffset);\n\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyDataOffset, &propertySize, &dataOffset);\n\t\tif (err) {\n\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyDataOffset failed for '%s'\\n\", argv[i]);\n\t\t} else {\n\t\t\tprintf(\"audio data file offset: %llu\\n\", dataOffset);\n\t\t}\n\t\t\n\t\tUInt32 isOptimized;\n\t\tpropertySize = sizeof(isOptimized);\n\t\terr = AudioFileGetProperty(afid, kAudioFilePropertyIsOptimized, &propertySize, &isOptimized);\n\t\tif (err) {\n\t\t\tfprintf(stderr, \"AudioFileGetProperty kAudioFilePropertyIsOptimized failed for '%s'\\n\", argv[i]);\n\t\t} else {\n\t\t\tprintf(isOptimized ? \"optimized\\n\" : \"not optimized\\n\");\n\t\t}\n\t\t\t\t\t\t\t\t\n\t\tBail1:\n\t\tAudioFileClose(afid);\n\t\tBail2:\n\t\tCFRelease(url);\n\t\tBail3:\n\t\tCFRelease(filename);\n\t\tfree(acl);\n\t\t\n\t\tprintf(\"----\\n\");\n\t}\n    return 0;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/afinterleave.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tInterleaver.cpp\n\t\n=============================================================================*/\n\n#include \"CAAudioFile.h\"\n#include \"CAXException.h\"\n#include <unistd.h>\n#include \"CAChannelLayouts.h\"\n#include \"CAFilePathUtils.h\"\n\nstatic void usage()\n{\n\tfprintf(stderr,\n\t\t\t\"Usage:\\n\"\n\t\t\t\"%s [option...] input_file... -o output_file\\n\\n\"\n\t\t\t\"Options: (may appear before or after arguments)\\n\"\n\t\t\t\"    { -l | --channellayout } layout_tag\\n\"\n\t\t\t\"        layout_tag: name of a constant from CoreAudioTypes.h\\n\"\n\t\t\t\"          (prefix \\\"kAudioChannelLayoutTag_\\\" may be omitted)\\n\",\n\t\t\tgetprogname()\n\t\t\t);\n\texit(1);\n}\n\n\nvoid\tInterleave(int nInputs, const char *infilenames[], const char *outfilename, const CAAudioChannelLayout *layout)\n{\n\tconst UInt32 kBufferSizeFrames = 0x8000;\n\tconst UInt32 kBufferSizeBytes = kBufferSizeFrames * sizeof(Float32);\n\tclass FileAndBuffer : public CAAudioFile {\n\tpublic:\n\t\tFileAndBuffer() : mBuf(NULL), mPtrs(NULL) { }\n\t\t~FileAndBuffer() { delete mBuf; delete mPtrs; }\n\t\t\n\t\tCABufferList *\tmBuf;\n\t\tCABufferList *\tmPtrs;\n\t};\n\tFileAndBuffer *infiles = new FileAndBuffer[nInputs], *file;\n\tFileAndBuffer outfile;\n\tint i;\n\tUInt32 outputChannels = 0;\n\tdouble sampleRate = 0.;\n\tUInt32 maxBitDepth = 0;\n\tCAStreamBasicDescription clientFormat;\n\tbool outFileCreated = false;\n\t\n\ttry {\n\t\t// set up input files\n\t\tfor (i = 0; i < nInputs; ++i) {\n\t\t\tfile = &infiles[i];\n\t\t\tfile->Open(infilenames[i]);\n\t\t\tconst CAStreamBasicDescription &fmt = file->GetFileDataFormat();\n\t\t\t//fmt.PrintFormat(stdout, \"\", \"input file\");\n\t\t\tXThrowIf(fmt.mFormatID != kAudioFormatLinearPCM, -1, \"input files must be PCM\");\n\t\t\toutputChannels += fmt.mChannelsPerFrame;\n\t\t\tif (sampleRate == 0.)\n\t\t\t\tsampleRate = fmt.mSampleRate;\n\t\t\telse\n\t\t\t\tXThrowIf(fmt.mSampleRate != sampleRate, -1, \"input files must have the same sample rate\");\n\t\t\tif (fmt.mBitsPerChannel > maxBitDepth)\n\t\t\t\tmaxBitDepth = fmt.mBitsPerChannel;\n\t\t\tclientFormat.mSampleRate = sampleRate;\n\t\t\tclientFormat.SetCanonical(fmt.mChannelsPerFrame, false);\t// deinterleaved\n\t\t\tfile->SetClientFormat(clientFormat, NULL);\n\t\t\tfile->mBuf = CABufferList::New(\"readbuf\", clientFormat);\n\t\t\tfile->mBuf->AllocateBuffers(kBufferSizeBytes);\n\t\t\tfile->mPtrs = CABufferList::New(\"readptrs\", clientFormat);\n\t\t\t//clientFormat.PrintFormat(stdout, \"\", \"input client\");\n\t\t}\n\t\t\n\t\tif (layout != NULL) {\n\t\t\tif (AudioChannelLayoutTag_GetNumberOfChannels(layout->Tag()) != outputChannels) {\n\t\t\t\tfprintf(stderr, \"Channel layout tag '%s' is inappropriate for %lu channels of audio -- aborting\\n\", \n\t\t\t\t\tCAChannelLayouts::ConstantToString(layout->Tag()), outputChannels);\n\t\t\t\texit(2);\n\t\t\t}\n\t\t}\n\n\t\t// prepare output file format\n\t\tCAStreamBasicDescription outfmt;\n\t\toutfmt.mSampleRate = sampleRate;\n\t\toutfmt.mFormatID = kAudioFormatLinearPCM;\n\t\toutfmt.mFormatFlags = kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked;\n\t\toutfmt.mBitsPerChannel = maxBitDepth;\n\t\toutfmt.mChannelsPerFrame = outputChannels;\n\t\toutfmt.mBytesPerPacket = outfmt.mBytesPerFrame = outputChannels * (maxBitDepth >> 3);\n\t\toutfmt.mFramesPerPacket = 1;\n\t\t//outfmt.PrintFormat(stdout, \"\", \"output file\");\n\t\t\n\t\tunlink(outfilename);\n\t\tFSRef parentDir;\n\t\tCFStringRef outName;\n\t\tXThrowIfError(PosixPathToParentFSRefAndName(outfilename, parentDir, outName), \"Couldn't locate output directory\");\n\t\toutfile.CreateNew(parentDir, outName, kAudioFileAIFFType, outfmt, layout ? &layout->Layout() : NULL);\n\t\toutFileCreated = true;\n\t\t\n\t\t// create the output file and buffers\n\t\tclientFormat.mSampleRate = sampleRate;\n\t\tclientFormat.SetCanonical(outputChannels, false);\n\t\toutfile.SetClientFormat(clientFormat, NULL);\n\t\t//clientFormat.PrintFormat(stdout, \"\", \"output client\");\n\n\t\toutfile.mPtrs = CABufferList::New(\"writeptrs\", clientFormat);\n\n\t\tAudioBufferList &writebufs = outfile.mPtrs->GetModifiableBufferList();\n\t\tint outbuf = 0;\n\t\tfor (i = 0; i < nInputs; ++i) {\n\t\t\tfile = &infiles[i];\n\t\t\tconst CABufferList *bl = file->mBuf;\n\t\t\tconst AudioBufferList &readbufs = bl->GetBufferList();\n\t\t\tmemcpy(&writebufs.mBuffers[outbuf], &readbufs.mBuffers[0], \n\t\t\t\treadbufs.mNumberBuffers * sizeof(AudioBuffer));\n\t\t\toutbuf += readbufs.mNumberBuffers;\n\t\t}\n\t\t\n\t\twhile (true) {\n\t\t\tUInt32 maxFramesRead = 0;\n\t\t\tUInt32 nframes;\n\t\t\tfor (i = 0; i < nInputs; ++i) {\n\t\t\t\tfile = &infiles[i];\n\t\t\t\tfile->mPtrs->SetFrom(file->mBuf);\n\t\t\t\tnframes = kBufferSizeFrames;\n\t\t\t\tAudioBufferList &readbufs = file->mPtrs->GetModifiableBufferList();\n\t\t\t\tfile->Read(nframes, &readbufs);\n\t\t\t\t//CAShowAudioBufferList(&readbufs, 8, 0);\n\t\t\t\tif (nframes > maxFramesRead)\n\t\t\t\t\tmaxFramesRead = nframes;\n\t\t\t\tif (nframes < kBufferSizeFrames)\n\t\t\t\t\tfile->mPtrs->PadWithZeroes(kBufferSizeBytes);\n\t\t\t}\n\t\t\tif (maxFramesRead == 0)\n\t\t\t\tbreak;\n\n\t\t\tif (maxFramesRead < kBufferSizeFrames)\n\t\t\t\toutfile.mPtrs->SetNumBytes(maxFramesRead * sizeof(Float32));\n\t\t\t//CAShowAudioBufferList(&writebufs, 8, 0);\n\t\t\toutfile.Write(maxFramesRead, &writebufs);\n\t\t\tif (maxFramesRead < kBufferSizeFrames)\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tcatch (...) {\n\t\tif (outFileCreated)\n\t\t\tunlink(outfilename);\n\t\tdelete[] infiles;\n\t\tthrow;\n\t}\n\toutfile.Close();\n\t// input files are closed from destructors\n\tdelete[] infiles;\n}\n\nstatic void\tMissingArgument()\n{\n\tfprintf(stderr, \"missing argument\\n\\n\");\n\tusage();\n}\n\nint\tmain(int argc, const char *argv[])\n{\n\tint nins = 0;\n\tstatic const int MAX_INPUT_FILES = 32;\n\tconst char *infiles[MAX_INPUT_FILES];\n\tconst char *outfile = NULL;\n\tUInt32 layoutTag = 0;\n\n\tfor (int i = 1; i < argc; ++i) {\n\t\tconst char *arg = argv[i];\n\t\tif (arg[0] != '-') {\n\t\t\tif (nins >= MAX_INPUT_FILES) {\n\t\t\t\tfprintf(stderr, \"too many input files\\n\\n\");\n\t\t\t\tusage();\n\t\t\t}\n\t\t\tinfiles[nins++] = arg;\n\t\t} else {\n\t\t\targ += 1;\n\t\t\tif (arg[0] == 'o') {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\toutfile = argv[i];\n\t\t\t} else if (arg[0] == 'l' || !strcmp(arg, \"-channellayout\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tlayoutTag = CAChannelLayouts::StringToConstant(argv[i]);\n\t\t\t\tif (layoutTag == CAChannelLayouts::kInvalidTag) {\n\t\t\t\t\tfprintf(stderr, \"unknown channel layout tag: %s\\n\\n\", argv[i]);\n\t\t\t\t\tusage();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfprintf(stderr, \"unknown argument: %s\\n\\n\", arg - 1);\n\t\t\t\tusage();\n\t\t\t}\n\t\t}\n\t}\n\t\n\tif (nins < 2 || outfile == NULL)\n\t\tusage();\n\t\n\ttry {\n\t\tif (layoutTag != 0) {\n\t\t\tCAAudioChannelLayout layout = CAAudioChannelLayout(layoutTag);\n\t\t\tInterleave(nins, infiles, outfile, &layout);\n\t\t} else\n\t\t\tInterleave(nins, infiles, outfile, NULL);\n\t}\n\tcatch (CAXException &e) {\n\t\tchar buf[256];\n\t\tfprintf(stderr, \"Error: %s (%s)\\n\", e.mOperation, CAXException::FormatError(buf, e.mError));\n\t\treturn 1;\n\t}\n\tcatch (...) {\n\t\tfprintf(stderr, \"An unknown error occurred\\n\");\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/afplay.cpp",
    "content": "/*\tCopyright: \t� Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apple�s\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tplayaudiofile.cpp\n\t\n=============================================================================*/\n\n#include \"CAChannelMappingPlayer.h\"\n#include \"CAXException.h\"\n\n#if TARGET_OS_MAC\n\t#include <unistd.h>\n#else\n\t#include <QTML.h>\n\t#include \"CAWindows.h\"\n#endif\n\nstatic void usage()\n{\n\tfprintf(stderr,\n\t\t\t\"Usage:\\n\"\n\t\t\t\"%s [option...] audio_file\\n\\n\"\n\t\t\t\"Options: (may appear before or after arguments)\\n\"\n\t\t\t\"  {-a --all}\\n\"\n\t\t\t\"    for files with >2 channels, play each pair of channels in succession\\n\"\n\t\t\t\"  {-f --frame} FRAME\\n\"\n\t\t\t\"    starting sample frame number\\n\"\n\t\t\t\"  {-s --seconds} START_SECONDS END_SECONDS\\n\"\n\t\t\t\"    segment of file to play, in seconds\\n\"\n#if !TARGET_OS_WIN32\n\t\t\t, getprogname());\n#else\n\t\t\t, \"afplay\");\n#endif\n\texit(1);\n}\n\nstatic void Play(CAChannelMappingPlayer &player, SInt64 startFrame, SInt64 endFrame)\n{\n\tCAAudioFile &file = player.GetFile();\n\tif (startFrame < 0) {\n\t\tstartFrame = 0;\n\t}\n\tif (endFrame <= 0) {\n\t\tSInt64 numFrames = SInt64(file.GetNumberFrames() * file.GetClientDataFormat().mSampleRate / file.GetFileDataFormat().mSampleRate);\n\t\tendFrame = numFrames;\n\t}\n\tplayer.Start();\n\twhile (true) {\n\t\tSInt64 pos = player.GetCurrentFrame();\n\t\t//file.Tell();\n\t\tif (pos >= endFrame)\n\t\t\tbreak;\n\t\tusleep(250000);\t// 250 ms\n\t}\n\tplayer.Stop();\n}\n\nvoid\tMissingArgument()\n{\n\tfprintf(stderr, \"Missing argument\\n\");\n\tusage();\n}\n\nint main(int argc, const char *argv[])\n{\n\tconst char *fileToPlay = NULL;\n\tbool playallpairs = false;\n\tdouble startSeconds = -1, endSeconds = -1;\n\tSInt64 startFrame = 0, endFrame = 0;\n\n\t#if TARGET_OS_WIN32\n\t\tInitializeQTML(0L);\n\t#endif\n\n\tfor (int i = 1; i < argc; ++i) {\n\t\tconst char *arg = argv[i];\n\t\tif (arg[0] != '-') {\n\t\t\tif (fileToPlay != NULL) {\n\t\t\t\tfprintf(stderr, \"may only specify one file to play\\n\");\n\t\t\t\tusage();\n\t\t\t}\n\t\t\tfileToPlay = arg;\n\t\t} else {\n\t\t\targ += 1;\n\t\t\tif (arg[0] == 'a' || !strcmp(arg, \"-all\"))\n\t\t\t\tplayallpairs = true;\n\t\t\telse if (arg[0] == 'f' || !strcmp(arg, \"-frame\")) {\n\t\t\t\tif (++i == argc)\n\t\t\t\t\tMissingArgument();\n\t\t\t\targ = argv[i];\n\t\t\t\tsscanf(arg, \"%qd\", &startFrame);\n\t\t\t} else if (arg[0] == 's' || !strcmp(arg, \"-seconds\")) {\n\t\t\t\tif (++i == argc)\n\t\t\t\t\tMissingArgument();\n\t\t\t\targ = argv[i];\n\t\t\t\tsscanf(arg, \"%lf\", &startSeconds);\n\t\t\t\tif (i + 1 < argc && argv[i+1][0] != '-') {\n\t\t\t\t\targ = argv[++i];\n\t\t\t\t\tsscanf(arg, \"%lf\", &endSeconds);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfprintf(stderr, \"unknown argument: %s\\n\\n\", arg - 1);\n\t\t\t\tusage();\n\t\t\t}\n\t\t}\n\t}\n\t\n\tif (fileToPlay == NULL)\n\t\tusage();\n\n\ttry {\n\t\tconst int kNumberBuffers = 3;\n\t\tconst unsigned kBufferSize = 0x1000;\n\t\tFSRef playFSRef;\n\t\tXThrowIfError(FSPathMakeRef((UInt8 *)fileToPlay, &playFSRef, NULL), \"Input file not found\");\n\t\tCAChannelMappingPlayer player(kNumberBuffers, kBufferSize);\n\t\tplayer.SetFile(playFSRef);\n\t\tCAAudioFile &file = player.GetFile();\n\t\tCAChannelMapper *mapper = player.GetMapper();\n\t\tif (playallpairs && mapper == NULL)\n\t\t\tplayallpairs = false;\n\t\t\n\t\tif (startSeconds >= 0) {\n\t\t\tFloat64 sr = file.GetClientDataFormat().mSampleRate;\n\t\t\tstartFrame = SInt64(startSeconds * sr);\n\t\t\tif (endSeconds > startSeconds)\n\t\t\t\tendFrame = SInt64(endSeconds * sr);\n\t\t\tprintf(\"secs: %.1f-%.1f  frames: %qd-%qd\\n\", startSeconds, endSeconds, startFrame, endFrame);\n\t\t}\n\t\t\n\t\tif (playallpairs) {\n\t\t\tint nChannelsInFile = file.GetFileDataFormat().NumberChannels();\n\t\t\tfor (int channel = 0; channel < nChannelsInFile && playallpairs; channel += 2) {\n\t\t\t\tprintf(\"channels %d-%d of %d\\n\", channel, channel+1, nChannelsInFile);\n\t\t\t\tmapper->ResetMixer();\n\t\t\t\tmapper->ConnectChannelToChannel(channel, 0);\n\t\t\t\tmapper->ConnectChannelToChannel(channel+1, 1);\n\t\t\t\tplayer.SetCurrentPosition(0.);\n\t\t\t\tPlay(player, startFrame, endFrame);\n\t\t\t}\n\t\t} else {\n\t\t\tfile.Seek(startFrame);\n\t\t\tPlay(player, startFrame, endFrame);\n\t\t}\n\t}\n\tcatch (CAXException &e) {\n\t\tchar buf[256];\n\t\tfprintf(stderr, \"Error: %s (%s)\\n\", e.mOperation, CAXException::FormatError(buf, sizeof(buf), e.mError));\n\t\treturn 1;\n\t}\n\tcatch (...) {\n\t\tfprintf(stderr, \"An unknown error occurred\\n\");\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/afrecord.cpp",
    "content": "/*\tCopyright: \t� Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apple�s\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tafrecord.cpp\n\t\n=============================================================================*/\n\n#include \"CAAudioFileRecorder.h\"\n#include \"CAXException.h\"\n#include <unistd.h>\n#include \"AFToolsCommon.h\"\n#include \"CAFilePathUtils.h\"\n#include \"CAAudioFileFormats.h\"\n\nstatic void usage()\n{\n\tfprintf(stderr,\n\t\t\t\"Usage:\\n\"\n\t\t\t\"%s [option...] audio_file\\n\\n\"\n\t\t\t\"Options: (may appear before or after arguments)\\n\"\n\t\t\t\"    { -f | --file } file_format:\\n\"\n\t\t\t, getprogname());\n\tPrintAudioFileTypesAndFormats(stderr);\n\tfprintf(stderr,\n\t\t\t\"    { -d | --data } data_format[@sample_rate_hz]:\\n\"\n\t\t\t\"        [-][BE|LE]{F|[U]I}{8|16|24|32|64}          (PCM)\\n\"\n\t\t\t\"            e.g. -BEI16 -F32@44100\\n\"\n\t\t\t\"        or a data format appropriate to file format, as above\\n\"\n\t\t\t\"    { -c | --channels } number_of_channels\\n\"\n\t\t\t\"        add/remove channels without regard to order\\n\"\n\t\t\t\"    { -l | --channellayout } layout_tag\\n\"\n\t\t\t\"        layout_tag: name of a constant from CoreAudioTypes.h\\n\"\n\t\t\t\"          (prefix \\\"kAudioChannelLayoutTag_\\\" may be omitted)\\n\"\n\t\t\t\"        if specified once, applies to output file; if twice, the first\\n\"\n\t\t\t\"          applies to the input file, the second to the output file\\n\"\n\t\t\t\"    { -b | --bitrate } bit_rate_bps\\n\"\n\t\t\t\"         e.g. 128000\\n\"\n\t\t\t\"    { -q | --quality } quality\\n\"\n\t\t\t\"        quality: 0-127\\n\"\n\t\t\t\"    { -v | --verbose }\\n\"\n\t\t\t\"        print progress verbosely\\n\"\n\t\t\t\"    { -p | --profile }\\n\"\n\t\t\t\"        collect and print performance profile\\n\"\n\t\t\t);\n\texit(1);\n}\n\nstatic void\tMissingArgument()\n{\n\tfprintf(stderr, \"missing argument\\n\\n\");\n\tusage();\n}\n\nstatic OSType Parse4CharCode(const char *arg, const char *name)\n{\n\tOSType t;\n\tStrToOSType(arg, t);\n\tif (t == 0) {\n\t\tfprintf(stderr, \"invalid 4-char-code argument for %s: '%s'\\n\\n\", name, arg);\n\t\tusage();\n\t}\n\treturn t;\n}\n\nstatic int\tParseInt(const char *arg, const char *name)\n{\n\tint x;\n\tif (sscanf(arg, \"%d\", &x) != 1) {\n\t\tfprintf(stderr, \"invalid integer argument for %s: '%s'\\n\\n\", name, arg);\n\t\tusage();\n\t}\n\treturn x;\n}\n\nstatic void Record(CAAudioFileRecorder &recorder)\n{\n\trecorder.Start();\n\tprintf(\"Recording, press any key to stop:\");\n\tfflush(stdout);\n\tgetchar();\n\t//sleep(10);\n\trecorder.Stop();\n}\n\nint main(int argc, const char *argv[])\n{\n\tconst char *recordFileName = NULL;\n\n\t// set up defaults\n\tAudioFileTypeID filetype = kAudioFileAIFFType;\n\t\n\tbool gotOutDataFormat = false;\n\tCAStreamBasicDescription dataFormat;\n\tdataFormat.mSampleRate = 44100.;\t// later get this from the hardware\n\tdataFormat.mFormatID = kAudioFormatLinearPCM;\n\tdataFormat.mFormatFlags = kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked;\n\tdataFormat.mFramesPerPacket = 1;\n\tdataFormat.mChannelsPerFrame = 2;\n\tdataFormat.mBitsPerChannel = 16;\n\tdataFormat.mBytesPerPacket = dataFormat.mBytesPerFrame = 4;\n\t\n\tSInt32 bitrate = -1, quality = -1;\n\t\n\t// parse arguments\n\tfor (int i = 1; i < argc; ++i) {\n\t\tconst char *arg = argv[i];\n\t\tif (arg[0] != '-') {\n\t\t\tif (recordFileName != NULL) {\n\t\t\t\tfprintf(stderr, \"may only specify one record file\\n\");\n\t\t\t\tusage();\n\t\t\t}\n\t\t\trecordFileName = arg;\n\t\t} else {\n\t\t\targ += 1;\n\t\t\tif (arg[0] == 'f' || !strcmp(arg, \"-file\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tfiletype = Parse4CharCode(argv[i], \"-f | --file\");\n\t\t\t} else if (arg[0] == 'd' || !strcmp(arg, \"-data\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tif (!ParseStreamDescription(argv[i], dataFormat))\n\t\t\t\t\tusage();\n\t\t\t\tgotOutDataFormat = true;\n\t\t\t} else if (arg[0] == 'b' || !strcmp(arg, \"-bitrate\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tbitrate = ParseInt(argv[i], \"-b | --bitrate\");\n\t\t\t} else if (arg[0] == 'q' || !strcmp(arg, \"-quality\")) {\n\t\t\t\tif (++i == argc) MissingArgument();\n\t\t\t\tquality = ParseInt(argv[i], \"-q | --quality\");\n\t\t\t} else {\n\t\t\t\tfprintf(stderr, \"unknown argument: %s\\n\\n\", arg - 1);\n\t\t\t\tusage();\n\t\t\t}\n\t\t}\n\t}\n\t\n\tif (recordFileName == NULL)\n\t\tusage();\n\t\n\tif (!gotOutDataFormat) {\n\t\tif (filetype == 0) {\n\t\t\tfprintf(stderr, \"no output file or data format specified\\n\\n\");\n\t\t\tusage();\n\t\t}\n\t\tif (!CAAudioFileFormats::Instance()->InferDataFormatFromFileFormat(filetype, dataFormat)) {\n\t\t\tfprintf(stderr, \"Couldn't infer data format from file format\\n\\n\");\n\t\t\tusage();\n\t\t}\n\t} else if (filetype == 0) {\n\t\tif (!CAAudioFileFormats::Instance()->InferFileFormatFromDataFormat(dataFormat, filetype)) {\n\t\t\tdataFormat.PrintFormat(stderr, \"\", \"Couldn't infer file format from data format\");\n\t\t\tusage();\n\t\t}\n\t}\n\n\tunlink(recordFileName);\n\t\n\tif (dataFormat.IsPCM())\n\t\tdataFormat.ChangeNumberChannels(2, true);\n\telse\n\t\tdataFormat.mChannelsPerFrame = 2;\n\t\n\ttry {\n\t\tconst int kNumberBuffers = 3;\n\t\tconst unsigned kBufferSize = 0x8000;\n\t\tCAAudioFileRecorder recorder(kNumberBuffers, kBufferSize);\n\t\tFSRef parentDir;\n\t\tCFStringRef filename;\n\t\tXThrowIfError(PosixPathToParentFSRefAndName(recordFileName, parentDir, filename), \"couldn't find output directory\");\n\t\trecorder.SetFile(parentDir, filename, filetype, dataFormat, NULL);\n\t\t\n\t\tCAAudioFile &recfile = recorder.GetFile();\n\t\tif (bitrate >= 0)\n\t\t\trecfile.SetConverterProperty(kAudioConverterEncodeBitRate, sizeof(UInt32), &bitrate);\n\t\tif (quality >= 0)\n\t\t\trecfile.SetConverterProperty(kAudioConverterCodecQuality, sizeof(UInt32), &quality);\n\n\t\tRecord(recorder);\n\t}\n\tcatch (CAXException &e) {\n\t\tchar buf[256];\n\t\tfprintf(stderr, \"Error: %s (%s)\\n\", e.mOperation, CAXException::FormatError(buf, sizeof(buf), e.mError));\n\t\treturn 1;\n\t}\n\tcatch (...) {\n\t\tfprintf(stderr, \"An unknown error occurred\\n\");\n\t\treturn 1;\n\t}\n\treturn 0;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/audioformats.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\taudioformats.cpp\n\t\n=============================================================================*/\n\n#include \"CAAudioFileFormats.h\"\n#include <stdlib.h>\n#include \"AFToolsCommon.h\"\n\n#if TARGET_OS_WIN32\n\t#include <QTML.h>\n#endif\n\n// This program interrogates the AudioFile and AudioFormat API's for information\n// useful in constructing test scripts. It might also be useful as an example\n// of how to use these API's.\n\nvoid\tPrintFileFormats()\n{\n\tCAAudioFileFormats *fileFormats = CAAudioFileFormats::Instance();\n\t\n\tfor (int i = 0; i < fileFormats->mNumFileFormats; ++i) {\n\t\tCAAudioFileFormats::FileFormatInfo *ffi = &fileFormats->mFileFormats[i];\n\t\tchar buf[20], extbuf[32];\n\t\tprintf(\"('%s', '%s'\", OSTypeToStr(buf, ffi->mFileTypeID), ffi->GetExtension(0, extbuf, sizeof(extbuf)));\n\t\t\n\t\tfor (int j = 0; j < ffi->mNumDataFormats; ++j) {\n\t\t\tCAAudioFileFormats::DataFormatInfo *dfi = &ffi->mDataFormats[j];\n\t\t\tif (dfi->mFormatID == kAudioFormatLinearPCM) {\n\t\t\t\tfor (int k = 0; k < dfi->mNumVariants; ++k) {\n\t\t\t\t\tAudioStreamBasicDescription *asbd = &dfi->mVariants[k];\n\t\t\t\t\tif (asbd->mFormatFlags & ~(kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsBigEndian | kAudioFormatFlagIsFloat))\n\t\t\t\t\t\tprintf(\"(%08lx/%ld) \", asbd->mFormatFlags, asbd->mBitsPerChannel);\n\t\t\t\t\telse {\n\t\t\t\t\t\tprintf(\", '%s\",\n\t\t\t\t\t\t\t(asbd->mFormatFlags & kAudioFormatFlagIsBigEndian) ? \"BE\" : \"LE\");\n\t\t\t\t\t\tif (asbd->mFormatFlags & kAudioFormatFlagIsFloat)\n\t\t\t\t\t\t\tprintf(\"F\");\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tprintf(\"%sI\",\n\t\t\t\t\t\t\t\t(asbd->mFormatFlags & kAudioFormatFlagIsSignedInteger) ? \"\" : \"U\");\n\t\t\t\t\t\tprintf(\"%ld'\", asbd->mBitsPerChannel);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tprintf(\", '%s'\", OSTypeToStr(buf, dfi->mFormatID));\n\t\t\t}\n\t\t}\n\t\tprintf(\"),\\n\");\n\t}\n}\n\nstruct LayoutTag {\n\tUInt32\t\tconstant;\n\tconst char *name;\n};\n\n#define TAG(x)\t{ x, #x },\n\nstatic LayoutTag gLayoutTags[] = {\n\tTAG(kAudioChannelLayoutTag_Stereo)\n\tTAG(kAudioChannelLayoutTag_AAC_Quadraphonic)\n\tTAG(kAudioChannelLayoutTag_AAC_4_0)\n\tTAG(kAudioChannelLayoutTag_AAC_5_0)\n\tTAG(kAudioChannelLayoutTag_AAC_5_1)\n\tTAG(kAudioChannelLayoutTag_AAC_6_0)\t\n\tTAG(kAudioChannelLayoutTag_AAC_6_1)\n\tTAG(kAudioChannelLayoutTag_AAC_7_0)\t\n\tTAG(kAudioChannelLayoutTag_AAC_7_1)\n\tTAG(kAudioChannelLayoutTag_AAC_Octagonal)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_0_A)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_0_B)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_1_A)\n\tTAG(kAudioChannelLayoutTag_MPEG_5_1_B)\n\t{ 0, NULL }\t// sentinel\n};\n\nstatic const char *prefix = \"kAudioChannelLayoutTag_\";\n\nvoid\tPrintCompatibleChannelLayouts()\n{\n\tint plen = strlen(prefix);\n\tfor (LayoutTag *tag1 = gLayoutTags; tag1->name != NULL; ++tag1) {\n\t\tAudioChannelLayout layout1 = { tag1->constant, 0, 0 };\n\t\tprintf(\"\\t'%s' : (\", tag1->name + plen);\n\t\tint printed = 0;\n\t\tfor (LayoutTag *tag2 = gLayoutTags; tag2->name != NULL; ++tag2) {\n\t\t\tAudioChannelLayout layout2 = { tag2->constant, 0, 0 };\n\t\t\tAudioChannelLayout *layouts[] = { &layout1, &layout2 };\n\n\t\t\tUInt32 propertySize;\n\t\t\tOSStatus err = AudioFormatGetPropertyInfo(kAudioFormatProperty_ChannelMap, sizeof(layouts), layouts, &propertySize);\n\t\t\tif (err == noErr) {\n\t\t\t\tSInt32 *map = (SInt32 *)malloc(propertySize);\n\t\t\t\terr = AudioFormatGetProperty(kAudioFormatProperty_ChannelMap, sizeof(layouts), layouts, &propertySize, map);\n\t\t\t\tif (err == noErr) {\n\t\t\t\t\tif (printed++) printf(\", \");\n\t\t\t\t\tprintf(\"'%s'\", tag2->name + plen);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tprintf(\"),\\n\");\n\t}\n}\n\nint main(int argc, const char *argv[])\n{\n\t#if TARGET_OS_WIN32\n\t\tInitializeQTML(0L);\n\t#endif\n\n\tPrintFileFormats();\n\tprintf(\"#######################\\n\");\n\tPrintCompatibleChannelLayouts();\n\t\n\treturn 0;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/auprocess.cpp",
    "content": "/*\tCopyright: \t� Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apple�s\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tmain.cpp\n\t\n=============================================================================*/\n\n/*\n\tauprocess\n\t\t- takes a source audio file, an AU and generates a processed file \n*/\n\n#include \"CAAUProcessor.h\"\n#include \"CAAudioFile.h\"\n#include \"CAXException.h\"\n#include \"CAHostTimeBase.h\"\n#include \"CAFilePathUtils.h\"\n#include \"CAAudioFileFormats.h\"\n\n#if TARGET_OS_MAC\n\t#include <pthread.h>\n\t#include <mach/mach.h>\n#endif\n\n#define require_noerr ca_require_noerr\n\n#define CA_AU_PROFILE_TIME 1\n\n#if CA_AU_PROFILE_TIME\n\t\t\tUInt64 sReadTime = 0;\n\t\t\tUInt64 sRenderTime = 0;\n#endif\n\n#pragma mark __print helpers\n\nvoid PRINT_MARKS ()\n{\n\tprintf (\"| \");\n\tfor (int i = 0; i < 48; ++i)\n\t\tprintf (\" \");\n\tprintf (\"|\\n\");\n}\n\nvoid PerfResult(const char *toolname, int group, const char *testname, double value, const char *units, const char *fmt=\"%.3f\")\n{\n\tprintf(\"<result tool='%s' group='%d' test='%s' value='\", toolname, group, testname);\n\tprintf(fmt, value);\n\tprintf(\"' units='%s' />\\n\", units);\n}\n\nstatic int lastProgressPrintDone = -1;\nvoid PRINT_PROGRESS (Float32 inPercent) \n{\n\tint current = int(inPercent / 4.0);\n\tfor (int i = lastProgressPrintDone; i < current; ++i)\n\t\tprintf (\"* \");\n\tlastProgressPrintDone = current;\n}\n\n#pragma mark __Inpput Callback Definitions\n\nstatic AURenderCallbackStruct sInputCallback; // we set one of these two callbacks based on AU type\n\nstatic OSStatus InputCallback (void \t\t\t*inRefCon, \n\t\t\t\t\tAudioUnitRenderActionFlags \t*ioActionFlags, \n\t\t\t\t\tconst AudioTimeStamp \t\t*inTimeStamp, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames, \n\t\t\t\t\tAudioBufferList \t\t\t*ioData)\n{\n\t\t\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt64 now = CAHostTimeBase::GetTheCurrentTime(); \n\t\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\n\tCAAudioFile &readFile = *(static_cast<CAAudioFile*>(inRefCon));\n\n#if !CAAF_USE_EXTAUDIOFILE\n\tif (SInt64(inTimeStamp->mSampleTime) > readFile.GetNumberPackets()) {\n#else\n\tif (SInt64(inTimeStamp->mSampleTime) > readFile.GetNumberFrames()) {\n#endif\n#if DEBUG\n\tprintf (\"reading past end of input\\n\");\n#endif\n\t\treturn -1;\n\t}\n\n\treadFile.Seek (SInt64(inTimeStamp->mSampleTime));\n\treadFile.Read (inNumberFrames, ioData);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsReadTime += (CAHostTimeBase::GetTheCurrentTime() - now); \n\t\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\n\treturn noErr;\n}\n\nstatic OSStatus FConvInputCallback (void \t\t\t*inRefCon, \n\t\t\t\t\tAudioUnitRenderActionFlags \t*ioActionFlags, \n\t\t\t\t\tconst AudioTimeStamp \t\t*inTimeStamp, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames, \n\t\t\t\t\tAudioBufferList \t\t\t*ioData)\n{\n\t\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt64 now = CAHostTimeBase::GetTheCurrentTime(); \n\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\n\tCAAudioFile &readFile = *(static_cast<CAAudioFile*>(inRefCon));\n\n\t\t// this test is ONLY needed in case of processing with a Format Converter type of AU\n\t\t// in all other cases, the CAAUProcessor class will NEVER call you for input\n\t\t// beyond the end of the file....\n\n#if !CAAF_USE_EXTAUDIOFILE\n\tif (SInt64(inTimeStamp->mSampleTime) >= readFile.GetNumberPackets()) {\n#else\n\tif (SInt64(inTimeStamp->mSampleTime) >= readFile.GetNumberFrames()) {\n#endif\n\t\treturn -1;\n\t}\n\t\n\treadFile.Seek (SInt64(inTimeStamp->mSampleTime));\n\tUInt32 readPackets = inNumberFrames;\n\t\t\n\t\t// also, have to do this for a format converter AU - otherwise we'd just read what we're told\n#if !CAAF_USE_EXTAUDIOFILE\n\tif (SInt64(inTimeStamp->mSampleTime + inNumberFrames) > readFile.GetNumberPackets()) {\n#else\n\tif (SInt64(inTimeStamp->mSampleTime + inNumberFrames) > readFile.GetNumberFrames()) {\n#endif\n\t\t// first set this to zero as we're only going to read a partial number of frames\n\t\tAudioBuffer *buf = ioData->mBuffers;\n\t\tfor (UInt32 i = ioData->mNumberBuffers; i--; ++buf)\n\t\t\tmemset((Byte *)buf->mData, 0, buf->mDataByteSize);\n#if !CAAF_USE_EXTAUDIOFILE\n\t\treadPackets = UInt32 (readFile.GetNumberPackets() - SInt64(inTimeStamp->mSampleTime));\n#else\n\t\treadPackets = UInt32 (readFile.GetNumberFrames() - SInt64(inTimeStamp->mSampleTime));\n#endif\n\t}\n\t\n\treadFile.Read (readPackets, ioData);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsReadTime += (CAHostTimeBase::GetTheCurrentTime() - now); \n\t\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\n\treturn noErr;\n}\n\nstruct ReadBuffer {\n\tAUOutputBL *readData;\n\tUInt32 readFrames;\n};\n\nstatic OSStatus MemoryInputCallback (void\t\t*inRefCon, \n\t\t\t\t\tAudioUnitRenderActionFlags \t*ioActionFlags, \n\t\t\t\t\tconst AudioTimeStamp \t\t*inTimeStamp, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames, \n\t\t\t\t\tAudioBufferList \t\t\t*ioData)\n{\n\t\t\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt64 now = CAHostTimeBase::GetTheCurrentTime(); \n\t\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\n\tReadBuffer *readBuffer = (ReadBuffer*)inRefCon;\n\t\n\tif (((readBuffer->readFrames + inNumberFrames) * sizeof(Float32)) > (readBuffer->readData->ABL()->mBuffers[0].mDataByteSize)) \n\t{\n\t\t// going past read size\n\t\tAudioBuffer *buf = ioData->mBuffers;\n\t\tfor (UInt32 i = ioData->mNumberBuffers; i--; ++buf)\n\t\t\tmemset((Byte *)buf->mData, 0, buf->mDataByteSize);\n\t}\n\telse\n\t{\n\t\tAudioBuffer *buf = ioData->mBuffers;\n\t\tAudioBuffer *rBuf = readBuffer->readData->ABL()->mBuffers;\n\t\tfor (UInt32 i = ioData->mNumberBuffers; i--; ++buf, ++rBuf) {\n\t\t\tAudioBuffer readB = *rBuf;\n\t\t\treadB.mData = static_cast<Float32*>(rBuf->mData) + readBuffer->readFrames;\n\t\t\tmemcpy (buf->mData, readB.mData, buf->mDataByteSize);\n\t\t}\n\t\treadBuffer->readFrames += inNumberFrames;\n\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsReadTime += (CAHostTimeBase::GetTheCurrentTime() - now); \n\t\t\t\t\t\t\t\t\t\t\t\t\t#endif\n\n\treturn noErr;\n}\n\n#pragma mark __Utility Helpers\n\nCFPropertyListRef\t ReadPresetFromPresetFile (char* filePath)\n{\t\n\tif (!filePath)\n\t\treturn NULL;\n\t\n\tFSRef ref;\n\tif (FSPathMakeRef((UInt8 *)filePath, &ref, NULL))\n\t\treturn NULL;\n\t\t\n\tCFDataRef\t\t\tresourceData = NULL;\n\tCFPropertyListRef   theData = NULL;\n\tCFStringRef\t\t\terrString = NULL;\n\tCFURLRef\t\t\tfileURL = CFURLCreateFromFSRef (kCFAllocatorDefault, &ref);\n\t\tif (fileURL == NULL) {\n\t\t\tgoto home;\n\t\t}\n\t\t\n\tSInt32\t\t\t\tresult;\n    \n   // Read the XML file.\n   Boolean status; status = CFURLCreateDataAndPropertiesFromResource (kCFAllocatorDefault, fileURL,\n                                                                &resourceData,\t// place to put file data\n                                                                NULL, NULL, &result);\n        if (status == false || result) {\n            goto home;\n        }\n    \n\ttheData = CFPropertyListCreateFromXMLData (kCFAllocatorDefault, resourceData,  \n\t\t\t\t\t\t\t\t\t\t\t\t\tkCFPropertyListImmutable, &errString);\n        if (theData == NULL || errString) {\n            if (theData)\n\t\t\t\tCFRelease (theData);\n\t\t\ttheData = NULL;\n\t\t\tgoto home;\n       }\n\t\nhome:\n\tif (fileURL)\n\t\tCFRelease (fileURL);\n\tif (resourceData)\n\t\tCFRelease (resourceData);\n    if (errString)\n\t\tCFRelease (errString);\n\t\t\n\treturn theData;\n}\n\n#pragma mark __the setup code\n\n#define OFFLINE_AU_CMD \t\t\"[-au TYPE SUBTYPE MANU] The Audio Unit component description\\n\\t\"\n#define INPUT_FILE\t \t\t\"[-i /Path/To/File] The file that is to be processed.\\n\\t\"\n#define OUTPUT_FILE\t\t\t\"[-o /Path/To/File/To/Create] This will be in the same format as the input file\\n\\t\"\n#define AU_PRESET_CMD\t\t\"[-p /Path/To/AUPreset/File] Specify an AU Preset File to establish the state of the AU\\n\\t\"\n#define SHORT_MEM_CMD\t\t\"[-m] Just reads and processes the first half second of the input file\\n\\t\"\n#define USE_MAX_FRAMES\t\t\"[-f max_frames] default is 32768 (512 for aufc units)\"\n \nstatic char* usageStr = \"Usage: auprocess\\n\\t\" \n\t\t\t\tOFFLINE_AU_CMD \n\t\t\t\tINPUT_FILE\n\t\t\t\tOUTPUT_FILE\n\t\t\t\tAU_PRESET_CMD\n\t\t\t\tSHORT_MEM_CMD\n\t\t\t\tUSE_MAX_FRAMES;\n\nint main(int argc, const char * argv[])\n{\n\tsetbuf (stdout, NULL);\n\n\n#if TARGET_OS_MAC\n\t{\n\t\tthread_extended_policy_data_t\t\ttheFixedPolicy;\n\t\ttheFixedPolicy.timeshare = false;\t// set to true for a non-fixed thread\n\t\tthread_policy_set(pthread_mach_thread_np(pthread_self()), \n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD_EXTENDED_POLICY, \n\t\t\t\t\t\t\t\t\t\t\t\t\t(thread_policy_t)&theFixedPolicy, \n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD_EXTENDED_POLICY_COUNT);\n\n\t\t// We keep a reference to the spawning thread's priority around (initialized in the constructor), \n\t\t// and set the importance of the child thread relative to the spawning thread's priority.\n\t\tthread_precedence_policy_data_t\t\tthePrecedencePolicy;\n\t\t\n\t\tthePrecedencePolicy.importance = 63 - 36;\n\t\tthread_policy_set(pthread_mach_thread_np(pthread_self()), \n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD_PRECEDENCE_POLICY, \n\t\t\t\t\t\t\t\t\t\t\t\t\t(thread_policy_t)&thePrecedencePolicy, \n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD_PRECEDENCE_POLICY_COUNT);\n\t}\n#endif\n\n\n// These are the variables that are set up from the input parsing\n\tchar* srcFilePath = NULL;\n\tchar* destFilePath = NULL;\n\tchar* auPresetFile = NULL;\n\tbool shortMemoryProfile = false;\n\tOSType manu, subType, type = 0;\n\tint userSetFrames = -1;\n\t\n\tfor (int i = 1; i < argc; ++i)\n\t{\n\t\tif (strcmp (argv[i], \"-au\") == 0) {\n            if ( (i + 3) < argc ) {                \n                StrToOSType (argv[i + 1], type);\n                StrToOSType (argv[i + 2], subType);\n                StrToOSType (argv[i + 3], manu);\n\t\t\t\ti += 3;\n\t\t\t} else {\n\t\t\t\tprintf (\"Which Audio Unit:\\n%s\", usageStr);\n\t\t\t\texit(1);\n\t\t\t}\n\t\t}\n\t\telse if (strcmp (argv[i], \"-i\") == 0) {\n\t\t\tsrcFilePath = const_cast<char*>(argv[++i]);\n\t\t}\n\t\telse if (strcmp (argv[i], \"-o\") == 0) {\n\t\t\tdestFilePath = const_cast<char*>(argv[++i]);\n\t\t}\n\t\telse if (strcmp (argv[i], \"-p\") == 0) {\n\t\t\tauPresetFile = const_cast<char*>(argv[++i]);\n\t\t}\n\t\telse if (strcmp (argv[i], \"-m\") == 0) {\n\t\t\tshortMemoryProfile = true;\n\t\t}\n\t\telse if (strcmp (argv[i], \"-f\") == 0) {\n\t\t\tsscanf(argv[++i], \"%d\", &userSetFrames);\n\t\t}\n\t\telse {\n\t\t\tprintf (\"%s\\n\", usageStr);\n\t\t\texit(1);\n\t\t}\n\t}\n\t\n\tif (!type || !srcFilePath) {\n\t\tprintf (\"%s\\n\", usageStr);\n\t\texit(1);\n\t}\n\tif (!destFilePath) {\n\t\tif (!shortMemoryProfile) {\n\t\t\tprintf (\"%s\\n\", usageStr);\n\t\t\texit(1);\n\t\t}\n\t}\n\t\t\t// delete pre-existing output file\n\tif (!shortMemoryProfile) {\n\t\tFSRef destFSRef;\n\t\tif (FSPathMakeRef((UInt8 *)destFilePath, &destFSRef, NULL) == noErr) {\n\t\t\t// output file exists - delete it\n\t\t\tif (FSDeleteObject(&destFSRef)) {\n\t\t\t\tprintf (\"Cannot Delete Output File\\n\");\n\t\t\t\texit(1);\n\t\t\t}\n\t\t}\n\t}\n\t\n\tCAComponentDescription desc(type, subType, manu);\n\t\n\tCFPropertyListRef presetDict = ReadPresetFromPresetFile(auPresetFile);\n\t\n\t\t// the num of frames to use when processing the file with the Render call\n\tUInt32 maxFramesToUse = shortMemoryProfile ? 512 : 32768;\n\n\t\t// not set from command line\n\tif (userSetFrames > 0) {\n\t\tmaxFramesToUse = userSetFrames; \n\t}\n\t\t\n\t\t// in some settings (for instance a delay with 100% feedback) tail time is essentially infinite\n\t\t// so you should safeguard the final OL render stage (post process) which is aimed at pulling the tail through\n\t\t// if you want to bypass this completely, just set this to zero.\n\tFloat64 maxTailTimeSecs = 10.;\n\t\n#pragma mark -\n#pragma mark __ The driving code\n#pragma mark -\n\n\ttry \n\t{\n\t\tCAComponent comp(desc);\n\t\t\t\n\t\t\t // CAAUProcessor's constructor throws... so make sure the component is valid\n\t\tif (comp.IsValid() == false) {\n\t\t\tprintf (\"Can't Find Component\\n\");\n\t\t\tdesc.Print();\n\t\t\texit(1);\n\t\t}\n\t\t\t\n\t\tCAAUProcessor processor(comp);\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocessor.AU().Print();\n\t\t\n\t\tCAAudioFile srcFile;\n\t\tCAAudioFile destFile; \n\t\t\n\t\tsrcFile.Open(srcFilePath);\n\n\t\tCAStreamBasicDescription procFormat (srcFile.GetFileDataFormat());\n\t\tprocFormat.SetCanonical (srcFile.GetFileDataFormat().NumberChannels(), false);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\tprintf (\"Processing Format:\\n\\t\");\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocFormat.Print();\n\t\t\n\t\t\n\t\tif (!shortMemoryProfile) {\n\t\t\tFSRef parentDir;\n\t\t\tCFStringRef filename;\n\t\t\tPosixPathToParentFSRefAndName(destFilePath, parentDir, filename);\n\t\t\tdestFile.CreateNew (parentDir, filename, 'AIFF', srcFile.GetFileDataFormat());\n\t\t\tdestFile.SetClientFormat (procFormat);\n\t\t}\n\t\n\t\tsrcFile.SetClientFormat (procFormat);\n\t\t\n\t\tAUOutputBL outputList(procFormat);\n\n\t\tReadBuffer* readBuf = NULL;\t\n\n#if !CAAF_USE_EXTAUDIOFILE\n\t\tUInt64 numInputSamples = srcFile.GetNumberPackets();\n#else\n\t\tUInt64 numInputSamples = srcFile.GetNumberFrames();\n#endif\n\t\n\t\tif (shortMemoryProfile) {\n\t\t\treadBuf = new ReadBuffer;\n\t\t\treadBuf->readData = new AUOutputBL(procFormat);\n\t\t\treadBuf->readFrames = 0;\n\t\t\tUInt32 numFrames = UInt32(procFormat.mSampleRate / 2);\n\t\t\treadBuf->readData->Allocate (numFrames); // half a second of audio data\n\t\t\treadBuf->readData->Prepare(); // half a second of audio data\n\t\t\t\t\n\t\t\t\t// read 1/2 second of audio into this read buffer\n\t\t\tsrcFile.Read (numFrames, readBuf->readData->ABL());\n\t\t\t\n\t\t\tsInputCallback.inputProc = MemoryInputCallback;\n\t\t\tsInputCallback.inputProcRefCon = readBuf;\n\t\t\tnumInputSamples = numFrames;\n\t\t}\n\t\telse {\n\t\t\tif (desc.IsFConv()) {\n\t\t\t\tmaxFramesToUse = userSetFrames == -1 ? 512 : maxFramesToUse; \n\t\t\t\t// some format converter's can call you several times in small granularities\n\t\t\t\t// so you can't use a large buffer to render or you won't return all of the input data\n\t\t\t\t// this also lessens the final difference between what you should get and what you do\n\t\t\t\t// converter units *really* should have a version that are offline AU's to \n\t\t\t\t// handle this for you.\n\t\t\t\tsInputCallback.inputProc = FConvInputCallback;\n\t\t\t} else\n\t\t\t\tsInputCallback.inputProc = InputCallback;\n\t\t\t\n\t\t\tsInputCallback.inputProcRefCon = &srcFile;\n\t\t}\n\t\t\t\t\n\t\tOSStatus result;\n\t\trequire_noerr (result = processor.EstablishInputCallback (sInputCallback), home);\n\t\trequire_noerr (result = processor.SetMaxFramesPerRender (maxFramesToUse), home); \n\t\tprocessor.SetMaxTailTime (maxTailTimeSecs);\n\t\trequire_noerr (result = processor.Initialize (procFormat, numInputSamples), home);\n\t\tif (presetDict) {\n\t\t\trequire_noerr (result = processor.SetAUPreset (presetDict), home);\n\t\t\tCFRelease (presetDict);\n\t\t}\n\t\t\t// this does ALL of the preflighting.. could be specialise for an OfflineAU type\n\t\t\t// to do this piecemeal and do a progress bar by using the OfflineAUPreflight method\n\t\trequire_noerr (result = processor.Preflight (), home);\n\t\t\n\t\tbool isDone; isDone = false;\n\t\tbool needsPostProcessing;\n\t\tbool isSilence;\n\t\tUInt32 numFrames; numFrames = processor.MaxFramesPerRender();\n\n#if CA_AU_PROFILE_TIME\n\t\tsReadTime = 0;\n\t\tsRenderTime = 0;\n#endif\n\t\t\t\t\t\nPRINT_MARKS();\n\t\t\t// this is the render loop\n\t\twhile (!isDone) \n\t\t{\n\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\tUInt64 now = CAHostTimeBase::GetTheCurrentTime(); \n\t\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\toutputList.Prepare(); // have to do this every time...\n\t\t\trequire_noerr (result = processor.Render (outputList.ABL(), numFrames, isSilence, &isDone,\n\t\t\t\t\t\t\t\t\t\t\t&needsPostProcessing), home);\n\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\tsRenderTime += (CAHostTimeBase::GetTheCurrentTime() - now);\n\t\t\t\t\t\t\t\t\t\t\t#endif\n\nif (!shortMemoryProfile)\n\tPRINT_PROGRESS(processor.GetOLPercentComplete());\nelse\n\tPRINT_PROGRESS(((processor.SampleTime() / numInputSamples) * 100.));\n\t\n\t\t\tif (numFrames && !shortMemoryProfile)\n\t\t\t\tdestFile.Write (numFrames, outputList.ABL());\n\t\t}\n\t\t\t\n\t\t\t// this is the postprocessing if needed\n\t\tif (!shortMemoryProfile && needsPostProcessing) \n\t\t{\n\t\t\tisDone = false;\n\t\t\tnumFrames = processor.MaxFramesPerRender();\n\t\t\twhile (!isDone) {\n\t\t\t\toutputList.Prepare(); // have to do this every time...\n\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\tUInt64 now = CAHostTimeBase::GetTheCurrentTime(); \n\t\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\t\trequire_noerr (result = processor.PostProcess (outputList.ABL(), numFrames, \n\t\t\t\t\t\t\t\t\t\t\t\t\tisSilence, isDone), home);\n\t\t\t\t\t\t\t\t\t\t\t#if CA_AU_PROFILE_TIME \n\t\t\t\t\t\t\t\t\t\t\t\tsRenderTime += (CAHostTimeBase::GetTheCurrentTime() - now); \n\t\t\t\t\t\t\t\t\t\t\t#endif\n\nPRINT_PROGRESS(processor.GetOLPercentComplete());\n\n\t\t\t\tif (numFrames && !shortMemoryProfile)\n\t\t\t\t\tdestFile.Write (numFrames, outputList.ABL());\n\t\t\t}\n\t\t}\n\nprintf (\"\\n\");\n\nhome:\n\t\tif (result) {\n\t\t\tprintf (\"Exit with bad result:%ld\\n\", result);\n\t\t\texit(result);\n\t\t}\n\t\t\n\t\tif (readBuf) {\n\t\t\tdelete readBuf->readData;\n\t\t\tdelete readBuf;\n\t\t}\n\t\t\t\t\t\n#if CA_AU_PROFILE_TIME\n\tif (!shortMemoryProfile) {\n\t\t\t// this flushes any remaing data to be written to the disk. \n\t\t\t// the source file is closed in its destructor of course\n\t\tdestFile.Close(); \n\t\t\t// open the file again, to get stats about it for profiling\n\t\tdestFile.Open(destFilePath);\n\t}\n\n\tSInt64 numWritten;\n\tif (shortMemoryProfile)\n\t\tnumWritten = 0;\n\telse {\n#if !CAAF_USE_EXTAUDIOFILE\n\t\tnumWritten = destFile.GetNumberPackets();\n#else\n\t\tnumWritten = destFile.GetNumberFrames();\n#endif\n\t}\n\n\tprintf (\"Read File Time:%.2f secs for %lld packets (%.1f secs), wrote %lld packets\\n\", \n\t\t\t\t\t\t(CAHostTimeBase::ConvertToNanos (sReadTime) / 1.0e9),\n\t\t\t\t\t\tnumInputSamples,\n\t\t\t\t\t\t(numInputSamples / procFormat.mSampleRate),\n\t\t\t\t\t\tnumWritten);\n\n\tif (!shortMemoryProfile) \n\t{\n#if !CAAF_USE_EXTAUDIOFILE\n\t\tUInt64 numOutputSamples = destFile.GetNumberPackets();\n#else\n\t\tUInt64 numOutputSamples = destFile.GetNumberFrames();\n#endif\n\t\n\t\tif (numOutputSamples == numInputSamples) {\n\t\t\tprintf (\"\\tWrote the same number of packets as read\\n\");\n\t\t} else {\n\t\t\tbool expectationMet = !desc.IsOffline(); // we don't have any expectations for offline AU's\n\t\t\tif (processor.LatencySampleCount() || processor.TailSampleCount()) {\n\t\t\t\tif (numOutputSamples - numInputSamples == processor.TailSampleCount())\n\t\t\t\t\texpectationMet = true;\n\t\t\t\tif (expectationMet)\t\n\t\t\t\t\tprintf (\"Correctly wrote \\'Read Size + Tail\\'. \");\n\t\t\t\tprintf (\"AU reports (samples): %ld latency, %ld tail\\n\", \n\t\t\t\t\t\t\t\t\t\tprocessor.LatencySampleCount(), processor.TailSampleCount());\n\t\t\t}\n\t\t\tif (expectationMet == false) \n\t\t\t{\n\t\t\t\tif (numOutputSamples > numInputSamples) {\n\t\t\t\t\tprintf (\"\\tWrote %lld packets (%.2f secs) more than read\\n\", \n\t\t\t\t\t\t\t\t(numOutputSamples - numInputSamples), \n\t\t\t\t\t\t\t\t((numOutputSamples - numInputSamples) / procFormat.mSampleRate));\n\t\t\t\t} else {\n\t\t\t\t\tprintf (\"\\tRead %lld packets (%.2f secs) more than wrote\\n\", \n\t\t\t\t\t\t\t\t(numInputSamples - numOutputSamples), \n\t\t\t\t\t\t\t\t((numInputSamples - numOutputSamples) / procFormat.mSampleRate));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\tFloat64 renderTimeSecs = CAHostTimeBase::ConvertToNanos (sRenderTime - sReadTime) / 1.0e9;\n\tprintf (\"Total Render Time:%.2f secs, using render slice size of %ld frames\\n\", \n\t\t\t\t\t\t\trenderTimeSecs, maxFramesToUse);\n\t\n\tFloat64 cpuUsage;\n\tif (shortMemoryProfile)\n\t\tcpuUsage = (renderTimeSecs / 0.5) * 100.;\n\telse\n\t\tcpuUsage = (renderTimeSecs / (numInputSamples / procFormat.mSampleRate)) * 100.;\n\tprintf (\"CPU Usage for Render Time:%.2f%%\\n\", cpuUsage);\n\n\tCFStringRef str = comp.GetCompName();\n\tUInt32 compNameLen = CFStringGetLength (str);\n\t\n\tCFStringRef presetName = NULL;\n\tif (auPresetFile) {\n\t\tCFPropertyListRef dict;\n\t\tif (processor.AU().GetAUPreset (dict) == noErr) {\n\t\t\tpresetName = (CFStringRef)CFDictionaryGetValue((CFDictionaryRef)dict, CFSTR(\"name\"));\n\t\t\tCFRelease (dict);\n\t\t}\n\t}\n\n\tUInt32 presetLen = presetName ? CFStringGetLength(presetName) : 0;\n\n\tchar* cstr = (char*)malloc (compNameLen + presetLen + 2 + 1);\n\tCFStringGetCString (str, cstr, (CFStringGetLength (str) + 1), kCFStringEncodingASCII);\n\tif (presetName) {\n\t\tcstr[compNameLen] = ':';\n\t\tcstr[compNameLen+1] = ':';\n\t\tCFStringGetCString (presetName, cstr + compNameLen + 2, (CFStringGetLength (presetName) + 1), kCFStringEncodingASCII);\n\t}\n\tPerfResult(\"AudioUnitProcess\", EndianU32_NtoB(comp.Desc().componentSubType), cstr, cpuUsage, \"%realtime\");\n\tfree (cstr);\n#endif\n\n\n\t}\n\tcatch (CAXException &e) {\n\t\tchar buf[256];\n\t\tprintf(\"Error: %s (%s)\\n\", e.mOperation, e.FormatError(buf, sizeof(buf)));\n\t\texit(1);\n\t}\n\tcatch (...) {\n\t\tprintf(\"An unknown error occurred\\n\");\n\t\texit(1);\n\t}\n\t\t\t\n\treturn 0;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioFileTools/auprofile.cpp",
    "content": "/*\tCopyright: \t Copyright 2005 Apple Computer, Inc. All rights reserved.\n\n\tDisclaimer:\tIMPORTANT:  This Apple software is supplied to you by Apple Computer, Inc.\n\t\t\t(\"Apple\") in consideration of your agreement to the following terms, and your\n\t\t\tuse, installation, modification or redistribution of this Apple software\n\t\t\tconstitutes acceptance of these terms.  If you do not agree with these terms,\n\t\t\tplease do not use, install, modify or redistribute this Apple software.\n\n\t\t\tIn consideration of your agreement to abide by the following terms, and subject\n\t\t\tto these terms, Apple grants you a personal, non-exclusive license, under Apples\n\t\t\tcopyrights in this original Apple software (the \"Apple Software\"), to use,\n\t\t\treproduce, modify and redistribute the Apple Software, with or without\n\t\t\tmodifications, in source and/or binary forms; provided that if you redistribute\n\t\t\tthe Apple Software in its entirety and without modifications, you must retain\n\t\t\tthis notice and the following text and disclaimers in all such redistributions of\n\t\t\tthe Apple Software.  Neither the name, trademarks, service marks or logos of\n\t\t\tApple Computer, Inc. may be used to endorse or promote products derived from the\n\t\t\tApple Software without specific prior written permission from Apple.  Except as\n\t\t\texpressly stated in this notice, no other rights or licenses, express or implied,\n\t\t\tare granted by Apple herein, including but not limited to any patent rights that\n\t\t\tmay be infringed by your derivative works or by other works in which the Apple\n\t\t\tSoftware may be incorporated.\n\n\t\t\tThe Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE MAKES NO\n\t\t\tWARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED\n\t\t\tWARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n\t\t\tPURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN\n\t\t\tCOMBINATION WITH YOUR PRODUCTS.\n\n\t\t\tIN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR\n\t\t\tCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\n\t\t\tGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n\t\t\tARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION\n\t\t\tOF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT\n\t\t\t(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN\n\t\t\tADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n/*=============================================================================\n\tauprofile.cpp\n\t\n=============================================================================*/\n\n/*\n\tauprofile\n\t\t- takes a source audio file, an AU and processes this for performance metrics\n*/\n\n#include \"CAAUProcessor.h\"\n#include \"CAAudioFile.h\"\n#include \"CAXException.h\"\n#include \"CAHostTimeBase.h\"\n#include \"CAFilePathUtils.h\"\n#include \"CAAudioFileFormats.h\"\n\n#if TARGET_OS_MAC\n\t#include <pthread.h>\n\t#include <mach/mach.h>\n#endif\n\n#if DEBUG\n\t#define VERBOSE 0\n#endif\n\nUInt64 sLastReadTime = 0;\nFloat64 sMinTime = 9999999999.; // too big a time!\nFloat64 sMaxTime = 0;\n\n#pragma mark __print helpers\n\nvoid PerfResult(const char *toolname, int group, const char *testname, double value, const char *units, const char *fmt=\"%.3f\")\n{\n\tprintf(\"<result tool='%s' group='%d' test='%s' value='\", toolname, group, testname);\n\tprintf(fmt, value);\n\tprintf(\"' units='%s' />\\n\", units);\n}\n\n#pragma mark __Inpput Callback Definitions\n\n\n// the file is read into memory - the input's role is to parse through this memory\n\nstruct ReadBuffer {\n\tAUOutputBL *readData;\n\tUInt64 totalInputFrames;\n\tUInt32 lastInputFrames;\n};\n\nconst int kEndOfInput = 12345;\n\nstatic OSStatus MemoryInputCallback (void\t\t*inRefCon, \n\t\t\t\t\tAudioUnitRenderActionFlags \t*ioActionFlags, \n\t\t\t\t\tconst AudioTimeStamp \t\t*inTimeStamp, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames, \n\t\t\t\t\tAudioBufferList \t\t\t*ioData)\n{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt64 now = CAHostTimeBase::GetTheCurrentTime(); \n\tOSStatus result = 0;\n\t\n\tReadBuffer *readBuffer = (ReadBuffer*)inRefCon;\n\tif (inTimeStamp->mSampleTime >= readBuffer->totalInputFrames) {\n\t\t\t#if VERBOSE\n\t\t\t\tprintf (\"reading: %.0f past input: %.0f\\n\", inTimeStamp->mSampleTime, \n\t\t\t\t\t\t\t(double)readBuffer->totalInputFrames); \n\t\t\t#endif\n\t\tresult = kEndOfInput;\n\t\treadBuffer->lastInputFrames = 0;\n\t\tgoto end;\n\t}\n\t\t\n\t\t// can get pulled multiple times\n\treadBuffer->lastInputFrames += inNumberFrames;\n\n\tif (UInt64(inTimeStamp->mSampleTime + inNumberFrames) > readBuffer->totalInputFrames) {\n\t\t// first set this to zero as we're only going to read a partial number of frames\n\t\tAudioBuffer *buf = ioData->mBuffers;\n\t\tfor (UInt32 i = ioData->mNumberBuffers; i--; ++buf)\n\t\t\tmemset((Byte *)buf->mData, 0, buf->mDataByteSize);\n\n\t\tinNumberFrames = UInt32 (readBuffer->totalInputFrames - UInt64(inTimeStamp->mSampleTime));\n\t}\n\t\n\t\t// copy data from the source to the ioData buffers\n\t{\n\t\tAudioBuffer *buf = ioData->mBuffers;\n\t\tAudioBuffer *rBuf = readBuffer->readData->ABL()->mBuffers;\n\t\tfor (UInt32 i = ioData->mNumberBuffers; i--; ++buf, ++rBuf) {\n\t\t\tAudioBuffer readB = *rBuf;\n\t\t\treadB.mData = static_cast<Float32*>(rBuf->mData) + UInt32(inTimeStamp->mSampleTime);\n\t\t\tmemcpy (buf->mData, readB.mData, (inNumberFrames * sizeof(Float32)));\n\t\t}\n\t}\n\t\nend:\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsLastReadTime += (CAHostTimeBase::GetTheCurrentTime() - now); \n\n\treturn result;\n}\n\n#pragma mark __Utility Helpers\n\nCFPropertyListRef\t ReadPresetFromPresetFile (char* filePath)\n{\t\n\tif (!filePath)\n\t\treturn NULL;\n\t\n\tFSRef ref;\n\tif (FSPathMakeRef((UInt8 *)filePath, &ref, NULL))\n\t\treturn NULL;\n\t\t\n\tCFDataRef\t\t\tresourceData = NULL;\n\tCFPropertyListRef   theData = NULL;\n\tCFStringRef\t\t\terrString = NULL;\n\tCFURLRef\t\t\tfileURL = CFURLCreateFromFSRef (kCFAllocatorDefault, &ref);\n\t\tif (fileURL == NULL) {\n\t\t\tgoto home;\n\t\t}\n\t\t\n\tSInt32\t\t\t\tresult;\n    \n   // Read the XML file.\n   Boolean status; status = CFURLCreateDataAndPropertiesFromResource (kCFAllocatorDefault, fileURL,\n                                                                &resourceData,\t// place to put file data\n                                                                NULL, NULL, &result);\n        if (status == false || result) {\n            goto home;\n        }\n    \n\ttheData = CFPropertyListCreateFromXMLData (kCFAllocatorDefault, resourceData,  \n\t\t\t\t\t\t\t\t\t\t\t\t\tkCFPropertyListImmutable, &errString);\n        if (theData == NULL || errString) {\n            if (theData)\n\t\t\t\tCFRelease (theData);\n\t\t\ttheData = NULL;\n\t\t\tgoto home;\n       }\n\t\nhome:\n\tif (fileURL)\n\t\tCFRelease (fileURL);\n\tif (resourceData)\n\t\tCFRelease (resourceData);\n    if (errString)\n\t\tCFRelease (errString);\n\t\t\n\treturn theData;\n}\n\n#pragma mark __the setup code\n\n#define OFFLINE_AU_CMD \t\t\"[-au TYPE SUBTYPE MANU] The Audio Unit component description\\n\\t\"\n#define INPUT_FILE\t \t\t\"[-i /Path/To/File] The file that is to be processed.\\n\\t\"\n#define AU_PRESET_CMD\t\t\"[-p /Path/To/AUPreset/File] Specify an AU Preset File to establish the state of the AU\\n\\t\"\n#define USE_MAX_FRAMES\t\t\"[-f max_frames] default is 4096\"\n \nstatic char* usageStr = \"Usage: auprofile\\n\\t\" \n\t\t\t\tOFFLINE_AU_CMD \n\t\t\t\tINPUT_FILE\n\t\t\t\tAU_PRESET_CMD\n\t\t\t\tUSE_MAX_FRAMES;\n\nint main(int argc, const char * argv[])\n{\n#if TARGET_OS_MAC\n\t{\n\t\tthread_extended_policy_data_t\t\ttheFixedPolicy;\n\t\ttheFixedPolicy.timeshare = false;\t// set to true for a non-fixed thread\n\t\tthread_policy_set(pthread_mach_thread_np(pthread_self()), \n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD_EXTENDED_POLICY, \n\t\t\t\t\t\t\t\t\t\t\t\t\t(thread_policy_t)&theFixedPolicy, \n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD_EXTENDED_POLICY_COUNT);\n\n\t\t// We keep a reference to the spawning thread's priority around (initialized in the constructor), \n\t\t// and set the importance of the child thread relative to the spawning thread's priority.\n\t\tthread_precedence_policy_data_t\t\tthePrecedencePolicy;\n\t\t\n\t\tthePrecedencePolicy.importance = 63 - 36;\n\t\tthread_policy_set(pthread_mach_thread_np(pthread_self()), \n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD_PRECEDENCE_POLICY, \n\t\t\t\t\t\t\t\t\t\t\t\t\t(thread_policy_t)&thePrecedencePolicy, \n\t\t\t\t\t\t\t\t\t\t\t\t\tTHREAD_PRECEDENCE_POLICY_COUNT);\n\t}\n#endif\n\n\n// These are the variables that are set up from the input parsing\n\tchar* srcFilePath = NULL;\n\tchar* auPresetFile = NULL;\n\tOSType manu, subType, type = 0;\n\tUInt32 numFrames = 4096;\n\t\n\tfor (int i = 1; i < argc; ++i)\n\t{\n\t\tif (strcmp (argv[i], \"-au\") == 0) {\n            if ( (i + 3) < argc ) {                \n                StrToOSType (argv[i + 1], type);\n                StrToOSType (argv[i + 2], subType);\n                StrToOSType (argv[i + 3], manu);\n\t\t\t\ti += 3;\n\t\t\t} else {\n\t\t\t\tprintf (\"Which Audio Unit:\\n%s\", usageStr);\n\t\t\t\texit(1);\n\t\t\t}\n\t\t}\n\t\telse if (strcmp (argv[i], \"-i\") == 0) {\n\t\t\tsrcFilePath = const_cast<char*>(argv[++i]);\n\t\t}\n\t\telse if (strcmp (argv[i], \"-p\") == 0) {\n\t\t\tauPresetFile = const_cast<char*>(argv[++i]);\n\t\t}\n\t\telse if (strcmp (argv[i], \"-f\") == 0) {\n\t\t\tsscanf(argv[++i], \"%ld\", &numFrames);\n\t\t}\n\t\telse {\n\t\t\tprintf (\"%s\\n\", usageStr);\n\t\t\texit(1);\n\t\t}\n\t}\n\t\n\tif (!type || !srcFilePath) {\n\t\tprintf (\"%s\\n\", usageStr);\n\t\texit(1);\n\t}\n\t\n\tCAComponentDescription desc(type, subType, manu);\n\t\n\tCFPropertyListRef presetDict = ReadPresetFromPresetFile(auPresetFile);\n\t\n#pragma mark -\n#pragma mark __ The driving code\n#pragma mark -\n\n\ttry \n\t{\n\t\tCAComponent comp(desc);\n\t\t\t\n\t\t\t // CAAUProcessor's constructor throws... so make sure the component is valid\n\t\tif (comp.IsValid() == false) {\n\t\t\tprintf (\"Can't Find Component\\n\");\n\t\t\tdesc.Print();\n\t\t\texit(1);\n\t\t}\n\t\t\t\n\t\tCAAUProcessor processor(comp);\n\t\t\t\t\t\t\t\t\t\tprocessor.AU().Comp().Print();\n\t\t\n\t\tCAAudioFile srcFile;\n\t\t\n\t\tsrcFile.Open(srcFilePath);\n\n#if !CAAF_USE_EXTAUDIOFILE\n\t\tUInt64 numInputSamples = srcFile.GetNumberPackets();\n#else\n\t\tUInt64 numInputSamples = srcFile.GetNumberFrames();\n#endif\n\t\t\n\t\tFloat64 inputSecs = (numInputSamples / srcFile.GetFileDataFormat().mSampleRate);\n\t\t\n\t\tCAStreamBasicDescription procFormat (srcFile.GetFileDataFormat());\n\t\tprocFormat.SetCanonical (srcFile.GetFileDataFormat().NumberChannels(), false);\n\n\t\t\t\t\t\t\t\t\t\tprintf (\"Processing file: %s, %.1f secs [proc: %ld frames]\\n\", srcFilePath, inputSecs, numFrames);\n\t\t\t\t\t\t\t\t\t\t#if VERBOSE\n\t\t\t\t\t\t\t\t\t\t\tprintf(\"\\t\");\n\t\t\t\t\t\t\t\t\t\t\tprocFormat.Print();\n\t\t\t\t\t\t\t\t\t\t#endif\n\t\t\n\t\tsrcFile.SetClientFormat (procFormat);\n\t\t\n\t\tAUOutputBL outputList(procFormat);\n\t\n\t\t// read the entire file into memory\n\t\tReadBuffer* readBuf = new ReadBuffer;\n\t\treadBuf->readData = new AUOutputBL(procFormat);\n\t\treadBuf->totalInputFrames = numInputSamples;\n\t\treadBuf->readData->Allocate (numInputSamples);\n\t\treadBuf->readData->Prepare();\n\t\tUInt32 readSamps = (UInt32)numInputSamples;\n\t\tsrcFile.Read (readSamps, readBuf->readData->ABL());\n\t\t\t\n\t\tAURenderCallbackStruct inputCallback;\n\t\tinputCallback.inputProc = MemoryInputCallback;\n\t\tinputCallback.inputProcRefCon = readBuf;\n\t\t\t\t\n\t\tOSStatus result;\n\t\trequire_noerr (result = processor.EstablishInputCallback (inputCallback), home);\n\t\trequire_noerr (result = processor.SetMaxFramesPerRender (numFrames), home); \n\t\trequire_noerr (result = processor.Initialize (procFormat, numInputSamples), home);\n\t\tif (presetDict) {\n\t\t\trequire_noerr (result = processor.SetAUPreset (presetDict), home);\n\t\t\tCFRelease (presetDict);\n\t\t}\n\t\t\t// this does ALL of the preflighting.. could be specialise for an OfflineAU type\n\t\t\t// to do this piecemeal and do a progress bar by using the OfflineAUPreflight method\n\t\treadBuf->lastInputFrames = 0;\n\t\trequire_noerr (result = processor.Preflight (), home);\n\t\n\tfloat mean;\n\t\n\t// now do the processing....\n\t{\n\t\tconst int kThrasherSize = 4000000;\n\t\tchar* thrasher = new char[kThrasherSize];\n\t\t\n\t\tbool isDone = false;\n\t\t\n\t\tUInt32 numMeasures = 0;\n\t\tFloat64 totalMSqrd;\n\t\tFloat64 totalM;\n\t\t\n\t\tint i = 0;\n\t\tint discardResults = 3;\n\t\t\t\t\t\t\n\t\t\t// this is the render loop\n\t\twhile (!isDone) \n\t\t{\n\t\t\tbool isSilence, postProcess;\n\n\t\t\toutputList.Prepare(); // have to do this every time...\n\t\t\treadBuf->lastInputFrames = 0;\n\t\t\tsLastReadTime = 0;\n\t\t\tmemset (thrasher, numMeasures, kThrasherSize);\n\n\t\t\t\t\t\t\t\t\t\t\t\tUInt64 now = CAHostTimeBase::GetTheCurrentTime(); \n\t\t\trequire_noerr (result = processor.Render (outputList.ABL(), numFrames, isSilence, &isDone, &postProcess), home);\n\t\t\t\t\t\t\t\t\t\t\t\tUInt64 renderTime = (CAHostTimeBase::GetTheCurrentTime() - now);\n\t\t\t\n\t\t\tif (i++ < discardResults) continue;\n\t\t\tif (!readBuf->lastInputFrames) break;\n\n\t\t\tFloat64 renderTimeSecs = CAHostTimeBase::ConvertToNanos (renderTime - sLastReadTime) / 1.0e9;\n\t\t\t\n\t\t\tFloat64 cpuTime = (renderTimeSecs / (readBuf->lastInputFrames / procFormat.mSampleRate)) * 100.;\n\t\t\tnumMeasures++;\n\t\t\t\n\t\t\ttotalMSqrd += (cpuTime * cpuTime);\n\t\t\ttotalM += cpuTime;\n\n\t\t\tif (cpuTime > sMaxTime)\n\t\t\t\tsMaxTime = cpuTime;\n\t\t\tif (cpuTime < sMinTime)\n\t\t\t\tsMinTime = cpuTime;\n\t\t\t\t\t\t\t\t\t\n#if VERBOSE\n//\t\t\tprintf (\"current measure: %.2f\\n\", cpuTime);\n\t\t\tif (numMeasures % 5 == 0) {\n\t\t\t\tFloat64 mean = totalM / numMeasures;\t\t\t\t\n\t\t\t\t\t//\tstdDev = (sum of Xsquared -((sum of X)*(sum of X)/N)) / (N-1))\n\t\t\t\tFloat64 stdDev = sqrt ((totalMSqrd - ((totalM * totalM) / numMeasures)) / (numMeasures-1.0));\n\t\t\t\tprintf (\"ave: %.2f, min: %.2f, max: %.2f, stdev: %.2f, numMeasures: %ld, current: %f\\n\", \n\t\t\t\t\tmean, sMinTime, sMaxTime, stdDev, numMeasures, cpuTime);\n\t\t\t}\n#endif\n\t\t}\n\t\tdelete [] thrasher;\n\t\t\n\t\tmean = totalM / numMeasures;\n\t\t\t//\tstdDev = (sum of Xsquared -((sum of X)*(sum of X)/N)) / (N-1))\n\t\tFloat64 stdDev = sqrt ((totalMSqrd - ((totalM * totalM) / numMeasures)) / (numMeasures-1.0));\n\n\t\tprintf (\"ave: %.2f, min: %.2f, max: %.2f, sd: %.2f, sd / mean: %.2f%%\\n\", \n\t\t\tmean, sMinTime, sMaxTime, stdDev, (stdDev / mean * 100.));\n\t}\n\n\t\t// we don't care about post-processing\n\nhome:\n\t\tif (result) {\n\t\t\tprintf (\"Exit with bad result:%ld\\n\", result);\n\t\t\texit(result);\n\t\t}\n\t\t\n\t\tif (readBuf) {\n\t\t\tdelete readBuf->readData;\n\t\t\tdelete readBuf;\n\t\t}\n\t\t\n\n\t\tCFStringRef str = comp.GetCompName();\n\t\tUInt32 compNameLen = CFStringGetLength (str);\n\t\t\n\t\tCFStringRef presetName = NULL;\n\t\tif (auPresetFile) {\n\t\t\tCFPropertyListRef dict;\n\t\t\tif (processor.AU().GetAUPreset (dict) == noErr) {\n\t\t\t\tpresetName = (CFStringRef)CFDictionaryGetValue((CFDictionaryRef)dict, CFSTR(\"name\"));\n\t\t\t\tCFRelease (dict);\n\t\t\t}\n\t\t}\n\n\t\tUInt32 presetLen = presetName ? CFStringGetLength(presetName) : 0;\n\t\t\n\t\tUInt32 groupID = comp.Desc().componentSubType;\n\t\t\n\t\tchar* cstr = (char*)malloc (compNameLen + presetLen + 2 + 1);\n\t\tCFStringGetCString (str, cstr, (CFStringGetLength (str) + 1), kCFStringEncodingASCII);\n\t\tif (presetName) {\n\t\t\tcstr[compNameLen] = ':';\n\t\t\tcstr[compNameLen+1] = ':';\n\t\t\tCFStringGetCString (presetName, cstr + compNameLen + 2, (CFStringGetLength (presetName) + 1), kCFStringEncodingASCII);\n\t\t\tint len = strlen(cstr);\n\t\t\tfor (int i = 0; i < len; ++i)\n\t\t\t\tgroupID += cstr[i];\n\t\t}\n\t\tPerfResult(\"AU Profile\", EndianU32_NtoB(groupID), cstr, mean, \"%realtime\");\n\t\tfree (cstr);\n\n\t}\n\tcatch (CAXException &e) {\n\t\tchar buf[256];\n\t\tprintf(\"Error: %s (%s)\\n\", e.mOperation, e.FormatError(buf));\n\t\texit(1);\n\t}\n\tcatch (...) {\n\t\tprintf(\"An unknown error occurred\\n\");\n\t\texit(1);\n\t}\n\t\t\t\n\treturn 0;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AUComponent.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <AudioToolbox/AUComponent.h>\n#include <AudioToolbox/AudioOutputUnit.h>\n#include <CarbonCore/MacErrors.h>\n#include \"ComponentDispatch.h\"\n\nconst CFStringRef kAudioComponentRegistrationsChangedNotification = CFSTR(\"AudioComponentRegistrationsChangedNotification\");\nconst CFStringRef kAudioComponentInstanceInvalidationNotification = CFSTR(\"AudioComponentInstanceInvalidationNotification\");\n\nOSStatus AudioOutputUnitStart(AudioUnit ci)\n{\n    return dispatchCall(ci, kAudioOutputUnitStartSelect);\n}\n\nOSStatus AudioOutputUnitStop(AudioUnit ci)\n{\n    return dispatchCall(ci, kAudioOutputUnitStopSelect);\n}\n\nOSStatus AudioUnitInitialize(AudioUnit inUnit)\n{\n    return dispatchCall(inUnit, kAudioUnitInitializeSelect);\n}\n\nOSStatus AudioUnitUninitialize(AudioUnit inUnit)\n{\n    return dispatchCall(inUnit, kAudioUnitUninitializeSelect);\n}\n\nOSStatus\nAudioUnitGetPropertyInfo(AudioUnit inUnit,\n    AudioUnitPropertyID inID,\n    AudioUnitScope inScope,\n    AudioUnitElement inElement,\n    UInt32 * _Nullable outDataSize,\n    Boolean * _Nullable outWritable)\n{\n    return dispatchCall(inUnit, kAudioUnitGetPropertyInfoSelect, inID, inScope, inElement, outDataSize, outWritable);\n}\n\nOSStatus\nAudioUnitGetProperty(AudioUnit inUnit,\n    AudioUnitPropertyID inID,\n    AudioUnitScope inScope,\n    AudioUnitElement inElement,\n    void * outData,\n    UInt32 * ioDataSize)\n{\n    return dispatchCall(inUnit, kAudioUnitGetPropertySelect, inID, inScope, inElement, outData, ioDataSize);\n}\n\nOSStatus\nAudioUnitSetProperty(AudioUnit inUnit,\n    AudioUnitPropertyID inID,\n    AudioUnitScope inScope,\n    AudioUnitElement inElement,\n    const void * _Nullable inData,\n    UInt32 inDataSize)\n{\n    return dispatchCall(inUnit, kAudioUnitSetPropertySelect, inID, inScope, inElement, inData, inDataSize);\n}\n\nOSStatus\nAudioUnitAddPropertyListener(AudioUnit inUnit,\n    AudioUnitPropertyID inID,\n    AudioUnitPropertyListenerProc inProc,\n    void * _Nullable inProcUserData)\n{\n    return dispatchCall(inUnit, kAudioUnitAddPropertyListenerSelect, inID, inProc, inProcUserData);\n}\n\nOSStatus\nAudioUnitRemovePropertyListenerWithUserData(\n    AudioUnit inUnit,\n    AudioUnitPropertyID inID,\n    AudioUnitPropertyListenerProc inProc,\n    void * _Nullable inProcUserData)\n{\n    return dispatchCall(inUnit, kAudioUnitRemovePropertyListenerWithUserDataSelect, inID, inProc, inProcUserData);\n}\n\nOSStatus\nAudioUnitAddRenderNotify(AudioUnit inUnit,\n         AURenderCallback inProc,\n         void * _Nullable inProcUserData)\n{\n    return dispatchCall(inUnit, kAudioUnitAddRenderNotifySelect, inProc, inProcUserData);\n}\n\nOSStatus\nAudioUnitRemoveRenderNotify(AudioUnit inUnit,\n         AURenderCallback inProc,\n         void * _Nullable inProcUserData)\n{\n    return dispatchCall(inUnit, kAudioUnitRemoveRenderNotifySelect, inProc, inProcUserData);\n}\n\nOSStatus\nAudioUnitGetParameter(AudioUnit inUnit,\n         AudioUnitParameterID inID,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement,\n         AudioUnitParameterValue * outValue)\n{\n    return dispatchCall(inUnit, kAudioUnitGetParameterSelect, inID, inScope, inElement, outValue);\n}\n\nOSStatus\nAudioUnitSetParameter(AudioUnit inUnit,\n         AudioUnitParameterID inID,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement,\n         AudioUnitParameterValue inValue,\n         UInt32 inBufferOffsetInFrames)\n{\n    return dispatchCall(inUnit, kAudioUnitSetParameterSelect, inID, inScope, inElement, inValue, inBufferOffsetInFrames);\n}\n\nOSStatus\nAudioUnitScheduleParameters(AudioUnit inUnit,\n         const AudioUnitParameterEvent * inParameterEvent,\n         UInt32 inNumParamEvents)\n{\n    return dispatchCall(inUnit, kAudioUnitScheduleParametersSelect, inParameterEvent, inNumParamEvents);\n}\n\nOSStatus\nAudioUnitRender(AudioUnit inUnit,\n         AudioUnitRenderActionFlags * _Nullable ioActionFlags,\n         const AudioTimeStamp * inTimeStamp,\n         UInt32 inOutputBusNumber,\n         UInt32 inNumberFrames,\n         AudioBufferList * ioData)\n{\n    return dispatchCall(inUnit, kAudioUnitRenderSelect, ioActionFlags, inTimeStamp, inOutputBusNumber, inNumberFrames, ioData);\n}\n\nOSStatus\nAudioUnitProcess (AudioUnit inUnit,\n         AudioUnitRenderActionFlags * _Nullable ioActionFlags,\n         const AudioTimeStamp * inTimeStamp,\n         UInt32 inNumberFrames,\n         AudioBufferList * ioData)\n{\n    // TODO\n    return unimpErr;\n}\n\nOSStatus\nAudioUnitProcessMultiple(AudioUnit inUnit,\n         AudioUnitRenderActionFlags * _Nullable ioActionFlags,\n         const AudioTimeStamp * inTimeStamp,\n         UInt32 inNumberFrames,\n         UInt32 inNumberInputBufferLists,\n         const AudioBufferList * _Nonnull * _Nonnull inInputBufferLists,\n         UInt32 inNumberOutputBufferLists,\n         AudioBufferList * _Nonnull * _Nonnull ioOutputBufferLists)\n{\n    // TODO\n    return unimpErr;\n}\n\nOSStatus\nAudioUnitReset(AudioUnit inUnit,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement)\n{\n    return dispatchCall(inUnit, kAudioUnitResetSelect, inScope, inElement);\n}\n\nOSStatus\nAudioUnitExtensionSetComponentList(CFStringRef extensionIdentifier, _Nullable CFArrayRef audioComponentInfo)\n{\n    // TODO\n    return unimpErr;\n}\n\n_Nullable CFArrayRef\nAudioUnitExtensionCopyComponentList(CFStringRef extensionIdentifier)\n{\n    // TODO\n    return nullptr;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AUGraph.cpp",
    "content": "#include \"AUGraph.h\"\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioComponent.mm",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <AudioToolbox/AudioComponent.h>\n#include <CarbonCore/Components.h>\n#include <CarbonCore/Resources.h>\n#include <CarbonCore/MacErrors.h>\n#include <CarbonCore/MacMemory.h>\n#include \"AudioComponentManager.h\"\n#include <iostream>\n\nAudioComponent AudioComponentRegister(const AudioComponentDescription *inDesc, CFStringRef inName,\n\tUInt32 inVersion, AudioComponentFactoryFunction inFactory)\n{\n\tif (!inDesc || !inName || !inFactory)\n\t\treturn nullptr;\n\n\tconst char* name = CFStringGetCStringPtr(inName, kCFStringEncodingUTF8);\n\treturn AudioComponentManager::instance()->registerComponent(inDesc, name, inVersion, inFactory);\n}\n\nAudioComponent AudioComponentFindNext(AudioComponent inComponent, const AudioComponentDescription* desc)\n{\n\tauto matching = AudioComponentManager::instance()->findMatching(desc);\n\tif (!matching.empty())\n\t{\n\t\tif (!inComponent)\n\t\t\treturn matching[0];\n\t\t\n\t\tfor (size_t i = 0; i < matching.size()-1; i++)\n\t\t{\n\t\t\tif (matching[i] == inComponent)\n\t\t\t{\n\t\t\t\treturn matching[i+1];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (AudioComponent) ::FindNextComponent(Component(inComponent), (ComponentDescription*) desc);\n}\n\nUInt32 AudioComponentCount(const AudioComponentDescription* desc)\n{\n\tconst UInt32 carbonComponents = ::CountComponents((ComponentDescription*) desc);\n\tUInt32 numDuplicates = 0;\n\tComponent carbonComponent = nullptr;\n\n\twhile ((carbonComponent = ::FindNextComponent(carbonComponent, (ComponentDescription*) desc)) != nullptr)\n\t{\n\t\tComponentDescription cd;\n\n\t\t::GetComponentInfo(carbonComponent, &cd, nullptr, nullptr, nullptr);\n\n\t\tif (::AudioComponentFindNext(nullptr, (AudioComponentDescription*) &cd) != nullptr)\n\t\t\tnumDuplicates++;\n\t}\n\t\n\treturn AudioComponentManager::instance()->findMatching(desc).size() + carbonComponents - numDuplicates;\n}\n\nOSStatus AudioComponentCopyName(AudioComponent component, CFStringRef* outName)\n{\n\tif (AudioComponentManager::isOurInstance(component))\n\t{\n\t\tconst char* name;\n\t\tOSStatus status = AudioComponentManager::instance()->getName(component, &name);\n\n\t\tif (status == noErr)\n\t\t\t*outName = CFStringCreateWithCString(nullptr, name, kCFStringEncodingUTF8);\n\t\telse\n\t\t\t*outName = nullptr;\n\n\t\treturn status;\n\t}\n\telse\n\t{\n\t\tHandle handle = ::NewEmptyHandle();\n\t\tOSStatus status = ::GetComponentInfo(Component(component), nullptr, handle, nullptr, nullptr);\n\n\t\tif (status != noErr)\n\t\t{\n\t\t\t::DisposeHandle(handle);\n\t\t\t*outName = nullptr;\n\t\t\treturn status;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t*outName = ::CFStringCreateWithPascalString(nullptr, ConstStr255Param(*handle), kCFStringEncodingMacRoman);\n\t\t\t::DisposeHandle(handle);\n\t\t\treturn noErr;\n\t\t}\n\t}\n}\n\nOSStatus AudioComponentGetDescription(AudioComponent component, AudioComponentDescription* outDesc)\n{\n\tif (AudioComponentManager::isOurInstance(component))\n\t{\n\t\treturn AudioComponentManager::instance()->getDescription(component, outDesc);\n\t}\n\telse\n\t{\n\t\treturn ::GetComponentInfo(Component(component), (ComponentDescription*) outDesc, nullptr, nullptr, nullptr);\n\t}\n}\n\n#pragma pack(push, 1)\nstruct PlatformInfo\n{\n\tuint32_t ComponentFlags;\n\tuint32_t CodeType;\n\tuint16_t CodeId;\n\tuint16_t PlatformType;\n};\n\nstruct CarbonThng\n{\n    uint32_t Type;\n    uint32_t Subtype;\n    uint32_t Manufacturer;\n    uint32_t ComponentFlags;\n    uint32_t ComponentFlagsMask;\n    uint32_t CodeType;\n    uint16_t CodeId;\n    uint32_t NameType;\n    uint16_t NameId;\n    uint32_t InfoType;\n    uint16_t InfoId;\n    uint32_t IconType;\n    uint16_t IconId;\n    uint32_t ComponentVersion;\n    uint32_t RegistrationFlags;\n    uint16_t IconFamilyId;\n\n    uint32_t PlatformInfoCount;\n    PlatformInfo PlatformInfos[];\n};\n#pragma pack(pop)\n#ifdef __LITTLE_ENDIAN__\n#\tdefine SWAP(x) x = _bswap(x)\n\nstatic inline uint16_t _bswap(uint16_t v) { return __builtin_bswap16(v); }\nstatic inline int16_t _bswap(int16_t v) { return __builtin_bswap16(v); }\nstatic inline uint32_t _bswap(uint32_t v) { return __builtin_bswap32(v); }\n\n#else\n#\tdefine SWAP(x)\n#endif\n\nOSStatus AudioComponentGetVersion(AudioComponent component, UInt32* outVersion)\n{\n\tif (AudioComponentManager::isOurInstance(component))\n\t{\n\t\treturn AudioComponentManager::instance()->getVersion(component, (uint32_t*) outVersion);\n\t}\n\telse\n\t{\n\t\tResFileRefNum resFile, oldFile;\n\t\tAudioComponentDescription desc;\n\t\tOSStatus status;\n\t\t\n\t\tstatus = ::AudioComponentGetDescription(component, &desc);\n\t\tif (status != noErr)\n\t\t\treturn status;\n\n\t\tstatus = ::OpenAComponentResFile(Component(component), &resFile);\n\t\tif (status != noErr)\n\t\t\treturn status;\n\n\t\toldFile = ::CurResFile();\n\t\t::UseResFile(resFile);\n\n\t\tconst ResourceCount count = ::Count1Resources('thng');\n\t\tbool found = false;\n\n\t\tfor (int i = 1; i <= count; i++)\n\t\t{\n\t\t\tHandle handle = ::Get1IndResource('thng', i);\n\t\t\tif (handle && ::GetHandleSize(handle) >= sizeof(CarbonThng))\n\t\t\t{\n\t\t\t\tCarbonThng thng = *((CarbonThng*) *handle);\n\n\t\t\t\tSWAP(thng.Type);\n\t\t\t\tSWAP(thng.Subtype);\n\t\t\t\tSWAP(thng.Manufacturer);\n\n\t\t\t\tif (thng.Type == desc.componentType && thng.Subtype == desc.componentSubType && thng.Manufacturer == desc.componentManufacturer)\n\t\t\t\t{\n\t\t\t\t\tSWAP(thng.ComponentVersion);\n\t\t\t\t\t*outVersion = thng.ComponentVersion;\n\t\t\t\t\tfound = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t::UseResFile(oldFile);\n\t\t::CloseComponentResFile(resFile);\n\n\t\treturn found ? noErr : invalidComponentID;\n\t}\n}\n\n#if !TARGET_OS_IPHONE\n\nNSImage* AudioComponentGetIcon(AudioComponent component)\n{\n\treturn nullptr;\n}\n\n#else\n\nUIImage* AudioComponentGetIcon(AudioComponent component, float desiredPointSize)\n{\n\treturn nullptr;\n}\n\n#endif\n\nOSStatus AudioComponentInstanceNew(AudioComponent component, AudioComponentInstance* outInstance)\n{\n\tif (AudioComponentManager::isOurInstance(component))\n\t{\n\t\treturn AudioComponentManager::instance()->instantiate(component, outInstance);\n\t}\n\telse\n\t{\n\t\treturn ::OpenAComponent(Component(component), (ComponentInstance*) outInstance);\n\t}\n}\n\nvoid AudioComponentInstantiate(AudioComponent component, AudioComponentInstantiationOptions opts, void(^handler)(AudioComponentInstance, OSStatus))\n{\n\tstd::cerr << \"AudioComponentInstantiate(): NOT IMPLEMENTED\\n\";\n}\n\nOSStatus AudioComponentInstanceDispose(AudioComponentInstance inst)\n{\n\tif (AudioComponentManager::isOurInstance(inst))\n\t{\n\t\treturn AudioComponentManager::instance()->dispose(inst);\n\t}\n\telse\n\t{\n\t\treturn ::CloseComponent(inst);\n\t}\n}\n\nAudioComponent AudioComponentInstanceGetComponent(AudioComponentInstance inst)\n{\n\tif (AudioComponentManager::isOurInstance(inst))\n\t{\n\t\treturn AudioComponentManager::instance()->getComponent(inst);\n\t}\n\telse\n\t{\n\t\treturn (AudioComponent) ::GetComponentIDFromComponentInstance(inst);\n\t}\n}\n\nBoolean AudioComponentInstanceCanDo(AudioComponentInstance inst, SInt16 sel)\n{\n\tif (AudioComponentManager::isOurInstance(inst))\n\t{\n\t\tAudioComponentPlugInInterface* iface = AudioComponentManager::instance()->instanceInterface(inst);\n\t\treturn iface->Lookup(sel) != nullptr;\n\t}\n\telse\n\t{\n\t\treturn ::CallComponentCanDo(inst, sel);\n\t}\n}\n\nOSStatus AudioComponentCopyConfigurationInfo(AudioComponent component, CFDictionaryRef* outInfo)\n{\n\tstd::cerr << \"AudioComponentCopyConfigurationInfo(): NOT IMPLEMENTED\\n\";\n\t*outInfo = CFDictionaryCreate(nullptr, nullptr, nullptr, 0, nullptr, nullptr);\n\treturn noErr;\n}\n\nOSStatus AudioComponentValidate(AudioComponent component, CFDictionaryRef validationParams, AudioComponentValidationResult* result)\n{\n\t*result = kAudioComponentValidationResult_Passed;\n\treturn noErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioComponentManager.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _AT_AUDIO_COMPONENT_MANAGER_H\n#define _AT_AUDIO_COMPONENT_MANAGER_H\n#include <AudioToolbox/AudioComponent.h>\n#include <CoreFoundation/CFBundle.h>\n#include <mutex>\n#include <unordered_map>\n#include <stdint.h>\n#include <string>\n#include <memory>\n#include <vector>\n\nclass __attribute__((visibility(\"hidden\"))) AudioComponentManager\n{\nprivate:\n\tAudioComponentManager();\n\tvoid discoverComponents();\n\tvoid discoverComponents(const char* dir);\n\tvoid analyzeComponent(CFBundleRef bundle);\n\n\tstatic CFBundleRef bundleFromPath(const char* path);\n\n\tstruct RegisteredComponent\n\t{\n\t\tAudioComponent id;\n\t\tAudioComponentDescription desc;\n\t\tstd::string name;\n\t\tuint32_t version;\n\t\tAudioComponentFactoryFunction factory;\n\t\tAudioComponentFlags flags = 0;\n\n\t\tCFBundleRef loadedBundle = nullptr;\n\t\tstd::string bundlePath, entryPointName;\n\n\t\tint instances = 0;\n\t};\n\t\n\tRegisteredComponent* getById(AudioComponent component);\npublic:\n\tstatic AudioComponentManager* instance();\n\t// Returns true if it looks like an instance managed by this class.\n\t// False means it is probably managed by the Carbon Component Manager.\n\tstatic bool isOurInstance(AudioComponentInstance instance);\n\tstatic bool isOurInstance(AudioComponent component);\n\n\tAudioComponent registerComponent(const AudioComponentDescription* desc, const char* name,\n\t\tuint32_t version, AudioComponentFactoryFunction factory);\n\tAudioComponent registerComponent(const AudioComponentDescription* desc, const char* name,\n\t\tuint32_t version, const char* bundlePath, const char* entryPointName, AudioComponentFlags flags);\n\n\tOSStatus instantiate(AudioComponent c, AudioComponentInstance* out);\n\tOSStatus dispose(AudioComponentInstance instance);\n\n\tAudioComponentPlugInInterface* instanceInterface(AudioComponentInstance instance);\n\n\tstd::vector<AudioComponent> findMatching(const AudioComponentDescription* cd);\n\n\tOSStatus getDescription(AudioComponent c, AudioComponentDescription* out);\n\tOSStatus getName(AudioComponent c, const char** name);\n\tOSStatus getVersion(AudioComponent c, uint32_t* version);\n\n\tAudioComponent getComponent(AudioComponentInstance instance);\nprivate:\n\n\tstd::unordered_map<AudioComponent, RegisteredComponent> m_components;\n\tuint32_t m_nextComponentId = 0x4000 | 0x80000000;\n\tstd::recursive_mutex m_componentsMutex;\n\n\tstruct ComponentInstanceData\n\t{\n\t\tAudioComponent component;\n\t\tAudioComponentPlugInInterface* object;\n\t};\n\n\tstd::unordered_map<AudioComponentInstance, ComponentInstanceData> m_componentInstances;\n\tuint32_t m_nextComponentInstanceId = 0x1000 | 0x80000000;\n\tstd::recursive_mutex m_componentInstancesMutex;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioComponentManager.mm",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include \"AudioComponentManager.h\"\n#include <cstdlib>\n#include <CoreFoundation/CoreFoundation.h>\n#include <CarbonCore/MacErrors.h>\n\nAudioComponentManager::AudioComponentManager()\n{\n\tdiscoverComponents();\n}\n\nvoid AudioComponentManager::discoverComponents()\n{\n\tdiscoverComponents(\"/System/Library/Components\");\n\tdiscoverComponents(\"/Library/Components\");\n\n\tconst char* home = ::getenv(\"HOME\");\n\tif (home != NULL)\n\t{\n\t\tstd::string userPath = home;\n\t\tuserPath += \"/Library/Audio/Plug-Ins/Components\";\n\n\t\tdiscoverComponents(userPath.c_str());\n\t}\n}\n\nvoid AudioComponentManager::discoverComponents(const char* dir)\n{\n\tCFArrayRef componentBundles;\n\tCFURLRef urlDir;\n\tCFStringRef strDir;\n\n\tstrDir = CFStringCreateWithCStringNoCopy(nullptr, dir, kCFStringEncodingUTF8, kCFAllocatorNull);\n\turlDir = CFURLCreateWithFileSystemPath(nullptr, strDir, kCFURLPOSIXPathStyle, true);\n\tCFRelease(strDir);\n\n\tcomponentBundles = CFBundleCreateBundlesFromDirectory(nullptr, urlDir, CFSTR(\"component\"));\n\n\tCFRelease(urlDir);\n\n\tfor (CFIndex i = 0; i < CFArrayGetCount(componentBundles); i++)\n\t{\n\t\tCFBundleRef bundle = (CFBundleRef) CFArrayGetValueAtIndex(componentBundles, i);\n\t\tanalyzeComponent(bundle);\n\t\tCFRelease(bundle);\n\t}\n\n\tCFRelease(componentBundles);\n}\n\nstatic bool isString(CFStringRef str)\n{\n\tif (!str)\n\t\treturn false;\n\tif (CFGetTypeID(str) != CFStringGetTypeID())\n\t\treturn false;\n\treturn true;\n}\n\nstatic UInt32 stringToFourCC(CFStringRef str)\n{\n\tunion {\n\t\tchar chars[5]; // CFStringGetCString requires space for the NUL character\n\t\tuint32_t code;\n\t} cc;\n\n\tif (CFStringGetLength(str) != 4)\n\t\treturn 0;\n\tif (!CFStringGetCString(str, cc.chars, 5, kCFStringEncodingUTF8))\n\t\treturn 0;\n\n#if __LITTLE_ENDIAN__\n\tcc.code = __builtin_bswap32(cc.code);\n#endif\n\n\treturn cc.code;\n}\n\nvoid AudioComponentManager::analyzeComponent(CFBundleRef bundle)\n{\n\tCFDictionaryRef dict = CFBundleGetInfoDictionary(bundle);\n\tCFArrayRef components = (CFArrayRef) CFDictionaryGetValue(dict, CFSTR(\"AudioComponents\"));\n\n\tif (!components || CFGetTypeID(components) != CFArrayGetTypeID())\n\t\treturn;\n\n\tfor (CFIndex i = 0; i < CFArrayGetCount(components); i++)\n\t{\n\t\tCFDictionaryRef props = (CFDictionaryRef) CFArrayGetValueAtIndex(components, i);\n\t\tif (!props || CFGetTypeID(props) != CFDictionaryGetTypeID())\n\t\t\tcontinue;\n\n\t\tCFStringRef name, manufacturer, type, subtype, factoryFunction;\n\t\tCFNumberRef version;\n\t\tCFBooleanRef sandboxSafe;\n\n\t\tname = (CFStringRef) CFDictionaryGetValue(props, CFSTR(\"name\"));\n\t\tmanufacturer = (CFStringRef) CFDictionaryGetValue(props, CFSTR(\"manufacturer\"));\n\t\ttype = (CFStringRef) CFDictionaryGetValue(props, CFSTR(\"type\"));\n\t\tsubtype = (CFStringRef) CFDictionaryGetValue(props, CFSTR(\"subtype\"));\n\t\tfactoryFunction = (CFStringRef) CFDictionaryGetValue(props, CFSTR(\"factoryFunction\"));\n\n\t\tif (!isString(name) || !isString(manufacturer) || !isString(type) || !isString(subtype) || !isString(factoryFunction))\n\t\t\tcontinue;\n\n\t\tversion = (CFNumberRef) CFDictionaryGetValue(props, CFSTR(\"version\"));\n\t\tsandboxSafe = (CFBooleanRef) CFDictionaryGetValue(props, CFSTR(\"sandboxSafe\"));\n\n\t\tif (version && CFGetTypeID(version) != CFNumberGetTypeID())\n\t\t\tversion = nullptr;\n\n\t\tif (!sandboxSafe)\n\t\t\tsandboxSafe = kCFBooleanFalse;\n\n\t\tCFURLRef bundleUrl = CFBundleCopyBundleURL(bundle);\n\t\tCFStringRef bundlePath = CFURLCopyFileSystemPath(bundleUrl, kCFURLPOSIXPathStyle);\n\t\tCFRelease(bundleUrl);\n\n\t\tAudioComponentDescription desc;\n\t\tdesc.componentType = stringToFourCC(type);\n\t\tdesc.componentSubType = stringToFourCC(subtype);\n\t\tdesc.componentManufacturer = stringToFourCC(manufacturer);\n\t\tdesc.componentFlags = 0;\n\t\tdesc.componentFlagsMask = 0;\n\n\t\tAudioComponentFlags flags = 0;\n\t\tif (sandboxSafe == kCFBooleanTrue)\n\t\t\tflags |= kAudioComponentFlag_SandboxSafe;\n\n\t\tUInt32 versionValue = 0;\n\t\tif (version)\n\t\t\tCFNumberGetValue(version, kCFNumberSInt32Type, &versionValue);\n\n\t\tregisterComponent(&desc, CFStringGetCStringPtr(name, kCFStringEncodingUTF8), versionValue,\n\t\t\tCFStringGetCStringPtr(bundlePath, kCFStringEncodingUTF8), CFStringGetCStringPtr(factoryFunction, kCFStringEncodingUTF8),\n\t\t\tflags);\n\n\t\tCFRelease(bundlePath);\n\t}\n}\n\nAudioComponentManager* AudioComponentManager::instance()\n{\n\tstatic AudioComponentManager inst;\n\treturn &inst;\n}\n\nbool AudioComponentManager::isOurInstance(AudioComponentInstance instance)\n{\n\tuint32_t v = uint32_t(uintptr_t(instance));\n\treturn v & 0x80000000;\n}\n\nbool AudioComponentManager::isOurInstance(AudioComponent component)\n{\n\treturn isOurInstance(AudioComponentInstance(component));\n}\n\n/*\nAudioComponentInstance AudioComponentManager::audioUnitToInstance(AudioUnit unit)\n{\n\tuint32_t v = uint32_t(uintptr_t(unit));\n\tif (v & 0x80000000)\n\t{\n\t\tv &= 0x7fffffff;\n\t\treturn AudioComponentInstance(uintptr_t(v));\n\t}\n\treturn nullptr;\n}\n*/\n\nstd::vector<AudioComponent> AudioComponentManager::findMatching(const AudioComponentDescription* cd)\n{\n\tstd::vector<AudioComponent> rv;\n\tstd::unique_lock<std::recursive_mutex> l(m_componentsMutex);\n\n\tfor (auto const& [componentId, d] : m_components)\n\t{\n\t\tif (!cd->componentManufacturer || cd->componentManufacturer == d.desc.componentManufacturer)\n\t\t{\n\t\t\tif (!cd->componentSubType || cd->componentSubType == d.desc.componentSubType)\n\t\t\t{\n\t\t\t\tif (!cd->componentType || cd->componentType == d.desc.componentType)\n\t\t\t\t{\n\t\t\t\t\tif (d.flags & kAudioComponentFlag_Unsearchable)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!cd->componentManufacturer || !cd->componentSubType || !cd->componentType)\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\trv.push_back(d.id);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn rv;\n}\n\nAudioComponent AudioComponentManager::registerComponent(const AudioComponentDescription* desc, const char* name,\n\t\tuint32_t version, AudioComponentFactoryFunction factory)\n{\n\tstd::unique_lock<std::recursive_mutex> l(m_componentsMutex);\n\n\tRegisteredComponent rc;\n\trc.desc = *desc;\n\trc.name = name;\n\trc.version = version;\n\trc.factory = factory;\n\trc.id = (AudioComponent) uintptr_t(m_nextComponentId++);\n\n\tm_components.insert({ rc.id, rc });\n\n\treturn rc.id;\n}\n\nAudioComponent AudioComponentManager::registerComponent(const AudioComponentDescription* desc, const char* name,\n\t\tuint32_t version, const char* bundlePath, const char* entryPointName, AudioComponentFlags flags)\n{\n\tstd::unique_lock<std::recursive_mutex> l(m_componentsMutex);\n\n\tRegisteredComponent rc;\n\trc.desc = *desc;\n\trc.name = name;\n\trc.version = version;\n\trc.factory = nullptr;\n\trc.bundlePath = bundlePath;\n\trc.entryPointName = entryPointName;\n\trc.id = (AudioComponent) uintptr_t(m_nextComponentId++);\n\trc.flags = flags;\n\n\tm_components.insert({ rc.id, rc });\n\n\treturn rc.id;\n}\n\nCFBundleRef AudioComponentManager::bundleFromPath(const char* path)\n{\n\tCFStringRef cfpath = CFStringCreateWithCString(nullptr, path, kCFStringEncodingUTF8);\n\n\tCFURLRef url = CFURLCreateWithFileSystemPath(nullptr, cfpath, kCFURLPOSIXPathStyle, true);\n\tCFRelease(cfpath);\n\n\tCFBundleRef bundle = CFBundleCreate(nullptr, url);\n\tCFRelease(url);\n\n\treturn bundle;\n}\n\nOSStatus AudioComponentManager::instantiate(AudioComponent c, AudioComponentInstance* out)\n{\n\tstd::unique_lock<std::recursive_mutex> l(m_componentsMutex);\n\n\t*out = nullptr;\n\n\tauto it = m_components.find(c);\n\tif (it == m_components.end())\n\t\treturn invalidComponentID;\n\n\tRegisteredComponent& regd = it->second;\n\tif (!regd.factory)\n\t{\n\t\t// Load the bundle\n\t\tCFBundleRef bundle = bundleFromPath(regd.bundlePath.c_str());\n\n\t\tif (!bundle)\n\t\t\treturn invalidComponentID;\n\n\t\tCFStringRef factoryName = CFStringCreateWithCString(nullptr, regd.entryPointName.c_str(), kCFStringEncodingUTF8);\n\t\tregd.factory = (AudioComponentFactoryFunction) CFBundleGetFunctionPointerForName(bundle, factoryName);\n\t\tCFRelease(factoryName);\n\n\t\tif (!regd.factory)\n\t\t{\n\t\t\tCFRelease(bundle);\n\t\t\treturn invalidComponentID;\n\t\t}\n\n\t\tregd.loadedBundle = bundle;\n\t}\n\n\tstd::unique_lock<std::recursive_mutex> l2(m_componentInstancesMutex);\n\n\tComponentInstanceData cid;\n\t*out = (AudioComponentInstance) uintptr_t(m_nextComponentInstanceId++);\n\n\tcid.component = c;\n\tcid.object = regd.factory(&regd.desc);\n\n\tif (!cid.object)\n\t\treturn invalidComponentID;\n\n\tm_componentInstances.insert({ *out, cid });\n\n\tOSStatus status = cid.object->Open(cid.object, *out);\n\tif (status != noErr)\n\t{\n\t\tdispose(*out);\n\t\t*out = nullptr;\n\t\treturn status;\n\t}\n\tregd.instances++;\n\n\treturn status;\n}\n\nOSStatus AudioComponentManager::dispose(AudioComponentInstance instance)\n{\n\tstd::unique_lock<std::recursive_mutex> l2(m_componentInstancesMutex);\n\tauto it = m_componentInstances.find(instance);\n\tif (it == m_componentInstances.end())\n\t\treturn badComponentInstance;\n\n\tComponentInstanceData& cid = it->second;\n\tOSStatus status = cid.object->Close(cid.object);\n\n\tstd::unique_lock<std::recursive_mutex> l(m_componentsMutex);\n\tauto itComp = m_components.find(cid.component);\n\tif (itComp != m_components.end())\n\t{\n\t\tRegisteredComponent& regd = itComp->second;\n\t\tregd.instances--;\n\n\t\tif (regd.instances == 0 && regd.loadedBundle != nullptr)\n\t\t{\n\t\t\tCFRelease(regd.loadedBundle);\n\t\t\tregd.loadedBundle = nullptr;\n\t\t\tregd.factory = nullptr;\n\t\t}\n\t}\n\n\tm_componentInstances.erase(it);\n\treturn status;\n}\n\nAudioComponentPlugInInterface* AudioComponentManager::instanceInterface(AudioComponentInstance instance)\n{\n\tstd::unique_lock<std::recursive_mutex> l2(m_componentInstancesMutex);\n\tauto it = m_componentInstances.find(instance);\n\tif (it == m_componentInstances.end())\n\t\treturn nullptr;\n\n\treturn it->second.object;\n}\n\nAudioComponentManager::RegisteredComponent* AudioComponentManager::getById(AudioComponent component)\n{\n\tauto itComp = m_components.find(component);\n\tif (itComp != m_components.end())\n\t\treturn &itComp->second;\n\treturn nullptr;\n}\n\nOSStatus AudioComponentManager::getDescription(AudioComponent c, AudioComponentDescription* out)\n{\n\tstd::unique_lock<std::recursive_mutex> l(m_componentsMutex);\n\tRegisteredComponent* regd = getById(c);\n\n\tif (!regd)\n\t\treturn invalidComponentID;\n\n\t*out = regd->desc;\n\treturn noErr;\n}\n\nOSStatus AudioComponentManager::getName(AudioComponent c, const char** name)\n{\n\tstd::unique_lock<std::recursive_mutex> l(m_componentsMutex);\n\tRegisteredComponent* regd = getById(c);\n\n\tif (!regd)\n\t\treturn invalidComponentID;\n\n\t*name = regd->name.c_str();\n\treturn noErr;\n}\n\nOSStatus AudioComponentManager::getVersion(AudioComponent c, uint32_t* version)\n{\n\tstd::unique_lock<std::recursive_mutex> l(m_componentsMutex);\n\tRegisteredComponent* regd = getById(c);\n\n\tif (!regd)\n\t\treturn invalidComponentID;\n\n\t*version = regd->version;\n\treturn noErr;\n}\n\nAudioComponent AudioComponentManager::getComponent(AudioComponentInstance instance)\n{\n\tstd::unique_lock<std::recursive_mutex> l2(m_componentInstancesMutex);\n\tauto it = m_componentInstances.find(instance);\n\tif (it == m_componentInstances.end())\n\t\treturn nullptr;\n\n\treturn it->second.component;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioConverter.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioConverter.h\"\n#include \"AudioConverterImpl.h\"\n#include <CarbonCore/MacErrors.h>\n#include <stdexcept>\n#include <cstring>\n\nOSStatus AudioConverterNew(const AudioStreamBasicDescription* inSourceFormat, const AudioStreamBasicDescription* inDestinationFormat, AudioConverterRef* outAudioConverter)\n{\n\treturn AudioConverter::create(inSourceFormat, inDestinationFormat, (AudioConverter**)outAudioConverter);\n}\n\nOSStatus AudioConverterNewSpecific(const AudioStreamBasicDescription* inSourceFormat, const AudioStreamBasicDescription* inDestinationFormat, UInt32 inNumberClassDescriptions, AudioClassDescription* nClassDescriptions, AudioConverterRef* outAudioConverter)\n{\n\t// FIXME\n\treturn AudioConverterNew(inSourceFormat, inDestinationFormat, outAudioConverter);\n}\n\nOSStatus AudioConverterReset(AudioConverterRef inAudioConverter)\n{\n\tif (inAudioConverter)\n\t{\n\t\t((AudioConverter*)inAudioConverter)->flush();\n\t\treturn noErr;\n\t}\n\telse\n\t\treturn paramErr;\n}\n\nOSStatus AudioConverterDispose(AudioConverterRef inAudioConverter)\n{\n\tdelete (AudioConverter*)inAudioConverter;\n\treturn noErr;\n}\n\nOSStatus AudioConverterGetProperty(AudioConverterRef inAudioConverter, AudioConverterPropertyID inPropertyID, UInt32 *ioPropertyDataSize, void *outPropertyData)\n{\n\treturn ((AudioConverter*)inAudioConverter)->getProperty(inPropertyID, ioPropertyDataSize, outPropertyData);\n}\n\nOSStatus AudioConverterGetPropertyInfo(AudioConverterRef inAudioConverter, AudioConverterPropertyID inPropertyID, UInt32 *outSize, Boolean *outWritable)\n{\n\treturn ((AudioConverter*)inAudioConverter)->getPropertyInfo(inPropertyID, outSize, outWritable);\n}\n\nOSStatus AudioConverterSetProperty(AudioConverterRef inAudioConverter, AudioConverterPropertyID inPropertyID, UInt32 inPropertyDataSize, const void *inPropertyData)\n{\n\treturn ((AudioConverter*)inAudioConverter)->setProperty(inPropertyID, inPropertyDataSize, inPropertyData);\n}\n\nOSStatus AudioConverterConvertBuffer(AudioConverterRef inAudioConverter, UInt32 inInputDataSize, const void* inInputData, UInt32 *ioOutputDataSize, void *outOutputData)\n{\n\tAudioBufferList in, out;\n\tOSStatus stat;\n\n\tin.mNumberBuffers = out.mNumberBuffers = 1;\n\n\tin.mBuffers[0].mNumberChannels = 2;\n\tout.mBuffers[0].mNumberChannels = 2;\n\n\tin.mBuffers[0].mDataByteSize = inInputDataSize;\n\tin.mBuffers[0].mData = const_cast<void*>(inInputData);\n\n\tout.mBuffers[0].mDataByteSize = *ioOutputDataSize;\n\tout.mBuffers[0].mData = outOutputData;\n\n\tstat = AudioConverterConvertComplexBuffer(inAudioConverter, inInputDataSize/((AudioConverter*)inAudioConverter)->frameSize(), &in, &out);\n\t*ioOutputDataSize = out.mBuffers[0].mDataByteSize;\n\n\treturn stat;\n}\n\nOSStatus AudioConverterFillComplexBuffer(AudioConverterRef inAudioConverter, AudioConverterComplexInputDataProc inInputDataProc, void *inInputDataProcUserData, UInt32 *ioOutputDataPacketSize, AudioBufferList *outOutputData, AudioStreamPacketDescription* outPacketDescription)\n{\n\treturn ((AudioConverter*)inAudioConverter)->fillComplex(inInputDataProc, inInputDataProcUserData, ioOutputDataPacketSize, outOutputData, outPacketDescription);\n}\n\nOSStatus AudioConverterConvertComplexBuffer(AudioConverterRef inAudioConverter, UInt32 inNumberPCMFrames, const AudioBufferList *inInputData, AudioBufferList *outOutputData)\n{\n\tOSStatus status;\n\tUInt32 dataPacketSize;\n\tint64_t totalOutBytes = 0;\n\ttypedef OSStatus (^CallbackBlock)(AudioConverterRef audioConverter, UInt32* numberDataPackets, AudioBufferList* data, AudioStreamPacketDescription** dataPacketDescription);\n\t\n\tCallbackBlock callbackBlock =\n\t\t^ OSStatus (AudioConverterRef audioConverter, UInt32* numberDataPackets, AudioBufferList* data, AudioStreamPacketDescription** dataPacketDescription)\n\t{\n\t\tconst AudioBufferList *inInputData = (AudioBufferList*) inInputData;\n\n\t\tif (dataPacketDescription)\n\t\t\t*dataPacketDescription = nullptr;\n\t\t\n\t\t// TODO\n\n\t\treturn unimpErr;\n\t};\n\n\t// Squeezing a block through a function pointer\n\tAudioConverterComplexInputDataProc proc = [](AudioConverterRef audioConverter, UInt32* numberDataPackets, AudioBufferList* data, AudioStreamPacketDescription** dataPacketDescription, void* userData) -> OSStatus\n\t{\n\t\tCallbackBlock callbackBlock = (CallbackBlock) userData;\n\t\treturn callbackBlock(audioConverter, numberDataPackets, data, dataPacketDescription);\n\t};\n\n\tfor (UInt32 i = 0; i < outOutputData->mNumberBuffers; i++)\n\t\ttotalOutBytes += outOutputData->mBuffers[i].mDataByteSize;\n\n\tdataPacketSize = totalOutBytes / ((AudioConverter*)inAudioConverter)->frameSize();\n\n\tstatus = AudioConverterFillComplexBuffer(inAudioConverter, proc, (void*) inInputData, &dataPacketSize, outOutputData, nullptr);\n\treturn status;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioConverterImpl.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioConverterImpl.h\"\n#include <CarbonCore/MacErrors.h>\n#include <stdexcept>\n#include <cstring>\n#include <cassert>\n#include <iostream>\n#include <sstream>\n#include \"stub.h\"\n\nextern \"C\" {\n#include <libavcodec/avcodec.h>\n#include <libavutil/opt.h>\n#include <libavutil/mem.h>\n}\n\nstatic constexpr int ENCODER_FRAME_SAMPLES = 1024;\n\n// http://blinkingblip.wordpress.com/\n\nstatic void throwFFMPEGError(int errnum, const char* function)\n{\n\tchar buf[256];\n\tstd::stringstream ss;\n\n\tif (av_strerror(errnum, buf, sizeof(buf)) == 0)\n\t\tss << function << \": \" << buf;\n\telse\n\t\tss << function << \": unknown error\";\n\n\tthrow std::runtime_error(ss.str());\n}\n\nAudioConverter::AudioConverter(const AudioStreamBasicDescription* inSourceFormat, const AudioStreamBasicDescription* inDestinationFormat)\n    : m_sourceFormat(*inSourceFormat), m_destinationFormat(*inDestinationFormat), m_decoder(nullptr), m_encoder(nullptr)\n{\n\tmemset(&m_avpkt, 0, sizeof(m_avpkt));\n\tmemset(&m_avpktOut, 0, sizeof(m_avpktOut));\n}\n\nvoid AudioConverter::flush()\n{\n\tTRACE();\n\tavcodec_flush_buffers(m_decoder);\n\tavcodec_flush_buffers(m_encoder);\n\t//avcodec_close(m_encoder);\n}\n\nOSStatus AudioConverter::create(const AudioStreamBasicDescription* inSourceFormat, const AudioStreamBasicDescription* inDestinationFormat, AudioConverter** out)\n{\n\tTRACE2(inSourceFormat, inDestinationFormat);\n\t\n\t// TODO: non-interleaved audio\n\n\tconst AVCodec *codecIn, *codecOut;\n\tAVCodecContext *cIn;\n\tAVCodecContext *cOut;\n\tenum AVCodecID idIn, idOut;\n\n\t*out = nullptr;\n\tidIn = CACodecToAV(inSourceFormat);\n\tidOut = CACodecToAV(inDestinationFormat);\n\n\tif (idIn == AV_CODEC_ID_NONE || idOut == AV_CODEC_ID_NONE)\n\t{\n\t\t// LOG << \"AudioConverter::create(): Unsupported codec, format in = \" << std::hex << inSourceFormat->mFormatID << \", out = \" << inDestinationFormat->mFormatID << std::dec << std::endl;\n\t\treturn paramErr;\n\t}\n\n\tcodecIn = avcodec_find_decoder(idIn);\n\tcodecOut = avcodec_find_encoder(idOut);\n\n\tif (!codecIn || !codecOut)\n\t{\n\t\t// LOG << \"AudioConverter::create(): avcodec_find_*() failed, format in = \" << std::hex << inSourceFormat->mFormatID << \", out = \" << inDestinationFormat->mFormatID << std::dec << std::endl;\n\t\treturn paramErr;\n\t}\n\n\t*out = new AudioConverter(inSourceFormat, inDestinationFormat);\n\n\t(*out)->m_decoder = cIn = avcodec_alloc_context3(codecIn);\n\t\n\tif (inSourceFormat->mFormatID == kAudioFormatLinearPCM)\n\t{\n#warning \"TODO: Remove deprecated 'channels' once we no longer support older distros\" \n#if LIBAVCODEC_VERSION_MAJOR >= 61\n\t\tcIn->ch_layout.nb_channels = inSourceFormat->mChannelsPerFrame;\n#else\n\t\tcIn->channels = inSourceFormat->mChannelsPerFrame;\n#endif\n\t\tcIn->sample_rate = inSourceFormat->mSampleRate;\n\n#if LIBAVCODEC_VERSION_MAJOR >= 61\n\t\tstd::cout << \"Converting from PCM with \" << cIn->ch_layout.nb_channels << \" channels at \" << cIn->sample_rate << \" Hz\\n\";\n#else\n\t\tstd::cout << \"Converting from PCM with \" << cIn->channels << \" channels at \" << cIn->sample_rate << \" Hz\\n\";\n#endif\n\t}\n\t\n\tif (avcodec_open2((*out)->m_decoder, codecIn, nullptr) < 0)\n\t{\n\t\tdelete *out;\n\t\tstd::cerr << \"AudioConverter::create(): avcodec_open() failed, format in = \" << std::hex << inSourceFormat->mFormatID << \", out = \" << inDestinationFormat->mFormatID << std::dec << std::endl;\n\n\t\treturn paramErr;\n\t}\n\n\t// The encoder will be initialized after we process the first packet\n\t(*out)->m_encoder = cOut = avcodec_alloc_context3(codecOut);\n\t(*out)->m_codecIn = codecIn;\n\t(*out)->m_codecOut = codecOut;\n\n\treturn noErr;\n}\n\nvoid AudioConverter::initEncoder()\n{\n\tint err;\n\t\n\tif (m_encoderInitialized)\n\t\tthrow std::logic_error(\"Encoder already initialized\");\n\t\n\tm_encoder->codec_type = AVMEDIA_TYPE_AUDIO;\n\tm_encoder->bit_rate = m_outBitRate;\n#warning \"TODO: Remove deprecated 'channels' once we no longer support older distros\" \n#if LIBAVCODEC_VERSION_MAJOR >= 61\n\tm_encoder->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC;\n\tm_encoder->ch_layout.nb_channels = m_destinationFormat.mChannelsPerFrame;\n#else\n\tm_encoder->channels = m_destinationFormat.mChannelsPerFrame;\n\tm_encoder->channel_layout = CAChannelCountToLayout(m_destinationFormat.mChannelsPerFrame);\n#endif\n\tm_encoder->sample_rate = m_destinationFormat.mSampleRate;\n\tm_encoder->sample_fmt = CACodecSampleFormat(&m_destinationFormat);\n\n#ifdef DEBUG_AUDIOCONVERTER\n\tstd::cout << \"ENCODER FORMAT:\\n\";\n\tstd::cout << \"\\tSample rate: \" << m_encoder->sample_rate << std::endl;\n\tstd::cout << \"\\tChannels: \" << m_destinationFormat.mChannelsPerFrame << std::endl;\n\tstd::cout << \"\\tFormat: 0x\" << std::hex << m_encoder->sample_fmt << std::dec << std::endl;\n#endif\n\t\n\terr = avcodec_open2(m_encoder, m_codecOut, 0);\n\tif (err < 0)\n\t\tthrowFFMPEGError(err, \"avcodec_open2() encoder\");\n\t\n\tallocateBuffers();\n\tm_encoderInitialized = true;\n}\n\nvoid AudioConverter::allocateBuffers()\n{\n#ifdef HAVE_AV_FRAME_ALLOC\n\tm_audioFrame = av_frame_alloc();\n#else\n\tm_audioFrame = avcodec_alloc_frame();\n#endif\n\t\n\tm_audioFrame->nb_samples = ENCODER_FRAME_SAMPLES;\n\tm_audioFrame->format = m_encoder->sample_fmt;\n\n#warning \"TODO: Remove deprecated 'channels' once we no longer support older distros\" \n#if LIBAVCODEC_VERSION_MAJOR >= 61\n\tm_audioFrame->ch_layout.order = m_encoder->ch_layout.order;\n\tm_audioFrame->ch_layout.nb_channels = m_encoder->ch_layout.nb_channels;\n\tint audioSampleBuffer_size = av_samples_get_buffer_size(nullptr, m_encoder->ch_layout.nb_channels, m_audioFrame->nb_samples, m_encoder->sample_fmt, 0);\n#else\n\tm_audioFrame->channel_layout = m_encoder->channel_layout;\n\tint audioSampleBuffer_size = av_samples_get_buffer_size(nullptr, m_encoder->channels, m_audioFrame->nb_samples, m_encoder->sample_fmt, 0);\n#endif\n\tvoid* audioSampleBuffer = (uint8_t*) av_malloc(audioSampleBuffer_size);\n\n\tif (!audioSampleBuffer)\n\t{\n\t\tstd::cerr << \"AudioConverter::allocateBuffers(): Failed to allocate sample buffer\\n\";\n\t\tthrow std::runtime_error(\"AudioConverter::allocateBuffers(): Failed to allocate sample buffer\");\n\t}\n\n\t// Setup the data pointers in the AVFrame\n#if LIBAVCODEC_VERSION_MAJOR >= 61\n\tif (int err = avcodec_fill_audio_frame(m_audioFrame, m_encoder->ch_layout.nb_channels, m_encoder->sample_fmt,\n\t\t(const uint8_t*) audioSampleBuffer, audioSampleBuffer_size, 0 ); err < 0)\n#else\n\tif (int err = avcodec_fill_audio_frame(m_audioFrame, m_encoder->channels, m_encoder->sample_fmt,\n\t\t(const uint8_t*) audioSampleBuffer, audioSampleBuffer_size, 0 ); err < 0)\n#endif\n\t{\n\t\tstd::cerr << \"AudioConverter::allocateBuffers(): Could not set up audio frame\\n\";\n\t\tthrow std::runtime_error(\"AudioConverter::allocateBuffers(): Could not set up audio frame\");\n\t}\n}\n\nAudioConverter::~AudioConverter()\n{\n\tTRACE();\n\tif (m_decoder)\n\t\tavcodec_free_context(&m_decoder);\n\tif (m_encoder)\n\t\tavcodec_free_context(&m_encoder);\n\tif (m_audioFrame)\n\t\tav_free(m_audioFrame);\n\tif (m_resampler)\n\t\tswr_free(&m_resampler);\n}\n\ntemplate <typename T> OSStatus setPropertyT(UInt32 inPropertyDataSize, T* localProperty, const void* propertySource)\n{\n\tconst T* t = static_cast<const T*>(propertySource);\n\t\n\tif (inPropertyDataSize != sizeof(T))\n\t\treturn kAudioConverterErr_BadPropertySizeError;\n\t\n\t*localProperty = *t;\n\treturn noErr;\n}\n\nOSStatus AudioConverter::setProperty(AudioConverterPropertyID inPropertyID, UInt32 inPropertyDataSize, const void *inPropertyData)\n{\n\tswitch (inPropertyID)\n\t{\n\t\tcase kAudioConverterEncodeBitRate:\n\t\t{\n\t\t\treturn setPropertyT(inPropertyDataSize, &m_outBitRate, inPropertyData);\n\t\t}\n\t\tcase kAudioConverterInputChannelLayout:\n\t\t{\n\t\t}\n\t\tcase kAudioConverterOutputChannelLayout:\n\t\t{\n\t\t}\n\t\tcase kAudioConverterCurrentOutputStreamDescription:\n\t\t{\n\t\t\treturn kAudioConverterErr_PropertyNotSupported;\n\t\t\t//return setPropertyT(inPropertyDataSize, &m_sourceFormat, inPropertyData);\n\t\t}\n\t\tcase kAudioConverterCurrentInputStreamDescription:\n\t\t{\n\t\t\treturn kAudioConverterErr_PropertyNotSupported;\n\t\t\t//return setPropertyT(inPropertyDataSize, &m_destinationFormat, inPropertyData);\n\t\t}\n\t\tdefault:\n\t\t{\n\t\t\tSTUB();\n\t\t\treturn kAudioConverterErr_PropertyNotSupported;\n\t\t}\n\t}\n\t\n\treturn unimpErr;\n}\n\nOSStatus AudioConverter::getPropertyInfo(AudioConverterPropertyID inPropertyID, UInt32 *outSize, Boolean *outWritable)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\ntemplate <typename T> OSStatus getPropertyT(UInt32 *ioPropertyDataSize, const T* localProperty, void* propertyTarget)\n{\n\tT* t = static_cast<T*>(propertyTarget);\n\t\n\tif (*ioPropertyDataSize < sizeof(T))\n\t\treturn kAudioConverterErr_BadPropertySizeError;\n\t*ioPropertyDataSize = sizeof(T);\n\t\n\t*t = *localProperty;\n\treturn noErr;\n}\n\nOSStatus AudioConverter::getProperty(AudioConverterPropertyID inPropertyID, UInt32 *ioPropertyDataSize, void *outPropertyData)\n{\n\tswitch (inPropertyID)\n\t{\n\t\tcase kAudioConverterEncodeBitRate:\n\t\t{\n\t\t\treturn getPropertyT(ioPropertyDataSize, &m_outBitRate, outPropertyData);\n\t\t}\n\t\tcase kAudioConverterCurrentInputStreamDescription:\n\t\t{\n\t\t\treturn getPropertyT(ioPropertyDataSize, &m_sourceFormat, outPropertyData);\n\t\t}\n\t\tcase kAudioConverterCurrentOutputStreamDescription:\n\t\t{\n\t\t\treturn getPropertyT(ioPropertyDataSize, &m_destinationFormat, outPropertyData);\n\t\t}\n\t\tdefault:\n\t\t{\n\t\t\tSTUB();\n\t\t\treturn kAudioConverterErr_PropertyNotSupported;\n\t\t}\n\t}\n}\n\nOSStatus AudioConverter::feedInput(AudioConverterComplexInputDataProc dataProc, void* opaque, UInt32& numDataPackets)\n{\n\tAudioBufferList bufferList;\n\tAudioStreamPacketDescription* aspd;\n\tOSStatus err;\n\n\tnumDataPackets = 4096; // TODO: increase this?\n\tbufferList.mNumberBuffers = 1;\n\tbufferList.mBuffers[0].mDataByteSize = 0;\n\tbufferList.mBuffers[0].mData = nullptr;\n\t\n\terr = dataProc(AudioConverterRef(this), &numDataPackets, &bufferList, &aspd, opaque);\n\t\n\tif (err != noErr)\n\t\treturn err;\n\t\n\tm_avpkt.size = bufferList.mBuffers[0].mDataByteSize;\n\tm_avpkt.data = (uint8_t*) bufferList.mBuffers[0].mData;\n\t\n\treturn noErr;\n}\n\nvoid AudioConverter::setupResampler(const AVFrame* frame)\n{\n\tint err;\n\t\n\tif (m_resampler != nullptr)\n\t\tthrow std::logic_error(\"Resampler already created\");\n\t\n\tm_resampler = swr_alloc();\n\tm_targetFormat = CACodecSampleFormat(&m_destinationFormat);\n\t\n\tav_opt_set_int(m_resampler, \"in_channel_layout\", CAChannelCountToLayout(m_sourceFormat.mChannelsPerFrame), 0);\n\tav_opt_set_int(m_resampler, \"out_channel_layout\", CAChannelCountToLayout(m_destinationFormat.mChannelsPerFrame), 0);\n\tav_opt_set_int(m_resampler, \"in_channels\", m_sourceFormat.mChannelsPerFrame, 0);\n\tav_opt_set_int(m_resampler, \"out_channels\", m_destinationFormat.mChannelsPerFrame, 0);\n\tav_opt_set_int(m_resampler, \"in_sample_rate\", frame->sample_rate, 0);\n\tav_opt_set_int(m_resampler, \"out_sample_rate\", m_destinationFormat.mSampleRate, 0);\n\tav_opt_set_int(m_resampler, \"in_sample_fmt\", frame->format, 0);\n\tav_opt_set_int(m_resampler, \"out_sample_fmt\", m_targetFormat, 0);\n\n#ifdef DEBUG_AUDIOCONVERTER\n\tstd::cout << \"RESAMPLER:\\n\";\n\tstd::cout << \"\\tInput rate: \" << frame->sample_rate << std::endl;\n\tstd::cout << \"\\tInput format: 0x\" << std::hex << frame->format << std::dec <<std::endl;\n\tstd::cout << \"\\tOutput rate: \" << m_destinationFormat.mSampleRate << std::endl;\n\tstd::cout << \"\\tOutput format: 0x\" << std::hex << CACodecSampleFormat(&m_destinationFormat) << std::dec << std::endl;\n\n\tm_resamplerInput.open(\"/tmp/resampler.in.raw\", std::ios_base::binary | std::ios_base::out);\n\tm_resamplerOutput.open(\"/tmp/resampler.out.raw\", std::ios_base::binary | std::ios_base::out);\n\tm_encoderOutput.open(\"/tmp/encoder.out.raw\", std::ios_base::binary | std::ios_base::out);\n#endif\n\t\n\terr = swr_init(m_resampler);\n\tif (err < 0)\n\t\tthrowFFMPEGError(err, \"swr_init()\");\n}\n\nOSStatus AudioConverter::fillComplex(AudioConverterComplexInputDataProc dataProc, void* opaque,\n\tUInt32* ioOutputDataPacketSize, AudioBufferList *outOutputData, AudioStreamPacketDescription* outPacketDescription)\n{\n\tAVFrame* srcaudio;\n\n#ifdef HAVE_AV_FRAME_ALLOC\n\tsrcaudio = av_frame_alloc();\n\tav_frame_unref(srcaudio);\n#else\n\tsrcaudio = avcodec_alloc_frame();\n\tavcodec_get_frame_defaults(srcaudio);\n#endif\n\t\n\ttry\n\t{\n\t\tfor (uint32_t i = 0; i < outOutputData->mNumberBuffers; i++)\n\t\t{\n\t\t\tUInt32 origSize = outOutputData->mBuffers[i].mDataByteSize;\n\t\t\tUInt32& newSize = outOutputData->mBuffers[i].mDataByteSize;\n\t\t\t\n\t\t\tnewSize = 0;\n\t\t\t\n\t\t\twhile (newSize < origSize)\n\t\t\t{\n\t\t\t\tif (m_avpktOutUsed < m_avpktOut.size)\n\t\t\t\t{\n\t\t\t\t\t// std::cout << \"case 1 (used \" << m_avpktOutUsed << \" from \" << m_avpktOut.size << \")\\n\";\n\t\t\t\t\t// Feed output from previous conversion\n\t\t\t\t\twhile (m_avpktOutUsed < m_avpktOut.size && newSize < origSize)\n\t\t\t\t\t{\n\t\t\t\t\t\t// Output data\n\t\t\t\t\t\tint tocopy = std::min<int>(m_avpktOut.size - m_avpktOutUsed, origSize - newSize);\n\t\t\t\t\t\tmemcpy(((char*) outOutputData->mBuffers[i].mData) + newSize, m_avpktOut.data + m_avpktOutUsed, tocopy);\n\t\t\t\t\t\tnewSize += tocopy;\n\t\t\t\t\t\tm_avpktOutUsed += tocopy;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (m_avpktOutUsed >= m_avpktOut.size)\n\t\t\t\t\t{\n\t\t\t\t\t\tm_avpktOutUsed = 0;\n\t\t\t\t\t\tav_packet_unref(&m_avpktOut);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\twhile (!feedEncoder())\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!feedDecoder(dataProc, opaque, srcaudio))\n\t\t\t\t\t\t\tgoto end;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\nend:\n\t\t\n#ifdef HAVE_AV_FRAME_ALLOC\n\t\tav_frame_free(&srcaudio);\n#else\n\t\tavcodec_free_frame(&srcaudio);\n#endif\n\t}\n\tcatch (const std::exception& e)\n\t{\n\t\tstd::cerr << \"AudioConverter::fillComplex(): Exception: \" << e.what();\n#ifdef HAVE_AV_FRAME_ALLOC\n\t\tav_frame_free(&srcaudio);\n#else\n\t\tavcodec_free_frame(&srcaudio);\n#endif\n\t\treturn ioErr;\n\t}\n\tcatch (OSStatus err)\n\t{\n\t\tstd::cerr << \"AudioConverter::fillComplex(): OSStatus error: \" << err;\n#ifdef HAVE_AV_FRAME_ALLOC\n\t\tav_frame_free(&srcaudio);\n#else\n\t\tavcodec_free_frame(&srcaudio);\n#endif\n\t\treturn err;\n\t}\n\t\n\treturn noErr;\n}\n\nbool AudioConverter::feedDecoder(AudioConverterComplexInputDataProc dataProc, void* opaque, AVFrame* srcaudio)\n{\n\tint gotFrame, err;\n\t\n\tdo\n\t{\n\t\t// Read input\n\t\tif (!m_avpkt.size)\n\t\t{\n\t\t\tUInt32 numDataPackets = 0;\n\t\t\tOSStatus err = feedInput(dataProc, opaque, numDataPackets);\n\n\t\t\t// The documentation says that this may be a temporary condition\n\t\t\tif (err != noErr)\n\t\t\t\treturn false;\n\n\t\t\tif (!m_avpkt.size) // numDataPackets cannot be trusted\n\t\t\t\treturn false;\n\t\t}\n\n#if 0\n\t\terr = avcodec_decode_audio4(m_decoder, srcaudio, &gotFrame, &m_avpkt);\n\t\tif (err < 0)\n\t\t\tthrowFFMPEGError(err, \"avcodec_decode_audio4()\");\n\n\t\tm_avpkt.size -= err;\n\t\tm_avpkt.data += err;\n#else\n\t\t#warning TODO: test this new avcodec decoder code\n\t\terr = avcodec_send_packet(m_decoder, &m_avpkt);\n\n\t\tif (err < 0) {\n\t\t\tif (err == AVERROR(EAGAIN)) {\n\t\t\t\t// we need to consume frames before sending more packets\n\t\t\t\terr = 0;\n\t\t\t}\n\t\t\tif (err < 0) {\n\t\t\t\tthrowFFMPEGError(err, \"avcodec_send_packet()\");\n\t\t\t}\n\t\t} else {\n\t\t\t// on success, the data packet has been consumed entirely\n\t\t\tm_avpkt.data += m_avpkt.size;\n\t\t\tm_avpkt.size = 0;\n\t\t}\n\n\t\terr = avcodec_receive_frame(m_decoder, srcaudio);\n\n\t\tif (err < 0) {\n\t\t\tgotFrame = false;\n\t\t\tif (err == AVERROR(EAGAIN)) {\n\t\t\t\t// we need to send more packets before consuming a frame\n\t\t\t\terr = 0;\n\t\t\t}\n\t\t\tif (err < 0) {\n\t\t\t\tthrowFFMPEGError(err, \"avcodec_receive_frame()\");\n\t\t\t}\n\t\t} else {\n\t\t\t// on success, we have a valid frame\n\t\t\tgotFrame = true;\n\t\t}\n#endif\n\n\t\tif (gotFrame)\n\t\t{\n\t\t\tif (!m_resampler)\n\t\t\t\tsetupResampler(srcaudio);\n\n#ifdef DEBUG_AUDIOCONVERTER\n\t\t\tm_resamplerInput.write((char*) srcaudio->data, srcaudio->nb_samples * 2 * m_sourceFormat.mChannelsPerFrame);\n\t\t\tm_resamplerInput.flush();\n#endif\n\t\t\t\n\t\t\t// Resample PCM\n\t\t\terr = swr_convert(m_resampler, nullptr, 0, (const uint8_t**)&srcaudio->data[0], srcaudio->nb_samples);\n\t\t\tif (err < 0)\n\t\t\t\tthrowFFMPEGError(err, \"swr_convert()\");\n\t\t}\n\t}\n\twhile (!gotFrame);\n\n\treturn true;\n}\n\nbool AudioConverter::feedEncoder()\n{\n\tint gotFrame = 0, err;\n\tuint8_t *output;\n\tint out_linesize;\n\tint avail;\n\n\tif (!m_resampler)\n\t\treturn false;\n\n\tif (!m_encoderInitialized)\n\t\tinitEncoder();\n\t\n\tassert(m_avpktOutUsed == m_avpktOut.size);\n\n\tconst size_t bytesPerSample = m_destinationFormat.mBitsPerChannel / 8;\n\tconst size_t bytesPerFrame = m_destinationFormat.mChannelsPerFrame * bytesPerSample;\n\tconst size_t requiredBytes = bytesPerFrame * ENCODER_FRAME_SAMPLES;\n\n\twhile (m_audioFramePrebuf.size() < requiredBytes && (avail = swr_get_out_samples(m_resampler, 0)) > 0)\n\t{\n\t\tav_samples_alloc(&output, &out_linesize, m_destinationFormat.mChannelsPerFrame,\n\t\t\tavail, m_encoder->sample_fmt, 0);\n\n\t\tif ((avail = swr_convert(m_resampler, &output, avail, nullptr, 0)) < 0)\n\t\t{\n\t\t\tav_freep(&output);\n\t\t\tthrowFFMPEGError(err, \"swr_convert()\");\n\t\t}\n\n#ifdef DEBUG_AUDIOCONVERTER\n\t\tm_resamplerOutput.write((char*) output, avail * bytesPerFrame);\n\t\tm_resamplerOutput.flush();\n#endif\n\n\t\tm_audioFramePrebuf.push(output, avail * bytesPerFrame);\n\t\tav_freep(&output);\n\t}\n\n\tav_init_packet(&m_avpktOut);\n\tm_avpktOut.data = 0;\n\tm_avpktOut.size = 0;\n\tm_avpktOutUsed = 0;\n\n\tif (m_audioFramePrebuf.size() >= requiredBytes)\n\t{\n\t\ttry\n\t\t{\n\t\t\terr = avcodec_fill_audio_frame(m_audioFrame, m_destinationFormat.mChannelsPerFrame,\n\t\t\t\t\tm_targetFormat, m_audioFramePrebuf.data(), requiredBytes, 0);\n\t\t\t\n\t\t\tif (err < 0)\n\t\t\t\tthrowFFMPEGError(err, \"avcodec_fill_audio_frame()\");\n\n#if 0\n\t\t\terr = avcodec_encode_audio2(m_encoder, &m_avpktOut, m_audioFrame, &gotFrame);\n\t\t\tif (err < 0)\n\t\t\t\tthrowFFMPEGError(err, \"avcodec_encode_audio2()\");\n#else\n\t\t\t#warning TODO: test this new avcodec encoder code\n\t\t\terr = avcodec_send_frame(m_encoder, m_audioFrame);\n\n\t\t\tif (err < 0) {\n\t\t\t\tif (err == AVERROR(EAGAIN)) {\n\t\t\t\t\t// we need to consume more packets before sending\n\t\t\t\t\t// TODO: handle this case properly.\n\t\t\t\t\t//       for now, we just proceed to throw an error to avoid dropping a frame\n\t\t\t\t}\n\t\t\t\tif (err < 0) {\n\t\t\t\t\tthrowFFMPEGError(err, \"avcodec_send_frame()\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\terr = avcodec_receive_packet(m_encoder, &m_avpkt);\n\n\t\t\tif (err < 0) {\n\t\t\t\tgotFrame = false;\n\t\t\t\tif (err == AVERROR(EAGAIN)) {\n\t\t\t\t\t// we need to send more frames before consuming a packet\n\t\t\t\t\terr = 0;\n\t\t\t\t}\n\t\t\t\tif (err < 0) {\n\t\t\t\t\tthrowFFMPEGError(err, \"avcodec_receive_packet()\");\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tgotFrame = true;\n\t\t\t}\n#endif\n\n\t\t\tm_audioFramePrebuf.consume(requiredBytes);\n\n#ifdef DEBUG_AUDIOCONVERTER\n\t\t\tif (gotFrame)\n\t\t\t\tm_encoderOutput.write((char*) m_avpktOut.data, m_avpktOut.size);\n#endif\n\t\t}\n\t\tcatch (...)\n\t\t{\n\t\t\tm_audioFramePrebuf.consume(requiredBytes);\n\t\t\tthrow;\n\t\t}\n\n\t\treturn gotFrame;\n\t}\n\treturn false;\n}\n\nuint32_t AudioConverter::CAChannelCountToLayout(UInt32 numChannels)\n{\n\t// TODO: this is just wild guessing\n\tswitch (numChannels)\n\t{\n\t\tcase 1:\n\t\t\treturn AV_CH_LAYOUT_MONO;\n\t\tcase 2:\n\t\t\treturn AV_CH_LAYOUT_STEREO;\n\t\tcase 3:\n\t\t\treturn AV_CH_LAYOUT_SURROUND;\n\t\tcase 4:\n\t\t\treturn AV_CH_LAYOUT_4POINT0;\n\t\tcase 5:\n\t\t\treturn AV_CH_LAYOUT_4POINT1;\n\t\tcase 6:\n\t\t\treturn AV_CH_LAYOUT_5POINT1;\n\t\tcase 7:\n\t\t\treturn AV_CH_LAYOUT_6POINT1;\n\t\tcase 8:\n\t\t\treturn AV_CH_LAYOUT_7POINT1;\n\t\tdefault:\n\t\t\treturn AV_CH_LAYOUT_STEREO;\n\t}\n}\n\nenum AVSampleFormat AudioConverter::CACodecSampleFormat(const AudioStreamBasicDescription* desc)\n{\n\tif (desc->mFormatFlags & kAudioFormatFlagIsFloat)\n\t{\n\t\tif (desc->mBitsPerChannel == 32)\n\t\t\treturn AV_SAMPLE_FMT_FLT;\n\t\telse if (desc->mBitsPerChannel == 64)\n\t\t\treturn AV_SAMPLE_FMT_DBL;\n\t\telse\n\t\t\treturn AV_SAMPLE_FMT_NONE;\n\t}\n\telse\n\t{\n\t\t\n\t\tswitch (desc->mBitsPerChannel)\n\t\t{\n\t\t\tcase 8: return AV_SAMPLE_FMT_U8;\n\t\t\tcase 16: return AV_SAMPLE_FMT_S16;\n\t\t\tcase 24: return AV_SAMPLE_FMT_S32; // FIXME: 24-bits?\n\t\t\tcase 32: return AV_SAMPLE_FMT_S32;\n\t\t\tdefault: return AV_SAMPLE_FMT_NONE;\n\t\t}\n\t}\n}\n\nenum AVCodecID AudioConverter::CACodecToAV(const AudioStreamBasicDescription* desc)\n{\n\tswitch (desc->mFormatID)\n\t{\n\t\tcase kAudioFormatLinearPCM:\n\t\t{\n\t\t\tif (desc->mFormatFlags & kAudioFormatFlagIsFloat)\n\t\t\t{\n\t\t\t\tif (desc->mFormatFlags & kAudioFormatFlagIsBigEndian)\n\t\t\t\t{\n\t\t\t\t\tif (desc->mBitsPerChannel == 32)\n\t\t\t\t\t\treturn AV_CODEC_ID_PCM_F32BE;\n\t\t\t\t\telse if (desc->mBitsPerChannel == 64)\n\t\t\t\t\t\treturn AV_CODEC_ID_PCM_F64BE;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (desc->mBitsPerChannel == 32)\n\t\t\t\t\t\treturn AV_CODEC_ID_PCM_F32LE;\n\t\t\t\t\telse if (desc->mBitsPerChannel == 64)\n\t\t\t\t\t\treturn AV_CODEC_ID_PCM_F64LE;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (desc->mFormatFlags & kAudioFormatFlagIsSignedInteger)\n\t\t\t{\n\t\t\t\tenum AVCodecID cid;\n\n\t\t\t\tswitch (desc->mBitsPerChannel)\n\t\t\t\t{\n\t\t\t\t\tcase 8: cid = AV_CODEC_ID_PCM_S8; break;\n\t\t\t\t\tcase 16: cid = AV_CODEC_ID_PCM_S16LE; break;\n\t\t\t\t\tcase 24: cid = AV_CODEC_ID_PCM_S24LE; break;\n\t\t\t\t\tcase 32: cid = AV_CODEC_ID_PCM_S32LE; break;\n\t\t\t\t\tdefault: return AV_CODEC_ID_NONE;\n\t\t\t\t}\n\n\t\t\t\tif (desc->mBitsPerChannel != 8 && desc->mFormatFlags & kAudioFormatFlagIsBigEndian)\n\t\t\t\t\tcid = (enum AVCodecID)(int(cid)+1);\n\t\t\t\treturn cid;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tenum AVCodecID cid;\n\n\t\t\t\tswitch (desc->mBitsPerChannel)\n\t\t\t\t{\n\t\t\t\t\tcase 8: cid = AV_CODEC_ID_PCM_U8; break;\n\t\t\t\t\tcase 16: cid = AV_CODEC_ID_PCM_U16LE; break;\n\t\t\t\t\tcase 24: cid = AV_CODEC_ID_PCM_U24LE; break;\n\t\t\t\t\tcase 32: cid = AV_CODEC_ID_PCM_U32LE; break;\n\t\t\t\t\tdefault: return AV_CODEC_ID_NONE;\n\t\t\t\t}\n\n\t\t\t\tif (desc->mBitsPerChannel != 8 && desc->mFormatFlags & kAudioFormatFlagIsBigEndian)\n\t\t\t\t\tcid = (enum AVCodecID)(int(cid)+1);\n\t\t\t\treturn cid;\n\t\t\t}\n\t\t\treturn AV_CODEC_ID_NONE;\n\t\t}\n\t\tcase kAudioFormatULaw:\n\t\t\treturn AV_CODEC_ID_PCM_MULAW;\n\t\tcase kAudioFormatALaw:\n\t\t\treturn AV_CODEC_ID_PCM_ALAW;\n\t\tcase kAudioFormatMPEGLayer1:\n\t\t\treturn AV_CODEC_ID_MP1;\n\t\tcase kAudioFormatMPEGLayer2:\n\t\t\treturn AV_CODEC_ID_MP2;\n\t\tcase kAudioFormatMPEGLayer3:\n\t\t\treturn AV_CODEC_ID_MP3;\n\t\tcase kAudioFormatAC3:\n\t\tcase kAudioFormat60958AC3: // TODO: is this correct?\n\t\t\treturn AV_CODEC_ID_AC3;\n\t\tcase kAudioFormatAppleIMA4:\n\t\t\treturn AV_CODEC_ID_ADPCM_IMA_DK4; // TODO: is this correct?\n\t\tcase kAudioFormatMPEG4AAC:\n\t\tcase kAudioFormatMPEG4AAC_HE:\n\t\tcase kAudioFormatMPEG4AAC_LD:\n\t\tcase kAudioFormatMPEG4AAC_ELD:\n\t\tcase kAudioFormatMPEG4AAC_ELD_SBR:\n\t\tcase kAudioFormatMPEG4AAC_ELD_V2:\n\t\tcase kAudioFormatMPEG4AAC_HE_V2:\n\t\tcase kAudioFormatMPEG4AAC_Spatial:\n\t\t\treturn AV_CODEC_ID_AAC;\n\t\tcase kAudioFormatMPEG4CELP:\n\t\t\treturn AV_CODEC_ID_QCELP; // TODO: is this correct?\n\t\tcase kAudioFormatAMR:\n\t\t\treturn AV_CODEC_ID_AMR_NB;\n\t\tcase kAudioFormatiLBC:\n\t\t\treturn AV_CODEC_ID_ILBC;\n\t\tcase kAudioFormatAppleLossless:\n\t\t\treturn AV_CODEC_ID_APE;\n\t\tcase kAudioFormatMicrosoftGSM:\n\t\t\treturn AV_CODEC_ID_GSM_MS;\n\t\tcase kAudioFormatMACE3:\n\t\t\treturn AV_CODEC_ID_MACE3;\n\t\tcase kAudioFormatMACE6:\n\t\t\treturn AV_CODEC_ID_MACE6;\n\t\tdefault:\n\t\t\treturn AV_CODEC_ID_NONE;\n\t}\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioConverterImpl.h",
    "content": "#ifndef AUDIOCONVERTERINTERNAL_H\n#define AUDIOCONVERTERINTERNAL_H\n#include \"AudioConverter.h\"\n#include \"ConsumableBuffer.h\"\n#include <stdint.h>\n#include <fstream>\n\nextern \"C\" {\n#include <libswresample/swresample.h>\n#include <libavcodec/avcodec.h>\n}\n\nclass __attribute__((visibility(\"hidden\"))) AudioConverter\n{\n\tAudioConverter(const AudioStreamBasicDescription* inSourceFormat, const AudioStreamBasicDescription* inDestinationFormat);\npublic:\n\tstatic OSStatus create(const AudioStreamBasicDescription* inSourceFormat, const AudioStreamBasicDescription* inDestinationFormat, AudioConverter** out);\n\t~AudioConverter();\n\n\tvoid flush();\n\tUInt32 frameSize() const { return m_sourceFormat.mBytesPerFrame; }\n\t\n\tOSStatus fillComplex(AudioConverterComplexInputDataProc dataProc, void* opaque, UInt32* ioOutputDataPacketSize, AudioBufferList *outOutputData, AudioStreamPacketDescription* outPacketDescription);\n\t\n\tOSStatus setProperty(AudioConverterPropertyID inPropertyID, UInt32 inPropertyDataSize, const void *inPropertyData);\n\tOSStatus getProperty(AudioConverterPropertyID inPropertyID, UInt32 *ioPropertyDataSize, void *outPropertyData);\n\tOSStatus getPropertyInfo(AudioConverterPropertyID inPropertyID, UInt32 *outSize, Boolean *outWritable);\nprivate:\n\tstatic enum AVCodecID CACodecToAV(const AudioStreamBasicDescription* desc);\n\tstatic enum AVSampleFormat CACodecSampleFormat(const AudioStreamBasicDescription* desc);\n\tstatic uint32_t CAChannelCountToLayout(UInt32 numChannels);\n\t\n\t// Requests more data from the input callback\n\tOSStatus feedInput(AudioConverterComplexInputDataProc dataProc, void* opaque, UInt32& numDataPackets);\n\t\n\t// Setups the resampler context based on the PCM format in the frame\n\tvoid setupResampler(const AVFrame* frame);\n\t\n\tvoid allocateBuffers();\n\tvoid initEncoder();\n\t\n\tbool feedDecoder(AudioConverterComplexInputDataProc dataProc, void* opaque, AVFrame* srcaudio);\n\tbool feedEncoder();\nprivate:\n\tAudioStreamBasicDescription m_sourceFormat, m_destinationFormat;\n\tUInt32 m_inputChannelLayout, m_outputChannelLayout;\n\tAVSampleFormat m_targetFormat;\n\tAVCodecContext* m_decoder;\n\tAVCodecContext* m_encoder;\n\tAVPacket m_avpkt, m_avpktOut;\n\tUInt32 m_avpktOutUsed = 0;\n\n\tAVFrame* m_audioFrame = nullptr;\n\tConsumableBuffer m_audioFramePrebuf;\n\n\tSwrContext* m_resampler = nullptr;\n\tUInt32 m_outBitRate = 128000;\n\tbool m_encoderInitialized = false;\n\tconst AVCodec* m_codecIn = nullptr;\n\tconst AVCodec* m_codecOut = nullptr;\n\n#ifdef DEBUG_AUDIOCONVERTER\n\tstd::ofstream m_resamplerInput, m_resamplerOutput, m_encoderOutput;\n#endif\n};\n\n#endif\n\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioFile.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <AudioToolbox/AudioFile.h>\n#include <CarbonCore/MacErrors.h>\n#include \"AudioFileFormatManager.h\"\n\nOSStatus AudioFileCreateWithURL (CFURLRef inFileRef,\n\tAudioFileTypeID inFileType,\n\tconst AudioStreamBasicDescription *inFormat,\n\tAudioFileFlags inFlags,\n\tAudioFileID _Nullable * _Nonnull outAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileOpenURL ( CFURLRef inFileRef,\n\tAudioFilePermissions inPermissions,\n\tAudioFileTypeID inFileTypeHint,\n\tAudioFileID _Nullable * _Nonnull outAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileInitializeWithCallbacks (\n\tvoid * inClientData,\n\tAudioFile_ReadProc inReadFunc,\n\tAudioFile_WriteProc inWriteFunc,\n\tAudioFile_GetSizeProc inGetSizeFunc,\n\tAudioFile_SetSizeProc inSetSizeFunc,\n\tAudioFileTypeID inFileType,\n\tconst AudioStreamBasicDescription *inFormat,\n\tAudioFileFlags inFlags,\n\tAudioFileID _Nullable * _Nonnull outAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileOpenWithCallbacks (\n\tvoid * inClientData,\n\tAudioFile_ReadProc inReadFunc,\n\tAudioFile_WriteProc _Nullable inWriteFunc,\n\tAudioFile_GetSizeProc inGetSizeFunc,\n\tAudioFile_SetSizeProc _Nullable inSetSizeFunc,\n\tAudioFileTypeID inFileTypeHint,\n\tAudioFileID _Nullable * _Nonnull outAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileClose (AudioFileID inAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileOptimize (AudioFileID inAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileReadBytes ( AudioFileID inAudioFile,\n\tBoolean inUseCache,\n\tSInt64 inStartingByte,\n\tUInt32 *ioNumBytes,\n\tvoid *outBuffer)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileWriteBytes ( AudioFileID inAudioFile,\n\tBoolean inUseCache,\n\tSInt64 inStartingByte,\n\tUInt32 *ioNumBytes,\n\tconst void *inBuffer)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileReadPacketData ( AudioFileID inAudioFile,\n\tBoolean inUseCache,\n\tUInt32 * ioNumBytes,\n\tAudioStreamPacketDescription * _Nullable outPacketDescriptions,\n\tSInt64 inStartingPacket,\n\tUInt32 * ioNumPackets,\n\tvoid * _Nullable outBuffer)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileReadPackets ( AudioFileID inAudioFile,\n\tBoolean inUseCache,\n\tUInt32 * outNumBytes,\n\tAudioStreamPacketDescription * _Nullable outPacketDescriptions,\n\tSInt64 inStartingPacket,\n\tUInt32 * ioNumPackets,\n\tvoid * _Nullable outBuffer)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileWritePackets ( AudioFileID inAudioFile,\n\tBoolean inUseCache,\n\tUInt32 inNumBytes,\n\tconst AudioStreamPacketDescription * _Nullable inPacketDescriptions,\n\tSInt64 inStartingPacket,\n\tUInt32 *ioNumPackets,\n\tconst void *inBuffer)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileCountUserData ( AudioFileID inAudioFile,\n\tUInt32 inUserDataID,\n\tUInt32 *outNumberItems)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileGetUserDataSize ( AudioFileID inAudioFile,\n\tUInt32 inUserDataID,\n\tUInt32 inIndex,\n\tUInt32 *outUserDataSize)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileGetUserData ( AudioFileID inAudioFile,\n\tUInt32 inUserDataID,\n\tUInt32 inIndex,\n\tUInt32 *ioUserDataSize,\n\tvoid *outUserData)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileSetUserData ( AudioFileID inAudioFile,\n\tUInt32 inUserDataID,\n\tUInt32 inIndex,\n\tUInt32 inUserDataSize,\n\tconst void *inUserData)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileRemoveUserData ( AudioFileID inAudioFile,\n\tUInt32 inUserDataID,\n\tUInt32 inIndex)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileGetPropertyInfo( AudioFileID inAudioFile,\n\tAudioFilePropertyID inPropertyID,\n\tUInt32 * _Nullable outDataSize,\n\tUInt32 * _Nullable isWritable)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileGetProperty( AudioFileID inAudioFile,\n\tAudioFilePropertyID inPropertyID,\n\tUInt32 *ioDataSize,\n\tvoid *outPropertyData)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileSetProperty( AudioFileID inAudioFile,\n\tAudioFilePropertyID inPropertyID,\n\tUInt32 inDataSize,\n\tconst void *inPropertyData)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileGetGlobalInfoSize( AudioFilePropertyID inPropertyID,\n\tUInt32 inSpecifierSize,\n\tvoid * _Nullable inSpecifier,\n\tUInt32 *outDataSize)\n{\n\treturn AudioFileGetGlobalInfo(inPropertyID, inSpecifierSize, inSpecifier, outDataSize, nullptr);\n}\n\nstatic void writeUInt32Set(const std::set<UInt32>& set, void *outPropertyData)\n{\n\tif (outPropertyData)\n\t{\n\t\tUInt32* out = static_cast<UInt32*>(outPropertyData);\n\t\tint i = 0;\n\t\tfor (UInt32 v : set)\n\t\t\tout[i++] = v;\n\t}\n}\n\ntemplate <typename ContainerType>\nCFArrayRef stringContainerToArray(const ContainerType& t)\n{\n\tstd::unique_ptr<CFStringRef[]> ptrs(new CFStringRef[t.size()]);\n\tint i = 0;\n\n\tfor (const std::string& str : t)\n\t\tptrs[i++] = CFStringCreateWithCString(nullptr, str.c_str(), kCFStringEncodingUTF8);\n\t\n\tCFArrayRef rv = CFArrayCreate(nullptr, (const void**) ptrs.get(), t.size(), &kCFTypeArrayCallBacks);\n\n\tfor (int i = 0; i < t.size(); i++)\n\t\tCFRelease(ptrs[i]);\n\treturn rv;\n}\n\nOSStatus AudioFileGetGlobalInfo( AudioFilePropertyID inPropertyID,\n\tUInt32 inSpecifierSize,\n\tvoid * _Nullable inSpecifier,\n\tUInt32 *ioDataSize,\n\tvoid *outPropertyData)\n{\n\tswitch (inPropertyID)\n\t{\n\t\tcase kAudioFileGlobalInfo_ReadableTypes:\n\t\tcase kAudioFileGlobalInfo_WritableTypes:\n\t\t{\n\t\t\tstd::set<UInt32> types = AudioFileFormatManager::instance()->types(inPropertyID == kAudioFileGlobalInfo_WritableTypes);\n\n\t\t\t*ioDataSize = types.size() * sizeof(UInt32);\n\t\t\twriteUInt32Set(types, outPropertyData);\n\t\t\t\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioFileGlobalInfo_FileTypeName:\n\t\t{\n\t\t\tconst UInt32* fileType = static_cast<const UInt32*>(inSpecifier);\n\t\t\tif (inSpecifierSize != sizeof(*fileType))\n\t\t\t\treturn kAudioFileBadPropertySizeError;\n\n\t\t\tconst AudioFileFormatManager::ComponentInfo* ci;\n\n\t\t\tci = AudioFileFormatManager::instance()->fileType(*fileType);\n\t\t\tif (!ci)\n\t\t\t\treturn kAudioFileUnsupportedFileTypeError;\n\n\t\t\tCFStringRef* out = static_cast<CFStringRef*>(outPropertyData);\n\t\t\t*ioDataSize = sizeof(*out);\n\n\t\t\tif (out)\n\t\t\t\t*out = CFStringCreateWithCString(nullptr, ci->name.c_str(), kCFStringEncodingUTF8);\n\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioFileGlobalInfo_AvailableStreamDescriptionsForFormat:\n\t\t{\n\t\t\tconst AudioFileTypeAndFormatID* spec = static_cast<const AudioFileTypeAndFormatID*>(inSpecifier);\n\t\t\tif (inSpecifierSize != sizeof(*spec))\n\t\t\t\treturn kAudioFileBadPropertySizeError;\n\t\t\tbreak;\n\t\t}\n\t\tcase kAudioFileGlobalInfo_AvailableFormatIDs:\n\t\t{\n\t\t\tconst UInt32* fileType = static_cast<const UInt32*>(inSpecifier);\n\t\t\tif (inSpecifierSize != sizeof(*fileType))\n\t\t\t\treturn kAudioFileBadPropertySizeError;\n\n\t\t\tauto set = AudioFileFormatManager::instance()->availableFormatIDs(*fileType);\n\t\t\t*ioDataSize = set.size() * sizeof(UInt32);\n\n\t\t\twriteUInt32Set(set, outPropertyData);\n\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioFileGlobalInfo_AllHFSTypeCodes:\n\t\tcase kAudioFileGlobalInfo_HFSTypeCodesForType:\n\t\tcase kAudioFileGlobalInfo_TypesForHFSTypeCode:\n\t\t\t*ioDataSize = 0;\n\t\t\treturn noErr;\n\t\tcase kAudioFileGlobalInfo_AllExtensions:\n\t\tcase kAudioFileGlobalInfo_AllUTIs:\n\t\tcase kAudioFileGlobalInfo_AllMIMETypes:\n\t\t{\n\t\t\t*ioDataSize = sizeof(CFArrayRef);\n\n\t\t\tif (outPropertyData)\n\t\t\t{\n\t\t\t\tstd::set<std::string> set;\n\t\t\t\tAudioFileFormatManager* mgr = AudioFileFormatManager::instance();\n\n\t\t\t\tif (inPropertyID == kAudioFileGlobalInfo_AllExtensions)\n\t\t\t\t\tset = mgr->allExtensions();\n\t\t\t\telse if (inPropertyID == kAudioFileGlobalInfo_AllUTIs)\n\t\t\t\t\tset = mgr->allUTIs();\n\t\t\t\telse if (inPropertyID == kAudioFileGlobalInfo_AllMIMETypes)\n\t\t\t\t\tset = mgr->allMIMEs();\n\n\t\t\t\t*((CFArrayRef*)outPropertyData) = stringContainerToArray(set);\n\t\t\t}\n\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioFileGlobalInfo_ExtensionsForType:\n\t\tcase kAudioFileGlobalInfo_UTIsForType:\n\t\tcase kAudioFileGlobalInfo_MIMETypesForType:\n\t\t{\n\t\t\tconst UInt32* fileType = static_cast<const UInt32*>(inSpecifier);\n\t\t\tif (inSpecifierSize != sizeof(*fileType))\n\t\t\t\treturn kAudioFileBadPropertySizeError;\n\n\t\t\t*ioDataSize = sizeof(CFArrayRef);\n\n\t\t\tif (outPropertyData)\n\t\t\t{\n\t\t\t\tconst std::vector<std::string>* vector;\n\t\t\t\tconst AudioFileFormatManager::ComponentInfo* ci;\n\n\t\t\t\tci = AudioFileFormatManager::instance()->fileType(*fileType);\n\t\t\t\tif (!ci)\n\t\t\t\t\treturn kAudioFileUnsupportedFileTypeError;\n\t\t\t\t\n\t\t\t\tif (inPropertyID == kAudioFileGlobalInfo_ExtensionsForType)\n\t\t\t\t\tvector = &ci->extensions;\n\t\t\t\telse if (inPropertyID == kAudioFileGlobalInfo_UTIsForType)\n\t\t\t\t\tvector = &ci->utis;\n\t\t\t\telse if (inPropertyID == kAudioFileGlobalInfo_MIMETypesForType)\n\t\t\t\t\tvector = &ci->mimeTypes;\n\n\t\t\t\t*((CFArrayRef*)outPropertyData) = stringContainerToArray(*vector);\n\t\t\t}\n\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioFileGlobalInfo_TypesForMIMEType:\n\t\tcase kAudioFileGlobalInfo_TypesForUTI:\n\t\tcase kAudioFileGlobalInfo_TypesForExtension:\n\t\t{\n\t\t\tCFStringRef str = static_cast<CFStringRef>(inSpecifier);\n\t\t\tif (inSpecifierSize != sizeof(str))\n\t\t\t\treturn kAudioFileBadPropertySizeError;\n\t\t\t\n\t\t\tAudioFileFormatManager* mgr = AudioFileFormatManager::instance();\n\t\t\tconst char* cstr = CFStringGetCStringPtr(str, kCFStringEncodingUTF8);\n\t\t\tstd::set<UInt32> set;\n\n\t\t\tif (inPropertyID == kAudioFileGlobalInfo_TypesForMIMEType)\n\t\t\t\tset = mgr->typesForMIME(cstr);\n\t\t\telse if (inPropertyID == kAudioFileGlobalInfo_TypesForUTI)\n\t\t\t\tset = mgr->typesForUTI(cstr);\n\t\t\telse if (inPropertyID == kAudioFileGlobalInfo_TypesForExtension)\n\t\t\t\tset = mgr->typesForExtension(cstr);\n\n\t\t\t*ioDataSize = set.size() * sizeof(UInt32);\n\t\t\twriteUInt32Set(set, outPropertyData);\n\n\t\t\treturn noErr;\n\t\t}\n\t}\n\treturn unimpErr;\n}\n\nOSStatus AudioFileCreate ( const struct FSRef *inParentRef,\n\tCFStringRef inFileName,\n\tAudioFileTypeID inFileType,\n\tconst AudioStreamBasicDescription *inFormat,\n\tAudioFileFlags inFlags,\n\tstruct FSRef *outNewFileRef,\n\tAudioFileID _Nullable * _Nonnull outAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileInitialize ( const struct FSRef *inFileRef,\n\tAudioFileTypeID inFileType,\n\tconst AudioStreamBasicDescription *inFormat,\n\tAudioFileFlags inFlags,\n\tAudioFileID _Nullable * _Nonnull outAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFileOpen ( const struct FSRef *inFileRef,\n\tAudioFilePermissions inPermissions,\n\tAudioFileTypeID inFileTypeHint,\n\tAudioFileID _Nullable * _Nonnull outAudioFile)\n{\n\treturn unimpErr;\n}\n\n\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioFileComponent.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <AudioToolbox/AudioFileComponent.h>\n#include <CarbonCore/MacErrors.h>\n#include \"ComponentDispatch.h\"\n\nOSStatus\nAudioFileComponentCreateURL (\n\tAudioFileComponent inComponent,\n\tCFURLRef inFileRef,\n\tconst AudioStreamBasicDescription *inFormat,\n\tUInt32 inFlags)\n{\n        return dispatchCall(inComponent, kAudioFileCreateURLSelect, inFileRef, inFormat, inFlags);\n}\n\nOSStatus\nAudioFileComponentOpenURL (\n     AudioFileComponent inComponent,\n     CFURLRef inFileRef,\n     SInt8 inPermissions,\n     int inFileDescriptor)\n{\n\treturn dispatchCall(inComponent, kAudioFileOpenURLSelect, inFileRef, inPermissions, inFileDescriptor);\n}\n\nOSStatus\nAudioFileComponentOpenWithCallbacks(\n\tAudioFileComponent inComponent,\n\tvoid *inClientData,\n\tAudioFile_ReadProc inReadFunc,\n\tAudioFile_WriteProc inWriteFunc,\n\tAudioFile_GetSizeProc inGetSizeFunc,\n\tAudioFile_SetSizeProc inSetSizeFunc)\n{\n\treturn dispatchCall(inComponent, kAudioFileOpenWithCallbacksSelect, inClientData, inReadFunc, inWriteFunc, inGetSizeFunc, inSetSizeFunc);\n}\n\nOSStatus\nAudioFileComponentInitializeWithCallbacks(\n\tAudioFileComponent inComponent,\n\tvoid *inClientData,\n\tAudioFile_ReadProc inReadFunc,\n\tAudioFile_WriteProc inWriteFunc,\n\tAudioFile_GetSizeProc inGetSizeFunc,\n\tAudioFile_SetSizeProc inSetSizeFunc,\n\tUInt32 inFileType,\n\tconst AudioStreamBasicDescription *inFormat,\n\tUInt32 inFlags)\n{\n\treturn dispatchCall(inComponent, kAudioFileInitializeWithCallbacksSelect, inClientData,\n                inReadFunc, inWriteFunc, inGetSizeFunc, inSetSizeFunc,\n                inFileType, inFormat, inFlags);\n}\n\nOSStatus\nAudioFileComponentCloseFile(\n\tAudioFileComponent inComponent)\n{\n\treturn dispatchCall(inComponent, kAudioFileCloseSelect);\n}\n\n\n\nOSStatus\nAudioFileComponentOptimize(\n\tAudioFileComponent inComponent)\n{\n\treturn dispatchCall(inComponent, kAudioFileOptimizeSelect);\n}\n\nOSStatus\nAudioFileComponentReadBytes(\n\tAudioFileComponent inComponent,\n\tBoolean inUseCache,\n\tSInt64 inStartingByte,\n\tUInt32 *ioNumBytes,\n\tvoid *outBuffer)\n{\n\treturn dispatchCall(inComponent, kAudioFileReadBytesSelect, inUseCache, inStartingByte, ioNumBytes, outBuffer);\n}\n\nOSStatus\nAudioFileComponentWriteBytes(\n\tAudioFileComponent inComponent,\n\tBoolean inUseCache,\n\tSInt64 inStartingByte,\n\tUInt32 *ioNumBytes,\n\tconst void *inBuffer)\n{\n\treturn dispatchCall(inComponent, kAudioFileWriteBytesSelect, inUseCache, inStartingByte, ioNumBytes, inBuffer);\n}\n\nOSStatus\nAudioFileComponentReadPackets(\n\tAudioFileComponent inComponent,\n\tBoolean inUseCache,\n\tUInt32 *outNumBytes,\n\tAudioStreamPacketDescription * _Nullable outPacketDescriptions,\n\tSInt64 inStartingPacket,\n\tUInt32 *ioNumPackets,\n\tvoid *outBuffer)\n{\n\treturn dispatchCall(inComponent, kAudioFileReadPacketsSelect, inUseCache, outNumBytes, outPacketDescriptions, inStartingPacket,\n                ioNumPackets, outBuffer);\n}\n\nOSStatus\nAudioFileComponentReadPacketData(\n\tAudioFileComponent inComponent,\n\tBoolean inUseCache,\n\tUInt32 *ioNumBytes,\n\tAudioStreamPacketDescription * _Nullable outPacketDescriptions,\n\tSInt64 inStartingPacket,\n\tUInt32 *ioNumPackets,\n\tvoid *outBuffer)\n{\n\treturn unimpErr;\n}\n\nOSStatus\nAudioFileComponentWritePackets(\n\tAudioFileComponent inComponent,\n\tBoolean inUseCache,\n\tUInt32 inNumBytes,\n\tconst AudioStreamPacketDescription * _Nullable inPacketDescriptions,\n\tSInt64 inStartingPacket,\n\tUInt32 *ioNumPackets,\n\tconst void *inBuffer)\n{\n\treturn dispatchCall(inComponent, kAudioFileWritePacketsSelect, inUseCache, inNumBytes, inPacketDescriptions, inStartingPacket,\n                ioNumPackets, inBuffer);\n}\n\nOSStatus\nAudioFileComponentGetPropertyInfo(\n\tAudioFileComponent inComponent,\n\tAudioFileComponentPropertyID inPropertyID,\n\tUInt32 * _Nullable outPropertySize,\n\tUInt32 * _Nullable outWritable)\n{\n\treturn dispatchCall(inComponent, kAudioFileGetPropertyInfoSelect, inPropertyID, outPropertySize, outWritable);\n}\n\nOSStatus\nAudioFileComponentGetProperty(\n\tAudioFileComponent inComponent,\n\tAudioFileComponentPropertyID inPropertyID,\n\tUInt32 *ioPropertyDataSize,\n\tvoid *outPropertyData)\n{\n\treturn dispatchCall(inComponent, kAudioFileGetPropertySelect, inPropertyID, ioPropertyDataSize, outPropertyData);\n}\n\nOSStatus\nAudioFileComponentSetProperty(\n\tAudioFileComponent inComponent,\n\tAudioFileComponentPropertyID inPropertyID,\n\tUInt32 inPropertyDataSize,\n\tconst void *inPropertyData)\n{\n\treturn dispatchCall(inComponent, kAudioFileSetPropertySelect, inPropertyID, inPropertyDataSize, inPropertyData);\n}\n\nOSStatus\nAudioFileComponentCountUserData(\n\tAudioFileComponent inComponent,\n\tUInt32 inUserDataID,\n\tUInt32 *outNumberItems)\n{\n\treturn dispatchCall(inComponent, kAudioFileCountUserDataSelect, inUserDataID, outNumberItems);\n}\n\nOSStatus\nAudioFileComponentGetUserDataSize(\n\tAudioFileComponent inComponent,\n\tUInt32 inUserDataID,\n\tUInt32 inIndex,\n\tUInt32 *outUserDataSize)\n{\n\treturn dispatchCall(inComponent, kAudioFileGetUserDataSizeSelect, inUserDataID, inIndex, outUserDataSize);\n}\n\nOSStatus\nAudioFileComponentGetUserData(\n\tAudioFileComponent inComponent,\n\tUInt32 inUserDataID,\n\tUInt32 inIndex,\n\tUInt32 *ioUserDataSize,\n\tvoid *outUserData)\n{\n\treturn dispatchCall(inComponent, kAudioFileGetUserDataSelect, inUserDataID, inIndex, ioUserDataSize, outUserData);\n}\n\nOSStatus\nAudioFileComponentSetUserData(\n\tAudioFileComponent inComponent,\n\tUInt32 inUserDataID,\n\tUInt32 inIndex,\n\tUInt32 inUserDataSize,\n\tconst void *inUserData)\n{\n\treturn dispatchCall(inComponent, kAudioFileSetUserDataSelect, inUserDataID, inIndex, inUserDataSize, inUserData);\n}\n\nOSStatus\nAudioFileComponentRemoveUserData(\n\tAudioFileComponent inComponent,\n\tUInt32 inUserDataID,\n\tUInt32 inIndex)\n{\n\treturn dispatchCall(inComponent, kAudioFileRemoveUserDataSelect, inUserDataID, inIndex);\n}\n\nOSStatus\nAudioFileComponentExtensionIsThisFormat(\n\tAudioFileComponent inComponent,\n\tCFStringRef inExtension,\n\tUInt32 *outResult)\n{\n\treturn dispatchCall(inComponent, kAudioFileExtensionIsThisFormatSelect, inExtension, outResult);\n}\n\nOSStatus\nAudioFileComponentFileDataIsThisFormat(\n\tAudioFileComponent inComponent,\n\tUInt32 inDataByteSize,\n\tconst void* inData,\n\tUInt32 *outResult)\n{\n\treturn dispatchCall(inComponent, kAudioFileFileDataIsThisFormatSelect, inDataByteSize, inData, outResult);\n}\n\nOSStatus\nAudioFileComponentFileIsThisFormat(\n\tAudioFileComponent inComponent,\n\tSInt16 inFileRefNum,\n\tUInt32 *outResult)\n{\n\treturn unimpErr;\n}\n\nOSStatus\nAudioFileComponentDataIsThisFormat(\n\tAudioFileComponent inComponent,\n\tvoid * _Nullable inClientData,\n\tAudioFile_ReadProc _Nullable inReadFunc,\n\tAudioFile_WriteProc _Nullable inWriteFunc,\n\tAudioFile_GetSizeProc _Nullable inGetSizeFunc,\n\tAudioFile_SetSizeProc _Nullable inSetSizeFunc,\n\tUInt32 *outResult)\n{\n\treturn unimpErr;\n}\n\nOSStatus\nAudioFileComponentGetGlobalInfoSize(\n\tAudioFileComponent inComponent,\n\tAudioFileComponentPropertyID inPropertyID,\n\tUInt32 inSpecifierSize,\n\tconst void * _Nullable inSpecifier,\n\tUInt32 *outPropertySize)\n{\n\treturn dispatchCall(inComponent, kAudioFileGetGlobalInfoSizeSelect, inPropertyID, inSpecifierSize, inSpecifier, outPropertySize);\n}\n\nOSStatus\nAudioFileComponentGetGlobalInfo(\n\tAudioFileComponent inComponent,\n\tAudioFileComponentPropertyID inPropertyID,\n\tUInt32 inSpecifierSize,\n\tconst void * _Nullable inSpecifier,\n\tUInt32 *ioPropertyDataSize,\n\tvoid *outPropertyData)\n{\n\treturn dispatchCall(inComponent, kAudioFileGetGlobalInfoSelect, inPropertyID, inSpecifierSize, inSpecifier,\n                ioPropertyDataSize, outPropertyData);\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioFileFormatManager.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioFileFormatManager.h\"\n\nAudioFileFormatManager::AudioFileFormatManager()\n{\n\n}\n\nvoid AudioFileFormatManager::buildDatabase()\n{\n\tAudioComponentDescription acd = { 0 };\n\tacd.componentType = 'afil';\n\n\tAudioComponent component = nullptr;\n\n\twhile ((component = ::AudioComponentFindNext(component, &acd)) != nullptr)\n\t{\n\t\tAudioComponentInstance inst;\n\t\tOSStatus status = ::AudioComponentInstanceNew(component, &inst);\n\n\t\tif (status != noErr)\n\t\t\tcontinue;\n\n\t\tanalyzeAudioFileComponent(inst);\n\t\t::AudioComponentInstanceDispose(inst);\n\t}\n}\n\nstatic std::vector<std::string> cfArrayToVector(CFArrayRef array)\n{\n\tstd::vector<std::string> rv;\n\tconst CFIndex count = CFArrayGetCount(array);\n\n\trv.reserve(count);\n\n\tfor (CFIndex i = 0; i < count; i++)\n\t{\n\t\tCFStringRef str = (CFStringRef) CFArrayGetValueAtIndex(array, i);\n\t\trv.push_back(CFStringGetCStringPtr(str, kCFStringEncodingUTF8));\n\t}\n\n\treturn rv;\n}\n\nvoid AudioFileFormatManager::analyzeAudioFileComponent(AudioFileComponent component)\n{\n\tComponentInfo ci;\n\tUInt32 propSize;\n\n\t::AudioComponentGetDescription(AudioComponent(component), &ci.acd);\n\n\tci.fileType = ci.acd.componentSubType; // TODO: Is this correct?\n\n\t{\n\t\tCFStringRef name = nullptr;\n\t\tpropSize = sizeof(name);\n\n\t\tif (::AudioFileComponentGetGlobalInfo(component, kAudioFileComponent_FileTypeName, 0, nullptr, &propSize, &name) == noErr && name)\n\t\t{\n\t\t\tci.name = CFStringGetCStringPtr(name, kCFStringEncodingUTF8);\n\t\t\tCFRelease(name);\n\t\t}\n\t}\n\t{\n\t\tUInt32 can;\n\n\t\tpropSize = sizeof(can);\n\t\tci.canRead = ci.canWrite = false;\n\n\t\tif (::AudioFileComponentGetGlobalInfo(component, kAudioFileComponent_CanRead, 0, nullptr, &propSize, &can) == noErr && can)\n\t\t\tci.canRead = true;\n\t\tif (::AudioFileComponentGetGlobalInfo(component, kAudioFileComponent_CanWrite, 0, nullptr, &propSize, &can) == noErr && can)\n\t\t\tci.canWrite = true;\n\t}\n\n\tCFArrayRef array = nullptr;\n\tif (::AudioFileComponentGetGlobalInfo(component, kAudioFileComponent_UTIsForType, 0, nullptr, &propSize, &array) == noErr && array)\n\t{\n\t\tci.utis = cfArrayToVector(array);\n\t\tCFRelease(array);\n\t}\n\n\tarray = nullptr;\n\tif (::AudioFileComponentGetGlobalInfo(component, kAudioFileComponent_MIMETypesForType, 0, nullptr, &propSize, &array) == noErr && array)\n\t{\n\t\tci.mimeTypes = cfArrayToVector(array);\n\t\tCFRelease(array);\n\t}\n\n\tarray = nullptr;\n\tif (::AudioFileComponentGetGlobalInfo(component, kAudioFileComponent_ExtensionsForType, 0, nullptr, &propSize, &array) == noErr && array)\n\t{\n\t\tci.extensions = cfArrayToVector(array);\n\t\tCFRelease(array);\n\t}\n\n\tif (::AudioFileComponentGetGlobalInfoSize(component, kAudioFileComponent_AvailableFormatIDs, 0, nullptr, &propSize) == noErr)\n\t{\n\t\tconst size_t formatCount = propSize / sizeof(UInt32);\n\t\tstd::unique_ptr<UInt32[]> formatIds(new UInt32[formatCount]);\n\n\t\tif (::AudioFileComponentGetGlobalInfo(component, kAudioFileComponent_AvailableFormatIDs, 0, nullptr, &propSize, formatIds.get()) == noErr)\n\t\t{\n\t\t\tfor (size_t i = 0; i < formatCount; i++)\n\t\t\t{\n\t\t\t\tUInt32 format = formatIds[i];\n\t\t\t\tstd::vector<AudioStreamBasicDescription> asbds;\n\t\t\t\t\n\t\t\t\tif (::AudioFileComponentGetGlobalInfoSize(component, kAudioFileComponent_AvailableStreamDescriptionsForFormat, sizeof(UInt32), &format, &propSize) == noErr)\n\t\t\t\t{\n\t\t\t\t\tasbds.resize(propSize / sizeof(AudioStreamBasicDescription));\n\t\t\t\t\t\n\t\t\t\t\tif (::AudioFileComponentGetGlobalInfo(component, kAudioFileComponent_AvailableStreamDescriptionsForFormat, sizeof(UInt32), &format, &propSize, asbds.data()) != noErr)\n\t\t\t\t\t\tasbds.resize(0);\n\n\t\t\t\t\tci.formatDescriptions.emplace(format, std::move(asbds));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t\tci.formatDescriptions.emplace(format, asbds);\n\t\t\t}\n\t\t}\n\t}\n\n\tregisterComponent(ci);\n}\n\nvoid AudioFileFormatManager::addToMap(std::unordered_map<std::string, std::vector<ComponentInfo*>>& map, const std::string& key, ComponentInfo* ci)\n{\n\tauto it = map.find(key);\n\tif (it == map.end())\n\t\tit = map.emplace(key, std::vector<ComponentInfo*>()).first;\n\tit->second.push_back(ci);\n}\n\nvoid AudioFileFormatManager::registerComponent(const ComponentInfo& ci)\n{\n\tm_components.push_back(ci);\n\n\t// Add format into various maps\n\tComponentInfo* pci = &m_components.back();\n\tm_fileTypeMap.emplace(ci.fileType, pci);\n\n\tfor (const std::string& uti : ci.utis)\n\t\taddToMap(m_utiMap, uti, pci);\n\tfor (const std::string& mime : ci.mimeTypes)\n\t\taddToMap(m_mimeMap, mime, pci);\n\tfor (const std::string& ext : ci.extensions)\n\t\taddToMap(m_extensionMap, ext, pci);\n}\n\nAudioFileFormatManager* AudioFileFormatManager::instance()\n{\n\tstatic AudioFileFormatManager inst;\n\treturn &inst;\n}\n\nstd::set<UInt32> AudioFileFormatManager::availableFormatIDs(UInt32 fileType) const\n{\n\tstd::set<UInt32> rv;\n\n\tauto it = m_fileTypeMap.find(fileType);\n\tif (it == m_fileTypeMap.end())\n\t\treturn rv;\n\n\tconst ComponentInfo* ci = it->second;\n\n\tfor (auto const& [key, value] : ci->formatDescriptions)\n\t\trv.insert(key);\n\treturn rv;\n}\n\nconst AudioFileFormatManager::ComponentInfo* AudioFileFormatManager::fileType(UInt32 fileType) const\n{\n\tauto it = m_fileTypeMap.find(fileType);\n\tif (it == m_fileTypeMap.end())\n\t\treturn nullptr;\n\treturn it->second;\n}\n\nstd::set<UInt32> AudioFileFormatManager::types(bool writableTypes) const\n{\n\tstd::set<UInt32> rv;\n\n\tfor (const ComponentInfo& ci : m_components)\n\t{\n\t\tif (writableTypes && ci.canWrite)\n\t\t\trv.insert(ci.fileType);\n\t\telse if (!writableTypes && ci.canRead)\n\t\t\trv.insert(ci.fileType);\n\t}\n\n\treturn rv;\n}\n\nstd::set<UInt32> AudioFileFormatManager::findTypes(const std::unordered_map<std::string, std::vector<ComponentInfo*>>& map, const char* key)\n{\n\tstd::set<UInt32> rv;\n\n\tauto it = map.find(key);\n\tif (it == map.end())\n\t\treturn rv;\n\t\n\tfor (const ComponentInfo* ci : it->second)\n\t\trv.insert(ci->fileType);\n\n\treturn rv;\n}\n\nstd::set<UInt32> AudioFileFormatManager::typesForMIME(const char* mime) const\n{\n\treturn findTypes(m_mimeMap, mime);\n}\n\nstd::set<UInt32> AudioFileFormatManager::typesForUTI(const char* uti) const\n{\n\treturn findTypes(m_utiMap, uti);\n}\n\nstd::set<UInt32> AudioFileFormatManager::typesForExtension(const char* ext) const\n{\n\treturn findTypes(m_extensionMap, ext);\n}\n\nstd::set<std::string> AudioFileFormatManager::allMIMEs() const\n{\n\treturn allKeys(m_mimeMap);\n}\n\nstd::set<std::string> AudioFileFormatManager::allUTIs() const\n{\n\treturn allKeys(m_utiMap);\n}\n\nstd::set<std::string> AudioFileFormatManager::allExtensions() const\n{\n\treturn allKeys(m_extensionMap);\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioFileFormatManager.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _AUDIO_FILE_FORMAT_MANAGER_H\n#define _AUDIO_FILE_FORMAT_MANAGER_H\n#include <AudioToolbox/AudioComponent.h>\n#include <AudioToolbox/AudioFileComponent.h>\n#include <vector>\n#include <string>\n#include <set>\n#include <list>\n#include <unordered_map>\n\nclass __attribute__((visibility(\"hidden\"))) AudioFileFormatManager\n{\npublic:\n\tstatic AudioFileFormatManager* instance();\n\n\tstd::set<UInt32> availableFormatIDs(UInt32 fileType) const;\n\n\tstruct ComponentInfo\n\t{\n\t\tAudioComponentDescription acd;\n\t\tUInt32 fileType; // container type\n\t\tstd::string name;\n\t\tstd::vector<std::string> utis, extensions, mimeTypes;\n\t\t// codec type\n\t\tstd::unordered_map<UInt32, std::vector<AudioStreamBasicDescription>> formatDescriptions;\n\t\tbool canRead, canWrite;\n\t};\n\n\tconst ComponentInfo* fileType(UInt32 type) const;\n\tstd::set<UInt32> types(bool writableTypes) const;\n\n\tstd::set<UInt32> typesForMIME(const char* mime) const;\n\tstd::set<UInt32> typesForUTI(const char* uti) const;\n\tstd::set<UInt32> typesForExtension(const char* ext) const;\n\n\tstd::set<std::string> allMIMEs() const;\n\tstd::set<std::string> allUTIs() const;\n\tstd::set<std::string> allExtensions() const;\nprivate:\n\tAudioFileFormatManager();\n\tvoid buildDatabase();\n\tvoid analyzeAudioFileComponent(AudioFileComponent component);\n\tvoid registerComponent(const ComponentInfo& ci);\n\tstatic void addToMap(std::unordered_map<std::string, std::vector<ComponentInfo*>>& map, const std::string& key, ComponentInfo* ci);\n\tstatic std::set<UInt32> findTypes(const std::unordered_map<std::string, std::vector<ComponentInfo*>>& map, const char* key);\n\n\ttemplate <typename K, typename V>\n\tstd::set<K> allKeys(const std::unordered_map<K,V>& map) const\n\t{\n\t\tstd::set<K> rv;\n\t\tfor (auto const& [k, v] : map)\n\t\t\trv.insert(k);\n\t\treturn rv;\n\t}\nprivate:\n\tstd::list<ComponentInfo> m_components;\n\tstd::unordered_map<UInt32, ComponentInfo*> m_fileTypeMap;\n\tstd::unordered_map<std::string, std::vector<ComponentInfo*>> m_mimeMap, m_utiMap, m_extensionMap;\n};\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioFormat.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include <AudioToolbox/AudioFormat.h>\n#include <CarbonCore/MacErrors.h>\n\nOSStatus AudioFormatGetPropertyInfo( AudioFormatPropertyID inPropertyID,\n       UInt32 inSpecifierSize,\n       const void * _Nullable inSpecifier,\n       UInt32 * outPropertyDataSize)\n{\n\treturn unimpErr;\n}\n\nOSStatus AudioFormatGetProperty( AudioFormatPropertyID inPropertyID,\n      UInt32 inSpecifierSize,\n      const void * _Nullable inSpecifier,\n      UInt32 * _Nullable ioPropertyDataSize,\n      void * _Nullable outPropertyData)\n{\n\treturn unimpErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioHardwareService.cpp",
    "content": "#include <AudioToolbox/AudioHardwareService.h>\n#include \"stub.h\"\n\nOSStatus AudioHardwareServiceGetPropertyData(AudioObjectID inObjectID, const AudioObjectPropertyAddress *inAddress, UInt32 inQualifierDataSize, const void *inQualifierData, UInt32 *ioDataSize, void *outData)\n{\n    STUB();\n    return unimpErr;\n}\n\nBoolean AudioHardwareServiceHasProperty(AudioObjectID inObjectID, const AudioObjectPropertyAddress *inAddress)\n{\n    STUB();\n    return false;\n}\n\nOSStatus AudioHardwareServiceIsPropertySettable(AudioObjectID inObjectID, const AudioObjectPropertyAddress *inAddress, Boolean *outIsSettable)\n{\n    STUB();\n    return unimpErr;\n}\n\nOSStatus AudioHardwareServiceSetPropertyData(AudioObjectID inObjectID, const AudioObjectPropertyAddress *inAddress, UInt32 inQualifierDataSize, const void *inQualifierData, UInt32 inDataSize, const void *inData)\n{\n    STUB();\n    return unimpErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioOutputUnitComponent.cpp",
    "content": "#include \"AudioOutputUnitComponent.h\"\n#include <CarbonCore/MacErrors.h>\n#include <cstring>\n\nAudioOutputUnitComponent::AudioOutputUnitComponent()\n: AudioUnitComponent({ CFSTR(\"Sound card output\"), CFSTR(\"Sound card input\") })\n{\n\tmemset(&m_outputCallback, 0, sizeof(m_outputCallback));\n}\n\nOSStatus AudioOutputUnitComponent::setProperty(AudioUnitPropertyID prop, AudioUnitScope scope, AudioUnitElement elem, const void* data, UInt32 dataSize)\n{\n\tswitch (prop)\n\t{\n\t\tcase kAudioOutputUnitProperty_EnableIO:\n\t\t{\n\t\t\tconst UInt32* state;\n\n\t\t\tif (dataSize != sizeof(UInt32))\n\t\t\t\treturn kAudioUnitErr_InvalidParameter;\n\n\t\t\tstate = static_cast<const UInt32*>(data);\n\t\t\t\n\t\t\tif (scope == kAudioUnitScope_Output)\n\t\t\t{\n\t\t\t\tif (elem != 0)\n\t\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\t\tm_enableOutput = *state != 0;\n\t\t\t}\n\t\t\telse if (scope == kAudioUnitScope_Input)\n\t\t\t{\n\t\t\t\tif (elem != 1)\n\t\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\t\tm_enableInput = *state != 0;\n\t\t\t}\n\t\t\telse\n\t\t\t\treturn kAudioUnitErr_InvalidScope;\n\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_SetInputCallback:\n\t\t{\n\t\t\tif (dataSize != sizeof(AURenderCallbackStruct))\n\t\t\t\treturn kAudioUnitErr_InvalidParameter;\n\t\t\t//if (scope == kAudioUnitScope_Output)\n\t\t\t//{\n\t\t\t\tif (elem != 1)\n\t\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\t\t\n\t\t\t\tmemcpy(&m_outputCallback, data, sizeof(AURenderCallbackStruct));\n\t\t\t\t\n\t\t\t\treturn noErr;\n\t\t\t//}\n\t\t}\n\t\tdefault:\n\t\t\treturn AudioUnitComponent::setProperty(prop, scope, elem, data, dataSize);\n\t}\n}\n\nOSStatus AudioOutputUnitComponent::getProperty(AudioUnitPropertyID prop, AudioUnitScope scope, AudioUnitElement elem, void* data, UInt32* dataSize)\n{\n\tswitch (prop)\n\t{\n\t\tcase kAudioOutputUnitProperty_EnableIO:\n\t\t{\n\t\t\tUInt32* state;\n\n\t\t\tif (*dataSize < sizeof(UInt32))\n\t\t\t\treturn kAudioUnitErr_InvalidParameter;\n\n\t\t\tstate = static_cast<UInt32*>(data);\n\n\t\t\tif (scope == kAudioUnitScope_Output)\n\t\t\t{\n\t\t\t\tif (elem != 0)\n\t\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\t\t*state = m_enableOutput;\n\t\t\t}\n\t\t\telse if (scope == kAudioUnitScope_Input)\n\t\t\t{\n\t\t\t\tif (elem != 1)\n\t\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\t\t*state = m_enableInput;\n\t\t\t}\n\t\t\telse\n\t\t\t\treturn kAudioUnitErr_InvalidScope;\n\n\t\t\t*dataSize = sizeof(UInt32);\n\t\t\treturn noErr;\n\t\t}\n\t\tdefault:\n\t\t\treturn AudioUnitComponent::getProperty(prop, scope, elem, data, dataSize);\n\t}\n}\n\nOSStatus AudioOutputUnitComponent::getPropertyInfo(AudioUnitPropertyID prop, AudioUnitScope scope, AudioUnitElement elem, UInt32* dataSize, Boolean* writable)\n{\n\tswitch (prop)\n\t{\n\t\tdefault:\n\t\t\treturn AudioUnitComponent::getPropertyInfo(prop, scope, elem, dataSize, writable);\n\t}\n}\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioOutputUnitComponent.h",
    "content": "#ifndef AOUCOMPONENT_H\n#define AOUCOMPONENT_H\n#include \"AudioUnitBase.h\"\n\nclass AudioOutputUnitComponent : public AudioUnitComponent\n{\npublic:\n\tAudioOutputUnitComponent();\n\t\n\tvirtual OSStatus setProperty(AudioUnitPropertyID prop, AudioUnitScope scope, AudioUnitElement elem, const void* data, UInt32 dataSize) override;\n\tvirtual OSStatus getProperty(AudioUnitPropertyID prop, AudioUnitScope scope, AudioUnitElement elem, void* data, UInt32* dataSize) override;\n\tvirtual OSStatus getPropertyInfo(AudioUnitPropertyID prop, AudioUnitScope scope, AudioUnitElement elem, UInt32* dataSize, Boolean* writable) override;\n\t\n\tvirtual OSStatus start() = 0;\n\tvirtual OSStatus stop() = 0;\n\t\n\tvirtual int cardIndex() const = 0;\nprotected:\n\tbool m_enableOutput = true, m_enableInput = false;\n\tAURenderCallbackStruct m_outputCallback;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioQueue.cpp",
    "content": "#include \"AudioQueue.h\"\n#include \"AudioQueueOutput.h\"\n#include <CarbonCore/MacErrors.h>\n\nOSStatus AudioQueueStart(AudioQueueRef inAQ, const AudioTimeStamp *inStartTime)\n{\n\treturn inAQ->start(inStartTime);\n}\n\nOSStatus AudioQueuePrime(AudioQueueRef inAQ, UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared)\n{\n\treturn inAQ->prime(inNumberOfFramesToPrepare, outNumberOfFramesPrepared);\n}\n\nOSStatus AudioQueueFlush(AudioQueueRef inAQ)\n{\n\treturn inAQ->flush();\n}\n\nOSStatus AudioQueueStop(AudioQueueRef inAQ, Boolean inImmediate)\n{\n\treturn inAQ->stop(inImmediate);\n}\n\nOSStatus AudioQueuePause(AudioQueueRef inAQ)\n{\n\treturn inAQ->pause();\n}\n\nOSStatus AudioQueueReset(AudioQueueRef inAQ)\n{\n\treturn inAQ->reset();\n}\n\nOSStatus AudioQueueNewOutput(const AudioStreamBasicDescription *inFormat,\n\t\tAudioQueueOutputCallback inCallbackProc,\n\t\tvoid *inUserData, CFRunLoopRef inCallbackRunLoop,\n\t\tCFStringRef inCallbackRunLoopMode, UInt32 inFlags,\n\t\tAudioQueueRef *outAQ)\n{\n\treturn AudioQueueOutput::create(inFormat, inCallbackProc, inUserData,\n\t\t\tinCallbackRunLoop, inCallbackRunLoopMode, inFlags,\n\t\t\t(AudioQueueOutput**) outAQ);\n}\n\nOSStatus AudioQueueNewInput(const AudioStreamBasicDescription *inFormat,\n\t\tAudioQueueInputCallback inCallbackProc,\n\t\tvoid *inUserData, CFRunLoopRef inCallbackRunLoop,\n\t\tCFStringRef inCallbackRunLoopMode, UInt32 inFlags,\n\t\tAudioQueueRef *outAQ)\n{\n\t*outAQ = nullptr;\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueDispose(AudioQueueRef inAQ, Boolean inImmediate)\n{\n\treturn inAQ->dispose(inImmediate);\n}\n\nOSStatus AudioQueueGetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue)\n{\n\treturn inAQ->getParameter(inParamID, outValue);\n}\n\nOSStatus AudioQueueSetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue inValue)\n{\n\treturn inAQ->setParameter(inParamID, inValue);\n}\n \nOSStatus AudioQueueGetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize)\n{\n\treturn inAQ->getProperty(inID, outData, ioDataSize);\n}\n\nOSStatus AudioQueueSetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize)\n{\n\treturn inAQ->setProperty(inID, inData, inDataSize);\n}\n\nOSStatus AudioQueueGetPropertySize(AudioQueueRef inAQ, AudioQueuePropertyID inID, UInt32 *outDataSize)\n{\n\treturn inAQ->getPropertySize(inID, outDataSize);\n}\n\nOSStatus AudioQueueAddPropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData)\n{\n\treturn inAQ->addPropertyListener(inID, inProc, inUserData);\n}\n\nOSStatus AudioQueueRemovePropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData)\n{\n\treturn inAQ->addPropertyListener(inID, inProc, inUserData);\n}\n\nOSStatus AudioQueueSetOfflineRenderFormat(AudioQueueRef inAQ, const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout)\n{\n\treturn inAQ->setOfflineRenderFormat(inFormat, inLayout);\n}\n\nOSStatus AudioQueueOfflineRender(AudioQueueRef inAQ, const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames)\n{\n\treturn inAQ->offlineRender(inTimestamp, ioBuffer, inNumberFrames);\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioQueueBase.cpp",
    "content": "#include \"AudioQueueBase.h\"\n#include \"stub.h\"\n#include <CarbonCore/MacErrors.h>\n\nAudioQueue::AudioQueue(const AudioStreamBasicDescription* format, void* userData,\n\t\t\tCFRunLoopRef runloop, CFStringRef runloopMode, UInt32 flags)\n: m_format(*format), m_userData(userData), m_flags(flags)\n{\n\tm_runloop = (CFRunLoopRef) CFRetain(runloop);\n\tm_runloopMode = (CFStringRef) CFRetain(runloopMode);\n}\n\nAudioQueue::~AudioQueue()\n{\n\tCFRelease(m_runloop);\n\tCFRelease(m_runloopMode);\n}\n\nOSStatus AudioQueue::getParameter(AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueue::setParameter(AudioQueueParameterID inParamID, AudioQueueParameterValue inValue)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueue::getProperty(AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueue::setProperty(AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueue::getPropertySize(AudioQueuePropertyID inID, UInt32 *outDataSize)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueue::addPropertyListener(AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueue::removePropertyListener(AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioQueueBase.h",
    "content": "#ifndef AUDIOQUEUEBASE_H\n#define\tAUDIOQUEUEBASE_H\n#include \"AudioQueue.h\"\n\nclass AudioQueue\n{\npublic:\n\tAudioQueue(const AudioStreamBasicDescription* format, void* userData,\n\t\t\tCFRunLoopRef runloop, CFStringRef runloopMode, UInt32 flags);\n\tvirtual ~AudioQueue();\n\t\n\tvirtual OSStatus start(const AudioTimeStamp *inStartTime) = 0;\n\tvirtual OSStatus prime(UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared) = 0;\n\tvirtual OSStatus flush() = 0;\n\tvirtual OSStatus stop(Boolean inImmediate) = 0;\n\tvirtual OSStatus pause() = 0;\n\tvirtual OSStatus reset() = 0;\n\n\tvirtual OSStatus dispose(Boolean inImmediate) = 0;\n\n\tvirtual OSStatus getParameter(AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue);\n\tvirtual OSStatus setParameter(AudioQueueParameterID inParamID, AudioQueueParameterValue inValue);\n\n\tvirtual OSStatus getProperty(AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize);\n\tvirtual OSStatus setProperty(AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize);\n\tvirtual OSStatus getPropertySize(AudioQueuePropertyID inID, UInt32 *outDataSize);\n\n\tOSStatus addPropertyListener(AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData);\n\tOSStatus removePropertyListener(AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData);\n\n\tvirtual OSStatus setOfflineRenderFormat(const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout) = 0;\n\tvirtual OSStatus offlineRender(const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames) = 0;\nprotected:\n\tAudioStreamBasicDescription m_format;\n\tvoid* m_userData;\n\tCFRunLoopRef m_runloop;\n\tCFStringRef m_runloopMode;\n\tUInt32 m_flags;\n};\n\n#endif\t/* AUDIOQUEUEBASE_H */\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioQueueOutput.cpp",
    "content": "#include \"AudioQueueOutput.h\"\n#include \"stub.h\"\n#include <CarbonCore/MacErrors.h>\n\nAudioQueueOutput::AudioQueueOutput(const AudioStreamBasicDescription *inFormat,\n\t\tAudioQueueOutputCallback inCallbackProc,\n\tvoid *inUserData, CFRunLoopRef inCallbackRunLoop,\n\tCFStringRef inCallbackRunLoopMode, UInt32 inFlags)\n: AudioQueue(inFormat, inUserData, inCallbackRunLoop, inCallbackRunLoopMode, inFlags),\n\t\tm_callback(inCallbackProc)\n{\n\t\n}\n\nAudioQueueOutput::~AudioQueueOutput()\n{\n\t\n}\n\nOSStatus AudioQueueOutput::start(const AudioTimeStamp *inStartTime)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueOutput::prime(UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueOutput::flush()\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueOutput::stop(Boolean inImmediate)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueOutput::pause()\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueOutput::reset()\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueOutput::dispose(Boolean inImmediate)\n{\n\tif (inImmediate)\n\t{\n\t\tdelete this;\n\t\treturn noErr;\n\t}\n\telse\n\t{\n\t\tSTUB();\n\t\treturn unimpErr;\n\t}\n}\n\nOSStatus AudioQueueOutput::setOfflineRenderFormat(const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueOutput::offlineRender(const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioQueueOutput::create(const AudioStreamBasicDescription *inFormat,\n\t\tAudioQueueOutputCallback inCallbackProc,\n\t\tvoid *inUserData, CFRunLoopRef inCallbackRunLoop,\n\t\tCFStringRef inCallbackRunLoopMode, UInt32 inFlags,\n\t\t\tAudioQueueOutput** newQueue)\n{\n\t// TODO: check arguments\n\t*newQueue = new AudioQueueOutput(inFormat, inCallbackProc, inUserData,\n\t\t\tinCallbackRunLoop, inCallbackRunLoopMode,\n\t\t\tinFlags);\n\treturn noErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioQueueOutput.h",
    "content": "#ifndef AUDIOQUEUEOUTPUT_H\n#define\tAUDIOQUEUEOUTPUT_H\n#include \"AudioQueueBase.h\"\n\nclass AudioQueueOutput : public AudioQueue\n{\npublic:\n\tAudioQueueOutput(const AudioStreamBasicDescription *inFormat,\n\t\t\tAudioQueueOutputCallback inCallbackProc,\n\t\tvoid *inUserData, CFRunLoopRef inCallbackRunLoop,\n\t\tCFStringRef inCallbackRunLoopMode, UInt32 inFlags);\n\t\n\tvirtual ~AudioQueueOutput();\n\t\n\tvirtual OSStatus start(const AudioTimeStamp *inStartTime) override;\n\tvirtual OSStatus prime(UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared) override;\n\tvirtual OSStatus flush() override;\n\tvirtual OSStatus stop(Boolean inImmediate) override;\n\tvirtual OSStatus pause() override;\n\tvirtual OSStatus reset() override;\n\t\n\tvirtual OSStatus setOfflineRenderFormat(const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout) override;\n\tvirtual OSStatus offlineRender(const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames) override;\n\t\n\tvirtual OSStatus dispose(Boolean inImmediate) override;\n\t\n\tstatic OSStatus create(const AudioStreamBasicDescription *inFormat,\n\t\t\tAudioQueueOutputCallback inCallbackProc,\n\t\tvoid *inUserData, CFRunLoopRef inCallbackRunLoop,\n\t\tCFStringRef inCallbackRunLoopMode, UInt32 inFlags,\n\t\t\tAudioQueueOutput** newQueue);\nprivate:\n\tAudioQueueOutputCallback m_callback;\n};\n\n#endif\t/* AUDIOQUEUEOUTPUT_H */\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/AudioToolbox.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <AudioToolbox/AudioToolbox.h>\n#include <iostream>\n\nvoid CAShow(void* inObject)\n{\n\t// TODO: print something useful\n\tstd::cout << \"CAShow: \" << inObject << std::endl;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/CMakeLists.txt",
    "content": "project(AudioToolbox)\n\ninclude_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})\ninclude_directories(\n\t${CMAKE_CURRENT_SOURCE_DIR}/../include\n\t${CMAKE_CURRENT_SOURCE_DIR}/../include/AudioToolbox\n)\n\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -std=c++17\")\n\nset(audiotoolbox_sources\n\tAUComponent.cpp\n\tAudioConverter.cpp\n\tAudioConverterImpl.cpp\n\tAudioFile.cpp\n\tAudioQueueBase.cpp\n\tAudioQueue.cpp\n\tAudioQueueOutput.cpp\n\tAUGraph.cpp\n\tAudioComponent.mm\n\tAudioComponentManager.mm\n\tAudioFileComponent.cpp\n\tAudioFileFormatManager.cpp\n\tExtendedAudioFile.cpp\n\tAudioFormat.cpp\n\tMusicDevice.cpp\n\tAudioToolbox.cpp\n\tAudioHardwareService.cpp\n)\n\nadd_framework(AudioToolbox\n\tFAT\n\tCURRENT_VERSION\n    VERSION ${FRAMEWORK_AUDIOTOOLBOX_VERSION}\n\n    SOURCES\n        ${audiotoolbox_sources}\n\n    DEPENDENCIES\n        system\n        cxx\n\t\tCoreFoundation\n\t\tCoreAudio\n\t\tCoreServices\n\t\tobjc\n\t\tavformat\n\t\tswresample\n\t\tavcodec\n\t\tavutil\n)\n\nadd_framework(AudioUnit\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${FRAMEWORK_AUDIOUNIT_VERSION}\n\n\tSOURCES\n\t\tempty.c\n\n\tDEPENDENCIES\n\t\tAudioToolbox\n)\nset(AudioToolbox_BUILD ${CMAKE_CURRENT_BINARY_DIR}/AudioToolbox)\n\nreexport(AudioUnit AudioToolbox ${AudioToolbox_BUILD})\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/ComponentDispatch.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _COMPONENT_DISPATCH_H\n#define _COMPONENT_DISPATCH_H\n#include \"AudioComponentManager.h\"\n#include <CarbonCore/Components.h>\n\ntemplate <typename First, typename... Rest>\nvoid assignParams(ComponentParameters* cp, size_t totalArgs, size_t argumentIndex, First arg, Rest... rest)\n{\n#if __LP64__\n    cp->params[argumentIndex] = long(arg);\n#else\n    cp->params[totalArgs - argumentIndex - 1] = long(arg);\n#endif\n\n    if constexpr (sizeof...(Rest) > 0)\n        assignParams(cp, totalArgs, argumentIndex+1, rest...);\n}\n\ntemplate <typename ...Args>\nOSStatus dispatchCall(AudioComponentInstance inUnit, SInt16 sel, Args... args)\n{\n    if (AudioComponentManager::isOurInstance(inUnit))\n    {\n        AudioComponentPlugInInterface* iface = AudioComponentManager::instance()->instanceInterface(inUnit);\n        AudioComponentMethod method = iface->Lookup(sel);\n        if (method != nullptr)\n            return method(iface, args...);\n        else\n            return badComponentSelector;\n    }\n    else\n    {\n        ComponentParameters* cp = (ComponentParameters*) alloca(sizeof(ComponentParameters) + sizeof...(Args) * sizeof(long));\n        constexpr size_t totalArgs = sizeof...(Args)+1;\n\n        assignParams(cp, totalArgs, 0, inUnit);\n\n        if constexpr (totalArgs > 1)\n            assignParams(cp, totalArgs, 1, args...);\n\n        cp->paramSize = totalArgs * sizeof(long);\n        cp->what = sel;\n        cp->flags = 0;\n\n        return CallComponentDispatch(cp);\n    }\n}\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/ConsumableBuffer.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _CA_CONSUMABLE_BUFFER_H\n#define _CA_CONSUMABLE_BUFFER_H\n#include <vector>\n#include <stdexcept>\n#include <cstring>\n#include <stdint.h>\n\nclass ConsumableBuffer\n{\npublic:\n\tvoid push(const void* mem, size_t bytes)\n\t{\n\t\tconst uint8_t* ptr = static_cast<const uint8_t*>(mem);\n\t\tm_data.insert(m_data.end(), ptr, ptr + bytes);\n\t}\n\tsize_t size() const\n\t{\n\t\treturn m_data.size();\n\t}\n\tconst uint8_t* data()\n\t{\n\t\treturn m_data.data();\n\t}\n\tvoid consume(size_t bytes)\n\t{\n\t\tif (bytes > size())\n\t\t\tthrow std::logic_error(\"ConsumableBuffer::consume() bytes > size()\");\n\n\t\tstd::memmove(m_data.data(), m_data.data() + bytes, m_data.size() - bytes);\n\t\tm_data.resize(m_data.size() - bytes);\n\t}\nprivate:\n\tstd::vector<uint8_t> m_data;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/ExtendedAudioFile.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <AudioToolbox/ExtendedAudioFile.h>\n#include <CarbonCore/MacErrors.h>\n\n// TODO: Implement with the help of CAAudioFile?\n\nOSStatus ExtAudioFileOpenURL( CFURLRef inURL,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileWrapAudioFileID(AudioFileID inFileID,\n       Boolean inForWriting,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileCreateWithURL( CFURLRef inURL,\n       AudioFileTypeID inFileType,\n       const AudioStreamBasicDescription * inStreamDesc,\n       const AudioChannelLayout * _Nullable inChannelLayout,\n                      UInt32 inFlags,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileOpen( const struct FSRef * inFSRef,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileCreateNew( const struct FSRef * inParentDir,\n       CFStringRef inFileName,\n       AudioFileTypeID inFileType,\n       const AudioStreamBasicDescription * inStreamDesc,\n       const AudioChannelLayout * _Nullable inChannelLayout,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileDispose( ExtAudioFileRef inExtAudioFile)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileRead( ExtAudioFileRef inExtAudioFile,\n       UInt32 * ioNumberFrames,\n       AudioBufferList * ioData)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileWrite( ExtAudioFileRef inExtAudioFile,\n       UInt32 inNumberFrames,\n       const AudioBufferList * ioData)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileWriteAsync( ExtAudioFileRef inExtAudioFile,\n       UInt32 inNumberFrames,\n       const AudioBufferList * _Nullable ioData)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileSeek( ExtAudioFileRef inExtAudioFile,\n       SInt64 inFrameOffset)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileTell( ExtAudioFileRef inExtAudioFile,\n       SInt64 * outFrameOffset)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileGetPropertyInfo(ExtAudioFileRef inExtAudioFile,\n       ExtAudioFilePropertyID inPropertyID,\n       UInt32 * _Nullable outSize,\n       Boolean * _Nullable outWritable)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileGetProperty( ExtAudioFileRef inExtAudioFile,\n       ExtAudioFilePropertyID inPropertyID,\n       UInt32 * ioPropertyDataSize,\n       void * outPropertyData)\n{\n\treturn unimpErr;\n}\n\nOSStatus ExtAudioFileSetProperty( ExtAudioFileRef inExtAudioFile,\n       ExtAudioFilePropertyID inPropertyID,\n       UInt32 inPropertyDataSize,\n       const void * inPropertyData)\n{\n\treturn unimpErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/MusicDevice.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <AudioToolbox/MusicDevice.h>\n#include <CarbonCore/MacErrors.h>\n#include <iostream>\n\nOSStatus\nMusicDeviceMIDIEvent( MusicDeviceComponent inUnit,\n      UInt32 inStatus,\n      UInt32 inData1,\n      UInt32 inData2,\n      UInt32 inOffsetSampleFrame)\n{\n\tstd::cerr << \"NOT IMPLEMENTED: \" << __FUNCTION__ << std::endl;\n\treturn unimpErr;\n}\n\nOSStatus\nMusicDeviceSysEx( MusicDeviceComponent inUnit,\n      const UInt8 * inData,\n      UInt32 inLength)\n{\n\tstd::cerr << \"NOT IMPLEMENTED: \" << __FUNCTION__ << std::endl;\n\treturn unimpErr;\n}\n\nOSStatus\nMusicDeviceStartNote( MusicDeviceComponent inUnit,\n      MusicDeviceInstrumentID inInstrument,\n      MusicDeviceGroupID inGroupID,\n      NoteInstanceID * outNoteInstanceID,\n      UInt32 inOffsetSampleFrame,\n      const MusicDeviceNoteParams * inParams)\n{\n\tstd::cerr << \"NOT IMPLEMENTED: \" << __FUNCTION__ << std::endl;\n\treturn unimpErr;\n}\n\nOSStatus\nMusicDeviceStopNote( MusicDeviceComponent inUnit,\n      MusicDeviceGroupID inGroupID,\n      NoteInstanceID inNoteInstanceID,\n      UInt32 inOffsetSampleFrame)\n{\n\tstd::cerr << \"NOT IMPLEMENTED: \" << __FUNCTION__ << std::endl;\n\treturn unimpErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/AudioToolbox/empty.c",
    "content": ""
  },
  {
    "path": "src/CoreAudio/AudioToolbox/stub.h",
    "content": "#ifndef AT_STUB_H\n#define AT_STUB_H\n#include <stdio.h>\n\n#ifndef STUB\n#\tdefine STUB() fprintf(stderr, \"AudioToolbox STUB: %s called\\n\", __FUNCTION__)\n#endif\n\n#define TRACE()\n#define TRACE1(...)\n#define TRACE2(...)\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CMakeLists.txt",
    "content": "project(CoreAudio_root)\ninclude(wrap_elf)\n\nremove_sdk_framework(AudioToolbox)\nremove_sdk_framework(AudioUnit)\nremove_sdk_framework(CoreAudio)\n\nadd_definitions(-DENABLE_PULSEAUDIO)\n\nfind_package(FFmpeg REQUIRED)\nfind_package(PulseAudio REQUIRED)\n\ninclude_directories(\n\t${FFMPEG_INCLUDE_DIR}\n\t${PULSEAUDIO_INCLUDE_DIRS}\n)\nadd_definitions(-DHAVE_AV_FRAME_ALLOC=1)\n\nwrap_elf(swresample libswresample.so)\nwrap_elf(avcodec libavcodec.so)\nwrap_elf(avformat libavformat.so)\nwrap_elf(avutil libavutil.so)\n#wrap_elf(asound libasound.so)\nwrap_elf(pulse libpulse.so)\n\nset(FRAMEWORK_AUDIOTOOLBOX_VERSION \"A\")\nset(FRAMEWORK_AUDIOUNIT_VERSION \"A\")\nset(FRAMEWORK_COREAUDIO_VERSION \"A\")\n\nadd_subdirectory(CoreAudio)\nadd_subdirectory(AudioToolbox)\nadd_subdirectory(CoreAudioComponent)\nadd_subdirectory(AFAVFormatComponent)\nadd_subdirectory(AudioFileTools)\n\ngenerate_sdk_framework(AudioToolbox\n    VERSION ${FRAMEWORK_AUDIOTOOLBOX_VERSION}\n    HEADER \"include/AudioToolbox\"\n)\n\ngenerate_sdk_framework(AudioUnit\n    VERSION ${FRAMEWORK_AUDIOUNIT_VERSION}\n    HEADER \"include/AudioUnit\"\n)\n\ngenerate_sdk_framework(CoreAudio\n    VERSION ${FRAMEWORK_COREAUDIO_VERSION}\n    HEADER \"include/CoreAudio\"\n)"
  },
  {
    "path": "src/CoreAudio/CoreAudio/AudioHardware.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2015-2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <CoreAudio/AudioHardware.h>\n#include \"AudioHardwareImpl.h\"\n#include \"pulse/AudioHardwareImplPA.h\"\n#include \"pulse/AudioHardwareImplPAOutput.h\"\n#include \"pulse/AudioHardwareImplPAInput.h\"\n#include <CarbonCore/MacErrors.h>\n#include <dispatch/dispatch.h>\n#include <memory>\n#include <unordered_map>\n#include \"stub.h\"\n\nstatic std::unordered_map<AudioObjectID, std::unique_ptr<AudioHardwareImpl>> g_objects;\n\nstatic void initObjects()\n{\n\tstatic dispatch_once_t once;\n\tdispatch_once(&once, ^{\n\t\t// TODO: Or ALSA\n\t\tg_objects.insert(std::make_pair(kAudioObjectSystemObject, std::make_unique<AudioHardwareImplPA>(kAudioObjectSystemObject)));\n\t\tg_objects.insert(std::make_pair(kAudioObjectSystemObject + 1, std::make_unique<AudioHardwareImplPAOutput>(kAudioObjectSystemObject + 1)));\n\t\tg_objects.insert(std::make_pair(kAudioObjectSystemObject + 2, std::make_unique<AudioHardwareImplPAInput>(kAudioObjectSystemObject + 2)));\n\t\tg_objects.insert(std::make_pair(kAudioObjectSystemObject + 1, std::make_unique<AudioHardwareImplPAOutput>(kAudioObjectSystemObject + 3, \"event\")));\n\t});\n}\n\nstatic AudioHardwareImpl* GetObject(AudioObjectID objID)\n{\n\tinitObjects();\n\n\tauto it = g_objects.find(objID);\n\tif (it == g_objects.end())\n\t\treturn nullptr;\n\n\treturn it->second.get();\n}\n\nstatic AudioHardwareImpl* GetSystemObject()\n{\n\treturn GetObject(kAudioObjectSystemObject);\n}\n\nvoid AudioObjectShow(AudioObjectID inObjectID)\n{\n\tAudioHardwareImpl* obj = GetObject(inObjectID);\n\tif (obj)\n\t\tobj->show();\n}\n\nBoolean AudioObjectHasProperty(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress)\n{\n\tAudioHardwareImpl* obj = GetObject(inObjectID);\n\tif (!obj)\n\t\treturn 0;\n\t\n\treturn obj->hasProperty(inAddress);\n}\n\nOSStatus AudioObjectIsPropertySettable(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress, Boolean* outIsSettable)\n{\n\tAudioHardwareImpl* obj = GetObject(inObjectID);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->isPropertySettable(inAddress, outIsSettable);\n}\n\nOSStatus AudioObjectGetPropertyDataSize(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* outDataSize)\n{\n\tAudioHardwareImpl* obj = GetObject(inObjectID);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->getPropertyDataSize(inAddress, inQualifierDataSize,\n\t\t\tinQualifierData, outDataSize);\n}\n\nOSStatus AudioObjectGetPropertyData(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* ioDataSize, void* outData)\n{\n\tAudioHardwareImpl* obj = GetObject(inObjectID);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->getPropertyData(inAddress, inQualifierDataSize, inQualifierData,\n\t\t\tioDataSize, outData);\n}\n\nOSStatus AudioObjectSetPropertyData(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32 inDataSize, const void* inData)\n{\n\tAudioHardwareImpl* obj = GetObject(inObjectID);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->setPropertyData(inAddress, inQualifierDataSize, inQualifierData,\n\t\t\tinDataSize, inData);\n}\n\nOSStatus AudioObjectAddPropertyListener(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress,\n\t\tAudioObjectPropertyListenerProc inListener, void* inClientData)\n{\n\tAudioHardwareImpl* obj = GetObject(inObjectID);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->addPropertyListener(inAddress, inListener, inClientData);\n}\n\nOSStatus AudioObjectRemovePropertyListener(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress,\n\t\tAudioObjectPropertyListenerProc inListener, void* inClientData)\n{\n\tAudioHardwareImpl* obj = GetObject(inObjectID);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->removePropertyListener(inAddress, inListener, inClientData);\n}\n\nOSStatus AudioHardwareUnload(void)\n{\n\treturn noErr;\n}\n\nOSStatus AudioHardwareCreateAggregateDevice(CFDictionaryRef, AudioObjectID* outDeviceID)\n{\n\tSTUB();\n\tif (outDeviceID)\n\t\t*outDeviceID = 0;\n\t\n\treturn unimpErr;\n}\n\nOSStatus AudioHardwareDestroyAggregateDevice(AudioObjectID inDeviceID)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nOSStatus AudioHardwareGetProperty(AudioHardwarePropertyID inPropId, UInt32* ioPropertyDataSize, void* outPropertyData)\n{\n\tif (!ioPropertyDataSize)\n\t\treturn paramErr;\n\n\treturn AudioDeviceGetProperty(kAudioObjectSystemObject, 0, false, inPropId, ioPropertyDataSize, outPropertyData);\n}\n\nOSStatus AudioDeviceGetProperty(AudioDeviceID inDevice, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, UInt32* ioPropertyDataSize, void* outPropertyData)\n{\n\tAudioObjectPropertyAddress aopa = {\n\t\tinPropertyID,\n\t\tisInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput, // kAudioObjectPropertyScopeGlobal\n\t\tkAudioObjectPropertyElementMaster\n\t};\n\n\treturn AudioObjectGetPropertyData(inDevice, &aopa, 0, nullptr, ioPropertyDataSize, outPropertyData);\n}\n\nOSStatus AudioDeviceGetPropertyInfo(AudioDeviceID inDevice, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, UInt32* outSize, Boolean* outWritable)\n{\n\tAudioObjectPropertyAddress aopa = {\n\t\tinPropertyID,\n\t\tisInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput, // kAudioObjectPropertyScopeGlobal\n\t\tkAudioObjectPropertyElementMaster\n\t};\n\n\tOSStatus status;\n\tif (outSize)\n\t{\n\t\tstatus = AudioObjectGetPropertyDataSize(inDevice, &aopa, 0, nullptr, outSize);\n\t\tif (status != noErr)\n\t\t\treturn status;\n\t}\n\n\tif (outWritable)\n\t{\n\t\tstatus = AudioObjectIsPropertySettable(inDevice, &aopa, outWritable);\n\t}\n\treturn status;\n}\n\nOSStatus AudioDeviceSetProperty(AudioDeviceID inDevice, const AudioTimeStamp *inWhen, UInt32 inChannel,\n\tBoolean isInput, AudioDevicePropertyID inPropertyID, UInt32 inPropertyDataSize, const void *inPropertyData)\n{\n\tAudioObjectPropertyAddress aopa = {\n\t\tinPropertyID,\n\t\tkAudioObjectPropertyScopeGlobal,\n\t\tkAudioObjectPropertyElementMaster\n\t};\n\n\treturn AudioObjectSetPropertyData(inDevice, &aopa, 0, nullptr, inPropertyDataSize, inPropertyData);\n}\n\nOSStatus AudioHardwareGetPropertyInfo(AudioHardwarePropertyID inPropertyID, UInt32 *outSize, Boolean *outWritable)\n{\n\treturn AudioDeviceGetPropertyInfo(kAudioObjectSystemObject, 0, false, inPropertyID, outSize, outWritable);\n}\n\nOSStatus AudioDeviceCreateIOProcID(AudioObjectID inDevice,\n\t\tAudioDeviceIOProc inProc, void* inClientData,\n\t\tAudioDeviceIOProcID* outIOProcID)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->createIOProcID(inProc, inClientData, outIOProcID);\n}\n\nOSStatus AudioDeviceAddIOProc(AudioDeviceID inDevice, AudioDeviceIOProc inProc, void *inClientData)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\treturn obj->createIOProcID(inProc, inClientData, nullptr);\n}\n\nOSStatus AudioDeviceDestroyIOProcID(AudioObjectID inDevice,\n\t\tAudioDeviceIOProcID inIOProcID)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->destroyIOProcID(inIOProcID);\n}\n\nOSStatus AudioDeviceRemoveIOProc(AudioDeviceID inDevice, AudioDeviceIOProc inProc)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->destroyIOProcID(AudioDeviceIOProcID(inProc));\n}\n\nOSStatus AudioDeviceStart(AudioObjectID inDevice, AudioDeviceIOProcID inProcID)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->start(inProcID, nullptr, 0);\n}\n\nOSStatus AudioDeviceStartAtTime(AudioObjectID inDevice, AudioDeviceIOProcID inProcID,\n\t\tAudioTimeStamp* ioRequestedStartTime, UInt32 inFlags)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->start(inProcID, ioRequestedStartTime, inFlags);\n}\n\nOSStatus AudioDeviceStop(AudioObjectID inDevice, AudioDeviceIOProcID inProcID)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->stop(inProcID);\n}\n\nOSStatus AudioDeviceGetCurrentTime(AudioObjectID inDevice, AudioTimeStamp* outTime)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->getCurrentTime(outTime);\n}\n\nOSStatus AudioDeviceTranslateTime(AudioObjectID inDevice, const AudioTimeStamp* inTime,\n\t\tAudioTimeStamp* outTime)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->translateTime(inTime, outTime);\n}\n\nOSStatus AudioDeviceGetNearestStartTime(AudioObjectID inDevice,\n\t\tAudioTimeStamp* ioRequestedStartTime, UInt32 inFlags)\n{\n\tAudioHardwareImpl* obj = GetObject(inDevice);\n\tif (!obj)\n\t\treturn kAudioHardwareBadObjectError;\n\t\n\treturn obj->getNearestStartTime(ioRequestedStartTime, inFlags);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/AudioHardwareImpl.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2015-2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioHardwareImpl.h\"\n#include <typeinfo>\n#include <iostream>\n#include <cstring>\n#include <CarbonCore/MacErrors.h>\n\nAudioHardwareImpl::AudioHardwareImpl(AudioObjectID myId)\n: m_myId(myId)\n{\n\t// These are the standard values macOS applications have learned to expect\n\tm_asbd.mChannelsPerFrame = 2;\n\tm_asbd.mSampleRate = 44100;\n\tm_asbd.mBitsPerChannel = 32;\n\tm_asbd.mFormatID = kAudioFormatLinearPCM;\n\tm_asbd.mFormatFlags = kLinearPCMFormatFlagIsFloat | kAudioFormatFlagsNativeEndian;\n\tm_asbd.mFramesPerPacket = 1;\n\tm_asbd.mBytesPerFrame = UInt32(m_asbd.mBytesPerPacket = m_asbd.mChannelsPerFrame * m_asbd.mSampleRate * m_asbd.mBitsPerChannel / 8);\n}\n\n\nAudioHardwareImpl::~AudioHardwareImpl()\n{\n}\n\t\nvoid AudioHardwareImpl::show()\n{\n\tstd::cout << typeid(*this).name() << std::endl;\n}\n\nOSStatus AudioHardwareImpl::createIOProcID(AudioDeviceIOProc inProc, void* inClientData,\n\t\tAudioDeviceIOProcID* outIOProcID)\n{\n\tstd::lock_guard<std::mutex> guard(m_procMutex);\n\t\n\tif (!inProc)\n\t\treturn paramErr;\n\t\n\tAudioDeviceIOProcID procId;\n\tif (outIOProcID)\n\t\t*outIOProcID = procId = reinterpret_cast<AudioDeviceIOProcID>(m_nextProcId++);\n\telse\n\t\tprocId = inProc;\n\n\tm_proc[procId] = std::make_pair(inProc, inClientData);\n\t\n\treturn noErr;\n}\n\nOSStatus AudioHardwareImpl::destroyIOProcID(AudioDeviceIOProcID inIOProcID)\n{\n\tstd::lock_guard<std::mutex> guard(m_procMutex);\n\tauto it = m_proc.find(inIOProcID);\n\t\n\tif (it == m_proc.end())\n\t\treturn paramErr;\n\t\n\tm_proc.erase(it);\n\treturn noErr;\n}\n\nOSStatus AudioHardwareImpl::start(AudioDeviceIOProcID inProcID,\n\t\tAudioTimeStamp* ioRequestedStartTime, UInt32 inFlags)\n{\n\tAudioHardwareStream* stream;\n\tstd::lock_guard<std::mutex> guard(m_procMutex);\n\t\n\tif (m_streams.find(inProcID) != m_streams.end())\n\t\treturn paramErr;\n\n\tauto it = m_proc.find(inProcID);\n\t\n\tif (it == m_proc.end())\n\t\treturn paramErr;\n\t\n\tstream = createStream(it->second.first, it->second.second);\n\tif (!stream)\n\t\treturn kAudioHardwareBadStreamError;\n\tm_streams.emplace(std::make_pair(inProcID, std::unique_ptr<AudioHardwareStream>(stream)));\n\t\n\t// TODO: time\n\t\n\treturn noErr;\n}\n\nOSStatus AudioHardwareImpl::stop(AudioDeviceIOProcID inProcID)\n{\n\tauto it = m_streams.find(inProcID);\n\tif (it == m_streams.end())\n\t\treturn kAudioHardwareNotRunningError;\n\t\n\tAudioHardwareStream* stream = it->second.release();\n\tstream->stop();\n\n\tdelete stream;\n\tm_streams.erase(it);\n\treturn noErr;\n}\n\nbool AudioHardwareImpl::hasProperty(const AudioObjectPropertyAddress* address)\n{\n\tUInt32 ds;\n\tOSStatus status = getPropertyDataSize(address, 0, nullptr, &ds);\n\treturn status != kAudioHardwareUnknownPropertyError;\n}\n\nOSStatus AudioHardwareImpl::getPropertyDataSize(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* outDataSize)\n{\n\treturn getPropertyData(inAddress, inQualifierDataSize, inQualifierData, outDataSize, nullptr);\n}\n\nOSStatus AudioHardwareImpl::isPropertySettable(const AudioObjectPropertyAddress* inAddress, Boolean* outIsSettable)\n{\n\tswitch (inAddress->mSelector)\n\t{\n\t\tcase kAudioDevicePropertyVolumeScalar:\n\t\tcase kAudioDevicePropertyVolumeDecibels:\n\t\t\t*outIsSettable = true;\n\t\t\treturn kAudioHardwareNoError;\n\t}\n\n\t*outIsSettable = false;\n\treturn kAudioHardwareUnknownPropertyError;\n}\n\n// Examples:\n// https://gist.github.com/robotconscience/490ee50d8ad75b47ea1f\n// https://gist.github.com/hpux735/2913436\n\nOSStatus AudioHardwareImpl::getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\tconst void* inQualifierData, UInt32* ioDataSize, void* outData)\n{\n\tswitch (inAddress->mSelector)\n\t{\n\t\tcase kAudioDevicePropertyStreamFormat: // returns AudioStreamBasicDescription\n\t\t{\n\t\t\tif (AudioStreamBasicDescription* asbd = static_cast<AudioStreamBasicDescription*>(outData); asbd && *ioDataSize >= sizeof(AudioStreamBasicDescription))\n\t\t\t{\n\t\t\t\tmemcpy(asbd, &m_asbd, sizeof(m_asbd));\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(AudioStreamBasicDescription);\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyDeviceManufacturer:\n\t\t\treturn getPropertyString(m_manufacturer, ioDataSize, outData);\n\t\tcase kAudioDevicePropertyDeviceManufacturerCFString:\n\t\t\treturn getPropertyCFString(m_manufacturer, ioDataSize, outData);\n\t\t// NOTE: This is related to [NSSound setPlaybackDeviceIdentifier]\n\t\tcase kAudioDevicePropertyDeviceUID: // returns CFStringRef\n\t\t\treturn getPropertyCFString(m_uid, ioDataSize, outData);\n\t\tcase kAudioDevicePropertyModelUID:\n\t\treturn getPropertyCFString(m_modelUid, ioDataSize, outData);\n\t\tcase kAudioDevicePropertyDeviceNameCFString:\n\t\t\treturn getPropertyCFString(m_name, ioDataSize, outData);\n\t\tcase kAudioDevicePropertyDeviceName: // return char[]\n\t\t\treturn getPropertyString(m_name, ioDataSize, outData);\n\t\tcase kAudioDevicePropertyNominalSampleRate: // Float64\n\t\t{\n\t\t\tif (Float64* flt = static_cast<Float64*>(outData); flt && *ioDataSize >= sizeof(Float64))\n\t\t\t\t*flt = 44100;\n\n\t\t\t*ioDataSize = sizeof(Float64);\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyAvailableNominalSampleRates: // AudioValueRange[]\n\t\t{\n\t\t\tif (AudioValueRange* avr = static_cast<AudioValueRange*>(outData); avr && *ioDataSize >= sizeof(AudioValueRange)*1)\n\t\t\t{\n\t\t\t\tavr->mMinimum = 44100;\n\t\t\t\tavr->mMaximum = 44100;\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(AudioValueRange) * 1;\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyDeviceIsAlive: // int\n\t\tcase kAudioDevicePropertyDeviceIsRunning:\n\t\t{\n\t\t\tif (int* b = static_cast<int*>(outData); outData && *ioDataSize >= sizeof(int))\n\t\t\t\t*b = 1;\n\t\t\t*ioDataSize = sizeof(int);\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyIsHidden:\n\t\t{\n\t\t\tif (int* b = static_cast<int*>(outData); outData && *ioDataSize >= sizeof(int))\n\t\t\t\t*b = 0;\n\t\t\t*ioDataSize = sizeof(int);\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyPreferredChannelsForStereo:\n\t\t{\n\t\t\tif (UInt32* b = static_cast<UInt32*>(outData); outData && *ioDataSize >= sizeof(UInt32)*2)\n\t\t\t{\n\t\t\t\tb[0] = 0;\n\t\t\t\tb[1] = 1;\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(UInt32)*2;\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyVolumeScalar:\n\t\t{\n\t\t\tif (Float32* v = static_cast<Float32*>(outData); outData && *ioDataSize >= sizeof(Float32))\n\t\t\t\t*v = 1.0f; // TODO: Ask for real volume from PulseAudio\n\t\t\t*ioDataSize = sizeof(Float32);\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyVolumeDecibels:\n\t\t{\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t}\n\treturn kAudioHardwareUnknownPropertyError;\n}\n\nOSStatus AudioHardwareImpl::getPropertyCFString(CFStringRef str, UInt32* ioDataSize, void* outData)\n{\n\tif (CFStringRef* ref = static_cast<CFStringRef*>(outData); ref && *ioDataSize >= sizeof(CFStringRef))\n\t{\n\t\t*ref = (CFStringRef) CFRetain(str);\n\t}\n\t*ioDataSize = sizeof(CFStringRef);\n\treturn noErr;\n}\n\nOSStatus AudioHardwareImpl::getPropertyString(CFStringRef str, UInt32* ioDataSize, void* outData)\n{\n\tconst char* cstr = CFStringGetCStringPtr(str, kCFStringEncodingUTF8);\n\tif (char* target = static_cast<char*>(outData))\n\t\tstrlcpy(target, cstr, *ioDataSize);\n\t*ioDataSize = strlen(cstr) + 1;\n\treturn noErr;\n}\n\nOSStatus AudioHardwareImpl::setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\tconst void* inQualifierData, UInt32 inDataSize, const void* inData)\n{\n\tswitch (inAddress->mSelector)\n\t{\n\t\tcase kAudioDevicePropertyBufferSize:\n\t\t{\n\t\t\treturn setBufferSize(*static_cast<const uint32_t*>(inData));\n\t\t}\n\t\tcase kAudioDevicePropertyVolumeScalar:\n\t\t{\n\t\t\t// TODO: Implement setting the volume\n\t\t\t// Note: qualifier contains the channel ID (from kAudioDevicePropertyPreferredChannelsForStereo)\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyVolumeDecibels:\n\t\t{\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyStreamFormat:\n\t\t{\n\t\t\tif (inDataSize != sizeof(m_asbd))\n\t\t\t\treturn kAudioHardwareBadPropertySizeError;\n\n\t\t\tconst AudioStreamBasicDescription* setting = static_cast<const AudioStreamBasicDescription*>(inData);\n\t\t\tif (setting->mFormatID != kAudioFormatLinearPCM)\n\t\t\t\treturn kAudioDeviceUnsupportedFormatError;\n\t\t\tif (!validateFormat(setting))\n\t\t\t\treturn kAudioDeviceUnsupportedFormatError;\n\n\t\t\tmemcpy(&m_asbd, setting, sizeof(m_asbd));\n\n\t\t\tm_asbd.mFramesPerPacket = 1;\n\t\t\tm_asbd.mBytesPerFrame = UInt32(m_asbd.mBytesPerPacket = m_asbd.mChannelsPerFrame * m_asbd.mSampleRate * m_asbd.mBitsPerChannel / 8);\n\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\t// These make sense only for ALSA, but I find it ridiculous that these properties can be set...\n\t\tcase kAudioHardwarePropertyDefaultOutputDevice:\n\t\t\treturn kAudioHardwareNoError;\n\t\tcase kAudioHardwarePropertyDefaultInputDevice:\n\t\t\treturn kAudioHardwareNoError;\n\t}\n\treturn kAudioHardwareUnknownPropertyError;\n}\n\nOSStatus AudioHardwareImpl::addPropertyListener(const AudioObjectPropertyAddress* inAddress,\n\tAudioObjectPropertyListenerProc inListener, void* inClientData)\n{\n\treturn kAudioHardwareUnknownPropertyError;\n}\n\nOSStatus AudioHardwareImpl::removePropertyListener(const AudioObjectPropertyAddress* inAddress,\n\tAudioObjectPropertyListenerProc inListener, void* inClientData)\n{\n\treturn kAudioHardwareUnknownPropertyError;\n}\n\nOSStatus AudioHardwareImpl::setBufferSize(uint32_t bufferSize)\n{\n\tm_bufferSize = bufferSize;\n\treturn noErr;\n}\n\nOSStatus AudioHardwareImpl::getCurrentTime(AudioTimeStamp* outTime)\n{\n\tstd::memset(outTime, 0, sizeof(*outTime));\n\treturn noErr;\n}\n\t\nOSStatus AudioHardwareImpl::translateTime(const AudioTimeStamp* inTime, AudioTimeStamp* outTime)\n{\n\t*outTime = *inTime;\n\treturn noErr;\n}\n\nOSStatus AudioHardwareImpl::getNearestStartTime(AudioTimeStamp* ioRequestedStartTime, UInt32 inFlags)\n{\n\tstd::memset(ioRequestedStartTime, 0, sizeof(*ioRequestedStartTime));\n\treturn noErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/AudioHardwareImpl.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2015-2016 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUDIOHARDWAREIMPL_H\n#define AUDIOHARDWAREIMPL_H\n#include <CoreAudio/AudioHardware.h>\n#include <CoreFoundation/CFString.h>\n#include <map>\n#include <mutex>\n#include \"AudioHardwareStream.h\"\n\nclass AudioHardwareImpl\n{\npublic:\n\tAudioHardwareImpl(AudioObjectID myId);\n\tvirtual ~AudioHardwareImpl();\n\t\n\tvirtual void show();\n\tvirtual bool hasProperty(const AudioObjectPropertyAddress* address);\n\tvirtual OSStatus getPropertyDataSize(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* outDataSize);\n\t\n\tvirtual OSStatus isPropertySettable(const AudioObjectPropertyAddress* inAddress, Boolean* outIsSettable);\n\t\n\tvirtual OSStatus getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* ioDataSize, void* outData);\n\t\n\tvirtual OSStatus setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32 inDataSize, const void* inData);\n\t\n\tvirtual OSStatus addPropertyListener(const AudioObjectPropertyAddress* inAddress,\n\t\tAudioObjectPropertyListenerProc inListener, void* inClientData);\n\t\n\tvirtual OSStatus removePropertyListener(const AudioObjectPropertyAddress* inAddress,\n\t\tAudioObjectPropertyListenerProc inListener, void* inClientData);\n\t\n\tOSStatus createIOProcID(AudioDeviceIOProc inProc, void* inClientData,\n\t\tAudioDeviceIOProcID* outIOProcID);\n\tOSStatus destroyIOProcID(AudioDeviceIOProcID inIOProcID);\n\t\n\tvirtual OSStatus start(AudioDeviceIOProcID inProcID,\n\t\tAudioTimeStamp* ioRequestedStartTime, UInt32 inFlags);\n\tvirtual OSStatus stop(AudioDeviceIOProcID inProcID);\n\t\n\tvirtual OSStatus getCurrentTime(AudioTimeStamp* outTime);\n\t\n\tvirtual OSStatus translateTime(const AudioTimeStamp* inTime,\n\t\tAudioTimeStamp* outTime);\n\t\n\tvirtual OSStatus getNearestStartTime(AudioTimeStamp* ioRequestedStartTime,\n\t\tUInt32 inFlags);\n\tvirtual OSStatus setBufferSize(uint32_t bufferSize);\n\tuint32_t bufferSize() const { return m_bufferSize; }\n\n\tAudioObjectID id() const { return m_myId; }\n\tconst AudioStreamBasicDescription& asbd() const { return m_asbd; }\nprivate:\n\tstatic OSStatus getPropertyCFString(CFStringRef str, UInt32* ioDataSize, void* outData);\n\tstatic OSStatus getPropertyString(CFStringRef str, UInt32* ioDataSize, void* outData);\nprotected:\n\tvirtual AudioHardwareStream* createStream(AudioDeviceIOProc callback, void* clientData) = 0;\n\tvirtual bool validateFormat(const AudioStreamBasicDescription* absd) const { return true; }\nprotected:\n\tAudioObjectID m_myId;\n\tstd::mutex m_procMutex;\n\tstd::map<AudioDeviceIOProcID, std::pair<AudioDeviceIOProc, void*>> m_proc;\n\tint m_nextProcId = 1;\n\t\n\tstd::map<AudioDeviceIOProcID, std::unique_ptr<AudioHardwareStream>> m_streams;\n\tuint32_t m_bufferSize = 8192;\n\n\tCFStringRef m_name = CFSTR(\"unknown\"), m_uid = CFSTR(\"unknown\"), m_manufacturer = CFSTR(\"unknown\"), m_modelUid = CFSTR(\"unknown\");\n\tAudioStreamBasicDescription m_asbd;\n};\n\n#endif /* AUDIOHARDWAREIMPL_H */\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/AudioHardwareStream.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2015-2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioHardwareStream.h\"\n#include \"AudioHardwareImpl.h\"\n#include <condition_variable>\n#include <mutex>\n#include <iostream>\n\nAudioHardwareStream::AudioHardwareStream(AudioHardwareImpl* hw, bool needBuffer)\n: m_hw(hw)\n{\n\tm_bufferSize = hw->bufferSize();\n\n\tif (needBuffer)\n\t\tm_buffer = new uint8_t[m_bufferSize];\n\telse\n\t\tm_buffer = nullptr;\n}\n\nAudioHardwareStream::~AudioHardwareStream()\n{\n\tdelete m_buffer;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/AudioHardwareStream.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2015-2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUDIOHARDWARESTREAM_H\n#define AUDIOHARDWARESTREAM_H\n#include <stdint.h>\n\nclass AudioHardwareImpl;\n\nclass AudioHardwareStream\n{\npublic:\n\tAudioHardwareStream(AudioHardwareImpl* hw, bool needBuffer = true);\n\tvirtual ~AudioHardwareStream();\n\n\tvirtual void stop(/*void(^cbDone)()*/) = 0;\n\t//void stop();\nprotected:\n\tAudioHardwareImpl* m_hw;\n\tuint32_t m_bufferSize;\n\tuint8_t* m_buffer;\n};\n\n#endif /* AUDIOHARDWARESTREAM_H */\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/CMakeLists.txt",
    "content": "project(CoreAudio)\n\ninclude_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})\n\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -std=c++17\")\n\nset(coreaudio_sources\n\tAudioHardware.cpp\n    AudioHardwareImpl.cpp\n    HostTime.mm\n    pulse/AudioHardwareImplPA.cpp\n    pulse/AudioHardwareImplPAInput.cpp\n    pulse/AudioHardwareImplPAOutput.cpp\n    AudioHardwareStream.cpp\n    pulse/AudioHardwareStreamPA.cpp\n    pulse/AudioHardwareStreamPAInput.cpp\n    pulse/AudioHardwareStreamPAOutput.cpp\n    pulse/PADispatchMainLoop.cpp\n)\n\nadd_framework(CoreAudio\n\tFAT\n    CURRENT_VERSION\n    VERSION \"A\"\n\n    SOURCES\n        ${coreaudio_sources}\n\n    DEPENDENCIES\n        system\n        cxx\n        CoreFoundation\n        pulse\n)\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/HostTime.mm",
    "content": "#include \"CoreAudio/HostTime.h\"\n#include \"stub.h\"\n\nUInt64 AudioGetCurrentHostTime(void)\n{\n    STUB();\n    return 0;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareImplPA.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioHardwareImplPA.h\"\n#include \"../stub.h\"\n#include \"AudioHardwareStreamPA.h\"\n#include \"PADispatchMainLoop.h\"\n#include <CoreFoundation/CFBundle.h>\n#include <CoreFoundation/CFString.h>\n#include <iostream>\n#include <mutex>\n#include <thread>\n\nAudioHardwareImplPA::AudioHardwareImplPA(AudioObjectID myId, const char* paRole)\n: AudioHardwareImpl(myId), m_paRole(paRole)\n{\n\tm_name = CFSTR(\"PulseAudio\");\n\tm_manufacturer = CFSTR(\"PulseAudio\");\n\tm_uid = CFSTR(\"PulseAudio:SystemObject\");\n}\n\nAudioHardwareImplPA::~AudioHardwareImplPA()\n{\n\tif (m_context)\n\t\tpa_context_unref(m_context);\n}\n\nOSStatus AudioHardwareImplPA::getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\tconst void* inQualifierData, UInt32* ioDataSize, void* outData)\n{\n\tswitch (inAddress->mSelector)\n\t{\n\t\t// BEGIN kAudioObjectSystemObject properties\n\t\tcase kAudioHardwarePropertyDefaultInputDevice: // returns AudioDeviceID\n\t\t\tif (AudioDeviceID* devId = static_cast<AudioDeviceID*>(outData); devId && *ioDataSize >= sizeof(AudioDeviceID))\n\t\t\t{\n\t\t\t\t*devId = kAudioObjectSystemObject + 2;\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(AudioDeviceID);\n\t\t\treturn kAudioHardwareNoError;\n\t\tcase kAudioHardwarePropertyDefaultOutputDevice: // returns AudioDeviceID\n\t\t\tif (AudioDeviceID* devId = static_cast<AudioDeviceID*>(outData); devId && *ioDataSize >= sizeof(AudioDeviceID))\n\t\t\t{\n\t\t\t\t*devId = kAudioObjectSystemObject + 1;\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(AudioDeviceID);\n\t\t\treturn kAudioHardwareNoError;\n\t\tcase kAudioHardwarePropertyDefaultSystemOutputDevice:\n\t\t\tif (AudioDeviceID* devId = static_cast<AudioDeviceID*>(outData); devId && *ioDataSize >= sizeof(AudioDeviceID))\n\t\t\t{\n\t\t\t\t*devId = kAudioObjectSystemObject + 3;\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(AudioDeviceID);\n\t\t\treturn kAudioHardwareNoError;\n\t\tcase kAudioHardwarePropertyDevices:\n\t\t{\n\t\t\tif (AudioDeviceID* devId = static_cast<AudioDeviceID*>(outData); devId && *ioDataSize >= 2*sizeof(AudioDeviceID))\n\t\t\t{\n\t\t\t\tdevId[0] = kAudioObjectSystemObject + 1; // output\n\t\t\t\tdevId[1] = kAudioObjectSystemObject + 2; // input\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(AudioDeviceID) * 2;\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyVolumeDecibelsToScalar:\n\t\t{\n\t\t\tif (Float32* vol = static_cast<Float32*>(outData); vol && *ioDataSize == sizeof(Float32))\n\t\t\t{\n\t\t\t\t*vol = pa_sw_volume_to_linear(pa_sw_volume_from_dB(*vol));\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(Float32);\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t\tcase kAudioDevicePropertyVolumeScalarToDecibels:\n\t\t{\n\t\t\tif (Float32* vol = static_cast<Float32*>(outData); vol && *ioDataSize == sizeof(Float32))\n\t\t\t{\n\t\t\t\t*vol = pa_sw_volume_to_dB(pa_sw_volume_from_linear(*vol));\n\t\t\t}\n\t\t\t*ioDataSize = sizeof(Float32);\n\t\t\treturn kAudioHardwareNoError;\n\t\t}\n\t}\n\n\treturn AudioHardwareImpl::getPropertyData(inAddress, inQualifierDataSize, inQualifierData, ioDataSize, outData);\n}\n\t\nOSStatus AudioHardwareImplPA::setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\tconst void* inQualifierData, UInt32 inDataSize, const void* inData)\n{\n\treturn AudioHardwareImpl::setPropertyData(inAddress, inQualifierDataSize, inQualifierData, inDataSize, inData);\n}\n\nAudioHardwareStream* AudioHardwareImplPA::createStream(AudioDeviceIOProc callback, void* clientData)\n{\n\t// Must be called on a subclass instance\n\treturn nullptr;\n}\n\nextern \"C\" char ***_NSGetArgv(void);\n\nstatic void paContextStateCB(pa_context* c, void* priv)\n{\n\tvoid (^cb)(pa_context*) = (void (^)(pa_context*)) priv;\n\n\tpa_context_state_t state = pa_context_get_state(c);\n\tif (state == PA_CONTEXT_READY)\n\t{\n\t\t// std::cout << \"PA_CONTEXT_READY\\n\";\n\n\t\tcb(c);\n\t\tBlock_release(cb);\n\n\t\t// FIXME: We won't be notified about later disconnects...\n\t\tpa_context_set_state_callback(c, nullptr, nullptr);\n\t}\n\telse if (state == PA_CONTEXT_FAILED)\n\t{\n\t\tstd::cerr << \"PulseAudio error: PA_CONTEXT_FAILED\\n\";\n\n\t\tcb(nullptr);\n\t\tBlock_release(cb);\n\t\tpa_context_set_state_callback(c, nullptr, nullptr);\n\t}\n}\n\nstatic const char* appNameFromExecutable()\n{\n\tconst char* name = (*_NSGetArgv())[0];\n\tconst char* p = std::strrchr(name, '/');\n\n\tif (p && *(p+1))\n\t\treturn p+1;\n\treturn name;\n}\n\nvoid AudioHardwareImplPA::getPAContext(void (^cb)(pa_context*))\n{\n\t// TODO: destruction\n\tstatic std::mutex mutex;\n\n\tif (m_context == nullptr)\n\t{\n\t\tstd::unique_lock<std::mutex> l(mutex);\n\n\t\tif (m_context == nullptr)\n\t\t{\n\t\t\tconst char* appname = appNameFromExecutable();\n\t\t\tconst char* appid = \"org.darlinghq.some-app\";\n\n\t\t\tpa_proplist* proplist = pa_proplist_new();\n\n\t\t\t// Try to find a better application name & id from the bundle\n\t\t\tCFBundleRef mainBundle = CFBundleGetMainBundle();\n\t\t\tif (mainBundle)\n\t\t\t{\n\t\t\t\tCFStringRef ident = CFBundleGetIdentifier(mainBundle);\n\t\t\t\tif (ident)\n\t\t\t\t\tappid = CFStringGetCStringPtr(ident, kCFStringEncodingUTF8);\n\n\t\t\t\tCFDictionaryRef infoDict = CFBundleGetLocalInfoDictionary(mainBundle);\n\t\t\t\tif (!infoDict)\n\t\t\t\t\tinfoDict = CFBundleGetInfoDictionary(mainBundle);\n\t\t\t\t\n\t\t\t\tif (infoDict)\n\t\t\t\t{\n\t\t\t\t\tCFStringRef name = (CFStringRef) CFDictionaryGetValue(infoDict, CFSTR(\"CFBundleDisplayName\"));\n\t\t\t\t\tif (!name)\n\t\t\t\t\t\tname = (CFStringRef) CFDictionaryGetValue(infoDict, CFSTR(\"CFBundleName\"));\n\t\t\t\t\tif (name)\n\t\t\t\t\t\tappname = CFStringGetCStringPtr(name, kCFStringEncodingUTF8);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tpa_proplist_sets(proplist, PA_PROP_APPLICATION_NAME, appname);\n\t\t\tpa_proplist_sets(proplist, PA_PROP_APPLICATION_ID, appid);\n\t\t\tif (m_paRole)\n\t\t\t\tpa_proplist_sets(proplist, PA_PROP_MEDIA_ROLE, m_paRole);\n\t\t\t// pa_proplist_sets(proplist, PA_PROP_APPLICATION_ICON_NAME, \"icon-name\");\n\t\t\t// pa_proplist_sets(proplist, PA_PROP_MEDIA_ROLE, \"game\");\n\n\t\t\tm_loop.reset(new PADispatchMainLoop);\n\n\t\t\tm_context = pa_context_new_with_proplist(m_loop->getAPI(), appname, proplist);\n\t\t\tpa_proplist_free(proplist);\n\n\t\t\tif (!m_context)\n\t\t\t{\n\t\t\t\tcb(nullptr);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpa_context_set_state_callback(m_context, paContextStateCB, Block_copy(cb));\n\n\t\t\tif (pa_context_connect(m_context, nullptr, PA_CONTEXT_NOFLAGS, nullptr) < 0)\n\t\t\t{\n\t\t\t\tstd::cerr << \"pa_context_connect() returned an error\\n\";\n\t\t\t\tpa_context_set_state_callback(m_context, nullptr, nullptr);\n\t\t\t\tcb(nullptr);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tm_loop->resume();\n\t\t}\n\t}\n\telse\n\t\tcb(m_context);\n}\n\npa_sample_spec AudioHardwareImplPA::paSampleSpecForASBD(const AudioStreamBasicDescription& asbd, bool* convertSignedUnsigned)\n{\n\tconst bool isFloat = asbd.mFormatFlags & kAudioFormatFlagIsFloat;\n\tconst bool isSigned = asbd.mFormatFlags & kAudioFormatFlagIsSignedInteger;\n\tconst bool isBE = asbd.mFormatFlags & kAudioFormatFlagIsBigEndian;\n\t\n\tpa_sample_spec spec;\n\t\n\tspec.rate = asbd.mSampleRate;\n\tspec.channels = asbd.mChannelsPerFrame;\n\tspec.format = PA_SAMPLE_INVALID;\n\n\tif (convertSignedUnsigned)\n\t\t*convertSignedUnsigned = false;\n\t\n\tif (asbd.mFormatID == kAudioFormatLinearPCM)\n\t{\n\t\tif (isFloat)\n\t\t\tspec.format = isBE ? PA_SAMPLE_FLOAT32BE : PA_SAMPLE_FLOAT32LE;\n\t\telse\n\t\t{\n\t\t\tswitch (asbd.mBitsPerChannel)\n\t\t\t{\n\t\t\t\tcase 8:\n\t\t\t\t\tif (convertSignedUnsigned)\n\t\t\t\t\t\t*convertSignedUnsigned = isSigned;\n\t\t\t\t\tspec.format = PA_SAMPLE_U8;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 16:\n\t\t\t\t\tif (convertSignedUnsigned)\n\t\t\t\t\t\t*convertSignedUnsigned = !isSigned;\n\t\t\t\t\t\n\t\t\t\t\tspec.format = isBE ? PA_SAMPLE_S16BE : PA_SAMPLE_S16LE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 24:\n\t\t\t\t\tif (convertSignedUnsigned)\n\t\t\t\t\t\t*convertSignedUnsigned = !isSigned;\n\t\t\t\t\t\n\t\t\t\t\tif (asbd.mFormatFlags & kAudioFormatFlagIsPacked)\n\t\t\t\t\t\tspec.format = isBE ? PA_SAMPLE_S24BE : PA_SAMPLE_S24LE;\n\t\t\t\t\telse\n\t\t\t\t\t\tspec.format = isBE ? PA_SAMPLE_S24_32BE : PA_SAMPLE_S24_32LE;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 32:\n\t\t\t\t\tif (convertSignedUnsigned)\n\t\t\t\t\t\t*convertSignedUnsigned = !isSigned;\n\t\t\t\t\t\n\t\t\t\t\tspec.format = isBE ? PA_SAMPLE_S32BE : PA_SAMPLE_S32LE;\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn spec;\n}\n\nbool AudioHardwareImplPA::validateFormat(const AudioStreamBasicDescription* asbd) const\n{\n\tpa_sample_spec spec = paSampleSpecForASBD(*asbd);\n\treturn pa_sample_spec_valid(&spec);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareImplPA.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUDIOHARDWAREIMPLPA_H\n#define AUDIOHARDWAREIMPLPA_H\n#include \"../AudioHardwareImpl.h\"\n#include \"PADispatchMainLoop.h\"\n#include <memory>\n\nclass PADispatchMainLoop;\n\nclass AudioHardwareImplPA : public AudioHardwareImpl\n{\npublic:\n\tAudioHardwareImplPA(AudioObjectID myId, const char* paRole = nullptr);\n\t~AudioHardwareImplPA();\n\n\tOSStatus getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* ioDataSize, void* outData) override;\n\t\n\tOSStatus setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32 inDataSize, const void* inData) override;\n\t\n\tvoid getPAContext(void (^cb)(pa_context*));\n\tstatic pa_sample_spec paSampleSpecForASBD(const AudioStreamBasicDescription& asbd, bool* convertSignedUnsigned = nullptr);\nprotected:\n\tAudioHardwareStream* createStream(AudioDeviceIOProc callback, void* clientData) override;\n\tbool validateFormat(const AudioStreamBasicDescription* asbd) const override;\nprivate:\n\tpa_context* m_context = nullptr;\n\tstd::unique_ptr<PADispatchMainLoop> m_loop;\n\tconst char* m_paRole;\n};\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareImplPAInput.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioHardwareImplPAInput.h\"\n#include \"AudioHardwareStreamPAInput.h\"\n\nAudioHardwareImplPAInput::AudioHardwareImplPAInput(AudioObjectID myId)\n: AudioHardwareImplPA(myId)\n{\n\tm_uid = CFSTR(\"PulseAudio:Input\");\n}\n\nOSStatus AudioHardwareImplPAInput::getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\tconst void* inQualifierData, UInt32* ioDataSize, void* outData)\n{\n\tif (inAddress->mSelector == kAudioDevicePropertyStreamConfiguration)\n\t{\n\t\tsize_t size = sizeof(AudioBufferList);\n\n\t\tif (inAddress->mScope == kAudioDevicePropertyScopeOutput)\n\t\t\tsize += 1* sizeof(AudioBuffer);\n\n\t\t// Number of returned buffers is the number of channels\n\t\tif (AudioBufferList* abl = static_cast<AudioBufferList*>(outData); abl && *ioDataSize >= size)\n\t\t{\n\t\t\tif (inAddress->mScope == kAudioDevicePropertyScopeOutput)\n\t\t\t{\n\t\t\t\tabl->mNumberBuffers = 1;\n\t\t\t\tabl->mBuffers[0].mNumberChannels = 2;\n\n\t\t\t\t// TODO: Is the below stuff ever used? How?\n\t\t\t\tabl->mBuffers[0].mData = nullptr;\n\t\t\t\tabl->mBuffers[0].mDataByteSize = 0;\n\t\t\t}\n\t\t\telse\n\t\t\t\tabl->mNumberBuffers = 0;\n\t\t}\n\n\t\t*ioDataSize = size;\n\t\treturn kAudioHardwareNoError;\n\t}\n\n\treturn AudioHardwareImplPA::getPropertyData(inAddress, inQualifierDataSize, inQualifierData, ioDataSize, outData);\n}\n\nOSStatus AudioHardwareImplPAInput::setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\tconst void* inQualifierData, UInt32 inDataSize, const void* inData)\n{\n\treturn AudioHardwareImplPA::setPropertyData(inAddress, inQualifierDataSize, inQualifierData, inDataSize, inData);\n}\n\nAudioHardwareStream* AudioHardwareImplPAInput::createStream(AudioDeviceIOProc callback, void* clientData)\n{\n\treturn new AudioHardwareStreamPAInput(this, callback, clientData);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareImplPAInput.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUDIOHARDWAREIMPLPAINPUT_H\n#define AUDIOHARDWAREIMPLPAINPUT_H\n#include \"AudioHardwareImplPA.h\"\n\nclass AudioHardwareImplPAInput : public AudioHardwareImplPA\n{\npublic:\n\tAudioHardwareImplPAInput(AudioObjectID myId);\n\n\tOSStatus getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* ioDataSize, void* outData) override;\n\t\n\tOSStatus setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32 inDataSize, const void* inData) override;\nprotected:\n\tAudioHardwareStream* createStream(AudioDeviceIOProc callback, void* clientData) override;\n};\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareImplPAOutput.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioHardwareImplPAOutput.h\"\n#include \"AudioHardwareStreamPAOutput.h\"\n\nAudioHardwareImplPAOutput::AudioHardwareImplPAOutput(AudioObjectID myId, const char* paRole)\n: AudioHardwareImplPA(myId, paRole)\n{\n\tm_uid = CFSTR(\"PulseAudio:Output\");\n}\n\nOSStatus AudioHardwareImplPAOutput::getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\tconst void* inQualifierData, UInt32* ioDataSize, void* outData)\n{\n\tif (inAddress->mSelector == kAudioDevicePropertyStreamConfiguration)\n\t{\n\t\tsize_t size = sizeof(AudioBufferList);\n\n\t\tif (inAddress->mScope == kAudioDevicePropertyScopeOutput)\n\t\t\tsize += 1* sizeof(AudioBuffer);\n\n\t\t// Number of returned buffers is the number of channels\n\t\tif (AudioBufferList* abl = static_cast<AudioBufferList*>(outData); abl && *ioDataSize >= size)\n\t\t{\n\t\t\tif (inAddress->mScope == kAudioDevicePropertyScopeOutput)\n\t\t\t{\n\t\t\t\tabl->mNumberBuffers = 1;\n\t\t\t\tabl->mBuffers[0].mNumberChannels = 2;\n\n\t\t\t\t// TODO: Is the below stuff ever used? How?\n\t\t\t\tabl->mBuffers[0].mData = nullptr;\n\t\t\t\tabl->mBuffers[0].mDataByteSize = 0;\n\t\t\t}\n\t\t\telse\n\t\t\t\tabl->mNumberBuffers = 0;\n\t\t}\n\n\t\t*ioDataSize = size;\n\t\treturn kAudioHardwareNoError;\n\t}\n\n\treturn AudioHardwareImplPA::getPropertyData(inAddress, inQualifierDataSize, inQualifierData, ioDataSize, outData);\n}\n\nOSStatus AudioHardwareImplPAOutput::setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\tconst void* inQualifierData, UInt32 inDataSize, const void* inData)\n{\n\treturn AudioHardwareImplPA::setPropertyData(inAddress, inQualifierDataSize, inQualifierData, inDataSize, inData);\n}\n\nAudioHardwareStream* AudioHardwareImplPAOutput::createStream(AudioDeviceIOProc callback, void* clientData)\n{\n\treturn new AudioHardwareStreamPAOutput(this, callback, clientData);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareImplPAOutput.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUDIOHARDWAREIMPLPAOUTPUT_H\n#define AUDIOHARDWAREIMPLPAOUTPUT_H\n#include \"AudioHardwareImplPA.h\"\n\nclass AudioHardwareImplPAOutput : public AudioHardwareImplPA\n{\npublic:\n\tAudioHardwareImplPAOutput(AudioObjectID myId, const char* paRole = nullptr);\n\n\tOSStatus getPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* ioDataSize, void* outData) override;\n\t\n\tOSStatus setPropertyData(const AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32 inDataSize, const void* inData) override;\nprotected:\n\tAudioHardwareStream* createStream(AudioDeviceIOProc callback, void* clientData) override;\n};\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareStreamPA.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioHardwareStreamPA.h\"\n#include \"AudioHardwareImplPA.h\"\n#include <iostream>\n#include <type_traits>\n#include <limits>\n\nAudioHardwareStreamPA::AudioHardwareStreamPA(AudioHardwareImplPA* hw, AudioDeviceIOProc callback, void* clientData)\n: AudioHardwareStream(hw, false), m_callback(callback), m_clientData(clientData)\n{\n\thw->getPAContext(^(pa_context* context) {\n\t\tif (!context)\n\t\t{\n\t\t\tstd::cerr << \"Failed to get PulseAudio context\\n\";\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tpa_sample_spec spec = AudioHardwareImplPA::paSampleSpecForASBD(hw->asbd(), &m_convertSignedUnsigned);\n\t\t\n\t\tif (!pa_sample_spec_valid(&spec))\n\t\t{\n\t\t\tstd::cerr << \"Failed to create a valid pa_sample_spec\\n\";\n\t\t\treturn;\n\t\t}\n\n\t\tm_stream = pa_stream_new(context, \"CoreAudio\", &spec, nullptr);\n\n\t\t//pa_stream_set_state_callback(m_stream, [](pa_stream *s, void *userdata) {\n\t\t\t//std::cout << \"Stream state: \" << pa_stream_get_state(s) << std::endl;\n\t\t\t/*if (pa_stream_get_state(s) == 2)\n\t\t\t\tpa_stream_trigger(s, [](pa_stream *s, int success, void *userdata){}, nullptr);*/\n\t\t//}, this);\n\t\t\n\t\t//pa_stream_set_underflow_callback(m_stream, [](pa_stream *s, void *userdata) {\n\t\t//\tstd::cerr << \"Underflow!\\n\";\n\t\t//}, nullptr);\n\n\t\tstart();\n\t});\n}\n\nAudioHardwareStreamPA::~AudioHardwareStreamPA()\n{\n\tif (m_stream)\n\t\tpa_stream_unref(m_stream);\n}\n\nvoid AudioHardwareStreamPA::start()\n{\n\tm_running = true;\n}\n\nvoid AudioHardwareStreamPA::stop()\n{\n\tstd::unique_lock<std::mutex> l(m_stopMutex);\n\tpa_stream_disconnect(m_stream);\n\tm_running = false;\n}\n\n// This function seems to only convert unsigned to signed, but it works both ways in practice\ntemplate <typename T>\nvoid transform(typename std::make_unsigned<T>::type* data)\n{\n\ttypedef typename std::make_signed<T>::type signed_type;\n\tsigned_type* s = reinterpret_cast<signed_type*>(data);\n\n\t*s = *data + std::numeric_limits<signed_type>::min();\n}\n\nvoid AudioHardwareStreamPA::transformSignedUnsigned(AudioBufferList* abl) const\n{\n\tconst AudioStreamBasicDescription& asbd = m_hw->asbd();\n\tconst bool revEndian = (asbd.mFormatFlags & kAudioFormatFlagIsBigEndian) != (asbd.mFormatFlags & kAudioFormatFlagsNativeEndian);\n\n\tfor (int i = 0; i < abl->mNumberBuffers; i++)\n\t{\n\t\tAudioBuffer* buf = &abl->mBuffers[i];\n\n\t\tswitch (asbd.mBitsPerChannel)\n\t\t{\n\t\t\tcase 8:\n\t\t\t\tfor (int j = 0; j < buf->mDataByteSize; j++)\n\t\t\t\t\ttransform<uint8_t>(reinterpret_cast<uint8_t*>(buf->mData) + j);\n\t\t\t\tbreak;\n\t\t\tcase 16:\n\t\t\t\tif (!revEndian)\n\t\t\t\t{\n\t\t\t\t\tfor (int j = 0; j < buf->mDataByteSize / sizeof(uint16_t); j++)\n\t\t\t\t\t\ttransform<uint16_t>(reinterpret_cast<uint16_t*>(buf->mData) + j);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tfor (int j = 0; j < buf->mDataByteSize / sizeof(uint16_t); j++)\n\t\t\t\t\t{\n\t\t\t\t\t\tuint16_t v = __builtin_bswap16(*(reinterpret_cast<uint16_t*>(buf->mData) + j));\n\t\t\t\t\t\ttransform<uint16_t>(&v);\n\t\t\t\t\t\t*(reinterpret_cast<uint16_t*>(buf->mData) + j) = __builtin_bswap16(v);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 24:\n\t\t\t\tfor (int j = 0; j < buf->mDataByteSize / sizeof(uint32_t); j++)\n\t\t\t\t{\n\t\t\t\t\tuint32_t v = *(reinterpret_cast<uint32_t*>(buf->mData) + j);\n\t\t\t\t\tif (revEndian)\n\t\t\t\t\t\tv = __builtin_bswap32(v);\n\t\t\t\t\t\n\t\t\t\t\t// sign extend\n\t\t\t\t\tif (v & 0x800000)\n\t\t\t\t\t\tv |= 0xff000000;\n\n\t\t\t\t\ttransform<uint32_t>(&v);\n\t\t\t\t\t\n\t\t\t\t\tv &= 0xffffff;\n\t\t\t\t\tif (revEndian)\n\t\t\t\t\t\tv = __builtin_bswap32(v);\n\t\t\t\t\t\n\t\t\t\t\t*(reinterpret_cast<uint32_t*>(buf->mData) + j) = v;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 32:\n\t\t\t\tif (!revEndian)\n\t\t\t\t{\n\t\t\t\t\tfor (int j = 0; j < buf->mDataByteSize / sizeof(uint32_t); j++)\n\t\t\t\t\t\ttransform<uint32_t>(reinterpret_cast<uint32_t*>(buf->mData) + j);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tfor (int j = 0; j < buf->mDataByteSize / sizeof(uint32_t); j++)\n\t\t\t\t\t{\n\t\t\t\t\t\tuint32_t v = __builtin_bswap32(*(reinterpret_cast<uint32_t*>(buf->mData) + j));\n\t\t\t\t\t\ttransform<uint32_t>(&v);\n\t\t\t\t\t\t*(reinterpret_cast<uint32_t*>(buf->mData) + j) = __builtin_bswap32(v);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareStreamPA.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUDIOHARDWARESTREAMPA_H\n#define AUDIOHARDWARESTREAMPA_H\n#include \"../AudioHardwareStream.h\"\n#include <pulse/pulseaudio.h>\n#include <CoreAudio/CoreAudioTypes.h>\n#include <CoreAudio/AudioHardware.h>\n#include \"AudioHardwareImplPA.h\"\n#include <condition_variable>\n\nclass AudioHardwareStreamPA : public AudioHardwareStream\n{\npublic:\n\tAudioHardwareStreamPA(AudioHardwareImplPA* hw, AudioDeviceIOProc callback, void* clientData);\n\t~AudioHardwareStreamPA();\n\n\tvoid stop(/*void(^cbDone)()*/) override;\nprotected:\n\tvirtual void start();\n\tvoid transformSignedUnsigned(AudioBufferList* abl) const;\nprotected:\n\tAudioDeviceIOProc m_callback;\n\tvoid* m_clientData;\n\tpa_stream* m_stream;\n\tvoid(^m_cbDone)();\n\tbool m_convertSignedUnsigned = false;\n\n\tbool m_running = false;\n\tstd::mutex m_stopMutex;\n};\n\n#endif /* AUDIOHARDWARESTREAMPA_H */\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareStreamPAInput.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioHardwareStreamPAInput.h\"\n#include \"AudioHardwareImplPA.h\"\n#include <iostream>\n#include <vector>\n\nAudioHardwareStreamPAInput::AudioHardwareStreamPAInput(AudioHardwareImplPA* hw, AudioDeviceIOProc callback, void* clientData)\n: AudioHardwareStreamPA(hw, callback, clientData)\n{\n\t// m_dump.open(\"/tmp/dump.raw\", std::ios_base::out | std::ios_base::binary);\n}\n\nvoid AudioHardwareStreamPAInput::paStreamReadCB(pa_stream* s, size_t length, void* self)\n{\n\tAudioHardwareStreamPAInput* This = static_cast<AudioHardwareStreamPAInput*>(self);\n\n\tstd::unique_lock<std::mutex> l(This->m_stopMutex);\n\n\tif (!This->m_running)\n\t\treturn;\n\n\tAudioTimeStamp fake = {0};\n\tAudioBufferList* abl = static_cast<AudioBufferList*>(alloca(sizeof(AudioBufferList) + sizeof(AudioBuffer)));\n\tstd::vector<uint8_t> hole;\n\n\t// std::cout << \"AudioHardwareStreamPAInput::paStreamReadCB()\\n\";\n\n\twhile (true)\n\t{\n\t\tabl->mNumberBuffers = 1;\n\t\tabl->mBuffers[0].mNumberChannels = 2;\n\n\t\tsize_t nbytes;\n\n\t\tint rv = pa_stream_peek(This->m_stream, (const void**) &abl->mBuffers[0].mData, &nbytes);\n\n\t\tif (rv < 0 || !nbytes)\n\t\t{\n\t\t\t// std::cout << \"AudioHardwareStreamPAInput::paStreamReadCB(): peek rv=\" << rv << \", nbytes=\" << nbytes << std::endl;\n\t\t\tbreak;\n\t\t}\n\n\t\tif (nbytes && !abl->mBuffers[0].mData)\n\t\t{\n\t\t\t// \"If there is a hole, data will be NULL and nbytes will contain the length of the hole.\"\n\t\t\thole.resize(nbytes);\n\t\t\tabl->mBuffers[0].mData = hole.data();\n\t\t}\n\t\tabl->mBuffers[0].mDataByteSize = nbytes;\n\n\t\t// This->m_dump.write((char*) abl->mBuffers[0].mData, nbytes);\n\t\t// This->m_dump.flush();\n\t\tif (This->m_convertSignedUnsigned)\n\t\t\tThis->transformSignedUnsigned(abl);\n\n\t\t// std::cout << \"AudioHardwareStreamPAInput::paStreamReadCB(): bytes=\" << nbytes << std::endl;\n\t\tOSStatus status = This->m_callback(This->m_hw->id(), &fake, abl, &fake, nullptr, nullptr, This->m_clientData);\n\n\t\tpa_stream_drop(This->m_stream);\n\n\t\tif (status != noErr)\n\t\t{\n\t\t\tpa_stream_cork(This->m_stream, true, [](pa_stream*, int, void*) {}, nullptr);\n\t\t\tbreak;\n\t\t}\n\t}\n}\n\nvoid AudioHardwareStreamPAInput::start()\n{\n\tstruct pa_buffer_attr battr;\n\n\tbattr.fragsize = uint32_t(-1);\n\tbattr.maxlength = uint32_t(m_bufferSize);\n\tbattr.minreq = uint32_t(-1);\n\tbattr.prebuf = battr.maxlength;\n\tbattr.tlength = uint32_t(-1);\n\n\t// std::cout << \"AudioHardwareStreamPAInput::start()\\n\";\n\n\tpa_stream_set_read_callback(m_stream, paStreamReadCB, this);\n\n\tint rv = pa_stream_connect_record(m_stream, nullptr, &battr,\n\t\tpa_stream_flags_t(PA_STREAM_INTERPOLATE_TIMING | PA_STREAM_ADJUST_LATENCY | PA_STREAM_AUTO_TIMING_UPDATE)\n\t);\n\n\t// std::cout << \"AudioHardwareStreamPAInput::start() rv = \" << rv << std::endl;\n\tAudioHardwareStreamPA::start();\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareStreamPAInput.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUDIOHARDWARESTREAMPAINPUT_H\n#define AUDIOHARDWARESTREAMPAINPUT_H\n#include \"AudioHardwareStreamPA.h\"\n#include <fstream>\n\nclass AudioHardwareStreamPAInput : public AudioHardwareStreamPA\n{\npublic:\n\tAudioHardwareStreamPAInput(AudioHardwareImplPA* hw, AudioDeviceIOProc callback, void* clientData);\nprivate:\n\tvoid start() override;\n\tstatic void paStreamReadCB(pa_stream* s, size_t length, void* self);\n\n\t// std::ofstream m_dump;\n};\n\n#endif /* AUDIOHARDWARESTREAMPA_H */\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareStreamPAOutput.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AudioHardwareStreamPAOutput.h\"\n#include \"AudioHardwareImplPA.h\"\n#include <iostream>\n#include <algorithm>\n\nAudioHardwareStreamPAOutput::AudioHardwareStreamPAOutput(AudioHardwareImplPA* hw, AudioDeviceIOProc callback, void* clientData)\n: AudioHardwareStreamPA(hw, callback, clientData)\n{\n}\n\nvoid AudioHardwareStreamPAOutput::paStreamWriteCB(pa_stream* s, size_t length, void* self)\n{\n\tAudioHardwareStreamPAOutput* This = static_cast<AudioHardwareStreamPAOutput*>(self);\n\tstd::unique_lock<std::mutex> l(This->m_stopMutex);\n\n\tif (!This->m_running)\n\t{\n\t\tpa_stream_cork(This->m_stream, true, [](pa_stream*, int, void*) {}, nullptr);\n\t\treturn;\n\t}\n\n\t// std::cout << \"AudioHardwareStreamPAOutput::paStreamWriteCB()\\n\";\n\n\tAudioTimeStamp fake = {0};\n\tAudioBufferList* abl = static_cast<AudioBufferList*>(alloca(sizeof(AudioBufferList) + sizeof(AudioBuffer)));\n\n\tsize_t done = 0;\n\n\twhile (done < length && This->m_running)\n\t{\n\t\t// Non-interleaved (planar) audio would have multiple buffers, but PA doesn't even support that AFAIK\n\t\tabl->mNumberBuffers = 1;\n\n\t\tabl->mBuffers[0].mNumberChannels = 2;\n\t\t// abl->mBuffers[0].mData = This->m_buffer;\n\n\t\t// std::cout << \"AudioHardwareStreamPAOutput() length req=\" << length << \", done=\" << done << std::endl;\n\t\tsize_t rqsize = std::min<UInt32>(This->m_bufferSize, length-done);\n\t\tpa_stream_begin_write(This->m_stream, (void**) &abl->mBuffers[0].mData, &rqsize);\n\n\t\tabl->mBuffers[0].mDataByteSize = rqsize;\n\n\t\t// Call the client for more data\n\t\tOSStatus status = This->m_callback(This->m_hw->id(), &fake, nullptr, nullptr, abl, &fake, This->m_clientData);\n\t\tif (status != noErr || !abl->mBuffers[0].mDataByteSize)\n\t\t{\n\t\t\t// std::cerr << \"AudioDeviceIOProc returned \" << status << \", corking...\\n\";\n\n\t\t\tpa_stream_cork(This->m_stream, true, [](pa_stream*, int, void*) {}, nullptr);\n\t\t\tbreak;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (This->m_convertSignedUnsigned)\n\t\t\t\tThis->transformSignedUnsigned(abl);\n\t\t\t\t\n\t\t\t// std::cout << \"AudioHardwareStreamPAOutput::paStreamWriteCB(): got \" << abl->mBuffers[0].mDataByteSize << \" bytes\\n\";\n\t\t\tint rv = pa_stream_write(This->m_stream, abl->mBuffers[0].mData, abl->mBuffers[0].mDataByteSize, nullptr, 0, PA_SEEK_RELATIVE);\n\t\t\tif (rv != 0)\n\t\t\t{\n\t\t\t\t// std::cerr << \"pa_stream_write() failed\\n\";\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t//else\n\t\t\t//\tstd::cout << \"pa_stream_write() OK\\n\";\n\t\t}\n\n\t\tdone += abl->mBuffers[0].mDataByteSize;\n\t}\n}\n\nvoid AudioHardwareStreamPAOutput::start()\n{\n\tstruct pa_buffer_attr battr;\n\n\tbattr.fragsize = uint32_t(-1);\n\tbattr.maxlength = uint32_t(m_bufferSize);\n\tbattr.minreq = uint32_t(-1);\n\tbattr.prebuf = battr.maxlength;\n\tbattr.tlength = uint32_t(-1);\n\n\tpa_stream_set_write_callback(m_stream, paStreamWriteCB, this);\n\n\tpa_stream_connect_playback(m_stream, nullptr, &battr, pa_stream_flags_t(PA_STREAM_INTERPOLATE_TIMING\n                                 |PA_STREAM_ADJUST_LATENCY\n                                 |PA_STREAM_AUTO_TIMING_UPDATE) /* PA_STREAM_START_CORKED */,\n\t\t\tnullptr, nullptr);\n\n\t// pa_stream_cork(m_stream, false, [](pa_stream*, int, void*) {}, nullptr);\n\tAudioHardwareStreamPA::start();\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/AudioHardwareStreamPAOutput.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUDIOHARDWARESTREAMPAOUTPUT_H\n#define AUDIOHARDWARESTREAMPAOUTPUT_H\n#include \"AudioHardwareStreamPA.h\"\n\nclass AudioHardwareStreamPAOutput : public AudioHardwareStreamPA\n{\npublic:\n\tAudioHardwareStreamPAOutput(AudioHardwareImplPA* hw, AudioDeviceIOProc callback, void* clientData);\nprivate:\n\tvoid start() override;\n\tstatic void paStreamWriteCB(pa_stream* s, size_t length, void* self);\n};\n\n#endif /* AUDIOHARDWARESTREAMPA_H */\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/PADispatchMainLoop.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include \"PADispatchMainLoop.h\"\n#include <iostream>\n\nPADispatchMainLoop::PADispatchMainLoop()\n{\n\t// Create GCD queue\n\tm_queue = dispatch_queue_create(\"org.darlinghq.coreaudio.pulseaudio\", nullptr);\n\n\t// PulseAudio expects the event loop to be suspended while we're creating the context.\n\t// I couldn't find any mention of this in the documentation, but figured it out the hard way.\n\tdispatch_suspend(m_queue);\n}\n\nPADispatchMainLoop::~PADispatchMainLoop()\n{\n\tresume();\n\tdispatch_release(m_queue);\n}\n\nvoid PADispatchMainLoop::suspend()\n{\n\tif (!m_suspended)\n\t{\n\t\tdispatch_suspend(m_queue);\n\t\tm_suspended = true;\n\t}\n}\n\nvoid PADispatchMainLoop::resume()\n{\n\tif (m_suspended)\n\t{\n\t\tdispatch_resume(m_queue);\n\t\tm_suspended = false;\n\t}\n}\n\npa_mainloop_api* PADispatchMainLoop::getAPI()\n{\n\tif (!m_api.userdata)\n\t{\n\t\tm_api.io_new = io_new;\n\t\tm_api.io_enable = io_enable;\n\t\tm_api.io_free = io_free;\n\t\tm_api.io_set_destroy = io_set_destroy;\n\n\t\tm_api.time_new = time_new;\n\t\tm_api.time_restart = time_restart;\n\t\tm_api.time_set_destroy = time_set_destroy;\n\t\tm_api.time_free = time_free;\n\n\t\tm_api.defer_new = defer_new;\n\t\tm_api.defer_set_destroy = defer_set_destroy;\n\t\tm_api.defer_enable = defer_enable;\n\t\tm_api.defer_free = defer_free;\n\n\t\tm_api.userdata = this;\n\t}\n\n\treturn &m_api;\n}\n\nstruct dual_source\n{\n\tdispatch_source_t sourceRead, sourceWrite;\n\tbool readResumed, writeResumed;\n\tpa_io_event_cb_t callback;\n\tpa_io_event_destroy_cb_t destroy = nullptr;\n\tpa_io_event_flags_t events;\n\tvoid* userdata;\n\tint fd;\n};\n\npa_io_event* PADispatchMainLoop::io_new(pa_mainloop_api *a, int fd, pa_io_event_flags_t events, pa_io_event_cb_t cb, void *userdata)\n{\n\tPADispatchMainLoop* This = static_cast<PADispatchMainLoop*>(a->userdata);\n\tdispatch_queue_t q = This->m_queue;\n\n\tdual_source* dual = new dual_source;\n\n\tbool read = events & (PA_IO_EVENT_INPUT | PA_IO_EVENT_ERROR | PA_IO_EVENT_HANGUP);\n\tbool write = events & (PA_IO_EVENT_OUTPUT);\n\t// std::cout << \"PADispatchMainLoop::io_new(): fd=\" << fd << \", read=\" << read << \", write=\" << write << std::endl;\n\n\tdual->callback = cb;\n\tdual->fd = fd;\n\tdual->events = events;\n\tdual->userdata = userdata;\n\tdual->sourceRead = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, fd, 0, q);\n\tdual->sourceWrite = dispatch_source_create(DISPATCH_SOURCE_TYPE_WRITE, fd, 0, q);\n\n\tdispatch_source_set_event_handler(dual->sourceRead, ^{\n\t\tdual->callback(This->getAPI(), reinterpret_cast<pa_io_event*>(dual), fd, PA_IO_EVENT_INPUT, dual->userdata);\n\t});\n\n\tdispatch_source_set_event_handler(dual->sourceWrite, ^{\n\t\t// std::cout << \"PADispatchMainLoop::io_new(): write event on fd \" << fd << std::endl;\n\t\tdual->callback(This->getAPI(), reinterpret_cast<pa_io_event*>(dual), fd, PA_IO_EVENT_OUTPUT, dual->userdata);\n\t});\n\n\tdispatch_source_set_cancel_handler(dual->sourceWrite, ^{\n\t\tif (dual->destroy)\n\t\t{\n\t\t\tdual->destroy(This->getAPI(), reinterpret_cast<pa_io_event*>(dual), dual->userdata);\n\t\t\tdual->destroy = nullptr;\n\t\t}\n\t\tdelete dual;\n\t});\n\n\tif (events & (PA_IO_EVENT_INPUT | PA_IO_EVENT_ERROR | PA_IO_EVENT_HANGUP))\n\t{\n\t\tdispatch_resume(dual->sourceRead);\n\t\tdual->readResumed = true;\n\t}\n\telse\n\t\tdual->readResumed = false;\n\n\tif (events & (PA_IO_EVENT_OUTPUT))\n\t{\n\t\tdispatch_resume(dual->sourceWrite);\n\t\tdual->writeResumed = true;\n\t}\n\telse\n\t\tdual->writeResumed = false;\n\t\n\treturn reinterpret_cast<pa_io_event*>(dual);\n}\n\nvoid PADispatchMainLoop::io_enable(pa_io_event *e, pa_io_event_flags_t events)\n{\n\tdual_source* dual = reinterpret_cast<dual_source*>(e);\n\n\tif (events & (PA_IO_EVENT_INPUT | PA_IO_EVENT_ERROR | PA_IO_EVENT_HANGUP))\n\t{\n\t\tif (!dual->readResumed)\n\t\t{\n\t\t\t// std::cout << \"PADispatchMainLoop::io_enable(): disable read fd=\" << dual->fd << std::endl;\n\t\t\tdispatch_resume(dual->sourceRead);\n\t\t\tdual->readResumed = true;\n\t\t}\n\t}\n\telse if (dual->readResumed)\n\t{\n\t\t// std::cout << \"PADispatchMainLoop::io_enable(): disable read fd=\" << dual->fd << std::endl;\n\t\tdispatch_suspend(dual->sourceRead);\n\t\tdual->readResumed = false;\n\t}\n\n\tif (events & (PA_IO_EVENT_OUTPUT))\n\t{\n\t\tif (!dual->writeResumed)\n\t\t{\n\t\t\t// std::cout << \"PADispatchMainLoop::io_enable(): enable write fd=\" << dual->fd << std::endl;\n\t\t\tdispatch_resume(dual->sourceWrite);\n\t\t\tdual->writeResumed = true;\n\t\t}\n\t}\n\telse if (dual->writeResumed)\n\t{\n\t\t// std::cout << \"PADispatchMainLoop::io_enable(): disable write fd=\" << dual->fd << std::endl;\n\t\tdispatch_suspend(dual->sourceWrite);\n\t\tdual->writeResumed = false;\n\t}\n}\n\nvoid PADispatchMainLoop::io_free(pa_io_event *e)\n{\n\tdual_source* dual = reinterpret_cast<dual_source*>(e);\n\t// std::cout << \"PADispatchMainLoop::io_free(): fd=\" << dual->fd << std::endl;\n\n\tif (!dual->readResumed)\n\t\tdispatch_resume(dual->sourceRead);\n\tdispatch_source_cancel(dual->sourceRead);\n\tdispatch_release(dual->sourceRead);\n\n\tif (!dual->writeResumed)\n\t\tdispatch_resume(dual->sourceWrite);\n\tdispatch_source_cancel(dual->sourceWrite);\n\tdispatch_release(dual->sourceWrite);\n\n\t// dual is freed in the cancel handler\n}\n\nvoid PADispatchMainLoop::io_set_destroy(pa_io_event *e, pa_io_event_destroy_cb_t cb)\n{\n\tdual_source* dual = reinterpret_cast<dual_source*>(e);\n\tdual->destroy = cb;\n}\n\nstruct linux_timeval\n{\n\tunsigned long tv_sec;\n\tlong tv_usec;\n};\n\nstruct pa_timer\n{\n\tdispatch_source_t source;\n\tvoid* userdata;\n\tstruct timespec when;\n\tstruct linux_timeval tv;\n\tpa_time_event_destroy_cb_t destroy = nullptr;\n};\n\npa_time_event *PADispatchMainLoop::time_new(pa_mainloop_api *a, const struct timeval *tv, pa_time_event_cb_t cb, void *userdata)\n{\n\tconst linux_timeval* real_tv = reinterpret_cast<const linux_timeval*>(tv);\n\tPADispatchMainLoop* This = static_cast<PADispatchMainLoop*>(a->userdata);\n\tdispatch_queue_t q = This->m_queue;\n\n\tpa_timer* timer = new pa_timer;\n\n\ttimer->userdata = userdata;\n\n\ttimer->source = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, q);\n\n\ttimer->when.tv_sec = real_tv->tv_sec;\n\ttimer->when.tv_nsec = real_tv->tv_usec * 1000; // convert to ns\n\ttimer->tv = *real_tv;\n\n\t// std::cout << \"PADispatchMainLoop::time_new(), sec=\" << real_tv->tv_sec << \", usec=\" << real_tv->tv_usec << std::endl;\n\n\tdispatch_source_set_timer(timer->source, dispatch_walltime(&timer->when, 0), 0, 0);\n\n\tdispatch_source_set_event_handler(timer->source, ^{\n\t\t// std::cout << \"PADispatchMainLoop::time_new(): fired\\n\";\n\t\tcb(This->getAPI(), reinterpret_cast<pa_time_event*>(timer), reinterpret_cast<const struct timeval *>(&timer->tv), timer->userdata);\n\t});\n\tdispatch_source_set_cancel_handler(timer->source, ^{\n\t\tif (timer->destroy)\n\t\t\ttimer->destroy(This->getAPI(), reinterpret_cast<pa_time_event*>(timer), timer->userdata);\n\t\tdelete timer;\n\t});\n\n\tdispatch_resume(timer->source);\n\n\treturn reinterpret_cast<pa_time_event*>(timer);\n}\n\nvoid PADispatchMainLoop::time_restart(pa_time_event *e, const struct timeval *tv)\n{\n\tconst linux_timeval* real_tv = reinterpret_cast<const linux_timeval*>(tv);\n\tpa_timer* timer = reinterpret_cast<pa_timer*>(e);\n\n\ttimer->when.tv_sec = real_tv->tv_sec;\n\ttimer->when.tv_nsec = real_tv->tv_usec * 1000; // convert to ns\n\ttimer->tv = *real_tv;\n\n\t// std::cout << \"PADispatchMainLoop::time_restart(), sec=\" << real_tv->tv_sec << \", usec=\" << real_tv->tv_usec << std::endl;\n\n\tdispatch_source_set_timer(timer->source, dispatch_walltime(&timer->when, 0), 0, 0);\n}\n\nvoid PADispatchMainLoop::time_set_destroy(pa_time_event *e, pa_time_event_destroy_cb_t cb)\n{\n\tpa_timer* timer = reinterpret_cast<pa_timer*>(e);\n\n\ttimer->destroy = cb;\n}\n\nvoid PADispatchMainLoop::time_free(pa_time_event *e)\n{\n\tpa_timer* timer = reinterpret_cast<pa_timer*>(e);\n\n\t// std::cout << \"PADispatchMainLoop::time_free()\\n\";\n\n\tdispatch_source_cancel(timer->source);\n\tdispatch_release(timer->source);\n}\n\nstruct defer_event\n{\n\tbool active = true;\n\tvoid* userdata;\n\tpa_defer_event_cb_t callback;\n\tpa_defer_event_destroy_cb_t destroy = nullptr;\n\tPADispatchMainLoop* loop;\n};\n\nvoid PADispatchMainLoop::defer_event_fire(void* context)\n{\n\tdefer_event* ev = static_cast<defer_event*>(context);\n\tif (ev->active)\n\t{\n\t\tpa_mainloop_api* a = ev->loop->getAPI();\n\t\tdispatch_queue_t q = static_cast<PADispatchMainLoop*>(a->userdata)->m_queue;\n\n\t\t// std::cout << \"PADispatchMainLoop::defer_event_fire(): with userdata=\" << ev->userdata << std::endl;\n\n\t\tev->callback(a, static_cast<pa_defer_event*>(context), ev->userdata);\n\n\t\tif (ev->active)\n\t\t\tdispatch_async_f(q, context, defer_event_fire);\n\t}\n}\n\npa_defer_event *PADispatchMainLoop::defer_new(pa_mainloop_api *a, pa_defer_event_cb_t cb, void *userdata)\n{\n\t// std::cout << \"PADispatchMainLoop::defer_new(): with userdata=\" << userdata << std::endl;\n\tPADispatchMainLoop* This = static_cast<PADispatchMainLoop*>(a->userdata);\n\tdispatch_queue_t q = This->m_queue;\n\tdefer_event* e = new defer_event;\n\n\te->loop = This;\n\te->userdata = userdata;\n\te->callback = cb;\n\n\tdispatch_async_f(q, e, defer_event_fire);\n\n\treturn reinterpret_cast<pa_defer_event*>(e);\n}\n\nvoid PADispatchMainLoop::defer_set_destroy(pa_defer_event *e, pa_defer_event_destroy_cb_t cb)\n{\n\tdefer_event* ev = reinterpret_cast<defer_event*>(e);\n\n\tev->destroy = cb;\n}\n\nvoid PADispatchMainLoop::defer_enable(pa_defer_event *e, int b)\n{\n\tdefer_event* ev = reinterpret_cast<defer_event*>(e);\n\tdispatch_queue_t q = ev->loop->m_queue;\n\n\t// std::cout << \"PADispatchMainLoop::defer_enable(): with userdata=\" << ev->userdata << \", enable=\" << b << std::endl;\n\n\tif (!ev->active && b)\n\t\tdispatch_async_f(q, e, defer_event_fire);\n\tev->active = !!b;\n}\n\nvoid PADispatchMainLoop::defer_free(pa_defer_event *e)\n{\n\tdefer_event* ev = reinterpret_cast<defer_event*>(e);\n\tdispatch_queue_t q = ev->loop->m_queue;\n\n\t// std::cout << \"PADispatchMainLoop::defer_free(): with userdata=\" << ev->userdata << std::endl;\n\n\tev->active = false;\n\n\tdispatch_async(q, ^{\n\t\tif (ev->destroy)\n\t\t\tev->destroy(ev->loop->getAPI(), e, ev->userdata);\n\t\tdelete ev;\n\t});\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/pulse/PADispatchMainLoop.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef PAGCDMAINLOOP_H\n#define PAGCDMAINLOOP_H\n#include <dispatch/dispatch.h>\n#include <pulse/pulseaudio.h>\n\nclass PADispatchMainLoop\n{\npublic:\n\tPADispatchMainLoop();\n\t~PADispatchMainLoop();\n\n\tvoid suspend();\n\tvoid resume();\n\t\n\tpa_mainloop_api* getAPI();\nprivate:\n\tstatic pa_io_event* io_new(pa_mainloop_api *a, int fd, pa_io_event_flags_t events, pa_io_event_cb_t cb, void *userdata);\n\tstatic void io_enable(pa_io_event *e, pa_io_event_flags_t events);\n\tstatic void\tio_free(pa_io_event *e);\n\tstatic void\tio_set_destroy(pa_io_event *e, pa_io_event_destroy_cb_t cb);\n\n\tstatic pa_time_event *time_new(pa_mainloop_api *a, const struct timeval *tv, pa_time_event_cb_t cb, void *userdata);\n\tstatic void\ttime_restart(pa_time_event *e, const struct timeval *tv);\n\tstatic void time_set_destroy(pa_time_event *e, pa_time_event_destroy_cb_t cb);\n\tstatic void\ttime_free(pa_time_event *e);\n\n\tstatic pa_defer_event *defer_new(pa_mainloop_api *a, pa_defer_event_cb_t cb, void *userdata);\n\tstatic void\tdefer_set_destroy(pa_defer_event *e, pa_defer_event_destroy_cb_t cb);\n\tstatic void defer_enable(pa_defer_event *e, int b);\n\tstatic void\tdefer_free(pa_defer_event *e);\n\tstatic void defer_event_fire(void* context);\nprivate:\n\tdispatch_queue_t m_queue;\n\tpa_mainloop_api m_api = {0};\n\tbool m_suspended = true;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudio/stub.h",
    "content": "#ifndef CA_STUB_H\n#define CA_STUB_H\n#include <stdio.h>\n\n#ifndef STUB\n#\tdefine STUB() fprintf(stderr, \"CoreAudio STUB: %s called\\n\", __FUNCTION__)\n#endif\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/AUHAL.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include \"AUHAL.h\"\n#include <iostream>\n\n#pragma GCC visibility push(default)\nAUDIOCOMPONENT_ENTRY(AUOutputBaseFactory, AUHAL);\n#pragma GCC visibility pop\n\nenum {\n\tkOutputBus = 0,\n\tkInputBus\n};\n\nAUHAL::AUHAL(AudioComponentInstance inInstance, bool supportRecording)\n: AUBase(inInstance, 1, supportRecording ? 1 : 0)\n{\n\tUInt32 propSize = sizeof(AudioDeviceID);\n\tAudioHardwareGetProperty(kAudioHardwarePropertyDefaultOutputDevice, &propSize, &m_outputDevice);\n\tAudioHardwareGetProperty(kAudioHardwarePropertyDefaultInputDevice, &propSize, &m_inputDevice);\n}\n\nAUHAL::~AUHAL()\n{\n\tStop();\n}\n\nbool AUHAL::CanScheduleParameters() const\n{\n\treturn true;\n}\n\nbool AUHAL::StreamFormatWritable(AudioUnitScope scope, AudioUnitElement element)\n{\n\treturn !m_running && IsInitialized();\n}\n\nOSStatus AUHAL::Version()\n{\n\treturn 1;\n}\n\n// Provide data from the microphone\nOSStatus AUHAL::Render(AudioUnitRenderActionFlags& ioActionFlags, const AudioTimeStamp& inTimeStamp, UInt32 inNumberFrames)\n{\n\tstd::unique_lock<std::mutex> lk(m_dataAvailableMutex);\n\n\tm_dataAvailableCV.wait(lk, [=]{ return m_dataAvailable; });\n\n\tAudioBufferList& abl = GetOutput(kInputBus)->GetBufferList();\n\n\t// TODO: Prepare for non-interleaved audio\n\tUInt32 howMuch = std::min<UInt32>(abl.mBuffers[0].mDataByteSize, m_bufferUsed);\n\tmemcpy(abl.mBuffers[0].mData, m_buffer.get(), howMuch);\n\tabl.mBuffers[0].mDataByteSize = howMuch;\n\n\treturn noErr;\n}\n\nOSStatus AUHAL::Start()\n{\n\tif (m_running)\n\t\treturn noErr;\n\n\tif (m_enableOutput)\n\t{\n\t\t// std::cout << \"Output is enabled, starting playback\\n\";\n\t\tAudioDeviceCreateIOProcID(m_outputDevice, playbackCallback, this, &m_outputProcID);\n\n\t\t// m_auhalData.open(\"/tmp/auhal.raw\", std::ios_base::binary | std::ios_base::out);\n\n\t\tconst CAStreamBasicDescription& desc = GetStreamFormat(kAudioUnitScope_Input, kOutputBus);\n\t\tAudioDeviceSetProperty(m_outputDevice, nullptr, 0, false, kAudioDevicePropertyStreamFormat, sizeof(AudioStreamBasicDescription), &desc);\n\t\tAudioDeviceStart(m_outputDevice, m_outputProcID);\n\t}\n\tif (m_enableInput)\n\t{\n\t\tAudioDeviceCreateIOProcID(m_inputDevice, recordCallback, this, &m_inputProcID);\n\t\tconst CAStreamBasicDescription& desc = GetStreamFormat(kAudioUnitScope_Output, kInputBus);\n\t\tAudioDeviceSetProperty(m_inputDevice, nullptr, 0, true, kAudioDevicePropertyStreamFormat, sizeof(AudioStreamBasicDescription), &desc);\n\t\tAudioDeviceStart(m_inputDevice, m_inputProcID);\n\t}\n\n\tm_running = m_enableOutput || m_enableInput;\n\treturn noErr;\n}\n\nOSStatus AUHAL::Stop()\n{\n\tif (!m_running)\n\t\treturn noErr;\n\n\tif (m_outputProcID)\n\t{\n\t\tAudioDeviceStop(m_outputDevice, m_outputProcID);\n\t\tAudioDeviceDestroyIOProcID(m_outputDevice, m_outputProcID);\n\t}\n\tif (m_inputProcID)\n\t{\n\t\tAudioDeviceStop(m_inputDevice, m_inputProcID);\n\t\tAudioDeviceDestroyIOProcID(m_inputDevice, m_inputProcID);\n\t}\n\n\treturn noErr;\n}\n\nOSStatus AUHAL::SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void* inData, UInt32 inDataSize)\n{\n\tswitch (inID)\n\t{\n\t\tcase kAudioOutputUnitProperty_SetInputCallback:\n\t\t{\n\t\t\tca_require(inDataSize == sizeof(AURenderCallbackStruct), InvalidPropertyValue);\n\t\t\tconst AURenderCallbackStruct* cb = static_cast<const AURenderCallbackStruct*>(inData);\n\t\t\t\n\t\t\tm_outputAvailableCb = *cb;\n\n\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_EnableIO:\n\t\t{\n\t\t\tca_require(inDataSize == sizeof(UInt32), InvalidPropertyValue);\n\n\t\t\tconst bool enable = *((const UInt32*) inData);\n\n\t\t\tif (inElement == kOutputBus)\n\t\t\t{\n\t\t\t\tm_enableOutput = enable;\n\t\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t\t}\n\t\t\telse if (inElement == kInputBus)\n\t\t\t{\n\t\t\t\tm_enableInput = enable;\n\t\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t\t}\n\t\t\telse\n\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_CurrentDevice:\n\t\t{\n\t\t\tca_require(inDataSize == sizeof(AudioDeviceID), InvalidPropertyValue);\n\t\t\tconst AudioDeviceID* dev = static_cast<const AudioDeviceID*>(inData);\n\n\t\t\tif (inElement == kOutputBus)\n\t\t\t{\n\t\t\t\tm_outputDevice = *dev;\n\t\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t\t}\n\t\t\telse if (inElement == kInputBus)\n\t\t\t{\n\t\t\t\tm_inputDevice = *dev;\n\t\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t\t}\n\t\t\telse\n\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\treturn noErr;\n\t\t}\n\t}\n\treturn AUBase::SetProperty(inID, inScope, inElement, inData, inDataSize);\nInvalidPropertyValue:\n\treturn kAudioUnitErr_InvalidPropertyValue;\n}\n\nOSStatus AUHAL::GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32& outDataSize, Boolean& outWritable)\n{\n\tswitch (inID)\n\t{\n\t\tcase kAudioOutputUnitProperty_SetInputCallback:\n\t\t{\n\t\t\toutDataSize = sizeof(AURenderCallbackStruct);\n\t\t\toutWritable = true;\n\t\t\tbreak;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_EnableIO:\n\t\t{\n\t\t\toutDataSize = sizeof(UInt32);\n\t\t\toutWritable = true;\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_HasIO:\n\t\t{\n\t\t\toutDataSize = sizeof(UInt32);\n\t\t\toutWritable = false;\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_CurrentDevice:\n\t\t{\n\t\t\toutDataSize = sizeof(AudioDeviceID);\n\t\t\toutWritable = true;\n\t\t\treturn noErr;\n\t\t}\n\t}\n\treturn AUBase::GetPropertyInfo(inID, inScope, inElement, outDataSize, outWritable);\n}\n\nOSStatus AUHAL::GetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData)\n{\n\tswitch (inID)\n\t{\n\t\tcase kAudioOutputUnitProperty_SetInputCallback:\n\t\t{\n\t\t\tmemcpy(outData, &m_outputAvailableCb, sizeof(m_outputAvailableCb));\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_EnableIO:\n\t\tcase kAudioOutputUnitProperty_HasIO:\n\t\t{\n\t\t\tif (inElement == kOutputBus)\n\t\t\t{\n\t\t\t\tUInt32 value = m_enableOutput;\n\t\t\t\tmemcpy(&outData, &value, sizeof(value));\n\t\t\t}\n\t\t\telse if (inElement == kInputBus)\n\t\t\t{\n\t\t\t\tUInt32 value = m_enableInput;\n\t\t\t\tmemcpy(&outData, &value, sizeof(value));\n\t\t\t}\n\t\t\telse\n\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\treturn noErr;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_CurrentDevice:\n\t\t{\n\t\t\tif (inElement == kOutputBus)\n\t\t\t{\n\t\t\t\tmemcpy(outData, &m_outputDevice, sizeof(m_outputDevice));\n\t\t\t}\n\t\t\telse if (inElement == kInputBus)\n\t\t\t{\n\t\t\t\tmemcpy(outData, &m_inputDevice, sizeof(m_inputDevice));\n\t\t\t}\n\t\t\telse\n\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\treturn noErr;\n\t\t}\n\t}\n\treturn AUBase::GetProperty(inID, inScope, inElement, outData);\n}\n\nOSStatus AUHAL::playbackCallback(AudioObjectID inObjectID,\n\tconst AudioTimeStamp* inNow, const AudioBufferList* inInputData,\n\tconst AudioTimeStamp* inInputTime,\n\tAudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime,\n\tvoid* inClientData)\n{\n\tAUHAL* This = static_cast<AUHAL*>(inClientData);\n\treturn This->doPlayback(inNow, outOutputData, inOutputTime);\n}\n\nOSStatus AUHAL::recordCallback(AudioObjectID inObjectID,\n\tconst AudioTimeStamp* inNow, const AudioBufferList* inInputData,\n\tconst AudioTimeStamp* inInputTime,\n\tAudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime,\n\tvoid* inClientData)\n{\n\tAUHAL* This = static_cast<AUHAL*>(inClientData);\n\treturn This->doRecord(inNow, inInputData, inInputTime);\n}\n\nOSStatus AUHAL::doPlayback(const AudioTimeStamp* inNow, AudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime)\n{\n\t// std::cout << \"AUHAL::DoPlayback()\\n\";\n\tif (!HasInput(0))\n\t{\n\t\t// std::cerr << \"No connection\\n\";\n\t\treturn kAudioUnitErr_NoConnection;\n\t}\n\n\tOSStatus result = noErr;\n\tAudioUnitRenderActionFlags flags = kAudioUnitRenderAction_PreRender;\n\tconst CAStreamBasicDescription& desc = GetStreamFormat(kAudioUnitScope_Input, kOutputBus);\n\n\tUInt32 nFrames = outOutputData->mBuffers[0].mDataByteSize / (desc.mBytesPerFrame / outOutputData->mBuffers[0].mNumberChannels);\n\tresult = GetInput(kOutputBus)->PullInputWithBufferList(flags, *inNow, kOutputBus, nFrames, outOutputData);\n\n\t// std::cout << \"Pull result: \" << result << std::endl;\n\t// std::cout << \"Bytes: \" << outOutputData->mBuffers[0].mDataByteSize << std::endl;\n\t// m_auhalData.write((char*) outOutputData->mBuffers[0].mData, outOutputData->mBuffers[0].mDataByteSize);\n\t// m_auhalData.flush();\n\n\treturn result;\n}\n\nOSStatus AUHAL::doRecord(const AudioTimeStamp* inNow, const AudioBufferList* inInputData, const AudioTimeStamp* inInputTime)\n{\n\t// TODO: Prepare for non-interleaved audio\n\tstd::unique_lock<std::mutex> lk(m_dataAvailableMutex);\n\n\tif (m_bufferSize < inInputData->mBuffers[0].mDataByteSize)\n\t{\n\t\tm_buffer.reset(new uint8_t[inInputData->mBuffers[0].mDataByteSize]);\n\t\tm_bufferSize = inInputData->mBuffers[0].mDataByteSize;\n\t}\n\n\tm_bufferUsed = inInputData->mBuffers[0].mDataByteSize;\n\tmemcpy(m_buffer.get(), inInputData->mBuffers[0].mData, m_bufferUsed);\n\n\tm_dataAvailable = true;\n\n\tlk.unlock();\n\tm_dataAvailableCV.notify_one();\n\n\tif (m_outputAvailableCb.inputProc)\n\t{\n\t\tAudioUnitRenderActionFlags flags = kAudioUnitRenderAction_PostRender;\n\t\tconst CAStreamBasicDescription& desc = GetStreamFormat(kAudioUnitScope_Output, kInputBus);\n\t\tUInt32 numFrames = m_bufferUsed / desc.mBytesPerFrame;\n\n\t\tm_outputAvailableCb.inputProc(m_outputAvailableCb.inputProcRefCon, &flags, inInputTime, kInputBus, numFrames, nullptr);\n\t}\n\n\treturn noErr;\n}\n\n// AUDispatch.cpp doesn't implement dispatch code for AudioOutputUnits\nOSStatus AUHAL::ComponentEntryDispatch(ComponentParameters *params, AUHAL *This)\n{\n\tif (This == NULL) return kAudio_ParamError;\n\n\tOSStatus result = noErr;\n\n\tswitch (params->what)\n\t{\n\t\tcase kComponentCanDoSelect:\n\t\t\tswitch (GetSelectorForCanDo(params))\n\t\t\t{\n\t\t\t\tcase kAudioOutputUnitStartSelect:\n\t\t\t\tcase kAudioOutputUnitStopSelect:\n\t\t\t\t\treturn 1;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase kAudioOutputUnitStartSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\treturn This->Start();\n\t\t}\n\t\tcase kAudioOutputUnitStopSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\treturn This->Stop();\n\t\t}\n\t}\n\n\treturn AUBase::ComponentEntryDispatch(params, This);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/AUHAL.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef CAC_AUHAL_H\n#define CAC_AUHAL_H\n#include \"AUBase.h\"\n#include <CoreAudio/AudioHardware.h>\n#include <condition_variable>\n#include <mutex>\n#include <memory>\n#include <stdint.h>\n\nclass AUHAL : public AUBase\n{\npublic:\n\tAUHAL(AudioComponentInstance inInstance, bool supportRecording = true);\n\t~AUHAL();\n\n\tbool CanScheduleParameters() const override;\n\tbool StreamFormatWritable(AudioUnitScope scope, AudioUnitElement element) override;\n\tOSStatus Version() override;\n\n\tOSStatus Start() override;\n\tOSStatus Stop() override;\n\n\tOSStatus SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void* inData, UInt32 inDataSize) override;\n\tOSStatus GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32& outDataSize, Boolean& outWritable) override;\n\tOSStatus GetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData) override;\n\n\tOSStatus Render(AudioUnitRenderActionFlags& ioActionFlags, const AudioTimeStamp& inTimeStamp, UInt32 inNumberFrames) override;\n\n\tstatic OSStatus ComponentEntryDispatch(ComponentParameters *params, AUHAL *This);\nprivate:\n\tstatic OSStatus playbackCallback(AudioObjectID inObjectID,\n\t\tconst AudioTimeStamp* inNow, const AudioBufferList* inInputData,\n\t\tconst AudioTimeStamp* inInputTime,\n\t\tAudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime,\n\t\tvoid* inClientData);\n\tstatic OSStatus recordCallback(AudioObjectID inObjectID,\n\t\tconst AudioTimeStamp* inNow, const AudioBufferList* inInputData,\n\t\tconst AudioTimeStamp* inInputTime,\n\t\tAudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime,\n\t\tvoid* inClientData);\n\n\tOSStatus doPlayback(const AudioTimeStamp* inNow, AudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime);\n\tOSStatus doRecord(const AudioTimeStamp* inNow, const AudioBufferList* inInputData, const AudioTimeStamp* inInputTime);\n\t\nprotected:\n\tAURenderCallbackStruct m_outputAvailableCb = { 0 };\n\tbool m_enableOutput = true, m_enableInput = false;\n\tbool m_running = false;\n\n\tAudioDeviceID m_outputDevice, m_inputDevice;\n\tAudioDeviceIOProcID m_outputProcID = 0, m_inputProcID = 0;\n\n\tbool m_dataAvailable = false;\n\tstd::condition_variable m_dataAvailableCV;\n\tstd::mutex m_dataAvailableMutex;\n\n\t// TODO: Prepare for non-interleaved audio\n\tstd::unique_ptr<uint8_t[]> m_buffer;\n\tsize_t m_bufferSize = 0, m_bufferUsed = 0;\n};\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/CMakeLists.txt",
    "content": "project(CoreAudioComponent)\ninclude(darling_bundle)\n\nset(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} -fvisibility=hidden\")\nadd_definitions(-DCA_BASIC_AU_FEATURES=1)\ninclude_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})\n\ninclude_directories(\n\t${CMAKE_CURRENT_SOURCE_DIR}/PublicUtility\n\t${CMAKE_CURRENT_SOURCE_DIR}/AUPublic/AUBase\n\t${CMAKE_CURRENT_SOURCE_DIR}/AUPublic/Utility\n)\n\nset(component_sources\n\tAUPublic/AUBase/AUBase.cpp\n\tAUPublic/AUBase/AUDispatch.cpp\n\tAUPublic/AUBase/AUInputElement.cpp\n\tAUPublic/AUBase/AUOutputElement.cpp\n\tAUPublic/AUBase/AUPlugInDispatch.cpp\n\tAUPublic/AUBase/AUScopeElement.cpp\n\tAUPublic/AUBase/ComponentBase.cpp\n\tAUPublic/Utility/AUBuffer.cpp\n\tPublicUtility/CAAudioChannelLayout.cpp\n\tPublicUtility/CAAudioChannelLayoutObject.cpp\n\tPublicUtility/CABufferList.cpp\n\tPublicUtility/CADebugger.cpp\n\tPublicUtility/CAStreamBasicDescription.cpp\n\tPublicUtility/CAHostTimeBase.cpp\n\tPublicUtility/CAVectorUnit.cpp\n\tAUHAL.cpp\n\tSystemOutputAU.cpp\n\tDefaultOutputAU.cpp\n)\n\nadd_darling_bundle(CoreAudioComponent \"\" ${component_sources})\ntarget_link_libraries(CoreAudioComponent\n\tAudioToolbox\n\tCoreAudio\n\tcxx\n\tsystem\n\tCoreFoundation\n)\nset_target_properties(CoreAudioComponent PROPERTIES OUTPUT_NAME \"CoreAudio\" PREFIX \"\" SUFFIX \"\")\ninstall(TARGETS CoreAudioComponent DESTINATION libexec/darling/System/Library/Components/CoreAudio.component/Contents/MacOS)\ninstall(FILES Info.plist DESTINATION libexec/darling/System/Library/Components/CoreAudio.component/Contents)\ninstall(FILES CoreAudio.rsrc DESTINATION libexec/darling/System/Library/Components/CoreAudio.component/Contents/Resources)\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/CoreAudioComponent.r",
    "content": "#include <AudioUnit/AudioUnit.r>\n\n#define kAudioUnitResID_AUHAL\t\t\t\t1000\n#define kAudioUnitResID_DefaultOutputAU\t\t1003\n#define kAudioUnitResID_SystemOutputAU\t\t1006\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AUHAL ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#define RES_ID\t\t\tkAudioUnitResID_AUHAL\n#define COMP_TYPE\t\tkAudioUnitType_Output\n#define COMP_SUBTYPE\tkAudioUnitSubType_HALOutput\n#define COMP_MANUF\t\tkAudioUnitManufacturer_Apple\n#define VERSION\t\t\t1\n#define NAME\t\t\t\"Darling: AudioDeviceOutput\"\n#define DESCRIPTION\t\t\"AudioDevice interface output unit\"\n#define ENTRY_POINT\t\t\"AUHALEntry\"\n#include \"AUResources.r\"\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DefaultOutputAU ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#define RES_ID\t\t\tkAudioUnitResID_DefaultOutputAU\n#define COMP_TYPE\t\tkAudioUnitType_Output\n#define COMP_SUBTYPE\tkAudioUnitSubType_DefaultOutput\n#define COMP_MANUF\t\tkAudioUnitManufacturer_Apple\n#define VERSION\t\t\t1\n#define NAME\t\t\t\"Darling: DefaultOutputUnit\"\n#define DESCRIPTION\t\t\"Default output unit that redirects its output to the user selected default device\"\n#define ENTRY_POINT\t\t\"DefaultOutputAUEntry\"\n#include \"AUResources.r\"\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SystemOutputAU ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#define RES_ID\t\t\tkAudioUnitResID_SystemOutputAU\n#define COMP_TYPE\t\tkAudioUnitType_Output\n#define COMP_SUBTYPE\tkAudioUnitSubType_SystemOutput\n#define COMP_MANUF\t\tkAudioUnitManufacturer_Apple\n#define VERSION\t\t\t1\n#define NAME\t\t\t\"Darling: SystemOutputUnit\"\n#define DESCRIPTION\t\t\"System Sounds output unit that redirects its output to the user selected System Sounds device\"\n#define ENTRY_POINT\t\t\"SystemOutputAUEntry\"\n#include \"AUResources.r\"\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/DefaultOutputAU.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include \"DefaultOutputAU.h\"\n\n#pragma GCC visibility push(default)\nAUDIOCOMPONENT_ENTRY(AUOutputBaseFactory, DefaultOutputAU);\n#pragma GCC visibility pop\n\nenum {\n\tkOutputBus = 0,\n\tkInputBus\n};\n\nDefaultOutputAU::DefaultOutputAU(AudioComponentInstance inInstance)\n: AUHAL(inInstance)\n{\n}\n\nOSStatus DefaultOutputAU::GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32& outDataSize, Boolean& outWritable)\n{\n\tOSStatus status = AUHAL::GetPropertyInfo(inID, inScope, inElement, outDataSize, outWritable);\n\n\tif (inID == kAudioOutputUnitProperty_CurrentDevice)\n\t\toutWritable = false;\n\n\treturn status;\n}\n\nOSStatus DefaultOutputAU::SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope,\n\tAudioUnitElement inElement, const void* inData, UInt32 inDataSize)\n{\n\tswitch (inID)\n\t{\n\t\tcase kAudioOutputUnitProperty_CurrentDevice:\n\t\t\treturn kAudioUnitErr_InvalidProperty;\n\t}\n\treturn AUHAL::SetProperty(inID, inScope, inElement, inData, inDataSize);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/DefaultOutputAU.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _CA_DEFAULT_OUTPUT_AU_H\n#define _CA_DEFAULT_OUTPUT_AU_H\n#include \"AUHAL.h\"\n\nclass DefaultOutputAU : public AUHAL\n{\npublic:\n\tDefaultOutputAU(AudioComponentInstance inInstance);\n\tOSStatus GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32& outDataSize, Boolean& outWritable) override;\n\tOSStatus SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void* inData, UInt32 inDataSize) override;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>AudioComponents</key>\n\t<array>\n\t\t<dict>\n\t\t\t<key>description</key>\n\t\t\t<string>AudioDevice interface output unit</string>\n\t\t\t<key>factoryFunction</key>\n\t\t\t<string>AUHALFactory</string>\n\t\t\t<key>manufacturer</key>\n\t\t\t<string>appl</string>\n\t\t\t<key>name</key>\n\t\t\t<string>Darling: AudioDeviceOutput</string>\n\t\t\t<key>sandboxSafe</key>\n\t\t\t<true/>\n\t\t\t<key>subtype</key>\n\t\t\t<string>ahal</string>\n\t\t\t<key>tags</key>\n\t\t\t<array>\n\t\t\t\t<string>Output</string>\n\t\t\t</array>\n\t\t\t<key>type</key>\n\t\t\t<string>auou</string>\n\t\t\t<key>version</key>\n\t\t\t<integer>1</integer>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>description</key>\n\t\t\t<string>Default output unit that redirects its output to the user selected default device</string>\n\t\t\t<key>factoryFunction</key>\n\t\t\t<string>DefaultOutputAUFactory</string>\n\t\t\t<key>manufacturer</key>\n\t\t\t<string>appl</string>\n\t\t\t<key>name</key>\n\t\t\t<string>Darling: DefaultOutputUnit</string>\n\t\t\t<key>sandboxSafe</key>\n\t\t\t<true/>\n\t\t\t<key>subtype</key>\n\t\t\t<string>def </string>\n\t\t\t<key>tags</key>\n\t\t\t<array>\n\t\t\t\t<string>Output</string>\n\t\t\t</array>\n\t\t\t<key>type</key>\n\t\t\t<string>auou</string>\n\t\t\t<key>version</key>\n\t\t\t<integer>1</integer>\n\t\t</dict>\n\t\t<dict>\n\t\t\t<key>description</key>\n\t\t\t<string>System Sounds output unit that redirects its output to the user selected System Sounds device</string>\n\t\t\t<key>factoryFunction</key>\n\t\t\t<string>SystemOutputAUFactory</string>\n\t\t\t<key>manufacturer</key>\n\t\t\t<string>appl</string>\n\t\t\t<key>name</key>\n\t\t\t<string>Darling: SystemOutputUnit</string>\n\t\t\t<key>sandboxSafe</key>\n\t\t\t<true/>\n\t\t\t<key>subtype</key>\n\t\t\t<string>sys </string>\n\t\t\t<key>tags</key>\n\t\t\t<array>\n\t\t\t\t<string>Output</string>\n\t\t\t</array>\n\t\t\t<key>type</key>\n\t\t\t<string>auou</string>\n\t\t\t<key>version</key>\n\t\t\t<integer>1</integer>\n\t\t</dict>\n\t</array>\n\t<key>CFBundleExecutable</key>\n\t<string>CoreAudio</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>com.apple.audio.units.Components</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>CoreAudioComponents</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleSignature</key>\n\t<string>????</string>\n\t<key>CFBundleSupportedPlatforms</key>\n\t<array>\n\t\t<string>MacOSX</string>\n\t</array>\n\t<key>CFBundleVersion</key>\n\t<string>1.0</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/README",
    "content": "This is a component that provides audio input / output on top of CoreAudio.framework in the form\nof an AudioUnit (which is an AudioToolkit thing).\n\nThe component gets installed into /System/Library/Components/CoreAudio.component.\n\nIt is reachable both as an AudioComponent (AudioComponentInstanceNew) and a Carbon Component (OpenAComponent).\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/SystemOutputAU.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include \"SystemOutputAU.h\"\n\n#pragma GCC visibility push(default)\nAUDIOCOMPONENT_ENTRY(AUOutputBaseFactory, SystemOutputAU);\n#pragma GCC visibility pop\n\nenum {\n\tkOutputBus = 0,\n\tkInputBus\n};\n\nSystemOutputAU::SystemOutputAU(AudioComponentInstance inInstance)\n: AUHAL(inInstance)\n{\n\tUInt32 propSize = sizeof(AudioDeviceID);\n\tAudioHardwareGetProperty(kAudioHardwarePropertyDefaultSystemOutputDevice, &propSize, &m_outputDevice);\n}\n\nOSStatus SystemOutputAU::GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32& outDataSize, Boolean& outWritable)\n{\n\tOSStatus status = AUHAL::GetPropertyInfo(inID, inScope, inElement, outDataSize, outWritable);\n\n\tif (inID == kAudioOutputUnitProperty_CurrentDevice)\n\t\toutWritable = false;\n\n\treturn status;\n}\n\nOSStatus SystemOutputAU::SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope,\n\tAudioUnitElement inElement, const void* inData, UInt32 inDataSize)\n{\n\tswitch (inID)\n\t{\n\t\tcase kAudioOutputUnitProperty_EnableIO:\n\t\t{\n\t\t\tif (inElement == kInputBus)\n\t\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\tbreak;\n\t\t}\n\t\tcase kAudioOutputUnitProperty_CurrentDevice:\n\t\t\treturn kAudioUnitErr_InvalidProperty;\n\t}\n\treturn AUHAL::SetProperty(inID, inScope, inElement, inData, inDataSize);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioComponent/SystemOutputAU.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _CA_SYSTEM_OUTPUT_AU_H\n#define _CA_SYSTEM_OUTPUT_AU_H\n#include \"AUHAL.h\"\n\nclass SystemOutputAU : public AUHAL\n{\npublic:\n\tSystemOutputAU(AudioComponentInstance inInstance);\n\tOSStatus GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32& outDataSize, Boolean& outWritable) override;\n\tOSStatus SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void* inData, UInt32 inDataSize) override;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACBaseCodec.cpp",
    "content": "/*\n     File: ACBaseCodec.cpp\n Abstract: ACBaseCodec.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n#include <algorithm>\n#include \"ACBaseCodec.h\"\n\n#include \"CABundleLocker.h\"\n\n#if TARGET_OS_WIN32\n\t#include \"CAWin32StringResources.h\"\n#endif\n\n//=============================================================================\n//\tACBaseCodec\n//=============================================================================\n\nACBaseCodec::ACBaseCodec( AudioComponentInstance inInstance )\n:\n\tACCodec(inInstance),\n\tmIsInitialized(false),\n\tmInputFormatList(),\n\tmInputFormat(),\n\tmOutputFormatList(),\n\tmOutputFormat()\n{\n\tmCodecSubType = 0;\n\tif (inInstance) GetSubType();\n}\n\nACBaseCodec::~ACBaseCodec()\n{\n}\n\nvoid\tACBaseCodec::GetPropertyInfo(AudioCodecPropertyID inPropertyID, UInt32& outPropertyDataSize, Boolean& outWritable)\n{\n\tswitch(inPropertyID)\n\t{\n#if BUILD_ADEC_LIB\n\t\tcase kAudioCodecPropertyNameCFString:\n\t\tcase kAudioCodecPropertyFormatCFString:\n\t\tcase kAudioCodecPropertyManufacturerCFString:\n\t\t\toutPropertyDataSize = 0;\n\t\t\toutWritable = false;\n\t\t\tbreak;\n#else\n\t\tcase kAudioCodecPropertyNameCFString:\n\t\t\toutPropertyDataSize = SizeOf32(CFStringRef);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyManufacturerCFString:\n\t\t\toutPropertyDataSize = SizeOf32(CFStringRef);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyFormatCFString:\n\t\t\toutPropertyDataSize = SizeOf32(CFStringRef);\n\t\t\toutWritable = false;\n\t\t\tbreak;\t\t\t\n#endif\n\t\tcase kAudioCodecPropertyRequiresPacketDescription:\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyMinimumNumberInputPackets :\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyMinimumNumberOutputPackets :\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\n\t\tcase kAudioCodecPropertyCurrentInputFormat:\n\t\t\toutPropertyDataSize = SizeOf32(AudioStreamBasicDescription);\n\t\t\toutWritable = true;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertySupportedInputFormats:\n\t\tcase kAudioCodecPropertyInputFormatsForOutputFormat:\n\t\t\toutPropertyDataSize = GetNumberSupportedInputFormats() * SizeOf32(AudioStreamBasicDescription);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyCurrentOutputFormat:\n\t\t\toutPropertyDataSize = SizeOf32(AudioStreamBasicDescription);\n\t\t\toutWritable = true;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertySupportedOutputFormats:\n\t\tcase kAudioCodecPropertyOutputFormatsForInputFormat:\n\t\t\toutPropertyDataSize = GetNumberSupportedOutputFormats() * SizeOf32(AudioStreamBasicDescription);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyMagicCookie:\n\t\t\toutPropertyDataSize = GetMagicCookieByteSize();\n\t\t\toutWritable = true;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyInputBufferSize:\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyUsedInputBufferSize:\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\n\t\tcase kAudioCodecPropertyIsInitialized:\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\n\t\tcase kAudioCodecPropertyAvailableNumberChannels:\n\t\t\toutPropertyDataSize = SizeOf32(UInt32) * 2; // Mono, stereo\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\t\t\t\n \t\tcase kAudioCodecPropertyPrimeMethod:\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\n \t\tcase kAudioCodecPropertyPrimeInfo:\n\t\t\toutPropertyDataSize = SizeOf32(AudioCodecPrimeInfo);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\n \t\tcase kAudioCodecPropertyDoesSampleRateConversion:\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = false;\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tCODEC_THROW(kAudioCodecUnknownPropertyError);\n\t\t\tbreak;\n\t\t\t\n\t};\n}\n\nvoid\tACBaseCodec::GetProperty(AudioCodecPropertyID inPropertyID, UInt32& ioPropertyDataSize, void* outPropertyData)\n{\n\tUInt32 thePacketsToGet;\n\t\n\tswitch(inPropertyID)\n\t{\n#if !BUILD_ADEC_LIB\n\t\tcase kAudioCodecPropertyNameCFString:\n\t\t{\n\t\t\tif (ioPropertyDataSize != SizeOf32(CFStringRef)) CODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t\n\t\t\tCABundleLocker lock;\n\t\t\tCFStringRef name = CFCopyLocalizedStringFromTableInBundle(CFSTR(\"unknown codec\"), CFSTR(\"CodecNames\"), GetCodecBundle(), CFSTR(\"\"));\n\t\t\t*(CFStringRef*)outPropertyData = name;\n\t\t\tbreak; \n\t\t}\n\t\t\n\t\tcase kAudioCodecPropertyManufacturerCFString:\n\t\t{\n\t\t\tif (ioPropertyDataSize != SizeOf32(CFStringRef)) CODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t\n\t\t\tCABundleLocker lock;\n\t\t\tCFStringRef name = CFCopyLocalizedStringFromTableInBundle(CFSTR(\"Apple, Inc.\"), CFSTR(\"CodecNames\"), GetCodecBundle(), CFSTR(\"\"));\n\t\t\t*(CFStringRef*)outPropertyData = name;\n\t\t\tbreak; \n\t\t}\n#else\n\t\t\t// If called on the device these should return nothing but 0\n\t\tcase kAudioCodecPropertyNameCFString:\n\t\tcase kAudioCodecPropertyFormatCFString:\n\t\tcase kAudioCodecPropertyManufacturerCFString:\n\t\t\tioPropertyDataSize = 0;\n\t\t\toutPropertyData = 0;\n\t\t\tbreak;\n#endif\n        case kAudioCodecPropertyRequiresPacketDescription:\n  \t\t\tif(ioPropertyDataSize == SizeOf32(UInt32))\n\t\t\t{\n                *reinterpret_cast<UInt32*>(outPropertyData) = 0; \n            }\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n            break;\n\t\t\t\n\t\tcase kAudioCodecPropertyMinimumNumberInputPackets :\n\t\t\tif(ioPropertyDataSize != SizeOf32(UInt32)) CODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t*(UInt32*)outPropertyData = 1;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyMinimumNumberOutputPackets :\n\t\t\tif(ioPropertyDataSize != SizeOf32(UInt32)) CODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t*(UInt32*)outPropertyData = 1;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyCurrentInputFormat:\n\t\t\tif(ioPropertyDataSize == SizeOf32(AudioStreamBasicDescription))\n\t\t\t{\n\t\t\t\tGetCurrentInputFormat(*reinterpret_cast<AudioStreamBasicDescription*>(outPropertyData));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertySupportedInputFormats:\n\t\tcase kAudioCodecPropertyInputFormatsForOutputFormat:\n\t\t\tthePacketsToGet = ioPropertyDataSize / SizeOf32(AudioStreamBasicDescription);\n\t\t\tGetSupportedInputFormats(reinterpret_cast<AudioStreamBasicDescription*>(outPropertyData), thePacketsToGet);\n\t\t\tioPropertyDataSize = thePacketsToGet * SizeOf32(AudioStreamBasicDescription);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyCurrentOutputFormat:\n\t\t\tif(ioPropertyDataSize == SizeOf32(AudioStreamBasicDescription))\n\t\t\t{\n\t\t\t\tGetCurrentOutputFormat(*reinterpret_cast<AudioStreamBasicDescription*>(outPropertyData));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertySupportedOutputFormats:\n\t\tcase kAudioCodecPropertyOutputFormatsForInputFormat:\n\t\t\tthePacketsToGet = ioPropertyDataSize / SizeOf32(AudioStreamBasicDescription);\n\t\t\tGetSupportedOutputFormats(reinterpret_cast<AudioStreamBasicDescription*>(outPropertyData), thePacketsToGet);\n\t\t\tioPropertyDataSize = thePacketsToGet * SizeOf32(AudioStreamBasicDescription);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyMagicCookie:\n\t\t\tif(ioPropertyDataSize >= GetMagicCookieByteSize())\n\t\t\t{\n\t\t\t\tGetMagicCookie(outPropertyData, ioPropertyDataSize);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyInputBufferSize:\n\t\t\tif(ioPropertyDataSize == SizeOf32(UInt32))\n\t\t\t{\n\t\t\t\t*reinterpret_cast<UInt32*>(outPropertyData) = GetInputBufferByteSize();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyUsedInputBufferSize:\n\t\t\tif(ioPropertyDataSize == SizeOf32(UInt32))\n\t\t\t{\n\t\t\t\t*reinterpret_cast<UInt32*>(outPropertyData) = GetUsedInputBufferByteSize();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyIsInitialized:\n\t\t\tif(ioPropertyDataSize == SizeOf32(UInt32))\n\t\t\t{\n\t\t\t\t*reinterpret_cast<UInt32*>(outPropertyData) = IsInitialized() ? 1 : 0;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n        case kAudioCodecPropertyAvailableNumberChannels:\n  \t\t\tif(ioPropertyDataSize == SizeOf32(UInt32) * 2)\n\t\t\t{\n\t\t\t\t(reinterpret_cast<UInt32*>(outPropertyData))[0] = 1;\n\t\t\t\t(reinterpret_cast<UInt32*>(outPropertyData))[1] = 2;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\n        case kAudioCodecPropertyPrimeMethod:\n  \t\t\tif(ioPropertyDataSize == SizeOf32(UInt32))\n\t\t\t{\n\t\t\t\t*reinterpret_cast<UInt32*>(outPropertyData) = (UInt32)kAudioCodecPrimeMethod_None;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase kAudioCodecPropertyPrimeInfo:\n  \t\t\tif(ioPropertyDataSize == SizeOf32(AudioCodecPrimeInfo) )\n\t\t\t{\n\t\t\t\t(reinterpret_cast<AudioCodecPrimeInfo*>(outPropertyData))->leadingFrames = 0;\n\t\t\t\t(reinterpret_cast<AudioCodecPrimeInfo*>(outPropertyData))->trailingFrames = 0;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\n        case kAudioCodecPropertyDoesSampleRateConversion:\n  \t\t\tif(ioPropertyDataSize == SizeOf32(UInt32))\n\t\t\t{\n\t\t\t\t*reinterpret_cast<UInt32*>(outPropertyData) = 0;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tCODEC_THROW(kAudioCodecUnknownPropertyError);\n\t\t\tbreak;\n\t\t\t\n\t};\n}\n\nvoid\tACBaseCodec::SetProperty(AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void* inPropertyData)\n{\n\t// No property can be set when the codec is initialized\n\tif(mIsInitialized)\n\t{\n\t\tCODEC_THROW(kAudioCodecIllegalOperationError);\n\t}\n\t\n\tswitch(inPropertyID)\n\t{\n\t\tcase kAudioCodecPropertyCurrentInputFormat:\n\t\t\tif(inPropertyDataSize == SizeOf32(AudioStreamBasicDescription))\n\t\t\t{\n\t\t\t\tSetCurrentInputFormat(*reinterpret_cast<const AudioStreamBasicDescription*>(inPropertyData));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyCurrentOutputFormat:\n\t\t\tif(inPropertyDataSize == SizeOf32(AudioStreamBasicDescription))\n\t\t\t{\n\t\t\t\tSetCurrentOutputFormat(*reinterpret_cast<const AudioStreamBasicDescription*>(inPropertyData));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyMagicCookie:\n\t\t\tSetMagicCookie(inPropertyData, inPropertyDataSize);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioCodecPropertyMinimumNumberOutputPackets :\n\t\tcase kAudioCodecPropertyMinimumNumberInputPackets :\n\t\tcase kAudioCodecPropertyInputBufferSize:\n\t\tcase kAudioCodecPropertyNameCFString:\n\t\tcase kAudioCodecPropertyManufacturerCFString:\n\t\tcase kAudioCodecPropertyFormatCFString:\n\t\tcase kAudioCodecPropertySupportedInputFormats:\n\t\tcase kAudioCodecPropertySupportedOutputFormats:\n\t\tcase kAudioCodecPropertyUsedInputBufferSize:\n\t\tcase kAudioCodecPropertyIsInitialized:\n\t\tcase kAudioCodecPropertyAvailableNumberChannels:\n\t\tcase kAudioCodecPropertyPrimeMethod:\n\t\tcase kAudioCodecPropertyPrimeInfo:\n\t\tcase kAudioCodecPropertyOutputFormatsForInputFormat:\n\t\tcase kAudioCodecPropertyInputFormatsForOutputFormat:\n\t\tcase kAudioCodecPropertyDoesSampleRateConversion:\n\t\tcase kAudioCodecPropertyRequiresPacketDescription:\n\t\t\tCODEC_THROW(kAudioCodecIllegalOperationError);\n\t\t\tbreak;\n\t\t\t\n\t\tdefault:\n\t\t\tCODEC_THROW(kAudioCodecUnknownPropertyError);\n\t\t\tbreak;\n\t};\n}\n\nvoid\tACBaseCodec::Initialize(const AudioStreamBasicDescription* /* inInputFormat */, const AudioStreamBasicDescription* /* inOutputFormat */, const void* /* inMagicCookie */, UInt32 /* inMagicCookieByteSize */)\n{\n\tmIsInitialized = true;\n}\n\nvoid\tACBaseCodec::Uninitialize()\n{\n\tmIsInitialized = false;\n}\n\nvoid\tACBaseCodec::Reset()\n{\n}\n\nUInt32\tACBaseCodec::GetNumberSupportedInputFormats() const\n{\n\treturn (UInt32)mInputFormatList.size();\n}\n\nvoid\tACBaseCodec::GetSupportedInputFormats(AudioStreamBasicDescription* outInputFormats, UInt32& ioNumberInputFormats) const\n{\n\tUInt32 theNumberFormats = (UInt32)mInputFormatList.size();\n\tioNumberInputFormats = (theNumberFormats < ioNumberInputFormats) ? theNumberFormats : ioNumberInputFormats;\n\t\n\tFormatList::const_iterator theIterator = mInputFormatList.begin();\n\ttheNumberFormats = ioNumberInputFormats;\n\twhile((theNumberFormats > 0) && (theIterator != mInputFormatList.end()))\n\t{\n\t\t*outInputFormats = *theIterator;\n\t\t\n\t\t++outInputFormats;\n\t\t--theNumberFormats;\n\t\tstd::advance(theIterator, 1);\n\t}\n}\n\nvoid\tACBaseCodec::GetCurrentInputFormat(AudioStreamBasicDescription& outInputFormat)\n{\n\toutInputFormat = mInputFormat;\n}\n\nvoid\tACBaseCodec::SetCurrentInputFormat(const AudioStreamBasicDescription& inInputFormat)\n{\n\tif(!mIsInitialized)\n\t{\n\t\tmInputFormat = inInputFormat;\n\t}\n\telse\n\t{\n\t\tCODEC_THROW(kAudioCodecStateError);\n\t}\n}\n\nUInt32\tACBaseCodec::GetNumberSupportedOutputFormats() const\n{\n\treturn (UInt32)mOutputFormatList.size();\n}\n\nvoid\tACBaseCodec::GetSupportedOutputFormats(AudioStreamBasicDescription* outOutputFormats, UInt32& ioNumberOutputFormats) const\n{\n\tUInt32 theNumberFormats = (UInt32)mOutputFormatList.size();\n\tioNumberOutputFormats = (theNumberFormats < ioNumberOutputFormats) ? theNumberFormats : ioNumberOutputFormats;\n\t\n\tFormatList::const_iterator theIterator = mOutputFormatList.begin();\n\ttheNumberFormats = ioNumberOutputFormats;\n\twhile((theNumberFormats > 0) && (theIterator != mOutputFormatList.end()))\n\t{\n\t\t*outOutputFormats = *theIterator;\n\t\t\n\t\t++outOutputFormats;\n\t\t--theNumberFormats;\n\t\tstd::advance(theIterator, 1);\n\t}\n}\n\nvoid\tACBaseCodec::GetCurrentOutputFormat(AudioStreamBasicDescription& outOutputFormat)\n{\n\toutOutputFormat = mOutputFormat;\n}\n\nvoid\tACBaseCodec::SetCurrentOutputFormat(const AudioStreamBasicDescription& inOutputFormat)\n{\n\tif(!mIsInitialized)\n\t{\n\t\tmOutputFormat = inOutputFormat;\n\t}\n\telse\n\t{\n\t\tCODEC_THROW(kAudioCodecStateError);\n\t}\n}\n\nUInt32\tACBaseCodec::GetMagicCookieByteSize() const\n{\n\treturn 0;\n}\n\nvoid\tACBaseCodec::GetMagicCookie(void* /* outMagicCookieData */, UInt32& ioMagicCookieDataByteSize) const\n{\n\tioMagicCookieDataByteSize = 0;\n}\n\nvoid\tACBaseCodec::SetMagicCookie(const void* /* outMagicCookieData */, UInt32 /* inMagicCookieDataByteSize */)\n{\n\tif(mIsInitialized)\n\t{\n\t\tCODEC_THROW(kAudioCodecStateError);\n\t}\n}\n\nvoid\tACBaseCodec::AddInputFormat(const AudioStreamBasicDescription& inInputFormat)\n{\n\tFormatList::iterator theIterator = std::find(mInputFormatList.begin(), mInputFormatList.end(), inInputFormat);\n\tif(theIterator == mInputFormatList.end())\n\t{\n\t\ttheIterator = std::lower_bound(mInputFormatList.begin(), mInputFormatList.end(), inInputFormat);\n\t\tmInputFormatList.insert(theIterator, inInputFormat);\n\t}\n}\n\nvoid\tACBaseCodec::AddOutputFormat(const AudioStreamBasicDescription& inOutputFormat)\n{\n\tFormatList::iterator theIterator = std::find(mOutputFormatList.begin(), mOutputFormatList.end(), inOutputFormat);\n\tif(theIterator == mOutputFormatList.end())\n\t{\n\t\ttheIterator = std::lower_bound(mOutputFormatList.begin(), mOutputFormatList.end(), inOutputFormat);\n\t\tmOutputFormatList.insert(theIterator, inOutputFormat);\n\t}\n}\n\nOSType ACBaseCodec::GetSubType()\n{\n\tif (!mCodecSubType)\n\t{\n\t\tAudioComponentDescription desc = GetComponentDescription();\n\t\tmCodecSubType = desc.componentSubType;\n\t}\n\treturn mCodecSubType;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACBaseCodec.h",
    "content": "/*\n     File: ACBaseCodec.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__ACBaseCodec_h__)\n#define __ACBaseCodec_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"ACCodec.h\"\n#include \"CAStreamBasicDescription.h\"\n#include <vector>\n#include \"GetCodecBundle.h\"\n\n//=============================================================================\n//\tACBaseCodec\n//\n//\tAn abstract subclass of ACCodec that implements all the nuts and bolts\n//\tof the ACCodec interface, except for buffer handling. This class does\n//\tthe proper dispatching of property requests and manages the list of\n//\tinput and output formats.\n//=============================================================================\n\nclass ACBaseCodec\n:\n\tpublic ACCodec\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\t\t\tACBaseCodec( AudioComponentInstance inInstance );\n\tvirtual\t\t\t\t\t\t\t~ACBaseCodec();\n\n//\tProperty Management\npublic:\n\tvirtual void\t\t\t\t\tGetPropertyInfo(AudioCodecPropertyID inPropertyID, UInt32& outPropertyDataSize, Boolean& outWritable);\n\tvirtual void\t\t\t\t\tGetProperty(AudioCodecPropertyID inPropertyID, UInt32& ioPropertyDataSize, void* outPropertyData);\n\tvirtual void\t\t\t\t\tSetProperty(AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void* inPropertyData);\n\n//\tData Handling\npublic:\n\tbool\t\t\t\t\t\t\tIsInitialized() const { return mIsInitialized; }\n\tvirtual void\t\t\t\t\tInitialize(const AudioStreamBasicDescription* inInputFormat, const AudioStreamBasicDescription* inOutputFormat, const void* inMagicCookie, UInt32 inMagicCookieByteSize);\n\tvirtual void\t\t\t\t\tUninitialize();\n\tvirtual void\t\t\t\t\tReset();\n\tvirtual UInt32\t\t\t\t\tGetInputBufferByteSize() const = 0;\n\tvirtual UInt32\t\t\t\t\tGetUsedInputBufferByteSize() const = 0;\n\nprotected:\n\tvirtual void\t\t\t\t\tReallocateInputBuffer(UInt32 inInputBufferByteSize) = 0;\n\t\n\tbool\t\t\t\t\t\t\tmIsInitialized;\n\n//\tFormat Management\npublic:\n\tUInt32\t\t\t\t\t\t\tGetNumberSupportedInputFormats() const;\n\tvoid\t\t\t\t\t\t\tGetSupportedInputFormats(AudioStreamBasicDescription* outInputFormats, UInt32& ioNumberInputFormats) const;\n\n\tvoid\t\t\t\t\t\t\tGetCurrentInputFormat(AudioStreamBasicDescription& outInputFormat);\n\tvirtual void\t\t\t\t\tSetCurrentInputFormat(const AudioStreamBasicDescription& inInputFormat);\n\t\n\tUInt32\t\t\t\t\t\t\tGetNumberSupportedOutputFormats() const;\n\tvoid\t\t\t\t\t\t\tGetSupportedOutputFormats(AudioStreamBasicDescription* outOutputFormats, UInt32& ioNumberOutputFormats) const;\n\t\n\tvoid\t\t\t\t\t\t\tGetCurrentOutputFormat(AudioStreamBasicDescription& outOutputFormat);\n\tvirtual void\t\t\t\t\tSetCurrentOutputFormat(const AudioStreamBasicDescription& inOutputFormat);\n\t\n\tvirtual UInt32\t\t\t\t\tGetMagicCookieByteSize() const;\n\tvirtual void\t\t\t\t\tGetMagicCookie(void* outMagicCookieData, UInt32& ioMagicCookieDataByteSize) const;\n\tvirtual void\t\t\t\t\tSetMagicCookie(const void* outMagicCookieData, UInt32 inMagicCookieDataByteSize);\n\n\tvirtual bool\t\t\t\t\tImplementsFeature(UInt32 /* feature */) const { return false; }\n\tvirtual void\t\t\t\t\tAppendInputBufferList(const AudioBufferList * /* ioBufferList */, UInt32& /* ioNumberPackets */, const AudioStreamPacketDescription * /* inPacketDescription */, UInt32 * /* outBytesConsumed */) { CODEC_THROW(-4); /*unimpErr*/ }\n\tvirtual UInt32\t\t\t\t\tProduceOutputBufferList(AudioBufferList * /* ioBufferList */, UInt32& /* ioNumberPackets */,  AudioStreamPacketDescription * /* outPacketDescription */) { CODEC_THROW(-4); /*unimpErr*/ }\nprotected:\n\tvoid\t\t\t\t\t\t\tAddInputFormat(const AudioStreamBasicDescription& inInputFormat);\n\tvoid\t\t\t\t\t\t\tAddOutputFormat(const AudioStreamBasicDescription& inOutputFormat);\n\t\n\tOSType\t\t\t\t\t\t\tGetSubType();\n\t\n\ttypedef std::vector<CAStreamBasicDescription>\tFormatList;\n\t\n\tFormatList\t\t\t\t\t\tmInputFormatList;\n#if TARGET_OS_WIN32\n\t// VC 2005 screws up if this is not aligned to 8-byte boundaries\n\t__declspec(align(8)) CAStreamBasicDescription\t\tmInputFormat;\n#else\n\tCAStreamBasicDescription\t\tmInputFormat;\n#endif\n\t\n\tFormatList\t\t\t\t\t\tmOutputFormatList;\n#if TARGET_OS_WIN32\n\t// VC 2005 screws up if this is not aligned to 8-byte boundaries\n\t__declspec(align(8)) CAStreamBasicDescription\t\tmOutputFormat;\n#else\n\tCAStreamBasicDescription\t\tmOutputFormat;\n#endif\n\tOSType\t\t\t\t\t\t\tmCodecSubType;\n\tUInt32\t\t\t\t\t\t\tmPadding[3]; // Align this with 16-byte boundaries\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACCodec.cpp",
    "content": "/*\n     File: ACCodec.cpp\n Abstract: ACCodec.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"ACCodec.h\"\n\n//=============================================================================\n//\tACCodec\n//=============================================================================\n\nACCodec::ACCodec(AudioComponentInstance inInstance) : ComponentBase(inInstance)\n{\n}\n\nACCodec::~ACCodec()\n{\n}\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY && !TARGET_OS_IPHONE\n\n#if TARGET_OS_MAC\n\t#if __LP64__\n\t\t// comp instance, parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t_typ _name = *(_typ *)((void*)&inParameters->params[_index + 1]);\n\t#else\n\t\t// parameters in reverse order, then comp instance\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t_typ _name = *(_typ *)((void*)&inParameters->params[_nparams - 1 - _index]);\n\t#endif\n#elif TARGET_OS_WIN32\n\t// (no comp instance), parameters in forward order\n\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t_typ _name = *(_typ *)&inParameters->params[_index];\n#endif\n\nOSStatus\tACCodec::ComponentEntryDispatch(ComponentParameters *inParameters, ACCodec *inThis)\n{\n\tOSStatus\t\ttheError = kAudioCodecNoError;\n\t\n\ttry\n\t{\n\t\tswitch (inParameters->what)\n\t\t{\n\t\t\t\t//\tthese selectors don't use the object pointer\n\t\t\t\t\n\t\t\tcase kComponentOpenSelect:\n\t\t\tcase kComponentCloseSelect:\n\t\t\t\ttheError = ComponentBase::ComponentEntryDispatch(inParameters, inThis);\n\t\t\t\tbreak;\n\t\t\t\t\n\t\t\tcase kComponentCanDoSelect:\n\t\t\t{\n\t\t\t\tswitch (GetSelectorForCanDo(inParameters))\n\t\t\t\t{\n\t\t\t\t\tcase kAudioCodecGetPropertyInfoSelect:\n\t\t\t\t\tcase kAudioCodecGetPropertySelect:\n\t\t\t\t\tcase kAudioCodecSetPropertySelect:\n\t\t\t\t\tcase kAudioCodecInitializeSelect:\n\t\t\t\t\tcase kAudioCodecUninitializeSelect: // was missing -- why?\n\t\t\t\t\tcase kAudioCodecAppendInputDataSelect:\n\t\t\t\t\tcase kAudioCodecProduceOutputDataSelect:\n\t\t\t\t\tcase kAudioCodecResetSelect:\n\t\t\t\t\t\ttheError = 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\ttheError = ComponentBase::ComponentEntryDispatch(inParameters, inThis);\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\t\n\t\t\tdefault:\n\t\t\t\t//\tthese selectors use the object pointer\n\t\t\t\tif(inThis != NULL)\n\t\t\t\t{\n\t\t\t\t\tswitch (inParameters->what)\n\t\t\t\t\t{\n\t\t\t\t\t\tcase kComponentVersionSelect:\n\t\t\t\t\t\t\ttheError = inThis->Version();\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecGetPropertyInfoSelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tPARAM(AudioCodecPropertyID, inPropertyID, 0, 3);\n\t\t\t\t\t\t\tPARAM(UInt32 *, outSize, 1, 3);\n\t\t\t\t\t\t\tPARAM(Boolean *, outWritable, 2, 3);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tUInt32 theSize = 0;\n\t\t\t\t\t\t\tBoolean isWritable = false;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tinThis->GetPropertyInfo(inPropertyID, theSize, isWritable);\n\t\t\t\t\t\t\tif(outSize != NULL)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t*outSize = theSize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif(outWritable != NULL)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t*outWritable = isWritable ? 1 : 0;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecGetPropertySelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tPARAM(AudioCodecPropertyID, inPropertyID, 0, 3);\n\t\t\t\t\t\t\tPARAM(UInt32 *, ioPropertyDataSize, 1, 3);\n\t\t\t\t\t\t\tPARAM(void *, outPropertyData, 2, 3);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif((ioPropertyDataSize != NULL) && (outPropertyData != NULL))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinThis->GetProperty(inPropertyID, *ioPropertyDataSize, outPropertyData);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecSetPropertySelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tPARAM(AudioCodecPropertyID, inPropertyID, 0, 3);\n\t\t\t\t\t\t\tPARAM(UInt32, inPropertyDataSize, 1, 3);\n\t\t\t\t\t\t\tPARAM(const void *, inPropertyData, 2, 3);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(inPropertyData != NULL)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinThis->SetProperty(inPropertyID, inPropertyDataSize, inPropertyData);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecInitializeSelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tPARAM(const AudioStreamBasicDescription *, inInputFormat, 0, 4);\n\t\t\t\t\t\t\tPARAM(const AudioStreamBasicDescription *, inOutputFormat, 1, 4);\n\t\t\t\t\t\t\tPARAM(const void *, inMagicCookie, 2, 4);\n\t\t\t\t\t\t\tPARAM(UInt32, inMagicCookieByteSize, 3, 4);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tinThis->Initialize(inInputFormat, inOutputFormat, inMagicCookie, inMagicCookieByteSize);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecUninitializeSelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinThis->Uninitialize();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecAppendInputDataSelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tPARAM(const void *, inInputData, 0, 4);\n\t\t\t\t\t\t\tPARAM(UInt32 *, ioInputDataByteSize, 1, 4);\n\t\t\t\t\t\t\tPARAM(UInt32 *, ioNumberPackets, 2, 4);\n\t\t\t\t\t\t\tPARAM(const AudioStreamPacketDescription *, inPacketDescription, 3, 4);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif((inInputData != NULL) && (ioInputDataByteSize != NULL))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif(ioNumberPackets != NULL)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tinThis->AppendInputData(inInputData, *ioInputDataByteSize, *ioNumberPackets, inPacketDescription);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tUInt32 theNumberPackets = 0;\n\t\t\t\t\t\t\t\t\tinThis->AppendInputData(inInputData, *ioInputDataByteSize, theNumberPackets, inPacketDescription);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecProduceOutputDataSelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tPARAM(void *, outOutputData, 0, 5);\n\t\t\t\t\t\t\tPARAM(UInt32 *, ioOutputDataByteSize, 1, 5);\n\t\t\t\t\t\t\tPARAM(UInt32 *, ioNumberPackets, 2, 5);\n\t\t\t\t\t\t\tPARAM(AudioStreamPacketDescription *, outPacketDescription, 3, 5);\n\t\t\t\t\t\t\tPARAM(UInt32 *, outStatus, 4, 5);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif((outOutputData != NULL) && (ioOutputDataByteSize != NULL) && (ioNumberPackets != NULL) && (outStatus != NULL))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t*outStatus = inThis->ProduceOutputPackets(outOutputData, *ioOutputDataByteSize, *ioNumberPackets, outPacketDescription);\n\t\t\t\t\t\t\t\tif(kAudioCodecProduceOutputPacketFailure == *outStatus)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n#if AC_NON_INTERLEAVED_SUPPORT\n\t\t\t\t\t\tcase kAudioCodecAppendInputBufferListSelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tPARAM(const AudioBufferList *, inBufferList, 0, 4);\n\t\t\t\t\t\t\tPARAM(UInt32 *, ioNumberPackets, 1, 4);\n\t\t\t\t\t\t\tPARAM(const AudioStreamPacketDescription *, inPacketDescription, 2, 4);\n\t\t\t\t\t\t\tPARAM(UInt32 *, outBytesConsumed, 3, 4);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif((inBufferList != NULL) && (outBytesConsumed != NULL))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif(ioNumberPackets != NULL)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tinThis->AppendInputBufferList(inBufferList, *ioNumberPackets, inPacketDescription, outBytesConsumed);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tUInt32 theNumberPackets = 0;\n\t\t\t\t\t\t\t\t\tinThis->AppendInputBufferList(inBufferList, theNumberPackets, inPacketDescription, outBytesConsumed);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecProduceOutputBufferListSelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tPARAM(AudioBufferList *, ioBufferList, 0, 4);\n\t\t\t\t\t\t\tPARAM(UInt32 *, ioNumberPackets, 1, 4);\n\t\t\t\t\t\t\tPARAM(AudioStreamPacketDescription *, outPacketDescription, 2, 4);\n\t\t\t\t\t\t\tPARAM(UInt32 *, outStatus, 3, 4);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif((ioBufferList != NULL) && (ioNumberPackets != NULL) && (outStatus != NULL))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t*outStatus = inThis->ProduceOutputBufferList(ioBufferList, *ioNumberPackets, outPacketDescription);\n\t\t\t\t\t\t\t\tif(kAudioCodecProduceOutputPacketFailure == *outStatus)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n#endif\t// AC_NON_INTERLEAVED_SUPPORT\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tcase kAudioCodecResetSelect:\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinThis->Reset();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\ttheError = badComponentSelector;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttheError = kAudio_ParamError;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t};\n\t}\n\tcatch(OSStatus inErrorCode)\n\t{\n\t\ttheError = inErrorCode;\n\t}\n\tcatch(...)\n\t{\n\t\ttheError = kAudioCodecUnspecifiedError;\n\t}\n\t\n\treturn theError;\n}\n#endif // !CA_USE_AUDIO_PLUGIN_ONLY && !TARGET_OS_IPHONE\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACCodec.h",
    "content": "/*\n     File: ACCodec.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__ACCodec_h__)\n#define __ACCodec_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioCodec.h>\n#else\n\t#include \"AudioCodec.h\"\n#endif\n\n#include \"ComponentBase.h\"\n\n//=============================================================================\n//\tACCodec\n//\n//\tA totally abstract base class for implementing components that conform to\n//\tthe AudioCodec API.\n//=============================================================================\n\nclass ACCodec : public ComponentBase\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tACCodec(AudioComponentInstance inInstance);\n\tvirtual\t\t\t~ACCodec();\n\t\n#if !CA_USE_AUDIO_PLUGIN_ONLY && !TARGET_OS_IPHONE\n\tstatic\t\tOSStatus ComponentEntryDispatch(ComponentParameters *p, ACCodec *This);\n#endif\n\n//\tProperty Management\npublic:\n\tvirtual void\tGetPropertyInfo(AudioCodecPropertyID inPropertyID, UInt32& outSize, Boolean& outWritable) = 0;\n\tvirtual void\tGetProperty(AudioCodecPropertyID inPropertyID, UInt32& ioPropertyDataSize, void* outPropertyData) = 0;\n\tvirtual void\tSetProperty(AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void* inPropertyData) = 0;\n\n//\tData Handling\npublic:\n\tvirtual void\tInitialize(const AudioStreamBasicDescription* inInputFormat, const AudioStreamBasicDescription* inOutputFormat, const void* inMagicCookie, UInt32 inMagicCookieByteSize) = 0;\n\tvirtual void\tUninitialize() = 0;\n\tvirtual void\tReset() = 0;\n\t\n\tvirtual void\tAppendInputData(const void* inInputData, UInt32& ioInputDataByteSize, UInt32& ioNumberPackets, const AudioStreamPacketDescription* inPacketDescription) = 0;\n\tvirtual void\tAppendInputBufferList(const AudioBufferList *ioBufferList, UInt32& ioNumberPackets, const AudioStreamPacketDescription *inPacketDescription, UInt32 *outBytesConsumed) = 0;\n\t\n\tvirtual UInt32\tProduceOutputPackets(void* outOutputData, UInt32& ioOutputDataByteSize, UInt32& ioNumberPackets, AudioStreamPacketDescription* outPacketDescription) = 0;\n\tvirtual UInt32\tProduceOutputBufferList(AudioBufferList *ioBufferList, UInt32& ioNumberPackets,  AudioStreamPacketDescription *outPacketDescription) = 0;\n\n//\tComponent Support\npublic:\n// used internally\n\tvirtual bool\tImplementsFeature(UInt32 feature) const = 0;\n};\n\n// when throwing static_cast to OSStatus so the catch will grab the error code correctly\n#define CODEC_THROW(err) \\\n\tthrow static_cast<OSStatus>(err)\n\n#define CODEC_THROW_IF(cond, err) \\\n\tif(bool(cond)) CODEC_THROW(err);\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACCodecDispatchTypes.h",
    "content": "/*\n     File: ACCodecDispatchTypes.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__ACCodecDispatchTypes_h__)\n#define __ACCodecDispatchTypes_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tnote that AudioCodec.h needs to be included prior to including this file\n#if !defined(__AudioCodec_h__)\n\t#error\tAudioCodec.h needs to be included prior to including this file\n#endif\n\n//=============================================================================\n//\tParameter Blocks for AudioCodec Component Routines\n//\n//\tNote that the arguments for all the AudioCodec component routines are\n//\t4 bytes in size (assuming pointers are 4 bytes). This means that even on\n//\tWindows (where all arguments are forced into SInt32s), we can get away with\n//\tmass casting the argument list through the appropriate paramblock structure.\n//\tThis gets around the fact that the component glue passes the arguments in\n//\ta different order depending on the platform and therefore makes writing the\n//\t calling glue and the dispatcher much simpler.\n//=============================================================================\n\n#if PRAGMA_STRUCT_ALIGN\n\t#pragma options align=mac68k\n#elif PRAGMA_STRUCT_PACKPUSH\n\t#pragma pack(push, 2)\n#elif PRAGMA_STRUCT_PACK\n\t#pragma pack(2)\n#endif\n\n#define\tAudioCodecStandardGluePBFields\tUInt8 componentFlags; UInt8 componentParamSize; SInt16 componentWhat\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecOpenGluePB {\n\tAudioCodecStandardGluePBFields;\n\tAudioCodec\t\t\t\t\t\tinCodec;\n\tvoid*\t\t\t\t\t\t\tunused;\n};\n#else\nstruct AudioCodecOpenGluePB {\n\tAudioCodecStandardGluePBFields;\n\tAudioCodec\t\t\t\t\t\tinCodec;\n};\n#endif\ntypedef struct AudioCodecOpenGluePB\tAudioCodecOpenGluePB;\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecGetPropertyInfoGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tBoolean*\t\t\t\t\t\toutWritable;\n\tUInt32*\t\t\t\t\t\t\toutSize;\n\tAudioCodecPropertyID\t\t\tinPropertyID;\n\tAudioCodec\t\t\t\t\t\tinCodec;\n};\n#else\nstruct AudioCodecGetPropertyInfoGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tAudioCodecPropertyID\t\t\tinPropertyID;\n\tUInt32*\t\t\t\t\t\t\toutSize;\n\tBoolean*\t\t\t\t\t\toutWritable;\n};\n#endif\ntypedef struct AudioCodecGetPropertyInfoGluePB\tAudioCodecGetPropertyInfoGluePB;\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecGetPropertyGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tvoid*\t\t\t\t\t\t\toutPropertyData;\n\tUInt32*\t\t\t\t\t\t\tioPropertyDataSize;\n\tAudioCodecPropertyID\t\t\tinPropertyID;\n\tAudioCodec\t\t\t\t\t\tinCodec;\n};\n#else\nstruct AudioCodecGetPropertyGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tAudioCodecPropertyID\t\t\tinPropertyID;\n\tUInt32*\t\t\t\t\t\t\tioPropertyDataSize;\n\tvoid*\t\t\t\t\t\t\toutPropertyData;\n};\n#endif\ntypedef struct AudioCodecGetPropertyGluePB\tAudioCodecGetPropertyGluePB;\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecSetPropertyGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tconst void*\t\t\t\t\t\tinPropertyData;\n\tUInt32\t\t\t\t\t\t\tinPropertyDataSize;\n\tAudioCodecPropertyID\t\t\tinPropertyID;\n\tAudioCodec\t\t\t\t\t\tinCodec;\n};\n#else\nstruct AudioCodecSetPropertyGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tAudioCodecPropertyID\t\t\tinPropertyID;\n\tUInt32\t\t\t\t\t\t\tinPropertyDataSize;\n\tconst void*\t\t\t\t\t\tinPropertyData;\n};\n#endif\ntypedef struct AudioCodecSetPropertyGluePB\tAudioCodecSetPropertyGluePB;\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecInitializeGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tUInt32\t\t\t\t\t\t\t\tinMagicCookieByteSize;\n\tconst void*\t\t\t\t\t\t\tinMagicCookie;\n\tconst AudioStreamBasicDescription*\tinOutputFormat;\n\tconst AudioStreamBasicDescription*\tinInputFormat;\n\tAudioCodec\t\t\t\t\t\t\tinCodec;\n};\n#else\nstruct AudioCodecInitializeGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tconst AudioStreamBasicDescription*\tinInputFormat;\n\tconst AudioStreamBasicDescription*\tinOutputFormat;\n\tconst void*\t\t\t\t\t\t\tinMagicCookie;\n\tUInt32\t\t\t\t\t\t\t\tinMagicCookieByteSize;\n};\n#endif\ntypedef struct AudioCodecInitializeGluePB\tAudioCodecInitializeGluePB;\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecUninitializeGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tAudioCodec\t\t\t\t\t\tinCodec;\n};\n#else\nstruct AudioCodecUninitializeGluePB\n{\n\tAudioCodecStandardGluePBFields;\n};\n#endif\ntypedef struct AudioCodecUninitializeGluePB\tAudioCodecUninitializeGluePB;\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecAppendInputDataGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tconst AudioStreamPacketDescription*\tinPacketDescription;\n\tUInt32*\t\t\t\t\t\t\t\tioNumberPackets;\n\tUInt32*\t\t\t\t\t\t\t\tioInputDataByteSize;\n\tconst void*\t\t\t\t\t\t\tinInputData;\n\tAudioCodec\t\t\t\t\t\t\tinCodec;\n};\n#else\nstruct AudioCodecAppendInputDataGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tconst void*\t\t\t\t\t\t\tinInputData;\n\tUInt32*\t\t\t\t\t\t\t\tioInputDataByteSize;\n\tUInt32*\t\t\t\t\t\t\t\tioNumberPackets;\n\tconst AudioStreamPacketDescription*\tinPacketDescription;\n};\n#endif\ntypedef struct AudioCodecAppendInputDataGluePB\tAudioCodecAppendInputDataGluePB;\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecProduceOutputPacketsGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tUInt32*\t\t\t\t\t\t\toutStatus;\n\tAudioStreamPacketDescription*\toutPacketDescription;\n\tUInt32*\t\t\t\t\t\t\tioNumberPackets;\n\tUInt32*\t\t\t\t\t\t\tioOutputDataByteSize;\n\tvoid*\t\t\t\t\t\t\toutOutputData;\n\tAudioCodec\t\t\t\t\t\tinCodec;\n};\n#else\nstruct AudioCodecProduceOutputPacketsGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tvoid*\t\t\t\t\t\t\toutOutputData;\n\tUInt32*\t\t\t\t\t\t\tioOutputDataByteSize;\n\tUInt32*\t\t\t\t\t\t\tioNumberPackets;\n\tAudioStreamPacketDescription*\toutPacketDescription;\n\tUInt32*\t\t\t\t\t\t\toutStatus;\n};\n#endif\ntypedef struct AudioCodecProduceOutputPacketsGluePB\tAudioCodecProduceOutputPacketsGluePB;\n\n#if\t!TARGET_OS_WIN32\nstruct AudioCodecResetGluePB\n{\n\tAudioCodecStandardGluePBFields;\n\tAudioCodec\t\t\t\t\t\tinCodec;\n};\n#else\nstruct AudioCodecResetGluePB\n{\n\tAudioCodecStandardGluePBFields;\n};\n#endif\ntypedef struct AudioCodecResetGluePB\tAudioCodecResetGluePB;\n\n#if PRAGMA_STRUCT_ALIGN\n\t#pragma options align=reset\n#elif PRAGMA_STRUCT_PACKPUSH\n\t#pragma pack(pop)\n#elif PRAGMA_STRUCT_PACK\n\t#pragma pack()\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACComponentResources.r",
    "content": "/*\n     File: ACComponentResources.r\n Abstract: ACComponentResources.r\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef GEN_MISSING\n\t#define GEN_MISSING 0\n#endif\n\n#ifndef thng_RezTemplateVersion\n\t#define thng_RezTemplateVersion\t2\n#endif\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"ConditionalMacros.r\"\n#include \"MacTypes.r\"\n#include \"Components.r\"\n\n//=============================================================================\n//\tPlatform constants for the thng resources\n//=============================================================================\n\n#if\tTARGET_OS_MAC && TARGET_API_MAC_OSX\n\t#define Target_PlatformType\t\t1000\n\t#define Target_CodeResType\t\t'dlle'\n\t#define kUseDLLEResource\t\t1\n#elif TARGET_OS_WIN32\n\t#define Target_PlatformType      platformWin32\n\t#define Target_CodeResType\t\t'dlle'\n\t#define kUseDLLEResource\t\t1\n#else\n\t#define Target_PlatformType\t\tplatformPowerPC\n\t#define Target_CodeResType\t\t'tppc'\n\t#define kUseDLLEResource\t\t0\n#endif\n\n#if kComponentIsThreadSafe\n\t#ifndef cmpThreadSafeOnMac\t// so we don't need Panther headers to build\n\t\t#define cmpThreadSafeOnMac\t0x10000000\n\t#endif\n\t#define COMPONENT_FLAGS\t\tcmpThreadSafeOnMac\n#else\n\t#define COMPONENT_FLAGS\t\t0\n#endif\n\n//=============================================================================\n//\tThe thng and related resources\n//\n//\tThe definitions below use the following macros, all of which must be\n//\tdefined. Note that kPrimaryResourceID is used to define two 'STR '\n//\tresources with consecutive IDs so be sure to space them at least two'\n//\tapart. Here's a sample of how to do the defines:\n//\t\n//\t#define kPrimaryResourceID\t\t\t\t128\n//\t#define kComponentType\t\t\t\t\t'aenc'\n//\t#define kComponentSubtype\t\t\t\t'ima4'\n//\t#define kComponentManufacturer\t\t\t'appl'\n//\t#define\tkComponentFlags\t\t\t\t\t0\n//\t#define kComponentVersion\t\t\t\t0x00010000\n//\t#define kComponentName\t\t\t\t\t\"Apple IMA4 Encoder\"\n//\t#define kComponentInfo\t\t\t\t\t\"An AudioCodec that encodes linear PCM data into IMA4\"\n//\t#define kComponentEntryPoint\t\t\t\"ACAppleIMA4EncoderEntry\"\n//\t#define\tkComponentPublicResourceMapType\t0\n//\t#define kComponentIsThreadSafe\t\t\t1\n//=============================================================================\n\n#ifndef AC_LOCALIZED\nresource 'strn' (kPrimaryResourceID, purgeable)\n{\n\tkComponentName\n};\n\nresource 'stri' (kPrimaryResourceID, purgeable)\n{\n\tkComponentInfo\n};\n#endif\n\n#if !GEN_MISSING\n\n#if kUseDLLEResource\n\n\tresource 'dlle' (kPrimaryResourceID)\n\t{\n\t\tkComponentEntryPoint\n\t};\n\n#endif\n\n#define kComponentRegistrationFlags\tcomponentHasMultiplePlatforms | componentDoAutoVersion | componentLoadResident\nresource 'thng' (kPrimaryResourceID, kComponentName)\n{\n\tkComponentType,\t\t\t\t\t\t\t\t\t\t\t//\tComponent type\n\tkComponentSubtype,\t\t\t\t\t\t\t\t\t\t//\tComponent subtype\n\tkComponentManufacturer,\t\t\t\t\t\t\t\t\t//\tComponent manufacturer\n\tkComponentFlags,\t\t\t\t\t\t\t\t\t\t//\tComponent flags\n\t0,\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\tComponent flags mask\n\t0, 0,\t\t\t\t\t\t\t\t\t\t\t\t\t//\tCode type, Code ID\n\t'strn',\tkPrimaryResourceID,\t\t\t\t\t\t\t\t//\tName resource type, resource ID\n\t'stri',\tkPrimaryResourceID,\t\t\t\t\t\t\t\t//\tInfo resource type, resource ID\n\t0, 0,\t\t\t\t\t\t\t\t\t\t\t\t\t//\tIcon resource type, resource ID\n\tkComponentVersion,\t\t\t\t\t\t\t\t\t\t//\tComponent version\n\tkComponentRegistrationFlags,\t\t\t\t\t\t\t//\tRegistration flags\n\t0,\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\tIcon family resource ID\n\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\tBeginning of platform info\n\t\tCOMPONENT_FLAGS,\t\t\t\t\t\t\t\t\t//\tComponent flags\n\t\tTarget_CodeResType, kPrimaryResourceID,\t\t\t\t//\tCode resource type, resource ID\n\t\tTarget_PlatformType,\t\t\t\t\t\t\t\t//\tPlatform type\n\t},\n#if thng_RezTemplateVersion >= 2\n\tkComponentPublicResourceMapType, kPrimaryResourceID\t\t//\tResource map type, resource map ID\n#endif\t\n};\n\n#else\t//\tGEN_MISSING\n\nresource 'thga' (kPrimaryResourceID) {\n\tkComponentType,\t\t\t\t\t\t\t\t\t\t\t//\tComponent type\n\tkComponentSubtype,\t\t\t\t\t\t\t\t\t\t//\tComponent subtype\n\tkComponentManufacturer,\t\t\t\t\t\t\t\t\t//\tComponent manufacturer\n\tkComponentFlags,\t\t\t\t\t\t\t\t\t\t//\tComponent flags\n\t0,\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\tComponent flags mask\n\t0, 0,\t\t\t\t\t\t\t\t\t\t\t\t\t//\tCode type, Code ID\n\t'strn',\tkPrimaryResourceID,\t\t\t\t\t\t\t\t//\tName resource type, resource ID\n\t'stri',\tkPrimaryResourceID,\t\t\t\t\t\t\t\t//\tInfo resource type, resource ID\n\t0, 0,\t\t\t\t\t\t\t\t\t\t\t\t\t//\tIcon resource type, resource ID\n\t'miss',\t\t\t\t\t\t\t\t\t\t\t\t\t//\tAlias component type\n\t'base',\t\t\t\t\t\t\t\t\t\t\t\t\t//\tAlias component subtype\n\t0,\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\tAlias component manufacturer\n\t0,\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\tAlias component flags\n\t0,\t\t\t\t\t\t\t\t\t\t\t\t\t\t//\tAlias component flags mask\n#if thng_RezTemplateVersion >= 2\n\tkComponentPublicResourceMapType, kPrimaryResourceID,\t//\tResource map type, resource map ID\n\tcmpAliasNoFlags\t\t\t\t\t\t\t\t\t\t\t//\tAlias flags\t\n#endif\n};\n\n#endif\t//\tGEN_MISSING\n\n#undef kPrimaryResourceID\n#undef kComponentType\n#undef kComponentSubtype\n#undef kComponentManufacturer\n#undef kComponentVersion\n#undef kComponentRegistrationFlags\n#undef kComponentName\n#undef kComponentInfo\n#undef kComponentEntryPoint\n#undef kComponentPublicResourceMapType\n#undef Target_PlatformType\n#undef Target_CodeResType\n#undef kUseDLLEResource\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACConditionalMacros.h",
    "content": "/*\n     File: ACConditionalMacros.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__ACConditionalMacros_h__)\n#define __ACConditionalMacros_h__\n\n//=============================================================================\n//\tThis file exists to make figuring out how to include system headers\n//\teasier. We throw in an include of the standard ConditionalMacros too.\n//=============================================================================\n\n//\tTargetConditionals.h defines the bare minimum we need\n#include \"TargetConditionals.h\"\n\n//\tDetermine whether or not to use framework style includes for system headers\n#if !defined(AC_Use_Framework_Includes)\n\t#if\tTARGET_OS_MAC && TARGET_RT_MAC_MACHO\n\t\t#define\tAC_Use_Framework_Includes\t1\n\t#else\n\t\t#define\tAC_Use_Framework_Includes\t0\n\t#endif\n#endif\n\n#if\tAC_Use_Framework_Includes\n\t#include <CoreServices/../Frameworks/CarbonCore.framework/Headers/ConditionalMacros.h>\n#else\n\t#include \"ConditionalMacros.h\"\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACPlugInDispatch.cpp",
    "content": "/*\n     File: ACPlugInDispatch.cpp\n Abstract: ACPlugInDispatch.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if AUDIOCODECS_SUPPORT_PLUGINS\n#include \"ACPlugInDispatch.h\"\n#include \"CAXException.h\"\n#include \"ACCodec.h\"\n#include <new>\n\n#define ACPI ((AudioComponentPlugInInstance *)self)\n#define ACC\t((ACCodec *)&ACPI->mInstanceStorage)\n\nstatic OSStatus\tGetPropertyInfo(void *self, AudioCodecPropertyID inPropertyID, UInt32 *outSize, Boolean *outWritable)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tUInt32 size;\n\t\tBoolean writable;\n\t\tACC->GetPropertyInfo(inPropertyID, size, writable);\n\t\tif (outSize) *outSize = size;\n\t\tif (outWritable) *outWritable = writable;\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus\tGetProperty(void *self, AudioCodecPropertyID inPropertyID, UInt32 *ioPropertyDataSize, void *outPropertyData)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tACC->GetProperty(inPropertyID, *ioPropertyDataSize, outPropertyData);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus\tSetProperty(void *self, AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void *inPropertyData)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tACC->SetProperty(inPropertyID, inPropertyDataSize, inPropertyData);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\n\nstatic OSStatus Initialize(void *self, const AudioStreamBasicDescription *inInputFormat, const AudioStreamBasicDescription *inOutputFormat, const void *inMagicCookie, UInt32 inMagicCookieByteSize)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tACC->Initialize(inInputFormat, inOutputFormat, inMagicCookie, inMagicCookieByteSize);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus Uninitialize(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tACC->Uninitialize();\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus\tAppendInputData(void *self, const void *inInputData, UInt32 *ioInputDataByteSize, UInt32 *ioNumberPackets, const AudioStreamPacketDescription *inPacketDescription)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tUInt32 npackets = (ioNumberPackets != NULL) ? *ioNumberPackets : 0;\n\t\tACC->AppendInputData(inInputData, *ioInputDataByteSize, npackets, inPacketDescription);\n        if(ioNumberPackets != NULL)\n            *ioNumberPackets = npackets;\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus\tProduceOutputPackets(void *self, void *outOutputData, UInt32 *ioOutputDataByteSize, UInt32 *ioNumberPackets, AudioStreamPacketDescription *outPacketDescription, UInt32 *outStatus)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t*outStatus = ACC->ProduceOutputPackets(outOutputData, *ioOutputDataByteSize, *ioNumberPackets, outPacketDescription);\n\t\tif (*outStatus == kAudioCodecProduceOutputPacketFailure)\n\t\t\tresult = kAudio_ParamError;\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus\tReset(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tACC->Reset();\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\n#if AC_NON_INTERLEAVED_SUPPORT\nstatic OSStatus AppendInputBufferList(void *self, const AudioBufferList *ioBufferList, UInt32 *inNumberPackets, const AudioStreamPacketDescription *inPacketDescription, UInt32 *outBytesConsumed)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tif((ioBufferList != NULL) && (outBytesConsumed != NULL))\n\t\t{\n\t\t\tif(inNumberPackets != NULL)\n\t\t\t{\n\t\t\t\tACC->AppendInputBufferList(ioBufferList, *inNumberPackets, inPacketDescription, outBytesConsumed);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tUInt32 theNumberPackets = 0;\n\t\t\t\tACC->AppendInputBufferList(ioBufferList, theNumberPackets, inPacketDescription, outBytesConsumed);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tresult = kAudio_ParamError;\n\t\t}\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus ProduceOutputBufferList(void *self, AudioBufferList *ioBufferList, UInt32 *ioNumberPackets, AudioStreamPacketDescription *outPacketDescription, UInt32 *outStatus)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tif((ioBufferList != NULL) && (ioNumberPackets != NULL) && (outStatus != NULL))\n\t\t{\n\t\t\t*outStatus = ACC->ProduceOutputBufferList(ioBufferList, *ioNumberPackets, outPacketDescription);\n\t\t\tif(kAudioCodecProduceOutputPacketFailure == *outStatus)\n\t\t\t{\n\t\t\t\tresult = kAudio_ParamError;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tresult = kAudio_ParamError;\n\t\t}\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n#endif\n\n#if TARGET_OS_IPHONE && AUDIOCONV_HAVE_AMC\n// The ACTransformerCodecBase class is the base for ALL hardware codecs.\n// No need to check for ImplementFeature...\n#include \"ACTransformerManager.h\"\n#define ACTM\t((ACTransformerCodecBase*)&ACPI->mInstanceStorage)\n\nstatic OSStatus\tAcquireHardware(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n        ACTM->AcquireHardware();\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus\tReleaseHardware(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n        ACTM->ReleaseHardware();\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n#endif // TARGET_OS_IPHONE && AUDIOCONV_HAVE_AMC\n\n\nAudioComponentMethod AudioCodecLookup::Lookup (SInt16 selector)\n{\n\tswitch (selector) {\n\t\tcase kAudioCodecGetPropertyInfoSelect:\t\t\treturn (AudioComponentMethod)GetPropertyInfo;\n\t\tcase kAudioCodecGetPropertySelect:\t\t\t\treturn (AudioComponentMethod)GetProperty;\n\t\tcase kAudioCodecSetPropertySelect:\t\t\t\treturn (AudioComponentMethod)SetProperty;\n\t\tcase kAudioCodecInitializeSelect:\t\t\t\treturn (AudioComponentMethod)Initialize;\n\t\tcase kAudioCodecUninitializeSelect:\t\t\t\treturn (AudioComponentMethod)Uninitialize;\n\t\tcase kAudioCodecAppendInputDataSelect:\t\t\treturn (AudioComponentMethod)AppendInputData;\n\t\tcase kAudioCodecProduceOutputDataSelect:\t\treturn (AudioComponentMethod)ProduceOutputPackets;\n\t\tcase kAudioCodecResetSelect:\t\t\t\t\treturn (AudioComponentMethod)Reset;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\treturn NULL;\n}\n\n#if AC_NON_INTERLEAVED_SUPPORT\nAudioComponentMethod AudioCodecNonInterleavedEncoderLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AudioCodecLookup::Lookup(selector);\n\tif (method)\n\t\treturn method;\n\t\n\tif (selector == kAudioCodecAppendInputBufferListSelect)\n\t\treturn (AudioComponentMethod)AppendInputBufferList;\n\t\n\treturn NULL;\n}\n\nAudioComponentMethod AudioCodecNonInterleavedDecoderLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AudioCodecLookup::Lookup(selector);\n\tif (method)\n\t\treturn method;\n\t\n\tif (selector == kAudioCodecProduceOutputBufferListSelect)\n\t\treturn (AudioComponentMethod)ProduceOutputBufferList;\n\t\n\treturn NULL;\n}\n#endif\n\n#if TARGET_OS_IPHONE && AUDIOCONV_HAVE_AMC\n#include \"AudioCodecPriv.h\"\n\nAudioComponentMethod AudioCodecHWCodecLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AudioCodecLookup::Lookup(selector);\n\tif (method) return method;\n\t\n\tswitch (selector) {\n\t\tcase kAudioCodecAcquireHardwareSelect:\t\t\treturn (AudioComponentMethod)AcquireHardware;\n\t\tcase kAudioCodecReleaseHardwareSelect:\t\t\treturn (AudioComponentMethod)ReleaseHardware;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\treturn NULL;\t\n}\n#endif // TARGET_OS_IPHONE && AUDIOCONV_HAVE_AMC\n\n#endif // AUDIOCODECS_SUPPORT_PLUGINS\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACPlugInDispatch.h",
    "content": "/*\n     File: ACPlugInDispatch.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __ACPlugInDispatch_h__\n#define __ACPlugInDispatch_h__\n\n#include \"ComponentBase.h\"\n\nstruct AudioCodecLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AudioCodecFactory : public APFactory<AudioCodecLookup, Implementor>\n{\n};\n\n#if AC_NON_INTERLEAVED_SUPPORT\nstruct AudioCodecNonInterleavedEncoderLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AudioCodecNonInterleavedEncoderFactory : public APFactory<AudioCodecNonInterleavedEncoderLookup, Implementor>\n{\n};\n\nstruct AudioCodecNonInterleavedDecoderLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AudioCodecNonInterleavedDecoderFactory : public APFactory<AudioCodecNonInterleavedDecoderLookup, Implementor>\n{\n};\n#endif\n\n#if TARGET_OS_IPHONE\nstruct AudioCodecHWCodecLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AudioCodecHWCodecFactory : public APFactory<AudioCodecHWCodecLookup, Implementor>\n{\n};\n#endif // TARGET_OS_IPHONE\n\n#endif // __ACPlugInDispatch_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACSimpleCodec.cpp",
    "content": "/*\n     File: ACSimpleCodec.cpp\n Abstract: ACSimpleCodec.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"ACSimpleCodec.h\"\n#include <string.h>\n\n//=============================================================================\n//\tACSimpleCodec\n//=============================================================================\n\nstatic const UInt32 kBufferPad = 64; // this is used to prevent end from passing start.\n\nACSimpleCodec::ACSimpleCodec(UInt32 inInputBufferByteSize, AudioComponentInstance inInstance)\n:\n\tACBaseCodec(inInstance),\n\tmInputBuffer(NULL),\n\tmInputBufferByteSize(inInputBufferByteSize+kBufferPad),\n\tmInputBufferStart(0),\n\tmInputBufferEnd(0)\n{\n}\n\nACSimpleCodec::~ACSimpleCodec()\n{\n\tdelete[] mInputBuffer;\n}\n\nvoid\tACSimpleCodec::Initialize(const AudioStreamBasicDescription* inInputFormat, const AudioStreamBasicDescription* inOutputFormat, const void* inMagicCookie, UInt32 inMagicCookieByteSize)\n{\n\tReallocateInputBuffer(mInputBufferByteSize - kBufferPad);\n\n\t// By definition CBR has this greater than 0. We must avoid a div by 0 error in AppendInputData()\n\t// Note this will cause us to fail initialization which is intended\n\tif (mInputFormat.mBytesPerPacket == 0)\n\t{\n\t\tCODEC_THROW(kAudioCodecUnsupportedFormatError);\n\t}\t\n\t\n\tACBaseCodec::Initialize(inInputFormat, inOutputFormat, inMagicCookie, inMagicCookieByteSize);\n}\n\nvoid\tACSimpleCodec::Uninitialize()\n{\n\t//\tget rid of the buffer\n\tdelete[] mInputBuffer;\n\tmInputBuffer = NULL;\n\t\n\t//\treset the ring buffer state\n\tmInputBufferStart = 0;\n\tmInputBufferEnd = 0;\n\t\n\tACBaseCodec::Uninitialize();\n}\n\nvoid\tACSimpleCodec::Reset()\n{\n\t//\tclear the entire input buffer\n\tif (mInputBuffer) { // could be called before allocated.\n\t\tmemset(mInputBuffer, 0, mInputBufferByteSize);\n\t}\n\t\n\t//\treset the ring buffer state\n\tmInputBufferStart = 0;\n\tmInputBufferEnd = 0;\n\t\n\tACBaseCodec::Reset();\n}\n\nUInt32\tACSimpleCodec::GetInputBufferByteSize() const\n{\n\treturn mInputBufferByteSize - kBufferPad; // minus kBufferPad to prevent end moving past start\n}\n\nUInt32\tACSimpleCodec::GetUsedInputBufferByteSize() const\n{\n\tUInt32 theAnswer = 0;\n\t\n\t//\tthis object uses a ring buffer\n\tif(mInputBufferStart <= mInputBufferEnd)\n\t{\n\t\t//\tthe active region is contiguous\n\t\ttheAnswer = mInputBufferEnd - mInputBufferStart;\n\t}\n\telse\n\t{\n\t\t//\tthe active region wraps around \n\t\ttheAnswer = (mInputBufferByteSize - mInputBufferStart) + mInputBufferEnd;\n\t}\n\t\n\treturn theAnswer;\n}\n\n\nvoid\tACSimpleCodec::AppendInputData(const void* inInputData, UInt32& ioInputDataByteSize, UInt32& ioNumberPackets, const AudioStreamPacketDescription* inPacketDescription)\n{\n\t//\tthis buffer handling code doesn't care about such things as the packet descriptions\n\tif(!mIsInitialized) CODEC_THROW(kAudioCodecStateError);\n\t\n\t//\tthis is a ring buffer we're dealing with, so we need to set up a few things\n\tUInt32 theUsedByteSize = GetUsedInputBufferByteSize();\n\tUInt32 theAvailableByteSize = GetInputBufferByteSize() - theUsedByteSize;\n\n\tUInt32 theMaxAvailableInputBytes = ioInputDataByteSize; // we can't consume more than we get\n\n\tconst Byte* theInputData = static_cast<const Byte*>(inInputData);\n\t\n\t// >>jamesmcc: added this because ioNumberPackets was not being updated if less was taken than given.\n\t// THIS ASSUMES CBR!\n\tUInt32 bytesPerPacketOfInput = mInputFormat.mBytesPerPacket;\n\tUInt32 theAvailablePacketSize = theAvailableByteSize / bytesPerPacketOfInput;\n\t\n\tUInt32 minPacketSize = ioNumberPackets < theAvailablePacketSize ? ioNumberPackets : theAvailablePacketSize;\n\tUInt32 minByteSize = minPacketSize * bytesPerPacketOfInput;\n\t\n\t//\twe can copy only as much data as there is or up to how much space is availiable\n\tioNumberPackets = minPacketSize;\n\tioInputDataByteSize = minByteSize;\n\t\n\t// ioInputDataByteSize had better be <= to theMaxAvailableInputBytes or we're screwed\n\tif (ioInputDataByteSize > theMaxAvailableInputBytes)\n\t{\n\t\tCODEC_THROW(kAudioCodecStateError);\n\t}\n\t// <<jamesmcc \n\t\n\t//\tnow we have to copy the data taking into account the wrap around and where the start is\n\tif(mInputBufferEnd + ioInputDataByteSize < mInputBufferByteSize)\n\t{\n\t\t//\tno wrap around here\n\t\tmemcpy(mInputBuffer + mInputBufferEnd, theInputData, ioInputDataByteSize);\n\t\t\n\t\t//\tadjust the end point\n\t\tmInputBufferEnd += ioInputDataByteSize;\n\t}\n\telse\n\t{\n\t\t//\tthe copy will wrap\n\t\t\n\t\t//\tcopy the first part\n\t\tUInt32 theBeforeWrapByteSize = mInputBufferByteSize - mInputBufferEnd;\n\t\tmemcpy(mInputBuffer + mInputBufferEnd, theInputData, theBeforeWrapByteSize);\n\t\t\n\t\t//\tand the rest\n\t\tUInt32 theAfterWrapByteSize = ioInputDataByteSize - theBeforeWrapByteSize;\n\t\tmemcpy(mInputBuffer, theInputData + theBeforeWrapByteSize, theAfterWrapByteSize);\n\t\t\n\t\t//\tadjust the end point\n\t\tmInputBufferEnd = theAfterWrapByteSize;\n\t}\n\t\n}\n\n\nvoid\tACSimpleCodec::ZeroPadInputData(UInt32& ioNumberPackets, const AudioStreamPacketDescription* inPacketDescription)\n{\n\t//\tthis buffer handling code doesn't care about such things as the packet descriptions\n\tif(!mIsInitialized) CODEC_THROW(kAudioCodecStateError);\n\t\n\t\n\t//\tthis is a ring buffer we're dealing with, so we need to set up a few things\n\tUInt32 theUsedByteSize = GetUsedInputBufferByteSize();\n\tUInt32 theAvailableByteSize = GetInputBufferByteSize() - theUsedByteSize;\n\t\n\t// >>jamesmcc: added this because ioNumberPackets was not being updated if less was taken than given.\n\t// THIS ASSUMES CBR!\n\tUInt32 bytesPerPacketOfInput = mInputFormat.mBytesPerPacket;\n\tUInt32 theAvailablePacketSize = theAvailableByteSize / bytesPerPacketOfInput;\n\t\n\tUInt32 minPacketSize = ioNumberPackets < theAvailablePacketSize ? ioNumberPackets : theAvailablePacketSize;\n\tUInt32 minByteSize = minPacketSize * bytesPerPacketOfInput;\n\t\n\t//\twe can copy only as much data as there is or up to how much space is availiable\n\tioNumberPackets = minPacketSize;\n\t\n\t// <<jamesmcc \n\t\n\t//\tnow we have to copy the data taking into account the wrap around and where the start is\n\tif(mInputBufferEnd + minByteSize < mInputBufferByteSize)\n\t{\n\t\t//\tno wrap around here\n\t\tmemset(mInputBuffer + mInputBufferEnd, 0, minByteSize);\n\t\t\n\t\t//\tadjust the end point\n\t\tmInputBufferEnd += minByteSize;\n\t}\n\telse\n\t{\n\t\t//\tthe copy will wrap\n\t\t\n\t\t//\tcopy the first part\n\t\tUInt32 theBeforeWrapByteSize = mInputBufferByteSize - mInputBufferEnd;\n\t\tmemset(mInputBuffer + mInputBufferEnd, 0, theBeforeWrapByteSize);\n\t\t\n\t\t//\tand the rest\n\t\tUInt32 theAfterWrapByteSize = minByteSize - theBeforeWrapByteSize;\n\t\tmemset(mInputBuffer, 0, theAfterWrapByteSize);\n\t\t\n\t\t//\tadjust the end point\n\t\tmInputBufferEnd = theAfterWrapByteSize;\n\t}\n}\n\n\nvoid\tACSimpleCodec::ConsumeInputData(UInt32 inConsumedByteSize)\n{\n\t//\tthis is a convenience routine to make maintaining the ring buffer state easy\n\tUInt32 theContiguousRange = GetInputBufferContiguousByteSize();\n\t\n\tif(inConsumedByteSize > GetUsedInputBufferByteSize()) CODEC_THROW(kAudioCodecUnspecifiedError);\n\t\n\tif(inConsumedByteSize <= theContiguousRange)\n\t{\n\t\t//\tthe region to consume doesn't wrap\n\t\t\n\t\t//\tfigure out how much to consume\n\t\tinConsumedByteSize = (theContiguousRange < inConsumedByteSize) ? theContiguousRange : inConsumedByteSize;\n\t\t\n\t\t//\tclear the consumed bits\n\t\tmemset(mInputBuffer + mInputBufferStart, 0, inConsumedByteSize);\n\t\t\n\t\t//\tadjust the start\n\t\tmInputBufferStart += inConsumedByteSize;\n\t}\n\telse\n\t{\n\t\t//\tthe region to consume will wrap\n\t\t\n\t\t//\tclear the bits to the end of the buffer\n\t\tmemset(mInputBuffer + mInputBufferStart, 0, theContiguousRange);\n\t\t\n\t\t//\tnow clear the bits left from the start\n\t\tmemset(mInputBuffer, 0, inConsumedByteSize - theContiguousRange);\n\t\t\n\t\t//\tadjust the start\n\t\tmInputBufferStart = inConsumedByteSize - theContiguousRange;\n\t}\n}\n\n\nByte* ACSimpleCodec::GetBytes(UInt32& ioNumberBytes) const\n{\n\t// if a client's algorithm has to have contiguous data and mInputBuffer wraps, then someone has to make a copy.\n\t// I can do it more efficiently than the client. \n\t\n\tif(!mIsInitialized) CODEC_THROW(kAudioCodecStateError);\n\n\tUInt32 theUsedByteSize = GetUsedInputBufferByteSize();\n\t//UInt32 theAvailableByteSize = GetInputBufferByteSize() - theUsedByteSize;\n\t\n\tif (ioNumberBytes > theUsedByteSize) ioNumberBytes = theUsedByteSize;\n\t\t\n\tSInt32 leftOver = mInputBufferStart + ioNumberBytes - mInputBufferByteSize;\n\t\n\tif(leftOver > 0)\n\t{\n\t\t// need to copy beginning of buffer to the end. \n\t\t// We cleverly over allocated our buffer space to make this possible.\n\t\tmemmove(mInputBuffer + mInputBufferByteSize, mInputBuffer, leftOver);\n\t}\n\t\n\treturn GetInputBufferStart();\n}\n\n\nvoid\tACSimpleCodec::ReallocateInputBuffer(UInt32 inInputBufferByteSize)\n{\n\tmInputBufferByteSize = inInputBufferByteSize + kBufferPad;\n\t\n\t//\ttoss the old buffer\n\tdelete[] mInputBuffer;\n\tmInputBuffer = NULL;\n\t\n\t//\tallocate the new one\n\t// allocate extra in order to allow making contiguous data.\n\tUInt32 allocSize = 2*inInputBufferByteSize + kBufferPad;\n\tmInputBuffer = new Byte[allocSize];\n\tmemset(mInputBuffer, 0, allocSize);\n\t\n\t//\treset the ring buffer state\n\tmInputBufferStart = 0;\n\tmInputBufferEnd = 0;\n}\n\nvoid\tACSimpleCodec::GetPropertyInfo(AudioCodecPropertyID inPropertyID, UInt32& outPropertyDataSize, Boolean& outWritable)\n{\n\tswitch(inPropertyID)\n\t{\n\t\tcase kAudioCodecPropertyInputBufferSize:\n\t\t\toutPropertyDataSize = SizeOf32(UInt32);\n\t\t\toutWritable = true;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tACBaseCodec::GetPropertyInfo(inPropertyID, outPropertyDataSize, outWritable);\n\t\t\tbreak;\n\t}\n\n}\n\nvoid\tACSimpleCodec::SetProperty(AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void* inPropertyData)\n{\n\tswitch(inPropertyID)\n\t{\n\t\tcase kAudioCodecPropertyInputBufferSize:\n\t\t\tif(inPropertyDataSize == sizeof(UInt32))\n\t\t\t{\n\t\t\t\tReallocateInputBuffer(*reinterpret_cast<const UInt32*>(inPropertyData));\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tCODEC_THROW(kAudioCodecBadPropertySizeError);\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n            ACBaseCodec::SetProperty(inPropertyID, inPropertyDataSize, inPropertyData);\n            break;            \n    }\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/ACSimpleCodec.h",
    "content": "/*\n     File: ACSimpleCodec.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__ACSimpleCodec_h__)\n#define __ACSimpleCodec_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"ACBaseCodec.h\"\n\n//=============================================================================\n//\tACSimpleCodec\n//\n//\tThis extension of ACBaseCodec provides for a simple ring buffer to handle\n//\tinput data.\n//=============================================================================\n\nclass ACSimpleCodec\n:\n\tpublic ACBaseCodec\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tACSimpleCodec(UInt32 inInputBufferByteSize, AudioComponentInstance inInstance);\n\tvirtual\t\t\t\t~ACSimpleCodec();\n\n//\tData Handling\npublic:\n\tvirtual void\t\tInitialize(const AudioStreamBasicDescription* inInputFormat, const AudioStreamBasicDescription* inOutputFormat, const void* inMagicCookie, UInt32 inMagicCookieByteSize) = 0;\n\tvirtual void\t\tUninitialize();\n\tvirtual void\t\tReset();\n\n\tvirtual void\t\tAppendInputData(const void* inInputData, UInt32& ioInputDataByteSize, UInt32& ioNumberPackets, const AudioStreamPacketDescription* inPacketDescription);\n\tvirtual void\t\tZeroPadInputData(UInt32& ioNumberPackets, const AudioStreamPacketDescription* inPacketDescription);\n\tvirtual UInt32\t\tGetInputBufferByteSize() const;\n\tvirtual UInt32\t\tGetUsedInputBufferByteSize() const;\n\tvirtual void\t\tGetPropertyInfo(AudioCodecPropertyID inPropertyID, UInt32& outPropertyDataSize, Boolean& outWritable);\n\tvirtual void\t\tSetProperty(AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize, const void* inPropertyData);\n\nprotected:\n\tvoid\t\t\t\tConsumeInputData(UInt32 inConsumedByteSize);\t\n\tByte*\t\t\t\tGetInputBufferStart() const { return mInputBuffer + mInputBufferStart; }\n\tUInt32\t\t\t\tGetInputBufferContiguousByteSize() const { return (mInputBufferStart <= mInputBufferEnd) ? (mInputBufferEnd - mInputBufferStart) : (mInputBufferByteSize - mInputBufferStart); }\n\tvirtual void\t\tReallocateInputBuffer(UInt32 inInputBufferByteSize);\n\t\n\t// returns a pointer to contiguous bytes. \n\t// will do some copying if the request wraps around the internal buffer.\n\t// request must be less than available bytes\n\tByte*\t\t\t\tGetBytes(UInt32& ioNumberBytes) const;\n\nprivate:\t\n\tByte*\t\t\t\tmInputBuffer;\n\tUInt32\t\t\t\tmInputBufferByteSize;\n\tUInt32\t\t\t\tmInputBufferStart;\n\tUInt32\t\t\t\tmInputBufferEnd;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/GetCodecBundle.cpp",
    "content": "/*\n     File: GetCodecBundle.cpp\n Abstract: GetCodecBundle.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"GetCodecBundle.h\"\n\n#if TARGET_OS_WIN32\n\t#include \"CAWin32StringResources.h\"\n#endif\n\n#if TARGET_OS_WIN32\n#define kCodecBundleID\t\t\"com.apple.audio.codecs.Components\"\n#else\nconst CFStringRef kCodecBundleID = CFSTR(\"com.apple.audio.codecs.Components\");\n#endif\n\nCFBundleRef GetCodecBundle()\n{\n\tstatic CFBundleRef sAudioCodecBundle = 0;\n\tif (!sAudioCodecBundle) \n\t{\n\t#if TARGET_OS_WIN32\n\t\tsAudioCodecBundle = CFBundleGetBundleWithIdentifier(CFSTR(kCodecBundleID));\n\t#else\n\t\tsAudioCodecBundle = CFBundleGetBundleWithIdentifier(kCodecBundleID);\n\t#endif\n\t\tif (sAudioCodecBundle)\n\t\t{\n\t\t\tCFRetain(sAudioCodecBundle);\n\t\t}\n\t}\n\treturn sAudioCodecBundle;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioCodecs/ACPublic/GetCodecBundle.h",
    "content": "/*\n     File: GetCodecBundle.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef _GetCodecBundle_\n#define _GetCodecBundle_\n\n#include <TargetConditionals.h>\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CFBundle.h>\n#else\n\t#include \"CFBundle.h\"\n#endif\n\nCFBundleRef GetCodecBundle();\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/AudioFileComponentBase.cpp",
    "content": "/*\n     File: AudioFileComponentBase.cpp\n Abstract: AudioFileComponentBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioFileComponent.h>\n#else\n\t#include \"AudioFileComponent.h\"\n#endif\n\n#include \"AudioFileComponentBase.h\"\n\n#if TARGET_OS_MAC\n\t#if __LP64__\n\t\t// comp instance, parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_index + 1];\n\t#else\n\t\t// parameters in reverse order, then comp instance\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_nparams - 1 - _index];\n\t#endif\n#elif TARGET_OS_WIN32\n\t\t// (no comp instance), parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_index];\n#endif\n\n#define ACPI ((AudioComponentPlugInInstance *)self)\n#define AFC\t((AudioFileComponentBase *)&ACPI->mInstanceStorage)\n\n//----------------------------------------------------------------------------------------\n\nstatic OSStatus CreateURL(\n\t\t\t\t\t\t\t\tvoid *                            self,\n\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags)\n{\n\treturn AFC->AFAPI_CreateURL(inFileRef, inFormat, inFlags);\n}\n\nstatic OSStatus OpenURL(\n\t\t\t\t\t\t\t\tvoid *                            self,\n\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef, \n\t\t\t\t\t\t\t\tSInt8\t\t\t\t\t\t\t\tinPermissions, \n\t\t\t\t\t\t\t\tint\t\t\t\t\t\t\t\t\tinFileDescriptor)\n{\n\treturn AFC->AFAPI_OpenURL(inFileRef, inPermissions, inFileDescriptor);\n}\n\nstatic OSStatus OpenWithCallbacks(\n\t\t\t\t\t\t\t\tvoid *                            self,\n\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\t\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\t\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\t\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\t\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc)\n{\n\treturn AFC->AFAPI_OpenWithCallbacks(inRefCon, inReadFunc, inWriteFunc, inGetSizeFunc, inSetSizeFunc);\n}\n\nstatic OSStatus InitializeWithCallbacks(\n\t\t\t\t\t\t\t\tvoid *                            self,\n\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\t\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\t\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\t\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\t\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFileType,\n\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags)\n{\n\treturn AFC->AFAPI_InitializeWithCallbacks(inRefCon, inReadFunc, inWriteFunc, inGetSizeFunc, inSetSizeFunc, inFileType, inFormat, inFlags);\n}\n\nstatic OSStatus Close(\n\t\t\t\t\t\t\t\tvoid *                            self)\n{\n\treturn AFC->AFAPI_Close();\n}\n\nstatic OSStatus Optimize(\n\t\t\t\t\t\t\t\tvoid *                            self)\n{\n\treturn AFC->AFAPI_Optimize();\n}\n\nstatic OSStatus ReadBytes(\n\t\t\t\t\t\t\t\tvoid *                            self,\n\t\t\t\t\t\t\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\tvoid\t\t\t*outBuffer)\n{\n\treturn AFC->AFAPI_ReadBytes(inUseCache, inStartingByte, ioNumBytes, outBuffer);\n}\n\n\nstatic OSStatus WriteBytes(\n\t\t\t\t\t\t\t\tvoid *         self,\n\t\t\t\t\t\t\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\tconst void\t\t*inBuffer)\n{\n\treturn AFC->AFAPI_WriteBytes(inUseCache, inStartingByte, ioNumBytes, inBuffer);\n}\n\n\nstatic OSStatus ReadPackets(\n\t\t\t\t\t\t\t\tvoid *                        self,\n\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*outNumBytes,\n\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)\n{\n\treturn AFC->AFAPI_ReadPackets(inUseCache, outNumBytes, outPacketDescriptions, \n\t\tinStartingPacket, ioNumPackets, outBuffer);\n}\n\nstatic OSStatus ReadPacketData(\n\t\t\t\t\t\t\t\tvoid *                        self,\n\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)\n{\n\treturn AFC->AFAPI_ReadPacketData(inUseCache, ioNumBytes, outPacketDescriptions, \n\t\tinStartingPacket, ioNumPackets, outBuffer);\n}\n\n#if COREAUDIOTYPES_VERSION < 1050\nstatic OSStatus WritePackets(\n\t\t\t\t\t\t\t\tvoid *                            self,\n\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumBytes,\n\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t\t*inPacketDescriptions,\n\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\tconst void\t\t\t\t\t\t\t*inBuffer)\n#else\nstatic OSStatus WritePackets(\n\t\t\t\t\t\t\t\tvoid *                            self,\n\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumBytes,\n\t\t\t\t\t\t\t\tconst AudioStreamPacketDescription\t*inPacketDescriptions,\n\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\tconst void\t\t\t\t\t\t\t*inBuffer)\n#endif\n{\n\treturn AFC->AFAPI_WritePackets(inUseCache, inNumBytes, \n\t\t(const AudioStreamPacketDescription\t*)inPacketDescriptions, // this should be const (and is in 10.5 headers)\n\t\tinStartingPacket, ioNumPackets, inBuffer);\n}\n\nstatic OSStatus GetPropertyInfo(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tAudioFilePropertyID    inPropertyID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable)\n{\n\treturn AFC->AFAPI_GetPropertyInfo(inPropertyID, outDataSize, isWritable);\n}\n\nstatic OSStatus GetProperty(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioData)\n{\n\treturn AFC->AFAPI_GetProperty(inPropertyID, ioDataSize, ioData);\n}\n\n\nstatic OSStatus SetProperty(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\tconst void\t\t\t\t*inData)\n{\n\treturn AFC->AFAPI_SetProperty(inPropertyID, inDataSize, inData);\n}\n\nstatic OSStatus CountUserData(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outNumberItems)\n{\n\treturn AFC->AFAPI_CountUserData(inUserDataID, outNumberItems);\n}\n\nstatic OSStatus GetUserDataSize(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize)\n{\n\treturn AFC->AFAPI_GetUserDataSize(inUserDataID, inIndex, outDataSize);\n}\n\nstatic OSStatus GetUserData(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioUserDataSize,\n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*outUserData)\n{\n\treturn AFC->AFAPI_GetUserData(inUserDataID, inIndex, ioUserDataSize, outUserData);\n}\n\nstatic OSStatus SetUserData(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinUserDataSize,\n\t\t\t\t\t\t\t\tconst void\t\t\t\t*inUserData)\n{\n\treturn AFC->AFAPI_SetUserData(inUserDataID, inIndex, inUserDataSize, inUserData);\n}\n\nstatic OSStatus RemoveUserData(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex)\n{\n\treturn AFC->AFAPI_RemoveUserData(inUserDataID, inIndex);\n}\n\nstatic OSStatus ExtensionIsThisFormat(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tCFStringRef\t\t\t\tinExtension,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outResult)\n{\n\tAudioFileFormatBase* aff = AFC->GetAudioFileFormatBase();\n\tif (!aff) return kAudio_ParamError;\n\t\n\tUInt32 res = aff->ExtensionIsThisFormat(inExtension);\n\tif (outResult) *outResult = res;\n\treturn noErr;\n}\n\nstatic OSStatus FileDataIsThisFormat(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataByteSize, \n\t\t\t\t\t\t\t\tconst void*\t\t\t\tinData,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outResult)\n{\n\tAudioFileFormatBase* aff = AFC->GetAudioFileFormatBase();\n\tif (!aff) return kAudio_ParamError;\n\t\n\tUncertainResult res = aff->FileDataIsThisFormat(inDataByteSize, inData);\n\tif (outResult) *outResult = res;\n\treturn noErr;\n}\n\nstatic OSStatus GetGlobalInfoSize(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tAudioFilePropertyID\tinPropertyID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinSpecifierSize,\n\t\t\t\t\t\t\t\tconst void*\t\t\t\tinSpecifier,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outPropertySize)\n{\n\treturn AFC->AFAPI_GetGlobalInfoSize(inPropertyID, inSpecifierSize, inSpecifier, outPropertySize);\n}\n\nstatic OSStatus GetGlobalInfo(\n\t\t\t\t\t\t\t\tvoid *                 self,\n\t\t\t\t\t\t\t\tAudioFilePropertyID\tinPropertyID,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinSpecifierSize,\n\t\t\t\t\t\t\t\tconst void*\t\t\t\tinSpecifier,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioPropertySize,\n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData)\n{\n\treturn AFC->AFAPI_GetGlobalInfo(inPropertyID, inSpecifierSize, inSpecifier, ioPropertySize, ioPropertyData);\n}\n\n//----------------------------------------------------------------------------------------\n\n\nAudioFileComponentBase::AudioFileComponentBase(AudioComponentInstance inInstance)\n\t: ComponentBase(inInstance)\n{\n}\n\nAudioFileComponentBase::~AudioFileComponentBase()\n{\n}\n\nAudioFileObjectComponentBase::AudioFileObjectComponentBase(AudioComponentInstance inInstance)\n\t: AudioFileComponentBase(inInstance), mAudioFileObject(0)\n{\n\t// derived class should create an AudioFileObject here and if NULL, the AudioFormat as well.\n}\n\nAudioFileObjectComponentBase::~AudioFileObjectComponentBase()\n{\n\tdelete mAudioFileObject;\n}\n\nOSStatus AudioFileObjectComponentBase::AFAPI_CreateURL(\n\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef, \n                                const AudioStreamBasicDescription\t*inFormat,\n                                UInt32\t\t\t\t\t\t\t\tinFlags)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\t\n\tOSStatus result = mAudioFileObject->DoCreate (inFileRef, inFormat, inFlags);\n\treturn result;\n}\n\n\t\t\t\t\t\t\t\t\nOSStatus AudioFileObjectComponentBase::AFAPI_OpenURL(\n\t\t\t\t\t\t\t\t\tCFURLRef\t\tinFileRef, \n\t\t\t\t\t\t\t\t\tSInt8  \t\t\tinPermissions,\n\t\t\t\t\t\t\t\t\tint\t\t\t\tinFD)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\t\n\tOSStatus result = mAudioFileObject->DoOpen(inFileRef, inPermissions, inFD);\n \treturn result;\n}\n\n\nOSStatus AudioFileObjectComponentBase::AFAPI_OpenWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->DoOpenWithCallbacks(inRefCon, inReadFunc, inWriteFunc, inGetSizeFunc, inSetSizeFunc);\n}\n\n\nOSStatus AudioFileObjectComponentBase::AFAPI_InitializeWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFileType,\n\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->DoInitializeWithCallbacks(inRefCon, inReadFunc, inWriteFunc, inGetSizeFunc, inSetSizeFunc, \n\t\t\t\t\t\t\t\t\t\t\tinFileType, inFormat, inFlags);\n}\n\n\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObjectComponentBase::AFAPI_Close()\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->DoClose();\n}\n\nOSStatus AudioFileObjectComponentBase::AFAPI_Optimize()\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->DoOptimize();\n}\n\nOSStatus AudioFileObjectComponentBase::AFAPI_ReadBytes(\t\t\n\t\t\t\t\t\t\t\t\t\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t*outBuffer)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->ReadBytes(inUseCache, inStartingByte, ioNumBytes, outBuffer);\n}\n\n\nOSStatus AudioFileObjectComponentBase::AFAPI_WriteBytes(\t\t\n\t\t\t\t\t\t\t\t\t\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t*inBuffer)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->WriteBytes(inUseCache, inStartingByte, ioNumBytes, inBuffer);\n}\n\n\n\n\nOSStatus AudioFileObjectComponentBase::AFAPI_ReadPackets(\t\t\n\t\t\t\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*outNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->ReadPackets(inUseCache, outNumBytes, outPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\t\tinStartingPacket, ioNumPackets, outBuffer);\n}\n\nOSStatus AudioFileObjectComponentBase::AFAPI_ReadPacketData(\t\t\n\t\t\t\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->ReadPacketData(inUseCache, ioNumBytes, outPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\t\tinStartingPacket, ioNumPackets, outBuffer);\n}\n\n\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObjectComponentBase::AFAPI_WritePackets(\t\n\t\t\t\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioStreamPacketDescription\t*inPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t\t\t\t*inBuffer)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->WritePackets(inUseCache, inNumBytes, inPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\t\tinStartingPacket, ioNumPackets, inBuffer);\n}\n\n\n\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObjectComponentBase::AFAPI_GetPropertyInfo(\t\n\t\t\t\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->GetPropertyInfo(inPropertyID, outDataSize, isWritable);\n}\n\n\t\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObjectComponentBase::AFAPI_GetProperty(\t\t\n\t\t\t\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioPropertySize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData)\n{\n\tOSStatus err = noErr;\n\t\n\tif (!ioPropertyData) return kAudio_ParamError;\n\t\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\terr = mAudioFileObject->GetProperty(inPropertyID, ioPropertySize, ioPropertyData);\n\treturn err;\n}\n\n\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObjectComponentBase::AFAPI_SetProperty(\t\t\n\t\t\t\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinPropertySize,\n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inPropertyData)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->SetProperty(inPropertyID, inPropertySize, inPropertyData);\n}\n\n\nOSStatus AudioFileObjectComponentBase::AFAPI_CountUserData(\t\t\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t*outNumberItems)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->CountUserData(inUserDataID, outNumberItems);\n}\n\nOSStatus AudioFileObjectComponentBase::AFAPI_GetUserDataSize(\t\t\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t*outUserDataSize)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->GetUserDataSize(inUserDataID, inIndex, outUserDataSize);\n}\n\nOSStatus AudioFileObjectComponentBase::AFAPI_GetUserData(\t\t\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t*ioUserDataSize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t*outUserData)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->GetUserData(inUserDataID, inIndex, ioUserDataSize, outUserData);\n}\n\nOSStatus AudioFileObjectComponentBase::AFAPI_SetUserData(\t\t\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinUserDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t*inUserData)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->SetUserData(inUserDataID, inIndex, inUserDataSize, inUserData);\n}\n\nOSStatus AudioFileObjectComponentBase::AFAPI_RemoveUserData(\t\t\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinIndex)\n{\n\tif (!mAudioFileObject) return kAudio_ParamError;\n\treturn mAudioFileObject->RemoveUserData(inUserDataID, inIndex);\n}\n\n\nOSStatus AudioFileComponentBase::AFAPI_GetGlobalInfoSize(\t\t\n\t\t\t\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinSpecifierSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void*\t\t\t\tinSpecifier,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outPropertySize)\n{\n\tOSStatus err = noErr;\n\t\t\n\tswitch (inPropertyID)\n\t{\n\t\tcase kAudioFileComponent_CanRead :\n\t\tcase kAudioFileComponent_CanWrite :\n\t\t\t*outPropertySize = sizeof(UInt32);\n\t\t\tbreak;\n\n\t\tcase kAudioFileComponent_FileTypeName :\n\t\t\t*outPropertySize = sizeof(CFStringRef);\n\t\t\tbreak;\n\n\t\tcase kAudioFileComponent_ExtensionsForType :\n\t\t\t*outPropertySize = sizeof(CFArrayRef);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFileComponent_UTIsForType :\n\t\t\t*outPropertySize = sizeof(CFArrayRef);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFileComponent_MIMETypesForType :\n\t\t\t*outPropertySize = sizeof(CFArrayRef);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFileComponent_AvailableFormatIDs :\n\t\t{\n\t\t\tUInt32 size = 0xFFFFFFFF;\n\t\t\terr = GetAudioFileFormatBase()->GetAvailableFormatIDs(&size, NULL);\n\t\t\tif (!err) *outPropertySize = size;\n\t\t\tbreak;\n\t\t}\n\t\tcase kAudioFileComponent_HFSTypeCodesForType :\n\t\t{\n\t\t\tUInt32 size = 0xFFFFFFFF;\n\t\t\terr = GetAudioFileFormatBase()->GetHFSCodes(&size, NULL);\n\t\t\tif (!err) *outPropertySize = size;\n\t\t\tbreak;\n\t\t}\n\t\tcase kAudioFileComponent_AvailableStreamDescriptionsForFormat :\n\t\t\t{\n\t\t\t\tif (inSpecifierSize != sizeof(UInt32)) return kAudioFileBadPropertySizeError;\n\t\t\t\tUInt32 inFormatID = *(UInt32*)inSpecifier;\n\t\t\t\terr = GetAudioFileFormatBase()->GetAvailableStreamDescriptions(inFormatID, outPropertySize, NULL);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tdefault:\n\t\t\terr = kAudioFileUnsupportedPropertyError;\n\t}\n\treturn err;\n}\n\n\nOSStatus AudioFileComponentBase::AFAPI_GetGlobalInfo(\t\t\n\t\t\t\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinSpecifierSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void*\t\t\t\tinSpecifier,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioPropertySize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData)\n{\n\tOSStatus err = noErr;\n\t\n\tif (!ioPropertyData || !ioPropertySize) return kAudio_ParamError;\n\t\n\tswitch (inPropertyID)\n\t{\n\t\tcase kAudioFileComponent_CanRead :\n\t\t\t{\n\t\t\t\tif (*ioPropertySize != sizeof(UInt32)) return kAudioFileBadPropertySizeError;\n\t\t\t\tUInt32* flag = (UInt32*)ioPropertyData;\n\t\t\t\t*flag = GetAudioFileFormatBase()->CanRead();\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFileComponent_CanWrite :\n\t\t\t{\n\t\t\t\tif (*ioPropertySize != sizeof(UInt32)) return kAudioFileBadPropertySizeError;\n\t\t\t\tUInt32* flag = (UInt32*)ioPropertyData;\n\t\t\t\t*flag = GetAudioFileFormatBase()->CanWrite();\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFileComponent_FileTypeName :\n\t\t\t{\n\t\t\t\tif (*ioPropertySize != sizeof(CFStringRef)) return kAudioFileBadPropertySizeError;\n\t\t\t\tCFStringRef* name = (CFStringRef*)ioPropertyData;\n\t\t\t\tGetAudioFileFormatBase()->GetFileTypeName(name);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase kAudioFileComponent_ExtensionsForType :\n\t\t\t{\n\t\t\t\tif (*ioPropertySize != sizeof(CFArrayRef)) return kAudioFileBadPropertySizeError;\n\t\t\t\tCFArrayRef* array = (CFArrayRef*)ioPropertyData;\n\t\t\t\tGetAudioFileFormatBase()->GetExtensions(array);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase kAudioFileComponent_UTIsForType :\n\t\t\t{\n\t\t\t\tif (*ioPropertySize != sizeof(CFArrayRef)) return kAudioFileBadPropertySizeError;\n\t\t\t\tCFArrayRef* array = (CFArrayRef*)ioPropertyData;\n\t\t\t\tGetAudioFileFormatBase()->GetUTIs(array);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase kAudioFileComponent_MIMETypesForType :\n\t\t\t{\n\t\t\t\tif (*ioPropertySize != sizeof(CFArrayRef)) return kAudioFileBadPropertySizeError;\n\t\t\t\tCFArrayRef* array = (CFArrayRef*)ioPropertyData;\n\t\t\t\tGetAudioFileFormatBase()->GetMIMETypes(array);\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase kAudioFileComponent_HFSTypeCodesForType :\n\t\t\t{\n\t\t\t\terr = GetAudioFileFormatBase()->GetHFSCodes(ioPropertySize, ioPropertyData);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFileComponent_AvailableFormatIDs :\n\t\t\t{\n\t\t\t\terr = GetAudioFileFormatBase()->GetAvailableFormatIDs(ioPropertySize, ioPropertyData);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFileComponent_AvailableStreamDescriptionsForFormat :\n\t\t\t{\n\t\t\t\tif (inSpecifierSize != sizeof(UInt32)) return kAudioFileBadPropertySizeError;\n\t\t\t\tUInt32 inFormatID = *(UInt32*)inSpecifier; \n\t\t\t\terr = GetAudioFileFormatBase()->GetAvailableStreamDescriptions(inFormatID, ioPropertySize, ioPropertyData);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\t\t\t\n\t\tdefault:\n\t\t\terr = kAudioFileUnsupportedPropertyError;\n\t}\n\treturn err;\n}\n\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\nOSStatus AudioFileComponentBase::ComponentEntryDispatch(ComponentParameters* params, AudioFileComponentBase* inThis)\n{\n\tOSStatus\t\tresult = noErr;\n\tif (inThis == NULL) return kAudio_ParamError;\n\t\n\ttry\n\t{\n\t\tswitch (params->what)\n\t\t{\t\t\t\t\t\t\n\t\t\tcase kComponentCanDoSelect:\n\t\t\t\tswitch (GetSelectorForCanDo(params))\n\t\t\t\t{\n\t\t\t\t\tcase kAudioFileCreateURLSelect:\n\t\t\t\t\tcase kAudioFileOpenURLSelect:\n\t\t\t\t\tcase kAudioFileOpenWithCallbacksSelect:\n\t\t\t\t\tcase kAudioFileInitializeWithCallbacksSelect:\n\t\t\t\t\tcase kAudioFileCloseSelect:\n\t\t\t\t\tcase kAudioFileOptimizeSelect:\n\t\t\t\t\tcase kAudioFileReadBytesSelect:\n\t\t\t\t\tcase kAudioFileWriteBytesSelect:\n\t\t\t\t\tcase kAudioFileReadPacketsSelect:\n\t\t\t\t\tcase kAudioFileWritePacketsSelect:\n\t\t\t\t\tcase kAudioFileGetPropertyInfoSelect:\n\t\t\t\t\tcase kAudioFileGetPropertySelect:\n\t\t\t\t\tcase kAudioFileSetPropertySelect:\n\t\t\t\t\tcase kAudioFileExtensionIsThisFormatSelect:\n\t\t\t\t\tcase kAudioFileFileDataIsThisFormatSelect:\n\t\t\t\t\tcase kAudioFileGetGlobalInfoSizeSelect:\n\t\t\t\t\tcase kAudioFileGetGlobalInfoSelect:\n\t\t\t\t\t\n\t\t\t\t\tcase kAudioFileCountUserDataSelect:\n\t\t\t\t\tcase kAudioFileGetUserDataSizeSelect:\n\t\t\t\t\tcase kAudioFileGetUserDataSelect:\n\t\t\t\t\tcase kAudioFileSetUserDataSelect:\n\t\t\t\t\tcase kAudioFileRemoveUserDataSelect:\n\t\t\t\t\t\tresult = 1;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t // these are no longer supported\n/*\t\t\t\t\tcase kAudioFileCreateSelect:\n\t\t\t\t\tcase kAudioFileOpenSelect:\n\t\t\t\t\tcase kAudioFileInitializeSelect:\n*/\t\t\t\t\t\tresult = ComponentBase::ComponentEntryDispatch(params, inThis);\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\t\tcase kAudioFileCreateURLSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(CFURLRef, inFileRef, 0, 3);\n\t\t\t\t\t\tPARAM(const AudioStreamBasicDescription*, inFormat, 1, 3);\n\t\t\t\t\t\tPARAM(UInt32, inFlags, 2, 3);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_CreateURL(inFileRef, inFormat, inFlags);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileOpenURLSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(CFURLRef, inFileRef, 0, 3);\n\t\t\t\t\t\tPARAM(SInt32, inPermissions, 1, 3);\n\t\t\t\t\t\tPARAM(int, inFileDescriptor, 2, 3);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_OpenURL(inFileRef, inPermissions, inFileDescriptor);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileOpenWithCallbacksSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(void*, inRefCon, 0, 5);\n\t\t\t\t\t\tPARAM(AudioFile_ReadProc, inReadFunc, 1, 5);\n\t\t\t\t\t\tPARAM(AudioFile_WriteProc, inWriteFunc, 2, 5);\n\t\t\t\t\t\tPARAM(AudioFile_GetSizeProc, inGetSizeFunc, 3, 5);\n\t\t\t\t\t\tPARAM(AudioFile_SetSizeProc, inSetSizeFunc, 4, 5);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_OpenWithCallbacks(inRefCon, inReadFunc, inWriteFunc, \n\t\t\t\t\t\t\t\t\t\t\t\t\tinGetSizeFunc, inSetSizeFunc);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileInitializeWithCallbacksSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(void*, inRefCon, 0, 8);\n\t\t\t\t\t\tPARAM(AudioFile_ReadProc, inReadFunc, 1, 8);\n\t\t\t\t\t\tPARAM(AudioFile_WriteProc, inWriteFunc, 2, 8);\n\t\t\t\t\t\tPARAM(AudioFile_GetSizeProc, inGetSizeFunc, 3, 8);\n\t\t\t\t\t\tPARAM(AudioFile_SetSizeProc, inSetSizeFunc, 4, 8);\n\t\t\t\t\t\tPARAM(UInt32, inFileType, 5, 8);\n\t\t\t\t\t\tPARAM(const AudioStreamBasicDescription*, inFormat, 6, 8);\n\t\t\t\t\t\tPARAM(UInt32, inFlags, 7, 8);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_InitializeWithCallbacks(inRefCon, inReadFunc, inWriteFunc, \n\t\t\t\t\t\t\t\t\t\t\t\t\tinGetSizeFunc, inSetSizeFunc,\n\t\t\t\t\t\t\t\t\t\t\t\t\tinFileType, inFormat, inFlags);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileCloseSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = inThis->AFAPI_Close();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileOptimizeSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tresult = inThis->AFAPI_Optimize();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileReadBytesSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUseCache, 0, 4);\n\t\t\t\t\t\tPARAM(SInt64*, inStartingByte, 1, 4);\n\t\t\t\t\t\tPARAM(UInt32*, ioNumBytes, 2, 4);\n\t\t\t\t\t\tPARAM(void*, outBuffer, 3, 4);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_ReadBytes(inUseCache, *inStartingByte, ioNumBytes,\n\t\t\t\t\t\t\toutBuffer);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileWriteBytesSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUseCache, 0, 4);\n\t\t\t\t\t\tPARAM(SInt64*, inStartingByte, 1, 4);\n\t\t\t\t\t\tPARAM(UInt32*, ioNumBytes, 2, 4);\n\t\t\t\t\t\tPARAM(const void*, inBuffer, 3, 4);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_WriteBytes(inUseCache, *inStartingByte, ioNumBytes,\n\t\t\t\t\t\t\tinBuffer);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileReadPacketsSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUseCache, 0, 6);\n\t\t\t\t\t\tPARAM(UInt32*, outNumBytes, 1, 6);\n\t\t\t\t\t\tPARAM(AudioStreamPacketDescription*, outPacketDescriptions, 2, 6);\n\t\t\t\t\t\tPARAM(SInt64*, inStartingPacket, 3, 6);\n\t\t\t\t\t\tPARAM(UInt32*, ioNumPackets, 4, 6);\n\t\t\t\t\t\tPARAM(void*, outBuffer, 5, 6);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_ReadPackets(inUseCache, outNumBytes, outPacketDescriptions, \n\t\t\t\t\t\t\t*inStartingPacket, ioNumPackets, outBuffer);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileWritePacketsSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUseCache, 0, 6);\n\t\t\t\t\t\tPARAM(UInt32, inNumBytes, 1, 6);\n\t\t\t\t\t\tPARAM(const AudioStreamPacketDescription*, inPacketDescriptions, 2, 6);\n\t\t\t\t\t\tPARAM(SInt64*, inStartingPacket, 3, 6);\n\t\t\t\t\t\tPARAM(UInt32*, ioNumPackets, 4, 6);\n\t\t\t\t\t\tPARAM(const void*, inBuffer, 5, 6);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_WritePackets(inUseCache, inNumBytes, inPacketDescriptions, \n\t\t\t\t\t\t\t*inStartingPacket, ioNumPackets, inBuffer);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase kAudioFileGetPropertyInfoSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(AudioFileComponentPropertyID, inPropertyID, 0, 3);\n\t\t\t\t\t\tPARAM(UInt32*, outPropertySize, 1, 3);\n\t\t\t\t\t\tPARAM(UInt32*, outWritable, 2, 3);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_GetPropertyInfo(inPropertyID, outPropertySize, outWritable);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase kAudioFileGetPropertySelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(AudioFileComponentPropertyID, inPropertyID, 0, 3);\n\t\t\t\t\t\tPARAM(UInt32*, ioPropertyDataSize, 1, 3);\n\t\t\t\t\t\tPARAM(void*, outPropertyData, 2, 3);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_GetProperty(inPropertyID, ioPropertyDataSize, outPropertyData);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileSetPropertySelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(AudioFileComponentPropertyID, inPropertyID, 0, 3);\n\t\t\t\t\t\tPARAM(UInt32, inPropertyDataSize, 1, 3);\n\t\t\t\t\t\tPARAM(const void*, inPropertyData, 2, 3);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_SetProperty(inPropertyID, inPropertyDataSize, inPropertyData);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase kAudioFileGetGlobalInfoSizeSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(AudioFileComponentPropertyID, inPropertyID, 0, 4);\n\t\t\t\t\t\tPARAM(UInt32, inSpecifierSize, 1, 4);\n\t\t\t\t\t\tPARAM(const void*, inSpecifier, 2, 4);\n\t\t\t\t\t\tPARAM(UInt32*, outPropertyDataSize, 3, 4);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_GetGlobalInfoSize(inPropertyID, inSpecifierSize, inSpecifier,\n\t\t\t\t\t\t\toutPropertyDataSize);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kAudioFileGetGlobalInfoSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(AudioFileComponentPropertyID, inPropertyID, 0, 5);\n\t\t\t\t\t\tPARAM(UInt32, inSpecifierSize, 1, 5);\n\t\t\t\t\t\tPARAM(const void*, inSpecifier, 2, 5);\n\t\t\t\t\t\tPARAM(UInt32*, ioPropertyDataSize, 3, 5);\n\t\t\t\t\t\tPARAM(void*, outPropertyData, 4, 5);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_GetGlobalInfo(inPropertyID, inSpecifierSize, inSpecifier,\n\t\t\t\t\t\t\tioPropertyDataSize, outPropertyData);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase kAudioFileExtensionIsThisFormatSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(CFStringRef, inExtension, 0, 2);\n\t\t\t\t\t\tPARAM(UInt32*, outResult, 1, 2);\n\t\t\t\t\t\t\n\t\t\t\t\t\tAudioFileFormatBase* aff = inThis->GetAudioFileFormatBase();\n\t\t\t\t\t\tif (!aff) return kAudio_ParamError;\n\t\t\t\t\t\t\n\t\t\t\t\t\tUInt32 res = aff->ExtensionIsThisFormat(inExtension);\n\t\t\t\t\t\tif (outResult) *outResult = res;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase kAudioFileFileDataIsThisFormatSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inDataByteSize, 0, 3);\n\t\t\t\t\t\tPARAM(const void*, inData, 1, 3);\n\t\t\t\t\t\tPARAM(UInt32*, outResult, 2, 3);\n\t\t\t\t\t\t\n\t\t\t\t\t\tAudioFileFormatBase* aff = inThis->GetAudioFileFormatBase();\n\t\t\t\t\t\tif (!aff) return kAudio_ParamError;\n\t\t\t\t\t\t\n\t\t\t\t\t\tUncertainResult res = aff->FileDataIsThisFormat(inDataByteSize, inData);\n\t\t\t\t\t\tif (outResult) *outResult = res;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase kAudioFileCountUserDataSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUserDataID, 0, 2);\n\t\t\t\t\t\tPARAM(UInt32*, outNumberItems, 1, 2);\n\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_CountUserData(inUserDataID, outNumberItems);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase kAudioFileGetUserDataSizeSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUserDataID, 0, 3);\n\t\t\t\t\t\tPARAM(UInt32, inIndex, 1, 3);\n\t\t\t\t\t\tPARAM(UInt32*, outUserDataSize, 2, 3);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_GetUserDataSize(inUserDataID, inIndex, outUserDataSize);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase kAudioFileGetUserDataSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUserDataID, 0, 4);\n\t\t\t\t\t\tPARAM(UInt32, inIndex, 1, 4);\n\t\t\t\t\t\tPARAM(UInt32*, ioUserDataSize, 2, 4);\n\t\t\t\t\t\tPARAM(void*, outUserData, 3, 4);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_GetUserData(inUserDataID, inIndex, \n\t\t\t\t\t\t\t\t\t\tioUserDataSize, outUserData);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t\t\n\t\t\t\tcase kAudioFileSetUserDataSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUserDataID, 0, 4);\n\t\t\t\t\t\tPARAM(UInt32, inIndex, 1, 4);\n\t\t\t\t\t\tPARAM(UInt32, inUserDataSize, 2, 4);\n\t\t\t\t\t\tPARAM(const void*, inUserData, 3, 4);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_SetUserData(inUserDataID, inIndex, \n\t\t\t\t\t\t\t\t\t\tinUserDataSize, inUserData);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\n\t\t\t\tcase kAudioFileRemoveUserDataSelect:\n\t\t\t\t\t{\n\t\t\t\t\t\tPARAM(UInt32, inUserDataID, 0, 2);\n\t\t\t\t\t\tPARAM(UInt32, inIndex, 1, 2);\n\t\t\t\t\t\t\n\t\t\t\t\t\tresult = inThis->AFAPI_RemoveUserData(inUserDataID, inIndex);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\n\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tresult = ComponentBase::ComponentEntryDispatch(params, inThis);\n\t\t\t\t\tbreak;\n\t\t}\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n} \n#endif\n\nAudioComponentMethod AudioFileComponentLookup::Lookup (SInt16 selector)\n{\n\tswitch (selector) {\n\t\n#define DefCase(NAME) case kAudioFile##NAME##Select: return (AudioComponentMethod)NAME\n\n\t\tDefCase(OpenWithCallbacks);\n\t\tDefCase(InitializeWithCallbacks);\n\t\tDefCase(Close);\n\t\tDefCase(Optimize);\n\t\tDefCase(ReadBytes);\n\t\tDefCase(WriteBytes);\n\t\tDefCase(ReadPackets);\n\t\tDefCase(WritePackets);\n\t\tDefCase(GetPropertyInfo);\n\t\tDefCase(GetProperty);\n\t\tDefCase(SetProperty);\n\t\t\n\t\tDefCase(ExtensionIsThisFormat);\n\t\tDefCase(GetGlobalInfoSize);\n\t\tDefCase(GetGlobalInfo);\n\n\t\tDefCase(CountUserData);\n\t\tDefCase(GetUserDataSize);\n\t\tDefCase(GetUserData);\n\t\tDefCase(SetUserData);\n\t\tDefCase(RemoveUserData);\n\t\tDefCase(CreateURL);\n\t\tDefCase(OpenURL);\n\t\tDefCase(FileDataIsThisFormat);\n\t\tDefCase(ReadPacketData);\n\t\t\n\t\t// These selectors are deprecated and do not appear: Create, Open, Initialize, FileIsThisFormat, DataIsThisFormat.\n\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\treturn NULL;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/AudioFileComponentBase.h",
    "content": "/*\n     File: AudioFileComponentBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AudioFileComponentBase_h__\n#define __AudioFileComponentBase_h__\n\n#include \"ComponentBase.h\"\n#include \"AudioFileFormat.h\"\n\nstruct AudioFileComponentLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AudioFileComponentFactory : public APFactory<AudioFileComponentLookup, Implementor>\n{\n};\n\n/* subclass, override AudioFileComponentBase() and GetAudioFormat() and that's it. */\n\nclass AudioFileComponentBase : public ComponentBase\n{\npublic:\n\tAudioFileComponentBase(AudioComponentInstance inInstance);\n\tvirtual ~AudioFileComponentBase();\n\n\tvirtual AudioFileFormatBase* GetAudioFileFormatBase() const = 0;\n\t\n\t/* Public API Function Support */\n\tvirtual OSStatus AFAPI_CreateURL(\n\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n                                const AudioStreamBasicDescription\t*inFormat,\n                                UInt32\t\t\t\t\t\t\t\tinFlags) { return kAudio_UnimplementedError; }\n\n\tvirtual OSStatus AFAPI_OpenURL(\n\t\t\t\t\t\t\t\t\tCFURLRef\t\tinFileRef, \n\t\t\t\t\t\t\t\t\tSInt8  \t\t\tinPermissions,\n\t\t\t\t\t\t\t\t\tint\t\t\t\tinFD) { return kAudio_UnimplementedError; }\n\t\t\t\t\t\t\t\t\t\n\n\tvirtual OSStatus AFAPI_Create(\n\t\t\t\t\t\t\t\tconst FSRef\t\t\t\t\t\t\t*inParentRef, \n                                CFStringRef\t\t\t\t\t\t\tinFileName,\n                                const AudioStreamBasicDescription\t*inFormat,\n                                UInt32\t\t\t\t\t\t\t\tinFlags,\n                                FSRef\t\t\t\t\t\t\t\t*outNewFileRef) { return kAudio_UnimplementedError; }\n\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_Initialize(\n\t\t\t\t\t\t\t\t\tconst FSRef\t\t\t\t\t\t\t*inFileRef,\n                                    const AudioStreamBasicDescription\t*inFormat,\n                                    UInt32\t\t\t\t\t\t\t\tinFlags) { return kAudio_UnimplementedError; }\n\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_Open(\n\t\t\t\t\t\t\t\t\tconst FSRef\t\t*inFileRef, \n\t\t\t\t\t\t\t\t\tSInt8  \t\t\tinPermissions,\n\t\t\t\t\t\t\t\t\tSInt16\t\t\tinRefNum) { return kAudio_UnimplementedError; }\n\n\tvirtual OSStatus AFAPI_OpenWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc)=0;\n\n\tvirtual OSStatus AFAPI_InitializeWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFileType,\n\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags)=0;\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_Close()=0;\n\tvirtual OSStatus AFAPI_Optimize()=0;\n\tvirtual OSStatus AFAPI_ReadBytes(\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t*outBuffer)=0;\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_WriteBytes(\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t*inBuffer)=0;\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_ReadPackets(\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*outNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)=0;\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_ReadPacketData(\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)=0;\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_WritePackets(\tBoolean\t\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioStreamPacketDescription\t*inPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t\t\t\t*inBuffer)=0;\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_GetPropertyInfo(\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable)=0;\n\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_GetProperty(\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData)=0;\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_SetProperty(\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inPropertyData)=0;\n\tvirtual OSStatus AFAPI_GetGlobalInfoSize(\t\t\n\t\t\t\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinSpecifierSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void*\t\t\t\tinSpecifier,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outPropertySize);\n\n\tvirtual OSStatus AFAPI_GetGlobalInfo(\t\t\n\t\t\t\t\t\t\t\t\t\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinSpecifierSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void*\t\t\t\tinSpecifier,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioPropertySize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData);\n\n\tvirtual OSStatus AFAPI_CountUserData(   UInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outNumberItems)=0;\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_GetUserDataSize( UInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize)=0;\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_GetUserData(\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioUserData)=0;\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_SetUserData(\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inUserData)=0;\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_RemoveUserData(\tUInt32\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex)=0;\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\tstatic OSStatus\t\tComponentEntryDispatch(ComponentParameters *p, AudioFileComponentBase *This);\n#endif\n\nprotected:\n};\n\n\n\nclass AudioFileObjectComponentBase : public AudioFileComponentBase\n{\npublic:\n\tAudioFileObjectComponentBase(AudioComponentInstance inInstance);\n\tvirtual ~AudioFileObjectComponentBase();\n\n\tvirtual AudioFileFormat* GetAudioFormat() const = 0;\n\tvirtual AudioFileFormatBase* GetAudioFileFormatBase() const { return GetAudioFormat(); }\n\t\n\tvoid SetAudioFileObject(AudioFileObject* inObject) { mAudioFileObject = inObject; }\n\t\n\t/* Public API Function Support */\n\n\tvirtual OSStatus AFAPI_CreateURL(\n\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n                                const AudioStreamBasicDescription\t*inFormat,\n                                UInt32\t\t\t\t\t\t\t\tinFlags);\n\n\tvirtual OSStatus AFAPI_OpenURL(\n\t\t\t\t\t\t\t\t\tCFURLRef\t\tinFileRef, \n\t\t\t\t\t\t\t\t\tSInt8  \t\t\tinPermissions,\n\t\t\t\t\t\t\t\t\tint\t\t\t\tinFD);\n\n\tvirtual OSStatus AFAPI_OpenWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc);\n\n\tvirtual OSStatus AFAPI_InitializeWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFileType,\n\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags);\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_Close();\n\tvirtual OSStatus AFAPI_Optimize();\n\tvirtual OSStatus AFAPI_ReadBytes(\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t*outBuffer);\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_WriteBytes(\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t*inBuffer);\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_ReadPackets(\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*outNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer);\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_ReadPacketData(\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer);\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_WritePackets(\tBoolean\t\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumBytes,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioStreamPacketDescription\t*inPacketDescriptions,\n\t\t\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t\t\t\t*inBuffer);\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_GetPropertyInfo(\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable);\n\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_GetProperty(\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData);\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_SetProperty(\t\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inPropertyData);\n\n\tvirtual OSStatus AFAPI_CountUserData(   UInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outNumberItems);\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_GetUserDataSize( UInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize);\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_GetUserData(\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioUserData);\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_SetUserData(\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inUserData);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus AFAPI_RemoveUserData(\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex);\n\t\t\t\t\t\t\t\t\t\t\t\t\nprotected:\n\tAudioFileObject* mAudioFileObject;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/AudioFileFormat.cpp",
    "content": "/*\n     File: AudioFileFormat.cpp\n Abstract: AudioFileFormat.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AudioFileFormat.h\"\n#include \"DataSource.h\"\n\nAudioFileFormatBase::AudioFileFormatBase(UInt32 inFileType) \n\t: mFileType(inFileType)\n{\n}\n\nAudioFileFormatBase::~AudioFileFormatBase()\n{\n}\n\nOSStatus AudioFileFormatBase::GetHFSCodes(UInt32* ioDataSize, void* outPropertyData)\n{\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\nAudioFileFormat::AudioFileFormat(UInt32 inFileType) \n\t: AudioFileFormatBase(inFileType)\n{\n}\n\nAudioFileFormat::~AudioFileFormat()\n{\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/AudioFileFormat.h",
    "content": "/*\n     File: AudioFileFormat.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef _AudioFileFormat_H_\n#define _AudioFileFormat_H_\n\n#include \"AudioFileObject.h\"\n\n// AudioFileFormat is a factory class for AudioFileObjects. \n\n// UncertainResult is needed for DataIsThisFormat. \n// In the case of SoundDesigner 2 we can't determine if the data is SoundDesigner 2 or not.\n\ntypedef int UncertainResult;\n\nenum {\n\tkFalse = 0,\n\tkTrue = 1,\n\tkCantDetermine = -1\n};\n\nclass AudioFileHandle;\nclass AudioFileFormat;\nclass AudioFileFormatComponent;\n\nclass AudioFileFormatBase\n{\npublic:\n\tAudioFileFormatBase(UInt32 inFileType);\n\tvirtual ~AudioFileFormatBase();\n\t\n\t// return true if extension is of this format type\n\tvirtual Boolean ExtensionIsThisFormat(CFStringRef inExtension) = 0;\n\t\n\tvirtual UncertainResult FileDataIsThisFormat(\n\t\t\t\tUInt32\t\t\t\t\t\t\t\t/*inDataByteSize*/,\n\t\t\t\tconst void*\t\t\t\t\t\t\t/*inData*/) = 0;\n\t\n\t// support SoundDesigner II files while minimizing opening and closing files.\n\tvirtual Boolean ResourceIsThisFormat(const FSRef* /*inRef*/) { return false; }\n\n\tUInt32 GetFileType() const { return mFileType; }\n\t\n\tvirtual UInt32 CanRead() const { return 1; }\n\tvirtual UInt32 CanWrite() const { return 1; }\n\tvirtual UInt32 HasResourceFork() const { return 0; }\n\t\n\tvirtual void GetExtensions(CFArrayRef *outArray) = 0;\n\tvirtual void GetUTIs(CFArrayRef *outArray) {}\n\tvirtual void GetMIMETypes(CFArrayRef *outArray) {}\n\tvirtual void GetFileTypeName(CFStringRef *outName) = 0;\n\tvirtual OSStatus GetAvailableFormatIDs(UInt32* ioDataSize, void* outPropertyData) = 0;\n\tvirtual OSStatus GetAvailableStreamDescriptions(UInt32 inFormatID, UInt32* ioDataSize, void* outPropertyData) = 0;\n\tvirtual OSStatus GetHFSCodes(UInt32* ioDataSize, void* outPropertyData);\n\t\n\tvirtual AudioFileFormat* AsAudioFileFormat() { return NULL; }\n\tvirtual AudioFileFormatComponent* AsAudioFileFormatComponent() { return NULL; }\n\t\t\nprivate:\n\t UInt32 mFileType;\n};\n\nclass AudioFileStreamObject;\n\nclass AudioFileFormat : public AudioFileFormatBase\n{\npublic:\n\tAudioFileFormat(UInt32 inFileType);\n\tvirtual ~AudioFileFormat();\n\t\n\t// create an AudioFileObject for this format type.\n\tvirtual AudioFileObject* New() = 0; \n\tvirtual AudioFileStreamObject* NewStream() { return NULL; }\n\t\n\t// return true if file is of this format type\n\tvirtual UncertainResult FileDataIsThisFormat(UInt32 inDataByteSize, const void* inData) = 0;\t\t\t\t\n\n\tvirtual AudioFileFormat* AsAudioFileFormat() { return this; }\n};\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/AudioFileObject.cpp",
    "content": "/*\n     File: AudioFileObject.cpp\n Abstract: AudioFileObject.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AudioFileObject.h\"\n#include \"CADebugMacros.h\"\n#include <algorithm>\n#include <sys/stat.h>\n\n#define kAudioFileNoCacheMask\t\t0x20\n\nconst SInt64 kScanToEnd = 0x7fffFFFFffffFFFFLL;\n\n//////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nAudioFileObject::~AudioFileObject()\n{\n\tdelete mDataSource;\n\tDeletePacketTable();\n\tSetURL(NULL);\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::DoCreate(\t\t\n\t\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags)\n{\n\t// common prologue\n\tif (!IsDataFormatValid(inFormat))\n\t\treturn kAudioFileUnsupportedDataFormatError;\n\n\tif (!IsDataFormatSupported(inFormat)) \n\t\treturn kAudioFileUnsupportedDataFormatError;\n\n\tSetPermissions(kAudioFileReadWritePermission);\n\t\n\tSetAlignDataWithFillerChunks(!(inFlags & 2 /* kAudioFileFlags_DontPageAlignAudioData */ ));\n\t\n\t// call virtual method for particular format.\n\treturn Create(inFileRef, inFormat);\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n                                \nOSStatus AudioFileObject::Create(\t\t\n\t\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat)\n{\n\tint fileD;\n\tOSStatus err = CreateDataFile (inFileRef, fileD);\n    FailIf (err != noErr, Bail, \"CreateDataFile failed\");\n\t\n\tSetURL (inFileRef);\n\n\terr = OpenFile(kAudioFileReadWritePermission, fileD);\n    FailIf (err != noErr, Bail, \"OpenFile failed\");\n\n\terr = SetDataFormat(inFormat);\n    FailIf (err != noErr, Bail, \"SetDataFormat failed\");\n\t\n    mIsInitialized = false;\n\t\nBail:\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::DoOpen(\t\n\t\t\t\t\t\t\t\t\tCFURLRef\t\tinFileRef, \n\t\t\t\t\t\t\t\t\tSInt8  \t\t\tinPermissions,\n\t\t\t\t\t\t\t\t\tint\t\t\t\tinFD)\n{\t\t\n\tOSStatus err = noErr;\n\tSetPermissions(inPermissions);\n\t\n\terr = Open(inFileRef, inPermissions, inFD);\n    FailIf (err != noErr, Bail, \"Open failed\");\n\n\terr = ValidateFormatAndData();\n    FailIf (err != noErr, Bail, \"ValidateFormatAndData failed\");\n\nBail:\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::Open(\t\t\t\n\t\t\t\t\t\t\t\t\tCFURLRef\t\tinFileRef, \n\t\t\t\t\t\t\t\t\tSInt8  \t\t\tinPermissions,\n\t\t\t\t\t\t\t\t\tint\t\t\t\tinFD)\n{\t\t\n\tif (!(inPermissions & kAudioFileReadPermission))\n\t\treturn kAudioFilePermissionsError; // file must have read permissions\n \n\tSetURL(inFileRef);\n\t\n\tOSStatus err = OpenFile(inPermissions, inFD);\n    FailIf (err != noErr, Bail, \"OpenFile failed\");\n\t\t\n\terr = OpenFromDataSource();\n    FailIf (err != noErr, Bail, \"OpenFromDataSource failed\");\n\t\nBail:\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::ValidateFormatAndData()\n{\n\t\n\n\tAudioStreamBasicDescription asbd = GetDataFormat();\n\n\tif (!IsDataFormatValid(&asbd))\n\t\treturn kAudioFileInvalidFileError;\n\n\tif (asbd.mFormatID == kAudioFormatLinearPCM) \n\t{\n\t\tSInt64 maxPackets = GetNumBytes() / asbd.mBytesPerPacket;\n\t\tif (GetNumPackets() > maxPackets) \n\t\t\treturn kAudioFileInvalidFileError;\n\t}\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::DoOpenWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc)\n{\n\tSInt8\tperms = (inSetSizeFunc || inWriteFunc) ? kAudioFileReadWritePermission : kAudioFileReadPermission;\n\tSetPermissions(perms);\n\t\n\tDataSource* dataSource = new Seekable_DataSource(inRefCon, inReadFunc, inWriteFunc, inGetSizeFunc, inSetSizeFunc);\n\tSetDataSource(dataSource);\n\treturn OpenFromDataSource();\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t\t\t\t\t\t\t\nOSStatus AudioFileObject::OpenFromDataSource(void)\n{\t\t\n\treturn noErr;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::DoInitializeWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc,\n                UInt32\t\t\t\t\t\t\t\tinFileType,\n\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags)\n{\t\t\n\tDataSource* dataSource = new Seekable_DataSource(inRefCon, inReadFunc, inWriteFunc, inGetSizeFunc, inSetSizeFunc);\n\tif (!dataSource->CanWrite()) return -54/*permErr*/;\n\tdataSource->SetSize(0);\n\tSetDataSource(dataSource);\n\tSetPermissions(kAudioFileReadWritePermission);\n\n\tSetAlignDataWithFillerChunks(!(inFlags & 2 /* kAudioFileFlags_DontPageAlignAudioData */ ));\n\n\tOSStatus err = SetDataFormat(inFormat);\n\tif (err) return err;\n\t\n\treturn InitializeDataSource(inFormat, inFlags);\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t\t\t\t\t\nOSStatus AudioFileObject::DoInitialize(\t\n\t\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\tinFlags)\n{\n\tSetURL (inFileRef);\n\tSetPermissions(kAudioFileReadWritePermission);\n\n\tSetAlignDataWithFillerChunks(!(inFlags & 2 /* kAudioFileFlags_DontPageAlignAudioData */ ));\n\n\treturn Initialize(inFileRef, inFormat, inFlags);\n}\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t\t\t\t\t\nOSStatus AudioFileObject::Initialize(\t\n\t\t\t\t\t\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags)\n{\n\tOSStatus err = noErr;\n\t\t\n\tUInt8 fPath[FILENAME_MAX];\t\n\tif (!CFURLGetFileSystemRepresentation (inFileRef, true, fPath, FILENAME_MAX))\n\t\treturn kAudio_FileNotFoundError;\n\n#if TARGET_OS_WIN32\n\tint filePerms = 0;\n\tint flags = O_TRUNC | O_RDWR | O_BINARY;\n#else\n\tmode_t filePerms = 0;\n\tint flags = O_TRUNC | O_RDWR;\n#endif\n\n\tint fileD = open((const char*)fPath, flags, filePerms);\n\tif (fileD < 0)\n\t\treturn AudioFileTranslateErrno(errno);\n\t\n\terr = OpenFile(kAudioFileReadWritePermission, fileD);\n    FailIf (err != noErr, Bail, \"OpenFile failed\");\n\t\n\t\t// don't need to do this as open has an option to truncate the file\n//\tGetDataSource()->SetSize(0);\n\n\terr = SetDataFormat(inFormat);\n    FailIf (err != noErr, Bail, \"SetDataFormat failed\");\n\n\tInitializeDataSource(inFormat, inFlags);\n\t\nBail:\t\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t\t\t\t\t\t\t\nOSStatus AudioFileObject::InitializeDataSource(const AudioStreamBasicDescription\t*inFormat, UInt32 /*inFlags*/)\n{\t\t\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::DoClose()\n{\n\tOSStatus err = UpdateSizeIfNeeded();\n\tif (err) return err;\n\t\n\treturn Close();\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::Close()\n{\n    try {\n\t\tdelete mDataSource;\n\t\tmDataSource = 0;\n\t} catch (OSStatus err) {\n\t\treturn err;\n\t} catch (...) {\n\t\treturn kAudioFileUnspecifiedError;\n\t}\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\nOSStatus AudioFileObject::Optimize()\n{\n\t// default is that nothing needs to be done. This happens to be true for Raw, SD2 and NeXT/Sun types.\n\tSetIsOptimized(true); \n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\nOSStatus AudioFileObject::DoOptimize()\n{\n\tif (!CanWrite()) return kAudioFilePermissionsError;\n\n\tOSStatus err = UpdateSizeIfNeeded();\n\tif (err) return err;\n\t\n\tif (IsOptimized()) return noErr;\n\n\terr = Optimize();\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::UpdateNumBytes(SInt64 inNumBytes)\t\n{\n    OSStatus err = noErr;\n\tif (inNumBytes != GetNumBytes()) {\n\t\tSetNumBytes(inNumBytes);\n        \n        // #warning \" this will not work for vbr formats\"\n\t\tSetNumPackets(GetNumBytes() / mDataFormat.mBytesPerPacket);\n\t\tSizeChanged();\n\t}\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::UpdateNumPackets(SInt64 inNumPackets)\t\n{\n    OSStatus err = noErr;\n\tif (inNumPackets != GetNumPackets()) {\n\t\t// sync current state.\n\t\tSetNeedsSizeUpdate(true);\n\t\tUpdateSizeIfNeeded();\n\t\tSetNumPackets(inNumPackets);\n        \n        // #warning \" this will not work for vbr formats\"\n\t\tSetNumBytes(GetNumPackets() * mDataFormat.mBytesPerFrame);\n\t\tSizeChanged();\n\t}\n\treturn err;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::PacketToFrame(SInt64 inPacket, SInt64& outFirstFrameInPacket)\n{\n\tif (mDataFormat.mFramesPerPacket == 0)\n\t{\n\t\tOSStatus err = ScanForPackets(inPacket+1); // the packet count must be one greater than the packet index\n\t\tif (err) return err;\n\t\t\n\t\tSInt64 packetTableSize = GetPacketTableSize();\n\t\t\n\t\tif (mPacketTable && inPacket >= packetTableSize)\n\t\t\treturn kAudioFileEndOfFileError;\n\t\t\n\t\tCompressedPacketTable* packetTable = GetPacketTable();\n\t\tif (!packetTable)\n\t\t\treturn kAudioFileInvalidPacketOffsetError;\n\t\t\t\n\t\tif (inPacket < 0 || inPacket >= packetTableSize)\n\t\t\treturn kAudioFileInvalidPacketOffsetError;\n\t\t\t\n\t\toutFirstFrameInPacket = (*packetTable)[(size_t)inPacket].mFrameOffset;\n\t}\n\telse\n\t{\n\t\toutFirstFrameInPacket = inPacket * mDataFormat.mFramesPerPacket;\n\t}\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::FrameToPacket(SInt64 inFrame, SInt64& outPacket, UInt32& outFrameOffsetInPacket)\n{\n\tif (mDataFormat.mFramesPerPacket == 0)\n\t{\n\t\tCompressedPacketTable* packetTable = GetPacketTable();\n\t\tif (!packetTable)\n\t\t\treturn kAudioFileInvalidPacketOffsetError;\n\t\t\t\n\t\t// search packet table\n\t\tAudioStreamPacketDescriptionExtended pext;\n\t\tmemset(&pext, 0, sizeof(pext));\n\t\tpext.mFrameOffset = inFrame;\n\t\tCompressedPacketTable::iterator iter = std::lower_bound(packetTable->begin(), packetTable->end(), pext);\n\t\t\n\t\tif (iter == packetTable->end())\n\t\t\treturn kAudioFileInvalidPacketOffsetError;\n\t\t\n\t\tif (iter > packetTable->begin()) --iter;\n\t\t\n\t\toutPacket = iter - packetTable->begin();\n\t\toutFrameOffsetInPacket = (UInt32)(inFrame - iter->mFrameOffset);\n\t}\n\telse\n\t{\n\t\toutPacket = inFrame / mDataFormat.mFramesPerPacket;\n\t\toutFrameOffsetInPacket = (UInt32)(inFrame % mDataFormat.mFramesPerPacket);\n\t}\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::PacketToByte(AudioBytePacketTranslation* abpt)\n{\n    if (abpt->mPacket < 0)\n        return kAudioFileInvalidPacketOffsetError;\n    \n\tif (mDataFormat.mBytesPerPacket == 0)\n\t{\n\t\tCompressedPacketTable* packetTable = GetPacketTable();\n\t\tif (!packetTable)\n\t\t\treturn kAudioFileInvalidPacketOffsetError;\n\t\t\t\n\t\tif (abpt->mPacket < GetPacketTableSize()) {\n\t\t\tabpt->mByte = (*packetTable)[(int)abpt->mPacket].mStartOffset;\n\t\t\tabpt->mFlags = 0;\n\t\t} else {\n\t\t\tSInt64 numPackets = packetTable->size();\n\t\t\tif (numPackets < 8) \n\t\t\t\treturn 'more' /*kAudioFileStreamError_DataUnavailable*/ ;\n\t\t\t\t\n\t\t\tconst AudioStreamPacketDescriptionExtended lastPacket = (*packetTable)[numPackets - 1];\n\t\t\tSInt64 bytesReadSoFar = lastPacket.mStartOffset + lastPacket.mDataByteSize;\n\t\t\tdouble averageBytesPerPacket = (double)(bytesReadSoFar - GetDataOffset()) / (double)numPackets;\n\t\t\tabpt->mByte = (SInt64)floor((double)abpt->mPacket * averageBytesPerPacket);\n\t\t\tabpt->mFlags = kBytePacketTranslationFlag_IsEstimate;\n\t\t}\n\t}\n\telse\n\t{\n\t\tabpt->mByte = abpt->mPacket * mDataFormat.mBytesPerPacket;\n\t\tabpt->mFlags = 0;\n\t}\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\ninline bool byte_less_than (const AudioStreamPacketDescriptionExtended& a, const AudioStreamPacketDescriptionExtended& b)\n{\n\treturn a.mStartOffset < b.mStartOffset;\n}\n\nOSStatus AudioFileObject::ByteToPacket(AudioBytePacketTranslation* abpt)\n{\n    if (abpt->mByte < 0)\n        return kAudioFileInvalidPacketOffsetError;\n\n\tif (mDataFormat.mBytesPerPacket == 0)\n\t{\n\t\tCompressedPacketTable* packetTable = GetPacketTable();\n\t\tif (!packetTable)\n\t\t\treturn kAudioFileInvalidPacketOffsetError;\n\t\t\t// search packet table\n\t\tAudioStreamPacketDescriptionExtended pext;\n\t\tmemset(&pext, 0, sizeof(pext));\n\t\tpext.mStartOffset = abpt->mByte;\n\t\tCompressedPacketTable::iterator iter = std::lower_bound(packetTable->begin(), packetTable->end(), pext, byte_less_than);\n\t\t\n\t\tif (iter == packetTable->end()) {\n\t\t\tSInt64 numPackets = packetTable->size();\n\t\t\tif (numPackets < 8) \n\t\t\t\treturn 'more' /*kAudioFileStreamError_DataUnavailable*/ ;\n\t\t\t\t\n\t\t\tconst AudioStreamPacketDescriptionExtended lastPacket = (*packetTable)[numPackets - 1];\n\t\t\tSInt64 bytesReadSoFar = lastPacket.mStartOffset + lastPacket.mDataByteSize;\n\t\t\tdouble averageBytesPerPacket = (double)(bytesReadSoFar - GetDataOffset()) / (double)numPackets;\n\t\t\t\n\t\t\tdouble fpacket = (double)abpt->mByte / averageBytesPerPacket;\n\t\t\tabpt->mPacket = (SInt64)floor(fpacket);\n\t\t\tabpt->mByteOffsetInPacket = (UInt32)floor((fpacket - (double)abpt->mPacket) * averageBytesPerPacket);\n\t\t\tabpt->mFlags = kBytePacketTranslationFlag_IsEstimate;\n\t\t\t\n\t\t} else {\n\t\t\tif (iter > packetTable->begin()) --iter;\n\t\t\tabpt->mPacket = iter - packetTable->begin();\n\t\t\tabpt->mByteOffsetInPacket = (UInt32)(abpt->mByte - iter->mStartOffset);\n\t\t\tabpt->mFlags = 0;\n\t\t}\n\t}\n\telse\n\t{\n\t\tabpt->mPacket = abpt->mByte / mDataFormat.mBytesPerPacket;\n\t\tabpt->mByteOffsetInPacket = (UInt32)(abpt->mByte % mDataFormat.mBytesPerPacket);\n\t\tabpt->mFlags = 0;\n\t}\n\treturn noErr;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::ReadBytes(\t\t\n\t\t\t\t\t\t\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\tvoid\t\t\t*outBuffer)\n{\n    OSStatus\t\terr = noErr;\n    UInt16\t\t\tmode = SEEK_SET;\n\tSInt64 \t\t\tfileOffset = mDataOffset + inStartingByte;\n    bool\t\t\treadingPastEnd = false;\n\t\n    FailWithAction((ioNumBytes == NULL) || (outBuffer == NULL), err = kAudio_ParamError, \n\t\tBail, \"invalid num bytes parameter\");\n\n\t//printf(\"inStartingByte %lld  GetNumBytes %lld\\n\", inStartingByte, GetNumBytes());\n\n\tif (inStartingByte >= GetNumBytes()) \n\t{\n\t\t*ioNumBytes = 0;\n\t\treturn kAudioFileEndOfFileError;\n\t}\n\n\tif ((fileOffset + *ioNumBytes) > (GetNumBytes() + mDataOffset)) \n\t{\n\t\t*ioNumBytes = (UInt32)(GetNumBytes() + mDataOffset - fileOffset);\n\t\treadingPastEnd = true;\n\t}\n\t//printf(\"fileOffset %lld  mDataOffset %lld  readingPastEnd %d\\n\", fileOffset, mDataOffset, readingPastEnd);\n\n    if (!inUseCache)\n        mode |= kAudioFileNoCacheMask;\n\t\n    err = GetDataSource()->ReadBytes(mode, fileOffset, *ioNumBytes, outBuffer, ioNumBytes);\n\t\n\tif (readingPastEnd && err == noErr)\n\t\terr = kAudioFileEndOfFileError;\n\nBail:\n    return err;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::WriteBytes(\t\n\t\t\t\t\t\t\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\tconst void\t\t*inBuffer)\n{\n    OSStatus\t\terr = noErr;\n    UInt16\t\t\tmode = SEEK_SET;\n\tbool\t\t\textendingTheAudioData;\n\n\tif (!CanWrite()) return kAudioFilePermissionsError;\n\n    FailWithAction((ioNumBytes == NULL) || (inBuffer == NULL), err = kAudioFileUnspecifiedError, Bail, \"invalid parameters\");\n\n    // Do not try to write to a postion greater than 32 bits for some file types\n    // see if starting byte + ioNumBytes is greater than 32 bits\n    // if so, see if file type supports this and bail if not\n    err = IsValidFilePosition(inStartingByte + *ioNumBytes);\n    FailIf(err != noErr, Bail, \"invalid file position\");\n    \n    extendingTheAudioData = inStartingByte + *ioNumBytes > GetNumBytes();\n    \n    // if file is not optimized, then do not write data that would overwrite chunks following the sound data chunk\n    FailWithAction(\textendingTheAudioData && !IsOptimized(), \n                    err = kAudioFileNotOptimizedError, Bail, \"Can't write more data until the file is optimized\");\n\n    if (!inUseCache)\n        mode |= kAudioFileNoCacheMask;\n    \n    err = GetDataSource()->WriteBytes(mode, mDataOffset + inStartingByte, *ioNumBytes, \n                        inBuffer, ioNumBytes);\n\t\n    FailIf(err != noErr, Bail, \"couldn't write new data\");\n    \n    if (extendingTheAudioData) {\n        SInt64\t\tnuEOF;\t\t\t\t\t\t// Get the total bytes of audio data\n        SInt64\t\tnuByteTotal;\n\n\t\terr = GetDataSource()->GetSize(nuEOF);\n\t\tFailIf(err != noErr, Bail, \"GetSize failed\");\n            \n\t\tnuByteTotal = nuEOF - mDataOffset;\n\t\terr = UpdateNumBytes(nuByteTotal);\n    }\n    \nBail:\n    return err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::ReadPackets(\t\n\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*outNumBytes,\n\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)\n{\n\t// This only works with CBR. To suppport VBR you must override.\n    OSStatus\t\terr = noErr;\n    \n    FailWithAction(outBuffer == NULL, err = kAudio_ParamError, Bail, \"NULL buffer\");\n\t\n    FailWithAction((ioNumPackets == NULL) || (*ioNumPackets < 1), err = kAudio_ParamError, Bail, \"invalid num packets parameter\");\n    \n\t{\n\t\tUInt32\t\t\tbyteCount = *ioNumPackets * mDataFormat.mBytesPerPacket;\n\t\tSInt64\t\t\tstartingByte = inStartingPacket * mDataFormat.mBytesPerPacket;\n\t\t\t\n\t\terr = ReadBytes (inUseCache, startingByte, &byteCount, outBuffer);\n\t\tif ((err == noErr) || (err == kAudioFileEndOfFileError))\n\t\t{\n\t\t\tif (byteCount != (*ioNumPackets * mDataFormat.mBytesPerPacket))\n\t\t\t{\n\t\t\t\t*ioNumPackets = byteCount / mDataFormat.mBytesPerPacket;\n\t\t\t\tbyteCount = *ioNumPackets * mDataFormat.mBytesPerPacket;\n\t\t\t}\n\n\t\t\tif (outNumBytes)\n\t\t\t\t*outNumBytes = byteCount;\n\t\t\t\n\t\t\tif (err == kAudioFileEndOfFileError)\n\t\t\t\terr = noErr;\n\t\t}\n\t}\nBail:\n    return err;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::ReadPacketData(\t\n\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)\n{\n\tOSStatus\t\terr = noErr;\n\tFailWithAction(ioNumPackets == NULL || *ioNumPackets < 1, err = kAudio_ParamError, Bail, \"invalid ioNumPackets parameter\");\n\tFailWithAction(ioNumBytes   == NULL || *ioNumBytes   < 1, err = kAudio_ParamError, Bail, \"invalid ioNumBytes parameter\");\n\tif (mDataFormat.mBytesPerPacket) {\n\t \t// CBR\n\t\tFailWithAction(outBuffer    == NULL, err = kAudio_ParamError, Bail, \"NULL buffer\");\n\t\tUInt32 maxPackets = *ioNumBytes / mDataFormat.mBytesPerPacket;\n\t\tif (*ioNumPackets > maxPackets) *ioNumPackets = maxPackets;\n\n\t\tif (outBuffer) {\n\t\t\tUInt32 byteCount = *ioNumPackets * mDataFormat.mBytesPerPacket;\n\t\t\tSInt64 startingByte = inStartingPacket * mDataFormat.mBytesPerPacket;\n\t\t\terr = ReadBytes (inUseCache, startingByte, &byteCount, outBuffer);\n\t\t\tif (err == noErr || err == kAudioFileEndOfFileError) {\n\t\t\t\tif (byteCount != (*ioNumPackets * mDataFormat.mBytesPerPacket)) {\n\t\t\t\t\t*ioNumPackets = byteCount / mDataFormat.mBytesPerPacket;\n\t\t\t\t\tbyteCount = *ioNumPackets * mDataFormat.mBytesPerPacket;\n\t\t\t\t}\n\t\t\t\t*ioNumBytes = byteCount;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tFailWithAction(outPacketDescriptions   == NULL, err = kAudio_ParamError, Bail, \"invalid outPacketDescriptions parameter\");\n\t\terr = ReadPacketDataVBR(inUseCache, ioNumBytes, outPacketDescriptions, inStartingPacket, ioNumPackets, outBuffer);\n\t}\nBail:\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::ReadPacketDataVBR(\t\n\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)\n{\n\tOSStatus err = ScanForPackets(inStartingPacket+1); // need to scan packets up to start\n\tif (err && err != kAudioFileEndOfFileError)\n\t\treturn err;\n\n\tSInt64 dataOffset = GetDataOffset();\n\n\tCompressedPacketTable* packetTable = GetPacketTable();\n    if (!packetTable) \n\t\treturn kAudioFileInvalidFileError;\n\n\tSInt64 packetTableSize = GetPacketTableSize();\n\n\tif (inStartingPacket >= packetTableSize) {\n\t\t*ioNumBytes = 0;\n\t\t*ioNumPackets = 0;\n\t\treturn kAudioFileEndOfFileError;\n\t}\n\t\n\tif (inStartingPacket + *ioNumPackets <= packetTableSize) {\n\t\terr = ReadPacketDataVBR_InTable(inUseCache, ioNumBytes, outPacketDescriptions, inStartingPacket, ioNumPackets, outBuffer);\n\t} else {\n\n\t\tAudioStreamPacketDescription firstPacket = (*packetTable)[inStartingPacket];\n\t\tSInt64 firstPacketOffset = firstPacket.mStartOffset;\n\t\tUInt32 bytesRead = *ioNumBytes;\n\t\tSInt64 fileSize = 0;\n\t\tGetDataSource()->GetSize(fileSize);\n\t\tSInt64 remainingBytesInFile = fileSize - firstPacketOffset - dataOffset;\n\t\tif (bytesRead > remainingBytesInFile)\n\t\t\tbytesRead = (UInt32)remainingBytesInFile;\n\t\t\n\t\terr = ReadBytes (inUseCache, firstPacketOffset, &bytesRead, outBuffer);\n\t\tif (err && err != kAudioFileEndOfFileError) {\n\t\t\t*ioNumBytes = 0;\n\t\t\t*ioNumPackets = 0;\n\t\t\treturn err;\n\t\t}\n\t\t\n\t\tBuffer_DataSource bufSrc(bytesRead, outBuffer, dataOffset + firstPacketOffset);\n\t\t\n\t\tOSStatus scanErr = ScanForPackets(kScanToEnd, &bufSrc, false);\n\t\tif (scanErr && scanErr != kAudioFileEndOfFileError)\n\t\t\treturn scanErr;\n\t\tpacketTableSize = packetTable->size();\n\t\t\n\t\tUInt32 numPacketsRead = 0;\n\t\tUInt32 endOfData = 0;\n\t\tSInt64 packetNumber = inStartingPacket;\n\t\tfor (; numPacketsRead < *ioNumPackets && packetNumber < packetTableSize; ++numPacketsRead, ++packetNumber) {\n\t\t\tAudioStreamPacketDescription curPacket = (*packetTable)[numPacketsRead + inStartingPacket];\n\t\t\tSInt64 curPacketOffset = curPacket.mStartOffset - firstPacketOffset;\n\t\t\tSInt64 endOfPacket = curPacketOffset + curPacket.mDataByteSize;\n\t\t\tif (endOfPacket > bytesRead) break;\n\t\t\tendOfData = (UInt32)endOfPacket;\n\t\t\toutPacketDescriptions[numPacketsRead] = curPacket;\t\t\t\t\n\t\t\toutPacketDescriptions[numPacketsRead].mStartOffset = curPacketOffset;\n\t\t}\n\t\t\n\t\t*ioNumBytes = endOfData;\n\t\t*ioNumPackets = numPacketsRead;\n\t}\n    return err;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nOSStatus AudioFileObject::HowManyPacketsCanBeReadIntoBuffer(UInt32* ioNumBytes, SInt64 inStartingPacket, UInt32 *ioNumPackets)\n{\t\t\n\tCompressedPacketTable*\tpacketTable = GetPacketTable();\n\tSInt64 packetTableSize = GetPacketTableSize();\n\n\tif (inStartingPacket + *ioNumPackets > (SInt64)packetTableSize) {\n\t\t*ioNumPackets = (UInt32)(packetTableSize - inStartingPacket);\n\t}\n\t\n\tAudioStreamPacketDescription firstPacket = (*packetTable)[inStartingPacket];\n\n\tif (*ioNumBytes < firstPacket.mDataByteSize) {\n\t\t*ioNumBytes = 0;\n\t\t*ioNumPackets = 0;\n\t\treturn kAudio_ParamError;\n\t}\n\n\tSInt64 lastPacketIndex = inStartingPacket + *ioNumPackets - 1;\n\tif (lastPacketIndex >= packetTableSize) \n\t\tlastPacketIndex = packetTableSize - 1;\n\t\t\n\tAudioStreamPacketDescription lastPacket = (*packetTable)[lastPacketIndex];\n\t\n\tSInt64 readBytes = lastPacket.mStartOffset + lastPacket.mDataByteSize - firstPacket.mStartOffset;\n\tif (readBytes <= *ioNumBytes) {\n\t\t*ioNumBytes = (UInt32)readBytes;\n\t\treturn noErr;\n\t}\n\t\n\tSInt64 lowBound = inStartingPacket;\n\tSInt64 highBound = lastPacketIndex + 1;\n\tSInt64 okIndex = lowBound;\n\twhile (highBound >= lowBound) {\t\t\n\t\tSInt64 tryBound = (lowBound + highBound) >> 1;\n\t\tif (tryBound > lastPacketIndex) \n\t\t\tbreak;\n\t\tAudioStreamPacketDescription tryPacket = (*packetTable)[tryBound];\n\t\t\n\t\tSInt64 readBytes = tryPacket.mStartOffset + tryPacket.mDataByteSize - firstPacket.mStartOffset;\n\t\t\n\t\tif (readBytes > (SInt64)*ioNumBytes) {\n\t\t\thighBound = tryBound - 1;\n\t\t} else if (readBytes < (SInt64)*ioNumBytes) {\n\t\t\tokIndex = tryBound;\n\t\t\tlowBound = tryBound + 1;\n\t\t} else {\n\t\t\tokIndex = tryBound;\n\t\t\tbreak;\n\t\t}\n\t}\t\n\t\n\tSInt64 numPackets = okIndex - inStartingPacket + 1;\n\tif (numPackets > *ioNumPackets) {\n\t\tnumPackets = *ioNumPackets;\n\t\tokIndex = inStartingPacket + numPackets - 1;\n\t}\n\t\n\tAudioStreamPacketDescription packet = (*packetTable)[okIndex];\n\t*ioNumBytes = (UInt32)(packet.mStartOffset + packet.mDataByteSize - firstPacket.mStartOffset);\n\t*ioNumPackets = (UInt32)numPackets;\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::ReadPacketDataVBR_InTable(\t\n\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer)\n{\n\tCompressedPacketTable* packetTable = GetPacketTable();\n    if (!packetTable) \n\t\treturn kAudioFileInvalidFileError;\n\t\n\tOSStatus err = HowManyPacketsCanBeReadIntoBuffer(ioNumBytes, inStartingPacket, ioNumPackets);\n\tif (err) return err;\n\t\t\t\n\tAudioStreamPacketDescription firstPacket = (*packetTable)[inStartingPacket];\n\tSInt64 firstPacketOffset = firstPacket.mStartOffset;\n\tUInt32 bytesRead = *ioNumBytes;\n\t\n\tif (outBuffer) {\n\t\terr = ReadBytes (inUseCache, firstPacketOffset, &bytesRead, outBuffer);\n\t\tif (err && err != kAudioFileEndOfFileError) {\n\t\t\t*ioNumBytes = 0;\n\t\t\t*ioNumPackets = 0;\n\t\t\treturn err;\n\t\t}\n\t\t*ioNumBytes = bytesRead;\n\t}\n\t\n\t// fill out packet descriptions\n\tif (outPacketDescriptions) {\t\t\t\t\t\t\n\t\tfor (UInt32 i = 0; i < *ioNumPackets; i++) {\n\t\t\tAudioStreamPacketDescription curPacket = (*packetTable)[i + inStartingPacket];\n\t\t\toutPacketDescriptions[i] = curPacket;\t\t\t\t\n\t\t\toutPacketDescriptions[i].mStartOffset = curPacket.mStartOffset - firstPacketOffset;\n\t\t}\n\t}\n\n    return err;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::WritePackets(\t\n\t\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\t\tinUseCache,\n                                    UInt32\t\t\t\t\t\t\t\tinNumBytes,\n                                    const AudioStreamPacketDescription\t*inPacketDescriptions,\n                                    SInt64\t\t\t\t\t\t\t\tinStartingPacket, \n                                    UInt32\t\t\t\t\t\t\t\t*ioNumPackets, \n                                    const void\t\t\t\t\t\t\t*inBuffer)\n{\n\t// This only works with CBR. To suppport VBR you must override.\n    OSStatus\t\terr = noErr;\n    \n    FailWithAction(inStartingPacket > GetNumPackets(), err = kAudioFileInvalidPacketOffsetError, Bail, \"write past end\");\n    FailWithAction((ioNumPackets == NULL) || (inBuffer == NULL), err = kAudioFileUnspecifiedError, Bail, \"invalid parameter\");\n\t\n\t{\n\t\tUInt32 byteCount = *ioNumPackets * mDataFormat.mBytesPerPacket;\n\t\tSInt64 startingByte = inStartingPacket * mDataFormat.mBytesPerPacket;\n\n\t\terr = WriteBytes(inUseCache, startingByte, &byteCount, inBuffer);\n\t\tFailIf (err != noErr, Bail, \"Write Bytes Failed\");\n\n\t\tif (byteCount != (*ioNumPackets * mDataFormat.mBytesPerPacket))\n\t\t\t*ioNumPackets = byteCount / mDataFormat.mBytesPerPacket;\n\t}\nBail:\n    return (err);\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetBitRate(\t\t\tUInt32\t\t\t\t\t*outBitRate)\n{\n\t\n\tif (!outBitRate) return kAudioFileUnspecifiedError;\n    \n\tUInt32 bytesPerPacket = GetDataFormat().mBytesPerPacket;\n\tUInt32 framesPerPacket = GetDataFormat().mFramesPerPacket;\n\tFloat64 sampleRate = GetDataFormat().mSampleRate;\n\tconst Float64 bitsPerByte = 8.;\n\t\n\tif (bytesPerPacket && framesPerPacket) {\n\t\t*outBitRate = (UInt32)(bitsPerByte * (Float64)bytesPerPacket * sampleRate / (Float64)framesPerPacket);\n\t} else {\t\t\n\t\tSInt64 numPackets = GetNumPackets();\n\t\tSInt64 numBytes = GetNumBytes();\n\t\tSInt64 numFrames = 0;\n\t\t\n\t\tif (framesPerPacket) {\n\t\t\tnumFrames = numPackets * framesPerPacket;\n\t\t} else {\n\t\t\t// count frames\n\t\t\tCompressedPacketTable* packetTable = GetPacketTable();\n\t\t\tif (packetTable) {\n                if (packetTable->size() != numPackets) {\n                    return kAudioFileInvalidFileError;\n                }\n#if !TARGET_OS_WIN32\n\t\t\t\tfor (ssize_t i = 0; i < numPackets; i++)\n#else\n\t\t\t\tfor (int i = 0; i < numPackets; i++)\n#endif\n\t\t\t\t{\n\t\t\t\t\tnumFrames += (*packetTable)[i].mVariableFramesInPacket;\n\t\t\t\t}\t\t\n\t\t\t} else {\n\t\t\t\treturn kAudioFileUnsupportedPropertyError;\n\t\t\t}\n\t\t}\n        \n        if (numFrames == 0 || (sampleRate == 0.)) {\n            *outBitRate = 0;\n            return noErr;\n        }\n\t\tFloat64 duration = (Float64)numFrames / sampleRate;\n\t\t*outBitRate = (UInt32)(bitsPerByte * (Float64)numBytes / duration);\n\t}\n\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetMagicCookieDataSize(\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable)\n{\n\tif (outDataSize)  *outDataSize = 0;\n\tif (isWritable)  *isWritable = 0;\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetMagicCookieData(\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData)\n{\n\t*ioDataSize = 0;\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::SetMagicCookieData(\tUInt32\t\t\t\t\t/*inDataSize*/,\n\t\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inPropertyData)\n{\n\treturn kAudioFileInvalidChunkError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetMarkerListSize(\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable)\n{\n\tif (outDataSize) *outDataSize = 0;\n\tif (isWritable) *isWritable = 0;\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetMarkerList(\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioFileMarkerList*\t/*ioPropertyData*/)\n{\n\t*ioDataSize = 0;\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::SetMarkerList(\tUInt32\t\t\t\t\t\t/*inDataSize*/,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioFileMarkerList*  /*inPropertyData*/)\n{\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetRegionListSize(\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable)\n{\n\tif (outDataSize) *outDataSize = 0;\n\tif (isWritable) *isWritable = 0;\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetRegionList(\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioFileRegionList\t\t*ioPropertyData)\n{\n\t*ioDataSize = 0;\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::SetRegionList(\tUInt32\t\t\t\t\t\t/*inDataSize*/,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioFileRegionList*   /*inPropertyData*/)\n{\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetChannelLayoutSize(\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable)\n{\n\tif (outDataSize) *outDataSize = 0;\n\tif (isWritable) *isWritable = 0;\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetChannelLayout(\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayout*\t\t\t/*ioPropertyData*/)\n{\n\t*ioDataSize = 0;\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::SetChannelLayout(\tUInt32\t\t\t\t\t\t/*inDataSize*/,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioChannelLayout*   /*inPropertyData*/)\n{\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetInfoDictionarySize(\t\tUInt32\t\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t*isWritable)\n{\n\tif (outDataSize) *outDataSize = sizeof(CFDictionaryRef);\n\tif (isWritable) *isWritable = 0;\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t\t\t\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObject::GetInfoDictionary(CACFDictionary  *infoDict)\n{\t\n\tFloat64 fl;\n\tif (GetEstimatedDuration(&fl) == noErr)\n\t\treturn AddDurationToInfoDictionary(infoDict, fl);\n\t\t\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t\t\t\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObject::SetInfoDictionary(CACFDictionary *infoDict)\n{\n\treturn kAudioFileUnsupportedPropertyError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nOSStatus AudioFileObject::GetEstimatedDuration(Float64*\t\tduration)\n{\n\t// calculate duration\n\tAudioStreamBasicDescription\t\tASBD = GetDataFormat();\n\t\t\n\t*duration  = (ASBD.mFramesPerPacket != 0) ? (GetNumPackets() * ASBD.mFramesPerPacket) / ASBD.mSampleRate : 0.0;\n\t\n\t/*\n\t\tFor now, assume that any ASBD that has zero in the frames per packet field has been subclassed for this\n\t\tmethod. i.e. A CAF file has a frame count in one of it's chunks.\n\t\t\n\t\tMP3 has been subclassed because it guesstimates a duration so the entire file does not \n\t\tneed to be parsed in order to calculate the total frames.\n\t*/\n\t\n\treturn noErr;\n\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetPropertyInfo\t(\t\n                                        AudioFilePropertyID\t\tinPropertyID,\n                                        UInt32\t\t\t\t\t*outDataSize,\n                                        UInt32\t\t\t\t\t*isWritable)\n{\n    OSStatus\t\terr = noErr;\n    UInt32\t\t\twritable = 0;\n        \n    switch (inPropertyID)\n    {\n\t\tcase kAudioFilePropertyDeferSizeUpdates :\n            if (outDataSize) *outDataSize = sizeof(UInt32);\n            writable = 1;\n            break;\n\n        case kAudioFilePropertyFileFormat:\n            if (outDataSize) *outDataSize = sizeof(UInt32);\n            writable = 0;\n            break;\n\n        case kAudioFilePropertyDataFormat:\n            if (outDataSize) *outDataSize = sizeof(AudioStreamBasicDescription);\n            writable = 1;\n            break;\n                        \n\t\tcase kAudioFilePropertyFormatList:\n\t\t\terr = GetFormatListInfo(*outDataSize, writable);\n            break;\n\t\t\n\t\tcase kAudioFilePropertyPacketSizeUpperBound:\n        case kAudioFilePropertyIsOptimized:\n        case kAudioFilePropertyMaximumPacketSize:\n            if (outDataSize) *outDataSize = sizeof(UInt32);\n            writable = 0;\n            break;\n\n        case kAudioFilePropertyAudioDataByteCount:\n        case kAudioFilePropertyAudioDataPacketCount:\n            writable = 1;\n            if (outDataSize) *outDataSize = sizeof(SInt64);\n            break;\n\n\t\tcase kAudioFilePropertyDataOffset:\n            writable = 0;\n            if (outDataSize) *outDataSize = sizeof(SInt64);\n            break;\n\n\t\tcase kAudioFilePropertyBitRate:            \n            writable = 0;\n            if (outDataSize) *outDataSize = sizeof(UInt32);\n\t\t\tbreak;\n\n\t\tcase kAudioFilePropertyMagicCookieData:            \n            err = GetMagicCookieDataSize(outDataSize, &writable);\n\t\t\tbreak;\n\n\t\tcase kAudioFilePropertyMarkerList :\n            err = GetMarkerListSize(outDataSize, &writable);\t\t\t\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFilePropertyRegionList :\n            err = GetRegionListSize(outDataSize, &writable);\t\t\t\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFilePropertyChannelLayout :\n            err = GetChannelLayoutSize(outDataSize, &writable);\t\t\t\n\t\t\tbreak;\n\n\t\tcase kAudioFilePropertyPacketToFrame :\n\t\tcase kAudioFilePropertyFrameToPacket :\n            if (outDataSize) *outDataSize = sizeof(AudioFramePacketTranslation);\n            writable = 0;\n\t\t\tbreak;\n\n\t\tcase kAudioFilePropertyPacketToByte :\n\t\tcase kAudioFilePropertyByteToPacket :\n            if (outDataSize) *outDataSize = sizeof(AudioBytePacketTranslation);\n            writable = 0;\n\t\t\tbreak;\n\n        case kAudioFilePropertyInfoDictionary :\n            err = GetInfoDictionarySize(outDataSize, &writable);\t\t\t\n            break;\n\n        case kTEMPAudioFilePropertySoundCheckDictionary :\n            err = GetSoundCheckDictionarySize(outDataSize, &writable);\t\t\t\n            break;\n\n\t\tcase kTEMPAudioFilePropertyGenerateLoudnessInfo :\n            err = GetLoudnessInfoSize(outDataSize, &writable);\n            writable = 0;\n            break;\n\n\t\tcase kTEMPAudioFilePropertyLoudnessInfo :\n            err = GetLoudnessInfoSize(outDataSize, &writable);\n            break;\n\n\t\tcase kAudioFilePropertyEstimatedDuration :\n            if (outDataSize) *outDataSize = sizeof(Float64);\n            writable = 0;\n\t\t\tbreak;\n\n\t\tcase 'LYRC':\n\t\t\tif (outDataSize) *outDataSize = sizeof(CFStringRef);\n\t\t\tif (isWritable) *isWritable = 0;\n\t\t\tbreak;\n\n\t\tcase 'eof?':\n\t\t\tif (outDataSize) *outDataSize = sizeof(UInt32);\n\t\t\tif (isWritable) *isWritable = 0;\n\t\t\tbreak;\n\n\t\tcase 'sbtd' /*kAudioFilePropertySourceBitDepth*/ :\n\t\t\tif (outDataSize) *outDataSize = sizeof(SInt32);\n\t\t\tif (isWritable) *isWritable = CanWrite();\n\t\t\tbreak;\n\t\t\n        default:\n            writable = 0;\n            err = kAudioFileUnsupportedPropertyError;\n            break;\n    }\n\n    if (isWritable)\n        *isWritable = writable;\n    return (err);\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus\tAudioFileObject::GetProperty(\n                                    AudioFilePropertyID\t\tinPropertyID,\n                                    UInt32\t\t\t\t\t*ioDataSize,\n                                    void\t\t\t\t\t*ioPropertyData)\n{\n    OSStatus\t\terr = noErr;\n\tUInt32\t\t\tneededSize;\n    UInt32\t\t\twritable;\n\t\n    switch (inPropertyID)\n    {\n        case kAudioFilePropertyFileFormat:\n            FailWithAction(*ioDataSize != sizeof(UInt32), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\t\t\t\t\n            *(UInt32 *) ioPropertyData = GetFileType();\n            break;\n\n\t\tcase kAudioFilePropertyFormatList:\n\t\t\terr = GetFormatList(*ioDataSize, (AudioFormatListItem*)ioPropertyData);\n            break;\n\t\t\n        case kAudioFilePropertyDataFormat:\n            FailWithAction(*ioDataSize != sizeof(AudioStreamBasicDescription), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\t\t\t\t\n            memcpy(ioPropertyData, &mDataFormat, sizeof(AudioStreamBasicDescription));\n            break;\n\t\tcase kAudioFilePropertyDataOffset:\n            FailWithAction(*ioDataSize != sizeof(SInt64), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n            *(SInt64 *) ioPropertyData = mDataOffset;\n\t\t\tbreak;\n        case kAudioFilePropertyIsOptimized:\n            FailWithAction(*ioDataSize != sizeof(UInt32), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n            *(UInt32 *) ioPropertyData = mIsOptimized;\n            break;\n\n        case kAudioFilePropertyAudioDataByteCount:\n            FailWithAction(*ioDataSize != sizeof(SInt64), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n            *(SInt64 *)ioPropertyData = GetNumBytes();\n            break;\n\n        case kAudioFilePropertyAudioDataPacketCount:\n            FailWithAction(*ioDataSize != sizeof(SInt64), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n            *(SInt64 *)ioPropertyData = GetNumPackets();\n            break;\n\n\t\tcase kAudioFilePropertyPacketSizeUpperBound:\n            FailWithAction(*ioDataSize != sizeof(UInt32), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n            *(UInt32 *)ioPropertyData = GetPacketSizeUpperBound();\n            break;\n\t\t\t\n        case kAudioFilePropertyMaximumPacketSize:\n            FailWithAction(*ioDataSize != sizeof(UInt32), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n            *(UInt32 *)ioPropertyData = FindMaximumPacketSize();\n            break;\n\n\n         case kAudioFilePropertyBitRate:            \n            FailWithAction(*ioDataSize != sizeof(UInt32), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\t\t\terr = GetBitRate((UInt32*)ioPropertyData);\n            break;\n\n         case kAudioFilePropertyMagicCookieData:            \n            \n\t\t\terr = GetMagicCookieData(ioDataSize, ioPropertyData);\n            break;\n\n\t\tcase kAudioFilePropertyMarkerList :\n            err = GetMarkerList(ioDataSize, static_cast<AudioFileMarkerList*>(ioPropertyData));\t\t\t\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFilePropertyRegionList :\n\t\t\tmemset(ioPropertyData, 0, *ioDataSize);\n            err = GetRegionList(ioDataSize, static_cast<AudioFileRegionList*>(ioPropertyData));\t\t\t\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFilePropertyChannelLayout :\n\t\t\terr = GetChannelLayoutSize(&neededSize, &writable);\n            FailIf(err, Bail, \"GetChannelLayoutSize failed\");\n            FailWithAction(*ioDataSize != neededSize, err = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\t\t\t\n            err = GetChannelLayout(ioDataSize, static_cast<AudioChannelLayout*>(ioPropertyData));\t\t\t\n\t\t\tbreak;\n\t\t\t\t\t\t\n\t\tcase kAudioFilePropertyDeferSizeUpdates :\n            FailWithAction(*ioDataSize != sizeof(UInt32), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\t\t\t\t\n            *(UInt32 *) ioPropertyData = DeferSizeUpdates();\n            break;\n\n\t\tcase kAudioFilePropertyPacketToFrame : \n\t\t{\n            FailWithAction(*ioDataSize != sizeof(AudioFramePacketTranslation), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\t\t\t\n\t\t\tAudioFramePacketTranslation* afpt = (AudioFramePacketTranslation*)ioPropertyData;\n\t\t\terr = PacketToFrame(afpt->mPacket, afpt->mFrame);\n\t\t\tbreak;\n\t\t}\t\n\t\tcase kAudioFilePropertyFrameToPacket :\n\t\t{\n            FailWithAction(*ioDataSize != sizeof(AudioFramePacketTranslation), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\tAudioFramePacketTranslation* afpt = (AudioFramePacketTranslation*)ioPropertyData;\n\t\t\terr = FrameToPacket(afpt->mFrame, afpt->mPacket, afpt->mFrameOffsetInPacket);\n\t\t\tbreak;\n\t\t}\n\n\t\tcase kAudioFilePropertyPacketToByte : \n\t\t{\n            FailWithAction(*ioDataSize != sizeof(AudioBytePacketTranslation), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\t\t\t\n\t\t\tAudioBytePacketTranslation* abpt = (AudioBytePacketTranslation*)ioPropertyData;\n\t\t\terr = PacketToByte(abpt);\n\t\t\tbreak;\n\t\t}\t\n\t\tcase kAudioFilePropertyByteToPacket :\n\t\t{\n            FailWithAction(*ioDataSize != sizeof(AudioBytePacketTranslation), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\tAudioBytePacketTranslation* abpt = (AudioBytePacketTranslation*)ioPropertyData;\n\t\t\terr = ByteToPacket(abpt);\n\t\t\tbreak;\n\t\t}\n\n        case kAudioFilePropertyInfoDictionary :\n\t\t{\n            FailWithAction(*ioDataSize != sizeof(CFDictionaryRef), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\tCACFDictionary\t\tafInfoDictionary(true);\n\n            err = GetInfoDictionary(&afInfoDictionary);\t\t\t\n            \n\t\t\tif (!err)\n\t\t\t{\n\t\t\t\t*(CFMutableDictionaryRef *)ioPropertyData = afInfoDictionary.CopyCFMutableDictionary();\n\t\t\t}\n            break;\n\t\t}\n\n        case kTEMPAudioFilePropertySoundCheckDictionary :\n\t\t{\n            FailWithAction(*ioDataSize != sizeof(CFDictionaryRef), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\tCACFDictionary\t\tafInfoDictionary(true);\n\n            err = GetSoundCheckDictionary(&afInfoDictionary);\n            if (err) {\n\t\t\t\tOSStatus err2 = GetSoundCheckDictionaryFromLoudnessInfo(&afInfoDictionary);\n\t\t\t\tif (err2 == noErr) err = noErr; // else report original error from GetSoundCheckDictionary.\n\t\t\t}\n            \n\t\t\tif (!err)\n\t\t\t{\n\t\t\t\t*(CFMutableDictionaryRef *)ioPropertyData = afInfoDictionary.CopyCFMutableDictionary();\n\t\t\t}\n            break;\n\t\t}\n\n        case kTEMPAudioFilePropertyLoudnessInfo :\n\t\t{\n            FailWithAction(*ioDataSize != sizeof(CFDictionaryRef), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\tCACFDictionary\t\tafInfoDictionary(true);\n\n            err = GetLoudnessInfo(&afInfoDictionary);\n            if (err) {\n\t\t\t\tOSStatus err2 = GetLoudnessInfoFromSoundCheckDictionary(&afInfoDictionary);\n\t\t\t\tif (err2 == noErr) err = noErr; // else report original error from GetLoudnessInfo.\n\t\t\t}\n\t\t\t\n\t\t\tif (!err) \n\t\t\t{\n\t\t\t\t*(CFMutableDictionaryRef *)ioPropertyData = afInfoDictionary.CopyCFMutableDictionary();\n\t\t\t}\n            break;\n\t\t}\n\n\t\tcase kTEMPAudioFilePropertyGenerateLoudnessInfo :\n\t\t{\n            FailWithAction(*ioDataSize != sizeof(CFDictionaryRef),\n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\tCACFDictionary\t\tafInfoDictionary(true);\n\n            err = GenerateLoudnessInfo(&afInfoDictionary);\t\t\t\n            \n\t\t\tif (!err)\n\t\t\t{\n\t\t\t\t*(CFMutableDictionaryRef *)ioPropertyData = afInfoDictionary.CopyCFMutableDictionary();\n\t\t\t}\n            break;\n\t\t}\n\n\t\tcase kAudioFilePropertyEstimatedDuration :\n\t\t{\n            FailWithAction(*ioDataSize != sizeof(Float64), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\t\t\n\t\t\terr = GetEstimatedDuration((Float64*)ioPropertyData); \n\t\t\tbreak;\n\t\t}\n\n        case 'LYRC' :\n            if (*ioDataSize < sizeof(CFStringRef))\n                return kAudioFileBadPropertySizeError;\n\n\t\t\t*ioDataSize = sizeof(CFStringRef);\n\t\t\terr = GetLyrics((CFStringRef*) ioPropertyData);\n\t\t\tbreak;\n\t\n\t\tcase 'eof?' : \n\t\t{\n            if (*ioDataSize != sizeof(UInt32))\n                return kAudioFileBadPropertySizeError;\n\t\t\t\n\t\t\tSInt64 pos;\n\t\t\terr = GetDataSource()->GetPos(pos);\n\t\t\tif (err) break;\n\t\t\t\n\t\t\tSInt64 endOfData = GetDataOffset() + GetNumBytes();\n\t\t\t*(UInt32*)ioPropertyData = pos >= endOfData;\n\t\t\t\n\t\t\tbreak;\n\t\t}\t\n\t\tcase 'sbtd' /*kAudioFilePropertySourceBitDepth*/ :\n\t\t{\n            if (*ioDataSize != sizeof(SInt32))\n                return kAudioFileBadPropertySizeError;\n\n\t\t\tSInt32 outValue = 0;\n\t\t\terr = GetSourceBitDepth(outValue);\n\t\t\tif ((err || outValue == 0) && GetDataFormat().mFormatID == kAudioFormatLinearPCM) {\n\t\t\t\t// if there was no stored source bit depth, and this file is LPCM, then report this file's bit depth.\n\t\t\t\terr = noErr;\n\t\t\t\toutValue = GetDataFormat().mBitsPerChannel;\n\t\t\t\tif (GetDataFormat().mFormatFlags & kAudioFormatFlagIsFloat) \n\t\t\t\t\toutValue = -outValue;\n\t\t\t} else if (err) \n\t\t\t\tbreak;\n\t\t\t\n\t\t\t*(SInt32 *) ioPropertyData = outValue;\n\t\t\t\n\t\t\tbreak;\n\t\t}\t\n\t\tdefault:\n            err = kAudioFileUnsupportedPropertyError;\t\t\t\n            break;\n    }\n\nBail:\n    return err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus\tAudioFileObject::SetProperty(\n                                    AudioFilePropertyID\t\tinPropertyID,\n                                    UInt32\t\t\t\t\tinDataSize,\n                                    const void\t\t\t\t*inPropertyData)\n{\n    OSStatus\t\terr = noErr;\n\n    switch (inPropertyID)\n    {\n        case kAudioFilePropertyDataFormat:\n            FailWithAction(inDataSize != sizeof(AudioStreamBasicDescription), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"Incorrect data size\");\n            err = UpdateDataFormat((AudioStreamBasicDescription *) inPropertyData);\n\t\t\tbreak;\n\t\tcase kAudioFilePropertyFormatList:\n\t\t\terr = SetFormatList(inDataSize, (AudioFormatListItem*)inPropertyData);\n            break;\n\t\t\n        case kAudioFilePropertyAudioDataByteCount: {\n            FailWithAction(inDataSize != sizeof(SInt64), err = kAudioFileBadPropertySizeError, Bail, \"Incorrect data size\");\n            SInt64 numBytes = *(SInt64 *) inPropertyData;\n\t\t\tif (numBytes > GetNumBytes()) {\n\t\t\t\t// can't use this to increase data size.\n\t\t\t\treturn kAudioFileOperationNotSupportedError;\n\t\t\t}\n\t\t\tUInt32 saveDefer = DeferSizeUpdates();\n\t\t\tSetDeferSizeUpdates(0); // force an update.\n\t\t\terr = UpdateNumBytes(numBytes);\n\t\t\tSetDeferSizeUpdates(saveDefer);\n\t\t} break;\n\n\t\tcase kAudioFilePropertyAudioDataPacketCount: {\n\t\t\tSInt64 numPackets = *(SInt64 *) inPropertyData;\n\t\t\tif (numPackets > GetNumPackets()) {\n\t\t\t\t// can't use this to increase data size.\n\t\t\t\treturn kAudioFileOperationNotSupportedError;\n\t\t\t}\n\t\t\terr = UpdateNumPackets(numPackets);\n\t\t} break;\n\t\t\n\t\tcase kAudioFilePropertyMagicCookieData:            \n\t\t\terr = SetMagicCookieData(inDataSize, inPropertyData);\n\t\t\tbreak;\n\n\n\t\tcase kAudioFilePropertyMarkerList :\n            err = SetMarkerList(inDataSize, static_cast<const AudioFileMarkerList*>(inPropertyData));\t\t\t\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFilePropertyRegionList :\n            err = SetRegionList(inDataSize, static_cast<const AudioFileRegionList*>(inPropertyData));\t\t\t\n\t\t\tbreak;\n\t\t\t\n\t\tcase kAudioFilePropertyChannelLayout :\n            err = SetChannelLayout(inDataSize, static_cast<const AudioChannelLayout*>(inPropertyData));\t\t\t\n\t\t\tbreak;\n\n\t\tcase kAudioFilePropertyDeferSizeUpdates :\n            FailWithAction(inDataSize != sizeof(UInt32), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n            SetDeferSizeUpdates(*(UInt32 *) inPropertyData);\n            break;\n\n        case kAudioFilePropertyInfoDictionary :\n\t\t{\n            FailWithAction(inDataSize != sizeof(CFDictionaryRef), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\t// pass the SetInfoDictionary a CACFDictionary object made with the provided CFDictionaryRef\n\t\t\t// Let the caller release their own CFObject so pass false for th erelease parameter\n\t\t\tCACFDictionary\t\tafInfoDictionary(*(CFDictionaryRef *)inPropertyData, false);\n            err = SetInfoDictionary(&afInfoDictionary);\t\t\t\n            \n            break;\n\t\t}\n\t\t\t\n        case kTEMPAudioFilePropertySoundCheckDictionary :\n\t\t{\n            FailWithAction(inDataSize != sizeof(CFDictionaryRef), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\t// pass the SetInfoDictionary a CACFDictionary object made with the provided CFDictionaryRef\n\t\t\t// Let the caller release their own CFObject so pass false for the release parameter\n\t\t\tCACFDictionary\t\tafInfoDictionary(*(CFDictionaryRef *)inPropertyData, false);\n            err = SetSoundCheckDictionary(&afInfoDictionary);\t\t\t\n            \n            break;\n\t\t}\n\n        case kTEMPAudioFilePropertyLoudnessInfo :\n\t\t{\n            FailWithAction(inDataSize != sizeof(CFDictionaryRef), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\t// pass the SetInfoDictionary a CACFDictionary object made with the provided CFDictionaryRef\n\t\t\t// Let the caller release their own CFObject so pass false for the release parameter\n\t\t\tCACFDictionary\t\tafInfoDictionary(*(CFDictionaryRef *)inPropertyData, false);\n            err = SetLoudnessInfo(&afInfoDictionary);\t\t\t\n            \n            break;\n\t\t}\n\t\t\t\n  \t\tcase 'sbtd' /*kAudioFilePropertySourceBitDepth*/ :\n\t\t{\n            FailWithAction(inDataSize != sizeof(SInt32), \n\t\t\t\terr = kAudioFileBadPropertySizeError, Bail, \"inDataSize is wrong\");\n\n\t\t\tSInt32 inValue = *(SInt32 *)inPropertyData;\n\t\t\terr = SetSourceBitDepth(inValue);\n\t\t\t\n\t\t\tbreak;\n\t\t}\t\n\n      default:\n            err = kAudioFileUnsupportedPropertyError;\t\t\t\n\t\tbreak;\n    }\n\nBail:\n    return err;\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::SetDataFormat(const AudioStreamBasicDescription* inStreamFormat)\n{\n\tOSStatus err = noErr;\n\t\n\tif (!IsDataFormatValid(inStreamFormat))\n\t\treturn kAudioFileUnsupportedDataFormatError;\n\n\tif (!IsDataFormatSupported(inStreamFormat)) \n\t\treturn kAudioFileUnsupportedDataFormatError;\n\t\n\tUInt32 prevBytesPerPacket = mDataFormat.mBytesPerPacket;\n\t\n\tmDataFormat = *inStreamFormat;\n\t\n\t// if CBR and bytes per packet changes, we need to change the number of packets we think we have.\n\tif (mDataFormat.mBytesPerPacket && mDataFormat.mBytesPerPacket != prevBytesPerPacket)\n\t{\n\t\tSInt64 numPackets = GetNumBytes() / mDataFormat.mBytesPerPacket;\n\t\tSetNumPackets(numPackets);\n\t\tSetMaximumPacketSize(mDataFormat.mBytesPerPacket);\n\n\t\tif (!mFirstSetFormat)\n\t\t\tSizeChanged();\n\t}\n\t\n\tmFirstSetFormat = false;\n\t\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetFormatListInfo(\tUInt32\t\t\t\t&outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t&outWritable)\n{\n\t// default implementation is to just return the data format\n\toutDataSize = sizeof(AudioFormatListItem);\n\toutWritable = false;\n\treturn noErr;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::GetFormatList(\tUInt32\t\t\t\t\t\t\t\t\t&ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioFormatListItem\t\t\t\t\t\t*ioPropertyData)\n{\n\t// default implementation is to just return the data format\n\tif (ioDataSize < sizeof(AudioFormatListItem))\n\t\treturn kAudioFileBadPropertySizeError;\n\t\n\tAudioFormatListItem afli;\n\tafli.mASBD = mDataFormat;\n\tAudioChannelLayoutTag layoutTag = /*kAudioChannelLayoutTag_Unknown*/ 0xFFFF0000 | mDataFormat.mChannelsPerFrame;\n\tUInt32 layoutSize, isWritable;\n\tOSStatus err = GetChannelLayoutSize(&layoutSize, &isWritable);\n\tif (err == noErr)\n\t{\n\t\tCAAutoFree<AudioChannelLayout> layout;\n\t\tlayout.allocBytes(layoutSize);\n\t\terr = GetChannelLayout(&layoutSize, layout());\n\t\tif (err == noErr) {\n\t\t\tlayoutTag = layout->mChannelLayoutTag;\n\t\t}\n\t}\n\tafli.mChannelLayoutTag = layoutTag;\t\n\t\n\tmemcpy(ioPropertyData, &afli, sizeof(AudioFormatListItem));\n\t\n\tioDataSize = sizeof(AudioFormatListItem);\n\treturn noErr;\n}\n\t\t\t\t\t\t\t\t\t\t\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::SetFormatList(\tUInt32\t\t\t\t\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioFormatListItem\t\t\t\t*inPropertyData)\n{\n\treturn kAudioFileOperationNotSupportedError;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nOSStatus AudioFileObject::UpdateDataFormat(const AudioStreamBasicDescription* inStreamFormat)\n{\n\treturn SetDataFormat(inStreamFormat);\n}\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nBoolean AudioFileObject::IsDataFormatValid(AudioStreamBasicDescription const* inDesc)\n{\n\tif (inDesc->mSampleRate < 0.)\n\t\treturn false;\n\n\tif (inDesc->mSampleRate > 3e6)\n\t\treturn false;\n\n\tif (inDesc->mChannelsPerFrame < 1 || inDesc->mChannelsPerFrame > 0x000FFFFF)\n\t\treturn false;\n\n\tif (inDesc->mFormatID == kAudioFormatLinearPCM)\n\t{\t\t\t\n\t\tif (inDesc->mBitsPerChannel < 1 || inDesc->mBitsPerChannel > 64)\n\t\t\treturn false;\n\t\t\t\n\t\tif (inDesc->mFramesPerPacket != 1)\n\t\t\treturn false;\n\t\t\t\n\t\tif (inDesc->mBytesPerPacket == 0) \n\t\t\treturn false;\n\n\t\tif (inDesc->mBytesPerFrame != inDesc->mBytesPerPacket)\n\t\t\treturn false;\n\t\t\t\n\t\t// [3605260] we assume here that a packet is an integer number of frames.\n\t\tUInt32 minimumBytesPerPacket = (inDesc->mBitsPerChannel * inDesc->mChannelsPerFrame + 7) / 8;\n\t\tif (inDesc->mBytesPerPacket < minimumBytesPerPacket) \n\t\t\treturn false;\n\t}\n\treturn true;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nvoid AudioFileObject::SetDataSource(DataSource* inDataSource)\t\n{\n\tif (mDataSource != inDataSource) {\n\t\tdelete mDataSource;\n\t\tmDataSource = inDataSource;\n\t}\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nvoid\tAudioFileObject::SetURL (CFURLRef inURL)\n{\n\tif (mFileRef == inURL) return;\n\tif (inURL) CFRetain (inURL);\n\tif (mFileRef) CFRelease(mFileRef);\n\tmFileRef = inURL;\n}\n\nOSStatus AudioFileObject::OpenFile(SInt8 inPermissions, int inFD)\n{\n\tOSStatus err = noErr;\n\n\tSetDataSource(new Cached_DataSource(new UnixFile_DataSource(inFD, inPermissions, true)));\n\t\n\tmFileD = inFD;\n\tSetPermissions (inPermissions);\n\n\treturn err;\n}\n\t\t\t\t\t\t\t\t\nOSStatus AudioFileObject::CreateDataFile (CFURLRef\tinFileRef, int\t&outFileD)\n{\t \n\tUInt8 fPath[FILENAME_MAX];\t\n\tif (!CFURLGetFileSystemRepresentation (inFileRef, true, fPath, FILENAME_MAX))\n\t\treturn kAudio_FileNotFoundError;\n\t\n\tstruct stat stbuf;\n\tif (stat ((const char*)fPath, &stbuf) == 0) \n\t\treturn kAudioFilePermissionsError;\n\n#if TARGET_OS_WIN32\n\tint filePerms = S_IREAD | S_IWRITE;\n\tint flags = O_CREAT | O_EXCL | O_RDWR | O_BINARY;\n#else\n\tmode_t filePerms = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;\n\tint flags = O_CREAT | O_EXCL | O_RDWR;\n#endif\n\toutFileD = open((const char*)fPath, flags, filePerms);\n\tif (outFileD < 0)\n\t\treturn AudioFileTranslateErrno(errno);\n\n\treturn noErr;\n}\n\nOSStatus AudioFileObject::AddDurationToInfoDictionary(CACFDictionary *infoDict, Float64 &inDuration)\n{\n#if !TARGET_OS_WIN32\n\tCFLocaleRef currentLocale = CFLocaleGetSystem();\n\tCFNumberFormatterRef numberFormatter = NULL;\n\tnumberFormatter = CFNumberFormatterCreate(kCFAllocatorDefault, currentLocale, kCFNumberFormatterDecimalStyle);\n\tCFStringRef cfStr = CFNumberFormatterCreateStringWithValue( kCFAllocatorDefault, numberFormatter, kCFNumberFloat64Type, &inDuration);\n\tif (cfStr)\n\t{\n\t\tif (CFStringGetLength(cfStr) != 0)\n\t\t\tinfoDict->AddString(CFSTR(kAFInfoDictionary_ApproximateDurationInSeconds), cfStr);\n\t\tCFRelease(cfStr);\n\t}\n\tCFRelease(numberFormatter);\n#endif\n\treturn noErr;\n}\n\nOSStatus AudioFileObject::SizeChanged()\n{\n\tOSStatus err = noErr;\n\tif (mPermissions & kAudioFileWritePermission) \n\t{\n\t\tif (DeferSizeUpdates())\n\t\t\tSetNeedsSizeUpdate(true);\n\t\telse\n\t\t\terr = UpdateSize();\n\t}\n\treturn err;\n}\n\nOSStatus AudioFileObject::UpdateSizeIfNeeded()\n{\t\t\n\tif (GetNeedsSizeUpdate()) \n\t{\n\t\tOSStatus err = UpdateSize();\n\t\tif (err) return err;\n\t\tSetNeedsSizeUpdate(false);\n\t}\n\treturn noErr;\n}\n\nOSStatus AudioFileObject::CountUserData(\tUInt32\t\t\t\t\t/*inUserDataID*/,\n\t\t\t\t\t\t\t\t\t\t\tUInt32*\t\t\t\t\t/*outNumberItems*/)\n{\n\treturn kAudioFileOperationNotSupportedError;\n}\n\nOSStatus AudioFileObject::GetUserDataSize(  UInt32\t\t\t\t\t/*inUserDataID*/,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t/*inIndex*/,\n\t\t\t\t\t\t\t\t\t\t\tUInt32*\t\t\t\t\t/*outDataSize*/)\n{\n\treturn kAudioFileOperationNotSupportedError;\n}\n\t\t\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObject::GetUserData(\t\tUInt32\t\t\t\t\t/*inUserDataID*/,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t/*inIndex*/,\n\t\t\t\t\t\t\t\t\t\t\tUInt32*\t\t\t\t\t/*ioDataSize*/,\n\t\t\t\t\t\t\t\t\t\t\tvoid*\t\t\t\t\t/*ioUserData*/)\n{\n\treturn kAudioFileOperationNotSupportedError;\n}\n\t\t\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObject::SetUserData(\t\tUInt32\t\t\t\t\t/*inUserDataID*/,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t/*inIndex*/,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t/*inDataSize*/,\n\t\t\t\t\t\t\t\t\t\t\tconst void*\t\t\t\t/*inUserData*/)\n{\n\treturn kAudioFileOperationNotSupportedError;\n}\n\t\t\t\t\t\t\t\t\t\t\t\nOSStatus AudioFileObject::RemoveUserData(\tUInt32\t\t\t\t\t/*inUserDataID*/,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t/*inIndex*/)\n{\n\treturn kAudioFileOperationNotSupportedError;\n}\n\nOSStatus AudioFileObject::MoveData(SInt64 fromPos, SInt64 toPos, SInt64 size)\n{\n\tif (fromPos == toPos) \n\t\treturn noErr;\n\n\tOSStatus err = noErr;\n\tCAAutoFree<char> audioData(kCopySoundDataBufferSize, true);\n\n\tSInt64 bytesRemaining = size;\n\tif (fromPos < toPos) {\n\t\twhile (bytesRemaining > 0)\n\t\t{\n\t\t\t// read from old file\n\t\t\tUInt32 byteCount;\n\t\t\tSInt64 count = (bytesRemaining < kCopySoundDataBufferSize) ? bytesRemaining : kCopySoundDataBufferSize; \n\t\t\terr = GetDataSource()->ReadBytes(SEEK_SET, fromPos+(bytesRemaining-count), (UInt32)count, audioData(), &byteCount);\n\t\t\tFailIf (err != noErr, Bail, \"MoveData ReadBytes failed\");\n\n\t\t\terr = GetDataSource()->WriteBytes(SEEK_SET, toPos+(bytesRemaining-count), (UInt32)count, audioData(), &byteCount);\n\t\t\tFailIf (err != noErr, Bail, \"WriteBytes failed\");\n\t\t\t\n\t\t\tbytesRemaining -= count;\n\t\t}\n\t} else {\n\t\twhile (bytesRemaining > 0)\n\t\t{\n\t\t\t// read from old file\n\t\t\tUInt32 byteCount;\n\t\t\tSInt64 count = (bytesRemaining < kCopySoundDataBufferSize) ? bytesRemaining : kCopySoundDataBufferSize; \n\t\t\terr = GetDataSource()->ReadBytes(SEEK_SET, fromPos+(size - bytesRemaining), (UInt32)count, audioData(), &byteCount);\n\t\t\tFailIf (err != noErr, Bail, \"MoveData ReadBytes failed\");\n\t\t\t\n\t\t\terr = GetDataSource()->WriteBytes(SEEK_SET, toPos+(size - bytesRemaining), (UInt32)count, audioData(), &byteCount);\n\t\t\tFailIf (err != noErr, Bail, \"WriteBytes failed\");\n\t\t\t\n\t\t\tbytesRemaining -= count;\n\t\t}\n\t}\n\t\nBail:\n\treturn err;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/AudioFileObject.h",
    "content": "/*\n     File: AudioFileObject.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef _AudioFileObject_H_\n#define _AudioFileObject_H_\n\n#include <TargetConditionals.h>\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <AudioToolbox/AudioFile.h>\n\t#include <AudioToolbox/AudioFormat.h>\n#else\n\t#include \"CoreAudioTypes.h\"\n\t#include \"AudioFile.h\"\n\t#include \"AudioFormat.h\"\n#endif\n\n#include \"CompressedPacketTable.h\"\n#include \"CACFDictionary.h\"\n#include \"DataSource.h\"\n#include <vector>\n#include <fcntl.h>\n\n#if TARGET_OS_WIN32\n#include <io.h>\n#endif\n\n/*\n\tThese are structs defined in 10.5. They are included here for compatibility with sources\n*/\n#if COREAUDIOTYPES_VERSION < 1050\n\nstruct AudioFormatListItem\n{\n\tAudioStreamBasicDescription\t\tmASBD;\n\tAudioChannelLayoutTag\t\t\tmChannelLayoutTag;\n};\ntypedef struct AudioFormatListItem AudioFormatListItem;\n\nstruct AudioFormatInfo\n{\n\tAudioStreamBasicDescription\t\tmASBD;\n\tconst void*\t\t\t\t\t\tmMagicCookie;\n\tUInt32\t\t\t\t\t\t\tmMagicCookieSize;\n};\ntypedef struct AudioFormatInfo AudioFormatInfo;\n\nenum {\n\n\tkAudioFormatProperty_FormatList\t\t\t\t\t\t= 'flst',\n\t\t//\tReturns a list of AudioFormatListItem structs describing the audio formats contained within the compressed bit stream\n\t\t//\tas described by the magic cookie.\n\t\t//\tThe specifier is an AudioFormatInfo struct. At a minimum formatID member of the ASBD struct must filled in. Other fields\n\t\t//\tmay be filled in.\n\t\t\n\tkAudioFormatProperty_OutputFormatList\t\t\t\t= 'ofls',\n\t\t//\tReturns a list of AudioFormatListItem structs describing the audio formats which may be obtained by decoding the format\n\t\t//\tdescribed by the specifier.\n\t\t//\tThe specifier is an AudioFormatInfo struct. At a minimum formatID member of the ASBD struct must filled in. Other fields\n\t\t//\tmay be filled in. If there is no magic cookie, then the number of channels and sample rate should be filled in. \n\n};\n\nenum {\n\tkAudioFilePropertyPacketSizeUpperBound  =\t'pkub',\n\tkAudioFilePropertyFormatList\t\t\t=\t'flst',\n\tkAudioFilePropertyEstimatedDuration\t\t=\t'edur',\n\tkAudioFilePropertyBitRate\t\t\t\t=\t'brat'\n};\n\nenum {\n\tkAudioFileCreateURLSelect\t\t\t\t\t= 0x0019,\n\tkAudioFileOpenURLSelect\t\t\t\t\t\t= 0x001A,\n\tkAudioFileFileDataIsThisFormatSelect\t\t= 0x001B\n};\n#endif\n\nenum {\n\tkTEMPAudioFilePropertySoundCheckDictionary = 'scdc',\n\tkTEMPAudioFilePropertyLoudnessInfo = 'loud',\n\tkTEMPAudioFilePropertyGenerateLoudnessInfo = 'glou'\n};\n\nconst UInt32 kCopySoundDataBufferSize = 1024 * 1024;\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n// some files encode these as upper case\nenum {\n  kUpperCase_IMACompression               = 'IMA4', /*IMA 4:1*/\n  kUpperCase_ULawCompression              = 'ULAW', /*Law 2:1*/\n  kUpperCase_ALawCompression              = 'ALAW', /*aLaw 2:1*/\n  \n  kUpperCase_Float32\t\t\t\t\t  = 'FL32',\n  kUpperCase_Float64\t\t\t\t\t  = 'FL64'\n};\n\nenum\n{\n\t// in what header is this defined? what is it?\n\tkGSM = 'agsm', \n\tkUpperCase_GSM = 'GSM '\n};\n\n#define\tkPackedBESInt\t(kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsPacked)\n#define\tkPackedLESInt\t(kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked)\n#define kPackedBEFloat\t(kLinearPCMFormatFlagIsFloat | kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsPacked)\n#define kPackedLEFloat\t(kLinearPCMFormatFlagIsFloat | kLinearPCMFormatFlagIsPacked)\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\ninline int TransformPerm_FS_O (SInt8 inPerm)\n{\n\tswitch (inPerm) {\n\t\tcase kAudioFileReadPermission: return O_RDONLY;\n\t\tcase kAudioFileWritePermission: return O_WRONLY;\n\t\tcase kAudioFileReadWritePermission: return O_RDWR;\n\t}\n\treturn O_RDONLY;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#pragma mark \"File Error Handling\"\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n#include <errno.h>\n#include <CoreAudio/CoreAudioTypes.h>\n\ninline OSErr AudioFileTranslateErrno(int err)\n{\n    switch (err) {\n#if !TARGET_OS_WIN32\n    case ENFILE:\n#endif\n    case EMFILE:\n        return -42 /* kAudio_TooManyFilesOpenError */;\n#if !TARGET_OS_WIN32\n    case EPERM:\n    case EROFS:\n#endif\n    case EACCES:\n    case EEXIST:\n        return -54 /* kAudio_FilePermissionError */;\n#if !TARGET_OS_WIN32\n    case EMLINK:\n        return (OSErr)'!pth' /* kAudio_BadFilePathError */;\n    case ENOTDIR:\n    case ELOOP:\n#endif\n    case ENOENT:\n    default:\n\t\t\treturn (OSErr)kAudioFileUnspecifiedError;\n        }\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nclass AudioFileObject\n{\nprotected:\n\nprivate:\n\tSInt64\t\t\t\t\t\t\tmNumBytes;\t\t\t\t// total bytes of audio data in the audio file\n\tSInt64\t\t\t\t\t\t\tmNumPackets;\t\t\t// total frames of audio data in the audio file\n\tAudioStreamBasicDescription\t\tmDataFormat;\t\t// format of the audio data\n\tSInt64\t\t\t\t\t\t\tmDataOffset;\t\t// position if the file where audio data begins\n\tUInt32\t\t\t\t\t\t\tmIsOptimized;\t\t// 1 if there is nothing in the file following the audio data, 0 if there is\n\tUInt32\t\t\t\t\t\t\tmFileType;\t\t\t// file type of the audio file (i.e. AIFF, WAVE, etc.)\t\t\t\n\tCFURLRef\t\t\t\t\t\tmFileRef;\t\t\t\t// URL of the file passed to AudioFileOpen or AudioFileCreate\n\tint\t\t\t\t\t\t\t\tmFileD;\t\t\t// Ref num of the file after opening within Audio File \n\tSInt8\t\t\t\t\t\t\tmPermissions;\t\t// file permissions indicated by the caller, passed by AudioFileOpen or set with SetProperty function\n\tBoolean\t\t\t\t\t\t\tmIsInitialized;\t\t// has the AudioFileObject for this file been intialized?\n\tDataSource\t\t\t\t\t\t*mDataSource;\n    UInt32\t\t\t\t\t\t\tmMaximumPacketSize;\n    CompressedPacketTable\t\t\t*mPacketTable;\n\tUInt32\t\t\t\t\t\t\tmDeferSizeUpdates;\n\tBoolean\t\t\t\t\t\t\tmNeedsSizeUpdate;\n\tBoolean\t\t\t\t\t\t\tmFirstSetFormat;\n\tBoolean\t\t\t\t\t\t\tmAlignDataWithFillerChunks;\n\t\npublic:    \n  \n\tAudioFileObject (UInt32 inFileType)\n\t\t: mNumBytes(0),\n\t\t  mNumPackets(0),\n\t\t  mDataOffset(0),\n\t\t  mIsOptimized(1),\n\t\t  mFileType(inFileType),\n\t\t  mFileRef(NULL),\n\t\t  mFileD(-1),\n\t\t  mPermissions(0),\n\t\t  mIsInitialized (false),\n\t\t  mDataSource(0),\n          mMaximumPacketSize(0),\n          mPacketTable(NULL),\n\t\t  mDeferSizeUpdates(1),\n\t\t  mNeedsSizeUpdate(false),\n\t\t  mFirstSetFormat(true),\n\t\t  mAlignDataWithFillerChunks(true)\n\t\t  {\n\t\t\tmemset(&mDataFormat, 0, sizeof(mDataFormat));\n\t\t  }\n\t\n\tvirtual ~AudioFileObject();\n\n\t\n/* Public API Function Implementation */\n\t// The DoSomething() versions of these functions are wrappers that perform a standard prologue.\n\t// The Something() methods are those which should be overridden in the subclasses.\n\t\n\tOSStatus DoCreate(\t\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags);\n                                \n\tvirtual OSStatus Create(\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat);\n                                \n\tOSStatus DoOpen(\t\t\t\tCFURLRef\t\tinFileRef, \n\t\t\t\t\t\t\t\t\tSInt8  \t\t\tinPermissions,\n\t\t\t\t\t\t\t\t\tint\t\t\t\tinFD);\n\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus Open(\t\t\tCFURLRef\t\tinFileRef, \n\t\t\t\t\t\t\t\t\tSInt8  \t\t\tinPermissions,\n\t\t\t\t\t\t\t\t\tint\t\t\t\tinFD);\n\n\tOSStatus DoOpenWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc);\n\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\tOSStatus DoInitialize(\t\t\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags);\n\t\n\tvirtual OSStatus Initialize(\tCFURLRef\t\t\t\t\t\t\tinFileRef,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags);\n\t\t\t\t\t\t\t\t\t\t\n\tOSStatus DoInitializeWithCallbacks(\n\t\t\t\tvoid *\t\t\t\t\t\t\t\tinRefCon, \n\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFileType,\n\t\t\t\tconst AudioStreamBasicDescription\t*inFormat,\n\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFlags);\n\t\t\t\t\n\tvirtual OSStatus OpenFromDataSource(void);\n\t\t\t\t\t\t\n\tvirtual OSStatus InitializeDataSource(const AudioStreamBasicDescription\t*inFormat, UInt32 inFlags);\n\t\n\tOSStatus DoClose();\n\t\n\tvirtual OSStatus Close();\n\t\n\tOSStatus DoOptimize();\n\t\n\tvirtual OSStatus Optimize();\n\t\n\tvirtual OSStatus ReadBytes(\t\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\t\tvoid\t\t\t*outBuffer);\n\t\n\tvirtual OSStatus WriteBytes(\tBoolean\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\tSInt64\t\t\tinStartingByte, \n\t\t\t\t\t\t\t\t\tUInt32\t\t\t*ioNumBytes, \n\t\t\t\t\t\t\t\t\tconst void\t\t*inBuffer);\n\t\n\tvirtual OSStatus ReadPackets(\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*outNumBytes,\n\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer);\n\n\tvirtual OSStatus ReadPacketData(\t\n\t\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer);\n\t\n\tvirtual OSStatus ReadPacketDataVBR(\t\n\t\t\t\t\t\t\t\t\tBoolean\t\t\t\t\t\t\tinUseCache,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t*ioNumBytes,\n\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription\t*outPacketDescriptions,\n\t\t\t\t\t\t\t\t\tSInt64\t\t\t\t\t\t\tinStartingPacket, \n\t\t\t\t\t\t\t\t\tUInt32  \t\t\t\t\t\t*ioNumPackets, \n\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t\t\t*outBuffer);\n\n    virtual OSStatus\tHowManyPacketsCanBeReadIntoBuffer(UInt32* ioNumBytes, SInt64 inStartingPacket, UInt32 *ioNumPackets);\n\n    virtual OSStatus\tReadPacketDataVBR_InTable(\t\n                                    Boolean\t\t\t\t\t\t\tinUseCache,\n                                    UInt32\t\t\t\t\t\t\t*ioNumBytes,\n                                    AudioStreamPacketDescription\t*outPacketDescriptions,\n                                    SInt64\t\t\t\t\t\t\tinStartingPacket, \n                                    UInt32  \t\t\t\t\t\t*ioNumPackets, \n                                    void\t\t\t\t\t\t\t*outBuffer);\n\t\n\tvirtual OSStatus WritePackets(\tBoolean\t\t\t\t\t\t\t\tinUseCache,\n                                    UInt32\t\t\t\t\t\t\t\tinNumBytes,\n                                    const AudioStreamPacketDescription\t*inPacketDescriptions,\n                                    SInt64\t\t\t\t\t\t\t\tinStartingPacket, \n                                    UInt32\t\t\t\t\t\t\t\t*ioNumPackets, \n                                    const void\t\t\t\t\t\t\t*inBuffer);\n/* Property Support */\n\n\tvirtual OSStatus GetPropertyInfo\t(\t\n                                        AudioFilePropertyID\t\tinPropertyID,\n                                        UInt32\t\t\t\t\t*outDataSize,\n                                        UInt32\t\t\t\t\t*isWritable);\n\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus GetProperty\t(\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData);\n\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus SetProperty\t(\tAudioFilePropertyID\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inPropertyData);\n\t\t\t\t\t\t\t\t\t\t\n\tUInt32 GetFileType() const { return mFileType; }\n\tvoid SetFileType(UInt32 inFileType) { mFileType = inFileType; }\n\t\n\t// this will set the format in memory only.\n\tvirtual OSStatus SetDataFormat(const AudioStreamBasicDescription* inStreamFormat);\n\t\n\t// this will update the format info on disk and in memory.\n\tvirtual OSStatus UpdateDataFormat(const AudioStreamBasicDescription* inStreamFormat);\n\t\n\tconst UInt32 GetBytesPerPacket() const { return mDataFormat.mBytesPerPacket; }\n\t\n\tconst AudioStreamBasicDescription &GetDataFormat() const { return mDataFormat; }\n\t\n\tvirtual OSStatus GetFormatListInfo(\tUInt32\t\t\t\t&outDataSize,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t&outWritable);\n\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus GetFormatList(\tUInt32\t\t\t\t\t\t\t\t\t&ioDataSize,\n\t\t\t\t\t\t\t\t\tAudioFormatListItem\t\t\t\t*ioPropertyData);\n\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus SetFormatList(\tUInt32\t\t\t\t\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\tconst AudioFormatListItem\t\t*inPropertyData);\n\t\n\tvirtual OSStatus UpdateSize() { return noErr; }\n\tUInt32\tDeferSizeUpdates() { return mDeferSizeUpdates; }\n\tvoid SetDeferSizeUpdates(UInt32 inFlag) { mDeferSizeUpdates = inFlag; }\n\tOSStatus UpdateSizeIfNeeded();\n\tOSStatus SizeChanged();\n\t\n\tBoolean IsOptimized() const { return mIsOptimized != 0; }\n\tvoid SetIsOptimized(Boolean inIsOptimized) { mIsOptimized = inIsOptimized ? 1 : 0; }\n\n\tBoolean AlignDataWithFillerChunks() const { return mAlignDataWithFillerChunks; }\n\n\tvirtual SInt64 GetNumBytes() { return mNumBytes; }\n\tvirtual void SetNumBytes(SInt64 inNumBytes) { mNumBytes = inNumBytes; }\n\n\t// this will update the header size info on disk\n\tOSStatus UpdateNumBytes(SInt64 inNumBytes);\n\t\n\tvirtual SInt64 GetNumPackets(){ return mNumPackets; }\n\tvirtual void SetNumPackets(SInt64 inNumPackets) { mNumPackets = inNumPackets; }\n\t\n\t// this will update the header size info on disk\n\tOSStatus UpdateNumPackets(SInt64 inNumPackets);\n\n\tvirtual OSStatus PacketToFrame(SInt64 inPacket, SInt64& outFirstFrameInPacket);\n\tvirtual OSStatus FrameToPacket(SInt64 inFrame, SInt64& outPacket, UInt32& outFrameOffsetInPacket);\n\t\n\tvirtual OSStatus PacketToByte(AudioBytePacketTranslation* abpt);\n\t\n\tvirtual OSStatus ByteToPacket(AudioBytePacketTranslation* abpt);\n\t\n\tvirtual OSStatus GetBitRate(\t\t\t\tUInt32\t\t\t\t\t*outBitRate);\n\t\t\n\tvirtual OSStatus GetMagicCookieDataSize(\tUInt32\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*isWritable);\n\t                      \n\tvirtual OSStatus GetMagicCookieData(\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioPropertyData);\n\t                      \n\tvirtual OSStatus SetMagicCookieData(\t\tUInt32\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inPropertyData);\n\n\tvirtual OSStatus GetMarkerListSize(\t\t\tUInt32\t\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t*isWritable);\n\t                      \n\tvirtual OSStatus GetMarkerList(\t\t\t\tUInt32\t\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioFileMarkerList\t\t\t*ioMarkerList);\n\t                      \n\tvirtual OSStatus SetMarkerList(\t\t\t\tUInt32\t\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioFileMarkerList\t*inMarkerList);\n\n\n\tvirtual OSStatus GetRegionListSize(\t\t\tUInt32\t\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t*isWritable);\n\t                      \n\tvirtual OSStatus GetRegionList(\t\t\t\tUInt32\t\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioFileRegionList\t\t\t*ioRegionList);\n\t                      \n\tvirtual OSStatus SetRegionList(\t\t\t\tUInt32\t\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioFileRegionList\t*inRegionList);\n\n\tvirtual OSStatus GetChannelLayoutSize(\t\tUInt32\t\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t*isWritable);\n\t                      \n\tvirtual OSStatus GetChannelLayout(\t\t\tUInt32\t\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayout\t\t\t*ioChannelLayout);\n\t                      \n\tvirtual OSStatus SetChannelLayout(\t\t\tUInt32\t\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioChannelLayout\t*inChannelLayout);\n\n\n\tvirtual OSStatus GetInfoDictionarySize(\t\tUInt32\t\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t*isWritable);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus GetInfoDictionary(\t\t\tCACFDictionary  *infoDict);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus SetInfoDictionary(\t\t\tCACFDictionary  *infoDict);\n\n\tvirtual OSStatus GetSoundCheckDictionarySize(\t\tUInt32\t\t\t\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t*isWritable) { return kAudioFileUnsupportedPropertyError; }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus GetSoundCheckDictionary(\tCACFDictionary  *infoDict) { return kAudioFileUnsupportedPropertyError; }\n\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus SetSoundCheckDictionary(\tCACFDictionary  *infoDict) { return kAudioFileUnsupportedPropertyError; }\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus GetLoudnessInfo(\tCACFDictionary  *infoDict) { return kAudioFileUnsupportedPropertyError; }\n\t\n\tvirtual OSStatus GetSoundCheckDictionaryFromLoudnessInfo(CACFDictionary* outInfoDict) { return kAudioFileUnsupportedPropertyError; }\n\tvirtual OSStatus GetLoudnessInfoFromSoundCheckDictionary(CACFDictionary* outInfoDict) { return kAudioFileUnsupportedPropertyError; }\n\t\n\tvirtual OSStatus SetLoudnessInfo(\tCACFDictionary  *infoDict) { return kAudioFileUnsupportedPropertyError; }\n\n\tvirtual OSStatus GetLoudnessInfoSize(\t\t\t\tUInt32\t\t\t*outDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t*isWritable) { return kAudioFileUnsupportedPropertyError; }\n\n\tvirtual OSStatus GenerateLoudnessInfo(\tCACFDictionary  *infoDict) { return kAudioFileUnsupportedPropertyError; }\n\n\tvirtual OSStatus GetEstimatedDuration(\t\tFloat64*\t\tduration);\n\n\tvirtual OSStatus CountUserData(\t\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outNumberItems);\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus GetUserDataSize(\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*outDataSize);\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus GetUserData(\t\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t*ioDataSize,\n\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*ioUserData);\n\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus SetUserData(\t\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataSize,\n\t\t\t\t\t\t\t\t\t\t\tconst void\t\t\t\t*inUserData);\n\n\tvirtual OSStatus RemoveUserData(\t\tUInt32\t\t\t\t\tinUserDataID,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinIndex);\n\n\tvirtual OSStatus GetLyrics(CFStringRef  *outLyrics) { return kAudioFileUnsupportedPropertyError; }\n\n\n\tBoolean CanRead() const { return mPermissions & kAudioFileReadPermission; }\n\tBoolean CanWrite() const { return mPermissions & kAudioFileWritePermission; }\n\n\tvoid SetPermissions(SInt8 inPermissions) { mPermissions = inPermissions; }\n\t\t\n/* Other Helper Methods: (some may not be necessary depending on how things are refactored) */\n\t\n\tOSStatus OpenFile(SInt8 inPermissions, int inFD);\n\n\tOSStatus CreateDataFile (CFURLRef\tinFileRef, int\t&outFileD);\n\n\tOSStatus AddDurationToInfoDictionary(CACFDictionary *infoDict, Float64 &inDuration);\t\n\n\tvirtual Boolean IsDataFormatSupported(const AudioStreamBasicDescription\t*inFormat) = 0;\n\tvirtual Boolean IsDataFormatValid(const AudioStreamBasicDescription\t*inFormat);\n\n\tvirtual OSStatus IsValidFilePosition(SInt64 /*position*/) { return noErr; }\n\n\tOSStatus MoveData(SInt64 fromPos, SInt64 toPos, SInt64 size);\n\n/* Accessors: */\n\tBoolean IsInitialized() const { return mIsInitialized; }\n\tvoid SetInitialized(Boolean inFlag) { mIsInitialized = inFlag; }\n\t\t\t\n\tDataSource* GetDataSource() const { return mDataSource; }\n\tvoid SetDataSource(DataSource *inDataSource);\n    \n\tvoid\tSetURL (CFURLRef inURL);\n\t\n    virtual UInt32\tGetMaximumPacketSize() { return mMaximumPacketSize; }\n    virtual UInt32\tFindMaximumPacketSize() { return mMaximumPacketSize; }\n    virtual void\tSetMaximumPacketSize(const UInt32 inPacketSize) { mMaximumPacketSize = inPacketSize; }\n    \t\n    virtual UInt32\tGetPacketSizeUpperBound() { return GetMaximumPacketSize (); }\n    \t\n\tSInt64 GetDataOffset() const { return mDataOffset; }\t\n\tvoid SetDataOffset(SInt64 inOffset) { mDataOffset = inOffset; }\t\n    \n\t// I like this idiom better than DoesPacketTableExist+NewPacketTable:\n\tCompressedPacketTable* GetPacketTable(Boolean inCreateIt = false)\n\t{\n\t\tif (!mPacketTable && inCreateIt)\n\t\t\tmPacketTable = new CompressedPacketTable(mDataFormat.mFramesPerPacket);\n\t\treturn mPacketTable;\n\t}\n\tvoid ClearPacketTable() \n\t{\n\t\tDeletePacketTable();\n\t\tGetPacketTable(true);\n\t}\n\t\n\tvirtual OSStatus ScanForPackets(SInt64  inToPacketCount, DataSource* inDataSrc = NULL, bool fullyParsedIfEndOfDataReached = true) \n\t{\n\t\t// In formats that read packets lazily, this will be overridden to scan for packets up to the index.\n\t\tif (inToPacketCount > GetNumPackets())\n\t\t\treturn kAudioFileEndOfFileError;\n\t\t\n\t\treturn noErr; \n\t}\n\t\t\n    void AppendPacket(const AudioStreamPacketDescription &inPacket) \n\t\t{\n\t\t\tCompressedPacketTable* packetTable = GetPacketTable(true);\n\t\t\tUInt32 numFramesInPacket = mDataFormat.mFramesPerPacket ? mDataFormat.mFramesPerPacket : inPacket.mVariableFramesInPacket;\n\t\t\t\n\t\t\tAudioStreamPacketDescriptionExtended pext;\n\t\t\tmemset(&pext, 0, sizeof(pext));\n\t\t\tpext.mStartOffset = inPacket.mStartOffset;\n\t\t\tpext.mDataByteSize = inPacket.mDataByteSize;\n\t\t\tpext.mVariableFramesInPacket = inPacket.mVariableFramesInPacket;\n\t\t\tpext.mFrameOffset = numFramesInPacket + (packetTable->size() ? packetTable->back().mFrameOffset : 0);\n\t\t\t\n\t\t\tpacketTable->push_back(pext); \n\t\t\tif (inPacket.mDataByteSize > mMaximumPacketSize) \n\t\t\t\tmMaximumPacketSize = inPacket.mDataByteSize;\n\t\t}\n    void DeletePacketTable() { delete mPacketTable; mPacketTable = NULL;}\n    SInt64\tGetPacketTableSize() { return mPacketTable ? mPacketTable->size() : 0; }\n    OSStatus GetPacketDescriptions(UInt32   inStartingPacket, UInt32   *ioDataSize, AudioStreamPacketDescription    *outPacketDescriptions)\n        {\n\t\t\tif (outPacketDescriptions == NULL) return kAudioFileUnspecifiedError;\n            if (mPacketTable)\n\t\t\t{\n\t\t\t\t// only get as many packet descriptions as can fit in outPacketDescriptions\n\t\t\t\tUInt32\tcount = *ioDataSize / sizeof(AudioStreamPacketDescription);\n\t\t\t\tif (count + inStartingPacket  > GetPacketTableSize()) \n\t\t\t\t\tcount = (UInt32)(GetPacketTableSize() - inStartingPacket);\n\t\t\t\t\t\n\t\t\t\t*ioDataSize = 0;\n\t\t\t\tfor (UInt32 i = inStartingPacket; i < (count + inStartingPacket); i++)\n\t\t\t\t{\n\t\t\t\t\tAudioStreamPacketDescription    curPacket =  (*mPacketTable)[i];\n\t\t\t\t\toutPacketDescriptions[i].mStartOffset = curPacket.mStartOffset - GetDataOffset();\n\t\t\t\t\toutPacketDescriptions[i].mVariableFramesInPacket = curPacket.mVariableFramesInPacket;\n\t\t\t\t\toutPacketDescriptions[i].mDataByteSize = curPacket.mDataByteSize;\n\t\t\t\t\t*ioDataSize += sizeof(AudioStreamPacketDescription);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t\t*ioDataSize = 0;\n\n            return noErr;\n        }\n\n#if DEBUG\n\tvoid DumpPacketTable()\n\t\t{\n            if (mPacketTable) {\n\t\t\t\tSInt64 size = mPacketTable->size();\n\t\t\t\tprintf(\"PacketTable size %d\\n\", (int)size);\n\t\t\t\tfor (SInt64 i = 0; i < size; i++) {\n\t\t\t\t\tAudioStreamPacketDescription    curPacket =  (*mPacketTable)[i];\n\t\t\t\t\tprintf(\"dpkt %5qd %8qd %5d %5d\\n\", i, curPacket.mStartOffset, (int)curPacket.mDataByteSize, (int)curPacket.mVariableFramesInPacket);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n#endif\n\n\tBoolean GetNeedsSizeUpdate() const { return mNeedsSizeUpdate; }\n\tvoid SetNeedsSizeUpdate(Boolean inNeedsSizeUpdate) { mNeedsSizeUpdate = inNeedsSizeUpdate; }\n\t\n\tCFURLRef GetURL () const { return mFileRef; }\n\n\tvirtual OSStatus\t\t\tGetSourceBitDepth(SInt32& outValue) { outValue = 0; return kAudioFileUnsupportedPropertyError; }\n\tvirtual OSStatus\t\t\tSetSourceBitDepth(SInt32 inValue) { return kAudioFileUnsupportedPropertyError; }\n\n\tvirtual OSStatus\tGetAlbumArtwork(CFDataRef& outValue) { outValue = NULL; return kAudioFileUnsupportedPropertyError; }\n\tvirtual OSStatus\tSetAlbumArtwork(CFDataRef inValue){ return kAudioFileUnsupportedPropertyError; }\n\nprivate:\n\n\tvoid SetAlignDataWithFillerChunks(Boolean inFlag) { mAlignDataWithFillerChunks = inFlag; }\n\n\tOSStatus ValidateFormatAndData();\n\t\n/* debug */\n//\tvirtual void PrintFile (FILE* inFile, const char *indent) = 0;\n};\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\ninline Boolean cfstrcmpi(CFStringRef a, CFStringRef b)\n{\n\t// case insensitive CFString compare\n\treturn CFStringCompare(a, b, kCFCompareCaseInsensitive) == kCFCompareEqualTo;\n}\n\nCFBundleRef GetAudioToolboxBundle();\n\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/CompressedPacketTable.cpp",
    "content": "/*\n     File: CompressedPacketTable.cpp\n Abstract: CompressedPacketTable.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CompressedPacketTable.h\"\n#include \"CAAutoDisposer.h\"\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nconst UInt32 CompressedPacketTable::kShift = 5;\nconst UInt32 CompressedPacketTable::kMask = 31;\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nCompressedPacketTable::~CompressedPacketTable()\n{\n\tsize_t size = mBases.size();\n\tfor (size_t i = 0; i < size; ++i) {\n\t\tfree(mBases[i].mDescs);\n\t}\n}\n\nvoid CompressedPacketTable::push_back(const AudioStreamPacketDescriptionExtended& inDesc)\n{\n\tSInt64 baseIndex = mSize >> kShift;\n\tUInt32 packetIndex = (UInt32)(mSize & kMask);\n\t\n\tif (packetIndex == 0) {\n\t\t// first packet in a new sequence. create a new PacketBase.\n\t\tPacketBase newBase;\n\t\tnewBase.mBaseOffset = 0;\n\t\tnewBase.mDescs = CA_malloc((kMask+1) * sizeof(AudioStreamPacketDescriptionExtended));\n\t\tnewBase.mDescType = kExtendedPacketDescription;\n\t\tmBases.push_back(newBase);\n\t}\n\t\n\tPacketBase& base = mBases[(size_t)baseIndex];\n\tAudioStreamPacketDescriptionExtended* descs = (AudioStreamPacketDescriptionExtended*)base.mDescs;\n\tdescs[packetIndex] = inDesc;\n\t\n\tif (packetIndex == kMask) {\n\t\t// last packet in a sequence. compress the sequence.\n\t\tCompress(base);\n\t}\n\t\n\tmSize++;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n#define ACCESS_TYPE(TYPE) \\\n\t\tcase k##TYPE##ContiguousPacketDescription : { \\\n\t\t\tTYPE##ContiguousPacketDescription* descs = (TYPE##ContiguousPacketDescription*)base.mDescs; \\\n\t\t\tpacketOffset = packetIndex ? descs[packetIndex-1].mNextOffset : 0; \\\n\t\t\tpacketSize = (UInt32)(descs[packetIndex].mNextOffset - packetOffset); \\\n\t\t} break; \\\n\t\tcase k##TYPE##DiscontiguousPacketDescription : { \\\n\t\t\tTYPE##DiscontiguousPacketDescription* descs = (TYPE##DiscontiguousPacketDescription*)base.mDescs; \\\n\t\t\tpacketOffset = packetIndex ? descs[packetIndex-1].mNextOffset : 0; \\\n\t\t\tpacketSize = descs[packetIndex].mDataByteSize; \\\n\t\t} break;\n\nconst AudioStreamPacketDescriptionExtended CompressedPacketTable::operator[](SInt64 inPacketIndex) const\n{\n\tSInt64 baseIndex = inPacketIndex >> kShift;\n\tUInt32 packetIndex = (UInt32)(inPacketIndex & kMask);\n\n\tif ((size_t)baseIndex >= mBases.size())\n\t\tthrow -1;\n\t\t\n\tconst PacketBase& base = mBases[(size_t)baseIndex];\n\t\n\tSInt64 packetOffset = 0;\n\tUInt32 packetSize = 0;\n\t\t\n\tswitch (base.mDescType) \n\t{\n\t\tACCESS_TYPE(Tiny)\n\t\tACCESS_TYPE(Small)\n\t\tACCESS_TYPE(Big)\n\t\tcase kExtendedPacketDescription :\n\t\t\treturn ((AudioStreamPacketDescriptionExtended*)base.mDescs)[packetIndex];\n\t}\n\t\n\tAudioStreamPacketDescriptionExtended outDesc;\n\toutDesc.mStartOffset = base.mBaseOffset + packetOffset;\n\toutDesc.mDataByteSize = packetSize;\n\toutDesc.mVariableFramesInPacket = 0;\n\toutDesc.mFrameOffset = mFramesPerPacket * inPacketIndex;\n\n\t//printf(\"get %d %10qd   %10qd %2d   %10qd %6d %10qd\\n\", base.mDescType, inPacketIndex, baseIndex, packetIndex, outDesc.mStartOffset, outDesc.mDataByteSize, outDesc.mFrameOffset);\n\t\n\treturn outDesc;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nbool CompressedPacketTable::isContiguous(PacketBase& base)\n{\t\n\tAudioStreamPacketDescriptionExtended* descs = (AudioStreamPacketDescriptionExtended*)base.mDescs;\n\tSInt64 expectedOffset = descs[0].mStartOffset + descs[0].mDataByteSize;\n\tfor (UInt32 i = 1; i <= kMask; ++i) {\n\t\tif (expectedOffset != descs[i].mStartOffset) return false;\n\t\texpectedOffset += descs[i].mDataByteSize;\n\t}\n\treturn true;\n}\n\nbool CompressedPacketTable::hasVariableFrames(PacketBase& base)\n{\t\n\tAudioStreamPacketDescriptionExtended* descs = (AudioStreamPacketDescriptionExtended*)base.mDescs;\n\tfor (UInt32 i = 0; i <= kMask; ++i) {\n\t\tif (descs[i].mVariableFramesInPacket) return true;\n\t}\n\treturn false;\n}\n\nUInt32 CompressedPacketTable::largestPacket(PacketBase& base)\n{\t\n\tUInt32 maxPacketSize = 0;\n\tAudioStreamPacketDescriptionExtended* descs = (AudioStreamPacketDescriptionExtended*)base.mDescs;\n\tfor (UInt32 i = 0; i <= kMask; ++i) {\n\t\tUInt32 packetSize = descs[i].mDataByteSize;\n\t\tif (packetSize > maxPacketSize) maxPacketSize = packetSize;\n\t}\n\treturn maxPacketSize;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n#define COMPRESS_TYPE(TYPE, BITS) \\\n\tif (contiguous) { \\\n\t\tTYPE##ContiguousPacketDescription* newDescs = (TYPE##ContiguousPacketDescription*)CA_malloc((kMask+1) * sizeof(TYPE##ContiguousPacketDescription)); \\\n\t\tbase.mDescs = newDescs; \\\n\t\tbase.mDescType = k##TYPE##ContiguousPacketDescription; \\\n\t\tfor (UInt32 i = 0; i <= kMask; ++i) { \\\n\t\t\tnewDescs[i].mNextOffset = (BITS)(descs[i].mStartOffset + descs[i].mDataByteSize - baseOffset); \\\n\t\t} \\\n\t\tfree(descs); \\\n\t} else { \\\n\t\tTYPE##DiscontiguousPacketDescription* newDescs = (TYPE##DiscontiguousPacketDescription*)CA_malloc((kMask+1) * sizeof(TYPE##DiscontiguousPacketDescription)); \\\n\t\tbase.mDescs = newDescs; \\\n\t\tbase.mDescType = k##TYPE##DiscontiguousPacketDescription; \\\n\t\tfor (UInt32 i = 0; i <= kMask; ++i) { \\\n\t\t\tnewDescs[i].mNextOffset = i == kMask ? 0 : (BITS)(descs[i+1].mStartOffset - baseOffset); \\\n\t\t\tnewDescs[i].mDataByteSize = descs[i].mDataByteSize; \\\n\t\t} \\\n\t\tfree(descs); \\\n\t} \\\n\treturn;\n\nvoid CompressedPacketTable::Compress(PacketBase& base)\n{\n\tif (hasVariableFrames(base)) \n\t\treturn;\n\t\n\tbool contiguous = isContiguous(base);\n\t\n\tAudioStreamPacketDescriptionExtended* descs = (AudioStreamPacketDescriptionExtended*)base.mDescs;\n\tSInt64 delta = descs[kMask].mStartOffset + descs[kMask].mDataByteSize - descs[0].mStartOffset;\n\t\t\n\tSInt64 baseOffset = descs[0].mStartOffset;\n\tbase.mBaseOffset = baseOffset;\n\t\n\tif (delta <= 65535LL) {\n\t\tCOMPRESS_TYPE(Tiny, UInt16)\n\t} else if (delta <= 4294967295LL && largestPacket(base) <= 65535) {\n\t\tCOMPRESS_TYPE(Small, UInt32)\n\t} else {\n\t\tCOMPRESS_TYPE(Big, SInt64)\n\t}\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/CompressedPacketTable.h",
    "content": "/*\n     File: CompressedPacketTable.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include <iterator>\n#include <vector>\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include \"CoreAudioTypes.h\"\n#endif\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nstruct  AudioStreamPacketDescriptionExtended : AudioStreamPacketDescription\n{\n    SInt64  mFrameOffset; // this is the sum of the mVariableFramesInPacket up to this point so we can binary search.\n};\ntypedef struct AudioStreamPacketDescriptionExtended AudioStreamPacketDescriptionExtended;\n\ninline bool operator < (const AudioStreamPacketDescriptionExtended& a, const AudioStreamPacketDescriptionExtended& b)\n{\n\treturn a.mFrameOffset < b.mFrameOffset;\n}\n\n// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nclass CompressedPacketTable\n{\npublic:\n\tCompressedPacketTable(UInt32 inFramesPerPacket) : mSize(0), mFramesPerPacket(inFramesPerPacket) {}\n\t~CompressedPacketTable();\n\t\n\tSInt64 size() const { return mSize; }\n\tvoid push_back(const AudioStreamPacketDescriptionExtended& inDesc);\n\t\n\tconst AudioStreamPacketDescriptionExtended operator[](SInt64 inPacketIndex) const;\n\tconst AudioStreamPacketDescriptionExtended front() const { return (*this)[0]; }\n\tconst AudioStreamPacketDescriptionExtended back() const { return (*this)[mSize-1]; }\n\t\n\t//SInt64 PacketForByte(SInt64 inByteOffset) const;\n\tSInt64 ByteForPacket(SInt64 inPacketIndex) const { return (*this)[inPacketIndex].mStartOffset; }\n\t\t\n\tclass iterator {\n\t\tpublic:\n\t\t\ttypedef std::input_iterator_tag iterator_category;\n\t\t\ttypedef iterator pointer;\n\t\t\ttypedef SInt64 difference_type;\n\t\t\ttypedef AudioStreamPacketDescriptionExtended value_type;\n\t\t\ttypedef value_type& reference;\n\t\t\t\n\t\t\titerator() : mTable(NULL), mIndex(0) {}\n\t\t\titerator(const CompressedPacketTable* table, SInt64 index) : mTable(table), mIndex(index) {}\n\t\t\titerator(const iterator& that) : mTable(that.mTable), mIndex(that.mIndex) {}\n\t\t\t\n\t\t\titerator& operator=(const iterator& that) { mTable = that.mTable; mIndex = that.mIndex; return *this; }\n\t\t\t\n\t\t\tconst AudioStreamPacketDescriptionExtended operator*() const { return (*mTable)[mIndex]; }\n\t\t\tconst AudioStreamPacketDescriptionExtended* const operator->() { mValue = (*mTable)[mIndex]; return &mValue; }\n\t\t\titerator& operator++() { ++mIndex; return *this; }\n\t\t\titerator& operator--() { --mIndex; return *this; }\n\t\t\t\n\t\t\tSInt64 operator-(const iterator& that) { return mIndex - that.mIndex; }\n\t\t\tconst iterator operator-(SInt64 index) { return iterator(mTable, mIndex - index); }\n\t\t\tconst iterator operator+(SInt64 index) { return iterator(mTable, mIndex + index); }\n\t\t\tbool operator==(const iterator& that) { return mIndex == that.mIndex; }\n\t\t\tbool operator!=(const iterator& that) { return mIndex != that.mIndex; }\n\t\t\tbool operator>(const iterator& that) { return mIndex > that.mIndex; }\n\t\t\tbool operator<(const iterator& that) { return mIndex < that.mIndex; }\n\t\tprivate:\n\t\t\tconst CompressedPacketTable* mTable;\n\t\t\tSInt64 mIndex;\n\t\t\tAudioStreamPacketDescriptionExtended mValue; // in order to support operator-> .\n\t};\n\t\n\titerator begin() const { return iterator(this, 0); }\n\titerator end() const { return iterator(this, mSize); }\n\t\nprivate:\n\tstruct TinyContiguousPacketDescription\n\t{\n\t\tUInt16 mNextOffset;\n\t};\n\t\n\tstruct TinyDiscontiguousPacketDescription : TinyContiguousPacketDescription\n\t{\n\t\tUInt16 mDataByteSize;\n\t};\n\t\n\t// There could be a 24 bit packet description. But ALAC is who usually needs SmallContiguousPacketDescription and \n\t// it already uses 8x fewer packet descriptions than AAC due to the mFramesPerPacket being 8x greater. \n\t// So there isn't as great a need for saving space. 4 bytes per packet is OK for ALAC.\n\t\n\tstruct SmallContiguousPacketDescription\n\t{\n\t\tUInt32 mNextOffset;\n\t};\n\t\n\tstruct SmallDiscontiguousPacketDescription : SmallContiguousPacketDescription\n\t{\n\t\tUInt16 mDataByteSize;\n\t};\n\t\n\tstruct BigContiguousPacketDescription\n\t{\n\t\tUInt64 mNextOffset;\n\t};\n\t\n\tstruct BigDiscontiguousPacketDescription : BigContiguousPacketDescription\n\t{\n\t\tUInt32 mDataByteSize;\n\t};\n\t\n\tstruct PacketBase\n\t{\n\t\tSInt64 mBaseOffset;\n\t\tUInt8 mDescType;\n\t\tvoid* mDescs;\n\t};\n\t\n\tenum {\n\t\tkTinyContiguousPacketDescription,\n\t\tkTinyDiscontiguousPacketDescription,\n\t\tkSmallContiguousPacketDescription,\n\t\tkSmallDiscontiguousPacketDescription,\n\t\tkBigContiguousPacketDescription,\n\t\tkBigDiscontiguousPacketDescription,\n\t\tkExtendedPacketDescription\n\t};\n\tstatic const UInt32 kShift;\n\tstatic const UInt32 kMask;\n\t\n\tbool isContiguous(PacketBase& base);\n\tbool hasVariableFrames(PacketBase& base);\n\tUInt32 largestPacket(PacketBase& base);\n\t\n\tvoid Compress(PacketBase& base);\n\nprivate:\t\n\tstd::vector<PacketBase> mBases;\n\tUInt64 mSize;\n\tUInt32 mFramesPerPacket;\n};\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/DataSource.cpp",
    "content": "/*\n     File: DataSource.cpp\n Abstract: DataSource.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"DataSource.h\"\n#if TARGET_OS_WIN32\n\t#include <io.h>\n#else\n\t#include <unistd.h>\n\t#include <fcntl.h>\n#endif\n#include <sys/stat.h>\n#include <algorithm>\n#include <climits>\n\n#define VERBOSE 0\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n\nconst UInt16 kPositionModeMask = 3;\n\nDataSource::DataSource(Boolean inCloseOnDelete)\n\t: mCloseOnDelete(inCloseOnDelete)\n{\n}\n\nDataSource::~DataSource()\n{\n}\n\nSInt64 DataSource::CalcOffset(\tUInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset,\n\t\t\t\t\t\t\t\tSInt64 currentOffset,\n\t\t\t\t\t\t\t\tSInt64 size)\n{\n\tSInt64 newOffset = 0;\n\tswitch (positionMode & kPositionModeMask) {\n\t\t//case fsAtMark : newOffset = currentOffset; break;\n\t\tcase SEEK_SET : newOffset = positionOffset; break;\n\t\tcase SEEK_END : newOffset = size + positionOffset; break;\n\t\tcase SEEK_CUR : newOffset = positionOffset + currentOffset; break;\n\t}\n\treturn newOffset;\n}\n\n//////////////////////////////////////////////////////////////////////////////////////////\n//////////////////////////////////////////////////////////////////////////////////////////\n\n#if 0\n\nMacFile_DataSource::MacFile_DataSource( FSIORefNum inForkRefNum, SInt8 inPermissions, Boolean inCloseOnDelete)\n\t: DataSource(inCloseOnDelete), mFileNum(inForkRefNum), mPermissions(inPermissions)\n{\n}\n\nMacFile_DataSource::~MacFile_DataSource()\n{\n\tif (mCloseOnDelete) FSCloseFork(mFileNum);\n}\n\n\nOSStatus MacFile_DataSource::GetSize(SInt64& outSize)\n{\n\toutSize = -1; // in case of error\n\tOSStatus err = FSGetForkSize(mFileNum, &outSize);\n\treturn err;\n}\n\nOSStatus MacFile_DataSource::GetPos(SInt64& outPos) const\n{\n\treturn FSGetForkPosition(mFileNum, &outPos);\n}\n\nOSStatus MacFile_DataSource::SetSize(SInt64 inSize)\n{\n\treturn FSSetForkSize(mFileNum, SEEK_SET, inSize);\n}\n\n\nOSStatus MacFile_DataSource::ReadBytes(\n\t\t\t\t\tUInt16 positionMode, \n\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\tvoid *buffer, \n\t\t\t\t\tUInt32* actualCount)\n{\n\tif (actualCount) *actualCount = 0;\n\tif (!buffer) return kAudio_ParamError;\n\tByteCount bc_actualCount = 0;\n\tOSStatus err = FSReadFork(mFileNum, positionMode, positionOffset, requestCount, buffer, &bc_actualCount);\n\tif (actualCount) *actualCount = (UInt32)bc_actualCount;\n\treturn err;\n}\n\nOSStatus MacFile_DataSource::WriteBytes(\n\t\t\t\t\tUInt16 positionMode, \n\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\tconst void *buffer, \n\t\t\t\t\tUInt32* actualCount)\n{\n\tif (!buffer) return kAudio_ParamError;\n\tByteCount bc_actualCount = 0;\n\tOSStatus err =  FSWriteFork(mFileNum, positionMode, positionOffset, requestCount, buffer, &bc_actualCount);\n\tif (actualCount) *actualCount = (UInt32)bc_actualCount;\n\treturn err;\n}\n#endif\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n#define kAudioFileNoCacheMask\t\t0x20\n\nUnixFile_DataSource::UnixFile_DataSource( int inFD, SInt8 inPermissions, Boolean inCloseOnDelete)\n\t: DataSource(inCloseOnDelete), mFileD(inFD), mPermissions(inPermissions), mNoCache(0), mCachedSize(-1), mFilePointer(0)\n{\n}\n\nUnixFile_DataSource::~UnixFile_DataSource()\n{\n\tif (mCloseOnDelete) close(mFileD);\n}\n\t\nOSStatus\tUnixFile_DataSource::GetSize(SInt64& outSize)\n{\n#if 0 // 6764274 using the cached file size causes a regression for apps that play a file while writing to it.\n\tif (mCachedSize >= 0) {\n\t\toutSize = mCachedSize;\n\t\treturn noErr;\n\t}\n#endif\n\toutSize = -1; // in case of error\n\tstruct stat stbuf;\n\tif (fstat (mFileD, &stbuf) == -1) return kAudio_FileNotFoundError;\n\toutSize = mCachedSize = stbuf.st_size;\n\treturn noErr;\n}\n\nOSStatus\tUnixFile_DataSource::SetSize(SInt64 inSize)\n{\n\tmCachedSize = -1;\n#if TARGET_OS_WIN32\n\tif (chsize (mFileD, inSize)) return kAudioFilePermissionsError;\n#else\n\tif (ftruncate (mFileD, inSize) == -1) return kAudioFilePermissionsError;\n#endif\n\tmCachedSize = inSize;\n\treturn noErr;\n}\n\n\nOSStatus\tUnixFile_DataSource::GetPos(SInt64& outPos) const\n{\n\toutPos = mFilePointer;\n\treturn noErr;\n}\n\nSInt64\t\tUnixFile_DataSource::UFCurrentOffset (UInt16\tpositionMode, \n\t\t\t\t\t\t\t\t\t\t\t\tSInt64\t\tpositionOffset)\n{\n\tSInt64 offset = -1;\n\tswitch (positionMode & kPositionModeMask) \n\t{\n\t\t/*case fsAtMark : \n\t\t{\n\t\t\tSInt64 pos;\n\t\t\tOSStatus result = GetPos (pos);\n\t\t\t\tif (result) return result;\n\t\t\toffset = pos; \n\t\t\tbreak;\n\t\t}*/\n\t\tcase SEEK_SET :\n\t\t{\n\t\t\toffset = positionOffset; \n\t\t\tbreak;\n\t\t}\n\t\tcase SEEK_END : \n\t\t{\n\t\t\tSInt64 size;\n\t\t\tOSStatus result = GetSize (size);\n\t\t\t\tif (result) return result;\n\t\t\toffset = size + positionOffset; \n\t\t\tbreak;\n\t\t}\n\t\tcase SEEK_CUR :\n\t\t{\n\t\t\tSInt64 pos;\n\t\t\tOSStatus result = GetPos (pos);\n\t\t\t\tif (result) return result;\n\t\t\toffset = positionOffset + pos; \n\t\t\tbreak;\n\t\t}\n\t}\n\treturn offset;\n}\n\t\nOSStatus\tUnixFile_DataSource::ReadBytes(\tUInt16 positionMode,\n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount)\n{\n\tif (actualCount) *actualCount = 0;\n\tif (!buffer) return kAudio_ParamError;\n\n\t\t// can't use current offset as we need to go to the disk too much\t\t\n\tSInt64 offset = UFCurrentOffset (positionMode, positionOffset);\n\t\tif (offset < 0) return kAudioFilePositionError;\n\n#if 0 // 6571050 fstat-ing the file every read causes a performance regression\n\t// 5931571 check that read may exceed eof and curtail it.\n\tdo {\n\t\tSInt64 size;\n\t\tOSStatus serr = GetSize(size);\n\t\tif (serr) break;\n\t\tSInt64 remain = size - offset;\n\t\tif (remain < 0) requestCount = 0;\n\t\telse if (requestCount > remain) requestCount = remain;\n\t} while (false);\n#endif\n\t\n\tif (requestCount <= 0) {\n\t\tif (actualCount) *actualCount = 0;\n\t\treturn noErr;\n\t}\n\n#if !TARGET_OS_WIN32\n\tUInt32 noCache = positionMode & kAudioFileNoCacheMask ? 1 : 0;\n\tif (noCache != mNoCache) {\n\t\tmNoCache = noCache;\n\t\tfcntl(mFileD, F_NOCACHE, mNoCache);\n\t}\n#endif\n\n\tsize_t readBytes = requestCount;\n#if TARGET_OS_WIN32\n\tlseek(mFileD, offset, SEEK_SET);\n\tint numBytes = read (mFileD, buffer, readBytes);\n#else\n\tssize_t numBytes = pread (mFileD, buffer, readBytes, offset);\n#endif\n\tif (numBytes == -1) return kAudioFilePositionError;\n\tmFilePointer = offset + numBytes;\n\t\n\tif (actualCount) *actualCount = (UInt32)numBytes;\n\treturn noErr;\n}\n\t\t\t\t\t\t\nOSStatus\tUnixFile_DataSource::WriteBytes(UInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tconst void *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount)\n{\n\tif (!buffer) return kAudio_ParamError;\n\n\t\t// can't use current offset as we need to go to the disk too much\t\t\n\tSInt64 offset = UFCurrentOffset (positionMode, positionOffset);\n\t\tif (offset < 0) return kAudioFilePositionError;\n\n\tmCachedSize = -1;\n\n\tsize_t writeBytes = requestCount;\n\n#if !TARGET_OS_WIN32\n\tUInt32 noCache = positionMode & kAudioFileNoCacheMask ? 1 : 0;\n\tif (noCache != mNoCache) {\n\t\tmNoCache = noCache;\n\t\tfcntl(mFileD, F_NOCACHE, mNoCache);\n\t}\n#endif\n\n#if TARGET_OS_WIN32\n\tlseek(mFileD, offset, SEEK_SET);\n\tint numBytes = write (mFileD, buffer, writeBytes);\n#else\n\tssize_t numBytes = pwrite (mFileD, buffer, writeBytes, offset);\n#endif\n\tif (numBytes == -1) return kAudioFilePositionError;\n\tmFilePointer = offset + numBytes;\n\t\n\tif (actualCount) *actualCount = (UInt32)numBytes;\n\treturn noErr;\n}\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n#define NO_CACHE 0\n\nOSStatus Cached_DataSource::ReadFromHeaderCache(\n\t\t\t\t\tSInt64 offset, \n\t\t\t\t\tUInt32 requestCount,\n\t\t\t\t\tvoid *buffer, \n\t\t\t\t\tUInt32* actualCount)\n{\n\tif (actualCount) *actualCount = 0;\n\tOSStatus err = noErr;\n\tByteCount theActualCount = 0;\n\n#if VERBOSE\t\n\tprintf(\"read from header %lld %lu   %lld %lu\\n\", offset, requestCount, 0LL, mHeaderCacheSize);\n#endif\n\n\tif (!mHeaderCache()) \n\t{\n\t\tmHeaderCache.allocBytes(mHeaderCacheSize, true);\n\t\terr = mDataSource->ReadBytes(SEEK_SET, 0, mHeaderCacheSize, mHeaderCache(), &mHeaderCacheSize);\n\t\tif (err == kAudioFileEndOfFileError) err = noErr;\n\t\tif (err) return err;\n\t}\n\t\n\tByteCount firstPart = std::min((ByteCount)requestCount, (ByteCount)(mHeaderCacheSize - offset));\n\tByteCount secondPart = requestCount - firstPart;\n\t\n\tmemcpy(buffer, mHeaderCache + (ByteCount)offset, firstPart);\n\ttheActualCount = firstPart;\n\t\n\tif (secondPart) {\n\t\tUInt32 secondPartActualCount = 0;\n\t\terr = mDataSource->ReadBytes(SEEK_SET, mHeaderCacheSize, static_cast<UInt32>(secondPart), (char*)buffer + firstPart, &secondPartActualCount);\n\t\ttheActualCount += secondPartActualCount;\n\t}\n\t\n\tif (actualCount) *actualCount = (UInt32)theActualCount;\n\tmOffset = offset + theActualCount;\n\t\n\treturn err;\n}\n\nOSStatus Cached_DataSource::ReadBytes(\n\t\t\t\t\tUInt16 positionMode, \n\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\tvoid *buffer, \n\t\t\t\t\tUInt32* actualCount)\n{\n\tif (actualCount) *actualCount = 0;\n\tOSStatus err = noErr;\n\tSInt64 size;\n\tUInt32 theActualCount = 0;\n\n\tif (!buffer) return kAudio_ParamError;\n\n\tif ((positionMode & kPositionModeMask) != SEEK_END) size = 0; // not used in this case\n\telse \n\t{\n\t\terr = GetSize(size);\n\t\tif (err) return err;\n\t}\n\n\tSInt64 offset = CalcOffset(positionMode, positionOffset, mOffset, size);\n\tif (offset < 0) return kAudioFilePositionError;\n\t\n\tif (offset < mHeaderCacheSize) {\n\t\treturn ReadFromHeaderCache(offset, requestCount, buffer, actualCount);\n\t}\n\n#if NO_CACHE\n\terr = mDataSource->ReadBytes(positionMode, positionOffset, requestCount, buffer, &theActualCount);\n\tmOffset = offset + theActualCount;\n#else\n\n\tSInt64 cacheEnd = mBodyCacheOffset + mBodyCacheCurSize;\n\tif (mBodyCache() && requestCount < mBodyCacheSize && offset >= mBodyCacheOffset && offset < cacheEnd)\n\t{\n\t\tif (offset + requestCount <= cacheEnd) \n\t\t{\n\t\t\t// request is entirely within cache\n#if VERBOSE\t\n\t\t\tprintf(\"request is entirely within cache %lld %lu   %lld %lu\\n\", offset, requestCount, mBodyCacheOffset, mBodyCacheCurSize);\n#endif\n\t\t\tmemcpy(buffer, mBodyCache + (size_t)(offset - mBodyCacheOffset), requestCount);\n\t\t\ttheActualCount = requestCount;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// part of request is within cache. copy, read next cache block, copy.\n#if VERBOSE\t\n\t\t\tprintf(\"part of request is within cache %lld %lu   %lld %lu\\n\", offset, requestCount, mBodyCacheOffset, mBodyCacheCurSize);\n#endif\n\t\t\t\n\t\t\t// copy first part.\n\t\t\tByteCount firstPart = (ByteCount)(cacheEnd - offset);\n\t\t\tByteCount secondPart = requestCount - firstPart;\n#if VERBOSE\t\n\t\t\tprintf(\"memcpy   offset %lld  mBodyCacheOffset %lld  offset - mBodyCacheOffset %lld  firstPart %lu   requestCount %lu\\n\", \n\t\t\t\t\t\toffset, mBodyCacheOffset, offset - mBodyCacheOffset, firstPart, requestCount);\n#endif\n\t\t\tmemcpy(buffer, mBodyCache + (size_t)(offset - mBodyCacheOffset), firstPart);\n\t\t\t\n\t\t\ttheActualCount = static_cast<UInt32>(firstPart);\n\t\t\t\n\t\t\t// read new block\n\t\t\tSInt64 nextOffset = mBodyCacheOffset + mBodyCacheCurSize;\n\t\t\terr = mDataSource->ReadBytes(SEEK_SET, nextOffset, mBodyCacheSize, mBodyCache(), &mBodyCacheCurSize);\n\t\t\t\n\t\t\tif (err == kAudioFileEndOfFileError) err = noErr;\n\t\t\tif (err) goto leave;\n\n\t\t\tmBodyCacheOffset = nextOffset;\n\n\t\t\t// copy second part\n\t\t\tsecondPart = std::min(secondPart, (ByteCount)mBodyCacheCurSize);\n\t\t\tif (secondPart) memcpy((char*)buffer + firstPart, mBodyCache(), secondPart);\n\t\t\ttheActualCount = static_cast<UInt32>(firstPart + secondPart);\n\t\t}\n\t}\n\telse \n\t{\n\t\tif (requestCount > mBodyCacheSize)\n\t\t{\n#if VERBOSE\t\n\t\t\tprintf(\"large request %lld %lu   %lld %lu\\n\", offset, requestCount, mBodyCacheOffset, mBodyCacheCurSize);\n#endif\n\t\t\t// the request is larger than we normally cache, just do a read and don't cache.\n\t\t\terr = mDataSource->ReadBytes(positionMode, positionOffset, requestCount, buffer, &theActualCount);\n\t\t\tmOffset = offset + theActualCount;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// request is outside cache. read new block.\n#if VERBOSE\t\n\t\t\tprintf(\"request is outside cache %lld %lu   %lld %lu\\n\", offset, requestCount, mBodyCacheOffset, mBodyCacheCurSize);\n#endif\n\t\t\tif (!mBodyCache()) \n\t\t\t{\n\t\t\t\tmBodyCache.allocBytes(mBodyCacheSize, true);\n#if VERBOSE\t\n\t\t\t\tprintf(\"alloc mBodyCache %08X\\n\", mBodyCache());\n#endif\n\t\t\t}\n\t\t\tmBodyCacheOffset = offset;\n\t\t\terr = mDataSource->ReadBytes(SEEK_SET, mBodyCacheOffset, mBodyCacheSize, mBodyCache(), &mBodyCacheCurSize);\n#if VERBOSE\t\n\t\t\tprintf(\"read %08X %d    mBodyCacheOffset %lld   %lu %lu\\n\", err, err, mBodyCacheOffset, mBodyCacheSize, mBodyCacheCurSize);\n#endif\n\t\t\tif (err == kAudioFileEndOfFileError) err = noErr;\n\t\t\tif (err) return err;\n\n\t\t\ttheActualCount = std::min(requestCount, mBodyCacheCurSize);\n\t\t\tmemcpy(buffer, mBodyCache(), theActualCount);\n\t\t}\n\t\t\n\t}\n\nleave:\n#endif\n\tif (actualCount) *actualCount = (UInt32)theActualCount;\n#if VERBOSE\t\n\tprintf(\"<<read err %d  actualCount %lu\\n\", err, *actualCount);\n#endif\n\treturn err;\n}\n\nOSStatus Cached_DataSource::WriteBytes(\n\t\t\t\t\tUInt16 positionMode, \n\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\tconst void *buffer, \n\t\t\t\t\tUInt32* actualCount)\n{\n\tOSStatus err = noErr;\n\tSInt64 size;\n\n\tif (!buffer) return kAudio_ParamError;\n\t\n\tif ((positionMode & kPositionModeMask) != SEEK_END) size = 0; // not used in this case\n\telse \n\t{\n\t\terr = GetSize(size);\n\t\tif (err) return err;\n\t}\n\n\tSInt64 offset = CalcOffset(positionMode, positionOffset, mOffset, size);\n\tif (offset < 0) return kAudioFilePositionError;\n\t\n\tif (mHeaderCache() && offset < mHeaderCacheSize) \n\t{\n\t\t// header cache write through\n\t\tByteCount firstPart = std::min((ByteCount)requestCount, (ByteCount)(mHeaderCacheSize - offset));\n#if VERBOSE\t\n\t\tprintf(\"header cache write through %lu %lu\\n\", mHeaderCacheSize, firstPart);\n#endif\n\t\tmemcpy(mHeaderCache + (size_t)offset, buffer, firstPart);\n\t}\n\t\t\n#if VERBOSE\t\n\tprintf(\"write %lld %lu    %lld %d %lld\\n\", offset, requestCount, mOffset, positionMode, positionOffset);\n#endif\n\n\tSInt64 cacheEnd = mBodyCacheOffset + mBodyCacheCurSize;\n\tif (mBodyCache() && offset >= mBodyCacheOffset && offset < cacheEnd)\n\t{\n\t\t// body cache write through\n\t\tByteCount firstPart = std::min((SInt64)requestCount, cacheEnd - offset);\n#if VERBOSE\t\n\t\tprintf(\"body cache write through %lld %lu  %lld %lu\\n\", mBodyCacheOffset, mBodyCacheCurSize, offset, firstPart);\n#endif\n\t\tmemcpy(mBodyCache + (offset - mBodyCacheOffset), buffer, firstPart);\n\t}\n\t\n\tUInt32 theActualCount;\n\terr = mDataSource->WriteBytes(positionMode, positionOffset, requestCount, buffer, &theActualCount);\n\t\n\tmOffset = offset + theActualCount;\n\tif (actualCount) *actualCount = (UInt32)theActualCount;\n\t\n\treturn err;\n}\n\n\n//////////////////////////////////////////////////////////////////////////////////////////\n//////////////////////////////////////////////////////////////////////////////////////////\n\nSeekable_DataSource::Seekable_DataSource(\tvoid * inClientData,\n\t\t\t\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc)\n\t: DataSource(false), mClientData(inClientData), mReadFunc(inReadFunc), mWriteFunc(inWriteFunc), \n\t\tmSizeFunc(inGetSizeFunc), mSetSizeFunc(inSetSizeFunc)\n{\n}\n\nSeekable_DataSource::~Seekable_DataSource()\n{\n}\n\n\nOSStatus Seekable_DataSource::GetSize(SInt64& outSize)\n{\n\tif (!mSizeFunc) {\n\t\toutSize = LLONG_MAX;\n\t} else {\n\t\toutSize = (*mSizeFunc)(mClientData);\n\t}\n\treturn noErr;\n}\n\nOSStatus Seekable_DataSource::SetSize(SInt64 inSize)\n{\n\tif (!mSetSizeFunc) return kAudioFileOperationNotSupportedError;\n\treturn (*mSetSizeFunc)(mClientData, inSize);\n}\n\nOSStatus Seekable_DataSource::ReadBytes(\t\n\t\t\t\t\t\t\tUInt16 positionMode, \n\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\tUInt32* actualCount)\n{\n\tOSStatus err;\n\t\n\tif (actualCount) *actualCount = 0;\n\tif (!mReadFunc) return kAudioFileOperationNotSupportedError;\n\tif (!buffer) return kAudio_ParamError;\n\n\tpositionMode &= kPositionModeMask;\n\n\tSInt64 size;\n\terr = GetSize(size);\n\tif (err) return err;\n\n\tSInt64 offset = CalcOffset(positionMode, positionOffset, mOffset, size);\n\t\n\t// request is outside bounds of file\n\tif (offset < 0) \n\t\treturn kAudioFilePositionError;\n\tif (offset >= size) \n\t\treturn kAudioFileEndOfFileError;\n\t\n\t// reduce request if it exceeds the amount available\n\trequestCount = static_cast<UInt32>(std::min((SInt64)requestCount, size - offset));\n\t\n\tUInt32 theActualCount = 0;\n\terr = (*mReadFunc)(mClientData, offset, requestCount, buffer, &theActualCount);\n\tif (actualCount) *actualCount = theActualCount;\n\tmOffset = offset + theActualCount;\n\treturn err;\n}\n\n\t\t\t\t\t\nOSStatus Seekable_DataSource::WriteBytes(\n\t\t\t\t\t\t\tUInt16 positionMode, \n\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\tconst void *buffer, \n\t\t\t\t\t\t\tUInt32* actualCount)\n{\n\tOSStatus err;\n\t\n\tif (!mWriteFunc) return kAudioFileOperationNotSupportedError;\n\tif (!buffer) return kAudio_ParamError;\n\n\tSInt64 size;\n\tpositionMode &= kPositionModeMask;\n\tif (positionMode != SEEK_END) size = 0; // not used in this case\n\telse \n\t{\n\t\terr = GetSize(size);\n\t\tif (err) return err;\n\t}\n\n\tSInt64 offset = CalcOffset(positionMode, positionOffset, mOffset, size);\n\tif (offset < 0) return kAudioFilePositionError;\n\t\n\tUInt32 theActualCount;\n\terr = (*mWriteFunc)(mClientData, offset, requestCount, buffer, &theActualCount);\n\tif (err) return err;\n\tif (actualCount) *actualCount = theActualCount;\n\tmOffset = offset + theActualCount;\n\treturn noErr;\n}\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\nOSStatus Buffer_DataSource::ReadBytes(\n\t\t\t\t\t\t\t\tUInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount)\n{\n\tif (actualCount) *actualCount = 0;\n\tSInt64 offsetWithinBuffer = CalcOffset(positionMode, positionOffset, mOffset, mDataByteSize + mStartOffset) - mStartOffset;\t\t\n\tif (offsetWithinBuffer < 0 || offsetWithinBuffer >= mDataByteSize) return kAudioFilePositionError;\n\t\n\tSInt64 bytesAfterOffset = mDataByteSize - offsetWithinBuffer;\n\tSInt64 theActualCount = std::min(bytesAfterOffset, (SInt64)requestCount);\n\n\tif (theActualCount <= 0) {\n\t\tif (actualCount) *actualCount = 0;\n\t\treturn kAudio_ParamError;\n\t}\n\n\tmemcpy(buffer, mData + offsetWithinBuffer, theActualCount);\n\t\n\tif (actualCount) *actualCount = static_cast<UInt32>(theActualCount);\n\tmOffset = offsetWithinBuffer + theActualCount;\n\n\treturn noErr;\n}\n\n\n\n//////////////////////////////////////////////////////////////////////////////////////////\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioFile/AFPublic/DataSource.h",
    "content": "/*\n     File: DataSource.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __DataSource_h__\n#define __DataSource_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioFile.h>\n#else\n\t#include <ConditionalMacros.h>\n\t#include \"AudioFile.h\"\n#endif\n#include <stdlib.h>\n#include <stdio.h>\n#include <stdexcept>\n#include \"CAAutoDisposer.h\"\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\nclass DataSource\n{\npublic:\n\t\n\tDataSource(Boolean inCloseOnDelete);\n\tvirtual ~DataSource();\n\t\t\n\tvirtual OSStatus GetSize32(UInt32& outSize)\n\t{\n\t\tSInt64 size64;\n\t\tOSStatus err = GetSize(size64);\n\t\tif (err) return err;\n\t\tif (size64 > 0x00000000FFFFffffLL) return kAudioFileDoesNotAllow64BitDataSizeError;\n\t\toutSize = (UInt32)size64;\n\t\treturn noErr;\n\t}\n\t\n\tvirtual OSStatus GetSize(SInt64& outSize) =0;\n\t\n\tvirtual OSStatus SetSize(SInt64 inSize)=0;\n\t\n\tvirtual OSStatus GetPos(SInt64& outPos) const=0; \n\t\n\t/* non seekable data sources should use fsAtMark for the positionMode (or SEEK_CUR with offset zero, \n\t\tor SEEK_SET with offset equal to the current position in the stream, in other words no seeking from the \n\t\tcurrent position is allowed.)\n\t*/\n\t\n\tvirtual OSStatus ReadBytes(\tUInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount)=0;\n\t\t\t\t\t\t\n\tvirtual OSStatus WriteBytes(UInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tconst void *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount)=0;\n\t\n\tvirtual void SetCloseOnDelete(Boolean inFlag) { mCloseOnDelete = inFlag; }\n\t\n\tvirtual Boolean CanSeek() const=0;\n\tvirtual Boolean CanGetSize() const=0;\n\tvirtual Boolean CanSetSize() const=0;\n\tvirtual Boolean CanRead() const=0;\n\tvirtual Boolean CanWrite() const=0;\n\t\nprotected:\n\tBoolean mCloseOnDelete;\n\t\n\t/* utility method */\n\tSInt64 CalcOffset(\tUInt16 positionMode, \n\t\t\t\t\t\tSInt64 positionOffset,\n\t\t\t\t\t\tSInt64 currentOffset,\n\t\t\t\t\t\tSInt64 size);\n};\n\n//////////////////////////////////////////////////////////////////////////////////////////\n//////////////////////////////////////////////////////////////////////////////////////////\n\n/*\n\tInitialize with a Macintosh file fork ref num as obtained from FSOpenFork.\n*/\n\n#if 0\n\nclass MacFile_DataSource : public DataSource\n{\n\tFSIORefNum mFileNum;\n\tSInt8 mPermissions;\n\t\npublic:\n\n\tMacFile_DataSource(\tFSIORefNum inForkRefNum, SInt8 inPermissions, Boolean inCloseOnDelete);\n\tvirtual ~MacFile_DataSource();\n\t\n\tvirtual OSStatus GetSize(SInt64& outSize);\n\tvirtual OSStatus GetPos(SInt64& outPos) const; \n\t\n\tvirtual OSStatus SetSize(SInt64 inSize);\n\t\n\tvirtual OSStatus ReadBytes(\tUInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\t\t\t\t\t\n\tvirtual OSStatus WriteBytes(UInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tconst void *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\n\tvirtual Boolean CanSeek() const { return true; }\n\tvirtual Boolean CanGetSize() const { return true; }\n\tvirtual Boolean CanSetSize() const { return true; }\n\t\n\tvirtual Boolean CanRead() const { return mPermissions & kAudioFileReadPermission; }\n\tvirtual Boolean CanWrite() const { return mPermissions & kAudioFileWritePermission; }\n};\n#endif\n\n\nclass UnixFile_DataSource : public DataSource\n{\n\tint\t  mFileD;\n\tSInt8 mPermissions;\n\tUInt32 mNoCache;\n\tSInt64 mCachedSize;\n\tSInt64 mFilePointer;\n\t\npublic:\n\n\tUnixFile_DataSource( int inFD, SInt8 inPermissions, Boolean inCloseOnDelete);\n\tvirtual ~UnixFile_DataSource();\n\t\n\tvirtual OSStatus GetSize(SInt64& outSize);\n\tvirtual OSStatus GetPos(SInt64& outPos) const; \n\t\n\tvirtual OSStatus SetSize(SInt64 inSize);\n\t\n\tvirtual OSStatus ReadBytes(\tUInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\t\t\t\t\t\n\tvirtual OSStatus WriteBytes(UInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tconst void *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\n\tvirtual Boolean CanSeek() const { return true; }\n\tvirtual Boolean CanGetSize() const { return true; }\n\tvirtual Boolean CanSetSize() const { return true; }\n\t\n\tvirtual Boolean CanRead() const { return mPermissions & kAudioFileReadPermission; }\n\tvirtual Boolean CanWrite() const { return mPermissions & kAudioFileWritePermission; }\n\nprivate:\n\n\tSInt64\tUFCurrentOffset (UInt16\t\tpositionMode, \n\t\t\t\t\t\t\tSInt64\t\tpositionOffset);\n};\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n/*\n\tA wrapper that caches the wrapped source's header.\n*/\nclass Cached_DataSource : public DataSource\n{\n\tDataSource* mDataSource;\n\tCAAutoFree<UInt8> mHeaderCache;\n\tUInt32 mHeaderCacheSize;\n\tCAAutoFree<UInt8> mBodyCache;\n\tUInt32 mBodyCacheSize;\n\tUInt32 mBodyCacheCurSize;\n\tSInt64 mBodyCacheOffset;\n\tSInt64 mOffset;\n\tBoolean mOwnDataSource;\n\t\npublic:\n\n\tCached_DataSource(DataSource* inDataSource, UInt32 inHeaderCacheSize = 4096, UInt32 inBodyCacheSize = 32768, Boolean inOwnDataSource = true)\n\t\t\t\t\t: DataSource(false), \n\t\t\t\t\tmDataSource(inDataSource), mHeaderCacheSize(inHeaderCacheSize), \n\t\t\t\t\tmBodyCacheSize(inBodyCacheSize), mBodyCacheCurSize(0), mBodyCacheOffset(-1), \n\t\t\t\t\tmOffset(0),\n\t\t\t\t\tmOwnDataSource(inOwnDataSource)\n\t\t\t\t{\n\t\t\t\t}\n\t\t\t\t\n\tvirtual ~Cached_DataSource()\n\t\t\t\t{\n\t\t\t\t\tif (mOwnDataSource) delete mDataSource;\n\t\t\t\t}\n\n\t\n\tvirtual OSStatus GetSize(SInt64& outSize) { return mDataSource->GetSize(outSize); }\n\tvirtual OSStatus GetPos(SInt64& outPos) const { return mDataSource->GetPos(outPos); } \n\t\n\tvirtual OSStatus SetSize(SInt64 inSize) { return mDataSource->SetSize(inSize); }\n\t\n\tvirtual OSStatus ReadBytes(\t\tUInt16 positionMode, \n\t\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\t\t\t\t\t\n\tvirtual OSStatus WriteBytes(\tUInt16 positionMode, \n\t\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\t\tconst void *buffer, \n\t\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\n\tOSStatus ReadFromHeaderCache(\tSInt64 offset, \n\t\t\t\t\t\t\t\t\tUInt32 requestCount,\n\t\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\n\tvirtual Boolean CanSeek() const { return mDataSource->CanSeek(); }\n\tvirtual Boolean CanGetSize() const { return mDataSource->CanGetSize(); }\n\tvirtual Boolean CanSetSize() const { return mDataSource->CanSetSize(); }\n\t\n\tvirtual Boolean CanRead() const { return mDataSource->CanRead(); }\n\tvirtual Boolean CanWrite() const { return mDataSource->CanWrite(); }\n};\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n\n/* This class calls user supplied routines on demand. */\n\nclass Seekable_DataSource : public DataSource\n{\n\tvoid * mClientData;\n\tSInt64 mOffset;\n\t\n\tAudioFile_ReadProc mReadFunc;\n\tAudioFile_WriteProc mWriteFunc;\n\tAudioFile_GetSizeProc mSizeFunc;\n\tAudioFile_SetSizeProc mSetSizeFunc;\n\t\npublic:\n\tSeekable_DataSource(\tvoid * \t\t\t\t\t\t\t\tinClientData,\n\t\t\t\t\t\t\tAudioFile_ReadProc\t\t\t\t\tinReadFunc, \n\t\t\t\t\t\t\tAudioFile_WriteProc\t\t\t\t\tinWriteFunc, \n\t\t\t\t\t\t\tAudioFile_GetSizeProc\t\t\t\tinGetSizeFunc,\n\t\t\t\t\t\t\tAudioFile_SetSizeProc\t\t\t\tinSetSizeFunc\n\t\t\t\t\t);\n\t\n\tvirtual ~Seekable_DataSource();\n\t\n\tvirtual OSStatus GetSize(SInt64& outSize);\n\tvirtual OSStatus GetPos(SInt64& outPos) const { outPos = mOffset; return noErr; }; \n\t\n\tvirtual OSStatus SetSize(SInt64 inSize);\n\t\n\tvirtual OSStatus ReadBytes(\tUInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\t\t\t\t\t\n\tvirtual OSStatus WriteBytes(UInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tconst void *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount);\n\n\tvirtual Boolean CanSeek() const { return true; }\n\tvirtual Boolean CanGetSize() const { return mSizeFunc != 0; }\n\tvirtual Boolean CanSetSize() const { return mSetSizeFunc != 0; }\n\tvirtual Boolean CanRead() const { return mReadFunc != 0; }\n\tvirtual Boolean CanWrite() const { return mWriteFunc != 0; }\n};\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\nclass Buffer_DataSource : public DataSource\n{\n\tUInt32 mDataByteSize;\n\tconst char * mData;\n\n\tSInt64 mStartOffset;\n\tSInt64 mOffset;\npublic:\n\tBuffer_DataSource(\tUInt32\t\t\tinDataByteSize,\n\t\t\t\t\t\tconst void *\tinData,\n\t\t\t\t\t\tSInt64\t\t\tinStartOffset = 0\n\t\t\t\t\t) : DataSource(false), mDataByteSize(inDataByteSize), mData((const char*)inData), mStartOffset(inStartOffset), mOffset(mStartOffset) {}\n\t\n\tvirtual ~Buffer_DataSource() {}\n\t\n\tvirtual OSStatus GetSize(SInt64& outSize) { outSize = mDataByteSize + mStartOffset; return noErr; }\n\tvirtual OSStatus GetPos(SInt64& outPos) const { outPos = mOffset; return noErr; }; \n\t\n\tvirtual OSStatus SetSize(SInt64 inSize) { throw std::runtime_error(\"not writable\"); }\n\t\n\tvirtual OSStatus ReadBytes(\tUInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tvoid *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount);\n\t\t\t\t\t\t\n\tvirtual OSStatus WriteBytes(UInt16 positionMode, \n\t\t\t\t\t\t\t\tSInt64 positionOffset, \n\t\t\t\t\t\t\t\tUInt32 requestCount, \n\t\t\t\t\t\t\t\tconst void *buffer, \n\t\t\t\t\t\t\t\tUInt32* actualCount) { throw std::runtime_error(\"not writable\"); }\n\n\tvirtual Boolean CanSeek() const { return true; }\n\tvirtual Boolean CanGetSize() const { return true; }\n\tvirtual Boolean CanSetSize() const { return false; }\n\tvirtual Boolean CanRead() const { return true; }\n\tvirtual Boolean CanWrite() const { return false; }\n};\n\n//////////////////////////////////////////////////////////////////////////////////////////\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.cpp",
    "content": "/*\n     File: AUBase.cpp\n Abstract: AUBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUBase.h\"\n#include \"AUDispatch.h\"\n#include \"AUInputElement.h\"\n#include \"AUOutputElement.h\"\n#include <algorithm>\n#include <syslog.h>\n#include \"CAAudioChannelLayout.h\"\n#include \"CAHostTimeBase.h\"\n#include \"CAVectorUnit.h\"\n#include \"CAXException.h\"\n\n\n\n#if TARGET_OS_MAC && (TARGET_CPU_X86 || TARGET_CPU_X86_64)\n\t// our compiler does ALL floating point with SSE\n\tinline int  GETCSR ()    { int _result; asm volatile (\"stmxcsr %0\" : \"=m\" (*&_result) ); return _result; }\n\tinline void SETCSR (int a)    { int _temp = a; asm volatile( \"ldmxcsr %0\" : : \"m\" (*&_temp ) ); }\n\n\t#define DISABLE_DENORMALS int _savemxcsr = GETCSR(); SETCSR(_savemxcsr | 0x8040);\n\t#define RESTORE_DENORMALS SETCSR(_savemxcsr);\n#else\n\t#define DISABLE_DENORMALS\n\t#define RESTORE_DENORMALS\n#endif\n\nstatic bool sAUBaseCFStringsInitialized = false;\n// this is used for the presets\nstatic CFStringRef kUntitledString = NULL;\n//these are the current keys for the class info document\nstatic CFStringRef kVersionString = NULL;\nstatic CFStringRef kTypeString = NULL;\nstatic CFStringRef kSubtypeString = NULL;\nstatic CFStringRef kManufacturerString = NULL;\nstatic CFStringRef kDataString = NULL;\nstatic CFStringRef kNameString = NULL;\nstatic CFStringRef kRenderQualityString = NULL;\nstatic CFStringRef kCPULoadString = NULL;\nstatic CFStringRef kElementNameString = NULL;\nstatic CFStringRef kPartString = NULL;\n\nSInt32 AUBase::sVectorUnitType = kVecUninitialized;\n\n//_____________________________________________________________________________\n//\nAUBase::AUBase(\tAudioComponentInstance\t\t\tinInstance, \n\t\t\t\tUInt32\t\t\t\t\t\t\tnumInputElements,\n\t\t\t\tUInt32\t\t\t\t\t\t\tnumOutputElements,\n\t\t\t\tUInt32\t\t\t\t\t\t\tnumGroupElements) :\n\tComponentBase(inInstance),\n\tmElementsCreated(false),\n\tmInitialized(false),\n\tmHasBegunInitializing(false),\n\tmInitNumInputEls(numInputElements), mInitNumOutputEls(numOutputElements), \n#if !CA_BASIC_AU_FEATURES\n\tmInitNumGroupEls(numGroupElements),\n#endif\n\tmRenderCallbacksTouched(false),\n\tmRenderThreadID (NULL),\n\tmWantsRenderThreadID (false),\n\tmLastRenderError(0),\n\tmUsesFixedBlockSize(false),\n\tmBuffersAllocated(false),\n\tmLogString (NULL),\n    mNickName (NULL),\n\tmAUMutex(NULL)\n\t#if !CA_NO_AU_UI_FEATURES\n\t\t,\n\t\tmContextName(NULL)\n\t#endif\n{\n\tResetRenderTime ();\n\t\n\tif(!sAUBaseCFStringsInitialized)\n\t{\n\t\tkUntitledString = CFSTR(\"Untitled\");\n\t\tkVersionString = CFSTR(kAUPresetVersionKey);\n\t\tkTypeString = CFSTR(kAUPresetTypeKey);\n\t\tkSubtypeString = CFSTR(kAUPresetSubtypeKey);\n\t\tkManufacturerString = CFSTR(kAUPresetManufacturerKey);\n\t\tkDataString = CFSTR(kAUPresetDataKey);\n\t\tkNameString = CFSTR(kAUPresetNameKey);\n\t\tkRenderQualityString = CFSTR(kAUPresetRenderQualityKey);\n\t\tkCPULoadString = CFSTR(kAUPresetCPULoadKey);\n\t\tkElementNameString = CFSTR(kAUPresetElementNameKey);\n\t\tkPartString = CFSTR(kAUPresetPartKey);\n\t\tsAUBaseCFStringsInitialized = true;\n\t}\n\n\tif (sVectorUnitType == kVecUninitialized) {\n\t\tsVectorUnitType = CAVectorUnit::GetVectorUnitType() ;\n\t}\n\n\tmAudioUnitAPIVersion = 2;\n\t\n\tSetMaxFramesPerSlice(kAUDefaultMaxFramesPerSlice);\n\n\tGlobalScope().Initialize(this, kAudioUnitScope_Global, 1);\n\t\n#if !CA_NO_AU_UI_FEATURES\n\tmemset (&mHostCallbackInfo, 0, sizeof (mHostCallbackInfo));\n#endif\n\n\n\tmCurrentPreset.presetNumber = -1;\n\tmCurrentPreset.presetName = kUntitledString;\n\tCFRetain (mCurrentPreset.presetName);\n}\n\n//_____________________________________________________________________________\n//\nAUBase::~AUBase()\n{\n\tif (mCurrentPreset.presetName) CFRelease (mCurrentPreset.presetName);\n#if !CA_NO_AU_UI_FEATURES\n\tif (mContextName) CFRelease (mContextName);\n#endif\n\tif (mLogString) delete [] mLogString;\n    if (mNickName) CFRelease(mNickName);\n}\n\n//_____________________________________________________________________________\n//\nvoid\tAUBase::CreateElements()\n{\n\tif (!mElementsCreated) {\n\t\tInputs().Initialize(this, kAudioUnitScope_Input, mInitNumInputEls);\n\t\tOutputs().Initialize(this, kAudioUnitScope_Output, mInitNumOutputEls);\n#if !CA_BASIC_AU_FEATURES\n\t\tGroups().Initialize(this, kAudioUnitScope_Group, mInitNumGroupEls);\n#endif\n\t\tCreateExtendedElements();\n\t\t\n\t\tmElementsCreated = true;\n\t}\n}\n\n//_____________________________________________________________________________\n//\nvoid\tAUBase::SetMaxFramesPerSlice(UInt32 nFrames)\n{\n\tmMaxFramesPerSlice = nFrames;\n\tif (mBuffersAllocated)\n\t\tReallocateBuffers();\n\tPropertyChanged(kAudioUnitProperty_MaximumFramesPerSlice, kAudioUnitScope_Global, 0);\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::CanSetMaxFrames() const\n{\n\treturn IsInitialized() ? kAudioUnitErr_Initialized : OSStatus(noErr);\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\t\tAUBase::ReallocateBuffers()\n{\n\tCreateElements();\n\t\n\tUInt32 nOutputs = Outputs().GetNumberOfElements();\n\tfor (UInt32 i = 0; i < nOutputs; ++i) {\n\t\tAUOutputElement *output = GetOutput(i);\n\t\toutput->AllocateBuffer();\t// does no work if already allocated\n\t}\n\tUInt32 nInputs = Inputs().GetNumberOfElements();\n\tfor (UInt32 i = 0; i < nInputs; ++i) {\n\t\tAUInputElement *input = GetInput(i);\n\t\tinput->AllocateBuffer();\t// does no work if already allocated\n\t}\n\tmBuffersAllocated = true;\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\t\tAUBase::DeallocateIOBuffers()\n{\n\tif (!mBuffersAllocated)\n\t\treturn;\n\n\tUInt32 nOutputs = Outputs().GetNumberOfElements();\n\tfor (UInt32 i = 0; i < nOutputs; ++i) {\n\t\tAUOutputElement *output = GetOutput(i);\n\t\toutput->DeallocateBuffer();\n\t}\n\tUInt32 nInputs = Inputs().GetNumberOfElements();\n\tfor (UInt32 i = 0; i < nInputs; ++i) {\n\t\tAUInputElement *input = GetInput(i);\n\t\tinput->DeallocateBuffer();\n\t}\n\tmBuffersAllocated = false;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::DoInitialize()\n{\n\tOSStatus result = noErr;\n\t\n\tif (!mInitialized) {\n\t\tresult = Initialize();\n\t\tif (result == noErr) {\n\t\t\tif (CanScheduleParameters())\n\t\t\t\tmParamList.reserve(24);\n\t\t\tmHasBegunInitializing = true;\n\t\t\tReallocateBuffers();\t// calls CreateElements()\n\t\t\tmInitialized = true;\t// signal that it's okay to render\n\t\t\tCAMemoryBarrier();\n\t\t}\n\t}\n\n\treturn result;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::Initialize()\n{\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\t\tAUBase::PreDestructor()\n{\n\t// this is called from the ComponentBase dispatcher, which doesn't know anything about our (optional) lock\n\tCAMutex::Locker lock(mAUMutex);\n\tDoCleanup();\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\t\tAUBase::DoCleanup()\n{\n\tif (mInitialized)\n\t\tCleanup();\n\t\n\tDeallocateIOBuffers();\n\tResetRenderTime ();\n\n\tmInitialized = false;\n\tmHasBegunInitializing = false;\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\t\tAUBase::Cleanup()\n{\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::Reset(\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement)\n{\n\tResetRenderTime ();\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::DispatchGetPropertyInfo(AudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\t\toutWritable)\n{\n\tOSStatus result = noErr;\n\tbool validateElement = true;\n\t\n\tswitch (inID) {\n\tcase kAudioUnitProperty_MakeConnection:\n\t\tca_require(inScope == kAudioUnitScope_Input || inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(AudioUnitConnection);\n\t\toutWritable = true;\n\t\tbreak;\n\t\t\n\t\t\n\tcase kAudioUnitProperty_SetRenderCallback:\n\t\tca_require(AudioUnitAPIVersion() > 1, InvalidProperty);\n\t\tca_require(inScope == kAudioUnitScope_Input || inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(AURenderCallbackStruct);\n\t\toutWritable = true;\n\t\tbreak;\n\t\t\n\tcase kAudioUnitProperty_StreamFormat:\n\t\toutDataSize = sizeof(CAStreamBasicDescription);\n\t\toutWritable = IsStreamFormatWritable(inScope, inElement);\n\t\tbreak;\n\n\tcase kAudioUnitProperty_SampleRate:\n\t\toutDataSize = sizeof(Float64);\n\t\toutWritable = IsStreamFormatWritable(inScope, inElement);\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ClassInfo:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(CFPropertyListRef);\n\t\toutWritable = true;\n\t\tbreak;\n\n\tcase kAudioUnitProperty_FactoryPresets:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tresult = GetPresets(NULL);\n\t\tif (!result) {\n\t\t\toutDataSize = sizeof(CFArrayRef);\n\t\t\toutWritable = false;\n\t\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitProperty_PresentPreset:\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n#ifndef __LP64__\n\tcase kAudioUnitProperty_CurrentPreset:\n#endif\n#endif\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(AUPreset);\n\t\toutWritable = true;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_ElementName:\n\t\toutDataSize = sizeof (CFStringRef);\n\t\toutWritable = true;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_ParameterList:\n\t\t{\n\t\t\tUInt32 nparams = 0;\n\t\t\tresult = GetParameterList(inScope, NULL, nparams);\n\t\t\t\n\t\t\toutDataSize = sizeof(AudioUnitParameterID) * nparams;\n\t\t\toutWritable = false;\n\t\t\tvalidateElement = false;\n\t\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitProperty_ParameterInfo:\n\t\toutDataSize = sizeof(AudioUnitParameterInfo);\n\t\toutWritable = false;\n\t\tvalidateElement = false;\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ParameterHistoryInfo:\n\t\toutDataSize = sizeof(AudioUnitParameterHistoryInfo);\n\t\toutWritable = false;\n\t\tvalidateElement = false;\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ElementCount:\n\t\toutDataSize = sizeof(UInt32);\n\t\toutWritable = BusCountWritable(inScope);\n\t\tvalidateElement = false;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_Latency:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(Float64);\n\t\toutWritable = false;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_TailTime:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tif (SupportsTail()) {\n\t\t\toutDataSize = sizeof(Float64);\n\t\t\toutWritable = false;\n\t\t} else\n\t\t\tgoto InvalidProperty;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_MaximumFramesPerSlice:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(UInt32);\n\t\toutWritable = true;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_LastRenderError:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(OSStatus);\n\t\toutWritable = false;\n\t\tbreak;\n\t\t\n\tcase kAudioUnitProperty_SupportedNumChannels:\n\t{\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tUInt32 num = SupportedNumChannels (NULL);\n\t\tif (num) {\n\t\t\toutDataSize = sizeof (AUChannelInfo) * num;\n\t\t\tresult = noErr;\n\t\t} else\n\t\t\tgoto InvalidProperty;\n\t\toutWritable = false;\n\t\tbreak;\n\t}\n\t\n\tcase kAudioUnitProperty_SupportedChannelLayoutTags:\n\t{\n\t\tUInt32 numLayouts = GetChannelLayoutTags(inScope, inElement, NULL);\n\t\tif (numLayouts) {\n\t\t\toutDataSize = numLayouts * sizeof(AudioChannelLayoutTag);\n\t\t\tresult = noErr;\n\t\t} else\n\t\t\tgoto InvalidProperty;\n\t\toutWritable = false;\n\t\tvalidateElement = false; //already done it\n\t\tbreak;\n\t}\n\t\n\tcase kAudioUnitProperty_AudioChannelLayout:\n\t{\n\t\toutWritable = false;\n\t\toutDataSize = GetAudioChannelLayout(inScope, inElement, NULL, outWritable);\n\t\tif (outDataSize) {\n\t\t\tresult = noErr;\n\t\t} else {\n\t\t\tif (GetChannelLayoutTags(inScope, inElement, NULL) == 0)\n\t\t\t\tgoto InvalidProperty;\n\t\t\telse\n\t\t\t\tresult = kAudioUnitErr_InvalidPropertyValue;\n\t\t}\n\t\tvalidateElement = false; //already done it\n\t\tbreak;\n\t}\n\n#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5) || TARGET_OS_IPHONE\n\tcase kAudioUnitProperty_ShouldAllocateBuffer:\n\t\tca_require((inScope == kAudioUnitScope_Input || inScope == kAudioUnitScope_Output), InvalidScope);\n\t\toutWritable = true;\n\t\toutDataSize = sizeof(UInt32);\n\t\tbreak;\n#endif\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\tcase kAudioUnitProperty_FastDispatch:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tif (!IsCMgrObject()) goto InvalidProperty;\n\t\toutDataSize = sizeof(void *);\n\t\toutWritable = false;\n\t\tvalidateElement = false;\n\t\tbreak;\n\n\tcase kAudioUnitProperty_GetUIComponentList:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = GetNumCustomUIComponents();\n\t\tif (outDataSize == 0)\n\t\t\tgoto InvalidProperty;\n\t\toutDataSize *= sizeof (AudioComponentDescription);\n\t\t\n\t\toutWritable = false;\n\t\tbreak;\n#endif\n\t\n\tcase kAudioUnitProperty_ParameterValueStrings:\n\t\tresult = GetParameterValueStrings(inScope, inElement, NULL);\n\t\tif (result == noErr) {\n\t\t\toutDataSize = sizeof(CFArrayRef);\n\t\t\toutWritable = false;\n\t\t\tvalidateElement = false;\n\t\t}\n\t\tbreak;\n\n#if !CA_NO_AU_HOST_CALLBACKS\n\tcase kAudioUnitProperty_HostCallbacks:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(mHostCallbackInfo);\n\t\toutWritable = true;\n\t\tbreak;\n#endif\n#if !CA_NO_AU_UI_FEATURES\n\tcase kAudioUnitProperty_ContextName:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutDataSize = sizeof(CFStringRef);\n\t\toutWritable = true;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_IconLocation:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\toutWritable = false;\n\t\tif (!HasIcon())\n\t\t\tgoto InvalidProperty;\n\t\toutDataSize = sizeof(CFURLRef);\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ParameterClumpName:\n\t\toutDataSize = sizeof(AudioUnitParameterNameInfo );\n\t\toutWritable = false;\n\t\tbreak;\n\n#endif // !CA_NO_AU_UI_FEATURES\n\n\tcase 'lrst' :  // kAudioUnitProperty_LastRenderedSampleTime\n\t\toutDataSize = sizeof(Float64);\n\t\toutWritable = false;\n\t\tbreak;\n\t\n    case kAudioUnitProperty_NickName:\n        ca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n        outDataSize = sizeof(CFStringRef);\n        outWritable = true;\n        break;\n\n\tdefault:\n\t\tresult = GetPropertyInfo(inID, inScope, inElement, outDataSize, outWritable);\n\t\tvalidateElement = false;\n\t\tbreak;\n\t}\n\n\tif (result == noErr && validateElement) {\n\t\tca_require(GetElement(inScope, inElement) != NULL, InvalidElement);\t\n\t}\n\t\n\treturn result;\nInvalidProperty:\n\treturn kAudioUnitErr_InvalidProperty;\nInvalidScope:\n\treturn kAudioUnitErr_InvalidScope;\nInvalidElement:\n\treturn kAudioUnitErr_InvalidElement;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::DispatchGetProperty(\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\toutData)\n{\n\t// NOTE: We're currently only called from AUBase::ComponentEntryDispatch, which\n\t// calls DispatchGetPropertyInfo first, which performs validation of the scope/element,\n\t// and ensures that the outData buffer is non-null and large enough.\n\tOSStatus result = noErr;\n\n\tswitch (inID) {\n\tcase kAudioUnitProperty_StreamFormat:\n\t\t*(CAStreamBasicDescription *)outData = GetStreamFormat(inScope, inElement);\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_SampleRate:\n\t\t*(Float64 *)outData = GetStreamFormat(inScope, inElement).mSampleRate;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_ParameterList:\n\t\t{\n\t\t\tUInt32 nparams = 0;\n\t\t\tresult = GetParameterList(inScope, (AudioUnitParameterID *)outData, nparams);\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ParameterInfo:\n\t\tresult = GetParameterInfo(inScope, inElement, *(AudioUnitParameterInfo *)outData);\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ParameterHistoryInfo:\n\t\t{\n\t\t\tAudioUnitParameterHistoryInfo* info = (AudioUnitParameterHistoryInfo*)outData;\n\t\t\tresult = GetParameterHistoryInfo(inScope, inElement, info->updatesPerSecond, info->historyDurationInSeconds);\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ClassInfo:\n\t\t{\n\t\t\t*(CFPropertyListRef *)outData = NULL;\n\t\t\tresult = SaveState((CFPropertyListRef *)outData);\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_FactoryPresets:\n\t\t{\n\t\t\t*(CFArrayRef *)outData = NULL;\n\t\t\tresult = GetPresets ((CFArrayRef *)outData);\n\t\t}\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_PresentPreset:\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n#ifndef __LP64__\n\tcase kAudioUnitProperty_CurrentPreset:\n#endif\n#endif\n\t\t{\n\t\t\t*(AUPreset *)outData = mCurrentPreset;\n\t\t\t\t\n\t\t\t\t// retain current string (as client owns a reference to it and will release it)\n\t\t\tif (inID == kAudioUnitProperty_PresentPreset && mCurrentPreset.presetName) \n\t\t\t\tCFRetain (mCurrentPreset.presetName);\n\n\t\t\tresult = noErr;\n\t\t}\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_ElementName:\n\t\t{\n\t\t\tAUElement * element = GetElement(inScope, inElement);\n\t\t\tif (element->HasName()) {\n\t\t\t\t*(CFStringRef *)outData = element->GetName();\n\t\t\t\tCFRetain (element->GetName());\n\t\t\t\tresult = noErr;\n\t\t\t} else\n\t\t\t\tresult = kAudioUnitErr_InvalidPropertyValue;\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ElementCount:\n\t\t*(UInt32 *)outData = GetScope(inScope).GetNumberOfElements();\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_Latency:\n\t\t*(Float64 *)outData = GetLatency();\n\t\tbreak;\n\n\tcase kAudioUnitProperty_TailTime:\n\t\tif (SupportsTail())\n\t\t\t*(Float64 *)outData = GetTailTime();\n\t\telse\n\t\t\tresult = kAudioUnitErr_InvalidProperty;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_MaximumFramesPerSlice:\n\t\t*(UInt32 *)outData = mMaxFramesPerSlice;\n\t\tbreak;\n\n\tcase kAudioUnitProperty_LastRenderError:\n\t\t*(OSStatus *)outData = mLastRenderError;\n\t\tmLastRenderError = 0;\n\t\tbreak;\n\n\tcase kAudioUnitProperty_SupportedNumChannels:\n\t\t{\n\t\t\tconst AUChannelInfo* infoPtr = NULL;\n\t\t\tUInt32 num = SupportedNumChannels (&infoPtr);\n\t\t\tif(num != 0 && infoPtr != NULL)\n\t\t\t\tmemcpy (outData, infoPtr, num * sizeof (AUChannelInfo));\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_SupportedChannelLayoutTags:\n\t\t{\n\t\t\tAudioChannelLayoutTag* ptr = outData ? static_cast<AudioChannelLayoutTag*>(outData) : NULL;\n\t\t\tUInt32 numLayouts = GetChannelLayoutTags (inScope, inElement, ptr);\n\t\t\tif (numLayouts == 0)\n\t\t\t\tresult = kAudioUnitErr_InvalidProperty;\n\t\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitProperty_AudioChannelLayout:\n\t{\t\n\t\tAudioChannelLayout* ptr = outData ? static_cast<AudioChannelLayout*>(outData) : NULL;\n\t\tBoolean writable;\n\t\tUInt32 dataSize = GetAudioChannelLayout(inScope, inElement, ptr, writable);\n\t\tif (!dataSize) {\n\t\t\tresult = kAudioUnitErr_InvalidProperty;\n\t\t}\n\t\tbreak;\n\t}\n\n#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5) || TARGET_OS_IPHONE\n\tcase kAudioUnitProperty_ShouldAllocateBuffer:\n\t{\n\t\tAUIOElement * element = GetIOElement(inScope, inElement);\n\t\t*(UInt32*)outData = element->WillAllocateBuffer();\n\t\tbreak;\n\t}\n#endif\n\n \tcase kAudioUnitProperty_ParameterValueStrings:\n\t\tresult = GetParameterValueStrings(inScope, inElement, (CFArrayRef *)outData);\n\t\tbreak;\n\t\t\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\tcase kAudioUnitProperty_FastDispatch:\n\t\tif (!IsCMgrObject()) result = kAudioUnitErr_InvalidProperty;\n\t\telse {\n\t\t\tswitch (inElement) {\n\t\t\tcase kAudioUnitGetParameterSelect:\n\t\t\t\t*(AudioUnitGetParameterProc *)outData = (AudioUnitGetParameterProc)CMgr_AudioUnitBaseGetParameter;\n\t\t\t\tbreak;\n\t\t\tcase kAudioUnitSetParameterSelect:\n\t\t\t\t*(AudioUnitSetParameterProc *)outData = (AudioUnitSetParameterProc)CMgr_AudioUnitBaseSetParameter;\n\t\t\t\tbreak;\n\t\t\tcase kAudioUnitRenderSelect:\n\t\t\t\tif (AudioUnitAPIVersion() > 1)\n\t\t\t\t\t*(AudioUnitRenderProc *)outData = (AudioUnitRenderProc)CMgr_AudioUnitBaseRender;\n\t\t\t\telse result = kAudioUnitErr_InvalidElement;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tresult = GetProperty(inID, inScope, inElement, outData);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_GetUIComponentList:\n\t\tGetUIComponentDescs ((ComponentDescription*)outData);\n\t\tbreak;\n#endif\n\n#if !CA_NO_AU_HOST_CALLBACKS\n\tcase kAudioUnitProperty_HostCallbacks:\n\t\tmemcpy(outData, &mHostCallbackInfo, sizeof(mHostCallbackInfo));\n\t\tbreak;\n#endif\n#if !CA_NO_AU_UI_FEATURES\n\tcase kAudioUnitProperty_IconLocation:\n\t\t{\n\t\t\tCFURLRef iconLocation = CopyIconLocation();\n\t\t\tif (iconLocation) {\n\t\t\t\t*(CFURLRef*)outData = iconLocation;\n\t\t\t} else\n\t\t\t\tresult = kAudioUnitErr_InvalidProperty;\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ContextName:\n\t\t*(CFStringRef *)outData = mContextName;\n\t\tif (mContextName) {\n\t\t\tCFRetain(mContextName);\n\t\t\t// retain CFString (if exists) since client will be responsible for its release\n\t\t\tresult = noErr;\n\t\t} else {\n\t\t\tresult = kAudioUnitErr_InvalidPropertyValue;\n\t\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitProperty_ParameterClumpName:\n\t\t{\n\t\t\tAudioUnitParameterNameInfo * ioClumpInfo = (AudioUnitParameterNameInfo*) outData;\n\t\t\tif (ioClumpInfo->inID == kAudioUnitClumpID_System)\t// this ID value is reserved\n\t\t\t\tresult = kAudioUnitErr_InvalidPropertyValue;\n\t\t\telse \n\t\t\t{\n\t\t\t\tresult = CopyClumpName(inScope, ioClumpInfo->inID, ioClumpInfo->inDesiredLength, &ioClumpInfo->outName);\n\t\t\t\t\t\n\t\t\t\t\t// this is provided for compatbility with existing implementations that don't know\n\t\t\t\t\t// about this new mechanism\n\t\t\t\tif (result == kAudioUnitErr_InvalidProperty)\n\t\t\t\t\tresult = GetProperty (inID, inScope, inElement, outData);\n\t\t\t}\t\n\t\t}\n\t\tbreak;\n\n#endif  // !CA_NO_AU_UI_FEATURES\n\n\tcase 'lrst' : // kAudioUnitProperty_LastRenderedSampleTime\n\t\t*(Float64*)outData = mCurrentRenderTime.mSampleTime;\n\t\tbreak;\n\n    case kAudioUnitProperty_NickName:\n        // Ownership follows Core Foundation's 'Copy Rule'\n        if (mNickName) CFRetain(mNickName);\n        *(CFStringRef*)outData = mNickName;\n        break;\n            \n\tdefault:\n\t\tresult = GetProperty(inID, inScope, inElement, outData);\n\t\tbreak;\n\t}\n\treturn result;\n}\n\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::DispatchSetProperty(\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinDataSize)\n{\n\tOSStatus result = noErr;\n\n\tswitch (inID) {\n\tcase kAudioUnitProperty_MakeConnection:\n\t\tca_require(inDataSize >= sizeof(AudioUnitConnection), InvalidPropertyValue);\n\t\t{\n\t\t\tAudioUnitConnection &connection = *(AudioUnitConnection *)inData;\n\t\t\tresult = SetConnection(connection);\n\t\t}\n\t\tbreak;\n\n\t\t\n\tcase kAudioUnitProperty_SetRenderCallback:\n\t\t{\n\t\t\tca_require(inDataSize >= sizeof(AURenderCallbackStruct), InvalidPropertyValue);\n\t\t\tca_require(AudioUnitAPIVersion() > 1, InvalidProperty);\n\t\t\tAURenderCallbackStruct &callback = *(AURenderCallbackStruct*)inData;\n\t\t\tresult = SetInputCallback(kAudioUnitProperty_SetRenderCallback, inElement, callback.inputProc, callback.inputProcRefCon);\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ElementCount:\n\t\tca_require(inDataSize == sizeof(UInt32), InvalidPropertyValue);\n\t\tca_require(BusCountWritable(inScope), NotWritable);\n\t\tresult = SetBusCount(inScope, *(UInt32*)inData);\n\t\tif (result == noErr) {\n\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t}\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_MaximumFramesPerSlice:\n\t\tca_require(inDataSize == sizeof(UInt32), InvalidPropertyValue);\n\t\tresult = CanSetMaxFrames();\n\t\tif (result) return result;\n\t\tSetMaxFramesPerSlice(*(UInt32 *)inData);\n\t\tbreak;\n\n\tcase kAudioUnitProperty_StreamFormat:\n\t\t{\n\t\t\tif (inDataSize < 36) goto InvalidPropertyValue;\n\t\t\tca_require(GetElement(inScope, inElement) != NULL, InvalidElement);\n\n\t\t\tCAStreamBasicDescription newDesc;\n\t\t\t\t// now we're going to be ultra conservative! because of discrepancies between\n\t\t\t\t// sizes of this struct based on aligment padding inconsistencies\n\t\t\tmemset (&newDesc, 0, sizeof(newDesc));\n\t\t\tmemcpy (&newDesc, inData, 36);\n\n\t\t\tca_require(ValidFormat(inScope, inElement, newDesc), InvalidFormat);\n\n\t\t\tconst CAStreamBasicDescription curDesc = GetStreamFormat(inScope, inElement);\n\t\t\t\n\t\t\tif ( !curDesc.IsEqual(newDesc, false) ) {\n\t\t\t\tca_require(IsStreamFormatWritable(inScope, inElement), NotWritable);\n\t\t\t\tresult = ChangeStreamFormat(inScope, inElement, curDesc, newDesc);\n\t\t\t}\n\t\t}\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_SampleRate:\n\t\t{\n\t\t\tca_require(inDataSize == sizeof(Float64), InvalidPropertyValue);\n\t\t\tca_require(GetElement(inScope, inElement) != NULL, InvalidElement);\n\n\t\t\tconst CAStreamBasicDescription curDesc = GetStreamFormat(inScope, inElement);\n\t\t\tCAStreamBasicDescription newDesc = curDesc;\n\t\t\tnewDesc.mSampleRate = *(Float64 *)inData;\n\t\t\t\n\t\t\tca_require(ValidFormat(inScope, inElement, newDesc), InvalidFormat);\n\t\t\t\n\t\t\tif ( !curDesc.IsEqual(newDesc, false) ) {\n\t\t\t\tca_require(IsStreamFormatWritable(inScope, inElement), NotWritable);\n\t\t\t\tresult = ChangeStreamFormat(inScope, inElement, curDesc, newDesc);\n\t\t\t}\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_AudioChannelLayout:\n\t\t{\n\t\t\tconst AudioChannelLayout *layout = static_cast<const AudioChannelLayout *>(inData);\n\t\t\tsize_t headerSize = sizeof(AudioChannelLayout) - sizeof(AudioChannelDescription);\n\t\t\t\n\t\t\tca_require(inDataSize >= headerSize + layout->mNumberChannelDescriptions * sizeof(AudioChannelDescription), InvalidPropertyValue);\n\t\t\tresult = SetAudioChannelLayout(inScope, inElement, layout);\n\t\t\tif (result == noErr)\n\t\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t\tbreak;\n\t\t}\n\t\n\tcase kAudioUnitProperty_ClassInfo:\n\t\tca_require(inDataSize == sizeof(CFPropertyListRef *), InvalidPropertyValue);\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tresult = RestoreState(*(CFPropertyListRef *)inData);\n\t\tbreak;\n\n\tcase kAudioUnitProperty_PresentPreset:\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n#ifndef __LP64__\n\tcase kAudioUnitProperty_CurrentPreset:\n#endif\n#endif\n\t\t{\n\t\t\tca_require(inDataSize == sizeof(AUPreset), InvalidPropertyValue);\n\t\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\t\tAUPreset & newPreset = *(AUPreset *)inData;\n\t\t\t\n\t\t\tif (newPreset.presetNumber >= 0)\n\t\t\t{\n\t\t\t\tresult = NewFactoryPresetSet(newPreset);\n\t\t\t\t// NewFactoryPresetSet SHOULD call SetAFactoryPreset if the preset is valid\n\t\t\t\t// from its own list of preset number->name\n\t\t\t\tif (!result)\n\t\t\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t\t}\n\t\t\telse if (newPreset.presetName)\n\t\t\t{\n\t\t\t\tresult = NewCustomPresetSet(newPreset);\n                if (!result)\n                    PropertyChanged(inID, inScope, inElement);\n\t\t\t}\n\t\t\telse\n\t\t\t\tresult = kAudioUnitErr_InvalidPropertyValue;\n\t\t}\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_ElementName:\n\t\t{\n\t\t\tca_require(GetElement(inScope, inElement) != NULL, InvalidElement);\n\t\t\tca_require(inDataSize == sizeof(CFStringRef), InvalidPropertyValue);\n\t\t\tAUElement * element = GetScope(inScope).GetElement (inElement);\n\t\t\telement->SetName (*(CFStringRef *)inData);\n\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t}\n\t\tbreak;\n\n#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5) || TARGET_OS_IPHONE\n\tcase kAudioUnitProperty_ShouldAllocateBuffer:\n\t\t{\n\t\t\tca_require((inScope == kAudioUnitScope_Input || inScope == kAudioUnitScope_Output), InvalidScope);\n\t\t\tca_require(GetElement(inScope, inElement) != NULL, InvalidElement);\n\t\t\tca_require(inDataSize == sizeof(UInt32), InvalidPropertyValue);\n\t\t\tca_require(!IsInitialized(), Initialized);\n\n\t\t\tAUIOElement * element = GetIOElement(inScope, inElement);\n\t\t\telement->SetWillAllocateBuffer(*(UInt32 *)inData != 0);\n\t\t}\n\t\tbreak;\n#endif\n\n#if !CA_NO_AU_HOST_CALLBACKS\n\tcase kAudioUnitProperty_HostCallbacks:\n\t{\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tUInt32 availSize = std::min(inDataSize, (UInt32)sizeof(HostCallbackInfo));\n\t\tbool hasChanged = !memcmp (&mHostCallbackInfo, inData, availSize);\n\t\tmemset (&mHostCallbackInfo, 0, sizeof (mHostCallbackInfo));\n\t\tmemcpy (&mHostCallbackInfo, inData, availSize);\n\t\tif (hasChanged)\n\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\tbreak;\n\t}\n#endif\n#if !CA_NO_AU_UI_FEATURES\n\tcase kAudioUnitProperty_SetExternalBuffer:\n\t\tca_require(inDataSize >= sizeof(AudioUnitExternalBuffer), InvalidPropertyValue);\n\t\tca_require(IsInitialized(), Uninitialized);\n\t\t{\n\t\t\tAudioUnitExternalBuffer &buf = *(AudioUnitExternalBuffer*)inData;\n\t\t\tif (intptr_t(buf.buffer) & 0x0F) result = kAudio_ParamError;\n\t\t\telse if (inScope == kAudioUnitScope_Input) {\n\t\t\t\tAUInputElement *input = GetInput(inElement);\n\t\t\t\tinput->UseExternalBuffer(buf);\n\t\t\t} else {\n\t\t\t\tAUOutputElement *output = GetOutput(inElement);\n\t\t\t\toutput->UseExternalBuffer(buf);\n\t\t\t}\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitProperty_ContextName:\n\t\t{\n\t\t\tca_require(inDataSize == sizeof(CFStringRef), InvalidPropertyValue);\n\t\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\t\tCFStringRef inStr = *(CFStringRef *)inData;\n\t\t\tif (mContextName) CFRelease(mContextName);\n\t\t\tif (inStr) CFRetain(inStr);\n\t\t\tmContextName = inStr;\n\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t}\n\t\tbreak;\n\n#endif // !CA_NO_AU_UI_FEATURES\n\t\n    case kAudioUnitProperty_NickName:\n    {\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n        ca_require(inDataSize == sizeof(CFStringRef), InvalidPropertyValue);\n        CFStringRef inStr = *(CFStringRef *)inData;\n        if (mNickName) CFRelease(mNickName);\n        if (inStr) CFRetain(inStr);\n        mNickName = inStr;\n        PropertyChanged(inID, inScope, inElement);\n        break;\n    }\n            \n\tdefault:\n\t\tresult = SetProperty(inID, inScope, inElement, inData, inDataSize);\n\t\tif (result == noErr)\n\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t\n\t\tbreak;\n\t}\n\treturn result;\nNotWritable:\n\treturn kAudioUnitErr_PropertyNotWritable;\nInvalidFormat:\n\treturn kAudioUnitErr_FormatNotSupported;\n#if !CA_NO_AU_UI_FEATURES\nUninitialized:\n\treturn kAudioUnitErr_Uninitialized;\n#endif\n#if (MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5) || CA_USE_AUDIO_PLUGIN_ONLY\nInitialized:\n\treturn kAudioUnitErr_Initialized;\n#endif\nInvalidScope:\n\treturn kAudioUnitErr_InvalidScope;\nInvalidProperty:\n\treturn kAudioUnitErr_InvalidProperty;\nInvalidPropertyValue:\n\treturn kAudioUnitErr_InvalidPropertyValue;\nInvalidElement:\n\treturn kAudioUnitErr_InvalidElement;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::DispatchRemovePropertyValue (AudioUnitPropertyID\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement)\n{\n\tOSStatus result = noErr;\n\tswitch (inID)\n\t{\n\tcase kAudioUnitProperty_AudioChannelLayout:\n\t{\n\t\tresult = RemoveAudioChannelLayout(inScope, inElement);\n\t\tif (result == noErr)\n\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\tbreak;\n\t}\n\t\n#if !CA_NO_AU_HOST_CALLBACKS\n\tcase kAudioUnitProperty_HostCallbacks:\n\t{\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tbool hasValue = false;\n\t\tvoid* ptr = &mHostCallbackInfo;\n\t\tfor (unsigned int i = 0; i <  sizeof (HostCallbackInfo); ++i) {\n\t\t\tif (static_cast<char*>(ptr)[i]) {\n\t\t\t\thasValue = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (hasValue) {\n\t\t\tmemset (&mHostCallbackInfo, 0, sizeof (HostCallbackInfo));\n\t\t\tPropertyChanged(inID, inScope, inElement);\n\t\t}\n\t\tbreak;\n\t}\n#endif\n#if !CA_NO_AU_UI_FEATURES\n\tcase kAudioUnitProperty_ContextName:\n\t\tif (mContextName) CFRelease(mContextName);\n\t\tmContextName = NULL;\n\t\tresult = noErr;\n\t\tbreak;\n\t\n#endif // !CA_NO_AU_UI_FEATURES\n\n    case kAudioUnitProperty_NickName:\n    {\n        if(inScope == kAudioUnitScope_Global) {\n            if (mNickName) CFRelease(mNickName);\n            mNickName = NULL;\n            PropertyChanged(inID, inScope, inElement);\n        } else {\n            result = kAudioUnitErr_InvalidScope;\n        }\n        break;\n    }\n\n\tdefault:\n\t\tresult = RemovePropertyValue (inID, inScope, inElement);\t\t\n\t\tbreak;\n\t}\n\t\t\n\treturn result;\n#if !CA_NO_AU_UI_FEATURES || !CA_NO_AU_HOST_CALLBACKS\nInvalidScope:\n\treturn kAudioUnitErr_InvalidScope;\n#endif\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::GetPropertyInfo(\t\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\t\toutWritable)\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::GetProperty(\t\t\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\toutData)\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::SetProperty(\t\t\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinDataSize)\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::RemovePropertyValue (\tAudioUnitPropertyID\t\t \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement)\n{\n\treturn kAudioUnitErr_InvalidPropertyValue;\n}\n\t\t\t\t\t\t\t\t\t\t\t\t\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::AddPropertyListener(\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitPropertyListenerProc\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinProcRefCon)\n{\n\tPropertyListener pl;\n\t\n\tpl.propertyID = inID;\n\tpl.listenerProc = inProc;\n\tpl.listenerRefCon = inProcRefCon;\n\t\n\tif (mPropertyListeners.empty())\n\t\tmPropertyListeners.reserve(32);\n\tmPropertyListeners.push_back(pl);\n\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::RemovePropertyListener(\t\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitPropertyListenerProc\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinProcRefCon,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\t\trefConSpecified)\n{\n\t// iterate in reverse so that it's safe to erase in the middle of the vector\n\tfor (int i = (int)mPropertyListeners.size(); --i >=0; ) {\n\t\tPropertyListeners::iterator it = mPropertyListeners.begin() + i;\n\t\tif ((*it).propertyID == inID && (*it).listenerProc == inProc && (!refConSpecified || (*it).listenerRefCon == inProcRefCon))\n\t\t\tmPropertyListeners.erase(it);\n\t}\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\t\tAUBase::PropertyChanged(\t\t\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement)\n{\n\tfor (PropertyListeners::iterator it = mPropertyListeners.begin(); it != mPropertyListeners.end(); ++it)\n\t\tif ((*it).propertyID == inID)\n\t\t\t((*it).listenerProc)((*it).listenerRefCon, mComponentInstance, inID, inScope, inElement);\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::SetRenderNotification(\tAURenderCallback\t\t \t\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinRefCon)\n{\n\tif (inProc == NULL)\n\t\treturn kAudio_ParamError;\n\n\tmRenderCallbacksTouched = true;\n\tmRenderCallbacks.deferred_add(RenderCallback(inProc, inRefCon));\n\t\t\t// this will do nothing if it's already in the list\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::RemoveRenderNotification(\tAURenderCallback\t\t\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\tinRefCon)\n{\n\tmRenderCallbacks.deferred_remove(RenderCallback(inProc, inRefCon));\n\treturn noErr;\t// error?\n}\n\n//_____________________________________________________________________________\n//\nOSStatus \tAUBase::GetParameter(\t\t\tAudioUnitParameterID\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\t\toutValue)\n{\n\tAUElement *elem = SafeGetElement(inScope, inElement);\n\toutValue = elem->GetParameter(inID);\n\treturn noErr;\n}\n\n\t\t\t\t\t\t\t\t\t\t\t\n//_____________________________________________________________________________\n//\nOSStatus \tAUBase::SetParameter(\t\t\tAudioUnitParameterID\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue\t\t\tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBufferOffsetInFrames)\n{\n\tAUElement *elem = SafeGetElement(inScope, inElement);\n\telem->SetParameter(inID, inValue);\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus \tAUBase::ScheduleParameter (\tconst AudioUnitParameterEvent \t\t*inParameterEvent,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumEvents)\n{\n\tbool canScheduleParameters = CanScheduleParameters();\n\t\t\n\tfor (UInt32 i = 0; i < inNumEvents; ++i) \n\t{\n\t\tif (inParameterEvent[i].eventType == kParameterEvent_Immediate)\n\t\t{\n\t\t\tSetParameter (inParameterEvent[i].parameter,\n\t\t\t\t\t\t\tinParameterEvent[i].scope, \n\t\t\t\t\t\t\tinParameterEvent[i].element,\n\t\t\t\t\t\t\tinParameterEvent[i].eventValues.immediate.value, \n\t\t\t\t\t\t\tinParameterEvent[i].eventValues.immediate.bufferOffset);\n\t\t}\n\t\tif (canScheduleParameters) {\n\t\t\tmParamList.push_back (inParameterEvent[i]);\n\t\t}\n\t}\n\t\n\treturn noErr;\n}\n\n// ____________________________________________________________________________\n//\nstatic bool SortParameterEventList(const AudioUnitParameterEvent &ev1, const AudioUnitParameterEvent &ev2 )\n{\n\tint offset1 = ev1.eventType == kParameterEvent_Immediate ?  ev1.eventValues.immediate.bufferOffset : ev1.eventValues.ramp.startBufferOffset;\n\tint offset2 = ev2.eventType == kParameterEvent_Immediate ?  ev2.eventValues.immediate.bufferOffset : ev2.eventValues.ramp.startBufferOffset;\n\n\tif(offset1 < offset2) return true;\n\treturn false;\n}\n\n\n// ____________________________________________________________________________\n//\nOSStatus \tAUBase::ProcessForScheduledParams(\tParameterEventList\t\t&inParamList,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*inUserData )\n{\n\tOSStatus result = noErr;\n\t\n\tint totalFramesToProcess = inFramesToProcess;\n\t\n\tint framesRemaining = totalFramesToProcess;\n\n\tunsigned int currentStartFrame = 0;\t// start of the whole buffer\n\n\n\n\t// sort the ParameterEventList by startBufferOffset\n\tstd::sort(inParamList.begin(), inParamList.end(), SortParameterEventList);\n\n\tParameterEventList::iterator iter = inParamList.begin();\n\t\n\t\n\twhile(framesRemaining > 0 )\n\t{\n\t\t// first of all, go through the ramped automation events and find out where the next\n\t\t// division of our whole buffer will be\n\t\t\n\t\tint currentEndFrame = totalFramesToProcess;\t// start out assuming we'll process all the way to\n\t\t\t\t\t\t\t\t\t\t\t\t\t// the end of the buffer\n\t\t\n\t\titer = inParamList.begin();\n\t\t\n\t\t// find the next break point\n\t\twhile(iter != inParamList.end() )\n\t\t{\n\t\t\tAudioUnitParameterEvent &event = *iter;\n\t\t\t\n\t\t\tint offset = event.eventType == kParameterEvent_Immediate ?  event.eventValues.immediate.bufferOffset : event.eventValues.ramp.startBufferOffset;\n\n\t\t\tif(offset > (int)currentStartFrame && offset < currentEndFrame )\n\t\t\t{\n\t\t\t\tcurrentEndFrame = offset;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// consider ramp end to be a possible choice (there may be gaps in the supplied ramp events)\n\t\t\tif(event.eventType == kParameterEvent_Ramped )\n\t\t\t{\n\t\t\t\toffset = event.eventValues.ramp.startBufferOffset + event.eventValues.ramp.durationInFrames;\n\t\n\t\t\t\tif(offset > (int)currentStartFrame && offset < currentEndFrame )\n\t\t\t\t{\n\t\t\t\t\tcurrentEndFrame = offset;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\titer++;\n\t\t}\n\t\n\t\tint framesThisTime = currentEndFrame - currentStartFrame;\n\n\t\t// next, setup the parameter maps to be current for the ramp parameters active during \n\t\t// this time segment...\n\t\t\n\t\tfor(ParameterEventList::iterator iter2 = inParamList.begin(); iter2 != inParamList.end(); iter2++ )\n\t\t{\n\t\t\tAudioUnitParameterEvent &event = *iter2;\n\t\t\t\n\t\t\tbool eventFallsInSlice;\n\t\t\t\n\t\t\t\n\t\t\tif(event.eventType == kParameterEvent_Ramped)\n\t\t\t\teventFallsInSlice = event.eventValues.ramp.startBufferOffset < currentEndFrame \n\t\t\t\t\t&& event.eventValues.ramp.startBufferOffset + event.eventValues.ramp.durationInFrames > currentStartFrame;\n\t\t\telse /* kParameterEvent_Immediate */\n\t\t\t\t// actually, for the same parameter, there may be future immediate events which override this one,\n\t\t\t\t// but it's OK since the event list is sorted in time order, we're guaranteed to end up with the current one\n\t\t\t\teventFallsInSlice = event.eventValues.immediate.bufferOffset <= currentStartFrame;\n\t\t\t\t\n\t\t\tif(eventFallsInSlice)\n\t\t\t{\n\t\t\t\tAUElement *element = GetElement(event.scope, event.element );\n\t\t\t\t\n\t\t\t\tif(element) element->SetScheduledEvent(\tevent.parameter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tevent,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentStartFrame,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentEndFrame - currentStartFrame );\n\t\t\t}\n\t\t}\n\n\n\n\t\t// Finally, actually do the processing for this slice.....\n\t\t\n\t\tresult = ProcessScheduledSlice(\tinUserData,\n\t\t\t\t\t\t\t\t\t\tcurrentStartFrame,\n\t\t\t\t\t\t\t\t\t\tframesThisTime,\n\t\t\t\t\t\t\t\t\t\tinFramesToProcess );\n\t\t\t\t\t\t\t\t\n\t\tif(result != noErr) break;\n\t\t\n\t\tframesRemaining -= framesThisTime;\n\t\tcurrentStartFrame = currentEndFrame;\t// now start from where we left off last time\n\t}\n\t\n\treturn result;\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\t\tAUBase::SetWantsRenderThreadID (bool inFlag)\n{\n\tif (inFlag == mWantsRenderThreadID)\t\n\t\treturn;\n\t\n\tmWantsRenderThreadID = inFlag;\n\tif (!mWantsRenderThreadID)\n\t\tmRenderThreadID = NULL;\n}\n\n//_____________________________________________________________________________\n//\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::DoRender(\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\tioData)\n{\n\tOSStatus theError;\n\tRenderCallbackList::iterator rcit;\n\t\n\tAUTRACE(kCATrace_AUBaseRenderStart, mComponentInstance, (uintptr_t)this, inBusNumber, inFramesToProcess, (uintptr_t)ioData.mBuffers[0].mData);\n\tDISABLE_DENORMALS\n\t\n\ttry {\n\t\tca_require(IsInitialized(), Uninitialized);\n\t\tca_require(mAudioUnitAPIVersion >= 2, ParamErr);\n\t\tif (inFramesToProcess > mMaxFramesPerSlice) {\n\t\t\tstatic time_t lastTimeMessagePrinted = 0;\n\t\t\ttime_t now = time(NULL);\n\t\t\tif (now != lastTimeMessagePrinted) {\n\t\t\t\tlastTimeMessagePrinted = now;\n\t\t\t\tsyslog(LOG_ERR, \"kAudioUnitErr_TooManyFramesToProcess : inFramesToProcess=%u, mMaxFramesPerSlice=%u\", (unsigned)inFramesToProcess, (unsigned)mMaxFramesPerSlice);\n\t\t\t\tDebugMessageN4(\"%s:%d inFramesToProcess=%u, mMaxFramesPerSlice=%u; TooManyFrames\", __FILE__, __LINE__, (unsigned)inFramesToProcess, (unsigned)mMaxFramesPerSlice);\n\t\t\t}\n\t\t\tgoto TooManyFrames;\n\t\t}\n\t\tca_require (!UsesFixedBlockSize() || inFramesToProcess == GetMaxFramesPerSlice(), ParamErr);\n\n\t\tAUOutputElement *output = GetOutput(inBusNumber);\t// will throw if non-existant\n\t\tif (output->GetStreamFormat().NumberChannelStreams() != ioData.mNumberBuffers) {\n\t\t\tDebugMessageN4(\"%s:%d ioData.mNumberBuffers=%u, output->GetStreamFormat().NumberChannelStreams()=%u; kAudio_ParamError\",\n\t\t\t\t__FILE__, __LINE__, (unsigned)ioData.mNumberBuffers, (unsigned)output->GetStreamFormat().NumberChannelStreams());\n\t\t\tgoto ParamErr;\n\t\t}\n\n\t\tunsigned expectedBufferByteSize = inFramesToProcess * output->GetStreamFormat().mBytesPerFrame;\n\t\tfor (unsigned ibuf = 0; ibuf < ioData.mNumberBuffers; ++ibuf) {\n\t\t\tAudioBuffer &buf = ioData.mBuffers[ibuf];\n\t\t\tif (buf.mData != NULL) {\n\t\t\t\t// only care about the size if the buffer is non-null\n\t\t\t\tif (buf.mDataByteSize < expectedBufferByteSize) {\n\t\t\t\t\t// if the buffer is too small, we cannot render safely. kAudio_ParamError.\n\t\t\t\t\tDebugMessageN7(\"%s:%d %u frames, %u bytes/frame, expected %u-byte buffer; ioData.mBuffers[%u].mDataByteSize=%u; kAudio_ParamError\",\n\t\t\t\t\t\t__FILE__, __LINE__, (unsigned)inFramesToProcess, (unsigned)output->GetStreamFormat().mBytesPerFrame, expectedBufferByteSize, ibuf, (unsigned)buf.mDataByteSize);\n\t\t\t\t\tgoto ParamErr;\n\t\t\t\t}\n\t\t\t\t// Some clients incorrectly pass bigger buffers than expectedBufferByteSize.\n\t\t\t\t// We will generally set the buffer size at the end of rendering, before we return.\n\t\t\t\t// However we should ensure that no one, DURING rendering, READS a\n\t\t\t\t// potentially incorrect size. This can lead to doing too much work, or\n\t\t\t\t// reading past the end of an input buffer into unmapped memory.\n\t\t\t\tbuf.mDataByteSize = expectedBufferByteSize;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (WantsRenderThreadID())\n\t\t{\n\t\t\t#if TARGET_OS_MAC\n\t\t\t\tmRenderThreadID = pthread_self();\n\t\t\t#elif TARGET_OS_WIN32\n\t\t\t\tmRenderThreadID = GetCurrentThreadId();\n\t\t\t#endif\n\t\t}\n\t\t\n\t\tAudioUnitRenderActionFlags flags;\n\t\tif (mRenderCallbacksTouched) {\n\t\t\tmRenderCallbacks.update();\n\t\t\tflags = ioActionFlags | kAudioUnitRenderAction_PreRender;\n\t\t\tfor (rcit = mRenderCallbacks.begin(); rcit != mRenderCallbacks.end(); ++rcit) {\n\t\t\t\tRenderCallback &rc = *rcit;\n\t\t\t\tAUTRACE(kCATrace_AUBaseRenderCallbackStart, mComponentInstance, (intptr_t)this, (intptr_t)rc.mRenderNotify, 1, 0);\n\t\t\t\t(*(AURenderCallback)rc.mRenderNotify)(rc.mRenderNotifyRefCon, \n\t\t\t\t\t\t\t\t&flags,\n\t\t\t\t\t\t\t\t&inTimeStamp, inBusNumber, inFramesToProcess, &ioData);\n\t\t\t\tAUTRACE(kCATrace_AUBaseRenderCallbackEnd, mComponentInstance, (intptr_t)this, (intptr_t)rc.mRenderNotify, 1, 0);\n\t\t\t}\n\t\t}\n\t\t\n\t\ttheError = DoRenderBus(ioActionFlags, inTimeStamp, inBusNumber, output, inFramesToProcess, ioData);\n\t\t\n\t\tif (mRenderCallbacksTouched) {\n\t\t\tflags = ioActionFlags | kAudioUnitRenderAction_PostRender;\n\t\t\t\n\t\t\tif (SetRenderError (theError)) {\n\t\t\t\tflags |= kAudioUnitRenderAction_PostRenderError;\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor (rcit = mRenderCallbacks.begin(); rcit != mRenderCallbacks.end(); ++rcit) {\n\t\t\t\tRenderCallback &rc = *rcit;\n\t\t\t\tAUTRACE(kCATrace_AUBaseRenderCallbackStart, mComponentInstance, (intptr_t)this, (intptr_t)rc.mRenderNotify, 2, 0);\n\t\t\t\t(*(AURenderCallback)rc.mRenderNotify)(rc.mRenderNotifyRefCon, \n\t\t\t\t\t\t\t\t&flags,\n\t\t\t\t\t\t\t\t&inTimeStamp, inBusNumber, inFramesToProcess, &ioData);\n\t\t\t\tAUTRACE(kCATrace_AUBaseRenderCallbackEnd, mComponentInstance, (intptr_t)this, (intptr_t)rc.mRenderNotify, 2, 0);\n\t\t\t}\n\t\t}\n\n\t\t// The vector's being emptied\n\t\t// because these events should only apply to this Render cycle, so anything\n\t\t// left over is from a preceding cycle and should be dumped.  New scheduled\n\t\t// parameters must be scheduled from the next pre-render callback.\n\t\tif (!mParamList.empty())\n\t\t\tmParamList.clear();\n\n\t}\n\tcatch (OSStatus err) {\n\t\ttheError = err;\n\t\tgoto errexit;\n\t}\n\tcatch (...) {\n\t\ttheError = -1;\n\t\tgoto errexit;\n\t}\ndone:\t\n\tRESTORE_DENORMALS\n\tAUTRACE(kCATrace_AUBaseRenderEnd, mComponentInstance, (intptr_t)this, theError, ioActionFlags, CATrace::ablData(ioData));\n\t\n\treturn theError;\n\t\nUninitialized:\ttheError = kAudioUnitErr_Uninitialized;\t\t\t\tgoto errexit;\nParamErr:\t\ttheError = kAudio_ParamError;\t\t\t\t\t\tgoto errexit;\nTooManyFrames:\ttheError = kAudioUnitErr_TooManyFramesToProcess;\tgoto errexit;\nerrexit:\n\tDebugMessageN2 (\"  from %s, render err: %d\", GetLoggingString(), (int)theError);\n\tSetRenderError(theError);\n\tgoto done;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\tAUBase::DoProcess (\tAudioUnitRenderActionFlags  &\t\tioActionFlags,\n\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\t\tioData)\n{\n\tOSStatus theError;\n\tAUTRACE(kCATrace_AUBaseRenderStart, mComponentInstance, (intptr_t)this, -1, inFramesToProcess, 0);\n\tDISABLE_DENORMALS\n\n\ttry {\t\t\n\t\n\t\tif (!(ioActionFlags & (1 << 9)/*kAudioUnitRenderAction_DoNotCheckRenderArgs*/)) {\n\t\t\tca_require(IsInitialized(), Uninitialized);\n\t\t\tca_require(inFramesToProcess <= mMaxFramesPerSlice, TooManyFrames);\n\t\t\tca_require(!UsesFixedBlockSize() || inFramesToProcess == GetMaxFramesPerSlice(), ParamErr);\n\n\t\t\tAUInputElement *input = GetInput(0);\t// will throw if non-existant\n\t\t\tif (input->GetStreamFormat().NumberChannelStreams() != ioData.mNumberBuffers) {\n\t\t\t\tDebugMessageN4(\"%s:%d ioData.mNumberBuffers=%u, input->GetStreamFormat().NumberChannelStreams()=%u; kAudio_ParamError\",\n\t\t\t\t\t__FILE__, __LINE__, (unsigned)ioData.mNumberBuffers, (unsigned)input->GetStreamFormat().NumberChannelStreams());\n\t\t\t\tgoto ParamErr;\n\t\t\t}\n\n\t\t\tunsigned expectedBufferByteSize = inFramesToProcess * input->GetStreamFormat().mBytesPerFrame;\n\t\t\tfor (unsigned ibuf = 0; ibuf < ioData.mNumberBuffers; ++ibuf) {\n\t\t\t\tAudioBuffer &buf = ioData.mBuffers[ibuf];\n\t\t\t\tif (buf.mData != NULL) {\n\t\t\t\t\t// only care about the size if the buffer is non-null\n\t\t\t\t\tif (buf.mDataByteSize < expectedBufferByteSize) {\n\t\t\t\t\t\t// if the buffer is too small, we cannot render safely. kAudio_ParamError.\n\t\t\t\t\t\tDebugMessageN7(\"%s:%d %u frames, %u bytes/frame, expected %u-byte buffer; ioData.mBuffers[%u].mDataByteSize=%u; kAudio_ParamError\",\n\t\t\t\t\t\t\t__FILE__, __LINE__, (unsigned)inFramesToProcess, (unsigned)input->GetStreamFormat().mBytesPerFrame, expectedBufferByteSize, ibuf, (unsigned)buf.mDataByteSize);\n\t\t\t\t\t\tgoto ParamErr;\n\t\t\t\t\t}\n\t\t\t\t\t// Some clients incorrectly pass bigger buffers than expectedBufferByteSize.\n\t\t\t\t\t// We will generally set the buffer size at the end of rendering, before we return.\n\t\t\t\t\t// However we should ensure that no one, DURING rendering, READS a\n\t\t\t\t\t// potentially incorrect size. This can lead to doing too much work, or\n\t\t\t\t\t// reading past the end of an input buffer into unmapped memory.\n\t\t\t\t\tbuf.mDataByteSize = expectedBufferByteSize;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (WantsRenderThreadID())\n\t\t{\n\t\t\t#if TARGET_OS_MAC\n\t\t\t\tmRenderThreadID = pthread_self();\n\t\t\t#elif TARGET_OS_WIN32\n\t\t\t\tmRenderThreadID = GetCurrentThreadId();\n\t\t\t#endif\n\t\t}\n\t\t\n\t\tif (NeedsToRender (inTimeStamp)) {\n\t\t\ttheError = ProcessBufferLists (ioActionFlags, ioData, ioData, inFramesToProcess);\n\t\t} else\n\t\t\ttheError = noErr;\n\t\t\t\n\t}\n\tcatch (OSStatus err) {\n\t\ttheError = err;\n\t\tgoto errexit;\n\t}\n\tcatch (...) {\n\t\ttheError = -1;\n\t\tgoto errexit;\n\t}\ndone:\t\n\tRESTORE_DENORMALS\n\tAUTRACE(kCATrace_AUBaseRenderEnd, mComponentInstance, (intptr_t)this, theError, ioActionFlags, CATrace::ablData(ioData));\n\t\n\treturn theError;\n\t\nUninitialized:\ttheError = kAudioUnitErr_Uninitialized;\t\t\t\tgoto errexit;\nParamErr:\t\ttheError = kAudio_ParamError;\t\t\t\t\t\tgoto errexit;\nTooManyFrames:\ttheError = kAudioUnitErr_TooManyFramesToProcess;\tgoto errexit;\nerrexit:\n\tDebugMessageN2 (\"  from %s, process err: %d\", GetLoggingString(), (int)theError);\n\tSetRenderError(theError);\n\tgoto done;\n}\n\nOSStatus\tAUBase::DoProcessMultiple (\tAudioUnitRenderActionFlags  & ioActionFlags,\n\t\t\t\t\t\t\t   const AudioTimeStamp &\t\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t   UInt32\t\t\t\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t   UInt32\t\t\t\t\t\t\t\tinNumberInputBufferLists,\n\t\t\t\t\t\t\t   const AudioBufferList **\t\t\t\tinInputBufferLists,\n\t\t\t\t\t\t\t   UInt32\t\t\t\t\t\t\t\tinNumberOutputBufferLists,\n\t\t\t\t\t\t\t   AudioBufferList **\t\t\t\t\tioOutputBufferLists)\n{\n\tOSStatus theError;\n\tDISABLE_DENORMALS\n\t\n\ttry {\n\t\t\n\t\tif (!(ioActionFlags & (1 << 9)/*kAudioUnitRenderAction_DoNotCheckRenderArgs*/)) {\n\t\t\tca_require(IsInitialized(), Uninitialized);\n\t\t\tca_require(inFramesToProcess <= mMaxFramesPerSlice, TooManyFrames);\n\t\t\tca_require (!UsesFixedBlockSize() || inFramesToProcess == GetMaxFramesPerSlice(), ParamErr);\n\t\t\t\n\t\t\tfor (unsigned ibl = 0; ibl < inNumberInputBufferLists; ++ibl) {\n\t\t\t\tif (inInputBufferLists[ibl] != NULL) {\n\t\t\t\t\tAUInputElement *input = GetInput(ibl);\t// will throw if non-existant\n\t\t\t\t\tunsigned expectedBufferByteSize = inFramesToProcess * input->GetStreamFormat().mBytesPerFrame;\n\t\t\t\t\t\n\t\t\t\t\tif (input->GetStreamFormat().NumberChannelStreams() != inInputBufferLists[ibl]->mNumberBuffers) {\n\t\t\t\t\t\tDebugMessageN5(\"%s:%d inInputBufferLists[%u]->mNumberBuffers=%u, input->GetStreamFormat().NumberChannelStreams()=%u; kAudio_ParamError\",\n\t\t\t\t\t\t\t\t\t   __FILE__, __LINE__, ibl, (unsigned)inInputBufferLists[ibl]->mNumberBuffers, (unsigned)input->GetStreamFormat().NumberChannelStreams());\n\t\t\t\t\t\tgoto ParamErr;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tfor (unsigned ibuf = 0; ibuf < inInputBufferLists[ibl]->mNumberBuffers; ++ibuf) {\n\t\t\t\t\t\tconst AudioBuffer &buf = inInputBufferLists[ibl]->mBuffers[ibuf];\n\t\t\t\t\t\tif (buf.mData != NULL) {\n\t\t\t\t\t\t\tif (buf.mDataByteSize < expectedBufferByteSize) {\n\t\t\t\t\t\t\t\t// the buffer is too small\n\t\t\t\t\t\t\t\tDebugMessageN8(\"%s:%d %u frames, %u bytes/frame, expected %u-byte buffer; inInputBufferLists[%u].mBuffers[%u].mDataByteSize=%u; kAudio_ParamError\",\n\t\t\t\t\t\t\t\t\t\t\t   __FILE__, __LINE__, (unsigned)inFramesToProcess, (unsigned)input->GetStreamFormat().mBytesPerFrame, expectedBufferByteSize, ibl, ibuf, (unsigned)buf.mDataByteSize);\n\t\t\t\t\t\t\t\tgoto ParamErr;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// the buffer must exist\n\t\t\t\t\t\t\tgoto ParamErr;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// skip NULL input audio buffer list\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tfor (unsigned obl = 0; obl < inNumberOutputBufferLists; ++obl) {\n\t\t\t\tif (ioOutputBufferLists[obl] != NULL) {\n\t\t\t\t\tAUOutputElement *output = GetOutput(obl);\t// will throw if non-existant\n\t\t\t\t\tunsigned expectedBufferByteSize = inFramesToProcess * output->GetStreamFormat().mBytesPerFrame;\n\n\t\t\t\t\tif (output->GetStreamFormat().NumberChannelStreams() != ioOutputBufferLists[obl]->mNumberBuffers) {\n\t\t\t\t\t\tDebugMessageN5(\"%s:%d ioOutputBufferLists[%u]->mNumberBuffers=%u, output->GetStreamFormat().NumberChannelStreams()=%u; kAudio_ParamError\",\n\t\t\t\t\t\t\t\t\t   __FILE__, __LINE__, obl, (unsigned)ioOutputBufferLists[obl]->mNumberBuffers, (unsigned)output->GetStreamFormat().NumberChannelStreams());\n\t\t\t\t\t\tgoto ParamErr;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tfor (unsigned obuf = 0; obuf < ioOutputBufferLists[obl]->mNumberBuffers; ++obuf) {\n\t\t\t\t\t\tAudioBuffer &buf = ioOutputBufferLists[obl]->mBuffers[obuf];\n\t\t\t\t\t\tif (buf.mData != NULL) {\n\t\t\t\t\t\t\t// only care about the size if the buffer is non-null\n\t\t\t\t\t\t\tif (buf.mDataByteSize < expectedBufferByteSize) {\n\t\t\t\t\t\t\t\t// if the buffer is too small, we cannot render safely. kAudio_ParamError.\n\t\t\t\t\t\t\t\tDebugMessageN8(\"%s:%d %u frames, %u bytes/frame, expected %u-byte buffer; ioOutputBufferLists[%u]->mBuffers[%u].mDataByteSize=%u; kAudio_ParamError\",\n\t\t\t\t\t\t\t\t\t\t\t   __FILE__, __LINE__, (unsigned)inFramesToProcess, (unsigned)output->GetStreamFormat().mBytesPerFrame, expectedBufferByteSize, obl, obuf, (unsigned)buf.mDataByteSize);\n\t\t\t\t\t\t\t\tgoto ParamErr;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Some clients incorrectly pass bigger buffers than expectedBufferByteSize.\n\t\t\t\t\t\t\t// We will generally set the buffer size at the end of rendering, before we return.\n\t\t\t\t\t\t\t// However we should ensure that no one, DURING rendering, READS a\n\t\t\t\t\t\t\t// potentially incorrect size. This can lead to doing too much work, or\n\t\t\t\t\t\t\t// reading past the end of an input buffer into unmapped memory.\n\t\t\t\t\t\t\tbuf.mDataByteSize = expectedBufferByteSize;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// skip NULL output audio buffer list\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (WantsRenderThreadID())\n\t\t{\n#if TARGET_OS_MAC\n\t\t\tmRenderThreadID = pthread_self();\n#elif TARGET_OS_WIN32\n\t\t\tmRenderThreadID = GetCurrentThreadId();\n#endif\n\t\t}\n\t\t\n\t\tif (NeedsToRender (inTimeStamp)) {\n\t\t\ttheError = ProcessMultipleBufferLists (ioActionFlags, inFramesToProcess, inNumberInputBufferLists, inInputBufferLists, inNumberOutputBufferLists, ioOutputBufferLists);\n\t\t} else\n\t\t\ttheError = noErr;\n\t}\n\tcatch (OSStatus err) {\n\t\ttheError = err;\n\t\tgoto errexit;\n\t}\n\tcatch (...) {\n\t\ttheError = -1;\n\t\tgoto errexit;\n\t}\ndone:\t\n\tRESTORE_DENORMALS\n\t\n\treturn theError;\n\t\nUninitialized:\ttheError = kAudioUnitErr_Uninitialized;\t\t\t\tgoto errexit;\nParamErr:\t\ttheError = kAudio_ParamError;\t\t\t\t\t\tgoto errexit;\nTooManyFrames:\ttheError = kAudioUnitErr_TooManyFramesToProcess;\tgoto errexit;\nerrexit:\n\tDebugMessageN2 (\"  from %s, processmultiple err: %d\", GetLoggingString(), (int)theError);\n\tSetRenderError(theError);\n\tgoto done;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::SetInputCallback(\t\tUInt32\t\t\t\t\t\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement, \n\t\t\t\t\t\t\t\t\t\t\t\t\tAURenderCallback\t\t\t\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinRefCon)\n{\n\tAUInputElement *input = GetInput(inElement);\t// may throw\n\t\n\tinput->SetInputCallback(inProc, inRefCon);\n\tPropertyChanged(inPropertyID, kAudioUnitScope_Input, inElement);\n\t\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::SetConnection(\t\t\tconst AudioUnitConnection &\t\tinConnection)\n{\n\n\tOSStatus err;\n\tAUInputElement *input = GetInput(inConnection.destInputNumber);\t// may throw\n\t\t\n\tif (inConnection.sourceAudioUnit) {\n\t\t// connecting, not disconnecting\n\t\tCAStreamBasicDescription sourceDesc;\n\t\tUInt32 size = sizeof(CAStreamBasicDescription);\n\t\tca_require_noerr(err = AudioUnitGetProperty(\n\t\t\t\t\t\t\t\t\t\tinConnection.sourceAudioUnit,\n\t\t\t\t\t\t\t\t\t\tkAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\t\t\t\tkAudioUnitScope_Output,\n\t\t\t\t\t\t\t\t\t\tinConnection.sourceOutputNumber,\n\t\t\t\t\t\t\t\t\t\t&sourceDesc,\n\t\t\t\t\t\t\t\t\t\t&size), errexit);\n\t\tca_require_noerr(err = DispatchSetProperty (kAudioUnitProperty_StreamFormat, \n\t\t\t\t\t\t\t\tkAudioUnitScope_Input, inConnection.destInputNumber, \n\t\t\t\t\t\t\t\t&sourceDesc, sizeof(CAStreamBasicDescription)), errexit);\n\t}\n\tinput->SetConnection(inConnection);\n\t\t\n\tPropertyChanged(kAudioUnitProperty_MakeConnection, kAudioUnitScope_Input, inConnection.destInputNumber);\n\treturn noErr;\n\nerrexit:\n\treturn err;\n}\n \n//_____________________________________________________________________________\n//\nUInt32\t\t\t\tAUBase::SupportedNumChannels (\tconst AUChannelInfo** \t\t\toutInfo)\n{\n\treturn 0;\n}\n\n//_____________________________________________________________________________\n//\nbool\t\t\t\tAUBase::ValidFormat(\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription &\t\tinNewFormat)\n{\n\treturn FormatIsCanonical(inNewFormat);\n}\n\n//_____________________________________________________________________________\n//\nbool\t\t\t\tAUBase::IsStreamFormatWritable(\tAudioUnitScope\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\telement)\n{\n\tswitch (scope) {\n\tcase kAudioUnitScope_Input:\n\t\t{\n\t\t\tAUInputElement *input = GetInput(element);\n\t\t\tif (input->HasConnection()) return false;\t// can't write format when input comes from connection\n\t\t}\n\t\t// ... fall ...\n\tcase kAudioUnitScope_Output:\n\t\treturn StreamFormatWritable(scope, element);\n\n//#warning \"aliasing of global scope format should be pushed to subclasses\"\n\tcase kAudioUnitScope_Global:\n\t\treturn StreamFormatWritable(kAudioUnitScope_Output, 0);\n\t}\n\treturn false;\n}\n\n//_____________________________________________________________________________\n//\nconst CAStreamBasicDescription &\n\t\t\t\t\tAUBase::GetStreamFormat(\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement)\n{\n//#warning \"aliasing of global scope format should be pushed to subclasses\"\n\tAUIOElement *element;\n\t\n\tswitch (inScope) {\n\tcase kAudioUnitScope_Input:\n\t\telement = Inputs().GetIOElement(inElement);\n\t\tbreak;\n\tcase kAudioUnitScope_Output:\n\t\telement = Outputs().GetIOElement(inElement);\n\t\tbreak;\n\tcase kAudioUnitScope_Global:\t// global stream description is an alias for that of output 0\n\t\telement = Outputs().GetIOElement(0);\n\t\tbreak;\n\tdefault:\n\t\tCOMPONENT_THROW(kAudioUnitErr_InvalidScope);\n\t}\n\treturn element->GetStreamFormat();\n}\n\nOSStatus\t\t\tAUBase::SetBusCount(\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinCount)\n{\n\tif (IsInitialized()) \n\t\treturn kAudioUnitErr_Initialized;\n\t\t\n\tGetScope(inScope).SetNumberOfElements(inCount);\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::ChangeStreamFormat(\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & inPrevFormat,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription &\tinNewFormat)\n{\n//#warning \"aliasing of global scope format should be pushed to subclasses\"\n\tAUIOElement *element;\n\t\n\tswitch (inScope) {\n\tcase kAudioUnitScope_Input:\n\t\telement = Inputs().GetIOElement(inElement);\n\t\tbreak;\n\tcase kAudioUnitScope_Output:\n\t\telement = Outputs().GetIOElement(inElement);\n\t\tbreak;\n\tcase kAudioUnitScope_Global:\n\t\telement = Outputs().GetIOElement(0);\n\t\tbreak;\n\tdefault:\n\t\tCOMPONENT_THROW(kAudioUnitErr_InvalidScope);\n\t}\n\telement->SetStreamFormat(inNewFormat);\n\tPropertyChanged(kAudioUnitProperty_StreamFormat, inScope, inElement);\n\treturn noErr;\n}\n\nUInt32\t\tAUBase::GetChannelLayoutTags(\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayoutTag *\t\toutLayoutTags)\n{\n\treturn GetIOElement(inScope, inElement)->GetChannelLayoutTags(outLayoutTags);\n}\n\nUInt32\t\tAUBase::GetAudioChannelLayout(\tAudioUnitScope\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\telement,\n\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayout *\t\toutLayoutPtr,\n\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable)\n{\n\tAUIOElement * el = GetIOElement(scope, element);\n\treturn el->GetAudioChannelLayout(outLayoutPtr, outWritable);\n}\n\nOSStatus\tAUBase::RemoveAudioChannelLayout(\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement)\n{\n\tOSStatus result = noErr;\n\tAUIOElement * el = GetIOElement(inScope, inElement);\n\tBoolean writable;\n\tif (el->GetAudioChannelLayout(NULL, writable)) {\n\t\tresult = el->RemoveAudioChannelLayout();\n\t}\n\treturn result;\n}\n\nOSStatus \tAUBase::SetAudioChannelLayout(\t\t\t\tAudioUnitScope \t\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioChannelLayout *\tinLayout)\n{\n\tAUIOElement* ioEl = GetIOElement (inScope, inElement);\n\n\t// the num channels of the layout HAS TO MATCH the current channels of the Element's stream format\n\tUInt32 currentChannels = ioEl->GetStreamFormat().NumberChannels();\n\tUInt32 numChannelsInLayout = CAAudioChannelLayout::NumberChannels(*inLayout);\n\tif (currentChannels != numChannelsInLayout)\n\t\treturn kAudioUnitErr_InvalidPropertyValue;\n\n\tUInt32 numLayouts = GetChannelLayoutTags (inScope, inElement, NULL);\n\tif (numLayouts == 0)\n\t\treturn kAudioUnitErr_InvalidProperty;\n\tAudioChannelLayoutTag *tags = (AudioChannelLayoutTag *)CA_malloc (numLayouts * sizeof (AudioChannelLayoutTag));\n\tGetChannelLayoutTags (inScope, inElement, tags);\n\tbool foundTag = false;\n\tfor (unsigned int i = 0; i < numLayouts; ++i) {\n\t\tif (tags[i] == inLayout->mChannelLayoutTag || tags[i] == kAudioChannelLayoutTag_UseChannelDescriptions) {\n\t\t\tfoundTag = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\tfree(tags);\n\t\n\tif (foundTag == false)\n\t\treturn kAudioUnitErr_InvalidPropertyValue;\n\n\treturn ioEl->SetAudioChannelLayout(*inLayout);\n}\n\nstatic void AddNumToDictionary (CFMutableDictionaryRef dict, CFStringRef key, SInt32 value)\n{\n\tCFNumberRef num = CFNumberCreate (NULL, kCFNumberSInt32Type, &value);\n\tCFDictionarySetValue (dict, key, num);\n\tCFRelease (num);\n}\n\n#define kCurrentSavedStateVersion 0\n\nOSStatus\t\t\tAUBase::SaveState(\t\tCFPropertyListRef * outData)\n{\n\tAudioComponentDescription desc = GetComponentDescription();\n\n\tCFMutableDictionaryRef dict = CFDictionaryCreateMutable\t(NULL, 0, \n\t\t\t\t\t\t\t\t&kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\n// first step -> save the version to the data ref\n\tSInt32 value = kCurrentSavedStateVersion;\n\tAddNumToDictionary (dict, kVersionString, value);\n\n// second step -> save the component type, subtype, manu to the data ref\n\tvalue = desc.componentType;\n\tAddNumToDictionary (dict, kTypeString, value);\n\n\tvalue = desc.componentSubType;\n\tAddNumToDictionary (dict, kSubtypeString, value);\n\t\n\tvalue = desc.componentManufacturer;\n\tAddNumToDictionary (dict, kManufacturerString, value);\n\t\n// fourth step -> save the state of all parameters on all scopes and elements\n\tCFMutableDataRef data = CFDataCreateMutable(NULL, 0);\n\tfor (AudioUnitScope iscope = 0; iscope < 3; ++iscope) {\n\t\tAUScope &scope = GetScope(iscope);\n\t\tscope.SaveState (data);\n\t}\n    \n    SaveExtendedScopes(data);\n\n// save all this in the data section of the dictionary\n\tCFDictionarySetValue(dict, kDataString, data);\n\tCFRelease (data);\n\t\n//OK - now we're going to do some properties \t\n//save the preset name...\n\tCFDictionarySetValue (dict, kNameString, mCurrentPreset.presetName);\n\n// Does the unit support the RenderQuality property - if so, save it...\n\tvalue = 0;\n\tOSStatus result = DispatchGetProperty (kAudioUnitProperty_RenderQuality,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t&value);\n\t\n\tif (result == noErr) {\n\t\tAddNumToDictionary (dict, kRenderQualityString, value);\n\t}\n\t\n// Does the unit support the CPULoad Quality property - if so, save it...\n\tFloat32 cpuLoad;\n\tresult = DispatchGetProperty (6/*kAudioUnitProperty_CPULoad*/,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t&cpuLoad);\n\t\n\tif (result == noErr) {\n\t\tCFNumberRef num = CFNumberCreate (NULL, kCFNumberFloatType, &cpuLoad);\n\t\tCFDictionarySetValue (dict, kCPULoadString, num);\n\t\tCFRelease (num);\n\t}\n\n// Do we have any element names for any of our scopes?\t\n\t// first check to see if we have any names...\n\tbool foundName = false;\n\tfor (AudioUnitScope i = 0; i < kNumScopes; ++i) {\n\t\tfoundName = GetScope (i).HasElementWithName();\n\t\tif (foundName) \n\t\t\tbreak;\n\t}\n\t\t// OK - we found a name away we go...\n\tif (foundName) {\n\t\tCFMutableDictionaryRef nameDict = CFDictionaryCreateMutable\t(NULL, 0, \n\t\t\t\t\t\t\t\t&kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\t\tfor (AudioUnitScope i = 0; i < kNumScopes; ++i) {\n\t\t\tGetScope (i).AddElementNamesToDict (nameDict);\n\t\t}\n\t\t\n\t\tCFDictionarySetValue (dict, kElementNameString, nameDict);\n\t\tCFRelease (nameDict);\n\t}\n\t\n// we're done!!!\n\t*outData = dict;\n\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::RestoreState(\tCFPropertyListRef\tplist)\n{\n\tif (CFGetTypeID(plist) != CFDictionaryGetTypeID()) return kAudioUnitErr_InvalidPropertyValue;\n\t\n\tAudioComponentDescription desc = GetComponentDescription();\n\t\n\tCFDictionaryRef dict = static_cast<CFDictionaryRef>(plist);\n\n// zeroeth step - make sure the Part key is NOT present, as this method is used\n// to restore the GLOBAL state of the dictionary\t\n\tif (CFDictionaryContainsKey (dict, kPartString))\n\t\treturn kAudioUnitErr_InvalidPropertyValue;\n\t\t\n// first step -> check the saved version in the data ref\n// at this point we're only dealing with version==0\n\tCFNumberRef cfnum = reinterpret_cast<CFNumberRef>(CFDictionaryGetValue (dict, kVersionString));\n\tif (cfnum == NULL) return kAudioUnitErr_InvalidPropertyValue;\n\tSInt32 value;\n\tCFNumberGetValue (cfnum, kCFNumberSInt32Type, &value);\n\tif (value != kCurrentSavedStateVersion) return kAudioUnitErr_InvalidPropertyValue;\n\n// second step -> check that this data belongs to this kind of audio unit\n// by checking the component subtype and manuID\n// We're not checking the type, since there may be different versions (effect, format-converter, offline)\n// of essentially the same AU\n\tcfnum = reinterpret_cast<CFNumberRef>(CFDictionaryGetValue (dict, kSubtypeString));\n\tif (cfnum == NULL) return kAudioUnitErr_InvalidPropertyValue;\n\tCFNumberGetValue (cfnum, kCFNumberSInt32Type, &value);\n\tif (UInt32(value) != desc.componentSubType) return kAudioUnitErr_InvalidPropertyValue;\n\n\tcfnum = reinterpret_cast<CFNumberRef>(CFDictionaryGetValue (dict, kManufacturerString));\n\tif (cfnum == NULL) return kAudioUnitErr_InvalidPropertyValue;\n\tCFNumberGetValue (cfnum, kCFNumberSInt32Type, &value);\n\tif (UInt32(value) != desc.componentManufacturer) return kAudioUnitErr_InvalidPropertyValue;\n\n// fourth step -> restore the state of all of the parameters for each scope and element\t\n\tCFDataRef data = reinterpret_cast<CFDataRef>(CFDictionaryGetValue (dict, kDataString));\n\tif (data != NULL) \n\t{\n\t\tconst UInt8 *p, *pend;\n\t\t\n\t\tp = CFDataGetBytePtr(data);\n\t\tpend = p + CFDataGetLength(data);\n\t\t\n\t\t// we have a zero length data, which may just mean there were no parameters to save!\n\t\t//\tif (p >= pend) return noErr; \n\t\n\t\twhile (p < pend) {\n            UInt32 scopeIdx = CFSwapInt32BigToHost(*(UInt32 *)p);\n            p += sizeof(UInt32);\n            \n\t\t\tAUScope &scope = GetScope(scopeIdx);\n            p = scope.RestoreState(p);\n        }\n\t}\n\n//OK - now we're going to do some properties\n//restore the preset name...\n\tCFStringRef name = reinterpret_cast<CFStringRef>(CFDictionaryGetValue (dict, kNameString));\n\tif (mCurrentPreset.presetName) CFRelease (mCurrentPreset.presetName);\n\tif (name)\n\t{\n\t\tmCurrentPreset.presetName = name;\n\t\tmCurrentPreset.presetNumber = -1;\n\t} \n\telse { // no name entry make the default one\n\t\tmCurrentPreset.presetName = kUntitledString;\n\t\tmCurrentPreset.presetNumber = -1;\n\t}\n\t\n\tCFRetain (mCurrentPreset.presetName);\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n#ifndef __LP64__\n\tPropertyChanged(kAudioUnitProperty_CurrentPreset, kAudioUnitScope_Global, 0);\n#endif\n#endif\n\tPropertyChanged(kAudioUnitProperty_PresentPreset, kAudioUnitScope_Global, 0);\n\n// Does the dict contain render quality information?\t\t\n\tif (CFDictionaryGetValueIfPresent (dict, kRenderQualityString, reinterpret_cast<const void**>(&cfnum))) \n\t{\n\t\tCFNumberGetValue (cfnum, kCFNumberSInt32Type, &value);\n\t\tDispatchSetProperty (kAudioUnitProperty_RenderQuality,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t&value,\n\t\t\t\t\t\t\t\tsizeof(value));\n\t}\n\t\n// Does the unit support the CPULoad Quality property - if so, save it...\n\tif (CFDictionaryGetValueIfPresent (dict, kCPULoadString, reinterpret_cast<const void**>(&cfnum))) \n\t{\n\t\tFloat32 floatValue;\n\t\tCFNumberGetValue (cfnum, kCFNumberFloatType, &floatValue);\n\t\tDispatchSetProperty (6/*kAudioUnitProperty_CPULoad*/,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t&floatValue,\n\t\t\t\t\t\t\t\tsizeof(floatValue));\n\t}\n\n// Do we have any element names for any of our scopes?\n\tCFDictionaryRef nameDict;\n\tif (CFDictionaryGetValueIfPresent (dict, kElementNameString, reinterpret_cast<const void**>(&nameDict))) \n\t{\n\t\tchar string[64];\n\t\tfor (int i = 0; i < kNumScopes; ++i) \n\t\t{\n\t\t\tsnprintf (string, sizeof(string), \"%d\", i);\n\t\t\tCFStringRef key = CFStringCreateWithCString (NULL, string, kCFStringEncodingASCII);\n\t\t\tCFDictionaryRef elementDict;\n\t\t\tif (CFDictionaryGetValueIfPresent (nameDict, key, reinterpret_cast<const void**>(&elementDict))) \n\t\t\t{\n\t\t\t\tbool didAddElements = GetScope (i).RestoreElementNames (elementDict);\n\t\t\t\tif (didAddElements)\n\t\t\t\t\tPropertyChanged (kAudioUnitProperty_ElementCount, i, 0);\n\t\t\t}\n\t\t\tCFRelease (key);\t\t\t\t\n\t\t}\n\t}\n\t\n\treturn noErr;\n}\n\nOSStatus\t\t\tAUBase::GetPresets (\t\t\tCFArrayRef * \t\t\t\t\toutData) const\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\nOSStatus\t\t\tAUBase::NewFactoryPresetSet (const AUPreset & inNewFactoryPreset)\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\nOSStatus            AUBase::NewCustomPresetSet (const AUPreset & inNewCustomPreset)\n{\n    CFRelease (mCurrentPreset.presetName);\n    mCurrentPreset = inNewCustomPreset;\n    CFRetain (mCurrentPreset.presetName);\n    return noErr;\n}\n\n\t\t// set the default preset for the unit -> the number of the preset MUST be >= 0\n\t\t// and the name should be valid, or the preset WON'T take\nbool\t\t\t\tAUBase::SetAFactoryPresetAsCurrent (const AUPreset & inPreset)\n{\n\tif (inPreset.presetNumber < 0 || inPreset.presetName == NULL) return false;\n\tCFRelease (mCurrentPreset.presetName);\n\tmCurrentPreset = inPreset;\n\tCFRetain (mCurrentPreset.presetName);\n\treturn true;\n}\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\nint\t\t\tAUBase::GetNumCustomUIComponents () \n{\n\treturn 0;\n}\n\nvoid\t\tAUBase::GetUIComponentDescs (ComponentDescription* inDescArray) {}\n#endif\n\t\nbool\t\tAUBase::HasIcon () \n{\n#if !CA_NO_AU_UI_FEATURES\n\tCFURLRef url = CopyIconLocation(); \n\tif (url) {\n\t\tCFRelease (url);\n\t\treturn true;\n\t}\n#endif\n\treturn false;\n}\n\nCFURLRef\tAUBase::CopyIconLocation () \n{\n\treturn NULL;\n}\n\t\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::GetParameterList(\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID *\t\t\toutParameterList,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutNumParameters)\n{\n\tAUScope &scope = GetScope(inScope);\n\tAUElement *elementWithMostParameters = NULL;\n\tUInt32 maxNumParams = 0;\n\t\n\tint nElems = scope.GetNumberOfElements();\n\tfor (int ielem = 0; ielem < nElems; ++ielem) {\n\t\tAUElement *element = scope.GetElement(ielem);\n\t\tUInt32 nParams = element->GetNumberOfParameters();\n\t\tif (nParams > maxNumParams) {\n\t\t\tmaxNumParams = nParams;\n\t\t\telementWithMostParameters = element;\n\t\t}\n\t}\n\t\n\tif (outParameterList != NULL && elementWithMostParameters != NULL)\n\t\telementWithMostParameters->GetParameterList(outParameterList);\n\t\n\toutNumParameters = maxNumParams;\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::GetParameterInfo(\t\tAudioUnitScope\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\tinParameterID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterInfo\t&outParameterInfo )\n{\n\treturn kAudioUnitErr_InvalidParameter;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::GetParameterValueStrings(AudioUnitScope\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\tinParameterID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tCFArrayRef *\t\t\toutStrings)\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::GetParameterHistoryInfo(\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\t\t\tinParameterID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32 &\t\t\t\t\t\toutUpdatesPerSecond,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32 &\t\t\t\t\t\toutHistoryDurationInSeconds)\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\n\n//_____________________________________________________________________________\n//\nOSStatus\t\t\tAUBase::CopyClumpName(\t\t\tAudioUnitScope\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinClumpID, \n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDesiredNameLength,\n\t\t\t\t\t\t\t\t\t\t\t\t\tCFStringRef *\t\t\toutClumpName)\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\t\tAUBase::SetNumberOfElements(\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumElements)\n{\n\tif (inScope == kAudioUnitScope_Global && numElements != 1)\n\t\tCOMPONENT_THROW(kAudioUnitErr_InvalidScope);\n\n\tGetScope(inScope).SetNumberOfElements(numElements);\n}\n\n//_____________________________________________________________________________\n//\nAUElement *\t\t\tAUBase::CreateElement(\t\t\tAudioUnitScope\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\telement)\n{\n\tswitch (scope) {\n\tcase kAudioUnitScope_Global:\n\t\treturn new AUElement(this);\n\tcase kAudioUnitScope_Input:\n\t\treturn new AUInputElement(this);\n\tcase kAudioUnitScope_Output:\n\t\treturn new AUOutputElement(this);\n#if !CA_BASIC_AU_FEATURES\n\tcase kAudioUnitScope_Group:\n\t\treturn new AUElement(this);\n\tcase kAudioUnitScope_Part:\n\t\treturn new AUElement(this);\n#endif\n\t}\n\tCOMPONENT_THROW(kAudioUnitErr_InvalidScope);\n\t\n\treturn NULL;\t// get rid of compiler warning\n}\n\n//_____________________________________________________________________________\n//\nbool\tAUBase::FormatIsCanonical(\t\tconst CAStreamBasicDescription &f)\n{\n\treturn (f.mFormatID == kAudioFormatLinearPCM\n\t\t&&\tf.mFramesPerPacket == 1\n\t\t&&\tf.mBytesPerPacket == f.mBytesPerFrame\n//\t\t&&\tf.mChannelsPerFrame >= 0\t-- this is always true since it's unsigned\n\t\t// so far, it's a valid PCM format\n#if CA_PREFER_FIXED_POINT\n\t\t&&\t(f.mFormatFlags & kLinearPCMFormatFlagIsFloat) == 0\n\t\t&&\t(((f.mFormatFlags & kLinearPCMFormatFlagsSampleFractionMask) >> kLinearPCMFormatFlagsSampleFractionShift) == kAudioUnitSampleFractionBits)\n#else\n\t\t&&\t(f.mFormatFlags & kLinearPCMFormatFlagIsFloat) != 0\n#endif\n\t\t&&\t((f.mChannelsPerFrame == 1) || ((f.mFormatFlags & kAudioFormatFlagIsNonInterleaved) == 0) == (mAudioUnitAPIVersion == 1))\n#if TARGET_RT_BIG_ENDIAN\n\t\t&&\t(f.mFormatFlags & kLinearPCMFormatFlagIsBigEndian) != 0\n#else\n\t\t&&\t(f.mFormatFlags & kLinearPCMFormatFlagIsBigEndian) == 0\n#endif\n\t\t&&\tf.mBitsPerChannel == 8 * sizeof(AudioUnitSampleType)\n\t\t&&\tf.mBytesPerFrame == f.NumberInterleavedChannels() * sizeof(AudioUnitSampleType)\n\t\t);\n}\n\n//_____________________________________________________________________________\n//\nvoid\tAUBase::MakeCanonicalFormat(\tCAStreamBasicDescription &\t\tf,\n\t\t\t\t\t\t\t\t\t\tint\t\t\t\t\t\t\t\tnChannels)\n{\n\tf.SetAUCanonical(nChannels, mAudioUnitAPIVersion < 2);\t// interleaved for v1, non for v2\n\tf.mSampleRate = 0.0;\n}\n\nconst Float64 AUBase::kNoLastRenderedSampleTime = -1.;\n\n#include \"AUBaseHelper.h\"\n\nchar*\tAUBase::GetLoggingString () const\n{\n\tif (mLogString) return mLogString;\n\t\n\tAudioComponentDescription desc = GetComponentDescription();\n\t\n\tconst size_t logStringSize = 256;\n\tconst_cast<AUBase*>(this)->mLogString = new char[logStringSize];\n\tchar str[24];\n\tchar str1[24];\n\tchar str2[24];\n\tsnprintf (const_cast<AUBase*>(this)->mLogString, logStringSize, \"AU (%p): %s %s %s\",\n\t\tGetComponentInstance(),\n\t\tCAStringForOSType(desc.componentType, str, sizeof(str)),\n\t\tCAStringForOSType(desc.componentSubType, str1, sizeof(str1)),\n\t\tCAStringForOSType(desc.componentManufacturer, str2, sizeof(str2)));\n\n\treturn mLogString;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUBase.h",
    "content": "/*\n     File: AUBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUBase_h__\n#define __AUBase_h__\n\n#include <TargetConditionals.h>\n\n#if TARGET_OS_MAC\n\t#include <pthread.h>\n#elif TARGET_OS_WIN32\n\t#include <windows.h>\n#else\n\t#error Unsupported Operating System\n#endif\n\n#include <vector>\n\n#include \"AUScopeElement.h\"\n#include \"AUInputElement.h\"\n#include \"AUOutputElement.h\"\n#include \"AUBuffer.h\"\n#include \"CAMath.h\"\n#include \"CAThreadSafeList.h\"\n#include \"CAVectorUnit.h\"\n#include \"CAMutex.h\"\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnit.h>\n\t#if !CA_BASIC_AU_FEATURES\n\t\t#include <AudioUnit/MusicDevice.h>\n\t#endif\n#else\n\t#include \"AudioUnit.h\"\n\t#if !CA_BASIC_AU_FEATURES\n\t\t#include \"MusicDevice.h\"\n\t#endif\n#endif\n\n#ifndef AUTRACE\n\t#define AUTRACE(code, obj, a, b, c, d)\n#endif\t\n\n#include \"AUPlugInDispatch.h\"\n\n\n\n// ________________________________________________________________________\n// These are to be moved to the public AudioUnit headers\n\n#define kAUDefaultSampleRate\t\t44100.0\n#if !TARGET_OS_WIN32\n#define kAUDefaultMaxFramesPerSlice\t1156 \n//this allows enough default frames for a 512 dest 44K and SRC from 96K\n// add a padding of 4 frames for any altivec rounding\n#else\n#define kAUDefaultMaxFramesPerSlice\t2048 \n#endif\n\n// ________________________________________________________________________\n\n/*! @class AUBase */\nclass AUBase : public ComponentBase {\npublic:\n\n\t/*! @ctor AUBase */\n\t\t\t\t\t\t\t\tAUBase(\t\t\t\t\tAudioComponentInstance\t\t\tinInstance, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumInputElements,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumOutputElements,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumGroupElements = 0);\n\t/*! @dtor AUBase */\n\tvirtual\t\t\t\t\t\t~AUBase();\n\t\n\t/*! @method PostConstructor */\n\tvirtual void\t\t\t\tPostConstructor() { CreateElements(); }\n\t\t\t\t\t\t\t\t\n\t/*! @method PreDestructor */\n\tvirtual void\t\t\t\tPreDestructor();\n\n\t/*! @method CreateElements */\n\tvoid\t\t\t\t\t\tCreateElements();\n\t\t\t\t\t\t\t\t\t// Called immediately after construction, when virtual methods work.\n\t\t\t\t\t\t\t\t\t// Or, a subclass may call this in order to have access to elements\n\t\t\t\t\t\t\t\t\t// in its constructor.\n\n\t/*! @method CreateExtendedElements */\n\tvirtual void CreateExtendedElements() {}\n\n#pragma mark -\n#pragma mark AU dispatch\n\t// ________________________________________________________________________\n\t// Virtual methods (mostly) directly corresponding to the entry points.  Many of these\n\t// have useful implementations here and will not need overriding.\n\t\n\t/*! @method DoInitialize */\n\t\t\tOSStatus\t\t\tDoInitialize();\n\t\t\t\t// this implements the entry point and makes sure that initialization\n\t\t\t\t// is only attempted exactly once...\n\n\t/*! @method Initialize */\n\tvirtual OSStatus\t\t\tInitialize();\n\t\t\t\t// ... so that overrides to this method can assume that they will only\n\t\t\t\t// be called exactly once.\n\t\n\t/*! @method IsInitialized */\n\t\t\tbool\t\t\t\tIsInitialized() const { return mInitialized; }\n\t/*! @method HasBegunInitializing */\n\t\t\tbool\t\t\t\tHasBegunInitializing() const { return mHasBegunInitializing; }\n\t\t\t\n\t/*! @method DoCleanup */\n\t\t\tvoid\t\t\t\tDoCleanup();\n\t\t\t\t// same pattern as with Initialize\n\t\n\t/*! @method Cleanup */\n\tvirtual void\t\t\t\tCleanup();\n\n\t/*! @method Reset */\n\tvirtual OSStatus\t\t\tReset(\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement);\n\n\t// Note about GetPropertyInfo, GetProperty, SetProperty:\n\t// Certain properties are trapped out in these dispatch functions and handled with different virtual \n\t// methods.  (To discourage hacks and keep vtable size down, these are non-virtual)\n\n\t/*! @method DispatchGetPropertyInfo */\n\t\t\tOSStatus\t\t\tDispatchGetPropertyInfo(AudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\t\toutWritable);\n\n\t/*! @method DispatchGetProperty */\n\t\t\tOSStatus\t\t\tDispatchGetProperty(\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\toutData);\n\n\t/*! @method DispatchSetProperty */\n\t\t\tOSStatus\t\t\tDispatchSetProperty(\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinDataSize);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\tOSStatus\t\t\tDispatchRemovePropertyValue(\tAudioUnitPropertyID \tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement);\n\n\t/*! @method GetPropertyInfo */\n\tvirtual OSStatus\t\t\tGetPropertyInfo(\t\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\t\toutWritable);\n\n\t/*! @method GetProperty */\n\tvirtual OSStatus\t\t\tGetProperty(\t\t\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\toutData);\n\n\t/*! @method SetProperty */\n\tvirtual OSStatus\t\t\tSetProperty(\t\t\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinDataSize);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method ClearPropertyUsage */\n\tvirtual OSStatus\t\t\tRemovePropertyValue (\tAudioUnitPropertyID\t\t \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement);\n\n\t/*! @method AddPropertyListener */\n\tvirtual OSStatus\t\t\tAddPropertyListener(\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitPropertyListenerProc\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinProcRefCon);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method RemovePropertyListener */\n\tvirtual OSStatus\t\t\tRemovePropertyListener(\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitPropertyListenerProc\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinProcRefCon,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\t\trefConSpecified);\n\t\n\t/*! @method SetRenderNotification */\n\tvirtual OSStatus\t\t\tSetRenderNotification(\tAURenderCallback\t\t \t\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinRefCon);\n\t\n\t/*! @method RemoveRenderNotification */\n\tvirtual OSStatus\t\t\tRemoveRenderNotification(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAURenderCallback\t\t \t\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinRefCon);\n\t\n\t/*! @method GetParameter */\n\tvirtual OSStatus \tGetParameter(\t\t\tAudioUnitParameterID\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\t\toutValue);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method SetParameter */\n\tvirtual OSStatus \tSetParameter(\t\t\tAudioUnitParameterID\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue\t\t\tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBufferOffsetInFrames);\n\n\t/*! @method CanScheduleParams */\n\tvirtual bool CanScheduleParameters() const = 0;\n\n\t/*! @method ScheduleParameter */\n\tvirtual OSStatus \tScheduleParameter (\t\tconst AudioUnitParameterEvent \t*inParameterEvent,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumEvents);\n\t\n\n\t/*! @method DoRender */\n\tOSStatus \tDoRender(\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\tioData);\n\t\n\n\t/*! @method Process */\n\tOSStatus\tDoProcess (\t\t\t\t\t\t\tAudioUnitRenderActionFlags  &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\t\tioData);\n\t\n\t/*! @method ProcessMultiple */\n\tOSStatus\tDoProcessMultiple (\t\t\t\t\tAudioUnitRenderActionFlags  &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumberInputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioBufferList **\t\t\tinInputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\t\tinNumberOutputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList **\t\t\t\t\tioOutputBufferLists);\n\t\t\n\t/*! @method ProcessBufferLists */\n\tvirtual OSStatus\tProcessBufferLists(\t\t\tAudioUnitRenderActionFlags &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioBufferList &\t\t\t\tinBuffer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\t\toutBuffer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFramesToProcess )\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn kAudio_UnimplementedError;\n\t\t\t\t\t\t}\n\n\t/*! @method ProcessMultipleBufferLists */\n\tvirtual OSStatus\tProcessMultipleBufferLists(\tAudioUnitRenderActionFlags &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFramesToProcess, \n\t\t\t\t\t\t\t\t\t\t\t\t    UInt32\t\t\t\t\t\t\t\tinNumberInputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\t    const AudioBufferList **\t\t\tinInputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\t    UInt32\t\t\t\t\t\t\t \tinNumberOutputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\t    AudioBufferList **\t\t\t\t\tioOutputBufferLists)\t\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn kAudio_UnimplementedError;\n\t\t\t\t\t\t}\n\t\n\t/*! @method ComplexRender */\n\tvirtual OSStatus\tComplexRender(\t\t\t\tAudioUnitRenderActionFlags &\t\tioActionFlags, \n\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\t\tinTimeStamp, \n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinOutputBusNumber, \n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumberOfPackets, \n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 *\t\t\t\t\t\t\toutNumberOfPackets, \n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription *\t\toutPacketDescriptions, \n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\t\tioData, \n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\t\toutMetadata, \n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 *\t\t\t\t\t\t\toutMetadataByteSize) \n\t\t\t\t\t\t{\t\n\t\t\t\t\t\t\treturn kAudio_UnimplementedError;\n\t\t\t\t\t\t}\n\n\t// Override this method if your AU processes multiple output busses completely independently --\n\t// you'll want to just call Render without the NeedsToRender check.\n\t// Otherwise, override Render().\n\t//\n\t// N.B. Implementations of this method can assume that the output's buffer list has already been\n\t// prepared and access it with GetOutput(inBusNumber)->GetBufferList() instead of \n\t// GetOutput(inBusNumber)->PrepareBuffer(nFrames) -- if PrepareBuffer is called, a\n\t// copy may occur after rendering.\n\t/*! @method RenderBus */\n\tvirtual OSStatus\t\t\tRenderBus(\t\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (NeedsToRender(inTimeStamp))\n\t\t\t\t\t\t\t\t\t\treturn Render(ioActionFlags, inTimeStamp, inNumberFrames);\n\t\t\t\t\t\t\t\t\treturn noErr;\t// was presumably already rendered via another bus\n\t\t\t\t\t\t\t\t}\n\n\t// N.B. For a unit with only one output bus, it can assume in its implementation of this\n\t// method that the output's buffer list has already been prepared and access it with \n\t// GetOutput(0)->GetBufferList() instead of GetOutput(0)->PrepareBuffer(nFrames)\n\t//  -- if PrepareBuffer is called, a copy may occur after rendering.\n\t/*! @method Render */\n\tvirtual OSStatus\t\t\tRender(\t\t\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn noErr;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\n#pragma mark -\n#pragma mark Property Dispatch\n\n\tstatic const Float64 kNoLastRenderedSampleTime;\n\n\t// ________________________________________________________________________\n\t// These are generated from DispatchGetProperty/DispatchGetPropertyInfo/DispatchSetProperty\n\n\t/*! @method BusCountWritable */\n\tvirtual bool\t\t\t\tBusCountWritable(\t\tAudioUnitScope\t\t\t\t\tinScope)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\tvirtual OSStatus\t\t\tSetBusCount(\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinCount);\n\n\t/*! @method SetConnection */\n\tvirtual OSStatus\t\t\tSetConnection(\t\t\tconst AudioUnitConnection &\t\tinConnection);\n\t\n\t/*! @method SetInputCallback */\n\tvirtual OSStatus\t\t\tSetInputCallback(\t\tUInt32\t\t\t\t\t\t\tinPropertyID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAURenderCallback\t\t\t\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinRefCon);\n\n\t/*! @method GetParameterList */\n\tvirtual OSStatus\t\t\tGetParameterList(\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID *\t\t\toutParameterList,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutNumParameters);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// outParameterList may be a null pointer\n\n\t/*! @method GetParameterInfo */\n\tvirtual OSStatus\t\t\tGetParameterInfo(\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\t\t\tinParameterID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterInfo &\t\toutParameterInfo);\n\n\tvirtual OSStatus\t\t\tGetParameterHistoryInfo(AudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\t\t\tinParameterID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32 &\t\t\t\t\t\toutUpdatesPerSecond,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32 &\t\t\t\t\t\toutHistoryDurationInSeconds);\n\n\t/*! @method SaveState */\n\tvirtual OSStatus\t\t\tSaveState(\t\t\t\tCFPropertyListRef *\t\t\t\toutData);\n    \n    /*! @method SaveExtendedScopes */\n\tvirtual void                SaveExtendedScopes(\t\tCFMutableDataRef\t\t\t\toutData) {};\n\n\t/*! @method RestoreState */\n\tvirtual OSStatus\t\t\tRestoreState(\t\t\tCFPropertyListRef\t\t\t\tinData);\n\n\t/*! @method GetParameterValueStrings */\n\tvirtual OSStatus\t\t\tGetParameterValueStrings(AudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\t\t\tinParameterID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCFArrayRef *\t\t\t\t\toutStrings);\n\n\t/*! @method CopyClumpName */\n\tvirtual OSStatus\t\t\tCopyClumpName(\t\t\tAudioUnitScope\t\t\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinClumpID, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinDesiredNameLength,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tCFStringRef *\t\t\t\t\toutClumpName);\n\n\t/*! @method GetPresets */\n\tvirtual OSStatus\t\t\tGetPresets (\t\t\tCFArrayRef * \t\t\t\t\toutData) const;\n\n\t\t// set the default preset for the unit -> the number of the preset MUST be >= 0\n\t\t// and the name should be valid, or the preset WON'T take\n\t/*! @method SetAFactoryPresetAsCurrent */\n\tbool\t\t\t\t\t\tSetAFactoryPresetAsCurrent (const AUPreset & inPreset);\n\t\t\n\t\t// Called when someone sets a new, valid preset\n\t\t// If this is a valid preset, then the subclass sets its state to that preset\n\t\t// and returns noErr.\n\t\t// If not a valid preset, return an error, and the pre-existing preset is restored\n\t/*! @method NewFactoryPresetSet */\n\tvirtual OSStatus\t\t\tNewFactoryPresetSet (const AUPreset & inNewFactoryPreset);\n\t\n\t/*! @method NewCustomPresetSet */\n\tvirtual OSStatus            NewCustomPresetSet (const AUPreset & inNewCustomPreset);\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t/*! @method GetNumCustomUIComponents */\n\tvirtual int\t\t\t\t\tGetNumCustomUIComponents ();\n\n\t/*! @method GetUIComponentDescs */\n\tvirtual void\t\t\t\tGetUIComponentDescs (ComponentDescription* inDescArray);\n#endif\n\t\n\t/*! @method CopyIconLocation */\n\tvirtual CFURLRef\t\t\tCopyIconLocation ();\n\t\n\t// default is no latency, and unimplemented tail time\n\t/*! @method GetLatency */\n    virtual Float64\t\t\t\tGetLatency() {return 0.0;}\n\t/*! @method GetTailTime */\n    virtual Float64\t\t\t\tGetTailTime() {return 0;}\n\t/*! @method SupportsRampAndTail */\n\tvirtual\tbool\t\t\t\tSupportsTail () { return false; }\n\n\t/*! @method IsStreamFormatWritable */\n\t\t\tbool\t\t\t\tIsStreamFormatWritable(\tAudioUnitScope\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\telement);\n\t\n\t/*! @method StreamFormatWritable */\n\tvirtual bool\t\t\t\tStreamFormatWritable(\tAudioUnitScope\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\telement) = 0;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// scope will always be input or output\n\t\t\t\n\t\t\t// pass in a pointer to get the struct, and num channel infos\n\t\t\t// you can pass in NULL to just get the number\n\t\t\t// a return value of 0 (the default in AUBase) means the property is not supported...\n\t/*! @method SupportedNumChannels */\n\tvirtual UInt32\t\t\t\tSupportedNumChannels (\tconst AUChannelInfo**\t\t\toutInfo);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method ValidFormat */\n\tvirtual bool\t\t\t\tValidFormat(\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & inNewFormat);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Will only be called after StreamFormatWritable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// has succeeded.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Default implementation requires canonical format:\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// native-endian 32-bit float, any sample rate,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// any number of channels; override when other\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// formats are supported.  A subclass's override can\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// choose to always return true and trap invalid \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// formats in ChangeStreamFormat.\n\n\n\t/*! @method FormatIsCanonical */\n\t\t\tbool\t\t\t\tFormatIsCanonical(\t\tconst CAStreamBasicDescription &format);\n\n\t/*! @method MakeCanonicalFormat */\n\t\t\tvoid\t\t\t\tMakeCanonicalFormat(\tCAStreamBasicDescription &\toutDesc,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tint\t\t\t\t\t\t\tnumChannels = 2);\n\n\t/*! @method GetStreamFormat */\n\tvirtual const CAStreamBasicDescription &\n\t\t\t\t\t\t\t\tGetStreamFormat(\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement);\n\n\t/*! @method ChangeStreamFormat */\n\tvirtual\tOSStatus\t\t\tChangeStreamFormat(\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & inPrevFormat,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & inNewFormat);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// Will only be called after StreamFormatWritable\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// and ValidFormat have succeeded.\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t// ________________________________________________________________________\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t/*! @method ComponentEntryDispatch */\n\tstatic OSStatus\t\t\tComponentEntryDispatch(\tComponentParameters *\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAUBase *\t\t\t\t\t\tThis);\n#endif\n\n\t// ________________________________________________________________________\n\t// Methods useful for subclasses\n\t\n\t/*! @method GetScope */\n\tAUScope &\t\t\t\t\tGetScope(\t\t\t\tAudioUnitScope\t\t\t\t\tinScope)\n\t{\n\t\tif (inScope >= kNumScopes) {\n\t\t\tAUScope * scope = GetScopeExtended(inScope);\n\t\t\tif (!scope) COMPONENT_THROW(kAudioUnitErr_InvalidScope);\n\t\t\treturn *scope;\n\t\t}\n\t\treturn mScopes[inScope];\n\t}\n\t\n\t/*! @method GetScopeExtended */\n\tvirtual AUScope *\t\t\tGetScopeExtended (AudioUnitScope inScope) { return NULL; }\n\t\n\t/*! @method GlobalScope */\n\tAUScope &\t\t\t\t\tGlobalScope() { return mScopes[kAudioUnitScope_Global]; }\n\t/*! @method Inputs */\n\tAUScope &\t\t\t\t\tInputs()\t{ return mScopes[kAudioUnitScope_Input]; }\n\t/*! @method Outputs */\n\tAUScope &\t\t\t\t\tOutputs()\t{ return mScopes[kAudioUnitScope_Output]; }\n#if !CA_BASIC_AU_FEATURES\n\t/*! @method Groups */\n\tAUScope &\t\t\t\t\tGroups()\t{ return mScopes[kAudioUnitScope_Group]; }\n#endif\n\t/*! @method Globals */\n\tAUElement *\t\t\t\t\tGlobals()\t{ return mScopes[kAudioUnitScope_Global].GetElement(0); }\n\t\n\t/*! @method SetNumberOfElements */\n\tvoid\t\t\t\t\t\tSetNumberOfElements(\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumElements);\n\n\t/*! @method GetElement */\n\tAUElement *\t\t\t\t\tGetElement(\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement)\n\t{\n\t\treturn GetScope(inScope).GetElement(inElement);\n\t}\n\t\n\t/*! @method GetIOElement */\n\tAUIOElement *\t\t\t\tGetIOElement(\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement)\n\t{\n\t\treturn GetScope(inScope).GetIOElement(inElement);\n\t}\n\t\n\t/*! @method SafeGetElement */\n\tAUElement *\t\t\t\t\tSafeGetElement(\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement)\n\t{\n\t\treturn GetScope(inScope).SafeGetElement(inElement);\n\t}\n\n\t/*! @method GetInput */\n\tAUInputElement *\t\t\tGetInput(\t\t\t\tAudioUnitElement\t\t\t\tinElement)\n\t{\n\t\treturn static_cast<AUInputElement *>(Inputs().SafeGetElement(inElement));\n\t}\n\t\n\t/*! @method GetOutput */\n\tAUOutputElement *\t\t\tGetOutput(\t\t\t\tAudioUnitElement\t\t\t\tinElement)\n\t{\n\t\treturn static_cast<AUOutputElement *>(Outputs().SafeGetElement(inElement));\n\t}\n\t\n#if !CA_BASIC_AU_FEATURES\n\t/*! @method GetGroup */\n\tAUElement *\t\t\t\t\tGetGroup(\t\t\t\tAudioUnitElement\t\t\t\tinElement)\n\t{\n\t\treturn Groups().SafeGetElement(inElement);\n\t}\n#endif\n\t\n\t/*! @method PullInput */\n\tOSStatus\t\t\t\t\tPullInput(\t\t\t\tUInt32\t \t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags &ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberFrames)\n\t{\n\t\tAUInputElement *input = GetInput(inBusNumber);\t// throws if error\n\t\treturn input->PullInput(ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames);\n\t}\n\n\t/*! @method GetMaxFramesPerSlice */\n\tUInt32\t\t\t\t\t\tGetMaxFramesPerSlice() const { return mMaxFramesPerSlice; }\n\t/*! @method UsesFixedBlockSize */\n\tbool\t\t\t\t\t\tUsesFixedBlockSize() const { return mUsesFixedBlockSize; }\n\t/*! @method SetUsesFixedBlockSize */\n\tvoid\t\t\t\t\t\tSetUsesFixedBlockSize(bool inUsesFixedBlockSize) { mUsesFixedBlockSize = inUsesFixedBlockSize; }\n\t\n\t/*! @method GetVectorUnitType */\n\tstatic SInt32\t\t\t\tGetVectorUnitType() { return sVectorUnitType; }\n\t/*! @method HasVectorUnit */\n\tstatic bool\t\t\t\t\tHasVectorUnit() { return sVectorUnitType > 0; }\n\t/*! @method HasAltivec */\n\tstatic bool\t\t\t\t\tHasAltivec() { return sVectorUnitType == kVecAltivec; }\n\t/*! @method HasSSE2 */\n\tstatic bool\t\t\t\t\tHasSSE2() { return sVectorUnitType >= kVecSSE2; }\n\t/*! @method HasSSE3 */\n\tstatic bool\t\t\t\t\tHasSSE3() { return sVectorUnitType >= kVecSSE3; }\n\t\n\t/*! @method AudioUnitAPIVersion */\n\tUInt8\t\t\t\t\t\tAudioUnitAPIVersion() const { return mAudioUnitAPIVersion; }\n\t\n\t/*! @method IsRenderThread */\n\tbool\t\t\t\t\t\tInRenderThread () const \n\t\t\t\t\t\t\t\t{\n#if TARGET_OS_MAC\n\t\t\t\t\t\t\t\t\treturn (mRenderThreadID ? pthread_equal (mRenderThreadID, pthread_self()) : false);\n#elif TARGET_OS_WIN32\n\t\t\t\t\t\t\t\t\treturn (mRenderThreadID ? mRenderThreadID == GetCurrentThreadId() : false);\n#endif\n\t\t\t\t\t\t\t\t}\n\n\t/*! @method HasInput */\n\tbool\t\t\t\t\t\tHasInput(\t\t\t\tAudioUnitElement\t\t\t\tinElement) {\n\t\t\t\t\t\t\t\t\tAUInputElement *in = static_cast<AUInputElement *>(Inputs().GetElement(inElement));\n\t\t\t\t\t\t\t\t\treturn in != NULL && in->IsActive();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// says whether an input is connected or has a callback\n\n\t/*! @method PropertyChanged */\n\tvirtual void\t\t\t\tPropertyChanged(\t\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement);\n\n#if !CA_NO_AU_UI_FEATURES\n\t// These calls can be used to call a Host's Callbacks. The method returns -1 if the host\n\t// hasn't supplied the callback. Any other result is returned by the host.\n\t// As in the API contract, for a parameter's value, you specify a pointer\n\t// to that data type. Specify NULL for a parameter that you are not interested\n\t// as this can save work in the host.\n\n\t/*! @method CallHostBeatAndTempo */\n\tOSStatus\tCallHostBeatAndTempo (Float64\t\t\t\t*outCurrentBeat,  \n\t\t\t\t\t\t\t\t\t\tFloat64\t\t\t\t*outCurrentTempo)\n\t{\n\t\treturn (mHostCallbackInfo.beatAndTempoProc \n\t\t\t\t\t\t? (*mHostCallbackInfo.beatAndTempoProc) (mHostCallbackInfo.hostUserData, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutCurrentBeat, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutCurrentTempo)\n\t\t\t\t\t\t: -1);\n\t}\n\n\t/*! @method CallHostMusicalTimeLocation */\n\tOSStatus\tCallHostMusicalTimeLocation (UInt32  \t\t*outDeltaSampleOffsetToNextBeat,\n\t\t\t\t\t\t\t\t\t\tFloat32           \t*outTimeSig_Numerator,\n\t\t\t\t\t\t\t\t\t\tUInt32            \t*outTimeSig_Denominator,\n\t\t\t\t\t\t\t\t\t\tFloat64           \t*outCurrentMeasureDownBeat)\n\t{\n\t\treturn (mHostCallbackInfo.musicalTimeLocationProc \n\t\t\t\t\t\t? (*mHostCallbackInfo.musicalTimeLocationProc) (mHostCallbackInfo.hostUserData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutDeltaSampleOffsetToNextBeat,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutTimeSig_Numerator,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutTimeSig_Denominator,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutCurrentMeasureDownBeat)\n\t\t\t\t\t\t: -1);\n\t}\t\t\t\t\t\t\t\t\t\t\t\n\n\t/*! @method CallHostTransportState */\n\tOSStatus\tCallHostTransportState (Boolean \t\t\t*outIsPlaying,\n\t\t\t\t\t\t\t\t\t\tBoolean \t\t\t*outTransportStateChanged,\n\t\t\t\t\t\t\t\t\t\tFloat64 \t\t\t*outCurrentSampleInTimeLine,\n\t\t\t\t\t\t\t\t\t\tBoolean \t\t\t*outIsCycling,\n\t\t\t\t\t\t\t\t\t\tFloat64 \t\t\t*outCycleStartBeat,\n\t\t\t\t\t\t\t\t\t\tFloat64 \t\t\t*outCycleEndBeat)\n\t{\n\t\treturn (mHostCallbackInfo.transportStateProc \n\t\t\t\t\t\t? (*mHostCallbackInfo.transportStateProc) (mHostCallbackInfo.hostUserData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutIsPlaying,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutTransportStateChanged,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutCurrentSampleInTimeLine,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutIsCycling,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutCycleStartBeat,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\toutCycleEndBeat)\n\t\t\t\t\t\t: -1);\n\t}\n#endif\n\n\tchar*\t\t\t\t\t\tGetLoggingString () const;\n\t\n\tCAMutex*\t\t\t\t\tGetMutex() { return mAUMutex; }\n\n\t// ________________________________________________________________________\n\t/*! @method CreateElement */\n\tvirtual AUElement *\t\t\tCreateElement(\t\t\tAudioUnitScope\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\telement);\n\n#pragma mark -\n#pragma mark AU Output Base Dispatch\n\t// ________________________________________________________________________\n\t// ________________________________________________________________________\n\t// ________________________________________________________________________\n\t// output unit methods\n\t/*! @method Start */\n\tvirtual OSStatus\tStart() { return kAudio_UnimplementedError; }\n\t/*! @method Stop */\n\tvirtual OSStatus\tStop() { return kAudio_UnimplementedError; }\n\t\n#if !CA_BASIC_AU_FEATURES\n#pragma mark -\n#pragma mark AU Music Base Dispatch\n\n#if !TARGET_OS_IPHONE\n// these methods are deprecated, so we don't include them except for compatability\n\t/*! @method PrepareInstrument */\n\tvirtual OSStatus\t\t\tPrepareInstrument(MusicDeviceInstrumentID inInstrument) { return kAudio_UnimplementedError; }\n\n\t/*! @method PrepareInstrument */\n\tvirtual OSStatus\t\t\tReleaseInstrument(MusicDeviceInstrumentID inInstrument) { return kAudio_UnimplementedError; }\n#endif\n\t\n\t// ________________________________________________________________________\n\t// ________________________________________________________________________\n\t// ________________________________________________________________________\n\t// music device/music effect methods -- incomplete\n\t/*! @method MIDIEvent */\n\tvirtual OSStatus\tMIDIEvent(\t\tUInt32 \t\t\t\t\t\tinStatus, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinData1, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinData2, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame) { return kAudio_UnimplementedError; }\n\n\t/*! @method SysEx */\n\tvirtual OSStatus\tSysEx(\t\t\tconst UInt8 *\t\t\t\tinData, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinLength) { return kAudio_UnimplementedError;}\n\t\t\t\t\t\t\t\t\t\t\n\t/*! @method StartNote */\n\tvirtual OSStatus\tStartNote(\t\tMusicDeviceInstrumentID \tinInstrument, \n\t\t\t\t\t\t\t\t\t\tMusicDeviceGroupID \t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\tNoteInstanceID *\t\t\toutNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams &inParams) { return kAudio_UnimplementedError; }\n\n\t/*! @method StopNote */\n\tvirtual OSStatus\tStopNote(\t\tMusicDeviceGroupID \t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame) { return kAudio_UnimplementedError; }\n#endif\n\n\t// ________________________________________________________________________\n\t// ________________________________________________________________________\n\t// ________________________________________________________________________\n\t\nprotected:\n#pragma mark -\n#pragma mark Implementation methods\n\n\t/*! @method ReallocateBuffers */\n\tvirtual void\t\t\t\tReallocateBuffers();\n\t\t\t\t\t\t\t\t\t// needs to be called when mMaxFramesPerSlice changes\n\tvirtual void\t\t\t\tDeallocateIOBuffers();\n\t\t\n\t/*! @method FillInParameterName */\n\tstatic void\t\t\t\t\tFillInParameterName (AudioUnitParameterInfo& ioInfo, CFStringRef inName, bool inShouldRelease)\n\t{\n\t\tioInfo.cfNameString = inName;\n\t\tioInfo.flags |= kAudioUnitParameterFlag_HasCFNameString;\n\t\tif (inShouldRelease)\n\t\t\tioInfo.flags |= kAudioUnitParameterFlag_CFNameRelease;\n\t\tCFStringGetCString (inName, ioInfo.name, offsetof (AudioUnitParameterInfo, clumpID), kCFStringEncodingUTF8);\n\t}\n\t\n\tstatic void\t\t\t\t\tHasClump (AudioUnitParameterInfo& ioInfo, UInt32 inClumpID)\t\t\t\t\n\t{\n\t\tioInfo.clumpID = inClumpID;\n\t\tioInfo.flags |= kAudioUnitParameterFlag_HasClump;\n\t}\n\t\n\t/*! @method SetMaxFramesPerSlice */\n\tvirtual void\t\t\t\tSetMaxFramesPerSlice(UInt32 nFrames);\n\n\t/*! @method CanSetMaxFrames */\n\tvirtual OSStatus\t\t\tCanSetMaxFrames() const;\n\t\n\t/*! @method WantsRenderThreadID */\n\tbool\t\t\t\t\t\tWantsRenderThreadID () const { return mWantsRenderThreadID; }\n\t\n\t/*! @method SetWantsRenderThreadID */\n\tvoid\t\t\t\t\t\tSetWantsRenderThreadID (bool inFlag);\n\t\n\t/*! @method SetRenderError */\n\tOSStatus\t\t\t\t\tSetRenderError (OSStatus inErr)\n\t{\n\t\tif (inErr && mLastRenderError == 0) {\n\t\t\tmLastRenderError = inErr;\n\t\t\tPropertyChanged(kAudioUnitProperty_LastRenderError, kAudioUnitScope_Global, 0);\n\t\t}\n\t\treturn inErr;\n\t}\n\t\nprivate:\n\t/*! @method DoRenderBus */\n\t// shared between Render and RenderSlice, inlined to minimize function call overhead\n\tOSStatus\t\t\t\t\tDoRenderBus(\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAUOutputElement *\t\t\t\ttheOutput,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\tioData)\n\t{\n\t\tif (ioData.mBuffers[0].mData == NULL || (theOutput->WillAllocateBuffer() && Outputs().GetNumberOfElements() > 1))\n\t\t\t// will render into cache buffer\n\t\t\ttheOutput->PrepareBuffer(inNumberFrames);\n\t\telse\n\t\t\t// will render into caller's buffer\n\t\t\ttheOutput->SetBufferList(ioData);\n\t\tOSStatus result = RenderBus(ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames);\n\t\tif (result == noErr) {\n\t\t\tif (ioData.mBuffers[0].mData == NULL) {\n\t\t\t\ttheOutput->CopyBufferListTo(ioData);\n\t\t\t\tAUTRACE(kCATrace_AUBaseDoRenderBus, mComponentInstance, inNumberFrames, (intptr_t)theOutput->GetBufferList().mBuffers[0].mData, 0, *(UInt32 *)ioData.mBuffers[0].mData);\n\t\t\t} else {\n\t\t\t\ttheOutput->CopyBufferContentsTo(ioData);\n\t\t\t\tAUTRACE(kCATrace_AUBaseDoRenderBus, mComponentInstance, inNumberFrames, (intptr_t)theOutput->GetBufferList().mBuffers[0].mData, (intptr_t)ioData.mBuffers[0].mData, *(UInt32 *)ioData.mBuffers[0].mData);\n\t\t\t\ttheOutput->InvalidateBufferList();\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\t/*! @method HasIcon */\n\tbool\t\t\t\t\t\tHasIcon ();\n\n\t/*! @method ResetRenderTime */\n\tvoid\t\t\t\t\t\tResetRenderTime ()\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmemset (&mCurrentRenderTime, 0, sizeof(mCurrentRenderTime));\n\t\t\t\t\t\t\t\t\tmCurrentRenderTime.mSampleTime = kNoLastRenderedSampleTime;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\nprotected:\n\t/*! @method GetAudioChannelLayout */\n\tvirtual UInt32\t\t\t\tGetChannelLayoutTags(\tAudioUnitScope\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\telement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayoutTag *\t\toutLayoutTags);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method GetAudioChannelLayout */\n\tvirtual UInt32\t\t\t\tGetAudioChannelLayout(\tAudioUnitScope\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\telement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayout *\t\toutLayoutPtr,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable);\n\n\t/*! @method SetAudioChannelLayout */\n\tvirtual OSStatus\t\t\tSetAudioChannelLayout(\tAudioUnitScope \t\t\t\tscope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\telement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioChannelLayout *\tinLayout);\n\n\t/*! @method RemoveAudioChannelLayout */\n\tvirtual OSStatus\t\t\tRemoveAudioChannelLayout(AudioUnitScope scope, AudioUnitElement element);\n\t\n\t/*! @method NeedsToRender */\n\tbool\t\t\t\t\t\tNeedsToRender(\t\t\tconst AudioTimeStamp &\t\tinTimeStamp)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tbool needsToRender = fnotequal(inTimeStamp.mSampleTime, mCurrentRenderTime.mSampleTime);\n\t\t\t\t\t\t\t\t\tif (needsToRender)\t// only copy this if we need to render\n\t\t\t\t\t\t\t\t\t\tmCurrentRenderTime = inTimeStamp;\n\t\t\t\t\t\t\t\t\treturn needsToRender;\n\t\t\t\t\t\t\t\t}\n\t\n\t// Scheduled parameter implementation:\n\n\ttypedef std::vector<AudioUnitParameterEvent> ParameterEventList;\n\n\t// Usually, you won't override this method.  You only need to call this if your DSP code\n\t// is prepared to handle scheduled immediate and ramped parameter changes.\n\t// Before calling this method, it is assumed you have already called PullInput() on the input busses\n\t// for which the DSP code depends.  ProcessForScheduledParams() will call (potentially repeatedly)\n\t// virtual method ProcessScheduledSlice() to perform the actual DSP for a given sub-division of\n\t// the buffer.  The job of ProcessForScheduledParams() is to sub-divide the buffer into smaller\n\t// pieces according to the scheduled times found in the ParameterEventList (usually coming \n\t// directly from a previous call to ScheduleParameter() ), setting the appropriate immediate or\n\t// ramped parameter values for the corresponding scopes and elements, then calling ProcessScheduledSlice()\n\t// to do the actual DSP for each of these divisions.\n\tvirtual OSStatus \tProcessForScheduledParams(\tParameterEventList\t\t&inParamList,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid\t\t\t\t\t*inUserData );\n\t\n\t//\tThis method is called (potentially repeatedly) by ProcessForScheduledParams()\n\t//\tin order to perform the actual DSP required for this portion of the entire buffer\n\t//\tbeing processed.  The entire buffer can be divided up into smaller \"slices\"\n\t//\taccording to the timestamps on the scheduled parameters...\n\t//\n\t//\tsub-classes wishing to handle scheduled parameter changes should override this method\n\t//  in order to do the appropriate DSP.  AUEffectBase already overrides this for standard\n\t//\teffect AudioUnits.\n\tvirtual OSStatus\t\t\tProcessScheduledSlice(\tvoid\t\t\t\t*inUserData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinStartFrameInBuffer,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinSliceFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinTotalBufferFrames ) {return noErr;};\t// default impl does nothing...\n\t\n\t\n\t/*! @method CurrentRenderTime */\n\tconst AudioTimeStamp &\t\tCurrentRenderTime () const { return mCurrentRenderTime; }\n\t\n\t// ________________________________________________________________________\n\t//\tPrivate data members to discourage hacking in subclasses\nprivate:\n\tstruct RenderCallback {\n\t\tRenderCallback(AURenderCallback proc, void *ref) :\n\t\t\tmRenderNotify(proc),\n\t\t\tmRenderNotifyRefCon(ref)\n\t\t{ }\n\t\t\n\t\tAURenderCallback\t\t\tmRenderNotify;\n\t\tvoid *\t\t\t\t\t\tmRenderNotifyRefCon;\n\t\t\n\t\tbool operator == (const RenderCallback &other) {\n\t\t\treturn this->mRenderNotify == other.mRenderNotify &&\n\t\t\t\t\tthis->mRenderNotifyRefCon == other.mRenderNotifyRefCon;\n\t\t}\n\t};\n\ttypedef TThreadSafeList<RenderCallback>\tRenderCallbackList;\n\t\n#if !CA_BASIC_AU_FEATURES\n\tenum { kNumScopes = 4 };\n#else\n\tenum { kNumScopes = 3 };\n#endif\n\t\n\t/*! @var mElementsCreated */\n\tbool\t\t\t\t\t\tmElementsCreated;\nprotected:\n\t/*! @var mInitialized */\n\tbool\t\t\t\t\t\tmInitialized;\n\t/*! @var mHasBegunInitializing */\n\tbool\t\t\t\t\t\tmHasBegunInitializing;\nprivate:\n\t/*! @var mAudioUnitAPIVersion */\n\tUInt8\t\t\t\t\t\tmAudioUnitAPIVersion;\n\t\n\t/*! @var mInitNumInputEls */\n\tconst UInt32\t\t\t\tmInitNumInputEls;\n\t/*! @var mInitNumOutputEls */\n\tconst UInt32\t\t\t\tmInitNumOutputEls;\n#if !CA_BASIC_AU_FEATURES\n\t/*! @var mInitNumGroupEls */\n\tconst UInt32\t\t\t\tmInitNumGroupEls;\n#endif\n\t/*! @var mScopes */\n\tAUScope\t\t\t\t\t\tmScopes[kNumScopes];\n\t\n\t/*! @var mRenderCallbacks */\n\tRenderCallbackList\t\t\tmRenderCallbacks;\n\tbool\t\t\t\t\t\tmRenderCallbacksTouched;\n\t\n\t/*! @var mRenderThreadID */\n#if TARGET_OS_MAC\n\tpthread_t\t\t\t\t\tmRenderThreadID;\n#elif TARGET_OS_WIN32\n\tUInt32\t\t\t\t\t\tmRenderThreadID;\n#endif\n\t\n\t/*! @var mWantsRenderThreadID */\n\tbool\t\t\t\t\t\tmWantsRenderThreadID;\n\t\t\n\t/*! @var mCurrentRenderTime */\n\tAudioTimeStamp\t\t\t\tmCurrentRenderTime;\n\t\n\t/*! @var mMaxFramesPerSlice */\n\tUInt32\t\t\t\t\t\tmMaxFramesPerSlice;\n\t\n\t/*! @var mLastRenderError */\n\tOSStatus\t\t\t\t\tmLastRenderError;\n\t/*! @var mCurrentPreset */\n\tAUPreset\t\t\t\t\tmCurrentPreset;\n\t\nprotected:\n\t/*! @var mUsesFixedBlockSize */\n\tbool\t\t\t\t\t\tmUsesFixedBlockSize;\n\t\n\tstruct PropertyListener {\n\t\tAudioUnitPropertyID\t\t\t\tpropertyID;\n\t\tAudioUnitPropertyListenerProc\tlistenerProc;\n\t\tvoid *\t\t\t\t\t\t\tlistenerRefCon;\n\t};\n\ttypedef std::vector<PropertyListener>\tPropertyListeners;\n\n\t/*! @var mParamList */\n\tParameterEventList\t\t\tmParamList;\n\t/*! @var mPropertyListeners */\n\tPropertyListeners\t\t\tmPropertyListeners;\n\t\n\t/*! @var mBuffersAllocated */\n\tbool\t\t\t\t\t\tmBuffersAllocated;\n\t\n\t/*! @var mLogString */\n\t// if this is NOT null, it will contain identifying info about this AU.\n\tchar*\t\t\t\t\t\tmLogString;\n\n\t/*! @var mNickName */\n\tCFStringRef\t\t\t\t\tmNickName;\n\n\t/*! @var mAUMutex */\n\tCAMutex *\t\t\t\t\tmAUMutex;\n\nprivate:\n\t/*! @var sVectorUnitType */\n\tstatic SInt32\tsVectorUnitType;\n\n#if !CA_NO_AU_HOST_CALLBACKS\nprotected:\n\t/*! @var mHostCallbackInfo */\n\tHostCallbackInfo \t\t\tmHostCallbackInfo;\n\n#endif\n#if !CA_NO_AU_UI_FEATURES\nprotected:\n\t/*! @var mContextInfo */\n\tCFStringRef\t\t\t\t\tmContextName;\n#endif\n};\n\ninline \tOSStatus\tAUInputElement::PullInputWithBufferList(\t\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags &  \tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnFrames,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList *\t\t\t\tinBufferList)\n{\n\tOSStatus theResult;\n\t\n\tif (HasConnection()) {\n\t\t\t// only support connections for V2 audio units\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t\tif (mConnRenderProc != NULL)\n\t\t\ttheResult = reinterpret_cast<AudioUnitRenderProc>(mConnRenderProc)(\n\t\t\t\t\t\t\tmConnInstanceStorage, &ioActionFlags, &inTimeStamp, mConnection.sourceOutputNumber, nFrames, inBufferList);\n\t\telse\n#endif\n\t\t\ttheResult = AudioUnitRender(\n\t\t\t\t\t\t\tmConnection.sourceAudioUnit, &ioActionFlags, &inTimeStamp, mConnection.sourceOutputNumber, nFrames, inBufferList);\n\t} else {\n\t\t// kFromCallback:\n\t\t\ttheResult = (mInputProc)(\n\t\t\t\t\t\t\tmInputProcRefCon, &ioActionFlags, &inTimeStamp, inElement, nFrames, inBufferList);\n\t}\n\t\n\tif (mInputType == kNoInput)\t// defense: the guy upstream could have disconnected\n\t\t\t\t\t\t\t\t// it's a horrible thing to do, but may happen!\n\t\treturn kAudioUnitErr_NoConnection;\n\n\n\treturn theResult;\n}\n\n#endif // __AUBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUDispatch.cpp",
    "content": "/*\n     File: AUDispatch.cpp\n Abstract: AUDispatch.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUBase.h\"\n#include \"CAXException.h\"\n#include \"AUDispatch.h\"\n\n\n\n#if TARGET_OS_MAC\n\t#if __LP64__\n\t\t// comp instance, parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_index + 1];\n\t#else\n\t\t// parameters in reverse order, then comp instance\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_nparams - 1 - _index];\n\t#endif\n#elif TARGET_OS_WIN32\n\t\t// (no comp instance), parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_index];\n#endif\n\n\nOSStatus\t\tAUBase::ComponentEntryDispatch(ComponentParameters *params, AUBase *This)\n{\n\tif (This == NULL) return kAudio_ParamError;\n\n\tOSStatus result = noErr;\n\n\tswitch (params->what) {\n\tcase kComponentCanDoSelect:\n\t\tswitch (GetSelectorForCanDo(params)) {\n\t// any selectors\n\t\t\tcase kAudioUnitInitializeSelect:\n\t\t\tcase kAudioUnitUninitializeSelect:\n\t\t\tcase kAudioUnitGetPropertyInfoSelect:\n\t\t\tcase kAudioUnitGetPropertySelect:\n\t\t\tcase kAudioUnitSetPropertySelect:\n\t\t\tcase kAudioUnitAddPropertyListenerSelect:\n#if (!__LP64__)\n\t\t\tcase kAudioUnitRemovePropertyListenerSelect:\n#endif\n\t\t\tcase kAudioUnitGetParameterSelect:\n\t\t\tcase kAudioUnitSetParameterSelect:\n\t\t\tcase kAudioUnitResetSelect:\n\t\t\t\tresult = 1;\n\t\t\t\tbreak;\n\t// v1 selectors\n\n\t// v2 selectors\n\t\t\tcase kAudioUnitRemovePropertyListenerWithUserDataSelect:\n\t\t\tcase kAudioUnitAddRenderNotifySelect:\n\t\t\tcase kAudioUnitRemoveRenderNotifySelect:\n\t\t\tcase kAudioUnitScheduleParametersSelect:\n\t\t\tcase kAudioUnitRenderSelect:\n\t\t\t\tresult = (This->AudioUnitAPIVersion() > 1);\n\t\t\t\tbreak;\n\t\t\t\t\n\t\t\tdefault:\n\t\t\t\treturn ComponentBase::ComponentEntryDispatch(params, This);\n\t\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitInitializeSelect:\n\t{\n\t\tCAMutex::Locker lock2(This->GetMutex());\n\t\tresult = This->DoInitialize();\n\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitUninitializeSelect:\n\t{\n\t\tCAMutex::Locker lock2(This->GetMutex());\n\t\tThis->DoCleanup();\n\t\tresult = noErr;\n\t}\n\t\tbreak;\n\n\tcase kAudioUnitGetPropertyInfoSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AudioUnitPropertyID, pinID, 0, 5);\n\t\t\tPARAM(AudioUnitScope, pinScope, 1, 5);\n\t\t\tPARAM(AudioUnitElement, pinElement, 2, 5);\n\t\t\tPARAM(UInt32 *, poutDataSize, 3, 5);\n\t\t\tPARAM(Boolean *, poutWritable, 4, 5);\n\n\t\t\t// pass our own copies so that we assume responsibility for testing\n\t\t\t// the caller's pointers against null and our C++ classes can\n\t\t\t// always assume they're non-null\n\t\t\tUInt32 dataSize;\n\t\t\tBoolean writable;\n\t\t\t\n\t\t\tresult = This->DispatchGetPropertyInfo(pinID, pinScope, pinElement, dataSize, writable);\n\t\t\tif (poutDataSize != NULL)\n\t\t\t\t*poutDataSize = dataSize;\n\t\t\tif (poutWritable != NULL)\n\t\t\t\t*poutWritable = writable;\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitGetPropertySelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AudioUnitPropertyID, pinID, 0, 5);\n\t\t\tPARAM(AudioUnitScope, pinScope, 1, 5);\n\t\t\tPARAM(AudioUnitElement, pinElement, 2, 5);\n\t\t\tPARAM(void *, poutData, 3, 5);\n\t\t\tPARAM(UInt32 *, pioDataSize, 4, 5);\n\n\t\t\tUInt32 actualPropertySize, clientBufferSize;\n\t\t\tBoolean writable;\n\t\t\tchar *tempBuffer;\n\t\t\tvoid *destBuffer;\n\t\t\t\n\t\t\tif (pioDataSize == NULL) {\n\t\t\t\tca_debug_string(\"AudioUnitGetProperty: null size pointer\");\n\t\t\t\tresult = kAudio_ParamError;\n\t\t\t\tgoto finishGetProperty;\n\t\t\t}\n\t\t\tif (poutData == NULL) {\n\t\t\t\tUInt32 dataSize;\n\t\t\t\t\n\t\t\t\tresult = This->DispatchGetPropertyInfo(pinID, pinScope, pinElement, dataSize, writable);\n\t\t\t\t*pioDataSize = dataSize;\n\t\t\t\tgoto finishGetProperty;\n\t\t\t}\n\t\t\t\n\t\t\tclientBufferSize = *pioDataSize;\n\t\t\tif (clientBufferSize == 0)\n\t\t\t{\n\t\t\t\tca_debug_string(\"AudioUnitGetProperty: *ioDataSize == 0 on entry\");\n\t\t\t\t// $$$ or should we allow this as a shortcut for finding the size?\n\t\t\t\tresult = kAudio_ParamError;\n\t\t\t\tgoto finishGetProperty;\n\t\t\t}\n\t\t\t\n\t\t\tresult = This->DispatchGetPropertyInfo(pinID, pinScope, pinElement, \n\t\t\t\t\t\t\t\t\t\t\t\t\tactualPropertySize, writable);\n\t\t\tif (result) \n\t\t\t\tgoto finishGetProperty;\n\t\t\t\n\t\t\tif (clientBufferSize < actualPropertySize) \n\t\t\t{\n\t\t\t\ttempBuffer = new char[actualPropertySize];\n\t\t\t\tdestBuffer = tempBuffer;\n\t\t\t} else {\n\t\t\t\ttempBuffer = NULL;\n\t\t\t\tdestBuffer = poutData;\n\t\t\t}\n\t\t\t\n\t\t\tresult = This->DispatchGetProperty(pinID, pinScope, pinElement, destBuffer);\n\t\t\t\n\t\t\tif (result == noErr) {\n\t\t\t\tif (clientBufferSize < actualPropertySize && tempBuffer != NULL)\n\t\t\t\t{\n\t\t\t\t\tmemcpy(poutData, tempBuffer, clientBufferSize);\n\t\t\t\t\tdelete[] tempBuffer;\n\t\t\t\t\t// pioDataSize remains correct, the number of bytes we wrote\n\t\t\t\t} else\n\t\t\t\t\t*pioDataSize = actualPropertySize;\n\t\t\t} else\n\t\t\t\t*pioDataSize = 0;\n\n\t\t\tfinishGetProperty:\n\t\t\t\t;\n\n\t\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitSetPropertySelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AudioUnitPropertyID, pinID, 0, 5);\n\t\t\tPARAM(AudioUnitScope, pinScope, 1, 5);\n\t\t\tPARAM(AudioUnitElement, pinElement, 2, 5);\n\t\t\tPARAM(const void *, pinData, 3, 5);\n\t\t\tPARAM(UInt32, pinDataSize, 4, 5);\n\t\t\t\n\t\t\tif (pinData && pinDataSize)\n\t\t\t\tresult = This->DispatchSetProperty(pinID, pinScope, pinElement, pinData, pinDataSize);\n\t\t\telse {\n\t\t\t\tif (pinData == NULL && pinDataSize == 0) {\n\t\t\t\t\tresult = This->DispatchRemovePropertyValue (pinID, pinScope, pinElement);\n\t\t\t\t} else {\n\t\t\t\t\tif (pinData == NULL) {\n\t\t\t\t\t\tca_debug_string(\"AudioUnitSetProperty: inData == NULL\");\n\t\t\t\t\t\tresult = kAudio_ParamError;\n\t\t\t\t\t\tgoto finishSetProperty;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (pinDataSize == 0) {\n\t\t\t\t\t\tca_debug_string(\"AudioUnitSetProperty: inDataSize == 0\");\n\t\t\t\t\t\tresult = kAudio_ParamError;\n\t\t\t\t\t\tgoto finishSetProperty;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfinishSetProperty:\n\t\t\t\t\t;\n\n\t\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitAddPropertyListenerSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AudioUnitPropertyID, pinID, 0, 3);\n\t\t\tPARAM(AudioUnitPropertyListenerProc, pinProc, 1, 3);\n\t\t\tPARAM(void *, pinProcRefCon, 2, 3);\n\t\t\tresult = This->AddPropertyListener(pinID, pinProc, pinProcRefCon);\n\t\t}\n\t\tbreak;\n\n#if (!__LP64__)\n\tcase kAudioUnitRemovePropertyListenerSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AudioUnitPropertyID, pinID, 0, 2);\n\t\t\tPARAM(AudioUnitPropertyListenerProc, pinProc, 1, 2);\n\t\t\tresult = This->RemovePropertyListener(pinID, pinProc, NULL, false);\n\t\t}\n\t\tbreak;\n#endif\n\n\tcase kAudioUnitRemovePropertyListenerWithUserDataSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AudioUnitPropertyID, pinID, 0, 3);\n\t\t\tPARAM(AudioUnitPropertyListenerProc, pinProc, 1, 3);\n\t\t\tPARAM(void *, pinProcRefCon, 2, 3);\n\t\t\tresult = This->RemovePropertyListener(pinID, pinProc, pinProcRefCon, true);\n\t\t}\n\t\tbreak;\n\t\t\n\tcase kAudioUnitAddRenderNotifySelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AURenderCallback, pinProc, 0, 2);\n\t\t\tPARAM(void *, pinProcRefCon, 1, 2);\n\t\t\tresult = This->SetRenderNotification (pinProc, pinProcRefCon);\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitRemoveRenderNotifySelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AURenderCallback, pinProc, 0, 2);\n\t\t\tPARAM(void *, pinProcRefCon, 1, 2);\n\t\t\tresult = This->RemoveRenderNotification (pinProc, pinProcRefCon);\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitGetParameterSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AudioUnitParameterID, pinID, 0, 4);\n\t\t\tPARAM(AudioUnitScope, pinScope, 1, 4);\n\t\t\tPARAM(AudioUnitElement, pinElement, 2, 4);\n\t\t\tPARAM(AudioUnitParameterValue *, poutValue, 3, 4);\n\t\t\tresult = (poutValue == NULL ? kAudio_ParamError : This->GetParameter(pinID, pinScope, pinElement, *poutValue));\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitSetParameterSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex()); // is this realtime or no???\n\t\t\tPARAM(AudioUnitParameterID, pinID, 0, 5);\n\t\t\tPARAM(AudioUnitScope, pinScope, 1, 5);\n\t\t\tPARAM(AudioUnitElement, pinElement, 2, 5);\n\t\t\tPARAM(AudioUnitParameterValue, pinValue, 3, 5);\n\t\t\tPARAM(UInt32, pinBufferOffsetInFrames, 4, 5);\n\t\t\tresult = This->SetParameter(pinID, pinScope, pinElement, pinValue, pinBufferOffsetInFrames);\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitScheduleParametersSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex()); // is this realtime or no???\n\t\t\tif (This->AudioUnitAPIVersion() > 1)\n\t\t\t{\n\t\t\t\tPARAM(AudioUnitParameterEvent *, pinParameterEvent, 0, 2);\n\t\t\t\tPARAM(UInt32, pinNumParamEvents, 1, 2);\n\t\t\t\tresult = This->ScheduleParameter (pinParameterEvent, pinNumParamEvents);\n\t\t\t} else\n\t\t\t\tresult = badComponentSelector;\n\t\t}\n\t\tbreak;\n\n\n\tcase kAudioUnitRenderSelect:\n\t\t{\n\t\t\t// realtime; no lock\n\t\t\t{\n\t\t\t\tPARAM(AudioUnitRenderActionFlags *, pinActionFlags, 0, 5);\n\t\t\t\tPARAM(const AudioTimeStamp *, pinTimeStamp, 1, 5);\n\t\t\t\tPARAM(UInt32, pinOutputBusNumber, 2, 5);\n\t\t\t\tPARAM(UInt32, pinNumberFrames, 3, 5);\n\t\t\t\tPARAM(AudioBufferList *, pioData, 4, 5);\n\t\t\t\tAudioUnitRenderActionFlags tempFlags;\n\t\t\t\t\n\t\t\t\tif (pinTimeStamp == NULL || pioData == NULL)\n\t\t\t\t\tresult = kAudio_ParamError;\n\t\t\t\telse {\n\t\t\t\t\tif (pinActionFlags == NULL) {\n\t\t\t\t\t\ttempFlags = 0;\n\t\t\t\t\t\tpinActionFlags = &tempFlags;\n\t\t\t\t\t}\n\t\t\t\t\tresult = This->DoRender(*pinActionFlags, *pinTimeStamp, pinOutputBusNumber, pinNumberFrames, *pioData);\n\t\t\t\t}\n\t\t\t}\t\t\t\n\t\t}\n\t\tbreak;\n\n\tcase kAudioUnitResetSelect:\n\t\t{\n\t\t\tCAMutex::Locker lock(This->GetMutex());\n\t\t\tPARAM(AudioUnitScope, pinScope, 0, 2);\n\t\t\tPARAM(AudioUnitElement, pinElement, 1, 2);\n\t\t\tThis->ResetRenderTime();\n\t\t\tresult = This->Reset(pinScope, pinElement);\n\t\t}\n\t\tbreak;\n\n\tdefault:\n\t\tresult = ComponentBase::ComponentEntryDispatch(params, This);\n\t\tbreak;\n\t}\n\n\treturn result;\n}\n\n// Fast dispatch entry points -- these need to replicate all error-checking logic from above\n\nOSStatus CMgr_AudioUnitBaseGetParameter(\tAUBase *\t\t\t\tThis,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tfloat\t\t\t\t\t*outValue)\n{\n\tOSStatus result = AUBase::noErr;\n\t\n\ttry {\n\t\tif (This == NULL || outValue == NULL) return kAudio_ParamError;\n\t\tresult = This->GetParameter(inID, inScope, inElement, *outValue);\n\t}\n\tCOMPONENT_CATCH\n\t\n\treturn result;\n}\n\nOSStatus CMgr_AudioUnitBaseSetParameter(\tAUBase * \t\t\t\tThis,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tfloat\t\t\t\t\tinValue,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinBufferOffset)\n{\n\tOSStatus result = AUBase::noErr;\n\t\n\ttry {\n\t\tif (This == NULL) return kAudio_ParamError;\n\t\tresult = This->SetParameter(inID, inScope, inElement, inValue, inBufferOffset);\n\t}\n\tCOMPONENT_CATCH\n\t\n\treturn result;\n}\n\nOSStatus CMgr_AudioUnitBaseRender(\t\t\tAUBase *\t\t\t\tThis,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp *\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\tAudioBufferList *\t\tioData)\n{\n\tif (inTimeStamp == NULL || ioData == NULL) return kAudio_ParamError;\n\t\n\tOSStatus result = AUBase::noErr;\n\tAudioUnitRenderActionFlags tempFlags;\n\t\n\ttry {\n\t\tif (ioActionFlags == NULL) {\n\t\t\ttempFlags = 0;\n\t\t\tioActionFlags = &tempFlags;\n\t\t}\n\t\tresult = This->DoRender(*ioActionFlags, *inTimeStamp, inBusNumber, inNumberFrames, *ioData);\n\t}\n\tCOMPONENT_CATCH\n\t\n\treturn result;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUDispatch.h",
    "content": "/*\n     File: AUDispatch.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUDispatch_h__\n#define __AUDispatch_h__\n\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnit.h>\n#else\n\t#include \"AudioUnit.h\"\n#endif\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n/*! @function AudioUnitBaseGetParameter */\nOSStatus CMgr_AudioUnitBaseGetParameter(\tAUBase *\t\t\t\tThis,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tfloat *\t\t\t\t\toutValue);\n\n/*! @function AudioUnitBaseSetParameter */\nOSStatus CMgr_AudioUnitBaseSetParameter(\tAUBase *\t\t \t\tThis,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tfloat\t\t\t\t\tinValue,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinBufferOffset);\n\n/*! @function AudioUnitBaseRender */\nOSStatus CMgr_AudioUnitBaseRender(\t\t\tAUBase *\t\t\t\tThis,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp *\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\tAudioBufferList *\t\tioData);\n#endif\n\n#endif // __AUDispatch_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.cpp",
    "content": "/*\n     File: AUInputElement.cpp\n Abstract: AUInputElement.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUBase.h\"\n\ninline bool\tHasGoodBufferPointers(const AudioBufferList &abl, UInt32 nBytes)\n{\n\tconst AudioBuffer *buf = abl.mBuffers;\n\tfor (UInt32 i = abl.mNumberBuffers; i--;++buf) {\n\t\tif (buf->mData == NULL || buf->mDataByteSize < nBytes)\n\t\t\treturn false;\n\t}\n\treturn true;\n}\n\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\tAUInputElement::AUInputElement\n//\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nAUInputElement::AUInputElement(AUBase *audioUnit) :\n\tAUIOElement(audioUnit),\n\tmInputType(kNoInput)\n{\n}\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\tAUInputElement::SetConnection\n//\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nvoid\tAUInputElement::SetConnection(const AudioUnitConnection &conn)\n{\n\tif (conn.sourceAudioUnit == 0) {\n\t\tDisconnect();\n\t\treturn;\n\t}\t\n\t\n\tmInputType = kFromConnection;\n\tmConnection = conn;\n\tAllocateBuffer();\n\n\tmConnInstanceStorage = NULL;\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\tmConnRenderProc = NULL;\n\tUInt32 size = sizeof(AudioUnitRenderProc);\n\tOSStatus result = AudioUnitGetProperty(\tconn.sourceAudioUnit,\n\t\t\t\t\t\t\tkAudioUnitProperty_FastDispatch,\n\t\t\t\t\t\t\tkAudioUnitScope_Global,\n\t\t\t\t\t\t\tkAudioUnitRenderSelect,\n\t\t\t\t\t\t\t&mConnRenderProc,\n\t\t\t\t\t\t\t&size);\n\tif (result == noErr)\n\t\tmConnInstanceStorage = CMgr_GetComponentInstanceStorage (conn.sourceAudioUnit);\n\telse\n\t\tmConnRenderProc = NULL;\n#endif\n}\n\nvoid\tAUInputElement::Disconnect()\n{\n\tmInputType = kNoInput;\n\tmIOBuffer.Deallocate();\n}\n\n\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\tAUInputElement::SetInputCallback\n//\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nvoid\tAUInputElement::SetInputCallback(AURenderCallback proc, void *refCon)\n{\n\tif (proc == NULL)\n\t\tDisconnect();\n\telse {\n\t\tmInputType = kFromCallback;\n\t\tmInputProc = proc;\n\t\tmInputProcRefCon = refCon;\n\t\tAllocateBuffer();\n\t}\n}\n\nOSStatus\tAUInputElement::SetStreamFormat(const CAStreamBasicDescription &fmt)\n{\n\tOSStatus err = AUIOElement::SetStreamFormat(fmt);\n\tif (err == AUBase::noErr)\n\t\tAllocateBuffer();\n\treturn err;\n}\n\nOSStatus\t\tAUInputElement::PullInput(\tAudioUnitRenderActionFlags &  \tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnFrames)\n{\t\n\tif (!IsActive())\n\t\treturn kAudioUnitErr_NoConnection;\n\t\t\n\tAudioBufferList *pullBuffer;\n\t\n\tif (HasConnection() || !WillAllocateBuffer())\n\t\tpullBuffer = &mIOBuffer.PrepareNullBuffer(mStreamFormat, nFrames);\n\telse\n\t\tpullBuffer = &mIOBuffer.PrepareBuffer(mStreamFormat, nFrames);\n\t\n\treturn PullInputWithBufferList (ioActionFlags, inTimeStamp, inElement, nFrames, pullBuffer);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUInputElement.h",
    "content": "/*\n     File: AUInputElement.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUInput_h__\n#define __AUInput_h__\n\n#include \"AUScopeElement.h\"\n#include \"AUBuffer.h\"\n\n/*! @class AUInputElement */\nclass AUInputElement : public AUIOElement {\npublic:\n\t\n\t/*! @ctor AUInputElement */\n\t\t\t\t\t\tAUInputElement(AUBase *audioUnit);\n\t/*! @dtor ~AUInputElement */\n\tvirtual\t\t\t\t~AUInputElement() { }\n\n\t// AUElement override\n\t/*! @method SetStreamFormat */\n\tvirtual OSStatus\tSetStreamFormat(const CAStreamBasicDescription &desc);\n\t/*! @method NeedsBufferSpace */\n\tvirtual bool\t\tNeedsBufferSpace() const { return IsCallback(); }\n\n\t/*! @method SetConnection */\n\tvoid\t\t\t\tSetConnection(const AudioUnitConnection &conn);\n\t/*! @method SetInputCallback */\n\tvoid\t\t\t\tSetInputCallback(AURenderCallback proc, void *refCon);\n\n\t/*! @method IsActive */\n\tbool\t\t\t\tIsActive() const { return mInputType != kNoInput; }\n\t/*! @method IsCallback */\n\tbool\t\t\t\tIsCallback() const { return mInputType == kFromCallback; }\n\t/*! @method HasConnection */\n\tbool\t\t\t\tHasConnection() const { return mInputType == kFromConnection; }\n\n\t/*! @method PullInput */\n\tOSStatus\t\t\tPullInput(\tAudioUnitRenderActionFlags &  \tioActionFlags,\n\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames);\n\n\t/*! @method PullInputWithBufferList */\n\tOSStatus\t\t\tPullInputWithBufferList(\tAudioUnitRenderActionFlags &  \tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnFrames,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList *\t\t\t\tinBufferList);\nprotected:\n\t/*! @method Disconnect */\n\tvoid\t\t\t\tDisconnect();\n\n\tenum EInputType { kNoInput, kFromConnection, kFromCallback };\n\n\t/*! @var mInputType */\n\tEInputType\t\t\t\t\tmInputType;\n\n\t// if from callback:\n\t/*! @var mInputProc */\n\tAURenderCallback\t\t\tmInputProc;\n\t/*! @var mInputProcRefCon */\n\tvoid *\t\t\t\t\t\tmInputProcRefCon;\n\t\n\t// if from connection:\n\t/*! @var mConnection */\n\tAudioUnitConnection\t\t\tmConnection;\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t/*! @var mConnRenderProc */\n\tAudioUnitRenderProc\t\t\tmConnRenderProc;\n#endif\n\t/*! @var mConnInstanceStorage */\n\tvoid *\t\t\t\t\t\tmConnInstanceStorage;\t\t// for the input component\n};\n\n\n#endif // __AUInput_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.cpp",
    "content": "/*\n     File: AUOutputElement.cpp\n Abstract: AUOutputElement.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUOutputElement.h\"\n#include \"AUBase.h\"\n\nAUOutputElement::AUOutputElement(AUBase *audioUnit) : \n\tAUIOElement(audioUnit)\n{\n\tAllocateBuffer();\n}\n\nOSStatus\tAUOutputElement::SetStreamFormat(const CAStreamBasicDescription &desc)\n{\n\tOSStatus result = AUIOElement::SetStreamFormat(desc);\t// inherited\n\tif (result == AUBase::noErr)\n\t\tAllocateBuffer();\n\treturn result;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUOutputElement.h",
    "content": "/*\n     File: AUOutputElement.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUOutput_h__\n#define __AUOutput_h__\n\n#include \"AUScopeElement.h\"\n#include \"AUBuffer.h\"\n\n\t/*! @class AUOutputElement */\nclass AUOutputElement : public AUIOElement {\npublic:\n\t/*! @ctor AUOutputElement */\n\t\t\t\t\t\tAUOutputElement(AUBase *audioUnit);\n\n\t// AUElement override\n\t/*! @method SetStreamFormat */\n\tvirtual OSStatus\tSetStreamFormat(const CAStreamBasicDescription &desc);\n\t/*! @method NeedsBufferSpace */\n\tvirtual bool\t\tNeedsBufferSpace() const { return true; }\n};\n\n#endif // __AUOutput_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.cpp",
    "content": "/*\n     File: AUPlugInDispatch.cpp\n Abstract: AUPlugInDispatch.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUPlugInDispatch.h\"\n#include \"CAXException.h\"\n#include \"ComponentBase.h\"\n#include \"AUBase.h\"\n\n#define ACPI ((AudioComponentPlugInInstance *)self)\n#define AUI\t((AUBase *)&ACPI->mInstanceStorage)\n\n#define AUI_LOCK CAMutex::Locker auLock(AUI->GetMutex());\n\n// ------------------------------------------------------------------------------------------------\nstatic OSStatus AUMethodInitialize(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->DoInitialize();\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodUninitialize(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tAUI->DoCleanup();\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodGetPropertyInfo(void *self, AudioUnitPropertyID prop, AudioUnitScope scope, AudioUnitElement elem, UInt32 *outDataSize, Boolean *outWritable)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tUInt32 dataSize = 0;        // 13517289 GetPropetyInfo was returning an uninitialized value when there is an error. This is a problem for auval.\n\t\tBoolean writable = false;\n\t\t\n\t\tAUI_LOCK\n\t\tresult = AUI->DispatchGetPropertyInfo(prop, scope, elem, dataSize, writable);\n\t\tif (outDataSize != NULL)\n\t\t\t*outDataSize = dataSize;\n\t\tif (outWritable != NULL)\n\t\t\t*outWritable = writable;\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodGetProperty(void *self, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void *outData, UInt32 *ioDataSize)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tUInt32 actualPropertySize, clientBufferSize;\n\t\tBoolean writable;\n\t\tchar *tempBuffer;\n\t\tvoid *destBuffer;\n\t\t\n\t\tAUI_LOCK\n\t\tif (ioDataSize == NULL) {\n\t\t\tca_debug_string(\"AudioUnitGetProperty: null size pointer\");\n\t\t\tresult = kAudio_ParamError;\n\t\t\tgoto finishGetProperty;\n\t\t}\n\t\tif (outData == NULL) {\n\t\t\tUInt32 dataSize;\n\t\t\t\n\t\t\tresult = AUI->DispatchGetPropertyInfo(inID, inScope, inElement, dataSize, writable);\n\t\t\t*ioDataSize = dataSize;\n\t\t\tgoto finishGetProperty;\n\t\t}\n\t\t\n\t\tclientBufferSize = *ioDataSize;\n\t\tif (clientBufferSize == 0)\n\t\t{\n\t\t\tca_debug_string(\"AudioUnitGetProperty: *ioDataSize == 0 on entry\");\n\t\t\t// $$$ or should we allow this as a shortcut for finding the size?\n\t\t\tresult = kAudio_ParamError;\n\t\t\tgoto finishGetProperty;\n\t\t}\n\t\t\n\t\tresult = AUI->DispatchGetPropertyInfo(inID, inScope, inElement, actualPropertySize, writable);\n\t\tif (result != noErr) \n\t\t\tgoto finishGetProperty;\n\t\t\n\t\tif (clientBufferSize < actualPropertySize) \n\t\t{\n\t\t\ttempBuffer = new char[actualPropertySize];\n\t\t\tdestBuffer = tempBuffer;\n\t\t} else {\n\t\t\ttempBuffer = NULL;\n\t\t\tdestBuffer = outData;\n\t\t}\n\t\t\n\t\tresult = AUI->DispatchGetProperty(inID, inScope, inElement, destBuffer);\n\t\t\n\t\tif (result == noErr) {\n\t\t\tif (clientBufferSize < actualPropertySize && tempBuffer != NULL)\n\t\t\t{\n\t\t\t\tmemcpy(outData, tempBuffer, clientBufferSize);\n\t\t\t\tdelete[] tempBuffer;\n\t\t\t\t// ioDataSize remains correct, the number of bytes we wrote\n\t\t\t} else\n\t\t\t\t*ioDataSize = actualPropertySize;\n\t\t} else\n\t\t\t*ioDataSize = 0;\n\t}\n\tCOMPONENT_CATCH\nfinishGetProperty:\n\treturn result;\n}\n\nstatic OSStatus AUMethodSetProperty(void *self, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void *inData, UInt32 inDataSize)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tif (inData && inDataSize)\n\t\t\tresult = AUI->DispatchSetProperty(inID, inScope, inElement, inData, inDataSize);\n\t\telse {\n\t\t\tif (inData == NULL && inDataSize == 0) {\n\t\t\t\tresult = AUI->DispatchRemovePropertyValue(inID, inScope, inElement);\n\t\t\t} else {\n\t\t\t\tif (inData == NULL) {\n\t\t\t\t\tca_debug_string(\"AudioUnitSetProperty: inData == NULL\");\n\t\t\t\t\tresult = kAudio_ParamError;\n\t\t\t\t\tgoto finishSetProperty;\n\t\t\t\t}\n\n\t\t\t\tif (inDataSize == 0) {\n\t\t\t\t\tca_debug_string(\"AudioUnitSetProperty: inDataSize == 0\");\n\t\t\t\t\tresult = kAudio_ParamError;\n\t\t\t\t\tgoto finishSetProperty;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tCOMPONENT_CATCH\nfinishSetProperty:\n\treturn result;\n}\n\nstatic OSStatus AUMethodAddPropertyListener(void *self, AudioUnitPropertyID prop, AudioUnitPropertyListenerProc proc, void *userData)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->AddPropertyListener(prop, proc, userData);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodRemovePropertyListener(void *self, AudioUnitPropertyID prop, AudioUnitPropertyListenerProc proc)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->RemovePropertyListener(prop, proc, NULL, false);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodRemovePropertyListenerWithUserData(void *self, AudioUnitPropertyID prop, AudioUnitPropertyListenerProc proc, void *userData)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->RemovePropertyListener(prop, proc, userData, true);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodAddRenderNotify(void *self, AURenderCallback proc, void *userData)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->SetRenderNotification(proc, userData);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodRemoveRenderNotify(void *self, AURenderCallback proc, void *userData)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->RemoveRenderNotification(proc, userData);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodGetParameter(void *self, AudioUnitParameterID param, AudioUnitScope scope, AudioUnitElement elem, AudioUnitParameterValue *value)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = (value == NULL ? kAudio_ParamError : AUI->GetParameter(param, scope, elem, *value));\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodSetParameter(void *self, AudioUnitParameterID param, AudioUnitScope scope, AudioUnitElement elem, AudioUnitParameterValue value, UInt32 bufferOffset)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t// this is a (potentially) realtime method; no lock\n\t\tresult = AUI->SetParameter(param, scope, elem, value, bufferOffset);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodScheduleParameters(void *self, const AudioUnitParameterEvent *events, UInt32 numEvents)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t// this is a (potentially) realtime method; no lock\n\t\tresult = AUI->ScheduleParameter(events, numEvents);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodRender(void *self, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inOutputBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData)\n{\n\tOSStatus result = noErr;\n\n#if !TARGET_OS_IPHONE\n\ttry {\n#endif\n\t\t// this is a processing method; no lock\n\t\tAudioUnitRenderActionFlags tempFlags;\n\t\t\n\t\tif (inTimeStamp == NULL || ioData == NULL)\n\t\t\tresult = kAudio_ParamError;\n\t\telse {\n\t\t\tif (ioActionFlags == NULL) {\n\t\t\t\ttempFlags = 0;\n\t\t\t\tioActionFlags = &tempFlags;\n\t\t\t}\n\t\t\tresult = AUI->DoRender(*ioActionFlags, *inTimeStamp, inOutputBusNumber, inNumberFrames, *ioData);\n\t\t}\n\n#if !TARGET_OS_IPHONE\n\t}\n\tCOMPONENT_CATCH\n#endif\n\n\treturn result;\n}\n\nstatic OSStatus AUMethodComplexRender(void *self, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inOutputBusNumber, UInt32 inNumberOfPackets, UInt32 *outNumberOfPackets, AudioStreamPacketDescription *outPacketDescriptions, AudioBufferList *ioData, void *outMetadata, UInt32 *outMetadataByteSize)\n{\n\tOSStatus result = noErr;\n\n#if !TARGET_OS_IPHONE\n\ttry {\n#endif\n\t\t// this is a processing method; no lock\n\t\tAudioUnitRenderActionFlags tempFlags;\n\t\t\n\t\tif (inTimeStamp == NULL || ioData == NULL)\n\t\t\tresult = kAudio_ParamError;\n\t\telse {\n\t\t\tif (ioActionFlags == NULL) {\n\t\t\t\ttempFlags = 0;\n\t\t\t\tioActionFlags = &tempFlags;\n\t\t\t}\n\t\t\tresult = AUI->ComplexRender(*ioActionFlags, *inTimeStamp, inOutputBusNumber, inNumberOfPackets, outNumberOfPackets, outPacketDescriptions, *ioData, outMetadata, outMetadataByteSize);\n\t\t}\n\n#if !TARGET_OS_IPHONE\n\t}\n\tCOMPONENT_CATCH\n#endif\n\n\treturn result;\n}\n\nstatic OSStatus AUMethodReset(void *self, AudioUnitScope scope, AudioUnitElement elem)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->Reset(scope, elem);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodProcess (void *self, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inNumberFrames, AudioBufferList *ioData)\n{\n\tOSStatus result = noErr;\n\n#if !TARGET_OS_IPHONE\n\ttry {\n#endif\n\t\t// this is a processing method; no lock\n\t\tbool doParamCheck = true;\n\n\t\tAudioUnitRenderActionFlags tempFlags;\n\n\t\tif (ioActionFlags == NULL) {\n\t\t\ttempFlags = 0;\n\t\t\tioActionFlags = &tempFlags;\n\t\t} else {\n\t\t\tif (*ioActionFlags & (1 << 9)/*kAudioUnitRenderAction_DoNotCheckRenderArgs*/)\n\t\t\t\tdoParamCheck = false;\n\t\t}\n\t\t\n\t\tif (doParamCheck && (inTimeStamp == NULL || ioData == NULL))\n\t\t\tresult = kAudio_ParamError;\n\t\telse {\n\t\t\tresult = AUI->DoProcess(*ioActionFlags, *inTimeStamp, inNumberFrames, *ioData);\n\t\t}\n\n#if !TARGET_OS_IPHONE\n\t}\n\tCOMPONENT_CATCH\n#endif\n\n\treturn result;\n}\n\nstatic OSStatus AUMethodProcessMultiple (void *self, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inNumberFrames, UInt32 inNumberInputBufferLists, const AudioBufferList **inInputBufferLists, UInt32 inNumberOutputBufferLists, AudioBufferList **ioOutputBufferLists)\n{\n\tOSStatus result = noErr;\n\t\n#if !TARGET_OS_IPHONE\n\ttry {\n#endif\n\t\t// this is a processing method; no lock\n\t\tbool doParamCheck = true;\n\t\t\n\t\tAudioUnitRenderActionFlags tempFlags;\n\t\t\n\t\tif (ioActionFlags == NULL) {\n\t\t\ttempFlags = 0;\n\t\t\tioActionFlags = &tempFlags;\n\t\t} else {\n\t\t\tif (*ioActionFlags & (1 << 9)/*kAudioUnitRenderAction_DoNotCheckRenderArgs*/)\n\t\t\t\tdoParamCheck = false;\n\t\t}\n\n\t\tif (doParamCheck && (inTimeStamp == NULL || inInputBufferLists == NULL || ioOutputBufferLists == NULL))\n\t\t\tresult = kAudio_ParamError;\n\t\telse {\n\t\t\tresult = AUI->DoProcessMultiple(*ioActionFlags, *inTimeStamp, inNumberFrames, inNumberInputBufferLists, inInputBufferLists, inNumberOutputBufferLists, ioOutputBufferLists);\n\t\t}\n\t\t\n#if !TARGET_OS_IPHONE\n\t}\n\tCOMPONENT_CATCH\n#endif\n\n\treturn result;\n}\n// ------------------------------------------------------------------------------------------------\n\nstatic OSStatus AUMethodStart(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->Start();\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodStop(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUI_LOCK\n\t\tresult = AUI->Stop();\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\n// ------------------------------------------------------------------------------------------------\n\n#if !CA_BASIC_AU_FEATURES\n// I don't know what I'm doing here; conflicts with the multiple inheritence in MusicDeviceBase.\nstatic OSStatus AUMethodMIDIEvent(void *self, UInt32 inStatus, UInt32 inData1, UInt32 inData2, UInt32 inOffsetSampleFrame)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t// this is a potential render-time method; no lock\n\t\tresult = AUI->MIDIEvent(inStatus, inData1, inData2, inOffsetSampleFrame);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodSysEx(void *self, const UInt8 *inData, UInt32 inLength)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t// this is a potential render-time method; no lock\n\t\tresult = AUI->SysEx(inData, inLength);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodStartNote(void *self, MusicDeviceInstrumentID inInstrument, MusicDeviceGroupID inGroupID, NoteInstanceID *outNoteInstanceID, UInt32 inOffsetSampleFrame, const MusicDeviceNoteParams *inParams)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t// this is a potential render-time method; no lock\n\t\tif (inParams == NULL || outNoteInstanceID == NULL) \n\t\t\tresult = kAudio_ParamError;\n\t\telse\n\t\t\tresult = AUI->StartNote(inInstrument, inGroupID, outNoteInstanceID, inOffsetSampleFrame, *inParams);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodStopNote(void *self, MusicDeviceGroupID inGroupID, NoteInstanceID inNoteInstanceID, UInt32 inOffsetSampleFrame)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t// this is a potential render-time method; no lock\n\t\tresult = AUI->StopNote(inGroupID, inNoteInstanceID, inOffsetSampleFrame);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\n#if !TARGET_OS_IPHONE\nstatic OSStatus AUMethodPrepareInstrument (void *self, MusicDeviceInstrumentID inInstrument)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t// this is a potential render-time method; no lock\n\t\tresult = AUI->PrepareInstrument(inInstrument);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nstatic OSStatus AUMethodReleaseInstrument (void *self, MusicDeviceInstrumentID inInstrument)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\t// this is a potential render-time method; no lock\n\t\tresult = AUI->ReleaseInstrument(inInstrument);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n#endif // TARGET_OS_IPHONE\n#endif // CA_BASIC_AU_FEATURES\n\n\n//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n#pragma mark -\n#pragma mark Lookup Methods\n\nAudioComponentMethod AUBaseLookup::Lookup (SInt16 selector)\n{\n\tswitch (selector) {\n\t\tcase kAudioUnitInitializeSelect:\t\treturn (AudioComponentMethod)AUMethodInitialize;\n\t\tcase kAudioUnitUninitializeSelect:\t\treturn (AudioComponentMethod)AUMethodUninitialize;\n\t\tcase kAudioUnitGetPropertyInfoSelect:\treturn (AudioComponentMethod)AUMethodGetPropertyInfo;\n\t\tcase kAudioUnitGetPropertySelect:\t\treturn (AudioComponentMethod)AUMethodGetProperty;\n\t\tcase kAudioUnitSetPropertySelect:\t\treturn (AudioComponentMethod)AUMethodSetProperty;\n\t\tcase kAudioUnitAddPropertyListenerSelect:return (AudioComponentMethod)AUMethodAddPropertyListener;\n\t\tcase kAudioUnitRemovePropertyListenerSelect:\n\t\t\t\t\t\t\t\t\t\t\t\treturn (AudioComponentMethod)AUMethodRemovePropertyListener;\n\t\tcase kAudioUnitRemovePropertyListenerWithUserDataSelect:\n\t\t\t\t\t\t\t\t\t\t\t\treturn (AudioComponentMethod)AUMethodRemovePropertyListenerWithUserData;\n\t\tcase kAudioUnitAddRenderNotifySelect:\treturn (AudioComponentMethod)AUMethodAddRenderNotify;\n\t\tcase kAudioUnitRemoveRenderNotifySelect:return (AudioComponentMethod)AUMethodRemoveRenderNotify;\n\t\tcase kAudioUnitGetParameterSelect:\t\treturn (AudioComponentMethod)AUMethodGetParameter;\n\t\tcase kAudioUnitSetParameterSelect:\t\treturn (AudioComponentMethod)AUMethodSetParameter;\n\t\tcase kAudioUnitScheduleParametersSelect:return (AudioComponentMethod)AUMethodScheduleParameters;\n\t\tcase kAudioUnitRenderSelect:\t\t\treturn (AudioComponentMethod)AUMethodRender;\n\t\tcase kAudioUnitResetSelect:\t\t\t\treturn (AudioComponentMethod)AUMethodReset;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\treturn NULL;\n}\n\nAudioComponentMethod AUOutputLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AUBaseLookup::Lookup(selector);\n\tif (method) return method;\n\n\tswitch (selector) {\n\t\tcase kAudioOutputUnitStartSelect:\treturn (AudioComponentMethod)AUMethodStart;\n\t\tcase kAudioOutputUnitStopSelect:\treturn (AudioComponentMethod)AUMethodStop;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\treturn NULL;\n}\n\nAudioComponentMethod AUComplexOutputLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AUBaseLookup::Lookup(selector);\n\tif (method) return method;\n\t\n\tmethod = AUOutputLookup::Lookup(selector);\n\tif (method) return method;\n\t\n\tif (selector == kAudioUnitComplexRenderSelect)\n\t\treturn (AudioComponentMethod)AUMethodComplexRender;\n\treturn NULL;\n}\n\nAudioComponentMethod AUBaseProcessLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AUBaseLookup::Lookup(selector);\n\tif (method) return method;\n\t\n\tif (selector == kAudioUnitProcessSelect)\n\t\treturn (AudioComponentMethod)AUMethodProcess;\n\t\n\treturn NULL;\n}\n\nAudioComponentMethod AUBaseProcessMultipleLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AUBaseLookup::Lookup(selector);\n\tif (method) return method;\n    \n\tif (selector == kAudioUnitProcessMultipleSelect)\n\t\treturn (AudioComponentMethod)AUMethodProcessMultiple;\n\t\n\treturn NULL;\n}\n\nAudioComponentMethod AUBaseProcessAndMultipleLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AUBaseLookup::Lookup(selector);\n\tif (method) return method;\n\n\tmethod = AUBaseProcessMultipleLookup::Lookup(selector);\n\tif (method) return method;\n    \n\tmethod = AUBaseProcessLookup::Lookup(selector);\n\tif (method) return method;\n\n\treturn NULL;\n}\n\n#if !CA_BASIC_AU_FEATURES\ninline AudioComponentMethod MIDI_Lookup (SInt16 selector)\n{\n\tswitch (selector) {\n\t\tcase kMusicDeviceMIDIEventSelect:\treturn (AudioComponentMethod)AUMethodMIDIEvent;\n\t\tcase kMusicDeviceSysExSelect:\t\treturn (AudioComponentMethod)AUMethodSysEx;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\treturn NULL;\n}\n\nAudioComponentMethod AUMIDILookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AUBaseLookup::Lookup(selector);\n\tif (method) return method;\n\t\n\treturn MIDI_Lookup(selector);\n}\n\nAudioComponentMethod AUMIDIProcessLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AUBaseProcessLookup::Lookup(selector);\n\tif (method) return method;\n\t\n\treturn MIDI_Lookup(selector);\n}\n\nAudioComponentMethod AUMusicLookup::Lookup (SInt16 selector)\n{\n\tAudioComponentMethod method = AUBaseLookup::Lookup(selector);\n\tif (method) return method;\n\n\tswitch (selector) {\n\t\tcase kMusicDeviceStartNoteSelect:\treturn (AudioComponentMethod)AUMethodStartNote;\n\t\tcase kMusicDeviceStopNoteSelect:\treturn (AudioComponentMethod)AUMethodStopNote;\n#if !TARGET_OS_IPHONE\n\t\tcase kMusicDevicePrepareInstrumentSelect:\treturn (AudioComponentMethod)AUMethodPrepareInstrument;\n\t\tcase kMusicDeviceReleaseInstrumentSelect:\treturn (AudioComponentMethod)AUMethodReleaseInstrument;\n#endif\n\t\tdefault:\t\t\n\t\t\tbreak;\n\t}\n\treturn MIDI_Lookup (selector);\n}\n\nAudioComponentMethod AUAuxBaseLookup::Lookup (SInt16 selector)\n{\n\tswitch (selector) {\n\t\tcase kAudioUnitGetPropertyInfoSelect:\treturn (AudioComponentMethod)AUMethodGetPropertyInfo;\n\t\tcase kAudioUnitGetPropertySelect:\t\treturn (AudioComponentMethod)AUMethodGetProperty;\n\t\tcase kAudioUnitSetPropertySelect:\t\treturn (AudioComponentMethod)AUMethodSetProperty;\n            \n\t\tcase kAudioUnitGetParameterSelect:\t\treturn (AudioComponentMethod)AUMethodGetParameter;\n\t\tcase kAudioUnitSetParameterSelect:\t\treturn (AudioComponentMethod)AUMethodSetParameter;\n            \n\t\tdefault:\n\t\t\tbreak;\n\t}\n\treturn NULL;\n}\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUPlugInDispatch.h",
    "content": "/*\n     File: AUPlugInDispatch.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUPlugInBase_h__\n#define __AUPlugInBase_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioComponent.h>\n\t#if !CA_BASIC_AU_FEATURES\n\t\t#include <AudioUnit/MusicDevice.h>\n\t#endif\n#else\n\t#include \"AudioComponent.h\"\n\t#include \"MusicDevice.h\"\n#endif\n\n#include \"ComponentBase.h\"\n\nstruct AUBaseLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUBaseFactory : public APFactory<AUBaseLookup, Implementor>\n{\n};\n\nstruct AUOutputLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUOutputBaseFactory : public APFactory<AUOutputLookup, Implementor>\n{\n};\n\nstruct AUComplexOutputLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUOutputComplexBaseFactory : public APFactory<AUComplexOutputLookup, Implementor>\n{\n};\n\nstruct AUBaseProcessLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUBaseProcessFactory : public APFactory<AUBaseProcessLookup, Implementor>\n{\n};\n\nstruct AUBaseProcessMultipleLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUBaseProcessMultipleFactory : public APFactory<AUBaseProcessMultipleLookup, Implementor>\n{\n};\n\nstruct AUBaseProcessAndMultipleLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUBaseProcessAndMultipleFactory : public APFactory<AUBaseProcessAndMultipleLookup, Implementor>\n{\n};\n\n#if !CA_BASIC_AU_FEATURES\nstruct AUMIDILookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUMIDIEffectFactory : public APFactory<AUMIDILookup, Implementor>\n{\n};\n\nstruct AUMIDIProcessLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUMIDIProcessFactory : public APFactory<AUMIDIProcessLookup, Implementor>\n{\n};\n\nstruct AUMusicLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUMusicDeviceFactory : public APFactory<AUMusicLookup, Implementor>\n{\n};\n\nstruct AUAuxBaseLookup {\n\tstatic AudioComponentMethod Lookup (SInt16 selector);\n};\ntemplate <class Implementor>\nclass AUAuxBaseFactory : public APFactory<AUAuxBaseLookup, Implementor>\n{\n};\n#endif // CA_BASIC_AU_FEATURES\n\n#endif // __AUPlugInBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUResources.r",
    "content": "/*\n     File: AUResources.r\n Abstract: AUResources.r\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\tAUResources.r\n//\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/\n\n/* sample macro definitions -- all of these symbols must be defined\n#define RES_ID\t\t\tkHALOutputResID\n#define COMP_TYPE\t\tkAudioUnitComponentType\n#define COMP_SUBTYPE\tkAudioUnitOutputSubType\n#define COMP_MANUF\t\tkAudioUnitAudioHardwareOutputSubSubType\n#define VERSION\t\t\t0x00010000\n#define NAME\t\t\t\"AudioHALOutput\"\n#define DESCRIPTION\t\t\"Audio hardware output AudioUnit\"\n#define ENTRY_POINT\t\t\"AUHALEntry\"\n*/\n#define UseExtendedThingResource 1\n\n#include <CoreServices/CoreServices.r>\n\n// this is a define used to indicate that a component has no static data that would mean \n// that no more than one instance could be open at a time - never been true for AUs\n#ifndef cmpThreadSafeOnMac\n#define cmpThreadSafeOnMac\t0x10000000\n#endif\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nresource 'STR ' (RES_ID, purgeable) {\n\tNAME\n};\n\nresource 'STR ' (RES_ID + 1, purgeable) {\n\tDESCRIPTION\n};\n\nresource 'dlle' (RES_ID) {\n\tENTRY_POINT\n};\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nresource 'thng' (RES_ID, NAME) {\n\tCOMP_TYPE,\n\tCOMP_SUBTYPE,\n\tCOMP_MANUF,\n\t0, 0, 0, 0,\t\t\t\t\t\t\t\t//\tno 68K\n\t'STR ',\tRES_ID,\n\t'STR ',\tRES_ID + 1,\n\t0,\t0,\t\t\t/* icon */\n\tVERSION,\n\tcomponentHasMultiplePlatforms | componentDoAutoVersion,\n\t0,\n\t{\n\t#if defined(ppc_YES)\n\t\t\tcmpThreadSafeOnMac,\n\t\t\t'dlle', RES_ID, platformPowerPCNativeEntryPoint\n\t\t\t#define NeedLeadingComma 1\n\t#endif\n\t#if defined(ppc64_YES)\n\t\t#if defined(NeedLeadingComma)\n\t\t\t,\n\t\t#endif\n\t\t\tcmpThreadSafeOnMac,\n\t\t\t'dlle', RES_ID, platformPowerPC64NativeEntryPoint\n\t\t\t#define NeedLeadingComma 1\n\t#endif\n\t#if defined(i386_YES)\n\t\t#if defined(NeedLeadingComma)\n\t\t\t,\n\t\t#endif\n\t\t\tcmpThreadSafeOnMac,\n\t\t\t'dlle', RES_ID, platformIA32NativeEntryPoint\n\t\t\t#define NeedLeadingComma 1\n\t#endif\n\t#if defined(x86_64_YES)\n\t\t#if defined(NeedLeadingComma)\n\t\t\t,\n\t\t#endif\n\t\t\tcmpThreadSafeOnMac,\n\t\t\t'dlle', RES_ID, 8\n\t\t\t#define NeedLeadingComma 1\n\t#endif\n\t}\n};\n\n#undef RES_ID\n#undef COMP_TYPE\n#undef COMP_SUBTYPE\n#undef COMP_MANUF\n#undef VERSION\n#undef NAME\n#undef DESCRIPTION\n#undef ENTRY_POINT\n#undef NeedLeadingComma\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.cpp",
    "content": "/*\n     File: AUScopeElement.cpp\n Abstract: AUScopeElement.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUScopeElement.h\"\n#include \"AUBase.h\"\n\n//_____________________________________________________________________________\n//\n//\tBy default, parameterIDs may be arbitrarily spaced, and an STL map\n//  will be used for access.  Calling UseIndexedParameters() will\n//\tinstead use an STL vector for faster indexed access.\n//\tThis assumes the paramIDs are numbered 0.....inNumberOfParameters-1\n//\tCall this before defining/adding any parameters with SetParameter()\n//\nvoid\tAUElement::UseIndexedParameters(int inNumberOfParameters)\n{\n\tmIndexedParameters.resize (inNumberOfParameters);\t\n\tmUseIndexedParameters = true;\n}\n\n//_____________________________________________________________________________\n//\n//\tHelper method.\n//\treturns the ParameterMapEvent object associated with the paramID\n//\ninline ParameterMapEvent&\tAUElement::GetParamEvent(AudioUnitParameterID paramID)\n{\n\tParameterMapEvent *event;\n\t\n\tif(mUseIndexedParameters)\n\t{\n\t\tif(paramID >= mIndexedParameters.size() )\n\t\t\tCOMPONENT_THROW(kAudioUnitErr_InvalidParameter);\n\t\t\n\t\tevent = &mIndexedParameters[paramID];\n\t}\n\telse\n\t{\n\t\tParameterMap::iterator i = mParameters.find(paramID);\n\t\tif (i == mParameters.end())\n\t\t\tCOMPONENT_THROW(kAudioUnitErr_InvalidParameter);\n\t\t\t\n\t\tevent = &(*i).second;\n\t}\n\t\n\treturn *event;\n}\n\n//_____________________________________________________________________________\n//\n//\tHelper method.\n//\treturns whether the specified paramID is known to the element\n//\nbool\t\tAUElement::HasParameterID (AudioUnitParameterID paramID) const\n{\t\n\tif(mUseIndexedParameters)\n\t{\n\t\tif(paramID >= mIndexedParameters.size() )\n\t\t\treturn false;\n\t\t\n\t\treturn true;\n\t}\n\t\n\tParameterMap::const_iterator i = mParameters.find(paramID);\n\tif (i == mParameters.end())\n\t\treturn false;\n\t\t\n\treturn true;\n}\n\n//_____________________________________________________________________________\n//\n//\tcaller assumes that this is actually an immediate parameter\n//\nAudioUnitParameterValue\t\tAUElement::GetParameter(AudioUnitParameterID paramID)\n{\n\tParameterMapEvent &event = GetParamEvent(paramID);\n\t\n\treturn event.GetValue();\n}\n\n\n//_____________________________________________________________________________\n//\nvoid\t\t\tAUElement::GetRampSliceStartEnd(\tAudioUnitParameterID\t\tparamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutStartValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutEndValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutValuePerFrameDelta )\n\n{\n\tParameterMapEvent &event = GetParamEvent(paramID);\n\t\t\n\t// works even if the value is constant (immediate parameter value)\n\tevent.GetRampSliceStartEnd(outStartValue, outEndValue, outValuePerFrameDelta );\n}\n\n//_____________________________________________________________________________\n//\nAudioUnitParameterValue\t\t\tAUElement::GetEndValue(\tAudioUnitParameterID\t\tparamID)\n\n{\n\tParameterMapEvent &event = GetParamEvent(paramID);\n\t\t\n\t// works even if the value is constant (immediate parameter value)\n\treturn event.GetEndValue();\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\tAUElement::SetParameter(AudioUnitParameterID paramID, AudioUnitParameterValue inValue, bool okWhenInitialized)\n{\n\tif(mUseIndexedParameters)\n\t{\n\t\tParameterMapEvent &event = GetParamEvent(paramID);\n\t\tevent.SetValue(inValue);\n\t}\n\telse\n\t{\n\t\tParameterMap::iterator i = mParameters.find(paramID);\n\t\n\t\tif (i == mParameters.end())\n\t\t{\n\t\t\tif (mAudioUnit->IsInitialized() && !okWhenInitialized) {\n\t\t\t\t// The AU should not be creating new parameters once initialized.\n\t\t\t\t// If a client tries to set an undefined parameter, we could throw as follows, \n\t\t\t\t// but this might cause a regression. So it is better to just fail silently.\n\t\t\t\t// COMPONENT_THROW(kAudioUnitErr_InvalidParameter);\n#if DEBUG\n\t\t\t\tfprintf(stderr, \"WARNING: %s SetParameter for undefined param ID %d while initialized. Ignoring..\\n\", \n\t\t\t\t\t\t\t\tmAudioUnit->GetLoggingString(), (int)paramID);\n#endif\n\t\t\t} else {\n\t\t\t\t// create new entry in map for the paramID (only happens first time)\n\t\t\t\tParameterMapEvent event(inValue);\t\t\n\t\t\t\tmParameters[paramID] = event;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// paramID already exists in map so simply change its value\n\t\t\tParameterMapEvent &event = (*i).second;\n\t\t\tevent.SetValue(inValue);\n\t\t}\n\t}\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\tAUElement::SetScheduledEvent(\tAudioUnitParameterID \t\t\tparamID,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioUnitParameterEvent \t&inEvent,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinSliceOffsetInBuffer,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinSliceDurationFrames,\n\t\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\t\tokWhenInitialized )\n{\n\tif(mUseIndexedParameters)\n\t{\n\t\tParameterMapEvent &event = GetParamEvent(paramID);\n\t\tevent.SetScheduledEvent(inEvent, inSliceOffsetInBuffer, inSliceDurationFrames );\n\t}\n\telse\n\t{\n\t\tParameterMap::iterator i = mParameters.find(paramID);\n\t\n\t\tif (i == mParameters.end())\n\t\t{\n\t\t\tif (mAudioUnit->IsInitialized() && !okWhenInitialized) {\n\t\t\t\t// The AU should not be creating new parameters once initialized.\n\t\t\t\t// If a client tries to set an undefined parameter, we could throw as follows, \n\t\t\t\t// but this might cause a regression. So it is better to just fail silently.\n\t\t\t\t// COMPONENT_THROW(kAudioUnitErr_InvalidParameter);\n#if DEBUG\n\t\t\t\tfprintf(stderr, \"WARNING: %s SetScheduledEvent for undefined param ID %d while initialized. Ignoring..\\n\", \n\t\t\t\t\t\t\t\tmAudioUnit->GetLoggingString(), (int)paramID);\n#endif\n\t\t\t} else {\n\t\t\t\t// create new entry in map for the paramID (only happens first time)\n\t\t\t\tParameterMapEvent event(inEvent, inSliceOffsetInBuffer, inSliceDurationFrames);\t\t\n\t\t\t\tmParameters[paramID] = event;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// paramID already exists in map so simply change its value\n\t\t\tParameterMapEvent &event = (*i).second;\n\t\t\t\n\t\t\tevent.SetScheduledEvent(inEvent, inSliceOffsetInBuffer, inSliceDurationFrames );\n\t\t}\n\t}\n}\n\n\n\n//_____________________________________________________________________________\n//\nvoid\t\t\tAUElement::GetParameterList(AudioUnitParameterID *outList)\n{\n\tif(mUseIndexedParameters)\n\t{\n\t\tUInt32 nparams = static_cast<UInt32>(mIndexedParameters.size());\n\t\tfor (UInt32 i = 0; i < nparams; i++ )\n\t\t\t*outList++ = (AudioUnitParameterID)i;\n\t}\n\telse\n\t{\n\t\tfor (ParameterMap::iterator i = mParameters.begin(); i != mParameters.end(); ++i)\n\t\t\t*outList++ = (*i).first;\n\t}\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\tAUElement::SaveState(CFMutableDataRef data)\n{\n\tif(mUseIndexedParameters)\n\t{\n\t\tUInt32 nparams = static_cast<UInt32>(mIndexedParameters.size());\n\t\tUInt32 theData = CFSwapInt32HostToBig(nparams);\n\t\tCFDataAppendBytes(data, (UInt8 *)&theData, sizeof(nparams));\n\t\n\t\tfor (UInt32 i = 0; i < nparams; i++)\n\t\t{\n\t\t\tstruct {\n\t\t\t\tUInt32\t\t\t\tparamID;\n\t\t\t\t//CFSwappedFloat32\tvalue; crashes gcc3 PFE\n\t\t\t\tUInt32\t\t\t\tvalue;\t// really a big-endian float\n\t\t\t} entry;\n\t\t\t\n\t\t\tentry.paramID = CFSwapInt32HostToBig(i);\n\t\n\t\t\tAudioUnitParameterValue v = mIndexedParameters[i].GetValue();\n\t\t\tentry.value = CFSwapInt32HostToBig(*(UInt32 *)&v );\n\t\n\t\t\tCFDataAppendBytes(data, (UInt8 *)&entry, sizeof(entry));\n\t\t}\n\t}\n\telse\n\t{\n\t\tUInt32 nparams = CFSwapInt32HostToBig(static_cast<uint32_t>(mParameters.size()));\n\t\tCFDataAppendBytes(data, (UInt8 *)&nparams, sizeof(nparams));\n\t\n\t\tfor (ParameterMap::iterator i = mParameters.begin(); i != mParameters.end(); ++i) {\n\t\t\tstruct {\n\t\t\t\tUInt32\t\t\t\tparamID;\n\t\t\t\t//CFSwappedFloat32\tvalue; crashes gcc3 PFE\n\t\t\t\tUInt32\t\t\t\tvalue;\t// really a big-endian float\n\t\t\t} entry;\n\t\t\t\n\t\t\tentry.paramID = CFSwapInt32HostToBig((*i).first);\n\t\n\t\t\tAudioUnitParameterValue v = (*i).second.GetValue();\n\t\t\tentry.value = CFSwapInt32HostToBig(*(UInt32 *)&v );\n\t\n\t\t\tCFDataAppendBytes(data, (UInt8 *)&entry, sizeof(entry));\n\t\t}\n\t}\n}\n\n//_____________________________________________________________________________\n//\nconst UInt8 *\tAUElement::RestoreState(const UInt8 *state)\n{\n\tunion FloatInt32 { UInt32 i; AudioUnitParameterValue f; };\n\tconst UInt8 *p = state;\n\tUInt32 nparams = CFSwapInt32BigToHost(*(UInt32 *)p);\n\tp += sizeof(UInt32);\n\t\n\tfor (UInt32 i = 0; i < nparams; ++i) {\n\t\tstruct {\n\t\t\tAudioUnitParameterID\t\tparamID;\n\t\t\tAudioUnitParameterValue\t\tvalue;\n\t\t} entry;\n\t\t\n\t\tentry.paramID = CFSwapInt32BigToHost(*(UInt32 *)p);\n\t\tp += sizeof(UInt32);\n\t\tFloatInt32 temp;\n\t\ttemp.i = CFSwapInt32BigToHost(*(UInt32 *)p);\n\t\tentry.value = temp.f;\n\t\tp += sizeof(AudioUnitParameterValue);\n\t\t\n\t\tSetParameter(entry.paramID, entry.value);\n\t}\n\treturn p;\n}\n\n//_____________________________________________________________________________\n//\nvoid\tAUElement::SetName (CFStringRef inName) \n{ \n\tif (mElementName) CFRelease (mElementName);\n\tmElementName = inName; \n\tif (mElementName) CFRetain (mElementName);\n}\n\n\n//_____________________________________________________________________________\n//\nAUIOElement::AUIOElement(AUBase *audioUnit) :\n\tAUElement(audioUnit),\n\tmWillAllocate (true)\n{\n\tmStreamFormat.SetAUCanonical(2,\t// stereo\n\t\taudioUnit->AudioUnitAPIVersion() == 1);\n\t\t// interleaved if API version 1, deinterleaved if version 2\n\tmStreamFormat.mSampleRate = kAUDefaultSampleRate;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\t\tAUIOElement::SetStreamFormat(const CAStreamBasicDescription &desc)\n{\n\tmStreamFormat = desc;\n\treturn AUBase::noErr;\n}\n\n//_____________________________________________________________________________\n// inFramesToAllocate == 0 implies the AudioUnit's max-frames-per-slice will be used\nvoid\t\t\tAUIOElement::AllocateBuffer(UInt32 inFramesToAllocate)\n{\n\tif (GetAudioUnit()->HasBegunInitializing())\n\t{\n\t\tUInt32 framesToAllocate = inFramesToAllocate > 0 ? inFramesToAllocate : GetAudioUnit()->GetMaxFramesPerSlice();\n\t\t\n//\t\tprintf (\"will allocate: %d\\n\", (int)((mWillAllocate && NeedsBufferSpace()) ? framesToAllocate : 0));\n\t\t\n\t\tmIOBuffer.Allocate(mStreamFormat, (mWillAllocate && NeedsBufferSpace()) ? framesToAllocate : 0);\n\t}\n}\n\n//_____________________________________________________________________________\n//\nvoid\t\t\tAUIOElement::DeallocateBuffer()\n{\n\tmIOBuffer.Deallocate();\n}\n\n//_____________________________________________________________________________\n//\n//\t\tAudioChannelLayout support\n\n// outLayoutTagsPtr WILL be NULL if called to find out how many\n// layouts that Audio Unit will report \n// return 0 (ie. NO channel layouts) if the AU doesn't require channel layout knowledge\nUInt32\t\tAUIOElement::GetChannelLayoutTags (AudioChannelLayoutTag\t\t*outLayoutTagsPtr)\n{\n\treturn 0;\n}\n\t\t\n// As the AudioChannelLayout can be a variable length structure \n// (though in most cases it won't be!!!)\n// The size of the ACL is always returned by the method\n// if outMapPtr is NOT-NULL, then AU should copy into this pointer (outMapPtr) the current ACL that it has in use. \n// the AU should also return whether the property is writable (that is the client can provide any arbitrary ACL that the audio unit will then honour)\n// or if the property is read only - which is the generally preferred mode.\n// If the AU doesn't require an AudioChannelLayout, then just return 0.\nUInt32\t\tAUIOElement::GetAudioChannelLayout (AudioChannelLayout\t\t*outMapPtr, \n\t\t\t\t\t\t\t\t\t\t\tBoolean\t\t\t\t&outWritable)\n{\n\treturn 0;\n}\n\n// the incoming channel map will be at least as big as a basic AudioChannelLayout\n// but its contents will determine its actual size\n// Subclass should overide if channel map is writable\nOSStatus\tAUIOElement::SetAudioChannelLayout (const AudioChannelLayout &inData)\n{\n\treturn kAudioUnitErr_InvalidProperty;\n}\n\n// Some units support optional usage of channel maps - typically converter units\n// that can do channel remapping between different maps. In that optional case\n// the user should be able to remove a channel map if that is possible.\n// Typically this is NOT the case (e.g., the 3DMixer even in the stereo case\n// needs to know if it is rendering to speakers or headphones)\nOSStatus\tAUIOElement::RemoveAudioChannelLayout ()\n{\n\treturn kAudioUnitErr_InvalidPropertyValue;\n}\n\n\n//_____________________________________________________________________________\n//\nAUScope::~AUScope()\n{\n\tfor (ElementVector::iterator it = mElements.begin(); it != mElements.end(); ++it)\n\t\tdelete *it;\n}\n\n//_____________________________________________________________________________\n//\nvoid\tAUScope::SetNumberOfElements(UInt32 numElements)\n{\n\tif (mDelegate)\n\t\treturn mDelegate->SetNumberOfElements(numElements);\n\n\tif (numElements > mElements.size()) {\n\t\tmElements.reserve(numElements);\n\t\twhile (numElements > mElements.size()) {\n\t\t\tAUElement *elem = mCreator->CreateElement(GetScope(), static_cast<UInt32>(mElements.size()));\n\t\t\tmElements.push_back(elem);\n\t\t}\n\t} else\n\t\twhile (numElements < mElements.size()) {\n\t\t\tAUElement *elem = mElements.back();\n\t\t\tmElements.pop_back();\n\t\t\tdelete elem;\n\t\t}\n}\n\n//_____________________________________________________________________________\n//\nbool\tAUScope::HasElementWithName () const\n{\n\tfor (UInt32 i = 0; i < GetNumberOfElements(); ++i) {\n\t\tAUElement *\tel = const_cast<AUScope*>(this)->GetElement (i);\n\t\tif (el && el->HasName()) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\n//_____________________________________________________________________________\n//\n\nvoid\tAUScope::AddElementNamesToDict (CFMutableDictionaryRef & inNameDict)\n{\n\tif (HasElementWithName())\n\t{\n\t\tstatic char string[32];\n\t\tCFMutableDictionaryRef elementDict = CFDictionaryCreateMutable\t(NULL, 0,\n\t\t\t\t\t\t\t\t&kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\t\tCFStringRef str;\n\t\tfor (UInt32 i = 0; i < GetNumberOfElements(); ++i) {\n\t\t\tAUElement *\tel = GetElement (i);\n\t\t\tif (el && el->HasName()) {\n\t\t\t\tsnprintf (string, sizeof(string), \"%d\", int(i));\n\t\t\t\tstr = CFStringCreateWithCString (NULL, string, kCFStringEncodingASCII);\n\t\t\t\tCFDictionarySetValue (elementDict, str, el->GetName());\n\t\t\t\tCFRelease (str);\n\t\t\t}\n\t\t}\n\n\t\tsnprintf (string, sizeof(string), \"%d\", int(mScope));\n\t\tstr = CFStringCreateWithCString (NULL, string, kCFStringEncodingASCII);\n\t\tCFDictionarySetValue (inNameDict, str, elementDict);\n\t\tCFRelease (str);\n\t\tCFRelease (elementDict);\n\t}\n}\n\n//_____________________________________________________________________________\n//\nbool\tAUScope::RestoreElementNames (CFDictionaryRef& inNameDict)\n{\n\tstatic char string[32];\n\n\t//first we have to see if we have enough elements\n\tbool didAddElements = false;\n\tunsigned int maxElNum = GetNumberOfElements();\n\t\n\tint dictSize = static_cast<int>(CFDictionaryGetCount(inNameDict));\n\tCFStringRef * keys = (CFStringRef*)CA_malloc (dictSize * sizeof (CFStringRef));\n\tCFDictionaryGetKeysAndValues (inNameDict, reinterpret_cast<const void**>(keys), NULL);\n\tfor (int i = 0; i < dictSize; i++)\n\t{\n\t\tunsigned int intKey = 0;\n\t\tCFStringGetCString (keys[i], string, 32, kCFStringEncodingASCII);\n\t\tint result = sscanf (string, \"%u\", &intKey);\n        // check if sscanf succeeded and element index is less than max elements.\n\t\tif (result && UInt32(intKey) < maxElNum)\n        {\n            CFStringRef elName = reinterpret_cast<CFStringRef>(CFDictionaryGetValue (inNameDict,  keys[i]));\n            AUElement* element = GetElement (intKey);\n            if (element)\n                element->SetName (elName);\n        }\n\t}\n\tfree (keys);\n\t\n\treturn didAddElements;\n}\n\nvoid    AUScope::SaveState(CFMutableDataRef data)\n{\n    AudioUnitElement nElems = GetNumberOfElements();\n    for (AudioUnitElement ielem = 0; ielem < nElems; ++ielem) {\n        AUElement *element = GetElement(ielem);\n        UInt32 nparams = element->GetNumberOfParameters();\n        if (nparams > 0) {\n            struct {\n                UInt32\tscope;\n                UInt32\telement;\n            } hdr;\n            \n            hdr.scope = CFSwapInt32HostToBig(GetScope());\n            hdr.element = CFSwapInt32HostToBig(ielem);\n            CFDataAppendBytes(data, (UInt8 *)&hdr, sizeof(hdr));\n            \n            element->SaveState(data);\n        }\n    }\n}\n\nconst UInt8 *\tAUScope::RestoreState(const UInt8 *state)\n{\n    const UInt8 *p = state;\n    UInt32 elementIdx = CFSwapInt32BigToHost(*(UInt32 *)p);\tp += sizeof(UInt32);\n    AUElement *element = GetElement(elementIdx);\n    if (!element) {\n        struct {\n            AudioUnitParameterID\t\tparamID;\n            AudioUnitParameterValue\t\tvalue;\n        } entry;\n        UInt32 nparams = CFSwapInt32BigToHost(*(UInt32 *)p);\n        p += sizeof(UInt32);\n        \n        p += nparams * sizeof(entry);\n    } else\n        p = element->RestoreState(p);\n    \n    return p;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/AUScopeElement.h",
    "content": "/*\n     File: AUScopeElement.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUScopeElement_h__\n#define __AUScopeElement_h__\n\n#include <map>\n#include <vector>\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnit.h>\n#else\n\t#include <AudioUnit.h>\n#endif\n#include \"ComponentBase.h\"\n#include \"AUBuffer.h\"\n\n\nclass AUBase;\n\n// ____________________________________________________________________________\n//\n// represents a parameter's value (either constant or ramped)\n/*! @class ParameterMapEvent */\nclass ParameterMapEvent\n{\npublic:\n/*! @ctor ParameterMapEvent */\n\tParameterMapEvent() \n\t\t: mEventType(kParameterEvent_Immediate), mBufferOffset(0), mDurationInFrames(0), mValue1(0.0f), mValue2(0.0f), mSliceDurationFrames(0) \n\t\t{}\n\n/*! @ctor ParameterMapEvent */\n\tParameterMapEvent(AudioUnitParameterValue inValue)\n\t\t: mEventType(kParameterEvent_Immediate), mBufferOffset(0), mDurationInFrames(0), mValue1(inValue), mValue2(inValue), mSliceDurationFrames(0) \n\t\t{}\n\t\t\n\t// constructor for scheduled event\n/*! @ctor ParameterMapEvent */\n\tParameterMapEvent(\tconst AudioUnitParameterEvent \t&inEvent,\n\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinSliceOffsetInBuffer,\n\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinSliceDurationFrames )\n\t{\n\t\tSetScheduledEvent(inEvent, inSliceOffsetInBuffer, inSliceDurationFrames );\n\t};\n\t\n/*! @method SetScheduledEvent */\n\tvoid SetScheduledEvent(\tconst AudioUnitParameterEvent \t&inEvent,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinSliceOffsetInBuffer,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinSliceDurationFrames )\n\t{\n\t\tmEventType = inEvent.eventType;\n\t\tmSliceDurationFrames = inSliceDurationFrames;\n\t\t\n\t\tif(mEventType == kParameterEvent_Immediate )\n\t\t{\n\t\t\t// constant immediate value for the whole slice\n\t\t\tmValue1 = inEvent.eventValues.immediate.value;\n\t\t\tmValue2 = mValue1;\n\t\t\tmDurationInFrames = inSliceDurationFrames;\n\t\t\tmBufferOffset = 0;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tmDurationInFrames \t= \tinEvent.eventValues.ramp.durationInFrames;\n\t\t\tmBufferOffset \t\t= \tinEvent.eventValues.ramp.startBufferOffset - inSliceOffsetInBuffer;\t// shift over for this slice\n\t\t\tmValue1 \t\t\t= \tinEvent.eventValues.ramp.startValue;\n\t\t\tmValue2 \t\t\t= \tinEvent.eventValues.ramp.endValue;\n\t\t}\n\t};\n\t\n\t\n\t\n/*! @method GetEventType */\n\tAUParameterEventType\t\tGetEventType() const {return mEventType;};\n\n/*! @method GetValue */\n\tAudioUnitParameterValue\t\tGetValue() const {return mValue1;};\t// only valid if immediate event type\n/*! @method GetEndValue */\n\tAudioUnitParameterValue\t\tGetEndValue() const {return mValue2;};\t// only valid if immediate event type\n/*! @method SetValue */\n\tvoid\t\t\t\t\t\tSetValue(AudioUnitParameterValue inValue) \n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmEventType = kParameterEvent_Immediate; \n\t\t\t\t\t\t\t\t\tmValue1 = inValue; \n\t\t\t\t\t\t\t\t\tmValue2 = inValue;\n\t\t\t\t\t\t\t\t}\n\t\n\t// interpolates the start and end values corresponding to the current processing slice\n\t// most ramp parameter implementations will want to use this method\n\t// the start value will correspond to the start of the slice\n\t// the end value will correspond to the end of the slice\n/*! @method GetRampSliceStartEnd */\n\tvoid\t\t\t\t\tGetRampSliceStartEnd(\tAudioUnitParameterValue &\toutStartValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutEndValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutValuePerFrameDelta )\n\t{\n\t\tif (mEventType == kParameterEvent_Ramped) {\n\t\t\toutValuePerFrameDelta = (mValue2 - mValue1) / mDurationInFrames;\n\t\t\n\t\t\toutStartValue = mValue1 + outValuePerFrameDelta * (-mBufferOffset);\t// corresponds to frame 0 of this slice\n\t\t\toutEndValue = outStartValue +  outValuePerFrameDelta * mSliceDurationFrames;\n\t\t} else {\n\t\t\toutValuePerFrameDelta = 0;\n\t\t\toutStartValue = outEndValue = mValue1;\n\t\t}\n\t};\n\n\t// Some ramp parameter implementations will want to interpret the ramp using their\n\t// own interpolation method (perhaps non-linear)\n\t// This method gives the raw ramp information, relative to this processing slice\n\t// for the client to interpret as desired\n/*! @method GetRampInfo */\n\tvoid\t\t\t\t\tGetRampInfo(\tSInt32 \t&\t\t\t\t\toutBufferOffset,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 \t&\t\t\t\t\toutDurationInFrames,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutStartValue,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutEndValue )\n\t{\n\t\toutBufferOffset = mBufferOffset;\n\t\toutDurationInFrames = mDurationInFrames;\n\t\toutStartValue = mValue1;\n\t\toutEndValue = mValue2;\n\t};\n\n#if DEBUG\n\tvoid\t\t\t\t\tPrint()\n\t{\n\t\tprintf(\"ParameterEvent @ %p\\n\", this);\n\t\tprintf(\"\tmEventType = %d\\n\", (int)mEventType);\n\t\tprintf(\"\tmBufferOffset = %d\\n\", (int)mBufferOffset);\n\t\tprintf(\"\tmDurationInFrames = %d\\n\", (int)mDurationInFrames);\n\t\tprintf(\"\tmSliceDurationFrames = %d\\n\", (int)mSliceDurationFrames);\n\t\tprintf(\"\tmValue1 = %.5f\\n\", mValue1);\n\t\tprintf(\"\tmValue2 = %.5f\\n\", mValue2);\n\t}\n#endif\n\nprivate:\t\n\tAUParameterEventType\t\tmEventType;\n\t\n\tSInt32\t\t\t\t\t\tmBufferOffset;\t\t// ramp start offset relative to start of this slice (may be negative)\n\tUInt32\t\t\t\t\t\tmDurationInFrames;\t// total duration of ramp parameter\n\tAudioUnitParameterValue     mValue1;\t\t\t\t// value if immediate : startValue if ramp\n\tAudioUnitParameterValue\t\tmValue2;\t\t\t\t// endValue (only used for ramp)\n\t\n\tUInt32\t\t\t\t\tmSliceDurationFrames;\t// duration of this processing slice \n};\n\n\n\n// ____________________________________________________________________________\n//\nclass AUIOElement;\n\n/*! @class AUElement */\nclass AUElement {\npublic:\n/*! @ctor AUElement */\n\t\t\t\t\t\t\t\tAUElement(AUBase *audioUnit) : mAudioUnit(audioUnit),\n\t\t\t\t\t\t\t\t\tmUseIndexedParameters(false), mElementName(0) { }\n\t\n/*! @dtor ~AUElement */\n\tvirtual\t\t\t\t\t\t~AUElement() { if (mElementName) CFRelease (mElementName); }\n\t\n/*! @method GetNumberOfParameters */\n\tvirtual UInt32\t\t\t\tGetNumberOfParameters()\n\t{\n\t\tif(mUseIndexedParameters) return static_cast<UInt32>(mIndexedParameters.size()); else return static_cast<UInt32>(mParameters.size());\n\t}\n/*! @method GetParameterList */\n\tvirtual void\t\t\t\tGetParameterList(AudioUnitParameterID *outList);\n/*! @method HasParameterID */\n\tbool\t\t\t\t\t\tHasParameterID (AudioUnitParameterID paramID) const;\n\t\n/*! @method GetParameter */\n\tAudioUnitParameterValue\t\tGetParameter(AudioUnitParameterID paramID);\n/*! @method SetParameter */\n\tvoid\t\t\t\t\t\tSetParameter(AudioUnitParameterID paramID, AudioUnitParameterValue value, bool okWhenInitialized = false);\n\t// Only set okWhenInitialized to true when you know the outside world cannot access this element. Otherwise the parameter map could get corrupted. \n\n\t// interpolates the start and end values corresponding to the current processing slice\n\t// most ramp parameter implementations will want to use this method\n/*! @method GetRampSliceStartEnd */\n\tvoid\t\t\t\t\t\tGetRampSliceStartEnd(\tAudioUnitParameterID\tparamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutStartValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutEndValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue &\toutValuePerFrameDelta );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\n/*! @method GetEndValue */\n\tAudioUnitParameterValue\t\tGetEndValue(\tAudioUnitParameterID\t\tparamID);\n\n/*! @method SetRampParameter */\n\tvoid\t\t\t\t\t\tSetScheduledEvent(\tAudioUnitParameterID \t\t\tparamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioUnitParameterEvent \t&inEvent,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinSliceOffsetInBuffer,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinSliceDurationFrames,\n\t\t\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\t\tokWhenInitialized = false );\n\t// Only set okWhenInitialized to true when you know the outside world cannot access this element. Otherwise the parameter map could get corrupted. \n\n\n/*! @method GetAudioUnit */\n\tAUBase *\t\t\t\t\tGetAudioUnit() const { return mAudioUnit; };\n\n/*! @method SaveState */\n\tvoid\t\t\t\t\t\tSaveState(CFMutableDataRef data);\n/*! @method RestoreState */\n\tconst UInt8 *\t\t\t\tRestoreState(const UInt8 *state);\n/*! @method GetName */\n\tCFStringRef\t\t\t\t\tGetName () const { return mElementName; }\n/*! @method SetName */\n\tvoid\t\t\t\t\t\tSetName (CFStringRef inName);\n/*! @method HasName */\n\tbool\t\t\t\t\t\tHasName () const { return mElementName != 0; }\n/*! @method UseIndexedParameters */\n\tvirtual void\t\t\t\tUseIndexedParameters(int inNumberOfParameters);\n\n/*! @method AsIOElement*/\n\tvirtual AUIOElement*\t\tAsIOElement () { return NULL; }\n\t\nprotected:\n\tinline ParameterMapEvent&\tGetParamEvent(AudioUnitParameterID paramID);\n\t\nprivate:\n\ttypedef std::map<AudioUnitParameterID, ParameterMapEvent, std::less<AudioUnitParameterID> > ParameterMap;\n\t\n/*! @var mAudioUnit */\n\tAUBase *\t\t\t\t\t\tmAudioUnit;\n/*! @var mParameters */\n\tParameterMap\t\t\t\t\tmParameters;\n\n/*! @var mUseIndexedParameters */\n\tbool\t\t\t\t\t\t\tmUseIndexedParameters;\n/*! @var mIndexedParameters */\n\tstd::vector<ParameterMapEvent>\tmIndexedParameters;\n\t\n/*! @var mElementName */\n\tCFStringRef\t\t\t\t\t\tmElementName;\n};\n\n\n\n// ____________________________________________________________________________\n//\n/*! @class AUIOElement */\nclass AUIOElement : public AUElement {\npublic:\n/*! @ctor AUIOElement */\n\t\t\t\t\t\t\t\tAUIOElement(AUBase *audioUnit);\n\n/*! @method GetStreamFormat */\n\tconst CAStreamBasicDescription &GetStreamFormat() const { return mStreamFormat; }\n\t\n/*! @method SetStreamFormat */\n\tvirtual OSStatus\t\t\tSetStreamFormat(const CAStreamBasicDescription &desc);\n\n/*! @method AllocateBuffer */\n\tvirtual void\t\t\t\tAllocateBuffer(UInt32 inFramesToAllocate = 0);\n/*! @method DeallocateBuffer */\n\tvoid\t\t\t\t\t\tDeallocateBuffer();\n/*! @method NeedsBufferSpace */\n\tvirtual bool\t\t\t\tNeedsBufferSpace() const = 0;\n\n/*! @method SetWillAllocateBuffer */\n\tvoid\t\t\t\t\t\tSetWillAllocateBuffer(bool inFlag) { \n\t\t\t\t\t\t\t\t\tmWillAllocate = inFlag; \n\t\t\t\t\t\t\t\t}\n/*! @method WillAllocateBuffer */\n\tbool\t\t\t\t\t\tWillAllocateBuffer() const { \n\t\t\t\t\t\t\t\t\treturn mWillAllocate; \n\t\t\t\t\t\t\t\t}\n\t\n/*! @method UseExternalBuffer */\n\tvoid\t\t\t\t\t\tUseExternalBuffer(const AudioUnitExternalBuffer &buf) {\n\t\t\t\t\t\t\t\t\tmIOBuffer.UseExternalBuffer(mStreamFormat, buf);\n\t\t\t\t\t\t\t\t}\n/*! @method PrepareBuffer */\n\tAudioBufferList &\t\t\tPrepareBuffer(UInt32 nFrames) {\n\t\t\t\t\t\t\t\t\tif (mWillAllocate)\n\t\t\t\t\t\t\t\t\t\treturn mIOBuffer.PrepareBuffer(mStreamFormat, nFrames);\n\t\t\t\t\t\t\t\t\tthrow OSStatus(kAudioUnitErr_InvalidPropertyValue);\n\t\t\t\t\t\t\t\t}\n/*! @method PrepareNullBuffer */\n\tAudioBufferList &\t\t\tPrepareNullBuffer(UInt32 nFrames) {\n\t\t\t\t\t\t\t\t\treturn mIOBuffer.PrepareNullBuffer(mStreamFormat, nFrames);\n\t\t\t\t\t\t\t\t}\n/*! @method SetBufferList */\n\tAudioBufferList &\t\t\tSetBufferList(AudioBufferList &abl) { return mIOBuffer.SetBufferList(abl); }\n/*! @method SetBuffer */\n\tvoid\t\t\t\t\t\tSetBuffer(UInt32 index, AudioBuffer &ab) { mIOBuffer.SetBuffer(index, ab); }\n/*! @method InvalidateBufferList */\n\tvoid\t\t\t\t\t\tInvalidateBufferList() { mIOBuffer.InvalidateBufferList(); }\n\n/*! @method GetBufferList */\n\tAudioBufferList &\t\t\tGetBufferList() const { return mIOBuffer.GetBufferList(); }\n\n/*! @method GetChannelData */\n\tAudioUnitSampleType *\t\tGetChannelData(int ch) const {\n\t\t\t\t\t\t\t\t\tif (mStreamFormat.IsInterleaved())\n\t\t\t\t\t\t\t\t\t\treturn static_cast<AudioUnitSampleType *>(mIOBuffer.GetBufferList().mBuffers[0].mData) + ch;\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\treturn static_cast<AudioUnitSampleType *>(mIOBuffer.GetBufferList().mBuffers[ch].mData);\n\t\t\t\t\t\t\t\t}\n\tFloat32 *\t\t\t\t\tGetFloat32ChannelData(int ch) const {\n\t\t\t\t\t\t\t\t\tif (mStreamFormat.IsInterleaved())\n\t\t\t\t\t\t\t\t\t\treturn static_cast<Float32 *>(mIOBuffer.GetBufferList().mBuffers[0].mData) + ch;\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\treturn static_cast<Float32 *>(mIOBuffer.GetBufferList().mBuffers[ch].mData);\n\t\t\t\t\t\t\t\t}\n\tSInt32 *\t\t\t\t\tGetSInt32ChannelData(int ch) const {\n\t\t\t\t\t\t\t\t\tif (mStreamFormat.IsInterleaved())\n\t\t\t\t\t\t\t\t\t\treturn static_cast<SInt32 *>(mIOBuffer.GetBufferList().mBuffers[0].mData) + ch;\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\treturn static_cast<SInt32 *>(mIOBuffer.GetBufferList().mBuffers[ch].mData);\n\t\t\t\t\t\t\t\t}\n\tSInt16 *\t\t\t\t\tGetInt16ChannelData(int ch) const {\n\t\t\t\t\t\t\t\t\tif (mStreamFormat.IsInterleaved())\n\t\t\t\t\t\t\t\t\t\treturn static_cast<SInt16 *>(mIOBuffer.GetBufferList().mBuffers[0].mData) + ch;\n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\treturn static_cast<SInt16 *>(mIOBuffer.GetBufferList().mBuffers[ch].mData);\n\t\t\t\t\t\t\t\t}\n\n/*! @method CopyBufferListTo */\n\tvoid\t\t\t\t\t\tCopyBufferListTo(AudioBufferList &abl) const {\n\t\t\t\t\t\t\t\t\tmIOBuffer.CopyBufferListTo(abl);\n\t\t\t\t\t\t\t\t}\n/*! @method CopyBufferContentsTo */\n\tvoid\t\t\t\t\t\tCopyBufferContentsTo(AudioBufferList &abl) const {\n\t\t\t\t\t\t\t\t\tmIOBuffer.CopyBufferContentsTo(abl);\n\t\t\t\t\t\t\t\t}\n\n/*\tUInt32\t\t\t\t\t\tBytesToFrames(UInt32 nBytes) { return nBytes / mStreamFormat.mBytesPerFrame; }\n\tUInt32\t\t\t\t\t\tBytesToFrames(AudioBufferList &abl) {\n\t\t\t\t\t\t\t\t\treturn BytesToFrames(abl.mBuffers[0].mDataByteSize);\n\t\t\t\t\t\t\t\t}\n\tUInt32\t\t\t\t\t\tFramesToBytes(UInt32 nFrames) { return nFrames * mStreamFormat.mBytesPerFrame; }*/\n\n/*! @method IsInterleaved */\n\tbool\t\t\t\t\t\tIsInterleaved() const { return mStreamFormat.IsInterleaved(); }\n/*! @method NumberChannels */\n\tUInt32\t\t\t\t\t\tNumberChannels() const { return mStreamFormat.NumberChannels(); }\n/*! @method NumberInterleavedChannels */\n\tUInt32\t\t\t\t\t\tNumberInterleavedChannels() const { return mStreamFormat.NumberInterleavedChannels(); }\n\n/*! @method GetChannelMapTags */\n\tvirtual UInt32\t\t\t\tGetChannelLayoutTags (AudioChannelLayoutTag\t*outLayoutTagsPtr);\n\n/*! @method GetAudioChannelLayout */\n\tvirtual UInt32\t\t\t\tGetAudioChannelLayout (AudioChannelLayout\t*outMapPtr, Boolean\t&outWritable);\n\n/*! @method SetAudioChannelLayout */\n\tvirtual OSStatus\t\t\tSetAudioChannelLayout (const AudioChannelLayout &inData);\n\t\t\n/*! @method RemoveAudioChannelLayout */\n\tvirtual OSStatus\t\t\tRemoveAudioChannelLayout ();\n\n/*! @method AsIOElement*/\n\tvirtual AUIOElement*\t\tAsIOElement () { return this; }\n\nprotected:\n/*! @var mStreamFormat */\n\tCAStreamBasicDescription\tmStreamFormat;\n/*! @var mIOBuffer */\n\tAUBufferList\t\t\t\tmIOBuffer;\t// for input: input proc buffer, only allocated when needed\n\t\t\t\t\t\t\t\t\t\t\t// for output: output cache, usually allocated early on\n/*! @var mWillAllocate */\n\tbool\t\t\t\t\t\tmWillAllocate;\n};\n\n// ____________________________________________________________________________\n//\n// AUScopeDelegates are a way to get virtual scopes.\n/*! @class AUScopeDelegate */\nclass AUScopeDelegate {\npublic:\n/*! @ctor AUScopeDelegate */\n\t\t\t\t\tAUScopeDelegate() : mCreator(NULL), mScope(0) { }\t\n/*! @dtor ~AUScopeDelegate */\n\t\t\t\t\tvirtual ~AUScopeDelegate() {}\n\t\n/*! @method Initialize */\n\tvoid\t\t\t\t\tInitialize(\tAUBase *creator, \n\t\t\t\t\t\t\t\t\t\tAudioUnitScope scope, \n\t\t\t\t\t\t\t\t\t\tUInt32 numElements)\n\t{\n\t\tmCreator = creator;\n\t\tmScope = scope;\n\t\tSetNumberOfElements(numElements);\n\t}\n\t\n/*! @method SetNumberOfElements */\n\tvirtual void\t\t\tSetNumberOfElements(UInt32 numElements) = 0;\n\t\n/*! @method GetNumberOfElements */\n\tvirtual UInt32\t\t\tGetNumberOfElements()\t = 0;\n\t\n/*! @method GetElement */\n\tvirtual AUElement *\t\tGetElement(UInt32 elementIndex) = 0;\n\t\n\tAUBase *\t\t\tGetCreator() const { return mCreator; }\n\tAudioUnitScope\t\tGetScope() const { return mScope; }\n\t\n\nprivate:\n/*! @var mCreator */\n\tAUBase *\t\t\t\t\tmCreator;\n/*! @var mScope */\n\tAudioUnitScope\t\t\t\tmScope;\n};\n\n\n\n// ____________________________________________________________________________\n//\n/*! @class AUScope */\nclass AUScope {\npublic:\n/*! @ctor AUScope */\n\t\t\t\t\tAUScope() : mCreator(NULL), mScope(0), mDelegate(0) { }\t\n/*! @dtor ~AUScope */\n\t\t\t\t\t~AUScope();\n\t\n/*! @method Initialize */\n\tvoid\t\t\tInitialize(AUBase *creator, \n\t\t\t\t\t\t\t\tAudioUnitScope scope, \n\t\t\t\t\t\t\t\tUInt32 numElements)\n\t{\n\t\tmCreator = creator;\n\t\tmScope = scope;\n\n\t\tif (mDelegate)\n\t\t\treturn mDelegate->Initialize(creator, scope, numElements);\n\t\t\t\n\t\tSetNumberOfElements(numElements);\n\t}\n\t\n/*! @method SetNumberOfElements */\n\tvoid\t\t\tSetNumberOfElements(UInt32 numElements);\n\t\n/*! @method GetNumberOfElements */\n\tUInt32\t\t\tGetNumberOfElements()\tconst\t\n\t{\n\t\tif (mDelegate)\n\t\t\treturn mDelegate->GetNumberOfElements();\n\t\t\t\n\t\treturn static_cast<UInt32>(mElements.size());\n\t}\n\t\n/*! @method GetElement */\n\tAUElement *\t\tGetElement(UInt32 elementIndex) const\n\t{\n\t\tif (mDelegate)\n\t\t\treturn mDelegate->GetElement(elementIndex);\n\n\t\tElementVector::const_iterator i = mElements.begin() + elementIndex;\n\t\t\t// catch passing -1 in as the elementIndex - causes a wrap around\n\t\treturn (i >= mElements.end() || i < mElements.begin()) ? NULL : *i;\n\t}\n\t\n/*! @method SafeGetElement */\n\tAUElement *\t\tSafeGetElement(UInt32 elementIndex)\n\t{\n\t\tAUElement *element = GetElement(elementIndex);\n\t\tif (element == NULL)\n\t\t\tCOMPONENT_THROW(kAudioUnitErr_InvalidElement);\n\t\treturn element;\n\t}\n\t\n/*! @method GetIOElement */\n\tAUIOElement *\tGetIOElement(UInt32 elementIndex) const\n\t{\n\t\tAUElement *element = GetElement(elementIndex);\n\t\tAUIOElement *ioel = element ? element->AsIOElement () : NULL;\n\t\tif (!ioel)\n\t\t\tCOMPONENT_THROW (kAudioUnitErr_InvalidElement);\n\t\treturn ioel;\n\t}\n\t\n/*! @method HasElementWithName */\n\tbool\t\t\tHasElementWithName () const;\n\t\n/*! @method AddElementNamesToDict */\n\tvoid\t\t\tAddElementNamesToDict (CFMutableDictionaryRef & inNameDict);\n\t\n\tbool\t\t\tRestoreElementNames (CFDictionaryRef& inNameDict);\n\t\n\tAudioUnitScope\t\tGetScope() const { return mScope; }\n\n\tvoid SetDelegate(AUScopeDelegate* inDelegate) { mDelegate = inDelegate; }\n\n/*! @method SaveState */\n    void            SaveState(CFMutableDataRef data);\n\n/*! @method RestoreState */\n    const UInt8 *\tRestoreState(const UInt8 *state);\n\t\nprivate:\n\ttypedef std::vector<AUElement *> ElementVector;\n/*! @var mCreator */\n\tAUBase *\t\t\t\t\tmCreator;\n/*! @var mScope */\n\tAudioUnitScope\t\t\t\tmScope;\n/*! @var mElements */\n\tElementVector\t\t\t\tmElements;\n/*! @var mDelegate */\n\tAUScopeDelegate *\t\t\tmDelegate;\n};\n\n\n\n#endif // __AUScopeElement_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.cpp",
    "content": "/*\n     File: ComponentBase.cpp\n Abstract: ComponentBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"ComponentBase.h\"\n#include \"CAXException.h\"\n\n#if TARGET_OS_MAC\npthread_mutex_t ComponentInitLocker::sComponentOpenMutex = PTHREAD_MUTEX_INITIALIZER;\npthread_once_t ComponentInitLocker::sOnce = PTHREAD_ONCE_INIT;\n\nvoid ComponentInitLocker::InitComponentInitLocker()\n{\n\t// have to do this because OS X lacks PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP\n\tpthread_mutexattr_t attr;\n\tpthread_mutexattr_init(&attr);\n\tpthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);\n\tpthread_mutex_init(&sComponentOpenMutex, &attr);\n\tpthread_mutexattr_destroy(&attr);\n}\n\n#elif TARGET_OS_WIN32\nCAGuard\tComponentInitLocker::sComponentOpenGuard(\"sComponentOpenGuard\");\n#endif\n\nComponentBase::EInstanceType ComponentBase::sNewInstanceType;\n\nstatic OSStatus CB_GetComponentDescription (const AudioComponentInstance inInstance, AudioComponentDescription * outDesc);\n#if !CA_USE_AUDIO_PLUGIN_ONLY && !TARGET_OS_WIN32\n\tstatic OSStatus CMgr_GetComponentDescription (const AudioComponentInstance inInstance, AudioComponentDescription * outDesc);\n#endif\n\nComponentBase::ComponentBase(AudioComponentInstance inInstance) \n\t: mComponentInstance(inInstance), \n\t  mInstanceType(sNewInstanceType) \n{ \n\tGetComponentDescription(); \n}\n\nComponentBase::~ComponentBase()\n{\n}\n\nvoid\t\t\tComponentBase::PostConstructor()\n{\n}\n\nvoid\t\t\tComponentBase::PreDestructor()\n{\n}\n\n#define ACPI\t((AudioComponentPlugInInstance *)self)\n#define ACImp\t((ComponentBase *)&ACPI->mInstanceStorage)\n\nOSStatus ComponentBase::AP_Open(void *self, AudioUnit compInstance)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tComponentInitLocker lock;\n\t\t\n\t\tComponentBase::sNewInstanceType = ComponentBase::kAudioComponentInstance;\n\t\tComponentBase *cb = (ComponentBase *)(*ACPI->mConstruct)(&ACPI->mInstanceStorage, compInstance);\n\t\tcb->PostConstructor();\t// allows base class to do additional initialization\n\t\t// once the derived class is fully constructed\n\t\tresult = noErr;\n\t}\n\tCOMPONENT_CATCH\n\tif (result)\n\t\tdelete ACPI;\n\treturn result;\n}\n\nOSStatus ComponentBase::AP_Close(void *self)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tif (ACImp) {\n\t\t\tACImp->PreDestructor();\n\t\t\t(*ACPI->mDestruct)(&ACPI->mInstanceStorage);\n\t\t\tfree(self);\n\t\t}\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\nOSStatus\t\tComponentBase::Version()\n{\n\treturn 0x00000001;\n}\n\nOSStatus\t\tComponentBase::ComponentEntryDispatch(ComponentParameters *p, ComponentBase *This)\n{\n\tif (This == NULL) return kAudio_ParamError;\n\n\tOSStatus result = noErr;\n\t\n\tswitch (p->what) {\n\tcase kComponentCloseSelect:\n\t\tThis->PreDestructor();\n\t\tdelete This;\n\t\tbreak;\n\t\n\tcase kComponentVersionSelect:\n\t\tresult = This->Version();\n\t\tbreak;\n\n\tcase kComponentCanDoSelect:\n\t\tswitch (GetSelectorForCanDo(p)) {\n\t\tcase kComponentOpenSelect:\n\t\tcase kComponentCloseSelect:\n\t\tcase kComponentVersionSelect:\n\t\tcase kComponentCanDoSelect:\n\t\t\treturn 1;\n\t\tdefault:\n\t\t\treturn 0;\n\t\t}\n\t\t\n\tdefault:\n\t\tresult = badComponentSelector;\n\t\tbreak;\n\t}\n\treturn result;\n}\n\nSInt16\t\tComponentBase::GetSelectorForCanDo(ComponentParameters *params)\n{\n\tif (params->what != kComponentCanDoSelect) return 0;\n\t\n\t#if TARGET_CPU_X86\n\t\tSInt16 sel = params->params[0];\n\t#elif TARGET_CPU_X86_64\n\t\tSInt16 sel = params->params[1];\n\t#elif TARGET_CPU_PPC\n\t\tSInt16 sel = (params->params[0] >> 16);\n\t#else\n\t\tSInt16 sel = params->params[0];\n\t#endif\n\t\n\treturn sel;\n/*\t\t\n\t\tprintf (\"flags:%d, paramSize: %d, what: %d\\n\\t\", params->flags, params->paramSize, params->what);\n\t\tfor (int i = 0; i < params->paramSize; ++i) {\n\t\t\tprintf (\"[%d]:%d(0x%x), \", i, params->params[i], params->params[i]);\n\t\t}\n\t\tprintf(\"\\n\\tsel:%d\\n\", sel);\n*/\n}\n\n#endif\n\n#if CA_DO_NOT_USE_AUDIO_COMPONENT \nstatic OSStatus ComponentBase_GetComponentDescription (const AudioComponentInstance & inInstance, AudioComponentDescription &outDesc);\n#endif\n\nAudioComponentDescription ComponentBase::GetComponentDescription() const\n{\n\tAudioComponentDescription desc;\n\tOSStatus result = 1;\n\t\n\tif (IsPluginObject()) {\n\t\tca_require_noerr(result = CB_GetComponentDescription (mComponentInstance, &desc), home);\n\t}\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\telse {\n\t\tca_require_noerr(result = CMgr_GetComponentDescription (mComponentInstance, &desc), home);\t\n\t}\n#endif\n\nhome:\n\tif (result)\n\t\tmemset (&desc, 0, sizeof(AudioComponentDescription));\n\t\n\treturn desc;\n}\n\n#if CA_USE_AUDIO_PLUGIN_ONLY\n// everything we need is there and we should be linking against it\nstatic OSStatus CB_GetComponentDescription (const AudioComponentInstance inInstance, AudioComponentDescription * outDesc)\n{\n\tAudioComponent comp = AudioComponentInstanceGetComponent(inInstance);\n\tif (comp)\n\t\treturn AudioComponentGetDescription(comp, outDesc);\n\n\treturn kAudio_ParamError;\n}\n\n#elif !TARGET_OS_WIN32\n// these are the direct dependencies on ComponentMgr calls that an AU\n// that is a component mgr is dependent on\n\n// these are dynamically loaded so that these calls will work on Leopard\n#include <dlfcn.h>\n\nstatic OSStatus CB_GetComponentDescription (const AudioComponentInstance inInstance, AudioComponentDescription * outDesc)\n{\n\ttypedef AudioComponent (*AudioComponentInstanceGetComponentProc) (AudioComponentInstance);\n\tstatic AudioComponentInstanceGetComponentProc aciGCProc = NULL;\n\t\n\ttypedef OSStatus (*AudioComponentGetDescriptionProc)(AudioComponent, AudioComponentDescription *);\n\tstatic AudioComponentGetDescriptionProc acGDProc = NULL;\n\t\n\tstatic int doneInit = 0;\n\tif (doneInit == 0) {\n\t\tdoneInit = 1;\t\n\t\tvoid* theImage = dlopen(\"/System/Library/Frameworks/AudioUnit.framework/AudioUnit\", RTLD_LAZY);\n\t\tif (theImage != NULL)\n\t\t{\n\t\t\taciGCProc = (AudioComponentInstanceGetComponentProc)dlsym (theImage, \"AudioComponentInstanceGetComponent\");\n\t\t\tif (aciGCProc) {\n\t\t\t\tacGDProc = (AudioComponentGetDescriptionProc)dlsym (theImage, \"AudioComponentGetDescription\");\n\t\t\t}\n\t\t}\n\t}\n\t\n\tOSStatus result = kAudio_UnimplementedError;\n\tif (acGDProc && aciGCProc) {\n\t\tAudioComponent comp = (*aciGCProc)(inInstance);\n\t\tif (comp)\n\t\t\tresult = (*acGDProc)(comp, outDesc);\n\t} \n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\telse {\n\t\tresult = CMgr_GetComponentDescription (inInstance, outDesc);\n\t}\n#endif\n\n\treturn result;\n}\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n// these are the direct dependencies on ComponentMgr calls that an AU\n// that is a component mgr is dependent on\n\n// these are dynamically loaded\n\n#include <CoreServices/CoreServices.h>\n#include <AudioUnit/AudioUnit.h>\n#include \"CAXException.h\"\n#include \"ComponentBase.h\"\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n// Component Manager\n// Used for fast dispatch with audio units\ntypedef Handle (*GetComponentInstanceStorageProc)(ComponentInstance aComponentInstance);\nstatic GetComponentInstanceStorageProc sGetComponentInstanceStorageProc = NULL;\n\ntypedef OSErr (*GetComponentInfoProc)(Component, ComponentDescription *, void*, void*, void*);\nstatic GetComponentInfoProc sGetComponentInfoProc = NULL;\n\ntypedef void (*SetComponentInstanceStorageProc)(ComponentInstance, Handle);\nstatic SetComponentInstanceStorageProc sSetComponentInstanceStorageProc = NULL;\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nstatic void CSInitOnce(void* /*unused*/)\n{\n\tvoid *theImage = dlopen(\"/System/Library/Frameworks/CoreServices.framework/CoreServices\", RTLD_LAZY);\n\tif (!theImage) return;\n\n\tsGetComponentInstanceStorageProc = (GetComponentInstanceStorageProc) dlsym(theImage, \"GetComponentInstanceStorage\");\n\tsGetComponentInfoProc = (GetComponentInfoProc)dlsym (theImage, \"GetComponentInfo\");\n\tsSetComponentInstanceStorageProc = (SetComponentInstanceStorageProc) dlsym(theImage, \"SetComponentInstanceStorage\");\n}\n\n#if TARGET_OS_MAC\n\n#include <dispatch/dispatch.h>\n\nstatic dispatch_once_t sCSInitOnce = 0;\n\nstatic void CSInit ()\n{\n\tdispatch_once_f(&sCSInitOnce, NULL, CSInitOnce);\n}\n\n#else \n\nstatic void CSInit ()\n{\n\tstatic int sDoCSLoad = 1;\n\tif (sDoCSLoad) {\n\t\tsDoCSLoad = 0;\n\t\tCSInitOnce(NULL);\n\t}\n}\n\n#endif\n\nOSStatus CMgr_GetComponentDescription (const AudioComponentInstance inInstance, AudioComponentDescription * outDesc)\n{\n\tCSInit();\n\tif (sGetComponentInfoProc)\n\t\treturn (*sGetComponentInfoProc)((Component)inInstance, (ComponentDescription*)outDesc, NULL, NULL, NULL);\n\treturn kAudio_UnimplementedError;\n}\n\nHandle CMgr_GetComponentInstanceStorage(ComponentInstance aComponentInstance)\n{\n\tCSInit();\n\tif (sGetComponentInstanceStorageProc)\n\t\treturn (*sGetComponentInstanceStorageProc)(aComponentInstance);\n\treturn NULL;\n}\n\nvoid CMgr_SetComponentInstanceStorage(ComponentInstance aComponentInstance, Handle theStorage)\n{\n\tCSInit();\n\tif (sSetComponentInstanceStorageProc)\n\t\t(*sSetComponentInstanceStorageProc)(aComponentInstance, theStorage);\n}\n#endif // !CA_USE_AUDIO_PLUGIN_ONLY\n\n#else\n//#include \"ComponentManagerDependenciesWin.h\"\n// everything we need is there and we should be linking against it\nstatic OSStatus CB_GetComponentDescription (const AudioComponentInstance inInstance, AudioComponentDescription * outDesc)\n{\n\tAudioComponent comp = AudioComponentInstanceGetComponent(inInstance);\n\tif (comp)\n\t\treturn AudioComponentGetDescription(comp, outDesc);\n\n\treturn kAudio_ParamError;\n}\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUBase/ComponentBase.h",
    "content": "/*\n     File: ComponentBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __ComponentBase_h__\n#define __ComponentBase_h__\n\n#include <new>\n#include \"CADebugMacros.h\"\n#include \"CAXException.h\"\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <AudioUnit/AudioUnit.h>\n\n\t#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t\t#include <CarbonCore/Components.h>\n\t\n\t\t#if\t(MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5)\n\t\t\t#define AudioComponentInstance\t\t\tComponentInstance\n\t\t\t#define AudioComponentDescription\t\tComponentDescription\n\t\t\t#define\tAudioComponent\t\t\t\t\tComponent\n\t\t#endif\n\t\tHandle CMgr_GetComponentInstanceStorage(ComponentInstance aComponentInstance);\n\t\tvoid CMgr_SetComponentInstanceStorage(ComponentInstance aComponentInstance, Handle theStorage);\n\t#endif\n\n\t#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4\n\t\ttypedef Float32 AudioUnitParameterValue;\n\t#endif\n\t#if COREAUDIOTYPES_VERSION < 1051\n\t\ttypedef Float32 AudioUnitSampleType;\n\t#endif\n\n\t#if !TARGET_OS_WIN32\n\t\t#include <pthread.h>\n\t#endif\n\n\t#if TARGET_OS_WIN32\n\t\t#include \"CAGuard.h\"\n\t#endif\n#else\n\t#include \"CoreAudioTypes.h\"\n\t#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t\t#include \"ComponentManagerDependenciesWin.h\"\n\t#endif\n\t#include \"AudioUnit.h\"\n\t#include \"CAGuard.h\"\n#endif\n\n#ifndef COMPONENT_THROW\n\t#if VERBOSE_COMPONENT_THROW\n\t\t#define COMPONENT_THROW(throw_err) \\\n\t\t\tdo { DebugMessage(#throw_err); throw static_cast<OSStatus>(throw_err); } while (0)\n\t#else\n\t\t#define COMPONENT_THROW(throw_err) \\\n\t\t\tthrow static_cast<OSStatus>(throw_err)\n\t#endif\n#endif\n\n#define COMPONENT_CATCH \\\n\tcatch (const CAXException &ex) { result = ex.mError; } \\\n\tcatch (std::bad_alloc &) { result = kAudio_MemFullError; } \\\n\tcatch (OSStatus catch_err) { result = catch_err; } \\\n\tcatch (OSErr catch_err) { result = catch_err; } \\\n\tcatch (...) { result = -1; }\n\n/*! @class ComponentBase */\nclass ComponentBase {\npublic:\n\t// classic MacErrors\n\tenum { noErr = 0};\n\n\t/*! @ctor ComponentBase */\n\t\t\t\tComponentBase(AudioComponentInstance inInstance);\n\t\t\t\t\n\t/*! @dtor ~ComponentBase */\n\tvirtual \t~ComponentBase();\n\t\n\t/*! @method PostConstructor */\n\tvirtual void\t\t\tPostConstructor();\n\t\n\t/*! @method PreDestructor */\n\tvirtual void\t\t\tPreDestructor();\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t/*! @method Version */\n\tvirtual OSStatus\t\tVersion();\n\n\t/*! @method ComponentEntryDispatch */\n\tstatic OSStatus\t\tComponentEntryDispatch(ComponentParameters *p, ComponentBase *This);\n\n\t/*! GetSelectorForCanDo */\n\tstatic SInt16\t\tGetSelectorForCanDo(ComponentParameters *params);\n#endif\n\t\n\t/*! @method GetComponentInstance */\n\tAudioComponentInstance\t\tGetComponentInstance() const { return mComponentInstance; }\n\n\t/*! @method GetComponentDescription */\n\tAudioComponentDescription\tGetComponentDescription() const;\n\n\t// This global variable is so that new instances know how they were instantiated: via the Component Manager, \n\t// or as AudioComponents. It's ugly, but preferable to altering the constructor of every class in the hierarchy.\n\t// It's safe because construction is protected by ComponentInitLocker.\n\tenum EInstanceType { kComponentMgrInstance, kAudioComponentInstance };\n\tstatic EInstanceType sNewInstanceType;\n\n\t/*! @method IsPluginObject */\n\tbool\t\t\tIsPluginObject () const { return mInstanceType == kAudioComponentInstance; }\n\t/*! @method IsCMgrObject */\n\tbool\t\t\tIsCMgrObject () const { return mInstanceType == kComponentMgrInstance; }\n\n\t/*! @method AP_Open */\n\tstatic OSStatus AP_Open(void *self, AudioUnit compInstance);\n\n\t/*! @method AP_Close */\n\tstatic OSStatus AP_Close(void *self);\n\t\nprotected:\n\t/*! @var mComponentInstance */\n\tAudioComponentInstance\t\tmComponentInstance;\n\tEInstanceType\t\t\t\tmInstanceType;\n};\n\nclass ComponentInitLocker \n{\n#if TARGET_OS_MAC\npublic:\n\tComponentInitLocker() \n\t{ \n\t\tpthread_once(&sOnce, InitComponentInitLocker);\n\t\tpthread_mutex_lock(&sComponentOpenMutex); \n\t\tmPreviousNewInstanceType = ComponentBase::sNewInstanceType;\n\t}\n\t~ComponentInitLocker() \n\t{ \n\t\tComponentBase::sNewInstanceType = mPreviousNewInstanceType;\n\t\tpthread_mutex_unlock(&sComponentOpenMutex); \n\t}\n\n\t// There are situations (11844772) where we need to be able to release the lock early.\n\tclass Unlocker {\n\tpublic:\n\t\tUnlocker()\n\t\t{\n\t\t\tpthread_mutex_unlock(&sComponentOpenMutex);\n\t\t}\n\t\t~Unlocker()\n\t\t{\n\t\t\tpthread_mutex_lock(&sComponentOpenMutex); \n\t\t}\n\t};\n\nprivate:\n\tstatic pthread_mutex_t sComponentOpenMutex;\n\tstatic pthread_once_t sOnce;\n\tstatic void InitComponentInitLocker();\n\t\n#elif TARGET_OS_WIN32\npublic:\n\tbool sNeedsUnlocking;\n\tComponentInitLocker() { sNeedsUnlocking = sComponentOpenGuard.Lock(); }\n\t~ComponentInitLocker() { if(sNeedsUnlocking) { sComponentOpenGuard.Unlock(); } }\nprivate:\n\tstatic CAGuard\tsComponentOpenGuard;\n#endif\n\t\nprivate:\n\tComponentBase::EInstanceType\tmPreviousNewInstanceType;\n};\n\n/*! @class AudioComponentPlugInInstance */ \nstruct AudioComponentPlugInInstance {\n\tAudioComponentPlugInInterface\t\tmPlugInInterface;\n\tvoid *\t\t\t\t\t\t\t\t(*mConstruct)(void *memory, AudioComponentInstance ci);\n\tvoid\t\t\t\t\t\t\t\t(*mDestruct)(void *memory);\n\tvoid *\t\t\t\t\t\t\t\tmPad[2];\t\t\t\t// pad to a 16-byte boundary (in either 32 or 64 bit mode)\n\tUInt32\t\t\t\t\t\t\t\tmInstanceStorage;\t\t// the ACI implementation object is constructed into this memory\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// this member is just a placeholder. it is aligned to a 16byte boundary\n};\n\n/*! @class APFactory */ \ntemplate <class APMethodLookup, class Implementor>\nclass APFactory {\npublic:\n\tstatic void *Construct(void *memory, AudioComponentInstance compInstance)\n\t{\n\t\treturn new(memory) Implementor(compInstance);\n\t}\n\t\n\tstatic void Destruct(void *memory)\n\t{\n\t\t((Implementor *)memory)->~Implementor();\n\t}\n\n\t// This is the AudioComponentFactoryFunction. It returns an AudioComponentPlugInInstance.\n\t// The actual implementation object is not created until Open().\n\tstatic AudioComponentPlugInInterface *Factory(const AudioComponentDescription * /* inDesc */)\n\t{\n\t\tAudioComponentPlugInInstance *acpi = \n\t\t\t\t(AudioComponentPlugInInstance *)malloc( offsetof(AudioComponentPlugInInstance, mInstanceStorage) + sizeof(Implementor) );\n\t\tacpi->mPlugInInterface.Open = ComponentBase::AP_Open;\n\t\tacpi->mPlugInInterface.Close = ComponentBase::AP_Close;\n\t\tacpi->mPlugInInterface.Lookup = APMethodLookup::Lookup;\n\t\tacpi->mPlugInInterface.reserved = NULL;\n\t\tacpi->mConstruct = Construct;\n\t\tacpi->mDestruct = Destruct;\n\t\tacpi->mPad[0] = NULL;\n\t\tacpi->mPad[1] = NULL;\n\t\treturn (AudioComponentPlugInInterface*)acpi;\n\t}\n\t\n\t// This is for runtime registration (not for plug-ins loaded from bundles).\n\tstatic AudioComponent Register(UInt32 type, UInt32 subtype, UInt32 manuf, CFStringRef name, UInt32 vers, UInt32 flags=0)\n\t{\n\t\tAudioComponentDescription desc = { type, subtype, manuf, flags, 0 };\n\t\treturn AudioComponentRegister(&desc, name, vers, Factory); \n\t}\n};\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n/*! @class ComponentEntryPoint \n *\t@discussion This is only used for a component manager version\n*/\ntemplate <class Class>\nclass ComponentEntryPoint {\npublic:\n\t/*! @method Dispatch */\n\tstatic OSStatus Dispatch(ComponentParameters *params, Class *obj)\n\t{\n\t\tOSStatus result = noErr;\n\t\t\n\t\ttry {\n\t\t\tif (params->what == kComponentOpenSelect) {\n\t\t\t\t// solve a host of initialization thread safety issues.\n\t\t\t\tComponentInitLocker lock;\n\n\t\t\t\tComponentBase::sNewInstanceType = ComponentBase::kComponentMgrInstance;\n\t\t\t\tComponentInstance ci = (ComponentInstance)(params->params[0]);\n\t\t\t\tClass *This = new Class((AudioComponentInstance)ci);\n\t\t\t\tThis->PostConstructor();\t// allows base class to do additional initialization\n\t\t\t\t\t\t\t\t\t\t\t// once the derived class is fully constructed\n\t\t\t\t\n\t\t\t\tCMgr_SetComponentInstanceStorage(ci, (Handle)This);\n\t\t\t} else\n\t\t\t\tresult = Class::ComponentEntryDispatch(params, obj);\n\t\t}\n\t\tCOMPONENT_CATCH\n\t\t\n\t\treturn result;\n\t}\n\t\n\t/*! @method Register */\n\tstatic Component Register(OSType compType, OSType subType, OSType manufacturer)\n\t{\n\t\tComponentDescription\tdescription = {compType, subType, manufacturer, 0, 0};\n\t\tComponent\tcomponent = RegisterComponent(&description, (ComponentRoutineUPP) Dispatch, registerComponentGlobal, NULL, NULL, NULL);\n\t\tif (component != NULL) {\n\t\t\tSetDefaultComponent(component, defaultComponentAnyFlagsAnyManufacturerAnySubType);\n\t\t}\n\t\treturn component;\n\t}\n};\n\n// NOTE: Component Mgr is deprecated in ML.\n// this macro should not be used with new audio components\n// it is only for backwards compatibility with Lion and SL.\n// this macro registers both a plugin and a component mgr version.\n#define AUDIOCOMPONENT_ENTRY(FactoryType, Class) \\\n    extern \"C\" OSStatus Class##Entry(ComponentParameters *params, Class *obj); \\\n    extern \"C\" OSStatus Class##Entry(ComponentParameters *params, Class *obj) { \\\n        return ComponentEntryPoint<Class>::Dispatch(params, obj); \\\n    } \\\n    extern \"C\" void * Class##Factory(const AudioComponentDescription *inDesc); \\\n    extern \"C\" void * Class##Factory(const AudioComponentDescription *inDesc) { \\\n        return FactoryType<Class>::Factory(inDesc); \\\n    }\n    // the only component we still support are the carbon based view components\n    // you should be using this macro now to exclusively register those types\n#define VIEW_COMPONENT_ENTRY(Class) \\\n    extern \"C\" OSStatus Class##Entry(ComponentParameters *params, Class *obj); \\\n    extern \"C\" OSStatus Class##Entry(ComponentParameters *params, Class *obj) { \\\n        return ComponentEntryPoint<Class>::Dispatch(params, obj); \\\n    }\n\n\t/*! @class ComponentRegistrar */\ntemplate <class Class, OSType Type, OSType Subtype, OSType Manufacturer>\nclass ComponentRegistrar {\npublic:\n\t/*! @ctor ComponentRegistrar */\n\tComponentRegistrar() { ComponentEntryPoint<Class>::Register(Type, Subtype, Manufacturer); }\n};\n\n#define\tCOMPONENT_REGISTER(Class,Type,Subtype,Manufacturer) \\\n\tstatic ComponentRegistrar<Class, Type, Subtype, Manufacturer>\tgRegistrar##Class\n#else\n#define COMPONENT_ENTRY(Class)\n#define COMPONENT_REGISTER(Class)\n// this macro is used to generate the Entry Point for a given Audio Plugin\n// you should be using this macro now with audio components\n#define AUDIOCOMPONENT_ENTRY(FactoryType, Class) \\\n    extern \"C\" void * Class##Factory(const AudioComponentDescription *inDesc); \\\n    extern \"C\" void * Class##Factory(const AudioComponentDescription *inDesc) { \\\n        return FactoryType<Class>::Factory(inDesc); \\\n    }\n\n#endif // !CA_USE_AUDIO_PLUGIN_ONLY\n\n\n#endif // __ComponentBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.cpp",
    "content": "/*\n     File: AUCarbonViewBase.cpp\n Abstract: AUCarbonViewBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUCarbonViewBase.h\"\n#include \"AUCarbonViewControl.h\"\n#include <algorithm>\n\nAUCarbonViewBase::AUCarbonViewBase(AudioUnitCarbonView inInstance, Float32 inNotificationInterval /* in seconds */) :\n\tComponentBase(inInstance),\n\tmEditAudioUnit(0),\n\tmParameterListener(NULL),\n#if !__LP64__\n\tmEventListener(NULL),\n#endif\n\tmTimerRef (NULL),\n\tmTimerUPP (NULL),\n\tmCarbonWindow(NULL),\n\tmCarbonPane(NULL),\n\tmXOffset(0), \n\tmYOffset(0)\n{\n\tAUEventListenerCreate (ParameterListener, this,\n\t\t\tCFRunLoopGetCurrent(), kCFRunLoopCommonModes, \n\t\t\tinNotificationInterval, inNotificationInterval,\n\t\t\t&mParameterListener);\n}\n\nAUCarbonViewBase::~AUCarbonViewBase()\n{\n#if !__LP64__\n\tif (mCarbonPane)\n\t\tDisposeControl(mCarbonPane);\n\n\tfor (ControlList::iterator it = mControlList.begin(); it != mControlList.end(); ++it) {\n\t\tAUCarbonViewControl *ctl = *it;\n\t\tdelete ctl;\n\t}\n\tAUListenerDispose(mParameterListener);\n\n\tif (mTimerRef)\n\t\t::RemoveEventLoopTimer (mTimerRef);\n\t\t\n\tif (mTimerUPP)\n\t\tDisposeEventLoopTimerUPP (mTimerUPP);\n#endif\n}\n\t\nvoid\tAUCarbonViewBase::AddControl(AUCarbonViewControl *control)\n{\n\tControlList::iterator it = find(mControlList.begin(), mControlList.end(), control);\n\tif (it == mControlList.end())\n\t\tmControlList.push_back(control);\n}\n\nvoid\tAUCarbonViewBase::RemoveControl(AUCarbonViewControl *control)\n{\n\tControlList::iterator it = find(mControlList.begin(), mControlList.end(), control);\n\tif (it != mControlList.end()) {\n\t\tAUCarbonViewControl *ctl = *it;\n\t\tmControlList.erase(it);\n\t\tdelete ctl;\n\t}\n}\n\nvoid\tAUCarbonViewBase::ClearControls ()\n{\n\tfor (ControlList::iterator it = mControlList.begin(); it != mControlList.end(); ++it) {\n\t\tAUCarbonViewControl *ctl = *it;\n\t\tdelete ctl;\n\t}\n\tmControlList.clear();\n}\n\nvoid\tAUCarbonViewBase::ParameterListener(void *\t\t\t\tinCallbackRefCon,\n\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\tinObject,\n\t\t\t\t\t\t\t\t\tconst AudioUnitEvent *\t\tinEvent,\n\t\t\t\t\t\t\t\t\tUInt64\t\t\t\t\t\tinEventHostTime,\n\t\t\t\t\t\t\t\t\tFloat32\t\t\t\t\t\tinParameterValue)\n{\n\tif (inEvent->mEventType == kAudioUnitEvent_ParameterValueChange) {\n\t\tAUCarbonViewControl *ctl = (AUCarbonViewControl *)inObject;\n\t\tctl->ParameterToControl(inParameterValue);\n\t}\n}\n\n\t\t\t\t\t\t\t\t\t\nOSStatus\t\t\tAUCarbonViewBase::CreateCarbonView(AudioUnit inAudioUnit, WindowRef inWindow, ControlRef inParentControl, const Float32Point &inLocation, const Float32Point &inSize, ControlRef &outParentControl)\n{\n#if !__LP64__\n\tmEditAudioUnit = inAudioUnit;\n\tmCarbonWindow = inWindow;\n\n\tWindowAttributes attributes;\n\tverify_noerr(GetWindowAttributes(mCarbonWindow, &attributes));\n\tmCompositWindow = (attributes & kWindowCompositingAttribute) != 0;\n\n\tRect area;\n\tarea.left = short(inLocation.x); area.top = short(inLocation.y);\n\tarea.right = short(area.left + inSize.x); area.bottom = short(area.top + inSize.y);\n\tOSStatus err = ::CreateUserPaneControl(inWindow, &area, \n\t\t\t\t\t\tkControlSupportsEmbedding,\n\t\t\t\t\t\t&mCarbonPane);\t// subclass can resize mCarbonPane to taste\n\tverify_noerr(err);\n\tif (err) return err;\n\toutParentControl = mCarbonPane;\n\t\n\t// register for mouse-down in our pane -- we want to clear focus\n\tEventTypeSpec paneEvents[] = {\n\t\t{ kEventClassControl, kEventControlClick }\n\t};\n\tWantEventTypes(GetControlEventTarget(mCarbonPane), GetEventTypeCount(paneEvents), paneEvents);\n\t\n\tif (IsCompositWindow()) {\n\t\tverify_noerr(::HIViewAddSubview(inParentControl, mCarbonPane));\n\t\tmXOffset = 0;\n\t\tmYOffset = 0;\n\t}\n\telse {\n\t\tverify_noerr(::EmbedControl(mCarbonPane, inParentControl));\n\t\tmXOffset = inLocation.x;\n\t\tmYOffset = inLocation.y;\n\t}\n\tmBottomRight.h = mBottomRight.v = 0;\n\t\n\tSizeControl(mCarbonPane, 0, 0);\n\tif (err = CreateUI(mXOffset, mYOffset))\n\t\treturn err;\n\n\t// we should only resize the control if a subclass has embedded\n\t// controls in this AND this is done with the EmbedControl call below\n\t// if mBottomRight is STILL equal to zero, then that wasn't done\n\t// so don't size the control\n\tRect paneBounds;\n\tGetControlBounds(mCarbonPane, &paneBounds);\n\t// only resize mCarbonPane if it has not already been resized during CreateUI\n\tif ((paneBounds.top == paneBounds.bottom) && (paneBounds.left == paneBounds.right)) {\n\t\tif (mBottomRight.h != 0 && mBottomRight.v != 0)\n\t\t\tSizeControl(mCarbonPane, (short) (mBottomRight.h - mXOffset), (short) (mBottomRight.v - mYOffset));\n\t}\n\n\tif (IsCompositWindow()) {\n\t\t// prepare for handling scroll-events\n\t\tEventTypeSpec scrollEvents[] = {\n\t\t\t{ kEventClassScrollable, kEventScrollableGetInfo },\n\t\t\t{ kEventClassScrollable, kEventScrollableScrollTo }\n\t\t};\n\t\t\n\t\tWantEventTypes(GetControlEventTarget(mCarbonPane), GetEventTypeCount(scrollEvents), scrollEvents);\n\t\n\t\tmCurrentScrollPoint.x = mCurrentScrollPoint.y = 0.0f;\n\t}\n\t\n\treturn err;\n#else\n\treturn noErr;\n#endif\n}\n\nOSStatus\tAUCarbonViewBase::CreateUI(Float32\tinXOffset, Float32 \tinYOffset)\n{\n\treturn noErr;\n}\n\nOSStatus\tAUCarbonViewBase::EmbedControl(ControlRef ctl)\n{\n#if !__LP64__\n\tRect r;\n\t::GetControlBounds(ctl, &r);\n\tif (r.right > mBottomRight.h) mBottomRight.h = r.right;\n\tif (r.bottom > mBottomRight.v) mBottomRight.v = r.bottom;\n\n\tif (IsCompositWindow()) \n\t\treturn ::HIViewAddSubview(mCarbonPane, ctl);\n\telse \n\t\treturn ::EmbedControl(ctl, mCarbonPane);\t\n#else\n\treturn noErr;\n#endif\n}\n\nvoid\tAUCarbonViewBase::AddCarbonControl(AUCarbonViewControl::ControlType type, const CAAUParameter &param, ControlRef control)\n{\n\tverify_noerr(EmbedControl(control));\n    \n\tAUCarbonViewControl *auvc = new AUCarbonViewControl(this, mParameterListener, type, param, control);\n\tauvc->Bind();\n\tAddControl(auvc);\n}\n\nbool\tAUCarbonViewBase::HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event)\n{\t\n#if !__LP64__\n\tUInt32 eclass = GetEventClass(event);\n\tUInt32 ekind = GetEventKind(event);\n\tControlRef control;\n\t\n\tswitch (eclass) {\n\t\tcase kEventClassControl:\n\t\t{\n\t\t\tswitch (ekind) {\n\t\t\tcase kEventControlClick:\n\t\t\t\tGetEventParameter(event, kEventParamDirectObject, typeControlRef, NULL, sizeof(ControlRef), NULL, &control);\n\t\t\t\tif (control == mCarbonPane) {\n\t\t\t\t\tClearKeyboardFocus(mCarbonWindow);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tbreak;\n\t\t\n\t\tcase kEventClassScrollable:\n\t\t{\n\t\t\tswitch (ekind) {\n\t\t\tcase kEventScrollableGetInfo:\n\t\t\t\t{\n\t\t\t\t\t// [1/4]\n\t\t\t\t\t/*\t<--\tkEventParamImageSize (out, typeHISize)\n\t\t\t\t\t *\t\tOn exit, contains the size of the entire scrollable view.\n\t\t\t\t\t */\n\t\t\t\t\tHISize originalSize = { mBottomRight.h, mBottomRight.v };\n\t\t\t\t\tverify_noerr(SetEventParameter(event, kEventParamImageSize, typeHISize, sizeof(HISize), &originalSize));\n\t\t\t\t\t\n\t\t\t\t\t// [2/4]\n\t\t\t\t\t/*\t<--\tkEventParamViewSize (out, typeHISize)\n\t\t\t\t\t *\t\tOn exit, contains the amount of the scrollable view that is\n\t\t\t\t\t *\t\tvisible.\n\t\t\t\t\t */\n\t\t\t\t\tHIViewRef parentView = HIViewGetSuperview(mCarbonPane);\n\t\t\t\t\tHIRect parentBounds;\n\t\t\t\t\tverify_noerr(HIViewGetBounds(parentView, &parentBounds));\n\t\t\t\t\t//HISize windowSize = {\tfloat(windowBounds.right - windowBounds.left),\n\t\t\t\t\t//\t\t\t\t\t\tfloat(windowBounds.bottom - windowBounds.top) };\n\t\t\t\t\tverify_noerr(SetEventParameter(event, kEventParamViewSize, typeHISize, sizeof(HISize), &(parentBounds.size)));\n\t\t\t\t\t\n\t\t\t\t\t// [3/4]\n\t\t\t\t\t/*\t<--\tkEventParamLineSize (out, typeHISize)\n\t\t\t\t\t *\t\tOn exit, contains the amount that should be scrolled in\n\t\t\t\t\t *\t\tresponse to a single click on a scrollbar arrow.\n\t\t\t\t\t */\n\t\t\t\t\t HISize scrollIncrementSize = { 16.0f, float(20) };\n\t\t\t\t\t verify_noerr(SetEventParameter(event, kEventParamLineSize, typeHISize, sizeof(HISize), &scrollIncrementSize));\n\t\t\t\t\t \n\t\t\t\t\t// [4/4]\n\t\t\t\t\t/*\t<-- kEventParamOrigin (out, typeHIPoint)\n\t\t\t\t\t *\t\tOn exit, contains the scrollable views current origin (the\n\t\t\t\t\t *\t\tview-relative coordinate that is drawn at the top left\n\t\t\t\t\t *\t\tcorner of its frame). These coordinates should always be\n\t\t\t\t\t *\t\tgreater than or equal to zero. They should be less than or\n\t\t\t\t\t *\t\tequal to the views image size minus its view size.\n\t\t\t\t\t */\n\t\t\t\t\t verify_noerr(SetEventParameter(event, kEventParamOrigin, typeHIPoint, sizeof(HIPoint), &mCurrentScrollPoint));\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t\t\n\t\t\tcase kEventScrollableScrollTo:\n\t\t\t\t{\n\t\t\t\t\t/*\n\t\t\t\t\t *  kEventClassScrollable / kEventScrollableScrollTo\n\t\t\t\t\t *  \n\t\t\t\t\t *  Summary:\n\t\t\t\t\t *    Requests that an HIScrollViews scrollable view should scroll to\n\t\t\t\t\t *    a particular origin.\n\t\t\t\t\t */\n\t\t\t\t\t\n\t\t\t\t\t/*\t-->\tkEventParamOrigin (in, typeHIPoint)\n\t\t\t\t\t *\t\tThe new origin for the scrollable view. The origin\n\t\t\t\t\t *\t\tcoordinates will vary from (0,0) to scrollable views image\n\t\t\t\t\t *\t\tsize minus its view size.\n\t\t\t\t\t */\n\t\t\t\t\tHIPoint pointToScrollTo;\n\t\t\t\t\tverify_noerr(GetEventParameter(event, kEventParamOrigin, typeHIPoint, NULL, sizeof(HIPoint), NULL, &pointToScrollTo));\n\t\t\t\t\t\n\t\t\t\t\tfloat xDelta = mCurrentScrollPoint.x - pointToScrollTo.x;\n\t\t\t\t\tfloat yDelta = mCurrentScrollPoint.y - pointToScrollTo.y;\n\t\t\t\t\t// move visible portion the appropriate amount\n\t\t\t\t\tverify_noerr(HIViewScrollRect(mCarbonPane, NULL, xDelta, yDelta));\n\t\t\t\t\t// set new content to be drawn\n\t\t\t\t\tverify_noerr(HIViewSetBoundsOrigin(mCarbonPane, pointToScrollTo.x, pointToScrollTo.y));\n\t\t\t\t\t\n\t\t\t\t\tmCurrentScrollPoint = pointToScrollTo;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t\t\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tbreak;\n\t\t\n\t\tdefault:\n\t\t\tbreak;\n\t}\n#endif\n\treturn false;\n}\n\n/*! @method TellListener */\nvoid\tAUCarbonViewBase::TellListener (const CAAUParameter &auvp, AudioUnitCarbonViewEventID event, void *evpar)\n{\n#if !__LP64__\n\tif (mEventListener)\n\t\t(*mEventListener)(mEventListenerUserData, mComponentInstance, &auvp, event, evpar);\n#endif\n\n\tAudioUnitEvent\tauEvent;\n\tauEvent.mArgument.mParameter = auvp;\n\tif (event == kAudioUnitCarbonViewEvent_MouseDownInControl) {\n\t\tauEvent.mEventType = kAudioUnitEvent_BeginParameterChangeGesture;\n\t} else {\n\t\tauEvent.mEventType = kAudioUnitEvent_EndParameterChangeGesture;\n\t}\n\tAUEventListenerNotify(mParameterListener, this, &auEvent);\t\t\t\t\t\t\t\t\t\n}\n\n\nvoid\t\t\tAUCarbonViewBase::Update (bool inUIThread)\n{\n\tfor (ControlList::iterator iter = mControlList.begin(); iter != mControlList.end(); ++iter)\n\t{\n\t\t(*iter)->Update(inUIThread);\n\t}\n}\n\npascal void\t\tAUCarbonViewBase::TheTimerProc (EventLoopTimerRef inTimer, void *inUserData)\n{\n\tAUCarbonViewBase* This = reinterpret_cast<AUCarbonViewBase*>(inUserData);\n\tThis->RespondToEventTimer (inTimer);\n}\n\nvoid\t\t\tAUCarbonViewBase::RespondToEventTimer (EventLoopTimerRef inTimer) \n{}\n\n/* \n\tTHESE are reasonable values for these two times\n\t0.005 // delay \n\t0.050 // interval\n*/\n\nOSStatus\tAUCarbonViewBase::CreateEventLoopTimer (Float32 inDelay, Float32 inInterval) \n{\n\tif (mTimerUPP)\n\t\treturn noErr;\n\t\n\tmTimerUPP = NewEventLoopTimerUPP(TheTimerProc);\n\t\n\tEventLoopRef mainEventLoop = GetMainEventLoop();\n\t\n\t\t//doesn't seem to like too small a value\n\tif (inDelay < 0.005)\n\t\tinDelay = 0.005;\n\t\t\t\n\tOSStatus timerResult =  ::InstallEventLoopTimer(\n\t\t\t\t\t\t\t\t\tmainEventLoop,\n\t\t\t\t\t\t\t\t\tinDelay,\n\t\t\t\t\t\t\t\t\tinInterval,\n\t\t\t\t\t\t\t\t\tmTimerUPP,\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t&mTimerRef);                       \n\treturn timerResult;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewBase.h",
    "content": "/*\n     File: AUCarbonViewBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUCarbonViewBase_h__\n#define __AUCarbonViewBase_h__\n\n#include <vector>\n#include \"AUCarbonViewControl.h\"\n#include \"ComponentBase.h\"\n\nstatic const Float32 kDefaultNotificationInterval = 0.100;\n\n\t/*! @class AUCarbonViewBase */\nclass AUCarbonViewBase : public ComponentBase, public CarbonEventHandler\n{\npublic:\n    /*! @ctor AUCarbonViewBase */\n    AUCarbonViewBase (\tAudioUnitCarbonView inInstance,\n\t\t\t\t\t\tFloat32 inNotificationInterval = kDefaultNotificationInterval /* in seconds */);\n\t/*! @dtor ~AUCarbonViewBase */\n\tvirtual ~AUCarbonViewBase();\n\t\n\t// AUViewBase overrides\n\t/*! @method CreateCarbonView */\n\tvirtual OSStatus\t\t\tCreateCarbonView (AudioUnit inAudioUnit, WindowRef inWindow, ControlRef inParentControl, const Float32Point &inLocation, const Float32Point &inSize, ControlRef &outParentControl);\n\n\t// our own virtual methods\n\t/*! @method CreateUI */\n\tvirtual OSStatus\t\t\tCreateUI (Float32\tinXOffset, Float32 \tinYOffset);\n\n\t/*! @method HandleEvent */\n\tvirtual bool\t\t\t\tHandleEvent (EventHandlerCallRef inHandlerRef, EventRef event);\n\t\n\t/*! @method GetEditAudioUnit */\n\tconst AudioUnit\t\t\t\tGetEditAudioUnit () const { return mEditAudioUnit; }\n\t//\n\t/*! @method ComponentEntryDispatch */\n\tstatic OSStatus\t\t\tComponentEntryDispatch (\n\t\t\t\t\t\t\t\t\tComponentParameters *\t\t\tparams,\n\t\t\t\t\t\t\t\t\tAUCarbonViewBase *\t\t\t\tThis);\n\n\t/*! @method AddCarbonControl */\n\tvoid\t\t\t\t\t\tAddCarbonControl (\n\t\t\t\t\t\t\t\t\tAUCarbonViewControl::ControlType\ttype, \n\t\t\t\t\t\t\t\t\tconst CAAUParameter &\t\t\t\tparam, \n\t\t\t\t\t\t\t\t\tControlRef\t\t\t\t\t\t\tcontrol);\n\n\t/*! @method GetCarbonWindow */\n\tWindowRef\t\t\t\t\tGetCarbonWindow () { return mCarbonWindow; }\n\t/*! @method GetCarbonPane */\n\tControlRef\t\t\t\t\tGetCarbonPane () { return mCarbonPane; }\n\t/*! @method EmbedControl */\n\tOSStatus\t\t\t\t\tEmbedControl (ControlRef ctl);\n\t\n\t/*! @method TellListener */\n\tvoid\t\t\t\t\t\tTellListener (const CAAUParameter &auvp, AudioUnitCarbonViewEventID event, void *evpar);\n\t\n\t// pass in true if wanting an update to the view and you're calling this from a thread\n\t// that is safe to do UI in.\n\t// If you don't know, pass in false!\n\t/*! @method Update */\n\tvoid\t\t\t\t\t\tUpdate (bool inUIThread);\n\t\n\t/*! @method GetXOffset */\n\tFloat32\t\t\t\t\t\tGetXOffset () { return mXOffset; }\n\t/*! @method GetYOffset */\n\tFloat32\t\t\t\t\t\tGetYOffset () { return mYOffset; }\n\t\n\t/*! @method ClearControls */\n\tvoid\t\t\t\t\t\tClearControls ();\n\t\n\t/*! @method IsCompositWindow */\n\tbool\t\t\t\t\t\tIsCompositWindow () const { return mCompositWindow; }\n\t\nprotected:\n#if !__LP64__\n\t/*! @method SetEventListener */\n\tvoid\t\t\t\t\t\tSetEventListener (AudioUnitCarbonViewEventListener listener, void *userData)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmEventListener = listener;\n\t\t\t\t\t\t\t\t\tmEventListenerUserData = userData;\n\t\t\t\t\t\t\t\t}\n#endif\n\n\t/*! @method AddControl */\n\tvoid\t\t\t\t\t\tAddControl (AUCarbonViewControl *control);\n\t/*! @method RemoveControl */\n\tvoid\t\t\t\t\t\tRemoveControl (AUCarbonViewControl *control);\n\n\tOSStatus\t\t\t\t\tCreateEventLoopTimer (Float32 inDelay, Float32 inInterval);\n\t\n\t/*! @method ParameterListener */\n\tstatic void ParameterListener (void *\t\t\t\t\t\tinCallbackRefCon,\n\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\tinObject,\n\t\t\t\t\t\t\t\t\tconst AudioUnitEvent *\t\tinEvent,\n\t\t\t\t\t\t\t\t\tUInt64\t\t\t\t\t\tinEventHostTime,\n\t\t\t\t\t\t\t\t\tFloat32\t\t\t\t\t\tinParameterValue);\n\t\t\t\t\t\t\t\t\t\n\tstatic pascal void TheTimerProc (\tEventLoopTimerRef \t\tinTimer, \n\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\tinUserData);\n\n\tvirtual void \t\t\t\tRespondToEventTimer (EventLoopTimerRef inTimer);\n\n\t/*! @var mEditAudioUnit */\n\tAudioUnit\t\t\t\t\tmEditAudioUnit;\t// the AU we're controlling\n\t/*! @var mParameterListener */\n\tAUEventListenerRef\t\t\tmParameterListener;\n\n#if !__LP64__\n\t/*! @var mEventListener */\n\tAudioUnitCarbonViewEventListener\n\t\t\t\t\t\t\t\tmEventListener;\n#endif\n\n\t/*! @var mEventListenerUserData */\n\tvoid *\t\t\t\t\t\tmEventListenerUserData;\n\nprivate:\n\ttypedef std::vector<AUCarbonViewControl *> ControlList;\n\t/*! @var mControlList */\n\tControlList\t\t\t\t\tmControlList;\n\n\tEventLoopTimerRef \t\t\tmTimerRef;\n\n\tEventLoopTimerUPP\t\t\tmTimerUPP;\n\nprotected:\n\t/*! @var mCarbonWindow */\n\tWindowRef\t\t\tmCarbonWindow;\n\t/*! @var mCarbonPane */\n\tControlRef\t\t\tmCarbonPane;\t// user pane, contains all other controls\n\t/*! @var mBottomRight */\n\tPoint\t\t\t\tmBottomRight;\t// largest width and height of child controls\n\t/*! @var mXOffset */\n\tFloat32\t\t\t\tmXOffset;\n\t/*! @var mYOffset */\n\tFloat32\t\t\t\tmYOffset;\n\t/*! @var mCompositWindow */\n\tbool\t\t\t\tmCompositWindow;\n\t/*! @var mCurrentScrollPoint */\n\tHIPoint\t\t\t\tmCurrentScrollPoint;\t\t// needed for scrolling\n};\n\n\n#endif // __AUCarbonViewBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewControl.cpp",
    "content": "/*\n     File: AUCarbonViewControl.cpp\n Abstract: AUCarbonViewControl.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUCarbonViewControl.h\"\n#include \"AUCarbonViewBase.h\"\n#include \"AUViewLocalizedStringKeys.h\"\n\nAUCarbonViewControl::AUCarbonViewControl(AUCarbonViewBase *ownerView, AUParameterListenerRef listener, ControlType type, const CAAUParameter &param, ControlRef control) :\n\tmOwnerView(ownerView),\n\tmListener(listener),\n\tmType(type),\n\tmParam(param),\n\tmControl(control),\n\tmInControlInitialization(0)\n{\n#if !__LP64__\n\tSetControlReference(control, SRefCon(this));\n#endif\n}\n\nAUCarbonViewControl::~AUCarbonViewControl()\n{\n\tAUListenerRemoveParameter(mListener, this, &mParam);\n}\n\nAUCarbonViewControl* AUCarbonViewControl::mLastControl = NULL;\n\nvoid\tAUCarbonViewControl::Bind()\n{\n#if !__LP64__\n\tmInControlInitialization = 1;   // true\n\tAUListenerAddParameter(mListener, this, &mParam);\n\t\t// will cause an almost-immediate callback\n\t\n\tEventTypeSpec events[] = {\n\t\t{ kEventClassControl, kEventControlValueFieldChanged }\t// N.B. OS X only\n\t};\n\t\n\tWantEventTypes(GetControlEventTarget(mControl), GetEventTypeCount(events), events);\n\n\tif (mType == kTypeContinuous || mType == kTypeText || mType == kTypeDiscrete) {\n\t\tEventTypeSpec events[] = {\n\t\t\t{ kEventClassControl, kEventControlHit },\n\t\t\t{ kEventClassControl, kEventControlClick },\n\t\t    { kEventClassControl, kEventControlTrack }\n\t\t};\n\t\tWantEventTypes(GetControlEventTarget(mControl), GetEventTypeCount(events), events);\n\t} \n\n\tif (mType == kTypeText) {\n\t\tEventTypeSpec events[] = {\n\t\t\t{ kEventClassControl, kEventControlSetFocusPart }\n\t\t};\n\t\tWantEventTypes(GetControlEventTarget(mControl), GetEventTypeCount(events), events); \n\t\tControlKeyFilterUPP proc = mParam.ValuesHaveStrings() ? StdKeyFilterCallback : NumericKeyFilterCallback;\n\t\t\t// this will fail for a static text field\n\t\tSetControlData(mControl, 0, kControlEditTextKeyFilterTag, sizeof(proc), &proc);\n\t}\n\t\n\tUpdate(true);\n\tmInControlInitialization = 0;   // false\n#endif\n}\n\nvoid\tAUCarbonViewControl::ParameterToControl(Float32 paramValue)\n{\n#if !__LP64__\n\t++mInControlInitialization;\n\tswitch (mType) {\n\tcase kTypeContinuous:\n\t\tSetValueFract(AUParameterValueToLinear(paramValue, &mParam));\n\t\tbreak;\n\tcase kTypeDiscrete:\n\t\t{\n\t\t\tlong value = long(paramValue);\n\t\t\t\n\t\t\t// special case [1] -- menu parameters\n\t\t\tif (mParam.HasNamedParams()) {\n\t\t\t\t// if we're dealing with menus they behave differently!\n\t\t\t\t// becaue setting min and max doesn't work correctly for the control value\n\t\t\t\t// first menu item always reports a control value of 1\n\t\t\t\tControlKind ctrlKind;\n\t\t\t\tif (GetControlKind(mControl, &ctrlKind) == noErr) {\n\t\t\t\t\tif ((ctrlKind.kind == kControlKindPopupArrow) \n\t\t\t\t\t\t|| (ctrlKind.kind == kControlKindPopupButton))\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue = value - long(mParam.ParamInfo().minValue) + 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// special case [2] -- Write-only boolean parameters\n\t\t\tAudioUnitParameterInfo AUPI = mParam.ParamInfo();\n\t\t\t\n\t\t\tbool isWriteOnlyBoolParameter = (\t(AUPI.unit == kAudioUnitParameterUnit_Boolean) &&\n\t\t\t\t\t\t\t\t\t\t\t\t(AUPI.flags & kAudioUnitParameterFlag_IsWritable) &&\n\t\t\t\t\t\t\t\t\t\t\t\t!(AUPI.flags & kAudioUnitParameterFlag_IsReadable)\t);\n\t\t\tif (!isWriteOnlyBoolParameter) {\n\t\t\t\tSetValue (value);\n\t\t\t}\n\t\t}\n\t\tbreak;\n\tcase kTypeText:\n\t\t{\n\t\t\tCFStringRef cfstr = mParam.GetStringFromValueCopy(&paramValue);\n\n\t\t\tif ( !(mParam.ParamInfo().flags & kAudioUnitParameterFlag_IsWritable)\t\t\t//READ ONLY PARAMS\n\t\t\t\t\t&& (mParam.ParamInfo().flags & kAudioUnitParameterFlag_IsReadable)) \n\t\t\t{\n\t\t\t\tif (mParam.GetParamTag()) {\n\t\t\t\t\tCFMutableStringRef str = CFStringCreateMutableCopy(NULL, 256, cfstr);\n\t\t\t\t\tCFRelease (cfstr);\n\t\t\t\t\tCFStringAppend (str, CFSTR(\" \"));\n\t\t\t\t\tCFStringAppend (str, mParam.GetParamTag());\n\t\t\t\t\tcfstr = str;\n\t\t\t\t}\n\t\t\t}\n\t\t\tSetTextValue(cfstr);\n\t\t\tCFRelease (cfstr);\n\t\t}\n\t\tbreak;\n\t}\n\t--mInControlInitialization;\n#endif\n}\n\nvoid\tAUCarbonViewControl::ControlToParameter()\n{\n#if !__LP64__\n\tif (mInControlInitialization)\n\t\treturn;\n\n\tswitch (mType) {\n\tcase kTypeContinuous:\n\t\t{\n\t\t\tdouble controlValue = GetValueFract();\n\t\t\tFloat32 paramValue = AUParameterValueFromLinear(controlValue, &mParam);\n\t\t\tmParam.SetValue(mListener, this, paramValue);\n\t\t}\n\t\tbreak;\n\tcase kTypeDiscrete:\n\t\t{\n\t\t\tlong value = GetValue();\n\t\t\t\n\t\t\t// special case [1] -- Menus\n\t\t\tif (mParam.HasNamedParams()) {\n\t\t\t\t// if we're dealing with menus they behave differently!\n\t\t\t\t// becaue setting min and max doesn't work correctly for the control value\n\t\t\t\t// first menu item always reports a control value of 1\n\t\t\t\tControlKind ctrlKind;\n\t\t\t\tif (GetControlKind(mControl, &ctrlKind) == noErr) {\n\t\t\t\t\tif ((ctrlKind.kind == kControlKindPopupArrow) \n\t\t\t\t\t\t|| (ctrlKind.kind == kControlKindPopupButton))\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tvalue = value + long(mParam.ParamInfo().minValue) - 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// special case [2] -- Write-only boolean parameters\n\t\t\tAudioUnitParameterInfo AUPI = mParam.ParamInfo();\n\t\t\t\n\t\t\tbool isWriteOnlyBoolParameter = (\t(AUPI.unit == kAudioUnitParameterUnit_Boolean) &&\n\t\t\t\t\t\t\t\t\t\t\t\t(AUPI.flags & kAudioUnitParameterFlag_IsWritable) &&\n\t\t\t\t\t\t\t\t\t\t\t\t!(AUPI.flags & kAudioUnitParameterFlag_IsReadable)\t);\n\t\t\tif (isWriteOnlyBoolParameter) {\n\t\t\t\tvalue = 1;\n\t\t\t}\n\t\t\t\n\t\t\tmParam.SetValue (mListener, this, value);\n\t\t}\n\t\tbreak;\n\tcase kTypeText:\n\t\t{\n\t\t\tFloat32 val = mParam.GetValueFromString (GetTextValue());\n\t\t\tmParam.SetValue(mListener, this, (mParam.IsIndexedParam() ? (int)val : val));\n\t\t\tif (mParam.ValuesHaveStrings())\n\t\t\t\tParameterToControl(val); //make sure we display the correct text (from the AU)\n\t\t}\n\t\tbreak;\n\t}\n#endif\n}\n\nvoid\tAUCarbonViewControl::SetValueFract(double value)\n{\n#if !__LP64__\n\tSInt32 minimum = GetControl32BitMinimum(mControl);\n\tSInt32 maximum = GetControl32BitMaximum(mControl);\n\tSInt32 cval = SInt32(value * (maximum - minimum) + minimum + 0.5);\n\tSetControl32BitValue(mControl, cval);\n//\tprintf(\"set: value=%lf, min=%ld, max=%ld, ctl value=%ld\\n\", value, minimum, maximum, cval);\n#endif\n}\n\ndouble\tAUCarbonViewControl::GetValueFract()\n{\n#if !__LP64__\n\tSInt32 minimum = GetControl32BitMinimum(mControl);\n\tSInt32 maximum = GetControl32BitMaximum(mControl);\n\tSInt32 cval = GetControl32BitValue(mControl);\n\tdouble result = double(cval - minimum) / double(maximum - minimum);\n//\tprintf(\"get: min=%ld, max=%ld, value=%ld, result=%f\\n\", minimum, maximum, cval, result);\n\treturn result;\n#else\n\treturn 0;\n#endif\n}\n\nvoid\tAUCarbonViewControl::SetTextValue(CFStringRef cfstr)\n{\n#if !__LP64__\n\tverify_noerr(SetControlData(mControl, 0, kControlEditTextCFStringTag, sizeof(CFStringRef), &cfstr));\n#endif\n}\n\nCFStringRef\tAUCarbonViewControl::GetTextValue()\n{\n#if !__LP64__\n\tCFStringRef cfstr;\n\tverify_noerr(GetControlData(mControl, 0, kControlEditTextCFStringTag, sizeof(CFStringRef), &cfstr, NULL));\n\treturn cfstr;\n#else\n\treturn CFSTR(\"\");\n#endif\n}\n\nvoid\tAUCarbonViewControl::SetValue(long value)\n{\n#if !__LP64__\n\tSetControl32BitValue(mControl, value);\n#endif\n}\n\nlong\tAUCarbonViewControl::GetValue()\n{\n#if !__LP64__\n\treturn GetControl32BitValue(mControl);\n#else\n\treturn 0;\n#endif\n}\n\n/* Notes on event handling \n\t\n\tButton (Click and release on button)\n\t\tkEventControlClick received\n\t\tkEventControlTrack received\n\t\tkEventControlValueFieldChanged received\n\t\tkEventControlHit received\n\t\n\tButton (Click and release outside of button bounds)\n\t\tkEventControlClick received\n\t\tkEventControlTrack received\n\t\n\tSlider (Click, drag, and release)\n\t\tkEventControlClick received\n\t\tkEventControlTrack received\n\t\tkEventControlValueFieldChanged received\n\t\tkEventControlValueFieldChanged received\n\t\tkEventControlHit received\n\t\t\n\tSlider (Click, release without changing value)\n\t\tkEventControlClick received\n\t\tkEventControlTrack received\n*/\nbool\tAUCarbonViewControl::HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event)\n{\n\tUInt32 eclass = GetEventClass(event);\n\tUInt32 ekind = GetEventKind(event);\n\tControlRef control;\n\tbool\t\thandled = true;\n\t\n\tswitch (eclass) {\n\t\tcase kEventClassControl:\n\t\t{\n\t\t\tAudioUnitParameterInfo AUPI = mParam.ParamInfo();\n\t\t\t\n\t\t\tbool isWriteOnlyBoolParameter = (\t(AUPI.unit == kAudioUnitParameterUnit_Boolean) &&\n\t\t\t\t\t\t\t\t\t\t\t\t(AUPI.flags & kAudioUnitParameterFlag_IsWritable) &&\n\t\t\t\t\t\t\t\t\t\t\t\t!(AUPI.flags & kAudioUnitParameterFlag_IsReadable)\t);\n\t\t\t\n\t\t\tswitch (ekind) {\n\t\t\t\tcase kEventControlSetFocusPart:\t// tab\n\t\t\t\t\thandled = !handled;\t\t// fall through to next case\n\t\t\t\t\tmLastControl = this;\n\t\t\t\tcase kEventControlValueFieldChanged:\n\t\t\t\t\tGetEventParameter(event, kEventParamDirectObject, typeControlRef, NULL, sizeof(ControlRef), NULL, &control);\n\t\t\t\t\tverify(control == mControl);\n\t\t\t\t\tControlToParameter();\n\t\t\t\t\treturn handled;\t\t\t\n\t\t\t\tcase kEventControlClick:\n\t\t\t\t\tif (isWriteOnlyBoolParameter) {\n\t\t\t\t\t\tGetEventParameter(event, kEventParamDirectObject, typeControlRef, NULL, sizeof(ControlRef), NULL, &control);\n\t\t\t\t\t\tverify(control == mControl);\n\t\t\t\t\t\tControlToParameter();\n\t\t\t\t\t} else if (mLastControl != this) {\n\t\t\t\t\t\tif (mLastControl != NULL) {\n\t\t\t\t\t\t\tmLastControl->Update(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmLastControl = this;\t\n\t\t\t\t\t}\n\t\t\t\t\tmOwnerView->TellListener(mParam, kAudioUnitCarbonViewEvent_MouseDownInControl, NULL);\n\t\t\t\t\tbreak;\t// don't return true, continue normal processing\n\t\t\t\tcase kEventControlHit:\n\t\t\t\t\tif (mLastControl != this) {\n\t\t\t\t\t\tif (mLastControl != NULL)\n\t\t\t\t\t\t\tmLastControl->Update(false);\n\t\t\t\t\t\tmLastControl = this;\t\n\t\t\t\t\t} \n\t\t\t\t\tmOwnerView->TellListener(mParam, kAudioUnitCarbonViewEvent_MouseUpInControl, NULL);\n\t\t\t\t\tbreak;\t// don't return true, continue normal processing\n\t\t\t\tcase kEventControlTrack:\t\t\n\t\t\t\t\tif (mLastControl != this) {\n\t\t\t\t\t\tif (mLastControl != NULL)\n\t\t\t\t\t\t\tmLastControl->Update(false);\n\t\t\t\t\t\tmLastControl = this;\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tCallNextEventHandler(inHandlerRef, event);\n\t\t\t\t\tControlToParameter();\t\t\t\t\t\t// new code\n\t\t\t\t\tmOwnerView->TellListener(mParam, kAudioUnitCarbonViewEvent_MouseUpInControl, NULL);\n\t\t\t\t\t// old code:\n\t\t\t\t\t//\t\tbreak;\t// don't return true, continue normal processing\n\n\t\t\t\t\treturn handled;\t// don't return true, continue normal processing\n\t\t\t}\n\t\t}\n\t}\n\treturn !handled;\n}\n\npascal void\tAUCarbonViewControl::SliderTrackProc(ControlRef theControl, ControlPartCode partCode)\n{\n\t// this doesn't need to actually do anything\n//\tAUCarbonViewControl *This = (AUCarbonViewControl *)GetControlReference(theControl);\n}\n\npascal ControlKeyFilterResult\tAUCarbonViewControl::StdKeyFilterCallback(ControlRef theControl, \n\t\t\t\t\t\t\t\t\t\t\t\tSInt16 *keyCode, SInt16 *charCode, \n\t\t\t\t\t\t\t\t\t\t\t\tEventModifiers *modifiers)\n{\n#if !__LP64__\n\tSInt16 c = *charCode;\n\tif (c >= ' ' || c == '\\b' || c == 0x7F || (c >= 0x1c && c <= 0x1f) || c == '\\t')\n\t\treturn kControlKeyFilterPassKey;\n\tif (c == '\\r' || c == 3) {\t// return or Enter\n\t\tAUCarbonViewControl *This = (AUCarbonViewControl *)GetControlReference(theControl);\n\t\tControlEditTextSelectionRec sel = { 0, 32767 };\n\t\tSetControlData(This->mControl, 0, kControlEditTextSelectionTag, sizeof(sel), &sel);\n\t\tThis->ControlToParameter();\n\t}\n#endif\n\treturn kControlKeyFilterBlockKey;\n}\n\npascal ControlKeyFilterResult\tAUCarbonViewControl::NumericKeyFilterCallback(ControlRef theControl, \n\t\t\t\t\t\t\t\t\t\t\t\tSInt16 *keyCode, SInt16 *charCode, \n\t\t\t\t\t\t\t\t\t\t\t\tEventModifiers *modifiers)\n{\n#if !__LP64__\n\tSInt16 c = *charCode;\n\tif (isdigit(c) || c == '+' || c == '-' || c == '.' || c == '\\b' || c == 0x7F || (c >= 0x1c && c <= 0x1f)\n\t|| c == '\\t')\n\t\treturn kControlKeyFilterPassKey;\n\tif (c == '\\r' || c == 3) {\t// return or Enter\n\t\tAUCarbonViewControl *This = (AUCarbonViewControl *)GetControlReference(theControl);\n\t\tControlEditTextSelectionRec sel = { 0, 32767 };\n\t\tSetControlData(This->mControl, 0, kControlEditTextSelectionTag, sizeof(sel), &sel);\n\t\tThis->ControlToParameter();\n\t}\n#endif\n\treturn kControlKeyFilterBlockKey;\n}\n\nBoolean\tAUCarbonViewControl::SizeControlToFit(ControlRef inControl, SInt16 *outWidth, SInt16 *outHeight)\n{\n#if !__LP64__\n\tif (inControl == 0) return false;\n\t\n\tBoolean bValue = false;\n\t// this only works on text controls -- returns an error for other controls, but doesn't do anything,\n\t// so the error is irrelevant\n\tSetControlData(inControl, kControlEntireControl, 'stim' /* kControlStaticTextIsMultilineTag */, sizeof(Boolean), &bValue);\n\t\n\tSInt16 baseLineOffset;\n\tRect bestRect;\n\tOSErr err = GetBestControlRect(inControl, &bestRect, &baseLineOffset);  \n\tif (err != noErr) return false;\n\t\n\tint width = (bestRect.right - bestRect.left) + 1;\n\tint height = (bestRect.bottom - bestRect.top) + 1;\n\t\n\tRect boundsRect;\n\tGetControlBounds (inControl, &boundsRect);\n\t\n\tRect newRect;\n\tnewRect.top = boundsRect.top;\n\tnewRect.bottom = newRect.top + height;\n\tnewRect.left = boundsRect.left;\n\tnewRect.right = newRect.left + width;\n\t\n\tSetControlBounds (inControl, &newRect);\n\t\n\tif (outWidth)\n\t\t*outWidth = width;\n\t\n\tif (outHeight)\n\t\t*outHeight = height;\n#endif\t\n\treturn true;\n}\n\n#pragma mark ___AUPropertyControl\nbool\tAUPropertyControl::HandleEvent(EventHandlerCallRef inHandlerRef, EventRef event)\n{\t\n\tUInt32 eclass = GetEventClass(event);\n\tUInt32 ekind = GetEventKind(event);\n\tswitch (eclass) {\n\tcase kEventClassControl:\n\t\tswitch (ekind) {\n\t\tcase kEventControlValueFieldChanged:\n\t\t\tHandleControlChange();\n\t\t\treturn true;\t// handled\n\t\t}\n\t}\n\n\treturn false;\n}\n\nvoid\tAUPropertyControl::RegisterEvents ()\n{\n#if !__LP64__\n\tEventTypeSpec events[] = {\n\t\t{ kEventClassControl, kEventControlValueFieldChanged }\t// N.B. OS X only\n\t};\n\t\n\tWantEventTypes(GetControlEventTarget(mControl), GetEventTypeCount(events), events);\n#endif\n}\n\nvoid\tAUPropertyControl::EmbedControl (ControlRef theControl) \n{ \n\tmView->EmbedControl (theControl); \n}\n\nWindowRef \tAUPropertyControl::GetCarbonWindow()\n{\n\treturn mView->GetCarbonWindow();\n}\n\n#pragma mark ___AUVPreset\n#if !__LP64__\nstatic CFStringRef kStringFactoryPreset = kAUViewLocalizedStringKey_FactoryPreset;\nstatic bool sAUVPresetLocalized = false;\n#endif\n\nAUVPresets::AUVPresets (AUCarbonViewBase* \t\tinParentView, \n\t\t\t\t\t\tCFArrayRef& \t\t\tinPresets,\n\t\t\t\t\t\tPoint \t\t\t\t\tinLocation, \n\t\t\t\t\t\tint \t\t\t\t\tnameWidth, \n\t\t\t\t\t\tint \t\t\t\t\tcontrolWidth, \n\t\t\t\t\t\tControlFontStyleRec & \tinFontStyle)\n\t: AUPropertyControl (inParentView),\n\t  mPresets (inPresets),\n\t  mView (inParentView)\n{\n#if !__LP64__\n\tRect r;\n\t\n\t// ok we now have an array of factory presets\n\t// get their strings and display them\n\n\tr.top = inLocation.v;\t\tr.bottom = r.top;\n\tr.left = inLocation.h;\t\tr.right = r.left;\n\t\n    // localize as necessary\n    if (!sAUVPresetLocalized) {\n        CFBundleRef mainBundle = CFBundleGetBundleWithIdentifier(kLocalizedStringBundle_AUView);\n        if (mainBundle) {\n            kStringFactoryPreset =\tCFCopyLocalizedStringFromTableInBundle(\n                                        kAUViewLocalizedStringKey_FactoryPreset, kLocalizedStringTable_AUView,\n                                        mainBundle, CFSTR(\"FactoryPreset title string\"));\n            sAUVPresetLocalized = true;\n        }\n    }\n    \n    // create localized title string\n    CFMutableStringRef factoryPresetsTitle = CFStringCreateMutable(NULL, 0);\n    CFStringAppend(factoryPresetsTitle, kStringFactoryPreset);\n    CFStringAppend(factoryPresetsTitle, kAUViewUnlocalizedString_TitleSeparator);\n    \n\tControlRef theControl;\n    verify_noerr(CreateStaticTextControl(mView->GetCarbonWindow(), &r, factoryPresetsTitle, &inFontStyle, &theControl));\n\tSInt16 width = 0;\n\tAUCarbonViewControl::SizeControlToFit(theControl, &width, &mHeight);\n    CFRelease(factoryPresetsTitle);\n\tEmbedControl(theControl);\n\t\n\tr.top -= 2;\n\tr.left += width + 10;\n\tr.right = r.left;\n\tr.bottom = r.top;\n\t\n\tverify_noerr(CreatePopupButtonControl (\tmView->GetCarbonWindow(), &r, NULL, \n\t\t\t\t\t\t\t\t\t\t\t-12345,\t// DON'T GET MENU FROM RESOURCE mMenuID,!!!\n\t\t\t\t\t\t\t\t\t\t\tFALSE,\t// variableWidth, \n\t\t\t\t\t\t\t\t\t\t\t0,\t\t// titleWidth, \n\t\t\t\t\t\t\t\t\t\t\t0,\t\t// titleJustification, \n\t\t\t\t\t\t\t\t\t\t\t0,\t\t// titleStyle, \n\t\t\t\t\t\t\t\t\t\t\t&mControl));\n\t\n\tMenuRef menuRef;\n\tverify_noerr(CreateNewMenu(1, 0, &menuRef));\n\t\n\tint numPresets = CFArrayGetCount(mPresets);\n\t\n\tfor (int i = 0; i < numPresets; ++i)\n\t{\n\t\tAUPreset* preset = (AUPreset*) CFArrayGetValueAtIndex (mPresets, i);\n\t\tverify_noerr(AppendMenuItemTextWithCFString (menuRef, preset->presetName, 0, 0, 0));\n\t}\n\t\n\tverify_noerr(SetControlData(mControl, 0, kControlPopupButtonMenuRefTag, sizeof(menuRef), &menuRef));\n\tverify_noerr (SetControlFontStyle (mControl, &inFontStyle));\n\t\n\tSetControl32BitMaximum (mControl, numPresets);\n\t\n\t// size popup\n\tSInt16 height = 0;\n\t\n\tAUCarbonViewControl::SizeControlToFit(mControl, &width, &height);\n\t\n\tif (height > mHeight) mHeight = height;\n\tif (mHeight < 0) mHeight = 0;\n\t\n\t// find which menu item is the Default preset\n\tUInt32 propertySize = sizeof(AUPreset);\n\tAUPreset defaultPreset;\n\tOSStatus result = AudioUnitGetProperty (mView->GetEditAudioUnit(), \n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_PresentPreset,\n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, \n\t\t\t\t\t\t\t\t\t0, \n\t\t\t\t\t\t\t\t\t&defaultPreset, \n\t\t\t\t\t\t\t\t\t&propertySize);\n\t\n\tmPropertyID = kAudioUnitProperty_PresentPreset;\n#endif\t\n#ifndef __LP64__\n\tif (result != noErr) {\t// if the PresentPreset property is not implemented, fall back to the CurrentPreset property\n\t\tOSStatus result = AudioUnitGetProperty (mView->GetEditAudioUnit(), \n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_CurrentPreset,\n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, \n\t\t\t\t\t\t\t\t\t0, \n\t\t\t\t\t\t\t\t\t&defaultPreset, \n\t\t\t\t\t\t\t\t\t&propertySize);\n\t\tmPropertyID = kAudioUnitProperty_CurrentPreset;\n\t\tif (result == noErr)\n\t\t\tCFRetain (defaultPreset.presetName);\n\t} \n#endif\n#if !__LP64__\t\t\n\tEmbedControl (mControl);\n\t\n\tHandlePropertyChange(defaultPreset);\n\t\n\tRegisterEvents();\n#endif\n}\n\nvoid\tAUVPresets::AddInterest (AUEventListenerRef\t\tinListener,\n\t\t\t\t\t\t\t\t\t\t\tvoid *\t\tinObject)\n{\n\tAudioUnitEvent e;\n\te.mEventType = kAudioUnitEvent_PropertyChange;\n\te.mArgument.mProperty.mAudioUnit = mView->GetEditAudioUnit();\n\te.mArgument.mProperty.mPropertyID = mPropertyID;\n\te.mArgument.mProperty.mScope = kAudioUnitScope_Global;\n\te.mArgument.mProperty.mElement = 0;\n\t\n\tAUEventListenerAddEventType(inListener, inObject, &e);\n}\n\nvoid\tAUVPresets::RemoveInterest (AUEventListenerRef\tinListener,\n\t\t\t\t\t\t\t\t\t\t\tvoid *\t\tinObject)\n{\n\tAudioUnitEvent e;\n\te.mEventType = kAudioUnitEvent_PropertyChange;\n\te.mArgument.mProperty.mAudioUnit = mView->GetEditAudioUnit();\n\te.mArgument.mProperty.mPropertyID = mPropertyID;\n\te.mArgument.mProperty.mScope = kAudioUnitScope_Global;\n\te.mArgument.mProperty.mElement = 0;\n\n\tAUEventListenerRemoveEventType(inListener, inObject, &e);\n}\n\nvoid\tAUVPresets::HandleControlChange ()\n{\n#if !__LP64__\n\tSInt32 i = GetControl32BitValue(mControl);\n\tif (i > 0)\n\t{\n\t\tAUPreset* preset = (AUPreset*) CFArrayGetValueAtIndex (mPresets, i-1);\n\t\n\t\tverify_noerr(AudioUnitSetProperty (mView->GetEditAudioUnit(), \n\t\t\t\t\t\t\t\t\tmPropertyID,\t// either currentPreset or PresentPreset depending on which is supported\n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, \n\t\t\t\t\t\t\t\t\t0, \n\t\t\t\t\t\t\t\t\tpreset, \n\t\t\t\t\t\t\t\t\tsizeof(AUPreset)));\n\t\t\t\t\t\t\t\t\t\n\t\t// when we change a preset we can't expect the AU to update its state\n\t\t// as it isn't meant to know that its being viewed!\n\t\t// so we broadcast a notification to all listeners that all parameters on this AU have changed\n\t\tAudioUnitParameter changedUnit;\n\t\tchangedUnit.mAudioUnit = mView->GetEditAudioUnit();\n\t\tchangedUnit.mParameterID = kAUParameterListener_AnyParameter;\n\t\tverify_noerr (AUParameterListenerNotify (NULL, NULL, &changedUnit) );\n\t}\n#endif\n}\n\nvoid\tAUVPresets::HandlePropertyChange(AUPreset &preset) \n{\n#if !__LP64__\n\t// check to see if the preset is in our menu\n\tint numPresets = CFArrayGetCount(mPresets);\n\tif (preset.presetNumber < 0) {\t\n\t\tSetControl32BitValue (mControl, 0); //controls are one-based\n\t} else {\n\t\tfor (SInt32 i = 0; i < numPresets; ++i) {\n\t\t\tAUPreset* currPreset = (AUPreset*) CFArrayGetValueAtIndex (mPresets, i);\n\t\t\tif (preset.presetNumber == currPreset->presetNumber) {\n\t\t\t\tSetControl32BitValue (mControl, ++i); //controls are one-based\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t\n\tif (preset.presetName)\n\t\tCFRelease (preset.presetName);\n#endif\n}\n\nbool\tAUVPresets::HandlePropertyChange (const AudioUnitProperty &inProp)\n{\n\tif (inProp.mPropertyID == mPropertyID) \n\t{\n\t\tUInt32 theSize = sizeof(AUPreset);\n\t\tAUPreset currentPreset;\n\t\t\n\t\tOSStatus result = AudioUnitGetProperty(inProp.mAudioUnit, \n\t\t\t\t\t\t\t\t\t\t\t\tinProp.mPropertyID, \n\t\t\t\t\t\t\t\t\t\t\t\tinProp.mScope, \n\t\t\t\t\t\t\t\t\t\t\t\tinProp.mElement, &currentPreset, &theSize);\n\t\t\n\t\tif (result == noErr) {\n#ifndef __LP64__\n\t\t\tif (inProp.mPropertyID == kAudioUnitProperty_CurrentPreset && currentPreset.presetName)\n\t\t\t\tCFRetain (currentPreset.presetName);\n#endif\n\t\t\tHandlePropertyChange(currentPreset);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewControl.h",
    "content": "/*\n     File: AUCarbonViewControl.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUCarbonViewControl_h__\n#define __AUCarbonViewControl_h__\n\n#include <Carbon/Carbon.h>\n#include <AudioUnit/AudioUnitCarbonView.h>\n#include <AudioToolbox/AudioUnitUtilities.h>\n#include \"CarbonEventHandler.h\"\n#include \"CAAUParameter.h\"\n\nclass AUCarbonViewBase;\n\n// ____________________________________________________________________________\n//\tAUCarbonViewControl\n//\tWrapper for a control that is wired to an AudioUnit parameter.\n\t/*! @class AUCarbonViewControl */\nclass AUCarbonViewControl : public CarbonEventHandler {\n\t// note that the controls are never disposed; that's managed by the AUCarbonViewBase's\n\t// parent pane which contains all of them ... if we later need to be able to delete\n\t// individual controls on the fly, extra work needed\npublic:\n\tenum ControlType {\n\t\tkTypeContinuous,\t// e.g. slider\n\t\tkTypeDiscrete,\t\t// e.g. pop-up menu\n\t\tkTypeText\n\t};\n\t\n\tAUCarbonViewControl(AUCarbonViewBase *ownerView, AUParameterListenerRef listener, ControlType type, const CAAUParameter &param, ControlRef control);\n\t~AUCarbonViewControl();\n\n\t/*! @method Bind */\n\tvirtual void\t\tBind();\t\t// second-stage construction\n\n\t/*! @method ControlToParameter */\n\tvirtual void\t\tControlToParameter();\n\t/*! @method ParameterToControl */\n\tvirtual void\t\tParameterToControl(Float32 newValue);\n\t\n\t/*! @method SetValueFract */\n\tvirtual void\t\tSetValueFract(double value);\n\t/*! @method GetValueFract */\n\tvirtual double\t\tGetValueFract();\n\t/*! @method SetTextValue */\n\tvirtual void\t\tSetTextValue(CFStringRef str);\n\t/*! @method GetTextValue */\n\tvirtual CFStringRef\tGetTextValue();\n\t/*! @method SetValue */\n\tvirtual void\t\tSetValue(long value);\n\t/*! @method GetValue */\n\tvirtual long\t\tGetValue();\n\t\n\t/*! @method GetOwnerView */\n\tAUCarbonViewBase * GetOwnerView() {return mOwnerView;}\n\n\t/*! @method Update */\n\tvoid\t\t\t\tUpdate (bool inUIThread) \n\t{ \n\t\t\t\tif (inUIThread)\n\t\t\t\t\tParameterToControl (mParam.GetValue());\n\t\t\t\telse\n\t\t\t\t\tAUParameterListenerNotify (mListener, this, &mParam);\n\t}\n\t\n\t\n\t// CarbonEventHandler overrides\n\t/*! @method HandleEvent */\n\tvirtual bool\t\tHandleEvent(EventHandlerCallRef inHandlerRef, EventRef event);\n\t\n\t/*! @method ControlRef */\n\toperator ControlRef() { return mControl; }\n\t\n\t/*! @method SizeControlToFit */\n\tstatic Boolean SizeControlToFit(ControlRef inControl, SInt16 *outWidth = NULL, SInt16 *outHeight = NULL);\n\t\n\t/*! @method SliderTrackProc */\n\tstatic pascal void SliderTrackProc(ControlRef theControl, ControlPartCode partCode);\n\t/*! @method NumericKeyFilterCallback */\n\tstatic pascal ControlKeyFilterResult NumericKeyFilterCallback(ControlRef theControl, SInt16 *keyCode, SInt16 *charCode, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEventModifiers *modifiers);\nprotected:\n\t/*! @method ParamInfo */\n\tconst AudioUnitParameterInfo &ParamInfo() { return mParam.ParamInfo(); }\n\n\t/*! @var mOwnerView */\n\tAUCarbonViewBase * \t\tmOwnerView;\n\t/*! @var mListener */\n\tAUParameterListenerRef\tmListener;\n\t/*! @var mType */\n\tControlType\t\t\t\tmType;\n\t/*! @var mParam */\n\tCAAUParameter\t\t\tmParam;\n\n\t/*! @var mControl */\n\tControlRef\t\t\t\tmControl;\n\t\n\t/*! @method StdKeyFilterCallback */\n\tstatic pascal ControlKeyFilterResult StdKeyFilterCallback(ControlRef theControl, SInt16 *keyCode,   SInt16 *charCode, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEventModifiers *modifiers);\n\tSInt16\t\t\t\t\tmInControlInitialization;\n\t\n\tstatic AUCarbonViewControl*\tmLastControl;\n};\n\n\t/*! @class AUPropertyControl */\nclass AUPropertyControl : public CarbonEventHandler {\npublic:\n\t/*! @ctor AUPropertyControl */\n\tAUPropertyControl (AUCarbonViewBase * \t\tinBase) : mControl(0), mView (inBase), mHeight(0) {}\n\t\n\t/*! @method HandleEvent */\n\tvirtual bool\tHandleEvent(EventHandlerCallRef inHandlerRef, EventRef event);\n\n\t/*! @method HandlePropertyChange */\n\tvirtual bool\tHandlePropertyChange (const AudioUnitProperty &inProp) = 0;\n\t\n\t/*! @method AddInterest */\n\tvirtual void\tAddInterest (AUEventListenerRef\t\tinListener,\n\t\t\t\t\t\t\t\tvoid *\t\t\t\t\tinObject) = 0;\n\t\n\t/*! @method RemoveInterest */\n\tvirtual void\tRemoveInterest  (AUEventListenerRef\tinListener,\n\t\t\t\t\t\t\t\tvoid *\t\t\t\t\tinObject) = 0;\n\t\n\t/*! @method GetHeight */\n\tint\t\t\tGetHeight()\t{ return mHeight;}\n\t\nprotected:\n\t/*! @method HandleControlChange */\n\tvirtual void\tHandleControlChange () = 0;\t\n\n\t/*! @method RegisterEvents */\n\t\t\tvoid\tRegisterEvents ();\n\n\t/*! @method EmbedControl */\n\t\t\tvoid\tEmbedControl (ControlRef theControl);\n\t\t\t\n\t/*! @method GetCarbonWindow */\n\tWindowRef \tGetCarbonWindow();\n\n\t/*! @var mControl */\n\tControlRef\t\t\tmControl;\n\t/*! @var mView */\n\tAUCarbonViewBase*\tmView;\n\t/*! @var mHeight */\n\tSInt16\t\t\t\tmHeight;\n};\n\n\t/*! @class AUVPresets */\nclass AUVPresets : public AUPropertyControl {\npublic:\n\t\t\t\t\t/*! @ctor HandleControlChange */\n\t\t\t\t\tAUVPresets (AUCarbonViewBase * \t\tinBase, \n\t\t\t\t\t\t\t\tCFArrayRef& \t\t\tinPresets,\n\t\t\t\t\t\t\t\tPoint \t\t\t\t\tinLocation, \n\t\t\t\t\t\t\t\tint \t\t\t\t\tnameWidth, \n\t\t\t\t\t\t\t\tint \t\t\t\t\tcontrolWidth, \n\t\t\t\t\t\t\t\tControlFontStyleRec & \tinFontStyle);\n\n\t\t\t\t\tvirtual ~AUVPresets () { CFRelease (mPresets); }\n\n\t/*! @method HandlePropertyChange */\n\tvirtual bool\tHandlePropertyChange (const AudioUnitProperty &inProp);\n\t\n\t/*! @method AddInterest */\n\tvirtual void\tAddInterest (AUEventListenerRef\t\tinListener,\n\t\t\t\t\t\t\t\tvoid *\t\t\t\t\tinObject);\n\t\n\t/*! @method RemoveInterest */\n\tvirtual void\tRemoveInterest  (AUEventListenerRef\tinListener,\n\t\t\t\t\t\t\t\tvoid *\t\t\t\t\tinObject);\n\nprotected:\n\t/*! @method HandleControlChange */\n\tvirtual void\tHandleControlChange ();\t\n\t\t\t\n\t/*! @var mPresets */\n\tCFArrayRef\t\t\tmPresets;\n\t/*! @var mView */\n\tAUCarbonViewBase*\tmView;\n\tAudioUnitPropertyID mPropertyID;\n\n\tvoid\tHandlePropertyChange(AUPreset &preset);\n};\n\n#endif // __AUCarbonViewControl_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUCarbonViewDispatch.cpp",
    "content": "/*\n     File: AUCarbonViewDispatch.cpp\n Abstract: AUCarbonViewDispatch.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUCarbonViewBase.h\"\n\n// ____________________________________________________________________________\n// component dispatch\n\n#if PRAGMA_STRUCT_ALIGN\n\t#pragma options align=mac68k\n#elif PRAGMA_STRUCT_PACKPUSH\n\t#pragma pack(push, 2)\n#elif PRAGMA_STRUCT_PACK\n\t#pragma pack(2)\n#endif\n\tstruct AudioUnitCarbonViewCreateGluePB {\n\t\tunsigned char                  componentFlags;\n\t\tunsigned char                  componentParamSize;\n\t\tshort                          componentWhat;\n\t\tControlRef*                    outControl;\n\t\tconst Float32Point*            inSize;\n\t\tconst Float32Point*            inLocation;\n\t\tControlRef                     inParentControl;\n\t\tWindowRef                      inWindow;\n\t\tAudioUnit                      inAudioUnit;\n\t\tAudioUnitCarbonView            inView;\n\t};\n#if !__LP64__\n\tstruct AudioUnitCarbonViewSetEventListenerGluePB {\n\t\tunsigned char                    componentFlags;\n\t\tunsigned char                    componentParamSize;\n\t\tshort                            componentWhat;\n\t\tvoid*                            inUserData;\n\t\tAudioUnitCarbonViewEventListener inCallback;\n\t\tAudioUnitCarbonView              inView;\n\t};\n#endif\n#if PRAGMA_STRUCT_ALIGN\n\t#pragma options align=reset\n#elif PRAGMA_STRUCT_PACKPUSH\n\t#pragma pack(pop)\n#elif PRAGMA_STRUCT_PACK\n\t#pragma pack()\n#endif\n\n#define CheckNull(x) if ((x) == NULL) return paramErr;\n\nOSStatus\t\tAUCarbonViewBase::ComponentEntryDispatch(ComponentParameters *p, AUCarbonViewBase *This)\n{\n\tif (This == NULL) return paramErr;\n\n\tOSStatus result = noErr;\n\t\n\tswitch (p->what) {\n\tcase kAudioUnitCarbonViewCreateSelect:\n\t\t{\n\t\t\tAudioUnitCarbonViewCreateGluePB *pb = (AudioUnitCarbonViewCreateGluePB *)p;\n\t\t\tCheckNull(pb->inAudioUnit);\n\t\t\tCheckNull(pb->inWindow);\n\t\t\tCheckNull(pb->inParentControl);\n\t\t\tCheckNull(pb->inSize);\n\t\t\tCheckNull(pb->inLocation);\n\t\t\tCheckNull(pb->outControl);\n\t\t\tresult = This->CreateCarbonView(pb->inAudioUnit, pb->inWindow, pb->inParentControl, \n\t\t\t\t\t*pb->inLocation, *pb->inSize, *pb->outControl);\n\t\t}\n\t\tbreak;\n#if !__LP64__\n\tcase kAudioUnitCarbonViewSetEventListenerSelect:\n\t\t{\n\t\t\tAudioUnitCarbonViewSetEventListenerGluePB *pb = (AudioUnitCarbonViewSetEventListenerGluePB *)p;\n\t\t\tThis->SetEventListener(pb->inCallback, pb->inUserData);\n\t\t}\n\t\tbreak;\n#endif\n\t\n\tdefault:\n\t\tresult = ComponentBase::ComponentEntryDispatch(p, This);\n\t\tbreak;\n\t}\n\treturn result;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUControlGroup.cpp",
    "content": "/*\n     File: AUControlGroup.cpp\n Abstract: AUControlGroup.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include <Carbon/Carbon.h>\n#include \"AUCarbonViewBase.h\"\n#include \"AUCarbonViewControl.h\"\n#include \"AUControlGroup.h\"\n#include \"AUViewLocalizedStringKeys.h\"\n\n#define kSliderThinDimension 10\n#define kLabelAndSliderSpacing\t4\n\n#if !__LP64__\nstatic CFStringRef kStringManufacturer = kAUViewLocalizedStringKey_Manufacturer;\nstatic bool sLocalized = false;\n#endif\n\nvoid\tAUControlGroup::CreateLabelledSlider(\n\t\t\t\t\t\t\t\t\t\tAUCarbonViewBase *\t\t\tauView, \n\t\t\t\t\t\t\t\t\t\tconst CAAUParameter &\t\tauvp, \n\t\t\t\t\t\t\t\t\t\tconst Rect &\t\t\t\tarea, \n\t\t\t\t\t\t\t\t\t\tPoint \t\t\t\t\t\tlabelSize, \n\t\t\t\t\t\t\t\t\t\tconst ControlFontStyleRec &\tinFontStyle)\n{\n#if !__LP64__\n\tControlFontStyleRec fontStyle = inFontStyle;\n\tRect minValRect, maxValRect, sliderRect;\n\tControlRef newControl;\n\tint width = area.right - area.left, height = area.bottom - area.top;\n\tCFStringRef cfstr;\n\tint sliderValueMax, sliderValueMin, sliderValueDefault;\n\tAUCarbonViewControl::ControlType sliderType;\n\t\n\tbool horizontal = (width > height);\n\n\tif (horizontal) {\n\t\tmaxValRect.top = minValRect.top = area.top + (height - labelSize.v) / 2;\n\t\tminValRect.left = area.left;\n\t\tmaxValRect.left = area.right - labelSize.h;\n\t\t\n\t\tminValRect.bottom = minValRect.top + labelSize.v;\n\t\tminValRect.right = minValRect.left + labelSize.h;\n\t\tmaxValRect.bottom = maxValRect.top + labelSize.v;\n\t\tmaxValRect.right = maxValRect.left + labelSize.h;\n\n\t\tsliderRect.left = minValRect.right + kLabelAndSliderSpacing;\n\t\tsliderRect.right = maxValRect.left - kLabelAndSliderSpacing;\n\t\tsliderRect.top = area.top + (height - kSliderThinDimension) / 2;\n\t\tsliderRect.bottom = sliderRect.top + kSliderThinDimension + 4;\n\n\t\tif (auvp.IsIndexedParam ()) {\n\t\t\tsliderValueMin = sliderValueDefault = int(auvp.ParamInfo().minValue);\n\t\t\tsliderValueMax = int(auvp.ParamInfo().maxValue);\n\t\t\tsliderType = AUCarbonViewControl::kTypeDiscrete;\n\t\t} else {\n\t\t\tsliderValueMin = sliderValueDefault = 0;\n\t\t\tsliderValueMax = sliderRect.right - sliderRect.left;\n\t\t\tsliderType = AUCarbonViewControl::kTypeContinuous;\n\t\t}\n\t} else {\n\t\tmaxValRect.left = minValRect.left = area.left + (width - labelSize.h) / 2;\n\t\tmaxValRect.top = area.top;\n\t\tminValRect.top = area.bottom - labelSize.v;\n\t\t\n\t\tminValRect.bottom = minValRect.top + labelSize.v;\n\t\tminValRect.right = minValRect.left + labelSize.h;\n\t\tmaxValRect.bottom = maxValRect.top + labelSize.v;\n\t\tmaxValRect.right = maxValRect.left + labelSize.h;\n\t\n\t\tsliderRect.left = area.left + (width - kSliderThinDimension) / 2;\n\t\tsliderRect.right = sliderRect.left + kSliderThinDimension + 4;\n\t\tsliderRect.top = maxValRect.bottom + kLabelAndSliderSpacing;\n\t\tsliderRect.bottom = minValRect.top - kLabelAndSliderSpacing;\n\n\t\tif (auvp.IsIndexedParam ()) {\n\t\t\tsliderValueMin = sliderValueDefault = int(auvp.ParamInfo().minValue);\n\t\t\tsliderValueMax = int(auvp.ParamInfo().maxValue);\t\t\t\n\t\t\tsliderType = AUCarbonViewControl::kTypeDiscrete;\n\t\t} else {\n\t\t\tsliderValueMin = sliderValueDefault = 0;\n\t\t\tsliderValueMax = sliderRect.bottom - sliderRect.top;\n\t\t\tsliderType = AUCarbonViewControl::kTypeContinuous;\n\t\t}\n\t}\n\n\t// minimum value label\n\tif (labelSize.v > 0 && labelSize.h > 0) {\n\t\t// check to see if the minimum value has a label\n\t\tcfstr = auvp.GetStringFromValueCopy(&auvp.ParamInfo().minValue);\n\t\tfontStyle.just = horizontal ? teFlushRight : teCenter;\n\t\tverify_noerr(CreateStaticTextControl(auView->GetCarbonWindow(), &minValRect, cfstr, &fontStyle, &newControl));\n\t\tCFRelease(cfstr);\n\t\tverify_noerr(auView->EmbedControl(newControl));\n\t\n\t\t// maximum value label\n\t\tcfstr = auvp.GetStringFromValueCopy(&auvp.ParamInfo().maxValue);\n\t\tfontStyle.just = horizontal ? teFlushLeft : teCenter;\n\t\tverify_noerr(CreateStaticTextControl(auView->GetCarbonWindow(), &maxValRect, cfstr, &fontStyle, &newControl));\n\t\tCFRelease(cfstr);\n\t\tverify_noerr(auView->EmbedControl(newControl));\n\t}\n\t\n\t// slider\n\tverify_noerr(CreateSliderControl(auView->GetCarbonWindow(), &sliderRect, sliderValueDefault, sliderValueMin, sliderValueMax, kControlSliderDoesNotPoint, 0, true, AUCarbonViewControl::SliderTrackProc, &newControl));\n\n\n\tControlSize small = kControlSizeSmall;\n\tSetControlData(newControl, kControlEntireControl, kControlSizeTag, sizeof(ControlSize), &small);\n\tauView->AddCarbonControl(sliderType, auvp, newControl);\n#endif\n}\n\nvoid\tAUControlGroup::CreateLabelledSliderAndEditText(\n\t\t\t\t\t\t\t\t\t\tAUCarbonViewBase *\t\t\tauView, \n\t\t\t\t\t\t\t\t\t\tconst CAAUParameter &\t\tauvp, \n\t\t\t\t\t\t\t\t\t\tconst Rect &\t\t\t\tarea, \n\t\t\t\t\t\t\t\t\t\tPoint \t\t\t\t\t\tlabelSize, \n\t\t\t\t\t\t\t\t\t\tPoint\t\t\t\t\t\teditTextSize,\n\t\t\t\t\t\t\t\t\t\tconst ControlFontStyleRec &\tinFontStyle)\n{\n#if !__LP64__\n\tControlFontStyleRec fontStyle = inFontStyle;\n\tRect sliderArea, textArea;\n\tControlRef newControl;\n\tint width = area.right - area.left, height = area.bottom - area.top;\n\t\n\tbool horizontal = (width > height);\n\n\tsliderArea = area;\n\ttextArea = area;\n\tif (horizontal) {\n\t\ttextArea.left = area.right - editTextSize.h;\n\t\t\t// provide a large text box if param is generic and its values have strings...\n\t\tif (auvp.ValuesHaveStrings() && (auvp.ParamInfo().unit == kAudioUnitParameterUnit_Generic))\n\t\t{\n\t\t\ttextArea.right += 30;\n\t\t}\n\t\tsliderArea.right = textArea.left - kLabelAndSliderSpacing;\n\t\ttextArea.top = area.top + (height - editTextSize.v) / 2;\n\t\ttextArea.bottom = textArea.top + editTextSize.v;\n\t} else {\n\t\ttextArea.top = area.bottom - editTextSize.v;\n\t\tsliderArea.bottom = textArea.top - kLabelAndSliderSpacing;\n\t\ttextArea.left = area.left + (width - editTextSize.h) / 2;\n\t\ttextArea.right = textArea.left + editTextSize.h;\n\t}\n\tCreateLabelledSlider(auView, auvp, sliderArea, labelSize, fontStyle);\n\t\n\tverify_noerr(CreateEditUnicodeTextControl(auView->GetCarbonWindow(), &textArea, CFSTR(\"\"), false, \n\t\t\t&fontStyle, &newControl));\n\tauView->AddCarbonControl(AUCarbonViewControl::kTypeText, auvp, newControl);\n#endif\n}\n\nvoid\tAUControlGroup::CreatePopupMenu (AUCarbonViewBase *\t\t\tauView, \n\t\t\t\t\t\t\t\t\t\tconst CAAUParameter &\t\tauvp, \n\t\t\t\t\t\t\t\t\t\tconst Rect &\t\t\t\tarea, \n\t\t\t\t\t\t\t\t\t\tconst ControlFontStyleRec &\tinFontStyle,\n\t\t\t\t\t\t\t\t\t\tconst bool\t\t\t\t\tinSizeToFit)\n{\n#if !__LP64__\n\tControlRef thePopUp;\n\t\t\t\n\tverify_noerr(CreatePopupButtonControl (auView->GetCarbonWindow(), &area, NULL, \n\t\t\t\t\t\t\t\t\t\t\t\t-12345,\t// DON'T GET MENU FROM RESOURCE mMenuID\n\t\t\t\t\t\t\t\t\t\t\t\tFALSE,\t// variableWidth, \n\t\t\t\t\t\t\t\t\t\t\t\t0,\t\t// titleWidth, \n\t\t\t\t\t\t\t\t\t\t\t\t0,\t\t// titleJustification, \n\t\t\t\t\t\t\t\t\t\t\t\t0,\t\t// titleStyle, \n\t\t\t\t\t\t\t\t\t\t\t\t&thePopUp));\n\t\n\tControlSize small = kControlSizeSmall;\n\tSetControlData(thePopUp, kControlEntireControl, kControlSizeTag, sizeof(ControlSize), &small);\n\t\n\tMenuRef menuRef;\n\tverify_noerr(CreateNewMenu( 1, 0, &menuRef));\n\t\n\tfor (int i = 0; i < auvp.GetNumIndexedParams(); ++i) {\n\t\tverify_noerr(AppendMenuItemTextWithCFString (menuRef, auvp.GetParamName(i), kMenuItemAttrIgnoreMeta, 0, 0));\n\t}\n\t\n\tverify_noerr(SetControlData(thePopUp, 0, kControlPopupButtonMenuRefTag, sizeof(menuRef), &menuRef));\n\tSetControl32BitMaximum(thePopUp, auvp.GetNumIndexedParams());\n\n\tverify_noerr (SetControlFontStyle (thePopUp, &inFontStyle));\n\t\n\tif (inSizeToFit) {\n\t\tAUCarbonViewControl::SizeControlToFit(thePopUp);\n\t}\n\t\n\tauView->AddCarbonControl(AUCarbonViewControl::kTypeDiscrete, auvp, thePopUp);\n#endif\n}\n\nvoid\tAUControlGroup::AddAUInfo (\t\tAUCarbonViewBase *\t\t\tauView, \n\t\t\t\t\t\t\t\t\t\tconst Point &\t\t\t\tinLocation, \n\t\t\t\t\t\t\t\t\t\tconst SInt16 \t\t\t\tinRightOffset,\n\t\t\t\t\t\t\t\t\t\tconst SInt16\t\t\t\tinTotalWidth)\n{\n#if !__LP64__\n   // get component info\n\tComponentDescription desc;\n    Handle h1 = NewHandleClear(4);\n\tOSStatus err = GetComponentInfo ((Component)auView->GetEditAudioUnit(), &desc, h1, 0, 0);\n    \n    if (err == noErr) {        \n        // Get the manufacturer's name... look for the ':' character convention\n        HLock(h1);\n        char* ptr1 = *h1;\n        int len = *ptr1++;\n        char* displayStr = 0;\n        \n        for (int i = 0; i < len; ++i) {\n            if (ptr1[i] == ':') { // found the name\n                ptr1[i++] = 0;\n                displayStr = ptr1;\n                break;\n            }\n        }\n        \n        // localize as necessary:\n        if (!sLocalized) {\n            CFBundleRef mainBundle = CFBundleGetBundleWithIdentifier(kLocalizedStringBundle_AUView);\n            if (mainBundle) {\n                kStringManufacturer = CFCopyLocalizedStringFromTableInBundle(\n                                            kAUViewLocalizedStringKey_Manufacturer, kLocalizedStringTable_AUView,\n                                            mainBundle, CFSTR(\"Manufacturer title string\"));\n                sLocalized = true;\n            }\n        }\n        \n        // display strings\n        ControlRef newControl;\n        Rect r;\n        r.top = SInt16(inLocation.v);\t\tr.bottom = SInt16(inLocation.v) + 16;\n        ControlFontStyleRec fontStyle;\n        fontStyle.flags = kControlUseFontMask | kControlUseJustMask;\n        fontStyle.font = kControlFontSmallBoldSystemFont;\n        \n        // display manufacturer string\n        if (displayStr) {\n            CFMutableStringRef mfrstring = CFStringCreateMutable(NULL, 0);\n            CFStringAppend(mfrstring, kStringManufacturer);\t\t// \"Manufacturer\"\n            CFStringAppend(mfrstring, kAUViewUnlocalizedString_TitleSeparator);\n                                                                // \"Manufacturer: \"\n            CFStringRef mfrname = CFStringCreateWithCString(NULL, displayStr, kCFStringEncodingUTF8);\n            if (mfrname) {\n                CFStringAppend(mfrstring, mfrname);\t// \"Manufacturer: MFRName\"\n                CFRelease (mfrname);\n            }\n            \n            r.left = inLocation.h + inRightOffset;\t\n\t\t\tr.right = inLocation.h + inTotalWidth - 28;\n\t\t\tfontStyle.just = teFlushRight;\n            \n            verify_noerr(CreateStaticTextControl(auView->GetCarbonWindow(), &r, mfrstring, &fontStyle, &newControl));\n            verify_noerr(auView->EmbedControl(newControl));\n            CFRelease (mfrstring);\n                                        \n            //move displayStr ptr past the manu, to the name\n            // we move the characters down an index, because the handle doesn't have any room\n            // at the end for the \\0\n\t\t\tint i = strlen(displayStr), j = 0;\n\t\t\twhile (displayStr[++i] == ' ' && i < len)\n\t\t\t\t;\n\t\t\twhile (i < len)\n\t\t\t\tdisplayStr[j++] = displayStr[i++];\n\t\t\tdisplayStr[j] = 0;\n        } else {\n\t\t\tdisplayStr = ptr1;\n\t\t\tint i = 0, j = 0;\n\t\t\tdo {\n\t\t\t\tdisplayStr[j] = displayStr[i];\n\t\t\t\t++j; ++i;\n\t\t\t} while (i < len);\n\t\t\t\n\t\t\tdisplayStr[j] = 0;\n        }\n        \n        // display AudioUnit string\n        r.left = inLocation.h;\tr.right = r.left + inRightOffset;\n        fontStyle.just = 0;\n        \n        CFMutableStringRef cfstr = CFStringCreateMutable(NULL, 0);\n        CFStringAppend(cfstr, kAUViewLocalizedStringKey_AudioUnit);\t\t// \"Audio Unit\"\n        CFStringAppend(cfstr, kAUViewUnlocalizedString_TitleSeparator);\n                                                        // \"Audio Unit: \"\n        \n\t\tCFStringRef auname = CFStringCreateWithCString(NULL, displayStr, kCFStringEncodingUTF8);\n\t\tCFStringAppend(cfstr, auname);\t\t\t\t// \"Audio Unit: AUName\"\n\t\tCFRelease (auname);\n        \n        verify_noerr(CreateStaticTextControl(auView->GetCarbonWindow(), &r, cfstr, &fontStyle, &newControl));\n\t\t\n\t\t// size text control correctly\n\t\tBoolean bValue = false;\n\t\tSetControlData(newControl, kControlEntireControl, 'stim' /* kControlStaticTextIsMultilineTag */, sizeof(Boolean), &bValue);\n\t\tSInt16 baseLineOffset;\n\t\tRect bestRect;\n\t\terr = GetBestControlRect(newControl, &bestRect, &baseLineOffset);  \n\t\tif (err == noErr)\n\t\t{\n\t\t\tint width = (bestRect.right - bestRect.left) + 1;\n\t\t\tint height = (bestRect.bottom - bestRect.top) + 1;\n\t\t\tSizeControl (newControl, width, height);\n\t\t}\n\t\t\n        verify_noerr(auView->EmbedControl(newControl));\n        CFRelease (cfstr);\n    }\n    \n\tDisposeHandle (h1);\n#endif\n}\n\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/AUControlGroup.h",
    "content": "/*\n     File: AUControlGroup.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUControlGroup_h__\n#define __AUControlGroup_h__\n\n#include <Carbon/Carbon.h>\n\nclass AUCarbonViewBase;\nclass CAAUParameter;\n\n// Utility class to create clusters of controls related to a single parameter\n\t/*! @class AUControlGroup */\nclass AUControlGroup {\npublic:\n\t/*! @method CreateLabelledSlider */\n\tstatic void\tCreateLabelledSlider(\tAUCarbonViewBase *\t\t\tauView, \n\t\t\t\t\t\t\t\t\t\tconst CAAUParameter &\t\tauvp, \n\t\t\t\t\t\t\t\t\t\tconst Rect &\t\t\t\tarea, \n\t\t\t\t\t\t\t\t\t\tPoint \t\t\t\t\t\tlabelSize, \n\t\t\t\t\t\t\t\t\t\tconst ControlFontStyleRec &\tfontStyle);\n\n\t/*! @method CreateLabelledSliderAndEditText */\n\tstatic void CreateLabelledSliderAndEditText(\n\t\t\t\t\t\t\t\t\t\tAUCarbonViewBase *\t\t\tauView, \n\t\t\t\t\t\t\t\t\t\tconst CAAUParameter &\t\tauvp, \n\t\t\t\t\t\t\t\t\t\tconst Rect &\t\t\t\tarea, \n\t\t\t\t\t\t\t\t\t\tPoint \t\t\t\t\t\tlabelSize, \n\t\t\t\t\t\t\t\t\t\tPoint\t\t\t\t\t\teditTextSize,\n\t\t\t\t\t\t\t\t\t\tconst ControlFontStyleRec &\tfontStyle);\n\n\t/*! @method CreatePopupMenu */\n\tstatic void CreatePopupMenu (\t\tAUCarbonViewBase *\t\t\tauView, \n\t\t\t\t\t\t\t\t\t\tconst CAAUParameter &\t\tauvp, \n\t\t\t\t\t\t\t\t\t\tconst Rect &\t\t\t\tarea, \n\t\t\t\t\t\t\t\t\t\tconst ControlFontStyleRec &\tinFontStyle,\n\t\t\t\t\t\t\t\t\t\tconst bool\t\t\t\t\tinSizeToFit = false);\n\n\t/*! @method AddAUInfo */\n\tstatic void AddAUInfo (\t\t\t\tAUCarbonViewBase *\t\t\tauView, \n\t\t\t\t\t\t\t\t\t\tconst Point &\t\t\t\tinLocation, \n\t\t\t\t\t\t\t\t\t\tconst SInt16 \t\t\t\tinRightOffset,\n\t\t\t\t\t\t\t\t\t\tconst SInt16\t\t\t\tinTotalWidth);\n};\n\n\n#endif // __AUControlGroup_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/CarbonEventHandler.cpp",
    "content": "/*\n     File: CarbonEventHandler.cpp\n Abstract: CarbonEventHandler.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CarbonEventHandler.h\"\n\nstatic pascal OSStatus TheEventHandler(EventHandlerCallRef inHandlerRef, EventRef inEvent, void *inUserData)\n{\n\tCarbonEventHandler *handler = (CarbonEventHandler *)inUserData;\n\tif (handler->HandleEvent(inHandlerRef, inEvent))\n\t\treturn noErr;\n\telse return eventNotHandledErr;\n}\n\nCarbonEventHandler::CarbonEventHandler() :\n\tmHandlers(NULL)\n{\n}\n\nCarbonEventHandler::~CarbonEventHandler()\n{\n\tif (mHandlers != NULL) {\n\t\tint count = static_cast<int>(CFDictionaryGetCount(mHandlers));\n\t\tEventHandlerRef *theHandlers = (EventHandlerRef*) malloc(count * sizeof(EventHandlerRef));\n\t\tCFDictionaryGetKeysAndValues(mHandlers, NULL, (const void **)theHandlers);\n\t\t\n\t\tfor (int i = 0; i < count; i++)\n\t\t\tRemoveEventHandler(theHandlers[i]);\n\t\tCFDictionaryRemoveAllValues(mHandlers);\n\t\tCFRelease (mHandlers);\n\t\tfree(theHandlers);\n\t}\t\n}\n\nvoid\tCarbonEventHandler::WantEventTypes(EventTargetRef target, UInt32 inNumTypes, const EventTypeSpec *inList)\n{\n\tif (mHandlers == NULL)\n\t\tmHandlers = CFDictionaryCreateMutable(NULL, 0, NULL, NULL);\n\t\t\n\tEventHandlerRef handler;\n\t\n\tif (CFDictionaryGetValueIfPresent (mHandlers, target, (const void **)&handler))\t// if there is already a handler for the target, add the type\n\t\tverify_noerr(AddEventTypesToHandler(handler, inNumTypes, inList));\n\telse {\n\t\tverify_noerr(InstallEventHandler(target, TheEventHandler, inNumTypes, inList, this, &handler));\n\t\tCFDictionaryAddValue(mHandlers, target, handler);\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUCarbonViewBase/CarbonEventHandler.h",
    "content": "/*\n     File: CarbonEventHandler.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CarbonEventHandler_h__\n#define __CarbonEventHandler_h__\n\n#include <Carbon/Carbon.h>\n\n\t/*! @class CarbonEventHandler */\nclass CarbonEventHandler {\npublic:\n\t/*! @ctor CarbonEventHandler */\n\tCarbonEventHandler();\n\t/*! @dtor ~CarbonEventHandler */\n\tvirtual ~CarbonEventHandler();\n\t\n\t/*! @method WantEventTypes */\n\tvirtual void\tWantEventTypes(EventTargetRef target, UInt32 inNumTypes, const EventTypeSpec *inList);\n\n\t/*! @method HandleEvent */\n\tvirtual bool\tHandleEvent(EventHandlerCallRef inHandlerRef, EventRef event) = 0;\n\nprotected:\n\t/*! @var mHandlers */\n\tCFMutableDictionaryRef mHandlers;\n};\n\n#endif // __CarbonEventHandler_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/AUInstrumentBase.cpp",
    "content": "/*\n     File: AUInstrumentBase.cpp\n Abstract: AUInstrumentBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUInstrumentBase.h\"\n#include \"AUMIDIDefs.h\"\n\n#if DEBUG\n\t#define DEBUG_PRINT 0\n\t#define DEBUG_PRINT_NOTE 0\n\t#define DEBUG_PRINT_RENDER 0\n#endif\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nconst UInt32 kEventQueueSize = 1024;\n\nAUInstrumentBase::AUInstrumentBase(\n\t\t\t\t\t\t\tAudioComponentInstance\t\t\tinInstance, \n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumInputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumOutputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumGroups,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumParts)\n\t: MusicDeviceBase(inInstance, numInputs, numOutputs, numGroups), \n\tmAbsoluteSampleFrame(0),\n\tmEventQueue(kEventQueueSize),\n\tmNumNotes(0),\n\tmNumActiveNotes(0),\n\tmMaxActiveNotes(0),\n\tmNotes(0),\n\tmNoteSize(0),\n\tmInitNumPartEls(numParts)\n{\n#if DEBUG_PRINT\n\tprintf(\"new AUInstrumentBase\\n\");\n#endif\n\tmFreeNotes.mState = kNoteState_Free;\n\tSetWantsRenderThreadID(true);\n}\n\t\n\nAUInstrumentBase::~AUInstrumentBase()\n{\n#if DEBUG_PRINT\n\tprintf(\"delete AUInstrumentBase\\n\");\n#endif\n}\n\nAUElement *\tAUInstrumentBase::CreateElement(AudioUnitScope inScope, AudioUnitElement element)\n{\n\tswitch (inScope)\n\t{\n\t\tcase kAudioUnitScope_Group:\n\t\t\treturn new SynthGroupElement(this, element, new MidiControls);\n\t\tcase kAudioUnitScope_Part:\n\t\t\treturn new SynthPartElement (this, element);\n\t}\n\treturn MusicDeviceBase::CreateElement(inScope, element);\n}\n\nvoid\t\tAUInstrumentBase::CreateExtendedElements() \n{\n\tParts().Initialize(this, kAudioUnitScope_Part, mInitNumPartEls);\n}\n\nAUScope *\tAUInstrumentBase::GetScopeExtended (AudioUnitScope inScope) \n{\n\tif (inScope == kAudioUnitScope_Part)\n\t\treturn &mPartScope;\n\treturn NULL;\n}\n\n\nvoid\t\tAUInstrumentBase::SetNotes(UInt32 inNumNotes, UInt32 inMaxActiveNotes, SynthNote* inNotes, UInt32 inNoteDataSize)\n{\n#if DEBUG_PRINT_NOTE\n\tprintf(\"AUInstrumentBase::SetNotes %d %d %p %d\\n\", inNumNotes, inMaxActiveNotes, inNotes, inNoteDataSize);\n#endif\n\tmNumNotes = inNumNotes;\n\tmMaxActiveNotes = inMaxActiveNotes;\n\tmNoteSize = inNoteDataSize;\n\tmNotes = inNotes;\n\t\n\tfor (UInt32 i=0; i<mNumNotes; ++i)\n\t{\n\t\t\tSynthNote *note = GetNote(i);\n\t\t\tnote->Reset();\n\t\t\tmFreeNotes.AddNote(note);\n\t}\n}\n\nUInt32\t\tAUInstrumentBase::CountActiveNotes()\n{\n\t// debugging tool.\n\tUInt32 sum = 0;\n\tfor (UInt32 i=0; i<mNumNotes; ++i)\n\t{\n\t\tSynthNote *note = GetNote(i);\n\t\tif (note->GetState() <= kNoteState_Released) \n\t\t\tsum++;\n\t}\n\treturn sum;\n}\n\nvoid\t\tAUInstrumentBase::AddFreeNote(SynthNote* inNote)\n{\n\t// Fast-released notes are already considered inactive and have already decr'd the active count\n\tif (inNote->GetState() < kNoteState_FastReleased) {\n\t\tDecNumActiveNotes();\n\t}\n#if DEBUG_PRINT_NOTE\n\telse {\n\t\t\tprintf(\"AUInstrumentBase::AddFreeNote: adding fast-released note %p\\n\", inNote);\n\t}\n\tprintf(\"AUInstrumentBase::AddFreeNote (%p)  mNumActiveNotes %lu\\n\", inNote, mNumActiveNotes);\n#endif\n\tmFreeNotes.AddNote(inNote);\n}\n\nOSStatus\t\t\tAUInstrumentBase::Initialize()\n{\n/*\nTO DO:\n\tCurrently ValidFormat will check and validate that the num channels is not being\n\tchanged if the AU doesn't support the SupportedNumChannels property - which is correct\n\t\n\tWhat needs to happen here is that IFF the AU does support this property, (ie, the AU\n\tcan be configured to have different num channels than its original configuration) then\n\tthe state of the AU at Initialization needs to be validated.\n\t\n\tThis is work still to be done - see AUEffectBase for the kind of logic that needs to be applied here\n*/\n\n\t// override to call SetNotes\n\t\n\tmNoteIDCounter = 128; // reset this every time we initialise\n\tmAbsoluteSampleFrame = 0;\n\treturn noErr;\n}\n\nvoid\t\t\t\tAUInstrumentBase::Cleanup()\n{\n\tmFreeNotes.Empty();\n}\n\n\nOSStatus\t\t\tAUInstrumentBase::Reset(\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement)\n{\n#if DEBUG_PRINT\n\tprintf(\"AUInstrumentBase::Reset\\n\");\n#endif\n\tif (inScope == kAudioUnitScope_Global)\n\t{\n\t\t// kill all notes..\n\t\tmFreeNotes.Empty();\n\t\tfor (UInt32 i=0; i<mNumNotes; ++i)\n\t\t{\n\t\t\tSynthNote *note = GetNote(i);\n\t\t\tif (note->IsSounding()) \n\t\t\t\tnote->Kill(0);\n\t\t\tnote->ListRemove();\n\t\t\tmFreeNotes.AddNote(note);\n\t\t}\n\t\tmNumActiveNotes = 0;\n\t\tmAbsoluteSampleFrame = 0;\n\n\t\t// empty lists.\n\t\tUInt32 numGroups = Groups().GetNumberOfElements();\n\t\tfor (UInt32 j = 0; j < numGroups; ++j)\n\t\t{\n\t\t\tSynthGroupElement *group = (SynthGroupElement*)Groups().GetElement(j);\n\t\t\tgroup->Reset();\n\t\t}\n\t}\n\treturn MusicDeviceBase::Reset(inScope, inElement);\n}\n\nvoid\t\tAUInstrumentBase::PerformEvents(const AudioTimeStamp& inTimeStamp)\n{\n#if DEBUG_PRINT_RENDER\n\tprintf(\"AUInstrumentBase::PerformEvents\\n\");\n#endif\n\tSynthEvent *event;\n\tSynthGroupElement *group;\n\t\n\twhile ((event = mEventQueue.ReadItem()) != NULL)\n\t{\n#if DEBUG_PRINT_RENDER\n\t\tprintf(\"event %08X %d\\n\", event, event->GetEventType());\n#endif\n\t\tswitch(event->GetEventType())\n\t\t{\n\t\t\tcase SynthEvent::kEventType_NoteOn :\n\t\t\t\tRealTimeStartNote(GetElForGroupID (event->GetGroupID()), event->GetNoteID(),\n\t\t\t\t\t\t\t\t\tevent->GetOffsetSampleFrame(), *event->GetParams());\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_NoteOff :\n\t\t\t\tRealTimeStopNote(event->GetGroupID(), event->GetNoteID(),\n\t\t\t\t\tevent->GetOffsetSampleFrame());\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_SustainOn :\n\t\t\t\tgroup = GetElForGroupID (event->GetGroupID());\n\t\t\t\tgroup->SustainOn(event->GetOffsetSampleFrame());\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_SustainOff :\n\t\t\t\tgroup = GetElForGroupID (event->GetGroupID());\n\t\t\t\tgroup->SustainOff(event->GetOffsetSampleFrame());\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_SostenutoOn :\n\t\t\t\tgroup = GetElForGroupID (event->GetGroupID());\n\t\t\t\tgroup->SostenutoOn(event->GetOffsetSampleFrame());\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_SostenutoOff :\n\t\t\t\tgroup = GetElForGroupID (event->GetGroupID());\n\t\t\t\tgroup->SostenutoOff(event->GetOffsetSampleFrame());\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_AllNotesOff :\n\t\t\t\tgroup = GetElForGroupID (event->GetGroupID());\n\t\t\t\tgroup->AllNotesOff(event->GetOffsetSampleFrame());\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_AllSoundOff :\n\t\t\t\tgroup = GetElForGroupID (event->GetGroupID());\n\t\t\t\tgroup->AllSoundOff(event->GetOffsetSampleFrame());\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_ResetAllControllers :\n\t\t\t\tgroup = GetElForGroupID (event->GetGroupID());\n\t\t\t\tgroup->ResetAllControllers(event->GetOffsetSampleFrame());\n\t\t\t\tbreak;\n\t\t}\n\t\t\n\t\tmEventQueue.AdvanceReadPtr();\n\t}\n}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\nOSStatus\t\t\tAUInstrumentBase::Render(   AudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames)\n{\n\tPerformEvents(inTimeStamp);\n\n\tAUScope &outputs = Outputs();\n\tUInt32 numOutputs = outputs.GetNumberOfElements();\n\tfor (UInt32 j = 0; j < numOutputs; ++j)\n\t{\n\t\tGetOutput(j)->PrepareBuffer(inNumberFrames);\t// AUBase::DoRenderBus() only does this for the first output element\n\t\tAudioBufferList& bufferList = GetOutput(j)->GetBufferList();\n\t\tfor (UInt32 k = 0; k < bufferList.mNumberBuffers; ++k)\n\t\t{\n\t\t\tmemset(bufferList.mBuffers[k].mData, 0, bufferList.mBuffers[k].mDataByteSize);\n\t\t}\n\t}\n\tUInt32 numGroups = Groups().GetNumberOfElements();\n\tfor (UInt32 j = 0; j < numGroups; ++j)\n\t{\n\t\tSynthGroupElement *group = (SynthGroupElement*)Groups().GetElement(j);\n\t\tOSStatus err = group->Render((SInt64)inTimeStamp.mSampleTime, inNumberFrames, outputs);\n\t\tif (err) return err;\n\t}\n\tmAbsoluteSampleFrame += inNumberFrames;\n\treturn noErr;\n}\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\tAUInstrumentBase::ValidFormat\n//\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nbool\t\t\t\tAUInstrumentBase::ValidFormat(\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription  & inNewFormat)\n{\t\n\t\t// if the AU supports this, then we should just let this go through to the Init call\n\tif (SupportedNumChannels (NULL)) \n\t\treturn MusicDeviceBase::ValidFormat(inScope, inElement, inNewFormat);\n\n\tbool isGood = MusicDeviceBase::ValidFormat (inScope, inElement, inNewFormat);\n\tif (!isGood) return false;\n\t\n\t\t// if we get to here, then the basic criteria is that the\n\t\t// num channels cannot change on an existing bus\n\tAUIOElement *el = GetIOElement (inScope, inElement);\n\treturn (el->GetStreamFormat().NumberChannels() == inNewFormat.NumberChannels()); \n}\n\n\nbool\t\t\t\tAUInstrumentBase::StreamFormatWritable(\tAudioUnitScope\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\telement)\n{\n\treturn IsInitialized() ? false : true;\n}\n\nOSStatus\t\t\tAUInstrumentBase::RealTimeStartNote(\tSynthGroupElement \t\t\t*inGroup,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams &inParams)\n{\n\treturn noErr;\n}\n\nSynthPartElement *\tAUInstrumentBase::GetPartElement (AudioUnitElement inPartElement)\n{\n\tAUScope & parts = Parts();\n\tunsigned int numEls = parts.GetNumberOfElements();\n\tfor (unsigned int i = 0; i < numEls; ++i) {\n\t\tSynthPartElement* el = reinterpret_cast<SynthPartElement*>(parts.GetElement(i));\n\t\tif (el->GetIndex() == inPartElement) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn NULL;\n}\n\nSynthGroupElement *\tAUInstrumentBase::GetElForGroupID (MusicDeviceGroupID\tinGroupID)\n{\n\tAUScope & groups = Groups();\n\tunsigned int numEls = groups.GetNumberOfElements();\n\tSynthGroupElement* unassignedEl = NULL;\n\t\n\tfor (unsigned int i = 0; i < numEls; ++i) {\n\t\tSynthGroupElement* el = reinterpret_cast<SynthGroupElement*>(groups.GetElement(i));\n\t\tif (el->GroupID() == inGroupID) \n\t\t\treturn el;\n\t\tif (el->GroupID() == SynthGroupElement::kUnassignedGroup) {\n\t\t\tunassignedEl = el;\n\t\t\tbreak; // we fill this up from the start of the group scope vector\n\t\t}\n\t}\n\tif (unassignedEl) {\n\t\tunassignedEl->SetGroupID(inGroupID);\n\t\treturn unassignedEl;\n\t}\n\tthrow static_cast<OSStatus>(kAudioUnitErr_InvalidElement);\n}\n\nOSStatus\t\t\tAUInstrumentBase::RealTimeStopNote(\n\t\t\t\t\t\t\t\t\t\t\t\tMusicDeviceGroupID \t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame)\n{\n#if DEBUG_PRINT\n\tprintf(\"AUInstrumentBase::RealTimeStopNote ch %d id %d\\n\", inGroupID, inNoteInstanceID);\n#endif\n\t\n\tSynthGroupElement *gp = (inGroupID == kMusicNoteEvent_Unused\n\t\t\t\t\t\t\t\t? GetElForNoteID (inNoteInstanceID)\n\t\t\t\t\t\t\t\t: GetElForGroupID(inGroupID));\n\tif (gp)\n\t{\n\t\tgp->NoteOff (inNoteInstanceID, inOffsetSampleFrame);\n\t}\n\t\n\treturn noErr;\n}\n\nSynthGroupElement *\tAUInstrumentBase::GetElForNoteID (NoteInstanceID inNoteID)\n{\n#if DEBUG_PRINT\n\tprintf(\"GetElForNoteID id %u\\n\", inNoteID);\n#endif\n\tAUScope & groups = Groups();\n\tunsigned int numEls = groups.GetNumberOfElements();\n\t\n\tfor (unsigned int i = 0; i < numEls; ++i) {\n\t\tSynthGroupElement* el = reinterpret_cast<SynthGroupElement*>(groups.GetElement(i));\n\t\tif (el->GetNote(inNoteID) != NULL)\t// searches for any note state\n\t\t\treturn el;\n\t}\n\tthrow static_cast<OSStatus>(kAudioUnitErr_InvalidElement);\n}\n\nOSStatus\t\t\tAUInstrumentBase::StartNote(\tMusicDeviceInstrumentID \tinInstrument, \n\t\t\t\t\t\t\t\t\t\t\t\t\tMusicDeviceGroupID \t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID *\t\t\toutNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams &inParams)\n{\n\tOSStatus err = noErr;\n\t\n\tNoteInstanceID noteID; \n\tif (outNoteInstanceID) {\n\t\tnoteID = NextNoteID();\n\t\t*outNoteInstanceID = noteID;\n\t} else\n\t\tnoteID = (UInt32)inParams.mPitch;\n\t\n#if DEBUG_PRINT\n\tprintf(\"AUInstrumentBase::StartNote ch %u, key %u, offset %u\\n\", inGroupID, (unsigned) inParams.mPitch, inOffsetSampleFrame);\n#endif\n\n\tif (InRenderThread ())\n\t{\t\t\n\t\terr = RealTimeStartNote(\n\t\t\t\t\tGetElForGroupID(inGroupID),\n\t\t\t\t\tnoteID,\n\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\t\tinParams);\n\t}\n\telse\n\t{\n\t\tSynthEvent *event = mEventQueue.WriteItem();\n\t\tif (!event) return -1; // queue full\n\n\t\tevent->Set(\n\t\t\tSynthEvent::kEventType_NoteOn,\n\t\t\tinGroupID,\n\t\t\tnoteID,\n\t\t\tinOffsetSampleFrame,\n\t\t\t&inParams\n\t\t);\n\t\t\n\t\tmEventQueue.AdvanceWritePtr();\n\t}\n\treturn err;\n}\n\nOSStatus\t\t\tAUInstrumentBase::StopNote( MusicDeviceGroupID \t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame)\n{\n#if DEBUG_PRINT\n\tprintf(\"AUInstrumentBase::StopNote ch %u, id %u, offset %u\\n\", (unsigned)inGroupID, (unsigned)inNoteInstanceID, inOffsetSampleFrame);\n#endif\n\tOSStatus err = noErr;\n\n\tif (InRenderThread ())\n\t{\t\t\n\t\terr = RealTimeStopNote(\n\t\t\tinGroupID,\n\t\t\tinNoteInstanceID,\n\t\t\tinOffsetSampleFrame);\n\t}\n\telse\n\t{\n\t\tSynthEvent *event = mEventQueue.WriteItem();\n\t\tif (!event) return -1; // queue full\n\n\t\tevent->Set(\n\t\t\tSynthEvent::kEventType_NoteOff,\n\t\t\tinGroupID,\n\t\t\tinNoteInstanceID,\n\t\t\tinOffsetSampleFrame,\n\t\t\tNULL\n\t\t);\n\t\t\n\t\tmEventQueue.AdvanceWritePtr();\n\t}\n\treturn err;\n}\n\nOSStatus\tAUInstrumentBase::SendPedalEvent(MusicDeviceGroupID inGroupID, UInt32 inEventType, UInt32 inOffsetSampleFrame)\n{\n\t\n\tif (InRenderThread ())\n\t{\n\t\tSynthGroupElement *group = GetElForGroupID(inGroupID);\n\t\tif (!group)\n\t\t\treturn kAudioUnitErr_InvalidElement;\n\t\t\n\t\tswitch (inEventType)\n\t\t{\n\t\t\tcase SynthEvent::kEventType_SustainOn :\n\t\t\t\tgroup->SustainOn(inOffsetSampleFrame);\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_SustainOff :\n\t\t\t\tgroup->SustainOff(inOffsetSampleFrame);\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_SostenutoOn :\n\t\t\t\tgroup->SostenutoOn(inOffsetSampleFrame);\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_SostenutoOff :\n\t\t\t\tgroup->SostenutoOff(inOffsetSampleFrame);\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_AllNotesOff :\n\t\t\t\tgroup->AllNotesOff(inOffsetSampleFrame);\n\t\t\t\tmNumActiveNotes = CountActiveNotes();\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_AllSoundOff :\n\t\t\t\tgroup->AllSoundOff(inOffsetSampleFrame);\n\t\t\t\tmNumActiveNotes = CountActiveNotes();\n\t\t\t\tbreak;\n\t\t\tcase SynthEvent::kEventType_ResetAllControllers :\n\t\t\t\tgroup->ResetAllControllers(inOffsetSampleFrame);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\telse\n\t{\n\t\tSynthEvent *event = mEventQueue.WriteItem();\n\t\tif (!event) return -1; // queue full\n\n\t\tevent->Set(inEventType, inGroupID, 0, 0, NULL);\n\t\t\n\t\tmEventQueue.AdvanceWritePtr();\n\t}\n\treturn noErr;\n}\n\nOSStatus\tAUInstrumentBase::HandleControlChange(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinController,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame)\n{\n#if DEBUG_PRINT\n\tprintf(\"AUInstrumentBase::HandleControlChange ch %u ctlr: %u val: %u frm: %u\\n\", inChannel, inController, inValue, inStartFrame);\n#endif\n\tSynthGroupElement *gp = GetElForGroupID(inChannel);\n\tif (gp)\n\t{\n\t\tgp->ChannelMessage(inController, inValue);\n\t}\n\telse\n\t\treturn kAudioUnitErr_InvalidElement;\n\tswitch (inController)\n\t{\n\t\tcase kMidiController_Sustain :\n\t\t\tif (inValue >= 64)\n\t\t\t\tSendPedalEvent(inChannel, SynthEvent::kEventType_SustainOn, inStartFrame);\n\t\t\telse\n\t\t\t\tSendPedalEvent(inChannel, SynthEvent::kEventType_SustainOff, inStartFrame);\n\t\t\tbreak;\n\t\tcase kMidiController_Sostenuto :\n\t\t\tif (inValue >= 64)\n\t\t\t\tSendPedalEvent(inChannel, SynthEvent::kEventType_SostenutoOn, inStartFrame);\n\t\t\telse\n\t\t\t\tSendPedalEvent(inChannel, SynthEvent::kEventType_SostenutoOff, inStartFrame);\n\t\t\tbreak;\n        case kMidiController_OmniModeOff:\n        case kMidiController_OmniModeOn:\n        case kMidiController_MonoModeOn:\n        case kMidiController_MonoModeOff:\n            HandleAllSoundOff(inChannel);\n            break;\n\t}\n\treturn noErr;\n}\n\t\t\t\t\t\t\t\t\t\t\t\t\nOSStatus\tAUInstrumentBase::HandlePitchWheel(\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinPitch1,\t// LSB\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinPitch2,\t// MSB\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame)\n{\n\tSynthGroupElement *gp = GetElForGroupID(inChannel);\n\tif (gp)\n\t{\n\t\tgp->ChannelMessage(kMidiMessage_PitchWheel, (inPitch2 << 7) | inPitch1);\n\t\treturn noErr;\n\t}\n\telse\n\t\treturn kAudioUnitErr_InvalidElement;\n}\n\n\t\t\t\t\t\t\t\t\t\t\t\t\nOSStatus\tAUInstrumentBase::HandleChannelPressure(UInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame)\n{\n\tSynthGroupElement *gp = GetElForGroupID(inChannel);\n\tif (gp)\n\t{\n\t\tgp->ChannelMessage(kMidiMessage_ChannelPressure, inValue);\n\t\treturn noErr;\n\t}\n\telse\n\t\treturn kAudioUnitErr_InvalidElement;\n}\n\n\nOSStatus\tAUInstrumentBase::HandleProgramChange(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue)\n{\n#if DEBUG_PRINT\n\tprintf(\"AUInstrumentBase::HandleProgramChange %u %u\\n\", inChannel, inValue);\n#endif\n\tSynthGroupElement *gp = GetElForGroupID(inChannel);\n\tif (gp)\n\t{\n\t\tgp->ChannelMessage(kMidiMessage_ProgramChange, inValue);\n\t\treturn noErr;\n\t}\n\telse\n\t\treturn kAudioUnitErr_InvalidElement;\n}\n\n\nOSStatus\tAUInstrumentBase::HandlePolyPressure(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinKey,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8\tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame)\n{\n\tSynthGroupElement *gp = GetElForGroupID(inChannel);\n\tif (gp)\n\t{\n\t\t// Combine key and value into single argument.  UGLY!\n\t\tgp->ChannelMessage(kMidiMessage_PolyPressure, (inKey << 7) | inValue);\n\t\treturn noErr;\n\t}\n\telse\n\t\treturn kAudioUnitErr_InvalidElement;\n}\n\n\nOSStatus\tAUInstrumentBase::HandleResetAllControllers(\tUInt8 \tinChannel)\n{\n\treturn SendPedalEvent (inChannel, SynthEvent::kEventType_ResetAllControllers, 0);\n}\n\n\t\nOSStatus\tAUInstrumentBase::HandleAllNotesOff(\t\t\tUInt8 \tinChannel)\n{\n\treturn SendPedalEvent (inChannel, SynthEvent::kEventType_AllNotesOff, 0);\n}\n\n\t\nOSStatus\tAUInstrumentBase::HandleAllSoundOff(\t\t\tUInt8 \tinChannel)\n{\n\treturn SendPedalEvent (inChannel, SynthEvent::kEventType_AllSoundOff, 0);\n}\n\nSynthNote*  AUInstrumentBase::GetAFreeNote(UInt32 inFrame)\n{\n#if DEBUG_PRINT_NOTE\n\tprintf(\"AUInstrumentBase::GetAFreeNote:  %lu available\\n\", mFreeNotes.Length());\n#endif\n\tSynthNote *note = mFreeNotes.mHead;\n\tif (note)\n\t{\n\t\tmFreeNotes.RemoveNote(note);\n\t\treturn note;\n\t}\n\t\n\treturn VoiceStealing(inFrame, true);\n}\n\nSynthNote*  AUInstrumentBase::VoiceStealing(UInt32 inFrame, bool inKillIt)\n{\n\n#if DEBUG_PRINT_NOTE\n\tprintf(\"AUInstrumentBase::VoiceStealing\\n\");\n#endif\n\t// free list was empty so we need to kill a note.\n\tUInt32 startState = inKillIt ? kNoteState_FastReleased : kNoteState_Released;\n\tfor (UInt32 i = startState; i <= startState; --i)\n\t{\n#if DEBUG_PRINT_NOTE\n\t\tprintf(\" checking state %d...\\n\", i);\n#endif\n\t\tUInt32 numGroups = Groups().GetNumberOfElements();\n\t\tfor (UInt32 j = 0; j < numGroups; ++j)\n\t\t{\n\t\t\tSynthGroupElement *group = (SynthGroupElement*)Groups().GetElement(j);\n#if DEBUG_PRINT_NOTE\n\t\t\tprintf(\"\\tsteal group %d   size %d\\n\", j, group->mNoteList[i].Length());\n#endif\n\t\t\tif (group->mNoteList[i].NotEmpty()) {\n#if DEBUG_PRINT_NOTE\n\t\t\t\tprintf(\"\\t-- not empty\\n\");\n#endif\n\t\t\t\tSynthNote *note = group->mNoteList[i].FindMostQuietNote();\n\t\t\t\tif (inKillIt) {\n#if DEBUG_PRINT_NOTE\n\t\t\t\t\tprintf(\"\\t--=== KILL ===---\\n\");\n#endif\n\t\t\t\t\tnote->Kill(inFrame);\n\t\t\t\t\tgroup->mNoteList[i].RemoveNote(note);\n\t\t\t\t\tif (i != kNoteState_FastReleased)\n\t\t\t\t\t\tDecNumActiveNotes();\n\t\t\t\t\treturn note;\n\t\t\t\t} else {\n#if DEBUG_PRINT_NOTE\n\t\t\t\t\tprintf(\"\\t--=== FAST RELEASE ===---\\n\");\n#endif\n\t\t\t\t\tgroup->mNoteList[i].RemoveNote(note);\n\t\t\t\t\tnote->FastRelease(inFrame);\n\t\t\t\t\tgroup->mNoteList[kNoteState_FastReleased].AddNote(note);\n\t\t\t\t\tDecNumActiveNotes(); // kNoteState_FastReleased counts as inactive for voice stealing purposes.\n\t\t\t\t\treturn NULL;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n#if DEBUG_PRINT_NOTE\n\tprintf(\"no notes to steal????\\n\");\n#endif\n\treturn NULL; // It should be impossible to get here. It means there were no notes to kill in any state. \n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nAUMonotimbralInstrumentBase::AUMonotimbralInstrumentBase(\n\t\t\t\t\t\t\tAudioComponentInstance\t\t\tinInstance, \n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumInputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumOutputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumGroups,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumParts)\n\t: AUInstrumentBase(inInstance, numInputs, numOutputs, numGroups, numParts)\n{\n}\n\nOSStatus\t\t\tAUMonotimbralInstrumentBase::RealTimeStartNote(\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tSynthGroupElement \t\t\t*inGroup, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams &inParams)\n{\n#if DEBUG_PRINT_RENDER\n\tprintf(\"AUMonotimbralInstrumentBase::RealTimeStartNote %d\\n\", inNoteInstanceID);\n#endif\n\n\tif (NumActiveNotes() + 1 > MaxActiveNotes()) \n\t{\n\t\tVoiceStealing(inOffsetSampleFrame, false);\n\t}\n\tSynthNote *note = GetAFreeNote(inOffsetSampleFrame);\n\tif (!note) return -1;\n\t\n\tSynthPartElement *part = GetPartElement (0);\t// Only one part for monotimbral\n\t\n\tIncNumActiveNotes();\n\tinGroup->NoteOn(note, part, inNoteInstanceID, inOffsetSampleFrame, inParams);\n\t\n\treturn noErr;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n\nOSStatus\t\t\tAUMultitimbralInstrumentBase::GetPropertyInfo(AudioUnitPropertyID\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable)\n{\n\tOSStatus result = noErr;\n\t\n\tswitch (inID) \n\t{\n#if !TARGET_OS_IPHONE\n\t\tcase kMusicDeviceProperty_PartGroup:\n\t\t\tif (inScope != kAudioUnitScope_Part) return kAudioUnitErr_InvalidScope;\n\t\t\toutDataSize = sizeof(UInt32);\n\t\t\toutWritable = true;\n\t\t\tbreak;\n#endif\n\t\tdefault:\n\t\t\tresult = AUInstrumentBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);\n\t}\n\treturn result;\n}\n\nOSStatus\t\t\tAUMultitimbralInstrumentBase::GetProperty(\tAudioUnitPropertyID \tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\toutData)\n{\n\tOSStatus result = noErr;\n\n\tswitch (inID) \n\t{\n#if !TARGET_OS_IPHONE\n\t\tcase kMusicDeviceProperty_PartGroup:\n\t\t\tif (inScope != kAudioUnitScope_Group) return kAudioUnitErr_InvalidScope;\n\t\t\t// ??\n\t\t\treturn -1; //unimpl\n\t\t\tbreak;\n#endif\n\t\tdefault:\n\t\t\tresult = AUInstrumentBase::GetProperty (inID, inScope, inElement, outData);\n\t}\n\t\n\treturn result;\n}\n\n\n\nOSStatus\t\t\tAUMultitimbralInstrumentBase::SetProperty(  AudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinDataSize)\n{\n\tOSStatus result = noErr;\n\n\tswitch (inID) \n\t{\n#if !TARGET_OS_IPHONE\n\t\tcase kMusicDeviceProperty_PartGroup:\n\t\t\tif (inScope != kAudioUnitScope_Group) return kAudioUnitErr_InvalidScope;\n\t\t\t// ??\n\t\t\treturn -1; //unimpl\n\t\t\tbreak;\n#endif\n\t\tdefault:\n\t\t\tresult = MusicDeviceBase::SetProperty (inID, inScope, inElement, inData, inDataSize);\n\t}\n\t\n\treturn result;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/AUInstrumentBase.h",
    "content": "/*\n     File: AUInstrumentBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUInstrumentBase__\n#define __AUInstrumentBase__\n\n#include <vector>\n#include <stdexcept>\n#include <AudioUnit/AudioUnit.h>\n#include <CoreAudio/CoreAudio.h>\n#include <libkern/OSAtomic.h>\n#include \"MusicDeviceBase.h\"\n#include \"LockFreeFIFO.h\"\n#include \"SynthEvent.h\"\n#include \"SynthNote.h\"\n#include \"SynthElement.h\"\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\ntypedef LockFreeFIFOWithFree<SynthEvent> SynthEventQueue;\n\nclass AUInstrumentBase : public MusicDeviceBase\n{\npublic:\n\t\t\tAUInstrumentBase(\n\t\t\t\t\t\t\tAudioComponentInstance\t\t\tinInstance, \n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumInputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumOutputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumGroups = 16,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumParts = 1);\n\tvirtual ~AUInstrumentBase();\n\n\tvirtual OSStatus\t\t\tInitialize();\n\t\n\t/*! @method Parts */\n\tAUScope &\t\t\t\t\tParts()\t{ return mPartScope; }\n\n\t/*! @method GetPart */\n\tAUElement *\t\t\t\t\tGetPart( AudioUnitElement inElement)\n\t{\n\t\treturn mPartScope.SafeGetElement(inElement);\n\t}\n\n\tvirtual AUScope *\t\t\tGetScopeExtended (AudioUnitScope inScope);\n\n\tvirtual AUElement *\t\t\tCreateElement(\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement);\n\n\tvirtual void\t\t\t\tCreateExtendedElements();\n\n\tvirtual void\t\t\t\tCleanup();\n\t\n\tvirtual OSStatus\t\t\tReset(\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual bool\t\t\t\tValidFormat(\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription  & inNewFormat);\n\n\tvirtual bool\t\t\t\tStreamFormatWritable(\tAudioUnitScope\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\telement);\n\n\tvirtual bool\t\t\t\tCanScheduleParameters() const { return false; }\n\n\tvirtual OSStatus\t\t\tRender(\t\t\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames);\n\n\tvirtual OSStatus\t\t\tStartNote(\t\tMusicDeviceInstrumentID \tinInstrument, \n\t\t\t\t\t\t\t\t\t\t\t\tMusicDeviceGroupID \t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID *\t\t\toutNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams &inParams);\n\n\tvirtual OSStatus\t\t\tStopNote(\t\tMusicDeviceGroupID \t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame);\n\n\tvirtual OSStatus\t\t\tRealTimeStartNote(\t\tSynthGroupElement \t\t\t*inGroup,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams &inParams);\n\t\n\tvirtual OSStatus\t\t\tRealTimeStopNote(\t\tMusicDeviceGroupID \t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame);\n\t\n\tvirtual OSStatus\tHandleControlChange(\tUInt8\tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinController,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus\tHandlePitchWheel(\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinPitch1,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinPitch2,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus\tHandleChannelPressure(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame);\n\n\tvirtual OSStatus\tHandleProgramChange(\tUInt8\tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue);\n\n\tvirtual OSStatus\tHandlePolyPressure(\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinKey,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8\tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame);\n\n\tvirtual OSStatus\tHandleResetAllControllers(\t\tUInt8 \tinChannel);\n\t\n\tvirtual OSStatus\tHandleAllNotesOff(\t\t\t\tUInt8 \tinChannel);\n\t\n\tvirtual OSStatus\tHandleAllSoundOff(\t\t\t\tUInt8 \tinChannel);\n\n\tSynthNote*\t\t\tGetNote(UInt32 inIndex) \n\t\t\t\t\t\t{ \n\t\t\t\t\t\t\tif (!mNotes)\n\t\t\t\t\t\t\t\tthrow std::runtime_error(\"no notes\");\n\t\t\t\t\t\t\treturn (SynthNote*)((char*)mNotes + inIndex * mNoteSize); \n\t\t\t\t\t\t}\n\t\n\tSynthNote*\t\t\tGetAFreeNote(UInt32 inFrame);\n\tvoid\t\t\t\tAddFreeNote(SynthNote* inNote);\n\t\n\tfriend class SynthGroupElement;\nprotected:\n\n\tUInt32\t\t\t\tNextNoteID() { return OSAtomicIncrement32((int32_t *)&mNoteIDCounter); }\n\t\n\t\n\t// call SetNotes in your Initialize() method to give the base class your note structures and to set the maximum \n\t// number of active notes. inNoteData should be an array of size inMaxActiveNotes.\n\tvoid\t\t\t\tSetNotes(UInt32 inNumNotes, UInt32 inMaxActiveNotes, SynthNote* inNotes, UInt32 inNoteSize);\n\t\n\tvoid\t\t\t\tPerformEvents(   const AudioTimeStamp &\t\t\tinTimeStamp);\n\tOSStatus\t\t\tSendPedalEvent(MusicDeviceGroupID inGroupID, UInt32 inEventType, UInt32 inOffsetSampleFrame);\n\tvirtual SynthNote*  VoiceStealing(UInt32 inFrame, bool inKillIt);\n\tUInt32\t\t\t\tMaxActiveNotes() const { return mMaxActiveNotes; }\n\tUInt32\t\t\t\tNumActiveNotes() const { return mNumActiveNotes; }\n\tvoid\t\t\t\tIncNumActiveNotes() { ++mNumActiveNotes; }\n\tvoid\t\t\t\tDecNumActiveNotes() { --mNumActiveNotes; }\n\tUInt32\t\t\t\tCountActiveNotes();\n\t\n\tSynthPartElement *\tGetPartElement (AudioUnitElement inPartElement);\n\t\n\t\t\t// this call throws if there's no assigned element for the group ID\n\tvirtual SynthGroupElement *\tGetElForGroupID (MusicDeviceGroupID\tinGroupID);\n\tvirtual SynthGroupElement *\tGetElForNoteID (NoteInstanceID inNoteID);\n\n\tSInt64 mAbsoluteSampleFrame;\n\n\t\nprivate:\n\t\t\t\t\n\tSInt32 mNoteIDCounter;\n\t\n\tSynthEventQueue mEventQueue;\n\t\n\tUInt32 mNumNotes;\n\tUInt32 mNumActiveNotes;\n\tUInt32 mMaxActiveNotes;\n\tSynthNote* mNotes;\t\n\tSynthNoteList mFreeNotes;\n\tUInt32 mNoteSize;\n\t\n\tAUScope\t\t\tmPartScope;\n\tconst UInt32\tmInitNumPartEls;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nclass AUMonotimbralInstrumentBase : public AUInstrumentBase\n{\npublic:\n\tAUMonotimbralInstrumentBase(\n\t\t\t\t\t\t\tAudioComponentInstance\t\t\tinInstance, \n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumInputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumOutputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumGroups = 16,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumParts = 1);\n\t\t\t\t\t\t\t\t\t\t\n\tvirtual OSStatus\t\t\tRealTimeStartNote(\t\t\tSynthGroupElement \t\t\t*inGroup, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tNoteInstanceID \t\t\t\tinNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams &inParams);\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n// this is a work in progress! The mono-timbral one is finished though!\nclass AUMultitimbralInstrumentBase : public AUInstrumentBase\n{\npublic:\n\tAUMultitimbralInstrumentBase(\n\t\t\t\t\t\t\tAudioComponentInstance\t\t\tinInstance, \n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumInputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumOutputs,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumGroups,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumParts);\n\t\t\t\t\t\t\t\n\tvirtual OSStatus\t\t\tGetPropertyInfo(\t\tAudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\t\toutWritable);\n\n\tvirtual OSStatus\t\t\tGetProperty(\t\t\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\toutData);\n\n\tvirtual OSStatus\t\t\tSetProperty(\t\t\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinDataSize);\n\nprivate:\n\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/LockFreeFIFO.h",
    "content": "/*\n     File: LockFreeFIFO.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include <libkern/OSAtomic.h>\n\ntemplate <class ITEM>\nclass LockFreeFIFOWithFree\n{\n\tLockFreeFIFOWithFree(); // private, unimplemented.\npublic:\n\tLockFreeFIFOWithFree(UInt32 inMaxSize)\n\t\t: mReadIndex(0), mWriteIndex(0), mFreeIndex(0)\n\t{\n\t\t//assert(IsPowerOfTwo(inMaxSize));\n\t\tmItems = new ITEM[inMaxSize];\n\t\tmMask = inMaxSize - 1;\n\t}\n\t\n\t~LockFreeFIFOWithFree()\n\t{\n\t\tdelete [] mItems;\n\t}\n\n\t\n\tvoid Reset() \n\t{\n\t\tFreeItems();\n\t\tmReadIndex = 0;\n\t\tmWriteIndex = 0;\n\t\tmFreeIndex = 0;\n\t}\n\t\n\tITEM* WriteItem() \n\t{\n\t\t//printf(\"WriteItem %d %d\\n\", mReadIndex, mWriteIndex);\n\t\tFreeItems(); // free items on the write thread.\n\t\tint32_t nextWriteIndex = (mWriteIndex + 1) & mMask;\n\t\tif (nextWriteIndex == mFreeIndex) return NULL;\n\t\treturn &mItems[mWriteIndex];\n\t}\n\t\n\tITEM* ReadItem() \n\t{\n\t\t//printf(\"ReadItem %d %d\\n\", mReadIndex, mWriteIndex);\n\t\tif (mReadIndex == mWriteIndex) return NULL;\n\t\treturn &mItems[mReadIndex];\n\t}\n\tvoid AdvanceWritePtr() { OSAtomicCompareAndSwap32(mWriteIndex, (mWriteIndex + 1) & mMask, &mWriteIndex); }\n\tvoid AdvanceReadPtr()  { OSAtomicCompareAndSwap32(mReadIndex,  (mReadIndex  + 1) & mMask, &mReadIndex); }\nprivate:\n\tITEM* FreeItem() \n\t{\n\t\tif (mFreeIndex == mReadIndex) return NULL;\n\t\treturn &mItems[mFreeIndex];\n\t}\n\tvoid AdvanceFreePtr() { OSAtomicCompareAndSwap32(mFreeIndex, (mFreeIndex + 1) & mMask, &mFreeIndex); }\n\t\n\tvoid FreeItems() \n\t{\n\t\tITEM* item;\n\t\twhile ((item = FreeItem()) != NULL)\n\t\t{\n\t\t\titem->Free();\n\t\t\tAdvanceFreePtr();\n\t\t}\n\t}\n\t\n\tvolatile int32_t mReadIndex, mWriteIndex, mFreeIndex;\n\tint32_t mMask;\n\tITEM *mItems;\n};\n\n\n\n// Same as above but no free.\n\ntemplate <class ITEM>\nclass LockFreeFIFO\n{\n\tLockFreeFIFO(); // private, unimplemented.\npublic:\n\tLockFreeFIFO(UInt32 inMaxSize)\n\t\t: mReadIndex(0), mWriteIndex(0)\n\t{\n\t\t//assert(IsPowerOfTwo(inMaxSize));\n\t\tmItems = new ITEM[inMaxSize];\n\t\tmMask = inMaxSize - 1;\n\t}\n\t\n\t~LockFreeFIFO()\n\t{\n\t\tdelete [] mItems;\n\t}\n\t\n\tvoid Reset() \n\t{\n\t\tmReadIndex = 0;\n\t\tmWriteIndex = 0;\n\t}\n\t\n\tITEM* WriteItem() \n\t{\n\t\tint32_t nextWriteIndex = (mWriteIndex + 1) & mMask;\n\t\tif (nextWriteIndex == mReadIndex) return NULL;\n\t\treturn &mItems[mWriteIndex];\n\t}\n\t\n\tITEM* ReadItem() \n\t{\n\t\tif (mReadIndex == mWriteIndex) return NULL;\n\t\treturn &mItems[mReadIndex];\n\t}\n\t\n\t\t// the CompareAndSwap will always succeed. We use CompareAndSwap because it calls the PowerPC sync instruction,\n\t\t// plus any processor bug workarounds for various CPUs.\n\tvoid AdvanceWritePtr() { OSAtomicCompareAndSwap32(mWriteIndex, (mWriteIndex + 1) & mMask, &mWriteIndex); }\n\tvoid AdvanceReadPtr()  { OSAtomicCompareAndSwap32(mReadIndex,  (mReadIndex  + 1) & mMask, &mReadIndex); }\n\t\nprivate:\n\t\n\tvolatile int32_t mReadIndex, mWriteIndex;\n\tint32_t mMask;\n\tITEM *mItems;\n};\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/MIDIControlHandler.h",
    "content": "/*\n     File: MIDIControlHandler.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __MIDICONTROLHANDLER_H__\n#define\t__MIDICONTROLHANDLER_H__\n\n#include <CoreAudio/CoreAudio.h>\n\n/*! Abstract interface base class for classes which handle all incoming MIDI data */\n\nclass MIDIControlHandler\n{\npublic:\n\tvirtual\t\t\t~MIDIControlHandler() {}\n\tvirtual void\tReset() = 0;\t\t\t\t\t\t\t\t//! Restore all state to defaults\n\tvirtual bool\tSetProgramChange(UInt16\tinProgram) = 0;\n\tvirtual bool\tSetPitchWheel(UInt16 inValue) = 0;\n\tvirtual bool\tSetChannelPressure(UInt8 inValue) = 0;\n\tvirtual bool\tSetPolyPressure(UInt8 inKey, UInt8 inValue) = 0;\n\tvirtual bool\tSetController(UInt8 inControllerNumber, UInt8 inValue) = 0;\n\tvirtual bool\tSetSysex(void *inSysexMsg) = 0;\n\t\n\tvirtual float\tGetPitchBend() const = 0;\n\n\t/*! Default controller values.  These represent MSB values unless indicated in the name */\n\t\n\tenum\n\t{\n\t\tkDefault_Midpoint\t\t\t\t= 0x40,\t\t//! Used for all center-null-point controllers\n\t\tkDefault_Volume\t\t\t\t= 100,\n\t\tkDefault_Pan\t\t\t\t\t= kDefault_Midpoint,\n\t\tkDefault_ModWheel\t\t\t\t= 0,\n\t\tkDefault_Pitch\t\t\t\t\t= kDefault_Midpoint,\n\t\tkDefault_Expression\t\t\t= 0x7f,\n\t\tkDefault_ChannelPressure\t= 0,\n\t\tkDefault_ReverbSend\t\t\t= 40,\n\t\tkDefault_ChorusSend\t\t\t= 0,\n\t\t\n\t\tkDefault_RPN_LSB\t\t\t\t= 0x7f,\n\t\tkDefault_RPN_MSB\t\t\t\t= 0x7f,\n\t\tkDefault_PitchBendRange\t\t= 2,\n\t\tkDefault_FineTuning\t\t\t= kDefault_Midpoint,\n\t\tkDefault_CoarseTuning\t\t= kDefault_Midpoint,\n\t\tkDefault_ModDepthRange\t\t= 0,\n\t\tkDefault_ModDepthRangeLSB\t= kDefault_Midpoint\n\t};\n};\n\n#endif\t// __MIDICONTROLHANDLER_H__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/SynthElement.cpp",
    "content": "/*\n     File: SynthElement.cpp\n Abstract: SynthElement.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"SynthElement.h\"\n#include \"AUInstrumentBase.h\"\n#include \"AUMIDIDefs.h\"\n\n#undef DEBUG_PRINT\n#define DEBUG_PRINT 0\n#define DEBUG_PRINT_NOTE 0\n#define DEBUG_PRINT_RENDER 0\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\nMidiControls::MidiControls()\n{\n\tReset();\n}\n\nvoid MidiControls::Reset()\n{\n\tmemset(mControls, 0, sizeof(mControls));\n\tmemset(mPolyPressure, 0, sizeof(mPolyPressure));\n\tmMonoPressure = 0;\n\tmProgramChange = 0;\n\tmPitchBend = 0;\n\tmActiveRPN = 0;\n\tmActiveNRPN = 0;\n\tmActiveRPValue = 0;\n\tmActiveNRPValue = 0;\n\tmControls[kMidiController_Pan] = 64;\n\tmControls[kMidiController_Expression] = 127;\n\tmPitchBendDepth = 24 << 7;\n\tmFPitchBendDepth = 24.0f;\n\tmFPitchBend = 0.0f;\n}\n\n\nSynthElement::SynthElement(AUInstrumentBase *audioUnit, UInt32 inElement) \n\t: AUElement(audioUnit), mIndex(inElement)\n{\n}\n\nSynthElement::~SynthElement()\n{\n}\n\nSynthGroupElement::SynthGroupElement(AUInstrumentBase *audioUnit, UInt32 inElement, MIDIControlHandler *inHandler) \n\t: SynthElement(audioUnit, inElement),\n\tmCurrentAbsoluteFrame(-1),\n\tmMidiControlHandler(inHandler),\n\tmSustainIsOn(false), mSostenutoIsOn(false), mOutputBus(0), mGroupID(kUnassignedGroup)\n{\n\tfor (UInt32 i=0; i<kNumberOfSoundingNoteStates; ++i)\n\t\tmNoteList[i].mState = (SynthNoteState) i;\n}\n\nSynthGroupElement::~SynthGroupElement()\n{\n\tdelete mMidiControlHandler;\n}\n\nvoid\tSynthGroupElement::SetGroupID (MusicDeviceGroupID inGroup)\n{\n\t\t// can't re-assign a group once its been assigned\n\tif (mGroupID != kUnassignedGroup) throw static_cast<OSStatus>(kAudioUnitErr_InvalidElement);\n\tmGroupID = inGroup;\n}\n\nvoid SynthGroupElement::Reset() \n{\n#if DEBUG_PRINT\n\tprintf(\"SynthGroupElement::Reset\\n\");\n#endif\n\tmMidiControlHandler->Reset();\n\tfor (UInt32 i=0; i<kNumberOfSoundingNoteStates; ++i)\n\t\tmNoteList[i].Empty();\n}\n\nSynthPartElement::SynthPartElement(AUInstrumentBase *audioUnit, UInt32 inElement) \n\t: SynthElement(audioUnit, inElement)\n{\n}\n\n// Return the SynthNote with the given inNoteID, if found.  If unreleasedOnly is true, only look for\n// attacked and sostenutoed notes, otherwise search all states.  Return state of found note via outNoteState.\n\nSynthNote *SynthGroupElement::GetNote(NoteInstanceID inNoteID, bool unreleasedOnly, UInt32 *outNoteState)\n{\n#if DEBUG_PRINT_RENDER\n\tprintf(\"SynthGroupElement::GetNote %d, unreleased = %d\\n\", inNoteID, unreleasedOnly);\n#endif\n\tconst UInt32 lastNoteState = unreleasedOnly ? \n\t\t\t\t\t\t\t\t\t(mSostenutoIsOn ? kNoteState_Sostenutoed : kNoteState_Attacked)\n\t\t\t\t\t\t\t\t\t\t: kNoteState_Released;\n\tSynthNote *note = NULL;\n\t// Search for notes in each successive state\n\tfor (UInt32 noteState = kNoteState_Attacked; noteState <= lastNoteState; ++noteState)\n\t{\n\t\tif (outNoteState) *outNoteState = noteState;\t// even if we find nothing\n\t\tnote = mNoteList[noteState].mHead;\n\t\twhile (note && note->mNoteID != inNoteID)\n\t\t{\n#if DEBUG_PRINT_RENDER\n\t\t\tprintf(\"   checking %p id: %d\\n\", note, note->mNoteID);\n#endif\n\t\t\tnote = note->mNext;\n\t\t}\n\t\tif (note)\n\t\t{\n#if DEBUG_PRINT_RENDER\n\t\t\tprintf(\"  found %p\\n\", note);\n#endif\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn note;\n}\n\nvoid SynthGroupElement::NoteOn(SynthNote *note,\n\t\t\t\t\t\t\t   SynthPartElement *part,\n\t\t\t\t\t\t\t   NoteInstanceID inNoteID,\n\t\t\t\t\t\t\t   UInt32 inOffsetSampleFrame,\n\t\t\t\t\t\t\t   const MusicDeviceNoteParams &inParams)\n{\n#if DEBUG_PRINT_NOTE\n\tprintf(\"SynthGroupElement::NoteOn %d\\n\", inNoteID);\n#endif\n\t// TODO: CONSIDER FIXING this to not need to initialize mCurrentAbsoluteFrame to -1.\n\tUInt64 absoluteFrame = (mCurrentAbsoluteFrame == -1) ? inOffsetSampleFrame : mCurrentAbsoluteFrame + inOffsetSampleFrame;\n\tif (note->AttackNote(part, this, inNoteID, absoluteFrame, inOffsetSampleFrame, inParams)) {\n\t\tmNoteList[kNoteState_Attacked].AddNote(note);\n\t}\n}\n\nvoid SynthGroupElement::NoteOff(NoteInstanceID inNoteID, UInt32 inFrame)\n{\t\n#if DEBUG_PRINT_NOTE\n\tprintf(\"SynthGroupElement::NoteOff %d\\n\", inNoteID);\n#endif\n\tUInt32 noteState = kNoteState_Attacked;\n\tSynthNote *note = GetNote(inNoteID, true, &noteState);\t// asking for unreleased only\n\tif (note)\n\t{\n#if DEBUG_PRINT_NOTE\n\t\tprintf(\"  old note state: %d\\n\", note->mState);\n#endif\n\t\tif (noteState == kNoteState_Attacked)\n\t\t{\n\t\t\tmNoteList[noteState].RemoveNote(note);\n\t\t\tif (mSustainIsOn) {\n\t\t\t\tmNoteList[kNoteState_ReleasedButSustained].AddNote(note);\n\t\t\t} else {\n\t\t\t\tnote->Release(inFrame);\n\t\t\t\tmNoteList[kNoteState_Released].AddNote(note);\n\t\t\t}\n#if DEBUG_PRINT_NOTE\n\t\t\tprintf(\"  new note state: %d\\n\", note->mState);\n#endif\n\t\t}\n\t\telse /* if (noteState == kNoteState_Sostenutoed) */\n\t\t{\n\t\t\tmNoteList[kNoteState_Sostenutoed].RemoveNote(note);\n\t\t\tmNoteList[kNoteState_ReleasedButSostenutoed].AddNote(note);\n\t\t}\n\t}\n}\n\nvoid SynthGroupElement::NoteEnded(SynthNote *inNote, UInt32 inFrame)\n{\n#if DEBUG_PRINT_NOTE\n\tprintf(\"SynthGroupElement::NoteEnded: id %d state %d\\n\", inNote->mNoteID, inNote->mState);\n#endif\n\tif (inNote->IsSounding()) {\n\t\tSynthNoteList *list = &mNoteList[inNote->GetState()];\n\t\tlist->RemoveNote(inNote);\n\t}\n\t\n\tGetAUInstrument()->AddFreeNote(inNote);\n}\n\nvoid SynthGroupElement::NoteFastReleased(SynthNote *inNote)\n{\n#if DEBUG_PRINT_NOTE\n\tprintf(\"SynthGroupElement::NoteFastReleased id %d state %d\\n\", inNote->mNoteID, inNote->mState);\n#endif\n\tif (inNote->IsActive()) {\n\t\tmNoteList[inNote->GetState()].RemoveNote(inNote);\n\t\tGetAUInstrument()->DecNumActiveNotes();\n\t\tmNoteList[kNoteState_FastReleased].AddNote(inNote);\n\t}\n\telse {\n\t\tAssert(true, \"ASSERT FAILED:  Attempting to fast-release non-active note\");\n\t}\n}\n\nbool SynthGroupElement::ChannelMessage(UInt16 controllerID, UInt16 inValue)\n{\n\tbool handled = true;\n#if DEBUG_PRINT\n\tprintf(\"SynthGroupElement::ChannelMessage(0x%x, %u)\\n\", controllerID, inValue);\n#endif\n\t// Sustain and sostenuto are \"pedal events\", and are handled during render cycle\n\tif (controllerID <= kMidiController_RPN_MSB && controllerID != kMidiController_Sustain && controllerID != kMidiController_Sostenuto)\n\t\thandled = mMidiControlHandler->SetController(controllerID, UInt8(inValue));\n\telse \n\t{\n\t\tswitch (controllerID)\n\t\t{\n\t\t\tcase kMidiMessage_ProgramChange:\n\t\t\t\thandled = mMidiControlHandler->SetProgramChange(inValue);\n\t\t\t\tbreak;\n\t\t\tcase kMidiMessage_PitchWheel:\n\t\t\t\thandled = mMidiControlHandler->SetPitchWheel(inValue);\n\t\t\t\tbreak;\n\t\t\tcase kMidiMessage_ChannelPressure:\n#if DEBUG_PRINT\n\t\t\t\tprintf(\"SynthGroupElement::ChannelMessage: Channel Pressure %u\\n\", inValue);\n#endif\n\t\t\t\thandled = mMidiControlHandler->SetChannelPressure(UInt8(inValue));\n\t\t\t\tbreak;\n\t\t\tcase kMidiMessage_PolyPressure:\n\t\t\t{\tUInt8 inKey = inValue >> 7;\n\t\t\t\tUInt8 val = inValue & 0x7f;\n\t\t\t\thandled = mMidiControlHandler->SetPolyPressure(inKey, val);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\thandled = false;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\treturn handled;\n}\n\nvoid SynthGroupElement::SostenutoOn(UInt32 inFrame)\n{\n#if DEBUG_PRINT\n\tprintf(\"SynthGroupElement::SostenutoOn\\n\");\n#endif\n\tif (!mSostenutoIsOn) {\n\t\tmMidiControlHandler->SetController(kMidiController_Sostenuto, 127);\n\t\tmSostenutoIsOn = true;\n\t\tmNoteList[kNoteState_Sostenutoed].TransferAllFrom(&mNoteList[kNoteState_Attacked], inFrame);\n\t}\n}\n\nvoid SynthGroupElement::SostenutoOff(UInt32 inFrame)\n{\n#if DEBUG_PRINT\n\tprintf(\"SynthGroupElement::SostenutoOff\\n\");\n#endif\n\tif (mSostenutoIsOn) {\n\t\tmMidiControlHandler->SetController(kMidiController_Sostenuto, 0);\n\t\tmSostenutoIsOn = false;\n\t\tmNoteList[kNoteState_Attacked].TransferAllFrom(&mNoteList[kNoteState_Sostenutoed], inFrame);\n\t\tif (mSustainIsOn) \n\t\t\tmNoteList[kNoteState_ReleasedButSustained].TransferAllFrom(&mNoteList[kNoteState_ReleasedButSostenutoed], inFrame);\n\t\telse\n\t\t\tmNoteList[kNoteState_Released].TransferAllFrom(&mNoteList[kNoteState_ReleasedButSostenutoed], inFrame);\n\t}\n}\n\n\nvoid SynthGroupElement::SustainOn(UInt32 inFrame)\n{\n#if DEBUG_PRINT\n//\tprintf(\"SynthGroupElement::SustainOn\\n\");\n#endif\n\tif (!mSustainIsOn) {\n\t\tmMidiControlHandler->SetController(kMidiController_Sustain, 127);\n\t\tmSustainIsOn = true;\n\t}\n}\n\nvoid SynthGroupElement::SustainOff(UInt32 inFrame)\n{\n#if DEBUG_PRINT\n//\tprintf(\"SynthGroupElement::SustainOff\\n\");\n#endif\n\tif (mSustainIsOn) {\n\t\tmMidiControlHandler->SetController(kMidiController_Sustain, 0);\n\t\tmSustainIsOn = false;\n\t\n\t\tmNoteList[kNoteState_Released].TransferAllFrom(&mNoteList[kNoteState_ReleasedButSustained], inFrame);\n\t}\n}\n\nvoid SynthGroupElement::AllNotesOff(UInt32 inFrame)\n{\n#if DEBUG_PRINT\n\tprintf(\"SynthGroupElement::AllNotesOff\\n\");\n#endif\n\tSynthNote *note;\n\tfor (UInt32 i=0 ; i<=kNoteState_Sostenutoed; ++i)\n\t{\n\t\tUInt32 newState = (i == kNoteState_Attacked) ?\n\t\t\tkNoteState_Released : kNoteState_ReleasedButSostenutoed;\n\t\tnote = mNoteList[i].mHead;\n\t\twhile (note)\n\t\t{\n\t\t\tSynthNote *nextNote = note->mNext;\n\t\t\t\n\t\t\tmNoteList[i].RemoveNote(note);\n\t\t\tnote->Release(inFrame);\n\t\t\tmNoteList[newState].AddNote(note);\n\t\t\t\n\t\t\tnote = nextNote;\n\t\t}\n\t}\t\n}\n\nvoid SynthGroupElement::AllSoundOff(UInt32 inFrame)\n{\n#if DEBUG_PRINT\n\tprintf(\"SynthGroupElement::AllSoundOff\\n\");\n#endif\n\tSynthNote *note;\n\t\n\tfor (UInt32 i=0 ; i<kNumberOfActiveNoteStates; ++i)\n\t{\n\t\tnote = mNoteList[i].mHead;\n\t\twhile (note)\n\t\t{\n\t\t\tSynthNote *nextNote = note->mNext;\n\t\t\t\n\t\t\tmNoteList[i].RemoveNote(note);\n\t\t\tnote->FastRelease(inFrame);\n\t\t\tmNoteList[kNoteState_FastReleased].AddNote(note);\n\t\t\tGetAUInstrument()->DecNumActiveNotes();\n\t\t\tnote = nextNote;\n\t\t}\n\t}\t\n}\n\nvoid SynthGroupElement::ResetAllControllers(UInt32 inFrame)\n{\n#if DEBUG_PRINT\n\tprintf(\"SynthGroupElement::ResetAllControllers\\n\");\n#endif\n\tmMidiControlHandler->Reset();\n}\n\nOSStatus SynthGroupElement::Render(SInt64 inAbsoluteSampleFrame, UInt32 inNumberFrames, AUScope &outputs)\n{\n\t// Avoid duplicate calls at same sample offset\n\tif (inAbsoluteSampleFrame != mCurrentAbsoluteFrame)\n\t{\n\t\tmCurrentAbsoluteFrame = inAbsoluteSampleFrame;\n\t\tAudioBufferList* buffArray[16];\n\t\tUInt32 numOutputs = outputs.GetNumberOfElements();\n\t\tfor (UInt32 outBus = 0; outBus < numOutputs && outBus < 16; ++outBus)\n\t\t{\n\t\t\tbuffArray[outBus] = &GetAudioUnit()->GetOutput(outBus)->GetBufferList();\n\t\t}\n\t\t\n\t\tfor (UInt32 i=0 ; i<kNumberOfSoundingNoteStates; ++i)\n\t\t{\n\t\t\tSynthNote *note = mNoteList[i].mHead;\n\t\t\twhile (note)\n\t\t\t{\n#if DEBUG_PRINT_RENDER\n\t\t\t\tprintf(\"SynthGroupElement::Render: state %d, note %p\\n\", i, note);\n#endif\n\t\t\t\tSynthNote *nextNote = note->mNext;\n\t\t\t\t\n\t\t\t\tOSStatus err = note->Render(inAbsoluteSampleFrame, inNumberFrames, buffArray, numOutputs);\n\t\t\t\tif (err) return err;\n\t\t\t\t\n\t\t\t\tnote = nextNote;\n\t\t\t}\n\t\t}\n\t}\n\treturn noErr;\n}\n\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/SynthElement.h",
    "content": "/*\n     File: SynthElement.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __SynthElement__\n#define __SynthElement__\n\n#include <AudioUnit/AudioUnit.h>\n#include \"MusicDeviceBase.h\"\n#include \"SynthNoteList.h\"\n#include \"MIDIControlHandler.h\"\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\nclass AUInstrumentBase;\n\nclass SynthElement : public AUElement\n{\npublic:\n\tSynthElement(AUInstrumentBase *audioUnit, UInt32 inElement);\n\tvirtual ~SynthElement();\n\n\tUInt32 GetIndex() const { return mIndex; }\n\t\n\tAUInstrumentBase* GetAUInstrument() { return (AUInstrumentBase*)GetAudioUnit(); }\n\t\nprivate:\n\tUInt32 mIndex;\n};\n\nclass MidiControls : public MIDIControlHandler\n{\n\tenum { kMaxControls = 128 };\npublic:\n\tMidiControls();\n\tvirtual ~MidiControls() {}\n\tvirtual void\tReset();\n\tvirtual bool\tSetProgramChange(UInt16\tinProgram) { mProgramChange = inProgram; return true; }\n\tvirtual bool\tSetPitchWheel(UInt16 inValue) {\n\t\tmPitchBend = inValue;\n\t\tmFPitchBend = (float)(((SInt16)mPitchBend - 8192) / 8192.);\n\t\treturn true;\n\t}\n\tvirtual bool\tSetChannelPressure(UInt8 inValue) { mMonoPressure = inValue; return true; }\n\tvirtual bool\tSetPolyPressure(UInt8 inKey, UInt8 inValue) {\n\t\tmPolyPressure[inKey] = inValue;\n\t\treturn true;\n\t}\n\tvirtual bool\tSetController(UInt8 inControllerNumber, UInt8 inValue) {\n\t\tif (inControllerNumber < kMaxControls) {\n\t\t\tmControls[inControllerNumber] = inValue;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tvirtual bool\tSetSysex(void *inSysexMsg) { return false; }\n\n\tvirtual float GetPitchBend() const { return mFPitchBend * mFPitchBendDepth; }\n\n\tSInt16 GetHiResControl(UInt32 inIndex) const \n\t{   \n\t\treturn ((mControls[inIndex] & 127) << 7) | (mControls[inIndex + 32] & 127);\n\t}\n\t\n\tfloat GetControl(UInt32 inIndex) const\n\t{\n\t\tif (inIndex < 32) {\n\t\t\treturn (float)(mControls[inIndex] + (mControls[inIndex + 32] / 127.));\n\t\t} else {\n\t\t\treturn (float)mControls[inIndex];\n\t\t}\n\t}\n\t\n\t\nprivate:\n\t\n\tUInt8 mControls[128];\n\tUInt8 mPolyPressure[128];\n\tUInt8 mMonoPressure;\n\tUInt8 mProgramChange;\n\tUInt16 mPitchBend;\n\tUInt16 mActiveRPN;\n\tUInt16 mActiveNRPN;\n\tUInt16 mActiveRPValue;\n\tUInt16 mActiveNRPValue;\n\t\n\tUInt16 mPitchBendDepth;\n\tfloat mFPitchBendDepth;\n\tfloat mFPitchBend;\n\t\n\tvoid SetHiResControl(UInt32 inIndex, UInt8 inMSB, UInt8 inLSB)\n\t\t{ \n\t\t\tmControls[inIndex] = inMSB;\n\t\t\tmControls[inIndex + 32] = inLSB;\n\t\t}\n\t\t\n};\n\n\nclass SynthGroupElement : public SynthElement\n{\npublic:\n\tenum {\n\t\tkUnassignedGroup = 0xFFFFFFFF\n\t};\n\t\n\tSynthGroupElement(AUInstrumentBase *audioUnit, UInt32 inElement, MIDIControlHandler *inHandler);\n\tvirtual\t\t\t\t\t~SynthGroupElement();\n\n\tvirtual void\t\t\tNoteOn(SynthNote *note, SynthPartElement *part, NoteInstanceID inNoteID, UInt32 inOffsetSampleFrame, const MusicDeviceNoteParams &inParams);\n\tvirtual void\t\t\tNoteOff(NoteInstanceID inNoteID, UInt32 inOffsetSampleFrame);\n\tvoid\t\t\t\t\tSustainOn(UInt32 inFrame);\n\tvoid\t\t\t\t\tSustainOff(UInt32 inFrame);\n\tvoid\t\t\t\t\tSostenutoOn(UInt32 inFrame);\n\tvoid\t\t\t\t\tSostenutoOff(UInt32 inFrame);\n\n\tvoid\t\t\t\t\tNoteEnded(SynthNote *inNote, UInt32 inFrame);\n\tvoid\t\t\t\t\tNoteFastReleased(SynthNote *inNote);\n\t\n\tvirtual bool\t\t\tChannelMessage(UInt16 controlID, UInt16 controlValue);\n\tvirtual void\t\t\tAllNotesOff(UInt32 inFrame);\n\tvirtual void\t\t\tAllSoundOff(UInt32 inFrame);\n\tvoid\t\t\t\t\tResetAllControllers(UInt32 inFrame);\n\t\n\tSynthNote *\t\t\t\tGetNote(NoteInstanceID inNoteID, bool unreleasedOnly=false, UInt32 *outNoteState=NULL);\n\t\n\tvoid\t\t\t\t\tReset();\n\t\n\tvirtual OSStatus\t\tRender(SInt64 inAbsoluteSampleFrame, UInt32 inNumberFrames, AUScope &outputs);\n\t\n\tfloat\t\t\t\t\tGetPitchBend() const { return mMidiControlHandler->GetPitchBend(); }\n\tSInt64\t\t\t\t\tGetCurrentAbsoluteFrame() const { return mCurrentAbsoluteFrame; }\n\t\n\tMusicDeviceGroupID\t\tGroupID () const { return mGroupID; }\n\tvirtual void\t\t\tSetGroupID (MusicDeviceGroupID inGroup);\n\n\tMIDIControlHandler *\tGetMIDIControlHandler() const { return mMidiControlHandler; }\n\t\nprotected:\t\n\tSInt64\t\t\t\t\tmCurrentAbsoluteFrame;\n\tSynthNoteList \t\t\tmNoteList[kNumberOfSoundingNoteStates];\n\tMIDIControlHandler\t\t*mMidiControlHandler;\n\nprivate:\n\tfriend class AUInstrumentBase;\n\tfriend class AUMonotimbralInstrumentBase;\n\tfriend class AUMultitimbralInstrumentBase;\n\t\n\tbool\t\t\t\t\tmSustainIsOn;\n\tbool\t\t\t\t\tmSostenutoIsOn;\n\tUInt32\t\t\t\t\tmOutputBus;\n\tMusicDeviceGroupID\t\tmGroupID;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\nstruct SynthKeyZone\n{\n\tUInt8 mLoNote;\n\tUInt8 mHiNote;\n\tUInt8 mLoVelocity;\n\tUInt8 mHiVelocity;\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nconst UInt32 kUnlimitedPolyphony = 0xFFFFFFFF;\n\nclass SynthPartElement : public SynthElement\n{\npublic:\n\tSynthPartElement(AUInstrumentBase *audioUnit, UInt32 inElement);\n\n\tUInt32\t\tGetGroupIndex() const { return mGroupIndex; }\n\tbool\t\tInRange(Float32 inNote, Float32 inVelocity);\n\t\n\tUInt32\t\tGetMaxPolyphony() const { return mMaxPolyphony; }\n\tvoid\t\tSetMaxPolyphony(UInt32 inMaxPolyphony) { mMaxPolyphony = inMaxPolyphony; }\n\t\nprivate:\n\tUInt32\t\t\t\t\t\t\tmGroupIndex;\n\tUInt32\t\t\t\t\t\t\tmPatchIndex;\n\tUInt32\t\t\t\t\t\t\tmMaxPolyphony;\n\tSynthKeyZone\t\t\t\t\tmKeyZone;\t\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/SynthEvent.h",
    "content": "/*\n     File: SynthEvent.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n/* You can either fill in code here or remove this and create or add new files. */\n\n#ifndef __SynthEvent__\n#define __SynthEvent__\n\n#include <AudioUnit/AudioUnit.h>\n#include <CoreAudio/CoreAudio.h>\n#include \"MusicDeviceBase.h\"\n#include <stdexcept>\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n\nclass SynthEvent\n{\npublic:\n\tenum {\n\t\tkEventType_NoteOn = 1,\n\t\tkEventType_NoteOff = 2,\n\t\tkEventType_SustainOn = 3,\n\t\tkEventType_SustainOff = 4,\n\t\tkEventType_SostenutoOn = 5,\n\t\tkEventType_SostenutoOff = 6,\n\t\tkEventType_AllNotesOff = 7,\n\t\tkEventType_AllSoundOff = 8,\n\t\tkEventType_ResetAllControllers = 9\n\t};\n\n\n\tSynthEvent() {}\n\t~SynthEvent() {}\n\n\tvoid Set(   \n\t\t\t\tUInt32\t\t\t\t\t\t\tinEventType,\n\t\t\t\tMusicDeviceGroupID\t\t\t\tinGroupID,\n\t\t\t\tNoteInstanceID\t\t\t\t\tinNoteID,\n\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\tconst MusicDeviceNoteParams*\tinNoteParams\n\t\t)\n\t{\n\t\tmEventType = inEventType;\n\t\tmGroupID = inGroupID;\n\t\tmNoteID = inNoteID;\n\t\tmOffsetSampleFrame = inOffsetSampleFrame;\n\t\t\n\t\tif (inNoteParams)\n\t\t{\n\t\t\tUInt32 paramSize = offsetof(MusicDeviceNoteParams, mControls) + (inNoteParams->argCount-2)*sizeof(NoteParamsControlValue); \n\t\t\tmNoteParams = inNoteParams->argCount > 3 \n\t\t\t\t\t\t\t\t? (MusicDeviceNoteParams*)malloc(paramSize) \n\t\t\t\t\t\t\t\t: &mSmallNoteParams;\n\t\t\tmemcpy(mNoteParams, inNoteParams, paramSize);\n\t\t}\n\t\telse \n\t\t\tmNoteParams = NULL;\n\t}\n\t\n\t\n\tvoid Free()\n\t{\n\t\tif (mNoteParams)\n\t\t{\n\t\t\tif (mNoteParams->argCount > 3)\n\t\t\t\tfree(mNoteParams);\n\t\t\tmNoteParams = NULL;\n\t\t}\n\t}\n\t\n\tUInt32\t\t\t\t\tGetEventType() const { return mEventType; }\n\tMusicDeviceGroupID\t\tGetGroupID() const { return mGroupID; }\n\tNoteInstanceID\t\t\tGetNoteID() const { return mNoteID; }\n\tUInt32\t\t\t\t\tGetOffsetSampleFrame() const { return mOffsetSampleFrame; }\n\t\n\tMusicDeviceNoteParams*  GetParams() const { return mNoteParams; }\n\n\tUInt32\t\t\t\t\tGetArgCount() const { return mNoteParams->argCount; }\n\tUInt32\t\t\t\t\tNumberParameters() const { return mNoteParams->argCount - 2; }\n\t\n\tFloat32\t\t\t\t\tGetNote() const { return mNoteParams->mPitch; }\n\tFloat32\t\t\t\t\tGetVelocity() const { return mNoteParams->mVelocity; }\n\t\n\tNoteParamsControlValue  GetParameter(UInt32 inIndex) const \n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tif (inIndex >= NumberParameters()) \n\t\t\t\t\t\t\t\t\tthrow std::runtime_error(\"index out of range\");\n\t\t\t\t\t\t\t\treturn mNoteParams->mControls[inIndex]; \n\t\t\t\t\t\t\t}\n\t\nprivate:\n\tUInt32\t\t\t\t\tmEventType;\n\tMusicDeviceGroupID\t\tmGroupID;\n\tNoteInstanceID\t\t\tmNoteID;\n\tUInt32\t\t\t\t\tmOffsetSampleFrame;\n\tMusicDeviceNoteParams*  mNoteParams;\n\tMusicDeviceNoteParams   mSmallNoteParams; // inline a small one to eliminate malloc for the simple case.\n};\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/SynthNote.cpp",
    "content": "/*\n     File: SynthNote.cpp\n Abstract: SynthNote.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"SynthNote.h\"\n#include \"SynthElement.h\"\n#include \"AUInstrumentBase.h\"\n\nbool SynthNote::AttackNote(\n\t\t\tSynthPartElement *\t\t\t\tinPart,\n\t\t\tSynthGroupElement *\t\t\t\tinGroup,\n\t\t\tNoteInstanceID\t\t\t\t\tinNoteID, \n\t\t\tUInt64\t\t\t\t\t\t\tinAbsoluteSampleFrame, \n\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\tconst MusicDeviceNoteParams\t\t&inParams)\n{\n#if DEBUG_PRINT\n\tprintf(\"SynthNote::AttackNote %lu %lu abs frame %llu rel frame %lu\\n\", (UInt32)inGroup->GroupID(), (UInt32)inNoteID, inAbsoluteSampleFrame, inOffsetSampleFrame);\n#endif\n\tmPart = inPart;\n\tmGroup = inGroup;\n\tmNoteID = inNoteID;\n\n\tmAbsoluteStartFrame = inAbsoluteSampleFrame;\n\tmRelativeStartFrame = inOffsetSampleFrame;\n\tmRelativeReleaseFrame = -1;\n\tmRelativeKillFrame = -1;\n\n\tmPitch = inParams.mPitch;\n\tmVelocity = inParams.mVelocity;\n\t\n\t\n\treturn Attack(inParams);\n}\n\n\nvoid SynthNote::Reset()\n{\n\tmPart = 0;\n\tmGroup = 0;\n\tmAbsoluteStartFrame = 0;\n\tmRelativeStartFrame = 0;\n\tmRelativeReleaseFrame = 0;\n\tmRelativeKillFrame = 0;\n}\n\nvoid SynthNote::Kill(UInt32 inFrame)\n{\n\tmRelativeKillFrame = inFrame;\n}\n\nvoid SynthNote::Release(UInt32 inFrame)\n{\n\tmRelativeReleaseFrame = inFrame;\n}\n\nvoid SynthNote::FastRelease(UInt32 inFrame)\n{\n\tmRelativeReleaseFrame = inFrame;\n}\n\ndouble SynthNote::TuningA() const\n{\n\treturn 440.0;\n}\n\ndouble SynthNote::Frequency()\n{\n\treturn TuningA() * pow(2., (mPitch - 69. + GetPitchBend()) / 12.);\n}\n\ndouble SynthNote::SampleRate()\n{\n\treturn GetAudioUnit()->GetOutput(0)->GetStreamFormat().mSampleRate;\n}\n\nAUInstrumentBase* SynthNote::GetAudioUnit() const \n{ \n\treturn (AUInstrumentBase*)mGroup->GetAudioUnit(); \n}\n\nFloat32 SynthNote::GetGlobalParameter(AudioUnitParameterID inParamID) const \n{\n\treturn mGroup->GetAudioUnit()->Globals()->GetParameter(inParamID);\n}\n\nvoid SynthNote::NoteEnded(UInt32 inFrame) \n{ \n\tmGroup->NoteEnded(this, inFrame);\n\tmNoteID = 0xFFFFFFFF; \n}\n\nfloat SynthNote::GetPitchBend() const \n{ \n\treturn mGroup->GetPitchBend(); \n}\n\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/SynthNote.h",
    "content": "/*\n     File: SynthNote.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __SynthNote__\n#define __SynthNote__\n\n#include <AudioUnit/AudioUnit.h>\n#include <CoreAudio/CoreAudio.h>\n#include \"MusicDeviceBase.h\"\n\n/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nenum SynthNoteState {\n\tkNoteState_Attacked = 0,\n\tkNoteState_Sostenutoed = 1,\n\tkNoteState_ReleasedButSostenutoed = 2,\n\tkNoteState_ReleasedButSustained = 3,\n\tkNoteState_Released = 4,\n\tkNoteState_FastReleased = 5,\n\tkNoteState_Free = 6,\n\tkNumberOfActiveNoteStates = 5,\n\tkNumberOfSoundingNoteStates = 6,\n\tkNumberOfNoteStates = 7,\n\tkNoteState_Unset = kNumberOfNoteStates\n};\n\n/*\n\t\tThis table describes the state transitions for SynthNotes\n\n        EVENT                   CURRENT STATE                                   NEW STATE\n        note on                 free                                            attacked\n        note off                attacked (and sustain on)                       released but sustained\n        note off                attacked                                        released\n        note off                sostenutoed                                     released but sostenutoed\n        sustain on              -- no changes --\n        sustain off             released but sustained                          released\n        sostenuto on            attacked                                        sostenutoed\n        sostenuto off           sostenutoed                                     attacked\n        sostenuto off           released but sostenutoed (and sustain on)       released but sustained\n        sostenuto off           released but sostenutoed                        released\n        end of note             any state                                       free\n\t\tsoft voice stealing     any state                                       fast released\n\t\thard voice stealing     any state                                       free\n\t\t\n\t\tsoft voice stealing happens when there is a note on event and NumActiveNotes > MaxActiveNotes\n\t\thard voice stealing happens when there is a note on event and NumActiveNotes == NumNotes (no free notes)\n\t\tvoice stealing removes the quietest note in the highest numbered state that has sounding notes.\n*/\n\nclass SynthGroupElement;\nclass SynthPartElement;\nclass AUInstrumentBase;\n\nstruct SynthNote\n{\n\tSynthNote() :\n\t\tmPrev(0), mNext(0), mPart(0), mGroup(0),\n\t\tmNoteID(0xffffffff),\n\t\tmState(kNoteState_Unset),\n\t\tmAbsoluteStartFrame(0),\n\t\tmRelativeStartFrame(0),\n\t\tmRelativeReleaseFrame(-1),\n\t\tmRelativeKillFrame(-1),\n\t\tmPitch(0.0f),\n\t\tmVelocity(0.0f)\n\t{\n\t}\n\t\n\tvirtual\t\t\t\t\t~SynthNote() {}\n\t\n\tvirtual void\t\t\tReset();\n\t//! Returns true if active note resulted from this call, otherwise false\n\tvirtual bool\t\t\tAttackNote(\n\t\t\t\t\t\t\t\t\tSynthPartElement *\t\t\t\tinPart,\n\t\t\t\t\t\t\t\t\tSynthGroupElement *\t\t\t\tinGroup,\n\t\t\t\t\t\t\t\t\tNoteInstanceID\t\t\t\t\tinNoteID, \n\t\t\t\t\t\t\t\t\tUInt64\t\t\t\t\t\t\tinAbsoluteSampleFrame, \n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams\t\t&inParams\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\n\tvirtual OSStatus\t\tRender(UInt64 inAbsoluteSampleFrame, UInt32 inNumFrames, AudioBufferList** inBufferList, UInt32 inOutBusCount) = 0;\n\t//! Returns true if active note resulted from this call, otherwise false\n\tvirtual bool\t\t\tAttack(const MusicDeviceNoteParams &inParams) = 0;\n\tvirtual void\t\t\tKill(UInt32 inFrame); // voice is being stolen.\n\tvirtual void\t\t\tRelease(UInt32 inFrame);\n\tvirtual void\t\t\tFastRelease(UInt32 inFrame);\n\tvirtual Float32\t\t\tAmplitude() = 0; // used for finding quietest note for voice stealing.\n\n\tvirtual void\t\t\tNoteEnded(UInt32 inFrame);\n\n\tSynthGroupElement*\t\tGetGroup() const { return mGroup; }\n\tSynthPartElement*\t\tGetPart() const { return mPart; }\n\t\n\tAUInstrumentBase*\t\tGetAudioUnit() const;\n\n\tFloat32\t\t\t\t\tGetGlobalParameter(AudioUnitParameterID inParamID) const;\n\n\tNoteInstanceID\t\t\tGetNoteID() const { return mNoteID; }\n\tSynthNoteState\t\t\tGetState() const { return mState; }\n\tUInt8\t\t\t\t\tGetMidiKey() const { return (UInt8) mPitch; }\n\tUInt8\t\t\t\t\tGetMidiVelocity() const { return (UInt8) mVelocity; }\n\t\n\tBoolean\t\t\t\t\tIsSounding() const { return mState < kNumberOfSoundingNoteStates; }\n\tBoolean\t\t\t\t\tIsActive() const { return mState < kNumberOfActiveNoteStates; }\n\tUInt64\t\t\t\t\tGetAbsoluteStartFrame() const { return mAbsoluteStartFrame; }\n\tSInt32\t\t\t\t\tGetRelativeStartFrame() const { return mRelativeStartFrame; }\n\tSInt32\t\t\t\t\tGetRelativeReleaseFrame() const { return mRelativeReleaseFrame; }\n\tSInt32\t\t\t\t\tGetRelativeKillFrame() const { return mRelativeKillFrame; }\n\n\tvoid\t\t\t\t\tListRemove() { mPrev = mNext = 0; } // only use when lists will be reset.\n\n\tfloat\t\t\t\t\tGetPitchBend() const;\n\tdouble\t\t\t\t\tTuningA() const;\n\t\n\tFloat32\t\t\t\t\tGetPitch() const { return mPitch; }\t// returns raw pitch from MusicDeviceNoteParams\n\tvirtual double\t\t\tFrequency(); // returns the frequency of note + pitch bend.\n\tvirtual double\t\t\tSampleRate();\n\n\t// linked list pointers\n\tSynthNote\t\t\t\t*mPrev;\n\tSynthNote\t\t\t\t*mNext;\n\t\n\tfriend class\t\t\tSynthGroupElement;\n\tfriend struct\t\t\tSynthNoteList;\nprotected:\n\tvoid\t\t\t\t\tSetState(SynthNoteState inState) { mState = inState; }\nprivate:\n\tSynthPartElement*\t\tmPart;\n\tSynthGroupElement*\tmGroup;\n\t\t\n\tNoteInstanceID\t\t\tmNoteID;\n\tSynthNoteState\t\t\tmState;\n\tUInt64\t\t\t\t\tmAbsoluteStartFrame;\n\tSInt32\t\t\t\t\tmRelativeStartFrame;\n\tSInt32\t\t\t\t\tmRelativeReleaseFrame;\n\tSInt32\t\t\t\t\tmRelativeKillFrame;\n\t\n\tFloat32\t\t\t\t\tmPitch;\n\tFloat32\t\t\t\t\tmVelocity;\n};\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/SynthNoteList.cpp",
    "content": "/*\n     File: SynthNoteList.cpp\n Abstract: SynthNoteList.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"SynthNoteList.h\"\n#include <stdexcept>\n\nvoid SynthNoteList::SanityCheck() const\n{\n\tif (mState >= kNoteState_Unset) {\n\t\tthrow std::runtime_error(\"SanityCheck: mState is bad\");\n\t}\n\t\n\tif (mHead == NULL) {\n\t\tif (mTail != NULL) \n\t\t\tthrow std::runtime_error(\"SanityCheck: mHead is NULL but not mTail\");\n\t\treturn;\n\t}\n\tif (mTail == NULL) {\n\t\tthrow std::runtime_error(\"SanityCheck: mTail is NULL but not mHead\");\n\t}\n\t\n\tif (mHead->mPrev) {\n\t\tthrow std::runtime_error(\"SanityCheck: mHead has a mPrev\");\n\t}\n\tif (mTail->mNext) {\n\t\tthrow std::runtime_error(\"SanityCheck: mTail has a mNext\");\n\t}\n\t\n\tSynthNote *note = mHead;\n\twhile (note)\n\t{\n\t\tif (note->mState != mState)\n\t\t\tthrow std::runtime_error(\"SanityCheck: note in wrong state\");\n\t\tif (note->mNext) {\n\t\t\tif (note->mNext->mPrev != note)\n\t\t\t\tthrow std::runtime_error(\"SanityCheck: bad link 1\");\n\t\t} else {\n\t\t\tif (mTail != note)\n\t\t\t\tthrow std::runtime_error(\"SanityCheck: note->mNext is nil, but mTail != note\");\n\t\t}\n\t\tif (note->mPrev) {\n\t\t\tif (note->mPrev->mNext != note)\n\t\t\t\tthrow std::runtime_error(\"SanityCheck: bad link 2\");\n\t\t} else {\n\t\t\tif (mHead != note)\n\t\t\t\tthrow std::runtime_error(\"SanityCheck: note->mPrev is nil, but mHead != note\");\n\t\t}\n\t\tnote = note->mNext;\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase/SynthNoteList.h",
    "content": "/*\n     File: SynthNoteList.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __SynthNoteList__\n#define __SynthNoteList__\n\n#include \"SynthNote.h\"\n\n#if DEBUG\n#ifndef DEBUG_PRINT\n\t#define DEBUG_PRINT 0\n#endif\n\t#define USE_SANITY_CHECK 0\n#endif\n\n/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nstruct SynthNoteList\n{\n\tSynthNoteList() : mState(kNoteState_Unset), mHead(0), mTail(0) {}\n\t\n\tbool NotEmpty() const { return mHead != NULL; }\n\tbool IsEmpty() const { return mHead == NULL; }\n\tvoid Empty() { \n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n#endif\n\t\tmHead = mTail = NULL; \n\t}\n\t\n\tUInt32 Length() const {\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n#endif\n\t\tUInt32 length = 0;\n\t\tfor (SynthNote* note = mHead; note; note = note->mNext) \n\t\t\tlength++;\n\t\treturn length;\n\t};\n\t\n\tvoid AddNote(SynthNote *inNote)\n\t{\n#if DEBUG_PRINT\n\t\tprintf(\"AddNote(inNote=%p) to state: %lu\\n\", inNote, mState);\n#endif\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n#endif\n\t\tinNote->SetState(mState);\n\t\tinNote->mNext = mHead;\n\t\tinNote->mPrev = NULL;\n\t\t\n\t\tif (mHead) { mHead->mPrev = inNote; mHead = inNote; }\n\t\telse mHead = mTail = inNote;\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n#endif\n\t}\n\t\n\tvoid RemoveNote(SynthNote *inNote)\n\t{\n#if DEBUG_PRINT\n\t\tprintf(\"RemoveNote(inNote=%p) from state: %lu\\n\", inNote, mState);\n#endif\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n#endif\n\t\tif (inNote->mPrev) inNote->mPrev->mNext = inNote->mNext;\n\t\telse mHead = inNote->mNext;\n\n\t\tif (inNote->mNext) inNote->mNext->mPrev = inNote->mPrev;\n\t\telse mTail = inNote->mPrev;\n\t\t\n\t\tinNote->mPrev = 0;\n\t\tinNote->mNext = 0;\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n#endif\n\t}\n\n\tvoid TransferAllFrom(SynthNoteList *inNoteList, UInt32 inFrame)\n\t{\n#if DEBUG_PRINT\n\t\tprintf(\"TransferAllFrom: from state %lu into state %lu\\n\", inNoteList->mState, mState);\n#endif\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n\t\tinNoteList->SanityCheck();\n#endif\n\t\tif (!inNoteList->mTail) return;\n\t\t\n\t\tif (mState == kNoteState_Released)\n\t\t{\n\t\t\tfor (SynthNote* note = inNoteList->mHead; note; note = note->mNext)\n\t\t\t{\n#if DEBUG_PRINT\n\t\t\t\tprintf(\"TransferAllFrom: releasing note %p\\n\", note);\n#endif\n\t\t\t\tnote->Release(inFrame);\n\t\t\t\tnote->SetState(mState);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tfor (SynthNote* note = inNoteList->mHead; note; note = note->mNext)\n\t\t\t{\n\t\t\t\tnote->SetState(mState);\n\t\t\t}\n\t\t}\n\t\t\n\t\tinNoteList->mTail->mNext = mHead;\n\t\t\n\t\tif (mHead) mHead->mPrev = inNoteList->mTail;\n\t\telse mTail = inNoteList->mTail;\n\t\t\n\t\tmHead = inNoteList->mHead;\n\t\t\n\t\tinNoteList->mHead = NULL;\n\t\tinNoteList->mTail = NULL;\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n\t\tinNoteList->SanityCheck();\n#endif\n\t}\n\t\n\tSynthNote* FindOldestNote()\n\t{\n#if DEBUG_PRINT\n\t\tprintf(\"FindOldestNote\\n\");\n#endif\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n#endif\n\t\tUInt64 minStartFrame = -1;\n\t\tSynthNote* oldestNote = NULL;\n\t\tfor (SynthNote* note = mHead; note; note = note->mNext)\n\t\t{\n\t\t\tif (note->mAbsoluteStartFrame < minStartFrame)\n\t\t\t{\n\t\t\t\toldestNote = note;\n\t\t\t\tminStartFrame = note->mAbsoluteStartFrame;\n\t\t\t}\n\t\t}\n\t\treturn oldestNote;\n\t}\n\t\n\tSynthNote* FindMostQuietNote()\n\t{\n#if DEBUG_PRINT\n\t\tprintf(\"FindMostQuietNote\\n\");\n#endif\n\t\tFloat32 minAmplitude = 1e9f;\n\t\tUInt64 minStartFrame = -1;\n\t\tSynthNote* mostQuietNote = NULL;\n\t\tfor (SynthNote* note = mHead; note; note = note->mNext)\n\t\t{\n\t\t\tFloat32 amp = note->Amplitude();\n#if DEBUG_PRINT\n\t\t\tprintf(\"   amp %g   minAmplitude %g\\n\", amp, minAmplitude);\n#endif\n\t\t\tif (amp < minAmplitude)\n\t\t\t{\n\t\t\t\tmostQuietNote = note;\n\t\t\t\tminAmplitude = amp;\n\t\t\t\tminStartFrame = note->mAbsoluteStartFrame;\n\t\t\t}\n\t\t\telse if (amp == minAmplitude && note->mAbsoluteStartFrame < minStartFrame)\n\t\t\t{\n\t\t\t\t// use earliest start time as a tie breaker\n\t\t\t\tmostQuietNote = note;\n\t\t\t\tminStartFrame = note->mAbsoluteStartFrame;\n\t\t\t}\n\t\t}\n#if USE_SANITY_CHECK\n\t\tSanityCheck();\n#endif\n\t\treturn mostQuietNote;\n\t}\n\t\n\tvoid SanityCheck() const;\n\t\n\tSynthNoteState\tmState;\n\tSynthNote *\t\tmHead;\n\tSynthNote *\t\tmTail;\n};\n\n/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/AUViewBase/AUViewLocalizedStringKeys.h",
    "content": "/*\n     File: AUViewLocalizedStringKeys.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUViewLocalizedStringKeys_h__\n#define __AUViewLocalizedStringKeys_h__\n\n// ACCESS POINT:\n#define\tkLocalizedStringBundle_AUView \t\tCFSTR(\"com.apple.audio.units.Components\")\n#define\tkLocalizedStringTable_AUView \t\tCFSTR(\"CustomUI\")\n\n// UNLOCALIZED STRINGS:\n    #define\tkAUViewUnlocalizedString_TitleSeparator  \t\t\tCFSTR(\": \")\n    \n// Generic View:\n    #define\tkAUViewLocalizedStringKey_AudioUnit \t\t\t\tCFSTR(\"Audio Unit\")\n    #define\tkAUViewLocalizedStringKey_Manufacturer \t\t\tCFSTR(\"Manufacturer\")\n    \n    #define\tkAUViewLocalizedStringKey_FactoryPreset \t\t\tCFSTR(\"Factory Preset\")\n    \n    #define\tkAUViewLocalizedStringKey_Properties \t\t\t\tCFSTR(\"Properties\")\n    #define\tkAUViewLocalizedStringKey_Parameters \t\t\t\tCFSTR(\"Parameters\")\n    \n    #define\tkAUViewLocalizedStringKey_Standard \t\t\t\tCFSTR(\"Standard\")\n    #define\tkAUViewLocalizedStringKey_Expert \t\t\t\t\tCFSTR(\"Expert\")\n    \n// AULoadCPU:\n    #define\tkAUViewLocalizedStringKey_RestrictCPULoad \t\t\tCFSTR(\"Restrict CPU Load\")\n    #define\tkAUViewLocalizedStringKey_PercentSymbol \t\t\tCFSTR(\"%\")\n    #define\tkAUViewLocalizedStringKey_NotApplicable \t\t\tCFSTR(\"n/a\")\n    \n// AUDiskStreamingCheckbox:\n    #define\tkAUViewLocalizedStringKey_StreamFromDisk \t\t\tCFSTR(\"Stream From Disk\")\n    \n// AURenderQualityPopup:\n    #define\tkAUViewLocalizedStringKey_RenderQuality \t\t\tCFSTR(\"Render Quality\")\n    #define\tkAUViewLocalizedStringKey_Maximum \t\t\t\t\tCFSTR(\"Maximum\")\n    #define\tkAUViewLocalizedStringKey_High \t\t\t\t\tCFSTR(\"High\")\n    #define\tkAUViewLocalizedStringKey_Medium \t\t\t\t\tCFSTR(\"Medium\")\n    #define\tkAUViewLocalizedStringKey_Low \t\t\t\t\t\tCFSTR(\"Low\")\n    #define\tkAUViewLocalizedStringKey_Minimum \t\t\t\t\tCFSTR(\"Minimum\")\n\n// AUChannelLayoutPopUp:\n\t#define\tkAUViewLocalizedStringKey_AudioChannelLayout \t\tCFSTR(\"Audio Channel Layout\")\n    \n#endif //__AUViewLocalizedStringKeys_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.cpp",
    "content": "/*\n     File: AUEffectBase.cpp\n Abstract: AUEffectBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUEffectBase.h\"\n\n/* \n\tThis class does not deal as well as it should with N-M effects...\n\t\n\tThe problem areas are (if the channels don't match):\n\t\tProcessInPlace if the channels don't match - there will be problems if InputChan != OutputChan\n\t\tBypass - its just passing the buffers through when not processing them\n\n\tThis will be fixed in a future update...\n*/\n\n//_____________________________________________________________________________\n//\nAUEffectBase::AUEffectBase(\tAudioComponentInstance\taudioUnit,\n\t\t\t\t\t\t\tbool\t\t\t\t\tinProcessesInPlace ) :\n\tAUBase(audioUnit, 1, 1),\t\t// 1 in bus, 1 out bus\n\tmBypassEffect(false),\n\tmParamSRDep (false),\n\tmProcessesInPlace(inProcessesInPlace),\n\tmMainOutput(NULL), mMainInput(NULL)\n#if TARGET_OS_IPHONE\n\t, mOnlyOneKernel(false)\n#endif\n{\n}\n\n//_____________________________________________________________________________\n//\nAUEffectBase::~AUEffectBase()\n{\n\tCleanup();\n}\n\n//_____________________________________________________________________________\n//\nvoid AUEffectBase::Cleanup()\n{\n\tfor (KernelList::iterator it = mKernelList.begin(); it != mKernelList.end(); ++it)\n\t\tdelete *it;\n\t\t\n\tmKernelList.clear();\n\tmMainOutput = NULL;\n\tmMainInput = NULL;\n}\n\n\n//_____________________________________________________________________________\n//\nOSStatus AUEffectBase::Initialize()\n{\n\t\t// get our current numChannels for input and output\n\tSInt16 auNumInputs = (SInt16) GetInput(0)->GetStreamFormat().mChannelsPerFrame;\n\tSInt16 auNumOutputs = (SInt16) GetOutput(0)->GetStreamFormat().mChannelsPerFrame;\n\n\t\t// does the unit publish specific information about channel configurations?\n    const AUChannelInfo *auChannelConfigs = NULL;\n    UInt32 numIOconfigs = SupportedNumChannels(&auChannelConfigs);\n\n    if ((numIOconfigs > 0) && (auChannelConfigs != NULL))\n    {\n        bool foundMatch = false;\n        for (UInt32 i = 0; (i < numIOconfigs) && !foundMatch; ++i)\n        {\n            SInt16 configNumInputs = auChannelConfigs[i].inChannels;\n            SInt16 configNumOutputs = auChannelConfigs[i].outChannels;\n            if ((configNumInputs < 0) && (configNumOutputs < 0))\n            {\n\t\t\t\t\t// unit accepts any number of channels on input and output\n                if (((configNumInputs == -1) && (configNumOutputs == -2)) \n\t\t\t\t\t|| ((configNumInputs == -2) && (configNumOutputs == -1)))\n                {\n\t\t\t\t    foundMatch = true;\n\t\t\t\t\t// unit accepts any number of channels on input and output IFF they are the same number on both scopes\n                }\n\t\t\t\telse if (((configNumInputs == -1) && (configNumOutputs == -1)) && (auNumInputs == auNumOutputs))\n                {\n\t\t\t\t    foundMatch = true;\n\t\t\t\t\t// unit has specified a particular number of channels on both scopes\n                }\n\t\t\t\telse\n                    continue;\n            }\n            else\n            {\n\t\t\t\t\t// the -1 case on either scope is saying that the unit doesn't care about the \n\t\t\t\t\t// number of channels on that scope\n                bool inputMatch = (auNumInputs == configNumInputs) || (configNumInputs == -1);\n                bool outputMatch = (auNumOutputs == configNumOutputs) || (configNumOutputs == -1);\n                if (inputMatch && outputMatch)\n                    foundMatch = true;\n            }\n        }\n        if (!foundMatch)\n            return kAudioUnitErr_FormatNotSupported;\n    }\n    else\n    {\n\t\t\t// there is no specifically published channel info\n\t\t\t// so for those kinds of effects, the assumption is that the channels (whatever their number)\n\t\t\t// should match on both scopes\n        if ((auNumOutputs != auNumInputs) || (auNumOutputs == 0))\n\t\t{\n\t\t    return kAudioUnitErr_FormatNotSupported;\n\t\t}\n    }\n\n    MaintainKernels();\n\t\n\tmMainOutput = GetOutput(0);\n\tmMainInput = GetInput(0);\n\t\n\tconst CAStreamBasicDescription& format = GetStreamFormat(kAudioUnitScope_Output, 0);\n\tformat.IdentifyCommonPCMFormat(mCommonPCMFormat, NULL);\n\tmBytesPerFrame = format.mBytesPerFrame;\n\t\n    return noErr;\n}\n\nOSStatus\t\t\tAUEffectBase::Reset(\t\tAudioUnitScope \t\tinScope,\n\t\t\t\t\t\t\t\t \t\t\t\tAudioUnitElement \tinElement)\n{\n\tfor (KernelList::iterator it = mKernelList.begin(); it != mKernelList.end(); ++it) {\n\t\tAUKernelBase *kernel = *it;\n\t\tif (kernel != NULL)\n\t\t\tkernel->Reset();\n\t}\n\t\n\treturn AUBase::Reset(inScope, inElement);\n}\n\nOSStatus\t\t\tAUEffectBase::GetPropertyInfo (AudioUnitPropertyID\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\t\toutWritable)\n{\n\tif (inScope == kAudioUnitScope_Global) {\n\t\tswitch (inID) {\n\t\t\tcase kAudioUnitProperty_BypassEffect:\n\t\t\t\toutWritable = true;\n\t\t\t\toutDataSize = sizeof (UInt32);\n\t\t\t\treturn noErr;\n\t\t\tcase kAudioUnitProperty_InPlaceProcessing:\n\t\t\t\toutWritable = true;\n\t\t\t\toutDataSize = sizeof (UInt32);\n\t\t\t\treturn noErr;\n\t\t}\n\t}\n\treturn AUBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);\n}\n\n\nOSStatus\t\t\tAUEffectBase::GetProperty (AudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t  AudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t  AudioUnitElement\t\t\t \t\tinElement,\n\t\t\t\t\t\t\t\t\t  void *\t\t\t\t\t\t\toutData)\n{\n\tif (inScope == kAudioUnitScope_Global) {\n\t\tswitch (inID) {\n\t\t\tcase kAudioUnitProperty_BypassEffect:\n\t\t\t\t*((UInt32*)outData) = (IsBypassEffect() ? 1 : 0);\n\t\t\t\treturn noErr;\n\t\t\tcase kAudioUnitProperty_InPlaceProcessing:\n\t\t\t\t*((UInt32*)outData) = (mProcessesInPlace ? 1 : 0);\n\t\t\t\treturn noErr;\n\t\t}\n\t}\n\treturn AUBase::GetProperty (inID, inScope, inElement, outData);\n}\n\n\nOSStatus\t\t\tAUEffectBase::SetProperty(\t\tAudioUnitPropertyID inID,\n\t\t\t\t\t\t\t\t\t   AudioUnitScope \t\tinScope,\n\t\t\t\t\t\t\t\t\t   AudioUnitElement \tinElement,\n\t\t\t\t\t\t\t\t\t   const void *\t\t\tinData,\n\t\t\t\t\t\t\t\t\t   UInt32 \t\t\t\tinDataSize)\n{\n\tif (inScope == kAudioUnitScope_Global) {\n\t\tswitch (inID) {\n\t\t\tcase kAudioUnitProperty_BypassEffect:\n\t\t\t{\n\t\t\t\tif (inDataSize < sizeof(UInt32))\n\t\t\t\t\treturn kAudioUnitErr_InvalidPropertyValue;\n\t\t\t\t\t\n\t\t\t\tbool tempNewSetting = *((UInt32*)inData) != 0;\n\t\t\t\t\t// we're changing the state of bypass\n\t\t\t\tif (tempNewSetting != IsBypassEffect()) \n\t\t\t\t{\n\t\t\t\t\tif (!tempNewSetting && IsBypassEffect() && IsInitialized()) // turning bypass off and we're initialized\n\t\t\t\t\t\tReset(0, 0);\n\t\t\t\t\tSetBypassEffect (tempNewSetting);\n\t\t\t\t}\n\t\t\t\treturn noErr;\n\t\t\t}\n\t\t\tcase kAudioUnitProperty_InPlaceProcessing:\n\t\t\t\tmProcessesInPlace = (*((UInt32*)inData) != 0);\n\t\t\t\treturn noErr;\n\t\t}\n\t}\n\treturn AUBase::SetProperty (inID, inScope, inElement, inData, inDataSize);\n}\n \n\nvoid\tAUEffectBase::MaintainKernels()\n{\n#if TARGET_OS_IPHONE\n\tUInt32 nKernels = mOnlyOneKernel ? 1 : GetNumberOfChannels();\n#else \n\tUInt32 nKernels = GetNumberOfChannels();\n#endif\n\t\n\tif (mKernelList.size() < nKernels) {\n\t\tmKernelList.reserve(nKernels);\n\t\tfor (UInt32 i = (UInt32)mKernelList.size(); i < nKernels; ++i)\n\t\t\tmKernelList.push_back(NewKernel());\n\t} else {\n\t\twhile (mKernelList.size() > nKernels) {\n\t\t\tAUKernelBase *kernel = mKernelList.back();\n\t\t\tdelete kernel;\n\t\t\tmKernelList.pop_back();\n\t\t}\n\t}\n\t\n\tfor(unsigned int i = 0; i < nKernels; i++ )\n\t{\n\t\tif(mKernelList[i]) {\n\t\t\tmKernelList[i]->SetChannelNum (i);\n\t\t}\n\t}\n}\n\nbool\t\tAUEffectBase::StreamFormatWritable(\tAudioUnitScope\t\t\t\t\tscope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\telement)\n{\n\treturn IsInitialized() ? false : true;\n}\n\nOSStatus\t\t\tAUEffectBase::ChangeStreamFormat(\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & inPrevFormat,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & inNewFormat)\n{\n\tOSStatus result = AUBase::ChangeStreamFormat(inScope, inElement, inPrevFormat, inNewFormat);\n\tif (result == noErr)\n\t{\t\n\t\t// for the moment this only dependency we know about\n\t\t// where a parameter's range may change is with the sample rate\n\t\t// and effects are only publishing parameters in the global scope!\n\t\tif (GetParamHasSampleRateDependency() && fnotequal(inPrevFormat.mSampleRate, inNewFormat.mSampleRate))\n\t\t\tPropertyChanged(kAudioUnitProperty_ParameterList, kAudioUnitScope_Global, 0);\n\t}\n\n\treturn result;\n}\n\n\n// ____________________________________________________________________________\n//\n//\tThis method is called (potentially repeatedly) by ProcessForScheduledParams()\n//\tin order to perform the actual DSP required for this portion of the entire buffer\n//\tbeing processed.  The entire buffer can be divided up into smaller \"slices\"\n//\taccording to the timestamps on the scheduled parameters...\n//\nOSStatus\t\tAUEffectBase::ProcessScheduledSlice(\tvoid\t\t\t\t*inUserData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinStartFrameInBuffer,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinSliceFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinTotalBufferFrames )\n{\n\tScheduledProcessParams\t&sliceParams = *((ScheduledProcessParams*)inUserData);\n\t\n\tAudioUnitRenderActionFlags \t&actionFlags = *sliceParams.actionFlags;\n\tAudioBufferList \t\t\t&inputBufferList = *sliceParams.inputBufferList;\n\tAudioBufferList \t\t\t&outputBufferList = *sliceParams.outputBufferList;\n\t\n\tUInt32 channelSize = inSliceFramesToProcess * mBytesPerFrame;\n\t\t// fix the size of the buffer we're operating on before we render this slice of time\n\tfor(unsigned int i = 0; i < inputBufferList.mNumberBuffers; i++ ) {\n\t\tinputBufferList.mBuffers[i].mDataByteSize = inputBufferList.mBuffers[i].mNumberChannels * channelSize;\n\t}\n\n\tfor(unsigned int i = 0; i < outputBufferList.mNumberBuffers; i++ ) {\n\t\toutputBufferList.mBuffers[i].mDataByteSize = outputBufferList.mBuffers[i].mNumberChannels * channelSize;\n\t}\n\t\t// process the buffer\n\tOSStatus result = ProcessBufferLists(actionFlags, inputBufferList, outputBufferList, inSliceFramesToProcess );\n\n\t\t// we just partially processed the buffers, so increment the data pointers to the next part of the buffer to process\n\tfor(unsigned int i = 0; i < inputBufferList.mNumberBuffers; i++ ) {\n\t\tinputBufferList.mBuffers[i].mData = \n\t\t\t(char *)inputBufferList.mBuffers[i].mData + inputBufferList.mBuffers[i].mNumberChannels * channelSize;\n\t}\n\t\n\tfor(unsigned int i = 0; i < outputBufferList.mNumberBuffers; i++ ) {\n\t\toutputBufferList.mBuffers[i].mData = \n\t\t\t(char *)outputBufferList.mBuffers[i].mData + outputBufferList.mBuffers[i].mNumberChannels * channelSize;\n\t}\n\t\n\treturn result;\n}\n\n// ____________________________________________________________________________\n//\n\nOSStatus \tAUEffectBase::Render(\tAudioUnitRenderActionFlags &ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tnFrames)\n{\n\tif (!HasInput(0))\n\t\treturn kAudioUnitErr_NoConnection;\n\n\tOSStatus result = noErr;\n\n\tresult = mMainInput->PullInput(ioActionFlags, inTimeStamp, 0 /* element */, nFrames);\n\t\n\tif (result == noErr)\n\t{\n\t\tif(ProcessesInPlace() && mMainOutput->WillAllocateBuffer())\n\t\t{\n\t\t\tmMainOutput->SetBufferList(mMainInput->GetBufferList() );\n\t\t}\n\n\t\tif (ShouldBypassEffect())\n\t\t{\n\t\t\t// leave silence bit alone\n\t\t\t\n\t\t\tif(!ProcessesInPlace() )\n\t\t\t{\n\t\t\t\tmMainInput->CopyBufferContentsTo (mMainOutput->GetBufferList());\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif(mParamList.size() == 0 )\n\t\t\t{\n\t\t\t\t// this will read/write silence bit\n\t\t\t\tresult = ProcessBufferLists(ioActionFlags, mMainInput->GetBufferList(), mMainOutput->GetBufferList(), nFrames);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t// deal with scheduled parameters...\n\t\t\t\t\n\t\t\t\tAudioBufferList &inputBufferList = mMainInput->GetBufferList();\n\t\t\t\tAudioBufferList &outputBufferList = mMainOutput->GetBufferList();\n\t\t\t\t\n\t\t\t\tScheduledProcessParams processParams;\n\t\t\t\tprocessParams.actionFlags = &ioActionFlags;\n\t\t\t\tprocessParams.inputBufferList = &inputBufferList;\n\t\t\t\tprocessParams.outputBufferList = &outputBufferList;\n\t\n\t\t\t\t// divide up the buffer into slices according to scheduled params then\n\t\t\t\t// do the DSP for each slice (ProcessScheduledSlice() called for each slice)\n\t\t\t\tresult = ProcessForScheduledParams(\tmParamList,\n\t\t\t\t\t\t\t\t\t\t\t\t\tnFrames,\n\t\t\t\t\t\t\t\t\t\t\t\t\t&processParams );\n\t\n\t\t\t\t\n\t\t\t\t// fixup the buffer pointers to how they were before we started\n\t\t\t\tUInt32 channelSize = nFrames * mBytesPerFrame;\n\t\t\t\tfor(unsigned int i = 0; i < inputBufferList.mNumberBuffers; i++ ) {\n\t\t\t\t\tUInt32 size = inputBufferList.mBuffers[i].mNumberChannels * channelSize;\n\t\t\t\t\tinputBufferList.mBuffers[i].mData = (char *)inputBufferList.mBuffers[i].mData - size;\n\t\t\t\t\tinputBufferList.mBuffers[i].mDataByteSize = size;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tfor(unsigned int i = 0; i < outputBufferList.mNumberBuffers; i++ ) {\n\t\t\t\t\tUInt32 size = outputBufferList.mBuffers[i].mNumberChannels * channelSize;\n\t\t\t\t\toutputBufferList.mBuffers[i].mData = (char *)outputBufferList.mBuffers[i].mData - size;\n\t\t\t\t\toutputBufferList.mBuffers[i].mDataByteSize = size;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\tif ( (ioActionFlags & kAudioUnitRenderAction_OutputIsSilence) && !ProcessesInPlace() )\n\t\t{\n\t\t\tAUBufferList::ZeroBuffer(mMainOutput->GetBufferList() );\n\t\t}\n\t}\n\t\n\treturn result;\n}\n\n\nOSStatus\tAUEffectBase::ProcessBufferLists(\n\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\tconst AudioBufferList &\t\t\tinBuffer,\n\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\toutBuffer,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinFramesToProcess )\n{\n\tif (ShouldBypassEffect())\n\t\treturn noErr;\n\t\t\n\t// interleaved (or mono)\n\tswitch (mCommonPCMFormat) {\n\t\tcase CAStreamBasicDescription::kPCMFormatFloat32 :\n\t\t\tProcessBufferListsT<Float32>(ioActionFlags, inBuffer, outBuffer, inFramesToProcess);\n\t\t\tbreak;\n\t\tcase CAStreamBasicDescription::kPCMFormatFixed824 :\n\t\t\tProcessBufferListsT<SInt32>(ioActionFlags, inBuffer, outBuffer, inFramesToProcess);\n\t\t\tbreak;\n\t\tcase CAStreamBasicDescription::kPCMFormatInt16 :\n\t\t\tProcessBufferListsT<SInt16>(ioActionFlags, inBuffer, outBuffer, inFramesToProcess);\n\t\t\tbreak;\n\t\tdefault :\n\t\t\tthrow CAException(kAudio_UnimplementedError);\n\t}\n\t\n\treturn noErr;\n}\n\nFloat64\t\tAUEffectBase::GetSampleRate()\n{\n\treturn GetOutput(0)->GetStreamFormat().mSampleRate;\n}\n\nUInt32\t\tAUEffectBase::GetNumberOfChannels()\n{\n\treturn GetOutput(0)->GetStreamFormat().mChannelsPerFrame;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUEffectBase.h",
    "content": "/*\n     File: AUEffectBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUEffectBase_h__\n#define __AUEffectBase_h__\n\n#include \"AUBase.h\"\n#include \"AUSilentTimeout.h\"\n#include \"CAException.h\"\n\nclass AUKernelBase;\n\n//\tBase class for an effect with one input stream, one output stream,\n//\tany number of channels.\n\t/*! @class AUEffectBase */\nclass AUEffectBase : public AUBase {\npublic:\n\t/*! @ctor AUEffectBase */\n\t\t\t\t\t\t\t\tAUEffectBase(\tAudioComponentInstance\t\taudioUnit,\n\t\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\tinProcessesInPlace = true );\n\t/*! @dtor ~AUEffectBase */\n\t\t\t\t\t\t\t\t~AUEffectBase();\n\t\n\t/*! @method Initialize */\n\tvirtual OSStatus\t\t\tInitialize();\n\n\t/*! @method Cleanup */\n\tvirtual void\t\t\t\tCleanup();\n\n\n\t/*! @method Reset */\n\tvirtual OSStatus\t\t\tReset(\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement);\n\n\t/*! @method GetPropertyInfo */\n\tvirtual OSStatus\t\t\tGetPropertyInfo (AudioUnitPropertyID\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable);\n\n\t/*! @method GetProperty */\n\tvirtual OSStatus\t\t\tGetProperty (AudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t \t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\toutData);\n\n\t/*! @method SetProperty */\n\tvirtual OSStatus\t\t\tSetProperty(AudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinDataSize);\n\n\t/*! @method StreamFormatWritable */\n\tvirtual bool\t\t\t\tStreamFormatWritable (AudioUnitScope\tscope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\telement);\n\n\t/*! @method ChangeStreamFormat */\n\tvirtual\tOSStatus\t\t\tChangeStreamFormat (\n\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & \tinPrevFormat,\n\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription &\tinNewFormat);\n\n\t/*! @method Render */\n\tvirtual OSStatus \tRender(AudioUnitRenderActionFlags &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames);\n\n\t// our virtual methods\n\t\n\t// If your unit processes N to N channels, and there are no interactions between channels,\n\t// it can override NewKernel to create a mono processing object per channel.  Otherwise,\n\t// don't override NewKernel, and instead, override ProcessBufferLists.\n\t/*! @method NewKernel */\n\tvirtual AUKernelBase *\t\tNewKernel() { return NULL; }\n\n\t/*! @method ProcessBufferLists */\n\tvirtual OSStatus\t\t\tProcessBufferLists(\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioBufferList &\t\t\tinBuffer,\n\t\t\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\toutBuffer,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinFramesToProcess );\n\n\t// convenience format accessors (use output 0's format)\n\t/*! @method GetSampleRate */\n\tFloat64\t\t\t\t\t\tGetSampleRate();\n\t\n\t/*! @method GetNumberOfChannels */\n\tUInt32\t\t\t\t\t\tGetNumberOfChannels();\n\n\t// convenience wrappers for accessing parameters in the global scope\n\t/*! @method SetParameter */\n\tusing AUBase::SetParameter;\n\tvoid\t\t\t\t\t\tSetParameter(\t\t\tAudioUnitParameterID\t\t\tparamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterValue\t\t\tvalue)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tGlobals()->SetParameter(paramID, value);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t/*! @method GetParameter */\n\tusing AUBase::GetParameter;\n\tAudioUnitParameterValue\t\tGetParameter(\t\t\tAudioUnitParameterID\t\t\tparamID )\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn Globals()->GetParameter(paramID );\n\t\t\t\t\t\t\t\t}\n\n\t/*! @method CanScheduleParameters */\n\tvirtual bool\t\t\t\tCanScheduleParameters() const { return true; }\n\t\n\t/*! @method IsBypassEffect */\n\t// This is used for the property value - to reflect to the UI if an effect is bypassed\n\tbool\t\t\t\t\t\tIsBypassEffect () { return mBypassEffect; }\n\t\nprotected:\n\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method MaintainKernels */\n\tvoid\t\t\t\t\t\tMaintainKernels();\n\n\t/*! @method ShouldBypassEffect */\n\t// This is used in the render call to see if an effect is bypassed\n\t// It can return a different status than IsBypassEffect (though it MUST take that into account)\n\tvirtual\tbool\t\t\t\tShouldBypassEffect () { return IsBypassEffect(); }\n\t\t\t\t\t\npublic:\n\t/*! @method SetBypassEffect */\n\tvirtual void\t\t\t\tSetBypassEffect (bool inFlag) { mBypassEffect = inFlag; }\n\t\n\t/*! @method SetParamHasSampleRateDependency */\n\tvoid\t\t\t\t\t\tSetParamHasSampleRateDependency (bool inFlag) \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\tmParamSRDep = inFlag; \n\t\t\t\t\t\t\t\t}\n\t\n\t/*! @method GetParamHasSampleRateDependency */\n\tbool\t\t\t\t\t\tGetParamHasSampleRateDependency () const { return mParamSRDep; }\n\n\tstruct ScheduledProcessParams\t// pointer passed in as void* userData param for ProcessScheduledSlice()\n\t{\n\t\tAudioUnitRenderActionFlags \t*actionFlags;\n\t\tAudioBufferList \t\t\t*inputBufferList;\n\t\tAudioBufferList \t\t\t*outputBufferList;\n\t};\n\n\tvirtual OSStatus\t\t\tProcessScheduledSlice(\tvoid\t\t\t\t*inUserData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinStartFrameInBuffer,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinSliceFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinTotalBufferFrames );\n\n\n\tbool\t\t\t\t\t\t\tProcessesInPlace() const {return mProcessesInPlace;};\n\tvoid\t\t\t\t\t\t\tSetProcessesInPlace(bool inProcessesInPlace) {mProcessesInPlace = inProcessesInPlace;};\n\t\t\n\ttypedef std::vector<AUKernelBase *> KernelList;\n\t\n\t\n\nprotected:\t\n\t/*! @var mKernelList */\n\tKernelList\t\t\t\t\t\tmKernelList;\n\n\tAUKernelBase* GetKernel(UInt32 index) { return mKernelList[index]; }\n\n\t/*! @method IsInputSilent */\n\tbool \t\t\t\t\t\t\tIsInputSilent (AudioUnitRenderActionFlags \tinActionFlags, UInt32 inFramesToProcess)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tbool inputSilent = (inActionFlags & kAudioUnitRenderAction_OutputIsSilence) != 0;\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t// take latency and tail time into account when propagating the silent bit\n\t\t\t\t\t\t\t\t\t\tUInt32 silentTimeoutFrames = UInt32(GetSampleRate() * (GetLatency() + GetTailTime()));\n\t\t\t\t\t\t\t\t\t\tmSilentTimeout.Process (inFramesToProcess, silentTimeoutFrames, inputSilent);\n\t\t\t\t\t\t\t\t\t\treturn inputSilent;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n#if TARGET_OS_IPHONE\n\tvoid SetOnlyOneKernel(bool inUseOnlyOneKernel) { mOnlyOneKernel = inUseOnlyOneKernel; } // set in ctor of subclass that wants it.\n#endif\n\n\ttemplate <typename T>\n\tvoid\tProcessBufferListsT(\n\t\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\tconst AudioBufferList &\t\t\tinBuffer,\n\t\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\toutBuffer,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinFramesToProcess );\n\n\tCAStreamBasicDescription::CommonPCMFormat GetCommonPCMFormat() const { return mCommonPCMFormat; }\n\t\n\nprivate:\n\t/*! @var mBypassEffect */\n\tbool\t\t\t\t\t\t\tmBypassEffect;\n\t/*! @var mParamSRDep */\n\tbool\t\t\t\t\t\t\tmParamSRDep;\n\t\n\t/*! @var mProcessesInplace */\n\tbool\t\t\t\t\t\t\tmProcessesInPlace;\n\t\n\t/*! @var mSilentTimeout */\n\tAUSilentTimeout\t\t\t\t\tmSilentTimeout;\n\n\t/*! @var mMainOutput */\n\tAUOutputElement *\t\t\t\tmMainOutput;\n\t\n\t/*! @var mMainInput */\n\tAUInputElement *\t\t\t\tmMainInput;\n\t\n#if TARGET_OS_IPHONE\n\t/*! @var mOnlyOneKernel */\n\tbool\t\t\t\t\t\t\tmOnlyOneKernel;\n#endif\n\n\t/*! @var mCommonPCMFormat */\n\tCAStreamBasicDescription::CommonPCMFormat\t\tmCommonPCMFormat;\n\tUInt32\t\t\t\t\t\t\tmBytesPerFrame;\n};\n\n\n//\tBase class for a \"kernel\", an object that performs DSP on one channel of an interleaved stream.\n\t/*! @class AUKernelBase */\nclass AUKernelBase {\npublic:\n\t/*! @ctor AUKernelBase */\n\t\t\t\t\t\t\t\tAUKernelBase(AUEffectBase *inAudioUnit ) :\n\t\t\t\t\t\t\t\t\tmAudioUnit(inAudioUnit) { }\n\n\t/*! @dtor ~AUKernelBase */\n\tvirtual\t\t\t\t\t\t~AUKernelBase() { }\n\n\t/*! @method Reset */\n\tvirtual void\t\t\t\tReset() { }\n\n\t/*! @method Process */\n\tvirtual void \t\t\t\tProcess(\tconst Float32 *\t\t\t\t\t\tinSourceP,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 *\t\t\t\t\t\t\tinDestP,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumChannels,\n\t\t\t\t\t\t\t\t\t\t\tbool &\t\t\t\t\t\t\t\tioSilence) { throw CAException(kAudio_UnimplementedError ); }\n\n\t/*! @method Process */\n\tvirtual void \t\t\t\tProcess(\tconst SInt32 *\t\t\t\t\t\tinSourceP,\n\t\t\t\t\t\t\t\t\t\t\tSInt32 *\t\t\t\t\t\t\tinDestP,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumChannels,\n\t\t\t\t\t\t\t\t\t\t\tbool &\t\t\t\t\t\t\t\tioSilence) { throw CAException(kAudio_UnimplementedError ); }\n\n\t/*! @method Process */\n\tvirtual void \t\t\t\tProcess(\tconst SInt16 *\t\t\t\t\t\tinSourceP,\n\t\t\t\t\t\t\t\t\t\t\tSInt16 *\t\t\t\t\t\t\tinDestP,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinFramesToProcess,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumChannels,\n\t\t\t\t\t\t\t\t\t\t\tbool &\t\t\t\t\t\t\t\tioSilence) { throw CAException(kAudio_UnimplementedError ); }\n\n\t/*! @method GetSampleRate */\n\tFloat64\t\t\t\t\t\tGetSampleRate()\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn mAudioUnit->GetSampleRate();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t/*! @method GetParameter */\n\tAudioUnitParameterValue\t\tGetParameter (AudioUnitParameterID\tparamID) \n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\treturn mAudioUnit->GetParameter(paramID);\n\t\t\t\t\t\t\t\t}\n\t\n\tvoid\t\t\t\t\t\tSetChannelNum (UInt32 inChan) { mChannelNum = inChan; }\n\tUInt32\t\t\t\t\t\tGetChannelNum () { return mChannelNum; }\n\t\nprotected:\n\t/*! @var mAudioUnit */\n\tAUEffectBase * \t\tmAudioUnit;\n\tUInt32\t\t\t\tmChannelNum;\n\n};\n\ntemplate <typename T>\nvoid\tAUEffectBase::ProcessBufferListsT(\n\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags &\tioActionFlags,\n\t\t\t\t\t\t\t\t\tconst AudioBufferList &\t\t\tinBuffer,\n\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\toutBuffer,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinFramesToProcess )\n{\n\tbool ioSilence;\n\n\tbool silentInput = IsInputSilent (ioActionFlags, inFramesToProcess);\n\tioActionFlags |= kAudioUnitRenderAction_OutputIsSilence;\n\n\t// call the kernels to handle either interleaved or deinterleaved\n\tif (inBuffer.mNumberBuffers == 1) {\n\t\tif (inBuffer.mBuffers[0].mNumberChannels == 0)\n\t\t\tthrow CAException(kAudio_ParamError);\n\t\t\t\n\t\tfor (UInt32 channel = 0; channel < mKernelList.size(); ++channel) {\n\t\t\tAUKernelBase *kernel = mKernelList[channel];\n\t\t\t\n\t\t\tif (kernel == NULL) continue;\n\t\t\tioSilence = silentInput;\n\t\t\t\n\t\t\t// process each interleaved channel individually\n\t\t\tkernel->Process(\n\t\t\t\t(const T *)inBuffer.mBuffers[0].mData + channel, \n\t\t\t\t(T *)outBuffer.mBuffers[0].mData + channel,\n\t\t\t\tinFramesToProcess,\n\t\t\t\tinBuffer.mBuffers[0].mNumberChannels,\n\t\t\t\tioSilence);\n\t\t\t\t\n\t\t\tif (!ioSilence)\n\t\t\t\tioActionFlags &= ~kAudioUnitRenderAction_OutputIsSilence;\n\t\t}\n\t} else {\n\t\tfor (UInt32 channel = 0; channel < mKernelList.size(); ++channel) {\n\t\t\tAUKernelBase *kernel = mKernelList[channel];\n\t\t\t\n\t\t\tif (kernel == NULL) continue;\n\t\t\t\n\t\t\tioSilence = silentInput;\n\t\t\tconst AudioBuffer *srcBuffer = &inBuffer.mBuffers[channel];\n\t\t\tAudioBuffer *destBuffer = &outBuffer.mBuffers[channel];\n\t\t\t\n\t\t\tkernel->Process(\n\t\t\t\t(const T *)srcBuffer->mData, \n\t\t\t\t(T *)destBuffer->mData, \n\t\t\t\tinFramesToProcess,\n\t\t\t\t1,\n\t\t\t\tioSilence);\n\t\t\t\t\n\t\t\tif (!ioSilence)\n\t\t\t\tioActionFlags &= ~kAudioUnitRenderAction_OutputIsSilence;\n\t\t}\n\t}\n}\n\n\n#endif // __AUEffectBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.cpp",
    "content": "/*\n     File: AUMIDIBase.cpp\n Abstract: AUMIDIBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUMIDIBase.h\"\n#include <CoreMIDI/CoreMIDI.h>\n#include \"CAXException.h\"\n\n//temporaray location\nenum\n{\n\tkMidiMessage_NoteOff \t\t\t= 0x80,\n\tkMidiMessage_NoteOn \t\t\t= 0x90,\n\tkMidiMessage_PolyPressure \t\t= 0xA0,\n\tkMidiMessage_ControlChange \t\t= 0xB0,\n\tkMidiMessage_ProgramChange \t\t= 0xC0,\n\tkMidiMessage_ChannelPressure \t= 0xD0,\n\tkMidiMessage_PitchWheel \t\t= 0xE0,\n\n\tkMidiController_AllSoundOff\t\t\t= 120,\n\tkMidiController_ResetAllControllers\t= 121,\n\tkMidiController_AllNotesOff\t\t\t= 123\n};\n\nAUMIDIBase::AUMIDIBase(AUBase* inBase) \n\t: mAUBaseInstance (*inBase) \n{\n#if CA_AUTO_MIDI_MAP\n\tmMapManager = new CAAUMIDIMapManager();\n#endif\n}\n\nAUMIDIBase::~AUMIDIBase() \n{\n#if CA_AUTO_MIDI_MAP\n\tif (mMapManager) \n\t\tdelete mMapManager;\n#endif\n}\n\n#if TARGET_API_MAC_OSX\nOSStatus\t\t\tAUMIDIBase::DelegateGetPropertyInfo(AudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\t\toutWritable)\n{\n\tOSStatus result = noErr;\n\t\n\tswitch (inID) {\n#if !TARGET_OS_IPHONE\n\tcase kMusicDeviceProperty_MIDIXMLNames:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tca_require(inElement == 0, InvalidElement);\n\t\tif (GetXMLNames(NULL) == noErr) {\n\t\t\toutDataSize = sizeof(CFURLRef);\n\t\t\toutWritable = false;\n\t\t} else\n\t\t\tresult = kAudioUnitErr_InvalidProperty;\n\t\tbreak;\n#endif\t\t\n#if CA_AUTO_MIDI_MAP\t\t\t\t\n\tcase kAudioUnitProperty_AllParameterMIDIMappings:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tca_require(inElement == 0, InvalidElement);\n\t\toutWritable = true;\n\t\toutDataSize = sizeof (AUParameterMIDIMapping)*mMapManager->NumMaps();\n\t\tresult = noErr;\n\t\tbreak;\n\t\n\tcase kAudioUnitProperty_HotMapParameterMIDIMapping:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tca_require(inElement == 0, InvalidElement);\n\t\toutWritable = true;\n\t\toutDataSize = sizeof (AUParameterMIDIMapping); \n\t\tresult = noErr;\n\t\tbreak;\n\t\t\n\tcase kAudioUnitProperty_AddParameterMIDIMapping:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tca_require(inElement == 0, InvalidElement);\n\t\toutWritable = true;\n\t\toutDataSize = sizeof (AUParameterMIDIMapping);\n\t\tresult = noErr;\n\t\tbreak;\n\t\t\n\tcase kAudioUnitProperty_RemoveParameterMIDIMapping:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tca_require(inElement == 0, InvalidElement);\n\t\toutWritable = true;\n\t\toutDataSize = sizeof (AUParameterMIDIMapping); \n\t\tresult = noErr;\n\t\tbreak;\n#endif\n\n\tdefault:\n\t\tresult = kAudioUnitErr_InvalidProperty;\n\t\tbreak;\n\t}\n\treturn result;\n\n#if CA_AUTO_MIDI_MAP || (!TARGET_OS_IPHONE)\nInvalidScope:\n\treturn kAudioUnitErr_InvalidScope;\nInvalidElement:\n\treturn kAudioUnitErr_InvalidElement;\n#endif\n}\n\nOSStatus\t\t\tAUMIDIBase::DelegateGetProperty(\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\toutData)\n{\n\tOSStatus result;\n\t\n\tswitch (inID) {\n#if !TARGET_OS_IPHONE\n\tcase kMusicDeviceProperty_MIDIXMLNames:\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tca_require(inElement == 0, InvalidElement);\n\t\tresult = GetXMLNames((CFURLRef *)outData);\n\t\tbreak;\n#endif\t\t\n#if CA_AUTO_MIDI_MAP\n\tcase kAudioUnitProperty_AllParameterMIDIMappings:{\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tca_require(inElement == 0, InvalidElement);\n\t\tAUParameterMIDIMapping*  maps =  (static_cast<AUParameterMIDIMapping*>(outData));\n\t\tmMapManager->GetMaps(maps);\n//\t\tprintf (\"GETTING MAPS\\n\");\n//\t\tmMapManager->Print();\n\t\tresult = noErr;\n\t\tbreak;\n\t}\n\t\t\n\tcase kAudioUnitProperty_HotMapParameterMIDIMapping:{\n\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\tca_require(inElement == 0, InvalidElement);\n\t\tAUParameterMIDIMapping *  map =  (static_cast<AUParameterMIDIMapping*>(outData));\n\t\tmMapManager->GetHotParameterMap (*map);\n\t\tresult = noErr;\n\t\tbreak;\n\t}\n#endif\n\t\n\tdefault:\n\t\tresult = kAudioUnitErr_InvalidProperty;\n\t\tbreak;\n\t}\n\treturn result;\n\n#if CA_AUTO_MIDI_MAP || (!TARGET_OS_IPHONE)\nInvalidScope:\n\treturn kAudioUnitErr_InvalidScope;\nInvalidElement:\n\treturn kAudioUnitErr_InvalidElement;\n#endif\n}\n\nOSStatus\t\t\tAUMIDIBase::DelegateSetProperty(\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinDataSize)\n{\n\tOSStatus result;\n\t\n\tswitch (inID) {\n#if CA_AUTO_MIDI_MAP\n\t\tcase kAudioUnitProperty_AddParameterMIDIMapping:{\n\t\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\t\tca_require(inElement == 0, InvalidElement);\n\t\t\tAUParameterMIDIMapping * maps = (AUParameterMIDIMapping*)inData;\n\t\t\tmMapManager->SortedInsertToParamaterMaps (maps, (inDataSize / sizeof(AUParameterMIDIMapping)), mAUBaseInstance);\n\t\t\tmAUBaseInstance.PropertyChanged (kAudioUnitProperty_AllParameterMIDIMappings, kAudioUnitScope_Global, 0);\t \n\t\t\tresult = noErr;\n\t\t\tbreak;\n\t\t}\n\t\t\t\n\t\tcase kAudioUnitProperty_RemoveParameterMIDIMapping:{\n\t\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\t\tca_require(inElement == 0, InvalidElement);\n\t\t\tAUParameterMIDIMapping * maps = (AUParameterMIDIMapping*)inData;\n\t\t\tbool didChange;\n\t\t\tmMapManager->SortedRemoveFromParameterMaps(maps, (inDataSize / sizeof(AUParameterMIDIMapping)), didChange);\n\t\t\tif (didChange)\n\t\t\t\tmAUBaseInstance.PropertyChanged (kAudioUnitProperty_AllParameterMIDIMappings, kAudioUnitScope_Global, 0);\t \n\t\t\tresult = noErr;\n\t\t\tbreak;\n\t\t}\n\t\t\t\t\t\n\t\tcase kAudioUnitProperty_HotMapParameterMIDIMapping:{\n\t\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\t\tca_require(inElement == 0, InvalidElement);\n\t\t\tAUParameterMIDIMapping & map = *((AUParameterMIDIMapping*)inData);\n\t\t\tmMapManager->SetHotMapping (map);\t\t\t\n\t\t\tresult = noErr;\n\t\t\tbreak;\n\t\t}\n\t\tcase kAudioUnitProperty_AllParameterMIDIMappings:{\n\t\t\tca_require(inScope == kAudioUnitScope_Global, InvalidScope);\n\t\t\tca_require(inElement == 0, InvalidElement);\n\t\t\tAUParameterMIDIMapping * mappings = (AUParameterMIDIMapping*)inData;\n\t\t\tmMapManager->ReplaceAllMaps (mappings, (inDataSize / sizeof(AUParameterMIDIMapping)), mAUBaseInstance);\n\t\t\tresult = noErr;\n\t\t\tbreak;\n\t\t}\n#endif\n\t\t\n\tdefault:\n\t\tresult = kAudioUnitErr_InvalidProperty;\n\t\tbreak;\n\t}\n\treturn result;\n#if CA_AUTO_MIDI_MAP\n\tInvalidScope:\n\t\treturn kAudioUnitErr_InvalidScope;\n\tInvalidElement:\n\t\treturn kAudioUnitErr_InvalidElement;\n#endif\n}\n\n\n\n#endif //TARGET_API_MAC_OSX\n\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n#pragma mark ____MidiDispatch\n\n\ninline const Byte *\tNextMIDIEvent(const Byte *event, const Byte *end)\n{\n\tByte c = *event;\n\tswitch (c >> 4) {\n\tdefault:\t// data byte -- assume in sysex\n\t\twhile ((*++event & 0x80) == 0 && event < end)\n\t\t\t;\n\t\tbreak;\n\tcase 0x8:\n\tcase 0x9:\n\tcase 0xA:\n\tcase 0xB:\n\tcase 0xE:\n\t\tevent += 3;\n\t\tbreak;\n\tcase 0xC:\n\tcase 0xD:\n\t\tevent += 2;\n\t\tbreak;\n\tcase 0xF:\n\t\tswitch (c) {\n\t\tcase 0xF0:\n\t\t\twhile ((*++event & 0x80) == 0 && event < end)\n\t\t\t\t;\n\t\t\tbreak;\n\t\tcase 0xF1:\n\t\tcase 0xF3:\n\t\t\tevent += 2;\n\t\t\tbreak;\n\t\tcase 0xF2:\n\t\t\tevent += 3;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t++event;\n\t\t\tbreak;\n\t\t}\n\t}\n\treturn (event >= end) ? end : event;\n}\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\tAUMIDIBase::HandleMIDIPacketList\n//\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nOSStatus\t\t\tAUMIDIBase::HandleMIDIPacketList(const MIDIPacketList *pktlist)\n{\n\tif (!mAUBaseInstance.IsInitialized()) return kAudioUnitErr_Uninitialized;\n\t\n\tint nPackets = pktlist->numPackets;\n\tconst MIDIPacket *pkt = pktlist->packet;\n\t\n\twhile (nPackets-- > 0) {\n\t\tconst Byte *event = pkt->data, *packetEnd = event + pkt->length;\n\t\tlong startFrame = (long)pkt->timeStamp;\n\t\twhile (event < packetEnd) {\n\t\t\tByte status = event[0];\n\t\t\tif (status & 0x80) {\n\t\t\t\t// really a status byte (not sysex continuation)\n\t\t\t\tHandleMidiEvent(status & 0xF0, status & 0x0F, event[1], event[2], static_cast<UInt32>(startFrame));\n\t\t\t\t\t// note that we're generating a bogus channel number for system messages (0xF0-FF)\n\t\t\t}\n\t\t\tevent = NextMIDIEvent(event, packetEnd);\n\t\t}\n\t\tpkt = reinterpret_cast<const MIDIPacket *>(packetEnd);\n\t}\n\treturn noErr;\n}\n\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n//\tAUMIDIBase::HandleMidiEvent\n//\n//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nOSStatus \tAUMIDIBase::HandleMidiEvent(UInt8 status, UInt8 channel, UInt8 data1, UInt8 data2, UInt32 inStartFrame)\n{\n\tif (!mAUBaseInstance.IsInitialized()) return kAudioUnitErr_Uninitialized;\n\t\t\n#if CA_AUTO_MIDI_MAP\t\n// you potentially have a choice to make here - if a param mapping matches, do you still want to process the \n// MIDI event or not. The default behaviour is to continue on with the MIDI event.\n\tif (mMapManager->HandleHotMapping (status, channel, data1, mAUBaseInstance)) {\n\t\tmAUBaseInstance.PropertyChanged (kAudioUnitProperty_HotMapParameterMIDIMapping, kAudioUnitScope_Global, 0);\n\t}\n\telse {\n\t\tmMapManager->FindParameterMapEventMatch(status, channel, data1, data2, inStartFrame, mAUBaseInstance);\n\t}\t\n#endif\t\n\t\n\tOSStatus result = noErr;\n\t\n\tswitch(status)\n\t{\n\t\tcase kMidiMessage_NoteOn:\n\t\t\tif(data2)\n\t\t\t{\n\t\t\t\tresult = HandleNoteOn(channel, data1, data2, inStartFrame);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t// zero velocity translates to note off\n\t\t\t\tresult = HandleNoteOff(channel, data1, data2, inStartFrame);\n\t\t\t}\n\t\t\tbreak;\n\t\t\t\n\t\tcase kMidiMessage_NoteOff:\n\t\t\tresult = HandleNoteOff(channel, data1, data2, inStartFrame);\n\t\t\tbreak;\n\t\t\n\t\tdefault:\n\t\t\tresult = HandleNonNoteEvent (status, channel, data1, data2, inStartFrame);\n\t\t\tbreak;\n\t}\n\t\n\treturn result;\n}\n\nOSStatus\tAUMIDIBase::HandleNonNoteEvent (UInt8 status, UInt8 channel, UInt8 data1, UInt8 data2, UInt32 inStartFrame)\n{\n\tOSStatus result = noErr;\n\n\tswitch (status)\n\t{\n\t\tcase kMidiMessage_PitchWheel:\n\t\t\tresult = HandlePitchWheel(channel, data1, data2, inStartFrame);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kMidiMessage_ProgramChange:\n\t\t\tresult = HandleProgramChange(channel, data1);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kMidiMessage_ChannelPressure:\n\t\t\tresult = HandleChannelPressure(channel, data1, inStartFrame);\n\t\t\tbreak;\n\t\t\t\n\t\tcase kMidiMessage_ControlChange:\n\t\t{\n\t\t\tswitch (data1) {\n\t\t\t\tcase kMidiController_AllNotesOff:\n\t\t\t\t\tresult = HandleAllNotesOff(channel);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase kMidiController_ResetAllControllers:\n\t\t\t\t\tresult = HandleResetAllControllers(channel);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase kMidiController_AllSoundOff:\n\t\t\t\t\tresult = HandleAllSoundOff(channel);\n\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\n\t\t\t\tdefault:\n\t\t\t\t\tresult = HandleControlChange(channel, data1, data2, inStartFrame);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase kMidiMessage_PolyPressure:\n\t\t\tresult = HandlePolyPressure (channel, data1, data2, inStartFrame);\n\t\t\tbreak;\n\t}\n\treturn result;\n}\n\nOSStatus \tAUMIDIBase::SysEx (const UInt8 *\tinData, \n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\tinLength)\n{\n\tif (!mAUBaseInstance.IsInitialized()) return kAudioUnitErr_Uninitialized;\n\n\treturn HandleSysEx(inData, inLength );\n}\n\n\n\n#if TARGET_OS_MAC\n\t#if __LP64__\n\t\t// comp instance, parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_index + 1];\n\t#else\n\t\t// parameters in reverse order, then comp instance\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_nparams - 1 - _index];\n\t#endif\n#elif TARGET_OS_WIN32\n\t\t// (no comp instance), parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_index];\n#endif\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\nOSStatus\t\t\tAUMIDIBase::ComponentEntryDispatch(\tComponentParameters *\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAUMIDIBase *\t\t\t\tThis)\n{\n\tif (This == NULL) return kAudio_ParamError;\n\n\tOSStatus result;\n\t\n\tswitch (params->what) {\n\tcase kMusicDeviceMIDIEventSelect:\n\t\t{\n\t\t\tPARAM(UInt32, pbinStatus, 0, 4);\n\t\t\tPARAM(UInt32, pbinData1, 1, 4);\n\t\t\tPARAM(UInt32, pbinData2, 2, 4);\n\t\t\tPARAM(UInt32, pbinOffsetSampleFrame, 3, 4);\n\t\t\tresult = This->MIDIEvent(pbinStatus, pbinData1, pbinData2, pbinOffsetSampleFrame);\n\t\t}\n\t\tbreak;\n\tcase kMusicDeviceSysExSelect:\n\t\t{\n\t\t\tPARAM(const UInt8 *, pbinData, 0, 2);\n\t\t\tPARAM(UInt32, pbinLength, 1, 2);\n\t\t\tresult = This->SysEx(pbinData, pbinLength);\n\t\t}\n\t\tbreak;\n\n\tdefault:\n\t\tresult = badComponentSelector;\n\t\tbreak;\n\t}\n\t\n\treturn result;\n}\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIBase.h",
    "content": "/*\n     File: AUMIDIBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUMIDIBase_h__\n#define __AUMIDIBase_h__\n\n#include \"AUBase.h\"\n\n#if CA_AUTO_MIDI_MAP\n\t#include \"CAAUMIDIMapManager.h\"\n#endif\n\nstruct MIDIPacketList;\n\n// ________________________________________________________________________\n//\tMusicDeviceBase\n//\n\t/*! @class AUMIDIBase */\nclass AUMIDIBase {\npublic:\n\t\t\t\t\t\t\t\t\t// this is NOT a copy constructor!\n\t/*! @ctor AUMIDIBase */\n\t\t\t\t\t\t\t\tAUMIDIBase(AUBase* inBase);\n\t/*! @dtor ~AUMIDIBase */\n\tvirtual\t\t\t\t\t\t~AUMIDIBase();\n\t\n\t/*! @method MIDIEvent */\n\tvirtual OSStatus\tMIDIEvent(\t\tUInt32 \t\t\t\t\t\tinStatus, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinData1, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinData2, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame)\n\t{\n\t\tUInt32 strippedStatus = inStatus & 0xf0;\n\t\tUInt32 channel = inStatus & 0x0f;\n\t\n\t\treturn HandleMidiEvent(strippedStatus, channel, inData1, inData2, inOffsetSampleFrame);\n\t}\n\t\n\t/*! @method HandleMIDIPacketList */\n\tOSStatus\t\t\tHandleMIDIPacketList(const MIDIPacketList *pktlist);\n\t\n\t/*! @method SysEx */\n\tvirtual OSStatus\tSysEx(\t\t\tconst UInt8 *\t\t\t\tinData, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinLength);\n\n#if TARGET_API_MAC_OSX\n\t/*! @method DelegateGetPropertyInfo */\n\tvirtual OSStatus\t\t\tDelegateGetPropertyInfo(AudioUnitPropertyID\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable);\n\n\t/*! @method DelegateGetProperty */\n\tvirtual OSStatus\t\t\tDelegateGetProperty(\tAudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\toutData);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method DelegateSetProperty */\n\tvirtual OSStatus\t\t\tDelegateSetProperty(\tAudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinDataSize);\n#endif\n\nprotected:\n\t// MIDI dispatch\n\t/*! @method HandleMidiEvent */\n\tvirtual OSStatus\tHandleMidiEvent(\t\tUInt8 \tinStatus,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinData1,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinData2,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \tinStartFrame);\n\n\t/*! @method HandleNonNoteEvent */\n\tvirtual OSStatus\tHandleNonNoteEvent (\tUInt8\tstatus, \n\t\t\t\t\t\t\t\t\t\t\t\tUInt8\tchannel, \n\t\t\t\t\t\t\t\t\t\t\t\tUInt8\tdata1, \n\t\t\t\t\t\t\t\t\t\t\t\tUInt8\tdata2, \n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame);\n\n#if TARGET_API_MAC_OSX\n\t/*! @method GetXMLNames */\n\tvirtual OSStatus\t\t\tGetXMLNames(CFURLRef *outNameDocument) \n\t{ return kAudioUnitErr_InvalidProperty; }\t// if not overridden, it's unsupported\n#endif\n\n// channel messages\n\t/*! @method HandleNoteOn */\n\tvirtual OSStatus\tHandleNoteOn(\t\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinNoteNumber,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinVelocity,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \tinStartFrame) { return noErr; }\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method HandleNoteOff */\n\tvirtual OSStatus\tHandleNoteOff(\t\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinNoteNumber,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinVelocity,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \tinStartFrame) { return noErr; }\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method HandleControlChange */\n\tvirtual OSStatus\tHandleControlChange(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinController,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame) { return noErr; }\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method HandlePitchWheel */\n\tvirtual OSStatus\tHandlePitchWheel(\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinPitch1,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinPitch2,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame) { return noErr; }\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method HandleChannelPressure */\n\tvirtual OSStatus\tHandleChannelPressure(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame) { return noErr; }\n\n\t/*! @method HandleProgramChange */\n\tvirtual OSStatus\tHandleProgramChange(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinValue) { return noErr; }\n\n\t/*! @method HandlePolyPressure */\n\tvirtual OSStatus\tHandlePolyPressure(\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinKey,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8\tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\tinStartFrame) { return noErr; }\n\n\t/*! @method HandleResetAllControllers */\n\tvirtual OSStatus\tHandleResetAllControllers(UInt8 inChannel) { return noErr; }\n\t\n\t/*! @method HandleAllNotesOff */\n\tvirtual OSStatus\tHandleAllNotesOff(\t\tUInt8\tinChannel) { return noErr; }\n\t\n\t/*! @method HandleAllSoundOff */\n\tvirtual OSStatus\tHandleAllSoundOff(\t\tUInt8\tinChannel) { return noErr; }\n\n\n//System messages   \n\t/*! @method HandleSysEx */\n\tvirtual OSStatus\tHandleSysEx(\t\t\tconst UInt8 *\tinData,\n                                        \t\tUInt32\t\t\tinLength ) { return noErr; }\n\n#if CA_AUTO_MIDI_MAP\n\t/* map manager */\n\tCAAUMIDIMapManager\t\t\t*GetMIDIMapManager() {return mMapManager;};\n\t\n#endif\n\n\t\t\t\t\t\t\t\t\t\t\t\t\nprivate:\n\t/*! @var mAUBaseInstance */\n\tAUBase\t\t\t\t\t\t& mAUBaseInstance;\n\t\n#if CA_AUTO_MIDI_MAP\n\t/* map manager */\n\tCAAUMIDIMapManager\t\t\t* mMapManager;\n#endif\n\t\npublic:\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t// component dispatcher\n\t/*! @method ComponentEntryDispatch */\n\tstatic OSStatus\t\t\tComponentEntryDispatch(\tComponentParameters \t\t*params,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAUMIDIBase \t\t\t\t\t*This);\n#endif\n};\n\n#endif // __AUMIDIBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.cpp",
    "content": "/*\n     File: AUMIDIEffectBase.cpp\n Abstract: AUMIDIEffectBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUMIDIEffectBase.h\"\n\n// compatibility with older OS SDK releases\ntypedef OSStatus\n(*TEMP_MusicDeviceMIDIEventProc)(\tvoid *\t\t\t\tinComponentStorage,\n\t\t\t\tUInt32\t\t\t\t\tinStatus,\n\t\t\t\tUInt32\t\t\t\t\tinData1,\n\t\t\t\tUInt32\t\t\t\t\tinData2,\n\t\t\t\tUInt32\t\t\t\t\tinOffsetSampleFrame);\n\nstatic OSStatus\t\tAUMIDIEffectBaseMIDIEvent(void *\t\t\t\tinComponentStorage,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinStatus,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinData1,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinData2,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinOffsetSampleFrame);\n\nAUMIDIEffectBase::AUMIDIEffectBase(\t\tAudioComponentInstance\t\t\t\tinInstance,\n\t\t\t\t\t\tbool \t\t\t\t\t\tinProcessesInPlace ) \n\t: AUEffectBase(inInstance, inProcessesInPlace),\n\t  AUMIDIBase(this)\n{\n}\n\nOSStatus\t\t\tAUMIDIEffectBase::GetPropertyInfo(AudioUnitPropertyID\t\t\tinID,\n\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\tUInt32 &\t\t\t\toutDataSize,\n\t\t\t\t\t\t\tBoolean &\t\t\t\toutWritable)\n{\n\tOSStatus result;\n\t\n\tresult = AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);\n\t\n\tif (result == kAudioUnitErr_InvalidProperty)\n\t\tresult = AUMIDIBase::DelegateGetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);\n\t\n\treturn result;\n}\n\nOSStatus\t\t\tAUMIDIEffectBase::GetProperty(\tAudioUnitPropertyID\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\toutData)\n{\n\tOSStatus result;\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\tif (inID == kAudioUnitProperty_FastDispatch) {\n\t\tif (inElement == kMusicDeviceMIDIEventSelect) {\n\t\t\t*(TEMP_MusicDeviceMIDIEventProc *)outData = AUMIDIEffectBaseMIDIEvent;\n\t\t\treturn noErr;\n\t\t}\n\t\treturn kAudioUnitErr_InvalidElement;\n\t}\n#endif\n\t\n\tresult = AUEffectBase::GetProperty (inID, inScope, inElement, outData);\n\t\n\tif (result == kAudioUnitErr_InvalidProperty)\n\t\tresult = AUMIDIBase::DelegateGetProperty (inID, inScope, inElement, outData);\n\t\n\treturn result;\n}\n\nOSStatus\t\t\tAUMIDIEffectBase::SetProperty(\tAudioUnitPropertyID\t\t\tinID,\n\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\tAudioUnitElement\t\t \tinElement,\n\t\t\t\t\t\t\tconst void *\t\t\t\tinData,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\tinDataSize)\n{\n\n\tOSStatus result = AUEffectBase::SetProperty (inID, inScope, inElement, inData, inDataSize);\n\t\t\n\tif (result == kAudioUnitErr_InvalidProperty)\n\t\tresult = AUMIDIBase::DelegateSetProperty (inID, inScope, inElement, inData, inDataSize);\n\t\t\n\treturn result;\n}\n\n\n#if !TARGET_OS_IPHONE\nOSStatus\t\t\tAUMIDIEffectBase::ComponentEntryDispatch(ComponentParameters *\t\t\tparams,\n\t\t\t\t\t\t\t\tAUMIDIEffectBase *\t\t\tThis)\n{\n\tif (This == NULL) return paramErr;\n\n\tOSStatus result;\n\t\n\tswitch (params->what) {\n\tcase kMusicDeviceMIDIEventSelect:\n\tcase kMusicDeviceSysExSelect:\n\t\tresult = AUMIDIBase::ComponentEntryDispatch (params, This);\n\t\tbreak;\n\tdefault:\n\t\tresult = AUEffectBase::ComponentEntryDispatch(params, This);\n\t\tbreak;\n\t}\n\t\n\treturn result;\n}\n#endif\n\n// fast dispatch\nstatic OSStatus\t\tAUMIDIEffectBaseMIDIEvent(void *\t\t\t\tinComponentStorage,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinStatus,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinData1,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinData2,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinOffsetSampleFrame)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tAUMIDIEffectBase *This = static_cast<AUMIDIEffectBase *>(inComponentStorage);\n\t\tif (This == NULL) return paramErr;\n\t\tresult = This->AUMIDIBase::MIDIEvent(inStatus, inData1, inData2, inOffsetSampleFrame);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUMIDIEffectBase.h",
    "content": "/*\n     File: AUMIDIEffectBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUMIDIEffectBase_h__\n#define __AUMIDIEffectBase_h__\n\n#include \"AUMIDIBase.h\"\n#include \"AUEffectBase.h\"\n\n// ________________________________________________________________________\n//\tAUMIDIEffectBase\n//\n\t/*! @class AUMIDIEffectBase */\nclass AUMIDIEffectBase : public AUEffectBase, public AUMIDIBase {\npublic:\n\t/*! @ctor AUMIDIEffectBase */\n\t\t\t\t\t\t\t\tAUMIDIEffectBase(\tAudioComponentInstance\tinInstance,\n\t\t\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t\tinProcessesInPlace = false );\n    /*! @method MIDIEvent */\n    virtual OSStatus            MIDIEvent(UInt32            inStatus,\n                                          UInt32            inData1,\n                                          UInt32            inData2,\n                                          UInt32            inOffsetSampleFrame)\n\t{\n\t\treturn AUMIDIBase::MIDIEvent (inStatus, inData1, inData2, inOffsetSampleFrame);\n\t}\n    \n\t/*! @method SysEx */\n\tvirtual OSStatus            SysEx(const UInt8 *         inData,\n                                      UInt32                inLength)\n\t{\n\t\treturn AUMIDIBase::SysEx (inData, inLength);\n\t}\n\n\t/*! @method GetPropertyInfo */\n\tvirtual OSStatus\t\t\tGetPropertyInfo(AudioUnitPropertyID\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable);\n\n\t/*! @method GetProperty */\n\tvirtual OSStatus\t\t\tGetProperty(\tAudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\toutData);\n\t/*! @method SetProperty */\n\tvirtual OSStatus\t\t\tSetProperty(\tAudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinDataSize);\n#if !TARGET_OS_IPHONE\n\t// component dispatcher\n\t/*! @method ComponentEntryDispatch */\n\tstatic OSStatus\t\t\tComponentEntryDispatch(\tComponentParameters *\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAUMIDIEffectBase *\t\t\t\tThis);\n#endif\n};\n\n#endif // __AUMIDIEffectBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUOutputBase.cpp",
    "content": "/*\n     File: AUOutputBase.cpp\n Abstract: AUOutputBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n#include \"AUOutputBase.h\"\n\nOSStatus\t\tAUOutputBase::ComponentEntryDispatch(ComponentParameters *params, AUOutputBase *This)\n{\n\tif (This == NULL) return paramErr;\n\n\tOSStatus result;\n\t\n\tswitch (params->what) {\n\tcase kAudioOutputUnitStartSelect:\n\t\t{\n\t\t\tresult = This->Start();\n\t\t}\n\t\tbreak;\n\n\tcase kAudioOutputUnitStopSelect:\n\t\t{\n\t\t\tresult = This->Stop();\n\t\t}\n\t\tbreak;\n\n\tdefault:\n\t\tresult = badComponentSelector;\n\t\tbreak;\n\t}\n\t\n\treturn result;\n}\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUOutputBase.h",
    "content": "/*\n     File: AUOutputBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUOutputBase_h__\n#define __AUOutputBase_h__\n\n#include \"AUBase.h\"\n\n// ________________________________________________________________________\n//\tAUOutputBase\n//\tthis is now a mix-in rather than an AUBase subclass\n\n\t/*! @class AUOutputBase */\nclass AUOutputBase {\npublic:\n\t/*! @ctor AUOutputBase */\n\t\t\t\t\t\t\t\tAUOutputBase(AUBase *inBase) : mAUBaseInstance(*inBase) { }\n\tvirtual ~AUOutputBase() { }\n\n\t// additional component entry points\n\t/*! @method Start */\n\tvirtual OSStatus\t\t\tStart() = 0;\n\t\n\t/*! @method Stop */\n\tvirtual OSStatus\t\t\tStop() = 0;\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t// component dispatcher\n\t/*! @method ComponentEntryDispatch */\n\tstatic OSStatus\t\t\tComponentEntryDispatch(\tComponentParameters *\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAUOutputBase *\t\t\t\t\tThis);\n#endif\n\nprivate:\n\t/*! @var mAUBaseInstance */\n\tAUBase &\t\t\t\t\tmAUBaseInstance;\n};\n\n#endif // __AUOutputBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUPannerBase.cpp",
    "content": "/*\n     File: AUPannerBase.cpp\n Abstract: AUPannerBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUPannerBase.h\"\n#include \"CABundleLocker.h\"\n#include <AudioToolbox/AudioToolbox.h>\n#include <Accelerate/Accelerate.h>\n\nstatic bool sLocalized = false;\n\nstatic CFStringRef kPanner_Azimuth_Name = CFSTR(\"azimuth\"); \t\nstatic CFStringRef kPanner_Elevation_Name = CFSTR(\"elevation\"); \t\nstatic CFStringRef kPanner_Distance_Name = CFSTR(\"distance\");\n\nstatic CFStringRef kPanner_CoordScale_Name = CFSTR(\"coordinate scale\"); \t\nstatic CFStringRef kPanner_RefDistance_Name = CFSTR(\"reference distance\"); \t\nstatic CFStringRef kPanner_Gain_Name = CFSTR(\"gain\"); \t\n\nstatic Float32 kPannerParamDefault_Azimuth = 0.;\nstatic Float32 kPannerParamDefault_Elevation = 0.;\nstatic Float32 kPannerParamDefault_Distance = 1.;\n\nstatic Float32 kPannerParamDefault_CoordScale = 10.;\nstatic Float32 kPannerParamDefault_RefDistance = 1.;\nstatic Float32 kPannerParamDefault_Gain = 1.;\n\n//_____________________________________________________________________________\n//\nAUPannerBase::AUPannerBase(AudioComponentInstance inAudioUnit)\n    : AUBase(inAudioUnit, 1, 1), mBypassEffect(false)\n{\n\t{\n\t\tCABundleLocker lock;\n\t\tif (!sLocalized)\n\t\t{\t\t\n\t\t\tCFBundleRef bundle = CFBundleGetBundleWithIdentifier( CFSTR(\"com.apple.audio.units.Components\") );\n\t\t\tif (bundle != NULL)\n\t\t\t{\n\t\t\t\tkPanner_Azimuth_Name \t= CFCopyLocalizedStringFromTableInBundle(kPanner_Azimuth_Name,    CFSTR(\"AudioUnits\"), bundle, CFSTR(\"\"));\n\t\t\t\tkPanner_Elevation_Name \t= CFCopyLocalizedStringFromTableInBundle(kPanner_Elevation_Name,  CFSTR(\"AudioUnits\"), bundle, CFSTR(\"\"));\n\t\t\t\tkPanner_Distance_Name \t= CFCopyLocalizedStringFromTableInBundle(kPanner_Distance_Name,   CFSTR(\"AudioUnits\"), bundle, CFSTR(\"\"));\n\t\t\t\t\n\t\t\t\tkPanner_CoordScale_Name  = CFCopyLocalizedStringFromTableInBundle(kPanner_CoordScale_Name,  CFSTR(\"AudioUnits\"), bundle, CFSTR(\"\"));\n\t\t\t\tkPanner_RefDistance_Name = CFCopyLocalizedStringFromTableInBundle(kPanner_RefDistance_Name, CFSTR(\"AudioUnits\"), bundle, CFSTR(\"\"));\n\t\t\t\tkPanner_Gain_Name \t     = CFCopyLocalizedStringFromTableInBundle(kPanner_Gain_Name,        CFSTR(\"AudioUnits\"), bundle, CFSTR(\"\"));\n\n\t\t\t}\n\t\t\t\n\t\t\tsLocalized = true;\n\t\t}\n\t}\n\t\n\tCreateElements();\n\t\n    SetParameter(kPannerParam_Azimuth, kPannerParamDefault_Azimuth);\n    SetParameter(kPannerParam_Elevation, kPannerParamDefault_Elevation);\n    SetParameter(kPannerParam_Distance, kPannerParamDefault_Distance);\n    \n    SetParameter(kPannerParam_CoordScale, kPannerParamDefault_CoordScale);\n    SetParameter(kPannerParam_RefDistance, kPannerParamDefault_RefDistance);\n    SetParameter(kPannerParam_Gain, kPannerParamDefault_Gain);\n}\n\n//_____________________________________________________________________________\n//\nAUPannerBase::~AUPannerBase()\n{\n    Cleanup();\n}\n\n//_____________________________________________________________________________\n//\n/*! @method Initialize */\nOSStatus\t\t\tAUPannerBase::Initialize()\n{\n\tOSStatus err = noErr;\n\tAllocBypassMatrix();\n\terr = UpdateBypassMatrix();\n\treturn err;\n}\n\n//_____________________________________________________________________________\n//\n/*! @method AllocBypassMatrix */\nvoid\t\tAUPannerBase::AllocBypassMatrix()\n{\n\tUInt32 inChannels = GetNumberOfInputChannels();\n\tUInt32 outChannels = GetNumberOfOutputChannels();\n\tmBypassMatrix.alloc(inChannels * outChannels, true);\n}\n\nstatic AudioChannelLayoutTag DefaultTagForNumberOfChannels(UInt32 inNumberChannels)\n{\n\tswitch (inNumberChannels) {\n\t\tcase 1: return kAudioChannelLayoutTag_Mono; \n\t\tcase 2: return kAudioChannelLayoutTag_Stereo; \n\t\tcase 4: return kAudioChannelLayoutTag_Quadraphonic; \n\t\tcase 5: return kAudioChannelLayoutTag_AudioUnit_5_0; \n\t\tcase 6: return kAudioChannelLayoutTag_AudioUnit_6_0; \n\t\tcase 7: return kAudioChannelLayoutTag_AudioUnit_7_0; \n\t\tcase 8: return kAudioChannelLayoutTag_AudioUnit_8; \n\n\t\tdefault: return 0xFFFF0000 | inNumberChannels;\n\t}\n}\n\n//_____________________________________________________________________________\n//\n/*! @method UpdateBypassMatrix */\nOSStatus\t\t\tAUPannerBase::SetDefaultChannelLayoutsIfNone()\n{\n\tOSStatus err = noErr;\n\t\n\t// if layout has not been set, then guess layout from number of channels\n\tUInt32 inChannels = GetNumberOfInputChannels();\n\tAudioChannelLayout inputLayoutSubstitute;\n\tconst AudioChannelLayout* inputLayout = &GetInputLayout();\n\tif (inputLayout == NULL || inputLayout->mChannelLayoutTag == 0) {\n\t\tinputLayout = &inputLayoutSubstitute;\n\t\tinputLayoutSubstitute.mNumberChannelDescriptions = 0;\n\t\tinputLayoutSubstitute.mChannelBitmap = 0;\n\t\tinputLayoutSubstitute.mChannelLayoutTag = DefaultTagForNumberOfChannels(inChannels);\n\n\t\tmInputLayout = &inputLayoutSubstitute;\n\t\terr = SetAudioChannelLayout(kAudioUnitScope_Input, 0, &GetInputLayout());\n\t\tif (err) return err;\n\t}\n\t\t\n\t// if layout has not been set, then guess layout from number of channels\n\tUInt32 outChannels = GetNumberOfOutputChannels();\n\tAudioChannelLayout outputLayoutSubstitute;\n\tconst AudioChannelLayout* outputLayout = &GetOutputLayout();\n\tif (outputLayout == NULL || outputLayout->mChannelLayoutTag == 0) {\n\t\toutputLayout = &outputLayoutSubstitute;\n\t\toutputLayoutSubstitute.mNumberChannelDescriptions = 0;\n\t\toutputLayoutSubstitute.mChannelBitmap = 0;\n\t\toutputLayoutSubstitute.mChannelLayoutTag = DefaultTagForNumberOfChannels(outChannels);\n\n\t\tmOutputLayout = &outputLayoutSubstitute;\n\t\terr = SetAudioChannelLayout(kAudioUnitScope_Output, 0, &GetOutputLayout());\n\t\tif (err) return err;\n\t}\n\t\n\treturn err;\n}\n\n\n\t\nOSStatus\t\t\tAUPannerBase::UpdateBypassMatrix()\n{\n\tOSStatus err = SetDefaultChannelLayoutsIfNone();\n\tif (err) return err;\n\t\n\tUInt32 inChannels = GetNumberOfInputChannels();\n\tUInt32 outChannels = GetNumberOfOutputChannels();\t\n\t\n\tconst AudioChannelLayout* inoutACL[2];\n\t\n\tinoutACL[0] = &GetInputLayout();\n\tinoutACL[1] = &GetOutputLayout();\n\n\tmBypassMatrix.alloc(inChannels * outChannels, true);\n\t\n\tUInt32 propSize = inChannels * outChannels * sizeof(Float32);\n\t\n\terr = AudioFormatGetProperty(kAudioFormatProperty_MatrixMixMap, sizeof(inoutACL), inoutACL, &propSize, mBypassMatrix());\n\tif (err) {\n\t\t// if there is an error, use a diagonal matrix.\n\t\tFloat32* bypass = mBypassMatrix();\n\t\tfor (UInt32 chan = 0; chan < std::min(inChannels, outChannels); ++chan)\n\t\t{\n\t\t\tfloat *amp = bypass + (chan * outChannels + chan);\n\t\t\t*amp = 1.;\n\t\t}\n\t}\n\n    return noErr;\n}\n\n//_____________________________________________________________________________\n//\n/*! @method Cleanup */\nvoid\t\t\t\tAUPannerBase::Cleanup()\n{\n    \n}\n\n\n//_____________________________________________________________________________\n//\n/*! @method Reset */\nOSStatus\t\t\tAUPannerBase::Reset(\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement)\n{\n    return AUBase::Reset(inScope, inElement);\n}\n\n//_____________________________________________________________________________\n//\n/*! @method GetParameterInfo */\nOSStatus\t\t\tAUPannerBase::GetParameterInfo(\tAudioUnitScope\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\tinParameterID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterInfo\t&outParameterInfo )\n{\n\tOSStatus result = noErr;\n\n\toutParameterInfo.flags = \tkAudioUnitParameterFlag_IsWritable\n\t\t\t\t\t\t+\t\tkAudioUnitParameterFlag_IsReadable;\n\t\t\n\tif (inScope == kAudioUnitScope_Global) {\n\t\t\n\t\tswitch(inParameterID)\n\t\t{\n\t\t\tcase kPannerParam_Azimuth:\n\t\t\t\tAUBase::FillInParameterName (outParameterInfo, kPanner_Azimuth_Name, false);\n\t\t\t\toutParameterInfo.unit = kAudioUnitParameterUnit_Degrees;\n\t\t\t\toutParameterInfo.minValue = -180.;\n\t\t\t\toutParameterInfo.maxValue = 180;\n\t\t\t\toutParameterInfo.defaultValue = kPannerParamDefault_Azimuth;\n\t\t\tbreak;\n\n\t\t\tcase kPannerParam_Elevation:\n\t\t\t\tAUBase::FillInParameterName (outParameterInfo, kPanner_Elevation_Name, false);\n\t\t\t\toutParameterInfo.unit = kAudioUnitParameterUnit_Degrees;\n\t\t\t\toutParameterInfo.minValue = -90.;\n\t\t\t\toutParameterInfo.maxValue = 90;\n\t\t\t\toutParameterInfo.defaultValue = kPannerParamDefault_Elevation;\n\t\t\tbreak;\n\n\t\t\tcase kPannerParam_Distance:\n\t\t\t\tAUBase::FillInParameterName (outParameterInfo, kPanner_Distance_Name, false);\n\t\t\t\toutParameterInfo.unit = kAudioUnitParameterUnit_Generic;\n\t\t\t\toutParameterInfo.minValue = 0.0;\n\t\t\t\toutParameterInfo.maxValue = 1.;\n\t\t\t\toutParameterInfo.defaultValue = kPannerParamDefault_Distance;\n\t\t\t\toutParameterInfo.flags += kAudioUnitParameterFlag_IsHighResolution;\n\t\t\t\t//outParameterInfo.flags += kAudioUnitParameterFlag_DisplayLogarithmic;\n\t\t\tbreak;\n \n \t\t\tcase kPannerParam_CoordScale:\n\t\t\t\tAUBase::FillInParameterName (outParameterInfo, kPanner_CoordScale_Name, false);\n\t\t\t\toutParameterInfo.unit = kAudioUnitParameterUnit_Meters;\n\t\t\t\toutParameterInfo.minValue = 0.01;\n\t\t\t\toutParameterInfo.maxValue = 1000.;\n\t\t\t\toutParameterInfo.defaultValue = kPannerParamDefault_CoordScale;\n\t\t\t\toutParameterInfo.flags += kAudioUnitParameterFlag_DisplayLogarithmic;\n\t\t\tbreak;\n\n \t\t\tcase kPannerParam_RefDistance:\n\t\t\t\tAUBase::FillInParameterName (outParameterInfo, kPanner_RefDistance_Name, false);\n\t\t\t\toutParameterInfo.unit = kAudioUnitParameterUnit_Meters;\n\t\t\t\toutParameterInfo.minValue = 0.01;\n\t\t\t\toutParameterInfo.maxValue = 1000.;\n\t\t\t\toutParameterInfo.defaultValue = kPannerParamDefault_RefDistance;\n\t\t\t\toutParameterInfo.flags += kAudioUnitParameterFlag_DisplayLogarithmic;\n\t\t\tbreak;\n\n\t\t\tcase kPannerParam_Gain:\n\t\t\t\tAUBase::FillInParameterName (outParameterInfo, kPanner_Gain_Name, false);\n\t\t\t\toutParameterInfo.unit = kAudioUnitParameterUnit_Generic;\n\t\t\t\toutParameterInfo.minValue = 0.;\n\t\t\t\toutParameterInfo.maxValue = 1.;\n\t\t\t\toutParameterInfo.defaultValue = kPannerParamDefault_Gain;\n\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tresult = kAudioUnitErr_InvalidParameter;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\tresult = kAudioUnitErr_InvalidParameter;\n\t}\n\t\n\treturn result;\n}\t\t\t\t\t\t\t\t\t\t\t\t\n\n//_____________________________________________________________________________\n//\nOSStatus \tAUPannerBase::GetParameter(\t\tAudioUnitParameterID\t\t\tinParamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32 &\t\t\t\t\t\toutValue)\n{\n\tif (inScope != kAudioUnitScope_Global) \n\t\treturn kAudioUnitErr_InvalidScope;\n\t\t\n\toutValue = Globals()->GetParameter(inParamID);\n\n\treturn noErr;\n}\n\n\t\t\t\t\t\t\t\t\t\t\t\n//_____________________________________________________________________________\n//\nOSStatus \tAUPannerBase::SetParameter(\t\tAudioUnitParameterID\t\t\tinParamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32\t\t\t\t\t\t\tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBufferOffsetInFrames)\n{\n\tif (inScope != kAudioUnitScope_Global) \n\t\treturn kAudioUnitErr_InvalidScope;\n\n\tGlobals()->SetParameter(inParamID, inValue);\n\t\n\treturn noErr;\n}\n\n\n\n//_____________________________________________________________________________\n//\n/*! @method GetPropertyInfo */\nOSStatus\t\t\tAUPannerBase::GetPropertyInfo (AudioUnitPropertyID\tinID,\n\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable)\n{\n\tOSStatus err = noErr;\n\tswitch (inID) {\n\t\tcase kAudioUnitProperty_BypassEffect:\n\t\t\tif (inScope != kAudioUnitScope_Global)\n\t\t\t\treturn kAudioUnitErr_InvalidScope;\n\t\t\t\t\n\t\t\toutWritable = true;\n\t\t\toutDataSize = sizeof (UInt32);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\terr = AUBase::GetPropertyInfo(inID, inScope, inElement, outDataSize, outWritable);\n\t}\n\treturn err;\n}\n\n//_____________________________________________________________________________\n//\n/*! @method GetProperty */\nOSStatus\t\t\tAUPannerBase::GetProperty (AudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t \t\tinElement,\n\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\toutData)\n{\n\tOSStatus err = noErr;\n\tswitch (inID) \n\t{\n\t\tcase kAudioUnitProperty_BypassEffect:\n\t\t\tif (inScope != kAudioUnitScope_Global)\n\t\t\t\treturn kAudioUnitErr_InvalidScope;\n\n\t\t\t*((UInt32*)outData) = (IsBypassEffect() ? 1 : 0);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\terr = AUBase::GetProperty(inID, inScope, inElement, outData);\n\t}\n\treturn err;\n}\n\n//_____________________________________________________________________________\n//\n/*! @method SetProperty */\nOSStatus\t\t\tAUPannerBase::SetProperty(AudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinDataSize)\n{\n\tswitch (inID) \n\t{\n\t\tcase kAudioUnitProperty_BypassEffect:\n\t\t\t\tif (inDataSize < sizeof(UInt32))\n\t\t\t\t\treturn kAudioUnitErr_InvalidPropertyValue;\n\t\t\t\tbool tempNewSetting = *((UInt32*)inData) != 0;\n\t\t\t\t\t// we're changing the state of bypass\n\t\t\t\tif (tempNewSetting != IsBypassEffect()) \n\t\t\t\t{\n\t\t\t\t\tif (!tempNewSetting && IsBypassEffect() && IsInitialized()) // turning bypass off and we're initialized\n\t\t\t\t\t\tReset(0, 0);\n\t\t\t\t\tSetBypassEffect (tempNewSetting);\n\t\t\t\t}\n\t\t\t\treturn noErr;\n\t}\n    return AUBase::SetProperty(inID, inScope, inElement, inData, inDataSize);\n}\n\n\n//_____________________________________________________________________________\n//\n/*! @method StreamFormatWritable */\nbool\t\t\t\tAUPannerBase::StreamFormatWritable (AudioUnitScope\tscope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\telement)\n{\n    return true;\n}\n\n//_____________________________________________________________________________\n//\n/*! @method ChangeStreamFormat */\nOSStatus\t\t\tAUPannerBase::ChangeStreamFormat (\n\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & \tinPrevFormat,\n\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription &\tinNewFormat)\n{\n\tif (inScope == kAudioUnitScope_Input && !InputChannelConfigIsSupported(inNewFormat.NumberChannels())) \n\t\treturn kAudioUnitErr_FormatNotSupported;\n\t\t\n\tif (inScope == kAudioUnitScope_Output && !OutputChannelConfigIsSupported(inNewFormat.NumberChannels())) \n\t\treturn kAudioUnitErr_FormatNotSupported;\n\t\t\n\tif (inNewFormat.NumberChannels() != inPrevFormat.NumberChannels())\n\t\tRemoveAudioChannelLayout(inScope, inElement);\n\t\t\n\treturn AUBase::ChangeStreamFormat(inScope, inElement, inPrevFormat, inNewFormat);\n}\n\n//_____________________________________________________________________________\n//\n/*! @method Render */\nOSStatus \tAUPannerBase::Render(AudioUnitRenderActionFlags &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames)\n{\n\tif (IsBypassEffect()) \n\t\treturn BypassRender(ioActionFlags, inTimeStamp, inNumberFrames);\n\telse \n\t\treturn PannerRender(ioActionFlags, inTimeStamp, inNumberFrames);\n}\n\n//_____________________________________________________________________________\n//\n/*! @method Render */\nOSStatus \tAUPannerBase::BypassRender(AudioUnitRenderActionFlags &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames)\n{\n\tAudioUnitRenderActionFlags xflags = 0;\n\tOSStatus result = PullInput(0, xflags, inTimeStamp, inNumberFrames);\n\tif (result) return false;\n\tbool isSilent = xflags & kAudioUnitRenderAction_OutputIsSilence;\n\n\tAudioBufferList& outputBufferList = GetOutput(0)->GetBufferList();\n\tAUBufferList::ZeroBuffer(outputBufferList);\n\t\n\tif (!isSilent) \n\t{\n\t\tUInt32 inChannels = GetNumberOfInputChannels();\n\t\tUInt32 outChannels = GetNumberOfOutputChannels();\n\t\tFloat32* bypass = mBypassMatrix();\n\t\tfor (UInt32 outChan = 0; outChan < outChannels; ++outChan)\n\t\t{\n\t\t\tfloat* outData = GetOutput(0)->GetChannelData(outChan);\t\n\t\t\t\n\t\t\tfor (UInt32 inChan = 0; inChan < inChannels; ++inChan)\n\t\t\t{\n\t\t\t\tfloat* inData = GetInput(0)->GetChannelData(inChan);\n\t\t\t\tfloat *amp = bypass + (inChan * outChannels + outChan);\n\t\t\t\tvDSP_vsma(inData, 1, amp, outData, 1, outData, 1, inNumberFrames);\n\t\t\t}\n\t\t}\n\t}\n    return noErr;\n}\n\n//_____________________________________________________________________________\n//\nUInt32\t\tAUPannerBase::GetAudioChannelLayout(\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayout *\t\toutLayoutPtr,\n\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable)\n{\t\n\tSetDefaultChannelLayoutsIfNone();\n\t\n\toutWritable = true;\n\t\n\tCAAudioChannelLayout* caacl = NULL;\n\tswitch (inScope) \n\t{\n\t\tcase kAudioUnitScope_Input:\n\t\t\tcaacl = &mInputLayout;\n\t\t\tbreak;\n\t\tcase kAudioUnitScope_Output:\n\t\t\tcaacl = &mOutputLayout;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tCOMPONENT_THROW(kAudioUnitErr_InvalidScope);\n\t}\n\t\n\tif (inElement != 0)\n\t\tCOMPONENT_THROW(kAudioUnitErr_InvalidElement);\n\t\t\n\tUInt32 size = caacl->IsValid() ? caacl->Size() : 0;\n\tif (size > 0 && outLayoutPtr)\n\t\tmemcpy(outLayoutPtr, &caacl->Layout(), size);\n\t\t\n\treturn size;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus\tAUPannerBase::RemoveAudioChannelLayout(\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement)\n{\n\tCAAudioChannelLayout* caacl = NULL;\n\tswitch (inScope) \n\t{\n\t\tcase kAudioUnitScope_Input:\n\t\t\tcaacl = &mInputLayout;\n\t\t\tbreak;\n\t\tcase kAudioUnitScope_Output:\n\t\t\tcaacl = &mOutputLayout;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn kAudioUnitErr_InvalidScope;\n\t}\n\t\n\tif (inElement != 0)\n\t\treturn kAudioUnitErr_InvalidElement;\n\t\n\t*caacl = NULL;\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nOSStatus \tAUPannerBase::SetAudioChannelLayout(\t\tAudioUnitScope \t\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioChannelLayout *\tinLayout)\n{\n\tif (!inLayout)\n\t\treturn RemoveAudioChannelLayout(inScope, inElement);\n\n\tif (!ChannelLayoutTagIsSupported(inScope, inElement, inLayout->mChannelLayoutTag))\n\t\treturn kAudioUnitErr_FormatNotSupported;\n\t\n\tCAAudioChannelLayout* caacl = NULL;\n\tUInt32 currentChannels;\n\tswitch (inScope) \n\t{\n\t\tcase kAudioUnitScope_Input:\n\t\t\tcaacl = &mInputLayout;\n\t\t\tcurrentChannels = GetNumberOfInputChannels();\n\t\t\tbreak;\n\t\tcase kAudioUnitScope_Output:\n\t\t\tcaacl = &mOutputLayout;\n\t\t\tcurrentChannels = GetNumberOfOutputChannels();\n\t\t\tbreak;\n\t\tdefault:\n\t\t\treturn kAudioUnitErr_InvalidScope;\n\t}\n\t\n\tif (inElement != 0)\n\t\treturn kAudioUnitErr_InvalidElement;\n\n\tUInt32 numChannelsInLayout = CAAudioChannelLayout::NumberChannels(*inLayout);\n\tif (currentChannels != numChannelsInLayout)\n\t\treturn kAudioUnitErr_InvalidPropertyValue;\n\t\n\t*caacl = inLayout;\n\tif (IsInitialized())\n\t\tUpdateBypassMatrix();\n\t\t\n\treturn noErr;\n}\n\n//_____________________________________________________________________________\n//\nUInt32 AUPannerBase::GetChannelLayoutTags(\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement, \n\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayoutTag*\t\toutTags)\n{\n\tswitch (inScope) \n\t{\n\t\tcase kAudioUnitScope_Input:\n\t\t\tif (outTags) {\n\t\t\t\toutTags[0] = kAudioChannelLayoutTag_Mono;\n\t\t\t\toutTags[1] = kAudioChannelLayoutTag_Stereo;\n\t\t\t\toutTags[2] = kAudioChannelLayoutTag_Ambisonic_B_Format;\n\t\t\t}\n\t\t\treturn 3;\n\t\tcase kAudioUnitScope_Output:\n\t\t\tif (outTags) {\n\t\t\t\toutTags[0] = kAudioChannelLayoutTag_Stereo;\n\t\t\t\toutTags[1] = kAudioChannelLayoutTag_Quadraphonic;\n\t\t\t\toutTags[2] = kAudioChannelLayoutTag_AudioUnit_5_0;\n\t\t\t\toutTags[3] = kAudioChannelLayoutTag_AudioUnit_6_0;\n\t\t\t\toutTags[4] = kAudioChannelLayoutTag_AudioUnit_7_0;\n\t\t\t\toutTags[5] = kAudioChannelLayoutTag_AudioUnit_7_0_Front;\n\t\t\t\toutTags[6] = kAudioChannelLayoutTag_AudioUnit_8;\n\t\t\t}\n\t\t\treturn 7;\n\t\tdefault: {\n\t\t\tOSStatus err = kAudioUnitErr_InvalidScope;\n\t\t\tthrow err;\n\t\t}\n\t}\n}\n\n\n\n//_____________________________________________________________________________\n//\nbool \tAUPannerBase::ChannelConfigIsSupported()\n{\n\tUInt32 inChannels = GetNumberOfInputChannels();\n\tUInt32 outChannels = GetNumberOfOutputChannels();\n\tconst AUChannelInfo* cinfo = NULL;\n\tUInt32 numConfigs = SupportedNumChannels(&cinfo);\n\tfor (UInt32 i = 0; i < numConfigs; ++i)\n\t{\n\t\tif (cinfo[i].inChannels == (SInt16)inChannels && cinfo[i].outChannels == (SInt16)outChannels)\n\t\t\treturn true;\n\t}\n\treturn false;\n}\n\n\n//_____________________________________________________________________________\n//\nbool \tAUPannerBase::InputChannelConfigIsSupported(UInt32 inNumberChannels)\n{\n\tconst AUChannelInfo* cinfo = NULL;\n\tUInt32 numConfigs = SupportedNumChannels(&cinfo);\n\tfor (UInt32 i = 0; i < numConfigs; ++i)\n\t{\n\t\tif (cinfo[i].inChannels == (SInt16)inNumberChannels)\n\t\t\treturn true;\n\t}\n\treturn false;\n}\n\n//_____________________________________________________________________________\n//\nbool \tAUPannerBase::OutputChannelConfigIsSupported(UInt32 inNumberChannels)\n{\n\tconst AUChannelInfo* cinfo = NULL;\n\tUInt32 numConfigs = SupportedNumChannels(&cinfo);\n\tfor (UInt32 i = 0; i < numConfigs; ++i)\n\t{\n\t\tif (cinfo[i].outChannels == (SInt16)inNumberChannels)\n\t\t\treturn true;\n\t}\n\treturn false;\n}\n\n//_____________________________________________________________________________\n//\nbool \tAUPannerBase::ChannelLayoutTagIsSupported(\t\tAudioUnitScope\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinElement, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayoutTag\tinTag)\n{\n\tUInt32 numTags = GetChannelLayoutTags(inScope, inElement, NULL);\n\tCAAutoFree<AudioChannelLayoutTag> tags(numTags);\n\tGetChannelLayoutTags(inScope, inElement, tags());\n\t\n\tfor (UInt32 i = 0; i < numTags; ++i)\n\t{\n\t\tif (tags[i] == inTag)\n\t\t\treturn true;\n\t}\n\t\n\treturn false;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/AUPannerBase.h",
    "content": "/*\n     File: AUPannerBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUPannerBase_h__\n#define __AUPannerBase_h__\n\n#include \"AUBase.h\"\n#include <math.h>\n#include \"CAAutoDisposer.h\"\n#include \"CAAudioChannelLayout.h\"\n\n\n/*! @class AUPannerBase */\nclass AUPannerBase : public AUBase\n{\npublic:\n/*! @ctor AUPannerBase */\n    AUPannerBase(AudioComponentInstance inAudioUnit);\n/*! @dtor ~AUPannerBase */\n    virtual ~AUPannerBase();\n    \n\t/*! @method Initialize */\n\tvirtual OSStatus\t\t\tInitialize();\n\n\t/*! @method Cleanup */\n\tvirtual void\t\t\t\tCleanup();\n\n\n\t/*! @method Reset */\n\tvirtual OSStatus\t\t\tReset(\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement);\n\n\t/*! @method CanScheduleParameters */\n\tvirtual bool\t\t\t\tCanScheduleParameters() const { return false; }\n\n\t/*! @method GetParameterInfo */\n\tvirtual OSStatus\t\t\tGetParameterInfo(\tAudioUnitScope\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterID\tinParameterID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitParameterInfo\t&outParameterInfo );\n\n\n\t/*! @method GetPropertyInfo */\n\tvirtual OSStatus\t\t\tGetPropertyInfo (AudioUnitPropertyID\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable);\n\n\t/*! @method GetProperty */\n\tvirtual OSStatus\t\t\tGetProperty (AudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t \t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\toutData);\n\n\t/*! @method SetProperty */\n\tvirtual OSStatus\t\t\tSetProperty(AudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinDataSize);\n\n\n\t/*! @method StreamFormatWritable */\n\tvirtual bool\t\t\t\tStreamFormatWritable (AudioUnitScope\tscope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\telement);\n\n\t/*! @method ChangeStreamFormat */\n\tvirtual\tOSStatus\t\t\tChangeStreamFormat (\n\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription & \tinPrevFormat,\n\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription &\tinNewFormat);\n\n\t\n\t/*! @method IsBypassEffect */\n\t// This is used for the property value - to reflect to the UI if an effect is bypassed\n\tbool\t\t\t\t\t\tIsBypassEffect () { return mBypassEffect; }\n\t\t\t\t\t\t\n\t/*! @method SetBypassEffect */\n\tvirtual void\t\t\t\tSetBypassEffect (bool inFlag) { mBypassEffect = inFlag; }\n\t\n\n\t/*! @method Render */\n\tvirtual OSStatus \tRender(AudioUnitRenderActionFlags &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames);\n\n\t/*! @method Render */\n\tvirtual OSStatus \tPannerRender(AudioUnitRenderActionFlags &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames) = 0;\n\n\t/*! @method BypassRender */\n\tvirtual OSStatus \tBypassRender(AudioUnitRenderActionFlags &\t\tioActionFlags,\n\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp &\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames);\n\n\n\t/*! @method GetAudioChannelLayout */\n\tvirtual UInt32\t\t\t\tGetAudioChannelLayout(\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayout *\t\toutLayoutPtr,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable);\n\n\t/*! @method SetAudioChannelLayout */\n\tvirtual OSStatus\t\t\tSetAudioChannelLayout(\tAudioUnitScope \t\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst AudioChannelLayout *\tinLayout);\n\n\t/*! @method RemoveAudioChannelLayout */\n\tvirtual OSStatus\t\t\tRemoveAudioChannelLayout(\tAudioUnitScope\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinElement);\n\n\t/*! @method GetChannelLayoutTags */\n\tvirtual UInt32\t\t\t\tGetChannelLayoutTags(\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayoutTag*\t\toutTags);\n\n\t/*! @method GetNumberOfInputChannels */\n\tUInt32\t\t\t\t\t\tGetNumberOfInputChannels() { return ((AUIOElement*)Inputs().SafeGetElement(0))->NumberChannels(); };\n\t/*! @method GetNumberOfOutputChannels */\n\tUInt32\t\t\t\t\t\tGetNumberOfOutputChannels() { return ((AUIOElement*)Outputs().SafeGetElement(0))->NumberChannels(); }\n\n\t/*! @method GetParameter */\n\tvirtual OSStatus \tGetParameter(\t\t\tAudioUnitParameterID\t\t\tinParamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32 &\t\t\t\t\t\toutValue);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method SetParameter */\n\tvirtual OSStatus \tSetParameter(\t\t\tAudioUnitParameterID\t\t\tinParamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32\t\t\t\t\t\t\tinValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBufferOffsetInFrames);\n\n\t// convenience wrappers for accessing parameters in the global scope\n\t/*! @method SetParameter */\n\tvoid\t\t\t\t\t\tSetParameter(\t\t\tUInt32\t\t\t\t\t\t\tinParamID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tFloat32\t\t\t\t\t\t\tinValue)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tOSStatus err = SetParameter(inParamID, kAudioUnitScope_Global, 0, inValue, 0);\n\t\t\t\t\t\t\t\t\tif (err) throw err;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t/*! @method GetParameter */\n\tFloat32\t\t\t\t\t\tGetParameter(\t\t\tUInt32\t\t\t\t\t\t\tinParamID )\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tFloat32 outValue = 0.;\n\t\t\t\t\t\t\t\t\tOSStatus err = GetParameter(inParamID, kAudioUnitScope_Global, 0, outValue);\n\t\t\t\t\t\t\t\t\tif (err) throw err;\n\t\t\t\t\t\t\t\t\treturn outValue;\n\t\t\t\t\t\t\t\t}\n\n\t/*! @method InputChannelConfigIsSupported */\n\tbool\t\t\t\t\t\tInputChannelConfigIsSupported(UInt32 inNumberChannels);\n\t/*! @method OutputChannelConfigIsSupported */\n\tbool\t\t\t\t\t\tOutputChannelConfigIsSupported(UInt32 inNumberChannels);\n\t/*! @method ChannelConfigIsSupported */\n\tbool\t\t\t\t\t\tChannelConfigIsSupported();\n\n\t/*! @method SupportsTail */\n\tvirtual\tbool\t\t\t\tSupportsTail () { return true; }\n\t/*! @method GetTailTime */\n    virtual Float64\t\t\t\tGetTailTime() { return 0; }\n\n\n\t/*! @method GetGain */\n\tFloat32\t\t\t\t\t\tGetGain()        { return GetParameter(kPannerParam_Gain); }\n\t/*! @method GetTailTime */\n\tFloat32\t\t\t\t\t\tGetAzimuth()     { return GetParameter(kPannerParam_Azimuth); }\n\t/*! @method GetElevation */\n\tFloat32\t\t\t\t\t\tGetElevation()   { return GetParameter(kPannerParam_Elevation); }\n\t/*! @method GetDistance */\n\tFloat32\t\t\t\t\t\tGetDistance()    { return GetParameter(kPannerParam_Distance); }\n\t/*! @method GetCoordScale */\n\tFloat32\t\t\t\t\t\tGetCoordScale()  { return GetParameter(kPannerParam_CoordScale); }\n\t/*! @method GetRefDistance */\n\tFloat32\t\t\t\t\t\tGetRefDistance() { return GetParameter(kPannerParam_RefDistance); }\t                        \t\n\t                        \t\n\t/*! @method SetGain */\n\tvoid\t\t\t\t\t\tSetGain(Float32 inValue)        { SetParameter(kPannerParam_Gain, inValue); }\n\t/*! @method SetAzimuth */\n\tvoid\t\t\t\t\t\tSetAzimuth(Float32 inValue)     { SetParameter(kPannerParam_Azimuth, inValue); }\n\t/*! @method SetElevation */\n\tvoid\t\t\t\t\t\tSetElevation(Float32 inValue)   { SetParameter(kPannerParam_Elevation, inValue); }\n\t/*! @method SetDistance */\n\tvoid\t\t\t\t\t\tSetDistance(Float32 inValue)    { SetParameter(kPannerParam_Distance, inValue); }\n\t/*! @method SetCoordScale */\n\tvoid\t\t\t\t\t\tSetCoordScale(Float32 inValue)  { SetParameter(kPannerParam_CoordScale, inValue); }\n\t/*! @method SetRefDistance */\n\tvoid\t\t\t\t\t\tSetRefDistance(Float32 inValue) { SetParameter(kPannerParam_RefDistance, inValue); }\n\t\nprotected:\n\t/*! @method ShouldBypassEffect */\n\t// This is used in the render call to see if an effect is bypassed\n\t// It can return a different status than IsBypassEffect (though it MUST take that into account)\n\tvirtual\tbool\t\t\t\tShouldBypassEffect () { return IsBypassEffect(); }\n\n\t/*! @method AllocBypassMatrix */\n\tvoid\t\t\t\t\t\tAllocBypassMatrix();\n\n\t/*! @method UpdateBypassMatrix */\n\tOSStatus\t\t\t\t\tUpdateBypassMatrix();\n\n\t/*! @method SetDefaultChannelLayoutsIfNone */\n\tOSStatus\t\t\t\t\tSetDefaultChannelLayoutsIfNone();\n\t\n\t/*! @method ChannelLayoutTagIsSupported */\n\tbool\t\t\t\t\t\tChannelLayoutTagIsSupported(\tAudioUnitScope\t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinElement, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioChannelLayoutTag\tinTag);\n\t\n\tconst AudioChannelLayout&\tGetInputLayout() const { return mInputLayout.Layout(); }\n\tconst AudioChannelLayout&\tGetOutputLayout() const { return mOutputLayout.Layout(); }\n\t\nprivate:\n\t\n\t/*! @var UpdateBypassMatrix */\n\tbool mBypassEffect;\n\t/*! @var mBypassMatrix */\n\tCAAutoFree<Float32> mBypassMatrix;\n\t/*! @var mInputLayout */\n\tCAAudioChannelLayout mInputLayout;\n\t/*! @var mOutputLayout */\n\tCAAudioChannelLayout mOutputLayout;\n};\n\n#endif /* __AUPannerBase_h__ */\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.cpp",
    "content": "/*\n     File: MusicDeviceBase.cpp\n Abstract: MusicDeviceBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"MusicDeviceBase.h\"\n\n// compatibility with older OS SDK releases\ntypedef OSStatus\n(*TEMP_MusicDeviceMIDIEventProc)(\tvoid *\t\t\tinComponentStorage,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\tinStatus,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\tinData1,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\tinData2,\n\t\t\t\t\t\t\tUInt32\t\t\t\t\tinOffsetSampleFrame);\n\ntypedef OSStatus\n(*TEMP_MusicDeviceStartNoteProc)(\tvoid *\t\t\t\tinComponentStorage,\n\t\t\t\t\t\tMusicDeviceInstrumentID\t\t\tinInstrument,\n\t\t\t\t\t\tMusicDeviceGroupID\t\t\t\tinGroupID,\n\t\t\t\t\t\tNoteInstanceID *\t\t\t\toutNoteInstanceID,\n\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\t\t\tconst MusicDeviceNoteParams *\tinParams);\n\ntypedef OSStatus\n(*TEMP_MusicDeviceStopNoteProc)(void *\t\t\t\t\tinComponentStorage,\n\t\t\t\t\t\tMusicDeviceGroupID\t\t\t\tinGroupID,\n\t\t\t\t\t\tNoteInstanceID\t\t\t\t\tinNoteInstanceID,\n\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame);\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\nstatic OSStatus\t\tMusicDeviceBaseMIDIEvent(void *\t\t\tinComponentStorage,\n\t\t\t\t\t\tUInt32\t\t\t\tinStatus,\n\t\t\t\t\t\tUInt32\t\t\t\tinData1,\n\t\t\t\t\t\tUInt32\t\t\t\tinData2,\n\t\t\t\t\t\tUInt32\t\t\t\tinOffsetSampleFrame);\n\nstatic OSStatus\t\tMusicDeviceBaseStartNote(\tvoid *\t\tinComponentStorage,\n\t\t\t\t\t\tMusicDeviceInstrumentID\t\t\tinInstrument,\n\t\t\t\t\t\tMusicDeviceGroupID\t\t\t\tinGroupID,\n\t\t\t\t\t\tNoteInstanceID *\t\t\t\toutNoteInstanceID,\n\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\t\t\tconst MusicDeviceNoteParams *\tinParams);\n\nstatic OSStatus\t\tMusicDeviceBaseStopNote(void *\t\t\tinComponentStorage,\n\t\t\t\t\t\tMusicDeviceGroupID\t\t\t\tinGroupID,\n\t\t\t\t\t\tNoteInstanceID\t\t\t\t\tinNoteInstanceID,\n\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame);\n\n#endif\n\nMusicDeviceBase::MusicDeviceBase(AudioComponentInstance\t\t\tinInstance, \n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tnumInputs,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tnumOutputs,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tnumGroups) \n\t: AUBase(inInstance, numInputs, numOutputs, numGroups),\n\t  AUMIDIBase(this)\n{\n}\n\nOSStatus\t\t\tMusicDeviceBase::GetPropertyInfo(AudioUnitPropertyID\tinID,\n\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\tUInt32 &\t\t\t\toutDataSize,\n\t\t\t\t\t\t\tBoolean &\t\t\t\toutWritable)\n{\n\tOSStatus result;\n\t\n\tswitch (inID) \n\t{\n#if !TARGET_OS_IPHONE\n\t\tcase kMusicDeviceProperty_InstrumentCount:\n\t\t\tif (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope;\n\t\t\toutDataSize = sizeof(UInt32);\n\t\t\toutWritable = false;\n\t\t\tresult = noErr;\n\t\t\tbreak;\n#endif\n\t\tdefault:\n\t\t\tresult = AUBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);\n\t\t\t\n\t\t\tif (result == kAudioUnitErr_InvalidProperty)\n\t\t\t\tresult = AUMIDIBase::DelegateGetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);\n\t\t\tbreak;\n\t}\n\treturn result;\n}\n\nOSStatus\t\t\tMusicDeviceBase::GetProperty(\tAudioUnitPropertyID\t\t\tinID,\n\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\tAudioUnitElement\t\t \tinElement,\n\t\t\t\t\t\t\tvoid *\t\t\t\t\toutData)\n{\n\tOSStatus result;\n\n\tswitch (inID) \n\t{\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t\tcase kAudioUnitProperty_FastDispatch:\n\t\t\tif (!IsCMgrObject()) return kAudioUnitErr_InvalidProperty;\n\t\t\tif (inElement == kMusicDeviceMIDIEventSelect) {\n\t\t\t\t*(TEMP_MusicDeviceMIDIEventProc *)outData = MusicDeviceBaseMIDIEvent;\n\t\t\t\treturn noErr;\n\t\t\t}\n\t\t\telse if (inElement == kMusicDeviceStartNoteSelect) {\n\t\t\t\t*(TEMP_MusicDeviceStartNoteProc *)outData = MusicDeviceBaseStartNote;\n\t\t\t\treturn noErr;\n\t\t\t}\t\n\t\t\telse if (inElement == kMusicDeviceStopNoteSelect) {\n\t\t\t\t*(TEMP_MusicDeviceStopNoteProc *)outData = MusicDeviceBaseStopNote;\n\t\t\t\treturn noErr;\n\t\t\t}\n\t\t\treturn kAudioUnitErr_InvalidElement;\n#endif\n\n#if !TARGET_OS_IPHONE\n\t\tcase kMusicDeviceProperty_InstrumentCount:\n\t\t\tif (inScope != kAudioUnitScope_Global) return kAudioUnitErr_InvalidScope;\n\t\t\treturn GetInstrumentCount (*(UInt32*)outData);\n#endif\n\t\tdefault:\n\t\t\tresult = AUBase::GetProperty (inID, inScope, inElement, outData);\n\t\t\t\n\t\t\tif (result == kAudioUnitErr_InvalidProperty)\n\t\t\t\tresult = AUMIDIBase::DelegateGetProperty (inID, inScope, inElement, outData);\n\t}\n\t\n\treturn result;\n}\n\n\nOSStatus\t\t\tMusicDeviceBase::SetProperty(\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\tAudioUnitElement \t\t\tinElement,\n\t\t\t\t\t\t\tconst void *\t\t\t\tinData,\n\t\t\t\t\t\t\tUInt32 \t\t\t\t\tinDataSize)\n\n{\n\n\tOSStatus result = AUBase::SetProperty (inID, inScope, inElement, inData, inDataSize);\n\t\t\n\tif (result == kAudioUnitErr_InvalidProperty)\n\t\tresult = AUMIDIBase::DelegateSetProperty (inID, inScope, inElement, inData, inDataSize);\n\t\t\n\treturn result;\n}\n\n// For a MusicDevice that doesn't support separate instruments (ie. is mono-timbral)\n// then this call should return an instrument count of zero and noErr\nOSStatus\t\t\tMusicDeviceBase::GetInstrumentCount (UInt32 &outInstCount) const\n{\n\toutInstCount = 0;\n\treturn noErr;\n}\n\nOSStatus\tMusicDeviceBase::HandleNoteOn(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinNoteNumber,\n\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinVelocity,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 \tinStartFrame)\n{\n\tMusicDeviceNoteParams params;\n\tparams.argCount = 2;\n\tparams.mPitch = inNoteNumber;\n\tparams.mVelocity = inVelocity;\n\treturn StartNote (kMusicNoteEvent_UseGroupInstrument, inChannel, NULL, inStartFrame, params);\n}\n\t\t\t\t\t\t\t\t\t\t\t\nOSStatus\tMusicDeviceBase::HandleNoteOff(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinNoteNumber,\n\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinVelocity,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 \tinStartFrame)\n{\n\treturn StopNote (inChannel, inNoteNumber, inStartFrame);\n}\n\nOSStatus\t\t\t\nMusicDeviceBase::HandleStartNoteMessage (MusicDeviceInstrumentID\t\tinInstrument, \n\t\t\t\t\t\t\t\t\t\tMusicDeviceGroupID\t\t\t\tinGroupID, \n\t\t\t\t\t\t\t\t\t\tNoteInstanceID *\t\t\t\toutNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame, \n\t\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams *\tinParams)\n{\n\tif (inParams == NULL || outNoteInstanceID == NULL) return kAudio_ParamError;\n\n\tif (!IsInitialized()) return kAudioUnitErr_Uninitialized;\n\t\n\treturn StartNote (inInstrument, inGroupID, outNoteInstanceID, inOffsetSampleFrame, *inParams);\n}\n\n#if TARGET_OS_MAC\n\t#if __LP64__\n\t\t// comp instance, parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_index + 1];\n\t#else\n\t\t// parameters in reverse order, then comp instance\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_nparams - 1 - _index];\n\t#endif\n#elif TARGET_OS_WIN32\n\t\t// (no comp instance), parameters in forward order\n\t\t#define PARAM(_typ, _name, _index, _nparams) \\\n\t\t\t_typ _name = *(_typ *)&params->params[_index];\n#endif\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\nOSStatus\t\t\tMusicDeviceBase::ComponentEntryDispatch(\tComponentParameters *\t\tparams,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tMusicDeviceBase *\t\t\tThis)\n{\n\tif (This == NULL) return kAudio_ParamError;\n\n\tOSStatus result;\n\t\n\tswitch (params->what) {\n\tcase kMusicDeviceMIDIEventSelect:\n\tcase kMusicDeviceSysExSelect:\n\t\t{\n\t\t\tresult = AUMIDIBase::ComponentEntryDispatch (params, This);\n\t\t}\n\t\tbreak;\n\tcase kMusicDevicePrepareInstrumentSelect:\n\t\t{\n\t\t\tPARAM(MusicDeviceInstrumentID, inInstrument, 0, 1);\n\t\t\tresult = This->PrepareInstrument(inInstrument);\n\t\t}\n\t\tbreak;\n\tcase kMusicDeviceReleaseInstrumentSelect:\n\t\t{\n\t\t\tPARAM(MusicDeviceInstrumentID, inInstrument, 0, 1);\n\t\t\tresult = This->ReleaseInstrument(inInstrument);\n\t\t}\n\t\tbreak;\n\tcase kMusicDeviceStartNoteSelect:\n\t\t{\n\t\t\tPARAM(MusicDeviceInstrumentID, pbinInstrument, 0, 5);\n\t\t\tPARAM(MusicDeviceGroupID, pbinGroupID, 1, 5);\n\t\t\tPARAM(NoteInstanceID *, pboutNoteInstanceID, 2, 5);\n\t\t\tPARAM(UInt32, pbinOffsetSampleFrame, 3, 5);\n\t\t\tPARAM(const MusicDeviceNoteParams *, pbinParams, 4, 5);\n\t\t\tresult = This->HandleStartNoteMessage(pbinInstrument, pbinGroupID, pboutNoteInstanceID, pbinOffsetSampleFrame, pbinParams);\n\t\t}\n\t\tbreak;\n\tcase kMusicDeviceStopNoteSelect:\n\t\t{\n\t\t\tPARAM(MusicDeviceGroupID, pbinGroupID, 0, 3);\n\t\t\tPARAM(NoteInstanceID, pbinNoteInstanceID, 1, 3);\n\t\t\tPARAM(UInt32, pbinOffsetSampleFrame, 2, 3);\n\t\t\tresult = This->StopNote(pbinGroupID, pbinNoteInstanceID, pbinOffsetSampleFrame);\n\t\t}\n\t\tbreak;\n\n\tdefault:\n\t\tresult = AUBase::ComponentEntryDispatch(params, This);\n\t\tbreak;\n\t}\n\t\n\treturn result;\n}\n#endif\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\n// fast dispatch\nstatic OSStatus\t\tMusicDeviceBaseMIDIEvent(void *\t\t\t\t\tinComponentStorage,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinStatus,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinData1,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinData2,\n\t\t\t\t\t\tUInt32\t\t\t\t\tinOffsetSampleFrame)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tMusicDeviceBase *This = static_cast<MusicDeviceBase *>(inComponentStorage);\n\t\tif (This == NULL) return kAudio_ParamError;\n\t\tresult = This->MIDIEvent(inStatus, inData1, inData2, inOffsetSampleFrame);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nOSStatus\t\tMusicDeviceBaseStartNote(\tvoid *\t\tinComponentStorage,\n\t\t\t\t\t\tMusicDeviceInstrumentID\t\t\tinInstrument,\n\t\t\t\t\t\tMusicDeviceGroupID\t\t\t\tinGroupID,\n\t\t\t\t\t\tNoteInstanceID *\t\t\t\toutNoteInstanceID,\n\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\t\t\tconst MusicDeviceNoteParams *\tinParams)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tif (inParams == NULL || outNoteInstanceID == NULL) return kAudio_ParamError;\n\t\tMusicDeviceBase *This = static_cast<MusicDeviceBase *>(inComponentStorage);\n\t\tif (This == NULL) return kAudio_ParamError;\n\t\tresult = This->StartNote(inInstrument, inGroupID, outNoteInstanceID, inOffsetSampleFrame, *inParams);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\nOSStatus\t\tMusicDeviceBaseStopNote(void *\t\t\tinComponentStorage,\n\t\t\t\t\t\tMusicDeviceGroupID\t\t\t\tinGroupID,\n\t\t\t\t\t\tNoteInstanceID\t\t\t\t\tinNoteInstanceID,\n\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinOffsetSampleFrame)\n{\n\tOSStatus result = noErr;\n\ttry {\n\t\tMusicDeviceBase *This = static_cast<MusicDeviceBase *>(inComponentStorage);\n\t\tif (This == NULL) return kAudio_ParamError;\n\t\tresult = This->StopNote(inGroupID, inNoteInstanceID, inOffsetSampleFrame);\n\t}\n\tCOMPONENT_CATCH\n\treturn result;\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/OtherBases/MusicDeviceBase.h",
    "content": "/*\n     File: MusicDeviceBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __MusicDeviceBase_h__\n#define __MusicDeviceBase_h__\n\n#include \"AUMIDIBase.h\"\n\n// ________________________________________________________________________\n//\tMusicDeviceBase\n//\n\n/*! @class MusicDeviceBase */\nclass MusicDeviceBase : public AUBase, public AUMIDIBase {\npublic:\n\t/*! @ctor MusicDeviceBase */\n\t\t\t\t\t\t\t\tMusicDeviceBase(\t\tAudioComponentInstance\t\t\tinInstance, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumInputs,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumOutputs,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tnumGroups = 0);\n\n\n\tvirtual OSStatus\tMIDIEvent(\t\tUInt32 \t\t\t\t\t\tinStatus, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinData1, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinData2, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinOffsetSampleFrame)\n\t{\n\t\treturn AUMIDIBase::MIDIEvent (inStatus, inData1, inData2, inOffsetSampleFrame);\n\t}\n\n\t/*! @method SysEx */\n\tvirtual OSStatus\tSysEx(\t\t\tconst UInt8 *\t\t\t\tinData, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\tinLength) \n\t{\n\t\treturn AUMIDIBase::SysEx (inData, inLength);\n\t}\n\n\t/*! @method GetPropertyInfo */\n\tvirtual OSStatus\t\t\tGetPropertyInfo(AudioUnitPropertyID\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\toutDataSize,\n\t\t\t\t\t\t\t\t\t\t\t\tBoolean &\t\t\t\t\toutWritable);\n\n\t/*! @method GetProperty */\n\tvirtual OSStatus\t\t\tGetProperty(\tAudioUnitPropertyID \t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t \tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\toutData);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method SetProperty */\n\tvirtual OSStatus\t\t\tSetProperty(\t\t\tAudioUnitPropertyID \t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitScope \t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinElement,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tconst void *\t\t\t\t\tinData,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\tinDataSize);\n\n\t/*! @method HandleNoteOn */\n\tvirtual OSStatus\t\t\tHandleNoteOn(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinNoteNumber,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinVelocity,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \tinStartFrame);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t/*! @method HandleNoteOff */\n\tvirtual OSStatus\t\t\tHandleNoteOff(\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinNoteNumber,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinVelocity,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \tinStartFrame);\n\n\t/*! @method GetInstrumentCount */\n\tvirtual OSStatus\t\t\tGetInstrumentCount (\tUInt32 &outInstCount) const;\n\n#if !CA_USE_AUDIO_PLUGIN_ONLY\n\t// component dispatcher\n\t/*! @method ComponentEntryDispatch */\n\tstatic OSStatus\t\t\tComponentEntryDispatch(\tComponentParameters *\t\t\tparams,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tMusicDeviceBase *\t\t\t\tThis);\n#endif\nprivate:\n\tOSStatus\t\t\t\tHandleStartNoteMessage (MusicDeviceInstrumentID inInstrument, MusicDeviceGroupID inGroupID, NoteInstanceID *outNoteInstanceID, UInt32 inOffsetSampleFrame, const MusicDeviceNoteParams *inParams);\n};\n\n#endif // __MusicDeviceBase_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.cpp",
    "content": "/*\n     File: AUBaseHelper.cpp\n Abstract: AUBaseHelper.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUBaseHelper.h\"\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnitProperties.h>\n#else\n\t#include <AudioUnitProperties.h>\n#endif\n\nOSStatus\tGetFileRefPath (CFDictionaryRef parent, CFStringRef frKey, CFStringRef * fPath)\n{\t\n\tstatic CFStringRef kFRString = CFSTR (kAUPresetExternalFileRefs);\n\t\n\tconst void* frVal = CFDictionaryGetValue(parent, kFRString);\n\tif (!frVal) return kAudioUnitErr_InvalidPropertyValue;\n\n\tconst void* frString = CFDictionaryGetValue ((CFDictionaryRef)frVal, frKey);\n\tif (!frString) return kAudioUnitErr_InvalidPropertyValue;\n\t\t\n\tif (fPath)\n\t\t*fPath = (CFStringRef)frString;\n\t\n\treturn noErr;\n}\n\nCFMutableDictionaryRef CreateFileRefDict (CFStringRef fKey, CFStringRef fPath, CFMutableDictionaryRef fileRefDict)\n{\n\tif (!fileRefDict)\n\t\tfileRefDict = CFDictionaryCreateMutable\t(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\n\tCFDictionarySetValue (fileRefDict, fKey, fPath);\n\t\n\treturn fileRefDict;\n}\n\n#if TARGET_OS_MAC\n// check if the URL can be accessed for reading/writing.  Returns 0 if yes, or the error value.\nint AccessURLAsset(const CFURLRef inURL, int mode)\n{\n    char path[PATH_MAX];\n    if (CFURLGetFileSystemRepresentation(inURL, TRUE, (UInt8 *)path, PATH_MAX) == FALSE)\n\t\treturn kAudio_FileNotFoundError;\n\t// check whether we have access\n\tint ret = access(path, mode);\n//\tsyslog(LOG_CRIT, \"access() error is %d for \\\"%s\\\".\\n\", ret, path);\n\tif (ret == 0) return 0;\n\tswitch (errno) {\n\t\tcase EACCES:\n\t\tcase EPERM:\n\t\t\treturn -54;\t/*permission denied error*/\n\t\tcase ENOENT:\n\t\tcase ENOTDIR:\n\t\tcase ELOOP:\n\t\t\treturn kAudio_FileNotFoundError;\n\t\tdefault:\n\t\t\treturn errno;\n\t}\n}\n#endif\n\n#if DEBUG\n//_____________________________________________________________________________\n//\nvoid PrintAUParamEvent (AudioUnitParameterEvent& event, FILE* f)\n{\n\t\tbool isRamp = event.eventType == kParameterEvent_Ramped;\n\t\tfprintf (f, \"\\tParamID=%ld,Scope=%ld,Element=%ld\\n\", (long)event.parameter, (long)event.scope, (long)event.element);\n\t\tfprintf (f, \"\\tEvent Type:%s,\", (isRamp ? \"ramp\" : \"immediate\"));\n\t\tif (isRamp)\n\t\t\tfprintf (f, \"start=%ld,dur=%ld,startValue=%f,endValue=%f\\n\",\n\t\t\t\t\t(long)event.eventValues.ramp.startBufferOffset, (long)event.eventValues.ramp.durationInFrames, \n\t\t\t\t\tevent.eventValues.ramp.startValue, event.eventValues.ramp.endValue);\n\t\telse\n\t\t\tfprintf (f, \"start=%ld,value=%f\\n\", \n\t\t\t\t\t(long)event.eventValues.immediate.bufferOffset, \n\t\t\t\t\tevent.eventValues.immediate.value);\n\t\tfprintf (f, \"- - - - - - - - - - - - - - - -\\n\");\n}\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.h",
    "content": "/*\n     File: AUBaseHelper.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUBaseHelper_h__\n#define __AUBaseHelper_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CoreFoundation.h>\n\t#include <AudioUnit/AUComponent.h>\n#else\n\t#include <CoreFoundation.h>\n\t#include <AUComponent.h>\n#endif\n\n#include \"AUBase.h\"\n\n// helpers for dealing with the file-references dictionary in an AUPreset\nOSStatus GetFileRefPath (CFDictionaryRef parent, CFStringRef frKey, CFStringRef * fPath);\n\n// if fileRefDict is NULL, this call creates one\n// if not NULL, then the key value is added to it\nCFMutableDictionaryRef CreateFileRefDict (CFStringRef fKey, CFStringRef fPath, CFMutableDictionaryRef fileRefDict);\n\nint AccessURLAsset(const CFURLRef inURL, int mode);\n\n#if DEBUG\n\tvoid PrintAUParamEvent (AudioUnitParameterEvent& event, FILE* f);\n#endif\n\n\n\n#endif // __AUBaseHelper_h__"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.cpp",
    "content": "/*\n     File: AUBuffer.cpp\n Abstract: AUBuffer.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUBuffer.h\"\n#include <stdlib.h>\n\nAUBufferList::~AUBufferList()\n{\n\tDeallocate();\n\tif (mPtrs)\n\t\tfree(mPtrs);\n}\n\n// a * b + c\nstatic UInt32 SafeMultiplyAddUInt32(UInt32 a, UInt32 b, UInt32 c)\n{\n\tif (a == 0 || b == 0) return c;  // prevent zero divide\n\t\n\tif (a > (0xFFFFFFFF - c) / b)\n\t\tthrow std::bad_alloc();\n\t\n\treturn a * b + c;\n}\n\nvoid\t\t\t\tAUBufferList::Allocate(const CAStreamBasicDescription &format, UInt32 nFrames)\n{\n\tUInt32 nStreams;\n\tif (format.IsInterleaved()) {\n\t\tnStreams = 1;\n\t} else {\n\t\tnStreams = format.mChannelsPerFrame;\n\t}\n\n\t// careful -- the I/O thread could be running!\n\tif (nStreams > mAllocatedStreams) {\n\t\tsize_t theHeaderSize = sizeof(AudioBufferList) - sizeof(AudioBuffer);\n\t\tmPtrs = (AudioBufferList *)CA_realloc(mPtrs,\n\t\t\t\t\t\t\t\t\tSafeMultiplyAddUInt32(nStreams, sizeof(AudioBuffer), theHeaderSize));\n\t\tmAllocatedStreams = nStreams;\n\t}\n\tUInt32 bytesPerStream = SafeMultiplyAddUInt32(nFrames, format.mBytesPerFrame, 0xF) & ~0xF;\n\tUInt32 nBytes = SafeMultiplyAddUInt32(nStreams, bytesPerStream, 0);\n\tif (nBytes > mAllocatedBytes) {\n\t\tif (mExternalMemory) {\n\t\t\tmExternalMemory = false;\n\t\t\tmMemory = NULL;\n\t\t}\n\t\tmMemory = (Byte *)CA_realloc(mMemory, nBytes);\n\t\tmAllocatedBytes = nBytes;\n\t}\n\tmAllocatedFrames = nFrames;\n\tmPtrState = kPtrsInvalid;\n}\n\nvoid\t\t\t\tAUBufferList::Deallocate()\n{\n\tmAllocatedStreams = 0;\n\tmAllocatedFrames = 0;\n\tmAllocatedBytes = 0;\n// this causes a world of hurt if someone upstream disconnects during I/O (SysSoundGraph)\n/*\tif (mPtrs) {\n\t\tprintf(\"deallocating bufferlist %08X\\n\", int(mPtrs));\n\t\tfree(mPtrs);\n\t\tmPtrs = NULL;\n\t} */\n\tif (mMemory) {\n\t\tif (mExternalMemory)\n\t\t\tmExternalMemory = false;\n\t\telse\n\t\t\tfree(mMemory);\n\t\tmMemory = NULL;\n\t}\n\tmPtrState = kPtrsInvalid;\n}\n\nAudioBufferList &\tAUBufferList::PrepareBuffer(const CAStreamBasicDescription &format, UInt32 nFrames)\n{\n\tif (nFrames > mAllocatedFrames)\n\t\tCOMPONENT_THROW(kAudioUnitErr_TooManyFramesToProcess);\n\n\tUInt32 nStreams;\n\tUInt32 channelsPerStream;\n\tif (format.IsInterleaved()) {\n\t\tnStreams = 1;\n\t\tchannelsPerStream = format.mChannelsPerFrame;\n\t} else {\n\t\tnStreams = format.mChannelsPerFrame;\n\t\tchannelsPerStream = 1;\n\t\tif (nStreams > mAllocatedStreams)\n\t\t\tCOMPONENT_THROW(kAudioUnitErr_FormatNotSupported);\n\t}\n\t\n\tAudioBufferList *abl = mPtrs;\n\tabl->mNumberBuffers = nStreams;\n\tAudioBuffer *buf = abl->mBuffers;\n\tByte *mem = mMemory;\n\tUInt32 streamInterval = (mAllocatedFrames * format.mBytesPerFrame + 0xF) & ~0xF;\n\tUInt32 bytesPerBuffer = nFrames * format.mBytesPerFrame;\n\tfor ( ; nStreams--; ++buf) {\n\t\tbuf->mNumberChannels = channelsPerStream;\n\t\tbuf->mData = mem;\n\t\tbuf->mDataByteSize = bytesPerBuffer;\n\t\tmem += streamInterval;\n\t}\n\tif (UInt32(mem - mMemory) > mAllocatedBytes)\n\t\tCOMPONENT_THROW(kAudioUnitErr_TooManyFramesToProcess);\n\tmPtrState = kPtrsToMyMemory;\n\treturn *mPtrs;\n}\n\nAudioBufferList &\tAUBufferList::PrepareNullBuffer(const CAStreamBasicDescription &format, UInt32 nFrames)\n{\n\tUInt32 nStreams;\n\tUInt32 channelsPerStream;\n\tif (format.IsInterleaved()) {\n\t\tnStreams = 1;\n\t\tchannelsPerStream = format.mChannelsPerFrame;\n\t} else {\n\t\tnStreams = format.mChannelsPerFrame;\n\t\tchannelsPerStream = 1;\n\t\tif (nStreams > mAllocatedStreams)\n\t\t\tCOMPONENT_THROW(kAudioUnitErr_FormatNotSupported);\n\t}\n\tAudioBufferList *abl = mPtrs;\n\tabl->mNumberBuffers = nStreams;\n\tAudioBuffer *buf = abl->mBuffers;\n\tUInt32 bytesPerBuffer = nFrames * format.mBytesPerFrame;\n\tfor ( ; nStreams--; ++buf) {\n\t\tbuf->mNumberChannels = channelsPerStream;\n\t\tbuf->mData = NULL;\n\t\tbuf->mDataByteSize = bytesPerBuffer;\n\t}\n\tmPtrState = kPtrsToExternalMemory;\n\treturn *mPtrs;\n}\n\n// this should NOT be called while I/O is in process\nvoid\t\tAUBufferList::UseExternalBuffer(const CAStreamBasicDescription &format, const AudioUnitExternalBuffer &buf)\n{\n\tUInt32 alignedSize = buf.size & ~0xF;\n\tif (mMemory != NULL && alignedSize >= mAllocatedBytes) {\n\t\t// don't accept the buffer if we already have one and it's big enough\n\t\t// if we don't already have one, we don't need one\n\t\tByte *oldMemory = mMemory;\n\t\tmMemory = buf.buffer;\n\t\tmAllocatedBytes = alignedSize;\n\t\t// from Allocate(): nBytes = nStreams * nFrames * format.mBytesPerFrame;\t\n\t\t// thus: nFrames = nBytes / (nStreams * format.mBytesPerFrame)\n\t\tmAllocatedFrames = mAllocatedBytes / (format.NumberChannelStreams() * format.mBytesPerFrame);\n\t\tmExternalMemory = true;\n\t\tfree(oldMemory);\n\t}\n}\n\n#if DEBUG\nvoid\tAUBufferList::PrintBuffer(const char *label, int subscript, const AudioBufferList &abl, UInt32 nFrames, bool asFloats)\n{\n\tprintf(\"  %s [%d] 0x%08lX:\\n\", label, subscript, long(&abl));\n\tconst AudioBuffer *buf = abl.mBuffers;\n\tfor (UInt32 i = 0; i < abl.mNumberBuffers; ++buf, ++i) {\n\t\tprintf(\"      [%2d] %5dbytes %dch @ %p: \", (int)i, (int)buf->mDataByteSize, (int)buf->mNumberChannels, buf->mData);\n\t\tif (buf->mData != NULL) {\n\t\t\tUInt32 nSamples = nFrames * buf->mNumberChannels;\n\t\t\tfor (UInt32 j = 0; j < nSamples; ++j) {\n\t\t\t\tif (nSamples > 16 && (j % 16) == 0)\n\t\t\t\t\tprintf(\"\\n\\t\");\n\t\t\t\tif (asFloats)\n\t\t\t\t\tprintf(\" %6.3f\", ((float *)buf->mData)[j]);\n\t\t\t\telse\n\t\t\t\t\tprintf(\" %08X\", (unsigned)((UInt32 *)buf->mData)[j]);\n\t\t\t}\n\t\t}\n\t\tprintf(\"\\n\");\n\t}\n}\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUBuffer.h",
    "content": "/*\n     File: AUBuffer.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUBuffer_h__\n#define __AUBuffer_h__\n\n#include <TargetConditionals.h>\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnit.h>\n#else\n\t#include <AudioUnit.h>\n#endif\n\n#include <string.h>\n#include \"CAStreamBasicDescription.h\"\n#include \"CAAutoDisposer.h\"\n#include \"CADebugMacros.h\"\n\n// make this usable outside the stricter context of AudiUnits\n#ifndef COMPONENT_THROW\n\t#define COMPONENT_THROW(err) \\\n\t\tdo { DebugMessage(#err); throw static_cast<OSStatus>(err); } while (0)\n#endif\n\n\n\t/*! @class AUBufferList */\nclass AUBufferList {\n\tenum EPtrState {\n\t\tkPtrsInvalid,\n\t\tkPtrsToMyMemory,\n\t\tkPtrsToExternalMemory\n\t};\npublic:\n\t/*! @ctor AUBufferList */\n\tAUBufferList() : mPtrState(kPtrsInvalid), mExternalMemory(false), mPtrs(NULL), mMemory(NULL), \n\t\tmAllocatedStreams(0), mAllocatedFrames(0), mAllocatedBytes(0) { }\n\t/*! @dtor ~AUBufferList */\n\t~AUBufferList();\n\n\t/*! @method PrepareBuffer */\n\tAudioBufferList &\tPrepareBuffer(const CAStreamBasicDescription &format, UInt32 nFrames);\n\t/*! @method PrepareNullBuffer */\n\tAudioBufferList &\tPrepareNullBuffer(const CAStreamBasicDescription &format, UInt32 nFrames);\n\n\t/*! @method SetBufferList */\n\tAudioBufferList &\tSetBufferList(const AudioBufferList &abl) {\n\t\t\t\t\t\t\tif (mAllocatedStreams < abl.mNumberBuffers)\n\t\t\t\t\t\t\t\tCOMPONENT_THROW(-1);\n\t\t\t\t\t\t\tmPtrState = kPtrsToExternalMemory;\n\t\t\t\t\t\t\tmemcpy(mPtrs, &abl, (char *)&abl.mBuffers[abl.mNumberBuffers] - (char *)&abl);\n\t\t\t\t\t\t\treturn *mPtrs;\n\t\t\t\t\t\t}\n\t\n\t/*! @method SetBuffer */\n\tvoid\t\t\t\tSetBuffer(UInt32 index, const AudioBuffer &ab) {\n\t\t\t\t\t\t\tif (mPtrState == kPtrsInvalid || index >= mPtrs->mNumberBuffers)\n\t\t\t\t\t\t\t\tCOMPONENT_THROW(-1);\n\t\t\t\t\t\t\tmPtrState = kPtrsToExternalMemory;\n\t\t\t\t\t\t\tmPtrs->mBuffers[index] = ab;\n\t\t\t\t\t\t}\n\n\t/*! @method InvalidateBufferList */\n\tvoid\t\t\t\tInvalidateBufferList() { mPtrState = kPtrsInvalid; }\n\n\t/*! @method GetBufferList */\n\tAudioBufferList &\tGetBufferList() const {\n\t\t\t\t\t\t\tif (mPtrState == kPtrsInvalid)\n\t\t\t\t\t\t\t\tCOMPONENT_THROW(-1);\n\t\t\t\t\t\t\treturn *mPtrs;\n\t\t\t\t\t\t}\n\n\t/*! @method CopyBufferListTo */\n\tvoid\t\t\t\tCopyBufferListTo(AudioBufferList &abl) const {\n\t\t\t\t\t\t\tif (mPtrState == kPtrsInvalid)\n\t\t\t\t\t\t\t\tCOMPONENT_THROW(-1);\n\t\t\t\t\t\t\tmemcpy(&abl, mPtrs, (char *)&abl.mBuffers[abl.mNumberBuffers] - (char *)&abl);\n\t\t\t\t\t\t}\n\t\n\t/*! @method CopyBufferContentsTo */\n\tvoid\t\t\t\tCopyBufferContentsTo(AudioBufferList &abl) const {\n\t\t\t\t\t\t\tif (mPtrState == kPtrsInvalid)\n\t\t\t\t\t\t\t\tCOMPONENT_THROW(-1);\n\t\t\t\t\t\t\tconst AudioBuffer *srcbuf = mPtrs->mBuffers;\n\t\t\t\t\t\t\tAudioBuffer *destbuf = abl.mBuffers;\n\n\t\t\t\t\t\t\tfor (UInt32 i = 0; i < abl.mNumberBuffers; ++i, ++srcbuf, ++destbuf) {\n\t\t\t\t\t\t\t\tif (i >= mPtrs->mNumberBuffers) // duplicate last source to additional outputs [4341137]\n\t\t\t\t\t\t\t\t\t--srcbuf;\n\t\t\t\t\t\t\t\tif (destbuf->mData != srcbuf->mData)\n\t\t\t\t\t\t\t\t\tmemmove(destbuf->mData, srcbuf->mData, srcbuf->mDataByteSize);\n\t\t\t\t\t\t\t\tdestbuf->mDataByteSize = srcbuf->mDataByteSize;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\n\t/*! @method Allocate */\n\tvoid\t\t\t\tAllocate(const CAStreamBasicDescription &format, UInt32 nFrames);\n\t/*! @method Deallocate */\n\tvoid\t\t\t\tDeallocate();\n\t\n\t/*! @method UseExternalBuffer */\n\tvoid\t\t\t\tUseExternalBuffer(const CAStreamBasicDescription &format, const AudioUnitExternalBuffer &buf);\n\n\t// AudioBufferList utilities\n\t/*! @method ZeroBuffer */\n\tstatic void\t\t\tZeroBuffer(AudioBufferList &abl) {\n\t\t\t\t\t\t\tAudioBuffer *buf = abl.mBuffers;\n\t\t\t\t\t\t\tfor (UInt32 i = abl.mNumberBuffers ; i--; ++buf)\n\t\t\t\t\t\t\t\tmemset(buf->mData, 0, buf->mDataByteSize);\n\t\t\t\t\t\t}\n#if DEBUG\n\t/*! @method PrintBuffer */\n\tstatic void\t\t\tPrintBuffer(const char *label, int subscript, const AudioBufferList &abl, UInt32 nFrames = 8, bool asFloats = true);\n#endif\n\n\t/*! @method GetAllocatedFrames */\n\tUInt32\t\t\t\tGetAllocatedFrames() const { return mAllocatedFrames; }\n\t\nprivate:\n\t/*! @ctor AUBufferList */\n\tAUBufferList(AUBufferList &) { }\t// prohibit copy constructor\n\n\t/*! @var mPtrState */\n\tEPtrState\t\t\t\t\tmPtrState;\n\t/*! @var mExternalMemory */\n\tbool\t\t\t\t\t\tmExternalMemory;\n\t/*! @var mPtrs */\n\tAudioBufferList *\t\t\tmPtrs;\n\t/*! @var mMemory */\n\tByte *\t\t\t\t\t\tmMemory;\n\t/*! @var mAllocatedStreams */\n\tUInt32\t\t\t\t\t\tmAllocatedStreams;\n\t/*! @var mAllocatedFrames */\n\tUInt32\t\t\t\t\t\tmAllocatedFrames;\n\t/*! @var mAllocatedBytes */\n\tUInt32\t\t\t\t\t\tmAllocatedBytes;\n};\n\n\n// Allocates an array of samples (type T), to be optimally aligned for the processor\n\t/*! @class TAUBuffer */\ntemplate <class T>\nclass TAUBuffer {\npublic:\n\tenum { \n\t\tkAlignInterval = 0x10,\n\t\tkAlignMask = kAlignInterval - 1\n\t};\n\t\n\t/*! @ctor TAUBuffer.0 */\n\tTAUBuffer() :\tmMemObject(NULL), mAlignedBuffer(NULL), mBufferSizeBytes(0)\n\t{\n\t}\n\t\n\t/*! @ctor TAUBuffer.1 */\n\tTAUBuffer(UInt32 numElems, UInt32 numChannels) :\tmMemObject(NULL), mAlignedBuffer(NULL),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmBufferSizeBytes(0)\n\t{\n\t\tAllocate(numElems, numChannels);\n\t}\n\t\n\t/*! @dtor ~TAUBuffer */\n\t~TAUBuffer()\n\t{\n\t\tDeallocate();\n\t}\n\t\t\n\t/*! @method Allocate */\n\tvoid\tAllocate(UInt32 numElems)\t\t\t// can also re-allocate\n\t{\n\t\tUInt32 reqSize = numElems * sizeof(T);\n\t\t\n\t\tif (mMemObject != NULL && reqSize == mBufferSizeBytes)\n\t\t\treturn;\t// already allocated\n\n\t\tmBufferSizeBytes = reqSize;\n\t\tmMemObject = CA_realloc(mMemObject, reqSize);\n\t\tUInt32 misalign = (uintptr_t)mMemObject & kAlignMask;\n\t\tif (misalign) {\n\t\t\tmMemObject = CA_realloc(mMemObject, reqSize + kAlignMask);\n\t\t\tmAlignedBuffer = (T *)((char *)mMemObject + kAlignInterval - misalign);\n\t\t} else\n\t\t\tmAlignedBuffer = (T *)mMemObject;\n\t}\n\n\t/*! @method Deallocate */\n\tvoid\tDeallocate()\n\t{\n\t\tif (mMemObject == NULL) return;\t\t\t// so this method has no effect if we're using\n\t\t\t\t\t\t\t\t\t\t\t\t// an external buffer\n\t\t\n\t\tfree(mMemObject);\n\t\tmMemObject = NULL;\n\t\tmAlignedBuffer = NULL;\n\t\tmBufferSizeBytes = 0;\n\t}\n\t\n\t/*! @method AllocateClear */\n\tvoid\tAllocateClear(UInt32 numElems)\t\t// can also re-allocate\n\t{\n\t\tAllocate(numElems);\n\t\tClear();\n\t}\n\t\n\t/*! @method Clear */\n\tvoid\tClear()\n\t{\n\t\tmemset(mAlignedBuffer, 0, mBufferSizeBytes);\n\t}\n\t\n\t// accessors\n\t\n\t/*! @method operator T *()@ */\n\toperator T *()\t\t\t\t{ return mAlignedBuffer; }\n\nprivate:\n\t/*! @var mMemObject */\n\tvoid *\t\tmMemObject;\t\t\t// null when using an external buffer\n\t/*! @var mAlignedBuffer */\n\tT *\t\t\tmAlignedBuffer;\t\t// always valid once allocated\n\t/*! @var mBufferSizeBytes */\n\tUInt32\t\tmBufferSizeBytes;\n};\n\n#endif // __AUBuffer_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUInputFormatConverter.h",
    "content": "/*\n     File: AUInputFormatConverter.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUInputFormatConverter_h__\n#define __AUInputFormatConverter_h__\n\n#include \"FormatConverterClient.h\"\n#include \"AUTimestampGenerator.h\"\n\n// ____________________________________________________________________________\n// AUInputFormatConverter\n//\n// Subclass of FormatConverterClient that applies a format conversion\n// to an input of an AudioUnit.\n\t/*! @class AUInputFormatConverter */\nclass AUInputFormatConverter : public FormatConverterClient {\npublic:\n\t/*! @ctor AUInputFormatConverter */\n\tAUInputFormatConverter(AUBase *hostAU, int inputBus) :\n\t\tmHost(hostAU),\n\t\tmHostBus(inputBus),\n\t\tmPreviousSilentFrames(0x1000)\n\t{\n#if DEBUG\n\t\tmTimestampGenerator.mVerbosity = 0;\n\t\tstrcpy(mTimestampGenerator.mDebugName, \"AUConverter\");\n#endif\n\t}\n\t\n\t// need to subsequently call Initialize, with the desired formats\n\t\n\t/*! @dtor ~AUInputFormatConverter */\n\t~AUInputFormatConverter()\n\t{\n\t}\n\t\n\tvirtual OSStatus Initialize(const AudioStreamBasicDescription &src, const AudioStreamBasicDescription &dest)\n\t{\n\t\tOSStatus err = FormatConverterClient::Initialize(src, dest);\n\t\tif (err) return err;\n\t\tmIsPCMToPCM = (src.mFormatID == kAudioFormatLinearPCM) && (dest.mFormatID == kAudioFormatLinearPCM);\n\t\tmHasSRC = (fnonzero(src.mSampleRate) && fnonzero(dest.mSampleRate) && fnotequal(src.mSampleRate, dest.mSampleRate));\n\t\treturn ca_noErr;\n\t}\n\n\tvirtual OSStatus\tReset()\n\t{\n\t\tmPreviousSilentFrames = 0x1000;\n\t\tmTimestampGenerator.Reset();\n\t\treturn FormatConverterClient::Reset();\n\t}\n\t\n\tvoid\tSetStartInputTimeAtZero(bool b)\n\t{\n\t\tmTimestampGenerator.SetStartInputAtZero(b);\n\t}\n\n\t/*! @method FillComplexBuffer */\n\tOSStatus\tAUFillComplexBuffer(const AudioTimeStamp &\t\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\t\tioOutputDataPacketSize,\n\t\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\t\toutOutputData,\n\t\t\t\t\t\t\t\t\tAudioStreamPacketDescription*\t\toutPacketDescription,\n\t\t\t\t\t\t\t\t\tbool&\t\t\t\t\t\t\t\toutSilence)\n\t{\n\t\tmTimestampGenerator.AddOutputTime(inTimeStamp, ioOutputDataPacketSize, mOutputFormat.mSampleRate);\n\t\tmSilentOutput = true;\n\t\tOSStatus err = FillComplexBuffer(ioOutputDataPacketSize, outOutputData, outPacketDescription);\n\t\tif (mSilentOutput) {\n\t\t\tif (!mIsPCMToPCM || (mHasSRC && mPreviousSilentFrames < 32))\n\t\t\t\tmSilentOutput = false;\n\t\t\tmPreviousSilentFrames += ioOutputDataPacketSize;\n \t\t} else\n\t\t\tmPreviousSilentFrames = 0;\n\t\toutSilence = mSilentOutput;\n\t\treturn err;\n\t}\n\n\t/*! @method FormatConverterInputProc */\n\tvirtual OSStatus\tFormatConverterInputProc(\t\n\t\t\t\t\t\t\t\tUInt32 &\t\t\t\t\t\tioNumberDataPackets,\n\t\t\t\t\t\t\t\tAudioBufferList &\t\t\t\tioData,\n\t\t\t\t\t\t\t\tAudioStreamPacketDescription**\toutDataPacketDescription)\n\t{\n\t\tOSStatus err = ca_noErr;\n\t\t\n\t\tAudioUnitRenderActionFlags actionFlags = 0;\n\t\tAUInputElement *input = mHost->GetInput(mHostBus);\n\t\t*ioNumberDataPackets = std::min(*ioNumberDataPackets, This->mHost->GetMaxFramesPerSlice());\n\t\tconst AudioTimeStamp &inputTime = mTimestampGenerator.GenerateInputTime(ioNumberDataPackets, mInputFormat.mSampleRate);\n\t\terr = input->PullInput(actionFlags, inputTime, mHostBus, ioNumberDataPackets);\n\t\tif (!err) {\n\t\t\tinput->CopyBufferListTo(ioData);\n\t\t\tif (!(actionFlags & kAudioUnitRenderAction_OutputIsSilence))\n\t\t\t\tmSilentOutput = false;\n\t\t}\n\t\treturn err;\n\t}\n\nprotected:\n\t/*! @var mHost */\n\tAUBase *\t\t\t\tmHost;\n\t/*! @var mHostBus */\n\tint\t\t\t\t\t\tmHostBus;\n\t\n\tAUTimestampGenerator\tmTimestampGenerator;\n\tbool\t\t\t\t\tmIsPCMToPCM;\n\tbool\t\t\t\t\tmHasSRC;\n\tbool\t\t\t\t\tmSilentOutput;\n\tUInt32\t\t\t\t\tmPreviousSilentFrames;\n};\n\n#endif // __AUInputFormatConverter_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUMIDIDefs.h",
    "content": "/*\n     File: AUMIDIDefs.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUMIDIDefs_h__\n#define __AUMIDIDefs_h__\n\n#if !defined(__TMidiMessage)\t/* DAS HACK */\nenum\n{\n\tkMidiMessage_NoteOff \t\t\t= 0x80,\n\tkMidiMessage_NoteOn \t\t\t= 0x90,\n\tkMidiMessage_PolyPressure \t\t= 0xA0,\n\tkMidiMessage_ControlChange \t\t= 0xB0,\n\tkMidiMessage_ProgramChange \t\t= 0xC0,\n\tkMidiMessage_ChannelPressure \t= 0xD0,\n\tkMidiMessage_PitchWheel \t\t= 0xE0,\n\tkMidiMessage_SysEx\t\t\t\t= 0xF0,\n\tkMidiMessage_SysEx_End\t\t\t= 0xF7,\n\tkMidiMessage_MetaEvent\t\t\t= 0xFF\n};\n#endif\n\nenum\n{\n\tkMidiController_BankSelect\t\t\t\t= 0,\n\tkMidiController_ModWheel\t\t\t\t= 1,\n\tkMidiController_Breath\t\t\t\t\t= 2,\n\tkMidiController_Foot\t\t\t\t\t= 4,\n\tkMidiController_PortamentoTime\t\t\t= 5,\n\tkMidiController_DataEntry\t\t\t\t= 6,\n\tkMidiController_Volume\t\t\t\t\t= 7,\n\tkMidiController_Balance\t\t\t\t\t= 8,\n\tkMidiController_Pan\t\t\t\t\t\t= 10,\n\tkMidiController_Expression\t\t\t\t= 11,\n\t\n\t// these controls have a (0-63) == off, (64-127) == on\n\tkMidiController_Sustain\t\t\t\t\t= 64, //hold1\n\tkMidiController_Portamento\t\t\t\t= 65,\n\tkMidiController_Sostenuto\t\t\t\t= 66,\n\tkMidiController_Soft\t\t\t\t\t= 67,\n\tkMidiController_LegatoPedal\t\t\t\t= 68,\n\tkMidiController_Hold2Pedal\t\t\t\t= 69,\n\tkMidiController_FilterResonance\t\t\t= 71,\n\tkMidiController_ReleaseTime\t\t\t\t= 72,\n\tkMidiController_AttackTime\t\t\t\t= 73,\n\tkMidiController_Brightness\t\t\t\t= 74,\n\tkMidiController_DecayTime\t\t\t\t= 75,\n\tkMidiController_VibratoRate\t\t\t\t= 76,\n\tkMidiController_VibratoDepth\t\t\t= 77,\n\tkMidiController_VibratoDelay\t\t\t= 78,\n\t\n\t// these controls have a 0-127 range and in MIDI they have no LSB (so fractional values are lost in MIDI)\n\tkMidiController_ReverbLevel\t\t\t\t= 91,\n\tkMidiController_ChorusLevel\t\t\t\t= 93,\n\n\tkMidiController_RPN_LSB\t\t\t\t\t= 100,\n\tkMidiController_RPN_MSB\t\t\t\t\t= 101,\n\n\tkMidiController_AllSoundOff\t\t\t\t= 120,\n\tkMidiController_ResetAllControllers\t\t= 121,\n\tkMidiController_AllNotesOff\t\t\t\t= 123,\n\tkMidiController_OmniModeOff\t\t\t\t= 124,\n\tkMidiController_OmniModeOn\t\t\t\t= 125,\n    kMidiController_MonoModeOn              = 126,\n    kMidiController_MonoModeOff             = 127\n};\n\n// RPN values\nenum \n{\n\tkMidiControllerValue_RPNPitchBendSensitivity\t= 0,\n\tkMidiControllerValue_RPNChannelFineTuning\t\t= 1,\n\tkMidiControllerValue_RPNChannelCoarseTuning\t\t= 2,\n\tkMidiControllerValue_RPNModDepthRange\t\t\t= 5,\n\tkMidiControllerValue_RPNNull\t\t\t\t\t= 0x3fff\t//! 0x7f/0x7f\n};\n\n// GM2 Sound Bank Constants\nenum \n{\n\tkGM2MelodicBank\t\t\t\t\t\t= 0x7900,\n\tkGM2PercussionBank\t\t\t\t\t= 0x7800,\n\tkGSPercussionBank\t\t\t\t\t= 0x7f00,\n\tkXGSFXBank\t\t\t\t\t\t\t= 0x7E00,\n\tkXGPercussionBank\t\t\t\t\t= kGSPercussionBank,\n\tkBankMSBMask\t\t\t\t\t\t= 0xff00\n};\n\nenum \n{\n\tkMSBController_MidPoint\t\t\t= 0x40\n};\n\n#endif\t// __AUMIDIDefs_h__\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUSilentTimeout.h",
    "content": "/*\n     File: AUSilentTimeout.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUSilentTimeout\n#define __AUSilentTimeout\n\nclass AUSilentTimeout\n{\npublic:\n\tAUSilentTimeout()\n\t\t: \tmTimeoutCounter(0),\n\t\t\tmResetTimer(true)\n\t\t\t\t{};\n\n\tvoid\t\t\t\tProcess(UInt32 inFramesToProcess, UInt32 inTimeoutLimit, bool &ioSilence )\n\t{\n\t\tif(ioSilence )\n\t\t{\n\t\t\tif(mResetTimer )\n\t\t\t{\n\t\t\t\tmTimeoutCounter = inTimeoutLimit;\n\t\t\t\tmResetTimer = false;\n\t\t\t}\n\t\t\t\n\t\t\tif(mTimeoutCounter > 0 )\n\t\t\t{\n\t\t\t\tmTimeoutCounter -= inFramesToProcess;\n\t\t\t\tioSilence = false;\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// signal to reset the next time we receive silence\n\t\t\tmResetTimer = true;\t\n\t\t}\n\t}\n\n\tvoid\t\t\t\tReset()\n\t{\n\t\tmResetTimer = true;\n\t};\n\n\n\nprivate:\n\tSInt32\t\t\t\tmTimeoutCounter;\n\tbool\t\t\t\tmResetTimer;\n};\n\n#endif // __AUSilentTimeout\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUTimestampGenerator.cpp",
    "content": "/*\n     File: AUTimestampGenerator.cpp\n Abstract: AUTimestampGenerator.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUTimestampGenerator.h\"\n#include \"CAMath.h\"\n\n#if DEBUG\nstatic double DebugHostTime(const AudioTimeStamp &ts)\n{\n\tstatic UInt64 baseHostTime = 0;\n\tif (!(ts.mFlags & kAudioTimeStampHostTimeValid))\n\t\treturn -1.;\n\tif (baseHostTime == 0)\n\t\tbaseHostTime = ts.mHostTime;\n\treturn double(SInt64(ts.mHostTime) - SInt64(baseHostTime)) * CAHostTimeBase::GetInverseFrequency();\n}\n#endif\n\nvoid\tAUTimestampGenerator::AddOutputTime(const AudioTimeStamp &inTimeStamp, Float64 expectedDeltaFrames, double outputSampleRate, double rateScalarAdj)\n{\n\tmState.mRateScalarAdj = rateScalarAdj;\n\tmState.mLastOutputTime = mState.mCurrentOutputTime;\n\tmState.mInputSampleTimeForOutputPull = mState.mNextInputSampleTime;\n\tmState.mCurrentOutputTime = inTimeStamp;\n\n\tif (mState.mBypassed)\n\t\treturn;\n\t\t\n\tif (mState.mHostTimeDiscontinuityCorrection && !(mState.mCurrentOutputTime.mFlags & kAudioTimeStampHostTimeValid) && (mState.mLastOutputTime.mFlags & kAudioTimeStampHostTimeValid)) {\n\t\t// no host time here but we had one last time, interpolate one\n\t\tdouble rateScalar = (mState.mCurrentOutputTime.mFlags & kAudioTimeStampRateScalarValid) ? mState.mCurrentOutputTime.mRateScalar : 1.0;\n\t\tFloat64 deltaSamples = mState.mCurrentOutputTime.mSampleTime - mState.mLastOutputTime.mSampleTime;\n\t\tmState.mCurrentOutputTime.mHostTime = mState.mLastOutputTime.mHostTime + \n\t\t\tUInt64(CAHostTimeBase::GetFrequency() * deltaSamples * rateScalar / outputSampleRate);\n\t\tmState.mCurrentOutputTime.mFlags |= kAudioTimeStampHostTimeValid;\n#if DEBUG\n\t\tif (mVerbosity > 1)\n\t\t\tprintf(\"synthesized host time: %.3f (%.3f + %.f smp @ %.f Hz, rs %.3f\\n\", DebugHostTime(mState.mCurrentOutputTime), DebugHostTime(mState.mLastOutputTime), deltaSamples, outputSampleRate, rateScalar);\n#endif\n\t}\n\t// copy rate scalar\n\tif (rateScalarAdj != 1.0) {\n\t\tif (mState.mCurrentOutputTime.mFlags & kAudioTimeStampRateScalarValid)\n\t\t\tmState.mCurrentOutputTime.mRateScalar *= rateScalarAdj;\n\t\telse {\n\t\t\tmState.mCurrentOutputTime.mRateScalar = rateScalarAdj;\n\t\t\tmState.mCurrentOutputTime.mFlags |= kAudioTimeStampRateScalarValid;\n\t\t}\n\t}\n\t\n\tif (mFirstTime) {\n\t\tmFirstTime = false;\n\t\tmState.mDiscontinuous = false;\n\t\tmState.mDiscontinuityDeltaSamples = 0.;\n\t\tif (!mState.mStartInputAtZero) {\n\t\t\tmState.mNextInputSampleTime = mState.mCurrentOutputTime.mSampleTime;\n\t\t\tmState.mInputSampleTimeForOutputPull = mState.mNextInputSampleTime;\n\t\t}\n\t} else {\n\t\tmState.mDiscontinuous = fnotequal(mState.mCurrentOutputTime.mSampleTime, mState.mNextOutputSampleTime);\n\t\tmState.mDiscontinuityDeltaSamples = mState.mCurrentOutputTime.mSampleTime - mState.mNextOutputSampleTime;\n\t\t// time should never go backwards...\n\t\tif (mState.mDiscontinuityDeltaSamples < 0.)\n\t\t\tmState.mDiscontinuityDeltaSamples = 0.;\n#if DEBUG\n\t\tif (mVerbosity > 1)\n\t\t\tif (mState.mDiscontinuous)\n\t\t\t\tprintf(\"%-20.20s: *** DISCONTINUOUS, got \" TSGFMT \", expected \" TSGFMT \"\\n\", mDebugName, (SInt64)mState.mCurrentOutputTime.mSampleTime, (SInt64)mState.mNextOutputSampleTime);\n#endif\n\t}\n\tmState.mNextOutputSampleTime = mState.mCurrentOutputTime.mSampleTime + expectedDeltaFrames;\n}\n\nconst AudioTimeStamp &\tAUTimestampGenerator::GenerateInputTime(Float64 framesToAdvance, double inputSampleRate, bool advanceHostTime)\n{\n\tif (mState.mBypassed)\n\t\treturn mState.mCurrentOutputTime;\n\n\tdouble inputSampleTime;\n\t\n\tmState.mCurrentInputTime.mFlags = kAudioTimeStampSampleTimeValid;\n\tdouble rateScalar = 1.0;\n\t\n\t// propagate rate scalar\n\tif (mState.mCurrentOutputTime.mFlags & kAudioTimeStampRateScalarValid) {\n\t\tmState.mCurrentInputTime.mFlags |= kAudioTimeStampRateScalarValid;\n\t\tmState.mCurrentInputTime.mRateScalar = rateScalar = mState.mCurrentOutputTime.mRateScalar;\n\t}\n\t\n\t// propagate host time and sample time\n\tif (mState.mCurrentOutputTime.mFlags & kAudioTimeStampHostTimeValid) {\n\t\tmState.mCurrentInputTime.mFlags |= kAudioTimeStampHostTimeValid;\n\t\tif (advanceHostTime) {\n\t\t\tFloat64 deltaSamples = mState.mNextInputSampleTime - mState.mInputSampleTimeForOutputPull;\n\t\t\tFloat64 deltaSeconds = (deltaSamples / inputSampleRate) * mState.mRateScalarAdj;\n\t\t\tUInt64 deltaHostTime = (UInt64)(deltaSeconds * CAHostTimeBase::GetFrequency());\n\t\t\tmState.mCurrentInputTime.mHostTime = mState.mCurrentOutputTime.mHostTime + deltaHostTime;\n\t\t} else {\n\t\t\tmState.mCurrentInputTime.mHostTime = mState.mCurrentOutputTime.mHostTime;\n\t\t}\n\t\tif (mState.mHostTimeDiscontinuityCorrection && mState.mDiscontinuous && (mState.mLastOutputTime.mFlags & kAudioTimeStampHostTimeValid)) {\n\t\t\t// we had a discontinuous output time, need to resync by interpolating \n\t\t\t// a sample time that is appropriate to the host time\n\t\t\tUInt64 deltaHostTime = mState.mCurrentOutputTime.mHostTime - mState.mLastOutputTime.mHostTime;\n\t\t\tdouble deltaSeconds = double(deltaHostTime) * CAHostTimeBase::GetInverseFrequency();\n\t\t\t// samples/second * seconds = samples\n\t\t\tdouble deltaSamples = floor(inputSampleRate / rateScalar * deltaSeconds + 0.5);\n\t\t\tdouble lastInputSampleTime = mState.mCurrentInputTime.mSampleTime;\n\t\t\tinputSampleTime = lastInputSampleTime + deltaSamples;\n#if DEBUG\n\t\t\tif (mVerbosity > 1)\n\t\t\t\tprintf(\"%-20.20s: adjusted input time: \" TSGFMT \" -> \" TSGFMT \" (SR=%.3f, rs=%.3f)\\n\", mDebugName, (SInt64)lastInputSampleTime, (SInt64)inputSampleTime, inputSampleRate, rateScalar);\n#endif\n\t\t\tmState.mDiscontinuous = false;\n\t\t} else {\n\t\t\tinputSampleTime = mState.mNextInputSampleTime;\n\t\t}\n\t} else {\n\t\t// we don't know the host time, so we can't do much\n\t\tinputSampleTime = mState.mNextInputSampleTime;\n\t}\n\n\tif (!mState.mHostTimeDiscontinuityCorrection && fnonzero(mState.mDiscontinuityDeltaSamples))\n\t{\n\t\t// we had a discontinuous output time, need to resync by propagating the\n\t\t// detected discontinuity, taking the rate scalar adjustment into account\n\t\tinputSampleTime += floor(mState.mDiscontinuityDeltaSamples / mState.mRateScalarAdj + 0.5);\n\t\t\n#if DEBUG\n\t\tif (mVerbosity > 1)\n\t\t\tprintf(\"%-20.20s: adjusted input time: %.0f -> %.0f (SR=%.3f, rs=%.3f, delta=%.0f)\\n\", mDebugName, mState.mNextInputSampleTime, inputSampleTime, inputSampleRate, mState.mRateScalarAdj, mState.mDiscontinuityDeltaSamples);\n#endif\n\t\t\n\t\tmState.mDiscontinuityDeltaSamples = 0.;\n\t}\n\t\n\t\n\t// propagate word clock\n\tif (mState.mCurrentOutputTime.mFlags & kAudioTimeStampWordClockTimeValid) {\n\t\tmState.mCurrentInputTime.mFlags |= kAudioTimeStampWordClockTimeValid;\n\t\tmState.mCurrentInputTime.mWordClockTime = mState.mCurrentOutputTime.mWordClockTime;\n\t}\n\t\n\t// propagate SMPTE time\n\tif (mState.mCurrentOutputTime.mFlags & kAudioTimeStampSMPTETimeValid) {\n\t\tmState.mCurrentInputTime.mFlags |= kAudioTimeStampSMPTETimeValid;\n\t\tmState.mCurrentInputTime.mSMPTETime = mState.mCurrentOutputTime.mSMPTETime;\n\t}\n\t\n\t// store the input sample time and expected next input time\n\tmState.mCurrentInputTime.mSampleTime = inputSampleTime;\n\tmState.mNextInputSampleTime = inputSampleTime + framesToAdvance;\n\n#if DEBUG\n\tif (mVerbosity > 0) {\n\t\tprintf(\"%-20.20s: out = \" TSGFMT \" (%10.3fs)  in = \" TSGFMT \"  (%10.3fs)  delta = \" TSGFMT \"  advance = \" TSGFMT \"\\n\", mDebugName, (SInt64)mState.mCurrentOutputTime.mSampleTime, DebugHostTime(mState.mCurrentOutputTime), (SInt64)inputSampleTime, DebugHostTime(mState.mCurrentInputTime), (SInt64)(mState.mCurrentOutputTime.mSampleTime - inputSampleTime), (SInt64)framesToAdvance);\n\t}\n#endif\n\treturn mState.mCurrentInputTime;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/AudioUnits/AUPublic/Utility/AUTimestampGenerator.h",
    "content": "/*\n     File: AUTimestampGenerator.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUTimestampGenerator_h__\n#define __AUTimestampGenerator_h__\n\n#include <math.h>\n#include \"CAHostTimeBase.h\"\n#include <stdio.h>\n\n#define TSGFMT \"0x%10qx\"\n//#define TSGFMT \"%10qd\"\n\n// This class generates a continuously increasing series of timestamps based\n// on a series of potentially discontinuous timestamps (as can be delivered from\n// CoreAudio in the event of an overload or major engine change).\n// N.B.: \"output\" = downstream (source) timestamp\n//\t\t \"input\"  = upstream (derived) timestamp\nclass AUTimestampGenerator {\npublic:\n\tAUTimestampGenerator(bool hostTimeDiscontinuityCorrection = false)\n\t{\n\t\tmState.mStartInputAtZero = true;\n\t\tmState.mBypassed = false;\n\t\tmState.mHostTimeDiscontinuityCorrection = hostTimeDiscontinuityCorrection;\n#if DEBUG\n\t\tmVerbosity = 0;\n\t\tsnprintf(mDebugName, sizeof(mDebugName), \"tsg @ %p\", this);\n#endif\n\t\t// CAHostTimeBase should be used instead of the calls in <CoreAudio/HostTime.h>\n\t\t// we make this call here to ensure that this is initialized, otherwise the first time\n\t\t// you do actually call CAHostTimeBase to do work, can be on the render thread, and lead to unwanted VM faults\n\t\tCAHostTimeBase::GetFrequency();\n\t\tReset();\n\t}\n\t\n\tvoid\tSetStartInputAtZero(bool b) { mState.mStartInputAtZero = b; }\n\tbool\tGetStartInputAtZero() const { return mState.mStartInputAtZero; }\n\t\n\t// bypassing is intended for a narrow special case. the upstream sample time will always be the same as the downstream time.\n\tvoid\tSetBypassed(bool b) { mState.mBypassed = b; }\n\tbool\tGetBypassed() const { return mState.mBypassed; }\n\t\t\n\t// Call this to reset the timeline.\n\tvoid\tReset()\n\t{\n\t\tmState.mCurrentInputTime.mSampleTime = 0.;\n\t\tmState.mNextInputSampleTime = 0.;\n\t\tmState.mCurrentOutputTime.mSampleTime = 0.;\n\t\tmState.mNextOutputSampleTime = 0.;\n\t\tmState.mLastOutputTime.mFlags = 0;\n\t\tmState.mRateScalarAdj = 1.;\n\t\t\n\t\tmFirstTime = true;\n#if DEBUG\n\t\tif (mVerbosity)\n\t\t\tprintf(\"%-20.20s: Reset\\n\", mDebugName);\n#endif\n\t}\n\t\n\t// Call this once per render cycle with the downstream timestamp.\n\t// expectedDeltaFrames is the expected difference between the current and NEXT \n\t//\tdownstream timestamps.\n\t// sampleRate is the OUTPUT sample rate.\n\tvoid\tAddOutputTime(const AudioTimeStamp &inTimeStamp, Float64 expectedDeltaFrames, double outputSampleRate, double rateScalarAdj=1.0);\n\t\n\t// Call this once per render cycle to obtain the upstream timestamp.\n\t// framesToAdvance is the number of frames the input timeline is to be\n\t//\tadvanced during this render cycle.\n\t// sampleRate is the INPUT sample rate.\n\tconst AudioTimeStamp &\tGenerateInputTime(Float64 framesToAdvance, double inputSampleRate, bool advanceHostTime = false);\n\t\t\n\t// this can be called to override the setting of the next input sample time in GenerateInputTime\n\tvoid\t\t\t\t\tAdvance(Float64 framesToAdvance)\n\t{\n#if DEBUG\n\t\tif (mVerbosity > 1)\n\t\t\tprintf(\"%-20.20s:\tADVANCE         in = \" TSGFMT \"                    advance = \" TSGFMT \"\\n\", mDebugName, (SInt64)mState.mCurrentInputTime.mSampleTime, (SInt64)framesToAdvance);\n#endif\n\t\tmState.mNextInputSampleTime = mState.mCurrentInputTime.mSampleTime + framesToAdvance;\n\t}\n\n\tstruct State {\n\t\tAudioTimeStamp\t\tmCurrentInputTime;\n\t\tFloat64\t\t\t\tmNextInputSampleTime;\n\t\tFloat64\t\t\t\tmNextOutputSampleTime;\n\t\tFloat64\t\t\t\tmInputSampleTimeForOutputPull;\n\t\t\n\t\tAudioTimeStamp\t\tmLastOutputTime;\n\t\tAudioTimeStamp\t\tmCurrentOutputTime;\n\n\t\tbool\t\t\t\tmStartInputAtZero;  // if true, input timeline starts at 0, else it starts\n\t\t\t\t\t\t\t\t\t\t\t\t// synced with the output timeline\n\t\tbool\t\t\t\tmDiscontinuous;\n\t\tbool\t\t\t\tmBypassed;\n\t\tFloat64\t\t\t\tmDiscontinuityDeltaSamples;\n\t\t\n\t\tdouble\t\t\t\tmRateScalarAdj;\n\t\t\n\t\tbool\t\t\t\tmHostTimeDiscontinuityCorrection; // If true, propagate timestamp discontinuities using host time.\n\t};\n\t\n\tvoid GetState(State& outState) const { outState = mState; }\n\tvoid SetState(State const& inState) { mState = inState; mFirstTime = false; }\n\t\nprivate:\n\t\n\tstruct State\t\tmState;\n\n\tbool\t\t\t\tmFirstTime;\t\n\t\n#if DEBUG\npublic:\n\tint\t\t\t\t\tmVerbosity;\n\tchar\t\t\t\tmDebugName[64];\n#endif\n};\n\n\n#endif // __AUTimestampGenerator_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/AUOutputBL.cpp",
    "content": "/*\n     File: AUOutputBL.cpp\n Abstract: AUOutputBL.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUOutputBL.h\"\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AUComponent.h>\n#else\n\t#include <AUComponent.h>\n#endif\n/*\nstruct AudioBufferList\n{\n\tUInt32\t\tmNumberBuffers;\n\tAudioBuffer\tmBuffers[1];\n};\nstruct AudioBuffer\n{\n\tUInt32\tmNumberChannels;\t//\tnumber of interleaved channels in the buffer\n\tUInt32\tmDataByteSize;\t\t//\tthe size of the buffer pointed to by mData\n\tvoid*\tmData;\t\t\t\t//\tthe pointer to the buffer\n};\n*/\n\nAUOutputBL::AUOutputBL (const CAStreamBasicDescription &inDesc, UInt32 inDefaultNumFrames) \n\t\t: mFormat (inDesc),\n\t\t  mBufferMemory(NULL),\n\t\t  mBufferList (NULL),\n\t\t  mNumberBuffers (0), // keep this here, so can ensure integrity of ABL\n\t\t  mBufferSize (0),\n\t\t  mFrames(inDefaultNumFrames)\n{\n\tmNumberBuffers = mFormat.IsInterleaved() ? 1 : mFormat.NumberChannels();\n\tmBufferList = reinterpret_cast<AudioBufferList*>(new Byte[offsetof(AudioBufferList, mBuffers) + (mNumberBuffers * sizeof(AudioBuffer))]);\n}\n\nAUOutputBL::~AUOutputBL()\n{\n\tif (mBufferMemory)\n\t\tdelete[] mBufferMemory;\n\n\tif (mBufferList)\n\t\tdelete [] (Byte *)mBufferList;\n}\n\nvoid \tAUOutputBL::Prepare (UInt32 inNumFrames, bool inWantNullBufferIfAllocated) \n{\n\tUInt32 channelsPerBuffer = mFormat.IsInterleaved() ? mFormat.NumberChannels() : 1;\n\t\n\tif (mBufferMemory == NULL || inWantNullBufferIfAllocated)\n\t{\n\t\tmBufferList->mNumberBuffers = mNumberBuffers;\n\t\tAudioBuffer *buf = &mBufferList->mBuffers[0];\n\t\tfor (UInt32 i = 0; i < mNumberBuffers; ++i, ++buf) {\n\t\t\tbuf->mNumberChannels = channelsPerBuffer;\n\t\t\tbuf->mDataByteSize = mFormat.FramesToBytes (inNumFrames);\n\t\t\tbuf->mData = NULL;\n\t\t}\n\t}\n\telse\n\t{\n\t\tUInt32 nBytes = mFormat.FramesToBytes (inNumFrames);\n\t\tif ((nBytes * mNumberBuffers) > AllocatedBytes())\n\t\t\tthrow OSStatus(kAudioUnitErr_TooManyFramesToProcess);\n\t\t\t\n\t\tmBufferList->mNumberBuffers = mNumberBuffers;\n\t\tAudioBuffer *buf = &mBufferList->mBuffers[0];\n\t\tByte* p = mBufferMemory;\n\t\tfor (UInt32 i = 0; i < mNumberBuffers; ++i, ++buf) {\n\t\t\tbuf->mNumberChannels = channelsPerBuffer;\n\t\t\tbuf->mDataByteSize = nBytes;\n\t\t\tbuf->mData = p;\n\t\t\tp += mBufferSize;\n\t\t}\n\t}\n}\n\n\nvoid\tAUOutputBL::Allocate (UInt32 inNumFrames)\n{\n\tif (inNumFrames) \n\t{\n\t\tUInt32 nBytes = mFormat.FramesToBytes (inNumFrames);\n\t\t\n\t\tif (nBytes <= AllocatedBytes()) \n\t\t\treturn;\n\t\t\n\t\t\t// align successive buffers for Altivec and to take alternating\n\t\t\t// cache line hits by spacing them by odd multiples of 16\n\t\tif (mNumberBuffers > 1)\n\t\t\tnBytes = (nBytes + (0x10 - (nBytes & 0xF))) | 0x10;\n\t\t\n\t\tmBufferSize = nBytes;\n\t\t\n\t\tUInt32 memorySize = mBufferSize * mNumberBuffers;\n\t\tByte *newMemory = new Byte[memorySize];\n\t\tmemset(newMemory, 0, memorySize);\t// make buffer \"hot\"\n\t\t\n\t\tByte *oldMemory = mBufferMemory;\n\t\tmBufferMemory = newMemory;\n\t\tdelete[] oldMemory;\n\t\t\n\t\tmFrames = inNumFrames;\n\t} \n\telse \n\t{\n\t\tif (mBufferMemory) {\n\t\t\tdelete [] mBufferMemory;\n\t\t\tmBufferMemory = NULL;\n\t\t}\n\t\tmBufferSize = 0;\n\t\tmFrames = 0;\n\t}\n}\n\n#if DEBUG\nvoid\t\t\tAUOutputBL::Print()\n{\n\tprintf (\"AUOutputBL::Print\\n\");\n\tmFormat.Print();\n\tprintf (\"Num Buffers:%d, mFrames:%d, allocatedMemory:%c\\n\", (int)mBufferList->mNumberBuffers, (int)mFrames, (mBufferMemory != NULL ? 'T' : 'F'));\n\tAudioBuffer *buf = &mBufferList->mBuffers[0];\n\tfor (UInt32 i = 0; i < mBufferList->mNumberBuffers; ++i, ++buf)\n\t\tprintf (\"\\tBuffer:%d, Size:%d, Chans:%d, Buffer:%p\\n\", (int)i, (int)buf->mDataByteSize, (int)buf->mNumberChannels, buf->mData);\n}\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/AUOutputBL.h",
    "content": "/*\n     File: AUOutputBL.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __AUOutputBL_h__\n#define __AUOutputBL_h__\n\n#include \"CAStreamBasicDescription.h\"\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n#else\n#endif\n\n// ____________________________________________________________________________\n//\n//\tAUOutputBL - Simple Buffer List wrapper targetted to use with retrieving AU output\n// Works in one of two ways (both adjustable)... Can use it with NULL pointers, or allocate\n// memory to receive the data in.\n\n// Before using this with any call to AudioUnitRender, it needs to be Prepared\n// as some calls to AudioUnitRender can reset the ABL\n\nclass AUOutputBL {\npublic:\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t// you CANNOT use one of these - it will crash!\n//\t\t\t\t\t\t\t\t\t\tAUOutputBL ();\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t// this is the constructor that you use\n\t\t\t\t\t\t\t\t\t\t\t// it can't be reset once you've constructed it\n\t\t\t\t\t\t\t\t\t\tAUOutputBL (const CAStreamBasicDescription &inDesc, UInt32 inDefaultNumFrames = 512);\n\t\t\t\t\t\t\t\t\t\t~AUOutputBL();\n\n\tvoid \t\t\t\t\t\t\t\tPrepare ()\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tPrepare (mFrames);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// this version can throw if this is an allocted ABL and inNumFrames is > AllocatedFrames()\n\t\t\t\t\t\t\t\t// you can set the bool to true if you want a NULL buffer list even if allocated\n\t\t\t\t\t\t\t\t// inNumFrames must be a valid number (will throw if inNumFrames is 0)\n\tvoid \t\t\t\t\t\t\t\tPrepare (UInt32 inNumFrames, bool inWantNullBufferIfAllocated = false);\n\t\n\tAudioBufferList*\t\t\t\t\tABL() { return mBufferList; }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// You only need to call this if you want to allocate a buffer list\n\t\t\t\t\t\t\t\t// if you want an empty buffer list, just call Prepare()\n\t\t\t\t\t\t\t\t// if you want to dispose previously allocted memory, pass in 0\n\t\t\t\t\t\t\t\t// then you either have an empty buffer list, or you can re-allocate\n\t\t\t\t\t\t\t\t// Memory is kept around if an Allocation request is less than what is currently allocated\n\tvoid\t\t\t\t\t\t\t\tAllocate (UInt32 inNumberFrames);\n\t\n\tUInt32\t\t\t\t\t\t\t\tAllocatedFrames() const { return mFrames; }\n\t\n\tconst CAStreamBasicDescription&\t\tGetFormat() const { return mFormat; }\n\n#if DEBUG\n\tvoid\t\t\t\t\t\t\t\tPrint();\n#endif\n\t\nprivate:\n\tUInt32\t\t\t\t\t\tAllocatedBytes () const { return (mBufferSize * mNumberBuffers); }\n\n\tCAStreamBasicDescription\tmFormat;\n\tByte*\t\t\t\t\t\tmBufferMemory;\n\tAudioBufferList* \t\t\tmBufferList;\n\tUInt32\t\t\t\t\t\tmNumberBuffers;\n\tUInt32\t\t\t\t\t\tmBufferSize;\n\tUInt32\t\t\t\t\t\tmFrames;\n\n// don't want to copy these.. can if you want, but more code to write!\n\tAUOutputBL () {}\n\tAUOutputBL (const AUOutputBL &c);\n\tAUOutputBL& operator= (const AUOutputBL& c);\n};\n\n#endif // __AUOutputBL_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/AUParamInfo.cpp",
    "content": "/*\n     File: AUParamInfo.cpp\n Abstract: AUParamInfo.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"AUParamInfo.h\"\n#include \"CAXException.h\"\n\nAUParamInfo::AUParamInfo (AudioUnit\t\t\t\tinAU, \n\t\t\t\t\t\t\tbool\t\t\t\tinIncludeExpert, \n\t\t\t\t\t\t\tbool\t\t\t\tinIncludeReadOnly,\n\t\t\t\t\t\t\tAudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\tAudioUnitElement\tinElement)\n\t: mAU (inAU),\n\t  mNumParams (0),\n\t  mParamListID(NULL),\n\t  mScope (inScope),\n\t  mElement (inElement)\n{\n\tUInt32 size;\n\tOSStatus result = AudioUnitGetPropertyInfo(mAU, kAudioUnitProperty_ParameterList, inScope, mElement, &size, NULL);\n\t\tif (size == 0 || result) return;\n\t\n\tint nparams = size / sizeof(AudioUnitPropertyID);\n\tmParamListID = new AudioUnitParameterID[nparams];\n\n\tmemset (mParamListID, 0xFF, size);\n\n\tAudioUnitParameterID *paramList = new AudioUnitParameterID[nparams];\n\t\n\tresult = AudioUnitGetProperty(mAU, kAudioUnitProperty_ParameterList, mScope, mElement, paramList, &size);\n\tif (result) {\n\t\tdelete [] mParamListID;\n\t\tdelete [] paramList;\n\t\tmParamListID = NULL;\n\t\treturn;\n\t}\n\t\n\tParameterMap params;\n\tfor (int i = 0; i < nparams; ++i) \n\t{\n\t\tCAAUParameter auvp (mAU, paramList[i], mScope, mElement); // took out only using global scope in CAAUParameter creation\n\t\tconst AudioUnitParameterInfo &paramInfo = auvp.ParamInfo();\n\t\t\t\n\t\t//\tdon't include if parameter can't be read or written\n\t\tif (!(paramInfo.flags & kAudioUnitParameterFlag_IsWritable) \n\t\t\t&& !(paramInfo.flags & kAudioUnitParameterFlag_IsReadable))\n\t\t\tcontinue;\n\n\t\t// only include if expert params wanted\n\t\tif (!inIncludeExpert && auvp.IsExpert())\n\t\t\tcontinue;\n\t\t\n\t\t// only include if read only params are wanted\n\t\tif (!(paramInfo.flags & kAudioUnitParameterFlag_IsWritable) \n\t\t\t&& (paramInfo.flags & kAudioUnitParameterFlag_IsReadable))\n\t\t{\t\n\t\t\tif (!inIncludeReadOnly)\n\t\t\t\tcontinue;\n\t\t}\n\t\t\n\t\tmParamListID[mNumParams] = paramList[i];\n\t\tmNumParams++;\n\t\t\n\t\t// ok - if we're here, then we have a parameter we are going to display.\n\t\tUInt32 clump = 0;\n\t\tauvp.GetClumpID (clump);\n\t\tmParams[clump].push_back (auvp);\n\t}\n\n\tdelete [] paramList;\n}\n\nAUParamInfo::~AUParamInfo()\n{\n\tdelete [] mParamListID;\n}\n\nUInt32\t\t\tAUParamInfo::NumParamsForClump (UInt32 inClump) const\n{ \n\tParameterMap::const_iterator it = mParams.find(inClump);\n\tif (it != mParams.end()) \n\t\treturn static_cast<UInt32>((*it).second.size());\n\treturn 0;\n}\n\nconst CAAUParameter*\tAUParamInfo::GetParamInfo (AudioUnitParameterID inParamID) const\n{\n\tfor (ParameterMap::const_iterator it = mParams.begin(); it != mParams.end(); ++it) {\n\t\tconst ParameterList &list = (*it).second;\n\t\tfor (ParameterList::const_iterator iter = list.begin(); iter != list.end(); ++iter) {\n\t\t\tif (inParamID == (*iter).mParameterID) {\n\t\t\t\treturn &(*iter);\n\t\t\t}\n\t\t}\n\t}\n\treturn NULL;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/AUParamInfo.h",
    "content": "/*\n     File: AUParamInfo.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include <map>\n#include <vector>\n#include <AudioUnit/AudioUnit.h>\n#include \"CAAUParameter.h\"\n\n/*\n\tThe ParameterMap returned by the Map() method is a map where \n\t\t- the key is the clumpID\n\t\t- the value is a ParameterList (vector<CAAUParameter>)\n\t\t\n\tIf you have parameters on multiple scopes (or elements within a scope), then you should create one of these \n\tfor each scope-element pair\n*/\n\nclass AUParamInfo {\n\npublic:\n\ttypedef std::vector <CAAUParameter> ParameterList;\n\ttypedef std::map <UInt32, ParameterList, std::less<UInt32> > ParameterMap;\n\n\n\n\t\t\t\t\t\t\tAUParamInfo (AudioUnit\t\tinAU, \n\t\t\t\t\t\t\t\t\tbool\t\t\t\tinIncludeExpert, \n\t\t\t\t\t\t\t\t\tbool\t\t\t\tinIncludeReadOnly, \n\t\t\t\t\t\t\t\t\tAudioUnitScope\t\tinScope = kAudioUnitScope_Global,\n\t\t\t\t\t\t\t\t\tAudioUnitElement\tinElement = 0);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t~AUParamInfo();\n\t\t\t\t\t\t\t\n\tconst ParameterMap&\t\tMap () const { return mParams; }\n\t\n\t// some convenience methods\n\tUInt32\t\t\t\t\tNumParams () const { return mNumParams; }\n\t\n\tAudioUnitParameterID\tParamID (UInt32 inIndex) const \n\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\tif (inIndex < mNumParams) return mParamListID[inIndex]; \n\t\t\t\t\t\t\t\treturn 0xFFFFFFFF; \n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t \n\tUInt32\t\t\t\t\tNumClumps () const { return static_cast<UInt32>(mParams.size()); }\n\n\tUInt32\t\t\t\t\tNumParamsForClump (UInt32 inClump) const;\n\t\n\t\t\t// returns NULL if there's no info for the parameter\n\tconst CAAUParameter*\tGetParamInfo (AudioUnitParameterID inParamID) const;\n\t\n\tAudioUnitScope\t\t\tGetScope () const { return mScope; }\n\tAudioUnitElement\t\tGetElement () const { return mElement; }\n\t\nprivate:\n\n\tAudioUnit\t\t\t\tmAU;\n\tUInt32\t\t\t\t\tmNumParams;\n\tAudioUnitParameterID *\tmParamListID;\n\t\n\tParameterMap\t\t\tmParams;\n\tAudioUnitScope\t\t\tmScope;\n\tAudioUnitElement\t\tmElement;\n\t\t\n\t\t// disallow\n\tAUParamInfo () {}\n\tAUParamInfo (const AUParamInfo &c) {}\n\tAUParamInfo& operator= (const AUParamInfo& c) { return *this; }\n};\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUMIDIMap.cpp",
    "content": "/*\n     File: CAAUMIDIMap.cpp\n Abstract: CAAUMIDIMap.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAAUMIDIMap.h\"\n#include <pthread.h>\n\nstruct AllMidiTransformers\n{\n\tMIDILinearTransformer linearTrans; \n\tMIDILogTransformer logTrans;\n\tMIDIExpTransformer expTrans;\n\tMIDISqrtTransformer sqrtTrans;\n\tMIDISquareTransformer squareTrans;\n\tMIDICubeRtTransformer cubeRtTrans;\n\tMIDICubeTransformer cubeTrans;\n};\n\nAllMidiTransformers* gAllMidiTransformers = NULL;\n\n#if TARGET_OS_MAC\nstatic pthread_once_t sOnce = PTHREAD_ONCE_INIT;\n\nstatic void InitAllMidiTransformers()\n{\n\tgAllMidiTransformers = new AllMidiTransformers();\n}\n\nstatic void CheckInitAllMidiTransformers()\n{\n\tpthread_once(&sOnce, InitAllMidiTransformers);\n}\n#endif\n\nMIDIValueTransformer *\tCAAUMIDIMap::GetTransformer (UInt32 inFlags)\n{\n#if TARGET_OS_MAC\n\tif (gAllMidiTransformers == NULL) \n\t\tCheckInitAllMidiTransformers();\n#else\n\tif (gAllMidiTransformers == NULL) \n\t\tgAllMidiTransformers = new AllMidiTransformers();\n#endif\n\t\n\tif (AudioUnitDisplayTypeIsLogarithmic(inFlags))\n\t\treturn &gAllMidiTransformers->logTrans;\n\telse if (AudioUnitDisplayTypeIsExponential(inFlags))\n\t\treturn &gAllMidiTransformers->expTrans;\n\telse if (AudioUnitDisplayTypeIsSquareRoot(inFlags))\n\t\treturn &gAllMidiTransformers->sqrtTrans;\n\telse if (AudioUnitDisplayTypeIsSquared(inFlags))\n\t\treturn &gAllMidiTransformers->squareTrans;\n\telse if (AudioUnitDisplayTypeIsCubed(inFlags))\n\t\treturn &gAllMidiTransformers->cubeTrans;\n\telse if (AudioUnitDisplayTypeIsCubeRoot(inFlags))\n\t\treturn &gAllMidiTransformers->cubeRtTrans;\n\telse\n\t\treturn &gAllMidiTransformers->linearTrans;\n}\n\n// The CALLER of this method must ensure that the status byte's MIDI Command matches!!!\nbool\tCAAUMIDIMap::MIDI_Matches (UInt8 inChannel, UInt8 inData1, UInt8 inData2, Float32 &outLinear) const\n{\n\t// see if the channels match first\n\tSInt8 chan = Channel();\n\t// channel matches (if chan is less than zero, \"Any Channel\" flag is set)\n\tif (chan >= 0 && chan != inChannel)\n\t\treturn false;\n\n\t// match the special cases first\n\tif (IsKeyEvent()) {\n\t\t// we're using this key event as an on/off type switch\n\t\tif (IsBipolar()) {\n\t\t\tif (IsKeyPressure()){\n\t\t\t\tif (IsBipolar_OnValue()) {\n\t\t\t\t\tif (inData2 > 63) {\n\t\t\t\t\t\toutLinear = 1;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (inData2 < 64) {\n\t\t\t\t\t\toutLinear = 0;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (IsBipolar_OnValue()) {\n\t\t\t\t\tif (inData1 > 63) {\n\t\t\t\t\t\toutLinear = 1;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (inData1 < 64) {\n\t\t\t\t\t\toutLinear = 0;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif (IsAnyNote()) {\n// not quite sure how to interpret this...\n\t\t\tif (IsKeyPressure())\n\t\t\t\toutLinear = inData2 / 127.0;\n\t\t\telse\n\t\t\t\toutLinear = inData1 / 127.0;\n\t\t\treturn true;\n\t\t}\n\t\tif (mData1 == inData1) {\n\t\t\tif (IsKeyPressure())\n\t\t\t\toutLinear = inData2 / 127.0;\n\t\t\telse\n\t\t\t\toutLinear = 1;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\telse if (IsControlChange()) {\n\t\t// controller ID matches\n\t\tif (mData1 == inData1) {\n\t\t\tif (IsBipolar()) {\n\t\t\t\tif (IsBipolar_OnValue()) {\n\t\t\t\t\tif (inData2 > 63) {\n\t\t\t\t\t\toutLinear = 1;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (inData2 < 64) {\n\t\t\t\t\t\toutLinear = 0;\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t//printf(\"this in midi matches %X with \", this); \n\t\t\toutLinear = inData2 / 127.; \n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\t\n\t\t// this just matches on the patch change value itself...\n\tif (IsPatchChange()) {\n\t\tif (mData1 == inData1) {\n\t\t\toutLinear = 1;\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t// finally, for the other two, just check the bi-polar matching conditions\n\t// pitch bend and after touch\n\tif (IsBipolar()) {\n\t\tif (IsBipolar_OnValue()) {\n\t\t\tif (inData1 > 63) {\n\t\t\t\toutLinear = 1;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} else {\n\t\t\tif (inData1 < 64) {\n\t\t\t\toutLinear = 0;\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\tif (IsPitchBend()) {\n\t\tUInt16 value = (inData2 << 7) | inData1;\n\t\toutLinear = value / 16383.;\n\t}\n\telse if (IsChannelPressure()) {\n\t\toutLinear = inData1 / 127.0;\n\t}\n\n\treturn true;\n}\n\n\nvoid\t\tCAAUMIDIMap::Print () const\n{\n\tprintf (\"CAAUMIDIMap:%p, (%u/%u), mParamID %d, IsValid:%c, Status:0x%X, mData1 %d, Flags:0x%X\\n\", this, (unsigned int)mScope, (unsigned int)mElement, (int)mParameterID, (IsValid() ? 'T' : 'F'), mStatus, mData1, (int)mFlags);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUMIDIMap.h",
    "content": "/*\n     File: CAAUMIDIMap.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAAUMIDIMap_h_\n#define __CAAUMIDIMap_h_\n\n#include <AudioUnit/AudioUnitProperties.h>\n#include <algorithm>\n\n/*\nenum {\n\tkAUParameterMIDIMapping_AnyChannelFlag\t\t= (1L << 0),\n\t\t// If this flag is set and mStatus is a MIDI channel message, then the MIDI channel number \n\t\t// in the status byte is ignored; the mapping is from the specified MIDI message on ANY channel.\n\n\tkAUParameterMIDIMapping_AnyNoteFlag\t\t\t= (1L << 1),\n\t\t// If this flag is set and mStatus is a Note On, Note Off, or Polyphonic Pressure message,\n\t\t// the message's note number is ignored; the mapping is from ANY note number.\n\n\tkAUParameterMIDIMapping_SubRange\t\t\t= (1L << 2),\n\t\t// set this flag if the midi control should map only to a sub-range of the parameter's value\n\t\t// then specify that range in the mSubRangeMin and mSubRangeMax members\n\n\tkAUParameterMIDIMapping_Toggle\t\t\t\t= (1L << 3),\n\t\t// this is only useful for boolean typed parameters. When set, it means that the parameter's\n\t\t// value should be toggled (if true, become false and vice versa) when the represented MIDI message\n\t\t// is received\n\t\n\tkAUParameterMIDIMapping_Bipolar\t\t\t\t= (1L << 4),\n\t\t// this can be set to when mapping a MIDI Controller to indicate that the parameter (typically a boolean\n\t\t// style parameter) will only have its value changed to either the on or off state of a MIDI controller message\n\t\t// (0 < 64 is off, 64 < 127 is on) such as the sustain pedal. The seeting of the next flag\n\t\t// (kAUParameterMIDIMapping_Bipolar_On) determine whether the parameter is mapped to the on or off\n\t\t// state of the controller\n\tkAUParameterMIDIMapping_Bipolar_On\t\t\t= (1L << 5)\n\t\t// only a valid flag if kAUParameterMIDIMapping_Bipolar is set\n};\n\n// The reserved fields here are being used to reserve space (as well as align to 64 bit size) for future use\n// When/If these fields are used, the names of the fields will be changed to reflect their functionality\n// so, apps should NOT refer to these reserved fields directly by name\ntypedef struct AUParameterMIDIMapping\n{\n\tAudioUnitScope\t\t\tmScope;\n\tAudioUnitElement\t\tmElement;\n\tAudioUnitParameterID\tmParameterID;\n\tUInt32\t\t\t\t\tmFlags;\n\tFloat32\t\t\t\t\tmSubRangeMin;\n\tFloat32\t\t\t\t\tmSubRangeMax;\n\tUInt8\t\t\t\t\tmStatus;\n\tUInt8\t\t\t\t\tmData1;\n\tUInt8\t\t\t\t\treserved1; // MUST be set to zero\n\tUInt8\t\t\t\t\treserved2; // MUST be set to zero\n\tUInt32\t\t\t\t\treserved3; // MUST be set to zero\n} AUParameterMIDIMapping;\n*/\n\n/*\nParameter To MIDI Mapping Properties\nThese properties are used to:\nDescribe a current set of mappings between MIDI messages and Parameter value setting\nCreate a mapping between a parameter and a MIDI message through either:\n- explicitly adding (or removing) the mapping\n- telling the AU to hot-map the next MIDI message to a specified Parameter\n\tThe same MIDI Message can map to one or more parameters\n\tOne Parameter can be mapped from multiple MIDI messages\n\n\tIn general usage, these properties only apply to AU's that implement the MIDI API\n\tAU Instruments (type=='aumu') and Music Effects (type == 'aumf')\n\n\tThese properties are used in the Global scope. The scope and element members of the structure describe\n\tthe scope and element of the parameter. In all usages, mScope, mElement and mParameterID must be\n\tcorrectly specified.\n\n\n\t* The AUParameterMIDIMapping Structure\n\n\tCommand\t\t\t\tmStatus\t\t\tmData1\t\t\t\n\tNote Off\t\t\t0x8n\t\t\tNote Num\t\t\n\tNote On\t\t\t\t0x9n\t\t\tNote Num\t\t\n\tKey Pressure\t\t0xAn\t\t\tNote Num\t\t\n\tControl Change\t\t0xBn\t\t\tControllerID\t\n\tPatch Change\t\t0xCn\t\t\tPatch Num\t\t\n\tChannel Pressure\tDxDn\t\t\t0 (Unused)\t\t\n\tPitch Bend\t\t\t0xEn\t\t\t0 (Unused)\t\t\n\n\t(where n is 0-0xF to correspond to MIDI channels 1-16)\n\n\t\tDetails:\n\n\tIn general MIDI Commands can be mapped to either a specific channel as specified in the mStatus bit.\n\tIf the kAUParameterMIDIMapping_AnyChannelFlag bit is set mStatus is a MIDI channel message, then the \n\tMIDI channel number in the status byte is ignored; the mapping is from the specified MIDI message on ANY channel.\n\n\tFor note commands (note on, note off, key pressure), the MIDI message can trigger either with just a specific\n\tnote number, or any note number if the kAUParameterMIDIMapping_AnyNoteFlag bit is set. In these instances, the\n\tnote number is used as the trigger value (for instance, a note message could be used to set the \n\t\t\t\t\t\t\t\t\t\t\t  cut off frequency of a filter).\n\n The Properties:\t\t\t\t\t\t\t\t\n\n\tkAudioUnitProperty_AllParameterMIDIMappings\t\t\t\t\t\t\tarray of AUParameterMIDIMapping (read/write)\n\tThis property is used to both retreive and set the current mapping state between (some/many/all of) its parameters\n\tand MIDI messages. When set, it should replace any previous mapped settings the AU had.\n\n\tIf this property is implemented by a non-MIDI capable AU (such as an 'aufx' type), then the property is\n\tread only, and recommends a suggested set of mappings for the host to perform. In this case, it is the \n\thost's responsibility to map MIDI message to the AU parameters. As described previously, there are a set\n\tof default mappings (see AudioToolbox/AUMIDIController.h) that the host can recommend to the user \n\tin this circumstance.\n\n\tThis property's size will be very dynamic, depending on the number of mappings currently in affect, so the \n\tcaller should always get the size of the property first before retrieving it. The AU should return an error\n\tif the caller doesn't provide enough space to return all of the current mappings.\n\n\tkAudioUnitProperty_AddParameterMIDIMapping\t\t\t\t\t\t\tarray of AUParameterMIDIMapping (write only)\n\tThis property is used to Add mappings to the existing set of mappings the AU possesses. It does NOT replace\n\tany existing mappings.\n\n\tkAudioUnitProperty_RemoveParameterMIDIMapping\t\t\t\t\t\tarray of AUParameterMIDIMapping (write only)\n\tThis property is used to remove the specified mappings from the AU. If a mapping is specified that does not\n\tcurrently exist in the AU, then it should just be ignored.\n\n\tkAudioUnitProperty_HotMapParameterMIDIMapping\t\t\t\t\t\t\t\tAUParameterMIDIMapping (read/write)\n\tThis property is used in two ways, determined by the value supplied by the caller.\n\t(1) If a mapping struct is provided, then that struct provides *all* of the information that the AU should\n\tuse to map the parameter, *except* for the MIDI message. The AU should then listen for the next MIDI message\n\tand associate that MIDI message with the supplied AUParameter mapping. When this MIDI message is received and\n\tthe mapping made, the AU should also issue a notification on this property \n\t(kAudioUnitProperty_HotMapParameterMIDIMapping) to indicate to the host that the mapping has been made. The host\n\tcan then retrieve the mapping that was made by getting the value of this property.\n\n\tTo avoid possible confusion, it is recommended that once the host has retrieved this mapping (if it is \n\tpresenting a UI to describe the mappings for example), that it then clears the mapping state as described next.\n\n\tThus, the only time this property will return a valid value is when the AU has made a mapping. If the AU's mapping\n\tstate has been cleared (or it has not been asked to make a mapping), then the AU should return \n\tkAudioUnitErr_InvalidPropertyValue if the host tries to read this value.\n\n\t(2) If the value passed in is NULL, then if the AU had a parameter that it was in the process of mapping, it\n\tshould disregard that (stop listening to the MIDI messages to create a mapping) and discard the partially \n\tmapped struct. If the value is NULL and the AU is not in the process of mapping, the AU can ignore the request.\n\n\tAt all times, the _AllMappings property will completely describe the current known state of the AU's mappings\n\tof MIDI messages to parameters.\n*/\n\n\n/*\n\tWhen mapping, it is recommended that LSB controllers are in general not mapped (ie. the controller range of 32 < 64)\n\tas many host parsers will map 14 bit control values. If you know (or can present an option) that the host deals with\n\t7 bit controllers only, then these controller ID's can be mapped of course.\n*/\n\n\nstruct MIDIValueTransformer {\n\tvirtual double  tolinear(double) = 0;\n\tvirtual double  fromlinear(double) = 0;\n#if DEBUG\n\t// suppress warning\n\tvirtual ~MIDIValueTransformer() { }\n#endif\n};\n\nstruct MIDILinearTransformer : public MIDIValueTransformer {\n\tvirtual double  tolinear(double x) { return x; }\n\tvirtual double  fromlinear(double x) { return x; }\n};\n\nstruct MIDILogTransformer : public MIDIValueTransformer {\n\tvirtual double  tolinear(double x) { return log(std::max(x, .00001)); }\n\tvirtual double  fromlinear(double x) { return exp(x); }\n};\n\nstruct MIDIExpTransformer : public MIDIValueTransformer {\n\tvirtual double  tolinear(double x) { return exp(x); }\n\tvirtual double  fromlinear(double x) { return log(std::max(x, .00001)); }\n};\n\nstruct MIDISqrtTransformer : public MIDIValueTransformer {\n\tvirtual double  tolinear(double x) { return x < 0. ? -(sqrt(-x)) : sqrt(x); }\n\tvirtual double  fromlinear(double x) { return x < 0. ? -(x * x) : x * x; }\n};\n\nstruct MIDISquareTransformer : public MIDIValueTransformer {\n\tvirtual double  tolinear(double x) { return x < 0. ? -(x * x) : x * x; }\n\tvirtual double  fromlinear(double x) { return x < 0. ? -(sqrt(-x)) : sqrt(x); }\n};\n\nstruct MIDICubeRtTransformer : public MIDIValueTransformer {\n\tvirtual double  tolinear(double x) { return x < 0. ? -(pow(-x, 1./3.)) : pow(x, 1./3.); }\n\tvirtual double  fromlinear(double x) { return x * x * x; }\n};\n\nstruct MIDICubeTransformer : public MIDIValueTransformer {\n\tvirtual double  tolinear(double x) { return x * x * x; }\n\tvirtual double  fromlinear(double x) { return x < 0. ? -(pow(-x, 1./3.)) : pow(x, 1./3.); }\n};\n\n\nclass CAAUMIDIMap : public AUParameterMIDIMapping {\n\t\npublic:\n// variables for more efficient parsing of MIDI to Param value\t\n\tFloat32\t\t\t\t\t\tmMinValue;\n\tFloat32\t\t\t\t\t\tmMaxValue;\n\tMIDIValueTransformer\t\t*mTransType;\n\n// methods\t\n\tstatic MIDIValueTransformer *GetTransformer (UInt32 inFlags);\n\t\n\t\t\t\t\t\t\t\tCAAUMIDIMap() { memset(this, 0, sizeof(CAAUMIDIMap)); }\n\t\t\t\t\t\t\t\tCAAUMIDIMap (const AUParameterMIDIMapping& inMap) \n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmemset(this, 0, sizeof(CAAUMIDIMap));\n\t\t\t\t\t\t\t\t\tmemcpy (this, &inMap, sizeof(inMap));\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tCAAUMIDIMap (AudioUnitScope inScope, AudioUnitElement inElement, AudioUnitParameterID inParam) \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\tmemset(this, 0, sizeof(CAAUMIDIMap)); \n\t\t\t\t\t\t\t\t\tmScope = inScope;\n\t\t\t\t\t\t\t\t\tmElement = inElement;\n\t\t\t\t\t\t\t\t\tmParameterID = inParam;\n\t\t\t\t\t\t\t\t}\n\n\n\tbool\t\t\t\t\t\tIsValid () const { return mStatus != 0; }\n\n\t// returns -1 if any channel bit is set\n\tSInt32\t\t\t\t\t\tChannel () const { return IsAnyChannel() ? -1 : (mStatus & 0xF); }\n\tbool\t\t\t\t\t\tIsAnyChannel () const { \n\t\t\t\t\t\t\t\t\treturn mFlags & kAUParameterMIDIMapping_AnyChannelFlag; \n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// preserves the existing channel info in the status byte\n\t\t\t\t\t\t\t\t\t// preserves any previously set mFlags value\n\tvoid\t\t\t\t\t\tSetAnyChannel (bool inFlag) \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\tif (inFlag) \n\t\t\t\t\t\t\t\t\t\tmFlags |= kAUParameterMIDIMapping_AnyChannelFlag; \n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tmFlags &= ~kAUParameterMIDIMapping_AnyChannelFlag;\n\t\t\t\t\t\t\t\t}\n\n\tbool\t\t\t\t\t\tIsAnyNote () const { \t\t\n\t\t\t\t\t\t\t\t\treturn (mFlags & kAUParameterMIDIMapping_AnyNoteFlag) != 0;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t// preserves the existing key num in the mData1 byte\n\t\t\t\t\t\t\t\t\t// preserves any previously set mFlags value\n\tvoid\t\t\t\t\t\tSetAnyNote (bool inFlag)\n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\tif (inFlag) \n\t\t\t\t\t\t\t\t\t\tmFlags |= kAUParameterMIDIMapping_AnyNoteFlag; \n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tmFlags &= ~kAUParameterMIDIMapping_AnyNoteFlag;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\tbool\t\t\t\t\t\tIsToggle() const { return (mFlags & kAUParameterMIDIMapping_Toggle) != 0; }\n\tvoid\t\t\t\t\t\tSetToggle (bool inFlag)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (inFlag) \n\t\t\t\t\t\t\t\t\t\tmFlags |= kAUParameterMIDIMapping_Toggle; \n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tmFlags &= ~kAUParameterMIDIMapping_Toggle;\n\t\t\t\t\t\t\t\t}\n\t\n\tbool\t\t\t\t\t\tIsBipolar() const { return (mFlags & kAUParameterMIDIMapping_Bipolar) != 0; }\n\t\t\t\t\t\t\t\t\t// inUseOnValue is valid ONLY if inFlag is true\n\tvoid\t\t\t\t\t\tSetBipolar (bool inFlag, bool inUseOnValue = false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tif (inFlag) {\n\t\t\t\t\t\t\t\t\t\tmFlags |= kAUParameterMIDIMapping_Bipolar;\n\t\t\t\t\t\t\t\t\t\tif (inUseOnValue)\n\t\t\t\t\t\t\t\t\t\t\tmFlags |= kAUParameterMIDIMapping_Bipolar_On;\n\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t\tmFlags &= ~kAUParameterMIDIMapping_Bipolar_On;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tmFlags &= ~kAUParameterMIDIMapping_Bipolar;\n\t\t\t\t\t\t\t\t\t\tmFlags &= ~kAUParameterMIDIMapping_Bipolar_On;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\tbool\t\t\t\t\t\tIsBipolar_OnValue () const { return (mFlags & kAUParameterMIDIMapping_Bipolar_On) != 0; }\n\n\tbool\t\t\t\t\t\tIsSubRange () const { return (mFlags & kAUParameterMIDIMapping_SubRange) != 0; }\n\tvoid\t\t\t\t\t\tSetSubRange (Float32 inStartValue, Float32 inStopValue)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmFlags |= kAUParameterMIDIMapping_SubRange; \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tmSubRangeMin = inStartValue;\n\t\t\t\t\t\t\t\t\tmSubRangeMax = inStopValue;\n\t\t\t\t\t\t\t\t}\n\t\n\tvoid\t\t\t\t\t\tSetParamRange(Float32 minValue, Float32 maxValue)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmMinValue = minValue;\n\t\t\t\t\t\t\t\t\tmMaxValue = maxValue;\t\t\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// this will retain the subrange values previously set.\n\tvoid\t\t\t\t\t\tSetSubRange (bool inFlag) \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\tif (inFlag)\n\t\t\t\t\t\t\t\t\t\tmFlags |= kAUParameterMIDIMapping_SubRange; \n\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\tmFlags &= ~kAUParameterMIDIMapping_SubRange; \n\t\t\t\t\t\t\t\t}\n\t\n\tbool\t\t\t\t\t\tIsAnyValue() const{return !IsBipolar();}\n\tbool\t\t\t\t\t\tIsOnValue() const{return IsBipolar_OnValue();}\n\tbool\t\t\t\t\t\tIsOffValue() const{return IsBipolar();}\n\t\t\t\t\t\t\t\t\n\tbool\t\t\t\t\t\tIsNoteOff () const { return ((mStatus & 0xF0) == 0x80); }\n\tbool\t\t\t\t\t\tIsNoteOn () const { return ((mStatus & 0xF0) == 0x90); }\n\t\n\tbool\t\t\t\t\t\tIsKeyPressure () const { return ((mStatus & 0xF0) == 0xA0); }\n\t\n\tbool\t\t\t\t\t\tIsKeyEvent () const { return (mStatus > 0x7F) && (mStatus < 0xB0); }\n\t\n\tbool\t\t\t\t\t\tIsPatchChange () const { return ((mStatus & 0xF0) == 0xC0); }\n\tbool\t\t\t\t\t\tIsChannelPressure () const { return ((mStatus & 0xF0) == 0xD0); }\n\tbool\t\t\t\t\t\tIsPitchBend () const { return ((mStatus & 0xF0) == 0xE0); }\n\tbool\t\t\t\t\t\tIsControlChange () const { return ((mStatus & 0xF0) == 0xB0); }\n\t\n\t\n\tvoid\t\t\t\t\t\tSetControllerOnValue(){SetBipolar(true,true);}\n\tvoid\t\t\t\t\t\tSetControllerOffValue(){SetBipolar(true,false);}\n\tvoid\t\t\t\t\t\tSetControllerAnyValue(){SetBipolar(false,false);}\n\t\t\t\t\t\t\t\t\n\t// All of these Set calls will reset the mFlags field based on the \n\t// anyChannel param value\n\tvoid\t\t\t\t\t\tSetNoteOff (UInt8 key, SInt8 channel, bool anyChannel = false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmStatus = 0x80 | (channel & 0xF);\n\t\t\t\t\t\t\t\t\tmData1 = key;\n\t\t\t\t\t\t\t\t\tmFlags = (anyChannel ? kAUParameterMIDIMapping_AnyChannelFlag : 0);\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t}\n\n\tvoid\t\t\t\t\t\tSetNoteOn (UInt8 key, SInt8 channel, bool anyChannel = false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmStatus = 0x90 | (channel & 0xF);\n\t\t\t\t\t\t\t\t\tmData1 = key;\n\t\t\t\t\t\t\t\t\tmFlags = (anyChannel ? kAUParameterMIDIMapping_AnyChannelFlag : 0);\n\t\t\t\t\t\t\t\t}\n\n\tvoid\t\t\t\t\t\tSetPolyKey (UInt8 key, SInt8 channel, bool anyChannel = false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmStatus = 0xA0 | (channel & 0xF);\n\t\t\t\t\t\t\t\t\tmData1 = key;\n\t\t\t\t\t\t\t\t\tmFlags = (anyChannel ? kAUParameterMIDIMapping_AnyChannelFlag : 0);\n\t\t\t\t\t\t\t\t}\n\n\tvoid\t\t\t\t\t\tSetControlChange (UInt8 controllerID, SInt8 channel, bool anyChannel = false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmStatus = 0xB0 | (channel & 0xF);\n\t\t\t\t\t\t\t\t\tmData1 = controllerID;\n\t\t\t\t\t\t\t\t\tmFlags = (anyChannel ? kAUParameterMIDIMapping_AnyChannelFlag : 0);\n\t\t\t\t\t\t\t\t}\n\t\n\tvoid\t\t\t\t\t\tSetPatchChange (UInt8 patchChange, SInt8 channel, bool anyChannel = false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmStatus = 0xC0 | (channel & 0xF);\n\t\t\t\t\t\t\t\t\tmData1 = patchChange;\n\t\t\t\t\t\t\t\t\tmFlags = (anyChannel ? kAUParameterMIDIMapping_AnyChannelFlag : 0);\n\t\t\t\t\t\t\t\t}\n\n\tvoid\t\t\t\t\t\tSetChannelPressure (SInt8 channel, bool anyChannel = false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmStatus = 0xD0 | (channel & 0xF);\n\t\t\t\t\t\t\t\t\tmData1 = 0;\n\t\t\t\t\t\t\t\t\tmFlags = (anyChannel ? kAUParameterMIDIMapping_AnyChannelFlag : 0);\n\t\t\t\t\t\t\t\t}\n\n\tvoid\t\t\t\t\t\tSetPitchBend (SInt8 channel, bool anyChannel = false)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tmStatus = 0xE0 | (channel & 0xF);\n\t\t\t\t\t\t\t\t\tmData1 = 0;\n\t\t\t\t\t\t\t\t\tmFlags = (anyChannel ? kAUParameterMIDIMapping_AnyChannelFlag : 0);\n\t\t\t\t\t\t\t\t}\n\t\n\t\n\tFloat32\t\t\t\t\t\tParamValueFromMIDILinear (Float32\t\tinLinearValue) const\n\t{\n\t\t\t\t\t\t\t\tFloat32 low, high;\n\t\t\t\t\t\t\t\tif (IsSubRange()){\n\t\t\t\t\t\t\t\t\tlow = mSubRangeMin;\n\t\t\t\t\t\t\t\t\thigh = mSubRangeMax;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlow = mMinValue;\n\t\t\t\t\t\t\t\t\thigh = mMaxValue;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// WE ARE ASSUMING YOU HAVE SET THIS UP PROPERLY!!!!! (or this will crash cause it will be NULL)\n\t\t\t\t\t\t\t\treturn (Float32)mTransType->fromlinear((inLinearValue * (high - low)) + low);\n\t}\n\t\t\n\n\t\t// The CALLER of this method must ensure that the status byte's MIDI Command (ignoring the channel) matches!!!\n\tbool\t\t\t\t\t\tMIDI_Matches (UInt8 inChannel, UInt8 inData1, UInt8 inData2, Float32 &outLinear) const;\n\t\n\tvoid\t\t\t\t\t\tPrint () const;\n\t\n\tvoid\t\t\t\t\t\tSave (CFPropertyListRef &outData) const;\n\tvoid\t\t\t\t\t\tRestore (CFDictionaryRef inData);\n\t\n\tstatic void\t\t\t\t\tSaveAsMapPList (AudioUnit\t\t\t\t\t\tinUnit, \n\t\t\t\t\t\t\t\t\t\t\tconst AUParameterMIDIMapping\t\t* inMappings, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\tinNumMappings, \n\t\t\t\t\t\t\t\t\t\t\tCFPropertyListRef\t\t\t\t\t&outData,\n\t\t\t\t\t\t\t\t\t\t\tCFStringRef\t\t\t\t\t\t\tinName = NULL);\n\n\t\t\t\t\t\t\t\t\t// inNumMappings describes how much memory is allocated in outMappings\n\tstatic void\t\t\t\t\tRestoreFromMapPList (const CFDictionaryRef\t\t\tinData, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAUParameterMIDIMapping\t\t* outMappings, \n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumMappings);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\tstatic UInt32\t\t\t\tNumberOfMaps (const CFDictionaryRef inData);\n};\n\n\n\t// these sorting operations sort for run-time efficiency based on the MIDI messages\ninline bool operator== (const CAAUMIDIMap &a, const CAAUMIDIMap &b)\n{\n\t\t// ignore channel first\n\treturn (((a.mStatus & 0xF0) == (b.mStatus & 0xF0))\n\t\t\t&& (a.mData1 == b.mData1)\n\t\t\t&& ((a.mStatus & 0xF) == (b.mStatus & 0xf))  // now compare the channel\n\t\t\t&&  (a.mParameterID == b.mParameterID)\n\t\t\t&& (a.mElement == b.mElement)\n\t\t\t&& (a.mScope == b.mScope));\n\t\n\t// reserved field comparisons - ignored until/if they are used\n}\n\ninline bool operator< (const CAAUMIDIMap\t&a, const CAAUMIDIMap &b)\n{\n\tif ((a.mStatus & 0xF0) != (b.mStatus & 0xF0)) \n\t\treturn ((a.mStatus & 0xF0) < (b.mStatus & 0xF0));\n\t\n\tif (a.mData1 != b.mData1)\n\t\treturn (a.mData1 < b.mData1);\n\n\tif ((a.mStatus & 0xF) != (b.mStatus & 0xf))  // now compare the channel\n\t\treturn ((a.mStatus & 0xF) < (b.mStatus & 0xf));\n\n// reserved field comparisons - ignored until/if they are used\n\t\t\n//\t\twe're sorting this by MIDI, so we don't really care how the rest is sorted\n\treturn\t((a.mParameterID < b.mParameterID)\n\t\t\t\t&& (a.mElement < b.mElement)\n\t\t\t\t&& (a.mScope < b.mScope));\n}\n\n\n\nclass CompareMIDIMap {\n\tint compare (const CAAUMIDIMap &a, const CAAUMIDIMap &b) \n\t{\n\t\tif ((a.mStatus & 0xF0) < (b.mStatus & 0xF0))\n\t\t\treturn -1;\n\t\tif ((a.mStatus & 0xF0) > (b.mStatus & 0xF0))\n\t\t\treturn 1;\n\n\t\t\t// note event\n\t\tif (a.mStatus < 0xB0 || a.mStatus >= 0xD0)\n\t\t\treturn 0;\n\t\tif (a.mData1 > b.mData1) return 1;\n\t\tif (a.mData1 < b.mData1) return -1;\n\t\treturn 0;\n\t}\n\t\t\t\t\t \npublic:\n\tbool operator() (const CAAUMIDIMap &a, const CAAUMIDIMap &b) {\n\t\treturn compare (a, b) < 0;\n\t}\n\tbool Finish (const CAAUMIDIMap &a, const CAAUMIDIMap &b) {\n\t\treturn compare (a, b) != 0;\n\t}\n};\n\n\n/*\n\tusage: To find potential mapped events for a given status byte, where mMMapEvents is a sorted vec\n\tCompareMIDIMap comparObj;\n\tsortVecIter lower_iter = std::lower_bound(mMMapEvents.begin(), mMMapEvents.end(), inStatusByte, compareObj);\n\tfor (;lower_iter < mMMapEvents.end(); ++lower_iter) {\n\t\t// then, see if we go out of the status byte range, using the Finish method\n\t\tif (compareObj.Finish(map, tempMap)) // tempMap is a CAAUMIDIMap object with the status/dataByte 1 set\n\t\t\tbreak;\n\t// ...\n\t}\n\t\n\tin the for loop you call the MIDI_Matches call, to see if the MIDI event matches a given AUMIDIParam mapping\n\tspecial note: you HAVE to transform note on (with vel zero) events to the note off status byte\n*/\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUMIDIMapManager.cpp",
    "content": "/*\n     File: CAAUMIDIMapManager.cpp\n Abstract: CAAUMIDIMapManager.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAAUMIDIMapManager.h\"\n#include <AudioToolbox/AudioUnitUtilities.h>\n\nCAAUMIDIMapManager::CAAUMIDIMapManager()\n{\t\n\thotMapping = false;\t\n}\n\nstatic void FillInMap (CAAUMIDIMap &map, AUBase &That)\n{\n\tAudioUnitParameterInfo info;\n\tThat.GetParameterInfo (map.mScope, map.mParameterID, info);\n\t\n\tif (map.IsSubRange()) {\n\t\tmap.mMinValue = map.mSubRangeMin;\n\t\tmap.mMaxValue = map.mSubRangeMax;\n\t} else {\n\t\tmap.mMinValue = info.minValue;\t\t\t\n\t\tmap.mMaxValue = info.maxValue;\t\t\n\t}\n\t\n\tmap.mTransType = CAAUMIDIMap::GetTransformer(info.flags);\n}\n\nOSStatus\tCAAUMIDIMapManager::SortedInsertToParamaterMaps\t(AUParameterMIDIMapping *maps, UInt32 inNumMaps, AUBase &That)\n{\t\n\tfor (unsigned int i = 0; i < inNumMaps; ++i) \n\t{\n\t\tCAAUMIDIMap map(maps[i]);\n\n\t\tFillInMap (map, That);\n\t\t\n\t\tint idx = FindParameterIndex (maps[i]);\n\t\tif (idx > -1)\n\t\t\tmParameterMaps.erase(mParameterMaps.begin() + idx);\n\n\t\t\t// least disruptive place to put this is at the end\n\t\tmParameterMaps.push_back(map);\n\t}\n\t\n\tstd::sort(mParameterMaps.begin(), mParameterMaps.end(), CompareMIDIMap());\t\n\t\n\treturn noErr;\n}\n\nvoid CAAUMIDIMapManager::GetHotParameterMap(AUParameterMIDIMapping &outMap )\n{\n\toutMap = mHotMap;\n}\n\nvoid CAAUMIDIMapManager::SortedRemoveFromParameterMaps(AUParameterMIDIMapping *maps, UInt32 inNumMaps, bool &outMapDidChange)\n{\t\n\tif (hotMapping) {\n\t\thotMapping = false;\n\t}\n\n\toutMapDidChange = false;\n\tfor (unsigned int i = 0; i < inNumMaps; ++i) {\n\t\tint idx = FindParameterIndex (maps[i]);\n\t\tif (idx > -1) {\n\t\t\t//mParameterMaps[idx].Print();\n\t\t\tmParameterMaps.erase(mParameterMaps.begin() + idx);\n\t\t\toutMapDidChange = true;\n\t\t}\n\t}\n}\n\nvoid\tCAAUMIDIMapManager::ReplaceAllMaps (AUParameterMIDIMapping* inMappings, UInt32 inNumMaps, AUBase &That)\n{\n\tmParameterMaps.clear();\n\n\tfor (unsigned int i = 0; i < inNumMaps; ++i) {\n\t\tCAAUMIDIMap mapping(inMappings[i]);\n\n\t\tFillInMap (mapping, That);\n\t\tmParameterMaps.push_back (mapping);\n\t}\n\n\tstd::sort(mParameterMaps.begin(),mParameterMaps.end(), CompareMIDIMap());\t\n}\n\nbool CAAUMIDIMapManager::HandleHotMapping(UInt8 \tinStatus,\n\t\t\t\t\t\t\t\t\t\t  UInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t  UInt8 \tinData1,\n\t\t\t\t\t\t\t\t\t\t  AUBase\t&That)\n{ //used to set the hot map info\n\n\tif (inStatus == 0xf0) return false;\n\t\n\tif (!hotMapping) return false;\n\thotMapping = false;\n\n\tmHotMap.mStatus = inStatus | inChannel;  \n\tmHotMap.mData1 = inData1; \n\t\t\n\tSortedInsertToParamaterMaps (&mHotMap, 1, That);\n\treturn true;\n}\n\n#if DEBUG\n\nvoid CAAUMIDIMapManager::Print()\n{\n\tfor ( ParameterMaps::iterator i = mParameterMaps.begin(); i < mParameterMaps.end(); ++i) { \n\t\tCAAUMIDIMap* listmap =  &(*i);\t\t\n\t\tlistmap->Print();\t\t\n\t}\t\t\n}\n\n#endif // DEBUG\n\nvoid CAAUMIDIMapManager::GetMaps(AUParameterMIDIMapping* maps)\n{\n\tint i = 0;\n\tfor ( ParameterMaps::iterator iter = mParameterMaps.begin(); iter < mParameterMaps.end(); ++iter, ++i) { \n\t\tAUParameterMIDIMapping &listmap =  (*iter);\t\n\t\tmaps[i] = listmap;\t\n\t}\n}\n\nint CAAUMIDIMapManager::FindParameterIndex (AUParameterMIDIMapping &inMap)\n{ \n\t//used to get back hot mapping and one at a time maps, for ui\n\t\n\tint idx = 0;\n\tfor ( ParameterMaps::iterator i = mParameterMaps.begin(); i < mParameterMaps.end(); ++i) { \n\t\tCAAUMIDIMap & listmap =  (*i);\n\t\tif ( (listmap.mParameterID == inMap.mParameterID) && \n\t\t\t (listmap.mScope == inMap.mScope) && \n\t\t\t (listmap.mElement == inMap.mElement) )\n\t\t{ \n\t\t\t\treturn idx; \n\t\t}\n\t\tidx++;\n\t}\n\treturn -1;\n}\n\nbool CAAUMIDIMapManager::FindParameterMapEventMatch(\tUInt8\t\t\tinStatus,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8\t\t\tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8\t\t\tinData1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt8\t\t\tinData2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\tinBufferOffset,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tAUBase&\t\t\tinAUBase)\n{\n\tbool ret_value = false;\n\n\tif (inStatus == 0x90 && !inData2)\n\t\tinStatus = 0x80 | inChannel;\n\t\n\t//used to test for midi matches once map is made\n\tCAAUMIDIMap tempMap;\n\ttempMap.mStatus = inStatus | inChannel;\n\ttempMap.mData1 = inData1;\n\t\n\tCompareMIDIMap compareObj;\n\n\tAudioUnitEvent event;\n\tevent.mEventType = kAudioUnitEvent_ParameterValueChange;\n\tevent.mArgument.mParameter.mAudioUnit = inAUBase.GetComponentInstance();\n\t\n\tParameterMaps::iterator lower_iter = \n\tstd::lower_bound(mParameterMaps.begin(), mParameterMaps.end(), tempMap, compareObj);\n\t\n\twhile (lower_iter < mParameterMaps.end()) \n\t{\n\t\tCAAUMIDIMap & map = (*lower_iter);\n\t\tif (compareObj.Finish(map, tempMap)) \n\t\t\tbreak;\n\t\t\n\t\tFloat32 value;\n\t\tif (map.MIDI_Matches(inChannel, inData1, inData2, value))\n\t\t{\t\n\t\t\tinAUBase.SetParameter ( map.mParameterID, map.mScope, map.mElement, \n\t\t\t\t\t\t\t\t\tmap.ParamValueFromMIDILinear(value), inBufferOffset);\n\n\t\t\tevent.mArgument.mParameter.mParameterID = map.mParameterID;\n\t\t\tevent.mArgument.mParameter.mScope = map.mScope;\n\t\t\tevent.mArgument.mParameter.mElement = map.mElement;\n\t\t\t\n\t\t\tAUEventListenerNotify(NULL, NULL, &event);\n\t\t\tret_value = true;\n\t\t}\n\t\t++lower_iter;\n\t}\n\treturn ret_value;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUMIDIMapManager.h",
    "content": "/*\n     File: CAAUMIDIMapManager.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAAUMIDIMapManager_h_\n#define __CAAUMIDIMapManager_h_\n\n#include \"AUBase.h\"\n#include \"CAAUMIDIMap.h\"\n#include <vector>\n#include <AudioToolbox/AudioUnitUtilities.h>\n\nclass CAAUMIDIMapManager {\n\t\t\nprotected:\n\t\n\ttypedef std::vector<CAAUMIDIMap>\tParameterMaps;\n\tParameterMaps\t\t\t\t\t\tmParameterMaps;\n\t\n\tbool\t\t\t\t\t\t\t\thotMapping;\n\tAUParameterMIDIMapping\t\t\t\tmHotMap;\n\t\npublic:\n\t\t\t\t\t\n\t\t\t\t\t\t\tCAAUMIDIMapManager();\n\t\n\tUInt32\t\t\t\t\tNumMaps(){return static_cast<UInt32>(mParameterMaps.size());}\n\tvoid\t\t\t\t\tGetMaps(AUParameterMIDIMapping* maps);\n\t\n\tint\t\t\t\t\t\tFindParameterIndex(AUParameterMIDIMapping &map);\n\t\n\tvoid\t\t\t\t\tGetHotParameterMap(AUParameterMIDIMapping &outMap);\n\t\t\n\tvoid\t\t\t\t\tSortedRemoveFromParameterMaps\t(AUParameterMIDIMapping *maps, UInt32 inNumMaps, bool &outMapDidChange);\n\tOSStatus\t\t\t\tSortedInsertToParamaterMaps\t(AUParameterMIDIMapping *maps, UInt32 inNumMaps, AUBase &That);\n\t\n\tvoid\t\t\t\t\tReplaceAllMaps (AUParameterMIDIMapping* inMappings, UInt32 inNumMaps, AUBase &That);\n\t\n\tbool\t\t\t\t\tIsHotMapping(){return hotMapping;}\n\tvoid\t\t\t\t\tSetHotMapping (AUParameterMIDIMapping &inMap){hotMapping = true; mHotMap = inMap; }\n\t\n\tbool\t\t\t\t\tHandleHotMapping(\tUInt8 \tinStatus,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt8 \tinData1,\n\t\t\t\t\t\t\t\t\t\t\t\tAUBase\t&That);\n\t\n\t\t\n\tbool\t\t\t\t\tFindParameterMapEventMatch(UInt8 \tinStatus,\n\t\t\t\t\t\t\t\t\t\t\t\t\t   UInt8 \tinChannel,\n\t\t\t\t\t\t\t\t\t\t\t\t\t   UInt8 \tinData1,\n\t\t\t\t\t\t\t\t\t\t\t\t\t   UInt8 \tinData2,\n\t\t\t\t\t\t\t\t\t\t\t\t\t   UInt32\tinBufferOffset,\n\t\t\t\t\t\t\t\t\t\t\t\t\t   AUBase&\tinAUBase);\t\n#if DEBUG\n\tvoid\t\t\t\t\tPrint();\n#endif\n};\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUParameter.cpp",
    "content": "/*\n     File: CAAUParameter.cpp\n Abstract: CAAUParameter.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAAUParameter.h\"\n\nCAAUParameter::CAAUParameter() \n{\n\tmemset(this, 0, sizeof(CAAUParameter));\n}\n\nCAAUParameter::CAAUParameter(AudioUnit au, AudioUnitParameterID param, AudioUnitScope scope, AudioUnitElement element)\n{\n\tmemset(this, 0, sizeof(CAAUParameter));\n\tInit (au, param, scope, element);\n}\n\nCAAUParameter::CAAUParameter (AudioUnitParameter &inParam)\n{\n\tmemset(this, 0, sizeof(CAAUParameter));\n\tInit (inParam.mAudioUnit, inParam.mParameterID, inParam.mScope, inParam.mElement);\n}\n\nCAAUParameter::CAAUParameter(const CAAUParameter &a) \n{\n\tmemset(this, 0, sizeof(CAAUParameter));\n\t*this = a;\n}\n\nCAAUParameter &\tCAAUParameter::operator = (const CAAUParameter &a)\n{\n\tif (mParamName) CFRelease(mParamName);\n\tif (mParamTag) CFRelease(mParamTag);\n\tif (mNamedParams) CFRelease(mNamedParams);\n\t\n\tmemcpy(this, &a, sizeof(CAAUParameter));\n\n\tif (mParamName) CFRetain(mParamName);\n\tif (mParamTag) CFRetain(mParamTag);\n\tif (mNamedParams) CFRetain(mNamedParams);\n\t\n\treturn *this;\n}\n\nCAAUParameter::~CAAUParameter()\n{\n\tif (mParamName) CFRelease(mParamName);\n\tif (mParamTag) CFRelease(mParamTag);\n\tif (mNamedParams) CFRelease (mNamedParams);\n}\n\nvoid\t\tCAAUParameter::Init (AudioUnit au, AudioUnitParameterID param, AudioUnitScope scope, AudioUnitElement element)\n{\n\tmAudioUnit = au;\n\tmParameterID = param;\n\tmScope = scope;\n\tmElement = element;\n\t\n\tUInt32 propertySize = sizeof(mParamInfo);\n\tOSStatus err = AudioUnitGetProperty(au, kAudioUnitProperty_ParameterInfo,\n\t\t\tscope, param, &mParamInfo, &propertySize);\n\tif (err)\n\t\tmemset(&mParamInfo, 0, sizeof(mParamInfo));\n\tif (mParamInfo.flags & kAudioUnitParameterFlag_HasCFNameString) {\n\t\tmParamName = mParamInfo.cfNameString;\n\t\tif (!(mParamInfo.flags & kAudioUnitParameterFlag_CFNameRelease)) \n\t\t\tCFRetain (mParamName);\n\t} else\n\t\tmParamName = CFStringCreateWithCString(NULL, mParamInfo.name, kCFStringEncodingUTF8);\n\t\n\tconst char* str = 0;\n\tswitch (mParamInfo.unit)\n\t{\n\t\tcase kAudioUnitParameterUnit_Boolean:\n\t\t\tstr = \"T/F\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Percent:\n\t\tcase kAudioUnitParameterUnit_EqualPowerCrossfade:\n\t\t\tstr = \"%\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Seconds:\n\t\t\tstr = \"Secs\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_SampleFrames:\n\t\t\tstr = \"Samps\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Phase:\n\t\tcase kAudioUnitParameterUnit_Degrees:\n\t\t\tstr = \"Degr.\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Hertz:\n\t\t\tstr = \"Hz\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Cents:\n\t\tcase kAudioUnitParameterUnit_AbsoluteCents:\n\t\t\tstr = \"Cents\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_RelativeSemiTones:\n\t\t\tstr = \"S-T\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_MIDINoteNumber:\n\t\tcase kAudioUnitParameterUnit_MIDIController:\n\t\t\tstr = \"MIDI\";\n\t\t\t\t//these are inclusive, so add one value here\n\t\t\tmNumIndexedParams = short(mParamInfo.maxValue+1 - mParamInfo.minValue);\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Decibels:\n\t\t\tstr = \"dB\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_MixerFaderCurve1:\n\t\tcase kAudioUnitParameterUnit_LinearGain:\n\t\t\tstr = \"Gain\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Pan:\n\t\t\tstr = \"L/R\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Meters:\n\t\t\tstr = \"Mtrs\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Octaves:\n\t\t\tstr = \"8ve\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_BPM:\n\t\t\tstr = \"BPM\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Beats:\n\t\t\tstr = \"Beats\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Milliseconds:\n\t\t\tstr = \"msecs\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Ratio:\n\t\t\tstr = \"Ratio\";\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_Indexed:\n\t\t\t{\n\t\t\t\tpropertySize = sizeof(mNamedParams);\n\t\t\t\terr = AudioUnitGetProperty (au, \n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_ParameterValueStrings,\n\t\t\t\t\t\t\t\t\tscope, \n\t\t\t\t\t\t\t\t\tparam, \n\t\t\t\t\t\t\t\t\t&mNamedParams, \n\t\t\t\t\t\t\t\t\t&propertySize);\n\t\t\t\tif (!err && mNamedParams) {\n\t\t\t\t\tmNumIndexedParams = CFArrayGetCount(mNamedParams);\n\t\t\t\t} else {\n\t\t\t\t\t\t//these are inclusive, so add one value here\n\t\t\t\t\tmNumIndexedParams = short(mParamInfo.maxValue+1 - mParamInfo.minValue);\n\t\t\t\t}\n\t\t\t\tstr = NULL;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase kAudioUnitParameterUnit_CustomUnit:\n\t\t{\n\t\t\tCFStringRef unitName = mParamInfo.unitName;\n\t\t\tstatic char paramStr[256];\n\t\t\tCFStringGetCString (unitName, paramStr, 256, kCFStringEncodingUTF8);\n\t\t\tif (mParamInfo.flags & kAudioUnitParameterFlag_CFNameRelease)\n\t\t\t\tCFRelease (unitName);\n\t\t\tstr = paramStr;\n\t\t\tbreak;\n\t\t}\n\t\tcase kAudioUnitParameterUnit_Generic:\n\t\tcase kAudioUnitParameterUnit_Rate:\n\t\tdefault:\n\t\t\tstr = NULL;\n\t\t\tbreak;\n\t}\n\t\n\tif (str)\n\t\tmParamTag = CFStringCreateWithCString(NULL, str, kCFStringEncodingUTF8);\n\telse\n\t\tmParamTag = NULL;\n}\n\n\nFloat32\t\tCAAUParameter::GetValue() const\n{\n\tFloat32 value = 0.;\n\t//OSStatus err = \n\tAudioUnitGetParameter(mAudioUnit, mParameterID, mScope, mElement, &value);\n\treturn value;\n}\n\nCFStringRef CreateLocalizedStringForParameterValue ( double\t\t\t\t\tinParameterValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t const CAAUParameter *\tinParameter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t UInt32\t\t\t\t\tinDigits,\n\t\t\t\t\t\t\t\t\t\t\t\t\t UInt32\t\t\t\t\tminDigits) {\t\n\tif (!inParameter) return nil;\n\n\tAudioUnitParameterInfo info = inParameter->ParamInfo();\n\tint pow10;\n\n\tswitch (info.unit) {\n\t\tcase kAudioUnitParameterUnit_Hertz:\n\t\t\t// number of significant digits based on value\n\t\t\tpow10 = int(log10(fmax(inParameterValue, .000001)));\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// number of significant digits based on parameter range\n\t\t\tpow10 = int(log10(fmax(double(info.maxValue - info.minValue), .000001)));\n\t\t\tbreak;\n\t}\n\n\t// pow10\trange\t\t\tnDigitsAfterDecimal\n\t//\t-2\t\t.0100-.0999\t\t4\n\t//\t-1\t\t.100-.999\t\t3\n\t//\t0\t\t1.00-9.99\t\t2\n\t//\t1\t\t10.0-99.9\t\t1\n\t//\t2\t\t100-999\t\t\t0\n\t//\t3\t\t1000-9990\t\t-1\n\t//\t4\t\t10000-99900\t\t-2\n\t\n\tint nDigitsAfterDecimal = inDigits - (pow10 + 1);\n\tif (nDigitsAfterDecimal < 0)\n\t\tnDigitsAfterDecimal = 0;\t// the least number of digits possible is zero\n\n\tif (info.flags & kAudioUnitParameterFlag_IsHighResolution)\n\t\tnDigitsAfterDecimal = 4;\n\t\n\tCFLocaleRef currentLocale = CFLocaleCopyCurrent(); \n\tCFNumberFormatterRef numberFormatter = CFNumberFormatterCreate (NULL, currentLocale, kCFNumberFormatterDecimalStyle);\n\t\n\tCFNumberRef maxFractionDigits = CFNumberCreate (NULL, kCFNumberIntType, &nDigitsAfterDecimal);\n\t\n\tif (nDigitsAfterDecimal > 0)\n\t\tnDigitsAfterDecimal = minDigits;\n\t\t\n\tCFNumberRef minFractionDigits = CFNumberCreate (NULL, kCFNumberIntType, &nDigitsAfterDecimal); \n\n\tCFNumberFormatterSetProperty (numberFormatter, kCFNumberFormatterMinFractionDigits, minFractionDigits); \n\tCFNumberFormatterSetProperty (numberFormatter, kCFNumberFormatterMaxFractionDigits, maxFractionDigits); \n\tCFStringRef formattedNumberString = CFNumberFormatterCreateStringWithValue (NULL, numberFormatter, kCFNumberDoubleType, &inParameterValue); \n\n\tCFRelease(currentLocale); \n\tCFRelease(numberFormatter); \n\tCFRelease(maxFractionDigits);\n\tCFRelease(minFractionDigits);\n\n\treturn formattedNumberString;\n}\n\nCFStringRef CreateLocalizedStringForParameterValue ( double\t\t\t\t\tinParameterValue,\n\t\t\t\t\t\t\t\t\t\t\t\t\t const CAAUParameter *\tinParameter,\n\t\t\t\t\t\t\t\t\t\t\t\t\t UInt32\t\t\t\t\tinDigits) {\t\n\treturn CreateLocalizedStringForParameterValue (inParameterValue, inParameter, inDigits, 1);\n}\n\ndouble ValueForLocalizedParameterString (CFStringRef string, const CAAUParameter * inParameter) {\n\tCFLocaleRef currentLocale = CFLocaleCopyCurrent(); \n\tCFNumberFormatterRef numberFormatter = CFNumberFormatterCreate (NULL, currentLocale, kCFNumberFormatterDecimalStyle);\n\n\tdouble value = 0;\n\tBoolean worked = CFNumberFormatterGetValueFromString (numberFormatter, string, NULL, kCFNumberDoubleType, &value);\n\t\n\tCFRelease(currentLocale);\n\tCFRelease(numberFormatter);\n\t\n\tif (worked)\n\t\treturn value;\n\telse {\n\t\tAudioUnitParameterInfo info = inParameter->ParamInfo();\n\t\treturn info.defaultValue;\n\t}\n}\n\nCFStringRef CAAUParameter::GetStringFromValueCopy(const Float32 *value) const\n{\n\tif (HasNamedParams())\n\t{\n\t\tFloat32 val = (value == NULL ? GetValue() : *value);\n\t\tint index = int(mParamInfo.minValue) + int(val);\n\t\tCFStringRef str = GetParamName (index);\n\t\tif (str) {\n\t\t\tCFRetain (str);\n\t\t\treturn str;\n\t\t}\n\t}\n\telse if (ValuesHaveStrings()) \n\t{\n\t\tAudioUnitParameterStringFromValue stringValue;\n\t\tstringValue.inParamID = mParameterID;\n\t\tstringValue.inValue = value;\n\t\tstringValue.outString = NULL;\n\t\tUInt32 propertySize = sizeof(stringValue);\n\t\t\n\t\tOSStatus err = AudioUnitGetProperty (mAudioUnit, \n\t\t\t\t\t\t\t\t\t\t\tkAudioUnitProperty_ParameterStringFromValue,\n\t\t\t\t\t\t\t\t\t\t\tmScope, \n\t\t\t\t\t\t\t\t\t\t\t0, \n\t\t\t\t\t\t\t\t\t\t\t&stringValue, \n\t\t\t\t\t\t\t\t\t\t\t&propertySize);\n\t\t\n\t\tif (!err && stringValue.outString != NULL)\n\t\t\treturn stringValue.outString;\n\t}\n\t\n\tFloat32 val = (value == NULL ? GetValue() : *value);\n\tAudioUnitParameterUnit unit = this->ParamInfo().unit;\n\tif (unit ==  kAudioUnitParameterUnit_Cents || unit == kAudioUnitParameterUnit_AbsoluteCents)\n\t\treturn CreateLocalizedStringForParameterValue(val, this, 4, 0);\n\telse\n\t\treturn CreateLocalizedStringForParameterValue(val, this, 4);\n}\n\nFloat32 CAAUParameter::GetValueFromString(CFStringRef str) const\n{\n\tif (ValuesHaveStrings()) \n\t{\n\t\tAudioUnitParameterValueFromString valueString;\n\t\tvalueString.inParamID = mParameterID;\n\t\tvalueString.inString = str;\n\t\tUInt32 propertySize = sizeof(valueString);\n\t\t\n\t\tOSStatus err = AudioUnitGetProperty (mAudioUnit, \n\t\t\t\t\t\t\t\t\t\tkAudioUnitProperty_ParameterValueFromString,\n\t\t\t\t\t\t\t\t\t\tmScope, \n\t\t\t\t\t\t\t\t\t\t0, \n\t\t\t\t\t\t\t\t\t\t&valueString, \n\t\t\t\t\t\t\t\t\t\t&propertySize);\n\t\t\t\t\t\t\t\t\t\t\n\t\tif (!err) {\n\t\t\treturn valueString.outValue;\n\t\t}\n\t}\n\t\n\treturn (Float32) ValueForLocalizedParameterString(str, this);\n}\n\nvoid\t\tCAAUParameter::SetValue(\tAUParameterListenerRef\t\tinListener, \n\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinObject,\n\t\t\t\t\t\t\t\t\tFloat32\t\t\t\t\t\t\tinValue) const\n{\n    // clip inValue as: maxValue >= inValue >= minValue before setting\n    Float32 valueToSet = inValue;\n    if (valueToSet > mParamInfo.maxValue)\n        valueToSet = mParamInfo.maxValue;\n    if (valueToSet < mParamInfo.minValue)\n        valueToSet = mParamInfo.minValue;\n    \n\tAUParameterSet(inListener, inObject, this, valueToSet, 0);\n}\n\n#if DEBUG\nvoid\tCAAUParameter::Print() const\n{\n\tUInt32 clump = 0;\n\tGetClumpID (clump);\n\t\n\tUInt32 len = static_cast<UInt32>(CFStringGetLength(mParamName));\n\tchar* chars = (char*)malloc (len * 2); // give us plenty of room for unichar chars\n\tif (!CFStringGetCString (mParamName, chars, len * 2, kCFStringEncodingUTF8))\n\t\tchars[0] = 0;\n\t\n\tprintf (\"ID: %ld, Clump: %u, Name: %s\\n\", (long unsigned int) mParameterID, (unsigned int) clump, chars);\n\tfree (chars);\n}\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUParameter.h",
    "content": "/*\n     File: CAAUParameter.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAAUParameter_h__\n#define __CAAUParameter_h__\n\n#include <AudioToolbox/AudioUnitUtilities.h>\n\n// ____________________________________________________________________________\n//\tCAAUParameter\n//\tcomplete parameter specification\n\t/*! @class CAAUParameter */\nclass CAAUParameter : public AudioUnitParameter {\npublic:\n\t\t\t\t\t\t\t\t/*! @ctor CAAUParameter.0 */\n\t\t\t\t\t\t\t\tCAAUParameter();\n\t\t\t\t\t\t\t\t/*! @ctor CAAUParameter.1 */\n\t\t\t\t\t\t\t\tCAAUParameter(AudioUnit au, AudioUnitParameterID param, AudioUnitScope scope, AudioUnitElement element);\n\t\t\t\t\t\t\t\t/*! @ctor CAAUParameter.2 */\n\t\t\t\t\t\t\t\tCAAUParameter(AudioUnitParameter &inParam);\n\t\t\t\t\t\t\t\t/*! @ctor CAAUParameter.3 */\n\t\t\t\t\t\t\t\tCAAUParameter(const CAAUParameter &a);\n\t\t\t\t\t\t\t\t/*! @dtor ~CAAUParameter */\n\t\t\t\t\t\t\t\t~CAAUParameter();\n\t\t\n\t/*! @method operator <@ */\n\tbool\t\t\t\t\t\toperator < (const CAAUParameter &a) const \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\treturn memcmp(this, &a, sizeof(AudioUnitParameter)) < 0; \n\t\t\t\t\t\t\t\t}\n\n\t/*! @method operator ==@ */\n\tbool\t\t\t\t\t\toperator == (const CAAUParameter &a) const \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\treturn !memcmp(this, &a, sizeof(AudioUnitParameter)); \n\t\t\t\t\t\t\t\t}\n\t\n\t/*! @method operator =@ */\n\tCAAUParameter &\t\t\t\toperator = (const CAAUParameter &a);\n\t\n\t/*! @method GetValue */\n\tFloat32\t\t\t\t\t\tGetValue() const;\n\t/*! @method SetValue */\n\tvoid\t\t\t\t\t\tSetValue(\tAUParameterListenerRef\t\t\tinListener, \n\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinObject,\n\t\t\t\t\t\t\t\t\t\t\tFloat32\t\t\t\t\t\t\tinValue) const;\n\t\n\t/*! @method GetName */\n\tCFStringRef\t\t\t\t\tGetName() const { return mParamName; }  \n\t\t\t\t\t\t\t\t\t\t// borrowed reference!\n\n\t/*! @method GetStringFromValueCopy */\n\tCFStringRef\t\t\t\t\tGetStringFromValueCopy(const Float32 *value = NULL) const;\t\n\t\t\t\t\t\t\t\t\t\t// returns a copy of the name of the current parameter value\n\t\t\t\t\t\t\t\t\t\t// or null if there is no name associated\n\t\t\t\t\t\t\t\t\t\t// caller must release\n\t/*! @method ValuesHaveStrings */\n\tbool\t\t\t\t\t\tValuesHaveStrings () const \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\treturn (mParamInfo.flags & kAudioUnitParameterFlag_ValuesHaveStrings) != 0; \n\t\t\t\t\t\t\t\t}\n\t\n\t/*! @method GetValueFromString */\n\tFloat32\t\t\t\t\t\tGetValueFromString (CFStringRef str) const;\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t// caller must release\n\n\t/*! @method ParamInfo */\n\tconst AudioUnitParameterInfo &\t\t\n\t\t\t\t\t\t\t\tParamInfo()\tconst { return mParamInfo; }\n\n\t/*! @method GetParamTag */\n\tCFStringRef\t\t\t\t\tGetParamTag() const\t{ return mParamTag; }\n\t\t\t\t\t\t\t\t\t// this may return null! - \n\t\t\t\t\t\t\t\t\t// in which case there is no descriptive tag for the parameter\n\n\t/*! @method GetParamName */\n\tCFStringRef\t\t\t\t\tGetParamName (int inIndex) const\n\t\t\t\t\t\t\t\t\t// this can return null if there is no name for the parameter\n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\treturn (mNamedParams && inIndex < mNumIndexedParams) \n\t\t\t\t\t\t\t\t\t\t\t\t? (CFStringRef) CFArrayGetValueAtIndex(mNamedParams, inIndex)\n\t\t\t\t\t\t\t\t\t\t\t\t: 0; \n\t\t\t\t\t\t\t\t}\n\t\n\t/*! @method GetNumIndexedParams */\n\tint\t\t\t\t\t\t\tGetNumIndexedParams () const { return mNumIndexedParams; }\n\t\n\t/*! @method IsIndexedParam */\n\tbool\t\t\t\t\t\tIsIndexedParam () const { return mNumIndexedParams != 0; }\n\t\n\t/*! @method HasNamedParams */\n\tbool\t\t\t\t\t\tHasNamedParams () const { return IsIndexedParam() && mNamedParams; }\n\t\n\t/*! @method GetClumpID */\n\tbool\t\t\t\t\t\tGetClumpID (UInt32 &outClumpID) const \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\tif (mParamInfo.flags & kAudioUnitParameterFlag_HasClump) {\n\t\t\t\t\t\t\t\t\t\toutClumpID = mParamInfo.clumpID;\n\t\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t/*! @method HasDisplayTransformation */\n\tbool\t\t\t\t\t\tHasDisplayTransformation () const \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\treturn GetAudioUnitParameterDisplayType (mParamInfo.flags); \n\t\t\t\t\t\t\t\t}\n\n\t/*! @method IsExpert */\n\tbool\t\t\t\t\t\tIsExpert () const \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\treturn mParamInfo.flags & kAudioUnitParameterFlag_ExpertMode; \n\t\t\t\t\t\t\t\t}\n#if DEBUG\n\tvoid\t\t\t\t\t\tPrint () const;\n#endif\n\t\n\t\t// these methods are defined in CAPersistence.cpp\n\t\t// they will persist and restore only the scope, element and param ID's of the AudioUnitParameter\n\t\t// however, this is sufficient to be able to save/restore a CAAUParameter object\n\tvoid\t\t\t\t\t\tSave (CFPropertyListRef &outData) const;\n\t\n\tstatic void\t\t\t\t\tSave (const AudioUnitParameter &inParam, CFPropertyListRef &outData);\n\t\n\tstatic OSStatus\t\t\t\tRestore\t(const CFPropertyListRef inData, AudioUnitParameter &outParam);\n\nprotected:\n\t// cached parameter info\n\t/*! @var mParamInfo */\n\tAudioUnitParameterInfo\t\tmParamInfo;\n\t/*! @var mParamName */\n\tCFStringRef\t\t\t\t\tmParamName;\n\t/*! @var mParamTag */\n\tCFStringRef\t\t\t\t\tmParamTag;\n\t/*! @var mNumIndexedParams */\n\tshort\t\t\t\t\t\tmNumIndexedParams;\n\t/*! @var mNamedParams */\n\tCFArrayRef\t\t\t\t\tmNamedParams;\n\t\nprivate:\n\tvoid\t\t\t\t\t\tInit (AudioUnit au, AudioUnitParameterID param, AudioUnitScope scope, AudioUnitElement element);\n\n};\n\n\n\n#endif // __CAAUParameter_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUProcessor.cpp",
    "content": "/*\n     File: CAAUProcessor.cpp\n Abstract: CAAUProcessor.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAAUProcessor.h\"\t\t\t\t\t\t\n#include \"CAXException.h\"\n\nstatic OSStatus SilenceInputCallback (void \t\t*inRefCon, \n\t\t\t\t\tAudioUnitRenderActionFlags *ioActionFlags, \n\t\t\t\t\tconst AudioTimeStamp \t\t*inTimeStamp, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinBusNumber, \n\t\t\t\t\tUInt32 \t\t\t\t\t\tinNumberFrames, \n\t\t\t\t\tAudioBufferList \t\t\t*ioData)\n{\n\tAudioBuffer *buf = ioData->mBuffers;\n\tfor (UInt32 i = ioData->mNumberBuffers; i--; ++buf)\n\t\tmemset((Byte *)buf->mData, 0, buf->mDataByteSize);\n\t\t\n\t\t//provide a hint that our input data is silent.\n\t*ioActionFlags &= kAudioUnitRenderAction_OutputIsSilence;\n\treturn noErr;\n}\n\nstatic AURenderCallbackStruct sSilentCallback = { SilenceInputCallback, NULL };\n\n\nCAAUProcessor::CAAUProcessor (const CAComponent& inComp)\n\t: mPreflightABL(NULL)\n{\n\tOSStatus result = CAAudioUnit::Open (inComp, mUnit);\n\tif (result)\n\t\tthrow result;\n\tmemset (&mUserCallback, 0, sizeof (AURenderCallbackStruct));\n\tmMaxTailTime = 10.;\n}\n\nCAAUProcessor::~CAAUProcessor ()\n{\n\tif (mPreflightABL)\n\t\tdelete mPreflightABL;\n}\n\ninline OSStatus\t\tSetInputCallback (CAAudioUnit &inUnit, AURenderCallbackStruct &inInputCallback)\n{\n\treturn inUnit.SetProperty (kAudioUnitProperty_SetRenderCallback, \n\t\t\t\t\t\t\t\t\t\t\tkAudioUnitScope_Input, \n\t\t\t\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\t\t\t\t&inInputCallback, \n\t\t\t\t\t\t\t\t\t\t\tsizeof(inInputCallback));\n}\n\nstatic AURenderCallbackStruct sRenderCallback;\nstatic OSStatus PrerollRenderProc (\tvoid \t\t\t\t\t\t* /*inRefCon*/, \n\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags\t\t* /*inActionFlags*/,\n\t\t\t\t\t\t\t\tconst AudioTimeStamp \t\t\t* /*inTimeStamp*/, \n\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\t/*inBusNumber*/,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t/*inNumFrames*/, \n\t\t\t\t\t\t\t\tAudioBufferList \t\t\t\t*ioData)\n{\n\tAudioBuffer *buf = ioData->mBuffers;\n\tfor (UInt32 i = ioData->mNumberBuffers; i--; ++buf)\n\t\tmemset((Byte *)buf->mData, 0, buf->mDataByteSize);\n\n\treturn noErr;\n}\n\nOSStatus \tPreroll (CAAudioUnit & inAU, UInt32 inFrameSize)\n{\n\tCAStreamBasicDescription desc;\n\tOSStatus result = inAU.GetFormat (kAudioUnitScope_Input, 0, desc);\n\tbool hasInput = false;\n\t\t\t//we have input\t\n\tif (result == noErr) \n\t{\n\t\tsRenderCallback.inputProc = PrerollRenderProc;\n\t\tsRenderCallback.inputProcRefCon = 0;\n\t\t\n\t\tresult = inAU.SetProperty (kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, \n\t\t\t\t\t\t\t\t0, &sRenderCallback, sizeof(sRenderCallback));\n\t\tif (result) return result;\n\t\thasInput = true;\n\t}\n\t\n\tAudioUnitRenderActionFlags flags = 0;\n\tAudioTimeStamp time;\n\tmemset (&time, 0, sizeof(time));\n\ttime.mFlags = kAudioTimeStampSampleTimeValid;\n\n\tCAStreamBasicDescription outputFormat;\n\tca_require_noerr (result = inAU.GetFormat (kAudioUnitScope_Output, 0, outputFormat), home);\n\t{\n\t\tAUOutputBL list (outputFormat, inFrameSize);\n\t\tlist.Prepare ();\n\t\t\n\t\tresult = inAU.Render (&flags, &time, 0, inFrameSize, list.ABL());\n\t\tif (result) { printf(\"A result %d\\n\", (int)result); goto home; }\n\t}\n\nhome:\n\tif (hasInput) {\n            // remove our installed callback\n\t\tsRenderCallback.inputProc = 0;\n\t\tsRenderCallback.inputProcRefCon = 0;\n\t\t\n\t\tinAU.SetProperty (kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, \n\t\t\t\t\t\t\t\t0, &sRenderCallback, sizeof(sRenderCallback));\n\t}\n\treturn result;\n}\n\n\nOSStatus\t\tCAAUProcessor::EstablishInputCallback (AURenderCallbackStruct &inInputCallback)\n{\n\tOSStatus result = SetInputCallback (mUnit, inInputCallback);\n\tif (!result)\n\t\tmemcpy (&mUserCallback, &inInputCallback, sizeof(AURenderCallbackStruct));\n\telse\n\t\tmemset (&mUserCallback, 0, sizeof (AURenderCallbackStruct));\n\treturn result;\n}\n\nOSStatus\t\tCAAUProcessor::SetAUPreset (CFPropertyListRef \t\t\tinPreset)\n{\n\treturn mUnit.SetProperty (kAudioUnitProperty_ClassInfo, \n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, \n\t\t\t\t\t\t\t\t\t0, \n\t\t\t\t\t\t\t\t\t&inPreset, \n\t\t\t\t\t\t\t\t\tsizeof(inPreset));\n}\n\nOSStatus\t\tCAAUProcessor::SetAUPresetIndex (SInt32\t\t\t\tinPresetIndex)\n{\n\tAUPreset aup;\n\taup.presetName = NULL;\n\taup.presetNumber = inPresetIndex;\n\treturn mUnit.SetPresentPreset(aup);\n}\n\n\nOSStatus\t\tCAAUProcessor::SetParameter (AudioUnitParameterID inID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 value, UInt32 bufferOffsetFrames)\n{\n\treturn mUnit.SetParameter(inID, scope, element, value, bufferOffsetFrames);\n}\n\n\nUInt32\t\t\tCAAUProcessor::MaxFramesPerRender () const\n{\n\tUInt32 maxFrames;\n\tUInt32 propSize = sizeof (maxFrames);\n\tif (mUnit.GetProperty (kAudioUnitProperty_MaximumFramesPerSlice,\n\t\t\t\t\t\t\tkAudioUnitScope_Global, 0, &maxFrames, &propSize))\n\t{\n\t\treturn 0;\n\t}\n\treturn maxFrames;\n}\n\nOSStatus\t\tCAAUProcessor::SetMaxFramesPerRender (UInt32 inMaxFrames)\n{\n\treturn mUnit.SetProperty (kAudioUnitProperty_MaximumFramesPerSlice,\n\t\t\t\t\t\t\tkAudioUnitScope_Global, 0, &inMaxFrames, sizeof(inMaxFrames));\n}\n\nOSStatus\t\tCAAUProcessor::Initialize (const CAStreamBasicDescription \t&inInputDesc,\n\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription \t&inOutputDesc,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt64 \t\t\t\t\t\tinNumInputSamples)\n{\n\treturn DoInitialisation (inInputDesc, inOutputDesc, inNumInputSamples, MaxFramesPerRender());\n}\n\nOSStatus\t\tCAAUProcessor::Reinitialize (UInt32 inNewMaxFrames)\n{\n\tOSStatus result;\n\tCAStreamBasicDescription inputDesc, outputDesc;\n\t\n\tca_require_noerr (result = mUnit.GetFormat (kAudioUnitScope_Input, 0, inputDesc), home);\n\tca_require_noerr (result = mUnit.GetFormat (kAudioUnitScope_Output, 0, outputDesc), home);\n\t\n\tca_require_noerr (result = DoInitialisation (inputDesc, outputDesc, mNumInputSamples, inNewMaxFrames), home);\n\t\nhome:\n\treturn result;\n}\n\n\nOSStatus\t\tCAAUProcessor::DoInitialisation (const CAStreamBasicDescription \t&inInputFormat,\n\t\t\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription \t\t&inOutputFormat,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt64\t\t\t\t\t\t\t\tinNumInputSamples,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\t\tinMaxFrames)\n{\n\tOSStatus result;\n\t\n\tif (inNumInputSamples == 0 && IsOfflineAU())\n\t\treturn kAudioUnitErr_InvalidOfflineRender;\n\t\t\n\tmNumInputSamples = inNumInputSamples;\n\t\n\t\t// first check that we can do this number of channels\n\tif (mUnit.CanDo (inInputFormat.NumberChannels(), inOutputFormat.NumberChannels()) == false)\n\t\tca_require_noerr (result = kAudioUnitErr_FailedInitialization, home);\n\t\n\t// just uninitialise the AU as a matter of course\n\tca_require_noerr (result = mUnit.Uninitialize(), home);\n\n\tca_require_noerr (result = mUnit.SetFormat (kAudioUnitScope_Input, 0, inInputFormat), home); \n\tca_require_noerr (result = mUnit.SetFormat (kAudioUnitScope_Output, 0, inOutputFormat), home); \n\tca_require_noerr (result = SetMaxFramesPerRender (inMaxFrames), home);\n\t\n#if !TARGET_OS_IPHONE\n\t\t// if we're any AU but an offline AU, we should tell it that we've processing offline\n\tif (!IsOfflineAU()) {\n\t\tUInt32 isOffline = (IsOfflineContext() ? 1 : 0);\n\t\t\t// don't care whether this succeeds of fails as many AU's don't care about this\n\t\t\t// but the ones that do its important that they are told their render context\n\t\tmUnit.SetProperty (kAudioUnitProperty_OfflineRender, kAudioUnitScope_Global, 0, &isOffline, sizeof(isOffline));\n\t} else {\n\t\t\t// tell the offline unit how many input samples we wish to process...\n\t\tmUnit.SetProperty (kAudioUnitOfflineProperty_InputSize,\n\t\t\t\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t&mNumInputSamples, sizeof(mNumInputSamples));\n\t}\n#endif\n\t\n\tca_require_noerr (result = mUnit.Initialize(), home);\n\n\tca_require_noerr (result = SetInputCallback (mUnit, mUserCallback), home);\n\t\n\t// finally reset our time stamp\n\t// the time stamp we use with the AU Render - only sample count is valid\n\tmemset (&mRenderTimeStamp, 0, sizeof(mRenderTimeStamp));\n\tmRenderTimeStamp.mFlags = kAudioTimeStampSampleTimeValid;\n\n\t// now, if we're NOT an offline AU, preflighting is not required\n\t// if we are an offline AU, we should preflight.. an offline AU will tell us when its preflighting is done\n\tmPreflightDone = false;\n\n\tif (mPreflightABL) {\n\t\tdelete mPreflightABL;\n\t\tmPreflightABL = NULL;\n\t}\n\t\n\tmPreflightABL = new AUOutputBL (inOutputFormat);\n\n\tmLastPercentReported = 0;\n\t\nhome:\n\treturn result;\n}\n\nvoid\t\tCAAUProcessor::CalculateRemainderSamples (Float64 inSampleRate)\n{\n\tmLatencySamples = 0;\n\tmTailSamplesToProcess = 0;\n\tmTailSamples = 0;\n\tmTailSamplesRemaining = 0;\n\treturn;\n\t\n\t\t// nothing to do because we're not processing offline\n\tif (IsOfflineContext() == false) return;\n\t\t\n\t\t// because an offline unit has some indeterminancy about what it does with the input samples\n\t\t// it is *required* to deal internally with both latency and tail\n\tif (!IsOfflineAU()) \n\t{\n\t\t\t// when offline we need to deal with both latency and tail\n\t\t\t\n\t\t// if the AU has latency - how many samples at the start will be zero?\n\t\t// we'll end up chucking these away.\n\t\tFloat64 renderTimeProps;\n\t\tUInt32 propSize = sizeof (renderTimeProps);\n\t\tOSStatus result = mUnit.GetProperty (kAudioUnitProperty_Latency, kAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t&renderTimeProps, &propSize);\n\t\t\n\t\tFloat64 latencySamples = 0;\n\t\tif (result == noErr) // we have latency to deal with - its reported in seconds\n\t\t\tlatencySamples = renderTimeProps * inSampleRate;\n\t\t\t\n\t\t\t// AU tail\n\t\t\t// if the AU has a tail - we'll pull that many zeroes through at the end to flush\n\t\t\t// out this tail - think of a decaying digital delay or reverb...\n\t\tresult = mUnit.GetProperty (kAudioUnitProperty_TailTime, kAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t\t&renderTimeProps, &propSize);\n\t\tif (renderTimeProps > mMaxTailTime)\n\t\t\trenderTimeProps = mMaxTailTime;\n\t\tFloat64 tailSamples = 0;\n\t\tif (result == noErr)\n\t\t\ttailSamples = renderTimeProps * inSampleRate;\n\t\t\n\t\t// this dictates how many samples at the end we need to pull through...\n\t\t// we add latency to tail because we throw the latency samples away from the start of the rendering\n\t\t// and we have to pull that many samples after the end of course to get the last of the original data\n\t\t// then to that is added the tail of the effect...\n\t\tmTailSamplesToProcess = UInt32(tailSamples + latencySamples);\n\t\tmTailSamples = UInt32(tailSamples);\n\t\tmLatencySamples = UInt32(latencySamples);\n\t}\n}\n\n#if !TARGET_OS_IPHONE\nCFStringRef\t\tCAAUProcessor::GetOLPreflightName () const\n{\n\tif (OfflineAUNeedsPreflight()) \n\t{\n\t\tCFStringRef str;\n\t\tUInt32 size = sizeof(str);\n\t\tOSStatus result = mUnit.GetProperty (kAudioUnitOfflineProperty_PreflightName,\n\t\t\t\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t&str, &size);\n\t\treturn result ? NULL : str;\n\t}\n\treturn NULL; // says NO to preflighting\n}\n\nbool\t\tCAAUProcessor::OfflineAUNeedsPreflight () const\n{\n\tif (IsOfflineAU()) {\n\t\tUInt32 preflightRequirements;\n\t\tUInt32 size = sizeof(preflightRequirements);\n\t\tOSStatus result = mUnit.GetProperty (kAudioUnitOfflineProperty_PreflightRequirements,\n\t\t\t\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t&preflightRequirements, &size);\n\t\tif (result)\n\t\t\treturn false;\n\t\treturn preflightRequirements;\n\t}\n\treturn false;\n}\n#endif\n\nOSStatus\tCAAUProcessor::Preflight (bool inProcessPreceedingTail)\n{\n\tprintf(\">>>>CAAUProcessor::Preflight\\n\");\n\t\t//we're preflighting again, so reset ourselves\n\tif (mPreflightDone) {\n\t\tmPreflightDone = false;\n\t\t// the time stamp we use with the AU Render - only sample count is valid\n\t\tmemset (&mRenderTimeStamp, 0, sizeof(mRenderTimeStamp));\n\t\tmRenderTimeStamp.mFlags = kAudioTimeStampSampleTimeValid;\n\t\tmUnit.GlobalReset();\n\t}\n\n\tFloat64 sampleRate;\n\tOSStatus result = mUnit.GetSampleRate (kAudioUnitScope_Output, 0, sampleRate);\n\tCalculateRemainderSamples (sampleRate);\n\n\tUInt32 numFrames = MaxFramesPerRender();\n\tif (numFrames == 0)\n\t\treturn kAudioUnitErr_InvalidProperty;\n\t\n\tif (!IsOfflineAU()) \n\t{\n\t\tif ((IsOfflineContext() == false && inProcessPreceedingTail) || IsOfflineContext())\n\t\t{\n\t\t\t// re-establish the user's input callback\n\t\t\tca_require_noerr (result = SetInputCallback (mUnit, mUserCallback), home);\n\n\t\t\t// Consume the number of input samples indicated by the AU's latency or tail\n\t\t\t// based on whether the AU is being used in an offline context or not.\n\t\t\t\n\t\t\tUInt32 latSamps = IsOfflineContext() ? mLatencySamples : mTailSamples;\t\n\t\t\tprintf(\"latSamps %d\\n\", (int)latSamps);\n\t\t\tlatSamps = 0;\n\t\t\twhile (latSamps > 0)\n\t\t\t{\n\t\t\t\tif (latSamps < numFrames)\n\t\t\t\t\tnumFrames = latSamps;\n\t\t\t\t\t\n\t\t\t\t\t// process the samples (the unit's input callback will read the samples\n\t\t\t\t\t// from the file and convert them to float for processing\n\t\t\t\tAudioUnitRenderActionFlags renderFlags = 0;\n\t\t\t\tmPreflightABL->Prepare();\n\t\t\t\tresult = mUnit.Render (&renderFlags, &mRenderTimeStamp, 0, numFrames, mPreflightABL->ABL());\n\t\t\t\tif (result) { printf(\"B result %d\\n\", (int)result); goto home; }\n\t\t\n\t\t\t\tmRenderTimeStamp.mSampleTime += numFrames;\n\t\t\t\tlatSamps -= numFrames;\n\t\t\t}\n\t\t\tif (IsOfflineContext())\n\t\t\t\tmRenderTimeStamp.mSampleTime = mLatencySamples;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// processing real-time but not processing preceeding tail, so we should preroll the AU\n\t\t\tca_require_noerr (result = Preroll(mUnit, numFrames), home);\n\t\t\t\n\t\t\t// re-establish the user's input callback\n\t\t\tca_require_noerr (result = SetInputCallback (mUnit, mUserCallback), home);\n\t\t\t\n\t\t\tmRenderTimeStamp.mSampleTime = 0;\n\t\t}\n\t}\n#if !TARGET_OS_IPHONE\n\telse\n\t{\n\t\t\t// re-establish the user's input callback\n\t\tca_require_noerr (result = SetInputCallback (mUnit, mUserCallback), home);\n\t\t\n\t\tUInt32 preflightRequirements;\n\t\tUInt32 size; size = sizeof(preflightRequirements);\n\t\tca_require_noerr (result = mUnit.GetProperty (kAudioUnitOfflineProperty_PreflightRequirements,\n\t\t\t\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t&preflightRequirements, &size), home);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t// 0 indicates none, otherwise optional or required -> we do it for either\n\t\tif (preflightRequirements) \n\t\t{\n\t\t\tfor (;;) {\n\t\t\t\t// here we need to do the preflight loop - we don't expect any data back, but have to \n\t\t\t\t// give the offline unit all of its input data to allow it to prepare its processing\n\t\t\t\tAudioUnitRenderActionFlags renderFlags = kAudioOfflineUnitRenderAction_Preflight;\n\t\t\t\tmPreflightABL->Prepare();\n\t\t\t\tresult = mUnit.Render (&renderFlags, &mRenderTimeStamp, 0, numFrames, mPreflightABL->ABL());\n\t\t\t\tif (result) { printf(\"C result %d\\n\", (int)result); goto home; }\n\t\t\t\tmRenderTimeStamp.mSampleTime += numFrames;\n\t\t\n\t\t\t\tif (renderFlags & kAudioOfflineUnitRenderAction_Complete)\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\t// the time stamp we use with the AU Render - only sample count is valid\n\t\tmRenderTimeStamp.mSampleTime = 0;\n\t}\n#endif\n\n\tif (result == noErr) {\n\t\tmPreflightDone = true;\n\t}\n\t\nhome:\n\tprintf(\"<<<<CAAUProcessor::Preflight\\n\");\n\treturn result;\n}\n\n#if !TARGET_OS_IPHONE\nOSStatus \tCAAUProcessor::OfflineAUPreflight (UInt32 inNumFrames, bool &outIsDone)\n{\n\tif (!IsOfflineAU())\n\t\treturn -50/*paramErr*/;\n\tif (mNumInputSamples == 0)\n\t\treturn -50/*paramErr*/;\n\n\tUInt32 preflightRequirements;\n\tUInt32 size = sizeof(preflightRequirements);\n\tOSStatus result;\n\tca_require_noerr (result = mUnit.GetProperty (kAudioUnitOfflineProperty_PreflightRequirements,\n\t\t\t\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t\t\t\t&preflightRequirements, &size), home);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t// 0 indicates none, otherwise optional or required -> we do it for either\n\tif (preflightRequirements) \n\t{\n\t\tAudioUnitRenderActionFlags renderFlags = kAudioOfflineUnitRenderAction_Preflight;\n\t\tmPreflightABL->Prepare();\n\t\tresult = mUnit.Render (&renderFlags, &mRenderTimeStamp, 0, inNumFrames, mPreflightABL->ABL());\n\t\tif (result) { printf(\"D result %d\\n\", (int)result); goto home; }\n\t\tmRenderTimeStamp.mSampleTime += inNumFrames;\n\t\t\n\t\tif (renderFlags & kAudioOfflineUnitRenderAction_Complete) {\n\t\t\toutIsDone = true;\n\t\t\tmRenderTimeStamp.mSampleTime = 0;\n\t\t\tmPreflightDone = true;\n\t\t\tmLastPercentReported = 0;\n\t\t}\n\t}\n\telse\n\t{\n\t\toutIsDone = true;\n\t\tmRenderTimeStamp.mSampleTime = 0;\n\t\tmPreflightDone = true;\n\t\tmLastPercentReported = 0;\n\t}\n\t\nhome:\n\treturn result;\n}\n#endif\n\nvoid SetBufferListToNumFrames (AudioBufferList &list, UInt32 inNumFrames)\n{\n\tfor (unsigned int i = 0; i < list.mNumberBuffers; ++i) {\n\t\tAudioBuffer &buf = list.mBuffers[i];\n\t\tif (buf.mDataByteSize > 0)\n\t\t\tbuf.mDataByteSize = inNumFrames * sizeof (Float32);\n\t}\n}\n\nOSStatus\tCAAUProcessor::Render (AudioBufferList \t\t*ioData, \n\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t&ioNumFrames, \n\t\t\t\t\t\t\t\t\tbool\t\t\t\t&outIsSilence,\n\t\t\t\t\t\t\t\t\tbool \t\t\t\t*outOLCompleted, \n\t\t\t\t\t\t\t\t\tbool \t\t\t\t*outOLRequiresPostProcess)\n{\n\tif (IsOfflineContext())\n\t{\n\t\tif (!mPreflightDone)\n\t\t\treturn kAudioUnitErr_InvalidOfflineRender;\n\t\n\t\t\t// YES - this is correct!!! you have to provide both if rendering in an offline Context\n\t\t*outOLCompleted = false;\n\t\t*outOLRequiresPostProcess = false;\n\n\t\tif (!IsOfflineAU() && !mUnit.Comp().Desc().IsFConv()) \n\t\t{\n\t\t\t\t// have we processed the input we expect too?\n\t\t\t\t// in an offline case, we want to create output that matches the input\n\t\t\t\t// for an OfflineAU type, it manages this internally, so we don't have to do anything\n\t\t\t\t// for a FormatConverter AU, we don't know and can't tell, so we can't do anything here\n\t\t\t\t// for any other AU type (effect, instrument) the Prime assumption is that it will \n\t\t\t\t// ask for the same number of frames of input as it is asked to output\n\t\t\t\t// so we can ask what it is doing, and get a sample accurate output (which is input + tail time)\n\t\t\tif (mRenderTimeStamp.mSampleTime + ioNumFrames >= InputSampleCount()) \n\t\t\t{\n\t\t\t\t\t// if we fall into here, we have just a partial number of input samples left \n\t\t\t\t\t// (less input less than what we've been asked to produce output for.\n\t\t\t\t*outOLCompleted = true;\n\t\t\t\t\t// we require post processing if we've got some tail (or latency) samples to flush through\n\t\t\t\t*outOLRequiresPostProcess = mTailSamplesToProcess > 0;\n\t\t\t\tif (InputSampleCount() > mRenderTimeStamp.mSampleTime) {\n\t\t\t\t\tioNumFrames = (UInt32)(InputSampleCount() - mRenderTimeStamp.mSampleTime);\n\t\t\t\t} else {\n\t\t\t\t\tioNumFrames = 0;\n\t\t\t\t}\n\t\t\t\tmTailSamplesRemaining = mTailSamplesToProcess;\n\t\t\t\t\t// we've got no input samples to process this time.\n\t\t\t\tSetBufferListToNumFrames (*ioData, ioNumFrames);\n\t\t\t\tif (ioNumFrames == 0) {\n\t\t\t\t\tif (*outOLRequiresPostProcess)\n\t\t\t\t\t\tSetInputCallback (mUnit, sSilentCallback);\n\t\t\t\t\telse\n\t\t\t\t\t\tmUnit.GlobalReset (); //flush this out, as we're done with this phase\n\t\t\t\t\treturn noErr;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tAudioUnitRenderActionFlags renderFlags = IsOfflineAU() ? kAudioOfflineUnitRenderAction_Render : 0;\n\t\tOSStatus result = mUnit.Render (&renderFlags, &mRenderTimeStamp, 0, ioNumFrames, ioData);\n\t\tif (result) { printf(\"E result %d\\n\", (int)result); }\n\t\tif (result) {\n\t\t\tif (mUnit.Comp().Desc().IsFConv()) { \n\t\t\t\t// this is the only way we can tell we're done with a FormatConverter AU \n\t\t\t\t// - ie. client returns an error from input\n\t\t\t\tresult = noErr;\n\t\t\t\t*outOLCompleted = true;\n\t\t\t\t*outOLRequiresPostProcess = mTailSamplesToProcess > 0;\n\t\t\t\tioNumFrames = 0;\n\t\t\t\tSetBufferListToNumFrames (*ioData, ioNumFrames);\n\t\t\t} else\n\t\t\t\treturn result;\n\t\t}\n//\tfor (UInt32 i = 0; i < ioNumFrames; ++i) {\n//\t\tunion {\n//\t\t\tfloat f;\n//\t\t\tunsigned char c[4];\n//\t\t} u;\n//\t\tu.f = ((float*)(ioData->mBuffers[0].mData))[i];\n//\t\tprintf(\"aup out %4d  %14.10f  %02X %02X %02X %02X\\n\", (int)i, u.f, u.c[0], u.c[1], u.c[2], u.c[3]);\n//\t}\n\t\tmRenderTimeStamp.mSampleTime += ioNumFrames;\n\t\toutIsSilence = (renderFlags & kAudioUnitRenderAction_OutputIsSilence);\n\t\t\n\t\t\t// if we're an Offline AU type, it will set this flag on completion of its processing\n\t\tif (renderFlags & kAudioOfflineUnitRenderAction_Complete) {\n\t\t\t// we now need to calculate how many frames we rendered.\n\t\t\t\t// as we're dealing with PCM non-interleaved buffers, we can calculate the numFrames simply\n\t\t\tioNumFrames = ioData->mBuffers[0].mDataByteSize / sizeof(Float32);\n\t\t\t*outOLCompleted = true;\n\t\t\t*outOLRequiresPostProcess = false;\n\t\t\tmUnit.GlobalReset (); //flush this out, as we're done with this phase\n\t\t} else {\n\t\t\tif (*outOLCompleted) {\n\t\t\t\tif (*outOLRequiresPostProcess)\n\t\t\t\t\tresult = SetInputCallback (mUnit, sSilentCallback);\n\t\t\t\telse\n\t\t\t\t\tmUnit.GlobalReset (); //flush this out, as we're done with this phase\n\t\t\t}\n\t\t}\n\t\n\t\treturn result;\n\t}\n\n// rendering in a RT context:\n\tAudioUnitRenderActionFlags renderFlags = 0;\n\tOSStatus result = mUnit.Render (&renderFlags, &mRenderTimeStamp, 0, ioNumFrames, ioData);\n\t\tif (result) { printf(\"F result %d\\n\", (int)result); }\n\tif (!result) {\n\t\tmRenderTimeStamp.mSampleTime += ioNumFrames;\n\t\toutIsSilence = (renderFlags & kAudioUnitRenderAction_OutputIsSilence);\n\t}\n//\tfor (UInt32 i = 0; i < ioNumFrames; ++i) {\n//\t\tunion {\n//\t\t\tfloat f;\n//\t\t\tunsigned char c[4];\n//\t\t} u;\n//\t\tu.f = ((float*)(ioData->mBuffers[0].mData))[i];\n//\t\tprintf(\"aup out %4d  %14.10f  %02X %02X %02X %02X\\n\", (int)i, u.f, u.c[0], u.c[1], u.c[2], u.c[3]);\n//\t}\n\t\n\treturn result;\t\n}\n\t\nOSStatus\tCAAUProcessor::PostProcess (AudioBufferList \t*ioData, \n\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t&ioNumFrames, \n\t\t\t\t\t\t\t\t\t\tbool\t\t\t\t&outIsSilence,\n\t\t\t\t\t\t\t\t\t\tbool \t\t\t\t&outDone)\n{\n\tif (IsOfflineAU() || !IsOfflineContext()) \n\t\treturn kAudioUnitErr_CannotDoInCurrentContext;\n\t\n\toutDone = false;\n\t\n\t\t// we've got less samples to process than we've been asked to process\n\tif (mTailSamplesRemaining <= SInt32(ioNumFrames)) {\n\t\toutDone = true;\n\t\tioNumFrames = mTailSamplesRemaining > 0 ? mTailSamplesRemaining : 0;\n\t\tSetBufferListToNumFrames (*ioData, ioNumFrames);\n\t\tif (ioNumFrames == 0)\n\t\t\treturn noErr;\n\t}\n\t\n\tAudioUnitRenderActionFlags renderFlags = 0;\n\tOSStatus result;\n\tresult = mUnit.Render (&renderFlags, &mRenderTimeStamp, 0, ioNumFrames, ioData);\n\t\tif (result) { printf(\"G result %d\\n\", (int)result); goto home; }\n\tmRenderTimeStamp.mSampleTime += ioNumFrames;\n\tmTailSamplesRemaining -= ioNumFrames;\n\toutIsSilence = (renderFlags & kAudioUnitRenderAction_OutputIsSilence);\n\t\t\t\n\tif (outDone) {\n\t\tca_require_noerr (result = SetInputCallback (mUnit, mUserCallback), home);\n\t\tmUnit.GlobalReset (); //flush this out, as we're done with this phase\n\t}\nhome:\n\treturn result;\n}\t\t\n\n#if !TARGET_OS_IPHONE\nFloat32\t\tCAAUProcessor::GetOLPercentComplete ()\n{\n\tif (!IsOfflineContext())\n\t\treturn 0;\n\n\tFloat32 percentDone = mLastPercentReported;\n\t\t\n\tif (IsOfflineAU()) \n\t{\n\t\t// we get the output size every time, as this can change as parameters are changed\n\t\tUInt64 numOutputSamples = mNumInputSamples;\n\t\tUInt32 propSize = sizeof(numOutputSamples);\n\t\tmUnit.GetProperty (kAudioUnitOfflineProperty_OutputSize,\n\t\t\t\t\t\t\tkAudioUnitScope_Global, 0, &numOutputSamples, &propSize);\n\t\t\n\t\tpercentDone = (mRenderTimeStamp.mSampleTime / Float64(numOutputSamples)) * 100.;\n\t}\n\telse\n\t{\n\t\tpercentDone = (mRenderTimeStamp.mSampleTime / Float64(mNumInputSamples + mTailSamples)) * 100.;\n\t}\n\t\n\tif (percentDone > mLastPercentReported)\n\t\tmLastPercentReported = percentDone;\n\n\treturn mLastPercentReported;\n}\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAUProcessor.h",
    "content": "/*\n     File: CAAUProcessor.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAAUProcessor_h__\n#define __CAAUProcessor_h__\n\n#include <AudioToolbox/AudioToolbox.h>\n#include \"CAStreamBasicDescription.h\"\n#include \"CAAudioUnit.h\"\n#include \"AUOutputBL.h\"\n\n#if TARGET_OS_IPHONE\n\t#include <AssertMacros.h>\n#endif\n/*\n\tThis class wraps an AU (using the CAAudioUnit helper class) to use that AU for processing data\n\tIt can be used in a RealTime context (rendering data with RT constraints) or in an OffLine context\n\tsuch as using an AU to process data that is stored in a file, and on which there are no\n\tRT constraints to be imposed.\n\t\n\tOrder of operations:\n\tCreate an instance\n\tEstablish an Input Callback\n\tInitialize the AU to the audio formats and whether it is going to process in an offline or RT context\n\tPreflight\n\t\n\twhile (...)\n\t\tRender  // based on your calling context\n\t\n\tPostProcess if needed (only in OL case)\n\t\n\tAfter any initialization, preflighting is required.\n\t\n\tParameter Values on the AU should be set just before each call to Render. The sampleFrameOffsets\n\tsupplied when setting those values are an offset into that next render buffer's numFrames.\n\t\n\tRT vs OT is determined by whether the inputSampleCount is set during Initialization, thus\n\tthis class can move the AU between RT and OL contexts. If you are using an AU of type 'auol'\n\t(Offline), then it cannot be used in a RT context.\n\n\tThe CAAUProcessor will only call your Input Callback for input when it needs valid input.\n\tThis input callback will contain a sample time that indicates where within your input\n\tyou should read data from, where after preflighting, the first output data produces is for \n\tthe output sample count of zero.\n\t\n\tMaxFrames should be set before initialisation (or is also passed in to the Reinitialize API)\n\t\t\n\tIf RT, then PostProcessing will *never* be required, nor will Render ever return an isDone value\n\tIf OL, then Render will at some point return isDone==true, and then also indicate if PostProcessing is required\n\t\n\tIf using a Format Converter AU in offline context, then the only way for it to determine that you've finished\n\tis for the Input callback to return an error. This means ultimately, that you'll have potentially longer output\n\tthan you should have. The only way to manage this is for the caller to know the relationship between \n\tinput to output samples that will be required, and to call Render for just that amount of output samples\n\tthen return an error, so the tail and latency can be processed.\n\t\n\tTail and Latency are *only* calculated at initialisation.. Some AU's may change these properties based on\n\teither different presets or parameter settings... Ideally, this class should listen to those properties\n\tand recalculate its values based on those changes.\n*/\t\n\t\nclass CAAUProcessor {\npublic:\n\t\t\t\t\t\t\t\t\t// by default this is set to process offline\n\t\t\t\t\t\t\tCAAUProcessor (const CAComponent& inComp);\n\t\t\t\t\t\t\t~CAAUProcessor ();\n\t\t\n\tCAAudioUnit&\t\t\tAU() { return mUnit; }\n\tconst CAAudioUnit&\t\tAU() const { return mUnit; }\n\t\t\n#pragma mark __Setup APIs\t\t\t\n\tbool\t\t\t\t\tIsOfflineContext () const { return mNumInputSamples != 0; }\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// this contains the callback and client data that the AU \n\t\t\t\t\t\t\t\t// uses to call when it needs input\n\tOSStatus\t\t\t\tEstablishInputCallback (AURenderCallbackStruct &inInputCallback);\n\t\n\tOSStatus\t\t\t\tSetAUPreset (CFPropertyListRef \t\t\tinPreset);\n\tOSStatus\t\t\t\tSetAUPresetIndex (SInt32\t\t\t\tinPresetIndex);\n\t\n\tOSStatus\t\t\t\tSetParameter (AudioUnitParameterID inID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 value, UInt32 bufferOffsetFrames = 0);\n\t\n\t\t// a result of zero here signifies an error\n\tUInt32\t\t\t\t\tMaxFramesPerRender () const;\n\t\t\n\t\t// this call can return an error if the AU is initialized - see Reinitialize\n\tOSStatus\t\t\t\tSetMaxFramesPerRender (UInt32 inMaxFrames);\n\t\t\n\t// Prepares the AU for processing at the specified format\n\t// only doing n-n channel processing here.. could extend this for n-m channel processing easily enough\n\t// if you are processing using an Offline AU, you HAVE to specify the numInputSamples to process\n\t// if you are processing real-time, then inNumInputSamples should be zero\n\tOSStatus\t\t\t\tInitialize (const CAStreamBasicDescription &inIODesc, UInt64 inNumInputSamples = 0)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn Initialize (inIODesc, inIODesc, inNumInputSamples);\n\t\t\t\t\t\t\t}\n\tOSStatus\t\t\t\tInitialize (const CAStreamBasicDescription \t\t&inInputDesc, \n\t\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription \t\t&inOutputDesc, \n\t\t\t\t\t\t\t\t\t\tUInt64 \t\t\t\t\t\t\t\tinNumInputSamples = 0);\n\t\n\t\t// takes the existing format state of the AU, but resets the AUProcessor so that:\n\t\t// applies an optional new number of max frames\n\t\t// the AUProcessor will have to be Preflighted again after this call\n\t\t// Use this when you want to keep the same formats, same input sample count,\n\t\t// but want to re-initialize the AU to use a new num max frames and prepare it \n\t\t// appropriately...\n\tOSStatus\t\t\t\tReinitialize (UInt32 inNewMaxFrames);\n\n\n\n#pragma mark __Render APIs\n\t// Preflighting - you HAVE to preflight\n\t// returns noErr when preflighting is done\n\t\n\t// Offline Context:\n\t// Offline AU's require preflighting, even if they will end up doing no work.\n\t// In the case where the AU is offline the latency samples are trimmed and not returned \n\t// from the consequent Render calls\n\t\n\t// If you are NOT an offline AU then the first time Render is called, \n\t// there will need to be some consumption of the input before you will get any valid output data.\n\t// This is determined by the value of the AU's reported latency. So, in this case preflight\n\t// will consume those initial samples and then return.\n\t// Your InputCallback MUST provide the initial data that is to be processed.\n\t\n\t// RealTime Context:\n\t// (1 No priming. In this case inProcessPreceedingTail is false (the default) and no\n\t// processing is done on the AU. However, because preflight is the first time that Rendering\n\t// is called on an AU we can presume that this is outside the context of the processing that\n\t// is occuring in the host application. To avoid taking page faults, priming cold memory, etc.\n\t// when the AU *is* consequently used to render real data, the AU is prerolled and reset if this is the case.\n\n\t// (2) Prime the AU's buffers with input data that preceeds the portion of audio you\n\t// want to process. This amount of input data is equivalent to the tail time of the AU\n\t// which expresses how long it takes for an sample on input to disappear from the output\n\t// (Think of a delay or a reverb)\n\t// So, by setting inProcessPreceedingTail to true, the preflight call will consume\n\t// the tail time samples of input (which should be valid input BEFORE the data to be processed)\n\t// So, your input proc here will HAVE to read samples from the preceeding input. The time\n\t// stamps to your input proc in this case can be interpreted as 0 is the start of the preceeding data\n\t// and you'll need to read up to the numSamples of tail time of the preceeding data.\n\t// It discards the output results of the preflighting. If you don't have any previous data\n\t// with which to prepare the AU, then you do NOT need to take this path and can do the step below.\n\t\n\t// In both of these cases the inital latency frames are *not* trimmed from\n\t// the output that will be generated by a consequent call to render.\n\tOSStatus\t\t\t\tPreflight (bool inProcessPreceedingTail = false);\n\n\t// this can be used with an OfflineAU to do a gradual preflight (so you could for instance, \n\t// present a progress indicator. The Preflight call will do it all at once.\n\t// If you break out of the preflight before you are done, then you HAVE to reinitialise the AU\n\t// before you can either do another preflight or do a render, otherwise the Render call will produce\n\t// invalid results.\n\tOSStatus \t\t\t\tOfflineAUPreflight (UInt32 inNumFrames, bool &outIsDone);\n\n\t// Here's the major stage that produces output.\n\t// You pass in two bool flags and an ioNumFrames....\n\t\n\t// So ioNumFrames will be *untouched* if outOLCompleted == false\n\t// if outOLCompleted is true, ioNumFrames contains the number of valid frames within the ioData data that are valid data\n\t// (ioData's pointers and sizes will also have been resized to match these number of frames)\n\t// outOLRequiresPostProcess should also be checked when outOLCompleted is true, \n\t// to see if any post-processing is required\n\t// if rendering in a RT context, then neither outOLCompleted or outOLRequiresPostProcess is required\n\t// if rendering in an OL context, both must be specified.\n\t// Caller MUST provide an ABL that is set up in the previously specified output format\n\t\n\t// If you receive kAudioUnitErr_InvalidOfflineRender when dealing with an OfflineAU Type, then you have either not\n\t// preflighted it (and the AU requires it) or you have changed some state (its num input samples, its start offest)\n\t// and it needs to be re-preflighted. In that case, preflight the AU again first.\n\tOSStatus\t\t\t\tRender (AudioBufferList \t\t\t*ioData, \n\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t&ioNumFrames, \n\t\t\t\t\t\t\t\t\tbool\t\t\t\t\t\t&outIsSilence,\n\t\t\t\t\t\t\t\t\tbool \t\t\t\t\t\t*outOLCompleted = NULL, \n\t\t\t\t\t\t\t\t\tbool \t\t\t\t\t\t*outOLRequiresPostProcess = NULL);\n\t\n\t// call this method if outOLRequiresPostProcess returned true upon rendering completion\n\tOSStatus\t\t\t\tPostProcess (AudioBufferList *ioData, UInt32 &ioNumFrames, bool &outIsSilence, bool &outDone);\n\t\n\t// This method returns how many input samples will need to be provided before\n\t// valid output data is produced.\n\tUInt32\t\t\t\t\tLatencySampleCount () const { return mLatencySamples; }\n\t\n\tUInt32\t\t\t\t\tTailSampleCount () const { return mTailSamples; }\n\t\n\tUInt64\t\t\t\t\tInputSampleCount () const { return mNumInputSamples; }\n\t\t\n\t// the class maintains the TimeStamp from render call to render call\n\t// this value is the sample count that will be used in the *next* render call\n\tFloat64\t\t\t\t\tSampleTime () const { return mRenderTimeStamp.mSampleTime; }\n\t\n\t\t// in some settings (for instance a delay with 100% feedback) tail time is essentially infinite\n\t\t// so you should safeguard the final OL render stage (post process) which is aimed at pulling the tail through\n\t\t// default is 10 seconds\n\tFloat64\t\t\t\t\tGetMaxTailTime () const { return mMaxTailTime; }\n\t\n\t// this ONLY takes affect when you initialise the processor, it doesn't change that AU's tail time,\n\t// but just the max amount of time that this object will allow the AU to post-process data\n\t// set this to 0, to use the AU's tail time with no adjustment\n\tvoid\t\t\t\t\tSetMaxTailTime (Float64 inTailTimeSecs) { mMaxTailTime = inTailTimeSecs; }\n\n#if !TARGET_OS_IPHONE\n\t// if this is NULL, then there is no explicit (optional or required) preflight requirement of the AU\n\t// if this is valid, then the AU either requires or optionally requires preflighting. The default\n\t// behaviour in this case is that the processor will preflight. This name can be used to preset\n\t// to the user. If the AU doesn't present a name, but preflighting is optional/required, then the \n\t// processor return \"Preflight\" as its string.\n\t// the String should be released by the caller.\n\tCFStringRef\t\t\t\tGetOLPreflightName () const;\n\n\t// Returns true if this is processor is an offline AU, and that AU (whether optional or required) \n\t// needs preflighting\n\tbool\t\t\t\t\tOfflineAUNeedsPreflight () const;\n\t\n\t// this provides a rough approximation of the progress of an Offline Processing operation (both for the\n\t// preflight and the render phases)\n\tFloat32\t\t\t\t\tGetOLPercentComplete ();\n#endif\n\t\nprivate:\n\tCAAudioUnit \t\t\tmUnit;\n\tUInt32\t\t\t\t\tmLatencySamples;\n\tUInt32\t\t\t\t\tmTailSamples;\n\tUInt32\t\t\t\t\tmTailSamplesToProcess;\n\tUInt64\t\t\t\t\tmNumInputSamples;\n\tAudioTimeStamp\t\t\tmRenderTimeStamp;\n\tbool\t\t\t\t\tmPreflightDone;\n\tAUOutputBL *\t\t\tmPreflightABL;\n\tSInt32\t\t\t\t\tmTailSamplesRemaining;\n\tAURenderCallbackStruct\tmUserCallback;\n\tFloat64\t\t\t\t\tmMaxTailTime;\n\tFloat32\t\t\t\t\tmLastPercentReported;\n\t\n\tbool\t\t\tIsOfflineAU () const { return mUnit.Comp().Desc().IsOffline(); }\n\n\tvoid\t\t\tCalculateRemainderSamples (Float64 inSampleRate);\n\t\n\tOSStatus\t\tDoInitialisation (const CAStreamBasicDescription \t&inInputFormat,\n\t\t\t\t\t\t\t\t\tconst CAStreamBasicDescription \t\t&inOutputFormat,\n\t\t\t\t\t\t\t\t\tUInt64\t\t\t\t\t\t\t\tinNumInputSamples,\n\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t\t\t\tinMaxFrames);\n\n\t\t// stop automatic copying of this object\n\tCAAUProcessor () {}\n\tCAAUProcessor (const CAAUProcessor &c) {}\n\tCAAUProcessor& operator= (const CAAUProcessor& c) { return *this; }\n};\n\n#endif //__CAAUProcessor_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAtomic.h",
    "content": "/*\n     File: CAAtomic.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n/*\n\tThis file implements all Atomic operations using Interlocked functions specified in\n\tWinbase.h\nNOTE: According to Microsoft documentation, all Interlocked functions generates a\nfull barrier. \n\tOn Windows:\n\tAs the Interlocked functions returns the Old value, Extra checks and operations \n\tare made after the atomic operation to return value consistent with OSX counterparts.\n*/\n#ifndef __CAAtomic_h__\n#define __CAAtomic_h__\n\n#if TARGET_OS_WIN32\n\t#include <windows.h>\n\t#include <intrin.h>\n\t#pragma intrinsic(_InterlockedOr)\r\n\t#pragma intrinsic(_InterlockedAnd)\n#else\n\t#include <CoreFoundation/CFBase.h>\n\t#include <libkern/OSAtomic.h>\n#endif\n\ninline void CAMemoryBarrier() \n{\n#if TARGET_OS_WIN32\n\tMemoryBarrier();\n#else\n\tOSMemoryBarrier();\n#endif\n}\n\ninline SInt32 CAAtomicAdd32Barrier(SInt32 theAmt, volatile SInt32* theValue)\n{\n#if TARGET_OS_WIN32\n\tlong lRetVal = InterlockedExchangeAdd((volatile long*)theValue, theAmt);\n\t// InterlockedExchangeAdd returns the original value which differs from OSX version. \n\t// At this point the addition would have occured and hence returning the new value\n\t// to keep it sync with OSX.\n\treturn lRetVal + theAmt;\n#else\n\treturn OSAtomicAdd32Barrier(theAmt, (volatile int32_t *)theValue);\n#endif\n}\n\ninline SInt32 CAAtomicOr32Barrier(UInt32 theMask, volatile UInt32* theValue)\n{\n#if TARGET_OS_WIN32\n\t// InterlockedAnd macro is not defined in x86 platform, and hence using the intrinsic\n\t// function instead.\n\tlong j = _InterlockedOr((volatile long*)theValue, theMask);\n\t// _InterlockedOr returns the original value which differs from OSX version.\n\t// Returning the new value similar to OSX\n\treturn (SInt32)(j | theMask);\n#else\n\treturn OSAtomicOr32Barrier(theMask, (volatile uint32_t *)theValue);\n#endif\n}\n\ninline SInt32 CAAtomicAnd32Barrier(UInt32 theMask, volatile UInt32* theValue)\n{\n#if TARGET_OS_WIN32\n// InterlockedAnd macro is not defined in x86 platform, and hence using the intrinsic\n// function instead.\n\tlong j = _InterlockedAnd((volatile long*)theValue, theMask);\n\t// _InterlockedAnd returns the original value which differs from OSX version.\n\t// Returning the new value similar to OSX\n\treturn (SInt32)(j & theMask);\n#else\n\treturn OSAtomicAnd32Barrier(theMask, (volatile uint32_t *)theValue);\n#endif\n}\n\ninline bool CAAtomicCompareAndSwap32Barrier(SInt32 oldValue, SInt32 newValue, volatile SInt32 *theValue)\n{\n#if TARGET_OS_WIN32\n\t// InterlockedCompareExchange returns the old value. But we need to return bool value.\n\tlong lRetVal = InterlockedCompareExchange((volatile long*)theValue, newValue, oldValue);\n// Hence we check if the new value is set and if it is we return true else false.\n// If theValue is equal to oldValue then the swap happens. Otherwise swap doesn't happen.\n\treturn (oldValue == lRetVal);\n#else\n\treturn OSAtomicCompareAndSwap32Barrier(oldValue, newValue, (volatile int32_t *)theValue);\n#endif\n}\n\n\ninline SInt32 CAAtomicIncrement32(volatile SInt32* theValue)\n{\n#if TARGET_OS_WIN32\n\treturn (SInt32)InterlockedIncrement((volatile long*)theValue);\n#else\n\treturn OSAtomicIncrement32((volatile int32_t *)theValue);\n#endif\n}\n\ninline SInt32 CAAtomicDecrement32(volatile SInt32* theValue)\n{\n#if TARGET_OS_WIN32\n\treturn (SInt32)InterlockedDecrement((volatile long*)theValue);\n#else\n\treturn OSAtomicDecrement32((volatile int32_t *)theValue);\n#endif\n}\n\ninline SInt32 CAAtomicIncrement32Barrier(volatile SInt32* theValue)\n{\n#if TARGET_OS_WIN32\n\treturn CAAtomicIncrement32(theValue);\n#else\n\treturn OSAtomicIncrement32Barrier((volatile int32_t *)theValue);\n#endif\n}\n\ninline SInt32 CAAtomicDecrement32Barrier(volatile SInt32* theValue)\n{\n#if TARGET_OS_WIN32\n\treturn CAAtomicDecrement32(theValue);\n#else\n\treturn OSAtomicDecrement32Barrier((volatile int32_t *)theValue);\n#endif\n}\n\ninline bool CAAtomicTestAndClearBarrier(int bitToClear, void* theAddress)\n{\n#if TARGET_OS_WIN32\n\tBOOL bOldVal = InterlockedBitTestAndReset((long*)theAddress, bitToClear);\n\treturn (bOldVal ? true : false);\n#else\n\treturn OSAtomicTestAndClearBarrier(bitToClear, (volatile void *)theAddress);\n#endif\n}\n\ninline bool CAAtomicTestAndClear(int bitToClear, void* theAddress)\n{\n#if TARGET_OS_WIN32\n\tBOOL bOldVal = CAAtomicTestAndClearBarrier(bitToClear, (long*)theAddress);\n\treturn (bOldVal ? true : false);\n#else\n\treturn OSAtomicTestAndClear(bitToClear, (volatile void *)theAddress);\n#endif\n}\n\ninline bool CAAtomicTestAndSetBarrier(int bitToSet, void* theAddress)\n{\n#if TARGET_OS_WIN32\n\tBOOL bOldVal = InterlockedBitTestAndSet((long*)theAddress, bitToSet);\n\treturn (bOldVal ? true : false);\n#else\n\treturn OSAtomicTestAndSetBarrier(bitToSet, (volatile void *)theAddress);\n#endif\n}\n\n// int32_t flavors -- for C++ only since we can't overload in C\n// CFBase.h defines SInt32 as signed int which is similar to int32_t. If CFBase.h is included, then\n// this will generate redefinition error. But on Mac, CFBase.h, still includes MacTypes.h where\n// SInt32 is defined as signed long so this would work there.\n// So in order to fix the redefinition errors, we define these functions only if MacTypes.h is included.\n#if defined(__cplusplus) && defined(__MACTYPES__) && !__LP64__\ninline int32_t CAAtomicAdd32Barrier(int32_t theAmt, volatile int32_t* theValue)\n{\n\treturn CAAtomicAdd32Barrier(theAmt, (volatile SInt32 *)theValue);\n}\n\ninline int32_t CAAtomicOr32Barrier(uint32_t theMask, volatile uint32_t* theValue)\n{\n\treturn CAAtomicOr32Barrier(theMask, (volatile UInt32 *)theValue);\n}\n\ninline int32_t CAAtomicAnd32Barrier(uint32_t theMask, volatile uint32_t* theValue)\n{\n\treturn CAAtomicAnd32Barrier(theMask, (volatile UInt32 *)theValue);\n}\n\ninline bool CAAtomicCompareAndSwap32Barrier(int32_t oldValue, int32_t newValue, volatile int32_t *theValue)\n{\n\treturn CAAtomicCompareAndSwap32Barrier(oldValue, newValue, (volatile SInt32 *)theValue);\n}\n\ninline int32_t CAAtomicIncrement32(volatile int32_t* theValue)\n{\n\treturn CAAtomicIncrement32((volatile SInt32 *)theValue);\n}\n\ninline int32_t CAAtomicDecrement32(volatile int32_t* theValue)\n{\n\treturn CAAtomicDecrement32((volatile SInt32 *)theValue);\n}\n\ninline int32_t CAAtomicIncrement32Barrier(volatile int32_t* theValue)\n{\n\treturn CAAtomicIncrement32Barrier((volatile SInt32 *)theValue);\n}\n\ninline int32_t CAAtomicDecrement32Barrier(volatile int32_t* theValue)\n{\n\treturn CAAtomicDecrement32Barrier((volatile SInt32 *)theValue);\n}\n#endif // __cplusplus && !__LP64__\n\n#if __LP64__\ninline bool CAAtomicCompareAndSwap64Barrier( int64_t __oldValue, int64_t __newValue, volatile int64_t *__theValue )\n{\n\treturn OSAtomicCompareAndSwap64Barrier(__oldValue, __newValue, __theValue);\n}\n#endif\n\ninline bool CAAtomicCompareAndSwapPtrBarrier(void *__oldValue, void *__newValue, volatile void ** __theValue)\n{\n#if __LP64__\n\treturn CAAtomicCompareAndSwap64Barrier((int64_t)__oldValue, (int64_t)__newValue, (int64_t *)__theValue);\n#else\n\treturn CAAtomicCompareAndSwap32Barrier((int32_t)__oldValue, (int32_t)__newValue, (int32_t *)__theValue);\n#endif\n}\n\n/* Spinlocks.  These use memory barriers as required to synchronize access to shared\n * memory protected by the lock.  The lock operation spins, but employs various strategies\n * to back off if the lock is held, making it immune to most priority-inversion livelocks.\n * The try operation immediately returns false if the lock was held, true if it took the\n * lock.  The convention is that unlocked is zero, locked is nonzero.\n */\n#define\tCA_SPINLOCK_INIT    0\n\ntypedef int32_t CASpinLock;\n\nbool    CASpinLockTry( volatile CASpinLock *__lock );\nvoid    CASpinLockLock( volatile CASpinLock *__lock );\nvoid    CASpinLockUnlock( volatile CASpinLock *__lock );\n\ninline void    CASpinLockLock( volatile CASpinLock *__lock )\n{\n#if TARGET_OS_MAC\n\tOSSpinLockLock(__lock);\n#else\n\twhile (CAAtomicTestAndSetBarrier(0, (void*)__lock))\n\t\tusleep(1000); // ???\n#endif\n}\n\ninline void    CASpinLockUnlock( volatile CASpinLock *__lock )\n{\n#if TARGET_OS_MAC\n\tOSSpinLockUnlock(__lock);\n#else\n\tCAAtomicTestAndClearBarrier(0, (void*)__lock);\n#endif\n}\n\ninline bool    CASpinLockTry( volatile CASpinLock *__lock )\n{\n#if TARGET_OS_MAC\n\treturn OSSpinLockTry(__lock);\n#else\n\treturn (CAAtomicTestAndSetBarrier(0, (void*)__lock) == 0);\n#endif\n}\n\n\n#endif // __CAAtomic_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAtomicStack.h",
    "content": "/*\n     File: CAAtomicStack.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAAtomicStack_h__\n#define __CAAtomicStack_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <libkern/OSAtomic.h>\n#else\n\t#include <CAAtomic.h>\n#endif\n\n#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4\n\t#include <CoreServices/CoreServices.h>\n#endif\n\n//  linked list LIFO or FIFO (pop_all_reversed) stack, elements are pushed and popped atomically\n//  class T must implement T *& next().\ntemplate <class T>\nclass TAtomicStack {\npublic:\n\tTAtomicStack() : mHead(NULL) { }\n\t\n\t// non-atomic routines, for use when initializing/deinitializing, operate NON-atomically\n\tvoid\tpush_NA(T *item)\n\t{\n\t\titem->next() = mHead;\n\t\tmHead = item;\n\t}\n\t\n\tT *\t\tpop_NA()\n\t{\n\t\tT *result = mHead;\n\t\tif (result)\n\t\t\tmHead = result->next();\n\t\treturn result;\n\t}\n\t\n\tbool\tempty() const { return mHead == NULL; }\n\t\n\tT *\t\thead() { return mHead; }\n\t\n\t// atomic routines\n\tvoid\tpush_atomic(T *item)\n\t{\n\t\tT *head_;\n\t\tdo {\n\t\t\thead_ = mHead;\n\t\t\titem->next() = head_;\n\t\t} while (!compare_and_swap(head_, item, &mHead));\n\t}\n\t\n\tvoid\tpush_multiple_atomic(T *item)\n\t\t// pushes entire linked list headed by item\n\t{\n\t\tT *head_, *p = item, *tail;\n\t\t// find the last one -- when done, it will be linked to head\n\t\tdo {\n\t\t\ttail = p;\n\t\t\tp = p->next();\n\t\t} while (p);\n\t\tdo {\n\t\t\thead_ = mHead;\n\t\t\ttail->next() = head_;\n\t\t} while (!compare_and_swap(head_, item, &mHead));\n\t}\n\t\n\tT *\t\tpop_atomic_single_reader()\n\t\t// this may only be used when only one thread may potentially pop from the stack.\n\t\t// if multiple threads may pop, this suffers from the ABA problem.\n\t\t// <rdar://problem/4606346> TAtomicStack suffers from the ABA problem\n\t{\n\t\tT *result;\n\t\tdo {\n\t\t\tif ((result = mHead) == NULL)\n\t\t\t\tbreak;\n\t\t} while (!compare_and_swap(result, result->next(), &mHead));\n\t\treturn result;\n\t}\n\t\n\tT *\t\tpop_atomic()\n\t\t// This is inefficient for large linked lists.\n\t\t// prefer pop_all() to a series of calls to pop_atomic.\n\t\t// push_multiple_atomic has to traverse the entire list.\n\t{\n\t\tT *result = pop_all();\n\t\tif (result) {\n\t\t\tT *next = result->next();\n\t\t\tif (next)\n\t\t\t\t// push all the remaining items back onto the stack\n\t\t\t\tpush_multiple_atomic(next);\n\t\t}\n\t\treturn result;\n\t}\n\t\n\tT *\t\tpop_all()\n\t{\n\t\tT *result;\n\t\tdo {\n\t\t\tif ((result = mHead) == NULL)\n\t\t\t\tbreak;\n\t\t} while (!compare_and_swap(result, NULL, &mHead));\n\t\treturn result;\n\t}\n\t\n\tT*\t\tpop_all_reversed()\n\t{\n\t\tTAtomicStack<T> reversed;\n\t\tT *p = pop_all(), *next;\n\t\twhile (p != NULL) {\n\t\t\tnext = p->next();\n\t\t\treversed.push_NA(p);\n\t\t\tp = next;\n\t\t}\n\t\treturn reversed.mHead;\n\t}\n\t\n\tstatic bool\tcompare_and_swap(T *oldvalue, T *newvalue, T **pvalue)\n\t{\n#if TARGET_OS_MAC\n\t#if __LP64__\n\t\t\treturn ::OSAtomicCompareAndSwap64Barrier(int64_t(oldvalue), int64_t(newvalue), (int64_t *)pvalue);\n\t#elif MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4\n\t\t\treturn ::OSAtomicCompareAndSwap32Barrier(int32_t(oldvalue), int32_t(newvalue), (int32_t *)pvalue);\n\t#else\n\t\t\treturn ::CompareAndSwap(UInt32(oldvalue), UInt32(newvalue), (UInt32 *)pvalue);\n\t#endif\n#else\n\t\t\t//return ::CompareAndSwap(UInt32(oldvalue), UInt32(newvalue), (UInt32 *)pvalue);\n\t\t\treturn CAAtomicCompareAndSwap32Barrier(SInt32(oldvalue), SInt32(newvalue), (SInt32*)pvalue);\n#endif\n\t}\n\t\nprotected:\n\tT *\t\tmHead;\n};\n\n#if ((MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5) && !TARGET_OS_WIN32)\n#include <libkern/OSAtomic.h>\n\nclass CAAtomicStack {\npublic:\n\tCAAtomicStack(size_t nextPtrOffset) : mNextPtrOffset(nextPtrOffset) {\n\t\t/*OSQueueHead h = OS_ATOMIC_QUEUE_INIT; mHead = h;*/\n\t\tmHead.opaque1 = 0; mHead.opaque2 = 0;\n\t}\n\t// a subset of the above\n\tvoid\tpush_atomic(void *p) { OSAtomicEnqueue(&mHead, p, mNextPtrOffset); }\n\tvoid\tpush_NA(void *p) { push_atomic(p); }\n\n\tvoid *\tpop_atomic() { return OSAtomicDequeue(&mHead, mNextPtrOffset); }\n\tvoid *\tpop_atomic_single_reader() { return pop_atomic(); }\n\tvoid *\tpop_NA() { return pop_atomic(); }\n\t\nprivate:\n\tOSQueueHead\t\tmHead;\n\tsize_t\t\t\tmNextPtrOffset;\n};\n\n// a more efficient subset of TAtomicStack using OSQueue.\ntemplate <class T>\nclass TAtomicStack2 {\npublic:\n\tTAtomicStack2() {\n\t\t/*OSQueueHead h = OS_ATOMIC_QUEUE_INIT; mHead = h;*/\n\t\tmHead.opaque1 = 0; mHead.opaque2 = 0;\n\t\tmNextPtrOffset = -1;\n\t}\n\tvoid\tpush_atomic(T *item) {\n\t\tif (mNextPtrOffset < 0) {\n\t\t\tT **pnext = &item->next();\t// hack around offsetof not working with C++\n\t\t\tmNextPtrOffset = (Byte *)pnext - (Byte *)item;\n\t\t}\n\t\tOSAtomicEnqueue(&mHead, item, mNextPtrOffset);\n\t}\n\tvoid\tpush_NA(T *item) { push_atomic(item); }\n\n\tT *\t\tpop_atomic() { return (T *)OSAtomicDequeue(&mHead, mNextPtrOffset); }\n\tT *\t\tpop_atomic_single_reader() { return pop_atomic(); }\n\tT *\t\tpop_NA() { return pop_atomic(); }\n\t\n\t// caution: do not try to implement pop_all_reversed here. the writer could add new elements\n\t// while the reader is trying to pop old ones!\n\t\nprivate:\n\tOSQueueHead\t\tmHead;\n\tssize_t\t\t\tmNextPtrOffset;\n};\n\n#else\n\n#define TAtomicStack2 TAtomicStack\n\n#endif // MAC_OS_X_VERSION_MAX_ALLOWED && !TARGET_OS_WIN32\n\n#endif // __CAAtomicStack_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioBufferList.cpp",
    "content": "/*\n     File: CAAudioBufferList.cpp\n Abstract: CAAudioBufferList.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CAAudioBufferList.h\"\n#include \"CADebugMacros.h\"\n#include \"CALogMacros.h\"\n#include <stdlib.h>\n#include <string.h>\n\n//=============================================================================\n//\tCAAudioBufferList\n//=============================================================================\n\nAudioBufferList*\tCAAudioBufferList::Create(UInt32 inNumberBuffers)\n{\n\tUInt32 theSize = CalculateByteSize(inNumberBuffers);\n\tAudioBufferList* theAnswer = static_cast<AudioBufferList*>(calloc(1, theSize));\n\tif(theAnswer != NULL)\n\t{\n\t\ttheAnswer->mNumberBuffers = inNumberBuffers;\n\t}\n\treturn theAnswer;\n}\n\nvoid\tCAAudioBufferList::Destroy(AudioBufferList* inBufferList)\n{\n\tfree(inBufferList);\n}\n\nUInt32\tCAAudioBufferList::CalculateByteSize(UInt32 inNumberBuffers)\n{\n\tUInt32 theSize = SizeOf32(AudioBufferList) - SizeOf32(AudioBuffer);\n\ttheSize += inNumberBuffers * SizeOf32(AudioBuffer);\n\treturn theSize;\n}\n\nUInt32\tCAAudioBufferList::GetTotalNumberChannels(const AudioBufferList& inBufferList)\n{\n\tUInt32 theAnswer = 0;\n\t\n\tfor(UInt32 theIndex = 0; theIndex < inBufferList.mNumberBuffers; ++theIndex)\n\t{\n\t\ttheAnswer += inBufferList.mBuffers[theIndex].mNumberChannels;\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCAAudioBufferList::GetBufferForChannel(const AudioBufferList& inBufferList, UInt32 inChannel, UInt32& outBufferNumber, UInt32& outBufferChannel)\n{\n\tbool theAnswer = false;\n\tUInt32 theIndex = 0;\n\t\n\twhile((theIndex < inBufferList.mNumberBuffers) && (inChannel >= inBufferList.mBuffers[theIndex].mNumberChannels))\n\t{\n\t\tinChannel -= inBufferList.mBuffers[theIndex].mNumberChannels;\n\t\t++theIndex;\n\t}\n\t\n\tif(theIndex < inBufferList.mNumberBuffers)\n\t{\n\t\toutBufferNumber = theIndex;\n\t\toutBufferChannel = inChannel;\n\t\ttheAnswer = true;\n\t}\n\t\n\treturn theAnswer;\n}\n\nvoid\tCAAudioBufferList::Clear(AudioBufferList& outBufferList)\n{\n\t//\tassumes that \"0\" is actually the 0 value for this stream format\n\tfor(UInt32 theBufferIndex = 0; theBufferIndex < outBufferList.mNumberBuffers; ++theBufferIndex)\n\t{\n\t\tif(outBufferList.mBuffers[theBufferIndex].mData != NULL)\n\t\t{\n\t\t\tmemset(outBufferList.mBuffers[theBufferIndex].mData, 0, outBufferList.mBuffers[theBufferIndex].mDataByteSize);\n\t\t}\n\t}\n}\n\nvoid\tCAAudioBufferList::Copy(const AudioBufferList& inSource, UInt32 inStartingSourceChannel, AudioBufferList& outDestination, UInt32 inStartingDestinationChannel)\n{\n\t//  This is a brute force copy method that can handle ABL's that have different buffer layouts\n\t//  This means that this method is probably not the fastest way to do this for all cases.\n\t//  This method also assumes that both the source and destination sample formats are Float32\n\n\tUInt32 theInputChannel = inStartingSourceChannel;\n\tUInt32 theNumberInputChannels = GetTotalNumberChannels(inSource);\n\tUInt32 theOutputChannel = inStartingDestinationChannel;\n\tUInt32 theNumberOutputChannels = GetTotalNumberChannels(outDestination);\n\t\n\tUInt32 theInputBufferIndex = 0;\n\tUInt32 theInputBufferChannel = 0;\n\tUInt32 theOutputBufferIndex = 0;\n\tUInt32 theOutputBufferChannel = 0;\n\twhile((theInputChannel < theNumberInputChannels) && (theOutputChannel < theNumberOutputChannels))\n\t{\n\t\tGetBufferForChannel(inSource, theInputChannel, theInputBufferIndex, theInputBufferChannel);\n\t\t\n\t\tGetBufferForChannel(inSource, theOutputChannel, theOutputBufferIndex, theOutputBufferChannel);\n\t\t\n\t\tCopyChannel(inSource.mBuffers[theInputBufferIndex], theInputBufferChannel, outDestination.mBuffers[theOutputBufferIndex], theOutputBufferChannel);\n\t\t\n\t\t++theInputChannel;\n\t\t++theOutputChannel;\n\t}\n}\n\nvoid\tCAAudioBufferList::CopyChannel(const AudioBuffer& inSource, UInt32 inSourceChannel, AudioBuffer& outDestination, UInt32 inDestinationChannel)\n{\n\t//  set up the stuff for the loop\n\tUInt32 theNumberFramesToCopy = outDestination.mDataByteSize / (outDestination.mNumberChannels * SizeOf32(Float32));\n\tconst Float32* theSource = static_cast<const Float32*>(inSource.mData);\n\tFloat32* theDestination = static_cast<Float32*>(outDestination.mData);\n\t\n\t//  loop through the data and copy the samples\n\twhile(theNumberFramesToCopy > 0)\n\t{\n\t\t//  copy the data\n\t\ttheDestination[inDestinationChannel] = theSource[inSourceChannel];\n\t\t\n\t\t//  adjust the pointers\n\t\t--theNumberFramesToCopy;\n\t\ttheSource += inSource.mNumberChannels;\n\t\ttheDestination += outDestination.mNumberChannels;\n\t}\n}\n\nvoid\tCAAudioBufferList::Sum(const AudioBufferList& inSourceBufferList, AudioBufferList& ioSummedBufferList)\n{\n\t//\tassumes that the buffers are Float32 samples and the listst have the same layout\n\t//\tthis is a lame algorithm, by the way. it could at least be unrolled a couple of times\n\tfor(UInt32 theBufferIndex = 0; theBufferIndex < ioSummedBufferList.mNumberBuffers; ++theBufferIndex)\n\t{\n\t\tFloat32* theSourceBuffer = static_cast<Float32*>(inSourceBufferList.mBuffers[theBufferIndex].mData);\n\t\tFloat32* theSummedBuffer = static_cast<Float32*>(ioSummedBufferList.mBuffers[theBufferIndex].mData);\n\t\tUInt32 theNumberSamplesToMix = ioSummedBufferList.mBuffers[theBufferIndex].mDataByteSize / SizeOf32(Float32);\n\t\tif((theSourceBuffer != NULL) && (theSummedBuffer != NULL) && (theNumberSamplesToMix > 0))\n\t\t{\n\t\t\twhile(theNumberSamplesToMix > 0)\n\t\t\t{\n\t\t\t\t*theSummedBuffer += *theSourceBuffer;\n\t\t\t\t++theSummedBuffer;\n\t\t\t\t++theSourceBuffer;\n\t\t\t\t--theNumberSamplesToMix;\n\t\t\t}\n\t\t}\n\t}\n}\n\nbool\tCAAudioBufferList::HasData(AudioBufferList& inBufferList)\n{\n\tbool hasData = false;\n\tfor(UInt32 theBufferIndex = 0; !hasData && (theBufferIndex < inBufferList.mNumberBuffers); ++theBufferIndex)\n\t{\n\t\tif(inBufferList.mBuffers[theBufferIndex].mData != NULL)\n\t\t{\n\t\t\tUInt32* theBuffer = (UInt32*)inBufferList.mBuffers[theBufferIndex].mData;\n\t\t\tUInt32 theNumberSamples = inBufferList.mBuffers[theBufferIndex].mDataByteSize / SizeOf32(UInt32);\n\t\t\tfor(UInt32 theSampleIndex = 0; !hasData && (theSampleIndex < theNumberSamples); ++theSampleIndex)\n\t\t\t{\n\t\t\t\thasData = theBuffer[theSampleIndex] != 0;\n\t\t\t}\n\t\t}\n\t}\n\treturn hasData;\n}\n\n#if CoreAudio_Debug\nvoid\tCAAudioBufferList::PrintToLog(const AudioBufferList& inBufferList)\n{\n\tPrintInt(\"  Number streams: \", inBufferList.mNumberBuffers);\n\t\n\tfor(UInt32 theIndex = 0; theIndex < inBufferList.mNumberBuffers; ++theIndex)\n\t{\n\t\tPrintIndexedInt(\"  Channels in stream\", theIndex + 1, inBufferList.mBuffers[theIndex].mNumberChannels);\n\t\tPrintIndexedInt(\"  Buffer size of stream\", theIndex + 1, inBufferList.mBuffers[theIndex].mDataByteSize);\n\t}\n}\n#endif\n\nconst AudioBufferList*\tCAAudioBufferList::GetEmptyBufferList()\n{\n\tstatic bool\tsInitializer = false;\n\tstatic AudioBufferList\tsEmptyABL;\n\tif(!sInitializer)\n\t{\n\t\tmemset(&sEmptyABL, 0, sizeof(AudioBufferList));\n\t}\n\treturn &sEmptyABL;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioBufferList.h",
    "content": "/*\n     File: CAAudioBufferList.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAAudioBufferList_h__)\n#define __CAAudioBufferList_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n#include \"CAException.h\"\n#include \"CADebugMacros.h\"\n\n//=============================================================================\n//\tTypes\n//=============================================================================\n\ntypedef AudioBufferList*\tAudioBufferListPtr;\n\n//=============================================================================\n//\tCAAudioBufferList\n//=============================================================================\n\nstruct\tCAAudioBufferList\n{\n\n//\tConstruction/Destruction\npublic:\n\tstatic AudioBufferList*\tCreate(UInt32 inNumberBuffers);\n\tstatic void\t\t\t\tDestroy(AudioBufferList* inBufferList);\n\tstatic UInt32\t\t\tCalculateByteSize(UInt32 inNumberBuffers);\n\n//\tOperations\npublic:\n\tstatic UInt32\t\t\tGetTotalNumberChannels(const AudioBufferList& inBufferList);\n\tstatic bool\t\t\t\tGetBufferForChannel(const AudioBufferList& inBufferList, UInt32 inChannel, UInt32& outBufferNumber, UInt32& outBufferChannel);\n\tstatic void\t\t\t\tClear(AudioBufferList& outBufferList);\n\tstatic void\t\t\t\tCopy(const AudioBufferList& inSource, UInt32 inStartingSourceChannel, AudioBufferList& outDestination, UInt32 inStartingDestinationChannel);\n\tstatic void\t\t\t\tCopyChannel(const AudioBuffer& inSource, UInt32 inSourceChannel, AudioBuffer& outDestination, UInt32 inDestinationChannel);\n\tstatic void\t\t\t\tSum(const AudioBufferList& inSourceBufferList, AudioBufferList& ioSummedBufferList);\n\tstatic bool\t\t\t\tHasData(AudioBufferList& inBufferList);\n#if\tCoreAudio_Debug\n\tstatic void\t\t\t\tPrintToLog(const AudioBufferList& inBufferList);\n#endif\n\n\tstatic const AudioBufferList*\tGetEmptyBufferList();\n\n};\n\n// Declare a variably-sized AudioBufferList on the stack\n#define STACK_ABL(name, nbufs) \\\n\tThrowIf(nbufs < 1 || nbufs > 64, CAException(kAudio_ParamError), \"STACK_ABL: invalid number of buffers\") \\\n\tconst size_t name##_ByteSize = sizeof(AudioBufferList) + (nbufs - 1) * sizeof(AudioBuffer); \\\n\tAudioBufferList &name = *(AudioBufferList *)alloca(name##_ByteSize); \\\n\tname.mNumberBuffers = nbufs;\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioChannelLayout.cpp",
    "content": "/*\n     File: CAAudioChannelLayout.cpp\n Abstract: CAAudioChannelLayout.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSelf Include\n#include \"CAAudioChannelLayout.h\"\n#include \"CAAutoDisposer.h\"\n#include <stdlib.h>\n#include <string.h>\n\n//=============================================================================\n//\tCAAudioChannelLayout\n//=============================================================================\n\nAudioChannelLayout*\tCAAudioChannelLayout::Create(UInt32 inNumberChannelDescriptions)\n{\n\tUInt32 theSize = CalculateByteSize(inNumberChannelDescriptions);\n\tAudioChannelLayout* theAnswer = static_cast<AudioChannelLayout*>(CA_calloc(1, theSize));\n\tif(theAnswer != NULL)\n\t{\n\t\tSetAllToUnknown(*theAnswer, inNumberChannelDescriptions);\n\t}\n\treturn theAnswer;\n}\n\nvoid\tCAAudioChannelLayout::Destroy(AudioChannelLayout* inChannelLayout)\n{\n\tfree(inChannelLayout);\n}\n\nvoid\tCAAudioChannelLayout::SetAllToUnknown(AudioChannelLayout& outChannelLayout, UInt32 inNumberChannelDescriptions)\n{\n\toutChannelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_UseChannelDescriptions;\n\toutChannelLayout.mChannelBitmap = 0;\n\toutChannelLayout.mNumberChannelDescriptions = inNumberChannelDescriptions;\n\tfor(UInt32 theChannelIndex = 0; theChannelIndex < inNumberChannelDescriptions; ++theChannelIndex)\n\t{\n\t\toutChannelLayout.mChannelDescriptions[theChannelIndex].mChannelLabel = kAudioChannelLabel_Unknown;\n\t\toutChannelLayout.mChannelDescriptions[theChannelIndex].mChannelFlags = 0;\n\t\toutChannelLayout.mChannelDescriptions[theChannelIndex].mCoordinates[0] = 0;\n\t\toutChannelLayout.mChannelDescriptions[theChannelIndex].mCoordinates[1] = 0;\n\t\toutChannelLayout.mChannelDescriptions[theChannelIndex].mCoordinates[2] = 0;\n\t}\n}\n\nbool\toperator== (const AudioChannelLayout &x, const AudioChannelLayout &y)\n{\n\t// compare based on the number of channel descriptions present\n\t// (this may be too strict a comparison if all you care about are matching layout tags)\n\tUInt32 theSize1 = CAAudioChannelLayout::CalculateByteSize(x.mNumberChannelDescriptions);\n\tUInt32 theSize2 = CAAudioChannelLayout::CalculateByteSize(y.mNumberChannelDescriptions);\n\t\n\tif (theSize1 != theSize2)\n\t\treturn false;\n\t\t\n\treturn !memcmp (&x, &y, theSize1);\n}\n\nbool\toperator!= (const AudioChannelLayout &x, const AudioChannelLayout &y)\n{\n\treturn !(x == y);\n}\n\n// counting the one bits in a word\ninline UInt32 CountOnes(UInt32 x)\n{\n\t// secret magic algorithm for counting bits in a word.\n\tUInt32 t;\n\tx = x - ((x >> 1) & 0x55555555);\n\tt = ((x >> 2) & 0x33333333);\n\tx = (x & 0x33333333) + t;\n\tx = (x + (x >> 4)) & 0x0F0F0F0F;\n\tx = x + (x << 8);\n\tx = x + (x << 16);\n\treturn x >> 24;\n}\n\nUInt32\tCAAudioChannelLayout::NumberChannels (const AudioChannelLayout& inLayout)\n{\n\tif (inLayout.mChannelLayoutTag == kAudioChannelLayoutTag_UseChannelDescriptions)\n\t\treturn inLayout.mNumberChannelDescriptions;\n\t\n\tif (inLayout.mChannelLayoutTag == kAudioChannelLayoutTag_UseChannelBitmap)\n\t\treturn CountOnes (inLayout.mChannelBitmap);\n\n\treturn AudioChannelLayoutTag_GetNumberOfChannels(inLayout.mChannelLayoutTag);\n}\n\nvoid \tCAShowAudioChannelLayout (FILE* file, const AudioChannelLayout *layout)\n{\n\tif (layout == NULL) \n\t{\n\t\tfprintf (file, \"\\tNULL layout\\n\");\n\t\treturn;\n\t}\n\tfprintf (file, \"\\tTag=0x%X, \", (int)layout->mChannelLayoutTag);\n\tif (layout->mChannelLayoutTag == kAudioChannelLayoutTag_UseChannelBitmap)\n\t\tfprintf (file, \"Using Bitmap:0x%X\\n\", (int)layout->mChannelBitmap);\n\telse {\n\t\tfprintf (file, \"Num Chan Descs=%d\\n\", (int)layout->mNumberChannelDescriptions);\n\t\tconst AudioChannelDescription *desc = layout->mChannelDescriptions;\n\t\tfor (unsigned int i = 0; i < layout->mNumberChannelDescriptions; ++i, ++desc) {\n\t\t\tfprintf (file, \"\\t\\tLabel=%d, Flags=0x%X, \", (int)desc->mChannelLabel, (int)desc->mChannelFlags);\n\t\t\tfprintf (file, \"[az=%f,el=%f,dist=%f]\\n\", desc->mCoordinates[0], desc->mCoordinates[1], desc->mCoordinates[2]);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioChannelLayout.h",
    "content": "/*\n     File: CAAudioChannelLayout.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAAudioChannelLayout_h__)\n#define __CAAudioChannelLayout_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include <CoreAudioTypes.h>\n\t#include <CoreFoundation.h>\n#endif\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"CADebugMacros.h\"\n#include \"CAAutoDisposer.h\"\n\n#if !HAL_Build\n\t#include \"CAReferenceCounted.h\"\n#endif\n\n//=============================================================================\n//\tCAAudioChannelLayout\n//=============================================================================\n\nbool\toperator== (const AudioChannelLayout &x, const AudioChannelLayout &y);\nbool\toperator!= (const AudioChannelLayout &x, const AudioChannelLayout &y);\n\nextern \"C\" void \tCAShowAudioChannelLayout (FILE* file, const AudioChannelLayout *layout);\n\nclass CAAudioChannelLayout\n{\n//\tstatic Construction/Destruction\npublic:\n\tstatic AudioChannelLayout*\tCreate(UInt32 inNumberChannelDescriptions);\n\tstatic void\t\t\t\t\tDestroy(AudioChannelLayout* inChannelLayout);\n\tstatic UInt32\t\t\t\tCalculateByteSize(UInt32 inNumberChannelDescriptions) { \n\t\t\t\t\t\t\t\t\treturn SizeOf32(AudioChannelLayout) - SizeOf32(AudioChannelDescription) + (inNumberChannelDescriptions * SizeOf32(AudioChannelDescription));\n\t\t\t\t\t\t\t\t}\n\tstatic void\t\t\t\t\tSetAllToUnknown(AudioChannelLayout& outChannelLayout, UInt32 inNumberChannelDescriptions);\n\tstatic UInt32\t\t\t\tNumberChannels(const AudioChannelLayout& inLayout);\n\t\n#if !HAL_Build\n// object methods\t\npublic:\n\t\t\t\t\t\t\t\tCAAudioChannelLayout ();\n\n\t\t\t\t\t\t\t\tCAAudioChannelLayout (UInt32 inNumberChannels, bool inChooseSurround);\n\t\t\t\t\t\t\t\t\t// if inChooseSurround is false, then symmetrical speaker arrangements\n\t\t\t\t\t\t\t\t\t// are chosen in place of surround layouts if there is a choice\n\t\t\t\t\t\t\t\t\t// This call chooses layouts based on the expected defaults in \n\t\t\t\t\t\t\t\t\t// AudioUnit usage\n\t\t\t\t\t\t\t\tCAAudioChannelLayout (AudioChannelLayoutTag inTag);\n\t\t\t\t\t\t\t\tCAAudioChannelLayout (const CAAudioChannelLayout &c);\n\t\t\t\t\t\t\t\tCAAudioChannelLayout (const AudioChannelLayout* inChannelLayout);\n\t\t\t\t\t\t\t\t~CAAudioChannelLayout();\n\t\n\tCAAudioChannelLayout&\t\toperator= (const AudioChannelLayout* inChannelLayout);\n\tCAAudioChannelLayout&\t\toperator= (const CAAudioChannelLayout& c);\n\tbool\t\t\t\t\t\toperator== (const CAAudioChannelLayout &c) const;\n\tbool\t\t\t\t\t\toperator!= (const CAAudioChannelLayout &c) const;\n\n\tvoid\t\t\t\t\t\tSetWithTag(AudioChannelLayoutTag inTag);\n\n\tbool\t\t\t\t\t\tIsValid() const { return NumberChannels() > 0; }\n\tUInt32\t\t\t\t\t\tSize() const { return mLayout ? mLayout->Size() : 0; }\n\t\n\tUInt32\t\t\t\t\t\tNumberChannels() const { return mLayout ? mLayout->NumberChannels() : 0; }\n\t\n\tAudioChannelLayoutTag\t\tTag() const { return Layout().mChannelLayoutTag; }\n\tconst AudioChannelLayout&\tLayout() const { return mLayout->Layout(); }\n\toperator const AudioChannelLayout *() const { return &Layout(); }\n\t\n\tvoid\t\t\t\t\t\tPrint () const { Print (stdout); }\n\tvoid\t\t\t\t\t\tPrint (FILE* file) const;\n\n\tOSStatus\t\t\t\t\tSave (CFPropertyListRef *outData) const;\n\tOSStatus\t\t\t\t\tRestore (CFPropertyListRef &inData);\n\t\nprivate:\n\tclass RefCountedLayout : public CAReferenceCounted {\n\t\tvoid *\toperator new(size_t /* size */, size_t aclSize)\n\t\t{\n\t\t\treturn CA_malloc(sizeof(RefCountedLayout) - sizeof(AudioChannelLayout) + aclSize);\n\t\t}\n\t\t\n\t\tvoid\toperator delete(void *mem)\n\t\t{\n\t\t\tfree(mem);\n\t\t}\n\t\t\n\t\t\n\t\tRefCountedLayout(UInt32 inDataSize) :\n\t\t\tmByteSize(inDataSize)\n\t\t{ \n\t\t\tmemset(&mACL, 0, inDataSize);\n\t\t}\n\t\t\n\tpublic:\n\t\tstatic RefCountedLayout *CreateWithNumberChannelDescriptions(unsigned nChannels) {\n\t\t\t\t\t\t\t\tsize_t size = CAAudioChannelLayout::CalculateByteSize(nChannels);\n\t\t\t\t\t\t\t\treturn new(size) RefCountedLayout((UInt32)size);\n\t\t\t\t\t\t\t}\n\n\t\tstatic RefCountedLayout *CreateWithLayout(const AudioChannelLayout *layout) {\n\t\t\t\t\t\t\t\tsize_t size = CAAudioChannelLayout::CalculateByteSize(layout->mNumberChannelDescriptions);\n\t\t\t\t\t\t\t\tRefCountedLayout *acl = new(size) RefCountedLayout((UInt32)size);\n\t\t\t\t\t\t\t\tmemcpy(&acl->mACL, layout, size);\n\t\t\t\t\t\t\t\treturn acl;\n\t\t\t\t\t\t\t}\n\t\tstatic RefCountedLayout *CreateWithLayoutTag(AudioChannelLayoutTag layoutTag) {\n\t\t\t\t\t\t\t\tRefCountedLayout *acl = CreateWithNumberChannelDescriptions(0);\n\t\t\t\t\t\t\t\tacl->mACL.mChannelLayoutTag = layoutTag;\n\t\t\t\t\t\t\t\treturn acl;\n\t\t\t\t\t\t\t}\n\t\n\t\tconst AudioChannelLayout & \tLayout() const { return mACL; }\n\t\t\n\t\tUInt32\t\t\t\t\t\tSize () const { return mByteSize; }\n\t\t\n\t\tUInt32\t\t\t\t\t\tNumberChannels() { return CAAudioChannelLayout::NumberChannels(Layout()); }\n\t\t\n\tprivate:\n\t\tconst UInt32\t\tmByteSize;\n\t\tAudioChannelLayout \tmACL;\n\t\t// * * * mACL is variable length and thus must be last * * *\n\t\t\n\t\t\t// only the constructors can change the actual state of the layout\n\t\tfriend CAAudioChannelLayout::CAAudioChannelLayout (UInt32 inNumberChannels, bool inChooseSurround);\n\t\tfriend OSStatus CAAudioChannelLayout::Restore (CFPropertyListRef &inData);\n\t\tfriend CAAudioChannelLayout& CAAudioChannelLayout::operator= (const AudioChannelLayout* inChannelLayout);\n\t\tfriend void CAAudioChannelLayout::SetWithTag(AudioChannelLayoutTag inTag);\n\t\t\n\t\tAudioChannelLayout * \tGetLayout() { return &mACL; }\n\t\n\tprivate:\n\t\t// prohibited methods: private and unimplemented.\n\t\tRefCountedLayout();\n\t\tRefCountedLayout(const RefCountedLayout& c);\n\t\tRefCountedLayout& operator=(const RefCountedLayout& c);\n\t};\n\t\n\tRefCountedLayout\t\t*mLayout;\n#endif\t//\tHAL_Build\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioChannelLayoutObject.cpp",
    "content": "/*\n     File: CAAudioChannelLayoutObject.cpp\n Abstract: CAAudioChannelLayoutObject.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAAudioChannelLayout.h\"\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioFormat.h>\n#else\n\t#include <AudioFormat.h>\n#endif\n\nCAAudioChannelLayout::CAAudioChannelLayout ()\n{\n\tmLayout = RefCountedLayout::CreateWithNumberChannelDescriptions(0);\n}\n\n//=============================================================================\n//\tCAAudioChannelLayout::CAAudioChannelLayout\n//=============================================================================\nCAAudioChannelLayout::CAAudioChannelLayout (UInt32 inNumberChannels, bool inChooseSurround)\n{\t\t\n\t\t// this chooses default layouts based on the number of channels...\n\tAudioChannelLayoutTag tag;\n\t\n\tswitch (inNumberChannels) \n\t{\n\t\tdefault:\n\t\t\t// here we have a \"broken\" layout, in the sense that we haven't any idea how to lay this out\n\t\t\tmLayout = RefCountedLayout::CreateWithNumberChannelDescriptions(inNumberChannels);\n\t\t\tSetAllToUnknown(*mLayout->GetLayout(), inNumberChannels);\n\t\t\treturn; // don't fall into the tag case\n\t\tcase 1:\n\t\t\ttag = kAudioChannelLayoutTag_Mono;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\ttag = inChooseSurround ? kAudioChannelLayoutTag_Binaural : kAudioChannelLayoutTag_Stereo;\n\t\t\tbreak;\n\t\tcase 4:\n\t\t\ttag = inChooseSurround ? kAudioChannelLayoutTag_Ambisonic_B_Format : kAudioChannelLayoutTag_AudioUnit_4;\n\t\t\tbreak;\n\t\tcase 5:\n\t\t\ttag = inChooseSurround ? kAudioChannelLayoutTag_AudioUnit_5_0 : kAudioChannelLayoutTag_AudioUnit_5;\n\t\t\tbreak;\n\t\tcase 6:\n\t\t\ttag = inChooseSurround ? kAudioChannelLayoutTag_AudioUnit_6_0 : kAudioChannelLayoutTag_AudioUnit_6;\n\t\t\tbreak;\n\t\tcase 7:\n\t\t\ttag = kAudioChannelLayoutTag_AudioUnit_7_0;\n\t\t\tbreak;\n\t\tcase 8:\n\t\t\ttag = kAudioChannelLayoutTag_AudioUnit_8;\n\t\t\tbreak;\n\t}\n\t\n\tmLayout = RefCountedLayout::CreateWithLayoutTag(tag);\n}\n\n//=============================================================================\n//\tCAAudioChannelLayout::CAAudioChannelLayout\n//=============================================================================\nCAAudioChannelLayout::CAAudioChannelLayout (AudioChannelLayoutTag inLayoutTag)\n\t: mLayout(NULL)\n{\n\tSetWithTag(inLayoutTag);\n}\n\n//=============================================================================\n//\tCAAudioChannelLayout::CAAudioChannelLayout\n//=============================================================================\nCAAudioChannelLayout::CAAudioChannelLayout (const CAAudioChannelLayout &c)\n\t: mLayout(NULL)\n{\n\t*this = c;\n}\n\n\n//=============================================================================\n//\tCAAudioChannelLayout::AudioChannelLayout\n//=============================================================================\nCAAudioChannelLayout::CAAudioChannelLayout (const AudioChannelLayout* inChannelLayout)\n\t: mLayout(NULL)\n{\n\t*this = inChannelLayout;\n}\n\n//=============================================================================\n//\tCAAudioChannelLayout::~CAAudioChannelLayout\n//=============================================================================\nCAAudioChannelLayout::~CAAudioChannelLayout ()\n{\n\tif (mLayout) {\n\t\tmLayout->release();\n\t\tmLayout = NULL;\n\t}\n}\n\n//=============================================================================\n//\tCAAudioChannelLayout::CAAudioChannelLayout\n//=============================================================================\nCAAudioChannelLayout& CAAudioChannelLayout::operator= (const CAAudioChannelLayout &c)\n{\n\tif (mLayout != c.mLayout) {\n\t\tif (mLayout)\n\t\t\tmLayout->release();\n\t\n\t\tif ((mLayout = c.mLayout) != NULL)\n\t\t\tmLayout->retain();\n\t}\n\t\n\treturn *this;\n}\n\nCAAudioChannelLayout&\tCAAudioChannelLayout::operator= (const AudioChannelLayout* inChannelLayout)\n{\n\tif (mLayout && &mLayout->Layout() == inChannelLayout)\n\t\treturn *this;\n\t\t\n\tif (mLayout)\n\t\tmLayout->release();\n\n\tif (inChannelLayout == NULL) \n\t{\n\t\tmLayout = RefCountedLayout::CreateWithNumberChannelDescriptions(0);\n\t}\n\telse\n\t{\n\t\tmLayout = RefCountedLayout::CreateWithLayout(inChannelLayout);\n\t}\n\treturn *this;\n}\n\nvoid\tCAAudioChannelLayout::SetWithTag(AudioChannelLayoutTag inTag)\n{\n\tif (mLayout)\n\t\tmLayout->release();\n\t\n\tmLayout = RefCountedLayout::CreateWithLayoutTag(inTag);\n}\n\n//=============================================================================\n//\tCAAudioChannelLayout::operator==\n//=============================================================================\nbool\t\tCAAudioChannelLayout::operator== (const CAAudioChannelLayout &c) const\n{\n\tif (mLayout == c.mLayout)\n\t\treturn true;\n\treturn Layout() == c.Layout();\n}\n\n//=============================================================================\n//\tCAAudioChannelLayout::operator!=\n//=============================================================================\nbool\t\tCAAudioChannelLayout::operator!= (const CAAudioChannelLayout &c) const\n{\n\tif (mLayout == c.mLayout)\n\t\treturn false;\n\n\treturn !(Layout() == c.Layout());\n}\n\n//=============================================================================\n//\tCAAudioChannelLayout::Print\n//=============================================================================\nvoid\t\tCAAudioChannelLayout::Print (FILE* file) const\n{\n\tCAShowAudioChannelLayout (file, &Layout());\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioFileFormats.cpp",
    "content": "/*\n     File: CAAudioFileFormats.cpp\n Abstract: CAAudioFileFormats.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAAudioFileFormats.h\"\n#include <algorithm>\n#include <ctype.h>\n\nCAAudioFileFormats *CAAudioFileFormats::sInstance = NULL;\n\nCAAudioFileFormats *CAAudioFileFormats::Instance(bool loadDataFormats)\n{\n\tif (sInstance == NULL)\n\t\tsInstance = new CAAudioFileFormats(loadDataFormats);\n\treturn sInstance;\n}\n\n/*\nclass CompareFileFormatNames {\npublic:\n\tbool\toperator() (const CAAudioFileFormats::FileFormatInfo &a, const CAAudioFileFormats::FileFormatInfo &b)\n\t{\n\t\treturn CFStringCompare(a.mFileTypeName, b.mFileTypeName, \n\t\t\tkCFCompareCaseInsensitive | kCFCompareLocalized) == kCFCompareLessThan;\n\t}\n};*/\n\nstatic int CompareFileFormatNames(const void *va, const void *vb)\n{\n\tCAAudioFileFormats::FileFormatInfo  *a = (CAAudioFileFormats::FileFormatInfo *)va, \n\t\t\t\t\t\t\t\t\t\t*b = (CAAudioFileFormats::FileFormatInfo *)vb;\n\treturn CFStringCompare(a->mFileTypeName, b->mFileTypeName, \n\t\tkCFCompareCaseInsensitive | kCFCompareLocalized);\n}\n\nCAAudioFileFormats::CAAudioFileFormats(bool loadDataFormats) : \n\tmNumFileFormats(0), mFileFormats(NULL)\n{\n\tOSStatus err;\n\tUInt32 size;\n\tUInt32 *fileTypes = NULL;\n\t\n\t// get all file types\n\terr = AudioFileGetGlobalInfoSize(kAudioFileGlobalInfo_WritableTypes, 0, NULL, &size);\n\tif (err != noErr) goto bail;\n\tmNumFileFormats = size / sizeof(UInt32);\n\tmFileFormats = new FileFormatInfo[mNumFileFormats];\n\tfileTypes = new UInt32[mNumFileFormats];\n\terr = AudioFileGetGlobalInfo(kAudioFileGlobalInfo_WritableTypes, 0, NULL, &size, fileTypes);\n\tif (err != noErr) goto bail;\n\t\n\t// get info for each file type\n\tfor (int i = 0; i < mNumFileFormats; ++i) {\n\t\tFileFormatInfo *ffi = &mFileFormats[i];\n\t\tOSType filetype = fileTypes[i];\n\n\t\tffi->mFileTypeID = filetype;\n\t\t\n\t\t// file type name\n\t\tffi->mFileTypeName = NULL;\n\t\tsize = sizeof(CFStringRef);\n\t\terr = AudioFileGetGlobalInfo(kAudioFileGlobalInfo_FileTypeName, sizeof(UInt32), &filetype, &size, &ffi->mFileTypeName);\n\t\tif (err == noErr && ffi->mFileTypeName)\n\t\t\tCFRetain(ffi->mFileTypeName);\n\t\t\n\t\t// file extensions\n\t\tsize = sizeof(CFArrayRef);\n\t\terr = AudioFileGetGlobalInfo(kAudioFileGlobalInfo_ExtensionsForType,\n\t\t\tsizeof(OSType), &filetype, &size, &ffi->mExtensions);\n\t\tif (err)\n\t\t\tffi->mExtensions = NULL;\n\t\t\n\t\t// file data formats\n\t\tffi->mNumDataFormats = 0;\n\t\tffi->mDataFormats = NULL;\n\t\t\n\t\tif (loadDataFormats)\n\t\t\tffi->LoadDataFormats();\n\t}\n\n\t// sort file formats by name\n\tqsort(mFileFormats, mNumFileFormats, sizeof(FileFormatInfo), CompareFileFormatNames);\nbail:\n\tdelete[] fileTypes;\n}\n\nvoid\tCAAudioFileFormats::FileFormatInfo::LoadDataFormats()\n{\n\tif (mDataFormats != NULL) return;\n\t\n\tUInt32 *writableFormats = NULL, *readableFormats = NULL;\n\tint nWritableFormats, nReadableFormats;\n\t// get all writable formats\n\tUInt32 size;\n\tOSStatus err = AudioFormatGetPropertyInfo(kAudioFormatProperty_EncodeFormatIDs, 0, NULL, &size);\n\tif (err != noErr) goto bail;\n\tnWritableFormats = size / sizeof(UInt32);\n\twritableFormats = new UInt32[nWritableFormats];\n\terr = AudioFormatGetProperty(kAudioFormatProperty_EncodeFormatIDs, 0, NULL, &size, writableFormats);\n\tif (err != noErr) goto bail;\n\t\n\t// get all readable formats\n\terr = AudioFormatGetPropertyInfo(kAudioFormatProperty_DecodeFormatIDs, 0, NULL, &size);\n\tif (err != noErr) goto bail;\n\tnReadableFormats = size / sizeof(UInt32);\n\treadableFormats = new UInt32[nReadableFormats];\n\terr = AudioFormatGetProperty(kAudioFormatProperty_DecodeFormatIDs, 0, NULL, &size, readableFormats);\n\tif (err != noErr) goto bail;\n\t\n\terr = AudioFileGetGlobalInfoSize(kAudioFileGlobalInfo_AvailableFormatIDs, sizeof(UInt32), &mFileTypeID, &size);\n\tif (err == noErr) {\n\t\tmNumDataFormats = size / sizeof(OSType);\n\t\tOSType *formatIDs = new OSType[mNumDataFormats];\n\t\terr = AudioFileGetGlobalInfo(kAudioFileGlobalInfo_AvailableFormatIDs,\n\t\t\tsizeof(UInt32), &mFileTypeID, &size, formatIDs);\n\t\tif (err == noErr) {\n\t\t\tmDataFormats = new DataFormatInfo[mNumDataFormats];\n\t\t\tfor (int j = 0; j < mNumDataFormats; ++j) {\n\t\t\t\tint k;\n\t\t\t\tbool anyBigEndian = false, anyLittleEndian = false;\n\t\t\t\tDataFormatInfo *dfi = &mDataFormats[j];\n\t\t\t\tdfi->mFormatID = formatIDs[j];\n\t\t\t\tdfi->mReadable = (dfi->mFormatID == kAudioFormatLinearPCM);\n\t\t\t\tdfi->mWritable = (dfi->mFormatID == kAudioFormatLinearPCM);\n\t\t\t\tfor (k = 0; k < nReadableFormats; ++k)\n\t\t\t\t\tif (readableFormats[k] == dfi->mFormatID) {\n\t\t\t\t\t\tdfi->mReadable = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tfor (k = 0; k < nWritableFormats; ++k)\n\t\t\t\t\tif (writableFormats[k] == dfi->mFormatID) {\n\t\t\t\t\t\tdfi->mWritable = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\tdfi->mNumVariants = 0;\n\t\t\t\tAudioFileTypeAndFormatID tf = { mFileTypeID, dfi->mFormatID };\n\t\t\t\terr = AudioFileGetGlobalInfoSize(kAudioFileGlobalInfo_AvailableStreamDescriptionsForFormat,\n\t\t\t\t\tsizeof(AudioFileTypeAndFormatID), &tf, &size);\n\t\t\t\tif (err == noErr) {\n\t\t\t\t\tdfi->mNumVariants = size / sizeof(AudioStreamBasicDescription);\n\t\t\t\t\tdfi->mVariants = new AudioStreamBasicDescription[dfi->mNumVariants];\n\t\t\t\t\terr = AudioFileGetGlobalInfo(kAudioFileGlobalInfo_AvailableStreamDescriptionsForFormat,\n\t\t\t\t\t\tsizeof(AudioFileTypeAndFormatID), &tf, &size, dfi->mVariants);\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tdfi->mNumVariants = 0;\n\t\t\t\t\t\tdelete[] dfi->mVariants;\n\t\t\t\t\t\tdfi->mVariants = NULL;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (k = 0; k < dfi->mNumVariants; ++k) {\n\t\t\t\t\t\t\tAudioStreamBasicDescription *desc = &dfi->mVariants[k];\n\t\t\t\t\t\t\tif (desc->mBitsPerChannel > 8) {\n\t\t\t\t\t\t\t\tif (desc->mFormatFlags & kAudioFormatFlagIsBigEndian)\n\t\t\t\t\t\t\t\t\tanyBigEndian = true;\n\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\tanyLittleEndian = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tdfi->mEitherEndianPCM = (anyBigEndian && anyLittleEndian);\n\t\t\t}\n\t\t}\n\t\tdelete[] formatIDs;\n\t}\nbail:\n\tdelete[] readableFormats;\n\tdelete[] writableFormats;\n}\n\n// note that the outgoing format will have zero for the sample rate, channels per frame, bytesPerPacket, bytesPerFrame\nbool\tCAAudioFileFormats::InferDataFormatFromFileFormat(AudioFileTypeID filetype, CAStreamBasicDescription &fmt)\n{\n\t// if the file format only supports one data format\n\tfor (int i = 0; i < mNumFileFormats; ++i) {\n\t\tFileFormatInfo *ffi = &mFileFormats[i];\n\t\tffi->LoadDataFormats();\n\t\tif (ffi->mFileTypeID == filetype && ffi->mNumDataFormats > 0) {\n\t\t\tDataFormatInfo *dfi = &ffi->mDataFormats[0];\n\t\t\tif (ffi->mNumDataFormats > 1) {\n\t\t\t\t// file can contain multiple data formats. Take PCM if it's there.\n\t\t\t\tfor (int j = 0; j < ffi->mNumDataFormats; ++j) {\n\t\t\t\t\tif (ffi->mDataFormats[j].mFormatID == kAudioFormatLinearPCM) {\n\t\t\t\t\t\tdfi = &ffi->mDataFormats[j];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemset(&fmt, 0, sizeof(fmt));\n\t\t\tfmt.mFormatID = dfi->mFormatID;\n\t\t\tif (dfi->mNumVariants > 0) {\n\t\t\t\t// take the first variant as a default\n\t\t\t\tfmt = dfi->mVariants[0];\n\t\t\t\tif (dfi->mNumVariants > 1 && dfi->mFormatID == kAudioFormatLinearPCM) {\n\t\t\t\t\t// look for a 16-bit variant as a better default\n\t\t\t\t\tfor (int j = 0; j < dfi->mNumVariants; ++j) {\n\t\t\t\t\t\tAudioStreamBasicDescription *desc = &dfi->mVariants[j];\n\t\t\t\t\t\tif (desc->mBitsPerChannel == 16) {\n\t\t\t\t\t\t\tfmt = *desc;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nbool\tCAAudioFileFormats::InferFileFormatFromFilename(CFStringRef filename, AudioFileTypeID &filetype)\n{\n\tbool result = false;\n\tCFRange range = CFStringFind(filename, CFSTR(\".\"), kCFCompareBackwards);\n\tif (range.location == kCFNotFound) return false;\n\trange.location += 1;\n\trange.length = CFStringGetLength(filename) - range.location;\n\tCFStringRef ext = CFStringCreateWithSubstring(NULL, filename, range);\n\tfor (int i = 0; i < mNumFileFormats; ++i) {\n\t\tFileFormatInfo *ffi = &mFileFormats[i];\n\t\tif (ffi->MatchExtension(ext)) {\n\t\t\tfiletype = ffi->mFileTypeID;\n\t\t\tresult = true;\n\t\t\tbreak;\n\t\t}\n\t}\n\tCFRelease(ext);\n\treturn result;\n}\n\nbool\tCAAudioFileFormats::InferFileFormatFromFilename(const char *filename, AudioFileTypeID &filetype)\n{\n\tif (filename == NULL) return false;\n\tCFStringRef cfname = CFStringCreateWithCString(NULL, filename, kCFStringEncodingUTF8);\n\tbool result = InferFileFormatFromFilename(cfname, filetype);\n\tCFRelease(cfname);\n\treturn result;\n}\n\nbool\tCAAudioFileFormats::InferFileFormatFromDataFormat(const CAStreamBasicDescription &fmt, \n\t\t\tAudioFileTypeID &filetype)\n{\n\t// if there's exactly one file format that supports this data format\n\tFileFormatInfo *theFileFormat = NULL;\n\tfor (int i = 0; i < mNumFileFormats; ++i) {\n\t\tFileFormatInfo *ffi = &mFileFormats[i];\n\t\tffi->LoadDataFormats();\n\t\tDataFormatInfo *dfi = ffi->mDataFormats, *dfiend = dfi + ffi->mNumDataFormats;\n\t\tfor ( ; dfi < dfiend; ++dfi)\n\t\t\tif (dfi->mFormatID == fmt.mFormatID) {\n\t\t\t\tif (theFileFormat != NULL)\n\t\t\t\t\treturn false;\t// ambiguous\n\t\t\t\ttheFileFormat = ffi;\t// got a candidate\n\t\t\t}\n\t}\n\tif (theFileFormat == NULL)\n\t\treturn false;\n\tfiletype = theFileFormat->mFileTypeID;\n\treturn true;\n}\n\nbool\tCAAudioFileFormats::IsKnownDataFormat(OSType dataFormat)\n{\n\tfor (int i = 0; i < mNumFileFormats; ++i) {\n\t\tFileFormatInfo *ffi = &mFileFormats[i];\n\t\tffi->LoadDataFormats();\n\t\tDataFormatInfo *dfi = ffi->mDataFormats, *dfiend = dfi + ffi->mNumDataFormats;\n\t\tfor ( ; dfi < dfiend; ++dfi)\n\t\t\tif (dfi->mFormatID == dataFormat)\n\t\t\t\treturn true;\n\t}\n\treturn false;\n}\n\nCAAudioFileFormats::FileFormatInfo *\tCAAudioFileFormats::FindFileFormat(UInt32 formatID)\n{\n\tfor (int i = 0; i < mNumFileFormats; ++i) {\n\t\tFileFormatInfo *ffi = &mFileFormats[i];\n\t\tif (ffi->mFileTypeID == formatID)\n\t\t\treturn ffi;\n\t}\n\treturn NULL;\n}\n\nbool\tCAAudioFileFormats::FileFormatInfo::AnyWritableFormats()\n{\n\tLoadDataFormats();\n\tDataFormatInfo *dfi = mDataFormats, *dfiend = dfi + mNumDataFormats;\n\tfor ( ; dfi < dfiend; ++dfi)\n\t\tif (dfi->mWritable)\n\t\t\treturn true;\n\treturn false;\n}\n\nchar *OSTypeToStr(char *buf, size_t bufsize, OSType t)\n{\n\tif (bufsize > 0) {\n\t\tchar *p = buf, *pend = buf + bufsize;\n\t\tchar str[4] = {0}, *q = str;\n\t\t*(UInt32 *)str = CFSwapInt32HostToBig(t);\n\t\tfor (int i = 0; i < 4 && p < pend; ++i) {\n\t\t\tif (isprint(*q) && *q != '\\\\')\n\t\t\t\t*p++ = *q++;\n\t\t\telse {\n\t\t\t\tsnprintf(p, pend - p, \"\\\\x%02x\", *q++);\n\t\t\t\tp += 4;\n\t\t\t}\n\t\t}\n\t\tif (p >= pend) p = pend - 1;\n\t\t*p = '\\0';\n\t}\n\treturn buf;\n}\n\nint\t\tStrToOSType(const char *str, OSType &t)\n{\n\tchar buf[4];\n\tconst char *p = str;\n\tint x;\n\tfor (int i = 0; i < 4; ++i) {\n\t\tif (*p != '\\\\') {\n\t\t\tif ((buf[i] = *p++) == '\\0') {\n\t\t\t\t// special-case for 'aac ': if we only got three characters, assume the last was a space\n\t\t\t\tif (i == 3) {\n\t\t\t\t\t--p;\n\t\t\t\t\tbuf[i] = ' ';\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tgoto fail;\n\t\t\t}\n\t\t} else {\n\t\t\tif (*++p != 'x') goto fail;\n\t\t\tif (sscanf(++p, \"%02X\", &x) != 1) goto fail;\n\t\t\tbuf[i] = x;\n\t\t\tp += 2;\n\t\t}\n\t}\n\tt = CFSwapInt32BigToHost(*(UInt32 *)buf);\n\treturn static_cast<int>(p - str);\nfail:\n\treturn 0;\n}\n\n#if DEBUG\n\nvoid\tCAAudioFileFormats::DebugPrint()\n{\n\tfor (int i = 0; i < mNumFileFormats; ++i)\n\t\tmFileFormats[i].DebugPrint();\n}\n\nvoid\tCAAudioFileFormats::FileFormatInfo::DebugPrint()\n{\n\tchar ftype[20];\n\tchar ftypename[64];\n\tCFStringGetCString(mFileTypeName, ftypename, sizeof(ftypename), kCFStringEncodingUTF8);\n\tprintf(\"File type: '%s' = %s\\n  Extensions:\", OSTypeToStr(ftype, sizeof(ftype), mFileTypeID), ftypename);\n\tint i, n = NumberOfExtensions();\n\tfor (i = 0; i < n; ++i) {\n\t\tGetExtension(i, ftype, sizeof(ftype));\n\t\tprintf(\" .%s\", ftype);\n\t}\n\tLoadDataFormats();\n\tprintf(\"\\n  Formats:\\n\");\n\tfor (i = 0; i < mNumDataFormats; ++i)\n\t\tmDataFormats[i].DebugPrint();\n}\n\nvoid\tCAAudioFileFormats::DataFormatInfo::DebugPrint()\n{\n\tchar buf[20];\n\tstatic const char *ny[] = { \"not \", \"\" };\n\tprintf(\"    '%s': %sreadable %swritable\\n\", OSTypeToStr(buf, sizeof(buf), mFormatID), ny[mReadable], ny[mWritable]);\n\tfor (int i = 0; i < mNumVariants; ++i) {\n\t\tCAStreamBasicDescription desc(mVariants[i]);\n\t\tdesc.PrintFormat(stdout, \"      \", \"\");\n\t\t//printf(\"        %d bytes/frame\\n\", desc.mBytesPerFrame);\n\t}\n}\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioFileFormats.h",
    "content": "/*\n     File: CAAudioFileFormats.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAAudioFileFormats_h__\n#define __CAAudioFileFormats_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/AudioToolbox.h>\n#else\n\t#include <AudioToolbox.h>\n#endif\n#include \"CAStreamBasicDescription.h\"\n\nclass CAAudioFileFormats {\npublic:\n\tenum { noErr = 0 };\n\n\tstruct DataFormatInfo {\n\t\tDataFormatInfo() : mVariants(NULL) { }\n\t\t~DataFormatInfo() { delete[] mVariants; }\n\t\t\n\t\tUInt32\t\t\t\t\t\t\tmFormatID;\n\t\tint\t\t\t\t\t\t\t\tmNumVariants;\n\t\tAudioStreamBasicDescription *\tmVariants;\n\t\tbool\t\t\t\t\t\t\tmReadable;\n\t\tbool\t\t\t\t\t\t\tmWritable;\n\t\tbool\t\t\t\t\t\t\tmEitherEndianPCM;\n\n#if DEBUG\n\t\tvoid\tDebugPrint();\n#endif\n\t};\n\t\n\tstruct FileFormatInfo {\n\t\tFileFormatInfo() : mFileTypeName(NULL), mExtensions(NULL), mDataFormats(NULL) { }\n\t\t~FileFormatInfo() {\n\t\t\tdelete[] mDataFormats;\n\t\t\tif (mFileTypeName)\n\t\t\t\tCFRelease(mFileTypeName);\n\t\t\tif (mExtensions)\n\t\t\t\tCFRelease(mExtensions);\n\t\t}\n\t\t\n\t\tAudioFileTypeID\t\t\t\t\tmFileTypeID;\n\t\tCFStringRef\t\t\t\t\t\tmFileTypeName;\n\t\tCFArrayRef\t\t\t\t\t\tmExtensions;\n\t\tint\t\t\t\t\t\t\t\tmNumDataFormats;\n\t\tDataFormatInfo *\t\t\t\tmDataFormats;\t\t// NULL until loaded!\n\t\t\n\t\tint\t\tNumberOfExtensions() { return static_cast<int>(mExtensions ? CFArrayGetCount(mExtensions) : 0); }\n\t\tchar *\tGetExtension(int index, char *buf, int buflen) {\n\t\t\t\t\tCFStringRef cfext = (CFStringRef)CFArrayGetValueAtIndex(mExtensions, index);\n\t\t\t\t\tCFStringGetCString(cfext, buf, buflen, kCFStringEncodingUTF8);\n\t\t\t\t\treturn buf;\n\t\t\t\t}\n\t\tbool\tMatchExtension(CFStringRef testExt) {\t// testExt should not include \".\"\n\t\t\t\t\tCFIndex n = NumberOfExtensions();\n\t\t\t\t\tfor (CFIndex i = 0; i < n; ++i) {\n\t\t\t\t\t\tCFStringRef ext = (CFStringRef)CFArrayGetValueAtIndex(mExtensions, i);\n\t\t\t\t\t\tif (CFStringCompare(ext, testExt, kCFCompareCaseInsensitive) == kCFCompareEqualTo)\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\tbool\tAnyWritableFormats();\n\t\tvoid\tLoadDataFormats();\n\t\t\n#if DEBUG\n\t\tvoid\tDebugPrint();\n#endif\n\t};\n\t\nprivate:\t// use Instance()\n\tCAAudioFileFormats(bool loadDataFormats);\n\t~CAAudioFileFormats();\npublic:\n\t\n\tbool\tInferDataFormatFromFileFormat(AudioFileTypeID filetype, CAStreamBasicDescription &fmt);\n\t\n\tbool\tInferFileFormatFromFilename(const char *filename, AudioFileTypeID &filetype);\n\n\tbool\tInferFileFormatFromFilename(CFStringRef filename, AudioFileTypeID &filetype);\n\n\tbool\tInferFileFormatFromDataFormat(const CAStreamBasicDescription &fmt, AudioFileTypeID &filetype);\n\n\tbool\tIsKnownDataFormat(UInt32 dataFormat);\n\t\n#if DEBUG\n\tvoid\tDebugPrint();\n#endif\n\n\tint\t\t\t\t\tmNumFileFormats;\n\tFileFormatInfo\t*\tmFileFormats;\n\t\n\tFileFormatInfo *\tFindFileFormat(UInt32 formatID);\n\n\tstatic CAAudioFileFormats *\tInstance(bool loadDataFormats=true);\n\nprivate:\t\n\tstatic CAAudioFileFormats *\tsInstance;\n};\n\nchar *\tOSTypeToStr(char *buf, size_t bufsize, UInt32 t);\nint\t\tStrToOSType(const char *str, UInt32 &t);\n\n#endif // __CAAudioFileFormats_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioTimeStamp.cpp",
    "content": "/*\n     File: CAAudioTimeStamp.cpp\n Abstract: CAAudioTimeStamp.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CAAudioTimeStamp.h\"\n\n//=============================================================================\n//\tCAAudioTimeStamp\n//=============================================================================\n\nconst AudioTimeStamp\tCAAudioTimeStamp::kZero = { 0.0, 0, 0.0, 0, { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 0, 0 };\n\nbool\toperator<(const AudioTimeStamp& x, const AudioTimeStamp& y)\n{\n\tbool\tisLessThan = false;\n\tbool\tisDone = false;\n\t\n\t//\tcheck the sample time\n\tif(!isDone)\n\t{\n\t\tif((x.mFlags & kAudioTimeStampSampleTimeValid) && (y.mFlags & kAudioTimeStampSampleTimeValid))\n\t\t{\n\t\t\tisLessThan = x.mSampleTime < y.mSampleTime;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tcheck the host time\n\tif(!isDone)\n\t{\n\t\tif((x.mFlags & kAudioTimeStampHostTimeValid) && (y.mFlags & kAudioTimeStampHostTimeValid))\n\t\t{\n\t\t\tisLessThan = x.mHostTime < y.mHostTime;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tcheck the word clock time\n\tif(!isDone)\n\t{\n\t\tif((x.mFlags & kAudioTimeStampWordClockTimeValid) && (y.mFlags & kAudioTimeStampWordClockTimeValid))\n\t\t{\n\t\t\tisLessThan = x.mWordClockTime < y.mWordClockTime;\n\t\t\t//\tcommented out to prevent this from being flagged as a dead store by the static analyzer\n\t\t\t//isDone = true;\n\t\t}\n\t}\n\t\n\treturn isLessThan;\n}\n\nbool\toperator==(const AudioTimeStamp& x, const AudioTimeStamp& y)\n{\n\tbool\tisEqual = false;\n\tbool\tisDone = false;\n\t\n\t//\tcheck the sample time\n\tif(!isDone)\n\t{\n\t\tif((x.mFlags & kAudioTimeStampSampleTimeValid) && (y.mFlags & kAudioTimeStampSampleTimeValid))\n\t\t{\n\t\t\tisEqual = x.mSampleTime == y.mSampleTime;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tcheck the host time\n\tif(!isDone)\n\t{\n\t\tif((x.mFlags & kAudioTimeStampHostTimeValid) && (y.mFlags & kAudioTimeStampHostTimeValid))\n\t\t{\n\t\t\tisEqual = x.mHostTime == y.mHostTime;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tcheck the word clock time\n\tif(!isDone)\n\t{\n\t\tif((x.mFlags & kAudioTimeStampWordClockTimeValid) && (y.mFlags & kAudioTimeStampWordClockTimeValid))\n\t\t{\n\t\t\tisEqual = x.mWordClockTime == y.mWordClockTime;\n\t\t\t//\tcommented out to prevent this from being flagged as a dead store by the static analyzer\n\t\t\t//isDone = true;\n\t\t}\n\t}\n\t\n\treturn isEqual;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioTimeStamp.h",
    "content": "/*\n     File: CAAudioTimeStamp.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAAudioTimeStamp_h__)\n#define __CAAudioTimeStamp_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n#include <string.h>\n\n//=============================================================================\n//\tCAAudioTimeStamp\n//=============================================================================\n\nstruct CAAudioTimeStamp\n:\n\tpublic AudioTimeStamp\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCAAudioTimeStamp()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ memset(this, 0, sizeof(AudioTimeStamp)); }\n\t\t\t\t\t\tCAAudioTimeStamp(const AudioTimeStamp& v)\t\t\t\t\t\t\t\t\t\t{ memcpy(this, &v, sizeof(AudioTimeStamp)); }\n\t\t\t\t\t\tCAAudioTimeStamp(Float64 inSampleTime)\t\t\t\t\t\t\t\t\t\t\t{ memset(this, 0, sizeof(AudioTimeStamp)); mSampleTime = inSampleTime; mFlags = kAudioTimeStampSampleTimeValid; }\n\t\t\t\t\t\tCAAudioTimeStamp(UInt64 inHostTime)\t\t\t\t\t\t\t\t\t\t\t\t{ memset(this, 0, sizeof(AudioTimeStamp)); mHostTime = inHostTime; mFlags = kAudioTimeStampHostTimeValid; }\n\t\t\t\t\t\tCAAudioTimeStamp(Float64 inSampleTime, UInt64 inHostTime)\t\t\t\t\t\t{ memset(this, 0, sizeof(AudioTimeStamp)); mSampleTime = inSampleTime; mHostTime = inHostTime; mFlags = kAudioTimeStampSampleTimeValid | kAudioTimeStampHostTimeValid; }\n\t\t\t\t\t\tCAAudioTimeStamp(Float64 inSampleTime, UInt64 inHostTime, Float64 inRateScalar)\t{ memset(this, 0, sizeof(AudioTimeStamp)); mSampleTime = inSampleTime; mHostTime = inHostTime; mRateScalar = inRateScalar; mFlags = kAudioTimeStampSampleTimeValid | kAudioTimeStampHostTimeValid | kAudioTimeStampRateScalarValid; }\n\n//\tAssignment\npublic:\n\tCAAudioTimeStamp&\toperator=(const AudioTimeStamp& v) { memcpy(this, &v, sizeof(AudioTimeStamp)); return *this; }\n\n//\tConstants\npublic:\n\tstatic const AudioTimeStamp\tkZero;\n\n};\n\nbool\t\toperator<(const AudioTimeStamp& x, const AudioTimeStamp& y);\nbool\t\toperator==(const AudioTimeStamp& x, const AudioTimeStamp& y);\ninline bool\toperator!=(const AudioTimeStamp& x, const AudioTimeStamp& y) { return !(x == y); }\ninline bool\toperator<=(const AudioTimeStamp& x, const AudioTimeStamp& y) { return (x < y) || (x == y); }\ninline bool\toperator>=(const AudioTimeStamp& x, const AudioTimeStamp& y) { return !(x < y); }\ninline bool\toperator>(const AudioTimeStamp& x, const AudioTimeStamp& y) { return !((x < y) || (x == y)); }\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioUnit.cpp",
    "content": "/*\n     File: CAAudioUnit.cpp\n Abstract: CAAudioUnit.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAAudioUnit.h\"\n\n#if !TARGET_OS_IPHONE\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CarbonCore/Components.h>\n\t#include <dlfcn.h>\n#else\n\t#include <Components.h>\n#endif\n#endif\n\n#include \"CAXException.h\"\n#include \"CAReferenceCounted.h\"\n#include \"AUOutputBL.h\" //this is for the Preroll only\n\nstruct StackAUChannelInfo {\n\t\tStackAUChannelInfo (UInt32 inSize) : mChanInfo ((AUChannelInfo*)malloc (inSize)) {}\n\t\t~StackAUChannelInfo() { free (mChanInfo); }\n\t\t\n\tAUChannelInfo* mChanInfo;\n};\n\n// is this symbol is not defined then we use the default setting which is that fast dispatch\n// is supported on a desktop environment\n#ifndef CA_AU_USE_FAST_DISPATCH\n\t#define CA_AU_USE_FAST_DISPATCH !TARGET_OS_IPHONE\n#endif\n\n#if CA_AU_USE_FAST_DISPATCH\nstatic void *LoadGetComponentInstanceStorage (void *inst);\n#endif\n\n\nclass CAAudioUnit::AUState : public CAReferenceCounted  {\npublic:\n\tAUState (AudioComponent inComp)\n\t\t\t\t\t\t: mUnit(0), mNode (0)\n\t\t\t\t\t\t{ \n\t\t\t\t\t\t\tOSStatus result = ::AudioComponentInstanceNew (inComp, &mUnit); \n\t\t\t\t\t\t\tif (result)\n\t\t\t\t\t\t\t\tthrow result;\n\t\t\t\t\t\t\tInit();\n\t\t\t\t\t\t}\n\n\tAUState (const AUNode &inNode, const AudioUnit& inUnit)\n\t\t\t\t\t\t: mUnit (inUnit), mNode (inNode) \n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tInit();\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t~AUState();\n\t\t\t\t\t\t\t\t\t\t\t\n\tAudioUnit\t\t\tmUnit;\n\tAUNode\t\t\t\tmNode;\n\n\tOSStatus\t\t\tGetParameter(AudioUnitParameterID inID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 &outValue) const\n\t{\n#if CA_AU_USE_FAST_DISPATCH\n\t\t\tif (mGetParamProc != NULL) {\n\t\t\t\treturn (mGetParamProc) (mConnInstanceStorage, inID, scope, element, &outValue);\n\t\t\t}\t\t\t\t\t\t\t\n#endif\n\t\treturn AudioUnitGetParameter(mUnit, inID, scope, element, &outValue);\n\t}\n\n\tOSStatus\t\t\tSetParameter(AudioUnitParameterID inID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 value, UInt32 bufferOffsetFrames)\n\t{\n#if CA_AU_USE_FAST_DISPATCH\n\t\t\tif (mSetParamProc != NULL) {\n\t\t\t\treturn (mSetParamProc) (mConnInstanceStorage, inID, scope, element, value, bufferOffsetFrames);\n\t\t\t}\t\t\t\t\t\t\t\n#endif\n\t\t\treturn AudioUnitSetParameter(mUnit, inID, scope, element, value, bufferOffsetFrames);\n\t}\n\t\n\tOSStatus\t\t\tRender (AudioUnitRenderActionFlags *  ioActionFlags,\n\t\t\t\t\t\t\t\tconst AudioTimeStamp *        inTimeStamp,\n\t\t\t\t\t\t\t\tUInt32                        inOutputBusNumber,\n\t\t\t\t\t\t\t\tUInt32                        inNumberFrames,\n\t\t\t\t\t\t\t\tAudioBufferList *             ioData)\n\t{\n#if CA_AU_USE_FAST_DISPATCH\n\t\tif (mRenderProc != NULL) {\n\t\t\treturn (mRenderProc) (mConnInstanceStorage, ioActionFlags, inTimeStamp, inOutputBusNumber, inNumberFrames, ioData);\n\t\t}\t\t\t\t\t\t\t\n#endif\n\t\treturn AudioUnitRender(mUnit, ioActionFlags, inTimeStamp, inOutputBusNumber, inNumberFrames, ioData);\n\t}\n\t\n\tOSStatus\t\tMIDIEvent (UInt32\t\t\t\t\tinStatus,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinData1,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinData2,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinOffsetSampleFrame)\n\t{\n#if !TARGET_OS_WIN32\n#if CA_AU_USE_FAST_DISPATCH\n\t\tif (mMIDIEventProc != NULL) {\n\t\t\treturn (mMIDIEventProc) (mConnInstanceStorage, inStatus, inData1, inData2, inOffsetSampleFrame);\n\t\t}\n#endif\n\t\treturn MusicDeviceMIDIEvent (mUnit, inStatus, inData1, inData2, inOffsetSampleFrame);\n#else\t// ON WINDOWS _ NO MIDI EVENT dispatch\n\t\treturn paramErr;\n#endif\n\t}\n\n\tOSStatus\t\t\t\tStartNote (MusicDeviceInstrumentID\tinInstrument,\n\t\t\t\t\t\t\t\t\tMusicDeviceGroupID\t\t\tinGroupID,\n\t\t\t\t\t\t\t\t\tNoteInstanceID *\t\t\toutNoteInstanceID,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams * inParams)\n\t{\n#if !TARGET_OS_WIN32\n#if CA_AU_USE_FAST_DISPATCH\n\t\tif (mStartNoteProc != NULL) {\n\t\t\treturn (mStartNoteProc) (mConnInstanceStorage, inInstrument, inGroupID, outNoteInstanceID, inOffsetSampleFrame, inParams);\n\t\t}\n#endif\n\t\treturn MusicDeviceStartNote (mUnit, inInstrument, inGroupID, outNoteInstanceID, inOffsetSampleFrame, inParams);\n#else\n\t\treturn paramErr;\n#endif\n\t}\n\tOSStatus\t\t\t\tStopNote (MusicDeviceGroupID\t\tinGroupID,\n\t\t\t\t\t\t\t\t\tNoteInstanceID\t\t\t\tinNoteInstanceID,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOffsetSampleFrame)\n\t{\n#if !TARGET_OS_WIN32\n#if CA_AU_USE_FAST_DISPATCH\n\t\tif (mStopNoteProc != NULL) {\n\t\t\treturn (mStopNoteProc) (mConnInstanceStorage, inGroupID, inNoteInstanceID, inOffsetSampleFrame);\n\t\t}\n#endif\n\t\treturn MusicDeviceStopNote (mUnit, inGroupID, inNoteInstanceID, inOffsetSampleFrame);\n#else\n\t\treturn paramErr;\n#endif\n\t}\n\nprivate:\n\t// get the fast dispatch pointers\n\tvoid Init() \n\t{\n#if CA_AU_USE_FAST_DISPATCH\n\t\tUInt32 size = sizeof(AudioUnitRenderProc);\n\t\tif (AudioUnitGetProperty(mUnit, kAudioUnitProperty_FastDispatch,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, kAudioUnitRenderSelect,\n\t\t\t\t\t\t\t\t&mRenderProc, &size) != noErr)\n\t\t\tmRenderProc = NULL;\n\t\t\n\t\tsize = sizeof(AudioUnitGetParameterProc);\n\t\tif (AudioUnitGetProperty(mUnit, kAudioUnitProperty_FastDispatch,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, kAudioUnitGetParameterSelect,\n\t\t\t\t\t\t\t\t&mGetParamProc, &size) != noErr)\n\t\t\tmGetParamProc = NULL;\n\t\t\n\t\tsize = sizeof(AudioUnitSetParameterProc);\n\t\tif (AudioUnitGetProperty(mUnit, kAudioUnitProperty_FastDispatch,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, kAudioUnitSetParameterSelect,\n\t\t\t\t\t\t\t\t&mSetParamProc, &size) != noErr)\n\t\t\tmSetParamProc = NULL;\n\n\t\tsize = sizeof(MusicDeviceMIDIEventProc);\n\t\tif (AudioUnitGetProperty(mUnit, kAudioUnitProperty_FastDispatch,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, kMusicDeviceMIDIEventSelect,\n\t\t\t\t\t\t\t\t&mMIDIEventProc, &size) != noErr)\n\t\t\tmMIDIEventProc = NULL;\n\n\t\tsize = sizeof(MusicDeviceStartNoteProc);\n\t\tif (AudioUnitGetProperty(mUnit, kAudioUnitProperty_FastDispatch,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, kMusicDeviceStartNoteSelect,\n\t\t\t\t\t\t\t\t&mStartNoteProc, &size) != noErr)\n\t\t\tmStartNoteProc = NULL;\n\n\t\tsize = sizeof(MusicDeviceStopNoteProc);\n\t\tif (AudioUnitGetProperty(mUnit, kAudioUnitProperty_FastDispatch,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, kMusicDeviceStopNoteSelect,\n\t\t\t\t\t\t\t\t&mStopNoteProc, &size) != noErr)\n\t\t\tmStopNoteProc = NULL;\n\t\t\n\t\tif (mRenderProc || mGetParamProc || mSetParamProc || mMIDIEventProc || mStartNoteProc || mStopNoteProc) {\n\t\t\tmConnInstanceStorage = LoadGetComponentInstanceStorage ( mUnit );\n\t\t} else\n\t\t\tmConnInstanceStorage = NULL;\n#else\n\t\tmConnInstanceStorage = NULL;\n#endif\n\t}\n\t\n#if CA_AU_USE_FAST_DISPATCH\n\tAudioUnitRenderProc\t\t\tmRenderProc;\n\tAudioUnitGetParameterProc\tmGetParamProc; \n\tAudioUnitSetParameterProc\tmSetParamProc;\n\tMusicDeviceMIDIEventProc\tmMIDIEventProc;\n\tMusicDeviceStartNoteProc\tmStartNoteProc;\n\tMusicDeviceStopNoteProc\t\tmStopNoteProc;\n#endif\n\n\tvoid *\t\t\t\t\t\tmConnInstanceStorage;\n\nprivate:\n\t\t// get the compiler to tell us when we do a bad thing!!!\n\tAUState () {}\n\tAUState (const AUState&);\n\tAUState& operator= (const AUState&);\n};\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\nCAAudioUnit::AUState::~AUState ()\n{\n\tif (mUnit && (mNode == 0)) {\n\t\t::AudioComponentInstanceDispose (mUnit);\n\t}\n\tmNode = 0;\n\tmUnit = 0;\n}\n\nOSStatus\t\tCAAudioUnit::Open (const CAComponent& inComp, CAAudioUnit &outUnit)\n{\n\ttry {\n\t\toutUnit = inComp; \n\t\treturn noErr;\n\t} catch (OSStatus res) {\n\t\treturn res;\n\t} catch (...) {\n\t\treturn -1;\n\t}\n}\n\nCAAudioUnit::CAAudioUnit (const AudioUnit& inUnit)\n\t: mComp (inUnit), mDataPtr (new AUState (kCAAU_DoNotKnowIfAUNode, inUnit))\n{\n}\n\nCAAudioUnit::CAAudioUnit (const CAComponent& inComp)\n\t: mComp (inComp), mDataPtr (new AUState (mComp.Comp()))\n{\n}\n\nCAAudioUnit::CAAudioUnit (const AUNode &inNode, const AudioUnit& inUnit)\n\t: mComp (inUnit), mDataPtr(new AUState (inNode, inUnit)) \n{\n}\n\nCAAudioUnit::~CAAudioUnit ()\n{\n\tClose();\n}\n\nvoid\t\tCAAudioUnit::Close()\n{\n\tif (mDataPtr) {\n\t\tmDataPtr->release();\n\t\tmDataPtr = NULL;\n\t}\n}\n\nCAAudioUnit&\tCAAudioUnit::operator= (const CAAudioUnit &a)\n{\n\tif (mDataPtr != a.mDataPtr) {\n\t\tif (mDataPtr)\n\t\t\tmDataPtr->release();\n\t\n\t\tif ((mDataPtr = a.mDataPtr) != NULL)\n\t\t\tmDataPtr->retain();\n\t\t\n\t\tmComp = a.mComp;\n\t}\n\t\n\treturn *this;\n}\n\nbool\t\t\tCAAudioUnit::operator== (const CAAudioUnit& y) const\n{\n\tif (mDataPtr == y.mDataPtr) return true;\n\tAudioUnit au1 = mDataPtr ? mDataPtr->mUnit : 0;\n\tAudioUnit au2 = y.mDataPtr ? y.mDataPtr->mUnit : 0;\n\treturn au1 == au2;\n}\n\nbool\t\t\tCAAudioUnit::operator== (const AudioUnit& y) const\n{\n\tif (!mDataPtr) return false;\n\treturn mDataPtr->mUnit == y;\n}\n\nOSStatus\t\tCAAudioUnit::RemovePropertyListener (AudioUnitPropertyID\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitPropertyListenerProc\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinProcUserData)\n{\n\t\t// we call this first. If it fails we call the old API as the failure can\n\t\t// mean that the AU doesn't implement that selector.\n\tOSStatus result = AudioUnitRemovePropertyListenerWithUserData(AU(), inID, \n\t\t\t\t\t\t\t\t\tinProc, inProcUserData);\n\t#if !__LP64__ && !TARGET_OS_IPHONE\n\t\tif (result) result = AudioUnitRemovePropertyListener (AU(), inID, inProc);\n\t#endif\t\t\t\t\t\t\t\t\t\n\treturn result;\n}\t\n\n#pragma mark __State Management\t\n\nbool\t\t\tCAAudioUnit::IsValid () const \n{ \n\treturn mDataPtr ? mDataPtr->mUnit != 0 : false; \n}\n\t\nAudioUnit\t\tCAAudioUnit::AU() const \n{ \n\treturn mDataPtr ? mDataPtr->mUnit : 0; \n}\n\nAUNode\t\t\tCAAudioUnit::GetAUNode () const\n{\n\treturn mDataPtr ? mDataPtr->mNode : 0; \n}\n\n#pragma mark __Format Handling\n\t\nbool\t\tCAAudioUnit::CanDo (\tint \t\t\t\tinChannelsIn, \n\t\t\t\t\t\t\t\t\tint \t\t\t\tinChannelsOut) const\n{\t\t\n\t// this is the default assumption of an audio effect unit\n\tBoolean* isWritable = 0;\n\tUInt32\tdataSize = 0;\n\t\t// lets see if the unit has any channel restrictions\n\tOSStatus result = AudioUnitGetPropertyInfo (AU(),\n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_SupportedNumChannels,\n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t&dataSize, isWritable); //don't care if this is writable\n\t\t\n\t\t// if this property is NOT implemented an FX unit\n\t\t// is expected to deal with same channel valance in and out\n\tif (result) \n\t{\n\t\tif ((Comp().Desc().IsEffect() && inChannelsIn == inChannelsOut)\n\t\t\t|| (Comp().Desc().IsOffline() && inChannelsIn == inChannelsOut))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\t\telse \n\t\t{\n\t\t\t// the au should either really tell us about this\n\t\t\t// or we will assume the worst\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tStackAUChannelInfo info (dataSize);\n\t\n\tresult = GetProperty (kAudioUnitProperty_SupportedNumChannels,\n\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\tinfo.mChanInfo, &dataSize);\n\tif (result) { return false; }\n\t\n\treturn ValidateChannelPair (inChannelsIn, inChannelsOut, info.mChanInfo, (dataSize / sizeof (AUChannelInfo)));\n}\n\nbool\tCAAudioUnit::ValidateChannelPair (int \t\t\t\tinChannelsIn, \n\t\t\t\t\t\t\t\t\t\tint \t\t\t\tinChannelsOut,\n\t\t\t\t\t\t\t\t\t\tconst AUChannelInfo * info,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tnumChanInfo) const\n{\n// we've the following cases (some combinations) to test here:\n/*\n>0\t\tAn explicit number of channels on either side\n0\t\tthat side (generally input!) has no elements\n-1\t\twild card:\n-1,-1\tany num channels as long as same channels on in and out\n-1,-2\tany num channels channels on in and out - special meaning\n-2+ \tindicates total num channs AU can handle \n\t\t\t- elements configurable to any num channels, \n\t\t\t- element count in scope must be writable\n*/\n\n\t//now chan layout can contain -1 for either scope (ie. doesn't care)\n\tfor (unsigned int i = 0; i < numChanInfo; ++i)\n\t{\n\t\t\t//less than zero on both sides - check for special attributes\n\t\tif ((info[i].inChannels < 0) && (info[i].outChannels < 0))\n\t\t{\n\t\t\t\t// these are our wild card matches\n\t\t\tif (info[i].inChannels == -1 && info[i].outChannels == -1) {\n\t\t\t\tif (inChannelsIn && inChannelsOut) {\n\t\t\t\t\tif (inChannelsOut == inChannelsIn)\n\t\t\t\t\t\treturn true;\n\t\t\t\t} else\n\t\t\t\t\treturn true; // if one of these is zero, then a -1 means any\n\t\t\t}\n\t\t\telse if ((info[i].inChannels == -1 && info[i].outChannels == -2)\n\t\t\t\t\t|| (info[i].inChannels == -2 && info[i].outChannels == -1)) \n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\t\t// these are our total num channels matches\n\t\t\t\t// element count MUST be writable\n\t\t\telse {\n\t\t\t\tbool outWrite = false; bool inWrite = false;\n\t\t\t\tIsElementCountWritable (kAudioUnitScope_Output, outWrite);\n\t\t\t\tIsElementCountWritable (kAudioUnitScope_Input, inWrite);\n\t\t\t\tif (inWrite && outWrite) {\n\t\t\t\t\tif ((inChannelsOut <= abs(info[i].outChannels))\n\t\t\t\t\t\t&& (inChannelsIn <= abs(info[i].inChannels))) \n\t\t\t\t\t{\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\t\n\t\t\t// special meaning on input, specific num on output\n\t\telse if (info[i].inChannels < 0) {\n\t\t\tif (info[i].outChannels == inChannelsOut) \n\t\t\t{\n\t\t\t\t\t// can do any in channels\n\t\t\t\tif (info[i].inChannels == -1) {\n\t\t\t\t\treturn true;\n\t\t\t\t} \n\t\t\t\t\t// total chans on input\n\t\t\t\telse {\n\t\t\t\t\tbool inWrite = false;\n\t\t\t\t\tIsElementCountWritable (kAudioUnitScope_Input, inWrite);\n\t\t\t\t\tif (inWrite && (inChannelsIn <= abs(info[i].inChannels))) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\t\t// special meaning on output, specific num on input\n\t\telse if (info[i].outChannels < 0) {\n\t\t\tif (info[i].inChannels == inChannelsIn) \n\t\t\t{\n\t\t\t\t\t// can do any out channels\n\t\t\t\tif (info[i].outChannels == -1) {\n\t\t\t\t\treturn true;\n\t\t\t\t} \n\t\t\t\t\t// total chans on output\n\t\t\t\telse {\n\t\t\t\t\tbool outWrite = false;\n\t\t\t\t\tIsElementCountWritable (kAudioUnitScope_Output, outWrite);\n\t\t\t\t\tif (outWrite && (inChannelsOut <= abs(info[i].outChannels))) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t\t// both chans in struct >= 0 - thus has to explicitly match\n\t\telse if ((info[i].inChannels == inChannelsIn) && (info[i].outChannels == inChannelsOut)) {\n\t\t\treturn true;\n\t\t} \n\t\t\n\t\t\t// now check to see if a wild card on the args (inChannelsIn or inChannelsOut chans is zero) is found \n\t\t\t// tells us to match just one side of the scopes\n\t\telse if (inChannelsIn == 0) {\n\t\t\tif (info[i].outChannels == inChannelsOut) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\telse if (inChannelsOut == 0) {\n\t\t\tif (info[i].inChannels == inChannelsIn) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn false;\n}\n\nstatic\nbool CheckDynCount (SInt32 inTotalChans, const CAAUChanHelper &inHelper)\n{\n\tint totalChans = 0;\n\tfor (unsigned int i = 0; i < inHelper.mNumEls; ++i)\n\t\ttotalChans += inHelper.mChans[i];\n\treturn (totalChans <= inTotalChans);\n}\n\nbool\tCAAudioUnit::CheckOneSide (const CAAUChanHelper\t\t&inHelper, \n\t\t\t\t\t\t\t\t\tbool\t\t\t\t\tcheckOutput, \n\t\t\t\t\t\t\t\t\tconst AUChannelInfo\t\t*info, \n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tnumInfo) const\n{\n\t\t// now we can use the wildcard option (see above impl) to see if this matches\n\tfor (unsigned int el = 0; el < inHelper.mNumEls; ++el) {\n\t\tbool testAlready = false;\n\t\tfor (unsigned int i = 0; i < el; ++i) {\n\t\t\tif (inHelper.mChans[i] == inHelper.mChans[el]) {\n\t\t\t\ttestAlready = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!testAlready) {\n\t\t\tif (checkOutput) {\n\t\t\t\tif (!ValidateChannelPair (0, inHelper.mChans[el], info, numInfo)) return false;\n\t\t\t} else {\n\t\t\t\tif (!ValidateChannelPair (inHelper.mChans[el], 0, info, numInfo)) return false;\n\t\t\t}\n\t\t}\n\t}\n\treturn true;\n}\n\nbool\t\tCAAudioUnit::CanDo (const CAAUChanHelper\t\t&inputs,  \n\t\t\t\t\t\t\t\tconst CAAUChanHelper\t\t&outputs) const\n\n{\n// first check our state\n\t\t// huh!\n\tif (inputs.mNumEls == 0 && outputs.mNumEls == 0) return false;\n\t\n\tUInt32 elCount;\n\tif (GetElementCount (kAudioUnitScope_Input, elCount)) { return false; }\n\tif (elCount != inputs.mNumEls) return false;\n\n\tif (GetElementCount (kAudioUnitScope_Output, elCount)) { return false; }\n\tif (elCount != outputs.mNumEls) return false;\n\t\t\n// (1) special cases (effects and sources (generators and instruments) only)\n\tUInt32\tdataSize = 0;\n\tif (GetPropertyInfo (kAudioUnitProperty_SupportedNumChannels,\n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0, &dataSize, NULL) != noErr) \n\t{\n\t\tif (Comp().Desc().IsEffect() || Comp().Desc().IsOffline()) {\n\t\t\tUInt32 numChan = outputs.mNumEls > 0 ? outputs.mChans[0] : inputs.mChans[0];\n\t\t\tfor (unsigned int in = 0; in < inputs.mNumEls; ++in)\n\t\t\t\tif (numChan != inputs.mChans[in]) return false;\n\t\t\tfor (unsigned int out = 0; out < outputs.mNumEls; ++out)\n\t\t\t\tif (numChan != outputs.mChans[out]) return false;\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\t\t// in this case, all the channels have to match the current config\n\t\tif (Comp().Desc().IsGenerator() || Comp().Desc().IsMusicDevice()) {\n\t\t\tfor (unsigned int in = 0; in < inputs.mNumEls; ++in) {\n\t\t\t\tUInt32 chan;\n\t\t\t\tif (NumberChannels (kAudioUnitScope_Input, in, chan)) return false;\n\t\t\t\tif (chan != UInt32(inputs.mChans[in])) return false;\n\t\t\t}\n\t\t\tfor (unsigned int out = 0; out < outputs.mNumEls; ++out) {\n\t\t\t\tUInt32 chan;\n\t\t\t\tif (NumberChannels (kAudioUnitScope_Output, out, chan)) return false;\n\t\t\t\tif (chan != UInt32(outputs.mChans[out])) return false;\n\t\t\t}\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\t\t// if we get here we can't determine anything about channel capabilities\n\t\treturn false;\n\t}\n\n\tStackAUChannelInfo info (dataSize);\n\t\n\tif (GetProperty (kAudioUnitProperty_SupportedNumChannels,\n\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\tinfo.mChanInfo, &dataSize) != noErr)\n\t{ \n\t\treturn false; \n\t}\n\t\n\tint numInfo = dataSize / sizeof(AUChannelInfo);\n\t\n// (2) Test for dynamic capability (or no elements on that scope)\n\tSInt32 dynInChans = 0;\n\tif (ValidateDynamicScope (kAudioUnitScope_Input, dynInChans, info.mChanInfo, numInfo)) {\n\t\tif (CheckDynCount (dynInChans, inputs) == false) return false;\n\t}\n\n\tSInt32 dynOutChans = 0;\n\tif (ValidateDynamicScope (kAudioUnitScope_Output, dynOutChans, info.mChanInfo, numInfo)) {\n\t\tif (CheckDynCount (dynOutChans, outputs) == false) return false;\n\t}\n\n\tif (dynOutChans && dynInChans) { return true; }\n\n// (3)\tJust need to test one side\n\tif (dynInChans || (inputs.mNumEls == 0)) {\n\t\treturn CheckOneSide (outputs, true, info.mChanInfo, numInfo);\n\t}\n\n\tif (dynOutChans || (outputs.mNumEls == 0)) {\n\t\treturn CheckOneSide (inputs, false, info.mChanInfo, numInfo);\n\t}\n\n// (4) - not a dynamic AU, has ins and outs, and has channel constraints so we test every possible pairing\n\tfor (unsigned int in = 0; in < inputs.mNumEls; ++in) \n\t{\n\t\tbool testInAlready = false;\n\t\tfor (unsigned int i = 0; i < in; ++i) {\n\t\t\tif (inputs.mChans[i] == inputs.mChans[in]) {\n\t\t\t\ttestInAlready = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (!testInAlready) {\n\t\t\tfor (unsigned int out = 0; out < outputs.mNumEls; ++out) {\n\t\t\t\t\t// try to save a little bit and not test the same pairing multiple times...\n\t\t\t\tbool testOutAlready = false;\n\t\t\t\tfor (unsigned int i = 0; i < out; ++i) {\n\t\t\t\t\tif (outputs.mChans[i] == outputs.mChans[out]) {\n\t\t\t\t\t\ttestOutAlready = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!testOutAlready) {\n\t\t\t\t\tif (!ValidateChannelPair (inputs.mChans[in], outputs.mChans[out],info.mChanInfo, numInfo)) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn true;\n}\n\nbool\t\tCAAudioUnit::SupportsNumChannels () const\n{\n\t// this is the default assumption of an audio effect unit\n\tBoolean* isWritable = 0;\n\tUInt32\tdataSize = 0;\n\t\t// lets see if the unit has any channel restrictions\n\tOSStatus result = AudioUnitGetPropertyInfo (AU(),\n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_SupportedNumChannels,\n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t&dataSize, isWritable); //don't care if this is writable\n\t\t\n\t\t// if this property is NOT implemented an FX unit\n\t\t// is expected to deal with same channel valance in and out\n\tif (result) {\n\t\tif (Comp().Desc().IsEffect() || Comp().Desc().IsOffline())\n\t\t\treturn true;\n\t}\n\treturn result == noErr;\n}\n\nOSStatus\t\tCAAudioUnit::GetChannelLayoutTags (AudioUnitScope \tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinEl,\n\t\t\t\t\t\t\t\t\t\tChannelTagVector\t\t\t&outChannelVector) const\n{\n\tif (HasChannelLayouts (inScope, inEl) == false) return kAudioUnitErr_InvalidProperty; \n\n\tUInt32 dataSize;\n\tOSStatus result = AudioUnitGetPropertyInfo (AU(),\n\t\t\t\t\t\t\t\tkAudioUnitProperty_SupportedChannelLayoutTags,\n\t\t\t\t\t\t\t\tinScope, inEl,\n\t\t\t\t\t\t\t\t&dataSize, NULL);\n\n\tif (result) return result;\n\t\n\t\t// OK lets get our channel layouts and see if the one we want is present\n\tAudioChannelLayoutTag* info = (AudioChannelLayoutTag*)malloc (dataSize);\n\tresult = AudioUnitGetProperty (AU(),\n\t\t\t\t\t\t\tkAudioUnitProperty_SupportedChannelLayoutTags,\n\t\t\t\t\t\t\tinScope, inEl,\n\t\t\t\t\t\t\tinfo, &dataSize);\n\tif (result) goto home;\n\t\n\toutChannelVector.erase (outChannelVector.begin(), outChannelVector.end());\n\tfor (unsigned int i = 0; i < (dataSize / sizeof (AudioChannelLayoutTag)); ++i)\n\t\toutChannelVector.push_back (info[i]);\n\nhome:\n\tfree (info);\n\treturn result;\n}\n\nbool\t\tCAAudioUnit::HasChannelLayouts (AudioUnitScope \t\tinScope, \n\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl) const\n{\n\tOSStatus result = AudioUnitGetPropertyInfo (AU(),\n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_SupportedChannelLayoutTags,\n\t\t\t\t\t\t\t\t\tinScope, inEl,\n\t\t\t\t\t\t\t\t\tNULL, NULL);\n\treturn !result;\n}\n\nbool\t\tCAAudioUnit::HasChannelLayout (AudioUnitScope \t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl) const\n{\n\tBoolean writable;\n\tUInt32 size;\n\t\n\treturn AudioUnitGetPropertyInfo (AU(),\n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\t\t\tinScope, inEl,\n\t\t\t\t\t\t\t\t\t&size, &writable) == noErr;\n}\t\n\nOSStatus\tCAAudioUnit::GetChannelLayout (AudioUnitScope \t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl,\n\t\t\t\t\t\t\t\t\t\tCAAudioChannelLayout\t&outLayout) const\n{\n\tUInt32 size;\n\tOSStatus result = AudioUnitGetPropertyInfo (AU(), kAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\t\t\tinScope, inEl, &size, NULL);\n\tif (result) return result;\n\t\n\tAudioChannelLayout *layout = (AudioChannelLayout*)malloc (size);\n\n\tca_require_noerr (result = AudioUnitGetProperty (AU(), kAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\t\t\tinScope, inEl, layout, &size), home);\n\n\toutLayout = CAAudioChannelLayout (layout);\n\t\nhome:\n\tfree (layout);\n\treturn result;\n}\n\nOSStatus\tCAAudioUnit::SetChannelLayout (AudioUnitScope \t\tinScope,\n\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\tinEl,\n\t\t\t\t\t\t\t\t\tconst CAAudioChannelLayout \t\t&inLayout)\n{\n\tOSStatus result = AudioUnitSetProperty (AU(),\n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\t\t\tinScope, inEl,\n\t\t\t\t\t\t\t\t\tinLayout, inLayout.Size());\n\treturn result;\n}\n\nOSStatus\tCAAudioUnit::SetChannelLayout (AudioUnitScope \t\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioChannelLayout\t\t&inLayout,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinSize)\n{\n\tOSStatus result = AudioUnitSetProperty (AU(),\n\t\t\t\t\t\t\t\t\tkAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\t\t\tinScope, inEl,\n\t\t\t\t\t\t\t\t\t&inLayout, inSize);\n\treturn result;\n}\n\nOSStatus\t\tCAAudioUnit::ClearChannelLayout (AudioUnitScope\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl)\n{\n\treturn AudioUnitSetProperty (AU(),\n\t\t\t\t\t\t\tkAudioUnitProperty_AudioChannelLayout,\n\t\t\t\t\t\t\tinScope, inEl, NULL, 0);\n}\n\nOSStatus\tCAAudioUnit::GetFormat (AudioUnitScope\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinEl,\n\t\t\t\t\t\t\t\t\tAudioStreamBasicDescription\t&outFormat) const\n{\n\tUInt32 dataSize = sizeof (AudioStreamBasicDescription);\n\treturn AudioUnitGetProperty (AU(), kAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\t\tinScope, inEl, \n\t\t\t\t\t\t\t\t&outFormat, &dataSize);\n}\n\nOSStatus\tCAAudioUnit::SetFormat (AudioUnitScope\t\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\t\tinEl,\n\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t&inFormat)\n{\n\treturn AudioUnitSetProperty (AU(), kAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\t\tinScope, inEl,\n\t\t\t\t\t\t\t\tconst_cast<AudioStreamBasicDescription*>(&inFormat), \n\t\t\t\t\t\t\t\tsizeof (AudioStreamBasicDescription));\n}\n\nOSStatus\tCAAudioUnit::GetSampleRate (AudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\tFloat64\t\t\t\t&outRate) const\n{\n\tUInt32 dataSize = sizeof (Float64);\n\treturn AudioUnitGetProperty (AU(), kAudioUnitProperty_SampleRate,\n\t\t\t\t\t\t\t\tinScope, inEl, \n\t\t\t\t\t\t\t\t&outRate, &dataSize);\n}\n\nOSStatus\tCAAudioUnit::SetSampleRate (AudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\tFloat64\t\t\t\tinRate)\n{\n\tAudioStreamBasicDescription desc;\n\tOSStatus result = GetFormat (inScope, inEl, desc);\n\tif (result) return result;\n\tdesc.mSampleRate = inRate;\n\treturn SetFormat (inScope, inEl, desc);\n}\n\nOSStatus\tCAAudioUnit::SetSampleRate (Float64\t\t\tinSampleRate)\n{\n\tOSStatus result;\n\t\n\tUInt32 elCount;\n\tca_require_noerr (result = GetElementCount(kAudioUnitScope_Input, elCount), home);\n\tif (elCount) {\n\t\tfor (unsigned int i = 0; i < elCount; ++i) {\n\t\t\tca_require_noerr (result = SetSampleRate (kAudioUnitScope_Input, i, inSampleRate), home);\n\t\t}\n\t}\n\n\tca_require_noerr (result = GetElementCount(kAudioUnitScope_Output, elCount), home);\n\tif (elCount) {\n\t\tfor (unsigned int i = 0; i < elCount; ++i) {\n\t\t\tca_require_noerr (result = SetSampleRate (kAudioUnitScope_Output, i, inSampleRate), home);\n\t\t}\n\t}\n\t\nhome:\n\treturn result;\n}\n\nOSStatus\tCAAudioUnit::NumberChannels (AudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t&outChans) const\n{\n\tAudioStreamBasicDescription desc;\n\tOSStatus result = GetFormat (inScope, inEl, desc);\n\tif (!result)\n\t\toutChans = desc.mChannelsPerFrame;\n\treturn result;\n}\n\nOSStatus\tCAAudioUnit::SetNumberChannels (AudioUnitScope\tinScope,\n\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinChans)\n{\n\t\t\t// set this as the output of the AU\n\tCAStreamBasicDescription desc;\n\tOSStatus result = GetFormat (inScope, inEl, desc);\n\t\tif (result) return result;\n\tdesc.ChangeNumberChannels (inChans, desc.IsInterleaved());\n\tresult = SetFormat (inScope, inEl, desc);\n\treturn result;\n}\n\nOSStatus\t\tCAAudioUnit::IsElementCountWritable (AudioUnitScope inScope, bool &outWritable) const\n{\n\tBoolean isWritable;\n\tUInt32 outDataSize;\n\tOSStatus result = GetPropertyInfo (kAudioUnitProperty_ElementCount, inScope, 0, &outDataSize, &isWritable);\n\tif (result)\n\t\treturn result;\n\toutWritable = isWritable ? true : false;\n\treturn noErr;\t\n}\n\nOSStatus\t\tCAAudioUnit::GetElementCount (AudioUnitScope inScope, UInt32 &outCount) const\n{\n\tUInt32 propSize = sizeof(outCount);\n\treturn GetProperty (kAudioUnitProperty_ElementCount, inScope, 0, &outCount, &propSize);\n}\n\nOSStatus\t\tCAAudioUnit::SetElementCount (AudioUnitScope inScope, UInt32 inCount)\n{\n\treturn SetProperty (kAudioUnitProperty_ElementCount, inScope, 0, &inCount, sizeof(inCount));\n}\n\nbool\t\t\tCAAudioUnit::HasDynamicScope (AudioUnitScope inScope, SInt32 &outTotalNumChannels) const\n{\n\t// ok - now we need to check the AU's capability here.\n\t// this is the default assumption of an audio effect unit\n\tBoolean* isWritable = 0;\n\tUInt32\tdataSize = 0;\n\tOSStatus result = GetPropertyInfo (kAudioUnitProperty_SupportedNumChannels,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&dataSize, isWritable); //don't care if this is writable\n\t\t\n\t\t// AU has to explicitly tell us about this.\n\tif (result) return false;\n\n\tStackAUChannelInfo info (dataSize);\n\t\n\tresult = GetProperty (kAudioUnitProperty_SupportedNumChannels,\n\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\tinfo.mChanInfo, &dataSize);\n\tif (result) return false;\n\n\treturn ValidateDynamicScope (inScope, outTotalNumChannels, info.mChanInfo, (dataSize / sizeof(AUChannelInfo)));\n}\n\n// as we've already checked that the element count is writable\n// the following conditions will match this..\n/*\n-1, -2 ->\tsignifies no restrictions\n-2, -1 ->\tsignifies no restrictions -> in this case outTotalNumChannels == -1 (any num channels)\n\n-N \t(where N is less than -2), signifies the total channel count on the scope side (in or out)\n*/\nbool\tCAAudioUnit::ValidateDynamicScope (AudioUnitScope\t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tSInt32\t\t\t\t&outTotalNumChannels, \n\t\t\t\t\t\t\t\t\t\t\tconst AUChannelInfo *info, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tnumInfo) const\n{\n\tbool writable = false;\n\tOSStatus result = IsElementCountWritable (inScope, writable);\n\tif (result || (writable == false))\n\t\treturn false;\n\n\t//now chan layout can contain -1 for either scope (ie. doesn't care)\n\tfor (unsigned int i = 0; i < numInfo; ++i)\n\t{\n\t\t// lets test the special wild card case first...\n\t\t// this says the AU can do any num channels on input or output - for eg. Matrix Mixer\n\t\tif (((info[i].inChannels == -1) && (info[i].outChannels == -2))\n\t\t\t|| ((info[i].inChannels == -2) && (info[i].outChannels == -1)))\n\t\t{\n\t\t\toutTotalNumChannels = -1;\n\t\t\treturn true;\n\t\t}\n\t\t\n\t\t// ok lets now test our special case....\n\t\tif (inScope == kAudioUnitScope_Input) {\n\t\t\t\t// isn't dynamic on this side at least\n\t\t\tif (info[i].inChannels >= 0)\n\t\t\t\tcontinue;\n\t\t\t\t\n\t\t\tif (info[i].inChannels < -2) {\n\t\t\t\toutTotalNumChannels = abs (info[i].inChannels);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} \n\t\t\n\t\telse if (inScope == kAudioUnitScope_Output) {\n\t\t\t\t// isn't dynamic on this side at least\n\t\t\tif (info[i].outChannels >= 0)\n\t\t\t\tcontinue;\n\t\t\t\t\n\t\t\tif (info[i].outChannels < -2) {\n\t\t\t\toutTotalNumChannels = abs (info[i].outChannels);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} \n\t\t\n\t\telse {\n\t\t\tbreak; // wrong scope was specified\n\t\t}\n\t}\n\t\n\treturn false;\t\n}\n\nOSStatus\tCAAudioUnit::ConfigureDynamicScope (AudioUnitScope \t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\tinNumElements, \n\t\t\t\t\t\t\t\t\t\t\tUInt32 \t\t\t\t\t*inChannelsPerElement, \n\t\t\t\t\t\t\t\t\t\t\tFloat64 \t\t\t\tinSampleRate)\n{\n\tSInt32 numChannels = 0;\n\tbool isDyamic = HasDynamicScope (inScope, numChannels);\n\tif (isDyamic == false)\n\t\treturn kAudioUnitErr_InvalidProperty;\n\t\n\t//lets to a sanity check...\n\t// if numChannels == -1, then it can do \"any\"...\n\tif (numChannels > 0) {\n\t\tSInt32 count = 0;\n\t\tfor (unsigned int i = 0; i < inNumElements; ++i)\n\t\t\tcount += inChannelsPerElement[i];\n\t\tif (count > numChannels)\n\t\t\treturn kAudioUnitErr_InvalidPropertyValue;\n\t}\n\t\n\tOSStatus result = SetElementCount (inScope, inNumElements);\n\tif (result)\n\t\treturn result;\n\t\t\n\tfor (unsigned int i = 0; i < inNumElements; ++i) {\n\t\tCAStreamBasicDescription desc;\n\t\tresult = GetFormat (inScope, i, desc);\n\t\t\tif (result) return result;\n\t\tdesc.ChangeNumberChannels (inChannelsPerElement[i], desc.IsInterleaved());\n\t\tdesc.mSampleRate = inSampleRate;\n\t\tresult = SetFormat (inScope, i, desc);\n\t\tif (result)\n\t\t\treturn result;\n\t}\n\treturn noErr;\n}\n\n#pragma mark __Properties\n\nbool\t\tCAAudioUnit::CanBypass () const\n{\n\tBoolean outWritable;\n\tOSStatus result = AudioUnitGetPropertyInfo (AU(), kAudioUnitProperty_BypassEffect,\n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\tNULL, &outWritable);\n\treturn (!result && outWritable);\n}\n\nbool\t\tCAAudioUnit::GetBypass \t\t() const\n{\n\tUInt32 dataSize = sizeof (UInt32);\n\tUInt32 outBypass;\n\tOSStatus result = AudioUnitGetProperty (AU(), kAudioUnitProperty_BypassEffect,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&outBypass, &dataSize);\n\treturn (result ? false : outBypass);\n}\n\nOSStatus\tCAAudioUnit::SetBypass \t\t(bool\tinBypass) const\n{\t\n\tUInt32 bypass = inBypass ? 1 : 0;\n\treturn AudioUnitSetProperty (AU(), kAudioUnitProperty_BypassEffect,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&bypass, sizeof (UInt32));\n}\n\nOSStatus\tCAAudioUnit::GetMaxFramesPerSlice (UInt32& outMaxFrames) const\n{\n\tUInt32 dataSize = sizeof(outMaxFrames);\n\treturn AudioUnitGetProperty (AU(), kAudioUnitProperty_MaximumFramesPerSlice,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&outMaxFrames, &dataSize);\n}\n\nOSStatus\tCAAudioUnit::SetMaxFramesPerSlice (UInt32 inMaxFrames)\n{\n\treturn AudioUnitSetProperty (AU(), kAudioUnitProperty_MaximumFramesPerSlice,\n\t\t\t\t\t\t\t\t kAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t &inMaxFrames, sizeof (UInt32));\t\n}\n\nFloat64\t\tCAAudioUnit::Latency () const\n{\n\tFloat64 secs;\n\tUInt32 size = sizeof(secs);\n\tif (GetProperty (kAudioUnitProperty_Latency, kAudioUnitScope_Global, 0, &secs, &size))\n\t\treturn 0;\n\treturn secs;\n}\n\nOSStatus\tCAAudioUnit::GetAUPreset (CFPropertyListRef &outData) const\n{\n\tUInt32 dataSize = sizeof(outData);\n\treturn AudioUnitGetProperty (AU(), kAudioUnitProperty_ClassInfo,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&outData, &dataSize);\n}\n\nOSStatus\tCAAudioUnit::SetAUPreset (CFPropertyListRef &inData)\n{\n\treturn AudioUnitSetProperty (AU(), kAudioUnitProperty_ClassInfo,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&inData, sizeof (CFPropertyListRef));\n}\n\n#if !TARGET_OS_IPHONE\nOSStatus\tCAAudioUnit::SetAUPresetFromDocument (CFPropertyListRef &inData)\n{\n\treturn AudioUnitSetProperty (AU(), kAudioUnitProperty_ClassInfoFromDocument,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&inData, sizeof (CFPropertyListRef));\n}\n#endif\n\nOSStatus\tCAAudioUnit::GetPresentPreset (AUPreset &outData) const\n{\n\tUInt32 dataSize = sizeof(outData);\n\tOSStatus result = AudioUnitGetProperty (AU(), kAudioUnitProperty_PresentPreset,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&outData, &dataSize);\n#if !TARGET_OS_IPHONE\n#ifndef __LP64__ \n\tif (result == kAudioUnitErr_InvalidProperty) {\n\t\tdataSize = sizeof(outData);\n\t\tresult = AudioUnitGetProperty (AU(), kAudioUnitProperty_CurrentPreset,\n\t\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t\t&outData, &dataSize);\n\t\tif (result == noErr) {\n\t\t\t// we now retain the CFString in the preset so for the client of this API\n\t\t\t// it is consistent (ie. the string should be released when done)\n\t\t\tif (outData.presetName)\n\t\t\t\tCFRetain (outData.presetName);\n\t\t}\n\t}\n#endif\n#endif\n\treturn result;\n}\n\t\nOSStatus\tCAAudioUnit::SetPresentPreset (AUPreset &inData)\n{\n\tOSStatus result = AudioUnitSetProperty (AU(), kAudioUnitProperty_PresentPreset,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&inData, sizeof (AUPreset));\n#if !TARGET_OS_IPHONE\n#ifndef __LP64__\n\tif (result == kAudioUnitErr_InvalidProperty) {\n\t\tresult = AudioUnitSetProperty (AU(), kAudioUnitProperty_CurrentPreset,\n\t\t\t\t\t\t\t\tkAudioUnitScope_Global, 0,\n\t\t\t\t\t\t\t\t&inData, sizeof (AUPreset));\n\t}\n#endif\n#endif\n\treturn result;\n}\n\nbool\t\tCAAudioUnit::HasCustomView () const\n{\n#if !TARGET_OS_IPHONE\n\tUInt32 dataSize = 0;\n\tOSStatus result = -4/*unimpErr*/;\n#ifndef __LP64__\n\tresult = GetPropertyInfo(kAudioUnitProperty_GetUIComponentList,\n                                        kAudioUnitScope_Global, 0,\n                                        &dataSize, NULL);\t\n#endif\n\tif (result || !dataSize) {\n\t\tdataSize = 0;\n\t\tresult = GetPropertyInfo(kAudioUnitProperty_CocoaUI,\n                                        kAudioUnitScope_Global, 0,\n                                        &dataSize, NULL);\n\t\tif (result || !dataSize)\n\t\t\treturn false;\n\t}\n\treturn true;\n#else\n\treturn false;\n#endif\n\n}\n\nOSStatus\t\tCAAudioUnit::GetParameter(AudioUnitParameterID inID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 &outValue) const\n{\n\treturn mDataPtr ? mDataPtr->GetParameter (inID, scope, element, outValue) : static_cast<OSStatus>(paramErr);\n}\n\nOSStatus\t\tCAAudioUnit::SetParameter(AudioUnitParameterID inID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 value, UInt32 bufferOffsetFrames)\n{\n\treturn mDataPtr ? mDataPtr->SetParameter (inID, scope, element, value, bufferOffsetFrames) : static_cast<OSStatus>(paramErr);\n}\n\nOSStatus\t\tCAAudioUnit::MIDIEvent (UInt32\t\t\tinStatus,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinData1,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinData2,\n\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinOffsetSampleFrame)\n{\n\treturn mDataPtr ? mDataPtr->MIDIEvent (inStatus, inData1, inData2, inOffsetSampleFrame) : paramErr;\n}\n\nOSStatus\tCAAudioUnit::StartNote (MusicDeviceInstrumentID\t\tinInstrument,\n\t\t\t\t\t\t\t\t\tMusicDeviceGroupID\t\t\tinGroupID,\n\t\t\t\t\t\t\t\t\tNoteInstanceID *\t\t\toutNoteInstanceID,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams * inParams)\n{\n\treturn mDataPtr ? mDataPtr->StartNote (inInstrument, inGroupID, outNoteInstanceID, inOffsetSampleFrame, inParams) \n\t\t\t\t\t: paramErr;\n}\n\nOSStatus\tCAAudioUnit::StopNote (MusicDeviceGroupID\t\tinGroupID,\n\t\t\t\t\t\t\t\t\tNoteInstanceID\t\t\t\tinNoteInstanceID,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOffsetSampleFrame)\n{\n\treturn mDataPtr ? mDataPtr->StopNote (inGroupID, inNoteInstanceID, inOffsetSampleFrame) : paramErr;\n}\n\n\n#pragma mark __Render\n\nOSStatus\t\tCAAudioUnit::Render (AudioUnitRenderActionFlags \t\t\t* ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp \t\t* inTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOutputBusNumber,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList\t\t\t\t* ioData)\n{\n\treturn mDataPtr ? mDataPtr->Render (ioActionFlags, inTimeStamp, inOutputBusNumber, inNumberFrames, ioData) : static_cast<OSStatus>(paramErr);\n}\n\nextern \"C\" OSStatus\nAudioUnitProcess (\t\t\t\t\tAudioUnit\t\t\t\t\t\tinUnit, \n\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags *\tioActionFlags, \n\t\t\t\t\t\t\t\t\tconst AudioTimeStamp *\t\t\tinTimeStamp, \n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames, \n\t\t\t\t\t\t\t\t\tAudioBufferList *\t\t\t\tioData);\n\nOSStatus\t\tCAAudioUnit::Process (AudioUnitRenderActionFlags \t\t\t& ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp \t\t& inTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList\t\t\t\t& ioData)\n{\n#if defined(__MAC_10_7) || defined(__IPHONE_4_0)\n\treturn AudioUnitProcess (AU(), &ioActionFlags, &inTimeStamp, inNumberFrames, &ioData);\n#else\n\treturn -4/*unimpErr*/;\n#endif\n}\n\nextern \"C\" OSStatus\nAudioUnitProcessMultiple (\t\t\tAudioUnit\t\t\t\t\t\tinUnit, \n\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags *\tioActionFlags, \n\t\t\t\t\t\t\t\t\tconst AudioTimeStamp *\t\t\tinTimeStamp, \n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberInputBufferLists,\n\t\t\t\t\t\t\t\t\tconst AudioBufferList **\t\tinInputBufferLists,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberOutputBufferLists,\n\t\t\t\t\t\t\t\t\tAudioBufferList **\t\t\t\tioOutputBufferLists);\n\nOSStatus\t\tCAAudioUnit::ProcessMultiple (AudioUnitRenderActionFlags \t& ioActionFlags,\n\t\t\t\t\t\t\t\t\tconst AudioTimeStamp\t\t\t\t\t& inTimeStamp,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\t\tinNumberInputBufferLists,\n\t\t\t\t\t\t\t\t\tconst AudioBufferList **\t\t\t\tinInputBufferLists,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\t\t\tinNumberOutputBufferLists,\n\t\t\t\t\t\t\t\t\tAudioBufferList **\t\t\t\t\t\tioOutputBufferLists)\n{\n#if defined(__MAC_10_7) || defined(__IPHONE_4_0)\n\treturn AudioUnitProcessMultiple (AU(), &ioActionFlags, &inTimeStamp, inNumberFrames, \n\t\t\t\tinNumberInputBufferLists, inInputBufferLists, inNumberOutputBufferLists, ioOutputBufferLists);\n#else\n\treturn -4/*unimpErr*/;\n#endif\n}\n\n#pragma mark __CAAUChanHelper\n\nCAAUChanHelper::CAAUChanHelper(const CAAudioUnit &inAU, AudioUnitScope inScope)\n\t:mChans(NULL), mNumEls(0), mDidAllocate(false)\n{\n\tUInt32 elCount;\n\tif (inAU.GetElementCount (inScope, elCount)) return;\n\tif (elCount > kStaticElCount) {\n\t\tmChans = new UInt32[elCount];\n\t\tmDidAllocate = true;\n\t\tmemset (mChans, 0, sizeof(int) * elCount);\n\t} else {\n\t\tmChans = mStaticChans;\n\t\tmemset (mChans, 0, sizeof(int) * kStaticElCount);\n\t}\n\tfor (unsigned int i = 0; i < elCount; ++i) {\n\t\tUInt32 numChans;\n\t\tif (inAU.NumberChannels (inScope, i, numChans)) return;\n\t\tmChans[i] = numChans;\n\t}\n\tmNumEls = elCount;\n}\n\nCAAUChanHelper::CAAUChanHelper(UInt32 inMaxElems) \n\t: mNumEls(inMaxElems), mDidAllocate(false) \n{\n\tif (inMaxElems > kStaticElCount) {\n\t\tmChans = new UInt32[inMaxElems];\n\t\tmDidAllocate = true;\n\t\tmemset (mChans, 0, sizeof(int) * inMaxElems);\n\t} else {\n\t\tmChans = mStaticChans;\n\t\tmemset (mChans, 0, sizeof(int) * kStaticElCount);\n\t}\n}\n\nCAAUChanHelper::~CAAUChanHelper()\n{\n\tif (mDidAllocate) delete [] mChans;\n}\n\nCAAUChanHelper&\t\tCAAUChanHelper::operator= (const CAAUChanHelper &c) \n{ \n\tif (mDidAllocate) delete [] mChans;\n\tif (c.mDidAllocate) {\n\t\tmChans = new UInt32[c.mNumEls];\n\t\tmDidAllocate = true;\n\t} else {\n\t\tmDidAllocate = false;\n\t\tmChans = mStaticChans;\n\t}\n\tmemcpy (mChans, c.mChans, c.mNumEls * sizeof(int));\n\t\n\treturn *this; \n}\n\n\n#pragma mark __Print Utilities\n\nvoid\t\tCAAudioUnit::Print (FILE* file) const\n{\n\tfprintf (file, \"AudioUnit:%p\\n\", AU());\n\tif (IsValid()) { \n\t\tfprintf (file, \"\\tnode=%ld\\t\", (long)GetAUNode()); Comp().Print (file);\n\t}\n}\n\n#if CA_AU_USE_FAST_DISPATCH\n// Handle  GetComponentInstanceStorage(ComponentInstance aComponentInstance)\nstatic void *LoadGetComponentInstanceStorage (void *inst)\n{\n\ttypedef void* (*GetComponentInstanceStorageProc)(void* aComponentInstance);\n\tstatic GetComponentInstanceStorageProc sGetComponentInstanceStorageProc = NULL;\n\t\n\tstatic int sDoCSLoad = 1;\n\tif (sDoCSLoad) {\n\t\tsDoCSLoad = 0;\n\t\tvoid *theImage = dlopen(\"/System/Library/Frameworks/CoreServices.framework/CoreServices\", RTLD_LAZY);\n\t\tif (!theImage) return NULL;\n\t\n\t\tsGetComponentInstanceStorageProc = (GetComponentInstanceStorageProc) dlsym(theImage, \"GetComponentInstanceStorage\");\n\t}\n\tif (sGetComponentInstanceStorageProc)\n\t\treturn (*sGetComponentInstanceStorageProc)(inst);\n\treturn NULL;\n}\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioUnit.h",
    "content": "/*\n     File: CAAudioUnit.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAAudioUnit_h__\n#define __CAAudioUnit_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <AudioUnit/AudioUnit.h>\n\t#include <AudioToolbox/AUGraph.h>\n\t#include <AudioUnit/MusicDevice.h>\n#else\n\t#include <ConditionalMacros.h>\n\t#include <CoreAudioTypes.h>\n\t#include <AudioUnit.h>\n\t#include <MusicDevice.h>\n\t#include <AUGraph.h>\n\t#include <MusicDevice.h>\n#endif\n\n#include <vector>\n#include \"CAStreamBasicDescription.h\"\n#include \"CAComponent.h\"\n#include \"CAAudioChannelLayout.h\"\n\n// defined below\nclass CAAUChanHelper;\n\n// These constructors will NOT throw exceptions - so \"check\" after creation if AU IsValid()\n// The destructor will NOT automatically close the AU down\n// This state should be managed by the Caller\n// once closed, the unit represented by this object is no longer valid\n// it is up to the user of this object to ensure its validity is in sync \n// if it is removed from a graph\n\n// methods that can significantly change the state of the AU (like its format) are\n// NOT const whereas those that don't change the externally related state of the AU are not const\n\nclass CAAudioUnit {\n\tenum {\n\t\tparamErr = -50,\n\t\tbadComponentSelector = (long)0x80008002\n\t};\npublic:\n\ttypedef std::vector<AudioChannelLayoutTag> \tChannelTagVector;\n\ttypedef ChannelTagVector::iterator \t\t\tChannelTagVectorIter;\n\npublic:\n\t\t\t\t\t\t\tCAAudioUnit () \n\t\t\t\t\t\t\t\t: mDataPtr(0) {}\n\n\t\t\t\t\t\t\tCAAudioUnit (const AudioUnit& inUnit);\n\n\t\t\t\t\t\t\tCAAudioUnit (const AUNode &inNode, const AudioUnit& inUnit);\n\n\t\t\t\t\t\t\tCAAudioUnit (const CAAudioUnit& y)\n\t\t\t\t\t\t\t\t: mDataPtr(0) { *this = y; }\n\n\tstatic OSStatus\t\t\tOpen (const CAComponent& inComp, CAAudioUnit &outUnit);\n\n\t\t\t\t\t\t\t~CAAudioUnit ();\n\n\tvoid\t\t\t\t\tClose ();\n\n\t\n\tCAAudioUnit&\t\t\toperator= (const CAAudioUnit& y);\n\n\tbool\t\t\t\t\toperator== (const CAAudioUnit& y) const;\n\n\tbool\t\t\t\t\toperator== (const AudioUnit& y) const;\n\n#pragma mark __State Management\t\n\tbool\t\t\t\t\tIsValid () const;\n\t\n\tAudioUnit\t\t\t\tAU() const;\n\toperator AudioUnit () const { return AU(); }\n\n\tconst CAComponent&\t\tComp() const { return mComp; }\n\t\n\tconst CAComponentDescription& Desc() const { return mComp.Desc(); }\n\t\n\tbool\t\t\t\t\tFromAUGraph () const { return GetAUNode() != 0 && GetAUNode() != kCAAU_DoNotKnowIfAUNode; }\n\t\n\tAUNode\t\t\t\t\tGetAUNode () const;\n\toperator AUNode () const { return GetAUNode(); }\n\t\n#pragma mark __API Wrapper\n\tOSStatus\t\t\t\tInitialize() const {\n\t\t\t\t\t\t\t\treturn AudioUnitInitialize(AU());\n\t\t\t\t\t\t\t}\n\tOSStatus\t\t\t\tUninitialize() const {\n\t\t\t\t\t\t\t\treturn AudioUnitUninitialize(AU());\n\t\t\t\t\t\t\t}\n\tOSStatus\t\t\t\tGetPropertyInfo(AudioUnitPropertyID propID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tUInt32 *outDataSize, Boolean *outWritable) const\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn AudioUnitGetPropertyInfo(AU(), propID, scope, element, outDataSize, outWritable);\n\t\t\t\t\t\t\t}\n\tOSStatus\t\t\t\tGetProperty(AudioUnitPropertyID propID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tvoid *outData, UInt32 *ioDataSize) const\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn AudioUnitGetProperty(AU(), propID, scope, element, outData, ioDataSize);\n\t\t\t\t\t\t\t}\n\tOSStatus\t\t\t\tSetProperty(AudioUnitPropertyID propID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tconst void *inData, UInt32 inDataSize)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn AudioUnitSetProperty(AU(), propID, scope, element, inData, inDataSize);\n\t\t\t\t\t\t\t}\n\tOSStatus\t\t\t\tSetParameter(AudioUnitParameterID inID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 value, UInt32 bufferOffsetFrames=0);\n\t\t\t\t\t\t\t\n\tOSStatus\t\t\t\tGetParameter(AudioUnitParameterID inID, AudioUnitScope scope, AudioUnitElement element,\n\t\t\t\t\t\t\t\t\t\t\tFloat32 &outValue) const;\n\n\tOSStatus\t\t\t\tRender (AudioUnitRenderActionFlags \t\t\t\t* ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp \t\t* inTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOutputBusNumber,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList\t\t\t\t* ioData);\n\n\tOSStatus\t\t\t\tProcess (AudioUnitRenderActionFlags \t\t\t& ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp \t\t& inTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList\t\t\t\t& ioData);\n\t\n\tOSStatus\t\t\t\tProcessMultiple (AudioUnitRenderActionFlags \t& ioActionFlags,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioTimeStamp\t\t& inTimeStamp,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberInputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\tconst AudioBufferList **\tinInputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinNumberOutputBufferLists,\n\t\t\t\t\t\t\t\t\t\t\t\tAudioBufferList **\t\t\tioOutputBufferLists);\n\n\t\n\tOSStatus\t\t\t\tReset (AudioUnitScope scope, AudioUnitElement element)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn AudioUnitReset (AU(), scope, element);\n\t\t\t\t\t\t\t}\n\tOSStatus\t\t\t\tGlobalReset ()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn AudioUnitReset (AU(), kAudioUnitScope_Global, 0);\n\t\t\t\t\t\t\t}\n\n\tOSStatus\t\t\t\tAddRenderNotify (AURenderCallback   inProc, void *inProcRefCon)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn AudioUnitAddRenderNotify (AU(), inProc, inProcRefCon);\n\t\t\t\t\t\t\t}\n\t\n\tOSStatus\t\t\t\tRemoveRenderNotify (AURenderCallback   inProc, void *inProcRefCon)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn AudioUnitRemoveRenderNotify (AU(), inProc, inProcRefCon);\n\t\t\t\t\t\t\t}\n\n\tOSStatus\t\t\t\tAddPropertyListener (AudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitPropertyListenerProc\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinProcRefCon)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn AudioUnitAddPropertyListener (AU(), inID, inProc, inProcRefCon);\n\t\t\t\t\t\t\t}\n\t\n\tOSStatus\t\t\t\tRemovePropertyListener (AudioUnitPropertyID\t\t\t\tinID,\n\t\t\t\t\t\t\t\t\t\t\t\t\tAudioUnitPropertyListenerProc\tinProc,\n\t\t\t\t\t\t\t\t\t\t\t\t\tvoid *\t\t\t\t\t\t\tinProcUserData);\n\t\n\tOSStatus\t\t\t\tMIDIEvent (UInt32\t\t\t\t\tinStatus,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinData1,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinData2,\n\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinOffsetSampleFrame);\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t// uses the default VoiceForGroup value - this is the normal case\n\tOSStatus\t\t\t\tStartNote (MusicDeviceGroupID\t\tinGroupID,\n\t\t\t\t\t\t\t\t\tNoteInstanceID *\t\t\toutNoteInstanceID,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams * inParams)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn StartNote (kMusicNoteEvent_UseGroupInstrument, \n\t\t\t\t\t\t\t\t\t\t\t\t\tinGroupID, outNoteInstanceID, \n\t\t\t\t\t\t\t\t\t\t\t\t\tinOffsetSampleFrame, inParams);\n\t\t\t\t\t\t\t}\n\n\tOSStatus\t\t\t\tStartNote (MusicDeviceInstrumentID\tinInstrument,\n\t\t\t\t\t\t\t\t\tMusicDeviceGroupID\t\t\tinGroupID,\n\t\t\t\t\t\t\t\t\tNoteInstanceID *\t\t\toutNoteInstanceID,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOffsetSampleFrame,\n\t\t\t\t\t\t\t\t\tconst MusicDeviceNoteParams * inParams);\n\n\tOSStatus\t\t\t\tStopNote (MusicDeviceGroupID\t\tinGroupID,\n\t\t\t\t\t\t\t\t\tNoteInstanceID\t\t\t\tinNoteInstanceID,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\tinOffsetSampleFrame);\n\n#pragma mark __Format Utilities\n\t\t// typically you ask this about an AU\n\t\t// These Questions are asking about Input and Output...\n\n\t\t// These ones just say whether an AU can do a single combination of channels\n\t\t// and is fine if the AU has a single output (and if an input, a single input)\n\tbool\t\t\t\t\tCanDo (int inChannelsInOut) const\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn CanDo (inChannelsInOut, inChannelsInOut);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\tbool\t\t\t\t\tCanDo (\t\tint \t\t\t\tinChannelsIn, \n\t\t\t\t\t\t\t\t\t\tint \t\t\t\tinChannelsOut) const;\n\t\t\n\t\t// This version does a more thorough test for ANY AU with ANY ins/outs\n\t\t// you pass in the channel helper (for the current element count on that scope)\n\t\t\n\tbool\t\t\t\t\tCanDo (\t\tconst CAAUChanHelper\t\t&input,\n\t\t\t\t\t\t\t\t\t\tconst CAAUChanHelper\t\t&output) const;\n\t\n\tbool\t\t\t\t\tSupportsNumChannels () const;\n\n\tbool\t\t\t\t\tHasChannelLayouts (AudioUnitScope \t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl) const;\n\t\t\n\tOSStatus\t\t\t\tGetChannelLayoutTags (AudioUnitScope \tinScope,\n\t\t\t\t\t\t\t\t\tAudioUnitElement \t\t\t\tinEl,\n\t\t\t\t\t\t\t\t\tChannelTagVector\t\t\t\t&outChannelVector) const;\n\t\n\tbool\t\t\t\t\tHasChannelLayout (AudioUnitScope \t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl) const;\n\t\n\tOSStatus\t\t\t\tGetChannelLayout (AudioUnitScope \t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tCAAudioChannelLayout\t&outLayout) const;\t\n\n\tOSStatus\t\t\t\tSetChannelLayout (AudioUnitScope \t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tconst CAAudioChannelLayout\t&inLayout);\n\n\tOSStatus\t\t\t\tSetChannelLayout (AudioUnitScope \t\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement \t\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioChannelLayout\t\t&inLayout,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\tinSize);\n\t\t\t\t\t\t\t\t\t\t\t\n\tOSStatus\t\t\t\tClearChannelLayout (AudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\tinEl);\n\t\t\t\t\t\t\t\t\t\t\t\t\n\tOSStatus\t\t\t\tGetFormat (AudioUnitScope\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tAudioStreamBasicDescription\t&outFormat) const;\n\t// if an AudioChannelLayout is either required or set, this call can fail\n\t// and the SetChannelLayout call should be used to set the format\n\tOSStatus\t\t\t\tSetFormat (AudioUnitScope\t\t\t\t\t\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\t\t\t\t\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tconst AudioStreamBasicDescription\t&inFormat);\n\n\tOSStatus\t\t\t\tGetSampleRate (AudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tFloat64\t\t\t\t&outRate) const;\n\tOSStatus\t\t\t\tSetSampleRate (AudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tFloat64\t\t\t\tinRate);\n\n\t// this sets the sample rate on all in/out buses of the AU\n\tOSStatus\t\t\t\tSetSampleRate (Float64\t\t\t\tinSampleRate);\n\t\n\tOSStatus\t\t\t\tNumberChannels (AudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t&outChans) const;\n\n\tOSStatus\t\t\t\tGetNumberChannels (AudioUnitScope\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t&outChans) const \n\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\treturn NumberChannels (inScope, inEl, outChans); \n\t\t\t\t\t\t\t}\n\n\tOSStatus\t\t\t\tSetNumberChannels (AudioUnitScope\tinScope,\n\t\t\t\t\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinChans);\n\n\tOSStatus\t\t\t\tIsElementCountWritable (AudioUnitScope inScope, bool &outWritable) const;\n\n\tOSStatus\t\t\t\tGetElementCount (AudioUnitScope \tinScope, UInt32 &outCount) const;\n\n\tOSStatus\t\t\t\tSetElementCount (AudioUnitScope\t\tinScope, UInt32 inCount);\n\t\t\n\t\t// value of -1 for outTotalNumChannels indicates no restriction on num channels\n\t\t// for ex. the Matrix Mixer satisfies this (its in/out element count is writable, and can be set to \n\t\t// any number of channels.\n\t\t// outTotalNumChannels is only valid if method returns true...\n\tbool\t\t\t\t\tHasDynamicInputs (SInt32 &outTotalNumChannels) const\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn HasDynamicScope (kAudioUnitScope_Input, outTotalNumChannels);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\tbool\t\t\t\t\tHasDynamicOutputs (SInt32 &outTotalNumChannels) const\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn HasDynamicScope (kAudioUnitScope_Output, outTotalNumChannels);\n\t\t\t\t\t\t\t}\n\t\n\t\t// here, if the in (or out) elements are dynamic, then you supply the number of elements\n\t\t// you want on in (or out) scope, and the number of channels on each consecutive element\n\tOSStatus\t\t\t\tConfigureDynamicInput (UInt32 inNumElements, UInt32 *inChannelsPerElement, Float64 inSampleRate)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn ConfigureDynamicScope (kAudioUnitScope_Input, inNumElements, inChannelsPerElement, inSampleRate);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\tOSStatus\t\t\t\tConfigureDynamicOutput (UInt32 inNumElements, UInt32 *inChannelsPerElement, Float64 inSampleRate)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn ConfigureDynamicScope (kAudioUnitScope_Output, inNumElements, inChannelsPerElement, inSampleRate);\n\t\t\t\t\t\t\t}\n\n\tbool\t\t\t\t\tCanBypass \t\t() const;\n\n\tbool\t\t\t\t\tGetBypass \t\t() const;\n\n\tOSStatus\t\t\t\tSetBypass \t\t(bool\t\t\t\tinBypass) const;\n\t\n\tOSStatus\t\t\t\tGetMaxFramesPerSlice (UInt32& outMaxFrames) const;\n\t\n\tOSStatus\t\t\t\tSetMaxFramesPerSlice (UInt32 inMaxFrames);\n\t\n\tFloat64\t\t\t\t\tLatency () const;\n\t\n\t\t// these calls just deal with the global preset state\n\t\t// you could rescope them to deal with presets on the part scope\n\tOSStatus\t\t\t\tGetAUPreset (CFPropertyListRef &outData) const;\n\n\tOSStatus\t\t\t\tSetAUPreset (CFPropertyListRef &inData);\n\t\n\tOSStatus\t\t\t\tSetAUPresetFromDocument (CFPropertyListRef &inData);\n\n\tOSStatus\t\t\t\tGetPresentPreset (AUPreset &outData) const;\n\t\n\tOSStatus\t\t\t\tSetPresentPreset (AUPreset &inData);\n\t\n\tbool\t\t\t\t\tHasCustomView () const;\n\t\n#pragma mark __Print\t\n\tvoid\t\t\t\t\tPrint () const { Print (stdout); }\n\tvoid\t\t\t\t\tPrint (FILE* file) const;\n\t\nprivate:\n\tCAComponent\t\t\t\tmComp;\n\t\n\tclass AUState;\n\tAUState*\t\tmDataPtr;\n\t\t\n\t\t// this can throw - so wrap this up in a static that returns a result code...\n\tCAAudioUnit (const CAComponent& inComp);\n\n\tbool\t\t\t\tHasDynamicScope (AudioUnitScope inScope, SInt32 &outTotalNumChannels) const;\n\tOSStatus\t\t\tConfigureDynamicScope (AudioUnitScope   inScope, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tinNumElements, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t*inChannelsPerElement, \n\t\t\t\t\t\t\t\t\t\t\tFloat64\t\t\t\tinSampleRate);\n\tbool\t\t\t\tValidateChannelPair (int \t\t\t\tinChannelsIn, \n\t\t\t\t\t\t\t\t\t\t\tint \t\t\t\tinChannelsOut,\n\t\t\t\t\t\t\t\t\t\t\tconst AUChannelInfo * info,\n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tnumChanInfo) const;\n\t\t\t\t\t\t\t\t\t\t\t\n\tbool\t\t\t\tValidateDynamicScope (AudioUnitScope\tinScope, \n\t\t\t\t\t\t\t\t\t\t\tSInt32\t\t\t\t&outTotalNumChannels, \n\t\t\t\t\t\t\t\t\t\t\tconst AUChannelInfo * info, \n\t\t\t\t\t\t\t\t\t\t\tUInt32 numInfo) const;\n\tbool\t\t\t\tCheckOneSide (const CAAUChanHelper\t\t&inHelper, \n\t\t\t\t\t\t\t\t\t\t\tbool\t\t\t\tcheckOutput, \n\t\t\t\t\t\t\t\t\t\t\tconst AUChannelInfo *info, \n\t\t\t\t\t\t\t\t\t\t\tUInt32\t\t\t\tnumInfo) const;\n\tenum {\n\t\t\tkCAAU_DoNotKnowIfAUNode = -1\n\t};\n};\n\nclass CAAUChanHelper {\npublic:\n\t\t\t\tCAAUChanHelper() \n\t\t\t\t\t: mChans(mStaticChans), mNumEls(0), mDidAllocate(false) \n\t\t\t\t{\n\t\t\t\t\tmemset (mChans, 0, sizeof(UInt32) * kStaticElCount);\n\t\t\t\t}\n\t\t\t\tCAAUChanHelper(UInt32 inMaxElems);\n\t\t\t\tCAAUChanHelper(const CAAudioUnit &inAU, AudioUnitScope inScope);\n\t\t\t\tCAAUChanHelper (const CAAUChanHelper &c) \n\t\t\t\t\t: mChans(mStaticChans), mNumEls(0), mDidAllocate(false) \n\t\t\t\t\t{ *this = c; }\n\t\t\t\t\n\t\t\t\t~CAAUChanHelper();\n\n\tCAAUChanHelper& operator= (const CAAUChanHelper &c);\n\n\tUInt32\t\t* mChans;\n\tUInt32\t\tmNumEls;\n\t\nprivate:\n\tenum {\n\t\tkStaticElCount = 8\n\t};\n\tUInt32 mStaticChans[kStaticElCount];\n\tbool mDidAllocate;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioUnitOutputCapturer.h",
    "content": "/*\n     File: CAAudioUnitOutputCapturer.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAAudioUnitOutputCapturer_h__\n#define __CAAudioUnitOutputCapturer_h__\n\n#include <AudioToolbox/ExtendedAudioFile.h>\n\n/*\n\tClass to capture output from an AudioUnit for analysis.\n\n\texample:\n\n\tCFURL fileurl = CFURLCreateWithFileSystemPath(NULL, CFSTR(\"/tmp/recording.caf\"), kCFURLPOSIXPathStyle, false);\n\n\tCAAudioUnitOutputCapturer captor(someAU, fileurl, 'caff', anASBD);\n\n\t{\n\tcaptor.Start();\n\t...\n\tcaptor.Stop();\n\t} // can repeat\n\n\tcaptor.Close(); // can be omitted; happens automatically from destructor\n*/\n\nclass CAAudioUnitOutputCapturer {\npublic:\n\tenum { noErr = 0 };\n\n\tCAAudioUnitOutputCapturer(AudioUnit au, CFURLRef outputFileURL, AudioFileTypeID fileType, const AudioStreamBasicDescription &format, UInt32 busNumber = 0) :\n\t\tmFileOpen(false),\n\t\tmClientFormatSet(false),\n\t\tmAudioUnit(au),\n\t\tmExtAudioFile(NULL),\n\t\tmBusNumber (busNumber)\n\t{\t\n\t\tCFShow(outputFileURL);\n\t\tOSStatus err = ExtAudioFileCreateWithURL(outputFileURL, fileType, &format, NULL, kAudioFileFlags_EraseFile, &mExtAudioFile);\n\t\tif (!err)\n\t\t\tmFileOpen = true;\n\t}\n\t\n\tvoid\tStart() {\n\t\tif (mFileOpen) {\n\t\t\tif (!mClientFormatSet) {\n\t\t\t\tAudioStreamBasicDescription clientFormat;\n\t\t\t\tUInt32 size = sizeof(clientFormat);\n\t\t\t\tAudioUnitGetProperty(mAudioUnit, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Output, mBusNumber, &clientFormat, &size);\n\t\t\t\tExtAudioFileSetProperty(mExtAudioFile, kExtAudioFileProperty_ClientDataFormat, size, &clientFormat);\n\t\t\t\tmClientFormatSet = true;\n\t\t\t}\n\t\t\tExtAudioFileWriteAsync(mExtAudioFile, 0, NULL);\t// initialize async writes\n\t\t\tAudioUnitAddRenderNotify(mAudioUnit, RenderCallback, this);\n\t\t}\n\t}\n\t\n\tvoid\tStop() {\n\t\tif (mFileOpen)\n\t\t\tAudioUnitRemoveRenderNotify(mAudioUnit, RenderCallback, this);\n\t}\n\t\n\tvoid\tClose() {\n\t\tif (mExtAudioFile) {\n\t\t\tExtAudioFileDispose(mExtAudioFile);\n\t\t\tmExtAudioFile = NULL;\n\t\t}\n\t}\n\t\n\t~CAAudioUnitOutputCapturer() {\n\t\tClose();\n\t}\n\nprivate:\n\tstatic OSStatus RenderCallback(\tvoid *\t\t\t\t\t\t\tinRefCon,\n\t\t\t\t\t\t\t\t\tAudioUnitRenderActionFlags *\tioActionFlags,\n\t\t\t\t\t\t\t\t\tconst AudioTimeStamp *\t\t\tinTimeStamp,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinBusNumber,\n\t\t\t\t\t\t\t\t\tUInt32\t\t\t\t\t\t\tinNumberFrames,\n\t\t\t\t\t\t\t\t\tAudioBufferList *\t\t\t\tioData)\n\t{\n\t\tif (*ioActionFlags & kAudioUnitRenderAction_PostRender) {\n\t\t\tCAAudioUnitOutputCapturer *This = (CAAudioUnitOutputCapturer *)inRefCon;\n\t\t\tstatic int TEMP_kAudioUnitRenderAction_PostRenderError\t= (1 << 8);\n\t\t\tif (This->mBusNumber == inBusNumber && !(*ioActionFlags & TEMP_kAudioUnitRenderAction_PostRenderError)) {\n\t\t\t\tOSStatus result = ExtAudioFileWriteAsync(This->mExtAudioFile, inNumberFrames, ioData);\n\t\t\t\tif (result) DebugMessageN1(\"ERROR WRITING FRAMES: %d\\n\", (int)result);\n\t\t\t}\n\t\t}\n\t\treturn noErr;\n\t}\n\t\n\tbool\t\t\t\tmFileOpen;\n\tbool\t\t\t\tmClientFormatSet;\n\tAudioUnit\t\t\tmAudioUnit;\n\tExtAudioFileRef\t\tmExtAudioFile;\n\tUInt32\t\t\t\tmBusNumber;\n};\n\n#endif // __CAAudioUnitOutputCapturer_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioValueRange.cpp",
    "content": "/*\n     File: CAAudioValueRange.cpp\n Abstract: CAAudioValueRange.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAAudioValueRange.h\"\n\n//\tStandard Library\n#include <algorithm>\n\n//==================================================================================================\n//\tCAAudioValueRange\n//==================================================================================================\n\nFloat64\tCAAudioValueRange::BoundValue(const AudioValueRange& inRange, Float64 inValue)\n{\n\tif (inValue <= inRange.mMinimum)\n\t{\n\t\treturn inRange.mMinimum;\n\t}\n\telse if (inValue >= inRange.mMaximum)\n\t{\n\t\treturn inRange.mMaximum;\n\t}\n\telse\n\t{\n\t\treturn inValue;\n\t}\n}\n\nFloat64 CAAudioValueRange::PickCommonSampleRate(const AudioValueRange& inRange)\n{\n\t//  This routine will pick a \"common\" sample rate from the give range of rates or the maximum\n\t//  if no common rates can be found. It assumes that inRange contains a continuous range of\n\t//  sample rates.\n\tFloat64 theAnswer = inRange.mMaximum;\n\t\n\tif(ContainsValue(inRange, 44100.0))\n\t{\n\t\ttheAnswer = 44100.0;\n\t}\n\telse if(ContainsValue(inRange, 48000.0))\n\t{\n\t\ttheAnswer = 48000.0;\n\t}\n\telse if(ContainsValue(inRange, 96000.0))\n\t{\n\t\ttheAnswer = 96000.0;\n\t}\n\telse if(ContainsValue(inRange, 88200.0))\n\t{\n\t\ttheAnswer = 88200.0;\n\t}\n\telse if(ContainsValue(inRange, 64000.0))\n\t{\n\t\ttheAnswer = 64000.0;\n\t}\n\telse if(ContainsValue(inRange, 32000.0))\n\t{\n\t\ttheAnswer = 32000.0;\n\t}\n\telse if(ContainsValue(inRange, 24000.0))\n\t{\n\t\ttheAnswer = 24000.0;\n\t}\n\telse if(ContainsValue(inRange, 22050.0))\n\t{\n\t\ttheAnswer = 22050.0;\n\t}\n\telse if(ContainsValue(inRange, 16000.0))\n\t{\n\t\ttheAnswer = 16000.0;\n\t}\n\telse if(ContainsValue(inRange, 12000.0))\n\t{\n\t\ttheAnswer = 12000.0;\n\t}\n\telse if(ContainsValue(inRange, 11025.0))\n\t{\n\t\ttheAnswer = 11025.0;\n\t}\n\telse if(ContainsValue(inRange, 8000.0))\n\t{\n\t\ttheAnswer = 8000.0;\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCAAudioValueRange::Intersection(const AudioValueRange& x, const AudioValueRange& y, AudioValueRange& outRange)\n{\n\tbool isNonEmpty;\n\tif(!IsStrictlyLessThan(x, y) && !IsStrictlyGreaterThan(x, y))\n\t{\n\t\toutRange.mMinimum = std::max(x.mMinimum, y.mMinimum);\n\t\toutRange.mMaximum = std::min(x.mMaximum, y.mMaximum);\n\t\tisNonEmpty = true;\n\t}\n\telse\n\t{\n\t\toutRange.mMinimum = 0;\n\t\toutRange.mMaximum = 0;\n\t\tisNonEmpty = false;\n\t}\n\treturn isNonEmpty;\n}\n\nbool\tCAAudioValueRange::Union(const AudioValueRange& x, const AudioValueRange& y, AudioValueRange& outRange)\n{\n\tbool isDisjoint;\n\tif(!IsStrictlyLessThan(x, y) && !IsStrictlyGreaterThan(x, y))\n\t{\n\t\toutRange.mMinimum = std::min(x.mMinimum, y.mMinimum);\n\t\toutRange.mMaximum = std::max(x.mMaximum, y.mMaximum);\n\t\tisDisjoint = false;\n\t}\n\telse\n\t{\n\t\toutRange.mMinimum = 0;\n\t\toutRange.mMaximum = 0;\n\t\tisDisjoint = true;\n\t}\n\treturn isDisjoint;\n}\n\nvoid\tCAAudioValueRange_ComputeUnion(const AudioValueRange& inRange, const CAAudioValueRangeList& inRangeList, CAAudioValueRangeList& outUnion)\n{\n\t//\tthis method assumes that the ranges in inRangeList are disjoint and that they are sorted from low to high and\n\toutUnion.clear();\n\t\n\t//\tstart at the beginning of inRangeList\n\tCAAudioValueRangeList::const_iterator theIterator = inRangeList.begin();\n\t\n\t//\titerate through inRangeList and add all the ranges that are strictly less than inRange\n\twhile((theIterator != inRangeList.end()) && CAAudioValueRange::IsStrictlyLessThan(*theIterator, inRange))\n\t{\n\t\t//\tput this range in the union\n\t\toutUnion.push_back(*theIterator);\n\t\t\n\t\t//\tgo to the next one\n\t\tstd::advance(theIterator, 1);\n\t}\n\t\n\tif(theIterator != inRangeList.end())\n\t{\n\t\tif(!CAAudioValueRange::IsStrictlyGreaterThan(*theIterator, inRange))\n\t\t{\n\t\t\t//\tinRange intersects the range that theIterator points at, but might actually intersect several contiguous ranges\n\t\t\t\n\t\t\t//\tinitialize the starting point, noting that we can skip the current one since we already know it's in the intersection\n\t\t\tCAAudioValueRangeList::const_iterator theGreaterIterator = theIterator;\n\t\t\tstd::advance(theGreaterIterator, 1);\n\t\t\t\n\t\t\t//\titerate until we find a range that is strictly greater than inRange\n\t\t\twhile((theGreaterIterator != inRangeList.end()) && !CAAudioValueRange::IsStrictlyGreaterThan(*theGreaterIterator, inRange))\n\t\t\t{\n\t\t\t\t//\tgo to the next one\n\t\t\t\tstd::advance(theGreaterIterator, 1);\n\t\t\t}\n\t\t\t\n\t\t\t//\ttheGreaterIterator now points at either one past the highest range in the intersection or the end of the vector\n\t\t\t//\tEither way, we have to adjust it to point at the true highest range in the intersection\n\t\t\tstd::advance(theGreaterIterator, -1);\n\t\t\t\n\t\t\t//\tnow theIterator points at the lowest range in the intersection and theGreaterIterator points at the highest\n\t\t\t//\tso we can compute the coagulated range\n\t\t\tAudioValueRange theCoagulation;\n\t\t\ttheCoagulation.mMinimum = std::min(theIterator->mMinimum, inRange.mMinimum);\n\t\t\ttheCoagulation.mMaximum = std::max(theGreaterIterator->mMaximum, inRange.mMaximum);\n\t\t\t\n\t\t\t//\tadd the coagulation to the union\n\t\t\toutUnion.push_back(theCoagulation);\n\t\t\t\n\t\t\t//\tadjust theIterator to point at the next range for processing\n\t\t\ttheIterator = theGreaterIterator;\n\t\t\tstd::advance(theIterator, 1);\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\tthe range theIterator points at is strictly greater than inRange, so insert inRange in front of it and we're done\n\t\t\toutUnion.push_back(inRange);\n\t\t}\n\t\t\t\n\t\t//\twe need to now copy the remaining higher ranges in inRangeList into the union\n\t\twhile(theIterator != inRangeList.end())\n\t\t{\n\t\t\t//\tput this range in the union\n\t\t\toutUnion.push_back(*theIterator);\n\t\t\t\n\t\t\t//\tgo to the next one\n\t\t\tstd::advance(theIterator, 1);\n\t\t}\n\t}\n\telse\n\t{\n\t\t//\tinRange is larger than all of the ranges in inRangeList, so just add it onto the end of the union and we're done\n\t\t//\tThis is also the case if inRangeList is empty\n\t\toutUnion.push_back(inRange);\n\t}\n}\n\nvoid\tCAAudioValueRange_ComputeIntersection(UInt32 inNumberRangeList1Items, AudioValueRange inRangeList1[], const CAAudioValueRangeList& inRangeList2, CAAudioValueRangeList& outIntersections)\n{\n\toutIntersections.clear();\n\tfor(UInt32 theRangeList1Index = 0; theRangeList1Index < inNumberRangeList1Items; ++theRangeList1Index)\n\t{\n\t\tfor(CAAudioValueRangeList::const_iterator theRangeList2Iterator = inRangeList2.begin(); theRangeList2Iterator != inRangeList2.end(); std::advance(theRangeList2Iterator, 1))\n\t\t{\n\t\t\tAudioValueRange theIntersection;\n\t\t\tif(CAAudioValueRange::Intersection(inRangeList1[theRangeList1Index], *theRangeList2Iterator, theIntersection))\n\t\t\t{\n\t\t\t\toutIntersections.push_back(theIntersection);\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAudioValueRange.h",
    "content": "/*\n     File: CAAudioValueRange.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAAudioValueRange_h__)\n#define __CAAudioValueRange_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n//\tStandard Library Includes\n#include <functional>\n#include <vector>\n\n//=============================================================================\n//\tCAAudioValueRange\n//=============================================================================\n\nstruct CAAudioValueRange\n:\n\tpublic AudioValueRange\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCAAudioValueRange()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ mMinimum = 0.0; mMaximum = 0.0; }\n\t\t\t\t\t\tCAAudioValueRange(const AudioValueRange& v)\t\t\t\t\t\t\t\t\t\t{ mMinimum = v.mMinimum; mMaximum = v.mMaximum; }\n\t\t\t\t\t\tCAAudioValueRange(Float64 inMinimum, Float64 inMaximum)\t\t\t\t\t\t\t{ mMinimum = inMinimum; mMaximum = inMaximum; }\n\n//\tAssignment\npublic:\n\tCAAudioValueRange&\toperator=(const AudioValueRange& v)\t\t\t\t\t\t\t\t\t\t\t\t{ mMinimum = v.mMinimum; mMaximum = v.mMaximum; return *this; }\n\n//  Operations\npublic:\n\tstatic bool\t\t\tContainsValue(const AudioValueRange& inRange, Float64 inValue)\t\t\t\t\t{ return (inValue >= inRange.mMinimum) && (inValue <= inRange.mMaximum); }\n\tstatic Float64\t\tBoundValue(const AudioValueRange& inRange, Float64 inValue);\n\tstatic Float64\t\tPickCommonSampleRate(const AudioValueRange& inRange);\n\tstatic bool\t\t\tIsStrictlyLessThan(const AudioValueRange& x, const AudioValueRange& y)\t\t\t{ return x.mMaximum < y.mMinimum; }\n\tstatic bool\t\t\tIsStrictlyGreaterThan(const AudioValueRange& x, const AudioValueRange& y)\t\t{ return x.mMinimum > y.mMaximum; }\n\tstatic bool\t\t\tIsStrictlyContainedBy(const AudioValueRange& x, const AudioValueRange& y)\t\t{ return (x.mMinimum >= y.mMinimum) && (x.mMaximum <= y.mMaximum); }\n\tstatic bool\t\t\tOverlapsLow(const AudioValueRange& x, const AudioValueRange& y)\t\t\t\t\t{ return (x.mMinimum < y.mMinimum) && (x.mMaximum >= y.mMinimum) && (x.mMaximum <= y.mMaximum); }\n\tstatic bool\t\t\tOverlapsHigh(const AudioValueRange& x, const AudioValueRange& y)\t\t\t\t{ return (x.mMinimum >= y.mMinimum) && (x.mMinimum <= y.mMaximum) && (x.mMaximum > y.mMaximum); }\n\tstatic bool\t\t\tIntersection(const AudioValueRange& x, const AudioValueRange& y, AudioValueRange& outRange);\n\tstatic bool\t\t\tUnion(const AudioValueRange& x, const AudioValueRange& y, AudioValueRange& outRange);\n\n//\tSTL Helpers\npublic:\n\tstruct\tLessThan\n\t:\n\t\tpublic std::binary_function<AudioValueRange, AudioValueRange, bool>\n\t{\n\t\tbool\toperator()(const AudioValueRange& x, const AudioValueRange& y) const\n\t\t{\n\t\t\treturn x.mMinimum < y.mMinimum;\n\t\t}\n\t};\n\t\n};\n\ninline bool\toperator<(const AudioValueRange& x, const AudioValueRange& y)\t\t\t\t\t\t\t\t{ return x.mMinimum < y.mMinimum; }\ninline bool\toperator==(const AudioValueRange& x, const AudioValueRange& y)\t\t\t\t\t\t\t\t{ return (x.mMinimum == y.mMinimum) && (x.mMaximum == y.mMaximum); }\ninline bool\toperator!=(const AudioValueRange& x, const AudioValueRange& y)\t\t\t\t\t\t\t\t{ return !(x == y); }\ninline bool\toperator<=(const AudioValueRange& x, const AudioValueRange& y)\t\t\t\t\t\t\t\t{ return (x < y) || (x == y); }\ninline bool\toperator>=(const AudioValueRange& x, const AudioValueRange& y)\t\t\t\t\t\t\t\t{ return !(x < y); }\ninline bool\toperator>(const AudioValueRange& x, const AudioValueRange& y)\t\t\t\t\t\t\t\t{ return !((x < y) || (x == y)); }\n\ntypedef\tstd::vector<CAAudioValueRange>\tCAAudioValueRangeList;\nvoid\tCAAudioValueRange_ComputeUnion(const AudioValueRange& inRange, const CAAudioValueRangeList& inRangeList, CAAudioValueRangeList& outUnion);\nvoid\tCAAudioValueRange_ComputeIntersection(UInt32 inNumberRangeList1Items, AudioValueRange inRangeList1[], const CAAudioValueRangeList& inRangeList2, CAAudioValueRangeList& outIntersections);\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAAutoDisposer.h",
    "content": "/*\n     File: CAAutoDisposer.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAPtr_h__)\n#define __CAPtr_h__\n\n#include <stdlib.h>\t\t// for malloc\n#include <new>\t\t\t// for bad_alloc\n#include <string.h>\t\t// for memset\n\ninline void* CA_malloc(size_t size)\n{\n\tvoid* p = malloc(size);\n\tif (!p && size) throw std::bad_alloc();\n\treturn p;\n}\n\ninline void* CA_realloc(void* old, size_t size)\n{\n#if TARGET_OS_WIN32\n\tvoid* p = realloc(old, size);\n#else\n\tvoid* p = reallocf(old, size); // reallocf ensures the old pointer is freed if memory is full (p is NULL).\n#endif\n\tif (!p && size) throw std::bad_alloc();\n\treturn p;\n}\n\n#ifndef UINTPTR_MAX\n#if __LP64__\n#define UINTPTR_MAX\t  18446744073709551615ULL\n#else\n#define UINTPTR_MAX\t  4294967295U\n#endif\n#endif\n\ninline void* CA_calloc(size_t n, size_t size)\n{\t\n\t// ensure that multiplication will not overflow\n\tif (n && UINTPTR_MAX / n < size) throw std::bad_alloc();\n\t\n\tsize_t nsize = n*size;\n\tvoid* p = malloc(nsize);\n\tif (!p && nsize) throw std::bad_alloc();\n\n\tmemset(p, 0, nsize);\n\treturn p;\n}\n\n\n// helper class for automatic conversions\ntemplate <typename T>\nstruct CAPtrRef\n{\n\tT* ptr_;\n\n\texplicit CAPtrRef(T* ptr) : ptr_(ptr) {}\n};\n\ntemplate <typename T>\nclass CAAutoFree\n{\nprivate:\n\tT* ptr_;\n\npublic:\n\t\n\tCAAutoFree() : ptr_(0) {}\n\t\n\texplicit CAAutoFree(T* ptr) : ptr_(ptr) {}\n\t\n\ttemplate<typename U>\n\tCAAutoFree(CAAutoFree<U>& that) : ptr_(that.release()) {} // take ownership\n\n\t// C++ std says: a template constructor is never a copy constructor\n\tCAAutoFree(CAAutoFree<T>& that) : ptr_(that.release()) {} // take ownership\n\n\tCAAutoFree(size_t n, bool clear = false) \n\t\t// this becomes an ambiguous call if n == 0\n\t\t: ptr_(0) \n\t\t{\n\t\t\tsize_t maxItems = ~size_t(0) / sizeof(T);\n\t\t\tif (n > maxItems) \n\t\t\t\tthrow std::bad_alloc();\n\n\t\t\tptr_ = static_cast<T*>(clear ? CA_calloc(n, sizeof(T)) : CA_malloc(n * sizeof(T)));\n\t\t}\n\t\n\t~CAAutoFree() { free(); }\n\t\n\tvoid alloc(size_t numItems, bool clear = false) \n\t{\n\t\tsize_t maxItems = ~size_t(0) / sizeof(T);\n\t\tif (numItems > maxItems) throw std::bad_alloc();\n\t\t\n\t\tfree();\n\t\tptr_ = static_cast<T*>(clear ? CA_calloc(numItems, sizeof(T)) : CA_malloc(numItems * sizeof(T)));\n\t}\n\t\n\tvoid allocBytes(size_t numBytes, bool clear = false) \n\t{\n\t\tfree();\n\t\tptr_ = static_cast<T*>(clear ? CA_calloc(1, numBytes) : CA_malloc(numBytes));\n\t}\n\t\n\tvoid reallocBytes(size_t numBytes) \n\t{\n\t\tptr_ = static_cast<T*>(CA_realloc(ptr_, numBytes));\n\t}\n\n\tvoid reallocItems(size_t numItems) \n\t{\n\t\tsize_t maxItems = ~size_t(0) / sizeof(T);\n\t\tif (numItems > maxItems) throw std::bad_alloc();\n\t\t\n\t\tptr_ = static_cast<T*>(CA_realloc(ptr_, numItems * sizeof(T)));\n\t}\n\t\n\ttemplate <typename U>\n\tCAAutoFree& operator=(CAAutoFree<U>& that) \n\t{ \n\t\tset(that.release());\t// take ownership\n\t\treturn *this;\n\t}\n\t\n\tCAAutoFree& operator=(CAAutoFree& that) \n\t{ \n\t\tset(that.release());\t// take ownership\n\t\treturn *this;\n\t}\n\t\n\tCAAutoFree& operator=(T* ptr) \n\t{\n\t\tset(ptr); \n\t\treturn *this;\n\t}\n\t\n\ttemplate <typename U>\n\tCAAutoFree& operator=(U* ptr) \n\t{\n\t\tset(ptr); \n\t\treturn *this;\n\t}\n\t\t\n\tT& operator*() const { return *ptr_; }\n\tT* operator->() const { return ptr_; }\n\t\n\tT* operator()() const { return ptr_; }\n\tT* get() const { return ptr_; }\n\toperator T*() const { return ptr_; }\n\n\tbool operator==(CAAutoFree const& that) const { return ptr_ == that.ptr_; }\n\tbool operator!=(CAAutoFree const& that) const { return ptr_ != that.ptr_; }\n\tbool operator==(T* ptr) const { return ptr_ == ptr; }\n\tbool operator!=(T* ptr) const { return ptr_ != ptr; }\n\t\t\n\tT* release() \n\t{\n\t\t// release ownership\n\t\tT* result = ptr_;\n\t\tptr_ = 0;\n\t\treturn result;\n\t}\n\t\n\tvoid set(T* ptr)\n\t{\n\t\tif (ptr != ptr_)\n\t\t{\n\t\t\t::free(ptr_);\n\t\t\tptr_ = ptr;\n\t\t}\n\t}\n\t\n\tvoid free() \n\t{\n\t\tset(0);\n\t}\n\n\n\t// automatic conversions to allow assignment from results of functions.\n\t// hard to explain. see auto_ptr implementation and/or Josuttis' STL book.\n\tCAAutoFree(CAPtrRef<T> ref) : ptr_(ref.ptr_) { }\n\n\tCAAutoFree& operator=(CAPtrRef<T> ref)\n\t{\n\t\tset(ref.ptr_);\n\t\treturn *this;\n\t}\n\n\ttemplate<typename U>\n\toperator CAPtrRef<U>()\n\t\t{ return CAPtrRef<U>(release()); }\n\n\ttemplate<typename U>\n\toperator CAAutoFree<U>()\n\t\t{ return CAAutoFree<U>(release()); }\n\t\n};\n\n\ntemplate <typename T>\nclass CAAutoDelete\n{\nprivate:\n\tT* ptr_;\n\npublic:\n\tCAAutoDelete() : ptr_(0) {}\n\n\texplicit CAAutoDelete(T* ptr) : ptr_(ptr) {}\n\t\n\ttemplate<typename U>\n\tCAAutoDelete(CAAutoDelete<U>& that) : ptr_(that.release()) {} // take ownership\n\n\t// C++ std says: a template constructor is never a copy constructor\n\tCAAutoDelete(CAAutoDelete<T>& that) : ptr_(that.release()) {} // take ownership\n\t\n\t~CAAutoDelete() { free(); }\n\t\n\ttemplate <typename U>\n\tCAAutoDelete& operator=(CAAutoDelete<U>& that) \n\t{ \n\t\tset(that.release());\t// take ownership\n\t\treturn *this;\n\t}\n\t\n\tCAAutoDelete& operator=(CAAutoDelete& that) \n\t{ \n\t\tset(that.release());\t// take ownership\n\t\treturn *this;\n\t}\n\t\n\tCAAutoDelete& operator=(T* ptr) \n\t{\n\t\tset(ptr); \n\t\treturn *this;\n\t}\n\t\n\ttemplate <typename U>\n\tCAAutoDelete& operator=(U* ptr) \n\t{\n\t\tset(ptr); \n\t\treturn *this;\n\t}\n\t\t\n\tT& operator*() const { return *ptr_; }\n\tT* operator->() const { return ptr_; }\n\t\n\tT* operator()() const { return ptr_; }\n\tT* get() const { return ptr_; }\n\toperator T*() const { return ptr_; }\n\t\n\tbool operator==(CAAutoDelete const& that) const { return ptr_ == that.ptr_; }\n\tbool operator!=(CAAutoDelete const& that) const { return ptr_ != that.ptr_; }\n\tbool operator==(T* ptr) const { return ptr_ == ptr; }\n\tbool operator!=(T* ptr) const { return ptr_ != ptr; }\n\t\t\n\tT* release() \n\t{\n\t\t// release ownership\n\t\tT* result = ptr_;\n\t\tptr_ = 0;\n\t\treturn result;\n\t}\n\t\n\tvoid set(T* ptr)\n\t{\n\t\tif (ptr != ptr_)\n\t\t{\n\t\t\tdelete ptr_;\n\t\t\tptr_ = ptr;\n\t\t}\n\t}\n\t\n\tvoid free() \n\t{\n\t\tset(0);\n\t}\n\n\n\t// automatic conversions to allow assignment from results of functions.\n\t// hard to explain. see auto_ptr implementation and/or Josuttis' STL book.\n\tCAAutoDelete(CAPtrRef<T> ref) : ptr_(ref.ptr_) { }\n\n\tCAAutoDelete& operator=(CAPtrRef<T> ref)\n\t{\n\t\tset(ref.ptr_);\n\t\treturn *this;\n\t}\n\n\ttemplate<typename U>\n\toperator CAPtrRef<U>()\n\t\t{ return CAPtrRef<U>(release()); }\n\n\ttemplate<typename U>\n\toperator CAAutoFree<U>()\n\t\t{ return CAAutoFree<U>(release()); }\n\t\n};\n\n\ntemplate <typename T>\nclass CAAutoArrayDelete\n{\nprivate:\n\tT* ptr_;\n\npublic:\n\tCAAutoArrayDelete() : ptr_(0) {}\n\n\texplicit CAAutoArrayDelete(T* ptr) : ptr_(ptr) {}\n\t\n\ttemplate<typename U>\n\tCAAutoArrayDelete(CAAutoArrayDelete<U>& that) : ptr_(that.release()) {} // take ownership\n\n\t// C++ std says: a template constructor is never a copy constructor\n\tCAAutoArrayDelete(CAAutoArrayDelete<T>& that) : ptr_(that.release()) {} // take ownership\n\t\n\t// this becomes an ambiguous call if n == 0\n\tCAAutoArrayDelete(size_t n) : ptr_(new T[n]) {}\n\t\n\t~CAAutoArrayDelete() { free(); }\n\t\n\tvoid alloc(size_t numItems) \n\t{\n\t\tfree();\n\t\tptr_ = new T [numItems];\n\t}\n\t\n\ttemplate <typename U>\n\tCAAutoArrayDelete& operator=(CAAutoArrayDelete<U>& that) \n\t{ \n\t\tset(that.release());\t// take ownership\n\t\treturn *this;\n\t}\n\t\n\tCAAutoArrayDelete& operator=(CAAutoArrayDelete& that) \n\t{ \n\t\tset(that.release());\t// take ownership\n\t\treturn *this;\n\t}\n\t\n\tCAAutoArrayDelete& operator=(T* ptr) \n\t{\n\t\tset(ptr); \n\t\treturn *this;\n\t}\n\t\n\ttemplate <typename U>\n\tCAAutoArrayDelete& operator=(U* ptr) \n\t{\n\t\tset(ptr); \n\t\treturn *this;\n\t}\n\t\t\n\tT& operator*() const { return *ptr_; }\n\tT* operator->() const { return ptr_; }\n\t\n\tT* operator()() const { return ptr_; }\n\tT* get() const { return ptr_; }\n\toperator T*() const { return ptr_; }\n\n\tbool operator==(CAAutoArrayDelete const& that) const { return ptr_ == that.ptr_; }\n\tbool operator!=(CAAutoArrayDelete const& that) const { return ptr_ != that.ptr_; }\n\tbool operator==(T* ptr) const { return ptr_ == ptr; }\n\tbool operator!=(T* ptr) const { return ptr_ != ptr; }\n\t\t\n\tT* release() \n\t{\n\t\t// release ownership\n\t\tT* result = ptr_;\n\t\tptr_ = 0;\n\t\treturn result;\n\t}\n\t\n\tvoid set(T* ptr)\n\t{\n\t\tif (ptr != ptr_)\n\t\t{\n\t\t\tdelete [] ptr_;\n\t\t\tptr_ = ptr;\n\t\t}\n\t}\n\t\n\tvoid free() \n\t{\n\t\tset(0);\n\t}\n\n\n\t// automatic conversions to allow assignment from results of functions.\n\t// hard to explain. see auto_ptr implementation and/or Josuttis' STL book.\n\tCAAutoArrayDelete(CAPtrRef<T> ref) : ptr_(ref.ptr_) { }\n\n\tCAAutoArrayDelete& operator=(CAPtrRef<T> ref)\n\t{\n\t\tset(ref.ptr_);\n\t\treturn *this;\n\t}\n\n\ttemplate<typename U>\n\toperator CAPtrRef<U>()\n\t\t{ return CAPtrRef<U>(release()); }\n\n\ttemplate<typename U>\n\toperator CAAutoArrayDelete<U>()\n\t\t{ return CAAutoFree<U>(release()); }\n\t\n};\n\n\n\n\n\n// convenience function\ntemplate <typename T>\nvoid free(CAAutoFree<T>& p)\n{\n\tp.free();\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////////////////////////////\n////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n#if 0\n// example program showing ownership transfer\n\nCAAutoFree<char> source()\n{\n\t// source allocates and returns ownership to the caller.\n\tconst char* str = \"this is a test\";\n\tsize_t size = strlen(str) + 1;\n\tCAAutoFree<char> captr(size, false);\n\tstrlcpy(captr(), str, size);\n\tprintf(\"source %08X %08X '%s'\\n\", &captr, captr(), captr());\n\treturn captr;\n}\n\nvoid user(CAAutoFree<char> const& captr)\n{\n\t// passed by const reference. user can access the pointer but does not take ownership.\n\tprintf(\"user: %08X %08X '%s'\\n\", &captr, captr(), captr());\n}\n\nvoid sink(CAAutoFree<char> captr)\n{\n\t// passed by value. sink takes ownership and frees the pointer on return.\n\tprintf(\"sink: %08X %08X '%s'\\n\", &captr, captr(), captr());\n}\n\n\nint main (int argc, char * const argv[]) \n{\n\n\tCAAutoFree<char> captr(source());\n\tprintf(\"main captr A %08X %08X\\n\", &captr, captr());\n\tuser(captr);\n\tsink(captr);\n\tprintf(\"main captr B %08X %08X\\n\", &captr, captr());\n    return 0;\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CABitOperations.h",
    "content": "/*\n     File: CABitOperations.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef _CABitOperations_h_\n#define _CABitOperations_h_\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n    //#include <CoreServices/../Frameworks/CarbonCore.framework/Headers/MacTypes.h>\n\t#include <CoreFoundation/CFBase.h>\n#else\n//\t#include <MacTypes.h>\n\t#include \"CFBase.h\"\n#endif\n#include <TargetConditionals.h>\n\n// return whether a number is a power of two\ninline UInt32 IsPowerOfTwo(UInt32 x) \n{ \n\treturn (x & (x-1)) == 0;\n}\n\n// count the leading zeros in a word\n// Metrowerks Codewarrior. powerpc native count leading zeros instruction:\n// I think it's safe to remove this ...\n//#define CountLeadingZeroes(x)  ((int)__cntlzw((unsigned int)x))\n\ninline UInt32 CountLeadingZeroes(UInt32 arg)\n{\n// GNUC / LLVM have a builtin\n#if defined(__GNUC__) || defined(__llvm___)\n#if (TARGET_CPU_X86 || TARGET_CPU_X86_64)\n\tif (arg == 0) return 32;\n#endif\t// TARGET_CPU_X86 || TARGET_CPU_X86_64\n\treturn __builtin_clz(arg);\n#elif TARGET_OS_WIN32\n\tUInt32 tmp;\n\t__asm{\n\t\tbsr eax, arg\n\t\tmov ecx, 63\n\t\tcmovz eax, ecx\n\t\txor eax, 31\n\t\tmov tmp, eax\t// this moves the result in tmp to return.\n    }\n\treturn tmp;\n#else\n#error \"Unsupported architecture\"\n#endif\t// defined(__GNUC__)\n}\n// Alias (with different spelling)\n#define CountLeadingZeros CountLeadingZeroes\n\ninline UInt32 CountLeadingZeroesLong(UInt64 arg)\n{\n// GNUC / LLVM have a builtin\n#if defined(__GNUC__) || defined(__llvm___)\n#if (TARGET_CPU_X86 || TARGET_CPU_X86_64)\n\tif (arg == 0) return 64;\n#endif\t// TARGET_CPU_X86 || TARGET_CPU_X86_64\n\treturn __builtin_clzll(arg);\n#elif TARGET_OS_WIN32\n\tUInt32 x = CountLeadingZeroes((UInt32)(arg >> 32));\n\tif(x < 32)\n\t\treturn x;\n\telse\n\t\treturn 32+CountLeadingZeroes((UInt32)arg);\n#else\n#error \"Unsupported architecture\"\n#endif\t// defined(__GNUC__)\n}\n#define CountLeadingZerosLong CountLeadingZeroesLong\n\n// count trailing zeroes\ninline UInt32 CountTrailingZeroes(UInt32 x)\n{\n\treturn 32 - CountLeadingZeroes(~x & (x-1));\n}\n\n// count leading ones\ninline UInt32 CountLeadingOnes(UInt32 x)\n{\n\treturn CountLeadingZeroes(~x);\n}\n\n// count trailing ones\ninline UInt32 CountTrailingOnes(UInt32 x)\n{\n\treturn 32 - CountLeadingZeroes(x & (~x-1));\n}\n\n// number of bits required to represent x.\ninline UInt32 NumBits(UInt32 x)\n{\n\treturn 32 - CountLeadingZeroes(x);\n}\n\n// base 2 log of next power of two greater or equal to x\ninline UInt32 Log2Ceil(UInt32 x)\n{\n\treturn 32 - CountLeadingZeroes(x - 1);\n}\n\n// base 2 log of next power of two less or equal to x\ninline UInt32 Log2Floor(UInt32 x)\n{\n\treturn 32 - CountLeadingZeroes(x) - 1;\n}\n\n// next power of two greater or equal to x\ninline UInt32 NextPowerOfTwo(UInt32 x)\n{\n\treturn 1 << Log2Ceil(x);\n}\n\n// counting the one bits in a word\ninline UInt32 CountOnes(UInt32 x)\n{\n\t// secret magic algorithm for counting bits in a word.\n    x = x - ((x >> 1) & 0x55555555);\n    x = (x & 0x33333333) + ((x >> 2) & 0x33333333);\n    return (((x + (x >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24;\n}\n\n// counting the zero bits in a word\ninline UInt32 CountZeroes(UInt32 x)\n{\n\treturn CountOnes(~x);\n}\n\n// return the bit position (0..31) of the least significant bit\ninline UInt32 LSBitPos(UInt32 x)\n{\n\treturn CountTrailingZeroes(x & -(SInt32)x);\n}\n\n// isolate the least significant bit\ninline UInt32 LSBit(UInt32 x)\n{\n\treturn x & -(SInt32)x;\n}\n\n// return the bit position (0..31) of the most significant bit\ninline UInt32 MSBitPos(UInt32 x)\n{\n\treturn 31 - CountLeadingZeroes(x);\n}\n\n// isolate the most significant bit\ninline UInt32 MSBit(UInt32 x)\n{\n\treturn 1 << MSBitPos(x);\n}\n\n// Division optimized for power of 2 denominators\ninline UInt32 DivInt(UInt32 numerator, UInt32 denominator)\n{\n\tif(IsPowerOfTwo(denominator))\n\t\treturn numerator >> (31 - CountLeadingZeroes(denominator));\n\telse\n\t\treturn numerator/denominator;\n}\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CABool.h",
    "content": "/*\n     File: CABool.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CABool_h__)\n#define __CABool_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSystem Includes\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n\n//=============================================================================\n//\tCABool\n//\n//  This class implements a boolean value that has a third state that marks\n//  it as uninitialized. Accessing the value of an instance of this class that\n//  is uninitialized will throw an exception.\n//=============================================================================\n\nclass CABool\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tCABool() : mValue(-1) {}\n\t\t\t\t\tCABool(bool inValue) : mValue(inValue ? 1 : 0) {}\n\t\t\t\t\tCABool(const CABool& inValue) : mValue(inValue.mValue) {}\n\t\t\t\t\t~CABool() {}\n\t\t\t\t\t\n\tCABool&\t\t\toperator=(bool inValue) { mValue = inValue; return *this; }\n\tCABool&\t\t\toperator=(const CABool& inValue) { mValue = inValue.mValue; return *this; }\n\t\n\t\t\t\t\toperator bool() const { ThrowIf(mValue == -1, CAException('nope'), \"CABool: uninitialized\"); return mValue != 0; }\n\tbool\t\t\tIsInitialized() const { return mValue != -1; }\n\tvoid\t\t\tUninitialize() { mValue = -1; }\n\nprivate:\n\tSInt32\t\t\tmValue;\n\t\n\t\t\t\t\tCABool(const void*);\t// prevent accidental instantiation with a pointer via bool constructor\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CABufferList.cpp",
    "content": "/*\n     File: CABufferList.cpp\n Abstract: CABufferList.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CABufferList.h\"\n#include \"CAByteOrder.h\"\n\nvoid\t\tCABufferList::AllocateBuffers(UInt32 nBytes)\n{\n\tif (nBytes <= GetNumBytes()) return;\n\n\tif (mABL.mNumberBuffers > 1)\n\t\t// align successive buffers for Altivec and to take alternating\n\t\t// cache line hits by spacing them by odd multiples of 16\n\t\tnBytes = ((nBytes + 15) & ~15) | 16;\n\tUInt32 memorySize = nBytes * mABL.mNumberBuffers;\n\tByte *newMemory = new Byte[memorySize], *p = newMemory;\n\tmemset(newMemory, 0, memorySize);\t// get page faults now, not later\n\t\n\tAudioBuffer *buf = mABL.mBuffers;\n\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf) {\n\t\tif (buf->mData != NULL && buf->mDataByteSize > 0)\n\t\t\t// preserve existing buffer contents\n\t\t\tmemcpy(p, buf->mData, buf->mDataByteSize);\n\t\tbuf->mDataByteSize = nBytes;\n\t\tbuf->mData = p;\n\t\tp += nBytes;\n\t}\n\tByte *oldMemory = mBufferMemory;\n\tmBufferMemory = newMemory;\n\tmBufferCapacity = nBytes;\n\tdelete[] oldMemory;\n}\n\nvoid\t\tCABufferList::AllocateBuffersAndCopyFrom(UInt32 nBytes, CABufferList *inSrcList, CABufferList *inSetPtrList)\n{\n\tif (mABL.mNumberBuffers != inSrcList->mABL.mNumberBuffers) return;\n\tif (mABL.mNumberBuffers != inSetPtrList->mABL.mNumberBuffers) return;\n\tif (nBytes <= GetNumBytes()) {\n\t\tCopyAllFrom(inSrcList, inSetPtrList);\n\t\treturn;\n\t}\n\tinSetPtrList->VerifyNotTrashingOwnedBuffer();\n\tUInt32 fromByteSize = inSrcList->GetNumBytes();\n\t\n\tif (mABL.mNumberBuffers > 1)\n\t\t// align successive buffers for Altivec and to take alternating\n\t\t// cache line hits by spacing them by odd multiples of 16\n\t\tnBytes = ((nBytes + 15) & ~15) | 16;\n\tUInt32 memorySize = nBytes * mABL.mNumberBuffers;\n\tByte *newMemory = new Byte[memorySize], *p = newMemory;\n\tmemset(newMemory, 0, memorySize);\t// make buffer \"hot\"\n\t\n\tAudioBuffer *buf = mABL.mBuffers;\n\tAudioBuffer *ptrBuf = inSetPtrList->mABL.mBuffers;\n\tAudioBuffer *srcBuf = inSrcList->mABL.mBuffers;\n\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf, ++ptrBuf, ++srcBuf) {\n\t\tif (srcBuf->mData != NULL && srcBuf->mDataByteSize > 0)\n\t\t\t// preserve existing buffer contents\n\t\t\tmemmove(p, srcBuf->mData, srcBuf->mDataByteSize);\n\t\tbuf->mDataByteSize = nBytes;\n\t\tbuf->mData = p;\n\t\tptrBuf->mDataByteSize = srcBuf->mDataByteSize;\n\t\tptrBuf->mData = p;\n\t\tp += nBytes;\n\t}\n\tByte *oldMemory = mBufferMemory;\n\tmBufferMemory = newMemory;\n\tmBufferCapacity = nBytes;\n\tif (inSrcList != inSetPtrList)\n\t\tinSrcList->BytesConsumed(fromByteSize);\n\tdelete[] oldMemory;\n}\n\nvoid\t\tCABufferList::DeallocateBuffers()\n{\n\tAudioBuffer *buf = mABL.mBuffers;\n\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf) {\n\t\tbuf->mData = NULL;\n\t\tbuf->mDataByteSize = 0;\n\t}\n\tif (mBufferMemory != NULL) {\n\t\tdelete[] mBufferMemory;\n\t\tmBufferMemory = NULL;\n\t\tmBufferCapacity = 0;\n\t}\n    \n}\n\nstatic void show(const AudioBufferList &abl, int framesToPrint, int wordSize, const char *label, const char *fmtstr=NULL)\n{\n\tprintf(\"%s %p (%d fr%s):\\n\", label ? label : \"AudioBufferList\", &abl, framesToPrint, fmtstr ? fmtstr : \"\");\n\tconst AudioBuffer *buf = abl.mBuffers;\n\tfor (UInt32 i = 0; i < abl.mNumberBuffers; ++i, ++buf) {\n\t\tprintf(\"    [%2d] %5dbytes %dch @ %p\", (int)i, (int)buf->mDataByteSize, (int)buf->mNumberChannels, buf->mData);\n\t\tif (framesToPrint && buf->mData != NULL) {\n\t\t\tprintf(\":\");\n\t\t\tByte *p = (Byte *)buf->mData;\n\t\t\tfor (int j = framesToPrint * buf->mNumberChannels; --j >= 0; )\n\t\t\t\tswitch (wordSize) {\n\t\t\t\tcase 0:\t// native float\n\t\t\t\t\tprintf(\" %6.3f\", *(Float32 *)p);\n\t\t\t\t\tp += sizeof(Float32);\n\t\t\t\t\tbreak;\n\t\t\t\t// positive: big endian\n\t\t\t\tcase 1:\n\t\t\t\tcase -1:\n\t\t\t\t\tprintf(\" %02X\", *p);\n\t\t\t\t\tp += 1;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tprintf(\" %04X\", CFSwapInt16BigToHost(*(UInt16 *)p));\n\t\t\t\t\tp += 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tprintf(\" %06X\", (p[0] << 16) | (p[1] << 8) | p[2]);\n\t\t\t\t\tp += 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tprintf(\" %08X\", (unsigned int)CFSwapInt32BigToHost(*(UInt32 *)p));\n\t\t\t\t\tp += 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 10:\n\t\t\t\t\tprintf(\" %6.3f\", CASwapFloat32BigToHost(*(Float32 *)p));\n\t\t\t\t\tp += sizeof(Float32);\n\t\t\t\t\tbreak;\n\t\t\t\tcase -2:\n\t\t\t\t\tprintf(\" %04X\", CFSwapInt16LittleToHost(*(UInt16 *)p));\n\t\t\t\t\tp += 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase -3:\n\t\t\t\t\tprintf(\" %06X\", (p[2] << 16) | (p[1] << 8) | p[0]);\n\t\t\t\t\tp += 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase -4:\n\t\t\t\t\tprintf(\" %08X\", (unsigned int)CFSwapInt32LittleToHost(*(UInt32 *)p));\n\t\t\t\t\tp += 4;\n\t\t\t\t\tbreak;\n\t\t\t\tcase -10:\n\t\t\t\t\tprintf(\" %6.3f\", CASwapFloat32LittleToHost(*(Float32 *)p));\n\t\t\t\t\tp += sizeof(Float32);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t}\n\t\tprintf(\"\\n\");\n\t}\n}\n\nvoid CAShowAudioBufferList(const AudioBufferList &abl, int framesToPrint, const AudioStreamBasicDescription &asbd, const char *label)\n{\n\tCAStreamBasicDescription fmt(asbd);\n\tint wordSize = 1;\n\tchar fmtstr[80] = { 0 };\n\t\n\tif (fmt.mFormatID == kAudioFormatLinearPCM) {\n\t\tif (fmt.mFormatFlags & kLinearPCMFormatFlagIsFloat) {\n\t\t\tif (fmt.mBitsPerChannel == 32) {\n\t\t\t\tif (fmt.mFormatFlags & kLinearPCMFormatFlagIsBigEndian) {\n\t\t\t\t\twordSize = 10;\n\t\t\t\t\tstrlcpy(fmtstr, \", BEF\", sizeof(fmtstr));\n\t\t\t\t} else {\n\t\t\t\t\twordSize = -10;\n\t\t\t\t\tstrlcpy(fmtstr, \", LEF\", sizeof(fmtstr));\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\twordSize = fmt.SampleWordSize();\n\t\t\tif (wordSize > 0) {\n\t\t\t\tint fracbits = (asbd.mFormatFlags & kLinearPCMFormatFlagsSampleFractionMask) >> kLinearPCMFormatFlagsSampleFractionShift;\n\t\t\t\tif (fracbits > 0)\n\t\t\t\t\tsnprintf(fmtstr, sizeof(fmtstr), \", %d.%d-bit\", (int)asbd.mBitsPerChannel - fracbits, fracbits);\n\t\t\t\telse\n\t\t\t\t\tsnprintf(fmtstr, sizeof(fmtstr), \", %d-bit\", (int)asbd.mBitsPerChannel);\n\n\t\t\t\tif (!(fmt.mFormatFlags & kLinearPCMFormatFlagIsBigEndian)) {\n\t\t\t\t\twordSize = -wordSize;\n\t\t\t\t\tstrlcat(fmtstr, \" LEI\", sizeof(fmtstr));\n\t\t\t\t} else {\n\t\t\t\t\tstrlcat(fmtstr, \" BEI\", sizeof(fmtstr));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tshow(abl, framesToPrint, wordSize, label, fmtstr);\n}\n\nvoid CAShowAudioBufferList(const AudioBufferList &abl, int framesToPrint, int wordSize, const char *label)\n{\n\tshow(abl, framesToPrint, wordSize, label);\n}\n\nextern \"C\" void CAShowAudioBufferList(const AudioBufferList *abl, int framesToPrint, int wordSize)\n{\n\tshow(*abl, framesToPrint, wordSize, NULL);\n}\n\n// if the return result is odd, there was a null buffer.\nextern \"C\" int CrashIfClientProvidedBogusAudioBufferList(const AudioBufferList *abl, bool nullok)\n{\n\tconst AudioBuffer *buf = abl->mBuffers, *bufend = buf + abl->mNumberBuffers;\n\tint sum = 0;\t// defeat attempts by the compiler to optimize away the code that touches the buffers\n\tint anyNull = 0;\n\tfor ( ; buf < bufend; ++buf) {\n\t\tconst int *p = (const int *)buf->mData;\n\t\tif (p == NULL) {\n\t\t\tanyNull = 1;\n\t\t\tif (nullok) continue;\n\t\t}\n\t\tunsigned datasize = buf->mDataByteSize;\n\t\tif (datasize >= sizeof(int) && p != NULL) {\n\t\t\tsum += p[0];\n\t\t\tsum += p[datasize / sizeof(int) - 1];\n\t\t}\n\t}\n\treturn anyNull | (sum & ~1);\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CABufferList.h",
    "content": "/*\n     File: CABufferList.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CABufferList_h__\n#define __CABufferList_h__\n\n#include <stddef.h>\n#include \"CAStreamBasicDescription.h\"\n#include \"CAXException.h\"\n\nvoid CAShowAudioBufferList(const AudioBufferList &abl, int framesToPrint, const AudioStreamBasicDescription &fmt, const char *label=NULL);\nvoid CAShowAudioBufferList(const AudioBufferList &abl, int framesToPrint, int wordSize, const char *label=NULL);\nextern \"C\" void CAShowAudioBufferList(const AudioBufferList *abl, int framesToPrint, int wordSize);\nextern \"C\" int CrashIfClientProvidedBogusAudioBufferList(const AudioBufferList *abl, bool nullOK=false);\n\n/* ____________________________________________________________________________\n//\tCABufferList - variable length buffer list\n\n\tThis class is designed for use in non-simplistic cases. For AudioUnits, AUBufferList\n\tis preferred.\n\t\n\tCABufferList can be used in one of two ways:\n\t\t- as mutable pointers into non-owned memory\n\t\t- as an immutable array of buffers (owns its own memory).\n\n \tAll buffers are assumed to have the same format (number of channels, word size), so that\n\t\twe can assume their mDataByteSizes are all the same.\n____________________________________________________________________________ */\nclass CABufferList {\npublic:\n\tvoid *\toperator new(size_t /*size*/, int nBuffers) {\n\t\t\t\treturn ::operator new(sizeof(CABufferList) + (nBuffers-1) * sizeof(AudioBuffer));\n\t\t\t}\n\tstatic CABufferList *\tNew(const char *name, const CAStreamBasicDescription &format)\n\t{\n\t\tUInt32 numBuffers = format.NumberChannelStreams(), channelsPerBuffer = format.NumberInterleavedChannels();\n\t\treturn new(numBuffers) CABufferList(name, numBuffers, channelsPerBuffer);\n\t}\n\tstatic CABufferList *\tNew(const CAStreamBasicDescription &format) { return New(\"\", format); }\n\n\tstatic CABufferList *\tNew(UInt32 numBuffers, UInt32 channelsPerBuffer, const char *name=\"\") {\n\t\treturn new(numBuffers) CABufferList(name, numBuffers, channelsPerBuffer);\n\t}\n\nprotected:\n\tCABufferList(const char *name, UInt32 numBuffers, UInt32 channelsPerBuffer) :\n\t\tmName(name),\n\t\tmBufferMemory(NULL),\n\t\tmBufferCapacity(0)\n\t{\n\t\t//XAssert(numBuffers > 0 /*&& channelsPerBuffer > 0*/);\n\t\tmABL.mNumberBuffers = numBuffers;\n\t\tAudioBuffer *buf = mABL.mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf) {\n\t\t\tbuf->mNumberChannels = channelsPerBuffer;\n\t\t\tbuf->mDataByteSize = 0;\n\t\t\tbuf->mData = NULL;\n\t\t}\n\t}\n\npublic:\n\t~CABufferList()\n\t{\n\t\tif (mBufferMemory)\n\t\t\tdelete[] mBufferMemory;\n\t}\n\t\n\tconst char *\t\t\t\tName() { return mName; }\n\t\n\tconst AudioBufferList &\t\tGetBufferList() const { return mABL; }\n\t\n\tAudioBufferList &\t\t\tGetModifiableBufferList() { return _GetBufferList(); }\n\t\n\tUInt32\t\tGetNumberBuffers() const { return mABL.mNumberBuffers; }\n\t\n\tUInt32\t\tGetNumBytes() const\n\t{\n\t\treturn mABL.mBuffers[0].mDataByteSize;\n\t}\n\t\n\tvoid\t\tSetBytes(UInt32 nBytes, void *data)\n\t{\n\t\tVerifyNotTrashingOwnedBuffer();\n\t\tXAssert(mABL.mNumberBuffers == 1);\n\t\tmABL.mBuffers[0].mDataByteSize = nBytes;\n\t\tmABL.mBuffers[0].mData = data;\n\t}\n\t\n\tvoid\t\tCopyAllFrom(CABufferList *srcbl, CABufferList *ptrbl)\n\t\t\t\t\t// copies bytes from srcbl\n\t\t\t\t\t// make ptrbl reflect the length copied\n\t\t\t\t\t// note that srcbl may be same as ptrbl!\n\t{\n\t\t// Note that this buffer *can* own memory and its pointers/lengths are not\n\t\t// altered; only its buffer contents, which are copied from srcbl.\n\t\t// The pointers/lengths in ptrbl are updated to reflect the addresses/lengths\n\t\t// of the copied data, and srcbl's contents are consumed.\n\t\tptrbl->VerifyNotTrashingOwnedBuffer();\n\t\tUInt32 nBytes = srcbl->GetNumBytes();\n\t\tAudioBuffer *mybuf = mABL.mBuffers, *srcbuf = srcbl->mABL.mBuffers,\n\t\t\t\t\t*ptrbuf = ptrbl->mABL.mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++mybuf, ++srcbuf, ++ptrbuf) {\n\t\t\tmemmove(mybuf->mData, srcbuf->mData, srcbuf->mDataByteSize);\n\t\t\tptrbuf->mData = mybuf->mData;\n\t\t\tptrbuf->mDataByteSize = srcbuf->mDataByteSize;\n\t\t}\n\t\tif (srcbl != ptrbl)\n\t\t\tsrcbl->BytesConsumed(nBytes);\n\t}\n\t\n\t// copies data from another buffer list.\n\tvoid\t\tCopyDataFrom(const AudioBufferList &other)\n\t{\n\t\tfor (unsigned i = 0; i < other.mNumberBuffers; ++i) {\n\t\t\tXAssert(mBufferCapacity == 0 || other.mBuffers[i].mDataByteSize <= mBufferCapacity);\n\t\t\tmemcpy(mABL.mBuffers[i].mData, other.mBuffers[i].mData, \n\t\t\t\tmABL.mBuffers[i].mDataByteSize = other.mBuffers[i].mDataByteSize);\n\t\t}\n\t}\n\t\n\tvoid\t\tAppendFrom(CABufferList *blp, UInt32 nBytes)\n\t{\n\t\t// this may mutate a buffer that owns memory.\n\t\tAudioBuffer *mybuf = mABL.mBuffers, *srcbuf = blp->mABL.mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++mybuf, ++srcbuf) {\n\t\t\tXAssert(nBytes <= srcbuf->mDataByteSize);\n\t\t\tXAssert(mBufferCapacity == 0 || mybuf->mDataByteSize + nBytes <= mBufferCapacity);\n\t\t\tmemcpy((Byte *)mybuf->mData + mybuf->mDataByteSize, srcbuf->mData, nBytes);\n\t\t\tmybuf->mDataByteSize += nBytes;\n\t\t}\n\t\tblp->BytesConsumed(nBytes);\n\t}\n\t\n\tvoid\t\tPadWithZeroes(UInt32 desiredBufferSize)\n\t\t\t\t\t// for cases where an algorithm (e.g. SRC) requires some\n\t\t\t\t\t// padding to create silence following end-of-file\n\t{\n\t\tXAssert(mBufferCapacity == 0 || desiredBufferSize <= mBufferCapacity);\n\t\tif (GetNumBytes() > desiredBufferSize) return;\n\t\tAudioBuffer *buf = mABL.mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf) {\n\t\t\tmemset((Byte *)buf->mData + buf->mDataByteSize, 0, desiredBufferSize - buf->mDataByteSize);\n\t\t\tbuf->mDataByteSize = desiredBufferSize;\n\t\t}\n\t}\n\t\n\tvoid\t\tSetToZeroes(UInt32 nBytes)\n\t{\n\t\tXAssert(mBufferCapacity == 0 || nBytes <= mBufferCapacity);\n\t\tAudioBuffer *buf = mABL.mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf) {\n\t\t\tmemset((Byte *)buf->mData, 0, nBytes);\n\t\t\tbuf->mDataByteSize = nBytes;\n\t\t}\n\t}\n\t\n\tvoid\t\tReset()\n\t{\n\t\tDeallocateBuffers();\n\t}\n\t\n\tBoolean\t\tSameDataAs(const CABufferList* anotherBufferList)\n\t{\n\t\t// check to see if two buffer lists point to the same memory.\n\t\tif (mABL.mNumberBuffers != anotherBufferList->mABL.mNumberBuffers) return false;\n\t\t\n\t\tfor (UInt32 i = 0; i < mABL.mNumberBuffers; ++i) {\n\t\t\tif (mABL.mBuffers[i].mData != anotherBufferList->mABL.mBuffers[i].mData) return false;\n\t\t}\n\t\treturn true;\n\t}\n\t\n\tvoid\t\tBytesConsumed(UInt32 nBytes)\n\t\t\t\t\t// advance buffer pointers, decrease buffer sizes\n\t{\n\t\tVerifyNotTrashingOwnedBuffer();\n\t\tAudioBuffer *buf = mABL.mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf) {\n\t\t\tXAssert(nBytes <= buf->mDataByteSize);\n\t\t\tbuf->mData = (Byte *)buf->mData + nBytes;\n\t\t\tbuf->mDataByteSize -= nBytes;\n\t\t}\n\t}\n\t\n\tvoid\t\tSetFrom(const AudioBufferList *abl)\n\t{\n\t\tVerifyNotTrashingOwnedBuffer();\n\t\tmemcpy(&_GetBufferList(), abl, (char *)&abl->mBuffers[abl->mNumberBuffers] - (char *)abl);\n\t}\n\t\n\tvoid\t\tSetFrom(const CABufferList *blp)\n\t{\n\t\tSetFrom(&blp->GetBufferList());\n\t}\n\t\n\tvoid\t\tSetFrom(const AudioBufferList *abl, UInt32 nBytes)\n\t{\n\t\tVerifyNotTrashingOwnedBuffer();\n\t\tAudioBuffer *mybuf = mABL.mBuffers;\n\t\tconst AudioBuffer *srcbuf = abl->mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++mybuf, ++srcbuf) {\n\t\t\tmybuf->mNumberChannels = srcbuf->mNumberChannels;\n\t\t\tmybuf->mDataByteSize = nBytes;\n\t\t\tmybuf->mData = srcbuf->mData;\n\t\t}\n\t}\n\t\n\tvoid\t\tSetFrom(const CABufferList *blp, UInt32 nBytes)\n\t{\n\t\tSetFrom(&blp->GetBufferList(), nBytes);\n\t}\n\t\n\tAudioBufferList *\tToAudioBufferList(AudioBufferList *abl) const\n\t{\n\t\tmemcpy(abl, &GetBufferList(), (char *)&abl->mBuffers[mABL.mNumberBuffers] - (char *)abl);\n\t\treturn abl;\n\t}\n\t\n\tvoid\t\tAllocateBuffers(UInt32 nBytes);\n\tvoid\t\tAllocateBuffersAndCopyFrom(UInt32 nBytes, CABufferList *inCopyFromList, CABufferList *inSetPtrList);\n\t\n\tvoid\t\tDeallocateBuffers();\n\t\n\tvoid\t\tUseExternalBuffer(Byte *ptr, UInt32 nBytes);\n    \n\tvoid\t\tAdvanceBufferPointers(UInt32 nBytes) // $$$ ReducingSize\n\t\t\t\t\t// this is for bufferlists that function simply as\n\t\t\t\t\t// an array of pointers into another bufferlist, being advanced,\n\t\t\t\t\t// as in RenderOutput implementations\n\t{\n\t\tVerifyNotTrashingOwnedBuffer();\n\t\tAudioBuffer *buf = mABL.mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf) {\n\t\t\tbuf->mData = (Byte *)buf->mData + nBytes;\n\t\t\tbuf->mDataByteSize -= nBytes;\n\t\t}\n\t}\n\t\n\tvoid\t\tSetNumBytes(UInt32 nBytes)\n\t{\n\t\tXAssert(mBufferCapacity == 0 || nBytes <= mBufferCapacity);\n\t\tAudioBuffer *buf = mABL.mBuffers;\n\t\tfor (UInt32 i = mABL.mNumberBuffers; i--; ++buf)\n\t\t\tbuf->mDataByteSize = nBytes;\n\t}\n\n\tvoid\t\tPrint(const char *label=NULL, int nframes=0, int wordSize=0) const\n\t{\n\t\tif (label == NULL)\n\t\t\tlabel = mName;\n\t\tprintf(\"%s - \", label);\n\t\tCAShowAudioBufferList(&GetBufferList(), nframes, wordSize);\n\t\tif (mBufferMemory)\n\t\t\tprintf(\"  owned memory @ 0x%p:\\n\", mBufferMemory);\n\t}\n\t\n\tUInt32\t\tGetCapacityBytes() const { return mBufferCapacity; }\n\t\n\ttemplate <typename T>\n\tT*\t\t\tGetData(UInt32 inBuffer) {\n\t\treturn static_cast<T*>(mABL.mBuffers[inBuffer].mData);\n\t}\n\nprotected:\n\tAudioBufferList &\t_GetBufferList() { return mABL; }\t// use with care\n\t\t\t\t\t\t\t// if we make this public, then we lose ability to call VerifyNotTrashingOwnedBuffer\n\tvoid\t\t\t\tVerifyNotTrashingOwnedBuffer()\n\t{\n\t\t// This needs to be called from places where we are modifying the buffer pointers.\n\t\t// It's an error to modify the buffer pointers or lengths if we own the buffer memory.\n\t\tXAssert(mBufferMemory == NULL);\n\t}\n\n\tconst char *\t\t\t\t\t\tmName;\t// for debugging\n\tByte *\t\t\t\t\t\t\t\tmBufferMemory;\n\tUInt32\t\t\t\t\t\t\t\tmBufferCapacity;\t// max mDataByteSize of each buffer\n\tAudioBufferList\t\t\t\t\t\tmABL;\n\t// don't add anything here\n};\n\n#endif // __CABufferList_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CABundleLocker.cpp",
    "content": "/*\n     File: CABundleLocker.cpp\n Abstract: CABundleLocker.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CABundleLocker.h\"\n#include <pthread.h>\n\n/*\nsome bundle operations are not thread safe, notably CFCopyLocalizedStringFromTableInBundle\n*/\n\nstatic pthread_mutex_t sCABundleLocker = PTHREAD_MUTEX_INITIALIZER;\n\n#define RECURSIVE_LOCK 0\n\n#if RECURSIVE_LOCK\nstatic pthread_once_t sOnce = PTHREAD_ONCE_INIT;\n\nstatic void InitCABundleLocker()\n{\n\t// have to do this because OS X lacks PTHREAD_MUTEX_RECURSIVE_INITIALIZER_NP\n\tpthread_mutexattr_t attr;\n\tpthread_mutexattr_init(&attr);\n\tpthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);\n\tpthread_mutex_init(&sCABundleLocker, &attr);\n\tpthread_mutexattr_destroy(&attr);\n}\n#endif\n\nCABundleLocker::CABundleLocker()\n{\n#if RECURSIVE_LOCK\n\tpthread_once(&sOnce, InitCABundleLocker);\n#endif\n\tpthread_mutex_lock(&sCABundleLocker);\n}\n\nCABundleLocker::~CABundleLocker()\n{\n\tpthread_mutex_unlock(&sCABundleLocker);\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CABundleLocker.h",
    "content": "/*\n     File: CABundleLocker.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef _CABundleLocker_h_\n#define _CABundleLocker_h_\n\n#include <TargetConditionals.h>\n \n/*\nsome bundle operations are not thread safe, notably CFCopyLocalizedStringFromTableInBundle\n*/\n\nclass CABundleLocker\n{\npublic:\n\n#if TARGET_OS_MAC\n\tCABundleLocker();\n\t~CABundleLocker();\n#else\n\tCABundleLocker() {}\n\t~CABundleLocker() {}\n#endif\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAByteOrder.h",
    "content": "/*\n     File: CAByteOrder.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAByteOrder_h__)\n#define __CAByteOrder_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include \"CoreFoundation.h\"\n#endif\n\n\n#if defined(__cplusplus)\nextern \"C\" {\n#endif\n\nCF_INLINE Float32 CASwapFloat32 (Float32 arg) {\n\tunion {\n\t\tFloat32 f;\n\t\tUInt32 i;\n\t} flip;\n\n\tflip.f = arg;\n\tflip.i = CFSwapInt32 (flip.i);\n\t\n\treturn flip.f;\n}\n\nCF_INLINE Float64 CASwapFloat64 (Float64 arg) {\n\tunion {\n\t\tFloat64 f;\n\t\tUInt64 i;\n\t} flip;\n\n\tflip.f = arg;\n\tflip.i = CFSwapInt64 (flip.i);\n\t\n\treturn flip.f;\n}\n\n#pragma mark -Flippers\n\nCF_INLINE Float32 CASwapFloat32BigToHost(Float32 arg) {\n#if defined(__BIG_ENDIAN__)\n    return arg;\n#else\n\treturn CASwapFloat32(arg);\n#endif\n}\n\nCF_INLINE Float64 CASwapFloat64BigToHost(Float64 arg) {\n#if defined(__BIG_ENDIAN__)\n    return arg;\n#else\n\treturn CASwapFloat64(arg);\n#endif\n}\n\nCF_INLINE Float32 CASwapFloat32HostToBig(Float32 arg) {\n#if defined(__BIG_ENDIAN__)\n    return arg;\n#else\n\treturn CASwapFloat32(arg);\n#endif\n}\n\nCF_INLINE Float64 CASwapFloat64HostToBig(Float64 arg) {\n#if defined(__BIG_ENDIAN__)\n    return arg;\n#else\n\treturn CASwapFloat64(arg);\n#endif\n}\n\nCF_INLINE Float32 CASwapFloat32LittleToHost(Float32 arg) {\n#if defined(__LITTLE_ENDIAN__)\n    return arg;\n#else\n\treturn CASwapFloat32(arg);\n#endif\n}\n\nCF_INLINE Float64 CASwapFloat64LittleToHost(Float64 arg) {\n#if defined(__LITTLE_ENDIAN__)\n    return arg;\n#else\n\treturn CASwapFloat64(arg);\n#endif\n}\n\nCF_INLINE Float32 CASwapFloat32HostToLittle(Float32 arg) {\n#if defined(__LITTLE_ENDIAN__)\n    return arg;\n#else\n\treturn CASwapFloat32(arg);\n#endif\n}\n\nCF_INLINE Float64 CASwapFloat64HostToLittle(Float64 arg) {\n#if defined(__LITTLE_ENDIAN__)\n    return arg;\n#else\n\treturn CASwapFloat64(arg);\n#endif\n}\n\n\n#if defined(__cplusplus)\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFArray.cpp",
    "content": "/*\n     File: CACFArray.cpp\n Abstract: CACFArray.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSelf Include\n#include \"CACFArray.h\"\n\n//\tPublicUtility Includes\n#include \"CACFDictionary.h\"\n#include \"CACFNumber.h\"\n#include \"CACFString.h\"\n\n//=============================================================================\n//\tCACFArray\n//=============================================================================\n\nbool\tCACFArray::HasItem(const void* inItem) const\n{\n\tbool theAnswer = false;\n\tif(mCFArray != NULL)\n\t{\n\t\tCFRange theRange = { 0, CFArrayGetCount(mCFArray)};\n\t\ttheAnswer = CFArrayContainsValue(mCFArray, theRange, inItem);\n\t}\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetIndexOfItem(const void* inItem, UInt32& outIndex) const\n{\n\tbool theAnswer = false;\n\toutIndex = 0;\n\tif(mCFArray != NULL)\n\t{\n\t\tCFRange theRange = { 0, CFArrayGetCount(mCFArray)};\n\t\tCFIndex theIndex = CFArrayGetFirstIndexOfValue(mCFArray, theRange, inItem);\n\t\tif(theIndex != -1)\n\t\t{\n\t\t\ttheAnswer = true;\n\t\t\toutIndex = ToUInt32(theIndex);\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetBool(UInt32 inIndex, bool& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inIndex, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFBooleanGetTypeID()))\n\t\t{\n\t\t\toutValue = CFBooleanGetValue(static_cast<CFBooleanRef>(theValue));\n\t\t\ttheAnswer = true;\n\t\t}\n\t\telse if((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tSInt32 theNumericValue = 0;\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &theNumericValue);\n\t\t\toutValue = theNumericValue != 0;\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetSInt32(UInt32 inIndex, SInt32& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theItem), kCFNumberSInt32Type, &outItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetUInt32(UInt32 inIndex, UInt32& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theItem), kCFNumberSInt32Type, &outItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetSInt64(UInt32 inIndex, SInt64& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theItem), kCFNumberSInt64Type, &outItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetUInt64(UInt32 inIndex, UInt64& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theItem), kCFNumberSInt64Type, &outItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetFloat32(UInt32 inIndex, Float32& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theItem), kCFNumberFloat32Type, &outItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetFloat64(UInt32 inIndex, Float64& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theItem), kCFNumberFloat64Type, &outItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::Get4CC(UInt32 inIndex, UInt32& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inIndex, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &outValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t\telse if((theValue != NULL) && (CFGetTypeID(theValue) == CFStringGetTypeID()))\n\t\t{\n\t\t\tCFStringRef theString = static_cast<CFStringRef>(theValue);\n\t\t\tif(CFStringGetLength(theString) == 4)\n\t\t\t{\n\t\t\t\tchar theCString[5];\n\t\t\t\tCFStringGetCString(theString, theCString, 5, kCFStringEncodingASCII);\n\t\t\t\toutValue = CFSwapInt32BigToHost(*reinterpret_cast<UInt32*>(theCString));\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetString(UInt32 inIndex, CFStringRef& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFStringGetTypeID()))\n\t\t{\n\t\t\toutItem = static_cast<CFStringRef>(theItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetArray(UInt32 inIndex, CFArrayRef& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFArrayGetTypeID()))\n\t\t{\n\t\t\toutItem = static_cast<CFArrayRef>(theItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetDictionary(UInt32 inIndex, CFDictionaryRef& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFDictionaryGetTypeID()))\n\t\t{\n\t\t\toutItem = static_cast<CFDictionaryRef>(theItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetData(UInt32 inIndex, CFDataRef& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFDataGetTypeID()))\n\t\t{\n\t\t\toutItem = static_cast<CFDataRef>(theItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetUUID(UInt32 inIndex, CFUUIDRef& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFUUIDGetTypeID()))\n\t\t{\n\t\t\toutItem = static_cast<CFUUIDRef>(theItem);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::GetCFType(UInt32 inIndex, CFTypeRef& outItem) const\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && (inIndex < GetNumberItems()))\n\t{\n\t\toutItem = CFArrayGetValueAtIndex(mCFArray, static_cast<CFIndex>(inIndex));\n\t\ttheAnswer = outItem != NULL;\n\t}\n\t\n\treturn theAnswer;\n}\n\nvoid\tCACFArray::GetCACFString(UInt32 inIndex, CACFString& outItem) const\n{\n\toutItem = static_cast<CFStringRef>(NULL);\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFStringGetTypeID()))\n\t\t{\n\t\t\toutItem = static_cast<CFStringRef>(theItem);\n\t\t}\n\t}\n}\n\nvoid\tCACFArray::GetCACFArray(UInt32 inIndex, CACFArray& outItem) const\n{\n\toutItem = static_cast<CFArrayRef>(NULL);\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFArrayGetTypeID()))\n\t\t{\n\t\t\toutItem = static_cast<CFArrayRef>(theItem);\n\t\t}\n\t}\n}\n\nvoid\tCACFArray::GetCACFDictionary(UInt32 inIndex, CACFDictionary& outItem) const\n{\n\toutItem = static_cast<CFDictionaryRef>(NULL);\n\tCFTypeRef theItem = NULL;\n\tif(GetCFType(inIndex, theItem))\n\t{\n\t\tif((theItem != NULL) && (CFGetTypeID(theItem) == CFDictionaryGetTypeID()))\n\t\t{\n\t\t\toutItem = static_cast<CFDictionaryRef>(theItem);\n\t\t}\n\t}\n}\n\nbool\tCACFArray::AppendBool(bool inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFBoolean theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = AppendCFType(theItem.GetCFBoolean());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::AppendSInt32(SInt32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = AppendCFType(theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::AppendUInt32(UInt32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = AppendCFType(theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::AppendSInt64(SInt64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = AppendCFType(theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::AppendUInt64(UInt64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = AppendCFType(theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::AppendFloat32(Float32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = AppendCFType(theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::AppendFloat64(Float64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = AppendCFType(theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::AppendString(const CFStringRef inItem)\n{\n\treturn AppendCFType(inItem);\n}\n\nbool\tCACFArray::AppendArray(const CFArrayRef inItem)\n{\n\treturn AppendCFType(inItem);\n}\n\nbool\tCACFArray::AppendDictionary(const CFDictionaryRef inItem)\n{\n\treturn AppendCFType(inItem);\n}\n\nbool\tCACFArray::AppendData(const CFDataRef inItem)\n{\n\treturn AppendCFType(inItem);\n}\n\nbool\tCACFArray::AppendCFType(const CFTypeRef inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCFArrayAppendValue(mCFArray, inItem);\n\t\ttheAnswer = true;\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::InsertBool(UInt32 inIndex, bool inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFBoolean theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = InsertCFType(inIndex, theItem.GetCFBoolean());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::InsertSInt32(UInt32 inIndex, SInt32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = InsertCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::InsertUInt32(UInt32 inIndex, UInt32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = InsertCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::InsertSInt64(UInt32 inIndex, SInt64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = InsertCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::InsertUInt64(UInt32 inIndex, UInt64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = InsertCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::InsertFloat32(UInt32 inIndex, Float32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = InsertCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::InsertFloat64(UInt32 inIndex, Float64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = InsertCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::InsertString(UInt32 inIndex, const CFStringRef inItem)\n{\n\treturn InsertCFType(inIndex, inItem);\n}\n\nbool\tCACFArray::InsertArray(UInt32 inIndex, const CFArrayRef inItem)\n{\n\treturn InsertCFType(inIndex, inItem);\n}\n\nbool\tCACFArray::InsertDictionary(UInt32 inIndex, const CFDictionaryRef inItem)\n{\n\treturn InsertCFType(inIndex, inItem);\n}\n\nbool\tCACFArray::InsertData(UInt32 inIndex, const CFDataRef inItem)\n{\n\treturn InsertCFType(inIndex, inItem);\n}\n\nbool\tCACFArray::InsertCFType(UInt32 inIndex, const CFTypeRef inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable)\n\t{\n\t\tif(inIndex < GetNumberItems())\n\t\t{\n\t\t\tCFArrayInsertValueAtIndex(mCFArray, static_cast<CFIndex>(inIndex), inItem);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tCFArrayAppendValue(mCFArray, inItem);\n\t\t}\n\t\ttheAnswer = true;\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::SetBool(UInt32 inIndex, bool inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable && (inIndex <= GetNumberItems()))\n\t{\n\t\tCACFBoolean theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = SetCFType(inIndex, theItem.GetCFBoolean());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::SetSInt32(UInt32 inIndex, SInt32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable && (inIndex <= GetNumberItems()))\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = SetCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::SetUInt32(UInt32 inIndex, UInt32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable && (inIndex <= GetNumberItems()))\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = SetCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::SetSInt64(UInt32 inIndex, SInt64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable && (inIndex <= GetNumberItems()))\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = SetCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::SetUInt64(UInt32 inIndex, UInt64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable && (inIndex <= GetNumberItems()))\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = SetCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::SetFloat32(UInt32 inIndex, Float32 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable && (inIndex <= GetNumberItems()))\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = SetCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::SetFloat64(UInt32 inIndex, Float64 inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable && (inIndex <= GetNumberItems()))\n\t{\n\t\tCACFNumber theItem(inItem);\n\t\tif(theItem.IsValid())\n\t\t{\n\t\t\ttheAnswer = SetCFType(inIndex, theItem.GetCFNumber());\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFArray::SetString(UInt32 inIndex, const CFStringRef inItem)\n{\n\treturn SetCFType(inIndex, inItem);\n}\n\nbool\tCACFArray::SetArray(UInt32 inIndex, const CFArrayRef inItem)\n{\n\treturn SetCFType(inIndex, inItem);\n}\n\nbool\tCACFArray::SetDictionary(UInt32 inIndex, const CFDictionaryRef inItem)\n{\n\treturn SetCFType(inIndex, inItem);\n}\n\nbool\tCACFArray::SetData(UInt32 inIndex, const CFDataRef inItem)\n{\n\treturn SetCFType(inIndex, inItem);\n}\n\nbool\tCACFArray::SetCFType(UInt32 inIndex, const CFTypeRef inItem)\n{\n\tbool theAnswer = false;\n\t\n\tif((mCFArray != NULL) && mMutable && (inIndex <= GetNumberItems()))\n\t{\n\t\tCFArraySetValueAtIndex(mCFArray, static_cast<CFIndex>(inIndex), inItem);\n\t\ttheAnswer = true;\n\t}\n\t\n\treturn theAnswer;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFArray.h",
    "content": "/*\n     File: CACFArray.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFArray_h__)\n#define __CACFArray_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include <CoreAudioTypes.h>\n\t#include <CoreFoundation.h>\n#endif\n\n#include \"CADebugMacros.h\"\n\n//=============================================================================\n//\tTypes\n//=============================================================================\n\nclass\tCACFDictionary;\nclass\tCACFString;\n\n//=============================================================================\n//\tCACFArray\n//=============================================================================\n\nclass CACFArray\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCACFArray()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: mCFArray(CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks)), mRelease(true), mMutable(true) {}\n\texplicit\t\t\tCACFArray(bool inRelease)\t\t\t\t\t\t\t\t\t\t\t\t\t: mCFArray(CFArrayCreateMutable(NULL, 0, &kCFTypeArrayCallBacks)), mRelease(inRelease), mMutable(true) {}\n\t\t\t\t\t\tCACFArray(UInt32 inMaxNumberItems, bool inRelease)\t\t\t\t\t\t\t: mCFArray(CFArrayCreateMutable(NULL, static_cast<CFIndex>(inMaxNumberItems), &kCFTypeArrayCallBacks)), mRelease(inRelease), mMutable(true) {}\n\t\t\t\t\t\tCACFArray(CFArrayRef inCFArray, bool inRelease)\t\t\t\t\t\t\t\t: mCFArray(const_cast<CFMutableArrayRef>(inCFArray)), mRelease(inRelease), mMutable(false) {}\n\t\t\t\t\t\tCACFArray(CFMutableArrayRef inCFArray, bool inRelease)\t\t\t\t\t\t: mCFArray(inCFArray), mRelease(inRelease), mMutable(true) {}\n\t\t\t\t\t\tCACFArray(const CACFArray& inArray)\t\t\t\t\t\t\t\t\t\t\t: mCFArray(inArray.mCFArray), mRelease(inArray.mRelease), mMutable(inArray.mMutable) { Retain(); }\n\tCACFArray&\t\t\toperator=(const CACFArray& inArray)\t\t\t\t\t\t\t\t\t\t\t{ Release(); mCFArray = inArray.mCFArray; mRelease = inArray.mRelease; mMutable = inArray.mMutable; Retain(); return *this; }\n\tCACFArray&\t\t\toperator=(CFArrayRef inCFArray)\t\t\t\t\t\t\t\t\t\t\t\t{ Release(); mCFArray = const_cast<CFMutableArrayRef>(inCFArray); mMutable = false; Retain(); return *this; }\n\tCACFArray&\t\t\toperator=(CFMutableArrayRef inCFArray)\t\t\t\t\t\t\t\t\t\t{ Release(); mCFArray = inCFArray; mMutable = true; Retain(); return *this; }\n\t\t\t\t\t\t~CACFArray()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ Release(); }\n\nprivate:\n\tvoid\t\t\t\tRetain()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(mRelease && (mCFArray != NULL)) { CFRetain(mCFArray); } }\n\tvoid\t\t\t\tRelease()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(mRelease && (mCFArray != NULL)) { CFRelease(mCFArray); } }\n\t\t\n//\tAttributes\npublic:\n\tbool\t\t\t\tIsValid() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFArray != NULL; }\n\tbool\t\t\t\tIsMutable() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mMutable; }\n\tbool\t\t\t\tCanModify() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mMutable && (mCFArray != NULL); }\n\t\n\tbool\t\t\t\tWillRelease() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mRelease; }\n\tvoid\t\t\t\tShouldRelease(bool inRelease)\t\t\t\t\t\t\t\t\t\t\t\t{ mRelease = inRelease; }\n\t\n\tCFTypeID\t\t\tGetTypeID() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return CFGetTypeID(mCFArray); }\n\t\n\tCFArrayRef\t\t\tGetCFArray() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFArray; }\n\tCFArrayRef\t\t\tCopyCFArray() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(mCFArray != NULL) { CFRetain(mCFArray); } return mCFArray; }\n\t\n\tCFMutableArrayRef\tGetCFMutableArray() const\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFArray; }\n\tCFMutableArrayRef\tCopyCFMutableArray() const\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(mCFArray != NULL) { CFRetain(mCFArray); } return mCFArray; }\n\tCFPropertyListRef   AsPropertyList() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFArray; }\n\n\tvoid\t\t\t\tSetCFMutableArrayFromCopy(CFArrayRef inArray, bool inRelease = true)\t\t{ Release(); mCFArray = CFArrayCreateMutableCopy(NULL, 0, inArray); mMutable = true; mRelease = inRelease; }\n\n//\tItem Operations\npublic:\n\tUInt32\t\t\t\tGetNumberItems() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ UInt32 theAnswer = 0; if(mCFArray != NULL) { theAnswer = ToUInt32(CFArrayGetCount(mCFArray)); } return theAnswer; }\n\tbool\t\t\t\tHasItem(const void* inItem) const;\n\tvoid\t\t\t\tRemoveItem(const void* inItem)\t\t\t\t\t\t\t\t\t\t\t\t{ UInt32 theIndex; if(CanModify() && GetIndexOfItem(inItem, theIndex)) { RemoveItemAtIndex(theIndex); } }\n\tbool\t\t\t\tGetIndexOfItem(const void* inItem, UInt32& outIndex) const;\n\tvoid\t\t\t\tRemoveItemAtIndex(UInt32 inIndex)\t\t\t\t\t\t\t\t\t\t\t{ if(CanModify()) { CFArrayRemoveValueAtIndex(mCFArray, static_cast<CFIndex>(inIndex)); } }\n\tvoid\t\t\t\tClear()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(CanModify()) { CFArrayRemoveAllValues(mCFArray); } }\n\tvoid\t\t\t\tSort(CFComparatorFunction inCompareFunction)\t\t\t\t\t\t\t\t{ if(CanModify()) { CFRange theRange = { 0, CFArrayGetCount(mCFArray) }; CFArraySortValues(mCFArray, theRange, inCompareFunction, NULL); } }\n\tvoid\t\t\t\tSortNumbers()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ Sort((CFComparatorFunction)CFNumberCompare); }\n\tvoid\t\t\t\tSortStrings()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ Sort((CFComparatorFunction)CFStringCompare); }\n\t\n\tbool\t\t\t\tGetBool(UInt32 inIndex, bool& outValue) const;\n\tbool\t\t\t\tGetSInt32(UInt32 inIndex, SInt32& outItem) const;\n\tbool\t\t\t\tGetUInt32(UInt32 inIndex, UInt32& outItem) const;\n\tbool\t\t\t\tGetSInt64(UInt32 inIndex, SInt64& outItem) const;\n\tbool\t\t\t\tGetUInt64(UInt32 inIndex, UInt64& outItem) const;\n\tbool\t\t\t\tGetFloat32(UInt32 inIndex, Float32& outItem) const;\n\tbool\t\t\t\tGetFloat64(UInt32 inIndex, Float64& outItem) const;\n\tbool\t\t\t\tGet4CC(UInt32 inIndex, UInt32& outValue) const;\n\tbool\t\t\t\tGetString(UInt32 inIndex, CFStringRef& outItem) const;\n\tbool\t\t\t\tGetArray(UInt32 inIndex, CFArrayRef& outItem) const;\n\tbool\t\t\t\tGetDictionary(UInt32 inIndex, CFDictionaryRef& outItem) const;\n\tbool\t\t\t\tGetData(UInt32 inIndex, CFDataRef& outItem) const;\n\tbool\t\t\t\tGetUUID(UInt32 inIndex, CFUUIDRef& outItem) const;\n\tbool\t\t\t\tGetCFType(UInt32 inIndex, CFTypeRef& outItem) const;\n\t\n\tvoid\t\t\t\tGetCACFString(UInt32 inIndex, CACFString& outItem) const;\n\tvoid\t\t\t\tGetCACFArray(UInt32 inIndex, CACFArray& outItem) const;\n\tvoid\t\t\t\tGetCACFDictionary(UInt32 inIndex, CACFDictionary& outItem) const;\n\t\n\tbool\t\t\t\tAppendBool(bool inItem);\n\tbool\t\t\t\tAppendSInt32(SInt32 inItem);\n\tbool\t\t\t\tAppendUInt32(UInt32 inItem);\n\tbool\t\t\t\tAppendSInt64(SInt64 inItem);\n\tbool\t\t\t\tAppendUInt64(UInt64 inItem);\n\tbool\t\t\t\tAppendFloat32(Float32 inItem);\n\tbool\t\t\t\tAppendFloat64(Float64 inItem);\n\tbool\t\t\t\tAppendString(const CFStringRef inItem);\n\tbool\t\t\t\tAppendArray(const CFArrayRef inItem);\n\tbool\t\t\t\tAppendDictionary(const CFDictionaryRef inItem);\n\tbool\t\t\t\tAppendData(const CFDataRef inItem);\n\tbool\t\t\t\tAppendCFType(const CFTypeRef inItem);\n\t\n\tbool\t\t\t\tInsertBool(UInt32 inIndex, bool inItem);\n\tbool\t\t\t\tInsertSInt32(UInt32 inIndex, SInt32 inItem);\n\tbool\t\t\t\tInsertUInt32(UInt32 inIndex, UInt32 inItem);\n\tbool\t\t\t\tInsertSInt64(UInt32 inIndex, SInt64 inItem);\n\tbool\t\t\t\tInsertUInt64(UInt32 inIndex, UInt64 inItem);\n\tbool\t\t\t\tInsertFloat32(UInt32 inIndex, Float32 inItem);\n\tbool\t\t\t\tInsertFloat64(UInt32 inIndex, Float64 inItem);\n\tbool\t\t\t\tInsertString(UInt32 inIndex, const CFStringRef inItem);\n\tbool\t\t\t\tInsertArray(UInt32 inIndex, const CFArrayRef inItem);\n\tbool\t\t\t\tInsertDictionary(UInt32 inIndex, const CFDictionaryRef inItem);\n\tbool\t\t\t\tInsertData(UInt32 inIndex, const CFDataRef inItem);\n\tbool\t\t\t\tInsertCFType(UInt32 inIndex, const CFTypeRef inItem);\n\t\n\tbool\t\t\t\tSetBool(UInt32 inIndex, bool inItem);\n\tbool\t\t\t\tSetSInt32(UInt32 inIndex, SInt32 inItem);\n\tbool\t\t\t\tSetUInt32(UInt32 inIndex, UInt32 inItem);\n\tbool\t\t\t\tSetSInt64(UInt32 inIndex, SInt64 inItem);\n\tbool\t\t\t\tSetUInt64(UInt32 inIndex, UInt64 inItem);\n\tbool\t\t\t\tSetFloat32(UInt32 inIndex, Float32 inItem);\n\tbool\t\t\t\tSetFloat64(UInt32 inIndex, Float64 inItem);\n\tbool\t\t\t\tSetString(UInt32 inIndex, const CFStringRef inItem);\n\tbool\t\t\t\tSetArray(UInt32 inIndex, const CFArrayRef inItem);\n\tbool\t\t\t\tSetDictionary(UInt32 inIndex, const CFDictionaryRef inItem);\n\tbool\t\t\t\tSetData(UInt32 inIndex, const CFDataRef inItem);\n\tbool\t\t\t\tSetCFType(UInt32 inIndex, const CFTypeRef inItem);\n\n//\tImplementation\nprivate:\n\tCFMutableArrayRef\tmCFArray;\n\tbool\t\t\t\tmRelease;\n\tbool\t\t\t\tmMutable;\n\t\n\t\t\t\t\t\tCACFArray(const void*);\t// prevent accidental instantiation with a pointer via bool constructor\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFData.h",
    "content": "/*\n     File: CACFData.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFData_h__)\n#define __CACFData_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <CoreFoundation/CFData.h>\n#else\n\t#include <CoreAudioTypes.h>\n\t#include <CFData.h>\n#endif\n\n#include \"CADebugMacros.h\"\n\n//=============================================================================\n//\tCACFData\n//=============================================================================\n\nclass CACFData\n{\n\n//\tConstruction/Destruction\npublic:\n\texplicit\tCACFData(CFDataRef inCFData) : mCFData(inCFData), mWillRelease(true) {}\n\t\t\t\tCACFData(CFDataRef inCFData, bool inWillRelease) : mCFData(inCFData), mWillRelease(inWillRelease) {}\n\t\t\t\tCACFData(const void* inData, UInt32 inDataSize) : mCFData(NULL), mWillRelease(true) { mCFData = CFDataCreate(NULL, static_cast<const UInt8*>(inData), static_cast<CFIndex>(inDataSize)); }\n\t\t\t\t~CACFData() { Release(); }\n\t\t\t\tCACFData(const CACFData& inNumber) : mCFData(inNumber.mCFData), mWillRelease(inNumber.mWillRelease) { Retain(); }\n\tCACFData&\toperator=(const CACFData& inNumber) { Release(); mCFData = inNumber.mCFData; mWillRelease = inNumber.mWillRelease; Retain(); return *this; }\n\tCACFData&\toperator=(CFDataRef inCFData) { Release(); mCFData = inCFData; mWillRelease = true; return *this; }\n\nprivate:\n\tvoid\t\tRetain() { if(mWillRelease && (mCFData != NULL)) { CFRetain(mCFData); } }\n\tvoid\t\tRelease() { if(mWillRelease && (mCFData != NULL)) { CFRelease(mCFData); } }\n\t\n\tCFDataRef\tmCFData;\n\tbool\t\tmWillRelease;\n\n//\tOperations\npublic:\n\tvoid\t\tAllowRelease() { mWillRelease = true; }\n\tvoid\t\tDontAllowRelease() { mWillRelease = false; }\n\tbool\t\tIsValid() { return mCFData != NULL; }\n\n//\tValue Access\npublic:\n\tCFDataRef\tGetCFData() const { return mCFData; }\n\tCFDataRef\tCopyCFData() const { if(mCFData != NULL) { CFRetain(mCFData); } return mCFData; }\n\t\n\tUInt32\t\tGetSize() const { return ToUInt32(CFDataGetLength(mCFData)); }\n\tconst void*\tGetDataPtr() const { return CFDataGetBytePtr(mCFData); }\n\tvoid\t\tCopyData(UInt32 inStartOffset, void* outData, UInt32 inDataSize) const { CFRange theRange = { static_cast<CFIndex>(inStartOffset), static_cast<CFIndex>(inDataSize) }; CFDataGetBytes(mCFData, theRange, static_cast<UInt8*>(outData)); }\n\t\n\tSInt32\t\tGetSInt32() const { SInt32 theAnswer = 0; CopyData(0, &theAnswer, SizeOf32(SInt32)); return theAnswer; }\n\tFloat32\t\tGetFloat32() const { Float32 theAnswer = 0; CopyData(0, &theAnswer, SizeOf32(Float32)); return theAnswer; }\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFDictionary.cpp",
    "content": "/*\n     File: CACFDictionary.cpp\n Abstract: CACFDictionary.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSelf Include\n#include \"CACFDictionary.h\"\n\n//\tPublicUtility Includes\n#include \"CACFArray.h\"\n#include \"CACFNumber.h\"\n#include \"CACFString.h\"\n\n//=============================================================================\n//\tCACFDictionary\n//=============================================================================\n\nbool\tCACFDictionary::HasKey(const CFStringRef inKey) const\n{\n\treturn CFDictionaryContainsKey(mCFDictionary, inKey) != 0;\n}\n\nUInt32\tCACFDictionary::Size () const\n{\n\treturn mCFDictionary ? ToUInt32(CFDictionaryGetCount(mCFDictionary)) : 0;\n}\n\nvoid\tCACFDictionary::GetKeys (const void **keys) const\n{\n\tCFDictionaryGetKeysAndValues(mCFDictionary, keys, NULL);\n}\n\nvoid\tCACFDictionary::GetKeysAndValues (const void **keys, const void **values) const\n{\n\tCFDictionaryGetKeysAndValues(mCFDictionary, keys, values);\n}\n\nbool\tCACFDictionary::GetBool(const CFStringRef inKey, bool& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFBooleanGetTypeID()))\n\t\t{\n\t\t\toutValue = CFBooleanGetValue(static_cast<CFBooleanRef>(theValue));\n\t\t\ttheAnswer = true;\n\t\t}\n\t\telse if((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tSInt32 theNumericValue = 0;\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &theNumericValue);\n\t\t\toutValue = theNumericValue != 0;\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetSInt32(const CFStringRef inKey, SInt32& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &outValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetUInt32(const CFStringRef inKey, UInt32& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &outValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetSInt64(const CFStringRef inKey, SInt64& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt64Type, &outValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetUInt64(const CFStringRef inKey, UInt64& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt64Type, &outValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetFloat32FromString(const CFStringRef inKey, Float32& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFStringGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<Float32>(CFStringGetDoubleValue(static_cast<CFStringRef>(theValue)));\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetUInt32FromString(const CFStringRef inKey, UInt32& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFStringGetTypeID()))\n\t\t{\n\t\t\toutValue = CFStringGetIntValue(static_cast<CFStringRef>(theValue));\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetFloat32(const CFStringRef inKey, Float32& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberFloat32Type, &outValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetFloat64(const CFStringRef inKey, Float64& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberFloat64Type, &outValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetFixed32(const CFStringRef inKey, Float32& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tSInt32 theFixed32 = 0;\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &theFixed32);\n\t\t\t\n\t\t\t//\tthis is a 16.16 value so convert it to a float\n\t\t\tFloat32 theSign = theFixed32 < 0 ? -1.0f : 1.0f;\n\t\t\ttheFixed32 *= (SInt32)theSign;\n\t\t\tFloat32 theWholePart = (theFixed32 & 0x7FFF0000) >> 16;\n\t\t\tFloat32 theFractPart = theFixed32 & 0x0000FFFF;\n\t\t\ttheFractPart /= 65536.0f;\n\t\t\toutValue = theSign * (theWholePart + theFractPart);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetFixed64(const CFStringRef inKey, Float64& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tSInt64 theFixed64 = 0;\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt64Type, &theFixed64);\n\t\t\toutValue = static_cast<Float64>(theFixed64 >> 32);\n\t\t\toutValue += static_cast<Float64>(theFixed64 & 0x00000000FFFFFFFFLL) / static_cast<Float64>(0x0000000100000000LL);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::Get4CC(const CFStringRef inKey, UInt32& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFNumberGetTypeID()))\n\t\t{\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &outValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t\telse if((theValue != NULL) && (CFGetTypeID(theValue) == CFStringGetTypeID()))\n\t\t{\n\t\t\tCFStringRef theString = static_cast<CFStringRef>(theValue);\n\t\t\tif(CFStringGetLength(theString) == 4)\n\t\t\t{\n\t\t\t\tchar theCString[5];\n\t\t\t\tCFStringGetCString(theString, theCString, 5, kCFStringEncodingASCII);\n\t\t\t\toutValue = CFSwapInt32BigToHost(*reinterpret_cast<UInt32*>(theCString));\n\t\t\t}\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetString(const CFStringRef inKey, CFStringRef& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFStringGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<CFStringRef>(theValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\t\nbool\tCACFDictionary::GetArray(const CFStringRef inKey, CFArrayRef& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFArrayGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<CFArrayRef>(theValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\t\nbool\tCACFDictionary::GetDictionary(const CFStringRef inKey, CFDictionaryRef& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFDictionaryGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<CFDictionaryRef>(theValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetData(const CFStringRef inKey, CFDataRef& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFDataGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<CFDataRef>(theValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetCFType(const CFStringRef inKey, CFTypeRef& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tif(mCFDictionary != NULL)\n\t{\n\t\toutValue = CFDictionaryGetValue(mCFDictionary, inKey);\n\t\ttheAnswer = (outValue != NULL);\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetURL(const CFStringRef inKey, CFURLRef& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFURLGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<CFURLRef>(theValue);\n\t\t\ttheAnswer = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::GetCFTypeWithCStringKey(const char* inKey, CFTypeRef& outValue) const\n{\n\tbool theAnswer = false;\n\t\n\tif(mCFDictionary != NULL)\n\t{\n\t\tCACFString theKey(inKey);\n\t\tif(theKey.IsValid())\n\t\t{\n\t\t\ttheAnswer = GetCFType(theKey.GetCFString(), outValue);\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nvoid\tCACFDictionary::GetCACFString(const CFStringRef inKey, CACFString& outValue) const\n{\n\toutValue = static_cast<CFStringRef>(NULL);\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFStringGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<CFStringRef>(theValue);\n\t\t}\n\t}\n}\n\t\nvoid\tCACFDictionary::GetCACFArray(const CFStringRef inKey, CACFArray& outValue) const\n{\n\toutValue = static_cast<CFArrayRef>(NULL);\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFArrayGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<CFArrayRef>(theValue);\n\t\t}\n\t}\n}\n\t\nvoid\tCACFDictionary::GetCACFDictionary(const CFStringRef inKey, CACFDictionary& outValue) const\n{\n\toutValue = static_cast<CFDictionaryRef>(NULL);\n\tCFTypeRef theValue = NULL;\n\tif(GetCFType(inKey, theValue))\n\t{\n\t\tif((theValue != NULL) && (CFGetTypeID(theValue) == CFDictionaryGetTypeID()))\n\t\t{\n\t\t\toutValue = static_cast<CFDictionaryRef>(theValue);\n\t\t}\n\t}\n}\n\nbool\tCACFDictionary::AddBool(const CFStringRef inKey, bool inValue)\n{\n\tCACFBoolean theValue(inValue);\n\treturn AddCFType(inKey, theValue.GetCFBoolean());\n}\n\nbool\tCACFDictionary::AddSInt32(const CFStringRef inKey, SInt32 inValue)\n{\n\tCACFNumber theValue(inValue);\n\treturn AddCFType(inKey, theValue.GetCFNumber());\n}\n\nbool\tCACFDictionary::AddUInt32(const CFStringRef inKey, UInt32 inValue)\n{\n\tCACFNumber theValue(inValue);\n\treturn AddCFType(inKey, theValue.GetCFNumber());\n}\n\nbool\tCACFDictionary::AddSInt64(const CFStringRef inKey, SInt64 inValue)\n{\n\tCACFNumber theValue(inValue);\n\treturn AddCFType(inKey, theValue.GetCFNumber());\n}\n\nbool\tCACFDictionary::AddUInt64(const CFStringRef inKey, UInt64 inValue)\n{\n\tCACFNumber theValue(inValue);\n\treturn AddCFType(inKey, theValue.GetCFNumber());\n}\n\nbool\tCACFDictionary::AddFloat32(const CFStringRef inKey, Float32 inValue)\n{\n\tCACFNumber theValue(inValue);\n\treturn AddCFType(inKey, theValue.GetCFNumber());\n}\n\nbool\tCACFDictionary::AddFloat64(const CFStringRef inKey, Float64 inValue)\n{\n\tCACFNumber theValue(inValue);\n\treturn AddCFType(inKey, theValue.GetCFNumber());\n}\n\nbool\tCACFDictionary::AddNumber(const CFStringRef inKey, const CFNumberRef inValue)\n{\n\treturn AddCFType(inKey, inValue);\n}\n\nbool\tCACFDictionary::AddString(const CFStringRef inKey, const CFStringRef inValue)\n{\n\treturn AddCFType(inKey, inValue);\n}\n\nbool\tCACFDictionary::AddArray(const CFStringRef inKey, const CFArrayRef inValue)\n{\n\treturn AddCFType(inKey, inValue);\n}\n\nbool\tCACFDictionary::AddDictionary(const CFStringRef inKey, const CFDictionaryRef inValue)\n{\n\treturn AddCFType(inKey, inValue);\n}\n\nbool\tCACFDictionary::AddData(const CFStringRef inKey, const CFDataRef inValue)\n{\n\treturn AddCFType(inKey, inValue);\n}\n\nbool\tCACFDictionary::AddURL(const CFStringRef inKey, const CFURLRef inValue)\n{\n\treturn AddCFType (inKey, inValue);\n}\n\nbool\tCACFDictionary::AddCFTypeWithCStringKey(const char* inKey, const CFTypeRef inValue)\n{\n\tbool theAnswer = false;\n\t\n\tif (inKey)\n\t{\n\t\tCACFString theKey(inKey);\n\t\tif(theKey.IsValid())\n\t\t{\n\t\t\ttheAnswer = AddCFType(theKey.GetCFString(), inValue);\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::AddCString(const CFStringRef inKey, const char* inValue)\n{\n\tbool theAnswer = false;\n\t\n\tif (inValue)\n\t{\n\t\tCACFString theValue(inValue);\n\t\tif(theValue.IsValid())\n\t\t{\n\t\t\ttheAnswer = AddCFType(inKey, theValue.GetCFString());\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\nbool\tCACFDictionary::AddCFType(const CFStringRef inKey, const CFTypeRef inValue)\n{\n\tbool theAnswer = false;\n\t\n\tif(mMutable && (mCFDictionary != NULL) && inValue)\n\t{\n\t\tCFDictionarySetValue(mCFDictionary, inKey, inValue);\n\t\ttheAnswer = true;\n\t}\n\t\n\treturn theAnswer;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFDictionary.h",
    "content": "/*\n     File: CACFDictionary.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFDictionary_h__)\n#define __CACFDictionary_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include <CoreFoundation.h>\n#endif\n\n//=============================================================================\n//\tTypes\n//=============================================================================\n\nclass\tCACFArray;\nclass\tCACFString;\n\n//=============================================================================\n//\tCACFDictionary\n//=============================================================================\n\nclass CACFDictionary \n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\tCACFDictionary()\t\t\t\t\t\t\t\t\t\t\t\t\t\t: mCFDictionary(CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)), mRelease(true), mMutable(true) {}\n\texplicit\t\t\t\tCACFDictionary(bool inRelease)\t\t\t\t\t\t\t\t\t\t\t: mCFDictionary(CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)), mRelease(inRelease), mMutable(true) {}\n\t\t\t\t\t\t\tCACFDictionary(CFDictionaryRef inCFDictionary, bool inRelease)\t\t\t: mCFDictionary(const_cast<CFMutableDictionaryRef>(inCFDictionary)), mRelease(inRelease), mMutable(false) {}\n\t\t\t\t\t\t\tCACFDictionary(CFMutableDictionaryRef inCFDictionary, bool inRelease)\t: mCFDictionary(inCFDictionary), mRelease(inRelease), mMutable(true) {}\n\t\t\t\t\t\t\tCACFDictionary(const CACFDictionary& inDictionary)\t\t\t\t\t\t: mCFDictionary(inDictionary.mCFDictionary), mRelease(inDictionary.mRelease), mMutable(inDictionary.mMutable) { Retain(); }\n\tCACFDictionary&\t\t\toperator=(const CACFDictionary& inDictionary)\t\t\t\t\t\t\t{ Release(); mCFDictionary = inDictionary.mCFDictionary; mRelease = inDictionary.mRelease; mMutable = inDictionary.mMutable; Retain(); return *this; } \n\tCACFDictionary&\t\t\toperator=(CFDictionaryRef inDictionary)\t\t\t\t\t\t\t\t\t{ Release(); mCFDictionary = const_cast<CFMutableDictionaryRef>(inDictionary); mMutable = false; Retain(); return *this; } \n\tCACFDictionary&\t\t\toperator=(CFMutableDictionaryRef inDictionary)\t\t\t\t\t\t\t{ Release(); mCFDictionary = inDictionary; mMutable = true; Retain(); return *this; } \n\t\t\t\t\t\t\t~CACFDictionary()\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ Release(); }\n\nprivate:\n\tvoid\t\t\t\t\tRetain()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(mRelease && (mCFDictionary != NULL)) { CFRetain(mCFDictionary); } }\n\tvoid\t\t\t\t\tRelease()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(mRelease && (mCFDictionary != NULL)) { CFRelease(mCFDictionary); } }\n\t\t\n//\tAttributes\npublic:\n\tbool\t\t\t\t\tIsValid() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFDictionary != NULL; }\n\tbool\t\t\t\t\tIsMutable() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mMutable;}\n\tbool\t\t\t\t\tCanModify() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mMutable && (mCFDictionary != NULL); }\n\t\n\tbool\t\t\t\t\tWillRelease() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mRelease; }\n\tvoid\t\t\t\t\tShouldRelease(bool inRelease)\t\t\t\t\t\t\t\t\t\t\t{ mRelease = inRelease; }\n\t\n\tCFDictionaryRef\t\t\tGetDict() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFDictionary; }\n\tCFDictionaryRef\t\t\tGetCFDictionary() const\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFDictionary; }\n\tCFDictionaryRef\t\t\tCopyCFDictionary() const\t\t\t\t\t\t\t\t\t\t\t\t{ if(mCFDictionary != NULL) { CFRetain(mCFDictionary); } return mCFDictionary; }\n\n\tCFMutableDictionaryRef\tGetMutableDict()\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFDictionary; }\n\tCFMutableDictionaryRef\tGetCFMutableDictionary() const\t\t\t\t\t\t\t\t\t\t\t{ return mCFDictionary; }\n\tCFMutableDictionaryRef\tCopyCFMutableDictionary() const\t\t\t\t\t\t\t\t\t\t\t{ if(mCFDictionary != NULL) { CFRetain(mCFDictionary); } return mCFDictionary; }\n\tvoid\t\t\t\t\tSetCFMutableDictionaryFromCopy(CFDictionaryRef inDictionary, bool inRelease = true)\t\t{ Release(); mCFDictionary = CFDictionaryCreateMutableCopy(NULL, 0, inDictionary); mMutable = true; mRelease = inRelease; }\n\tvoid\t\t\t\t\tSetCFMutableDictionaryToEmpty(bool inRelease = true)\t\t\t\t\t{ Release(); mCFDictionary = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); mMutable = true; mRelease = inRelease; }\n\n\tCFPropertyListRef\t\tAsPropertyList() const\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFDictionary; }\n\tOSStatus\t\t\t\tGetDictIfMutable(CFMutableDictionaryRef& outDict) const\t\t\t\t\t{ OSStatus theAnswer = -1; if(mMutable) { outDict = mCFDictionary; theAnswer = 0; } return theAnswer; }\n\n//\tItem Operations\npublic:\n\tbool\t\t\t\t\tHasKey(const CFStringRef inKey) const;\n\tUInt32\t\t\t\t\tSize() const;\n\tvoid\t\t\t\t\tGetKeys(const void** keys) const;\n\tvoid\t\t\t\t\tGetKeysAndValues (const void **keys, const void **values) const;\n\t\n\tbool\t\t\t\t\tGetBool(const CFStringRef inKey, bool& outValue) const;\n\tbool\t\t\t\t\tGetSInt32(const CFStringRef inKey, SInt32& outValue) const;\n\tbool\t\t\t\t\tGetUInt32(const CFStringRef inKey, UInt32& outValue) const;\n\tbool\t\t\t\t\tGetUInt32FromString(const CFStringRef inKey, UInt32& outValue) const;\n\tbool\t\t\t\t\tGetSInt64(const CFStringRef inKey, SInt64& outValue) const;\n\tbool\t\t\t\t\tGetUInt64(const CFStringRef inKey, UInt64& outValue) const;\n\tbool\t\t\t\t\tGetFloat32(const CFStringRef inKey, Float32& outValue) const;\n\tbool\t\t\t\t\tGetFloat32FromString(const CFStringRef inKey, Float32& outValue) const;\n\tbool\t\t\t\t\tGetFloat64(const CFStringRef inKey, Float64& outValue) const;\n\tbool\t\t\t\t\tGetFixed32(const CFStringRef inKey, Float32& outValue) const;\n\tbool\t\t\t\t\tGetFixed64(const CFStringRef inKey, Float64& outValue) const;\n\tbool\t\t\t\t\tGet4CC(const CFStringRef inKey, UInt32& outValue) const;\n\tbool\t\t\t\t\tGetString(const CFStringRef inKey, CFStringRef& outValue) const;\t\n\tbool\t\t\t\t\tGetArray(const CFStringRef inKey, CFArrayRef& outValue) const;\t\n\tbool\t\t\t\t\tGetDictionary(const CFStringRef inKey, CFDictionaryRef& outValue) const;\t\n\tbool\t\t\t\t\tGetData(const CFStringRef inKey, CFDataRef& outValue) const;\n\tbool\t\t\t\t\tGetCFType(const CFStringRef inKey, CFTypeRef& outValue) const;\n\tbool\t\t\t\t\tGetURL(const CFStringRef inKey, CFURLRef& outValue) const;\n\tbool\t\t\t\t\tGetCFTypeWithCStringKey(const char* inKey, CFTypeRef& outValue) const;\n\n\tvoid\t\t\t\t\tGetCACFString(const CFStringRef inKey, CACFString& outItem) const;\n\tvoid\t\t\t\t\tGetCACFArray(const CFStringRef inKey, CACFArray& outItem) const;\n\tvoid\t\t\t\t\tGetCACFDictionary(const CFStringRef inKey, CACFDictionary& outItem) const;\n\t\n\tbool\t\t\t\t\tAddBool(const CFStringRef inKey, bool inValue);\n\tbool\t\t\t\t\tAddSInt32(const CFStringRef inKey, SInt32 inValue);\n\tbool\t\t\t\t\tAddUInt32(const CFStringRef inKey, UInt32 inValue);\n\tbool\t\t\t\t\tAddSInt64(const CFStringRef inKey, SInt64 inValue);\n\tbool\t\t\t\t\tAddUInt64(const CFStringRef inKey, UInt64 inValue);\n\tbool\t\t\t\t\tAddFloat32(const CFStringRef inKey, Float32 inValue);\n\tbool\t\t\t\t\tAddFloat64(const CFStringRef inKey, Float64 inValue);\n\tbool\t\t\t\t\tAddNumber(const CFStringRef inKey, const CFNumberRef inValue);\n\tbool\t\t\t\t\tAddString(const CFStringRef inKey, const CFStringRef inValue);\n\tbool\t\t\t\t\tAddArray(const CFStringRef inKey, const CFArrayRef inValue);\n\tbool\t\t\t\t\tAddDictionary(const CFStringRef inKey, const CFDictionaryRef inValue);\n\tbool\t\t\t\t\tAddData(const CFStringRef inKey, const CFDataRef inValue);\n\tbool\t\t\t\t\tAddCFType(const CFStringRef inKey, const CFTypeRef inValue);\n\tbool\t\t\t\t\tAddURL(const CFStringRef inKey, const CFURLRef inValue);\n\t\n\tbool\t\t\t\t\tAddCFTypeWithCStringKey(const char* inKey, const CFTypeRef inValue);\n\tbool\t\t\t\t\tAddCString(const CFStringRef inKey, const char* inValue);\n\n\tvoid\t\t\t\t\tRemoveKey(const CFStringRef inKey)\t\t\t\t\t\t\t\t\t\t{ if(CanModify()) { CFDictionaryRemoveValue(mCFDictionary, inKey); } }\n\tvoid\t\t\t\t\tClear()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(CanModify()) { CFDictionaryRemoveAllValues(mCFDictionary); } }\n\t\n\tvoid\t\t\t\t\tShow()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ CFShow(mCFDictionary); }\n\t\n//\tImplementation\nprivate:\n\tCFMutableDictionaryRef \tmCFDictionary;\n\tbool\t\t\t\t\tmRelease;\n\tbool\t\t\t\t\tmMutable;\n\t\n\t\t\t\t\t\t\tCACFDictionary(const void*);\t// prevent accidental instantiation with a pointer via bool constructor\n};\n\n#endif //__CACFDictionary_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFDistributedNotification.cpp",
    "content": "/*\n     File: CACFDistributedNotification.cpp\n Abstract: CACFDistributedNotification.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CACFDistributedNotification.h\"\n\n//\tPublicUtility Includes\n#include \"CADebugMacros.h\"\n\n//==================================================================================================\n//\tCACFDistributedNotification\n//==================================================================================================\n\nvoid\tCACFDistributedNotification::AddObserver(const void* inObserver, CFNotificationCallback inCallback, CFStringRef inName, CFNotificationSuspensionBehavior inSuspensionBehavior)\n{\n#if\t!TARGET_OS_IPHONE\n\tCFNotificationCenterRef theCenter = CFNotificationCenterGetDistributedCenter();\n\tCFNotificationSuspensionBehavior theSuspensionBehavior = inSuspensionBehavior;\n#else\n\t#pragma unused(inSuspensionBehavior)\n\tCFNotificationCenterRef theCenter = CFNotificationCenterGetDarwinNotifyCenter();\n\tCFNotificationSuspensionBehavior theSuspensionBehavior = static_cast<CFNotificationSuspensionBehavior>(0);\n#endif\n\t \n\tCFNotificationCenterAddObserver(theCenter, inObserver, inCallback, inName, NULL, theSuspensionBehavior);\n}\n\nvoid\tCACFDistributedNotification::RemoveObserver(const void* inObserver, CFStringRef inName)\n{\n#if\t!TARGET_OS_IPHONE\n\tCFNotificationCenterRef theCenter = CFNotificationCenterGetDistributedCenter();\n#else\n\tCFNotificationCenterRef theCenter = CFNotificationCenterGetDarwinNotifyCenter();\n#endif\n\t \n\tCFNotificationCenterRemoveObserver(theCenter, inObserver, inName, NULL);\n}\n\nvoid\tCACFDistributedNotification::PostNotification(CFStringRef inName, CFDictionaryRef inUserInfo, bool inPostToAllSessions)\n{\n#if\t!TARGET_OS_IPHONE\n\tCFNotificationCenterRef theCenter = CFNotificationCenterGetDistributedCenter();\n\tCFDictionaryRef theUserInfo = inUserInfo;\n\tCFOptionFlags theFlags = kCFNotificationDeliverImmediately;\n\tif(inPostToAllSessions)\n\t{\n\t\ttheFlags += kCFNotificationPostToAllSessions;\n\t}\n#else\n\t//\tflag unsupported features\n\tAssert(inUserInfo == NULL, \"CACFDistributedNotification::PostNotification: distributed notifications do not support a payload\");\n\tAssert(inPostToAllSessions, \"CACFDistributedNotification::PostNotification: distributed notifications do not support per-session delivery\");\n\t\n\tCFNotificationCenterRef theCenter = CFNotificationCenterGetDarwinNotifyCenter();\n\tCFDictionaryRef theUserInfo = NULL;\n\tCFOptionFlags theFlags = 0;\n#endif\n\t \n\t CFNotificationCenterPostNotificationWithOptions(theCenter, inName, NULL, theUserInfo, theFlags);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFDistributedNotification.h",
    "content": "/*\n     File: CACFDistributedNotification.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFDistributedNotification_h__)\n#define __CACFDistributedNotification_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSystem Includes\n#include <CoreAudio/CoreAudioTypes.h>\n#include <CoreFoundation/CoreFoundation.h>\n\n//==================================================================================================\n//\tCACFDistributedNotification\n//==================================================================================================\n\nclass CACFDistributedNotification\n{\n\n//\tOperations\npublic:\n\tstatic void\t\tAddObserver(const void* inObserver, CFNotificationCallback inCallback, CFStringRef inName, CFNotificationSuspensionBehavior inSuspensionBehavior = CFNotificationSuspensionBehaviorCoalesce);\n\tstatic void\t\tRemoveObserver(const void* inObserver, CFStringRef inName);\n\tstatic void\t\tPostNotification(CFStringRef inName, CFDictionaryRef inUserInfo, bool inPostToAllSessions);\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFMachPort.cpp",
    "content": "/*\n     File: CACFMachPort.cpp\n Abstract: CACFMachPort.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n#include \"CACFMachPort.h\"\n#include \"CAException.h\"\n#include \"CADebugMacros.h\"\n\n//==================================================================================================\n//\tCACFMachPort\n//==================================================================================================\n\n//\tThis constructor is the short form. The CFMachPort will own the send and receive rights.\nCACFMachPort::CACFMachPort(CFMachPortCallBack inCallBack, void* inUserData)\n:\n\tmMachPort(NULL),\n\tmRunLoopSource(NULL),\n\tmOwnsPort(true)\n{\n\tCFMachPortContext theContext = { 1, inUserData, NULL, NULL, NULL };\n\tmMachPort = CFMachPortCreate(NULL, inCallBack, &theContext, NULL);\n\tThrowIfNULL(mMachPort, CAException('what'), \"CACFMachPort::CACFMachPort(s): couldn't create the CFMachPort\");\n\n\tmRunLoopSource = CFMachPortCreateRunLoopSource(NULL, mMachPort, 0);\n\tif(mRunLoopSource == NULL)\n\t{\n\t\tCFMachPortInvalidate(mMachPort);\n\t\tCFRelease(mMachPort);\n\t\tmMachPort = NULL;\n\t\tDebugMessage(\"CACFMachPort::CACFMachPort(s): couldn't create the CFRunLoopSource\");\n\t\tthrow CAException('what');\n\t}\n}\n\n//\tThis constructor is the general form:\n//\t-\tIf inMachPort is MACH_PORT_NULL, the CFMachPort will allocate the port and own the send and\n//\t\treceive rights. Otherwise, the caller owns the rights and is resposible for cleaning them\n//\t\tup.\n//\t-\tIf inCallBack is NULL, then received messages will just get swallowed by the CFMachPort.\n//\t\tThis is useful if you are only using the CFMachPort to track port death (aka invalidation).\n//\t-\tIf inInvalidationCallBack is non-NULL, then it will be installed as the invalidation\n//\t\tcallback on the CFMachPort.\nCACFMachPort::CACFMachPort(mach_port_t inMachPort, CFMachPortCallBack inCallBack, CFMachPortInvalidationCallBack inInvalidationCallBack, void* inUserData)\n:\n\tmMachPort(NULL),\n\tmRunLoopSource(NULL),\n\tmOwnsPort(false)\n{\n\tCFMachPortContext theContext = { 1, inUserData, NULL, NULL, NULL };\n\t\n\tif(inMachPort == MACH_PORT_NULL)\n\t{\n\t\tmMachPort = CFMachPortCreate(NULL, inCallBack, &theContext, NULL);\n\t\tThrowIfNULL(mMachPort, CAException('what'), \"CACFMachPort::CACFMachPort: couldn't create the CFMachPort\");\n\t\tmOwnsPort = true;\n\t}\n\telse\n\t{\n\t\tmMachPort = CFMachPortCreateWithPort(NULL, inMachPort, inCallBack, &theContext, NULL);\n\t\tThrowIfNULL(mMachPort, CAException('what'), \"CACFMachPort::CACFMachPort: couldn't create the CFMachPort with a port\");\n\t\tmOwnsPort = false;\n\t}\n\n\tmRunLoopSource = CFMachPortCreateRunLoopSource(NULL, mMachPort, 0);\n\tif(mRunLoopSource == NULL)\n\t{\n\t\tif(mOwnsPort)\n\t\t{\n\t\t\tCFMachPortInvalidate(mMachPort);\n\t\t}\n\t\tCFRelease(mMachPort);\n\t\tmMachPort = NULL;\n\t\tDebugMessage(\"CACFMachPort::CACFMachPort: couldn't create the CFRunLoopSource\");\n\t\tthrow CAException('what');\n\t}\n\t\n\tif(inInvalidationCallBack != NULL)\n\t{\n\t\tCFMachPortSetInvalidationCallBack(mMachPort, inInvalidationCallBack);\n\t}\n}\n\nCACFMachPort::~CACFMachPort()\n{\n\tif(mRunLoopSource != NULL)\n\t{\n\t\tCFRelease(mRunLoopSource);\n\t}\n\t\n\tif(mMachPort != NULL)\n\t{\n\t\tif(mOwnsPort)\n\t\t{\n\t\t\tCFMachPortInvalidate(mMachPort);\n\t\t}\n\t\tCFRelease(mMachPort);\n\t}\n}\n\nkern_return_t\tCACFMachPort::ReceiveMessage(UInt32 inMaxMessageSize, mach_msg_header_t* outMessage, mach_msg_timeout_t inTimeOut)\n{\n\t//\tsnag the port\n\tmach_port_t thePort = CFMachPortGetPort(mMachPort);\n\n\t//\tfill out the message header\n\toutMessage->msgh_bits = 0;\n\toutMessage->msgh_size = 0;\n\toutMessage->msgh_remote_port = MACH_PORT_NULL;\n\toutMessage->msgh_local_port = thePort;\n\toutMessage->msgh_reserved = 0;\n\toutMessage->msgh_id = 0;\n\n\t//\tfigure the options\n\tmach_msg_options_t theOptions = MACH_RCV_MSG;\n\tif(inTimeOut > 0)\n\t{\n\t\ttheOptions |= MACH_RCV_TIMEOUT;\n\t}\n\t\n\t//\treceive the messsage\n\treturn mach_msg(outMessage, theOptions, 0, inMaxMessageSize, thePort, inTimeOut, MACH_PORT_NULL);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFMachPort.h",
    "content": "/*\n     File: CACFMachPort.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFMachPort_h__)\n#define __CACFMachPort_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSystem Includes\n#include <CoreFoundation/CFMachPort.h>\n#include <mach/mach.h>\n\n//==================================================================================================\n//\tCACFMachPort\n//\n//\tThis class wraps a CFMachPort.\n//\t\n//\tNote that when you create a CFMachPort object, CF will attach the run loop source for the the\n//\tMach Port that handles Port Death notifications (aka the Invalidation Callback) to the current\n//\tthread's run loop. This is something over which there is no control, so be sure to create the\n//\tCFMachPort on the thread on which you want to handle Port Death notificaitons on.\n//==================================================================================================\n\nclass\tCACFMachPort\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCACFMachPort(CFMachPortCallBack inCallBack, void* inUserData = NULL);\n\t\t\t\t\t\tCACFMachPort(mach_port_t inMachPort, CFMachPortCallBack inCallBack, CFMachPortInvalidationCallBack inInvalidationCallBack, void* inUserData);\n\tvirtual\t\t\t\t~CACFMachPort();\n\n//\tAttributes\npublic:\n\tCFMachPortRef\t\tGetMachPortRef() const { return mMachPort; }\n\tmach_port_t\t\t\tGetMachPort() const { return CFMachPortGetPort(mMachPort); }\n\tCFRunLoopSourceRef\tGetRunLoopSource() const { return mRunLoopSource; }\n\n//\tOperations\npublic:\n\tkern_return_t\t\tReceiveMessage(UInt32 inMaxMessageSize, mach_msg_header_t* outMessage, mach_msg_timeout_t inTimeOut);\n\n//\tImplementation\nprotected:\n\tCFMachPortRef\t\tmMachPort;\n\tCFRunLoopSourceRef\tmRunLoopSource;\n\tbool\t\t\t\tmOwnsPort;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFMessagePort.cpp",
    "content": "/*\n     File: CACFMessagePort.cpp\n Abstract: CACFMessagePort.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CACFMessagePort.h\"\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n\n//=============================================================================\n//\tCACFLocalMessagePort\n//=============================================================================\n\nCACFLocalMessagePort::CACFLocalMessagePort(CFStringRef inName, CFMessagePortCallBack inPortCallBack, CFMessagePortInvalidationCallBack inInvalidationCallBack, void* inUserData)\n:\n\tmMessagePort(NULL),\n\tmRunLoopSource(NULL),\n\tmDispatchQueue(NULL)\n{\n\t//\tcreate the CFMessagePort\n\tCFMessagePortContext theContext = { 0, inUserData, NULL, NULL, NULL };\n\tmMessagePort = CFMessagePortCreateLocal(NULL, inName, inPortCallBack, &theContext, NULL);\n\tif(mMessagePort != NULL)\n\t{\n\t\t//\tadd the invalidation callback, if any\n\t\tif(inInvalidationCallBack != NULL)\n\t\t{\n\t\t\tCFMessagePortSetInvalidationCallBack(mMessagePort, inInvalidationCallBack);\n\t\t}\n\t}\n}\n\nCACFLocalMessagePort::~CACFLocalMessagePort()\n{\n\tif(mRunLoopSource != NULL)\n\t{\n\t\tCFRelease(mRunLoopSource);\n\t}\n\tif(mMessagePort != NULL)\n\t{\n\t\tCFMessagePortInvalidate(mMessagePort);\n\t\tCFRelease(mMessagePort);\n\t}\n}\n\nCFRunLoopSourceRef\tCACFLocalMessagePort::GetRunLoopSource() const\n{\n\tAssert(mDispatchQueue == NULL, \"CACFLocalMessagePort::SetDispatchQueue: should have both a run loop source and a dispatch queue\");\n\tif(mRunLoopSource == NULL)\n\t{\n\t\tconst_cast<CACFLocalMessagePort*>(this)->mRunLoopSource = CFMessagePortCreateRunLoopSource(NULL, mMessagePort, 0);\n\t}\n\treturn mRunLoopSource;\n}\n\nvoid\tCACFLocalMessagePort::SetDispatchQueue(dispatch_queue_t inDispatchQueue)\n{\n\tAssert(mRunLoopSource == NULL, \"CACFLocalMessagePort::SetDispatchQueue: should have both a run loop source and a dispatch queue\");\n\tmDispatchQueue = inDispatchQueue;\n\tCFMessagePortSetDispatchQueue(mMessagePort, mDispatchQueue);\n}\n\n//=============================================================================\n//\tCACFRemoteMessagePort\n//=============================================================================\n\nCACFRemoteMessagePort::CACFRemoteMessagePort(CFStringRef inName, CFMessagePortInvalidationCallBack inInvalidationCallBack)\n:\n\tmMessagePort(NULL),\n\tmRunLoopSource(NULL),\n\tmDispatchQueue(NULL)\n{\n\t//\tcreate the CFMessagePort\n\tmMessagePort = CFMessagePortCreateRemote(NULL, inName);\n\tif(mMessagePort != NULL)\n\t{\n\t\t//\tfailure to create a remote port does not need to throw an exception\n\t\t//\tbecause it isn't really an error since the port in question may not\n\t\t//\texist and this fact requires a more complex response than an excpeption\n\t\t//\tprovides for.\n\t\t\n\t\t//\tadd the invalidation callback, if any\n\t\tif(inInvalidationCallBack != NULL)\n\t\t{\n\t\t\tCFMessagePortSetInvalidationCallBack(mMessagePort, inInvalidationCallBack);\n\t\t}\n\t}\n}\n\nCACFRemoteMessagePort::~CACFRemoteMessagePort()\n{\n\tif(mRunLoopSource != NULL)\n\t{\n\t\tCFRelease(mRunLoopSource);\n\t}\n\tif(mMessagePort != NULL)\n\t{\n\t\t//CFMessagePortInvalidate(mMessagePort);\n\t\tCFRelease(mMessagePort);\n\t}\n}\n\nCFRunLoopSourceRef\tCACFRemoteMessagePort::GetRunLoopSource() const\n{\n\tAssert(mDispatchQueue == NULL, \"CACFRemoteMessagePort::SetDispatchQueue: should have both a run loop source and a dispatch queue\");\n\tif(mRunLoopSource == NULL)\n\t{\n\t\tconst_cast<CACFRemoteMessagePort*>(this)->mRunLoopSource = CFMessagePortCreateRunLoopSource(NULL, mMessagePort, 0);\n\t}\n\treturn mRunLoopSource;\n}\n\nvoid\tCACFRemoteMessagePort::SetDispatchQueue(dispatch_queue_t inDispatchQueue)\n{\n\tAssert(mRunLoopSource == NULL, \"CACFRemoteMessagePort::SetDispatchQueue: should have both a run loop source and a dispatch queue\");\n\tmDispatchQueue = inDispatchQueue;\n\tCFMessagePortSetDispatchQueue(mMessagePort, mDispatchQueue);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFMessagePort.h",
    "content": "/*\n     File: CACFMessagePort.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFMessagePort_h__)\n#define __CACFMessagePort_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CFMessagePort.h>\n#else\n\t#include <CFMessagePort.h>\n#endif\n\n//=============================================================================\n//\tCACFLocalMessagePort\n//=============================================================================\n\nclass CACFLocalMessagePort\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCACFLocalMessagePort(CFStringRef inName, CFMessagePortCallBack inPortCallBack, CFMessagePortInvalidationCallBack inInvalidationCallBack, void* inUserData = NULL);\n\tvirtual\t\t\t\t~CACFLocalMessagePort();\n\n//\tAttributes\npublic:\n\tbool\t\t\t\tIsValid() const { return mMessagePort != NULL; }\n\tCFMessagePortRef\tGetMessagePortRef() const { return mMessagePort; }\n\tCFRunLoopSourceRef\tGetRunLoopSource() const;\n\tvoid\t\t\t\tSetDispatchQueue(dispatch_queue_t inDispatchQueue);\n\n//\tImplementation\nprotected:\n\tCFMessagePortRef\tmMessagePort;\n\tCFRunLoopSourceRef\tmRunLoopSource;\n\tdispatch_queue_t\tmDispatchQueue;\n\n};\n\n//=============================================================================\n//\tCACFRemoteMessagePort\n//=============================================================================\n\nclass CACFRemoteMessagePort\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCACFRemoteMessagePort(CFStringRef inName, CFMessagePortInvalidationCallBack inInvalidationCallBack);\n\tvirtual\t\t\t\t~CACFRemoteMessagePort();\n\n//\tAttributes\npublic:\n\tbool\t\t\t\tIsValid() const { return mMessagePort != NULL; }\n\tCFMessagePortRef\tGetMessagePortRef() const { return mMessagePort; }\n\tCFRunLoopSourceRef\tGetRunLoopSource() const;\n\tvoid\t\t\t\tSetDispatchQueue(dispatch_queue_t inDispatchQueue);\n\n//\tOperations\npublic:\n\tSInt32\t\t\t\tSendRequest(SInt32 inMessageID, CFDataRef inData, CFTimeInterval inSendTimeout, CFTimeInterval inReceiveTimout) const { return CFMessagePortSendRequest(mMessagePort, inMessageID, inData, inSendTimeout, inReceiveTimout, NULL, NULL); }\n\tSInt32\t\t\t\tSendRequest(SInt32 inMessageID, CFDataRef inData, CFTimeInterval inSendTimeout, CFTimeInterval inReceiveTimout, CFStringRef inReplyMode, CFDataRef& outReturnData) const { return CFMessagePortSendRequest(mMessagePort, inMessageID, inData, inSendTimeout, inReceiveTimout, inReplyMode, &outReturnData); }\n\n//\tImplementation\nprotected:\n\tCFMessagePortRef\tmMessagePort;\n\tCFRunLoopSourceRef\tmRunLoopSource;\n\tdispatch_queue_t\tmDispatchQueue;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFNumber.cpp",
    "content": "/*\n     File: CACFNumber.cpp\n Abstract: CACFNumber.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CACFNumber.h\"\n\n//=============================================================================\n//\tCACFNumber\n//=============================================================================\n\nFloat32\tCACFNumber::GetFixed32() const\n{\n\tSInt32 theFixedValue = GetSInt32();\n\t\n\t//\tthis is a 16.16 value so convert it to a float\n\tFloat32 theSign = theFixedValue < 0 ? -1.0f : 1.0f;\n\ttheFixedValue *= (SInt32)theSign;\n\tFloat32 theWholePart = (theFixedValue & 0x7FFF0000) >> 16;\n\tFloat32 theFractPart = theFixedValue & 0x0000FFFF;\n\ttheFractPart /= 65536.0f;\n\t\n\treturn theSign * (theWholePart + theFractPart);\n}\n\nFloat64\tCACFNumber::GetFixed64() const\n{\n\tSInt64 theFixedValue = GetSInt64();\n\t\n\t//\tthis is a 32.32 value so convert it to a double\n\tFloat64 theSign = theFixedValue < 0 ? -1.0 : 1.0;\n\ttheFixedValue *= (SInt64)theSign;\n\tFloat64 theWholePart = (theFixedValue & 0x7FFFFFFF00000000LL) >> 32;\n\tFloat64 theFractPart = theFixedValue & 0x00000000FFFFFFFFLL;\n\ttheFractPart /= 4294967296.0;\n\t\n\treturn theSign * (theWholePart + theFractPart);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFNumber.h",
    "content": "/*\n     File: CACFNumber.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFNumber_h__)\n#define __CACFNumber_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <CoreFoundation/CFNumber.h>\n#else\n\t#include <CoreAudioTypes.h>\n\t#include <CFNumber.h>\n#endif\n\n//=============================================================================\n//\tCACFBoolean\n//=============================================================================\n\nclass\tCACFBoolean\n{\n//\tConstruction/Destruction\npublic:\n\texplicit\t\tCACFBoolean(CFBooleanRef inCFBoolean) : mCFBoolean(inCFBoolean), mWillRelease(true) {}\n\t\t\t\t\tCACFBoolean(CFBooleanRef inCFBoolean, bool inWillRelease) : mCFBoolean(inCFBoolean), mWillRelease(inWillRelease) {}\n\texplicit\t\tCACFBoolean(bool inValue) : mCFBoolean(inValue ? kCFBooleanTrue : kCFBooleanFalse), mWillRelease(true) { Retain(); }\n\t\t\t\t\t~CACFBoolean() { Release(); }\n\t\t\t\t\tCACFBoolean(const CACFBoolean& inBoolean) : mCFBoolean(inBoolean.mCFBoolean), mWillRelease(inBoolean.mWillRelease) { Retain(); }\n\tCACFBoolean&\toperator=(const CACFBoolean& inBoolean) { Release(); mCFBoolean = inBoolean.mCFBoolean; mWillRelease = inBoolean.mWillRelease; Retain(); return *this; }\n\tCACFBoolean&\toperator=(CFBooleanRef inCFBoolean) { Release(); mCFBoolean = inCFBoolean; mWillRelease = true; return *this; }\n\nprivate:\n\tvoid\t\t\tRetain() { if(mWillRelease && (mCFBoolean != NULL)) { CFRetain(mCFBoolean); } }\n\tvoid\t\t\tRelease() { if(mWillRelease && (mCFBoolean != NULL)) { CFRelease(mCFBoolean); } }\n\t\n\tCFBooleanRef\tmCFBoolean;\n\tbool\t\t\tmWillRelease;\n\n//\tOperations\npublic:\n\tvoid\t\t\tAllowRelease() { mWillRelease = true; }\n\tvoid\t\t\tDontAllowRelease() { mWillRelease = false; }\n\tbool\t\t\tIsValid() { return mCFBoolean != NULL; }\n\n//\tValue Access\npublic:\n\tCFBooleanRef\tGetCFBoolean() const { return mCFBoolean; }\n\tCFBooleanRef\tCopyCFBoolean() const { if(mCFBoolean != NULL) { CFRetain(mCFBoolean); } return mCFBoolean; }\n\n\tbool\t\t\tGetBoolean() const { bool theAnswer = false; if(mCFBoolean != NULL) { theAnswer = CFEqual(mCFBoolean, kCFBooleanTrue); } return theAnswer; }\n\t\n\t\t\t\t\tCACFBoolean(const void*);\t// prevent accidental instantiation with a pointer via bool constructor\n};\n\n//=============================================================================\n//\tCACFNumber\n//=============================================================================\n\nclass\tCACFNumber\n{\n//\tConstruction/Destruction\npublic:\n\texplicit\tCACFNumber(CFNumberRef inCFNumber) : mCFNumber(inCFNumber), mWillRelease(true) {}\n\t\t\t\tCACFNumber(CFNumberRef inCFNumber, bool inWillRelease) : mCFNumber(inCFNumber), mWillRelease(inWillRelease) {}\n\t\t\t\tCACFNumber(SInt32 inValue) : mCFNumber(CFNumberCreate(NULL, kCFNumberSInt32Type, &inValue)), mWillRelease(true) {}\n\t\t\t\tCACFNumber(UInt32 inValue) : mCFNumber(CFNumberCreate(NULL, kCFNumberSInt32Type, &inValue)), mWillRelease(true) {}\n\t\t\t\tCACFNumber(SInt64 inValue) : mCFNumber(CFNumberCreate(NULL, kCFNumberSInt64Type, &inValue)), mWillRelease(true) {}\n\t\t\t\tCACFNumber(UInt64 inValue) : mCFNumber(CFNumberCreate(NULL, kCFNumberSInt64Type, &inValue)), mWillRelease(true) {}\n\t\t\t\tCACFNumber(Float32 inValue) : mCFNumber(CFNumberCreate(NULL, kCFNumberFloat32Type, &inValue)), mWillRelease(true) {}\n\t\t\t\tCACFNumber(Float64 inValue) : mCFNumber(CFNumberCreate(NULL, kCFNumberFloat64Type, &inValue)), mWillRelease(true) {}\n\t\t\t\t~CACFNumber() { Release(); }\n\t\t\t\tCACFNumber(const CACFNumber& inNumber) : mCFNumber(inNumber.mCFNumber), mWillRelease(inNumber.mWillRelease) { Retain(); }\n\tCACFNumber&\toperator=(const CACFNumber& inNumber) { Release(); mCFNumber = inNumber.mCFNumber; mWillRelease = inNumber.mWillRelease; Retain(); return *this; }\n\tCACFNumber&\toperator=(CFNumberRef inCFNumber) { Release(); mCFNumber = inCFNumber; mWillRelease = true; return *this; }\n\nprivate:\n\tvoid\t\tRetain() { if(mWillRelease && (mCFNumber != NULL)) { CFRetain(mCFNumber); } }\n\tvoid\t\tRelease() { if(mWillRelease && (mCFNumber != NULL)) { CFRelease(mCFNumber); } }\n\t\n\tCFNumberRef\tmCFNumber;\n\tbool\t\tmWillRelease;\n\n//\tOperations\npublic:\n\tvoid\t\tAllowRelease() { mWillRelease = true; }\n\tvoid\t\tDontAllowRelease() { mWillRelease = false; }\n\tbool\t\tIsValid() const { return mCFNumber != NULL; }\n\n//\tValue Access\npublic:\n\tCFNumberRef\tGetCFNumber() const { return mCFNumber; }\n\tCFNumberRef\tCopyCFNumber() const { if(mCFNumber != NULL) { CFRetain(mCFNumber); } return mCFNumber; }\n\n\tSInt8\t\tGetSInt8() const { SInt8 theAnswer = 0; if(mCFNumber != NULL) { CFNumberGetValue(mCFNumber, kCFNumberSInt8Type, &theAnswer); } return theAnswer; }\n\tSInt32\t\tGetSInt32() const { SInt32 theAnswer = 0; if(mCFNumber != NULL) { CFNumberGetValue(mCFNumber, kCFNumberSInt32Type, &theAnswer); } return theAnswer; }\n\tUInt32\t\tGetUInt32() const { UInt32 theAnswer = 0; if(mCFNumber != NULL) { CFNumberGetValue(mCFNumber, kCFNumberSInt32Type, &theAnswer); } return theAnswer; }\n\tFloat32\t\tGetFloat32() const { Float32 theAnswer = 0.0f; if(mCFNumber != NULL) { CFNumberGetValue(mCFNumber, kCFNumberFloat32Type, &theAnswer); } return theAnswer; }\n\tFloat32\t\tGetFixed32() const;\n\tFloat64\t\tGetFixed64() const;\n\tSInt64\t\tGetSInt64() const { SInt64 theAnswer = 0; if(mCFNumber != NULL) { CFNumberGetValue(mCFNumber, kCFNumberSInt64Type, &theAnswer); } return theAnswer; }\n\t\n\t\t\t\tCACFNumber(const void*);\t// prevent accidental instantiation with a pointer via bool constructor\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFObject.h",
    "content": "/*\n     File: CACFObject.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFObject_h__)\n#define __CACFObject_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include <CoreAudioTypes.h>\n\t#include <CoreFoundation.h>\n#endif\n\n//=============================================================================\n//\tWrappers for CFRetain and CFRelease that check for NULL\n//=============================================================================\n\ntemplate <typename CFObjectType>\nCFObjectType CACFRetain(CFObjectType inObject)\n{\n\tCFObjectType theAnswer = inObject;\n\tif(inObject != NULL)\n\t{\n\t\ttheAnswer = reinterpret_cast<CFObjectType>(CFRetain(inObject));\n\t}\n\treturn theAnswer;\n}\n\ninline void\tCACFRelease(CFTypeRef inObject)\n{\n\tif(inObject != NULL)\n\t{\n\t\tCFRelease(inObject);\n\t}\n}\n\n//=============================================================================\n//\tCACFObject\n//\n//\tNotes\n//\t-\tUsing the AssignWithoutRetain() method will fool the static analyzer into thinking that the\n//\t\tCFObject being assigned will be leaked. This is because the static analyzer is not smart\n//\t\tenough to understand that the destructor will release the object.\n//=============================================================================\n\ntemplate <class CFObjectType>\nclass CACFObject\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCACFObject() : mCFObject(NULL), mWillRelease(true) {}\n\texplicit\t\t\tCACFObject(CFObjectType inCFObject) : mCFObject(inCFObject), mWillRelease(true) {}\n\t\t\t\t\t\tCACFObject(CFObjectType inCFObject, bool inWillRelease) : mCFObject(inCFObject), mWillRelease(inWillRelease) {}\n\t\t\t\t\t\t~CACFObject() { Release(); }\n\t\t\t\t\t\tCACFObject(const CACFObject& inObject) : mCFObject(inObject.mCFObject), mWillRelease(inObject.mWillRelease) { Retain(); }\n\tCACFObject&\t\t\toperator=(const CACFObject& inObject) { Release(); mCFObject = inObject.mCFObject; mWillRelease = inObject.mWillRelease; Retain(); return *this; }\n\tCACFObject&\t\t\toperator=(CFObjectType inCFObject) { Release(); mCFObject = inCFObject; mWillRelease = true; Retain(); return *this; }\n\tvoid\t\t\t\tAssignWithoutRetain(CFObjectType inObject) { if (inObject != mCFObject) { Release(); mCFObject = inObject; } mWillRelease = true; }\n\nprivate:\n\tvoid\t\t\t\tRetain() { if(mWillRelease && (mCFObject != NULL)) { CFRetain(mCFObject); } }\n\tvoid\t\t\t\tRelease() { if(mWillRelease && (mCFObject != NULL)) { CFRelease(mCFObject); mCFObject = NULL; } }\n\t\n\tCFObjectType\t\tmCFObject;\n\tbool\t\t\t\tmWillRelease;\n\n//\tOperations\npublic:\n\tvoid\t\t\t\tAllowRelease() { mWillRelease = true; }\n\tvoid\t\t\t\tDontAllowRelease() { mWillRelease = false; }\n\tbool\t\t\t\tIsValid() const { return mCFObject != NULL; }\n\tCFTypeID\t\t\tGetTypeID() const { return CFGetTypeID(mCFObject); }\n\tbool\t\t\t\tIsEqual(CFObjectType inCFObject) const { return CFEqual(inCFObject, mCFObject) != 0; }\n\n//\tValue Access\npublic:\n\tCFObjectType\t\tGetCFObject() const { return mCFObject; }\n\tCFObjectType\t\tCopyCFObject() const { if(mCFObject != NULL) { CFRetain(mCFObject); } return mCFObject; }\n\tconst CFObjectType*\tGetPointerToStorage() const\t{ return &mCFObject; }\n\n};\n\ntypedef\tCACFObject<CFBundleRef>\t\t\tCACFBundle;\ntypedef\tCACFObject<CFPropertyListRef>\tCACFPropertyList;\ntypedef\tCACFObject<CFTypeRef>\t\t\tCACFType;\ntypedef\tCACFObject<CFUUIDRef>\t\t\tCACFUUID;\ntypedef\tCACFObject<CFURLRef>\t\t\tCACFURL;\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFPlugIn.h",
    "content": "/*\n     File: CACFPlugIn.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFPlugIn_h__)\n#define __CACFPlugIn_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSystem Includes\n#include <CoreAudio/CoreAudioTypes.h>\n#include <CoreFoundation/CFPlugIn.h>\n\n//==================================================================================================\n//\tCACFPlugIn\n//==================================================================================================\n\nclass CACFPlugIn\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tCACFPlugIn()\t\t\t\t\t\t\t\t\t\t\t\t\t\t: mCFPlugIn(NULL), mWillRelease(true) {}\n\t\t\t\t\tCACFPlugIn(CFPlugInRef inCFPlugIn, bool inWillRelease = true)\t\t: mCFPlugIn(inCFPlugIn), mWillRelease(inWillRelease) {}\n\t\t\t\t\tCACFPlugIn(CFURLRef inURL, bool inWillRelease = true)\t\t\t\t: mCFPlugIn(CFPlugInCreate(NULL, inURL)), mWillRelease(inWillRelease) {}\n\t\t\t\t\t~CACFPlugIn()\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ Release(); }\n\t\t\t\t\tCACFPlugIn(const CACFPlugIn& inObject)\t\t\t\t\t\t\t\t: mCFPlugIn(inObject.mCFPlugIn), mWillRelease(inObject.mWillRelease) { Retain(); }\n\tCACFPlugIn&\t\toperator=(const CACFPlugIn& inObject)\t\t\t\t\t\t\t\t{ Release(); mCFPlugIn = inObject.mCFPlugIn; mWillRelease = inObject.mWillRelease; Retain(); return *this; }\n\tCACFPlugIn&\t\toperator=(CFPlugInRef inCFPlugIn)\t\t\t\t\t\t\t\t\t{ Release(); mCFPlugIn = inCFPlugIn; mWillRelease = true; return *this; }\n\nprivate:\n\tvoid\t\t\tRetain()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(mWillRelease && (mCFPlugIn != NULL)) { CFRetain(mCFPlugIn); } }\n\tvoid\t\t\tRelease()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(mWillRelease && (mCFPlugIn != NULL)) { CFRelease(mCFPlugIn); mCFPlugIn = NULL; } }\n\t\n\tCFPlugInRef\t\tmCFPlugIn;\n\tbool\t\t\tmWillRelease;\n\n//\tOperations\npublic:\n\tvoid\t\t\tAllowRelease()\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ mWillRelease = true; }\n\tvoid\t\t\tDontAllowRelease()\t\t\t\t\t\t\t\t\t\t\t\t\t{ mWillRelease = false; }\n\tbool\t\t\tIsValid() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFPlugIn != NULL; }\n\t\n\tCFBundleRef\t\tGetBundle() const\t\t\t\t\t\t\t\t\t\t\t\t\t{ CFBundleRef theAnswer = NULL; if(IsValid()) { theAnswer = CFPlugInGetBundle(mCFPlugIn); } return theAnswer; }\n\tCFStringRef\t\tCopyBundleID() const\t\t\t\t\t\t\t\t\t\t\t\t{ CFStringRef theAnswer = NULL; CFBundleRef theBundle = GetBundle(); if(IsValid() && (theBundle != NULL)) { theAnswer = CFBundleGetIdentifier(theBundle); if(theAnswer != NULL) { CFRetain(theAnswer); } } return theAnswer; }\n\tUInt32\t\t\tGetBundleVersion() const\t\t\t\t\t\t\t\t\t\t\t{ UInt32 theAnswer = 0; CFBundleRef theBundle = GetBundle(); if(IsValid() && (theBundle != NULL)) { theAnswer = CFBundleGetVersionNumber(theBundle); } return theAnswer; }\n\tCFDictionaryRef CopyBundleInfo() const\t\t\t\t\t\t\t\t\t\t\t\t{ CFDictionaryRef theAnswer = NULL; CFBundleRef theBundle = GetBundle(); if(IsValid() && (theBundle != NULL)) { theAnswer = CFBundleGetInfoDictionary(theBundle); if(theAnswer != NULL) { CFRetain(theAnswer); } } return theAnswer; }\n\tCFArrayRef\t\tFindFactoriesForType(CFUUIDRef inTypeUUID) const\t\t\t\t\t{ CFArrayRef theAnswer = NULL; if(IsValid()) { theAnswer = CFPlugInFindFactoriesForPlugInTypeInPlugIn(inTypeUUID, mCFPlugIn); } return theAnswer; }\n\n//\tValue Access\npublic:\n\tCFPlugInRef\t\tGetCFPlugIn() const\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mCFPlugIn; }\n\tCFPlugInRef\t\tCopyCFPlugIn() const\t\t\t\t\t\t\t\t\t\t\t\t{ if(mCFPlugIn != NULL) { CFRetain(mCFPlugIn); } return mCFPlugIn; }\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFPreferences.cpp",
    "content": "/*\n     File: CACFPreferences.cpp\n Abstract: CACFPreferences.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CACFPreferences.h\"\n\n//\tPublicUtility Includes\n#include \"CACFDistributedNotification.h\"\n#include \"CADebugMacros.h\"\n\n//==================================================================================================\n//\tCACFPreferences\n//==================================================================================================\n\nCFPropertyListRef\tCACFPreferences::CopyValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost)\n{\n\t//\tsynchronize to make sure that what's in memory matches what's on disk\n\tSynchronize(inCurrentUser, inCurrentHost, false);\n\t\n\tCFPropertyListRef theAnswer = NULL;\n\tCFStringRef theUser = inCurrentUser ? kCFPreferencesCurrentUser : kCFPreferencesAnyUser;\n\tCFStringRef theHost = inCurrentHost ? kCFPreferencesCurrentHost : kCFPreferencesAnyHost;\n\t\n\ttheAnswer = CFPreferencesCopyValue(inKey, kCFPreferencesAnyApplication, theUser, theHost);\n\t\n\treturn theAnswer;\n}\n\nCFStringRef\tCACFPreferences::CopyStringValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost)\n{\n\tCFStringRef theAnswer = NULL;\n\t\n\t//\tget the raw value\n\tCFPropertyListRef theRawValue = CopyValue(inKey, inCurrentUser, inCurrentHost);\n\t\n\tif(theRawValue != NULL)\n\t{\n\t\t//\tget it's type ID and make sure it's a CFString\n\t\tCFTypeID theTypeID = CFGetTypeID(theRawValue);\n\t\tif(theTypeID == CFStringGetTypeID())\n\t\t{\n\t\t\t//\tcast the value\n\t\t\ttheAnswer = static_cast<CFStringRef>(theRawValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tCFRelease(theRawValue);\n\t\t\tDebugMessage(\"CACFPreferences::CopyStringValue: not a CFString\");\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFNumberRef\tCACFPreferences::CopyNumberValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost)\n{\n\tCFNumberRef theAnswer = NULL;\n\t\n\t//\tget the raw value\n\tCFPropertyListRef theRawValue = CopyValue(inKey, inCurrentUser, inCurrentHost);\n\t\n\tif(theRawValue != NULL)\n\t{\n\t\t//\tget it's type ID and make sure it's a CFNumber\n\t\tCFTypeID theTypeID = CFGetTypeID(theRawValue);\n\t\tif(theTypeID == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tcast the value\n\t\t\ttheAnswer = static_cast<CFNumberRef>(theRawValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tCFRelease(theRawValue);\n\t\t\tDebugMessage(\"CACFPreferences::CopyNumberValue: not a CFNumber\");\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFArrayRef\tCACFPreferences::CopyArrayValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost)\n{\n\tCFArrayRef theAnswer = NULL;\n\t\n\t//\tget the raw value\n\tCFPropertyListRef theRawValue = CopyValue(inKey, inCurrentUser, inCurrentHost);\n\t\n\tif(theRawValue != NULL)\n\t{\n\t\t//\tget it's type ID and make sure it's a CFArray\n\t\tCFTypeID theTypeID = CFGetTypeID(theRawValue);\n\t\tif(theTypeID == CFArrayGetTypeID())\n\t\t{\n\t\t\t//\tcast the value\n\t\t\ttheAnswer = static_cast<CFArrayRef>(theRawValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tCFRelease(theRawValue);\n\t\t\tDebugMessage(\"CACFPreferences::CopyArrayValue: not a CFArray\");\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFDictionaryRef\tCACFPreferences::CopyDictionaryValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost)\n{\n\tCFDictionaryRef theAnswer = NULL;\n\t\n\t//\tget the raw value\n\tCFPropertyListRef theRawValue = CopyValue(inKey, inCurrentUser, inCurrentHost);\n\t\n\tif(theRawValue != NULL)\n\t{\n\t\t//\tget it's type ID and make sure it's a CFDictionary\n\t\tCFTypeID theTypeID = CFGetTypeID(theRawValue);\n\t\tif(theTypeID == CFDictionaryGetTypeID())\n\t\t{\n\t\t\t//\tcast the value\n\t\t\ttheAnswer = static_cast<CFDictionaryRef>(theRawValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tCFRelease(theRawValue);\n\t\t\tDebugMessage(\"CACFPreferences::CopyDictionaryValue: not a CFDictionary\");\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nvoid\tCACFPreferences::SetValue(CFStringRef inKey, CFPropertyListRef inValue, bool inCurrentUser, bool inCurrentHost, bool inSynchronize)\n{\n\tCFStringRef theUser = inCurrentUser ? kCFPreferencesCurrentUser : kCFPreferencesAnyUser;\n\tCFStringRef theHost = inCurrentHost ? kCFPreferencesCurrentHost : kCFPreferencesAnyHost;\n\tCFPreferencesSetValue(inKey, inValue, kCFPreferencesAnyApplication, theUser, theHost);\n\t\n\tif(inSynchronize)\n\t{\n\t\tSynchronize(inCurrentUser, inCurrentHost, true);\n\t}\n}\n\nvoid\tCACFPreferences::DeleteValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost, bool inSynchronize)\n{\n\tCFStringRef theUser = inCurrentUser ? kCFPreferencesCurrentUser : kCFPreferencesAnyUser;\n\tCFStringRef theHost = inCurrentHost ? kCFPreferencesCurrentHost : kCFPreferencesAnyHost;\n\tCFPreferencesSetValue(inKey, NULL, kCFPreferencesAnyApplication, theUser, theHost);\n\t\n\tif(inSynchronize)\n\t{\n\t\tSynchronize(theUser, inCurrentHost, true);\n\t}\n}\n\nvoid\tCACFPreferences::Synchronize(bool inCurrentUser, bool inCurrentHost, bool inForce)\n{\n\tif(inForce || ArePrefsOutOfDate(inCurrentUser, inCurrentHost))\n\t{\n\t\tCFStringRef theUser = inCurrentUser ? kCFPreferencesCurrentUser : kCFPreferencesAnyUser;\n\t\tCFStringRef theHost = inCurrentHost ? kCFPreferencesCurrentHost : kCFPreferencesAnyHost;\n\t\tCFPreferencesSynchronize(kCFPreferencesAnyApplication, theUser, theHost);\n\t\tMarkPrefsClean(inCurrentUser, inCurrentHost);\n\t}\n}\n\nvoid\tCACFPreferences::MarkPrefsOutOfDate(bool inCurrentUser, bool inCurrentHost)\n{\n\tif(!inCurrentUser && !inCurrentHost)\n\t{\n\t\tsAnyUserAnyHostPrefsOutOfDate = true;\n\t}\n\telse if(!inCurrentUser && inCurrentHost)\n\t{\n\t\tsAnyUserCurrentHostPrefsOutOfDate = true;\n\t}\n\telse if(inCurrentUser && !inCurrentHost)\n\t{\n\t\tsCurrentUserAnyHostPrefsOutOfDate = true;\n\t}\n\telse if(inCurrentUser && inCurrentHost)\n\t{\n\t\tsCurrentUserCurrentHostPrefsOutOfDate = true;\n\t}\n}\n\nvoid\tCACFPreferences::MarkPrefsClean(bool inCurrentUser, bool inCurrentHost)\n{\n\tif(!inCurrentUser && !inCurrentHost)\n\t{\n\t\tsAnyUserAnyHostPrefsOutOfDate = false;\n\t}\n\telse if(!inCurrentUser && inCurrentHost)\n\t{\n\t\tsAnyUserCurrentHostPrefsOutOfDate = false;\n\t}\n\telse if(inCurrentUser && !inCurrentHost)\n\t{\n\t\tsCurrentUserAnyHostPrefsOutOfDate = false;\n\t}\n\telse if(inCurrentUser && inCurrentHost)\n\t{\n\t\tsCurrentUserCurrentHostPrefsOutOfDate = false;\n\t}\n}\n\nvoid\tCACFPreferences::SendNotification(CFStringRef inName)\n{\n\tCACFDistributedNotification::PostNotification(inName, NULL, true);\n}\n\nbool\tCACFPreferences::ArePrefsOutOfDate(bool inCurrentUser, bool inCurrentHost)\n{\n\tbool theAnswer = false;\n\t\n\tif(!inCurrentUser && !inCurrentHost)\n\t{\n\t\ttheAnswer = sAnyUserAnyHostPrefsOutOfDate;\n\t}\n\telse if(!inCurrentUser && inCurrentHost)\n\t{\n\t\ttheAnswer = sAnyUserCurrentHostPrefsOutOfDate;\n\t}\n\telse if(inCurrentUser && !inCurrentHost)\n\t{\n\t\ttheAnswer = sCurrentUserAnyHostPrefsOutOfDate;\n\t}\n\telse if(inCurrentUser && inCurrentHost)\n\t{\n\t\ttheAnswer = sCurrentUserCurrentHostPrefsOutOfDate;\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCACFPreferences::sAnyUserAnyHostPrefsOutOfDate = false;\nbool\tCACFPreferences::sAnyUserCurrentHostPrefsOutOfDate = false;\nbool\tCACFPreferences::sCurrentUserAnyHostPrefsOutOfDate = false;\nbool\tCACFPreferences::sCurrentUserCurrentHostPrefsOutOfDate = false;\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFPreferences.h",
    "content": "/*\n     File: CACFPreferences.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFPreferences_h__)\n#define __CACFPreferences_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include <CoreFoundation.h>\n#endif\n\n//==================================================================================================\n//\tCACFPreferences\n//==================================================================================================\n\nclass CACFPreferences\n{\n\n//\tOperations\npublic:\n\tstatic CFPropertyListRef\tCopyValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost);\n\tstatic CFStringRef\t\t\tCopyStringValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost);\n\tstatic CFNumberRef\t\t\tCopyNumberValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost);\n\tstatic CFArrayRef\t\t\tCopyArrayValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost);\n\tstatic CFDictionaryRef\t\tCopyDictionaryValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost);\n\tstatic void\t\t\t\t\tSetValue(CFStringRef inKey, CFPropertyListRef inValue, bool inCurrentUser, bool inCurrentHost, bool inSynchronize);\n\tstatic void\t\t\t\t\tDeleteValue(CFStringRef inKey, bool inCurrentUser, bool inCurrentHost, bool inSynchronize);\n\tstatic void\t\t\t\t\tSynchronize(bool inCurrentUser, bool inCurrentHost, bool inForce);\n\tstatic void\t\t\t\t\tMarkPrefsOutOfDate(bool inCurrentUser, bool inCurrentHost);\n\tstatic void\t\t\t\t\tMarkPrefsClean(bool inCurrentUser, bool inCurrentHost);\n\tstatic void\t\t\t\t\tSendNotification(CFStringRef inName);\n\nprivate:\n\tstatic bool\t\t\t\t\tArePrefsOutOfDate(bool inCurrentUser, bool inCurrentHost);\n\t\n\tstatic bool\t\t\t\t\tsAnyUserAnyHostPrefsOutOfDate;\n\tstatic bool\t\t\t\t\tsAnyUserCurrentHostPrefsOutOfDate;\n\tstatic bool\t\t\t\t\tsCurrentUserAnyHostPrefsOutOfDate;\n\tstatic bool\t\t\t\t\tsCurrentUserCurrentHostPrefsOutOfDate;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFString.cpp",
    "content": "/*\n     File: CACFString.cpp\n Abstract: CACFString.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CACFString.h\"\n\n//=============================================================================\n//\tCACFString\n//=============================================================================\n\nUInt32\tCACFString::GetStringByteLength(CFStringRef inCFString, CFStringEncoding inEncoding)\n{\n\tCFIndex theAnswer = 0;\n\t\n\tif(inCFString != NULL)\n\t{\n\t\tCFRange theRange = { 0, CFStringGetLength(inCFString) };\n\t\tCFStringGetBytes(inCFString, theRange, inEncoding, 0, false, NULL, 0x7FFFFFFF, &theAnswer);\n\t}\n\t\n\treturn UInt32(theAnswer);\n}\n\nvoid\tCACFString::GetCString(CFStringRef inCFString, char* outString, UInt32& ioStringSize, CFStringEncoding inEncoding)\n{\n\tif(ioStringSize > 0)\n\t{\n\t\tif(inCFString != NULL)\n\t\t{\n\t\t\tCFIndex theLength = 0;\n\t\t\tCFRange theRange = { 0, CFStringGetLength(inCFString) };\n\t\t\tCFStringGetBytes(inCFString, theRange, inEncoding, 0, false, (UInt8*)outString, static_cast<CFIndex>(ioStringSize - 1), &theLength);\n\t\t\toutString[theLength] = 0;\n\t\t\tioStringSize = ToUInt32(theLength) + 1;\n\t\t}\n\t\telse\n\t\t{\n\t\t\toutString[0] = 0;\n\t\t\tioStringSize = 1;\n\t\t}\n\t}\n}\n\nvoid\tCACFString::GetUnicodeString(CFStringRef inCFString, UInt16* outString, UInt32& ioStringSize)\n{\n\tif(ioStringSize > 0)\n\t{\n\t\tif(inCFString != NULL)\n\t\t{\n\t\t\tCFRange theStringRange = { 0, CFStringGetLength(inCFString) };\n\t\t\tif(static_cast<UInt32>(theStringRange.length) > ioStringSize)\n\t\t\t{\n\t\t\t\ttheStringRange.length = static_cast<CFIndex>(ioStringSize);\n\t\t\t}\n\t\t\tCFStringGetCharacters(inCFString, theStringRange, outString);\n\t\t\tioStringSize = ToUInt32(theStringRange.length);\n\t\t}\n\t\telse\n\t\t{\n\t\t\toutString[0] = 0;\n\t\t\tioStringSize = 0;\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CACFString.h",
    "content": "/*\n     File: CACFString.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CACFString_h__)\n#define __CACFString_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CADebugMacros.h\"\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <CoreFoundation/CFString.h>\n#else\n\t#include <CoreAudioTypes.h>\n\t#include <CFString.h>\n#endif\n\n//=============================================================================\n//\tCACFString\n//\n//\tNotes\n//\t-\tUsing the AssignWithoutRetain() method will fool the static analyzer into thinking that the\n//\t\tCFString being assigned will be leaked. This is because the static analyzer is not smart\n//\t\tenough to understand that the destructor will release the object.\n//=============================================================================\n\nclass\tCACFString\n{\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCACFString() : mCFString(NULL), mWillRelease(true) {}\n\texplicit\t\t\tCACFString(CFStringRef inCFString) : mCFString(inCFString), mWillRelease(true) {}\n\t\t\t\t\t\tCACFString(const char* inCString) : mCFString(CFStringCreateWithCString(NULL, inCString, kCFStringEncodingASCII)), mWillRelease(true) {}\n\t\t\t\t\t\tCACFString(CFStringRef inCFString, bool inWillRelease) : mCFString(inCFString), mWillRelease(inWillRelease) {}\n\t\t\t\t\t\tCACFString(const char* inCString, bool inWillRelease) : mCFString(CFStringCreateWithCString(NULL, inCString, kCFStringEncodingASCII)), mWillRelease(inWillRelease) {}\n\t\t\t\t\t\tCACFString(const char* inCString, CFStringEncoding inCStringEncoding, bool inWillRelease = true) : mCFString(CFStringCreateWithCString(NULL, inCString, inCStringEncoding)), mWillRelease(inWillRelease) {}\n\t\t\t\t\t\t~CACFString() { Release(); }\n\t\t\t\t\t\tCACFString(const CACFString& inString) : mCFString(inString.mCFString), mWillRelease(inString.mWillRelease) { Retain(); }\n\tCACFString&\t\t\toperator=(const CACFString& inString) { if (inString.mCFString != mCFString) { Release(); mCFString = inString.mCFString; mWillRelease = inString.mWillRelease; Retain(); } return *this; }\n\tCACFString&\t\t\toperator=(CFStringRef inCFString) { if (inCFString != mCFString) { Release(); mCFString = inCFString; } mWillRelease = true; Retain(); return *this; }\n\tvoid\t\t\t\tAssignWithoutRetain(CFStringRef inCFString) { if (inCFString != mCFString) { Release(); mCFString = inCFString; } mWillRelease = true; }\n\nprivate:\n\tvoid\t\t\t\tRetain() { if(mWillRelease && (mCFString != NULL)) { CFRetain(mCFString); } }\n\tvoid\t\t\t\tRelease() { if(mWillRelease && (mCFString != NULL)) { CFRelease(mCFString); } }\n\t\n\tCFStringRef\t\t\tmCFString;\n\tbool\t\t\t\tmWillRelease;\n\n//\tOperations\npublic:\n\tvoid\t\t\t\tAllowRelease() { mWillRelease = true; }\n\tvoid\t\t\t\tDontAllowRelease() { mWillRelease = false; }\n\tbool\t\t\t\tIsValid() const { return mCFString != NULL; }\n\tbool\t\t\t\tIsEqualTo(CFStringRef inString) const { bool theAnswer = false; if(mCFString != NULL) { theAnswer = CFStringCompare(inString, mCFString, 0) == kCFCompareEqualTo; } return theAnswer; }\n\tbool\t\t\t\tStartsWith(CFStringRef inString) const { bool theAnswer = false; if(mCFString != NULL) { theAnswer = CFStringHasPrefix(mCFString, inString); } return theAnswer; }\n\tbool\t\t\t\tEndsWith(CFStringRef inString) const { bool theAnswer = false; if(mCFString != NULL) { theAnswer = CFStringHasSuffix(mCFString, inString); } return theAnswer; }\n\n//\tValue Access\npublic:\n\tCFStringRef\t\t\tGetCFString() const { return mCFString; }\n\tCFStringRef\t\t\tCopyCFString() const { if(mCFString != NULL) { CFRetain(mCFString); } return mCFString; }\n\tconst CFStringRef*\tGetPointerToStorage() const\t{ return &mCFString; }\n\tCFStringRef&\t\tGetStorage() { Release(); mWillRelease = true; return mCFString; }\n\tUInt32\t\t\t\tGetLength() const { UInt32 theAnswer = 0; if(mCFString != NULL) { theAnswer = ToUInt32(CFStringGetLength(mCFString)); } return theAnswer; }\n\tUInt32\t\t\t\tGetByteLength(CFStringEncoding inEncoding = kCFStringEncodingUTF8) const { UInt32 theAnswer = 0; if(mCFString != NULL) { theAnswer = GetStringByteLength(mCFString, inEncoding); } return theAnswer; }\n\tvoid\t\t\t\tGetCString(char* outString, UInt32& ioStringSize, CFStringEncoding inEncoding = kCFStringEncodingUTF8) const { GetCString(mCFString, outString, ioStringSize, inEncoding); }\n\tvoid\t\t\t\tGetUnicodeString(UInt16* outString, UInt32& ioStringSize) const { GetUnicodeString(mCFString, outString, ioStringSize); }\n\tSInt32\t\t\t\tGetAsInteger() { return GetAsInteger(mCFString); }\n\tFloat64\t\t\t\tGetAsFloat64() { return GetAsFloat64(mCFString); }\n\n\tstatic UInt32\t\tGetStringLength(CFStringRef inCFString)  { UInt32 theAnswer = 0; if(inCFString != NULL) { theAnswer = ToUInt32(CFStringGetLength(inCFString)); } return theAnswer; }\n\tstatic UInt32\t\tGetStringByteLength(CFStringRef inCFString, CFStringEncoding inEncoding = kCFStringEncodingUTF8);\n\tstatic void\t\t\tGetCString(CFStringRef inCFString, char* outString, UInt32& ioStringSize, CFStringEncoding inEncoding = kCFStringEncodingUTF8);\n\tstatic void\t\t\tGetUnicodeString(CFStringRef inCFString, UInt16* outString, UInt32& ioStringSize);\n\tstatic SInt32\t\tGetAsInteger(CFStringRef inCFString) { SInt32 theAnswer = 0; if(inCFString != NULL){ theAnswer = CFStringGetIntValue(inCFString); } return theAnswer; }\n\tstatic Float64\t\tGetAsFloat64(CFStringRef inCFString) { Float64 theAnswer = 0; if(inCFString != NULL){ theAnswer = CFStringGetDoubleValue(inCFString); } return theAnswer; }\n\t\n};\n\ninline bool\toperator<(const CACFString& x, const CACFString& y) { return CFStringCompare(x.GetCFString(), y.GetCFString(), 0) == kCFCompareLessThan; }\ninline bool\toperator==(const CACFString& x, const CACFString& y) { return CFStringCompare(x.GetCFString(), y.GetCFString(), 0) == kCFCompareEqualTo; }\ninline bool\toperator!=(const CACFString& x, const CACFString& y) { return !(x == y); }\ninline bool\toperator<=(const CACFString& x, const CACFString& y) { return (x < y) || (x == y); }\ninline bool\toperator>=(const CACFString& x, const CACFString& y) { return !(x < y); }\ninline bool\toperator>(const CACFString& x, const CACFString& y) { return !((x < y) || (x == y)); }\n\ninline bool\toperator<(const CACFString& x, CFStringRef y) { return CFStringCompare(x.GetCFString(), y, 0) == kCFCompareLessThan; }\ninline bool\toperator==(const CACFString& x, CFStringRef y) { return CFStringCompare(x.GetCFString(), y, 0) == kCFCompareEqualTo; }\ninline bool\toperator!=(const CACFString& x, CFStringRef y) { return !(x == y); }\ninline bool\toperator<=(const CACFString& x, CFStringRef y) { return (x < y) || (x == y); }\ninline bool\toperator>=(const CACFString& x, CFStringRef y) { return !(x < y); }\ninline bool\toperator>(const CACFString& x, CFStringRef y) { return !((x < y) || (x == y)); }\n\ninline bool\toperator<(CFStringRef x, const CACFString& y) { return CFStringCompare(x, y.GetCFString(), 0) == kCFCompareLessThan; }\ninline bool\toperator==(CFStringRef x, const CACFString& y) { return CFStringCompare(x, y.GetCFString(), 0) == kCFCompareEqualTo; }\ninline bool\toperator!=(CFStringRef x, const CACFString& y) { return !(x == y); }\ninline bool\toperator<=(CFStringRef x, const CACFString& y) { return (x < y) || (x == y); }\ninline bool\toperator>=(CFStringRef x, const CACFString& y) { return !(x < y); }\ninline bool\toperator>(CFStringRef x, const CACFString& y) { return !((x < y) || (x == y)); }\n\n//=============================================================================\n//\tCACFMutableString\n//=============================================================================\n\nclass\tCACFMutableString\n{\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCACFMutableString() : mCFMutableString(NULL), mWillRelease(true) {}\n\t\t\t\t\t\tCACFMutableString(CFMutableStringRef inCFMutableString, bool inWillRelease = true) : mCFMutableString(inCFMutableString), mWillRelease(inWillRelease) {}\n\t\t\t\t\t\tCACFMutableString(CFStringRef inStringToCopy, bool /*inMakeCopy*/, bool inWillRelease = true) : mCFMutableString(CFStringCreateMutableCopy(NULL, 0, inStringToCopy)), mWillRelease(inWillRelease) {}\n\t\t\t\t\t\tCACFMutableString(const char* inCString, bool inWillRelease = true) : mCFMutableString(NULL), mWillRelease(inWillRelease) { CACFString theString(inCString); mCFMutableString = CFStringCreateMutableCopy(NULL, 0, theString.GetCFString()); }\n\t\t\t\t\t\tCACFMutableString(const char* inCString, CFStringEncoding inCStringEncoding, bool inWillRelease = true) : mCFMutableString(NULL), mWillRelease(inWillRelease) { CACFString theString(inCString, inCStringEncoding); mCFMutableString = CFStringCreateMutableCopy(NULL, 0, theString.GetCFString()); }\n\t\t\t\t\t\t~CACFMutableString() { Release(); }\n\t\t\t\t\t\tCACFMutableString(const CACFMutableString& inString) : mCFMutableString(inString.mCFMutableString), mWillRelease(inString.mWillRelease) { Retain(); }\n\tCACFMutableString&\toperator=(const CACFMutableString& inString) { Release(); mCFMutableString = inString.mCFMutableString; mWillRelease = inString.mWillRelease; Retain(); return *this; }\n\tCACFMutableString&\toperator=(CFMutableStringRef inCFMutableString) { Release(); mCFMutableString = inCFMutableString; mWillRelease = true; return *this; }\n\nprivate:\n\tvoid\t\t\t\tRetain() { if(mWillRelease && (mCFMutableString != NULL)) { CFRetain(mCFMutableString); } }\n\tvoid\t\t\t\tRelease() { if(mWillRelease && (mCFMutableString != NULL)) { CFRelease(mCFMutableString); } }\n\t\n\tCFMutableStringRef\tmCFMutableString;\n\tbool\t\t\t\tmWillRelease;\n\n//\tOperations\npublic:\n\tvoid\t\t\t\tAllowRelease() { mWillRelease = true; }\n\tvoid\t\t\t\tDontAllowRelease() { mWillRelease = false; }\n\tbool\t\t\t\tIsValid() { return mCFMutableString != NULL; }\n\tbool\t\t\t\tIsEqualTo(CFStringRef inString) const { bool theAnswer = false; if(mCFMutableString != NULL) { theAnswer = CFStringCompare(inString, mCFMutableString, 0) == kCFCompareEqualTo; } return theAnswer; }\n\tbool\t\t\t\tStartsWith(CFStringRef inString) const { bool theAnswer = false; if(mCFMutableString != NULL) { theAnswer = CFStringHasPrefix(mCFMutableString, inString); } return theAnswer; }\n\tbool\t\t\t\tEndsWith(CFStringRef inString) const { bool theAnswer = false; if(mCFMutableString != NULL) { theAnswer = CFStringHasSuffix(mCFMutableString, inString); } return theAnswer; }\n\tvoid\t\t\t\tAppend(CFStringRef inString) { if(mCFMutableString != NULL) { CFStringAppend(mCFMutableString, inString); } }\n\n//\tValue Access\npublic:\n\tCFMutableStringRef\tGetCFMutableString() const { return mCFMutableString; }\n\tCFMutableStringRef\tCopyCFMutableString() const { if(mCFMutableString != NULL) { CFRetain(mCFMutableString); } return mCFMutableString; }\n\tUInt32\t\t\t\tGetLength() const { UInt32 theAnswer = 0; if(mCFMutableString != NULL) { theAnswer = ToUInt32(CFStringGetLength(mCFMutableString)); } return theAnswer; }\n\tUInt32\t\t\t\tGetByteLength(CFStringEncoding inEncoding = kCFStringEncodingUTF8) const { UInt32 theAnswer = 0; if(mCFMutableString != NULL) { theAnswer = CACFString::GetStringByteLength(mCFMutableString, inEncoding); } return theAnswer; }\n\tvoid\t\t\t\tGetCString(char* outString, UInt32& ioStringSize, CFStringEncoding inEncoding = kCFStringEncodingUTF8) const { CACFString::GetCString(mCFMutableString, outString, ioStringSize, inEncoding); }\n\tvoid\t\t\t\tGetUnicodeString(UInt16* outString, UInt32& ioStringSize) const { CACFString::GetUnicodeString(mCFMutableString, outString, ioStringSize); }\n\tSInt32\t\t\t\tGetAsInteger() { return CACFString::GetAsInteger(mCFMutableString); }\n\tFloat64\t\t\t\tGetAsFloat64() { return CACFString::GetAsFloat64(mCFMutableString); }\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAComponent.cpp",
    "content": "/*\n     File: CAComponent.cpp\n Abstract: CAComponent.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAComponent.h\"\n#include \"CAComponentDescription.h\"\n#include \"CACFDictionary.h\"\n#include <stdlib.h>\n#include \"CAAutoDisposer.h\"\n\nCAComponent::CAComponent (const AudioComponentDescription& inDesc, CAComponent* next)\n\t: mManuName(0), mAUName(0), mCompName(0)\n{\n\tmComp = AudioComponentFindNext ((next ? next->Comp() : NULL), &inDesc);\n\tif (mComp)\n\t\tAudioComponentGetDescription(Comp(), &mDesc);\n\telse\n\t\tmemcpy (&mDesc, &inDesc, sizeof(AudioComponentDescription));\n}\n\nCAComponent::CAComponent (const AudioComponent& comp) \n\t: mComp (comp),\n\t  mManuName(0), \n\t  mAUName(0), \n\t  mCompName(0)\n{\n\tAudioComponentGetDescription (Comp(), &mDesc);\n}\n\nCAComponent::CAComponent (const AudioComponentInstance& compInst) \n\t: mComp (NULL), \n\t  mManuName(0), \n\t  mAUName(0), \n\t  mCompName(0)\n{ \n\tmComp = AudioComponentInstanceGetComponent (compInst);\n\tAudioComponentGetDescription (Comp(), &mDesc);\n}\n\nCAComponent::CAComponent (OSType inType, OSType inSubtype, OSType inManu)\n\t: mDesc (inType, inSubtype, inManu),\n\t  mManuName(0), mAUName(0), mCompName(0)\n{\n\tmComp = AudioComponentFindNext (NULL, &mDesc);\n\tAudioComponentGetDescription (Comp(), &mDesc);\n}\n\nCAComponent::~CAComponent ()\n{\n\tClear();\n}\n\nOSStatus\t\tCAComponent::GetVersion (UInt32 &outVersion) const\n{\n\treturn AudioComponentGetVersion (mComp, &outVersion);\n}\n\nvoid\t\t\tCAComponent::Clear ()\n{\n\tif (mManuName) { CFRelease (mManuName); mManuName = 0; }\n\tif (mAUName) { CFRelease (mAUName);  mAUName = 0; }\n\tif (mCompName) { CFRelease (mCompName); mCompName = 0; }\n}\n\nCAComponent&\tCAComponent::operator= (const CAComponent& y)\n{\n\tClear();\n\n\tmComp = y.mComp;\n\tmDesc = y.mDesc;\n\n\tif (y.mManuName) { mManuName = y.mManuName; CFRetain (mManuName); }\n\tif (y.mAUName) { mAUName = y.mAUName; CFRetain (mAUName); }\n\tif (y.mCompName) { mCompName = y.mCompName; CFRetain (mCompName); } \n\n\treturn *this;\n}\n\nvoid \t\tCAComponent::SetCompNames () const\n{\n\tif (!mCompName) {\n\t\n\t\tCFStringRef compName;\n\t\tOSStatus result = AudioComponentCopyName (Comp(), &compName);\n\t\tif (result) return;\n\t\t\n\t\tconst_cast<CAComponent*>(this)->mCompName = compName;\n\t\tif (compName)\n\t\t{\n\t\t\tCFArrayRef splitStrArray = CFStringCreateArrayBySeparatingStrings(NULL, compName, CFSTR(\":\"));\n\t\t\t\n\t\t\t// we need to retain these values so the strings are not lost when the array is released\n\t\t\tconst_cast<CAComponent*>(this)->mManuName = (CFStringRef)CFArrayGetValueAtIndex(splitStrArray, 0);\n            CFRetain(this->mManuName);\n\t\t\tif (CFArrayGetCount(splitStrArray) > 1)\n\t\t\t{\n\t\t\t\tCFStringRef str = (CFStringRef)CFArrayGetValueAtIndex(splitStrArray, 1);\n\t\t\t\t\n\t\t\t\tCFMutableStringRef mstr = CFStringCreateMutableCopy (NULL, CFStringGetLength(str), str);\n\n\t\t\t\t// this needs to trim out white space:\n\t\t\t\t\n\t\t\t\tCFStringTrimWhitespace (mstr);\n\t\t\t\n\t\t\t\tconst_cast<CAComponent*>(this)->mAUName = mstr;\n\t\t\t} else\n\t\t\t\tconst_cast<CAComponent*>(this)->mAUName = NULL;\n\t\t\t\n\t\t\tCFRelease(splitStrArray);\n\t\t}\n\t}\n}\n\nstatic void\t_ShowCF (FILE* file, CFStringRef str)\n{\n\tif (CFGetTypeID(str) != CFStringGetTypeID()) {\n\t\tCFShow(str);\n\t\treturn;\n\t}\n\n\tCFIndex len = CFStringGetLength(str);\n\tchar* chars = (char*)CA_malloc (len * 2); // give us plenty of room for unichar chars\n\tif (CFStringGetCString (str, chars, len * 2, kCFStringEncodingUTF8))\n\t\tfprintf (file, \"%s\", chars);\n\telse\n\t\tCFShow (str);\n\n\tfree (chars);\n}\n\nvoid\tCAComponent::Print(FILE* file) const\n{\n\tfprintf (file, \"CAComponent: %p\", Comp());\n\tif (mManuName) {\n\t\tfprintf (file, \", Manu:\"); _ShowCF (file, mManuName);\n\t\tif (mAUName) fprintf (file, \", Name:\"); _ShowCF (file, mAUName);\n\t}\n\tfprintf (file, \", \"); \n\tDesc ().Print(file);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAComponent.h",
    "content": "/*\n     File: CAComponent.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAComponent_h__\n#define __CAComponent_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n#else\n\t#include <ConditionalMacros.h>\n#endif\n\n#include \"CAComponentDescription.h\"\n\nclass CAComponent \n{\npublic:\n\tCAComponent ()\n\t\t: mComp (0), mDesc(), mManuName(0), mAUName(0), mCompName(0) {}\n\t\t\n\t\t// if next is specifed that is used to find the next component after that one\n\tCAComponent (const AudioComponentDescription& inDesc, CAComponent* next = 0);\n\t\n\tCAComponent (const CAComponent& y) \n\t\t: mComp (0), mDesc(), mManuName(0), mAUName(0), mCompName(0) { *this = y; }\n\n\tCAComponent (const AudioComponent& comp);\n\t\n\tCAComponent (const AudioComponentInstance& compInst);\n\n\tCAComponent (OSType inType, OSType inSubtype = 0, OSType inManu = 0);\n\t\n\t~CAComponent ();\n\t\n\tCAComponent&\toperator= (const CAComponent& y);\n\t\n\t\t// returns true if this object references a valid component\n\tbool\t\t\tIsValid () const { return Comp() != 0; }\n\t\n\tbool\t\t\tHasAUStrings() const { \tSetCompNames (); return mManuName != 0; }\n\n\t\t// CFStringRef should be retained by caller if needed beyond lifetime of this object\n\t\t\n\t\t// Can return NULL if component doesn't follow AU naming conventions\n\tCFStringRef\t\tGetAUManu () const { SetCompNames (); return mManuName; }\n\tCFStringRef\t\tGetAUName () const { SetCompNames (); return mAUName ? mAUName : mCompName; }\n\t\t\n\t\t// Return value of NULL indicates a problem getting that information from the component\n\tCFStringRef\t\tGetCompName () const { SetCompNames(); return mCompName; }\n\t\n\tconst CAComponentDescription&\tDesc () const { return mDesc; }\n\t\t\t\n\tOSStatus\t\tOpen (AudioComponentInstance& outInst) const \n\t{\n\t\treturn AudioComponentInstanceNew (Comp(), &outInst);\n  \t}\n\n\tOSStatus\t\t\tGetVersion (UInt32 &outVersion) const;\n\t\n\tconst AudioComponent&\t\tComp() const { return mComp; }\n\t\n\tvoid\t\t\t\tPrint(FILE* file = stdout) const;\n\n\tOSStatus\t\t\tSave (CFPropertyListRef *outData) const;\n\t\t\n\tOSStatus\t\t\tRestore (CFPropertyListRef &inData);\n\t\nprivate:\n\tAudioComponent mComp;\n\tCAComponentDescription mDesc;\n\t\n\tCFStringRef mManuName, mAUName, mCompName;\n\n\tvoid\tSetCompNames () const;\n\tvoid\tSetCompInfo () const;\n\tvoid\tClear ();\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAComponentDescription.cpp",
    "content": "/*\n     File: CAComponentDescription.cpp\n Abstract: CAComponentDescription.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAComponentDescription.h\"\n#include \"CAStreamBasicDescription.h\"\n#include <ctype.h>\n\nvoid CAShowComponentDescription(const AudioComponentDescription *desc)\n{\n\tCAComponentDescription::_CAShowComponentDescription (desc, stdout);\n}\n\nvoid \tCAComponentDescription::_CAShowComponentDescription(const AudioComponentDescription *desc, FILE* file)\n{\n\tif (desc)\n\t{\n\t\tchar str[24];\n\t\tfprintf (file, \"AudioComponentDescription: %s - \", CAStringForOSType(desc->componentType, str, sizeof(str)));\n\t\tfprintf (file, \"%s - \", CAStringForOSType(desc->componentSubType, str, sizeof(str)));\n\t\tfprintf (file, \"%s\", CAStringForOSType(desc->componentManufacturer, str, sizeof(str)));\t\t\n\t\tfprintf (file, \", 0x%X, 0x%X\\n\", (int)desc->componentFlags, (int)desc->componentFlagsMask);\n\t}\n}\n\nCAComponentDescription::CAComponentDescription (OSType inType, OSType inSubtype, OSType inManu)\n{\n\tcomponentType = inType;\n\tcomponentSubType = inSubtype;\n\tcomponentManufacturer = inManu;\n\tcomponentFlags = 0;\n\tcomponentFlagsMask = 0;\n}\n\nbool\tCAComponentDescription::IsAU () const \n{ \n\tbool flag = IsEffect() || IsMusicDevice() || IsOffline();\n\tif (flag) return true;\n\t\n\tswitch (componentType) {\n\t\tcase kAudioUnitType_Output:\n\t\tcase kAudioUnitType_FormatConverter:\n\t\tcase kAudioUnitType_Mixer:\n\t\t\treturn true;\n\t}\n\treturn false;\n}\n\ninline bool _MatchTest (const OSType &inTypeA, const OSType &inTypeB)\n{\n\treturn ((inTypeA == inTypeB) || (!inTypeA && !inTypeB) || (inTypeA && !inTypeB) || (!inTypeA && inTypeB)); \n}\n\nbool\tCAComponentDescription::Matches (const AudioComponentDescription &desc) const\n{\n\tbool matches = false;\n\t\t\n\t\t// see if the type matches\n\tmatches = _MatchTest (componentType, desc.componentType);\n\t\n\tif (matches)\n\t\tmatches = _MatchTest (componentSubType, desc.componentSubType);\n\t\n\tif (matches)\n\t\tmatches = _MatchTest (componentManufacturer, desc.componentManufacturer);\n\t\n\treturn matches;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAComponentDescription.h",
    "content": "/*\n     File: CAComponentDescription.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAComponentDescription_h__\n#define __CAComponentDescription_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnit.h>\n#else\n\t#include <ConditionalMacros.h>\n\t#include <AudioUnit.h>\n#endif\n\n#include \"CACFDictionary.h\"\n#include <stdio.h>\n#include <string.h>\n\nvoid CAShowComponentDescription(const AudioComponentDescription *desc);\n\n// ____________________________________________________________________________\n//\n//\tCAComponentDescription\nclass CAComponentDescription : public AudioComponentDescription {\npublic:\n\tCAComponentDescription() { memset (this, 0, sizeof (AudioComponentDescription)); }\n\t\n\tCAComponentDescription (OSType inType, OSType inSubtype = 0, OSType inManu = 0);\n\n\tCAComponentDescription(const AudioComponentDescription& desc) { memcpy (this, &desc, sizeof (AudioComponentDescription)); }\n\t\t\n\t// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\t//\n\t// interrogation\n\t\n\tbool\tIsAU () const;\n\t\n\tbool\tIsAUFX() const { return componentType == kAudioUnitType_Effect; }\n\tbool\tIsAUFM() const { return componentType == kAudioUnitType_MusicEffect; }\n    \n    bool    IsAUMI() const { return componentType == 'aumi' /*kAudioUnitType_MIDIProcessor*/; }\n\t\n\tbool\tIsAUAX () const { return componentType == 'auax' /*kAudioUnitType_Auxiliary*/; }\n\t\n\tbool \tIsEffect () const { return IsAUFX() || IsAUFM() || IsPanner(); }\n\t\n\tbool\tIsOffline () const { return componentType == 'auol' /*kAudioUnitType_Offline*/; }\n\t\n\tbool \tIsFConv () const { return componentType == kAudioUnitType_FormatConverter; }\n\t\n\tbool\tIsPanner () const { return componentType == kAudioUnitType_Panner; }\n\t\n\tbool\tIsMusicDevice () const { return componentType == kAudioUnitType_MusicDevice; }\n\t\n#ifndef MAC_OS_X_VERSION_10_4\n\tbool\tIsGenerator () const { return componentType =='augn'; }\n#else\n\tbool\tIsGenerator () const { return componentType ==kAudioUnitType_Generator; }\n#endif\n\t\n\tbool\tIsOutput () const { return componentType == kAudioUnitType_Output; }\n\t\n\tbool\tIsSource () const { return IsMusicDevice() || IsGenerator(); }\n\t\n\tOSType\tType () const { return componentType; }\n\tOSType\tSubType () const { return componentSubType; }\n\tOSType \tManu () const { return componentManufacturer; }\n\n\tint\t\tCount() const { return AudioComponentCount(const_cast<CAComponentDescription*>(this)); }\n\t\n\t\t// does a semantic match where \"wild card\" values for type, subtype, manu will match\n\tbool\tMatches (const AudioComponentDescription &desc) const;\n\t\n\t// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\t//\n\t//\tother\n\t\n\tvoid\tPrint(FILE* file = stdout) const \t{ _CAShowComponentDescription (this, file); }\n\n\tOSStatus\t\t\tSave (CFPropertyListRef *outData) const;\n\tOSStatus\t\t\tRestore (CFPropertyListRef &inData);\n\nprivate:\n\tstatic void _CAShowComponentDescription (const AudioComponentDescription *desc, FILE* file);\n\tfriend void CAShowComponentDescription (const AudioComponentDescription *desc);\n};\n\ninline bool\toperator< (const AudioComponentDescription& x, const AudioComponentDescription& y)\n{\n\treturn memcmp (&x, &y, offsetof (AudioComponentDescription, componentFlags)) < 0;\n}\n\ninline bool\toperator== (const AudioComponentDescription& x, const AudioComponentDescription& y)\n{\n\treturn !memcmp (&x, &y, offsetof (AudioComponentDescription, componentFlags));\n}\n\ninline bool\toperator!= (const AudioComponentDescription& x, const AudioComponentDescription& y)\n{\n\treturn !(x == y);\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CADebugMacros.cpp",
    "content": "/*\n     File: CADebugMacros.cpp\n Abstract: CADebugMacros.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CADebugMacros.h\"\n#include <stdio.h>\n#include <stdarg.h>\n#if TARGET_API_MAC_OSX\n\t#include <syslog.h>\n#endif\n\n#if DEBUG\n#include <stdio.h>\n\nvoid\tDebugPrint(const char *fmt, ...)\n{\n\tva_list args;\n\tva_start(args, fmt);\n\tvprintf(fmt, args);\n\tva_end(args);\n}\n#endif // DEBUG\n\nvoid\tLogError(const char *fmt, ...)\n{\n\tva_list args;\n\tva_start(args, fmt);\n#if DEBUG\n\tvprintf(fmt, args);\n#endif\n#if TARGET_API_MAC_OSX\n\tvsyslog(LOG_ERR, fmt, args);\n#endif\n\tva_end(args);\n}\n\nvoid\tLogWarning(const char *fmt, ...)\n{\n\tva_list args;\n\tva_start(args, fmt);\n#if DEBUG\n\tvprintf(fmt, args);\n#endif\n#if TARGET_API_MAC_OSX\n\tvsyslog(LOG_WARNING, fmt, args);\n#endif\n\tva_end(args);\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CADebugMacros.h",
    "content": "/*\n     File: CADebugMacros.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CADebugMacros_h__)\n#define __CADebugMacros_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include \"CoreAudioTypes.h\"\n#endif\n\n//=============================================================================\n//\tCADebugMacros\n//=============================================================================\n\n//#define\tCoreAudio_StopOnFailure\t\t\t1\n//#define\tCoreAudio_TimeStampMessages\t\t1\n//#define\tCoreAudio_ThreadStampMessages\t1\n//#define\tCoreAudio_FlushDebugMessages\t1\n\n#if TARGET_RT_BIG_ENDIAN\n\t#define\tCA4CCToCString(the4CC)\t\t\t\t\t{ ((char*)&the4CC)[0], ((char*)&the4CC)[1], ((char*)&the4CC)[2], ((char*)&the4CC)[3], 0 }\n\t#define CACopy4CCToCString(theCString, the4CC)\t{ theCString[0] = ((char*)&the4CC)[0]; theCString[1] = ((char*)&the4CC)[1]; theCString[2] = ((char*)&the4CC)[2]; theCString[3] = ((char*)&the4CC)[3]; theCString[4] = 0; }\n#else\n\t#define\tCA4CCToCString(the4CC)\t\t\t\t\t{ ((char*)&the4CC)[3], ((char*)&the4CC)[2], ((char*)&the4CC)[1], ((char*)&the4CC)[0], 0 }\n\t#define CACopy4CCToCString(theCString, the4CC)\t{ theCString[0] = ((char*)&the4CC)[3]; theCString[1] = ((char*)&the4CC)[2]; theCString[2] = ((char*)&the4CC)[1]; theCString[3] = ((char*)&the4CC)[0]; theCString[4] = 0; }\n#endif\n\n//\tThis is a macro that does a sizeof and casts the result to a UInt32. This is useful for all the\n//\tplaces where -wshorten64-32 catches assigning a sizeof expression to a UInt32.\n//\tFor want of a better place to park this, we'll park it here.\n#define\tSizeOf32(X)\t((UInt32)sizeof(X))\n\n//\tThis is a macro that does a offsetof and casts the result to a UInt32. This is useful for all the\n//\tplaces where -wshorten64-32 catches assigning an offsetof expression to a UInt32.\n//\tFor want of a better place to park this, we'll park it here.\n#define\tOffsetOf32(X, Y)\t((UInt32)offsetof(X, Y))\n\n//\tThis macro casts the expression to a UInt32. It is called out specially to allow us to track casts\n//\tthat have been added purely to avert -wshorten64-32 warnings on 64 bit platforms.\n//\tFor want of a better place to park this, we'll park it here.\n#define\tToUInt32(X)\t((UInt32)(X))\n#define\tToSInt32(X)\t((SInt32)(X))\n\n#pragma mark\tBasic Definitions\n\n#if\tDEBUG || CoreAudio_Debug\n\t// can be used to break into debugger immediately, also see CADebugger\n\t#define BusError()\t\t{ long* p=NULL; *p=0; }\n\t\n\t//\tbasic debugging print routines\n\t#if\tTARGET_OS_MAC && !TARGET_API_MAC_CARBON\n\t\textern void DebugStr(const unsigned char* debuggerMsg);\n\t\t#define\tDebugMessage(msg)\tDebugStr(\"\\p\"msg)\n\t\t#define DebugMessageN1(msg, N1)\n\t\t#define DebugMessageN2(msg, N1, N2)\n\t\t#define DebugMessageN3(msg, N1, N2, N3)\n\t#else\n\t\t#include \"CADebugPrintf.h\"\n\t\t\n\t\t#if\t(CoreAudio_FlushDebugMessages && !CoreAudio_UseSysLog) || defined(CoreAudio_UseSideFile)\n\t\t\t#define\tFlushRtn\t,fflush(DebugPrintfFile)\n\t\t#else\n\t\t\t#define\tFlushRtn\n\t\t#endif\n\t\t\n\t\t#if\t\tCoreAudio_ThreadStampMessages\n\t\t\t#include <pthread.h>\n\t\t\t#include \"CAHostTimeBase.h\"\n\t\t\t#if TARGET_RT_64_BIT\n\t\t\t\t#define\tDebugPrintfThreadIDFormat\t\"%16p\"\n\t\t\t#else\n\t\t\t\t#define\tDebugPrintfThreadIDFormat\t\"%8p\"\n\t\t\t#endif\n\t\t\t#define\tDebugMsg(inFormat, ...)\tDebugPrintf(\"%17qd: \" DebugPrintfThreadIDFormat \" \" inFormat, CAHostTimeBase::GetCurrentTimeInNanos(), pthread_self(), ## __VA_ARGS__) FlushRtn\n\t\t#elif\tCoreAudio_TimeStampMessages\n\t\t\t#include \"CAHostTimeBase.h\"\n\t\t\t#define\tDebugMsg(inFormat, ...)\tDebugPrintf(\"%17qd: \" inFormat, CAHostTimeBase::GetCurrentTimeInNanos(), ## __VA_ARGS__) FlushRtn\n\t\t#else\n\t\t\t#define\tDebugMsg(inFormat, ...)\tDebugPrintf(inFormat, ## __VA_ARGS__) FlushRtn\n\t\t#endif\n\t#endif\n\tvoid\tDebugPrint(const char *fmt, ...);\t// can be used like printf\n\t#ifndef DEBUGPRINT\n\t\t#define DEBUGPRINT(msg) DebugPrint msg\t\t// have to double-parenthesize arglist (see Debugging.h)\n\t#endif\n\t#if VERBOSE\n\t\t#define vprint(msg) DEBUGPRINT(msg)\n\t#else\n\t\t#define vprint(msg)\n\t#endif\n\t\n\t// Original macro keeps its function of turning on and off use of CADebuggerStop() for both asserts and throws.\n\t// For backwards compat, it overrides any setting of the two sub-macros.\n\t#if\tCoreAudio_StopOnFailure\n\t\t#include \"CADebugger.h\"\n\t\t#undef CoreAudio_StopOnAssert\n\t\t#define CoreAudio_StopOnAssert 1\n\t\t#undef CoreAudio_StopOnThrow\n\t\t#define CoreAudio_StopOnThrow 1\n\t\t#define STOP\tCADebuggerStop()\n\t#else\n\t\t#define STOP\n\t#endif\n\n\t#if CoreAudio_StopOnAssert\n\t\t#if !CoreAudio_StopOnFailure\n\t\t\t#include \"CADebugger.h\"\n\t\t\t#define STOP\n\t\t#endif\n\t\t#define __ASSERT_STOP CADebuggerStop()\n\t#else\n\t\t#define __ASSERT_STOP\n\t#endif\n\n\t#if CoreAudio_StopOnThrow\n\t\t#if !CoreAudio_StopOnFailure\n\t\t\t#include \"CADebugger.h\"\n\t\t\t#define STOP\n\t\t#endif\n\t\t#define __THROW_STOP CADebuggerStop()\n\t#else\n\t\t#define __THROW_STOP\n\t#endif\n\n#else\n\t#define\tDebugMsg(inFormat, ...)\n\t#ifndef DEBUGPRINT\n\t\t#define DEBUGPRINT(msg)\n\t#endif\n\t#define vprint(msg)\n\t#define\tSTOP\n\t#define __ASSERT_STOP\n\t#define __THROW_STOP\n#endif\n\n//\tOld-style numbered DebugMessage calls are implemented in terms of DebugMsg() now\n#define\tDebugMessage(msg)\t\t\t\t\t\t\t\t\t\tDebugMsg(msg)\n#define DebugMessageN1(msg, N1)\t\t\t\t\t\t\t\t\tDebugMsg(msg, N1)\n#define DebugMessageN2(msg, N1, N2)\t\t\t\t\t\t\t\tDebugMsg(msg, N1, N2)\n#define DebugMessageN3(msg, N1, N2, N3)\t\t\t\t\t\t\tDebugMsg(msg, N1, N2, N3)\n#define DebugMessageN4(msg, N1, N2, N3, N4)\t\t\t\t\t\tDebugMsg(msg, N1, N2, N3, N4)\n#define DebugMessageN5(msg, N1, N2, N3, N4, N5)\t\t\t\t\tDebugMsg(msg, N1, N2, N3, N4, N5)\n#define DebugMessageN6(msg, N1, N2, N3, N4, N5, N6)\t\t\t\tDebugMsg(msg, N1, N2, N3, N4, N5, N6)\n#define DebugMessageN7(msg, N1, N2, N3, N4, N5, N6, N7)\t\t\tDebugMsg(msg, N1, N2, N3, N4, N5, N6, N7)\n#define DebugMessageN8(msg, N1, N2, N3, N4, N5, N6, N7, N8)\t\tDebugMsg(msg, N1, N2, N3, N4, N5, N6, N7, N8)\n#define DebugMessageN9(msg, N1, N2, N3, N4, N5, N6, N7, N8, N9)\tDebugMsg(msg, N1, N2, N3, N4, N5, N6, N7, N8, N9)\n\nvoid\tLogError(const char *fmt, ...);\t\t\t// writes to syslog (and stderr if debugging)\nvoid\tLogWarning(const char *fmt, ...);\t\t// writes to syslog (and stderr if debugging)\n\n#define\tNO_ACTION\t(void)0\n\n#if\tDEBUG || CoreAudio_Debug\n\n#pragma mark\tDebug Macros\n\n#define\tAssert(inCondition, inMessage)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif(!(inCondition))\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessage(inMessage);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tAssertFileLine(inCondition, inMessage)\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif(!(inCondition))\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN3(\"%s, line %d: %s\", __FILE__, __LINE__, inMessage);\t\t\\\n\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tAssertNoError(inError, inMessage)\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSInt32 __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tchar __4CC[5] = CA4CCToCString(__Err);\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tDebugMessageN2(inMessage \", Error: %d (%s)\", (int)__Err, __4CC);\t\t\\\n\t\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tAssertNoKernelError(inError, inMessage)\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tunsigned int __Err = (unsigned int)(inError);\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tDebugMessageN1(inMessage \", Error: 0x%X\", __Err);\t\t\t\t\t\\\n\t\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tAssertNotNULL(inPtr, inMessage)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif((inPtr) == NULL)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tDebugMessage(inMessage);\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIf(inCondition, inHandler, inMessage)\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessage(inMessage);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailWithAction(inCondition, inAction, inHandler, inMessage)\t\t\t\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessage(inMessage);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfNULL(inPointer, inAction, inHandler, inMessage)\t\t\t\t\t\t\t\\\n\t\t\tif((inPointer) == NULL)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessage(inMessage);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfKernelError(inKernelError, inAction, inHandler, inMessage)\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tunsigned int __Err = (inKernelError);\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tDebugMessageN1(inMessage \", Error: 0x%X\", __Err);\t\t\t\t\t\\\n\t\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfError(inError, inAction, inHandler, inMessage)\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSInt32 __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tchar __4CC[5] = CA4CCToCString(__Err);\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tDebugMessageN2(inMessage \", Error: %ld (%s)\", (long int)__Err, __4CC);\t\\\n\t\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfNoMessage(inCondition, inHandler, inMessage)\t\t\t\t\t\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailWithActionNoMessage(inCondition, inAction, inHandler, inMessage)\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfNULLNoMessage(inPointer, inAction, inHandler, inMessage)\t\t\t\t\t\\\n\t\t\tif((inPointer) == NULL)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfKernelErrorNoMessage(inKernelError, inAction, inHandler, inMessage)\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tunsigned int __Err = (inKernelError);\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfErrorNoMessage(inError, inAction, inHandler, inMessage)\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSInt32 __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#if defined(__cplusplus)\n\n#define Throw(inException)  __THROW_STOP; throw (inException)\n\n#define\tThrowIf(inCondition, inException, inMessage)\t\t\t\t\t\t\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessage(inMessage);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tThrowIfNULL(inPointer, inException, inMessage)\t\t\t\t\t\t\t\t\t\\\n\t\t\tif((inPointer) == NULL)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessage(inMessage);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tThrowIfKernelError(inKernelError, inException, inMessage)\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tint __Err = (inKernelError);\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tDebugMessageN1(inMessage \", Error: 0x%X\", __Err);\t\t\t\t\t\\\n\t\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tThrowIfError(inError, inException, inMessage)\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSInt32 __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tchar __4CC[5] = CA4CCToCString(__Err);\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tDebugMessageN2(inMessage \", Error: %d (%s)\", (int)__Err, __4CC);\t\\\n\t\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#if TARGET_OS_WIN32\n#define\tThrowIfWinError(inError, inException, inMessage)\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tHRESULT __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(FAILED(__Err))\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tDebugMessageN2(inMessage \", Code: %d, Facility: 0x%X\", HRESULT_CODE(__Err), HRESULT_FACILITY(__Err));\t\t\t\\\n\t\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n#endif\n\n#define\tSubclassResponsibility(inMethodName, inException)\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessage(inMethodName\": Subclasses must implement this method\");\t\\\n\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#endif\t//\tdefined(__cplusplus)\n\n#else\n\n#pragma mark\tRelease Macros\n\n#define\tAssert(inCondition, inMessage)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif(!(inCondition))\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define AssertFileLine(inCondition, inMessage) Assert(inCondition, inMessage)\n\n#define\tAssertNoError(inError, inMessage)\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSInt32 __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tAssertNoKernelError(inError, inMessage)\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tunsigned int __Err = (unsigned int)(inError);\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tAssertNotNULL(inPtr, inMessage)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif((inPtr) == NULL)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIf(inCondition, inHandler, inMessage)\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailWithAction(inCondition, inAction, inHandler, inMessage)\t\t\t\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfNULL(inPointer, inAction, inHandler, inMessage)\t\t\t\t\t\t\t\\\n\t\t\tif((inPointer) == NULL)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfKernelError(inKernelError, inAction, inHandler, inMessage)\t\t\t\t\\\n\t\t\tif((inKernelError) != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfError(inError, inAction, inHandler, inMessage)\t\t\t\t\t\t\t\\\n\t\t\tif((inError) != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfNoMessage(inCondition, inHandler, inMessage)\t\t\t\t\t\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailWithActionNoMessage(inCondition, inAction, inHandler, inMessage)\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfNULLNoMessage(inPointer, inAction, inHandler, inMessage)\t\t\t\t\t\\\n\t\t\tif((inPointer) == NULL)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfKernelErrorNoMessage(inKernelError, inAction, inHandler, inMessage)\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tunsigned int __Err = (inKernelError);\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tFailIfErrorNoMessage(inError, inAction, inHandler, inMessage)\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSInt32 __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t{ inAction; }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tgoto inHandler;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#if defined(__cplusplus)\n\n#define Throw(inException)  __THROW_STOP; throw (inException)\n\n#define\tThrowIf(inCondition, inException, inMessage)\t\t\t\t\t\t\t\t\t\\\n\t\t\tif(inCondition)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tThrowIfNULL(inPointer, inException, inMessage)\t\t\t\t\t\t\t\t\t\\\n\t\t\tif((inPointer) == NULL)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tThrowIfKernelError(inKernelError, inException, inMessage)\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tint __Err = (inKernelError);\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#define\tThrowIfError(inError, inException, inMessage)\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tSInt32 __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(__Err != 0)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#if TARGET_OS_WIN32\n#define\tThrowIfWinError(inError, inException, inMessage)\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tHRESULT __Err = (inError);\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tif(FAILED(__Err))\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n#endif\n\n#define\tSubclassResponsibility(inMethodName, inException)\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tThrow(inException);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\n\n#endif\t//\tdefined(__cplusplus)\n\n#endif  //  DEBUG || CoreAudio_Debug\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CADebugPrintf.cpp",
    "content": "/*\n     File: CADebugPrintf.cpp\n Abstract: CADebugPrintf.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CADebugPrintf.h\"\n\n#if\tDEBUG || CoreAudio_Debug\n\n\t#if\tTARGET_OS_WIN32\n\t\t#include <stdarg.h>\n\t\t#include <stdio.h>\n\t\t#include <Windows.h>\n\t\textern \"C\"\n\t\tint\tCAWin32DebugPrintf(char* inFormat, ...)\n\t\t{\n\t\t\tchar theMessage[1024];\n\t\t\tva_list theArguments;\n\t\t\tva_start(theArguments, inFormat);\n\t\t\t_vsnprintf(theMessage, 1024, inFormat, theArguments);\n\t\t\tva_end(theArguments);\n\t\t\tOutputDebugString(theMessage);\n\t\t\treturn 0;\n\t\t}\n\t#endif\n\t\n\t#if defined(CoreAudio_UseSideFile)\n\t\t#include <unistd.h>\n\t\tFILE* sDebugPrintfSideFile = NULL;\n\t\textern \"C\"\n\t\tvoid OpenDebugPrintfSideFile()\n\t\t{\n\t\t\tif(sDebugPrintfSideFile == NULL)\n\t\t\t{\n\t\t\t\tchar theFileName[1024];\n\t\t\t\tsnprintf(theFileName, sizeof(theFileName), CoreAudio_UseSideFile, getpid());\n\t\t\t\tsDebugPrintfSideFile = fopen(theFileName, \"a+\");\n\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"\\n------------------------------\\n\");\n\t\t\t}\n\t\t}\n\t#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CADebugPrintf.h",
    "content": "/*\n     File: CADebugPrintf.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CADebugPrintf_h__)\n#define __CADebugPrintf_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include \"CoreAudioTypes.h\"\n#endif\n\n//=============================================================================\n//\tMacros to redirect debugging output to various logging services\n//=============================================================================\n\n//#define\tCoreAudio_UseSysLog\t\t1\n//#define\tCoreAudio_UseSideFile\t\"/CoreAudio-%d.txt\"\n\n#if\tDEBUG || CoreAudio_Debug\n\t\n\t#if\tTARGET_OS_WIN32\n\t\t#if defined(__cplusplus)\n\t\textern \"C\"\n\t\t#endif\n\t\textern int CAWin32DebugPrintf(char* inFormat, ...);\n\t\t#define\tDebugPrintfRtn\t\t\tCAWin32DebugPrintf\n\t\t#define\tDebugPrintfFile\t\t\t\n\t\t#define\tDebugPrintfLineEnding\t\"\\n\"\n\t\t#define\tDebugPrintfFileComma\n\t#else\n\t\t#if\tCoreAudio_UseSysLog\n\t\t\t#include <sys/syslog.h>\n\t\t\t#define\tDebugPrintfRtn\tsyslog\n\t\t\t#define\tDebugPrintfFile\tLOG_NOTICE\n\t\t\t#define\tDebugPrintfLineEnding\t\"\"\n\t\t\t#define\tDebugPrintfFileComma\tDebugPrintfFile,\n\t\t#elif defined(CoreAudio_UseSideFile)\n\t\t\t#include <stdio.h>\n\t\t\t#if defined(__cplusplus)\n\t\t\textern \"C\"\n\t\t\t#endif\n\t\t\tvoid OpenDebugPrintfSideFile();\n\t\t\textern FILE* sDebugPrintfSideFile;\n\t\t\t#define\tDebugPrintfRtn\tfprintf\n\t\t\t#define\tDebugPrintfFile\t((sDebugPrintfSideFile != NULL) ? sDebugPrintfSideFile : stderr)\n\t\t\t#define\tDebugPrintfLineEnding\t\"\\n\"\n\t\t\t#define\tDebugPrintfFileComma\tDebugPrintfFile,\n\t\t#else\n\t\t\t#include <stdio.h>\n\t\t\t#define\tDebugPrintfRtn\tfprintf\n\t\t\t#define\tDebugPrintfFile\tstderr\n\t\t\t#define\tDebugPrintfLineEnding\t\"\\n\"\n\t\t\t#define\tDebugPrintfFileComma\tDebugPrintfFile,\n\t\t#endif\n\t#endif\n\n\t#define\tDebugPrintf(inFormat, ...)\tDebugPrintfRtn(DebugPrintfFileComma inFormat DebugPrintfLineEnding, ## __VA_ARGS__)\n#else\n\t#define\tDebugPrintfRtn\t\n\t#define\tDebugPrintfFile\t\n\t#define\tDebugPrintfLineEnding\t\n\t#define\tDebugPrintfFileComma\n\t#define\tDebugPrintf(inFormat, ...)\n#endif\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CADebugger.cpp",
    "content": "/*\n     File: CADebugger.cpp\n Abstract: CADebugger.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CADebugger.h\"\n\n//=============================================================================\n//\tCADebugger\n//=============================================================================\n\n#if TARGET_API_MAC_OSX\n\n#include <sys/sysctl.h>\n#include <stdlib.h>\n#include <unistd.h>\n\nbool CAIsDebuggerAttached(void)\n{\n\tint\t\t\t\t\tmib[4];\n\tstruct kinfo_proc\tinfo;\n\tsize_t\t\t\t\tsize;\n\n\tmib[0] = CTL_KERN;\n\tmib[1] = KERN_PROC;\n\tmib[2] = KERN_PROC_PID;\n\tmib[3] = getpid();\n\tsize = sizeof(info);\n\tinfo.kp_proc.p_flag = 0;\n\n\tsysctl(mib, 4, &info, &size, NULL, 0);\n\n\treturn (info.kp_proc.p_flag & P_TRACED) == P_TRACED;\n}\n\n#endif\n\nvoid\tCADebuggerStop(void)\n{\n\t#if\tCoreAudio_Debug\n\t\t#if\tTARGET_API_MAC_OSX\n\t\t\tif(CAIsDebuggerAttached())\n\t\t\t{\n\t\t\t\t#if defined(__i386__) || defined(__x86_64__)\n\t\t\t\t\tasm(\"int3\");\n\t\t\t\t#else\n\t\t\t\t\t__builtin_trap();\n\t\t\t\t#endif\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tabort();\n\t\t\t}\n\t\t#else\n\t\t\t__debugbreak();\n\t\t#endif\n\t#endif\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CADebugger.h",
    "content": "/*\n     File: CADebugger.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CADebugger_h__)\n#define __CADebugger_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n//=============================================================================\n//\tCADebugger\n//=============================================================================\n\n#if\tTARGET_API_MAC_OSX\n\textern bool CAIsDebuggerAttached(void);\n#endif\nextern void\tCADebuggerStop(void);\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAException.h",
    "content": "/*\n     File: CAException.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAException_h__)\n#define __CAException_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include \"CoreAudioTypes.h\"\n#endif\n\n//=============================================================================\n//\tCAException\n//=============================================================================\n\nclass CAException\n{\n\npublic:\n\t\t\t\t\tCAException(OSStatus inError) : mError(inError) {}\n\t\t\t\t\tCAException(const CAException& inException) : mError(inException.mError) {}\n\tCAException&\toperator=(const CAException& inException) { mError = inException.mError; return *this; }\n\t\t\t\t\t~CAException() {}\n\n\tOSStatus\t\tGetError() const { return mError; }\n\t\nprotected:\n\tOSStatus\t\tmError;\n};\n\n#define\tCATry\t\t\t\t\t\t\t\ttry{\n#define CACatch\t\t\t\t\t\t\t\t} catch(...) {}\n#define\tCASwallowException(inExpression)\ttry { inExpression; } catch(...) {}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAExtAudioFile.h",
    "content": "/*\n     File: CAExtAudioFile.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAExtAudioFile_h__\n#define __CAExtAudioFile_h__\n\n#include <TargetConditionals.h>\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioToolbox/ExtendedAudioFile.h>\n\t#include <AudioToolbox/AudioConverter.h>\n#else\n\t#include \"ExtendedAudioFile.h\"\n\t#include \"AudioConverter.h\"\n#endif\n#include \"CAXException.h\"\n//#include \"CAAutoDisposer.h\"\n#include \"CAStreamBasicDescription.h\"\n#include \"CAAudioChannelLayout.h\"\n#include \"CACFObject.h\"\n\n// A C++ wrapper for ExtAudioFile\n// Error returns throw CAXExceptions.\nclass CAExtAudioFile {\npublic:\n\t// instances are not automatically associated with open files.\n\tCAExtAudioFile() :\n\t\tmExtAudioFile(NULL) { }\n\n\tvirtual ~CAExtAudioFile()\n\t{\n\t\tClose();\n\t}\n\t\n\tbool IsValid() const { return mExtAudioFile != NULL; }\n\t\n\tvoid\tOpen(const char* filename)\n\t{\n\t\tClose();\n\t\tCFURLRef url = CFURLCreateFromFileSystemRepresentation(kCFAllocatorDefault, (const UInt8*)filename, strlen(filename), false);\n\t\tXThrowIf(!url, -1, \"couldn't convert path to CFURLRef\");\n\t\tOSStatus res = ExtAudioFileOpenURL(url, &mExtAudioFile);\n\t\tif (res)\n\t\t\tCFRelease(url);\n\t\tCheck(res, \"ExtAudioFileOpenURL\");\n\t\tCFRelease (url);\n\t}\n\t\n\t// this group of methods maps directly to the API other than OSStatus results translating into exceptions.\n\t// you must explicitly open, wrap or create a file.\n\tvoid\tOpenURL(CFURLRef url)\n\t{\n\t\tClose();\n\t\tCheck(ExtAudioFileOpenURL(url, &mExtAudioFile), \"ExtAudioFileOpenURL\");\n\t}\n\t\t\n\tvoid\tWrapAudioFileID(AudioFileID inFileID, Boolean forWriting)\n\t{\n\t\tClose();\n\t\tCheck(ExtAudioFileWrapAudioFileID(inFileID, forWriting, &mExtAudioFile), \"ExtAudioFileWrapAudioFileID\");\n\t}\n\n\tvoid\tCreate(const char *filePath, AudioFileTypeID filetype, const AudioStreamBasicDescription &streamDesc, const AudioChannelLayout *channelLayout, UInt32 flags)\n\t{\n\t\tCFURLRef url = CFURLCreateFromFileSystemRepresentation(NULL, (const UInt8 *)filePath, strlen(filePath), false);\n\t\tXThrowIf(!url, -1, \"couldn't convert path to CFURLRef\");\n\t\tClose();\n\t\tOSStatus res = ExtAudioFileCreateWithURL(url, filetype, &streamDesc, channelLayout, flags, &mExtAudioFile);\n\t\tif (res)\n\t\t\tCFRelease(url);\n\t\tCheck(res, \"ExtAudioFileCreateWithURL\");\n\t\tCFRelease(url);\n\t}\n\t\n\tvoid\tCreateWithURL(CFURLRef url, AudioFileTypeID filetype, const AudioStreamBasicDescription &streamDesc, const AudioChannelLayout *channelLayout, UInt32 flags)\n\t{\n\t\tClose();\n\t\tCheck(ExtAudioFileCreateWithURL(url, filetype, &streamDesc, channelLayout, flags, &mExtAudioFile), \"ExtAudioFileCreateWithURL\");\n\t}\n\n\t// you may explicitly close a file, or have it closed automatically by the destructor.\n\tvoid\tClose()\n\t{\n\t\tif (mExtAudioFile != NULL) {\n\t\t\tCheck(ExtAudioFileDispose(mExtAudioFile), \"ExtAudioFileClose\");\n\t\t\tmExtAudioFile = NULL;\n\t\t}\n\t}\n\t\n\tvoid\tRead(UInt32 &ioNumberFrames, AudioBufferList *ioData)\n\t{\n\t\tCheck(ExtAudioFileRead(mExtAudioFile, &ioNumberFrames, ioData), \"ExtAudioFileRead\");\n\t}\n\t\n\tOSStatus\tWrite(UInt32 inNumberFrames, const AudioBufferList *ioData)\n\t{\n\t\tOSStatus err = ExtAudioFileWrite(mExtAudioFile, inNumberFrames, ioData);\n\t\tswitch (err) {\n\t\t\t// noErr and certain special errors are returned without an exception\n\t\tcase noErr:\n\t\t\tbreak;\n\t#if TARGET_OS_IPHONE\n\t\tcase kExtAudioFileError_CodecUnavailableInputConsumed:\n\t\tcase kExtAudioFileError_CodecUnavailableInputNotConsumed:\n\t\t\tbreak;\n\t#endif\n\t\tdefault:\n\t\t\t// throw an exception\n\t\t\tCheck(err, \"ExtAudioFileWrite\");\n\t\t\tbreak;\n\t\t}\n\t\treturn err;\n\t}\n\t\n\tvoid\tWriteAsync(UInt32 inNumberFrames, const AudioBufferList *ioData)\n\t{\n\t\tCheck(ExtAudioFileWriteAsync(mExtAudioFile, inNumberFrames, ioData), \"ExtAudioFileWriteAsync\");\n\t}\n\t\n\tvoid\tSeek(SInt64 inFrameOffset)\n\t{\n\t\tCheck(ExtAudioFileSeek(mExtAudioFile, inFrameOffset), \"ExtAudioFileSeek\");\n\t}\n\t\n\tSInt64\tTell() const\n\t{\n\t\tSInt64 pos;\n\t\tCheck(ExtAudioFileTell(mExtAudioFile, &pos), \"ExtAudioFileTell\");\n\t\treturn pos;\n\t}\n\t\n\tUInt32\tGetPropertyInfo(ExtAudioFilePropertyID propid, Boolean *outWritable) const\n\t{\n\t\tUInt32 size;\n\t\tCheckProperty(ExtAudioFileGetPropertyInfo(mExtAudioFile, propid, &size, outWritable), \"ExtAudioFileGetPropertyInfo\", propid);\n\t\treturn size;\n\t}\n\t\n\tvoid\tGetProperty(ExtAudioFilePropertyID propid, UInt32 &ioSize, void *outData) const\n\t{\n\t\tCheckProperty(ExtAudioFileGetProperty(mExtAudioFile, propid, &ioSize, outData), \"ExtAudioFileGetProperty\", propid);\n\t}\n\t\n\tvoid\tSetProperty(ExtAudioFilePropertyID propid, UInt32 size, const void *inData)\n\t{\n\t\tCheckProperty(ExtAudioFileSetProperty(mExtAudioFile, propid, size, inData), \"ExtAudioFileSetProperty\", propid);\n\t}\n\t\n\tconst CAAudioChannelLayout &GetFileChannelLayout()\n\t{\n\t\treturn FetchChannelLayout(mFileChannelLayout, kExtAudioFileProperty_FileChannelLayout);\n\t}\n\n\tvoid\tSetFileChannelLayout(const CAAudioChannelLayout &layout) {\n\t\tSetProperty(kExtAudioFileProperty_FileChannelLayout, layout.Size(), &layout.Layout());\n\t}\n\n\tconst CAStreamBasicDescription &GetFileDataFormat()\n\t{\n\t\tUInt32 size = sizeof(mFileDataFormat);\n\t\tGetProperty(kExtAudioFileProperty_FileDataFormat, size, &mFileDataFormat);\n\t\treturn mFileDataFormat;\n\t}\n\t\n\tconst CAStreamBasicDescription &GetClientDataFormat() {\n\t\tUInt32 size = sizeof(mClientDataFormat);\n\t\tGetProperty(kExtAudioFileProperty_ClientDataFormat, size, &mClientDataFormat);\n\t\treturn mClientDataFormat;\n\t}\n\t\n\n\tvoid\tSetClientFormat(const CAStreamBasicDescription &dataFormat, const CAAudioChannelLayout *layout=NULL, UInt32 codecManuf=0) {\n\t\tif (codecManuf != 0)\n\t\t\tSetProperty('cman' /*kExtAudioFileProperty_CodecManufacturer*/, sizeof(codecManuf), &codecManuf);\n\t\tSetProperty(kExtAudioFileProperty_ClientDataFormat, sizeof(dataFormat), &dataFormat);\n\t\tif (layout)\n\t\t\tSetClientChannelLayout(*layout);\n\t}\n\t\n\tvoid\tSetClientChannelLayout(const CAAudioChannelLayout &layout) {\n\t\tSetProperty(kExtAudioFileProperty_ClientChannelLayout, layout.Size(), &layout.Layout());\n\t}\n\t\n\tAudioConverterRef\t\t\t\tGetConverter() const {\n\t\tUInt32 size = sizeof(AudioConverterRef);\n\t\tAudioConverterRef converter = NULL;\n\t\tGetProperty(kExtAudioFileProperty_AudioConverter, size, &converter);\n\t\treturn converter;\n\t}\n\n\tbool\tHasConverter() const { return GetConverter() != NULL; }\n\t\n\tOSStatus\tSetConverterProperty(AudioConverterPropertyID inPropertyID,\tUInt32 inPropertyDataSize, const void *inPropertyData, bool inCanFail=false)\n\t{\n\t\tOSStatus err = AudioConverterSetProperty(GetConverter(), inPropertyID, inPropertyDataSize, inPropertyData);\n\t\tif (!inCanFail)\n\t\t\tXThrowIfError(err, \"Couldn't set audio converter property\");\n\t\tif (!err) {\n\t\t\t// must tell the file that we have changed the converter; a NULL converter config is sufficient\n\t\t\tCFPropertyListRef config = NULL;\n\t\t\tSetProperty(kExtAudioFileProperty_ConverterConfig, sizeof(CFPropertyListRef), &config);\n\t\t}\n\t\treturn err;\n\t}\n\t\n\tSInt64\t\tGetNumberFrames() {\n\t\tSInt64 length;\n\t\tUInt32 size = sizeof(SInt64);\n\t\tGetProperty(kExtAudioFileProperty_FileLengthFrames, size, &length);\n\t\treturn length;\n\t}\n\t\n\nprotected:\n\tvirtual void Check(OSStatus err, const char *func) const\n\t{\n\t\tif (err) {\n\t\t\tchar txt[128];\n\t\t\tsnprintf(txt, sizeof(txt), \"%s failed\", func);\n\t\t\tthrow CAXException(txt, err);\n\t\t}\n\t}\n\t\n\tvirtual void CheckProperty(OSStatus err, const char *func, UInt32 propid) const\n\t{\n\t\tif (err) {\n\t\t\tchar txt[128];\n\t\t\tchar propstr[] = CA4CCToCString(propid);\n\t\t\tsnprintf(txt, sizeof(txt), \"%s ('%s') failed\", func, propstr);\n\t\t\tthrow CAXException(txt, err);\n\t\t}\n\t}\n\n\tconst CAAudioChannelLayout &\tFetchChannelLayout(CAAudioChannelLayout &layoutObj, ExtAudioFilePropertyID propID) {\n\t\tUInt32 size = GetPropertyInfo(propID, NULL);\n\t\tCAAutoFree<AudioChannelLayout> layout;\n\t\tlayout.allocBytes(size);\n\t\tGetProperty(propID, size, layout);\n\t\tlayoutObj = layout;\n\t\treturn layoutObj;\n\t}\n\nprivate:\n\tCAExtAudioFile(const CAExtAudioFile &) { }\t// prohibit\n\tCAExtAudioFile & operator = (const CAExtAudioFile &) { return *this; } // prohibit\n\nprivate:\n\tExtAudioFileRef\t\t\t\tmExtAudioFile;\n\t\n\t// for convenience to the client, it helps if we hold onto some storage for these\n\tCAStreamBasicDescription\tmFileDataFormat;\n\tCAAudioChannelLayout\t\tmFileChannelLayout;\n\tCAStreamBasicDescription\tmClientDataFormat;\n};\n\n\n#endif // __CAExtAudioFile_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAFilePathUtils.cpp",
    "content": "/*\n     File: CAFilePathUtils.cpp\n Abstract: CAFilePathUtils.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAFilePathUtils.h\"\n#include <string.h>\n\n#if !CA_NO_CORE_SERVICES\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreServices/CoreServices.h> // FSRef\n    #include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreServices.h>\n\t#include <CoreAudioTypes.h>\n#endif\n\nOSStatus\tPosixPathToParentFSRefAndName(const char *path, FSRef &outParentDir, CFStringRef &outFileName)\n{\n\t// convert C string to CFString\n#if !TARGET_OS_WIN32\n\tCFStringRef cfFullPath = CFStringCreateWithCString(NULL, path, kCFStringEncodingUTF8);\n#else\n\tCFStringRef cfFullPath = CFStringCreateWithCString(NULL, path, kCFStringEncodingWindowsLatin1);\n#endif\n\t// convert CF string to URL\n\tCFURLRef fullurl = CFURLCreateWithFileSystemPath(NULL, cfFullPath, TARGET_OS_WIN32 ? kCFURLWindowsPathStyle : kCFURLPOSIXPathStyle, false);\n\tCFRelease(cfFullPath);\n\t// get the directory portion of the URL\n\tCFURLRef dirurl = CFURLCreateCopyDeletingLastPathComponent(NULL, fullurl);\n\t// get the directory's FSRef\n\tOSStatus err = CFURLGetFSRef(dirurl, &outParentDir) ? OSStatus(noErr) : OSStatus(kAudio_FileNotFoundError);\n\tCFRelease(dirurl);\n\t\n\tCFStringRef lastPathComponent = CFURLCopyLastPathComponent(fullurl);\n\tCFRelease(fullurl);\n\tCFMutableStringRef filename = CFStringCreateMutableCopy(NULL, 0, lastPathComponent);\n\tCFRelease(lastPathComponent);\n\t// convert colons (legal in POSIX paths, illegal in File Manager) to slashes\n\tCFStringFindAndReplace(filename, CFSTR(\":\"), CFSTR(\"/\"), CFRangeMake(0, CFStringGetLength(filename)), 0);\n\t\n\toutFileName = filename;\n\t\n\treturn err;\n}\n#endif // !CA_NO_CORE_SERVICES\n\n\n#if TARGET_OS_WIN32\n\nchar*\tdirname(const char* inPath)\n{\n\tstatic char sAnswer[1024];\n\t\n\tchar* theAnswer = NULL;\n\tSInt32 thePathLength = strlen(inPath);\n\tif(thePathLength < 1023)\n\t{\n\t\t//\tmake a working copy\n\t\tstrlcpy(sAnswer, inPath, sizeof(sAnswer));\n\t\t\n\t\t//\tstart at the end of the string\n\t\tSInt32 theIndex = thePathLength - 1;\n\t\t\n\t\t//\twalk back over the '\\' characters\n\t\twhile((theIndex > 0) && (sAnswer[theIndex] == '\\\\'))\n\t\t{\n\t\t\t--theIndex;\n\t\t}\n\t\t\n\t\t//\tnow keep walking back until we get to a '\\'\n\t\twhile((theIndex > 0) && (sAnswer[theIndex] != '\\\\'))\n\t\t{\n\t\t\t--theIndex;\n\t\t}\n\t\t\n\t\t//\twhere we are now is either the first character of the path or the '\\' that marks the end of the directory name\n\t\tif(theIndex > 0)\n\t\t{\n\t\t\t//\twe have a name so put a '\\0' in place of the '\\'\n\t\t\tsAnswer[theIndex] = 0;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\tno name, so the answer is \".\"\n\t\t\tsAnswer[0] = '.';\n\t\t\tsAnswer[1] = 0;\n\t\t}\n\t\t\n\t\t//\tset the return value\n\t\ttheAnswer = sAnswer;\n\t}\n\t\n\treturn theAnswer;\n}\n\nchar*\tbasename(const char* inPath)\n{\n\tstatic char sAnswer[1024];\n\t\n\tchar* theAnswer = NULL;\n\tSInt32 thePathLength = strlen(inPath);\n\tif(thePathLength < 1023)\n\t{\n\t\t//\tmake a working copy\n\t\tstrlcpy(sAnswer, inPath, sizeof(sAnswer));\n\t\t\n\t\t//\tstart at the end of the string\n\t\tSInt32 theLastIndex = thePathLength - 1;\n\t\t\n\t\t//\twalk back over the '\\' characters\n\t\twhile((theLastIndex > 0) && (sAnswer[theLastIndex] == '\\\\'))\n\t\t{\n\t\t\t--theLastIndex;\n\t\t}\n\t\t\n\t\t//\tcheck to see if we're at the beginning now\n\t\tif(theLastIndex > 0)\n\t\t{\n\t\t\t//\tthere's a name in there now, so start where we are and go back to the next '\\'\n\t\t\tUInt32 theFirstIndex = theLastIndex;\n\t\t\twhile((theFirstIndex > 0) && (sAnswer[theFirstIndex] != '\\\\'))\n\t\t\t{\n\t\t\t\t--theFirstIndex;\n\t\t\t}\n\t\t\t\n\t\t\t//\twe now have a string, so put a '\\0' after the last character\n\t\t\tsAnswer[theLastIndex + 1] = 0;\n\t\t\t\n\t\t\t//\tand set the return value\n\t\t\ttheAnswer = &sAnswer[theFirstIndex];\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\tthe path was entirely '\\' characters, so the return value is \"\\\"\n\t\t\tsAnswer[0] = '\\\\';\n\t\t\tsAnswer[1] = 0;\n\t\t\n\t\t\t//\tset the return value\n\t\t\ttheAnswer = sAnswer;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAFilePathUtils.h",
    "content": "/*\n     File: CAFilePathUtils.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAFilePathUtils_h__\n#define __CAFilePathUtils_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CoreFoundation.h>\n    #include <CoreAudio/CoreAudio.h>\n#else\n\t#include <TargetConditionals.h>\n\t#include <CoreFoundation.h>\n    #include <CoreAudio.h>\n#endif\n\nstruct FSRef;\n\nOSStatus\tPosixPathToParentFSRefAndName(const char *path, FSRef &outParentDir, CFStringRef &outFileName);\n\n#if !TARGET_OS_WIN32\n\t#include <libgen.h>\n#else\n#error\n\tchar*\tdirname(const char* inPath);\n\tchar*\tbasename(const char* inPath);\n#endif\n\n#endif // __CAFilePathUtils_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAGuard.cpp",
    "content": "/*\n     File: CAGuard.cpp\n Abstract: CAGuard.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAGuard.h\"\n\n#if TARGET_OS_MAC\n\t#include <errno.h>\n#endif\n\n//\tPublicUtility Inludes\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n#include \"CAHostTimeBase.h\"\n\n//==================================================================================================\n//\tLogging\n//==================================================================================================\n\n#if CoreAudio_Debug\n//\t#define\tLog_Ownership\t\t1\n//\t#define\tLog_WaitOwnership\t1\n//\t#define\tLog_TimedWaits\t\t1\n//\t#define Log_Latency\t\t\t1\n//\t#define\tLog_Errors\t\t\t1\n#endif\n\n//#warning\t\tNeed a try-based Locker too\n//==================================================================================================\n//\tCAGuard\n//==================================================================================================\n\nCAGuard::CAGuard(const char* inName)\n:\n\tCAMutex(inName)\n#if\tLog_Average_Latency\n\t,mAverageLatencyAccumulator(0.0),\n\tmAverageLatencyCount(0)\n#endif\n{\n#if TARGET_OS_MAC\n\tOSStatus theError = pthread_cond_init(&mCondVar, NULL);\n\tThrowIf(theError != 0, CAException(theError), \"CAGuard::CAGuard: Could not init the cond var\");\n#elif TARGET_OS_WIN32\n\tmEvent = CreateEvent(NULL, true, false, NULL);\n\tThrowIfNULL(mEvent, CAException(GetLastError()), \"CAGuard::CAGuard: Could not create the event\");\n#endif\n}\n\nCAGuard::~CAGuard()\n{\n#if TARGET_OS_MAC\n\tpthread_cond_destroy(&mCondVar);\n#elif TARGET_OS_WIN32\n\tif(mEvent != NULL)\n\t{\n\t\tCloseHandle(mEvent);\n\t}\n#endif\n}\n\nvoid\tCAGuard::Wait()\n{\n#if TARGET_OS_MAC\n\tThrowIf(!pthread_equal(pthread_self(), mOwner), CAException(1), \"CAGuard::Wait: A thread has to have locked a guard before it can wait\");\n\n\tmOwner = 0;\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAGuard::Wait: thread %p is waiting on %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\tOSStatus theError = pthread_cond_wait(&mCondVar, &mMutex);\n\tThrowIf(theError != 0, CAException(theError), \"CAGuard::Wait: Could not wait for a signal\");\n\tmOwner = pthread_self();\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAGuard::Wait: thread %p waited on %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n#elif TARGET_OS_WIN32\n\tThrowIf(GetCurrentThreadId() != mOwner, CAException(1), \"CAGuard::Wait: A thread has to have locked a guard before it can wait\");\n\n\tmOwner = 0;\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAGuard::Wait: thread %lu is waiting on %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\n\tReleaseMutex(mMutex);\n\tHANDLE theHandles[] = { mMutex, mEvent };\n\tOSStatus theError = WaitForMultipleObjects(2, theHandles, true, INFINITE);\n\tThrowIfError(theError, CAException(GetLastError()), \"CAGuard::Wait: Could not wait for the signal\");\n\tmOwner = GetCurrentThreadId();\n\tResetEvent(mEvent);\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAGuard::Wait: thread %lu waited on %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n#endif\n}\n\nbool\tCAGuard::WaitFor(UInt64 inNanos)\n{\n\tbool theAnswer = false;\n\n#if TARGET_OS_MAC\n\tThrowIf(!pthread_equal(pthread_self(), mOwner), CAException(1), \"CAGuard::WaitFor: A thread has to have locked a guard be for it can wait\");\n\n\t#if\tLog_TimedWaits\n\t\tDebugMessageN1(\"CAGuard::WaitFor: waiting %.0f\", (Float64)inNanos);\n\t#endif\n\n\tstruct timespec\ttheTimeSpec;\n\tstatic const UInt64\tkNanosPerSecond = 1000000000ULL;\n\tif(inNanos >= kNanosPerSecond)\n\t{\n\t\ttheTimeSpec.tv_sec = static_cast<long>(inNanos / kNanosPerSecond);\n\t\ttheTimeSpec.tv_nsec = static_cast<long>(inNanos % kNanosPerSecond);\n\t}\n\telse\n\t{\n\t\ttheTimeSpec.tv_sec = 0;\n\t\ttheTimeSpec.tv_nsec = static_cast<long>(inNanos);\n\t}\n\t\n\t#if\tLog_TimedWaits || Log_Latency || Log_Average_Latency\n\t\tUInt64\ttheStartNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t#endif\n\n\tmOwner = 0;\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAGuard::WaitFor: thread %p is waiting on %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\tOSStatus theError = pthread_cond_timedwait_relative_np(&mCondVar, &mMutex, &theTimeSpec);\n\tThrowIf((theError != 0) && (theError != ETIMEDOUT), CAException(theError), \"CAGuard::WaitFor: Wait got an error\");\n\tmOwner = pthread_self();\n\t\n\t#if\tLog_TimedWaits || Log_Latency || Log_Average_Latency\n\t\tUInt64\ttheEndNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t#endif\n\t\n\t#if\tLog_TimedWaits\n\t\tDebugMessageN1(\"CAGuard::WaitFor: waited  %.0f\", (Float64)(theEndNanos - theStartNanos));\n\t#endif\n\t\n\t#if\tLog_Latency\n\t\tDebugMessageN1(\"CAGuard::WaitFor: latency  %.0f\", (Float64)((theEndNanos - theStartNanos) - inNanos));\n\t#endif\n\t\n\t#if\tLog_Average_Latency\n\t\t++mAverageLatencyCount;\n\t\tmAverageLatencyAccumulator += (theEndNanos - theStartNanos) - inNanos;\n\t\tif(mAverageLatencyCount >= 50)\n\t\t{\n\t\t\tDebugMessageN2(\"CAGuard::WaitFor: average latency  %.3f ns over %ld waits\", mAverageLatencyAccumulator / mAverageLatencyCount, mAverageLatencyCount);\n\t\t\tmAverageLatencyCount = 0;\n\t\t\tmAverageLatencyAccumulator = 0.0;\n\t\t}\n\t#endif\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAGuard::WaitFor: thread %p waited on %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\ttheAnswer = theError == ETIMEDOUT;\n#elif TARGET_OS_WIN32\n\tThrowIf(GetCurrentThreadId() != mOwner, CAException(1), \"CAGuard::WaitFor: A thread has to have locked a guard be for it can wait\");\n\n\t#if\tLog_TimedWaits\n\t\tDebugMessageN1(\"CAGuard::WaitFor: waiting %.0f\", (Float64)inNanos);\n\t#endif\n\n\t//\tthe time out is specified in milliseconds(!)\n\tUInt32 theWaitTime = static_cast<UInt32>(inNanos / 1000000ULL);\n\n\t#if\tLog_TimedWaits || Log_Latency || Log_Average_Latency\n\t\tUInt64\ttheStartNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t#endif\n\n\tmOwner = 0;\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAGuard::WaitFor: thread %lu is waiting on %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\t\n\tReleaseMutex(mMutex);\n\tHANDLE theHandles[] = { mMutex, mEvent };\n\tOSStatus theError = WaitForMultipleObjects(2, theHandles, true, theWaitTime);\n\tThrowIf((theError != WAIT_OBJECT_0) && (theError != WAIT_TIMEOUT), CAException(GetLastError()), \"CAGuard::WaitFor: Wait got an error\");\n\tmOwner = GetCurrentThreadId();\n\tResetEvent(mEvent);\n\t// This mutex should be locked again when time out happens.rdar://12270555\n\tif(theError == WAIT_TIMEOUT) {\n\t\tDWORD dwError = WaitForSingleObject(mMutex, INFINITE);\n\t\tThrowIf((dwError != WAIT_OBJECT_0), CAException(GetLastError()), \"CAGuard::WaitFor: failed to acquire the mutex back when timeout happened\\n\");\n\t}\n\t#if\tLog_TimedWaits || Log_Latency || Log_Average_Latency\n\t\tUInt64\ttheEndNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t#endif\n\t\n\t#if\tLog_TimedWaits\n\t\tDebugMessageN1(\"CAGuard::WaitFor: waited  %.0f\", (Float64)(theEndNanos - theStartNanos));\n\t#endif\n\t\n\t#if\tLog_Latency\n\t\tDebugMessageN1(\"CAGuard::WaitFor: latency  %.0f\", (Float64)((theEndNanos - theStartNanos) - inNanos));\n\t#endif\n\t\n\t#if\tLog_Average_Latency\n\t\t++mAverageLatencyCount;\n\t\tmAverageLatencyAccumulator += (theEndNanos - theStartNanos) - inNanos;\n\t\tif(mAverageLatencyCount >= 50)\n\t\t{\n\t\t\tDebugMessageN2(\"CAGuard::WaitFor: average latency  %.3f ns over %ld waits\", mAverageLatencyAccumulator / mAverageLatencyCount, mAverageLatencyCount);\n\t\t\tmAverageLatencyCount = 0;\n\t\t\tmAverageLatencyAccumulator = 0.0;\n\t\t}\n\t#endif\n\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAGuard::WaitFor: thread %lu waited on %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\n\ttheAnswer = theError == WAIT_TIMEOUT;\n#endif\n\n\treturn theAnswer;\n}\n\nbool\tCAGuard::WaitUntil(UInt64 inNanos)\n{\n\tbool\ttheAnswer = false;\n\tUInt64\ttheCurrentNanos = CAHostTimeBase::GetCurrentTimeInNanos();\n\t\n#if\tLog_TimedWaits\n\tDebugMessageN2(\"CAGuard::WaitUntil: now: %.0f, requested: %.0f\", (double)theCurrentNanos, (double)inNanos);\n#endif\n\t\n\tif(inNanos > theCurrentNanos)\n\t{\n#if Log_Errors\n\t\tif((inNanos - theCurrentNanos) > 1000000000ULL)\n\t\t{\n\t\t\tDebugMessage(\"CAGuard::WaitUntil: about to wait for more than a second\");\n\t\t}\n#endif\n\t\ttheAnswer = WaitFor(inNanos - theCurrentNanos);\n\t}\n\telse\n\t{\n#if\tLog_Errors\n\t\tDebugMessageN2(\"CAGuard::WaitUntil: Time has expired before waiting, now: %.0f, requested: %.0f\", (double)theCurrentNanos, (double)inNanos);\n#endif\n\t\ttheAnswer = true;\n\t}\n\n\treturn theAnswer;\n}\n\nvoid\tCAGuard::Notify()\n{\n#if TARGET_OS_MAC\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAGuard::Notify: thread %p is notifying %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\tOSStatus theError = pthread_cond_signal(&mCondVar);\n\tThrowIf(theError != 0, CAException(theError), \"CAGuard::Notify: failed\");\n#elif TARGET_OS_WIN32\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAGuard::Notify: thread %lu is notifying %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\t\n\tSetEvent(mEvent);\n#endif\n}\n\nvoid\tCAGuard::NotifyAll()\n{\n#if TARGET_OS_MAC\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAGuard::NotifyAll: thread %p is notifying %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t#endif\n\n\tOSStatus theError = pthread_cond_broadcast(&mCondVar);\n\tThrowIf(theError != 0, CAException(theError), \"CAGuard::NotifyAll: failed\");\n#elif TARGET_OS_WIN32\n\t#if\tLog_WaitOwnership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAGuard::NotifyAll: thread %lu is notifying %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t#endif\n\t\n\tSetEvent(mEvent);\n#endif\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAGuard.h",
    "content": "/*\n     File: CAGuard.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAGuard_h__)\n#define __CAGuard_h__\n\n//==================================================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSuper Class Includes\n#include \"CAMutex.h\"\n\n#if CoreAudio_Debug\n//\t#define\tLog_Average_Latency\t1\n#endif\n\n//==================================================================================================\n//\tCAGuard\n//\n//\tThis is your typical mutex with signalling implemented via pthreads.\n//\tLock() will return true if and only if the guard is locked on that call.\n//\tA thread that already has the guard will receive 'false' if it locks it\n//\tagain. Use of the stack-based CAGuard::Locker class is highly recommended\n//\tto properly manage the recursive nesting. The Wait calls with timeouts\n//\twill return true if and only if the timeout period expired. They will\n//\treturn false if they receive notification any other way.\n//==================================================================================================\n\nclass\tCAGuard : public CAMutex\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tCAGuard(const char* inName);\n\tvirtual\t\t\t~CAGuard();\n\n//\tActions\npublic:\n\tvirtual void\tWait();\n\tvirtual bool\tWaitFor(UInt64 inNanos);\n\tvirtual bool\tWaitUntil(UInt64 inNanos);\n\t\n\tvirtual void\tNotify();\n\tvirtual void\tNotifyAll();\n\n//\tImplementation\nprotected:\n#if TARGET_OS_MAC\n\tpthread_cond_t\tmCondVar;\n#else\n\tHANDLE\t\t\tmEvent;\n#endif\n#if\tLog_Average_Latency\n\tFloat64\t\t\tmAverageLatencyAccumulator;\n\tUInt32\t\t\tmAverageLatencyCount;\n#endif\n\t\n//\tHelper class to manage taking and releasing recursively\npublic:\n\tclass\t\t\tLocker\n\t{\n\t\n\t//\tConstruction/Destruction\n\tpublic:\n\t\t\t\t\tLocker(CAGuard& inGuard) : mGuard(inGuard), mNeedsRelease(false) { mNeedsRelease = mGuard.Lock(); }\n\t\t\t\t\t~Locker() { if(mNeedsRelease) { mGuard.Unlock(); } }\n\t\n\tprivate:\n\t\t\t\t\tLocker(const Locker&);\n\t\tLocker&\t\toperator=(const Locker&);\n\t\n\t//\tActions\n\tpublic:\n\t\tvoid\t\tWait() { mGuard.Wait(); }\n\t\tbool\t\tWaitFor(UInt64 inNanos) { return mGuard.WaitFor(inNanos); }\n\t\tbool\t\tWaitUntil(UInt64 inNanos) { return mGuard.WaitUntil(inNanos); }\n\t\t\n\t\tvoid\t\tNotify() { mGuard.Notify(); }\n\t\tvoid\t\tNotifyAll() { mGuard.NotifyAll(); }\n\n\t//\tImplementation\n\tprivate:\n\t\tCAGuard&\tmGuard;\n\t\tbool\t\tmNeedsRelease;\t\n\t};\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHALAudioDevice.cpp",
    "content": "/*\n     File: CAHALAudioDevice.cpp\n Abstract: CAHALAudioDevice.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAHALAudioDevice.h\"\n\n//\tPublicUtility Includes\n#include \"CAAutoDisposer.h\"\n#include \"CAHALAudioStream.h\"\n#include \"CAHALAudioSystemObject.h\"\n#include \"CAPropertyAddress.h\"\n\n//==================================================================================================\n//\tCAHALAudioDevice\n//==================================================================================================\n\nCAHALAudioDevice::CAHALAudioDevice(AudioObjectID inAudioDevice)\n:\n\tCAHALAudioObject(inAudioDevice)\n{\n}\n\nCAHALAudioDevice::CAHALAudioDevice(CFStringRef inUID)\n:\n\tCAHALAudioObject(CAHALAudioSystemObject().GetAudioDeviceForUID(inUID))\n{\n}\n\nCAHALAudioDevice::~CAHALAudioDevice()\n{\n}\n\nCFStringRef\tCAHALAudioDevice::CopyDeviceUID() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDeviceUID);\n\treturn GetPropertyData_CFString(theAddress, 0, NULL);\n}\n\nbool\tCAHALAudioDevice::HasModelUID() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyModelUID);\n\treturn HasProperty(theAddress);\n}\n\nCFStringRef\tCAHALAudioDevice::CopyModelUID() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyModelUID);\n\treturn GetPropertyData_CFString(theAddress, 0, NULL);\n}\n\nCFStringRef\tCAHALAudioDevice::CopyConfigurationApplicationBundleID() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyConfigurationApplication);\n\treturn GetPropertyData_CFString(theAddress, 0, NULL);\n}\n\nCFURLRef\tCAHALAudioDevice::CopyIconLocation() const\n{\n\tCFURLRef theAnswer = NULL;\n\tCAPropertyAddress theAddress(kAudioDevicePropertyIcon);\n\tUInt32 theSize = sizeof(CFURLRef);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\treturn theAnswer;\n}\n\nUInt32\tCAHALAudioDevice::GetTransportType() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyTransportType);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nbool\tCAHALAudioDevice::CanBeDefaultDevice(bool inIsInput, bool inIsSystem) const\n{\n\tCAPropertyAddress theAddress(inIsSystem ? kAudioDevicePropertyDeviceCanBeDefaultSystemDevice : kAudioDevicePropertyDeviceCanBeDefaultDevice, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL) != 0;\n}\n\nbool\tCAHALAudioDevice::HasDevicePlugInStatus() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlugIn);\n\treturn HasProperty(theAddress);\n}\n\nOSStatus\tCAHALAudioDevice::GetDevicePlugInStatus() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlugIn);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nbool\tCAHALAudioDevice::IsAlive() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDeviceIsAlive);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL) != 0;\n}\n\nbool\tCAHALAudioDevice::IsHidden() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyIsHidden);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL) != 0;\n}\n\npid_t\tCAHALAudioDevice::GetHogModeOwner() const\n{\n\tpid_t theAnswer = -1;\n\tCAPropertyAddress theAddress(kAudioDevicePropertyHogMode);\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = sizeof(pid_t);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\treturn theAnswer;\n}\n\nbool\tCAHALAudioDevice::IsHogModeSettable() const\n{\n\tbool theAnswer = false;\n\tCAPropertyAddress theAddress(kAudioDevicePropertyHogMode);\n\tif(HasProperty(theAddress))\n\t{\n\t\ttheAnswer = IsPropertySettable(theAddress);\n\t}\n\treturn theAnswer;\n}\n\nbool\tCAHALAudioDevice::TakeHogMode()\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyHogMode);\n\tpid_t thePID = getpid();\n\tif(HasProperty(theAddress))\n\t{\n\t\tSetPropertyData(theAddress, 0, NULL, sizeof(pid_t), &thePID);\n\t}\n\treturn thePID == getpid();\n}\n\nvoid\tCAHALAudioDevice::ReleaseHogMode()\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyHogMode);\n\tif(HasProperty(theAddress))\n\t{\n\t\tpid_t thePID = -1;\n\t\tSetPropertyData(theAddress, 0, NULL, sizeof(pid_t), &thePID);\n\t}\n}\n\nbool\tCAHALAudioDevice::HasPreferredStereoChannels(bool inIsInput) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPreferredChannelsForStereo, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\treturn HasProperty(theAddress);\n}\n\nvoid\tCAHALAudioDevice::GetPreferredStereoChannels(bool inIsInput, UInt32& outLeft, UInt32& outRight) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPreferredChannelsForStereo, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tUInt32 theStereoPair[2] = { 0, 0 };\n\tUInt32 theSize = 2 * sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, theStereoPair);\n\toutLeft = theStereoPair[0];\n\toutRight = theStereoPair[1];\n}\n\nvoid\tCAHALAudioDevice::SetPreferredStereoChannels(bool inIsInput, UInt32 inLeft, UInt32 inRight)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPreferredChannelsForStereo, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tUInt32 theStereoPair[2] = { inLeft, inRight };\n\tSetPropertyData(theAddress, 0, NULL, 2 * sizeof(UInt32), theStereoPair);\n}\n\nbool\tCAHALAudioDevice::HasPreferredChannelLayout(bool inIsInput) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPreferredChannelLayout, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\treturn HasProperty(theAddress);\n}\n\nvoid\tCAHALAudioDevice::GetPreferredChannelLayout(bool inIsInput, AudioChannelLayout& outChannelLayout) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPreferredChannelLayout, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tUInt32 theSize = (SizeOf32(AudioChannelLayout) - SizeOf32(AudioChannelDescription)) + GetTotalNumberChannels(inIsInput) * SizeOf32(AudioChannelDescription);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &outChannelLayout);\n}\n\nvoid\tCAHALAudioDevice::SetPreferredStereoChannels(bool inIsInput, AudioChannelLayout& inChannelLayout)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPreferredChannelLayout, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tUInt32 theSize = (SizeOf32(AudioChannelLayout) - SizeOf32(AudioChannelDescription)) + GetTotalNumberChannels(inIsInput) * SizeOf32(AudioChannelDescription);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &inChannelLayout);\n}\n\nUInt32\tCAHALAudioDevice::GetNumberRelatedAudioDevices() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyRelatedDevices);\n\tUInt32 theAnswer = 0;\n\tif(HasProperty(theAddress))\n\t{\n\t\ttheAnswer = GetPropertyDataSize(theAddress, 0, NULL);\n\t\ttheAnswer /= SizeOf32(AudioObjectID);\n\t}\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::GetRelatedAudioDevices(UInt32& ioNumberRelatedDevices, AudioObjectID* outRelatedDevices) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyRelatedDevices);\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = ioNumberRelatedDevices * SizeOf32(AudioObjectID);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, outRelatedDevices);\n\t\tioNumberRelatedDevices = theSize / SizeOf32(AudioObjectID);\n\t}\n\telse\n\t{\n\t\tUInt32 theSize = ioNumberRelatedDevices * SizeOf32(AudioObjectID);\n\t\tmemset(outRelatedDevices, 0, theSize);\n\t\tioNumberRelatedDevices = 0;\n\t}\n}\n\nAudioObjectID\tCAHALAudioDevice::GetRelatedAudioDeviceByIndex(UInt32 inIndex) const\n{\n\tAudioObjectID theAnswer = kAudioObjectUnknown;\n\tUInt32 theNumberRelatedDevices = GetNumberRelatedAudioDevices();\n\tif((theNumberRelatedDevices > 0) && (inIndex < theNumberRelatedDevices))\n\t{\n\t\tCAAutoArrayDelete<AudioObjectID> theRelatedDeviceList(theNumberRelatedDevices);\n\t\tGetRelatedAudioDevices(theNumberRelatedDevices, theRelatedDeviceList);\n\t\tif((theNumberRelatedDevices > 0) && (inIndex < theNumberRelatedDevices))\n\t\t{\n\t\t\ttheAnswer = theRelatedDeviceList[inIndex];\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\nUInt32\tCAHALAudioDevice::GetNumberStreams(bool inIsInput) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyStreams, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tUInt32 theAnswer = GetPropertyDataSize(theAddress, 0, NULL);\n\ttheAnswer /= SizeOf32(AudioObjectID);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::GetStreams(bool inIsInput, UInt32& ioNumberStreams, AudioObjectID* outStreamList) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyStreams, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tUInt32 theSize = ioNumberStreams * SizeOf32(AudioObjectID);\n\tGetPropertyData(theAddress, 0, NULL, theSize, outStreamList);\n\tioNumberStreams = theSize / SizeOf32(AudioObjectID);\n}\n\nAudioObjectID\tCAHALAudioDevice::GetStreamByIndex(bool inIsInput, UInt32 inIndex) const\n{\n\tAudioObjectID theAnswer = kAudioObjectUnknown;\n\tUInt32 theNumberStreams = GetNumberStreams(inIsInput);\n\tif((theNumberStreams > 0) && (inIndex < theNumberStreams))\n\t{\n\t\tCAAutoArrayDelete<AudioObjectID> theStreamList(theNumberStreams);\n\t\tGetStreams(inIsInput, theNumberStreams, theStreamList);\n\t\tif((theNumberStreams > 0) && (inIndex < theNumberStreams))\n\t\t{\n\t\t\ttheAnswer = theStreamList[inIndex];\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\nUInt32\tCAHALAudioDevice::GetTotalNumberChannels(bool inIsInput) const\n{\n\tUInt32 theAnswer = 0;\n\tCAPropertyAddress theAddress(kAudioDevicePropertyStreamConfiguration, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tUInt32 theSize = GetPropertyDataSize(theAddress, 0, NULL);\n\tCAAutoFree<AudioBufferList> theBufferList(theSize);\n\tGetPropertyData(theAddress, 0, NULL, theSize, theBufferList);\n\tfor(UInt32 theIndex = 0; theIndex < theBufferList->mNumberBuffers; ++theIndex)\n\t{\n\t\ttheAnswer += theBufferList->mBuffers[theIndex].mNumberChannels;\n\t}\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::GetCurrentVirtualFormats(bool inIsInput, UInt32& ioNumberStreams, AudioStreamBasicDescription* outFormats) const\n{\n\tioNumberStreams = std::min(ioNumberStreams, GetNumberStreams(inIsInput));\n\tfor(UInt32 theIndex = 0; theIndex < ioNumberStreams; ++theIndex)\n\t{\n\t\tCAHALAudioStream theStream(GetStreamByIndex(inIsInput, theIndex));\n\t\ttheStream.GetCurrentVirtualFormat(outFormats[theIndex]);\n\t}\n}\n\nvoid\tCAHALAudioDevice::GetCurrentPhysicalFormats(bool inIsInput, UInt32& ioNumberStreams, AudioStreamBasicDescription* outFormats) const\n{\n\tioNumberStreams = std::min(ioNumberStreams, GetNumberStreams(inIsInput));\n\tfor(UInt32 theIndex = 0; theIndex < ioNumberStreams; ++theIndex)\n\t{\n\t\tCAHALAudioStream theStream(GetStreamByIndex(inIsInput, theIndex));\n\t\ttheStream.GetCurrentPhysicalFormat(outFormats[theIndex]);\n\t}\n}\n\nbool\tCAHALAudioDevice::IsRunning() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDeviceIsRunning);\n\tUInt32 theAnswer = GetPropertyData_UInt32(theAddress, 0, NULL);\n\treturn theAnswer != 0;\n}\n\nbool\tCAHALAudioDevice::IsRunningSomewhere() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDeviceIsRunningSomewhere);\n\tUInt32 theAnswer = 0;\n\tif(HasProperty(theAddress))\n\t{\n\t\ttheAnswer = GetPropertyData_UInt32(theAddress, 0, NULL);\n\t}\n\treturn theAnswer != 0;\n}\n\nUInt32\tCAHALAudioDevice::GetLatency(bool inIsInput) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyLatency, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nUInt32\tCAHALAudioDevice::GetSafetyOffset(bool inIsInput) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySafetyOffset, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nbool\tCAHALAudioDevice::HasClockDomain() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockDomain);\n\treturn HasProperty(theAddress);\n}\n\nUInt32\tCAHALAudioDevice::GetClockDomain() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockDomain);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nFloat64\tCAHALAudioDevice::GetActualSampleRate() const\n{\n\tFloat64 theAnswer = 0;\n\tCAPropertyAddress theAddress(kAudioDevicePropertyActualSampleRate);\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = sizeof(Float64);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\telse\n\t{\n\t\ttheAnswer = GetNominalSampleRate();\n\t}\n\treturn theAnswer;\n}\n\nFloat64\tCAHALAudioDevice::GetNominalSampleRate() const\n{\n\tFloat64 theAnswer = 0;\n\tCAPropertyAddress theAddress(kAudioDevicePropertyNominalSampleRate);\n\tUInt32 theSize = sizeof(Float64);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::SetNominalSampleRate(Float64 inSampleRate)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyNominalSampleRate);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(Float64), &inSampleRate);\n}\n\nUInt32\tCAHALAudioDevice::GetNumberAvailableNominalSampleRateRanges() const\n{\n\tUInt32 theAnswer = 0;\n\tCAPropertyAddress theAddress(kAudioDevicePropertyAvailableNominalSampleRates);\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = GetPropertyDataSize(theAddress, 0, NULL);\n\t\ttheAnswer = theSize / SizeOf32(AudioValueRange);\n\t}\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::GetAvailableNominalSampleRateRanges(UInt32& ioNumberRanges, AudioValueRange* outRanges) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyAvailableNominalSampleRates);\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = ioNumberRanges * SizeOf32(AudioValueRange);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, outRanges);\n\t\tioNumberRanges = theSize / SizeOf32(AudioValueRange);\n\t}\n\telse\n\t{\n\t\tioNumberRanges = 0;\n\t}\n}\n\nvoid\tCAHALAudioDevice::GetAvailableNominalSampleRateRangeByIndex(UInt32 inIndex, Float64& outMinimum, Float64& outMaximum) const\n{\n\tUInt32 theNumberRanges = GetNumberAvailableNominalSampleRateRanges();\n\tThrowIf(inIndex >= theNumberRanges, CAException(kAudioHardwareIllegalOperationError), \"CAHALAudioDevice::GetAvailableNominalSampleRateRangeByIndex: index out of range\");\n\tCAAutoArrayDelete<AudioValueRange> theRanges(theNumberRanges);\n\tGetAvailableNominalSampleRateRanges(theNumberRanges, theRanges);\n\toutMinimum = theRanges[inIndex].mMinimum;\n\toutMaximum = theRanges[inIndex].mMaximum;\n}\n\nbool\tCAHALAudioDevice::IsValidNominalSampleRate(Float64 inSampleRate) const\n{\n\tbool theAnswer = false;\n\tUInt32 theNumberRanges = GetNumberAvailableNominalSampleRateRanges();\n\tCAAutoArrayDelete<AudioValueRange> theRanges(theNumberRanges);\n\tGetAvailableNominalSampleRateRanges(theNumberRanges, theRanges);\n\tfor(UInt32 theIndex = 0; !theAnswer && (theIndex < theNumberRanges); ++theIndex)\n\t{\n\t\ttheAnswer = (inSampleRate >= theRanges[theIndex].mMinimum) && (inSampleRate <= theRanges[theIndex].mMinimum);\n\t}\n\treturn theAnswer;\n}\n\nbool\tCAHALAudioDevice::IsIOBufferSizeSettable() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyBufferFrameSize);\n\treturn IsPropertySettable(theAddress);\n}\n\nUInt32\tCAHALAudioDevice::GetIOBufferSize() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyBufferFrameSize);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nvoid\tCAHALAudioDevice::SetIOBufferSize(UInt32 inBufferSize)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyBufferFrameSize);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(UInt32), &inBufferSize);\n}\n\nbool\tCAHALAudioDevice::UsesVariableIOBufferSizes() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyUsesVariableBufferFrameSizes);\n\treturn HasProperty(theAddress);\n}\n\nUInt32\tCAHALAudioDevice::GetMaximumVariableIOBufferSize() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyUsesVariableBufferFrameSizes);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nbool\tCAHALAudioDevice::HasIOBufferSizeRange() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyBufferFrameSizeRange);\n\treturn HasProperty(theAddress);\n}\n\nvoid\tCAHALAudioDevice::GetIOBufferSizeRange(UInt32& outMinimum, UInt32& outMaximum) const\n{\n\tAudioValueRange theAnswer = { 0, 0 };\n\tCAPropertyAddress theAddress(kAudioDevicePropertyBufferFrameSizeRange);\n\tUInt32 theSize = sizeof(AudioValueRange);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\toutMinimum = static_cast<UInt32>(theAnswer.mMinimum);\n\toutMaximum = static_cast<UInt32>(theAnswer.mMaximum);\n}\n\nAudioDeviceIOProcID\tCAHALAudioDevice::CreateIOProcID(AudioDeviceIOProc inIOProc, void* inClientData)\n{\n\tAudioDeviceIOProcID theAnswer = NULL;\n\tOSStatus theError = AudioDeviceCreateIOProcID(mObjectID, inIOProc, inClientData, &theAnswer);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::CreateIOProcID: got an error creating the IOProc ID\");\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::DestroyIOProcID(AudioDeviceIOProcID inIOProcID)\n{\n\tOSStatus theError = AudioDeviceDestroyIOProcID(mObjectID, inIOProcID);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::DestroyIOProcID: got an error destroying the IOProc ID\");\n}\n\nvoid\tCAHALAudioDevice::StartIOProc(AudioDeviceIOProcID inIOProcID)\n{\n\tOSStatus theError = AudioDeviceStart(mObjectID, inIOProcID);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::StartIOProc: got an error starting an IOProc\");\n}\n\nvoid\tCAHALAudioDevice::StartIOProcAtTime(AudioDeviceIOProcID inIOProcID, AudioTimeStamp& ioStartTime, bool inIsInput, bool inIgnoreHardware)\n{\n\tUInt32 theFlags = 0;\n\tif(inIsInput)\n\t{\n\t\ttheFlags |= kAudioDeviceStartTimeIsInputFlag;\n\t}\n\tif(inIgnoreHardware)\n\t{\n\t\ttheFlags |= kAudioDeviceStartTimeDontConsultDeviceFlag;\n\t}\n\t\n\tOSStatus theError = AudioDeviceStartAtTime(mObjectID, inIOProcID, &ioStartTime, theFlags);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::StartIOProcAtTime: got an error starting an IOProc\");\n}\n\nvoid\tCAHALAudioDevice::StopIOProc(AudioDeviceIOProcID inIOProcID)\n{\n\tOSStatus theError = AudioDeviceStop(mObjectID, inIOProcID);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::StopIOProc: got an error stopping an IOProc\");\n}\n\nvoid\tCAHALAudioDevice::GetIOProcStreamUsage(AudioDeviceIOProcID inIOProcID, bool inIsInput, bool* outStreamUsage) const\n{\n\t//\tmake an AudioHardwareIOProcStreamUsage the right size\n\tUInt32 theNumberStreams = GetNumberStreams(inIsInput);\n\tUInt32 theSize = SizeOf32(void*) + SizeOf32(UInt32) + (theNumberStreams * SizeOf32(UInt32));\n\tCAAutoFree<AudioHardwareIOProcStreamUsage> theStreamUsage(theSize);\n\t\n\t//\tset it up\n\ttheStreamUsage->mIOProc = reinterpret_cast<void*>(inIOProcID);\n\ttheStreamUsage->mNumberStreams = theNumberStreams;\n\t\n\t//\tget the property\n\tCAPropertyAddress theAddress(kAudioDevicePropertyIOProcStreamUsage, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tGetPropertyData(theAddress, 0, NULL, theSize, theStreamUsage);\n\t\n\t//\tfill out the return value\n\tfor(UInt32 theIndex = 0; theIndex < theNumberStreams; ++theIndex)\n\t{\n\t\toutStreamUsage[theIndex] = (theStreamUsage->mStreamIsOn[theIndex] != 0);\n\t}\n}\n\nvoid\tCAHALAudioDevice::SetIOProcStreamUsage(AudioDeviceIOProcID inIOProcID, bool inIsInput, const bool* inStreamUsage)\n{\n\t//\tmake an AudioHardwareIOProcStreamUsage the right size\n\tUInt32 theNumberStreams = GetNumberStreams(inIsInput);\n\tUInt32 theSize = SizeOf32(void*) + SizeOf32(UInt32) + (theNumberStreams * SizeOf32(UInt32));\n\tCAAutoFree<AudioHardwareIOProcStreamUsage> theStreamUsage(theSize);\n\t\n\t//\tset it up\n\ttheStreamUsage->mIOProc = reinterpret_cast<void*>(inIOProcID);\n\ttheStreamUsage->mNumberStreams = theNumberStreams;\n\tfor(UInt32 theIndex = 0; theIndex < theNumberStreams; ++theIndex)\n\t{\n\t\ttheStreamUsage->mStreamIsOn[theIndex] = (inStreamUsage[theIndex] ? 1 : 0);\n\t}\n\t\n\t//\tset the property\n\tCAPropertyAddress theAddress(kAudioDevicePropertyIOProcStreamUsage, inIsInput ? kAudioDevicePropertyScopeInput : kAudioDevicePropertyScopeOutput);\n\tSetPropertyData(theAddress, 0, NULL, theSize, theStreamUsage);\n}\n\nFloat32\tCAHALAudioDevice::GetIOCycleUsage() const\n{\n\tFloat32 theAnswer = 0;\n\tCAPropertyAddress theAddress(kAudioDevicePropertyIOCycleUsage);\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::SetIOCycleUsage(Float32 inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyIOCycleUsage);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(Float32), &inValue);\n}\n\nvoid\tCAHALAudioDevice::GetCurrentTime(AudioTimeStamp& outTime)\n{\n\tOSStatus theError = AudioDeviceGetCurrentTime(mObjectID, &outTime);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::GetCurrentTime: got an error getting the current time\");\n}\n\nvoid\tCAHALAudioDevice::TranslateTime(const AudioTimeStamp& inTime, AudioTimeStamp& outTime)\n{\n\tOSStatus theError = AudioDeviceTranslateTime(mObjectID, &inTime, &outTime);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::TranslateTime: got an error translating time\");\n}\n\nvoid\tCAHALAudioDevice::GetNearestStartTime(AudioTimeStamp& ioTime, bool inIsInput, bool inIgnoreHardware)\n{\n\tUInt32 theFlags = 0;\n\tif(inIsInput)\n\t{\n\t\ttheFlags |= kAudioDeviceStartTimeIsInputFlag;\n\t}\n\tif(inIgnoreHardware)\n\t{\n\t\ttheFlags |= kAudioDeviceStartTimeDontConsultDeviceFlag;\n\t}\n\t\n\tOSStatus theError = AudioDeviceGetNearestStartTime(mObjectID, &ioTime, theFlags);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::GetNearestStartTime: got an error getting the start time\");\n}\n\nbool\tCAHALAudioDevice::HasVolumeControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyVolumeScalar, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::VolumeControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyVolumeScalar, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nFloat32\tCAHALAudioDevice::GetVolumeControlScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyVolumeScalar, inScope, inChannel);\n\tFloat32 theValue = 0.0f;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nFloat32\tCAHALAudioDevice::GetVolumeControlDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyVolumeDecibels, inScope, inChannel);\n\tFloat32 theValue = 0.0f;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nvoid\tCAHALAudioDevice::SetVolumeControlScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyVolumeScalar, inScope, inChannel);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(Float32), &inValue);\n}\n\nvoid\tCAHALAudioDevice::SetVolumeControlDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyVolumeDecibels, inScope, inChannel);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(Float32), &inValue);\n}\n\nFloat32\tCAHALAudioDevice::GetVolumeControlScalarForDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyVolumeDecibelsToScalar, inScope, inChannel);\n\tFloat32 theValue = inValue;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nFloat32\tCAHALAudioDevice::GetVolumeControlDecibelForScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyVolumeScalarToDecibels, inScope, inChannel);\n\tFloat32 theValue = inValue;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nbool\tCAHALAudioDevice::HasSubVolumeControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubVolumeScalar, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::SubVolumeControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubVolumeScalar, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nFloat32\tCAHALAudioDevice::GetSubVolumeControlScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubVolumeScalar, inScope, inChannel);\n\tFloat32 theValue = 0.0f;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nFloat32\tCAHALAudioDevice::GetSubVolumeControlDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubVolumeDecibels, inScope, inChannel);\n\tFloat32 theValue = 0.0f;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nvoid\tCAHALAudioDevice::SetSubVolumeControlScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubVolumeScalar, inScope, inChannel);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(Float32), &inValue);\n}\n\nvoid\tCAHALAudioDevice::SetSubVolumeControlDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubVolumeDecibels, inScope, inChannel);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(Float32), &inValue);\n}\n\nFloat32\tCAHALAudioDevice::GetSubVolumeControlScalarForDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubVolumeDecibelsToScalar, inScope, inChannel);\n\tFloat32 theValue = inValue;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nFloat32\tCAHALAudioDevice::GetSubVolumeControlDecibelForScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubVolumeScalarToDecibels, inScope, inChannel);\n\tFloat32 theValue = inValue;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nbool\tCAHALAudioDevice::HasMuteControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyMute, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::MuteControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyMute, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nbool\tCAHALAudioDevice::GetMuteControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyMute, inScope, inChannel);\n\tUInt32 theValue = 0;\n\tUInt32 theSize = sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue != 0;\n}\n\nvoid\tCAHALAudioDevice::SetMuteControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, bool inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyMute, inScope, inChannel);\n\tUInt32 theValue = (inValue ? 1 : 0);\n\tUInt32 theSize = sizeof(UInt32);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n}\n\nbool\tCAHALAudioDevice::HasSoloControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySolo, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::SoloControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySolo, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nbool\tCAHALAudioDevice::GetSoloControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySolo, inScope, inChannel);\n\tUInt32 theValue = 0;\n\tUInt32 theSize = sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue != 0;\n}\n\nvoid\tCAHALAudioDevice::SetSoloControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, bool inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySolo, inScope, inChannel);\n\tUInt32 theValue = (inValue ? 1 : 0);\n\tUInt32 theSize = sizeof(UInt32);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n}\n\nbool\tCAHALAudioDevice::HasStereoPanControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyStereoPan, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::StereoPanControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyStereoPan, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nFloat32\tCAHALAudioDevice::GetStereoPanControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyStereoPan, inScope, inChannel);\n\tFloat32 theValue = 0.0f;\n\tUInt32 theSize = sizeof(Float32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue;\n}\n\nvoid\tCAHALAudioDevice::SetStereoPanControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyStereoPan, inScope, inChannel);\n\tUInt32 theSize = sizeof(Float32);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &inValue);\n}\n\nvoid\tCAHALAudioDevice::GetStereoPanControlChannels(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32& outLeftChannel, UInt32& outRightChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyStereoPanChannels, inScope, inChannel);\n\tUInt32 theValue[2] = { 0, 0 };\n\tUInt32 theSize = 2 * sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, theValue);\n\toutLeftChannel = theValue[0];\n\toutRightChannel = theValue[1];\n}\n\nbool\tCAHALAudioDevice::HasJackControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyJackIsConnected, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::GetJackControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyJackIsConnected, inScope, inChannel);\n\tUInt32 theValue = 0;\n\tUInt32 theSize = sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue != 0;\n}\n\nbool\tCAHALAudioDevice::HasSubMuteControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubMute, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::SubMuteControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubMute, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nbool\tCAHALAudioDevice::GetSubMuteControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubMute, inScope, inChannel);\n\tUInt32 theValue = 0;\n\tUInt32 theSize = sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue != 0;\n}\n\nvoid\tCAHALAudioDevice::SetSubMuteControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, bool inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertySubMute, inScope, inChannel);\n\tUInt32 theValue = (inValue ? 1 : 0);\n\tUInt32 theSize = sizeof(UInt32);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n}\n\nbool\tCAHALAudioDevice::HasiSubOwnerControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDriverShouldOwniSub, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::iSubOwnerControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDriverShouldOwniSub, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nbool\tCAHALAudioDevice::GetiSubOwnerControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDriverShouldOwniSub, inScope, inChannel);\n\tUInt32 theValue = 0;\n\tUInt32 theSize = sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theValue != 0;\n}\n\nvoid\tCAHALAudioDevice::SetiSubOwnerControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, bool inValue)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDriverShouldOwniSub, inScope, inChannel);\n\tUInt32 theValue = (inValue ? 1 : 0);\n\tUInt32 theSize = sizeof(UInt32);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n}\n\nbool\tCAHALAudioDevice::HasDataSourceControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDataSource, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::DataSourceControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDataSource, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nUInt32\tCAHALAudioDevice::GetCurrentDataSourceID(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDataSource, inScope, inChannel);\n\tUInt32 theAnswer = 0;\n\tUInt32 theSize = sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::SetCurrentDataSourceByID(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inID)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDataSource, inScope, inChannel);\n\tUInt32 theSize = sizeof(UInt32);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &inID);\n}\n\nUInt32\tCAHALAudioDevice::GetNumberAvailableDataSources(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDataSources, inScope, inChannel);\n\tUInt32 theAnswer = 0;\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = GetPropertyDataSize(theAddress, 0, NULL);\n\t\ttheAnswer = theSize / SizeOf32(UInt32);\n\t}\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::GetAvailableDataSources(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32& ioNumberSources, UInt32* outSources) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDataSources, inScope, inChannel);\n\tUInt32 theNumberSources = std::min(GetNumberAvailableDataSources(inScope, inChannel), ioNumberSources);\n\tUInt32 theSize = theNumberSources * SizeOf32(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, outSources);\n\tioNumberSources = theSize / SizeOf32(UInt32);\n}\n\nUInt32\tCAHALAudioDevice::GetAvailableDataSourceByIndex(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inIndex) const\n{\n\tAudioStreamID theAnswer = 0;\n\tUInt32 theNumberSources = GetNumberAvailableDataSources(inScope, inChannel);\n\tif((theNumberSources > 0) && (inIndex < theNumberSources))\n\t{\n\t\tCAAutoArrayDelete<UInt32> theSourceList(theNumberSources);\n\t\tGetAvailableDataSources(inScope, inChannel, theNumberSources, theSourceList);\n\t\ttheAnswer = theSourceList[inIndex];\n\t}\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioDevice::CopyDataSourceNameForID(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inID) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyDataSourceNameForIDCFString, inScope, inChannel);\n\tCFStringRef theAnswer = NULL;\n\tAudioValueTranslation theTranslation = { &inID, sizeof(UInt32), &theAnswer, sizeof(CFStringRef) };\n\tUInt32 theSize = sizeof(AudioValueTranslation);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theTranslation);\n\treturn theAnswer;\n}\n\nbool\tCAHALAudioDevice::HasDataDestinationControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlayThruDestination, inScope, inChannel);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::DataDestinationControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlayThruDestination, inScope, inChannel);\n\treturn IsPropertySettable(theAddress);\n}\n\nUInt32\tCAHALAudioDevice::GetCurrentDataDestinationID(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlayThruDestination, inScope, inChannel);\n\tUInt32 theAnswer = 0;\n\tUInt32 theSize = sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::SetCurrentDataDestinationByID(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inID)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlayThruDestination, inScope, inChannel);\n\tUInt32 theSize = sizeof(UInt32);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &inID);\n}\n\nUInt32\tCAHALAudioDevice::GetNumberAvailableDataDestinations(AudioObjectPropertyScope inScope, UInt32 inChannel) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlayThruDestinations, inScope, inChannel);\n\tUInt32 theAnswer = 0;\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = GetPropertyDataSize(theAddress, 0, NULL);\n\t\ttheAnswer = theSize / SizeOf32(UInt32);\n\t}\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::GetAvailableDataDestinations(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32& ioNumberDestinations, UInt32* outDestinations) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlayThruDestinations, inScope, inChannel);\n\tUInt32 theNumberDestinations = std::min(GetNumberAvailableDataDestinations(inScope, inChannel), ioNumberDestinations);\n\tUInt32 theSize = theNumberDestinations * SizeOf32(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, outDestinations);\n\tioNumberDestinations = theSize / SizeOf32(UInt32);\n}\n\nUInt32\tCAHALAudioDevice::GetAvailableDataDestinationByIndex(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inIndex) const\n{\n\tAudioStreamID theAnswer = 0;\n\tUInt32 theNumberDestinations = GetNumberAvailableDataDestinations(inScope, inChannel);\n\tif((theNumberDestinations > 0) && (inIndex < theNumberDestinations))\n\t{\n\t\tCAAutoArrayDelete<UInt32> theDestinationList(theNumberDestinations);\n\t\tGetAvailableDataDestinations(inScope, inChannel, theNumberDestinations, theDestinationList);\n\t\ttheAnswer = theDestinationList[inIndex];\n\t}\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioDevice::CopyDataDestinationNameForID(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inID) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyPlayThruDestinationNameForIDCFString, inScope, inChannel);\n\tCFStringRef theAnswer = NULL;\n\tAudioValueTranslation theTranslation = { &inID, sizeof(UInt32), &theAnswer, sizeof(CFStringRef) };\n\tUInt32 theSize = sizeof(AudioValueTranslation);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theTranslation);\n\treturn theAnswer;\n}\n\nbool\tCAHALAudioDevice::HasClockSourceControl() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockSource);\n\treturn HasProperty(theAddress);\n}\n\nbool\tCAHALAudioDevice::ClockSourceControlIsSettable() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockSource);\n\treturn IsPropertySettable(theAddress);\n}\n\nUInt32\tCAHALAudioDevice::GetCurrentClockSourceID() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockSource);\n\tUInt32 theAnswer = 0;\n\tUInt32 theSize = sizeof(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::SetCurrentClockSourceByID(UInt32 inID)\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockSource);\n\tUInt32 theSize = sizeof(UInt32);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &inID);\n}\n\nUInt32\tCAHALAudioDevice::GetNumberAvailableClockSources() const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockSources);\n\tUInt32 theAnswer = 0;\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = GetPropertyDataSize(theAddress, 0, NULL);\n\t\ttheAnswer = theSize / SizeOf32(UInt32);\n\t}\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioDevice::GetAvailableClockSources(UInt32& ioNumberSources, UInt32* outSources) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockSources);\n\tUInt32 theNumberSources = std::min(GetNumberAvailableClockSources(), ioNumberSources);\n\tUInt32 theSize = theNumberSources * SizeOf32(UInt32);\n\tGetPropertyData(theAddress, 0, NULL, theSize, outSources);\n\tioNumberSources = theSize / SizeOf32(UInt32);\n}\n\nUInt32\tCAHALAudioDevice::GetAvailableClockSourceByIndex(UInt32 inIndex) const\n{\n\tAudioStreamID theAnswer = 0;\n\tUInt32 theNumberSources = GetNumberAvailableClockSources();\n\tif((theNumberSources > 0) && (inIndex < theNumberSources))\n\t{\n\t\tCAAutoArrayDelete<UInt32> theSourceList(theNumberSources);\n\t\tGetAvailableClockSources(theNumberSources, theSourceList);\n\t\ttheAnswer = theSourceList[inIndex];\n\t}\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioDevice::CopyClockSourceNameForID(UInt32 inID) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockSourceNameForIDCFString);\n\tCFStringRef theAnswer = NULL;\n\tAudioValueTranslation theTranslation = { &inID, sizeof(UInt32), &theAnswer, sizeof(CFStringRef) };\n\tUInt32 theSize = sizeof(AudioValueTranslation);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theTranslation);\n\treturn theAnswer;\n}\n\nUInt32\tCAHALAudioDevice::GetClockSourceKindForID(UInt32 inID) const\n{\n\tCAPropertyAddress theAddress(kAudioDevicePropertyClockSourceKindForID);\n\tUInt32 theAnswer = 0;\n\tAudioValueTranslation theTranslation = { &inID, sizeof(UInt32), &theAnswer, sizeof(UInt32) };\n\tUInt32 theSize = sizeof(AudioValueTranslation);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theTranslation);\n\treturn theAnswer;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHALAudioDevice.h",
    "content": "/*\n     File: CAHALAudioDevice.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAHALAudioDevice_h__)\n#define __CAHALAudioDevice_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSuper Class Includes\n#include \"CAHALAudioObject.h\"\n\n//\tPublicUtility Includes\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n\n//==================================================================================================\n//\tCAHALAudioDevice\n//==================================================================================================\n\nclass CAHALAudioDevice\n:\n\tpublic\tCAHALAudioObject\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCAHALAudioDevice(AudioObjectID inAudioDevice);\n\t\t\t\t\t\tCAHALAudioDevice(CFStringRef inUID);\n\tvirtual\t\t\t\t~CAHALAudioDevice();\n\n//\tGeneral Stuff\npublic:\n\tCFStringRef\t\t\tCopyDeviceUID() const;\n\tbool\t\t\t\tHasModelUID() const;\n\tCFStringRef\t\t\tCopyModelUID() const;\n\tCFStringRef\t\t\tCopyConfigurationApplicationBundleID() const;\n\tCFURLRef\t\t\tCopyIconLocation() const;\n\tUInt32\t\t\t\tGetTransportType() const;\n\tbool\t\t\t\tCanBeDefaultDevice(bool inIsInput, bool inIsSystem) const;\n\tbool\t\t\t\tHasDevicePlugInStatus() const;\n\tOSStatus\t\t\tGetDevicePlugInStatus() const;\n\tbool\t\t\t\tIsAlive() const;\n\tbool\t\t\t\tIsHidden() const;\n\tpid_t\t\t\t\tGetHogModeOwner() const;\n\tbool\t\t\t\tIsHogModeSettable() const;\n\tbool\t\t\t\tTakeHogMode();\n\tvoid\t\t\t\tReleaseHogMode();\n\tbool\t\t\t\tHasPreferredStereoChannels(bool inIsInput) const;\n\tvoid\t\t\t\tGetPreferredStereoChannels(bool inIsInput, UInt32& outLeft, UInt32& outRight) const;\n\tvoid\t\t\t\tSetPreferredStereoChannels(bool inIsInput, UInt32 inLeft, UInt32 inRight);\n\tbool\t\t\t\tHasPreferredChannelLayout(bool inIsInput) const;\n\tvoid\t\t\t\tGetPreferredChannelLayout(bool inIsInput, AudioChannelLayout& outChannelLayout) const;\n\tvoid\t\t\t\tSetPreferredStereoChannels(bool inIsInput, AudioChannelLayout& inChannelLayout);\n\tUInt32\t\t\t\tGetNumberRelatedAudioDevices() const;\n\tvoid\t\t\t\tGetRelatedAudioDevices(UInt32& ioNumberRelatedDevices, AudioObjectID* outRelatedDevices) const;\n\tAudioObjectID\t\tGetRelatedAudioDeviceByIndex(UInt32 inIndex) const;\n\n//\tStream Stuff\npublic:\n\tUInt32\t\t\t\tGetNumberStreams(bool inIsInput) const;\n\tvoid\t\t\t\tGetStreams(bool inIsInput, UInt32& ioNumberStreams, AudioObjectID* outStreamList) const;\n\tAudioObjectID\t\tGetStreamByIndex(bool inIsInput, UInt32 inIndex) const;\n\tUInt32\t\t\t\tGetTotalNumberChannels(bool inIsInput) const;\n\tvoid\t\t\t\tGetCurrentVirtualFormats(bool inIsInput, UInt32& ioNumberStreams, AudioStreamBasicDescription* outFormats) const;\n\tvoid\t\t\t\tGetCurrentPhysicalFormats(bool inIsInput, UInt32& ioNumberStreams, AudioStreamBasicDescription* outFormats) const;\n\t\n//\tIO Stuff\npublic:\n\tbool\t\t\t\tIsRunning() const;\n\tbool\t\t\t\tIsRunningSomewhere() const;\n\tUInt32\t\t\t\tGetLatency(bool inIsInput) const;\n\tUInt32\t\t\t\tGetSafetyOffset(bool inIsInput) const;\n\tbool\t\t\t\tHasClockDomain() const;\n\tUInt32\t\t\t\tGetClockDomain() const;\n\tFloat64\t\t\t\tGetActualSampleRate() const;\n\tFloat64\t\t\t\tGetNominalSampleRate() const;\n\tvoid\t\t\t\tSetNominalSampleRate(Float64 inSampleRate);\n\tUInt32\t\t\t\tGetNumberAvailableNominalSampleRateRanges() const;\n\tvoid\t\t\t\tGetAvailableNominalSampleRateRanges(UInt32& ioNumberRanges, AudioValueRange* outRanges) const;\n\tvoid\t\t\t\tGetAvailableNominalSampleRateRangeByIndex(UInt32 inIndex, Float64& outMinimum, Float64& outMaximum) const;\n\tbool\t\t\t\tIsValidNominalSampleRate(Float64 inSampleRate) const;\n\tbool\t\t\t\tIsIOBufferSizeSettable() const;\n\tUInt32\t\t\t\tGetIOBufferSize() const;\n\tvoid\t\t\t\tSetIOBufferSize(UInt32 inBufferSize);\n\tbool\t\t\t\tUsesVariableIOBufferSizes() const;\n\tUInt32\t\t\t\tGetMaximumVariableIOBufferSize() const;\n\tbool\t\t\t\tHasIOBufferSizeRange() const;\n\tvoid\t\t\t\tGetIOBufferSizeRange(UInt32& outMinimum, UInt32& outMaximum) const;\n\tAudioDeviceIOProcID\tCreateIOProcID(AudioDeviceIOProc inIOProc, void* inClientData);\n\tAudioDeviceIOProcID\tCreateIOProcIDWithBlock(dispatch_queue_t inDispatchQueue, AudioDeviceIOBlock inIOBlock);\n\tvoid\t\t\t\tDestroyIOProcID(AudioDeviceIOProcID inIOProcID);\n\tvoid\t\t\t\tStartIOProc(AudioDeviceIOProcID inIOProcID);\n\tvoid\t\t\t\tStartIOProcAtTime(AudioDeviceIOProcID inIOProcID, AudioTimeStamp& ioStartTime, bool inIsInput, bool inIgnoreHardware);\n\tvoid\t\t\t\tStopIOProc(AudioDeviceIOProcID inIOProcID);\n\tvoid\t\t\t\tGetIOProcStreamUsage(AudioDeviceIOProcID inIOProcID, bool inIsInput, bool* outStreamUsage) const;\n\tvoid\t\t\t\tSetIOProcStreamUsage(AudioDeviceIOProcID inIOProcID, bool inIsInput, const bool* inStreamUsage);\n\tFloat32\t\t\t\tGetIOCycleUsage() const;\n\tvoid\t\t\t\tSetIOCycleUsage(Float32 inValue);\n\t\n//\tTime Operations\npublic:\n\tvoid\t\t\t\tGetCurrentTime(AudioTimeStamp& outTime);\n\tvoid\t\t\t\tTranslateTime(const AudioTimeStamp& inTime, AudioTimeStamp& outTime);\n\tvoid\t\t\t\tGetNearestStartTime(AudioTimeStamp& ioTime, bool inIsInput, bool inIgnoreHardware);\n\n//\tControls\npublic:\n\tbool\t\t\t\tHasVolumeControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tVolumeControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tFloat32\t\t\t\tGetVolumeControlScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tFloat32\t\t\t\tGetVolumeControlDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetVolumeControlScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue);\n\tvoid\t\t\t\tSetVolumeControlDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue);\n\tFloat32\t\t\t\tGetVolumeControlScalarForDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue) const;\n\tFloat32\t\t\t\tGetVolumeControlDecibelForScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue) const;\n\t\n\tbool\t\t\t\tHasSubVolumeControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tSubVolumeControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tFloat32\t\t\t\tGetSubVolumeControlScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tFloat32\t\t\t\tGetSubVolumeControlDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetSubVolumeControlScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue);\n\tvoid\t\t\t\tSetSubVolumeControlDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue);\n\tFloat32\t\t\t\tGetSubVolumeControlScalarForDecibelValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue) const;\n\tFloat32\t\t\t\tGetSubVolumeControlDecibelForScalarValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue) const;\n\t\n\tbool\t\t\t\tHasMuteControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tMuteControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tGetMuteControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetMuteControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, bool inValue);\n\t\n\tbool\t\t\t\tHasSoloControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tSoloControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tGetSoloControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetSoloControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, bool inValue);\n\t\n\tbool\t\t\t\tHasStereoPanControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tStereoPanControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tFloat32\t\t\t\tGetStereoPanControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetStereoPanControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, Float32 inValue);\n\tvoid\t\t\t\tGetStereoPanControlChannels(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32& outLeftChannel, UInt32& outRightChannel) const;\n\t\n\tbool\t\t\t\tHasJackControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tGetJackControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\t\n\tbool\t\t\t\tHasSubMuteControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tSubMuteControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tGetSubMuteControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetSubMuteControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, bool inValue);\n\t\n\tbool\t\t\t\tHasiSubOwnerControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tiSubOwnerControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tGetiSubOwnerControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetiSubOwnerControlValue(AudioObjectPropertyScope inScope, UInt32 inChannel, bool inValue);\n\n\tbool\t\t\t\tHasDataSourceControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tDataSourceControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tUInt32\t\t\t\tGetCurrentDataSourceID(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetCurrentDataSourceByID(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inID);\n\tUInt32\t\t\t\tGetNumberAvailableDataSources(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tGetAvailableDataSources(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32& ioNumberSources, UInt32* outSources) const;\n\tUInt32\t\t\t\tGetAvailableDataSourceByIndex(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inIndex) const;\n\tCFStringRef\t\t\tCopyDataSourceNameForID(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inID) const;\n\n\tbool\t\t\t\tHasDataDestinationControl(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tbool\t\t\t\tDataDestinationControlIsSettable(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tUInt32\t\t\t\tGetCurrentDataDestinationID(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tSetCurrentDataDestinationByID(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inID);\n\tUInt32\t\t\t\tGetNumberAvailableDataDestinations(AudioObjectPropertyScope inScope, UInt32 inChannel) const;\n\tvoid\t\t\t\tGetAvailableDataDestinations(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32& ioNumberDestinations, UInt32* outDestinations) const;\n\tUInt32\t\t\t\tGetAvailableDataDestinationByIndex(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inIndex) const;\n\tCFStringRef\t\t\tCopyDataDestinationNameForID(AudioObjectPropertyScope inScope, UInt32 inChannel, UInt32 inID) const;\n\n\tbool\t\t\t\tHasClockSourceControl() const;\n\tbool\t\t\t\tClockSourceControlIsSettable() const;\n\tUInt32\t\t\t\tGetCurrentClockSourceID() const;\n\tvoid\t\t\t\tSetCurrentClockSourceByID(UInt32 inID);\n\tUInt32\t\t\t\tGetNumberAvailableClockSources() const;\n\tvoid\t\t\t\tGetAvailableClockSources(UInt32& ioNumberSources, UInt32* outSources) const;\n\tUInt32\t\t\t\tGetAvailableClockSourceByIndex(UInt32 inIndex) const;\n\tCFStringRef\t\t\tCopyClockSourceNameForID(UInt32 inID) const;\n\tUInt32\t\t\t\tGetClockSourceKindForID(UInt32 inID) const;\n\t\n};\n\ninline AudioDeviceIOProcID\tCAHALAudioDevice::CreateIOProcIDWithBlock(dispatch_queue_t inDispatchQueue, AudioDeviceIOBlock inIOBlock)\n{\n\tAudioDeviceIOProcID theAnswer = NULL;\n\tOSStatus theError = AudioDeviceCreateIOProcIDWithBlock(&theAnswer, mObjectID, inDispatchQueue, inIOBlock);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioDevice::CreateIOProcIDWithBlock: got an error creating the IOProc ID\");\n\treturn theAnswer;\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHALAudioObject.cpp",
    "content": "/*\n     File: CAHALAudioObject.cpp\n Abstract: CAHALAudioObject.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAHALAudioObject.h\"\n\n//\tPublicUtility Includes\n#include \"CAAutoDisposer.h\"\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n#include \"CAPropertyAddress.h\"\n\n//==================================================================================================\n//\tCAHALAudioObject\n//==================================================================================================\n\nCAHALAudioObject::CAHALAudioObject(AudioObjectID inObjectID)\n:\n\tmObjectID(inObjectID)\n{\n}\n\nCAHALAudioObject::~CAHALAudioObject()\n{\n}\n\nAudioObjectID\tCAHALAudioObject::GetObjectID() const\n{\n\treturn mObjectID;\n}\n\nvoid\tCAHALAudioObject::SetObjectID(AudioObjectID inObjectID)\n{\n\tmObjectID = inObjectID;\n}\n\nAudioClassID\tCAHALAudioObject::GetClassID() const\n{\n\t//\tset up the return value\n\tAudioClassID theAnswer = 0;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyClass);\n\t\n\t//\tmake sure the property exists\n\tif(HasProperty(theAddress))\n\t{\n\t\tUInt32 theSize = sizeof(AudioClassID);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nAudioObjectID\tCAHALAudioObject::GetOwnerObjectID() const\n{\n\t//\tset up the return value\n\tAudioObjectID theAnswer = 0;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyOwner);\n\t\n\t//\tmake sure the property exists\n\tif(HasProperty(theAddress))\n\t{\n\t\t//\tget the property data\n\t\tUInt32 theSize = sizeof(AudioObjectID);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioObject::CopyOwningPlugInBundleID() const\n{\n\t//\tset up the return value\n\tCFStringRef theAnswer = NULL;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyCreator);\n\t\n\t//\tmake sure the property exists\n\tif(HasProperty(theAddress))\n\t{\n\t\t//\tget the property data\n\t\tUInt32 theSize = sizeof(CFStringRef);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioObject::CopyName() const\n{\n\t//\tset up the return value\n\tCFStringRef theAnswer = NULL;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyName);\n\t\n\t//\tmake sure the property exists\n\tif(HasProperty(theAddress))\n\t{\n\t\t//\tget the property data\n\t\tUInt32 theSize = sizeof(CFStringRef);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioObject::CopyManufacturer() const\n{\n\t//\tset up the return value\n\tCFStringRef theAnswer = NULL;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyManufacturer);\n\t\n\t//\tmake sure the property exists\n\tif(HasProperty(theAddress))\n\t{\n\t\t//\tget the property data\n\t\tUInt32 theSize = sizeof(CFStringRef);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioObject::CopyNameForElement(AudioObjectPropertyScope inScope, AudioObjectPropertyElement inElement) const\n{\n\t//\tset up the return value\n\tCFStringRef theAnswer = NULL;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyElementName, inScope, inElement);\n\t\n\t//\tmake sure the property exists\n\tif(HasProperty(theAddress))\n\t{\n\t\t//\tget the property data\n\t\tUInt32 theSize = sizeof(CFStringRef);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioObject::CopyCategoryNameForElement(AudioObjectPropertyScope inScope, AudioObjectPropertyElement inElement) const\n{\n\t//\tset up the return value\n\tCFStringRef theAnswer = NULL;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyElementCategoryName, inScope, inElement);\n\t\n\t//\tmake sure the property exists\n\tif(HasProperty(theAddress))\n\t{\n\t\t//\tget the property data\n\t\tUInt32 theSize = sizeof(CFStringRef);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nCFStringRef\tCAHALAudioObject::CopyNumberNameForElement(AudioObjectPropertyScope inScope, AudioObjectPropertyElement inElement) const\n{\n\t//\tset up the return value\n\tCFStringRef theAnswer = NULL;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyElementNumberName, inScope, inElement);\n\t\n\t//\tmake sure the property exists\n\tif(HasProperty(theAddress))\n\t{\n\t\t//\tget the property data\n\t\tUInt32 theSize = sizeof(CFStringRef);\n\t\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCAHALAudioObject::ObjectExists(AudioObjectID inObjectID)\n{\n\tBoolean isSettable;\n\tCAPropertyAddress theAddress(kAudioObjectPropertyClass);\n\treturn (inObjectID == 0) || (AudioObjectIsPropertySettable(inObjectID, &theAddress, &isSettable) != 0);\n}\n\nUInt32\tCAHALAudioObject::GetNumberOwnedObjects(AudioClassID inClass) const\n{\n\t//\tset up the return value\n\tUInt32 theAnswer = 0;\n\t\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyOwnedObjects);\n\t\n\t//\tfigure out the qualifier\n\tUInt32 theQualifierSize = 0;\n\tvoid* theQualifierData = NULL;\n\tif(inClass != 0)\n\t{\n\t\ttheQualifierSize = sizeof(AudioObjectID);\n\t\ttheQualifierData = &inClass;\n\t}\n\t\n\t//\tget the property data size\n\ttheAnswer = GetPropertyDataSize(theAddress, theQualifierSize, theQualifierData);\n\t\n\t//\tcalculate the number of object IDs\n\ttheAnswer /= SizeOf32(AudioObjectID);\n\t\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioObject::GetAllOwnedObjects(AudioClassID inClass, UInt32& ioNumberObjects, AudioObjectID* ioObjectIDs) const\n{\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyOwnedObjects);\n\t\n\t//\tfigure out the qualifier\n\tUInt32 theQualifierSize = 0;\n\tvoid* theQualifierData = NULL;\n\tif(inClass != 0)\n\t{\n\t\ttheQualifierSize = sizeof(AudioObjectID);\n\t\ttheQualifierData = &inClass;\n\t}\n\t\n\t//\tget the property data\n\tUInt32 theDataSize = ioNumberObjects * SizeOf32(AudioClassID);\n\tGetPropertyData(theAddress, theQualifierSize, theQualifierData, theDataSize, ioObjectIDs);\n\t\n\t//\tset the number of object IDs being returned\n\tioNumberObjects = theDataSize / SizeOf32(AudioObjectID);\n}\n\nAudioObjectID\tCAHALAudioObject::GetOwnedObjectByIndex(AudioClassID inClass, UInt32 inIndex)\n{\n\t//\tset up the property address\n\tCAPropertyAddress theAddress(kAudioObjectPropertyOwnedObjects);\n\t\n\t//\tfigure out the qualifier\n\tUInt32 theQualifierSize = 0;\n\tvoid* theQualifierData = NULL;\n\tif(inClass != 0)\n\t{\n\t\ttheQualifierSize = sizeof(AudioObjectID);\n\t\ttheQualifierData = &inClass;\n\t}\n\t\n\t//\tfigure out how much space to allocate\n\tUInt32 theDataSize = GetPropertyDataSize(theAddress, theQualifierSize, theQualifierData);\n\tUInt32 theNumberObjectIDs = theDataSize / SizeOf32(AudioObjectID);\n\t\n\t//\tset up the return value\n\tAudioObjectID theAnswer = 0;\n\t\n\t//\tmaker sure the index is in range\n\tif(inIndex < theNumberObjectIDs)\n\t{\n\t\t//\tallocate it\n\t\tCAAutoArrayDelete<AudioObjectID> theObjectList(theDataSize / sizeof(AudioObjectID));\n\t\t\n\t\t//\tget the property data\n\t\tGetPropertyData(theAddress, theQualifierSize, theQualifierData, theDataSize, theObjectList);\n\t\t\n\t\t//\tget the return value\n\t\ttheAnswer = theObjectList[inIndex];\n\t}\n\t\n\treturn theAnswer;\n}\n\nbool\tCAHALAudioObject::HasProperty(const AudioObjectPropertyAddress& inAddress) const\n{\n\treturn AudioObjectHasProperty(mObjectID, &inAddress);\n}\n\nbool\tCAHALAudioObject::IsPropertySettable(const AudioObjectPropertyAddress& inAddress) const\n{\n\tBoolean isSettable = false;\n\tOSStatus theError = AudioObjectIsPropertySettable(mObjectID, &inAddress, &isSettable);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioObject::IsPropertySettable: got an error getting info about a property\");\n\treturn isSettable != 0;\n}\n\nUInt32\tCAHALAudioObject::GetPropertyDataSize(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize, const void* inQualifierData) const\n{\n\tUInt32 theDataSize = 0;\n\tOSStatus theError = AudioObjectGetPropertyDataSize(mObjectID, &inAddress, inQualifierDataSize, inQualifierData, &theDataSize);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioObject::GetPropertyDataSize: got an error getting the property data size\");\n\treturn theDataSize;\n}\n\nvoid\tCAHALAudioObject::GetPropertyData(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize, const void* inQualifierData, UInt32& ioDataSize, void* outData) const\n{\n\tOSStatus theError = AudioObjectGetPropertyData(mObjectID, &inAddress, inQualifierDataSize, inQualifierData, &ioDataSize, outData);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioObject::GetPropertyData: got an error getting the property data\");\n}\n\nvoid\tCAHALAudioObject::SetPropertyData(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize, const void* inQualifierData, UInt32 inDataSize, const void* inData)\n{\n\tOSStatus theError = AudioObjectSetPropertyData(mObjectID, &inAddress, inQualifierDataSize, inQualifierData, inDataSize, inData);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioObject::SetPropertyData: got an error setting the property data\");\n}\n\nvoid\tCAHALAudioObject::AddPropertyListener(const AudioObjectPropertyAddress& inAddress, AudioObjectPropertyListenerProc inListenerProc, void* inClientData)\n{\n\tOSStatus theError = AudioObjectAddPropertyListener(mObjectID, &inAddress, inListenerProc, inClientData);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioObject::AddPropertyListener: got an error adding a property listener\");\n}\n\nvoid\tCAHALAudioObject::RemovePropertyListener(const AudioObjectPropertyAddress& inAddress, AudioObjectPropertyListenerProc inListenerProc, void* inClientData)\n{\n\tOSStatus theError = AudioObjectRemovePropertyListener(mObjectID, &inAddress, inListenerProc, inClientData);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioObject::RemovePropertyListener: got an error removing a property listener\");\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHALAudioObject.h",
    "content": "/*\n     File: CAHALAudioObject.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAHALAudioObject_h__)\n#define __CAHALAudioObject_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tPublicUtility Includes\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudio.h>\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include <CoreAudio.h>\n\t#include <CoreFoundation.h>\n#endif\n\n//==================================================================================================\n//\tCAHALAudioObject\n//==================================================================================================\n\nclass CAHALAudioObject\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\t\tCAHALAudioObject(AudioObjectID inObjectID);\n\tvirtual\t\t\t\t\t\t~CAHALAudioObject();\n\n//\tAttributes\npublic:\n\tAudioObjectID\t\t\t\tGetObjectID() const;\n\tvoid\t\t\t\t\t\tSetObjectID(AudioObjectID inObjectID);\n\tAudioClassID\t\t\t\tGetClassID() const;\n\tAudioObjectID\t\t\t\tGetOwnerObjectID() const;\n\tCFStringRef\t\t\t\t\tCopyOwningPlugInBundleID() const;\n\tCFStringRef\t\t\t\t\tCopyName() const;\n\tCFStringRef\t\t\t\t\tCopyManufacturer() const;\n\tCFStringRef\t\t\t\t\tCopyNameForElement(AudioObjectPropertyScope inScope, AudioObjectPropertyElement inElement) const;\n\tCFStringRef\t\t\t\t\tCopyCategoryNameForElement(AudioObjectPropertyScope inScope, AudioObjectPropertyElement inElement) const;\n\tCFStringRef\t\t\t\t\tCopyNumberNameForElement(AudioObjectPropertyScope inScope, AudioObjectPropertyElement inElement) const;\n\t\n\tstatic bool\t\t\t\t\tObjectExists(AudioObjectID inObjectID);\n\n//\tOwned Objects\npublic:\n\tUInt32\t\t\t\t\t\tGetNumberOwnedObjects(AudioClassID inClass) const;\n\tvoid\t\t\t\t\t\tGetAllOwnedObjects(AudioClassID inClass, UInt32& ioNumberObjects, AudioObjectID* ioObjectIDs) const;\n\tAudioObjectID\t\t\t\tGetOwnedObjectByIndex(AudioClassID inClass, UInt32 inIndex);\n\t\n//\tProperty Operations\npublic:\n\tbool\t\t\t\t\t\tHasProperty(const AudioObjectPropertyAddress& inAddress) const;\n\tbool\t\t\t\t\t\tIsPropertySettable(const AudioObjectPropertyAddress& inAddress) const;\n\tUInt32\t\t\t\t\t\tGetPropertyDataSize(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize, const void* inQualifierData) const;\n\t\n\tvoid\t\t\t\t\t\tGetPropertyData(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize, const void* inQualifierData, UInt32& ioDataSize, void* outData) const;\n\tvoid\t\t\t\t\t\tSetPropertyData(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize, const void* inQualifierData, UInt32 inDataSize, const void* inData);\n\t\n\tUInt32\t\t\t\t\t\tGetPropertyData_UInt32(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL) const\t\t\t\t\t\t\t\t\t\t{ UInt32 theAnswer = 0; UInt32 theDataSize = SizeOf32(UInt32); GetPropertyData(inAddress, inQualifierDataSize, inQualifierData, theDataSize, &theAnswer); return theAnswer; }\n\tvoid\t\t\t\t\t\tSetPropertyData_UInt32(const AudioObjectPropertyAddress& inAddress, UInt32 inValue, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL)\t\t\t\t\t\t\t\t{ SetPropertyData(inAddress, inQualifierDataSize, inQualifierData, SizeOf32(UInt32), &inValue); }\n\n\tFloat32\t\t\t\t\t\tGetPropertyData_Float32(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL) const\t\t\t\t\t\t\t\t\t\t{ Float32 theAnswer = 0; UInt32 theDataSize = SizeOf32(Float32); GetPropertyData(inAddress, inQualifierDataSize, inQualifierData, theDataSize, &theAnswer); return theAnswer; }\n\tvoid\t\t\t\t\t\tSetPropertyData_Float32(const AudioObjectPropertyAddress& inAddress, Float32 inValue, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL)\t\t\t\t\t\t\t{ SetPropertyData(inAddress, inQualifierDataSize, inQualifierData, SizeOf32(Float32), &inValue); }\n\n\tFloat64\t\t\t\t\t\tGetPropertyData_Float64(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL) const\t\t\t\t\t\t\t\t\t\t{ Float64 theAnswer = 0; UInt32 theDataSize = SizeOf32(Float64); GetPropertyData(inAddress, inQualifierDataSize, inQualifierData, theDataSize, &theAnswer); return theAnswer; }\n\tvoid\t\t\t\t\t\tSetPropertyData_Float64(const AudioObjectPropertyAddress& inAddress, Float64 inValue, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL)\t\t\t\t\t\t\t{ SetPropertyData(inAddress, inQualifierDataSize, inQualifierData, SizeOf32(Float64), &inValue); }\n\n\tCFTypeRef\t\t\t\t\tGetPropertyData_CFType(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL) const\t\t\t\t\t\t\t\t\t\t{ CFTypeRef theAnswer = NULL; UInt32 theDataSize = SizeOf32(CFTypeRef); GetPropertyData(inAddress, inQualifierDataSize, inQualifierData, theDataSize, &theAnswer); return theAnswer; }\n\tvoid\t\t\t\t\t\tSetPropertyData_CFType(const AudioObjectPropertyAddress& inAddress, CFTypeRef inValue, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL)\t\t\t\t\t\t\t\t{ SetPropertyData(inAddress, inQualifierDataSize, inQualifierData, SizeOf32(CFTypeRef), &inValue); }\n\n\tCFStringRef\t\t\t\t\tGetPropertyData_CFString(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL) const\t\t\t\t\t\t\t\t\t\t{ CFStringRef theAnswer = NULL; UInt32 theDataSize = SizeOf32(CFStringRef); GetPropertyData(inAddress, inQualifierDataSize, inQualifierData, theDataSize, &theAnswer); return theAnswer; }\n\tvoid\t\t\t\t\t\tSetPropertyData_CFString(const AudioObjectPropertyAddress& inAddress, CFStringRef inValue, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL)\t\t\t\t\t\t\t{ SetPropertyData(inAddress, inQualifierDataSize, inQualifierData, SizeOf32(CFStringRef), &inValue); }\n\n\ttemplate <class T> void\t\tGetPropertyData_Struct(const AudioObjectPropertyAddress& inAddress, T& outStruct, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL) const\t\t\t\t\t\t\t{ UInt32 theDataSize = SizeOf32(T); GetPropertyData(inAddress, inQualifierDataSize, inQualifierData, theDataSize, &outStruct); }\n\ttemplate <class T> void\t\tSetPropertyData_Struct(const AudioObjectPropertyAddress& inAddress, T& inStruct, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL)\t\t\t\t\t\t\t\t{ SetPropertyData(inAddress, inQualifierDataSize, inQualifierData, SizeOf32(T), &inStruct); }\n\n\ttemplate <class T> UInt32\tGetPropertyData_ArraySize(const AudioObjectPropertyAddress& inAddress, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL) const\t\t\t\t\t\t\t\t\t{ return GetPropertyDataSize(inAddress, inQualifierDataSize, inQualifierData) / SizeOf32(T); }\n\ttemplate <class T> void\t\tGetPropertyData_Array(const AudioObjectPropertyAddress& inAddress, UInt32& ioNumberItems, T* outArray, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL) const\t{ UInt32 theDataSize = ioNumberItems * SizeOf32(T); GetPropertyData(inAddress, inQualifierDataSize, inQualifierData, theDataSize, outArray); ioNumberItems = theDataSize / SizeOf32(T); }\n\ttemplate <class T> void\t\tSetPropertyData_Array(const AudioObjectPropertyAddress& inAddress, UInt32 inNumberItems, T* inArray, UInt32 inQualifierDataSize = 0, const void* inQualifierData = NULL)\t\t\t{ SetPropertyData(inAddress, inQualifierDataSize, inQualifierData, inNumberItems * SizeOf32(T), inArray); }\n\t\n\tvoid\t\t\t\t\t\tAddPropertyListener(const AudioObjectPropertyAddress& inAddress, AudioObjectPropertyListenerProc inListenerProc, void* inClientData);\n\tvoid\t\t\t\t\t\tRemovePropertyListener(const AudioObjectPropertyAddress& inAddress, AudioObjectPropertyListenerProc inListenerProc, void* inClientData);\n\n\tvoid\t\t\t\t\t\tAddPropertyListenerBlock(const AudioObjectPropertyAddress& inAddress, dispatch_queue_t inDispatchQueue, AudioObjectPropertyListenerBlock inListenerBlock);\n\tvoid\t\t\t\t\t\tRemovePropertyListenerBlock(const AudioObjectPropertyAddress& inAddress, dispatch_queue_t inDispatchQueue, AudioObjectPropertyListenerBlock inListenerBlock);\n\n//\tImplementation\nprotected:\n\tAudioObjectID\t\t\t\tmObjectID;\n\n};\n\ninline void\tCAHALAudioObject::AddPropertyListenerBlock(const AudioObjectPropertyAddress& inAddress, dispatch_queue_t inDispatchQueue, AudioObjectPropertyListenerBlock inListenerBlock)\n{\n\tOSStatus theError = AudioObjectAddPropertyListenerBlock(mObjectID, &inAddress, inDispatchQueue, inListenerBlock);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioObject::AddPropertyListenerBlock: got an error adding a property listener\");\n}\n\ninline void\tCAHALAudioObject::RemovePropertyListenerBlock(const AudioObjectPropertyAddress& inAddress, dispatch_queue_t inDispatchQueue, AudioObjectPropertyListenerBlock inListenerBlock)\n{\n\tOSStatus theError = AudioObjectRemovePropertyListenerBlock(mObjectID, &inAddress, inDispatchQueue, inListenerBlock);\n\tThrowIfError(theError, CAException(theError), \"CAHALAudioObject::RemovePropertyListener: got an error removing a property listener\");\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHALAudioStream.cpp",
    "content": "/*\n     File: CAHALAudioStream.cpp\n Abstract: CAHALAudioStream.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAHALAudioStream.h\"\n\n//\tPublicUtility Includes\n#include \"CAAutoDisposer.h\"\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n#include \"CAPropertyAddress.h\"\n\n//==================================================================================================\n//\tCAHALAudioStream\n//==================================================================================================\n\nCAHALAudioStream::CAHALAudioStream(AudioObjectID inAudioStream)\n:\n\tCAHALAudioObject(inAudioStream)\n{\n}\n\nCAHALAudioStream::~CAHALAudioStream()\n{\n}\n\nUInt32\tCAHALAudioStream::GetDirection() const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyDirection);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nUInt32\tCAHALAudioStream::GetTerminalType() const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyTerminalType);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nUInt32\tCAHALAudioStream::GetStartingChannel() const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyStartingChannel);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nUInt32\tCAHALAudioStream::GetLatency() const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyLatency);\n\treturn GetPropertyData_UInt32(theAddress, 0, NULL);\n}\n\nvoid\tCAHALAudioStream::GetCurrentVirtualFormat(AudioStreamBasicDescription& outFormat) const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyVirtualFormat);\n\tUInt32 theSize = sizeof(AudioStreamBasicDescription);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &outFormat);\n}\n\nvoid\tCAHALAudioStream::SetCurrentVirtualFormat(const AudioStreamBasicDescription& inFormat)\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyVirtualFormat);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(AudioStreamBasicDescription), &inFormat);\n}\n\nUInt32\tCAHALAudioStream::GetNumberAvailableVirtualFormats() const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyAvailableVirtualFormats);\n\tUInt32 theAnswer = GetPropertyDataSize(theAddress, 0, NULL);\n\ttheAnswer /= SizeOf32(AudioStreamRangedDescription);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioStream::GetAvailableVirtualFormats(UInt32& ioNumberFormats, AudioStreamRangedDescription* outFormats) const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyAvailableVirtualFormats);\n\tUInt32 theSize = ioNumberFormats * SizeOf32(AudioStreamRangedDescription);\n\tGetPropertyData(theAddress, 0, NULL, theSize, outFormats);\n\tioNumberFormats = theSize / SizeOf32(AudioStreamRangedDescription);\n}\n\nvoid\tCAHALAudioStream::GetAvailableVirtualFormatByIndex(UInt32 inIndex, AudioStreamRangedDescription& outFormat) const\n{\n\tUInt32 theNumberFormats = GetNumberAvailableVirtualFormats();\n\tif((theNumberFormats > 0) && (inIndex < theNumberFormats))\n\t{\n\t\tCAAutoArrayDelete<AudioStreamRangedDescription> theFormats(theNumberFormats);\n\t\tGetAvailableVirtualFormats(theNumberFormats, theFormats);\n\t\tif((theNumberFormats > 0) && (inIndex < theNumberFormats))\n\t\t{\n\t\t\toutFormat = theFormats[inIndex];\n\t\t}\n\t}\n}\n\nvoid\tCAHALAudioStream::GetCurrentPhysicalFormat(AudioStreamBasicDescription& outFormat) const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyPhysicalFormat);\n\tUInt32 theSize = sizeof(AudioStreamBasicDescription);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &outFormat);\n}\n\nvoid\tCAHALAudioStream::SetCurrentPhysicalFormat(const AudioStreamBasicDescription& inFormat)\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyPhysicalFormat);\n\tSetPropertyData(theAddress, 0, NULL, sizeof(AudioStreamBasicDescription), &inFormat);\n}\n\nUInt32\tCAHALAudioStream::GetNumberAvailablePhysicalFormats() const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyAvailablePhysicalFormats);\n\tUInt32 theAnswer = GetPropertyDataSize(theAddress, 0, NULL);\n\ttheAnswer /= SizeOf32(AudioStreamRangedDescription);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioStream::GetAvailablePhysicalFormats(UInt32& ioNumberFormats, AudioStreamRangedDescription* outFormats) const\n{\n\tCAPropertyAddress theAddress(kAudioStreamPropertyAvailablePhysicalFormats);\n\tUInt32 theSize = ioNumberFormats * SizeOf32(AudioStreamRangedDescription);\n\tGetPropertyData(theAddress, 0, NULL, theSize, outFormats);\n\tioNumberFormats = theSize / SizeOf32(AudioStreamRangedDescription);\n}\n\nvoid\tCAHALAudioStream::GetAvailablePhysicalFormatByIndex(UInt32 inIndex, AudioStreamRangedDescription& outFormat) const\n{\n\tUInt32 theNumberFormats = GetNumberAvailablePhysicalFormats();\n\tif((theNumberFormats > 0) && (inIndex < theNumberFormats))\n\t{\n\t\tCAAutoArrayDelete<AudioStreamRangedDescription> theFormats(theNumberFormats);\n\t\tGetAvailablePhysicalFormats(theNumberFormats, theFormats);\n\t\tif((theNumberFormats > 0) && (inIndex < theNumberFormats))\n\t\t{\n\t\t\toutFormat = theFormats[inIndex];\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHALAudioStream.h",
    "content": "/*\n     File: CAHALAudioStream.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAHALAudioStream_h__)\n#define __CAHALAudioStream_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSuper Class Includes\n#include \"CAHALAudioObject.h\"\n\n//==================================================================================================\n//\tCAHALAudioStream\n//==================================================================================================\n\nclass CAHALAudioStream\n:\n\tpublic\tCAHALAudioObject\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tCAHALAudioStream(AudioObjectID inAudioStream);\n\tvirtual\t\t\t~CAHALAudioStream();\n\n//\tAttributes\npublic:\n\tUInt32\t\t\tGetDirection() const;\n\tUInt32\t\t\tGetTerminalType() const;\n\tUInt32\t\t\tGetStartingChannel() const;\n\tUInt32\t\t\tGetLatency() const;\n\n//\tFormat Info\npublic:\n\tvoid\t\t\tGetCurrentVirtualFormat(AudioStreamBasicDescription& outFormat) const;\n\tvoid\t\t\tSetCurrentVirtualFormat(const AudioStreamBasicDescription& inFormat);\n\tUInt32\t\t\tGetNumberAvailableVirtualFormats() const;\n\tvoid\t\t\tGetAvailableVirtualFormats(UInt32& ioNumberFormats, AudioStreamRangedDescription* outFormats) const;\n\tvoid\t\t\tGetAvailableVirtualFormatByIndex(UInt32 inIndex, AudioStreamRangedDescription& outFormat) const;\n\n\tvoid\t\t\tGetCurrentPhysicalFormat(AudioStreamBasicDescription& outFormat) const;\n\tvoid\t\t\tSetCurrentPhysicalFormat(const AudioStreamBasicDescription& inFormat);\n\tUInt32\t\t\tGetNumberAvailablePhysicalFormats() const;\n\tvoid\t\t\tGetAvailablePhysicalFormats(UInt32& ioNumberFormats, AudioStreamRangedDescription* outFormats) const;\n\tvoid\t\t\tGetAvailablePhysicalFormatByIndex(UInt32 inIndex, AudioStreamRangedDescription& outFormat) const;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHALAudioSystemObject.cpp",
    "content": "/*\n     File: CAHALAudioSystemObject.cpp\n Abstract: CAHALAudioSystemObject.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAHALAudioSystemObject.h\"\n\n//\tPublicUtility Includes\n#include \"CAAutoDisposer.h\"\n#include \"CACFString.h\"\n#include \"CAHALAudioDevice.h\"\n#include \"CAPropertyAddress.h\"\n\n//==================================================================================================\n//\tCAHALAudioSystemObject\n//==================================================================================================\n\nCAHALAudioSystemObject::CAHALAudioSystemObject()\n:\n\tCAHALAudioObject(kAudioObjectSystemObject)\n{\n}\n\nCAHALAudioSystemObject::~CAHALAudioSystemObject()\n{\n}\n\nUInt32\tCAHALAudioSystemObject::GetNumberAudioDevices() const\n{\n\tCAPropertyAddress theAddress(kAudioHardwarePropertyDevices);\n\tUInt32 theAnswer = GetPropertyDataSize(theAddress, 0, NULL);\n\ttheAnswer /= SizeOf32(AudioObjectID);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioSystemObject::GetAudioDevices(UInt32& ioNumberAudioDevices, AudioObjectID* outAudioDevices) const\n{\n\tCAPropertyAddress theAddress(kAudioHardwarePropertyDevices);\n\tUInt32 theSize = ioNumberAudioDevices * SizeOf32(AudioObjectID);\n\tGetPropertyData(theAddress, 0, NULL, theSize, outAudioDevices);\n\tioNumberAudioDevices = theSize / SizeOf32(AudioObjectID);\n}\n\nAudioObjectID\tCAHALAudioSystemObject::GetAudioDeviceAtIndex(UInt32 inIndex) const\n{\n\tAudioObjectID theAnswer = kAudioObjectUnknown;\n\tUInt32 theNumberDevices = GetNumberAudioDevices();\n\tif((theNumberDevices > 0) && (inIndex < theNumberDevices))\n\t{\n\t\tCAAutoArrayDelete<AudioObjectID> theDeviceList(theNumberDevices);\n\t\tGetAudioDevices(theNumberDevices, theDeviceList);\n\t\tif((theNumberDevices > 0) && (inIndex < theNumberDevices))\n\t\t{\n\t\t\ttheAnswer = theDeviceList[inIndex];\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\nAudioObjectID\tCAHALAudioSystemObject::GetAudioDeviceForUID(CFStringRef inUID) const\n{\n\tAudioObjectID theAnswer = kAudioObjectUnknown;\n\tAudioValueTranslation theValue = { &inUID, sizeof(CFStringRef), &theAnswer, sizeof(AudioObjectID) };\n\tCAPropertyAddress theAddress(kAudioHardwarePropertyDeviceForUID);\n\tUInt32 theSize = sizeof(AudioValueTranslation);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioSystemObject::LogBasicDeviceInfo()\n{\n\tUInt32 theNumberDevices = GetNumberAudioDevices();\n\tCAAutoArrayDelete<AudioObjectID> theDeviceList(theNumberDevices);\n\tGetAudioDevices(theNumberDevices, theDeviceList);\n\tDebugMessageN1(\"CAHALAudioSystemObject::LogBasicDeviceInfo: %d devices\", (int)theNumberDevices);\n\tfor(UInt32 theDeviceIndex = 0; theDeviceIndex < theNumberDevices; ++theDeviceIndex)\n\t{\n\t\tchar theCString[256];\n\t\tUInt32 theCStringSize = sizeof(theCString);\n\t\tDebugMessageN1(\"CAHALAudioSystemObject::LogBasicDeviceInfo: Device %d\", (int)theDeviceIndex);\n\t\t\n\t\tCAHALAudioDevice theDevice(theDeviceList[theDeviceIndex]);\n\t\tDebugMessageN1(\"CAHALAudioSystemObject::LogBasicDeviceInfo:   Object ID: %d\", (int)theDeviceList[theDeviceIndex]);\n\t\t\n\t\tCACFString theDeviceName(theDevice.CopyName());\n\t\ttheCStringSize = sizeof(theCString);\n\t\ttheDeviceName.GetCString(theCString, theCStringSize);\n\t\tDebugMessageN1(\"CAHALAudioSystemObject::LogBasicDeviceInfo:   Name:      %s\", theCString);\n\t\t\n\t\tCACFString theDeviceUID(theDevice.CopyDeviceUID());\n\t\ttheCStringSize = sizeof(theCString);\n\t\ttheDeviceUID.GetCString(theCString, theCStringSize);\n\t\tDebugMessageN1(\"CAHALAudioSystemObject::LogBasicDeviceInfo:   UID:       %s\", theCString);\n\t}\n}\n\nstatic inline AudioObjectPropertySelector\tCAHALAudioSystemObject_CalculateDefaultDeviceProperySelector(bool inIsInput, bool inIsSystem)\n{\n\tAudioObjectPropertySelector theAnswer = kAudioHardwarePropertyDefaultOutputDevice;\n\tif(inIsInput)\n\t{\n\t\ttheAnswer = kAudioHardwarePropertyDefaultInputDevice;\n\t}\n\telse if(inIsSystem)\n\t{\n\t\ttheAnswer = kAudioHardwarePropertyDefaultSystemOutputDevice;\n\t}\n\treturn theAnswer;\n}\n\nAudioObjectID\tCAHALAudioSystemObject::GetDefaultAudioDevice(bool inIsInput, bool inIsSystem) const\n{\n\tAudioObjectID theAnswer = kAudioObjectUnknown;\n\tCAPropertyAddress theAddress(CAHALAudioSystemObject_CalculateDefaultDeviceProperySelector(inIsInput, inIsSystem));\n\tUInt32 theSize = sizeof(AudioObjectID);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theAnswer);\n\treturn theAnswer;\n}\n\nvoid\tCAHALAudioSystemObject::SetDefaultAudioDevice(bool inIsInput, bool inIsSystem, AudioObjectID inNewDefaultDevice)\n{\n\tCAPropertyAddress theAddress(CAHALAudioSystemObject_CalculateDefaultDeviceProperySelector(inIsInput, inIsSystem));\n\tUInt32 theSize = sizeof(AudioObjectID);\n\tSetPropertyData(theAddress, 0, NULL, theSize, &inNewDefaultDevice);\n}\n\nAudioObjectID\tCAHALAudioSystemObject::GetAudioPlugInForBundleID(CFStringRef inUID) const\n{\n\tAudioObjectID theAnswer = kAudioObjectUnknown;\n\tAudioValueTranslation theValue = { &inUID, sizeof(CFStringRef), &theAnswer, sizeof(AudioObjectID) };\n\tCAPropertyAddress theAddress(kAudioHardwarePropertyPlugInForBundleID);\n\tUInt32 theSize = sizeof(AudioValueTranslation);\n\tGetPropertyData(theAddress, 0, NULL, theSize, &theValue);\n\treturn theAnswer;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHALAudioSystemObject.h",
    "content": "/*\n     File: CAHALAudioSystemObject.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAHALAudioSystemObject_h__)\n#define __CAHALAudioSystemObject_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSuper Class Includes\n#include \"CAHALAudioObject.h\"\n\n//==================================================================================================\n//\tCAHALAudioSystemObject\n//==================================================================================================\n\nclass CAHALAudioSystemObject\n:\n\tpublic\tCAHALAudioObject\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tCAHALAudioSystemObject();\n\tvirtual\t\t\t~CAHALAudioSystemObject();\n\n//\tAudio Device List Management\npublic:\n\tUInt32\t\t\tGetNumberAudioDevices() const;\n\tvoid\t\t\tGetAudioDevices(UInt32& ioNumberAudioDevices, AudioObjectID* outAudioDevices) const;\n\tAudioObjectID\tGetAudioDeviceAtIndex(UInt32 inIndex) const;\n\tAudioObjectID\tGetAudioDeviceForUID(CFStringRef inUID) const;\n\tvoid\t\t\tLogBasicDeviceInfo();\n\n//\tDefault Device Management\npublic:\n\tAudioObjectID\tGetDefaultAudioDevice(bool inIsInput, bool inIsSystem) const;\n\tvoid\t\t\tSetDefaultAudioDevice(bool inIsInput, bool inIsSystem, AudioObjectID inNewDefaultDevice);\n\t\n//\tPlugIns\npublic:\n\tAudioObjectID\tGetAudioPlugInForBundleID(CFStringRef inBundleID) const;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHostTimeBase.cpp",
    "content": "/*\n     File: CAHostTimeBase.cpp\n Abstract: CAHostTimeBase.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CAHostTimeBase.h\"\n\nFloat64\t\t\tCAHostTimeBase::sFrequency = 0;\nFloat64\t\t\tCAHostTimeBase::sInverseFrequency = 0;\nUInt32\t\t\tCAHostTimeBase::sMinDelta = 0;\nUInt32\t\t\tCAHostTimeBase::sToNanosNumerator = 0;\nUInt32\t\t\tCAHostTimeBase::sToNanosDenominator = 0;\npthread_once_t\tCAHostTimeBase::sIsInited = PTHREAD_ONCE_INIT;\n#if Track_Host_TimeBase\nUInt64\t\t\tCAHostTimeBase::sLastTime = 0;\n#endif\n\n//=============================================================================\n//\tCAHostTimeBase\n//\n//\tThis class provides platform independent access to the host's time base.\n//=============================================================================\n\nvoid\tCAHostTimeBase::Initialize()\n{\n\t//\tget the info about Absolute time\n\t#if TARGET_OS_MAC\n\t\tstruct mach_timebase_info\ttheTimeBaseInfo;\n\t\tmach_timebase_info(&theTimeBaseInfo);\n\t\tsMinDelta = 1;\n\t\tsToNanosNumerator = theTimeBaseInfo.numer;\n\t\tsToNanosDenominator = theTimeBaseInfo.denom;\n\n\t\t//\tthe frequency of that clock is: (sToNanosDenominator / sToNanosNumerator) * 10^9\n\t\tsFrequency = static_cast<Float64>(sToNanosDenominator) / static_cast<Float64>(sToNanosNumerator);\n\t\tsFrequency *= 1000000000.0;\n\t#elif TARGET_OS_WIN32\n\t\tLARGE_INTEGER theFrequency;\n\t\tQueryPerformanceFrequency(&theFrequency);\n\t\tsMinDelta = 1;\n\t\tsToNanosNumerator = 1000000000ULL;\n\t\tsToNanosDenominator = *((UInt64*)&theFrequency);\n\t\tsFrequency = static_cast<Float64>(*((UInt64*)&theFrequency));\n\t#endif\n\tsInverseFrequency = 1.0 / sFrequency;\n\t\n\t#if\tLog_Host_Time_Base_Parameters\n\t\tDebugPrintf(\"Host Time Base Parameters\");\n\t\tDebugPrintf(\" Minimum Delta:          %lu\", (unsigned long)sMinDelta);\n\t\tDebugPrintf(\" Frequency:              %f\", sFrequency);\n\t\tDebugPrintf(\" To Nanos Numerator:     %lu\", (unsigned long)sToNanosNumerator);\n\t\tDebugPrintf(\" To Nanos Denominator:   %lu\", (unsigned long)sToNanosDenominator);\n\t#endif\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAHostTimeBase.h",
    "content": "/*\n     File: CAHostTimeBase.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAHostTimeBase_h__)\n#define __CAHostTimeBase_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n#if TARGET_OS_MAC\n\t#include <mach/mach_time.h>\n\t#include <pthread.h>\n#elif TARGET_OS_WIN32\n\t#include <windows.h>\n\t#include \"WinPThreadDefs.h\"\n#else\n\t#error\tUnsupported operating system\n#endif\n\n#include \"CADebugPrintf.h\"\n\n//=============================================================================\n//\tCAHostTimeBase\n//\n//\tThis class provides platform independent access to the host's time base.\n//=============================================================================\n\n#if CoreAudio_Debug\n//\t#define Log_Host_Time_Base_Parameters\t1\n//\t#define Track_Host_TimeBase\t\t\t\t1\n#endif\n\nclass\tCAHostTimeBase\n{\n\npublic:\n\tstatic UInt64\t\t\tConvertToNanos(UInt64 inHostTime);\n\tstatic UInt64\t\t\tConvertFromNanos(UInt64 inNanos);\n\n\tstatic UInt64\t\t\tGetTheCurrentTime();\n#if TARGET_OS_MAC\n\tstatic UInt64\t\t\tGetCurrentTime() { return GetTheCurrentTime(); }\n#endif\n\tstatic UInt64\t\t\tGetCurrentTimeInNanos();\n\n\tstatic Float64\t\t\tGetFrequency() { pthread_once(&sIsInited, Initialize); return sFrequency; }\n\tstatic Float64\t\t\tGetInverseFrequency() { pthread_once(&sIsInited, Initialize); return sInverseFrequency; }\n\tstatic UInt32\t\t\tGetMinimumDelta() { pthread_once(&sIsInited, Initialize); return sMinDelta; }\n\n\tstatic UInt64\t\t\tAbsoluteHostDeltaToNanos(UInt64 inStartTime, UInt64 inEndTime);\n\tstatic SInt64\t\t\tHostDeltaToNanos(UInt64 inStartTime, UInt64 inEndTime);\n\n\tstatic UInt64\t\t\tMultiplyByRatio(UInt64 inMuliplicand, UInt32 inNumerator, UInt32 inDenominator);\n\t\nprivate:\n\tstatic void\t\t\t\tInitialize();\n\t\n\tstatic pthread_once_t\tsIsInited;\n\t\n\tstatic Float64\t\t\tsFrequency;\n\tstatic Float64\t\t\tsInverseFrequency;\n\tstatic UInt32\t\t\tsMinDelta;\n\tstatic UInt32\t\t\tsToNanosNumerator;\n\tstatic UInt32\t\t\tsToNanosDenominator;\n#if Track_Host_TimeBase\n\tstatic UInt64\t\t\tsLastTime;\n#endif\n};\n\ninline UInt64\tCAHostTimeBase::GetTheCurrentTime()\n{\n\tUInt64 theTime = 0;\n\n\t#if TARGET_OS_MAC\n\t\ttheTime = mach_absolute_time();\n\t#elif TARGET_OS_WIN32\n\t\tLARGE_INTEGER theValue;\n\t\tQueryPerformanceCounter(&theValue);\n\t\ttheTime = *((UInt64*)&theValue);\n\t#endif\n\t\n\t#if\tTrack_Host_TimeBase\n\t\tif(sLastTime != 0)\n\t\t{\n\t\t\tif(theTime <= sLastTime)\n\t\t\t{\n\t\t\t\tDebugPrintf(\"CAHostTimeBase::GetTheCurrentTime: the current time is earlier than the last time, now: %qd, then: %qd\", theTime, sLastTime);\n\t\t\t}\n\t\t\tsLastTime = theTime;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tsLastTime = theTime;\n\t\t}\n\t#endif\n\n\treturn theTime;\n}\n\ninline UInt64\tCAHostTimeBase::ConvertToNanos(UInt64 inHostTime)\n{\n\tpthread_once(&sIsInited, Initialize);\n\t\n\tUInt64 theAnswer = MultiplyByRatio(inHostTime, sToNanosNumerator, sToNanosDenominator);\n\t#if CoreAudio_Debug\n\t\tif(((sToNanosNumerator > sToNanosDenominator) && (theAnswer < inHostTime)) || ((sToNanosDenominator > sToNanosNumerator) && (theAnswer > inHostTime)))\n\t\t{\n\t\t\tDebugPrintf(\"CAHostTimeBase::ConvertToNanos: The conversion wrapped\");\n\t\t}\n\t#endif\n\t\n\treturn theAnswer;\n}\n\ninline UInt64\tCAHostTimeBase::ConvertFromNanos(UInt64 inNanos)\n{\n\tpthread_once(&sIsInited, Initialize);\n\n\tUInt64 theAnswer = MultiplyByRatio(inNanos, sToNanosDenominator, sToNanosNumerator);\n\t#if CoreAudio_Debug\n\t\tif(((sToNanosDenominator > sToNanosNumerator) && (theAnswer < inNanos)) || ((sToNanosNumerator > sToNanosDenominator) && (theAnswer > inNanos)))\n\t\t{\n\t\t\tDebugPrintf(\"CAHostTimeBase::ConvertFromNanos: The conversion wrapped\");\n\t\t}\n\t#endif\n\n\treturn theAnswer;\n}\n\ninline UInt64\tCAHostTimeBase::GetCurrentTimeInNanos()\n{\n\treturn ConvertToNanos(GetTheCurrentTime());\n}\n\ninline UInt64\tCAHostTimeBase::AbsoluteHostDeltaToNanos(UInt64 inStartTime, UInt64 inEndTime)\n{\n\tUInt64 theAnswer;\n\t\n\tif(inStartTime <= inEndTime)\n\t{\n\t\ttheAnswer = inEndTime - inStartTime;\n\t}\n\telse\n\t{\n\t\ttheAnswer = inStartTime - inEndTime;\n\t}\n\t\n\treturn ConvertToNanos(theAnswer);\n}\n\ninline SInt64\tCAHostTimeBase::HostDeltaToNanos(UInt64 inStartTime, UInt64 inEndTime)\n{\n\tSInt64 theAnswer;\n\tSInt64 theSign = 1;\n\t\n\tif(inStartTime <= inEndTime)\n\t{\n\t\ttheAnswer = static_cast<SInt64>(inEndTime - inStartTime);\n\t}\n\telse\n\t{\n\t\ttheAnswer = static_cast<SInt64>(inStartTime - inEndTime);\n\t\ttheSign = -1;\n\t}\n\t\n\treturn theSign * static_cast<SInt64>(ConvertToNanos(static_cast<UInt64>(theAnswer)));\n}\n\ninline UInt64\tCAHostTimeBase::MultiplyByRatio(UInt64 inMuliplicand, UInt32 inNumerator, UInt32 inDenominator)\n{\n#if TARGET_OS_MAC && TARGET_RT_64_BIT\n\t__uint128_t theAnswer = inMuliplicand;\n#else\n\tlong double theAnswer = inMuliplicand;\n#endif\n\tif(inNumerator != inDenominator)\n\t{\n\t\ttheAnswer *= inNumerator;\n\t\ttheAnswer /= inDenominator;\n\t}\n\treturn static_cast<UInt64>(theAnswer);\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CALogMacros.h",
    "content": "/*\n     File: CALogMacros.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CALogMacros_h__)\n#define __CALogMacros_h__\n\n//=============================================================================\n//\tLog Macros\n//=============================================================================\n\n#if\tCoreAudio_Debug\n\n\t#include \"CADebugMacros.h\"\n\t#include \"CADebugPrintf.h\"\n\t#include <stdio.h>\n\t#include <string.h>\n\t\n\t#define\tPrintLine(msg)\t\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s\\n\", (msg))\n\t\n\t#define PrintBool(msg, b)\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s%s\\n\", (msg), (b) ? \"true\" : \"false\")\n\t#define PrintIndexedBool(msg, i, b)\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %ld: %s\\n\", (msg), (long)(i), (b) ? \"true\" : \"false\")\n\t\n\t#define PrintToggle(msg, b)\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s%s\\n\", (msg), (b) ? \"on\" : \"off\")\n\t#define PrintIndexedToggle(msg, i, b)\t\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %ld: %s\\n\", (msg), (long)(i), (b) ? \"on\" : \"off\")\n\t\n\t#define PrintInt(msg, n)\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s%ld\\n\", (msg), (long)(n))\n\t#define PrintIndexedInt(msg, i, n)\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %ld: %ld\\n\", (msg), (long)(i), (long)(n))\n\t\n\t#define PrintHex(msg, n)\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s0x%lX\\n\", (msg), (unsigned long)(n))\n\t#define PrintIndexedHex(msg, i, n)\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %ld: 0x%lX\\n\", (msg), (long)(i), (unsigned long)(n))\n\t\n\t#define PrintFloat(msg, f)\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s%.6f\\n\", (msg), (f))\n\t#define PrintIndexedFloat(msg, i, f)\t\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %ld: %.6f\\n\", (msg), (long)(i), (f))\n\t#define PrintFloatIndexedFloat(msg, i, f)\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %.6f: %.6f\\n\", (msg), (i), (f))\n\t\n\t#define\tPrintString(msg, s)\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s%s\\n\", (msg), (s))\n\t#define PrintIndexedString(msg, i, s)\t\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %ld: %s\\n\", (msg), (long)(i), (s))\n\t\n\t#define PrintPointer(msg, p)\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s%p\\n\", (msg), (p))\n\t#define PrintIndexedPointer(msg, i, p)\t\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %ld: %p\\n\", (msg), (long)(i), (p))\n\t\n\t#define\tPrint4CharCode(msg, c)\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 __4CC_number = (c);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tchar __4CC_string[5] = CA4CCToCString(__4CC_number);\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s'%s'\\n\", (msg), __4CC_string);\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t#define PrintIndexed4CharCode(msg, i, c)\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tUInt32 __4CC_number = (c);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tchar __4CC_string[5] = CA4CCToCString(__4CC_number);\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"  %s %ld: '%s'\\n\", (msg), (long)(i), __4CC_string);\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t#define\tErrorLine(s)\t\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s\\n\", (s))\n\t#define\tOSErrorLine(s, e)\t\t\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tOSStatus __err_number = (e);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tchar __err_string[5] = CA4CCToCString(__err_number);\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%s, OSStatus code: %s\\n\", (s), __err_string);\t\t\t\t\\\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\n\t#define\tMessageIfOSError(e, s)\t\t\t\tif((e) != 0) { OSErrorLine(s, e); }\n\t#define\tMessageIfNULL(p, s)\t\t\t\t\tif((p) == 0) { ErrorLine(s); }\n\n#else\n\n\t#define\tPrintLine(msg)\t\t\t\t\t\n\t\n\t#define PrintBool(msg, b)\t\t\t\t\t(b)\n\t#define PrintIndexedBool(msg, i, b)\t\t\t(b)\n\t\n\t#define PrintInt(msg, n)\t\t\t\t\t(n)\n\t#define PrintIndexedInt(msg, i, n)\t\t\t(n)\n\t\n\t#define PrintHex(msg, n)\t\t\t\t\t(n)\n\t#define PrintIndexedHex(msg, i, n)\t\t\t(n)\n\t\n\t#define PrintFloat(msg, f)\t\t\t\t\t(f)\n\t#define PrintIndexedFloat(msg, i, f)\t\t(f)\n\t#define PrintFloatIndexedFloat(msg, i, f)\t(f)\n\t\n\t#define\tPrintString(msg, s)\t\t\t\t\t(s)\n\t#define PrintIndexedString(msg, i, s)\t\t(s)\n\t\n\t#define PrintPointer(msg, p)\t\t\t\t(p)\n\t#define PrintIndexedPointer(msg, i, p)\t\t(p)\n\t\n\t#define\tPrint4CharCode(msg, c)\t\t\t\t(c)\n\t#define PrintIndexed4CharCode(msg, i, c)\t(c)\n\t\n\t#define\tErrorLine(s)\t\t\t\t\t\t(s)\n\t#define\tOSErrorLine(s, e)\t\t\t\t\t(e)\n\t\n\t#define\tMessageIfOSError(e, s)\t\t\t\t(e)\n\t#define\tMessageIfNULL(p, s)\t\t\t\t\t(p)\n\n#endif\t//\tCoreAudio_Debug\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAMath.h",
    "content": "/*\n     File: CAMath.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAMath_h__\n#define __CAMath_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\ninline bool fiszero(Float64 f) { return (f == 0.); }\ninline bool fiszero(Float32 f) { return (f == 0.f); }\n\ninline bool fnonzero(Float64 f) { return !fiszero(f); }\ninline bool fnonzero(Float32 f) { return !fiszero(f); }\n\ninline bool fequal(const Float64 &a, const Float64 &b) { return a == b; }\ninline bool fequal(const Float32 &a, const Float32 &b) { return a == b; }\n\ninline bool fnotequal(const Float64 &a, const Float64 &b) { return !fequal(a, b); }\ninline bool fnotequal(const Float32 &a, const Float32 &b) { return !fequal(a, b); }\n\n#endif // __CAMath_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAMixMap.h",
    "content": "/*\n     File: CAMixMap.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAMixMap_h__\n#define __CAMixMap_h__\n\n\t// manages the setting of mix map volumes\n\t\nclass CAMixMap {\npublic:\n\t\t\t\tCAMixMap ()\n\t\t\t\t\t: mIns(0), mOuts (0), mMixMap(NULL)\n\t\t\t\t\t{}\n\t\t\t\t\t\n\t\t\t\tCAMixMap (const CAMixMap &mm) \n\t\t\t\t\t: mIns(0), mOuts (0), mMixMap(NULL)\n\t\t\t\t\t{ *this = mm; }\n\t\t\t\t\n\t\t\t\tCAMixMap (UInt32 numIns, UInt32 numOuts) \n\t\t\t\t\t: mIns(numIns), mOuts (numOuts), mMixMap(NULL)\n\t\t\t\t\t{ \n\t\t\t\t\t\tmMixMap = new Float32[numIns * numOuts]; \n\t\t\t\t\t\tmemset (mMixMap, 0, ByteSize());\n\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t~CAMixMap () { delete [] mMixMap; }\n\t\n\tCAMixMap&\toperator=(const CAMixMap& mm) \n\t\t\t\t{ \n\t\t\t\t\tif (mMixMap) { delete [] mMixMap; mMixMap = NULL; }\n\t\t\t\t\tmIns = mm.mIns; mOuts = mm.mOuts;\n\t\t\t\t\tif (NumIns() && NumOuts()) { \n\t\t\t\t\t\tmMixMap = new Float32 [ NumIns() * NumOuts() ];\n\t\t\t\t\t\tmemcpy (mMixMap, mm.mMixMap, ByteSize());\n\t\t\t\t\t}\n\t\t\t\t\treturn *this;\n\t\t\t\t}\n\t\t\t\t\n\tUInt32\t\tNumIns () const { return mIns; }\n\tUInt32\t\tNumOuts () const { return mOuts; }\n\n\tvoid\t\tSetCrossPoint (UInt32 inputChan, UInt32 outputChan, Float32 val)\n\t\t\t\t{\n\t\t\t\t\tif (inputChan < NumIns() && outputChan < NumOuts())\n\t\t\t\t\t\tmMixMap[inputChan * NumOuts() + outputChan] = val;\n\t\t\t\t}\n\tFloat32\t\tGetCrossPoint (UInt32 inputChan, UInt32 outputChan) const\n\t\t\t\t{\n\t\t\t\t\treturn (inputChan < NumIns() && outputChan < NumOuts())\n\t\t\t\t\t\t\t? mMixMap[inputChan * NumOuts() + outputChan]\n\t\t\t\t\t\t\t: 0;\n\t\t\t\t}\n\n\tvoid\t\tSetDiagonal (Float32 val)\n\t\t\t\t{\n\t\t\t\t\tfor (UInt32 i = 0; i < NumIns() && i < NumOuts(); ++i) {\n\t\t\t\t\t\tmMixMap[i * NumOuts() + i] = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\tvoid\t\tClear () { memset (mMixMap, 0, ByteSize()); }\n\t\n\t\n\tFloat32*\tMM() { return mMixMap; }\n\tconst Float32*\tMM() const { return mMixMap; }\n\tUInt32\t\tByteSize () const { return NumIns() * NumOuts() * sizeof(Float32); }\n\n\tUInt32\t\tCountActiveInputs(UInt32 inOutputChannel)\n\t\t\t\t{\n\t\t\t\t\tUInt32 sum = 0;\n\t\t\t\t\tfor (UInt32 i = 0, k = inOutputChannel; i < mIns; ++i, k+=mOuts) {\n\t\t\t\t\t\tif (mMixMap[k] != 0.f) sum++;\n\t\t\t\t\t}\n\t\t\t\t\treturn sum;\n\t\t\t\t}\n\t\t\t\t\n\tvoid\t\tNormalize()\n\t\t\t\t{\n\t\t\t\t\t// ensure that no output channel will sum over unity.\n\t\t\t\t\tFloat32* mixmap = mMixMap;\n\t\t\t\t\tFloat32 maxsum = 0.f;\n\t\t\t\t\tfor (UInt32 j = 0; j < mOuts; ++j) {\n\t\t\t\t\t\tFloat32 sum = 0.f;\n\t\t\t\t\t\tfor (UInt32 i = 0, k = j; i < mIns; ++i, k+=mOuts) {\n\t\t\t\t\t\t\tsum += mixmap[k];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (sum > maxsum) maxsum = sum;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tif (maxsum == 0.f) return;\n\t\t\t\t\tFloat32 scale = 1.f / maxsum;\n\t\t\t\t\tfor (UInt32 i = 0; i < mIns * mOuts; ++i) {\n\t\t\t\t\t\tmixmap[i] *= scale;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\n\tvoid\t\tPrint ()\n\t\t\t\t{\n\t\t\t\t\tprintf (\"Num Ins: %d, Num Outs: %d\\n\", (int)mIns, (int)mOuts);\n\t\t\t\t\tfor (unsigned int ins = 0; ins < mIns; ++ins) {\n\t\t\t\t\t\tprintf (\"\\t%d: \", ins);\n\t\t\t\t\t\tfor (unsigned int outs = 0; outs < mOuts; ++outs)\n\t\t\t\t\t\t\tprintf (\"(%.3f) \", mMixMap[ins * NumOuts() + outs]); \n\t\t\t\t\t\tprintf(\"\\n\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\nprivate:\n\tUInt32\tmIns;\n\tUInt32\tmOuts;\n\tFloat32 *mMixMap;\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAMutex.cpp",
    "content": "/*\n     File: CAMutex.cpp\n Abstract: CAMutex.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAMutex.h\"\n\n#if TARGET_OS_MAC\n\t#include <errno.h>\n#endif\n\n//\tPublicUtility Includes\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n#include \"CAHostTimeBase.h\"\n\n//==================================================================================================\n//\tLogging\n//==================================================================================================\n\n#if CoreAudio_Debug\n//\t#define\tLog_Ownership\t\t1\n//\t#define\tLog_Errors\t\t\t1\n//\t#define Log_LongLatencies\t1\n//\t#define LongLatencyThreshholdNS\t1000000ULL\t// nanoseconds\n#endif\n\n//==================================================================================================\n//\tCAMutex\n//==================================================================================================\n\nCAMutex::CAMutex(const char* inName)\n:\n\tmName(inName),\n\tmOwner(0)\n{\n#if TARGET_OS_MAC\n\tOSStatus theError = pthread_mutex_init(&mMutex, NULL);\n\tThrowIf(theError != 0, CAException(theError), \"CAMutex::CAMutex: Could not init the mutex\");\n\t\n\t#if\tLog_Ownership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::CAMutex: creating %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), mName, mOwner);\n\t#endif\n#elif TARGET_OS_WIN32\n\tmMutex = CreateMutex(NULL, false, NULL);\n\tThrowIfNULL(mMutex, CAException(GetLastError()), \"CAMutex::CAMutex: could not create the mutex.\");\n\t\n\t#if\tLog_Ownership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::CAMutex: creating %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), mName, mOwner);\n\t#endif\n#endif\n}\n\nCAMutex::~CAMutex()\n{\n#if TARGET_OS_MAC\n\t#if\tLog_Ownership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::~CAMutex: destroying %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), mName, mOwner);\n\t#endif\n\tpthread_mutex_destroy(&mMutex);\n#elif TARGET_OS_WIN32\n\t#if\tLog_Ownership\n\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::~CAMutex: destroying %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), mName, mOwner);\n\t#endif\n\tif(mMutex != NULL)\n\t{\n\t\tCloseHandle(mMutex);\n\t}\n#endif\n}\n\nbool\tCAMutex::Lock()\n{\n\tbool theAnswer = false;\n\t\n#if TARGET_OS_MAC\n\tpthread_t theCurrentThread = pthread_self();\n\tif(!pthread_equal(theCurrentThread, mOwner))\n\t{\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::Lock: thread %p is locking %s, owner: %p\\n\", theCurrentThread, ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), theCurrentThread, mName, mOwner);\n\t\t#endif\n\t\t\n\t\t#if Log_LongLatencies\n\t\t\tUInt64 lockTryTime = CAHostTimeBase::GetCurrentTimeInNanos();\n\t\t#endif\n\t\t\n\t\tOSStatus theError = pthread_mutex_lock(&mMutex);\n\t\tThrowIf(theError != 0, CAException(theError), \"CAMutex::Lock: Could not lock the mutex\");\n\t\tmOwner = theCurrentThread;\n\t\ttheAnswer = true;\n\t\n\t\t#if Log_LongLatencies\n\t\t\tUInt64 lockAcquireTime = CAHostTimeBase::GetCurrentTimeInNanos();\n\t\t\tif (lockAcquireTime - lockTryTime >= LongLatencyThresholdNS)\n\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"Thread %p took %.6fs to acquire the lock %s\\n\", theCurrentThread, (lockAcquireTime - lockTryTime) * 1.0e-9 /* nanos to seconds */, mName);\n\t\t#endif\n\t\t\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::Lock: thread %p has locked %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t\t#endif\n\t}\n#elif TARGET_OS_WIN32\n\tif(mOwner != GetCurrentThreadId())\n\t{\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::Lock: thread %lu is locking %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t\t#endif\n\n\t\tOSStatus theError = WaitForSingleObject(mMutex, INFINITE);\n\t\tThrowIfError(theError, CAException(theError), \"CAMutex::Lock: could not lock the mutex\");\n\t\tmOwner = GetCurrentThreadId();\n\t\ttheAnswer = true;\n\t\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::Lock: thread %lu has locked %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t\t#endif\n\t}\n#endif\n\n\treturn theAnswer;\n}\n\nvoid\tCAMutex::Unlock()\n{\n#if TARGET_OS_MAC\n\tif(pthread_equal(pthread_self(), mOwner))\n\t{\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::Unlock: thread %p is unlocking %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t\t#endif\n\n\t\tmOwner = 0;\n\t\tOSStatus theError = pthread_mutex_unlock(&mMutex);\n\t\tThrowIf(theError != 0, CAException(theError), \"CAMutex::Unlock: Could not unlock the mutex\");\n\t\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::Unlock: thread %p has unlocked %s, owner: %p\\n\", pthread_self(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), pthread_self(), mName, mOwner);\n\t\t#endif\n\t}\n\telse\n\t{\n\t\tDebugMessage(\"CAMutex::Unlock: A thread is attempting to unlock a Mutex it doesn't own\");\n\t}\n#elif TARGET_OS_WIN32\n\tif(mOwner == GetCurrentThreadId())\n\t{\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::Unlock: thread %lu is unlocking %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t\t#endif\n\n\t\tmOwner = 0;\n\t\tbool wasReleased = ReleaseMutex(mMutex);\n\t\tThrowIf(!wasReleased, CAException(GetLastError()), \"CAMutex::Unlock: Could not unlock the mutex\");\n\t\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::Unlock: thread %lu has unlocked %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t\t#endif\n\t}\n\telse\n\t{\n\t\tDebugMessage(\"CAMutex::Unlock: A thread is attempting to unlock a Mutex it doesn't own\");\n\t}\n#endif\n}\n\nbool\tCAMutex::Try(bool& outWasLocked)\n{\n\tbool theAnswer = false;\n\toutWasLocked = false;\n\n#if TARGET_OS_MAC\n\tpthread_t theCurrentThread = pthread_self();\n\tif(!pthread_equal(theCurrentThread, mOwner))\n\t{\n\t\t//\tthis means the current thread doesn't already own the lock\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::Try: thread %p is try-locking %s, owner: %p\\n\", theCurrentThread, ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), theCurrentThread, mName, mOwner);\n\t\t#endif\n\n\t\t//\tgo ahead and call trylock to see if we can lock it.\n\t\tint theError = pthread_mutex_trylock(&mMutex);\n\t\tif(theError == 0)\n\t\t{\n\t\t\t//\treturn value of 0 means we successfully locked the lock\n\t\t\tmOwner = theCurrentThread;\n\t\t\ttheAnswer = true;\n\t\t\toutWasLocked = true;\n\t\n\t\t\t#if\tLog_Ownership\n\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::Try: thread %p has locked %s, owner: %p\\n\", theCurrentThread, ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), theCurrentThread, mName, mOwner);\n\t\t\t#endif\n\t\t}\n\t\telse if(theError == EBUSY)\n\t\t{\n\t\t\t//\treturn value of EBUSY means that the lock was already locked by another thread\n\t\t\ttheAnswer = false;\n\t\t\toutWasLocked = false;\n\t\n\t\t\t#if\tLog_Ownership\n\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%p %.4f: CAMutex::Try: thread %p failed to lock %s, owner: %p\\n\", theCurrentThread, ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), theCurrentThread, mName, mOwner);\n\t\t\t#endif\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\tany other return value means something really bad happenned\n\t\t\tThrowIfError(theError, CAException(theError), \"CAMutex::Try: call to pthread_mutex_trylock failed\");\n\t\t}\n\t}\n\telse\n\t{\n\t\t//\tthis means the current thread already owns the lock\n\t\ttheAnswer = true;\n\t\toutWasLocked = false;\n\t}\n#elif TARGET_OS_WIN32\n\tif(mOwner != GetCurrentThreadId())\n\t{\n\t\t//\tthis means the current thread doesn't own the lock\n\t\t#if\tLog_Ownership\n\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::Try: thread %lu is try-locking %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t\t#endif\n\t\t\n\t\t//\ttry to acquire the mutex\n\t\tOSStatus theError = WaitForSingleObject(mMutex, 0);\n\t\tif(theError == WAIT_OBJECT_0)\n\t\t{\n\t\t\t//\tthis means we successfully locked the lock\n\t\t\tmOwner = GetCurrentThreadId();\n\t\t\ttheAnswer = true;\n\t\t\toutWasLocked = true;\n\t\n\t\t\t#if\tLog_Ownership\n\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::Try: thread %lu has locked %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t\t\t#endif\n\t\t}\n\t\telse if(theError == WAIT_TIMEOUT)\n\t\t{\n\t\t\t//\tthis means that the lock was already locked by another thread\n\t\t\ttheAnswer = false;\n\t\t\toutWasLocked = false;\n\t\n\t\t\t#if\tLog_Ownership\n\t\t\t\tDebugPrintfRtn(DebugPrintfFileComma \"%lu %.4f: CAMutex::Try: thread %lu failed to lock %s, owner: %lu\\n\", GetCurrentThreadId(), ((Float64)(CAHostTimeBase::GetCurrentTimeInNanos()) / 1000000.0), GetCurrentThreadId(), mName, mOwner);\n\t\t\t#endif\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\tany other return value means something really bad happenned\n\t\t\tThrowIfError(theError, CAException(GetLastError()), \"CAMutex::Try: call to lock the mutex failed\");\n\t\t}\n\t}\n\telse\n\t{\n\t\t//\tthis means the current thread already owns the lock\n\t\ttheAnswer = true;\n\t\toutWasLocked = false;\n\t}\n#endif\n\t\n\treturn theAnswer;\n}\n\nbool\tCAMutex::IsFree() const\n{\n\treturn mOwner == 0;\n}\n\nbool\tCAMutex::IsOwnedByCurrentThread() const\n{\n\tbool theAnswer = true;\n\t\n#if TARGET_OS_MAC\n\ttheAnswer = pthread_equal(pthread_self(), mOwner);\n#elif TARGET_OS_WIN32\n\ttheAnswer = (mOwner == GetCurrentThreadId());\n#endif\n\n\treturn theAnswer;\n}\n\n\nCAMutex::Unlocker::Unlocker(CAMutex& inMutex)\n:\tmMutex(inMutex),\n\tmNeedsLock(false)\n{\n\tAssert(mMutex.IsOwnedByCurrentThread(), \"Major problem: Unlocker attempted to unlock a mutex not owned by the current thread!\");\n\n\tmMutex.Unlock();\n\tmNeedsLock = true;\n}\n\nCAMutex::Unlocker::~Unlocker()\n{\n\tif(mNeedsLock)\n\t{\n\t\tmMutex.Lock();\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAMutex.h",
    "content": "/*\n     File: CAMutex.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAMutex_h__\n#define __CAMutex_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n#if TARGET_OS_MAC\n\t#include <pthread.h>\n#elif TARGET_OS_WIN32\n\t#include <windows.h>\n#else\n\t#error\tUnsupported operating system\n#endif\n\n//==================================================================================================\n//\tA recursive mutex.\n//==================================================================================================\n\nclass\tCAMutex\n{\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tCAMutex(const char* inName);\n\tvirtual\t\t\t~CAMutex();\n\n//\tActions\npublic:\n\tvirtual bool\tLock();\n\tvirtual void\tUnlock();\n\tvirtual bool\tTry(bool& outWasLocked);\t// returns true if lock is free, false if not\n\t\n\tvirtual bool\tIsFree() const;\n\tvirtual bool\tIsOwnedByCurrentThread() const;\n\t\t\n//\tImplementation\nprotected:\n\tconst char*\t\tmName;\n#if TARGET_OS_MAC\n\tpthread_t\t\tmOwner;\n\tpthread_mutex_t\tmMutex;\n#elif TARGET_OS_WIN32\n\tUInt32\t\t\tmOwner;\n\tHANDLE\t\t\tmMutex;\n#endif\n\n//\tHelper class to manage taking and releasing recursively\npublic:\n\tclass\t\t\tLocker\n\t{\n\t\n\t//\tConstruction/Destruction\n\tpublic:\n\t\t\t\t\tLocker(CAMutex& inMutex) : mMutex(&inMutex), mNeedsRelease(false) { mNeedsRelease = mMutex->Lock(); }\n\t\t\t\t\tLocker(CAMutex* inMutex) : mMutex(inMutex), mNeedsRelease(false) { mNeedsRelease = (mMutex != NULL && mMutex->Lock()); }\n\t\t\t\t\t\t// in this case the mutex can be null\n\t\t\t\t\t~Locker() { if(mNeedsRelease) { mMutex->Unlock(); } }\n\t\n\t\n\tprivate:\n\t\t\t\t\tLocker(const Locker&);\n\t\tLocker&\t\toperator=(const Locker&);\n\t\n\t//\tImplementation\n\tprivate:\n\t\tCAMutex*\tmMutex;\n\t\tbool\t\tmNeedsRelease;\n\t\n\t};\n\n// Unlocker\n\tclass Unlocker\n\t{\n\tpublic:\n\t\t\t\t\t\tUnlocker(CAMutex& inMutex);\n\t\t\t\t\t\t~Unlocker();\n\t\t\n\tprivate:\n\t\tCAMutex&\tmMutex;\n\t\tbool\t\tmNeedsLock;\n\t\t\n\t\t// Hidden definitions of copy ctor, assignment operator\n\t\tUnlocker(const Unlocker& copy);\t\t\t\t// Not implemented\n\t\tUnlocker& operator=(const Unlocker& copy);\t// Not implemented\n\t};\n\t\n// you can use this with Try - if you take the lock in try, pass in the outWasLocked var\n\tclass Tryer {\n\t\n\t//\tConstruction/Destruction\n\tpublic:\n\t\tTryer (CAMutex &mutex) : mMutex(mutex), mNeedsRelease(false), mHasLock(false) { mHasLock = mMutex.Try (mNeedsRelease); }\n\t\t~Tryer () { if (mNeedsRelease) mMutex.Unlock(); }\n\t\t\n\t\tbool HasLock () const { return mHasLock; }\n\n\tprivate:\n\t\t\t\t\tTryer(const Tryer&);\n\t\tTryer&\t\toperator=(const Tryer&);\n\n\t//\tImplementation\n\tprivate:\n\t\tCAMutex &\t\tmMutex;\n\t\tbool\t\t\tmNeedsRelease;\n\t\tbool\t\t\tmHasLock;\n\t};\n};\n\n\n#endif // __CAMutex_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAPThread.cpp",
    "content": "/*\n     File: CAPThread.cpp\n Abstract: CAPThread.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSelf Include\n#include \"CAPThread.h\"\n\n//\tPublicUtility Includes\n#include \"CADebugMacros.h\"\n#include \"CAException.h\"\n\n//\tSystem Includes\n#if\tTARGET_OS_MAC\n\t#include <mach/mach.h>\n#endif\n\n//\tStandard Library Includes\n#include <stdio.h>\n\n//==================================================================================================\n//\tCAPThread\n//==================================================================================================\n\n// returns the thread's priority as it was last set by the API\n#define CAPTHREAD_SET_PRIORITY\t\t\t\t0\n// returns the thread's priority as it was last scheduled by the Kernel\n#define CAPTHREAD_SCHEDULED_PRIORITY\t\t1\n\n//#define\tLog_SetPriority\t\t\t\t\t\t1\n\nCAPThread::CAPThread(ThreadRoutine inThreadRoutine, void* inParameter, UInt32 inPriority, bool inFixedPriority, bool inAutoDelete, const char* inThreadName)\n:\n#if TARGET_OS_MAC\n\tmPThread(0),\n    mSpawningThreadPriority(getScheduledPriority(pthread_self(), CAPTHREAD_SET_PRIORITY)),\n#elif TARGET_OS_WIN32\n\tmThreadHandle(NULL),\n\tmThreadID(0),\n#endif\n\tmThreadRoutine(inThreadRoutine),\n\tmThreadParameter(inParameter),\n\tmPriority(inPriority),\n\tmPeriod(0),\n\tmComputation(0),\n\tmConstraint(0),\n\tmIsPreemptible(true),\n\tmTimeConstraintSet(false),\n\tmFixedPriority(inFixedPriority),\n\tmAutoDelete(inAutoDelete)\n{\n\tif(inThreadName != NULL)\n\t{\n\t\tstrlcpy(mThreadName, inThreadName, kMaxThreadNameLength);\n\t}\n\telse\n\t{\n\t\tmemset(mThreadName, 0, kMaxThreadNameLength);\n\t}\n}\n\nCAPThread::CAPThread(ThreadRoutine inThreadRoutine, void* inParameter, UInt32 inPeriod, UInt32 inComputation, UInt32 inConstraint, bool inIsPreemptible, bool inAutoDelete, const char* inThreadName)\n:\n#if TARGET_OS_MAC\n\tmPThread(0),\n    mSpawningThreadPriority(getScheduledPriority(pthread_self(), CAPTHREAD_SET_PRIORITY)),\n#elif TARGET_OS_WIN32\n\tmThreadHandle(NULL),\n\tmThreadID(0),\n#endif\n\tmThreadRoutine(inThreadRoutine),\n\tmThreadParameter(inParameter),\n\tmPriority(kDefaultThreadPriority),\n\tmPeriod(inPeriod),\n\tmComputation(inComputation),\n\tmConstraint(inConstraint),\n\tmIsPreemptible(inIsPreemptible),\n\tmTimeConstraintSet(true),\n\tmFixedPriority(false),\n\tmAutoDelete(inAutoDelete)\n{\n\tif(inThreadName != NULL)\n\t{\n\t\tstrlcpy(mThreadName, inThreadName, kMaxThreadNameLength);\n\t}\n\telse\n\t{\n\t\tmemset(mThreadName, 0, kMaxThreadNameLength);\n\t}\n}\n\nCAPThread::~CAPThread()\n{\n}\n\nUInt32\tCAPThread::GetScheduledPriority()\n{\n#if TARGET_OS_MAC\n    return CAPThread::getScheduledPriority( mPThread, CAPTHREAD_SCHEDULED_PRIORITY );\n#elif TARGET_OS_WIN32\n\tUInt32 theAnswer = 0;\n\tif(mThreadHandle != NULL)\n\t{\n\t\ttheAnswer = GetThreadPriority(mThreadHandle);\n\t}\n\treturn theAnswer;\n#endif\n}\n\nUInt32\tCAPThread::GetScheduledPriority(NativeThread thread)\n{\n#if TARGET_OS_MAC\n    return getScheduledPriority( thread, CAPTHREAD_SCHEDULED_PRIORITY );\n#elif TARGET_OS_WIN32\n\treturn 0;\t// ???\n#endif\n}\n\nvoid\tCAPThread::SetPriority(UInt32 inPriority, bool inFixedPriority)\n{\n\tmPriority = inPriority;\n\tmTimeConstraintSet = false;\n\tmFixedPriority = inFixedPriority;\n#if TARGET_OS_MAC\n\tif(mPThread != 0)\n\t{\n\t\tSetPriority(mPThread, mPriority, mFixedPriority);\n    } \n#elif TARGET_OS_WIN32\n\tif(mThreadID != NULL)\n\t{\n\t\tSetPriority(mThreadID, mPriority, mFixedPriority);\n\t}\n#endif\n}\n\nvoid\tCAPThread::SetPriority(NativeThread inThread, UInt32 inPriority, bool inFixedPriority)\n{\n#if TARGET_OS_MAC\n\tif(inThread != 0)\n\t{\n\t\tkern_return_t theError = 0;\n\t\t\n\t\t//\tset whether or not this is a fixed priority thread\n\t\tif (inFixedPriority)\n\t\t{\n\t\t\tthread_extended_policy_data_t theFixedPolicy = { false };\n\t\t\ttheError = thread_policy_set(pthread_mach_thread_np(inThread), THREAD_EXTENDED_POLICY, (thread_policy_t)&theFixedPolicy, THREAD_EXTENDED_POLICY_COUNT);\n\t\t\tAssertNoKernelError(theError, \"CAPThread::SetPriority: failed to set the fixed-priority policy\");\n\t\t}\n\t\t\n\t\t//\tset the thread's absolute priority which is relative to the priority on which thread_policy_set() is called\n\t\tUInt32 theCurrentThreadPriority = getScheduledPriority(pthread_self(), CAPTHREAD_SET_PRIORITY);\n        thread_precedence_policy_data_t thePrecedencePolicy = { static_cast<integer_t>(inPriority - theCurrentThreadPriority) };\n\t\ttheError = thread_policy_set(pthread_mach_thread_np(inThread), THREAD_PRECEDENCE_POLICY, (thread_policy_t)&thePrecedencePolicy, THREAD_PRECEDENCE_POLICY_COUNT);\n        AssertNoKernelError(theError, \"CAPThread::SetPriority: failed to set the precedence policy\");\n\t\t\n\t\t#if\tLog_SetPriority\n\t\t\tDebugMessageN4(\"CAPThread::SetPriority: requsted: %lu spawning: %lu current: %lu assigned: %d\", mPriority, mSpawningThreadPriority, theCurrentThreadPriority, thePrecedencePolicy.importance);\n\t\t#endif\n    } \n#elif TARGET_OS_WIN32\n\tif(inThread != NULL)\n\t{\n\t\tHANDLE hThread = OpenThread(NULL, FALSE, inThread);\n\t\tif(hThread != NULL) {\n\t\t\tSetThreadPriority(hThread, inPriority);\n\t\t\tCloseHandle(hThread);\n\t\t}\n\t}\n#endif\n}\n\nvoid\tCAPThread::SetTimeConstraints(UInt32 inPeriod, UInt32 inComputation, UInt32 inConstraint, bool inIsPreemptible)\n{\n\tmPeriod = inPeriod;\n\tmComputation = inComputation;\n\tmConstraint = inConstraint;\n\tmIsPreemptible = inIsPreemptible;\n\tmTimeConstraintSet = true;\n#if TARGET_OS_MAC\n\tif(mPThread != 0)\n\t{\n\t\tthread_time_constraint_policy_data_t thePolicy;\n\t\tthePolicy.period = mPeriod;\n\t\tthePolicy.computation = mComputation;\n\t\tthePolicy.constraint = mConstraint;\n\t\tthePolicy.preemptible = mIsPreemptible;\n\t\tAssertNoError(thread_policy_set(pthread_mach_thread_np(mPThread), THREAD_TIME_CONSTRAINT_POLICY, (thread_policy_t)&thePolicy, THREAD_TIME_CONSTRAINT_POLICY_COUNT), \"CAPThread::SetTimeConstraints: thread_policy_set failed\");\n\t}\n#elif TARGET_OS_WIN32\n\tif(mThreadHandle != NULL)\n\t{\n\t\tSetThreadPriority(mThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);\n\t}\n#endif\n}\n\nvoid\tCAPThread::Start()\n{\n#if TARGET_OS_MAC\n\tAssert(mPThread == 0, \"CAPThread::Start: can't start because the thread is already running\");\n\tif(mPThread == 0)\n\t{\n\t\tOSStatus\t\t\ttheResult;\n\t\tpthread_attr_t\t\ttheThreadAttributes;\n\t\t\n\t\ttheResult = pthread_attr_init(&theThreadAttributes);\n\t\tThrowIf(theResult != 0, CAException(theResult), \"CAPThread::Start: Thread attributes could not be created.\");\n\t\t\n\t\ttheResult = pthread_attr_setdetachstate(&theThreadAttributes, PTHREAD_CREATE_DETACHED);\n\t\tThrowIf(theResult != 0, CAException(theResult), \"CAPThread::Start: A thread could not be created in the detached state.\");\n\t\t\n\t\ttheResult = pthread_create(&mPThread, &theThreadAttributes, (ThreadRoutine)CAPThread::Entry, this);\n\t\tThrowIf(theResult != 0 || !mPThread, CAException(theResult), \"CAPThread::Start: Could not create a thread.\");\n\t\t\n\t\tpthread_attr_destroy(&theThreadAttributes);\n\t\t\n\t}\n#elif TARGET_OS_WIN32\n\tAssert(mThreadID == 0, \"CAPThread::Start: can't start because the thread is already running\");\n\tif(mThreadID == 0)\n\t{\n\t\t//\tclean up the existing thread handle\n\t\tif(mThreadHandle != NULL)\n\t\t{\n\t\t\tCloseHandle(mThreadHandle);\n\t\t\tmThreadHandle = NULL;\n\t\t}\n\t\t\n\t\t//\tcreate a new thread\n\t\tmThreadHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Entry, this, 0, &mThreadID);\n\t\tThrowIf(mThreadHandle == NULL, CAException(GetLastError()), \"CAPThread::Start: Could not create a thread.\");\n\t}\n#endif\n}\n\n#if TARGET_OS_MAC\n\nvoid*\tCAPThread::Entry(CAPThread* inCAPThread)\n{\n\tvoid* theAnswer = NULL;\n\n#if TARGET_OS_MAC\n\tinCAPThread->mPThread = pthread_self();\n#elif TARGET_OS_WIN32\n\t// do we need to do something here?\n#endif\n\t\n#if\t!TARGET_OS_IPHONE && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6)\n\tif(inCAPThread->mThreadName[0] != 0)\n\t{\n\t\tpthread_setname_np(inCAPThread->mThreadName);\n\t}\n#endif\n\n\ttry \n\t{\n\t\tif(inCAPThread->mTimeConstraintSet)\n\t\t{\n\t\t\tinCAPThread->SetTimeConstraints(inCAPThread->mPeriod, inCAPThread->mComputation, inCAPThread->mConstraint, inCAPThread->mIsPreemptible);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tinCAPThread->SetPriority(inCAPThread->mPriority, inCAPThread->mFixedPriority);\n\t\t}\n\n\t\tif(inCAPThread->mThreadRoutine != NULL)\n\t\t{\n\t\t\ttheAnswer = inCAPThread->mThreadRoutine(inCAPThread->mThreadParameter);\n\t\t}\n\t}\n\tcatch (...)\n\t{\n\t\t// what should be done here?\n\t}\n\tinCAPThread->mPThread = 0;\n\tif (inCAPThread->mAutoDelete)\n\t\tdelete inCAPThread;\n\treturn theAnswer;\n}\n\nUInt32 CAPThread::getScheduledPriority(pthread_t inThread, int inPriorityKind)\n{\n    thread_basic_info_data_t\t\t\tthreadInfo;\n\tpolicy_info_data_t\t\t\t\t\tthePolicyInfo;\n\tunsigned int\t\t\t\t\t\tcount;\n\n\tif (inThread == NULL)\n\t\treturn 0;\n    \n    // get basic info\n    count = THREAD_BASIC_INFO_COUNT;\n    thread_info (pthread_mach_thread_np (inThread), THREAD_BASIC_INFO, (thread_info_t)&threadInfo, &count);\n    \n\tswitch (threadInfo.policy) {\n\t\tcase POLICY_TIMESHARE:\n\t\t\tcount = POLICY_TIMESHARE_INFO_COUNT;\n\t\t\tthread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_TIMESHARE_INFO, (thread_info_t)&(thePolicyInfo.ts), &count);\n            if (inPriorityKind == CAPTHREAD_SCHEDULED_PRIORITY) {\n                return static_cast<UInt32>(thePolicyInfo.ts.cur_priority);\n            }\n            return static_cast<UInt32>(thePolicyInfo.ts.base_priority);\n            break;\n            \n        case POLICY_FIFO:\n\t\t\tcount = POLICY_FIFO_INFO_COUNT;\n\t\t\tthread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_FIFO_INFO, (thread_info_t)&(thePolicyInfo.fifo), &count);\n            if ( (thePolicyInfo.fifo.depressed) && (inPriorityKind == CAPTHREAD_SCHEDULED_PRIORITY) ) {\n                return static_cast<UInt32>(thePolicyInfo.fifo.depress_priority);\n            }\n            return static_cast<UInt32>(thePolicyInfo.fifo.base_priority);\n            break;\n            \n\t\tcase POLICY_RR:\n\t\t\tcount = POLICY_RR_INFO_COUNT;\n\t\t\tthread_info(pthread_mach_thread_np (inThread), THREAD_SCHED_RR_INFO, (thread_info_t)&(thePolicyInfo.rr), &count);\n\t\t\tif ( (thePolicyInfo.rr.depressed) && (inPriorityKind == CAPTHREAD_SCHEDULED_PRIORITY) ) {\n                return static_cast<UInt32>(thePolicyInfo.rr.depress_priority);\n            }\n            return static_cast<UInt32>(thePolicyInfo.rr.base_priority);\n            break;\n\t}\n    \n    return 0;\n}\n\n#elif TARGET_OS_WIN32\n\nUInt32 WINAPI\tCAPThread::Entry(CAPThread* inCAPThread)\n{\n\tUInt32 theAnswer = 0;\n\n\ttry \n\t{\n\t\tif(inCAPThread->mTimeConstraintSet)\n\t\t{\n\t\t\tinCAPThread->SetTimeConstraints(inCAPThread->mPeriod, inCAPThread->mComputation, inCAPThread->mConstraint, inCAPThread->mIsPreemptible);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tinCAPThread->SetPriority(inCAPThread->mPriority, inCAPThread->mFixedPriority);\n\t\t}\n\n\t\tif(inCAPThread->mThreadRoutine != NULL)\n\t\t{\n\t\t\ttheAnswer = reinterpret_cast<UInt32>(inCAPThread->mThreadRoutine(inCAPThread->mThreadParameter));\n\t\t}\n\t\tinCAPThread->mThreadID = 0;\n\t}\n\tcatch (...)\n\t{\n\t\t// what should be done here?\n\t}\n\tCloseHandle(inCAPThread->mThreadHandle);\n\tinCAPThread->mThreadHandle = NULL;\n\tif (inCAPThread->mAutoDelete)\n\t\tdelete inCAPThread;\n\treturn theAnswer;\n}\n\nextern \"C\"\nBoolean CompareAndSwap(UInt32 inOldValue, UInt32 inNewValue, UInt32* inOldValuePtr)\n{\n\treturn InterlockedCompareExchange((volatile LONG*)inOldValuePtr, inNewValue, inOldValue) == inOldValue;\n}\n\n#endif\n\nvoid\tCAPThread::SetName(const char* inThreadName)\n{\n\tif(inThreadName != NULL)\n\t{\n\t\tstrlcpy(mThreadName, inThreadName, kMaxThreadNameLength);\n\t}\n\telse\n\t{\n\t\tmemset(mThreadName, 0, kMaxThreadNameLength);\n\t}\n}\n\n#if CoreAudio_Debug\nvoid\tCAPThread::DebugPriority(const char *label)\n{\n#if !TARGET_OS_WIN32\n\tif (mTimeConstraintSet)\n\t\tprintf(\"CAPThread::%s %p: pri=<time constraint>, spawning pri=%d, scheduled pri=%d\\n\", label, this, \n\t\t(int)mSpawningThreadPriority, (mPThread != NULL) ? (int)GetScheduledPriority() : -1);\n\telse\n\t\tprintf(\"CAPThread::%s %p: pri=%d%s, spawning pri=%d, scheduled pri=%d\\n\", label, this, (int)mPriority, mFixedPriority ? \" fixed\" : \"\", \n\t\t(int)mSpawningThreadPriority, (mPThread != NULL) ? (int)GetScheduledPriority() : -1);\n#else\n\tif (mTimeConstraintSet)\n\t{\n\t\tprintf(\"CAPThread::%s %p: pri=<time constraint>, spawning pri=%d, scheduled pri=%d\\n\", label, this, \n\t\t(int)mPriority, (mThreadHandle != NULL) ? (int)GetScheduledPriority() : -1);\n\t}\n\telse\n\t{\n\t\tprintf(\"CAPThread::%s %p: pri=%d%s, spawning pri=%d, scheduled pri=%d\\n\", label, this, (int)mPriority, mFixedPriority ? \" fixed\" : \"\", \n\t\t(int)mPriority, (mThreadHandle != NULL) ? (int)GetScheduledPriority() : -1);\n\t}\n#endif\n}\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAPThread.h",
    "content": "/*\n     File: CAPThread.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAPThread_h__)\n#define __CAPThread_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CFBase.h>\n#else\n\t#include <CFBase.h>\n#endif\n\n#if TARGET_OS_MAC\n\t#include <pthread.h>\n\t#include <unistd.h>\n#elif TARGET_OS_WIN32\n\t#include <windows.h>\n#else\n\t#error\tUnsupported operating system\n#endif\n\n//==================================================================================================\n//\tCAPThread\n//\n//\tThis class wraps a pthread and a Win32 thread.\n//\tcaution: long-running fixed priority threads can make the system unresponsive\n//==================================================================================================\n\nclass\tCAPThread\n{\n\n//\tTypes\npublic:\n\ttypedef void*\t\t\t(*ThreadRoutine)(void* inParameter);\n\n//\tConstants\npublic:\n\tenum\n\t{\n#if\tTARGET_OS_MAC\n\t\t\t\t\t\t\tkMinThreadPriority = 1,\n\t\t\t\t\t\t\tkMaxThreadPriority = 63,\n\t\t\t\t\t\t\tkDefaultThreadPriority = 31,\n\t\t\t\t\t\t\tkMaxThreadNameLength = 64\n#elif TARGET_OS_WIN32\n\t\t\t\t\t\t\tkMinThreadPriority = 1,\n\t\t\t\t\t\t\tkMaxThreadPriority = 31,\n\t\t\t\t\t\t\tkDefaultThreadPriority = THREAD_PRIORITY_NORMAL,\n\t\t\t\t\t\t\tkMaxThreadNameLength = 256\n#endif\n\t};\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\tCAPThread(ThreadRoutine inThreadRoutine, void* inParameter, UInt32 inPriority = kDefaultThreadPriority, bool inFixedPriority=false, bool inAutoDelete=false, const char* inThreadName = NULL);\n\t\t\t\t\t\t\tCAPThread(ThreadRoutine inThreadRoutine, void* inParameter, UInt32 inPeriod, UInt32 inComputation, UInt32 inConstraint, bool inIsPreemptible, bool inAutoDelete=false, const char* inThreadName = NULL);\n\tvirtual\t\t\t\t\t~CAPThread();\n\n//\tProperties\npublic:\n#if TARGET_OS_MAC\n\ttypedef pthread_t\t\tNativeThread;\n\n\tNativeThread\t\t\tGetNativeThread() { return mPThread; }\n\tstatic NativeThread\t\tGetCurrentThread() { return pthread_self(); }\n\tstatic bool\t\t\t\tIsNativeThreadsEqual(NativeThread a, NativeThread b) { return (a==b); }\n\n\tbool\t\t\t\t\toperator==(NativeThread b) { return pthread_equal(mPThread,b); }\n\n\tpthread_t\t\t\t\tGetPThread() const { return mPThread; }\n\tbool\t\t\t\t\tIsCurrentThread() const { return (0 != mPThread) && (pthread_self() == mPThread); }\n\tbool\t\t\t\t\tIsRunning() const { return 0 != mPThread; }\n    static UInt32\t\t\tgetScheduledPriority(pthread_t inThread, int inPriorityKind);\n#elif TARGET_OS_WIN32\n\ttypedef unsigned long\tNativeThread;\n\t\n\tNativeThread\t\t\tGetNativeThread() { return mThreadID; }\n\tstatic NativeThread\t\tGetCurrentThread() { return GetCurrentThreadId(); }\n\tstatic bool\t\t\t\tIsNativeThreadsEqual(NativeThread a, NativeThread b) { return (a==b); }\n\n\tbool\t\t\t\t\toperator ==(NativeThread b) { return (mThreadID==b); }\n\n\tHANDLE\t\t\t\t\tGetThreadHandle() const { return mThreadHandle; }\n\tUInt32\t\t\t\t\tGetThreadID() const { return mThreadID; }\n\tbool\t\t\t\t\tIsCurrentThread() const { return (0 != mThreadID) && (GetCurrentThreadId() == mThreadID); }\n\tbool\t\t\t\t\tIsRunning() const { return 0 != mThreadID; }\n#endif\n\n\tbool\t\t\t\t\tIsTimeShareThread() const { return !mTimeConstraintSet; }\n\tbool\t\t\t\t\tIsTimeConstraintThread() const { return mTimeConstraintSet; }\n\n\tUInt32\t\t\t\t\tGetPriority() const { return mPriority; }\n    UInt32\t\t\t\t\tGetScheduledPriority();\n\tstatic UInt32\t\t\tGetScheduledPriority(NativeThread thread);\n    void\t\t\t\t\tSetPriority(UInt32 inPriority, bool inFixedPriority=false);\n\tstatic void\t\t\t\tSetPriority(NativeThread inThread, UInt32 inPriority, bool inFixedPriority = false);\n\n\tvoid\t\t\t\t\tGetTimeConstraints(UInt32& outPeriod, UInt32& outComputation, UInt32& outConstraint, bool& outIsPreemptible) const { outPeriod = mPeriod; outComputation = mComputation; outConstraint = mConstraint; outIsPreemptible = mIsPreemptible; }\n\tvoid\t\t\t\t\tSetTimeConstraints(UInt32 inPeriod, UInt32 inComputation, UInt32 inConstraint, bool inIsPreemptible);\n\tvoid\t\t\t\t\tClearTimeConstraints() { SetPriority(mPriority); }\n\t\n\tbool\t\t\t\t\tWillAutoDelete() const { return mAutoDelete; }\n\tvoid\t\t\t\t\tSetAutoDelete(bool b) { mAutoDelete = b; }\n\t\n\tvoid\t\t\t\t\tSetName(const char* inThreadName);\n\n#if CoreAudio_Debug\t\n\tvoid\t\t\t\t\tDebugPriority(const char *label);\n#endif\n\n//\tActions\npublic:\n\tvirtual void\t\t\tStart();\n\n//\tImplementation\nprotected:\n#if TARGET_OS_MAC\n\tstatic void*\t\t\tEntry(CAPThread* inCAPThread);\n#elif TARGET_OS_WIN32\n\tstatic UInt32 WINAPI\tEntry(CAPThread* inCAPThread);\n#endif\n\n#if\tTARGET_OS_MAC\n\tpthread_t\t\t\t\tmPThread;\n    UInt32\t\t\t\t\tmSpawningThreadPriority;\n#elif TARGET_OS_WIN32\n\tHANDLE\t\t\t\t\tmThreadHandle;\n\tunsigned long\t\t\tmThreadID;\n#endif\n\tThreadRoutine\t\t\tmThreadRoutine;\n\tvoid*\t\t\t\t\tmThreadParameter;\n\tchar\t\t\t\t\tmThreadName[kMaxThreadNameLength];\n\tUInt32\t\t\t\t\tmPriority;\n\tUInt32\t\t\t\t\tmPeriod;\n\tUInt32\t\t\t\t\tmComputation;\n\tUInt32\t\t\t\t\tmConstraint;\n\tbool\t\t\t\t\tmIsPreemptible;\n\tbool\t\t\t\t\tmTimeConstraintSet;\n    bool\t\t\t\t\tmFixedPriority;\n\tbool\t\t\t\t\tmAutoDelete;\t\t// delete self when thread terminates\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAPersistence.cpp",
    "content": "/*\n     File: CAPersistence.cpp\n Abstract: CAPersistence.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CACFArray.h\"\n#include \"CACFDictionary.h\"\n\n#include \"CAAudioUnit.h\"\n#include \"CACFString.h\"\n#include \"CAAudioChannelLayout.h\"\n#include \"CAAUParameter.h\"\n#include \"CAAUMIDIMap.h\"\n\n#ifdef DARLING\n#include <CarbonCore/MacErrors.h>\n#else\n#include <CoreServices/../Frameworks/CarbonCore.framework/Headers/MacErrors.h>\n#endif\n\n#pragma mark __CAStreamBasicDescription\n\nstatic const CFStringRef kSampleRate = CFSTR(\"sample rate\");\nstatic const CFStringRef kFormat = CFSTR(\"format\");\nstatic const CFStringRef kFormatFlags = CFSTR(\"format flags\");\nstatic const CFStringRef kPacketBytes = CFSTR(\"packet bytes\");\nstatic const CFStringRef kFramePackets = CFSTR(\"frame packets\");\nstatic const CFStringRef kFrameBytes = CFSTR(\"frame bytes\");\nstatic const CFStringRef kFrameChannels = CFSTR(\"frame channels\");\nstatic const CFStringRef kChannelBits = CFSTR(\"channel bits\");\n\n\t\t// This will return a value that should be used as the key for this struct\n\t\t// and a CFData object that contains the current state of this object\nOSStatus\tCAStreamBasicDescription::Save (CFPropertyListRef *outData) const\n{\n\tCACFDictionary dict(false);\n\n\tif (!dict.AddFloat64 (kSampleRate, mSampleRate)) goto error;\n\tif (!dict.AddUInt32 (kFormat, mFormatID)) goto error;\n\tif (!dict.AddUInt32 (kFormatFlags, mFormatFlags)) goto error;\n\tif (!dict.AddUInt32 (kPacketBytes, mBytesPerPacket)) goto error;\n\tif (!dict.AddUInt32 (kFramePackets, mFramesPerPacket)) goto error;\n\tif (!dict.AddUInt32 (kFrameBytes, mBytesPerFrame)) goto error;\n\tif (!dict.AddUInt32 (kFrameChannels, mChannelsPerFrame)) goto error;\n\tif (!dict.AddUInt32 (kChannelBits, mBitsPerChannel)) goto error;\n\t\n\t*outData = dict.GetDict();\n\n\treturn noErr;\n\nerror:\n\tdict.ShouldRelease (true);\n\treturn paramErr;\n}\n\n\t\n\t\t// Given a CFData object generated by the save command, this will re-establish\n\t\t// the CAStreamBasicDescription\nOSStatus\tCAStreamBasicDescription::Restore (CFPropertyListRef& inData)\n{\n\tif (CFGetTypeID (inData) != CFDictionaryGetTypeID()) return paramErr;\n\tCACFDictionary dict(static_cast<CFDictionaryRef>(inData), false);\n\t\n\tif (!dict.GetFloat64 (kSampleRate, mSampleRate)) return paramErr;\n\tif (!dict.GetUInt32 (kFormat, mFormatID)) return paramErr;\n\tif (!dict.GetUInt32 (kFormatFlags, mFormatFlags)) return paramErr;\n\tif (!dict.GetUInt32 (kPacketBytes, mBytesPerPacket)) return paramErr;\n\tif (!dict.GetUInt32 (kFramePackets, mFramesPerPacket)) return paramErr;\n\tif (!dict.GetUInt32 (kFrameBytes, mBytesPerFrame)) return paramErr;\n\tif (!dict.GetUInt32 (kFrameChannels, mChannelsPerFrame)) return paramErr;\n\tif (!dict.GetUInt32 (kChannelBits, mBitsPerChannel)) return paramErr;\n\n\treturn noErr;\n}\n\n#pragma mark __CAComponentDescription\n\nstatic const CFStringRef kType = CFSTR(\"type\");\nstatic const CFStringRef kSubType = CFSTR(\"subtype\");\nstatic const CFStringRef kManu = CFSTR(\"manufacturer\");\n\nOSStatus\t\tCAComponentDescription::Save (CFPropertyListRef *outData) const\n{\n\tCACFDictionary dict(false);\n\tif (!dict.AddUInt32 (kType, componentType)) goto error;\n\tif (!dict.AddUInt32 (kSubType, componentSubType)) goto error;\n\tif (!dict.AddUInt32 (kManu, componentManufacturer)) goto error;\n\t\n\t*outData = dict.GetDict();\n\t\n\treturn 0;\nerror:\n\tdict.ShouldRelease (true);\n\treturn paramErr;\n}\n\nOSStatus\t\tCAComponentDescription::Restore (CFPropertyListRef &inData)\n{\n\tif (CFGetTypeID (inData) != CFDictionaryGetTypeID()) return paramErr;\n\tCACFDictionary dict(static_cast<CFDictionaryRef>(inData), false);\n\t\t\n\tif (!dict.GetUInt32 (kType, componentType)) return paramErr;\n\tif (!dict.GetUInt32 (kSubType, componentSubType)) return paramErr;\n\tif (!dict.GetUInt32 (kManu, componentManufacturer)) return paramErr;\n\n\tcomponentFlags = 0;\n\tcomponentFlagsMask = 0;\n\t\n\treturn 0;\n}\n\n#pragma mark __CAComponent\n\nOSStatus\t\tCAComponent::Save (CFPropertyListRef *outData) const\n{\n\tOSStatus result = mDesc.Save (outData);\n\tif (result) return result;\n\t\n\t//add the name string of the component for a human readable name...\n\t// this name string is *not* restored when restoring the component\n\tCFStringRef\tname = GetCompName ();\n\tif (name && *outData)\n\t\tCFDictionarySetValue ((CFMutableDictionaryRef)(*outData), CFSTR(\"name\"), name);\n\t\n\treturn noErr;\n}\n\nOSStatus\t\tCAComponent::Restore (CFPropertyListRef &inData)\n{\n\tif (mDesc.Restore (inData)) return paramErr;\n\n\tClear();\n\n\tmComp = AudioComponentFindNext (NULL, &mDesc);\n\t\t// this will restore the current flags...\n\tif (mComp)\n\t\tAudioComponentGetDescription (Comp(), &mDesc);\n\n\treturn noErr;\n}\n\n\n#pragma mark __CAAudioChannelLayout\n\nstatic const CFStringRef kACLTagKey = CFSTR(\"acl tag\");\nstatic const CFStringRef kACLBitmapKey = CFSTR(\"chan bitmap\");\nstatic const CFStringRef kACLLabelKey = CFSTR(\"label\");\nstatic const CFStringRef kACLFlagsKey = CFSTR(\"flags\");\nstatic const CFStringRef kACLCoords0Key = CFSTR(\"coords 0\");\nstatic const CFStringRef kACLCoords1Key = CFSTR(\"coords 1\");\nstatic const CFStringRef kACLCoords2Key = CFSTR(\"coords 2\");\nstatic const CFStringRef kACLDescsKey = CFSTR(\"descriptions\");\n\t\nOSStatus\tCAAudioChannelLayout::Save (CFPropertyListRef *outData) const \n{\n\tconst AudioChannelLayout& layout = Layout();\n\n\tCACFDictionary dict (false);\n\tif (!dict.AddUInt32 (kACLTagKey, layout.mChannelLayoutTag))\n\t\tgoto badadd;\n\tif (layout.mChannelBitmap && !dict.AddUInt32 (kACLBitmapKey, layout.mChannelBitmap))\n\t\tgoto badadd;\n\t\n\tif (layout.mNumberChannelDescriptions)\n\t{\t\n\t\tCFMutableArrayRef descs = CFArrayCreateMutable (NULL, layout.mNumberChannelDescriptions, &kCFTypeArrayCallBacks);\n\t\t\n\t\tconst AudioChannelDescription *desc = layout.mChannelDescriptions;\n\t\tfor (unsigned int i = 0; i < layout.mNumberChannelDescriptions; ++i, ++desc) \n\t\t{\n\t\t\tCACFDictionary descDict (true);\n\t\t\tif (!descDict.AddUInt32 (kACLLabelKey, desc->mChannelLabel))\n\t\t\t\t{ CFRelease (descs); goto badadd; }\n\t\t\tif (!descDict.AddUInt32 (kACLFlagsKey, desc->mChannelFlags))\n\t\t\t\t{ CFRelease (descs); goto badadd; }\n\t\t\tif (!descDict.AddFloat32 (kACLCoords0Key, desc->mCoordinates[0]))\n\t\t\t\t{ CFRelease (descs); goto badadd; }\n\t\t\tif (!descDict.AddFloat32 (kACLCoords1Key, desc->mCoordinates[1]))\n\t\t\t\t{ CFRelease (descs); goto badadd; }\n\t\t\tif (!descDict.AddFloat32 (kACLCoords2Key, desc->mCoordinates[2]))\n\t\t\t\t{ CFRelease (descs); goto badadd; }\n\t\t\t\n\t\t\tCFArrayAppendValue (descs, descDict.AsPropertyList());\n\t\t}\n\t\tdict.AddArray (kACLDescsKey, descs);\n\t\t\n\t\tCFRelease (descs);\n\t}\n\t\n\t*outData = dict.GetDict();\t\n\t\n\treturn noErr;\n\t\nbadadd:\n\tdict.ShouldRelease(true);\n\treturn paramErr;\n}\n\nOSStatus\tCAAudioChannelLayout::Restore (CFPropertyListRef &inData) \n{\n\tif (CFGetTypeID (inData) != CFDictionaryGetTypeID()) return paramErr;\n\tCACFDictionary dict(static_cast<CFDictionaryRef>(inData), false);\n\n\tRefCountedLayout *temp = NULL;\n\tAudioChannelLayout* layout;\n\t\n\tCFArrayRef descs = NULL;\n\tUInt32 numDescs = 0;\n\n\tif (dict.GetArray (kACLDescsKey, descs)) {\n\t\tnumDescs = static_cast<OSStatus>(CFArrayGetCount (descs));\n\t}\n\t\n\ttemp = RefCountedLayout::CreateWithNumberChannelDescriptions(numDescs);\n\tlayout = temp->GetLayout();\n\t\t\n\tif (!dict.GetUInt32 (kACLTagKey, layout->mChannelLayoutTag))\n\t\tgoto badget;\n\tif (dict.HasKey (kACLBitmapKey)) {\n\t\tif (!dict.GetUInt32 (kACLBitmapKey, layout->mChannelBitmap))\n\t\t\tgoto badget;\n\t} else\n\t\tlayout->mChannelBitmap = 0;\n\t\t\n\tlayout->mNumberChannelDescriptions = numDescs;\n\t\n\tif (numDescs)\n\t{\n\t\tAudioChannelDescription *desc = layout->mChannelDescriptions;\n\t\tfor (unsigned int i = 0; i < numDescs; ++i, ++desc)\n\t\t{\n\t\t\tCFDictionaryRef descDict = (CFDictionaryRef)CFArrayGetValueAtIndex (descs, i);\t\t\t\n\t\t\tCACFDictionary theDesc (descDict, false);\n\t\t\t\n\t\t\tif (!theDesc.GetUInt32 (kACLLabelKey, desc->mChannelLabel))\n\t\t\t\tgoto badget;\n\t\t\tif (!theDesc.GetUInt32 (kACLFlagsKey, desc->mChannelFlags))\n\t\t\t\tgoto badget;\n\t\t\tif (!theDesc.GetFloat32 (kACLCoords0Key, desc->mCoordinates[0]))\n\t\t\t\tgoto badget;\n\t\t\tif (!theDesc.GetFloat32 (kACLCoords1Key, desc->mCoordinates[1]))\n\t\t\t\tgoto badget;\n\t\t\tif (!theDesc.GetFloat32 (kACLCoords2Key, desc->mCoordinates[2]))\n\t\t\t\tgoto badget;\n\t\t}\n\t}\n\tif (mLayout)\n\t\tmLayout->release();\n\n\tmLayout = temp;\n\t\n\treturn noErr;\n\nbadget:\n\tdelete temp;\n\treturn paramErr;\n}\n\n#pragma mark __AudioUnitParameter\n\nstatic const CFStringRef kAUScopeStr = CFSTR(\"scope\");\nstatic const CFStringRef kAUElementIDStr = CFSTR(\"element ID\");\nstatic const CFStringRef kAUParameterIDStr = CFSTR(\"paramID\");\n\nvoid\t\tCAAUParameter::Save (CFPropertyListRef &outData) const \n{ \n\treturn CAAUParameter::Save (*this, outData); \n}\n\n// static functions to save/restore AudioUnitParameter\nvoid\t\tCAAUParameter::Save (const AudioUnitParameter &inParam, CFPropertyListRef &outData)\n{\n\tCACFDictionary dict(false);\n\tdict.AddUInt32 (kAUScopeStr, inParam.mScope);\n\tdict.AddUInt32 (kAUElementIDStr, inParam.mElement);\n\tdict.AddUInt32 (kAUParameterIDStr, inParam.mParameterID);\n\n\toutData = dict.AsPropertyList();\n}\n\nOSStatus\tCAAUParameter::Restore\t(const CFPropertyListRef inData, AudioUnitParameter &outParam)\n{\n\tif (CFGetTypeID (inData) != CFDictionaryGetTypeID()) return paramErr;\n\tCACFDictionary dict(static_cast<CFDictionaryRef>(inData), false);\n\n\tif (!dict.GetUInt32 (kAUScopeStr, outParam.mScope)) return paramErr;\n\tif (!dict.GetUInt32 (kAUElementIDStr, outParam.mElement)) return paramErr;\n\tif (!dict.GetUInt32 (kAUParameterIDStr, outParam.mParameterID)) return paramErr;\n\treturn noErr;\n}\n\n\n#pragma mark __MIDIMap\n\nconst CFStringRef kParamMIDIStr = CFSTR(\"param maps\");\n\nconst CFStringRef kMIDIFlagsStr = CFSTR(\"flags\");\nconst CFStringRef kMIDISubMinStr = CFSTR(\"sub min\");\nconst CFStringRef kMIDISubMaxStr = CFSTR(\"sub max\");\nconst CFStringRef kMIDIStatusStr = CFSTR(\"midi status byte\");\nconst CFStringRef kMIDIDataByteStr = CFSTR(\"midi data1 byte\");\nconst CFStringRef kAUStr = CFSTR(\"unit\");\n\nstatic const CFStringRef kLocalElementIDStr = CFSTR(\"element ID\");\nstatic const CFStringRef kLocalScopeStr = CFSTR(\"scope\");\nstatic const CFStringRef kLocalParameterIDStr = CFSTR(\"paramID\");\n\nvoid CAAUMIDIMap::Save(CFPropertyListRef &outData) const\n{\n\tCACFDictionary paramDict(false);\n\n\tparamDict.AddUInt32 (kLocalScopeStr, mScope);\n\tparamDict.AddUInt32 (kLocalElementIDStr, mElement);\n\tparamDict.AddUInt32 (kLocalParameterIDStr, mParameterID);\n\tparamDict.AddUInt32 (kMIDIFlagsStr, mFlags);\n\tparamDict.AddFloat32 (kMIDISubMinStr, mSubRangeMin);\n\tparamDict.AddFloat32 (kMIDISubMaxStr, mSubRangeMax);\n\n\tUInt32 data = mStatus;\n\tparamDict.AddUInt32 (kMIDIStatusStr, data);\n\n\tdata = mData1;\n\tparamDict.AddUInt32 (kMIDIDataByteStr, data);\n\n\toutData = paramDict.GetCFDictionary();\n}\n\nvoid CAAUMIDIMap::Restore(CFDictionaryRef inData)\n{\t\n\tCACFDictionary paramDict (inData, false);\n\n\tif (!paramDict.GetUInt32 (kLocalScopeStr, mScope)) return; \n\tif (!paramDict.GetUInt32 (kLocalElementIDStr, mElement)) return; \n\tif (!paramDict.GetUInt32 (kLocalParameterIDStr, mParameterID)) return; \n\tif (!paramDict.GetUInt32 (kMIDIFlagsStr, mFlags)) return;\n\tif (!paramDict.GetFloat32 (kMIDISubMinStr, mSubRangeMin)) return; \n\tif (!paramDict.GetFloat32 (kMIDISubMaxStr, mSubRangeMax)) return; \n\tUInt32 data;\t\t\n\tif (!paramDict.GetUInt32 (kMIDIStatusStr, data)) return;\n\tmStatus = data;\n\tif (!paramDict.GetUInt32 (kMIDIDataByteStr, data)) return; \n\tmData1 = data;\n}\n\nvoid\t\tCAAUMIDIMap::SaveAsMapPList (AudioUnit inUnit, const AUParameterMIDIMapping* inMappings, UInt32 inNumMappings, CFPropertyListRef &outData, CFStringRef inName)\n{\n\n\tCACFDictionary mappingDict (false);\t\n\tCACFArray maps (true);\n\t\n\tfor (UInt32 i = 0; i< inNumMappings; ++i) \n\t{\n\t\tCFPropertyListRef data;\n\t\tCAAUMIDIMap paramMap(inMappings[i]);\n\t\tparamMap.Save (data);\n\t\tif (data) \n\t\t{\n\t\t\tmaps.AppendCFType (data); \n\t\t\tCFRelease(data); \n\t\t}\t\t\t\t\n\t}\n\n\tif (maps.GetNumberItems()) {\n\t\tmappingDict.AddCFType (kParamMIDIStr, maps.GetCFArray());\n\t\t\n\t\t// Add the AU info here - where this map came from\n\t\tCAAudioUnit au (inUnit);\n\t\tCFPropertyListRef data;\n\t\tau.Comp().Save (&data);\n\t\t\n\t\tmappingDict.AddCFType (kAUStr, data);\n\t\tCFRelease(data);\n\t\t\n\t\tif (!inName) inName = CFSTR(\"Untitled\");\n\t\tmappingDict.AddString (CFSTR(\"name\"), inName);\n\t\t\n\t\tmappingDict.AddUInt32 (CFSTR(\"version\"), 1);\n\t\t\n\t\toutData = mappingDict.AsPropertyList();\n\t} else {\n\t\tmappingDict.ShouldRelease(true);\n\t\toutData = NULL;\n\t}\n}\n\nUInt32\t\tCAAUMIDIMap::NumberOfMaps (const CFDictionaryRef inData)\n{\n\tCACFDictionary dict (inData, false);\n\t\n\tif (dict.HasKey (kParamMIDIStr)) \n\t{\n\t\tCFArrayRef cfArray;\n\t\tdict.GetArray (kParamMIDIStr, cfArray); \n\t\t\n\t\tCACFArray array (cfArray, false);\n\t\t\n\t\treturn array.GetNumberItems();\n\t}\n\treturn 0;\n}\n\t\nvoid\t\tCAAUMIDIMap::RestoreFromMapPList (const CFDictionaryRef inData, AUParameterMIDIMapping* outMappings, UInt32 inNumMappings)\n{\n\n\tCACFDictionary dict (inData, false);\n\t\n\tif (dict.HasKey (kParamMIDIStr)) \n\t{\n\t\tCFArrayRef cfArray;\n\t\tdict.GetArray (kParamMIDIStr, cfArray); \n\t\t\n\t\tCACFArray array (cfArray, false);\n\t\t\n\t\tUInt32 count = array.GetNumberItems();\n\t\tif (count > inNumMappings)\n\t\t\tcount = inNumMappings;\n\t\t\n\t\tfor (unsigned int i = 0; i < count; ++i)\n\t\t{\n\t\t\tCFDictionaryRef paramsDictRef;\n\t\t\tif (!array.GetDictionary(i, paramsDictRef)) \n\t\t\t\treturn;\n\t\t\t\n\t\t\tCAAUMIDIMap parameterMap;\n\t\t\tparameterMap.Restore(paramsDictRef);\n\t\t\toutMappings[i] = parameterMap;\n\t\t}\n\t}\n}\n\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAProcess.cpp",
    "content": "/*\n     File: CAProcess.cpp\n Abstract: CAProcess.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CAProcess.h\"\n#include <signal.h>\n#include <unistd.h>\n#include <errno.h>\n\n//=============================================================================\n//\tCAProcess\n//=============================================================================\n\nbool\tCAProcess::ProcessExists(pid_t inPID)\n{\n\t//\tpids <= 0 are reserved for special purposes and -1 is\n\t//\tused as a sentinel value by the HAL.\n\tbool theAnswer = inPID > 0;\n\t\n\tif(theAnswer)\n\t{\n\t\t//\taccording to kill(2), the process exists if kill(pid, 0) returns 0\n\t\tint wasKilled = kill(inPID, 0);\n\t\tif(wasKilled != 0)\n\t\t{\n\t\t\t//\tThe kill call failed for some reason, but there is only one error code that\n\t\t\t//\tthat indicates that the process doesn't exist.\n\t\t\ttheAnswer = errno != ESRCH;\n\t\t}\n\t}\n\n\t\n\treturn theAnswer;\n}\n\npid_t\tCAProcess::GetPID()\n{\n\tif(sPID == -1)\n\t{\n\t\tsPID = getpid();\n\t}\n\t\n\treturn sPID;\n}\n\npid_t\tCAProcess::sPID = -1;\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAProcess.h",
    "content": "/*\n     File: CAProcess.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAProcess_h__)\n#define __CAProcess_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include <sys/types.h>\n\n//=============================================================================\n//\tCAProcess\n//\n//\tWrapper for utilities for dealing with Unix Processes.\n//=============================================================================\n\nclass CAProcess\n{\n\n//\toperations\npublic:\n\tstatic bool\t\tProcessExists(pid_t inPID);\n\tstatic pid_t\tGetPID();\n\nprivate:\n\tstatic pid_t\tsPID;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAPropertyAddress.h",
    "content": "/*\n     File: CAPropertyAddress.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAPropertyAddress_h__)\n#define __CAPropertyAddress_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tPublicUtility Includes\n#include \"CADebugMacros.h\"\n\n//\tSystem Includes\n#include <CoreAudio/AudioHardware.h>\n\n//  Standard Library Includes\n#include <algorithm>\n#include <functional>\n#include <vector>\n\n//==================================================================================================\n//\tCAPropertyAddress\n//\n//  CAPropertyAddress extends the AudioObjectPropertyAddress structure to C++ including constructors\n//  and other utility operations. Note that there is no defined operator< or operator== because the\n//  presence of wildcards for the fields make comparisons ambiguous without specifying whether or\n//  not to take the wildcards into account. Consequently, if you want to use this struct in an STL\n//  data structure, you'll need to specify the approriate function object explicitly in the template\n//  declaration.\n//==================================================================================================\n\nstruct CAPropertyAddress\n:\n\tpublic AudioObjectPropertyAddress\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\tCAPropertyAddress()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: AudioObjectPropertyAddress() { mSelector = 0; mScope = kAudioObjectPropertyScopeGlobal; mElement = kAudioObjectPropertyElementMaster; }\n\t\t\t\t\t\tCAPropertyAddress(AudioObjectPropertySelector inSelector)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: AudioObjectPropertyAddress() { mSelector = inSelector; mScope = kAudioObjectPropertyScopeGlobal; mElement = kAudioObjectPropertyElementMaster; }\n\t\t\t\t\t\tCAPropertyAddress(AudioObjectPropertySelector inSelector, AudioObjectPropertyScope inScope)\t\t\t\t\t\t\t\t\t\t\t: AudioObjectPropertyAddress() { mSelector = inSelector; mScope = inScope; mElement = kAudioObjectPropertyElementMaster; }\n\t\t\t\t\t\tCAPropertyAddress(AudioObjectPropertySelector inSelector, AudioObjectPropertyScope inScope, AudioObjectPropertyElement inElement)   : AudioObjectPropertyAddress() { mSelector = inSelector; mScope = inScope; mElement = inElement; }\n\t\t\t\t\t\tCAPropertyAddress(const AudioObjectPropertyAddress& inAddress)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: AudioObjectPropertyAddress(inAddress){}\n\t\t\t\t\t\tCAPropertyAddress(const CAPropertyAddress& inAddress)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: AudioObjectPropertyAddress(inAddress){}\n\tCAPropertyAddress&  operator=(const AudioObjectPropertyAddress& inAddress)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ AudioObjectPropertyAddress::operator=(inAddress); return *this; }\n\tCAPropertyAddress&  operator=(const CAPropertyAddress& inAddress)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ AudioObjectPropertyAddress::operator=(inAddress); return *this; }\n\t\n//  Operations\npublic:\n\tstatic bool\t\t\tIsSameAddress(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2)\t\t\t\t\t\t\t{ return (inAddress1.mScope == inAddress2.mScope) && (inAddress1.mSelector == inAddress2.mSelector) && (inAddress1.mElement == inAddress2.mElement); }\n\tstatic bool\t\t\tIsLessThanAddress(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2)\t\t\t\t\t\t{ bool theAnswer = false; if(inAddress1.mScope != inAddress2.mScope) { theAnswer = inAddress1.mScope < inAddress2.mScope; } else if(inAddress1.mSelector != inAddress2.mSelector) { theAnswer = inAddress1.mSelector < inAddress2.mSelector; } else { theAnswer = inAddress1.mElement < inAddress2.mElement; } return theAnswer; }\n\tstatic bool\t\t\tIsCongruentSelector(AudioObjectPropertySelector inSelector1, AudioObjectPropertySelector inSelector2)\t\t\t\t\t\t\t\t{ return (inSelector1 == inSelector2) || (inSelector1 == kAudioObjectPropertySelectorWildcard) || (inSelector2 == kAudioObjectPropertySelectorWildcard); }\n\tstatic bool\t\t\tIsCongruentScope(AudioObjectPropertyScope inScope1, AudioObjectPropertyScope inScope2)\t\t\t\t\t\t\t\t\t\t\t\t{ return (inScope1 == inScope2) || (inScope1 == kAudioObjectPropertyScopeWildcard) || (inScope2 == kAudioObjectPropertyScopeWildcard); }\n\tstatic bool\t\t\tIsCongruentElement(AudioObjectPropertyElement inElement1, AudioObjectPropertyElement inElement2)\t\t\t\t\t\t\t\t\t{ return (inElement1 == inElement2) || (inElement1 == kAudioObjectPropertyElementWildcard) || (inElement2 == kAudioObjectPropertyElementWildcard); }\n\tstatic bool\t\t\tIsCongruentAddress(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2)\t\t\t\t\t\t{ return IsCongruentScope(inAddress1.mScope, inAddress2.mScope) && IsCongruentSelector(inAddress1.mSelector, inAddress2.mSelector) && IsCongruentElement(inAddress1.mElement, inAddress2.mElement); }\n\tstatic bool\t\t\tIsCongruentLessThanAddress(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2)\t\t\t\t{ bool theAnswer = false; if(!IsCongruentScope(inAddress1.mScope, inAddress2.mScope)) { theAnswer = inAddress1.mScope < inAddress2.mScope; } else if(!IsCongruentSelector(inAddress1.mSelector, inAddress2.mSelector)) { theAnswer = inAddress1.mSelector < inAddress2.mSelector; } else if(!IsCongruentElement(inAddress1.mElement, inAddress2.mElement)) { theAnswer = inAddress1.mElement < inAddress2.mElement; } return theAnswer; }\n\n//  STL Helpers\npublic:\n\tstruct EqualTo : public std::binary_function<AudioObjectPropertyAddress, AudioObjectPropertyAddress, bool>\n\t{\n\t\tbool\toperator()(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) const\t\t\t\t\t\t\t\t{ return IsSameAddress(inAddress1, inAddress2); }\n\t};\n\n\tstruct LessThan : public std::binary_function<AudioObjectPropertyAddress, AudioObjectPropertyAddress, bool>\n\t{\n\t\tbool\toperator()(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) const\t\t\t\t\t\t\t\t{ return IsLessThanAddress(inAddress1, inAddress2); }\n\t};\n\n\tstruct CongruentEqualTo : public std::binary_function<AudioObjectPropertyAddress, AudioObjectPropertyAddress, bool>\n\t{\n\t\tbool\toperator()(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) const\t\t\t\t\t\t\t\t{ return IsCongruentAddress(inAddress1, inAddress2); }\n\t};\n\n\tstruct CongruentLessThan : public std::binary_function<AudioObjectPropertyAddress, AudioObjectPropertyAddress, bool>\n\t{\n\t\tbool\toperator()(const AudioObjectPropertyAddress& inAddress1, const AudioObjectPropertyAddress& inAddress2) const\t\t\t\t\t\t\t\t{ return IsCongruentLessThanAddress(inAddress1, inAddress2); }\n\t};\n\n};\n\n//==================================================================================================\n//  CAPropertyAddressList\n//\n//  An auto-resizing array of CAPropertyAddress structures.\n//==================================================================================================\n\nclass   CAPropertyAddressList\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\t\t\t\t\tCAPropertyAddressList()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: mAddressList(), mToken(NULL) {}\n\texplicit\t\t\t\t\t\t\t\tCAPropertyAddressList(void* inToken)\t\t\t\t\t\t\t\t\t\t\t\t\t: mAddressList(), mToken(inToken) {}\n\texplicit\t\t\t\t\t\t\t\tCAPropertyAddressList(uintptr_t inToken)\t\t\t\t\t\t\t\t\t\t\t\t: mAddressList(), mToken(reinterpret_cast<void*>(inToken)) {}\n\t\t\t\t\t\t\t\t\t\t\tCAPropertyAddressList(const CAPropertyAddressList& inAddressList)\t\t\t\t\t\t: mAddressList(inAddressList.mAddressList), mToken(inAddressList.mToken) {}\n\tCAPropertyAddressList&\t\t\t\t\toperator=(const CAPropertyAddressList& inAddressList)\t\t\t\t\t\t\t\t\t{ mAddressList = inAddressList.mAddressList; mToken = inAddressList.mToken; return *this; }\n\t\t\t\t\t\t\t\t\t\t\t~CAPropertyAddressList()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{}\n\n//\tOperations\npublic:\n\tvoid*\t\t\t\t\t\t\t\t\tGetToken() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mToken; }\n\tvoid\t\t\t\t\t\t\t\t\tSetToken(void* inToken)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ mToken = inToken; }\n\t\n\tuintptr_t\t\t\t\t\t\t\t\tGetIntToken() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return reinterpret_cast<uintptr_t>(mToken); }\n\tvoid\t\t\t\t\t\t\t\t\tSetIntToken(uintptr_t inToken)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ mToken = reinterpret_cast<void*>(inToken); }\n\t\n\tAudioObjectID\t\t\t\t\t\t\tGetAudioObjectIDToken() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return static_cast<AudioObjectID>(reinterpret_cast<uintptr_t>(mToken)); }\n\t\n\tbool\t\t\t\t\t\t\t\t\tIsEmpty() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mAddressList.empty(); }\n\tUInt32\t\t\t\t\t\t\t\t\tGetNumberItems() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return ToUInt32(mAddressList.size()); }\n\tvoid\t\t\t\t\t\t\t\t\tGetItemByIndex(UInt32 inIndex, AudioObjectPropertyAddress& outAddress) const\t\t\t{ if(inIndex < mAddressList.size()) { outAddress = mAddressList.at(inIndex); } }\n\tconst AudioObjectPropertyAddress*\t\tGetItems() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return &(*mAddressList.begin()); }\n\tAudioObjectPropertyAddress*\t\t\t\tGetItems()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return &(*mAddressList.begin()); }\n\t\n\tbool\t\t\t\t\t\t\t\t\tHasItem(const AudioObjectPropertyAddress& inAddress) const\t\t\t\t\t\t\t\t{ AddressList::const_iterator theIterator = std::find_if(mAddressList.begin(), mAddressList.end(), std::bind1st(CAPropertyAddress::CongruentEqualTo(), inAddress)); return theIterator != mAddressList.end(); }\n\tbool\t\t\t\t\t\t\t\t\tHasExactItem(const AudioObjectPropertyAddress& inAddress) const\t\t\t\t\t\t\t{ AddressList::const_iterator theIterator = std::find_if(mAddressList.begin(), mAddressList.end(), std::bind1st(CAPropertyAddress::EqualTo(), inAddress)); return theIterator != mAddressList.end(); }\n\n\tvoid\t\t\t\t\t\t\t\t\tAppendItem(const AudioObjectPropertyAddress& inAddress)\t\t\t\t\t\t\t\t\t{ mAddressList.push_back(inAddress); }\n\tvoid\t\t\t\t\t\t\t\t\tAppendUniqueItem(const AudioObjectPropertyAddress& inAddress)\t\t\t\t\t\t\t{ if(!HasItem(inAddress)) { mAddressList.push_back(inAddress); } }\n\tvoid\t\t\t\t\t\t\t\t\tAppendUniqueExactItem(const AudioObjectPropertyAddress& inAddress)\t\t\t\t\t\t{ if(!HasExactItem(inAddress)) { mAddressList.push_back(inAddress); } }\n\tvoid\t\t\t\t\t\t\t\t\tInsertItemAtIndex(UInt32 inIndex, const AudioObjectPropertyAddress& inAddress)\t\t\t{ if(inIndex < mAddressList.size()) { AddressList::iterator theIterator = mAddressList.begin(); std::advance(theIterator, static_cast<int>(inIndex)); mAddressList.insert(theIterator, inAddress); } else { mAddressList.push_back(inAddress); } }\n\tvoid\t\t\t\t\t\t\t\t\tEraseExactItem(const AudioObjectPropertyAddress& inAddress)\t\t\t\t\t\t\t\t{ AddressList::iterator theIterator = std::find_if(mAddressList.begin(), mAddressList.end(), std::bind1st(CAPropertyAddress::EqualTo(), inAddress)); if(theIterator != mAddressList.end()) { mAddressList.erase(theIterator); } }\n\tvoid\t\t\t\t\t\t\t\t\tEraseItemAtIndex(UInt32 inIndex)\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ if(inIndex < mAddressList.size()) { AddressList::iterator theIterator = mAddressList.begin(); std::advance(theIterator, static_cast<int>(inIndex)); mAddressList.erase(theIterator); } }\n\tvoid\t\t\t\t\t\t\t\t\tEraseAllItems()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ mAddressList.clear(); }\n\n//  Implementation\nprivate:\n\ttypedef std::vector<CAPropertyAddress>  AddressList;\n\n\tAddressList\t\t\t\t\t\t\t\tmAddressList;\n\tvoid*\t\t\t\t\t\t\t\t\tmToken;\n\t\n};\n\n//==================================================================================================\n//  CAPropertyAddressListVector\n//\n//  An auto-resizing array of CAPropertyAddressList objects.\n//==================================================================================================\n\nclass\tCAPropertyAddressListVector\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\t\t\t\t\t\tCAPropertyAddressListVector()\t\t\t\t\t\t\t\t\t\t\t\t\t\t: mAddressListVector() {}\n\t\t\t\t\t\t\t\t\t\t\t\tCAPropertyAddressListVector(const CAPropertyAddressListVector& inAddressListVector)\t: mAddressListVector(inAddressListVector.mAddressListVector) {}\n\tCAPropertyAddressListVector&\t\t\t\toperator=(const CAPropertyAddressListVector& inAddressListVector)\t\t\t\t\t{ mAddressListVector = inAddressListVector.mAddressListVector; return *this; }\n\t\t\t\t\t\t\t\t\t\t\t\t~CAPropertyAddressListVector()\t\t\t\t\t\t\t\t\t\t\t\t\t\t{}\n\n//\tOperations\npublic:\n\tbool\t\t\t\t\t\t\t\t\t\tIsEmpty() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mAddressListVector.empty(); }\n\tbool\t\t\t\t\t\t\t\t\t\tHasAnyNonEmptyItems() const;\n\tbool\t\t\t\t\t\t\t\t\t\tHasAnyItemsWithAddress(const AudioObjectPropertyAddress& inAddress) const;\n\tbool\t\t\t\t\t\t\t\t\t\tHasAnyItemsWithExactAddress(const AudioObjectPropertyAddress& inAddress) const;\n\n\tUInt32\t\t\t\t\t\t\t\t\t\tGetNumberItems() const\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return ToUInt32(mAddressListVector.size()); }\n\tconst CAPropertyAddressList&\t\t\t\tGetItemByIndex(UInt32 inIndex) const\t\t\t\t\t\t\t\t\t\t\t\t{ return mAddressListVector.at(inIndex); }\n\tCAPropertyAddressList&\t\t\t\t\t\tGetItemByIndex(UInt32 inIndex)\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ return mAddressListVector.at(inIndex); }\n\tconst CAPropertyAddressList*\t\t\t\tGetItemByToken(void* inToken) const;\n\tCAPropertyAddressList*\t\t\t\t\t\tGetItemByToken(void* inToken);\n\tconst CAPropertyAddressList*\t\t\t\tGetItemByIntToken(uintptr_t inToken) const;\n\tCAPropertyAddressList*\t\t\t\t\t\tGetItemByIntToken(uintptr_t inToken);\n\t\n\tvoid\t\t\t\t\t\t\t\t\t\tAppendItem(const CAPropertyAddressList& inAddressList)\t\t\t\t\t\t\t\t{ mAddressListVector.push_back(inAddressList); }\n\tvoid\t\t\t\t\t\t\t\t\t\tEraseAllItems()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ mAddressListVector.clear(); }\n\t\n//  Implementation\nprivate:\n\ttypedef std::vector<CAPropertyAddressList>\tAddressListVector;\n\n\tAddressListVector\t\t\t\t\t\t\tmAddressListVector;\n\n};\n\ninline bool\tCAPropertyAddressListVector::HasAnyNonEmptyItems() const\n{\n\tbool theAnswer = false;\n\tfor(AddressListVector::const_iterator theIterator = mAddressListVector.begin(); !theAnswer && (theIterator != mAddressListVector.end()); ++theIterator)\n\t{\n\t\ttheAnswer = !theIterator->IsEmpty();\n\t}\n\treturn theAnswer;\n}\n\ninline bool\tCAPropertyAddressListVector::HasAnyItemsWithAddress(const AudioObjectPropertyAddress& inAddress) const\n{\n\tbool theAnswer = false;\n\tfor(AddressListVector::const_iterator theIterator = mAddressListVector.begin(); !theAnswer && (theIterator != mAddressListVector.end()); ++theIterator)\n\t{\n\t\ttheAnswer = theIterator->HasItem(inAddress);\n\t}\n\treturn theAnswer;\n}\n\ninline bool\tCAPropertyAddressListVector::HasAnyItemsWithExactAddress(const AudioObjectPropertyAddress& inAddress) const\n{\n\tbool theAnswer = false;\n\tfor(AddressListVector::const_iterator theIterator = mAddressListVector.begin(); !theAnswer && (theIterator != mAddressListVector.end()); ++theIterator)\n\t{\n\t\ttheAnswer = theIterator->HasExactItem(inAddress);\n\t}\n\treturn theAnswer;\n}\n\ninline const CAPropertyAddressList*\tCAPropertyAddressListVector::GetItemByToken(void* inToken) const\n{\n\tconst CAPropertyAddressList* theAnswer = NULL;\n\tbool wasFound = false;\n\tfor(AddressListVector::const_iterator theIterator = mAddressListVector.begin(); !wasFound && (theIterator != mAddressListVector.end()); ++theIterator)\n\t{\n\t\tif(theIterator->GetToken() == inToken)\n\t\t{\n\t\t\twasFound = true;\n\t\t\ttheAnswer = &(*theIterator);\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\ninline CAPropertyAddressList*\tCAPropertyAddressListVector::GetItemByToken(void* inToken)\n{\n\tCAPropertyAddressList* theAnswer = NULL;\n\tbool wasFound = false;\n\tfor(AddressListVector::iterator theIterator = mAddressListVector.begin(); !wasFound && (theIterator != mAddressListVector.end()); ++theIterator)\n\t{\n\t\tif(theIterator->GetToken() == inToken)\n\t\t{\n\t\t\twasFound = true;\n\t\t\ttheAnswer = &(*theIterator);\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\ninline const CAPropertyAddressList*\tCAPropertyAddressListVector::GetItemByIntToken(uintptr_t inToken) const\n{\n\tconst CAPropertyAddressList* theAnswer = NULL;\n\tbool wasFound = false;\n\tfor(AddressListVector::const_iterator theIterator = mAddressListVector.begin(); !wasFound && (theIterator != mAddressListVector.end()); ++theIterator)\n\t{\n\t\tif(theIterator->GetIntToken() == inToken)\n\t\t{\n\t\t\twasFound = true;\n\t\t\ttheAnswer = &(*theIterator);\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\ninline CAPropertyAddressList*\tCAPropertyAddressListVector::GetItemByIntToken(uintptr_t inToken)\n{\n\tCAPropertyAddressList* theAnswer = NULL;\n\tbool wasFound = false;\n\tfor(AddressListVector::iterator theIterator = mAddressListVector.begin(); !wasFound && (theIterator != mAddressListVector.end()); ++theIterator)\n\t{\n\t\tif(theIterator->GetIntToken() == inToken)\n\t\t{\n\t\t\twasFound = true;\n\t\t\ttheAnswer = &(*theIterator);\n\t\t}\n\t}\n\treturn theAnswer;\n}\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAReferenceCounted.h",
    "content": "/*\n     File: CAReferenceCounted.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAReferenceCounted_h__\n#define __CAReferenceCounted_h__\n\n#include \"CAAtomic.h\"\n\n// base class for reference-counted objects\nclass CAReferenceCounted {\npublic:\n\tCAReferenceCounted() : mRefCount(1) {}\n\t\n\tvoid\tretain() { CAAtomicIncrement32(&mRefCount); }\n\t\n\tvoid\trelease() \n\t\t\t{ \n\t\t\t\tSInt32 rc = CAAtomicDecrement32(&mRefCount);\n\t\t\t\tif (rc == 0) {\n\t\t\t\t\treleaseObject();\n\t\t\t\t}\n\t\t\t}\n\n\n\tclass Retainer {\n\tpublic:\n\t\tRetainer(CAReferenceCounted *obj) : mObject(obj) { mObject->retain(); }\n\t\t~Retainer() { mObject->release(); }\n\t\n\tprivate:\n\t\tCAReferenceCounted *\tmObject;\n\t};\n\nprotected:\n    virtual\t~CAReferenceCounted() { }\n\t\n\tvirtual void releaseObject () \n\t\t\t{ \n\t\t\t\tdelete this; \n\t\t\t}\n\n#if DEBUG\npublic:\n#endif\n\tSInt32\tGetReferenceCount() const { return mRefCount; }\nprivate:\n\tSInt32\t\tmRefCount;\n\n\tCAReferenceCounted(const CAReferenceCounted &a);\n\tCAReferenceCounted &operator=(const CAReferenceCounted &a);\n};\n\n\n#endif // __CAReferenceCounted_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CARingBuffer.cpp",
    "content": "/*\n     File: CARingBuffer.cpp\n Abstract: CARingBuffer.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CARingBuffer.h\"\n#include \"CABitOperations.h\"\n#include \"CAAutoDisposer.h\"\n#include \"CAAtomic.h\"\n\n#include <stdlib.h>\n#include <string.h>\n#include <algorithm>\n#include <libkern/OSAtomic.h>\n\nCARingBuffer::CARingBuffer() :\n\tmBuffers(NULL), mNumberChannels(0), mCapacityFrames(0), mCapacityBytes(0)\n{\n\n}\n\nCARingBuffer::~CARingBuffer()\n{\n\tDeallocate();\n}\n\n\nvoid\tCARingBuffer::Allocate(int nChannels, UInt32 bytesPerFrame, UInt32 capacityFrames)\n{\n\tDeallocate();\n\t\n\tcapacityFrames = NextPowerOfTwo(capacityFrames);\n\t\n\tmNumberChannels = nChannels;\n\tmBytesPerFrame = bytesPerFrame;\n\tmCapacityFrames = capacityFrames;\n\tmCapacityFramesMask = capacityFrames - 1;\n\tmCapacityBytes = bytesPerFrame * capacityFrames;\n\n\t// put everything in one memory allocation, first the pointers, then the deinterleaved channels\n\tUInt32 allocSize = (mCapacityBytes + sizeof(Byte *)) * nChannels;\n\tByte *p = (Byte *)CA_malloc(allocSize);\n\tmemset(p, 0, allocSize);\n\tmBuffers = (Byte **)p;\n\tp += nChannels * sizeof(Byte *);\n\tfor (int i = 0; i < nChannels; ++i) {\n\t\tmBuffers[i] = p;\n\t\tp += mCapacityBytes;\n\t}\n\t\n\tfor (UInt32 i = 0; i<kGeneralRingTimeBoundsQueueSize; ++i)\n\t{\n\t\tmTimeBoundsQueue[i].mStartTime = 0;\n\t\tmTimeBoundsQueue[i].mEndTime = 0;\n\t\tmTimeBoundsQueue[i].mUpdateCounter = 0;\n\t}\n\tmTimeBoundsQueuePtr = 0;\n}\n\nvoid\tCARingBuffer::Deallocate()\n{\n\tif (mBuffers) {\n\t\tfree(mBuffers);\n\t\tmBuffers = NULL;\n\t}\n\tmNumberChannels = 0;\n\tmCapacityBytes = 0;\n\tmCapacityFrames = 0;\n}\n\ninline void ZeroRange(Byte **buffers, int nchannels, int offset, int nbytes)\n{\n\twhile (--nchannels >= 0) {\n\t\tmemset(*buffers + offset, 0, nbytes);\n\t\t++buffers;\n\t}\n}\n\ninline void StoreABL(Byte **buffers, int destOffset, const AudioBufferList *abl, int srcOffset, int nbytes)\n{\n\tint nchannels = abl->mNumberBuffers;\n\tconst AudioBuffer *src = abl->mBuffers;\n\twhile (--nchannels >= 0) {\n\t\tif (srcOffset > (int)src->mDataByteSize) continue;\n\t\tmemcpy(*buffers + destOffset, (Byte *)src->mData + srcOffset, std::min(nbytes, (int)src->mDataByteSize - srcOffset));\n\t\t++buffers;\n\t\t++src;\n\t}\n}\n\ninline void FetchABL(AudioBufferList *abl, int destOffset, Byte **buffers, int srcOffset, int nbytes)\n{\n\tint nchannels = abl->mNumberBuffers;\n\tAudioBuffer *dest = abl->mBuffers;\n\twhile (--nchannels >= 0) {\n\t\tif (destOffset > (int)dest->mDataByteSize) continue;\n\t\tmemcpy((Byte *)dest->mData + destOffset, *buffers + srcOffset, std::min(nbytes, (int)dest->mDataByteSize - destOffset));\n\t\t++buffers;\n\t\t++dest;\n\t}\n}\n\ninline void ZeroABL(AudioBufferList *abl, int destOffset, int nbytes)\n{\n\tint nBuffers = abl->mNumberBuffers;\n\tAudioBuffer *dest = abl->mBuffers;\n\twhile (--nBuffers >= 0) {\n\t\tif (destOffset > (int)dest->mDataByteSize) continue;\n\t\tmemset((Byte *)dest->mData + destOffset, 0, std::min(nbytes, (int)dest->mDataByteSize - destOffset));\n\t\t++dest;\n\t}\n}\n\n\nCARingBufferError\tCARingBuffer::Store(const AudioBufferList *abl, UInt32 framesToWrite, SampleTime startWrite)\n{\n\tif (framesToWrite == 0)\n\t\treturn kCARingBufferError_OK;\n\t\n\tif (framesToWrite > mCapacityFrames)\n\t\treturn kCARingBufferError_TooMuch;\t\t// too big!\n\n\tSampleTime endWrite = startWrite + framesToWrite;\n\t\n\tif (startWrite < EndTime()) {\n\t\t// going backwards, throw everything out\n\t\tSetTimeBounds(startWrite, startWrite);\n\t} else if (endWrite - StartTime() <= mCapacityFrames) {\n\t\t// the buffer has not yet wrapped and will not need to\n\t} else {\n\t\t// advance the start time past the region we are about to overwrite\n\t\tSampleTime newStart = endWrite - mCapacityFrames;\t// one buffer of time behind where we're writing\n\t\tSampleTime newEnd = std::max(newStart, EndTime());\n\t\tSetTimeBounds(newStart, newEnd);\n\t}\n\t\n\t// write the new frames\n\tByte **buffers = mBuffers;\n\tint nchannels = mNumberChannels;\n\tint offset0, offset1, nbytes;\n\tSampleTime curEnd = EndTime();\n\t\n\tif (startWrite > curEnd) {\n\t\t// we are skipping some samples, so zero the range we are skipping\n\t\toffset0 = FrameOffset(curEnd);\n\t\toffset1 = FrameOffset(startWrite);\n\t\tif (offset0 < offset1)\n\t\t\tZeroRange(buffers, nchannels, offset0, offset1 - offset0);\n\t\telse {\n\t\t\tZeroRange(buffers, nchannels, offset0, mCapacityBytes - offset0);\n\t\t\tZeroRange(buffers, nchannels, 0, offset1);\n\t\t}\n\t\toffset0 = offset1;\n\t} else {\n\t\toffset0 = FrameOffset(startWrite);\n\t}\n\n\toffset1 = FrameOffset(endWrite);\n\tif (offset0 < offset1)\n\t\tStoreABL(buffers, offset0, abl, 0, offset1 - offset0);\n\telse {\n\t\tnbytes = mCapacityBytes - offset0;\n\t\tStoreABL(buffers, offset0, abl, 0, nbytes);\n\t\tStoreABL(buffers, 0, abl, nbytes, offset1);\n\t}\n\t\n\t// now update the end time\n\tSetTimeBounds(StartTime(), endWrite);\n\t\n\treturn kCARingBufferError_OK;\t// success\n}\n\nvoid\tCARingBuffer::SetTimeBounds(SampleTime startTime, SampleTime endTime)\n{\n\tUInt32 nextPtr = mTimeBoundsQueuePtr + 1;\n\tUInt32 index = nextPtr & kGeneralRingTimeBoundsQueueMask;\n\t\n\tmTimeBoundsQueue[index].mStartTime = startTime;\n\tmTimeBoundsQueue[index].mEndTime = endTime;\n\tmTimeBoundsQueue[index].mUpdateCounter = nextPtr;\n\tCAAtomicCompareAndSwap32Barrier(mTimeBoundsQueuePtr, mTimeBoundsQueuePtr + 1, (SInt32*)&mTimeBoundsQueuePtr);\n}\n\nCARingBufferError\tCARingBuffer::GetTimeBounds(SampleTime &startTime, SampleTime &endTime)\n{\n\tfor (int i=0; i<8; ++i) // fail after a few tries.\n\t{\n\t\tUInt32 curPtr = mTimeBoundsQueuePtr;\n\t\tUInt32 index = curPtr & kGeneralRingTimeBoundsQueueMask;\n\t\tCARingBuffer::TimeBounds* bounds = mTimeBoundsQueue + index;\n\t\t\n\t\tstartTime = bounds->mStartTime;\n\t\tendTime = bounds->mEndTime;\n\t\tUInt32 newPtr = bounds->mUpdateCounter;\n\t\t\n\t\tif (newPtr == curPtr) \n\t\t\treturn kCARingBufferError_OK;\n\t}\n\treturn kCARingBufferError_CPUOverload;\n}\n\nCARingBufferError\tCARingBuffer::ClipTimeBounds(SampleTime& startRead, SampleTime& endRead)\n{\n\tSampleTime startTime, endTime;\n\t\n\tCARingBufferError err = GetTimeBounds(startTime, endTime);\n\tif (err) return err;\n\t\n\tif (startRead > endTime || endRead < startTime) {\n\t\tendRead = startRead;\n\t\treturn kCARingBufferError_OK;\n\t}\n\t\n\tstartRead = std::max(startRead, startTime);\n\tendRead = std::min(endRead, endTime);\n\tendRead = std::max(endRead, startRead);\n\t\t\n\treturn kCARingBufferError_OK;\t// success\n}\n\nCARingBufferError\tCARingBuffer::Fetch(AudioBufferList *abl, UInt32 nFrames, SampleTime startRead)\n{\n\tif (nFrames == 0)\n\t\treturn kCARingBufferError_OK;\n\t\t\n\tstartRead = std::max(0LL, startRead);\n\t\n\tSampleTime endRead = startRead + nFrames;\n\n\tSampleTime startRead0 = startRead;\n\tSampleTime endRead0 = endRead;\n\n\tCARingBufferError err = ClipTimeBounds(startRead, endRead);\n\tif (err) return err;\n\n\tif (startRead == endRead) {\n\t\tZeroABL(abl, 0, nFrames * mBytesPerFrame);\n\t\treturn kCARingBufferError_OK;\n\t}\n\t\n\tSInt32 byteSize = (SInt32)((endRead - startRead) * mBytesPerFrame);\n\t\n\tSInt32 destStartByteOffset = std::max((SInt32)0, (SInt32)((startRead - startRead0) * mBytesPerFrame)); \n\t\t\n\tif (destStartByteOffset > 0) {\n\t\tZeroABL(abl, 0, std::min((SInt32)(nFrames * mBytesPerFrame), destStartByteOffset));\n\t}\n\n\tSInt32 destEndSize = std::max((SInt32)0, (SInt32)(endRead0 - endRead)); \n\tif (destEndSize > 0) {\n\t\tZeroABL(abl, destStartByteOffset + byteSize, destEndSize * mBytesPerFrame);\n\t}\n\t\n\tByte **buffers = mBuffers;\n\tint offset0 = FrameOffset(startRead);\n\tint offset1 = FrameOffset(endRead);\n\tint nbytes;\n\t\n\tif (offset0 < offset1) {\n\t\tnbytes = offset1 - offset0;\n\t\tFetchABL(abl, destStartByteOffset, buffers, offset0, nbytes);\n\t} else {\n\t\tnbytes = mCapacityBytes - offset0;\n\t\tFetchABL(abl, destStartByteOffset, buffers, offset0, nbytes);\n\t\tFetchABL(abl, destStartByteOffset + nbytes, buffers, 0, offset1);\n\t\tnbytes += offset1;\n\t}\n\n\tint nchannels = abl->mNumberBuffers;\n\tAudioBuffer *dest = abl->mBuffers;\n\twhile (--nchannels >= 0)\n\t{\n\t\tdest->mDataByteSize = nbytes;\n\t\tdest++;\n\t}\n\n\treturn noErr;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CARingBuffer.h",
    "content": "/*\n     File: CARingBuffer.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n\n#ifndef CARingBuffer_Header\n#define CARingBuffer_Header\n\nenum {\n\tkCARingBufferError_OK = 0,\n\tkCARingBufferError_TooMuch = 3, // fetch start time is earlier than buffer start time and fetch end time is later than buffer end time\n\tkCARingBufferError_CPUOverload = 4 // the reader is unable to get enough CPU cycles to capture a consistent snapshot of the time bounds\n};\n\ntypedef SInt32 CARingBufferError;\n\nconst UInt32 kGeneralRingTimeBoundsQueueSize = 32;\nconst UInt32 kGeneralRingTimeBoundsQueueMask = kGeneralRingTimeBoundsQueueSize - 1;\n\nclass CARingBuffer {\npublic:\n\ttypedef SInt64 SampleTime;\n\n\tCARingBuffer();\n\t~CARingBuffer();\n\t\n\tvoid\t\t\t\t\tAllocate(int nChannels, UInt32 bytesPerFrame, UInt32 capacityFrames);\n\t\t\t\t\t\t\t\t// capacityFrames will be rounded up to a power of 2\n\tvoid\t\t\t\t\tDeallocate();\n\t\n\tCARingBufferError\tStore(const AudioBufferList *abl, UInt32 nFrames, SampleTime frameNumber);\n\t\t\t\t\t\t\t// Copy nFrames of data into the ring buffer at the specified sample time.\n\t\t\t\t\t\t\t// The sample time should normally increase sequentially, though gaps\n\t\t\t\t\t\t\t// are filled with zeroes. A sufficiently large gap effectively empties\n\t\t\t\t\t\t\t// the buffer before storing the new data. \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// If frameNumber is less than the previous frame number, the behavior is undefined.\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Return false for failure (buffer not large enough).\n\t\t\t\t\n\tCARingBufferError\tFetch(AudioBufferList *abl, UInt32 nFrames, SampleTime frameNumber);\n\t\t\t\t\t\t\t\t// will alter mNumDataBytes of the buffers\n\t\n\tCARingBufferError\tGetTimeBounds(SampleTime &startTime, SampleTime &endTime);\n\t\nprotected:\n\n\tint\t\t\t\t\t\tFrameOffset(SampleTime frameNumber) { return (frameNumber & mCapacityFramesMask) * mBytesPerFrame; }\n\n\tCARingBufferError\t\tClipTimeBounds(SampleTime& startRead, SampleTime& endRead);\n\t\n\t// these should only be called from Store.\n\tSampleTime\t\t\t\tStartTime() const { return mTimeBoundsQueue[mTimeBoundsQueuePtr & kGeneralRingTimeBoundsQueueMask].mStartTime; }\n\tSampleTime\t\t\t\tEndTime()   const { return mTimeBoundsQueue[mTimeBoundsQueuePtr & kGeneralRingTimeBoundsQueueMask].mEndTime; }\n\tvoid\t\t\t\t\tSetTimeBounds(SampleTime startTime, SampleTime endTime);\n\t\nprotected:\n\tByte **\t\t\t\t\tmBuffers;\t\t\t\t// allocated in one chunk of memory\n\tint\t\t\t\t\t\tmNumberChannels;\n\tUInt32\t\t\t\t\tmBytesPerFrame;\t\t\t// within one deinterleaved channel\n\tUInt32\t\t\t\t\tmCapacityFrames;\t\t// per channel, must be a power of 2\n\tUInt32\t\t\t\t\tmCapacityFramesMask;\n\tUInt32\t\t\t\t\tmCapacityBytes;\t\t\t// per channel\n\t\n\t// range of valid sample time in the buffer\n\ttypedef struct {\n\t\tvolatile SampleTime\t\tmStartTime;\n\t\tvolatile SampleTime\t\tmEndTime;\n\t\tvolatile UInt32\t\t\tmUpdateCounter;\n\t} TimeBounds;\n\t\n\tCARingBuffer::TimeBounds mTimeBoundsQueue[kGeneralRingTimeBoundsQueueSize];\n\tUInt32 mTimeBoundsQueuePtr;\n};\n\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CASettingsStorage.cpp",
    "content": "/*\n     File: CASettingsStorage.cpp\n Abstract: CASettingsStorage.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CASettingsStorage.h\"\n\n//\tPublicUtility Includes\n#include \"CAAutoDisposer.h\"\n#include \"CACFArray.h\"\n#include \"CACFData.h\"\n#include \"CACFDictionary.h\"\n#include \"CACFDistributedNotification.h\"\n#include \"CACFNumber.h\"\n\n//\tStamdard Library Includes\n#include <string.h>\n#include <sys/fcntl.h>\n\n//==================================================================================================\n//\tCASettingsStorage\n//==================================================================================================\n\nCASettingsStorage::CASettingsStorage(const char* inSettingsFilePath, mode_t inSettingsFileAccessMode, CFPropertyListFormat inSettingsCacheFormat, bool inIsSingleProcessOnly, bool inIsReadOnly)\n:\n\tmSettingsFilePath(NULL),\n\tmSettingsFileAccessMode(inSettingsFileAccessMode),\n\tmSettingsCache(CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks)),\n\tmSettingsCacheFormat(inSettingsCacheFormat),\n\tmSettingsCacheTime(),\n\tmSettingsCacheForceRefresh(true),\n\tmIsSingleProcessOnly(inIsSingleProcessOnly),\n\tmIsReadOnly(inIsReadOnly)\n{\n\tsize_t theLength = strlen(inSettingsFilePath);\n\tmSettingsFilePath = new char[theLength + 2];\n\tstrlcpy(mSettingsFilePath, inSettingsFilePath, theLength + 2);\n\t\n\tmSettingsCacheTime.tv_sec = 0;\n\tmSettingsCacheTime.tv_nsec = 0;\n\t\n\tmSettingsCacheForceRefresh = true;\n}\n\nCASettingsStorage::~CASettingsStorage()\n{\n\tdelete[] mSettingsFilePath;\n\t\n\tif(mSettingsCache != NULL)\n\t{\n\t\tCFRelease(mSettingsCache);\n\t}\n}\n\nUInt32\tCASettingsStorage::GetNumberKeys() const\n{\n\t//\tmake sure our cache is up to date\n\tconst_cast<CASettingsStorage*>(this)->RefreshSettings();\n\n\treturn ToUInt32(CFDictionaryGetCount(mSettingsCache));\n}\n\nvoid\tCASettingsStorage::GetKeys(UInt32 inNumberKeys, UInt32& outNumberKeys, CFStringRef* outKeys) const\n{\n\t//\tmake sure our cache is up to date\n\tconst_cast<CASettingsStorage*>(this)->RefreshSettings();\n\n\tCFDictionaryGetKeysAndValues(mSettingsCache, reinterpret_cast<const void**>(outKeys), NULL);\n\toutNumberKeys = inNumberKeys;\n}\n\nvoid\tCASettingsStorage::CopyBoolValue(CFStringRef inKey, bool& outValue, bool inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = inDefaultValue;\n\t\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, NULL);\n\t\n\t//\tfor this type, NULL is an invalid value\n\tif(theValue != NULL)\n\t{\n\t\t//\tbools can be made from either CFBooleans or CFNumbers\n\t\tif(CFGetTypeID(theValue) == CFBooleanGetTypeID())\n\t\t{\n\t\t\t//\tget the return value from the CF object\n\t\t\toutValue = CFBooleanGetValue(static_cast<CFBooleanRef>(theValue));\n\t\t}\n\t\telse if(CFGetTypeID(theValue) == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tget the numeric value\n\t\t\tSInt32 theNumericValue = 0;\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &theNumericValue);\n\t\t\t\n\t\t\t//\tnon-zero indicates true\n\t\t\toutValue = theNumericValue != 0;\n\t\t}\n\t\t\n\t\t//\trelease the value since we aren't returning it\n\t\tCFRelease(theValue);\n\t}\n}\n\nvoid\tCASettingsStorage::CopySInt32Value(CFStringRef inKey, SInt32& outValue, SInt32 inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = inDefaultValue;\n\t\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, NULL);\n\t\n\t//\tfor this type, NULL is an invalid value\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tget the return value from the CF object\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &outValue);\n\t\t}\n\t\t\n\t\t//\trelease the value since we aren't returning it\n\t\tCFRelease(theValue);\n\t}\n}\n\nvoid\tCASettingsStorage::CopyUInt32Value(CFStringRef inKey, UInt32& outValue, UInt32 inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = inDefaultValue;\n\t\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, NULL);\n\t\n\t//\tfor this type, NULL is an invalid value\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tget the return value from the CF object\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt32Type, &outValue);\n\t\t}\n\t\t\n\t\t//\trelease the value since we aren't returning it\n\t\tCFRelease(theValue);\n\t}\n}\n\nvoid\tCASettingsStorage::CopySInt64Value(CFStringRef inKey, SInt64& outValue, SInt64 inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = inDefaultValue;\n\t\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, NULL);\n\t\n\t//\tfor this type, NULL is an invalid value\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tget the return value from the CF object\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt64Type, &outValue);\n\t\t}\n\t\t\n\t\t//\trelease the value since we aren't returning it\n\t\tCFRelease(theValue);\n\t}\n}\n\nvoid\tCASettingsStorage::CopyUInt64Value(CFStringRef inKey, UInt64& outValue, UInt64 inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = inDefaultValue;\n\t\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, NULL);\n\t\n\t//\tfor this type, NULL is an invalid value\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tget the return value from the CF object\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberSInt64Type, &outValue);\n\t\t}\n\t\t\n\t\t//\trelease the value since we aren't returning it\n\t\tCFRelease(theValue);\n\t}\n}\n\nvoid\tCASettingsStorage::CopyFloat32Value(CFStringRef inKey, Float32& outValue, Float32 inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = inDefaultValue;\n\t\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, NULL);\n\t\n\t//\tfor this type, NULL is an invalid value\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tget the return value from the CF object\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberFloat32Type, &outValue);\n\t\t}\n\t\t\n\t\t//\trelease the value since we aren't returning it\n\t\tCFRelease(theValue);\n\t}\n}\n\nvoid\tCASettingsStorage::CopyFloat64Value(CFStringRef inKey, Float64& outValue, Float64 inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = inDefaultValue;\n\t\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, NULL);\n\t\n\t//\tfor this type, NULL is an invalid value\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tget the return value from the CF object\n\t\t\tCFNumberGetValue(static_cast<CFNumberRef>(theValue), kCFNumberFloat64Type, &outValue);\n\t\t}\n\t\t\n\t\t//\trelease the value since we aren't returning it\n\t\tCFRelease(theValue);\n\t}\n}\n\nvoid\tCASettingsStorage::CopyNumberValue(CFStringRef inKey, CFNumberRef& outValue, CFNumberRef inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = NULL;\n\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, inDefaultValue);\n\t\n\t//\tfor this type, NULL is a valid value, but requires less work\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFNumberGetTypeID())\n\t\t{\n\t\t\t//\tset the return value to the CF object we are returning\n\t\t\toutValue = static_cast<CFNumberRef>(theValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\trelease the value since we aren't returning it\n\t\t\tCFRelease(theValue);\n\t\t\t\n\t\t\t//\tset the return value to the default value\n\t\t\toutValue = inDefaultValue;\n\t\t\t\n\t\t\t//\tand retain it\n\t\t\tCFRetain(outValue);\n\t\t}\n\t}\n}\n\t\nvoid\tCASettingsStorage::CopyStringValue(CFStringRef inKey, CFStringRef& outValue, CFStringRef inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = NULL;\n\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, inDefaultValue);\n\t\n\t//\tfor this type, NULL is a valid value, but requires less work\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFStringGetTypeID())\n\t\t{\n\t\t\t//\tset the return value to the CF object we are returning\n\t\t\toutValue = static_cast<CFStringRef>(theValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\trelease the value since we aren't returning it\n\t\t\tCFRelease(theValue);\n\t\t\t\n\t\t\t//\tset the return value to the default value\n\t\t\toutValue = inDefaultValue;\n\t\t\t\n\t\t\t//\tand retain it\n\t\t\tCFRetain(outValue);\n\t\t}\n\t}\n}\n\t\nvoid\tCASettingsStorage::CopyArrayValue(CFStringRef inKey, CFArrayRef& outValue, CFArrayRef inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = NULL;\n\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, inDefaultValue);\n\t\n\t//\tfor this type, NULL is a valid value, but requires less work\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFArrayGetTypeID())\n\t\t{\n\t\t\t//\tset the return value to the CF object we are returning\n\t\t\toutValue = static_cast<CFArrayRef>(theValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\trelease the value since we aren't returning it\n\t\t\tCFRelease(theValue);\n\t\t\t\n\t\t\t//\tset the return value to the default value\n\t\t\toutValue = inDefaultValue;\n\t\t\t\n\t\t\t//\tand retain it\n\t\t\tCFRetain(outValue);\n\t\t}\n\t}\n}\n\t\nvoid\tCASettingsStorage::CopyDictionaryValue(CFStringRef inKey, CFDictionaryRef& outValue, CFDictionaryRef inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = NULL;\n\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, inDefaultValue);\n\t\n\t//\tfor this type, NULL is a valid value, but requires less work\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFDictionaryGetTypeID())\n\t\t{\n\t\t\t//\tset the return value to the CF object we are returning\n\t\t\toutValue = static_cast<CFDictionaryRef>(theValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\trelease the value since we aren't returning it\n\t\t\tCFRelease(theValue);\n\t\t\t\n\t\t\t//\tset the return value to the default value\n\t\t\toutValue = inDefaultValue;\n\t\t\t\n\t\t\t//\tand retain it\n\t\t\tCFRetain(outValue);\n\t\t}\n\t}\n}\n\t\nvoid\tCASettingsStorage::CopyDataValue(CFStringRef inKey, CFDataRef& outValue, CFDataRef inDefaultValue) const\n{\n\t//\tinitialize the return value\n\toutValue = NULL;\n\n\t//\tget the raw value\n\tCFTypeRef theValue = NULL;\n\tCopyCFTypeValue(inKey, theValue, inDefaultValue);\n\t\n\t//\tfor this type, NULL is a valid value, but requires less work\n\tif(theValue != NULL)\n\t{\n\t\t//\tmake sure we are dealing with the right kind of CF object\n\t\tif(CFGetTypeID(theValue) == CFDataGetTypeID())\n\t\t{\n\t\t\t//\tset the return value to the CF object we are returning\n\t\t\toutValue = static_cast<CFDataRef>(theValue);\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\trelease the value since we aren't returning it\n\t\t\tCFRelease(theValue);\n\t\t\t\n\t\t\t//\tset the return value to the default value\n\t\t\toutValue = inDefaultValue;\n\t\t\t\n\t\t\t//\tand retain it\n\t\t\tCFRetain(outValue);\n\t\t}\n\t}\n}\n\nvoid\tCASettingsStorage::CopyCFTypeValue(CFStringRef inKey, CFTypeRef& outValue, CFTypeRef inDefaultValue) const\n{\n\t//\tmake sure our cache is up to date\n\tconst_cast<CASettingsStorage*>(this)->RefreshSettings();\n\n\t//\tcheck to see if we have a value for the given key\n\tif(!CFDictionaryGetValueIfPresent(mSettingsCache, inKey, &outValue))\n\t{\n\t\t//\tthe key wasn't in the cache, so return the default value\n\t\toutValue = inDefaultValue;\n\t}\n\t\t\n\t//\tmake sure we retain the return value\n\tif(outValue != NULL)\n\t{\n\t\tCFRetain(outValue);\n\t}\n}\n\nvoid\tCASettingsStorage::SetSInt32Value(CFStringRef inKey, SInt32 inValue)\n{\n\tCACFNumber theValue(inValue);\n\tSetCFTypeValue(inKey, theValue.GetCFNumber());\n}\n\nvoid\tCASettingsStorage::SetUInt32Value(CFStringRef inKey, UInt32 inValue)\n{\n\tCACFNumber theValue(inValue);\n\tSetCFTypeValue(inKey, theValue.GetCFNumber());\n}\n\nvoid\tCASettingsStorage::SetSInt64Value(CFStringRef inKey, SInt64 inValue)\n{\n\tCACFNumber theValue(inValue);\n\tSetCFTypeValue(inKey, theValue.GetCFNumber());\n}\n\nvoid\tCASettingsStorage::SetUInt64Value(CFStringRef inKey, UInt64 inValue)\n{\n\tCACFNumber theValue(inValue);\n\tSetCFTypeValue(inKey, theValue.GetCFNumber());\n}\n\nvoid\tCASettingsStorage::SetFloat32Value(CFStringRef inKey, Float32 inValue)\n{\n\tCACFNumber theValue(inValue);\n\tSetCFTypeValue(inKey, theValue.GetCFNumber());\n}\n\nvoid\tCASettingsStorage::SetFloat64Value(CFStringRef inKey, Float64 inValue)\n{\n\tCACFNumber theValue(inValue);\n\tSetCFTypeValue(inKey, theValue.GetCFNumber());\n}\n\nvoid\tCASettingsStorage::SetNumberValue(CFStringRef inKey, CFNumberRef inValue)\n{\n\tSetCFTypeValue(inKey, inValue);\n}\n\nvoid\tCASettingsStorage::SetStringValue(CFStringRef inKey, CFStringRef inValue)\n{\n\tSetCFTypeValue(inKey, inValue);\n}\n\nvoid\tCASettingsStorage::SetArrayValue(CFStringRef inKey, CFArrayRef inValue)\n{\n\tSetCFTypeValue(inKey, inValue);\n}\n\nvoid\tCASettingsStorage::SetDictionaryValue(CFStringRef inKey, CFDictionaryRef inValue)\n{\n\tSetCFTypeValue(inKey, inValue);\n}\n\nvoid\tCASettingsStorage::SetDataValue(CFStringRef inKey, CFDataRef inValue)\n{\n\tSetCFTypeValue(inKey, inValue);\n}\n\nvoid\tCASettingsStorage::SetCFTypeValue(CFStringRef inKey, CFTypeRef inValue)\n{\n\t//\tmake sure our cache is up to date\n\tRefreshSettings();\n\t\n\t//\tadd the new key/value to the dictionary\n\tCFDictionarySetValue(mSettingsCache, inKey, inValue);\n\t\n\t//\twrite the settings to the file\n\tSaveSettings();\n}\n\nvoid\tCASettingsStorage::RemoveValue(CFStringRef inKey)\n{\n\t//\tmake sure our cache is up to date\n\tRefreshSettings();\n\t\n\t//\tremove the given key\n\tCFDictionaryRemoveValue(mSettingsCache, inKey);\n\t\n\t//\twrite the settings to the file\n\tSaveSettings();\n}\n\nvoid\tCASettingsStorage::RemoveAllValues()\n{\n\t//\tmake sure our cache is up to date\n\tRefreshSettings();\n\t\n\t//\tremove the given key\n\tCFDictionaryRemoveAllValues(mSettingsCache);\n\t\n\t//\twrite the settings to the file\n\tSaveSettings();\n}\n\nvoid\tCASettingsStorage::SendNotification(CFStringRef inName, CFDictionaryRef inData, bool inPostToAllSessions) const\n{\n\tCACFDistributedNotification::PostNotification(inName, inData, inPostToAllSessions);\n}\n\nvoid\tCASettingsStorage::ForceRefresh()\n{\n\tmSettingsCacheForceRefresh = true;\n}\n\ninline bool\toperator<(const struct timespec& inX, const struct timespec& inY)\n{\n\treturn ((inX.tv_sec < inY.tv_sec) || ((inX.tv_sec == inY.tv_sec) && (inX.tv_nsec < inY.tv_nsec)));\n}\n\nvoid\tCASettingsStorage::RefreshSettings()\n{\n\t//\tif this storage is only supporting a single process, there is no need to hit the disk unless\n\t//\trequired to by it being the first time or if the refresh is specifically forced for some reason\n\tif(!mIsSingleProcessOnly || (mSettingsCache == NULL) || ((mSettingsCacheTime.tv_sec == 0) && (mSettingsCacheTime.tv_nsec == 0)) || mSettingsCacheForceRefresh)\n\t{\n\t\t//\tfirst, we need to stat the file to check the mod date, this has the side effect of also\n\t\t//\ttelling us if the file exisits\n\t\tstruct stat theFileInfo;\n\t\tint theStatError = stat(mSettingsFilePath, &theFileInfo);\n\t\t\n\t\t//\twe use this boolean to make error recovery easier since we need a case for when there's no file anyway\n\t\tbool theSettingsWereCached = false;\n\t\tbool theSettingsNeedSaving = true;\n\t\t\n\t\tif(theStatError == 0)\n\t\t{\n\t\t\t//\tstat says there is something there, only have to do work if we either don't have a cache or the cache is out of date\n\t\t\tif((mSettingsCache == NULL) || (mSettingsCacheTime < theFileInfo.st_mtimespec) || mSettingsCacheForceRefresh)\n\t\t\t{\n\t\t\t\t//\topen the file\n\t\t\t\tFILE* theFile = fopen(mSettingsFilePath, \"r\");\n\t\t\t\tif(theFile != NULL)\n\t\t\t\t{\n\t\t\t\t\t//\tlock the file (this call blocks until the lock is taken)\n\t\t\t\t\tint theError = flock(fileno(theFile), LOCK_EX);\n\t\t\t\t\tif(theError == 0)\n\t\t\t\t\t{\n\t\t\t\t\t\t//\tget the length of the file\n\t\t\t\t\t\tfseek(theFile, 0, SEEK_END);\n\t\t\t\t\t\tsize_t theFileLength = static_cast<size_t>(ftell(theFile));\n\t\t\t\t\t\tfseek(theFile, 0, SEEK_SET);\n\t\t\t\t\t\t\n\t\t\t\t\t\tif(theFileLength > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t//\tallocate a block of memory to hold the data in the file\n\t\t\t\t\t\t\tCAAutoFree<Byte> theRawFileData(theFileLength);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\tread all the data in\n\t\t\t\t\t\t\tfread(static_cast<Byte*>(theRawFileData), theFileLength, 1, theFile);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\trelease the lock\n\t\t\t\t\t\t\tflock(fileno(theFile), LOCK_UN);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\tput it into a CFData object\n\t\t\t\t\t\t\tCACFData theRawFileDataCFData(static_cast<Byte*>(theRawFileData), static_cast<UInt32>(theFileLength));\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\tget rid of the existing cache\n\t\t\t\t\t\t\tif(mSettingsCache != NULL)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tCFRelease(mSettingsCache);\n\t\t\t\t\t\t\t\tmSettingsCache = NULL;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\tparse the data as a property list\n\t\t\t\t\t\t\tmSettingsCache = (CFMutableDictionaryRef)CFPropertyListCreateWithData(NULL, theRawFileDataCFData.GetCFData(), kCFPropertyListMutableContainersAndLeaves, NULL, NULL);\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t//\tcheck to be sure we parsed a plist out of the file\n\t\t\t\t\t\t\tif(mSettingsCache != NULL)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t//\tsave the date of the cache\n\t\t\t\t\t\t\t\tmSettingsCacheTime = theFileInfo.st_mtimespec;\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t//\tmark that we're done\n\t\t\t\t\t\t\t\ttheSettingsWereCached = true;\n\t\t\t\t\t\t\t\ttheSettingsNeedSaving = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//\tclose the file\n\t\t\t\t\tfclose(theFile);\n\t\t\t\t\tmSettingsCacheForceRefresh = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t//\tnothing to do since the file was older than the cached data\n\t\t\t\ttheSettingsNeedSaving = false;\n\t\t\t\ttheSettingsWereCached = true;\n\t\t\t}\n\t\t}\n\t\t\n\t\t//\tif there was a failure, we need to clean up \n\t\tif((theStatError != 0) || theSettingsNeedSaving || !theSettingsWereCached)\n\t\t{\n\t\t\t//\twe get here if either there isn't a file or something wacky happenned while parsing it\n\t\t\t//\tso, make sure we have a valid cache dictionary\n\t\t\tif(mSettingsCache == NULL)\n\t\t\t{\n\t\t\t\tmSettingsCache = CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\t\t\t}\n\t\t\t\n\t\t\tmSettingsCacheTime.tv_sec = 0;\n\t\t\tmSettingsCacheTime.tv_nsec = 0;\n\t\t\t\n\t\t\tif((theStatError != 0) || theSettingsNeedSaving)\n\t\t\t{\n\t\t\t\tSaveSettings();\n\t\t\t}\n\t\t}\n\t}\n}\n\nvoid\tCASettingsStorage::SaveSettings()\n{\n\tif(!mIsReadOnly && (mSettingsCache != NULL))\n\t{\n\t\t//\tmake a CFData that contains the new settings\n\t\tCACFData theNewRawPrefsCFData(CFPropertyListCreateData(NULL, mSettingsCache, mSettingsCacheFormat, 0, NULL), true);\n\t\t\n\t\t//\topen the file for writing\n\t\tFILE* theFile = fopen(mSettingsFilePath, \"w+\");\n\t\tif(theFile != NULL)\n\t\t{\n\t\t\t//\tlock the file (this call blocks until the lock is taken)\n\t\t\tint theError = flock(fileno(theFile), LOCK_EX);\n\t\t\tif(theError == 0)\n\t\t\t{\n\t\t\t\t//\tset the file access mode if necessary\n\t\t\t\tif(mSettingsFileAccessMode != 0)\n\t\t\t\t{\n\t\t\t\t\tfchmod(fileno(theFile), mSettingsFileAccessMode);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t//\twrite the data\n\t\t\t\tfwrite(theNewRawPrefsCFData.GetDataPtr(), theNewRawPrefsCFData.GetSize(), 1, theFile);\n\t\t\t\t\n\t\t\t\t//\tflush the file to be sure it is all on disk\n\t\t\t\tfflush(theFile);\n\t\t\t\t\n\t\t\t\t//\trelease the lock\n\t\t\t\tflock(fileno(theFile), LOCK_UN);\n\t\t\t\n\t\t\t\t//\tclose the file\n\t\t\t\tfclose(theFile);\n\t\t\t\t\n\t\t\t\t//\tstat the file to get the mod date\n\t\t\t\tstruct stat theFileInfo;\n\t\t\t\tstat(mSettingsFilePath, &theFileInfo);\n\t\t\t\t\n\t\t\t\t//\tsave the mod date\n\t\t\t\tmSettingsCacheTime = theFileInfo.st_mtimespec;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t//\tclose the file\n\t\t\t\tfclose(theFile);\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CASettingsStorage.h",
    "content": "/*\n     File: CASettingsStorage.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CASettingsStorage_h__)\n#define __CASettingsStorage_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSystem Includes\n#include <CoreAudio/CoreAudioTypes.h>\n#include <CoreFoundation/CoreFoundation.h>\n\n//\tStamdard Library Includes\n#include <stdio.h>\n#include <sys/stat.h>\n\n//==================================================================================================\n//\tCASettingsStorage\n//==================================================================================================\n\nclass CASettingsStorage\n{\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\tCASettingsStorage(const char* inSettingsFilePath, mode_t inSettingsFileAccessMode = 0, CFPropertyListFormat inSettingsCacheFormat = kCFPropertyListXMLFormat_v1_0, bool inIsSingleProcessOnly = false, bool inIsReadOnly = false);\n\t\t\t\t\t\t\t~CASettingsStorage();\n\n//\tOperations\npublic:\n\tUInt32\t\t\t\t\tGetNumberKeys() const;\n\tvoid\t\t\t\t\tGetKeys(UInt32 inNumberKeys, UInt32& outNumberKeys, CFStringRef* outKeys) const;\n\n\tvoid\t\t\t\t\tCopyBoolValue(const CFStringRef inKey, bool& outValue, bool inDefaultValue = false) const;\n\tvoid\t\t\t\t\tCopySInt32Value(const CFStringRef inKey, SInt32& outValue, SInt32 inDefaultValue = 0) const;\n\tvoid\t\t\t\t\tCopyUInt32Value(const CFStringRef inKey, UInt32& outValue, UInt32 inDefaultValue = 0) const;\n\tvoid\t\t\t\t\tCopySInt64Value(const CFStringRef inKey, SInt64& outValue, SInt64 inDefaultValue = 0) const;\n\tvoid\t\t\t\t\tCopyUInt64Value(const CFStringRef inKey, UInt64& outValue, UInt64 inDefaultValue = 0) const;\n\tvoid\t\t\t\t\tCopyFloat32Value(const CFStringRef inKey, Float32& outValue, Float32 inDefaultValue = 0) const;\n\tvoid\t\t\t\t\tCopyFloat64Value(const CFStringRef inKey, Float64& outValue, Float64 inDefaultValue = 0) const;\n\tvoid\t\t\t\t\tCopyNumberValue(const CFStringRef inKey, CFNumberRef& outValue, CFNumberRef inDefaultValue = NULL) const;\t\n\tvoid\t\t\t\t\tCopyStringValue(const CFStringRef inKey, CFStringRef& outValue, CFStringRef inDefaultValue = NULL) const;\t\n\tvoid\t\t\t\t\tCopyArrayValue(const CFStringRef inKey, CFArrayRef& outValue, CFArrayRef inDefaultValue = NULL) const;\t\n\tvoid\t\t\t\t\tCopyDictionaryValue(const CFStringRef inKey, CFDictionaryRef& outValue, CFDictionaryRef inDefaultValue = NULL) const;\t\n\tvoid\t\t\t\t\tCopyDataValue(const CFStringRef inKey, CFDataRef& outValue, CFDataRef inDefaultValue = NULL) const;\n\tvoid\t\t\t\t\tCopyCFTypeValue(const CFStringRef inKey, CFTypeRef& outValue, CFTypeRef inDefaultValue = NULL) const;\n\t\n\tvoid\t\t\t\t\tSetSInt32Value(const CFStringRef inKey, SInt32 inValue);\n\tvoid\t\t\t\t\tSetUInt32Value(const CFStringRef inKey, UInt32 inValue);\n\tvoid\t\t\t\t\tSetSInt64Value(const CFStringRef inKey, SInt64 inValue);\n\tvoid\t\t\t\t\tSetUInt64Value(const CFStringRef inKey, UInt64 inValue);\n\tvoid\t\t\t\t\tSetFloat32Value(const CFStringRef inKey, Float32 inValue);\n\tvoid\t\t\t\t\tSetFloat64Value(const CFStringRef inKey, Float64 inValue);\n\tvoid\t\t\t\t\tSetNumberValue(const CFStringRef inKey, const CFNumberRef inValue);\n\tvoid\t\t\t\t\tSetStringValue(const CFStringRef inKey, const CFStringRef inValue);\n\tvoid\t\t\t\t\tSetArrayValue(const CFStringRef inKey, const CFArrayRef inValue);\n\tvoid\t\t\t\t\tSetDictionaryValue(const CFStringRef inKey, const CFDictionaryRef inValue);\n\tvoid\t\t\t\t\tSetDataValue(const CFStringRef inKey, const CFDataRef inValue);\n\tvoid\t\t\t\t\tSetCFTypeValue(const CFStringRef inKey, const CFTypeRef inValue);\n\t\n\tvoid\t\t\t\t\tRemoveValue(const CFStringRef inKey);\n\tvoid\t\t\t\t\tRemoveAllValues();\n\t\n\tvoid\t\t\t\t\tSendNotification(const CFStringRef inName, CFDictionaryRef inData = NULL, bool inPostToAllSessions = true) const;\n\tvoid\t\t\t\t\tForceRefresh();\n\n//\tImplementation\nprivate:\n\tvoid\t\t\t\t\tRefreshSettings();\n\tvoid\t\t\t\t\tSaveSettings();\n\n\tchar*\t\t\t\t\tmSettingsFilePath;\n\tmode_t\t\t\t\t\tmSettingsFileAccessMode;\n\tCFMutableDictionaryRef\tmSettingsCache;\n\tCFPropertyListFormat\tmSettingsCacheFormat;\n\tstruct timespec\t\t\tmSettingsCacheTime;\n\tbool\t\t\t\t\tmSettingsCacheForceRefresh;\n\tbool\t\t\t\t\tmIsSingleProcessOnly;\n\tbool\t\t\t\t\tmIsReadOnly;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CASharedLibrary.cpp",
    "content": "/*\n     File: CASharedLibrary.cpp\n Abstract: CASharedLibrary.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CASharedLibrary.h\"\n\n//#define\tCASharedLibrary_Use_DYLD\t1\n#if\tCASharedLibrary_Use_DYLD\n\t#include <mach-o/dyld.h>\n#else\n\t#include <dlfcn.h>\n\t#include <stddef.h>\n#endif\n\n//=============================================================================\n//\tCASharedLibrary\n//=============================================================================\n\nvoid*\tCASharedLibrary::LoadLibraryAndGetRoutineAddress(const char* inRoutineName, const char* /*inLibraryName*/, const char* inLibraryPath)\n{\n\tvoid* theRoutine = 0;\n\n#if\tCASharedLibrary_Use_DYLD\n\tconst struct mach_header* theImage = NSAddImage(inLibraryPath, NSADDIMAGE_OPTION_RETURN_ON_ERROR);\n\tif(theImage != 0)\n\t{\n\t\tNSSymbol theSymbol = NSLookupSymbolInImage(theImage, inRoutineName, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND);\n\t\tif(theSymbol != 0)\n\t\t{\n\t\t\ttheRoutine = NSAddressOfSymbol(theSymbol);\n\t\t}\n\t}\n#else\n\tvoid* theImage = dlopen(inLibraryPath, RTLD_LAZY);\n\tif(theImage != NULL)\n\t{\n\t\t//\twe assume that all routine names passed here have a leading underscore which gets shaved\n\t\t//\toff when passed to dlsym\n\t\ttheRoutine = dlsym(theImage, &(inRoutineName[1]));\n\t}\n\t\n#endif\n\n\treturn theRoutine;\n}\n\nvoid*\tCASharedLibrary::GetRoutineAddressIfLibraryLoaded(const char* inRoutineName, const char* /*inLibraryName*/, const char* inLibraryPath)\n{\n\tvoid* theRoutine = 0;\n\t\t\n#if\tCASharedLibrary_Use_DYLD\n\tconst struct mach_header* theImage = NSAddImage(inLibraryPath, NSADDIMAGE_OPTION_RETURN_ONLY_IF_LOADED);\n\tif(theImage != 0)\n\t{\n\t\tNSSymbol theSymbol = NSLookupSymbolInImage(theImage, inRoutineName, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND);\n\t\tif(theSymbol != 0)\n\t\t{\n\t\t\ttheRoutine = NSAddressOfSymbol(theSymbol);\n\t\t}\n\t}\n#else\n\tvoid* theImage = dlopen(inLibraryPath, RTLD_LAZY | RTLD_NOLOAD);\n\tif(theImage != NULL)\n\t{\n\t\t//\twe assume that all routine names passed here have a leading underscore which gets shaved\n\t\t//\toff when passed to dlsym\n\t\ttheRoutine = dlsym(theImage, &(inRoutineName[1]));\n\t}\n#endif\n\n\treturn theRoutine;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CASharedLibrary.h",
    "content": "/*\n     File: CASharedLibrary.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CASharedLibrary_h__)\n#define __CASharedLibrary_h__\n\n//=============================================================================\n//\tCASharedLibrary\n//=============================================================================\n\nclass CASharedLibrary\n{\n\n//\tSymbol Operations\npublic:\n\tstatic void*\tLoadLibraryAndGetRoutineAddress(const char* inRoutineName, const char* inLibraryName, const char* inLibraryPath);\n\tstatic void*\tGetRoutineAddressIfLibraryLoaded(const char* inRoutineName, const char* inLibraryName, const char* inLibraryPath);\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CASpectralProcessor.cpp",
    "content": "/*\n     File: CASpectralProcessor.cpp\n Abstract: CASpectralProcessor.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n \n//#include \"AudioFormulas.h\"\n#include \"CASpectralProcessor.h\"\n#include \"CABitOperations.h\"\n\n\n#include <Accelerate/Accelerate.h>\n\n\n#define OFFSETOF(class, field)((size_t)&((class*)0)->field)\n\nCASpectralProcessor::CASpectralProcessor(UInt32 inFFTSize, UInt32 inHopSize, UInt32 inNumChannels, UInt32 inMaxFrames)\n\t: mFFTSize(inFFTSize), mHopSize(inHopSize), mNumChannels(inNumChannels), mMaxFrames(inMaxFrames),\n\tmLog2FFTSize(Log2Ceil(mFFTSize)), \n\tmFFTMask(mFFTSize - 1),\n\tmFFTByteSize(mFFTSize * sizeof(Float32)),\n\tmIOBufSize(NextPowerOfTwo(mFFTSize + mMaxFrames)),\n\tmIOMask(mIOBufSize - 1),\n\tmInputSize(0),\n\tmInputPos(0), mOutputPos(-mFFTSize & mIOMask), \n\tmInFFTPos(0), mOutFFTPos(0),\n\tmSpectralFunction(0), mUserData(0)\n{\n\tmWindow.alloc(mFFTSize, false);\n\tSineWindow(); // set default window.\n\t\n\tmChannels.alloc(mNumChannels);\n\tmSpectralBufferList.allocBytes(OFFSETOF(SpectralBufferList, mDSPSplitComplex[mNumChannels]), true);\n\tmSpectralBufferList->mNumberSpectra = mNumChannels;\n\tfor (UInt32 i = 0; i < mNumChannels; ++i) \n\t{\n\t\tmChannels[i].mInputBuf.alloc(mIOBufSize, true);\n\t\tmChannels[i].mOutputBuf.alloc(mIOBufSize, true);\n\t\tmChannels[i].mFFTBuf.alloc(mFFTSize, true);\n\t\tmChannels[i].mSplitFFTBuf.alloc(mFFTSize, true);\n\t\tmSpectralBufferList->mDSPSplitComplex[i].realp = mChannels[i].mSplitFFTBuf();\n\t\tmSpectralBufferList->mDSPSplitComplex[i].imagp = mChannels[i].mSplitFFTBuf() + (mFFTSize >> 1);\n\t}\n\n\tmFFTSetup = vDSP_create_fftsetup (mLog2FFTSize, FFT_RADIX2);\n\t\n}\n\nCASpectralProcessor::~CASpectralProcessor()\n{\n\tmWindow.free();\n\tmChannels.free();\n\tmSpectralBufferList.free();\n\tvDSP_destroy_fftsetup(mFFTSetup);\n}\n\nvoid CASpectralProcessor::Reset()\n{\n\tmInputPos = 0;\n\tmOutputPos = -mFFTSize & mIOMask;\n\tmInFFTPos = 0;\n\tmOutFFTPos = 0;\n\t\n\tfor (UInt32 i = 0; i < mNumChannels; ++i) \n\t{\n\t\tmemset(mChannels[i].mInputBuf(), 0, mIOBufSize * sizeof(Float32));\n\t\tmemset(mChannels[i].mOutputBuf(), 0, mIOBufSize * sizeof(Float32));\n\t\tmemset(mChannels[i].mFFTBuf(), 0, mFFTSize * sizeof(Float32));\n\t}\n}\n\nconst double two_pi = 2. * M_PI;\n\nvoid CASpectralProcessor::HanningWindow()\n{ \n\t// this is also vector optimized\n\n\tdouble w = two_pi / (double)(mFFTSize - 1);\n\tfor (UInt32 i = 0; i < mFFTSize; ++i)\n\t{\n\t\tmWindow[i] = (0.5 - 0.5 * cos(w * (double)i));\t\n\t}\n}\n\nvoid CASpectralProcessor::SineWindow()\n{\n\tdouble w = M_PI / (double)(mFFTSize - 1);\n\tfor (UInt32 i = 0; i < mFFTSize; ++i)\n\t{\n\t\tmWindow[i] = sin(w * (double)i);\n\t}\n}\n\nvoid CASpectralProcessor::Process(UInt32 inNumFrames, AudioBufferList* inInput, AudioBufferList* outOutput)\n{\n\t// copy from buffer list to input buffer\n\tCopyInput(inNumFrames, inInput);\n\t\n\t// if enough input to process, then process.\n\twhile (mInputSize >= mFFTSize) \n\t{\n\t\tCopyInputToFFT(); // copy from input buffer to fft buffer\n\t\tDoWindowing();\n\t\tDoFwdFFT();\n\t\tProcessSpectrum(mFFTSize, mSpectralBufferList());\n\t\tDoInvFFT();\n\t\tDoWindowing();\n\t\tOverlapAddOutput();\n\t}\n\n\t// copy from output buffer to buffer list\n\tCopyOutput(inNumFrames, outOutput);\n}\n\nvoid CASpectralProcessor::DoWindowing()\n{\n\tFloat32 *win = mWindow();\n\tif (!win) return;\n\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\tFloat32 *x = mChannels[i].mFFTBuf();\n\t\tvDSP_vmul(x, 1, win, 1, x, 1, mFFTSize);\n\t}\n\t//printf(\"DoWindowing %g %g\\n\", mChannels[0].mFFTBuf()[0], mChannels[0].mFFTBuf()[200]);\n}\n\n\n\nvoid CASpectralProcessor::CopyInput(UInt32 inNumFrames, AudioBufferList* inInput)\n{\n\tUInt32 numBytes = inNumFrames * sizeof(Float32);\n\tUInt32 firstPart = mIOBufSize - mInputPos;\n\t\n\n\tif (firstPart < inNumFrames) {\n\t\tUInt32 firstPartBytes = firstPart * sizeof(Float32);\n\t\tUInt32 secondPartBytes = numBytes - firstPartBytes;\n\t\tfor (UInt32 i=0; i<mNumChannels; ++i) {\t\t\n\t\t\tmemcpy(mChannels[i].mInputBuf + mInputPos, inInput->mBuffers[i].mData, firstPartBytes);\n\t\t\tmemcpy(mChannels[i].mInputBuf, (UInt8*)inInput->mBuffers[i].mData + firstPartBytes, secondPartBytes);\n\t\t}\n\t} else {\n\t\tUInt32 numBytes = inNumFrames * sizeof(Float32);\n\t\tfor (UInt32 i=0; i<mNumChannels; ++i) {\t\t\n\t\t\tmemcpy(mChannels[i].mInputBuf + mInputPos, inInput->mBuffers[i].mData, numBytes);\n\t\t}\n\t}\n\t//printf(\"CopyInput %g %g\\n\", mChannels[0].mInputBuf[mInputPos], mChannels[0].mInputBuf[(mInputPos + 200) & mIOMask]);\n\t//printf(\"CopyInput mInputPos %u   mIOBufSize %u\\n\", (unsigned)mInputPos, (unsigned)mIOBufSize);\n\tmInputSize += inNumFrames;\n\tmInputPos = (mInputPos + inNumFrames) & mIOMask;\n}\n\nvoid CASpectralProcessor::CopyOutput(UInt32 inNumFrames, AudioBufferList* outOutput)\n{\n\t//printf(\"->CopyOutput %g %g\\n\", mChannels[0].mOutputBuf[mOutputPos], mChannels[0].mOutputBuf[(mOutputPos + 200) & mIOMask]);\n\t//printf(\"CopyOutput mOutputPos %u\\n\", (unsigned)mOutputPos);\n\tUInt32 numBytes = inNumFrames * sizeof(Float32);\n\tUInt32 firstPart = mIOBufSize - mOutputPos;\n\tif (firstPart < inNumFrames) {\n\t\tUInt32 firstPartBytes = firstPart * sizeof(Float32);\n\t\tUInt32 secondPartBytes = numBytes - firstPartBytes;\n\t\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\t\tmemcpy(outOutput->mBuffers[i].mData, mChannels[i].mOutputBuf + mOutputPos, firstPartBytes);\n\t\t\tmemcpy((UInt8*)outOutput->mBuffers[i].mData + firstPartBytes, mChannels[i].mOutputBuf, secondPartBytes);\n\t\t\tmemset(mChannels[i].mOutputBuf + mOutputPos, 0, firstPartBytes);\n\t\t\tmemset(mChannels[i].mOutputBuf, 0, secondPartBytes);\n\t\t}\n\t} else {\n\t\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\t\tmemcpy(outOutput->mBuffers[i].mData, mChannels[i].mOutputBuf + mOutputPos, numBytes);\n\t\t\tmemset(mChannels[i].mOutputBuf + mOutputPos, 0, numBytes);\n\t\t}\n\t}\n\t//printf(\"<-CopyOutput %g %g\\n\", ((Float32*)outOutput->mBuffers[0].mData)[0], ((Float32*)outOutput->mBuffers[0].mData)[200]);\n\tmOutputPos = (mOutputPos + inNumFrames) & mIOMask;\n}\n\nvoid CASpectralProcessor::PrintSpectralBufferList()\n{\n\tUInt32 half = mFFTSize >> 1;\n\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\tDSPSplitComplex\t&freqData = mSpectralBufferList->mDSPSplitComplex[i];\n\t\n\t\tfor (UInt32 j=0; j<half; j++){\n\t\t\tprintf(\" bin[%d]: %lf + %lfi\\n\", (int) j, freqData.realp[j], freqData.imagp[j]);\n\t\t}\n\t}\n}\n\n\nvoid CASpectralProcessor::CopyInputToFFT()\n{\n\t//printf(\"CopyInputToFFT mInFFTPos %u\\n\", (unsigned)mInFFTPos);\n\tUInt32 firstPart = mIOBufSize - mInFFTPos;\n\tUInt32 firstPartBytes = firstPart * sizeof(Float32);\n\tif (firstPartBytes < mFFTByteSize) {\n\t\tUInt32 secondPartBytes = mFFTByteSize - firstPartBytes;\n\t\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\t\tmemcpy(mChannels[i].mFFTBuf(), mChannels[i].mInputBuf() + mInFFTPos, firstPartBytes);\n\t\t\tmemcpy((UInt8*)mChannels[i].mFFTBuf() + firstPartBytes, mChannels[i].mInputBuf(), secondPartBytes);\n\t\t}\n\t} else {\n\t\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\t\tmemcpy(mChannels[i].mFFTBuf(), mChannels[i].mInputBuf() + mInFFTPos, mFFTByteSize);\n\t\t}\n\t}\n\tmInputSize -= mHopSize;\n\tmInFFTPos = (mInFFTPos + mHopSize) & mIOMask;\n\t//printf(\"CopyInputToFFT %g %g\\n\", mChannels[0].mFFTBuf()[0], mChannels[0].mFFTBuf()[200]);\n}\n\nvoid CASpectralProcessor::OverlapAddOutput()\n{\n\t//printf(\"OverlapAddOutput mOutFFTPos %u\\n\", (unsigned)mOutFFTPos);\n\tUInt32 firstPart = mIOBufSize - mOutFFTPos;\n\tif (firstPart < mFFTSize) {\n\t\tUInt32 secondPart = mFFTSize - firstPart;\n\t\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\t\tfloat* out1 = mChannels[i].mOutputBuf() + mOutFFTPos;\n\t\t\tvDSP_vadd(out1, 1, mChannels[i].mFFTBuf(), 1, out1, 1, firstPart);\n\t\t\tfloat* out2 = mChannels[i].mOutputBuf();\n\t\t\tvDSP_vadd(out2, 1, mChannels[i].mFFTBuf() + firstPart, 1, out2, 1, secondPart);\n\t\t}\n\t} else {\n\t\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\t\tfloat* out1 = mChannels[i].mOutputBuf() + mOutFFTPos;\n\t\t\tvDSP_vadd(out1, 1, mChannels[i].mFFTBuf(), 1, out1, 1, mFFTSize);\n\t\t}\n\t}\n\t//printf(\"OverlapAddOutput %g %g\\n\", mChannels[0].mOutputBuf[mOutFFTPos], mChannels[0].mOutputBuf[(mOutFFTPos + 200) & mIOMask]);\n\tmOutFFTPos = (mOutFFTPos + mHopSize) & mIOMask;\n}\n\n\nvoid CASpectralProcessor::DoFwdFFT()\n{\n\t//printf(\"->DoFwdFFT %g %g\\n\", mChannels[0].mFFTBuf()[0], mChannels[0].mFFTBuf()[200]);\n\tUInt32 half = mFFTSize >> 1;\n\tfor (UInt32 i=0; i<mNumChannels; ++i) \n\t{\n\t\tvDSP_ctoz((DSPComplex*)mChannels[i].mFFTBuf(), 2, &mSpectralBufferList->mDSPSplitComplex[i], 1, half);\n\t\tvDSP_fft_zrip(mFFTSetup, &mSpectralBufferList->mDSPSplitComplex[i], 1, mLog2FFTSize, FFT_FORWARD);\n\t}\n\t//printf(\"<-DoFwdFFT %g %g\\n\", direction, mChannels[0].mFFTBuf()[0], mChannels[0].mFFTBuf()[200]);\n}\n\nvoid CASpectralProcessor::DoInvFFT()\n{\n\t//printf(\"->DoInvFFT %g %g\\n\", mChannels[0].mFFTBuf()[0], mChannels[0].mFFTBuf()[200]);\n\tUInt32 half = mFFTSize >> 1;\n\tfor (UInt32 i=0; i<mNumChannels; ++i) \n\t{\n\t\tvDSP_fft_zrip(mFFTSetup, &mSpectralBufferList->mDSPSplitComplex[i], 1, mLog2FFTSize, FFT_INVERSE);\n\t\tvDSP_ztoc(&mSpectralBufferList->mDSPSplitComplex[i], 1, (DSPComplex*)mChannels[i].mFFTBuf(), 2, half);\t\t\n\t\tfloat scale = 0.5 / mFFTSize;\n\t\tvDSP_vsmul(mChannels[i].mFFTBuf(), 1, &scale, mChannels[i].mFFTBuf(), 1, mFFTSize );\n\t}\n\t//printf(\"<-DoInvFFT %g %g\\n\", direction, mChannels[0].mFFTBuf()[0], mChannels[0].mFFTBuf()[200]);\n}\n\nvoid CASpectralProcessor::SetSpectralFunction(SpectralFunction inFunction, void* inUserData)\n{\n\tmSpectralFunction = inFunction; \n\tmUserData = inUserData;\n}\n\nvoid CASpectralProcessor::ProcessSpectrum(UInt32 inFFTSize, SpectralBufferList* inSpectra)\n{\n\tif (mSpectralFunction)\n\t\t(mSpectralFunction)(inSpectra, mUserData);\n}\n\n#pragma mark ___Utility___\n\nvoid CASpectralProcessor::GetMagnitude(AudioBufferList* list, Float32* min, Float32* max) \n{\t\n\tUInt32 half = mFFTSize >> 1;\t\n\tfor (UInt32 i=0; i<mNumChannels; ++i) {\n\t\tDSPSplitComplex\t&freqData = mSpectralBufferList->mDSPSplitComplex[i];\t\t\n\t\t\n\t\tFloat32* b = (Float32*) list->mBuffers[i].mData;\n\t\t\n\t\tvDSP_zvabs(&freqData,1,b,1,half); \t\t\n   \n\t\tvDSP_maxmgv(b, 1, &max[i], half); \n \t\tvDSP_minmgv(b, 1, &min[i], half); \n\t\t\n   } \n}\n\n\nvoid CASpectralProcessor::GetFrequencies(Float32* freqs, Float32 sampleRate)\n{\n\tUInt32 half = mFFTSize >> 1;\t\n\n\tfor (UInt32 i=0; i< half; i++){\n\t\tfreqs[i] = ((Float32)(i))*sampleRate/((Float32)mFFTSize);\t\n\t}\n}\n\n\nbool CASpectralProcessor::ProcessForwards(UInt32 inNumFrames, AudioBufferList* inInput)\n{\n\t// copy from buffer list to input buffer\n\tCopyInput(inNumFrames, inInput);\n\t\t\n\tbool processed = false;\n\t// if enough input to process, then process.\n\twhile (mInputSize >= mFFTSize) \n\t{\n\t\tCopyInputToFFT(); // copy from input buffer to fft buffer\n\t\tDoWindowing();\n\t\tDoFwdFFT();\n\t\tProcessSpectrum(mFFTSize, mSpectralBufferList()); // here you would copy the fft results out to a buffer indicated in mUserData, say for sonogram drawing\n\t\tprocessed = true;\n\t}\n\t\n\treturn processed;\n}\n\nbool CASpectralProcessor::ProcessBackwards(UInt32 inNumFrames, AudioBufferList* outOutput)\n{\t\t\n\t\n\tProcessSpectrum(mFFTSize, mSpectralBufferList());\n\tDoInvFFT();\n\tDoWindowing();\n\tOverlapAddOutput();\t\t\n\t\n\t// copy from output buffer to buffer list\n\tCopyOutput(inNumFrames, outOutput);\n\t\n\treturn true;\n}\n\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CASpectralProcessor.h",
    "content": "/*\n     File: CASpectralProcessor.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef _SpectralProcesor_H_\n#define _SpectralProcesor_H_\n \n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n#include <CoreAudio/CoreAudioTypes.h>\n#include <CoreFoundation/CoreFoundation.h>\n#else\n#include <CoreAudioTypes.h>\n#include <CoreFoundation.h>\n#endif\n\n#include <Accelerate/Accelerate.h>\n\n#include \"CAAutoDisposer.h\"\n\nstruct SpectralBufferList\n{\n\tUInt32 mNumberSpectra;\n\tDSPSplitComplex mDSPSplitComplex[1];\n};\n\nclass CASpectralProcessor \n{\npublic:\n\tCASpectralProcessor(UInt32 inFFTSize, UInt32 inHopSize, UInt32 inNumChannels, UInt32 inMaxFrames);\n\tvirtual ~CASpectralProcessor();\n\t\n\tvoid Reset();\n\t\n\tvoid Process(UInt32 inNumFrames, AudioBufferList* inInput, AudioBufferList* outOutput);\n\t\n\ttypedef void (*SpectralFunction)(SpectralBufferList* inSpectra, void* inUserData);\n\t\n\tvoid SetSpectralFunction(SpectralFunction inFunction, void* inUserData);\n\t\n\tUInt32 FFTSize() const { return mFFTSize; }\n\tUInt32 MaxFrames() const { return mMaxFrames; }\n\tUInt32 NumChannels() const { return mNumChannels; }\n\tUInt32 HopSize() const { return mHopSize; }\n\tFloat32* Window() const { return mWindow; }\n\t\n\t\n\tvoid HanningWindow(); // set up a hanning window\n\tvoid SineWindow();\n\t\n\tvoid GetFrequencies(Float32* freqs, Float32 sampleRate);\t\t\t\t// only for processed forward\n\tvoid GetMagnitude(AudioBufferList* inCopy, Float32* min, Float32* max); // only for processed forward\n\t\n\tvirtual bool ProcessForwards(UInt32 inNumFrames, AudioBufferList* inInput);\n\tbool ProcessBackwards(UInt32 inNumFrames, AudioBufferList* outOutput);\n\n\n\tvoid PrintSpectralBufferList();\n\t\nprotected:\n\tvoid CopyInput(UInt32 inNumFrames, AudioBufferList* inInput);\n\tvoid CopyInputToFFT();\n\tvoid DoWindowing();\n\tvoid DoFwdFFT();\n\tvoid DoInvFFT();\n\tvoid OverlapAddOutput();\n\tvoid CopyOutput(UInt32 inNumFrames, AudioBufferList* inOutput);\n\tvoid ProcessSpectrum(UInt32 inFFTSize, SpectralBufferList* inSpectra);\n\t\n\tUInt32 mFFTSize;\n\tUInt32 mHopSize;\n\tUInt32 mNumChannels;\n\tUInt32 mMaxFrames;\n\n\tUInt32 mLog2FFTSize;\n\tUInt32 mFFTMask; \n\tUInt32 mFFTByteSize;\n\tUInt32 mIOBufSize;\n\tUInt32 mIOMask;\n\tUInt32 mInputSize;\n\tUInt32 mInputPos;\n\tUInt32 mOutputPos;\n\tUInt32 mInFFTPos;\n\tUInt32 mOutFFTPos;\n\tFFTSetup mFFTSetup;\n\n\tCAAutoFree<Float32> mWindow;\n\tstruct SpectralChannel \n\t{\n\t\tCAAutoFree<Float32> mInputBuf;\t\t// log2ceil(FFT size + max frames)\n\t\tCAAutoFree<Float32> mOutputBuf;\t\t// log2ceil(FFT size + max frames)\n\t\tCAAutoFree<Float32> mFFTBuf;\t\t// FFT size\n\t\tCAAutoFree<Float32> mSplitFFTBuf;\t// FFT size\n\t};\n\tCAAutoArrayDelete<SpectralChannel> mChannels;\n\n\tCAAutoFree<SpectralBufferList> mSpectralBufferList;\n\t\n\tSpectralFunction mSpectralFunction;\n\tvoid *mUserData;\n\t\n};\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAStreamBasicDescription.cpp",
    "content": "/*\n     File: CAStreamBasicDescription.cpp\n Abstract: CAStreamBasicDescription.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAStreamBasicDescription.h\"\n#include \"CAMath.h\"\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CFByteOrder.h>\n#else\n\t#include <CFByteOrder.h>\n#endif\n\n#pragma mark\tThis file needs to compile on earlier versions of the OS, so please keep that in mind when editing it\n\nchar *CAStringForOSType (OSType t, char *writeLocation, size_t bufsize)\n{\n\tif (bufsize > 0) {\n\t\tchar *p = writeLocation, *pend = writeLocation + bufsize;\n\t\tunion { UInt32 i; unsigned char str[4]; } u;\n\t\tunsigned char *q = u.str;\n\t\tu.i = CFSwapInt32HostToBig(t);\n\n\t\tbool hasNonPrint = false;\n\t\tfor (int i = 0; i < 4; ++i) {\n\t\t\tif (!(isprint(*q) && *q != '\\\\')) {\n\t\t\t\thasNonPrint = true;\n\t\t\t\tbreak;\n\t\t\t}\n            q++;\n\t\t}\n        q = u.str;\n\t\t\n\t\tif (hasNonPrint)\n\t\t\tp += snprintf (p, pend - p, \"0x\");\n\t\telse if (p < pend)\n\t\t\t*p++ = '\\'';\n\t\t\t\n\t\tfor (int i = 0; i < 4 && p < pend; ++i) {\n\t\t\tif (hasNonPrint) {\n\t\t\t\tp += snprintf(p, pend - p, \"%02X\", *q++);\n\t\t\t} else {\n\t\t\t\t*p++ = *q++;\n\t\t\t}\n\t\t}\n\t\tif (!hasNonPrint && p < pend)\n\t\t\t*p++ = '\\'';\n\t\tif (p >= pend) p -= 1;\n\t\t*p = '\\0';\n\t}\n\treturn writeLocation;\n}\n\n\nconst AudioStreamBasicDescription\tCAStreamBasicDescription::sEmpty = { 0.0, 0, 0, 0, 0, 0, 0, 0, 0 };\n\nCAStreamBasicDescription::CAStreamBasicDescription() \n{ \n\tmemset (this, 0, sizeof(AudioStreamBasicDescription)); \n}\n\t\nCAStreamBasicDescription::CAStreamBasicDescription(const AudioStreamBasicDescription &desc)\n{\n\tSetFrom(desc);\n}\n\n\nCAStreamBasicDescription::CAStreamBasicDescription(double inSampleRate,\t\tUInt32 inFormatID,\n\t\t\t\t\t\t\t\t\tUInt32 inBytesPerPacket,\tUInt32 inFramesPerPacket,\n\t\t\t\t\t\t\t\t\tUInt32 inBytesPerFrame,\t\tUInt32 inChannelsPerFrame,\n\t\t\t\t\t\t\t\t\tUInt32 inBitsPerChannel,\tUInt32 inFormatFlags)\n{\n\tmSampleRate = inSampleRate;\n\tmFormatID = inFormatID;\n\tmBytesPerPacket = inBytesPerPacket;\n\tmFramesPerPacket = inFramesPerPacket;\n\tmBytesPerFrame = inBytesPerFrame;\n\tmChannelsPerFrame = inChannelsPerFrame;\n\tmBitsPerChannel = inBitsPerChannel;\n\tmFormatFlags = inFormatFlags;\n\tmReserved = 0;\n}\n\nchar *CAStreamBasicDescription::AsString(char *buf, size_t _bufsize, bool brief /*=false*/) const\n{\n\tint bufsize = (int)_bufsize;\t// must be signed to protect against overflow\n\tchar *theBuffer = buf;\n\tint nc;\n\tchar formatID[24];\n\tCAStringForOSType(mFormatID, formatID, sizeof(formatID));\n\tif (brief) {\n\t\tCommonPCMFormat com;\n\t\tbool interleaved;\n\t\tif (IdentifyCommonPCMFormat(com, &interleaved) && com != kPCMFormatOther) {\n\t\t\tconst char *desc;\n\t\t\tswitch (com) {\n\t\t\tcase kPCMFormatInt16:\n\t\t\t\tdesc = \"Int16\";\n\t\t\t\tbreak;\n\t\t\tcase kPCMFormatFixed824:\n\t\t\t\tdesc = \"Int8.24\";\n\t\t\t\tbreak;\n\t\t\tcase kPCMFormatFloat32:\n\t\t\t\tdesc = \"Float32\";\n\t\t\t\tbreak;\n\t\t\tcase kPCMFormatFloat64:\n\t\t\t\tdesc = \"Float64\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tdesc = NULL;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (desc) {\n\t\t\t\tconst char *inter =\"\";\n\t\t\t\tif (mChannelsPerFrame > 1)\n\t\t\t\t\tinter = !interleaved ? \", non-inter\" : \", inter\";\n\t\t\t\tsnprintf(buf, static_cast<size_t>(bufsize), \"%2d ch, %6.0f Hz, %s%s\", (int)mChannelsPerFrame, mSampleRate, desc, inter);\n\t\t\t\treturn theBuffer;\n\t\t\t}\n\t\t}\n\t\tif (mChannelsPerFrame == 0 && mSampleRate == 0.0 && mFormatID == 0) {\n\t\t\tsnprintf(buf, static_cast<size_t>(bufsize), \"%2d ch, %6.0f Hz\", (int)mChannelsPerFrame, mSampleRate);\n\t\t\treturn theBuffer;\n\t\t}\n\t}\n\t\n\tnc = snprintf(buf, static_cast<size_t>(bufsize), \"%2d ch, %6.0f Hz, %s (0x%08X) \", (int)NumberChannels(), mSampleRate, formatID, (int)mFormatFlags);\n\tbuf += nc; if ((bufsize -= nc) <= 0) goto exit;\n\tif (mFormatID == kAudioFormatLinearPCM) {\n\t\tbool isInt = !(mFormatFlags & kLinearPCMFormatFlagIsFloat);\n\t\tint wordSize = static_cast<int>(SampleWordSize());\n\t\tconst char *endian = (wordSize > 1) ? \n\t\t\t((mFormatFlags & kLinearPCMFormatFlagIsBigEndian) ? \" big-endian\" : \" little-endian\" ) : \"\";\n\t\tconst char *sign = isInt ? \n\t\t\t((mFormatFlags & kLinearPCMFormatFlagIsSignedInteger) ? \" signed\" : \" unsigned\") : \"\";\n\t\tconst char *floatInt = isInt ? \"integer\" : \"float\";\n\t\tchar packed[32];\n\t\tif (wordSize > 0 && PackednessIsSignificant()) {\n\t\t\tif (mFormatFlags & kLinearPCMFormatFlagIsPacked)\n\t\t\t\tsnprintf(packed, sizeof(packed), \"packed in %d bytes\", wordSize);\n\t\t\telse\n\t\t\t\tsnprintf(packed, sizeof(packed), \"unpacked in %d bytes\", wordSize);\n\t\t} else\n\t\t\tpacked[0] = '\\0';\n\t\tconst char *align = (wordSize > 0 && AlignmentIsSignificant()) ?\n\t\t\t((mFormatFlags & kLinearPCMFormatFlagIsAlignedHigh) ? \" high-aligned\" : \" low-aligned\") : \"\";\n\t\tconst char *deinter = (mFormatFlags & kAudioFormatFlagIsNonInterleaved) ? \", deinterleaved\" : \"\";\n\t\tconst char *commaSpace = (packed[0]!='\\0') || (align[0]!='\\0') ? \", \" : \"\";\n\t\tchar bitdepth[20];\n\n\t\tint fracbits = (mFormatFlags & kLinearPCMFormatFlagsSampleFractionMask) >> kLinearPCMFormatFlagsSampleFractionShift;\n\t\tif (fracbits > 0)\n\t\t\tsnprintf(bitdepth, sizeof(bitdepth), \"%d.%d\", (int)mBitsPerChannel - fracbits, fracbits);\n\t\telse\n\t\t\tsnprintf(bitdepth, sizeof(bitdepth), \"%d\", (int)mBitsPerChannel);\n\t\t\n\t\t/*nc =*/ snprintf(buf, static_cast<size_t>(bufsize), \"%s-bit%s%s %s%s%s%s%s\",\n\t\t\tbitdepth, endian, sign, floatInt, \n\t\t\tcommaSpace, packed, align, deinter);\n\t\t// buf += nc; if ((bufsize -= nc) <= 0) goto exit;\n\t} else if (mFormatID == kAudioFormatAppleLossless) {\n\t\tint sourceBits = 0;\n\t\tswitch (mFormatFlags)\n\t\t{\n\t\t\tcase 1:\t//\tkAppleLosslessFormatFlag_16BitSourceData\n\t\t\t\tsourceBits = 16;\n\t\t\t\tbreak;\n    \t\tcase 2:\t//\tkAppleLosslessFormatFlag_20BitSourceData\n    \t\t\tsourceBits = 20;\n    \t\t\tbreak;\n    \t\tcase 3:\t//\tkAppleLosslessFormatFlag_24BitSourceData\n    \t\t\tsourceBits = 24;\n    \t\t\tbreak;\n    \t\tcase 4:\t//\tkAppleLosslessFormatFlag_32BitSourceData\n    \t\t\tsourceBits = 32;\n    \t\t\tbreak;\n\t\t}\n\t\tif (sourceBits)\n\t\t\tnc = snprintf(buf, static_cast<size_t>(bufsize), \"from %d-bit source, \", sourceBits);\n\t\telse\n\t\t\tnc = snprintf(buf, static_cast<size_t>(bufsize), \"from UNKNOWN source bit depth, \");\n\t\tbuf += nc; if ((bufsize -= nc) <= 0) goto exit;\n\t\t/*nc =*/ snprintf(buf, static_cast<size_t>(bufsize), \"%d frames/packet\", (int)mFramesPerPacket);\n\t\t//\tbuf += nc; if ((bufsize -= nc) <= 0) goto exit;\n\t}\n\telse\n\t\t/*nc =*/ snprintf(buf, static_cast<size_t>(bufsize), \"%d bits/channel, %d bytes/packet, %d frames/packet, %d bytes/frame\", \n\t\t\t(int)mBitsPerChannel, (int)mBytesPerPacket, (int)mFramesPerPacket, (int)mBytesPerFrame);\nexit:\n\treturn theBuffer;\n}\n\nvoid\tCAStreamBasicDescription::NormalizeLinearPCMFormat(AudioStreamBasicDescription& ioDescription)\n{\n\t//  the only thing that changes is to make mixable linear PCM into the canonical linear PCM format\n\tif((ioDescription.mFormatID == kAudioFormatLinearPCM) && ((ioDescription.mFormatFlags & kIsNonMixableFlag) == 0))\n\t{\n\t\t//  the canonical linear PCM format\n\t\tioDescription.mFormatFlags = kAudioFormatFlagsCanonical;\n\t\tioDescription.mBytesPerPacket = SizeOf32(AudioSampleType) * ioDescription.mChannelsPerFrame;\n\t\tioDescription.mFramesPerPacket = 1;\n\t\tioDescription.mBytesPerFrame = SizeOf32(AudioSampleType) * ioDescription.mChannelsPerFrame;\n\t\tioDescription.mBitsPerChannel = 8 * SizeOf32(AudioSampleType);\n\t}\n}\n\nvoid\tCAStreamBasicDescription::NormalizeLinearPCMFormat(bool inNativeEndian, AudioStreamBasicDescription& ioDescription)\n{\n\t//  the only thing that changes is to make mixable linear PCM into the canonical linear PCM format\n\tif((ioDescription.mFormatID == kAudioFormatLinearPCM) && ((ioDescription.mFormatFlags & kIsNonMixableFlag) == 0))\n\t{\n\t\t//  the canonical linear PCM format\n\t\tioDescription.mFormatFlags = kAudioFormatFlagIsFloat | kAudioFormatFlagIsPacked;\n\t\tif(inNativeEndian)\n\t\t{\n#if TARGET_RT_BIG_ENDIAN\n\t\t\tioDescription.mFormatFlags |= kAudioFormatFlagIsBigEndian;\n#endif\n\t\t}\n\t\telse\n\t\t{\n#if TARGET_RT_LITTLE_ENDIAN\n\t\t\tioDescription.mFormatFlags |= kAudioFormatFlagIsBigEndian;\n#endif\n\t\t}\n\t\tioDescription.mBytesPerPacket = SizeOf32(AudioSampleType) * ioDescription.mChannelsPerFrame;\n\t\tioDescription.mFramesPerPacket = 1;\n\t\tioDescription.mBytesPerFrame = SizeOf32(AudioSampleType) * ioDescription.mChannelsPerFrame;\n\t\tioDescription.mBitsPerChannel = 8 * SizeOf32(AudioSampleType);\n\t}\n}\n\nvoid\tCAStreamBasicDescription::ResetFormat(AudioStreamBasicDescription& ioDescription)\n{\n\tioDescription.mSampleRate = 0;\n\tioDescription.mFormatID = 0;\n\tioDescription.mBytesPerPacket = 0;\n\tioDescription.mFramesPerPacket = 0;\n\tioDescription.mBytesPerFrame = 0;\n\tioDescription.mChannelsPerFrame = 0;\n\tioDescription.mBitsPerChannel = 0;\n\tioDescription.mFormatFlags = 0;\n}\n\nvoid\tCAStreamBasicDescription::FillOutFormat(AudioStreamBasicDescription& ioDescription, const AudioStreamBasicDescription& inTemplateDescription)\n{\n\tif(fiszero(ioDescription.mSampleRate))\n\t{\n\t\tioDescription.mSampleRate = inTemplateDescription.mSampleRate;\n\t}\n\tif(ioDescription.mFormatID == 0)\n\t{\n\t\tioDescription.mFormatID = inTemplateDescription.mFormatID;\n\t}\n\tif(ioDescription.mFormatFlags == 0)\n\t{\n\t\tioDescription.mFormatFlags = inTemplateDescription.mFormatFlags;\n\t}\n\tif(ioDescription.mBytesPerPacket == 0)\n\t{\n\t\tioDescription.mBytesPerPacket = inTemplateDescription.mBytesPerPacket;\n\t}\n\tif(ioDescription.mFramesPerPacket == 0)\n\t{\n\t\tioDescription.mFramesPerPacket = inTemplateDescription.mFramesPerPacket;\n\t}\n\tif(ioDescription.mBytesPerFrame == 0)\n\t{\n\t\tioDescription.mBytesPerFrame = inTemplateDescription.mBytesPerFrame;\n\t}\n\tif(ioDescription.mChannelsPerFrame == 0)\n\t{\n\t\tioDescription.mChannelsPerFrame = inTemplateDescription.mChannelsPerFrame;\n\t}\n\tif(ioDescription.mBitsPerChannel == 0)\n\t{\n\t\tioDescription.mBitsPerChannel = inTemplateDescription.mBitsPerChannel;\n\t}\n}\n\nvoid\tCAStreamBasicDescription::GetSimpleName(const AudioStreamBasicDescription& inDescription, char* outName, UInt32 inMaxNameLength, bool inAbbreviate, bool inIncludeSampleRate)\n{\n\tif(inIncludeSampleRate)\n\t{\n\t\tint theCharactersWritten = snprintf(outName, inMaxNameLength, \"%.0f \", inDescription.mSampleRate);\n\t\toutName += theCharactersWritten;\n\t\tinMaxNameLength -= static_cast<UInt32>(theCharactersWritten);\n\t}\n\t\n\tswitch(inDescription.mFormatID)\n\t{\n\t\tcase kAudioFormatLinearPCM:\n\t\t\t{\n\t\t\t\tconst char* theEndianString = NULL;\n\t\t\t\tif((inDescription.mFormatFlags & kAudioFormatFlagIsBigEndian) != 0)\n\t\t\t\t{\n\t\t\t\t\t#if\tTARGET_RT_LITTLE_ENDIAN\n\t\t\t\t\t\ttheEndianString = \"Big Endian\";\n\t\t\t\t\t#endif\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t#if\tTARGET_RT_BIG_ENDIAN\n\t\t\t\t\t\ttheEndianString = \"Little Endian\";\n\t\t\t\t\t#endif\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst char* theKindString = NULL;\n\t\t\t\tif((inDescription.mFormatFlags & kAudioFormatFlagIsFloat) != 0)\n\t\t\t\t{\n\t\t\t\t\ttheKindString = (inAbbreviate ? \"Float\" : \"Floating Point\");\n\t\t\t\t}\n\t\t\t\telse if((inDescription.mFormatFlags & kAudioFormatFlagIsSignedInteger) != 0)\n\t\t\t\t{\n\t\t\t\t\ttheKindString = (inAbbreviate ? \"SInt\" : \"Signed Integer\");\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttheKindString = (inAbbreviate ? \"UInt\" : \"Unsigned Integer\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst char* thePackingString = NULL;\n\t\t\t\tif((inDescription.mFormatFlags & kAudioFormatFlagIsPacked) == 0)\n\t\t\t\t{\n\t\t\t\t\tif((inDescription.mFormatFlags & kAudioFormatFlagIsAlignedHigh) != 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthePackingString = \"High\";\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthePackingString = \"Low\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst char* theMixabilityString = NULL;\n\t\t\t\tif((inDescription.mFormatFlags & kIsNonMixableFlag) == 0)\n\t\t\t\t{\n\t\t\t\t\ttheMixabilityString = \"Mixable\";\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\ttheMixabilityString = \"Unmixable\";\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(inAbbreviate)\n\t\t\t\t{\n\t\t\t\t\tif(theEndianString != NULL)\n\t\t\t\t\t{\n\t\t\t\t\t\tif(thePackingString != NULL)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsnprintf(outName, inMaxNameLength, \"%s %d Ch %s %s %s%d/%s%d\", theMixabilityString, (int)inDescription.mChannelsPerFrame, theEndianString, thePackingString, theKindString, (int)inDescription.mBitsPerChannel, theKindString, (int)(inDescription.mBytesPerFrame / inDescription.mChannelsPerFrame) * 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsnprintf(outName, inMaxNameLength, \"%s %d Ch %s %s%d\", theMixabilityString, (int)inDescription.mChannelsPerFrame, theEndianString, theKindString, (int)inDescription.mBitsPerChannel);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tif(thePackingString != NULL)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsnprintf(outName, inMaxNameLength, \"%s %d Ch %s %s%d/%s%d\", theMixabilityString, (int)inDescription.mChannelsPerFrame, thePackingString, theKindString, (int)inDescription.mBitsPerChannel, theKindString, (int)((inDescription.mBytesPerFrame / inDescription.mChannelsPerFrame) * 8));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsnprintf(outName, inMaxNameLength, \"%s %d Ch %s%d\", theMixabilityString, (int)inDescription.mChannelsPerFrame, theKindString, (int)inDescription.mBitsPerChannel);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif(theEndianString != NULL)\n\t\t\t\t\t{\n\t\t\t\t\t\tif(thePackingString != NULL)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsnprintf(outName, inMaxNameLength, \"%s %d Channel %d Bit %s %s Aligned %s in %d Bits\", theMixabilityString, (int)inDescription.mChannelsPerFrame, (int)inDescription.mBitsPerChannel, theEndianString, theKindString, thePackingString, (int)(inDescription.mBytesPerFrame / inDescription.mChannelsPerFrame) * 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsnprintf(outName, inMaxNameLength, \"%s %d Channel %d Bit %s %s\", theMixabilityString, (int)inDescription.mChannelsPerFrame, (int)inDescription.mBitsPerChannel, theEndianString, theKindString);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tif(thePackingString != NULL)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsnprintf(outName, inMaxNameLength, \"%s %d Channel %d Bit %s Aligned %s in %d Bits\", theMixabilityString, (int)inDescription.mChannelsPerFrame, (int)inDescription.mBitsPerChannel, theKindString, thePackingString, (int)(inDescription.mBytesPerFrame / inDescription.mChannelsPerFrame) * 8);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsnprintf(outName, inMaxNameLength, \"%s %d Channel %d Bit %s\", theMixabilityString, (int)inDescription.mChannelsPerFrame, (int)inDescription.mBitsPerChannel, theKindString);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\t\n\t\tcase kAudioFormatAC3:\n\t\t\tstrlcpy(outName, \"AC-3\", sizeof(outName));\n\t\t\tbreak;\n\t\t\n\t\tcase kAudioFormat60958AC3:\n\t\t\tstrlcpy(outName, \"AC-3 for SPDIF\", sizeof(outName));\n\t\t\tbreak;\n\t\t\n\t\tdefault:\n\t\t\tCACopy4CCToCString(outName, inDescription.mFormatID);\n\t\t\tbreak;\n\t};\n}\n\n#if CoreAudio_Debug\n#include \"CALogMacros.h\"\n\nvoid\tCAStreamBasicDescription::PrintToLog(const AudioStreamBasicDescription& inDesc)\n{\n\tPrintFloat\t\t(\"  Sample Rate:        \", inDesc.mSampleRate);\n\tPrint4CharCode\t(\"  Format ID:          \", inDesc.mFormatID);\n\tPrintHex\t\t(\"  Format Flags:       \", inDesc.mFormatFlags);\n\tPrintInt\t\t(\"  Bytes per Packet:   \", inDesc.mBytesPerPacket);\n\tPrintInt\t\t(\"  Frames per Packet:  \", inDesc.mFramesPerPacket);\n\tPrintInt\t\t(\"  Bytes per Frame:    \", inDesc.mBytesPerFrame);\n\tPrintInt\t\t(\"  Channels per Frame: \", inDesc.mChannelsPerFrame);\n\tPrintInt\t\t(\"  Bits per Channel:   \", inDesc.mBitsPerChannel);\n}\n#endif\n\nbool\toperator<(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y)\n{\n\tbool theAnswer = false;\n\tbool isDone = false;\n\t\n\t//\tnote that if either side is 0, that field is skipped\n\t\n\t//\tformat ID is the first order sort\n\tif((!isDone) && ((x.mFormatID != 0) && (y.mFormatID != 0)))\n\t{\n\t\tif(x.mFormatID != y.mFormatID)\n\t\t{\n\t\t\t//\tformats are sorted numerically except that linear\n\t\t\t//\tPCM is always first\n\t\t\tif(x.mFormatID == kAudioFormatLinearPCM)\n\t\t\t{\n\t\t\t\ttheAnswer = true;\n\t\t\t}\n\t\t\telse if(y.mFormatID == kAudioFormatLinearPCM)\n\t\t\t{\n\t\t\t\ttheAnswer = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttheAnswer = x.mFormatID < y.mFormatID;\n\t\t\t}\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t\n\t//  mixable is always better than non-mixable for linear PCM and should be the second order sort item\n\tif((!isDone) && ((x.mFormatID == kAudioFormatLinearPCM) && (y.mFormatID == kAudioFormatLinearPCM)))\n\t{\n\t\tif(((x.mFormatFlags & kIsNonMixableFlag) == 0) && ((y.mFormatFlags & kIsNonMixableFlag) != 0))\n\t\t{\n\t\t\ttheAnswer = true;\n\t\t\tisDone = true;\n\t\t}\n\t\telse if(((x.mFormatFlags & kIsNonMixableFlag) != 0) && ((y.mFormatFlags & kIsNonMixableFlag) == 0))\n\t\t{\n\t\t\ttheAnswer = false;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tfloating point vs integer for linear PCM only\n\tif((!isDone) && ((x.mFormatID == kAudioFormatLinearPCM) && (y.mFormatID == kAudioFormatLinearPCM)))\n\t{\n\t\tif((x.mFormatFlags & kAudioFormatFlagIsFloat) != (y.mFormatFlags & kAudioFormatFlagIsFloat))\n\t\t{\n\t\t\t//\tfloating point is better than integer\n\t\t\ttheAnswer = y.mFormatFlags & kAudioFormatFlagIsFloat;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tbit depth\n\tif((!isDone) && ((x.mBitsPerChannel != 0) && (y.mBitsPerChannel != 0)))\n\t{\n\t\tif(x.mBitsPerChannel != y.mBitsPerChannel)\n\t\t{\n\t\t\t//\tdeeper bit depths are higher quality\n\t\t\ttheAnswer = x.mBitsPerChannel < y.mBitsPerChannel;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tsample rate\n\tif((!isDone) && fnonzero(x.mSampleRate) && fnonzero(y.mSampleRate))\n\t{\n\t\tif(fnotequal(x.mSampleRate, y.mSampleRate))\n\t\t{\n\t\t\t//\thigher sample rates are higher quality\n\t\t\ttheAnswer = x.mSampleRate < y.mSampleRate;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tnumber of channels\n\tif((!isDone) && ((x.mChannelsPerFrame != 0) && (y.mChannelsPerFrame != 0)))\n\t{\n\t\tif(x.mChannelsPerFrame != y.mChannelsPerFrame)\n\t\t{\n\t\t\t//\tmore channels is higher quality\n\t\t\ttheAnswer = x.mChannelsPerFrame < y.mChannelsPerFrame;\n\t\t\t//isDone = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\nvoid CAStreamBasicDescription::ModifyFormatFlagsForMatching(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y, UInt32& xFlags, UInt32& yFlags, bool converterOnly )\n{\n    // match wildcards\n\tif (x.mFormatID == 0 || y.mFormatID == 0 || xFlags == 0 || yFlags == 0)\n    {\n\t\t// Obliterate all flags.\n        xFlags = yFlags = 0;\n        return;\n    }\n    \n    if (x.mFormatID == kAudioFormatLinearPCM) {\n        // knock off the all clear flag\n        xFlags = xFlags & ~kAudioFormatFlagsAreAllClear;\n        yFlags = yFlags & ~kAudioFormatFlagsAreAllClear;\n        \n        // if both kAudioFormatFlagIsPacked bits are set, then we don't care about the kAudioFormatFlagIsAlignedHigh bit.\n        if (xFlags & yFlags & kAudioFormatFlagIsPacked) {\n            xFlags = xFlags & ~static_cast<UInt32>(kAudioFormatFlagIsAlignedHigh);\n            yFlags = yFlags & ~static_cast<UInt32>(kAudioFormatFlagIsAlignedHigh);\n        }\n        \n        // if both kAudioFormatFlagIsFloat bits are set, then we don't care about the kAudioFormatFlagIsSignedInteger bit.\n        if (xFlags & yFlags & kAudioFormatFlagIsFloat) {\n            xFlags = xFlags & ~static_cast<UInt32>(kAudioFormatFlagIsSignedInteger);\n            yFlags = yFlags & ~static_cast<UInt32>(kAudioFormatFlagIsSignedInteger);\n        }\n        \n        //\tif the bit depth is 8 bits or less and the format is packed, we don't care about endianness\n        if((x.mBitsPerChannel <= 8) && ((xFlags & kAudioFormatFlagIsPacked) == kAudioFormatFlagIsPacked))\n        {\n            xFlags = xFlags & ~static_cast<UInt32>(kAudioFormatFlagIsBigEndian);\n        }\n        if((y.mBitsPerChannel <= 8) && ((yFlags & kAudioFormatFlagIsPacked) == kAudioFormatFlagIsPacked))\n        {\n            yFlags = yFlags & ~static_cast<UInt32>(kAudioFormatFlagIsBigEndian);\n        }\n        \n        //\tif the number of channels is 1, we don't care about non-interleavedness\n        if (x.mChannelsPerFrame == 1 && y.mChannelsPerFrame == 1) {\n            xFlags &= ~static_cast<UInt32>(kLinearPCMFormatFlagIsNonInterleaved);\n            yFlags &= ~static_cast<UInt32>(kLinearPCMFormatFlagIsNonInterleaved);\n        }\n        \n        if (converterOnly) {\n            CAStreamBasicDescription cas_x = CAStreamBasicDescription(x);\n            CAStreamBasicDescription cas_y = CAStreamBasicDescription(y);\n            if (!cas_x.PackednessIsSignificant() && !cas_y.PackednessIsSignificant()) {\n                xFlags &= ~static_cast<UInt32>(kAudioFormatFlagIsPacked);\n                yFlags &= ~static_cast<UInt32>(kAudioFormatFlagIsPacked);\n            }\n            if (!cas_x.AlignmentIsSignificant() && !cas_y.AlignmentIsSignificant()) {\n                xFlags &= ~static_cast<UInt32>(kAudioFormatFlagIsAlignedHigh);\n                yFlags &= ~static_cast<UInt32>(kAudioFormatFlagIsAlignedHigh);\n            }\n            // We don't care about whether the streams are mixable in this case\n            xFlags &= ~static_cast<UInt32>(kAudioFormatFlagIsNonMixable);\n            yFlags &= ~static_cast<UInt32>(kAudioFormatFlagIsNonMixable);\n        }\n    }\n}\n\nstatic bool MatchFormatFlags(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y)\n{\n\tUInt32 xFlags = x.mFormatFlags;\n\tUInt32 yFlags = y.mFormatFlags;\n\t\n    CAStreamBasicDescription::ModifyFormatFlagsForMatching(x, y, xFlags, yFlags, false);\n\treturn xFlags == yFlags;\n}\n\nbool\toperator==(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y)\n{\n\t//\tthe semantics for equality are:\n\t//\t\t1) Values must match exactly -- except for PCM format flags, see above.\n\t//\t\t2) wildcard's are ignored in the comparison\n\t\n#define MATCH(name) ((x.name) == 0 || (y.name) == 0 || (x.name) == (y.name))\n\t\n\treturn \n    //\tcheck all but the format flags\n    CAStreamBasicDescription::FlagIndependentEquivalence(x, y)\n    //\tcheck the format flags\n    && MatchFormatFlags(x, y);  \n}\n\nbool    CAStreamBasicDescription::FlagIndependentEquivalence(const AudioStreamBasicDescription &x, const AudioStreamBasicDescription &y)\n{\n    return \n    //\tcheck the sample rate\n    (fiszero(x.mSampleRate) || fiszero(y.mSampleRate) || fequal(x.mSampleRate, y.mSampleRate))\n    \n    //\tcheck the format ids\n    && MATCH(mFormatID)\n        \n    //\tcheck the bytes per packet\n    && MATCH(mBytesPerPacket) \n    \n    //\tcheck the frames per packet\n    && MATCH(mFramesPerPacket) \n    \n    //\tcheck the bytes per frame\n    && MATCH(mBytesPerFrame) \n    \n    //\tcheck the channels per frame\n    && MATCH(mChannelsPerFrame) \n    \n    //\tcheck the channels per frame\n    && MATCH(mBitsPerChannel) ;\n}\n\nbool\tCAStreamBasicDescription::IsEqual(const AudioStreamBasicDescription &other, bool interpretingWildcards) const\n{\n\tif (interpretingWildcards)\n\t\treturn *this == other;\n\treturn memcmp(this, &other, offsetof(AudioStreamBasicDescription, mReserved)) == 0;\n}\n\nbool    CAStreamBasicDescription::IsFunctionallyEquivalent(const AudioStreamBasicDescription &x, const AudioStreamBasicDescription &y)\n{\n    UInt32 xFlags = x.mFormatFlags, yFlags = y.mFormatFlags;    \n    CAStreamBasicDescription::ModifyFormatFlagsForMatching(x, y, xFlags, yFlags, true);\n    \n    return\n    // check all but the format flags\n    CAStreamBasicDescription::FlagIndependentEquivalence(x, y)\n    // check the format flags with converter focus\n    && (xFlags == yFlags);\n    \n}\n\nbool SanityCheck(const AudioStreamBasicDescription& x)\n{\n\t// This function returns false if there are sufficiently insane values in any field.\n\t// It is very conservative so even some very unlikely values will pass.\n\t// This is just meant to catch the case where the data from a file is corrupted.\n\t\n\treturn \n\t\t(x.mSampleRate >= 0.)\t\n\t\t&& (x.mSampleRate < 3e6)\t// SACD sample rate is 2.8224 MHz\n\t\t&& (x.mBytesPerPacket < 1000000)\n\t\t&& (x.mFramesPerPacket < 1000000)\n\t\t&& (x.mBytesPerFrame < 1000000)\n\t\t&& (x.mChannelsPerFrame <= 1024)\n\t\t&& (x.mBitsPerChannel <= 1024)\n\t\t&& (x.mFormatID != 0)\n\t\t&& !(x.mFormatID == kAudioFormatLinearPCM && (x.mFramesPerPacket != 1 || x.mBytesPerPacket != x.mBytesPerFrame));\n}\n\nbool CAStreamBasicDescription::FromText(const char *inTextDesc, AudioStreamBasicDescription &fmt)\n{\n\tconst char *p = inTextDesc;\n\t\n\tmemset(&fmt, 0, sizeof(fmt));\n\n\tbool isPCM = true;\t// until proven otherwise\n\tUInt32 pcmFlags = kAudioFormatFlagIsPacked | kAudioFormatFlagIsSignedInteger;\n\n\tif (p[0] == '-')\t// previously we required a leading dash on PCM formats\n\t\t++p;\n\n\tif (p[0] == 'B' && p[1] == 'E') {\n\t\tpcmFlags |= kLinearPCMFormatFlagIsBigEndian;\n\t\tp += 2;\n\t} else if (p[0] == 'L' && p[1] == 'E') {\n\t\tp += 2;\n\t} else {\n\t\t// default is native-endian\n#if TARGET_RT_BIG_ENDIAN\n\t\tpcmFlags |= kLinearPCMFormatFlagIsBigEndian;\n#endif\n\t}\n\tif (p[0] == 'F') {\n\t\tpcmFlags = (pcmFlags & ~static_cast<UInt32>(kAudioFormatFlagIsSignedInteger)) | kAudioFormatFlagIsFloat;\n\t\t++p;\n\t} else {\n\t\tif (p[0] == 'U') {\n\t\t\tpcmFlags &= ~static_cast<UInt32>(kAudioFormatFlagIsSignedInteger);\n\t\t\t++p;\n\t\t}\n\t\tif (p[0] == 'I')\n\t\t\t++p;\n\t\telse {\n\t\t\t// it's not PCM; presumably some other format (NOT VALIDATED; use AudioFormat for that)\n\t\t\tisPCM = false;\n\t\t\tp = inTextDesc;\t// go back to the beginning\n\t\t\tchar buf[4] = { ' ',' ',' ',' ' };\n\t\t\tfor (int i = 0; i < 4; ++i) {\n\t\t\t\tif (*p != '\\\\') {\n\t\t\t\t\tif ((buf[i] = *p++) == '\\0') {\n\t\t\t\t\t\t// special-case for 'aac'\n\t\t\t\t\t\tif (i != 3) return false;\n\t\t\t\t\t\t--p;\t// keep pointing at the terminating null\n\t\t\t\t\t\tbuf[i] = ' ';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// \"\\xNN\" is a hex byte\n\t\t\t\t\tif (*++p != 'x') return false;\n\t\t\t\t\tint x;\n\t\t\t\t\tif (sscanf(++p, \"%02X\", &x) != 1) return false;\n\t\t\t\t\tbuf[i] = static_cast<char>(x);\n\t\t\t\t\tp += 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif (strchr(\"-@/#\", buf[3])) {\n\t\t\t\t// further special-casing for 'aac'\n\t\t\t\tbuf[3] = ' ';\n\t\t\t\t--p;\n\t\t\t}\n\t\t\t\n\t\t\tmemcpy(&fmt.mFormatID, buf, 4);\n\t\t\tfmt.mFormatID = CFSwapInt32BigToHost(fmt.mFormatID);\n\t\t}\n\t}\n\t\n\tif (isPCM) {\n\t\tfmt.mFormatID = kAudioFormatLinearPCM;\n\t\tfmt.mFormatFlags = pcmFlags;\n\t\tfmt.mFramesPerPacket = 1;\n\t\tfmt.mChannelsPerFrame = 1;\n\t\tUInt32 bitdepth = 0, fracbits = 0;\n\t\twhile (isdigit(*p))\n\t\t\tbitdepth = 10 * bitdepth + static_cast<UInt32>(*p++ - '0');\n\t\tif (*p == '.') {\n\t\t\t++p;\n\t\t\tif (!isdigit(*p)) {\n\t\t\t\tfprintf(stderr, \"Expected fractional bits following '.'\\n\");\n\t\t\t\tgoto Bail;\n\t\t\t}\n\t\t\twhile (isdigit(*p))\n\t\t\t\tfracbits = 10 * fracbits + static_cast<UInt32>(*p++ - '0');\n\t\t\tbitdepth += fracbits;\n\t\t\tfmt.mFormatFlags |= (fracbits << kLinearPCMFormatFlagsSampleFractionShift);\n\t\t}\n\t\tfmt.mBitsPerChannel = bitdepth;\n\t\tfmt.mBytesPerPacket = fmt.mBytesPerFrame = (bitdepth + 7) / 8;\n\t\tif (bitdepth & 7) {\n\t\t\t// assume unpacked. (packed odd bit depths are describable but not supported in AudioConverter.)\n\t\t\tfmt.mFormatFlags &= ~static_cast<UInt32>(kLinearPCMFormatFlagIsPacked);\n\t\t\t// alignment matters; default to high-aligned. use ':L_' for low.\n\t\t\tfmt.mFormatFlags |= kLinearPCMFormatFlagIsAlignedHigh;\n\t\t}\n\t}\n\tif (*p == '@') {\n\t\t++p;\n\t\twhile (isdigit(*p))\n\t\t\tfmt.mSampleRate = 10 * fmt.mSampleRate + (*p++ - '0');\n\t}\n\tif (*p == '/') {\n\t\tUInt32 flags = 0;\n\t\twhile (true) {\n\t\t\tchar c = *++p;\n\t\t\tif (c >= '0' && c <= '9')\n\t\t\t\tflags = (flags << 4) | static_cast<UInt32>(c - '0');\n\t\t\telse if (c >= 'A' && c <= 'F')\n\t\t\t\tflags = (flags << 4) | static_cast<UInt32>(c - 'A' + 10);\n\t\t\telse if (c >= 'a' && c <= 'f')\n\t\t\t\tflags = (flags << 4) | static_cast<UInt32>(c - 'a' + 10);\n\t\t\telse break;\n\t\t}\n\t\tfmt.mFormatFlags = flags;\n\t}\n\tif (*p == '#') {\n\t\t++p;\n\t\twhile (isdigit(*p))\n\t\t\tfmt.mFramesPerPacket = 10 * fmt.mFramesPerPacket + static_cast<UInt32>(*p++ - '0');\n\t}\n\tif (*p == ':') {\n\t\t++p;\n\t\tfmt.mFormatFlags &= ~static_cast<UInt32>(kLinearPCMFormatFlagIsPacked);\n\t\tif (*p == 'L')\n\t\t\tfmt.mFormatFlags &= ~static_cast<UInt32>(kLinearPCMFormatFlagIsAlignedHigh);\n\t\telse if (*p == 'H')\n\t\t\tfmt.mFormatFlags |= kLinearPCMFormatFlagIsAlignedHigh;\n\t\telse\n\t\t\tgoto Bail;\n\t\t++p;\n\t\tUInt32 bytesPerFrame = 0;\n\t\twhile (isdigit(*p))\n\t\t\tbytesPerFrame = 10 * bytesPerFrame + static_cast<UInt32>(*p++ - '0');\n\t\tfmt.mBytesPerFrame = fmt.mBytesPerPacket = bytesPerFrame;\n\t}\n\tif (*p == ',') {\n\t\t++p;\n\t\tint ch = 0;\n\t\twhile (isdigit(*p))\n\t\t\tch = 10 * ch + (*p++ - '0');\n\t\tfmt.mChannelsPerFrame = static_cast<UInt32>(ch);\n\t\tif (*p == 'D') {\n\t\t\t++p;\n\t\t\tif (fmt.mFormatID != kAudioFormatLinearPCM) {\n\t\t\t\tfprintf(stderr, \"non-interleaved flag invalid for non-PCM formats\\n\");\n\t\t\t\tgoto Bail;\n\t\t\t}\n\t\t\tfmt.mFormatFlags |= kAudioFormatFlagIsNonInterleaved;\n\t\t} else {\n\t\t\tif (*p == 'I') ++p;\t// default\n\t\t\tif (fmt.mFormatID == kAudioFormatLinearPCM)\n\t\t\t\tfmt.mBytesPerPacket = fmt.mBytesPerFrame *= static_cast<UInt32>(ch);\n\t\t}\n\t}\n\tif (*p != '\\0') {\n\t\tfprintf(stderr, \"extra characters at end of format string: %s\\n\", p);\n\t\tgoto Bail;\n\t}\n\treturn true;\n\nBail:\n\tfprintf(stderr, \"Invalid format string: %s\\n\", inTextDesc);\n\tfprintf(stderr, \"Syntax of format strings is: \\n\");\n\treturn false;\n}\n\nconst char *CAStreamBasicDescription::sTextParsingUsageString = \n\t\"format[@sample_rate_hz][/format_flags][#frames_per_packet][:LHbytesPerFrame][,channelsDI].\\n\"\n\t\"Format for PCM is [-][BE|LE]{F|I|UI}{bitdepth}; else a 4-char format code (e.g. aac, alac).\\n\";\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAStreamBasicDescription.h",
    "content": "/*\n     File: CAStreamBasicDescription.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAStreamBasicDescription_h__\n#define __CAStreamBasicDescription_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include \"CoreAudioTypes.h\"\n\t#include \"CoreFoundation.h\"\n#endif\n\n#include \"CADebugMacros.h\"\n#include <string.h>\t// for memset, memcpy\n#include <stdio.h>\t// for FILE *\n\n#pragma mark\tThis file needs to compile on more earlier versions of the OS, so please keep that in mind when editing it\n\nextern char *CAStringForOSType (OSType t, char *writeLocation, size_t bufsize);\n\n// define Leopard specific symbols for backward compatibility if applicable\n#if COREAUDIOTYPES_VERSION < 1050\ntypedef Float32 AudioSampleType;\nenum { kAudioFormatFlagsCanonical = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked };\n#endif\n#if COREAUDIOTYPES_VERSION < 1051\ntypedef Float32 AudioUnitSampleType;\nenum {\n\tkLinearPCMFormatFlagsSampleFractionShift    = 7,\n\tkLinearPCMFormatFlagsSampleFractionMask     = (0x3F << kLinearPCMFormatFlagsSampleFractionShift),\n};\n#endif\n\n//\tdefine the IsMixable format flag for all versions of the system\n#if (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3)\n\tenum { kIsNonMixableFlag = kAudioFormatFlagIsNonMixable };\n#else\n\tenum { kIsNonMixableFlag = (1L << 6) };\n#endif\n\n//=============================================================================\n//\tCAStreamBasicDescription\n//\n//\tThis is a wrapper class for the AudioStreamBasicDescription struct.\n//\tIt adds a number of convenience routines, but otherwise adds nothing\n//\tto the footprint of the original struct.\n//=============================================================================\nclass CAStreamBasicDescription : \n\tpublic AudioStreamBasicDescription\n{\n\n//\tConstants\npublic:\n\tstatic const AudioStreamBasicDescription\tsEmpty;\n\t\n\tenum CommonPCMFormat {\n\t\tkPCMFormatOther\t\t= 0,\n\t\tkPCMFormatFloat32\t= 1,\n\t\tkPCMFormatInt16\t\t= 2,\n\t\tkPCMFormatFixed824\t= 3,\n\t\tkPCMFormatFloat64\t= 4\n\t};\n\t\n//\tConstruction/Destruction\npublic:\n\tCAStreamBasicDescription();\n\t\n\tCAStreamBasicDescription(const AudioStreamBasicDescription &desc);\n\t\n\tCAStreamBasicDescription(\t\tdouble inSampleRate,\t\tUInt32 inFormatID,\n\t\t\t\t\t\t\t\t\tUInt32 inBytesPerPacket,\tUInt32 inFramesPerPacket,\n\t\t\t\t\t\t\t\t\tUInt32 inBytesPerFrame,\t\tUInt32 inChannelsPerFrame,\n\t\t\t\t\t\t\t\t\tUInt32 inBitsPerChannel,\tUInt32 inFormatFlags);\n\n\tCAStreamBasicDescription(\tdouble inSampleRate, UInt32 inNumChannels, CommonPCMFormat pcmf, bool inIsInterleaved) {\n\t\tunsigned wordsize;\n\n\t\tmSampleRate = inSampleRate;\n\t\tmFormatID = kAudioFormatLinearPCM;\n\t\tmFormatFlags = kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked;\n\t\tmFramesPerPacket = 1;\n\t\tmChannelsPerFrame = inNumChannels;\n\t\tmBytesPerFrame = mBytesPerPacket = 0;\n\t\tmReserved = 0;\n\n\t\tswitch (pcmf) {\n\t\tdefault:\n\t\t\treturn;\n\t\tcase kPCMFormatFloat32:\n\t\t\twordsize = 4;\n\t\t\tmFormatFlags |= kAudioFormatFlagIsFloat;\n\t\t\tbreak;\n\t\tcase kPCMFormatFloat64:\n\t\t\twordsize = 8;\n\t\t\tmFormatFlags |= kAudioFormatFlagIsFloat;\n\t\t\tbreak;\n\t\tcase kPCMFormatInt16:\n\t\t\twordsize = 2;\n\t\t\tmFormatFlags |= kAudioFormatFlagIsSignedInteger;\n\t\t\tbreak;\n\t\tcase kPCMFormatFixed824:\n\t\t\twordsize = 4;\n\t\t\tmFormatFlags |= kAudioFormatFlagIsSignedInteger | (24 << kLinearPCMFormatFlagsSampleFractionShift);\n\t\t\tbreak;\n\t\t}\n\t\tmBitsPerChannel = wordsize * 8;\n\t\tif (inIsInterleaved)\n\t\t\tmBytesPerFrame = mBytesPerPacket = wordsize * inNumChannels;\n\t\telse {\n\t\t\tmFormatFlags |= kAudioFormatFlagIsNonInterleaved;\n\t\t\tmBytesPerFrame = mBytesPerPacket = wordsize;\n\t\t}\n\t}\n\n//\tAssignment\n\tCAStreamBasicDescription&\toperator=(const AudioStreamBasicDescription& v) { SetFrom(v); return *this; }\n\n\tvoid\tSetFrom(const AudioStreamBasicDescription &desc)\n\t{\n\t\tmemcpy(this, &desc, sizeof(AudioStreamBasicDescription));\n\t}\n\t\n\tbool\t\tFromText(const char *inTextDesc) { return FromText(inTextDesc, *this); }\n\tstatic bool\tFromText(const char *inTextDesc, AudioStreamBasicDescription &outDesc);\n\t\t\t\t\t// return true if parsing was successful\n\t\n\tstatic const char *sTextParsingUsageString;\n\t\n\t// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\t//\n\t// interrogation\n\t\n\tbool\tIsPCM() const { return mFormatID == kAudioFormatLinearPCM; }\n\t\n\tbool\tPackednessIsSignificant() const\n\t{\n\t\tAssert(IsPCM(), \"PackednessIsSignificant only applies for PCM\");\n\t\treturn (SampleWordSize() << 3) != mBitsPerChannel;\n\t}\n\t\n\tbool\tAlignmentIsSignificant() const\n\t{\n\t\treturn PackednessIsSignificant() || (mBitsPerChannel & 7) != 0;\n\t}\n\t\n\tbool\tIsInterleaved() const\n\t{\n\t\treturn !(mFormatFlags & kAudioFormatFlagIsNonInterleaved);\n\t}\n\t\n\tbool\tIsSignedInteger() const\n\t{\n\t\treturn IsPCM() && (mFormatFlags & kAudioFormatFlagIsSignedInteger);\n\t}\n\t\n\tbool\tIsFloat() const\n\t{\n\t\treturn IsPCM() && (mFormatFlags & kAudioFormatFlagIsFloat);\n\t}\n\t\n\tbool\tIsNativeEndian() const\n\t{\n\t\treturn (mFormatFlags & kAudioFormatFlagIsBigEndian) == kAudioFormatFlagsNativeEndian;\n\t}\n\t\n\t// for sanity with interleaved/deinterleaved possibilities, never access mChannelsPerFrame, use these:\n\tUInt32\tNumberInterleavedChannels() const\t{ return IsInterleaved() ? mChannelsPerFrame : 1; }\t\n\tUInt32\tNumberChannelStreams() const\t\t{ return IsInterleaved() ? 1 : mChannelsPerFrame; }\n\tUInt32\tNumberChannels() const\t\t\t\t{ return mChannelsPerFrame; }\n\tUInt32\tSampleWordSize() const\t\t\t\t{ \n\t\t\treturn (mBytesPerFrame > 0 && NumberInterleavedChannels()) ? mBytesPerFrame / NumberInterleavedChannels() :  0;\n\t}\n\n\tUInt32\tFramesToBytes(UInt32 nframes) const\t{ return nframes * mBytesPerFrame; }\n\tUInt32\tBytesToFrames(UInt32 nbytes) const\t{\n\t\tAssert(mBytesPerFrame > 0, \"bytesPerFrame must be > 0 in BytesToFrames\");\n\t\treturn nbytes / mBytesPerFrame;\n\t}\n\t\n\tbool\tSameChannelsAndInterleaving(const CAStreamBasicDescription &a) const\n\t{\n\t\treturn this->NumberChannels() == a.NumberChannels() && this->IsInterleaved() == a.IsInterleaved();\n\t}\n\t\n\tbool\tIdentifyCommonPCMFormat(CommonPCMFormat &outFormat, bool *outIsInterleaved=NULL) const\n\t{\t// return true if it's a valid PCM format.\n\t\n\t\toutFormat = kPCMFormatOther;\n\t\t// trap out patently invalid formats.\n\t\tif (mFormatID != kAudioFormatLinearPCM || mFramesPerPacket != 1 || mBytesPerFrame != mBytesPerPacket || mBitsPerChannel/8 > mBytesPerFrame || mChannelsPerFrame == 0)\n\t\t\treturn false;\n\t\tbool interleaved = (mFormatFlags & kAudioFormatFlagIsNonInterleaved) == 0;\n\t\tif (outIsInterleaved != NULL) *outIsInterleaved = interleaved;\n\t\tunsigned wordsize = mBytesPerFrame;\n\t\tif (interleaved) {\n\t\t\tif (wordsize % mChannelsPerFrame != 0) return false;\n\t\t\twordsize /= mChannelsPerFrame;\n\t\t}\n\t\t\n\t\tif ((mFormatFlags & kAudioFormatFlagIsBigEndian) == kAudioFormatFlagsNativeEndian\n\t\t&& wordsize * 8 == mBitsPerChannel) {\n\t\t\t// packed and native endian, good\n\t\t\tif (mFormatFlags & kLinearPCMFormatFlagIsFloat) {\n\t\t\t\t// float: reject nonsense bits\n\t\t\t\tif (mFormatFlags & (kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagsSampleFractionMask))\n\t\t\t\t\treturn false;\n\t\t\t\tif (wordsize == 4)\n\t\t\t\t\toutFormat = kPCMFormatFloat32;\n\t\t\t\tif (wordsize == 8)\n\t\t\t\t\toutFormat = kPCMFormatFloat64;\n\t\t\t} else if (mFormatFlags & kLinearPCMFormatFlagIsSignedInteger) {\n\t\t\t\t// signed int\n\t\t\t\tunsigned fracbits = (mFormatFlags & kLinearPCMFormatFlagsSampleFractionMask) >> kLinearPCMFormatFlagsSampleFractionShift;\n\t\t\t\tif (wordsize == 4 && fracbits == 24)\n\t\t\t\t\toutFormat = kPCMFormatFixed824;\n\t\t\t\telse if (wordsize == 2 && fracbits == 0)\n\t\t\t\t\toutFormat = kPCMFormatInt16;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tbool IsCommonFloat32(bool *outIsInterleaved=NULL) const {\n\t\tCommonPCMFormat fmt;\n\t\treturn IdentifyCommonPCMFormat(fmt, outIsInterleaved) && fmt == kPCMFormatFloat32;\n\t}\n\tbool IsCommonFloat64(bool *outIsInterleaved=NULL) const {\n\t\tCommonPCMFormat fmt;\n\t\treturn IdentifyCommonPCMFormat(fmt, outIsInterleaved) && fmt == kPCMFormatFloat64;\n\t}\n\tbool IsCommonFixed824(bool *outIsInterleaved=NULL) const {\n\t\tCommonPCMFormat fmt;\n\t\treturn IdentifyCommonPCMFormat(fmt, outIsInterleaved) && fmt == kPCMFormatFixed824;\n\t}\n\tbool IsCommonInt16(bool *outIsInterleaved=NULL) const {\n\t\tCommonPCMFormat fmt;\n\t\treturn IdentifyCommonPCMFormat(fmt, outIsInterleaved) && fmt == kPCMFormatInt16;\n\t}\n\t\n\t// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\t//\n\t//\tmanipulation\n\t\n\tvoid\tSetCanonical(UInt32 nChannels, bool interleaved)\n\t\t\t\t// note: leaves sample rate untouched\n\t{\n\t\tmFormatID = kAudioFormatLinearPCM;\n\t\tUInt32 sampleSize = SizeOf32(AudioSampleType);\n\t\tmFormatFlags = kAudioFormatFlagsCanonical;\n\t\tmBitsPerChannel = 8 * sampleSize;\n\t\tmChannelsPerFrame = nChannels;\n\t\tmFramesPerPacket = 1;\n\t\tif (interleaved)\n\t\t\tmBytesPerPacket = mBytesPerFrame = nChannels * sampleSize;\n\t\telse {\n\t\t\tmBytesPerPacket = mBytesPerFrame = sampleSize;\n\t\t\tmFormatFlags |= kAudioFormatFlagIsNonInterleaved;\n\t\t}\n\t}\n\t\n\tbool\tIsCanonical() const\n\t{\n\t\tif (mFormatID != kAudioFormatLinearPCM) return false;\n\t\tUInt32 reqFormatFlags;\n\t\tUInt32 flagsMask = (kLinearPCMFormatFlagIsFloat | kLinearPCMFormatFlagIsBigEndian | kLinearPCMFormatFlagIsSignedInteger | kLinearPCMFormatFlagIsPacked | kLinearPCMFormatFlagsSampleFractionMask);\n\t\tbool interleaved = (mFormatFlags & kAudioFormatFlagIsNonInterleaved) == 0;\n\t\tunsigned sampleSize = SizeOf32(AudioSampleType);\n\t\treqFormatFlags = kAudioFormatFlagsCanonical;\n\t\tUInt32 reqFrameSize = interleaved ? (mChannelsPerFrame * sampleSize) : sampleSize;\n\n\t\treturn ((mFormatFlags & flagsMask) == reqFormatFlags\n\t\t\t&& mBitsPerChannel == 8 * sampleSize\n\t\t\t&& mFramesPerPacket == 1\n\t\t\t&& mBytesPerFrame == reqFrameSize\n\t\t\t&& mBytesPerPacket == reqFrameSize);\n\t}\n\t\n\tvoid\tSetAUCanonical(UInt32 nChannels, bool interleaved)\n\t{\n\t\tmFormatID = kAudioFormatLinearPCM;\n#if CA_PREFER_FIXED_POINT\n\t\tmFormatFlags = kAudioFormatFlagsCanonical | (kAudioUnitSampleFractionBits << kLinearPCMFormatFlagsSampleFractionShift);\n#else\n\t\tmFormatFlags = kAudioFormatFlagsCanonical;\n#endif\n\t\tmChannelsPerFrame = nChannels;\n\t\tmFramesPerPacket = 1;\n\t\tmBitsPerChannel = 8 * SizeOf32(AudioUnitSampleType);\n\t\tif (interleaved)\n\t\t\tmBytesPerPacket = mBytesPerFrame = nChannels * SizeOf32(AudioUnitSampleType);\n\t\telse {\n\t\t\tmBytesPerPacket = mBytesPerFrame = SizeOf32(AudioUnitSampleType);\n\t\t\tmFormatFlags |= kAudioFormatFlagIsNonInterleaved;\n\t\t}\n\t}\n\t\n\tvoid\tChangeNumberChannels(UInt32 nChannels, bool interleaved)\n\t\t\t\t// alter an existing format\n\t{\n\t\tAssert(IsPCM(), \"ChangeNumberChannels only works for PCM formats\");\n\t\tUInt32 wordSize = SampleWordSize();\t// get this before changing ANYTHING\n\t\tif (wordSize == 0)\n\t\t\twordSize = (mBitsPerChannel + 7) / 8;\n\t\tmChannelsPerFrame = nChannels;\n\t\tmFramesPerPacket = 1;\n\t\tif (interleaved) {\n\t\t\tmBytesPerPacket = mBytesPerFrame = nChannels * wordSize;\n\t\t\tmFormatFlags &= ~static_cast<UInt32>(kAudioFormatFlagIsNonInterleaved);\n\t\t} else {\n\t\t\tmBytesPerPacket = mBytesPerFrame = wordSize;\n\t\t\tmFormatFlags |= kAudioFormatFlagIsNonInterleaved;\n\t\t}\n\t}\n\t\n\t// _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\n\t//\n\t//\tother\n\t\n\tbool            IsEqual(const AudioStreamBasicDescription &other, bool interpretingWildcards=true) const;\n\tstatic bool     FlagIndependentEquivalence(const AudioStreamBasicDescription &x, const AudioStreamBasicDescription &y);\n    static bool     IsFunctionallyEquivalent(const AudioStreamBasicDescription &x, const AudioStreamBasicDescription &y);\n    \n\tvoid\tPrint() const {\n\t\tPrint (stdout);\n\t}\n\n\tvoid\tPrint(FILE* file) const {\n\t\tPrintFormat (file, \"\", \"AudioStreamBasicDescription:\");\t\n\t}\n\n\tvoid\tPrintFormat(FILE *f, const char *indent, const char *name) const {\n\t\tchar buf[256];\n\t\tfprintf(f, \"%s%s %s\\n\", indent, name, AsString(buf, sizeof(buf)));\n\t}\n\t\n\tvoid\tPrintFormat2(FILE *f, const char *indent, const char *name) const { // no trailing newline\n\t\tchar buf[256];\n\t\tfprintf(f, \"%s%s %s\", indent, name, AsString(buf, sizeof(buf)));\n\t}\n\n\tchar *\tAsString(char *buf, size_t bufsize, bool brief=false) const;\n\n\tstatic void Print (const AudioStreamBasicDescription &inDesc) \n\t{ \n\t\tCAStreamBasicDescription desc(inDesc);\n\t\tdesc.Print ();\n\t}\n\t\n\tOSStatus\t\t\tSave(CFPropertyListRef *outData) const;\n\t\t\n\tOSStatus\t\t\tRestore(CFPropertyListRef &inData);\n\n//\tOperations\n\tstatic bool\t\t\tIsMixable(const AudioStreamBasicDescription& inDescription) { return (inDescription.mFormatID == kAudioFormatLinearPCM) && ((inDescription.mFormatFlags & kIsNonMixableFlag) == 0); }\n\tstatic void\t\t\tNormalizeLinearPCMFormat(AudioStreamBasicDescription& ioDescription);\n\tstatic void\t\t\tNormalizeLinearPCMFormat(bool inNativeEndian, AudioStreamBasicDescription& ioDescription);\n\tstatic void\t\t\tResetFormat(AudioStreamBasicDescription& ioDescription);\n\tstatic void\t\t\tFillOutFormat(AudioStreamBasicDescription& ioDescription, const AudioStreamBasicDescription& inTemplateDescription);\n\tstatic void\t\t\tGetSimpleName(const AudioStreamBasicDescription& inDescription, char* outName, UInt32 inMaxNameLength, bool inAbbreviate, bool inIncludeSampleRate = false);\n    static void         ModifyFormatFlagsForMatching(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y, UInt32& xFlags, UInt32& yFlags, bool converterOnly);\n\n#if CoreAudio_Debug\n\tstatic void\t\t\tPrintToLog(const AudioStreamBasicDescription& inDesc);\n#endif\n};\n\nbool\t\toperator<(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y);\nbool\t\toperator==(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y);\n#if TARGET_OS_MAC || (TARGET_OS_WIN32 && (_MSC_VER > 600))\ninline bool\toperator!=(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y) { return !(x == y); }\ninline bool\toperator<=(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y) { return (x < y) || (x == y); }\ninline bool\toperator>=(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y) { return !(x < y); }\ninline bool\toperator>(const AudioStreamBasicDescription& x, const AudioStreamBasicDescription& y) { return !((x < y) || (x == y)); }\n#endif\n\nbool SanityCheck(const AudioStreamBasicDescription& x);\n\n\n#endif // __CAStreamBasicDescription_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAStreamRangedDescription.cpp",
    "content": "/*\n     File: CAStreamRangedDescription.cpp\n Abstract: CAStreamRangedDescription.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//\tSelf Include\n#include \"CAStreamRangedDescription.h\"\n#include \"CAMath.h\"\n\n//==================================================================================================\n//\tCAStreamRangedDescription\n//==================================================================================================\n\nconst AudioStreamRangedDescription\tCAStreamRangedDescription::sEmpty = { { 0.0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0.0, 0.0 } };\n\n#if CoreAudio_Debug\n#include \"CALogMacros.h\"\n\nvoid\tCAStreamRangedDescription::PrintToLog(const AudioStreamRangedDescription& inDesc)\n{\n\tPrintFloat\t\t(\"  Sample Rate:        \", inDesc.mFormat.mSampleRate);\n\tPrintFloat\t\t(\"  Max Sample Rate:    \", inDesc.mSampleRateRange.mMaximum);\n\tPrintFloat\t\t(\"  Min Sample Rate:    \", inDesc.mSampleRateRange.mMinimum);\n\tPrint4CharCode\t(\"  Format ID:          \", inDesc.mFormat.mFormatID);\n\tPrintHex\t\t(\"  Format Flags:       \", inDesc.mFormat.mFormatFlags);\n\tPrintInt\t\t(\"  Bytes per Packet:   \", inDesc.mFormat.mBytesPerPacket);\n\tPrintInt\t\t(\"  Frames per Packet:  \", inDesc.mFormat.mFramesPerPacket);\n\tPrintInt\t\t(\"  Bytes per Frame:    \", inDesc.mFormat.mBytesPerFrame);\n\tPrintInt\t\t(\"  Channels per Frame: \", inDesc.mFormat.mChannelsPerFrame);\n\tPrintInt\t\t(\"  Bits per Channel:   \", inDesc.mFormat.mBitsPerChannel);\n}\n#endif\n\nbool\tCAStreamRangedDescription::Sorter(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y)\n{\n\tbool theAnswer = false;\n\tbool isDone = false;\n\t\n\t//\tnote that if either side is 0, that field is skipped\n\t\n\t//\tformat ID is the first order sort\n\tif((!isDone) && ((x.mFormat.mFormatID != 0) && (y.mFormat.mFormatID != 0)))\n\t{\n\t\tif(x.mFormat.mFormatID != y.mFormat.mFormatID)\n\t\t{\n\t\t\t//\tformats are sorted numerically except that linear\n\t\t\t//\tPCM is always first\n\t\t\tif(x.mFormat.mFormatID == kAudioFormatLinearPCM)\n\t\t\t{\n\t\t\t\ttheAnswer = true;\n\t\t\t}\n\t\t\telse if(y.mFormat.mFormatID == kAudioFormatLinearPCM)\n\t\t\t{\n\t\t\t\ttheAnswer = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttheAnswer = x.mFormat.mFormatID < y.mFormat.mFormatID;\n\t\t\t}\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t\n\t//  mixable is always better than non-mixable for linear PCM and should be the second order sort item\n\tif((!isDone) && ((x.mFormat.mFormatID == kAudioFormatLinearPCM) && (y.mFormat.mFormatID == kAudioFormatLinearPCM)))\n\t{\n\t\tif(((x.mFormat.mFormatFlags & kIsNonMixableFlag) == 0) && ((y.mFormat.mFormatFlags & kIsNonMixableFlag) != 0))\n\t\t{\n\t\t\ttheAnswer = true;\n\t\t\tisDone = true;\n\t\t}\n\t\telse if(((x.mFormat.mFormatFlags & kIsNonMixableFlag) != 0) && ((y.mFormat.mFormatFlags & kIsNonMixableFlag) == 0))\n\t\t{\n\t\t\ttheAnswer = false;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tfloating point vs integer for linear PCM only\n\tif((!isDone) && ((x.mFormat.mFormatID == kAudioFormatLinearPCM) && (y.mFormat.mFormatID == kAudioFormatLinearPCM)))\n\t{\n\t\tif((x.mFormat.mFormatFlags & kAudioFormatFlagIsFloat) != (y.mFormat.mFormatFlags & kAudioFormatFlagIsFloat))\n\t\t{\n\t\t\t//\tfloating point is better than integer\n\t\t\ttheAnswer = y.mFormat.mFormatFlags & kAudioFormatFlagIsFloat;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tbit depth\n\tif((!isDone) && ((x.mFormat.mBitsPerChannel != 0) && (y.mFormat.mBitsPerChannel != 0)))\n\t{\n\t\tif(x.mFormat.mBitsPerChannel != y.mFormat.mBitsPerChannel)\n\t\t{\n\t\t\t//\tdeeper bit depths are higher quality\n\t\t\ttheAnswer = x.mFormat.mBitsPerChannel > y.mFormat.mBitsPerChannel;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tsample rate range\n\tif((!isDone) && fnonzero(x.mSampleRateRange.mMinimum) && fnonzero(x.mSampleRateRange.mMaximum) && fnonzero(y.mSampleRateRange.mMinimum) && fnonzero(y.mSampleRateRange.mMaximum))\n\t{\n\t\tif(x.mSampleRateRange != y.mSampleRateRange)\n\t\t{\n\t\t\t//\thigher sample rates are higher quality\n\t\t\ttheAnswer = x.mSampleRateRange > y.mSampleRateRange;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tsample rate\n\tif((!isDone) && fnonzero(x.mFormat.mSampleRate) && fnonzero(y.mFormat.mSampleRate))\n\t{\n\t\tif(fnotequal(x.mFormat.mSampleRate, y.mFormat.mSampleRate))\n\t\t{\n\t\t\t//\thigher sample rates are higher quality\n\t\t\ttheAnswer = x.mFormat.mSampleRate > y.mFormat.mSampleRate;\n\t\t\tisDone = true;\n\t\t}\n\t}\n\t\n\t//\tnumber of channels\n\tif((!isDone) && ((x.mFormat.mChannelsPerFrame != 0) && (y.mFormat.mChannelsPerFrame != 0)))\n\t{\n\t\tif(x.mFormat.mChannelsPerFrame != y.mFormat.mChannelsPerFrame)\n\t\t{\n\t\t\t//\tmore channels is higher quality\n\t\t\ttheAnswer = x.mFormat.mChannelsPerFrame < y.mFormat.mChannelsPerFrame;\n\t\t\t//\tcommented out to prevent this from being flagged as a dead store by the static analyzer\n\t\t\t//isDone = true;\n\t\t}\n\t}\n\t\n\treturn theAnswer;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAStreamRangedDescription.h",
    "content": "/*\n     File: CAStreamRangedDescription.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAStreamRangedDescription_h__)\n#define __CAStreamRangedDescription_h__\n\n//==================================================================================================\n//\tIncludes\n//==================================================================================================\n\n//  Super Class Includes\n#include <CoreAudio/AudioHardware.h>\n\n//  PublicUtility Includes\n#include \"CAAudioValueRange.h\"\n#include \"CAStreamBasicDescription.h\"\n\n//==================================================================================================\n//\tCAStreamRangedDescription\n//==================================================================================================\n\nclass CAStreamRangedDescription\n:\n\tpublic AudioStreamRangedDescription\n{\n\n//\tConstants\npublic:\n\tstatic const AudioStreamRangedDescription\tsEmpty;\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\t\t\t\tCAStreamRangedDescription()\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ memset(this, 0, sizeof(AudioStreamRangedDescription)); }\n\t\t\t\t\t\t\t\tCAStreamRangedDescription(const CAStreamRangedDescription& inFormat)\t\t\t\t\t\t\t\t\t\t\t\t{ mFormat = inFormat.mFormat; mSampleRateRange = inFormat.mSampleRateRange; }\n\t\t\t\t\t\t\t\tCAStreamRangedDescription(const AudioStreamRangedDescription& inFormat)\t\t\t\t\t\t\t\t\t\t\t\t{ mFormat = inFormat.mFormat; mSampleRateRange = inFormat.mSampleRateRange; }\n\t\t\t\t\t\t\t\tCAStreamRangedDescription(const AudioStreamBasicDescription& inFormat)\t\t\t\t\t\t\t\t\t\t\t\t{ mFormat = inFormat; mSampleRateRange.mMinimum = inFormat.mSampleRate; mSampleRateRange.mMaximum = inFormat.mSampleRate; }\n\t\t\t\t\t\t\t\tCAStreamRangedDescription(const AudioStreamBasicDescription& inFormat, const AudioValueRange& inSampleRateRange)\t{ mFormat = inFormat; mSampleRateRange = inSampleRateRange; }\n\tCAStreamRangedDescription&  operator=(const CAStreamRangedDescription& inFormat)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ mFormat = inFormat.mFormat; mSampleRateRange = inFormat.mSampleRateRange; return *this; }\n\tCAStreamRangedDescription&  operator=(const AudioStreamRangedDescription& inFormat)\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ mFormat = inFormat.mFormat; mSampleRateRange = inFormat.mSampleRateRange; return *this; }\n\n\tstatic bool\t\t\t\t\tIsMixable(const AudioStreamRangedDescription& inDescription) { return (inDescription.mFormat.mFormatID == kAudioFormatLinearPCM) && ((inDescription.mFormat.mFormatFlags & kIsNonMixableFlag) == 0); }\n#if CoreAudio_Debug\n\tstatic void\t\t\t\t\tPrintToLog(const AudioStreamRangedDescription& inDesc);\n#endif\n\tstatic bool\t\t\t\t\tSorter(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y);\n\n};\n\ninline bool operator<(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{\treturn\t(x.mFormat.mFormatID == y.mFormat.mFormatID) ? \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x.mFormat < y.mFormat) && (x.mSampleRateRange < y.mSampleRateRange) :\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x.mFormat.mFormatID == kAudioFormatLinearPCM) ? false : (x.mFormat.mFormatID < y.mFormat.mFormatID); }\ninline bool operator==(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t{ return (x.mFormat == y.mFormat) && (x.mSampleRateRange == y.mSampleRateRange); }\n#if TARGET_OS_MAC || (TARGET_OS_WIN32 && (_MSC_VER > 600))\ninline bool\toperator!=(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t{ return !(x == y); }\ninline bool\toperator<=(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t{ return (x < y) || (x == y); }\ninline bool\toperator>=(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t{ return !(x < y); }\ninline bool\toperator>(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return !((x < y) || (x == y)); }\n#endif\n\ninline bool operator<(const AudioStreamBasicDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{\treturn\t(x.mFormatID == y.mFormat.mFormatID) ? \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x < y.mFormat) && (x.mSampleRate < y.mSampleRateRange.mMinimum) :\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x.mFormatID == kAudioFormatLinearPCM) ? false : (x.mFormatID < y.mFormat.mFormatID); }\ninline bool operator<(const AudioStreamRangedDescription& x, const AudioStreamBasicDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{\treturn\t(x.mFormat.mFormatID == y.mFormatID) ? \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x.mFormat < y) && (x.mSampleRateRange.mMinimum < y.mSampleRate) :\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x.mFormat.mFormatID == kAudioFormatLinearPCM) ? false : (x.mFormat.mFormatID < y.mFormatID); }\ninline bool operator==(const AudioStreamBasicDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return (x == y.mFormat) && CAAudioValueRange::ContainsValue(y.mSampleRateRange, x.mSampleRate); }\ninline bool operator==(const AudioStreamRangedDescription& x, const AudioStreamBasicDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return (x.mFormat == y) && CAAudioValueRange::ContainsValue(x.mSampleRateRange, y.mSampleRate); }\n#if TARGET_OS_MAC || (TARGET_OS_WIN32 && (_MSC_VER > 600))\ninline bool\toperator!=(const AudioStreamBasicDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return !(x == y); }\ninline bool\toperator!=(const AudioStreamRangedDescription& x, const AudioStreamBasicDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return !(x == y); }\ninline bool\toperator<=(const AudioStreamBasicDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return (x < y) || (x == y); }\ninline bool\toperator<=(const AudioStreamRangedDescription& x, const AudioStreamBasicDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return (x < y) || (x == y); }\ninline bool\toperator>=(const AudioStreamBasicDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return !(x < y); }\ninline bool\toperator>=(const AudioStreamRangedDescription& x, const AudioStreamBasicDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return !(x < y); }\ninline bool\toperator>(const AudioStreamBasicDescription& x, const AudioStreamRangedDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return !((x < y) || (x == y)); }\ninline bool\toperator>(const AudioStreamRangedDescription& x, const AudioStreamBasicDescription& y)\t\t\t\t\t\t\t\t\t\t\t\t\t{ return !((x < y) || (x == y)); }\n#endif\n\n//\tSTL Functors\nstruct\tCAStreamRangedDescription_EqualToASBD\n:\n\tpublic std::unary_function<AudioStreamRangedDescription, bool>\n{\n\t\t\tCAStreamRangedDescription_EqualToASBD(const AudioStreamBasicDescription& inFormat)\t: mFormat(inFormat) {}\n\tbool\toperator()(const AudioStreamRangedDescription& x) const\t\t\t\t\t\t\t\t{ return mFormat == x; }\n\t\n\tAudioStreamBasicDescription\tmFormat;\n};\n\nstruct\tCAStreamRangedDescription_ReverseSort\n:\n\tpublic std::binary_function<AudioStreamRangedDescription, AudioStreamRangedDescription, bool>\n{\n\tbool\toperator()(const AudioStreamRangedDescription& x, const AudioStreamRangedDescription& y) const\t{ return CAStreamRangedDescription::Sorter(x, y); }\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAThreadSafeList.h",
    "content": "/*\n     File: CAThreadSafeList.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAThreadSafeList_h__\n#define __CAThreadSafeList_h__\n\n#include \"CAAtomicStack.h\"\n\n//  linked list of T's\n//\tT must define operator ==\ntemplate <class T>\nclass TThreadSafeList {\nprivate:\n\tenum EEventType { kAdd, kRemove, kClear };\n\tclass Node {\n\tpublic:\n\t\tNode *\t\tmNext;\n\t\tEEventType\tmEventType;\n\t\tT\t\t\tmObject;\n\t\t\n\t\tNode *&\tnext() { return mNext; }\n\t};\n\npublic:\n\tclass iterator {\n\tpublic:\n\t\titerator() { }\n\t\titerator(Node *n) : mNode(n) { }\n\t\t\n\t\tbool operator == (const iterator &other) const { return this->mNode == other.mNode; }\n\t\tbool operator != (const iterator &other) const { return this->mNode != other.mNode; }\n\t\t\n\t\tT & operator * () const { return mNode->mObject; }\n\t\t\n\t\titerator & operator ++ () { mNode = mNode->next(); return *this; }\t// preincrement\n\t\titerator operator ++ (int) { iterator tmp = *this; mNode = mNode->next(); return tmp; } // postincrement\n\t\t\n\tprivate:\n\t\tNode *\t\tmNode;\n\t};\n\t\n\tTThreadSafeList() { }\n\t~TThreadSafeList()\n\t{\n\t\tmActiveList.free_all();\n\t\tmPendingList.free_all();\n\t\tmFreeList.free_all();\n\t}\n\t\n\t// These may be called on any thread\n\t\n\tvoid\tdeferred_add(const T &obj)\t// can be called on any thread\n\t{\n\t\tNode *node = AllocNode();\n\t\tnode->mEventType = kAdd;\n\t\tnode->mObject = obj;\n\t\tmPendingList.push_atomic(node);\n\t\t//mPendingList.dump(\"pending after add\");\n\t}\n\t\n\tvoid\tdeferred_remove(const T &obj)\t// can be called on any thread\n\t{\n\t\tNode *node = AllocNode();\n\t\tnode->mEventType = kRemove;\n\t\tnode->mObject = obj;\n\t\tmPendingList.push_atomic(node);\n\t\t//mPendingList.dump(\"pending after remove\");\n\t}\n\t\n\tvoid\tdeferred_clear()\t\t\t\t\t// can be called on any thread\n\t{\n\t\tNode *node = AllocNode();\n\t\tnode->mEventType = kClear;\n\t\tmPendingList.push_atomic(node);\n\t}\n\t\n\t// These must be called from only one thread\n\t\n\tvoid\tupdate()\t\t// must only be called from one thread\n\t{\n\t\tNodeStack reversed;\n\t\tNode *event, *node, *next;\n\t\tbool workDone = false;\n\t\t\n\t\t// reverse the events so they are in order\n\t\tevent = mPendingList.pop_all();\n\t\twhile (event != NULL) {\n\t\t\tnext = event->mNext;\n\t\t\treversed.push_NA(event);\n\t\t\tevent = next;\n\t\t\tworkDone = true;\n\t\t}\n\t\tif (workDone) {\n\t\t\t//reversed.dump(\"pending popped\");\n\t\t\t//mActiveList.dump(\"active before update\");\n\t\t\t\n\t\t\t// now process them\n\t\t\twhile ((event = reversed.pop_NA()) != NULL) {\n\t\t\t\tswitch (event->mEventType) {\n\t\t\t\tcase kAdd:\n\t\t\t\t\t{\n\t\t\t\t\t\tNode **pnode;\n\t\t\t\t\t\tbool needToInsert = true;\n\t\t\t\t\t\tfor (pnode = mActiveList.phead(); *pnode != NULL; pnode = &node->mNext) {\n\t\t\t\t\t\t\tnode = *pnode;\n\t\t\t\t\t\t\tif (node->mObject == event->mObject) {\n\t\t\t\t\t\t\t\t//printf(\"already active!!!\\n\");\n\t\t\t\t\t\t\t\tFreeNode(event);\n\t\t\t\t\t\t\t\tneedToInsert = false;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (needToInsert) {\n\t\t\t\t\t\t\t// link the new event in at the end of the active list\n\t\t\t\t\t\t\t*pnode = event;\n\t\t\t\t\t\t\tevent->mNext = NULL;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase kRemove:\n\t\t\t\t\t// find matching node in the active list, remove it\n\t\t\t\t\tfor (Node **pnode = mActiveList.phead(); *pnode != NULL; ) {\n\t\t\t\t\t\tnode = *pnode;\n\t\t\t\t\t\tif (node->mObject == event->mObject) {\n\t\t\t\t\t\t\t*pnode = node->mNext;\t// remove from linked list\n\t\t\t\t\t\t\tFreeNode(node);\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpnode = &node->mNext;\n\t\t\t\t\t}\n\t\t\t\t\t// dispose the request node\n\t\t\t\t\tFreeNode(event);\n\t\t\t\t\tbreak;\n\t\t\t\tcase kClear:\n\t\t\t\t\tfor (node = mActiveList.head(); node != NULL; ) {\n\t\t\t\t\t\tnext = node->mNext;\n\t\t\t\t\t\tFreeNode(node);\n\t\t\t\t\t\tnode = next;\n\t\t\t\t\t}\n\t\t\t\t\tFreeNode(event);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t//printf(\"invalid node type %d!\\n\", event->mEventType);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t//mActiveList.dump(\"active after update\");\n\t\t}\n\t}\n\t\n\titerator begin() const {\n\t\t//mActiveList.dump(\"active at begin\");\n\t\treturn iterator(mActiveList.head());\n\t}\n\titerator end() const { return iterator(NULL); }\n\n\t\nprivate:\n\tNode *\tAllocNode()\n\t{\n\t\tNode *node = mFreeList.pop_atomic();\n\t\tif (node == NULL)\n\t\t\tnode = (Node *)CA_malloc(sizeof(Node));\n\t\treturn node;\n\t}\n\t\n\tvoid\tFreeNode(Node *node)\n\t{\n\t\tmFreeList.push_atomic(node);\n\t}\n\nprivate:\n\tclass NodeStack : public TAtomicStack<Node> {\n\tpublic:\n\t\tvoid free_all() {\n\t\t\tNode *node;\n\t\t\twhile ((node = this->pop_NA()) != NULL)\n\t\t\t\tfree(node);\n\t\t}\n\t\t\n\t\tNode **\tphead() { return &this->mHead; }\n\t\tNode *\thead() const { return this->mHead; }\n\t};\n\n\tNodeStack\tmActiveList;\t// what's actually in the container - only accessed on one thread\n\tNodeStack\tmPendingList;\t// add or remove requests - threadsafe\n\tNodeStack\tmFreeList;\t\t// free nodes for reuse - threadsafe\n};\n\n#endif // __CAThreadSafeList_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CATink.h",
    "content": "/*\n     File: CATink.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CATink_h__)\n#define __CATink_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//\tSystem Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreServices/CoreServices.h>\n#else\n\t#include <CoreServices.h>\n#endif\n\n\n//=============================================================================\n//\tCATink\n//\n//\tA Tink is a small jump island that can make one function appear as if it\n//\thas many addresses. Note that Tinks are not supported for 64 bit environments\n//\tas the APIs that made tinks useful have been replaced by APIs that do away\n//\twith all the reasons for using a tink.\n//=============================================================================\n\ntemplate <class F>\nclass CATink\n{\n\npublic:\n\tCATink(F proc) { Set(proc); }\n\t\n\t~CATink() { Set((F)0xDEADDEAD); }\t\t// jump to an obviously bad (odd) address if accessed after destruction\n\n#if TARGET_CPU_PPC\n\tvoid Set(F proc)\n\t{\n\t\t/*\n\t\t\tlis\t\tr11,0x1234\n\t\t00000000: 3D601234  lis        r11,4660\n\t\t\tori\t\tr11,r11,0x5678\n\t\t00000004: 616B5678  ori        r11,r11,$5678\n\t\t\tmtctr\tr11\n\t\t00000008: 7D6903A6  mtctr      r11\n\t\t\tbctr\n\t\t0000000C: 4E800420  bctr\n\t\t*/\n\t\tUInt32 p = UInt32(proc);\n\t\tmCode[0] = 0x3D600000 | (p >> 16);\n\t\tmCode[1] = 0x616B0000 | (p & 0xFFFF);\n\t\tmCode[2] = 0x7D6903A6;\n\t\tmCode[3] = 0x4E800420;\n\t\tMakeDataExecutable(mCode, sizeof(mCode));\n\t}\n\t\n\toperator F () { return F(mCode); }\n\nprivate:\n\tUInt32\t\tmCode[4];\n#elif TARGET_CPU_X86\n\tvoid Set(F proc)\n\t{\n\t\t/*\n\t\t\t<tink>:   push   $0x12345678\n\t\t\t<tink+5>: ret    \n\t\t\t<tink>:   0x34567868\n\t\t\t<tink+4>: 0x00e8c312\n\t\t*/\n\t\tUInt32 p = UInt32(proc);\n\t\tmCode[0] = ((p & 0xFFFFFF) << 8) | 0x00000068;\n\t\tmCode[1] = 0xCCCCC300 | (p >> 24);\n\t\tMakeDataExecutable(mCode, sizeof(mCode));\n\t}\n\n\toperator F () { return F(&mCode[0]); }\n\nprivate:\n\tUInt32\t\tmCode[2];\n#else\n\t#warning: CPU not directly supported by CATink\n\t\n\t// For other CPU's, just wrap the function pointer for now.\n\t// this bypasses what we're trying to accomplish with the Tink\n\t// (multiple unique \"instances\" of a function), but it will at\n\t// least compile and run.\n\n\tvoid Set(F proc) { mProcPtr = proc; }\n\t\n\toperator F () { return mProcPtr; }\nprivate:\n\tF\t\t\tmProcPtr;\n#endif\n\n//\tTinks cannot be allocated in STL Containers, so we make a few key methods private\nprivate:\n\tCATink(){}\n\tCATink(const CATink&){}\n\tCATink& operator=(const CATink&){ return *this;}\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CATokenMap.h",
    "content": "/*\n     File: CATokenMap.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CATokenMap_h__)\n#define __CATokenMap_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n//  System Includes\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n\n//  PublicUtility Includes\n#include \"CAMutex.h\"\n\n//  Standard Library Includes\n#include <map>\n#include <iterator>\n\n//=============================================================================\n//\tCATokenMap\n//=============================================================================\n\ntemplate <class T>\nclass\tCATokenMap\n{\n\n//\tTypes\nprivate:\n\ttypedef std::map<UInt32, T*>\tTokenMap;\n\n//\tConstruction/Destruction\npublic:\n\t\t\tCATokenMap() : mTokenMap(), mNextToken(256), mTokenMapMutex(\"CATokenMap Mutex\") {}\n\t\t\t~CATokenMap() {}\n\n//\tOperations\npublic:\n\tbool\tLock()\n\t{\n\t\treturn mTokenMapMutex.Lock();\n\t}\n\t\n\tvoid\tUnlock()\n\t{\n\t\tmTokenMapMutex.Unlock();\n\t}\n\n\tUInt32\tGetToken(T* inObject) const\n\t{\n\t\tCAMutex::Locker theLocker(const_cast<CAMutex&>(mTokenMapMutex));\n\t\tUInt32 theAnswer = 0;\n\t\ttypename TokenMap::const_iterator i = mTokenMap.begin();\n\t\twhile((theAnswer == 0) && (i != mTokenMap.end()))\n\t\t{\n\t\t\tif(i->second == inObject)\n\t\t\t{\n\t\t\t\ttheAnswer = i->first;\n\t\t\t}\n\t\t\tstd::advance(i, 1);\n\t\t}\n\t\treturn theAnswer;\n\t}\n\t\n\tT*\t\tGetObject(UInt32 inToken) const\n\t{\n\t\tCAMutex::Locker theLocker(const_cast<CAMutex&>(mTokenMapMutex));\n\t\ttypename TokenMap::const_iterator i = mTokenMap.find(inToken);\n\t\treturn i != mTokenMap.end() ? i->second : NULL;\n\t}\n\n\tT*\t\tGetObject(const void* inToken) const\n\t{\n\t\t#if __LP64__\n\t\t\treturn GetObject((UInt32)((UInt64)inToken));\n\t\t#else\n\t\t\treturn GetObject((UInt32)inToken);\n\t\t#endif\n\t}\n\t\n\tUInt32\tGetNumberObjects() const\n\t{\n\t\tCAMutex::Locker theLocker(const_cast<CAMutex&>(mTokenMapMutex));\n\t\treturn static_cast<UInt32>(mTokenMap.size());\n\t}\n\t\n\tT*\t\tGetObjectByIndex(UInt32 inIndex) const\n\t{\n\t\tT* theAnswer = NULL;\n\t\tCAMutex::Locker theLocker(const_cast<CAMutex&>(mTokenMapMutex));\n\t\tif(inIndex < mTokenMap.size())\n\t\t{\n\t\t\ttypename TokenMap::const_iterator i = mTokenMap.begin();\n\t\t\tstd::advance(i, inIndex);\n\t\t\ttheAnswer = (i != mTokenMap.end()) ? i->second : NULL;\n\t\t}\n\t\treturn theAnswer;\n\t}\n\t\n\tvoid\tAddMapping(UInt32 inToken, T* inObject)\n\t{\n\t\tCAMutex::Locker theLocker(mTokenMapMutex);\n\t\ttypename TokenMap::iterator i = mTokenMap.find(inToken);\n\t\tif(i != mTokenMap.end())\n\t\t{\n\t\t\ti->second = inObject;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tmTokenMap.insert(typename TokenMap::value_type(inToken, inObject));\n\t\t}\n\t}\n\t\n\tvoid\tRemoveMapping(UInt32 inToken, T* /*inObject*/)\n\t{\n\t\tCAMutex::Locker theLocker(mTokenMapMutex);\n\t\ttypename TokenMap::iterator i = mTokenMap.find(inToken);\n\t\tif(i != mTokenMap.end())\n\t\t{\n\t\t\tmTokenMap.erase(i);\n\t\t}\n\t}\n\t\n\tUInt32\tGetNextToken()\n\t{\n\t\treturn mNextToken++;\n\t}\n\t\n\tUInt32\tMapObject(T* inObject)\n\t{\n\t\tCAMutex::Locker theLocker(mTokenMapMutex);\n\t\tUInt32 theToken = GetNextToken();\n\t\tmTokenMap.insert(typename TokenMap::value_type(theToken, inObject));\n\t\treturn theToken;\n\t}\n\t\n\tvoid\tUnmapObject(T* inObject)\n\t{\n\t\tCAMutex::Locker theLocker(mTokenMapMutex);\n\t\tbool isDone = false;\n\t\ttypename TokenMap::iterator i = mTokenMap.begin();\n\t\twhile(!isDone && (i != mTokenMap.end()))\n\t\t{\n\t\t\tif(i->second == inObject)\n\t\t\t{\n\t\t\t\tmTokenMap.erase(i);\n\t\t\t\tisDone = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tstd::advance(i, 1);\n\t\t\t}\n\t\t}\n\t}\n\n//\tImplementation\nprivate:\t\n\tTokenMap\tmTokenMap;\n\tUInt32\t\tmNextToken;\n\tCAMutex\t\tmTokenMapMutex;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAVectorUnit.cpp",
    "content": "/*\n     File: CAVectorUnit.cpp\n Abstract: CAVectorUnit.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAVectorUnit.h\"\n\n#if !TARGET_OS_WIN32\n\t#include <sys/sysctl.h>\n#elif HAS_IPP\n\t#include \"ippdefs.h\"\n\t#include \"ippcore.h\"\n#endif\n\nint gCAVectorUnitType = kVecUninitialized;\n\n#if TARGET_OS_WIN32\n// Use cpuid to check if SSE2 is available.\n// Before calling this function make sure cpuid is available\nstatic SInt32 IsSSE2Available()\n{\n\tint return_value;\n\n\t{\n\t\tint r_edx;\n\t\t_asm\n\t\t{\n\t\t\tmov eax, 0x01\n\t\t\tcpuid\n\t\t\tmov r_edx, edx\n\t\t}\n\t\treturn_value = (r_edx >> 26) & 0x1;\n\t}\n\treturn return_value;\n}\n\n// Use cpuid to check if SSE3 is available.\n// Before calling this function make sure cpuid is available\nstatic SInt32 IsSSE3Available()\n{\n\tSInt32 return_value;\n\n\t{\n\t\tSInt32 r_ecx;\n\t\t_asm\n\t\t{\n\t\t\tmov eax, 0x01\n\t\t\tcpuid\n\t\t\tmov r_ecx, ecx\n\t\t}\n\t\treturn_value = r_ecx & 0x1;\n\t}\n\treturn return_value;\n}\n\n// Return true if the cpuid instruction is available.\n// The cpuid instruction is available if bit 21 in the EFLAGS register can be changed\n// This function may not work on Intel CPUs prior to Pentium (didn't test)\nstatic bool IsCpuidAvailable()\n{\n\tSInt32 return_value = 0x0;\n\t_asm{\n\t\tpushfd    ;\t\t\t//push original EFLAGS \n\t\tpop eax   ;\t\t\t//get original EFLAGS \n\t\tmov ecx, eax   ;\t//save original EFLAGS \n\t\txor eax, 200000h  ; //flip ID bit in EFLAGS \n\t\tpush eax   ;\t\t//save new EFLAGS value on stack \n\t\tpopfd    ;\t\t\t//replace current EFLAGS value \n\t\tpushfd    ;\t\t\t//get new EFLAGS \n\t\tpop eax   ;\t\t\t//store new EFLAGS in EAX \n\t\txor eax, ecx   ;\t \n\t\tje end_cpuid_identify  ; //can't toggle ID bit\n\t\tmov return_value, 0x1;\t\nend_cpuid_identify:\n\t\tnop;\n\t\t}\n\t\treturn return_value;\n}\n\n#endif\n\nSInt32\tCAVectorUnit_Examine()\n{\n\tint result = kVecNone;\n\t\n#if TARGET_OS_WIN32\n#if HAS_IPP\t\n\t// Initialize the static IPP library! This needs to be done before\n\t// any IPP function calls, otherwise we may have a performance penalty\n\tint status = ippStaticInit();\n\tif ( status == ippStsNonIntelCpu )\n\t{\n\t\tIppCpuType cpuType = ippGetCpuType();\n\t\tif ( cpuType >= ippCpuSSE || cpuType <= ippCpuSSE42 )\n\t\t\tippStaticInitCpu( cpuType );\n\t}\n#endif\n\t{\n\t\t// On Windows we use cpuid to detect the vector unit because it works on Intel and AMD.\n\t\t// The IPP library does not detect SSE on AMD processors.\n\t\tif (IsCpuidAvailable())\n\t\t{\n\t\t\tif(IsSSE3Available())\n\t\t\t{\n\t\t\t\tresult = kVecSSE3;\n\t\t\t}\n\t\t\telse if(IsSSE2Available())\n\t\t\t{\n\t\t\t\tresult = kVecSSE2;\n\t\t\t}\n\t\t}\n\t}\n#elif TARGET_OS_MAC\n#if DEBUG\n\tif (getenv(\"CA_NoVector\")) {\n\t\tfprintf(stderr, \"CA_NoVector set; Vector unit optimized routines will be bypassed\\n\");\n\t\treturn result;\n\t} \n\telse\n#endif\n\t{\n\t#if (TARGET_CPU_PPC || TARGET_CPU_PPC64)\n\t\tint sels[2] = { CTL_HW, HW_VECTORUNIT };\n\t\tint vType = 0; //0 == scalar only\n\t\tsize_t length = sizeof(vType);\n\t\tint error = sysctl(sels, 2, &vType, &length, NULL, 0);\n\t\tif (!error && vType > 0)\n\t\t\tresult = kVecAltivec;\n\t#elif (TARGET_CPU_X86 || TARGET_CPU_X86_64)\n\t\tstatic const struct { const char* kName; const int kVectype; } kStringVectypes[] = {\n\t\t\t{ \"hw.optional.avx1_0\", kVecAVX1 }, { \"hw.optional.sse3\", kVecSSE3 }, { \"hw.optional.sse2\", kVecSSE2 }\n\t\t};\n\t\tstatic const size_t kNumStringVectypes = sizeof(kStringVectypes)/sizeof(kStringVectypes[0]);\n\t\tint i = 0, answer = 0;\n\t\twhile(i != kNumStringVectypes)\n\t\t{\n\t\t\tsize_t length = sizeof(answer);\n\t\t\tint error = sysctlbyname(kStringVectypes[i].kName, &answer, &length, NULL, 0);\n\t\t\tif (!error && answer)\n\t\t\t{\n\t\t\t\tresult = kStringVectypes[i].kVectype;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\t++i;\n\t\t};\n\t#elif CA_ARM_NEON\n\t\tresult = kVecNeon;\n\t#endif\n\t}\n#endif\n\tgCAVectorUnitType = result;\n\treturn result;\n}\n\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAVectorUnit.h",
    "content": "/*\n     File: CAVectorUnit.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAVectorUnit_h__\n#define __CAVectorUnit_h__\n\n#include <TargetConditionals.h>\n#include \"CAVectorUnitTypes.h\"\n#include <stdlib.h>\n#include <stdio.h>\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CFBase.h>\n#else\n\t#include \"CFBase.h\"\n#endif\n\n// Unify checks for vector units.\n// Allow setting an environment variable \"CA_NoVector\" to turn off vectorized code at runtime (very useful for performance testing).\n\nextern int gCAVectorUnitType;\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nextern SInt32 CAVectorUnit_Examine();\t// expensive. use GetType() for lazy initialization and caching.\n\nstatic inline SInt32 CAVectorUnit_GetType()\n{\n\tint x = gCAVectorUnitType;\n\treturn (x != kVecUninitialized) ? x : CAVectorUnit_Examine();\n}\n\nstatic inline Boolean CAVectorUnit_HasVectorUnit()\n{\n\treturn CAVectorUnit_GetType() > kVecNone;\n}\n\n#ifdef __cplusplus\n}\n#endif\n\n\n#ifdef __cplusplus\nclass CAVectorUnit {\npublic:\n\tstatic SInt32\t\tGetVectorUnitType() { return CAVectorUnit_GetType(); }\n\tstatic bool\t\t\tHasVectorUnit() { return GetVectorUnitType() > kVecNone; }\n\tstatic bool\t\t\tHasAltivec() { return GetVectorUnitType() == kVecAltivec; }\n\tstatic bool\t\t\tHasSSE2() { return GetVectorUnitType() >= kVecSSE2; }\n\tstatic bool\t\t\tHasSSE3() { return GetVectorUnitType() >= kVecSSE3; }\n\tstatic bool\t\t\tHasAVX1() { return GetVectorUnitType() >= kVecAVX1; }\n\tstatic bool\t\t\tHasNeon() { return GetVectorUnitType() == kVecNeon; }\n};\n#endif\n\n#endif // __CAVectorUnit_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAVectorUnitTypes.h",
    "content": "/*\n     File: CAVectorUnitTypes.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAVectorUnitTypes_h__\n#define __CAVectorUnitTypes_h__\n\nenum {\n\tkVecUninitialized = -1,\n\tkVecNone = 0,\n\tkVecAltivec = 1,\n\tkVecSSE2 = 100,\n\tkVecSSE3 = 101,\n\tkVecAVX1 = 110,\n\tkVecNeon = 200\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAVolumeCurve.cpp",
    "content": "/*\n     File: CAVolumeCurve.cpp\n Abstract: CAVolumeCurve.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#include \"CAVolumeCurve.h\"\n#include \"CADebugMacros.h\"\n#include <math.h>\n\n//=============================================================================\n//\tCAVolumeCurve\n//=============================================================================\n\nCAVolumeCurve::CAVolumeCurve()\n:\n\tmTag(0),\n\tmCurveMap(),\n\tmIsApplyingTransferFunction(true),\n\tmTransferFunction(kPow2Over1Curve),\n\tmRawToScalarExponentNumerator(2.0f),\n\tmRawToScalarExponentDenominator(1.0f)\n{\n}\n\nCAVolumeCurve::~CAVolumeCurve()\n{\n}\n\nSInt32\tCAVolumeCurve::GetMinimumRaw() const\n{\n\tSInt32 theAnswer = 0;\n\t\n\tif(!mCurveMap.empty())\n\t{\n\t\tCurveMap::const_iterator theIterator = mCurveMap.begin();\n\t\ttheAnswer = theIterator->first.mMinimum;\n\t}\n\t\n\treturn theAnswer;\n}\n\nSInt32\tCAVolumeCurve::GetMaximumRaw() const\n{\n\tSInt32 theAnswer = 0;\n\t\n\tif(!mCurveMap.empty())\n\t{\n\t\tCurveMap::const_iterator theIterator = mCurveMap.begin();\n\t\tstd::advance(theIterator, static_cast<int>(mCurveMap.size() - 1));\n\t\ttheAnswer = theIterator->first.mMaximum;\n\t}\n\t\n\treturn theAnswer;\n}\n\nFloat32\tCAVolumeCurve::GetMinimumDB() const\n{\n\tFloat32 theAnswer = 0;\n\t\n\tif(!mCurveMap.empty())\n\t{\n\t\tCurveMap::const_iterator theIterator = mCurveMap.begin();\n\t\ttheAnswer = theIterator->second.mMinimum;\n\t}\n\t\n\treturn theAnswer;\n}\n\nFloat32\tCAVolumeCurve::GetMaximumDB() const\n{\n\tFloat32 theAnswer = 0;\n\t\n\tif(!mCurveMap.empty())\n\t{\n\t\tCurveMap::const_iterator theIterator = mCurveMap.begin();\n\t\tstd::advance(theIterator, static_cast<int>(mCurveMap.size() - 1));\n\t\ttheAnswer = theIterator->second.mMaximum;\n\t}\n\t\n\treturn theAnswer;\n}\n\nvoid\tCAVolumeCurve::SetTransferFunction(UInt32 inTransferFunction)\n{\n\tmTransferFunction = inTransferFunction;\n\t\n\t//\tfigure out the co-efficients\n\tswitch(inTransferFunction)\n\t{\n\t\tcase kLinearCurve:\n\t\t\tmIsApplyingTransferFunction = false;\n\t\t\tmRawToScalarExponentNumerator = 1.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kPow1Over3Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 1.0f;\n\t\t\tmRawToScalarExponentDenominator = 3.0f;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kPow1Over2Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 1.0f;\n\t\t\tmRawToScalarExponentDenominator = 2.0f;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kPow3Over4Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 3.0f;\n\t\t\tmRawToScalarExponentDenominator = 4.0f;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kPow3Over2Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 3.0f;\n\t\t\tmRawToScalarExponentDenominator = 2.0f;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kPow2Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 2.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\t\n\t\tcase kPow3Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 3.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow4Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 4.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow5Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 5.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow6Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 6.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow7Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 7.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow8Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 8.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow9Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 9.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow10Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 10.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow11Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 11.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tcase kPow12Over1Curve:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 12.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t\t\n\t\tdefault:\n\t\t\tmIsApplyingTransferFunction = true;\n\t\t\tmRawToScalarExponentNumerator = 2.0f;\n\t\t\tmRawToScalarExponentDenominator = 1.0f;\n\t\t\tbreak;\n\t};\n}\n\nvoid\tCAVolumeCurve::AddRange(SInt32 inMinRaw, SInt32 inMaxRaw, Float32 inMinDB, Float32 inMaxDB)\n{\n\tCARawPoint theRaw(inMinRaw, inMaxRaw);\n\tCADBPoint theDB(inMinDB, inMaxDB);\n\t\n\tbool isOverlapped = false;\n\tbool isDone = false;\n\tCurveMap::iterator theIterator = mCurveMap.begin();\n\twhile((theIterator != mCurveMap.end()) && !isOverlapped && !isDone)\n\t{\n\t\tisOverlapped = CARawPoint::Overlap(theRaw, theIterator->first);\n\t\tisDone = theRaw >= theIterator->first;\n\t\t\n\t\tif(!isOverlapped && !isDone)\n\t\t{\n\t\t\tstd::advance(theIterator, 1);\n\t\t}\n\t}\n\t\n\tif(!isOverlapped)\n\t{\n\t\tmCurveMap.insert(CurveMap::value_type(theRaw, theDB));\n\t}\n\telse\n\t{\n\t\tDebugMessage(\"CAVolumeCurve::AddRange: new point overlaps\");\n\t}\n}\n\nvoid\tCAVolumeCurve::ResetRange()\n{\n\tmCurveMap.clear();\n}\n\nbool\tCAVolumeCurve::CheckForContinuity() const\n{\n\tbool theAnswer = true;\n\t\n\tCurveMap::const_iterator theIterator = mCurveMap.begin();\n\tif(theIterator != mCurveMap.end())\n\t{\n\t\tSInt32 theRaw = theIterator->first.mMinimum;\n\t\tFloat32 theDB = theIterator->second.mMinimum;\n\t\tdo\n\t\t{\n\t\t\tSInt32 theRawMin = theIterator->first.mMinimum;\n\t\t\tSInt32 theRawMax = theIterator->first.mMaximum;\n\t\t\tSInt32 theRawRange = theRawMax - theRawMin;\n\t\t\t\n\t\t\tFloat32 theDBMin = theIterator->second.mMinimum;\n\t\t\tFloat32 theDBMax = theIterator->second.mMaximum;\n\t\t\tFloat32 theDBRange = theDBMax - theDBMin;\n\n\t\t\ttheAnswer = theRaw == theRawMin;\n\t\t\ttheAnswer = theAnswer && (theDB == theDBMin);\n\t\t\t\n\t\t\ttheRaw += theRawRange;\n\t\t\ttheDB += theDBRange;\n\t\t\t\n\t\t\tstd::advance(theIterator, 1);\n\t\t}\n\t\twhile((theIterator != mCurveMap.end()) && theAnswer);\n\t}\n\t\n\treturn theAnswer;\n}\n\nSInt32\tCAVolumeCurve::ConvertDBToRaw(Float32 inDB) const\n{\n\t//\tclamp the value to the dB range\n\tFloat32 theOverallDBMin = GetMinimumDB();\n\tFloat32 theOverallDBMax = GetMaximumDB();\n\t\n\tif(inDB < theOverallDBMin) inDB = theOverallDBMin;\n\tif(inDB > theOverallDBMax) inDB = theOverallDBMax;\n\t\n\t//\tget the first entry in the curve map;\n\tCurveMap::const_iterator theIterator = mCurveMap.begin();\n\t\n\t//\tinitialize the answer to the minimum raw of the first item in the curve map\n\tSInt32 theAnswer = theIterator->first.mMinimum;\n\t\n\t//\titerate through the curve map until we run out of dB\n\tbool isDone = false;\n\twhile(!isDone && (theIterator != mCurveMap.end()))\n\t{\n\t\tSInt32 theRawMin = theIterator->first.mMinimum;\n\t\tSInt32 theRawMax = theIterator->first.mMaximum;\n\t\tSInt32 theRawRange = theRawMax - theRawMin;\n\t\t\n\t\tFloat32 theDBMin = theIterator->second.mMinimum;\n\t\tFloat32 theDBMax = theIterator->second.mMaximum;\n\t\tFloat32 theDBRange = theDBMax - theDBMin;\n\t\t\n\t\tFloat32 theDBPerRaw = theDBRange / static_cast<Float32>(theRawRange);\n\t\t\n\t\t//\tfigure out how many steps we are into this entry in the curve map\n\t\tif(inDB > theDBMax)\n\t\t{\n\t\t\t//\twe're past the end of this one, so add in the whole range for this entry\n\t\t\ttheAnswer += theRawRange;\n\t\t}\n\t\telse\n\t\t{\n\t\t\t//\tit's somewhere within the current entry\n\t\t\t//\tfigure out how many steps it is\n\t\t\tFloat32 theNumberRawSteps = inDB - theDBMin;\n\t\t\ttheNumberRawSteps /= theDBPerRaw;\n\t\t\t\n\t\t\t//\tonly move in whole steps\n\t\t\ttheNumberRawSteps = roundf(theNumberRawSteps);\n\t\t\t\n\t\t\t//\tadd this many steps to the answer\n\t\t\ttheAnswer += static_cast<SInt32>(theNumberRawSteps);\n\t\t\t\n\t\t\t//\tmark that we are done\n\t\t\tisDone = true;\n\t\t}\n\t\t\n\t\t//\tgo to the next entry in the curve map\n\t\tstd::advance(theIterator, 1);\n\t}\n\t\n\treturn theAnswer;\n}\n\nFloat32\tCAVolumeCurve::ConvertRawToDB(SInt32 inRaw) const\n{\n\tFloat32 theAnswer = 0;\n\t\n\t//\tclamp the raw value\n\tSInt32 theOverallRawMin = GetMinimumRaw();\n\tSInt32 theOverallRawMax = GetMaximumRaw();\n\t\n\tif(inRaw < theOverallRawMin) inRaw = theOverallRawMin;\n\tif(inRaw > theOverallRawMax) inRaw = theOverallRawMax;\n\t\n\t//\tfigure out how many raw steps need to be taken from the first one\n\tSInt32 theNumberRawSteps = inRaw - theOverallRawMin;\n\n\t//\tget the first item in the curve map\n\tCurveMap::const_iterator theIterator = mCurveMap.begin();\n\t\n\t//\tinitialize the answer to the minimum dB of the first item in the curve map\n\ttheAnswer = theIterator->second.mMinimum;\n\t\n\t//\titerate through the curve map until we run out of steps\n\twhile((theNumberRawSteps > 0) && (theIterator != mCurveMap.end()))\n\t{\n\t\t//\tcompute some values\n\t\tSInt32 theRawMin = theIterator->first.mMinimum;\n\t\tSInt32 theRawMax = theIterator->first.mMaximum;\n\t\tSInt32 theRawRange = theRawMax - theRawMin;\n\t\t\n\t\tFloat32 theDBMin = theIterator->second.mMinimum;\n\t\tFloat32 theDBMax = theIterator->second.mMaximum;\n\t\tFloat32 theDBRange = theDBMax - theDBMin;\n\t\t\n\t\tFloat32 theDBPerRaw = theDBRange / static_cast<Float32>(theRawRange);\n\t\t\n\t\t//\tthere might be more steps than the current map entry accounts for\n\t\tSInt32 theRawStepsToAdd = std::min(theRawRange, theNumberRawSteps);\n\t\t\n\t\t//\tadd this many steps worth of db to the answer;\n\t\ttheAnswer += theRawStepsToAdd * theDBPerRaw;\n\t\t\n\t\t//\tfigure out how many steps are left\n\t\ttheNumberRawSteps -= theRawStepsToAdd;\n\t\t\n\t\t//\tgo to the next map entry\n\t\tstd::advance(theIterator, 1);\n\t}\n\t\n\treturn theAnswer;\n}\n\nFloat32\tCAVolumeCurve::ConvertRawToScalar(SInt32 inRaw) const\n{\n\t//\tget some important values\n\tFloat32\ttheDBMin = GetMinimumDB();\n\tFloat32\ttheDBMax = GetMaximumDB();\n\tFloat32\ttheDBRange = theDBMax - theDBMin;\n\tSInt32\ttheRawMin = GetMinimumRaw();\n\tSInt32\ttheRawMax = GetMaximumRaw();\n\tSInt32\ttheRawRange = theRawMax - theRawMin;\n\t\n\t//\trange the raw value\n\tif(inRaw < theRawMin) inRaw = theRawMin;\n\tif(inRaw > theRawMax) inRaw = theRawMax;\n\n\t//\tcalculate the distance in the range inRaw is\n\tFloat32 theAnswer = static_cast<Float32>(inRaw - theRawMin) / static_cast<Float32>(theRawRange);\n\n\t//\tonly apply a curve to the scalar values if the dB range is greater than 30\n\tif(mIsApplyingTransferFunction && (theDBRange > 30.0f))\n\t{\n\t\ttheAnswer = powf(theAnswer, mRawToScalarExponentNumerator / mRawToScalarExponentDenominator);\n\t}\n\n\treturn theAnswer;\n}\n\nFloat32\tCAVolumeCurve::ConvertDBToScalar(Float32 inDB) const\n{\n\tSInt32 theRawValue = ConvertDBToRaw(inDB);\n\tFloat32 theAnswer = ConvertRawToScalar(theRawValue);\n\treturn theAnswer;\n}\n\nSInt32\tCAVolumeCurve::ConvertScalarToRaw(Float32 inScalar) const\n{\n\t//\trange the scalar value\n\tinScalar = std::min(1.0f, std::max(0.0f, inScalar));\n\t\n\t//\tget some important values\n\tFloat32\ttheDBMin = GetMinimumDB();\n\tFloat32\ttheDBMax = GetMaximumDB();\n\tFloat32\ttheDBRange = theDBMax - theDBMin;\n\tSInt32\ttheRawMin = GetMinimumRaw();\n\tSInt32\ttheRawMax = GetMaximumRaw();\n\tSInt32\ttheRawRange = theRawMax - theRawMin;\n\t\n\t//\thave to undo the curve if the dB range is greater than 30\n\tif(mIsApplyingTransferFunction && (theDBRange > 30.0f))\n\t{\n\t\tinScalar = powf(inScalar, mRawToScalarExponentDenominator / mRawToScalarExponentNumerator);\n\t}\n\t\n\t//\tnow we can figure out how many raw steps this is\n\tFloat32 theNumberRawSteps = inScalar * static_cast<Float32>(theRawRange);\n\ttheNumberRawSteps = roundf(theNumberRawSteps);\n\t\n\t//\tthe answer is the minimum raw value plus the number of raw steps\n\tSInt32 theAnswer = theRawMin + static_cast<SInt32>(theNumberRawSteps);\n\t\n\treturn theAnswer;\n}\n\nFloat32\tCAVolumeCurve::ConvertScalarToDB(Float32 inScalar) const\n{\n\tSInt32 theRawValue = ConvertScalarToRaw(inScalar);\n\tFloat32 theAnswer = ConvertRawToDB(theRawValue);\n\treturn theAnswer;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAVolumeCurve.h",
    "content": "/*\n     File: CAVolumeCurve.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#if !defined(__CAVolumeCurve_h__)\n#define __CAVolumeCurve_h__\n\n//=============================================================================\n//\tIncludes\n//=============================================================================\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreAudio/CoreAudioTypes.h>\n#else\n\t#include <CoreAudioTypes.h>\n#endif\n#include <map>\n\n//=============================================================================\n//\tTypes\n//=============================================================================\n\nstruct CARawPoint\n{\n\tSInt32\tmMinimum;\n\tSInt32\tmMaximum;\n\t\n\tCARawPoint() : mMinimum(0), mMaximum(0) {}\n\tCARawPoint(const CARawPoint& inPoint) : mMinimum(inPoint.mMinimum), mMaximum(inPoint.mMaximum) {}\n\tCARawPoint(SInt32 inMinimum, SInt32 inMaximum) : mMinimum(inMinimum), mMaximum(inMaximum) {}\n\tCARawPoint&\toperator=(const CARawPoint& inPoint) { mMinimum = inPoint.mMinimum; mMaximum = inPoint.mMaximum; return *this; }\n\t\n\tstatic bool\tOverlap(const CARawPoint& x, const CARawPoint& y) { return (x.mMinimum < y.mMaximum) && (x.mMaximum > y.mMinimum); }\n};\n\ninline bool\toperator<(const CARawPoint& x, const CARawPoint& y) { return x.mMinimum < y.mMinimum; }\ninline bool\toperator==(const CARawPoint& x, const CARawPoint& y) { return (x.mMinimum == y.mMinimum) && (x.mMaximum == y.mMaximum); }\ninline bool\toperator!=(const CARawPoint& x, const CARawPoint& y) { return !(x == y); }\ninline bool\toperator<=(const CARawPoint& x, const CARawPoint& y) { return (x < y) || (x == y); }\ninline bool\toperator>=(const CARawPoint& x, const CARawPoint& y) { return !(x < y); }\ninline bool\toperator>(const CARawPoint& x, const CARawPoint& y) { return !((x < y) || (x == y)); }\n\nstruct CADBPoint\n{\n\tFloat32\tmMinimum;\n\tFloat32\tmMaximum;\n\t\n\tCADBPoint() : mMinimum(0), mMaximum(0) {}\n\tCADBPoint(const CADBPoint& inPoint) : mMinimum(inPoint.mMinimum), mMaximum(inPoint.mMaximum) {}\n\tCADBPoint(Float32 inMinimum, Float32 inMaximum) : mMinimum(inMinimum), mMaximum(inMaximum) {}\n\tCADBPoint&\toperator=(const CADBPoint& inPoint) { mMinimum = inPoint.mMinimum; mMaximum = inPoint.mMaximum; return *this; }\n\t\n\tstatic bool\tOverlap(const CADBPoint& x, const CADBPoint& y) { return (x.mMinimum < y.mMaximum) && (x.mMaximum >= y.mMinimum); }\n};\n\ninline bool\toperator<(const CADBPoint& x, const CADBPoint& y) { return x.mMinimum < y.mMinimum; }\ninline bool\toperator==(const CADBPoint& x, const CADBPoint& y) { return (x.mMinimum == y.mMinimum) && (x.mMaximum == y.mMaximum); }\ninline bool\toperator!=(const CADBPoint& x, const CADBPoint& y) { return !(x == y); }\ninline bool\toperator<=(const CADBPoint& x, const CADBPoint& y) { return (x < y) || (x == y); }\ninline bool\toperator>=(const CADBPoint& x, const CADBPoint& y) { return !(x < y); }\ninline bool\toperator>(const CADBPoint& x, const CADBPoint& y) { return !((x < y) || (x == y)); }\n\n//=============================================================================\n//\tCAVolumeCurve\n//=============================================================================\n\nclass CAVolumeCurve\n{\n\n//\tConstants\npublic:\n\tenum\n\t{\n\t\t\t\t\tkLinearCurve\t\t= 0,\n\t\t\t\t\tkPow1Over3Curve\t\t= 1,\n\t\t\t\t\tkPow1Over2Curve\t\t= 2,\n\t\t\t\t\tkPow3Over4Curve\t\t= 3,\n\t\t\t\t\tkPow3Over2Curve\t\t= 4,\n\t\t\t\t\tkPow2Over1Curve\t\t= 5,\n\t\t\t\t\tkPow3Over1Curve\t\t= 6,\n\t\t\t\t\tkPow4Over1Curve\t\t= 7,\n\t\t\t\t\tkPow5Over1Curve\t\t= 8,\n\t\t\t\t\tkPow6Over1Curve\t\t= 9,\n\t\t\t\t\tkPow7Over1Curve\t\t= 10,\n\t\t\t\t\tkPow8Over1Curve\t\t= 11,\n\t\t\t\t\tkPow9Over1Curve\t\t= 12,\n\t\t\t\t\tkPow10Over1Curve\t= 13,\n\t\t\t\t\tkPow11Over1Curve\t= 14,\n\t\t\t\t\tkPow12Over1Curve\t= 15\n\t};\n\n//\tConstruction/Destruction\npublic:\n\t\t\t\t\tCAVolumeCurve();\n\tvirtual\t\t\t~CAVolumeCurve();\n\n//\tAttributes\npublic:\n\tUInt32\t\t\tGetTag() const\t\t\t{ return mTag; }\n\tvoid\t\t\tSetTag(UInt32 inTag)\t{ mTag = inTag; }\n\tSInt32\t\t\tGetMinimumRaw() const;\n\tSInt32\t\t\tGetMaximumRaw() const;\n\tFloat32\t\t\tGetMinimumDB() const;\n\tFloat32\t\t\tGetMaximumDB() const;\n\t\n\tvoid\t\t\tSetIsApplyingTransferFunction(bool inIsApplyingTransferFunction)  { mIsApplyingTransferFunction = inIsApplyingTransferFunction; }\n\tUInt32\t\t\tGetTransferFunction() const { return mTransferFunction; }\n\tvoid\t\t\tSetTransferFunction(UInt32 inTransferFunction);\n\n//\tOperations\npublic:\n\tvoid\t\t\tAddRange(SInt32 mMinRaw, SInt32 mMaxRaw, Float32 inMinDB, Float32 inMaxDB);\n\tvoid\t\t\tResetRange();\n\tbool\t\t\tCheckForContinuity() const;\n\t\n\tSInt32\t\t\tConvertDBToRaw(Float32 inDB) const;\n\tFloat32\t\t\tConvertRawToDB(SInt32 inRaw) const;\n\tFloat32\t\t\tConvertRawToScalar(SInt32 inRaw) const;\n\tFloat32\t\t\tConvertDBToScalar(Float32 inDB) const;\n\tSInt32\t\t\tConvertScalarToRaw(Float32 inScalar) const;\n\tFloat32\t\t\tConvertScalarToDB(Float32 inScalar) const;\n\n//\tImplementation\nprivate:\n\ttypedef\tstd::map<CARawPoint, CADBPoint>\tCurveMap;\n\t\n\tUInt32\t\t\tmTag;\n\tCurveMap\t\tmCurveMap;\n\tbool\t\t\tmIsApplyingTransferFunction;\n\tUInt32\t\t\tmTransferFunction;\n\tFloat32\t\t\tmRawToScalarExponentNumerator;\n\tFloat32\t\t\tmRawToScalarExponentDenominator;\n\n};\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAXException.cpp",
    "content": "/*\n     File: CAXException.cpp\n Abstract: CAXException.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"CAXException.h\"\n\nCAXException::WarningHandler CAXException::sWarningHandler = NULL;\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/CAXException.h",
    "content": "/*\n     File: CAXException.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __CAXException_h__\n#define __CAXException_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <CoreFoundation/CoreFoundation.h>\n#else\n\t#include <ConditionalMacros.h>\n\t#include <CoreFoundation.h>\n#endif\n#include \"CADebugMacros.h\"\n#include <ctype.h>\n//#include <stdio.h>\n#include <string.h>\n\n\nclass CAX4CCString {\npublic:\n\tCAX4CCString(OSStatus error) {\n\t\t// see if it appears to be a 4-char-code\n\t\tUInt32 beErr = CFSwapInt32HostToBig(error);\n\t\tchar *str = mStr;\n\t\tmemcpy(str + 1, &beErr, 4);\n\t\tif (isprint(str[1]) && isprint(str[2]) && isprint(str[3]) && isprint(str[4])) {\n\t\t\tstr[0] = str[5] = '\\'';\n\t\t\tstr[6] = '\\0';\n\t\t} else if (error > -200000 && error < 200000)\n\t\t\t// no, format it as an integer\n\t\t\tsnprintf(str, sizeof(mStr), \"%d\", (int)error);\n\t\telse\n\t\t\tsnprintf(str, sizeof(mStr), \"0x%x\", (int)error);\n\t}\n\tconst char *get() const { return mStr; }\n\toperator const char *() const { return mStr; }\nprivate:\n\tchar mStr[16];\n};\n\nclass CAX4CCStringNoQuote {\npublic:\n\tCAX4CCStringNoQuote(OSStatus error) {\n\t\t// see if it appears to be a 4-char-code\n\t\tUInt32 beErr = CFSwapInt32HostToBig(error);\n\t\tchar *str = mStr;\n\t\tmemcpy(str, &beErr, 4);\n\t\tif (isprint(str[0]) && isprint(str[1]) && isprint(str[2]) && isprint(str[3])) {\n\t\t\tstr[4] = '\\0';\n\t\t} else if (error > -200000 && error < 200000)\n\t\t\t// no, format it as an integer\n\t\t\tsnprintf(str, sizeof(mStr), \"%d\", (int)error);\n\t\telse\n\t\t\tsnprintf(str, sizeof(mStr), \"0x%x\", (int)error);\n\t}\n\tconst char *get() const { return mStr; }\n\toperator const char *() const { return mStr; }\nprivate:\n\tchar mStr[16];\n};\n\n\n// An extended exception class that includes the name of the failed operation\nclass CAXException {\npublic:\n\tCAXException(const char *operation, OSStatus err) :\n\t\tmError(err)\n\t\t{\n\t\t\tif (operation == NULL)\n\t\t\t\tmOperation[0] = '\\0';\n\t\t\telse if (strlen(operation) >= sizeof(mOperation)) {\n\t\t\t\tmemcpy(mOperation, operation, sizeof(mOperation) - 1);\n\t\t\t\tmOperation[sizeof(mOperation) - 1] = '\\0';\n\t\t\t} else\n\n\t\t\tstrlcpy(mOperation, operation, sizeof(mOperation));\n\t\t}\n\t\n\tchar *FormatError(char *str, size_t strsize) const\n\t{\n\t\treturn FormatError(str, strsize, mError);\n\t}\n\t\n\tchar\t\t\t\tmOperation[256];\n\tconst OSStatus\t\tmError;\n\t\n\t// -------------------------------------------------\n\t\n\ttypedef void (*WarningHandler)(const char *msg, OSStatus err);\n\t\n\tstatic char *FormatError(char *str, size_t strsize, OSStatus error)\n\t{\n\t\tstrlcpy(str, CAX4CCString(error), strsize);\n\t\treturn str;\n\t}\n\t\n\tstatic void Warning(const char *s, OSStatus error)\n\t{\n\t\tif (sWarningHandler)\n\t\t\t(*sWarningHandler)(s, error);\n\t}\n\t\n\tstatic void SetWarningHandler(WarningHandler f) { sWarningHandler = f; }\nprivate:\n\tstatic WarningHandler\tsWarningHandler;\n};\n\n#if\tDEBUG || CoreAudio_Debug\n\t#define XThrowIfError(error, operation)\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tOSStatus __err = error;\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (__err) {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN4(\"%s:%d: about to throw %s: %s\", __FILE__, __LINE__, CAX4CCString(__err).get(), operation);\\\n\t\t\t\t__THROW_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tthrow CAXException(operation, __err);\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\n\t#define XThrowIf(condition, error, operation)\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (condition) {\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tOSStatus __err = error;\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN4(\"%s:%d: about to throw %s: %s\", __FILE__, __LINE__, CAX4CCString(__err).get(), operation);\\\n\t\t\t\t__THROW_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tthrow CAXException(operation, __err);\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\n\t#define XRequireNoError(error, label)\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tOSStatus __err = error;\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (__err) {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN4(\"%s:%d: about to throw %s: %s\", __FILE__, __LINE__, CAX4CCString(__err).get(), #error);\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto label;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\t\n\t#define XAssert(assertion)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (!(assertion)) {\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN3(\"%s:%d: error: failed assertion: %s\", __FILE__, __LINE__, #assertion);\t\t\\\n\t\t\t\t__ASSERT_STOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\t\n\t#define XAssertNoError(error)\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tOSStatus __err = error;\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (__err) {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN4(\"%s:%d: error %s: %s\", __FILE__, __LINE__, CAX4CCString(__err).get(), #error);\\\n\t\t\t\tSTOP;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\n\t#define ca_require_noerr(errorCode, exceptionLabel)\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tint evalOnceErrorCode = (errorCode);\t\t\t\t\t\t\t\t\\\n\t\t\tif ( __builtin_expect(0 != evalOnceErrorCode, 0) )\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN5(\"ca_require_noerr: [%s, %d] (goto %s;) %s:%d\",\t\\\n\t\t\t\t\t#errorCode,\tevalOnceErrorCode,\t\t \t\t\t\t\t\t\\\n\t\t\t\t\t#exceptionLabel,\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__FILE__,\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__LINE__);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto exceptionLabel;\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n\t#define ca_verify_noerr(errorCode)\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tint evalOnceErrorCode = (errorCode);\t\t\t\t\t\t\t\t\\\n\t\t\tif ( __builtin_expect(0 != evalOnceErrorCode, 0) )\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN4(\"ca_verify_noerr: [%s, %d] %s:%d\",\t\t\t\t\\\n\t\t\t\t\t#errorCode,\tevalOnceErrorCode,\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__FILE__,\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__LINE__);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n\t#define ca_debug_string(message)\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tDebugMessageN3(\"ca_debug_string: %s %s:%d\",\t\t\t\t\t\t\t\\\n\t\t\t\tmessage,\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t__FILE__,\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t__LINE__);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n\n\t#define ca_verify(assertion)\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif ( __builtin_expect(!(assertion), 0) )\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN3(\"ca_verify: %s %s:%d\",\t\t\t\t\t\t\t\\\n\t\t\t\t\t#assertion,\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__FILE__,\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__LINE__);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n\t#define ca_require(assertion, exceptionLabel)\t\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif ( __builtin_expect(!(assertion), 0) )\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tDebugMessageN4(\"ca_require: %s %s %s:%d\",\t\t\t\t\t\t\\\n\t\t\t\t\t#assertion,\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t#exceptionLabel,\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__FILE__,\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\t\t__LINE__);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto exceptionLabel;\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n   #define ca_check(assertion)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n      do\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n      {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n          if ( __builtin_expect(!(assertion), 0) )\t\t\t\t\t\t\t\t\\\n          {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n              DebugMessageN3(\"ca_check: %s %s:%d\",\t\t\t\t\t\t\t\\\n                  #assertion,\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n                  __FILE__,\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n                  __LINE__);\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n          }\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n      } while ( 0 )\n\t\t\n#else\n\t#define XThrowIfError(error, operation)\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tOSStatus __err = error;\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (__err) {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tthrow CAXException(operation, __err);\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\n\t#define XThrowIf(condition, error, operation)\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (condition) {\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tOSStatus __err = error;\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tthrow CAXException(operation, __err);\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\n\t#define XRequireNoError(error, label)\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tOSStatus __err = error;\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (__err) {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto label;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\n\t#define XAssert(assertion)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif (!(assertion)) {\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\n\t#define XAssertNoError(error)\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo {\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t/*OSStatus __err =*/ error;\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while (0)\n\n\t#define ca_require_noerr(errorCode, exceptionLabel)\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif ( __builtin_expect(0 != (errorCode), 0) )\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto exceptionLabel;\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n\t#define ca_verify_noerr(errorCode)\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif ( 0 != (errorCode) )\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n\t#define ca_debug_string(message)\n\n\t#define ca_verify(assertion)\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif ( !(assertion) )\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n\t#define ca_require(assertion, exceptionLabel)\t\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif ( __builtin_expect(!(assertion), 0) )\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t\tgoto exceptionLabel;\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n   #define ca_check(assertion)\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\tdo\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\tif ( !(assertion) )\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t\t}\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\\\n\t\t} while ( 0 )\n\n\n#endif\n\n#define XThrow(error, operation) XThrowIf(true, error, operation)\n#define XThrowIfErr(error) XThrowIfError(error, #error)\n\n#endif // __CAXException_h__\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/MatrixMixerVolumes.cpp",
    "content": "/*\n     File: MatrixMixerVolumes.cpp\n Abstract: MatrixMixerVolumes.h\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#include \"MatrixMixerVolumes.h\"\n#include \"CAXException.h\"\n\nOSStatus\tNumberChannels (AudioUnit \t\t \tau,\n\t\t\t\t\t\t\tAudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\tUInt32\t\t\t\t&outChans);\n\n\nOSStatus PrintBuses (FILE* file, const char* str, AudioUnit au, AudioUnitScope inScope)\n{\n\tOSStatus result;\n\tUInt32 busCount;\n\tUInt32 theSize = sizeof(busCount);\n\n\tca_require_noerr (result = AudioUnitGetProperty (au, kAudioUnitProperty_ElementCount,\t\n\t\t\t\t\t\t\tinScope, 0, &busCount, &theSize), home);\n\t\t\n\tfprintf (file, \"\\t%s Elements:\\n\\t\\t\", str);\n\tfor (UInt32 i = 0; i < busCount; ++i) {\n\t\tFloat32 val;\n\t\tca_require_noerr (result = AudioUnitGetParameter (au, kMatrixMixerParam_Enable, inScope, i, &val), home);\n\t\tUInt32 numChans;\n\t\tca_require_noerr (result = NumberChannels (au, inScope, i, numChans), home);\n\t\tchar frameCharStart = (val != 0 ? '[' : '{');\n\t\tchar frameCharEnd = (val != 0 ? ']' : '}');\n\t\tfprintf (file, \"%d:%c%d, %c%c  \", (int)i, frameCharStart, (int)numChans, (val != 0 ? 'T' : 'F'), frameCharEnd);\n\t}\n\tfprintf (file, \"\\n\");\nhome:\n\treturn result;\n}\n\nvoid\tPrintMatrixMixerVolumes (FILE* file, AudioUnit au)\n{\n\tUInt32 dims[2];\n\tUInt32 theSize =  sizeof(UInt32) * 2;\n\tFloat32 *theVols = NULL;\n\tOSStatus result;\n\t\n// this call will fail if the unit is NOT initialized as it would present an incomplete state\t\n\tca_require_noerr (result = AudioUnitGetProperty (au, kAudioUnitProperty_MatrixDimensions,\t\n\t\t\t\t\t\t\tkAudioUnitScope_Global, 0, dims, &theSize), home);\n\n\ttheSize = ((dims[0] + 1) * (dims[1] + 1)) * sizeof(Float32);\n\t\n\ttheVols\t= static_cast<Float32*> (malloc (theSize));\n\t\n\tca_require_noerr (result = AudioUnitGetProperty (au, kAudioUnitProperty_MatrixLevels,\t\n\t\t\t\t\t\t\tkAudioUnitScope_Global, 0, theVols, &theSize), home);\n\nhome:\n\tif (result) {\n\t\tif (theVols)\n\t\t\tfree(theVols);\n\t\treturn;\n\t}\n\t\n\ttheSize /= sizeof(Float32);\n\t\n\tunsigned int inputs = dims[0];\n\tunsigned int outputs = dims[1];\n\n\tfprintf (file, \"\\tInput Channels = %d, Output Channels = %d\\n\", (int)dims[0], (int)dims[1]);\n\tPrintBuses (file, \"Input\", au, kAudioUnitScope_Input);\n\tPrintBuses (file, \"Output\", au, kAudioUnitScope_Output);\n\tfprintf (file, \"\\tGlobal Volume: %.3f\\n\", theVols [theSize - 1]);\n\tfor (unsigned int i = 0; i < (inputs + 1); ++i) {\n\t\tif (i < inputs) {\n\t\t\tfprintf (file, \"\\t%.3f   \", theVols[(i + 1) * (outputs + 1) - 1]);\n\t\t\t\n\t\t\tfor (unsigned int j = 0; j < outputs; ++j)\n\t\t\t\tfprintf (file, \"(%.3f) \", theVols[(i * (outputs  + 1)) + j]);\n\t\t} else {\n\t\t\tfprintf (file, \"\\t        \");\n\t\t\tfor (unsigned int j = 0; j < outputs; ++j)\n\t\t\t\tfprintf (file, \" %.3f  \", theVols[(i * (outputs + 1)) + j]);\n\t\t}\n\t\tfprintf (file, \"\\n\");\n\t}\n\n#if 0\n\tfor (unsigned int i = 0; i < theSize; ++i)\n\t\tprintf (\"%f, \", theVols[i]);\n#endif\n\tfree(theVols);\n}\n\n// Utility routine that gets the number of channels from an audio unit\nOSStatus\tNumberChannels (AudioUnit \t\t \tau,\n\t\t\t\t\t\t\tAudioUnitScope\t\tinScope,\n\t\t\t\t\t\t\tAudioUnitElement\tinEl,\n\t\t\t\t\t\t\tUInt32\t\t\t\t&outChans)\n{\n\tAudioStreamBasicDescription desc;\n\tUInt32 dataSize = sizeof (AudioStreamBasicDescription);\n\tOSStatus result = AudioUnitGetProperty (au, kAudioUnitProperty_StreamFormat,\n\t\t\t\t\t\t\t\tinScope, inEl, \n\t\t\t\t\t\t\t\t&desc, &dataSize);\n\tif (!result)\n\t\toutChans = desc.mChannelsPerFrame;\n\treturn result;\n}\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/CoreAudio/PublicUtility/MatrixMixerVolumes.h",
    "content": "/*\n     File: MatrixMixerVolumes.h\n Abstract: Part of CoreAudio Utility Classes\n  Version: 1.1\n \n Disclaimer: IMPORTANT:  This Apple software is supplied to you by Apple\n Inc. (\"Apple\") in consideration of your agreement to the following\n terms, and your use, installation, modification or redistribution of\n this Apple software constitutes acceptance of these terms.  If you do\n not agree with these terms, please do not use, install, modify or\n redistribute this Apple software.\n \n In consideration of your agreement to abide by the following terms, and\n subject to these terms, Apple grants you a personal, non-exclusive\n license, under Apple's copyrights in this original Apple software (the\n \"Apple Software\"), to use, reproduce, modify and redistribute the Apple\n Software, with or without modifications, in source and/or binary forms;\n provided that if you redistribute the Apple Software in its entirety and\n without modifications, you must retain this notice and the following\n text and disclaimers in all such redistributions of the Apple Software.\n Neither the name, trademarks, service marks or logos of Apple Inc. may\n be used to endorse or promote products derived from the Apple Software\n without specific prior written permission from Apple.  Except as\n expressly stated in this notice, no other rights or licenses, express or\n implied, are granted by Apple herein, including but not limited to any\n patent rights that may be infringed by your derivative works or by other\n works in which the Apple Software may be incorporated.\n \n The Apple Software is provided by Apple on an \"AS IS\" basis.  APPLE\n MAKES NO WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION\n THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS\n FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND\n OPERATION ALONE OR IN COMBINATION WITH YOUR PRODUCTS.\n \n IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL\n OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION,\n MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED\n AND WHETHER UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE),\n STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN ADVISED OF THE\n POSSIBILITY OF SUCH DAMAGE.\n \n Copyright (C) 2014 Apple Inc. All Rights Reserved.\n \n*/\n#ifndef __MatrixMixerVolumes_h__\n#define __MatrixMixerVolumes_h__\n\n#if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)\n\t#include <AudioUnit/AudioUnit.h>\n#else\n\t#include <AudioUnit.h>\n#endif\n\n#if defined(__cplusplus)\nextern \"C\"\n{\n#endif\n\n// prints the matrix mixer volumes of a specific audio unit to the given file\nvoid\t PrintMatrixMixerVolumes (FILE* file, AudioUnit au);\t\t\t\t\n\n// prints the mixer volumes for the specific scope of the audio unit\n// results will be printed to the speficied file \"file\" with identifiying string tag \"str\"\t\t\nOSStatus PrintBuses (FILE* file, char* str, AudioUnit au, AudioUnitScope inScope);\n#if defined(__cplusplus)\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/CoreAudioUtilityClasses/Readme.rtf",
    "content": "{\\rtf1\\ansi\\ansicpg1252\\cocoartf1318\\cocoasubrtf160\n\\cocoascreenfonts1{\\fonttbl\\f0\\fswiss\\fcharset0 Helvetica;}\n{\\colortbl;\\red255\\green255\\blue255;}\n\\margl1440\\margr1440\\vieww16900\\viewh9860\\viewkind0\n\\pard\\tx720\\tx1440\\tx2160\\tx2880\\tx3600\\tx4320\\tx5040\\tx5760\\tx6480\\tx7200\\tx7920\\tx8640\\pardirnatural\n\n\\f0\\fs24 \\cf0 ReadMe for  CoreAudio Utility Classes\\\n------------------------------------------------------\\\n\\\nXcode Version requirements\\\n---------------------------------------\\\nThese classes should be installed on a system running Xcode 5.0.2 or later. \\\n\\\nInstallation Instructions\\\n-------------------------------\\\nTo make use of the Core Audio Utility Classes, add the necessary source files to your project. \\\n\\\n\\\nCompiler flags and Warnings\\\n---------------------------------------\\\n\tThere are some compiler flags that can be defined in target settings to suppress warnings. \\\n\\\nCA_NO_CORE_SERVICES \\\n\tDefine this compiler flag if you are not using any CoreServices methods. for e.g. FSRef conversion methods\\\n\\\nCA_USE_AUDIO_PLUGIN_ONLY\\\n\tDefine this compiler flag if you are building the AudioUnit as AudioComponent style plugins only and not as Component Manager style plugins.\\\n\\\nFeedback\\\n-------------\\\nTo send feedback to Apple about these utility classes, use the feedback form at\\\nthis location:\\\n\t\\\n\thttp://developer.apple.com/contact\\\n\\\nCopyright (C) 2014 Apple Inc. All rights reserved.\\\n}"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AUComponent.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef AUCOMPONENT_H\n#define AUCOMPONENT_H\n#include <MacTypes.h>\n#include <CoreFoundation/CFString.h>\n#include <AudioToolbox/AudioComponent.h>\n#include <CoreAudio/CoreAudioTypes.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef AudioComponentInstance AudioUnit;\nenum {\n kAudioUnitType_Output = 'auou',\n kAudioUnitType_MusicDevice = 'aumu',\n kAudioUnitType_MusicEffect = 'aumf',\n kAudioUnitType_FormatConverter = 'aufc',\n kAudioUnitType_Effect = 'aufx',\n kAudioUnitType_Mixer = 'aumx',\n kAudioUnitType_Panner = 'aupn',\n kAudioUnitType_Generator = 'augn',\n kAudioUnitType_OfflineEffect = 'auol',\n kAudioUnitType_MIDIProcessor = 'aumi'\n};\nenum {\n kAudioUnitManufacturer_Apple = 'appl'\n};\nenum {\n kAudioUnitSubType_GenericOutput = 'genr',\n kAudioUnitSubType_VoiceProcessingIO = 'vpio'\n};\nenum {\n kAudioUnitSubType_HALOutput = 'ahal',\n kAudioUnitSubType_DefaultOutput = 'def ',\n kAudioUnitSubType_SystemOutput = 'sys ',\n};\nenum {\n kAudioUnitSubType_DLSSynth = 'dls ',\n kAudioUnitSubType_Sampler = 'samp',\n kAudioUnitSubType_MIDISynth = 'msyn'\n};\nenum {\n kAudioUnitSubType_AUConverter = 'conv',\n kAudioUnitSubType_Varispeed = 'vari',\n kAudioUnitSubType_DeferredRenderer = 'defr',\n kAudioUnitSubType_Splitter = 'splt',\n kAudioUnitSubType_MultiSplitter = 'mspl',\n kAudioUnitSubType_Merger = 'merg',\n kAudioUnitSubType_NewTimePitch = 'nutp',\n kAudioUnitSubType_AUiPodTimeOther = 'ipto',\n kAudioUnitSubType_RoundTripAAC = 'raac',\n};\nenum {\n kAudioUnitSubType_TimePitch = 'tmpt'\n};\nenum {\n kAudioUnitSubType_PeakLimiter = 'lmtr',\n kAudioUnitSubType_DynamicsProcessor = 'dcmp',\n kAudioUnitSubType_LowPassFilter = 'lpas',\n kAudioUnitSubType_HighPassFilter = 'hpas',\n kAudioUnitSubType_BandPassFilter = 'bpas',\n kAudioUnitSubType_HighShelfFilter = 'hshf',\n kAudioUnitSubType_LowShelfFilter = 'lshf',\n kAudioUnitSubType_ParametricEQ = 'pmeq',\n kAudioUnitSubType_Distortion = 'dist',\n kAudioUnitSubType_Delay = 'dely',\n kAudioUnitSubType_SampleDelay = 'sdly',\n kAudioUnitSubType_NBandEQ = 'nbeq'\n};\nenum {\n kAudioUnitSubType_GraphicEQ = 'greq',\n kAudioUnitSubType_MultiBandCompressor = 'mcmp',\n kAudioUnitSubType_MatrixReverb = 'mrev',\n kAudioUnitSubType_Pitch = 'tmpt',\n kAudioUnitSubType_AUFilter = 'filt',\n kAudioUnitSubType_NetSend = 'nsnd',\n kAudioUnitSubType_RogerBeep = 'rogr'\n};\nenum {\n kAudioUnitSubType_MultiChannelMixer = 'mcmx',\n kAudioUnitSubType_MatrixMixer = 'mxmx',\n    kAudioUnitSubType_SpatialMixer = '3dem',\n};\nenum {\n kAudioUnitSubType_StereoMixer = 'smxr',\n kAudioUnitSubType_3DMixer = '3dmx',\n\n};\nenum {\n kAudioUnitSubType_SphericalHeadPanner = 'sphr',\n kAudioUnitSubType_VectorPanner = 'vbas',\n kAudioUnitSubType_SoundFieldPanner = 'ambi',\n kAudioUnitSubType_HRTFPanner = 'hrtf'\n};\nenum {\n kAudioUnitSubType_NetReceive = 'nrcv',\n kAudioUnitSubType_ScheduledSoundPlayer = 'sspl',\n kAudioUnitSubType_AudioFilePlayer = 'afpl'\n};\ntypedef UInt32 AudioUnitRenderActionFlags; enum\n{\n kAudioUnitRenderAction_PreRender = (1UL << 2),\n kAudioUnitRenderAction_PostRender = (1UL << 3),\n kAudioUnitRenderAction_OutputIsSilence = (1UL << 4),\n kAudioOfflineUnitRenderAction_Preflight = (1UL << 5),\n kAudioOfflineUnitRenderAction_Render = (1UL << 6),\n kAudioOfflineUnitRenderAction_Complete = (1UL << 7),\n kAudioUnitRenderAction_PostRenderError = (1UL << 8),\n kAudioUnitRenderAction_DoNotCheckRenderArgs = (1UL << 9)\n};\nenum {\n kAudioUnitErr_InvalidProperty = -10879,\n kAudioUnitErr_InvalidParameter = -10878,\n kAudioUnitErr_InvalidElement = -10877,\n kAudioUnitErr_NoConnection = -10876,\n kAudioUnitErr_FailedInitialization = -10875,\n kAudioUnitErr_TooManyFramesToProcess = -10874,\n kAudioUnitErr_InvalidFile = -10871,\n kAudioUnitErr_UnknownFileType = -10870,\n kAudioUnitErr_FileNotSpecified = -10869,\n kAudioUnitErr_FormatNotSupported = -10868,\n kAudioUnitErr_Uninitialized = -10867,\n kAudioUnitErr_InvalidScope = -10866,\n kAudioUnitErr_PropertyNotWritable = -10865,\n kAudioUnitErr_CannotDoInCurrentContext = -10863,\n kAudioUnitErr_InvalidPropertyValue = -10851,\n kAudioUnitErr_PropertyNotInUse = -10850,\n kAudioUnitErr_Initialized = -10849,\n kAudioUnitErr_InvalidOfflineRender = -10848,\n kAudioUnitErr_Unauthorized = -10847,\n    kAudioUnitErr_MIDIOutputBufferFull = -66753,\n    kAudioComponentErr_InstanceInvalidated = -66749,\n kAudioUnitErr_RenderTimeout = -66745,\n kAudioUnitErr_ExtensionNotFound = -66744\n};\ntypedef UInt32 AudioUnitPropertyID;\n\ntypedef UInt32 AudioUnitScope;\n\n\ntypedef UInt32 AudioUnitElement;\n\ntypedef UInt32 AudioUnitParameterID;\n\ntypedef Float32 AudioUnitParameterValue;\ntypedef UInt32 AUParameterEventType; enum\n{\n kParameterEvent_Immediate = 1,\n kParameterEvent_Ramped = 2\n};\nstruct AudioUnitParameterEvent\n{\n AudioUnitScope scope;\n AudioUnitElement element;\n AudioUnitParameterID parameter;\n\n AUParameterEventType eventType;\n\n union\n {\n  struct\n  {\n   SInt32 startBufferOffset;\n   UInt32 durationInFrames;\n   AudioUnitParameterValue startValue;\n   AudioUnitParameterValue endValue;\n  } ramp;\n\n  struct\n  {\n   UInt32 bufferOffset;\n   AudioUnitParameterValue value;\n  } immediate;\n\n } eventValues;\n};\ntypedef struct AudioUnitParameterEvent AudioUnitParameterEvent;\nstruct AudioUnitParameter\n{\n AudioUnit mAudioUnit;\n AudioUnitParameterID mParameterID;\n AudioUnitScope mScope;\n AudioUnitElement mElement;\n};\ntypedef struct AudioUnitParameter AudioUnitParameter;\nstruct AudioUnitProperty\n{\n AudioUnit mAudioUnit;\n AudioUnitPropertyID mPropertyID;\n AudioUnitScope mScope;\n AudioUnitElement mElement;\n};\ntypedef struct AudioUnitProperty AudioUnitProperty;\ntypedef OSStatus\n(*AURenderCallback)( void * inRefCon,\n      AudioUnitRenderActionFlags * ioActionFlags,\n      const AudioTimeStamp * inTimeStamp,\n      UInt32 inBusNumber,\n      UInt32 inNumberFrames,\n      AudioBufferList * _Nullable ioData);\ntypedef void\n(*AudioUnitPropertyListenerProc)( void * inRefCon,\n         AudioUnit inUnit,\n         AudioUnitPropertyID inID,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement);\ntypedef void\n(*AUInputSamplesInOutputCallback)( void * inRefCon,\n         const AudioTimeStamp * inOutputTimeStamp,\n         Float64 inInputSample,\n         Float64 inNumberInputSamples);\nextern const CFStringRef kAudioComponentRegistrationsChangedNotification;\nextern const CFStringRef kAudioComponentInstanceInvalidationNotification;\nextern OSStatus\nAudioUnitInitialize( AudioUnit inUnit);\n\nextern OSStatus\nAudioUnitUninitialize( AudioUnit inUnit);\n\nextern OSStatus\nAudioUnitGetPropertyInfo( AudioUnit inUnit,\n         AudioUnitPropertyID inID,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement,\n         UInt32 * _Nullable outDataSize,\n         Boolean * _Nullable outWritable);\n\nextern OSStatus\nAudioUnitGetProperty( AudioUnit inUnit,\n         AudioUnitPropertyID inID,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement,\n         void * outData,\n         UInt32 * ioDataSize);\n\nextern OSStatus\nAudioUnitSetProperty( AudioUnit inUnit,\n         AudioUnitPropertyID inID,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement,\n         const void * _Nullable inData,\n         UInt32 inDataSize);\n\nextern OSStatus\nAudioUnitAddPropertyListener( AudioUnit inUnit,\n         AudioUnitPropertyID inID,\n         AudioUnitPropertyListenerProc inProc,\n         void * _Nullable inProcUserData);\n\nextern OSStatus\nAudioUnitRemovePropertyListenerWithUserData(\n         AudioUnit inUnit,\n         AudioUnitPropertyID inID,\n         AudioUnitPropertyListenerProc inProc,\n         void * _Nullable inProcUserData);\n\nextern OSStatus\nAudioUnitAddRenderNotify( AudioUnit inUnit,\n         AURenderCallback inProc,\n         void * _Nullable inProcUserData);\n\nextern OSStatus\nAudioUnitRemoveRenderNotify( AudioUnit inUnit,\n         AURenderCallback inProc,\n         void * _Nullable inProcUserData);\n\nextern OSStatus\nAudioUnitGetParameter( AudioUnit inUnit,\n         AudioUnitParameterID inID,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement,\n         AudioUnitParameterValue * outValue);\n\nextern OSStatus\nAudioUnitSetParameter( AudioUnit inUnit,\n         AudioUnitParameterID inID,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement,\n         AudioUnitParameterValue inValue,\n         UInt32 inBufferOffsetInFrames);\n\nextern OSStatus\nAudioUnitScheduleParameters( AudioUnit inUnit,\n         const AudioUnitParameterEvent * inParameterEvent,\n         UInt32 inNumParamEvents);\n\nextern OSStatus\nAudioUnitRender( AudioUnit inUnit,\n         AudioUnitRenderActionFlags * _Nullable ioActionFlags,\n         const AudioTimeStamp * inTimeStamp,\n         UInt32 inOutputBusNumber,\n         UInt32 inNumberFrames,\n         AudioBufferList * ioData);\n\nextern OSStatus\nAudioUnitProcess ( AudioUnit inUnit,\n         AudioUnitRenderActionFlags * _Nullable ioActionFlags,\n         const AudioTimeStamp * inTimeStamp,\n         UInt32 inNumberFrames,\n         AudioBufferList * ioData);\n\nextern OSStatus\nAudioUnitProcessMultiple( AudioUnit inUnit,\n         AudioUnitRenderActionFlags * _Nullable ioActionFlags,\n         const AudioTimeStamp * inTimeStamp,\n         UInt32 inNumberFrames,\n         UInt32 inNumberInputBufferLists,\n         const AudioBufferList * _Nonnull * _Nonnull inInputBufferLists,\n         UInt32 inNumberOutputBufferLists,\n         AudioBufferList * _Nonnull * _Nonnull ioOutputBufferLists);\nextern OSStatus\nAudioUnitReset( AudioUnit inUnit,\n         AudioUnitScope inScope,\n         AudioUnitElement inElement);\nextern OSStatus\nAudioUnitExtensionSetComponentList(CFStringRef extensionIdentifier, _Nullable CFArrayRef audioComponentInfo);\n\nextern _Nullable CFArrayRef\nAudioUnitExtensionCopyComponentList(CFStringRef extensionIdentifier);\n\nenum {\n kAudioUnitRange = 0x0000,\n kAudioUnitInitializeSelect = 0x0001,\n kAudioUnitUninitializeSelect = 0x0002,\n kAudioUnitGetPropertyInfoSelect = 0x0003,\n kAudioUnitGetPropertySelect = 0x0004,\n kAudioUnitSetPropertySelect = 0x0005,\n kAudioUnitAddPropertyListenerSelect = 0x000A,\n kAudioUnitRemovePropertyListenerSelect = 0x000B,\n kAudioUnitRemovePropertyListenerWithUserDataSelect = 0x0012,\n kAudioUnitAddRenderNotifySelect = 0x000F,\n kAudioUnitRemoveRenderNotifySelect = 0x0010,\n kAudioUnitGetParameterSelect = 0x0006,\n kAudioUnitSetParameterSelect = 0x0007,\n kAudioUnitScheduleParametersSelect = 0x0011,\n kAudioUnitRenderSelect = 0x000E,\n kAudioUnitResetSelect = 0x0009,\n kAudioUnitComplexRenderSelect = 0x0013,\n kAudioUnitProcessSelect = 0x0014,\n kAudioUnitProcessMultipleSelect = 0x0015\n};\n\n\n\n\n\ntypedef OSStatus\n(*AudioUnitInitializeProc) (void *self);\n\ntypedef OSStatus\n(*AudioUnitUninitializeProc) (void *self);\n\ntypedef OSStatus\n(*AudioUnitGetPropertyInfoProc) (void *self, AudioUnitPropertyID prop, AudioUnitScope scope,\n         AudioUnitElement elem, UInt32 * _Nullable outDataSize, Boolean * _Nullable outWritable);\n\ntypedef OSStatus\n(*AudioUnitGetPropertyProc) (void *self, AudioUnitPropertyID inID, AudioUnitScope inScope,\n         AudioUnitElement inElement, void *outData, UInt32 *ioDataSize);\n\ntypedef OSStatus\n(*AudioUnitSetPropertyProc) (void *self, AudioUnitPropertyID inID, AudioUnitScope inScope,\n         AudioUnitElement inElement, const void *inData, UInt32 inDataSize);\n\ntypedef OSStatus\n(*AudioUnitAddPropertyListenerProc) (void *self, AudioUnitPropertyID prop,\n         AudioUnitPropertyListenerProc proc, void *userData);\n\ntypedef OSStatus\n(*AudioUnitRemovePropertyListenerProc) (void *self, AudioUnitPropertyID prop,\n         AudioUnitPropertyListenerProc proc);\n\ntypedef OSStatus\n(*AudioUnitRemovePropertyListenerWithUserDataProc) (void *self, AudioUnitPropertyID prop,\n         AudioUnitPropertyListenerProc proc, void * _Nullable userData);\n\ntypedef OSStatus\n(*AudioUnitAddRenderNotifyProc) (void *self, AURenderCallback proc, void * _Nullable userData);\n\ntypedef OSStatus\n(*AudioUnitRemoveRenderNotifyProc) (void *self, AURenderCallback proc, void * _Nullable userData);\n\ntypedef OSStatus\n(*AudioUnitScheduleParametersProc) (void *self, const AudioUnitParameterEvent *events, UInt32 numEvents);\n\ntypedef OSStatus\n(*AudioUnitResetProc) (void *self, AudioUnitScope inScope, AudioUnitElement inElement);\n\ntypedef OSStatus\n(*AudioUnitComplexRenderProc) (void *self, AudioUnitRenderActionFlags * _Nullable ioActionFlags, const AudioTimeStamp *inTimeStamp,\n         UInt32 inOutputBusNumber, UInt32 inNumberOfPackets, UInt32 *outNumberOfPackets,\n         AudioStreamPacketDescription *outPacketDescriptions, AudioBufferList *ioData,\n         void *outMetadata, UInt32 *outMetadataByteSize);\n\ntypedef OSStatus\n(*AudioUnitProcessProc) (void *self, AudioUnitRenderActionFlags * _Nullable ioActionFlags, const AudioTimeStamp *inTimeStamp,\n         UInt32 inNumberFrames, AudioBufferList *ioData);\n\ntypedef OSStatus\n(*AudioUnitProcessMultipleProc) (void *self, AudioUnitRenderActionFlags * _Nullable ioActionFlags, const AudioTimeStamp *inTimeStamp,\n         UInt32 inNumberFrames, UInt32 inNumberInputBufferLists, const AudioBufferList * _Nonnull * _Nonnull inInputBufferLists,\n         UInt32 inNumberOutputBufferLists, AudioBufferList * _Nonnull * _Nonnull ioOutputBufferLists);\ntypedef OSStatus\n(*AudioUnitGetParameterProc)( void * inComponentStorage,\n        AudioUnitParameterID inID,\n        AudioUnitScope inScope,\n        AudioUnitElement inElement,\n        AudioUnitParameterValue * outValue);\ntypedef OSStatus\n(*AudioUnitSetParameterProc)( void * inComponentStorage,\n        AudioUnitParameterID inID,\n        AudioUnitScope inScope,\n        AudioUnitElement inElement,\n        AudioUnitParameterValue inValue,\n        UInt32 inBufferOffsetInFrames);\ntypedef OSStatus\n(*AudioUnitRenderProc)( void * inComponentStorage,\n        AudioUnitRenderActionFlags * _Nullable ioActionFlags,\n        const AudioTimeStamp * inTimeStamp,\n        UInt32 inOutputBusNumber,\n        UInt32 inNumberFrames,\n        AudioBufferList * ioData);\n\nenum {\n kAudioUnitErr_IllegalInstrument = -10873,\n kAudioUnitErr_InstrumentTypeNotFound = -10872,\n} __attribute__((deprecated));\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AUGraph.h",
    "content": "#ifndef AUGRAPH_H\n#define AUGRAPH_H\n#include <AudioToolbox/AudioUnit.h>\n#include <AudioToolbox/AudioUnitProperties.h>\n#include <AudioToolbox/AUComponent.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef struct AUGraphData* AUGraph;\ntypedef SInt32 AUNode;\n\nstruct AudioUnitNodeConnection\n{\n\tAUNode sourceNode;\n\tUInt32 sourceOutputNumber;\n\tAUNode destNode;\n\tUInt32 destInputNumber;\n};\n\ntypedef struct AudioUnitNodeConnection AudioUnitNodeConnection;\ntypedef struct AudioUnitNodeConnection AUNodeConnection;\n\nstruct AUNodeRenderCallback\n{\n\tAUNode destNode;\n\tAudioUnitElement destInputNumber;\n\tAURenderCallbackStruct cback;\n};\ntypedef struct AUNodeRenderCallback AUNodeRenderCallback;\n\nstruct AUNodeInteraction\n{\n\tUInt32 nodeInteractionType;\n\tunion\n\t{\n\t\tAUNodeConnection connection;\n\t\tAUNodeRenderCallback inputCallback;\n\t} nodeInteraction;\n};\ntypedef struct AUNodeInteraction AUNodeInteraction;\n\ntypedef void\n(*AudioUnitPropertyListenerProc)(void * inRefCon,\n\t\t\t\t\t\t\t\tAudioUnit                       inUnit,\n\t\t\t\t\t\t\t\tAudioUnitPropertyID     inID,\n\t\t\t\t\t\t\t\tAudioUnitScope          inScope,\n\t\t\t\t\t\t\t\tAudioUnitElement        inElement);\n\nOSStatus AUGraphAddNode(AUGraph inGraph, const AudioComponentDescription *inDescription, AUNode *outNode);\nOSStatus AUGraphNewNode(AUGraph inGraph, const struct ComponentDescription *inDescription, UInt32 inClassDataSize, const void *inClassData, AUNode *outNode);\nOSStatus AUGraphAddRenderNotify(AUGraph inGraph, AURenderCallback inCallback, void *inRefCon);\nOSStatus AUGraphClearConnections(AUGraph inGraph);\nOSStatus AUGraphClose(AUGraph inGraph);\nOSStatus AUGraphConnectNodeInput(AUGraph inGraph, AUNode inSourceNode, UInt32 inSourceOutputNumber, AUNode inDestNode, UInt32 inDestInputNumber);\nOSStatus AUGraphCountNodeInteractions(AUGraph inGraph, AUNode inNode, UInt32 *outNumInteractions);\nOSStatus AUGraphDisconnectNodeInput(AUGraph inGraph, AUNode inDestNode, UInt32 inDestInputNumber);\nOSStatus AUGraphGetCPULoad(AUGraph inGraph, Float32 *outAverageCPULoad);\nOSStatus AUGraphGetIndNode(AUGraph inGraph, UInt32 inIndex, AUNode *outNode);\nOSStatus AUGraphGetInteractionInfo(AUGraph inGraph, UInt32 inInteractionIndex, AUNodeInteraction *outInteraction);\nOSStatus AUGraphGetMaxCPULoad(AUGraph inGraph, Float32 *outMaxLoad);\nOSStatus AUGraphGetNodeCount(AUGraph inGraph, UInt32 *outNumberOfNodes);\nOSStatus AUGraphGetNodeInteractions(AUGraph inGraph, AUNode inNode, UInt32 *ioNumInteractions, AUNodeInteraction *outInteractions);\nOSStatus AUGraphGetNumberOfInteractions(AUGraph inGraph, UInt32 *outNumInteractions);\nOSStatus AUGraphInitialize(AUGraph inGraph);\nOSStatus AUGraphIsInitialized(AUGraph inGraph, Boolean *outIsInitialized);\nOSStatus AUGraphIsOpen(AUGraph inGraph, Boolean *outIsOpen);\nOSStatus AUGraphIsRunning(AUGraph inGraph, Boolean *outIsRunning);\nOSStatus AUGraphNodeInfo(AUGraph inGraph, AUNode inNode, AudioComponentDescription *outDescription, AudioUnit *outAudioUnit);\nOSStatus AUGraphOpen(AUGraph inGraph);\nOSStatus AUGraphRemoveNode(AUGraph inGraph, AUNode inNode);\nOSStatus AUGraphRemoveRenderNotify(AUGraph inGraph, AURenderCallback inCallback, void *inRefCon);\nOSStatus AUGraphSetNodeInputCallback(AUGraph inGraph, AUNode inDestNode, UInt32 inDestInputNumber, const AURenderCallbackStruct *inInputCallback);\nOSStatus AUGraphStart(AUGraph inGraph);\nOSStatus AUGraphStop(AUGraph inGraph);\nOSStatus AUGraphUninitialize(AUGraph inGraph);\nOSStatus AUGraphUpdate(AUGraph inGraph, Boolean *outIsUpdated);\nOSStatus DisposeAUGraph(AUGraph inGraph);\nOSStatus NewAUGraph(AUGraph *outGraph);\nOSStatus AUGraphGetNodeInfo(AUGraph inGraph, AUNode inNode, struct ComponentDescription *outDescription, UInt32 *outClassDataSize, void * _Nullable *outClassData, AudioUnit  _Nullable *outAudioUnit);\nOSStatus AudioUnitAddPropertyListener(AudioUnit inUnit, AudioUnitPropertyID inID, AudioUnitPropertyListenerProc inProc, void *inProcUserData);\n\n#ifdef __cplusplus\n}\n#endif\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioCodec.h",
    "content": "#ifndef _AUDIO_CODEC_H\n#define _AUDIO_CODEC_H\n\n#include <CoreAudio/CoreAudioTypes.h>\n#include <AudioToolbox/AudioComponent.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef AudioComponentInstance AudioCodec;\ntypedef UInt32 AudioCodecPropertyID;\nstruct AudioCodecMagicCookieInfo\n{\n UInt32 mMagicCookieSize;\n const void* _Nullable mMagicCookie;\n};\ntypedef struct AudioCodecMagicCookieInfo AudioCodecMagicCookieInfo;\nenum\n{\n kAudioDecoderComponentType = 'adec',\n kAudioEncoderComponentType = 'aenc',\n kAudioUnityCodecComponentType = 'acdc'\n};\nenum\n{\n kAudioCodecPropertySupportedInputFormats = 'ifm#',\n kAudioCodecPropertySupportedOutputFormats = 'ofm#',\n kAudioCodecPropertyAvailableInputSampleRates = 'aisr',\n kAudioCodecPropertyAvailableOutputSampleRates = 'aosr',\n kAudioCodecPropertyAvailableBitRateRange = 'abrt',\n kAudioCodecPropertyMinimumNumberInputPackets = 'mnip',\n kAudioCodecPropertyMinimumNumberOutputPackets = 'mnop',\n kAudioCodecPropertyAvailableNumberChannels = 'cmnc',\n kAudioCodecPropertyDoesSampleRateConversion = 'lmrc',\n kAudioCodecPropertyAvailableInputChannelLayoutTags = 'aicl',\n kAudioCodecPropertyAvailableOutputChannelLayoutTags = 'aocl',\n kAudioCodecPropertyInputFormatsForOutputFormat = 'if4o',\n kAudioCodecPropertyOutputFormatsForInputFormat = 'of4i',\n kAudioCodecPropertyFormatInfo = 'acfi'\n};\nenum\n{\n kAudioCodecPropertyInputBufferSize = 'tbuf',\n kAudioCodecPropertyPacketFrameSize = 'pakf',\n kAudioCodecPropertyHasVariablePacketByteSizes = 'vpk?',\n kAudioCodecPropertyMaximumPacketByteSize = 'pakb',\n    kAudioCodecPropertyPacketSizeLimitForVBR = 'pakl',\n kAudioCodecPropertyCurrentInputFormat = 'ifmt',\n kAudioCodecPropertyCurrentOutputFormat = 'ofmt',\n kAudioCodecPropertyMagicCookie = 'kuki',\n kAudioCodecPropertyUsedInputBufferSize = 'ubuf',\n kAudioCodecPropertyIsInitialized = 'init',\n kAudioCodecPropertyCurrentTargetBitRate = 'brat',\n   kAudioCodecPropertyCurrentInputSampleRate = 'cisr',\n   kAudioCodecPropertyCurrentOutputSampleRate = 'cosr',\n kAudioCodecPropertyQualitySetting = 'srcq',\n kAudioCodecPropertyApplicableBitRateRange = 'brta',\n    kAudioCodecPropertyRecommendedBitRateRange = 'brtr',\n kAudioCodecPropertyApplicableInputSampleRates = 'isra',\n kAudioCodecPropertyApplicableOutputSampleRates = 'osra',\n kAudioCodecPropertyPaddedZeros = 'pad0',\n kAudioCodecPropertyPrimeMethod = 'prmm',\n kAudioCodecPropertyPrimeInfo = 'prim',\n kAudioCodecPropertyCurrentInputChannelLayout = 'icl ',\n kAudioCodecPropertyCurrentOutputChannelLayout = 'ocl ',\n kAudioCodecPropertySettings = 'acs ',\n kAudioCodecPropertyFormatList = 'acfl',\n kAudioCodecPropertyBitRateControlMode = 'acbf',\n kAudioCodecPropertySoundQualityForVBR = 'vbrq',\n kAudioCodecPropertyDelayMode = 'dmod',\n    kAudioCodecPropertyAdjustLocalQuality = '^qal',\n    kAudioCodecPropertyProgramTargetLevel = 'pptl',\n    kAudioCodecPropertyDynamicRangeControlMode = 'mdrc',\n    kAudioCodecPropertyProgramTargetLevelConstant = 'ptlc',\n};\nenum\n{\n kAudioCodecQuality_Max = 0x7F,\n kAudioCodecQuality_High = 0x60,\n kAudioCodecQuality_Medium = 0x40,\n kAudioCodecQuality_Low = 0x20,\n kAudioCodecQuality_Min = 0\n};\nenum\n{\n kAudioCodecPrimeMethod_Pre = 0,\n kAudioCodecPrimeMethod_Normal = 1,\n kAudioCodecPrimeMethod_None = 2\n};\nenum\n{\n kAudioCodecBitRateControlMode_Constant = 0,\n kAudioCodecBitRateControlMode_LongTermAverage = 1,\n kAudioCodecBitRateControlMode_VariableConstrained = 2,\n kAudioCodecBitRateControlMode_Variable = 3,\n};\nenum\n{\n    kAudioCodecDelayMode_Compatibility = 0,\n    kAudioCodecDelayMode_Minimum = 1,\n    kAudioCodecDelayMode_Optimal = 2\n};\nenum\n{\n kProgramTargetLevel_None = 0,\n kProgramTargetLevel_Minus31dB = 1,\n kProgramTargetLevel_Minus23dB = 2,\n kProgramTargetLevel_Minus20dB = 3\n};\nenum\n{\n kDynamicRangeControlMode_None = 0,\n kDynamicRangeControlMode_Light = 1,\n kDynamicRangeControlMode_Heavy = 2\n};\ntypedef struct AudioCodecPrimeInfo\n{\n UInt32 leadingFrames;\n UInt32 trailingFrames;\n} AudioCodecPrimeInfo;\ntypedef UInt32 AudioSettingsFlags; enum {\n kAudioSettingsFlags_ExpertParameter = (1L << 0),\n kAudioSettingsFlags_InvisibleParameter = (1L << 1),\n kAudioSettingsFlags_MetaParameter = (1L << 2),\n kAudioSettingsFlags_UserInterfaceParameter = (1L << 3)\n};\nenum\n{\n kAudioCodecProduceOutputPacketFailure = 1,\n kAudioCodecProduceOutputPacketSuccess = 2,\n kAudioCodecProduceOutputPacketSuccessHasMore = 3,\n kAudioCodecProduceOutputPacketNeedsMoreInputData = 4,\n kAudioCodecProduceOutputPacketAtEOF = 5\n};\nenum\n{\n kAudioCodecGetPropertyInfoSelect = 0x0001,\n kAudioCodecGetPropertySelect = 0x0002,\n kAudioCodecSetPropertySelect = 0x0003,\n kAudioCodecInitializeSelect = 0x0004,\n kAudioCodecUninitializeSelect = 0x0005,\n kAudioCodecAppendInputDataSelect = 0x0006,\n kAudioCodecProduceOutputDataSelect = 0x0007,\n kAudioCodecResetSelect = 0x0008,\n kAudioCodecAppendInputBufferListSelect = 0x0009,\n kAudioCodecProduceOutputBufferListSelect = 0x000A\n};\nenum\n{\n kAudioCodecNoError = 0,\n kAudioCodecUnspecifiedError = 'what',\n kAudioCodecUnknownPropertyError = 'who?',\n kAudioCodecBadPropertySizeError = '!siz',\n kAudioCodecIllegalOperationError = 'nope',\n kAudioCodecUnsupportedFormatError = '!dat',\n kAudioCodecStateError = '!stt',\n kAudioCodecNotEnoughBufferSpaceError = '!buf'\n};\nextern OSStatus\nAudioCodecGetPropertyInfo( AudioCodec inCodec,\n       AudioCodecPropertyID inPropertyID,\n       UInt32* _Nullable outSize,\n       Boolean* _Nullable outWritable);\nextern OSStatus\nAudioCodecGetProperty( AudioCodec inCodec,\n      AudioCodecPropertyID inPropertyID,\n      UInt32* ioPropertyDataSize,\n      void* outPropertyData);\nextern OSStatus\nAudioCodecSetProperty( AudioCodec inCodec,\n      AudioCodecPropertyID inPropertyID,\n      UInt32 inPropertyDataSize,\n      const void* inPropertyData);\nextern OSStatus\nAudioCodecInitialize( AudioCodec inCodec,\n      const AudioStreamBasicDescription* _Nullable inInputFormat,\n      const AudioStreamBasicDescription* _Nullable inOutputFormat,\n      const void* _Nullable inMagicCookie,\n      UInt32 inMagicCookieByteSize);\nextern OSStatus\nAudioCodecUninitialize(AudioCodec inCodec);\nextern OSStatus\nAudioCodecAppendInputData( AudioCodec inCodec,\n       const void* inInputData,\n       UInt32* ioInputDataByteSize,\n       UInt32* ioNumberPackets,\n       const AudioStreamPacketDescription* _Nullable inPacketDescription);\nextern OSStatus\nAudioCodecProduceOutputPackets( AudioCodec inCodec,\n        void* outOutputData,\n        UInt32* ioOutputDataByteSize,\n        UInt32* ioNumberPackets,\n        AudioStreamPacketDescription* _Nullable outPacketDescription,\n        UInt32* outStatus);\n\nextern OSStatus\nAudioCodecAppendInputBufferList( AudioCodec inCodec,\n         const AudioBufferList * inBufferList,\n         UInt32* ioNumberPackets,\n         const AudioStreamPacketDescription* _Nullable inPacketDescription,\n         UInt32* outBytesConsumed);\n\nextern OSStatus\nAudioCodecProduceOutputBufferList( AudioCodec inCodec,\n         AudioBufferList * ioBufferList,\n         UInt32* ioNumberPackets,\n         AudioStreamPacketDescription* _Nullable outPacketDescription,\n         UInt32* outStatus);\nextern OSStatus\nAudioCodecReset(AudioCodec inCodec);\n\n\ntypedef OSStatus\n(*AudioCodecGetPropertyInfoProc)(void *self, AudioCodecPropertyID inPropertyID, UInt32 * _Nullable outSize, Boolean * _Nullable outWritable);\n\ntypedef OSStatus\n(*AudioCodecGetPropertyProc)(void *self, AudioCodecPropertyID inPropertyID, UInt32 *ioPropertyDataSize,\n        void *outPropertyData);\n\ntypedef OSStatus\n(*AudioCodecSetPropertyProc)(void *self, AudioCodecPropertyID inPropertyID, UInt32 inPropertyDataSize,\n        const void *inPropertyData);\n\ntypedef OSStatus\n(*AudioCodecInitializeProc)(void *self, const AudioStreamBasicDescription * _Nullable inInputFormat,\n        const AudioStreamBasicDescription * _Nullable inOutputFormat, const void * _Nullable inMagicCookie,\n        UInt32 inMagicCookieByteSize);\n\ntypedef OSStatus\n(*AudioCodecUninitializeProc)(void *self);\n\ntypedef OSStatus\n(*AudioCodecAppendInputDataProc)(void *self, const void *inInputData, UInt32 *ioInputDataByteSize, UInt32 *ioNumberPackets,\n        const AudioStreamPacketDescription * _Nullable inPacketDescription);\n\ntypedef OSStatus\n(*AudioCodecProduceOutputPacketsProc)(void *self, void *outOutputData, UInt32 *ioOutputDataByteSize, UInt32 *ioNumberPackets,\n        AudioStreamPacketDescription * _Nullable outPacketDescription, UInt32 *outStatus);\n\ntypedef OSStatus\n(*AudioCodecResetProc)(void *self);\n\ntypedef OSStatus\n(*AudioCodecAppendInputBufferListProc)(void *self, const AudioBufferList *ioBufferList, UInt32 *inNumberPackets,\n        const AudioStreamPacketDescription * _Nullable inPacketDescription, UInt32 *outBytesConsumed);\n\ntypedef OSStatus\n(*AudioCodecProduceOutputBufferListProc)(void *self, AudioBufferList *ioBufferList, UInt32 *ioNumberPackets,\n        AudioStreamPacketDescription *_Nullable outPacketDescription, UInt32 *outStatus);\nenum\n{\n kAudioCodecPropertyMinimumDelayMode = 'mdel'\n};\nenum\n{\n kAudioCodecPropertyNameCFString = 'lnam',\n kAudioCodecPropertyManufacturerCFString = 'lmak',\n kAudioCodecPropertyFormatCFString = 'lfor'\n};\nenum\n{\n kAudioCodecPropertyRequiresPacketDescription = 'pakd',\n kAudioCodecPropertyAvailableBitRates = 'brt#',\n kAudioCodecExtendFrequencies = 'acef',\n kAudioCodecUseRecommendedSampleRate = 'ursr',\n kAudioCodecOutputPrecedence = 'oppr',\n kAudioCodecBitRateFormat = kAudioCodecPropertyBitRateControlMode,\n kAudioCodecDoesSampleRateConversion = kAudioCodecPropertyDoesSampleRateConversion,\n kAudioCodecInputFormatsForOutputFormat = kAudioCodecPropertyInputFormatsForOutputFormat,\n kAudioCodecOutputFormatsForInputFormat = kAudioCodecPropertyOutputFormatsForInputFormat,\n kAudioCodecPropertyInputChannelLayout = kAudioCodecPropertyCurrentInputChannelLayout,\n kAudioCodecPropertyOutputChannelLayout = kAudioCodecPropertyCurrentOutputChannelLayout,\n kAudioCodecPropertyAvailableInputChannelLayouts = kAudioCodecPropertyAvailableInputChannelLayoutTags,\n kAudioCodecPropertyAvailableOutputChannelLayouts = kAudioCodecPropertyAvailableOutputChannelLayoutTags,\n kAudioCodecPropertyZeroFramesPadded = kAudioCodecPropertyPaddedZeros\n};\nenum\n{\n kAudioCodecBitRateFormat_CBR = kAudioCodecBitRateControlMode_Constant,\n kAudioCodecBitRateFormat_ABR = kAudioCodecBitRateControlMode_LongTermAverage,\n kAudioCodecBitRateFormat_VBR = kAudioCodecBitRateControlMode_VariableConstrained\n};\nenum\n{\n kAudioCodecOutputPrecedenceNone = 0,\n kAudioCodecOutputPrecedenceBitRate = 1,\n kAudioCodecOutputPrecedenceSampleRate = 2\n};\ntypedef struct AudioCodecMagicCookieInfo MagicCookieInfo __attribute__((deprecated));\nenum\n{\n kHintBasic = 0,\n kHintAdvanced = 1,\n kHintHidden = 2\n};\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioComponent.h",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _AT_AUDIO_COMPONENT_H\n#define _AT_AUDIO_COMPONENT_H\n#include <CoreFoundation/CFString.h>\n#include <CoreFoundation/CFDictionary.h>\n#include <CoreServices/MacTypes.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nenum {\n\tkAudioComponentFlag_Unsearchable = 1,\n\tkAudioComponentFlag_SandboxSafe = 2,\n\tkAudioComponentFlag_IsV3AudioUnit = 3,\n\tkAudioComponentFlag_RequiresAsyncInstantiation = 4,\n\tkAudioComponentFlag_CanLoadInProcess = 8,\n};\ntypedef UInt32 AudioComponentFlags;\n\nenum {\n\tkAudioComponentInstantiation_LoadOutOfProcess = 1,\n\tkAudioComponentInstantiation_LoadInProcess = 2,\n};\ntypedef UInt32 AudioComponentInstantiationOptions;\n\n#pragma pack(push, 4)\ntypedef struct {\n\tOSType componentType;\n\tOSType componentSubType;\n\tOSType componentManufacturer;\n\tUInt32 componentFlags;\n\tUInt32 componentFlagsMask;\n} AudioComponentDescription;\n#pragma pack(pop)\n\ntypedef struct OpaqueAudioComponent* AudioComponent;\ntypedef struct ComponentInstanceRecord* AudioComponentInstance;\n\ntypedef OSStatus (*AudioComponentMethod)(void* self, ...);\n\ntypedef struct AudioComponentPlugInInterface {\n\tOSStatus (*Open)(void* self, AudioComponentInstance inst);\n\tOSStatus (*Close)(void* self);\n\tAudioComponentMethod (*Lookup)(SInt16 sel);\n\tvoid* reserved;\n} AudioComponentPlugInInterface;\n\ntypedef AudioComponentPlugInInterface * (*AudioComponentFactoryFunction)(const AudioComponentDescription*);\n\nAudioComponent AudioComponentRegister(const AudioComponentDescription *inDesc, CFStringRef inName,\n\tUInt32 inVersion, AudioComponentFactoryFunction inFactory);\n\nAudioComponent AudioComponentFindNext(AudioComponent inComponent, const AudioComponentDescription* desc);\n\nUInt32 AudioComponentCount(const AudioComponentDescription* desc);\n\nOSStatus AudioComponentCopyName(AudioComponent component, CFStringRef* outName);\n\nOSStatus AudioComponentGetDescription(AudioComponent component, AudioComponentDescription* outDesc);\n\nOSStatus AudioComponentGetVersion(AudioComponent component, UInt32* outVersion);\n\n#if defined(__OBJC__)\n#if !TARGET_OS_IPHONE\n\n@class NSImage;\nNSImage* AudioComponentGetIcon(AudioComponent component);\n\n#else\n\n@class UIImage;\nUIImage* AudioComponentGetIcon(AudioComponent component, float desiredPointSize);\n\n#endif\n#endif\n\nOSStatus AudioComponentInstanceNew(AudioComponent component, AudioComponentInstance* outInstance);\nvoid AudioComponentInstantiate(AudioComponent component, AudioComponentInstantiationOptions opts, void(^handler)(AudioComponentInstance, OSStatus));\n\nOSStatus AudioComponentInstanceDispose(AudioComponentInstance inst);\nAudioComponent AudioComponentInstanceGetComponent(AudioComponentInstance inst);\n\nBoolean AudioComponentInstanceCanDo(AudioComponentInstance inst, SInt16 sel);\n\nOSStatus AudioComponentCopyConfigurationInfo(AudioComponent component, CFDictionaryRef* outInfo);\n\nenum {\n\tkAudioComponentValidationResult_Unknown = 0,\n\tkAudioComponentValidationResult_Passed,\n\tkAudioComponentValidationResult_Failed,\n\tkAudioComponentValidationResult_TimedOut,\n\tkAudioComponentValidationResult_UnauthorizedError_Open,\n\tkAudioComponentValidationResult_UnauthorizedError_Init,\n};\ntypedef UInt32 AudioComponentValidationResult;\n\n#define kAudioComponentConfigurationInfo_ValidationResult \"ValidationResult\"\n#define kAudioComponentValidationParameter_TimeOut \"TimeOut\"\n#define kAudioComponentValidationParameter_ForceValidation \"ForceValidation\"\n\nOSStatus AudioComponentValidate(AudioComponent component, CFDictionaryRef validationParams, AudioComponentValidationResult* result);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioConverter.h",
    "content": "#ifndef AUDIOCONVERTER_H\n#define AUDIOCONVERTER_H\n#include <CoreServices/MacTypes.h>\n#include <CoreAudio/CoreAudioTypes.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef struct OpaqueAudioConverter * AudioConverterRef;\n\ntypedef UInt32 AudioConverterPropertyID;\nenum\n{\n    kAudioConverterPropertyMinimumInputBufferSize = 'mibs',\n    kAudioConverterPropertyMinimumOutputBufferSize = 'mobs',\n    kAudioConverterPropertyMaximumInputBufferSize = 'xibs',\n    kAudioConverterPropertyMaximumInputPacketSize = 'xips',\n    kAudioConverterPropertyMaximumOutputPacketSize = 'xops',\n    kAudioConverterPropertyCalculateInputBufferSize = 'cibs',\n    kAudioConverterPropertyCalculateOutputBufferSize = 'cobs',\n    kAudioConverterPropertyInputCodecParameters = 'icdp',\n    kAudioConverterPropertyOutputCodecParameters = 'ocdp',\n    kAudioConverterSampleRateConverterAlgorithm = 'srci',\n    kAudioConverterSampleRateConverterComplexity = 'srca',\n    kAudioConverterSampleRateConverterQuality = 'srcq',\n    kAudioConverterSampleRateConverterInitialPhase = 'srcp',\n    kAudioConverterCodecQuality = 'cdqu',\n    kAudioConverterPrimeMethod = 'prmm',\n    kAudioConverterPrimeInfo = 'prim',\n    kAudioConverterChannelMap = 'chmp',\n    kAudioConverterDecompressionMagicCookie = 'dmgc',\n    kAudioConverterCompressionMagicCookie = 'cmgc',\n    kAudioConverterEncodeBitRate = 'brat',\n    kAudioConverterEncodeAdjustableSampleRate = 'ajsr',\n    kAudioConverterInputChannelLayout = 'icl ',\n    kAudioConverterOutputChannelLayout = 'ocl ',\n    kAudioConverterApplicableEncodeBitRates = 'aebr',\n    kAudioConverterAvailableEncodeBitRates = 'vebr',\n    kAudioConverterApplicableEncodeSampleRates = 'aesr',\n    kAudioConverterAvailableEncodeSampleRates = 'vesr',\n    kAudioConverterAvailableEncodeChannelLayoutTags = 'aecl',\n    kAudioConverterCurrentOutputStreamDescription = 'acod',\n    kAudioConverterCurrentInputStreamDescription = 'acid',\n    kAudioConverterPropertySettings = 'acps',\n    kAudioConverterPropertyBitDepthHint = 'acbd',\n    kAudioConverterPropertyFormatList = 'flst'\n};\nenum\n{\n kAudioConverterPropertyDithering = 'dith',\n kAudioConverterPropertyDitherBitDepth = 'dbit'\n};\nenum\n{\n kDitherAlgorithm_TPDF = 1,\n kDitherAlgorithm_NoiseShaping = 2\n};\nenum\n{\n    kAudioConverterQuality_Max = 0x7F,\n    kAudioConverterQuality_High = 0x60,\n    kAudioConverterQuality_Medium = 0x40,\n    kAudioConverterQuality_Low = 0x20,\n    kAudioConverterQuality_Min = 0\n};\nenum\n{\n    kAudioConverterSampleRateConverterComplexity_Linear = 'line',\n    kAudioConverterSampleRateConverterComplexity_Normal = 'norm',\n    kAudioConverterSampleRateConverterComplexity_Mastering = 'bats',\n    kAudioConverterSampleRateConverterComplexity_MinimumPhase = 'minp'\n};\nenum\n{\n    kConverterPrimeMethod_Pre = 0,\n    kConverterPrimeMethod_Normal = 1,\n    kConverterPrimeMethod_None = 2\n};\nstruct AudioConverterPrimeInfo {\n    UInt32 leadingFrames;\n    UInt32 trailingFrames;\n};\ntypedef struct AudioConverterPrimeInfo AudioConverterPrimeInfo;\n\n\n\n\n\nenum\n{\n    kAudioConverterErr_FormatNotSupported = 'fmt?',\n    kAudioConverterErr_OperationNotSupported = 0x6F703F3F,\n    kAudioConverterErr_PropertyNotSupported = 'prop',\n    kAudioConverterErr_InvalidInputSize = 'insz',\n    kAudioConverterErr_InvalidOutputSize = 'otsz',\n\n    kAudioConverterErr_UnspecifiedError = 'what',\n    kAudioConverterErr_BadPropertySizeError = '!siz',\n    kAudioConverterErr_RequiresPacketDescriptionsError = '!pkd',\n    kAudioConverterErr_InputSampleRateOutOfRange = '!isr',\n    kAudioConverterErr_OutputSampleRateOutOfRange = '!osr'\n};\nextern OSStatus\nAudioConverterNew( const AudioStreamBasicDescription * inSourceFormat,\n                        const AudioStreamBasicDescription * inDestinationFormat,\n                        AudioConverterRef _Nullable * _Nonnull outAudioConverter);\nextern OSStatus\nAudioConverterNewSpecific( const AudioStreamBasicDescription * inSourceFormat,\n                            const AudioStreamBasicDescription * inDestinationFormat,\n                            UInt32 inNumberClassDescriptions,\n                            const AudioClassDescription * inClassDescriptions,\n                            AudioConverterRef _Nullable * _Nonnull outAudioConverter);\nextern OSStatus\nAudioConverterDispose( AudioConverterRef inAudioConverter);\nextern OSStatus\nAudioConverterReset( AudioConverterRef inAudioConverter);\nextern OSStatus\nAudioConverterGetPropertyInfo( AudioConverterRef inAudioConverter,\n                                AudioConverterPropertyID inPropertyID,\n                                UInt32 * _Nullable outSize,\n                                Boolean * _Nullable outWritable);\nextern OSStatus\nAudioConverterGetProperty( AudioConverterRef inAudioConverter,\n                            AudioConverterPropertyID inPropertyID,\n                            UInt32 * ioPropertyDataSize,\n                            void * outPropertyData);\nextern OSStatus\nAudioConverterSetProperty( AudioConverterRef inAudioConverter,\n                            AudioConverterPropertyID inPropertyID,\n                            UInt32 inPropertyDataSize,\n                            const void * inPropertyData);\ntypedef OSStatus\n(*AudioConverterInputDataProc)( AudioConverterRef inAudioConverter,\n                                UInt32 * ioDataSize,\n                                void * _Nonnull * _Nonnull outData,\n                                void * _Nullable inUserData);\nextern OSStatus\nAudioConverterFillBuffer( AudioConverterRef inAudioConverter,\n                            AudioConverterInputDataProc inInputDataProc,\n                            void * _Nullable inInputDataProcUserData,\n                            UInt32 * ioOutputDataSize,\n                            void * outOutputData);\nextern OSStatus\nAudioConverterConvertBuffer( AudioConverterRef inAudioConverter,\n                                UInt32 inInputDataSize,\n                                const void * inInputData,\n                                UInt32 * ioOutputDataSize,\n                                void * outOutputData);\ntypedef OSStatus\n(*AudioConverterComplexInputDataProc)( AudioConverterRef inAudioConverter,\n                                        UInt32 * ioNumberDataPackets,\n                                        AudioBufferList * ioData,\n                                        AudioStreamPacketDescription * _Nullable * _Nullable outDataPacketDescription,\n                                        void * _Nullable inUserData);\nextern OSStatus\nAudioConverterFillComplexBuffer( AudioConverterRef inAudioConverter,\n                                    AudioConverterComplexInputDataProc inInputDataProc,\n                                    void * _Nullable inInputDataProcUserData,\n                                    UInt32 * ioOutputDataPacketSize,\n                                    AudioBufferList * outOutputData,\n                                    AudioStreamPacketDescription * _Nullable outPacketDescription);\nextern OSStatus\nAudioConverterConvertComplexBuffer( AudioConverterRef inAudioConverter,\n                                    UInt32 inNumberPCMFrames,\n                                    const AudioBufferList * inInputData,\n                                    AudioBufferList * outOutputData);\n\n\n#ifdef __cplusplus\n}\n#endif\n\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioFile.h",
    "content": "#ifndef AUDIOFILE_H\n#define AUDIOFILE_H\n\n#include <CoreServices/MacTypes.h>\n#include <CoreFoundation/CFURL.h>\n#include <CoreAudio/AudioHardware.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef UInt32 AudioFileTypeID;\nenum {\n        kAudioFileAIFFType = 'AIFF',\n        kAudioFileAIFCType = 'AIFC',\n        kAudioFileWAVEType = 'WAVE',\n        kAudioFileRF64Type = 'RF64',\n        kAudioFileSoundDesigner2Type = 'Sd2f',\n        kAudioFileNextType = 'NeXT',\n        kAudioFileMP3Type = 'MPG3',\n        kAudioFileMP2Type = 'MPG2',\n        kAudioFileMP1Type = 'MPG1',\n  kAudioFileAC3Type = 'ac-3',\n        kAudioFileAAC_ADTSType = 'adts',\n        kAudioFileMPEG4Type = 'mp4f',\n        kAudioFileM4AType = 'm4af',\n        kAudioFileM4BType = 'm4bf',\n  kAudioFileCAFType = 'caff',\n  kAudioFile3GPType = '3gpp',\n  kAudioFile3GP2Type = '3gp2',\n  kAudioFileAMRType = 'amrf',\n  kAudioFileFLACType = 'flac'\n};\nenum {\n        kAudioFileUnspecifiedError = 'wht?',\n        kAudioFileUnsupportedFileTypeError = 'typ?',\n        kAudioFileUnsupportedDataFormatError = 'fmt?',\n        kAudioFileUnsupportedPropertyError = 'pty?',\n        kAudioFileBadPropertySizeError = '!siz',\n        kAudioFilePermissionsError = 'prm?',\n        kAudioFileNotOptimizedError = 'optm',\n\n        kAudioFileInvalidChunkError = 'chk?',\n        kAudioFileDoesNotAllow64BitDataSizeError = 'off?',\n        kAudioFileInvalidPacketOffsetError = 'pck?',\n        kAudioFileInvalidFileError = 'dta?',\n  kAudioFileOperationNotSupportedError = 0x6F703F3F,\n\n  kAudioFileNotOpenError = -38,\n  kAudioFileEndOfFileError = -39,\n  kAudioFilePositionError = -40,\n  kAudioFileFileNotFoundError = -43\n};\ntypedef UInt32 AudioFileFlags; enum {\n kAudioFileFlags_EraseFile = 1,\n kAudioFileFlags_DontPageAlignAudioData = 2\n};\n\ntypedef SInt8 AudioFilePermissions; enum {\n kAudioFileReadPermission = 0x01,\n kAudioFileWritePermission = 0x02,\n kAudioFileReadWritePermission = 0x03\n};\ntypedef struct OpaqueAudioFileID *AudioFileID;\n\n\n\n\ntypedef UInt32 AudioFilePropertyID;\nenum {\n kAudioFileLoopDirection_NoLooping = 0,\n kAudioFileLoopDirection_Forward = 1,\n kAudioFileLoopDirection_ForwardAndBackward = 2,\n kAudioFileLoopDirection_Backward = 3\n};\nstruct AudioFile_SMPTE_Time\n{\n SInt8 mHours;\n UInt8 mMinutes;\n UInt8 mSeconds;\n UInt8 mFrames;\n UInt32 mSubFrameSampleOffset;\n};\ntypedef struct AudioFile_SMPTE_Time AudioFile_SMPTE_Time;\n\n\n\n\n\n\n\nenum {\n kAudioFileMarkerType_Generic = 0,\n};\nstruct AudioFileMarker\n{\n Float64 mFramePosition;\n\n CFStringRef _Nullable mName;\n SInt32 mMarkerID;\n\n AudioFile_SMPTE_Time mSMPTETime;\n UInt32 mType;\n UInt16 mReserved;\n UInt16 mChannel;\n};\ntypedef struct AudioFileMarker AudioFileMarker;\nstruct AudioFileMarkerList\n{\n UInt32 mSMPTE_TimeType;\n UInt32 mNumberMarkers;\n AudioFileMarker mMarkers[1];\n};\ntypedef struct AudioFileMarkerList AudioFileMarkerList;\nstatic __inline__ __attribute__((always_inline)) size_t NumBytesToNumAudioFileMarkers(size_t inNumBytes)\n{\n return (inNumBytes<__builtin_offsetof(AudioFileMarkerList, mMarkers[0]) ? 0 : (inNumBytes - __builtin_offsetof(AudioFileMarkerList, mMarkers[0])) / sizeof(AudioFileMarker));\n}\nstatic __inline__ __attribute__((always_inline)) size_t NumAudioFileMarkersToNumBytes(size_t inNumMarkers)\n{\n return (__builtin_offsetof(AudioFileMarkerList, mMarkers) + (inNumMarkers) * sizeof(AudioFileMarker));\n}\ntypedef UInt32 AudioFileRegionFlags; enum {\n kAudioFileRegionFlag_LoopEnable = 1,\n kAudioFileRegionFlag_PlayForward = 2,\n kAudioFileRegionFlag_PlayBackward = 4\n};\nstruct AudioFileRegion\n{\n UInt32 mRegionID;\n CFStringRef mName;\n AudioFileRegionFlags mFlags;\n UInt32 mNumberMarkers;\n AudioFileMarker mMarkers[1];\n};\ntypedef struct AudioFileRegion AudioFileRegion;\nstruct AudioFileRegionList\n{\n UInt32 mSMPTE_TimeType;\n UInt32 mNumberRegions;\n AudioFileRegion mRegions[1];\n};\ntypedef struct AudioFileRegionList AudioFileRegionList;\nstatic __inline__ __attribute__((always_inline)) AudioFileRegion *NextAudioFileRegion(const AudioFileRegion *inAFRegionPtr)\n{\n return ((AudioFileRegion*)((char*)inAFRegionPtr + __builtin_offsetof(AudioFileRegion, mMarkers) + (inAFRegionPtr->mNumberMarkers)*sizeof(AudioFileMarker)));\n}\nstruct AudioFramePacketTranslation\n{\n SInt64 mFrame;\n SInt64 mPacket;\n UInt32 mFrameOffsetInPacket;\n};\ntypedef struct AudioFramePacketTranslation AudioFramePacketTranslation;\ntypedef UInt32 AudioBytePacketTranslationFlags; enum {\n kBytePacketTranslationFlag_IsEstimate = 1\n};\nstruct AudioBytePacketTranslation\n{\n SInt64 mByte;\n SInt64 mPacket;\n UInt32 mByteOffsetInPacket;\n AudioBytePacketTranslationFlags mFlags;\n};\ntypedef struct AudioBytePacketTranslation AudioBytePacketTranslation;\nstruct AudioFilePacketTableInfo\n{\n        SInt64 mNumberValidFrames;\n        SInt32 mPrimingFrames;\n        SInt32 mRemainderFrames;\n};\ntypedef struct AudioFilePacketTableInfo AudioFilePacketTableInfo;\nextern OSStatus\nAudioFileCreateWithURL (CFURLRef inFileRef,\n                    AudioFileTypeID inFileType,\n                    const AudioStreamBasicDescription *inFormat,\n                    AudioFileFlags inFlags,\n                    AudioFileID _Nullable * _Nonnull outAudioFile);\nextern OSStatus\nAudioFileOpenURL ( CFURLRef inFileRef,\n     AudioFilePermissions inPermissions,\n     AudioFileTypeID inFileTypeHint,\n     AudioFileID _Nullable * _Nonnull outAudioFile);\ntypedef OSStatus (*AudioFile_ReadProc)(\n        void * inClientData,\n        SInt64 inPosition,\n        UInt32 requestCount,\n        void * buffer,\n        UInt32 * actualCount);\ntypedef OSStatus (*AudioFile_WriteProc)(\n        void * inClientData,\n        SInt64 inPosition,\n        UInt32 requestCount,\n        const void *buffer,\n        UInt32 * actualCount);\ntypedef SInt64 (*AudioFile_GetSizeProc)(\n        void * inClientData);\ntypedef OSStatus (*AudioFile_SetSizeProc)(\n        void * inClientData,\n        SInt64 inSize);\nextern OSStatus\nAudioFileInitializeWithCallbacks (\n      void * inClientData,\n      AudioFile_ReadProc inReadFunc,\n      AudioFile_WriteProc inWriteFunc,\n      AudioFile_GetSizeProc inGetSizeFunc,\n      AudioFile_SetSizeProc inSetSizeFunc,\n                        AudioFileTypeID inFileType,\n                        const AudioStreamBasicDescription *inFormat,\n                        AudioFileFlags inFlags,\n                        AudioFileID _Nullable * _Nonnull outAudioFile);\nextern OSStatus\nAudioFileOpenWithCallbacks (\n    void * inClientData,\n    AudioFile_ReadProc inReadFunc,\n    AudioFile_WriteProc _Nullable inWriteFunc,\n    AudioFile_GetSizeProc inGetSizeFunc,\n    AudioFile_SetSizeProc _Nullable inSetSizeFunc,\n                AudioFileTypeID inFileTypeHint,\n                AudioFileID _Nullable * _Nonnull outAudioFile);\nextern OSStatus\nAudioFileClose (AudioFileID inAudioFile);\nextern OSStatus\nAudioFileOptimize (AudioFileID inAudioFile);\nextern OSStatus\nAudioFileReadBytes ( AudioFileID inAudioFile,\n                        Boolean inUseCache,\n                        SInt64 inStartingByte,\n                        UInt32 *ioNumBytes,\n                        void *outBuffer);\nextern OSStatus\nAudioFileWriteBytes ( AudioFileID inAudioFile,\n                        Boolean inUseCache,\n                        SInt64 inStartingByte,\n                        UInt32 *ioNumBytes,\n                        const void *inBuffer);\nextern OSStatus\nAudioFileReadPacketData ( AudioFileID inAudioFile,\n                         Boolean inUseCache,\n                         UInt32 * ioNumBytes,\n                         AudioStreamPacketDescription * _Nullable outPacketDescriptions,\n                         SInt64 inStartingPacket,\n                         UInt32 * ioNumPackets,\n                         void * _Nullable outBuffer);\nextern OSStatus\nAudioFileReadPackets ( AudioFileID inAudioFile,\n                        Boolean inUseCache,\n                        UInt32 * outNumBytes,\n                        AudioStreamPacketDescription * _Nullable outPacketDescriptions,\n                        SInt64 inStartingPacket,\n                        UInt32 * ioNumPackets,\n                        void * _Nullable outBuffer);\nextern OSStatus\nAudioFileWritePackets ( AudioFileID inAudioFile,\n                        Boolean inUseCache,\n                        UInt32 inNumBytes,\n                        const AudioStreamPacketDescription * _Nullable inPacketDescriptions,\n                        SInt64 inStartingPacket,\n                        UInt32 *ioNumPackets,\n                        const void *inBuffer);\nextern OSStatus\nAudioFileCountUserData ( AudioFileID inAudioFile,\n       UInt32 inUserDataID,\n       UInt32 *outNumberItems);\nextern OSStatus\nAudioFileGetUserDataSize ( AudioFileID inAudioFile,\n       UInt32 inUserDataID,\n       UInt32 inIndex,\n       UInt32 *outUserDataSize);\nextern OSStatus\nAudioFileGetUserData ( AudioFileID inAudioFile,\n      UInt32 inUserDataID,\n      UInt32 inIndex,\n      UInt32 *ioUserDataSize,\n      void *outUserData);\nextern OSStatus\nAudioFileSetUserData ( AudioFileID inAudioFile,\n      UInt32 inUserDataID,\n      UInt32 inIndex,\n      UInt32 inUserDataSize,\n      const void *inUserData);\nextern OSStatus\nAudioFileRemoveUserData ( AudioFileID inAudioFile,\n      UInt32 inUserDataID,\n      UInt32 inIndex);\nenum\n{\n kAudioFilePropertyFileFormat = 'ffmt',\n kAudioFilePropertyDataFormat = 'dfmt',\n kAudioFilePropertyIsOptimized = 'optm',\n kAudioFilePropertyMagicCookieData = 'mgic',\n kAudioFilePropertyAudioDataByteCount = 'bcnt',\n kAudioFilePropertyAudioDataPacketCount = 'pcnt',\n kAudioFilePropertyMaximumPacketSize = 'psze',\n kAudioFilePropertyDataOffset = 'doff',\n kAudioFilePropertyChannelLayout = 'cmap',\n kAudioFilePropertyDeferSizeUpdates = 'dszu',\n kAudioFilePropertyDataFormatName = 'fnme',\n kAudioFilePropertyMarkerList = 'mkls',\n kAudioFilePropertyRegionList = 'rgls',\n kAudioFilePropertyPacketToFrame = 'pkfr',\n kAudioFilePropertyFrameToPacket = 'frpk',\n kAudioFilePropertyPacketToByte = 'pkby',\n kAudioFilePropertyByteToPacket = 'bypk',\n kAudioFilePropertyChunkIDs = 'chid',\n kAudioFilePropertyInfoDictionary = 'info',\n kAudioFilePropertyPacketTableInfo = 'pnfo',\n kAudioFilePropertyFormatList = 'flst',\n kAudioFilePropertyPacketSizeUpperBound = 'pkub',\n kAudioFilePropertyReserveDuration = 'rsrv',\n kAudioFilePropertyEstimatedDuration = 'edur',\n kAudioFilePropertyBitRate = 'brat',\n kAudioFilePropertyID3Tag = 'id3t',\n kAudioFilePropertySourceBitDepth = 'sbtd',\n kAudioFilePropertyAlbumArtwork = 'aart',\n    kAudioFilePropertyAudioTrackCount = 'atct',\n kAudioFilePropertyUseAudioTrack = 'uatk'\n};\nextern OSStatus\nAudioFileGetPropertyInfo( AudioFileID inAudioFile,\n                                AudioFilePropertyID inPropertyID,\n                                UInt32 * _Nullable outDataSize,\n                                UInt32 * _Nullable isWritable);\nextern OSStatus\nAudioFileGetProperty( AudioFileID inAudioFile,\n                        AudioFilePropertyID inPropertyID,\n                        UInt32 *ioDataSize,\n                        void *outPropertyData);\nextern OSStatus\nAudioFileSetProperty( AudioFileID inAudioFile,\n                        AudioFilePropertyID inPropertyID,\n                        UInt32 inDataSize,\n                        const void *inPropertyData);\nenum\n{\n kAudioFileGlobalInfo_ReadableTypes = 'afrf',\n kAudioFileGlobalInfo_WritableTypes = 'afwf',\n kAudioFileGlobalInfo_FileTypeName = 'ftnm',\n kAudioFileGlobalInfo_AvailableStreamDescriptionsForFormat = 'sdid',\n kAudioFileGlobalInfo_AvailableFormatIDs = 'fmid',\n\n kAudioFileGlobalInfo_AllExtensions = 'alxt',\n kAudioFileGlobalInfo_AllHFSTypeCodes = 'ahfs',\n kAudioFileGlobalInfo_AllUTIs = 'auti',\n kAudioFileGlobalInfo_AllMIMETypes = 'amim',\n\n kAudioFileGlobalInfo_ExtensionsForType = 'fext',\n kAudioFileGlobalInfo_HFSTypeCodesForType = 'fhfs',\n kAudioFileGlobalInfo_UTIsForType = 'futi',\n kAudioFileGlobalInfo_MIMETypesForType = 'fmim',\n\n kAudioFileGlobalInfo_TypesForMIMEType = 'tmim',\n kAudioFileGlobalInfo_TypesForUTI = 'tuti',\n kAudioFileGlobalInfo_TypesForHFSTypeCode = 'thfs',\n kAudioFileGlobalInfo_TypesForExtension = 'text'\n};\nstruct AudioFileTypeAndFormatID\n{\n AudioFileTypeID mFileType;\n UInt32 mFormatID;\n};\ntypedef struct AudioFileTypeAndFormatID AudioFileTypeAndFormatID;\nextern OSStatus\nAudioFileGetGlobalInfoSize( AudioFilePropertyID inPropertyID,\n                                UInt32 inSpecifierSize,\n                                void * _Nullable inSpecifier,\n                                UInt32 *outDataSize);\nextern OSStatus\nAudioFileGetGlobalInfo( AudioFilePropertyID inPropertyID,\n        UInt32 inSpecifierSize,\n                                void * _Nullable inSpecifier,\n                          UInt32 *ioDataSize,\n                          void *outPropertyData);\n\n\n\nstruct FSRef;\nextern OSStatus\nAudioFileCreate ( const struct FSRef *inParentRef,\n                    CFStringRef inFileName,\n                    AudioFileTypeID inFileType,\n                    const AudioStreamBasicDescription *inFormat,\n                    AudioFileFlags inFlags,\n                    struct FSRef *outNewFileRef,\n                    AudioFileID _Nullable * _Nonnull outAudioFile);\nextern OSStatus\nAudioFileInitialize ( const struct FSRef *inFileRef,\n                        AudioFileTypeID inFileType,\n                        const AudioStreamBasicDescription *inFormat,\n                        AudioFileFlags inFlags,\n                        AudioFileID _Nullable * _Nonnull outAudioFile);\nextern OSStatus\nAudioFileOpen ( const struct FSRef *inFileRef,\n                AudioFilePermissions inPermissions,\n                AudioFileTypeID inFileTypeHint,\n                AudioFileID _Nullable * _Nonnull outAudioFile);\n\n#define kAFInfoDictionary_Album                                                 \"album\"\n#define kAFInfoDictionary_ApproximateDurationInSeconds  \"approximate duration in seconds\"\n#define kAFInfoDictionary_Artist                        \"artist\"\n#define kAFInfoDictionary_ChannelLayout                                 \"channel layout\"\n#define kAFInfoDictionary_Comments                                              \"comments\"\n#define kAFInfoDictionary_Composer                                              \"composer\"\n#define kAFInfoDictionary_Copyright                                             \"copyright\"\n#define kAFInfoDictionary_EncodingApplication           \"encoding application\"\n#define kAFInfoDictionary_Genre                                                 \"genre\"\n#define kAFInfoDictionary_ISRC                                                  \"ISRC\"                                  // International Standard Recording Code\n#define kAFInfoDictionary_KeySignature                                  \"key signature\"\n#define kAFInfoDictionary_Lyricist                                              \"lyricist\"\n#define kAFInfoDictionary_NominalBitRate                \"nominal bit rate\"\n#define kAFInfoDictionary_RecordedDate                                  \"recorded date\"\n#define kAFInfoDictionary_SourceBitDepth                                \"source bit depth\"\n#define kAFInfoDictionary_SourceEncoder                                 \"source encoder\"\n#define kAFInfoDictionary_SubTitle                                              \"subtitle\"\n#define kAFInfoDictionary_Tempo                                                 \"tempo\"\n#define kAFInfoDictionary_TimeSignature                                 \"time signature\"\n#define kAFInfoDictionary_Title                                                 \"title\"\n#define kAFInfoDictionary_TrackNumber                   \"track number\"\n#define kAFInfoDictionary_Year                                                  \"year\"\n\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioFileComponent.h",
    "content": "#ifndef _AUDIO_FILE_COMPONENT_H\n#define _AUDIO_FILE_COMPONENT_H\n\n#include <AudioToolbox/AudioFile.h>\n#include <AudioToolbox/AudioComponent.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef AudioComponentInstance AudioFileComponent;\n\n\n\n\ntypedef UInt32 AudioFileComponentPropertyID;\nextern OSStatus\nAudioFileComponentCreateURL (\n       AudioFileComponent inComponent,\n       CFURLRef inFileRef,\n       const AudioStreamBasicDescription *inFormat,\n       UInt32 inFlags);\nextern OSStatus\nAudioFileComponentOpenURL (\n     AudioFileComponent inComponent,\n     CFURLRef inFileRef,\n     SInt8 inPermissions,\n     int inFileDescriptor);\nextern OSStatus\nAudioFileComponentOpenWithCallbacks(\n        AudioFileComponent inComponent,\n        void *inClientData,\n        AudioFile_ReadProc inReadFunc,\n        AudioFile_WriteProc inWriteFunc,\n        AudioFile_GetSizeProc inGetSizeFunc,\n        AudioFile_SetSizeProc inSetSizeFunc);\nextern OSStatus\nAudioFileComponentInitializeWithCallbacks(\n        AudioFileComponent inComponent,\n        void *inClientData,\n        AudioFile_ReadProc inReadFunc,\n        AudioFile_WriteProc inWriteFunc,\n        AudioFile_GetSizeProc inGetSizeFunc,\n        AudioFile_SetSizeProc inSetSizeFunc,\n        UInt32 inFileType,\n        const AudioStreamBasicDescription *inFormat,\n        UInt32 inFlags);\nextern OSStatus\nAudioFileComponentCloseFile(\n        AudioFileComponent inComponent);\n\n\n\n\n\n\n\nextern OSStatus\nAudioFileComponentOptimize(\n        AudioFileComponent inComponent);\nextern OSStatus\nAudioFileComponentReadBytes(\n        AudioFileComponent inComponent,\n        Boolean inUseCache,\n        SInt64 inStartingByte,\n        UInt32 *ioNumBytes,\n        void *outBuffer);\nextern OSStatus\nAudioFileComponentWriteBytes(\n        AudioFileComponent inComponent,\n        Boolean inUseCache,\n        SInt64 inStartingByte,\n        UInt32 *ioNumBytes,\n        const void *inBuffer);\nextern OSStatus\nAudioFileComponentReadPackets(\n        AudioFileComponent inComponent,\n        Boolean inUseCache,\n        UInt32 *outNumBytes,\n        AudioStreamPacketDescription * _Nullable outPacketDescriptions,\n        SInt64 inStartingPacket,\n        UInt32 *ioNumPackets,\n        void *outBuffer);\nextern OSStatus\nAudioFileComponentReadPacketData(\n        AudioFileComponent inComponent,\n        Boolean inUseCache,\n        UInt32 *ioNumBytes,\n        AudioStreamPacketDescription * _Nullable outPacketDescriptions,\n        SInt64 inStartingPacket,\n        UInt32 *ioNumPackets,\n        void *outBuffer);\nextern OSStatus\nAudioFileComponentWritePackets(\n        AudioFileComponent inComponent,\n        Boolean inUseCache,\n        UInt32 inNumBytes,\n        const AudioStreamPacketDescription * _Nullable inPacketDescriptions,\n        SInt64 inStartingPacket,\n        UInt32 *ioNumPackets,\n        const void *inBuffer);\nextern OSStatus\nAudioFileComponentGetPropertyInfo(\n        AudioFileComponent inComponent,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 * _Nullable outPropertySize,\n        UInt32 * _Nullable outWritable);\nextern OSStatus\nAudioFileComponentGetProperty(\n        AudioFileComponent inComponent,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 *ioPropertyDataSize,\n        void *outPropertyData);\nextern OSStatus\nAudioFileComponentSetProperty(\n        AudioFileComponent inComponent,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 inPropertyDataSize,\n        const void *inPropertyData);\nextern OSStatus\nAudioFileComponentCountUserData(\n        AudioFileComponent inComponent,\n        UInt32 inUserDataID,\n        UInt32 *outNumberItems);\nextern OSStatus\nAudioFileComponentGetUserDataSize(\n        AudioFileComponent inComponent,\n        UInt32 inUserDataID,\n        UInt32 inIndex,\n        UInt32 *outUserDataSize);\nextern OSStatus\nAudioFileComponentGetUserData(\n        AudioFileComponent inComponent,\n        UInt32 inUserDataID,\n        UInt32 inIndex,\n        UInt32 *ioUserDataSize,\n        void *outUserData);\nextern OSStatus\nAudioFileComponentSetUserData(\n        AudioFileComponent inComponent,\n        UInt32 inUserDataID,\n        UInt32 inIndex,\n        UInt32 inUserDataSize,\n        const void *inUserData);\nextern OSStatus\nAudioFileComponentRemoveUserData(\n        AudioFileComponent inComponent,\n        UInt32 inUserDataID,\n        UInt32 inIndex);\nextern OSStatus\nAudioFileComponentExtensionIsThisFormat(\n        AudioFileComponent inComponent,\n        CFStringRef inExtension,\n        UInt32 *outResult);\nextern OSStatus\nAudioFileComponentFileDataIsThisFormat(\n        AudioFileComponent inComponent,\n        UInt32 inDataByteSize,\n        const void* inData,\n        UInt32 *outResult);\nextern OSStatus\nAudioFileComponentFileIsThisFormat(\n        AudioFileComponent inComponent,\n        SInt16 inFileRefNum,\n        UInt32 *outResult);\nextern OSStatus\nAudioFileComponentDataIsThisFormat(\n        AudioFileComponent inComponent,\n        void * _Nullable inClientData,\n        AudioFile_ReadProc _Nullable inReadFunc,\n        AudioFile_WriteProc _Nullable inWriteFunc,\n        AudioFile_GetSizeProc _Nullable inGetSizeFunc,\n        AudioFile_SetSizeProc _Nullable inSetSizeFunc,\n        UInt32 *outResult);\nextern OSStatus\nAudioFileComponentGetGlobalInfoSize(\n        AudioFileComponent inComponent,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 inSpecifierSize,\n        const void * _Nullable inSpecifier,\n        UInt32 *outPropertySize);\nextern OSStatus\nAudioFileComponentGetGlobalInfo(\n        AudioFileComponent inComponent,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 inSpecifierSize,\n        const void * _Nullable inSpecifier,\n        UInt32 *ioPropertyDataSize,\n        void *outPropertyData);\nenum\n{\n kAudioFileComponent_CanRead = 'cnrd',\n kAudioFileComponent_CanWrite = 'cnwr',\n kAudioFileComponent_FileTypeName = 'ftnm',\n kAudioFileComponent_UTIsForType = 'futi',\n kAudioFileComponent_MIMETypesForType = 'fmim',\n kAudioFileComponent_ExtensionsForType = 'fext',\n kAudioFileComponent_AvailableFormatIDs = 'fmid',\n kAudioFileComponent_AvailableStreamDescriptionsForFormat = 'sdid',\n kAudioFileComponent_FastDispatchTable = 'fdft',\n kAudioFileComponent_HFSTypeCodesForType = 'fhfs'\n};\n\n\n\n\n\nenum\n{\n kAudioFileCreateSelect = 0x0001,\n kAudioFileOpenSelect = 0x0002,\n kAudioFileInitializeSelect = 0x0003,\n kAudioFileOpenWithCallbacksSelect = 0x0004,\n kAudioFileInitializeWithCallbacksSelect = 0x0005,\n kAudioFileCloseSelect = 0x0006,\n kAudioFileOptimizeSelect = 0x0007,\n kAudioFileReadBytesSelect = 0x0008,\n kAudioFileWriteBytesSelect = 0x0009,\n kAudioFileReadPacketsSelect = 0x000A,\n kAudioFileWritePacketsSelect = 0x000B,\n kAudioFileGetPropertyInfoSelect = 0x000C,\n kAudioFileGetPropertySelect = 0x000D,\n kAudioFileSetPropertySelect = 0x000E,\n\n kAudioFileExtensionIsThisFormatSelect = 0x000F,\n kAudioFileFileIsThisFormatSelect = 0x0010,\n kAudioFileDataIsThisFormatSelect = 0x0011,\n kAudioFileGetGlobalInfoSizeSelect = 0x0012,\n kAudioFileGetGlobalInfoSelect = 0x0013,\n\n kAudioFileCountUserDataSelect = 0x0014,\n kAudioFileGetUserDataSizeSelect = 0x0015,\n kAudioFileGetUserDataSelect = 0x0016,\n kAudioFileSetUserDataSelect = 0x0017,\n kAudioFileRemoveUserDataSelect = 0x0018,\n kAudioFileCreateURLSelect = 0x0019,\n kAudioFileOpenURLSelect = 0x001A,\n kAudioFileFileDataIsThisFormatSelect = 0x001B,\n kAudioFileReadPacketDataSelect = 0x001C,\n};\ntypedef OSStatus (*ReadBytesFDF)( void *inComponentStorage,\n         Boolean inUseCache,\n         SInt64 inStartingByte,\n         UInt32 *ioNumBytes,\n         void *outBuffer);\n\ntypedef OSStatus (*WriteBytesFDF)( void *inComponentStorage,\n         Boolean inUseCache,\n         SInt64 inStartingByte,\n         UInt32 *ioNumBytes,\n         const void *inBuffer);\n\ntypedef OSStatus (*ReadPacketsFDF)( void *inComponentStorage,\n         Boolean inUseCache,\n         UInt32 *outNumBytes,\n         AudioStreamPacketDescription * _Nullable outPacketDescriptions,\n         SInt64 inStartingPacket,\n         UInt32 *ioNumPackets,\n         void *outBuffer);\n\ntypedef OSStatus (*ReadPacketDataFDF)( void *inComponentStorage,\n         Boolean inUseCache,\n         UInt32 *ioNumBytes,\n         AudioStreamPacketDescription * _Nullable outPacketDescriptions,\n         SInt64 inStartingPacket,\n         UInt32 *ioNumPackets,\n         void *outBuffer);\n\ntypedef OSStatus (*WritePacketsFDF)( void *inComponentStorage,\n          Boolean inUseCache,\n          UInt32 inNumBytes,\n          const AudioStreamPacketDescription * _Nullable inPacketDescriptions,\n          SInt64 inStartingPacket,\n          UInt32 *ioNumPackets,\n          const void *inBuffer);\n\ntypedef OSStatus (*GetPropertyInfoFDF)( void *inComponentStorage,\n          AudioFilePropertyID inPropertyID,\n          UInt32 * _Nullable outDataSize,\n          UInt32 * _Nullable isWritable);\n\ntypedef OSStatus (*GetPropertyFDF)( void *inComponentStorage,\n          AudioFilePropertyID inPropertyID,\n          UInt32 *ioDataSize,\n          void *ioPropertyData);\n\ntypedef OSStatus (*SetPropertyFDF)( void *inComponentStorage,\n          AudioFilePropertyID inPropertyID,\n          UInt32 inDataSize,\n          const void *inPropertyData);\n\ntypedef OSStatus (*CountUserDataFDF)( void *inComponentStorage,\n          UInt32 inUserDataID,\n          UInt32 *outNumberItems);\n\ntypedef OSStatus (*GetUserDataSizeFDF)( void *inComponentStorage,\n          UInt32 inUserDataID,\n          UInt32 inIndex,\n          UInt32 *outDataSize);\n\ntypedef OSStatus (*GetUserDataFDF)( void *inComponentStorage,\n          UInt32 inUserDataID,\n          UInt32 inIndex,\n          UInt32 *ioUserDataSize,\n          void *outUserData);\n\ntypedef OSStatus (*SetUserDataFDF)( void *inComponentStorage,\n          UInt32 inUserDataID,\n          UInt32 inIndex,\n          UInt32 inUserDataSize,\n          const void *inUserData);\ntypedef struct AudioFileFDFTable\n{\n void *mComponentStorage;\n ReadBytesFDF mReadBytesFDF;\n WriteBytesFDF mWriteBytesFDF;\n ReadPacketsFDF mReadPacketsFDF;\n WritePacketsFDF mWritePacketsFDF;\n\n GetPropertyInfoFDF mGetPropertyInfoFDF;\n GetPropertyFDF mGetPropertyFDF;\n SetPropertyFDF mSetPropertyFDF;\n\n CountUserDataFDF mCountUserDataFDF;\n GetUserDataSizeFDF mGetUserDataSizeFDF;\n GetUserDataFDF mGetUserDataFDF;\n SetUserDataFDF mSetUserDataFDF;\n} AudioFileFDFTable;\n\ntypedef struct AudioFileFDFTableExtended\n{\n void *mComponentStorage;\n ReadBytesFDF mReadBytesFDF;\n WriteBytesFDF mWriteBytesFDF;\n ReadPacketsFDF mReadPacketsFDF;\n WritePacketsFDF mWritePacketsFDF;\n\n GetPropertyInfoFDF mGetPropertyInfoFDF;\n GetPropertyFDF mGetPropertyFDF;\n SetPropertyFDF mSetPropertyFDF;\n\n CountUserDataFDF mCountUserDataFDF;\n GetUserDataSizeFDF mGetUserDataSizeFDF;\n GetUserDataFDF mGetUserDataFDF;\n SetUserDataFDF mSetUserDataFDF;\n\n ReadPacketDataFDF mReadPacketDataFDF;\n} AudioFileFDFTableExtended;\n\n\n\n\n\n\n\nstruct FSRef;\nextern OSStatus\nAudioFileComponentCreate(\n        AudioFileComponent inComponent,\n        const struct FSRef *inParentRef,\n        CFStringRef inFileName,\n        const AudioStreamBasicDescription *inFormat,\n        UInt32 inFlags,\n        struct FSRef *outNewFileRef);\nextern OSStatus\nAudioFileComponentInitialize(\n        AudioFileComponent inComponent,\n        const struct FSRef *inFileRef,\n        const AudioStreamBasicDescription *inFormat,\n        UInt32 inFlags);\nextern OSStatus\nAudioFileComponentOpenFile(\n        AudioFileComponent inComponent,\n        const struct FSRef *inFileRef,\n        SInt8 inPermissions,\n        SInt16 inRefNum);\n\n\n\n\n\n\n\ntypedef OSStatus (*AudioFileComponentCreateURLProc)(\n        void *self,\n        CFURLRef inFileRef,\n        const AudioStreamBasicDescription* inFormat,\n        UInt32 inFlags);\ntypedef OSStatus (*AudioFileComponentOpenURLProc)(\n        void *self,\n        CFURLRef inFileRef,\n        SInt8 inPermissions,\n        int inFileDescriptor);\n\ntypedef OSStatus (*AudioFileComponentOpenWithCallbacksProc)(\n        void *self,\n        void *inClientData,\n        AudioFile_ReadProc inReadFunc,\n        AudioFile_WriteProc inWriteFunc,\n        AudioFile_GetSizeProc inGetSizeFunc,\n        AudioFile_SetSizeProc inSetSizeFunc);\n\ntypedef OSStatus (*AudioFileComponentInitializeWithCallbacksProc)(\n        void *self,\n        void *inClientData,\n        AudioFile_ReadProc inReadFunc,\n        AudioFile_WriteProc inWriteFunc,\n        AudioFile_GetSizeProc inGetSizeFunc,\n        AudioFile_SetSizeProc inSetSizeFunc,\n        UInt32 inFileType,\n        const AudioStreamBasicDescription *inFormat,\n        UInt32 inFlags);\n\ntypedef OSStatus (*AudioFileComponentCloseProc)(\n        void *self);\n\ntypedef OSStatus (*AudioFileComponentOptimizeProc)(\n        void *self);\n\ntypedef OSStatus (*AudioFileComponentReadBytesProc)(\n        void *self,\n        Boolean inUseCache,\n        SInt64 inStartingByte,\n        UInt32 *ioNumBytes,\n        void *outBuffer);\n\ntypedef OSStatus (*AudioFileComponentWriteBytesProc)(\n        void *self,\n        Boolean inUseCache,\n        SInt64 inStartingByte,\n        UInt32 *ioNumBytes,\n        const void *inBuffer);\n\ntypedef OSStatus (*AudioFileComponentReadPacketsProc)(\n        void *self,\n        Boolean inUseCache,\n        UInt32 *outNumBytes,\n        AudioStreamPacketDescription * _Nullable outPacketDescriptions,\n        SInt64 inStartingPacket,\n        UInt32 *ioNumPackets,\n        void *outBuffer);\n\n\ntypedef OSStatus (*AudioFileComponentReadPacketDataProc)(\n        void *self,\n        Boolean inUseCache,\n        UInt32 *ioNumBytes,\n        AudioStreamPacketDescription * _Nullable outPacketDescriptions,\n        SInt64 inStartingPacket,\n        UInt32 *ioNumPackets,\n        void *outBuffer);\n\ntypedef OSStatus (*AudioFileComponentWritePacketsProc)(\n        void *self,\n        Boolean inUseCache,\n        UInt32 inNumBytes,\n        const AudioStreamPacketDescription * _Nullable inPacketDescriptions,\n        SInt64 inStartingPacket,\n        UInt32 *ioNumPackets,\n        const void *inBuffer);\n\n\ntypedef OSStatus (*AudioFileComponentGetPropertyInfoProc)(\n        void *self,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 * _Nullable outPropertySize,\n        UInt32 * _Nullable outWritable);\n\n\ntypedef OSStatus (*AudioFileComponentGetPropertyProc)(\n        void *self,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 *ioPropertyDataSize,\n        void *outPropertyData);\n\ntypedef OSStatus (*AudioFileComponentSetPropertyProc)(\n        void *self,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 inPropertyDataSize,\n        const void *inPropertyData);\n\n\ntypedef OSStatus (*AudioFileComponentCountUserDataProc)(\n        void *self,\n        UInt32 inUserDataID,\n        UInt32 *outNumberItems);\n\ntypedef OSStatus (*AudioFileComponentGetUserDataSizeProc)(\n        void *self,\n        UInt32 inUserDataID,\n        UInt32 inIndex,\n        UInt32 *outUserDataSize);\n\ntypedef OSStatus (*AudioFileComponentGetUserDataProc)(\n        void *self,\n        UInt32 inUserDataID,\n        UInt32 inIndex,\n        UInt32 *ioUserDataSize,\n        void *outUserData);\n\ntypedef OSStatus (*AudioFileComponentSetUserDataProc)(\n        void *self,\n        UInt32 inUserDataID,\n        UInt32 inIndex,\n        UInt32 inUserDataSize,\n        const void *inUserData);\n\n\ntypedef OSStatus (*AudioFileComponentRemoveUserDataProc)(\n        void *self,\n        UInt32 inUserDataID,\n        UInt32 inIndex);\n\ntypedef OSStatus (*AudioFileComponentExtensionIsThisFormatProc)(\n        void *self,\n        CFStringRef inExtension,\n        UInt32 *outResult);\n\n\ntypedef OSStatus (*AudioFileComponentFileDataIsThisFormatProc)(\n        void *self,\n        UInt32 inDataByteSize,\n        const void* inData,\n        UInt32 *outResult);\n\n\ntypedef OSStatus (*AudioFileComponentGetGlobalInfoSizeProc)(\n        void *self,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 inSpecifierSize,\n        const void * _Nullable inSpecifier,\n        UInt32 *outPropertySize);\n\ntypedef OSStatus (*AudioFileComponentGetGlobalInfoProc)(\n        void *self,\n        AudioFileComponentPropertyID inPropertyID,\n        UInt32 inSpecifierSize,\n        const void * _Nullable inSpecifier,\n        UInt32 *ioPropertyDataSize,\n        void *outPropertyData);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioFormat.h",
    "content": "#ifndef AT_AUDIO_FORMAT_H\n#define AT_AUDIO_FORMAT_H\n#include <CoreAudio/CoreAudioTypes.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef UInt32 AudioFormatPropertyID;\ntypedef UInt32 AudioPanningMode; enum {\n kPanningMode_SoundField = 3,\n kPanningMode_VectorBasedPanning = 4\n};\nstruct AudioPanningInfo {\n AudioPanningMode mPanningMode;\n UInt32 mCoordinateFlags;\n Float32 mCoordinates[3];\n Float32 mGainScale;\n const AudioChannelLayout * mOutputChannelMap;\n};\ntypedef struct AudioPanningInfo AudioPanningInfo;\ntypedef UInt32 AudioBalanceFadeType; enum {\n kAudioBalanceFadeType_MaxUnityGain = 0,\n kAudioBalanceFadeType_EqualPower = 1\n};\nstruct AudioBalanceFade\n{\n Float32 mLeftRightBalance;\n Float32 mBackFrontFade;\n AudioBalanceFadeType mType;\n const AudioChannelLayout* mChannelLayout;\n};\ntypedef struct AudioBalanceFade AudioBalanceFade;\nstruct AudioFormatInfo\n{\n AudioStreamBasicDescription mASBD;\n const void* mMagicCookie;\n UInt32 mMagicCookieSize;\n};\ntypedef struct AudioFormatInfo AudioFormatInfo;\nstruct ExtendedAudioFormatInfo\n{\n AudioStreamBasicDescription mASBD;\n const void* _Nullable mMagicCookie;\n UInt32 mMagicCookieSize;\n AudioClassDescription mClassDescription;\n};\ntypedef struct ExtendedAudioFormatInfo ExtendedAudioFormatInfo;\nstruct AudioFormatListItem\n{\n AudioStreamBasicDescription mASBD;\n AudioChannelLayoutTag mChannelLayoutTag;\n};\ntypedef struct AudioFormatListItem AudioFormatListItem;\nenum\n{\n kAudioFormatProperty_FormatInfo = 'fmti',\n kAudioFormatProperty_FormatName = 'fnam',\n kAudioFormatProperty_EncodeFormatIDs = 'acof',\n kAudioFormatProperty_DecodeFormatIDs = 'acif',\n kAudioFormatProperty_FormatList = 'flst',\n    kAudioFormatProperty_ASBDFromESDS = 'essd',\n    kAudioFormatProperty_ChannelLayoutFromESDS = 'escl',\n kAudioFormatProperty_OutputFormatList = 'ofls',\n kAudioFormatProperty_FirstPlayableFormatFromList = 'fpfl',\n kAudioFormatProperty_FormatIsVBR = 'fvbr',\n kAudioFormatProperty_FormatIsExternallyFramed = 'fexf',\n kAudioFormatProperty_FormatIsEncrypted = 'cryp',\n kAudioFormatProperty_Encoders = 'aven',\n kAudioFormatProperty_Decoders = 'avde',\n kAudioFormatProperty_AvailableEncodeBitRates = 'aebr',\n kAudioFormatProperty_AvailableEncodeSampleRates = 'aesr',\n kAudioFormatProperty_AvailableEncodeChannelLayoutTags = 'aecl',\n kAudioFormatProperty_AvailableEncodeNumberChannels = 'avnc',\n kAudioFormatProperty_ASBDFromMPEGPacket = 'admp',\n kAudioFormatProperty_BitmapForLayoutTag = 'bmtg',\n kAudioFormatProperty_MatrixMixMap = 'mmap',\n    kAudioFormatProperty_ChannelMap = 'chmp',\n kAudioFormatProperty_NumberOfChannelsForLayout = 'nchm',\n kAudioFormatProperty_AreChannelLayoutsEquivalent = 'cheq',\n    kAudioFormatProperty_ChannelLayoutHash = 'chha',\n kAudioFormatProperty_ValidateChannelLayout = 'vacl',\n kAudioFormatProperty_ChannelLayoutForTag = 'cmpl',\n kAudioFormatProperty_TagForChannelLayout = 'cmpt',\n kAudioFormatProperty_ChannelLayoutName = 'lonm',\n kAudioFormatProperty_ChannelLayoutSimpleName = 'lsnm',\n kAudioFormatProperty_ChannelLayoutForBitmap = 'cmpb',\n kAudioFormatProperty_ChannelName = 'cnam',\n kAudioFormatProperty_ChannelShortName = 'csnm',\n\n kAudioFormatProperty_TagsForNumberOfChannels = 'tagc',\n kAudioFormatProperty_PanningMatrix = 'panm',\n kAudioFormatProperty_BalanceFade = 'balf',\n\n kAudioFormatProperty_ID3TagSize = 'id3s',\n kAudioFormatProperty_ID3TagToDictionary = 'id3d'\n};\nextern OSStatus\nAudioFormatGetPropertyInfo( AudioFormatPropertyID inPropertyID,\n       UInt32 inSpecifierSize,\n       const void * _Nullable inSpecifier,\n       UInt32 * outPropertyDataSize);\nextern OSStatus\nAudioFormatGetProperty( AudioFormatPropertyID inPropertyID,\n      UInt32 inSpecifierSize,\n      const void * _Nullable inSpecifier,\n      UInt32 * _Nullable ioPropertyDataSize,\n      void * _Nullable outPropertyData);\n\nenum\n{\n        kAudioFormatUnspecifiedError = 'what',\n        kAudioFormatUnsupportedPropertyError = 'prop',\n        kAudioFormatBadPropertySizeError = '!siz',\n        kAudioFormatBadSpecifierSizeError = '!spc',\n        kAudioFormatUnsupportedDataFormatError = 'fmt?',\n        kAudioFormatUnknownFormatError = '!fmt'\n};\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioHardwareService.h",
    "content": "#include <CarbonCore/Components.h>\n#include <CoreAudio/AudioHardware.h>\n\nextern \"C\"{\nOSStatus AudioHardwareServiceGetPropertyData(AudioObjectID inObjectID, const AudioObjectPropertyAddress *inAddress, UInt32 inQualifierDataSize, const void *inQualifierData, UInt32 *ioDataSize, void *outData);\nBoolean AudioHardwareServiceHasProperty(AudioObjectID inObjectID, const AudioObjectPropertyAddress *inAddress);\nOSStatus AudioHardwareServiceIsPropertySettable(AudioObjectID inObjectID, const AudioObjectPropertyAddress *inAddress, Boolean *outIsSettable);\nOSStatus AudioHardwareServiceSetPropertyData(AudioObjectID inObjectID, const AudioObjectPropertyAddress *inAddress, UInt32 inQualifierDataSize, const void *inQualifierData, UInt32 inDataSize, const void *inData);\n}\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioOutputUnit.h",
    "content": "#ifndef AT_AUDIO_OUTPUT_UNIT_H\n#define AT_AUDIO_OUTPUT_UNIT_H\n#include <AudioToolbox/AUComponent.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nenum {\n\tkAudioOutputUnitRange = 0x0200,\n\tkAudioOutputUnitStartSelect = 0x0201,\n\tkAudioOutputUnitStopSelect = 0x0202\n};\n\n\nextern OSStatus\nAudioOutputUnitStart(AudioUnit ci);\n\nextern OSStatus\nAudioOutputUnitStop(AudioUnit ci);\n\n#ifdef __cplusplus\n}\n#endif\n\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioQueue.h",
    "content": "#ifndef AUDIOBUFFER_H\n#define\tAUDIOBUFFER_H\n#include <CoreAudio/CoreAudioTypes.h>\n#include <CoreServices/MacTypes.h>\n#include <CoreFoundation/CFString.h>\n#include <CoreFoundation/CFRunLoop.h>\n\n#ifdef\t__cplusplus\nextern \"C\" {\n#endif\n\ntypedef UInt32 AudioQueuePropertyID;\ntypedef UInt32 AudioQueueParameterID;\ntypedef Float32 AudioQueueParameterValue;\n\nstruct AudioQueueParameterEvent\n{\n\tAudioQueueParameterID mID;\n\tAudioQueueParameterValue mValue;\n};\n\nclass AudioQueue;\ntypedef AudioQueue* AudioQueueRef;\n\nstruct AudioQueueBuffer\n{\n\tconst UInt32 mAudioDataBytesCapacity;\n\tvoid* mAudioData;\n\tUInt32 mAudioDataByteSize;\n\tvoid* mUserData;\n\t\n\tUInt32 mPacketDescriptionCapacity;\n\tAudioStreamPacketDescription* mPacketDescriptions;\n\tUInt32 mPacketDescriptionCount;\n};\ntypedef AudioQueueBuffer* AudioQueueBufferRef;\n\t\nOSStatus AudioQueueStart(AudioQueueRef inAQ, const AudioTimeStamp *inStartTime);\nOSStatus AudioQueuePrime(AudioQueueRef inAQ, UInt32 inNumberOfFramesToPrepare, UInt32 *outNumberOfFramesPrepared);\nOSStatus AudioQueueFlush(AudioQueueRef inAQ);\nOSStatus AudioQueueStop(AudioQueueRef inAQ, Boolean inImmediate);\nOSStatus AudioQueuePause(AudioQueueRef inAQ);\nOSStatus AudioQueueReset(AudioQueueRef inAQ);\n\ntypedef void (*AudioQueueOutputCallback)(void* inUserData, AudioQueueRef inAQ,\n\t\tAudioQueueBufferRef inBuffer);\nOSStatus AudioQueueNewOutput(const AudioStreamBasicDescription *inFormat,\n\t\tAudioQueueOutputCallback inCallbackProc,\n\t\tvoid *inUserData, CFRunLoopRef inCallbackRunLoop,\n\t\tCFStringRef inCallbackRunLoopMode, UInt32 inFlags,\n\t\tAudioQueueRef *outAQ);\n\ntypedef void (*AudioQueueInputCallback)(void* inUserData, AudioQueueRef inAQ,\n\t\tAudioQueueBufferRef inBuffer, const AudioTimeStamp* inStartTime,\n\t\tUInt32 inNumberPacketDescriptions,\n\t\tconst AudioStreamPacketDescription* inPacketDescs);\nOSStatus AudioQueueNewInput(const AudioStreamBasicDescription *inFormat,\n\t\tAudioQueueInputCallback inCallbackProc,\n\t\tvoid *inUserData, CFRunLoopRef inCallbackRunLoop,\n\t\tCFStringRef inCallbackRunLoopMode, UInt32 inFlags,\n\t\tAudioQueueRef *outAQ);\n\nOSStatus AudioQueueDispose(AudioQueueRef inAQ, Boolean inImmediate);\n\nOSStatus AudioQueueGetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue *outValue);\nOSStatus AudioQueueSetParameter(AudioQueueRef inAQ, AudioQueueParameterID inParamID, AudioQueueParameterValue inValue);\n \nOSStatus AudioQueueGetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, void *outData, UInt32 *ioDataSize);\nOSStatus AudioQueueSetProperty(AudioQueueRef inAQ, AudioQueuePropertyID inID, const void *inData, UInt32 inDataSize);\nOSStatus AudioQueueGetPropertySize(AudioQueueRef inAQ, AudioQueuePropertyID inID, UInt32 *outDataSize);\n\ntypedef void (*AudioQueuePropertyListenerProc)(void* inUserData, AudioQueueRef inAQ, AudioQueuePropertyID inID);\nOSStatus AudioQueueAddPropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData);\nOSStatus AudioQueueRemovePropertyListener(AudioQueueRef inAQ, AudioQueuePropertyID inID, AudioQueuePropertyListenerProc inProc, void *inUserData);\n\nOSStatus AudioQueueSetOfflineRenderFormat(AudioQueueRef inAQ, const AudioStreamBasicDescription *inFormat, const AudioChannelLayout *inLayout);\nOSStatus AudioQueueOfflineRender(AudioQueueRef inAQ, const AudioTimeStamp *inTimestamp, AudioQueueBufferRef ioBuffer, UInt32 inNumberFrames);\n\nOSStatus AudioQueueAllocateBuffer(AudioQueueRef inAQ, UInt32 inBufferByteSize, AudioQueueBufferRef *outBuffer);\nOSStatus AudioQueueAllocateBufferWithPacketDescriptions(AudioQueueRef inAQ,\n\t\tUInt32 inBufferByteSize, UInt32 inNumberPacketDescriptions,\n\t\tAudioQueueBufferRef *outBuffer);\nOSStatus AudioQueueFreeBuffer(AudioQueueRef inAQ, AudioQueueBufferRef inBuffer);\nOSStatus AudioQueueEnqueueBuffer(AudioQueueRef inAQ, AudioQueueBufferRef inBuffer,\n\t\tUInt32 inNumPacketDescs, const AudioStreamPacketDescription *inPacketDescs);\nOSStatus AudioQueueEnqueueBufferWithParameters(AudioQueueRef inAQ,\n\t\tAudioQueueBufferRef inBuffer, UInt32 inNumPacketDescs,\n\t\tconst AudioStreamPacketDescription *inPacketDescs,\n\t\tUInt32 inTrimFramesAtStart, UInt32 inTrimFramesAtEnd,\n\t\tUInt32 inNumParamValues, const AudioQueueParameterEvent *inParamValues,\n\t\tconst AudioTimeStamp *inStartTime, AudioTimeStamp *outActualStartTime); \n\nclass AudioQueueTimeline;\ntypedef AudioQueueTimeline* AudioQueueTimelineRef;\n\nOSStatus AudioQueueCreateTimeline(AudioQueueRef inAQ, AudioQueueTimelineRef *outTimeline);\nOSStatus AudioQueueDisposeTimeline(AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline);\nOSStatus AudioQueueDeviceGetCurrentTime(AudioQueueRef inAQ, AudioTimeStamp *outTimeStamp);\nOSStatus AudioQueueDeviceGetNearestStartTime(AudioQueueRef inAQ, AudioTimeStamp *ioRequestedStartTime, UInt32 inFlags);\nOSStatus AudioQueueDeviceTranslateTime(AudioQueueRef inAQ, const AudioTimeStamp *inTime, AudioTimeStamp *outTime);\nOSStatus AudioQueueGetCurrentTime(AudioQueueRef inAQ, AudioQueueTimelineRef inTimeline, AudioTimeStamp *outTimeStamp, Boolean *outTimelineDiscontinuity);\n\n#ifdef\t__cplusplus\n}\n#endif\n\n#endif\t/* AUDIOBUFFER_H */\n\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioToolbox.h",
    "content": "#ifndef AUDIOTOOLBOX_H\n#define AUDIOTOOLBOX_H\n\n#include <AudioToolbox/AudioQueue.h>\n#include <AudioToolbox/AudioFile.h>\n#include <AudioToolbox/AudioConverter.h>\n#include <AudioToolbox/AUGraph.h>\n#include <AudioToolbox/AudioUnitParameters.h>\n#include <AudioToolbox/AudioFormat.h>\n#include <AudioToolbox/AudioUnit.h>\n#include <AudioToolbox/ExtendedAudioFile.h>\n#include <AudioToolbox/MusicDevice.h>\n#include <AudioToolbox/AudioCodec.h>\n#include <AudioToolbox/AudioHardwareService.h>\n\n// CA helper classes expect this\n#include <CoreServices/FileManager.h>\n#include <CarbonCore/Components.h>\n\n// OpenAL expects this\n#include <stdlib.h>\n#include <string.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nextern void CAShow(void* inObject);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioUnit.h",
    "content": "#ifndef AUDIOUNIT_H\n#define AUDIOUNIT_H\n\n#include <AudioToolbox/AudioComponent.h>\n#include <AudioToolbox/AUComponent.h>\n#include <AudioToolbox/AudioUnit.h>\n#include <AudioToolbox/AudioOutputUnit.h>\n#include <AudioToolbox/AudioUnitProperties.h>\n// TODO: More headers\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioUnitParameters.h",
    "content": "#ifndef _AUDIO_UNIT_PARAMETERS_H\n#define _AUDIO_UNIT_PARAMETERS_H\n\n#include <CoreAudio/CoreAudioTypes.h>\n#include <AudioToolbox/AUComponent.h>\n\nenum {\n kAUGroupParameterID_Volume = 7,\n kAUGroupParameterID_Sustain = 64,\n kAUGroupParameterID_Sostenuto = 66,\n kAUGroupParameterID_AllNotesOff = 123,\n kAUGroupParameterID_ModWheel = 1,\n kAUGroupParameterID_PitchBend = 0xE0,\n kAUGroupParameterID_AllSoundOff = 120,\n kAUGroupParameterID_ResetAllControllers = 121,\n kAUGroupParameterID_Pan = 10,\n kAUGroupParameterID_Foot = 4,\n kAUGroupParameterID_ChannelPressure = 0xD0,\n kAUGroupParameterID_KeyPressure = 0xA0,\n kAUGroupParameterID_Expression = 11,\n kAUGroupParameterID_DataEntry = 6,\n\n kAUGroupParameterID_Volume_LSB = kAUGroupParameterID_Volume + 32,\n kAUGroupParameterID_ModWheel_LSB = kAUGroupParameterID_ModWheel + 32,\n kAUGroupParameterID_Pan_LSB = kAUGroupParameterID_Pan + 32,\n kAUGroupParameterID_Foot_LSB = kAUGroupParameterID_Foot + 32,\n kAUGroupParameterID_Expression_LSB = kAUGroupParameterID_Expression + 32,\n kAUGroupParameterID_DataEntry_LSB = kAUGroupParameterID_DataEntry + 32,\n\n kAUGroupParameterID_KeyPressure_FirstKey = 256,\n kAUGroupParameterID_KeyPressure_LastKey = 383\n};\nenum {\n\n kPannerParam_Gain = 0,\n\n\n kPannerParam_Azimuth = 1,\n\n kPannerParam_Elevation = 2,\n\n\n kPannerParam_Distance = 3,\n\n\n kPannerParam_CoordScale = 4,\n\n kPannerParam_RefDistance = 5,\n};\n\n\n\n\n\n\nenum {\n\n    kSpatialMixerParam_Azimuth = 0,\n\n\n    kSpatialMixerParam_Elevation = 1,\n\n\n    kSpatialMixerParam_Distance = 2,\n\n\n    kSpatialMixerParam_Gain = 3,\n\n\n    kSpatialMixerParam_PlaybackRate = 4,\n\n\n    kSpatialMixerParam_Enable = 5,\n\n\n    kSpatialMixerParam_MinGain = 6,\n\n\n    kSpatialMixerParam_MaxGain = 7,\n\n\n    kSpatialMixerParam_ReverbBlend = 8,\n\n\n    kSpatialMixerParam_GlobalReverbGain = 9,\n\n\n\n\n    kSpatialMixerParam_OcclusionAttenuation = 10,\n\n\n\n\n    kSpatialMixerParam_ObstructionAttenuation = 11\n};\n\n\nenum {\n\n kReverbParam_FilterFrequency = 14,\n\n\n kReverbParam_FilterBandwidth = 15,\n\n\n kReverbParam_FilterGain = 16,\n\n\n    kReverbParam_FilterType = 17,\n\n\n    kReverbParam_FilterEnable = 18\n};\n\n\n\nenum {\n\n    k3DMixerParam_Azimuth = 0,\n\n\n    k3DMixerParam_Elevation = 1,\n\n\n    k3DMixerParam_Distance = 2,\n\n\n    k3DMixerParam_Gain = 3,\n\n\n    k3DMixerParam_PlaybackRate = 4,\n\n\n\n\n    k3DMixerParam_ReverbBlend = 5,\n\n\n    k3DMixerParam_GlobalReverbGain = 6,\n\n\n\n\n    k3DMixerParam_OcclusionAttenuation = 7,\n\n\n\n\n    k3DMixerParam_ObstructionAttenuation = 8,\n\n\n    k3DMixerParam_MinGain = 9,\n\n\n    k3DMixerParam_MaxGain = 10,\n\n\n\n\n\n\n\n k3DMixerParam_PreAveragePower = 1000,\n k3DMixerParam_PrePeakHoldLevel = 2000,\n k3DMixerParam_PostAveragePower = 3000,\n k3DMixerParam_PostPeakHoldLevel = 4000\n};\n\n\n\n\nenum {\n\n kMultiChannelMixerParam_Volume = 0,\n\n kMultiChannelMixerParam_Enable = 1,\n\n kMultiChannelMixerParam_Pan = 2,\n\n\n\n\n\n kMultiChannelMixerParam_PreAveragePower = 1000,\n kMultiChannelMixerParam_PrePeakHoldLevel = 2000,\n kMultiChannelMixerParam_PostAveragePower = 3000,\n kMultiChannelMixerParam_PostPeakHoldLevel = 4000\n};\n\n\n\nenum {\n kMatrixMixerParam_Volume = 0,\n kMatrixMixerParam_Enable = 1,\n\n\n\n kMatrixMixerParam_PreAveragePower = 1000,\n kMatrixMixerParam_PrePeakHoldLevel = 2000,\n kMatrixMixerParam_PostAveragePower = 3000,\n kMatrixMixerParam_PostPeakHoldLevel = 4000,\n\n\n kMatrixMixerParam_PreAveragePowerLinear = 5000,\n kMatrixMixerParam_PrePeakHoldLevelLinear = 6000,\n kMatrixMixerParam_PostAveragePowerLinear = 7000,\n kMatrixMixerParam_PostPeakHoldLevelLinear = 8000\n};\n\n\n\n\nenum {\n\n kHALOutputParam_Volume = 14\n};\n\n\nenum {\n kTimePitchParam_Rate = 0,\n kTimePitchParam_Pitch = 1,\n kTimePitchParam_EffectBlend = 2\n};\n\n\nenum {\n\n\n kNewTimePitchParam_Rate = 0,\n\n\n\n kNewTimePitchParam_Pitch = 1,\n\n\n\n\n\n kNewTimePitchParam_Overlap = 4,\n\n\n\n\n\n\n kNewTimePitchParam_EnablePeakLocking = 6\n};\n\n\nenum {\n\n kAUSamplerParam_Gain = 900,\n\n\n kAUSamplerParam_CoarseTuning = 901,\n\n\n kAUSamplerParam_FineTuning = 902,\n\n\n kAUSamplerParam_Pan = 903\n};\n\n\n\n\n\n\n\nenum {\n\n kBandpassParam_CenterFrequency = 0,\n\n\n kBandpassParam_Bandwidth = 1\n};\n\n\nenum {\n\n kHipassParam_CutoffFrequency = 0,\n\n\n kHipassParam_Resonance = 1\n};\n\n\nenum {\n\n kLowPassParam_CutoffFrequency = 0,\n\n\n kLowPassParam_Resonance = 1\n};\n\n\nenum {\n\n kHighShelfParam_CutOffFrequency = 0,\n\n\n kHighShelfParam_Gain = 1\n};\n\n\nenum {\n\n kAULowShelfParam_CutoffFrequency = 0,\n\n\n kAULowShelfParam_Gain = 1\n};\n\n\nenum {\n\n    kParametricEQParam_CenterFreq = 0,\n\n\n    kParametricEQParam_Q = 1,\n\n\n    kParametricEQParam_Gain = 2\n};\n\n\nenum {\n\n kLimiterParam_AttackTime = 0,\n\n\n kLimiterParam_DecayTime = 1,\n\n\n kLimiterParam_PreGain = 2\n};\n\n\n\n\n\n\n\nenum {\n\n kDynamicsProcessorParam_Threshold = 0,\n\n\n kDynamicsProcessorParam_HeadRoom = 1,\n\n\n kDynamicsProcessorParam_ExpansionRatio = 2,\n\n\n kDynamicsProcessorParam_ExpansionThreshold = 3,\n\n\n kDynamicsProcessorParam_AttackTime = 4,\n\n\n kDynamicsProcessorParam_ReleaseTime = 5,\n\n\n kDynamicsProcessorParam_MasterGain = 6,\n\n\n kDynamicsProcessorParam_CompressionAmount = 1000,\n kDynamicsProcessorParam_InputAmplitude = 2000,\n kDynamicsProcessorParam_OutputAmplitude = 3000\n};\n\n\n\nenum {\n\n kVarispeedParam_PlaybackRate = 0,\n\n kVarispeedParam_PlaybackCents = 1\n};\n\n\n\nenum {\n\n kDistortionParam_Delay = 0,\n\n kDistortionParam_Decay = 1,\n\n kDistortionParam_DelayMix = 2,\n\n\n kDistortionParam_Decimation = 3,\n\n kDistortionParam_Rounding = 4,\n\n kDistortionParam_DecimationMix = 5,\n\n\n kDistortionParam_LinearTerm = 6,\n\n kDistortionParam_SquaredTerm = 7,\n\n kDistortionParam_CubicTerm = 8,\n\n kDistortionParam_PolynomialMix = 9,\n\n\n kDistortionParam_RingModFreq1 = 10,\n\n kDistortionParam_RingModFreq2 = 11,\n\n kDistortionParam_RingModBalance = 12,\n\n kDistortionParam_RingModMix = 13,\n\n\n kDistortionParam_SoftClipGain = 14,\n\n\n kDistortionParam_FinalMix = 15\n};\n\n\nenum {\n\n kDelayParam_WetDryMix = 0,\n\n\n kDelayParam_DelayTime = 1,\n\n\n kDelayParam_Feedback = 2,\n\n\n kDelayParam_LopassCutoff = 3\n};\nenum {\n\n kAUNBandEQParam_GlobalGain = 0,\n\n\n kAUNBandEQParam_BypassBand = 1000,\n\n\n kAUNBandEQParam_FilterType = 2000,\n\n\n kAUNBandEQParam_Frequency = 3000,\n\n\n kAUNBandEQParam_Gain = 4000,\n\n\n kAUNBandEQParam_Bandwidth = 5000\n};\nenum {\n kAUNBandEQFilterType_Parametric = 0,\n kAUNBandEQFilterType_2ndOrderButterworthLowPass = 1,\n kAUNBandEQFilterType_2ndOrderButterworthHighPass = 2,\n kAUNBandEQFilterType_ResonantLowPass = 3,\n kAUNBandEQFilterType_ResonantHighPass = 4,\n kAUNBandEQFilterType_BandPass = 5,\n kAUNBandEQFilterType_BandStop = 6,\n kAUNBandEQFilterType_LowShelf = 7,\n kAUNBandEQFilterType_HighShelf = 8,\n kAUNBandEQFilterType_ResonantLowShelf = 9,\n kAUNBandEQFilterType_ResonantHighShelf = 10,\n\n kNumAUNBandEQFilterTypes = 11\n};\n\n\n\nenum {\n\n kRoundTripAACParam_Format = 0,\n\n\n kRoundTripAACParam_EncodingStrategy = 1,\n\n\n kRoundTripAACParam_RateOrQuality = 2,\n\n\n kRoundTripAACParam_BitRate = 1,\n kRoundTripAACParam_Quality = 2,\n kRoundTripAACParam_CompressedFormatSampleRate = 3\n};\n\n\n\n\n\nenum {\n\n kGraphicEQParam_NumberOfBands = 10000\n};\n\n\nenum {\n\n kReverbParam_DryWetMix = 0,\n\n\n kReverbParam_SmallLargeMix = 1,\n\n\n kReverbParam_SmallSize = 2,\n\n\n kReverbParam_LargeSize = 3,\n\n\n kReverbParam_PreDelay = 4,\n\n\n kReverbParam_LargeDelay = 5,\n\n\n kReverbParam_SmallDensity = 6,\n\n\n kReverbParam_LargeDensity = 7,\n\n\n kReverbParam_LargeDelayRange = 8,\n\n\n kReverbParam_SmallBrightness = 9,\n\n\n kReverbParam_LargeBrightness = 10,\n\n\n kReverbParam_SmallDelayRange = 11,\n\n\n kReverbParam_ModulationRate = 12,\n\n\n kReverbParam_ModulationDepth = 13,\n};\n\n\nenum {\n\n kMultibandCompressorParam_Pregain = 0,\n\n kMultibandCompressorParam_Postgain = 1,\n\n kMultibandCompressorParam_Crossover1 = 2,\n\n kMultibandCompressorParam_Crossover2 = 3,\n\n kMultibandCompressorParam_Crossover3 = 4,\n\n kMultibandCompressorParam_Threshold1 = 5,\n\n kMultibandCompressorParam_Threshold2 = 6,\n\n kMultibandCompressorParam_Threshold3 = 7,\n\n kMultibandCompressorParam_Threshold4 = 8,\n\n kMultibandCompressorParam_Headroom1 = 9,\n\n kMultibandCompressorParam_Headroom2 = 10,\n\n kMultibandCompressorParam_Headroom3 = 11,\n\n kMultibandCompressorParam_Headroom4 = 12,\n\n kMultibandCompressorParam_AttackTime = 13,\n\n kMultibandCompressorParam_ReleaseTime = 14,\n\n kMultibandCompressorParam_EQ1 = 15,\n\n kMultibandCompressorParam_EQ2 = 16,\n\n kMultibandCompressorParam_EQ3 = 17,\n\n kMultibandCompressorParam_EQ4 = 18,\n\n\n\n kMultibandCompressorParam_CompressionAmount1 = 1000,\n\n kMultibandCompressorParam_CompressionAmount2 = 2000,\n\n kMultibandCompressorParam_CompressionAmount3 = 3000,\n\n kMultibandCompressorParam_CompressionAmount4 = 4000,\n\n\n kMultibandCompressorParam_InputAmplitude1 = 5000,\n\n kMultibandCompressorParam_InputAmplitude2 = 6000,\n\n kMultibandCompressorParam_InputAmplitude3 = 7000,\n\n kMultibandCompressorParam_InputAmplitude4 = 8000,\n\n\n kMultibandCompressorParam_OutputAmplitude1 = 9000,\n\n kMultibandCompressorParam_OutputAmplitude2 = 10000,\n\n kMultibandCompressorParam_OutputAmplitude3 = 11000,\n\n kMultibandCompressorParam_OutputAmplitude4 = 12000\n};\n\n\nenum\n{\n\n kMultibandFilter_LowFilterType = 0,\n\n kMultibandFilter_LowFrequency = 1,\n\n kMultibandFilter_LowGain = 2,\n\n\n kMultibandFilter_CenterFreq1 = 3,\n\n kMultibandFilter_CenterGain1 = 4,\n\n kMultibandFilter_Bandwidth1 = 5,\n\n\n kMultibandFilter_CenterFreq2 = 6,\n\n kMultibandFilter_CenterGain2 = 7,\n\n kMultibandFilter_Bandwidth2 = 8,\n\n\n kMultibandFilter_CenterFreq3 = 9,\n\n kMultibandFilter_CenterGain3 = 10,\n\n kMultibandFilter_Bandwidth3 = 11,\n\n\n kMultibandFilter_HighFilterType = 12,\n\n kMultibandFilter_HighFrequency = 13,\n\n kMultibandFilter_HighGain = 14\n};\n\n\nenum {\n\n kRogerBeepParam_InGateThreshold = 0,\n\n kRogerBeepParam_InGateThresholdTime = 1,\n\n kRogerBeepParam_OutGateThreshold = 2,\n\n kRogerBeepParam_OutGateThresholdTime = 3,\n\n kRogerBeepParam_Sensitivity = 4,\n\n kRogerBeepParam_RogerType = 5,\n\n kRogerBeepParam_RogerGain = 6\n};\n\n\n\n\nenum {\n\n kStereoMixerParam_Volume = 0,\n\n\n kStereoMixerParam_Pan = 1,\n\n\n\n\n\n\n\n kStereoMixerParam_PreAveragePower = 1000,\n kStereoMixerParam_PrePeakHoldLevel = 2000,\n kStereoMixerParam_PostAveragePower = 3000,\n kStereoMixerParam_PostPeakHoldLevel = 4000\n};\n\n\nenum {\n\n kAUNetReceiveParam_Status = 0,\n kAUNetReceiveParam_NumParameters = 1\n};\n\n\nenum {\n\n kAUNetSendParam_Status = 0,\n kAUNetSendParam_NumParameters = 1\n};\n\n\n\nenum {\n kAUNetStatus_NotConnected = 0,\n kAUNetStatus_Connected = 1,\n kAUNetStatus_Overflow = 2,\n kAUNetStatus_Underflow = 3,\n kAUNetStatus_Connecting = 4,\n kAUNetStatus_Listening = 5\n};\n\n\n\nenum {\n\n kMusicDeviceParam_Tuning = 0,\n\n\n kMusicDeviceParam_Volume = 1,\n\n\n kMusicDeviceParam_ReverbVolume = 2\n};\nenum {\n kRandomParam_BoundA = 0,\n kRandomParam_BoundB = 1,\n kRandomParam_Curve = 2\n};\n\n\n\n\n\n\nenum {\n\n kReverb2Param_DryWetMix = 0,\n\n kReverb2Param_Gain = 1,\n\n\n kReverb2Param_MinDelayTime = 2,\n\n kReverb2Param_MaxDelayTime = 3,\n\n kReverb2Param_DecayTimeAt0Hz = 4,\n\n kReverb2Param_DecayTimeAtNyquist = 5,\n\n kReverb2Param_RandomizeReflections = 6,\n};\n\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/AudioUnitProperties.h",
    "content": "#ifndef AUDIOUNITPROPERTIES_H\n#define AUDIOUNITPROPERTIES_H\n#include <CoreAudio/CoreAudioTypes.h>\n#include <AudioToolbox/AUComponent.h>\n#include <CoreFoundation/CoreFoundation.h>\n\nenum {\n kAudioUnitScope_Global = 0,\n kAudioUnitScope_Input = 1,\n kAudioUnitScope_Output = 2,\n kAudioUnitScope_Group = 3,\n kAudioUnitScope_Part = 4,\n kAudioUnitScope_Note = 5,\n kAudioUnitScope_Layer = 6,\n kAudioUnitScope_LayerItem = 7\n};\n\nenum\n{\n\n kAudioUnitProperty_ClassInfo = 0,\n kAudioUnitProperty_MakeConnection = 1,\n kAudioUnitProperty_SampleRate = 2,\n kAudioUnitProperty_ParameterList = 3,\n kAudioUnitProperty_ParameterInfo = 4,\n kAudioUnitProperty_CPULoad = 6,\n kAudioUnitProperty_StreamFormat = 8,\n kAudioUnitProperty_ElementCount = 11,\n kAudioUnitProperty_Latency = 12,\n kAudioUnitProperty_SupportedNumChannels = 13,\n kAudioUnitProperty_MaximumFramesPerSlice = 14,\n kAudioUnitProperty_ParameterValueStrings = 16,\n kAudioUnitProperty_AudioChannelLayout = 19,\n kAudioUnitProperty_TailTime = 20,\n kAudioUnitProperty_BypassEffect = 21,\n kAudioUnitProperty_LastRenderError = 22,\n kAudioUnitProperty_SetRenderCallback = 23,\n kAudioUnitProperty_FactoryPresets = 24,\n kAudioUnitProperty_RenderQuality = 26,\n kAudioUnitProperty_HostCallbacks = 27,\n kAudioUnitProperty_InPlaceProcessing = 29,\n kAudioUnitProperty_ElementName = 30,\n kAudioUnitProperty_SupportedChannelLayoutTags = 32,\n kAudioUnitProperty_PresentPreset = 36,\n kAudioUnitProperty_DependentParameters = 45,\n kAudioUnitProperty_InputSamplesInOutput = 49,\n kAudioUnitProperty_ShouldAllocateBuffer = 51,\n kAudioUnitProperty_FrequencyResponse = 52,\n kAudioUnitProperty_ParameterHistoryInfo = 53,\n kAudioUnitProperty_NickName = 54,\n kAudioUnitProperty_OfflineRender = 37,\n kAudioUnitProperty_ParameterIDName = 34,\n kAudioUnitProperty_ParameterStringFromValue = 33,\n kAudioUnitProperty_ParameterClumpName = 35,\n kAudioUnitProperty_ParameterValueFromString = 38,\n kAudioUnitProperty_ContextName = 25,\n kAudioUnitProperty_PresentationLatency = 40,\n kAudioUnitProperty_ClassInfoFromDocument = 50,\n kAudioUnitProperty_RequestViewController = 56,\n kAudioUnitProperty_ParametersForOverview = 57,\n kAudioUnitProperty_SupportsMPE = 58,\n\n kAudioUnitProperty_FastDispatch = 5,\n kAudioUnitProperty_SetExternalBuffer = 15,\n kAudioUnitProperty_GetUIComponentList = 18,\n kAudioUnitProperty_CocoaUI = 31,\n kAudioUnitProperty_IconLocation = 39,\n kAudioUnitProperty_AUHostIdentifier = 46,\n\n kAudioUnitProperty_MIDIOutputCallbackInfo = 47,\n kAudioUnitProperty_MIDIOutputCallback = 48,\n};\ntypedef struct AudioUnitConnection {\n AudioUnit _Nullable sourceAudioUnit;\n UInt32 sourceOutputNumber;\n UInt32 destInputNumber;\n} AudioUnitConnection;\n\ntypedef struct AUChannelInfo {\n SInt16 inChannels;\n SInt16 outChannels;\n} AUChannelInfo;\n\n\ntypedef struct AudioUnitExternalBuffer {\n Byte * buffer;\n UInt32 size;\n} AudioUnitExternalBuffer;\n\ntypedef struct AURenderCallbackStruct {\n AURenderCallback _Nullable inputProc;\n void * _Nullable inputProcRefCon;\n} AURenderCallbackStruct;\ntypedef struct AUPreset {\n SInt32 presetNumber;\n CFStringRef _Nullable presetName;\n} AUPreset;\n\n\nenum {\n kRenderQuality_Max = 127,\n kRenderQuality_High = 96,\n kRenderQuality_Medium = 64,\n kRenderQuality_Low = 32,\n kRenderQuality_Min = 0\n};\nenum {\n kNumberOfResponseFrequencies = 1024\n};\ntypedef struct AudioUnitFrequencyResponseBin\n{\n Float64 mFrequency;\n Float64 mMagnitude;\n} AudioUnitFrequencyResponseBin;\ntypedef OSStatus (*HostCallback_GetBeatAndTempo)(void * _Nullable inHostUserData,\n           Float64 * _Nullable outCurrentBeat,\n           Float64 * _Nullable outCurrentTempo);\ntypedef OSStatus (*HostCallback_GetMusicalTimeLocation)(void * _Nullable inHostUserData,\n            UInt32 * _Nullable outDeltaSampleOffsetToNextBeat,\n            Float32 * _Nullable outTimeSig_Numerator,\n            UInt32 * _Nullable outTimeSig_Denominator,\n            Float64 * _Nullable outCurrentMeasureDownBeat);\ntypedef OSStatus (*HostCallback_GetTransportState)(void * _Nullable inHostUserData,\n          Boolean * _Nullable outIsPlaying,\n          Boolean * _Nullable outTransportStateChanged,\n          Float64 * _Nullable outCurrentSampleInTimeLine,\n          Boolean * _Nullable outIsCycling,\n          Float64 * _Nullable outCycleStartBeat,\n          Float64 * _Nullable outCycleEndBeat);\ntypedef OSStatus (*HostCallback_GetTransportState2)(void * _Nullable inHostUserData,\n          Boolean * _Nullable outIsPlaying,\n          Boolean * _Nullable outIsRecording,\n          Boolean * _Nullable outTransportStateChanged,\n          Float64 * _Nullable outCurrentSampleInTimeLine,\n          Boolean * _Nullable outIsCycling,\n          Float64 * _Nullable outCycleStartBeat,\n          Float64 * _Nullable outCycleEndBeat);\n\n\ntypedef struct HostCallbackInfo {\n void * _Nullable hostUserData;\n HostCallback_GetBeatAndTempo _Nullable beatAndTempoProc;\n    HostCallback_GetMusicalTimeLocation _Nullable musicalTimeLocationProc;\n HostCallback_GetTransportState _Nullable transportStateProc;\n HostCallback_GetTransportState2 _Nullable transportStateProc2;\n} HostCallbackInfo;\n\n\n\n\n\n\ntypedef struct AUDependentParameter {\n AudioUnitScope mScope;\n AudioUnitParameterID mParameterID;\n} AUDependentParameter;\ntypedef struct AudioUnitCocoaViewInfo {\n CFURLRef mCocoaAUViewBundleLocation;\n CFStringRef _Nonnull mCocoaAUViewClass[1];\n} AudioUnitCocoaViewInfo;\n\n\n\n\n\ntypedef struct AUHostVersionIdentifier {\n CFStringRef hostName;\n UInt32 hostVersion;\n} AUHostVersionIdentifier;\n\n\n\n\n\nstruct MIDIPacketList;\n\n\n\n\n\ntypedef OSStatus\n(*AUMIDIOutputCallback)(void * _Nullable userData,\n      const AudioTimeStamp * timeStamp,\n      UInt32 midiOutNum,\n      const struct MIDIPacketList * pktlist);\n\n\n\n\n\n\ntypedef struct AUMIDIOutputCallbackStruct {\n AUMIDIOutputCallback midiOutputCallback;\n void * _Nullable userData;\n} AUMIDIOutputCallbackStruct;\n\n\n\n\n\n\ntypedef struct AUInputSamplesInOutputCallbackStruct {\n AUInputSamplesInOutputCallback inputToOutputCallback;\n void * _Nullable userData;\n} AUInputSamplesInOutputCallbackStruct;\ntypedef struct AudioUnitParameterHistoryInfo\n{\n Float32 updatesPerSecond;\n Float32 historyDurationInSeconds;\n} AudioUnitParameterHistoryInfo;\ntypedef UInt32 AudioUnitParameterUnit; enum\n{\n kAudioUnitParameterUnit_Generic = 0,\n kAudioUnitParameterUnit_Indexed = 1,\n kAudioUnitParameterUnit_Boolean = 2,\n kAudioUnitParameterUnit_Percent = 3,\n kAudioUnitParameterUnit_Seconds = 4,\n kAudioUnitParameterUnit_SampleFrames = 5,\n kAudioUnitParameterUnit_Phase = 6,\n kAudioUnitParameterUnit_Rate = 7,\n kAudioUnitParameterUnit_Hertz = 8,\n kAudioUnitParameterUnit_Cents = 9,\n kAudioUnitParameterUnit_RelativeSemiTones = 10,\n kAudioUnitParameterUnit_MIDINoteNumber = 11,\n kAudioUnitParameterUnit_MIDIController = 12,\n kAudioUnitParameterUnit_Decibels = 13,\n kAudioUnitParameterUnit_LinearGain = 14,\n kAudioUnitParameterUnit_Degrees = 15,\n kAudioUnitParameterUnit_EqualPowerCrossfade = 16,\n kAudioUnitParameterUnit_MixerFaderCurve1 = 17,\n kAudioUnitParameterUnit_Pan = 18,\n kAudioUnitParameterUnit_Meters = 19,\n kAudioUnitParameterUnit_AbsoluteCents = 20,\n kAudioUnitParameterUnit_Octaves = 21,\n kAudioUnitParameterUnit_BPM = 22,\n    kAudioUnitParameterUnit_Beats = 23,\n kAudioUnitParameterUnit_Milliseconds = 24,\n kAudioUnitParameterUnit_Ratio = 25,\n kAudioUnitParameterUnit_CustomUnit = 26\n};\ntypedef UInt32 AudioUnitParameterOptions; enum\n{\n kAudioUnitParameterFlag_CFNameRelease = (1UL << 4),\n\n kAudioUnitParameterFlag_OmitFromPresets = (1UL << 13),\n kAudioUnitParameterFlag_PlotHistory = (1UL << 14),\n kAudioUnitParameterFlag_MeterReadOnly = (1UL << 15),\n\n\n kAudioUnitParameterFlag_DisplayMask = (7UL << 16) | (1UL << 22),\n kAudioUnitParameterFlag_DisplaySquareRoot = (1UL << 16),\n kAudioUnitParameterFlag_DisplaySquared = (2UL << 16),\n kAudioUnitParameterFlag_DisplayCubed = (3UL << 16),\n kAudioUnitParameterFlag_DisplayCubeRoot = (4UL << 16),\n kAudioUnitParameterFlag_DisplayExponential = (5UL << 16),\n\n kAudioUnitParameterFlag_HasClump = (1UL << 20),\n kAudioUnitParameterFlag_ValuesHaveStrings = (1UL << 21),\n\n kAudioUnitParameterFlag_DisplayLogarithmic = (1UL << 22),\n\n kAudioUnitParameterFlag_IsHighResolution = (1UL << 23),\n kAudioUnitParameterFlag_NonRealTime = (1UL << 24),\n kAudioUnitParameterFlag_CanRamp = (1UL << 25),\n kAudioUnitParameterFlag_ExpertMode = (1UL << 26),\n kAudioUnitParameterFlag_HasCFNameString = (1UL << 27),\n kAudioUnitParameterFlag_IsGlobalMeta = (1UL << 28),\n kAudioUnitParameterFlag_IsElementMeta = (1UL << 29),\n kAudioUnitParameterFlag_IsReadable = (1UL << 30),\n kAudioUnitParameterFlag_IsWritable = (1UL << 31)\n};\ntypedef struct AudioUnitParameterInfo\n{\n char name[52];\n CFStringRef _Nullable unitName;\n UInt32 clumpID;\n CFStringRef _Nullable cfNameString;\n AudioUnitParameterUnit unit;\n AudioUnitParameterValue minValue;\n AudioUnitParameterValue maxValue;\n AudioUnitParameterValue defaultValue;\n AudioUnitParameterOptions flags;\n} AudioUnitParameterInfo;\n\n\n\n\n\nenum {\n kAudioUnitClumpID_System = 0\n};\n\n\n\nstatic __inline__ __attribute__((always_inline)) AudioUnitParameterOptions GetAudioUnitParameterDisplayType(AudioUnitParameterOptions flags)\n{\n return flags & kAudioUnitParameterFlag_DisplayMask;\n}\n\nstatic __inline__ __attribute__((always_inline)) AudioUnitParameterOptions SetAudioUnitParameterDisplayType(AudioUnitParameterOptions flags, AudioUnitParameterOptions displayType)\n{\n return (flags & ~kAudioUnitParameterFlag_DisplayMask) | displayType;\n}\nenum {\n kAudioUnitParameterName_Full = -1\n};\n\n\n\n\n\ntypedef struct AudioUnitParameterNameInfo {\n AudioUnitParameterID inID;\n SInt32 inDesiredLength;\n CFStringRef _Nullable outName;\n} AudioUnitParameterIDName;\n\n\n\n\n\ntypedef struct AudioUnitParameterStringFromValue {\n AudioUnitParameterID inParamID;\n const AudioUnitParameterValue * inValue;\n CFStringRef _Nullable outString;\n} AudioUnitParameterStringFromValue;\n\n\n\n\n\ntypedef struct AudioUnitParameterValueFromString {\n AudioUnitParameterID inParamID;\n CFStringRef inString;\n AudioUnitParameterValue outValue;\n} AudioUnitParameterValueFromString;\nenum {\n\n kAudioOutputUnitProperty_IsRunning = 2001\n};\nenum {\n kAudioUnitProperty_AllParameterMIDIMappings = 41,\n kAudioUnitProperty_AddParameterMIDIMapping = 42,\n kAudioUnitProperty_RemoveParameterMIDIMapping = 43,\n kAudioUnitProperty_HotMapParameterMIDIMapping = 44\n};\ntypedef UInt32 AUParameterMIDIMappingFlags; enum {\n kAUParameterMIDIMapping_AnyChannelFlag = (1L << 0),\n kAUParameterMIDIMapping_AnyNoteFlag = (1L << 1),\n kAUParameterMIDIMapping_SubRange = (1L << 2),\n kAUParameterMIDIMapping_Toggle = (1L << 3),\n kAUParameterMIDIMapping_Bipolar = (1L << 4),\n kAUParameterMIDIMapping_Bipolar_On = (1L << 5)\n};\ntypedef struct AUParameterMIDIMapping\n{\n AudioUnitScope mScope;\n AudioUnitElement mElement;\n AudioUnitParameterID mParameterID;\n AUParameterMIDIMappingFlags mFlags;\n AudioUnitParameterValue mSubRangeMin;\n AudioUnitParameterValue mSubRangeMax;\n UInt8 mStatus;\n UInt8 mData1;\n UInt8 reserved1;\n UInt8 reserved2;\n UInt32 reserved3;\n} AUParameterMIDIMapping;\nenum {\n\n kMusicDeviceProperty_MIDIXMLNames = 1006,\n kMusicDeviceProperty_PartGroup = 1010,\n kMusicDeviceProperty_DualSchedulingMode = 1013,\n kMusicDeviceProperty_SupportsStartStopNote = 1014\n};\n\n\n\n\nenum {\n kMusicDeviceSampleFrameMask_SampleOffset = 0xFFFFFF,\n kMusicDeviceSampleFrameMask_IsScheduled = 0x01000000\n};\nenum {\n\n kAudioUnitOfflineProperty_InputSize = 3020,\n kAudioUnitOfflineProperty_OutputSize = 3021,\n kAudioUnitOfflineProperty_StartOffset = 3022,\n kAudioUnitOfflineProperty_PreflightRequirements = 3023,\n kAudioUnitOfflineProperty_PreflightName = 3024\n};\nenum {\n kOfflinePreflight_NotRequired = 0,\n kOfflinePreflight_Optional = 1,\n kOfflinePreflight_Required = 2\n};\nenum {\n\n kAudioUnitProperty_DistanceAttenuationData = 3600\n} __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)));\n\n\n\n\ntypedef struct AUDistanceAttenuationData\n{\n UInt32 inNumberOfPairs;\n struct {\n  Float32 inDistance;\n  Float32 outGain;\n } pairs[1];\n} AUDistanceAttenuationData __attribute__((availability(macosx,introduced=10.5,deprecated=10.11)));\nenum {\n\n  kAudioUnitMigrateProperty_FromPlugin = 4000,\n kAudioUnitMigrateProperty_OldAutomation = 4001\n};\n\n\n\n\nenum {\n kOtherPluginFormat_Undefined = 0,\n kOtherPluginFormat_kMAS = 1,\n kOtherPluginFormat_kVST = 2,\n kOtherPluginFormat_AU = 3\n};\ntypedef struct AudioUnitOtherPluginDesc\n{\n UInt32 format;\n AudioClassDescription plugin;\n} AudioUnitOtherPluginDesc;\n\n\n\n\n\n\ntypedef struct AudioUnitParameterValueTranslation\n{\n AudioUnitOtherPluginDesc otherDesc;\n UInt32 otherParamID;\n Float32 otherValue;\n AudioUnitParameterID auParamID;\n AudioUnitParameterValue auValue;\n} AudioUnitParameterValueTranslation;\n\n\n\n\n\n\ntypedef struct AudioUnitPresetMAS_SettingData\n{\n UInt32 isStockSetting;\n UInt32 settingID;\n UInt32 dataLen;\n UInt8 data[1];\n} AudioUnitPresetMAS_SettingData;\n\n\n\n\n\ntypedef struct AudioUnitPresetMAS_Settings\n{\n UInt32 manufacturerID;\n UInt32 effectID;\n UInt32 variantID;\n UInt32 settingsVersion;\n UInt32 numberOfSettings;\n AudioUnitPresetMAS_SettingData settings[1];\n} AudioUnitPresetMAS_Settings;\nenum {\n kAudioUnitProperty_SampleRateConverterComplexity = 3014\n};\nenum {\n kAudioUnitSampleRateConverterComplexity_Linear = 'line',\n kAudioUnitSampleRateConverterComplexity_Normal = 'norm',\n kAudioUnitSampleRateConverterComplexity_Mastering = 'bats'\n};\nenum {\n kAudioOutputUnitProperty_CurrentDevice = 2000,\n kAudioOutputUnitProperty_ChannelMap = 2002,\n kAudioOutputUnitProperty_EnableIO = 2003,\n kAudioOutputUnitProperty_StartTime = 2004,\n kAudioOutputUnitProperty_SetInputCallback = 2005,\n kAudioOutputUnitProperty_HasIO = 2006,\n kAudioOutputUnitProperty_StartTimestampsAtZero = 2007\n};\n\n\n\n\n\ntypedef struct AudioOutputUnitStartAtTimeParams {\n\n AudioTimeStamp mTimestamp;\n UInt32 mFlags;\n} AudioOutputUnitStartAtTimeParams;\nenum {\n kAUVoiceIOProperty_BypassVoiceProcessing = 2100,\n kAUVoiceIOProperty_VoiceProcessingEnableAGC = 2101,\n kAUVoiceIOProperty_MuteOutput = 2104\n\n};\nenum {\n kAUVoiceIOProperty_VoiceProcessingQuality = 2103\n} __attribute__((availability(macosx,introduced=10.7,deprecated=10.9)));\nenum {\n kAUNBandEQProperty_NumberOfBands = 2200,\n kAUNBandEQProperty_MaxNumberOfBands = 2201,\n kAUNBandEQProperty_BiquadCoefficients = 2203\n};\nenum {\n    kAUVoiceIOErr_UnexpectedNumberOfInputChannels = -66784,\n};\nenum {\n\n kAudioUnitProperty_MeteringMode = 3007,\n\n\n kAudioUnitProperty_MatrixLevels = 3006,\n kAudioUnitProperty_MatrixDimensions = 3009,\n kAudioUnitProperty_MeterClipping = 3011,\n\n\n kAudioUnitProperty_InputAnchorTimeStamp = 3016\n};\ntypedef struct AudioUnitMeterClipping\n{\n Float32 peakValueSinceLastCall;\n Boolean sawInfinity;\n Boolean sawNotANumber;\n} AudioUnitMeterClipping;\nenum {\n kAudioUnitProperty_ReverbRoomType = 10,\n kAudioUnitProperty_UsesInternalReverb = 1005,\n kAudioUnitProperty_SpatializationAlgorithm = 3000,\n kAudioUnitProperty_SpatialMixerDistanceParams = 3010,\n kAudioUnitProperty_SpatialMixerAttenuationCurve = 3013,\n kAudioUnitProperty_SpatialMixerRenderingFlags = 3003,\n};\n\n\n\n\ntypedef UInt32 AUSpatializationAlgorithm; enum {\n kSpatializationAlgorithm_EqualPowerPanning = 0,\n kSpatializationAlgorithm_SphericalHead = 1,\n kSpatializationAlgorithm_HRTF = 2,\n kSpatializationAlgorithm_SoundField = 3,\n kSpatializationAlgorithm_VectorBasedPanning = 4,\n kSpatializationAlgorithm_StereoPassThrough = 5,\n    kSpatializationAlgorithm_HRTFHQ = 6\n};\n\n\n\n\n\n\ntypedef UInt32 AUReverbRoomType; enum {\n kReverbRoomType_SmallRoom = 0,\n kReverbRoomType_MediumRoom = 1,\n kReverbRoomType_LargeRoom = 2,\n kReverbRoomType_MediumHall = 3,\n kReverbRoomType_LargeHall = 4,\n kReverbRoomType_Plate = 5,\n kReverbRoomType_MediumChamber = 6,\n kReverbRoomType_LargeChamber = 7,\n kReverbRoomType_Cathedral = 8,\n kReverbRoomType_LargeRoom2 = 9,\n kReverbRoomType_MediumHall2 = 10,\n kReverbRoomType_MediumHall3 = 11,\n kReverbRoomType_LargeHall2 = 12\n};\n\n\n\n\ntypedef UInt32 AUSpatialMixerAttenuationCurve; enum {\n kSpatialMixerAttenuationCurve_Power = 0,\n    kSpatialMixerAttenuationCurve_Exponential = 1,\n    kSpatialMixerAttenuationCurve_Inverse = 2,\n    kSpatialMixerAttenuationCurve_Linear = 3\n};\n\n\n\n\ntypedef struct MixerDistanceParams {\n Float32 mReferenceDistance;\n Float32 mMaxDistance;\n Float32 mMaxAttenuation;\n} MixerDistanceParams;\n\n\n\n\ntypedef UInt32 AUSpatialMixerRenderingFlags; enum {\n kSpatialMixerRenderingFlags_InterAuralDelay = (1L << 0),\n kSpatialMixerRenderingFlags_DistanceAttenuation = (1L << 2),\n};\nenum {\n kAudioUnitProperty_3DMixerDistanceParams = 3010,\n kAudioUnitProperty_3DMixerAttenuationCurve = 3013,\n kAudioUnitProperty_DopplerShift = 3002,\n kAudioUnitProperty_3DMixerRenderingFlags = 3003,\n kAudioUnitProperty_3DMixerDistanceAtten = 3004,\n kAudioUnitProperty_ReverbPreset = 3012\n} __attribute__((availability(macosx,introduced=10.7,deprecated=10.11)));\n\n\n\n\ntypedef UInt32 AU3DMixerRenderingFlags; enum {\n k3DMixerRenderingFlags_InterAuralDelay = (1L << 0),\n k3DMixerRenderingFlags_DopplerShift = (1L << 1),\n k3DMixerRenderingFlags_DistanceAttenuation = (1L << 2),\n k3DMixerRenderingFlags_DistanceFilter = (1L << 3),\n k3DMixerRenderingFlags_DistanceDiffusion = (1L << 4),\n k3DMixerRenderingFlags_LinearDistanceAttenuation = (1L << 5),\n k3DMixerRenderingFlags_ConstantReverbBlend = (1L << 6)\n};\n\n\n\n\ntypedef UInt32 AU3DMixerAttenuationCurve; enum {\n k3DMixerAttenuationCurve_Power = 0,\n    k3DMixerAttenuationCurve_Exponential = 1,\n    k3DMixerAttenuationCurve_Inverse = 2,\n    k3DMixerAttenuationCurve_Linear = 3\n};\nenum {\n kAudioUnitProperty_ScheduleAudioSlice = 3300,\n kAudioUnitProperty_ScheduleStartTimeStamp = 3301,\n kAudioUnitProperty_CurrentPlayTime = 3302\n};\ntypedef UInt32 AUScheduledAudioSliceFlags; enum {\n    kScheduledAudioSliceFlag_Complete = 0x01,\n    kScheduledAudioSliceFlag_BeganToRender = 0x02,\n    kScheduledAudioSliceFlag_BeganToRenderLate = 0x04,\n\n    kScheduledAudioSliceFlag_Loop = 0x08,\n    kScheduledAudioSliceFlag_Interrupt = 0x10,\n    kScheduledAudioSliceFlag_InterruptAtLoop = 0x20\n};\n\ntypedef struct ScheduledAudioSlice ScheduledAudioSlice;\n\n\n\ntypedef void (*ScheduledAudioSliceCompletionProc)(void * _Nullable userData, ScheduledAudioSlice *bufferList);\nstruct ScheduledAudioSlice {\n AudioTimeStamp mTimeStamp;\n ScheduledAudioSliceCompletionProc _Nullable mCompletionProc;\n void * mCompletionProcUserData;\n AUScheduledAudioSliceFlags mFlags;\n UInt32 mReserved;\n void * _Nullable mReserved2;\n UInt32 mNumberFrames;\n AudioBufferList * mBufferList;\n};\nenum {\n kAudioUnitProperty_ScheduledFileIDs = 3310,\n kAudioUnitProperty_ScheduledFileRegion = 3311,\n kAudioUnitProperty_ScheduledFilePrime = 3312,\n kAudioUnitProperty_ScheduledFileBufferSizeFrames = 3313,\n kAudioUnitProperty_ScheduledFileNumberBuffers = 3314\n};\n\ntypedef struct ScheduledAudioFileRegion ScheduledAudioFileRegion;\n\n\n\ntypedef void (*ScheduledAudioFileRegionCompletionProc)(void * _Nullable userData,\n    ScheduledAudioFileRegion *fileRegion, OSStatus result);\nstruct ScheduledAudioFileRegion {\n AudioTimeStamp mTimeStamp;\n ScheduledAudioFileRegionCompletionProc _Nullable mCompletionProc;\n void * _Nullable mCompletionProcUserData;\n struct OpaqueAudioFileID * mAudioFile;\n UInt32 mLoopCount;\n SInt64 mStartFrame;\n UInt32 mFramesToPlay;\n};\nenum {\n kMusicDeviceProperty_UsesInternalReverb = kAudioUnitProperty_UsesInternalReverb,\n kMusicDeviceProperty_SoundBankData = 1008,\n kMusicDeviceProperty_StreamFromDisk = 1011,\n kMusicDeviceProperty_SoundBankFSRef = 1012\n};\nenum {\n kMusicDeviceProperty_InstrumentName = 1001,\n kMusicDeviceProperty_InstrumentNumber = 1004\n};\nenum {\n kMusicDeviceProperty_InstrumentCount = 1000,\n kMusicDeviceProperty_BankName = 1007,\n kMusicDeviceProperty_SoundBankURL = 1100\n};\nenum {\n kAUMIDISynthProperty_EnablePreload = 4119\n};\nenum {\n\n kAUSamplerProperty_LoadInstrument = 4102,\n kAUSamplerProperty_LoadAudioFiles = 4101\n};\ntypedef struct AUSamplerInstrumentData {\n CFURLRef fileURL;\n UInt8 instrumentType;\n UInt8 bankMSB;\n UInt8 bankLSB;\n UInt8 presetID;\n} AUSamplerInstrumentData;\nenum\n{\n kInstrumentType_DLSPreset = 1,\n kInstrumentType_SF2Preset = kInstrumentType_DLSPreset,\n kInstrumentType_AUPreset = 2,\n kInstrumentType_Audiofile = 3,\n kInstrumentType_EXS24 = 4\n};\n\nenum\n{\n kAUSampler_DefaultPercussionBankMSB = 0x78,\n kAUSampler_DefaultMelodicBankMSB = 0x79,\n kAUSampler_DefaultBankLSB = 0x00\n};\nenum {\n kAudioUnitProperty_DeferredRendererPullSize = 3320,\n kAudioUnitProperty_DeferredRendererExtraLatency = 3321,\n kAudioUnitProperty_DeferredRendererWaitFrames = 3322\n};\nenum {\n kAUNetReceiveProperty_Hostname = 3511,\n kAUNetReceiveProperty_Password = 3512\n};\nenum {\n kAUNetSendProperty_PortNum = 3513,\n kAUNetSendProperty_TransmissionFormat = 3514,\n kAUNetSendProperty_TransmissionFormatIndex = 3515,\n kAUNetSendProperty_ServiceName = 3516,\n kAUNetSendProperty_Disconnect = 3517,\n kAUNetSendProperty_Password = 3518\n};\nenum {\n kAUNetSendPresetFormat_PCMFloat32 = 0,\n kAUNetSendPresetFormat_PCMInt24 = 1,\n kAUNetSendPresetFormat_PCMInt16 = 2,\n kAUNetSendPresetFormat_Lossless24 = 3,\n kAUNetSendPresetFormat_Lossless16 = 4,\n kAUNetSendPresetFormat_ULaw = 5,\n kAUNetSendPresetFormat_IMA4 = 6,\n kAUNetSendPresetFormat_AAC_128kbpspc = 7,\n kAUNetSendPresetFormat_AAC_96kbpspc = 8,\n kAUNetSendPresetFormat_AAC_80kbpspc = 9,\n kAUNetSendPresetFormat_AAC_64kbpspc = 10,\n kAUNetSendPresetFormat_AAC_48kbpspc = 11,\n kAUNetSendPresetFormat_AAC_40kbpspc = 12,\n kAUNetSendPresetFormat_AAC_32kbpspc = 13,\n kAUNetSendPresetFormat_AAC_LD_64kbpspc = 14,\n kAUNetSendPresetFormat_AAC_LD_48kbpspc = 15,\n kAUNetSendPresetFormat_AAC_LD_40kbpspc = 16,\n kAUNetSendPresetFormat_AAC_LD_32kbpspc = 17,\n kAUNetSendNumPresetFormats = 18\n};\ntypedef struct AUNumVersion {\n\n  UInt8 nonRelRev;\n  UInt8 stage;\n  UInt8 minorAndBugRev;\n  UInt8 majorRev;\n} AUNumVersion;\n\n\n\n\n\n\ntypedef struct AUHostIdentifier {\n CFStringRef hostName;\n AUNumVersion hostVersion;\n} AUHostIdentifier;\n\n\n\nenum {\n kAudioUnitParameterFlag_Global = (1L << 0),\n kAudioUnitParameterFlag_Input = (1L << 1),\n kAudioUnitParameterFlag_Output = (1L << 2),\n kAudioUnitParameterFlag_Group = (1L << 3)\n};\n\nenum {\n kAudioUnitParameterFlag_HasName = kAudioUnitParameterFlag_ValuesHaveStrings\n};\n\nenum {\n\n kAudioUnitProperty_SRCAlgorithm = 9,\n kAudioUnitProperty_MIDIControlMapping = 17,\n kAudioUnitProperty_CurrentPreset = 28,\n\n kAudioUnitProperty_ParameterValueName = kAudioUnitProperty_ParameterStringFromValue,\n kAudioUnitProperty_BusCount = kAudioUnitProperty_ElementCount,\n\n kAudioOfflineUnitProperty_InputSize = kAudioUnitOfflineProperty_InputSize,\n kAudioOfflineUnitProperty_OutputSize = kAudioUnitOfflineProperty_OutputSize\n};\n\nenum {\n kAudioUnitSRCAlgorithm_Polyphase = 'poly',\n kAudioUnitSRCAlgorithm_MediumQuality = 'csrc'\n};\n\n\n\ntypedef struct AudioUnitMIDIControlMapping\n{\n UInt16 midiNRPN;\n UInt8 midiControl;\n UInt8 scope;\n AudioUnitElement element;\n AudioUnitParameterID parameter;\n} AudioUnitMIDIControlMapping;\n\n\ntypedef struct AudioUnitParameterValueName {\n AudioUnitParameterID inParamID;\n const Float32 * _Nonnull inValue;\n CFStringRef outName;\n} AudioUnitParameterValueName;\n\n\n\n\nenum {\n kMusicDeviceProperty_GroupOutputBus = 1002,\n kMusicDeviceProperty_SoundBankFSSpec = 1003,\n kAudioUnitProperty_PannerMode = 3008\n};\n\nenum {\n kAudioUnitProperty_SpeakerConfiguration = 3001\n};\n\n\n\nenum {\n kSpeakerConfiguration_HeadPhones = 0,\n kSpeakerConfiguration_Stereo = 1,\n kSpeakerConfiguration_Quad = 2,\n kSpeakerConfiguration_5_0 = 3,\n kSpeakerConfiguration_5_1 = kSpeakerConfiguration_5_0\n};\n\n\n\n\n\ntypedef struct AUSamplerBankPresetData {\n CFURLRef bankURL;\n UInt8 bankMSB;\n UInt8 bankLSB;\n UInt8 presetID;\n UInt8 reserved;\n} AUSamplerBankPresetData;\n\nenum {\n kAUSamplerProperty_LoadPresetFromBank = 4100,\n kAUSamplerProperty_BankAndPreset = kAUSamplerProperty_LoadPresetFromBank\n};\n\n#define kAUPresetVersionKey             \"version\"\n#define kAUPresetTypeKey                        \"type\"\n#define kAUPresetSubtypeKey             \"subtype\"\n#define kAUPresetManufacturerKey        \"manufacturer\"\n#define kAUPresetDataKey                        \"data\"\n#define kAUPresetNameKey                        \"name\"\n#define kAUPresetRenderQualityKey       \"render-quality\"\n#define kAUPresetCPULoadKey                     \"cpu-load\"\n#define kAUPresetElementNameKey         \"element-name\"\n#define kAUPresetExternalFileRefs       \"file-references\"\n#define kAUPresetPartKey                        \"part\"\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/ExtendedAudioFile.h",
    "content": "#ifndef _EXTENDED_AUDIO_FILE_H\n#define _EXTENDED_AUDIO_FILE_H\n\n#include <CoreFoundation/CoreFoundation.h>\n#include <AudioToolbox/AudioFile.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef struct OpaqueExtAudioFile * ExtAudioFileRef;\n\n\n\n\n\ntypedef UInt32 ExtAudioFilePropertyID;\nenum {\n kExtAudioFileProperty_FileDataFormat = 'ffmt',\n kExtAudioFileProperty_FileChannelLayout = 'fclo',\n kExtAudioFileProperty_ClientDataFormat = 'cfmt',\n kExtAudioFileProperty_ClientChannelLayout = 'cclo',\n kExtAudioFileProperty_CodecManufacturer = 'cman',\n\n\n kExtAudioFileProperty_AudioConverter = 'acnv',\n kExtAudioFileProperty_AudioFile = 'afil',\n kExtAudioFileProperty_FileMaxPacketSize = 'fmps',\n kExtAudioFileProperty_ClientMaxPacketSize = 'cmps',\n kExtAudioFileProperty_FileLengthFrames = '#frm',\n\n\n kExtAudioFileProperty_ConverterConfig = 'accf',\n kExtAudioFileProperty_IOBufferSizeBytes = 'iobs',\n kExtAudioFileProperty_IOBuffer = 'iobf',\n kExtAudioFileProperty_PacketTable = 'xpti'\n};\n\nenum {\n kExtAudioFileError_InvalidProperty = -66561,\n kExtAudioFileError_InvalidPropertySize = -66562,\n kExtAudioFileError_NonPCMClientFormat = -66563,\n kExtAudioFileError_InvalidChannelMap = -66564,\n kExtAudioFileError_InvalidOperationOrder = -66565,\n kExtAudioFileError_InvalidDataFormat = -66566,\n kExtAudioFileError_MaxPacketSizeUnknown = -66567,\n kExtAudioFileError_InvalidSeek = -66568,\n kExtAudioFileError_AsyncWriteTooLarge = -66569,\n kExtAudioFileError_AsyncWriteBufferOverflow = -66570\n};\nextern OSStatus\nExtAudioFileOpenURL( CFURLRef inURL,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile);\nextern OSStatus\nExtAudioFileWrapAudioFileID(AudioFileID inFileID,\n       Boolean inForWriting,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile);\nextern OSStatus\nExtAudioFileCreateWithURL( CFURLRef inURL,\n       AudioFileTypeID inFileType,\n       const AudioStreamBasicDescription * inStreamDesc,\n       const AudioChannelLayout * _Nullable inChannelLayout,\n                      UInt32 inFlags,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile);\nextern OSStatus\nExtAudioFileOpen( const struct FSRef * inFSRef,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile);\nextern OSStatus\nExtAudioFileCreateNew( const struct FSRef * inParentDir,\n       CFStringRef inFileName,\n       AudioFileTypeID inFileType,\n       const AudioStreamBasicDescription * inStreamDesc,\n       const AudioChannelLayout * _Nullable inChannelLayout,\n       ExtAudioFileRef _Nullable * _Nonnull outExtAudioFile);\nextern OSStatus\nExtAudioFileDispose( ExtAudioFileRef inExtAudioFile);\nextern OSStatus\nExtAudioFileRead( ExtAudioFileRef inExtAudioFile,\n       UInt32 * ioNumberFrames,\n       AudioBufferList * ioData);\nextern OSStatus\nExtAudioFileWrite( ExtAudioFileRef inExtAudioFile,\n       UInt32 inNumberFrames,\n       const AudioBufferList * ioData);\nextern OSStatus\nExtAudioFileWriteAsync( ExtAudioFileRef inExtAudioFile,\n       UInt32 inNumberFrames,\n       const AudioBufferList * _Nullable ioData);\nextern OSStatus\nExtAudioFileSeek( ExtAudioFileRef inExtAudioFile,\n       SInt64 inFrameOffset);\nextern OSStatus\nExtAudioFileTell( ExtAudioFileRef inExtAudioFile,\n       SInt64 * outFrameOffset);\nextern OSStatus\nExtAudioFileGetPropertyInfo(ExtAudioFileRef inExtAudioFile,\n       ExtAudioFilePropertyID inPropertyID,\n       UInt32 * _Nullable outSize,\n       Boolean * _Nullable outWritable);\nextern OSStatus\nExtAudioFileGetProperty( ExtAudioFileRef inExtAudioFile,\n       ExtAudioFilePropertyID inPropertyID,\n       UInt32 * ioPropertyDataSize,\n       void * outPropertyData);\nextern OSStatus\nExtAudioFileSetProperty( ExtAudioFileRef inExtAudioFile,\n       ExtAudioFilePropertyID inPropertyID,\n       UInt32 inPropertyDataSize,\n       const void * inPropertyData);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/AudioToolbox/MusicDevice.h",
    "content": "#ifndef _MUSIC_DEVICE_H\n#define _MUSIC_DEVICE_H\n\n#include <CoreAudio/CoreAudioTypes.h>\n#include <AudioToolbox/AUComponent.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef UInt32 MusicDeviceInstrumentID;\nstruct MusicDeviceStdNoteParams\n{\n UInt32 argCount;\n Float32 mPitch;\n Float32 mVelocity;\n};\ntypedef struct MusicDeviceStdNoteParams MusicDeviceStdNoteParams;\nstruct NoteParamsControlValue\n{\n AudioUnitParameterID mID;\n AudioUnitParameterValue mValue;\n};\ntypedef struct NoteParamsControlValue NoteParamsControlValue;\nstruct MusicDeviceNoteParams\n{\n UInt32 argCount;\n Float32 mPitch;\n Float32 mVelocity;\n NoteParamsControlValue mControls[1];\n};\ntypedef struct MusicDeviceNoteParams MusicDeviceNoteParams;\nenum {\n kMusicNoteEvent_UseGroupInstrument = 0xFFFFFFFF,\n kMusicNoteEvent_Unused = 0xFFFFFFFF\n};\n\n\n\n\n\n\ntypedef UInt32 MusicDeviceGroupID;\ntypedef UInt32 NoteInstanceID;\n\n\n\n\n\ntypedef AudioComponentInstance MusicDeviceComponent;\nextern OSStatus\nMusicDeviceMIDIEvent( MusicDeviceComponent inUnit,\n      UInt32 inStatus,\n      UInt32 inData1,\n      UInt32 inData2,\n      UInt32 inOffsetSampleFrame);\nextern OSStatus\nMusicDeviceSysEx( MusicDeviceComponent inUnit,\n      const UInt8 * inData,\n      UInt32 inLength);\nextern OSStatus\nMusicDeviceStartNote( MusicDeviceComponent inUnit,\n      MusicDeviceInstrumentID inInstrument,\n      MusicDeviceGroupID inGroupID,\n      NoteInstanceID * outNoteInstanceID,\n      UInt32 inOffsetSampleFrame,\n      const MusicDeviceNoteParams * inParams);\nextern OSStatus\nMusicDeviceStopNote( MusicDeviceComponent inUnit,\n      MusicDeviceGroupID inGroupID,\n      NoteInstanceID inNoteInstanceID,\n      UInt32 inOffsetSampleFrame);\nenum {\n  kMusicDeviceRange = 0x0100,\n  kMusicDeviceMIDIEventSelect = 0x0101,\n  kMusicDeviceSysExSelect = 0x0102,\n  kMusicDevicePrepareInstrumentSelect = 0x0103,\n  kMusicDeviceReleaseInstrumentSelect = 0x0104,\n  kMusicDeviceStartNoteSelect = 0x0105,\n  kMusicDeviceStopNoteSelect = 0x0106\n};\ntypedef OSStatus\n(*MusicDeviceMIDIEventProc)( void * self,\n        UInt32 inStatus,\n        UInt32 inData1,\n        UInt32 inData2,\n        UInt32 inOffsetSampleFrame);\ntypedef OSStatus\n(*MusicDeviceSysExProc)( void * self,\n       const UInt8 * inData,\n       UInt32 inLength);\ntypedef OSStatus\n(*MusicDeviceStartNoteProc)( void * self,\n      MusicDeviceInstrumentID inInstrument,\n      MusicDeviceGroupID inGroupID,\n      NoteInstanceID * outNoteInstanceID,\n      UInt32 inOffsetSampleFrame,\n      const MusicDeviceNoteParams * inParams);\ntypedef OSStatus\n(*MusicDeviceStopNoteProc)( void * self,\n      MusicDeviceGroupID inGroupID,\n      NoteInstanceID inNoteInstanceID,\n      UInt32 inOffsetSampleFrame);\nextern OSStatus\nMusicDevicePrepareInstrument( MusicDeviceComponent inUnit,\n        MusicDeviceInstrumentID inInstrument);\n\n\nextern OSStatus\nMusicDeviceReleaseInstrument( MusicDeviceComponent inUnit,\n        MusicDeviceInstrumentID inInstrument);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/include/CoreAudio/AudioHardware.h",
    "content": "#ifndef AUDIOHARDWARE_H\n#define AUDIOHARDWARE_H\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <CoreAudio/CoreAudioTypes.h>\n#include <CoreAudio/AudioHardwareBase.h>\n#include <CoreFoundation/CFDictionary.h>\n#include <dispatch/dispatch.h>\n\t\nenum\n{\n\tkAudioObjectUnknown = 0,\n\tkAudioObjectSystemObject = 1,\n};\n\ntypedef OSStatus (*AudioObjectPropertyListenerProc)(AudioObjectID inObjectID,\n\t\tUInt32 inNumberAddresses, const AudioObjectPropertyAddress* inAddresses,\n\t\tvoid* inClientData);\n\n#ifdef __BLOCKS__\ntypedef void (^AudioObjectPropertyListenerBlock)(UInt32 inNumberAddresses,\n\t\tconst AudioObjectPropertyAddress* inAddresses);\n#endif\n\ntypedef AudioObjectID AudioDeviceID;\n\nenum\n{\n\tkAudioDeviceUnknown = kAudioObjectUnknown,\n};\n\nenum\n{\n    kAudioObjectPropertyCreator             = 'oplg',\n    kAudioObjectPropertyListenerAdded       = 'lisa',\n    kAudioObjectPropertyListenerRemoved     = 'lisr',\n\tkAudioHardwarePropertyDevices                               = 'dev#',\n    kAudioHardwarePropertyDefaultInputDevice                    = 'dIn ',\n    kAudioHardwarePropertyDefaultOutputDevice                   = 'dOut',\n    kAudioHardwarePropertyDefaultSystemOutputDevice             = 'sOut',\n    kAudioHardwarePropertyTranslateUIDToDevice                  = 'uidd',\n    kAudioHardwarePropertyMixStereoToMono                       = 'stmo',\n    kAudioHardwarePropertyPlugInList                            = 'plg#',\n    kAudioHardwarePropertyTranslateBundleIDToPlugIn             = 'bidp',\n    kAudioHardwarePropertyTransportManagerList                  = 'tmg#',\n    kAudioHardwarePropertyTranslateBundleIDToTransportManager   = 'tmbi',\n    kAudioHardwarePropertyBoxList                               = 'box#',\n    kAudioHardwarePropertyTranslateUIDToBox                     = 'uidb',\n    kAudioHardwarePropertyClockDeviceList                       = 'clk#',\n    kAudioHardwarePropertyTranslateUIDToClockDevice             = 'uidc',\n    kAudioHardwarePropertyProcessIsMaster                       = 'mast',\n    kAudioHardwarePropertyIsInitingOrExiting                    = 'inot',\n    kAudioHardwarePropertyUserIDChanged                         = 'euid',\n    kAudioHardwarePropertyProcessIsAudible                      = 'pmut',\n    kAudioHardwarePropertySleepingIsAllowed                     = 'slep',\n    kAudioHardwarePropertyUnloadingIsAllowed                    = 'unld',\n    kAudioHardwarePropertyHogModeIsAllowed                      = 'hogr',\n    kAudioHardwarePropertyUserSessionIsActiveOrHeadless         = 'user',\n    kAudioHardwarePropertyServiceRestarted                      = 'srst',\n    kAudioHardwarePropertyPowerHint                             = 'powh'\n\n};\n\nenum\n{\n\tkAudioHardwarePropertyRunLoop = 'rnlp',\n\tkAudioHardwarePropertyDeviceForUID = 'duid',\n\tkAudioHardwarePropertyPluginForBundleID = 'pibi',\n};\n\nenum\n{\n\t    kAudioDevicePropertyDeviceName                          = 'name',\n    kAudioDevicePropertyDeviceNameCFString                  = kAudioObjectPropertyName,\n    kAudioDevicePropertyDeviceManufacturer                  = 'makr',\n    kAudioDevicePropertyDeviceManufacturerCFString          = kAudioObjectPropertyManufacturer,\n    kAudioDevicePropertyRegisterBufferList                  = 'rbuf',\n    kAudioDevicePropertyBufferSize                          = 'bsiz',\n    kAudioDevicePropertyBufferSizeRange                     = 'bsz#',\n    kAudioDevicePropertyChannelName                         = 'chnm',\n    kAudioDevicePropertyChannelNameCFString                 = kAudioObjectPropertyElementName,\n    kAudioDevicePropertyChannelCategoryName                 = 'ccnm',\n    kAudioDevicePropertyChannelCategoryNameCFString         = kAudioObjectPropertyElementCategoryName,\n    kAudioDevicePropertyChannelNumberName                   = 'cnnm',\n    kAudioDevicePropertyChannelNumberNameCFString           = kAudioObjectPropertyElementNumberName,\n    kAudioDevicePropertySupportsMixing                      = 'mix?',\n    kAudioDevicePropertyStreamFormat                        = 'sfmt',\n    kAudioDevicePropertyStreamFormats                       = 'sfm#',\n    kAudioDevicePropertyStreamFormatSupported               = 'sfm?',\n    kAudioDevicePropertyStreamFormatMatch                   = 'sfmm',\n    kAudioDevicePropertyDataSourceNameForID                 = 'sscn',\n    kAudioDevicePropertyClockSourceNameForID                = 'cscn',\n    kAudioDevicePropertyPlayThruDestinationNameForID        = 'mddn',\n    kAudioDevicePropertyChannelNominalLineLevelNameForID    = 'cnlv',\n    kAudioDevicePropertyHighPassFilterSettingNameForID      = 'chip'\n};\n\nenum\n{\n\t    kAudioDevicePropertyPlugIn                          = 'plug',\n    kAudioDevicePropertyDeviceHasChanged                = 'diff',\n    kAudioDevicePropertyDeviceIsRunningSomewhere        = 'gone',\n    kAudioDeviceProcessorOverload                       = 'over',\n    kAudioDevicePropertyIOStoppedAbnormally             = 'stpd',\n    kAudioDevicePropertyHogMode                         = 'oink',\n    kAudioDevicePropertyBufferFrameSize                 = 'fsiz',\n    kAudioDevicePropertyBufferFrameSizeRange            = 'fsz#',\n    kAudioDevicePropertyUsesVariableBufferFrameSizes    = 'vfsz',\n    kAudioDevicePropertyIOCycleUsage                    = 'ncyc',\n    kAudioDevicePropertyStreamConfiguration             = 'slay',\n    kAudioDevicePropertyIOProcStreamUsage               = 'suse',\n    kAudioDevicePropertyActualSampleRate                = 'asrt',\n    kAudioDevicePropertyClockDevice                     = 'apcd'\n};\n\nenum {\n    kAudioDevicePropertyScopeInput = kAudioObjectPropertyScopeInput,\n    kAudioDevicePropertyScopeOutput = kAudioObjectPropertyScopeOutput,\n    kAudioDevicePropertyScopePlayThrough = kAudioObjectPropertyScopePlayThrough,\n};\n\nenum {\n    kAudioDevicePropertyVolumeScalar = 'volm',\n    kAudioDevicePropertyVolumeDecibels = 'vold',\n    kAudioDevicePropertyVolumeDecibelsToScalar = 'db2v',\n    kAudioDevicePropertyVolumeScalarToDecibels = 'v2db',\n    kAudioDevicePropertyMute = 'mute',\n};\n\ntypedef AudioObjectPropertySelector AudioHardwarePropertyID;\ntypedef AudioObjectPropertySelector AudioDevicePropertyID;\n\nvoid AudioObjectShow(AudioObjectID inObjectID);\n\nBoolean AudioObjectHasProperty(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress);\n\nOSStatus AudioObjectIsPropertySettable(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress, Boolean* outIsSettable);\n\nOSStatus AudioObjectGetPropertyDataSize(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* outDataSize);\n\nOSStatus AudioObjectGetPropertyData(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32* ioDataSize, void* outData);\n\nOSStatus AudioObjectSetPropertyData(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress, UInt32 inQualifierDataSize,\n\t\tconst void* inQualifierData, UInt32 inDataSize, const void* inData);\n\nOSStatus AudioObjectAddPropertyListener(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress,\n\t\tAudioObjectPropertyListenerProc inListener, void* inClientData);\n\nOSStatus AudioObjectRemovePropertyListener(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress,\n\t\tAudioObjectPropertyListenerProc inListener, void* inClientData);\n\n#ifdef __BLOCKS__\n\nOSStatus AudioObjectAddPropertyListenerBlock(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress,\n\t\tdispatch_queue_t inDispatchQueue, AudioObjectPropertyListenerBlock inListener);\n\nOSStatus AudioObjectRemovePropertyListenerBlock(AudioObjectID inObjectID,\n\t\tconst AudioObjectPropertyAddress* inAddress,\n\t\tdispatch_queue_t inDispatchQueue, AudioObjectPropertyListenerBlock inListener);\n\n#endif\n\nOSStatus AudioHardwareUnload(void);\n\nOSStatus AudioHardwareCreateAggregateDevice(CFDictionaryRef, AudioObjectID* outDeviceID);\n\nOSStatus AudioHardwareDestroyAggregateDevice(AudioObjectID inDeviceID);\n\ntypedef OSStatus (*AudioDeviceIOProc)(AudioObjectID inObjectID,\n\t\tconst AudioTimeStamp* inNow, const AudioBufferList* inInputData,\n\t\tconst AudioTimeStamp* inInputTime,\n\t\tAudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime,\n\t\tvoid* inClientData);\n\ntypedef AudioDeviceIOProc AudioDeviceIOProcID;\n\nOSStatus AudioDeviceCreateIOProcID(AudioObjectID inDevice,\n\t\tAudioDeviceIOProc inProc, void* inClientData,\n\t\tAudioDeviceIOProcID* outIOProcID);\nOSStatus AudioDeviceAddIOProc(AudioDeviceID inDevice, AudioDeviceIOProc inProc, void *inClientData);\n\n#ifdef __BLOCKS__\n\ntypedef void (^AudioDeviceIOBlock)(const AudioTimeStamp* inNow, const AudioBufferList* inInputData,\n\t\tconst AudioTimeStamp* inInputTime,\n\t\tAudioBufferList* outOutputData, const AudioTimeStamp* inOutputTime);\n\nOSStatus AudioDeviceCreateIOProcIDWithBlock(AudioDeviceIOProcID* outIOProcID,\n\t\tAudioObjectID inDevice, dispatch_queue_t inDispatchQueue,\n\t\tAudioDeviceIOBlock inIOBlock);\n\n#endif\n\nOSStatus AudioDeviceDestroyIOProcID(AudioObjectID inDevice,\n\t\tAudioDeviceIOProcID inIOProcID);\nOSStatus AudioDeviceRemoveIOProc(AudioDeviceID inDevice, AudioDeviceIOProc inProc);\n\nOSStatus AudioDeviceStart(AudioObjectID inDevice, AudioDeviceIOProcID inProcID);\n\nOSStatus AudioDeviceStartAtTime(AudioObjectID inDevice, AudioDeviceIOProcID inProcID,\n\t\tAudioTimeStamp* ioRequestedStartTime, UInt32 inFlags);\n\nOSStatus AudioDeviceStop(AudioObjectID inDevice, AudioDeviceIOProcID inProcID);\n\nstruct AudioHardwareIOProcStreamUsage\n{\n\tvoid* mIOProc;\n\tUInt32 mNumberStreams;\n\tUInt32 mStreamIsOn[1];\n};\n\nOSStatus AudioDeviceGetProperty(AudioDeviceID inDevice, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, UInt32* ioPropertyDataSize, void* outPropertyData);\nOSStatus AudioDeviceGetPropertyInfo(AudioDeviceID inDevice, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, UInt32* outSize, Boolean* outWritable);\nOSStatus AudioDeviceSetProperty(AudioDeviceID inDevice, const AudioTimeStamp *inWhen, UInt32 inChannel, Boolean isInput, AudioDevicePropertyID inPropertyID, UInt32 inPropertyDataSize, const void *inPropertyData);\n\nOSStatus AudioDeviceGetCurrentTime(AudioObjectID inDevice, AudioTimeStamp* outTime);\n\nOSStatus AudioDeviceTranslateTime(AudioObjectID inDevice, const AudioTimeStamp* inTime,\n\t\tAudioTimeStamp* outTime);\n\nOSStatus AudioDeviceGetNearestStartTime(AudioObjectID inDevice,\n\t\tAudioTimeStamp* ioRequestedStartTime, UInt32 inFlags);\n\nOSStatus AudioHardwareGetProperty(AudioHardwarePropertyID inPropId, UInt32* ioPropertyDataSize, void* outPropertyData);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* AUDIOHARDWARE_H */\n\n"
  },
  {
    "path": "src/CoreAudio/include/CoreAudio/AudioHardwareBase.h",
    "content": "#ifndef AUDIOHARDWAREBASE_H\n#define AUDIOHARDWAREBASE_H\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\t\n#include <CoreAudio/CoreAudioTypes.h>\n\ntypedef UInt32 AudioObjectID;\ntypedef UInt32 AudioClassID;\ntypedef UInt32 AudioObjectPropertySelector;\ntypedef UInt32 AudioObjectPropertyScope;\ntypedef UInt32 AudioObjectPropertyElement;\n\nstruct AudioObjectPropertyAddress\n{\n\tAudioObjectPropertySelector mSelector;\n\tAudioObjectPropertyScope mScope;\n\tAudioObjectPropertyElement mElement;\n};\n\nenum\n{\n\tkAudioHardwareNoError                   = 0,\n\tkAudioHardwareNotRunningError           = 'stop',\n\tkAudioHardwareUnspecifiedError          = 'what',\n\tkAudioHardwareUnknownPropertyError      = 'who?',\n\tkAudioHardwareBadPropertySizeError      = '!siz',\n\tkAudioHardwareIllegalOperationError     = 'nope',\n\tkAudioHardwareBadObjectError            = '!obj',\n\tkAudioHardwareBadDeviceError            = '!dev',\n\tkAudioHardwareBadStreamError            = '!str',\n\tkAudioHardwareUnsupportedOperationError = 'unop',\n\tkAudioDeviceUnsupportedFormatError      = '!dat',\n\tkAudioDevicePermissionsError            = '!hog',\n};\n\nenum\n{\n\tkAudioObjectPropertyScopeGlobal         = 'glob',\n\tkAudioObjectPropertyScopeInput          = 'inpt',\n\tkAudioObjectPropertyScopeOutput         = 'outp',\n\tkAudioObjectPropertyScopePlayThrough    = 'ptru',\n\tkAudioObjectPropertyElementMaster       = 0,\n};\n\nenum\n{\n\tkAudioObjectPropertyBaseClass           = 'bcls',\n\tkAudioObjectPropertyClass               = 'clas',\n\tkAudioObjectPropertyOwner               = 'stdv',\n\tkAudioObjectPropertyName                = 'lnam',\n\tkAudioObjectPropertyModelName           = 'lmod',\n\tkAudioObjectPropertyManufacturer        = 'lmak',\n\tkAudioObjectPropertyElementName         = 'lchn',\n\tkAudioObjectPropertyElementCategoryName = 'lccn',\n\tkAudioObjectPropertyElementNumberName   = 'lcnn',\n\tkAudioObjectPropertyOwnedObjects        = 'ownd',\n\tkAudioObjectPropertyIdentify            = 'iden',\n\tkAudioObjectPropertySerialNumber        = 'snum',\n\tkAudioObjectPropertyFirmwareVersion     = 'fwvn',\n};\n\nenum\n{\n    kAudioDevicePropertyConfigurationApplication        = 'capp',\n    kAudioDevicePropertyDeviceUID                       = 'uid ',\n    kAudioDevicePropertyModelUID                        = 'muid',\n    kAudioDevicePropertyTransportType                   = 'tran',\n    kAudioDevicePropertyRelatedDevices                  = 'akin',\n    kAudioDevicePropertyClockDomain                     = 'clkd',\n    kAudioDevicePropertyDeviceIsAlive                   = 'livn',\n    kAudioDevicePropertyDeviceIsRunning                 = 'goin',\n    kAudioDevicePropertyDeviceCanBeDefaultDevice        = 'dflt',\n    kAudioDevicePropertyDeviceCanBeDefaultSystemDevice  = 'sflt',\n    kAudioDevicePropertyLatency                         = 'ltnc',\n    kAudioDevicePropertyStreams                         = 'stm#',\n    kAudioObjectPropertyControlList                     = 'ctrl',\n    kAudioDevicePropertySafetyOffset                    = 'saft',\n    kAudioDevicePropertyNominalSampleRate               = 'nsrt',\n    kAudioDevicePropertyAvailableNominalSampleRates     = 'nsr#',\n    kAudioDevicePropertyIcon                            = 'icon',\n    kAudioDevicePropertyIsHidden                        = 'hidn',\n    kAudioDevicePropertyPreferredChannelsForStereo      = 'dch2',\n    kAudioDevicePropertyPreferredChannelLayout          = 'srnd',\n};\n\n\n// TODO: A lot more is missing\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif /* AUDIOHARDWAREBASE_H */\n\n"
  },
  {
    "path": "src/CoreAudio/include/CoreAudio/CoreAudio.h",
    "content": "#include <CoreAudio/CoreAudioTypes.h>\n#include <CoreAudio/AudioHardware.h>\n#include <CoreAudio/AudioHardwareBase.h>\n#include <CoreAudio/HostTime.h>\n\n"
  },
  {
    "path": "src/CoreAudio/include/CoreAudio/CoreAudioTypes.h",
    "content": "#ifndef COREAUDIOTYPES_H\n#define COREAUDIOTYPES_H\n#include <MacTypes.h>\n\n#define COREAUDIOTYPES_VERSION 1052\n\nenum\n{\n    kAudio_UnimplementedError = -4,\n    kAudio_FileNotFoundError = -43,\n    kAudio_FilePermissionError = -54,\n    kAudio_TooManyFilesOpenError = -42,\n    kAudio_BadFilePathError = '!pth',\n    kAudio_ParamError = -50,\n    kAudio_MemFullError = -108\n};\nstruct AudioValueRange\n{\n    Float64 mMinimum;\n    Float64 mMaximum;\n};\ntypedef struct AudioValueRange AudioValueRange;\nstruct AudioValueTranslation\n{\n    void* _Nonnull mInputData;\n    UInt32 mInputDataSize;\n    void* _Nonnull mOutputData;\n    UInt32 mOutputDataSize;\n};\ntypedef struct AudioValueTranslation AudioValueTranslation;\nstruct AudioBuffer\n{\n    UInt32 mNumberChannels;\n    UInt32 mDataByteSize;\n    void* _Nullable mData;\n};\ntypedef struct AudioBuffer AudioBuffer;\nstruct AudioBufferList\n{\n    UInt32 mNumberBuffers;\n    AudioBuffer mBuffers[1];\n};\ntypedef struct AudioBufferList AudioBufferList;\n typedef Float32 AudioSampleType;\n typedef Float32 AudioUnitSampleType;\ntypedef UInt32 AudioFormatID;\n\n\n\n\n\ntypedef UInt32 AudioFormatFlags;\nstruct AudioStreamBasicDescription\n{\n    Float64 mSampleRate;\n    AudioFormatID mFormatID;\n    AudioFormatFlags mFormatFlags;\n    UInt32 mBytesPerPacket;\n    UInt32 mFramesPerPacket;\n    UInt32 mBytesPerFrame;\n    UInt32 mChannelsPerFrame;\n    UInt32 mBitsPerChannel;\n    UInt32 mReserved;\n};\ntypedef struct AudioStreamBasicDescription AudioStreamBasicDescription;\n\n\n\n\n\n\n\nstatic const Float64 kAudioStreamAnyRate = 0.0;\nenum\n{\n    kAudioFormatLinearPCM = 'lpcm',\n    kAudioFormatAC3 = 'ac-3',\n    kAudioFormat60958AC3 = 'cac3',\n    kAudioFormatAppleIMA4 = 'ima4',\n    kAudioFormatMPEG4AAC = 'aac ',\n    kAudioFormatMPEG4CELP = 'celp',\n    kAudioFormatMPEG4HVXC = 'hvxc',\n    kAudioFormatMPEG4TwinVQ = 'twvq',\n    kAudioFormatMACE3 = 'MAC3',\n    kAudioFormatMACE6 = 'MAC6',\n    kAudioFormatULaw = 'ulaw',\n    kAudioFormatALaw = 'alaw',\n    kAudioFormatQDesign = 'QDMC',\n    kAudioFormatQDesign2 = 'QDM2',\n    kAudioFormatQUALCOMM = 'Qclp',\n    kAudioFormatMPEGLayer1 = '.mp1',\n    kAudioFormatMPEGLayer2 = '.mp2',\n    kAudioFormatMPEGLayer3 = '.mp3',\n    kAudioFormatTimeCode = 'time',\n    kAudioFormatMIDIStream = 'midi',\n    kAudioFormatParameterValueStream = 'apvs',\n    kAudioFormatAppleLossless = 'alac',\n    kAudioFormatMPEG4AAC_HE = 'aach',\n    kAudioFormatMPEG4AAC_LD = 'aacl',\n    kAudioFormatMPEG4AAC_ELD = 'aace',\n    kAudioFormatMPEG4AAC_ELD_SBR = 'aacf',\n    kAudioFormatMPEG4AAC_ELD_V2 = 'aacg',\n    kAudioFormatMPEG4AAC_HE_V2 = 'aacp',\n    kAudioFormatMPEG4AAC_Spatial = 'aacs',\n    kAudioFormatAMR = 'samr',\n    kAudioFormatAMR_WB = 'sawb',\n    kAudioFormatAudible = 'AUDB',\n    kAudioFormatiLBC = 'ilbc',\n    kAudioFormatDVIIntelIMA = 0x6D730011,\n    kAudioFormatMicrosoftGSM = 0x6D730031,\n    kAudioFormatAES3 = 'aes3',\n    kAudioFormatEnhancedAC3 = 'ec-3',\n    kAudioFormatFLAC = 'flac',\n    kAudioFormatOpus = 'opus'\n};\nenum\n{\n    kAudioFormatFlagIsFloat = (1U << 0),\n    kAudioFormatFlagIsBigEndian = (1U << 1),\n    kAudioFormatFlagIsSignedInteger = (1U << 2),\n    kAudioFormatFlagIsPacked = (1U << 3),\n    kAudioFormatFlagIsAlignedHigh = (1U << 4),\n    kAudioFormatFlagIsNonInterleaved = (1U << 5),\n    kAudioFormatFlagIsNonMixable = (1U << 6),\n    kAudioFormatFlagsAreAllClear = 0x80000000,\n\n    kLinearPCMFormatFlagIsFloat = kAudioFormatFlagIsFloat,\n    kLinearPCMFormatFlagIsBigEndian = kAudioFormatFlagIsBigEndian,\n    kLinearPCMFormatFlagIsSignedInteger = kAudioFormatFlagIsSignedInteger,\n    kLinearPCMFormatFlagIsPacked = kAudioFormatFlagIsPacked,\n    kLinearPCMFormatFlagIsAlignedHigh = kAudioFormatFlagIsAlignedHigh,\n    kLinearPCMFormatFlagIsNonInterleaved = kAudioFormatFlagIsNonInterleaved,\n    kLinearPCMFormatFlagIsNonMixable = kAudioFormatFlagIsNonMixable,\n    kLinearPCMFormatFlagsSampleFractionShift = 7,\n    kLinearPCMFormatFlagsSampleFractionMask = (0x3F << kLinearPCMFormatFlagsSampleFractionShift),\n    kLinearPCMFormatFlagsAreAllClear = kAudioFormatFlagsAreAllClear,\n\n    kAppleLosslessFormatFlag_16BitSourceData = 1,\n    kAppleLosslessFormatFlag_20BitSourceData = 2,\n    kAppleLosslessFormatFlag_24BitSourceData = 3,\n    kAppleLosslessFormatFlag_32BitSourceData = 4\n};\nenum\n{\n\n\n\n    kAudioFormatFlagsNativeEndian = 0,\n\n\n    kAudioFormatFlagsCanonical  = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked,\n    kAudioFormatFlagsAudioUnitCanonical  = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked | kAudioFormatFlagIsNonInterleaved,\n\n\n\n\n    kAudioFormatFlagsNativeFloatPacked = kAudioFormatFlagIsFloat | kAudioFormatFlagsNativeEndian | kAudioFormatFlagIsPacked\n};\nstruct AudioStreamPacketDescription\n{\n    SInt64 mStartOffset;\n    UInt32 mVariableFramesInPacket;\n    UInt32 mDataByteSize;\n};\ntypedef struct AudioStreamPacketDescription AudioStreamPacketDescription;\ntypedef UInt32 SMPTETimeType; enum\n{\n    kSMPTETimeType24 = 0,\n    kSMPTETimeType25 = 1,\n    kSMPTETimeType30Drop = 2,\n    kSMPTETimeType30 = 3,\n    kSMPTETimeType2997 = 4,\n    kSMPTETimeType2997Drop = 5,\n    kSMPTETimeType60 = 6,\n    kSMPTETimeType5994 = 7,\n    kSMPTETimeType60Drop = 8,\n    kSMPTETimeType5994Drop = 9,\n    kSMPTETimeType50 = 10,\n    kSMPTETimeType2398 = 11\n};\ntypedef UInt32 SMPTETimeFlags; enum\n{\n    kSMPTETimeUnknown = 0,\n    kSMPTETimeValid = (1U << 0),\n    kSMPTETimeRunning = (1U << 1)\n};\nstruct SMPTETime\n{\n    SInt16 mSubframes;\n    SInt16 mSubframeDivisor;\n    UInt32 mCounter;\n    SMPTETimeType mType;\n    SMPTETimeFlags mFlags;\n    SInt16 mHours;\n    SInt16 mMinutes;\n    SInt16 mSeconds;\n    SInt16 mFrames;\n};\ntypedef struct SMPTETime SMPTETime;\ntypedef UInt32 AudioTimeStampFlags; enum\n{\n    kAudioTimeStampNothingValid = 0,\n    kAudioTimeStampSampleTimeValid = (1U << 0),\n    kAudioTimeStampHostTimeValid = (1U << 1),\n    kAudioTimeStampRateScalarValid = (1U << 2),\n    kAudioTimeStampWordClockTimeValid = (1U << 3),\n    kAudioTimeStampSMPTETimeValid = (1U << 4),\n    kAudioTimeStampSampleHostTimeValid = (kAudioTimeStampSampleTimeValid | kAudioTimeStampHostTimeValid)\n};\nstruct AudioTimeStamp\n{\n    Float64 mSampleTime;\n    UInt64 mHostTime;\n    Float64 mRateScalar;\n    UInt64 mWordClockTime;\n    SMPTETime mSMPTETime;\n    AudioTimeStampFlags mFlags;\n    UInt32 mReserved;\n};\ntypedef struct AudioTimeStamp AudioTimeStamp;\nstruct AudioClassDescription {\n    OSType mType;\n    OSType mSubType;\n    OSType mManufacturer;\n};\ntypedef struct AudioClassDescription AudioClassDescription;\ntypedef UInt32 AudioChannelLabel;\n\n\n\n\n\ntypedef UInt32 AudioChannelLayoutTag;\nenum\n{\n    kAudioChannelLabel_Unknown = 0xFFFFFFFF,\n    kAudioChannelLabel_Unused = 0,\n    kAudioChannelLabel_UseCoordinates = 100,\n\n    kAudioChannelLabel_Left = 1,\n    kAudioChannelLabel_Right = 2,\n    kAudioChannelLabel_Center = 3,\n    kAudioChannelLabel_LFEScreen = 4,\n    kAudioChannelLabel_LeftSurround = 5,\n    kAudioChannelLabel_RightSurround = 6,\n    kAudioChannelLabel_LeftCenter = 7,\n    kAudioChannelLabel_RightCenter = 8,\n    kAudioChannelLabel_CenterSurround = 9,\n    kAudioChannelLabel_LeftSurroundDirect = 10,\n    kAudioChannelLabel_RightSurroundDirect = 11,\n    kAudioChannelLabel_TopCenterSurround = 12,\n    kAudioChannelLabel_VerticalHeightLeft = 13,\n    kAudioChannelLabel_VerticalHeightCenter = 14,\n    kAudioChannelLabel_VerticalHeightRight = 15,\n\n    kAudioChannelLabel_TopBackLeft = 16,\n    kAudioChannelLabel_TopBackCenter = 17,\n    kAudioChannelLabel_TopBackRight = 18,\n\n    kAudioChannelLabel_RearSurroundLeft = 33,\n    kAudioChannelLabel_RearSurroundRight = 34,\n    kAudioChannelLabel_LeftWide = 35,\n    kAudioChannelLabel_RightWide = 36,\n    kAudioChannelLabel_LFE2 = 37,\n    kAudioChannelLabel_LeftTotal = 38,\n    kAudioChannelLabel_RightTotal = 39,\n    kAudioChannelLabel_HearingImpaired = 40,\n    kAudioChannelLabel_Narration = 41,\n    kAudioChannelLabel_Mono = 42,\n    kAudioChannelLabel_DialogCentricMix = 43,\n\n    kAudioChannelLabel_CenterSurroundDirect = 44,\n\n    kAudioChannelLabel_Haptic = 45,\n\n\n    kAudioChannelLabel_Ambisonic_W = 200,\n    kAudioChannelLabel_Ambisonic_X = 201,\n    kAudioChannelLabel_Ambisonic_Y = 202,\n    kAudioChannelLabel_Ambisonic_Z = 203,\n\n\n    kAudioChannelLabel_MS_Mid = 204,\n    kAudioChannelLabel_MS_Side = 205,\n\n\n    kAudioChannelLabel_XY_X = 206,\n    kAudioChannelLabel_XY_Y = 207,\n\n\n    kAudioChannelLabel_HeadphonesLeft = 301,\n    kAudioChannelLabel_HeadphonesRight = 302,\n    kAudioChannelLabel_ClickTrack = 304,\n    kAudioChannelLabel_ForeignLanguage = 305,\n\n\n    kAudioChannelLabel_Discrete = 400,\n\n\n    kAudioChannelLabel_Discrete_0 = (1U<<16) | 0,\n    kAudioChannelLabel_Discrete_1 = (1U<<16) | 1,\n    kAudioChannelLabel_Discrete_2 = (1U<<16) | 2,\n    kAudioChannelLabel_Discrete_3 = (1U<<16) | 3,\n    kAudioChannelLabel_Discrete_4 = (1U<<16) | 4,\n    kAudioChannelLabel_Discrete_5 = (1U<<16) | 5,\n    kAudioChannelLabel_Discrete_6 = (1U<<16) | 6,\n    kAudioChannelLabel_Discrete_7 = (1U<<16) | 7,\n    kAudioChannelLabel_Discrete_8 = (1U<<16) | 8,\n    kAudioChannelLabel_Discrete_9 = (1U<<16) | 9,\n    kAudioChannelLabel_Discrete_10 = (1U<<16) | 10,\n    kAudioChannelLabel_Discrete_11 = (1U<<16) | 11,\n    kAudioChannelLabel_Discrete_12 = (1U<<16) | 12,\n    kAudioChannelLabel_Discrete_13 = (1U<<16) | 13,\n    kAudioChannelLabel_Discrete_14 = (1U<<16) | 14,\n    kAudioChannelLabel_Discrete_15 = (1U<<16) | 15,\n    kAudioChannelLabel_Discrete_65535 = (1U<<16) | 65535,\n\n\n    kAudioChannelLabel_HOA_ACN = 500,\n\n\n    kAudioChannelLabel_HOA_ACN_0 = (2U << 16) | 0,\n    kAudioChannelLabel_HOA_ACN_1 = (2U << 16) | 1,\n    kAudioChannelLabel_HOA_ACN_2 = (2U << 16) | 2,\n    kAudioChannelLabel_HOA_ACN_3 = (2U << 16) | 3,\n    kAudioChannelLabel_HOA_ACN_4 = (2U << 16) | 4,\n    kAudioChannelLabel_HOA_ACN_5 = (2U << 16) | 5,\n    kAudioChannelLabel_HOA_ACN_6 = (2U << 16) | 6,\n    kAudioChannelLabel_HOA_ACN_7 = (2U << 16) | 7,\n    kAudioChannelLabel_HOA_ACN_8 = (2U << 16) | 8,\n    kAudioChannelLabel_HOA_ACN_9 = (2U << 16) | 9,\n    kAudioChannelLabel_HOA_ACN_10 = (2U << 16) | 10,\n    kAudioChannelLabel_HOA_ACN_11 = (2U << 16) | 11,\n    kAudioChannelLabel_HOA_ACN_12 = (2U << 16) | 12,\n    kAudioChannelLabel_HOA_ACN_13 = (2U << 16) | 13,\n    kAudioChannelLabel_HOA_ACN_14 = (2U << 16) | 14,\n    kAudioChannelLabel_HOA_ACN_15 = (2U << 16) | 15,\n    kAudioChannelLabel_HOA_ACN_65024 = (2U << 16) | 65024\n};\n\n\n\n\n\n\ntypedef UInt32 AudioChannelBitmap; enum\n{\n    kAudioChannelBit_Left = (1U<<0),\n    kAudioChannelBit_Right = (1U<<1),\n    kAudioChannelBit_Center = (1U<<2),\n    kAudioChannelBit_LFEScreen = (1U<<3),\n    kAudioChannelBit_LeftSurround = (1U<<4),\n    kAudioChannelBit_RightSurround = (1U<<5),\n    kAudioChannelBit_LeftCenter = (1U<<6),\n    kAudioChannelBit_RightCenter = (1U<<7),\n    kAudioChannelBit_CenterSurround = (1U<<8),\n    kAudioChannelBit_LeftSurroundDirect = (1U<<9),\n    kAudioChannelBit_RightSurroundDirect = (1U<<10),\n    kAudioChannelBit_TopCenterSurround = (1U<<11),\n    kAudioChannelBit_VerticalHeightLeft = (1U<<12),\n    kAudioChannelBit_VerticalHeightCenter = (1U<<13),\n    kAudioChannelBit_VerticalHeightRight = (1U<<14),\n    kAudioChannelBit_TopBackLeft = (1U<<15),\n    kAudioChannelBit_TopBackCenter = (1U<<16),\n    kAudioChannelBit_TopBackRight = (1U<<17)\n};\ntypedef UInt32 AudioChannelFlags; enum\n{\n    kAudioChannelFlags_AllOff = 0,\n    kAudioChannelFlags_RectangularCoordinates = (1U<<0),\n    kAudioChannelFlags_SphericalCoordinates = (1U<<1),\n    kAudioChannelFlags_Meters = (1U<<2)\n};\ntypedef UInt32 AudioChannelCoordinateIndex; enum\n{\n    kAudioChannelCoordinates_LeftRight = 0,\n    kAudioChannelCoordinates_BackFront = 1,\n    kAudioChannelCoordinates_DownUp = 2,\n    kAudioChannelCoordinates_Azimuth = 0,\n    kAudioChannelCoordinates_Elevation = 1,\n    kAudioChannelCoordinates_Distance = 2\n};\n\n\n\n\n\n\nenum\n{\n    kAudioChannelLayoutTag_UseChannelDescriptions = (0U<<16) | 0,\n    kAudioChannelLayoutTag_UseChannelBitmap = (1U<<16) | 0,\n\n    kAudioChannelLayoutTag_Mono = (100U<<16) | 1,\n    kAudioChannelLayoutTag_Stereo = (101U<<16) | 2,\n    kAudioChannelLayoutTag_StereoHeadphones = (102U<<16) | 2,\n    kAudioChannelLayoutTag_MatrixStereo = (103U<<16) | 2,\n    kAudioChannelLayoutTag_MidSide = (104U<<16) | 2,\n    kAudioChannelLayoutTag_XY = (105U<<16) | 2,\n    kAudioChannelLayoutTag_Binaural = (106U<<16) | 2,\n    kAudioChannelLayoutTag_Ambisonic_B_Format = (107U<<16) | 4,\n\n    kAudioChannelLayoutTag_Quadraphonic = (108U<<16) | 4,\n    kAudioChannelLayoutTag_Pentagonal = (109U<<16) | 5,\n    kAudioChannelLayoutTag_Hexagonal = (110U<<16) | 6,\n    kAudioChannelLayoutTag_Octagonal = (111U<<16) | 8,\n    kAudioChannelLayoutTag_Cube = (112U<<16) | 8,\n\n\n\n    kAudioChannelLayoutTag_MPEG_1_0 = kAudioChannelLayoutTag_Mono,\n    kAudioChannelLayoutTag_MPEG_2_0 = kAudioChannelLayoutTag_Stereo,\n    kAudioChannelLayoutTag_MPEG_3_0_A = (113U<<16) | 3,\n    kAudioChannelLayoutTag_MPEG_3_0_B = (114U<<16) | 3,\n    kAudioChannelLayoutTag_MPEG_4_0_A = (115U<<16) | 4,\n    kAudioChannelLayoutTag_MPEG_4_0_B = (116U<<16) | 4,\n    kAudioChannelLayoutTag_MPEG_5_0_A = (117U<<16) | 5,\n    kAudioChannelLayoutTag_MPEG_5_0_B = (118U<<16) | 5,\n    kAudioChannelLayoutTag_MPEG_5_0_C = (119U<<16) | 5,\n    kAudioChannelLayoutTag_MPEG_5_0_D = (120U<<16) | 5,\n    kAudioChannelLayoutTag_MPEG_5_1_A = (121U<<16) | 6,\n    kAudioChannelLayoutTag_MPEG_5_1_B = (122U<<16) | 6,\n    kAudioChannelLayoutTag_MPEG_5_1_C = (123U<<16) | 6,\n    kAudioChannelLayoutTag_MPEG_5_1_D = (124U<<16) | 6,\n    kAudioChannelLayoutTag_MPEG_6_1_A = (125U<<16) | 7,\n    kAudioChannelLayoutTag_MPEG_7_1_A = (126U<<16) | 8,\n    kAudioChannelLayoutTag_MPEG_7_1_B = (127U<<16) | 8,\n    kAudioChannelLayoutTag_MPEG_7_1_C = (128U<<16) | 8,\n    kAudioChannelLayoutTag_Emagic_Default_7_1 = (129U<<16) | 8,\n    kAudioChannelLayoutTag_SMPTE_DTV = (130U<<16) | 8,\n\n\n\n    kAudioChannelLayoutTag_ITU_1_0 = kAudioChannelLayoutTag_Mono,\n    kAudioChannelLayoutTag_ITU_2_0 = kAudioChannelLayoutTag_Stereo,\n\n    kAudioChannelLayoutTag_ITU_2_1 = (131U<<16) | 3,\n    kAudioChannelLayoutTag_ITU_2_2 = (132U<<16) | 4,\n    kAudioChannelLayoutTag_ITU_3_0 = kAudioChannelLayoutTag_MPEG_3_0_A,\n    kAudioChannelLayoutTag_ITU_3_1 = kAudioChannelLayoutTag_MPEG_4_0_A,\n\n    kAudioChannelLayoutTag_ITU_3_2 = kAudioChannelLayoutTag_MPEG_5_0_A,\n    kAudioChannelLayoutTag_ITU_3_2_1 = kAudioChannelLayoutTag_MPEG_5_1_A,\n    kAudioChannelLayoutTag_ITU_3_4_1 = kAudioChannelLayoutTag_MPEG_7_1_C,\n\n\n    kAudioChannelLayoutTag_DVD_0 = kAudioChannelLayoutTag_Mono,\n    kAudioChannelLayoutTag_DVD_1 = kAudioChannelLayoutTag_Stereo,\n    kAudioChannelLayoutTag_DVD_2 = kAudioChannelLayoutTag_ITU_2_1,\n    kAudioChannelLayoutTag_DVD_3 = kAudioChannelLayoutTag_ITU_2_2,\n    kAudioChannelLayoutTag_DVD_4 = (133U<<16) | 3,\n    kAudioChannelLayoutTag_DVD_5 = (134U<<16) | 4,\n    kAudioChannelLayoutTag_DVD_6 = (135U<<16) | 5,\n    kAudioChannelLayoutTag_DVD_7 = kAudioChannelLayoutTag_MPEG_3_0_A,\n    kAudioChannelLayoutTag_DVD_8 = kAudioChannelLayoutTag_MPEG_4_0_A,\n    kAudioChannelLayoutTag_DVD_9 = kAudioChannelLayoutTag_MPEG_5_0_A,\n    kAudioChannelLayoutTag_DVD_10 = (136U<<16) | 4,\n    kAudioChannelLayoutTag_DVD_11 = (137U<<16) | 5,\n    kAudioChannelLayoutTag_DVD_12 = kAudioChannelLayoutTag_MPEG_5_1_A,\n\n    kAudioChannelLayoutTag_DVD_13 = kAudioChannelLayoutTag_DVD_8,\n    kAudioChannelLayoutTag_DVD_14 = kAudioChannelLayoutTag_DVD_9,\n    kAudioChannelLayoutTag_DVD_15 = kAudioChannelLayoutTag_DVD_10,\n    kAudioChannelLayoutTag_DVD_16 = kAudioChannelLayoutTag_DVD_11,\n    kAudioChannelLayoutTag_DVD_17 = kAudioChannelLayoutTag_DVD_12,\n    kAudioChannelLayoutTag_DVD_18 = (138U<<16) | 5,\n    kAudioChannelLayoutTag_DVD_19 = kAudioChannelLayoutTag_MPEG_5_0_B,\n    kAudioChannelLayoutTag_DVD_20 = kAudioChannelLayoutTag_MPEG_5_1_B,\n\n\n\n    kAudioChannelLayoutTag_AudioUnit_4 = kAudioChannelLayoutTag_Quadraphonic,\n    kAudioChannelLayoutTag_AudioUnit_5 = kAudioChannelLayoutTag_Pentagonal,\n    kAudioChannelLayoutTag_AudioUnit_6 = kAudioChannelLayoutTag_Hexagonal,\n    kAudioChannelLayoutTag_AudioUnit_8 = kAudioChannelLayoutTag_Octagonal,\n\n    kAudioChannelLayoutTag_AudioUnit_5_0 = kAudioChannelLayoutTag_MPEG_5_0_B,\n    kAudioChannelLayoutTag_AudioUnit_6_0 = (139U<<16) | 6,\n    kAudioChannelLayoutTag_AudioUnit_7_0 = (140U<<16) | 7,\n    kAudioChannelLayoutTag_AudioUnit_7_0_Front = (148U<<16) | 7,\n    kAudioChannelLayoutTag_AudioUnit_5_1 = kAudioChannelLayoutTag_MPEG_5_1_A,\n    kAudioChannelLayoutTag_AudioUnit_6_1 = kAudioChannelLayoutTag_MPEG_6_1_A,\n    kAudioChannelLayoutTag_AudioUnit_7_1 = kAudioChannelLayoutTag_MPEG_7_1_C,\n    kAudioChannelLayoutTag_AudioUnit_7_1_Front = kAudioChannelLayoutTag_MPEG_7_1_A,\n\n    kAudioChannelLayoutTag_AAC_3_0 = kAudioChannelLayoutTag_MPEG_3_0_B,\n    kAudioChannelLayoutTag_AAC_Quadraphonic = kAudioChannelLayoutTag_Quadraphonic,\n    kAudioChannelLayoutTag_AAC_4_0 = kAudioChannelLayoutTag_MPEG_4_0_B,\n    kAudioChannelLayoutTag_AAC_5_0 = kAudioChannelLayoutTag_MPEG_5_0_D,\n    kAudioChannelLayoutTag_AAC_5_1 = kAudioChannelLayoutTag_MPEG_5_1_D,\n    kAudioChannelLayoutTag_AAC_6_0 = (141U<<16) | 6,\n    kAudioChannelLayoutTag_AAC_6_1 = (142U<<16) | 7,\n    kAudioChannelLayoutTag_AAC_7_0 = (143U<<16) | 7,\n    kAudioChannelLayoutTag_AAC_7_1 = kAudioChannelLayoutTag_MPEG_7_1_B,\n    kAudioChannelLayoutTag_AAC_7_1_B = (183U<<16) | 8,\n    kAudioChannelLayoutTag_AAC_7_1_C = (184U<<16) | 8,\n    kAudioChannelLayoutTag_AAC_Octagonal = (144U<<16) | 8,\n\n    kAudioChannelLayoutTag_TMH_10_2_std = (145U<<16) | 16,\n    kAudioChannelLayoutTag_TMH_10_2_full = (146U<<16) | 21,\n\n    kAudioChannelLayoutTag_AC3_1_0_1 = (149U<<16) | 2,\n    kAudioChannelLayoutTag_AC3_3_0 = (150U<<16) | 3,\n    kAudioChannelLayoutTag_AC3_3_1 = (151U<<16) | 4,\n    kAudioChannelLayoutTag_AC3_3_0_1 = (152U<<16) | 4,\n    kAudioChannelLayoutTag_AC3_2_1_1 = (153U<<16) | 4,\n    kAudioChannelLayoutTag_AC3_3_1_1 = (154U<<16) | 5,\n\n    kAudioChannelLayoutTag_EAC_6_0_A = (155U<<16) | 6,\n    kAudioChannelLayoutTag_EAC_7_0_A = (156U<<16) | 7,\n\n    kAudioChannelLayoutTag_EAC3_6_1_A = (157U<<16) | 7,\n    kAudioChannelLayoutTag_EAC3_6_1_B = (158U<<16) | 7,\n    kAudioChannelLayoutTag_EAC3_6_1_C = (159U<<16) | 7,\n    kAudioChannelLayoutTag_EAC3_7_1_A = (160U<<16) | 8,\n    kAudioChannelLayoutTag_EAC3_7_1_B = (161U<<16) | 8,\n    kAudioChannelLayoutTag_EAC3_7_1_C = (162U<<16) | 8,\n    kAudioChannelLayoutTag_EAC3_7_1_D = (163U<<16) | 8,\n    kAudioChannelLayoutTag_EAC3_7_1_E = (164U<<16) | 8,\n\n    kAudioChannelLayoutTag_EAC3_7_1_F = (165U<<16) | 8,\n    kAudioChannelLayoutTag_EAC3_7_1_G = (166U<<16) | 8,\n    kAudioChannelLayoutTag_EAC3_7_1_H = (167U<<16) | 8,\n\n    kAudioChannelLayoutTag_DTS_3_1 = (168U<<16) | 4,\n    kAudioChannelLayoutTag_DTS_4_1 = (169U<<16) | 5,\n    kAudioChannelLayoutTag_DTS_6_0_A = (170U<<16) | 6,\n    kAudioChannelLayoutTag_DTS_6_0_B = (171U<<16) | 6,\n    kAudioChannelLayoutTag_DTS_6_0_C = (172U<<16) | 6,\n    kAudioChannelLayoutTag_DTS_6_1_A = (173U<<16) | 7,\n    kAudioChannelLayoutTag_DTS_6_1_B = (174U<<16) | 7,\n    kAudioChannelLayoutTag_DTS_6_1_C = (175U<<16) | 7,\n    kAudioChannelLayoutTag_DTS_7_0 = (176U<<16) | 7,\n    kAudioChannelLayoutTag_DTS_7_1 = (177U<<16) | 8,\n    kAudioChannelLayoutTag_DTS_8_0_A = (178U<<16) | 8,\n    kAudioChannelLayoutTag_DTS_8_0_B = (179U<<16) | 8,\n    kAudioChannelLayoutTag_DTS_8_1_A = (180U<<16) | 9,\n    kAudioChannelLayoutTag_DTS_8_1_B = (181U<<16) | 9,\n    kAudioChannelLayoutTag_DTS_6_1_D = (182U<<16) | 7,\n\n    kAudioChannelLayoutTag_HOA_ACN_SN3D = (190U<<16) | 0,\n\n    kAudioChannelLayoutTag_HOA_ACN_N3D = (191U<<16) | 0,\n\n\n    kAudioChannelLayoutTag_DiscreteInOrder = (147U<<16) | 0,\n    kAudioChannelLayoutTag_Unknown = 0xFFFF0000\n};\nstruct AudioChannelDescription\n{\n    AudioChannelLabel mChannelLabel;\n    AudioChannelFlags mChannelFlags;\n    Float32 mCoordinates[3];\n};\ntypedef struct AudioChannelDescription AudioChannelDescription;\nstruct AudioChannelLayout\n{\n    AudioChannelLayoutTag mChannelLayoutTag;\n    AudioChannelBitmap mChannelBitmap;\n    UInt32 mNumberChannelDescriptions;\n    AudioChannelDescription mChannelDescriptions[1];\n};\ntypedef struct AudioChannelLayout AudioChannelLayout;\n    static __inline__ __attribute__((always_inline)) UInt32 AudioChannelLayoutTag_GetNumberOfChannels(AudioChannelLayoutTag inLayoutTag) { return (UInt32)(inLayoutTag & 0x0000FFFF); }\ntypedef long MPEG4ObjectID; enum\n{\n    kMPEG4Object_AAC_Main = 1,\n    kMPEG4Object_AAC_LC = 2,\n    kMPEG4Object_AAC_SSR = 3,\n    kMPEG4Object_AAC_LTP = 4,\n    kMPEG4Object_AAC_SBR = 5,\n    kMPEG4Object_AAC_Scalable = 6,\n    kMPEG4Object_TwinVQ = 7,\n    kMPEG4Object_CELP = 8,\n    kMPEG4Object_HVXC = 9\n};\n\n#endif\n\n"
  },
  {
    "path": "src/CoreAudio/include/CoreAudio/HostTime.h",
    "content": "#ifndef COREAUDIOHOSTTIME_H\n#define COREAUDIOHOSTTIME_H\n\n#include \"MacTypes.h\"\n\nextern \"C\" UInt64 AudioGetCurrentHostTime(void);\n\n#endif // COREAUDIOHOSTTIME_H\n"
  },
  {
    "path": "src/CoreAudio/include/CoreAudio/stub/CoreAudio.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _CoreAudio_H_\n#define _CoreAudio_H_\n\n#import <Foundation/Foundation.h>\n\n\nvoid* AudioConvertHostTimeToNanos(void);\nvoid* AudioConvertNanosToHostTime(void);\nvoid* AudioDeviceAddIOProc(void);\nvoid* AudioDeviceAddPropertyListener(void);\nvoid* AudioDeviceCreateIOProcID(void);\nvoid* AudioDeviceCreateIOProcIDWithBlock(void);\nvoid* AudioDeviceCreateIOProcIDWithClockedBlock(void);\nvoid* AudioDeviceCreateIOProcIDWithClockedProc(void);\nvoid* AudioDeviceDestroyIOProcID(void);\nvoid* AudioDeviceDuck(void);\nvoid* AudioDeviceEnterMode(void);\nvoid* AudioDeviceExitMode(void);\nvoid* AudioDeviceGetCurrentTime(void);\nvoid* AudioDeviceGetNearestStartTime(void);\nvoid* AudioDeviceGetProperty(void);\nvoid* AudioDeviceGetPropertyInfo(void);\nvoid* AudioDeviceRead(void);\nvoid* AudioDeviceRemoveIOProc(void);\nvoid* AudioDeviceRemovePropertyListener(void);\nvoid* AudioDeviceRun(void);\nvoid* AudioDeviceSetProperty(void);\nvoid* AudioDeviceStart(void);\nvoid* AudioDeviceStartAtTime(void);\nvoid* AudioDeviceStop(void);\nvoid* AudioDeviceTranslateTime(void);\nvoid* AudioDeviceWrite(void);\nvoid* AudioGetCurrentHostTime(void);\nvoid* AudioGetHostClockFrequency(void);\nvoid* AudioGetHostClockMinimumTimeDelta(void);\nvoid* AudioHardwareAddPropertyListener(void);\nvoid* AudioHardwareAddRunLoopSource(void);\nvoid* AudioHardwareBeMaster(void);\nvoid* AudioHardwareClaimAudioDeviceID(void);\nvoid* AudioHardwareClaimAudioStreamID(void);\nvoid* AudioHardwareCreateAggregateDevice(void);\nvoid* AudioHardwareDestroyAggregateDevice(void);\nvoid* AudioHardwareDevicePropertyChanged(void);\nvoid* AudioHardwareDevicesCreated(void);\nvoid* AudioHardwareDevicesDied(void);\nvoid* AudioHardwareGetProperty(void);\nvoid* AudioHardwareGetPropertyInfo(void);\nvoid* AudioHardwareRemovePropertyListener(void);\nvoid* AudioHardwareRemoveRunLoopSource(void);\nvoid* AudioHardwareSetProperty(void);\nvoid* AudioHardwareStreamPropertyChanged(void);\nvoid* AudioHardwareStreamsCreated(void);\nvoid* AudioHardwareStreamsDied(void);\nvoid* AudioHardwareUnload(void);\nvoid* AudioObjectAddPropertyListener(void);\nvoid* AudioObjectAddPropertyListenerBlock(void);\nvoid* AudioObjectAddPropertyListenerInternal(void);\nvoid* AudioObjectCreate(void);\nvoid* AudioObjectExists(void);\nvoid* AudioObjectGetPropertyData(void);\nvoid* AudioObjectGetPropertyDataSize(void);\nvoid* AudioObjectHasProperty(void);\nvoid* AudioObjectIsPropertySettable(void);\nvoid* AudioObjectPropertiesChanged(void);\nvoid* AudioObjectRemovePropertyListener(void);\nvoid* AudioObjectRemovePropertyListenerBlock(void);\nvoid* AudioObjectSetPropertyData(void);\nvoid* AudioObjectShow(void);\nvoid* AudioObjectsPublishedAndDied(void);\nvoid* AudioStreamAddPropertyListener(void);\nvoid* AudioStreamGetProperty(void);\nvoid* AudioStreamGetPropertyInfo(void);\nvoid* AudioStreamRemovePropertyListener(void);\nvoid* AudioStreamSetProperty(void);\n\n#endif\n"
  },
  {
    "path": "src/CoreAudio/notes.txt",
    "content": "Super simple examples using CA only API:\nhttp://web.mit.edu/ghudson/dev/nokrb/third/esound/audio_coreaudio.c\nhttps://sourceforge.net/p/sox/code/ci/master/tree/src/coreaudio.c\n"
  },
  {
    "path": "src/MobileKeyBag/CMakeLists.txt",
    "content": "project(MobileKeyBag)\n\nadd_darling_static_library(MobileKeyBag\n\tSOURCES\n\t\tsrc/MobileKeyBag.c\n)\n\ntarget_include_directories(MobileKeyBag PUBLIC\n\tinclude\n)\n"
  },
  {
    "path": "src/MobileKeyBag/include/MobileKeyBag/MobileKeyBag.h",
    "content": "#ifndef _MOBILE_KEY_BAG_H_\n#define _MOBILE_KEY_BAG_H_\n\n#include <CoreFoundation/CoreFoundation.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef struct __MKBKeyBagHandle* MKBKeyBagHandleRef;\n\nint MKBKeyBagCreateWithData(CFDataRef keybagBlob, MKBKeyBagHandleRef* newHandle);\nint MKBKeyBagGetAKSHandle(MKBKeyBagHandleRef keybag, int32_t* handle);\nint MKBKeyBagUnlock(MKBKeyBagHandleRef keybag, CFDataRef passcode);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif // _MOBILE_KEY_BAG_H_\n"
  },
  {
    "path": "src/MobileKeyBag/src/MobileKeyBag.c",
    "content": "#include <MobileKeyBag/MobileKeyBag.h>\n#include <stdio.h>\n\nint MKBKeyBagCreateWithData(CFDataRef keybagBlob, MKBKeyBagHandleRef* newHandle) {\n\tprintf(\"STUB %s\\n\", __PRETTY_FUNCTION__);\n\treturn -1;\n};\n\nint MKBKeyBagGetAKSHandle(MKBKeyBagHandleRef keybag, int32_t* handle) {\n\tprintf(\"STUB %s\\n\", __PRETTY_FUNCTION__);\n\treturn -1;\n};\n\nint MKBKeyBagUnlock(MKBKeyBagHandleRef keybag, CFDataRef passcode) {\n\tprintf(\"STUB %s\\n\", __PRETTY_FUNCTION__);\n\treturn -1;\n};\n"
  },
  {
    "path": "src/OpenDirectoryOld/CFOpenDirectory/Headers/CFODContext.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#if !defined(__OPENDIRECTORY_CFODCONTEXT__)\n#define __OPENDIRECTORY_CFODCONTEXT__ 1\n\n#include <CFOpenDirectory/CFOpenDirectory.h>\n\n__BEGIN_DECLS\n\n/*!\n    @function   ODContextGetTypeID\n    @abstract   Standard GetTypeID function support for CF-based objects\n    @discussion Returns the typeID for the ODContext object\n    @result     a valid CFTypeID for the ODContext object\n*/\nCF_EXPORT\nCFTypeID ODContextGetTypeID(void);\n\n__END_DECLS\n\n#endif /* ! __OPENDIRECTORY_CFODCONTEXT__ */\n"
  },
  {
    "path": "src/OpenDirectoryOld/CFOpenDirectory/Headers/CFODNode.h",
    "content": "/*\n * Copyright (c) 2009-2012 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#if !defined(__OPENDIRECTORY_CFODNODE__)\n#define __OPENDIRECTORY_CFODNODE__ 1\n\n#include <CFOpenDirectory/CFOpenDirectory.h>\n\n__BEGIN_DECLS\n\n/*!\n    @function   ODNodeGetTypeID\n    @abstract   Standard GetTypeID function support for CF-based objects\n    @discussion Returns the typeID for the ODNode objects\n    @result     a valid CFTypeID for the ODNode object\n*/\nCF_EXPORT\nCFTypeID ODNodeGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCreateWithNodeType\n    @abstract   Creates an ODNodeRef based on a specific node type\n    @discussion Creates an ODNodeRef based on a specific node type\n    @param      allocator a memory allocator to use for this object\n    @param      session an ODSessionRef, either kODSessionDefault or a valid ODSessionRef can be passed\n    @param      nodeType an ODNodeType of the node to open\n    @param      error an optional CFErrorRef reference for error details\n    @result     a valid ODNodeRef if successful, otherwise returns NULL.  outError can be checked for details upon\n                failure.\n*/\nCF_EXPORT\nODNodeRef ODNodeCreateWithNodeType(CFAllocatorRef allocator, ODSessionRef session, ODNodeType nodeType, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCreateWithName\n    @abstract   Creates an ODNodeRef based on a partciular node name\n    @discussion Creates an ODNodeRef based on a particular node name\n    @param      allocator a memory allocator to use for this object\n    @param      session an ODSessionRef, either kODSessionDefault or a valid ODSessionRef can be passed\n    @param      nodeName a CFStringRef of the name of the node to open\n    @param      error an optional CFErrorRef reference for error details\n    @result     a valid ODNodeRef if successful, otherwise returns NULL. outError can be checked for specific\n                error\n*/\nCF_EXPORT\nODNodeRef ODNodeCreateWithName(CFAllocatorRef allocator, ODSessionRef session, CFStringRef nodeName, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCreateCopy\n    @abstract   Creates a copy, including any remote credentials used for Proxy and/or Node authentication\n    @discussion Creates a copy of the object including all credentials used for the original.  Can be used for future\n                references to the same node setup.\n    @param      allocator a memory allocator to use for this object\n    @param      node an ODNodeRef to make a copy of\n    @param      error an optional CFErrorRef reference for error details\n    @result     a valid ODNodeRef if successful, otherwise returns NULL, with outError set to a CFErrorRef\n*/\nCF_EXPORT\nODNodeRef ODNodeCreateCopy(CFAllocatorRef allocator, ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCopySubnodeNames\n    @abstract   Returns a CFArray of subnode names for this node, which may contain sub-nodes or search policy nodes\n    @discussion Returns a CFArray of subnode names for this node, which may contain sub-nodes or search policy nodes.\n                Commonly used with Search policy nodes.\n    @param      node an ODNodeRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFArrayRef with the list of nodes, otherwise NULL, with outError set to a CFErrorRef\n*/\nCF_EXPORT\nCFArrayRef ODNodeCopySubnodeNames(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCopyUnreachableSubnodeNames\n    @abstract   Will return names of subnodes that are not currently reachable.\n    @discussion Will return names of subnodes that are not currently reachable.  Commonly used with Search policy nodes\n                to determine if any nodes are currently unreachable, but may also return other subnodes if the\n                Open Directory plugin supports.\n    @param      node an ODNodeRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFArrayRef with the list of unreachable nodes or NULL if no bad nodes\n*/\nCF_EXPORT\nCFArrayRef ODNodeCopyUnreachableSubnodeNames(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeGetName\n    @abstract   Returns the node name of the node that was opened\n    @discussion Returns the node name of the node that was opened\n    @param      node an ODNodeRef to use\n    @result     a CFStringRef of the node name that is current or NULL if no open node\n*/\nCF_EXPORT\nCFStringRef ODNodeGetName(ODNodeRef node) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCopyDetails\n    @abstract   Returns a dictionary with details about the node in dictionary form\n    @discussion Returns a dictionary with details about the node in dictionary form.\n    @param      node an ODNodeRef to use\n    @param      keys a CFArrayRef listing the keys the user wants returned, such as \n                kODAttributeTypeStreet\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDictionaryRef containing the requested key and values in form of a CFArray\n*/\nCF_EXPORT\nCFDictionaryRef ODNodeCopyDetails(ODNodeRef node, CFArrayRef keys, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCopySupportedRecordTypes\n    @abstract   Returns a CFArrayRef of the record types supported by this node.\n    @discussion Returns a CFArrayRef of the record types supported by this node.  If node does not support the check\n                then all possible types will be returned.\n    @param      node an ODNodeRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a valid CFArrayRef of CFStrings listing the supported Record types on this node.\n*/\nCF_EXPORT\nCFArrayRef ODNodeCopySupportedRecordTypes(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCopySupportedAttributes\n    @abstract   Will return a list of attribute types supported for that attribute if possible\n    @discussion Will return a list of attribute types supported for that attribute if possible.  If no specific\n                types are available, then all possible values will be returned instead.\n    @param      node an ODNodeRef to use\n    @param      recordType a ODRecordTypeRef with the type of record to check attribute types.  If NULL is passed it will\n                return all possible attributes that are available.\n    @param      error an optional CFErrorRef reference for error details\n    @result     a valid CFArrayRef of CFStrings listing the attributes supported for the requested record type\n*/\nCF_EXPORT\nCFArrayRef ODNodeCopySupportedAttributes(ODNodeRef node, ODRecordType recordType, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeSetCredentials\n    @abstract   Sets the credentials for interaction with the ODNode\n    @discussion Sets the credentials for interaction with the ODNode.  Record references, etc. will use these credentials\n                to query or change data.  Setting the credentials on a node referenced by other OD object types will\n                change the credentials for all for all references.\n    @param      node an ODNodeRef to use\n    @param      recordType a ODRecordTypeRef of the Record Type to use, if NULL is passed, defaults to a \n                kODRecordTypeUsers\n    @param      recordName a CFString of the username to be used for this node authentication\n    @param      password a CFString of the password to be used for this node authentication\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details.  If the authentication failed, \n                the previous credentials are used.\n*/\nCF_EXPORT\nbool ODNodeSetCredentials(ODNodeRef node, ODRecordType recordType, CFStringRef recordName, CFStringRef password, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeSetCredentialsExtended\n    @abstract   Allows use of other Open Directory types of authentications to set the credentials for an ODNode\n    @discussion Allows the caller to use other types of authentications that are available in Open Directory, that may\n                require response-request loops, etc.  Not all OD plugins will support this call, look for \n                kODErrorCredentialsMethodNotSupported in outError.\n    @param      node an ODNodeRef to use\n    @param      recordType a ODRecordType of the type of record to do the authentication with\n    @param      authType a ODAuthenticationType of the type of authentication to be used (e.g., kDSStdAuthNTLMv2)\n    @param      authItems a CFArray of CFData or CFString items that will be sent in order to the auth process\n    @param      outAuthItems will be assigned to a pointer of a CFArray of CFData items if there are returned values\n    @param      outContext will return a pointer to a context if caller supplies a container, and the call requires a\n                context.  If a non-NULL value is returned, then more calls must be made with the Context to continue\n                the authorization.\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool will be returned with the result of the operation and outAuthItems set with response items\n                and outContext set for any needed continuation.\n*/\nCF_EXPORT\nbool ODNodeSetCredentialsExtended(ODNodeRef node, ODRecordType recordType, ODAuthenticationType authType, CFArrayRef authItems, CFArrayRef *outAuthItems, ODContextRef *outContext, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeSetCredentialsUsingKerberosCache\n    @abstract   Unsupported function.\n    @discussion Unsupported function.\n*/\nCF_EXPORT\nbool ODNodeSetCredentialsUsingKerberosCache(ODNodeRef node, CFStringRef cacheName, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_7, __IPHONE_NA, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCreateRecord\n    @abstract   Takes a record and all of the provided attributes and creates the record in the node\n    @discussion Takes all the provided attributes and type to create an entire record.  The function will assign a\n                UUID to the record automatically.  This UUID can be overwritten by the client by passing with the\n                other attributes.\n    @param      node an ODNodeRef to use\n    @param      recordType a ODRecordTypeRef of the type of record (e.g., kODRecordTypeUsers, etc.)\n    @param      recordName a CFStringRef of the name of record\n    @param      attributeDict a CFDictionaryRef of key-value pairs for attribute values.  The key is a CFStringRef of the\n                attribute name or ODRecordType constant such as kODAttributeTypeRecordName.  The value must be a CFArrayRef of\n                CFDataRef or CFStringRef.  If additional kODAttributeTypeRecordName are to be set, they can be passed in the \n                inAttributes list.  This parameter is optional and can be NULL.  If any of the attributes passed\n                fail to be set, the record will be deleted and outError will be set with the appropriate error.\n                If a password is not supplied with a user account, then a random password will be set automatically.  If\n                an empty password is expected, then the kODAttributeTypePassword should be set to an empty CFArray.\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns a valid ODRecordRef.  If the add fails, outError can be checked for details.\n*/\nCF_EXPORT\nODRecordRef ODNodeCreateRecord(ODNodeRef node, ODRecordType recordType, CFStringRef recordName, CFDictionaryRef attributeDict, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCopyRecord\n    @abstract   Simple API to open / create a references to a particular record on a Node\n    @discussion Simple API to open / create a references to a particular record on a Node\n    @param      node an ODNodeRef to use\n    @param      recordType a ODRecordTypeRef of the record type to copy\n    @param      recordName a CFStringRef of the record name to copy\n    @param      attributes (optional) a CFArrayRef (or single ODAttributeType) of the attributes to copy from the directory.  Can be NULL when no \n                attributes are needed.  Any standard types can be passed, for example\n                kODAttributeTypeAllAttributes will fetch all attributes up front.  If just standard attributes are needed, then\n                kODAttributeTypeStandardOnly can be passed.\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns a valid ODRecordRef.  If the record copy fails, the error can be checked for details.\n                If the record is not found, will return NULL with a NULL error.\n*/\nCF_EXPORT\nODRecordRef ODNodeCopyRecord(ODNodeRef node, ODRecordType recordType, CFStringRef recordName, CFTypeRef attributes, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCustomCall\n    @abstract   Sends a custom call to a node.\n    @discussion This will send a custom call to a node along with the specified data, returning the result.\n    @param      node an ODNodeRef to use\n    @param      customCode the custom code to be sent to the node\n    @param      data a data blob expected by the custom code, can be NULL of no send data\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDataRef with the result of the operation, otherwise outError can be checked for specific details\n*/\nCF_EXPORT CF_RETURNS_RETAINED\nCFDataRef ODNodeCustomCall(ODNodeRef node, CFIndex customCode, CFDataRef data, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n * @function ODNodeCustomCall\n *\n * @abstract\n * Sends a named custom function call to a node.\n *\n * @discussion\n * Sends a named custom function call to a node.  Custom functions are defined by the modules that implement them\n * and the parameter is defined by the module.\n *\n * @param node\n * An ODNodeRef to use\n *\n * @param function\n * A CFStringRef that specifies the name of the function\n *\n * @param payload\n * A CFType appropriate for the custom function.  The type is dictated by the module implementing the function.\n *\n * @param error\n * An optional CFErrorRef reference to receive any errors from the custom function call.\n *\n * @result\n * Returns a CFType appropriate for the function.\n */\nCF_EXPORT CF_RETURNS_RETAINED\nCFTypeRef\nODNodeCustomFunction(ODNodeRef node, CFStringRef function, CFTypeRef payload, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCopyPolicies\n    @abstract   This will copy any policies configured for the node.\n    @discussion This will copy any policies configured for the node.\n    @param      node an ODNodeRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDictionaryRef containing all currently set policies\n*/\nCF_EXPORT\nCFDictionaryRef ODNodeCopyPolicies(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODNodeCopyAccountPolicies\");\n\n/*!\n    @function   ODNodeCopySupportedPolicies\n    @abstract   This will return a dictionary of supported policies.\n    @discussion This will return a dictionary of supported policies, if appropriate, the value will be the maximum value allowed\n                for the policy in question.  For example, if password history is available, it will state how much history is\n                supported.\n    @param      node an ODNodeRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDictionaryRef containing all currently supported policies.  The values will be the maximum value allowed.\n*/\nCF_EXPORT\nCFDictionaryRef ODNodeCopySupportedPolicies(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA);\n\n/*!\n    @function   ODNodeSetPolicies\n    @abstract   This will set the policy for the node.\n    @discussion This will set the policy for the node.  Policies are evaluated in combination with record-level policies.\n    @param      node an ODNodeRef to use\n    @param      policies a CFDictionary of policies to be set\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool which signifies if the policy set succeeded, otherwise error is set. \n*/\nCF_EXPORT\nbool ODNodeSetPolicies(ODNodeRef node, CFDictionaryRef policies, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODNodeSetAccountPolicies\");\n\n/*!\n    @function   ODNodeSetPolicy\n    @abstract   This will set a specific policy setting for the node.\n    @discussion This will set a specific policy setting for the node.\n    @param      node an ODNodeRef to use\n    @param      policy a valid ODPolicyType\n    @param      value a CFTypeRef to be set (should be of appropriate type for the policy)\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool which signifies if the policy set succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODNodeSetPolicy(ODNodeRef node, ODPolicyType policyType, CFTypeRef value, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODNodeAddAccountPolicy\");\n\n/*!\n    @function   ODNodeRemovePolicy\n    @abstract   This will remove a specific policy setting from the node.\n    @discussion This will remove a specific policy setting from the node.\n    @param      node an ODNodeRef to use\n    @param      policy a valid ODPolicyType\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool which signifies if the policy removal succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODNodeRemovePolicy(ODNodeRef node, ODPolicyType policyType, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODNodeRemoveAccountPolicy\");\n\n/*!\n    @function   ODNodeAddAccountPolicy\n    @abstract   This will add an account policy to the node for the specified category.\n    @discussion This will add an account policy to the node for the specified category.\n                The specified policy will be applied to all users in the\n                specified node when policies are evaluated.\n    @param      node an ODNodeRef to use.\n    @param      policy a dictionary containing the specific policy to be added.\n                The dictionary may contain the following keys:\n                    kODPolicyKeyIdentifier a required key identifying the policy.\n                    kODPolicyKeyParameters an optional key containing a dictionary of\n                        parameters that can be used for informational purposes or in\n                        the policy format string.\n                    kODPolicyKeyContent a required key specifying the policy,\n                        from which a predicate will be created for evaluating\n                        the policy.\n    @param      category a valid ODPolicyCategoryType to which the specified policy will be added.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the policy addition succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODNodeAddAccountPolicy(ODNodeRef node, CFDictionaryRef policy, ODPolicyCategoryType category, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODNodeRemoveAccountPolicy\n    @abstract   This will remove an account policy from the node for the specified category.\n    @discussion This will remove an account policy from the node for the specified category.\n    @param      node an ODNodeRef to use.\n    @param      policy a dictionary containing the specific policy to be\n                removed, with the same format as described in ODNodeAddAccountPolicy.\n    @param      category a valid ODPolicyCategoryType from which the specified policy will be removed.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the policy removal succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODNodeRemoveAccountPolicy(ODNodeRef node, CFDictionaryRef policy, ODPolicyCategoryType category, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODNodeSetAccountPolicies\n    @abstract   This will set the policies for the node.\n    @discussion This will set the policies for the node, replacing any existing\n                policies.\n    @param      node an ODNodeRef to use.\n    @param      policies a dictionary containing all of the policies to be set\n                for the node.  The dictionary may contain the following keys:\n                    kODPolicyCategoryAuthentication an optional key with a value\n                        of an array of policy dictionaries that specify when\n                        authentications should be allowed.\n                    kODPolicyCategoryPasswordContent an optional key with a\n                        value of an array of policy dictionaries the specify the\n                        required content of passwords. \n                    kODPolicyCategoryPasswordChange an optional key with a value\n                    of an array of policy dictionaries that specify when\n                    passwords are required to be changed.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the policy set succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODNodeSetAccountPolicies(ODNodeRef node, CFDictionaryRef policies, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODNodeCopyAccountPolicies\n    @abstract   This will copy any policies configured for the node.\n    @discussion This will copy any policies configured for the node.\n    @param      node an ODNodeRef to use.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a CFDictionaryRef containing all currently set policies.  The\n                format of the dictionary is the same as described in\n                ODNodeSetAccountPolicies(). \n*/\nCF_EXPORT CF_RETURNS_RETAINED\nCFDictionaryRef ODNodeCopyAccountPolicies(ODNodeRef node, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODNodePasswordContentCheck\n    @abstract   Validates a password against the node's password content policies.\n    @discussion Validates a password against the node's password content policies.\n                The node's password content policies will be evaluated to\n                determine if the password is acceptable.  May be used prior to\n                creating the record.\n\n                This check is only definitive at the time it was requested. The\n                policy or the environment could change before the password change\n                is actually requested.  Errors from the password change request\n                should be consulted.\n\n    @param      node an ODNodeRef to use.\n    @param      password the password to be evaluated against the content policies.\n    @param      recordName the name of the record.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the password passes all content policies, otherwise error is set.\n */\nCF_EXPORT\nbool ODNodePasswordContentCheck(ODNodeRef node, CFStringRef password, CFStringRef recordName, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n__END_DECLS\n\n#endif /* ! __OPENDIRECTORY_CFODNODE__ */\n"
  },
  {
    "path": "src/OpenDirectoryOld/CFOpenDirectory/Headers/CFODQuery.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#if !defined(__OPENDIRECTORY_CFODQUERY__)\n#define __OPENDIRECTORY_CFODQUERY__ 1\n\n#include <CFOpenDirectory/CFOpenDirectory.h>\n\n/*!\n    @header CFODQuery\n    @abstract   ODQuery functions\n    @discussion This header describes functions for working with ODQueryRefs.\n*/\n\n/*!\n    @typedef    ODQueryCallback\n    @abstract   Is called as results are returned from a query.  The incoming result must be retained or copied.\n    @discussion Is called as results are returned from an CFRunLoop-based query.  These results are only partial\n                and the callback is called repeatedly as results are available.  The incoming result must be retained or copied.  The \n                array will be released by the CFRunLoop upon return.  Incoming results do not include previous results,\n                only the most recent results are returned.  inResults can be NULL if an error occurs or the query is complete.  If \n                inError and inResults are NULL then the query has completed.\n*/\ntypedef void (*ODQueryCallback)(ODQueryRef query, CFArrayRef results, CFErrorRef error, void *context);\n\n__BEGIN_DECLS\n\n/*!\n    @function   ODQueryGetTypeID\n    @abstract   Standard GetTypeID function support for CF-based objects\n    @discussion Returns the typeID for the ODQuery object\n    @result     a valid CFTypeID for the ODQuery object\n*/\nCF_EXPORT\nCFTypeID ODQueryGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODQueryCreateWithNode\n    @abstract   Creates a query with the node using the parameters provided\n    @discussion Creates a query with the node using the supplied query parameters.  Some parameters can either be CFString or\n                CFData or a CFArray of either CFString or CFData.\n    @param      allocator a memory allocator to use for this object\n    @param      node an ODNodeRef to use\n    @param      recordTypeOrList a CFString of a type or CFArray with a list of record types\n    @param      attribute a CFStringRef of the attribute name to query\n    @param      matchType an ODMatchType value that signifies the type of query\n    @param      queryValueOrList a CFStringRef, CFDataRef or CFArrayRef of either type for values to query in attribute\n    @param      returnAttributeOrList a CFStringRef or CFArrayRef of CFStrings with the list of attributes to be returned\n                from the query.  Passing NULL is equivalent to passing kODAttributeTypeStandardOnly.\n    @param      maxResults a CFIndex of the total number of values the caller wants to be returned\n    @param      error an optional CFErrorRef reference for error details\n    @result     an ODQueryRef which should be passed into ODQueryCopyResults for immediate results or\n                ODQueryScheduleWithRunLoop for background behavior\n*/\nCF_EXPORT\nODQueryRef ODQueryCreateWithNode(CFAllocatorRef allocator, ODNodeRef node, CFTypeRef recordTypeOrList, ODAttributeType attribute, ODMatchType matchType, CFTypeRef queryValueOrList, CFTypeRef returnAttributeOrList, CFIndex maxResults, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODQueryCreateWithNodeType\n    @abstract   Creates a query object that is initialized to a particular node type.\n    @discussion Creates a query object that is initialized to a particular node type using the supplied\n                query options.\n    @param      allocator a memory allocator to use for this object\n    @param      nodeType an ODNodeType to use when doing a query\n    @param      recordTypeOrList a ODRecordType of a type or CFArray with a list of record types\n    @param      attribute a ODAttributeType or CFStringRef of the attribute name to query\n    @param      matchType an ODMatchType value that signifies the type of query\n    @param      queryValueOrList a CFStringRef, CFDataRef or CFArrayRef of either type for values to query in attribute\n    @param      returnAttributeOrList a CFStringRef or CFArrayRef of CFStrings with the list of attributes to be returned\n                from the query.  Passing NULL is equivalent to passing kODAttributeTypeStandardOnly.\n    @param      maxResults a CFIndex of the total number of values the caller wants to be returned\n    @param      error an optional CFErrorRef reference for error details\n    @result     an ODQueryRef which should be passed into ODQueryCopyResults for immediate results or\n                ODQueryScheduleWithRunLoop for background behavior, see ODQueryCallback for details on RunLoop\n                behavior.\n*/\nCF_EXPORT\nODQueryRef ODQueryCreateWithNodeType(CFAllocatorRef allocator, ODNodeType nodeType, CFTypeRef recordTypeOrList, ODAttributeType attribute, ODMatchType matchType, CFTypeRef queryValueOrList, CFTypeRef returnAttributeOrList, CFIndex maxResults, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODQueryCopyResults\n    @abstract   Returns results from a provided ODQueryRef synchronously\n    @discussion Returns results from a provided ODQueryRef synchronously.  Passing false to inAllowPartialResults\n                will block the call until all results are returned or an error occurs.  true can be passed at any time\n                even if previous calls were made with false.\n    @param      query an ODQueryRef to use\n    @param      allowPartialResults a bool, passing true to retrieve any currently available results, or false to\n                wait for all results\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFArrayRef comprised of ODRecord objects.  If partial results were requested but are complete, then\n                NULL will be returned with outError set to NULL. If an error occurs, NULL will be returned and \n                outError should be checked accordingly.\n*/\nCF_EXPORT\nCFArrayRef ODQueryCopyResults(ODQueryRef query, bool allowPartialResults, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODQuerySynchronize\n    @abstract   Will dispose of any results and restart the query.\n    @discussion Will dispose of any results and restart the query for subsequent ODQueryCopyResults.  If the query\n                is currently scheduled on a RunLoop, then the callback function will be called with inResults == NULL and\n                inError.error == kODErrorQuerySynchronize and inError.domain == kODErrorDomainFramework, signifying that\n                all existing results should be thrown away in preparation for new results.\n    @param      query an ODQueryRef to use\n*/\nCF_EXPORT\nvoid ODQuerySynchronize(ODQueryRef query) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODQuerySetCallback\n    @abstract   This call is used to set the callback function for an asynchronous query\n    @discussion This call is used to set the callback function for an asynchronous query, using a\n                CFRunLoop or a dispatch queue.\n    @param      query an ODQueryRef to use\n    @param      callback a function to call when a query has results to return\n    @param      userInfo a user-defined pointer to be passed back to the Query callback function\n*/\nCF_EXPORT\nvoid ODQuerySetCallback(ODQueryRef query, ODQueryCallback callback, void *userInfo) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODQueryScheduleWithRunLoop\n    @abstract   Allows a query to run off of a runloop, though it will spawn a thread to handle the work\n    @discussion Allows a query to run off of a runloop, though it will spawn a thread to handle the work.\n                When query is complete or stopped the callback function will be called with NULL results \n                and inError set to NULL.  ODQueryUnscheduleFromRunLoop() must be called to remove this query\n                from Runloops if necessary.\n    @param      query an ODQueryRef to put on the runloop\n    @param      runLoop a CFRunLoopRef to put the ODQueryRef source onto\n    @param      runLoopMode a CFStringRef with the runloop mode to add the ODQueryRef to\n*/\nCF_EXPORT\nvoid ODQueryScheduleWithRunLoop(ODQueryRef query, CFRunLoopRef runLoop, CFStringRef runLoopMode) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODQueryUnscheduleFromRunLoop\n    @abstract   Removes the ODQueryRef from the provided runloop\n    @discussion Removes the ODQueryRef from the provided runloop\n    @param      query an ODQueryRef to remove from the runloop\n    @param      runLoop a CFRunLoopRef to remove the ODQuery source from\n    @param      runLoopMode a CFStringRef of the mode to remove the ODQuery from\n*/\nCF_EXPORT\nvoid ODQueryUnscheduleFromRunLoop(ODQueryRef query, CFRunLoopRef runLoop, CFStringRef runLoopMode) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODQuerySetDispatchQueue\n    @abstract   Performs the query and sends the results using the specified dispatch queue\n    @discussion Schedule the query to run and deliver its results using the specified dispatch queue.\n                The previously set callback will be called using the same semantics as\n                ODQueryScheduleWithRunLoop\n    @param      query an ODQueryRef to perform\n    @param      queue a dispatch queue to receive the query results\n*/\nCF_EXPORT\nvoid ODQuerySetDispatchQueue(ODQueryRef query, dispatch_queue_t queue) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n__END_DECLS\n\n#endif /* ! __OPENDIRECTORY_CFODQUERY__ */\n"
  },
  {
    "path": "src/OpenDirectoryOld/CFOpenDirectory/Headers/CFODRecord.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#if !defined(__OPENDIRECTORY_CFODRECORD__)\n#define __OPENDIRECTORY_CFODRECORD__\n\n#include <CFOpenDirectory/CFOpenDirectory.h>\n\n__BEGIN_DECLS\n\n/*!\n    @function   ODRecordGetTypeID\n    @abstract   Standard GetTypeID function support for CF-based objects\n    @discussion Returns the typeID for the ODRecord object\n    @result     a valid CFTypeID for the ODRecord object\n*/\nCF_EXPORT\nCFTypeID ODRecordGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSetNodeCredentials\n    @abstract   Similar to calling ODNodeSetCredentials except credentials are only set for this particular record's node\n    @discussion Sets the credentials if necessary on the ODNodeRef referenced by this ODRecordRef.  Very similar to\n                calling ODNodeSetCredentials except other records referencing the underlying ODNodeRef will not get\n                authenticated, therefore inadvertant changes cannot occur.  If all records referencing a particular \n                ODNodeRef need to be updated, then use ODNodeSetCredentials on the original ODNodeRef instead.  If the\n                ODNodeRef is already authenticated with the same name and password, this will be a NOOP call.  The original\n                ODNodeRef held by an ODRecordRef will be released and a new ODNodeRef will be created when the credentials\n                are set for this ODRecordRef.  Calling this on multiple records could result in multiple References into the \n                OpenDirectory daemon, which could cause errors logged into /var/log/system.log if a threshold is reached.\n    @param      record an ODRecordRef to use\n    @param      username a CFStringRef of the username used to authenticate\n    @param      password a CFStringRef of the password used to authenticate\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details.  Upon failure the original node\n                will still be intact.\n*/\nCF_EXPORT\nbool ODRecordSetNodeCredentials(ODRecordRef record, CFStringRef username, CFStringRef password, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSetNodeCredentialsExtended\n    @abstract   Similar to calling ODNodeSetCredentialsExtended except credentials are only set for this particular record's\n                node\n    @discussion Allows the caller to use other types of authentications that are available in Open Directory, that may\n                require response-request loops, etc.  Not all OD plugins will support this call, look for \n                kODErrorCredentialsMethodNotSupported in outError.  Same behavior as ODRecordSetNodeCredentials.\n    @param      record an ODRecordRef to use\n    @param      recordType a ODRecordTypeRef of the type of record to do the authentication with\n    @param      authType a ODAuthenticationTypeRef of the type of authentication to be used (e.g., kDSStdAuthNTLMv2)\n    @param      authItems a CFArrayRef of CFData or CFString items that will be sent in order to the auth process\n    @param      outAuthItems a pointer to CFArrayRef that will be assigned to a CFArrayRef of CFData items if the\n                call returned any values followup values\n    @param      outContext a pointer to ODContextRef if the call requires further calls for response-request auths.\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool will be returned with the result of the operation and outAuthItems set with response items\n                and outContext set for any needed continuation.  Upon failure the original node will still be intact.\n*/\nCF_EXPORT\nbool ODRecordSetNodeCredentialsExtended(ODRecordRef record, ODRecordType recordType, ODAuthenticationType authType, CFArrayRef authItems, CFArrayRef *outAuthItems, ODContextRef *outContext, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSetNodeCredentialsUsingKerberosCache\n    @abstract   Unsupported function.\n    @discussion Unsupported function.\n*/\nCF_EXPORT\nbool ODRecordSetNodeCredentialsUsingKerberosCache(ODRecordRef record, CFStringRef cacheName, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_7, __IPHONE_NA, __IPHONE_NA);\n\n/*!\n    @function   ODRecordCopyPasswordPolicy\n    @abstract   Returns a CFDictionaryRef of the effective policy for the user if available\n    @discussion Returns a CFDictionaryRef of the effective policy for the user if available\n    @param      allocator a CFAllocatorRef to use\n    @param      record an ODRecordRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDictionaryRef of the password policies for the supplied record, or NULL if no policy set\n*/\nCF_EXPORT\nCFDictionaryRef ODRecordCopyPasswordPolicy(CFAllocatorRef allocator, ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_6, __MAC_10_9, __IPHONE_NA, __IPHONE_NA, \"use ODRecordCopyEffectivePolicies\");\n\n/*!\n    @function   ODRecordVerifyPassword\n    @abstract   Verifies the password provided is valid for the record\n    @discussion Verifies the password provided is valid for the record.\n    @param      record an ODRecordRef to use\n    @param      password a CFStringRef of the password that is being verified\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details\n*/\nCF_EXPORT\nbool ODRecordVerifyPassword(ODRecordRef record, CFStringRef password, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordVerifyPasswordExtended\n    @abstract   Allows use of other Open Directory types of authentications to verify a record password\n    @discussion Allows the caller to use other types of authentications that are available in Open Directory, that may \n                require response-request loops, etc.\n    @param      record an ODRecordRef to use\n    @param      authType a ODAuthenticationTypeRef of the type of authentication to be used (e.g., kODAuthenticationTypeCRAM_MD5)\n    @param      authItems a CFArrayRef of CFData or CFString items that will be sent in order to the auth process\n    @param      outAuthItems a pointer to CFArrayRef that will be assigned to a CFArrayRef of CFData items if the\n                call returned any values followup values\n    @param      outContext a pointer to ODContextRef if the call requires further calls for response-request auths.\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool will be returned with the result of the operation and outAuthItems set with response items\n                and outContext set for any needed continuation.  Some ODNodes may not support the call so an error of\n                eNotHandledByThisNode or eNotYetImplemented may be returned.\n*/\nCF_EXPORT\nbool ODRecordVerifyPasswordExtended(ODRecordRef record, ODAuthenticationType authType, CFArrayRef authItems, CFArrayRef *outAuthItems, ODContextRef *outContext, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordChangePassword\n    @abstract   Changes the password of an ODRecord\n    @discussion Changes the password of an ODRecord.  If NULL is passed into inOldPassword, then an attempt to set\n                the password will be tried.  If changing a password, then both old and new passwords should be supplied.\n    @param      record an ODRecordRef to use\n    @param      oldPassword a CFString of the record's old password (NULL is optional).\n    @param      newPassword a CFString of the record's new password\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details\n*/\nCF_EXPORT\nbool ODRecordChangePassword(ODRecordRef record, CFStringRef oldPassword, CFStringRef newPassword, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordGetRecordType\n    @abstract   Returns the record type of an ODRecordRef\n    @discussion Returns the record type of an ODRecordRef\n    @param      record an ODRecordRef to use\n    @result     a CFStringRef of the record type for this ODRecordRef\n*/\nCF_EXPORT\nCFStringRef ODRecordGetRecordType(ODRecordRef record) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordGetRecordName\n    @abstract   Returns the official record name of an ODRecordRef\n    @discussion Returns the official record name of an ODRecordRef which typically corresponds to the first value\n                of the kODAttributeTypeRecordName attribute, but not always.  This name should be a valid name in either case.\n    @param      record an ODRecordRef to use\n    @result     a CFStringRef of the record name for this ODRecordRef\n*/\nCF_EXPORT\nCFStringRef ODRecordGetRecordName(ODRecordRef record) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordCopyValues\n    @abstract   Returns the value of an attribute as an array of CFStringRef or CFDataRef types\n    @discussion Returns the value of an attribute as an array of CFStringRef or CFDataRef, depending on\n                whether the data is Binary or not.  If the value has been fetched from the directory previously\n                a copy of the internal storage will be returned without going to the directory.  If it has not been fetched\n                previously, then it will be fetched at that time.\n    @param      record an ODRecordRef to use\n    @param      attribute a CFStringRef or ODAttributeType of the attribute (e.g., kODAttributeTypeRecordName, etc.)\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFArrayRef of the attribute requested if possible, or NULL if the attribute doesn't exist\n*/\nCF_EXPORT\nCFArrayRef ODRecordCopyValues(ODRecordRef record, ODAttributeType attribute, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSetValue\n    @abstract   Will take a CFDataRef or CFStringRef or a CFArrayRef of either type and set it for the attribute\n    @discussion Will take a CFDataRef or CFStringRef or a CFArrayRef of either type and set it for the attribute.\n                Any mixture of the types CFData and CFString are accepted.\n    @param      record an ODRecordRef to use\n    @param      attribute a CFStringRef of the attribute for values to be added too\n    @param      valueOrValues a CFArrayRef of CFStringRef or CFDataRef types or either of the individual types, passing\n                an empty CFArray deletes the attribute.  The underlying implementation will do this in the most efficient manner,\n                either by adding only new values or completely replacing the values depending on the capabilities of the\n                particular plugin.\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details\n*/\nCF_EXPORT\nbool ODRecordSetValue(ODRecordRef record, ODAttributeType attribute, CFTypeRef valueOrValues, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordAddValue\n    @abstract   Adds a value to an attribute\n    @discussion Adds a value to an attribute.\n    @param      record an ODRecordRef to use\n    @param      attribute a CFStringRef of the attribute for values to be added too\n    @param      value a CFTypeRef of the value to be added to the attribute, either CFStringRef or CFDataRef\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details\n*/\nCF_EXPORT\nbool ODRecordAddValue(ODRecordRef record, ODAttributeType attribute, CFTypeRef value, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordRemoveValue\n    @abstract   Removes a particular value from an attribute.\n    @discussion Removes a particular value from an attribute.\n    @param      record an ODRecordRef to use\n    @param      attribute a CFStringRef of the attribute to remove the value from\n    @param      value a CFTypeRef of the value to be removed from the attribute.  Either CFStringRef or CFDataRef.\n                If the value does not exist, true will be returned and no error will be set.\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details\n*/\nCF_EXPORT\nbool ODRecordRemoveValue(ODRecordRef record, ODAttributeType attribute, CFTypeRef value, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordCopyDetails\n    @abstract   Returns the attributes and values in the form of a key-value pair set for this record.\n    @discussion Returns the attributes and values in the form of a key-value pair set for this record.  The key is a \n                CFStringRef or ODAttributeType of the attribute name (e.g., kODAttributeTypeRecordName, etc.) and the \n                value is an CFArrayRef of either CFDataRef or CFStringRef depending on the type of data.  Binary data will\n                be returned as CFDataRef.\n    @param      record an ODRecordRef to use\n    @param      attributes a CFArrayRef of attributes.  If an attribute has not been fetched previously, it will be\n                fetched in order to return the value.  If this parameter is NULL then all currently fetched attributes \n                will be returned.\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDictionaryRef of the attributes for the record\n*/\nCF_EXPORT\nCFDictionaryRef ODRecordCopyDetails(ODRecordRef record, CFArrayRef attributes, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSynchronize\n    @abstract   Synchronizes the record from the Directory in order to get current data and commit pending changes\n    @discussion Synchronizes the record from the Directory in order to get current data.  Any previously fetched attributes\n                will be refetched from the Directory.  This will not refetch the entire record, unless the entire record\n                has been accessed.  Additionally, any changes made to the record will be committed to the directory\n                if the node does not do immediate commits.\n    @param      record an ODRecordRef to use\n    @param      error an optional CFErrorRef reference for error details\n*/\nCF_EXPORT\nbool ODRecordSynchronize(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordDelete\n    @abstract   Deletes the record from the node and invalidates the record.\n    @discussion Deletes the record from the node and invalidates the record.  The ODRecordRef should be\n                released after deletion.\n    @param      record an ODRecordRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details\n*/\nCF_EXPORT\nbool ODRecordDelete(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordAddMember\n    @abstract   Will add the record as a member of the group record that is provided\n    @discussion Will add the record as a member of the group record that is provided in an appopriate manner \n                based on what the directory will store.  An error will be returned if the record is not a group record.  \n                Additionally, if the member record is not an appropriate type allowed as part of a group an\n                error will be returned.\n    @param      group an ODRecordRef of the group record to modify\n    @param      member an ODRecordRef of the record to add to the group record\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details\n*/\nCF_EXPORT\nbool ODRecordAddMember(ODRecordRef group, ODRecordRef member, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordRemoveMember\n    @abstract   Will remove the record as a member from the group record that is provided\n    @discussion Will remove the record as a member from the group record that is provided.  If the record type\n                of group is not a Group, false will be returned with an appropriate error.\n    @param      group an ODRecordRef of the group record to modify\n    @param      member an ODRecordRef of the record to remove from the group record\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true on success, otherwise outError can be checked for details\n*/\nCF_EXPORT\nbool ODRecordRemoveMember(ODRecordRef group, ODRecordRef member, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordContainsMember\n    @abstract   Will use membership APIs to resolve group membership based on Group and Member record combination\n    @discussion Will use membership APIs to resolve group membership based on Group and Member record combination.\n                This API does not check attributes values directly, instead uses system APIs to deal with nested\n                memberships.\n    @param      group an ODRecordRef of the group to be checked for membership\n    @param      member an ODRecordRef of the member to be checked against the group\n    @param      error an optional CFErrorRef reference for error details\n    @result     returns true or false depending on result\n*/\nCF_EXPORT\nbool ODRecordContainsMember(ODRecordRef group, ODRecordRef member, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODRecordCopyPolicies\n    @abstract   This will copy any policies configured for the record.\n    @discussion This will copy any policies configured for the record.\n    @param      record an ODRecordRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDictionaryRef containing all currently configured policies\n*/\nCF_EXPORT\nCFDictionaryRef ODRecordCopyPolicies(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODRecordCopyAccountPolicies\");\n\n/*!\n    @function   ODRecordCopyEffectivePolicies\n    @abstract   This will copy the effective policies for the record (merging any node-level policies).\n    @discussion This will copy the effective policies for the record (merging any node-level policies).\n    @param      record an ODRecordRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDictionaryRef containing all currently configured policies (merging any node-level policies)\n*/\nCF_EXPORT\nCFDictionaryRef ODRecordCopyEffectivePolicies(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODRecordAuthenticationAllowed and similar functions\");\n\n/*!\n    @function   ODRecordCopySupportedPolicies\n    @abstract   This will return a dictionary of supported policies.\n    @discussion This will return a dictionary of supported policies, if appropriate, the value will be the maximum value allowed\n                for the policy in question.  For example, if password history is available, it will state how much history is\n                supported.\n    @param      record an ODRecordRef to use\n    @param      error an optional CFErrorRef reference for error details\n    @result     a CFDictionaryRef containing all currently supported policies\n*/\nCF_EXPORT\nCFDictionaryRef ODRecordCopySupportedPolicies(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSetPolicies\n    @abstract   This will set the policy for the record.\n    @discussion This will set the policy for the record.  Policies are evaluated in combination with node-level policies.\n    @param      record an ODRecordRef to use\n    @param      policies a CFDictionary of policies to be set\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool which signifies if the policy set succeeded, otherwise error is set. \n*/\nCF_EXPORT\nbool ODRecordSetPolicies(ODRecordRef record, CFDictionaryRef policies, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODRecordSetAccountPolicies\");\n\n/*!\n    @function   ODRecordSetPolicy\n    @abstract   This will set a specific policy setting for the record.\n    @discussion This will set a specific policy setting for the record.\n    @param      record an ODRecordRef to use\n    @param      policy a valid ODPolicyType\n    @param      value a CFTypeRef to be set (should be of appropriate type for the policy)\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool which signifies if the policy set succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODRecordSetPolicy(ODRecordRef record, ODPolicyType policy, CFTypeRef value, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODRecordAddAccountPolicy\");\n\n/*!\n    @function   ODRecordRemovePolicy\n    @abstract   This will remove a specific policy setting from the record.\n    @discussion This will remove a specific policy setting from the record.\n    @param      record an ODRecordRef to use\n    @param      policy a valid ODPolicyType\n    @param      error an optional CFErrorRef reference for error details\n    @result     a bool which signifies if the policy removal succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODRecordRemovePolicy(ODRecordRef record, ODPolicyType policy, CFErrorRef *error) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use ODRecordRemoveAccountPolicy\");\n\n/*!\n    @function   ODRecordAddAccountPolicy\n    @abstract   This will add an account policy to the record for the specified category.\n    @discussion This will add an account policy to the record for the specified category.\n                The node-level and record-level policies will be combined and\n\t\t\t\tevaluated as appropriate, ensuring the strongest policy is enforced.\n    @param      record an ODRecordRef to use.\n    @param      policy a dictionary containing the specific policy to be added.\n                The dictionary may contain the following keys:\n                    kODPolicyKeyIdentifier a required key identifying the policy.\n                    kODPolicyKeyParameters an optional key containing a dictionary of\n                        parameters that can be used for informational purposes or in\n                        the policy format string.\n                    kODPolicyKeyContent a required key specifying the policy,\n                        from which a predicate will be created for evaluating\n                        the policy.\n    @param      category a valid ODPolicyCategoryType to which the policy will be added.\n    @param      error is an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the policy addition succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODRecordAddAccountPolicy(ODRecordRef record, CFDictionaryRef policy, ODPolicyCategoryType category, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordRemoveAccountPolicy\n    @abstract   This will remove an account policy from the record for the specified category.\n    @discussion This will remove an account policy from the record for the specified category.\n    @param      record an ODRecordRef to use.\n    @param      policy a dictionary containing the specific policy to be\n                removed, with the same format as described in ODRecordAddAccountPolicy.\n    @param      category a valid ODPolicyCategoryType from which the policy will be removed.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the policy removal succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODRecordRemoveAccountPolicy(ODRecordRef record, CFDictionaryRef policy, ODPolicyCategoryType category, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSetAccountPolicies\n    @abstract   This will set the policies for the record.\n    @discussion This will set the policies for the record, replacing any\n                existing policies.  All of the policies in the set will be\n                applied to the record when policies are evaluated.\n    @param      record an ODRecordRef to use.\n    @param      policies a dictionary containing all of the policies to be set\n                for the node.  The dictionary may contain the following keys:\n                    kODPolicyCategoryAuthentication an optional key with a value\n                        of an array of policy dictionaries that specify when\n                        authentications should be allowed.\n                    kODPolicyCategoryPasswordContent an optional key with a\n                        value of an array of policy dictionaries the specify the\n                        required content of passwords. \n                    kODPolicyCategoryPasswordChange an optional key with a value\n                    of an array of policy dictionaries that specify when\n                    passwords are required to be changed.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the policy set succeeded, otherwise error is set.\n*/\nCF_EXPORT\nbool ODRecordSetAccountPolicies(ODRecordRef record, CFDictionaryRef policies, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordCopyAccountPolicies\n    @abstract   This will copy any policies configured for the record.\n    @discussion This will copy any policies configured for the record.  Does not\n                copy any policies set for the node.\n    @param      record an ODRecordRef to use.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a CFDictionaryRef containing all currently set policies.  The\n                format of the dictionary is the same as described in\n                ODRecordSetAccountPolicies(). \n*/\nCF_EXPORT CF_RETURNS_RETAINED\nCFDictionaryRef ODRecordCopyAccountPolicies(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordAuthenticationAllowed\n    @abstract   Determines if policies allow the account to authenticate.\n    @discussion Determines if policies allow the account to authenticate.\n                Authentication and password change policies are evaluated.\n                Record-level and node-level policies are evaluated in\n                combination, with record-level taking precedence over node-level\n                policies.  The failure of any single policy will deny the\n                authentication.\n \n                This check is only definitive at the time it was requested. The\n                policy or the environment could change before the authentication\n                is actually requested.  Errors from the authentication request\n                should be consulted.\n\n                It is not necessary to call this function when callingg\n                ODRecordVerifyPassword or ODRecordVerifyPasswordExtended\n                since those functions perform same policy evaluation.\n\n    @param      record an ODRecordRef to use.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the authentication is allowed, otherwise error is set.\n */\nCF_EXPORT\nbool ODRecordAuthenticationAllowed(ODRecordRef record, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordPasswordChangeAllowed\n    @abstract   Determines if policies allow the password change.\n    @discussion Determines if policies allow the password change.  Password\n                content policies are evaluated. Record-level and node-level\n                policies are evaluated in combination, with record-level taking\n                precedence over node-level policies.  The failure of any single\n                policy will deny the password change.\n \n                This check is only definitive at the time it was requested. The\n                policy or the environment could change before the password change\n                is actually requested.  Errors from the password change request\n                should be consulted.\n\n    @param      record an ODRecordRef to use.\n    @param      newPassword contains the password to be evaluated.\n    @param      error an optional CFErrorRef reference for error details.\n    @result     a bool which signifies if the password change is allowed, otherwise error is set.\n */\nCF_EXPORT\nbool ODRecordPasswordChangeAllowed(ODRecordRef record, CFStringRef newPassword, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordWillPasswordExpire\n    @abstract   Determines if the password will expire within the specified time.\n    @discussion Determines if the password will expire (i.e. need to be changed)\n                between now and the specified number of seconds in the future. \n                Record-level and node-level policies are evaluated\n                together, with record-level taking precedence over node-level\n                policies.\n    @param      record an ODRecordRef to use.\n    @param      willExpireIn the number of seconds from the current time to be\n                used as the upper-bound for the password expiration period.\n    @result     a bool which signifies if the password will expire within the\n                specified time.\n */\nCF_EXPORT\nbool ODRecordWillPasswordExpire(ODRecordRef record, uint64_t willExpireIn) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordWillAuthenticationsExpire\n    @abstract   Determines if authentications will expire within the specified time.\n    @discussion Determines if authentications will expire (i.e. session and/or\n                account expires) between now and the specified number of seconds\n                in the future.  Record-level and node-level policies are evaluated\n                together, with record-level taking precedence over node-level\n                policies. \n    @param      record an ODRecordRef to use.\n    @param      willExpireIn the number of seconds from the current time to be\n                used as the upper-bound for the authentication expiration period.\n    @result     a bool which signifies if authentications will expire within the\n                specified time.\n */\nCF_EXPORT\nbool ODRecordWillAuthenticationsExpire(ODRecordRef record, uint64_t willExpireIn) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSecondsUntilPasswordExpires\n    @abstract   Determines how many seconds until the password expires.\n    @discussion Determines how many seconds until the password expires (i.e.\n                needs changing).  Password change policies are evaluated.\n                Record-level and node-level policies are evaluated in\n                combination, with record-level taking precedence over node-level\n                policies. \n    @param      record an ODRecordRef to use.\n    @result     the number of seconds until the password expires.  If multiple\n                policies will cause the password to expire, the soonest\n                expiration time is returned.  If already expired,\n                kODExpirationTimeExpired is returned.  If there are no password\n                change policies, kODExpirationTimeNeverExpires is returned. \n */\nCF_EXPORT\nint64_t ODRecordSecondsUntilPasswordExpires(ODRecordRef record) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   ODRecordSecondsUntilAuthenticationsExpire\n    @abstract   Determines how many seconds until authentications expire.\n    @discussion Determines how many seconds until authentications expire (i.e.\n                session and/or account expires). Record-level and node-level \n                policies are evaluated together, with record-level taking \n                precedence over node-level policies\n    @param      record an ODRecordRef to use.\n    @result     the number of seconds until authentications expire.  If multiple\n                policies will cause authentications to expire, the soonest\n                expiration time is returned. If already expired,\n                kODExpirationTimeExpired is returned.  If there are no\n                authentication policies controlling expiration,\n                kODExpirationTimeNeverExpires is returned.  \n */\nCF_EXPORT\nint64_t ODRecordSecondsUntilAuthenticationsExpire(ODRecordRef record) __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n__END_DECLS\n\n#endif /* ! __OPENDIRECTORY_CFODRECORD__ */\n"
  },
  {
    "path": "src/OpenDirectoryOld/CFOpenDirectory/Headers/CFODSession.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#if !defined(__OPENDIRECTORY_CFODSESSION__)\n#define __OPENDIRECTORY_CFODSESSION__\n\n#include <CFOpenDirectory/CFOpenDirectory.h>\n\n/*!\n    @const      kODSessionDefault\n    @abstract   is the default type of ODSessionRef used if there is no need to create a specific reference\n    @discussion is the default type of ODSessionRef used if there is no need to create a specific reference\n*/\nCF_EXPORT\nODSessionRef kODSessionDefault __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n__BEGIN_DECLS\n\n/*!\n    @function\tODSessionGetTypeID\n    @abstract   Standard GetTypeID function support for CF-based objects\n    @discussion Returns the typeID for ODSession objects\n    @result     a valid CFTypeID for the ODSession object\n*/\nCF_EXPORT\nCFTypeID ODSessionGetTypeID(void) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODSessionCreate\n    @abstract   Creates an ODSession object to be passed to ODNode functions\n    @discussion Creates an ODSession object to be passed to ODNode functions.\n    @param      allocator a memory allocator to use for this object\n    @param      options a CFDictionary of options associated with this ODSession.  This is typically NULL\n                unless caller needs to proxy to another host.  \n \n                If proxy is required then a dictionary with keys should be:\n                            Key                             Value\n                    kODSessionProxyAddress        CFString(hostname or IP)\n                    kODSessionProxyPort           CFNumber(IP port, should not be set as it will default)\n                    kODSessionProxyUsername       CFString(username)\n                    kODSessionProxyPassword       CFString(password)\n    @param      error an optional CFErrorRef reference for error details\n    @result     a valid ODSessionRef object or NULL if it cannot be created. Pass reference to CFErrorRef to\n                get error details\n*/\nCF_EXPORT\nODSessionRef ODSessionCreate(CFAllocatorRef allocator, CFDictionaryRef options, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @function   ODSessionCopyNodeNames\n    @abstract   Returns the node names that are registered on this ODSession\n    @discussion Returns the node names that are registered on this ODSession\n    @param      allocator a memory allocator to use for this object\n    @param      session an ODSessionRef, either kODSessionDefault or a valid ODSessionRef can be passed\n    @param      error an optional CFErrorRef reference for error details\n    @result     a valid CFArrayRef of node names that can be opened on the session reference\n*/\nCF_EXPORT\nCFArrayRef ODSessionCopyNodeNames(CFAllocatorRef allocator, ODSessionRef session, CFErrorRef *error) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n__END_DECLS\n\n#endif /* !__OPENDIRECTORY_CFODSESSION__ */\n"
  },
  {
    "path": "src/OpenDirectoryOld/CFOpenDirectory/Headers/CFOpenDirectory.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#if !defined(__OPENDIRECTORY_CFOPENDIRECTORY__)\n#define __OPENDIRECTORY_CFOPENDIRECTORY__ 1\n\n#include <CoreFoundation/CoreFoundation.h>\n\n/*!\n    @typedef    ODContextRef\n    @abstract   Opaque reference for the ODContext object\n*/\ntypedef const struct __ODContext *ODContextRef;\n\n/*!\n    @typedef    ODNodeRef\n    @abstract   Opaque reference for the ODNode object\n*/\ntypedef struct __ODNode *ODNodeRef;\n\n/*!\n    @typedef    ODQueryRef\n    @abstract   Opaque reference for the ODQuery object\n*/\ntypedef struct __ODQuery *ODQueryRef;\n\n/*!\n    @typedef    ODRecordRef\n    @abstract   Opaque reference for the ODRecord object\n*/\ntypedef struct __ODRecord *ODRecordRef;\n\n/*!\n    @typedef\tODSessionRef\n    @abstract   Opaque reference for ODSession object\n*/\ntypedef struct __ODSession *ODSessionRef;\n\n/*!\n    @const      kODErrorDomainFramework\n    @abstract   the error domain for OpenDirectory.framework details\n    @discussion the error domain for OpenDirectory.framework details\n*/\nCF_EXPORT\nconst CFStringRef kODErrorDomainFramework __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n#include <CFOpenDirectory/CFOpenDirectoryConstants.h>\n\n#include <CFOpenDirectory/CFODContext.h>\n#include <CFOpenDirectory/CFODNode.h>\n#include <CFOpenDirectory/CFODQuery.h>\n#include <CFOpenDirectory/CFODRecord.h>\n#include <CFOpenDirectory/CFODSession.h>\n\n#endif /* ! __OPENDIRECTORY_CFOPENDIRECTORY__ */\n"
  },
  {
    "path": "src/OpenDirectoryOld/CFOpenDirectory/Headers/CFOpenDirectoryConstants.h",
    "content": "/*\n * Copyright (c) 2009-2011 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#if !defined(__ODCONSTANTS_H)\n#define __ODCONSTANTS_H\n\n/*!\n    @const      kODSessionProxyAddress\n    @abstract   the address to connect to via proxy, used when making the options dictionary\n    @discussion the address to connect to via proxy, used when making the options dictionary\n*/\nCF_EXPORT\nconst CFStringRef kODSessionProxyAddress __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @const      kODSessionProxyPort\n    @abstract   the port to connect to via proxy, used when making the options dictionary\n    @discussion the port to connect to via proxy, used when making the options dictionary.  This parameter\n                is optional and should not be passed normally.\n*/\nCF_EXPORT\nconst CFStringRef kODSessionProxyPort __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @const      kODSessionProxyUsername\n    @abstract   the username to connect with via proxy, used when making the options dictionary\n    @discussion the username to connect with via proxy, used when making the options dictionary\n*/\nCF_EXPORT\nconst CFStringRef kODSessionProxyUsername __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @const      kODSessionProxyPassword\n    @abstract   the password to connect with via proxy, used when making the options dictionary\n    @discussion the password to connect with via proxy, used when making the options dictionary\n*/\nCF_EXPORT\nconst CFStringRef kODSessionProxyPassword __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n @const      kODModuleConfigOptionQueryTimeout\n @abstract   number of seconds before a query times out\n @discussion number of seconds before a query times out\n */\nCF_EXPORT\nconst CFStringRef kODModuleConfigOptionQueryTimeout __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n/*!\n @const      kODModuleConfigOptionConnectionSetupTimeout\n @abstract   number of seconds before a connection attempt times out\n @discussion number of seconds before a connection attempt times out\n */\nCF_EXPORT\nconst CFStringRef kODModuleConfigOptionConnectionSetupTimeout __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n/*!\n @const      kODModuleConfigOptionConnectionIdleDisconnect\n @abstract   number of seconds before a connection is idle disconnected\n @discussion number of seconds before a connection is idle disconnected\n */\nCF_EXPORT\nconst CFStringRef kODModuleConfigOptionConnectionIdleDisconnect __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n/*!\n @const      kODModuleConfigOptionPacketSigning\n @abstract   enable or disable packet signing\n @discussion number of seconds before a query times out\n */\nCF_EXPORT\nconst CFStringRef kODModuleConfigOptionPacketSigning __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n/*!\n @const      kODModuleConfigOptionPacketEncryption\n @abstract   enable or disable packet encryption\n @discussion enable or disable packet encryption\n */\nCF_EXPORT\nconst CFStringRef kODModuleConfigOptionPacketEncryption __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n/*!\n @const      kODModuleConfigOptionManInTheMiddle\n @abstract   enable or disable man-in-middle countermeasures\n @discussion enable or disable man-in-middle countermeasures\n */\nCF_EXPORT\nconst CFStringRef kODModuleConfigOptionManInTheMiddle __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n/*!\n\t@enum\t\tODNodeType\n\t@abstract   Types of nodes that can be opened\n\t@discussion Various types of nodes that can be opened.\n\t@constant   kODNodeTypeAuthentication is a node type commonly used for all authentications or record lookups\n\t@constant   kODNodeTypeContacts is a node type commonly used for applications that deal with contact data\n\t@constant   kODNodeTypeNetwork is a node type used for looking for network resource type data\n\t@constant   kODNodeTypeLocalNodes is a node type that specifically looks at the local directory\n\t@constant   kODNodeTypeConfigure is a node type that refers to the configuration node within DS\n*/\nenum\n{\n\tkODNodeTypeAuthentication\t\t\t= 0x2201,\n\tkODNodeTypeContacts\t\t\t\t\t= 0x2204,\n\tkODNodeTypeNetwork\t\t\t\t\t= 0x2205, /* deprecated, behaves identically to kODNodeTypeAuthentication */\n\t\n\tkODNodeTypeLocalNodes\t\t\t\t= 0x2200,\n\tkODNodeTypeConfigure   \t\t\t\t= 0x2202\n};\ntypedef uint32_t ODNodeType;\n\n/*!\n    @const      kODNodeOptionsQuerySkippedSubnode\n    @abstract   Used with nodes that support options.\n    @discussion Passed in an options dictionary where the value is a boolean (kCFBooleanTrue/kCFBooleanFalse).\n                If a node supports the option it will notify the client when a subnode is skipped during queries.\n                Supported options are listed in node details under kODAttributeTypeNodeOptions.  Node may fail to\n                open if unsupported options are used.\n */\nCF_EXPORT\nconst CFStringRef kODNodeOptionsQuerySkippedSubnode __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_NA);\n\n/*!\n\t@enum   \tODMatchType\n\t@abstract   Are types of matching types used for doing searches.  Each type is self explanatory based on the name.\n\t@constant\tkODMatchAny is used to search for any records (typically passed with nil search value)\n\t@constant\tkODMatchEqualTo is searching values that are equal to the provided value\n\t@constant\tkODMatchBeginsWith is searching values that begin with the provided value\n\t@constant\tkODMatchContains is searching values that contain the provided value\n\t@constant\tkODMatchEndsWith is searching values that end with the provided value\n\t@constant\tkODMatchGreaterThan is searching values greater than the provided value\n\t@constant\tkODMatchLessThan is searching values less than the provided value\n */\nenum\n{\n\tkODMatchAny\t\t\t\t\t\t= 0x0001,\n\t\n\tkODMatchEqualTo\t\t\t\t\t= 0x2001,\n\tkODMatchBeginsWith\t\t\t\t= 0x2002,\n\tkODMatchContains\t\t\t\t= 0x2004,\n\tkODMatchEndsWith\t\t\t\t= 0x2003,\n\t\n\tkODMatchInsensitiveEqualTo    __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_6, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"case matching is defined by attribute schema\")\t\t= 0x2101,\n\tkODMatchInsensitiveBeginsWith __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_6, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"case matching is defined by attribute schema\")\t\t= 0x2102,\n\tkODMatchInsensitiveContains   __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_6, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"case matching is defined by attribute schema\")\t\t= 0x2104,\n\tkODMatchInsensitiveEndsWith   __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_6, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"case matching is defined by attribute schema\")\t\t= 0x2103,\n\t\n\tkODMatchGreaterThan\t\t\t\t= 0x2006,\n\tkODMatchLessThan\t\t\t\t= 0x2007,\n};\ntypedef uint32_t ODMatchType;\n\n/*!\n\t@typedef\tODRecordType\n\t@abstract   is used to define a specific record type\n\t@discussion is used to define a specific record type common to DirectoryService.\n\t\t\t\tRecords types are strings that have a prefix:\n \n\t\t\t\t\tStandard records\t- \"dsRecTypeStandard:\"\n\t\t\t\t\tNative to the node\t- \"dsRecTypeNative:\"\n \n\t\t\t\tThe most commonly used Standard records are contained in this header.\n \n\t\t\t\tNote:  CFStringRef can be use interchangeably with ODRecordType for ease\n\t\t\t\tof use.\n*/\n#ifdef __OBJC__\n#include <Foundation/Foundation.h>\ntypedef NSString *ODRecordType;\n#else\ntypedef CFStringRef ODRecordType;\n#endif\n\n/*!\n\t@typedef\tODAttributeType\n\t@abstract   is used to define a specific attribute type\n\t@discussion is used to define a specific attribute type common to DirectoryService.\n\t\t\t\tAttribute types are strings that have a prefix:\n \n\t\t\t\t\tStandard attributes\t- \"dsAttrTypeStandard:\"\n\t\t\t\t\tNative to the node\t- \"dsAttrTypeNative:\"\n \n\t\t\t\tThe most commonly used Standard attributes are contained in this header.\n \n\t\t\t\tNote:  CFStringRef can be use interchangeably with ODAttributeType for ease\n\t\t\t\tof use.\n*/\n#ifdef __OBJC__\ntypedef NSString *ODAttributeType;\n#else\ntypedef CFStringRef ODAttributeType;\n#endif\n\n/*!\n\t@typedef\tODAuthenticationType\n\t@abstract   is used to define a specific credential method type\n\t@discussion is used to define a specific credential method type common to DirectoryService.\n\t\t\t\tAuthentication types are strings that have a prefix:\n \n\t\t\t\t\tStandard attributes\t- \"dsAuthMethodStandard:\"\n\t\t\t\t\tNative to the node\t- \"dsAuthMethodNative:\"\n \n\t\t\t\tThe most commonly used Standard authentications are contained in this header.\n \n\t\t\t\tNote:  CFStringRef can be use interchangeably with ODAuthenticationType for ease\n\t\t\t\tof use.\n*/\n#ifdef __OBJC__\ntypedef NSString *ODAuthenticationType;\n#else\ntypedef CFStringRef ODAuthenticationType;\n#endif\n\n/*!\n\t@typedef\tODPolicyType\n\t@abstract   is used to modify policies on nodes or records\n\t@discussion is used to modify policies on nodes or records\n*/\n#ifdef __OBJC_\ntypedef NSString *ODPolicyType;\n#else\ntypedef CFStringRef ODPolicyType;\n#endif\n\n// Compatibility\ntypedef ODRecordType _ODRecordType;\ntypedef ODAttributeType _ODAttributeType;\ntypedef ODAuthenticationType _ODAuthenticationType;\n\n#pragma mark Record Types\n\n/*!\n    @const\t\tkODRecordTypeAttributeTypes\n    @abstract   Identifies records that represent each possible attribute type.\n    @discussion Identifies records that represent each possible attribute type.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeAttributeTypes;\n\n/*!\n    @const\t\tkODRecordTypeAFPServer\n    @abstract   Record type of AFP server records.\n    @discussion Record type of AFP server records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeAFPServer;\n\n/*!\n    @const\t\tkODRecordTypeAliases\n    @abstract   Used to represent alias records.\n    @discussion Used to represent alias records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeAliases;\n\n/*!\n    @const\t\tkODRecordTypeAugments\n    @abstract   Used to store augmented record data.\n    @discussion Used to store augmented record data.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeAugments;\n\n/*!\n    @const\t\tkODRecordTypeAutomount\n    @abstract   Used to store automount record data.\n    @discussion Used to store automount record data.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeAutomount;\n\n/*!\n    @const\t\tkODRecordTypeAutomountMap\n    @abstract   Used to store automountMap record data.\n    @discussion Used to store automountMap record data.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeAutomountMap;\n\n/*!\n    @const\t\tkODRecordTypeAutoServerSetup\n    @abstract   Used to discover automated server setup information.\n    @discussion Used to discover automated server setup information.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeAutoServerSetup;\n\n/*!\n    @const\t\tkODRecordTypeBootp\n    @abstract   Record in the local node for storing bootp info.\n    @discussion Record in the local node for storing bootp info.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeBootp;\n\n/*!\n    @const\t\tkODRecordTypeCertificateAuthorities\n    @abstract   Record type that contains certificate authority information.\n    @discussion Record type that contains certificate authority information.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeCertificateAuthorities;\n\n/*!\n    @const\t\tkODRecordTypeComputerLists\n    @abstract   Identifies computer list records.\n    @discussion Identifies computer list records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeComputerLists;\n\n/*!\n    @const\t\tkODRecordTypeComputerGroups\n    @abstract   Identifies computer group records.\n    @discussion Identifies computer group records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeComputerGroups;\n\n/*!\n    @const\t\tkODRecordTypeComputers\n    @abstract   Identifies computer records.\n    @discussion Identifies computer records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeComputers;\n\n/*!\n    @const\t\tkODRecordTypeConfiguration\n    @abstract   Identifies configuration records.\n    @discussion Identifies configuration records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeConfiguration;\n\n/*!\n    @const\t\tkODRecordTypeEthernets\n    @abstract   Record in the node for storing ethernets.\n    @discussion Record in the node for storing ethernets.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeEthernets;\n\n/*!\n    @const\t\tkODRecordTypeFileMakerServers\n\t@abstract   FileMaker servers record type. \n\t@discussion FileMaker servers record type that describes available FileMaker servers, \n\t\t\t\tused for service discovery.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeFileMakerServers;\n\n/*!\n    @const\t\tkODRecordTypeFTPServer\n    @abstract   Identifies ftp server records.\n    @discussion Identifies ftp server records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeFTPServer;\n\n/*!\n    @const\t\tkODRecordTypeGroups\n    @abstract   Identifies group records.\n    @discussion Identifies group records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeGroups;\n\n/*!\n    @const\t\tkODRecordTypeHostServices\n    @abstract   Record in the local node for storing host services.\n    @discussion Record in the local node for storing host services.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeHostServices;\n\n/*!\n    @const\t\tkODRecordTypeHosts\n    @abstract   Identifies host records.\n    @discussion Identifies host records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeHosts;\n\n/*!\n    @const\t\tkODRecordTypeLDAPServer\n    @abstract   Identifies LDAP server records.\n    @discussion Identifies LDAP server records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeLDAPServer;\n\n/*!\n    @const\t\tkODRecordTypeLocations\n    @abstract   Location record type.\n    @discussion Location record type.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeLocations;\n\n/*!\n    @const\t\tkODRecordTypeMounts\n    @abstract   Identifies mount records.\n    @discussion Identifies mount records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeMounts;\n\n/*!\n    @const\t\tkODRecordTypeNFS\n    @abstract   Identifies NFS records.\n    @discussion Identifies NFS records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeNFS;\n\n/*!\n    @const\t\tkODRecordTypeNetDomains\n    @abstract   Record in the local node for storing net domains.\n    @discussion Record in the local node for storing net domains.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeNetDomains;\n\n/*!\n    @const\t\tkODRecordTypeNetGroups\n    @abstract   Record in the local node for storing net groups.\n    @discussion Record in the local node for storing net groups.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeNetGroups;\n\n/*!\n    @const\t\tkODRecordTypeNetworks\n    @abstract   Identifies network records.\n    @discussion Identifies network records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeNetworks;\n\n/*!\n    @const\t\tkODRecordTypePeople\n    @abstract   Record type that contains \"People\" records used for contact information.\n    @discussion Record type that contains \"People\" records used for contact information.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePeople;\n\n/*!\n    @const\t\tkODRecordTypePresetComputers\n    @abstract   The computer record type used for presets in record creation.\n    @discussion The computer record type used for presets in record creation.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePresetComputers;\n\n/*!\n    @const\t\tkODRecordTypePresetComputerGroups\n    @abstract   The computer group record type used for presets in record creation.\n    @discussion The computer group record type used for presets in record creation.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePresetComputerGroups;\n\n/*!\n    @const\t\tkODRecordTypePresetComputerLists\n    @abstract   The computer list record type used for presets in record creation.\n    @discussion The computer list record type used for presets in record creation.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePresetComputerLists;\n\n/*!\n    @const\t\tkODRecordTypePresetGroups\n    @abstract   The group record type used for presets in record creation.\n    @discussion The group record type used for presets in record creation.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePresetGroups;\n\n/*!\n    @const\t\tkODRecordTypePresetUsers\n    @abstract   The user record type used for presets in record creation.\n    @discussion The user record type used for presets in record creation.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePresetUsers;\n\n/*!\n    @const\t\tkODRecordTypePrintService\n    @abstract   Identifies print service records.\n    @discussion Identifies print service records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePrintService;\n\n/*!\n    @const\t\tkODRecordTypePrintServiceUser\n    @abstract   Record in the local node for storing quota usage for a user.\n    @discussion Record in the local node for storing quota usage for a user.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePrintServiceUser;\n\n/*!\n    @const\t\tkODRecordTypePrinters\n    @abstract   Identifies printer records.\n    @discussion Identifies printer records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypePrinters;\n\n/*!\n    @const\t\tkODRecordTypeProtocols\n    @abstract   Identifies protocol records.\n    @discussion Identifies protocol records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeProtocols;\n\n/*!\n    @const\t\tkODRecordTypeQTSServer\n    @abstract   Identifies quicktime streaming server records.\n    @discussion Identifies quicktime streaming server records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeQTSServer;\n\n/*!\n    @const\t\tkODRecordTypeQueryInformation\n    @abstract   Special query information record\n    @discussion Specifically to return query information inline such as skipped nodes\n */\nCF_EXPORT\nconst ODRecordType kODRecordTypeQueryInformation;\n\n/*!\n    @const\t\tkODRecordTypeRecordTypes\n    @abstract   Identifies records that represent each possible record type.\n    @discussion Identifies records that represent each possible record type.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeRecordTypes;\n\n/*!\n    @const\t\tkODRecordTypeResources\n    @abstract   Identifies resources used in group services.\n    @discussion Identifies resources used in group services.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeResources;\n\n/*!\n    @const\t\tkODRecordTypeRPC\n    @abstract   Identifies remote procedure call records.\n    @discussion Identifies remote procedure call records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeRPC;\n\n/*!\n    @const\t\tkODRecordTypeSMBServer\n    @abstract   Identifies SMB server records.\n    @discussion Identifies SMB server records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeSMBServer;\n\n/*!\n    @const\t\tkODRecordTypeServer\n    @abstract   Identifies generic server records.\n    @discussion Identifies generic server records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeServer;\n\n/*!\n    @const\t\tkODRecordTypeServices\n    @abstract   Identifies directory based service records.\n    @discussion Identifies directory based service records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeServices;\n\n/*!\n    @const\t\tkODRecordTypeSharePoints\n    @abstract   Share point record type.\n    @discussion Share point record type.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeSharePoints;\n\n/*!\n    @const\t\tkODRecordTypeUsers\n    @abstract   Identifies user records.\n    @discussion Identifies user records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeUsers;\n\n/*!\n    @const\t\tkODRecordTypeWebServer\n    @abstract   Identifies web server records.\n    @discussion Identifies web server records.\n*/\nCF_EXPORT\nconst ODRecordType kODRecordTypeWebServer;\n\n#pragma mark Attribute Types\n\n/*!\n    @const\t\tkODAttributeTypeAllAttributes\n    @abstract   Used in requesting all attribute types in a search.\n    @discussion Used in requesting all attribute types in a search.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAllAttributes;\n\n/*!\n    @const\t\tkODAttributeTypeStandardOnly\n    @abstract   Used in requesting all standard attribute types in a query.\n    @discussion Used in requesting all standard attribute types in a query.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeStandardOnly;\n\n/*!\n    @const\t\tkODAttributeTypeNativeOnly\n    @abstract   Used in requesting all native attribute types in a search.\n    @discussion Used in requesting all native attribute types in a search.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNativeOnly;\n\n/*!\n    @const\t\tkODAttributeTypeMetaAmbiguousName\n    @abstract   Used to disambiguate a provided name.\n    @discussion Searches a configured list of attributes; by default: RecordName, FullName, EMailAddress.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMetaAmbiguousName;\n\n/*!\n    @const\t\tkODAttributeTypeMetaAugmentedAttributes\n    @abstract   Attributes that have been augmented.\n    @discussion Attributes that have been augmented.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMetaAugmentedAttributes;\n\n/*!\n    @const\t\tkODAttributeTypeMetaRecordName\n    @abstract   Native record name.\n    @discussion Native record name, e.g. LDAP DN\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMetaRecordName;\n\n/*!\n    @const\t\tkODAttributeTypeAdminLimits\n    @abstract   XML plist indicating what an admin user can edit.\n    @discussion XML plist indicating what an admin user can edit. Found in kODRecordTypeUsers records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAdminLimits;\n\n/*!\n\t@const\t\tkODAttributeTypeAltSecurityIdentities\n\t@abstract\tUsed to store alternate identities for the record\n\t@discussion Used to store alternate identities for the record. Values will have standardized form as\n\t\t\t\tspecified by Microsoft LDAP schema (1.2.840.113556.1.4.867).\n\n \t\t\t\tKerberos:user\\@REALM\n */\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAltSecurityIdentities __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @const\t\tkODAttributeTypeAuthenticationHint\n    @abstract   Used to identify the authentication hint phrase.\n    @discussion Used to identify the authentication hint phrase.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAuthenticationHint;\n\n/*!\n    @const\t\tkODAttributeTypeAllTypes\n    @abstract   Used to indicated recommended attribute types for a record type in the Config node.\n    @discussion Used to indicated recommended attribute types for a record type in the Config node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAllTypes;\n\n/*!\n    @const\t\tkODAttributeTypeAuthorityRevocationList\n    @abstract   Attribute containing the binary of the authority revocation list\n\t@discussion Attribute containing the binary of the authority revocation list.\n\t\t\t\tA certificate revocation list that defines certificate authority certificates\n\t\t\t\twhich are no longer trusted.  No user certificates are included in this list.\n\t\t\t\tUsually found in kODRecordTypeCertificateAuthorities records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAuthorityRevocationList;\n\n/*!\n    @const\t\tkODAttributeTypeBirthday\n    @abstract   Single-valued attribute that defines the user's birthday.\n\t@discussion Single-valued attribute that defines the user's birthday.\n\t\t\t\tFormat is x.208 standard YYYYMMDDHHMMSSZ which we will require as GMT time.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeBirthday;\n\n/*!\n    @const\t\tkODAttributeTypeCACertificate\n\t@abstract   Attribute containing the binary of the certificate of a certificate authority.\n\t@discussion Attribute containing the binary of the certificate of a certificate authority.\n\t\t\t\tIts corresponding private key is used to sign certificates.\n\t\t\t\tUsually found in kODRecordTypeCertificateAuthority records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCACertificate;\n\n/*!\n    @const\t\tkODAttributeTypeCapacity\n    @abstract   Attribute type for the capacity of a resource. \n\t@discussion Attribute type for the capacity of a resource. \n\t\t\t\tfound in resource records (kODRecordTypeResources). \n\t\t\t\t\tExample: 50\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCapacity;\n\n/*!\n    @const\t\tkODAttributeTypeCertificateRevocationList\n    @abstract   Attribute containing the binary of the certificate revocation list.\n\t@discussion Attribute containing the binary of the certificate revocation list.\n\t\t\t\tThis is a list of certificates which are no longer trusted.\n\t\t\t\tUsually found in kODRecordTypeCertificateAuthority records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCertificateRevocationList;\n\n/*!\n    @const\t\tkODAttributeTypeComment\n    @abstract   Attribute used for unformatted comment.\n    @discussion Attribute used for unformatted comment.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeComment;\n\n/*!\n    @const\t\tkODAttributeTypeContactGUID\n\t@abstract   Attribute type for the contact GUID of a group. \n\t@discussion Attribute type for the contact GUID of a group. \n\t\t\t\tUsually found in group records (kODRecordTypeGroups)\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeContactGUID;\n\n/*!\n    @const\t\tkODAttributeTypeContactPerson\n\t@abstract   Attribute type for the contact person of the machine. \n\t@discussion Attribute type for the contact person of the machine. \n\t\t\t\tFound in host or machine records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeContactPerson;\n\n/*!\n    @const\t\tkODAttributeTypeCreationTimestamp\n\t@abstract   Attribute showing date/time of record creation.\n\t@discussion Attribute showing date/time of record creation.\n\t\t\t\tFormat is x.208 standard YYYYMMDDHHMMSSZ which should be GMT time.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCreationTimestamp;\n\n/*!\n    @const\t\tkODAttributeTypeCrossCertificatePair\n\t@abstract   Attribute containing the binary of a pair of certificates which \n\t\t\t\tverify each other.\n\t@discussion Attribute containing the binary of a pair of certificates which \n\t\t\t\tverify each other.  Both certificates have the same level of authority.\n\t\t\t\tUsually found in kODRecordTypeCertificateAuthority records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCrossCertificatePair;\n\n/*!\n    @const\t\tkODAttributeTypeDataStamp\n    @abstract   Attribute for checksum/meta data\n    @discussion Attribute for checksum/meta data\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeDataStamp;\n\n/*!\n    @const\t\tkODAttributeTypeFullName\n    @abstract   Full name of a record\n    @discussion Full name of a record (e.g., \"John Doe\", \"John Doe's Computer\")\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeFullName;\n\n/*!\n    @const\t\tkODAttributeTypeDNSDomain\n    @abstract   DNS Resolver domain attribute.\n    @discussion DNS Resolver domain attribute.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeDNSDomain;\n\n/*!\n    @const\t\tkODAttributeTypeDNSNameServer\n    @abstract   DNS Resolver nameserver attribute.\n    @discussion DNS Resolver nameserver attribute.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeDNSNameServer;\n\n/*!\n    @const\t\tkODAttributeTypeENetAddress\n\t@abstract   Attribute for hardware Ethernet address (MAC address).\n\t@discussion Attribute for hardware Ethernet address (MAC address).\n\t\t\t\tFound in computer records (kODRecordTypeComputers).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeENetAddress;\n\n/*!\n    @const\t\tkODAttributeTypeExpire\n    @abstract   Used for expiration date or time depending on association.\n    @discussion Used for expiration date or time depending on association.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeExpire;\n\n/*!\n    @const\t\tkODAttributeTypeFirstName\n    @abstract   Used for first name of user or person record.\n    @discussion Used for first name of user or person record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeFirstName;\n\n/*!\n    @const\t\tkODAttributeTypeGUID\n\t@abstract   Used for 36 character (128 bit) unique ID.\n\t@discussion Used for 36 character (128 bit) unique ID. An example value is\n\t\t\t\t\"A579E95E-CDFE-4EBC-B7E7-F2158562170F\". The standard format contains\n\t\t\t\t32 uppercase hex characters and four hyphen characters.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeGUID;\n\n/*!\n    @const      kODAttributeTypeHardwareUUID\n    @abstract   Used to store hardware UUID in string form\n    @discussion Used to store hardware UUID in string form for a record.  Typically found in\n                kODRecordTypeComputers.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeHardwareUUID __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @const\t\tkODAttributeTypeHomeDirectoryQuota\n\t@abstract   Represents the allowed usage for a user's home directory in bytes.\n\t@discussion Represents the allowed usage for a user's home directory in bytes.\n\t\t\t\tFound in user records (kODRecordTypeUsers).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeHomeDirectoryQuota;\n\n/*!\n    @const\t\tkODAttributeTypeHomeDirectorySoftQuota\n\t@abstract   Used to define home directory size limit in bytes when user is notified\n\t\t\t\tthat the hard limit is approaching.\n\t@discussion Used to define home directory size limit in bytes when user is notified\n\t\t\t\tthat the hard limit is approaching.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeHomeDirectorySoftQuota;\n\n/*!\n    @const\t\tkODAttributeTypeHomeLocOwner\n\t@abstract   Represents the owner of a workgroup's shared home directory.\n\t@discussion Represents the owner of a workgroup's shared home directory.\n\t\t\t\tTypically found in kODRecordTypeGroups records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeHomeLocOwner;\n\n/*!\n    @const\t\tkODAttributeTypeInternetAlias\n    @abstract   Used to track internet alias.\n    @discussion Used to track internet alias.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeInternetAlias;\n\n/*!\n    @const\t\tkODAttributeTypeKDCConfigData\n    @abstract   Contents of the kdc.conf file.\n    @discussion Contents of the kdc.conf file.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeKDCConfigData;\n\n/*!\n\t@const\t\tkODAttributeTypeKerberosServices\n\t@abstract\tThis is used to store the principals in host records (i.e., \"host\", \"vnc\", etc.)\n\t@discussion\tThis is used to store the principals in host records (i.e., \"host\", \"vnc\", etc.)\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeKerberosServices __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n/*!\n    @const\t\tkODAttributeTypeLastName\n    @abstract   Used for the last name of user or person record.\n    @discussion Used for the last name of user or person record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeLastName;\n\n/*!\n    @const\t\tkODAttributeTypeLDAPSearchBaseSuffix\n    @abstract   Search base suffix for a LDAP server.\n    @discussion Search base suffix for a LDAP server.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeLDAPSearchBaseSuffix;\n\n/*!\n    @const\t\tkODAttributeTypeLocation\n\t@abstract   Represents the location a service is available from (usually domain name)\n\t@discussion Represents the location a service is available from (usually domain name).\n\t\t\t\tTypically found in service record types including kODRecordTypeAFPServer,\n\t\t\t\tkODRecordTypeLDAPServer, and kODRecordTypeWebServer.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeLocation;\n\n/*!\n    @const\t\tkODAttributeTypeMapGUID\n    @abstract   Represents the GUID for a record's map\n    @discussion Represents the GUID for a record's map.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMapGUID;\n\n/*!\n    @const\t\tkODAttributeTypeMCXFlags\n    @abstract   Used by ManagedClient\n    @discussion Used by ManagedClient.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMCXFlags;\n\n/*!\n    @const\t\tkODAttributeTypeMCXSettings\n    @abstract   Used by ManagedClient\n    @discussion Used by ManagedClient.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMCXSettings;\n\n/*!\n    @const\t\tkODAttributeTypeMailAttribute\n    @abstract   Holds the mail account config data\n    @discussion Holds the mail account config data.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMailAttribute;\n\n/*!\n    @const\t\tkODAttributeTypeMetaAutomountMap\n\t@abstract   Used to query for kODRecordTypeAutomount entries\n\t@discussion Used to query for kODRecordTypeAutomount entries associated with a specific \n\t\t\t\tkODRecordTypeAutomountMap.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMetaAutomountMap;\n\n/*!\n    @const\t\tkODAttributeTypeMiddleName\n    @abstract   Used for the middle name of user or person record.\n    @discussion Used for the middle name of user or person record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMiddleName;\n\n/*!\n    @const\t\tkODAttributeTypeModificationTimestamp\n\t@abstract   Attribute showing date/time of record modification.\n\t@discussion Attribute showing date/time of record modification.\n\t\t\t\tFormat is x.208 standard YYYYMMDDHHMMSSZ which is required as GMT time.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeModificationTimestamp;\n\n/*!\n    @const\t\tkODAttributeTypeNFSHomeDirectory\n    @abstract   Defines a user's home directory mount point on the local machine.\n    @discussion Defines a user's home directory mount point on the local machine.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNFSHomeDirectory;\n\n/*!\n    @const\t\tkODAttributeTypeNote\n    @abstract   Note attribute.\n    @discussion Note attribute.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNote;\n\n/*!\n    @const\t\tkODAttributeTypeOperatingSystem\n    @abstract   Returns the operating system type where the daemon is running\n    @discussion Returns the operating system type where the daemon is running,\n\t\t\t\te.g., Mac OS X or Mac OS X Server\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOperatingSystem __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n\t@const\t\tkODAttributeTypeOperatingSystemVersion\n\t@abstract   Returns the operating system version where the daemon is running\n\t@discussion Returns the operating system version where the daemon is running,\n\t\t\t\te.g., 10.6\n */\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOperatingSystemVersion __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_NA);\n\n/*!\n    @const\t\tkODAttributeTypeOwner\n\t@abstract   Attribute type for the owner of a record. \n\t@discussion Attribute type for the owner of a record. \n\t\t\t\tTypically the value is a LDAP distinguished name.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOwner;\n\n/*!\n    @const\t\tkODAttributeTypeOwnerGUID\n\t@abstract   Attribute type for the owner GUID of a group. \n\t@discussion Attribute type for the owner GUID of a group. \n\t\t\t\tFound in group records (kODRecordTypeGroups). \n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOwnerGUID;\n\n/*!\n    @const\t\tkODAttributeTypePassword\n    @abstract   Holds the password or credential value.\n    @discussion Holds the password or credential value.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePassword;\n\n/*!\n    @const\t\tkODAttributeTypePasswordPlus\n    @abstract   Holds marker data to indicate possible authentication redirection.\n    @discussion Holds marker data to indicate possible authentication redirection.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePasswordPlus;\n\n/*!\n    @const\t\tkODAttributeTypePasswordPolicyOptions\n\t@abstract   Collection of password policy options in single attribute.\n\t@discussion Collection of password policy options in single attribute.\n\t\t\t\tUsed in user presets record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePasswordPolicyOptions;\n\n/*!\n    @const\t\tkODAttributeTypePasswordServerList\n    @abstract   Represents the attribute for storing the password server's replication information.\n    @discussion Represents the attribute for storing the password server's replication information.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePasswordServerList;\n\n/*!\n    @const\t\tkODAttributeTypePasswordServerLocation\n\t@abstract   Specifies the IP address or domain name of the Password Server associated\n\t\t\t\twith a given directory node.\n\t@discussion Specifies the IP address or domain name of the Password Server associated\n\t\t\t\twith a given directory node. Found in a config record named PasswordServer.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePasswordServerLocation;\n\n/*!\n    @const\t\tkODAttributeTypePicture\n\t@abstract   Represents the path of the picture for each user displayed in the login window.\n\t@discussion Represents the path of the picture for each user displayed in the login window.\n\t\t\t\tFound in user records (kODRecordTypeUsers).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePicture;\n\n/*!\n    @const\t\tkODAttributeTypePort\n\t@abstract   Represents the port number a service is available on.\n\t@discussion Represents the port number a service is available on.\n\t\t\t\tTypically found in service record types including kODRecordTypeAFPServer,\n\t\t\t\tkODRecordTypeLDAPServer, and kODRecordTypeWebServer.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePort;\n\n/*!\n    @const\t\tkODAttributeTypePresetUserIsAdmin\n\t@abstract   Flag to indicate whether users created from this preset are administrators\n\t\t\t\tby default.\n\t@discussion Flag to indicate whether users created from this preset are administrators\n\t\t\t\tby default. Found in kODRecordTypePresetUsers records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePresetUserIsAdmin;\n\n/*!\n    @const\t\tkODAttributeTypePrimaryComputerGUID\n\t@abstract   An attribute that defines a primary computer of the computer group.  \n\t@discussion An attribute that defines a primary computer of the computer group.  \n\t\t\t\tAdded to computer group record type (kODRecordTypeComputerGroups)\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrimaryComputerGUID;\n\n/*!\n    @const\t\tkODAttributeTypePrimaryComputerList\n    @abstract   The GUID of the computer list with which this computer record is associated.\n    @discussion The GUID of the computer list with which this computer record is associated.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrimaryComputerList;\n\n/*!\n    @const\t\tkODAttributeTypePrimaryGroupID\n\t@abstract   This is the 32 bit unique ID that represents the primary group \n\t\t\t\ta user is part of, or the ID of a group.\n\t@discussion This is the 32 bit unique ID that represents the primary group \n\t\t\t\ta user is part of, or the ID of a group. Format is a signed 32 bit integer\n\t\t\t\trepresented as a string.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrimaryGroupID;\n\n/*!\n    @const\t\tkODAttributeTypePrinter1284DeviceID\n\t@abstract   Attribute that defines the IEEE 1284 DeviceID of a printer.\n\t@discussion Attribute that defines the IEEE 1284 DeviceID of a printer.\n\t\t\t\tThis is used when configuring a printer.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrinter1284DeviceID;\n\n/*!\n    @const\t\tkODAttributeTypePrinterLPRHost\n    @abstract   Standard attribute type for kODRecordTypePrinters.\n    @discussion Standard attribute type for kODRecordTypePrinters.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrinterLPRHost;\n\n/*!\n    @const\t\tkODAttributeTypePrinterLPRQueue\n    @abstract   Standard attribute type for kODRecordTypePrinters.\n    @discussion Standard attribute type for kODRecordTypePrinters.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrinterLPRQueue;\n\n/*!\n    @const\t\tkODAttributeTypePrinterMakeAndModel\n\t@abstract   Attribute for definition of the Printer Make and Model.\n\t@discussion Attribute for definition of the Printer Make and Model.  An example\n\t\t\t\tvalue would be \"HP LaserJet 2200\".  This would be used to determine the proper PPD\n\t\t\t\tfile to be used when configuring a printer from the Directory.  This attribute\n\t\t\t\tis based on the IPP Printing Specification RFC and IETF IPP-LDAP Printer Record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrinterMakeAndModel;\n\n/*!\n    @const\t\tkODAttributeTypePrinterType\n    @abstract   Standard attribute type for kODRecordTypePrinters.\n    @discussion Standard attribute type for kODRecordTypePrinters.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrinterType;\n\n/*!\n    @const\t\tkODAttributeTypePrinterURI\n\t@abstract   Attribute that defines the URI of a printer \"ipp://address\" or\n\t\t\t\t\"smb://server/queue\".\n\t@discussion Attribute that defines the URI of a printer \"ipp://address\" or\n\t\t\t\t\"smb://server/queue\".  This is used when configuring a printer. This attribute\n\t\t\t\tis based on the IPP Printing Specification RFC and IETF IPP-LDAP Printer Record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrinterURI;\n\n/*!\n    @const\t\tkODAttributeTypePrinterXRISupported\n\t@abstract   Attribute that defines additional URIs supported by a printer.\n\t@discussion attribute that defines additional URIs supported by a printer.\n\t\t\t\tThis is used when configuring a printer. This attribute is based on the IPP \n\t\t\t\tPrinting Specification RFC and IETF IPP-LDAP Printer Record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrinterXRISupported;\n\n/*!\n    @const\t\tkODAttributeTypePrintServiceInfoText\n    @abstract   Standard attribute type for kODRecordTypePrinters.\n    @discussion Standard attribute type for kODRecordTypePrinters.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrintServiceInfoText;\n\n/*!\n    @const\t\tkODAttributeTypePrintServiceInfoXML\n    @abstract   Standard attribute type for kODRecordTypePrinters.\n    @discussion Standard attribute type for kODRecordTypePrinters.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrintServiceInfoXML;\n\n/*!\n    @const\t\tkODAttributeTypePrintServiceUserData\n\t@abstract   Attribute for print quota configuration or statistics (XML data).\n\t@discussion Attribute for print quota configuration or statistics (XML data).\n\t\t\t\tFound in user records (kODRecordTypeUsers) or print service\n\t\t\t\tstatistics records (kODRecordTypePrintServiceUser).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrintServiceUserData;\n\n/*!\n    @const\t\tkODAttributeTypeRealUserID\n    @abstract   Used by Managed Client.\n    @discussion Used by Managed Client\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeRealUserID;\n\n/*!\n    @const\t\tkODAttributeTypeRelativeDNPrefix\n\t@abstract   Used to map the first native LDAP attribute type required in the building of the\n\t\t\t\tRelative Distinguished Name for LDAP record creation.\n\t@discussion Used to map the first native LDAP attribute type required in the building of the\n\t\t\t\tRelative Distinguished Name for LDAP record creation.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeRelativeDNPrefix;\n\n/*!\n    @const\t\tkODAttributeTypeSMBAcctFlags\n    @abstract   Account control flag.\n    @discussion Account control flag.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBAcctFlags;\n\n/*!\n    @const\t\tkODAttributeTypeSMBGroupRID\n    @abstract   Constant for supporting PDC SMB interaction with DirectoryService.\n    @discussion Constant for supporting PDC SMB interaction with DirectoryService.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBGroupRID;\n\n/*!\n    @const\t\tkODAttributeTypeSMBHome\n    @abstract   UNC address of Windows homedirectory mount point (\\\\server\\\\sharepoint).\n    @discussion UNC address of Windows homedirectory mount point (\\\\server\\\\sharepoint).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBHome;\n\n/*!\n    @const\t\tkODAttributeTypeSMBHomeDrive\n    @abstract   Drive letter for homedirectory mount point.\n    @discussion Drive letter for homedirectory mount point.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBHomeDrive;\n\n/*!\n    @const\t\tkODAttributeTypeSMBKickoffTime\n    @abstract   Attribute in support of SMB interaction.\n    @discussion Attribute in support of SMB interaction.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBKickoffTime;\n\n/*!\n    @const\t\tkODAttributeTypeSMBLogoffTime\n    @abstract   Attribute in support of SMB interaction.\n    @discussion Attribute in support of SMB interaction.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBLogoffTime;\n\n/*!\n    @const\t\tkODAttributeTypeSMBLogonTime\n    @abstract   Attribute in support of SMB interaction.\n    @discussion Attribute in support of SMB interaction.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBLogonTime;\n\n/*!\n    @const\t\tkODAttributeTypeSMBPrimaryGroupSID\n\t@abstract   SMB Primary Group Security ID, stored as a string attribute of\n\t\t\t\tup to 64 bytes.\n\t@discussion SMB Primary Group Security ID, stored as a string attribute of\n\t\t\t\tup to 64 bytes. Found in user, group, and computer records\n\t\t\t\t(kODRecordTypeUsers, kODRecordTypeGroups, kODRecordTypeComputers).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBPrimaryGroupSID;\n\n/*!\n    @const\t\tkODAttributeTypeSMBPWDLastSet\n    @abstract   Attribute in support of SMB interaction.\n    @discussion Attribute in support of SMB interaction.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBPWDLastSet;\n\n/*!\n    @const\t\tkODAttributeTypeSMBProfilePath\n    @abstract   Desktop management info (dock, desktop links, etc).\n    @discussion Desktop management info (dock, desktop links, etc).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBProfilePath;\n\n/*!\n    @const\t\tkODAttributeTypeSMBRID\n    @abstract   Attribute in support of SMB interaction.\n    @discussion Attribute in support of SMB interaction.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBRID;\n\n/*!\n    @const\t\tkODAttributeTypeSMBScriptPath\n    @abstract   Login script path.\n    @discussion Login script path.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBScriptPath;\n\n/*!\n    @const\t\tkODAttributeTypeSMBSID\n\t@abstract   SMB Security ID, stored as a string attribute of up to 64 bytes.\n\t@discussion SMB Security ID, stored as a string attribute of up to 64 bytes.\n\t\t\t\tFound in user, group, and computer records (kODRecordTypeUsers, \n\t\t\t\tkODRecordTypeGroups, kODRecordTypeComputers).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBSID;\n\n/*!\n    @const\t\tkODAttributeTypeSMBUserWorkstations\n    @abstract   List of workstations user can login from (machine account names).\n    @discussion List of workstations user can login from (machine account names).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSMBUserWorkstations;\n\n/*!\n    @const\t\tkODAttributeTypeServiceType\n\t@abstract   Represents the service type for the service.  This is the raw service type of the\n\t\t\t\tservice.\n\t@discussion Represents the service type for the service.  This is the raw service type of the\n\t\t\t\tservice.  For example a service record type of kODRecordTypeWebServer \n\t\t\t\tmight have a service type of \"http\" or \"https\".\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeServiceType;\n\n/*!\n    @const\t\tkODAttributeTypeSetupAdvertising\n    @abstract   Used for Setup Assistant automatic population.\n    @discussion Used for Setup Assistant automatic population.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSetupAdvertising;\n\n/*!\n    @const\t\tkODAttributeTypeSetupAutoRegister\n    @abstract   Used for Setup Assistant automatic population.\n    @discussion Used for Setup Assistant automatic population.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSetupAutoRegister;\n\n/*!\n    @const\t\tkODAttributeTypeSetupLocation\n    @abstract   Used for Setup Assistant automatic population.\n    @discussion Used for Setup Assistant automatic population.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSetupLocation;\n\n/*!\n    @const\t\tkODAttributeTypeSetupOccupation\n    @abstract   Used for Setup Assistant automatic population.\n    @discussion Used for Setup Assistant automatic population.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSetupOccupation;\n\n/*!\n    @const\t\tkODAttributeTypeTimeToLive\n\t@abstract   Attribute recommending how long to cache the record's attribute values.\n\t@discussion Attribute recommending how long to cache the record's attribute values.\n\t\t\t\tFormat is an unsigned 32 bit representing seconds. ie. 300 is 5 minutes.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeTimeToLive;\n\n/*!\n\t@const\t\tkODAttributeTypeTrustInformation\n\t@abstract\tUsed to describe a node's trust information.\n\t@discussion\tUsed to describe a node's trust information.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeTrustInformation;\n\n/*!\n    @const\t\tkODAttributeTypeUniqueID\n\t@abstract   This is the 32 bit unique ID that represents the user in the legacy manner.\n\t@discussion This is the 32 bit unique ID that represents the user in the legacy manner.\n\t\t\t\tFormat is a signed integer represented as a string.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeUniqueID;\n\n/*!\n    @const\t\tkODAttributeTypeUserCertificate\n\t@abstract   Attribute containing the binary of the user's certificate.\n\t@discussion Attribute containing the binary of the user's certificate.\n\t\t\t\tUsually found in user records. The certificate is data which identifies a user.\n\t\t\t\tThis data is attested to by a known party, and can be independently verified \n\t\t\t\tby a third party.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeUserCertificate;\n\n/*!\n    @const\t\tkODAttributeTypeUserPKCS12Data\n\t@abstract   Attribute containing binary data in PKCS #12 format. \n\t@discussion Attribute containing binary data in PKCS #12 format. \n\t\t\t\tUsually found in user records. The value can contain keys, certificates,\n\t\t\t\tand other related information and is encrypted with a passphrase.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeUserPKCS12Data;\n\n/*!\n    @const\t\tkODAttributeTypeUserShell\n    @abstract   Used to represent the user's shell setting.\n    @discussion Used to represent the user's shell setting.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeUserShell;\n\n/*!\n    @const\t\tkODAttributeTypeUserSMIMECertificate\n\t@abstract   Attribute containing the binary of the user's SMIME certificate.\n\t@discussion Attribute containing the binary of the user's SMIME certificate.\n\t\t\t\tUsually found in user records. The certificate is data which identifies a user.\n\t\t\t\tThis data is attested to by a known party, and can be independently verified \n\t\t\t\tby a third party. SMIME certificates are often used for signed or encrypted\n\t\t\t\temails.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeUserSMIMECertificate;\n\n/*!\n    @const\t\tkODAttributeTypeVFSDumpFreq\n    @abstract   Attribute used to support mount records.\n    @discussion Attribute used to support mount records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeVFSDumpFreq;\n\n/*!\n    @const\t\tkODAttributeTypeVFSLinkDir\n    @abstract   Attribute used to support mount records.\n    @discussion Attribute used to support mount records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeVFSLinkDir;\n\n/*!\n    @const\t\tkODAttributeTypeVFSPassNo\n    @abstract   Attribute used to support mount records.\n    @discussion Attribute used to support mount records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeVFSPassNo;\n\n/*!\n    @const\t\tkODAttributeTypeVFSType\n    @abstract   Attribute used to support mount records.\n    @discussion Attribute used to support mount records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeVFSType;\n\n/*!\n    @const\t\tkODAttributeTypeWeblogURI\n\t@abstract   attribute that defines the URI of a user's weblog.\n\t@discussion attribute that defines the URI of a user's weblog.\n\t\t\t\tUsually found in user records (kODRecordTypeUsers). \n\t\t\t\tExample: http://example.com/blog/jsmith\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeWeblogURI;\n\n/*!\n    @const\t\tkODAttributeTypeXMLPlist\n    @abstract   XML plist used.\n    @discussion XML plist used.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeXMLPlist;\n\n/*!\n    @const\t\tkODAttributeTypeProtocolNumber\n\t@abstract   Attribute that defines a protocol number.\n\t@discussion Attribute that defines a protocol number.  Usually found\n\t\t\t\tin protocol records (kODRecordTypeProtocols)\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeProtocolNumber;\n\n/*!\n    @const\t\tkODAttributeTypeRPCNumber\n\t@abstract   Attribute that defines an RPC number.\n\t@discussion Attribute that defines an RPC number.  Usually found\n\t\t\t\tin RPC records (kODRecordTypeRPC)\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeRPCNumber;\n\n/*!\n    @const\t\tkODAttributeTypeNetworkNumber\n\t@abstract   Attribute that defines a network number.\n\t@discussion Attribute that defines a network number.  Usually found\n\t\t\t\tin network records (kODRecordTypeNetworks)\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNetworkNumber;\n\n/*!\n    @const\t\tkODAttributeTypeAccessControlEntry\n    @abstract   Attribute type which stores directory access control directives.\n    @discussion Attribute type which stores directory access control directives.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAccessControlEntry;\n\n/*!\n    @const\t\tkODAttributeTypeAddressLine1\n    @abstract   Line one of multiple lines of address data for a user.\n    @discussion Line one of multiple lines of address data for a user.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAddressLine1;\n\n/*!\n    @const\t\tkODAttributeTypeAddressLine2\n    @abstract   Line two of multiple lines of address data for a user.\n    @discussion Line two of multiple lines of address data for a user.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAddressLine2;\n\n/*!\n    @const\t\tkODAttributeTypeAddressLine3\n    @abstract   Line three of multiple lines of address data for a user.\n    @discussion Line three of multiple lines of address data for a user.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAddressLine3;\n\n/*!\n    @const\t\tkODAttributeTypeAreaCode\n    @abstract   Area code of a user's phone number.\n    @discussion Area code of a user's phone number.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAreaCode;\n\n/*!\n    @const\t\tkODAttributeTypeAuthenticationAuthority\n\t@abstract   Determines what mechanism is used to verify or set a user's password.\n\t@discussion Determines what mechanism is used to verify or set a user's password.\n\t\t\t\tIf multiple values are present, the first attributes returned take precedence.\n\t\t\t\tTypically found in User records (kODRecordTypeUsers).\n \n\t\t\t\tAuthentication authorities are a multi-part string separated by semi-colons.\n\t\t\t\tOne component is the \"type\" of authority, such as those listed below:\n \n\t\t\t\t\t\"basic\"\t\t\t\t\t- is a crypt password\n\t\t\t\t\t\"ShadowHash\"\t\t\t- is a hashed password stored in a secure location\n\t\t\t\t\t\"ApplePasswordServer\"\t- is a password server-based account\n\t\t\t\t\t\"Kerberosv5\"\t\t\t- is a Kerberosv5 based\n\t\t\t\t\t\"LocalCachedUser\"\t\t- is a cached account based on an account from another node, using a ShadowHash password\n\t\t\t\t\t\"DisabledUser\"\t\t\t- is an account that has been disabled\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAuthenticationAuthority;\n\n/*!\n    @const\t\tkODAttributeTypeAutomountInformation\n\t@abstract   Determines what mechanism is used to verify or set a user's password.\n\t@discussion Determines what mechanism is used to verify or set a user's password.\n\t\t\t\tIf multiple values are present, the first attributes returned take precedence.\n\t\t\t\tTypically found in User records (kODRecordTypeUsers).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAutomountInformation;\n\n/*!\n    @const\t\tkODAttributeTypeBootParams\n    @abstract   Attribute type in host or machine records for storing boot params.\n    @discussion Attribute type in host or machine records for storing boot params.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeBootParams;\n\n/*!\n    @const\t\tkODAttributeTypeBuilding\n\t@abstract   Represents the building name for a user or person record.\n\t@discussion Represents the building name for a user or person record.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeBuilding;\n\n/*!\n    @const\t\tkODAttributeTypeServicesLocator\n    @abstract   the URI for a record's calendar\n    @discussion the URI for a record's calendar\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeServicesLocator;\n\n/*!\n    @const\t\tkODAttributeTypeCity\n\t@abstract   Usually, city for a user or person record.\n\t@discussion Usually, city for a user or person record.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCity;\n\n/*!\n    @const\t\tkODAttributeTypeCompany\n\t@abstract   attribute that defines the user's company.\n\t@discussion attribute that defines the user's company.\n\t\t\t\tExample: Apple Inc.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCompany;\n\n/*!\n    @const\t\tkODAttributeTypeComputers\n    @abstract   List of computers.\n    @discussion List of computers.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeComputers;\n\n/*!\n    @const\t\tkODAttributeTypeCountry\n\t@abstract   Represents country of a record entry.\n\t@discussion Represents country of a record entry.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCountry;\n\n/*!\n    @const\t\tkODAttributeTypeDepartment\n\t@abstract   Represents the department name of a user or person.\n\t@discussion Represents the department name of a user or person.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeDepartment;\n\n/*!\n    @const\t\tkODAttributeTypeDNSName\n    @abstract   DNS Resolver nameserver attribute.\n    @discussion DNS Resolver nameserver attribute.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeDNSName;\n\n/*!\n    @const\t\tkODAttributeTypeEMailAddress\n    @abstract   Email address of usually a user record.\n    @discussion Email address of usually a user record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeEMailAddress;\n\n/*!\n    @const\t\tkODAttributeTypeEMailContacts\n\t@abstract   Attribute that defines a record's custom email addresses.\n\t@discussion Attribute that defines a record's custom email addresses.\n\t\t\t\tfound in user records (kODRecordTypeUsers). \n\t\t\t\tExample: home:johndoe\\@mymail.com\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeEMailContacts;\n\n/*!\n    @const\t\tkODAttributeTypeFaxNumber\n\t@abstract   Represents the FAX numbers of a user or person.\n\t@discussion Represents the FAX numbers of a user or person.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeFaxNumber;\n\n/*!\n    @const\t\tkODAttributeTypeGroup\n    @abstract   List of groups.\n    @discussion List of groups.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeGroup;\n\n/*!\n    @const\t\tkODAttributeTypeGroupMembers\n    @abstract   Attribute type in group records containing lists of GUID values for members other than groups.\n    @discussion Attribute type in group records containing lists of GUID values for members other than groups.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeGroupMembers;\n\n/*!\n    @const\t\tkODAttributeTypeGroupMembership\n    @abstract   Usually a list of users that below to a given group record.\n    @discussion Usually a list of users that below to a given group record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeGroupMembership;\n\n/*!\n    @const\t\tkODAttributeTypeGroupServices\n\t@abstract   xml-plist attribute that defines a group's services.\n\t@discussion xml-plist attribute that defines a group's services.\n\t\t\t\tFound in group records (kODRecordTypeGroups). \n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeGroupServices;\n\n/*!\n    @const\t\tkODAttributeTypeHomePhoneNumber\n    @abstract   Home telephone number of a user or person.\n    @discussion Home telephone number of a user or person.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeHomePhoneNumber;\n\n/*!\n    @const\t\tkODAttributeTypeHTML\n    @abstract   HTML location.\n    @discussion HTML location.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeHTML;\n\n/*!\n    @const\t\tkODAttributeTypeHomeDirectory\n    @abstract   Network home directory URL.\n    @discussion Network home directory URL.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeHomeDirectory;\n\n/*!\n    @const\t\tkODAttributeTypeIMHandle\n\t@abstract   Represents the Instant Messaging handles of a user.\n\t@discussion Represents the Instant Messaging handles of a user.\n\t\t\t\tValues should be prefixed with the appropriate IM type\n\t\t\t\t(i.e., AIM:, Jabber:, MSN:, Yahoo:, or ICQ:).\n\t\t\t\tUsually found in user records (kODRecordTypeUsers).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeIMHandle;\n\n/*!\n    @const\t\tkODAttributeTypeIPAddress\n    @abstract   IP address expressed either as domain or IP notation.\n    @discussion IP address expressed either as domain or IP notation.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeIPAddress;\n\n/*!\n    @const\t\tkODAttributeTypeIPAddressAndENetAddress\n\t@abstract   A pairing of IPv4 or IPv6 addresses with Ethernet addresses \n\t@discussion A pairing of IPv4 or IPv6 addresses with Ethernet addresses \n\t\t\t\t(e.g., \"10.1.1.1/00:16:cb:92:56:41\").  Usually found on kODRecordTypeComputers for use by \n\t\t\t\tservices that need specific pairing of the two values.  This should be in addition to \n\t\t\t\tkODAttributeTypeIPAddress, kODAttributeTypeIPv6Address and kODAttributeTypeENetAddress. This is\n\t\t\t\tnecessary because not all directories return attribute values in a guaranteed order.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeIPAddressAndENetAddress;\n\n/*!\n    @const\t\tkODAttributeTypeIPv6Address\n\t@abstract   IPv6 address expressed in the standard notation\n\t@discussion IPv6 address expressed in the standard notation (e.g., \"fe80::236:caff:fcc2:5641\")\n\t\t\t\tUsually found on kODRecordTypeComputers and kODRecordTypeHosts.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeIPv6Address;\n\n/*!\n    @const\t\tkODAttributeTypeJPEGPhoto\n\t@abstract   Used to store binary picture data in JPEG format. \n\t@discussion Used to store binary picture data in JPEG format. \n\t\t\t\tUsually found in user, people or group records (kODRecordTypeUsers, \n\t\t\t\tkODRecordTypePeople, kODRecordTypeGroups).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeJPEGPhoto;\n\n/*!\n    @const\t\tkODAttributeTypeJobTitle\n\t@abstract   Represents the job title of a user.\n\t@discussion Represents the job title of a user.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeJobTitle;\n\n/*!\n    @const\t\tkODAttributeTypeKDCAuthKey\n    @abstract   KDC master key RSA encrypted with realm public key.\n    @discussion KDC master key RSA encrypted with realm public key.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeKDCAuthKey;\n\n/*!\n    @const\t\tkODAttributeTypeKeywords\n    @abstract   Keywords using for searching capability.\n    @discussion Keywords using for searching capability.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeKeywords;\n\n/*!\n    @const\t\tkODAttributeTypeLDAPReadReplicas\n    @abstract   List of LDAP server URLs which can each be used to read directory data.\n    @discussion List of LDAP server URLs which can each be used to read directory data.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeLDAPReadReplicas;\n\n/*!\n    @const\t\tkODAttributeTypeLDAPWriteReplicas\n    @abstract   List of LDAP server URLs which can each be used to write directory data.\n    @discussion List of LDAP server URLs which can each be used to write directory data.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeLDAPWriteReplicas;\n\n/*!\n    @const\t\tkODAttributeTypeMapCoordinates\n\t@abstract   attribute that defines coordinates for a user's location.\n\t@discussion attribute that defines coordinates for a user's location .\n\t\t\t\tfound in user records (kODRecordTypeUsers) and resource records (kODRecordTypeResources).\n\t\t\t\tExample: 7.7,10.6\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMapCoordinates;\n\n/*!\n    @const\t\tkODAttributeTypeMapURI\n\t@abstract   attribute that defines the URI of a user's location.\n\t@discussion attribute that defines the URI of a user's location.\n\t\t\t\tUsually found in user records (kODRecordTypeUsers). \n\t\t\t\tExample: http://example.com/bldg1\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMapURI;\n\n/*!\n    @const\t\tkODAttributeTypeMIME\n    @abstract   Data contained in this attribute type is a fully qualified MIME Type. \n    @discussion Data contained in this attribute type is a fully qualified MIME Type. \n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMIME;\n\n/*!\n    @const\t\tkODAttributeTypeMobileNumber\n\t@abstract   Represents the mobile numbers of a user or person.\n\t@discussion Represents the mobile numbers of a user or person.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMobileNumber;\n\n/*!\n    @const\t\tkODAttributeTypeNestedGroups\n    @abstract   Attribute type in group records for the list of GUID values for nested groups.\n    @discussion Attribute type in group records for the list of GUID values for nested groups.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNestedGroups;\n\n/*!\n    @const\t\tkODAttributeTypeNetGroups\n\t@abstract   Attribute type that indicates which netgroups its record is a member of.\n\t@discussion Attribute type that indicates which netgroups its record is a member of.\n\t\t\t\tFound in user and host records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNetGroups;\n\n/*!\n    @const\t\tkODAttributeTypeNickName\n\t@abstract   Represents the nickname of a user or person.\n\t@discussion Represents the nickname of a user or person.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNickName;\n\n/*!\n    @const\t\tkODAttributeTypeOrganizationInfo\n    @abstract   Usually the organization info of a user.\n    @discussion Usually the organization info of a user.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOrganizationInfo;\n\n/*!\n    @const\t\tkODAttributeTypeOrganizationName\n    @abstract   Usually the organization of a user.\n    @discussion Usually the organization of a user.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOrganizationName;\n\n/*!\n    @const\t\tkODAttributeTypePagerNumber\n\t@abstract   Represents the pager numbers of a user or person.\n\t@discussion Represents the pager numbers of a user or person.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePagerNumber;\n\n/*!\n    @const\t\tkODAttributeTypePhoneContacts\n\t@abstract   attribute that defines a record's custom phone numbers.\n\t@discussion attribute that defines a record's custom phone numbers.\n\t\t\t\tfound in user or people records.\n\t\t\t\t\tExample: home fax:408-555-4444\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePhoneContacts;\n\n/*!\n    @const\t\tkODAttributeTypePhoneNumber\n    @abstract   Telephone number of a user.\n    @discussion Telephone number of a user.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePhoneNumber;\n\n/*!\n    @const\t\tkODAttributeTypePGPPublicKey\n    @abstract   Pretty Good Privacy public encryption key.\n    @discussion Pretty Good Privacy public encryption key.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePGPPublicKey;\n\n/*!\n    @const\t\tkODAttributeTypePostalAddress\n    @abstract   The postal address usually excluding postal code.\n    @discussion The postal address usually excluding postal code.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePostalAddress;\n\n/*!\n    @const\t\tkODAttributeTypePostalAddressContacts\n\t@abstract   attribute that defines a record's alternate postal addresses.\n\t@discussion attribute that defines a record's alternate postal addresses.\n\t\t\t\tFound in user records (kODRecordTypeUsers) and resource records (kODRecordTypeResources).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePostalAddressContacts;\n\n/*!\n    @const\t\tkODAttributeTypePostalCode\n    @abstract   The postal code such as zip code in the USA.\n    @discussion The postal code such as zip code in the USA.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePostalCode;\n\n/*!\n    @const\t\tkODAttributeTypeNamePrefix\n\t@abstract   Represents the title prefix of a user or person.\n\t@discussion Represents the title prefix of a user or person.\n\t\t\t\tie. Mr., Ms., Mrs., Dr., etc.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNamePrefix;\n\n/*!\n    @const      kODAttributeTypeProfiles\n    @abstract   Profiles associated with the record.\n */\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeProfiles __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODAttributeTypeProfilesTimestamp\n    @abstract   Timestamp for the profiles associated with the record.\n */\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeProfilesTimestamp __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const\t\tkODAttributeTypeProtocols\n    @abstract   List of protocols.\n    @discussion List of protocols.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeProtocols;\n\n/*!\n    @const\t\tkODAttributeTypeRecordName\n    @abstract   List of names/keys for this record.\n    @discussion List of names/keys for this record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeRecordName;\n\n/*!\n    @const\t\tkODAttributeTypeRelationships\n\t@abstract   attribute that defines the relationship to the record type.\n\t@discussion attribute that defines the relationship to the record type.\n\t\t\t\tfound in user records (kODRecordTypeUsers). \n\t\t\t\t\tExample: brother:John\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeRelationships;\n\n/*!\n    @const\t\tkODAttributeTypeResourceInfo\n    @abstract   attribute that defines a resource record's info.\n    @discussion attribute that defines a resource record's info.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeResourceInfo;\n\n/*!\n    @const\t\tkODAttributeTypeResourceType\n\t@abstract   Attribute type for the kind of resource. \n\t@discussion Attribute type for the kind of resource. \n\t\t\t\tfound in resource records (kODRecordTypeResources). \n\t\t\t\t\tExample: ConferenceRoom\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeResourceType;\n\n/*!\n    @const\t\tkODAttributeTypeState\n    @abstract   The state or province of a country.\n    @discussion The state or province of a country.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeState;\n\n/*!\n    @const\t\tkODAttributeTypeStreet\n\t@abstract   Represents the street address of a user or person.\n\t@discussion Represents the street address of a user or person.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeStreet;\n\n/*!\n    @const\t\tkODAttributeTypeNameSuffix\n\t@abstract   Represents the name suffix of a user or person.\n\t@discussion Represents the name suffix of a user or person.\n\t\t\t\ti.e., Jr., Sr., etc.\n\t\t\t\tUsually found in user or people records (kODRecordTypeUsers or \n\t\t\t\tkODRecordTypePeople).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNameSuffix;\n\n/*!\n    @const\t\tkODAttributeTypeURL\n    @abstract   List of URLs.\n    @discussion List of URLs.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeURL;\n\n/*!\n    @const\t\tkODAttributeTypeVFSOpts\n    @abstract   Used in support of mount records.\n    @discussion Used in support of mount records.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeVFSOpts;\n\n/*!\n    @const\t\tkODAttributeTypeAlias\n    @abstract   Alias attribute, contain pointer to another node/record/attribute.\n    @discussion Alias attribute, contain pointer to another node/record/attribute.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAlias;\n\n/*!\n    @const\t\tkODAttributeTypeAuthCredential\n    @abstract   An authentication credential, to be used to authenticate to a Directory.\n    @discussion An authentication credential, to be used to authenticate to a Directory.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAuthCredential;\n\n/*!\n    @const\t\tkODAttributeTypeCopyTimestamp\n    @abstract   Timestamp used in local account caching.\n    @discussion Timestamp used in local account caching.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCopyTimestamp;\n\n/*!\n    @const\t\tkODAttributeTypeDateRecordCreated\n    @abstract   Date of record creation.\n    @discussion Date of record creation.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeDateRecordCreated;\n\n/*!\n    @const\t\tkODAttributeTypeKerberosRealm\n    @abstract   Supports Kerberized SMB Server services.\n    @discussion Supports Kerberized SMB Server services.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeKerberosRealm;\n\n/*!\n    @const\t\tkODAttributeTypeNTDomainComputerAccount\n    @abstract   Supports Kerberized SMB Server services.\n    @discussion Supports Kerberized SMB Server services.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNTDomainComputerAccount;\n\n/*!\n    @const\t\tkODAttributeTypeOriginalHomeDirectory\n    @abstract   Home directory URL used in local account caching.\n    @discussion Home directory URL used in local account caching.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOriginalHomeDirectory;\n\n/*!\n    @const\t\tkODAttributeTypeOriginalNFSHomeDirectory\n    @abstract   NFS home directory used in local account caching.\n    @discussion NFS home directory used in local account caching.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOriginalNFSHomeDirectory;\n\n/*!\n    @const\t\tkODAttributeTypeOriginalNodeName\n    @abstract   Nodename used in local account caching.\n    @discussion Nodename used in local account caching.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeOriginalNodeName;\n\n/*!\n    @const\t\tkODAttributeTypePrimaryNTDomain\n    @abstract   Supports Kerberized SMB Server services.\n    @discussion Supports Kerberized SMB Server services.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrimaryNTDomain;\n\n/*!\n    @const\t\tkODAttributeTypePwdAgingPolicy\n    @abstract   Contains the password aging policy data for an authentication capable record.\n    @discussion Contains the password aging policy data for an authentication capable record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePwdAgingPolicy;\n\n/*!\n    @const\t\tkODAttributeTypeReadOnlyNode\n\t@abstract   Can be found using dsGetDirNodeInfo and will return one of\n\t\t\t\tReadOnly, ReadWrite, or WriteOnly strings.\n\t@discussion Can be found using dsGetDirNodeInfo and will return one of\n\t\t\t\tReadOnly, ReadWrite, or WriteOnly strings.\n\t\t\t\tNote that ReadWrite does not imply fully readable or writable\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeReadOnlyNode;\n\n/*!\n    @const\t\tkODAttributeTypeTimePackage\n    @abstract   Data of Create, Modify, Backup time in UTC.\n    @discussion Data of Create, Modify, Backup time in UTC.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeTimePackage;\n\n/*!\n    @const\t\tkODAttributeTypeTotalSize\n    @abstract   checksum/meta data.\n    @discussion checksum/meta data.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeTotalSize;\n\n/*!\n    @const\t\tkODAttributeTypeAuthMethod\n    @abstract   Authentication method for an authentication capable record.\n    @discussion Authentication method for an authentication capable record.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAuthMethod;\n\n/*!\n    @const\t\tkODAttributeTypeMetaNodeLocation\n    @abstract   Meta attribute returning registered node name by directory node plugin.\n    @discussion Meta attribute returning registered node name by directory node plugin.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeMetaNodeLocation;\n\n/*!\n    @const\t\tkODAttributeTypeNodePath\n\t@abstract   Attribute type in Neighborhood records describing the DS Node to search while\n\t\t\t\tlooking up aliases in this neighborhood.\n\t@discussion Attribute type in Neighborhood records describing the DS Node to search while\n\t\t\t\tlooking up aliases in this neighborhood.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNodePath;\n\n/*!\n    @const\t\tkODAttributeTypePlugInInfo\n\t@abstract   Information (version, signature, about, credits, etc.) about the plug-in\n\t\t\t\tthat is actually servicing a particular directory node.\n\t@discussion Information (version, signature, about, credits, etc.) about the plug-in\n\t\t\t\tthat is actually servicing a particular directory node.\n\t\t\t\tHas never been supported.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePlugInInfo;\n\n/*!\n    @const\t\tkODAttributeTypeRecordType\n    @abstract   Attribute for a Record or a Directory Node.\n    @discussion Attribute for a Record or a Directory Node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeRecordType;\n\n/*!\n    @const\t\tkODAttributeTypeSchema\n    @abstract   List of attribute types.\n    @discussion List of attribute types.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSchema;\n\n/*!\n    @const\t\tkODAttributeTypeSubNodes\n\t@abstract   Attribute of a node which lists the available subnodes\n\t\t\t\tof that node.\n\t@discussion Attribute of a node which lists the available subnodes\n\t\t\t\tof that node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSubNodes;\n\n/*!\n    @const\t\tkODAttributeTypeNetGroupTriplet\n\t@abstract   Attribute that defines the host, user and domain triplet combinations\n\t\t\t\tto support NetGroups.  Each attribute value is comma separated string to maintain the\n\t\t\t\ttriplet (e.g., host,user,domain).\n\t@discussion Attribute that defines the host, user and domain triplet combinations\n\t\t\t\tto support NetGroups.  Each attribute value is comma separated string to maintain the\n\t\t\t\ttriplet (e.g., host,user,domain).\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNetGroupTriplet;\n\n/*!\n    @const\t\tkODAttributeTypeSearchPath\n    @abstract   Search path used by the search node.\n    @discussion Search path used by the search node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSearchPath;\n\n/*!\n    @const\t\tkODAttributeTypeSearchPolicy\n    @abstract   Search policy for the search node.\n    @discussion Search policy for the search node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeSearchPolicy;\n\n/*!\n    @const\t\tkODAttributeTypeAutomaticSearchPath\n    @abstract   Automatic search path defined by the search node.\n    @discussion Automatic search path defined by the search node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAutomaticSearchPath;\n\n/*!\n    @const\t\tkODAttributeTypeLocalOnlySearchPath\n    @abstract   Local only search path defined by the search node.\n    @discussion Local only search path defined by the search node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeLocalOnlySearchPath;\n\n/*!\n    @const\t\tkODAttributeTypeCustomSearchPath\n    @abstract   Admin user configured custom search path defined by the search node.\n    @discussion Admin user configured custom search path defined by the search node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCustomSearchPath;\n\n/*!\n    @const      kODAttributeTypeNodeOptions\n    @abstract   Any extended options supported by the node during creation\n    @discussion Any extended options supported by the node during creation\n */\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNodeOptions __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n/*!\n    @const      kODAttributeTypeNodeSASLRealm\n    @abstract   Contains the SASL realm associated with this node (if any)\n    @discussion Contains the SASL realm associated with this node (if any)\n */\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNodeSASLRealm __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n\t@const\t\tkODAttributeTypeAdvertisedServices\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAdvertisedServices __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n/*!\n\t@const\t\tkODAttributeTypeLocaleRelay\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeLocaleRelay __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n/*!\n\t@const\t\tkODAttributeTypeLocaleSubnets\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeLocaleSubnets __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n/*!\n\t@const\t\tkODAttributeTypeNetworkInterfaces\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNetworkInterfaces __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n/*!\n\t@const\t\tkODAttributeTypeParentLocales\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeParentLocales __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n/*!\n\t@const\t\tkODAttributeTypePrimaryLocale\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePrimaryLocale __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n#pragma mark Attribute Types (Configure Node)\n\n/*!\n    @const\t\tkODAttributeTypeBuildVersion\n    @abstract   Build version for reference.\n    @discussion Build version for reference.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeBuildVersion;\n\n/*!\n    @const\t\tkODAttributeTypeConfigAvail\n    @abstract   Config avail tag.\n    @discussion Config avail tag.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeConfigAvailable;\n\n/*!\n    @const\t\tkODAttributeTypeConfigFile\n    @abstract   Config file name.\n    @discussion Config file name.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeConfigFile;\n\n/*!\n    @const\t\tkODAttributeTypeCoreFWVersion\n    @abstract   Core FW version for reference.\n    @discussion Core FW version for reference.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeCoreFWVersion;\n\n/*!\n    @const\t\tkODAttributeTypeFunctionalState\n    @abstract   Functional state of plugin for example.\n    @discussion Functional state of plugin for example.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeFunctionalState;\n\n/*!\n    @const\t\tkODAttributeTypeFWVersion\n    @abstract   Framework version for reference.\n    @discussion Framework version for reference.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeFWVersion;\n\n/*!\n    @const\t\tkODAttributeTypePluginIndex\n    @abstract   Plugin index for reference.\n    @discussion Plugin index for reference.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePluginIndex;\n\n/*!\n    @const\t\tkODAttributeTypeNumTableList\n    @abstract   Summary of the reference table entries presented as attribute values \n\t\t\t\tfrom the Configure node.\n    @discussion Summary of the reference table entries presented as attribute values\n\t\t\t\tfrom the Configure node.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNumTableList;\n\n/*!\n    @const\t\tkODAttributeTypeVersion\n    @abstract   Version label.\n    @discussion Version label.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeVersion;\n\n/*!\n    @const\t\tkODAttributeTypePIDValue\n    @abstract   PID value.\n    @discussion PID value.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypePIDValue;\n\n/*!\n    @const\t\tkODAttributeTypeProcessName\n    @abstract   Process Name.\n    @discussion Process Name.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeProcessName;\n\n/*!\n    @const\t\tkODAttributeTypeTotalRefCount\n    @abstract   Total count of references for a process.\n    @discussion Total count of references for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeTotalRefCount;\n\n/*!\n    @const\t\tkODAttributeTypeDirRefCount\n    @abstract   Directory reference count for a process.\n    @discussion Directory reference count for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeDirRefCount;\n\n/*!\n    @const\t\tkODAttributeTypeNodeRefCount\n    @abstract   Node reference count for a process.\n    @discussion Node reference count for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNodeRefCount;\n\n/*!\n    @const\t\tkODAttributeTypeRecRefCount\n    @abstract   Record reference count for a process.\n    @discussion Record reference count for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeRecRefCount;\n\n/*!\n    @const\t\tkODAttributeTypeAttrListRefCount\n    @abstract   Attribute List reference count for a process.\n    @discussion Attribute List reference count for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAttrListRefCount;\n\n/*!\n    @const\t\tkODAttributeTypeAttrListValueRefCount\n    @abstract   Attr List Value reference count for a process.\n    @discussion Attr List Value reference count for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAttrListValueRefCount;\n\n/*!\n    @const\t\tkODAttributeTypeDirRefs\n    @abstract   All the directory references for a process.\n    @discussion All the directory references for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeDirRefs;\n\n/*!\n    @const\t\tkODAttributeTypeNodeRefs\n    @abstract   All the node references for a process.\n    @discussion All the node references for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeNodeRefs;\n\n/*!\n    @const\t\tkODAttributeTypeRecRefs\n    @abstract   All the record references for a process.\n    @discussion All the record references for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeRecRefs;\n\n/*!\n    @const\t\tkODAttributeTypeAttrListRefs\n    @abstract   All the attribute list references for a process.\n    @discussion All the attribute list references for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAttrListRefs;\n\n/*!\n    @const\t\tkODAttributeTypeAttrListValueRefs\n    @abstract   All the attribute list value references for a process.\n    @discussion All the attribute list value references for a process.\n*/\nCF_EXPORT\nconst ODAttributeType kODAttributeTypeAttrListValueRefs;\n\n#pragma mark Authentication Types\n\n/*!\n    @const\t\tkODAuthenticationType2WayRandom\n\t@abstract   Two way random authentication method.\n\t@discussion Two way random authentication method. This method uses two passes to\n\t\t\t\tcomplete the authentication.\n\n\t\t\t\tFirst pass authentication array has items:\n\t\t\t\t\tuser name in UTF8 encoding\n\n\t\t\t\tSecond pass authentication array has items:\n\t\t\t\t\t8 byte DES digest,\n\t\t\t\t\t8 bytes of random\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationType2WayRandom;\n\n/*!\n    @const\t\tkODAuthenticationType2WayRandomChangePasswd\n\t@abstract   Change the password for a user using the two-way random method.\n\t@discussion Change the password for a user using the two-way random method.\n\t\t\t\tDoes not require prior authentication.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\told password encrypted with new (should be 8 chars),\n\t\t\t\t\tnew password encrypted with old (should be 8 chars)\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationType2WayRandomChangePasswd;\n\n/*!\n    @const\t\tkODAuthenticationTypeAPOP\n\t@abstract   APOP authentication method.\n\t@discussion APOP authentication method.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tserver challenge in UTF8 encoding,\n\t\t\t\t\tclient response in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeAPOP;\n\n/*!\n    @const\t\tkODAuthenticationTypeCRAM_MD5\n\t@abstract   CRAM MD5 authentication method.\n\t@discussion CRAM MD5 authentication method.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tserver challenge in UTF8 encoding,\n\t\t\t\t\tclient response data\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeCRAM_MD5;\n\n/*!\n    @const\t\tkODAuthenticationTypeChangePasswd\n\t@abstract   Change the password for a user.\n\t@discussion Change the password for a user. Does not require prior authentication.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\told password in UTF8 encoding,\n\t\t\t\t\tnew password in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeChangePasswd;\n\n/*!\n    @const\t\tkODAuthenticationTypeClearText\n\t@abstract   Clear text authentication method.\n\t@discussion Clear text authentication method.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tpassword in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeClearText;\n\n/*!\n    @const\t\tkODAuthenticationTypeCrypt\n\t@abstract   Use a crypt password stored in the user record if available to\n\t\t\t\tdo the authentication.\n\t@discussion Use a crypt password stored in the user record if available to\n\t\t\t\tdo the authentication.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tpassword in UTF8 encoding\n\n\t\t\t\tThis method may not be supported by all plug-ins or for all users.\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeCrypt;\n\n/*!\n    @const\t\tkODAuthenticationTypeDIGEST_MD5\n\t@abstract   Digest MD5 authentication method.\n\t@discussion Digest MD5 authentication method.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tserver challenge in UTF8 encoding,\n\t\t\t\t\tclient response data,\n\t\t\t\t\tHTTP method in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeDIGEST_MD5;\n\n/*!\n    @const\t\tkODAuthenticationTypeDeleteUser\n\t@abstract   Used for Apple password server user deletion.\n\t@discussion Used for Apple password server user deletion.\n\t\t\t\tThis authentication method is only implemented by the PasswordServer node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tPassword Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator password in UTF8 encoding,\n\t\t\t\t\tuser's Password Server ID in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeDeleteUser;\n\n/*!\n    @const\t\tkODAuthenticationTypeGetEffectivePolicy\n\t@abstract   Used to extract, from a password server, the actual policies that will be applied\n\t\t\t\tto a user; a combination of global and user policies.\n\t@discussion Used to extract, from a password server, the actual policies that will be applied\n\t\t\t\tto a user; a combination of global and user policies.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name or Password Server ID in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeGetEffectivePolicy;\n\n/*!\n    @const\t\tkODAuthenticationTypeGetGlobalPolicy\n\t@abstract   Used for extraction of global authentication policy.\n\t@discussion Used for extraction of global authentication policy. Authentication\n\t\t\t\tis not required to get policies. The authenticator name and password\n\t\t\t\tfields are optional.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding\n\t\t\t\t\tpassword in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeGetGlobalPolicy;\n\n/*!\n    @const\t\tkODAuthenticationTypeGetKerberosPrincipal\n\t@abstract   Retrieves Kerberos Principal name.\n\t@discussion Retrieves Kerberos Principal name.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeGetKerberosPrincipal;\n\n/*!\n    @const\t\tkODAuthenticationTypeGetPolicy\n\t@abstract   The plug-in should determine which specific authentication method to use.\n\t@discussion The plug-in should determine which specific authentication method to use.\n\t\t\t\tAuthentication is not required to get policies. The authenticator name and password\n\t\t\t\tfields may be left blank by using a length of 1 and a zero-byte for the data.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tauthenticator's name or Password Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding\n\t\t\t\t\taccount's name or Password Server ID\n\n\t\t\t\tThe Password Server does not require authentication for this authentication method.\n\t\t\t\tThe first two fields are to cover us for future policy changes and to keep the buffer\n\t\t\t\tformat as standardized as possible.\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeGetPolicy;\n\n/*!\n    @const\t\tkODAuthenticationTypeGetUserData\n\t@abstract   Used with Apple password server.\n\t@discussion Used with Apple password server. The password server maintains a space\n\t\t\t\tfor a small amount of miscellaneous data.\n\t\t\t\tThis authentication method is only implemented by the PasswordServer node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tauthenticator's Password Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding\n\t\t\t\t\tPassword Server ID in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeGetUserData;\n\n/*!\n    @const\t\tkODAuthenticationTypeGetUserName\n\t@abstract   Used with Apple password server.\n\t@discussion Used with Apple password server. This name is the same as the primary\n\t\t\t\tshort name for the user.\n\t\t\t\tThis authentication method is only implemented by the PasswordServer node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tauthenticator's Password Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding,\n\t\t\t\t\tuser's Password Server ID in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeGetUserName;\n\n/*!\n    @const\t\tkODAuthenticationTypeKerberosTickets\n\t@abstract   Provides write-access to LDAP with an existing Kerberos ticket.\n\t@discussion Provides write-access to LDAP with an existing Kerberos ticket\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tkrb5_data containing a service ticket\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeKerberosTickets;\n\n/*!\n    @const\t\tkODAuthenticationTypeMPPEMasterKeys\n\t@abstract   Generated 40-bit or 128-bit master keys from MS-CHAPv2 credentials (RFC 3079).\n\t@discussion Generated 40-bit or 128-bit master keys from MS-CHAPv2 credentials (RFC 3079).\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tMS-CHAPv2 digest (P24),\n\t\t\t\t\tkey size, 8 or 16 (packed as a byte, not a string)\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeMPPEMasterKeys;\n\n/*!\n    @const\t\tkODAuthenticationTypeMSCHAP2\n\t@abstract\tMS-CHAP2 is a mutual authentication method.\n\t@discussion\tMS-CHAP2 is a mutual authentication method. The plug-in will generate the data to\n\t\t\t\tsend back to the client and put it in the continue items array.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tserver challenge,\n\t\t\t\t\tpeer challenge,\n\t\t\t\t\tclient's digest,\n\t\t\t\t\tclient's user name (the name used for MS-CHAPv2, usually the first short name)\n\n\t\t\t\tContinue items array contains:\n\t\t\t\t\tdigest for the client's challenge\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeMSCHAP2;\n\n/*!\n    @const\t\tkODAuthenticationTypeNTLMv2\n\t@abstract   Verifies an NTLMv2 challenge and response.\n\t@discussion Verifies an NTLMv2 challenge and response. The session keys\n\t\t\t\t(if any) must be retrieved separately with a trusted authentication.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tSMB server challenge,\n\t\t\t\t\tthe client \"blob\" which includes 16 bytes of client digest prefixed\n\t\t\t\t\t\tto the the blob data,\n\t\t\t\t\tthe user name used to calculate the digest in UTF8 encoding,\n\t\t\t\t\tthe SMB domain in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeNTLMv2;\n\n/*!\n    @const\t\tkODAuthenticationTypeNTLMv2WithSessionKey\n\t@abstract   An optimized method that checks the user's challenge and response\n\t\t\t\tand retrieves session keys in a single call.\n\t@discussion An optimized method that checks the user's challenge and response\n\t\t\t\tand retrieves session keys in a single call. If the NTLMv2 session key is\n\t\t\t\tsupported, it is returned in the step buffer.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tSMB server challenge,\n\t\t\t\t\tthe client \"blob\" which includes 16 bytes of client digest prefixed\n\t\t\t\t\t\tto the the blob data,\n\t\t\t\t\tthe user name used to calculate the digest  in UTF8 encoding,\n\t\t\t\t\tthe SMB domain in UTF8 encoding,\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tauthenticator password in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeNTLMv2WithSessionKey;\n\n/*!\n    @const\t\tkODAuthenticationTypeNewUser\n\t@abstract\tCreate a new user record with the authentication authority.\n\t@discussion\tCreate a new user record with the authentication authority\n\t\t\t\tThis authentication method is only implemented by the PasswordServer node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tauthenticator's Password Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding,\n\t\t\t\t\tuser's short-name,\n\t\t\t\t\tuser's password\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeNewUser;\n\n/*!\n    @const\t\tkODAuthenticationTypeNewUserWithPolicy\n\t@abstract\tCreate a new user record with the authentication authority and initial policy settings.\n\t@discussion\tCreate a new user record with the authentication authority and initial policy settings\n\t\t\t\tThis authentication method is only implemented by the PasswordServer node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tauthenticator's Password Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding,\n\t\t\t\t\tuser's short-name,\n\t\t\t\t\tuser's password,\n\t\t\t\t\tpolicy string in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeNewUserWithPolicy;\n\n/*!\n    @const\t\tkODAuthenticationTypeNodeNativeClearTextOK\n\t@abstract   The plug-in should determine which specific authentication method to use.\n\t@discussion The plug-in should determine which specific authentication method to use.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tpassword in UTF8 encoding\n\n\t\t\t\tThe plug-in may choose to use a cleartext authentication method if necessary.\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeNodeNativeClearTextOK;\n\n/*!\n    @const\t\tkODAuthenticationTypeNodeNativeNoClearText\n\t@abstract   The plug-in should determine which specific authentication method to use.\n\t@discussion The plug-in should determine which specific authentication method to use.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tpassword in UTF8 encoding\n\n\t\t\t\tThe plug-in must not use an authentication method that sends the password in cleartext.\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeNodeNativeNoClearText;\n\n/*!\n    @const\t\tkODAuthenticationTypeReadSecureHash\n\t@abstract   Returns the SHA1 or Seeded SHA1 hash for a local user.\n\t@discussion Returns the SHA1 or Seeded SHA1 hash for a local user\n\t\t\t\tOnly accessible by root processes. Only implemented by the local node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser's name in UTF8 encoding\n\n\t\t\t\tContinue items array contains:\n\t\t\t\t\tvalue, either the old 20-byte SHA1 or the new seeded 24-byte SHA1.\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeReadSecureHash;\n\n/*!\n    @const\t\tkODAuthenticationTypeSMBNTv2UserSessionKey\n\t@abstract   Generate the ntlm-v2 user session key.\n\t@discussion Generate the ntlm-v2 user session key. Requires prior authentication with a trusted\n\t\t\t\tauthentication method.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\t8 byte server challenge\n\t\t\t\t\tclient response buffer\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSMBNTv2UserSessionKey;\n\n/*!\n    @const\t\tkODAuthenticationTypeSMBWorkstationCredentialSessionKey\n    @abstract   Generates an SMB workstation credential session key.\n    @discussion Generates an SMB workstation credential session key.\n \n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\t8 byte server challenge + 8 byte client challenge\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSMBWorkstationCredentialSessionKey;\n\n/*!\n    @const\t\tkODAuthenticationTypeSMB_LM_Key\n\t@abstract   SMB Lan Manager authentication method.\n\t@discussion SMB Lan Manager authentication method.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\t8 byte server challenge,\n\t\t\t\t\t24 byte client response\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSMB_LM_Key;\n\n/*!\n    @const\t\tkODAuthenticationTypeSMB_NT_Key\n\t@abstract   SMB NT authentication method.\n\t@discussion SMB NT authentication method.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\t8 byte server challenge,\n\t\t\t\t\t24 byte client response\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSMB_NT_Key;\n\n/*!\n    @const\t\tkODAuthenticationTypeSMB_NT_UserSessionKey\n\t@abstract   Used by SMB to get session keys.\n\t@discussion Used by SMB to get session keys\n\t\t\t\tThis authentication method is only implemented by the PasswordServer node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tPassword Server ID in UTF8 encoding\n\n\t\t\t\tContinue items array contains:\n\t\t\t\t\tMD4( ntHash )\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSMB_NT_UserSessionKey;\n\n/*!\n    @const\t\tkODAuthenticationTypeSMB_NT_WithUserSessionKey\n\t@abstract   Used by SMB to authenticate and get session keys.\n\t@discussion Used by SMB to authenticate and get session keys\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\t8 byte server challenge,\n\t\t\t\t\t24 byte client response,\n\t\t\t\t\tauthenticator name in UTF8 encoding,\n\t\t\t\t\tauthenticator password in UTF8 encoding\n\n\t\t\t\tContinue items array contains:\n\t\t\t\t\tMD4( ntHash )\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSMB_NT_WithUserSessionKey;\n\n/*!\n    @const\t\tkODAuthenticationTypeSecureHash\n\t@abstract   Authentication specifically using the secure hash.\n\t@discussion Authentication specifically using the secure hash.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tsalted SHA1 hash\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSecureHash __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_6, __MAC_10_7, __IPHONE_NA, __IPHONE_NA);\n\n/*!\n\t@const\t\tkODAuthenticationTypeSetCertificateHashAsCurrent\n\t@abstract\tSet certificate using the authenticated user's credentials.\n\t@discussion\tSet certificate using the authenticated user's credentials.\n\n\t\t\t\tAuthentication array has the following items in order:\n\t\t\t\t\tuser name in UTF8 encoding\n\t\t\t\t\thashed certificate data (40 hex characters)\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetCertificateHashAsCurrent __OSX_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_NA);\n\n/*!\n    @const\t\tkODAuthenticationTypeSetGlobalPolicy\n\t@abstract   Used to set the global policy.\n\t@discussion Used to set the global policy.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name or Password Server ID in UTF8 encoding,\n\t\t\t\t\tpassword in UTF8 encoding,\n\t\t\t\t\tpolicy string in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetGlobalPolicy;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetLMHash\n\t@abstract   Set the LAN Manager hash for an account.\n\t@discussion Set the LAN Manager hash for an account. This method requires prior authentication.\n\t\t\t\tSetting the LM hash for an account instead of the plain text password can cause the Windows\n\t\t\t\tpassword to get out-of-sync with the password for other services. Therefore, this\n\t\t\t\tauthentication method should only be used when there is no other choice.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tLAN Manager hash buffer\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetLMHash;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetNTHash\n\t@abstract   Set the NT hash for a user.\n\t@discussion Set the NT hash for a user. This method requires prior authentication.\n\t\t\t\tSetting the NT hash for an account instead of the plain text password can cause the Windows\n\t\t\t\tpassword to get out-of-sync with the password for other services. Therefore, this\n\t\t\t\tauthentication method should only be used when there is no other choice.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tNT hash buffer\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetNTHash;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetPassword\n\t@abstract   Set password method.\n\t@discussion Set password method.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tnew password in UTF8 encoding,\n\t\t\t\t\tauthenticator's name in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetPassword;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetPasswordAsCurrent\n\t@abstract   Set password using the current credentials.\n\t@discussion Set password using the current credentials.\n \n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tnew password in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetPasswordAsCurrent;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetPolicy\n\t@abstract   The plug-in should determine which specific authentication method to use.\n\t@discussion The plug-in should determine which specific authentication method to use.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tauthenticator's name or Password Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding,\n\t\t\t\t\tname or Password Server ID of the target account in UTF8 encoding,\n\t\t\t\t\tpolicy data\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetPolicy;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetPolicyAsCurrent\n\t@abstract   A set policy for the password server.\n\t@discussion A set policy for the password server.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name or Password Server ID of the target account in UTF8 encoding,\n\t\t\t\t\tpolicy data\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetPolicyAsCurrent;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetUserData\n\t@abstract   Used for Apple password server.\n\t@discussion Used for Apple password server.\n\t\t\t\tThis authentication method is only implemented by the PasswordServer node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tauthenticator's Password Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding,\n\t\t\t\t\tPassword Server ID in UTF8 encoding,\n\t\t\t\t\tuser data\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetUserData;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetUserName\n\t@abstract   Used for Apple password server.\n\t@discussion Used for Apple password server.\n\t\t\t\tThis authentication method is only implemented by the PasswordServer node.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tauthenticator's Password Server ID in UTF8 encoding,\n\t\t\t\t\tauthenticator's password in UTF8 encoding,\n\t\t\t\t\tPassword Server ID in UTF8 encoding,\n\t\t\t\t\tuser's short name in UTF8 encoding\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetUserName;\n\n/*!\n    @const\t\tkODAuthenticationTypeSetWorkstationPassword\n\t@abstract   Supports PDC SMB interaction with DS.\n\t@discussion Supports PDC SMB interaction with DS.\n \n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tworkstation's Password Server ID in UTF8 encoding,\n\t\t\t\t\tNT hash\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeSetWorkstationPassword;\n\n/*!\n    @const\t\tkODAuthenticationTypeWithAuthorizationRef\n\t@abstract\tAllows access to local directories as root with a valid AuthorizationRef.\n\t@discussion\tAllows access to local directories as root with a valid AuthorizationRef.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\texternalized AuthorizationRef\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeWithAuthorizationRef;\n\n/*!\n    @const\t\tkODAuthenticationTypeWriteSecureHash\n\t@abstract\tSupports ONLY a root process to be able to directly write the secure hash of a user record.\n\t@discussion\tSupports ONLY a root process to be able to directly write the secure hash of a user record.\n\n\t\t\t\tAuthentication array has following items in order:\n\t\t\t\t\tuser name in UTF8 encoding,\n\t\t\t\t\tsalted SHA1 hash\n*/\nCF_EXPORT\nconst ODAuthenticationType kODAuthenticationTypeWriteSecureHash;\n\n#pragma mark Policy Types\n\n/*!\n    @const      kODPolicyTypePasswordCannotBeAccountName\n    @abstract   Boolean signifying the password must not contain the name of the account.\n    @discussion Boolean signifying the password must not contain the name of the account.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordCannotBeAccountName __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordChangeRequired\n    @abstract   Boolean stating the password should be changed on next logon.\n    @discussion Should be set to a CFBooleanRef/NSNumber accordingly to signify the password should be changed at next logon.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordChangeRequired __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordHistory\n    @abstract   The number of previous passwords that will be remembered.\n    @discussion Should be set with a CFNumber/NSNumber accordingly with a range of 1 to 15 passwords.  Remove this policy or\n                set to 0 if no history is tracked.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordHistory __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordMinimumNumberOfCharacters\n    @abstract   The minimum number of characters a password must contain.\n    @discussion A CFNumber/NSNumber signifying the minimum number of characters a password must contain.\n */\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordMinimumNumberOfCharacters __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordMaximumNumberOfCharacters\n    @abstract   The maximum number of characters a password can contain.\n    @discussion A CFNumber/NSNumber signifying the maximum number of characters a password can contain.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordMaximumNumberOfCharacters __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordMaximumAgeInMinutes\n    @abstract   Number of minutes before password must be changed.\n    @discussion The value for the policy should be a CFNumberRef/NSNumber accordingly.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordMaximumAgeInMinutes __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordRequiresAlpha\n    @abstract   Sets the number of alpha characters that must present in the password.\n    @discussion A CFNumber/NSNumber signifying the number of alpha characters [A-Z][a-z] that must be present in the password.\n                Note, not all modules will support this capability.  If you exceed the module's capabilities, it will reset to\n                the maximum supported by that module.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordRequiresAlpha __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordRequiresMixedCase\n    @abstract   Boolean signifying if password requires mixed case characters both upper and lower characters.\n    @discussion Boolean signifying if password requires mixed case characters both upper and lower characters.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordRequiresMixedCase __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordRequiresNumeric\n    @abstract   Sets the number of numeric characters that must present in the password.\n    @discussion A CFNumber/NSNumber signifying the number of numeric characters [0-9] that must be present in the password.\n                Note, not all modules will support this capability.  If you exceed the module's capabilities, it will reset to\n                the maximum supported by that module.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordRequiresNumeric __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordRequiresSymbol\n    @abstract   Sets the number of symbol characters that must present in the password.\n    @discussion A CFNumber/NSNumber signifying the number of symbol characters that must be present in the password.\n                Note, not all modules will support this capability.  If you exceed the module's capabilities, it will reset to\n                the maximum supported by that module.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordRequiresSymbol __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordSelfModification\n    @abstract   Boolean stating if the account is allowed to change their own password.\n    @discussion Should be set to a CFBooleanRef/NSNumber accordingly to signify the if the account holder is allowed to change\n                their own password.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypePasswordSelfModification __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypeAccountExpiresOnDate\n    @abstract   Date when an account expires and becomes deactivated.\n    @discussion A CFDate/NSDate signifying when an account expires will be deactivated.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypeAccountExpiresOnDate __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypeAccountMaximumFailedLogins\n    @abstract   Sets the number of maximum failed logins allowed for the account.\n    @discussion A CFNumber/NSNumber signifying the number of times a bad password can be entered before the account is locked out.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypeAccountMaximumFailedLogins __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypeAccountMaximumMinutesUntilDisabled\n    @abstract   Sets the number of maximum number of minutes before this account is disabled automatically from password set.\n    @discussion A CFNumber/NSNumber signifying the number of minutes before the account should be auto-disabled.  Note,\n                calculation of this is based on timestamp of the password, therefore also preventing the password from\n                being changed is required.\n */\nCF_EXPORT\nconst ODPolicyType kODPolicyTypeAccountMaximumMinutesUntilDisabled __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypePasswordMinutesUntilFailedLoginReset\n    @abstract   Number of minutes before an account locked out by bad passwords is automatically re-activated.\n    @discussion The value for the policy should be a CFNumberRef/NSNumber accordingly.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypeAccountMinutesUntilFailedLoginReset __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyTypeMaximumMinutesOfNonUse\n    @abstract   Maximum number of minutes that an account has not been used before it is deactivated.\n    @discussion A CFNumber/NSNumber signifying the number of minutes before an account has not been used before it is deactivated.\n*/\nCF_EXPORT\nconst ODPolicyType kODPolicyTypeAccountMaximumMinutesOfNonUse __OSX_AVAILABLE_STARTING(__MAC_10_9, __IPHONE_NA);\n\n/*!\n   @enum        Expiration constants\n   @abstract    Special values that may be returned by ODRecordSecondsUntil*Expires().\n   @constant    kODExpirationTimeExpired indicates the password or authentication\n                has expired.\n   @constant    kODExpirationTimeNeverExpires indicates the password or\n                authentication will never expire. \n*/\nenum {\n    kODExpirationTimeExpired      = 0LL,\n    kODExpirationTimeNeverExpires = -1LL,\n};\n\n/*!\n    @typedef    kODPolicyKeyType\n    @abstract   Type for the keys in a policy dictionary.\n    @discussion Type for the keys in a policy dictionary.  These are the\n                expected keys in a policy.  Some keys are optional.  For more\n                information see the the specific key.  Some keys are used in\n                individual policies, others in a policy set.\n*/\n#ifdef __OBJC__\ntypedef NSString *ODPolicyKeyType;\n#else\ntypedef CFStringRef ODPolicyKeyType;\n#endif\n\n/*!\n    @const      kODPolicyKeyIdentifier\n    @abstract   Key for the policy identifier in a policy dictionary.\n    @discussion Key for the policy identifier in a policy dictionary.  Required\n                key in a policy dictionary.  The value of this key is a string\n                that uniquely identifies the policy.  It can be anything from a\n                GUID to a string that describes the policy (e.g. \"max num chars\"). \n */\nCF_EXPORT\nconst ODPolicyKeyType kODPolicyKeyIdentifier __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyKeyParameters\n    @abstract   Key for the policy parameters, if any, in a policy dictionary.\n    @discussion Key for the policy parameters, if any, in a policy dictionary.\n                Optional key in a policy dictionary.  The value of this key is a\n                dictionary containing any parameters that are relevant to the\n                policy.  Parameters may be used for information purposes or to\n                provide additional data to be used in the policy format string.\n */\nCF_EXPORT\nconst ODPolicyKeyType kODPolicyKeyParameters __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyKeyContent\n    @abstract   Key for the policy format string in a policy dictionary.\n    @discussion Key for the policy format string in a policy dictionary.\n                Required key in a policy dictionary.  The value of this key is a\n                string containing the policy itself, from which a predicate will\n                be created.  The predicate will be applied during policy\n                evaluation. \n */\nCF_EXPORT\nconst ODPolicyKeyType kODPolicyKeyContent __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n\n/*!\n    @typedef    ODPolicyCategoryType\n    @abstract   Type for the policy categories.\n    @discussion Type for the policy categories.  Policy categories are also keys\n                in a policy set dictionary, where the value of each category is\n                an array of policy dictionaries.\n*/\n#ifdef __OBJC__\ntypedef NSString *ODPolicyCategoryType;\n#else\ntypedef CFStringRef ODPolicyCategoryType;\n#endif\n\n/*!\n    @const      kODPolicyCategoryAuthentication\n    @abstract   Category for policies controlling when authentications are allowed.\n    @discussion Category for policies controlling when authentications are allowed.  \n                Policies in this category are evaluated when determining if an\n                authentication should be allowed or when authentications will\n                expire.  This constant is also used as a key in a policy set\n                dictionary with a value containing an array of policy\n                dictionaries. \n */\nCF_EXPORT\nODPolicyCategoryType kODPolicyCategoryAuthentication __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyCategoryPasswordContent\n    @abstract   Category for policies controlling content of passwords.\n    @discussion Category for policies controlling content of passwords.\n                Policies in this category are evaluated when determining if a\n                password contains the required content, which is typically done\n                during password changes.  This constant is also used as a key in\n                a policy set dictionary with a value containing an array of\n                policy dictionaries.\n */\nCF_EXPORT\nODPolicyCategoryType kODPolicyCategoryPasswordContent __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyCategoryPasswordChange\n    @abstract   Category for policies controlling when password require changing.\n    @discussion Category for policies controlling when password require changing.\n */\nCF_EXPORT\nODPolicyCategoryType kODPolicyCategoryPasswordChange __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n\n/*!\n    @typedef    kODPolicyAttributeType\n    @abstract   Type for attributes that may be used in policies.\n    @discussion Type for attributes that may be used in policies.  Policies in\n                this category will be evaluated when determining if an\n                authentication should be allowed or when determine when a\n                password will expire.  This constant is also used as a key in a\n                policy set dictionary with a value containing an array of policy\n                dictionaries. \n*/\n#ifdef __OBJC__\ntypedef NSString *ODPolicyAttributeType;\n#else\ntypedef CFStringRef ODPolicyAttributeType;\n#endif\n\n/*!\n    @const      kODPolicyAttributeRecordName\n    @abstract   Policy attribute for the record name.\n    @discussion Policy attribute for the record name.  May be used in policies\n                to compare against other record attributes.  For example, this\n                Password Content policy string prevents the password from being\n                the same as the record name:\n                    [NSString stringWithFormat:@\"%@ != %@\", kODPolicyAttributeRecordName, kODPolicyAttributePassword];\n */\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeRecordName __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeRecordType\n    @abstract   Policy attribute for the record type.\n    @discussion Policy attribute for the record type.  Could be used in policies\n                to tailor behavior for a particular record type.  For example,\n                this Password Content policy string would require computer\n                passwords to be a minimum of 24 characters long:\n                    [NSString stringWithFormat:@\"%@ == %@ and %@ matches '.{24,}+'\",\n                              kODPolicyAttributeRecordType, kODRecordTypeComputer,\n                              kODPolicyAttributePassword]; \n */\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeRecordType __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n\n/*!\n    @const      kODPolicyAttributePassword\n    @abstract   Policy attribute for the password.\n    @discussion Policy attribute for the password in plain text.  May be used in\n\t\tpolicies to compare against other attributes or for evaluation\n\t\tagainst regular expressions.  Primarily useful in the Password\n\t\tContent policies.  For example, this policy string checks\n\t\twhether the password length is at least 8 characters: \n                    [NSString stringWithFormat:@\"%@ matches '.{8,}+'\", kODPolicyAttributePassword];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributePassword __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributePasswordHashes\n    @abstract   Policy attribute for the password hashes\n    @discussion Policy attribute for the password hashes.  The value should be a\n\t\tCFArray containing one or more CFData values representing a\n\t\tpassword hash.\n\n\t\tUsed in Password Content policy strings to compare the new\n\t\tpassword against the password history, for example:\n                    [NSString stringWithFormat:@\"none %@ in %@\", kODPolicyAttributePasswordHashes, kODPolicyAttributePasswordHistory];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributePasswordHashes __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributePasswordHistory\n    @abstract   Policy attribute for the list of previous password hashes\n    @discussion Policy attribute for the list of previous password hashes.  The\n\t\tvalue of this attribute is a CFArray containing one or more\n\t\tCFData elements representing a hash of a previous password.\n\t\tHash types may be mixed.\n\n\t\tUsed in Password Content policy strings to compare the new\n\t\tpassword against the password history, for example:\n                    [NSString stringWithFormat:@\"none %@ in %@\", kODPolicyAttributePasswordHashes, kODPolicyAttributePasswordHistory];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributePasswordHistory __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributePasswordHistoryDepth\n    @abstract   Policy attribute for the number of previous hashed passwords to keep.\n    @discussion Policy attribute for the number of previous hashed passwords to\n                keep.  Should used as a key in the policy parameter dictionary,\n                with a CFNumber value, specifying the number of password to keep.\n                Should not be used in a policy string. \n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributePasswordHistoryDepth __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeCurrentDate\n    @abstract   Policy attribute for the current date and time as a CFDate.\n    @discussion Policy attribute for the current date and time as a CFDate used\n                in policy strings to compare the current date against another\n                date.  The following policy string would allow authentications\n                until the expiration date: \n                    [NSString stringWithFormat:@\"%@ < %@\", kODPolicyAttributeCurrentDate, kODPolicyAttributeExpiresOnDate];\n\n                Do not use kODPolicyAttributeCurrentDate in policies where date\n                arithmetic is needed; for those policies use\n                kODPolicyAttributeCurrentTime instead.\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeCurrentDate __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeCurrentTime\n    @abstract   Policy attribute for the current date and time in seconds.\n    @discussion Policy attribute for the current date and time in seconds since\n                the Unix epoch.  Used in policy strings to compare the\n                current time against other times.  Suitable for use in policies\n                where \"date arithmetic\" is needed (i.e. adding/subtracting\n                values to/from the current time or another time in seconds).\n                Ensure all times and date arithmetic in the policy are specified\n                in seconds.\n\n                Note that kODPolicyAttributeExpiresEveryNDays needs to be\n                converted to seconds to match the units of the other times.  The\n                special keyword DAYS_TO_SECONDS can be used to accomplish this.\n\n                In the policy below, password changes are required every 90 days\n                (kODPolicyAttributeExpiresEveryNDays = 90).\n\n                    [NSString stringWithFormat:@\"%@ < %@ + (%@ * DAYS_TO_SECONDS)\",\n                              kODPolicyAttributeCurrentTime,\n                              kODPolicyAttributeLastPasswordChangeTime,\n                              kODPolicyAttributeExpiresEveryNDays];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeCurrentTime __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeCurrentTimeOfDay\n    @abstract   Policy attribute for the current time of day as a CFNumber.\n    @discussion Policy attribute for the current time of day as a CFNumber, in\n                24 hour time, i.e. the range is 0000 through 2359.  Does not\n                contain any date information.\n\n                This attribute is used in policies to compare the current time\n                of day against another time of day.  For example, to allow\n                authentications between the hours of 8:00 AM and 5:00 PM, the\n                policy string would be (kODPolicyAttributeEnableAtTimeOfDay is\n                set to 0800 and  kODPolicyAttributeExpiresAtTimeOfDay is 1700):\n                    [NSString stringWithFormat:@\"%@ > %@ and %@ < %@\",\n                              kODPolicyAttributeCurrentTimeOfDay,\n                              kODPolicyAttributeEnableAtTimeOfDay,\n                              kODPolicyAttributeCurrentTimeOfDay,\n                              kODPolicyAttributeExpiresAtTimeOfDay];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeCurrentTimeOfDay __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeCurrentDayOfWeek\n    @abstract   Policy attribute for the current day of the week, as a CFNumber.\n    @discussion Policy attribute for the current day of the week, as a CFNumber.  \n                Specified in units appropriate for the local calendar.  The\n                range is 1 through 7, with 1 representing the first day of the\n                week in the local calendar, and 7 representing the last day of\n                the week.\n\n                This attribute is used in policies to compare the current day of\n                the week against another day of the week.  For example, to\n                enable authentications on Monday through Friday, the policy\n                would be (kODPolicyAttributeEnableOnDayOfWeek is set to the\n                number for Monday and kODPolicyAttributeExpiresOnDayOfWeek is\n                set to the number for Friday):\n                    [NSString stringWithFormat:@\"%@ > %@ and %@ < %@\",\n                              kODPolicyAttributeCurrentDayOfWeek,\n                              kODPolicyAttributeEnableOnDayOfWeek,\n                              kODPolicyAttributeCurrentDayOfWeek,\n                              kODPolicyAttributeExpiresOnDayOfWeek];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeCurrentDayOfWeek __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeFailedAuthentications\n    @abstract   Policy attribute for the number of failed authentications.\n    @discussion Policy attribute for the number of failed authentications for\n                the record.  Used in policies to compare against the maximum\n                failed authentications.  The following policy would deny further\n                authentications after 3 failed attempts (assumes\n                kODPolicyAttributeMaximumFailedAuthentications is 3):\n                    [NSString stringWithFormat:@\"%@ < %@\",\n                              kODPolicyAttributeFailedAuthentications,\n                              kODPolicyAttributeMaximumFailedAuthentications];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeFailedAuthentications __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeMaximumFailedAuthentications\n    @abstract   Policy attribute for the maximum failed authentication attempts.\n    @discussion Policy attribute for the maximum failed authentication attempts.  \n                Used as a key in policy parameter dictionary to specify the\n                maximum allowable failed authentication attempts with a CFNumber\n                value.  Also used in the policy string to compare against the\n                number of failed authentication attempts.  This policy would\n                disallow authentications after 3 failed attempts:\n                    @{ kODPolicyKeyIdentifier  : @\"maximum failed authentications\",\n                       kODPolicyKeyParameters  : @{ kODPolicyAttributeMaximumFailedAuthentications : @3 },\n                       kODPolicyKeyContent     : [NSString stringWithFormat:@\"%@ < %@\",\n                                                           kODPolicyAttributeFailedAuthentications,\n                                                           kODPolicyAttributeMaximumFailedAuthentications] };\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeMaximumFailedAuthentications __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeLastFailedAuthenticationTime\n    @abstract   Policy attribute for the time of the last failed auth attempt.\n    @discussion Policy attribute for the time of the last failed auth attempt.\n                CFNumber with a value representing the the number of seconds\n                since the Unix epoch.  Used in policies to compare against other\n                times.  As an example, this policy string would prevent another\n                authentication within 10 seconds of a failed authentication:  \n                    [NSString stringWithFormat:@\"%@ > %@ + 10\",\n                              kODPolicyAttributeCurrentTime,\n                              kODPolicyAttributeLastFailedAuthenticationTime];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeLastFailedAuthenticationTime __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeLastAuthenticationTime\n    @abstract   Policy attribute for the time of the last successful auth attempt.\n    @discussion Policy attribute for the time of the last successful auth attempt.\n                CFNumber with a value representing the number of seconds since\n                the Unix epoch.  Used in policies to compare against another\n                time.  \n\n                The sample policy string below would deny authentications if\n                there have been no authentications in the last 90 days.\n\n                Note that the number of days needs to be converted to seconds to\n                match the units of kODPolicyAttributeCurrentTime.  The special\n                keyword DAYS_TO_SECONDS can be used for the conversion.\n\n                    [NSString stringWithFormat:@\"%@ < %@ + 90 * DAYS_TO_SECONDS\",\n                              kODPolicyAttributeCurrentTime,\n                              kODPolicyAttributeLastAuthenticationTime];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeLastAuthenticationTime __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeLastPasswordChangeTime\n    @abstract   Policy attribute for time of the last password change.\n    @discussion Policy attribute for time of the last password change.  The time\n                is specified as the number of seconds since the Unix epoch.\n                Used in policies to compare against other times.  Typically\n                would be used in Password Change policies to expire a password\n                at a certain time or interval.\n\n                The policy string below requires a password change every 90 days\n                (kODPolicyAttributeExpiresEveryNDays is set to 90).\n\n                Note that kODPolicyAttributeExpiresEveryNDays needs to be\n                converted to seconds to match the units of the other times.  The\n                special keyword DAYS_TO_SECONDS can be used for the conversion.\n\n                    [NSString stringWithFormat:@\"%@ < %@ + %@ * DAYS_TO_SECONDS\",\n                              kODPolicyAttributeCurrentTime,\n                              kODPolicyAttributeLastPasswordChangeTime,\n                              kODPolicyAttributeExpiresEveryNDays];\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeLastPasswordChangeTime __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeNewPasswordRequiredTime\n    @abstract   Policy attribute for the time when \"new password required\" was set.\n    @discussion Policy attribute for the time when \"new password required\" was set.\n                The time is specified as the number of seconds since the\n                Unix epoch.\n\n                This attribute may be used in the policy string.  Whenever it's\n                used in the policy string, it must also be specified in the\n                policy's parameter dictionary.\n\n                This attribute is used to capture the time when the system\n                administrator wants to force all users to change their\n                passwords.  This would be a \"one-time\" change, i.e. once the\n                user changed the password, the policy would apply.  The policy\n                would have to be updated with a new time for\n                kODPolicyAttributeNewPasswordRequiredTime in order to force a\n                new round of password changes.\n\n                For example:\n                    @{ kODPolicyKeyIdentifier : @\"change on next auth\",\n                       kODPolicyKeyParameters : @{ kODPolicyAttributeNewPasswordRequiredTime : @(<time>) },\n                       kODPolicyKeyContent    : [NSString stringWithFormat:@\"%@ < %@\",\n                                                          kODPolicyAttributeLastPasswordChangeTime,\n                                                          kODPolicyAttributeNewPasswordRequiredTime]};\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeNewPasswordRequiredTime __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeCreationTime\n    @abstract   Policy attribute for the record creation time.\n    @discussion Policy attribute for the record creation time.  The time is\n                specified as the number of seconds since the \"reference date\".\n                Could be used to disable \"temporary\" accounts after a specific\n                period of time.  \n\n                The example below disables authentications after 10\n                days after the account was created.\n\n                Note that kODPolicyAttributeDaysUntilExpiration must be\n                converted to seconds to match the units of the other times.  The\n                special keyword DAYS_TO_SECONDS can be used for the conversion.\n\n                    @{ kODPolicyKeyIdentifier : @\"expires after 10 days\",\n                       kODPolicyKeyParameters : @{kODPolicyAttributeDaysUntilExpiration : @10 },\n                       kODPolicyKeyContent    : [NSString stringWithFormat:@\"%@ < %@ + (%@ * DAYS_TO_SECONDS)\",\n                                                          kODPolicyAttributeCurrentTime,\n                                                          kODPolicyAttributeCreationTime,\n                                                          kODPolicyAttributeDaysUntilExpiration]};\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeCreationTime __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeExpiresEveryNDays\n    @abstract   Policy attribute for expires every N days.\n    @discussion Policy attribute for expires every N days.  This attribute is\n                used as a key in the policy parameter dictionary, with CFNumber\n                value.  Also used in the policy strings. Typically would be used\n                in Password Change policies to expire a password at a certain\n                time or interval. \n\n                The example policy below would require a password change every\n                90 days.\n\n                Note that kODPolicyAttributeExpiresEveryNDays needs to be\n                converted to seconds to match the units of the other times used\n                in the policy.  The special keyword DAYS_TO_SECONDS can be used\n                for the conversion.\n\n                    @{ kODPolicyKeyIdentifier : @\"expires every 90 days\",\n                       kODPolicyKeyParameters : @{ kODPolicyAttributeExpiresEveryNDays : @90 },\n                       kODPolicyKeyContent    : [NSString stringWithFormat:@\"%@ < %@ + %@ * DAYS_TO_SECONDS\",\n                                                          kODPolicyAttributeCurrentTime,\n                                                          kODPolicyAttributeLastPasswordChangeTime,\n                                                          kODPolicyAttributeExpiresEveryNDays]};\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeExpiresEveryNDays __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeEnableOnDate\n    @abstract   Policy attribute for the \"enable on\" date.\n    @discussion Policy attribute for the \"enable on\" date.  Used as a key in the\n                policy parameter dictionary, with a CFDate value.   Also used in\n                policy strings. The date is specified as a CFDate representing a\n                fixed date, appropriate for the locale.  Use in policies when\n                comparing other date-based attributes.\n\n                This attribute is typically used Authentication policies to\n                control when authentications are allowed. This policy would\n                enable authentications on Jan 1, 2014 (assumes the date\n                formatter is properly configured for the locale): \n                    @{ kODPolicyKeyIdentifier : @\"enable on Jan 1\",\n                       kODPolicyKeyParameters : @{ kODPolicyAttributeEnableOnDate : [localFormatter dateWithString:@\"01/01/2014\"] },\n                       kODPolicyKeyContent    : [NSString stringWithFormat:@\"%@ >= %@\",\n                                                          kODPolicyAttributeCurrentDate,\n                                                          kODPolicyAttributeEnableOnDate]};\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeEnableOnDate __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeExpiresOnDate\n    @abstract   Policy attribute for the \"expires on\" date.\n    @discussion Policy attribute for the \"expires on\" date.  Used as a key in the\n                policy parameter dictionary, with a CFDate value.   Also used in\n                policy strings. The date is specified as a CFDate representing a\n                fixed date, appropriate for the locale.  Use in policies when\n                comparing other date-based attributes.\n\n                This attribute is typically used in Authentication policies to\n                control when authentications are allowed. This policy would\n                disallow authentications on Jan 1, 2014 (assumes the date\n                formatter is properly configured for the locale): \n                    @{ kODPolicyKeyIdentifier : @\"expires on Jan 1\",\n                       kODPolicyKeyParameters : @{ kODPolicyAttributeExpiresOnDate : [localFormatter dateWithString:@\"01/01/2014\"] },\n                       kODPolicyKeyContent    : [NSString stringWithFormat:@\"%@ < %@\",\n                                                          kODPolicyAttributeCurrentDate,\n                                                          kODPolicyAttributeExpiresOnDate]};\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeExpiresOnDate __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeEnableOnDayOfWeek\n    @abstract   Policy attribute for enable on a day of the week.\n    @discussion Policy attribute for enable on a day of the week.  Specified as a\n                in units appropriate for the local calendar.  The range is 1\n                through 7, with 1 representing the first day of the week in the\n                local calendar, and 7 representing the last day of the week. \n\n                This attribute is used as a key in the policy parameter\n                dictionary, with a CFNumber value, and in policy strings.\n                Typically used i policy strings to compare against the another\n                day of the week.  For example, to allow authentications only on\n                Monday through Friday, the policy would be (assumes Monday = 2\n                and Friday = 6 in the local calendar): \n                    @{ kODPolicyKeyIdentifier : @\"mon-fri only\",\n                       kODPolicyKeyParameters : @{ kODPolicyAttributeEnableOnDayOfWeek : @2,\n                                                   kODPolicyAttributeExpiresOnDayOfWeek : @6 },\n                       kOPolicyKeyPolicy      : [NSString stringWithFormat:@\"%@ > %@ and %@ < %@\",\n                                                          kODPolicyAttributeCurrentDayOfWeek,\n                                                          kODPolicyAttributeEnableOnDayOfWeek,\n                                                          kODPolicyAttributeCurrentDayOfWeek,\n                                                          kODPolicyAttributeExpiresOnDayOfWeek]};\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeEnableOnDayOfWeek __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeExpiresOnDayOfWeek\n    @abstract   Policy attribute for expires on a day of the week.\n    @discussion Policy attribute for expires on a day of the week.  Specified as a\n                in units appropriate for the local calendar.  The range is 1\n                through 7, with 1 representing the first day of the week in the\n                local calendar, and 7 representing the last day of the week. \n\n                This attribute is used as a key in the policy parameter\n                dictionary, with a CFNumber value, and in policy strings.\n                Typically used i policy strings to compare against the another\n                day of the week.  See the example above for kODPolicyAttributeEnableOnDayOfWeek.\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeExpiresOnDayOfWeek __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeEnableAtTimeOfDay\n    @abstract   Policy attribute for enable at a specific time of day.\n    @discussion Policy attribute for enable at a specific time of day.\n                The time is specified in 24-hour time, with a range of 0000\n                through 2359.  This attribute can be used as a key in the policy\n                parameter dictionary, with a CFNumber value, and in the policy\n                strings. \n\n                Typically used in authentication policies to control specific\n                times of when when authentications are allowed.  For example, to\n                enable authentications between the hours of 8:00 AM and 5:00 PM,\n                the policy would be: \n                    @{ kODPolicyKeyIdentifier : @\"school hours\",\n                       kODPolicyKeyParameters : @{ kODPolicyAttributeEnableAtTimeOfDay  : @800,\n                                                   kODPolicyAttributeExpiresAtTimeOfDay : @1700 },\n                       kODPolicyKeyContent    : [NSString stringWithFormat:@\"%@ > %@ and %@ < %@\",\n                                                          kODPolicyAttributeCurrentTimeOfDay,\n                                                          kODPolicyAttributeEnableAtTimeOfDay,\n                                                          kODPolicyAttributeCurrentTimeOfDay,\n                                                          kODPolicyAttributeExpiresAtTimeOfDay]};\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeEnableAtTimeOfDay __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @const      kODPolicyAttributeExpiresAtTimeOfDay\n    @abstract   Policy attribute for expires at a specific time of day.\n    @discussion Policy attribute for expires at a specific time of day.\n                The time is specified in 24-hour time, with a range of 0000\n                through 2359.  This attribute can be used as a key in the policy\n                parameter dictionary, with a CFNumber value, and in the policy\n                strings. \n\n                Typically used in authentication policies to control specific\n                times of when when authentications are allowed.  See the example\n                above for kODPolicyAttributeEnableAtTimeOfDay.\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeExpiresAtTimeOfDay __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n\n/*!\n    @const      kODPolicyAttributeDaysUntilExpiration\n    @abstract   Policy attribute for the number of days until expiration.\n    @discussion Policy attribute for the number of days until expiration.\n                This attribute can be used as a key in the policy parameter\n                dictionary with a CFNumber value representing some number of\n                days.  It can also be used in the policy strings. \n\n                May be used in Authentication policies to expire authentications\n                after some number of days or in Password Change policies to\n                expire passwords.\n\n                The example below disables authentications after 10\n                days after the account was created.\n\n                Note that kODPolicyAttributeDaysUntilExpiration must be\n                converted to seconds to match the units of the other times.  The\n                special keyword DAYS_TO_SECONDS can be used for the conversion.\n\n                    @{ kODPolicyKeyIdentifier : @\"expires after 10 days\",\n                       kODPolicyKeyParameters : @{kODPolicyAttributeDaysUntilExpiration : @10 },\n                       kODPolicyKeyContent    : [NSString stringWithFormat:@\"%@ < %@ + (%@ * DAYS_TO_SECONDS)\",\n                                                          kODPolicyAttributeCurrentTime,\n                                                          kODPolicyAttributeCreationTime,\n                                                          kODPolicyAttributeDaysUntilExpiration]};\n*/\nCF_EXPORT\nODPolicyAttributeType kODPolicyAttributeDaysUntilExpiration __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n\n#pragma mark Errors\n\n/*!\n @enum   \tODFrameworkErrors\n @abstract   Errors specific to the framework and to underlying calls\n @discussion Errors specific to the framework and to underlying calls\n @constant kODErrorSuccess is when operation was successful (if appropriate)\n @constant kODErrorSessionLocalOnlyDaemonInUse is when a Local Only session was initiated and is still active\n @constant kODErrorSessionNormalDaemonInUse is when the Normal daemon is still in use but request was issued for Local only\n @constant kODErrorSessionDaemonNotRunning is when the daemon is not running\n @constant kODErrorSessionDaemonRefused is when the daemon refused the session\n @constant kODErrorSessionProxyCommunicationError is when there was a communication error with the remote daemon\n @constant kODErrorSessionProxyVersionMismatch is when versions mismatch between the remote daemon and local framework\n @constant kODErrorSessionProxyIPUnreachable is when the provided kODSessionProxyAddress did not respond\n @constant kODErrorSessionProxyUnknownHost is when the provided kODSessionProxyAddress cannot be resolved\n @constant kODErrorNodeUnknownName is when the node name provided does not exist and cannot be opened\n @constant kODErrorNodeUnknownType is when the node type provided is not a known value\n @constant kODErrorNodeConnectionFailed is when a node connection failed (commonly server closed connection, etc.)\n @constant kODErrorNodeUnknownHost is when an invalid host is provided\n @constant kODErrorQuerySynchronize is an error code that is returned when a synchronize has been initiated\n @constant kODErrorQueryInvalidMatchType is when an invalid match type is provided in a query\n @constant kODErrorQueryUnsupportedMatchType is when plugin does not support the requirested match type\n @constant kODErrorQueryTimeout is when a query timed out during request\n @constant kODErrorRecordReadOnlyNode is when a record cannot be modified\n @constant kODErrorRecordPermissionError is when the changes requested were denied due to insufficient permissions\n @constant kODErrorRecordParameterError is when an invalid parameter was provided\n @constant kODErrorRecordInvalidType is when an invalid record type was provided\n @constant kODErrorRecordAlreadyExists is when a record create failed because the record already exists\n @constant kODErrorRecordTypeDisabled is when a particular record type is disabled by policy for a plugin\n @constant kODErrorRecordAttributeUnknownType is when an unknown attribute type is provided\n @constant kODErrorRecordAttributeNotFound is when an attribute requested is not found in the record\n @constant kODErrorRecordAttributeValueSchemaError is when an attribute value does not meet schema requirements\n @constant kODErrorRecordAttributeValueNotFound is when an attribute value is not found in a record\n @constant kODErrorCredentialsInvalid is when credentials provided are invalid with the current node\n @constant kODErrorCredentialsMethodNotSupported is when a particular extended method is not supported by the node\n @constant kODErrorCredentialsNotAuthorized is when an operation such as changing a password is not authorized with current privileges\n @constant kODErrorCredentialsParameterError is when a parameter provided is invalid\n @constant kODErrorCredentialsOperationFailed is when the requested operation failed (usually due to some unrecoverable error)\n @constant kODErrorCredentialsServerUnreachable is when the authententication server is not reachabable\n @constant kODErrorCredentialsServerNotFound is when the authentication server could not be found for the operation requested\n @constant kODErrorCredentialsServerError is when the authentication server encountered an error\n @constant kODErrorCredentialsServerTimeout is when the authentication server timed out\n @constant kODErrorCredentialsContactMaster is when the authentication server is not the master and the operation requires the master\n @constant kODErrorCredentialsServerCommunicationError is when the authentication server had a communications error\n @constant kODErrorCredentialsAccountNotFound is when the authentication server could not find the account provided\n @constant kODErrorCredentialsAccountDisabled is when the account is disabled\n @constant kODErrorCredentialsAccountExpired is when the account is expired\n @constant kODErrorCredentialsAccountInactive is when the account is inactive\n @constant kODErrorCredentialsPasswordExpired is when the password has expired and must be changed\n @constant kODErrorCredentialsPasswordChangeRequired is when a password change is required\n @constant kODErrorCredentialsPasswordQualityFailed is when a password provided for change did not meet quality minimum requirements\n @constant kODErrorCredentialsPasswordTooShort is when a password provided is too short\n @constant kODErrorCredentialsPasswordTooLong is when a password provided is too long\n @constant kODErrorCredentialsPasswordNeedsLetter is when a password needs a letter\n @constant kODErrorCredentialsPasswordNeedsDigit is when a password needs a digit\n @constant kODErrorCredentialsPasswordChangeTooSoon is when a an attempt to change a password too soon before last change\n @constant kODErrorCredentialsPasswordUnrecoverable is when password was not recoverable from the authentication database\n @constant kODErrorCredentialsInvalidLogonHours is when an account attempts to login outside of set logon hours\n @constant kODErrorCredentialsInvalidComputer is when an account attempts to login to a computer they are not authorized\n @constant kODErrorPolicyUnsupported all requested policies were not supported\n @constant kODErrorPolicyOutOfRange policy value was beyond the allowed range\n @constant kODErrorPluginOperationNotSupported is when a plugin does not support the requested operation\n @constant kODErrorPluginError is when a plugin has encountered some undefined error\n @constant kODErrorDaemonError is when some error occurred inside the daemon\n @constant kODErrorPluginOperationTimeout is when an operation exceeds an imposed timeout\n*/\n\nenum ODFrameworkErrors\n{\n    kODErrorSuccess                             = 0,\n    \n\t/* ODSession error codes */\n\tkODErrorSessionLocalOnlyDaemonInUse\t\t\t=\t1000,\n\tkODErrorSessionNormalDaemonInUse\t\t\t=\t1001,\n\tkODErrorSessionDaemonNotRunning\t\t\t\t=\t1002,\n\tkODErrorSessionDaemonRefused\t\t\t\t=\t1003,\n\n\tkODErrorSessionProxyCommunicationError\t\t=\t1100,\n\tkODErrorSessionProxyVersionMismatch\t\t\t=\t1101,\n\tkODErrorSessionProxyIPUnreachable\t\t\t=\t1102,\n\tkODErrorSessionProxyUnknownHost\t\t\t\t=\t1103,\n\t\n\t/* ODNode error codes */\n\tkODErrorNodeUnknownName\t\t\t\t\t\t=\t2000,\n\tkODErrorNodeUnknownType\t\t\t\t\t\t=\t2001,\n\tkODErrorNodeDisabled\t\t\t\t\t\t=\t2002,\n\n\tkODErrorNodeConnectionFailed\t\t\t\t=\t2100,\n\t\n\t/* ODNode miscellaneous error codes */\n\tkODErrorNodeUnknownHost\t\t\t\t\t\t=\t2200,\n\t\n\t/* ODQuery error codes */\n\tkODErrorQuerySynchronize\t\t\t\t\t=\t3000,\n\t\n\tkODErrorQueryInvalidMatchType\t\t\t\t=\t3100,\n\tkODErrorQueryUnsupportedMatchType\t\t\t=\t3101,\n\tkODErrorQueryTimeout\t\t\t\t\t\t=\t3102,\n\t\n\t/* ODRecord error codes */\n\tkODErrorRecordReadOnlyNode\t\t\t\t\t=\t4000,\n\tkODErrorRecordPermissionError\t\t\t\t=\t4001,\n\t\n\tkODErrorRecordParameterError\t\t\t\t=\t4100,\n\tkODErrorRecordInvalidType\t\t\t\t\t=\t4101,\n\tkODErrorRecordAlreadyExists\t\t\t\t\t=\t4102,\n\tkODErrorRecordTypeDisabled\t\t\t\t\t=\t4103,\n\tkODErrorRecordNoLongerExists\t\t\t\t=\t4104,\n\t\n\tkODErrorRecordAttributeUnknownType\t\t\t=\t4200,\n\tkODErrorRecordAttributeNotFound\t\t\t\t=\t4201,\n\tkODErrorRecordAttributeValueSchemaError\t\t=\t4202,\n\tkODErrorRecordAttributeValueNotFound\t\t=   4203,\n\t\n\t/* Credential specific error codes */\n\tkODErrorCredentialsInvalid\t\t\t\t\t=\t5000,\n\t\n\tkODErrorCredentialsMethodNotSupported\t\t=\t5100,\n\tkODErrorCredentialsNotAuthorized\t\t\t=\t5101,\n\tkODErrorCredentialsParameterError\t\t\t=\t5102,\n\tkODErrorCredentialsOperationFailed\t\t\t=\t5103,\n\t\n\tkODErrorCredentialsServerUnreachable\t\t=\t5200,\n\tkODErrorCredentialsServerNotFound\t\t\t=\t5201,\n\tkODErrorCredentialsServerError\t\t\t\t=\t5202,\n\tkODErrorCredentialsServerTimeout\t\t\t=\t5203,\n\tkODErrorCredentialsContactMaster\t\t\t=\t5204,\n\tkODErrorCredentialsServerCommunicationError\t=\t5205,\n\t\n\tkODErrorCredentialsAccountNotFound\t\t\t=\t5300,\n\tkODErrorCredentialsAccountDisabled\t\t\t=\t5301,\n\tkODErrorCredentialsAccountExpired\t\t\t=\t5302,\n\tkODErrorCredentialsAccountInactive\t\t\t=\t5303,\n\t\n\tkODErrorCredentialsPasswordExpired\t\t\t=\t5400,\n\tkODErrorCredentialsPasswordChangeRequired\t=\t5401,\n\tkODErrorCredentialsPasswordQualityFailed\t=\t5402,\n\tkODErrorCredentialsPasswordTooShort\t\t\t=\t5403,\n\tkODErrorCredentialsPasswordTooLong\t\t\t=\t5404,\n\tkODErrorCredentialsPasswordNeedsLetter\t\t=\t5405,\n\tkODErrorCredentialsPasswordNeedsDigit\t\t=\t5406,\n\tkODErrorCredentialsPasswordChangeTooSoon\t=\t5407,\n\tkODErrorCredentialsPasswordUnrecoverable\t=\t5408,\n\n\tkODErrorCredentialsInvalidLogonHours\t\t= \t5500,\n\tkODErrorCredentialsInvalidComputer\t\t\t= \t5501,\n    \n    /* Policy errors */\n    kODErrorPolicyUnsupported                   =   6000,\n    kODErrorPolicyOutOfRange                    =   6001,\n\n\t/* Underlying plugin errors */\n\tkODErrorPluginOperationNotSupported\t\t\t=\t10000,\n\tkODErrorPluginError\t\t\t\t\t\t\t=\t10001,\n\tkODErrorDaemonError\t\t\t\t\t\t\t=\t10002,\n    kODErrorPluginOperationTimeout              =   10003,\n};\n\n#endif\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/NSOpenDirectory.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <OpenDirectory/OpenDirectory.h>\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODAttributeMap.h",
    "content": "/*\n * Copyright (c) 2012 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n *\n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n *\n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n *\n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <Foundation/Foundation.h>\n\nNS_CLASS_AVAILABLE(10_9, NA)\n@interface ODAttributeMap : NSObject {\n\t@protected\n\tNSString *customQueryFunction;\n\tNSString *customTranslationFunction;\n\tNSArray *customAttributes;\n\tNSString *value;\n}\n\n/*\n * Custom functions are in the format of: \n *\t\t\"<module>:<function>\"\n *\n * Example: \"ldap:query_attribute\"\n */\n\n/* Custom function to be used when querying the attribute */\n@property(copy) NSString *customQueryFunction NS_AVAILABLE_MAC(10_9);\n\n/* Custom function to be used when translating the result for the client */\n@property(copy) NSString *customTranslationFunction NS_AVAILABLE_MAC(10_9);\n\n/* Attributes required for the custom functions */\n@property(copy) NSArray *customAttributes NS_AVAILABLE_MAC(10_9);\n\n/* The value used for the mapping.  Static, variable substitution and native are all represented */\n@property(copy) NSString *value NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method attributeMapWithValue:\n *\n * @abstract\n * Returns an initialized and autoreleased ODAttributeMap object with the given value mapped.\n *\n * @discussion\n * Returns an initialized and autoreleased ODAttributeMap object with the given value mapped.\n */\n+ (instancetype)attributeMapWithValue:(NSString *)value;\n\n/*!\n * @method attributeMapWithStaticValue:\n *\n * @abstract\n * Returns an initialized and autoreleased ODAttributeMap object with the given static value.\n *\n * @discussion\n * Returns an initialized and autoreleased ODAttributeMap object with the given static value.\n */\n+ (instancetype)attributeMapWithStaticValue:(NSString *)staticValue;\n\n/*!\n * @method setStaticValue:\n *\n * @abstract\n * Sets a static value that will always be returned for this mapping.\n *\n * @discussion\n * Sets a static value that will always be returned for this mapping, i.e., \"20\".\n */\n- (void)setStaticValue:(NSString *)staticValue NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method setVariableSubstitution:\n *\n * @abstract\n * Sets a variable substitution-based value.\n *\n * @discussion\n * Value should be using the syntax '$native$' for all substited values.  For example,\n * to form a home directory using the \"cn\" of an LDAP record, substitution could be done\n * with \"/home/$cn$\".\n */\n- (void)setVariableSubstitution:(NSString *)variableSubstitution NS_AVAILABLE_MAC(10_9);\n\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODConfiguration.h",
    "content": "/*\n * Copyright (c) 2009-2012 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <Foundation/Foundation.h>\n#import <OpenDirectory/OpenDirectory.h>\n\nenum {\n    ODPacketSigningDisabled = 0,\n    ODPacketSigningAllow = 1,\n    ODPacketSigningRequired = 2,\n};\n\nenum {\n    ODPacketEncryptionDisabled = 0,\n    ODPacketEncryptionAllow = 1,\n    ODPacketEncryptionRequired = 2,\n    ODPacketEncryptionSSL = 3,\n};\n\n@class SFAuthorization;\n@class ODMappings;\n\n/* Signifies that the configuration is \"joined\" to the directory (a.k.a., Authenticated binding) with it's own dedicated account (often a computer account) */\nFOUNDATION_EXPORT NSString *const ODTrustTypeJoined NS_AVAILABLE_MAC(10_9);\n\n/* Signfies that some form of credentials is being used to talk to this directory node */\nFOUNDATION_EXPORT NSString *const ODTrustTypeUsingCredentials NS_AVAILABLE_MAC(10_9);\n\n/* Signifies there is no account associated with this configuration */\nFOUNDATION_EXPORT NSString *const ODTrustTypeAnonymous NS_AVAILABLE_MAC(10_9);\n\nNS_CLASS_AVAILABLE(10_9, NA)\n@interface ODConfiguration : NSObject {\n\t@protected\n\tODSession *session;\n\tNSString *nodeName;\n\tNSString *comment;\n\tNSArray *defaultModuleEntries;\n\tNSArray *authenticationModuleEntries;\n\tNSArray *discoveryModuleEntries;\n\tNSArray *generalModuleEntries;\n\tODMappings *defaultMappings;\n\tNSString *templateName;\n\tNSArray *virtualSubnodes;\n\tBOOL hideRegistration;\n\tNSString *preferredDestinationHostName;\n\tuint16_t preferredDestinationHostPort;\n\tNSString *trustAccount;\n\tNSString *trustType;\n\tNSString *trustKerberosPrincipal;\n\tNSString *trustMetaAccount;\n\tBOOL trustUsesMutualAuthentication;\n\tBOOL trustUsesKerberosKeytab;\n\tBOOL trustUsesSystemKeychain;\n\tNSInteger packetSigning;\n\tNSInteger packetEncryption;\n\tBOOL manInTheMiddleProtection;\n\tNSInteger queryTimeoutInSeconds;\n\tNSInteger connectionSetupTimeoutInSeconds;\n\tNSInteger connectionIdleTimeoutInSeconds;\n}\n\n/* the nodename associated with this configuration */\n@property(copy) NSString *nodeName NS_AVAILABLE_MAC(10_9);\n\n/* comment for this configuration */\n@property(copy) NSString *comment NS_AVAILABLE_MAC(10_9);\n\n/* default mappings for this configuration (used for all modules unless specific ones are set for the module) */\n@property(strong) ODMappings *defaultMappings NS_AVAILABLE_MAC(10_9);\n\n/*\n * Name of the template used for this configuration, specifically loaded from /System/Library/OpenDirectory/Templates or /Library/OpenDirectory/Templates.  These templates\n * specify the module layout, settings, etc. appropriate for that template.   Any settings in this configuration will override settings from the template\n */\n@property(copy) NSString *templateName NS_AVAILABLE_MAC(10_9);\n\n/*\n * A list of subnodenames to be registered on behalf of this configuration.  For example, \"subnode1\" would register \"/Nodename/subnode1\" automatically so it is visible\n * without loading the actual configuration/modules.\n */\n@property(copy) NSArray *virtualSubnodes NS_AVAILABLE_MAC(10_9);\n\n/* Hides the registration of this node so it is not visible to clients in the UI. */\n@property(assign) BOOL hideRegistration NS_AVAILABLE_MAC(10_9);\n\n/* The optional hostname to be used with this configuration */\n@property(copy) NSString *preferredDestinationHostName NS_AVAILABLE_MAC(10_9);\n\n/* An optional port to be used in conjunction with the preferred hostname for this configuration */\n@property(assign) uint16_t preferredDestinationHostPort NS_AVAILABLE_MAC(10_9);\n\n/* The current trust account used with this configuration */\n@property(readonly, copy) NSString *trustAccount NS_AVAILABLE_MAC(10_9);\n\n/* The current trust meta account used with this configuration */\n@property(readonly, copy) NSString *trustMetaAccount NS_AVAILABLE_MAC(10_9);\n\n/* The current trust kerberos account used with this configuration */\n@property(readonly, copy) NSString *trustKerberosPrincipal NS_AVAILABLE_MAC(10_9);\n\n/* Type of trust established for this configuration */\n@property(readonly, copy) NSString *trustType NS_AVAILABLE_MAC(10_9);\n\n/* Trust uses mutual authentication for security */\n@property(readonly) BOOL trustUsesMutualAuthentication NS_AVAILABLE_MAC(10_9);\n\n/* Trust uses keytab for password storage */\n@property(readonly) BOOL trustUsesKerberosKeytab NS_AVAILABLE_MAC(10_9);\n\n/* Trust uses the system keychain to store password */\n@property(readonly) BOOL trustUsesSystemKeychain NS_AVAILABLE_MAC(10_9);\n\n/* Determines if packet signing is used for this configuration, should be one of the ODPacketSigning values */\n@property(assign) NSInteger packetSigning NS_AVAILABLE_MAC(10_9);\n\n/* Determins if packet encryption is used for this configuration, should be one of the ODPacketEncryption values */\n@property(assign) NSInteger packetEncryption NS_AVAILABLE_MAC(10_9);\n\n/* States if some man-in-the-middle protection is required */\n@property(assign) BOOL manInTheMiddleProtection NS_AVAILABLE_MAC(10_9);\n\n/* Timeout in seconds for all queries issued for this configuration */\n@property(assign) NSInteger queryTimeoutInSeconds NS_AVAILABLE_MAC(10_9);\n\n/* Timeout in seconds for connection setup for this configuration */\n@property(assign) NSInteger connectionSetupTimeoutInSeconds NS_AVAILABLE_MAC(10_9);\n\n/* Default timeout in seconds for all connections associated with this configuration */\n@property(assign) NSInteger connectionIdleTimeoutInSeconds NS_AVAILABLE_MAC(10_9);\n\n/* A list of default ODModuleEntry objects.  Default modules are used in all categories, after all \"specific\" modules */\n@property(copy) NSArray *defaultModuleEntries NS_AVAILABLE_MAC(10_9);\n\n/* A list of authentication ODModuleEntry objects */\n@property(copy) NSArray *authenticationModuleEntries NS_AVAILABLE_MAC(10_9);\n\n/* A list of discovery ODModuleEntry objects */\n@property(copy) NSArray *discoveryModuleEntries NS_AVAILABLE_MAC(10_9);\n\n/* A list of general ODModuleEntry objects used for all other APIs (Queries, modifications, etc.) */\n@property(copy) NSArray *generalModuleEntries NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method configuration\n *\n * @abstract\n * Returns an initialized and autoreleased ODConfiguration object.\n *\n * @discussion\n * Returns an initialized and autoreleased ODConfiguration object.\n */\n+ (instancetype)configuration;\n\n/*!\n * @method suggestedTrustAccount:\n *\n * @abstract\n * Returns a suggested name to use for the trust account.\n *\n * @discussion\n * Returns a suggested name to use for a trust account.  This name will be derived from the hostname\n * (if provided), otherwise it will be derived from the local hostname removing special characters\n * that may not be allowed by many systems.\n */\n+ (NSString *) suggestedTrustAccount:(NSString *)hostname NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method suggestedTrustPassword:\n *\n * @abstract\n * Returns a suggested password to be used for trust account with the requested length.\n *\n * @discussion\n * Returns a suggested password to be used for trust account with the requested length.\n */\n+ (NSString *) suggestedTrustPassword:(size_t)length NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method saveUsingAuthorization:error:\n *\n * @abstract\n * Saves the configuration using the provided authorization.\n *\n * @discussion\n * Saves the configuration using the provided authorization.\n */\n- (BOOL) saveUsingAuthorization:(SFAuthorization *)authorization error:(NSError **)error NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method addTrustType:trustAccount:trustPassword:username:password:joinExisting:error:\n *\n * @abstract\n * Adds a trust account with the provided name and password using the credentials provided by the user.\n *\n * @discussion\n * Adds a trust account with the provided name and password using the credentials provided by the user.  User can\n * request that the trust be forcibly created (replacing existing trust if found in directory).  A trust should be\n * established only after enough configuration is available and the configuration been saved.  If the trust is\n * required, then the configuration can be deleted if necessary upon failure.\n */\n- (BOOL) addTrustType:(NSString *)trustType trustAccount:(NSString *)account trustPassword:(NSString *)accountPassword username:(NSString *)username password:(NSString *)password joinExisting:(BOOL)join error:(NSError **)error NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method removeTrustUsingUsername:password:deleteTrustAccount:error:\n *\n * @abstract\n * Removes trust using the provided username and password.\n *\n * @discussion\n * Removes trust using the provided username and password.  The trust account will be removed from the directory only if requested.\n */\n- (BOOL) removeTrustUsingUsername:(NSString *)username password:(NSString *)password deleteTrustAccount:(BOOL)deleteAccount error:(NSError **)error NS_AVAILABLE_MAC(10_9);\n\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODMappings.h",
    "content": "/*\n * Copyright (c) 2012 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n *\n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n *\n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n *\n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <Foundation/Foundation.h>\n\n@class ODRecordMap;\n\nNS_CLASS_AVAILABLE(10_9, NA)\n@interface ODMappings : NSObject {\n\t@protected\n\tNSString *comment;\n\tNSString *templateName;\n\tNSString *identifier;\n\tNSString *function;\n\tNSArray *functionAttributes;\n\tNSMutableDictionary *recordTypes;\n}\n\n/* Short comment about the mappings */\n@property(copy) NSString *comment NS_AVAILABLE_MAC(10_9);\n\n/*\n * Name of the mappings template to be used for this configuration from /System/Library/OpenDirectory/Mappings or /Library/OpenDirectory/Mappings\n * if a template is used, then no other values should be set, template is an exclusive setting\n */\n@property(copy) NSString *templateName NS_AVAILABLE_MAC(10_9);\n\n/* RFC1034 identifier for this mapping, com.company.mapping */\n@property(copy) NSString *identifier NS_AVAILABLE_MAC(10_9);\n\n/* Returns a list of NSString values for all attributes currently configured */\n@property(readonly, copy) NSArray *recordTypes NS_AVAILABLE_MAC(10_9);\n\n/* function to translate record types */\n@property(copy) NSString *function NS_AVAILABLE_MAC(10_9);\n\n/* native attributes required for translation function to work */\n@property(copy) NSArray *functionAttributes NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method mappings\n *\n * @abstract\n * Returns an initialized and autoreleased ODMappings object.\n *\n * @discussion\n * Returns an initialized and autoreleased ODMappings object.\n */\n+ (instancetype)mappings;\n\n/*!\n * @method recordType:\n *\n * @abstract\n * Returns an ODRecordMap associated with the provided recordtype.\n *\n * @discussion\n * Returns an ODRecordMap associated with the provided recordtype.\n */\n- (ODRecordMap *) recordMapForStandardRecordType:(NSString *)stdType NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method setRecordMap:forRecordType:\n *\n * @abstract\n * Sets a particular ODRecordMap for a given standard record type.\n *\n * @discussion\n * Sets a particular ODRecordMap for a given standard record type.\n */\n- (void) setRecordMap:(ODRecordMap *)map forStandardRecordType:(NSString *)stdType NS_AVAILABLE_MAC(10_9);\n\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODModuleEntry.h",
    "content": "/*\n * Copyright (c) 2012 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n *\n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n *\n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n *\n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <Foundation/Foundation.h>\n\n@class ODMappings;\n\nNS_CLASS_AVAILABLE(10_9, NA)\n@interface ODModuleEntry : NSObject {\n\t@protected\n\tODMappings *mappings;\n\tNSArray *supportedOptions;\n\tNSString *name;\n\tNSString *xpcServiceName;\n\tNSMutableDictionary *options;\n\tNSString *uuidString;\n};\n\n/* mappings that are specific to this module configuration */\n@property(strong) ODMappings *mappings NS_AVAILABLE_MAC(10_9);\n\n/* A list supported options for a module.  The list will contain dictionaries with keys ODModuleOptionName, ODModuleOptionType, etc. */\n@property(readonly, copy) NSArray *supportedOptions NS_AVAILABLE_MAC(10_9);\n\n/* Name of the module, used in logging, etc. */\n@property(copy) NSString *name NS_AVAILABLE_MAC(10_9);\n\n/* XPCService to be used for this module */\n@property(copy) NSString *xpcServiceName NS_AVAILABLE_MAC(10_9);\n\n/* A UUID in string form that uniquely identifies this configuration, will be assigned automatically if missing */\n@property(copy) NSString *uuidString NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method moduleEntryWithName:xpcServiceName:\n *\n * @abstract\n * Creates a new module entry with a given name and service.\n *\n * @discussion\n * Creates a new module entry with a given name and service.\n */\n+ (instancetype)moduleEntryWithName:(NSString *)name xpcServiceName:(NSString *)xpcServiceName NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method setOption:value:\n *\n * @abstract\n * Assigns a particular option for this module.\n *\n * @discussion\n * Options are dictated by the module and can be queried via [module supportedOptions].\n */\n- (void) setOption:(NSString *)optionName value:(id)value NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method option:\n *\n * @abstract\n * Fetches the current setting for the requested option.\n *\n * @discussion\n * Fetches the current setting for the requested option.\n */\n- (id) option:(NSString *)optionName NS_AVAILABLE_MAC(10_9);\n\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODNode.h",
    "content": "/*\n * Copyright (c) 2005-2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <OpenDirectory/OpenDirectory.h>\n\n@class ODConfiguration;\n@class ODRecord;\n\n/*!\n    @class       ODNode\n    @abstract    This class is used to work with OpenDirectory nodes.\n    @discussion  OpenDirectory uses nodes to represent different sources of directory information, via the local disk, LDAP, etc.\n*/\n@interface ODNode : NSObject {\n\t@private\n\tvoid *_internal;\n}\n\n/*!\n    @method     nodeWithSession:type:error:\n    @abstract   Create an autoreleased ODNode of the given type, optionally in a specific session.\n    @discussion Autoreleased instance of an ODNode with a provided ODSession and ODNodeType.  outError is \n                optional parameter, nil can be passed if error details are not needed.\n*/\n+ (instancetype)nodeWithSession:(ODSession *)inSession type:(ODNodeType)inType error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     nodeWithSession:name:error:\n    @abstract   Create an autoreleased ODNode with the given name, optionally in a specific session.\n    @discussion autoreleased instance of an ODNode with a provided ODSession and node name.  outError is \n                optional parameter, nil can be passed if error details are not needed.\n*/\n+ (instancetype)nodeWithSession:(ODSession *)inSession name:(NSString *)inName error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     initWithSession:type:error:\n    @abstract   Initialize an ODNode instance of the given type, optionally in a specific session.\n    @discussion initialize instance of an ODNode with a provided ODSession and ODNodeType.  outError is \n                optional parameter, nil can be passed if error details are not needed.\n*/\n- (instancetype)initWithSession:(ODSession *)inSession type:(ODNodeType)inType error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     initWithSession:name:error:\n    @abstract   Initialize an ODNode instance with the given name, optionally in a specific session.\n    @discussion initialize instance of an ODNode with a provided ODSession and node name.  outError is optional\n                parameter, nil can be passed if error details are not needed.\n*/\n- (instancetype)initWithSession:(ODSession *)inSession name:(NSString *)inName error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     subnodeNamesAndReturnError:\n    @abstract   Returns NSArray of node names for this node, which may contain sub-nodes or search policy nodes\n    @discussion Returns NSArray of node names for this node, which may contain sub-nodes or search policy nodes.\n                Commonly used with Search policy nodes.  outError is optional parameter, nil can be passed if error\n                details are not needed.\n*/\n- (NSArray *)subnodeNamesAndReturnError:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     unreachableSubnodeNamesAndReturnError:\n    @abstract   Will return NSArray of names of subnodes that are not currently reachable.\n    @discussion Will return NSArray of names of subnodes that are not currently reachable.  Commonly used with Search policy \n                nodes to determine if any nodes are currently unreachable, but may also return other subnodes if the\n                OpenDirectory plugin supports.  outError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (NSArray *)unreachableSubnodeNamesAndReturnError:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @property   nodeName\n    @abstract   The node name.\n    @discussion The node name, corresponding to its path in OpenDirectory.\n*/\n@property (nonatomic, readonly, copy) NSString *nodeName NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     nodeDetails:error:\n    @abstract   Returns a dictionary of information about the instance of ODNode\n    @discussion Returns a dictionary of information about the instance of ODNode.  Details such as Trust information\n                (kODAttributeTypeTrustInformation) or other Node details can be retrieved.  outError is optional parameter,\n                nil can be passed if error details are not needed.\n                \n*/\n- (NSDictionary *)nodeDetailsForKeys:(NSArray *)inKeys error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     supportedRecordTypesAndReturnError:\n    @abstract   Returns a NSArray of the record types supported by this node.\n    @discussion Returns a NSArray of the record types supported by this node.  If node does not support the check\n                then all possible types will be returned.  outError is optional parameter, nil can be passed if error details\n                are not needed.\n*/\n- (NSArray *)supportedRecordTypesAndReturnError:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     supportedAttributesForRecordType:error:\n    @abstract   Will return a list of attribute types supported for that attribute if possible\n    @discussion Will return a list of attribute types supported for that attribute if possible.  If no specific\n                types are available, then all possible values will be returned instead.  outError is optional parameter,\n                nil can be passed if error details are not needed.\n*/\n- (NSArray *)supportedAttributesForRecordType:(ODRecordType)inRecordType error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     setCredentialsWithRecordType:recordName:password:error:\n    @abstract   Sets the credentials for interaction with the ODNode\n    @discussion Sets the credentials for interaction with the ODNode.  Record references, etc. will use these credentials\n                to query or change data.  Setting the credentials on a node referenced by other OD object types will\n                change the credentials for all for all references.  outError is optional parameter, nil can be passed if error\n                details are not needed.\n*/\n- (BOOL)setCredentialsWithRecordType:(ODRecordType)inRecordType recordName:(NSString *)inRecordName password:(NSString *)inPassword\n                               error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     setCredentialsWithRecordType:authType:authItems:outAuthItems:context:error:\n    @abstract   Allows use of other OpenDirectory types of authentications to set the credentials for an ODNode\n    @discussion Allows the caller to use other types of authentications that are available in OpenDirectory, that may\n                require response-request loops, etc.  Not all OD plugins will support this call, look for \n                kODErrorCredentialsMethodNotSupported in outError.  outError is optional parameter, nil can be passed if \n\t\t\t\terror details is not needed.\n*/\n- (BOOL)setCredentialsWithRecordType:(ODRecordType)inRecordType authenticationType:(ODAuthenticationType)inType \n                 authenticationItems:(NSArray *)inItems continueItems:(NSArray **)outItems\n                             context:(id *)outContext error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     setCredentialsUsingKerberosCache:error:\n    @abstract   Unsupported method.\n    @discussion Unsupported method.\n*/\n- (BOOL)setCredentialsUsingKerberosCache:(NSString *)inCacheName error:(NSError **)outError NS_DEPRECATED_MAC(10_6, 10_7) NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     createRecordWithRecordType:name:attributes:error:\n    @abstract   Creates a record in this node, using the given name and attributes.\n    @discussion Takes all the provided attributes and type to create an entire record.  The function will assign a\n                UUID to the record automatically.  This UUID can be overwritten by the client by passing with the\n                other attributes.  inAttributes is optional, nil can be passed if no other attributes are to be set.\n*/\n- (ODRecord *)createRecordWithRecordType:(ODRecordType)inRecordType name:(NSString *)inRecordName \n                              attributes:(NSDictionary *)inAttributes error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     recordWithRecordType:name:attributes:error:\n    @abstract   Returns an ODRecord object that references the requested type and name\n    @discussion Returns an ODRecord object that references the requested type and name.  The record will have cached the\n                attributes requested.  Further attributes can be requested via ODRecord APIs.  For performance it is best\n                to ask for as many attributes that are needed as possible up front.\n*/\n- (ODRecord *)recordWithRecordType:(ODRecordType)inRecordType name:(NSString *)inRecordName attributes:(id)inAttributes\n                             error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     customCall:sendData:error:\n    @abstract   Sends a custom code to the node; input and output data formats are specific to the call.\n    @discussion Sends a custom code to the node; input and output data formats are specific to the call.  outError is \n                optional parameter, nil can be passed if error details are not needed.\n*/\n- (NSData *)customCall:(NSInteger)inCustomCode sendData:(NSData *)inSendData error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     customFunction:payload:error:\n    @abstract   Sends a custom function call to the node; data is a type specific to the call.\n    @discussion Sends a custom function call to the node; data is a type specific to the call.  'error' is an\n                optional parameter therefore nil can be passed if error details are not needed.  Return type is\n\t\t\t\tdefined by the custom function requested.\n*/\n- (id)customFunction:(NSString *)function payload:(id)payload error:(NSError **)error NS_AVAILABLE(10_9, NA);\n\n/*!\n * @method configuration\n *\n * @abstract\n * Returns an ODConfiguration object for the node.\n *\n * @discussion\n * Returns an ODConfiguration object for the node.\n */\n@property (readonly, strong) ODConfiguration *configuration;\n\n/*!\n    @method     policiesAndReturnError:\n    @abstract   This will copy any policies configured for the node.\n    @discussion This will copy any policies configured for the node.\n*/\n- (NSDictionary *)policiesAndReturnError:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use accountPoliciesAndReturnError:\");\n\n/*!\n    @function   supportedPoliciesAndReturnError:\n    @abstract   This will return a dictionary of supported policies.\n    @discussion This will return a dictionary of supported policies, if appropriate, the value will be the maximum value allowed\n                for the policy in question.  For example, if password history is available, it will state how much history is\n                supported.\n*/\n- (NSDictionary *)supportedPoliciesAndReturnError:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA);\n\n/*!\n    @function   setPolicies:error:\n    @abstract   This will set the policy for the node.\n    @discussion This will set the policy for the node.  Policies are evaluated in combination with record-level policies.\n*/\n- (BOOL)setPolicies:(NSDictionary *)policies error:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use setAccountPolicies:error:\");\n\n/*!\n    @function   setPolicy:value:error:\n    @abstract   This will set a specific policy setting for the node.\n    @discussion This will set a specific policy setting for the node.\n*/\n- (BOOL)setPolicy:(ODPolicyType)policy value:(id)value error:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use addAccountPolicy:toCategory:error:\");\n\n/*!\n    @function   removePolicy:value:error:\n    @abstract   This will remove a specific policy setting from the node.\n    @discussion This will remove a specific policy setting from the node.\n*/\n- (BOOL)removePolicy:(ODPolicyType)policy error:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use removeAccountPolicy:fromCategory:error:\");\n\n/*!\n    @method     addAccountPolicy:toCategory:error:\n    @abstract   This will add an account policy to the node for the specified category.\n    @discussion This will add an account policy to the node for the specified category.\n                The specified policy will be applied to all users in the\n                specified node when policies are evaluated.\n    @param      policy a dictionary containing the specific policy to be added.\n                The dictionary may contain the following keys:\n                    kODPolicyKeyIdentifier a required key identifying the policy.\n                    kODPolicyKeyParameters an optional key containing a dictionary of\n                        parameters that can be used for informational purposes or in\n                        the policy format string.\n                    kODPolicyKeyContent a required key specifying the policy,\n                        from which a predicate will be created for evaluating\n                        the policy.\n    @param      category a valid ODPolicyCategoryType to which the specified policy will be added.\n    @param      error an optional NSError reference for error details.\n    @result     a BOOL which signifies if the policy addition succeeded, otherwise error is set.\n*/\n- (BOOL)addAccountPolicy:(NSDictionary *)policy toCategory:(ODPolicyCategoryType)category error:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     removeAccountPolicy:fromCategory:error:\n    @abstract   This will remove an account policy from the node for the specified category.\n    @discussion This will remove an account policy from the node for the specified category.\n    @param      policy a dictionary containing the specific policy to be\n                removed, with the same format as described in addAccountPolicy.\n    @param      category a valid ODPolicyCategoryType from which the specified policy will be removed.\n    @param      error an optional NSError reference for error details.\n    @result     a BOOL which signifies if the policy removal succeeded, otherwise error is set.\n*/\n- (BOOL)removeAccountPolicy:(NSDictionary *)policy fromCategory:(ODPolicyCategoryType)category error:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     setAccountPolicies:error:\n    @abstract   This will set the policies for the node.\n    @discussion This will set the policies for the node, replacing any existing\n                policies.  All of the policies in the set will be applied to all\n                users in the specified node when policies are evaluated.\n    @param      policies a dictionary containing all of the policies to be set\n                for the node.  The dictionary may contain the following keys:\n                    kODPolicyCategoryAuthentication an optional key with a value\n                        of an array of policy dictionaries that specify when\n                        authentications should be allowed.\n                    kODPolicyCategoryPasswordContent an optional key with a\n                        value of an array of policy dictionaries the specify the\n                        required content of passwords. \n                    kODPolicyCategoryPasswordChange an optional key with a value\n                    of an array of policy dictionaries that specify when\n                    passwords are required to be changed.\n    @param      error an optional NSError reference for error details.\n    @result     a BOOL which signifies if the policy set succeeded, otherwise error is set.\n*/\n- (BOOL)setAccountPolicies:(NSDictionary *)policies error:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     accountPoliciesAndReturnError:\n    @abstract   Returns a dictionary containing any policies configured for the node.\n    @discussion Returns a dictionary containing any policies configured for the node.\n    @param      error an optional NSError reference for error details.\n    @result     an NSDictionary containing all currently set policies.  The\n                format of the dictionary is the same as described in\n                setAccountPolicies.\n*/\n- (NSDictionary *)accountPoliciesAndReturnError:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     passwordContentCheck:forRecordName:error:\n    @abstract   Validates a password against the node's password content policies.\n    @discussion Validates a password against the node's password content policies.\n                The node's password content policies will be evaluated to\n                determine if the password is acceptable.  May be used prior to\n                creating the record.\n\n                This check is only definitive at the time it was requested. The\n                policy or the environment could change before the password change\n                is actually requested.  Errors from the password change request\n                should be consulted.\n\n    @param      password the password to be evaluated against the content policies.\n    @param      recordName the name of the record.\n    @param      error an optional NSError reference for error details.\n    @result     a bool which signifies if the password passes all content policies, otherwise error is set.\n */\n- (BOOL)passwordContentCheck:(NSString *)password forRecordName:(NSString *)recordName error:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODQuery.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <OpenDirectory/OpenDirectory.h>\n\n@class ODQuery;\n@class ODNode;\n\n/*!\n    @protocol    ODQueryDelegate\n    @abstract    The delegate method for receiving query results from the NSRunLoop-based queries\n    @discussion  The delegate method called as results are returned from an NSRunLoop-based query.  These results are only partial\n                 and delegate is called repeatedly as results are available.  The incoming result must be retained or copied.  The \n                 array will be released by the NSRunLoop upon return.  Incoming results do not include previous results,\n                 only the most resent results are returned.  inResults can be nil if an error occurs or the query is complete.  If \n                 inResults and inError are nil then the query has completed.\n*/\n@protocol ODQueryDelegate <NSObject>\n@required\n- (void)query:(ODQuery *)inQuery foundResults:(NSArray *)inResults error:(NSError *)inError NS_AVAILABLE(10_6, NA);\n@end\n\n/*!\n    @class       ODQuery\n    @abstract    Class used for querying OpenDirectory.\n    @discussion  OpenDirectory queries may be used to search for different types of records, e.g. users, groups.\n*/\n@interface ODQuery : NSObject <NSCopying>\n{\n\t@private\n\tvoid *_internal;\n}\n\n/*!\n    @method     queryWithNode:forRecordTypes:attribute:matchType:queryValues:returnAttributes:maximumResults:error:\n    @abstract   Creates an autoreleased query with the node using the parameters provided\n    @discussion Creates an autoreleased query with the node using the supplied query parameters.  Some parameters\n                can either be NSString or NSData or an NSArray of either NSString or NSData.  Passing nil for \n                returnAttributes is equivalent to passing kODAttributeTypeStandardOnly.  outError is optional parameter,\n                nil can be passed if error details are not needed.  \n*/\n+ (ODQuery *)queryWithNode:(ODNode *)inNode forRecordTypes:(id)inRecordTypeOrList attribute:(ODAttributeType)inAttribute\n                 matchType:(ODMatchType)inMatchType queryValues:(id)inQueryValueOrList \n          returnAttributes:(id)inReturnAttributeOrList maximumResults:(NSInteger)inMaximumResults\n                     error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     initWithNode:forRecordTypes:attribute:matchType:queryValues:returnAttributes:maximumResults:error:\n    @abstract   Creates a query with the node using the parameters provided\n    @discussion Creates a query with the node using the supplied query parameters.  Some parameters\n                can either be NSString or NSData or an NSArray of either NSString or NSData.  Passing nil for \n                returnAttributes is equivalent to passing kODAttributeTypeStandardOnly. outError is optional parameter,\n                nil can be passed if error details are not needed.\n*/\n- (instancetype)initWithNode:(ODNode *)inNode forRecordTypes:(id)inRecordTypeOrList attribute:(ODAttributeType)inAttribute\n         matchType:(ODMatchType)inMatchType queryValues:(id)inQueryValueOrList \n  returnAttributes:(id)inReturnAttributeOrList maximumResults:(NSInteger)inMaximumResults error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     resultsAllowingPartial:error:\n    @abstract   Returns results from a provided ODQuery synchronously\n    @discussion Returns results from a provided ODQuery synchronously.  Passing NO to inAllowPartialResults\n                will block the call until all results are returned or an error occurs.  YES can be passed at any time\n                even if previous calls were made with NO.  outError is optional parameter, nil can be passed if error \n                details are not needed.\n*/\n- (NSArray *)resultsAllowingPartial:(BOOL)inAllowPartialResults error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @property   delegate\n    @abstract   The currently set delegate\n    @discussion The query delegate which will receive asynchronous query results.\n*/\n@property (nonatomic, readwrite, assign) id <ODQueryDelegate> delegate NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     scheduleInRunLoop:forMode:\n    @abstract   Adds the query object to the specified NSRunLoop to receive asynchronous results\n    @discussion Adds the query object to the specified NSRunLoop to receive asynchronous results.  A delegate must be set\n                in advance otherwise results may be lost due to the lack of a receiver.\n*/\n- (void)scheduleInRunLoop:(NSRunLoop *)inRunLoop forMode:(NSString *)inMode NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     removeFromRunLoop:forMode:\n    @abstract   Removes the query object from the specified NSRunLoop\n    @discussion Removes the query object from the specified NSRunLoop.\n*/\n- (void)removeFromRunLoop:(NSRunLoop *)inRunLoop forMode:(NSString *)inMode NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     synchronize\n    @abstract   Will dispose of any results and restart the query.\n    @discussion Will dispose of any results and restart the query for subsequent resultsAllowingPartial: calls.  If the query\n                is currently scheduled on a RunLoop, then the delegate will be called with inResults == nil and\n                [inError code] == kODErrorQuerySynchronize and [inError domain] == ODFrameworkErrorDomain, signifying that\n                all existing results should be thrown away in preparation for new results.\n*/\n- (void)synchronize NS_AVAILABLE(10_6, NA);\n\n/*!\n    @property   operationQueue\n    @abstract   The NSOperationQueue on which asynchronous results are delivered to the delegate.\n    @discussion The NSOperationQueue on which asynchronous results are delivered to the delegate.\n */\n@property (readwrite, retain) NSOperationQueue * operationQueue NS_AVAILABLE(10_6, NA);\n\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODRecord.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <OpenDirectory/OpenDirectory.h>\n\n/*!\n    @class       ODRecord\n    @abstract    This class is used to read, update and modify records within the directory\n    @discussion  This class is used to read, update and modify records within the directory.  outError is optional parameter,\n                 nil can be passed if error details are not needed.\n*/\n@interface ODRecord : NSObject\n\n/*!\n    @method     setNodeCredentials:password:error:\n    @abstract   Similar to calling -[ODNode setCredentials:] except credentials are only set for this particular\n                record's node\n    @discussion Sets the credentials if necessary on the ODNode referenced by this ODRecord.  Very similar to\n                calling -[ODNode setCredentials:] except other records referencing the underlying node will not get\n                authenticated, therefore inadvertant changes cannot occur.  If all records referencing a particular \n                node need to be updated, then use -[ODNode setCredentials:] on the original node instead.  If the\n                node is already authenticated with the same name and password, it will be a NOOP call.  The original\n                ODNode held by an ODRecord will be released when the credentials are changed for the connection\n                associated with the record.  outError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)setNodeCredentials:(NSString *)inUsername password:(NSString *)inPassword error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     setNodeCredentialsWithRecordType:authenticationType:authenticationItems:continueItems:context:error:\n    @abstract   Similar to calling -[ODNode setCredentialsWithRecordType:] except credentials are only set for this particular record's\n                node\n    @discussion Allows the caller to use other types of authentications that are available in OpenDirectory, that may\n                require response-request loops, etc.  Not all OD plugins will support this call, look for \n                kODErrorCredentialsMethodNotSupported in outError.  Same behavior as ODRecordSetNodeCredentials.  outError \n\t\t\t\tis optional parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)setNodeCredentialsWithRecordType:(ODRecordType)inRecordType authenticationType:(ODAuthenticationType)inType \n                     authenticationItems:(NSArray *)inItems continueItems:(NSArray **)outItems\n                                 context:(id *)outContext error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     setNodeCredentialsUsingKerberosCache:error:\n    @abstract   Unsupported method.\n    @discussion Unsupported method.\n*/\n- (BOOL)setNodeCredentialsUsingKerberosCache:(NSString *)inCacheName error:(NSError **)outError NS_DEPRECATED_MAC(10_6, 10_7);\n\n/*!\n    @method     passwordPolicyAndReturnError:\n    @abstract   Returns a dictionary containing the password policy for the record if available.\n    @discussion Returns a dictionary containing the password policy for the record if available.  If no policy for record\n                nil will be returned.  outError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (NSDictionary *)passwordPolicyAndReturnError:(NSError **)outError __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_6, __MAC_10_9, __IPHONE_NA, __IPHONE_NA, \"use effectivePoliciesAndReturnError\");\n\n/*!\n    @method     verifyPassword:error:\n    @abstract   Verifies the password provided is valid for the record\n    @discussion Verifies the password provided is valid for the record.  outError is optional parameter, nil can be passed if \n                error details are not needed.\n*/\n- (BOOL)verifyPassword:(NSString *)inPassword error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     verifyExtendedWithAuthenticationType:authenticationItems:continueItems:context:error:\n    @abstract   Allows use of other OpenDirectory types of authentications\n    @discussion Allows the caller to use other types of authentications that are available in OpenDirectory, that may \n                require response-request loops, etc.  A bool with the result of the operation.  \n                If it fails, outError can be checked for more specific error.  Some ODNodes may not support the call\n                so an error code of kODErrorCredentialsMethodNotSupported may be returned.  outError is optional \n                parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)verifyExtendedWithAuthenticationType:(ODAuthenticationType)inType authenticationItems:(NSArray *)inItems \n                               continueItems:(NSArray **)outItems context:(id *)outContext error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     changePassword:toPassword:error:\n    @abstract   Changes the password for a record\n    @discussion Changes the password for a record.  The oldPassword can be nil if password is being set assuming the appropriate\n                privileges are in place.  outError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)changePassword:(NSString *)oldPassword toPassword:(NSString *)newPassword error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     synchronizeAndReturnError:\n    @abstract   Synchronizes the record from the Directory in order to get current data and/or commit pending changes\n    @discussion Synchronizes the record from the Directory in order to get current data.  Any previously fetched attributes\n                will be re-fetch from the Directory.  This will not re-fetch the entire record, unless the entire record\n                has been accessed.  Additionally, any changes made to the record will be committed to the directory,\n                if the node does not do immediate commits.  outError is optional parameter, nil can be passed if error details\n                are not needed.\n*/\n- (BOOL)synchronizeAndReturnError:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @property   recordType\n    @abstract   Type of the record.\n    @discussion The record type.\n*/\n@property (nonatomic, readonly, copy) NSString *recordType NS_AVAILABLE(10_6, NA);\n\n/*!\n    @property   recordName\n    @abstract   Name of the record.\n    @discussion This is the official record name.\n*/\n@property (nonatomic, readonly, copy) NSString *recordName NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     recordDetailsForAttributes:error:\n    @abstract   Returns the attributes and values in the form of a key-value pair set.\n    @discussion Returns the attributes and values in the form of a key-value pair set for this record.  The key is a \n                NSString of the attribute name (e.g., kODAttributeTypeRecordName, etc.) and the value is an NSArray\n                of either NSData or NSString depending on the type of data.  Binary data will be returned as NSData.\n                If nil is passed, then all currently retrieved attributes will be returned.  outError is optional parameter, \n                nil can be passed if error details are not needed.\n*/\n- (NSDictionary *)recordDetailsForAttributes:(NSArray *)inAttributes error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     valuesForAttribute:error:\n    @abstract   Returns an NSArray of NSString or NSData values of the attribute\n    @discussion Returns an NSArray of NSString or NSData depending on the type of data.  Binary data will be \n                returned as NSData.  outError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (NSArray *)valuesForAttribute:(ODAttributeType)inAttribute error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n\t@method     setValue:forAttribute:error:\n\t@abstract   Will take a mixture of NSData or NSString or an NSArray of either type when setting the values of an attribute\n\t@discussion Will take a mixture of NSData or NSString or an NSArray of either type when setting the values of an attribute.\n\t\t\t\toutError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)setValue:(id)inValueOrValues forAttribute:(ODAttributeType)inAttribute error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     removeValuesForAttribute:error:\n    @abstract   Removes all the values for an attribute.\n    @discussion Removes all the values for an attribute.  outError is optional parameter, nil can be passed if \n                error details are not needed.\n*/\n- (BOOL)removeValuesForAttribute:(ODAttributeType)inAttribute error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     addValue:toAttribute:error:\n    @abstract   Will add a value to an attribute\n    @discussion Will add a value to an attribute.  Should be either NSData or NSString type.  outError is optional \n                parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)addValue:(id)inValue toAttribute:(ODAttributeType)inAttribute error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     removeValue:fromAttribute:error:\n    @abstract   Will remove a value from an attribute\n    @discussion Will remove a value from an attribute.  Should be either NSData or NSString type.  outError is optional \n                parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)removeValue:(id)inValue fromAttribute:(ODAttributeType)inAttribute error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     deleteRecordAndReturnError:\n    @abstract   Deletes the record from the node and invalidates the record.\n    @discussion Deletes the record from the node and invalidates the record.  The ODRecord should be\n                released after deletion.  outError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)deleteRecordAndReturnError:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     policiesAndReturnError:\n    @abstract   This will copy any policies configured for the record.\n    @discussion This will copy any policies configured for the record.\n*/\n- (NSDictionary *)policiesAndReturnError:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use accountPoliciesAndReturnError:\");\n\n/*!\n    @method     effectivePoliciesAndReturnError:\n    @abstract   This will copy any policies configured for the record.\n    @discussion This will copy any policies configured for the record.\n*/\n- (NSDictionary *)effectivePoliciesAndReturnError:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use authenticationAllowedAndReturnError: and similar methods\");\n\n/*!\n    @function   supportedPoliciesAndReturnError:\n    @abstract   This will return a dictionary of supported policies.\n    @discussion This will return a dictionary of supported policies, if appropriate, the value will be the maximum value allowed\n                for the policy in question.  For example, if password history is available, it will state how much history is\n                supported.\n*/\n- (NSDictionary *)supportedPoliciesAndReturnError:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA);\n\n/*!\n    @function   setPolicies:error:\n    @abstract   This will set the policy for the record.\n    @discussion This will set the policy for the record.  Policies are evaluated in combination with node-level policies.\n*/\n- (BOOL)setPolicies:(NSDictionary *)policies error:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use setAccountPolicies:error:\");\n\n/*!\n    @function   setPolicy:value:error:\n    @abstract   This will set a specific policy setting for the record.\n    @discussion This will set a specific policy setting for the record.\n*/\n- (BOOL)setPolicy:(ODPolicyType)policy value:(id)value error:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use addAccountPolicy:toCategory:error:\");\n\n/*!\n    @function   removePolicy:error:\n    @abstract   This will remove a specific policy setting from the record.\n    @discussion This will remove a specific policy setting from the record.\n*/\n- (BOOL)removePolicy:(ODPolicyType)policy error:(NSError **)error __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_10_9, __MAC_10_10, __IPHONE_NA, __IPHONE_NA, \"use removeAccountPolicy:fromCategory:error:\");\n\n/*!\n    @method     addAccountPolicy:toCategory:error:\n    @abstract   This will add a specific policy to the specific category for the record.\n    @discussion This will add a specific policy to the specific category for the record.\n                The specified policy will be applied, in combination with any\n                node policies, to the specified record when policies are evaluated.\n    @param      policy a dictionary containing the specific policy to be added.\n                The dictionary may contain the following keys:\n                    kODPolicyKeyIdentifier a required key identifying the policy.\n                    kODPolicyKeyParameters an optional key containing a dictionary of\n                        parameters that can be used for informational purposes or in\n                        the policy format string.\n                    kODPolicyKeyContent a required key specifying the policy,\n                        from which a predicate will be created for evaluating\n                        the policy.\n    @param      category a valid ODPolicyCategoryType to which the policy will be added.\n    @param      error an optional NSError reference for error details.\n    @result     a BOOL which signifies if the policy addition succeeded, otherwise error is set.\n*/\n- (BOOL)addAccountPolicy:(NSDictionary *)policy toCategory:(ODPolicyCategoryType)category error:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     removeAccountPolicy:fromCategory:error:\n    @abstract   This will remove a specific policy from the specific category for the record.\n    @discussion This will remove a specific policy from the specific category for the record.\n    @param      policy a dictionary containing the specific policy to be\n                removed, with the same format as described in addAccountPolicy.\n    @param      category a valid ODPolicyCategoryType from which the policy will be removed.\n    @param      error an optional NSError reference for error details.\n    @result     a BOOL which signifies if the policy removal succeeded, otherwise error is set.\n*/\n- (BOOL)removeAccountPolicy:(NSDictionary *)policy fromCategory:(ODPolicyCategoryType)category error:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     setAccountPolicies:error:\n    @abstract   This will set the policies for the record.\n    @discussion This will set the policies for the record, replacing any\n                existing policies.  All of the policies in the set will be\n                applied to the record when policies are evaluated.\n    @param      policies a dictionary containing all of the policies to be set\n                for the node.  The dictionary may contain the following keys:\n                    kODPolicyCategoryAuthentication an optional key with a value\n                        of an array of policy dictionaries that specify when\n                        authentications should be allowed.\n                    kODPolicyCategoryPasswordContent an optional key with a\n                        value of an array of policy dictionaries the specify the\n                        required content of passwords. \n                    kODPolicyCategoryPasswordChange an optional key with a value\n                        of an array of policy dictionaries that specify when\n                        passwords are required to be changed.\n    @param      error an optional NSError reference for error details.\n    @result     a BOOL which signifies if the policy set succeeded, otherwise error is set.\n*/\n- (BOOL)setAccountPolicies:(NSDictionary *)policies error:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     accountPoliciesAndReturnError:\n    @abstract   Returns a dictionary containing any policies configured for the record.\n    @discussion Returns a dictionary containing any policies configured for the record.\n                Does not include any policies set for the node.\n    @discussion Returns a dictionary containing any policies configured for the record.\n    @param      error an optional NSError reference for error details.\n    @result     a NSDictionary containing all currently set policies.  The\n                format of the dictionary is the same as described in\n                setAccountPolicies. \n*/\n- (NSDictionary *)accountPoliciesAndReturnError:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @function   authenticationAllowedAndReturnError:\n    @abstract   Determines if policies allow the account to authenticate.\n    @discussion Determines if policies allow the account to authenticate.\n                Authentication and password change policies are evaluated.\n                Record-level and node-level policies are evaluated in\n                combination, with record-level taking precedence over node-level\n                policies.  The failure of any single policy will deny the\n                authentication.\n \n                This check is only definitive at the time it was requested. The\n                policy or the environment could change before the authentication\n                is actually requested.  Errors from the authentication request\n                should be consulted.\n\n                It is not necessary to call this function when calling\n                verifyPassword or verifyPasswordExtended since those methods\n                perform the same policy evaluation.\n\n    @param      error an optional NSError reference for error details.\n    @result     a bool which signifies if the authentication is allowed, otherwise error is set.\n */\n- (BOOL)authenticationAllowedAndReturnError:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     passwordChangeAllowed:error:\n    @abstract   Determines if policies allow the password change.\n    @discussion Determines if policies allow the password change.  Password\n                content policies are evaluated. Record-level and node-level\n                policies are evaluated in combination, with record-level taking\n                precedence over node-level policies.  The failure of any single\n                policy will deny the password change.\n\n                This check is only definitive at the time it was requested. The\n                policy or the environment could change before the password change\n                is actually requested.  Errors from the password change request\n                should be consulted.\n\n    @param      newPassword contains the password to be evaluated.\n    @param      error an optional NSError reference for error details.\n    @result     a BOOL which signifies if the password change is allowed, otherwise error is set.\n */\n- (BOOL)passwordChangeAllowed:(NSString *)newPassword error:(NSError **)error __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     willPasswordExpire:\n    @abstract   Determines if the password will expire within the specified time.\n    @discussion Determines if the password will expire (i.e. need to be changed)\n                between now and the specified number of seconds in the future. \n                Password change policies are evaluated.  Record-level and\n                node-level policies are evaluated in combination, with\n                record-level taking precedence over node-level policies.\n    @param      willExpireIn the number of seconds from the current time to be\n                used as the upper-bound for the password expiration period.\n    @result     a BOOL which signifies if the password will expire within the\n                specified time.\n */\n- (BOOL)willPasswordExpire:(uint64_t)willExpireIn __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     willAuthenticationsExpire:\n    @abstract   Determines if authentications will expire within the specified time.\n    @discussion Determines if authentications will expire (i.e. session and/or\n                account expires) between now and the specified number of seconds\n                in the future.  Authentication policies are evaluated.\n                Record-level and node-level policies are evaluated in\n                combination, with record-level taking precedence over node-level\n                policies. \n    @param      willExpireIn the number of seconds from the current time to be\n                used as the upper-bound for the authentication expiration period.\n    @result     a BOOL which signifies if authentications will expire within the\n                specified time.\n */\n- (BOOL)willAuthenticationsExpire:(uint64_t)willExpireIn __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     secondsUntilPasswordExpires\n    @abstract   Determines how many seconds until the password expires.\n    @discussion Determines how many seconds until the password expires (i.e.\n                needs changing).  Password change policies are evaluated.\n                Record-level and node-level policies are evaluated in\n                combination, with record-level taking precedence over node-level\n                policies. \n    @result     the number of seconds until the password expires.  If multiple\n                policies will cause the password to expire, the soonest\n                expiration time is returned.  If already expired,\n                kODExpirationTimeExpired is returned.  If there are no password\n                change policies, kODExpirationTimeNeverExpires is returned. \n */\n@property (readonly) int64_t secondsUntilPasswordExpires __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n/*!\n    @method     secondsUntilAuthenticationsExpire\n    @abstract   Determines how many seconds until authentications expire.\n    @discussion Determines how many seconds until authentications expire (i.e.\n                session and/or account expires). Authentication policies are\n                evaluated.   Record-level and node-level policies are evaluated\n                in combination, with record-level taking precedence over\n                node-level policies.\n    @result     the number of seconds until authentications expire.  If multiple\n                policies will cause authentications to expire, the soonest\n                expiration time is returned. If already expired,\n                kODExpirationTimeExpired is returned.  If there are no\n                authentication policies controlling expiration,\n                kODExpirationTimeNeverExpires is returned.  \n */\n@property (readonly) int64_t secondsUntilAuthenticationsExpire __OSX_AVAILABLE_STARTING(__MAC_10_10, __IPHONE_NA);\n\n@end\n\n/*!\n    @category    ODRecord (ODRecordGroupExtensions)\n    @discussion  Record extensions for checking and modifying group membership.\n*/\n@interface ODRecord (ODRecordGroupExtensions)\n\n/*!\n    @method     addMemberRecord:error:\n    @abstract   Will add the record as a member of the group record\n    @discussion Will add the record as a member of the group record.  An error will be returned if the record is not\n                a group record.  Additionally, if the member record is not an appropriate type allowed as part of a group\n                an error will be returned.  outError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)addMemberRecord:(ODRecord *)inRecord error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     removeMemberRecord:error:\n    @abstract   Will remove the record as a member from the group record\n    @discussion Will remove the record as a member from the group record. An error will be returned if the record is not\n                a group record.  Additionally, if the member record is not an appropriate type allowed as part of a group\n                an error will be returned.  outError is optional parameter, nil can be passed if error details are not needed.\n*/\n- (BOOL)removeMemberRecord:(ODRecord *)inRecord error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     isMemberRecord:error:\n    @abstract   Will use membership APIs to determine if inRecord is a member of the group\n    @discussion Will use membership APIs to determine if inRecord is a member of the group.  If the receiving\n                object is not a group then NO will still be returned.  outError is optional parameter, nil can be passed if \n                error details are not needed.\n*/\n- (BOOL)isMemberRecord:(ODRecord *)inRecord error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODRecordMap.h",
    "content": "/*\n * Copyright (c) 2012 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n *\n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n *\n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n *\n * @APPLE_LICENSE_HEADER_END@\n */\n\n#import <Foundation/Foundation.h>\n\n@class ODAttributeMap;\n\nNS_CLASS_AVAILABLE_MAC(10_9)\n@interface ODRecordMap : NSObject {\n\t@protected\n\tNSString *native;\n\tNSDictionary *odPredicate;\n\tNSMutableDictionary *attributes;\n}\n\n/* native value for this attribute, if not present, translation function or preformed OD predicate must be present */\n@property(copy) NSString *native NS_AVAILABLE_MAC(10_9);\n\n/*\n * preformed OD-style predicate that defines a query for a specific record type\n * \n * predicate dictionary:\n *\t\tattribute : <native attribute>\n *\t\tvalues : [ <value> ] # note multiple values will be treated as AND\n *\t\tmatchtype : <value from kODMatchEqualTo(0x2001) | kODMatchBeginsWith(0x2002) | kODMatchContains(0x2003) | kODMatchEndsWith(0x2004)>\n *\n * nested predicates\n *\t\toperator : { OR | AND | NOT }\n *\t\tpredicates : [ <predicate>, ... ]\n */\n@property(copy) NSDictionary *odPredicate NS_AVAILABLE_MAC(10_9);\n\n/* dictionary of OpenDirectory standard attributes as a key and a value of ODAttributeMap */\n@property(readonly, copy) NSDictionary *attributes NS_AVAILABLE_MAC(10_9);\n\n/* returns an array of NSStrings that list the attributes for this recordmap */\n@property(readonly, copy) NSArray *standardAttributeTypes NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method recordMap\n *\n * @abstract\n * Returns an initialized and autoreleased ODRecordMap object.\n *\n * @discussion\n * Returns an initialized and autoreleased ODRecordMap object.\n */\n+ (instancetype)recordMap;\n\n/*!\n * @method attributeMapForStandardAttribute:\n *\n * @abstract\n * Returns an ODAttributeMap object for the given OD standard attribute.\n *\n * @discussion\n * Returns an ODAttributeMap object for the given OD standard attribute.\n */\n- (ODAttributeMap *)attributeMapForStandardAttribute:(NSString *)standardAttribute NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method setAttributeMap:forStandardAttribute:\n *\n * @abstract\n * Sets an ODAttributeMap object for a given OD standard attribute.\n *\n * @discussion\n * Sets an ODAttributeMap object for a given OD standard attribute.\n */\n- (void)setAttributeMap:(ODAttributeMap *)attributeMap forStandardAttribute:(NSString *)standardAttribute NS_AVAILABLE_MAC(10_9);\n\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/ODSession.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n@class SFAuthorization;\n\n/*!\n    @const      ODSessionProxyAddress\n    @abstract   the address to connect to via proxy, used when making the options dictionary\n    @discussion the address to connect to via proxy, used when making the options dictionary\n*/\nFOUNDATION_EXPORT NSString *const ODSessionProxyAddress NS_AVAILABLE(10_6, NA);\n\n/*!\n    @const      ODSessionProxyPort\n    @abstract   the port to connect to via proxy, used when making the options dictionary\n    @discussion the port to connect to via proxy, used when making the options dictionary.  This parameter\n                is optional and should not be passed normally.\n*/\nFOUNDATION_EXPORT NSString *const ODSessionProxyPort NS_AVAILABLE(10_6, NA);\n\n/*!\n    @const      ODSessionProxyUsername\n    @abstract   the username to connect with via proxy, used when making the options dictionary\n    @discussion the username to connect with via proxy, used when making the options dictionary\n*/\nFOUNDATION_EXPORT NSString *const ODSessionProxyUsername NS_AVAILABLE(10_6, NA);\n\n/*!\n    @const      ODSessionProxyPassword\n    @abstract   the password to connect with via proxy, used when making the options dictionary\n    @discussion the password to connect with via proxy, used when making the options dictionary\n*/\nFOUNDATION_EXPORT NSString *const ODSessionProxyPassword NS_AVAILABLE(10_6, NA);\n\n@class ODConfiguration;\n\n/*!\n    @class       ODSession\n    @abstract    Class for working with OpenDirectory sessions.\n    @discussion  Class for working with OpenDirectory sessions.\n*/\n@interface ODSession : NSObject {\n\t@private\n\tvoid *_internal;\n}\n\n/*!\n    @method     defaultSession\n    @abstract   Returns a shared instance of a local ODSession\n    @discussion Returns a shared instance of a local ODSession.  This can be used for most situations unless\n                more control is needed over the session.\n*/\n+ (ODSession *)defaultSession NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     sessionWithOptions:error:\n    @abstract   Creates an autoreleased instance of ODSession directed over Proxy to another host\n    @discussion Creates an autoreleased instance of ODSession directed over Proxy to another host.  nil\n                can be passed for no options. outError is optional parameter, nil can be passed if error\n                details are not needed.  Options include:\n\n                If proxy is required then a dictionary with keys should be:\n                            Key                             Value\n                    ODSessionProxyAddress        NSString(hostname or IP)\n                    ODSessionProxyPort           NSNumber(IP port, should not be set as it will default)\n                    ODSessionProxyUsername       NSString(username)\n                    ODSessionProxyPassword       NSString(password)\n*/\n+ (instancetype)sessionWithOptions:(NSDictionary *)inOptions error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     initWithOptions:error:\n    @abstract   Creates an instance of ODSession directed over Proxy to another host\n    @discussion Creates an instance of ODSession directed over Proxy to another host.  nil can be\n                passed for no options. outError is optional parameter, nil can be passed if error\n                details are not needed. Options include:\n     \n                If proxy is required then a dictionary with keys should be:\n                            Key                             Value\n                    ODSessionProxyAddress        NSString(hostname or IP)\n                    ODSessionProxyPort           NSNumber(IP port, should not be set as it will default)\n                    ODSessionProxyUsername       NSString(username)\n                    ODSessionProxyPassword       NSString(password)\n*/\n- (instancetype)initWithOptions:(NSDictionary *)inOptions error:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n    @method     nodeNamesAndReturnError:\n    @abstract   Returns the node names that are registered on this ODSession\n    @discussion Returns the node names that are registered on this ODSession.  outError can be nil if\n                error details are not needed.\n*/\n- (NSArray *)nodeNamesAndReturnError:(NSError **)outError NS_AVAILABLE(10_6, NA);\n\n/*!\n * @method configurationTemplateNames\n *\n * @abstract\n * Returns a list of names as NSStrings for all available configuration templates.\n *\n * @discussion\n * Returns a list of names as NSStrings for all available configuration templates.  Configuration templates\n * have pre-configured modules and/or mappings.  Useful for re-using existing configurations\n * that may change with operating system without changing the actual configuration.\n */\n@property (readonly, copy) NSArray *configurationTemplateNames NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method mappingTemplateNames\n *\n * @abstract\n * Returns a list names as NSStrings for all available mapping templates.\n *\n * @discussion\n * Returns a list names as NSStrings for all available mapping templates.  Mapping templates have pre-configured\n * record/attribute mappings.  Useful if a configuration uses a common layout of mappings for a type of server.\n */\n@property (readonly, copy) NSArray *mappingTemplateNames NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method configurationAuthorizationAllowingUserInteraction:\n *\n * @abstract\n * Returns an authorization appropriate for managing configurations.\n *\n * @discussion\n * Returns an authorization appropriate for managing configurations.  If a proxy session is in use this method will return\n * nil and no error.\n */\n- (SFAuthorization *)configurationAuthorizationAllowingUserInteraction:(BOOL)allowInteraction error:(NSError **)error NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method configurationForNodename:\n *\n * @abstract\n * Reads the configuration for a given nodename.\n *\n * @discussion\n * Reads the configuration for a given nodename.\n */\n- (ODConfiguration *)configurationForNodename:(NSString *)nodename NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method addConfiguration:authorization:error:\n *\n * @abstract\n * Adds a new configuration to the existing ODSession.\n *\n * @discussion\n * Adds a new configuration to the existing ODSession.  An SFAuthorization can be provided if necessary.\n */\n- (BOOL) addConfiguration:(ODConfiguration *)configuration authorization:(SFAuthorization *)authorization error:(NSError **)error NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method deleteConfiguration:authorization:error:\n *\n * @abstract\n * Deletes an existing configuration from the ODSession.\n *\n * @discussion\n * Deletes an existing configuration from the ODSession.  An authorization can be provided if necessary.\n */\n- (BOOL) deleteConfiguration:(ODConfiguration *)configuration authorization:(SFAuthorization *)authorization error:(NSError **)error NS_AVAILABLE_MAC(10_9);\n\n/*!\n * @method deleteConfigurationWithNodename:authorization:error:\n *\n * @abstract\n * Deletes an existing configuration from the ODSession.\n *\n * @discussion\n * Deletes an existing configuration from the ODSession.  An authorization can be provided if necessary.\n */\n- (BOOL) deleteConfigurationWithNodename:(NSString *)nodename authorization:(SFAuthorization *)authorization error:(NSError **)error NS_AVAILABLE_MAC(10_9);\n\n@end\n"
  },
  {
    "path": "src/OpenDirectoryOld/Headers/OpenDirectory.h",
    "content": "/*\n * Copyright (c) 2009 Apple Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * This file contains Original Code and/or Modifications of Original Code\n * as defined in and that are subject to the Apple Public Source License\n * Version 2.0 (the 'License'). You may not use this file except in\n * compliance with the License. Please obtain a copy of the License at\n * http://www.opensource.apple.com/apsl/ and read it before using this\n * file.\n * \n * The Original Code and all software distributed under the License are\n * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n * Please see the License for the specific language governing rights and\n * limitations under the License.\n * \n * @APPLE_LICENSE_HEADER_END@\n */\n\n#if __OBJC__\n#import <Foundation/Foundation.h>\n#endif /* __OBJC__ */\n\n#include <CFOpenDirectory/CFOpenDirectory.h>\n\n#if __OBJC__\n\nFOUNDATION_EXPORT NSString *const ODFrameworkErrorDomain NS_AVAILABLE(10_6, NA);\n\n#import <OpenDirectory/ODSession.h>\n#import <OpenDirectory/ODRecord.h>\n#import <OpenDirectory/ODNode.h>\n#import <OpenDirectory/ODQuery.h>\n#import <OpenDirectory/ODConfiguration.h>\n#import <OpenDirectory/ODMappings.h>\n#import <OpenDirectory/ODRecordMap.h>\n#import <OpenDirectory/ODAttributeMap.h>\n#import <OpenDirectory/ODModuleEntry.h>\n\n#endif /* __OBJC__ */\n"
  },
  {
    "path": "src/OpenScripting/include/OpenScriptingUtilPriv.h",
    "content": "#ifndef OPENSCRIPTINGUTILPRIV_H_\n#define OPENSCRIPTINGUTILPRIV_H_\n#include <CoreFoundation/CFURL.h>\n\nstatic inline int OSAIsRecognizedExecutableURL(CFURLRef url, SInt32* error)\n{\n\treturn 0;\n}\n\n#endif\n\n"
  },
  {
    "path": "src/PlistBuddy/CMakeLists.txt",
    "content": "project(PlistBuddy)\n\nadd_darling_executable(PlistBuddy\n\tPlistBuddy.c\n)\n\ntarget_link_libraries(PlistBuddy CoreFoundation)\n\ninstall(TARGETS PlistBuddy DESTINATION libexec/darling/usr/libexec)\n\ninstall(FILES PlistBuddy.8 DESTINATION libexec/darling/usr/share/man/man8)\n"
  },
  {
    "path": "src/PlistBuddy/PlistBuddy.8",
    "content": ".\\\"Copyright (c) 1999-2012 Apple Computer, Inc.  All Rights Reserved.\n.\\\"\n.\\\"This file contains Original Code and/or Modifications of Original Code\n.\\\"as defined in and that are subject to the Apple Public Source License\n.\\\"Version 2.0 (the 'License'). You may not use this file except in\n.\\\"compliance with the License. Please obtain a copy of the License at\n.\\\"http://www.opensource.apple.com/apsl/ and read it before using this\n.\\\"file.\n.\\\"\n.\\\"The Original Code and all software distributed under the License are\n.\\\"distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER\n.\\\"EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,\n.\\\"INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,\n.\\\"FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.\n.\\\"Please see the License for the specific language governing rights and\n.\\\"limitations under the License.\n.Dd February 19, 2007\n.Dt PLISTBUDDY 8\n.Os \"Mac OS X\"\n.Sh NAME\n.Nm PlistBuddy\n.Nd read and write values to plists\n.Sh SYNOPSIS\n.Nm\n.Op Fl cxh \n.Ar file.plist\n.Sh DESCRIPTION\nThe\n.Nm\ncommand is used to read and modify values inside of a plist. Unless specified by the \n.Fl c\nswitch,\n.Nm\nruns in interactive mode.  \n.Pp\nThe following commands are used to manipulate plist data:\n.Bl -tag -width \"Clear Type\"\n.It Sy Help\nPrints this information.\n.It Sy Exit\nExits the program. Changes are not saved to the file.\n.It Sy Save\nSaves the current changes to the file.\n.It Sy Revert\nReloads the last saved version of the file.\n.It Sy Clear Ar type\nClears out all existing entries, and creates root of type\n.Ar type .  \nSee below for a list of types.\n.It Sy Print Op entry\nPrints value of \n.Ar entry .\nIf an entry is not specified, prints entire file. See below for an explanation of how entry works.\n.It Sy Set Ar entry Ar value\nSets the value at \n.Ar entry \nto \n.Ar value .\n.It Sy Add Ar entry Ar type Op value\nAdds \n.Ar entry\nwith type\n.Ar type\nand optional value\n.Ar value .\nSee below for a list of types.\n.It Sy Copy Ar entrySrc Ar entryDst\nCopies the \n.Ar entrySrc\nproperty to\n.Ar entryDst .\n.It Sy Delete Ar entry\nDeletes \n.Ar entry\nfrom the plist.\n.It Sy Merge Ar file Op entry\nAdds the contents of plist \n.Ar file\nto \n.Ar entry .\n.It Sy Import Ar entry Ar file\nCreates or sets \n.Ar entry\nto the contents of \n.Ar file .\n.El\n.Pp\nEntries consist of property key names delimited by colons. Array items are specified by a zero-based integer index. Examples:\n.Pp\n    :CFBundleShortVersionString\n    :CFBundleDocumentTypes:2:CFBundleTypeExtensions\n.Pp\nEntries may be of the following types:\n.Pp\n    string\n    array\n    dict\n    bool\n    real\n    integer\n    date\n    data\n.Sh OPTIONS\n.Bl -tag -width \"-c command\"\n.It Fl c Ar command\nExecute command and exit. By default, PlistBuddy will run in interactive mode.\n.It Fl x\nOutput will be in the form of an xml plist where appropriate.\n.It Fl h\nPrint the complete help info.\n.El\n.Sh EXAMPLES\n.Pp\nSet the CFBundleIdentifier property to com.apple.plistbuddy:\n.Vb 1\n.Pp\n\\&        Set :CFBundleIdentifier com.apple.plistbuddy\n.Ve\n.Pp\nAdd the CFBundleGetInfoString property to the plist:\n.Vb 1\n.Pp\n\\&        Add :CFBundleGetInfoString string \"App version 1.0.1\"\n.Ve\n.Pp\nAdd a new item of type dict to the CFBundleDocumentTypes array:\n.Vb 1\n.Pp\n\\&        Add :CFBundleDocumentTypes: dict\n.Ve\n.Pp\nAdd the new item to the beginning of the array:\n.Vb 1\n.Pp\n\\&        Add :CFBundleDocumentTypes:0 dict\n.Ve\n.Pp\nDelete the \\s-1FIRST\\s0 item in the array:\n.Vb 1\n.Pp\n\\&        Delete :CFBundleDocumentTypes:0 dict\n.Ve\n.Pp\nDelete the \\s-1ENTIRE\\s0 CFBundleDocumentTypes array:\n.Vb 1\n.Pp\n\\&        Delete :CFBundleDocumentTypes\n.Ve\n.Pp\n.Sh EXIT STATUS\n.Nm\ncommand returns a zero exit status if it succeeds. Non zero is returned in case of failure.\n"
  },
  {
    "path": "src/PlistBuddy/PlistBuddy.c",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2017 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <stdlib.h>\n#include <stdio.h>\n#include <CoreFoundation/CoreFoundation.h>\n#include <stdbool.h>\n\nbool processArgs(int argc, const char** argv, const char** command);\nvoid resolvePlistEntry(const char* whatStr, CFPropertyListRef* parent, CFPropertyListRef* entry, char** last, bool autoCreate);\nvoid setEntry(const char* entryName, const char* entryValue);\nvoid printUsage(void);\nvoid printHelp(void);\nbool revertToFile(void);\nbool saveToFile(void);\nvoid runCommand(const char* cmd);\nvoid doPrint(const char* what);\n\nenum PropertyType {\n\ttypeUnknown = 0, typeString, typeArray, typeDict, typeBool, typeReal, typeInteger, typeDate, typeData\n};\nvoid addEntry(const char* entry, enum PropertyType type, const char* value);\nCFPropertyListRef parseValue(enum PropertyType type, const char* string);\nvoid deleteEntry(const char* entry);\nvoid copyEntry(const char* src, const char* dst);\nvoid mergeFile(const char* path, const char* entry);\nvoid importFile(const char* entry, const char* path);\n\n// Forces XML output when printing to screen\nbool forceXML = false;\nCFPropertyListRef plist = NULL;\nconst char* outputFile = NULL;\n\nint main(int argc, const char **argv)\n{\n\tconst char* command = NULL;\n\n\tif (!processArgs(argc, argv, &command))\n\t{\n\t\tprintUsage();\n\t\treturn 1;\n\t}\n\tif (!outputFile)\n\t\treturn 0;\n\n\tif (!revertToFile())\n\t\treturn 1;\n\n\tif (command != NULL)\n\t{\n\t\trunCommand(command);\n\t\tif (!saveToFile())\n\t\t\treturn 1;\n\t}\n\telse\n\t{\n\t\twhile (true)\n\t\t{\n\t\t\tchar buffer[200];\n\n\t\t\tprintf(\"Command: \");\n\n\t\t\tif (!fgets(buffer, sizeof(buffer), stdin))\n\t\t\t\tbreak;\n\n\t\t\tsize_t len = strlen(buffer);\n\t\t\tif (buffer[len-1] == '\\n')\n\t\t\t\tbuffer[len-1] = '\\0';\n\t\t\trunCommand(buffer);\n\t\t}\n\t}\n\n\treturn EXIT_SUCCESS;\n}\n\nvoid printUsage()\n{\n\tputs(\"Usage: PlistBuddy [-cxh] <file.plist>\\n\"\n\t\t\t\"    -c \\\"<command>\\\" execute command, otherwise run in interactive mode\\n\"\n\t\t\t\"    -x output will be in the form of an xml plist where appropriate\\n\"\n\t\t\t\"    -h print the complete help info, with command guide\\n\");\n}\n\nvoid printHelp()\n{\n\tputs(\"Command Format:\\n\\n\"\n\t\"    Help - Prints this information\\n\"\n\t\"    Exit - Exits the program, changes are not saved to the file\\n\"\n\t\"    Save - Saves the current changes to the file\\n\"\n\t\"    Revert - Reloads the last saved version of the file\\n\"\n\t\"    Clear [<Type>] - Clears out all existing entries, and creates root of Type\\n\"\n\t\"    Print [<Entry>] - Prints value of Entry.  Otherwise, prints file\\n\"\n\t\"    Set <Entry> <Value> - Sets the value at Entry to Value\\n\"\n\t\"    Add <Entry> <Type> [<Value>] - Adds Entry to the plist, with value Value\\n\"\n\t\"    Copy <EntrySrc> <EntryDst> - Copies the EntrySrc property to EntryDst\\n\"\n\t\"    Delete <Entry> - Deletes Entry from the plist\\n\"\n\t\"    Merge <file.plist> [<Entry>] - Adds the contents of file.plist to Entry\\n\"\n\t\"    Import <Entry> <file> - Creates or sets Entry the contents of file\\n\"\n\t\"\\n\"\n\t\"Entry Format:\\n\"\n\t\"    Entries consist of property key names delimited by colons.  Array items\\n\"\n\t\"    are specified by a zero-based integer index.  Examples:\\n\"\n\t\"        :CFBundleShortVersionString\\n\"\n\t\"        :CFBundleDocumentTypes:2:CFBundleTypeExtensions\\n\"\n\t\"\\n\"\n\t\"Types:\\n\"\n\t\"    string\\n\"\n\t\"    array\\n\"\n\t\"    dict\\n\"\n\t\"    bool\\n\"\n\t\"    real\\n\"\n\t\"    integer\\n\"\n\t\"    date\\n\"\n\t\"    data\\n\"\n\t\"\\n\"\n\t\"Examples:\\n\"\n\t\"    Set :CFBundleIdentifier com.apple.plistbuddy\\n\"\n\t\"        Sets the CFBundleIdentifier property to com.apple.plistbuddy\\n\"\n\t\"    Add :CFBundleGetInfoString string \\\"App version 1.0.1\\\"\\n\"\n\t\"        Adds the CFBundleGetInfoString property to the plist\\n\"\n\t\"    Add :CFBundleDocumentTypes: dict\\n\"\n\t\"        Adds a new item of type dict to the CFBundleDocumentTypes array\\n\"\n\t\"    Add :CFBundleDocumentTypes:0 dict\\n\"\n\t\"        Adds the new item to the beginning of the array\\n\"\n\t\"    Delete :CFBundleDocumentTypes:0 dict\\n\"\n\t\"        Deletes the FIRST item in the array\\n\"\n\t\"    Delete :CFBundleDocumentTypes\\n\"\n\t\"        Deletes the ENTIRE CFBundleDocumentTypes array\\n\");\n}\n\nbool processArgs(int argc, const char** argv, const char** command)\n{\n\tif (argc <= 1)\n\t\treturn false;\n\n\tfor (int i = 1; i < argc; i++)\n\t{\n\t\tif (strcmp(argv[i], \"-c\") == 0)\n\t\t{\n\t\t\tif (i+1 >= argc)\n\t\t\t\treturn false;\n\t\t\t*command = argv[++i];\n\t\t}\n\t\telse if (strcmp(argv[i], \"-x\") == 0)\n\t\t{\n\t\t\tforceXML = true;\n\t\t}\n\t\telse if (strcmp(argv[i], \"-h\") == 0)\n\t\t{\n\t\t\tprintHelp();\n\t\t\treturn true;\n\t\t}\n\t\telse if (i+1 >= argc)\n\t\t{\n\t\t\toutputFile = argv[i];\n\t\t}\n\t\telse\n\t\t{\n\t\t\tputs(\"Invalid Arguments\");\n\t\t\texit(1);\n\t\t}\n\t}\n\n\treturn outputFile != NULL;\n}\n\nCFPropertyListRef loadPlist(const char* filePath)\n{\n\tSInt32 errorCode = 0;\n\tCFStringRef errorString = NULL;\n\tCFDataRef data = NULL;\n\tCFPropertyListRef plist;\n\tCFStringRef path = CFStringCreateWithCString(kCFAllocatorDefault, filePath, kCFStringEncodingUTF8);\n\tCFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, path, kCFURLPOSIXPathStyle, false);\n\n\tCFRelease(path);\n\n\tCFURLCreateDataAndPropertiesFromResource(kCFAllocatorDefault, url, &data, NULL, NULL, &errorCode);\n\tCFRelease(url);\n\n\tif (errorCode != 0)\n\t{\n\t\tprintf(\"Error Reading File: %s\\n\", filePath);\n\t\treturn false;\n\t}\n\n\tplist = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, data, kCFPropertyListMutableContainers, &errorString);\n\n\tif (errorString != NULL)\n\t{\n\t\tCFShow(errorString);\n\t\tCFRelease(errorString);\n\n\t\tprintf(\"Error Reading File: %s\\n\", filePath);\n\t}\n\n\treturn plist;\n}\n\nbool revertToFile(void)\n{\n\tif (plist != NULL)\n\t\tCFRelease(plist);\n\n\tif (access(outputFile, F_OK) != 0)\n\t{\n\t\tprintf(\"File Doesn't Exist, Will Create: %s\\n\", outputFile);\n\t\tplist = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\t\treturn true;\n\t}\n\telse\n\t{\n\t\tbool rv;\n\n\t\tplist = loadPlist(outputFile);\n\t\trv = plist != NULL;\n\n\t\tif (plist == NULL)\n\t\t\tplist = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\n\t\treturn rv;\n\t}\n}\n\nbool saveToFile(void)\n{\n\tbool rv = true;\n\tCFDataRef data;\n\tCFStringRef path = CFStringCreateWithCString(kCFAllocatorDefault, outputFile, kCFStringEncodingUTF8);\n\tCFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, path, kCFURLPOSIXPathStyle, false);\n\n\tCFRelease(path);\n\n\tdata = CFPropertyListCreateXMLData(kCFAllocatorDefault, plist);\n\tif (data != NULL)\n\t{\n\t\tSInt32 errorCode = 0;\n\n\t\tCFURLWriteDataAndPropertiesToResource(url, data, NULL, &errorCode);\n\t\tCFRelease(data);\n\t\t\n\t\tif (errorCode != 0)\n\t\t{\n\t\t\tputs(\"Cannot Write File\");\n\t\t\trv = false;\n\t\t}\n\t}\n\telse\n\t{\n\t\tputs(\"Cannot Format Plist\");\n\t\trv = false;\n\t}\n\n\tCFRelease(url);\n\treturn rv;\n}\n\nstatic const char* nextWord(const char* input)\n{\n\tint i;\n\n\tfor (i = 0; isspace(input[i]) && input[i] != '\\0'; i++)\n\t\t;\n\n\tif (input[i])\n\t\treturn &input[i];\n\telse\n\t\treturn NULL;\n}\n\nbool isCommand(const char* input, const char* cmd, const char** next)\n{\n\tsize_t len = strlen(cmd);\n\n\tif (strncasecmp(input, cmd, len) == 0 && (input[len] == ' ' || input[len] == '\\0'))\n\t{\n\t\tif (next != NULL)\n\t\t\t*next = nextWord(input + len);\n\t\treturn true;\n\t}\n\telse\n\t\treturn false;\n}\n\nstatic enum PropertyType parseType(const char* type)\n{\n\tif (strcasecmp(type, \"string\") == 0)\n\t\treturn typeString;\n\telse if (strcasecmp(type, \"array\") == 0)\n\t\treturn typeArray;\n\telse if (strcasecmp(type, \"dict\") == 0)\n\t\treturn typeDict;\n\telse if (strcasecmp(type, \"bool\") == 0)\n\t\treturn typeBool;\n\telse if (strcasecmp(type, \"real\") == 0)\n\t\treturn typeReal;\n\telse if (strcasecmp(type, \"integer\") == 0)\n\t\treturn typeInteger;\n\telse if (strcasecmp(type, \"date\") == 0)\n\t\treturn typeDate;\n\telse if (strcasecmp(type, \"data\") == 0)\n\t\treturn typeData;\n\telse\n\t{\n\t\tprintf(\"Unrecognized Type: %s\\n\", type);\n\t\treturn typeUnknown;\n\t}\n}\n\nstatic enum PropertyType inferType(CFPropertyListRef obj)\n{\n\tCFTypeID typeId = CFGetTypeID(obj);\n\n\tif (typeId == CFStringGetTypeID())\n\t\treturn typeString;\n\telse if (typeId == CFArrayGetTypeID())\n\t\treturn typeArray;\n\telse if (typeId == CFDictionaryGetTypeID())\n\t\treturn typeDict;\n\telse if (typeId == CFBooleanGetTypeID())\n\t\treturn typeBool;\n\telse if (typeId == CFNumberGetTypeID())\n\t{\n\t\tif (CFNumberIsFloatType((CFNumberRef) obj))\n\t\t\treturn typeReal;\n\t\telse\n\t\t\treturn typeInteger;\n\t}\n\telse if (typeId == CFDateGetTypeID())\n\t\treturn typeDate;\n\telse if (typeId == CFDataGetTypeID())\n\t\treturn typeData;\n\telse\n\t\treturn typeUnknown;\n}\n\nchar* getWord(const char* cmd, const char** next)\n{\n\tif (cmd[0] == '\"')\n\t{\n\t\tint i = 1, j = 0;\n\t\tchar* out = strdup(cmd);\n\n\t\tfor (; cmd[i] != '\\0'; i++)\n\t\t{\n\t\t\tif (cmd[i] == '\\\\' && cmd[i+1] != '\\0')\n\t\t\t{\n\t\t\t\ti++;\n\t\t\t\tswitch (cmd[i])\n\t\t\t\t{\n\t\t\t\t\tcase '\"':\n\t\t\t\t\t\tout[j++] = '\"';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'n':\n\t\t\t\t\t\tout[j++] = '\\n';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 't':\n\t\t\t\t\t\tout[j++] = '\\t';\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tout[j++] = '\\\\';\n\t\t\t\t\t\tout[j++] = cmd[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (cmd[i] == '\"')\n\t\t\t{\n\t\t\t\tout[j++] = '\\0';\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tout[j++] = cmd[i];\n\t\t\t}\n\t\t}\n\n\t\tif (j > 0 && out[j-1] != '\\0')\n\t\t{\n\t\t\tfree(out);\n\t\t\tputs(\"Unterminated Quotes\");\n\t\t\treturn NULL;\n\t\t}\n\t\tif (next)\n\t\t\t*next = nextWord(cmd + i + 1);\n\n\t\treturn out;\n\t}\n\telse\n\t{\n\t\tchar* p = strchr(cmd, ' ');\n\t\tif (p == NULL)\n\t\t{\n\t\t\tif (next)\n\t\t\t\t*next = NULL;\n\t\t\treturn strdup(cmd);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tchar* rv = strndup(cmd, p-cmd);\n\t\t\tif (next)\n\t\t\t\t*next = nextWord(p);\n\t\t\treturn rv;\n\t\t}\n\t}\n}\n\nvoid runCommand(const char* cmd)\n{\n\tconst char* next = NULL;\n\n\tif (isCommand(cmd, \"Exit\", NULL) || isCommand(cmd, \"Quit\", NULL) || isCommand(cmd, \"Bye\", NULL))\n\t{\n\t\texit(0);\n\t}\n\telse if (isCommand(cmd, \"Help\", NULL))\n\t{\n\t\tprintHelp();\n\t}\n\telse if (isCommand(cmd, \"Save\", &next))\n\t{\n\t\tputs(\"Saving...\");\n\t\tsaveToFile();\n\t}\n\telse if (isCommand(cmd, \"Revert\", NULL))\n\t{\n\t\tputs(\"Reverting to last saved state...\");\n\t\trevertToFile();\n\t}\n\telse if (isCommand(cmd, \"Print\", &next) || isCommand(cmd, \"ls\", &next))\n\t{\n\t\tdoPrint(next);\n\t}\n\telse if (isCommand(cmd, \"Clear\", &next))\n\t{\n\t\tenum PropertyType type = typeUnknown;\n\t\tif (next != NULL)\n\t\t\ttype = parseType(next);\n\t\tif (type == typeUnknown)\n\t\t\ttype = typeDict;\n\t}\n\telse if (isCommand(cmd, \"Set\", &next) || isCommand(cmd, \"=\", &next))\n\t{\n\t\t// entry value\n\t\tif (!next)\n\t\t{\n\t\t\tputs(\"Missing arguments\");\n\t\t\treturn;\n\t\t}\n\n\t\tchar* entry = getWord(next, &next);\n\n\t\tif (!next)\n\t\t\tnext = \"\";\n\n\t\tsetEntry(entry, next);\n\n\t\tfree(entry);\n\t}\n\telse if (isCommand(cmd, \"Add\", &next) || isCommand(cmd, \"+\", &next))\n\t{\n\t\t// entry type [value]\n\t\tif (!next)\n\t\t{\n\t\t\tputs(\"Missing arguments\");\n\t\t\treturn;\n\t\t}\n\n\t\tchar* entry = getWord(next, &next);\n\n\t\tif (!next)\n\t\t{\n\t\t\tfree(entry);\n\t\t\tputs(\"Missing arguments\");\n\t\t\treturn;\n\t\t}\n\n\t\tchar* type = getWord(next, &next);\n\t\tenum PropertyType typeV = parseType(type);\n\n\t\tif (typeV == typeUnknown)\n\t\t{\n\t\t\tfree(entry);\n\t\t\tfree(type);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!next)\n\t\t\tnext = \"\";\n\n\t\taddEntry(entry, typeV, next);\n\n\t\tfree(entry);\n\t\tfree(type);\n\t}\n\telse if (isCommand(cmd, \"Copy\", &next) || isCommand(cmd, \"cp\", &next))\n\t{\n\t\t// entrySrc entryDst\n\t\tif (!next)\n\t\t{\n\t\t\tputs(\"Missing arguments\");\n\t\t\treturn;\n\t\t}\n\n\t\tchar* src = getWord(next, &next);\n\t\tif (!next)\n\t\t{\n\t\t\tputs(\"Missing arguments\");\n\t\t\treturn;\n\t\t}\n\n\t\tchar* dst = getWord(next, NULL);\n\n\t\tcopyEntry(src, dst);\n\n\t\tfree(src);\n\t\tfree(dst);\n\t}\n\telse if (isCommand(cmd, \"Delete\", &next) || isCommand(cmd, \"rm\", &next) || isCommand(cmd, \"-\", &next))\n\t{\n\t\t// entry\n\t\tif (!next)\n\t\t{\n\t\t\tputs(\"Missing arguments\");\n\t\t\treturn;\n\t\t}\n\n\t\tdeleteEntry(next);\n\t}\n\telse if (isCommand(cmd, \"Merge\", &next))\n\t{\n\t\t// file.plist [entryDst]\n\t\tif (!next)\n\t\t{\n\t\t\tputs(\"Missing arguments\");\n\t\t\treturn;\n\t\t}\n\n\t\tchar* path = getWord(next, &next);\n\n\t\tmergeFile(path, next);\n\t\tfree(path);\n\t}\n\telse if (isCommand(cmd, \"Import\", &next))\n\t{\n\t\t// entry file.plist\n\t\tif (!next)\n\t\t{\n\t\t\tputs(\"Missing arguments\");\n\t\t\treturn;\n\t\t}\n\t\tchar* entry = getWord(next, &next);\n\n\t\tif (!next)\n\t\t{\n\t\t\tputs(\"Missing arguments\");\n\t\t\tfree(entry);\n\t\t\treturn;\n\t\t}\n\t\tchar* path = getWord(next, &next);\n\n\t\timportFile(entry, path);\n\n\t\tfree(path);\n\t\tfree(entry);\n\t}\n\telse\n\t{\n\t\tputs(\"Unrecognized Command\");\n\t}\n}\n\nvoid addEntry(const char* entry, enum PropertyType type, const char* value)\n{\n\tCFPropertyListRef parent, existing;\n\tCFPropertyListRef newValue;\n\tchar* leafName = NULL;\n\tCFTypeID parentType;\n\n\t// printf(\"add entry (type %d) with value: %s\\n\", type, value);\n\n\tif (type == typeArray)\n\t{\n\t\tnewValue = CFArrayCreateMutable(kCFAllocatorDefault, 0, &kCFTypeArrayCallBacks);\n\t}\n\telse if (type == typeDict)\n\t{\n\t\tnewValue = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\t}\n\telse\n\t{\n\t\tnewValue = parseValue(type, value);\n\t\tif (newValue == NULL)\n\t\t\treturn;\n\t}\n\n\tresolvePlistEntry(entry, &parent, &existing, &leafName, true);\n\n\tif (parent == NULL)\n\t{\n\t\tprintf(\"Add: Entry, \\\"%s\\\", Does Not Exist\\n\", entry);\n\t\tfree(leafName);\n\t\treturn;\n\t}\n\n\tparentType = CFGetTypeID(parent);\n\n\t// in case of arrays, we just insert at given position\n\tif (existing != NULL && parentType != CFArrayGetTypeID())\n\t{\n\t\tprintf(\"Add: \\\"%s\\\" Entry Already Exists\\n\", entry);\n\t\tgoto out;\n\t}\n\n\tif (parentType == CFArrayGetTypeID())\n\t{\n\t\tCFMutableArrayRef array = (CFMutableArrayRef) parent;\n\t\tCFIndex index = atoi(leafName);\n\n\t\tif (index < 0)\n\t\t\tindex = 0;\n\t\telse if (index > CFArrayGetCount(array))\n\t\t\tindex = CFArrayGetCount(array);\n\n\t\tCFArrayInsertValueAtIndex(array, index, newValue);\n\t}\n\telse if (parentType == CFDictionaryGetTypeID())\n\t{\n\t\t// printf(\"Add new entry named %s into dict %p, root is %p\\n\", leafName, parent, plist);\n\t\tCFStringRef key = CFStringCreateWithCString(kCFAllocatorDefault, leafName, kCFStringEncodingUTF8);\n\t\tCFDictionaryAddValue((CFMutableDictionaryRef) parent, key, newValue);\n\t\tCFRelease(key);\n\t}\n\telse\n\t{\n\t\tprintf(\"Add: Can't Add Entry, \\\"%s\\\", to Parent\\n\", entry);\n\t}\n\nout:\n\tfree(leafName);\n\tCFRelease(newValue);\n}\n\nCFPropertyListRef parseValue(enum PropertyType type, const char* string)\n{\n\tswitch (type)\n\t{\n\t\tcase typeString:\n\t\tcase typeData:\n\t\t{\n\t\t\tchar* stringOut;\n\t\t\tbool hasQuotes = string[0] == '\"';\n\n\t\t\tsize_t len = strlen(string);\n\t\t\tsize_t i = 0, j = 0;\n\n\t\t\tif (hasQuotes)\n\t\t\t{\n\t\t\t\tif (string[len-1] != '\"')\n\t\t\t\t{\n\t\t\t\t\tputs(\"Parse Error: Unclosed Quotes\");\n\t\t\t\t\treturn NULL;\n\t\t\t\t}\n\t\t\t\ti++;\n\t\t\t\tlen--;\n\t\t\t}\n\n\t\t\tstringOut = (char*) malloc(len+1);\n\n\t\t\tfor (; i < len; i++)\n\t\t\t{\n\t\t\t\tif (string[i] != '\\\\')\n\t\t\t\t{\n\t\t\t\t\tstringOut[j] = string[i];\n\t\t\t\t\tj++;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (i+1 == len)\n\t\t\t\t\t{\n\t\t\t\t\t\tfree(stringOut);\n\t\t\t\t\t\tputs(\"Parse Error: Unclosed Quotes\");\n\t\t\t\t\t\treturn NULL;\n\t\t\t\t\t}\n\n\t\t\t\t\tswitch (string[++i])\n\t\t\t\t\t{\n\t\t\t\t\t\tcase '\"':\n\t\t\t\t\t\t\tstringOut[j++] = '\"';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'n':\n\t\t\t\t\t\t\tstringOut[j++] = '\\n';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 't':\n\t\t\t\t\t\t\tstringOut[j++] = '\\t';\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tstringOut[j++] = string[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tstringOut[j] = '\\0';\n\n\t\t\tCFPropertyListRef rv;\n\t\t\tif (type == typeString)\n\t\t\t   \trv = CFStringCreateWithCString(kCFAllocatorDefault, stringOut, kCFStringEncodingUTF8);\n\t\t\telse\n\t\t\t\trv = CFDataCreate(kCFAllocatorDefault, (const UInt8*) string, strlen(string));\n\n\t\t\tfree(stringOut);\n\t\t\treturn rv;\n\t\t}\n\t\tcase typeBool:\n\t\t\tif (strcasecmp(string, \"true\") == 0 || strcasecmp(string, \"yes\") == 0 || strcmp(string, \"1\") == 0)\n\t\t\t\treturn kCFBooleanTrue;\n\t\t\treturn kCFBooleanFalse;\n\n\t\tcase typeInteger:\n\t\t{\n\t\t\tchar* endptr;\n\t\t\tlong long v;\n\n\t\t\tv = strtoll(string, &endptr, 0);\n\t\t\tif (endptr == string)\n\t\t\t{\n\t\t\t\tputs(\"Unrecognized Integer Format\");\n\t\t\t\treturn NULL;\n\t\t\t}\n\n\t\t\treturn CFNumberCreate(kCFAllocatorDefault, kCFNumberLongLongType, &v);\n\t\t}\n\n\t\tcase typeReal:\n\t\t{\n\t\t\tchar* endptr;\n\t\t\tdouble v;\n\n\t\t\tv = strtod(string, &endptr);\n\t\t\tif (endptr == string)\n\t\t\t{\n\t\t\t\tputs(\"Unrecognized Real Format\");\n\t\t\t\treturn NULL;\n\t\t\t}\n\n\t\t\treturn CFNumberCreate(kCFAllocatorDefault, kCFNumberFloat64Type, &v);\n\t\t}\n\t\tcase typeDate:\n\t\t{\n\t\t\tstruct tm tm;\n\n\t\t\tif (!strptime(string, \"%a %b %d %H:%M:%S %Z %Y\", &tm)\n\t\t\t\t\t&& !strptime(string, \"%c\", &tm)\n\t\t\t\t\t&& !strptime(string, \"%D\", &tm))\n\t\t\t{\n\t\t\t\tputs(\"Unrecognized Date Format\");\n\t\t\t\treturn NULL;\n\t\t\t}\n\n\t\t\tCFTimeZoneRef tz = CFTimeZoneCopyDefault();\n\t\t\tCFAbsoluteTime at;\n\t\t\tCFGregorianDate date;\n\n\t\t\tdate.day = tm.tm_mday;\n\t\t\tdate.hour = tm.tm_hour;\n\t\t\tdate.minute = tm.tm_min;\n\t\t\tdate.month = tm.tm_mon + 1;\n\t\t\tdate.second = tm.tm_sec;\n\t\t\tdate.year = tm.tm_year + 1900;\n\n\t\t\tat = CFGregorianDateGetAbsoluteTime(date, tz);\n\n\t\t\tCFDateRef rv = CFDateCreate(kCFAllocatorDefault, at);\n\n\t\t\tCFRelease(tz);\n\t\t\treturn rv;\n\t\t}\n\t\tdefault:\n\t\t{\n\t\t\tputs(\"Cannot parse this entry type\");\n\t\t\treturn NULL;\n\t\t}\n\t}\n}\n\nvoid setEntry(const char* entry, const char* entryValue)\n{\n\tCFPropertyListRef parent, existing;\n\tCFPropertyListRef newValue;\n\tchar* leafName = NULL;\n\tenum PropertyType type;\n\n\tresolvePlistEntry(entry, &parent, &existing, &leafName, false);\n\tif (existing == NULL)\n\t{\n\t\tfree(leafName);\n\t\tprintf(\"Set: Entry, \\\"%s\\\", Does Not Exist\\n\", entry);\n\t\treturn;\n\t}\n\n\ttype = inferType(existing);\n\tif (type == typeArray || type == typeDict)\n\t{\n\t\tfree(leafName);\n\t\tputs(\"Set: Cannot Perform Set On Containers\");\n\t\treturn;\n\t}\n\n\tnewValue = parseValue(type, entryValue);\n\tif (newValue == NULL)\n\t{\n\t\tfree(leafName);\n\t\treturn;\n\t}\n\n\tif (CFGetTypeID(parent) == CFDictionaryGetTypeID())\n\t{\n\t\tCFStringRef leafNameStr = CFStringCreateWithCString(kCFAllocatorDefault, leafName, kCFStringEncodingUTF8);\n\t\tCFDictionaryReplaceValue((CFMutableDictionaryRef) parent, leafNameStr, newValue);\n\t\tCFRelease(leafNameStr);\n\t}\n\telse\n\t{\n\t\tint index = atoi(leafName);\n\n\t\tCFArraySetValueAtIndex((CFMutableArrayRef) parent, index, newValue);\n\t}\n\n\tfree(leafName);\n\tCFRelease(newValue);\n}\n\nstatic const char* strtok_empty(char** pstr, char delim)\n{\n\tchar* p;\n\tchar* str = *pstr;\n\n\tif (str == NULL)\n\t\treturn NULL;\n\n\twhile (str[0] == delim)\n\t\tstr++;\n\n\tif ((p = strchr (str, delim)) != NULL)\n\t{\n\t\t*p = '\\0';\n\t\t*pstr = p + 1;\n\t} else {\n\t\t*pstr = NULL;\n\t}\n\n\treturn str;\n}\n\nvoid resolvePlistEntry(const char* whatStr, CFPropertyListRef* parent, CFPropertyListRef* entry, char** last, bool autoCreate)\n{\n\tCFPropertyListRef pos = plist;\n\tCFPropertyListRef lastPos = NULL;\n\n\tconst char *tok, *lastTok = \"\";\n\n\t// trim head\n\twhile (whatStr[0] == ':')\n\t\twhatStr++;\n\n\t// trim tail\n\tsize_t len = strlen(whatStr);\n\twhile(len > 0 && whatStr[len - 1] == ':') {\n\t\tlen--;\n\t}\n\n\tchar* whatStr2 = strndup(whatStr, len);\n\tchar* p = whatStr2;\n\n\twhile ((tok = strtok_empty(&p, ':')) && pos != NULL)\n\t{\n\t\tlastPos = pos;\n\t\tif (*tok)\n\t\t{\n\t\t\tCFTypeID typeId = CFGetTypeID(pos);\n\n\t\t\tif (typeId == CFDictionaryGetTypeID())\n\t\t\t{\n\t\t\t\tCFStringRef key = CFStringCreateWithCString(kCFAllocatorDefault, tok, kCFStringEncodingUTF8);\n\t\t\t\tpos = (CFPropertyListRef) CFDictionaryGetValue((CFDictionaryRef) pos, key);\n\t\t\t\tif (pos == NULL && autoCreate && p != NULL)\n\t\t\t\t{\n\t\t\t\t\tpos = CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\t\t\t\t\tCFDictionaryAddValue((CFMutableDictionaryRef) lastPos, key, pos);\n\t\t\t\t}\n\t\t\t\tCFRelease(key);\n\t\t\t}\n\t\t\telse if (typeId == CFArrayGetTypeID())\n\t\t\t{\n\t\t\t\tint index = atoi(tok);\n\t\t\t\tif (index < 0 || index >= CFArrayGetCount((CFArrayRef) pos))\n\t\t\t\t{\n\t\t\t\t\tpos = NULL;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tpos = (CFPropertyListRef) CFArrayGetValueAtIndex((CFArrayRef) pos, index);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tpos = NULL;\n\t\t\t}\n\t\t}\n\n\t\tlastTok = tok;\n\t}\n\n\tif (last != NULL)\n\t\t*last = strdup(lastTok);\n\n\tif (entry != NULL)\n\t\t*entry = pos;\n\n\tif (parent != NULL)\n\t\t*parent = (!tok) ? lastPos : NULL;\n\n\tfree(whatStr2);\n}\n\nvoid prettyPrintPlist(CFPropertyListRef what, int indentNum)\n{\n\tCFTypeID typeId = CFGetTypeID(what);\n\tchar* indent = __builtin_alloca(indentNum + 1);\n\n\tmemset(indent, ' ', indentNum);\n\tindent[indentNum] = '\\0';\n\n\tif (typeId == CFStringGetTypeID())\n\t{\n\t\tconst char* str = CFStringGetCStringPtr((CFStringRef) what, kCFStringEncodingUTF8);\n\t\tprintf(\"%s\", str);\n\t}\n\telse if (typeId == CFArrayGetTypeID())\n\t{\n\t\tCFArrayRef array = (CFArrayRef) what;\n\t\tCFIndex count = CFArrayGetCount(array);\n\n\t\tprintf(\"Array {\\n\");\n\t\tfor (CFIndex i = 0; i < count; i++)\n\t\t{\n\t\t\tCFPropertyListRef elem = (CFPropertyListRef) CFArrayGetValueAtIndex(array, i);\n\t\t\tprintf(\"%s    \", indent);\n\n\t\t\tprettyPrintPlist(elem, indentNum + 4);\n\t\t\tprintf(\"\\n\");\n\t\t}\n\n\t\tprintf(\"%s}\", indent);\n\t}\n\telse if (typeId == CFDictionaryGetTypeID())\n\t{\n\t\tCFDictionaryRef dict = (CFDictionaryRef) what;\n\t\tCFStringRef* keys;\n\t\tCFPropertyListRef* values;\n\n\t\tCFIndex count = CFDictionaryGetCount(dict);\n\n\t\tkeys = malloc(sizeof(CFStringRef*) * count);\n\t\tvalues = malloc(sizeof(CFStringRef*) * count);\n\n\t\tCFDictionaryGetKeysAndValues(dict, (const void**) keys, (const void**) values);\n\n\t\tprintf(\"Dict {\\n\");\n\t\tfor (CFIndex i = 0; i < count; i++)\n\t\t{\n\t\t\tprintf(\"%s    \", indent);\n\t\t\tprettyPrintPlist(keys[i], 0);\n\t\t\tprintf(\" = \");\n\t\t\tprettyPrintPlist(values[i], indentNum + 4);\n\t\t\tprintf(\"\\n\");\n\t\t}\n\n\t\tprintf(\"%s}\", indent);\n\n\t\tfree(keys);\n\t\tfree(values);\n\t}\n\telse if (typeId == CFBooleanGetTypeID())\n\t{\n\t\tif (what == kCFBooleanTrue)\n\t\t\tprintf(\"true\");\n\t\telse\n\t\t\tprintf(\"false\");\n\t}\n\telse if (typeId == CFNumberGetTypeID())\n\t{\n\t\tCFNumberRef num = (CFNumberRef) what;\n\n\t\tif (CFNumberIsFloatType(num))\n\t\t{\n\t\t\tFloat64 d;\n\t\t\tCFNumberGetValue(num, kCFNumberFloat64Type, &d);\n\t\t\tprintf(\"%f\", d);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlong long l;\n\t\t\tCFNumberGetValue(num, kCFNumberLongLongType, &l);\n\t\t\tprintf(\"%lld\", l);\n\t\t}\n\t}\n\telse if (typeId == CFDateGetTypeID())\n\t{\n\t\tCFAbsoluteTime t = CFDateGetAbsoluteTime((CFDateRef) what);\n\t\tCFTimeZoneRef tz = CFTimeZoneCopyDefault();\n\t\tCFGregorianDate d = CFAbsoluteTimeGetGregorianDate(t, tz);\n\t\tstruct tm tm;\n\t\tchar buf[150];\n\n\t\ttm.tm_mday = d.day;\n\t\ttm.tm_mon = d.month - 1;\n\t\ttm.tm_year = d.year - 1900;\n\t\ttm.tm_hour = d.hour;\n\t\ttm.tm_min = d.minute;\n\t\ttm.tm_sec = d.second;\n\t\ttm.tm_wday = CFAbsoluteTimeGetDayOfWeek(t, tz);\n\n\t\tif (tm.tm_wday == 7)\n\t\t\ttm.tm_wday = 0;\n\n\t\ttm.tm_zone = 0;\n\t\ttm.tm_isdst = 0;\n\n\t\tstrftime(buf, sizeof(buf), \"%a %b %d %H:%M:%S %Z %Y\", &tm);\n\t\tprintf(\"%s\", buf);\n\n\t\tCFRelease(tz);\n\t}\n\telse if (typeId == CFDataGetTypeID())\n\t{\n\t\tCFDataRef data = (CFDataRef) what;\n\t\tconst UInt8* bytes = CFDataGetBytePtr(data);\n\t\tCFIndex len = CFDataGetLength(data);\n\n\t\tfwrite(bytes, 1, len, stdout);\n\t}\n}\n\nvoid doPrint(const char* whatStr)\n{\n\tCFPropertyListRef what = plist;\n\tCFPropertyListRef entry = plist;\n\n\tif (whatStr != NULL)\n\t{\n\t\tresolvePlistEntry(whatStr, &what, &entry, NULL, false);\n\t\tif (entry == NULL)\n\t\t{\n\t\t\tprintf(\"Print: Entry, \\\"%s\\\", Does Not Exist\\n\", whatStr);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (!forceXML) {\n\t\tprettyPrintPlist(entry, 0);\n\t\tprintf(\"\\n\");\n\t}\n\telse\n\t{\n\t\tCFDataRef data = CFPropertyListCreateXMLData(kCFAllocatorDefault, entry);\n\n\t\tif (data != NULL)\n\t\t{\n\t\t\tprettyPrintPlist(data, 0);\n\t\t\tprintf(\"\\n\");\n\n\t\t\tCFRelease(data);\n\t\t}\n\t}\n}\n\nvoid deleteEntry(const char* entry)\n{\n\tCFPropertyListRef parent, existing;\n\tCFPropertyListRef newValue;\n\tchar* leafName = NULL;\n\n\tresolvePlistEntry(entry, &parent, &existing, &leafName, false);\n\tif (existing == NULL)\n\t{\n\t\tprintf(\"Delete: Entry, \\\"%s\\\", Does Not Exist\\n\", entry);\n\t\tgoto out;\n\t}\n\n\tCFTypeID typeID = CFGetTypeID(parent);\n\tif (typeID == CFDictionaryGetTypeID())\n\t{\n\t\tCFStringRef str = CFStringCreateWithCString(kCFAllocatorDefault, leafName, kCFStringEncodingUTF8);\n\t\tCFDictionaryRemoveValue((CFMutableDictionaryRef) parent, str);\n\t\tCFRelease(str);\n\t}\n\telse\n\t{\n\t\tCFIndex idx = atoi(leafName);\n\t\tCFArrayRemoveValueAtIndex((CFMutableArrayRef) parent, idx);\n\t}\n\nout:\n\tfree(leafName);\n}\n\nvoid copyEntry(const char* src, const char* dst)\n{\n\tCFPropertyListRef existing, entry, newParent, entryCopy;\n\tchar* leafName = NULL;\n\n\tresolvePlistEntry(src, NULL, &entry, NULL, false);\n\tresolvePlistEntry(dst, &newParent, &existing, &leafName, true);\n\n\tif (entry == NULL)\n\t{\n\t\tprintf(\"Copy: Entry, \\\"%s\\\", Does Not Exist\\n\", src);\n\t\tgoto out;\n\t}\n\tif (existing != NULL)\n\t{\n\t\tprintf(\"Copy: \\\"%s\\\" Entry Already Exists\\n\", dst);\n\t\tgoto out;\n\t}\n\n\tentryCopy = CFPropertyListCreateDeepCopy(kCFAllocatorDefault, entry, kCFPropertyListMutableContainers);\n\n\tCFTypeID typeID = CFGetTypeID(newParent);\n\tif (typeID == CFDictionaryGetTypeID())\n\t{\n\t\tCFStringRef str = CFStringCreateWithCString(kCFAllocatorDefault, leafName, kCFStringEncodingUTF8);\n\t\tCFDictionaryAddValue((CFMutableDictionaryRef) newParent, str, entryCopy);\n\t\tCFRelease(str);\n\t}\n\telse\n\t{\n\t\tCFIndex idx = atoi(leafName);\n\t\tCFArrayInsertValueAtIndex((CFMutableArrayRef) newParent, idx, entryCopy);\n\t}\n\n\tCFRelease(entryCopy);\nout:\n\tfree(leafName);\n}\n\nvoid mergeFile(const char* path, const char* entry)\n{\n\tCFPropertyListRef dest, fileContents;\n\n\tfileContents = loadPlist(path);\n\tif (fileContents == NULL)\n\t\treturn;\n\n\tif (entry != NULL && *entry)\n\t{\n\t\tresolvePlistEntry(entry, NULL, &dest, NULL, true);\n\t\tif (dest == NULL)\n\t\t{\n\t\t\tprintf(\"Merge: Entry, \\\"%s\\\", Does Not Exist\\n\", entry);\n\t\t\tCFRelease(fileContents);\n\t\t\treturn;\n\t\t}\n\t}\n\telse\n\t\tdest = plist;\n\t\n\tCFTypeID typeID = CFGetTypeID(dest);\n\tCFTypeID sourceTypeID = CFGetTypeID(fileContents);\n\n\tif (typeID == CFArrayGetTypeID())\n\t{\n\t\tif (sourceTypeID == CFArrayGetTypeID())\n\t\t{\n\t\t\tCFArrayAppendArray((CFMutableArrayRef) dest, fileContents, CFRangeMake(0, CFArrayGetCount(fileContents)));\n\t\t}\n\t\telse if (sourceTypeID == CFDictionaryGetTypeID())\n\t\t{\n\t\t\tCFIndex count = CFDictionaryGetCount((CFDictionaryRef) fileContents);\n\t\t\tvoid** values = malloc(sizeof(void*) * count);\n\t\t\tCFDictionaryGetKeysAndValues((CFDictionaryRef) fileContents, NULL, (const void**) values);\n\n\t\t\tCFArrayReplaceValues((CFMutableArrayRef) dest, CFRangeMake(CFArrayGetCount((CFArrayRef) dest) - 1, 0), (const void**) values, count);\n\t\t\tfree(values);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tCFArrayAppendValue((CFMutableArrayRef) dest, fileContents);\n\t\t}\n\t}\n\telse if (typeID == CFDictionaryGetTypeID())\n\t{\n\t\tif (sourceTypeID == CFDictionaryGetTypeID())\n\t\t{\n\t\t\tCFIndex count = CFDictionaryGetCount((CFDictionaryRef) fileContents);\n\t\t\tvoid** values = malloc(sizeof(void*) * count);\n\t\t\tvoid** keys = malloc(sizeof(void*) * count);\n\n\t\t\tCFDictionaryGetKeysAndValues((CFDictionaryRef) fileContents, (const void**) keys, (const void**) values);\n\n\t\t\tfor (CFIndex i = 0; i < count; i++)\n\t\t\t\tCFDictionarySetValue((CFMutableDictionaryRef) dest, keys[i], values[i]);\n\n\t\t\tfree(keys);\n\t\t\tfree(values);\n\t\t}\n\t\telse if (sourceTypeID == CFArrayGetTypeID())\n\t\t{\n\t\t\tputs(\"Merge: Can't Add array Entries to dict\");\n\t\t}\n\t\telse\n\t\t{\n\t\t\tCFDictionarySetValue((CFMutableDictionaryRef) dest, CFSTR(\"\"), fileContents);\n\t\t}\n\t}\n\telse\n\t{\n\t\tputs(\"Merge: Specified Entry Must Be a Container\");\n\t}\n\n\tCFRelease(fileContents);\n}\n\n// NOTE: This function doesn't seem to work at all in the original program\nvoid importFile(const char* entry, const char* path)\n{\n\tCFPropertyListRef dest, fileContents;\n\tchar* leafName;\n\n\tfileContents = loadPlist(path);\n\tif (fileContents == NULL)\n\t\treturn;\n\n\tresolvePlistEntry(entry, &dest, NULL, &leafName, true);\n\tif (dest == NULL)\n\t{\n\t\tprintf(\"Import: Entry, \\\"%s\\\", Does Not Exist\\n\", entry);\n\t\tCFRelease(fileContents);\n\t\treturn;\n\t}\n\n\tCFTypeID typeID = CFGetTypeID(dest);\n\tif (typeID == CFDictionaryGetTypeID())\n\t{\n\t\tCFStringRef key = CFStringCreateWithCString(kCFAllocatorDefault, leafName, kCFStringEncodingUTF8);\n\t\tCFDictionarySetValue((CFMutableDictionaryRef) dest, key, fileContents);\n\t\tCFRelease(key);\n\t}\n\telse if (typeID == CFArrayGetTypeID())\n\t{\n\t\tCFIndex index = atoi(leafName);\n\t\tif (index < 0)\n\t\t\tindex = 0;\n\n\t\tif (index >= CFArrayGetCount((CFArrayRef) dest))\n\t\t\tCFArrayAppendValue((CFMutableArrayRef) dest, fileContents);\n\t\telse\n\t\t\tCFArraySetValueAtIndex((CFMutableArrayRef) dest, index, fileContents);\n\t}\n\n\tfree(leafName);\n\tCFRelease(fileContents);\n}\n\n"
  },
  {
    "path": "src/VideoDecodeAcceleration/CMakeLists.txt",
    "content": "project(VideoDecodeAcceleration)\n\ncmake_minimum_required(VERSION 3.13)\n\nenable_language(C ASM)\n\nif(COMMAND cmake_policy)\n\tcmake_policy(SET CMP0003 NEW)\nendif(COMMAND cmake_policy)\n\nset(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -nostdinc -D__DARWIN_UNIX03 -fPIC -w\")\nset(CMAKE_SHARED_LINKER_FLAGS \"${CMAKE_SHARED_LINKER_FLAGS} -nostdlib -Wl,--version-script=${DARLING_TOP_DIRECTORY}/darwin.map\")\n\nSET(CMAKE_INSTALL_RPATH \"${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/darling\")\nSET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) \nSET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)\n\nadd_definitions(-DOBJC2RUNTIME=1)\n\nset(vda_SRCS\n\tdummy.c\n)\n\nadd_library(VideoDecodeAcceleration SHARED ${vda_SRCS})\ntarget_link_libraries(VideoDecodeAcceleration PRIVATE system CFF)\n\ninstall(TARGETS VideoDecodeAcceleration DESTINATION ${CMAKE_INSTALL_LIBDIR}/darling)\n"
  },
  {
    "path": "src/VideoDecodeAcceleration/dummy.c",
    "content": "#include <CoreFoundation/CFBase.h>\n#include <CoreFoundation/CFString.h>\n#include \"../CFF/CFStringConst.h\"\n\n// A real implementation would use VA API or VDPAU\n\nCONST_STRING_DECL(kVDADecoderConfiguration_Height, \"kVDADecoderConfiguration_Height\");\nCONST_STRING_DECL(kVDADecoderConfiguration_Width, \"kVDADecoderConfiguration_Width\");\nCONST_STRING_DECL(kVDADecoderConfiguration_SourceFormat, \"kVDADecoderConfiguration_SourceFormat\");\nCONST_STRING_DECL(kVDADecoderConfiguration_avcCData, \"kVDADecoderConfiguration_avcCData\");\n\n#define kVDADecoderHardwareNotSupportedErr -12470\n\n__attribute__((constructor))\n\tstatic void initConstants()\n{\n\tCFTypeID type = CFStringGetTypeID();\n\tGSRuntimeConstantInit(kVDADecoderConfiguration_Height, type);\n\tGSRuntimeConstantInit(kVDADecoderConfiguration_Width, type);\n\tGSRuntimeConstantInit(kVDADecoderConfiguration_SourceFormat, type);\n\tGSRuntimeConstantInit(kVDADecoderConfiguration_avcCData, type);\n}\n\nOSStatus VDADecoderCreate()\n{\n\treturn kVDADecoderHardwareNotSupportedErr;\n}\n\nOSStatus VDADecoderDestroy()\n{\n\treturn kVDADecoderHardwareNotSupportedErr;\n}\n\nOSStatus VDADecoderDecode()\n{\n\treturn kVDADecoderHardwareNotSupportedErr;\n}\n\nOSStatus VDADecoderFlush()\n{\n\treturn kVDADecoderHardwareNotSupportedErr;\n}\n\n"
  },
  {
    "path": "src/bsdln/CMakeLists.txt",
    "content": "project(bsdln)\n\nadd_executable(bsdln\n\tln.c\n)\ntarget_link_libraries(bsdln bsd)\n"
  },
  {
    "path": "src/bsdln/ln.c",
    "content": "/*-\n * Copyright (c) 1987, 1993, 1994\n *\tThe Regents of the University of California.  All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n * 4. Neither the name of the University nor the names of its contributors\n *    may be used to endorse or promote products derived from this software\n *    without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n */\n\n#if 0\n#ifndef lint\nstatic char const copyright[] =\n\"@(#) Copyright (c) 1987, 1993, 1994\\n\\\n\tThe Regents of the University of California.  All rights reserved.\\n\";\n#endif /* not lint */\n\n#ifndef lint\nstatic char sccsid[] = \"@(#)ln.c\t8.2 (Berkeley) 3/31/94\";\n#endif /* not lint */\n#endif\n#include <sys/cdefs.h>\n//__FBSDID(\"$FreeBSD: src/bin/ln/ln.c,v 1.34 2006/02/14 11:08:05 glebius Exp $\");\n\n#include <bsd/string.h>\n\n#include <sys/param.h>\n#include <sys/stat.h>\n\n#include <err.h>\n#include <errno.h>\n#include <libgen.h>\n#include <limits.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <unistd.h>\n\nint\tfflag;\t\t\t\t/* Unlink existing files. */\nint\tFflag;\t\t\t\t/* Remove empty directories also. */\nint\thflag;\t\t\t\t/* Check new name for symlink first. */\nint\tiflag;\t\t\t\t/* Interactive mode. */\nint\tsflag;\t\t\t\t/* Symbolic, not hard, link. */\nint\tvflag;\t\t\t\t/* Verbose output. */\n\t\t\t\t\t/* System link call. */\nint (*linkf)(const char *, const char *);\nchar\tlinkch;\n\nint\tlinkit(const char *, const char *, int);\nvoid\tusage(void);\n\nint\nmain(int argc, char *argv[])\n{\n\tstruct stat sb;\n\tchar *p, *sourcedir;\n\tint ch, exitval;\n\n\tif (argc < 1)\n\t\tusage();\n\t/*\n\t * Test for the special case where the utility is called as\n\t * \"link\", for which the functionality provided is greatly\n\t * simplified.\n\t */\n\tif ((p = rindex(argv[0], '/')) == NULL)\n\t\tp = argv[0];\n\telse\n\t\t++p;\n\tif (strcmp(p, \"link\") == 0) {\n\t\twhile (getopt(argc, argv, \"\") != -1)\n\t\t\tusage();\n\t\targc -= optind;\n\t\targv += optind;\n\t\tif (argc != 2)\n\t\t\tusage();\n\t\tlinkf = link;\n\t\texit(linkit(argv[0], argv[1], 0));\n\t}\n\n\twhile ((ch = getopt(argc, argv, \"Ffhinsv\")) != -1)\n\t\tswitch (ch) {\n\t\tcase 'F':\n\t\t\tFflag = 1;\n\t\t\tbreak;\n\t\tcase 'f':\n\t\t\tfflag = 1;\n\t\t\tiflag = 0;\n\t\t\tbreak;\n\t\tcase 'h':\n\t\tcase 'n':\n\t\t\thflag = 1;\n\t\t\tbreak;\n\t\tcase 'i':\n\t\t\tiflag = 1;\n\t\t\tfflag = 0;\n\t\t\tbreak;\n\t\tcase 's':\n\t\t\tsflag = 1;\n\t\t\tbreak;\n\t\tcase 'v':\n\t\t\tvflag = 1;\n\t\t\tbreak;\n\t\tcase '?':\n\t\tdefault:\n\t\t\tusage();\n\t\t}\n\n\targv += optind;\n\targc -= optind;\n\n\tlinkf = sflag ? symlink : link;\n\tlinkch = sflag ? '-' : '=';\n\tif (sflag == 0)\n\t\tFflag = 0;\n\tif (Fflag == 1 && iflag == 0)\n\t\tfflag = 1;\n\n\tswitch(argc) {\n\tcase 0:\n\t\tusage();\n\t\t/* NOTREACHED */\n\tcase 1:\t\t\t\t/* ln target */\n\t\texit(linkit(argv[0], \".\", 1));\n\tcase 2:\t\t\t\t/* ln target source */\n\t\texit(linkit(argv[0], argv[1], 0));\n\tdefault:\n\t\t;\n\t}\n\t\t\t\t\t/* ln target1 target2 directory */\n\tsourcedir = argv[argc - 1];\n\tif (hflag && lstat(sourcedir, &sb) == 0 && S_ISLNK(sb.st_mode)) {\n\t\t/*\n\t\t * We were asked not to follow symlinks, but found one at\n\t\t * the target--simulate \"not a directory\" error\n\t\t */\n\t\terrno = ENOTDIR;\n\t\terr(1, \"%s\", sourcedir);\n\t}\n\tif (stat(sourcedir, &sb))\n\t\terr(1, \"%s\", sourcedir);\n\tif (!S_ISDIR(sb.st_mode))\n\t\tusage();\n\tfor (exitval = 0; *argv != sourcedir; ++argv)\n\t\texitval |= linkit(*argv, sourcedir, 1);\n\texit(exitval);\n}\n\nint\nlinkit(const char *target, const char *source, int isdir)\n{\n\tstruct stat sb;\n\tconst char *p;\n\tint ch, exists, first;\n\tchar path[PATH_MAX];\n\tchar bbuf[PATH_MAX];\n\n\tif (!sflag) {\n\t\t/* If target doesn't exist, quit now. */\n\t\tif (stat(target, &sb)) {\n\t\t\twarn(\"%s\", target);\n\t\t\treturn (1);\n\t\t}\n\t\t/* Only symbolic links to directories. */\n\t\tif (S_ISDIR(sb.st_mode)) {\n\t\t\terrno = EISDIR;\n\t\t\twarn(\"%s\", target);\n\t\t\treturn (1);\n\t\t}\n\t}\n\n\t/*\n\t * If the source is a directory (and not a symlink if hflag),\n\t * append the target's name.\n\t */\n\tif (isdir ||\n\t    (lstat(source, &sb) == 0 && S_ISDIR(sb.st_mode)) ||\n\t    (!hflag && stat(source, &sb) == 0 && S_ISDIR(sb.st_mode))) {\n\t\tif (strlcpy(bbuf, target, sizeof(bbuf)) >= sizeof(bbuf) ||\n\t\t    (p = basename(bbuf)) == NULL ||\n\t\t    snprintf(path, sizeof(path), \"%s/%s\", source, p) >=\n\t\t    (ssize_t)sizeof(path)) {\n\t\t\terrno = ENAMETOOLONG;\n\t\t\twarn(\"%s\", target);\n\t\t\treturn (1);\n\t\t}\n\t\tsource = path;\n\t}\n\n\texists = !lstat(source, &sb);\n\t/*\n\t * If the file exists, then unlink it forcibly if -f was specified\n\t * and interactively if -i was specified.\n\t */\n\tif (fflag && exists) {\n\t\tif (Fflag && S_ISDIR(sb.st_mode)) {\n\t\t\tif (rmdir(source)) {\n\t\t\t\twarn(\"%s\", source);\n\t\t\t\treturn (1);\n\t\t\t}\n\t\t} else if (unlink(source)) {\n\t\t\twarn(\"%s\", source);\n\t\t\treturn (1);\n\t\t}\n\t} else if (iflag && exists) {\n\t\tfflush(stdout);\n\t\tfprintf(stderr, \"replace %s? \", source);\n\n\t\tfirst = ch = getchar();\n\t\twhile(ch != '\\n' && ch != EOF)\n\t\t\tch = getchar();\n\t\tif (first != 'y' && first != 'Y') {\n\t\t\tfprintf(stderr, \"not replaced\\n\");\n\t\t\treturn (1);\n\t\t}\n\n\t\tif (Fflag && S_ISDIR(sb.st_mode)) {\n\t\t\tif (rmdir(source)) {\n\t\t\t\twarn(\"%s\", source);\n\t\t\t\treturn (1);\n\t\t\t}\n\t\t} else if (unlink(source)) {\n\t\t\twarn(\"%s\", source);\n\t\t\treturn (1);\n\t\t}\n\t}\n\n\t/* Attempt the link. */\n\tif ((*linkf)(target, source)) {\n\t\twarn(\"%s\", source);\n\t\treturn (1);\n\t}\n\tif (vflag)\n\t\t(void)printf(\"%s %c> %s\\n\", source, linkch, target);\n\treturn (0);\n}\n\nvoid\nusage(void)\n{\n\t(void)fprintf(stderr, \"%s\\n%s\\n%s\\n\",\n\t    \"usage: ln [-Ffhinsv] source_file [target_file]\",\n\t    \"       ln [-Ffhinsv] source_file ... target_dir\",\n\t    \"       link source_file target_file\");\n\texit(1);\n}\n"
  },
  {
    "path": "src/buildtools/CMakeLists.txt",
    "content": "project(buildtools)\n\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/../external/cctools-port/cctools/include)\n\nadd_executable(getuuid getuuid.c)\nadd_executable(elfdep elfdep.c)\n\n#add_subdirectory(Rez)\n"
  },
  {
    "path": "src/buildtools/Rez/CMakeLists.txt",
    "content": "#   Copyright 2012 Wolfgang Thaller.\n#\n#   This file is part of Retro68.\n#\n#   Retro68 is free software: you can redistribute it and/or modify\n#   it under the terms of the GNU General Public License as published by\n#   the Free Software Foundation, either version 3 of the License, or\n#   (at your option) any later version.\n#\n#   Retro68 is distributed in the hope that it will be useful,\n#   but WITHOUT ANY WARRANTY; without even the implied warranty of\n#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n#   GNU General Public License for more details.\n#\n#   You should have received a copy of the GNU General Public License\n#   along with Retro68.  If not, see <http://www.gnu.org/licenses/>.\n\n# Look for bison.\nfind_package(BISON)\n\nfind_package(Boost REQUIRED COMPONENTS wave filesystem system thread regex program_options)\n\ninclude_directories(\n    ${CMAKE_CURRENT_SOURCE_DIR}\n    ${CMAKE_CURRENT_SOURCE_DIR}/ResourceFiles\n    ${CMAKE_CURRENT_BINARY_DIR}\n\t${Boost_INCLUDE_DIR}\n)\n\nadd_subdirectory(ResourceFiles)\n\nBISON_TARGET(RezParser RezParser.yy ${CMAKE_CURRENT_BINARY_DIR}/RezParser.generated.cc)\n\nadd_executable(Rez\n    ${CMAKE_CURRENT_BINARY_DIR}/RezParser.generated.cc\n\n    RezLexer.cc\n    RezLexerNextToken.cc\n\n    RezWorld.cc\n\n    ResourceDefinitions.cc\n\n    Expression.cc\n\n    ResourceCompiler.cc\n    Diagnostic.cc\n       Rez.cc\n)\n\ntarget_link_libraries(Rez $<TARGET_OBJECTS:ResourceFiles> ${Boost_LIBRARIES})\n\n"
  },
  {
    "path": "src/buildtools/Rez/COPYING",
    "content": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n                            Preamble\n\n  The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n  The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works.  By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users.  We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors.  You can apply it to\nyour programs, too.\n\n  When we speak of free software, we are referring to freedom, not\nprice.  Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n  To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights.  Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n  For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received.  You must make sure that they, too, receive\nor can get the source code.  And you must show them these terms so they\nknow their rights.\n\n  Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n  For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software.  For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n  Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so.  This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software.  The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable.  Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts.  If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n  Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary.  To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.\n\n                       TERMS AND CONDITIONS\n\n  0. Definitions.\n\n  \"This License\" refers to version 3 of the GNU General Public License.\n\n  \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n  \"The Program\" refers to any copyrightable work licensed under this\nLicense.  Each licensee is addressed as \"you\".  \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n  To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy.  The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n  A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n  To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy.  Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n  To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies.  Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n  An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License.  If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n  1. Source Code.\n\n  The \"source code\" for a work means the preferred form of the work\nfor making modifications to it.  \"Object code\" means any non-source\nform of a work.\n\n  A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n  The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form.  A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n  The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities.  However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work.  For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n  The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n  The Corresponding Source for a work in source code form is that\nsame work.\n\n  2. Basic Permissions.\n\n  All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met.  This License explicitly affirms your unlimited\npermission to run the unmodified Program.  The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work.  This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n  You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force.  You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright.  Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n  Conveying under any other circumstances is permitted solely under\nthe conditions stated below.  Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n  3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n  No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n  When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n  4. Conveying Verbatim Copies.\n\n  You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n  You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n  5. Conveying Modified Source Versions.\n\n  You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n    a) The work must carry prominent notices stating that you modified\n    it, and giving a relevant date.\n\n    b) The work must carry prominent notices stating that it is\n    released under this License and any conditions added under section\n    7.  This requirement modifies the requirement in section 4 to\n    \"keep intact all notices\".\n\n    c) You must license the entire work, as a whole, under this\n    License to anyone who comes into possession of a copy.  This\n    License will therefore apply, along with any applicable section 7\n    additional terms, to the whole of the work, and all its parts,\n    regardless of how they are packaged.  This License gives no\n    permission to license the work in any other way, but it does not\n    invalidate such permission if you have separately received it.\n\n    d) If the work has interactive user interfaces, each must display\n    Appropriate Legal Notices; however, if the Program has interactive\n    interfaces that do not display Appropriate Legal Notices, your\n    work need not make them do so.\n\n  A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit.  Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n  6. Conveying Non-Source Forms.\n\n  You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n    a) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by the\n    Corresponding Source fixed on a durable physical medium\n    customarily used for software interchange.\n\n    b) Convey the object code in, or embodied in, a physical product\n    (including a physical distribution medium), accompanied by a\n    written offer, valid for at least three years and valid for as\n    long as you offer spare parts or customer support for that product\n    model, to give anyone who possesses the object code either (1) a\n    copy of the Corresponding Source for all the software in the\n    product that is covered by this License, on a durable physical\n    medium customarily used for software interchange, for a price no\n    more than your reasonable cost of physically performing this\n    conveying of source, or (2) access to copy the\n    Corresponding Source from a network server at no charge.\n\n    c) Convey individual copies of the object code with a copy of the\n    written offer to provide the Corresponding Source.  This\n    alternative is allowed only occasionally and noncommercially, and\n    only if you received the object code with such an offer, in accord\n    with subsection 6b.\n\n    d) Convey the object code by offering access from a designated\n    place (gratis or for a charge), and offer equivalent access to the\n    Corresponding Source in the same way through the same place at no\n    further charge.  You need not require recipients to copy the\n    Corresponding Source along with the object code.  If the place to\n    copy the object code is a network server, the Corresponding Source\n    may be on a different server (operated by you or a third party)\n    that supports equivalent copying facilities, provided you maintain\n    clear directions next to the object code saying where to find the\n    Corresponding Source.  Regardless of what server hosts the\n    Corresponding Source, you remain obligated to ensure that it is\n    available for as long as needed to satisfy these requirements.\n\n    e) Convey the object code using peer-to-peer transmission, provided\n    you inform other peers where the object code and Corresponding\n    Source of the work are being offered to the general public at no\n    charge under subsection 6d.\n\n  A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n  A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling.  In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage.  For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product.  A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n  \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source.  The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n  If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information.  But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n  The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed.  Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n  Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n  7. Additional Terms.\n\n  \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law.  If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n  When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit.  (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.)  You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n  Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n    a) Disclaiming warranty or limiting liability differently from the\n    terms of sections 15 and 16 of this License; or\n\n    b) Requiring preservation of specified reasonable legal notices or\n    author attributions in that material or in the Appropriate Legal\n    Notices displayed by works containing it; or\n\n    c) Prohibiting misrepresentation of the origin of that material, or\n    requiring that modified versions of such material be marked in\n    reasonable ways as different from the original version; or\n\n    d) Limiting the use for publicity purposes of names of licensors or\n    authors of the material; or\n\n    e) Declining to grant rights under trademark law for use of some\n    trade names, trademarks, or service marks; or\n\n    f) Requiring indemnification of licensors and authors of that\n    material by anyone who conveys the material (or modified versions of\n    it) with contractual assumptions of liability to the recipient, for\n    any liability that these contractual assumptions directly impose on\n    those licensors and authors.\n\n  All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10.  If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term.  If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n  If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n  Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n  8. Termination.\n\n  You may not propagate or modify a covered work except as expressly\nprovided under this License.  Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n  However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n  Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n  Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License.  If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n  9. Acceptance Not Required for Having Copies.\n\n  You are not required to accept this License in order to receive or\nrun a copy of the Program.  Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance.  However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work.  These actions infringe copyright if you do\nnot accept this License.  Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n  10. Automatic Licensing of Downstream Recipients.\n\n  Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License.  You are not responsible\nfor enforcing compliance by third parties with this License.\n\n  An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations.  If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n  You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License.  For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n  11. Patents.\n\n  A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based.  The\nwork thus licensed is called the contributor's \"contributor version\".\n\n  A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version.  For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n  Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n  In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement).  To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n  If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients.  \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n  If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n  A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License.  You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n  Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n  12. No Surrender of Others' Freedom.\n\n  If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all.  For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n  13. Use with the GNU Affero General Public License.\n\n  Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work.  The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n  14. Revised Versions of this License.\n\n  The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time.  Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n  Each version is given a distinguishing version number.  If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation.  If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n  If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n  Later license versions may give you additional or different\npermissions.  However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n  15. Disclaimer of Warranty.\n\n  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. Limitation of Liability.\n\n  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n  17. Interpretation of Sections 15 and 16.\n\n  If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n                     END OF TERMS AND CONDITIONS\n\n            How to Apply These Terms to Your New Programs\n\n  If you develop a new program, and you want it to be of the greatest\npossible use to the public, the best way to achieve this is to make it\nfree software which everyone can redistribute and change under these terms.\n\n  To do so, attach the following notices to the program.  It is safest\nto attach them to the start of each source file to most effectively\nstate the exclusion of warranty; and each file should have at least\nthe \"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the program's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This program is free software: you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation, either version 3 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program.  If not, see <http://www.gnu.org/licenses/>.\n\nAlso add information on how to contact you by electronic and paper mail.\n\n  If the program does terminal interaction, make it output a short\nnotice like this when it starts in an interactive mode:\n\n    <program>  Copyright (C) <year>  <name of author>\n    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\n    This is free software, and you are welcome to redistribute it\n    under certain conditions; type `show c' for details.\n\nThe hypothetical commands `show w' and `show c' should show the appropriate\nparts of the General Public License.  Of course, your program's commands\nmight be different; for a GUI interface, you would use an \"about box\".\n\n  You should also get your employer (if you work as a programmer) or school,\nif any, to sign a \"copyright disclaimer\" for the program, if necessary.\nFor more information on this, and how to apply and follow the GNU GPL, see\n<http://www.gnu.org/licenses/>.\n\n  The GNU General Public License does not permit incorporating your program\ninto proprietary programs.  If your program is a subroutine library, you\nmay consider it more useful to permit linking proprietary applications with\nthe library.  If this is what you want to do, use the GNU Lesser General\nPublic License instead of this License.  But first, please read\n<http://www.gnu.org/philosophy/why-not-lgpl.html>.\n"
  },
  {
    "path": "src/buildtools/Rez/Diagnostic.cc",
    "content": "#include \"Diagnostic.h\"\n\nDiagnostic::Diagnostic()\n{\n}\n\nDiagnostic::Diagnostic(Severity sev, std::string msg, yy::location loc)\n    : severity(sev), message(msg), location(loc)\n{\n\n}\n\n\nstd::ostream &operator<<(std::ostream &out, const Diagnostic &d)\n{\n    //return out << d.location << \": \" << d.message;\n    const yy::location& loc = d.location;\n    if (loc.begin.filename)\n      out << *loc.begin.filename << ':';\n    out << loc.begin.line << ':' << loc.begin.column;\n    out << \": \";\n    if(d.severity >= Diagnostic::error)\n        out << \"error\";\n    else\n        out << \"warning\";\n    out << \": \" << d.message;\n    return out;\n}\n"
  },
  {
    "path": "src/buildtools/Rez/Diagnostic.h",
    "content": "#ifndef DIAGNOSTIC_H\n#define DIAGNOSTIC_H\n\n#include <string>\n#include <iosfwd>\n#include \"location.hh\"\n\nclass Diagnostic\n{\npublic:\n    enum Severity\n    {\n        warning,\n        error,\n        fatalError\n    };\n\n    Diagnostic();\n    Diagnostic(Severity sev, std::string msg, yy::location loc);\n\nprivate:\n    Severity severity;\n    std::string message;\n    yy::location location;\n\n    friend std::ostream& operator<<(std::ostream&, const Diagnostic&);\n};\n\nstd::ostream& operator<<(std::ostream&, const Diagnostic&);\n\n#endif // DIAGNOSTIC_H\n"
  },
  {
    "path": "src/buildtools/Rez/Expression.cc",
    "content": "#include \"Expression.h\"\n#include \"ResourceCompiler.h\"\n#include <cassert>\n#include <iostream>\n#include <fstream>\n#include \"Diagnostic.h\"\n\nint Expression::evaluateInt(ResourceCompiler *ctx)\n{\n    error(ctx, \"Expected an integer or integer expression here.\");\n    return 0;\n}\n\nstd::string Expression::evaluateString(ResourceCompiler *ctx)\n{\n    error(ctx, \"Expected a string or string expression here.\");\n    return \"\";\n}\n\nExpression::~Expression()\n{\n}\n\nvoid Expression::error(ResourceCompiler *ctx, std::string err)\n{\n    ctx->problem(Diagnostic(Diagnostic::Severity::error, err, location));\n}\n\n\nStringExpr::~StringExpr()\n{\n}\n\nstd::string StringExpr::evaluateString(ResourceCompiler *ctx)\n{\n    return str;\n}\n\n\nIntExpr::~IntExpr()\n{\n}\n\nint IntExpr::evaluateInt(ResourceCompiler *ctx)\n{\n    return val;\n}\n\n\nvoid CompoundExpr::addItem(ExprPtr item)\n{\n    items.push_back(item);\n}\n\nCompoundExpr::~CompoundExpr()\n{\n}\n\n\nBinaryExpr::~BinaryExpr()\n{\n}\n\nint BinaryExpr::evaluateInt(ResourceCompiler *ctx)\n{\n    switch(op)\n    {\n        case BinaryOp::XOR:\n            return a->evaluateInt(ctx) ^ b->evaluateInt(ctx);\n        case BinaryOp::OR:\n            return a->evaluateInt(ctx) | b->evaluateInt(ctx);\n        case BinaryOp::AND:\n            return a->evaluateInt(ctx) & b->evaluateInt(ctx);\n        case BinaryOp::SHIFTLEFT:\n            return a->evaluateInt(ctx) << b->evaluateInt(ctx);\n        case BinaryOp::SHIFTRIGHT:\n            return a->evaluateInt(ctx) >> b->evaluateInt(ctx);\n        case BinaryOp::EQUAL:\n            return a->evaluateInt(ctx) == b->evaluateInt(ctx);\n        case BinaryOp::NOTEQUAL:\n            return a->evaluateInt(ctx) != b->evaluateInt(ctx);\n        case BinaryOp::PLUS:\n            return a->evaluateInt(ctx) + b->evaluateInt(ctx);\n        case BinaryOp::MINUS:\n            return a->evaluateInt(ctx) - b->evaluateInt(ctx);\n        case BinaryOp::MULTIPLY:\n            return a->evaluateInt(ctx) * b->evaluateInt(ctx);\n        case BinaryOp::DIVIDE:\n            return a->evaluateInt(ctx) / b->evaluateInt(ctx);\n        default:\n            error(ctx, \"Expected an integer or integer expression here.\");\n            return 0;\n    }\n}\n\nstd::string BinaryExpr::evaluateString(ResourceCompiler *ctx)\n{\n    switch(op)\n    {\n        case BinaryOp::CONCAT:\n            return a->evaluateString(ctx) + b->evaluateString(ctx);\n        default:\n            error(ctx, \"Expected a string or string expression here.\");\n            return \"\";\n    }\n}\n\n\nUnaryExpr::~UnaryExpr()\n{\n}\n\nint UnaryExpr::evaluateInt(ResourceCompiler *ctx)\n{\n    switch(op)\n    {\n        case UnaryOp::MINUS:\n            return -a->evaluateInt(ctx);\n        case UnaryOp::COMPLEMENT:\n            return ~a->evaluateInt(ctx);\n        default:\n            error(ctx, \"Expected an integer or integer expression here.\");\n            return 0;\n    }\n}\n\n\nIdentifierExpr::IdentifierExpr(std::string id, yy::location loc)\n    : Expression(loc), id(id)\n{\n}\n\nvoid IdentifierExpr::addArgument(ExprPtr e)\n{\n    arguments.push_back(e);\n}\n\nExprPtr IdentifierExpr::lookup(ResourceCompiler *ctx)\n{\n    Subscripts sub;\n    for(auto arg : arguments)\n        sub.addSubscript(arg->evaluateInt(ctx));\n    ExprPtr val = ctx->lookupIdentifier(id, sub);\n    if(!val)\n        error(ctx, \"Identifier \\\"\" + id + \"\\\" is not defined.\");\n    return val;\n}\n\nint IdentifierExpr::evaluateInt(ResourceCompiler *ctx)\n{\n    if(ctx->isPrePass())\n        return 0;\n    if(ExprPtr e = lookup(ctx))\n        return e->evaluateInt(ctx);\n    else\n        return 0;\n}\n\nstd::string IdentifierExpr::evaluateString(ResourceCompiler *ctx)\n{\n    if(ExprPtr e = lookup(ctx))\n        return e->evaluateString(ctx);\n    else\n        return \"\";\n}\n\n\nCaseExpr::CaseExpr(const std::string &tag, CompoundExprPtr expr, yy::location loc)\n    : Expression(loc), tag(tag), expr(expr)\n{\n}\n\n\nint CountOfExpr::evaluateInt(ResourceCompiler *ctx)\n{\n    assert(arg->arguments.size() == 0);\n    return ctx->getArrayCount(arg->id);\n}\n\n\nint ArrayIndexExpr::evaluateInt(ResourceCompiler *ctx)\n{\n    assert(arg->arguments.size() == 0);\n    return ctx->getArrayIndex(arg->id);\n}\n\n\nstd::string ReadExpr::evaluateString(ResourceCompiler *ctx)\n{\n    std::string filename = arg->evaluateString(ctx);\n    std::ifstream instream(filename);\n    if(!instream)\n    {\n        ctx->problem(Diagnostic(Diagnostic::Severity::error, \"could not $$read file \" + filename, location));\n    }\n    return std::string(std::istreambuf_iterator<char>(instream.rdbuf()),\n                       std::istreambuf_iterator<char>());\n}\n\n\nint UnimplementedExpr::evaluateInt(ResourceCompiler *ctx)\n{\n    std::cerr << msg << std::endl;\n    return 0;\n}\n\nstd::string UnimplementedExpr::evaluateString(ResourceCompiler *ctx)\n{\n    std::cerr << msg << std::endl;\n    return \"\";\n}\n\n\nPeekExpr::PeekExpr(ExprPtr addr, ExprPtr offset, ExprPtr size, yy::location loc)\n    : Expression(loc), addr(addr), offset(offset), size(size)\n{\n}\n\nPeekExpr::PeekExpr(ExprPtr addr, int size, yy::location loc)\n    : Expression(loc),\n      addr(addr),\n      offset(std::make_shared<IntExpr>(0,loc)),\n      size(std::make_shared<IntExpr>(size,loc))\n{\n}\n\nint PeekExpr::evaluateInt(ResourceCompiler *ctx)\n{\n    int p = addr->evaluateInt(ctx) + offset->evaluateInt(ctx);\n    int s = size->evaluateInt(ctx);\n\n    return ctx->peek(p, s);\n}\n"
  },
  {
    "path": "src/buildtools/Rez/Expression.h",
    "content": "#ifndef EXPRESSION_H\n#define EXPRESSION_H\n\n#include <memory>\n#include <vector>\n\n#include \"location.hh\"\n\nclass ResourceCompiler;\n\nclass Expression;\nclass CompoundExpr;\nclass IdentifierExpr;\nclass CaseExpr;\ntypedef std::shared_ptr<Expression> ExprPtr;\ntypedef std::shared_ptr<CompoundExpr> CompoundExprPtr;\ntypedef std::shared_ptr<IdentifierExpr> IdentifierExprPtr;\ntypedef std::shared_ptr<CaseExpr> CaseExprPtr;\n\n\nenum class BinaryOp\n{\n    XOR, OR, AND, SHIFTLEFT, SHIFTRIGHT, EQUAL, NOTEQUAL, PLUS, MINUS, MULTIPLY, DIVIDE, CONCAT\n};\n\nenum class UnaryOp\n{\n    MINUS, COMPLEMENT\n};\n\nclass TypeError\n{\n};\n\nclass Expression\n{\npublic:\n    yy::location location;\n\n    Expression(yy::location loc) : location(loc) {}\n\n    virtual int evaluateInt(ResourceCompiler *ctx);\n    virtual std::string evaluateString(ResourceCompiler *ctx);\n    virtual ~Expression();\n\n    void error(ResourceCompiler *ctx, std::string err);\n};\n\nclass StringExpr : public Expression\n{\n    std::string str;\npublic:\n    StringExpr(const std::string& str, yy::location loc) : Expression(loc), str(str) {}\n    ~StringExpr();\n    virtual std::string evaluateString(ResourceCompiler *ctx);\n};\n\nclass IntExpr : public Expression\n{\n    int val;\npublic:\n    IntExpr(int val, yy::location loc) : Expression(loc), val(val) {}\n    ~IntExpr();\n\n    virtual int evaluateInt(ResourceCompiler *ctx);\n};\n\nclass CompoundExpr : public Expression\n{\n    std::vector<ExprPtr> items;\npublic:\n    CompoundExpr(yy::location loc) : Expression(loc) {}\n\n    void addItem(ExprPtr item);\n    ExprPtr getItem(int i) const { return items[i]; }\n    int size() const { return items.size(); }\n\n    ~CompoundExpr();\n};\n\nclass CaseExpr : public Expression\n{\n    std::string tag;\n    CompoundExprPtr expr;\n    friend class SwitchField;\npublic:\n    CaseExpr(const std::string& tag, CompoundExprPtr expr, yy::location loc);\n};\n\nclass BinaryExpr : public Expression\n{\n    BinaryOp op;\n    ExprPtr a, b;\npublic:\n    BinaryExpr(BinaryOp op, ExprPtr a, ExprPtr b, yy::location loc)\n        : Expression(loc), op(op), a(a), b(b) {}\n    ~BinaryExpr();\n\n    virtual int evaluateInt(ResourceCompiler *ctx);\n    virtual std::string evaluateString(ResourceCompiler *ctx);\n};\n\nclass UnaryExpr : public Expression\n{\n    UnaryOp op;\n    ExprPtr a;\npublic:\n    UnaryExpr(UnaryOp op, ExprPtr a, yy::location loc)\n        : Expression(loc), op(op), a(a) {}\n    ~UnaryExpr();\n\n    virtual int evaluateInt(ResourceCompiler *ctx);\n};\n\nclass IdentifierExpr : public Expression\n{\npublic:\n    std::string id;\n    std::vector<ExprPtr> arguments;\n    IdentifierExpr(std::string id, yy::location loc);\n\n    void addArgument(ExprPtr e);\n    ExprPtr lookup(ResourceCompiler *ctx);\n    virtual int evaluateInt(ResourceCompiler *ctx);\n    virtual std::string evaluateString(ResourceCompiler *ctx);\n};\n\nclass CountOfExpr : public Expression\n{\n    IdentifierExprPtr arg;\npublic:\n    CountOfExpr(IdentifierExprPtr arg, yy::location loc) : Expression(loc), arg(arg) {}\n    virtual int evaluateInt(ResourceCompiler *ctx);\n};\n\nclass ArrayIndexExpr : public Expression\n{\n    IdentifierExprPtr arg;\npublic:\n    ArrayIndexExpr(IdentifierExprPtr arg, yy::location loc) : Expression(loc), arg(arg) {}\n    virtual int evaluateInt(ResourceCompiler *ctx);\n};\n\nclass ReadExpr : public Expression\n{\n    ExprPtr arg;\npublic:\n    ReadExpr(ExprPtr arg, yy::location loc) : Expression(loc), arg(arg) {}\n    virtual std::string evaluateString(ResourceCompiler *ctx);\n};\n\nclass UnimplementedExpr : public Expression\n{\n    std::string msg;\npublic:\n    UnimplementedExpr(std::string msg, yy::location loc) : Expression(loc), msg(msg) {}\n    virtual int evaluateInt(ResourceCompiler *ctx);\n    virtual std::string evaluateString(ResourceCompiler *ctx);\n};\n\nclass PeekExpr : public Expression\n{\n    ExprPtr addr;\n    ExprPtr offset;\n    ExprPtr size;\npublic:\n    PeekExpr(ExprPtr addr, ExprPtr offset, ExprPtr size, yy::location loc);\n    PeekExpr(ExprPtr addr, int size, yy::location loc);\n    virtual int evaluateInt(ResourceCompiler *ctx);\n};\n\n#endif // EXPRESSION_H\n"
  },
  {
    "path": "src/buildtools/Rez/README.md",
    "content": "Rez Resource Compiler\n=====================\n\nA reimplementation of the classic Rez resource compiler.\n\n\nKnown Bugs & Limitations\n-----------------\n\n* `$ABCD` alternate syntax for hex numbers is not supported\n* hex strings not supported\n* Other than in Apple Rez, the preprocessor is case sensitive.\n"
  },
  {
    "path": "src/buildtools/Rez/ResSpec.h",
    "content": "#ifndef REZSPEC_H\n#define REZSPEC_H\n\n#include \"ResType.h\"\n#include <string>\n\nclass ResSpec : public ResRef\n{\n    int attr_;\n    std::string name_;\n\npublic:\n    ResSpec() : attr_(0) {}\n    ResSpec(ResType type, int id, int attr = 0, std::string name = \"\")\n        : ResRef(type, id), attr_(attr), name_(name)\n    {}\n\n    int& attr() { return attr_; }\n    int attr() const { return attr_; }\n    std::string& name() { return name_; }\n    const std::string& name() const { return name_; }\n};\n\n#endif // REZSPEC_H\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceCompiler.cc",
    "content": "#include \"ResourceCompiler.h\"\n#include <iostream>\n#include \"ResourceDefinitions.h\"\n#include \"RezWorld.h\"\n#include \"Diagnostic.h\"\n\nResourceCompiler::ResourceCompiler(\n        RezWorld& world, TypeDefinitionPtr type, CompoundExprPtr body, bool verboseFlag)\n    : world(world),\n      typeDefinition(type),\n      body(body),\n      currentField(nullptr)\n{\n    this->verboseFlag = verboseFlag;\n}\n\nBinaryOutput::BinaryOutput()\n    : verboseFlag(false)\n{\n    reset(true);\n}\n\nvoid BinaryOutput::reset(bool prePass)\n{\n    currentOffset = 0;\n    if(!prePass)\n        prePassData = std::move(data);\n    data.clear();\n    this->prePass = prePass;\n}\n\nstd::string BinaryOutput::resourceData()\n{\n    return std::string(data.begin(), data.end());\n}\n\nvoid BinaryOutput::write(int nBits, int value)\n{\n    if(verboseFlag)\n        std::cout << \"[\" << nBits << \" bits] = \" << std::hex << value << std::dec << std::endl;\n\n    unsigned mask = 1 << (nBits-1);\n\n    for(int i = 0; i < nBits; i++)\n    {\n        bool bit = (value & mask) != 0;\n\n        if(currentOffset % 8 == 0)\n            data.push_back(bit ? 0x80 : 0);\n        else if(bit)\n            data.back() |= (0x80 >> (currentOffset % 8));\n        ++currentOffset;\n\n        mask >>= 1;\n    }\n\n    //currentOffset += nBits;\n}\n\nint BinaryOutput::peek(int bitPos, int size)\n{\n    unsigned bytePos = bitPos / 8;\n    unsigned endBytePos = (bitPos + size - 1) / 8 + 1;\n\n    unsigned bitPosInByte = bitPos % 8;\n    unsigned outPos = 32 - size;\n\n    unsigned val = 0;\n\n    for(unsigned i = bytePos; i != endBytePos; ++i)\n    {\n        unsigned byte;\n        if(i < data.size())\n            byte = data[i];\n        else if(i < prePassData.size())\n            byte = prePassData[i];\n        else\n            byte = 0;\n\n        unsigned read = byte << (bitPosInByte + 24);\n        val |= (read >> outPos);\n\n        outPos += 8 - bitPosInByte;\n\n        bitPosInByte = 0;\n    }\n\n    return val;\n}\n\nExprPtr ResourceCompiler::lookupIdentifier(std::string name, const Subscripts &sub)\n{\n    if(currentField)\n    {\n        if(ExprPtr val = currentField->lookupNamedValue(name))\n        {\n            return val;\n        }\n    }\n\n    auto p = labelValues.find(std::make_pair(name, sub));\n    if(p != labelValues.end())\n        return p->second;\n\n    //std::cerr << \"ID lookup failed: \" << name << std::endl;\n\n    return nullptr;\n}\n\nvoid ResourceCompiler::defineLabel(const std::string &name)\n{\n    labelValues[std::make_pair(name,currentSubscripts)] = std::make_shared<IntExpr>(currentOffset, yy::location());\n}\n\nvoid ResourceCompiler::compile()\n{\n    if(verboseFlag) std::cout << \"(first pass)\\n\";\n    reset(true);\n    typeDefinition->compile(body, this, true);\n    if(verboseFlag) std::cout << \"(second pass)\\n\";\n\n    reset(false);\n    typeDefinition->compile(body, this, false);\n    if(verboseFlag) std::cout << \"(done)\\n\";\n}\n\nint ResourceCompiler::getArrayCount(const std::string &name)\n{\n    Subscripts sub = currentSubscripts;\n    for(;;)\n    {\n        auto p = arrayCounts.find(std::make_pair(name, sub));\n        if(p != arrayCounts.end())\n            return p->second;\n\n\n        if(sub.empty())\n            return 0; /* ### */\n        sub.popSubscript();\n    }\n}\n\nint ResourceCompiler::getArrayIndex(const std::string &arrayName)\n{\n    return curArrayIndices[arrayName];\n}\n\nvoid ResourceCompiler::problem(Diagnostic d)\n{\n    if(!prePass)\n        world.problem(d);\n}\n\nvoid ResourceCompiler::beginArrayScope(std::string &arrayName, int index)\n{\n    if(arrayName != \"\")\n    {\n        curArrayIndices[arrayName] = index;\n        int& count = arrayCounts[std::make_pair(arrayName, currentSubscripts)];\n        if(count < index)\n            count = index;\n        arrayCounts[std::make_pair(arrayName, Subscripts())] = count;\n        //std::cout << \"count for \" << arrayName << \" is \" << count << std::endl;\n    }\n    currentSubscripts.addSubscript(index);\n}\n\nSubscripts::Subscripts()\n{\n}\n\nSubscripts::~Subscripts()\n{\n}\n\nvoid Subscripts::addSubscript(int x)\n{\n    subscripts.push_back(x);\n}\n\nvoid Subscripts::popSubscript()\n{\n    subscripts.pop_back();\n}\n\nbool Subscripts::operator<(const Subscripts &other) const\n{\n    if(subscripts.size() < other.subscripts.size())\n        return true;\n    if(other.subscripts.size() < subscripts.size())\n        return false;\n    for(int i = 0, n = subscripts.size(); i < n; i++)\n    {\n        if(subscripts[i] < other.subscripts[i])\n            return true;\n        else if(subscripts[i] > other.subscripts[i])\n            return false;\n    }\n    return false;\n}\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceCompiler.h",
    "content": "#ifndef RESOURCECOMPILER_H\n#define RESOURCECOMPILER_H\n\n#include \"Expression.h\"\n#include \"ResourceDefinitions.h\"\n\nclass Field;\nclass RezWorld;\nclass Diagnostic;\n\nclass Subscripts\n{\n    std::vector<int> subscripts;\npublic:\n    Subscripts();\n    ~Subscripts();\n\n    void addSubscript(int x);\n    void popSubscript();\n    bool operator<(const Subscripts& other) const;\n    bool empty() const { return subscripts.empty(); }\n};\n\nclass BinaryOutput\n{\nprotected:\n    int currentOffset;\n    std::vector<unsigned char> data;\n    std::vector<unsigned char> prePassData;\n    bool verboseFlag;\n    bool prePass;\npublic:\n    BinaryOutput();\n    void reset(bool prePass);\n\n    std::string resourceData();\n\n    void reserve(int nBits) { write(nBits, 0); }\n    void write(int nBits, int value);\n    int tell() { return currentOffset; }\n\n    int peek(int bitPos, int size);\n\n    bool isPrePass() { return prePass; }\n};\n\nclass ResourceCompiler : public BinaryOutput\n{\n    RezWorld& world;\n    TypeDefinitionPtr typeDefinition;\n    CompoundExprPtr body;\n    std::map<std::pair<std::string, Subscripts>, ExprPtr> labelValues;\n    std::map<std::pair<std::string, Subscripts>, int> arrayCounts;\n    std::map<std::string, int> curArrayIndices;\n    Field* currentField;\n    Subscripts currentSubscripts;\n\n    void beginArrayScope(std::string& arrayName, int index);\npublic:\n    ResourceCompiler(RezWorld& world, TypeDefinitionPtr type, CompoundExprPtr body, bool verboseFlag);\n\n    ExprPtr lookupIdentifier(std::string name, const Subscripts& sub = Subscripts());\n\n    void defineLabel(const std::string& name);\n    void compile();\n\n    int getArrayCount(const std::string& arrayName);\n    int getArrayIndex(const std::string& arrayName);\n\n\n    class FieldScope\n    {\n        ResourceCompiler *compiler;\n    public:\n        FieldScope(ResourceCompiler* compiler, Field *field)\n            : compiler(compiler) { compiler->currentField = field; }\n        ~FieldScope() { compiler->currentField = nullptr; }\n    };\n\n    class ArrayScope\n    {\n        ResourceCompiler *compiler;\n    public:\n        ArrayScope(ResourceCompiler* compiler, std::string& arrayName, int index)\n            : compiler(compiler) { compiler->beginArrayScope(arrayName, index); }\n        ~ArrayScope() { compiler->currentSubscripts.popSubscript(); }\n    };\n\n    void problem(Diagnostic d);\n};\n\n\n\n#endif // RESOURCECOMPILER_H\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceDefinitions.cc",
    "content": "#include \"ResourceDefinitions.h\"\n#include <ostream>\n#include <cassert>\n\n#include \"ResourceCompiler.h\"\n#include \"Diagnostic.h\"\n\n\nstd::ostream &operator<<(std::ostream &out, TypeSpec ts)\n{\n    out << ts.getType();\n    if(ts.hasID())\n        out << \" (\" << ts.getID() << \")\";\n    return out;\n}\n\n\nFieldList::~FieldList()\n{\n\n}\n\nvoid FieldList::addField(FieldPtr field, yy::location loc)\n{\n    field->location = loc;\n    fields.push_back(field);\n}\n\nvoid FieldList::addLabel(std::string name, yy::location loc)\n{\n    addField(std::make_shared<LabelField>(name), loc);\n}\n\nvoid FieldList::compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    CompoundExprPtr compound = std::dynamic_pointer_cast<CompoundExpr>(expr);\n    assert(compound);\n\n    int i = 0;\n    for(FieldPtr f : fields)\n    {\n        if(f->needsValue())\n        {\n            if(i >= compound->size())\n                compiler->problem(Diagnostic(Diagnostic::error,\"not enough values specified\", compound->location));\n            else\n                f->compile(compound->getItem(i++), compiler, prePass);\n        }\n        else\n            f->compile(nullptr, compiler, prePass);\n    }\n    if(i < compound->size())\n    {\n        compiler->problem(Diagnostic(Diagnostic::error,\"extra value specified\",\n                                     compound->getItem(i)->location));\n    }\n}\n\n\n\n\nvoid SimpleField::addNamedValue(std::string n)\n{\n    if(lastNamedValue)\n        addNamedValue(n, std::make_shared<BinaryExpr>(\n            BinaryOp::PLUS, lastNamedValue, std::make_shared<IntExpr>(1, yy::location()), yy::location()));\n    else\n        addNamedValue(n, std::make_shared<IntExpr>(0, yy::location()));\n}\n\nvoid SimpleField::addNamedValue(std::string n, ExprPtr val)\n{\n    namedValues[n] = val;\n    lastNamedValue = val;\n}\n\nExprPtr SimpleField::lookupNamedValue(std::string n)\n{\n    auto p = namedValues.find(n);\n    if(p != namedValues.end())\n        return p->second;\n    else\n        return nullptr;\n}\n\nbool SimpleField::needsValue()\n{\n    return !value;\n}\n\nvoid SimpleField::compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    switch(type)\n    {\n        case Type::bitstring:\n        case Type::boolean:\n        case Type::byte:\n        case Type::integer:\n        case Type::longint:\n            compileInt(expr, compiler, prePass);\n            break;\n        case Type::string:\n        case Type::wstring:\n        case Type::pstring:\n        case Type::char_:\n            compileString(expr, compiler, prePass);\n            break;\n\n        case Type::rect:\n        case Type::point:\n            compileCompound(expr, compiler, prePass);\n            break;\n\n    }\n}\n\nvoid SimpleField::compileString(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    std::string str;\n    {\n        ResourceCompiler::FieldScope scope(compiler, this);\n        str = (value ? value : expr)->evaluateString(compiler);\n    }\n\n    if(arrayCount || type == Type::char_)\n    {\n        unsigned requestedSize = type == Type::char_ ? 1 : arrayCount->evaluateInt(compiler);\n        if(requestedSize < str.size())\n            str.erase(str.begin() + requestedSize, str.end());\n        else if(requestedSize > str.size())\n            str.insert(str.end(),requestedSize - str.size(), '\\0');\n    }\n\n    int count = str.size();\n\n    if(type == Type::pstring)\n    {\n        if(count > 255)\n        {\n            str.erase(str.begin() + 255, str.end());\n            count = 255;\n        }\n        compiler->write(8, count);\n    }\n    else if(type == Type::wstring)\n    {\n        if(count > 65535)\n        {\n            str.erase(str.begin() + 65535, str.end());\n            count = 65535;\n        }\n        compiler->write(16, count);\n    }\n\n    for(char c : str)\n        compiler->write(8, c);\n}\n\nvoid SimpleField::compileInt(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    int bitSize = 0;\n\n    switch(type)\n    {\n        case Type::bitstring:\n            bitSize = arrayCount->evaluateInt(compiler);\n            break;\n        case Type::boolean:\n            bitSize = 1;\n            break;\n        case Type::byte:\n            bitSize = 8;\n            break;\n        case Type::integer:\n            bitSize = 16;\n            break;\n        case Type::longint:\n            bitSize = 32;\n            break;\n        default:\n            assert(false);\n    }\n\n    int actualValue = 0;\n    ResourceCompiler::FieldScope scope(compiler, this);\n    actualValue = (value ? value : expr)->evaluateInt(compiler);\n\n    compiler->write(bitSize, actualValue);\n}\n\nvoid SimpleField::compileCompound(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    ExprPtr val = value ? value : expr;\n    if(IdentifierExprPtr id = std::dynamic_pointer_cast<IdentifierExpr>(val))\n    {\n        ResourceCompiler::FieldScope scope(compiler, this);\n        val = id->lookup(compiler);\n    }\n\n    int count = 0;\n    switch(type)\n    {\n        case Type::rect:\n            count = 4;\n            break;\n        case Type::point:\n            count = 2;\n            break;\n        default:\n            assert(false);\n    }\n\n    CompoundExprPtr compound = std::dynamic_pointer_cast<CompoundExpr>(val);\n    if(!compound || compound->size() != count)\n    {\n        expr->error(compiler, std::string(\"expected \") + (type == Type::rect ? \"rect {t,l,b,r}.\" : \"point {v,h}.\"));\n        return;\n    }\n    assert(compound);\n    assert(compound->size() == count);\n\n    for(int i = 0; i < count; i++)\n    {\n        int x = compound->getItem(i)->evaluateInt(compiler);\n        compiler->write(16, x);\n    }\n}\n\n\nArrayField::ArrayField(std::string name, ExprPtr count)\n    : name(name), arrayCount(count)\n{\n}\n\nvoid ArrayField::compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    CompoundExprPtr compound = std::dynamic_pointer_cast<CompoundExpr>(expr);\n    assert(compound);\n\n\n    int i = 0;\n    int n = compound->size();\n\n    int iterations = 0;\n    while(i < n)\n    {\n        ++iterations;\n        ResourceCompiler::ArrayScope scope(compiler, name, iterations);\n        for(FieldPtr f : fields)\n        {\n            if(f->needsValue())\n            {\n                assert(i < n);\n                f->compile(compound->getItem(i++), compiler, prePass);\n            }\n            else\n                f->compile(nullptr, compiler, prePass);\n        }\n    }\n\n    if(!prePass && arrayCount)\n    {\n        int expected = arrayCount->evaluateInt(compiler);\n        assert(expected == iterations);\n    }\n}\n\n\nLabelField::LabelField(std::string name)\n    : name(name)\n{\n}\n\nbool LabelField::needsValue()\n{\n    return false;\n}\n\nvoid LabelField::compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    compiler->defineLabel(name);\n}\n\n\nvoid SwitchField::addCase(const std::string name, FieldListPtr alternative)\n{\n    cases[name] = alternative;\n}\n\nvoid SwitchField::compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    CaseExprPtr caseExpr = std::dynamic_pointer_cast<CaseExpr>(expr);\n    assert(caseExpr);\n\n    FieldListPtr caseDefinition = cases[caseExpr->tag];\n    assert(caseDefinition);\n\n    caseDefinition->compile(caseExpr->expr, compiler, prePass);\n}\n\n\nFillAlignField::FillAlignField(FillAlignField::Type type, bool isAlign, ExprPtr count)\n    : type(type), count(count), isAlign(isAlign)\n{\n\n}\n\nbool FillAlignField::needsValue()\n{\n    return false;\n}\n\nvoid FillAlignField::compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass)\n{\n    int bitSize;\n    switch(type)\n    {\n        case Type::bit:        bitSize = 1; break;\n        case Type::nibble:    bitSize = 4; break;\n        case Type::byte:    bitSize = 8; break;\n        case Type::word:    bitSize = 16; break;\n        case Type::long_:    bitSize = 32; break;\n    }\n\n    int actualCount = 1;\n    if(count)\n        actualCount = count->evaluateInt(compiler);\n\n    for(int i = 0; i < actualCount; i++)\n    {\n        int n;\n        if(isAlign)\n        {\n            int mask = bitSize - 1;\n            int pos = compiler->tell();\n            n = ((pos + mask) & ~mask) - pos;\n        }\n        else\n            n = bitSize;\n        compiler->write(n, 0);\n    }\n}\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceDefinitions.h",
    "content": "#ifndef RESOURCEDEFINITIONS_H\n#define RESOURCEDEFINITIONS_H\n\n#include <iosfwd>\n#include <memory>\n#include <map>\n\n#include \"Expression.h\"\n#include \"ResType.h\"\n\n#include \"location.hh\"\n\nclass TypeSpec\n{\n    ResType type;\n    int id;\npublic:\n    static const int noID = 65536;\n\n    TypeSpec() : id(noID) {}\n    TypeSpec(ResType type) : type(type), id(noID) {}\n    TypeSpec(ResType type, int id) : type(type), id(id) {}\n\n    ResType getType() const { return type; }\n    int getID() const { return id; }\n\n    bool hasID() const { return id != noID; }\n\n    bool operator<(TypeSpec y) const\n    {\n        if(type < y.type)\n            return true;\n        else if(y.type < type)\n            return false;\n        else\n            return id < y.id;\n    }\n};\n\nstd::ostream& operator<<(std::ostream& out, TypeSpec ts);\n\n\nclass ResourceCompiler;\n\nclass Field\n{\npublic:\n    yy::location location;\n\n    virtual ~Field() = default;\n\n    virtual bool needsValue() { return true; }\n\n    virtual void compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass) = 0;\n\n    virtual ExprPtr lookupNamedValue(std::string) { return nullptr; }\n};\ntypedef std::shared_ptr<Field> FieldPtr;\n\nclass SimpleField : public Field\n{\npublic:\n    enum class Type\n    {\n        boolean, byte, integer, longint, rect, point, char_,\n        pstring, wstring, string, bitstring\n    };\n\n    enum class Attrs\n    {\n        none = 0, hex = 1, key = 2, unsigned_ = 4, literal = 8, binary = 16\n    };\n\n    Type type;\n    Attrs attrs = Attrs::none;\n    ExprPtr arrayCount;\n\n    ExprPtr    value;\n    std::map<std::string, ExprPtr> namedValues;\n    ExprPtr lastNamedValue;\n\n    void addNamedValue(std::string n);\n    void addNamedValue(std::string n, ExprPtr val);\n    ExprPtr lookupNamedValue(std::string);\n\n    virtual bool needsValue();\n    virtual void compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\n\nprivate:\n    void compileString(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\n    void compileInt(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\n    void compileCompound(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\n};\ntypedef std::shared_ptr<SimpleField> SimpleFieldPtr;\n\nclass FillAlignField : public Field\n{\npublic:\n    enum class Type\n    {\n        bit, nibble, byte, word, long_\n    };\n\n    FillAlignField(Type type, bool isAlign, ExprPtr count = ExprPtr());\n    virtual bool needsValue();\n    virtual void compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\nprivate:\n    Type type;\n    ExprPtr count;\n    bool isAlign;\n};\n\ninline SimpleField::Attrs operator|(SimpleField::Attrs a, SimpleField::Attrs b)\n{\n    return SimpleField::Attrs( int(a) | int(b) );\n}\n\n\nclass LabelField : public Field\n{\n    std::string name;\npublic:\n    LabelField(std::string name);\n\n    virtual bool needsValue();\n    virtual void compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\n};\ntypedef std::shared_ptr<LabelField> LabelFieldPtr;\n\n\nclass FieldList : public Field\n{\nprotected:\n    std::vector<FieldPtr> fields;\npublic:\n    virtual ~FieldList();\n    void addField(FieldPtr field, yy::location loc);\n    void addLabel(std::string name, yy::location loc);\n\n    virtual void compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\n};\ntypedef std::shared_ptr<FieldList> FieldListPtr;\n\n\nclass ArrayField : public FieldList\n{\n    std::string name;\n    ExprPtr arrayCount;\npublic:\n    ArrayField(std::string name /* or empty */, ExprPtr count /* may be null*/);\n\n    virtual void compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\n};\ntypedef std::shared_ptr<ArrayField> ArrayFieldPtr;\n\nclass SwitchField : public Field\n{\n    std::map<std::string, FieldListPtr> cases;\npublic:\n    void addCase(const std::string name, FieldListPtr alternative);\n\n    virtual void compile(ExprPtr expr, ResourceCompiler *compiler, bool prePass);\n};\ntypedef std::shared_ptr<SwitchField> SwitchFieldPtr;\n\nclass TypeDefinition : public FieldList\n{\n};\ntypedef std::shared_ptr<TypeDefinition> TypeDefinitionPtr;\n\n#endif // RESOURCEDEFINITIONS_H\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/BinaryIO.cc",
    "content": "#include \"BinaryIO.h\"\n#include <iostream>\n#include <cassert>\n\n#include \"ResType.h\"\n\nvoid byte(std::ostream& out, int byte)\n{\n    out.put((unsigned char)byte);\n}\nvoid word(std::ostream& out, int word)\n{\n    byte(out,(word >> 8) & 0xFF);\n    byte(out,word & 0xFF);\n}\nvoid ostype(std::ostream& out, ResType type)\n{\n    longword(out, type);\n}\nvoid longword(std::ostream& out, int longword)\n{\n    byte(out,(longword >> 24) & 0xFF);\n    byte(out,(longword >> 16) & 0xFF);\n    byte(out,(longword >> 8) & 0xFF);\n    byte(out,longword & 0xFF);\n}\n\nint byte(std::istream& in)\n{\n    return in.get() & 0xFF;\n}\nint word(std::istream& in)\n{\n    int a = byte(in);\n    int b = byte(in);\n    return (a << 8) | b;\n}\nResType ostype(std::istream& in)\n{\n    return longword(in);\n}\nint longword(std::istream& in)\n{\n    int a = byte(in);\n    int b = byte(in);\n    int c = byte(in);\n    int d = byte(in);\n    return (a << 24) | (b << 16) | (c << 8) | d;\n}\n\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/BinaryIO.h",
    "content": "#ifndef BINARYIO_H\n#define BINARYIO_H\n\n#include <iosfwd>\n#include <string>\n\nclass ResType;\n\nvoid byte(std::ostream& out, int byte);\nvoid word(std::ostream& out, int word);\nvoid ostype(std::ostream& out, ResType type);\nvoid longword(std::ostream& out, int longword);\n\nint byte(std::istream& in);\nint word(std::istream& in);\nResType ostype(std::istream& in);\nint longword(std::istream& in);\n\n#endif // BINARYIO_H\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/CMakeLists.txt",
    "content": "#   Copyright 2014 Wolfgang Thaller.\n#\n#   This file is part of Retro68.\n#\n#   Retro68 is free software: you can redistribute it and/or modify\n#   it under the terms of the GNU General Public License as published by\n#   the Free Software Foundation, either version 3 of the License, or\n#   (at your option) any later version.\n#\n#   Retro68 is distributed in the hope that it will be useful,\n#   but WITHOUT ANY WARRANTY; without even the implied warranty of\n#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n#   GNU General Public License for more details.\n#\n#   You should have received a copy of the GNU General Public License\n#   along with Retro68.  If not, see <http://www.gnu.org/licenses/>.\n\nadd_library(ResourceFiles OBJECT\n    ResourceFork.h ResourceFork.cc\n    BinaryIO.h BinaryIO.cc\n    ResType.h ResType.cc\n    ResourceFile.h ResourceFile.cc\n    )\n\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/ResInfo.cc",
    "content": "#include <iostream>\n#include <map>\n#include <string>\n#include \"ResourceFile.h\"\n#include \"boost/program_options.hpp\"\nnamespace po = boost::program_options;\nusing std::map;\nusing std::string;\n\nstatic po::options_description desc;\n\nmap<string,ResourceFile::Format> formats {\n#ifdef __APPLE__\n    {\"real\", ResourceFile::Format::real},\n#endif\n    {\"macbin\", ResourceFile::Format::macbin},\n    {\"basilisk\", ResourceFile::Format::basilisk},\n    {\"applesingle\", ResourceFile::Format::applesingle},\n    {\"underscore_appledouble\", ResourceFile::Format::underscore_appledouble}\n};\nmap<ResourceFile::Format,string> reverseFormats;\n\nstatic void usage()\n{\n    std::cerr << \"Usage: \" << \"ResInfo [options] input-file\\n\";\n    std::cerr << desc << std::endl;\n    std::cerr << \"Available Resource Fork formats are:\\n\";\n    for(auto p : formats)\n        std::cerr << \"    \" << p.first << std::endl;\n} \n\n\nint main(int argc, char *argv[])\n{\n    desc.add_options()\n        (\"help,h\", \"show this help message\")\n        (\"type,t\", \"print file type\")\n        (\"creator,c\", \"print creator code\")\n        (\"all,a\", \"print all info\")\n        (\"format,f\", \"print format\")\n        (\"count,n\", \"print number of resources\")\n        (\"size,s\", \"show data fork size\")\n        (\"filename,l\", \"echo input file name\")\n        (\"set-format,F\", po::value<string>(), \"resource fork format)\")\n    ;\n    po::options_description hidden, alldesc;\n    hidden.add_options()\n        (\"input\", po::value<std::vector<string>>(), \"input file\" )\n    ;\n    alldesc.add(desc).add(hidden);\n\n    po::variables_map options;\n    try\n    {\n        auto parsed = po::command_line_parser(argc, argv)\n                .options(alldesc)\n                .positional(po::positional_options_description().add(\"input\", -1))\n                .style(po::command_line_style::default_style)\n                .run();\n\n        po::store(parsed, options);\n    }\n    catch(po::error& e)\n    {\n        std::cerr << \"ERROR: \" << e.what() << std::endl << std::endl;\n        usage();\n        return 1;\n    }\n\n    po::notify(options);\n\n    if(options.count(\"help\") || !options.count(\"input\"))\n    {\n        usage();\n        return 0;\n    }\n    \n    for(auto p : formats)\n        reverseFormats[p.second] = p.first;\n\n    bool showFilename = options.count(\"filename\");\n    bool showType = options.count(\"type\") != 0;\n    bool showCreator = options.count(\"creator\") != 0;\n    bool showFormat = options.count(\"format\") != 0;\n    bool showCount = options.count(\"count\") != 0;\n    bool showSize = options.count(\"size\") != 0;\n\n    ResourceFile::Format format = ResourceFile::Format::autodetect;\n    \n    if(options.count(\"all\"))\n        showType = showCreator = showFormat = showCount = showSize = true;\n    \n    if(options.count(\"set-format\"))\n    {\n        string s = options[\"set-format\"].as<string>();\n        if(formats.find(s) != formats.end())\n            format = formats[s];\n        else\n        {\n            std::cerr << \"Unknown format \" << s << std::endl << std::endl;\n            usage();\n            exit(1);\n        }\n    }\n    \n    if(options.count(\"input\"))\n        for(std::string fn : options[\"input\"].as<std::vector<std::string>>())\n        {\n            ResourceFile rsrcFile;\n            \n            if(!rsrcFile.read(fn, format))\n            {\n                std::cerr << \"Can't read file.\\n\";\n                return 1;\n            }\n            \n            std::ostringstream out;\n            if(showType)\n                out << \" \" << rsrcFile.type;\n            if(showCreator)\n                out << \" \" << rsrcFile.creator;\n            if(showFormat)\n                out << \" \" << reverseFormats[rsrcFile.getFormat()];\n            if(showCount)\n                out << \" \" << rsrcFile.resources.resources.size();\n            if(showSize)\n                out << \" \" << rsrcFile.data.size();\n\n            string str = out.str();\n            if(str.size())\n            {\n                if(showFilename)\n                    std::cout << fn << \": \";            \n                std::cout << out.str().substr(1) << std::endl;\n            }\n            else\n            {\n                if(showFilename)\n                    std::cout << fn << std::endl;\n            }\n        }\n        \n    return 0;\n}\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/ResType.cc",
    "content": "#include \"ResType.h\"\n#include <iostream>\n#include <cassert>\n\nResType::ResType(const std::string &str)\n{\n    auto p = str.begin();\n    auto e = str.end();\n\n    assert(str.size() == 4);\n\n    x = 0;\n    while(p != e)\n    {\n        x <<= 8;\n        x |= (*p) & 0xFF;\n        ++p;\n    }\n}\n\nResType::ResType(const char *s)\n{\n    auto p = s;\n    auto e = s + 4;\n\n    assert(s[0] && s[1] && s[2] && s[3] && !s[4]);\n\n    x = 0;\n    while(p != e)\n    {\n        x <<= 8;\n        x |= (*p) & 0xFF;\n        ++p;\n    }\n}\n\n\nResType::operator std::string()\n{\n    char c1 = static_cast<char>(x >> 24);\n    char c2 = static_cast<char>(x >> 16);\n    char c3 = static_cast<char>(x >> 8);\n    char c4 = static_cast<char>(x);\n\n    return std::string{ c1, c2, c3, c4 };\n}\n\nstd::ostream &operator<<(std::ostream &out, ResType t)\n{\n    char c1 = static_cast<char>((int)t >> 24);\n    char c2 = static_cast<char>((int)t >> 16);\n    char c3 = static_cast<char>((int)t >> 8);\n    char c4 = static_cast<char>((int)t);\n\n    out << \"'\" << c1 << c2 << c3 << c4 << \"'\";\n    return out;\n}\n\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/ResType.h",
    "content": "#ifndef RESTYPE_H\n#define RESTYPE_H\n\n#include <string>\n#include <iosfwd>\n\nclass ResType\n{\n    int x;\npublic:\n    ResType() : x(0) {}\n    ResType(int x) : x(x) {}\n    ResType(const std::string& s);\n    ResType(const char* s);\n\n    operator int() const { return x; }\n    bool operator<(ResType y) const { return x < y.x; }\n\n    operator std::string();\n};\n\nstd::ostream& operator<<(std::ostream& out, ResType t);\n\nstruct ResRef : public std::pair<ResType, short>\n{\n    ResRef() : std::pair<ResType, short>(ResType(), 0) {}\n    ResRef(ResType t, int id) : std::pair<ResType, short>(t,id) {}\n\n    ResType& type() { return first; }\n    ResType type() const { return first; }\n    short& id() { return second; }\n    short id() const { return second; }\n};\n\n#endif // RESTYPE_H\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/ResourceFile.cc",
    "content": "#include \"ResourceFile.h\"\n#include \"BinaryIO.h\"\n\n#include <boost/filesystem.hpp>\n#include \"boost/filesystem/fstream.hpp\"\n#include <sstream>\n#include <iostream>\n\n#ifdef __APPLE__\n#include <sys/xattr.h>\n#endif\nextern \"C\" {\n#include \"hfs.h\"\n}\n\nnamespace fs = boost::filesystem;\n\n// CRC 16 table lookup array\nstatic unsigned short CRC16Table[256] =\n    {0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50A5, 0x60C6, 0x70E7,\n    0x8108, 0x9129, 0xA14A, 0xB16B, 0xC18C, 0xD1AD, 0xE1CE, 0xF1EF,\n    0x1231, 0x0210, 0x3273, 0x2252, 0x52B5, 0x4294, 0x72F7, 0x62D6,\n    0x9339, 0x8318, 0xB37B, 0xA35A, 0xD3BD, 0xC39C, 0xF3FF, 0xE3DE,\n    0x2462, 0x3443, 0x0420, 0x1401, 0x64E6, 0x74C7, 0x44A4, 0x5485,\n    0xA56A, 0xB54B, 0x8528, 0x9509, 0xE5EE, 0xF5CF, 0xC5AC, 0xD58D,\n    0x3653, 0x2672, 0x1611, 0x0630, 0x76D7, 0x66F6, 0x5695, 0x46B4,\n    0xB75B, 0xA77A, 0x9719, 0x8738, 0xF7DF, 0xE7FE, 0xD79D, 0xC7BC,\n    0x48C4, 0x58E5, 0x6886, 0x78A7, 0x0840, 0x1861, 0x2802, 0x3823,\n    0xC9CC, 0xD9ED, 0xE98E, 0xF9AF, 0x8948, 0x9969, 0xA90A, 0xB92B,\n    0x5AF5, 0x4AD4, 0x7AB7, 0x6A96, 0x1A71, 0x0A50, 0x3A33, 0x2A12,\n    0xDBFD, 0xCBDC, 0xFBBF, 0xEB9E, 0x9B79, 0x8B58, 0xBB3B, 0xAB1A,\n    0x6CA6, 0x7C87, 0x4CE4, 0x5CC5, 0x2C22, 0x3C03, 0x0C60, 0x1C41,\n    0xEDAE, 0xFD8F, 0xCDEC, 0xDDCD, 0xAD2A, 0xBD0B, 0x8D68, 0x9D49,\n    0x7E97, 0x6EB6, 0x5ED5, 0x4EF4, 0x3E13, 0x2E32, 0x1E51, 0x0E70,\n    0xFF9F, 0xEFBE, 0xDFDD, 0xCFFC, 0xBF1B, 0xAF3A, 0x9F59, 0x8F78,\n    0x9188, 0x81A9, 0xB1CA, 0xA1EB, 0xD10C, 0xC12D, 0xF14E, 0xE16F,\n    0x1080, 0x00A1, 0x30C2, 0x20E3, 0x5004, 0x4025, 0x7046, 0x6067,\n    0x83B9, 0x9398, 0xA3FB, 0xB3DA, 0xC33D, 0xD31C, 0xE37F, 0xF35E,\n    0x02B1, 0x1290, 0x22F3, 0x32D2, 0x4235, 0x5214, 0x6277, 0x7256,\n    0xB5EA, 0xA5CB, 0x95A8, 0x8589, 0xF56E, 0xE54F, 0xD52C, 0xC50D,\n    0x34E2, 0x24C3, 0x14A0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\n    0xA7DB, 0xB7FA, 0x8799, 0x97B8, 0xE75F, 0xF77E, 0xC71D, 0xD73C,\n    0x26D3, 0x36F2, 0x0691, 0x16B0, 0x6657, 0x7676, 0x4615, 0x5634,\n    0xD94C, 0xC96D, 0xF90E, 0xE92F, 0x99C8, 0x89E9, 0xB98A, 0xA9AB,\n    0x5844, 0x4865, 0x7806, 0x6827, 0x18C0, 0x08E1, 0x3882, 0x28A3,\n    0xCB7D, 0xDB5C, 0xEB3F, 0xFB1E, 0x8BF9, 0x9BD8, 0xABBB, 0xBB9A,\n    0x4A75, 0x5A54, 0x6A37, 0x7A16, 0x0AF1, 0x1AD0, 0x2AB3, 0x3A92,\n    0xFD2E, 0xED0F, 0xDD6C, 0xCD4D, 0xBDAA, 0xAD8B, 0x9DE8, 0x8DC9,\n    0x7C26, 0x6C07, 0x5C64, 0x4C45, 0x3CA2, 0x2C83, 0x1CE0, 0x0CC1,\n    0xEF1F, 0xFF3E, 0xCF5D, 0xDF7C, 0xAF9B, 0xBFBA, 0x8FD9, 0x9FF8,\n    0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0};\n\n// CalculateCRC\nstatic unsigned short CalculateCRC(unsigned short CRC, const char* dataBlock, int dataSize)\n{\n    while (dataSize)\n    {\n        CRC = (CRC << 8) ^ CRC16Table[((*dataBlock) ^ (CRC >> 8)) & 0x00FF];\n        dataBlock++;\n        dataSize--;\n    }\n\n    return CRC;\n}\n\nstatic void writeMacBinary(std::ostream& out, std::string filename,\n                           ResType type, ResType creator,\n                           const Resources& rsrc, const std::string& data)\n{\n\n    std::ostringstream resstream;\n    rsrc.writeFork(resstream);\n\n    const std::string& rsrcBytes = resstream.str();\n\n\n    std::ostringstream header;\n    byte(header, 0);\n    byte(header, filename.size());\n    header << filename;\n    while((int)header.tellp() < 65)\n        byte(header,0);\n    ostype(header, type);\n    ostype(header, creator);\n    byte(header, 0); // flags\n    byte(header, 0);\n    word(header, 0);  // position.v\n    word(header, 0); // position.h\n    word(header, 0); // folder id\n    byte(header, 0); // protected flag\n    byte(header, 0);\n    longword(header, (int)data.size());\n    longword(header, (int)rsrcBytes.size());\n    longword(header, 0); // creation date\n    longword(header, 0); // modification date\n    while((int)header.tellp() < 124)\n        byte(header,0);\n    std::string headerData = header.str();\n    out << headerData;\n    word(out, CalculateCRC(0, &headerData[0], headerData.size()));\n    word(out, 0);\n    out << data;\n    while((int)out.tellp() % 128)\n        byte(out,0);\n    rsrc.writeFork(out);\n    while((int)out.tellp() % 128)\n        byte(out,0);\n}\n\nbool ResourceFile::read(std::string path, Format f)\n{\n    if(!assign(path, f))\n        return false;\n    return read();\n}\n\nbool ResourceFile::write(std::string path, Format f)\n{\n    if(!assign(path, f))\n        return false;\n    return write();\n}\n\nstatic bool CheckAppleDouble(fs::path path, std::string prefix)\n{\n    fs::path adPath = path.parent_path() / (prefix  + path.filename().string());\n    fs::ifstream in(adPath);\n    if(in)\n    {\n        int magic1 = longword(in);\n\n        if(in && magic1 == 0x00051607)\n        {\n            int magic2 = longword(in);\n            if(in && magic2 == 0x00020000)\n                return true;\n        }\n    }\n    return false;\n}\n\nbool ResourceFile::assign(std::string pathstring, ResourceFile::Format f)\n{\n    this->pathstring = pathstring;\n    fs::path path(pathstring);\n\n    this->filename = path.stem().string();\n    fs::path rsrcPath = path.parent_path() / \".rsrc\" / path.filename();\n    fs::path finfPath = path.parent_path() / \".finf\" / path.filename();\n\n    format = f;\n    if(format == Format::autodetect)\n    {\n        if(path.extension() == \".bin\")\n            format = Format::macbin;\n        else if(path.extension() == \".as\")\n            format = Format::applesingle;\n        else if(path.extension() == \".dsk\")\n            format = Format::diskimage;\n        else if(path.filename().string().substr(0,2) == \"._\")\n        {\n            path = path.parent_path() / path.filename().string().substr(2);\n            format = Format::underscore_appledouble;\n            this->pathstring = path.string();\n        }\n        else if(path.filename().string()[0] == '%')\n        {\n            path = path.parent_path() / path.filename().string().substr(1);\n            format = Format::percent_appledouble;\n            this->pathstring = path.string();\n        }\n        //else if(fs::exists(rsrcPath))\n        //    format = Format::basilisk;\n    }\n    if(format == Format::autodetect)\n    {\n        if(CheckAppleDouble(path, \"._\"))\n            format = Format::underscore_appledouble;\n        if(CheckAppleDouble(path, \"%\"))\n            format = Format::percent_appledouble;\n    }\n    if(format == Format::autodetect)\n    {\n        fs::ifstream in(path);\n        if(in)\n        {\n            int magic1 = longword(in);\n            if(in && magic1 == 0x00051600)\n            {\n                int magic2 = longword(in);\n                if(in && magic2 == 0x00020000)\n                    format = Format::applesingle;\n            }\n        }\n    }\n    if(format == Format::autodetect)\n    {\n#ifdef __APPLE__\n        format = Format::real;\n#else\n        format = Format::basilisk;\n#endif\n    }\n//    std::cout << \"assigned: \" << pathstring << \" format \" << (int)format << \"\\n\";\n    return true;\n}\n\nbool ResourceFile::read(std::istream& in, Format f)\n{\n    switch(f)\n    {\n        case Format::applesingle:\n            {\n                if(longword(in) != 0x00051600)\n                    return false;\n                if(longword(in) != 0x00020000)\n                    return false;\n                in.seekg(24);\n                int n = word(in);\n                for(int i = 0; i < n; i++)\n                {\n                    in.seekg(26 + i * 12);\n                    int what = longword(in);\n                    int off = longword(in);\n                    int len = longword(in);\n                    in.seekg(off);\n                    switch(what)\n                    {\n                        case 1:\n                            {\n                                std::vector<char> buf(len);\n                                in.read(buf.data(), len);\n                                data = std::string(buf.begin(), buf.end());\n                            }\n                            break;\n                        case 2:\n                            resources = Resources(in);\n                            break;\n                        case 9:\n                            type = ostype(in);\n                            creator = ostype(in);\n                            break;\n                    }\n                }\n            }\n            break;\n        case Format::macbin:\n            {\n                if(byte(in) != 0)\n                    return false;\n                if(byte(in) > 63)\n                    return false;\n                in.seekg(65);\n                type = ostype(in);\n                creator = ostype(in);\n                in.seekg(83);\n                int datasize = longword(in);\n                //int rsrcsize = longword(in);\n\n                in.seekg(0);\n                char header[124];\n                in.read(header, 124);\n                unsigned short crc = CalculateCRC(0,header,124);\n                if(word(in) != crc)\n                    return false;\n                in.seekg(128);\n                std::vector<char> buf(datasize);\n                in.read(buf.data(), datasize);\n                data = std::string(buf.begin(), buf.end());\n                datasize = ((int)datasize + 0x7F) & ~0x7F;\n                in.seekg(128 + datasize);\n                resources = Resources(in);\n            }\n            break;\n        default:\n            return false;\n    }\n    return true;\n}\n\nbool ResourceFile::read()\n{\n    fs::path path(pathstring);\n\n    type = creator = 0x3F3F3F3F;\n\n    if(isSingleFork(format))\n    {\n        fs::ifstream in(path);\n        return read(in, format);\n    }\n\n    switch(format)\n    {\n        case Format::basilisk:\n            {\n                fs::ifstream dataIn(path);\n                if(!dataIn)\n                    return false;\n                data = std::string(std::istreambuf_iterator<char>(dataIn),\n                                   std::istreambuf_iterator<char>());\n\n                fs::ifstream rsrcIn(path.parent_path() / \".rsrc\" / path.filename());\n                if(rsrcIn)\n                    resources = Resources(rsrcIn);\n                fs::ifstream finfIn(path.parent_path() / \".finf\" / path.filename());\n                if(finfIn)\n                {\n                    type = ostype(finfIn);\n                    creator = ostype(finfIn);\n                }\n            }\n            break;\n#ifdef __APPLE__\n        case Format::real:\n            {\n                fs::ifstream dataIn(path);\n                if(!dataIn)\n                    return false;\n                data = std::string(std::istreambuf_iterator<char>(dataIn),\n                                   std::istreambuf_iterator<char>());\n                fs::ifstream rsrcIn(path / \"..namedfork\" / \"rsrc\");\n                if(rsrcIn)\n                    resources = Resources(rsrcIn);\n\n                char finf[32];\n                int n = getxattr(path.c_str(), XATTR_FINDERINFO_NAME,\n                        finf, 32, 0, 0);\n                if(n > 0)\n                {\n                    std::istringstream finfIn(std::string(finf, finf+n));\n                    type = ostype(finfIn);\n                    creator = ostype(finfIn);\n                }\n            }\n            break;\n#endif\n\n        case Format::underscore_appledouble:\n        case Format::percent_appledouble:\n            {\n                fs::ifstream dataIn(path);\n                data = std::string(std::istreambuf_iterator<char>(dataIn),\n                                   std::istreambuf_iterator<char>());\n\n                std::string prefix = format == Format::underscore_appledouble ?\n                                        \"._\" : \"%\";\n\n                fs::path adPath = path.parent_path() / (prefix  + path.filename().string());\n                fs::ifstream in(adPath);\n                if(longword(in) != 0x00051607)\n                    return false;\n                if(longword(in) != 0x00020000)\n                    return false;\n                in.seekg(24);\n                int n = word(in);\n                for(int i = 0; i < n; i++)\n                {\n                    in.seekg(26 + i * 12);\n                    int what = longword(in);\n                    int off = longword(in);\n                    //int len = longword(in);\n                    in.seekg(off);\n                    switch(what)\n                    {\n                        case 2:\n                            resources = Resources(in);\n                            break;\n                        case 9:\n                            type = ostype(in);\n                            creator = ostype(in);\n                            break;\n                    }\n                }\n            }\n            break;\n        default:\n            return false;\n    }\n    return true;\n}\n\nbool ResourceFile::write(std::ostream& out, Format f)\n{\n    switch(f)\n    {\n        case Format::macbin:\n            {\n                writeMacBinary(out, filename, type, creator, resources, data);\n            }\n            break;\n        case Format::applesingle:\n            {\n                longword(out, 0x00051600);\n                longword(out, 0x00020000);\n                for(int i = 0; i < 16; i++)\n                    byte(out, 0);\n                word(out, 3);\n                std::streampos entries = out.tellp();\n                for(int i = 0; i < 3*3; i++)\n                    longword(out, 0);\n                std::streampos dataStart = out.tellp();\n                out << data;\n                std::streampos rsrcStart = out.tellp();\n                resources.writeFork(out);\n                std::streampos finfStart = out.tellp();\n                ostype(out, type);\n                ostype(out, creator);\n                for(int i = 8; i < 32; i++)\n                    byte(out, 0);\n                out.seekp(entries);\n                longword(out, 1);\n                longword(out, dataStart);\n                longword(out, rsrcStart - dataStart);\n                longword(out, 2);\n                longword(out, rsrcStart);\n                longword(out, finfStart - rsrcStart);\n                longword(out, 9);\n                longword(out, finfStart);\n                longword(out, 32);\n            }\n            break;\n        default:\n            return false;\n    }\n    return true;\n}\n\nbool ResourceFile::write()\n{\n    fs::path path(pathstring);\n\n    if(isSingleFork(format))\n    {\n        fs::ofstream out(path);\n        return write(out, format);\n    }\n\n    switch(format)\n    {\n        case Format::basilisk:\n            {\n                fs::create_directory(path.parent_path() / \".rsrc\");\n                fs::create_directory(path.parent_path() / \".finf\");\n\n                fs::ofstream dataOut(path);\n                fs::ofstream rsrcOut(path.parent_path() / \".rsrc\" / path.filename());\n                fs::ofstream finfOut(path.parent_path() / \".finf\" / path.filename());\n\n                dataOut << data;\n                resources.writeFork(rsrcOut);\n\n                ostype(finfOut, type);\n                ostype(finfOut, creator);\n                for(int i = 8; i < 32; i++)\n                    byte(finfOut, 0);\n            }\n            break;\n#ifdef __APPLE__\n        case Format::real:\n            {\n                fs::ofstream dataOut(path);\n                fs::ofstream rsrcOut(path / \"..namedfork\" / \"rsrc\");\n                std::ostringstream finfOut;\n\n                dataOut << data;\n                resources.writeFork(rsrcOut);\n\n                ostype(finfOut, type);\n                ostype(finfOut, creator);\n                for(int i = 8; i < 32; i++)\n                    byte(finfOut, 0);\n                setxattr(path.c_str(), XATTR_FINDERINFO_NAME,\n                        finfOut.str().data(), 32, 0, 0);\n            }\n            break;\n#endif\n\n        case Format::underscore_appledouble:\n        case Format::percent_appledouble:\n            {\n                fs::ofstream dataOut(path);\n\n                dataOut << data;\n\n                std::string prefix = format == Format::underscore_appledouble ?\n                                        \"._\" : \"%\";\n\n                fs::path adPath = path.parent_path() / (prefix  + path.filename().string());\n\n                fs::ofstream out(adPath);\n\n                longword(out, 0x00051607);\n                longword(out, 0x00020000);\n\n                for(int i = 0; i < 16; i++)\n                    byte(out, 0);\n                word(out, 2);\n                std::streampos entries = out.tellp();\n                for(int i = 0; i < 2*3; i++)\n                    longword(out, 0);\n                std::streampos rsrcStart = out.tellp();\n                resources.writeFork(out);\n                std::streampos finfStart = out.tellp();\n                ostype(out, type);\n                ostype(out, creator);\n                for(int i = 8; i < 32; i++)\n                    byte(out, 0);\n                out.seekp(entries);\n                longword(out, 2);\n                longword(out, rsrcStart);\n                longword(out, finfStart - rsrcStart);\n                longword(out, 9);\n                longword(out, finfStart);\n                longword(out, 32);\n            }\n            break;\n#ifndef DARLING\n        case Format::diskimage:\n            {\n                std::ostringstream rsrcOut;\n                resources.writeFork(rsrcOut);\n                std::string rsrc = rsrcOut.str();\n                int size = rsrc.size();\n\n                size += 20 * 1024;\n                size += 800*1024 - size % (800*1024);\n\n                fs::ofstream(path, std::ios::binary | std::ios::trunc).seekp(size-1).put(0);\n\n                hfs_format(pathstring.c_str(), 0, 0, path.stem().string().substr(0,27).c_str(), 0, NULL);\n                hfsvol *vol = hfs_mount(pathstring.c_str(), 0, HFS_MODE_RDWR);\n                if(!vol)\n                    return false;\n                //hfs_setvol(vol, )\n                hfsfile *file = hfs_create(vol, (path.stem().string().substr(0,31)).c_str(),\n                                           ((std::string)type).c_str(), ((std::string)creator).c_str());\n                hfs_setfork(file, 0);\n                hfs_write(file, data.data(), data.size());\n                hfs_setfork(file, 1);\n                hfs_write(file, rsrc.data(), rsrc.size());\n\n                hfs_close(file);\n                hfs_umount(vol);\n\n            }\n            break;\n#endif\n        default:\n            return false;\n    }\n    return true;\n}\n\nbool ResourceFile::hasPlainDataFork(ResourceFile::Format f)\n{\n    switch(f)\n    {\n#ifdef __APPLE__\n        case Format::real:\n#endif\n        case Format::basilisk:\n        case Format::underscore_appledouble:\n        case Format::percent_appledouble:\n            return true;\n        default:\n            return false;\n    }\n}\n\nbool ResourceFile::hasPlainDataFork()\n{\n    return hasPlainDataFork(format);\n}\n\nbool ResourceFile::isSingleFork(Format f)\n{\n    switch(f)\n    {\n        case Format::macbin:\n        case Format::applesingle:\n            return true;\n        default:\n            return false;\n    }\n}\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/ResourceFile.h",
    "content": "#ifndef RESOURCEFILE_H\n#define RESOURCEFILE_H\n\n#include <memory>\n#include <iosfwd>\n#include <string>\n\n#include \"ResType.h\"\n#include \"ResourceFork.h\"\n\nclass ResourceFile\n{\npublic:\n    enum class Format\n    {\n        autodetect,\n#ifdef __APPLE__\n        real,\n#endif\n        macbin,\n        diskimage,\n        basilisk,\n        applesingle,\n        underscore_appledouble,\n        percent_appledouble\n    };\n\n    bool read(std::string path, Format f = Format::autodetect);\n    bool write(std::string path, Format f = Format::autodetect);\n    bool read(std::istream& in, Format f);\n    bool write(std::ostream& in, Format f);\n    static bool hasPlainDataFork(Format f);\n    bool hasPlainDataFork();\n    Format getFormat() { return format; }\n\n    static bool isSingleFork(Format f);\n\n    ResType type;\n    ResType creator;\n    Resources resources;\n    std::string data;\n\nprivate:\n    bool assign(std::string path, Format f = Format::autodetect);\n    bool read();\n    bool write();\n\n    std::string pathstring;\n    std::string filename;\n    Format format = Format::autodetect;\n};\n\n#endif // RESOURCEFILE_H\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/ResourceFork.cc",
    "content": "#include \"ResourceFork.h\"\n#include \"BinaryIO.h\"\n\n#include <iostream>\n#include <map>\n#include <vector>\n\nvoid Resources::addResources(const Resources& res)\n{\n    for(auto& rr : res.resources)\n        addResource(rr.second);\n}\n\nvoid Resources::writeFork(std::ostream& out) const\n{\n    std::streampos start = out.tellp();\n    longword(out,0x100);\n    longword(out,0);\n    longword(out,0);\n    longword(out,0);\n    for(int i = 0; i < 0x100 - 16; i++)\n        byte(out, 0);\n\n    std::map< ResType, std::map<int, int> > resourceInfos;\n    std::streampos datastart = out.tellp();\n    for(auto& rr : resources)\n    {\n        const Resource& r = rr.second;\n        const std::string& data = r.getData();\n        unsigned offset = out.tellp() - datastart;\n        offset = (r.getAttr() << 24) | (offset & 0xFFFFFF);\n        resourceInfos[ r.getType() ][ r.getID() ] = (int)offset;\n        longword(out, data.size());\n        out << data;\n    }\n    std::streampos dataend = out.tellp();\n//   while(out.tellp() % 0x100)\n//      out.put(0);\n    std::streampos resmap = out.tellp();\n    for(int i = 0; i < 16+4+2+2; i++)\n        byte(out, 0);\n    word(out,16+4+2+2+2+2); // offset to resource type list\n    std::streampos resnameOffset = out.tellp();\n    word(out,0);\n    std::streampos typelist = out.tellp();\n    word(out,resourceInfos.size() - 1);\n    for(std::map< ResType, std::map<int, int> >::iterator p = resourceInfos.begin();\n            p != resourceInfos.end(); ++p)\n    {\n        if(p->second.size())\n        {\n            ostype(out,p->first);\n            word(out,p->second.size()-1);\n            word(out,0); // replaced later\n        }\n    }\n    int typeIndex = 0;\n    int nameOffset = 0;\n    for(std::map< ResType, std::map<int, int> >::iterator p = resourceInfos.begin();\n            p != resourceInfos.end(); ++p)\n    {\n        if(p->second.size())\n        {\n            std::streampos pos = out.tellp();\n            out.seekp((int)typelist + 2 + 8 * typeIndex + 6);\n            word(out, pos - typelist);\n            out.seekp(pos);\n            typeIndex++;\n\n            for(std::map<int,int>::iterator q = p->second.begin(); q != p->second.end(); ++q)\n            {\n                std::string name = resources.find(ResRef(p->first, q->first))->second.getName();\n                word(out,q->first);\n                if(name.size() == 0)\n                    word(out,-1);\n                else\n                {\n                    word(out, nameOffset);\n                    nameOffset += (name.size() > 255 ? 255 : name.size()) + 1;\n                }\n                longword(out,q->second);\n                longword(out,0);\n            }\n        }\n    }\n    std::streampos resnames = out.tellp();\n    out.seekp(resnameOffset);\n    word(out, resnames - resmap);\n    out.seekp(resnames);\n\n    for(std::map< ResType, std::map<int, int> >::iterator p = resourceInfos.begin();\n            p != resourceInfos.end(); ++p)\n    {\n        for(std::map<int,int>::iterator q = p->second.begin(); q != p->second.end(); ++q)\n        {\n            std::string name = resources.find(ResRef(p->first, q->first))->second.getName();\n            if(name.size() > 0)\n            {\n                int sz = name.size() > 255 ? 255 : name.size();\n                byte(out, sz);\n                for(int i = 0; i < sz; i++)\n                    byte(out, name[i]);\n            }\n        }\n    }\n\n    std::streampos end = out.tellp();\n    out.seekp(start + std::streampos(4));\n    longword(out, resmap - start);\n    longword(out, dataend - start - std::streampos(0x100));\n    longword(out, end - resmap);\n    out.seekp(end);\n}\n\nResources::Resources(std::istream &in)\n{\n    std::streampos start = in.tellg();\n    int resdataOffset = longword(in);\n    int resmapOffset = longword(in);\n\n    in.seekg(start + std::streampos(resmapOffset + 16 + 4 + 2 + 2));\n    int typeListOffset = word(in);\n    int nameListOffset = word(in);\n    int nTypes = (word(in) + 1) & 0xFFFF;\n\n    for(int i = 0; i < nTypes; i++)\n    {\n        in.seekg(start + std::streampos(resmapOffset + typeListOffset + 2 + i * 8));\n        std::string type = ostype(in);\n        int nRes = (word(in) + 1) & 0xFFFF;\n        int refListOffset = word(in);\n\n        for(int j = 0; j < nRes; j++)\n        {\n            in.seekg(start + std::streampos(resmapOffset + typeListOffset + refListOffset + j * 12));\n            int id = (short) word(in);\n            int nameOffset = word(in);\n            int attr = byte(in);\n            int off1 = byte(in);\n            int off2 = byte(in);\n            int off3 = byte(in);\n            int offset = (off1 << 16) | (off2 << 8) | off3;\n            std::string name;\n            if(nameOffset != 0xFFFF)\n            {\n                in.seekg(start + std::streampos(resmapOffset + nameListOffset + nameOffset));\n                int nameLen = byte(in);\n                char buf[256];\n                in.read(buf, nameLen);\n                name = std::string(buf, nameLen);\n            }\n\n            in.seekg(start + std::streampos(resdataOffset + offset));\n            int size = longword(in);\n            std::vector<char> tmp(size);\n            in.read(tmp.data(), size);\n            std::string data(tmp.data(), size);\n\n            addResource(Resource(type, id, data, name, attr));\n        }\n    }\n}\n"
  },
  {
    "path": "src/buildtools/Rez/ResourceFiles/ResourceFork.h",
    "content": "#ifndef RESOURCEFORK_H\n#define RESOURCEFORK_H\n\n#include <string>\n#include <map>\n#include \"ResType.h\"\n\nclass Resource\n{\n    ResType type;\n    short id;\n    std::string name;\n    std::string data;\n    int attr;\npublic:\n    Resource() {}\n    Resource(ResType type, int id, std::string data, std::string name = \"\", int attr = 0)\n        : type(type), id(id), name(name), data(data), attr(attr) {}\n\n    const std::string& getData() const { return data; }\n    inline ResType getType() const { return type; }\n    inline int getID() const { return id; }\n    inline ResRef getTypeAndID() const { return ResRef(type, id); }\n    std::string getName() const { return name; }\n    int getAttr() const { return attr; }\n};\n\nclass Fork\n{\npublic:\n     virtual void writeFork(std::ostream& out) const { }\n     virtual ~Fork() {}\n};\n\nclass Resources : public Fork\n{\npublic:\n    std::map<ResRef, Resource> resources;\n\n    Resources() {}\n    Resources(std::istream& in);\n    void writeFork(std::ostream& out) const;\n    void addResource(Resource res) { resources[res.getTypeAndID()] = res; }\n    void addResources(const Resources& res);\n\n    unsigned countResources() const { return resources.size(); }\n};\n\n#endif // RESOURCEFORK_H\n"
  },
  {
    "path": "src/buildtools/Rez/Rez.cc",
    "content": "#include <iostream>\n#include \"boost/program_options.hpp\"\n#include \"boost/filesystem.hpp\"\n#include \"boost/filesystem/fstream.hpp\"\n\n#include \"RezParser.generated.hh\"\n#include \"RezLexer.h\"\n#include \"RezWorld.h\"\n\n#include \"ResourceFork.h\"\n#include \"BinaryIO.h\"\n#include \"ResourceFile.h\"\n#include \"Diagnostic.h\"\n\nnamespace po = boost::program_options;\nnamespace fs = boost::filesystem;\n\nstatic po::options_description desc;\n\nstatic void usage()\n{\n    std::cerr << \"Usage: \" << \"Rez [options] input-file\\n\";\n    std::cerr << desc << std::endl;\n}\n\nstatic void CopyBinaryResources(RezWorld& world, const std::string& fn)\n{\n    ResourceFile copyRsrc;\n    if(!copyRsrc.read(fn))\n    {\n        world.problem(Diagnostic(Diagnostic::error, \"Could not read binary resource file \" + fn, yy::location()));\n    }\n    else if(world.verboseFlag)\n    {\n        std::cerr << \"Read \" << copyRsrc.resources.countResources() << \" resources from \" << fn << \"\\n\";\n    }\n\n    world.getResources().addResources(copyRsrc.resources);\n}\n\nint main(int argc, const char *argv[])\n{\n    desc.add_options()\n        (\"help,h\", \"show this help message\")\n        (\"output,o\", po::value<std::string>()->default_value(\"rez.output.rsrc\"), \"output file\")\n        (\"append,a\", \"append to existing output file\")\n        (\"type,t\", po::value<std::string>()->default_value(\"rsrc\"), \"output file finder type code\")\n        (\"creator,c\", po::value<std::string>()->default_value(\"RSED\"), \"output file finder creator code\")\n        (\"define,D\", po::value<std::vector<std::string>>(), \"predefine preprocessor symbol\")\n        (\"include,I\", po::value<std::vector<std::string>>(), \"add include file path\")\n        (\"copy\", po::value<std::vector<std::string>>(), \"copy resources from other resource file\")\n        (\"cc\", po::value<std::vector<std::string>>(), \"also write output to another file\")\n        (\"debug,d\", \"debug logging\")\n        (\"data\", po::value<std::string>(), \"copy data fork from another file\")\n    ;\n    po::options_description hidden, alldesc;\n    hidden.add_options()\n        (\"input\", po::value<std::vector<std::string>>(), \"input file\" )\n    ;\n    alldesc.add(desc).add(hidden);\n\n    po::variables_map options;\n    try\n    {\n        auto parsed = po::command_line_parser(argc, argv)\n                .options(alldesc)\n                .positional(po::positional_options_description().add(\"input\", -1))\n                .style(po::command_line_style::default_style)\n                .run();\n\n        po::store(parsed, options);\n    }\n    catch(po::error& e)\n    {\n        std::cerr << \"ERROR: \" << e.what() << std::endl << std::endl;\n        usage();\n        return 1;\n    }\n\n    po::notify(options);\n\n    if(options.count(\"help\")\n        || (!options.count(\"input\") && !options.count(\"copy\") \n            && !options.count(\"output\")))\n    {\n        usage();\n        return 0;\n    }\n\n    RezWorld world;\n\n    if(options.count(\"debug\"))\n        world.verboseFlag = true;\n\n    std::string outfile = options[\"output\"].as<std::string>();\n    ResourceFile rsrcFile;\n\n    if(options.count(\"append\"))\n    {\n        rsrcFile.read(outfile);\n\n        world.getResources().addResources(rsrcFile.resources);\n    }\n\n    if(options.count(\"data\"))\n    {\n        std::string fn = options[\"data\"].as<std::string>();\n        ResourceFile dataFile;\n        if(!dataFile.read(fn))\n            world.problem(Diagnostic(Diagnostic::error, \"Could not read dataresource file \" + fn, yy::location()));\n        rsrcFile.data = dataFile.data;\n    }\n\n    if(options.count(\"copy\"))\n        for(std::string fn : options[\"copy\"].as<std::vector<std::string>>())\n            CopyBinaryResources(world, fn);\n\n    if(options.count(\"input\"))\n        for(std::string fn : options[\"input\"].as<std::vector<std::string>>())\n        {\n            fs::path path(fn);\n            if(path.extension() == \".rsrc\" || path.extension() == \".bin\")\n            {\n                CopyBinaryResources(world, fn);\n            }\n            else\n            {\n                try\n                {\n                    RezLexer lexer(world, fn);\n\n                    if(options.count(\"define\"))\n                        for(std::string define : options[\"define\"].as<std::vector<std::string>>())\n                            lexer.addDefine(define);\n                    if(options.count(\"include\"))\n                        for(std::string path : options[\"include\"].as<std::vector<std::string>>())\n                            lexer.addIncludePath(path);\n\n                    if(world.verboseFlag)\n                    {\n                        std::cerr << \"Compiling \" << fn << \"...\\n\";\n                    }\n\n                    RezParser parser(lexer, world);\n                    parser.parse();\n                }\n                catch(...)\n                {\n                    world.problem(Diagnostic(Diagnostic::fatalError,\"unknown error\",yy::location(&fn)));\n                }\n            }\n        }\n\n    if(world.hadErrors)\n        return 1;\n\n    rsrcFile.resources = world.getResources();\n    rsrcFile.creator = options[\"creator\"].as<std::string>();\n    rsrcFile.type = options[\"type\"].as<std::string>();\n\n    if(world.verboseFlag)\n    {\n        std::cerr << \"Writing \" << rsrcFile.resources.countResources() << \" resources.\\n\";\n    }\n    rsrcFile.write(outfile);\n\n    if(options.count(\"cc\"))\n        for(std::string ccFile : options[\"cc\"].as<std::vector<std::string>>())\n        {\n            rsrcFile.write(ccFile);\n        }\n\n    return 0;\n}\n"
  },
  {
    "path": "src/buildtools/Rez/RezLexer.cc",
    "content": "#include \"RezLexer.h\"\n\n#include <boost/wave.hpp>\n#include <boost/wave/cpplexer/cpp_lex_iterator.hpp>\n#include <boost/wave/token_ids.hpp>\n#include <boost/regex.hpp>\n\n#include \"RezLexerWaveToken.h\"\n#include \"RezWorld.h\"\n#include \"Diagnostic.h\"\n\nnamespace wave = boost::wave;\n\nusing namespace boost::wave;\n\nstatic std::string readContents(std::istream&& instream)\n{\n    instream.unsetf(std::ios::skipws);\n\n    return std::string(std::istreambuf_iterator<char>(instream.rdbuf()),\n                       std::istreambuf_iterator<char>());\n}\n\nstatic std::string preFilter(std::string str)\n{\n    boost::regex endif(\"#endif[^\\r\\n]*\");\n    str = boost::regex_replace(str, endif, \"#endif\");\n\n    boost::regex dollar_escape(\"\\\\\\\\\\\\$([a-zA-Z0-9][a-zA-Z0-9])\");\n    str = boost::regex_replace(str, dollar_escape, \"\\\\\\\\0x$1\");\n\n    if(str.size() == 0 || str[str.size()-1] != '\\n')\n        str += \"\\n\";\n    return str;\n}\n\nstruct load_file_to_string_filtered\n{\n    template <typename IterContextT>\n    class inner\n    {\n    public:\n        template <typename PositionT>\n        static void init_iterators(IterContextT &iter_ctx,\n            PositionT const &act_pos, language_support language)\n        {\n            typedef typename IterContextT::iterator_type iterator_type;\n\n            // read in the file\n            std::ifstream instream(iter_ctx.filename.c_str());\n            if (!instream.is_open()) {\n                BOOST_WAVE_THROW_CTX(iter_ctx.ctx, preprocess_exception,\n                    bad_include_file, iter_ctx.filename.c_str(), act_pos);\n                return;\n            }\n\n            iter_ctx.instring = preFilter(readContents(std::move(instream)));\n\n            iter_ctx.first = iterator_type(\n                iter_ctx.instring.begin(), iter_ctx.instring.end(),\n                PositionT(iter_ctx.filename), language);\n            iter_ctx.last = iterator_type();\n        }\n\n    private:\n        std::string instring;\n    };\n};\n\n\n\ntypedef wave::cpplexer::lex_iterator<\n        wave::cpplexer::lex_token<> >\n    lex_iterator_type;\ntypedef wave::context<\n        std::string::iterator, lex_iterator_type,\n        load_file_to_string_filtered>\n    context_type;\ntypedef context_type::iterator_type pp_iterator_type;\n\nstruct RezLexer::Priv\n{\n    std::string input;\n    context_type ctx;\n    pp_iterator_type iter;\n\n    Priv(std::string data, std::string name)\n        : input(data), ctx(input.begin(), input.end(), name.c_str())\n    {\n    }\n};\n\nstatic std::string readInitial(RezWorld& world, std::string filename)\n{\n    std::ifstream in(filename);\n    if(!in.is_open())\n    {\n        world.problem(Diagnostic(Diagnostic::error,\n            \"could not open \" + filename, yy::location()));\n    }\n    return readContents(std::move(in));\n}\n\nRezLexer::RezLexer(RezWorld& world, std::string filename)\n    : RezLexer(world, filename, readInitial(world,filename))\n{\n}\n\n\n\nRezLexer::RezLexer(RezWorld& world, std::string filename, const std::string &data)\n    : world(world), curFile(filename), lastLocation(&curFile)\n{\n    pImpl.reset(new Priv(preFilter(data), filename));\n\n    pImpl->ctx.add_macro_definition(\"DeRez=0\");\n    pImpl->ctx.add_macro_definition(\"Rez=1\");\n    pImpl->ctx.add_macro_definition(\"true=1\");\n    pImpl->ctx.add_macro_definition(\"false=0\");\n    pImpl->ctx.add_macro_definition(\"TRUE=1\");\n    pImpl->ctx.add_macro_definition(\"FALSE=0\");\n\n    pImpl->iter = pImpl->ctx.begin();\n}\n\nRezLexer::~RezLexer()\n{\n\n}\n\n\n\nvoid RezLexer::addDefine(std::string str)\n{\n    pImpl->ctx.add_macro_definition(str);\n}\n\nvoid RezLexer::addIncludePath(std::string path)\n{\n    std::size_t pos = path.find(':');\n    if(pos == std::string::npos)\n    {\n        pImpl->ctx.add_include_path(path.c_str());\n    }\n    else\n    {\n        addIncludePath(path.substr(0,pos));\n        addIncludePath(path.substr(pos + 1));\n    }\n}\n\nbool RezLexer::atEnd()\n{\n    return pImpl->iter == pImpl->ctx.end();\n}\n\nRezLexer::WaveToken RezLexer::nextWave()\n{\n    try\n    {\n        if(pImpl->iter == pImpl->ctx.end())\n            return WaveToken();\n        else\n        {\n            WaveToken tok = *pImpl->iter++;\n            return tok;\n        }\n    }\n    catch(const preprocess_exception& e)\n    {\n        curFile = e.file_name();\n        auto yypos = yy::position(&curFile, e.line_no(), e.column_no());\n        yy::location loc(yypos);\n        lastLocation = loc;\n\n        world.problem(Diagnostic(\n            e.severity_level(e.get_errorcode()) >= util::severity_error\n            ? Diagnostic::error\n            : Diagnostic::warning,\n            preprocess_exception::error_text(e.get_errorcode()), loc));\n        if(e.is_recoverable())\n            return nextWave();\n        else\n            return WaveToken();\n    }\n}\n\nRezLexer::WaveToken RezLexer::peekWave()\n{\n    return pImpl->iter == pImpl->ctx.end() ? WaveToken() : *pImpl->iter;\n}\n\n"
  },
  {
    "path": "src/buildtools/Rez/RezLexer.h",
    "content": "#ifndef REZLEXER_H\n#define REZLEXER_H\n\n#include <memory>\n#include <string>\n\n#include \"location.hh\"\n\nclass RezSymbol;\nclass RezWorld;\n\nclass RezLexer\n{\n    RezWorld& world;\n    struct Priv;\n    std::unique_ptr<Priv> pImpl;\n\n    std::string curFile;\n    yy::location lastLocation;\n\n    class WaveToken;\n\n    bool atEnd();\n    WaveToken nextWave();\n    WaveToken peekWave();\n\npublic:\n    RezLexer(RezWorld& world, std::string filename);\n    RezLexer(RezWorld& world, std::string filename, const std::string& data);\n    ~RezLexer();\n\n    RezSymbol nextToken();\n\n    void addDefine(std::string str);\n    void addIncludePath(std::string path);\n};\n\n#endif // REZLEXER_H\n"
  },
  {
    "path": "src/buildtools/Rez/RezLexerNextToken.cc",
    "content": "#include \"RezLexer.h\"\n#include \"RezLexerWaveToken.h\"\n#include \"RezParser.generated.hh\"\n#include <unordered_map>\n\n#include <boost/regex.hpp>\n\nusing namespace boost::wave;\n\nstatic int readInt(const char *str, const char *end = NULL, int baseOverride = 0)\n{\n    int x = 0;\n\n    int base = 10;\n\n    if(baseOverride)\n        base = baseOverride;\n    else if(*str == '0')\n    {\n        base = 8;\n        ++str;\n        if(*str == 'x' || *str == 'X')\n        {\n            base = 16;\n            ++str;\n        }\n        if(*str == 'b' || *str == 'B')\n        {\n            base = 2;\n            ++str;\n        }\n    }\n    else if(*str == 'b' || *str == 'B')\n    {\n        base = 2;\n        ++str;\n    }\n\n    while(str != end && *str)\n    {\n        x *= base;\n        if(*str >= 'a' && *str <= 'z')\n            x += *str - 'a' + 10;\n        else if(*str >= 'A' && *str <= 'Z')\n            x += *str - 'A' + 10;\n        else if(*str >= '0' && *str <= '9')\n            x += *str - '0';\n        str++;\n    }\n\n    return x;\n}\n\nstatic int readCharLit(const char *str)\n{\n    const char *p = str + 1;\n    const char *e = str + strlen(str) - 1;\n\n    if(e - p != 4)\n        std::cout << \"warning: CHAR LITERAL \" << str << \"\\n\";\n\n    int x = 0;\n    while(p != e)\n    {\n        x <<= 8;\n        x |= (*p) & 0xFF;\n        ++p;\n    }\n    return x;\n}\n\nstatic std::string readStringLit(const char *str)\n{\n    const char *p = str + 1;\n    const char *e = str + strlen(str) - 1;\n\n    std::ostringstream out;\n\n    while(p != e)\n    {\n        if(*p == '\\\\')\n        {\n            ++p;\n            if(p != e)\n            {\n                switch(*p)\n                {\n                    case 'n':\n                        out << '\\n'; ++p;\n                        break;\n                    case 'r':\n                        out << '\\r'; ++p;\n                        break;\n                    case 't':\n                        out << '\\t'; ++p;\n                        break;\n                    case '0':\n                    case '1':\n                    case '2':\n                    case '3':\n                        if(p + 3 > e)\n                            continue;\n                        if(p[0] == '0' && (p[1] == 'x' || p[1] == 'X'))\n                        {\n                            if(p + 4 > e)\n                                continue;\n                            out << (char)readInt(p+2, p+4, 16);\n                            p += 4;\n                        }\n                        else\n                        {\n                            out << (char)readInt(p, p+3, 8);\n                            p += 3;\n                        }\n                        break;\n                    case '$':\n                        {\n                            if(p + 3 > e)\n                                continue;\n                            out << (char)readInt(p+1, p+3, 16);\n                            p += 3;\n                        }\n                        break;\n                }\n            }\n        }\n        else\n        {\n            out << *p++;\n        }\n    }\n\n    return out.str();\n}\n\nRezSymbol RezLexer::nextToken()\n{\n    for(auto tok = nextWave(); tok != T_EOI && tok != T_EOF; tok = nextWave())\n    {\n        if(IS_CATEGORY(tok, WhiteSpaceTokenType))\n            continue;\n        else if(IS_CATEGORY(tok, EOLTokenType))\n            continue;\n        else if(tok == T_PP_LINE)\n        {\n            while(tok != T_EOI && tok != T_EOF && !IS_CATEGORY(tok, EOLTokenType))\n                tok = nextWave();\n            continue;\n        }\n        else\n        {\n            //std::cout << \"{\" << std::hex << (token_id)tok << std::dec << \"|\" << tok.get_value() << \"}\\n\";\n\n            auto pos = tok.get_position();\n            curFile = pos.get_file().c_str();\n            auto yypos = yy::position(&curFile, pos.get_line(), pos.get_column());\n            yy::location loc(yypos);\n            lastLocation = loc;\n\n            if(tok == (UnknownTokenType | '\"'))\n            {\n                return RezParser::make_STRINGLIT(\"Hello, world.\", loc);\n            }\n            else if(IS_CATEGORY(tok, IdentifierTokenType) || IS_CATEGORY(tok, KeywordTokenType) || IS_CATEGORY(tok, BoolLiteralTokenType))\n            {\n                typedef decltype(&RezParser::make_TYPE) memfun;\n#define KEYWORD(upper, lower) \\\n{ lower, &RezParser::make_ ## upper }\n\n                static std::unordered_map<std::string, memfun> keywords = {\n                    KEYWORD(TYPE, \"type\"),\n                    KEYWORD(RESOURCE, \"resource\"),\n                    KEYWORD(DATA, \"data\"),\n                    KEYWORD(READ, \"read\"),\n                    KEYWORD(INCLUDE, \"include\"),\n                    KEYWORD(CHANGE, \"change\"),\n                    KEYWORD(DELETE, \"delete\"),\n\n                    KEYWORD(ARRAY,\"array\"),\n                    KEYWORD(SWITCH, \"switch\"),\n                    KEYWORD(CASE, \"case\"),\n                    KEYWORD(AS, \"as\"),\n                    KEYWORD(FILL,\"fill\"),\n                    KEYWORD(ALIGN, \"align\"),\n                    KEYWORD(HEX,\"hex\"),\n                    KEYWORD(KEY, \"key\"),\n                    KEYWORD(WIDE,\"wide\"),\n                    KEYWORD(UNSIGNED, \"unsigned\"),\n                    KEYWORD(BINARY, \"binary\"),\n                    KEYWORD(LITERAL, \"literal\"),\n                    KEYWORD(BOOLEAN, \"boolean\"),\n                    KEYWORD(BIT, \"bit\"),\n                    KEYWORD(NIBBLE, \"nibble\"),\n                    KEYWORD(BYTE, \"byte\"),\n                    KEYWORD(CHAR, \"char\"),\n                    KEYWORD(WORD, \"word\"),\n                    KEYWORD(INTEGER, \"integer\"),\n                    KEYWORD(LONG, \"long\"),\n                    KEYWORD(LONGINT, \"longint\"),\n                    KEYWORD(PSTRING, \"pstring\"),\n                    KEYWORD(PSTRING, \"wstring\"),\n                    KEYWORD(STRING, \"string\"),\n                    KEYWORD(POINT, \"point\"),\n                    KEYWORD(RECT, \"rect\"),\n                    KEYWORD(BITSTRING, \"bitstring\"),\n\n                    KEYWORD(INTEGER, \"int\"),\n                    KEYWORD(DOLLAR, \"$\"),\n\n                    KEYWORD(FUN_COUNTOF, \"$$countof\"),\n                    KEYWORD(FUN_ARRAYINDEX, \"$$arrayindex\"),\n                    KEYWORD(FUN_READ, \"$$read\"),\n                    KEYWORD(FUN_BITFIELD, \"$$bitfield\"),\n                    KEYWORD(FUN_WORD, \"$$word\"),\n                    KEYWORD(FUN_BYTE, \"$$byte\"),\n                    KEYWORD(FUN_LONG, \"$$long\"),\n                };\n\n                std::string s = tok.get_value().c_str();\n                if(s.size() >= 2 && s[0] == '$' && std::all_of(s.begin()+1, s.end(), [](char c) { return isxdigit(c); }))\n                    return RezParser::make_INTLIT(readInt(s.c_str()+1, nullptr, 16), loc);\n\n                std::string lower = s;\n                std::transform(lower.begin(), lower.end(), lower.begin(), ::tolower);\n                auto p = keywords.find(lower);\n                if(p == keywords.end())\n                {\n                    //std::cout << \"id: \" << s << std::endl;\n                    return RezParser::make_IDENTIFIER(lower, loc);\n                }\n                else\n                {\n                    //std::cout << \"key: \" << s << std::endl;\n                    return (*p->second)(loc);\n                }\n            }\n            else if(tok == T_INTLIT)\n            {\n                if(tok.get_value() == \"0\")\n                {\n                    auto tok2 = peekWave();\n                    while(tok2 != T_EOI && tok2 != T_EOF && IS_CATEGORY(tok2, WhiteSpaceTokenType))\n                        nextWave(), tok2 = peekWave();\n\n                    //std::cout << \"!\" << std::hex << (token_id)tok2 << std::dec << \"|\" << tok2.get_value() << \"!\\n\";\n                    static boost::regex binlit(\"[bB][01]+\");\n                    if(tok2 == T_IDENTIFIER && boost::regex_match(tok2.get_value().c_str(), binlit))\n                        tok = nextWave();\n                }\n                return RezParser::make_INTLIT(readInt(tok.get_value().c_str()), loc);\n            }\n            else\n            {\n#define NOVAL_TOK(name)    \\\ncase T_ ## name: /*std::cout << #name << std::endl;*/ return RezParser::make_ ## name(loc)\n                switch(token_id(tok))\n                {\n                    case T_INTLIT: return RezParser::make_INTLIT(readInt(tok.get_value().c_str()), loc);\n\n                    case T_CHARLIT: return RezParser::make_CHARLIT(readCharLit(tok.get_value().c_str()), loc);\n                    case T_STRINGLIT: return RezParser::make_STRINGLIT(readStringLit(tok.get_value().c_str()), loc);\n\n                    NOVAL_TOK(LEFTBRACE);\n                    NOVAL_TOK(RIGHTBRACE);\n                    NOVAL_TOK(LEFTBRACKET);\n                    NOVAL_TOK(RIGHTBRACKET);\n                    NOVAL_TOK(LEFTPAREN);\n                    NOVAL_TOK(RIGHTPAREN);\n                    NOVAL_TOK(SEMICOLON);\n                    NOVAL_TOK(COMMA);\n                    NOVAL_TOK(PLUS);\n                    NOVAL_TOK(MINUS);\n                    NOVAL_TOK(DIVIDE);\n                    NOVAL_TOK(STAR);\n                    NOVAL_TOK(ASSIGN);\n                    NOVAL_TOK(COLON);\n                    NOVAL_TOK(SHIFTLEFT);\n                    NOVAL_TOK(SHIFTRIGHT);\n                    NOVAL_TOK(EQUAL);\n                    NOVAL_TOK(NOTEQUAL);\n                    NOVAL_TOK(AND);\n                    NOVAL_TOK(OR);\n                    NOVAL_TOK(XOR);\n                    NOVAL_TOK(COMPL);\n\n                    default:\n\n                        return RezParser::make_BADTOKEN(tok.get_value().c_str(), loc);\n                }\n\n            }\n        }\n    }\n    return RezParser::symbol_type(RezParser::token_type(0), yy::location());\n}\n"
  },
  {
    "path": "src/buildtools/Rez/RezLexerWaveToken.h",
    "content": "#ifndef REZLEXERWAVETOKEN_H\n#define REZLEXERWAVETOKEN_H\n\n#include \"RezLexer.h\"\n\n#include <boost/wave/cpplexer/cpp_lex_iterator.hpp>\n\nclass RezLexer::WaveToken : public boost::wave::cpplexer::lex_token<>\n{\npublic:\n    WaveToken() = default;\n    WaveToken(const boost::wave::cpplexer::lex_token<> & o) : boost::wave::cpplexer::lex_token<>(o) {}\n};\n\n#endif // REZLEXERWAVETOKEN_H\n"
  },
  {
    "path": "src/buildtools/Rez/RezParser.yy",
    "content": "%require \"3.0.2\"\n%defines\n%define parser_class_name {RezParser}\n%skeleton \"lalr1.cc\"\n\n%locations;\n\n%define api.token.constructor\n%define api.value.type variant\n%define parse.assert\n\n%token<std::string> IDENTIFIER;\n%token<int> CHARLIT;\n%token<std::string> STRINGLIT;\n%token<int> INTLIT;\n\n%token<std::string> BADTOKEN;\n\n\n%token LEFTBRACE \"{\";\n%token RIGHTBRACE \"}\";\n%token LEFTBRACKET \"[\";\n%token RIGHTBRACKET \"]\";\n%token LEFTPAREN \"(\";\n%token RIGHTPAREN \")\";\n%token SEMICOLON \";\";\n%token COMMA \",\";\n%token PLUS \"+\";\n%token MINUS \"-\";\n%token DIVIDE \"/\";\n%token STAR \"*\";\n%token ASSIGN \"=\";\n%token COLON \":\";\n%token SHIFTLEFT \"<<\";\n%token SHIFTRIGHT \">>\";\n%token EQUAL \"==\";\n%token NOTEQUAL \"!=\";\n%token AND \"&\";\n%token OR \"|\";\n%token XOR \"^\";\n%token COMPL \"~\";\n%token DOLLAR \"$\";\n\n%token TYPE \"type\";\n%token RESOURCE \"resource\";\n%token DATA \"data\";\n%token READ \"read\";\n%token INCLUDE \"include\";\n%token CHANGE \"change\";\n%token DELETE \"delete\";\n\n\n%token ARRAY \"array\";\n%token SWITCH \"switch\";\n%token CASE \"case\";\n%token AS \"as\";\n%token FILL \"fill\";\n%token ALIGN \"align\";\n%token HEX \"hex\";\n%token KEY \"key\";\n%token WIDE \"wide\";\n%token LITERAL \"literal\";\n%token UNSIGNED \"unsigned\";\n%token BINARY \"binary\";\n\n%token BOOLEAN \"boolean\";\n%token BIT \"bit\";\n%token NIBBLE \"nibble\";\n%token BYTE \"byte\";\n%token CHAR \"char\";\n%token WORD \"word\";\n%token INTEGER \"integer\";\n%token LONG \"long\";\n%token LONGINT \"longint\";\n%token PSTRING \"pstring\";\n%token WSTRING \"wstring\";\n%token STRING \"string\";\n%token POINT \"point\";\n%token RECT \"rect\";\n%token BITSTRING \"bitstring\";\n\n%token FUN_COUNTOF \"$$countof\";\n%token FUN_ARRAYINDEX \"$$arrayindex\";\n%token FUN_READ \"$$read\";\n%token FUN_BITFIELD \"$$bitfield\";\n%token FUN_WORD \"$$word\";\n%token FUN_BYTE \"$$byte\";\n%token FUN_LONG \"$$long\";\n\n/*\n%left \"|\";\n%left \"^\";\n%left \"&\";\n%left \"==\" \"!=\";\n%left \">>\" \"<<\";\n%left \"+\" \"-\";\n%left \"*\" \"/\";\n*/\n\n%param { RezLexer& lexer }\n%param { RezWorld& world }\n\n%code requires {\n\t#include \"ResourceDefinitions.h\"\n\t#include \"Expression.h\"\n\t#include \"ResSpec.h\"\n\n\t#define YY_NULLPTR nullptr\n\tclass RezLexer;\n\tclass RezWorld;\n}\n\n%code provides {\n\tusing yy::RezParser;\n\t//using RezSymbol = yy::RezParser::symbol_type;\n\n\tclass RezSymbol : public yy::RezParser::symbol_type\n\t{\n\tpublic:\n\t\tRezSymbol() = default;\n\t\tRezSymbol(yy::RezParser::symbol_type&& x) : yy::RezParser::symbol_type(std::move(x)) {}\n\t};\n}\n\n%code {\n\t#include \"RezLexer.h\"\n\t#include \"RezWorld.h\"\n\t#include \"ResourceCompiler.h\"\n\t#include \"Diagnostic.h\"\n\n\tstatic yy::RezParser::symbol_type yylex(RezLexer& lexer, RezWorld&)\n\t{\n\t\treturn lexer.nextToken();\n\t}\n\n\tvoid yy::RezParser::error(const location_type& loc, std::string const& err)\n\t{\n\t\tworld.problem(Diagnostic(Diagnostic::error, err, loc));\n\t}\n\n\tstatic std::string fromHex(std::string hex)\n\t{\n\t\tstd::string bin;\n\t\tint nibble;\n\t\tbool haveNibble = false;\n\t\tfor(std::string::iterator p = hex.begin(); p != hex.end(); ++p)\n\t\t{\n\t\t\tif(std::isspace(*p))\n\t\t\t\tcontinue;\n\t\t\tassert(isdigit(*p) || (tolower(*p) >= 'a' && tolower(*p) <= 'f'));\n\t\t\tint digit;\n\t\t\tif(isdigit(*p))\n\t\t\t\tdigit = *p - '0';\n\t\t\telse\n\t\t\t\tdigit = tolower(*p) - 'a' + 0xA;\n\n\t\t\tif(haveNibble)\n\t\t\t{\n\t\t\t\tbin += (char) ((nibble << 4) | digit);\n\t\t\t\thaveNibble = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tnibble = digit;\n\t\t\t\thaveNibble = true;\n\t\t\t}\n\t\t}\n\t\treturn bin;\n\t}\n\n}\n\n%%\n%start rez;\n\nrez\t: %empty\n\t| rez type_definition \";\"\n\t| rez resource \";\"\n\t| rez data \";\"\n\t;\n\ntype_definition\t: \"type\" type_spec\n\t\t\t\t\t{\n\t\t\t\t\t\tTypeDefinitionPtr td = std::make_shared<TypeDefinition>();\n\t\t\t\t\t\tworld.addTypeDefinition($type_spec, td);\n\t\t\t\t\t\tworld.fieldLists.push(td);\n\t\t\t\t\t}\n\t\t\t\t\"{\" field_definitions \"}\"\n\t\t\t\t{ world.fieldLists.pop(); if(world.verboseFlag) std::cout << \"TYPE \" << $2 << std::endl; }\n\t\t\t\t| \"type\" type_spec \"as\" type_spec\n\t\t\t\t{\n\t\t\t\t\tif(world.verboseFlag) std::cout << \"TYPE \" << $2 << std::endl;\n\t\t\t\t\tauto spec = $4;\n\t\t\t\t\tworld.addTypeDefinition($2, world.getTypeDefinition(spec.getType(), spec.getID(), @4));\n\t\t\t\t}\n\t\t\t\t;\n\n%type <ResType> res_type;\nres_type : CHARLIT { $$ = ResType($1); } ;\n\n%type <TypeSpec> type_spec;\ntype_spec : res_type { $$ = TypeSpec($res_type); }\n\t\t  | res_type \"(\" INTLIT \")\" { $$ = TypeSpec($res_type, $INTLIT); }\n\t\t  ;\n\nfield_definitions\t: %empty\n\t\t\t\t\t| field_definitions IDENTIFIER \":\"\t\t\t{ world.fieldLists.top()->addLabel($2, @2); }\n\t\t\t\t\t| field_definitions \";\"\n\t\t\t\t\t| field_definitions field_definition \";\"\t{ world.fieldLists.top()->addField($2, @2); }\n\t\t\t\t\t;\n\n%type <FieldPtr> field_definition;\nfield_definition: simple_field_definition\t{ $$ = $1; }\n\t\t\t\t| array_definition\t\t\t{ $$ = $1; }\n\t\t\t\t| switch_definition\t\t\t{ $$ = $1; }\n\t\t\t\t| fill_statement\t\t\t{ $$ = $1; }\n\t\t\t\t| align_statement\t\t\t{ $$ = $1; }\n\t\t\t\t;\n\n%type <SimpleFieldPtr> simple_field_definition;\nsimple_field_definition: field_attributes simpletype array_count_opt value_spec_opt\n\t{\n\t\t$$ = std::make_shared<SimpleField>();\n\t\t$$->attrs = $field_attributes;\n\t\t$$->type = $simpletype;\n\t\t$$->arrayCount = $array_count_opt;\n\t\t$$->value = $value_spec_opt;\n\t}\n\t| simple_field_definition IDENTIFIER\n\t{ $$ = $1; $$->addNamedValue($IDENTIFIER); }\n\t| simple_field_definition IDENTIFIER \"=\" value\n\t{ $$ = $1; $$->addNamedValue($IDENTIFIER, $value); }\n\t| simple_field_definition \",\" IDENTIFIER\n\t{ $$ = $1; $$->addNamedValue($IDENTIFIER); }\n\t| simple_field_definition \",\" IDENTIFIER \"=\" value\n\t{ $$ = $1; $$->addNamedValue($IDENTIFIER, $value); }\n\t;\n\n%type <ExprPtr> array_count array_count_opt value_spec_opt value resource_item;\n%type <ExprPtr> expression expression1 expression2 ;\n%type <ExprPtr> expression3 expression4 expression5 ;\n%type <ExprPtr> expression6 expression7 expression8;\n\nvalue_spec_opt\t: %empty { $$ = nullptr; } | \"=\" value { $$ = $2; } ;\n\n%type <SimpleField::Type> simpletype;\nsimpletype\t: \"boolean\"\t\t{ $$ = SimpleField::Type::boolean; }\n\t\t\t| \"byte\"\t\t{ $$ = SimpleField::Type::byte; }\n\t\t\t| \"integer\"\t\t{ $$ = SimpleField::Type::integer; }\n\t\t\t| \"longint\"\t\t{ $$ = SimpleField::Type::longint; }\n\t\t\t| \"rect\"\t\t{ $$ = SimpleField::Type::rect; }\n\t\t\t| \"point\"\t\t{ $$ = SimpleField::Type::point; }\n\t\t\t| \"char\"\t\t{ $$ = SimpleField::Type::char_; }\n\t\t\t| \"pstring\" \t{ $$ = SimpleField::Type::pstring; }\n\t\t\t| \"wstring\"\t\t{ $$ = SimpleField::Type::wstring; }\n\t\t\t| \"string\"\t\t{ $$ = SimpleField::Type::string; }\n\t\t\t| \"bitstring\"\t{ $$ = SimpleField::Type::bitstring; }\n\t\t\t;\n\n%type <FieldPtr> fill_statement align_statement;\nfill_statement\t: \"fill\" fill_unit array_count_opt\n\t\t\t\t{ $$ = std::make_shared<FillAlignField>($fill_unit, false, $array_count_opt); }\n\t\t\t\t;\nalign_statement\t: \"align\" fill_unit\n\t\t\t\t{ $$ = std::make_shared<FillAlignField>($fill_unit, true); }\n\t\t\t\t;\n\n%type <FillAlignField::Type> fill_unit;\nfill_unit\t: \"bit\"\t\t{ $$ = FillAlignField::Type::bit; }\n\t\t\t| \"nibble\"\t{ $$ = FillAlignField::Type::nibble; }\n\t\t\t| \"byte\"\t{ $$ = FillAlignField::Type::byte; }\n\t\t\t| \"word\"\t{ $$ = FillAlignField::Type::word; }\n\t\t\t| \"long\"\t{ $$ = FillAlignField::Type::long_; }\n\t\t\t;\n\n%type <FieldPtr> array_definition;\narray_definition:\n\tarray_attributes \"array\" array_name_opt array_count_opt\n\t{\n\t\tArrayFieldPtr af = std::make_shared<ArrayField>($array_name_opt, $array_count_opt);\n\t\tworld.fieldLists.push(af);\n\t}\n\t\"{\" field_definitions \"}\"\n\t{\n\t\t$$ = world.fieldLists.top();\n\t\tworld.fieldLists.pop();\n\t}\n\t;\n\narray_count : \"[\" expression \"]\" { $$ = $2; }\narray_count_opt : %empty { $$ = nullptr; } | array_count { $$ = $1; };\n\n%type <std::string> array_name_opt;\narray_name_opt : %empty { $$ = \"\"; } | IDENTIFIER { $$ = $1; } ;\n\narray_attributes: %empty | \"wide\" ;\n\n%type <SimpleField::Attrs> field_attributes field_attribute;\nfield_attributes: %empty { $$ = SimpleField::Attrs::none; }\n\t\t\t\t| field_attributes field_attribute { $$ = $1 | $2; }\n\t\t\t\t;\n\nfield_attribute : \"hex\"\t\t\t{ $$ = SimpleField::Attrs::hex; }\n\t\t\t\t| \"key\"\t\t\t{ $$ = SimpleField::Attrs::key; }\n\t\t\t\t| \"unsigned\"\t{ $$ = SimpleField::Attrs::unsigned_; }\n\t\t\t\t| \"literal\"\t\t{ $$ = SimpleField::Attrs::literal; }\n                | \"binary\"      { $$ = SimpleField::Attrs::binary; }\n\t\t\t\t;\n\n%type <FieldPtr> switch_definition;\nswitch_definition:\n\t\"switch\"\n\t\t{ world.switches.push(std::make_shared<SwitchField>()); }\n\t\"{\"\n\t\tswitch_cases\n\t\"}\"\n\t\t{\n\t\t\t$$ = world.switches.top();\n\t\t\tworld.switches.pop();\n\t\t}\n\t;\n\nswitch_cases : %empty | switch_cases switch_case ;\n\nswitch_case : \"case\" IDENTIFIER \":\"\n\t{\n\t\tworld.fieldLists.push(std::make_shared<FieldList>());\n\t}\n\tfield_definitions\n\t{\n\t\tworld.switches.top()->addCase($IDENTIFIER, world.fieldLists.top());\n\t\tworld.fieldLists.pop();\n\t}\n\t;\n\n\nvalue\t: expression\t{ $$ = $1; }\n\t\t| \"{\" resource_body \"}\"\t{ $$ = $2; }\n\t\t| string_expression { $$ = $1; }\n\t\t;\n\nexpression\t: expression1\t{ $$ = $1; }\n\t\t\t| expression \"^\" expression1\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::XOR, $1, $3, @1); }\n\t\t\t;\n\nexpression1\t: expression2\t{ $$ = $1; }\n\t\t\t| expression1 \"&\" expression2\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::AND, $1, $3, @1); }\n\t\t\t;\n\nexpression2 : expression3\t{ $$ = $1; }\n\t\t\t| expression2 \"|\" expression3\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::OR, $1, $3, @1); }\n\t\t\t;\n\nexpression3 : expression4\t{ $$ = $1; }\n\t\t\t| expression3 \"==\" expression4\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::EQUAL, $1, $3, @1); }\n\t\t\t| expression3 \"!=\" expression4\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::NOTEQUAL, $1, $3, @1); }\n\t\t\t;\n\nexpression4 : expression5\t{ $$ = $1; }\n\t\t\t| expression4 \">>\" expression5\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::SHIFTRIGHT, $1, $3, @1); }\n\t\t\t| expression4 \"<<\" expression5\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::SHIFTLEFT, $1, $3, @1); }\n\t\t\t;\n\nexpression5 : expression6\t{ $$ = $1; }\n\t\t\t| expression5 \"+\" expression6\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::PLUS, $1, $3, @1); }\n\t\t\t| expression5 \"-\" expression6\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::MINUS, $1, $3, @1); }\n\t\t\t;\n\nexpression6 : expression7\t{ $$ = $1; }\n\t\t\t| expression6 \"*\" expression7\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::MULTIPLY, $1, $3, @1); }\n\t\t\t| expression6 \"/\" expression7\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::DIVIDE, $1, $3, @1); }\n\t\t\t;\nexpression7\t: expression8\t\t{ $$ = $1; }\n\t\t\t| \"-\" expression7\t{ $$ = std::make_shared<UnaryExpr>(UnaryOp::MINUS, $2, @1); }\n\t\t\t| \"+\" expression7\t{ $$ = $2; }\n\t\t\t| \"~\" expression7\t{ $$ = std::make_shared<UnaryExpr>(UnaryOp::COMPLEMENT, $2, @1); }\n\t\t\t;\n\nexpression8\t: INTLIT\t{ $$ = std::make_shared<IntExpr>($1, @1); }\n\t\t\t| CHARLIT\t{ $$ = std::make_shared<IntExpr>($1, @1); }\n\n\t\t\t| identifier_expression\t{ $$ = $1; }\n\t\t\t| \"(\" expression \")\"\t{ $$ = $2; }\n\n\t\t\t| \"$$countof\" \"(\" identifier_expression \")\"\n\t\t\t\t{ $$ = std::make_shared<CountOfExpr>($identifier_expression, @1); }\n\t\t\t| \"$$arrayindex\" \"(\" identifier_expression \")\"\n\t\t\t\t{ $$ = std::make_shared<ArrayIndexExpr>($identifier_expression, @1); }\n\t\t\t| \"$$bitfield\" \"(\" expression \",\" expression \",\" expression \")\"\n\t\t\t\t{ $$ = std::make_shared<PeekExpr>($3, $5, $7, @1); }\n\t\t\t| \"$$word\" \"(\" expression \")\"\n\t\t\t\t{ $$ = std::make_shared<PeekExpr>($3, 16, @1); }\n\t\t\t| \"$$byte\" \"(\" expression \")\"\n\t\t\t\t{ $$ = std::make_shared<PeekExpr>($3, 8, @1); }\n\t\t\t| \"$$long\" \"(\" expression \")\"\n\t\t\t\t{ $$ = std::make_shared<PeekExpr>($3, 32, @1); }\n\t\t\t;\n\n%type <IdentifierExprPtr> identifier_expression;\nidentifier_expression\t: IDENTIFIER\t{ $$ = std::make_shared<IdentifierExpr>($1, @1); }\n\t\t\t\t\t\t| IDENTIFIER\n\t\t\t\t\t\t\t{ world.functionCalls.push(std::make_shared<IdentifierExpr>($1, @1)); }\n\t\t\t\t\t\t\t\"[\" function_argument_list1 \"]\"\n\t\t\t\t\t\t\t{ $$ = world.functionCalls.top(); world.functionCalls.pop(); }\n\t\t\t\t\t\t;\n\nfunction_argument_list : %empty | function_argument_list1 ;\nfunction_argument_list1 : expression\n\t\t\t\t\t\t\t{ world.functionCalls.top()->addArgument($expression); }\n\t\t\t\t\t\t| function_argument_list \",\" expression\n\t\t\t\t\t\t\t{ world.functionCalls.top()->addArgument($expression); }\n\t\t\t\t\t\t;\n\n%type <ExprPtr> string_expression string_expression1;\nstring_expression\t: string_expression1\t{ $$ = $1; }\n\t\t\t\t\t| string_expression string_expression1\n\t\t\t\t\t\t{ $$ = std::make_shared<BinaryExpr>(BinaryOp::CONCAT, $1, $2, @1); }\n\t\t\t\t\t;\n\n%type <std::string> stringlit;\nstringlit\t: STRINGLIT { $$ = $1; }\n\t\t\t| DOLLAR STRINGLIT { $$ = fromHex($2); }\n\t\t\t;\n\nstring_expression1\t:\tstringlit\t{ $$ = std::make_shared<StringExpr>($1, @1); }\n\t\t\t\t\t|\t\"$$read\" \"(\" string_expression \")\"\n\t\t\t\t\t\t{ $$ = std::make_shared<ReadExpr>($string_expression, @1); }\n\t\t\t\t\t;\n\nresource\t: \"resource\" res_spec \"{\" resource_body \"}\"\n\t\t\t{\n\t\t\t\tworld.addResource($res_spec, $resource_body, @1);\n\t\t\t}\n\t\t\t;\n\n%type <ResSpec> res_spec;\n%type <ResSpec> resource_attributes;\n\nres_spec : res_type \"(\" expression resource_attributes \")\"\n\t\t\t{\n\t\t\t\t$$ = $resource_attributes;\n\t\t\t\t$$.type() = $res_type;\n\t\t\t\t$$.id() = $expression->evaluateInt(nullptr);\n\t\t\t}\n\t\t\t;\n\nresource_attributes\t: %empty { $$ = ResSpec(); }\n\t\t\t\t\t| resource_attributes \",\" IDENTIFIER\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$$ = $1;\n\t\t\t\t\t\t\tif($IDENTIFIER == \"changed\")\n\t\t\t\t\t\t\t\t$$.attr() |= 2;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"preload\")\n\t\t\t\t\t\t\t\t$$.attr() |= 4;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"protected\")\n\t\t\t\t\t\t\t\t$$.attr() |= 8;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"locked\")\n\t\t\t\t\t\t\t\t$$.attr() |= 16;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"purgeable\")\n\t\t\t\t\t\t\t\t$$.attr() |= 32;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"sysheap\")\n\t\t\t\t\t\t\t\t$$.attr() |= 64;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"unchanged\")\n\t\t\t\t\t\t\t\t$$.attr() &= ~2;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"nonpreload\")\n\t\t\t\t\t\t\t\t$$.attr() &= ~4;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"unprotected\")\n\t\t\t\t\t\t\t\t$$.attr() &= ~8;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"unlocked\")\n\t\t\t\t\t\t\t\t$$.attr() &= ~16;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"nonpurgeable\")\n\t\t\t\t\t\t\t\t$$.attr() &= ~32;\n\t\t\t\t\t\t\telse if($IDENTIFIER == \"appheap\")\n\t\t\t\t\t\t\t\t$$.attr() &= ~64;\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tworld.problem(Diagnostic(Diagnostic::error, \"illegal attribute \" + $IDENTIFIER, @1));\n\t\t\t\t\t\t}\n\t\t\t\t\t| resource_attributes \",\" string_expression\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t$$ = $1;\n\t\t\t\t\t\t\t$$.name() = $3->evaluateString(nullptr);\n\t\t\t\t\t\t}\n\t\t\t\t\t;\n\n\n\n%type <CompoundExprPtr> resource_body resource_body1;\nresource_body\t: %empty { $$ = std::make_shared<CompoundExpr>(yy::location()); }\n\t\t\t\t| resource_body1 { $$ = $1; $$->location = @1; }\n\t\t\t\t;\nresource_body1\t: resource_item\t{ $$ = std::make_shared<CompoundExpr>(@1); $$->addItem($1); }\n\t\t\t\t| resource_body1 \",\" resource_item\t{ $$ = $1; $$->addItem($3); }\n\t\t\t\t| resource_body1 \";\" resource_item\t{ $$ = $1; $$->addItem($3); }\n\t\t\t\t| resource_body1 \";\" { $$ = $1; }\n\t\t\t\t| resource_body1 \",\" { $$ = $1; }\n\t\t\t\t;\n\nresource_item\t: value { $$ = $1; }\n\t\t\t\t| IDENTIFIER \"{\" resource_body \"}\" { $$ = std::make_shared<CaseExpr>($IDENTIFIER, $resource_body, @1); }\n\t\t\t\t;\n\n\ndata : \"data\" res_spec \"{\" string_expression \"}\"\n{\n\tworld.addData($res_spec, $string_expression->evaluateString(nullptr), @1);\n}\n;\n\n%%\n"
  },
  {
    "path": "src/buildtools/Rez/RezWorld.cc",
    "content": "#include \"RezWorld.h\"\n#include \"ResourceCompiler.h\"\n#include \"ResourceFork.h\"\n\n#include <iostream>\n\n#include \"Diagnostic.h\"\n\nRezWorld::RezWorld()\n    : verboseFlag(false), hadErrors(false)\n{\n}\n\nvoid RezWorld::addTypeDefinition(TypeSpec spec, TypeDefinitionPtr type)\n{\n    if(!type)\n        return;\n    types[spec] = type;\n}\n\nTypeDefinitionPtr RezWorld::getTypeDefinition(ResType type, int id, yy::location loc)\n{\n    auto p = types.find(TypeSpec(type, id));\n    if(p != types.end())\n        return p->second;\n    p = types.find(TypeSpec(type));\n    if(p != types.end())\n        return p->second;\n    problem(Diagnostic(Diagnostic::Severity::error, \"Can't find type definition for '\" + std::string(type) + \"'\", loc));\n\n    return nullptr;\n}\n\nvoid RezWorld::addResource(ResSpec spec, CompoundExprPtr body, yy::location loc)\n{\n    if(verboseFlag)\n        std::cout << \"RESOURCE \" << spec.type() << \"(\" << spec.id() << \", \" << \"\\\"\" << spec.name() << \"\\\"\" << spec.attr() << \")\" << std::endl;\n    TypeDefinitionPtr def = getTypeDefinition(spec.type(), spec.id(), loc);\n    if(!def)\n        return;\n    ResourceCompiler compiler(*this, def, body, verboseFlag);\n    compiler.compile();\n\n    resources.addResource(Resource(spec.type(), spec.id(), compiler.resourceData(), spec.name(), spec.attr()));\n}\n\nvoid RezWorld::addData(ResSpec spec, const std::string &data, yy::location loc)\n{\n    if(verboseFlag)\n        std::cout << \"DATA \" << spec.type() << \"(\" << spec.id() << \", \" << \"\\\"\" << spec.name() << \"\\\"\" << spec.attr() << \")\" << std::endl;\n    resources.addResource(Resource(spec.type(), spec.id(), data, spec.name(), spec.attr()));\n}\n\nvoid RezWorld::problem(Diagnostic d)\n{\n    hadErrors = true;\n    std::cerr << d << std::endl;\n}\n"
  },
  {
    "path": "src/buildtools/Rez/RezWorld.h",
    "content": "#ifndef REZWORLD_H\n#define REZWORLD_H\n\n#include <map>\n#include <stack>\n#include <string>\n#include \"ResourceDefinitions.h\"\n#include \"Expression.h\"\n#include \"ResourceFork.h\"\n#include \"ResSpec.h\"\n\nclass Diagnostic;\n\nclass RezWorld\n{\n    friend class RezParser;\n\n    std::map<TypeSpec, TypeDefinitionPtr>    types;\n    std::stack<FieldListPtr> fieldLists;\n    std::stack<IdentifierExprPtr> functionCalls;\n    std::stack<SwitchFieldPtr> switches;\n\n    Resources resources;\n\npublic:\n    RezWorld();\n    void addTypeDefinition(TypeSpec spec, TypeDefinitionPtr type);\n\n    TypeDefinitionPtr getTypeDefinition(ResType type, int id, yy::location loc);\n\n    void addResource(ResSpec spec, CompoundExprPtr body, yy::location loc);\n    void addData(ResSpec spec, const std::string& data, yy::location loc);\n\n    Resources& getResources() { return resources; }\n\n    bool verboseFlag;\n    bool hadErrors;\n\n    void problem(Diagnostic d);\n};\n\n\n#endif // REZWORLD_H\n"
  },
  {
    "path": "src/buildtools/Rez/Test.r",
    "content": "/*#include \"Types.r\"\n\n\n*/\n\n#include \"/home/wolfgang/Projects/Retro68/CExamples/Sample.r\"\n\ntype 'TEST' {\n\tinteger zero, one, two, answer = 42, missed;\n\tlongint;\n\tinteger = (after - before) / 8;\n\tinteger = $$CountOf(foo);\n\tbefore:\n\tarray foo {\n\t\tinteger = $$ArrayIndex(foo);\n\t\tinteger;\n\t\tinteger;\n\t};\n\tstring;\n\tafter:\n\t;\n};\n\nresource 'TEST' (128) {\n\tanswer,\n\t0x1234,\n\t{ 1, 2; 3, 4; },\n\t\"Hello, \"\n\t\"world: \"\n\t$\"Abcd 1234\";\n};\n\n\n"
  },
  {
    "path": "src/buildtools/elfdep.c",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2018-2020 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include <stdio.h>\n#include <unistd.h>\n#include <fcntl.h>\n#include <sys/mman.h>\n#include <stdint.h>\n#include <stdbool.h>\n#include <stdlib.h>\n#include <mach-o/loader.h>\n#include <mach-o/fat.h>\n#include <string.h>\n#include <errno.h>\n\nbool printElfdepAny(const void* mem);\nbool printElfdepMH(const struct mach_header* mhdr);\nbool printElfdepMH64(const struct mach_header_64* mhdr);\nbool printFat(const struct fat_header* fhdr);\nbool printTaf(const struct fat_header* fhdr);\n\nint main(int argc, const char** argv)\n{\n\tif (argc != 2)\n\t{\n\t\tfprintf(stderr, \"elfdep: Prints the ELF dependency (SONAME) of a Mach-O file, if any\\n\");\n\t\tfprintf(stderr, \"Usage: elfdep <macho-file>\\n\");\n\t\treturn EXIT_FAILURE;\n\t}\n\n\tint fd = open(argv[1], O_RDONLY);\n\tif (fd == -1)\n\t{\n\t\tfprintf(stderr, \"Cannot open %s: %s\", argv[1], strerror(errno));\n\t\treturn EXIT_FAILURE;\n\t}\n\n\tsize_t length = lseek(fd, 0, SEEK_END);\n\n\tvoid* mem = mmap(NULL, length, PROT_READ, MAP_SHARED, fd, 0);\n\tif (mem == MAP_FAILED)\n\t{\n\t\tperror(\"mmap\");\n\t\treturn EXIT_FAILURE;\n\t}\n\n\tclose(fd);\n\n\tprintElfdepAny(mem);\n\n\tmunmap(mem, length);\n\n\treturn EXIT_SUCCESS;\n}\n\nbool printElfdepAny(const void* mem)\n{\n\tconst struct mach_header* mhdr = (struct mach_header*) mem;\n\n\tif (mhdr->magic == MH_MAGIC)\n\t\treturn printElfdepMH(mhdr);\n\telse if (mhdr->magic == MH_MAGIC_64)\n\t\treturn printElfdepMH64((struct mach_header_64*) mhdr);\n\telse if (mhdr->magic == FAT_MAGIC)\n\t\treturn printFat((struct fat_header*) mhdr);\n\telse if (mhdr->magic == FAT_CIGAM)\n\t\treturn printTaf((struct fat_header*) mhdr);\n\telse\n\t{\n\t\tfprintf(stderr, \"File format not recognized\\n\");\n\t\texit(1);\n\t}\n}\n\nbool printElfdep(const struct load_command* lc, const void* base)\n{\n\tif (lc->cmd == LC_SEGMENT)\n\t{\n\t\tconst struct segment_command* sc = (const struct segment_command*) lc;\n\n\t\tif (strcmp(sc->segname, \"__TEXT\") == 0)\n\t\t{\n\t\t\tconst struct section* sect = (const struct section*)(sc+1);\n\t\t\tfor (int i = 0; i < sc->nsects; i++)\n\t\t\t{\n\t\t\t\tif (strcmp(sect->sectname, \"__elfname\") == 0)\n\t\t\t\t{\n\t\t\t\t\tprintf(\"%s\\n\", ((const char*)base) + sect->offset);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tsect++;\n\t\t\t}\n\t\t}\n\t}\n\telse if (lc->cmd == LC_SEGMENT_64)\n\t{\n\t\tconst struct segment_command_64* sc = (const struct segment_command_64*) lc;\n\n\t\tif (strcmp(sc->segname, \"__TEXT\") == 0)\n\t\t{\n\t\t\tconst struct section_64* sect = (const struct section_64*)(sc+1);\n\t\t\tfor (int i = 0; i < sc->nsects; i++)\n\t\t\t{\n\t\t\t\tif (strcmp(sect->sectname, \"__elfname\") == 0)\n\t\t\t\t{\n\t\t\t\t\tprintf(\"%s\\n\", ((const char*)base) + sect->offset);\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tsect++;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}\n\nbool printElfdepMH(const struct mach_header* mhdr)\n{\n\tconst uint8_t* command = (const uint8_t*)(mhdr + 1);\n\tfor (uint32_t i = 0; i < mhdr->ncmds; i++)\n\t{\n\t\tif (printElfdep((const struct load_command*) command, mhdr))\n\t\t\treturn true;\n\t\telse\n\t\t\tcommand += ((const struct load_command*)command)->cmdsize;\n\t}\n\treturn false;\n}\n\nbool printElfdepMH64(const struct mach_header_64* mhdr)\n{\n\tconst uint8_t* command = (const uint8_t*)(mhdr + 1);\n\tfor (uint32_t i = 0; i < mhdr->ncmds; i++)\n\t{\n\t\tif (printElfdep((const struct load_command*) command, mhdr))\n\t\t\treturn true;\n\t\telse\n\t\t\tcommand += ((const struct load_command*)command)->cmdsize;\n\t}\n\treturn false;\n}\n\nbool printFat(const struct fat_header* fhdr)\n{\n\tconst struct fat_arch* fa = ((const struct fat_arch*) (fhdr+1));\n\n\tfor (uint32_t i = 0; i < fhdr->nfat_arch; i++)\n\t{\n\t\tif (printElfdepAny(((char*) fhdr) + fa[i].offset))\n\t\t\treturn true;\n\t}\n\n\treturn false;\n}\n\nbool printTaf(const struct fat_header* fhdr)\n{\n\tconst struct fat_arch* fa = ((const struct fat_arch*) (fhdr+1));\n\n\tfor (uint32_t i = 0; i < __builtin_bswap32(fhdr->nfat_arch); i++)\n\t{\n\t\tif (printElfdepAny(((char*) fhdr) + __builtin_bswap32(fa[i].offset)))\n\t\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n"
  },
  {
    "path": "src/buildtools/getuuid.c",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2018 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n#include <stdio.h>\n#include <unistd.h>\n#include <fcntl.h>\n#include <sys/mman.h>\n#include <stdint.h>\n#include <stdbool.h>\n#include <stdlib.h>\n#include <mach-o/loader.h>\n#include <mach-o/fat.h>\n#include <string.h>\n#include <errno.h>\n\nbool printUuidAny(const void* mem);\nbool printUuidMH(const struct mach_header* mhdr);\nbool printUuidMH64(const struct mach_header_64* mhdr);\nbool printFat(const struct fat_header* fhdr);\nbool printTaf(const struct fat_header* fhdr);\n\nint main(int argc, const char** argv)\n{\n\tif (argc != 2)\n\t{\n\t\tfprintf(stderr, \"getuuid: Prints the UUID(s) of a Mach-O file, separated by semicolons (in case of fat files)\\n\");\n\t\tfprintf(stderr, \"Usage: getuuid <macho-file>\\n\");\n\t\treturn EXIT_FAILURE;\n\t}\n\n\tint fd = open(argv[1], O_RDONLY);\n\tif (fd == -1)\n\t{\n\t\tfprintf(stderr, \"Cannot open %s: %s\", argv[1], strerror(errno));\n\t\treturn EXIT_FAILURE;\n\t}\n\n\tsize_t length = lseek(fd, 0, SEEK_END);\n\n\tvoid* mem = mmap(NULL, length, PROT_READ, MAP_SHARED, fd, 0);\n\tif (mem == MAP_FAILED)\n\t{\n\t\tperror(\"mmap\");\n\t\treturn EXIT_FAILURE;\n\t}\n\n\tclose(fd);\n\n\tint rv = EXIT_FAILURE;\n\n\tif (printUuidAny(mem))\n\t\trv = EXIT_SUCCESS;\n\n\tmunmap(mem, length);\n\n\treturn rv;\n}\n\nbool printUuidAny(const void* mem)\n{\n\tconst struct mach_header* mhdr = (struct mach_header*) mem;\n\n\tif (mhdr->magic == MH_MAGIC)\n\t\treturn printUuidMH(mhdr);\n\telse if (mhdr->magic == MH_MAGIC_64)\n\t\treturn printUuidMH64((struct mach_header_64*) mhdr);\n\telse if (mhdr->magic == FAT_MAGIC)\n\t\treturn printFat((struct fat_header*) mhdr);\n\telse if (mhdr->magic == FAT_CIGAM)\n\t\treturn printTaf((struct fat_header*) mhdr);\n\telse\n\t{\n\t\tfprintf(stderr, \"File format not recognized\\n\");\n\t\texit(1);\n\t}\n}\n\nbool printUuid(const struct load_command* lc)\n{\n\tstatic bool hadUuid = false;\n\tif (lc->cmd == LC_UUID)\n\t{\n\t\tconst struct uuid_command* uuid = (const struct uuid_command*) lc;\n\n\t\tif (hadUuid)\n\t\t\tputchar(';');\n\n\t\tprintf(\"%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X\",\n\t\t\t\tuuid->uuid[0],\n\t\t\t\tuuid->uuid[1],\n\t\t\t\tuuid->uuid[2],\n\t\t\t\tuuid->uuid[3],\n\t\t\t\tuuid->uuid[4],\n\t\t\t\tuuid->uuid[5],\n\t\t\t\tuuid->uuid[6],\n\t\t\t\tuuid->uuid[7],\n\t\t\t\tuuid->uuid[8],\n\t\t\t\tuuid->uuid[9],\n\t\t\t\tuuid->uuid[10],\n\t\t\t\tuuid->uuid[11],\n\t\t\t\tuuid->uuid[12],\n\t\t\t\tuuid->uuid[13],\n\t\t\t\tuuid->uuid[14],\n\t\t\t\tuuid->uuid[15]);\n\n\t\thadUuid = true;\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nbool printUuidMH(const struct mach_header* mhdr)\n{\n\tconst uint8_t* command = (const uint8_t*)(mhdr + 1);\n\tfor (uint32_t i = 0; i < mhdr->ncmds; i++)\n\t{\n\t\tif (printUuid((const struct load_command*) command))\n\t\t\treturn true;\n\t\telse\n\t\t\tcommand += ((const struct load_command*)command)->cmdsize;\n\t}\n\treturn false;\n}\n\nbool printUuidMH64(const struct mach_header_64* mhdr)\n{\n\tconst uint8_t* command = (const uint8_t*)(mhdr + 1);\n\tfor (uint32_t i = 0; i < mhdr->ncmds; i++)\n\t{\n\t\tif (printUuid((const struct load_command*) command))\n\t\t\treturn true;\n\t\telse\n\t\t\tcommand += ((const struct load_command*)command)->cmdsize;\n\t}\n\treturn false;\n}\n\nbool printFat(const struct fat_header* fhdr)\n{\n\tconst struct fat_arch* fa = ((const struct fat_arch*) (fhdr+1));\n\tbool rv = false;\n\n\tfor (uint32_t i = 0; i < fhdr->nfat_arch; i++)\n\t\trv |= printUuidAny(((char*) fhdr) + fa[i].offset);\n\n\treturn rv;\n}\n\nbool printTaf(const struct fat_header* fhdr)\n{\n\tconst struct fat_arch* fa = ((const struct fat_arch*) (fhdr+1));\n\tbool rv = false;\n\n\tfor (uint32_t i = 0; i < __builtin_bswap32(fhdr->nfat_arch); i++)\n\t\trv |= printUuidAny(((char*) fhdr) + __builtin_bswap32(fa[i].offset));\n\n\treturn rv;\n}\n\n"
  },
  {
    "path": "src/clt/CMakeLists.txt",
    "content": "project(clt)\n\nset(CLT_ROOT libexec/darling/Library/Developer/DarlingCLT)\n\ninstall(DIRECTORY DESTINATION ${CLT_ROOT})\n\nadd_definitions(-DDEBUG)\n\nadd_darling_executable(xcrun_clt xcrun.c)\nset_target_properties(xcrun_clt PROPERTIES OUTPUT_NAME xcrun)\ninstall(TARGETS xcrun_clt DESTINATION ${CLT_ROOT}/usr/bin)\n"
  },
  {
    "path": "src/clt/xcrun.c",
    "content": "#include <stdio.h>\n#include <string.h>\n#include <stdlib.h>\n#include <unistd.h>\n\nint main(int argc, char** argv)\n{\n#if DEBUG\n\tprintf(\"Invoked with:\");\n\tfor (int i = 0; i < argc; i++)\n\t{\n\t\tprintf(\" %s\", argv[i]);\n\t}\n\tprintf(\"\\n\");\n#endif\n\tconst int prefixLength = strlen(argv[0])-strlen(\"xcrun\"); \n\tchar *toolPath = calloc(prefixLength+strlen(argv[1]), sizeof(char));\n\tstrncpy(toolPath, argv[0], prefixLength);\n\tstrcpy(toolPath+prefixLength, argv[1]);\n\t\n#if DEBUG\n\tprintf(\"Executing %s\\n\", toolPath);\n#endif\n\n\targv++;\n\targv[0] = toolPath;\n\n\texecvp(argv[0], argv);\n\t\n\tprintf(\"Failed to execute program %s\\n\", argv[0]);\n\n\treturn 1;\n}\n"
  },
  {
    "path": "src/crash/AppController.h",
    "content": "/* \n   Project: crash\n\n   Author: lubos\n\n   Created: 2012-11-06 15:43:05 +0100 by lubos\n   \n   Application Controller\n*/\n \n#ifndef _PCAPPPROJ_APPCONTROLLER_H\n#define _PCAPPPROJ_APPCONTROLLER_H\n\n#import <AppKit/AppKit.h>\n// Uncomment if your application is Renaissance-based\n//#import <Renaissance/Renaissance.h>\n\n@interface AppController : NSObject\n{\n}\n\n+ (void)  initialize;\n\n- (id) init;\n- (void) dealloc;\n\n- (void) awakeFromNib;\n\n- (void) applicationDidFinishLaunching: (NSNotification *)aNotif;\n- (BOOL) applicationShouldTerminate: (id)sender;\n- (void) applicationWillTerminate: (NSNotification *)aNotif;\n- (BOOL) application: (NSApplication *)application\n\t    openFile: (NSString *)fileName;\n\n- (void) showPrefPanel: (id)sender;\n\n@end\n\n#endif\n"
  },
  {
    "path": "src/crash/AppController.m",
    "content": "/* \n   Project: crash\n\n   Author: lubos\n\n   Created: 2012-11-06 15:43:05 +0100 by lubos\n   \n   Application Controller\n*/\n\n#import \"AppController.h\"\n\n@implementation AppController\n\n+ (void) initialize\n{\n  NSMutableDictionary *defaults = [NSMutableDictionary dictionary];\n\n  /*\n   * Register your app's defaults here by adding objects to the\n   * dictionary, eg\n   *\n   * [defaults setObject:anObject forKey:keyForThatObject];\n   *\n   */\n  \n  [[NSUserDefaults standardUserDefaults] registerDefaults: defaults];\n  [[NSUserDefaults standardUserDefaults] synchronize];\n}\n\n- (id) init\n{\n  if ((self = [super init]))\n    {\n    }\n  return self;\n}\n\n- (void) dealloc\n{\n  [super dealloc];\n}\n\n- (void) awakeFromNib\n{\n}\n\n- (void) applicationDidFinishLaunching: (NSNotification *)aNotif\n{\n// Uncomment if your application is Renaissance-based\n//  [NSBundle loadGSMarkupNamed: @\"Main\" owner: self];\n}\n\n- (BOOL) applicationShouldTerminate: (id)sender\n{\n  return YES;\n}\n\n- (void) applicationWillTerminate: (NSNotification *)aNotif\n{\n}\n\n- (BOOL) application: (NSApplication *)application\n\t    openFile: (NSString *)fileName\n{\n  return NO;\n}\n\n- (void) showPrefPanel: (id)sender\n{\n}\n\n@end\n"
  },
  {
    "path": "src/crash/CMakeLists.txt",
    "content": "project(crash)\n\ncmake_minimum_required(VERSION 3.13)\nif(COMMAND cmake_policy)\n\tcmake_policy(SET CMP0003 NEW)\nendif(COMMAND cmake_policy)\n\n#if (NOT \"${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}\" MATCHES \".*clang\")\n#\tmessage(FATAL_ERROR \"Clang is the only supported compiler.\")\n#endif (NOT \"${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}\" MATCHES \".*clang\")\n\n# CMake is broken and uses C++ flags for ObjC\nset(CMAKE_CXX_FLAGS \"${CMAKE_C_FLAGS}\")\n\nset(crash_SRCS\n\tAppController.m\n\tCrashManager.m\n\tcrash_main.m\n)\n\nadd_executable(crash ${crash_SRCS})\ntarget_link_libraries(crash -lgnustep-base -lgnustep-gui ${GNUSTEP_OBJC_CFLAGS})\n\ninstall(TARGETS crash DESTINATION \"libexec/darling/crash.app/\")\n\ninstall(FILES \"${CMAKE_CURRENT_SOURCE_DIR}/Resources/Main.gsmarkup\"\n\t\"${CMAKE_CURRENT_SOURCE_DIR}/Resources/Info-gnustep.plist\"\n\tDESTINATION \"libexec/darling/crash.app/Resources/\")\n\nFILE( GLOB gorm ${CMAKE_CURRENT_SOURCE_DIR}/Resources/crash.gorm/* )\ninstall(FILES ${gorm} DESTINATION\n\t\"libexec/darling/crash.app/Resources/crash.gorm/\")\n\n"
  },
  {
    "path": "src/crash/CrashManager.h",
    "content": "#include <AppKit/AppKit.h>\n\n@interface CrashManager : NSObject\n{\n\tid descriptionLabel;\n\tNSString* executablePath;\n\tNSString* commandLine;\n\tNSString* shortDescription;\n\tNSString* fullLog;\n}\n- (void) close: (id)sender;\n- (void) debugInfo: (id)sender;\n- (void) reopen: (id)sender;\n- (id)   init;\n@end\n"
  },
  {
    "path": "src/crash/CrashManager.m",
    "content": "#include <AppKit/AppKit.h>\n#include <Foundation/NSProcessInfo.h>\n#include <Foundation/NSArray.h>\n#include <Foundation/NSString.h>\n#include <Foundation/NSFileManager.h>\n#include \"CrashManager.h\"\n\n@implementation CrashManager\n\n\n- (void) close: (id)sender\n{\n\t[NSApp terminate: nil];\n}\n\n\n- (void) debugInfo: (id)sender\n{\n  /* insert your code here */\n}\n\n\n- (void) reopen: (id)sender\n{\n  /* insert your code here */\n}\n\n- (id) init\n{\n\tself = [super init];\n\n\tNSArray* args = [[NSProcessInfo processInfo] arguments];\n\tif ([args count] == 2)\n\t{\n\t\tNSString* dumpPath = [args objectAtIndex: 1];\n\t\tNSString* text = [NSString stringWithContentsOfFile:dumpPath encoding:NSUTF8StringEncoding error:NULL];\n\t\tNSArray* elems = [text componentsSeparatedByString:@\"---CUT---\"];\n\n\t\tif ([elems count] >= 4)\n\t\t{\n\t\t\texecutablePath = [elems objectAtIndex:0];\n\t\t\tcommandLine = [elems objectAtIndex:1];\n\t\t\tshortDescription = [elems objectAtIndex:2];\n\t\t\tfullLog = [elems objectAtIndex:3];\n\t\t}\n\n\t\t[elems release];\n\t\t[text release];\n\t\t\n\t\t[[NSFileManager defaultManager] removeItemAtPath:dumpPath error:NULL];\n\t}\n\n\treturn self;\n}\n\n@end\n"
  },
  {
    "path": "src/crash/Resources/Info-gnustep.plist",
    "content": "{\n    ApplicationDescription = \"Forced quit dialog\";\n    ApplicationName = crash;\n    ApplicationRelease = \"0.1\";\n    Copyright = \"Copyright (C) 2012 Lubos Dolezel\";\n    CopyrightDescription = \"Released under GNU GPLv3+\";\n    FullVersionID = \"0.1\";\n    GSMainMarkupFile = \"\";\n    NSExecutable = crash;\n    NSMainNibFile = \"crash.gorm\";\n    NSPrincipalClass = NSApplication;\n    NSRole = Application;\n}"
  },
  {
    "path": "src/crash/Resources/Main.gsmarkup",
    "content": "<?xml version=\"1.0\"?>\n<!DOCTYPE gsmarkup>\n<gsmarkup>\n\n    <objects>\n\t<window/>\n    </objects>\n</gsmarkup>\n"
  },
  {
    "path": "src/crash/Resources/crash.gorm/data.classes",
    "content": "{\n    \"## Comment\" = \"Do NOT change this file, Gorm maintains it\";\n    CrashManager = {\n\tActions = (\n\t    \"close:\",\n\t    \"debugInfo:\",\n\t    \"reopen:\"\n\t);\n\tOutlets = (\n\t    descriptionLabel\n\t);\n\tSuper = NSObject;\n    };\n    FirstResponder = {\n\tActions = (\n\t    \"debugInfo:\",\n\t    \"reopen:\"\n\t);\n\tSuper = NSObject;\n    };\n    NewClass1 = {\n\tActions = (\n\t);\n\tOutlets = (\n\t);\n\tSuper = NSWindow;\n    };\n}"
  },
  {
    "path": "src/crash/crash_main.m",
    "content": "#import <AppKit/AppKit.h>\n\nint main(int argc, const char *argv[])\n{\n\treturn NSApplicationMain (argc, argv);\n}\n\n"
  },
  {
    "path": "src/diskutil/CMakeLists.txt",
    "content": "project(diskutil)\n\ninstall(FILES diskutil DESTINATION libexec/darling/usr/sbin\n\tPERMISSIONS\n\t\tOWNER_READ OWNER_WRITE OWNER_EXECUTE\n\t\tGROUP_READ GROUP_EXECUTE\n\t\tWORLD_READ WORLD_EXECUTE\n)\n"
  },
  {
    "path": "src/diskutil/diskutil",
    "content": "#!/bin/sh\n\n# helper functions\n\n# errcho - a variant of echo that prints to stderr\nerrcho() {\n\t>&2 echo \"$@\"\n}\n\n# subcommands\n\neject() {\n\tif [ \"$#\" -lt 1 ]; then\n\t\terrcho \"Usage:  diskutil eject MountPoint|DiskIdentifier|DeviceNode\"\n\t\texit 1\n\tfi\n\n\tDISK_PATH=$1\n\tshift;\n\n\tif [ ! -e \"$DISK_PATH\" ]; then\n\t\terrcho \"Unable to find disk for $DISK_PATH\"\n\t\texit 1\n\tfi\n\n\tif ! hdiutil detach \"$DISK_PATH\" > /dev/null 2>&1; then\n\t\terrcho \"Unmount of $DISK_PATH failed: at least one volume could not be unmounted\"\n\t\texit 1\n\tfi\n\n\techo \"Disk $DISK_PATH ejected\"\n}\n\nif [ \"$#\" -lt 1 ]; then\n\t>&2 cat <<- 'EOF'\n\t\tDisk Utility Tool\n\t\tUtility to manage local disks and volumes\n\t\tMost commands require an administrator or root user\n\t\t\n\t\tWARNING: Most destructive operations are not prompted\n\n\t\t     eject                (Eject a disk)\n\tEOF\n\texit 1\nfi\n\nVERB=\"$1\"\nshift;\n\ncase \"$VERB\" in\n\teject)\n\t\teject \"$@\"\n\t\t;;\n\t*)\n\t\terrcho \"diskutil: did not recognize verb \\\"$VERB\\\"; type \\\"diskutil\\\" for a list\"\n\t\texit 1\n\t\t;;\nesac\n"
  },
  {
    "path": "src/ditto/CMakeLists.txt",
    "content": "project(ditto)\n\ninstall(FILES ditto DESTINATION libexec/darling/usr/bin\n\tPERMISSIONS\n\t\tOWNER_READ OWNER_WRITE OWNER_EXECUTE\n\t\tGROUP_READ GROUP_EXECUTE\n\t\tWORLD_READ WORLD_EXECUTE\n)\n"
  },
  {
    "path": "src/ditto/ditto",
    "content": "#!/usr/bin/env bash\n\n#\n# FIXME: implement an actual version of ditto\n#\n# This is just a stub that works well enough for xcodebuild.\n#\n\nif [ \"$#\" -lt 3 ]; then\n\t>&2 cat <<- 'EOF'\n\t\tditto command stub\n\n\t\tOnly supports \"ditto -rsrc <source> <dest>\"\n\tEOF\n\texit 1\nfi\n\nif [ \"$1\" != \"--rsrc\" ] && [ \"$1\" != \"-rsrc\" ]; then\n\t>&2 echo \"Bad argument #1; expected -rsrc or --rsrc\"\n\texit 1\nfi\n\ncp -a \"$2\" \"$3\"\n"
  },
  {
    "path": "src/duct/include/CrashReporterClient.h",
    "content": "#ifndef CRASHREPORTERCLIENT_H_\n#define CRASHREPORTERCLIENT_H_\n\n#include <stdint.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#define CRASHREPORTER_ANNOTATIONS_SECTION \"__crash_info\"\n#define CRASHREPORTER_ANNOTATIONS_VERSION 5\n#define CRASH_REPORTER_CLIENT_HIDDEN __attribute__((visibility(\"hidden\")))\n\ninline void CRSetCrashLogMessage(const char* text) {}\ninline void CRSetCrashLogMessage2(const char* path) {}\ninline const char* CRGetCrashLogMessage(void) { return 0; }\n\nstruct crashreporter_annotations_t {\n    uint64_t version;\n    uint64_t message;\n    uint64_t signature_string;\n    uint64_t backtrace;\n    uint64_t message2;\n    uint64_t thread;\n    uint64_t dialog_mode;\n    uint64_t abort_cause;\n};\n\nCRASH_REPORTER_CLIENT_HIDDEN\nextern struct crashreporter_annotations_t gCRAnnotations;\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/duct/include/magmallocProvider.h",
    "content": "/* Fake DTrace probes */\n\n#define MAGMALLOC_MADVFREEREGION(...)\n#define MAGMALLOC_DEALLOCREGION(...)\n#define MAGMALLOC_RECIRCREGION(...)\n#define MAGMALLOC_DEPOTREGION(...)\n#define MAGMALLOC_ALLOCREGION(...)\n#define MAGMALLOC_PRESSURERELIEF(...)\n#define MAGMALLOC_MALLOCERRORBREAK(...)\n#define MAGMALLOC_PRESSURERELIEFBEGIN(...)\n#define MAGMALLOC_PRESSURERELIEFEND(...)\n"
  },
  {
    "path": "src/duct/src/CMakeLists.txt",
    "content": "project(duct)\n\ncmake_minimum_required(VERSION 3.13)\n\nadd_definitions(-DHAVE_STDINT_H=1)\nadd_definitions(-DPRIVATE)\n\nset(CMAKE_C_FLAGS \"${CMAKE_C_FLAGS} -nostdinc -D__DARWIN_UNIX03 -fPIC -w\")\nset(CMAKE_SHARED_LINKER_FLAGS \"${CMAKE_SHARED_LINKER_FLAGS} -nostdlib -Wl,-bind_at_load\")\n\nSET(duct_sources\n\tcommpage.c libnotify.c numcpus.c\n\tCRGetCrashLogMessage.c acl.c dns_sd.c\n\tsa_dst_compare.c os_log.c)\n\nset(DYLIB_INSTALL_NAME \"/usr/lib/system/libsystem_duct.dylib\")\nadd_circular(system_duct FAT\n\tSOURCES\n\t\t${duct_sources}\n\tSIBLINGS\n\t\tsystem_kernel\n\t\tsystem_dyld\n)\n#make_fat(system_duct)\n\nadd_darling_static_library(system_duct_static SOURCES ${duct_sources})\nmake_fat(system_duct_static)\n\ninstall(TARGETS system_duct DESTINATION libexec/darling/usr/lib/system)\n"
  },
  {
    "path": "src/duct/src/CRGetCrashLogMessage.c",
    "content": "const char* CRGetCrashLogMessage(void)\n{\n\treturn 0;\n}\n\nvoid CRSetCrashLogMessage(const char* msg)\n{\n}\n\nvoid CRSetCrashLogMessage2(const char* path)\n{\n}\n"
  },
  {
    "path": "src/duct/src/acl.c",
    "content": "int acl_copy_int_native()\n{\n\treturn 0;\n}\n\nint acl_size()\n{\n\treturn 0;\n}\n"
  },
  {
    "path": "src/duct/src/commpage.c",
    "content": "#include <machine/cpu_capabilities.h>\n#include <sys/mman.h>\n#include <stdint.h>\n\n//uint8_t __commpage[_COMM_PAGE_AREA_LENGTH];\n\nvoid _darling_initialize_commpage(void)\n{\n\tmmap((void*)_COMM_PAGE_START_ADDRESS, _COMM_PAGE_AREA_LENGTH, PROT_READ|PROT_WRITE,\n\t\tMAP_ANON | MAP_PRIVATE, -1, 0);\n\n\t*((uint8_t*)_COMM_PAGE_NCPUS) = 1;\n\t*((uint8_t*)_COMM_PAGE_VERSION) = 12;\n\t*((uint64_t*) _COMM_PAGE_MEMORY_SIZE) = 1024LL*1024LL*1024LL;\n}\n\n/*int _get_cpu_capabilities(void)\n{\n\tconst uint16_t* p = (uint16_t*) _COMM_PAGE_CPU_CAPABILITIES;\n\treturn *p;\n}*/\n\n"
  },
  {
    "path": "src/duct/src/dns_sd.c",
    "content": "#include <stddef.h>\n\n// We don't have Bonjour (libsystem_dnssd) yet.\n\nint DNSServiceCreateConnection(void** ptr)\n{\n\t*ptr = NULL;\n\treturn 1;\n}\n\nint DNSServiceQueryRecord()\n{\n\treturn 1;\n}\n\nint DNSServiceProcessResult()\n{\n\treturn 1;\n}\n\nint DNSServiceRefDeallocate()\n{\n\treturn 1;\n}\n\nint DNSServiceRefSockFD()\n{\n\treturn 1;\n}\n\n"
  },
  {
    "path": "src/duct/src/libnotify.c",
    "content": "// TODO: Remove once libnotify is compiled\nint __notify_78945668_info__ = 0;\n\n"
  },
  {
    "path": "src/duct/src/numcpus.c",
    "content": "int _NumCPUs(void)\n{\n\treturn 2; // use MP codepaths\n}\n\n"
  },
  {
    "path": "src/duct/src/os_log.c",
    "content": "int _os_log_default;\n\nint os_log_shim_legacy_logging_enabled(void)\n{\n\treturn 0;\n}\n\nint os_log_shim_with_va_list()\n{\n\treturn 0;\n}\n"
  },
  {
    "path": "src/duct/src/sa_dst_compare.c",
    "content": "// This function is called from _gai_addr_sort()\n// On macOS, it resides in libsystem_network.dylib, which is not open source.\n\nint sa_dst_compare()\n{\n\treturn 0;\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/ChangeLog",
    "content": "Version 0.8.2 r195\nreleased 7/16/2011\n---\n\n * Use LDADD instead of LDFLAGS (fixes Debian bug #631674)\n * Make the \"idle\" test optional as it does not work on 32-bit Linux\n * Use time_t for PWQ_SPIN_USEC to fix a build problem on 32-bit Linux\n\nVersion 0.8.1 r?\nreleased 7/16/2011\n---\n\n * Uploaded to Debian, but not generally released.\n\nVersion 0.8 r190\nreleased 7/08/2011\n---\n\n * Remove the 'struct worker' datatype and related housekeeping chores.\n\n * Fix incorrect usage of pthread_cond_timedwait() for overcommit threads. \n\n * Various improvements and bug fixes for the Windows port.\n\n * Prevent a race condition that could cause a use-after-free if a witem\n   were freed before manager_workqueue_additem() returned.\n\n * Prevent races involving the scoreboard variables.\n\n * Fix a lost wakeup bug when calling worker_stop().\n\n * Finally fixed the long standing TODO and removed the global lock for pwq enqueue/dequeue.\n\n * Only signal wakeups for the pool if there are idle threads available to process data. \n\n * Use atomics for updating the mask with pending workqueues as the global lock was removed.\n\n * Added optional idle thread spinning by using the PWQ_SPIN_USEC and PWQ_SPIN_THREADS environment variables. The accrued changes decrease latency from 7-8 microseconds to ~1 +- 0.5 microsecond depending on spin configuration. By default, no spinning will be done.\n\n * Renamed USE_RT_THREADS to PWQ_RT_THREADS for consistency. \n\n * Allow specification of number of CPU:s by using the environment variable PWQ_ACTIVE_CPU - this is useful when using e.g. processor sets (fewer CPU:s are truly available to the process than is physically available in the machine). Proper auto-detection of this would be even nicer in the future, but investigation for the various platforms is required - this environment variable allows for a simple workaround in the meantime.\n\nVersion 0.7.1 r157\nreleased 7/02/2011\n---\n\n * Fix a memory leak in worker_overcommit_main() when reaping idle threads.\n\nVersion 0.7 r150\nreleased 6/13/2011\n---\n\n * Replace pthread emulation macros with winpthreads.h from \n   http://locklessinc.com/articles/pthreads_on_windows/\n \n * Fix witem_cache test to link on solaris also\n\n * Avoid possible overrun of priority level\n\n * Fixed possible deadlock.\n\n * Cleaned up witem cache interface and usage for easier reading of code.\n\n * Link with libumem on Solaris\n\n * Add -Wextra to CFLAGS and fix the related warnings\n\n * Implement the workqueue overcommit attribute.\n   Make wqlist an array instead of an array of lists.\n   Change wqlist_scan() to be more efficient.\n\nVersion 0.6 r134\nreleased 5/16/2011\n---\n\n * Add a pthread_atfork() handler to reinitialize the library after fork().\n\n * Defer the manager thread creation until pthread_workqueue_create_np().\n\nVersion 0.5.1 r125\nreleased 5/7/2011\n---\n\n * Fix the testing/latency Makefile to work on 32-bit Linux.\n * Remove unused variables from testing/latency.c\n\nVersion 0.5 r120\nreleased 5/6/2011\n---\n\n * Add CMakeLists.txt for building under CMake.\n\n * Support building on Windows under MinGW and MSVC.\n\n * Fixed a deadlock during startup. We could actually raise and get a lost wakeup of the pthread_cond_wait  in manager_init() as the manager already managed to signal before we went to sleep. (happened around 1/1000 of startups on a large multicore).\n\n * Finetune ramp-up logic when system is under heavy load - allow up to worker_idle_threshold threads regardless of system load, otherwise limit thread creation when system is under NCPU:s load rather than 2*NCPU:s (it is way too late to limit it on a larger multicore machine...).\n\n * Create a witem_cache_init() function so that the TLS key can be made private to witem_cache.o\n\n * Fix compilation on 32-bit Linux (Credit: Marius Zwicker)\n\n * Don't reset the signal mask, it should be blocked for the manager thread (and any subsequently started threads) as well\n\n * Enabled experimental support for real-time threads scheduling class on Solaris, specify PWQ_RT_THREADS to enable it. Be careful when using, may take all available resources unless used in combination with processor sets, thus effectivively hanging the machine\n\n * Add option for static library build activated by defining MAKE_STATIC\n\n * Enable debugging on windows by an environment variable as well\n\nVersion 0.4.1 r99\nreleased 3/13/2011\n---\n\n * Add -lpthread to LDFLAGS\n\nVersion 0.4 r97\nreleased 3/12/2011\n---\n\n * Improved printf debugging; to use it, define the environment variable \"PWQ_DEBUG=yes\"\n\n * New function threads_runnable() determines how many LWPs are on the run queue and uses\n   this information to improve the thread pool management heuristic.\n\n * All ELF symbols are now hidden by default, and only the public API symbols are visible.\n\n * Improved workqueue ramp-up and ramp-down behavior.\n\nVersion 0.3 r81\nreleased 3/6/2011\n---\n\n * Fix DESTDIR support in the 'make install' target.\n\nVersion 0.2 r77\nreleased 3/6/2011\n---\n\n * Add support for FreeBSD, Solaris, and Microsoft Windows\n\n * Fix a race condition that would cause deadlock in rare cases when either:\n     1) pthread_cond_signal() was called while no other threads were \n        blocked a call to pthread_cond_wait(), or\n     2) pthread_cond_signal() was called multiple times before the any thread\n        blocking in a call to pthread_cond_wait() was awoken by the scheduler.\n\n   The fix is to ensure that the call to pthread_cond_signal() occurs while\n   the calling thread holds the same mutex used by the threads that call\n   pthread_cond_wait().\n\n   Credit to Joakim Johansson for finding the bug and providing a patch.\n\nVersion 0.1 r?\nreleased 6/13/2010   \n---\n\n  * Initial release for Debian as a patch applied to libdispatch. There \n    was no tarball released for this version.\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/config.inc",
    "content": "program=\"libpthread_workqueue\"\nversion=\"0.8.2\"\nabi_major=\"0\"\nabi_minor=\"0\"\nabi_version=\"$abi_major.$abi_minor\"\ncflags=\"-Wall -Wextra -Werror -D_XOPEN_SOURCE=600 -D__EXTENSIONS__ -D_GNU_SOURCE -std=c99 -I./include -I./src\"\nldflags=\"\"\nldadd=\"-lpthread -lrt\"\nsources='src/api.c src/$(API)/manager.c src/$(API)/thread_info.c src/witem_cache.c src/$(API)/thread_rt.c'\nlibdepends=\"\"\ndeps=\"src/*.h\"\nmans=\"pthread_workqueue.3\"\nheaders=\"include/pthread_workqueue.h\"\nextra_dist=\"LICENSE\"\nsubdirs=\"\"\n\n# Package metadata\npkg_summary=\"pthread_workqueue library\"\npkg_description=\"pthread_workqueue library\"\nlicense=\"BSD\"\nauthor=\"Mark Heily\"\n\npre_configure_hook() {\n  if [ \"$debug\" = \"yes\" ] ; then\n      cflags=\"$cflags -g3 -O0 -DPTHREAD_WORKQUEUE_DEBUG -rdynamic\"\n  else\n      cflags=\"$cflags -g -O2\"\n  fi\n  check_header err.h\n}\n\npost_configure_hook() {\n\n    cflags=\"$cflags\"\n    case \"$target\" in\n    windows)\n        cflags=\"$cflags -mthreads\"\n        ldflags=\"$ldflags -mthreads\"\n    \t;;\n    solaris)\n        # TODO: would like to have -fvisibility=hidden but not supported\n        #       by SFWgcc\n        #\n        cflags=\"$cflags -m64 -fpic\"\n    \tldflags=\"$ldflags -m64 -fpic -lumem\"\n    \t;;\n    *)\n        if [ \"`uname -m`\" = \"x86_64\" ] ; then\n            arch_flags=\"-m64\"\n        else\n            arch_flags=\"\"\n        fi\n        cflags=\"$cflags $arch_flags -fpic -fvisibility=hidden -pthread\"\n    \tldflags=\"$ldflags $arch_flags -fpic -pthread\"\n\t;;\n    esac\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/configure",
    "content": "#!/bin/sh\n#\n# Copyright (c) 2009-2011 Mark Heily <mark@heily.com>\n#\n# Permission to use, copy, modify, and distribute this software for any\n# purpose with or without fee is hereby granted, provided that the above\n# copyright notice and this permission notice appear in all copies.\n# \n# THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n#\n\nmakeconf_version=\"$Revision: 10 $\"\n\nc_exports=\"program version target api cflags\"\n\nmake_exports=\"program version target api distfile basedir \\\n              prefix bindir sbindir libdir includedir mandir \\\n              cflags ldflags ldadd libdepends \\\n              sources objs deps mans headers extra_dist subdirs \\\n              abi_major abi_minor abi_version \\\n              cc cpp ld ln ar install diff\"\n\nrequired_headers=\noptional_headers=\n\npre_configure_hook() {\n    return\n}\n\npost_configure_hook() {\n    return\n}\n\nexport_to_make() {\n  for id in $*\n  do\n    uc_id=`echo $id | $tr '[:lower:]' '[:upper:]'`;\n    eval \"echo \\\"$uc_id=\\\"\\$$id\\\"\\\" >> config.mk\"\n  done\n}\n\nexport_to_c() {\n  for id in $*\n  do\n    uc_id=`echo $id | $tr '[:lower:]' '[:upper:]'`;\n    eval \"echo \\\"#define $uc_id \\\\\\\"\\$$id\\\\\\\"\\\" >> config.h\"\n  done\n}\n\nfinalize() {\n  uc_id=`echo \\\"$1\\\" | $tr '[:lower:]' '[:upper:]'`;\n  eval \"if [ \\\"\\$$1\\\" = \\\"\\\" ] ; then $1=\\\"$2\\\" ; fi\"\n}\n\nprocess_argv() {\n    for arg in $*\n    do\n        if [ \"$arg\" = \"--makeconf-version\" ] ; then\n            echo $makeconf_version | sed 's/[^0-9.]//g'\n            exit 0\n        fi\n        id=`echo \"$arg\" | sed 's/=.*//; s/^--//;'`\n        val=`echo \"$arg\" | sed 's/^.*=//'`\n        if [ \"$val\" = \"\" ] ; then val=1 ; fi\n        eval \"$id=\\\"$val\\\"\" \n    done\n}\n\nprocess_env() {\n    test -n \"$CC\" && cc=\"$CC\"\n    test -n \"$CPP\" && cpp=\"$CPP\"\n    test -n \"$CPPFLAGS\" && cppflags=\"$CPPFLAGS\"\n    test -n \"$CFLAGS\" && cflags=\"$CFLAGS\"\n    test -n \"$LD\" && ld=\"$LD\"\n    test -n \"$LN\" && ld=\"$LN\"\n    test -n \"$LDFLAGS\" && ldflags=\"$LDFLAGS\"\n    test -n \"$AR\" && ar=\"$AR\"\n    basedir=`pwd`\n}\n \ncheck_header() {\t \n   sym=`echo \"have_$1\" | sed 's,[./],_,g'`\t \n   uc_sym=`echo \"$sym\" | $tr '[:lower:]' '[:upper:]'`;\n   path=$1\n\n   printf \"checking for $path.. \"\n   if [ -f \"/usr/include/$path\" ] ; then\n     echo \"yes\"\n     echo \"#define $uc_sym 1\" >> config.h\n     eval \"$sym=yes\"\n     return 0\n   else  \n     echo \"no\"\n     echo \"#undef $uc_sym\" >> config.h\n     eval \"$sym=no\"\n     return 1\n   fi\n}\n\n# Determine the path to an executable binary\ncheck_binary() {\n   id=$1\n   shift\n\n   for path in $*\n   do\n       test -f $path\n       if [ $? = 0 ] ; then\n           eval \"$id=\\\"$path\\\"\"\n           return\n       fi\n   done\n\n   echo \"not found\"\n   return\n}\n\ncheck_headers() {\t \n   for header in $*\n   do\n       check_header \"$header\"\n   done\n}\n\ncheck_symbol() {\n    header=$1\n    symbol=$2\n\n    uc_symbol=`echo \"HAVE_$symbol\" | $tr '[:lower:]' '[:upper:]' | sed 's,[./],_,g'`\n    lc_symbol=`echo \"have_$symbol\" | $tr '[:upper:]' '[:lower:]' | sed 's,[./],_,g'`\n\n    if [ -f \"$header\" ] ; then\n        path=\"$header\"\n    elif [ -f \"/usr/include/$header\" ] ; then\n        path=\"/usr/include/$header\"\n    else\n        echo \"*** ERROR: Cannot find <$header>\"\n        exit 1\n    fi\n     \n    printf \"checking $header for $symbol.. \"    \n    if [ \"`grep $symbol $path`\" != \"\" ] ; then\n     eval \"$lc_symbol=yes\"\n     echo \"#define $uc_symbol 1\" >> config.h\n     echo \"yes\"\n     return 0\n    else\n     eval \"$lc_symbol=no\"\n     echo \"no\"\n     echo \"#undef $uc_symbol\" >> config.h\n     return 1\n    fi\n}\n\ncheck_install() {\n    printf \"checking for a BSD-compatible install.. \"\n    if [ \"`uname -s`\" = \"SunOS\" ] ; then\n        default_install=/usr/ucb/install\n    else\n        default_install=/usr/bin/install\n    fi\n    finalize install \"$default_install\"\n    echo \"$install\"\n}\n\ncheck_target() {\n    printf \"checking operating system type.. \"\n    default_target=`uname -s | $tr '[:upper:]' '[:lower:]'`\n    default_api=\"posix\"\n    case \"$default_target\" in\n    sunos)\n            default_target=\"solaris\"\n            ;;\n    \"gnu/kfreebsd\")\n            default_target=\"freebsd\"\n            ;;\n    mingw*)\n            default_target=\"windows\"\n            default_api=\"windows\"\n            ;;\n    esac\n    finalize target \"$default_target\"\n    finalize api \"$default_api\"\n    echo \"$api\"\n}\n\ncheck_compiler() {\n    printf \"checking for a C compiler.. \"\n    check_binary default_cc \"$cc\" \"`which $cc 2>/dev/null`\" \"/usr/bin/cc\" \"/usr/bin/gcc\" \"/usr/sfw/bin/gcc\" \"`which gcc 2>/dev/null`\"\n    finalize cc \"$default_cc\"\n#    test -x \"$cc\" || err \"Unable to locate a C compiler\"\n    echo \"$cc\"\n}\n\ncheck_linker() {\n    printf \"checking for a suitable linker.. \"\n\n    # Workaround for \"hidden symbol <foo> is referenced by DSO\" linker error\n    # seen when compiling libdispatch.\n    # Appears to be a problem with GCC 4.0 and binutils\n    #\n    default_ld=\"$cc\"\n    ldflags=\"-o $program.so.$abi_major.$abi_minor $ldflags\"\n\n    # FIXME: port to solaris\n    if [ \"$target\" = \"linux\" ] ; then\n    ldflags=\"$ldflags -Wl,-export-dynamic -Wl,-soname,$program.so.$abi_major\"\n    fi \n\n    if [ \"$target\" = \"solaris\" ] ; then\n    ldflags=\"$ldflags\"\n    fi\n\n    finalize ld \"$default_ld\"\n    echo \"$ld\"\n}\n\ncheck_archiver() {\n    printf \"checking for a suitable archiver.. \"\n    if [ \"`uname -s`\" = \"SunOS\" -a \"`uname -v | grep Nexenta`\" = \"\" ] ; then\n       default_ar=\"/usr/sfw/bin/gar\"\n    else\n       default_ar=\"/usr/bin/ar\"\n    fi\n    finalize ar \"$default_ar\"\n    echo \"$ar\"\n}\n\nerr() {\n    echo \"*** ERROR *** $*\"\n    rm -f config.mk $program.pc config.h\n    exit 1\n}\n\ncheck_diff() {\n    # TODO: Support non-GNU diff syntax\n    # TODO: Search for the command\n    printf \"checking for a suitable diff(1) command.. \"\n    finalize diff \"diff -ruN -dEbwBp -x .svn -x .o -x config.h -x config.mk\"\n    echo \"found\"\n}\n\nsubst_vars() {\n  outfile=$1\n\n  if [ ! -f \"${outfile}.in\" ] ; then\n      return\n  fi\n\n  echo \"Creating $outfile\"\n  rm -f $outfile\n  sed -e \"\n       s,@@CWD@@,`pwd`,g;\n       s,@@PROGRAM@@,$program,g;\n       s,@@VERSION@@,$version,g;\n       s,@@PREFIX@@,$prefix,g;\n       s,@@LIBDIR@@,$libdir,g;\n       s,@@INCLUDEDIR@@,$includedir,g;\n       s,@@MANDIR@@,$mandir,g;\n       s,@@LIBDEPENDS@@,$libdepends,g;\n       s,@@PKG_SUMMARY@@,$pkg_summary,g;\n       s,@@RPM_DATE@@,`date +'%a %b %d %Y'`,g;\n       s,@@PKG_DESCRIPTION@@,$pkg_description,g;\n       s,@@LICENSE@@,$license,g;\n       s,@@AUTHOR@@,$author,g;\n       \" < ${outfile}.in > $outfile\n  chmod 400 $outfile\n}\n\n#######################################################################\n#\n#                           MAIN()\n#\n#######################################################################\n\n# Workaround for Solaris \"Bad string\" issue when LOCALE is undefined\ntr=\"/usr/bin/tr\"\ntest -f /usr/xpg4/bin/tr && tr=\"/usr/xpg4/bin/tr\"\n\n. ./config.inc\n\n# Initialize the output files\n#\nfor output_file in config.mk\ndo\n   rm -f $output_file\n   echo \"# AUTOMATICALLY GENERATED -- DO NOT EDIT\" > $output_file\ndone\nif [ \"$sources\" != \"\" ] ; then\n   rm -f config.h\n   echo \"/* AUTOMATICALLY GENERATED -- DO NOT EDIT */\" > config.h\nfi\n\nprocess_argv \"$*\"\nprocess_env\n\ncheck_target\ncheck_compiler\ncheck_linker\ncheck_archiver\ncheck_install\ncheck_diff\n\nfinalize program    \"$program\"\nfinalize version    \"$version\"\nfinalize abi_major  \"$abi_major\"\nfinalize abi_minor  \"$abi_minor\"\nfinalize abi_version \"$abi_major.$abi_minor\"\nfinalize prefix     \"/usr/local\"\nfinalize bindir     \"\\\\\\$(PREFIX)/bin\"\nfinalize sbindir    \"\\\\\\$(PREFIX)/sbin\"\nfinalize libdir     \"\\\\\\$(PREFIX)/lib\"\nfinalize includedir \"\\\\\\$(PREFIX)/include\"\nfinalize mandir     \"\\\\\\$(PREFIX)/share/man\"\nfinalize cflags     \"$cflags\"\nfinalize libdepends \"$libdepends\"\nfinalize ldadd      \"\"\nfinalize ldflags    \"\"\nfinalize deps       \"\"\nfinalize ln         \"`which ln`\"\nfinalize distfile   \"$program-$version.tar.gz\" \n\npre_configure_hook\n\nfor header in $required_headers\ndo\n  check_header \"$header\" || err \"$header is required, but cannot be found.\"\ndone\ncheck_headers $optional_headers\n\npost_configure_hook\n\nobjs=\"`echo \\\"$sources\\\" | sed 's/\\.c/\\.o/g'`\"\n\nsubst_vars \"$program.pc\"\nsubst_vars \"$program.la\"\nsubst_vars \"rpm.spec\"\n\nif [ \"$sources\" != \"\" ] ; then\n    echo \"Creating config.h\"\n    export_to_c $c_exports\nfi\n\necho \"Creating config.mk\"\nexport_to_make \"$make_exports\"\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/include/pthread_workqueue.h",
    "content": "/*-\n * Copyright (c) 2010, Mark Heily <mark@heily.com>\n * Copyright (c) 2009, Stacey Son <sson@freebsd.org>\n * Copyright (c) 2000-2008, Apple Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#ifndef _PTHREAD_WORKQUEUE_H\n#define _PTHREAD_WORKQUEUE_H\n\n#if _WIN32\n#define _PWQ_EXPORT __declspec(dllexport)\n#else\n#define _PWQ_EXPORT\n#endif\n\ntypedef struct _pthread_workqueue * pthread_workqueue_t;\ntypedef void *                      pthread_workitem_handle_t;\n\n/* Pad size to 64 bytes. */\ntypedef struct {\n   unsigned int sig;\n   int queueprio;\n   int overcommit;\n   unsigned int pad[13];\n} pthread_workqueue_attr_t;\n\n/* Work queue priority attributes. */\n#define WORKQ_HIGH_PRIOQUEUE       0\n#define WORKQ_DEFAULT_PRIOQUEUE    1\n#define WORKQ_LOW_PRIOQUEUE        2\n\n#if defined(__cplusplus)\n\textern \"C\" {\n#endif\n\t\t\nint _PWQ_EXPORT pthread_workqueue_create_np(pthread_workqueue_t * workqp,\n               const pthread_workqueue_attr_t * attr);\n\nint _PWQ_EXPORT pthread_workqueue_additem_np(pthread_workqueue_t workq,\n            void (*workitem_func)(void *), void * workitem_arg,\n            pthread_workitem_handle_t * itemhandlep, unsigned int *gencountp);\n\nint _PWQ_EXPORT pthread_workqueue_attr_init_np(pthread_workqueue_attr_t * attrp);\n\nint _PWQ_EXPORT pthread_workqueue_attr_destroy_np(pthread_workqueue_attr_t * attr);\n\nint _PWQ_EXPORT pthread_workqueue_attr_setqueuepriority_np(pthread_workqueue_attr_t * attr,\n                   int qprio);\n\nint _PWQ_EXPORT pthread_workqueue_attr_getovercommit_np(\n               const pthread_workqueue_attr_t * attr, int * ocommp);\n\nint _PWQ_EXPORT pthread_workqueue_attr_setovercommit_np(pthread_workqueue_attr_t * attr,\n                   int ocomm);\n\nint _PWQ_EXPORT pthread_workqueue_requestconcurrency_np(pthread_workqueue_t workq,\n                   int queue, int request_concurrency);\n\nint _PWQ_EXPORT pthread_workqueue_getovercommit_np(pthread_workqueue_t workq,\n                   unsigned int *ocommp);\n\nvoid _PWQ_EXPORT pthread_workqueue_main_np(void);\n\n#ifdef MAKE_STATIC\nint _PWQ_EXPORT pthread_workqueue_init_np(void);\n#endif\n\n/* NOTE: this is not part of the Darwin API */\nunsigned long _PWQ_EXPORT pthread_workqueue_peek_np(const char *);\n\n#if defined(__cplusplus)\n\t}\n#endif\n\t\t\t\n#undef _PWQ_EXPORT\n\n#endif  /* _PTHREAD_WORKQUEUE_H */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/pthread_workqueue.3",
    "content": ".\\\" Copyright (C) 2010 mark@heily.com\n.\\\" Copyright (C) 2009 sson@FreeBSD.org\n.\\\" All rights reserved.\n.\\\"\n.\\\" Redistribution and use in source and binary forms, with or without\n.\\\" modification, are permitted provided that the following conditions\n.\\\" are met:\n.\\\" 1. Redistributions of source code must retain the above copyright\n.\\\"    notice(s), this list of conditions and the following disclaimer as\n.\\\"    the first lines of this file unmodified other than the possible\n.\\\"    addition of one or more copyright notices.\n.\\\" 2. Redistributions in binary form must reproduce the above copyright\n.\\\"    notice(s), this list of conditions and the following disclaimer in\n.\\\"    the documentation and/or other materials provided with the\n.\\\"    distribution.\n.\\\"\n.\\\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY\n.\\\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n.\\\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\n.\\\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE\n.\\\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n.\\\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n.\\\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR\n.\\\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\n.\\\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n.\\\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\n.\\\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n.\\\"\n.\\\" $FreeBSD: $\n.Dd December 12, 2009\n.Dt PTHREAD_WORKQUEUE 3\n.Os\n.Sh NAME\n.Nm pthread_workqueue_init_np ,\n.Nm pthread_workqueue_create_np ,\n.Nm pthread_workqueue_additem_np \n.Nd thread workqueue operations\n.Pp\n.Nm pthread_workqueue_attr_init_np ,\n.Nm pthread_workqueue_attr_destroy_np ,\n.Nm pthread_workqueue_attr_getovercommit_np ,\n.Nm pthread_workqueue_attr_setovercommit_np ,\n.Nm pthread_workqueue_attr_getqueuepriority_np ,\n.Nm pthread_workqueue_attr_setqueuepriority_np \n.Nd thread workqueue attribute operations\n.Sh SYNOPSIS\n.In pthread_workqueue.h\n.Ft int\n.Fn pthread_workqueue_init_np \"void\"\n.Ft int\n.Fn pthread_workqueue_create_np \"pthread_workqueue_t *workqp\" \"const pthread_workqueue_attr_t * attr\"\n.Ft int\n.Fn pthread_workqueue_additem_np \"pthread_workqueue_t workq\" \"void ( *workitem_func)(void *)\" \"void * workitem_arg\" \"pthread_workitem_handle_t * itemhandlep\" \"unsigned int *gencountp\"\n.Ft int\n.Fn pthread_workqueue_attr_init_np \"pthread_workqueue_attr_t *attr\"\n.Ft int\n.Fn pthread_workqueue_attr_destroy_np \"pthread_workqueue_attr_t *attr\"\n.Ft int\n.Fn pthread_workqueue_attr_getovercommit_np \"pthread_workqueue_attr_t *attr\" \"int *ocommp\"\n.Ft int\n.Fn pthread_workqueue_attr_setovercommit_np \"pthread_workqueue_attr_t *attr\" \"int ocomm\"\n.Ft int\n.Fn pthread_workqueue_attr_getqueuepriority_np \"pthread_workqueue_attr_t *attr\" \"int *qpriop\"\n.Ft int\n.Fn pthread_workqueue_attr_setqueuepriority_np \"pthread_workqueue_attr_t *attr\" \"int qprio\"\n.Sh DESCRIPTION\nThe \n.Fn pthread_workqueue_*_np\nfunctions are used to create and submit work items to a thread pool.\n.Pp\nThe user may create multiple work queues of different priority and\nmanually overcommit the available resources.\n.Pp\n.Fn pthread_workqueue_init_np \nallocates and initializes the thread workqueue subsystem.\n.Pp\n.Fn pthread_workqueue_create_np\ncreates a new thread workqueue with the attributes given by\n.Fa attr .\nIf \n.Fa attr\nis NULL then the default attributes are used.\nA workqueue handle is returned in the\n.Fa workqp \nparameter.\n.Pp\nThread workqueue attributes are used to specify parameters to\n.Fn pthread_workqueue_create_np .\nOne attribute object can be used in multiple calls to\n.Fn pthread_workqueue_create_np ,\nwith or without modifications between calls.\n.Pp\n.Fn pthread_workqueue_additem_np\nis used to submit work items to the thread pool specified by\n.Fa workq\nparameter.\nThe work item function and function argument are given by\n.Fa workitem_func\nand\n.Fa workitem_arg . \nThe work item handle is returned in \n.Fa itemhandlep .\n.Pp\nThe\n.Fn pthread_workqueue_attr_init_np\nfunction initializes\n.Fa attr\nwith all the default thread workqueue attributes.\n.Pp\nThe\n.Fn pthread_workqueue_attr_destroy_np\nfunction destroys\n.Fa attr .\n.Pp\nThe\n.Fn pthread_workqueue_attr_set*_np\nfunctions set the attribute that corresponds to each function name.\n.Fn pthread_workqueue_attr_setovercommit_np\ncan be used to set the overcommit flag.\nIf the overcommit flag is set then more threads will be started, if\nneeded, which may overcommit the physical resources of the system.\n.Fn pthread_workqueue_attr_setqueuepriority_np\nsets the queue priority attribute of the thread work queue and must be\nset to one of the following values:\n.Bl -tag -width \"Va WORKQ_DEFAULT_PRIOQUEUE\"\n.It Va WORKQ_HIGH_PRIOQUEUE\nWork items in the queue with this attribute will be given higher priority by\nthe thread scheduler.\n.It Va WORKQ_DEFAULT_PRIOQUEUE \nWork items in the queue with this attribute are given the default\npriority.\n.It Va WORKQ_LOW_PRIOQUEUE\nWork items in the queue with this attribute will be given lower priority\nby the thread scheduler. \n.El\n.Pp\nThe\n.Fn pthread_workqueue_attr_get*_np\nfunctions copy the value of the attribute that corresponds to each function name\nto the location pointed to by the second function parameter.\n.Sh RETURN VALUES\nIf successful, these functions return 0.\nOtherwise, an error number is returned to indicate the error.\n.Sh ERRORS\nThe\n.Fn pthread_workqueue_init_np\nfunction will fail if:\n.Bl -tag -width Er\n.It Bq Er ENOMEM\nOut of memory.\n.El\n.Pp\nThe\n.Fn pthread_workqueue_create_np\nfunction will fail if:\n.Bl -tag -width Er\n.It Bq Er ENOMEM\nOut of memory.\n.El\n.Pp\nThe\n.Fn pthread_workqueue_additem_np\nfunction will fail if:\n.Bl -tag -width Er\n.It Bq Er EINVAL\nInvalid workqueue handle.\n.It Bq Er ENOMEM\nOut of memory.\n.It Bq Er ESRCH\nCan not find workqueue.\n.El\n.Pp\nThe\n.Fn pthread_workqueue_attr_init_np\nfunction will fail if:\n.Bl -tag -width Er\n.It Bq Er ENOMEM\nOut of memory.\n.El\n.Pp\nThe\n.Fn pthread_workqueue_attr_destroy_np\nfunction will fail if:\n.Bl -tag -width Er\n.It Bq Er EINVAL\nInvalid value for\n.Fa attr .\n.El\n.Pp\nThe\n.Fn pthread_workqueue_attr_setqueuepriority_np\nfunction will fail if:\n.Bl -tag -width Er\n.It Bq Er EINVAL\nInvalid value for\n.Fa attr\nor for \n.Fa qprio.\n.El\n.Pp\nThe\n.Fn pthread_workqueue_attr_setovercommit_np ,\n.Fn pthread_workqueue_attr_getovercommit_np\nand\n.Fn pthread_workqueue_attr_getqueuepriority_np\nfunctions will fail if:\n.Bl -tag -width Er\n.It Bq Er EINVAL\nInvalid value for\n.Fa attr .\n.El\n.Sh SEE ALSO\n.Xr pthread 3 ,\n.Xr sysctl 3\n.Sh BUGS\nThere is no way, currently, to remove or destory work queues and pending\nwork items other than exiting the process.\n.Pp\nAll worker threads run at the same thread priority; however, items placed on high-priority workqueues will be executed before those on lower-priority workqueues.\n.Sh HISTORY\nThis thread workqueues code was created to support Grand Central Dispatch (GCD\nor libdispatch) and first appeared in \n.Fx 8.0 .\n.Sh AUTHORS\n.An \"Mark Heily\" Aq mark@heily.com .\n.Br\n.Pp\nBased on earlier work by\n.An \"Stacey Son\" Aq sson@FreeBSD.org\nand\n.An Apple, Inc.\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/api.c",
    "content": "/*-\n * Copyright (c) 2010, Mark Heily <mark@heily.com>\n * Copyright (c) 2009, Stacey Son <sson@freebsd.org>\n * Copyright (c) 2000-2008, Apple Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include \"private.h\"\n\nunsigned int PWQ_ACTIVE_CPU = 0;\nint DEBUG_WORKQUEUE = 0;\nchar *WORKQUEUE_DEBUG_IDENT = \"WQ\";\n\nstatic int\nvalid_workq(pthread_workqueue_t workq) \n{\n    if (workq->sig == PTHREAD_WORKQUEUE_SIG)\n        return (1);\n    else\n        return (0);\n}\n\nint VISIBLE CONSTRUCTOR\npthread_workqueue_init_np(void)\n{\n#ifdef NDEBUG\n    DEBUG_WORKQUEUE = 0;\n#else\n    DEBUG_WORKQUEUE = (getenv(\"PWQ_DEBUG\") == NULL) ? 0 : 1;\n# ifndef _WIN32\n    PWQ_RT_THREADS = (getenv(\"PWQ_RT_THREADS\") == NULL) ? 0 : 1;\n    PWQ_ACTIVE_CPU = (getenv(\"PWQ_ACTIVE_CPU\") == NULL) ? 0 : atoi(getenv(\"PWQ_ACTIVE_CPU\"));\n\n    if (getenv(\"PWQ_SPIN_USEC\") != NULL)\n        PWQ_SPIN_USEC = atoi(getenv(\"PWQ_SPIN_USEC\"));\n    \n    if (getenv(\"PWQ_SPIN_THREADS\") != NULL)\n        PWQ_SPIN_THREADS =  atoi(getenv(\"PWQ_SPIN_THREADS\"));\n\n# endif\n#endif\n\n    if (manager_init() < 0)\n        return (-1);\n\n    dbg_puts(\"pthread_workqueue library initialized\");\n    return (0);\n}\n\nint VISIBLE\npthread_workqueue_create_np(pthread_workqueue_t *workqp,\n                            const pthread_workqueue_attr_t * attr)\n{\n    pthread_workqueue_t workq;\n\n    if ((attr != NULL) && ((attr->sig != PTHREAD_WORKQUEUE_ATTR_SIG) ||\n         (attr->queueprio < 0) || (attr->queueprio >= WORKQ_NUM_PRIOQUEUE)))\n        return (EINVAL);\n    if ((workq = calloc(1, sizeof(*workq))) == NULL)\n        return (ENOMEM);\n    workq->sig = PTHREAD_WORKQUEUE_SIG;\n    workq->flags = 0;\n    STAILQ_INIT(&workq->item_listhead);\n    pthread_spin_init(&workq->mtx, PTHREAD_PROCESS_PRIVATE);\n    if (attr == NULL) {\n        workq->queueprio = WORKQ_DEFAULT_PRIOQUEUE;\n        workq->overcommit = 0;\n    } else {\n        workq->queueprio = attr->queueprio;\n        workq->overcommit = attr->overcommit;\n    }\n\n    manager_workqueue_create(workq);\n\n    dbg_printf(\"created queue %p\", (void *) workq);\n\n    *workqp = workq;\n    return (0);\n}\n\nint VISIBLE\npthread_workqueue_additem_np(pthread_workqueue_t workq,\n                     void (*workitem_func)(void *), void * workitem_arg,\n                     pthread_workitem_handle_t * itemhandlep, \n                     unsigned int *gencountp)\n{\n    struct work *witem;\n    \n    if (valid_workq(workq) == 0)\n        return (EINVAL);\n\n    witem = witem_alloc(workitem_func, workitem_arg);\n\n    if (itemhandlep != NULL)\n        *itemhandlep = (pthread_workitem_handle_t *) witem;\n    if (gencountp != NULL)\n        *gencountp = witem->gencount;\n\n    manager_workqueue_additem(workq, witem);\n\n    dbg_printf(\"added item %p to queue %p\", (void *) witem, (void *) workq);\n\n    return (0);\n}\n\nint VISIBLE\npthread_workqueue_attr_init_np(pthread_workqueue_attr_t *attr)\n{\n    attr->queueprio = WORKQ_DEFAULT_PRIOQUEUE;\n    attr->sig = PTHREAD_WORKQUEUE_ATTR_SIG;\n    attr->overcommit = 0;\n    return (0);\n}\n\nint VISIBLE\npthread_workqueue_attr_destroy_np(pthread_workqueue_attr_t *attr)\n{\n    if (attr->sig == PTHREAD_WORKQUEUE_ATTR_SIG)\n        return (0);\n    else\n        return (EINVAL); /* Not an attribute struct. */\n}\n\nint VISIBLE\npthread_workqueue_attr_getovercommit_np(\n        const pthread_workqueue_attr_t *attr, int *ocommp)\n{\n    if (attr->sig == PTHREAD_WORKQUEUE_ATTR_SIG) {\n        *ocommp = attr->overcommit;\n        return (0);\n    } else \n        return (EINVAL); /* Not an attribute struct. */\n}\n\nint VISIBLE\npthread_workqueue_attr_setovercommit_np(pthread_workqueue_attr_t *attr,\n                           int ocomm)\n{\n    if (attr->sig == PTHREAD_WORKQUEUE_ATTR_SIG) {\n        attr->overcommit = ocomm;\n        return (0);\n    } else\n        return (EINVAL);\n}\n\nint VISIBLE\npthread_workqueue_attr_getqueuepriority_np(\n        pthread_workqueue_attr_t *attr, int *qpriop)\n{\n    if (attr->sig == PTHREAD_WORKQUEUE_ATTR_SIG) {\n        *qpriop = attr->queueprio;\n        return (0);\n    } else \n        return (EINVAL);\n}\n\nint VISIBLE\npthread_workqueue_attr_setqueuepriority_np(\n        pthread_workqueue_attr_t *attr, int qprio)\n{\n    if (attr->sig == PTHREAD_WORKQUEUE_ATTR_SIG) {\n        switch(qprio) {\n            case WORKQ_HIGH_PRIOQUEUE:\n            case WORKQ_DEFAULT_PRIOQUEUE:\n            case WORKQ_LOW_PRIOQUEUE:\n                attr->queueprio = qprio;\n                return (0);\n            default:\n                return (EINVAL);\n        }\n    } else\n        return (EINVAL);\n}\n\nunsigned long VISIBLE\npthread_workqueue_peek_np(const char *key)\n{\n    return manager_peek(key);\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/debug.h",
    "content": "/*\n * Copyright (c) 2011 Mark Heily <mark@heily.com>\n *\n * Permission to use, copy, modify, and distribute this software for any\n * purpose with or without fee is hereby granted, provided that the above\n * copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\n#ifndef  _DEBUG_H\n#define  _DEBUG_H\n\n#include <assert.h>\n\nextern int DEBUG_WORKQUEUE;\nextern char *WORKQUEUE_DEBUG_IDENT;\n\n#if defined(__linux__)\n\n#include <linux/unistd.h>\n#include <sys/syscall.h>\n#include <unistd.h>\n\n# define THREAD_ID ((pid_t)  syscall(__NR_gettid))\n#elif defined(__sun)\n# define THREAD_ID (pthread_self())\n#elif defined(__FreeBSD__)  /* FIXME -- could use thr_self() */\n# define THREAD_ID (0)\n#elif defined(_WIN32)\n# define THREAD_ID (int)(GetCurrentThreadId())\n#else \n# error Unsupported platform\n#endif\n\n\n#ifndef NDEBUG\n#define dbg_puts(str)           do {                                \\\n    if (DEBUG_WORKQUEUE)                                                      \\\n      fprintf(stderr, \"%s [%d]: %s(): %s\\n\",                        \\\n              WORKQUEUE_DEBUG_IDENT, THREAD_ID, __func__, str);               \\\n} while (0)\n\n#define dbg_printf(fmt,...)     do {                                \\\n    if (DEBUG_WORKQUEUE)                                                      \\\n      fprintf(stderr, \"%s [%d]: %s(): \"fmt\"\\n\",                     \\\n              WORKQUEUE_DEBUG_IDENT, THREAD_ID, __func__, __VA_ARGS__);       \\\n} while (0)\n\n#define dbg_perror(str)         do {                                \\\n    if (DEBUG_WORKQUEUE)                                                      \\\n      fprintf(stderr, \"%s [%d]: %s(): %s: %s (errno=%d)\\n\",         \\\n              WORKQUEUE_DEBUG_IDENT, THREAD_ID, __func__, str,                \\\n              strerror(errno), errno);                              \\\n} while (0)\n\n# define reset_errno()          do { errno = 0; } while (0)\n\n# if defined(_WIN32)\n#  define dbg_lasterror(str)     do {                                \\\n    if (DEBUG_WORKQUEUE)                                                      \\\n      fprintf(stderr, \"%s: [%d] %s(): %s: (LastError=%d)\\n\",        \\\n              THREAD_ID, __func__, str, GetLastError());            \\\n} while (0)\n# else\n#  define dbg_lasterror(str)     ;\n# endif\n\n#else /* NDEBUG */\n# define dbg_puts(str)           ;\n# define dbg_printf(fmt,...)     ;\n# define dbg_perror(str)         ;\n# define dbg_lasterror(str)      ;\n# define reset_errno()           ;\n#endif \n\n#endif  /* ! _DEBUG_H */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/posix/manager.c",
    "content": "/*-\n * Copyright (c) 2011, Joakim Johansson <jocke@tbricks.com>\n * Copyright (c) 2010, Mark Heily <mark@heily.com>\n * Copyright (c) 2009, Stacey Son <sson@freebsd.org>\n * Copyright (c) 2000-2008, Apple Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include \"platform.h\"\n#include \"private.h\"\n#include \"pthread_workqueue.h\"\n#include \"thread_info.h\"\n#include \"thread_rt.h\"\n\n#include <sys/time.h>\n\n/* Environment setting */\nunsigned int PWQ_RT_THREADS = 0;\ntime_t PWQ_SPIN_USEC = 10000; // The number of microseconds we should spin loop if desired\nunsigned int PWQ_SPIN_THREADS = 0; // The number of threads that should be kept spinning\nunsigned volatile int current_threads_spinning = 0; // The number of threads currently spinning\n\n/* Tunable constants */\n\n#define WORKER_IDLE_SECONDS_THRESHOLD 5\n\n/* Function prototypes */\nstatic unsigned int get_load_average(void);\nstatic void * worker_main(void *arg);\nstatic void * overcommit_worker_main(void *arg);\nstatic unsigned int get_process_limit(void);\nstatic void manager_start(void);\n\nstatic unsigned int      cpu_count;\nstatic unsigned int      worker_min;\nstatic unsigned int      worker_idle_threshold; // we don't go down below this if we had to increase # workers\n\n/* Overcommit */\nstatic struct _pthread_workqueue *ocwq[PTHREAD_WORKQUEUE_MAX];\nstatic int               ocwq_mask;\nstatic pthread_mutex_t   ocwq_mtx;\nstatic pthread_cond_t    ocwq_has_work;\nstatic unsigned int      ocwq_idle_threads;\n\n/* Non-overcommit */\nstatic struct _pthread_workqueue *wqlist[PTHREAD_WORKQUEUE_MAX];\nstatic volatile unsigned int     wqlist_mask; // mask of currently pending workqueues, atomics used for manipulation\nstatic pthread_mutex_t   wqlist_mtx;\n\nstatic pthread_cond_t    wqlist_has_work;\nstatic int               wqlist_has_manager;\nstatic pthread_attr_t    detached_attr;\n\nstatic struct {\n    volatile unsigned int load,\n                    count,\n                    idle;\n    unsigned int    sb_wake_pending;\n    pthread_mutex_t sb_wake_mtx;\n    pthread_cond_t  sb_wake_cond;\n} scoreboard;\n\nstatic unsigned int \nworker_idle_threshold_per_cpu(void)\n{\n    switch (cpu_count)\n    {\n        case 0:\n        case 1:\n        case 2:\n        case 4:\n          return 2;\n        case 6:\n          return 3;\n        case 8:\n        case 12:\n          return 4;\n        case 16:\n        case 24:\n          return 6;\n        case 32:\n        case 64:\n          return 8;\n        default:\n            return cpu_count / 4;\n    }\n    \n    return 2;\n}\n\nstatic void\nmanager_reinit(void)\n{\n    if (manager_init() < 0)\n        abort();\n}\n\nint\nmanager_init(void)\n{\n    wqlist_has_manager = 0;\n    pthread_cond_init(&wqlist_has_work, NULL);\n\n    pthread_mutex_init(&wqlist_mtx, NULL);\n    wqlist_mask = 0;\n\n    pthread_cond_init(&ocwq_has_work, NULL);\n    pthread_mutex_init(&ocwq_mtx, NULL);\n    ocwq_mask = 0;\n    ocwq_idle_threads = 0;\n\n    witem_cache_init();\n\n    cpu_count = (PWQ_ACTIVE_CPU > 0) ? (PWQ_ACTIVE_CPU) : (unsigned int) sysconf(_SC_NPROCESSORS_ONLN);\n\n    pthread_attr_init(&detached_attr);\n    pthread_attr_setdetachstate(&detached_attr, PTHREAD_CREATE_DETACHED);\n\n    /* Initialize the scoreboard */\n    pthread_cond_init(&scoreboard.sb_wake_cond, NULL);\n    pthread_mutex_init(&scoreboard.sb_wake_mtx, NULL);\n\n    /* Determine the initial thread pool constraints */\n    worker_min = 2; // we can start with a small amount, worker_idle_threshold will be used as new dynamic low watermark\n    worker_idle_threshold = worker_idle_threshold_per_cpu();\n\n    if (pthread_atfork(NULL, NULL, manager_reinit) < 0) {\n        dbg_perror(\"pthread_atfork()\");\n        return (-1);\n    }\n\n    return (0);\n}\n\nvoid\nmanager_workqueue_create(struct _pthread_workqueue *workq)\n{\n    pthread_mutex_lock(&wqlist_mtx);\n    if (!workq->overcommit && !wqlist_has_manager)\n        manager_start();\n\n    if (workq->overcommit) {\n        if (ocwq[workq->queueprio] == NULL) {\n            ocwq[workq->queueprio] = workq;\n            workq->wqlist_index = workq->queueprio;\n        } else {\n            puts(\"queue already exists\\n\");\n            abort();\n        }\n    } else {\n        if (wqlist[workq->queueprio] == NULL) {\n            wqlist[workq->queueprio] = workq; //FIXME: sort by priority\n            workq->wqlist_index = workq->queueprio;\n        } else {\n            puts(\"queue already exists\\n\");\n            abort();\n        }\n    }\n    pthread_mutex_unlock(&wqlist_mtx);\n}\n\nstatic struct work *\nwqlist_scan(int *queue_priority)\n{\n    pthread_workqueue_t workq;\n    struct work *witem;\n    int idx;\n\n    idx = ffs(wqlist_mask);\n    if (idx == 0)\n        return (NULL);\n\n    workq = wqlist[idx - 1];\n \n    pthread_spin_lock(&workq->mtx);\n\n    witem = STAILQ_FIRST(&workq->item_listhead);\n    if (witem != NULL) {\n        STAILQ_REMOVE_HEAD(&workq->item_listhead, item_entry);\n        if (STAILQ_EMPTY(&workq->item_listhead))\n        {\n            unsigned int wqlist_index_bit = (0x1 << workq->wqlist_index);\n            unsigned int new_mask;\n            // Remove this now empty wq from the mask, the only contention here is with threads performing the same\n            // operation on another workqueue, so we will not be long\n            // the 'bit' for this queue is protected by the spin lock, so we will only clear a bit which we have \n            // ownership for (see additem() below for the corresponding part on the producer side)\n            do\n            {\n                new_mask = atomic_and(&wqlist_mask, ~(wqlist_index_bit));\n            } while (new_mask & wqlist_index_bit);\n        }\n        if (queue_priority != NULL)\n            *queue_priority = workq->queueprio;\n\n        pthread_spin_unlock(&workq->mtx);\n        return (witem);\n    } else {\n        // this could happen if multiple threads raced and found the same bit with ffs() and\n        // emptied the queue completely, so we should just bail out\n        pthread_spin_unlock(&workq->mtx);\n        return (NULL);\n    }\n}\n\nstatic void _wakeup_manager(void)\n{\n    dbg_puts(\"asking manager to wake up\");\n\n    pthread_mutex_lock(&scoreboard.sb_wake_mtx);\n    scoreboard.sb_wake_pending = 1;\n    pthread_cond_signal(&scoreboard.sb_wake_cond);\n    pthread_mutex_unlock(&scoreboard.sb_wake_mtx);\n    return;\n}\n\nstatic void *\novercommit_worker_main(void *arg)\n{\n    struct timespec ts;\n    pthread_workqueue_t workq;\n    void (*func)(void *);\n    void *func_arg;\n    struct work *witem;\n    int rv, idx;\n\n    (void)arg;\n     \n    pthread_mutex_lock(&ocwq_mtx);\n\n    for (;;) {\n        /* Find the highest priority workqueue that is non-empty */\n        idx = ffs(ocwq_mask);\n        if (idx > 0) {\n            workq = ocwq[idx - 1];\n            witem = STAILQ_FIRST(&workq->item_listhead);\n            if (witem != NULL) {\n                /* Remove the first work item */\n                STAILQ_REMOVE_HEAD(&workq->item_listhead, item_entry);\n                if (STAILQ_EMPTY(&workq->item_listhead))\n                    ocwq_mask &= ~(0x1 << workq->wqlist_index);\n                /* Execute the work item */\n                pthread_mutex_unlock(&ocwq_mtx);\n                func = witem->func;\n                func_arg = witem->func_arg;\n                witem_free(witem);\n                func(func_arg);    \n                pthread_mutex_lock(&ocwq_mtx);\n                continue;\n            }\n        }\n\n        /* Wait for more work to be available. */\n        clock_gettime(CLOCK_REALTIME, &ts);\n        ts.tv_sec += 15;\n        ocwq_idle_threads++;\n        dbg_printf(\"waiting for work (idle=%d)\", ocwq_idle_threads);\n        rv = pthread_cond_timedwait(&ocwq_has_work, &ocwq_mtx, &ts);\n        if (rv != 0) {\n            /* Normally, the signaler will decrement the idle counter,\n               but this path is not taken in response to a signaler.\n             */\n            ocwq_idle_threads--;\n\t    pthread_mutex_unlock(&ocwq_mtx);\n\n            if (rv == ETIMEDOUT) {\n                dbg_puts(\"timeout, no work available\");\n                break;\n            } else {\n                dbg_perror(\"pthread_cond_timedwait\");\n                //TODO: some kind of crash mechanism\n                break;\n            }\n        }\n    }\n\n    dbg_printf(\"worker exiting (idle=%d)\", ocwq_idle_threads);\n    pthread_exit(NULL);\n}\n\nstatic void *\nworker_main(void *arg)\n{\n    struct work *witem;\n    void (*func)(void *);\n    void *func_arg;\n    int queue_priority = 0;\n    struct timespec ts_start, ts_now;\n    \n    (void) arg;\n    dbg_puts(\"worker thread started\");\n\n    if (PWQ_RT_THREADS)\n        ptwq_set_current_thread_priority(WORKQ_HIGH_PRIOQUEUE); // start at highest priority possible\n        \n    for (;;) {\n\n        witem = wqlist_scan(&queue_priority);\n\n        // Only take overhead of sleeping and/or spinning if we \n        // could not get a witem cheaply using the spinlock above\n        if (slowpath(!witem))\n        {\n            // Optional busy loop for getting the next item for a while if so configured\n            // We'll only spin limited thread at a time (this is really mostly useful when running\n            // in low latency configurations using dedicated processor sets)\n            if ((PWQ_SPIN_THREADS > 0) && (current_threads_spinning <= PWQ_SPIN_THREADS))\n            {\n                atomic_inc(&current_threads_spinning);\n\n                // If we are racing with another thread, let's skip\n                // spinning and instead go through the slowpath below\n\n                if (current_threads_spinning <= PWQ_SPIN_THREADS)\n                {\n                    clock_gettime(CLOCK_REALTIME, &ts_start);\n                    ts_now.tv_sec = ts_start.tv_sec;\n                    ts_now.tv_nsec = ts_start.tv_nsec;\n                    \n                    // Spin until we get an item or PWQ_SPIN_USEC microseconds passes\n                    while (!witem && (((ts_now.tv_sec - ts_start.tv_sec) * 1000000) + (((ts_now.tv_nsec - ts_start.tv_nsec) / 1000)) <= PWQ_SPIN_USEC))\n                    {\n                        witem = wqlist_scan(&queue_priority);\n                        if (!witem)\n                        {\n                            // Perhaps a hardware pause\n                            // instruction could be used here to keep the pace down, probably not needed though\n                            clock_gettime(CLOCK_REALTIME, &ts_now);\n                        }\n                    }                \n                }\n                \n                atomic_dec(&current_threads_spinning);\n            }\n\n            // No witem from the busy loop, let's wait for wakeup\n            if (!witem)\n            {\n                pthread_mutex_lock(&wqlist_mtx);\n\n                /*\n                  TODO: Consider using pthread_cond_timedwait() so that\n                  workers can self-terminate if they are idle too long.\n                  This would also be a failsafe in case there are bugs\n                  with the scoreboard that cause us to \"leak\" workers.\n                 */\n                while ((witem = wqlist_scan(&queue_priority)) == NULL)\n                    pthread_cond_wait(&wqlist_has_work, &wqlist_mtx);\n\n                pthread_mutex_unlock(&wqlist_mtx);\n            }\n        }\n\n        atomic_dec(&scoreboard.idle);\n\n        if (slowpath(witem->func == NULL)) {\n            dbg_puts(\"worker exiting..\");\n            atomic_dec(&scoreboard.count);\n            witem_free(witem);\n            pthread_exit(0);\n        }\n\n        dbg_printf(\"count=%u idle=%u wake_pending=%u\", \n            scoreboard.count, scoreboard.idle,  scoreboard.sb_wake_pending);\n        \n        /* Force the manager thread to wakeup if all workers are busy */\n        if (slowpath(scoreboard.idle == 0 && !scoreboard.sb_wake_pending))\n            _wakeup_manager();\n\n        // If using RT threads, decrease thread prio if we aren't a high prio queue\n        if (PWQ_RT_THREADS && (queue_priority != WORKQ_HIGH_PRIOQUEUE))\n            ptwq_set_current_thread_priority(queue_priority);\n        \n        /* Invoke the callback function, free witem first for possible reuse */\n        func = witem->func;\n        func_arg = witem->func_arg;\n        witem_free(witem);\n        \n        func(func_arg);    \n        \n        atomic_inc(&scoreboard.idle); // initial inc was one in worker_start, this is to avoid a race\n\n        // Only take the overhead and change RT priority back if it was not a high priority queue being serviced\n        if (PWQ_RT_THREADS && (queue_priority != WORKQ_HIGH_PRIOQUEUE))\n            ptwq_set_current_thread_priority(WORKQ_HIGH_PRIOQUEUE);\n    }\n\n    /* NOTREACHED */\n    return (NULL);\n}\n\nstatic int\nworker_start(void) \n{\n    pthread_t tid;\n\n    dbg_puts(\"Spawning another worker\");\n\n    atomic_inc(&scoreboard.idle);\n    atomic_inc(&scoreboard.count);\n\n    if (pthread_create(&tid, &detached_attr, worker_main, NULL) != 0) {\n        dbg_perror(\"pthread_create(3)\");\n        atomic_dec(&scoreboard.idle);\n        atomic_dec(&scoreboard.count);\n        return (-1);\n    }\n\n    return (0);\n}\n\nstatic int\nworker_stop(void) \n{\n    struct work *witem;\n    pthread_workqueue_t workq;\n    int i;\n    unsigned int wqlist_index_bit, new_mask;\n\n    witem = witem_alloc(NULL, NULL);\n\n    pthread_mutex_lock(&wqlist_mtx);\n    for (i = 0; i < PTHREAD_WORKQUEUE_MAX; i++) {\n        workq = wqlist[i];\n        if (workq == NULL)\n            continue;\n\n        wqlist_index_bit = (0x1 << workq->wqlist_index);\n\n        pthread_spin_lock(&workq->mtx);\n        \n        do\n        {\n            new_mask = atomic_or(&wqlist_mask, wqlist_index_bit);\n        } while (!(new_mask & wqlist_index_bit));\n\n        STAILQ_INSERT_TAIL(&workq->item_listhead, witem, item_entry);\n\n        pthread_spin_unlock(&workq->mtx);\n        \n        pthread_cond_signal(&wqlist_has_work);\n        pthread_mutex_unlock(&wqlist_mtx);\n\n        return (0);\n    }\n\n    /* FIXME: this means there are no workqueues.. should never happen */\n    dbg_puts(\"Attempting to add a workitem without a workqueue\");\n    abort();\n\n    return (-1);\n}\n\nstatic void *\nmanager_main(void *unused __attribute__ ((unused)))\n{\n    unsigned int load_max = cpu_count;\n    unsigned int worker_max, current_thread_count = 0;\n    unsigned int worker_idle_seconds_accumulated = 0;\n    unsigned int max_threads_to_stop = 0;\n    unsigned int i;\n    int cond_wait_rv = 0;\n    sigset_t sigmask;\n    struct timespec   ts;\n    struct timeval    tp;\n\n    worker_max = get_process_limit();\n    scoreboard.load = get_load_average();\n\n    /* Block all signals */\n    sigfillset(&sigmask);\n    pthread_sigmask(SIG_BLOCK, &sigmask, NULL);\n\n    /* Create the minimum number of workers */\n    scoreboard.count = 0;\n    for (i = 0; i < worker_min; i++)\n        worker_start();\n\n    for (;;) {\n\n        pthread_mutex_lock(&scoreboard.sb_wake_mtx);\n\n        dbg_puts(\"manager is sleeping\");\n        \n        (void) gettimeofday(&tp, NULL); // TODO - error checking\n        \n        /* Convert from timeval to timespec */\n        ts.tv_sec  = tp.tv_sec;\n        ts.tv_nsec = tp.tv_usec * 1000;\n        ts.tv_sec += 1; // wake once per second and check if we have too many idle threads...\n\n        // We should only sleep on the condition if there are no pending signal, spurious wakeup is also ok\n        if (scoreboard.sb_wake_pending == 0)\n            cond_wait_rv = pthread_cond_timedwait(&scoreboard.sb_wake_cond, &scoreboard.sb_wake_mtx, &ts);\n\n        scoreboard.sb_wake_pending = 0; // we must set this before spawning any new threads below, or we race...\n\n        dbg_puts(\"manager is awake\");\n\n        dbg_printf(\"load=%u idle=%u workers=%u max_workers=%u worker_min = %u\",\n                   scoreboard.load, scoreboard.idle, scoreboard.count, worker_max, worker_min);\n                \n        // If no workers available, check if we should create a new one\n        if (scoreboard.idle == 0 && (scoreboard.count > 0)) // last part required for an extremely unlikely race at startup\n        {\n            scoreboard.load = get_load_average();\n            \n            if ((scoreboard.load < load_max) && (scoreboard.count < worker_max)) \n            {\n                if (scoreboard.count < worker_idle_threshold) // allow cheap rampup up to worker_idle_threshold without going to /proc\n                {\n                    worker_start();\n                }\n                else // check through /proc, will be a bit more expensive in terms of latency\n                if (threads_runnable(&current_thread_count) == 0)\n                {\n                    // only start thread if we have less runnable threads than cpus\n                    if (current_thread_count >= cpu_count)\n                    {\n                        dbg_printf(\"Not spawning worker thread, thread_runnable = %d >= cpu_count = %d\", \n                                   current_thread_count, cpu_count);\n                    }\n                    else\n                    {\n                        worker_start();\n                    }\n                }\n                else // always start thread if we can't get runnable count\n                {\n                    worker_start();\n                }\n            }\n            else // high load, allow rampup up to worker_idle_threshold regardless of this\n            {\n                if (scoreboard.count < worker_idle_threshold) \n                {\n                    worker_start();\n                }                \n            }\n        }\n        else\n        {\n            if (cond_wait_rv == ETIMEDOUT) // Only check for ramp down on the 'timer tick'\n            {\n                if ((scoreboard.idle - worker_idle_threshold) > 0) // only accumulate if there are 'too many' idle threads\n                {\n                    worker_idle_seconds_accumulated += scoreboard.idle; // keep track of many idle 'thread seconds' we have\n                \n                    dbg_printf(\"worker_idle_seconds_accumulated = %d, scoreboard.idle = %d, scoreboard.count = %d\\n\",\n                       worker_idle_seconds_accumulated, scoreboard.idle, scoreboard.count);\n                }\n                \n                // Only consider ramp down if we have accumulated enough thread 'idle seconds'\n                // this logic will ensure that a large number of idle threads will ramp down faster\n                max_threads_to_stop = worker_idle_seconds_accumulated / WORKER_IDLE_SECONDS_THRESHOLD;\n\n                if (max_threads_to_stop > 0)\n                {\n                    worker_idle_seconds_accumulated = 0; \n\n                    if (max_threads_to_stop > (scoreboard.idle - worker_idle_threshold))\n                        max_threads_to_stop = (scoreboard.idle - worker_idle_threshold);\n\n                    // Only stop threads if we actually have 'too many' idle ones in the pool\n                    if (scoreboard.idle > worker_idle_threshold)\n                    {\n                        for (i = 0; i < max_threads_to_stop; i++)\n                        {\n                            dbg_puts(\"Removing one thread from the thread pool\");\n                            worker_stop();\n                        }                    \n                    }\n                }\n            }            \n        }\n        \n        pthread_mutex_unlock(&scoreboard.sb_wake_mtx);\n    }\n\n    /*NOTREACHED*/\n    return (NULL);\n}\n\nstatic void\nmanager_start(void)\n{\n    pthread_t tid;\n    int rv;\n\n    dbg_puts(\"starting the manager thread\");\n\n    do {\n        rv = pthread_create(&tid, &detached_attr, manager_main, NULL);\n        if (rv == EAGAIN) {\n            sleep(1);\n        } else if (rv != 0) {\n            /* FIXME: not nice */\n            dbg_printf(\"thread creation failed, rv=%d\", rv);\n            abort();\n        }\n    } while (rv != 0);\n\n    wqlist_has_manager = 1;\n}\n\nvoid\nmanager_workqueue_additem(struct _pthread_workqueue *workq, struct work *witem)\n{\n    unsigned int wqlist_index_bit = (0x1 << workq->wqlist_index);\n    \n    if (workq->overcommit) {\n        pthread_t tid;\n\n        pthread_mutex_lock(&ocwq_mtx);\n        pthread_spin_lock(&workq->mtx);\n        STAILQ_INSERT_TAIL(&workq->item_listhead, witem, item_entry);\n        pthread_spin_unlock(&workq->mtx);\n        ocwq_mask |= wqlist_index_bit;\n        if (ocwq_idle_threads > 0) {\n            dbg_puts(\"signaling an idle worker\");\n            pthread_cond_signal(&ocwq_has_work);\n            ocwq_idle_threads--;\n        } else {\n            (void)pthread_create(&tid, &detached_attr, overcommit_worker_main, NULL);\n        }\n        pthread_mutex_unlock(&ocwq_mtx);\n    } else {\n        pthread_spin_lock(&workq->mtx);\n\n        // Only set the mask for the first item added to the workqueue. \n        if (STAILQ_EMPTY(&workq->item_listhead))\n        {\n            unsigned int new_mask;\n            \n            // The only possible contention here are with threads performing the same\n            // operation on another workqueue, so we will not be blocked long... \n            // Threads operating on the same workqueue will be serialized by the spinlock so it is very unlikely.\n            do\n            {\n                new_mask = atomic_or(&wqlist_mask, wqlist_index_bit);\n            } while (!(new_mask & wqlist_index_bit));\n        }\n        \n        STAILQ_INSERT_TAIL(&workq->item_listhead, witem, item_entry);\n\n        pthread_spin_unlock(&workq->mtx);\n\n        // Only signal thread wakeup if there are idle threads available\n        // and no other thread have managed to race us and empty the wqlist on our behalf already\n        if ((scoreboard.idle > 0)) // && ((wqlist_mask & wqlist_index_bit) != 0)) // disabling this fringe optimization for now\n        {\n            pthread_mutex_lock(&wqlist_mtx);\n            pthread_cond_signal(&wqlist_has_work);\n            pthread_mutex_unlock(&wqlist_mtx);\n        }\n    }\n}\n\n\nstatic unsigned int\nget_process_limit(void)\n{\n#if __linux__\n    struct rlimit rlim;\n\n    if (getrlimit(RLIMIT_NPROC, &rlim) < 0) {\n        dbg_perror(\"getrlimit(2)\");\n        return (50);\n    } else {\n        return (rlim.rlim_max);\n    }\n#else\n    /* Solaris doesn't define this limit anywhere I can see.. */\n    return (64);\n#endif\n}\n\nstatic unsigned int\nget_load_average(void)\n{\n    double loadavg;\n\n    /* TODO: proper error handling */\n    if (getloadavg(&loadavg, 1) != 1) {\n        dbg_perror(\"getloadavg(3)\");\n        return (1);\n    }\n    if (loadavg > INT_MAX || loadavg < 0)\n        loadavg = 1;\n\n    return ((int) loadavg);\n}\n\nunsigned long \nmanager_peek(const char *key)\n{\n    uint64_t rv;\n\n    if (strcmp(key, \"combined_idle\") == 0) {\n        rv = scoreboard.idle;\n        if (scoreboard.idle > worker_min)\n            rv -= worker_min;\n        rv += ocwq_idle_threads;\n    } else if (strcmp(key, \"idle\") == 0) {\n        rv = scoreboard.idle;\n        if (scoreboard.idle > worker_min)\n            rv -= worker_min;\n    } else if (strcmp(key, \"ocomm_idle\") == 0) {\n        rv = ocwq_idle_threads;\n    } else {\n        dbg_printf(\"invalid key: %s\", key);\n        abort();\n    }\n\n    return rv;\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/posix/platform.h",
    "content": "#ifndef _PTWQ_POSIX_PLATFORM_H\n#define _PTWQ_POSIX_PLATFORM_H 1\n\n/* Workaround to get visibility for _SC_NPROCESSORS_ONLN on FreeBSD */\n#define __BSD_VISIBLE 1\n\n#include <sys/resource.h>\n#include <sys/queue.h>\n#include <stdint.h>\n#include <string.h>\n#include <strings.h>\n#include <unistd.h>\n#include <pthread.h>\n\n#ifdef __sun\n# include <sys/loadavg.h>\n#endif\n\n/* GCC atomic builtins. \n * See: http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html \n */\n#ifdef __sun\n# include <atomic.h>\n# define atomic_inc      atomic_inc_32\n# define atomic_dec      atomic_dec_32\n# define atomic_and      atomic_and_uint_nv\n# define atomic_or      atomic_or_uint_nv\n#else\n# define atomic_inc(p)   __sync_add_and_fetch((p), 1)\n# define atomic_dec(p)   __sync_sub_and_fetch((p), 1)\n# define atomic_and(p,v)   __sync_and_and_fetch((p), (v))\n# define atomic_or(p,v)   __sync_or_and_fetch((p), (v))\n#endif\n\n#ifdef MAKE_STATIC\n# define CONSTRUCTOR\n#else\n# define CONSTRUCTOR __attribute__ ((constructor))\n#endif\n#define VISIBLE     __attribute__((visibility(\"default\")))\n\n\n#endif  /* _PTWQ_POSIX_PLATFORM_H */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/posix/thread_info.c",
    "content": "/*\n * Copyright (c) 2011, Joakim Johansson <jocke@tbricks.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include \"platform.h\"\n#include \"private.h\"\n\n#if defined(__sun)\n\n#include <stdio.h>\n#include <procfs.h>\n#include <sys/types.h>\n#include <sys/stat.h>\n#include <sys/syscall.h>\n#include <fcntl.h>\n\n/* \n \n /proc for Solaris\n \n STRUCTURE OF /proc/pid\n A given directory /proc/pid contains the following  entries.\n A  process  can  use  the  invisible  alias /proc/self if it\n wishes to open one of its own /proc files (invisible in  the\n sense  that the name ``self'' does not appear in a directory\n listing  of  /proc  obtained  from  ls(1),  getdents(2),  or\n readdir(3C)).\n...\n lstatus\n Contains a  prheader  structure  followed  by  an  array  of\n lwpstatus structures, one for each active lwp in the process\n (see   also   /proc/pid/lwp/lwpid/lwpstatus,   below).   The\n prheader  structure  describes  the  number  and size of the\n array entries that follow.\n \n typedef struct prheader {\n long pr_nent;        // number of entries \n size_t pr_entsize;   // size of each entry, in bytes \n } prheader_t;\n\n The lwpstatus structure may grow by the addition of elements\n at  the  end in future releases of the system. Programs must\n use pr_entsize in the  file  header  to  index  through  the\n array.  These comments apply to all /proc files that include\n a prheader structure (lpsinfo and lusage, below).\n \n /proc/self/lstatus\n */\n\nint threads_runnable(unsigned int *threads_running)\n{\n    const char *path = \"/proc/self/lstatus\";\n\tint read_fd, retval = -1, i;\n    unsigned int running_count = 0;\n    char *lwp_buffer;\n    ssize_t actual_read;\n    lwpstatus_t *lwpstatus;\n    prheader_t prheader;\n\t    \n    read_fd = open(path, O_RDONLY);\n\tif (read_fd == -1) \n    {\n        dbg_perror(\"open()\");\n        return retval;\n\t}\n\n\tif (fcntl(read_fd, F_SETFL, O_NONBLOCK) != 0) \n    {\n        dbg_perror(\"fcntl()\");\n        goto errout;\n\t}\n\n    actual_read = read(read_fd, &prheader, sizeof(prheader_t));\n\n    if (actual_read != sizeof(prheader_t))\n    {\n        dbg_printf(\"read returned wrong number of bytes - %ld instead of %ld\", actual_read, sizeof(prheader_t));\n        goto errout;\n    }\n\n    dbg_printf(\"read prheader, pr_nent = %ld, pr_entsize = %ld, sizeof(lwpstatus_t) = %ld\",prheader.pr_nent, prheader.pr_entsize, sizeof(lwpstatus_t));\n\n    lwp_buffer = malloc(prheader.pr_nent * prheader.pr_entsize);\n\n    if (!lwp_buffer)\n    {\n        dbg_perror(\"malloc(prheader.pr_nent * prheader.pr_entsize)\");\n        goto errout;\n    }\n\n    actual_read = read(read_fd, lwp_buffer, (prheader.pr_nent * prheader.pr_entsize));\n\n    if (actual_read != (prheader.pr_nent * prheader.pr_entsize))\n    {\n        dbg_printf(\"read returned wrong number of bytes - %ld instead of %ld\", actual_read, prheader.pr_nent * prheader.pr_entsize);\n        free(lwp_buffer);\n        goto errout;\n    }\n\n    for (i = 0; i < prheader.pr_nent; i++)\n    {\n        lwpstatus = (lwpstatus_t *) (lwp_buffer + (i * prheader.pr_entsize));\n        dbg_printf(\"lwp %d, syscall = %d\", lwpstatus->pr_lwpid, lwpstatus->pr_syscall);\n        \n        if (lwpstatus->pr_flags & PR_ASLEEP)\n        {            \n            dbg_printf(\"lwp %d is sleeping\",lwpstatus->pr_lwpid);\n        }   \n        else\n        {\n            running_count++;\n            dbg_printf(\"lwp %d is running\",lwpstatus->pr_lwpid);\n        }        \n    }\n\n    free(lwp_buffer);\n    retval = 0;\n    *threads_running = running_count;\n    \nerrout:\n    if (close(read_fd) != 0)\n    {\n        dbg_perror(\"close()\");\n    }\n    \n    return retval;\n}\n\n#elif defined(__linux__)\n\n/* \n \n /proc for Linux\n \n /proc/self\n This directory refers to the process accessing the /proc filesystem, and is identical to the /proc directory named by the process ID of the same process.\n \n \n \n /proc/[number]/stat\n Status information about the process. This is used by ps(1). It is defined in /usr/src/linux/fs/proc/array.c.\n The fields, in order, with their proper scanf(3) format specifiers, are:\n \n pid %d\n The process ID.\n \n comm %s\n The filename of the executable, in parentheses. This is visible whether or not the executable is swapped out.\n \n state %c\n One character from the string \"RSDZTW\" where R is running, S is sleeping in an interruptible wait, D is waiting in uninterruptible disk sleep, Z is zombie, T is traced or stopped (on a signal), and W is paging.\n \n ---------------\n \n /proc/[number]/task (since kernel 2.6.0-test6)\n This is a directory that contains one subdirectory for each thread in the process. The name of each subdirectory is the numerical thread ID of the thread (see gettid(2)). Within each of these subdirectories, there is a set of files with the same names and contents as under the /proc/[number] directories. For attributes that are shared by all threads, the contents for each of the files under the task/[thread-ID] subdirectories will be the same as in the corresponding file in the parent /proc/[number] directory (e.g., in a multithreaded process, all of the task/[thread-ID]/cwd files will have the same value as the /proc/[number]/cwd file in the parent directory, since all of the threads in a process share a working directory). For attributes that are distinct for each thread, the corresponding files under task/[thread-ID] may have different values (e.g., various fields in each of the task/[thread-ID]/status files may be different for each thread).\n In a multithreaded process, the contents of the /proc/[number]/task directory are not available if the main thread has already terminated (typically by calling pthread_exit(3)).\n \n ---------------\n\n Example:\n read data from /proc/self/task/11019/stat: [11019 (lt-dispatch_sta) D 20832 10978 20832 34819 10978 4202560 251 3489 0 0 0 2 2 5 20 0 37 0 138715543 2538807296 13818 18446744073709551615 4194304 4203988 140736876632592 139770298610200 139771956665732 0 0 0 0 0 0 0 -1 2 0 0 0 0 0\n\n*/\n\n#include <stdio.h>\n#include <sys/types.h>\n#include <dirent.h>\n#include <errno.h>\n#include <fcntl.h>\n\n#define MAX_RESULT_SIZE 4096\n\nstatic int _read_file(const char *path, char *result)\n{\n\tint read_fd, retval = -1;\n    ssize_t actual_read;\n    \n    read_fd = open(path, O_RDONLY);\n\tif (read_fd == -1) \n    {\n        dbg_perror(\"open()\");\n        return retval;\n\t}\n    \n\tif (fcntl(read_fd, F_SETFL, O_NONBLOCK) != 0) \n    {\n        dbg_perror(\"fcntl()\");\n        goto errout;\n\t}\n        \n\n    actual_read = read(read_fd, result, MAX_RESULT_SIZE);\n\t\n# ifdef __ia64__\n    dbg_printf(\"read %ld from %s\", actual_read, path);\n# else\n    dbg_printf(\"read %zd from %s\", actual_read, path);\n#endif\n\n    if (actual_read == 0)\n    {\n        goto errout;\n    }\n    \n    retval = 0;\n    \nerrout:\n    if (close(read_fd) != 0)\n    {\n        dbg_perror(\"close()\");\n    }\n    \n    return retval;\n}\n\n\nint threads_runnable(unsigned int *threads_running)\n{\n    DIR             *dip;\n    struct dirent   *dit;\n    const char *task_path = \"/proc/self/task\";\n    char thread_path[1024];\n    char thread_data[MAX_RESULT_SIZE+1];\n    char dummy[MAX_RESULT_SIZE+1];\n    char state;\n    int pid;\n    unsigned int running_count = 0;\n\n    dbg_puts(\"Checking threads_runnable()\");\n\n    if ((dip = opendir(task_path)) == NULL)\n    {\n        dbg_perror(\"opendir\");\n        return -1;\n    }\n        \n    while ((dit = readdir(dip)) != NULL)\n    {\n        memset(thread_data, 0, sizeof(thread_data));\n        \n        sprintf(thread_path, \"%s/%s/stat\",task_path, dit->d_name);\n\n        if (_read_file(thread_path, thread_data) == 0)\n        {\n            if (sscanf(thread_data, \"%d %s %c\", &pid, dummy, &state) == 3)\n            {\n                dbg_printf(\"The state for thread %s is %c\", dit->d_name, state);\n                switch (state)\n                {\n                    case 'R':\n                        running_count++;\n                        break;\n                    default:\n                        break;\n                }\n            }\n            else\n            {\n                dbg_printf(\"Failed to scan state for thread %s (%s)\", dit->d_name, thread_data);\n            }\n        }\n    }\n\n    if (closedir(dip) == -1)\n    {\n        perror(\"closedir\");\n    }\n\n    dbg_printf(\"Running count is %d\", running_count);\n    *threads_running = running_count;\n    \n    return 0;\n}\n\n#else\n\nint threads_runnable(unsigned int *threads_running)\n{\n    return -1;\n}\n\n#endif\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/posix/thread_rt.c",
    "content": "/*\n * Copyright (c) 2011, Joakim Johansson <jocke@tbricks.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include \"platform.h\"\n#include \"private.h\"\n\n#if defined(__sun)\n\n#include <stdio.h>\n#include <pthread.h>\n#include <sys/types.h>\n#include <sys/signal.h>\n#include <sys/procset.h>\n#include <sys/priocntl.h>\n#include <sys/rtpriocntl.h>\n#include <sys/tspriocntl.h>\n#include <sys/iapriocntl.h>\n#include <sys/fsspriocntl.h>\n#include <sys/fxpriocntl.h>\n\n// Set the RT priority - it is inveresed from the queue priorities, higher is better\n// We give '0' to low prio queues and the highest possible for the 'high' prio queue (currently 2)\n\nvoid ptwq_set_current_thread_priority(int priority)\n{\n    long retval = 0;\n\n    dbg_printf(\"reconfiguring thread for priority level=%u\", priority);\n\n    switch (priority)\n    {\n        case WORKQ_LOW_PRIOQUEUE:\n            retval = priocntl(P_LWPID, P_MYID, PC_SETXPARMS, \"TS\", 0); // run low prio queues as time sharing\n            break;\n        case WORKQ_DEFAULT_PRIOQUEUE:\n            retval = priocntl(P_LWPID, P_MYID, PC_SETXPARMS, \"RT\", RT_KY_PRI, WORKQ_NUM_PRIOQUEUE - priority - 1, 0);\n            break;\n        case WORKQ_HIGH_PRIOQUEUE:\n            retval = priocntl(P_LWPID, P_MYID, PC_SETXPARMS, \"RT\", RT_KY_PRI, WORKQ_NUM_PRIOQUEUE - priority - 1, 0);\n            break;\n        default:\n            dbg_printf(\"Unknown priority level = %u\", priority);\n            break;\n    }\n    \n\n    if (retval != 0)\n        dbg_perror(\"priocntl()\");\n\n    return;\n}\n\n#else\n\nvoid ptwq_set_current_thread_priority(int priority  __attribute__ ((unused)))\n{    \n    return;\n}\n\n#endif\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/private.h",
    "content": "/*-\n * Copyright (c) 2011, Mark Heily <mark@heily.com>\n * Copyright (c) 2009, Stacey Son <sson@freebsd.org>\n * Copyright (c) 2000-2008, Apple Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#ifndef _PTWQ_PRIVATE_H\n#define _PTWQ_PRIVATE_H 1\n\n#include <errno.h>\n#include <limits.h>\n#include <signal.h>\n#include <stdlib.h>\n#include <stdio.h>\n#include <string.h>\n\n#if defined(_WIN32)\n# include \"windows/platform.h\"\n#else\n# include \"posix/platform.h\"\n#endif\n\n#include \"pthread_workqueue.h\"\n#include \"debug.h\"\n\n/* The maximum number of workqueues that can be created.\n   This is based on libdispatch only needing 6 workqueues.\n   */\n#define PTHREAD_WORKQUEUE_MAX 31\n\n/* The total number of priority levels. */\n#define WORKQ_NUM_PRIOQUEUE 3\n\n/* Signatures/magic numbers.  */\n#define PTHREAD_WORKQUEUE_SIG       0xBEBEBEBE\n#define PTHREAD_WORKQUEUE_ATTR_SIG  0xBEBEBEBE \n\n/* Whether to use real-time threads for the workers if available */\n\nextern unsigned int PWQ_RT_THREADS;\nextern time_t PWQ_SPIN_USEC;\nextern unsigned int PWQ_SPIN_THREADS;\n\n/* A limit of the number of cpu:s that we view as available, useful when e.g. using processor sets */\nextern unsigned int PWQ_ACTIVE_CPU;\n\n#if __GNUC__\n#define fastpath(x)     ((__typeof__(x))__builtin_expect((long)(x), ~0l))\n#define slowpath(x)     ((__typeof__(x))__builtin_expect((long)(x), 0l))\n#else\n#define fastpath(x) (x)\n#define slowpath(x) (x)\n#endif\n\n#define CACHELINE_SIZE\t64\n#define ROUND_UP_TO_CACHELINE_SIZE(x)\t(((x) + (CACHELINE_SIZE - 1)) & ~(CACHELINE_SIZE - 1))\n\n/*\n * The work item cache, has three different optional implementations:\n * 1. No cache, just normal malloc/free using the standard malloc library in use\n * 2. Libumem based object cache, requires linkage with libumem - for non-Solaris see http://labs.omniti.com/labs/portableumem\n *    this is the most balanced cache supporting migration across threads of allocated/freed witems\n * 3. TSD based cache, modelled on libdispatch continuation implementation, can lead to imbalance with assymetric \n *    producer/consumer threads as allocated memory is cached by the thread freeing it\n */\n\n#define WITEM_CACHE_TYPE 1 // Set to 1, 2 or 3 to specify witem cache implementation to use\n\nstruct work {\n    STAILQ_ENTRY(work)   item_entry; \n    void               (*func)(void *);\n    void                *func_arg;\n    unsigned int         flags;\n    unsigned int         gencount;\n#if (WITEM_CACHE_TYPE == 3)\n\tstruct work *volatile wi_next;\n#endif\n};\n\nstruct _pthread_workqueue {\n    unsigned int         sig;    /* Unique signature for this structure */\n    unsigned int         flags;\n    int                  queueprio;\n    int                  overcommit;\n    unsigned int         wqlist_index;\n    STAILQ_HEAD(,work)   item_listhead;\n    pthread_spinlock_t   mtx;\n#ifdef WORKQUEUE_PLATFORM_SPECIFIC\n\tWORKQUEUE_PLATFORM_SPECIFIC;\n#endif\n};\n\n/* manager.c */\nint manager_init(void);\nunsigned long manager_peek(const char *);\nvoid manager_workqueue_create(struct _pthread_workqueue *);\nvoid manager_workqueue_additem(struct _pthread_workqueue *, struct work *);\n\nstruct work *witem_alloc(void (*func)(void *), void *func_arg); // returns a properly initialized witem\nvoid witem_free(struct work *wi);\nint witem_cache_init(void);\nvoid witem_cache_cleanup(void *value);\n\n#endif  /* _PTWQ_PRIVATE_H */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/thread_info.h",
    "content": "/*\n * Copyright (c) 2011, Joakim Johansson <jocke@tbricks.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#ifndef _PTWQ_POSIX_THREAD_INFO_H\n#define _PTWQ_POSIX_THREAD_INFO_H 1\n\nint threads_runnable(unsigned int *threads_running);\n\n#endif  /* _PTWQ_POSIX_THREAD_INFO_H */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/thread_rt.h",
    "content": "/*\n * Copyright (c) 2011, Joakim Johansson <jocke@tbricks.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#ifndef _PTWQ_THREAD_RT_H\n#define _PTWQ_THREAD_RT_H 1\n\nvoid ptwq_set_current_thread_priority(int priority); // higher is better\n\n#endif  /* _PTWQ_THREAD_RT_H */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/windows/manager.c",
    "content": "/*-\n * Copyright (c) 2011, Mark Heily <mark@heily.com>\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include \"platform.h\"\n#include \"../private.h\"\n#include \"pthread_workqueue.h\"\n\n#ifdef PROVIDE_LEGACY_XP_SUPPORT\n\nstatic LIST_HEAD(, _pthread_workqueue) wqlist[WORKQ_NUM_PRIOQUEUE];\nstatic pthread_rwlock_t wqlist_mtx;\n\nint\nmanager_init(void)\n{\n\tpthread_rwlock_init(&wqlist_mtx, NULL);\n    return (0);\n}\n\nvoid\nmanager_workqueue_create(struct _pthread_workqueue *workq)\n{\n    pthread_rwlock_wrlock(&wqlist_mtx);\n    LIST_INSERT_HEAD(&wqlist[workq->queueprio], workq, wqlist_entry);\n\tpthread_rwlock_unlock(&wqlist_mtx);\n\n\tpthread_spin_init(&workq->mtx, PTHREAD_PROCESS_PRIVATE);\n}\n\n/* The caller must hold the wqlist_mtx. */\nstatic struct work *\nwqlist_scan(void)\n{\n    pthread_workqueue_t workq;\n    struct work *witem = NULL;\n    int i;\n\n    pthread_rwlock_rdlock(&wqlist_mtx);\n    for (i = 0; i < WORKQ_NUM_PRIOQUEUE; i++) {\n        LIST_FOREACH(workq, &wqlist[i], wqlist_entry) {\n\t\t\tpthread_spin_lock(&workq->mtx);\n\n            if (STAILQ_EMPTY(&workq->item_listhead)) {\n\t\t\t\tpthread_spin_unlock(&workq->mtx);\n\t\t\t\tcontinue;\n\t\t\t}\n\n            witem = STAILQ_FIRST(&workq->item_listhead);\n            if (witem != NULL)\n                STAILQ_REMOVE_HEAD(&workq->item_listhead, item_entry);\n\n\t\t\tpthread_spin_unlock(&workq->mtx);\n            goto out;\n        }\n    }\n\nout:\n    pthread_rwlock_unlock(&wqlist_mtx);\n    return (witem);\n}\n\nDWORD WINAPI\nworker_main(LPVOID arg)\n{\n    struct work *witem;\n\n    witem = wqlist_scan();\n    if (witem == NULL)\n\t    return (0);\n\n    witem->func(witem->func_arg);\n    free(witem);\n    return (0);\n}\n\nvoid\nmanager_workqueue_additem(struct _pthread_workqueue *workq, struct work *witem)\n{\n    pthread_spin_lock(&workq->mtx);\n    STAILQ_INSERT_TAIL(&workq->item_listhead, witem, item_entry);\n    pthread_spin_unlock(&workq->mtx);\n    if (!QueueUserWorkItem(worker_main, NULL, WT_EXECUTELONGFUNCTION))\n\t    abort();\n}\n\n#else\n\nint\nmanager_init(void)\n{\n    return (0);\n}\n\nvoid\nmanager_workqueue_create(struct _pthread_workqueue *workq)\n{\n\tPTP_POOL pool;\n\tPTP_CALLBACK_ENVIRON callback;\n\tSYSTEM_INFO sysinfo;\n\n\tpool = CreateThreadpool(NULL);\n\tif(pool == NULL){\n\t\tdbg_lasterror(\"CreateThreadpool()\");\n\t\treturn;\n\t}\n\n\tInitializeThreadpoolEnvironment(&workq->win_callback_env);\n\tcallback = &workq->win_callback_env;\n\tSetThreadpoolCallbackPool(callback, pool);\n\n\tswitch(workq->queueprio){\n\tcase WORKQ_HIGH_PRIOQUEUE:\n\t\t// weird but this seems the only valid solution !?\n\t\tSetThreadpoolCallbackPriority(callback, TP_CALLBACK_PRIORITY_LOW);\n\t\tbreak;\n\tcase WORKQ_LOW_PRIOQUEUE:\n\t\t// see above\n\t\tSetThreadpoolCallbackPriority(callback, TP_CALLBACK_PRIORITY_HIGH);\n\t\tbreak;\n\tdefault:\n\t\tSetThreadpoolCallbackPriority(callback, TP_CALLBACK_PRIORITY_NORMAL);\n\t\tbreak;\n\t}\n\n\t// we need a proper way to implement overcommitting on windows\n\tif(workq->overcommit){\n\t\tGetSystemInfo(&sysinfo);\n\t\tSetThreadpoolThreadMaximum(pool, sysinfo.dwNumberOfProcessors * 2);\n\t}\n\n\tworkq->win_thread_pool = pool;\n}\n\nVOID CALLBACK \nworker_main( PTP_CALLBACK_INSTANCE instance, PVOID Parameter, PTP_WORK work )\n{\n\tstruct work* witem = (struct work*)Parameter;\n\n    assert(witem);\n\twitem->func(witem->func_arg);\n    free(witem);\n\tCloseThreadpoolWork(work);\n}\n\nvoid\nmanager_workqueue_additem(struct _pthread_workqueue *workq, struct work *witem)\n{\n\tPTP_WORK work = CreateThreadpoolWork(worker_main, witem, &workq->win_callback_env);\n\tif(work == NULL) {\n\t\tdbg_lasterror(\"CreateThreadpoolWork()\");\n\t\treturn;\n\t}\n\tSubmitThreadpoolWork(work);\n}\n\n// TODO: We need to cleanly close the environment and threadpools!\n\n#endif\n\nunsigned long\nmanager_peek(const char *key)\n{\n    unsigned long rv;\n\n    if (strcmp(key, \"combined_idle\") == 0) {\n        dbg_puts(\"TODO\");\n        abort();\n    } else {\n        dbg_printf(\"invalid key: \", key);\n        abort();\n    }\n\n    return rv;\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/windows/platform.c",
    "content": "/*-\n * Copyright (c) 2011, Mark Heily <mark@heily.com>\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include \"platform.h\"\n#include \"../private.h\"\n#include \"pthread_workqueue.h\"\n\n#ifndef MAKE_STATIC\n\n// The constructor to be called\nint VISIBLE CONSTRUCTOR pthread_workqueue_init_np(void);\n\nBOOL WINAPI DllMain(\n    HINSTANCE hinstDLL,  // handle to DLL module\n    DWORD fdwReason,     // reason for calling function\n    LPVOID lpReserved )  // reserved\n{\n    // Perform actions based on the reason for calling.\n    switch( fdwReason ) \n    { \n        case DLL_PROCESS_ATTACH:\n\t\t // Initialize once for each new process.\n         // Return FALSE to fail DLL load.\n\t\t\tif( pthread_workqueue_init_np() < 0)\n\t\t\t\treturn FALSE;\n            break;\n\n    }\n    return TRUE;  // Successful DLL_PROCESS_ATTACH.\n}\n\n#endif"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/windows/platform.h",
    "content": "#ifndef _PTWQ_WINDOWS_PLATFORM_H\n#define _PTWQ_WINDOWS_PLATFORM_H 1\n\n#define PROVIDE_LEGACY_XP_SUPPORT 1\n\n#ifdef PROVIDE_LEGACY_XP_SUPPORT\n# define _WIN32_WINNT 0x0500\n#else\n# define _WIN32_WINNT 0x0610\n#endif\n#define WIN32_LEAN_AND_MEAN\n\n#include <windows.h>\n#include <string.h>\n#include \"winpthreads.h\"\n\n/* Instead of __attribute__ ((constructor)), use DllMain() */\n#define CONSTRUCTOR\t  /* */\n\n#define VISIBLE __declspec(dllexport)\n\n# define __func__ __FUNCTION__\n\n#undef LIST_HEAD\n#include \"queue.h\"\n\n#define sleep(sec) \tSleep(1000*sec)\n#define strdup(p)\t_strdup(p)\n#define random()\trand()\n\n#ifdef PROVIDE_LEGACY_XP_SUPPORT\n# define WORKQUEUE_PLATFORM_SPECIFIC \\\n\tLIST_ENTRY(_pthread_workqueue) wqlist_entry\n#else\n/* Specific workqueue items */\n# define WORKQUEUE_PLATFORM_SPECIFIC \\\n\tPTP_POOL win_thread_pool; \\\n\tTP_CALLBACK_ENVIRON win_callback_env\n#endif\n\n\n#endif  /* _PTWQ_WINDOWS_PLATFORM_H */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/windows/pthread_cond.h",
    "content": "/*-\n * Copyright (c) 2011, Mark Heily <mark@heily.com>\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n/*\n * Windows condition variables\n */\n#if WINVER >= 0x0600\n\ntypedef CONDITION_VARIABLE pthread_cond_t;\ntypedef int pthread_condattr_t;\n\nstatic inline int\npthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr)\n{\n    InitializeConditionVariable(cond);\n    return (0);\n}\n\nstatic inline int\npthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)\n{\n    return (SleepConditionVariableCS(cond, mutex, INFINITE) == 0);\n}\n\nstatic inline int\npthread_cond_signal(pthread_cond_t *cond)\n{\n    WakeConditionVariable(cond);\n    return (0);\n}\n\n#else\n# error Conditional variables require Vista or newer\n#endif\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/windows/queue.h",
    "content": "/*-\n * Copyright (c) 1991, 1993\n *\tThe Regents of the University of California.  All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice, this list of conditions and the following disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n * 4. Neither the name of the University nor the names of its contributors\n *    may be used to endorse or promote products derived from this software\n *    without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE\n * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n * SUCH DAMAGE.\n *\n *\t@(#)queue.h\t8.5 (Berkeley) 8/20/94\n * $FreeBSD: src/sys/sys/queue.h,v 1.72.2.1.2.1 2009/10/25 01:10:29 kensmith Exp $\n */\n\n#ifndef _SYS_QUEUE_H_\n#define\t_SYS_QUEUE_H_\n\n/*\n * This file defines four types of data structures: singly-linked lists,\n * singly-linked tail queues, lists and tail queues.\n *\n * A singly-linked list is headed by a single forward pointer. The elements\n * are singly linked for minimum space and pointer manipulation overhead at\n * the expense of O(n) removal for arbitrary elements. New elements can be\n * added to the list after an existing element or at the head of the list.\n * Elements being removed from the head of the list should use the explicit\n * macro for this purpose for optimum efficiency. A singly-linked list may\n * only be traversed in the forward direction.  Singly-linked lists are ideal\n * for applications with large datasets and few or no removals or for\n * implementing a LIFO queue.\n *\n * A singly-linked tail queue is headed by a pair of pointers, one to the\n * head of the list and the other to the tail of the list. The elements are\n * singly linked for minimum space and pointer manipulation overhead at the\n * expense of O(n) removal for arbitrary elements. New elements can be added\n * to the list after an existing element, at the head of the list, or at the\n * end of the list. Elements being removed from the head of the tail queue\n * should use the explicit macro for this purpose for optimum efficiency.\n * A singly-linked tail queue may only be traversed in the forward direction.\n * Singly-linked tail queues are ideal for applications with large datasets\n * and few or no removals or for implementing a FIFO queue.\n *\n * A list is headed by a single forward pointer (or an array of forward\n * pointers for a hash table header). The elements are doubly linked\n * so that an arbitrary element can be removed without a need to\n * traverse the list. New elements can be added to the list before\n * or after an existing element or at the head of the list. A list\n * may only be traversed in the forward direction.\n *\n * A tail queue is headed by a pair of pointers, one to the head of the\n * list and the other to the tail of the list. The elements are doubly\n * linked so that an arbitrary element can be removed without a need to\n * traverse the list. New elements can be added to the list before or\n * after an existing element, at the head of the list, or at the end of\n * the list. A tail queue may be traversed in either direction.\n *\n * For details on the use of these macros, see the queue(3) manual page.\n *\n *\n *\t\t\t\tSLIST\tLIST\tSTAILQ\tTAILQ\n * _HEAD\t\t\t+\t+\t+\t+\n * _HEAD_INITIALIZER\t\t+\t+\t+\t+\n * _ENTRY\t\t\t+\t+\t+\t+\n * _INIT\t\t\t+\t+\t+\t+\n * _EMPTY\t\t\t+\t+\t+\t+\n * _FIRST\t\t\t+\t+\t+\t+\n * _NEXT\t\t\t+\t+\t+\t+\n * _PREV\t\t\t-\t-\t-\t+\n * _LAST\t\t\t-\t-\t+\t+\n * _FOREACH\t\t\t+\t+\t+\t+\n * _FOREACH_SAFE\t\t+\t+\t+\t+\n * _FOREACH_REVERSE\t\t-\t-\t-\t+\n * _FOREACH_REVERSE_SAFE\t-\t-\t-\t+\n * _INSERT_HEAD\t\t\t+\t+\t+\t+\n * _INSERT_BEFORE\t\t-\t+\t-\t+\n * _INSERT_AFTER\t\t+\t+\t+\t+\n * _INSERT_TAIL\t\t\t-\t-\t+\t+\n * _CONCAT\t\t\t-\t-\t+\t+\n * _REMOVE_AFTER\t\t+\t-\t+\t-\n * _REMOVE_HEAD\t\t\t+\t-\t+\t-\n * _REMOVE\t\t\t+\t+\t+\t+\n *\n */\n#ifdef QUEUE_MACRO_DEBUG\n/* Store the last 2 places the queue element or head was altered */\nstruct qm_trace {\n\tchar * lastfile;\n\tint lastline;\n\tchar * prevfile;\n\tint prevline;\n};\n\n#define\tTRACEBUF\tstruct qm_trace trace;\n#define\tTRASHIT(x)\tdo {(x) = (void *)-1;} while (0)\n\n#define\tQMD_TRACE_HEAD(head) do {\t\t\t\t\t\\\n\t(head)->trace.prevline = (head)->trace.lastline;\t\t\\\n\t(head)->trace.prevfile = (head)->trace.lastfile;\t\t\\\n\t(head)->trace.lastline = __LINE__;\t\t\t\t\\\n\t(head)->trace.lastfile = __FILE__;\t\t\t\t\\\n} while (0)\n\n#define\tQMD_TRACE_ELEM(elem) do {\t\t\t\t\t\\\n\t(elem)->trace.prevline = (elem)->trace.lastline;\t\t\\\n\t(elem)->trace.prevfile = (elem)->trace.lastfile;\t\t\\\n\t(elem)->trace.lastline = __LINE__;\t\t\t\t\\\n\t(elem)->trace.lastfile = __FILE__;\t\t\t\t\\\n} while (0)\n\n#else\n#define\tQMD_TRACE_ELEM(elem)\n#define\tQMD_TRACE_HEAD(head)\n#define\tTRACEBUF\n#define\tTRASHIT(x)\n#endif\t/* QUEUE_MACRO_DEBUG */\n\n#ifndef _WIN32\n/*\n * Singly-linked List declarations.\n */\n#define\tSLIST_HEAD(name, type)\t\t\t\t\t\t\\\nstruct name {\t\t\t\t\t\t\t\t\\\n\tstruct type *slh_first;\t/* first element */\t\t\t\\\n}\n\n#define\tSLIST_HEAD_INITIALIZER(head)\t\t\t\t\t\\\n\t{ NULL }\n\n#define\tSLIST_ENTRY(type)\t\t\t\t\t\t\\\nstruct {\t\t\t\t\t\t\t\t\\\n\tstruct type *sle_next;\t/* next element */\t\t\t\\\n}\n\n/*\n * Singly-linked List functions.\n */\n#define\tSLIST_EMPTY(head)\t((head)->slh_first == NULL)\n\n#define\tSLIST_FIRST(head)\t((head)->slh_first)\n\n#define\tSLIST_FOREACH(var, head, field)\t\t\t\t\t\\\n\tfor ((var) = SLIST_FIRST((head));\t\t\t\t\\\n\t    (var);\t\t\t\t\t\t\t\\\n\t    (var) = SLIST_NEXT((var), field))\n\n#define\tSLIST_FOREACH_SAFE(var, head, field, tvar)\t\t\t\\\n\tfor ((var) = SLIST_FIRST((head));\t\t\t\t\\\n\t    (var) && ((tvar) = SLIST_NEXT((var), field), 1);\t\t\\\n\t    (var) = (tvar))\n\n#define\tSLIST_FOREACH_PREVPTR(var, varp, head, field)\t\t\t\\\n\tfor ((varp) = &SLIST_FIRST((head));\t\t\t\t\\\n\t    ((var) = *(varp)) != NULL;\t\t\t\t\t\\\n\t    (varp) = &SLIST_NEXT((var), field))\n\n#define\tSLIST_INIT(head) do {\t\t\t\t\t\t\\\n\tSLIST_FIRST((head)) = NULL;\t\t\t\t\t\\\n} while (0)\n\n#define\tSLIST_INSERT_AFTER(slistelm, elm, field) do {\t\t\t\\\n\tSLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field);\t\\\n\tSLIST_NEXT((slistelm), field) = (elm);\t\t\t\t\\\n} while (0)\n\n#define\tSLIST_INSERT_HEAD(head, elm, field) do {\t\t\t\\\n\tSLIST_NEXT((elm), field) = SLIST_FIRST((head));\t\t\t\\\n\tSLIST_FIRST((head)) = (elm);\t\t\t\t\t\\\n} while (0)\n\n#define\tSLIST_NEXT(elm, field)\t((elm)->field.sle_next)\n\n#define\tSLIST_REMOVE(head, elm, type, field) do {\t\t\t\\\n\tif (SLIST_FIRST((head)) == (elm)) {\t\t\t\t\\\n\t\tSLIST_REMOVE_HEAD((head), field);\t\t\t\\\n\t}\t\t\t\t\t\t\t\t\\\n\telse {\t\t\t\t\t\t\t\t\\\n\t\tstruct type *curelm = SLIST_FIRST((head));\t\t\\\n\t\twhile (SLIST_NEXT(curelm, field) != (elm))\t\t\\\n\t\t\tcurelm = SLIST_NEXT(curelm, field);\t\t\\\n\t\tSLIST_REMOVE_AFTER(curelm, field);\t\t\t\\\n\t}\t\t\t\t\t\t\t\t\\\n\tTRASHIT((elm)->field.sle_next);\t\t\t\t\t\\\n} while (0)\n\n#define SLIST_REMOVE_AFTER(elm, field) do {\t\t\t\t\\\n\tSLIST_NEXT(elm, field) =\t\t\t\t\t\\\n\t    SLIST_NEXT(SLIST_NEXT(elm, field), field);\t\t\t\\\n} while (0)\n\n#define\tSLIST_REMOVE_HEAD(head, field) do {\t\t\t\t\\\n\tSLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field);\t\\\n} while (0)\n\n#endif /* defined(_WIN32) */\n\n/*\n * Singly-linked Tail queue declarations.\n */\n#define\tSTAILQ_HEAD(name, type)\t\t\t\t\t\t\\\nstruct name {\t\t\t\t\t\t\t\t\\\n\tstruct type *stqh_first;/* first element */\t\t\t\\\n\tstruct type **stqh_last;/* addr of last next element */\t\t\\\n}\n\n#define\tSTAILQ_HEAD_INITIALIZER(head)\t\t\t\t\t\\\n\t{ NULL, &(head).stqh_first }\n\n#define\tSTAILQ_ENTRY(type)\t\t\t\t\t\t\\\nstruct {\t\t\t\t\t\t\t\t\\\n\tstruct type *stqe_next;\t/* next element */\t\t\t\\\n}\n\n/*\n * Singly-linked Tail queue functions.\n */\n#define\tSTAILQ_CONCAT(head1, head2) do {\t\t\t\t\\\n\tif (!STAILQ_EMPTY((head2))) {\t\t\t\t\t\\\n\t\t*(head1)->stqh_last = (head2)->stqh_first;\t\t\\\n\t\t(head1)->stqh_last = (head2)->stqh_last;\t\t\\\n\t\tSTAILQ_INIT((head2));\t\t\t\t\t\\\n\t}\t\t\t\t\t\t\t\t\\\n} while (0)\n\n#define\tSTAILQ_EMPTY(head)\t((head)->stqh_first == NULL)\n\n#define\tSTAILQ_FIRST(head)\t((head)->stqh_first)\n\n#define\tSTAILQ_FOREACH(var, head, field)\t\t\t\t\\\n\tfor((var) = STAILQ_FIRST((head));\t\t\t\t\\\n\t   (var);\t\t\t\t\t\t\t\\\n\t   (var) = STAILQ_NEXT((var), field))\n\n\n#define\tSTAILQ_FOREACH_SAFE(var, head, field, tvar)\t\t\t\\\n\tfor ((var) = STAILQ_FIRST((head));\t\t\t\t\\\n\t    (var) && ((tvar) = STAILQ_NEXT((var), field), 1);\t\t\\\n\t    (var) = (tvar))\n\n#define\tSTAILQ_INIT(head) do {\t\t\t\t\t\t\\\n\tSTAILQ_FIRST((head)) = NULL;\t\t\t\t\t\\\n\t(head)->stqh_last = &STAILQ_FIRST((head));\t\t\t\\\n} while (0)\n\n#define\tSTAILQ_INSERT_AFTER(head, tqelm, elm, field) do {\t\t\\\n\tif ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\\\n\t\t(head)->stqh_last = &STAILQ_NEXT((elm), field);\t\t\\\n\tSTAILQ_NEXT((tqelm), field) = (elm);\t\t\t\t\\\n} while (0)\n\n#define\tSTAILQ_INSERT_HEAD(head, elm, field) do {\t\t\t\\\n\tif ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL)\t\\\n\t\t(head)->stqh_last = &STAILQ_NEXT((elm), field);\t\t\\\n\tSTAILQ_FIRST((head)) = (elm);\t\t\t\t\t\\\n} while (0)\n\n#define\tSTAILQ_INSERT_TAIL(head, elm, field) do {\t\t\t\\\n\tSTAILQ_NEXT((elm), field) = NULL;\t\t\t\t\\\n\t*(head)->stqh_last = (elm);\t\t\t\t\t\\\n\t(head)->stqh_last = &STAILQ_NEXT((elm), field);\t\t\t\\\n} while (0)\n\n#define\tSTAILQ_LAST(head, type, field)\t\t\t\t\t\\\n\t(STAILQ_EMPTY((head)) ?\t\t\t\t\t\t\\\n\t\tNULL :\t\t\t\t\t\t\t\\\n\t        ((struct type *)(void *)\t\t\t\t\\\n\t\t((char *)((head)->stqh_last) - __offsetof(struct type, field))))\n\n#define\tSTAILQ_NEXT(elm, field)\t((elm)->field.stqe_next)\n\n#define\tSTAILQ_REMOVE(head, elm, type, field) do {\t\t\t\\\n\tif (STAILQ_FIRST((head)) == (elm)) {\t\t\t\t\\\n\t\tSTAILQ_REMOVE_HEAD((head), field);\t\t\t\\\n\t}\t\t\t\t\t\t\t\t\\\n\telse {\t\t\t\t\t\t\t\t\\\n\t\tstruct type *curelm = STAILQ_FIRST((head));\t\t\\\n\t\twhile (STAILQ_NEXT(curelm, field) != (elm))\t\t\\\n\t\t\tcurelm = STAILQ_NEXT(curelm, field);\t\t\\\n\t\tSTAILQ_REMOVE_AFTER(head, curelm, field);\t\t\\\n\t}\t\t\t\t\t\t\t\t\\\n\tTRASHIT((elm)->field.stqe_next);\t\t\t\t\\\n} while (0)\n\n#define\tSTAILQ_REMOVE_HEAD(head, field) do {\t\t\t\t\\\n\tif ((STAILQ_FIRST((head)) =\t\t\t\t\t\\\n\t     STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL)\t\t\\\n\t\t(head)->stqh_last = &STAILQ_FIRST((head));\t\t\\\n} while (0)\n\n#define STAILQ_REMOVE_AFTER(head, elm, field) do {\t\t\t\\\n\tif ((STAILQ_NEXT(elm, field) =\t\t\t\t\t\\\n\t     STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL)\t\\\n\t\t(head)->stqh_last = &STAILQ_NEXT((elm), field);\t\t\\\n} while (0)\n\n#define STAILQ_SWAP(head1, head2, type) do {\t\t\t\t\\\n\tstruct type *swap_first = STAILQ_FIRST(head1);\t\t\t\\\n\tstruct type **swap_last = (head1)->stqh_last;\t\t\t\\\n\tSTAILQ_FIRST(head1) = STAILQ_FIRST(head2);\t\t\t\\\n\t(head1)->stqh_last = (head2)->stqh_last;\t\t\t\\\n\tSTAILQ_FIRST(head2) = swap_first;\t\t\t\t\\\n\t(head2)->stqh_last = swap_last;\t\t\t\t\t\\\n\tif (STAILQ_EMPTY(head1))\t\t\t\t\t\\\n\t\t(head1)->stqh_last = &STAILQ_FIRST(head1);\t\t\\\n\tif (STAILQ_EMPTY(head2))\t\t\t\t\t\\\n\t\t(head2)->stqh_last = &STAILQ_FIRST(head2);\t\t\\\n} while (0)\n\n\n/*\n * List declarations.\n * NOTE: LIST_HEAD conflicts with a Linux macro.\n */\n#define\tLIST_HEAD(name, type)\t\t\t\t\t\t\\\nstruct name {\t\t\t\t\t\t\t\t\\\n\tstruct type *lh_first;\t/* first element */\t\t\t\\\n}\n\n#define\tLIST_HEAD_INITIALIZER(head)\t\t\t\t\t\\\n\t{ NULL }\n\n#define\tLIST_ENTRY(type)\t\t\t\t\t\t\\\nstruct {\t\t\t\t\t\t\t\t\\\n\tstruct type *le_next;\t/* next element */\t\t\t\\\n\tstruct type **le_prev;\t/* address of previous next element */\t\\\n}\n\n/*\n * List functions.\n */\n\n#if (defined(_KERNEL) && defined(INVARIANTS))\n#define\tQMD_LIST_CHECK_HEAD(head, field) do {\t\t\t\t\\\n\tif (LIST_FIRST((head)) != NULL &&\t\t\t\t\\\n\t    LIST_FIRST((head))->field.le_prev !=\t\t\t\\\n\t     &LIST_FIRST((head)))\t\t\t\t\t\\\n\t\tpanic(\"Bad list head %p first->prev != head\", (head));\t\\\n} while (0)\n\n#define\tQMD_LIST_CHECK_NEXT(elm, field) do {\t\t\t\t\\\n\tif (LIST_NEXT((elm), field) != NULL &&\t\t\t\t\\\n\t    LIST_NEXT((elm), field)->field.le_prev !=\t\t\t\\\n\t     &((elm)->field.le_next))\t\t\t\t\t\\\n\t     \tpanic(\"Bad link elm %p next->prev != elm\", (elm));\t\\\n} while (0)\n\n#define\tQMD_LIST_CHECK_PREV(elm, field) do {\t\t\t\t\\\n\tif (*(elm)->field.le_prev != (elm))\t\t\t\t\\\n\t\tpanic(\"Bad link elm %p prev->next != elm\", (elm));\t\\\n} while (0)\n#else\n#define\tQMD_LIST_CHECK_HEAD(head, field)\n#define\tQMD_LIST_CHECK_NEXT(elm, field)\n#define\tQMD_LIST_CHECK_PREV(elm, field)\n#endif /* (_KERNEL && INVARIANTS) */\n\n#define\tLIST_EMPTY(head)\t((head)->lh_first == NULL)\n\n#define\tLIST_FIRST(head)\t((head)->lh_first)\n\n#define\tLIST_FOREACH(var, head, field)\t\t\t\t\t\\\n\tfor ((var) = LIST_FIRST((head));\t\t\t\t\\\n\t    (var);\t\t\t\t\t\t\t\\\n\t    (var) = LIST_NEXT((var), field))\n\n#define\tLIST_FOREACH_SAFE(var, head, field, tvar)\t\t\t\\\n\tfor ((var) = LIST_FIRST((head));\t\t\t\t\\\n\t    (var) && ((tvar) = LIST_NEXT((var), field), 1);\t\t\\\n\t    (var) = (tvar))\n\n#define\tLIST_INIT(head) do {\t\t\t\t\t\t\\\n\tLIST_FIRST((head)) = NULL;\t\t\t\t\t\\\n} while (0)\n\n#define\tLIST_INSERT_AFTER(listelm, elm, field) do {\t\t\t\\\n\tQMD_LIST_CHECK_NEXT(listelm, field);\t\t\t\t\\\n\tif ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\\\n\t\tLIST_NEXT((listelm), field)->field.le_prev =\t\t\\\n\t\t    &LIST_NEXT((elm), field);\t\t\t\t\\\n\tLIST_NEXT((listelm), field) = (elm);\t\t\t\t\\\n\t(elm)->field.le_prev = &LIST_NEXT((listelm), field);\t\t\\\n} while (0)\n\n#define\tLIST_INSERT_BEFORE(listelm, elm, field) do {\t\t\t\\\n\tQMD_LIST_CHECK_PREV(listelm, field);\t\t\t\t\\\n\t(elm)->field.le_prev = (listelm)->field.le_prev;\t\t\\\n\tLIST_NEXT((elm), field) = (listelm);\t\t\t\t\\\n\t*(listelm)->field.le_prev = (elm);\t\t\t\t\\\n\t(listelm)->field.le_prev = &LIST_NEXT((elm), field);\t\t\\\n} while (0)\n\n#define\tLIST_INSERT_HEAD(head, elm, field) do {\t\t\t\t\\\n\tQMD_LIST_CHECK_HEAD((head), field);\t\t\t\t\\\n\tif ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL)\t\\\n\t\tLIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\\\n\tLIST_FIRST((head)) = (elm);\t\t\t\t\t\\\n\t(elm)->field.le_prev = &LIST_FIRST((head));\t\t\t\\\n} while (0)\n\n#define\tLIST_NEXT(elm, field)\t((elm)->field.le_next)\n\n#define\tLIST_REMOVE(elm, field) do {\t\t\t\t\t\\\n\tQMD_LIST_CHECK_NEXT(elm, field);\t\t\t\t\\\n\tQMD_LIST_CHECK_PREV(elm, field);\t\t\t\t\\\n\tif (LIST_NEXT((elm), field) != NULL)\t\t\t\t\\\n\t\tLIST_NEXT((elm), field)->field.le_prev = \t\t\\\n\t\t    (elm)->field.le_prev;\t\t\t\t\\\n\t*(elm)->field.le_prev = LIST_NEXT((elm), field);\t\t\\\n\tTRASHIT((elm)->field.le_next);\t\t\t\t\t\\\n\tTRASHIT((elm)->field.le_prev);\t\t\t\t\t\\\n} while (0)\n\n#define LIST_SWAP(head1, head2, type, field) do {\t\t\t\\\n\tstruct type *swap_tmp = LIST_FIRST((head1));\t\t\t\\\n\tLIST_FIRST((head1)) = LIST_FIRST((head2));\t\t\t\\\n\tLIST_FIRST((head2)) = swap_tmp;\t\t\t\t\t\\\n\tif ((swap_tmp = LIST_FIRST((head1))) != NULL)\t\t\t\\\n\t\tswap_tmp->field.le_prev = &LIST_FIRST((head1));\t\t\\\n\tif ((swap_tmp = LIST_FIRST((head2))) != NULL)\t\t\t\\\n\t\tswap_tmp->field.le_prev = &LIST_FIRST((head2));\t\t\\\n} while (0)\n\n/*\n * Tail queue declarations.\n */\n#define\tTAILQ_HEAD(name, type)\t\t\t\t\t\t\\\nstruct name {\t\t\t\t\t\t\t\t\\\n\tstruct type *tqh_first;\t/* first element */\t\t\t\\\n\tstruct type **tqh_last;\t/* addr of last next element */\t\t\\\n\tTRACEBUF\t\t\t\t\t\t\t\\\n}\n\n#define\tTAILQ_HEAD_INITIALIZER(head)\t\t\t\t\t\\\n\t{ NULL, &(head).tqh_first }\n\n#define\tTAILQ_ENTRY(type)\t\t\t\t\t\t\\\nstruct {\t\t\t\t\t\t\t\t\\\n\tstruct type *tqe_next;\t/* next element */\t\t\t\\\n\tstruct type **tqe_prev;\t/* address of previous next element */\t\\\n\tTRACEBUF\t\t\t\t\t\t\t\\\n}\n\n/*\n * Tail queue functions.\n */\n#if (defined(_KERNEL) && defined(INVARIANTS))\n#define\tQMD_TAILQ_CHECK_HEAD(head, field) do {\t\t\t\t\\\n\tif (!TAILQ_EMPTY(head) &&\t\t\t\t\t\\\n\t    TAILQ_FIRST((head))->field.tqe_prev !=\t\t\t\\\n\t     &TAILQ_FIRST((head)))\t\t\t\t\t\\\n\t\tpanic(\"Bad tailq head %p first->prev != head\", (head));\t\\\n} while (0)\n\n#define\tQMD_TAILQ_CHECK_TAIL(head, field) do {\t\t\t\t\\\n\tif (*(head)->tqh_last != NULL)\t\t\t\t\t\\\n\t    \tpanic(\"Bad tailq NEXT(%p->tqh_last) != NULL\", (head)); \t\\\n} while (0)\n\n#define\tQMD_TAILQ_CHECK_NEXT(elm, field) do {\t\t\t\t\\\n\tif (TAILQ_NEXT((elm), field) != NULL &&\t\t\t\t\\\n\t    TAILQ_NEXT((elm), field)->field.tqe_prev !=\t\t\t\\\n\t     &((elm)->field.tqe_next))\t\t\t\t\t\\\n\t\tpanic(\"Bad link elm %p next->prev != elm\", (elm));\t\\\n} while (0)\n\n#define\tQMD_TAILQ_CHECK_PREV(elm, field) do {\t\t\t\t\\\n\tif (*(elm)->field.tqe_prev != (elm))\t\t\t\t\\\n\t\tpanic(\"Bad link elm %p prev->next != elm\", (elm));\t\\\n} while (0)\n#else\n#define\tQMD_TAILQ_CHECK_HEAD(head, field)\n#define\tQMD_TAILQ_CHECK_TAIL(head, headname)\n#define\tQMD_TAILQ_CHECK_NEXT(elm, field)\n#define\tQMD_TAILQ_CHECK_PREV(elm, field)\n#endif /* (_KERNEL && INVARIANTS) */\n\n#define\tTAILQ_CONCAT(head1, head2, field) do {\t\t\t\t\\\n\tif (!TAILQ_EMPTY(head2)) {\t\t\t\t\t\\\n\t\t*(head1)->tqh_last = (head2)->tqh_first;\t\t\\\n\t\t(head2)->tqh_first->field.tqe_prev = (head1)->tqh_last;\t\\\n\t\t(head1)->tqh_last = (head2)->tqh_last;\t\t\t\\\n\t\tTAILQ_INIT((head2));\t\t\t\t\t\\\n\t\tQMD_TRACE_HEAD(head1);\t\t\t\t\t\\\n\t\tQMD_TRACE_HEAD(head2);\t\t\t\t\t\\\n\t}\t\t\t\t\t\t\t\t\\\n} while (0)\n\n#define\tTAILQ_EMPTY(head)\t((head)->tqh_first == NULL)\n\n#define\tTAILQ_FIRST(head)\t((head)->tqh_first)\n\n#define\tTAILQ_FOREACH(var, head, field)\t\t\t\t\t\\\n\tfor ((var) = TAILQ_FIRST((head));\t\t\t\t\\\n\t    (var);\t\t\t\t\t\t\t\\\n\t    (var) = TAILQ_NEXT((var), field))\n\n#define\tTAILQ_FOREACH_SAFE(var, head, field, tvar)\t\t\t\\\n\tfor ((var) = TAILQ_FIRST((head));\t\t\t\t\\\n\t    (var) && ((tvar) = TAILQ_NEXT((var), field), 1);\t\t\\\n\t    (var) = (tvar))\n\n#define\tTAILQ_FOREACH_REVERSE(var, head, headname, field)\t\t\\\n\tfor ((var) = TAILQ_LAST((head), headname);\t\t\t\\\n\t    (var);\t\t\t\t\t\t\t\\\n\t    (var) = TAILQ_PREV((var), headname, field))\n\n#define\tTAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)\t\\\n\tfor ((var) = TAILQ_LAST((head), headname);\t\t\t\\\n\t    (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1);\t\\\n\t    (var) = (tvar))\n\n#define\tTAILQ_INIT(head) do {\t\t\t\t\t\t\\\n\tTAILQ_FIRST((head)) = NULL;\t\t\t\t\t\\\n\t(head)->tqh_last = &TAILQ_FIRST((head));\t\t\t\\\n\tQMD_TRACE_HEAD(head);\t\t\t\t\t\t\\\n} while (0)\n\n#define\tTAILQ_INSERT_AFTER(head, listelm, elm, field) do {\t\t\\\n\tQMD_TAILQ_CHECK_NEXT(listelm, field);\t\t\t\t\\\n\tif ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\\\n\t\tTAILQ_NEXT((elm), field)->field.tqe_prev = \t\t\\\n\t\t    &TAILQ_NEXT((elm), field);\t\t\t\t\\\n\telse {\t\t\t\t\t\t\t\t\\\n\t\t(head)->tqh_last = &TAILQ_NEXT((elm), field);\t\t\\\n\t\tQMD_TRACE_HEAD(head);\t\t\t\t\t\\\n\t}\t\t\t\t\t\t\t\t\\\n\tTAILQ_NEXT((listelm), field) = (elm);\t\t\t\t\\\n\t(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field);\t\t\\\n\tQMD_TRACE_ELEM(&(elm)->field);\t\t\t\t\t\\\n\tQMD_TRACE_ELEM(&listelm->field);\t\t\t\t\\\n} while (0)\n\n#define\tTAILQ_INSERT_BEFORE(listelm, elm, field) do {\t\t\t\\\n\tQMD_TAILQ_CHECK_PREV(listelm, field);\t\t\t\t\\\n\t(elm)->field.tqe_prev = (listelm)->field.tqe_prev;\t\t\\\n\tTAILQ_NEXT((elm), field) = (listelm);\t\t\t\t\\\n\t*(listelm)->field.tqe_prev = (elm);\t\t\t\t\\\n\t(listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field);\t\t\\\n\tQMD_TRACE_ELEM(&(elm)->field);\t\t\t\t\t\\\n\tQMD_TRACE_ELEM(&listelm->field);\t\t\t\t\\\n} while (0)\n\n#define\tTAILQ_INSERT_HEAD(head, elm, field) do {\t\t\t\\\n\tQMD_TAILQ_CHECK_HEAD(head, field);\t\t\t\t\\\n\tif ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL)\t\\\n\t\tTAILQ_FIRST((head))->field.tqe_prev =\t\t\t\\\n\t\t    &TAILQ_NEXT((elm), field);\t\t\t\t\\\n\telse\t\t\t\t\t\t\t\t\\\n\t\t(head)->tqh_last = &TAILQ_NEXT((elm), field);\t\t\\\n\tTAILQ_FIRST((head)) = (elm);\t\t\t\t\t\\\n\t(elm)->field.tqe_prev = &TAILQ_FIRST((head));\t\t\t\\\n\tQMD_TRACE_HEAD(head);\t\t\t\t\t\t\\\n\tQMD_TRACE_ELEM(&(elm)->field);\t\t\t\t\t\\\n} while (0)\n\n#define\tTAILQ_INSERT_TAIL(head, elm, field) do {\t\t\t\\\n\tQMD_TAILQ_CHECK_TAIL(head, field);\t\t\t\t\\\n\tTAILQ_NEXT((elm), field) = NULL;\t\t\t\t\\\n\t(elm)->field.tqe_prev = (head)->tqh_last;\t\t\t\\\n\t*(head)->tqh_last = (elm);\t\t\t\t\t\\\n\t(head)->tqh_last = &TAILQ_NEXT((elm), field);\t\t\t\\\n\tQMD_TRACE_HEAD(head);\t\t\t\t\t\t\\\n\tQMD_TRACE_ELEM(&(elm)->field);\t\t\t\t\t\\\n} while (0)\n\n#define\tTAILQ_LAST(head, headname)\t\t\t\t\t\\\n\t(*(((struct headname *)((head)->tqh_last))->tqh_last))\n\n#define\tTAILQ_NEXT(elm, field) ((elm)->field.tqe_next)\n\n#define\tTAILQ_PREV(elm, headname, field)\t\t\t\t\\\n\t(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))\n\n#define\tTAILQ_REMOVE(head, elm, field) do {\t\t\t\t\\\n\tQMD_TAILQ_CHECK_NEXT(elm, field);\t\t\t\t\\\n\tQMD_TAILQ_CHECK_PREV(elm, field);\t\t\t\t\\\n\tif ((TAILQ_NEXT((elm), field)) != NULL)\t\t\t\t\\\n\t\tTAILQ_NEXT((elm), field)->field.tqe_prev = \t\t\\\n\t\t    (elm)->field.tqe_prev;\t\t\t\t\\\n\telse {\t\t\t\t\t\t\t\t\\\n\t\t(head)->tqh_last = (elm)->field.tqe_prev;\t\t\\\n\t\tQMD_TRACE_HEAD(head);\t\t\t\t\t\\\n\t}\t\t\t\t\t\t\t\t\\\n\t*(elm)->field.tqe_prev = TAILQ_NEXT((elm), field);\t\t\\\n\tTRASHIT((elm)->field.tqe_next);\t\t\t\t\t\\\n\tTRASHIT((elm)->field.tqe_prev);\t\t\t\t\t\\\n\tQMD_TRACE_ELEM(&(elm)->field);\t\t\t\t\t\\\n} while (0)\n\n#define TAILQ_SWAP(head1, head2, type, field) do {\t\t\t\\\n\tstruct type *swap_first = (head1)->tqh_first;\t\t\t\\\n\tstruct type **swap_last = (head1)->tqh_last;\t\t\t\\\n\t(head1)->tqh_first = (head2)->tqh_first;\t\t\t\\\n\t(head1)->tqh_last = (head2)->tqh_last;\t\t\t\t\\\n\t(head2)->tqh_first = swap_first;\t\t\t\t\\\n\t(head2)->tqh_last = swap_last;\t\t\t\t\t\\\n\tif ((swap_first = (head1)->tqh_first) != NULL)\t\t\t\\\n\t\tswap_first->field.tqe_prev = &(head1)->tqh_first;\t\\\n\telse\t\t\t\t\t\t\t\t\\\n\t\t(head1)->tqh_last = &(head1)->tqh_first;\t\t\\\n\tif ((swap_first = (head2)->tqh_first) != NULL)\t\t\t\\\n\t\tswap_first->field.tqe_prev = &(head2)->tqh_first;\t\\\n\telse\t\t\t\t\t\t\t\t\\\n\t\t(head2)->tqh_last = &(head2)->tqh_first;\t\t\\\n} while (0)\n\n#endif /* !_SYS_QUEUE_H_ */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/windows/thread_info.c",
    "content": "/*\n * Copyright (c) 2011, Joakim Johansson <jocke@tbricks.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\nint threads_runnable(unsigned int *threads_running)\n{\n    return -1;\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/windows/thread_rt.c",
    "content": "/*\n * Copyright (c) 2011, Joakim Johansson <jocke@tbricks.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\nvoid ptwq_set_current_thread_priority(int priority)\n{    \n    return;\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/windows/winpthreads.h",
    "content": "/*\n * Posix Threads library for Microsoft Windows\n *\n * Use at own risk, there is no implied warranty to this code.\n * It uses undocumented features of Microsoft Windows that can change\n * at any time in the future.\n *\n * (C) 2010 Lockless Inc.\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without modification,\n * are permitted provided that the following conditions are met:\n *\n *\n *  * Redistributions of source code must retain the above copyright notice,\n *    this list of conditions and the following disclaimer.\n *  * Redistributions in binary form must reproduce the above copyright notice,\n *    this list of conditions and the following disclaimer in the documentation\n *    and/or other materials provided with the distribution.\n *  * Neither the name of Lockless Inc. nor the names of its contributors may be\n *    used to endorse or promote products derived from this software without\n *    specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AN\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\n * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,\n * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE\n * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED\n * OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\n#ifndef WIN_PTHREADS\n#define WIN_PTHREADS\n\n#include <stdlib.h>\n#include <malloc.h>\n#include <errno.h>\n#include <process.h>\n#include <windows.h>\n#include <setjmp.h>\n#include <errno.h>\n#include <sys/timeb.h>\n\n#\n#define PTHREAD_CANCEL_DISABLE 0\n#define PTHREAD_CANCEL_ENABLE 0x01\n\n#define PTHREAD_CANCEL_DEFERRED 0\n#define PTHREAD_CANCEL_ASYNCHRONOUS 0x02\n\n#define PTHREAD_CREATE_JOINABLE 0\n#define PTHREAD_CREATE_DETACHED 0x04\n\n#define PTHREAD_EXPLICT_SCHED 0\n#define PTHREAD_INHERIT_SCHED 0x08\n\n#define PTHREAD_SCOPE_PROCESS 0\n#define PTHREAD_SCOPE_SYSTEM 0x10\n\n#define PTHREAD_DEFAULT_ATTR (PTHREAD_CANCEL_ENABLE)\n\n#define PTHREAD_CANCELED ((void *) 0xDEADBEEF)\n\n#define PTHREAD_ONCE_INIT 0\n#define PTHREAD_MUTEX_INITIALIZER {(void*)-1,-1,0,0,0,0}\n#define PTHREAD_RWLOCK_INITIALIZER {0}\n#define PTHREAD_COND_INITIALIZER {0}\n#define PTHREAD_BARRIER_INITIALIZER \\\n\t{0,0,PTHREAD_MUTEX_INITIALIZER,PTHREAD_COND_INITIALIZER}\n#define PTHREAD_SPINLOCK_INITIALIZER 0\n\n#define PTHREAD_DESTRUCTOR_ITERATIONS 256\n#define PTHREAD_KEYS_MAX (1<<20)\n\n#define PTHREAD_MUTEX_NORMAL 0\n#define PTHREAD_MUTEX_ERRORCHECK 1\n#define PTHREAD_MUTEX_RECURSIVE 2\n#define PTHREAD_MUTEX_DEFAULT 3\n#define PTHREAD_MUTEX_SHARED 4\n#define PTHREAD_MUTEX_PRIVATE 0\n#define PTHREAD_PRIO_NONE 0\n#define PTHREAD_PRIO_INHERIT 8\n#define PTHREAD_PRIO_PROTECT 16\n#define PTHREAD_PRIO_MULT 32\n#define PTHREAD_PROCESS_SHARED 0\n#define PTHREAD_PROCESS_PRIVATE 1\n\n#define PTHREAD_BARRIER_SERIAL_THREAD 1\n\n\n/* Windows doesn't have this, so declare it ourselves. */\nstruct timespec\n{\n\t/* long long in windows is the same as long in unix for 64bit */\n\tlong long tv_sec;\n\tlong long tv_nsec;\n};\n\ntypedef struct _pthread_cleanup _pthread_cleanup;\nstruct _pthread_cleanup\n{\n\tvoid (*func)(void *);\n\tvoid *arg;\n\t_pthread_cleanup *next;\n};\n\nstruct _pthread_v\n{\n\tvoid *ret_arg;\n\tvoid *(* func)(void *);\n\t_pthread_cleanup *clean;\n\tHANDLE h;\n\tint cancelled;\n\tunsigned p_state;\n\tunsigned int keymax;\n\tvoid **keyval;\n\t\n\tjmp_buf jb;\n};\n\ntypedef struct _pthread_v *pthread_t;\n\ntypedef struct pthread_barrier_t pthread_barrier_t;\nstruct pthread_barrier_t\n{\n\tint count;\n\tint total;\n\tCRITICAL_SECTION m;\n\tCONDITION_VARIABLE cv;\n};\n\ntypedef struct pthread_attr_t pthread_attr_t;\nstruct pthread_attr_t\n{\n\tunsigned p_state;\n\tvoid *stack;\n\tsize_t s_size;\n};\n\ntypedef long pthread_once_t;\ntypedef unsigned pthread_mutexattr_t;\ntypedef SRWLOCK pthread_rwlock_t;\ntypedef CRITICAL_SECTION pthread_mutex_t;\ntypedef unsigned pthread_key_t;\ntypedef void *pthread_barrierattr_t;\ntypedef long pthread_spinlock_t;\ntypedef int pthread_condattr_t;\ntypedef CONDITION_VARIABLE pthread_cond_t;\ntypedef int pthread_rwlockattr_t;\n\nvolatile long _pthread_cancelling;\n\nint _pthread_concur;\n\n/* Will default to zero as needed */\npthread_once_t _pthread_tls_once;\nDWORD _pthread_tls;\n\n/* Note initializer is zero, so this works */\npthread_rwlock_t _pthread_key_lock;\nunsigned int _pthread_key_max;\nunsigned int _pthread_key_sch;\nvoid (**_pthread_key_dest)(void *);\n\n/* Prototypes */\nstatic int pthread_rwlock_unlock(pthread_rwlock_t *l);\n\n\n#define pthread_cleanup_push(F, A)\\\n{\\\n\tconst _pthread_cleanup _pthread_cup = {(F), (A), pthread_self()->clean};\\\n\t_ReadWriteBarrier();\\\n\tpthread_self()->clean = (_pthread_cleanup *) &_pthread_cup;\\\n\t_ReadWriteBarrier()\n\t\n/* Note that if async cancelling is used, then there is a race here */\n#define pthread_cleanup_pop(E)\\\n\t(pthread_self()->clean = _pthread_cup.next, (E?_pthread_cup.func(_pthread_cup.arg):0));}\n\nstatic void _pthread_once_cleanup(pthread_once_t *o)\n{\n\t*o = 0;\n}\n\nstatic pthread_t pthread_self(void);\nstatic int pthread_once(pthread_once_t *o, void (*func)(void))\n{\n\tlong state = *o;\n\n\t_ReadWriteBarrier();\n\t\n\twhile (state != 1)\n\t{\n\t\tif (!state)\n\t\t{\n\t\t\tif (!_InterlockedCompareExchange(o, 2, 0))\n\t\t\t{\n\t\t\t\t/* Success */\n\t\t\t\tpthread_cleanup_push(_pthread_once_cleanup, o);\n\t\t\t\tfunc();\n\t\t\t\tpthread_cleanup_pop(0);\n\t\t\t\t\n\t\t\t\t/* Mark as done */\n\t\t\t\t*o = 1;\n\t\t\t\t\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t\t\n\t\tYieldProcessor();\n\t\t\n\t\t_ReadWriteBarrier();\n\t\t\n\t\tstate = *o;\n\t}\n\t\n\t/* Done */\n\treturn 0;\n\t\n}\n\nstatic int _pthread_once_raw(pthread_once_t *o, void (*func)(void))\n{\n\tlong state = *o;\n\n\t_ReadWriteBarrier();\n\t\n\twhile (state != 1)\n\t{\n\t\tif (!state)\n\t\t{\n\t\t\tif (!_InterlockedCompareExchange(o, 2, 0))\n\t\t\t{\n\t\t\t\t/* Success */\n\t\t\t\tfunc();\n\t\t\t\t\n\t\t\t\t/* Mark as done */\n\t\t\t\t*o = 1;\n\t\t\t\t\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t\t\n\t\tYieldProcessor();\n\t\t\n\t\t_ReadWriteBarrier();\n\t\t\n\t\tstate = *o;\n\t}\n\t\n\t/* Done */\n\treturn 0;\n}\n\nstatic int pthread_mutex_lock(pthread_mutex_t *m)\n{\n\tEnterCriticalSection(m);\n\treturn 0;\n}\n\nstatic int pthread_mutex_unlock(pthread_mutex_t *m)\n{\n\tLeaveCriticalSection(m);\n\treturn 0;\n}\n\t\nstatic int pthread_mutex_trylock(pthread_mutex_t *m)\n{\n\treturn TryEnterCriticalSection(m) ? 0 : EBUSY; \n}\n\nstatic int pthread_mutex_init(pthread_mutex_t *m, pthread_mutexattr_t *a)\n{\n\t(void) a;\n\tInitializeCriticalSection(m);\n\t\n\treturn 0;\n}\n\nstatic int pthread_mutex_destroy(pthread_mutex_t *m)\n{\n\tDeleteCriticalSection(m);\n\treturn 0;\n}\n\n#define pthread_mutex_getprioceiling(M, P) ENOTSUP\n#define pthread_mutex_setprioceiling(M, P) ENOTSUP\n\nstatic int pthread_equal(pthread_t t1, pthread_t t2)\n{\n\treturn t1 == t2;\n}\n\nstatic void pthread_testcancel(void);\n\nstatic int pthread_rwlock_init(pthread_rwlock_t *l, pthread_rwlockattr_t *a)\n{\n\t(void) a;\n\tInitializeSRWLock(l);\n\t\n\treturn 0;\n}\n\nstatic int pthread_rwlock_destroy(pthread_rwlock_t *l)\n{\n\t(void) *l;\n\treturn 0;\n}\n\nstatic int pthread_rwlock_rdlock(pthread_rwlock_t *l)\n{\n\tpthread_testcancel();\n\tAcquireSRWLockShared(l);\n\t\n\treturn 0;\n}\n\nstatic int pthread_rwlock_wrlock(pthread_rwlock_t *l)\n{\n\tpthread_testcancel();\n\tAcquireSRWLockExclusive(l);\n\t\n\treturn 0;\n}\n\nstatic void pthread_tls_init(void)\n{\n\t_pthread_tls = TlsAlloc();\n\t\n\t/* Cannot continue if out of indexes */\n\tif (_pthread_tls == TLS_OUT_OF_INDEXES) abort();\n}\n\nstatic void _pthread_cleanup_dest(pthread_t t)\n{\n\tunsigned int i, j;\n\t\n\tfor (j = 0; j < PTHREAD_DESTRUCTOR_ITERATIONS; j++)\n\t{\n\t\tint flag = 0;\n\t\n\t\tfor (i = 0; i < t->keymax; i++)\n\t\t{\n\t\t\tvoid *val = t->keyval[i];\n\t\t\t\n\t\t\tif (val)\n\t\t\t{\n\t\t\t\tpthread_rwlock_rdlock(&_pthread_key_lock);\n\t\t\t\tif ((uintptr_t) _pthread_key_dest[i] > 1)\n\t\t\t\t{\n\t\t\t\t\t/* Call destructor */\n\t\t\t\t\tt->keyval[i] = NULL;\n\t\t\t\t\t_pthread_key_dest[i](val);\n\t\t\t\t\tflag = 1;\n\t\t\t\t}\n\t\t\t\tpthread_rwlock_unlock(&_pthread_key_lock);\n\t\t\t}\n\t\t}\n\t\n\t\t/* Nothing to do? */\n\t\tif (!flag) return;\n\t}\n}\n\nstatic pthread_t pthread_self(void)\n{\n\tpthread_t t;\n\t\n\t_pthread_once_raw(&_pthread_tls_once, pthread_tls_init);\n\t\n\tt = TlsGetValue(_pthread_tls);\n\t\n\t/* Main thread? */\n\tif (!t)\n\t{\n\t\tt = malloc(sizeof(struct _pthread_v));\n\t\t\n\t\t/* If cannot initialize main thread, then the only thing we can do is abort */\n\t\tif (!t) abort();\n\t\n\t\tt->ret_arg = NULL;\n\t\tt->func = NULL;\n\t\tt->clean = NULL;\n\t\tt->cancelled = 0;\n\t\tt->p_state = PTHREAD_DEFAULT_ATTR;\n\t\tt->keymax = 0;\n\t\tt->keyval = NULL;\n\t\tt->h = GetCurrentThread();\n\t\t\n\t\t/* Save for later */\n\t\tTlsSetValue(_pthread_tls, t);\n\t\t\n\t\tif (setjmp(t->jb))\n\t\t{\n\t\t\t/* Make sure we free ourselves if we are detached */\n\t\t\tif (!t->h) free(t);\n\t\t\t\n\t\t\t/* Time to die */\n\t\t\t_endthreadex(0);\n\t\t}\n\t}\n\t\n\treturn t;\n}\n\nstatic int pthread_rwlock_unlock(pthread_rwlock_t *l)\n{\n\tvoid *state = *(void **)l;\n\t\n\tif (state == (void *) 1)\n\t{\n\t\t/* Known to be an exclusive lock */\n\t\tReleaseSRWLockExclusive(l);\n\t}\n\telse\n\t{\n\t\t/* A shared unlock will work */\n\t\tReleaseSRWLockShared(l);\n\t}\n\t\n\treturn 0;\n}\n\n\nstatic int pthread_rwlock_tryrdlock(pthread_rwlock_t *l)\n{\n\t/* Get the current state of the lock */\n\tvoid *state = *(void **) l;\n\t\n\tif (!state)\n\t{\n\t\t/* Unlocked to locked */\n\t\tif (!InterlockedCompareExchangePointer((void *) l, (void *)0x11, NULL)) return 0;\n\t\treturn EBUSY;\n\t}\n\t\n\t/* A single writer exists */\n\tif (state == (void *) 1) return EBUSY;\n\t\n\t/* Multiple writers exist? */\n\tif ((uintptr_t) state & 14) return EBUSY;\n\t\n\tif (InterlockedCompareExchangePointer((void *) l, (void *) ((uintptr_t)state + 16), state) == state) return 0;\n\t\n\treturn EBUSY;\n}\n\nstatic int pthread_rwlock_trywrlock(pthread_rwlock_t *l)\n{\n\t/* Try to grab lock if it has no users */\n\tif (!InterlockedCompareExchangePointer((void *) l, (void *)1, NULL)) return 0;\n\t\n\treturn EBUSY;\n}\n\nstatic unsigned long long _pthread_time_in_ms(void)\n{\n\tstruct __timeb64 tb;\n\t\n\t_ftime64_s(&tb);\n\t\n\treturn tb.time * 1000 + tb.millitm;\n}\n\nstatic unsigned long long _pthread_time_in_ms_from_timespec(const struct timespec *ts)\n{\n\tunsigned long long t = ts->tv_sec * 1000;\n\tt += ts->tv_nsec / 1000000;\n\n\treturn t;\n}\n\nstatic unsigned long long _pthread_rel_time_in_ms(const struct timespec *ts)\n{\n\tunsigned long long t1 = _pthread_time_in_ms_from_timespec(ts);\n\tunsigned long long t2 = _pthread_time_in_ms();\n\t\n\t/* Prevent underflow */\n\tif (t1 < t2) return 1;\n\treturn t1 - t2;\n}\n\nstatic int pthread_rwlock_timedrdlock(pthread_rwlock_t *l, const struct timespec *ts)\n{\n\tunsigned long long ct = _pthread_time_in_ms();\n\tunsigned long long t = _pthread_time_in_ms_from_timespec(ts);\n\n\tpthread_testcancel();\n\t\n\t/* Use a busy-loop */\n\twhile (1)\n\t{\n\t\t/* Try to grab lock */\n\t\tif (!pthread_rwlock_tryrdlock(l)) return 0;\n\t\t\n\t\t/* Get current time */\n\t\tct = _pthread_time_in_ms();\n\t\t\n\t\t/* Have we waited long enough? */\n\t\tif (ct > t) return ETIMEDOUT;\n\t}\n}\n\nstatic int pthread_rwlock_timedwrlock(pthread_rwlock_t *l, const struct timespec *ts)\n{\n\tunsigned long long ct = _pthread_time_in_ms();\n\tunsigned long long t = _pthread_time_in_ms_from_timespec(ts);\n\n\tpthread_testcancel();\n\t\n\t/* Use a busy-loop */\n\twhile (1)\n\t{\n\t\t/* Try to grab lock */\n\t\tif (!pthread_rwlock_trywrlock(l)) return 0;\n\t\t\n\t\t/* Get current time */\n\t\tct = _pthread_time_in_ms();\n\t\t\n\t\t/* Have we waited long enough? */\n\t\tif (ct > t) return ETIMEDOUT;\n\t}\n}\n\t\nstatic int pthread_get_concurrency(int *val)\n{\n\t*val = _pthread_concur;\n\treturn 0;\n}\n\nstatic int pthread_set_concurrency(int val)\n{\n\t_pthread_concur = val;\n\treturn 0;\n}\n\n#define pthread_getschedparam(T, P, S) ENOTSUP\n#define pthread_setschedparam(T, P, S) ENOTSUP\n#define pthread_getcpuclockid(T, C) ENOTSUP\n\nstatic int pthread_exit(void *res)\n{\n\tpthread_t t = pthread_self();\n\n\tt->ret_arg = res;\n\t\n\t_pthread_cleanup_dest(t);\n\t\n\tlongjmp(t->jb, 1);\n}\n\n\nstatic void _pthread_invoke_cancel(void)\n{\n\t_pthread_cleanup *pcup;\n\t\n\t_InterlockedDecrement(&_pthread_cancelling);\n\t\n\t/* Call cancel queue */\n\tfor (pcup = pthread_self()->clean; pcup; pcup = pcup->next)\n\t{\n\t\tpcup->func(pcup->arg);\n\t}\n\t\t\n\tpthread_exit(PTHREAD_CANCELED);\n}\n\nstatic void pthread_testcancel(void)\n{\n\tif (_pthread_cancelling)\n\t{\n\t\tpthread_t t = pthread_self();\n\t\t\n\t\tif (t->cancelled && (t->p_state & PTHREAD_CANCEL_ENABLE))\n\t\t{\n\t\t\t_pthread_invoke_cancel();\n\t\t}\n\t}\n}\n\n\nstatic int pthread_cancel(pthread_t t)\n{\n\tif (t->p_state & PTHREAD_CANCEL_ASYNCHRONOUS)\n\t{\n\t\t/* Dangerous asynchronous cancelling */\n\t\tCONTEXT ctxt;\n\t\t\n\t\t/* Already done? */\n\t\tif (t->cancelled) return ESRCH;\n\t\t\n\t\tctxt.ContextFlags = CONTEXT_CONTROL;\n\t\t\n\t\tSuspendThread(t->h);\n\t\tGetThreadContext(t->h, &ctxt);\n#ifdef _M_X64\n\t\tctxt.Rip = (uintptr_t) _pthread_invoke_cancel;\n#else\n\t\tctxt.Eip = (uintptr_t) _pthread_invoke_cancel;\n#endif\n\t\tSetThreadContext(t->h, &ctxt);\n\t\t\n\t\t/* Also try deferred Cancelling */\n\t\tt->cancelled = 1;\n\t\n\t\t/* Notify everyone to look */\n\t\t_InterlockedIncrement(&_pthread_cancelling);\n\t\t\n\t\tResumeThread(t->h);\n\t}\n\telse\n\t{\n\t\t/* Safe deferred Cancelling */\n\t\tt->cancelled = 1;\n\t\n\t\t/* Notify everyone to look */\n\t\t_InterlockedIncrement(&_pthread_cancelling);\n\t}\n\t\n\treturn 0;\n}\n\nstatic unsigned _pthread_get_state(pthread_attr_t *attr, unsigned flag)\n{\n\treturn attr->p_state & flag;\n}\n\nstatic int _pthread_set_state(pthread_attr_t *attr, unsigned flag, unsigned val)\n{\n\tif (~flag & val) return EINVAL;\n\tattr->p_state &= ~flag;\n\tattr->p_state |= val;\n\t\n\treturn 0;\n}\n\nstatic int pthread_attr_init(pthread_attr_t *attr)\n{\n\tattr->p_state = PTHREAD_DEFAULT_ATTR;\n\tattr->stack = NULL;\n\tattr->s_size = 0;\n\treturn 0;\n}\n\nstatic int pthread_attr_destroy(pthread_attr_t *attr)\n{\n\t/* No need to do anything */\n\treturn 0;\n}\n\n\nstatic int pthread_attr_setdetachstate(pthread_attr_t *a, int flag)\n{\n\treturn _pthread_set_state(a, PTHREAD_CREATE_DETACHED, flag);\n}\n\nstatic int pthread_attr_getdetachstate(pthread_attr_t *a, int *flag)\n{\n\t*flag = _pthread_get_state(a, PTHREAD_CREATE_DETACHED);\n\treturn 0;\n}\n\nstatic int pthread_attr_setinheritsched(pthread_attr_t *a, int flag)\n{\n\treturn _pthread_set_state(a, PTHREAD_INHERIT_SCHED, flag);\n}\n\nstatic int pthread_attr_getinheritsched(pthread_attr_t *a, int *flag)\n{\n\t*flag = _pthread_get_state(a, PTHREAD_INHERIT_SCHED);\n\treturn 0;\n}\n\nstatic int pthread_attr_setscope(pthread_attr_t *a, int flag)\n{\n\treturn _pthread_set_state(a, PTHREAD_SCOPE_SYSTEM, flag);\n}\n\nstatic int pthread_attr_getscope(pthread_attr_t *a, int *flag)\n{\n\t*flag = _pthread_get_state(a, PTHREAD_SCOPE_SYSTEM);\n\treturn 0;\n}\n\nstatic int pthread_attr_getstackaddr(pthread_attr_t *attr, void **stack)\n{\n\t*stack = attr->stack;\n\treturn 0;\n}\n\nstatic int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stack)\n{\n\tattr->stack = stack;\n\treturn 0;\n}\n\nstatic int pthread_attr_getstacksize(pthread_attr_t *attr, size_t *size)\n{\n\t*size = attr->s_size;\n\treturn 0;\n}\n\nstatic int pthread_attr_setstacksize(pthread_attr_t *attr, size_t size)\n{\n\tattr->s_size = size;\n\treturn 0;\n}\n\n#define pthread_attr_getguardsize(A, S) ENOTSUP\n#define pthread_attr_setgaurdsize(A, S) ENOTSUP\n#define pthread_attr_getschedparam(A, S) ENOTSUP\n#define pthread_attr_setschedparam(A, S) ENOTSUP\n#define pthread_attr_getschedpolicy(A, S) ENOTSUP\n#define pthread_attr_setschedpolicy(A, S) ENOTSUP\n\n\nstatic int pthread_setcancelstate(int state, int *oldstate)\n{\n\tpthread_t t = pthread_self();\n\t\n\tif ((state & PTHREAD_CANCEL_ENABLE) != state) return EINVAL;\n\tif (oldstate) *oldstate = t->p_state & PTHREAD_CANCEL_ENABLE;\n\tt->p_state &= ~PTHREAD_CANCEL_ENABLE;\n\tt->p_state |= state;\n\t\n\treturn 0;\n}\n\nstatic int pthread_setcanceltype(int type, int *oldtype)\n{\n\tpthread_t t = pthread_self();\n\t\n\tif ((type & PTHREAD_CANCEL_ASYNCHRONOUS) != type) return EINVAL;\n\tif (oldtype) *oldtype = t->p_state & PTHREAD_CANCEL_ASYNCHRONOUS;\n\tt->p_state &= ~PTHREAD_CANCEL_ASYNCHRONOUS;\n\tt->p_state |= type;\n\t\n\treturn 0;\n}\n\nstatic int __stdcall pthread_create_wrapper(void *args)\n{\n\tstruct _pthread_v *tv = args;\n\t\n\t_pthread_once_raw(&_pthread_tls_once, pthread_tls_init);\n\t\n\tTlsSetValue(_pthread_tls, tv);\n\t\t\n\tif (!setjmp(tv->jb))\n\t{\n\t\t/* Call function and save return value */\n\t\ttv->ret_arg = tv->func(tv->ret_arg);\n\t\t\n\t\t/* Clean up destructors */\n\t\t_pthread_cleanup_dest(tv);\n\t}\n\t\n\t/* If we exit too early, then we can race with create */\n\twhile (tv->h == (HANDLE) -1)\n\t{\n\t\tYieldProcessor();\n\t\t_ReadWriteBarrier();\n\t}\n\t\n\t/* Make sure we free ourselves if we are detached */\n\tif (!tv->h) free(tv);\n\t\n\treturn 0;\n}\n\nstatic int pthread_create(pthread_t *th, pthread_attr_t *attr, void *(* func)(void *), void *arg)\n{\n\tstruct _pthread_v *tv = malloc(sizeof(struct _pthread_v));\n\tunsigned ssize = 0;\n\t\n\tif (!tv) return 1;\n\t\n\t*th = tv;\n\t\n\t/* Save data in pthread_t */\n\ttv->ret_arg = arg;\n\ttv->func = func;\n\ttv->clean = NULL;\n\ttv->cancelled = 0;\n\ttv->p_state = PTHREAD_DEFAULT_ATTR;\n\ttv->keymax = 0;\n\ttv->keyval = NULL;\n\ttv->h = (HANDLE) -1;\n\t\n\tif (attr)\n\t{\n\t\ttv->p_state = attr->p_state;\n\t\tssize = (unsigned int)attr->s_size;\n\t}\n\t\n\t/* Make sure tv->h has value of -1 */\n\t_ReadWriteBarrier();\n\n\ttv->h = (HANDLE) _beginthreadex(NULL, ssize, pthread_create_wrapper, tv, 0, NULL);\n\t\n\t/* Failed */\n\tif (!tv->h) return 1;\n\t\n\t\n\tif (tv->p_state & PTHREAD_CREATE_DETACHED)\n\t{\n\t\tCloseHandle(tv->h);\n\t\t_ReadWriteBarrier();\n\t\ttv->h = 0;\n\t}\n\n\treturn 0;\n}\n\nstatic int pthread_join(pthread_t t, void **res)\n{\n\tstruct _pthread_v *tv = t;\n\t\n\tpthread_testcancel();\n\t\n\tWaitForSingleObject(tv->h, INFINITE);\n\tCloseHandle(tv->h);\n\t\n\t/* Obtain return value */\n\tif (res) *res = tv->ret_arg;\n\t\n\tfree(tv);\n\n\treturn 0;\n}\n\nstatic int pthread_detach(pthread_t t)\n{\n\tstruct _pthread_v *tv = t;\n\t\n\t/*\n\t * This can't race with thread exit because\n\t * our call would be undefined if called on a dead thread.\n\t */\n\t\n\tCloseHandle(tv->h);\n\t_ReadWriteBarrier();\n\ttv->h = 0;\n\t\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_init(pthread_mutexattr_t *a)\n{\n\t*a = 0;\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_destroy(pthread_mutexattr_t *a)\n{\n\t(void) a;\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_gettype(pthread_mutexattr_t *a, int *type)\n{\n\t*type = *a & 3;\n\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_settype(pthread_mutexattr_t *a, int type)\n{\n\tif ((unsigned) type > 3) return EINVAL;\n\t*a &= ~3;\n\t*a |= type;\n\t\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_getpshared(pthread_mutexattr_t *a, int *type)\n{\n\t*type = *a & 4;\n\t\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_setpshared(pthread_mutexattr_t * a, int type)\n{\n\tif ((type & 4) != type) return EINVAL;\n\t\n\t*a &= ~4;\n\t*a |= type;\n\t\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_getprotocol(pthread_mutexattr_t *a, int *type)\n{\n\t*type = *a & (8 + 16);\n\t\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_setprotocol(pthread_mutexattr_t *a, int type)\n{\n\tif ((type & (8 + 16)) != 8 + 16) return EINVAL;\n\t\n\t*a &= ~(8 + 16);\n\t*a |= type;\n\t\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_getprioceiling(pthread_mutexattr_t *a, int * prio)\n{\n\t*prio = *a / PTHREAD_PRIO_MULT;\n\treturn 0;\n}\n\nstatic int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *a, int prio)\n{\n\t*a &= (PTHREAD_PRIO_MULT - 1);\n\t*a += prio * PTHREAD_PRIO_MULT;\n\t\n\treturn 0;\n}\n\nstatic int pthread_mutex_timedlock(pthread_mutex_t *m, struct timespec *ts)\n{\n\tunsigned long long t, ct;\n\t\n\tstruct _pthread_crit_t\n\t{\n\t\tvoid *debug;\n\t\tLONG count;\n\t\tLONG r_count;\n\t\tHANDLE owner;\n\t\tHANDLE sem;\n\t\tULONG_PTR spin;\n\t};\n\t\n\t/* Try to lock it without waiting */\n\tif (!pthread_mutex_trylock(m)) return 0;\n\t\n\tct = _pthread_time_in_ms();\n\tt = _pthread_time_in_ms_from_timespec(ts);\n\t\n\twhile (1)\n\t{\n\t\t/* Have we waited long enough? */\n\t\tif (ct > t) return ETIMEDOUT;\n\t\t\n\t\t/* Wait on semaphore within critical section */\n\t\tWaitForSingleObject(((struct _pthread_crit_t *)m)->sem, (DWORD)(t - ct));\n\t\t\n\t\t/* Try to grab lock */\n\t\tif (!pthread_mutex_trylock(m)) return 0;\n\t\t\n\t\t/* Get current time */\n\t\tct = _pthread_time_in_ms();\n\t}\n}\n\nstatic int pthread_barrier_destroy(pthread_barrier_t *b)\n{\n\tDeleteCriticalSection(&b->m);\n\t\n\treturn 0;\n\n}\n\nstatic int pthread_barrier_init(pthread_barrier_t *b, void *attr, int count)\n{\n\t/* Ignore attr */\n\t(void) attr;\n\t\n\tInitializeCriticalSection(&b->m);\n\tInitializeConditionVariable(&b->cv);\n\tb->count = count;\n\tb->total = 0;\n\t\n\treturn 0;\n}\n\n#define _PTHREAD_BARRIER_FLAG (1<<30)\nstatic int pthread_barrier_wait(pthread_barrier_t *b)\n{\n\tEnterCriticalSection(&b->m);\n\t\n\twhile (b->total > _PTHREAD_BARRIER_FLAG)\n\t{\n\t\t/* Wait until everyone exits the barrier */\n\t\tSleepConditionVariableCS(&b->cv, &b->m, INFINITE);\n\t}\n\t\n\t/* Are we the first to enter? */\n\tif (b->total == _PTHREAD_BARRIER_FLAG) b->total = 0;\n\t\n\tb->total++;\n\t\n\tif (b->total == b->count)\n\t{\n\t\tb->total += _PTHREAD_BARRIER_FLAG - 1;\n\t\tWakeAllConditionVariable(&b->cv);\n\t\t\n\t\tLeaveCriticalSection(&b->m);\n\t\t\n\t\treturn 1;\n\t}\n\telse\n\t{\n\t\twhile (b->total < _PTHREAD_BARRIER_FLAG)\n\t\t{\n\t\t\t/* Wait until enough threads enter the barrier */\n\t\t\tSleepConditionVariableCS(&b->cv, &b->m, INFINITE);\n\t\t}\n\t\t\n\t\tb->total--;\n\t\t\n\t\t/* Get entering threads to wake up */\n\t\tif (b->total == _PTHREAD_BARRIER_FLAG) WakeAllConditionVariable(&b->cv);\n\t\t\n\t\tLeaveCriticalSection(&b->m);\n\t\t\n\t\treturn 0;\n\t}\n}\n\nstatic int pthread_barrierattr_init(void **attr)\n{\n\t*attr = NULL;\n\treturn 0;\n}\n\nstatic int pthread_barrierattr_destroy(void **attr)\n{\n\t/* Ignore attr */\n\t(void) attr;\n\t\n\treturn 0;\n}\n\nstatic int pthread_barrierattr_setpshared(void **attr, int s)\n{\n\t*attr = (void *) s;\n\treturn 0;\n}\n\nstatic int pthread_barrierattr_getpshared(void **attr, int *s)\n{\n\t*s = (int) (size_t) *attr;\n\n\treturn 0;\n}\n\nstatic int pthread_key_create(pthread_key_t *key, void (* dest)(void *))\n{\n\tunsigned int i;\n\tlong nmax;\n\tvoid (**d)(void *);\n\n\tif (!key) return EINVAL;\n\t\n\tpthread_rwlock_wrlock(&_pthread_key_lock);\n\t\n\tfor (i = _pthread_key_sch; i < _pthread_key_max; i++)\n\t{\n\t\tif (!_pthread_key_dest[i])\n\t\t{\n\t\t\t*key = i;\n\t\t\tif (dest)\n\t\t\t{\n\t\t\t\t_pthread_key_dest[i] = dest;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t_pthread_key_dest[i] = (void(*)(void *))1;\n\t\t\t}\n\t\t\tpthread_rwlock_unlock(&_pthread_key_lock);\n\t\t\t\n\t\t\treturn 0;\n\t\t}\n\t}\n\t\n\tfor (i = 0; i < _pthread_key_sch; i++)\n\t{\n\t\tif (!_pthread_key_dest[i])\n\t\t{\n\t\t\t*key = i;\n\t\t\tif (dest)\n\t\t\t{\n\t\t\t\t_pthread_key_dest[i] = dest;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t_pthread_key_dest[i] = (void(*)(void *))1;\n\t\t\t}\n\t\t\tpthread_rwlock_unlock(&_pthread_key_lock);\n\t\t\t\n\t\t\treturn 0;\n\t\t}\n\t}\n\t\n\tif (!_pthread_key_max) _pthread_key_max = 1;\n\tif (_pthread_key_max == PTHREAD_KEYS_MAX)\n\t{\n\t\tpthread_rwlock_unlock(&_pthread_key_lock);\n\t\t\n\t\treturn ENOMEM;\n\t}\n\t\n\tnmax = _pthread_key_max * 2;\n\tif (nmax > PTHREAD_KEYS_MAX) nmax = PTHREAD_KEYS_MAX;\n\t\n\t/* No spare room anywhere */\n\td = realloc(_pthread_key_dest, nmax * sizeof(*d));\n\tif (!d)\n\t{\n\t\tpthread_rwlock_unlock(&_pthread_key_lock);\n\t\t\n\t\treturn ENOMEM;\n\t}\n\t\n\t/* Clear new region */\n\tmemset((void *) &d[_pthread_key_max], 0, (nmax-_pthread_key_max)*sizeof(void *));\n\t\n\t/* Use new region */\n\t_pthread_key_dest = d;\n\t_pthread_key_sch = _pthread_key_max + 1;\n\t*key = _pthread_key_max;\n\t_pthread_key_max = nmax;\n\t\n\tif (dest)\n\t{\n\t\t_pthread_key_dest[*key] = dest;\n\t}\n\telse\n\t{\n\t\t_pthread_key_dest[*key] = (void(*)(void *))1;\n\t}\n\n\tpthread_rwlock_unlock(&_pthread_key_lock);\n\t\n\treturn 0;\n}\n\nstatic int pthread_key_delete(pthread_key_t key)\n{\n\tif (key > _pthread_key_max) return EINVAL;\n\tif (!_pthread_key_dest) return EINVAL;\n\t\n\tpthread_rwlock_wrlock(&_pthread_key_lock);\n\t_pthread_key_dest[key] = NULL;\n\t\n\t/* Start next search from our location */\n\tif (_pthread_key_sch > key) _pthread_key_sch = key;\n\t\n\tpthread_rwlock_unlock(&_pthread_key_lock);\n\t\n\treturn 0;\n}\n\nstatic void *pthread_getspecific(pthread_key_t key)\n{\n\tpthread_t t = pthread_self();\n\t\n\tif (key >= t->keymax) return NULL;\n\t\n\treturn t->keyval[key];\n\n}\n\nstatic int pthread_setspecific(pthread_key_t key, const void *value)\n{\n\tpthread_t t = pthread_self();\n\n\tif (key > t->keymax)\n\t{\n\t\tint keymax = (key + 1) * 2;\n\t\tvoid **kv = realloc(t->keyval, keymax * sizeof(void *));\n\t\t\n\t\tif (!kv) return ENOMEM;\n\t\t\n\t\t/* Clear new region */\n\t\tmemset(&kv[t->keymax], 0, (keymax - t->keymax)*sizeof(void*));\n\t\t\n\t\tt->keyval = kv;\n\t\tt->keymax = keymax;\n\t}\n\t\n\tt->keyval[key] = (void *) value;\n\t\n\treturn 0;\n}\n\n\nstatic int pthread_spin_init(pthread_spinlock_t *l, int pshared)\n{\n\t(void) pshared;\n\t\n\t*l = 0;\n\treturn 0;\n}\n\nstatic int pthread_spin_destroy(pthread_spinlock_t *l)\n{\n\t(void) l;\n\treturn 0;\n}\n\n/* No-fair spinlock due to lack of knowledge of thread number */\nstatic int pthread_spin_lock(pthread_spinlock_t *l)\n{\n\twhile (_InterlockedExchange(l, EBUSY))\n\t{\n\t\t/* Don't lock the bus whilst waiting */\n\t\twhile (*l)\n\t\t{\n\t\t\tYieldProcessor();\n\t\t\t\n\t\t\t/* Compiler barrier.  Prevent caching of *l */\n\t\t\t_ReadWriteBarrier();\n\t\t}\n\t}\n\t\n\treturn 0;\n}\n\nstatic int pthread_spin_trylock(pthread_spinlock_t *l)\n{\n\treturn _InterlockedExchange(l, EBUSY);\n}\n\nstatic int pthread_spin_unlock(pthread_spinlock_t *l)\n{\n\t/* Compiler barrier.  The store below acts with release symmantics */\n\t_ReadWriteBarrier();\n\t\n\t*l = 0;\n\t\n\treturn 0;\n}\n\nstatic int pthread_cond_init(pthread_cond_t *c, pthread_condattr_t *a)\n{\n\t(void) a;\n\t\n\tInitializeConditionVariable(c);\n\treturn 0;\n}\n\nstatic int pthread_cond_signal(pthread_cond_t *c)\n{\n\tWakeConditionVariable(c);\n\treturn 0;\n}\n\nstatic int pthread_cond_broadcast(pthread_cond_t *c)\n{\n\tWakeAllConditionVariable(c);\n\treturn 0;\n}\n\nstatic int pthread_cond_wait(pthread_cond_t *c, pthread_mutex_t *m)\n{\n\tpthread_testcancel();\n\tSleepConditionVariableCS(c, m, INFINITE);\n\treturn 0;\n}\n\nstatic int pthread_cond_destroy(pthread_cond_t *c)\n{\n\t(void) c;\n\treturn 0;\n}\n\nstatic int pthread_cond_timedwait(pthread_cond_t *c, pthread_mutex_t *m, struct timespec *t)\n{\n\tunsigned long long tm = _pthread_rel_time_in_ms(t);\n\t\n\tpthread_testcancel();\n\t\n\tif (!SleepConditionVariableCS(c, m, (DWORD) tm)) return ETIMEDOUT;\n\t\n\t/* We can have a spurious wakeup after the timeout */\n\tif (!_pthread_rel_time_in_ms(t)) return ETIMEDOUT;\n\t\n\treturn 0;\n}\n\nstatic int pthread_condattr_destroy(pthread_condattr_t *a)\n{\n\t(void) a;\n\treturn 0;\n}\n\n#define pthread_condattr_getclock(A, C) ENOTSUP\n#define pthread_condattr_setclock(A, C) ENOTSUP\n\nstatic int pthread_condattr_init(pthread_condattr_t *a)\n{\n\t*a = 0;\n\treturn 0;\n}\n\nstatic int pthread_condattr_getpshared(pthread_condattr_t *a, int *s)\n{\n\t*s = *a;\n\treturn 0;\n}\n\nstatic int pthread_condattr_setpshared(pthread_condattr_t *a, int s)\n{\n\t*a = s;\n\treturn 0;\n}\n\nstatic int pthread_rwlockattr_destroy(pthread_rwlockattr_t *a)\n{\n\t(void) a;\n\treturn 0;\n}\n\nstatic int pthread_rwlockattr_init(pthread_rwlockattr_t *a)\n{\n\t*a = 0;\n}\n\nstatic int pthread_rwlockattr_getpshared(pthread_rwlockattr_t *a, int *s)\n{\n\t*s = *a;\n\treturn 0;\n}\n\nstatic int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *a, int s)\n{\n\t*a = s;\n\treturn 0;\n}\n\n\n/* No fork() in windows - so ignore this */\n#define pthread_atfork(F1,F2,F3) 0\n\n/* Windows has rudimentary signals support */\n#define pthread_kill(T, S) 0\n#define pthread_sigmask(H, S1, S2) 0\n\n\n/* Wrap cancellation points */\n//FIXME: removed wrappers, some of them caused compilation errors\n\n#endif /* WIN_PTHREADS */\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/src/witem_cache.c",
    "content": "/*\n * Copyright (c) 2011, Joakim Johansson <jocke@tbricks.com>\n *\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include \"private.h\"\n\n\n/* no witem cache */\n\n#if (WITEM_CACHE_TYPE == 1)\n\nint\nwitem_cache_init(void)\n{\n   return (0);\n}\n\nstruct work *\nwitem_alloc(void (*func)(void *), void *func_arg)\n{\n\tstruct work *witem;\n    \n\twhile (!(witem = fastpath(malloc(ROUND_UP_TO_CACHELINE_SIZE(sizeof(*witem)))))) {\n\t\tsleep(1);\n\t}\n\n    witem->gencount = 0;\n    witem->flags = 0;\n    witem->item_entry.stqe_next = 0;\n    witem->func = func;\n    witem->func_arg = func_arg;\n\n\treturn witem;\n}\n\nvoid \nwitem_free(struct work *wi)\n{\n    dbg_printf(\"freed work item %p\", wi);\n    free(wi);\n}\n\nvoid\nwitem_cache_cleanup(void *value)\n{\n    (void) value;\n}\n\n/* libumem based object cache */\n\n#elif (WITEM_CACHE_TYPE == 2)\n\n#include <umem.h>\n\nstatic umem_cache_t  *witem_cache;\n\nint\nwitem_cache_init(void)\n{\n    witem_cache = umem_cache_create((char *) \"witem_cache\",   \n                                    sizeof(struct work),   \n                                    CACHELINE_SIZE,  \n                                    NULL,\n                                    NULL, \n                                    NULL, \n                                    NULL, \n                                    NULL, \n                                    0);\n    return (0);\n}\n\nstruct work *\nwitem_alloc(void (*func)(void *), void *func_arg)\n{\n\tstruct work *witem;\n    \n\twhile (!(witem = fastpath(umem_cache_alloc(witem_cache, UMEM_DEFAULT)))) {\n\t\tsleep(1);\n\t}\n    \n    witem->gencount = 0;\n    witem->flags = 0;\n    witem->item_entry.stqe_next = 0;\n    witem->func = func;\n    witem->func_arg = func_arg;\n\n\treturn witem;\n}\n\nvoid \nwitem_free(struct work *wi)\n{\n    umem_cache_free(witem_cache, wi);\n    return;\n}\n\nvoid\nwitem_cache_cleanup(void *value)\n{\n    void * p;\n    p = value;\n}\n\n/* TSD based cacheing per thread */\n\n#elif (WITEM_CACHE_TYPE == 3)\n\npthread_key_t witem_cache_key;\n\nint\nwitem_cache_init(void)\n{\n    pthread_key_create(&witem_cache_key, witem_cache_cleanup);\n    return (0);\n}\n\nstatic struct work *\nwitem_alloc_from_heap(void)\n{\n\tstruct work *witem;\n    \n\twhile (!(witem = fastpath(malloc(ROUND_UP_TO_CACHELINE_SIZE(sizeof(*witem)))))) {\n\t\tsleep(1);\n\t}\n    \n    witem->gencount = 0;\n    witem->flags = 0;\n    witem->item_entry.stqe_next = 0;\n\n\treturn witem;\n}\n\nstruct work *\nwitem_alloc(void (*func)(void *), void *func_arg)\n{\n    struct work *witem = fastpath(pthread_getspecific(witem_cache_key));\n\tif (witem) \n    {\n\t\tpthread_setspecific(witem_cache_key, witem->wi_next);\n\t}\n    else\n    {\n        witem = witem_alloc_from_heap();\n    }\n\n    witem->func = func;\n    witem->func_arg = func_arg;\n    \n\treturn witem;\n}\n\nvoid \nwitem_free(struct work *witem)\n{\n\tstruct work *prev_wi = pthread_getspecific(witem_cache_key);\n\n\twitem->wi_next = prev_wi;\n    \n    // We need to initialize here also...\n    witem->gencount = 0;\n    witem->flags = 0;\n    witem->item_entry.stqe_next = 0;\n    witem->func = NULL;\n    witem->func_arg = NULL;\n\n\tpthread_setspecific(witem_cache_key, witem);\n}\n\nvoid\nwitem_cache_cleanup(void *value)\n{\n\tstruct work *wi, *next_wi = value;\n    \n\twhile ((wi = next_wi)) {\n\t\tnext_wi = wi->wi_next;\n\t\tfree(wi);\n\t}\n}\n#else\n\n#error Invalid witem cache type specified\n\n#endif\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/CMakeLists.txt",
    "content": "#\n# Copyright (c) 2011 Marius Zwicker <marius@mlba-team.de>\n#\n# Permission to use, copy, modify, and distribute this software for any\n# purpose with or without fee is hereby granted, provided that the above\n# copyright notice and this permission notice appear in all copies.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n#\n\n#files\nset(API api/test.c)\nset(WITEM_CACHE witem_cache/test.c)\nset(LATENCY latency/latency.c latency/latency.h)\n\n\n#includes\ninclude_directories(\n\t../include\n)\n\nif(UNIX)\n    add_definitions(\n        -DNO_CONFIG_H\n    )\nendif()\n\nadd_executable(test_api_pthread_workqueue ${API})\ntarget_link_libraries(test_api_pthread_workqueue pthread_workqueue)\nset_target_properties(test_api_pthread_workqueue PROPERTIES DEBUG_POSTFIX \"D\")\n\nadd_executable(test_latency_pthread_workqueue ${LATENCY})\ntarget_link_libraries(test_latency_pthread_workqueue pthread_workqueue)\n\nif(NOT WIN32)\n\n        #add_executable(test_witem_cache_pthread_workqueue ${WITEM_CACHE})\n        #target_link_libraries(test_witem_cache_pthread_workqueue pthreads_workqueue)\n\nendif()\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/api/posix_semaphore.h",
    "content": "#ifndef DISPATCH_WIN_POSIX_SEMAPHORE_\r\n#define DISPATCH_WIN_POSIX_SEMAPHORE_\r\n\r\ntypedef HANDLE sem_t;\n\nstatic int sem_init(sem_t * sem, int shared, unsigned int val)\n{\n\t*sem = CreateSemaphore(0, val, 1, 0);\n\t// TODO: Proper error handling\n\treturn *sem == 0;\n}\n\nstatic inline int sem_destroy(sem_t* s)\n{\n\treturn CloseHandle(s) != 1;\n}\n\nstatic inline int sem_post(sem_t* s)\n{\n\treturn !ReleaseSemaphore(s, 1, 0);\n}\n\nstatic inline int sem_wait(sem_t* s)\n{\n\treturn WaitForSingleObject(s, INFINITE) == WAIT_FAILED;\n}\n\r\nstatic int sem_timedwait(sem_t * sem, const struct timespec * timeout)\r\n{\n\tDWORD duration = (DWORD)(timeout->tv_nsec / 1000000) + (DWORD)(timeout->tv_sec * 1000);\n\n\tswitch(WaitForSingleObject(sem,duration) ){\n\tcase WAIT_TIMEOUT:\n\t\treturn ETIMEDOUT;\n\tcase WAIT_FAILED:\n\t\treturn EINVAL;\n\tdefault:\n\t\treturn 0;\n\t}\r\n}\r\n\r\n#endif /* DISPATCH_WIN_POSIX_SEMAPHORE_ */\r\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/api/test.c",
    "content": "#include <limits.h>\n#include <stdlib.h>\n#include <stdio.h>\n#include <string.h>\n\n#if !defined(_WIN32)\n# include <sys/wait.h>\n# if !defined(NO_CONFIG_H)\n#  include \"config.h\"\n# endif\n# include <semaphore.h>\n#else\n# define inline _inline\n# include \"../../src/windows/platform.h\"\n# include \"posix_semaphore.h\"\n#endif\n#include \"../../src/private.h\"\n\n#if HAVE_ERR_H\n# include <err.h>\n#else\n# define err(rc,msg,...) do { perror(msg); exit(rc); } while (0)\n# define errx(rc,msg,...) do { puts(msg); exit(rc); } while (0)\n#endif\n\n#include <pthread_workqueue.h>\n\nstatic int work_cnt;\n\n/* If non-zero, extra debugging statements will be printed */\nstatic int dbg = 0;\n\nstatic sem_t test_complete;\nstatic int test_rounds;\n#undef dbg_puts\n#define dbg_puts(s) if (dbg) puts(s)\n#undef dbg_printf\n#define dbg_printf(fmt,...) if (dbg) fprintf(stderr, fmt, __VA_ARGS__)\n\nvoid additem(pthread_workqueue_t wq, void (*func)(void *), \n             void * arg)\n{\n\n    int rv;\n    \n    rv = pthread_workqueue_additem_np(wq, *func, arg, NULL, NULL);\n    if (rv != 0)\n        errx(1, \"unable to add item: %s\", strerror(rv));\n    dbg_puts(\"added item\\n\");\n}\n\nvoid \nmark_progress(void)\n{\n    static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;\n\n    pthread_mutex_lock(&mtx);\n    test_rounds--;\n    pthread_mutex_unlock(&mtx);\n\n    dbg_printf(\"rounds = %d\\n\", test_rounds);\n    if (test_rounds == 0) {\n        sem_post(&test_complete);\n    }\n}\n\nvoid\nsem_up(void *arg)\n{\n    dbg_puts(\"semaphore UP\\n\");\n    sem_post((sem_t *) arg);\n    mark_progress();\n}\n\nvoid\nsem_down(void *arg)\n{\n    dbg_puts(\"semaphore DOWN\\n\");\n    sem_wait((sem_t *) arg);\n    dbg_puts(\"semaphore UP\\n\");\n    sem_post((sem_t *) arg);\n    mark_progress();\n}\n\nvoid\ncompute(void *arg)\n{\n    int *count = (int *) arg;\n#define nval 5000\n    int val[nval];\n    int i,j;\n\n    /* Do some useless computation */\n    for (i = 0; i < nval; i++) {\n        val[i] = INT_MAX;\n    }\n    for (j = 0; j < nval; j++) {\n        for (i = 0; i < nval; i++) {\n            val[i] /= 3;\n            val[i] *= 2;\n            val[i] /= 4;\n            val[i] *= 5;\n        }\n    }\n\n    if (count != NULL) \n        (*count)--;\n}\n\n\nvoid\nsleepy(void *msg)\n{\n    printf(\"%s\\n\", (char *) msg);\n    if (strcmp(msg, \"done\") == 0)\n        exit(0);\n    sleep(random() % 6);\n}\n\nvoid\nlazy(void *arg)\n{\n    sleep(3);\n    dbg_printf(\"item %lu complete\\n\", (unsigned long) arg);\n\twork_cnt--;\n}\n\nvoid\nrun_blocking_test(pthread_workqueue_t wq, int rounds)\n{\n\tlong i = 0;\n\twork_cnt = rounds;\n    for (i = 0; i < rounds; i++) {\n        additem(wq, lazy, (void *) i);\n    }\n\twhile (work_cnt > 0)\n\t\tsleep(1);\n}\n\nvoid\nrun_cond_wait_test(pthread_workqueue_t wq)\n{\n\tconst int rounds = 10;\n\tlong i = 0;\n\n\tsleep(3);\t/* Allow time for the workers to enter pthread_cond_wait() */\n\twork_cnt = rounds;\n    for (i = 0; i < rounds; i++) {\n        additem(wq, lazy, (void *) i);\n\t\tsleep(1);\n    }\n\twhile (work_cnt > 0)\n\t\tsleep(1);\n}\n\nvoid\nrun_load_test(pthread_workqueue_t wq)\n{\n    char buf[16];\n\tint i = 0;\n    for (i = 0; i < 1024; i++) {\n        sprintf(buf, \"%d\", i);\n        additem(wq, sleepy, strdup(buf));\n        additem(wq, compute, NULL);\n    }\n    additem(wq, sleepy, \"done\");\n}\n\n/* Try to overwhelm the CPU with computation requests */\nvoid\nrun_stress_test(pthread_workqueue_t wq, int rounds)\n{\n\tint i = 0;\n\twork_cnt = rounds;\n    for (i = 0; i < rounds; i++) {\n        additem(wq, compute, &work_cnt);\n    }\n\twhile (work_cnt > 0)\n\t\tsleep(1);\n}\n\n/*\n * Ensure that the library is reinitialized after fork(2) is called.\n */\nvoid\nrun_fork_test(pthread_workqueue_t wq)\n{\n#if !defined(_WIN32)\n    pid_t pid;\n    int   rv, status, timeout;\n\n    puts(\"fork test... \");\n    pid = fork();\n    if (pid < 0) \n        err(1, \"fork\");\n\n    if (pid == 0) {\n        /* Child */\n        wq = NULL;\n        rv = pthread_workqueue_create_np(&wq, NULL);\n        if (rv < 0)\n            errx(1, \"pthread_workqueue_create_np\");\n        work_cnt = 1;\n        timeout = 5;\n        additem(wq, compute, &work_cnt);\n        while (work_cnt > 0) {\n            sleep(1);\n            if (--timeout == 0)\n                errx(1, \"work was not completed\");\n        }\n        exit(0);\n    } else {\n        /* Parent */\n        if (wait(&status) != pid) \n            err(1, \"waitpid\");\n        if (WEXITSTATUS(status) != 0) \n            errx(1, \"fork test failed\");\n        puts(\"ok\\n\");\n    }\n#else\n    puts(\"fork test... N/A\\n\");\n#endif\n}\n\nvoid\nrun_overcommit_test(pthread_workqueue_t wq)\n{\n    sem_t sem;\n    pthread_workqueue_t ocwq;\n    pthread_workqueue_attr_t attr;\n    int i, rv;\n\n    (void)wq;\n    sem_init(&sem, 0, 0);\n\n    printf(\"pthread_workqueue_create_np() - overcommit enabled \");\n    pthread_workqueue_attr_init_np(&attr);\n    pthread_workqueue_attr_setovercommit_np(&attr, 1);\n    rv = pthread_workqueue_create_np(&ocwq, &attr);\n    if (rv != 0)\n        err(1, \"failed\");\n\n    puts(\"ok\\n\");\n\n    printf(\"stress test - overcommit enabled \");\n    run_stress_test(ocwq, 25);\n    puts(\"ok\\n\");\n\n    /* FIXME: should use a multiple of the number of CPUs instead of magic number */\n    printf(\"deadlock test - overcommit enabled \");\n    test_rounds = 41;\n    for (i = 0; i < 40; i++) {\n        additem(ocwq, sem_down, &sem);\n    }\n    additem(ocwq, sem_up, &sem);\n    sem_wait(&test_complete);\n    puts(\"ok\\n\");\n}\n\nint main() {\n    pthread_workqueue_t wq;\n    int rv;\n\n#ifdef MAKE_STATIC\n\tpthread_workqueue_init_np();\n#endif\n\n    sem_init(&test_complete, 0, 0);\n\n    run_overcommit_test(NULL);\n\n    printf(\"pthread_workqueue_create_np().. \");\n    rv = pthread_workqueue_create_np(&wq, NULL);\n    if (rv != 0)\n        err(1, \"failed\");\n    printf(\"ok\\n\");\n\n    printf(\"stress test.. \");\n    run_stress_test(wq, 25);\n    printf(\"ok\\n\");\n\n    run_fork_test(wq);\n\n    //run_deadlock_test();\n//    run_cond_wait_test();\n//    run_blocking_test();\n    //run_load_test();\n\n\n\tputs(\"All tests completed.\\n\");\n    exit(0);\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/api/test_api.vcxproj",
    "content": "﻿<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<Project DefaultTargets=\"Build\" ToolsVersion=\"4.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">\r\n  <ItemGroup Label=\"ProjectConfigurations\">\r\n    <ProjectConfiguration Include=\"Debug|Win32\">\r\n      <Configuration>Debug</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n    <ProjectConfiguration Include=\"Release|Win32\">\r\n      <Configuration>Release</Configuration>\r\n      <Platform>Win32</Platform>\r\n    </ProjectConfiguration>\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ClCompile Include=\"test.c\" />\r\n  </ItemGroup>\r\n  <ItemGroup>\r\n    <ProjectReference Include=\"..\\..\\libpthread_workqueue.vcxproj\">\r\n      <Project>{c8953032-a7fd-b3b1-6606-8dd078518b9a}</Project>\r\n    </ProjectReference>\r\n  </ItemGroup>\r\n  <PropertyGroup Label=\"Globals\">\r\n    <ProjectGuid>{6D7A0EA0-AE20-4584-AEE6-25B49823073A}</ProjectGuid>\r\n    <Keyword>Win32Proj</Keyword>\r\n    <RootNamespace>test_api</RootNamespace>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>Application</ConfigurationType>\r\n    <UseDebugLibraries>true</UseDebugLibraries>\r\n    <CharacterSet>Unicode</CharacterSet>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\" Label=\"Configuration\">\r\n    <ConfigurationType>Application</ConfigurationType>\r\n    <UseDebugLibraries>false</UseDebugLibraries>\r\n    <WholeProgramOptimization>true</WholeProgramOptimization>\r\n    <CharacterSet>Unicode</CharacterSet>\r\n  </PropertyGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.props\" />\r\n  <ImportGroup Label=\"ExtensionSettings\">\r\n  </ImportGroup>\r\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n  </ImportGroup>\r\n  <ImportGroup Label=\"PropertySheets\" Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <Import Project=\"$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props\" Condition=\"exists('$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props')\" Label=\"LocalAppDataPlatform\" />\r\n  </ImportGroup>\r\n  <PropertyGroup Label=\"UserMacros\" />\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <LinkIncremental>true</LinkIncremental>\r\n    <IncludePath>..\\..\\include;$(IncludePath)</IncludePath>\r\n  </PropertyGroup>\r\n  <PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <LinkIncremental>false</LinkIncremental>\r\n  </PropertyGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">\r\n    <ClCompile>\r\n      <PrecompiledHeader>NotUsing</PrecompiledHeader>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <Optimization>Disabled</Optimization>\r\n      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <ItemDefinitionGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">\r\n    <ClCompile>\r\n      <WarningLevel>Level3</WarningLevel>\r\n      <PrecompiledHeader>Use</PrecompiledHeader>\r\n      <Optimization>MaxSpeed</Optimization>\r\n      <FunctionLevelLinking>true</FunctionLevelLinking>\r\n      <IntrinsicFunctions>true</IntrinsicFunctions>\r\n      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r\n    </ClCompile>\r\n    <Link>\r\n      <SubSystem>Console</SubSystem>\r\n      <GenerateDebugInformation>true</GenerateDebugInformation>\r\n      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r\n      <OptimizeReferences>true</OptimizeReferences>\r\n    </Link>\r\n  </ItemDefinitionGroup>\r\n  <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\r\n  <ImportGroup Label=\"ExtensionTargets\">\r\n  </ImportGroup>\r\n</Project>"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/idle/main.c",
    "content": "/*-\n * Copyright (c) 2011, Mark Heily <mark@heily.com>\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include <err.h>\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n\n#include <pthread_workqueue.h>\n\nvoid f(void *arg)\n{\n    long x = (long) arg;\n\n    printf(\"worker %ld running\\n\", x);\n    sleep(1);\n    printf(\"worker %ld finished\\n\", x);\n}\n\nvoid run_idle_test(pthread_workqueue_t wq)\n{\n    long i;\n    int rv;\n\n    for (i = 0; i < 100; i++) {\n        rv = pthread_workqueue_additem_np(wq, f, (void *) i, NULL, NULL);\n        if (rv != 0) abort();\n    }\n\n    sleep(2);\n\n    int rounds = 0;\n    for (;;) {\n        unsigned long idle = pthread_workqueue_peek_np(\"combined_idle\");\n        unsigned long norml_idle = pthread_workqueue_peek_np(\"idle\");\n        unsigned long ocomm_idle = pthread_workqueue_peek_np(\"ocomm_idle\");\n        printf(\"idle = %lu (overcommit = %lu non-overcommit = %lu)\\n\", \n                idle, ocomm_idle, norml_idle);\n        if (idle == 0 || (norml_idle == 1 && ocomm_idle == 0))\n            break;\n\n        sleep(1);\n        if (rounds++ > 240) {\n            printf(\"\\n*** ERROR: idle threads were not reaped properly\\n\");\n            exit(1);\n        }\n    }\n}\n\n/*\n * Enqueue a large number of short-lived workitems, to allow observation\n * of how idle threads are terminated.\n */\nint main(int argc, char *argv[]) \n{\n    pthread_workqueue_t wq;\n    pthread_workqueue_t ocwq;\n    pthread_workqueue_attr_t attr;\n    pthread_workqueue_attr_t ocattr;\n    int i, rounds;\n    int rv;\n\n    if (argc == 2) \n        rounds = atoi(argv[1]);\n    else\n        rounds = 1;\n\n    pthread_workqueue_attr_init_np(&attr);\n    pthread_workqueue_attr_setovercommit_np(&attr, 0);\n    rv = pthread_workqueue_create_np(&wq, &attr);\n    if (rv != 0) abort();\n\n    pthread_workqueue_attr_init_np(&ocattr);\n    pthread_workqueue_attr_setovercommit_np(&ocattr, 1);\n    rv = pthread_workqueue_create_np(&ocwq, &ocattr);\n    if (rv != 0) abort();\n\n    for (i = 0; i < rounds; i++) {\n        run_idle_test(wq);\n        run_idle_test(ocwq);\n    }\n    printf(\"\\n---\\nOK: all excess idle threads have been terminated after %d rounds.\\n\", rounds);\n    exit(0);\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/latency/latency.c",
    "content": "/*\n * Copyright (c) 2011 Joakim Johansson <jocke@tbricks.com>.\n *\n * @APPLE_APACHE_LICENSE_HEADER_START@\n * \n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *     http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * @APPLE_APACHE_LICENSE_HEADER_END@\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <ctype.h>\n#include <string.h>\n#include <errno.h>\n#include <time.h>\n\n#ifndef _WIN32\n# include <unistd.h>\n# include <pthread.h>\n# include <sys/time.h>\n#endif\n\n#include \"latency.h\"\n\npthread_workqueue_t workqueues[WORKQUEUE_COUNT]; \nstruct wq_statistics workqueue_statistics[WORKQUEUE_COUNT]; \nstruct wq_event_generator workqueue_generator[GENERATOR_WORKQUEUE_COUNT];\n\nstruct wq_statistics global_statistics;\nunsigned int global_stats_used = 0;\n\npthread_mutex_t generator_mutex;\npthread_cond_t generator_condition;\nstatic unsigned int events_processed;\n\n#define PERCENTILE_COUNT 8 \ndouble percentiles[PERCENTILE_COUNT] = {50.0, 80.0, 98.0, 99.0, 99.5, 99.8, 99.9, 99.99};\nmytime_t real_start, real_end;\n\n#ifdef __APPLE__\n\n#include <assert.h>\n#include <CoreServices/CoreServices.h>\n#include <mach/mach.h>\n#include <mach/mach_time.h>\n\nstatic mach_timebase_info_data_t    sTimebaseInfo;\n\n// From http://developer.apple.com/library/mac/#qa/qa2004/qa1398.html\nunsigned long gettime(void)\n{\n    return (mach_absolute_time() * sTimebaseInfo.numer / sTimebaseInfo.denom);\n}\n\n#else\n\nstatic mytime_t gettime(void)\n{\n#ifdef __linux__\n\tstruct timespec ts;\n    if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)\n\t\t        fprintf(stderr, \"Failed to get high resolution clock! errno = %d\\n\", errno);   \n    return ((ts.tv_sec * NANOSECONDS_PER_SECOND) + ts.tv_nsec);\n#elif defined(_WIN32)\n\tLARGE_INTEGER now;\n\tLARGE_INTEGER freq;\n\tif (!QueryPerformanceCounter(&now) )\n\t\tfprintf(stderr, \"Failed to get performance counter!\\n\");\n\tif (!QueryPerformanceFrequency(&freq) )\n\t\tfprintf(stderr, \"Failed to get performance frequency!\\n\");\n\n\treturn (mytime_t)(now.QuadPart * NANOSECONDS_PER_SECOND / freq.QuadPart);\n#else\n    struct timespec ts;\n    if (clock_gettime(CLOCK_HIGHRES, &ts) != 0)\n\t\t        fprintf(stderr, \"Failed to get high resolution clock! errno = %d\\n\", errno);   \n    return ((ts.tv_sec * NANOSECONDS_PER_SECOND) + ts.tv_nsec);\n#endif\n}\n\n#endif\n\n#ifdef _WIN32\n\nstatic void my_sleep(unsigned long nanoseconds) {\n\tLARGE_INTEGER start, end;\n\tLARGE_INTEGER freq;\n\t\n\tQueryPerformanceCounter(&start);\n\tQueryPerformanceFrequency(&freq);\n\n\t// sleep with ms resolution ...\n\tSleep(nanoseconds / 1000000);\n\n\t// ... and busy-wait afterwards, until the requested delay was reached\n\tQueryPerformanceCounter(&end);\n\twhile( (end.QuadPart - start.QuadPart) * NANOSECONDS_PER_SECOND / freq.QuadPart < nanoseconds ){\n\t\tYieldProcessor();\n\t\tQueryPerformanceCounter(&end);\n\t}\n\n}\n\n#else\n\n// real resolution on solaris is at best system clock tick, i.e. 100Hz unless having the\n// high res system clock (1000Hz in that case)\n\nstatic void my_sleep(unsigned long nanoseconds)\n{\n\tstruct timespec timeout0;\n\tstruct timespec timeout1;\n\tstruct timespec* tmp;\n\tstruct timespec* t0 = &timeout0;\n\tstruct timespec* t1 = &timeout1;\n\t\n\tt0->tv_sec = nanoseconds / NANOSECONDS_PER_SECOND;\n\tt0->tv_nsec = nanoseconds % NANOSECONDS_PER_SECOND;\n\n\twhile ((nanosleep(t0, t1) == (-1)) && (errno == EINTR))\n\t{\n\t\ttmp = t0;\n\t\tt0 = t1;\n\t\tt1 = tmp;\n\t}\n    \n    return;\n}\n\n#endif\n\nstatic void _process_data(void* context)\n{\n\tstruct wq_event *event = (struct wq_event *) context;\n\tmytime_t elapsed_time;\n    \n\telapsed_time = gettime() - event->start_time;\n    \n\tworkqueue_statistics[event->queue_index].avg = ((workqueue_statistics[event->queue_index].count * workqueue_statistics[event->queue_index].avg) + elapsed_time) / (workqueue_statistics[event->queue_index].count + 1);\n\tworkqueue_statistics[event->queue_index].total += elapsed_time;\n\tworkqueue_statistics[event->queue_index].count += 1;\n    \n    if (elapsed_time < workqueue_statistics[event->queue_index].min || \n        workqueue_statistics[event->queue_index].min == 0) \n        workqueue_statistics[event->queue_index].min = elapsed_time;\n\t\n    if (elapsed_time > workqueue_statistics[event->queue_index].max)\n        workqueue_statistics[event->queue_index].max = elapsed_time;\n    \n    if ((elapsed_time / 1000) < DISTRIBUTION_BUCKETS)\n        workqueue_statistics[event->queue_index].distribution[(int)(elapsed_time / 1000)] += 1;\n    else  \n        workqueue_statistics[event->queue_index].distribution[DISTRIBUTION_BUCKETS-1] += 1;\n\n    // allow generator thread to continue when all events have been processed\n    if (atomic_dec_nv(&events_processed) == 0)\n    {\n        pthread_mutex_lock(&generator_mutex);\n        pthread_cond_signal(&generator_condition);\n        pthread_mutex_unlock(&generator_mutex);\n    }\n    return;\n}\n\n// Perform a small microburst for this tick\nstatic void _event_tick(void* context)\n{\n\tstruct wq_event *current_event;\n\tlong i, generator_workqueue = (long) context;\n    \n    for (i = 0; i < EVENTS_GENERATED_PER_TICK; i++)\n    {\n        current_event = &workqueue_generator[generator_workqueue].wq_events[i];\n        current_event->start_time = gettime();\n        current_event->queue_index = (current_event->start_time % WORKQUEUE_COUNT);\n        \n        (void) pthread_workqueue_additem_np(workqueues[current_event->queue_index], _process_data, current_event, NULL, NULL);\n    }\n    \n    return;\n}\n\nstatic void _generate_simulated_events()\n{\n\tunsigned long i = 0, tick;\n\tmytime_t overhead;\n    mytime_t start, current, overhead_start = 0, overhead_end = 0;\n\n    start = current = gettime();\n\n\tfor (tick = 0; tick < TOTAL_TICKS_TO_RUN; tick++)\n\t{\n        start = current = overhead_end;\n        overhead = overhead_end - overhead_start;\n        \n        // wait until we have waited proper amount of time for current rate\n        // we should remove overhead of previous lap to not lag behind in data rate\n        // one call to gethrtime() alone is around 211ns on Nehalem 2.93\n        // use busy waiting in case the frequency is higher than the supported resolution of nanosleep()\n\n        if (overhead > EVENT_TIME_SLICE)\n        {\n            printf(\"Warning: Event processing overhead > event time slice, readjust test parameters.\\n\");\n        }\n        else\n        if ((EVENT_GENERATION_FREQUENCY > SYSTEM_CLOCK_RESOLUTION) || FORCE_BUSY_LOOP)\n        {\n            while ((current - start) < (EVENT_TIME_SLICE - overhead))\n                current = gettime();            \n        }\n        else\n        {\n            my_sleep(EVENT_TIME_SLICE - overhead);\n        }\n        \n        overhead_start = gettime();\n        \n        events_processed = GENERATOR_WORKQUEUE_COUNT * EVENTS_GENERATED_PER_TICK; // number of items that will be processed\n  \n#if (LATENCY_RUN_GENERATOR_IN_MAIN_THREAD == 0)\n        for (i = 0; i < GENERATOR_WORKQUEUE_COUNT; i++)\n            (void) pthread_workqueue_additem_np(workqueue_generator[i].wq, _event_tick, (void *) i, NULL, NULL);\n#else\n        _event_tick((void *)i);\n#endif\n\n        // wait for all events to be processed\n        pthread_mutex_lock(&generator_mutex);\n        while (events_processed > 0)\n            pthread_cond_wait(&generator_condition, &generator_mutex);\n        pthread_mutex_unlock(&generator_mutex);\n\n        overhead_end = gettime();\n\t}\t\n\n\treturn;\n}\n\nstatic void _gather_statistics(unsigned long queue_index)\n{\n    unsigned long i;\n    \n    if (workqueue_statistics[queue_index].count > 0)\n    {\n        global_stats_used ++;\n        \n        global_statistics.avg = ((global_statistics.count * global_statistics.avg) + (workqueue_statistics[queue_index].avg * workqueue_statistics[queue_index].count)) / (global_statistics.count + workqueue_statistics[queue_index].count);\n        global_statistics.total += workqueue_statistics[queue_index].total;\n        global_statistics.count += workqueue_statistics[queue_index].count;\n        \n        if (workqueue_statistics[queue_index].min < global_statistics.min || global_statistics.min == 0) \n            global_statistics.min = workqueue_statistics[queue_index].min;\n        \n        if (workqueue_statistics[queue_index].max > global_statistics.max)\n            global_statistics.max = workqueue_statistics[queue_index].max;\n        \n        for (i = 0; i < DISTRIBUTION_BUCKETS; i++)\n            global_statistics.distribution[i] += workqueue_statistics[queue_index].distribution[i];\n    }\n    \n\treturn;\n}\n\nvoid _print_statistics()\n{\n\tunsigned long i, j, total_events = 0, last_percentile = 0, accumulated_percentile = 0;\n        \n\tprintf(\"Collecting statistics...\\n\");\n\t\n\tfor (i = 0; i < WORKQUEUE_COUNT; i++)\n        _gather_statistics(i);\n    \n\tprintf(\"Test is done, run time was %.3f seconds, %.1fM events generated and processed.\\n\", (double)((double)(real_end - real_start) / (double) NANOSECONDS_PER_SECOND), total_events/1000000.0); \n\t\n    //FIXME - casting from mytime_t (u_long) to int will truncate the result\n\tprintf(\"Global dispatch queue aggregate statistics for %d queues: %dM events, min = %d ns, avg = %.1f ns, max = %d ns\\n\",\n           global_stats_used, global_statistics.count/1000000, (int) global_statistics.min, global_statistics.avg, (int) global_statistics.max);\n    \n    printf(\"\\nDistribution:\\n\");\n    for (i = 0; i < DISTRIBUTION_BUCKETS; i++)\n    {                   \n        printf(\"%3ld us: %d \", i, global_statistics.distribution[i]);\n        for (j=0; j<(((double) global_statistics.distribution[i] / (double) global_statistics.count) * 400.0); j++)\n            printf(\"*\");\n        printf(\"\\n\");\n    }\n    \n    printf(\"\\nPercentiles:\\n\");\n    \n    for (i = 0; i < DISTRIBUTION_BUCKETS; i++)\n    {        \n        while ((last_percentile < PERCENTILE_COUNT) && ((100.0 * ((double) accumulated_percentile / (double) global_statistics.count)) > percentiles[last_percentile]))\n        {\n            printf(\"%.2f < %ld us\\n\", percentiles[last_percentile], i-1);\n            last_percentile++;\n        }\n        accumulated_percentile += global_statistics.distribution[i];        \n    }\n    \n    while ((last_percentile < PERCENTILE_COUNT) && ((100.0 * ((double) accumulated_percentile / (double) global_statistics.count)) > percentiles[last_percentile]))\n    {\n        printf(\"%.2f > %d us\\n\", percentiles[last_percentile], DISTRIBUTION_BUCKETS-1);\n        last_percentile++;\n    }\n\n\treturn;\n}\t\n\nint main(void)\n{\n\tint i;\n    pthread_workqueue_attr_t attr;\n    \n#ifdef __APPLE__\n    (void) mach_timebase_info(&sTimebaseInfo);\n#endif\n\t\n#ifdef MAKE_STATIC\n\tpthread_workqueue_init_np();\n#endif\n    \n\tmemset(&workqueues, 0, sizeof(workqueues));\n\tmemset(&workqueue_statistics, 0, sizeof(workqueue_statistics));\n\tmemset(&global_statistics, 0, sizeof(global_statistics));\n\tmemset(&workqueue_generator, 0, sizeof(workqueue_generator));\n\n    pthread_mutex_init(&generator_mutex, NULL);\n    pthread_cond_init(&generator_condition, NULL);\n    \n    if (pthread_workqueue_attr_init_np(&attr) != 0)\n        fprintf(stderr, \"Failed to set workqueue attributes\\n\");\n    \n    for (i = 0; i < GENERATOR_WORKQUEUE_COUNT; i++)\n    {\n        if (pthread_workqueue_attr_setqueuepriority_np(&attr, i) != 0) \n            fprintf(stderr, \"Failed to set workqueue priority\\n\");\n\n        if (pthread_workqueue_attr_setovercommit_np(&attr, 1) != 0)\n            fprintf(stderr, \"Failed to set workqueue overcommit\\n\");\n\n        workqueue_generator[i].wq_events = malloc(sizeof(struct wq_event) * EVENTS_GENERATED_PER_TICK);\n        memset(workqueue_generator[i].wq_events, 0, (sizeof(struct wq_event) * EVENTS_GENERATED_PER_TICK));\n        \n        if (pthread_workqueue_create_np(&workqueue_generator[i].wq, &attr) != 0)\n            fprintf(stderr, \"Failed to create workqueue\\n\");\n    }\n    \n\tfor (i = 0; i < WORKQUEUE_COUNT; i++)\n\t{\n        if (pthread_workqueue_attr_init_np(&attr) != 0)\n            fprintf(stderr, \"Failed to set workqueue attributes\\n\");\n        \n        if (pthread_workqueue_attr_setqueuepriority_np(&attr, i) != 0) \n            fprintf(stderr, \"Failed to set workqueue priority\\n\");\n        \n        if (pthread_workqueue_create_np(&workqueues[i], &attr) != 0)\n            fprintf(stderr, \"Failed to create workqueue\\n\");\n\t}\n    \n\tif (SLEEP_BEFORE_START > 0)\n\t{\n\t\tprintf(\"Sleeping for %d seconds to allow for processor set configuration...\\n\",SLEEP_BEFORE_START);\n\t\tsleep(SLEEP_BEFORE_START); \t\t\n\t}\n\t\n    printf(\"%d workqueues, running for %d seconds at %d Hz, %d events per tick.\\n\",WORKQUEUE_COUNT, SECONDS_TO_RUN, EVENT_GENERATION_FREQUENCY, EVENTS_GENERATED_PER_TICK);\n    \n\tprintf(\"Running %d generator threads at %dK events/s, the aggregated data rate is %dK events/s. %.2f MB is used for %.2fK events.\\n\",\n           GENERATOR_WORKQUEUE_COUNT,AGGREGATE_DATA_RATE_PER_SECOND/1000, TOTAL_DATA_PER_SECOND/1000,\n           (double) GENERATOR_WORKQUEUE_COUNT * ((sizeof(struct wq_event) * EVENTS_GENERATED_PER_TICK + sizeof(workqueues))/(1024.0*1024.0)), \n           GENERATOR_WORKQUEUE_COUNT * EVENTS_GENERATED_PER_TICK/1000.0);\n\n    real_start = gettime();\n    \n    _generate_simulated_events();\n\n    real_end = gettime();\n\n    _print_statistics();\n        \n\treturn 0;\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/latency/latency.h",
    "content": "/*\n * Copyright (c) 2011 Joakim Johansson <jocke@tbricks.com>.\n *\n * @APPLE_APACHE_LICENSE_HEADER_START@\n * \n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *     http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * @APPLE_APACHE_LICENSE_HEADER_END@\n */\n\n#include \"pthread_workqueue.h\"\n\n#ifdef _WIN32\n# include \"../../src/windows/platform.h\"\n#endif\n\n// Run settings\n#define SECONDS_TO_RUN 10\n#define WORKQUEUE_COUNT 3\n#define GENERATOR_WORKQUEUE_COUNT 1\n#define SLEEP_BEFORE_START 0\n#define FORCE_BUSY_LOOP 0\n#define LATENCY_RUN_GENERATOR_IN_MAIN_THREAD 0\n\n// Data rates\n#define EVENTS_GENERATED_PER_TICK 100   // simulate some small bursting \n#define EVENT_GENERATION_FREQUENCY 100  // events/s base rate, need to use busy loop = 1 if > 100Hz due to nanosleep resolution \n\n#define AGGREGATE_DATA_RATE_PER_SECOND (EVENT_GENERATION_FREQUENCY * EVENTS_GENERATED_PER_TICK)\n#define EVENTS_TO_GENERATE (SECONDS_TO_RUN * AGGREGATE_DATA_RATE_PER_SECOND)\n#define TOTAL_DATA_PER_SECOND (AGGREGATE_DATA_RATE_PER_SECOND*GENERATOR_WORKQUEUE_COUNT)\n#define TOTAL_TICKS_TO_RUN (SECONDS_TO_RUN * EVENT_GENERATION_FREQUENCY)\n\n#define NANOSECONDS_PER_SECOND 1000000000\n#define DISTRIBUTION_BUCKETS 20 // 1us per bucket\n#define EVENT_TIME_SLICE (NANOSECONDS_PER_SECOND / EVENT_GENERATION_FREQUENCY)\n#define SYSTEM_CLOCK_RESOLUTION 100\n\n#ifdef _WIN32\ntypedef unsigned long long mytime_t;\n#else\ntypedef unsigned long mytime_t;\n#endif\n\nstruct wq_event \n{\n\tunsigned int queue_index; \n\tmytime_t start_time;\n};\n\nstruct wq_statistics \n{\n\tmytime_t min; \n\tmytime_t max; \n\tdouble avg; \n\tmytime_t total; \n\tunsigned int count; \n\tunsigned int count_over_threshold; \n    unsigned int distribution[DISTRIBUTION_BUCKETS];\n};\n\n// We create our own separate workqueues for event generation\nstruct wq_event_generator \n{\n\tpthread_workqueue_t wq; \n\tstruct wq_event *wq_events; \n};\n\n#ifdef __sun\n# include <atomic.h>\n# define atomic_inc      atomic_inc_32\n# define atomic_dec      atomic_dec_32\n# define atomic_inc_nv   atomic_inc_32_nv\n# define atomic_dec_nv   atomic_dec_32_nv\n#elif defined(_WIN32)\n# define atomic_inc(p)   (void) InterlockedIncrement((p))\n# define atomic_dec(p)   (void) InterlockedDecrement((p))\n# define atomic_inc_nv(p)  InterlockedIncrement((p))\n# define atomic_dec_nv(p)  InterlockedDecrement((p))\n#else\n# define atomic_inc(p)   (void) __sync_add_and_fetch((p), 1)\n# define atomic_dec(p)   (void) __sync_sub_and_fetch((p), 1)\n# define atomic_inc_nv(p)  __sync_add_and_fetch((p), 1)\n# define atomic_dec_nv(p)  __sync_sub_and_fetch((p), 1)\n#endif\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/libdispatch/dispatch_api.c",
    "content": "/*\n * Copyright (c) 2011 Mark Heily.\n * Copyright (c) 2008-2009 Apple Inc. All rights reserved.\n *\n * @APPLE_APACHE_LICENSE_HEADER_START@\n * \n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *     http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * @APPLE_APACHE_LICENSE_HEADER_END@\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n\n#include <dispatch/dispatch.h>\n\nvoid\nwork(void *context __attribute__((unused)))\n{\n    puts(\"work complete\");\n\texit(0);\n}\n\nint main(void) {\n\tdispatch_queue_t q = dispatch_get_main_queue();\n\tdispatch_sync_f(dispatch_get_main_queue(), NULL, work);\n\tdispatch_main();\n\treturn 0;\n}\n"
  },
  {
    "path": "src/external/libpthread_workqueue-0.8.2/testing/witem_cache/test.c",
    "content": "/*-\n * Copyright (c) 2011, Mark Heily <mark@heily.com>\n * All rights reserved.\n *\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions\n * are met:\n * 1. Redistributions of source code must retain the above copyright\n *    notice unmodified, this list of conditions, and the following\n *    disclaimer.\n * 2. Redistributions in binary form must reproduce the above copyright\n *    notice, this list of conditions and the following disclaimer in the\n *    documentation and/or other materials provided with the distribution.\n *\n * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR\n * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES\n * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.\n * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,\n * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\n * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n */\n\n#include <limits.h>\n#include <stdlib.h>\n#include <stdio.h>\n#include <string.h>\n#include <unistd.h>\n\n#include <time.h>\n\n#include \"config.h\"\n#include \"src/private.h\"\n\n#if HAVE_ERR_H\n# include <err.h>\n#else\n# define err(rc,msg,...) do { perror(msg); exit(rc); } while (0)\n# define errx(rc,msg,...) do { puts(msg); exit(rc); } while (0)\n#endif\n\n#include \"pthread_workqueue.h\"\n\npthread_workqueue_t wq;\n\nvoid additem(void (*func)(void *), \n             void * arg)\n{\n    int rv;\n    \n    rv = pthread_workqueue_additem_np(wq, *func, arg, NULL, NULL);\n    if (rv != 0)\n        errx(1, \"unable to add item: %s\", strerror(rv));\n}\n\n\nvoid\nfeedback(void *arg)\n{\n    int *i = (int *) arg;\n    struct timespec tv;\n\n\t(*i)--;\n    if ((*i) <= 0) {\n        puts(\"All tests completed.\\n\");\n        exit(0);\n    } else {\n        additem(feedback, arg);\n        tv.tv_sec = 0;\n        tv.tv_nsec = 750;\n        nanosleep(&tv, NULL);\n    }\n}\n\nint main() {\n    int i = 10000;\n\n    pthread_workqueue_create_np(&wq, NULL);\n    additem(feedback, &i);\n    pause();\n}\n"
  },
  {
    "path": "src/frameworks/AGL/CMakeLists.txt",
    "content": "project(AGL)\n\nremove_sdk_framework(AGL)\n\nset(DYLIB_COMPAT_VERSION \"2.0.0\")\nset(DYLIB_CURRENT_VERSION \"3.3.2\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(AGL\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/AGL\"\n)\n\nadd_framework(AGL\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/AGL.c\n\n    DEPENDENCIES\n    \tCoreFoundation\n    \tCarbon\n        system\n)\n"
  },
  {
    "path": "src/frameworks/AGL/include/AGL/AGL.h",
    "content": "// TODO\n"
  },
  {
    "path": "src/frameworks/AGL/src/AGL.c",
    "content": "\n#pragma GCC visibility push(hidden)\n\n#include <OpenGL/gl.h>\n#include <Carbon/Carbon.h>\n#include <CoreGraphics/CGDirectDisplay.h>\n#include <stdio.h>\n#include <string.h>\n#include <stdlib.h>\n\n#define FW_EXPORT __attribute__ ((visibility (\"default\")))\n\ntypedef void* AGLContext;\ntypedef void* GLMfunctions;\ntypedef void* AGLRendererInfo;\ntypedef void* AGLPixelFormat;\ntypedef void* AGLPbuffer;\ntypedef void* HIViewRef;\ntypedef uint32_t AGLDevice;\n\ntypedef void* AGLDrawable;\n\nuint32_t gFakeContext;\nuint32_t gFakePBuffer = 0;\nuint32_t gFakePixelFormat = 0;\nuint32_t gFakeRenderInfo = 0;\nuint32_t gFakeDrawable = 0;\nuint32_t gFakeViewRef = 0;\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nFW_EXPORT AGLPixelFormat aglChoosePixelFormat(const AGLDevice *dev, GLint a, const GLint *b)\n{\n   if (verbose) puts(\"STUB: aglChoosePixelFormat called\");\n   return (AGLPixelFormat)&gFakePixelFormat;\n}\n\nFW_EXPORT AGLPixelFormat aglChoosePixelFormatCFM(const AGLDevice *dev, GLint a, const GLint *b)\n{\n   if (verbose) puts(\"STUB: aglChoosePixelFormatCFM called\");\n   return (AGLPixelFormat)&gFakePixelFormat;\n}\n\nFW_EXPORT void aglConfigure(GLenum a, GLuint b)\n{\n   if (verbose) puts(\"STUB: aglConfigure called\");\n}\n\nFW_EXPORT void aglConfigureCFM(GLenum a, GLuint b)\n{\n   if (verbose) puts(\"STUB: aglConfigureCFM called\");\n}\n\nFW_EXPORT GLboolean aglCopyContext(AGLContext ctx, AGLContext ctx2, GLuint a)\n{\n   if (verbose) puts(\"STUB: aglCopyContext called\");\n   return 0;\n}\n\nFW_EXPORT AGLContext aglCreateContext(AGLPixelFormat fmt, AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglCreateContext called\");\n   return &gFakeContext;\n}\n\nFW_EXPORT AGLContext aglCreateContextCFM(AGLPixelFormat fmt, AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglCreateContextCFM called\");\n   return &gFakeContext;\n}\n\nFW_EXPORT GLboolean aglCreatePBuffer(GLint a, GLint b , GLenum c, GLenum d, GLint e, AGLPbuffer *out)\n{\n   if (verbose) puts(\"STUB: aglCreatePBuffer called\");\n   *out = &gFakePBuffer;\n   return GL_TRUE;\n}\n\nFW_EXPORT AGLPixelFormat aglCreatePixelFormat(const GLint *a)\n{\n   if (verbose) puts(\"STUB: aglCreatePixelFormat called\");\n   return (AGLPixelFormat)&gFakePixelFormat;\n}\n\nFW_EXPORT AGLPixelFormat aglCreatePixelFormatCFM(const GLint *a)\n{\n   if (verbose) puts(\"STUB: aglCreatePixelFormatCFM called\");\n   return (AGLPixelFormat)&gFakePixelFormat;\n}\n\nFW_EXPORT GLboolean aglDescribePBuffer(AGLPbuffer buf, GLint *w, GLint *h, GLenum *t, GLenum *fmt, GLint *ml)\n{\n   if (verbose) puts(\"STUB: aglDescribePBuffer called\");\n   *w = 640;\n   *h = 480;\n   *t = GL_NONE;\n   *fmt = GL_NONE;\n   *ml = 0;\n   \n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglDescribePixelFormat(AGLPixelFormat fmt, GLint a, GLint *out)\n{\n   if (verbose) puts(\"STUB: aglDescribePixelFormat called\");\n   *out = 0;\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglDescribeRenderer(AGLRendererInfo a, GLint b, GLint *out)\n{\n   if (verbose) puts(\"STUB: aglDescribeRenderer called\");\n   *out = 0;\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglDestroyContext(AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglDestroyContext called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglDestroyPBuffer(AGLPbuffer buf)\n{\n   if (verbose) puts(\"STUB: aglDestroyPBuffer called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT void aglDestroyPixelFormat(AGLPixelFormat fmt)\n{\n   if (verbose) puts(\"STUB: aglDestroyPixelFormat called\");\n}\n\nFW_EXPORT void aglDestroyRendererInfo(AGLRendererInfo a)\n{\n   if (verbose) puts(\"STUB: aglDestroyRendererInfo called\");\n}\n\nFW_EXPORT GDHandle * aglDevicesOfPixelFormat(AGLPixelFormat fmt, GLint *a)\n{\n   if (verbose) puts(\"STUB: aglDevicesOfPixelFormat called\");\n   return NULL;\n}\n\nFW_EXPORT GLboolean aglDisable(AGLContext ctx, GLenum a)\n{\n   if (verbose) puts(\"STUB: aglDisable called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT CGDirectDisplayID * aglDisplaysOfPixelFormat(AGLPixelFormat fmt, GLint *a)\n{\n   if (verbose) puts(\"STUB: aglDisplaysOfPixelFormat called\");\n   return NULL;\n}\n\nFW_EXPORT GLboolean aglEnable(AGLContext ctx, GLenum a)\n{\n   if (verbose) puts(\"STUB: aglEnable called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT const GLubyte * aglErrorString(GLenum a)\n{\n   if (verbose) puts(\"STUB: aglErrorString called\");\n   return (const GLubyte*)\"\";\n}\n\nFW_EXPORT GLboolean aglGetCGLContext(AGLContext ctx, void **out)\n{\n   if (verbose) puts(\"STUB: aglGetCGLContext called\");\n   return GL_TRUE;\n}\n\nGLboolean aglGetCGLPixelFormat(AGLPixelFormat fmt, void **out)\n{\n   if (verbose) puts(\"STUB: aglGetCGLPixelFormat called\");\n   return GL_FALSE;\n}\n\nAGLContext aglGetCurrentContext(void)\n{\n   if (verbose) puts(\"STUB: aglGetCurrentContext called\");\n   return NULL;\n}\n\nFW_EXPORT AGLDrawable aglGetDrawable(AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglGetDrawable called\");\n   return (AGLDrawable)&gFakeDrawable;\n}\n\nFW_EXPORT GLenum aglGetError(void)\n{\n   if (verbose) puts(\"STUB: aglGetError called\");\n   return GL_NONE;\n}\n\nFW_EXPORT HIViewRef aglGetHIViewRef(AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglGetHIViewRef called\");\n   return (HIViewRef)&gFakeViewRef;\n}\n\nFW_EXPORT GLboolean aglGetInteger(AGLContext ctx, GLenum a, GLint *out)\n{\n   if (verbose) puts(\"STUB: aglGetInteger called\");\n   *out = 0;\n   return GL_FALSE;\n}\n\nFW_EXPORT GLboolean aglGetPBuffer(AGLContext ctx, AGLPbuffer *buf, GLint *a, GLint *b, GLint *c)\n{\n   if (verbose) puts(\"STUB: aglGetPBuffer called\");\n   return GL_FALSE;\n}\n\nFW_EXPORT void aglGetVersion(GLint *major, GLint *minor)\n{\n   *major = 2;\n   *minor = 0;\n}\n\nFW_EXPORT GLint aglGetVirtualScreen(AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglGetVirtualScreen called\");\n   return 0;\n}\n\nFW_EXPORT WindowRef aglGetWindowRef(AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglGetWindowRef called\");\n   return 0;\n}\n\nFW_EXPORT GLboolean aglIsEnabled(AGLContext ctx, GLenum a)\n{\n   if (verbose) puts(\"STUB: aglIsEnabled called\");\n   return GL_FALSE;\n}\n\nFW_EXPORT AGLPixelFormat aglNextPixelFormat(AGLPixelFormat fmt)\n{\n   if (verbose) puts(\"STUB: aglNextPixelFormat called\");\n   return NULL;\n}\n\nFW_EXPORT AGLRendererInfo aglNextRendererInfo(AGLRendererInfo a)\n{\n   if (verbose) puts(\"STUB: aglNextRendererInfo called\");\n   return NULL;\n}\n\nFW_EXPORT AGLRendererInfo aglQueryRendererInfo(const AGLDevice *dev, GLint a)\n{\n   if (verbose) puts(\"STUB: aglQueryRendererInfo called\");\n   return (AGLRendererInfo)&gFakeRenderInfo;\n}\n\nFW_EXPORT AGLRendererInfo aglQueryRendererInfoCFM(const AGLDevice *dev, GLint a)\n{\n   if (verbose) puts(\"STUB: aglQueryRendererInfoCFM called\");\n   return (AGLRendererInfo)&gFakeRenderInfo;\n}\n\nFW_EXPORT AGLRendererInfo aglQueryRendererInfoForCGDirectDisplayIDs(const CGDirectDisplayID *a, GLint b)\n{\n   if (verbose) puts(\"STUB: aglQueryRendererInfoForCGDirectDisplayIDs called\");\n   return (AGLRendererInfo)&gFakeRenderInfo;\n}\n\nFW_EXPORT void aglResetLibrary(void)\n{\n   if (verbose) puts(\"STUB: aglResetLibrary called\");\n}\n\nFW_EXPORT GLboolean aglSetCurrentContext(AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglSetCurrentContext called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglSetDrawable(AGLContext ctx, AGLDrawable a)\n{\n   if (verbose) puts(\"STUB: aglSetDrawable called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglSetFullScreen(AGLContext ctx, GLsizei a, GLsizei b, GLsizei c, GLint d)\n{\n   if (verbose) puts(\"STUB: aglSetFullScreen called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglSetHIViewRef(AGLContext ctx, HIViewRef a)\n{\n   if (verbose) puts(\"STUB: aglSetHIViewRef called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglSetInteger(AGLContext ctx, GLenum a, const GLint *b)\n{\n   if (verbose) puts(\"STUB: aglSetInteger called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglSetOffScreen(AGLContext ctx, GLsizei a, GLsizei b, GLsizei c, GLvoid *d)\n{\n   if (verbose) puts(\"STUB: aglSetOffScreen called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglSetPBuffer(AGLContext ctx, AGLPbuffer buf, GLint a, GLint b, GLint c)\n{\n   if (verbose) puts(\"STUB: aglSetPBuffer called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT GLboolean aglSetVirtualScreen(AGLContext ctx, GLint a)\n{\n   if (verbose) puts(\"STUB: aglSetVirtualScreen called\");\n   return GL_TRUE;\n}\n\nGLboolean aglSetWindowRef(AGLContext ctx, WindowRef a)\n{\n   if (verbose) puts(\"STUB: aglSetWindowRef called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT void aglSurfaceTexture(AGLContext ctx, GLenum a, GLenum b, AGLContext ctx2)\n{\n   if (verbose) puts(\"STUB: aglSurfaceTexture called\");\n}\n\nFW_EXPORT void aglSwapBuffers(AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglSwapBuffers called\");\n}\n\nFW_EXPORT GLboolean aglTexImagePBuffer(AGLContext ctx, AGLPbuffer buf, GLint a)\n{\n   if (verbose) puts(\"STUB: aglTexImagePBuffer called\");\n   return GL_TRUE;\n}\n\nFW_EXPORT int8_t aglUpdateContext(AGLContext ctx)\n{\n   if (verbose) puts(\"STUB: aglUpdateContext called\");\n   return 0;\n}\n\nFW_EXPORT int8_t aglUseFont(AGLContext ctx, int a, int b, int c, int d, int e, void* f)\n{\n   if (verbose) puts(\"STUB: aglUseFont called\");\n   return 0;\n}\n\nFW_EXPORT GLvoid * glmCalloc(GLsizei a, GLsizei b)\n{\n   if (verbose) puts(\"STUB: glmCalloc called\");\n   return NULL;\n}\n\nFW_EXPORT void glmCopy(const GLubyte a, GLubyte b, GLsizei c, GLsizei d, GLsizei e, GLsizei f)\n{\n   if (verbose) puts(\"STUB: glmCopy called\");\n}\n\nFW_EXPORT GLvoid * glmDCBAlloc(GLsizei a)\n{\n   if (verbose) puts(\"STUB: glmDCBAlloc called\");\n   return NULL;\n}\n\nFW_EXPORT void glmDCBFree(GLvoid * a)\n{\n   if (verbose) puts(\"STUB: glmDCBFree called\");\n}\n\nFW_EXPORT GLvoid * glmDCBRealloc(GLvoid *a, GLsizei b)\n{\n   if (verbose) puts(\"STUB: glmDCBRealloc called\");\n   return NULL;\n}\n\nFW_EXPORT void glmFree(GLvoid *a)\n{\n   if (verbose) puts(\"STUB: glmFree called\");\n}\n\nFW_EXPORT GLenum glmGetError(void)\n{\n   if (verbose) puts(\"STUB: glmGetError called\");\n   return GL_NONE;\n}\n\nFW_EXPORT GLint glmGetInteger(GLenum a)\n{\n   if (verbose) puts(\"STUB: glmGetInteger called\");\n   return 0;\n}\n\nFW_EXPORT GLvoid * glmMalloc(GLsizei a)\n{\n   if (verbose) puts(\"STUB: glmMalloc called\");\n   return NULL;\n}\n\nFW_EXPORT void glmPageFreeAll(void)\n{\n   if (verbose) puts(\"STUB: glmPageFreeAll called\");\n}\n\nFW_EXPORT GLvoid * glmRealloc(GLvoid *a, GLsizei b)\n{\n   if (verbose) puts(\"STUB: glmRealloc called\");\n   return NULL;\n}\n\nFW_EXPORT void glmReportMemoryStatus()\n{\n   if (verbose) puts(\"STUB: glmReportMemoryStatus called\");\n}\n\nFW_EXPORT void glmResetMemoryStatus()\n{\n   if (verbose) puts(\"STUB: glmResetMemoryStatus called\");\n}\n\nFW_EXPORT void glmSetDebugInfo()\n{\n   if (verbose) puts(\"STUB: glmSetDebugInfo called\");\n}\n\nFW_EXPORT void glmSetDouble(GLdouble *a, GLsizei b, GLsizei c, GLsizei d, GLdouble e)\n{\n   if (verbose) puts(\"STUB: glmSetDouble called\");\n}\n\nFW_EXPORT void glmSetFunc(GLenum a, GLMfunctions b)\n{\n   if (verbose) puts(\"STUB: glmSetFunc called\");\n}\n\nFW_EXPORT void glmSetInteger(GLenum a, GLint b)\n{\n   if (verbose) puts(\"STUB: glmSetInteger called\");\n}\n\nFW_EXPORT void glmSetMode(GLenum a)\n{\n   if (verbose) puts(\"STUB: glmSetMode called\");\n}\n\nFW_EXPORT void glmSetUByte(GLubyte *a, GLsizei b, GLsizei c, GLsizei d, GLubyte e)\n{\n   if (verbose) puts(\"STUB: glmSetUByte called\");\n}\n\nFW_EXPORT void glmSetUInt(GLuint *a, GLsizei b, GLsizei c, GLsizei d, GLuint e)\n{\n   if (verbose) puts(\"STUB: glmSetUInt called\");\n}\n\nFW_EXPORT void glmSetUShort(GLushort *a, GLsizei b, GLsizei c, GLsizei d, GLushort e)\n{\n   if (verbose) puts(\"STUB: glmSetUShort called\");\n}\n\nFW_EXPORT GLvoid * glmVecAlloc(GLsizei a)\n{\n   if (verbose) puts(\"STUB: glmVecAlloc called\");\n   return NULL;\n}\n\nFW_EXPORT void glmVecFree(GLvoid *a)\n{\n   if (verbose) puts(\"STUB: glmVecFree called\");\n}\n\nFW_EXPORT GLvoid * glmVecRealloc(GLvoid *a, GLsizei b)\n{\n   if (verbose) puts(\"STUB: glmVecRealloc called\");\n   return NULL;\n}\n\nFW_EXPORT void glmZero(GLubyte* a, GLsizei b, GLsizei c, GLsizei d)\n{\n   if (verbose) puts(\"STUB: glmZero called\");\n}\n"
  },
  {
    "path": "src/frameworks/AVFAudio/CMakeLists.txt",
    "content": "project(AVFAudio)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"2.0.0\")\nset(FRAMEWORK_VERSION \"A\")\n\nremove_sdk_framework(AVFAudio\n)\n\ngenerate_sdk_framework(AVFAudio\n\tVERSION ${FRAMEWORK_VERSION}\n\tHEADER \"include/AVFAudio\"\n)\n\nadd_framework(AVFAudio\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${FRAMEWORK_VERSION}\n\n\tSOURCES\n\t\tsrc/AVFAudio.m\n        src/AVAudioIONode.m\n        src/AVAudioOutputNode.m\n        src/AVAudioInputNode.m\n        src/AVAudioEndpointDetector.m\n        src/AVVoiceController.m\n        src/SpeexEndpointer.m\n        src/AVAudioUnitComponentManager.m\n        src/AVAudioUnitTimeEffect.m\n        src/AVAudioUnitDelay.m\n        src/VoiceVerificationEndpointer.m\n        src/AVAudioSequencer.m\n        src/AVMusicTrack.m\n        src/AVAudioUnitVarispeed.m\n        src/AVAudioUnitReverb.m\n        src/AVAudioUnitTimePitch.m\n        src/AVAudioConnectionPoint.m\n        src/AVAudioBuffer.m\n        src/AVAudioPCMBuffer.m\n        src/AVAudioCompressedBuffer.m\n        src/AudioPlayerImpl.m\n        src/AVAudioPlayer.m\n        src/AVAudioUnitGenerator.m\n        src/AVAudioRecorder.m\n        src/AVAudioUnitComponent.m\n        src/AVAudioConverter.m\n        src/AVAudioUnitDistortion.m\n        src/AVAudioMixerNode.m\n        src/AVAudioClock.m\n        src/AVAudioUnitSplitter.m\n        src/AVMIDIPlayer.m\n        src/AVAudioUnitMIDIInstrument.m\n        src/AVAudioUnitEQFilterParameters.m\n        src/AVAudioUnitEQ.m\n        src/AVAudioUnitDSPGraph.m\n        src/AVAudioFormat.m\n        src/AVVCAudioDeviceManager.m\n        src/AVAudioSession.m\n        src/AVVCAudioBuffer.m\n        src/AVAudioEnvironmentDistanceAttenuationParameters.m\n        src/AVAudioEnvironmentReverbParameters.m\n        src/AVAudioEnvironmentNode.m\n        src/AVAudioTime.m\n        src/AVAudioFile.m\n        src/AVVCMetricsManager.m\n        src/AVAudioNode.m\n        src/AVAudioMixingDestination.m\n        src/AVAudioUnitSampler.m\n        src/AVAudioUnitEffect.m\n        src/AVAudioPlayerNode.m\n        src/AVAudioUnit.m\n        src/AVAudioEngine.m\n        src/AVAudioChannelLayout.m\n\n\tDEPENDENCIES\n\t\tsystem\n\t\tobjc\n\t\tFoundation\n)\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudio3DMixing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVAudio3DMixing\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioBuffer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioBuffer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioChannelLayout.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioChannelLayout : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioClock.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioClock : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioCompressedBuffer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioCompressedBuffer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioConnectionPoint.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioConnectionPoint : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioConverter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioConverter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioEndpointDetector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioEndpointDetector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioEngine.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioEngine : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioEnvironmentDistanceAttenuationParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioEnvironmentDistanceAttenuationParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioEnvironmentNode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioEnvironmentNode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioEnvironmentReverbParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioEnvironmentReverbParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioIONode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioIONode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioInputNode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioInputNode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioMixerNode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMixerNode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioMixing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVAudioMixing\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioMixingDestination.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMixingDestination : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioNode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioNode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioOutputNode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioOutputNode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioPCMBuffer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioPCMBuffer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioPlayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioPlayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioPlayerNode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioPlayerNode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioRecorder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioRecorder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioSequencer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioSequencer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioStereoMixing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVAudioStereoMixing\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioTime.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioTime : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnit.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnit : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitComponent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitComponent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitComponentManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitComponentManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitDSPGraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitDSPGraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitDelay.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitDelay : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitDistortion.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitDistortion : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitEQ.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitEQ : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitEQFilterParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitEQFilterParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitEffect.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitEffect : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitMIDIInstrument.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitMIDIInstrument : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitReverb.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitReverb : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitSampler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitSampler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitSplitter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitSplitter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitTimeEffect.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitTimeEffect : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitTimePitch.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitTimePitch : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVAudioUnitVarispeed.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioUnitVarispeed : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVEndpointVADEventHandler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVEndpointVADEventHandler\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVFAudio.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _AVFAudio_H_\n#define _AVFAudio_H_\n\n#import <Foundation/Foundation.h>\n\n#import <AVFAudio/AVAudio3DMixing.h>\n#import <AVFAudio/AVAudioMixing.h>\n#import <AVFAudio/AVAudioStereoMixing.h>\n#import <AVFAudio/AVEndpointVADEventHandler.h>\n#import <AVFAudio/Endpointer.h>\n#import <AVFAudio/AVAudioIONode.h>\n#import <AVFAudio/AVAudioOutputNode.h>\n#import <AVFAudio/AVAudioInputNode.h>\n#import <AVFAudio/AVAudioEndpointDetector.h>\n#import <AVFAudio/AVVoiceController.h>\n#import <AVFAudio/SpeexEndpointer.h>\n#import <AVFAudio/AVAudioUnitComponentManager.h>\n#import <AVFAudio/AVAudioUnitTimeEffect.h>\n#import <AVFAudio/AVAudioUnitDelay.h>\n#import <AVFAudio/VoiceVerificationEndpointer.h>\n#import <AVFAudio/AVAudioSequencer.h>\n#import <AVFAudio/AVMusicTrack.h>\n#import <AVFAudio/AVAudioUnitVarispeed.h>\n#import <AVFAudio/AVAudioUnitReverb.h>\n#import <AVFAudio/AVAudioUnitTimePitch.h>\n#import <AVFAudio/AVAudioConnectionPoint.h>\n#import <AVFAudio/AVAudioBuffer.h>\n#import <AVFAudio/AVAudioPCMBuffer.h>\n#import <AVFAudio/AVAudioCompressedBuffer.h>\n#import <AVFAudio/AudioPlayerImpl.h>\n#import <AVFAudio/AVAudioPlayer.h>\n#import <AVFAudio/AVAudioUnitGenerator.h>\n#import <AVFAudio/AVAudioRecorder.h>\n#import <AVFAudio/AVAudioUnitComponent.h>\n#import <AVFAudio/AVAudioConverter.h>\n#import <AVFAudio/AVAudioUnitDistortion.h>\n#import <AVFAudio/AVAudioMixerNode.h>\n#import <AVFAudio/AVAudioClock.h>\n#import <AVFAudio/AVAudioUnitSplitter.h>\n#import <AVFAudio/AVMIDIPlayer.h>\n#import <AVFAudio/AVAudioUnitMIDIInstrument.h>\n#import <AVFAudio/AVAudioUnitEQFilterParameters.h>\n#import <AVFAudio/AVAudioUnitEQ.h>\n#import <AVFAudio/AVAudioUnitDSPGraph.h>\n#import <AVFAudio/AVAudioFormat.h>\n#import <AVFAudio/AVVCAudioDeviceManager.h>\n#import <AVFAudio/AVAudioSession.h>\n#import <AVFAudio/AVVCAudioBuffer.h>\n#import <AVFAudio/AVAudioEnvironmentDistanceAttenuationParameters.h>\n#import <AVFAudio/AVAudioEnvironmentReverbParameters.h>\n#import <AVFAudio/AVAudioEnvironmentNode.h>\n#import <AVFAudio/AVAudioTime.h>\n#import <AVFAudio/AVAudioFile.h>\n#import <AVFAudio/AVVCMetricsManager.h>\n#import <AVFAudio/AVAudioNode.h>\n#import <AVFAudio/AVAudioMixingDestination.h>\n#import <AVFAudio/AVAudioUnitSampler.h>\n#import <AVFAudio/AVAudioUnitEffect.h>\n#import <AVFAudio/AVAudioPlayerNode.h>\n#import <AVFAudio/AVAudioUnit.h>\n#import <AVFAudio/AVAudioEngine.h>\n#import <AVFAudio/AVAudioChannelLayout.h>\n\n\n#endif\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVMIDIPlayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMIDIPlayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVMusicTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMusicTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVVCAudioBuffer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVCAudioBuffer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVVCAudioDeviceManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVCAudioDeviceManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVVCMetricsManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVCMetricsManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AVVoiceController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVoiceController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/AudioPlayerImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AudioPlayerImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/Endpointer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol Endpointer\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/SpeexEndpointer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface SpeexEndpointer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/include/AVFAudio/VoiceVerificationEndpointer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface VoiceVerificationEndpointer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioBuffer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioBuffer.h>\n\n@implementation AVAudioBuffer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioChannelLayout.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioChannelLayout.h>\n\n@implementation AVAudioChannelLayout\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioClock.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioClock.h>\n\n@implementation AVAudioClock\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioCompressedBuffer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioCompressedBuffer.h>\n\n@implementation AVAudioCompressedBuffer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioConnectionPoint.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioConnectionPoint.h>\n\n@implementation AVAudioConnectionPoint\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioConverter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioConverter.h>\n\n@implementation AVAudioConverter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioEndpointDetector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioEndpointDetector.h>\n\n@implementation AVAudioEndpointDetector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioEngine.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioEngine.h>\n\n@implementation AVAudioEngine\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioEnvironmentDistanceAttenuationParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioEnvironmentDistanceAttenuationParameters.h>\n\n@implementation AVAudioEnvironmentDistanceAttenuationParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioEnvironmentNode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioEnvironmentNode.h>\n\n@implementation AVAudioEnvironmentNode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioEnvironmentReverbParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioEnvironmentReverbParameters.h>\n\n@implementation AVAudioEnvironmentReverbParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioFile.h>\n\n@implementation AVAudioFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioFormat.h>\n\n@implementation AVAudioFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioIONode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioIONode.h>\n\n@implementation AVAudioIONode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioInputNode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioInputNode.h>\n\n@implementation AVAudioInputNode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioMixerNode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioMixerNode.h>\n\n@implementation AVAudioMixerNode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioMixingDestination.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioMixingDestination.h>\n\n@implementation AVAudioMixingDestination\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioNode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioNode.h>\n\n@implementation AVAudioNode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioOutputNode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioOutputNode.h>\n\n@implementation AVAudioOutputNode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioPCMBuffer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioPCMBuffer.h>\n\n@implementation AVAudioPCMBuffer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioPlayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioPlayer.h>\n\n@implementation AVAudioPlayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioPlayerNode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioPlayerNode.h>\n\n@implementation AVAudioPlayerNode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioRecorder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioRecorder.h>\n\n@implementation AVAudioRecorder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioSequencer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioSequencer.h>\n\n@implementation AVAudioSequencer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioSession.h>\n\n@implementation AVAudioSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioTime.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioTime.h>\n\n@implementation AVAudioTime\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnit.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnit.h>\n\n@implementation AVAudioUnit\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitComponent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitComponent.h>\n\n@implementation AVAudioUnitComponent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitComponentManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitComponentManager.h>\n\n@implementation AVAudioUnitComponentManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitDSPGraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitDSPGraph.h>\n\n@implementation AVAudioUnitDSPGraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitDelay.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitDelay.h>\n\n@implementation AVAudioUnitDelay\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitDistortion.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitDistortion.h>\n\n@implementation AVAudioUnitDistortion\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitEQ.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitEQ.h>\n\n@implementation AVAudioUnitEQ\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitEQFilterParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitEQFilterParameters.h>\n\n@implementation AVAudioUnitEQFilterParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitEffect.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitEffect.h>\n\n@implementation AVAudioUnitEffect\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitGenerator.h>\n\n@implementation AVAudioUnitGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitMIDIInstrument.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitMIDIInstrument.h>\n\n@implementation AVAudioUnitMIDIInstrument\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitReverb.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitReverb.h>\n\n@implementation AVAudioUnitReverb\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitSampler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitSampler.h>\n\n@implementation AVAudioUnitSampler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitSplitter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitSplitter.h>\n\n@implementation AVAudioUnitSplitter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitTimeEffect.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitTimeEffect.h>\n\n@implementation AVAudioUnitTimeEffect\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitTimePitch.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitTimePitch.h>\n\n@implementation AVAudioUnitTimePitch\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVAudioUnitVarispeed.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVAudioUnitVarispeed.h>\n\n@implementation AVAudioUnitVarispeed\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVFAudio.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <AVFAudio/AVFAudio.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVMIDIPlayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVMIDIPlayer.h>\n\n@implementation AVMIDIPlayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVMusicTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVMusicTrack.h>\n\n@implementation AVMusicTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVVCAudioBuffer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVVCAudioBuffer.h>\n\n@implementation AVVCAudioBuffer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVVCAudioDeviceManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVVCAudioDeviceManager.h>\n\n@implementation AVVCAudioDeviceManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVVCMetricsManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVVCMetricsManager.h>\n\n@implementation AVVCMetricsManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AVVoiceController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVVoiceController.h>\n\n@implementation AVVoiceController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/AudioPlayerImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AudioPlayerImpl.h>\n\n@implementation AudioPlayerImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/SpeexEndpointer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/SpeexEndpointer.h>\n\n@implementation SpeexEndpointer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFAudio/src/VoiceVerificationEndpointer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/VoiceVerificationEndpointer.h>\n\n@implementation VoiceVerificationEndpointer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/CMakeLists.txt",
    "content": "project(AVFoundation)\n\nremove_sdk_framework(AVFoundation)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"2.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(AVFoundation\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/AVFoundation\"\n)\n\nadd_framework(AVFoundation\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/AVFoundation.m\n        src/AVPlayerLayerIntermediateLayer.m\n        src/AVPlayerLayerInternal.m\n        src/AVPlayerLayer.m\n        src/CMTimeAsValue.m\n        src/CMTimeRangeAsValue.m\n        src/CMTimeMappingAsValue.m\n        src/AVFragmentedAssetInternal.m\n        src/AVFragmentedAsset.m\n        src/AVFragmentedMovieInternal.m\n        src/AVFragmentedMovie.m\n        src/AVFragmentedAssetMinderInternal.m\n        src/AVFragmentedAssetMinder.m\n        src/AVFragmentedMovieMinder.m\n        src/AVFragmentedAssetTrackInternal.m\n        src/AVFragmentedAssetTrack.m\n        src/AVFragmentedMovieTrackInternal.m\n        src/AVFragmentedMovieTrack.m\n        src/AVMetadataItemInternal.m\n        src/AVMetadataItem.m\n        src/AVMutableMetadataItem.m\n        src/AVLazyValueLoadingMetadataItemInternal.m\n        src/AVLazyValueLoadingMetadataItem.m\n        src/AVMetadataItemValueRequestInternal.m\n        src/AVMetadataItemValueRequest.m\n        src/AVChapterMetadataItemInternal.m\n        src/AVChapterMetadataItem.m\n        src/AVMetadataItemFilterForSharing.m\n        src/AVMetadataItemFilterInternal.m\n        src/AVMetadataItemFilter.m\n        src/AVFigEndpointOutputDeviceImpl.m\n        src/AVAssetInternal.m\n        src/AVAsset.m\n        src/AVURLAssetInternal.m\n        src/AVURLAsset.m\n        src/AVAssetClientURLRequestHelper.m\n        src/AVDataAsset.m\n        src/AVAssetTrackEnumerator.m\n        src/AVAssetImageGeneratorInternal.m\n        src/AVAssetImageGenerator.m\n        src/AVAssetTrackInternal.m\n        src/AVAssetTrack.m\n        src/AVPlayerInternal.m\n        src/AVPlayer.m\n        src/AVPlayerQueueModificationDescription.m\n        src/AVAssetWriterInputMetadataAdaptorInternal.m\n        src/AVAssetWriterInputMetadataAdaptor.m\n        src/AVPlayerItemInternal.m\n        src/AVPlayerItem.m\n        src/AVPlayerConnection.m\n        src/AVPlayerItemTrackInternal.m\n        src/AVPlayerItemTrack.m\n        src/AVTimeFormatterInternal.m\n        src/AVTimeFormatter.m\n        src/AVQueuePlayer.m\n        src/AVQueuePlayerInternal.m\n        src/AVCompositionInternal.m\n        src/AVComposition.m\n        src/AVMutableCompositionInternal.m\n        src/AVMutableComposition.m\n        src/AVCompositionFormatReaderInspector.m\n        src/AVCaptionRendererInternal.m\n        src/AVCaptionRenderer.m\n        src/AVCaptionRendererSceneInternal.m\n        src/AVCaptionRendererScene.m\n        src/AVCompositionTrackInternal.m\n        src/AVCompositionTrack.m\n        src/AVMutableCompositionTrackInternal.m\n        src/AVMutableCompositionTrack.m\n        src/AVAssetCustomURLRequest.m\n        src/AVAssetCustomURLBridgeForNSURLSession.m\n        src/AVNSURLProtocolRequest.m\n        src/AVAssetCustomURLBridgeForNSURLProtocol.m\n        src/AVCompositionTrackSegmentInternal.m\n        src/AVCompositionTrackSegment.m\n        src/AVAssetReaderInternal.m\n        src/AVAssetReader.m\n        src/AVMovieTrackInternal.m\n        src/AVMovieTrack.m\n        src/AVMutableMovieTrackInternal.m\n        src/AVMutableMovieTrack.m\n        src/AVAssetReaderOutputInternal.m\n        src/AVAssetReaderOutput.m\n        src/AVAssetReaderTrackOutputInternal.m\n        src/AVAssetReaderTrackOutput.m\n        src/AVAssetReaderAudioMixOutputInternal.m\n        src/AVAssetReaderAudioMixOutput.m\n        src/AVAssetReaderVideoCompositionOutputInternal.m\n        src/AVAssetReaderVideoCompositionOutput.m\n        src/AVAssetReaderSampleReferenceOutputInternal.m\n        src/AVAssetReaderSampleReferenceOutput.m\n        src/AVDataDelegateAssetInternal.m\n        src/AVDataDelegateAsset.m\n        src/AVAssetWriterConfigurationState.m\n        src/AVAssetWriterInternal.m\n        src/AVAssetWriter.m\n        src/AVAssetWriterUnknownHelper.m\n        src/AVAssetWriterFigAssetWriterNotificationHandler.m\n        src/AVAssetWriterWritingHelper.m\n        src/AVWorkaroundNSBlockOperation.m\n        src/AVAssetWriterFinishWritingHelper.m\n        src/AVFigAssetWriterFinishWritingAsyncOperation.m\n        src/AVAssetWriterTerminalHelper.m\n        src/AVAssetWriterFailedTerminalHelper.m\n        src/AVAssetWriterClientInitiatedTerminalHelper.m\n        src/AVAssetWriterHelper.m\n        src/AVAssetWriterInputGroupInternal.m\n        src/AVAssetWriterInputGroup.m\n        src/AVAssetWriterInputSelectionOption.m\n        src/AVAssetWriterInputConfigurationState.m\n        src/AVAssetWriterInputInternal.m\n        src/AVAssetWriterInput.m\n        src/AVAssetWriterInputUnknownHelper.m\n        src/AVAssetWriterInputWritingHelper.m\n        src/AVAssetWriterInputInterPassAnalysisHelper.m\n        src/AVAssetWriterInputNoMorePassesHelper.m\n        src/AVAssetWriterInputTerminalHelper.m\n        src/AVAssetWriterInputHelper.m\n        src/AVAssetWriterInputPixelBufferAdaptorInternal.m\n        src/AVAssetWriterInputPixelBufferAdaptor.m\n        src/AVFigAssetWriterTrack.m\n        src/AVFigAssetWriterAudioTrack.m\n        src/AVFigAssetWriterVideoTrack.m\n        src/AVFigAssetWriterCaptionTrack.m\n        src/AVFigAssetWriterGenericTrack.m\n        src/AVAssetWriterInputMediaDataRequester.m\n        src/AVAssetWriterInputPassDescriptionResponder.m\n        src/AVAssetWriterInputFigAssetWriterEndPassOperation.m\n        src/AVAssetWriterInputPassDescriptionInternal.m\n        src/AVAssetWriterInputPassDescription.m\n        src/AVVideoCompositionInstructionInternal.m\n        src/AVVideoCompositionInstruction.m\n        src/AVMutableVideoCompositionInstruction.m\n        src/AVVideoCompositionLayerInstructionInternal.m\n        src/AVVideoCompositionLayerInstruction.m\n        src/AVMutableVideoCompositionLayerInstruction.m\n        src/AVVideoCompositionInternal.m\n        src/AVVideoComposition.m\n        src/AVMutableVideoComposition.m\n        src/AVVideoCompositionCoreAnimationTool.m\n        src/AVVideoCompositionCoreAnimationToolInternal.m\n        src/AVAssetExportSessionInternal.m\n        src/AVAssetExportSession.m\n        src/AVSynchronizedLayerInternal.m\n        src/AVSynchronizedLayer.m\n        src/AVExecutionEnvironment.m\n        src/AVMetadataEnumerator.m\n        src/AVAssetTrackSegment.m\n        src/AVAssetReaderOutputCaptionAdaptorInternal.m\n        src/AVAssetReaderOutputCaptionAdaptor.m\n        src/AVPropertyStorage.m\n        src/AVStreamSessionInternal.m\n        src/AVStreamSession.m\n        src/AVPlayerLooperInternal.m\n        src/AVPlayerLooper.m\n        src/AVAudioMix.m\n        src/AVMutableAudioMix.m\n        src/AVAudioMixInternal.m\n        src/AVAudioMixInputParameters.m\n        src/AVAudioMixInputParametersInternal.m\n        src/AVMutableAudioMixInputParameters.m\n        src/AVRunLoopConditionRunLoopState.m\n        src/AVRunLoopCondition.m\n        src/AVCaptionConversionValidator.m\n        src/AVCaptionConversionWarning.m\n        src/AVCaptionConversionAdjustment.m\n        src/AVCaptionConversionTimeRangeAdjustment.m\n        src/AVMediaDataStorageInternal.m\n        src/AVMediaDataStorage.m\n        src/AVMovieInternal.m\n        src/AVMovie.m\n        src/AVMutableMovieInternal.m\n        src/AVMutableMovie.m\n        src/AVAssetInspector.m\n        src/AVFormatReaderInspector.m\n        src/AVPlaybackItemInspector.m\n        src/AVStreamingResourceInspector.m\n        src/AVFigAssetInspector.m\n        src/AVTimebaseObserver.m\n        src/AVPeriodicTimebaseObserver.m\n        src/AVOccasionalTimebaseObserver.m\n        src/AVOnceTimebaseObserver.m\n        src/AVAssetInspectorLoader.m\n        src/AVAssetSynchronousInspectorLoader.m\n        src/AVAssetMakeReadyForInspectionLoader.m\n        src/AVPlaybackItemInspectorLoader.m\n        src/AVFigAssetInspectorLoader.m\n        src/AVUnreachableAssetInspectorLoader.m\n        src/AVAssetTrackInspector.m\n        src/AVTrackReaderInspector.m\n        src/AVFigAssetTrackInspector.m\n        src/AVCompositionTrackReaderInspector.m\n        src/AVPlaybackItemTrackInspector.m\n        src/AVFigRoutingContextSendConfigureDeviceCommandOperation.m\n        src/AVRemoteFigRoutingContextFactory.m\n        src/AVFigRoutingContextCommandOutputDeviceConfigurationModification.m\n        src/AVFigRoutingContextCommandOutputDeviceConfiguration.m\n        src/AVFigRoutingContextRouteChangeOperation.m\n        src/AVRouteConfigUpdatedFigRoutingContextRouteChangeOperation.m\n        src/AVFigEndpointUIAgentOutputDeviceAuthorizationSessionImpl.m\n        src/AVFigEndpointUIAgentOutputDeviceAuthorizationRequestImpl.m\n        src/AVCaptionFormatConformer.m\n        src/AVContentKeyRequestInternal.m\n        src/AVContentKeyRequest.m\n        src/AVPersistableContentKeyRequest.m\n        src/AVContentKeyResponseFairPlayStreaming.m\n        src/AVContentKeyResponseClearKey.m\n        src/AVContentKeyResponseInternal.m\n        src/AVContentKeyResponse.m\n        src/AVContentKeySessionInternal.m\n        src/AVContentKeySession.m\n        src/AVMetadataObjectInternal.m\n        src/AVMetadataObject.m\n        src/AVMetadataFaceObjectInternal.m\n        src/AVMetadataFaceObject.m\n        src/AVDispatchGroup.m\n        src/AVEventWaiter.m\n        src/AVWeakReference.m\n        src/AVRetainReleaseWeakReference.m\n        src/AVAssetWriterInputCaptionAdaptorInternal.m\n        src/AVAssetWriterInputCaptionAdaptor.m\n        src/AVCallbackContextRegistry.m\n        src/AVCMNotificationDispatcher.m\n        src/AVCMNotificationDispatcherListenerAndCallback.m\n        src/AVCMNotificationDispatcherListenerKey.m\n        src/AVAssetReaderOutputMetadataAdaptorInternal.m\n        src/AVAssetReaderOutputMetadataAdaptor.m\n        src/AVFigRouteDescriptorOutputDeviceImpl.m\n        src/AVAssetTrackGroupInternal.m\n        src/AVAssetTrackGroup.m\n        src/AVMetadataGroup.m\n        src/AVTimedMetadataGroupInternal.m\n        src/AVTimedMetadataGroup.m\n        src/AVMutableTimedMetadataGroup.m\n        src/AVDateRangeMetadataGroupInternal.m\n        src/AVDateRangeMetadataGroup.m\n        src/AVMutableDateRangeMetadataGroup.m\n        src/AVAssetCache.m\n        src/AVManagedAssetCacheInternal.m\n        src/AVManagedAssetCache.m\n        src/AVAssetDownloadCacheInternal.m\n        src/AVAssetDownloadCache.m\n        src/AVCaptureAudioChannelInternal.m\n        src/AVCaptureAudioChannel.m\n        src/AVCaptureAudioDataOutputCallbackData.m\n        src/AVCaptureAudioDataOutputInternal.m\n        src/AVCaptureAudioDataOutput.m\n        src/AVCaptureAudioFileOutputInternal.m\n        src/AVCaptureAudioFileOutput.m\n        src/AVNetworkPlaybackPerfHUDLayer.m\n        src/AVCaptureAudioPreviewOutputInternal.m\n        src/AVCaptureAudioPreviewOutput.m\n        src/AVCaptureConnectionInternal.m\n        src/AVCaptureConnection.m\n        src/AVOutputContextInternal.m\n        src/AVOutputContext.m\n        src/AVOutputContextCommunicationChannelInternal.m\n        src/AVOutputContextCommunicationChannel.m\n        src/AVOutputContextDestinationChangeInternal.m\n        src/AVOutputContextDestinationChange.m\n        src/AVOutputContextManagerInternal.m\n        src/AVOutputContextManager.m\n        src/AVCaptureDALDevice.m\n        src/AVCaptureDeviceInternal.m\n        src/AVCaptureDevice.m\n        src/AVOutputDeviceAuthorizationSessionInternal.m\n        src/AVOutputDeviceAuthorizationSession.m\n        src/AVOutputDeviceAuthorizationRequestInternal.m\n        src/AVOutputDeviceAuthorizationRequest.m\n        src/AVMediaDataRequester.m\n        src/AVCaptureDeviceFormatInternal.m\n        src/AVCaptureDeviceFormat.m\n        src/AVStreamDataParserInternal.m\n        src/AVStreamDataParser.m\n        src/AVSampleBufferRenderSynchronizerInternal.m\n        src/AVSampleBufferRenderSynchronizer.m\n        src/AVCaptureDeviceInputInternal.m\n        src/AVCaptureDeviceInput.m\n        src/AVFigRemoteRouteDiscovererFactory.m\n        src/AVFigRouteDiscovererOutputDeviceDiscoverySessionFactory.m\n        src/AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl.m\n        src/AVFigRouteDescriptorOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.m\n        src/AVSampleCursorInternal.m\n        src/AVSampleCursor.m\n        src/AVCaptureDeviceInputSourceInternal.m\n        src/AVCaptureDeviceInputSource.m\n        src/AVCaptureFileOutputRecordingOperationDescriptor.m\n        src/AVCaptureFileOutputPauseOperationDescriptor.m\n        src/AVCaptureFileOutputInternal.m\n        src/AVCaptureFileOutput.m\n        src/AVCaptureHALDevice.m\n        src/AVFigEndpointPickerOutputDeviceDiscoverySessionImpl.m\n        src/AVFigEndpointPickerOutputDeviceDiscoverySessionFactory.m\n        src/AVFigEndpointOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.m\n        src/AVCaptureInputInternal.m\n        src/AVCaptureInput.m\n        src/AVCaptureInputPortInternal.m\n        src/AVCaptureInputPort.m\n        src/AVCaptionGroupInternal.m\n        src/AVCaptionGroup.m\n        src/AVCaptureMovieFileOutputInternal.m\n        src/AVCaptureMovieFileOutput.m\n        src/AVCaptureOperationDescriptorQueueItem.m\n        src/AVCaptureOperationDescriptorQueue.m\n        src/AVCaptureOutputInternal.m\n        src/AVCaptureOutput.m\n        src/AVCaptureScreenInputInternal.m\n        src/AVCaptureScreenInput.m\n        src/AVCaptureSessionInternal.m\n        src/AVCaptureSessionInternalState.m\n        src/AVCaptureSession.m\n        src/AVCaptureVideoDataOutputCallbackData.m\n        src/AVCaptureVideoDataOutputInternal.m\n        src/AVCaptureVideoDataOutput.m\n        src/AVCaptureVideoPreviewLayerInternal.m\n        src/AVCaptureVideoPreviewLayer.m\n        src/AVSampleBufferAudioRendererInternal.m\n        src/AVSampleBufferAudioRenderer.m\n        src/AVResolvedDecompressionSettings.m\n        src/AVMediaSelectionInternal.m\n        src/AVMediaSelection.m\n        src/AVMutableMediaSelection.m\n        src/MediaIOGraphNodeDescription.m\n        src/AVAssetProxyInternal.m\n        src/AVAssetProxy.m\n        src/AVOutputDeviceDiscoverySessionInternal.m\n        src/AVOutputDeviceDiscoverySessionAvailableOutputDevicesInternal.m\n        src/AVOutputDeviceDiscoverySession.m\n        src/AVEmptyOutputDeviceDiscoverySessionAvailableOutputDevices.m\n        src/AVOutputDeviceDiscoverySessionAvailableOutputDevices.m\n        src/MediaIOGraphNodeList.m\n        src/AVAsynchronousCIImageFilteringRequestInternal.m\n        src/AVAsynchronousCIImageFilteringRequest.m\n        src/AVCoreImageFilterVideoCompositionInstruction.m\n        src/AVCoreImageFilterCustomVideoCompositor.m\n        src/AVCaptureStillImageRequest.m\n        src/AVCaptureStillImageOutputInternal.m\n        src/AVCaptureStillImageOutput.m\n        src/AVPlayerItemMetadataCollectorInternal.m\n        src/AVPlayerItemMetadataCollector.m\n        src/AVPlayerItemAccessLogInternal.m\n        src/AVPlayerItemAccessLog.m\n        src/AVPlayerItemAccessLogEventInternal.m\n        src/AVPlayerItemAccessLogEvent.m\n        src/AVPlayerItemErrorLogInternal.m\n        src/AVPlayerItemErrorLog.m\n        src/AVPlayerItemErrorLogEventInternal.m\n        src/AVPlayerItemErrorLogEvent.m\n        src/AVKVODispatcher.m\n        src/AVObservationBlockFactory.m\n        src/AVWeakObservationBlockFactory.m\n        src/AVClientBlockKVONotifier.m\n        src/AVWeaklyObservedObjectClientBlockKVONotifier.m\n        src/AVWeakObservableCallbackCancellationHelper.m\n        src/AVKeyPathDependencyManager.m\n        src/AVKeyPathDependency.m\n        src/AVTwoPartKeyPath.m\n        src/AVKeyPathFlattener.m\n        src/AVKeyPathFlattenerKVOIntrospectionShim.m\n        src/AVCaptureStillImageTransform.m\n        src/AVCaptureStillImageOutputUtils.m\n        src/AVFrameRateRangeInternal.m\n        src/AVFrameRateRange.m\n        src/AVMediaSelectionGroupInternal.m\n        src/AVMediaSelectionGroup.m\n        src/AVAssetMediaSelectionGroup.m\n        src/AVMediaSelectionOptionInternal.m\n        src/AVMediaSelectionOption.m\n        src/AVMediaSelectionTrackOption.m\n        src/AVMediaSelectionKeyValueOption.m\n        src/AVFigObjectInspector.m\n        src/AVFigRoutingContextOutputContextImpl.m\n        src/AVFigCommChannelUUIDCommunicationChannelManager.m\n        src/AVFigEndpointFigRoutingContextOutputDeviceTranslator.m\n        src/AVFigRouteDescriptorFigRoutingContextOutputDeviceTranslator.m\n        src/AVFigCommChannelUUIDOutputContextCommunicationChannelImpl.m\n        src/AVFigEndpointUIAgentOutputContextManagerImpl.m\n        src/AVDepthDataInternal.m\n        src/AVDepthData.m\n        src/AVAudioMixEffectParameters.m\n        src/AVAudioMixSweepFilterEffectParameters.m\n        src/AVAudioMixSweepFilterEffectParametersInternal.m\n        src/AVOutputDeviceInternal.m\n        src/AVOutputDevice.m\n        src/AVOutputDeviceFrecencyManager.m\n        src/AVOutputDeviceAuthorizedPeerInternal.m\n        src/AVOutputDeviceAuthorizedPeer.m\n        src/AVPairedDeviceInternal.m\n        src/AVPairedDevice.m\n        src/AVLocalOutputDeviceImpl.m\n        src/AVCaptionPositionInternal.m\n        src/AVCaptionPosition.m\n        src/AVCaptionLengthInternal.m\n        src/AVCaptionLength.m\n        src/AVCaptionRegionInternal.m\n        src/AVCaptionRegion.m\n        src/AVMutableCaptionRegion.m\n        src/AVCaptionInternal.m\n        src/AVCaption.m\n        src/AVMutableCaption.m\n        src/AVCaptionRubyInternal.m\n        src/AVCaptionRuby.m\n        src/AVOutputSettings.m\n        src/AVFormatSpecification.m\n        src/AVSampleBufferGeneratorInternal.m\n        src/AVSampleBufferGenerator.m\n        src/AVSampleBufferRequestInternal.m\n        src/AVSampleBufferRequest.m\n        src/AVWeakReferencingDelegateStorage.m\n        src/AVMediaFileType.m\n        src/AVMediaFileOutputSettingsValidator.m\n        src/AVWAVEOutputSettingsValidator.m\n        src/AVAIFFOutputSettingsValidator.m\n        src/AVAIFCOutputSettingsValidator.m\n        src/AVISOOutputSettingsValidator.m\n        src/AVGenericMediaFileOutputSettingsValidator.m\n        src/AVOperation.m\n        src/AVBlockOperation.m\n        src/AVGlobalOperationQueue.m\n        src/AVOperationQueueWithFundamentalDependency.m\n        src/AVDepartureAnnouncingObjectMonitor.m\n        src/AVWaitForNotificationOrDeallocationOperation.m\n        src/AVAudioOutputSettings.m\n        src/AVAVAudioSettingsAudioOutputSettings.m\n        src/AVRouteDetectorInternal.m\n        src/AVRouteDetector.m\n        src/AVVideoOutputSettings.m\n        src/AVPixelBufferAttributesVideoOutputSettings.m\n        src/AVAVVideoSettingsVideoOutputSettings.m\n        src/AVAudioSettingsValueConstrainer.m\n        src/AVFloat64Range.m\n        src/AVAggregateAssetDownloadTask.m\n        src/AVAssetDownloadSessionInternal.m\n        src/AVAssetDownloadSession.m\n        src/AVPlayerItemOutputInternal.m\n        src/AVPlayerItemOutput.m\n        src/AVPlayerItemVideoOutputInternal.m\n        src/AVPlayerItemVideoOutput.m\n        src/AVFigEndpointPickerOutputContextImpl.m\n        src/AVAssetCollectionInternal.m\n        src/AVAssetCollection.m\n        src/AVPlayerItemMediaDataCollectorInternal.m\n        src/AVPlayerItemMediaDataCollector.m\n        src/AVAssetCollectionFactory.m\n        src/AVSampleBufferDisplayLayerContentLayer.m\n        src/AVSampleBufferDisplayLayerInternal.m\n        src/AVSampleBufferDisplayLayer.m\n        src/AVVideoPerformanceMetricsInternal.m\n        src/AVVideoPerformanceMetrics.m\n        src/AVAssetCollectionInspector.m\n        src/AVAssetCollectionInspectorLoader.m\n        src/AVPixelBufferAttributeMediator.m\n        src/AVStreamDataAssetTrackInspector.m\n        src/AVStreamDataAssetInspector.m\n        src/AVStreamDataInspectionOnlyAsset.m\n        src/AVStreamDataAsset.m\n        src/AVCaptureOutputSettings.m\n        src/AVCaptureVideoSettings.m\n        src/AVCaptureAudioSettings.m\n        src/AVURLAuthenticationChallenge.m\n        src/AVAssetResourceLoaderInternal.m\n        src/AVAssetResourceLoader.m\n        src/AVAssetResourceLoaderURLSessionDataDelegate.m\n        src/AVAssetResourceLoaderURLSessionDataDelegateForCustomURLLoader.m\n        src/AVAssetResourceLoadingContentInformationRequestInternal.m\n        src/AVAssetResourceLoadingContentInformationRequest.m\n        src/AVAssetResourceLoadingDataRequestInternal.m\n        src/AVAssetResourceLoadingDataRequest.m\n        src/AVAssetResourceLoadingRequestInternal.m\n        src/AVAssetResourceLoadingRequest.m\n        src/AVAssetResourceRenewalRequest.m\n        src/AVTextStyleRuleInternal.m\n        src/AVTextStyleRule.m\n        src/AVAssetAnalysisReporter.m\n        src/AVAssetAnalysisMessage.m\n        src/AVAssetAnalysisTextParsingMessage.m\n        src/AVPlayerMediaSelectionCriteria.m\n        src/AVPlayerItemMetadataOutputInternal.m\n        src/AVPlayerItemMetadataOutput.m\n        src/AVPlayerItemLegibleOutputRealDependencyFactory.m\n        src/AVPlayerItemLegibleOutputInternal.m\n        src/AVPlayerItemLegibleOutput.m\n        src/AVSegmentedMediaClosedCaptionReport.m\n        src/AVSegmentedMediaReport.m\n        src/AVMediaFileSegmenter.m\n        src/AVOutputSettingsAssistantInternal.m\n        src/AVOutputSettingsAssistant.m\n        src/AVExportSettingsOutputSettingsAssistantBaseSettings.m\n        src/AVExportSettingsOutputSettingsAssistantVideoSettingsAdjuster.m\n        src/AVIOKitOutputSettingsAssistantVideoEncoderCapabilities.m\n        src/AVCustomVideoCompositorSession.m\n        src/AVScheduledAudioParametersInternal.m\n        src/AVScheduledAudioParameters.m\n        src/AVMutableScheduledAudioParameters.m\n        src/AVAsynchronousVideoCompositionRequestInternal.m\n        src/AVAsynchronousVideoCompositionRequest.m\n        src/AVVideoCompositionRenderContextInternal.m\n        src/AVVideoCompositionRenderContext.m\n        src/AVCaptionGrouper.m\n        src/AVCameraCalibrationDataInternal.m\n        src/AVCameraCalibrationData.m\n        src/AVCaptionOutputSettings.m\n\t    constants.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/AVFoundation/constants.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Foundation/NSString.h>\n#import <AVFoundation/AVFoundation.h>\n\nNSString *const AVAssetExportPresetHighestQuality = @\"AVAssetExportPresetHighestQuality\";\nNSString *const AVAssetExportPresetMediumQuality = @\"AVAssetExportPresetMediumQuality\";\nNSString *const AVAssetExportPresetLowQuality = @\"AVAssetExportPresetLowQuality\";\nNSString *const AVCaptureDeviceWasConnectedNotification = @\"AVCaptureDeviceWasConnectedNotification\";\nNSString *const AVCaptureDeviceWasDisconnectedNotification = @\"AVCaptureDeviceWasDisconnectedNotification\";\nNSString *const AVCaptureSessionDidStartRunningNotification = @\"AVCaptureSessionDidStartRunningNotification\";\nNSString *const AVCaptureSessionDidStopRunningNotification = @\"AVCaptureSessionDidStopRunningNotification\";\nNSString *const AVCaptureSessionErrorKey = @\"AVCaptureSessionErrorKey\";\nNSString *const AVCaptureSessionRuntimeErrorNotification = @\"AVCaptureSessionRuntimeErrorNotification\";\nNSString *const AVChannelLayoutKey = @\"AVChannelLayoutKey\";\nNSString *const AVEncoderBitRateChannelKey = @\"AVEncoderBitRatePerChannelKey\";\nNSString *const AVErrorDeviceKey = @\"AVErrorDeviceKey\";\nNSString *const AVErrorFileSizeKey = @\"AVErrorFileSizeKey\";\nNSString *const AVErrorMediaSubTypeKey = @\"AVErrorMediaSubTypeKey\";\nNSString *const AVErrorMediaTypeKey = @\"AVErrorMediaTypeKey\";\nNSString *const AVErrorTimeKey = @\"AVErrorTimeKey\";\nNSString *const AVErrorPIDKey = @\"AVErrorPIDKey\";\nNSString *const AVErrorRecordingSuccessfullyFinishedKey = @\"AVErrorRecordingSuccessfullyFinishedKey\";\nNSString *const AVErrorPresentationTimeStampKey = @\"AVErrorPresentationTimeStampKey\";\nNSString *const AVErrorPersistentTrackIDKey = @\"AVErrorPersistentTrackIDKey\";\nNSString *const AVErrorFileTypeKey = @\"AVErrorFileTypeKey\";\nNSString *const AVFormatIDKey = @\"AVFormatIDKey\";\nNSString *const AVLinearPCMBitDepthKey = @\"AVLinearPCMBitDepthKey\";\nNSString *const AVNumberOfChannelsKey = @\"AVNumberOfChannelsKey\";\nNSString *const AVPlayerItemDidPlayToEndTimeNotification = @\"AVPlayerItemFailedToPlayToEndTimeNotification\";\nNSString *const AVPlayerItemFailedToPlayToEndTimeNotification = @\"AVPlayerItemPlaybackStalledNotification\";\nNSString *const AVSampleRateKey = @\"AVSampleRateKey\";\nNSString *const AVURLAssetPreferPreciseDurationAndTimingKey = @\"AVURLAssetPreferPreciseDurationAndTimingKey\";\nNSString *const AVVideoAverageBitRateKey = @\"AverageBitRate\";\nNSString *const AVVideoCodecAppleProRes422 = @\"apcn\";\nNSString *const AVVideoCodecAppleProRes4444 = @\"ap4h\";\nNSString *const AVVideoCodecH264 = @\"avc1\";\nNSString *const AVVideoCodecHEVC = @\"hvc1\";\nNSString *const AVVideoCodecJPEG = @\"jpeg\";\nNSString *const AVVideoCodecKey = @\"AVVideoCodecKey\";\nNSString *const AVVideoCompressionPropertiesKey = @\"AVVideoCompressionPropertiesKey\";\nNSString *const AVVideoHeightKey = @\"AVVideoHeightKey\";\nNSString *const AVVideoMaxKeyFrameIntervalKey = @\"MaxKeyFrameInterval\";\nNSString *const AVVideoWidthKey = @\"AVVideoWidthKey\";\n\nNSString *const AVVideoScalingModeKey = @\"AVVideoScalingModeKey\";\nNSString *const AVVideoScalingModeResizeAspectFill = @\"AVVideoScalingModeResizeAspectFill\";\n\nconst AVCaptureSessionPreset AVCaptureSessionPreset3840x2160 = @\"AVCaptureSessionPreset3840x2160\";\nconst AVCaptureSessionPreset AVCaptureSessionPreset1920x1080 = @\"AVCaptureSessionPreset1920x1080\";\nconst AVCaptureSessionPreset AVCaptureSessionPreset1280x720 = @\"AVCaptureSessionPreset1280x720\";\nconst AVCaptureSessionPreset AVCaptureSessionPreset960x540 = @\"AVCaptureSessionPreset960x540\";\nconst AVCaptureSessionPreset AVCaptureSessionPreset640x480 = @\"AVCaptureSessionPreset640x480\";\nconst AVCaptureSessionPreset AVCaptureSessionPreset352x288 = @\"AVCaptureSessionPreset352x288\";\nconst AVCaptureSessionPreset AVCaptureSessionPreset320x240 = @\"AVCaptureSessionPreset320x240\";\nconst AVCaptureSessionPreset AVCaptureSessionPresetiFrame1280x720 = @\"AVCaptureSessionPresetiFrame1280x720\";\nconst AVCaptureSessionPreset AVCaptureSessionPresetiFrame960x540 = @\"AVCaptureSessionPresetiFrame960x540\";\nconst AVCaptureSessionPreset AVCaptureSessionPresetHigh = @\"AVCaptureSessionPresetHigh\";\nconst AVCaptureSessionPreset AVCaptureSessionPresetLow = @\"AVCaptureSessionPresetLow\";\nconst AVCaptureSessionPreset AVCaptureSessionPresetMedium = @\"AVCaptureSessionPresetMedium\";\n\nconst NSErrorDomain AVFoundationErrorDomain = @\"AVFoundationErrorDomain\";\n\nconst AVFileType AVFileTypeMPEG4 = @\"public.mpeg-4\";\nconst AVFileType AVFileTypeQuickTimeMovie = @\"com.apple.quicktime-movie\";\n\nconst AVLayerVideoGravity AVLayerVideoGravityResize = @\"AVLayerVideoGravityResize\";\nconst AVLayerVideoGravity AVLayerVideoGravityResizeAspect = @\"AVLayerVideoGravityResizeAspect\";\nconst AVLayerVideoGravity AVLayerVideoGravityResizeAspectFill = @\"AVLayerVideoGravityResizeAspectFill\";\n\nconst AVMediaType AVMediaTypeAudio = @\"soun\";\nconst AVMediaType AVMediaTypeMuxed = @\"muxx\";\nconst AVMediaType AVMediaTypeVideo = @\"vide\";\n\nconst AVMetadataKey AVMetadataCommonKeyAlbumName = @\"albumName\";\nconst AVMetadataKey AVMetadataCommonKeyArtist = @\"artist\";\nconst AVMetadataKey AVMetadataCommonKeyArtwork = @\"artwork\";\nconst AVMetadataKey AVMetadataCommonKeyDescription = @\"description\";\nconst AVMetadataKey AVMetadataCommonKeyTitle = @\"title\";\n\nconst AVMetadataKey AVMetadataID3MetadataKeyUserURL = @\"WXXX\";\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAIFCOutputSettingsValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAIFCOutputSettingsValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAIFFOutputSettingsValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAIFFOutputSettingsValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAVAudioSettingsAudioOutputSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAVAudioSettingsAudioOutputSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAVVideoSettingsVideoOutputSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAVVideoSettingsVideoOutputSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAggregateAssetDownloadTask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAggregateAssetDownloadTask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAnimation.h",
    "content": "#import <Foundation/Foundation.h>\n\ntypedef NSString *AVLayerVideoGravity;\n\nextern const AVLayerVideoGravity AVLayerVideoGravityResize;\nextern const AVLayerVideoGravity AVLayerVideoGravityResizeAspect;\nextern const AVLayerVideoGravity AVLayerVideoGravityResizeAspectFill;\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\nextern NSString *const AVURLAssetPreferPreciseDurationAndTimingKey;\n\n@interface AVAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetAnalysisMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetAnalysisMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetAnalysisReporter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetAnalysisReporter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetAnalysisTextParsingMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetAnalysisTextParsingMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCache.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCache : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetClientURLRequestHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetClientURLRequestHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCollection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCollection : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCollectionFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCollectionFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCollectionInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCollectionInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCollectionInspectorLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCollectionInspectorLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCollectionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCollectionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCustomURLBridgeForNSURLProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCustomURLBridgeForNSURLProtocol : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCustomURLBridgeForNSURLSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCustomURLBridgeForNSURLSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetCustomURLRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetCustomURLRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetDownloadCache.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetDownloadCache : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetDownloadCacheInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetDownloadCacheInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetDownloadSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetDownloadSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetDownloadSessionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetDownloadSessionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetExportSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\nextern NSString *const AVAssetExportPresetHighestQuality;\nextern NSString *const AVAssetExportPresetMediumQuality;\nextern NSString *const AVAssetExportPresetLowQuality;\n\n@interface AVAssetExportSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetExportSessionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetExportSessionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetImageGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetImageGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetImageGeneratorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetImageGeneratorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetInspectorLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetInspectorLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetMakeReadyForInspectionLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetMakeReadyForInspectionLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetMediaSelectionGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetMediaSelectionGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetProxy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetProxy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetProxyInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetProxyInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderAudioMixOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderAudioMixOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderAudioMixOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderAudioMixOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderOutputAdaptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVAssetReaderOutputAdaptor\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderOutputCaptionAdaptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderOutputCaptionAdaptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderOutputCaptionAdaptorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderOutputCaptionAdaptorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderOutputMetadataAdaptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderOutputMetadataAdaptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderOutputMetadataAdaptorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderOutputMetadataAdaptorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderSampleReferenceOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderSampleReferenceOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderSampleReferenceOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderSampleReferenceOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderTrackOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderTrackOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderTrackOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderTrackOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderVideoCompositionOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderVideoCompositionOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetReaderVideoCompositionOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetReaderVideoCompositionOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoaderInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoaderInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoaderRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVAssetResourceLoaderRequest\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoaderURLSessionDataDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoaderURLSessionDataDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoaderURLSessionDataDelegateForCustomURLLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoaderURLSessionDataDelegateForCustomURLLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoadingContentInformationRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoadingContentInformationRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoadingContentInformationRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoadingContentInformationRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoadingDataRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoadingDataRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoadingDataRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoadingDataRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoadingRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoadingRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceLoadingRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceLoadingRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetResourceRenewalRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetResourceRenewalRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetSynchronousInspectorLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetSynchronousInspectorLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetTrackEnumerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetTrackEnumerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetTrackGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetTrackGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetTrackGroupInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetTrackGroupInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetTrackInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetTrackInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetTrackInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetTrackInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetTrackSegment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetTrackSegment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterClientInitiatedTerminalHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterClientInitiatedTerminalHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterConfigurationState.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterConfigurationState : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterFailedTerminalHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterFailedTerminalHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterFigAssetWriterNotificationHandler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterFigAssetWriterNotificationHandler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterFigAssetWriterNotificationHandlerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVAssetWriterFigAssetWriterNotificationHandlerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterFinishWritingHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterFinishWritingHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputCaptionAdaptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputCaptionAdaptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputCaptionAdaptorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputCaptionAdaptorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputConfigurationState.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputConfigurationState : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputFigAssetWriterEndPassOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputFigAssetWriterEndPassOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputGroupInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputGroupInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputInterPassAnalysisHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputInterPassAnalysisHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputMediaDataRequester.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputMediaDataRequester : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputMediaDataRequesterDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVAssetWriterInputMediaDataRequesterDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputMetadataAdaptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputMetadataAdaptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputMetadataAdaptorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputMetadataAdaptorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputNoMorePassesHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputNoMorePassesHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputPassDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputPassDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputPassDescriptionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputPassDescriptionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputPassDescriptionResponder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputPassDescriptionResponder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputPixelBufferAdaptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputPixelBufferAdaptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputPixelBufferAdaptorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputPixelBufferAdaptorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputSelectionOption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputSelectionOption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputTerminalHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputTerminalHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputUnknownHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputUnknownHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInputWritingHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInputWritingHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterTerminalHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterTerminalHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterUnknownHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterUnknownHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAssetWriterWritingHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetWriterWritingHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAsynchronousCIImageFilteringRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAsynchronousCIImageFilteringRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAsynchronousCIImageFilteringRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAsynchronousCIImageFilteringRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAsynchronousKeyValueLoading.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVAsynchronousKeyValueLoading\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAsynchronousVideoCompositionRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAsynchronousVideoCompositionRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAsynchronousVideoCompositionRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAsynchronousVideoCompositionRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioMix.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMix : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioMixEffectParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMixEffectParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioMixInputParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMixInputParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioMixInputParametersInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMixInputParametersInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioMixInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMixInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioMixSweepFilterEffectParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMixSweepFilterEffectParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioMixSweepFilterEffectParametersInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioMixSweepFilterEffectParametersInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioOutputSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioOutputSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioSettings.h",
    "content": "#import <Foundation/Foundation.h>\n\nextern NSString *const AVChannelLayoutKey;\nextern NSString *const AVEncoderBitRateChannelKey;\nextern NSString *const AVFormatIDKey;\nextern NSString *const AVLinearPCMBitDepthKey;\nextern NSString *const AVNumberOfChannelsKey;\nextern NSString *const AVSampleRateKey;\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVAudioSettingsValueConstrainer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioSettingsValueConstrainer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVBlockOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBlockOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCMNotificationDispatcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCMNotificationDispatcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCMNotificationDispatcherListenerAndCallback.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCMNotificationDispatcherListenerAndCallback : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCMNotificationDispatcherListenerKey.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCMNotificationDispatcherListenerKey : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCallbackCancellation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVCallbackCancellation\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCallbackContextRegistry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCallbackContextRegistry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCameraCalibrationData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCameraCalibrationData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCameraCalibrationDataInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCameraCalibrationDataInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionConversionAdjustment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionConversionAdjustment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionConversionTimeRangeAdjustment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionConversionTimeRangeAdjustment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionConversionValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionConversionValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionConversionWarning.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionConversionWarning : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionFormatConformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionFormatConformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionGroupInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionGroupInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionGrouper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionGrouper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionLength.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionLength : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionLengthInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionLengthInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionOutputSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionOutputSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionPosition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionPosition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionPositionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionPositionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionRegion.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionRegion : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionRegionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionRegionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionRenderer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionRenderer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionRendererInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionRendererInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionRendererScene.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionRendererScene : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionRendererSceneInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionRendererSceneInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionRuby.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionRuby : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptionRubyInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptionRubyInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioChannel.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioChannel : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioChannelInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioChannelInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioDataOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioDataOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioDataOutputCallbackData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioDataOutputCallbackData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioDataOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioDataOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioFileOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioFileOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioFileOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioFileOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioPreviewOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioPreviewOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioPreviewOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioPreviewOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureAudioSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureAudioSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureConnection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureConnection : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureConnectionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureConnectionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDALDevice.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDALDevice : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDevice.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDevice : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDeviceFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDeviceFormatInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceFormatInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDeviceInput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceInput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDeviceInputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceInputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDeviceInputSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceInputSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDeviceInputSourceInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceInputSourceInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureDeviceInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureFileOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureFileOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureFileOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureFileOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureFileOutputPauseOperationDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureFileOutputPauseOperationDescriptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureFileOutputRecordingOperationDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureFileOutputRecordingOperationDescriptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureHALDevice.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureHALDevice : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureInput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureInput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureInputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureInputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureInputPort.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureInputPort : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureInputPortInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureInputPortInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureMovieFileOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureMovieFileOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureMovieFileOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureMovieFileOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureOperationDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVCaptureOperationDescriptor\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureOperationDescriptorQueue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureOperationDescriptorQueue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureOperationDescriptorQueueItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureOperationDescriptorQueueItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureOutputSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureOutputSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureScreenInput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureScreenInput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureScreenInputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureScreenInputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\ntypedef NSString *AVCaptureSessionPreset;\n\nextern NSString *const AVCaptureDeviceWasConnectedNotification;\nextern NSString *const AVCaptureDeviceWasDisconnectedNotification;\nextern NSString *const AVCaptureSessionDidStartRunningNotification;\nextern NSString *const AVCaptureSessionDidStopRunningNotification;\nextern NSString *const AVCaptureSessionErrorKey;\nextern NSString *const AVCaptureSessionRuntimeErrorNotification;\n\nextern const AVCaptureSessionPreset AVCaptureSessionPreset3840x2160;\nextern const AVCaptureSessionPreset AVCaptureSessionPreset1920x1080;\nextern const AVCaptureSessionPreset AVCaptureSessionPreset1280x720;\nextern const AVCaptureSessionPreset AVCaptureSessionPreset960x540;\nextern const AVCaptureSessionPreset AVCaptureSessionPreset640x480;\nextern const AVCaptureSessionPreset AVCaptureSessionPreset352x288;\nextern const AVCaptureSessionPreset AVCaptureSessionPreset320x240;\nextern const AVCaptureSessionPreset AVCaptureSessionPresetiFrame1280x720;\nextern const AVCaptureSessionPreset AVCaptureSessionPresetiFrame960x540;\nextern const AVCaptureSessionPreset AVCaptureSessionPresetHigh;\nextern const AVCaptureSessionPreset AVCaptureSessionPresetLow;\nextern const AVCaptureSessionPreset AVCaptureSessionPresetMedium;\n\n@interface AVCaptureSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureSessionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureSessionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureSessionInternalState.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureSessionInternalState : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureStillImageOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureStillImageOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureStillImageOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureStillImageOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureStillImageOutputUtils.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureStillImageOutputUtils : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureStillImageRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureStillImageRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureStillImageTransform.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureStillImageTransform : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureVideoDataOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureVideoDataOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureVideoDataOutputCallbackData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureVideoDataOutputCallbackData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureVideoDataOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureVideoDataOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureVideoPreviewLayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureVideoPreviewLayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureVideoPreviewLayerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureVideoPreviewLayerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCaptureVideoSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureVideoSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVChapterMetadataItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVChapterMetadataItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVChapterMetadataItemInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVChapterMetadataItemInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVClientBlockKVONotifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVClientBlockKVONotifier : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVComposition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVComposition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCompositionFormatReaderInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCompositionFormatReaderInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCompositionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCompositionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCompositionTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCompositionTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCompositionTrackInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCompositionTrackInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCompositionTrackReaderInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCompositionTrackReaderInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCompositionTrackSegment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCompositionTrackSegment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCompositionTrackSegmentInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCompositionTrackSegmentInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeyRecipient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVContentKeyRecipient\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeyRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVContentKeyRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeyRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVContentKeyRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeyResponse.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVContentKeyResponse : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeyResponseClearKey.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVContentKeyResponseClearKey : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeyResponseFairPlayStreaming.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVContentKeyResponseFairPlayStreaming : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeyResponseInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVContentKeyResponseInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeySession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVContentKeySession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeySessionDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVContentKeySessionDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVContentKeySessionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVContentKeySessionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCoreImageFilterCustomVideoCompositor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCoreImageFilterCustomVideoCompositor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCoreImageFilterVideoCompositionInstruction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCoreImageFilterVideoCompositionInstruction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVCustomVideoCompositorSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCustomVideoCompositorSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDataAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDataAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDataDelegateAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDataDelegateAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDataDelegateAssetInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDataDelegateAssetInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDateRangeMetadataGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDateRangeMetadataGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDateRangeMetadataGroupInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDateRangeMetadataGroupInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDecodedAudioSettingsForFig.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVDecodedAudioSettingsForFig\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDecodedVideoSettingsForFig.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVDecodedVideoSettingsForFig\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDelegateStorage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVDelegateStorage\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDepartureAnnouncingObjectMonitor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDepartureAnnouncingObjectMonitor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDepthData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDepthData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDepthDataInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDepthDataInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDestinationChangeResultSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVDestinationChangeResultSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVDispatchGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDispatchGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVEmptyOutputDeviceDiscoverySessionAvailableOutputDevices.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVEmptyOutputDeviceDiscoverySessionAvailableOutputDevices : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVError.h",
    "content": "#import <Foundation/Foundation.h>\n\nextern const NSErrorDomain AVFoundationErrorDomain;\n\nextern NSString *const AVErrorDeviceKey;\nextern NSString *const AVErrorFileSizeKey;\nextern NSString *const AVErrorMediaSubTypeKey;\nextern NSString *const AVErrorMediaTypeKey;\nextern NSString *const AVErrorTimeKey;\nextern NSString *const AVErrorPIDKey;\nextern NSString *const AVErrorRecordingSuccessfullyFinishedKey;\nextern NSString *const AVErrorPresentationTimeStampKey;\nextern NSString *const AVErrorPersistentTrackIDKey;\nextern NSString *const AVErrorFileTypeKey;\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVEventWaiter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVEventWaiter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVExecutionEnvironment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVExecutionEnvironment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVExportSettingsOutputSettingsAssistantBaseSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVExportSettingsOutputSettingsAssistantBaseSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVExportSettingsOutputSettingsAssistantVideoSettingsAdjuster.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVExportSettingsOutputSettingsAssistantVideoSettingsAdjuster : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFAudio.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFAudio/AVFAudio.h>\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetInspectorLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetInspectorLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetTrackInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetTrackInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetWriterAudioTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetWriterAudioTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetWriterCaptionTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetWriterCaptionTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetWriterFinishWritingAsyncOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetWriterFinishWritingAsyncOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetWriterGenericTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetWriterGenericTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetWriterTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetWriterTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigAssetWriterVideoTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigAssetWriterVideoTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigCommChannelUUIDCommunicationChannelManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigCommChannelUUIDCommunicationChannelManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigCommChannelUUIDOutputContextCommunicationChannelImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigCommChannelUUIDOutputContextCommunicationChannelImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointFigRoutingContextOutputDeviceTranslator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointFigRoutingContextOutputDeviceTranslator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointOutputDeviceDiscoverySessionAvailableOutputDevicesImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointOutputDeviceImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointOutputDeviceImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointPickerOutputContextImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointPickerOutputContextImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointPickerOutputDeviceDiscoverySessionFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointPickerOutputDeviceDiscoverySessionFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointPickerOutputDeviceDiscoverySessionImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointPickerOutputDeviceDiscoverySessionImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointUIAgentOutputContextManagerImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointUIAgentOutputContextManagerImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointUIAgentOutputDeviceAuthorizationRequestImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointUIAgentOutputDeviceAuthorizationRequestImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigEndpointUIAgentOutputDeviceAuthorizationSessionImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigEndpointUIAgentOutputDeviceAuthorizationSessionImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigObjectInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigObjectInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRemoteRouteDiscovererFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRemoteRouteDiscovererFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRouteDescriptorFigRoutingContextOutputDeviceTranslator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRouteDescriptorFigRoutingContextOutputDeviceTranslator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRouteDescriptorOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRouteDescriptorOutputDeviceDiscoverySessionAvailableOutputDevicesImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRouteDescriptorOutputDeviceImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRouteDescriptorOutputDeviceImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRouteDiscovererFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFigRouteDiscovererFactory\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRouteDiscovererOutputDeviceDiscoverySessionFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRouteDiscovererOutputDeviceDiscoverySessionFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRoutingContextCommandOutputDeviceConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRoutingContextCommandOutputDeviceConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRoutingContextCommandOutputDeviceConfigurationModification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRoutingContextCommandOutputDeviceConfigurationModification : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRoutingContextCommunicationChannelManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFigRoutingContextCommunicationChannelManager\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRoutingContextFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFigRoutingContextFactory\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRoutingContextOutputContextImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRoutingContextOutputContextImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRoutingContextOutputDeviceTranslator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFigRoutingContextOutputDeviceTranslator\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRoutingContextRouteChangeOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRoutingContextRouteChangeOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFigRoutingContextSendConfigureDeviceCommandOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFigRoutingContextSendConfigureDeviceCommandOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFloat64Range.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFloat64Range : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFormatReaderInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFormatReaderInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFormatSpecification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFormatSpecification : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFoundation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _AVFoundation_H_\n#define _AVFoundation_H_\n\n#import <Foundation/Foundation.h>\n\n#import <AVFoundation/AVAssetReaderOutputAdaptor.h>\n#import <AVFoundation/AVAssetResourceLoaderRequest.h>\n#import <AVFoundation/AVAssetWriterFigAssetWriterNotificationHandlerDelegate.h>\n#import <AVFoundation/AVAssetWriterInputMediaDataRequesterDelegate.h>\n#import <AVFoundation/AVAsynchronousKeyValueLoading.h>\n#import <AVFoundation/AVCallbackCancellation.h>\n#import <AVFoundation/AVCaptureOperationDescriptor.h>\n#import <AVFoundation/AVContentKeyRecipient.h>\n#import <AVFoundation/AVContentKeySessionDelegate.h>\n#import <AVFoundation/AVDecodedAudioSettingsForFig.h>\n#import <AVFoundation/AVDecodedVideoSettingsForFig.h>\n#import <AVFoundation/AVDelegateStorage.h>\n#import <AVFoundation/AVDestinationChangeResultSource.h>\n#import <AVFoundation/AVFigRouteDiscovererFactory.h>\n#import <AVFoundation/AVFigRoutingContextCommunicationChannelManager.h>\n#import <AVFoundation/AVFigRoutingContextFactory.h>\n#import <AVFoundation/AVFigRoutingContextOutputDeviceTranslator.h>\n#import <AVFoundation/AVFragmentMinding.h>\n#import <AVFoundation/AVKVOIntrospection.h>\n#import <AVFoundation/AVKVONotifier.h>\n#import <AVFoundation/AVKeyPath.h>\n#import <AVFoundation/AVKeyPathDependencyHost.h>\n#import <AVFoundation/AVKeyPathDependencyRegistration.h>\n#import <AVFoundation/AVMediaDataRequesterConsumer.h>\n#import <AVFoundation/AVObjectMonitoring.h>\n#import <AVFoundation/AVOutputContextCommunicationChannelImpl.h>\n#import <AVFoundation/AVOutputContextImpl.h>\n#import <AVFoundation/AVOutputContextManagerImpl.h>\n#import <AVFoundation/AVOutputDeviceAuthorizationRequestImpl.h>\n#import <AVFoundation/AVOutputDeviceAuthorizationSessionImpl.h>\n#import <AVFoundation/AVOutputDeviceConfigurationModification.h>\n#import <AVFoundation/AVOutputDeviceConfigurationRetrieval.h>\n#import <AVFoundation/AVOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.h>\n#import <AVFoundation/AVOutputDeviceDiscoverySessionFactory.h>\n#import <AVFoundation/AVOutputDeviceDiscoverySessionImpl.h>\n#import <AVFoundation/AVOutputDeviceImpl.h>\n#import <AVFoundation/AVOutputSettingsAssistantBaseSettingsProvider.h>\n#import <AVFoundation/AVOutputSettingsAssistantVideoEncoderCapabilities.h>\n#import <AVFoundation/AVOutputSettingsAssistantVideoSettingsAdjuster.h>\n#import <AVFoundation/AVOutputSettingsValidation.h>\n#import <AVFoundation/AVPlayerItemLegibleOutputDependencyFactory.h>\n#import <AVFoundation/AVQueuedSampleBufferRendering.h>\n#import <AVFoundation/AVQueuedSampleBufferRenderingInternal.h>\n#import <AVFoundation/AVReencodedAudioSettingsForFig.h>\n#import <AVFoundation/AVReencodedVideoSettingsForFig.h>\n#import <AVFoundation/AVVideoCompositing.h>\n#import <AVFoundation/AVVideoCompositionInstruction.h>\n#import <AVFoundation/AVWeakObservable.h>\n#import <AVFoundation/AVPlayerLayerIntermediateLayer.h>\n#import <AVFoundation/AVPlayerLayerInternal.h>\n#import <AVFoundation/AVPlayerLayer.h>\n#import <AVFoundation/CMTimeAsValue.h>\n#import <AVFoundation/CMTimeRangeAsValue.h>\n#import <AVFoundation/CMTimeMappingAsValue.h>\n#import <AVFoundation/AVFragmentedAssetInternal.h>\n#import <AVFoundation/AVFragmentedAsset.h>\n#import <AVFoundation/AVFragmentedMovieInternal.h>\n#import <AVFoundation/AVFragmentedMovie.h>\n#import <AVFoundation/AVFragmentedAssetMinderInternal.h>\n#import <AVFoundation/AVFragmentedAssetMinder.h>\n#import <AVFoundation/AVFragmentedMovieMinder.h>\n#import <AVFoundation/AVFragmentedAssetTrackInternal.h>\n#import <AVFoundation/AVFragmentedAssetTrack.h>\n#import <AVFoundation/AVFragmentedMovieTrackInternal.h>\n#import <AVFoundation/AVFragmentedMovieTrack.h>\n#import <AVFoundation/AVMetadataItemInternal.h>\n#import <AVFoundation/AVMetadataItem.h>\n#import <AVFoundation/AVMutableMetadataItem.h>\n#import <AVFoundation/AVLazyValueLoadingMetadataItemInternal.h>\n#import <AVFoundation/AVLazyValueLoadingMetadataItem.h>\n#import <AVFoundation/AVMetadataItemValueRequestInternal.h>\n#import <AVFoundation/AVMetadataItemValueRequest.h>\n#import <AVFoundation/AVChapterMetadataItemInternal.h>\n#import <AVFoundation/AVChapterMetadataItem.h>\n#import <AVFoundation/AVMetadataItemFilterForSharing.h>\n#import <AVFoundation/AVMetadataItemFilterInternal.h>\n#import <AVFoundation/AVMetadataItemFilter.h>\n#import <AVFoundation/AVFigEndpointOutputDeviceImpl.h>\n#import <AVFoundation/AVAssetInternal.h>\n#import <AVFoundation/AVAsset.h>\n#import <AVFoundation/AVURLAssetInternal.h>\n#import <AVFoundation/AVURLAsset.h>\n#import <AVFoundation/AVAssetClientURLRequestHelper.h>\n#import <AVFoundation/AVDataAsset.h>\n#import <AVFoundation/AVAssetTrackEnumerator.h>\n#import <AVFoundation/AVAssetImageGeneratorInternal.h>\n#import <AVFoundation/AVAssetImageGenerator.h>\n#import <AVFoundation/AVAssetTrackInternal.h>\n#import <AVFoundation/AVAssetTrack.h>\n#import <AVFoundation/AVPlayerInternal.h>\n#import <AVFoundation/AVPlayer.h>\n#import <AVFoundation/AVPlayerQueueModificationDescription.h>\n#import <AVFoundation/AVAssetWriterInputMetadataAdaptorInternal.h>\n#import <AVFoundation/AVAssetWriterInputMetadataAdaptor.h>\n#import <AVFoundation/AVPlayerItemInternal.h>\n#import <AVFoundation/AVPlayerItem.h>\n#import <AVFoundation/AVPlayerConnection.h>\n#import <AVFoundation/AVPlayerItemTrackInternal.h>\n#import <AVFoundation/AVPlayerItemTrack.h>\n#import <AVFoundation/AVTimeFormatterInternal.h>\n#import <AVFoundation/AVTimeFormatter.h>\n#import <AVFoundation/AVQueuePlayer.h>\n#import <AVFoundation/AVQueuePlayerInternal.h>\n#import <AVFoundation/AVCompositionInternal.h>\n#import <AVFoundation/AVComposition.h>\n#import <AVFoundation/AVMutableCompositionInternal.h>\n#import <AVFoundation/AVMutableComposition.h>\n#import <AVFoundation/AVCompositionFormatReaderInspector.h>\n#import <AVFoundation/AVCaptionRendererInternal.h>\n#import <AVFoundation/AVCaptionRenderer.h>\n#import <AVFoundation/AVCaptionRendererSceneInternal.h>\n#import <AVFoundation/AVCaptionRendererScene.h>\n#import <AVFoundation/AVCompositionTrackInternal.h>\n#import <AVFoundation/AVCompositionTrack.h>\n#import <AVFoundation/AVMutableCompositionTrackInternal.h>\n#import <AVFoundation/AVMutableCompositionTrack.h>\n#import <AVFoundation/AVAssetCustomURLRequest.h>\n#import <AVFoundation/AVAssetCustomURLBridgeForNSURLSession.h>\n#import <AVFoundation/AVNSURLProtocolRequest.h>\n#import <AVFoundation/AVAssetCustomURLBridgeForNSURLProtocol.h>\n#import <AVFoundation/AVCompositionTrackSegmentInternal.h>\n#import <AVFoundation/AVCompositionTrackSegment.h>\n#import <AVFoundation/AVAssetReaderInternal.h>\n#import <AVFoundation/AVAssetReader.h>\n#import <AVFoundation/AVMovieTrackInternal.h>\n#import <AVFoundation/AVMovieTrack.h>\n#import <AVFoundation/AVMutableMovieTrackInternal.h>\n#import <AVFoundation/AVMutableMovieTrack.h>\n#import <AVFoundation/AVAssetReaderOutputInternal.h>\n#import <AVFoundation/AVAssetReaderOutput.h>\n#import <AVFoundation/AVAssetReaderTrackOutputInternal.h>\n#import <AVFoundation/AVAssetReaderTrackOutput.h>\n#import <AVFoundation/AVAssetReaderAudioMixOutputInternal.h>\n#import <AVFoundation/AVAssetReaderAudioMixOutput.h>\n#import <AVFoundation/AVAssetReaderVideoCompositionOutputInternal.h>\n#import <AVFoundation/AVAssetReaderVideoCompositionOutput.h>\n#import <AVFoundation/AVAssetReaderSampleReferenceOutputInternal.h>\n#import <AVFoundation/AVAssetReaderSampleReferenceOutput.h>\n#import <AVFoundation/AVDataDelegateAssetInternal.h>\n#import <AVFoundation/AVDataDelegateAsset.h>\n#import <AVFoundation/AVAssetWriterConfigurationState.h>\n#import <AVFoundation/AVAssetWriterInternal.h>\n#import <AVFoundation/AVAssetWriter.h>\n#import <AVFoundation/AVAssetWriterUnknownHelper.h>\n#import <AVFoundation/AVAssetWriterFigAssetWriterNotificationHandler.h>\n#import <AVFoundation/AVAssetWriterWritingHelper.h>\n#import <AVFoundation/AVWorkaroundNSBlockOperation.h>\n#import <AVFoundation/AVAssetWriterFinishWritingHelper.h>\n#import <AVFoundation/AVFigAssetWriterFinishWritingAsyncOperation.h>\n#import <AVFoundation/AVAssetWriterTerminalHelper.h>\n#import <AVFoundation/AVAssetWriterFailedTerminalHelper.h>\n#import <AVFoundation/AVAssetWriterClientInitiatedTerminalHelper.h>\n#import <AVFoundation/AVAssetWriterHelper.h>\n#import <AVFoundation/AVAssetWriterInputGroupInternal.h>\n#import <AVFoundation/AVAssetWriterInputGroup.h>\n#import <AVFoundation/AVAssetWriterInputSelectionOption.h>\n#import <AVFoundation/AVAssetWriterInputConfigurationState.h>\n#import <AVFoundation/AVAssetWriterInputInternal.h>\n#import <AVFoundation/AVAssetWriterInput.h>\n#import <AVFoundation/AVAssetWriterInputUnknownHelper.h>\n#import <AVFoundation/AVAssetWriterInputWritingHelper.h>\n#import <AVFoundation/AVAssetWriterInputInterPassAnalysisHelper.h>\n#import <AVFoundation/AVAssetWriterInputNoMorePassesHelper.h>\n#import <AVFoundation/AVAssetWriterInputTerminalHelper.h>\n#import <AVFoundation/AVAssetWriterInputHelper.h>\n#import <AVFoundation/AVAssetWriterInputPixelBufferAdaptorInternal.h>\n#import <AVFoundation/AVAssetWriterInputPixelBufferAdaptor.h>\n#import <AVFoundation/AVFigAssetWriterTrack.h>\n#import <AVFoundation/AVFigAssetWriterAudioTrack.h>\n#import <AVFoundation/AVFigAssetWriterVideoTrack.h>\n#import <AVFoundation/AVFigAssetWriterCaptionTrack.h>\n#import <AVFoundation/AVFigAssetWriterGenericTrack.h>\n#import <AVFoundation/AVAssetWriterInputMediaDataRequester.h>\n#import <AVFoundation/AVAssetWriterInputPassDescriptionResponder.h>\n#import <AVFoundation/AVAssetWriterInputFigAssetWriterEndPassOperation.h>\n#import <AVFoundation/AVAssetWriterInputPassDescriptionInternal.h>\n#import <AVFoundation/AVAssetWriterInputPassDescription.h>\n#import <AVFoundation/AVVideoCompositionInstructionInternal.h>\n#import <AVFoundation/AVVideoCompositionInstruction.h>\n#import <AVFoundation/AVMutableVideoCompositionInstruction.h>\n#import <AVFoundation/AVVideoCompositionLayerInstructionInternal.h>\n#import <AVFoundation/AVVideoCompositionLayerInstruction.h>\n#import <AVFoundation/AVMutableVideoCompositionLayerInstruction.h>\n#import <AVFoundation/AVVideoCompositionInternal.h>\n#import <AVFoundation/AVVideoComposition.h>\n#import <AVFoundation/AVMutableVideoComposition.h>\n#import <AVFoundation/AVVideoCompositionCoreAnimationTool.h>\n#import <AVFoundation/AVVideoCompositionCoreAnimationToolInternal.h>\n#import <AVFoundation/AVAssetExportSessionInternal.h>\n#import <AVFoundation/AVAssetExportSession.h>\n#import <AVFoundation/AVSynchronizedLayerInternal.h>\n#import <AVFoundation/AVSynchronizedLayer.h>\n#import <AVFoundation/AVExecutionEnvironment.h>\n#import <AVFoundation/AVMetadataEnumerator.h>\n#import <AVFoundation/AVAssetTrackSegment.h>\n#import <AVFoundation/AVAssetReaderOutputCaptionAdaptorInternal.h>\n#import <AVFoundation/AVAssetReaderOutputCaptionAdaptor.h>\n#import <AVFoundation/AVPropertyStorage.h>\n#import <AVFoundation/AVStreamSessionInternal.h>\n#import <AVFoundation/AVStreamSession.h>\n#import <AVFoundation/AVPlayerLooperInternal.h>\n#import <AVFoundation/AVPlayerLooper.h>\n#import <AVFoundation/AVAudioMix.h>\n#import <AVFoundation/AVMutableAudioMix.h>\n#import <AVFoundation/AVAudioMixInternal.h>\n#import <AVFoundation/AVAudioMixInputParameters.h>\n#import <AVFoundation/AVAudioMixInputParametersInternal.h>\n#import <AVFoundation/AVMutableAudioMixInputParameters.h>\n#import <AVFoundation/AVRunLoopConditionRunLoopState.h>\n#import <AVFoundation/AVRunLoopCondition.h>\n#import <AVFoundation/AVCaptionConversionValidator.h>\n#import <AVFoundation/AVCaptionConversionWarning.h>\n#import <AVFoundation/AVCaptionConversionAdjustment.h>\n#import <AVFoundation/AVCaptionConversionTimeRangeAdjustment.h>\n#import <AVFoundation/AVMediaDataStorageInternal.h>\n#import <AVFoundation/AVMediaDataStorage.h>\n#import <AVFoundation/AVMovieInternal.h>\n#import <AVFoundation/AVMovie.h>\n#import <AVFoundation/AVMutableMovieInternal.h>\n#import <AVFoundation/AVMutableMovie.h>\n#import <AVFoundation/AVAssetInspector.h>\n#import <AVFoundation/AVFormatReaderInspector.h>\n#import <AVFoundation/AVPlaybackItemInspector.h>\n#import <AVFoundation/AVStreamingResourceInspector.h>\n#import <AVFoundation/AVFigAssetInspector.h>\n#import <AVFoundation/AVTimebaseObserver.h>\n#import <AVFoundation/AVPeriodicTimebaseObserver.h>\n#import <AVFoundation/AVOccasionalTimebaseObserver.h>\n#import <AVFoundation/AVOnceTimebaseObserver.h>\n#import <AVFoundation/AVAssetInspectorLoader.h>\n#import <AVFoundation/AVAssetSynchronousInspectorLoader.h>\n#import <AVFoundation/AVAssetMakeReadyForInspectionLoader.h>\n#import <AVFoundation/AVPlaybackItemInspectorLoader.h>\n#import <AVFoundation/AVFigAssetInspectorLoader.h>\n#import <AVFoundation/AVUnreachableAssetInspectorLoader.h>\n#import <AVFoundation/AVAssetTrackInspector.h>\n#import <AVFoundation/AVTrackReaderInspector.h>\n#import <AVFoundation/AVFigAssetTrackInspector.h>\n#import <AVFoundation/AVCompositionTrackReaderInspector.h>\n#import <AVFoundation/AVPlaybackItemTrackInspector.h>\n#import <AVFoundation/AVFigRoutingContextSendConfigureDeviceCommandOperation.h>\n#import <AVFoundation/AVRemoteFigRoutingContextFactory.h>\n#import <AVFoundation/AVFigRoutingContextCommandOutputDeviceConfigurationModification.h>\n#import <AVFoundation/AVFigRoutingContextCommandOutputDeviceConfiguration.h>\n#import <AVFoundation/AVFigRoutingContextRouteChangeOperation.h>\n#import <AVFoundation/AVRouteConfigUpdatedFigRoutingContextRouteChangeOperation.h>\n#import <AVFoundation/AVFigEndpointUIAgentOutputDeviceAuthorizationSessionImpl.h>\n#import <AVFoundation/AVFigEndpointUIAgentOutputDeviceAuthorizationRequestImpl.h>\n#import <AVFoundation/AVCaptionFormatConformer.h>\n#import <AVFoundation/AVContentKeyRequestInternal.h>\n#import <AVFoundation/AVContentKeyRequest.h>\n#import <AVFoundation/AVPersistableContentKeyRequest.h>\n#import <AVFoundation/AVContentKeyResponseFairPlayStreaming.h>\n#import <AVFoundation/AVContentKeyResponseClearKey.h>\n#import <AVFoundation/AVContentKeyResponseInternal.h>\n#import <AVFoundation/AVContentKeyResponse.h>\n#import <AVFoundation/AVContentKeySessionInternal.h>\n#import <AVFoundation/AVContentKeySession.h>\n#import <AVFoundation/AVMetadataObjectInternal.h>\n#import <AVFoundation/AVMetadataObject.h>\n#import <AVFoundation/AVMetadataFaceObjectInternal.h>\n#import <AVFoundation/AVMetadataFaceObject.h>\n#import <AVFoundation/AVDispatchGroup.h>\n#import <AVFoundation/AVEventWaiter.h>\n#import <AVFoundation/AVWeakReference.h>\n#import <AVFoundation/AVRetainReleaseWeakReference.h>\n#import <AVFoundation/AVAssetWriterInputCaptionAdaptorInternal.h>\n#import <AVFoundation/AVAssetWriterInputCaptionAdaptor.h>\n#import <AVFoundation/AVCallbackContextRegistry.h>\n#import <AVFoundation/AVCMNotificationDispatcher.h>\n#import <AVFoundation/AVCMNotificationDispatcherListenerAndCallback.h>\n#import <AVFoundation/AVCMNotificationDispatcherListenerKey.h>\n#import <AVFoundation/AVAssetReaderOutputMetadataAdaptorInternal.h>\n#import <AVFoundation/AVAssetReaderOutputMetadataAdaptor.h>\n#import <AVFoundation/AVFigRouteDescriptorOutputDeviceImpl.h>\n#import <AVFoundation/AVAssetTrackGroupInternal.h>\n#import <AVFoundation/AVAssetTrackGroup.h>\n#import <AVFoundation/AVMetadataGroup.h>\n#import <AVFoundation/AVTimedMetadataGroupInternal.h>\n#import <AVFoundation/AVTimedMetadataGroup.h>\n#import <AVFoundation/AVMutableTimedMetadataGroup.h>\n#import <AVFoundation/AVDateRangeMetadataGroupInternal.h>\n#import <AVFoundation/AVDateRangeMetadataGroup.h>\n#import <AVFoundation/AVMutableDateRangeMetadataGroup.h>\n#import <AVFoundation/AVAssetCache.h>\n#import <AVFoundation/AVManagedAssetCacheInternal.h>\n#import <AVFoundation/AVManagedAssetCache.h>\n#import <AVFoundation/AVAssetDownloadCacheInternal.h>\n#import <AVFoundation/AVAssetDownloadCache.h>\n#import <AVFoundation/AVCaptureAudioChannelInternal.h>\n#import <AVFoundation/AVCaptureAudioChannel.h>\n#import <AVFoundation/AVCaptureAudioDataOutputCallbackData.h>\n#import <AVFoundation/AVCaptureAudioDataOutputInternal.h>\n#import <AVFoundation/AVCaptureAudioDataOutput.h>\n#import <AVFoundation/AVCaptureAudioFileOutputInternal.h>\n#import <AVFoundation/AVCaptureAudioFileOutput.h>\n#import <AVFoundation/AVNetworkPlaybackPerfHUDLayer.h>\n#import <AVFoundation/AVCaptureAudioPreviewOutputInternal.h>\n#import <AVFoundation/AVCaptureAudioPreviewOutput.h>\n#import <AVFoundation/AVCaptureConnectionInternal.h>\n#import <AVFoundation/AVCaptureConnection.h>\n#import <AVFoundation/AVOutputContextInternal.h>\n#import <AVFoundation/AVOutputContext.h>\n#import <AVFoundation/AVOutputContextCommunicationChannelInternal.h>\n#import <AVFoundation/AVOutputContextCommunicationChannel.h>\n#import <AVFoundation/AVOutputContextDestinationChangeInternal.h>\n#import <AVFoundation/AVOutputContextDestinationChange.h>\n#import <AVFoundation/AVOutputContextManagerInternal.h>\n#import <AVFoundation/AVOutputContextManager.h>\n#import <AVFoundation/AVCaptureDALDevice.h>\n#import <AVFoundation/AVCaptureDeviceInternal.h>\n#import <AVFoundation/AVCaptureDevice.h>\n#import <AVFoundation/AVOutputDeviceAuthorizationSessionInternal.h>\n#import <AVFoundation/AVOutputDeviceAuthorizationSession.h>\n#import <AVFoundation/AVOutputDeviceAuthorizationRequestInternal.h>\n#import <AVFoundation/AVOutputDeviceAuthorizationRequest.h>\n#import <AVFoundation/AVMediaDataRequester.h>\n#import <AVFoundation/AVCaptureDeviceFormatInternal.h>\n#import <AVFoundation/AVCaptureDeviceFormat.h>\n#import <AVFoundation/AVStreamDataParserInternal.h>\n#import <AVFoundation/AVStreamDataParser.h>\n#import <AVFoundation/AVSampleBufferRenderSynchronizerInternal.h>\n#import <AVFoundation/AVSampleBufferRenderSynchronizer.h>\n#import <AVFoundation/AVCaptureDeviceInputInternal.h>\n#import <AVFoundation/AVCaptureDeviceInput.h>\n#import <AVFoundation/AVFigRemoteRouteDiscovererFactory.h>\n#import <AVFoundation/AVFigRouteDiscovererOutputDeviceDiscoverySessionFactory.h>\n#import <AVFoundation/AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl.h>\n#import <AVFoundation/AVFigRouteDescriptorOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.h>\n#import <AVFoundation/AVSampleCursorInternal.h>\n#import <AVFoundation/AVSampleCursor.h>\n#import <AVFoundation/AVCaptureDeviceInputSourceInternal.h>\n#import <AVFoundation/AVCaptureDeviceInputSource.h>\n#import <AVFoundation/AVCaptureFileOutputRecordingOperationDescriptor.h>\n#import <AVFoundation/AVCaptureFileOutputPauseOperationDescriptor.h>\n#import <AVFoundation/AVCaptureFileOutputInternal.h>\n#import <AVFoundation/AVCaptureFileOutput.h>\n#import <AVFoundation/AVCaptureHALDevice.h>\n#import <AVFoundation/AVFigEndpointPickerOutputDeviceDiscoverySessionImpl.h>\n#import <AVFoundation/AVFigEndpointPickerOutputDeviceDiscoverySessionFactory.h>\n#import <AVFoundation/AVFigEndpointOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.h>\n#import <AVFoundation/AVCaptureInputInternal.h>\n#import <AVFoundation/AVCaptureInput.h>\n#import <AVFoundation/AVCaptureInputPortInternal.h>\n#import <AVFoundation/AVCaptureInputPort.h>\n#import <AVFoundation/AVCaptionGroupInternal.h>\n#import <AVFoundation/AVCaptionGroup.h>\n#import <AVFoundation/AVCaptureMovieFileOutputInternal.h>\n#import <AVFoundation/AVCaptureMovieFileOutput.h>\n#import <AVFoundation/AVCaptureOperationDescriptorQueueItem.h>\n#import <AVFoundation/AVCaptureOperationDescriptorQueue.h>\n#import <AVFoundation/AVCaptureOutputInternal.h>\n#import <AVFoundation/AVCaptureOutput.h>\n#import <AVFoundation/AVCaptureScreenInputInternal.h>\n#import <AVFoundation/AVCaptureScreenInput.h>\n#import <AVFoundation/AVCaptureSessionInternal.h>\n#import <AVFoundation/AVCaptureSessionInternalState.h>\n#import <AVFoundation/AVCaptureSession.h>\n#import <AVFoundation/AVCaptureVideoDataOutputCallbackData.h>\n#import <AVFoundation/AVCaptureVideoDataOutputInternal.h>\n#import <AVFoundation/AVCaptureVideoDataOutput.h>\n#import <AVFoundation/AVCaptureVideoPreviewLayerInternal.h>\n#import <AVFoundation/AVCaptureVideoPreviewLayer.h>\n#import <AVFoundation/AVSampleBufferAudioRendererInternal.h>\n#import <AVFoundation/AVSampleBufferAudioRenderer.h>\n#import <AVFoundation/AVResolvedDecompressionSettings.h>\n#import <AVFoundation/AVMediaSelectionInternal.h>\n#import <AVFoundation/AVMediaSelection.h>\n#import <AVFoundation/AVMutableMediaSelection.h>\n#import <AVFoundation/MediaIOGraphNodeDescription.h>\n#import <AVFoundation/AVAssetProxyInternal.h>\n#import <AVFoundation/AVAssetProxy.h>\n#import <AVFoundation/AVOutputDeviceDiscoverySessionInternal.h>\n#import <AVFoundation/AVOutputDeviceDiscoverySessionAvailableOutputDevicesInternal.h>\n#import <AVFoundation/AVOutputDeviceDiscoverySession.h>\n#import <AVFoundation/AVEmptyOutputDeviceDiscoverySessionAvailableOutputDevices.h>\n#import <AVFoundation/AVOutputDeviceDiscoverySessionAvailableOutputDevices.h>\n#import <AVFoundation/MediaIOGraphNodeList.h>\n#import <AVFoundation/AVAsynchronousCIImageFilteringRequestInternal.h>\n#import <AVFoundation/AVAsynchronousCIImageFilteringRequest.h>\n#import <AVFoundation/AVCoreImageFilterVideoCompositionInstruction.h>\n#import <AVFoundation/AVCoreImageFilterCustomVideoCompositor.h>\n#import <AVFoundation/AVCaptureStillImageRequest.h>\n#import <AVFoundation/AVCaptureStillImageOutputInternal.h>\n#import <AVFoundation/AVCaptureStillImageOutput.h>\n#import <AVFoundation/AVPlayerItemMetadataCollectorInternal.h>\n#import <AVFoundation/AVPlayerItemMetadataCollector.h>\n#import <AVFoundation/AVPlayerItemAccessLogInternal.h>\n#import <AVFoundation/AVPlayerItemAccessLog.h>\n#import <AVFoundation/AVPlayerItemAccessLogEventInternal.h>\n#import <AVFoundation/AVPlayerItemAccessLogEvent.h>\n#import <AVFoundation/AVPlayerItemErrorLogInternal.h>\n#import <AVFoundation/AVPlayerItemErrorLog.h>\n#import <AVFoundation/AVPlayerItemErrorLogEventInternal.h>\n#import <AVFoundation/AVPlayerItemErrorLogEvent.h>\n#import <AVFoundation/AVKVODispatcher.h>\n#import <AVFoundation/AVObservationBlockFactory.h>\n#import <AVFoundation/AVWeakObservationBlockFactory.h>\n#import <AVFoundation/AVClientBlockKVONotifier.h>\n#import <AVFoundation/AVWeaklyObservedObjectClientBlockKVONotifier.h>\n#import <AVFoundation/AVWeakObservableCallbackCancellationHelper.h>\n#import <AVFoundation/AVKeyPathDependencyManager.h>\n#import <AVFoundation/AVKeyPathDependency.h>\n#import <AVFoundation/AVTwoPartKeyPath.h>\n#import <AVFoundation/AVKeyPathFlattener.h>\n#import <AVFoundation/AVKeyPathFlattenerKVOIntrospectionShim.h>\n#import <AVFoundation/AVCaptureStillImageTransform.h>\n#import <AVFoundation/AVCaptureStillImageOutputUtils.h>\n#import <AVFoundation/AVFrameRateRangeInternal.h>\n#import <AVFoundation/AVFrameRateRange.h>\n#import <AVFoundation/AVMediaSelectionGroupInternal.h>\n#import <AVFoundation/AVMediaSelectionGroup.h>\n#import <AVFoundation/AVAssetMediaSelectionGroup.h>\n#import <AVFoundation/AVMediaSelectionOptionInternal.h>\n#import <AVFoundation/AVMediaSelectionOption.h>\n#import <AVFoundation/AVMediaSelectionTrackOption.h>\n#import <AVFoundation/AVMediaSelectionKeyValueOption.h>\n#import <AVFoundation/AVFigObjectInspector.h>\n#import <AVFoundation/AVFigRoutingContextOutputContextImpl.h>\n#import <AVFoundation/AVFigCommChannelUUIDCommunicationChannelManager.h>\n#import <AVFoundation/AVFigEndpointFigRoutingContextOutputDeviceTranslator.h>\n#import <AVFoundation/AVFigRouteDescriptorFigRoutingContextOutputDeviceTranslator.h>\n#import <AVFoundation/AVFigCommChannelUUIDOutputContextCommunicationChannelImpl.h>\n#import <AVFoundation/AVFigEndpointUIAgentOutputContextManagerImpl.h>\n#import <AVFoundation/AVDepthDataInternal.h>\n#import <AVFoundation/AVDepthData.h>\n#import <AVFoundation/AVAudioMixEffectParameters.h>\n#import <AVFoundation/AVAudioMixSweepFilterEffectParameters.h>\n#import <AVFoundation/AVAudioMixSweepFilterEffectParametersInternal.h>\n#import <AVFoundation/AVOutputDeviceInternal.h>\n#import <AVFoundation/AVOutputDevice.h>\n#import <AVFoundation/AVOutputDeviceFrecencyManager.h>\n#import <AVFoundation/AVOutputDeviceAuthorizedPeerInternal.h>\n#import <AVFoundation/AVOutputDeviceAuthorizedPeer.h>\n#import <AVFoundation/AVPairedDeviceInternal.h>\n#import <AVFoundation/AVPairedDevice.h>\n#import <AVFoundation/AVLocalOutputDeviceImpl.h>\n#import <AVFoundation/AVCaptionPositionInternal.h>\n#import <AVFoundation/AVCaptionPosition.h>\n#import <AVFoundation/AVCaptionLengthInternal.h>\n#import <AVFoundation/AVCaptionLength.h>\n#import <AVFoundation/AVCaptionRegionInternal.h>\n#import <AVFoundation/AVCaptionRegion.h>\n#import <AVFoundation/AVMutableCaptionRegion.h>\n#import <AVFoundation/AVCaptionInternal.h>\n#import <AVFoundation/AVCaption.h>\n#import <AVFoundation/AVMutableCaption.h>\n#import <AVFoundation/AVCaptionRubyInternal.h>\n#import <AVFoundation/AVCaptionRuby.h>\n#import <AVFoundation/AVOutputSettings.h>\n#import <AVFoundation/AVFormatSpecification.h>\n#import <AVFoundation/AVSampleBufferGeneratorInternal.h>\n#import <AVFoundation/AVSampleBufferGenerator.h>\n#import <AVFoundation/AVSampleBufferRequestInternal.h>\n#import <AVFoundation/AVSampleBufferRequest.h>\n#import <AVFoundation/AVWeakReferencingDelegateStorage.h>\n#import <AVFoundation/AVMediaFileType.h>\n#import <AVFoundation/AVMediaFileOutputSettingsValidator.h>\n#import <AVFoundation/AVWAVEOutputSettingsValidator.h>\n#import <AVFoundation/AVAIFFOutputSettingsValidator.h>\n#import <AVFoundation/AVAIFCOutputSettingsValidator.h>\n#import <AVFoundation/AVISOOutputSettingsValidator.h>\n#import <AVFoundation/AVGenericMediaFileOutputSettingsValidator.h>\n#import <AVFoundation/AVOperation.h>\n#import <AVFoundation/AVBlockOperation.h>\n#import <AVFoundation/AVGlobalOperationQueue.h>\n#import <AVFoundation/AVOperationQueueWithFundamentalDependency.h>\n#import <AVFoundation/AVDepartureAnnouncingObjectMonitor.h>\n#import <AVFoundation/AVWaitForNotificationOrDeallocationOperation.h>\n#import <AVFoundation/AVAudioOutputSettings.h>\n#import <AVFoundation/AVAVAudioSettingsAudioOutputSettings.h>\n#import <AVFoundation/AVRouteDetectorInternal.h>\n#import <AVFoundation/AVRouteDetector.h>\n#import <AVFoundation/AVVideoOutputSettings.h>\n#import <AVFoundation/AVPixelBufferAttributesVideoOutputSettings.h>\n#import <AVFoundation/AVAVVideoSettingsVideoOutputSettings.h>\n#import <AVFoundation/AVAudioSettingsValueConstrainer.h>\n#import <AVFoundation/AVFloat64Range.h>\n#import <AVFoundation/AVAggregateAssetDownloadTask.h>\n#import <AVFoundation/AVAssetDownloadSessionInternal.h>\n#import <AVFoundation/AVAssetDownloadSession.h>\n#import <AVFoundation/AVPlayerItemOutputInternal.h>\n#import <AVFoundation/AVPlayerItemOutput.h>\n#import <AVFoundation/AVPlayerItemVideoOutputInternal.h>\n#import <AVFoundation/AVPlayerItemVideoOutput.h>\n#import <AVFoundation/AVFigEndpointPickerOutputContextImpl.h>\n#import <AVFoundation/AVAssetCollectionInternal.h>\n#import <AVFoundation/AVAssetCollection.h>\n#import <AVFoundation/AVPlayerItemMediaDataCollectorInternal.h>\n#import <AVFoundation/AVPlayerItemMediaDataCollector.h>\n#import <AVFoundation/AVAssetCollectionFactory.h>\n#import <AVFoundation/AVSampleBufferDisplayLayerContentLayer.h>\n#import <AVFoundation/AVSampleBufferDisplayLayerInternal.h>\n#import <AVFoundation/AVSampleBufferDisplayLayer.h>\n#import <AVFoundation/AVVideoPerformanceMetricsInternal.h>\n#import <AVFoundation/AVVideoPerformanceMetrics.h>\n#import <AVFoundation/AVAssetCollectionInspector.h>\n#import <AVFoundation/AVAssetCollectionInspectorLoader.h>\n#import <AVFoundation/AVPixelBufferAttributeMediator.h>\n#import <AVFoundation/AVStreamDataAssetTrackInspector.h>\n#import <AVFoundation/AVStreamDataAssetInspector.h>\n#import <AVFoundation/AVStreamDataInspectionOnlyAsset.h>\n#import <AVFoundation/AVStreamDataAsset.h>\n#import <AVFoundation/AVCaptureOutputSettings.h>\n#import <AVFoundation/AVCaptureVideoSettings.h>\n#import <AVFoundation/AVCaptureAudioSettings.h>\n#import <AVFoundation/AVURLAuthenticationChallenge.h>\n#import <AVFoundation/AVAssetResourceLoaderInternal.h>\n#import <AVFoundation/AVAssetResourceLoader.h>\n#import <AVFoundation/AVAssetResourceLoaderURLSessionDataDelegate.h>\n#import <AVFoundation/AVAssetResourceLoaderURLSessionDataDelegateForCustomURLLoader.h>\n#import <AVFoundation/AVAssetResourceLoadingContentInformationRequestInternal.h>\n#import <AVFoundation/AVAssetResourceLoadingContentInformationRequest.h>\n#import <AVFoundation/AVAssetResourceLoadingDataRequestInternal.h>\n#import <AVFoundation/AVAssetResourceLoadingDataRequest.h>\n#import <AVFoundation/AVAssetResourceLoadingRequestInternal.h>\n#import <AVFoundation/AVAssetResourceLoadingRequest.h>\n#import <AVFoundation/AVAssetResourceRenewalRequest.h>\n#import <AVFoundation/AVTextStyleRuleInternal.h>\n#import <AVFoundation/AVTextStyleRule.h>\n#import <AVFoundation/AVAssetAnalysisReporter.h>\n#import <AVFoundation/AVAssetAnalysisMessage.h>\n#import <AVFoundation/AVAssetAnalysisTextParsingMessage.h>\n#import <AVFoundation/AVPlayerMediaSelectionCriteria.h>\n#import <AVFoundation/AVPlayerItemMetadataOutputInternal.h>\n#import <AVFoundation/AVPlayerItemMetadataOutput.h>\n#import <AVFoundation/AVPlayerItemLegibleOutputRealDependencyFactory.h>\n#import <AVFoundation/AVPlayerItemLegibleOutputInternal.h>\n#import <AVFoundation/AVPlayerItemLegibleOutput.h>\n#import <AVFoundation/AVSegmentedMediaClosedCaptionReport.h>\n#import <AVFoundation/AVSegmentedMediaReport.h>\n#import <AVFoundation/AVMediaFileSegmenter.h>\n#import <AVFoundation/AVOutputSettingsAssistantInternal.h>\n#import <AVFoundation/AVOutputSettingsAssistant.h>\n#import <AVFoundation/AVExportSettingsOutputSettingsAssistantBaseSettings.h>\n#import <AVFoundation/AVExportSettingsOutputSettingsAssistantVideoSettingsAdjuster.h>\n#import <AVFoundation/AVIOKitOutputSettingsAssistantVideoEncoderCapabilities.h>\n#import <AVFoundation/AVCustomVideoCompositorSession.h>\n#import <AVFoundation/AVScheduledAudioParametersInternal.h>\n#import <AVFoundation/AVScheduledAudioParameters.h>\n#import <AVFoundation/AVMutableScheduledAudioParameters.h>\n#import <AVFoundation/AVAsynchronousVideoCompositionRequestInternal.h>\n#import <AVFoundation/AVAsynchronousVideoCompositionRequest.h>\n#import <AVFoundation/AVVideoCompositionRenderContextInternal.h>\n#import <AVFoundation/AVVideoCompositionRenderContext.h>\n#import <AVFoundation/AVCaptionGrouper.h>\n#import <AVFoundation/AVCameraCalibrationDataInternal.h>\n#import <AVFoundation/AVCameraCalibrationData.h>\n#import <AVFoundation/AVCaptionOutputSettings.h>\n#import <AVFoundation/AVError.h>\n#import <AVFoundation/AVFAudio.h>\n#import <AVFoundation/AVMediaFormat.h>\n#import <AVFoundation/AVAudioSettings.h>\n#import <AVFoundation/AVAnimation.h>\n#import <AVFoundation/AVVideoSettings.h>\n\nvoid* AVMakeRectWithAspectRatioInsideRect(void);\nvoid* AVMediaSubtypesForAC3(void);\nvoid* AVMediaSubtypesForEnhancedAC3(void);\nvoid* AVMediaTypesForCaptionEditing(void);\nvoid* AVOutputDeviceGetFigRouteDescriptor(void);\nvoid* CGAffineTransformFromNSArray(void);\nvoid* MediaIODeviceConfigureToBestMatchPixelBufferAttributesAndMinimumFrameDuration(void);\nvoid* MediaIOGraphConnectNodeToFanOutNode(void);\nvoid* MediaIOGraphRemoveAllNodes(void);\nvoid* MediaIOGraphUnusedNodeIndexForNodeFunctionalDesignation(void);\nvoid* NSArrayFromCGAffineTransform(void);\nvoid* NSArrayFromRGBAComponents(void);\nvoid* NSArrayGetRGBAComponents(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentMinding.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFragmentMinding\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedAssetInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedAssetInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedAssetMinder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedAssetMinder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedAssetMinderInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedAssetMinderInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedAssetTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedAssetTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedAssetTrackInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedAssetTrackInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedMovie.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedMovie : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedMovieInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedMovieInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedMovieMinder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedMovieMinder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedMovieTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedMovieTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFragmentedMovieTrackInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFragmentedMovieTrackInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFrameRateRange.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFrameRateRange : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVFrameRateRangeInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFrameRateRangeInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVGenericMediaFileOutputSettingsValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVGenericMediaFileOutputSettingsValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVGlobalOperationQueue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVGlobalOperationQueue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVIOKitOutputSettingsAssistantVideoEncoderCapabilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVIOKitOutputSettingsAssistantVideoEncoderCapabilities : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVISOOutputSettingsValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVISOOutputSettingsValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKVODispatcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVKVODispatcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKVOIntrospection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVKVOIntrospection\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKVONotifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVKVONotifier\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKeyPath.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVKeyPath\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKeyPathDependency.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVKeyPathDependency : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKeyPathDependencyHost.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVKeyPathDependencyHost\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKeyPathDependencyManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVKeyPathDependencyManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKeyPathDependencyRegistration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVKeyPathDependencyRegistration\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKeyPathFlattener.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVKeyPathFlattener : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVKeyPathFlattenerKVOIntrospectionShim.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVKeyPathFlattenerKVOIntrospectionShim : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVLazyValueLoadingMetadataItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVLazyValueLoadingMetadataItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVLazyValueLoadingMetadataItemInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVLazyValueLoadingMetadataItemInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVLocalOutputDeviceImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVLocalOutputDeviceImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVManagedAssetCache.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVManagedAssetCache : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVManagedAssetCacheInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVManagedAssetCacheInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaDataRequester.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaDataRequester : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaDataRequesterConsumer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVMediaDataRequesterConsumer\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaDataStorage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaDataStorage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaDataStorageInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaDataStorageInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaFileOutputSettingsValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaFileOutputSettingsValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaFileSegmenter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaFileSegmenter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaFileType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaFileType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaFormat.h",
    "content": "#import <Foundation/Foundation.h>\n\ntypedef NSString *AVMetadataKey;\n\nextern const AVMetadataKey AVMetadataCommonKeyAlbumName;\nextern const AVMetadataKey AVMetadataCommonKeyArtist;\nextern const AVMetadataKey AVMetadataCommonKeyArtwork;\nextern const AVMetadataKey AVMetadataCommonKeyDescription;\nextern const AVMetadataKey AVMetadataCommonKeyTitle;\n\nextern const AVMetadataKey AVMetadataID3MetadataKeyUserURL;\n\ntypedef NSString *AVMediaType;\ntypedef NSString *AVFileType;\n\nextern const AVMediaType AVMediaTypeAudio;\nextern const AVMediaType AVMediaTypeMuxed;\nextern const AVMediaType AVMediaTypeVideo;\n\nextern const AVFileType AVFileTypeMPEG4;\nextern const AVFileType AVFileTypeQuickTimeMovie;\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaSelection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaSelection : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaSelectionGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaSelectionGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaSelectionGroupInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaSelectionGroupInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaSelectionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaSelectionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaSelectionKeyValueOption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaSelectionKeyValueOption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaSelectionOption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaSelectionOption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaSelectionOptionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaSelectionOptionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMediaSelectionTrackOption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMediaSelectionTrackOption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataEnumerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataEnumerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataFaceObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataFaceObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataFaceObjectInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataFaceObjectInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataItemFilter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataItemFilter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataItemFilterForSharing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataItemFilterForSharing : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataItemFilterInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataItemFilterInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataItemInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataItemInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataItemValueRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataItemValueRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataItemValueRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataItemValueRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMetadataObjectInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMetadataObjectInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMovie.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMovie : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMovieInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMovieInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMovieTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMovieTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMovieTrackInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMovieTrackInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableAudioMix.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableAudioMix : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableAudioMixInputParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableAudioMixInputParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableCaption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableCaption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableCaptionRegion.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableCaptionRegion : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableComposition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableComposition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableCompositionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableCompositionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableCompositionTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableCompositionTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableCompositionTrackInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableCompositionTrackInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableDateRangeMetadataGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableDateRangeMetadataGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableMediaSelection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableMediaSelection : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableMetadataItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableMetadataItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableMovie.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableMovie : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableMovieInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableMovieInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableMovieTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableMovieTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableMovieTrackInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableMovieTrackInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableScheduledAudioParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableScheduledAudioParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableTimedMetadataGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableTimedMetadataGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableVideoComposition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableVideoComposition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableVideoCompositionInstruction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableVideoCompositionInstruction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVMutableVideoCompositionLayerInstruction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableVideoCompositionLayerInstruction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVNSURLProtocolRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVNSURLProtocolRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVNetworkPlaybackPerfHUDLayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVNetworkPlaybackPerfHUDLayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVObjectMonitoring.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVObjectMonitoring\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVObservationBlockFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVObservationBlockFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOccasionalTimebaseObserver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOccasionalTimebaseObserver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOnceTimebaseObserver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOnceTimebaseObserver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOperationQueueWithFundamentalDependency.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOperationQueueWithFundamentalDependency : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextCommunicationChannel.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContextCommunicationChannel : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextCommunicationChannelImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputContextCommunicationChannelImpl\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextCommunicationChannelInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContextCommunicationChannelInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextDestinationChange.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContextDestinationChange : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextDestinationChangeInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContextDestinationChangeInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputContextImpl\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContextInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContextManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextManagerImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputContextManagerImpl\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputContextManagerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContextManagerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDevice.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDevice : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceAuthorizationRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceAuthorizationRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceAuthorizationRequestImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceAuthorizationRequestImpl\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceAuthorizationRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceAuthorizationRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceAuthorizationSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceAuthorizationSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceAuthorizationSessionImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceAuthorizationSessionImpl\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceAuthorizationSessionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceAuthorizationSessionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceAuthorizedPeer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceAuthorizedPeer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceAuthorizedPeerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceAuthorizedPeerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceConfigurationModification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceConfigurationModification\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceConfigurationRetrieval.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceConfigurationRetrieval\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceDiscoverySession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceDiscoverySession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceDiscoverySessionAvailableOutputDevices.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceDiscoverySessionAvailableOutputDevices : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceDiscoverySessionAvailableOutputDevicesImpl\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceDiscoverySessionAvailableOutputDevicesInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceDiscoverySessionAvailableOutputDevicesInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceDiscoverySessionFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceDiscoverySessionFactory\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceDiscoverySessionImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceDiscoverySessionImpl\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceDiscoverySessionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceDiscoverySessionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceFrecencyManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceFrecencyManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceImpl\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputDeviceInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputSettingsAssistant.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputSettingsAssistant : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputSettingsAssistantBaseSettingsProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputSettingsAssistantBaseSettingsProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputSettingsAssistantInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputSettingsAssistantInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputSettingsAssistantVideoEncoderCapabilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputSettingsAssistantVideoEncoderCapabilities\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputSettingsAssistantVideoSettingsAdjuster.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputSettingsAssistantVideoSettingsAdjuster\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVOutputSettingsValidation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputSettingsValidation\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPairedDevice.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPairedDevice : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPairedDeviceInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPairedDeviceInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPeriodicTimebaseObserver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPeriodicTimebaseObserver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPersistableContentKeyRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPersistableContentKeyRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPixelBufferAttributeMediator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPixelBufferAttributeMediator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPixelBufferAttributesVideoOutputSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPixelBufferAttributesVideoOutputSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlaybackItemInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlaybackItemInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlaybackItemInspectorLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlaybackItemInspectorLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlaybackItemTrackInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlaybackItemTrackInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerConnection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerConnection : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\nextern NSString *const AVPlayerItemDidPlayToEndTimeNotification;\n\n@interface AVPlayerItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemAccessLog.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemAccessLog : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemAccessLogEvent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemAccessLogEvent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemAccessLogEventInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemAccessLogEventInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemAccessLogInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemAccessLogInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemErrorLog.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemErrorLog : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemErrorLogEvent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemErrorLogEvent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemErrorLogEventInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemErrorLogEventInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemErrorLogInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemErrorLogInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemLegibleOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemLegibleOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemLegibleOutputDependencyFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVPlayerItemLegibleOutputDependencyFactory\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemLegibleOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemLegibleOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemLegibleOutputRealDependencyFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemLegibleOutputRealDependencyFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemMediaDataCollector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemMediaDataCollector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemMediaDataCollectorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemMediaDataCollectorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemMetadataCollector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemMetadataCollector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemMetadataCollectorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemMetadataCollectorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemMetadataOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemMetadataOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemMetadataOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemMetadataOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemTrackInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemTrackInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemVideoOutput.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemVideoOutput : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerItemVideoOutputInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerItemVideoOutputInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerLayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerLayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerLayerIntermediateLayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerLayerIntermediateLayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerLayerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerLayerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerLooper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerLooper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerLooperInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerLooperInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerMediaSelectionCriteria.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerMediaSelectionCriteria : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPlayerQueueModificationDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerQueueModificationDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVPropertyStorage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPropertyStorage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVQueuePlayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVQueuePlayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVQueuePlayerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVQueuePlayerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVQueuedSampleBufferRendering.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVQueuedSampleBufferRendering\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVQueuedSampleBufferRenderingInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVQueuedSampleBufferRenderingInternal\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVReencodedAudioSettingsForFig.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVReencodedAudioSettingsForFig\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVReencodedVideoSettingsForFig.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVReencodedVideoSettingsForFig\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVRemoteFigRoutingContextFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRemoteFigRoutingContextFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVResolvedDecompressionSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVResolvedDecompressionSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVRetainReleaseWeakReference.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRetainReleaseWeakReference : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVRouteConfigUpdatedFigRoutingContextRouteChangeOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRouteConfigUpdatedFigRoutingContextRouteChangeOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVRouteDetector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRouteDetector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVRouteDetectorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRouteDetectorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVRunLoopCondition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRunLoopCondition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVRunLoopConditionRunLoopState.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRunLoopConditionRunLoopState : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferAudioRenderer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferAudioRenderer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferAudioRendererInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferAudioRendererInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferDisplayLayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferDisplayLayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferDisplayLayerContentLayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferDisplayLayerContentLayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferDisplayLayerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferDisplayLayerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferGeneratorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferGeneratorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferRenderSynchronizer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferRenderSynchronizer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferRenderSynchronizerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferRenderSynchronizerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleBufferRequestInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleBufferRequestInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleCursor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleCursor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSampleCursorInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSampleCursorInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVScheduledAudioParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScheduledAudioParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVScheduledAudioParametersInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScheduledAudioParametersInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSegmentedMediaClosedCaptionReport.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSegmentedMediaClosedCaptionReport : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSegmentedMediaReport.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSegmentedMediaReport : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamDataAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamDataAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamDataAssetInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamDataAssetInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamDataAssetTrackInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamDataAssetTrackInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamDataInspectionOnlyAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamDataInspectionOnlyAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamDataParser.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamDataParser : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamDataParserInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamDataParserInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamSessionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamSessionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVStreamingResourceInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStreamingResourceInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSynchronizedLayer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSynchronizedLayer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVSynchronizedLayerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSynchronizedLayerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTextStyleRule.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTextStyleRule : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTextStyleRuleInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTextStyleRuleInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTimeFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTimeFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTimeFormatterInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTimeFormatterInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTimebaseObserver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTimebaseObserver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTimedMetadataGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTimedMetadataGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTimedMetadataGroupInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTimedMetadataGroupInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTrackReaderInspector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrackReaderInspector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVTwoPartKeyPath.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTwoPartKeyPath : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVURLAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVURLAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVURLAssetInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVURLAssetInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVURLAuthenticationChallenge.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVURLAuthenticationChallenge : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVUnreachableAssetInspectorLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVUnreachableAssetInspectorLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVVideoCompositing\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoComposition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoComposition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionCoreAnimationTool.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionCoreAnimationTool : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionCoreAnimationToolInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionCoreAnimationToolInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionInstruction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionInstruction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionInstructionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionInstructionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionLayerInstruction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionLayerInstruction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionLayerInstructionInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionLayerInstructionInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionRenderContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionRenderContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoCompositionRenderContextInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoCompositionRenderContextInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoOutputSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoOutputSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoPerformanceMetrics.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoPerformanceMetrics : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoPerformanceMetricsInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoPerformanceMetricsInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVVideoSettings.h",
    "content": "#import <Foundation/Foundation.h>\n\nextern NSString *const AVVideoAverageBitRateKey;\nextern NSString *const AVVideoCodecAppleProRes422;\nextern NSString *const AVVideoCodecAppleProRes4444;\nextern NSString *const AVVideoCodecH264;\nextern NSString *const AVVideoCodecHEVC;\nextern NSString *const AVVideoCodecJPEG;\nextern NSString *const AVVideoCodecKey;\nextern NSString *const AVVideoCompressionPropertiesKey;\nextern NSString *const AVVideoHeightKey;\nextern NSString *const AVVideoWidthKey;\n\nextern NSString *const AVVideoScalingModeKey;\nextern NSString *const AVVideoScalingModeResizeAspectFill;\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWAVEOutputSettingsValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWAVEOutputSettingsValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWaitForNotificationOrDeallocationOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWaitForNotificationOrDeallocationOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWeakObservable.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVWeakObservable\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWeakObservableCallbackCancellationHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWeakObservableCallbackCancellationHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWeakObservationBlockFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWeakObservationBlockFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWeakReference.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWeakReference : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWeakReferencingDelegateStorage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWeakReferencingDelegateStorage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWeaklyObservedObjectClientBlockKVONotifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWeaklyObservedObjectClientBlockKVONotifier : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/AVWorkaroundNSBlockOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWorkaroundNSBlockOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/CMTimeAsValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CMTimeAsValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/CMTimeMappingAsValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CMTimeMappingAsValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/CMTimeRangeAsValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CMTimeRangeAsValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/MediaIOGraphNodeDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface MediaIOGraphNodeDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/include/AVFoundation/MediaIOGraphNodeList.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface MediaIOGraphNodeList : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAIFCOutputSettingsValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAIFCOutputSettingsValidator.h>\n\n@implementation AVAIFCOutputSettingsValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAIFFOutputSettingsValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAIFFOutputSettingsValidator.h>\n\n@implementation AVAIFFOutputSettingsValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAVAudioSettingsAudioOutputSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAVAudioSettingsAudioOutputSettings.h>\n\n@implementation AVAVAudioSettingsAudioOutputSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAVVideoSettingsVideoOutputSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAVVideoSettingsVideoOutputSettings.h>\n\n@implementation AVAVVideoSettingsVideoOutputSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAggregateAssetDownloadTask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAggregateAssetDownloadTask.h>\n\n@implementation AVAggregateAssetDownloadTask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAsset.h>\n\n@implementation AVAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetAnalysisMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetAnalysisMessage.h>\n\n@implementation AVAssetAnalysisMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetAnalysisReporter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetAnalysisReporter.h>\n\n@implementation AVAssetAnalysisReporter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetAnalysisTextParsingMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetAnalysisTextParsingMessage.h>\n\n@implementation AVAssetAnalysisTextParsingMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCache.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCache.h>\n\n@implementation AVAssetCache\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetClientURLRequestHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetClientURLRequestHelper.h>\n\n@implementation AVAssetClientURLRequestHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCollection.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCollection.h>\n\n@implementation AVAssetCollection\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCollectionFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCollectionFactory.h>\n\n@implementation AVAssetCollectionFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCollectionInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCollectionInspector.h>\n\n@implementation AVAssetCollectionInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCollectionInspectorLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCollectionInspectorLoader.h>\n\n@implementation AVAssetCollectionInspectorLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCollectionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCollectionInternal.h>\n\n@implementation AVAssetCollectionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCustomURLBridgeForNSURLProtocol.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCustomURLBridgeForNSURLProtocol.h>\n\n@implementation AVAssetCustomURLBridgeForNSURLProtocol\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCustomURLBridgeForNSURLSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCustomURLBridgeForNSURLSession.h>\n\n@implementation AVAssetCustomURLBridgeForNSURLSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetCustomURLRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetCustomURLRequest.h>\n\n@implementation AVAssetCustomURLRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetDownloadCache.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetDownloadCache.h>\n\n@implementation AVAssetDownloadCache\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetDownloadCacheInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetDownloadCacheInternal.h>\n\n@implementation AVAssetDownloadCacheInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetDownloadSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetDownloadSession.h>\n\n@implementation AVAssetDownloadSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetDownloadSessionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetDownloadSessionInternal.h>\n\n@implementation AVAssetDownloadSessionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetExportSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetExportSession.h>\n\n@implementation AVAssetExportSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetExportSessionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetExportSessionInternal.h>\n\n@implementation AVAssetExportSessionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetImageGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetImageGenerator.h>\n\n@implementation AVAssetImageGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetImageGeneratorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetImageGeneratorInternal.h>\n\n@implementation AVAssetImageGeneratorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetInspector.h>\n\n@implementation AVAssetInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetInspectorLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetInspectorLoader.h>\n\n@implementation AVAssetInspectorLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetInternal.h>\n\n@implementation AVAssetInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetMakeReadyForInspectionLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetMakeReadyForInspectionLoader.h>\n\n@implementation AVAssetMakeReadyForInspectionLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetMediaSelectionGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetMediaSelectionGroup.h>\n\n@implementation AVAssetMediaSelectionGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetProxy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetProxy.h>\n\n@implementation AVAssetProxy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetProxyInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetProxyInternal.h>\n\n@implementation AVAssetProxyInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReader.h>\n\n@implementation AVAssetReader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderAudioMixOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderAudioMixOutput.h>\n\n@implementation AVAssetReaderAudioMixOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderAudioMixOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderAudioMixOutputInternal.h>\n\n@implementation AVAssetReaderAudioMixOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderInternal.h>\n\n@implementation AVAssetReaderInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderOutput.h>\n\n@implementation AVAssetReaderOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderOutputCaptionAdaptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderOutputCaptionAdaptor.h>\n\n@implementation AVAssetReaderOutputCaptionAdaptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderOutputCaptionAdaptorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderOutputCaptionAdaptorInternal.h>\n\n@implementation AVAssetReaderOutputCaptionAdaptorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderOutputInternal.h>\n\n@implementation AVAssetReaderOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderOutputMetadataAdaptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderOutputMetadataAdaptor.h>\n\n@implementation AVAssetReaderOutputMetadataAdaptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderOutputMetadataAdaptorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderOutputMetadataAdaptorInternal.h>\n\n@implementation AVAssetReaderOutputMetadataAdaptorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderSampleReferenceOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderSampleReferenceOutput.h>\n\n@implementation AVAssetReaderSampleReferenceOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderSampleReferenceOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderSampleReferenceOutputInternal.h>\n\n@implementation AVAssetReaderSampleReferenceOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderTrackOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderTrackOutput.h>\n\n@implementation AVAssetReaderTrackOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderTrackOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderTrackOutputInternal.h>\n\n@implementation AVAssetReaderTrackOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderVideoCompositionOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderVideoCompositionOutput.h>\n\n@implementation AVAssetReaderVideoCompositionOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetReaderVideoCompositionOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetReaderVideoCompositionOutputInternal.h>\n\n@implementation AVAssetReaderVideoCompositionOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoader.h>\n\n@implementation AVAssetResourceLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoaderInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoaderInternal.h>\n\n@implementation AVAssetResourceLoaderInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoaderURLSessionDataDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoaderURLSessionDataDelegate.h>\n\n@implementation AVAssetResourceLoaderURLSessionDataDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoaderURLSessionDataDelegateForCustomURLLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoaderURLSessionDataDelegateForCustomURLLoader.h>\n\n@implementation AVAssetResourceLoaderURLSessionDataDelegateForCustomURLLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoadingContentInformationRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoadingContentInformationRequest.h>\n\n@implementation AVAssetResourceLoadingContentInformationRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoadingContentInformationRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoadingContentInformationRequestInternal.h>\n\n@implementation AVAssetResourceLoadingContentInformationRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoadingDataRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoadingDataRequest.h>\n\n@implementation AVAssetResourceLoadingDataRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoadingDataRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoadingDataRequestInternal.h>\n\n@implementation AVAssetResourceLoadingDataRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoadingRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoadingRequest.h>\n\n@implementation AVAssetResourceLoadingRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceLoadingRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceLoadingRequestInternal.h>\n\n@implementation AVAssetResourceLoadingRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetResourceRenewalRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetResourceRenewalRequest.h>\n\n@implementation AVAssetResourceRenewalRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetSynchronousInspectorLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetSynchronousInspectorLoader.h>\n\n@implementation AVAssetSynchronousInspectorLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetTrack.h>\n\n@implementation AVAssetTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetTrackEnumerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetTrackEnumerator.h>\n\n@implementation AVAssetTrackEnumerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetTrackGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetTrackGroup.h>\n\n@implementation AVAssetTrackGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetTrackGroupInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetTrackGroupInternal.h>\n\n@implementation AVAssetTrackGroupInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetTrackInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetTrackInspector.h>\n\n@implementation AVAssetTrackInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetTrackInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetTrackInternal.h>\n\n@implementation AVAssetTrackInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetTrackSegment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetTrackSegment.h>\n\n@implementation AVAssetTrackSegment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriter.h>\n\n@implementation AVAssetWriter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterClientInitiatedTerminalHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterClientInitiatedTerminalHelper.h>\n\n@implementation AVAssetWriterClientInitiatedTerminalHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterConfigurationState.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterConfigurationState.h>\n\n@implementation AVAssetWriterConfigurationState\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterFailedTerminalHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterFailedTerminalHelper.h>\n\n@implementation AVAssetWriterFailedTerminalHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterFigAssetWriterNotificationHandler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterFigAssetWriterNotificationHandler.h>\n\n@implementation AVAssetWriterFigAssetWriterNotificationHandler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterFinishWritingHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterFinishWritingHelper.h>\n\n@implementation AVAssetWriterFinishWritingHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterHelper.h>\n\n@implementation AVAssetWriterHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInput.h>\n\n@implementation AVAssetWriterInput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputCaptionAdaptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputCaptionAdaptor.h>\n\n@implementation AVAssetWriterInputCaptionAdaptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputCaptionAdaptorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputCaptionAdaptorInternal.h>\n\n@implementation AVAssetWriterInputCaptionAdaptorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputConfigurationState.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputConfigurationState.h>\n\n@implementation AVAssetWriterInputConfigurationState\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputFigAssetWriterEndPassOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputFigAssetWriterEndPassOperation.h>\n\n@implementation AVAssetWriterInputFigAssetWriterEndPassOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputGroup.h>\n\n@implementation AVAssetWriterInputGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputGroupInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputGroupInternal.h>\n\n@implementation AVAssetWriterInputGroupInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputHelper.h>\n\n@implementation AVAssetWriterInputHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputInterPassAnalysisHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputInterPassAnalysisHelper.h>\n\n@implementation AVAssetWriterInputInterPassAnalysisHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputInternal.h>\n\n@implementation AVAssetWriterInputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputMediaDataRequester.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputMediaDataRequester.h>\n\n@implementation AVAssetWriterInputMediaDataRequester\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputMetadataAdaptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputMetadataAdaptor.h>\n\n@implementation AVAssetWriterInputMetadataAdaptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputMetadataAdaptorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputMetadataAdaptorInternal.h>\n\n@implementation AVAssetWriterInputMetadataAdaptorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputNoMorePassesHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputNoMorePassesHelper.h>\n\n@implementation AVAssetWriterInputNoMorePassesHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputPassDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputPassDescription.h>\n\n@implementation AVAssetWriterInputPassDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputPassDescriptionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputPassDescriptionInternal.h>\n\n@implementation AVAssetWriterInputPassDescriptionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputPassDescriptionResponder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputPassDescriptionResponder.h>\n\n@implementation AVAssetWriterInputPassDescriptionResponder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputPixelBufferAdaptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputPixelBufferAdaptor.h>\n\n@implementation AVAssetWriterInputPixelBufferAdaptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputPixelBufferAdaptorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputPixelBufferAdaptorInternal.h>\n\n@implementation AVAssetWriterInputPixelBufferAdaptorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputSelectionOption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputSelectionOption.h>\n\n@implementation AVAssetWriterInputSelectionOption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputTerminalHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputTerminalHelper.h>\n\n@implementation AVAssetWriterInputTerminalHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputUnknownHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputUnknownHelper.h>\n\n@implementation AVAssetWriterInputUnknownHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInputWritingHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInputWritingHelper.h>\n\n@implementation AVAssetWriterInputWritingHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterInternal.h>\n\n@implementation AVAssetWriterInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterTerminalHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterTerminalHelper.h>\n\n@implementation AVAssetWriterTerminalHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterUnknownHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterUnknownHelper.h>\n\n@implementation AVAssetWriterUnknownHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAssetWriterWritingHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAssetWriterWritingHelper.h>\n\n@implementation AVAssetWriterWritingHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAsynchronousCIImageFilteringRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAsynchronousCIImageFilteringRequest.h>\n\n@implementation AVAsynchronousCIImageFilteringRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAsynchronousCIImageFilteringRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAsynchronousCIImageFilteringRequestInternal.h>\n\n@implementation AVAsynchronousCIImageFilteringRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAsynchronousVideoCompositionRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAsynchronousVideoCompositionRequest.h>\n\n@implementation AVAsynchronousVideoCompositionRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAsynchronousVideoCompositionRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAsynchronousVideoCompositionRequestInternal.h>\n\n@implementation AVAsynchronousVideoCompositionRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioMix.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioMix.h>\n\n@implementation AVAudioMix\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioMixEffectParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioMixEffectParameters.h>\n\n@implementation AVAudioMixEffectParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioMixInputParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioMixInputParameters.h>\n\n@implementation AVAudioMixInputParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioMixInputParametersInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioMixInputParametersInternal.h>\n\n@implementation AVAudioMixInputParametersInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioMixInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioMixInternal.h>\n\n@implementation AVAudioMixInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioMixSweepFilterEffectParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioMixSweepFilterEffectParameters.h>\n\n@implementation AVAudioMixSweepFilterEffectParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioMixSweepFilterEffectParametersInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioMixSweepFilterEffectParametersInternal.h>\n\n@implementation AVAudioMixSweepFilterEffectParametersInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioOutputSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioOutputSettings.h>\n\n@implementation AVAudioOutputSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVAudioSettingsValueConstrainer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVAudioSettingsValueConstrainer.h>\n\n@implementation AVAudioSettingsValueConstrainer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVBlockOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVBlockOperation.h>\n\n@implementation AVBlockOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCMNotificationDispatcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCMNotificationDispatcher.h>\n\n@implementation AVCMNotificationDispatcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCMNotificationDispatcherListenerAndCallback.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCMNotificationDispatcherListenerAndCallback.h>\n\n@implementation AVCMNotificationDispatcherListenerAndCallback\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCMNotificationDispatcherListenerKey.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCMNotificationDispatcherListenerKey.h>\n\n@implementation AVCMNotificationDispatcherListenerKey\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCallbackContextRegistry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCallbackContextRegistry.h>\n\n@implementation AVCallbackContextRegistry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCameraCalibrationData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCameraCalibrationData.h>\n\n@implementation AVCameraCalibrationData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCameraCalibrationDataInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCameraCalibrationDataInternal.h>\n\n@implementation AVCameraCalibrationDataInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaption.h>\n\n@implementation AVCaption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionConversionAdjustment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionConversionAdjustment.h>\n\n@implementation AVCaptionConversionAdjustment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionConversionTimeRangeAdjustment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionConversionTimeRangeAdjustment.h>\n\n@implementation AVCaptionConversionTimeRangeAdjustment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionConversionValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionConversionValidator.h>\n\n@implementation AVCaptionConversionValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionConversionWarning.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionConversionWarning.h>\n\n@implementation AVCaptionConversionWarning\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionFormatConformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionFormatConformer.h>\n\n@implementation AVCaptionFormatConformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionGroup.h>\n\n@implementation AVCaptionGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionGroupInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionGroupInternal.h>\n\n@implementation AVCaptionGroupInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionGrouper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionGrouper.h>\n\n@implementation AVCaptionGrouper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionInternal.h>\n\n@implementation AVCaptionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionLength.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionLength.h>\n\n@implementation AVCaptionLength\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionLengthInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionLengthInternal.h>\n\n@implementation AVCaptionLengthInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionOutputSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionOutputSettings.h>\n\n@implementation AVCaptionOutputSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionPosition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionPosition.h>\n\n@implementation AVCaptionPosition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionPositionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionPositionInternal.h>\n\n@implementation AVCaptionPositionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionRegion.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionRegion.h>\n\n@implementation AVCaptionRegion\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionRegionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionRegionInternal.h>\n\n@implementation AVCaptionRegionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionRenderer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionRenderer.h>\n\n@implementation AVCaptionRenderer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionRendererInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionRendererInternal.h>\n\n@implementation AVCaptionRendererInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionRendererScene.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionRendererScene.h>\n\n@implementation AVCaptionRendererScene\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionRendererSceneInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionRendererSceneInternal.h>\n\n@implementation AVCaptionRendererSceneInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionRuby.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionRuby.h>\n\n@implementation AVCaptionRuby\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptionRubyInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptionRubyInternal.h>\n\n@implementation AVCaptionRubyInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioChannel.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioChannel.h>\n\n@implementation AVCaptureAudioChannel\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioChannelInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioChannelInternal.h>\n\n@implementation AVCaptureAudioChannelInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioDataOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioDataOutput.h>\n\n@implementation AVCaptureAudioDataOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioDataOutputCallbackData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioDataOutputCallbackData.h>\n\n@implementation AVCaptureAudioDataOutputCallbackData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioDataOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioDataOutputInternal.h>\n\n@implementation AVCaptureAudioDataOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioFileOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioFileOutput.h>\n\n@implementation AVCaptureAudioFileOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioFileOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioFileOutputInternal.h>\n\n@implementation AVCaptureAudioFileOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioPreviewOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioPreviewOutput.h>\n\n@implementation AVCaptureAudioPreviewOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioPreviewOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioPreviewOutputInternal.h>\n\n@implementation AVCaptureAudioPreviewOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureAudioSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureAudioSettings.h>\n\n@implementation AVCaptureAudioSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureConnection.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureConnection.h>\n\n@implementation AVCaptureConnection\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureConnectionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureConnectionInternal.h>\n\n@implementation AVCaptureConnectionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDALDevice.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDALDevice.h>\n\n@implementation AVCaptureDALDevice\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDevice.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDevice.h>\n\n@implementation AVCaptureDevice\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDeviceFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDeviceFormat.h>\n\n@implementation AVCaptureDeviceFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDeviceFormatInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDeviceFormatInternal.h>\n\n@implementation AVCaptureDeviceFormatInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDeviceInput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDeviceInput.h>\n\n@implementation AVCaptureDeviceInput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDeviceInputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDeviceInputInternal.h>\n\n@implementation AVCaptureDeviceInputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDeviceInputSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDeviceInputSource.h>\n\n@implementation AVCaptureDeviceInputSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDeviceInputSourceInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDeviceInputSourceInternal.h>\n\n@implementation AVCaptureDeviceInputSourceInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureDeviceInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureDeviceInternal.h>\n\n@implementation AVCaptureDeviceInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureFileOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureFileOutput.h>\n\n@implementation AVCaptureFileOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureFileOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureFileOutputInternal.h>\n\n@implementation AVCaptureFileOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureFileOutputPauseOperationDescriptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureFileOutputPauseOperationDescriptor.h>\n\n@implementation AVCaptureFileOutputPauseOperationDescriptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureFileOutputRecordingOperationDescriptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureFileOutputRecordingOperationDescriptor.h>\n\n@implementation AVCaptureFileOutputRecordingOperationDescriptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureHALDevice.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureHALDevice.h>\n\n@implementation AVCaptureHALDevice\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureInput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureInput.h>\n\n@implementation AVCaptureInput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureInputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureInputInternal.h>\n\n@implementation AVCaptureInputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureInputPort.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureInputPort.h>\n\n@implementation AVCaptureInputPort\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureInputPortInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureInputPortInternal.h>\n\n@implementation AVCaptureInputPortInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureMovieFileOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureMovieFileOutput.h>\n\n@implementation AVCaptureMovieFileOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureMovieFileOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureMovieFileOutputInternal.h>\n\n@implementation AVCaptureMovieFileOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureOperationDescriptorQueue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureOperationDescriptorQueue.h>\n\n@implementation AVCaptureOperationDescriptorQueue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureOperationDescriptorQueueItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureOperationDescriptorQueueItem.h>\n\n@implementation AVCaptureOperationDescriptorQueueItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureOutput.h>\n\n@implementation AVCaptureOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureOutputInternal.h>\n\n@implementation AVCaptureOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureOutputSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureOutputSettings.h>\n\n@implementation AVCaptureOutputSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureScreenInput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureScreenInput.h>\n\n@implementation AVCaptureScreenInput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureScreenInputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureScreenInputInternal.h>\n\n@implementation AVCaptureScreenInputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureSession.h>\n\n@implementation AVCaptureSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureSessionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureSessionInternal.h>\n\n@implementation AVCaptureSessionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureSessionInternalState.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureSessionInternalState.h>\n\n@implementation AVCaptureSessionInternalState\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureStillImageOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureStillImageOutput.h>\n\n@implementation AVCaptureStillImageOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureStillImageOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureStillImageOutputInternal.h>\n\n@implementation AVCaptureStillImageOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureStillImageOutputUtils.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureStillImageOutputUtils.h>\n\n@implementation AVCaptureStillImageOutputUtils\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureStillImageRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureStillImageRequest.h>\n\n@implementation AVCaptureStillImageRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureStillImageTransform.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureStillImageTransform.h>\n\n@implementation AVCaptureStillImageTransform\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureVideoDataOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureVideoDataOutput.h>\n\n@implementation AVCaptureVideoDataOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureVideoDataOutputCallbackData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureVideoDataOutputCallbackData.h>\n\n@implementation AVCaptureVideoDataOutputCallbackData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureVideoDataOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureVideoDataOutputInternal.h>\n\n@implementation AVCaptureVideoDataOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureVideoPreviewLayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureVideoPreviewLayer.h>\n\n@implementation AVCaptureVideoPreviewLayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureVideoPreviewLayerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureVideoPreviewLayerInternal.h>\n\n@implementation AVCaptureVideoPreviewLayerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCaptureVideoSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCaptureVideoSettings.h>\n\n@implementation AVCaptureVideoSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVChapterMetadataItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVChapterMetadataItem.h>\n\n@implementation AVChapterMetadataItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVChapterMetadataItemInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVChapterMetadataItemInternal.h>\n\n@implementation AVChapterMetadataItemInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVClientBlockKVONotifier.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVClientBlockKVONotifier.h>\n\n@implementation AVClientBlockKVONotifier\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVComposition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVComposition.h>\n\n@implementation AVComposition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCompositionFormatReaderInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCompositionFormatReaderInspector.h>\n\n@implementation AVCompositionFormatReaderInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCompositionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCompositionInternal.h>\n\n@implementation AVCompositionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCompositionTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCompositionTrack.h>\n\n@implementation AVCompositionTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCompositionTrackInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCompositionTrackInternal.h>\n\n@implementation AVCompositionTrackInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCompositionTrackReaderInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCompositionTrackReaderInspector.h>\n\n@implementation AVCompositionTrackReaderInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCompositionTrackSegment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCompositionTrackSegment.h>\n\n@implementation AVCompositionTrackSegment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCompositionTrackSegmentInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCompositionTrackSegmentInternal.h>\n\n@implementation AVCompositionTrackSegmentInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVContentKeyRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVContentKeyRequest.h>\n\n@implementation AVContentKeyRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVContentKeyRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVContentKeyRequestInternal.h>\n\n@implementation AVContentKeyRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVContentKeyResponse.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVContentKeyResponse.h>\n\n@implementation AVContentKeyResponse\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVContentKeyResponseClearKey.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVContentKeyResponseClearKey.h>\n\n@implementation AVContentKeyResponseClearKey\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVContentKeyResponseFairPlayStreaming.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVContentKeyResponseFairPlayStreaming.h>\n\n@implementation AVContentKeyResponseFairPlayStreaming\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVContentKeyResponseInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVContentKeyResponseInternal.h>\n\n@implementation AVContentKeyResponseInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVContentKeySession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVContentKeySession.h>\n\n@implementation AVContentKeySession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVContentKeySessionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVContentKeySessionInternal.h>\n\n@implementation AVContentKeySessionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCoreImageFilterCustomVideoCompositor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCoreImageFilterCustomVideoCompositor.h>\n\n@implementation AVCoreImageFilterCustomVideoCompositor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCoreImageFilterVideoCompositionInstruction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCoreImageFilterVideoCompositionInstruction.h>\n\n@implementation AVCoreImageFilterVideoCompositionInstruction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVCustomVideoCompositorSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVCustomVideoCompositorSession.h>\n\n@implementation AVCustomVideoCompositorSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDataAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDataAsset.h>\n\n@implementation AVDataAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDataDelegateAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDataDelegateAsset.h>\n\n@implementation AVDataDelegateAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDataDelegateAssetInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDataDelegateAssetInternal.h>\n\n@implementation AVDataDelegateAssetInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDateRangeMetadataGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDateRangeMetadataGroup.h>\n\n@implementation AVDateRangeMetadataGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDateRangeMetadataGroupInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDateRangeMetadataGroupInternal.h>\n\n@implementation AVDateRangeMetadataGroupInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDepartureAnnouncingObjectMonitor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDepartureAnnouncingObjectMonitor.h>\n\n@implementation AVDepartureAnnouncingObjectMonitor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDepthData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDepthData.h>\n\n@implementation AVDepthData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDepthDataInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDepthDataInternal.h>\n\n@implementation AVDepthDataInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVDispatchGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVDispatchGroup.h>\n\n@implementation AVDispatchGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVEmptyOutputDeviceDiscoverySessionAvailableOutputDevices.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVEmptyOutputDeviceDiscoverySessionAvailableOutputDevices.h>\n\n@implementation AVEmptyOutputDeviceDiscoverySessionAvailableOutputDevices\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVEventWaiter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVEventWaiter.h>\n\n@implementation AVEventWaiter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVExecutionEnvironment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVExecutionEnvironment.h>\n\n@implementation AVExecutionEnvironment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVExportSettingsOutputSettingsAssistantBaseSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVExportSettingsOutputSettingsAssistantBaseSettings.h>\n\n@implementation AVExportSettingsOutputSettingsAssistantBaseSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVExportSettingsOutputSettingsAssistantVideoSettingsAdjuster.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVExportSettingsOutputSettingsAssistantVideoSettingsAdjuster.h>\n\n@implementation AVExportSettingsOutputSettingsAssistantVideoSettingsAdjuster\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetInspector.h>\n\n@implementation AVFigAssetInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetInspectorLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetInspectorLoader.h>\n\n@implementation AVFigAssetInspectorLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetTrackInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetTrackInspector.h>\n\n@implementation AVFigAssetTrackInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetWriterAudioTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetWriterAudioTrack.h>\n\n@implementation AVFigAssetWriterAudioTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetWriterCaptionTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetWriterCaptionTrack.h>\n\n@implementation AVFigAssetWriterCaptionTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetWriterFinishWritingAsyncOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetWriterFinishWritingAsyncOperation.h>\n\n@implementation AVFigAssetWriterFinishWritingAsyncOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetWriterGenericTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetWriterGenericTrack.h>\n\n@implementation AVFigAssetWriterGenericTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetWriterTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetWriterTrack.h>\n\n@implementation AVFigAssetWriterTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigAssetWriterVideoTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigAssetWriterVideoTrack.h>\n\n@implementation AVFigAssetWriterVideoTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigCommChannelUUIDCommunicationChannelManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigCommChannelUUIDCommunicationChannelManager.h>\n\n@implementation AVFigCommChannelUUIDCommunicationChannelManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigCommChannelUUIDOutputContextCommunicationChannelImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigCommChannelUUIDOutputContextCommunicationChannelImpl.h>\n\n@implementation AVFigCommChannelUUIDOutputContextCommunicationChannelImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointFigRoutingContextOutputDeviceTranslator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointFigRoutingContextOutputDeviceTranslator.h>\n\n@implementation AVFigEndpointFigRoutingContextOutputDeviceTranslator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.h>\n\n@implementation AVFigEndpointOutputDeviceDiscoverySessionAvailableOutputDevicesImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointOutputDeviceImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointOutputDeviceImpl.h>\n\n@implementation AVFigEndpointOutputDeviceImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointPickerOutputContextImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointPickerOutputContextImpl.h>\n\n@implementation AVFigEndpointPickerOutputContextImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointPickerOutputDeviceDiscoverySessionFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointPickerOutputDeviceDiscoverySessionFactory.h>\n\n@implementation AVFigEndpointPickerOutputDeviceDiscoverySessionFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointPickerOutputDeviceDiscoverySessionImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointPickerOutputDeviceDiscoverySessionImpl.h>\n\n@implementation AVFigEndpointPickerOutputDeviceDiscoverySessionImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointUIAgentOutputContextManagerImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointUIAgentOutputContextManagerImpl.h>\n\n@implementation AVFigEndpointUIAgentOutputContextManagerImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointUIAgentOutputDeviceAuthorizationRequestImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointUIAgentOutputDeviceAuthorizationRequestImpl.h>\n\n@implementation AVFigEndpointUIAgentOutputDeviceAuthorizationRequestImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigEndpointUIAgentOutputDeviceAuthorizationSessionImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigEndpointUIAgentOutputDeviceAuthorizationSessionImpl.h>\n\n@implementation AVFigEndpointUIAgentOutputDeviceAuthorizationSessionImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigObjectInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigObjectInspector.h>\n\n@implementation AVFigObjectInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRemoteRouteDiscovererFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRemoteRouteDiscovererFactory.h>\n\n@implementation AVFigRemoteRouteDiscovererFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRouteDescriptorFigRoutingContextOutputDeviceTranslator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRouteDescriptorFigRoutingContextOutputDeviceTranslator.h>\n\n@implementation AVFigRouteDescriptorFigRoutingContextOutputDeviceTranslator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRouteDescriptorOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRouteDescriptorOutputDeviceDiscoverySessionAvailableOutputDevicesImpl.h>\n\n@implementation AVFigRouteDescriptorOutputDeviceDiscoverySessionAvailableOutputDevicesImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRouteDescriptorOutputDeviceImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRouteDescriptorOutputDeviceImpl.h>\n\n@implementation AVFigRouteDescriptorOutputDeviceImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRouteDiscovererOutputDeviceDiscoverySessionFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRouteDiscovererOutputDeviceDiscoverySessionFactory.h>\n\n@implementation AVFigRouteDiscovererOutputDeviceDiscoverySessionFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl.h>\n\n@implementation AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRoutingContextCommandOutputDeviceConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRoutingContextCommandOutputDeviceConfiguration.h>\n\n@implementation AVFigRoutingContextCommandOutputDeviceConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRoutingContextCommandOutputDeviceConfigurationModification.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRoutingContextCommandOutputDeviceConfigurationModification.h>\n\n@implementation AVFigRoutingContextCommandOutputDeviceConfigurationModification\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRoutingContextOutputContextImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRoutingContextOutputContextImpl.h>\n\n@implementation AVFigRoutingContextOutputContextImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRoutingContextRouteChangeOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRoutingContextRouteChangeOperation.h>\n\n@implementation AVFigRoutingContextRouteChangeOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFigRoutingContextSendConfigureDeviceCommandOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFigRoutingContextSendConfigureDeviceCommandOperation.h>\n\n@implementation AVFigRoutingContextSendConfigureDeviceCommandOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFloat64Range.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFloat64Range.h>\n\n@implementation AVFloat64Range\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFormatReaderInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFormatReaderInspector.h>\n\n@implementation AVFormatReaderInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFormatSpecification.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFormatSpecification.h>\n\n@implementation AVFormatSpecification\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFoundation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <AVFoundation/AVFoundation.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* AVMakeRectWithAspectRatioInsideRect(void) {\n    if (verbose) puts(\"STUB: AVMakeRectWithAspectRatioInsideRect called\");\n    return NULL;\n}\n\nvoid* AVMediaSubtypesForAC3(void) {\n    if (verbose) puts(\"STUB: AVMediaSubtypesForAC3 called\");\n    return NULL;\n}\n\nvoid* AVMediaSubtypesForEnhancedAC3(void) {\n    if (verbose) puts(\"STUB: AVMediaSubtypesForEnhancedAC3 called\");\n    return NULL;\n}\n\nvoid* AVMediaTypesForCaptionEditing(void) {\n    if (verbose) puts(\"STUB: AVMediaTypesForCaptionEditing called\");\n    return NULL;\n}\n\nvoid* AVOutputDeviceGetFigRouteDescriptor(void) {\n    if (verbose) puts(\"STUB: AVOutputDeviceGetFigRouteDescriptor called\");\n    return NULL;\n}\n\nvoid* CGAffineTransformFromNSArray(void) {\n    if (verbose) puts(\"STUB: CGAffineTransformFromNSArray called\");\n    return NULL;\n}\n\nvoid* MediaIODeviceConfigureToBestMatchPixelBufferAttributesAndMinimumFrameDuration(void) {\n    if (verbose) puts(\"STUB: MediaIODeviceConfigureToBestMatchPixelBufferAttributesAndMinimumFrameDuration called\");\n    return NULL;\n}\n\nvoid* MediaIOGraphConnectNodeToFanOutNode(void) {\n    if (verbose) puts(\"STUB: MediaIOGraphConnectNodeToFanOutNode called\");\n    return NULL;\n}\n\nvoid* MediaIOGraphRemoveAllNodes(void) {\n    if (verbose) puts(\"STUB: MediaIOGraphRemoveAllNodes called\");\n    return NULL;\n}\n\nvoid* MediaIOGraphUnusedNodeIndexForNodeFunctionalDesignation(void) {\n    if (verbose) puts(\"STUB: MediaIOGraphUnusedNodeIndexForNodeFunctionalDesignation called\");\n    return NULL;\n}\n\nvoid* NSArrayFromCGAffineTransform(void) {\n    if (verbose) puts(\"STUB: NSArrayFromCGAffineTransform called\");\n    return NULL;\n}\n\nvoid* NSArrayFromRGBAComponents(void) {\n    if (verbose) puts(\"STUB: NSArrayFromRGBAComponents called\");\n    return NULL;\n}\n\nvoid* NSArrayGetRGBAComponents(void) {\n    if (verbose) puts(\"STUB: NSArrayGetRGBAComponents called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedAsset.h>\n\n@implementation AVFragmentedAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedAssetInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedAssetInternal.h>\n\n@implementation AVFragmentedAssetInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedAssetMinder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedAssetMinder.h>\n\n@implementation AVFragmentedAssetMinder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedAssetMinderInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedAssetMinderInternal.h>\n\n@implementation AVFragmentedAssetMinderInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedAssetTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedAssetTrack.h>\n\n@implementation AVFragmentedAssetTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedAssetTrackInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedAssetTrackInternal.h>\n\n@implementation AVFragmentedAssetTrackInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedMovie.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedMovie.h>\n\n@implementation AVFragmentedMovie\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedMovieInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedMovieInternal.h>\n\n@implementation AVFragmentedMovieInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedMovieMinder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedMovieMinder.h>\n\n@implementation AVFragmentedMovieMinder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedMovieTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedMovieTrack.h>\n\n@implementation AVFragmentedMovieTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFragmentedMovieTrackInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFragmentedMovieTrackInternal.h>\n\n@implementation AVFragmentedMovieTrackInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFrameRateRange.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFrameRateRange.h>\n\n@implementation AVFrameRateRange\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVFrameRateRangeInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVFrameRateRangeInternal.h>\n\n@implementation AVFrameRateRangeInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVGenericMediaFileOutputSettingsValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVGenericMediaFileOutputSettingsValidator.h>\n\n@implementation AVGenericMediaFileOutputSettingsValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVGlobalOperationQueue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVGlobalOperationQueue.h>\n\n@implementation AVGlobalOperationQueue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVIOKitOutputSettingsAssistantVideoEncoderCapabilities.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVIOKitOutputSettingsAssistantVideoEncoderCapabilities.h>\n\n@implementation AVIOKitOutputSettingsAssistantVideoEncoderCapabilities\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVISOOutputSettingsValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVISOOutputSettingsValidator.h>\n\n@implementation AVISOOutputSettingsValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVKVODispatcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVKVODispatcher.h>\n\n@implementation AVKVODispatcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVKeyPathDependency.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVKeyPathDependency.h>\n\n@implementation AVKeyPathDependency\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVKeyPathDependencyManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVKeyPathDependencyManager.h>\n\n@implementation AVKeyPathDependencyManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVKeyPathFlattener.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVKeyPathFlattener.h>\n\n@implementation AVKeyPathFlattener\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVKeyPathFlattenerKVOIntrospectionShim.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVKeyPathFlattenerKVOIntrospectionShim.h>\n\n@implementation AVKeyPathFlattenerKVOIntrospectionShim\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVLazyValueLoadingMetadataItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVLazyValueLoadingMetadataItem.h>\n\n@implementation AVLazyValueLoadingMetadataItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVLazyValueLoadingMetadataItemInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVLazyValueLoadingMetadataItemInternal.h>\n\n@implementation AVLazyValueLoadingMetadataItemInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVLocalOutputDeviceImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVLocalOutputDeviceImpl.h>\n\n@implementation AVLocalOutputDeviceImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVManagedAssetCache.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVManagedAssetCache.h>\n\n@implementation AVManagedAssetCache\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVManagedAssetCacheInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVManagedAssetCacheInternal.h>\n\n@implementation AVManagedAssetCacheInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaDataRequester.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaDataRequester.h>\n\n@implementation AVMediaDataRequester\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaDataStorage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaDataStorage.h>\n\n@implementation AVMediaDataStorage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaDataStorageInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaDataStorageInternal.h>\n\n@implementation AVMediaDataStorageInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaFileOutputSettingsValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaFileOutputSettingsValidator.h>\n\n@implementation AVMediaFileOutputSettingsValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaFileSegmenter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaFileSegmenter.h>\n\n@implementation AVMediaFileSegmenter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaFileType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaFileType.h>\n\n@implementation AVMediaFileType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaSelection.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaSelection.h>\n\n@implementation AVMediaSelection\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaSelectionGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaSelectionGroup.h>\n\n@implementation AVMediaSelectionGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaSelectionGroupInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaSelectionGroupInternal.h>\n\n@implementation AVMediaSelectionGroupInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaSelectionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaSelectionInternal.h>\n\n@implementation AVMediaSelectionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaSelectionKeyValueOption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaSelectionKeyValueOption.h>\n\n@implementation AVMediaSelectionKeyValueOption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaSelectionOption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaSelectionOption.h>\n\n@implementation AVMediaSelectionOption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaSelectionOptionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaSelectionOptionInternal.h>\n\n@implementation AVMediaSelectionOptionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMediaSelectionTrackOption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMediaSelectionTrackOption.h>\n\n@implementation AVMediaSelectionTrackOption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataEnumerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataEnumerator.h>\n\n@implementation AVMetadataEnumerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataFaceObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataFaceObject.h>\n\n@implementation AVMetadataFaceObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataFaceObjectInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataFaceObjectInternal.h>\n\n@implementation AVMetadataFaceObjectInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataGroup.h>\n\n@implementation AVMetadataGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataItem.h>\n\n@implementation AVMetadataItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataItemFilter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataItemFilter.h>\n\n@implementation AVMetadataItemFilter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataItemFilterForSharing.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataItemFilterForSharing.h>\n\n@implementation AVMetadataItemFilterForSharing\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataItemFilterInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataItemFilterInternal.h>\n\n@implementation AVMetadataItemFilterInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataItemInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataItemInternal.h>\n\n@implementation AVMetadataItemInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataItemValueRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataItemValueRequest.h>\n\n@implementation AVMetadataItemValueRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataItemValueRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataItemValueRequestInternal.h>\n\n@implementation AVMetadataItemValueRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataObject.h>\n\n@implementation AVMetadataObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMetadataObjectInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMetadataObjectInternal.h>\n\n@implementation AVMetadataObjectInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMovie.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMovie.h>\n\n@implementation AVMovie\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMovieInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMovieInternal.h>\n\n@implementation AVMovieInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMovieTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMovieTrack.h>\n\n@implementation AVMovieTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMovieTrackInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMovieTrackInternal.h>\n\n@implementation AVMovieTrackInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableAudioMix.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableAudioMix.h>\n\n@implementation AVMutableAudioMix\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableAudioMixInputParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableAudioMixInputParameters.h>\n\n@implementation AVMutableAudioMixInputParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableCaption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableCaption.h>\n\n@implementation AVMutableCaption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableCaptionRegion.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableCaptionRegion.h>\n\n@implementation AVMutableCaptionRegion\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableComposition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableComposition.h>\n\n@implementation AVMutableComposition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableCompositionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableCompositionInternal.h>\n\n@implementation AVMutableCompositionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableCompositionTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableCompositionTrack.h>\n\n@implementation AVMutableCompositionTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableCompositionTrackInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableCompositionTrackInternal.h>\n\n@implementation AVMutableCompositionTrackInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableDateRangeMetadataGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableDateRangeMetadataGroup.h>\n\n@implementation AVMutableDateRangeMetadataGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableMediaSelection.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableMediaSelection.h>\n\n@implementation AVMutableMediaSelection\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableMetadataItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableMetadataItem.h>\n\n@implementation AVMutableMetadataItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableMovie.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableMovie.h>\n\n@implementation AVMutableMovie\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableMovieInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableMovieInternal.h>\n\n@implementation AVMutableMovieInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableMovieTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableMovieTrack.h>\n\n@implementation AVMutableMovieTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableMovieTrackInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableMovieTrackInternal.h>\n\n@implementation AVMutableMovieTrackInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableScheduledAudioParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableScheduledAudioParameters.h>\n\n@implementation AVMutableScheduledAudioParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableTimedMetadataGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableTimedMetadataGroup.h>\n\n@implementation AVMutableTimedMetadataGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableVideoComposition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableVideoComposition.h>\n\n@implementation AVMutableVideoComposition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableVideoCompositionInstruction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableVideoCompositionInstruction.h>\n\n@implementation AVMutableVideoCompositionInstruction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVMutableVideoCompositionLayerInstruction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVMutableVideoCompositionLayerInstruction.h>\n\n@implementation AVMutableVideoCompositionLayerInstruction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVNSURLProtocolRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVNSURLProtocolRequest.h>\n\n@implementation AVNSURLProtocolRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVNetworkPlaybackPerfHUDLayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVNetworkPlaybackPerfHUDLayer.h>\n\n@implementation AVNetworkPlaybackPerfHUDLayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVObservationBlockFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVObservationBlockFactory.h>\n\n@implementation AVObservationBlockFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOccasionalTimebaseObserver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOccasionalTimebaseObserver.h>\n\n@implementation AVOccasionalTimebaseObserver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOnceTimebaseObserver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOnceTimebaseObserver.h>\n\n@implementation AVOnceTimebaseObserver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOperation.h>\n\n@implementation AVOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOperationQueueWithFundamentalDependency.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOperationQueueWithFundamentalDependency.h>\n\n@implementation AVOperationQueueWithFundamentalDependency\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputContext.h>\n\n@implementation AVOutputContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputContextCommunicationChannel.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputContextCommunicationChannel.h>\n\n@implementation AVOutputContextCommunicationChannel\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputContextCommunicationChannelInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputContextCommunicationChannelInternal.h>\n\n@implementation AVOutputContextCommunicationChannelInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputContextDestinationChange.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputContextDestinationChange.h>\n\n@implementation AVOutputContextDestinationChange\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputContextDestinationChangeInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputContextDestinationChangeInternal.h>\n\n@implementation AVOutputContextDestinationChangeInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputContextInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputContextInternal.h>\n\n@implementation AVOutputContextInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputContextManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputContextManager.h>\n\n@implementation AVOutputContextManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputContextManagerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputContextManagerInternal.h>\n\n@implementation AVOutputContextManagerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDevice.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDevice.h>\n\n@implementation AVOutputDevice\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceAuthorizationRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceAuthorizationRequest.h>\n\n@implementation AVOutputDeviceAuthorizationRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceAuthorizationRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceAuthorizationRequestInternal.h>\n\n@implementation AVOutputDeviceAuthorizationRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceAuthorizationSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceAuthorizationSession.h>\n\n@implementation AVOutputDeviceAuthorizationSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceAuthorizationSessionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceAuthorizationSessionInternal.h>\n\n@implementation AVOutputDeviceAuthorizationSessionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceAuthorizedPeer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceAuthorizedPeer.h>\n\n@implementation AVOutputDeviceAuthorizedPeer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceAuthorizedPeerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceAuthorizedPeerInternal.h>\n\n@implementation AVOutputDeviceAuthorizedPeerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceDiscoverySession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceDiscoverySession.h>\n\n@implementation AVOutputDeviceDiscoverySession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceDiscoverySessionAvailableOutputDevices.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceDiscoverySessionAvailableOutputDevices.h>\n\n@implementation AVOutputDeviceDiscoverySessionAvailableOutputDevices\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceDiscoverySessionAvailableOutputDevicesInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceDiscoverySessionAvailableOutputDevicesInternal.h>\n\n@implementation AVOutputDeviceDiscoverySessionAvailableOutputDevicesInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceDiscoverySessionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceDiscoverySessionInternal.h>\n\n@implementation AVOutputDeviceDiscoverySessionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceFrecencyManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceFrecencyManager.h>\n\n@implementation AVOutputDeviceFrecencyManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputDeviceInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputDeviceInternal.h>\n\n@implementation AVOutputDeviceInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputSettings.h>\n\n@implementation AVOutputSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputSettingsAssistant.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputSettingsAssistant.h>\n\n@implementation AVOutputSettingsAssistant\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVOutputSettingsAssistantInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVOutputSettingsAssistantInternal.h>\n\n@implementation AVOutputSettingsAssistantInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPairedDevice.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPairedDevice.h>\n\n@implementation AVPairedDevice\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPairedDeviceInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPairedDeviceInternal.h>\n\n@implementation AVPairedDeviceInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPeriodicTimebaseObserver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPeriodicTimebaseObserver.h>\n\n@implementation AVPeriodicTimebaseObserver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPersistableContentKeyRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPersistableContentKeyRequest.h>\n\n@implementation AVPersistableContentKeyRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPixelBufferAttributeMediator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPixelBufferAttributeMediator.h>\n\n@implementation AVPixelBufferAttributeMediator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPixelBufferAttributesVideoOutputSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPixelBufferAttributesVideoOutputSettings.h>\n\n@implementation AVPixelBufferAttributesVideoOutputSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlaybackItemInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlaybackItemInspector.h>\n\n@implementation AVPlaybackItemInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlaybackItemInspectorLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlaybackItemInspectorLoader.h>\n\n@implementation AVPlaybackItemInspectorLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlaybackItemTrackInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlaybackItemTrackInspector.h>\n\n@implementation AVPlaybackItemTrackInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayer.h>\n\n@implementation AVPlayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerConnection.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerConnection.h>\n\n@implementation AVPlayerConnection\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerInternal.h>\n\n@implementation AVPlayerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItem.h>\n\n@implementation AVPlayerItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemAccessLog.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemAccessLog.h>\n\n@implementation AVPlayerItemAccessLog\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemAccessLogEvent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemAccessLogEvent.h>\n\n@implementation AVPlayerItemAccessLogEvent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemAccessLogEventInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemAccessLogEventInternal.h>\n\n@implementation AVPlayerItemAccessLogEventInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemAccessLogInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemAccessLogInternal.h>\n\n@implementation AVPlayerItemAccessLogInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemErrorLog.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemErrorLog.h>\n\n@implementation AVPlayerItemErrorLog\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemErrorLogEvent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemErrorLogEvent.h>\n\n@implementation AVPlayerItemErrorLogEvent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemErrorLogEventInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemErrorLogEventInternal.h>\n\n@implementation AVPlayerItemErrorLogEventInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemErrorLogInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemErrorLogInternal.h>\n\n@implementation AVPlayerItemErrorLogInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemInternal.h>\n\n@implementation AVPlayerItemInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemLegibleOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemLegibleOutput.h>\n\n@implementation AVPlayerItemLegibleOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemLegibleOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemLegibleOutputInternal.h>\n\n@implementation AVPlayerItemLegibleOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemLegibleOutputRealDependencyFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemLegibleOutputRealDependencyFactory.h>\n\n@implementation AVPlayerItemLegibleOutputRealDependencyFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemMediaDataCollector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemMediaDataCollector.h>\n\n@implementation AVPlayerItemMediaDataCollector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemMediaDataCollectorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemMediaDataCollectorInternal.h>\n\n@implementation AVPlayerItemMediaDataCollectorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemMetadataCollector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemMetadataCollector.h>\n\n@implementation AVPlayerItemMetadataCollector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemMetadataCollectorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemMetadataCollectorInternal.h>\n\n@implementation AVPlayerItemMetadataCollectorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemMetadataOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemMetadataOutput.h>\n\n@implementation AVPlayerItemMetadataOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemMetadataOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemMetadataOutputInternal.h>\n\n@implementation AVPlayerItemMetadataOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemOutput.h>\n\n@implementation AVPlayerItemOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemOutputInternal.h>\n\n@implementation AVPlayerItemOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemTrack.h>\n\n@implementation AVPlayerItemTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemTrackInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemTrackInternal.h>\n\n@implementation AVPlayerItemTrackInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemVideoOutput.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemVideoOutput.h>\n\n@implementation AVPlayerItemVideoOutput\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerItemVideoOutputInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerItemVideoOutputInternal.h>\n\n@implementation AVPlayerItemVideoOutputInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerLayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerLayer.h>\n\n@implementation AVPlayerLayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerLayerIntermediateLayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerLayerIntermediateLayer.h>\n\n@implementation AVPlayerLayerIntermediateLayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerLayerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerLayerInternal.h>\n\n@implementation AVPlayerLayerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerLooper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerLooper.h>\n\n@implementation AVPlayerLooper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerLooperInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerLooperInternal.h>\n\n@implementation AVPlayerLooperInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerMediaSelectionCriteria.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerMediaSelectionCriteria.h>\n\n@implementation AVPlayerMediaSelectionCriteria\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPlayerQueueModificationDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPlayerQueueModificationDescription.h>\n\n@implementation AVPlayerQueueModificationDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVPropertyStorage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVPropertyStorage.h>\n\n@implementation AVPropertyStorage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVQueuePlayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVQueuePlayer.h>\n\n@implementation AVQueuePlayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVQueuePlayerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVQueuePlayerInternal.h>\n\n@implementation AVQueuePlayerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVRemoteFigRoutingContextFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVRemoteFigRoutingContextFactory.h>\n\n@implementation AVRemoteFigRoutingContextFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVResolvedDecompressionSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVResolvedDecompressionSettings.h>\n\n@implementation AVResolvedDecompressionSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVRetainReleaseWeakReference.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVRetainReleaseWeakReference.h>\n\n@implementation AVRetainReleaseWeakReference\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVRouteConfigUpdatedFigRoutingContextRouteChangeOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVRouteConfigUpdatedFigRoutingContextRouteChangeOperation.h>\n\n@implementation AVRouteConfigUpdatedFigRoutingContextRouteChangeOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVRouteDetector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVRouteDetector.h>\n\n@implementation AVRouteDetector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVRouteDetectorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVRouteDetectorInternal.h>\n\n@implementation AVRouteDetectorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVRunLoopCondition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVRunLoopCondition.h>\n\n@implementation AVRunLoopCondition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVRunLoopConditionRunLoopState.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVRunLoopConditionRunLoopState.h>\n\n@implementation AVRunLoopConditionRunLoopState\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferAudioRenderer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferAudioRenderer.h>\n\n@implementation AVSampleBufferAudioRenderer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferAudioRendererInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferAudioRendererInternal.h>\n\n@implementation AVSampleBufferAudioRendererInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferDisplayLayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferDisplayLayer.h>\n\n@implementation AVSampleBufferDisplayLayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferDisplayLayerContentLayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferDisplayLayerContentLayer.h>\n\n@implementation AVSampleBufferDisplayLayerContentLayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferDisplayLayerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferDisplayLayerInternal.h>\n\n@implementation AVSampleBufferDisplayLayerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferGenerator.h>\n\n@implementation AVSampleBufferGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferGeneratorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferGeneratorInternal.h>\n\n@implementation AVSampleBufferGeneratorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferRenderSynchronizer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferRenderSynchronizer.h>\n\n@implementation AVSampleBufferRenderSynchronizer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferRenderSynchronizerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferRenderSynchronizerInternal.h>\n\n@implementation AVSampleBufferRenderSynchronizerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferRequest.h>\n\n@implementation AVSampleBufferRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleBufferRequestInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleBufferRequestInternal.h>\n\n@implementation AVSampleBufferRequestInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleCursor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleCursor.h>\n\n@implementation AVSampleCursor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSampleCursorInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSampleCursorInternal.h>\n\n@implementation AVSampleCursorInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVScheduledAudioParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVScheduledAudioParameters.h>\n\n@implementation AVScheduledAudioParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVScheduledAudioParametersInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVScheduledAudioParametersInternal.h>\n\n@implementation AVScheduledAudioParametersInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSegmentedMediaClosedCaptionReport.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSegmentedMediaClosedCaptionReport.h>\n\n@implementation AVSegmentedMediaClosedCaptionReport\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSegmentedMediaReport.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSegmentedMediaReport.h>\n\n@implementation AVSegmentedMediaReport\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamDataAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamDataAsset.h>\n\n@implementation AVStreamDataAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamDataAssetInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamDataAssetInspector.h>\n\n@implementation AVStreamDataAssetInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamDataAssetTrackInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamDataAssetTrackInspector.h>\n\n@implementation AVStreamDataAssetTrackInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamDataInspectionOnlyAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamDataInspectionOnlyAsset.h>\n\n@implementation AVStreamDataInspectionOnlyAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamDataParser.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamDataParser.h>\n\n@implementation AVStreamDataParser\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamDataParserInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamDataParserInternal.h>\n\n@implementation AVStreamDataParserInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamSession.h>\n\n@implementation AVStreamSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamSessionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamSessionInternal.h>\n\n@implementation AVStreamSessionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVStreamingResourceInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVStreamingResourceInspector.h>\n\n@implementation AVStreamingResourceInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSynchronizedLayer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSynchronizedLayer.h>\n\n@implementation AVSynchronizedLayer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVSynchronizedLayerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVSynchronizedLayerInternal.h>\n\n@implementation AVSynchronizedLayerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTextStyleRule.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTextStyleRule.h>\n\n@implementation AVTextStyleRule\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTextStyleRuleInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTextStyleRuleInternal.h>\n\n@implementation AVTextStyleRuleInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTimeFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTimeFormatter.h>\n\n@implementation AVTimeFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTimeFormatterInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTimeFormatterInternal.h>\n\n@implementation AVTimeFormatterInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTimebaseObserver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTimebaseObserver.h>\n\n@implementation AVTimebaseObserver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTimedMetadataGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTimedMetadataGroup.h>\n\n@implementation AVTimedMetadataGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTimedMetadataGroupInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTimedMetadataGroupInternal.h>\n\n@implementation AVTimedMetadataGroupInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTrackReaderInspector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTrackReaderInspector.h>\n\n@implementation AVTrackReaderInspector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVTwoPartKeyPath.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVTwoPartKeyPath.h>\n\n@implementation AVTwoPartKeyPath\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVURLAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVURLAsset.h>\n\n@implementation AVURLAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVURLAssetInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVURLAssetInternal.h>\n\n@implementation AVURLAssetInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVURLAuthenticationChallenge.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVURLAuthenticationChallenge.h>\n\n@implementation AVURLAuthenticationChallenge\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVUnreachableAssetInspectorLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVUnreachableAssetInspectorLoader.h>\n\n@implementation AVUnreachableAssetInspectorLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoComposition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoComposition.h>\n\n@implementation AVVideoComposition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionCoreAnimationTool.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionCoreAnimationTool.h>\n\n@implementation AVVideoCompositionCoreAnimationTool\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionCoreAnimationToolInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionCoreAnimationToolInternal.h>\n\n@implementation AVVideoCompositionCoreAnimationToolInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionInstruction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionInstruction.h>\n\n@implementation AVVideoCompositionInstruction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionInstructionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionInstructionInternal.h>\n\n@implementation AVVideoCompositionInstructionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionInternal.h>\n\n@implementation AVVideoCompositionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionLayerInstruction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionLayerInstruction.h>\n\n@implementation AVVideoCompositionLayerInstruction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionLayerInstructionInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionLayerInstructionInternal.h>\n\n@implementation AVVideoCompositionLayerInstructionInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionRenderContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionRenderContext.h>\n\n@implementation AVVideoCompositionRenderContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoCompositionRenderContextInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoCompositionRenderContextInternal.h>\n\n@implementation AVVideoCompositionRenderContextInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoOutputSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoOutputSettings.h>\n\n@implementation AVVideoOutputSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoPerformanceMetrics.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoPerformanceMetrics.h>\n\n@implementation AVVideoPerformanceMetrics\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVVideoPerformanceMetricsInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVVideoPerformanceMetricsInternal.h>\n\n@implementation AVVideoPerformanceMetricsInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVWAVEOutputSettingsValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVWAVEOutputSettingsValidator.h>\n\n@implementation AVWAVEOutputSettingsValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVWaitForNotificationOrDeallocationOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVWaitForNotificationOrDeallocationOperation.h>\n\n@implementation AVWaitForNotificationOrDeallocationOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVWeakObservableCallbackCancellationHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVWeakObservableCallbackCancellationHelper.h>\n\n@implementation AVWeakObservableCallbackCancellationHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVWeakObservationBlockFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVWeakObservationBlockFactory.h>\n\n@implementation AVWeakObservationBlockFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVWeakReference.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVWeakReference.h>\n\n@implementation AVWeakReference\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVWeakReferencingDelegateStorage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVWeakReferencingDelegateStorage.h>\n\n@implementation AVWeakReferencingDelegateStorage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVWeaklyObservedObjectClientBlockKVONotifier.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVWeaklyObservedObjectClientBlockKVONotifier.h>\n\n@implementation AVWeaklyObservedObjectClientBlockKVONotifier\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/AVWorkaroundNSBlockOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/AVWorkaroundNSBlockOperation.h>\n\n@implementation AVWorkaroundNSBlockOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/CMTimeAsValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/CMTimeAsValue.h>\n\n@implementation CMTimeAsValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/CMTimeMappingAsValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/CMTimeMappingAsValue.h>\n\n@implementation CMTimeMappingAsValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/CMTimeRangeAsValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/CMTimeRangeAsValue.h>\n\n@implementation CMTimeRangeAsValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/MediaIOGraphNodeDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/MediaIOGraphNodeDescription.h>\n\n@implementation MediaIOGraphNodeDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVFoundation/src/MediaIOGraphNodeList.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVFoundation/MediaIOGraphNodeList.h>\n\n@implementation MediaIOGraphNodeList\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/CMakeLists.txt",
    "content": "project(AVKit)\n\nremove_sdk_framework(AVKit)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(AVKit\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/AVKit\"\n)\n\nadd_framework(AVKit\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/AVKit.m\n        src/AVTrimView.m\n        src/AVFunctionBarVideoTrackView.m\n        src/AVTrimSelectionEndFocusRingView.m\n        src/AVOutputDeviceDiscoverySessionController.m\n        src/AVFunctionBarRecordingControlsViewController.m\n        src/AVTouchBarPlaybackControlsController.m\n        src/AVCaptureControlsRecordingViewController.m\n        src/AVProgressEstimator.m\n        src/AVShareController.m\n        src/AVTouchBarPlaybackControlsViewController.m\n        src/AVShadowTimeFormatterLegacy.m\n        src/AVFunctionBarScrubberInternal.m\n        src/AVTouchBarAudioCaptureDeviceSelectionButtonViewController.m\n        src/AVTouchBarAudioTrackView.m\n        src/AVMovableView.m\n        src/AVTouchBarTrimControlsViewController.m\n        src/AVTouchBarScrubberKnobView.m\n        src/AVMinimalPlaybackControlsViewController.m\n        src/AVFloatingTrimControlsViewController.m\n        src/AVTrimIndicatorView.m\n        src/AVTouchBarRecordingControlsProvider.m\n        src/AVTouchBarCaptureInputSourceItem.m\n        src/AVCaptureDeviceSelectionController.m\n        src/AVExternalPlaybackIndicatorView.m\n        src/AVSlowMotionSlider.m\n        src/AVSlowMotionSliderTrackView.m\n        src/AVSlowMotionSliderHandleView.m\n        src/AVTrackViewController.m\n        src/AVRoutePickerRemoteViewController.m\n        src/AVShadowTimeFormatter.m\n        src/AVTouchBarScrubberInternal.m\n        src/AVTrimIndicatorFocusRingView.m\n        src/AVCircularProgressIndicator.m\n        src/AVStatusOverlayView.m\n        src/AVAudioExtractor.m\n        src/AVFunctionBarAudioCaptureDeviceSelectionButtonViewController.m\n        src/AVFunctionBarScrubberKnobView.m\n        src/AVMicaPackage.m\n        src/AVPlayerControlsViewController.m\n        src/AVScanBackwardTextFieldHiddenValueTransformer.m\n        src/AVScanBackwardTextFieldValueValueTransformer.m\n        src/AVScanForwardTextFieldHiddenValueTransformer.m\n        src/AVScanForwardTextFieldValueValueTransformer.m\n        src/AVScrubberValueTransformer.m\n        src/AVAtomicCancelationToken.m\n        src/AVRoutePickerView.m\n        src/AVOutputContextController.m\n        src/AVFloatingPlaybackControlsViewController.m\n        src/AVTouchBarDescriptionBasedPlayerController.m\n        src/AVFunctionBarPlaybackControlsController.m\n        src/AVUnsupportedContentIndicatorView.m\n        src/AVTrimClipView.m\n        src/AVChapterMenuController.m\n        src/AVPlayerControllerTimeResolver.m\n        src/AVObservationController.m\n        src/AVProxyKVOObserver.m\n        src/AVKeyValueChange.m\n        src/AVInlineDeviceSelectionCaptureControlsViewController.m\n        src/AVFunctionBarTrackView.m\n        src/AVFunctionBarAudioTrackView.m\n        src/AVFunctionBarPlaybackControlsProvider.m\n        src/AVFunctionBarMediaSelectionOption.m\n        src/AVDraggableImageView.m\n        src/AVPlayerView.m\n        src/AVIterableCache.m\n        src/AVVideoTrackThumbnailManager.m\n        src/AVFunctionBarTrackViewController.m\n        src/AVTouchBarVideoTrackView.m\n        src/AVTimeIndicatorPopover.m\n        src/AVTimeIndicatorPopoverContentViewController.m\n        src/AVChapter.m\n        src/AVTrackView.m\n        src/AVTouchBarTrackViewController.m\n        src/AVVideoTrackView.m\n        src/_AVBundle.m\n        src/AVTouchBarMediaSelectionOptionTwoLineButtonCell.m\n        src/AVTouchBarMediaSelectionOptionTwoLineButton.m\n        src/AVTouchBarMediaSelectionViewController.m\n        src/AVTouchBarScrubberController.m\n        src/AVAudioLevelIndicatorView.m\n        src/AVVideoTrackThumbnail.m\n        src/AVNowPlayingInfoController.m\n        src/AVCaptureControlsViewController.m\n        src/AVValueTiming.m\n        src/AVMutableValueTiming.m\n        src/AVConcreteValueTiming.m\n        src/AVConcreteMutableValueTiming.m\n        src/AVInlineTrimControlsViewController.m\n        src/AVTrimIndicatorAccessibilityElement.m\n        src/AVBindingInfoLegacy.m\n        src/AVPlayButtonLegacy.m\n        src/AVFunctionBarScrubberExpandButtonCell.m\n        src/AVFunctionBarScrubberExpandButton.m\n        src/AVFunctionBarScrubber.m\n        src/AVFunctionBarPlaybackControlsViewController.m\n        src/AVThumbnailCache.m\n        src/AVFunctionBarRecordingControlsProvider.m\n        src/AVFunctionBarCaptureInputSourceItem.m\n        src/AVControlsContainerViewController.m\n        src/AVPlayerController.m\n        src/AVTrimSelectionStartFocusRingView.m\n        src/AVFunctionBarRecordingControlsController.m\n        src/AVAudioTrackView.m\n        src/AVAnimator.m\n        src/AVPooledData.m\n        src/AVDataPool.m\n        src/AVButton.m\n        src/AVAudioAmplitudeExtractionSessionHelper.m\n        src/AVAudioAmplitudeExtractionSession.m\n        src/AVEstimatedDurationFormatter.m\n        src/AVFunctionBarCaptureInputSourceSelectionViewController.m\n        src/AVFloatingCaptureControlsViewController.m\n        src/AVTouchBarRecordingControlsViewController.m\n        src/AVCameraDisabledView.m\n        src/AVInlinePlaybackControlsViewController.m\n        src/AVTrimSelectionView.m\n        src/AVTouchBarCaptureInputSourceSelectionViewController.m\n        src/AVControlsViewController.m\n        src/AVTouchBarPlaybackControlsProvider.m\n        src/AVThumbnail.m\n        src/AVTouchBarMediaSelectionOption.m\n        src/AVTrimDimmerView.m\n        src/AVCaptureController.m\n        src/AVCaptureDeviceInputSourceItem.m\n        src/AVCaptureQualityItem.m\n        src/AVAudioView.m\n        src/AVAudioPlaybackControlsViewController.m\n        src/AVAudioTrimControlsViewController.m\n        src/AVScrubber.m\n        src/AVScrubberCell.m\n        src/AVInlineCaptureControlsViewController.m\n        src/AVTrimControlsViewController.m\n        src/AVFoundationExportSession.m\n        src/AVAudioOnlyIndicatorView.m\n        src/AVOutputDevicePickerButton.m\n        src/AVCaptureView.m\n        src/AVTimer.m\n        src/AVPanoramicStretchHelper.m\n        src/AVTouchBarTrackView.m\n        src/AVFunctionBarScrubberController.m\n        src/AVTouchBarRecordingControlsController.m\n        src/AVTouchBarPlaybackControlsItem.m\n        src/AVBindingInfo.m\n        src/AVTouchBarScrubberExpandButtonCell.m\n        src/AVTouchBarScrubberExpandButton.m\n        src/AVTouchBarScrubber.m\n        src/AVAssetAudioExtractor.m\n        src/AVTouchBarMediaSelectionButtonViewController.m\n        src/AVLoadingIndicatorView.m\n        src/AVFunctionBarMediaSelectionViewController.m\n        src/AVAppendableData.m\n        src/AVReadOnlyRangeOfAppendableData.m\n        src/AVOutputDeviceMenuController.m\n        src/AVThumbnailGenerationRequest.m\n        src/AVThumbnailGenerator.m\n        src/AVOutputDeviceMenuRemoteViewController.m\n        src/AVScrollSliderView.m\n        src/AVExportProgressWindowController.m\n        src/AVAudioAmplitudeSampleExtractionHelper.m\n        src/AVWaveformGenerator.m\n        src/AVTrimTracksView.m\n        src/AVVolumeButton.m\n        src/AVVolumeButtonContentView.m\n        src/AVVolumeImageValueTransformer.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n        AppKit\n)\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAnimator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAnimator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAppendableData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAppendableData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAssetAudioExtractor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAssetAudioExtractor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAtomicCancelationToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAtomicCancelationToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioAmplitudeExtractionSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioAmplitudeExtractionSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioAmplitudeExtractionSessionHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioAmplitudeExtractionSessionHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioAmplitudeSampleExtractionHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioAmplitudeSampleExtractionHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioExtractor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioExtractor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioLevelIndicatorView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioLevelIndicatorView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioOnlyIndicatorView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioOnlyIndicatorView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioPlaybackControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioPlaybackControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioTrimControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioTrimControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVAudioView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVAudioView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVBindingInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBindingInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVBindingInfoLegacy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBindingInfoLegacy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCameraDisabledView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCameraDisabledView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCaptureController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCaptureControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVCaptureControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCaptureControlsRecordingViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureControlsRecordingViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCaptureControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCaptureDeviceInputSourceItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceInputSourceItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCaptureDeviceSelectionController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureDeviceSelectionController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCaptureQualityItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureQualityItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCaptureView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCaptureView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVChapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVChapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVChapterMenuController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVChapterMenuController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVCircularProgressIndicator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVCircularProgressIndicator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVConcreteMutableValueTiming.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVConcreteMutableValueTiming : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVConcreteValueTiming.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVConcreteValueTiming : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVControlsContainerViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVControlsContainerViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVControlsContainerViewControllerContent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVControlsContainerViewControllerContent\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVDataPool.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDataPool : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVDraggableImageView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVDraggableImageView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVEstimatedDurationFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVEstimatedDurationFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVExportProgressWindowController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVExportProgressWindowController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVExportSessionHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVExportSessionHelper\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVExportSessionHelperDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVExportSessionHelperDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVExternalPlaybackIndicatorView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVExternalPlaybackIndicatorView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFloatingCaptureControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFloatingCaptureControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFloatingPlaybackControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFloatingPlaybackControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFloatingTrimControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFloatingTrimControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFoundationExportSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFoundationExportSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarAudioCaptureDeviceSelectionButtonViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarAudioCaptureDeviceSelectionButtonViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarAudioCaptureDeviceSelectionButtonViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarAudioCaptureDeviceSelectionButtonViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarAudioTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarAudioTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarCaptureInputSourceItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarCaptureInputSourceItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarCaptureInputSourceSelectionViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarCaptureInputSourceSelectionViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarCaptureInputSourceSelectionViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarCaptureInputSourceSelectionViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarMediaSelectionControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarMediaSelectionControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarMediaSelectionOption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarMediaSelectionOption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarMediaSelectionViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarMediaSelectionViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarMediaSelectionViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarMediaSelectionViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarPlaybackControlsController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarPlaybackControlsController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarPlaybackControlsControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarPlaybackControlsControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarPlaybackControlsControllingInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarPlaybackControlsControllingInternal\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarPlaybackControlsProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarPlaybackControlsProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarPlaybackControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarPlaybackControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarRecordingControlsController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarRecordingControlsController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarRecordingControlsControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarRecordingControlsControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarRecordingControlsControllingInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarRecordingControlsControllingInternal\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarRecordingControlsProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarRecordingControlsProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarRecordingControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarRecordingControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarScrubber.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarScrubber : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarScrubberController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarScrubberController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarScrubberControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarScrubberControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarScrubberDelegateInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarScrubberDelegateInternal\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarScrubberExpandButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarScrubberExpandButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarScrubberExpandButtonCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarScrubberExpandButtonCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarScrubberInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarScrubberInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarScrubberKnobView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarScrubberKnobView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarTrackControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVFunctionBarTrackControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarTrackViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarTrackViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVFunctionBarVideoTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVFunctionBarVideoTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVInlineCaptureControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVInlineCaptureControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVInlineDeviceSelectionCaptureControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVInlineDeviceSelectionCaptureControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVInlinePlaybackControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVInlinePlaybackControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVInlineTrimControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVInlineTrimControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVIterableCache.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVIterableCache : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVKeyValueChange.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVKeyValueChange : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVKit.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _AVKit_H_\n#define _AVKit_H_\n\n#import <Foundation/Foundation.h>\n\n#import <AVKit/AVCaptureControllerDelegate.h>\n#import <AVKit/AVControlsContainerViewControllerContent.h>\n#import <AVKit/AVExportSessionHelper.h>\n#import <AVKit/AVExportSessionHelperDelegate.h>\n#import <AVKit/AVFunctionBarAudioCaptureDeviceSelectionButtonViewControllerDelegate.h>\n#import <AVKit/AVFunctionBarCaptureInputSourceSelectionViewControllerDelegate.h>\n#import <AVKit/AVFunctionBarMediaSelectionControlling.h>\n#import <AVKit/AVFunctionBarMediaSelectionViewControllerDelegate.h>\n#import <AVKit/AVFunctionBarPlaybackControlsControlling.h>\n#import <AVKit/AVFunctionBarPlaybackControlsControllingInternal.h>\n#import <AVKit/AVFunctionBarRecordingControlsControlling.h>\n#import <AVKit/AVFunctionBarRecordingControlsControllingInternal.h>\n#import <AVKit/AVFunctionBarScrubberControlling.h>\n#import <AVKit/AVFunctionBarScrubberDelegateInternal.h>\n#import <AVKit/AVFunctionBarTrackControlling.h>\n#import <AVKit/AVOutputDeviceMenuServiceInterface.h>\n#import <AVKit/AVRoutePickerViewHostInterface.h>\n#import <AVKit/AVRoutePickerViewRemoteViewControllerDelegate.h>\n#import <AVKit/AVRoutePickerViewServiceInterface.h>\n#import <AVKit/AVScrubberValueTransformerDelegate.h>\n#import <AVKit/AVSlowMotionSliderDelegate.h>\n#import <AVKit/AVTimeControlling.h>\n#import <AVKit/AVTouchBarAudioCaptureDeviceSelectionButtonViewControllerDelegate.h>\n#import <AVKit/AVTouchBarCaptureInputSourceSelectionViewControllerDelegate.h>\n#import <AVKit/AVTouchBarMediaSelectionButtonViewControllerDelegate.h>\n#import <AVKit/AVTouchBarMediaSelectionControlling.h>\n#import <AVKit/AVTouchBarMediaSelectionViewControllerDelegate.h>\n#import <AVKit/AVTouchBarPlaybackControlsControlling.h>\n#import <AVKit/AVTouchBarPlaybackControlsControllingInternal.h>\n#import <AVKit/AVTouchBarRecordingControlsControlling.h>\n#import <AVKit/AVTouchBarRecordingControlsControllingInternal.h>\n#import <AVKit/AVTouchBarScrubberControlling.h>\n#import <AVKit/AVTouchBarScrubberDelegateInternal.h>\n#import <AVKit/AVTouchBarTrackControlling.h>\n#import <AVKit/AVTrimControlsViewControllerDelegate.h>\n#import <AVKit/AVTrimViewDelegate.h>\n#import <AVKit/AVVolumeButtonDelegate.h>\n#import <AVKit/CAAnimationDelegate.h>\n#import <AVKit/CALayerDelegate.h>\n#import <AVKit/CAMLParserDelegate.h>\n#import <AVKit/CAStateControllerDelegate.h>\n#import <AVKit/NSAccessibilityElement.h>\n#import <AVKit/NSAccessibilitySlider.h>\n#import <AVKit/NSDescriptionBasedTouchBarItem.h>\n#import <AVKit/NSDescriptionBasedTouchBarItemProvider.h>\n#import <AVKit/NSMenuDelegate.h>\n#import <AVKit/NSPopoverDelegate.h>\n#import <AVKit/NSSharingServiceDelegate.h>\n#import <AVKit/NSSharingServicePickerDelegate.h>\n#import <AVKit/NSStackViewDelegate.h>\n#import <AVKit/NSTouchBarDelegate.h>\n#import <AVKit/NSTouchBarProvider.h>\n#import <AVKit/NSUserInterfaceValidations.h>\n#import <AVKit/AVTrimView.h>\n#import <AVKit/AVFunctionBarVideoTrackView.h>\n#import <AVKit/AVTrimSelectionEndFocusRingView.h>\n#import <AVKit/AVOutputDeviceDiscoverySessionController.h>\n#import <AVKit/AVFunctionBarRecordingControlsViewController.h>\n#import <AVKit/AVTouchBarPlaybackControlsController.h>\n#import <AVKit/AVCaptureControlsRecordingViewController.h>\n#import <AVKit/AVProgressEstimator.h>\n#import <AVKit/AVShareController.h>\n#import <AVKit/AVTouchBarPlaybackControlsViewController.h>\n#import <AVKit/AVShadowTimeFormatterLegacy.h>\n#import <AVKit/AVFunctionBarScrubberInternal.h>\n#import <AVKit/AVTouchBarAudioCaptureDeviceSelectionButtonViewController.h>\n#import <AVKit/AVTouchBarAudioTrackView.h>\n#import <AVKit/AVMovableView.h>\n#import <AVKit/AVTouchBarTrimControlsViewController.h>\n#import <AVKit/AVTouchBarScrubberKnobView.h>\n#import <AVKit/AVMinimalPlaybackControlsViewController.h>\n#import <AVKit/AVFloatingTrimControlsViewController.h>\n#import <AVKit/AVTrimIndicatorView.h>\n#import <AVKit/AVTouchBarRecordingControlsProvider.h>\n#import <AVKit/AVTouchBarCaptureInputSourceItem.h>\n#import <AVKit/AVCaptureDeviceSelectionController.h>\n#import <AVKit/AVExternalPlaybackIndicatorView.h>\n#import <AVKit/AVSlowMotionSlider.h>\n#import <AVKit/AVSlowMotionSliderTrackView.h>\n#import <AVKit/AVSlowMotionSliderHandleView.h>\n#import <AVKit/AVTrackViewController.h>\n#import <AVKit/AVRoutePickerRemoteViewController.h>\n#import <AVKit/AVShadowTimeFormatter.h>\n#import <AVKit/AVTouchBarScrubberInternal.h>\n#import <AVKit/AVTrimIndicatorFocusRingView.h>\n#import <AVKit/AVCircularProgressIndicator.h>\n#import <AVKit/AVStatusOverlayView.h>\n#import <AVKit/AVAudioExtractor.h>\n#import <AVKit/AVFunctionBarAudioCaptureDeviceSelectionButtonViewController.h>\n#import <AVKit/AVFunctionBarScrubberKnobView.h>\n#import <AVKit/AVMicaPackage.h>\n#import <AVKit/AVPlayerControlsViewController.h>\n#import <AVKit/AVScanBackwardTextFieldHiddenValueTransformer.h>\n#import <AVKit/AVScanBackwardTextFieldValueValueTransformer.h>\n#import <AVKit/AVScanForwardTextFieldHiddenValueTransformer.h>\n#import <AVKit/AVScanForwardTextFieldValueValueTransformer.h>\n#import <AVKit/AVScrubberValueTransformer.h>\n#import <AVKit/AVAtomicCancelationToken.h>\n#import <AVKit/AVRoutePickerView.h>\n#import <AVKit/AVOutputContextController.h>\n#import <AVKit/AVFloatingPlaybackControlsViewController.h>\n#import <AVKit/AVTouchBarDescriptionBasedPlayerController.h>\n#import <AVKit/AVFunctionBarPlaybackControlsController.h>\n#import <AVKit/AVUnsupportedContentIndicatorView.h>\n#import <AVKit/AVTrimClipView.h>\n#import <AVKit/AVChapterMenuController.h>\n#import <AVKit/AVPlayerControllerTimeResolver.h>\n#import <AVKit/AVObservationController.h>\n#import <AVKit/AVProxyKVOObserver.h>\n#import <AVKit/AVKeyValueChange.h>\n#import <AVKit/AVInlineDeviceSelectionCaptureControlsViewController.h>\n#import <AVKit/AVFunctionBarTrackView.h>\n#import <AVKit/AVFunctionBarAudioTrackView.h>\n#import <AVKit/AVFunctionBarPlaybackControlsProvider.h>\n#import <AVKit/AVFunctionBarMediaSelectionOption.h>\n#import <AVKit/AVDraggableImageView.h>\n#import <AVKit/AVPlayerView.h>\n#import <AVKit/AVIterableCache.h>\n#import <AVKit/AVVideoTrackThumbnailManager.h>\n#import <AVKit/AVFunctionBarTrackViewController.h>\n#import <AVKit/AVTouchBarVideoTrackView.h>\n#import <AVKit/AVTimeIndicatorPopover.h>\n#import <AVKit/AVTimeIndicatorPopoverContentViewController.h>\n#import <AVKit/AVChapter.h>\n#import <AVKit/AVTrackView.h>\n#import <AVKit/AVTouchBarTrackViewController.h>\n#import <AVKit/AVVideoTrackView.h>\n#import <AVKit/_AVBundle.h>\n#import <AVKit/AVTouchBarMediaSelectionOptionTwoLineButtonCell.h>\n#import <AVKit/AVTouchBarMediaSelectionOptionTwoLineButton.h>\n#import <AVKit/AVTouchBarMediaSelectionViewController.h>\n#import <AVKit/AVTouchBarScrubberController.h>\n#import <AVKit/AVAudioLevelIndicatorView.h>\n#import <AVKit/AVVideoTrackThumbnail.h>\n#import <AVKit/AVNowPlayingInfoController.h>\n#import <AVKit/AVCaptureControlsViewController.h>\n#import <AVKit/AVValueTiming.h>\n#import <AVKit/AVMutableValueTiming.h>\n#import <AVKit/AVConcreteValueTiming.h>\n#import <AVKit/AVConcreteMutableValueTiming.h>\n#import <AVKit/AVInlineTrimControlsViewController.h>\n#import <AVKit/AVTrimIndicatorAccessibilityElement.h>\n#import <AVKit/AVBindingInfoLegacy.h>\n#import <AVKit/AVPlayButtonLegacy.h>\n#import <AVKit/AVFunctionBarScrubberExpandButtonCell.h>\n#import <AVKit/AVFunctionBarScrubberExpandButton.h>\n#import <AVKit/AVFunctionBarScrubber.h>\n#import <AVKit/AVFunctionBarPlaybackControlsViewController.h>\n#import <AVKit/AVThumbnailCache.h>\n#import <AVKit/AVFunctionBarRecordingControlsProvider.h>\n#import <AVKit/AVFunctionBarCaptureInputSourceItem.h>\n#import <AVKit/AVControlsContainerViewController.h>\n#import <AVKit/AVPlayerController.h>\n#import <AVKit/AVTrimSelectionStartFocusRingView.h>\n#import <AVKit/AVFunctionBarRecordingControlsController.h>\n#import <AVKit/AVAudioTrackView.h>\n#import <AVKit/AVAnimator.h>\n#import <AVKit/AVPooledData.h>\n#import <AVKit/AVDataPool.h>\n#import <AVKit/AVButton.h>\n#import <AVKit/AVAudioAmplitudeExtractionSessionHelper.h>\n#import <AVKit/AVAudioAmplitudeExtractionSession.h>\n#import <AVKit/AVEstimatedDurationFormatter.h>\n#import <AVKit/AVFunctionBarCaptureInputSourceSelectionViewController.h>\n#import <AVKit/AVFloatingCaptureControlsViewController.h>\n#import <AVKit/AVTouchBarRecordingControlsViewController.h>\n#import <AVKit/AVCameraDisabledView.h>\n#import <AVKit/AVInlinePlaybackControlsViewController.h>\n#import <AVKit/AVTrimSelectionView.h>\n#import <AVKit/AVTouchBarCaptureInputSourceSelectionViewController.h>\n#import <AVKit/AVControlsViewController.h>\n#import <AVKit/AVTouchBarPlaybackControlsProvider.h>\n#import <AVKit/AVThumbnail.h>\n#import <AVKit/AVTouchBarMediaSelectionOption.h>\n#import <AVKit/AVTrimDimmerView.h>\n#import <AVKit/AVCaptureController.h>\n#import <AVKit/AVCaptureDeviceInputSourceItem.h>\n#import <AVKit/AVCaptureQualityItem.h>\n#import <AVKit/AVAudioView.h>\n#import <AVKit/AVAudioPlaybackControlsViewController.h>\n#import <AVKit/AVAudioTrimControlsViewController.h>\n#import <AVKit/AVScrubber.h>\n#import <AVKit/AVScrubberCell.h>\n#import <AVKit/AVInlineCaptureControlsViewController.h>\n#import <AVKit/AVTrimControlsViewController.h>\n#import <AVKit/AVFoundationExportSession.h>\n#import <AVKit/AVAudioOnlyIndicatorView.h>\n#import <AVKit/AVOutputDevicePickerButton.h>\n#import <AVKit/AVCaptureView.h>\n#import <AVKit/AVTimer.h>\n#import <AVKit/AVPanoramicStretchHelper.h>\n#import <AVKit/AVTouchBarTrackView.h>\n#import <AVKit/AVFunctionBarScrubberController.h>\n#import <AVKit/AVTouchBarRecordingControlsController.h>\n#import <AVKit/AVTouchBarPlaybackControlsItem.h>\n#import <AVKit/AVBindingInfo.h>\n#import <AVKit/AVTouchBarScrubberExpandButtonCell.h>\n#import <AVKit/AVTouchBarScrubberExpandButton.h>\n#import <AVKit/AVTouchBarScrubber.h>\n#import <AVKit/AVAssetAudioExtractor.h>\n#import <AVKit/AVTouchBarMediaSelectionButtonViewController.h>\n#import <AVKit/AVLoadingIndicatorView.h>\n#import <AVKit/AVFunctionBarMediaSelectionViewController.h>\n#import <AVKit/AVAppendableData.h>\n#import <AVKit/AVReadOnlyRangeOfAppendableData.h>\n#import <AVKit/AVOutputDeviceMenuController.h>\n#import <AVKit/AVThumbnailGenerationRequest.h>\n#import <AVKit/AVThumbnailGenerator.h>\n#import <AVKit/AVOutputDeviceMenuRemoteViewController.h>\n#import <AVKit/AVScrollSliderView.h>\n#import <AVKit/AVExportProgressWindowController.h>\n#import <AVKit/AVAudioAmplitudeSampleExtractionHelper.h>\n#import <AVKit/AVWaveformGenerator.h>\n#import <AVKit/AVTrimTracksView.h>\n#import <AVKit/AVVolumeButton.h>\n#import <AVKit/AVVolumeButtonContentView.h>\n#import <AVKit/AVVolumeImageValueTransformer.h>\n\nvoid* AVAddAudibleMediaSelectionOptionsToMenu(void);\nvoid* AVAddLegibleMediaSelectionOptionsToMenu(void);\nvoid* AVAssetSlowMotionTimeRangeFromNormalizedSlowMotionTimeRange(void);\nvoid* AVAsynchronousLocalizedString(void);\nvoid* AVBundle(void);\nvoid* AVComparePointDistances(void);\nvoid* AVCompareSizeAspectRatios(void);\nvoid* AVConstrainRectInsideRectWithoutResizing(void);\nvoid* AVDisableUserIdleDisplaySleep(void);\nvoid* AVDisableUserIdleSystemSleep(void);\nvoid* AVEnableUserIdleDisplaySleep(void);\nvoid* AVEnableUserIdleSystemSleep(void);\nvoid* AVLocalizedString(void);\nvoid* AVLocalizedStringFromTable(void);\nvoid* AVMarginEqual(void);\nvoid* AVMarginFromString(void);\nvoid* AVNormalizedSlowMotionTimeRangeFromAssetSlowMotionTimeRange(void);\nvoid* AVRectHasAspectRatio(void);\nvoid* AVRectIsValid(void);\nvoid* AVStringFromMargin(void);\nvoid* AVTrimViewDescriptionForPart(void);\nvoid* AVTrimViewFocusedPart(void);\nvoid* AVTrimViewNudgePartInDirection(void);\nvoid* AVTrimViewRectForPart(void);\nvoid* AVTrimViewSetValueForPartWithValidation(void);\nvoid* AVTrimViewValueForPart(void);\nvoid* _AVDebugLog(void);\nvoid* _AVLog(void);\nvoid* _AVMethodProem(void);\nvoid* makeActionButton(void);\nvoid* makeAudioLevelIndicatorView(void);\nvoid* makeAuxiliaryControlsView(void);\nvoid* makeCancelButton(void);\nvoid* makeCaptureDeviceErrorImageView(void);\nvoid* makeCaptureDeviceSelectionButton(void);\nvoid* makeCaptureVolumeControl(void);\nvoid* makeChapterButton(void);\nvoid* makeExternalPlaybackButton(void);\nvoid* makeFinishingRecordingProgressIndicator(void);\nvoid* makeFloatingControlsPlayPauseButton(void);\nvoid* makeFloatingControlsScanBackwardButton(void);\nvoid* makeFloatingControlsScanForwardButton(void);\nvoid* makeFloatingControlsSeekFrameBackwardButton(void);\nvoid* makeFloatingControlsSeekFrameForwardButton(void);\nvoid* makeFullScreenButton(void);\nvoid* makeGotoEndOfSeekableRangesButton(void);\nvoid* makeMediaSelectionButton(void);\nvoid* makePlayPauseButton(void);\nvoid* makeRecordButtonFloatingStyle(void);\nvoid* makeRecordButtonInlineStyle(void);\nvoid* makeRecordingStatusView(void);\nvoid* makeRedDotViewFloatingStyle(void);\nvoid* makeRedDotViewInlineStyle(void);\nvoid* makeScrubber(void);\nvoid* makeShareButton(void);\nvoid* makeSkipBackwardThirtySecondsButton(void);\nvoid* makeTimelineControl(void);\nvoid* makeTrimButton(void);\nvoid* makeTrimView(void);\nvoid* makeVolumeControl(void);\nvoid* makeZoomHorizontallyButton(void);\nvoid* makeZoomVerticallyButton(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVLoadingIndicatorView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVLoadingIndicatorView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVMicaPackage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMicaPackage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVMinimalPlaybackControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMinimalPlaybackControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVMovableView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMovableView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVMutableValueTiming.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVMutableValueTiming : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVNowPlayingInfoController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVNowPlayingInfoController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVObservationController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVObservationController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVOutputContextController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputContextController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVOutputDeviceDiscoverySessionController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceDiscoverySessionController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVOutputDeviceMenuController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceMenuController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVOutputDeviceMenuRemoteViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDeviceMenuRemoteViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVOutputDeviceMenuServiceInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVOutputDeviceMenuServiceInterface\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVOutputDevicePickerButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVOutputDevicePickerButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVPanoramicStretchHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPanoramicStretchHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVPlayButtonLegacy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayButtonLegacy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVPlayerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVPlayerControllerTimeResolver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerControllerTimeResolver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVPlayerControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPlayerControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVPlayerView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n#include <AppKit/AppKit.h>\n\n@interface AVPlayerView : NSView\n\n-(id)initWithCoder:(NSCoder *) decoder;\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVPooledData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVPooledData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVProgressEstimator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVProgressEstimator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVProxyKVOObserver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVProxyKVOObserver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVReadOnlyRangeOfAppendableData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVReadOnlyRangeOfAppendableData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVRoutePickerRemoteViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRoutePickerRemoteViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVRoutePickerView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVRoutePickerView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVRoutePickerViewHostInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVRoutePickerViewHostInterface\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVRoutePickerViewRemoteViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVRoutePickerViewRemoteViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVRoutePickerViewServiceInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVRoutePickerViewServiceInterface\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScanBackwardTextFieldHiddenValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScanBackwardTextFieldHiddenValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScanBackwardTextFieldValueValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScanBackwardTextFieldValueValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScanForwardTextFieldHiddenValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScanForwardTextFieldHiddenValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScanForwardTextFieldValueValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScanForwardTextFieldValueValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScrollSliderView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScrollSliderView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScrubber.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScrubber : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScrubberCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScrubberCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScrubberValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVScrubberValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVScrubberValueTransformerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVScrubberValueTransformerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVShadowTimeFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVShadowTimeFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVShadowTimeFormatterLegacy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVShadowTimeFormatterLegacy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVShareController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVShareController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVSlowMotionSlider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSlowMotionSlider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVSlowMotionSliderDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVSlowMotionSliderDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVSlowMotionSliderHandleView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSlowMotionSliderHandleView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVSlowMotionSliderTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVSlowMotionSliderTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVStatusOverlayView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVStatusOverlayView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVThumbnail.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVThumbnail : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVThumbnailCache.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVThumbnailCache : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVThumbnailGenerationRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVThumbnailGenerationRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVThumbnailGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVThumbnailGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTimeControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTimeControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTimeIndicatorPopover.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTimeIndicatorPopover : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTimeIndicatorPopoverContentViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTimeIndicatorPopoverContentViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTimer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTimer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarAudioCaptureDeviceSelectionButtonViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarAudioCaptureDeviceSelectionButtonViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarAudioCaptureDeviceSelectionButtonViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarAudioCaptureDeviceSelectionButtonViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarAudioTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarAudioTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarCaptureInputSourceItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarCaptureInputSourceItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarCaptureInputSourceSelectionViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarCaptureInputSourceSelectionViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarCaptureInputSourceSelectionViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarCaptureInputSourceSelectionViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarDescriptionBasedPlayerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarDescriptionBasedPlayerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarMediaSelectionButtonViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarMediaSelectionButtonViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarMediaSelectionButtonViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarMediaSelectionButtonViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarMediaSelectionControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarMediaSelectionControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarMediaSelectionOption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarMediaSelectionOption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarMediaSelectionOptionTwoLineButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarMediaSelectionOptionTwoLineButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarMediaSelectionOptionTwoLineButtonCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarMediaSelectionOptionTwoLineButtonCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarMediaSelectionViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarMediaSelectionViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarMediaSelectionViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarMediaSelectionViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarPlaybackControlsController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarPlaybackControlsController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarPlaybackControlsControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarPlaybackControlsControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarPlaybackControlsControllingInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarPlaybackControlsControllingInternal\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarPlaybackControlsItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarPlaybackControlsItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarPlaybackControlsProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarPlaybackControlsProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarPlaybackControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarPlaybackControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarRecordingControlsController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarRecordingControlsController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarRecordingControlsControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarRecordingControlsControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarRecordingControlsControllingInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarRecordingControlsControllingInternal\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarRecordingControlsProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarRecordingControlsProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarRecordingControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarRecordingControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarScrubber.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarScrubber : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarScrubberController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarScrubberController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarScrubberControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarScrubberControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarScrubberDelegateInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarScrubberDelegateInternal\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarScrubberExpandButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarScrubberExpandButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarScrubberExpandButtonCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarScrubberExpandButtonCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarScrubberInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarScrubberInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarScrubberKnobView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarScrubberKnobView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarTrackControlling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTouchBarTrackControlling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarTrackViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarTrackViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarTrimControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarTrimControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTouchBarVideoTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTouchBarVideoTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrackViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrackViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimClipView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimClipView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimControlsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimControlsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimControlsViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTrimControlsViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimDimmerView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimDimmerView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimIndicatorAccessibilityElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimIndicatorAccessibilityElement : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimIndicatorFocusRingView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimIndicatorFocusRingView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimIndicatorView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimIndicatorView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimSelectionEndFocusRingView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimSelectionEndFocusRingView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimSelectionStartFocusRingView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimSelectionStartFocusRingView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimSelectionView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimSelectionView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimTracksView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimTracksView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVTrimView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVTrimViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVTrimViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVUnsupportedContentIndicatorView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVUnsupportedContentIndicatorView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVValueTiming.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVValueTiming : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVVideoTrackThumbnail.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoTrackThumbnail : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVVideoTrackThumbnailManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoTrackThumbnailManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVVideoTrackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVideoTrackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVVolumeButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVolumeButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVVolumeButtonContentView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVolumeButtonContentView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVVolumeButtonDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVVolumeButtonDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVVolumeImageValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVVolumeImageValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/AVWaveformGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVWaveformGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/CAAnimationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CAAnimationDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/CALayerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CALayerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/CAMLParserDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CAMLParserDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/CAStateControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CAStateControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSAccessibilityElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSAccessibilityElement\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSAccessibilitySlider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSAccessibilitySlider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSDescriptionBasedTouchBarItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSDescriptionBasedTouchBarItem\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSDescriptionBasedTouchBarItemProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSDescriptionBasedTouchBarItemProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSMenuDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSMenuDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSPopoverDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSPopoverDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSSharingServiceDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSSharingServiceDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSSharingServicePickerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSSharingServicePickerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSStackViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSStackViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSTouchBarDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTouchBarDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSTouchBarProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTouchBarProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/NSUserInterfaceValidations.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSUserInterfaceValidations\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/include/AVKit/_AVBundle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AVBundle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAnimator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAnimator.h>\n\n@implementation AVAnimator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAppendableData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAppendableData.h>\n\n@implementation AVAppendableData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAssetAudioExtractor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAssetAudioExtractor.h>\n\n@implementation AVAssetAudioExtractor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAtomicCancelationToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAtomicCancelationToken.h>\n\n@implementation AVAtomicCancelationToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioAmplitudeExtractionSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioAmplitudeExtractionSession.h>\n\n@implementation AVAudioAmplitudeExtractionSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioAmplitudeExtractionSessionHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioAmplitudeExtractionSessionHelper.h>\n\n@implementation AVAudioAmplitudeExtractionSessionHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioAmplitudeSampleExtractionHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioAmplitudeSampleExtractionHelper.h>\n\n@implementation AVAudioAmplitudeSampleExtractionHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioExtractor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioExtractor.h>\n\n@implementation AVAudioExtractor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioLevelIndicatorView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioLevelIndicatorView.h>\n\n@implementation AVAudioLevelIndicatorView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioOnlyIndicatorView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioOnlyIndicatorView.h>\n\n@implementation AVAudioOnlyIndicatorView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioPlaybackControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioPlaybackControlsViewController.h>\n\n@implementation AVAudioPlaybackControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioTrackView.h>\n\n@implementation AVAudioTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioTrimControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioTrimControlsViewController.h>\n\n@implementation AVAudioTrimControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVAudioView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVAudioView.h>\n\n@implementation AVAudioView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVBindingInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVBindingInfo.h>\n\n@implementation AVBindingInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVBindingInfoLegacy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVBindingInfoLegacy.h>\n\n@implementation AVBindingInfoLegacy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVButton.h>\n\n@implementation AVButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCameraDisabledView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCameraDisabledView.h>\n\n@implementation AVCameraDisabledView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCaptureController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCaptureController.h>\n\n@implementation AVCaptureController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCaptureControlsRecordingViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCaptureControlsRecordingViewController.h>\n\n@implementation AVCaptureControlsRecordingViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCaptureControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCaptureControlsViewController.h>\n\n@implementation AVCaptureControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCaptureDeviceInputSourceItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCaptureDeviceInputSourceItem.h>\n\n@implementation AVCaptureDeviceInputSourceItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCaptureDeviceSelectionController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCaptureDeviceSelectionController.h>\n\n@implementation AVCaptureDeviceSelectionController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCaptureQualityItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCaptureQualityItem.h>\n\n@implementation AVCaptureQualityItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCaptureView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCaptureView.h>\n\n@implementation AVCaptureView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVChapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVChapter.h>\n\n@implementation AVChapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVChapterMenuController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVChapterMenuController.h>\n\n@implementation AVChapterMenuController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVCircularProgressIndicator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVCircularProgressIndicator.h>\n\n@implementation AVCircularProgressIndicator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVConcreteMutableValueTiming.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVConcreteMutableValueTiming.h>\n\n@implementation AVConcreteMutableValueTiming\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVConcreteValueTiming.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVConcreteValueTiming.h>\n\n@implementation AVConcreteValueTiming\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVControlsContainerViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVControlsContainerViewController.h>\n\n@implementation AVControlsContainerViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVControlsViewController.h>\n\n@implementation AVControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVDataPool.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVDataPool.h>\n\n@implementation AVDataPool\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVDraggableImageView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVDraggableImageView.h>\n\n@implementation AVDraggableImageView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVEstimatedDurationFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVEstimatedDurationFormatter.h>\n\n@implementation AVEstimatedDurationFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVExportProgressWindowController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVExportProgressWindowController.h>\n\n@implementation AVExportProgressWindowController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVExternalPlaybackIndicatorView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVExternalPlaybackIndicatorView.h>\n\n@implementation AVExternalPlaybackIndicatorView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFloatingCaptureControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFloatingCaptureControlsViewController.h>\n\n@implementation AVFloatingCaptureControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFloatingPlaybackControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFloatingPlaybackControlsViewController.h>\n\n@implementation AVFloatingPlaybackControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFloatingTrimControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFloatingTrimControlsViewController.h>\n\n@implementation AVFloatingTrimControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFoundationExportSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFoundationExportSession.h>\n\n@implementation AVFoundationExportSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarAudioCaptureDeviceSelectionButtonViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarAudioCaptureDeviceSelectionButtonViewController.h>\n\n@implementation AVFunctionBarAudioCaptureDeviceSelectionButtonViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarAudioTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarAudioTrackView.h>\n\n@implementation AVFunctionBarAudioTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarCaptureInputSourceItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarCaptureInputSourceItem.h>\n\n@implementation AVFunctionBarCaptureInputSourceItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarCaptureInputSourceSelectionViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarCaptureInputSourceSelectionViewController.h>\n\n@implementation AVFunctionBarCaptureInputSourceSelectionViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarMediaSelectionOption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarMediaSelectionOption.h>\n\n@implementation AVFunctionBarMediaSelectionOption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarMediaSelectionViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarMediaSelectionViewController.h>\n\n@implementation AVFunctionBarMediaSelectionViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarPlaybackControlsController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarPlaybackControlsController.h>\n\n@implementation AVFunctionBarPlaybackControlsController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarPlaybackControlsProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarPlaybackControlsProvider.h>\n\n@implementation AVFunctionBarPlaybackControlsProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarPlaybackControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarPlaybackControlsViewController.h>\n\n@implementation AVFunctionBarPlaybackControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarRecordingControlsController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarRecordingControlsController.h>\n\n@implementation AVFunctionBarRecordingControlsController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarRecordingControlsProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarRecordingControlsProvider.h>\n\n@implementation AVFunctionBarRecordingControlsProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarRecordingControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarRecordingControlsViewController.h>\n\n@implementation AVFunctionBarRecordingControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarScrubber.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarScrubber.h>\n\n@implementation AVFunctionBarScrubber\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarScrubberController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarScrubberController.h>\n\n@implementation AVFunctionBarScrubberController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarScrubberExpandButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarScrubberExpandButton.h>\n\n@implementation AVFunctionBarScrubberExpandButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarScrubberExpandButtonCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarScrubberExpandButtonCell.h>\n\n@implementation AVFunctionBarScrubberExpandButtonCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarScrubberInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarScrubberInternal.h>\n\n@implementation AVFunctionBarScrubberInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarScrubberKnobView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarScrubberKnobView.h>\n\n@implementation AVFunctionBarScrubberKnobView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarTrackView.h>\n\n@implementation AVFunctionBarTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarTrackViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarTrackViewController.h>\n\n@implementation AVFunctionBarTrackViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVFunctionBarVideoTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVFunctionBarVideoTrackView.h>\n\n@implementation AVFunctionBarVideoTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVInlineCaptureControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVInlineCaptureControlsViewController.h>\n\n@implementation AVInlineCaptureControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVInlineDeviceSelectionCaptureControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVInlineDeviceSelectionCaptureControlsViewController.h>\n\n@implementation AVInlineDeviceSelectionCaptureControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVInlinePlaybackControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVInlinePlaybackControlsViewController.h>\n\n@implementation AVInlinePlaybackControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVInlineTrimControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVInlineTrimControlsViewController.h>\n\n@implementation AVInlineTrimControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVIterableCache.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVIterableCache.h>\n\n@implementation AVIterableCache\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVKeyValueChange.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVKeyValueChange.h>\n\n@implementation AVKeyValueChange\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVKit.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <AVKit/AVKit.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* AVAddAudibleMediaSelectionOptionsToMenu(void)\n{\n    if (verbose) puts(\"STUB: AVAddAudibleMediaSelectionOptionsToMenu called\");\n    return NULL;\n}\n\nvoid* AVAddLegibleMediaSelectionOptionsToMenu(void)\n{\n    if (verbose) puts(\"STUB: AVAddLegibleMediaSelectionOptionsToMenu called\");\n    return NULL;\n}\n\nvoid* AVAssetSlowMotionTimeRangeFromNormalizedSlowMotionTimeRange(void)\n{\n    if (verbose) puts(\"STUB: AVAssetSlowMotionTimeRangeFromNormalizedSlowMotionTimeRange called\");\n    return NULL;\n}\n\nvoid* AVAsynchronousLocalizedString(void)\n{\n    if (verbose) puts(\"STUB: AVAsynchronousLocalizedString called\");\n    return NULL;\n}\n\nvoid* AVBundle(void)\n{\n    if (verbose) puts(\"STUB: AVBundle called\");\n    return NULL;\n}\n\nvoid* AVComparePointDistances(void)\n{\n    if (verbose) puts(\"STUB: AVComparePointDistances called\");\n    return NULL;\n}\n\nvoid* AVCompareSizeAspectRatios(void)\n{\n    if (verbose) puts(\"STUB: AVCompareSizeAspectRatios called\");\n    return NULL;\n}\n\nvoid* AVConstrainRectInsideRectWithoutResizing(void)\n{\n    if (verbose) puts(\"STUB: AVConstrainRectInsideRectWithoutResizing called\");\n    return NULL;\n}\n\nvoid* AVDisableUserIdleDisplaySleep(void)\n{\n    if (verbose) puts(\"STUB: AVDisableUserIdleDisplaySleep called\");\n    return NULL;\n}\n\nvoid* AVDisableUserIdleSystemSleep(void)\n{\n    if (verbose) puts(\"STUB: AVDisableUserIdleSystemSleep called\");\n    return NULL;\n}\n\nvoid* AVEnableUserIdleDisplaySleep(void)\n{\n    if (verbose) puts(\"STUB: AVEnableUserIdleDisplaySleep called\");\n    return NULL;\n}\n\nvoid* AVEnableUserIdleSystemSleep(void)\n{\n    if (verbose) puts(\"STUB: AVEnableUserIdleSystemSleep called\");\n    return NULL;\n}\n\nvoid* AVLocalizedString(void)\n{\n    if (verbose) puts(\"STUB: AVLocalizedString called\");\n    return NULL;\n}\n\nvoid* AVLocalizedStringFromTable(void)\n{\n    if (verbose) puts(\"STUB: AVLocalizedStringFromTable called\");\n    return NULL;\n}\n\nvoid* AVMarginEqual(void)\n{\n    if (verbose) puts(\"STUB: AVMarginEqual called\");\n    return NULL;\n}\n\nvoid* AVMarginFromString(void)\n{\n    if (verbose) puts(\"STUB: AVMarginFromString called\");\n    return NULL;\n}\n\nvoid* AVNormalizedSlowMotionTimeRangeFromAssetSlowMotionTimeRange(void)\n{\n    if (verbose) puts(\"STUB: AVNormalizedSlowMotionTimeRangeFromAssetSlowMotionTimeRange called\");\n    return NULL;\n}\n\nvoid* AVRectHasAspectRatio(void)\n{\n    if (verbose) puts(\"STUB: AVRectHasAspectRatio called\");\n    return NULL;\n}\n\nvoid* AVRectIsValid(void)\n{\n    if (verbose) puts(\"STUB: AVRectIsValid called\");\n    return NULL;\n}\n\nvoid* AVStringFromMargin(void)\n{\n    if (verbose) puts(\"STUB: AVStringFromMargin called\");\n    return NULL;\n}\n\nvoid* AVTrimViewDescriptionForPart(void)\n{\n    if (verbose) puts(\"STUB: AVTrimViewDescriptionForPart called\");\n    return NULL;\n}\n\nvoid* AVTrimViewFocusedPart(void)\n{\n    if (verbose) puts(\"STUB: AVTrimViewFocusedPart called\");\n    return NULL;\n}\n\nvoid* AVTrimViewNudgePartInDirection(void)\n{\n    if (verbose) puts(\"STUB: AVTrimViewNudgePartInDirection called\");\n    return NULL;\n}\n\nvoid* AVTrimViewRectForPart(void)\n{\n    if (verbose) puts(\"STUB: AVTrimViewRectForPart called\");\n    return NULL;\n}\n\nvoid* AVTrimViewSetValueForPartWithValidation(void)\n{\n    if (verbose) puts(\"STUB: AVTrimViewSetValueForPartWithValidation called\");\n    return NULL;\n}\n\nvoid* AVTrimViewValueForPart(void)\n{\n    if (verbose) puts(\"STUB: AVTrimViewValueForPart called\");\n    return NULL;\n}\n\nvoid* _AVDebugLog(void)\n{\n    if (verbose) puts(\"STUB: _AVDebugLog called\");\n    return NULL;\n}\n\nvoid* _AVLog(void)\n{\n    if (verbose) puts(\"STUB: _AVLog called\");\n    return NULL;\n}\n\nvoid* _AVMethodProem(void)\n{\n    if (verbose) puts(\"STUB: _AVMethodProem called\");\n    return NULL;\n}\n\nvoid* makeActionButton(void)\n{\n    if (verbose) puts(\"STUB: makeActionButton called\");\n    return NULL;\n}\n\nvoid* makeAudioLevelIndicatorView(void)\n{\n    if (verbose) puts(\"STUB: makeAudioLevelIndicatorView called\");\n    return NULL;\n}\n\nvoid* makeAuxiliaryControlsView(void)\n{\n    if (verbose) puts(\"STUB: makeAuxiliaryControlsView called\");\n    return NULL;\n}\n\nvoid* makeCancelButton(void)\n{\n    if (verbose) puts(\"STUB: makeCancelButton called\");\n    return NULL;\n}\n\nvoid* makeCaptureDeviceErrorImageView(void)\n{\n    if (verbose) puts(\"STUB: makeCaptureDeviceErrorImageView called\");\n    return NULL;\n}\n\nvoid* makeCaptureDeviceSelectionButton(void)\n{\n    if (verbose) puts(\"STUB: makeCaptureDeviceSelectionButton called\");\n    return NULL;\n}\n\nvoid* makeCaptureVolumeControl(void)\n{\n    if (verbose) puts(\"STUB: makeCaptureVolumeControl called\");\n    return NULL;\n}\n\nvoid* makeChapterButton(void)\n{\n    if (verbose) puts(\"STUB: makeChapterButton called\");\n    return NULL;\n}\n\nvoid* makeExternalPlaybackButton(void)\n{\n    if (verbose) puts(\"STUB: makeExternalPlaybackButton called\");\n    return NULL;\n}\n\nvoid* makeFinishingRecordingProgressIndicator(void)\n{\n    if (verbose) puts(\"STUB: makeFinishingRecordingProgressIndicator called\");\n    return NULL;\n}\n\nvoid* makeFloatingControlsPlayPauseButton(void)\n{\n    if (verbose) puts(\"STUB: makeFloatingControlsPlayPauseButton called\");\n    return NULL;\n}\n\nvoid* makeFloatingControlsScanBackwardButton(void)\n{\n    if (verbose) puts(\"STUB: makeFloatingControlsScanBackwardButton called\");\n    return NULL;\n}\n\nvoid* makeFloatingControlsScanForwardButton(void)\n{\n    if (verbose) puts(\"STUB: makeFloatingControlsScanForwardButton called\");\n    return NULL;\n}\n\nvoid* makeFloatingControlsSeekFrameBackwardButton(void)\n{\n    if (verbose) puts(\"STUB: makeFloatingControlsSeekFrameBackwardButton called\");\n    return NULL;\n}\n\nvoid* makeFloatingControlsSeekFrameForwardButton(void)\n{\n    if (verbose) puts(\"STUB: makeFloatingControlsSeekFrameForwardButton called\");\n    return NULL;\n}\n\nvoid* makeFullScreenButton(void)\n{\n    if (verbose) puts(\"STUB: makeFullScreenButton called\");\n    return NULL;\n}\n\nvoid* makeGotoEndOfSeekableRangesButton(void)\n{\n    if (verbose) puts(\"STUB: makeGotoEndOfSeekableRangesButton called\");\n    return NULL;\n}\n\nvoid* makeMediaSelectionButton(void)\n{\n    if (verbose) puts(\"STUB: makeMediaSelectionButton called\");\n    return NULL;\n}\n\nvoid* makePlayPauseButton(void)\n{\n    if (verbose) puts(\"STUB: makePlayPauseButton called\");\n    return NULL;\n}\n\nvoid* makeRecordButtonFloatingStyle(void)\n{\n    if (verbose) puts(\"STUB: makeRecordButtonFloatingStyle called\");\n    return NULL;\n}\n\nvoid* makeRecordButtonInlineStyle(void)\n{\n    if (verbose) puts(\"STUB: makeRecordButtonInlineStyle called\");\n    return NULL;\n}\n\nvoid* makeRecordingStatusView(void)\n{\n    if (verbose) puts(\"STUB: makeRecordingStatusView called\");\n    return NULL;\n}\n\nvoid* makeRedDotViewFloatingStyle(void)\n{\n    if (verbose) puts(\"STUB: makeRedDotViewFloatingStyle called\");\n    return NULL;\n}\n\nvoid* makeRedDotViewInlineStyle(void)\n{\n    if (verbose) puts(\"STUB: makeRedDotViewInlineStyle called\");\n    return NULL;\n}\n\nvoid* makeScrubber(void)\n{\n    if (verbose) puts(\"STUB: makeScrubber called\");\n    return NULL;\n}\n\nvoid* makeShareButton(void)\n{\n    if (verbose) puts(\"STUB: makeShareButton called\");\n    return NULL;\n}\n\nvoid* makeSkipBackwardThirtySecondsButton(void)\n{\n    if (verbose) puts(\"STUB: makeSkipBackwardThirtySecondsButton called\");\n    return NULL;\n}\n\nvoid* makeTimelineControl(void)\n{\n    if (verbose) puts(\"STUB: makeTimelineControl called\");\n    return NULL;\n}\n\nvoid* makeTrimButton(void)\n{\n    if (verbose) puts(\"STUB: makeTrimButton called\");\n    return NULL;\n}\n\nvoid* makeTrimView(void)\n{\n    if (verbose) puts(\"STUB: makeTrimView called\");\n    return NULL;\n}\n\nvoid* makeVolumeControl(void)\n{\n    if (verbose) puts(\"STUB: makeVolumeControl called\");\n    return NULL;\n}\n\nvoid* makeZoomHorizontallyButton(void)\n{\n    if (verbose) puts(\"STUB: makeZoomHorizontallyButton called\");\n    return NULL;\n}\n\nvoid* makeZoomVerticallyButton(void)\n{\n    if (verbose) puts(\"STUB: makeZoomVerticallyButton called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVLoadingIndicatorView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVLoadingIndicatorView.h>\n\n@implementation AVLoadingIndicatorView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVMicaPackage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVMicaPackage.h>\n\n@implementation AVMicaPackage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVMinimalPlaybackControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVMinimalPlaybackControlsViewController.h>\n\n@implementation AVMinimalPlaybackControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVMovableView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVMovableView.h>\n\n@implementation AVMovableView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVMutableValueTiming.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVMutableValueTiming.h>\n\n@implementation AVMutableValueTiming\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVNowPlayingInfoController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVNowPlayingInfoController.h>\n\n@implementation AVNowPlayingInfoController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVObservationController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVObservationController.h>\n\n@implementation AVObservationController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVOutputContextController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVOutputContextController.h>\n\n@implementation AVOutputContextController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVOutputDeviceDiscoverySessionController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVOutputDeviceDiscoverySessionController.h>\n\n@implementation AVOutputDeviceDiscoverySessionController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVOutputDeviceMenuController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVOutputDeviceMenuController.h>\n\n@implementation AVOutputDeviceMenuController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVOutputDeviceMenuRemoteViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVOutputDeviceMenuRemoteViewController.h>\n\n@implementation AVOutputDeviceMenuRemoteViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVOutputDevicePickerButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVOutputDevicePickerButton.h>\n\n@implementation AVOutputDevicePickerButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVPanoramicStretchHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVPanoramicStretchHelper.h>\n\n@implementation AVPanoramicStretchHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVPlayButtonLegacy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVPlayButtonLegacy.h>\n\n@implementation AVPlayButtonLegacy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVPlayerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVPlayerController.h>\n\n@implementation AVPlayerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVPlayerControllerTimeResolver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVPlayerControllerTimeResolver.h>\n\n@implementation AVPlayerControllerTimeResolver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVPlayerControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVPlayerControlsViewController.h>\n\n@implementation AVPlayerControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVPlayerView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVPlayerView.h>\n\n@implementation AVPlayerView\n\n-(id)initWithCoder:(NSCoder *) decoder {\n    self = [super initWithCoder: decoder];\n    return self;\n}\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVPooledData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVPooledData.h>\n\n@implementation AVPooledData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVProgressEstimator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVProgressEstimator.h>\n\n@implementation AVProgressEstimator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVProxyKVOObserver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVProxyKVOObserver.h>\n\n@implementation AVProxyKVOObserver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVReadOnlyRangeOfAppendableData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVReadOnlyRangeOfAppendableData.h>\n\n@implementation AVReadOnlyRangeOfAppendableData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVRoutePickerRemoteViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVRoutePickerRemoteViewController.h>\n\n@implementation AVRoutePickerRemoteViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVRoutePickerView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVRoutePickerView.h>\n\n@implementation AVRoutePickerView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVScanBackwardTextFieldHiddenValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVScanBackwardTextFieldHiddenValueTransformer.h>\n\n@implementation AVScanBackwardTextFieldHiddenValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVScanBackwardTextFieldValueValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVScanBackwardTextFieldValueValueTransformer.h>\n\n@implementation AVScanBackwardTextFieldValueValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVScanForwardTextFieldHiddenValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVScanForwardTextFieldHiddenValueTransformer.h>\n\n@implementation AVScanForwardTextFieldHiddenValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVScanForwardTextFieldValueValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVScanForwardTextFieldValueValueTransformer.h>\n\n@implementation AVScanForwardTextFieldValueValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVScrollSliderView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVScrollSliderView.h>\n\n@implementation AVScrollSliderView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVScrubber.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVScrubber.h>\n\n@implementation AVScrubber\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVScrubberCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVScrubberCell.h>\n\n@implementation AVScrubberCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVScrubberValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVScrubberValueTransformer.h>\n\n@implementation AVScrubberValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVShadowTimeFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVShadowTimeFormatter.h>\n\n@implementation AVShadowTimeFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVShadowTimeFormatterLegacy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVShadowTimeFormatterLegacy.h>\n\n@implementation AVShadowTimeFormatterLegacy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVShareController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVShareController.h>\n\n@implementation AVShareController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVSlowMotionSlider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVSlowMotionSlider.h>\n\n@implementation AVSlowMotionSlider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVSlowMotionSliderHandleView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVSlowMotionSliderHandleView.h>\n\n@implementation AVSlowMotionSliderHandleView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVSlowMotionSliderTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVSlowMotionSliderTrackView.h>\n\n@implementation AVSlowMotionSliderTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVStatusOverlayView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVStatusOverlayView.h>\n\n@implementation AVStatusOverlayView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVThumbnail.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVThumbnail.h>\n\n@implementation AVThumbnail\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVThumbnailCache.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVThumbnailCache.h>\n\n@implementation AVThumbnailCache\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVThumbnailGenerationRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVThumbnailGenerationRequest.h>\n\n@implementation AVThumbnailGenerationRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVThumbnailGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVThumbnailGenerator.h>\n\n@implementation AVThumbnailGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTimeIndicatorPopover.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTimeIndicatorPopover.h>\n\n@implementation AVTimeIndicatorPopover\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTimeIndicatorPopoverContentViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTimeIndicatorPopoverContentViewController.h>\n\n@implementation AVTimeIndicatorPopoverContentViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTimer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTimer.h>\n\n@implementation AVTimer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarAudioCaptureDeviceSelectionButtonViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarAudioCaptureDeviceSelectionButtonViewController.h>\n\n@implementation AVTouchBarAudioCaptureDeviceSelectionButtonViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarAudioTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarAudioTrackView.h>\n\n@implementation AVTouchBarAudioTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarCaptureInputSourceItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarCaptureInputSourceItem.h>\n\n@implementation AVTouchBarCaptureInputSourceItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarCaptureInputSourceSelectionViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarCaptureInputSourceSelectionViewController.h>\n\n@implementation AVTouchBarCaptureInputSourceSelectionViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarDescriptionBasedPlayerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarDescriptionBasedPlayerController.h>\n\n@implementation AVTouchBarDescriptionBasedPlayerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarMediaSelectionButtonViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarMediaSelectionButtonViewController.h>\n\n@implementation AVTouchBarMediaSelectionButtonViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarMediaSelectionOption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarMediaSelectionOption.h>\n\n@implementation AVTouchBarMediaSelectionOption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarMediaSelectionOptionTwoLineButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarMediaSelectionOptionTwoLineButton.h>\n\n@implementation AVTouchBarMediaSelectionOptionTwoLineButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarMediaSelectionOptionTwoLineButtonCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarMediaSelectionOptionTwoLineButtonCell.h>\n\n@implementation AVTouchBarMediaSelectionOptionTwoLineButtonCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarMediaSelectionViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarMediaSelectionViewController.h>\n\n@implementation AVTouchBarMediaSelectionViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarPlaybackControlsController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarPlaybackControlsController.h>\n\n@implementation AVTouchBarPlaybackControlsController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarPlaybackControlsItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarPlaybackControlsItem.h>\n\n@implementation AVTouchBarPlaybackControlsItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarPlaybackControlsProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarPlaybackControlsProvider.h>\n\n@implementation AVTouchBarPlaybackControlsProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarPlaybackControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarPlaybackControlsViewController.h>\n\n@implementation AVTouchBarPlaybackControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarRecordingControlsController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarRecordingControlsController.h>\n\n@implementation AVTouchBarRecordingControlsController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarRecordingControlsProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarRecordingControlsProvider.h>\n\n@implementation AVTouchBarRecordingControlsProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarRecordingControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarRecordingControlsViewController.h>\n\n@implementation AVTouchBarRecordingControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarScrubber.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarScrubber.h>\n\n@implementation AVTouchBarScrubber\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarScrubberController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarScrubberController.h>\n\n@implementation AVTouchBarScrubberController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarScrubberExpandButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarScrubberExpandButton.h>\n\n@implementation AVTouchBarScrubberExpandButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarScrubberExpandButtonCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarScrubberExpandButtonCell.h>\n\n@implementation AVTouchBarScrubberExpandButtonCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarScrubberInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarScrubberInternal.h>\n\n@implementation AVTouchBarScrubberInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarScrubberKnobView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarScrubberKnobView.h>\n\n@implementation AVTouchBarScrubberKnobView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarTrackView.h>\n\n@implementation AVTouchBarTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarTrackViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarTrackViewController.h>\n\n@implementation AVTouchBarTrackViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarTrimControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarTrimControlsViewController.h>\n\n@implementation AVTouchBarTrimControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTouchBarVideoTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTouchBarVideoTrackView.h>\n\n@implementation AVTouchBarVideoTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrackView.h>\n\n@implementation AVTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrackViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrackViewController.h>\n\n@implementation AVTrackViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimClipView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimClipView.h>\n\n@implementation AVTrimClipView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimControlsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimControlsViewController.h>\n\n@implementation AVTrimControlsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimDimmerView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimDimmerView.h>\n\n@implementation AVTrimDimmerView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimIndicatorAccessibilityElement.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimIndicatorAccessibilityElement.h>\n\n@implementation AVTrimIndicatorAccessibilityElement\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimIndicatorFocusRingView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimIndicatorFocusRingView.h>\n\n@implementation AVTrimIndicatorFocusRingView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimIndicatorView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimIndicatorView.h>\n\n@implementation AVTrimIndicatorView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimSelectionEndFocusRingView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimSelectionEndFocusRingView.h>\n\n@implementation AVTrimSelectionEndFocusRingView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimSelectionStartFocusRingView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimSelectionStartFocusRingView.h>\n\n@implementation AVTrimSelectionStartFocusRingView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimSelectionView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimSelectionView.h>\n\n@implementation AVTrimSelectionView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimTracksView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimTracksView.h>\n\n@implementation AVTrimTracksView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVTrimView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVTrimView.h>\n\n@implementation AVTrimView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVUnsupportedContentIndicatorView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVUnsupportedContentIndicatorView.h>\n\n@implementation AVUnsupportedContentIndicatorView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVValueTiming.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVValueTiming.h>\n\n@implementation AVValueTiming\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVVideoTrackThumbnail.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVVideoTrackThumbnail.h>\n\n@implementation AVVideoTrackThumbnail\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVVideoTrackThumbnailManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVVideoTrackThumbnailManager.h>\n\n@implementation AVVideoTrackThumbnailManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVVideoTrackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVVideoTrackView.h>\n\n@implementation AVVideoTrackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVVolumeButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVVolumeButton.h>\n\n@implementation AVVolumeButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVVolumeButtonContentView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVVolumeButtonContentView.h>\n\n@implementation AVVolumeButtonContentView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVVolumeImageValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVVolumeImageValueTransformer.h>\n\n@implementation AVVolumeImageValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/AVWaveformGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/AVWaveformGenerator.h>\n\n@implementation AVWaveformGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AVKit/src/_AVBundle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AVKit/_AVBundle.h>\n\n@implementation _AVBundle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accelerate/CMakeLists.txt",
    "content": "project(Accelerate)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"4.0.0\")\n\nremove_sdk_framework(Accelerate)\n\nadd_subdirectory(vecLib)\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(Accelerate\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/Accelerate\"\n)\n\nadd_framework(Accelerate\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/Accelerate.c\n\n    DEPENDENCIES\n        system\n)\n\nreexport(Accelerate vecLib ${CMAKE_CURRENT_BINARY_DIR}/vecLib/vecLib)\n"
  },
  {
    "path": "src/frameworks/Accelerate/include/Accelerate/Accelerate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Accelerate_H_\n#define _Accelerate_H_\n\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/src/Accelerate.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Accelerate/Accelerate.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/BLAS/CMakeLists.txt",
    "content": "project(BLAS)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nadd_darling_library(BLAS SHARED\n    src/BLAS.c\n)\nmake_fat(BLAS)\ntarget_link_libraries(BLAS system)\ninstall(TARGETS BLAS DESTINATION libexec/darling/usr/lib)\n\nset_property(TARGET BLAS PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET BLAS PROPERTY DYLIB_BUILD_NAME libBLAS.dylib)\ninstall(TARGETS BLAS DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libBLAS.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libBLAS.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/BLAS/include/BLAS/BLAS.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _BLAS_H_\n#define _BLAS_H_\n\nvoid* APL_dgemm(void);\nvoid* APL_dgemm_LU(void);\nvoid* APL_dgemm_QR(void);\nvoid* APL_dtrsm(void);\nvoid* APL_sgemm(void);\nvoid* APL_sgemm_LU(void);\nvoid* APL_sgemm_QR(void);\nvoid* APL_strsm(void);\nvoid* APPLE_NTHREADS(void);\nvoid* ATLU_DestroyThreadMemory(void);\nvoid* CAXPY(void);\nvoid* CAXPY_(void);\nvoid* CCOPY(void);\nvoid* CCOPY_(void);\nvoid* CDOTC(void);\nvoid* CDOTC_(void);\nvoid* CDOTU(void);\nvoid* CDOTU_(void);\nvoid* CGBMV(void);\nvoid* CGBMV_(void);\nvoid* CGEMM(void);\nvoid* CGEMM_(void);\nvoid* CGEMV(void);\nvoid* CGEMV_(void);\nvoid* CGERC(void);\nvoid* CGERC_(void);\nvoid* CGERU(void);\nvoid* CGERU_(void);\nvoid* CHBMV(void);\nvoid* CHBMV_(void);\nvoid* CHEMM(void);\nvoid* CHEMM_(void);\nvoid* CHEMV(void);\nvoid* CHEMV_(void);\nvoid* CHER(void);\nvoid* CHER2(void);\nvoid* CHER2K(void);\nvoid* CHER2K_(void);\nvoid* CHER2_(void);\nvoid* CHERK(void);\nvoid* CHERK_(void);\nvoid* CHER_(void);\nvoid* CHPMV(void);\nvoid* CHPMV_(void);\nvoid* CHPR(void);\nvoid* CHPR2(void);\nvoid* CHPR2_(void);\nvoid* CHPR_(void);\nvoid* CROTG(void);\nvoid* CROTG_(void);\nvoid* CSCAL(void);\nvoid* CSCAL_(void);\nvoid* CSROT(void);\nvoid* CSROT_(void);\nvoid* CSSCAL(void);\nvoid* CSSCAL_(void);\nvoid* CSWAP(void);\nvoid* CSWAP_(void);\nvoid* CSYMM(void);\nvoid* CSYMM_(void);\nvoid* CSYR2K(void);\nvoid* CSYR2K_(void);\nvoid* CSYRK(void);\nvoid* CSYRK_(void);\nvoid* CTBMV(void);\nvoid* CTBMV_(void);\nvoid* CTBSV(void);\nvoid* CTBSV_(void);\nvoid* CTPMV(void);\nvoid* CTPMV_(void);\nvoid* CTPSV(void);\nvoid* CTPSV_(void);\nvoid* CTRMM(void);\nvoid* CTRMM_(void);\nvoid* CTRMV(void);\nvoid* CTRMV_(void);\nvoid* CTRSM(void);\nvoid* CTRSM_(void);\nvoid* CTRSV(void);\nvoid* CTRSV_(void);\nvoid* DASUM(void);\nvoid* DASUM_(void);\nvoid* DAXPY(void);\nvoid* DAXPY_(void);\nvoid* DCABS1(void);\nvoid* DCABS1_(void);\nvoid* DCOPY(void);\nvoid* DCOPY_(void);\nvoid* DDOT(void);\nvoid* DDOT_(void);\nvoid* DGBMV(void);\nvoid* DGBMV_(void);\nvoid* DGEMM(void);\nvoid* DGEMM_(void);\nvoid* DGEMV(void);\nvoid* DGEMV_(void);\nvoid* DGER(void);\nvoid* DGER_(void);\nvoid* DNRM2(void);\nvoid* DNRM2_(void);\nvoid* DROT(void);\nvoid* DROTG(void);\nvoid* DROTG_(void);\nvoid* DROTM(void);\nvoid* DROTMG(void);\nvoid* DROTMG_(void);\nvoid* DROTM_(void);\nvoid* DROT_(void);\nvoid* DSBMV(void);\nvoid* DSBMV_(void);\nvoid* DSCAL(void);\nvoid* DSCAL_(void);\nvoid* DSDOT(void);\nvoid* DSDOT_(void);\nvoid* DSPMV(void);\nvoid* DSPMV_(void);\nvoid* DSPR(void);\nvoid* DSPR2(void);\nvoid* DSPR2_(void);\nvoid* DSPR_(void);\nvoid* DSWAP(void);\nvoid* DSWAP_(void);\nvoid* DSYMM(void);\nvoid* DSYMM_(void);\nvoid* DSYMV(void);\nvoid* DSYMV_(void);\nvoid* DSYR(void);\nvoid* DSYR2(void);\nvoid* DSYR2K(void);\nvoid* DSYR2K_(void);\nvoid* DSYR2_(void);\nvoid* DSYRK(void);\nvoid* DSYRK_(void);\nvoid* DSYR_(void);\nvoid* DTBMV(void);\nvoid* DTBMV_(void);\nvoid* DTBSV(void);\nvoid* DTBSV_(void);\nvoid* DTPMV(void);\nvoid* DTPMV_(void);\nvoid* DTPSV(void);\nvoid* DTPSV_(void);\nvoid* DTRMM(void);\nvoid* DTRMM_(void);\nvoid* DTRMV(void);\nvoid* DTRMV_(void);\nvoid* DTRSM(void);\nvoid* DTRSM_(void);\nvoid* DTRSV(void);\nvoid* DTRSV_(void);\nvoid* DZASUM(void);\nvoid* DZASUM_(void);\nvoid* DZNRM2(void);\nvoid* DZNRM2_(void);\nvoid* ICAMAX(void);\nvoid* ICAMAX_(void);\nvoid* IDAMAX(void);\nvoid* IDAMAX_(void);\nvoid* ISAMAX(void);\nvoid* ISAMAX_(void);\nvoid* IZAMAX(void);\nvoid* IZAMAX_(void);\nvoid* SASUM(void);\nvoid* SASUM_(void);\nvoid* SAXPY(void);\nvoid* SAXPY_(void);\nvoid* SCASUM(void);\nvoid* SCASUM_(void);\nvoid* SCNRM2(void);\nvoid* SCNRM2_(void);\nvoid* SCOPY(void);\nvoid* SCOPY_(void);\nvoid* SDOT(void);\nvoid* SDOT_(void);\nvoid* SDSDOT(void);\nvoid* SDSDOT_(void);\nvoid* SGBMV(void);\nvoid* SGBMV_(void);\nvoid* SGEMM(void);\nvoid* SGEMM_(void);\nvoid* SGEMV(void);\nvoid* SGEMV_(void);\nvoid* SGER(void);\nvoid* SGER_(void);\nvoid* SNRM2(void);\nvoid* SNRM2_(void);\nvoid* SROT(void);\nvoid* SROTG(void);\nvoid* SROTG_(void);\nvoid* SROTM(void);\nvoid* SROTMG(void);\nvoid* SROTMG_(void);\nvoid* SROTM_(void);\nvoid* SROT_(void);\nvoid* SSBMV(void);\nvoid* SSBMV_(void);\nvoid* SSCAL(void);\nvoid* SSCAL_(void);\nvoid* SSPMV(void);\nvoid* SSPMV_(void);\nvoid* SSPR(void);\nvoid* SSPR2(void);\nvoid* SSPR2_(void);\nvoid* SSPR_(void);\nvoid* SSWAP(void);\nvoid* SSWAP_(void);\nvoid* SSYMM(void);\nvoid* SSYMM_(void);\nvoid* SSYMV(void);\nvoid* SSYMV_(void);\nvoid* SSYR(void);\nvoid* SSYR2(void);\nvoid* SSYR2K(void);\nvoid* SSYR2K_(void);\nvoid* SSYR2_(void);\nvoid* SSYRK(void);\nvoid* SSYRK_(void);\nvoid* SSYR_(void);\nvoid* STBMV(void);\nvoid* STBMV_(void);\nvoid* STBSV(void);\nvoid* STBSV_(void);\nvoid* STPMV(void);\nvoid* STPMV_(void);\nvoid* STPSV(void);\nvoid* STPSV_(void);\nvoid* STRMM(void);\nvoid* STRMM_(void);\nvoid* STRMV(void);\nvoid* STRMV_(void);\nvoid* STRSM(void);\nvoid* STRSM_(void);\nvoid* STRSV(void);\nvoid* STRSV_(void);\nvoid* SetBLASParamErrorProc(void);\nvoid* XERBLA(void);\nvoid* XERBLA_(void);\nvoid* ZAXPY(void);\nvoid* ZAXPY_(void);\nvoid* ZCOPY(void);\nvoid* ZCOPY_(void);\nvoid* ZDOTC(void);\nvoid* ZDOTC_(void);\nvoid* ZDOTU(void);\nvoid* ZDOTU_(void);\nvoid* ZDROT(void);\nvoid* ZDROT_(void);\nvoid* ZDSCAL(void);\nvoid* ZDSCAL_(void);\nvoid* ZGBMV(void);\nvoid* ZGBMV_(void);\nvoid* ZGEMM(void);\nvoid* ZGEMM_(void);\nvoid* ZGEMV(void);\nvoid* ZGEMV_(void);\nvoid* ZGERC(void);\nvoid* ZGERC_(void);\nvoid* ZGERU(void);\nvoid* ZGERU_(void);\nvoid* ZHBMV(void);\nvoid* ZHBMV_(void);\nvoid* ZHEMM(void);\nvoid* ZHEMM_(void);\nvoid* ZHEMV(void);\nvoid* ZHEMV_(void);\nvoid* ZHER(void);\nvoid* ZHER2(void);\nvoid* ZHER2K(void);\nvoid* ZHER2K_(void);\nvoid* ZHER2_(void);\nvoid* ZHERK(void);\nvoid* ZHERK_(void);\nvoid* ZHER_(void);\nvoid* ZHPMV(void);\nvoid* ZHPMV_(void);\nvoid* ZHPR(void);\nvoid* ZHPR2(void);\nvoid* ZHPR2_(void);\nvoid* ZHPR_(void);\nvoid* ZROTG(void);\nvoid* ZROTG_(void);\nvoid* ZSCAL(void);\nvoid* ZSCAL_(void);\nvoid* ZSWAP(void);\nvoid* ZSWAP_(void);\nvoid* ZSYMM(void);\nvoid* ZSYMM_(void);\nvoid* ZSYR2K(void);\nvoid* ZSYR2K_(void);\nvoid* ZSYRK(void);\nvoid* ZSYRK_(void);\nvoid* ZTBMV(void);\nvoid* ZTBMV_(void);\nvoid* ZTBSV(void);\nvoid* ZTBSV_(void);\nvoid* ZTPMV(void);\nvoid* ZTPMV_(void);\nvoid* ZTPSV(void);\nvoid* ZTPSV_(void);\nvoid* ZTRMM(void);\nvoid* ZTRMM_(void);\nvoid* ZTRMV(void);\nvoid* ZTRMV_(void);\nvoid* ZTRSM(void);\nvoid* ZTRSM_(void);\nvoid* ZTRSV(void);\nvoid* ZTRSV_(void);\nvoid* appleblas_dgeadd(void);\nvoid* appleblas_sgeadd(void);\nvoid* catlas_caxpby(void);\nvoid* catlas_cset(void);\nvoid* catlas_daxpby(void);\nvoid* catlas_dset(void);\nvoid* catlas_saxpby(void);\nvoid* catlas_sset(void);\nvoid* catlas_zaxpby(void);\nvoid* catlas_zset(void);\nvoid* caxpy(void);\nvoid* caxpy_(void);\nvoid* cblas_caxpy(void);\nvoid* cblas_ccopy(void);\nvoid* cblas_cdotc_sub(void);\nvoid* cblas_cdotu_sub(void);\nvoid* cblas_cgbmv(void);\nvoid* cblas_cgemm(void);\nvoid* cblas_cgemv(void);\nvoid* cblas_cgerc(void);\nvoid* cblas_cgeru(void);\nvoid* cblas_chbmv(void);\nvoid* cblas_chemm(void);\nvoid* cblas_chemv(void);\nvoid* cblas_cher(void);\nvoid* cblas_cher2(void);\nvoid* cblas_cher2k(void);\nvoid* cblas_cherk(void);\nvoid* cblas_chpmv(void);\nvoid* cblas_chpr(void);\nvoid* cblas_chpr2(void);\nvoid* cblas_crotg(void);\nvoid* cblas_cscal(void);\nvoid* cblas_csrot(void);\nvoid* cblas_csscal(void);\nvoid* cblas_cswap(void);\nvoid* cblas_csymm(void);\nvoid* cblas_csyr2k(void);\nvoid* cblas_csyrk(void);\nvoid* cblas_ctbmv(void);\nvoid* cblas_ctbsv(void);\nvoid* cblas_ctpmv(void);\nvoid* cblas_ctpsv(void);\nvoid* cblas_ctrmm(void);\nvoid* cblas_ctrmv(void);\nvoid* cblas_ctrsm(void);\nvoid* cblas_ctrsv(void);\nvoid* cblas_dasum(void);\nvoid* cblas_daxpy(void);\nvoid* cblas_dcopy(void);\nvoid* cblas_ddot(void);\nvoid* cblas_dgbmv(void);\nvoid* cblas_dgemm(void);\nvoid* cblas_dgemv(void);\nvoid* cblas_dger(void);\nvoid* cblas_dnrm2(void);\nvoid* cblas_drot(void);\nvoid* cblas_drotg(void);\nvoid* cblas_drotm(void);\nvoid* cblas_drotmg(void);\nvoid* cblas_dsbmv(void);\nvoid* cblas_dscal(void);\nvoid* cblas_dsdot(void);\nvoid* cblas_dspmv(void);\nvoid* cblas_dspr(void);\nvoid* cblas_dspr2(void);\nvoid* cblas_dswap(void);\nvoid* cblas_dsymm(void);\nvoid* cblas_dsymv(void);\nvoid* cblas_dsyr(void);\nvoid* cblas_dsyr2(void);\nvoid* cblas_dsyr2k(void);\nvoid* cblas_dsyrk(void);\nvoid* cblas_dtbmv(void);\nvoid* cblas_dtbsv(void);\nvoid* cblas_dtpmv(void);\nvoid* cblas_dtpsv(void);\nvoid* cblas_dtrmm(void);\nvoid* cblas_dtrmv(void);\nvoid* cblas_dtrsm(void);\nvoid* cblas_dtrsv(void);\nvoid* cblas_dzasum(void);\nvoid* cblas_dznrm2(void);\nvoid* cblas_errprn(void);\nvoid* cblas_icamax(void);\nvoid* cblas_idamax(void);\nvoid* cblas_isamax(void);\nvoid* cblas_izamax(void);\nvoid* cblas_sasum(void);\nvoid* cblas_saxpy(void);\nvoid* cblas_scasum(void);\nvoid* cblas_scnrm2(void);\nvoid* cblas_scopy(void);\nvoid* cblas_sdot(void);\nvoid* cblas_sdsdot(void);\nvoid* cblas_sgbmv(void);\nvoid* cblas_sgemm(void);\nvoid* cblas_sgemv(void);\nvoid* cblas_sger(void);\nvoid* cblas_snrm2(void);\nvoid* cblas_srot(void);\nvoid* cblas_srotg(void);\nvoid* cblas_srotm(void);\nvoid* cblas_srotmg(void);\nvoid* cblas_ssbmv(void);\nvoid* cblas_sscal(void);\nvoid* cblas_sspmv(void);\nvoid* cblas_sspr(void);\nvoid* cblas_sspr2(void);\nvoid* cblas_sswap(void);\nvoid* cblas_ssymm(void);\nvoid* cblas_ssymv(void);\nvoid* cblas_ssyr(void);\nvoid* cblas_ssyr2(void);\nvoid* cblas_ssyr2k(void);\nvoid* cblas_ssyrk(void);\nvoid* cblas_stbmv(void);\nvoid* cblas_stbsv(void);\nvoid* cblas_stpmv(void);\nvoid* cblas_stpsv(void);\nvoid* cblas_strmm(void);\nvoid* cblas_strmv(void);\nvoid* cblas_strsm(void);\nvoid* cblas_strsv(void);\nvoid* cblas_xerbla(void);\nvoid* cblas_zaxpy(void);\nvoid* cblas_zcopy(void);\nvoid* cblas_zdotc_sub(void);\nvoid* cblas_zdotu_sub(void);\nvoid* cblas_zdrot(void);\nvoid* cblas_zdscal(void);\nvoid* cblas_zgbmv(void);\nvoid* cblas_zgemm(void);\nvoid* cblas_zgemv(void);\nvoid* cblas_zgerc(void);\nvoid* cblas_zgeru(void);\nvoid* cblas_zhbmv(void);\nvoid* cblas_zhemm(void);\nvoid* cblas_zhemv(void);\nvoid* cblas_zher(void);\nvoid* cblas_zher2(void);\nvoid* cblas_zher2k(void);\nvoid* cblas_zherk(void);\nvoid* cblas_zhpmv(void);\nvoid* cblas_zhpr(void);\nvoid* cblas_zhpr2(void);\nvoid* cblas_zrotg(void);\nvoid* cblas_zscal(void);\nvoid* cblas_zswap(void);\nvoid* cblas_zsymm(void);\nvoid* cblas_zsyr2k(void);\nvoid* cblas_zsyrk(void);\nvoid* cblas_ztbmv(void);\nvoid* cblas_ztbsv(void);\nvoid* cblas_ztpmv(void);\nvoid* cblas_ztpsv(void);\nvoid* cblas_ztrmm(void);\nvoid* cblas_ztrmv(void);\nvoid* cblas_ztrsm(void);\nvoid* cblas_ztrsv(void);\nvoid* ccopy(void);\nvoid* ccopy_(void);\nvoid* cdotc(void);\nvoid* cdotc_(void);\nvoid* cdotu(void);\nvoid* cdotu_(void);\nvoid* cgbmv(void);\nvoid* cgbmv_(void);\nvoid* cgemm(void);\nvoid* cgemm_(void);\nvoid* cgemv(void);\nvoid* cgemv_(void);\nvoid* cgerc(void);\nvoid* cgerc_(void);\nvoid* cgeru(void);\nvoid* cgeru_(void);\nvoid* chbmv(void);\nvoid* chbmv_(void);\nvoid* chemm(void);\nvoid* chemm_(void);\nvoid* chemv(void);\nvoid* chemv_(void);\nvoid* cher(void);\nvoid* cher2(void);\nvoid* cher2_(void);\nvoid* cher2k(void);\nvoid* cher2k_(void);\nvoid* cher_(void);\nvoid* cherk(void);\nvoid* cherk_(void);\nvoid* chpmv(void);\nvoid* chpmv_(void);\nvoid* chpr(void);\nvoid* chpr2(void);\nvoid* chpr2_(void);\nvoid* chpr_(void);\nvoid* crotg(void);\nvoid* crotg_(void);\nvoid* cscal(void);\nvoid* cscal_(void);\nvoid* csrot(void);\nvoid* csrot_(void);\nvoid* csscal(void);\nvoid* csscal_(void);\nvoid* cswap(void);\nvoid* cswap_(void);\nvoid* csymm(void);\nvoid* csymm_(void);\nvoid* csyr2k(void);\nvoid* csyr2k_(void);\nvoid* csyrk(void);\nvoid* csyrk_(void);\nvoid* ctbmv(void);\nvoid* ctbmv_(void);\nvoid* ctbsv(void);\nvoid* ctbsv_(void);\nvoid* ctpmv(void);\nvoid* ctpmv_(void);\nvoid* ctpsv(void);\nvoid* ctpsv_(void);\nvoid* ctrmm(void);\nvoid* ctrmm_(void);\nvoid* ctrmv(void);\nvoid* ctrmv_(void);\nvoid* ctrsm(void);\nvoid* ctrsm_(void);\nvoid* ctrsv(void);\nvoid* ctrsv_(void);\nvoid* dasum(void);\nvoid* dasum_(void);\nvoid* daxpy(void);\nvoid* daxpy_(void);\nvoid* dcabs1(void);\nvoid* dcabs1_(void);\nvoid* dcopy(void);\nvoid* dcopy_(void);\nvoid* ddot(void);\nvoid* ddot_(void);\nvoid* dgbmv(void);\nvoid* dgbmv_(void);\nvoid* dgeCopy(void);\nvoid* dgePack_A_NoTran(void);\nvoid* dgePack_A_Tran(void);\nvoid* dgePack_B_NoTran(void);\nvoid* dgePack_B_Tran(void);\nvoid* dgeSetZero(void);\nvoid* dgemm(void);\nvoid* dgemm_(void);\nvoid* dgemv(void);\nvoid* dgemv_(void);\nvoid* dger(void);\nvoid* dger_(void);\nvoid* dnrm2(void);\nvoid* dnrm2_(void);\nvoid* double_general_add(void);\nvoid* double_general_add_scalar(void);\nvoid* double_general_elementwise_product(void);\nvoid* double_general_permute_cols(void);\nvoid* double_general_permute_rows(void);\nvoid* double_general_product_scalar(void);\nvoid* double_general_splat(void);\nvoid* double_general_sub_scalar(void);\nvoid* double_general_transpose(void);\nvoid* double_inner_product_scalar(void);\nvoid* double_outer_product_scalar(void);\nvoid* drot(void);\nvoid* drot_(void);\nvoid* drotg(void);\nvoid* drotg_(void);\nvoid* drotm(void);\nvoid* drotm_(void);\nvoid* drotmg(void);\nvoid* drotmg_(void);\nvoid* dsbmv(void);\nvoid* dsbmv_(void);\nvoid* dscal(void);\nvoid* dscal_(void);\nvoid* dsdot(void);\nvoid* dsdot_(void);\nvoid* dspmv(void);\nvoid* dspmv_(void);\nvoid* dspr(void);\nvoid* dspr2(void);\nvoid* dspr2_(void);\nvoid* dspr_(void);\nvoid* dswap(void);\nvoid* dswap_(void);\nvoid* dsymm(void);\nvoid* dsymm_(void);\nvoid* dsymv(void);\nvoid* dsymv_(void);\nvoid* dsyr(void);\nvoid* dsyr2(void);\nvoid* dsyr2_(void);\nvoid* dsyr2k(void);\nvoid* dsyr2k_(void);\nvoid* dsyr_(void);\nvoid* dsyrk(void);\nvoid* dsyrk_(void);\nvoid* dtbmv(void);\nvoid* dtbmv_(void);\nvoid* dtbsv(void);\nvoid* dtbsv_(void);\nvoid* dtpmv(void);\nvoid* dtpmv_(void);\nvoid* dtpsv(void);\nvoid* dtpsv_(void);\nvoid* dtrCopyLower(void);\nvoid* dtrSetZeroLower(void);\nvoid* dtrmm(void);\nvoid* dtrmm_(void);\nvoid* dtrmv(void);\nvoid* dtrmv_(void);\nvoid* dtrsm(void);\nvoid* dtrsm_(void);\nvoid* dtrsv(void);\nvoid* dtrsv_(void);\nvoid* dzasum(void);\nvoid* dzasum_(void);\nvoid* dznrm2(void);\nvoid* dznrm2_(void);\nvoid* float_general_add(void);\nvoid* float_general_add_scalar(void);\nvoid* float_general_elementwise_product(void);\nvoid* float_general_permute_cols(void);\nvoid* float_general_permute_rows(void);\nvoid* float_general_product_scalar(void);\nvoid* float_general_splat(void);\nvoid* float_general_sub_scalar(void);\nvoid* float_general_transpose(void);\nvoid* float_inner_product_scalar(void);\nvoid* float_outer_product_scalar(void);\nvoid* getHardwareInfo(void);\nvoid* icamax(void);\nvoid* icamax_(void);\nvoid* idamax(void);\nvoid* idamax_(void);\nvoid* isamax(void);\nvoid* isamax_(void);\nvoid* izamax(void);\nvoid* izamax_(void);\nvoid* lsame_(void);\nvoid* sasum(void);\nvoid* sasum_(void);\nvoid* saxpy(void);\nvoid* saxpy_(void);\nvoid* scasum(void);\nvoid* scasum_(void);\nvoid* scnrm2(void);\nvoid* scnrm2_(void);\nvoid* scopy(void);\nvoid* scopy_(void);\nvoid* sdot(void);\nvoid* sdot_(void);\nvoid* sdsdot(void);\nvoid* sdsdot_(void);\nvoid* sgbmv(void);\nvoid* sgbmv_(void);\nvoid* sgeCopy(void);\nvoid* sgePack_A_NoTran(void);\nvoid* sgePack_A_Tran(void);\nvoid* sgePack_B_NoTran(void);\nvoid* sgePack_B_Tran(void);\nvoid* sgeSetZero(void);\nvoid* sgemm(void);\nvoid* sgemm_(void);\nvoid* sgemv(void);\nvoid* sgemv_(void);\nvoid* sger(void);\nvoid* sger_(void);\nvoid* snrm2(void);\nvoid* snrm2_(void);\nvoid* srot(void);\nvoid* srot_(void);\nvoid* srotg(void);\nvoid* srotg_(void);\nvoid* srotm(void);\nvoid* srotm_(void);\nvoid* srotmg(void);\nvoid* srotmg_(void);\nvoid* ssbmv(void);\nvoid* ssbmv_(void);\nvoid* sscal(void);\nvoid* sscal_(void);\nvoid* sspmv(void);\nvoid* sspmv_(void);\nvoid* sspr(void);\nvoid* sspr2(void);\nvoid* sspr2_(void);\nvoid* sspr_(void);\nvoid* sswap(void);\nvoid* sswap_(void);\nvoid* ssymm(void);\nvoid* ssymm_(void);\nvoid* ssymv(void);\nvoid* ssymv_(void);\nvoid* ssyr(void);\nvoid* ssyr2(void);\nvoid* ssyr2_(void);\nvoid* ssyr2k(void);\nvoid* ssyr2k_(void);\nvoid* ssyr_(void);\nvoid* ssyrk(void);\nvoid* ssyrk_(void);\nvoid* stbmv(void);\nvoid* stbmv_(void);\nvoid* stbsv(void);\nvoid* stbsv_(void);\nvoid* stpmv(void);\nvoid* stpmv_(void);\nvoid* stpsv(void);\nvoid* stpsv_(void);\nvoid* strCopyLower(void);\nvoid* strSetZeroLower(void);\nvoid* strmm(void);\nvoid* strmm_(void);\nvoid* strmv(void);\nvoid* strmv_(void);\nvoid* strsm(void);\nvoid* strsm_(void);\nvoid* strsv(void);\nvoid* strsv_(void);\nvoid* xerbla(void);\nvoid* xerbla_(void);\nvoid* xerbla_array__(void);\nvoid* zaxpy(void);\nvoid* zaxpy_(void);\nvoid* zcopy(void);\nvoid* zcopy_(void);\nvoid* zdotc(void);\nvoid* zdotc_(void);\nvoid* zdotu(void);\nvoid* zdotu_(void);\nvoid* zdrot(void);\nvoid* zdrot_(void);\nvoid* zdscal(void);\nvoid* zdscal_(void);\nvoid* zgbmv(void);\nvoid* zgbmv_(void);\nvoid* zgemm(void);\nvoid* zgemm_(void);\nvoid* zgemv(void);\nvoid* zgemv_(void);\nvoid* zgerc(void);\nvoid* zgerc_(void);\nvoid* zgeru(void);\nvoid* zgeru_(void);\nvoid* zhbmv(void);\nvoid* zhbmv_(void);\nvoid* zhemm(void);\nvoid* zhemm_(void);\nvoid* zhemv(void);\nvoid* zhemv_(void);\nvoid* zher(void);\nvoid* zher2(void);\nvoid* zher2_(void);\nvoid* zher2k(void);\nvoid* zher2k_(void);\nvoid* zher_(void);\nvoid* zherk(void);\nvoid* zherk_(void);\nvoid* zhpmv(void);\nvoid* zhpmv_(void);\nvoid* zhpr(void);\nvoid* zhpr2(void);\nvoid* zhpr2_(void);\nvoid* zhpr_(void);\nvoid* zrotg(void);\nvoid* zrotg_(void);\nvoid* zscal(void);\nvoid* zscal_(void);\nvoid* zswap(void);\nvoid* zswap_(void);\nvoid* zsymm(void);\nvoid* zsymm_(void);\nvoid* zsyr2k(void);\nvoid* zsyr2k_(void);\nvoid* zsyrk(void);\nvoid* zsyrk_(void);\nvoid* ztbmv(void);\nvoid* ztbmv_(void);\nvoid* ztbsv(void);\nvoid* ztbsv_(void);\nvoid* ztpmv(void);\nvoid* ztpmv_(void);\nvoid* ztpsv(void);\nvoid* ztpsv_(void);\nvoid* ztrmm(void);\nvoid* ztrmm_(void);\nvoid* ztrmv(void);\nvoid* ztrmv_(void);\nvoid* ztrsm(void);\nvoid* ztrsm_(void);\nvoid* ztrsv(void);\nvoid* ztrsv_(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/BLAS/src/BLAS.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <BLAS/BLAS.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* APL_dgemm(void)\n{\n    if (verbose) puts(\"STUB: APL_dgemm called\");\n    return NULL;\n}\n\nvoid* APL_dgemm_LU(void)\n{\n    if (verbose) puts(\"STUB: APL_dgemm_LU called\");\n    return NULL;\n}\n\nvoid* APL_dgemm_QR(void)\n{\n    if (verbose) puts(\"STUB: APL_dgemm_QR called\");\n    return NULL;\n}\n\nvoid* APL_dtrsm(void)\n{\n    if (verbose) puts(\"STUB: APL_dtrsm called\");\n    return NULL;\n}\n\nvoid* APL_sgemm(void)\n{\n    if (verbose) puts(\"STUB: APL_sgemm called\");\n    return NULL;\n}\n\nvoid* APL_sgemm_LU(void)\n{\n    if (verbose) puts(\"STUB: APL_sgemm_LU called\");\n    return NULL;\n}\n\nvoid* APL_sgemm_QR(void)\n{\n    if (verbose) puts(\"STUB: APL_sgemm_QR called\");\n    return NULL;\n}\n\nvoid* APL_strsm(void)\n{\n    if (verbose) puts(\"STUB: APL_strsm called\");\n    return NULL;\n}\n\nvoid* APPLE_NTHREADS(void)\n{\n    if (verbose) puts(\"STUB: APPLE_NTHREADS called\");\n    return NULL;\n}\n\nvoid* ATLU_DestroyThreadMemory(void)\n{\n    if (verbose) puts(\"STUB: ATLU_DestroyThreadMemory called\");\n    return NULL;\n}\n\nvoid* CAXPY(void)\n{\n    if (verbose) puts(\"STUB: CAXPY called\");\n    return NULL;\n}\n\nvoid* CAXPY_(void)\n{\n    if (verbose) puts(\"STUB: CAXPY_ called\");\n    return NULL;\n}\n\nvoid* CCOPY(void)\n{\n    if (verbose) puts(\"STUB: CCOPY called\");\n    return NULL;\n}\n\nvoid* CCOPY_(void)\n{\n    if (verbose) puts(\"STUB: CCOPY_ called\");\n    return NULL;\n}\n\nvoid* CDOTC(void)\n{\n    if (verbose) puts(\"STUB: CDOTC called\");\n    return NULL;\n}\n\nvoid* CDOTC_(void)\n{\n    if (verbose) puts(\"STUB: CDOTC_ called\");\n    return NULL;\n}\n\nvoid* CDOTU(void)\n{\n    if (verbose) puts(\"STUB: CDOTU called\");\n    return NULL;\n}\n\nvoid* CDOTU_(void)\n{\n    if (verbose) puts(\"STUB: CDOTU_ called\");\n    return NULL;\n}\n\nvoid* CGBMV(void)\n{\n    if (verbose) puts(\"STUB: CGBMV called\");\n    return NULL;\n}\n\nvoid* CGBMV_(void)\n{\n    if (verbose) puts(\"STUB: CGBMV_ called\");\n    return NULL;\n}\n\nvoid* CGEMM(void)\n{\n    if (verbose) puts(\"STUB: CGEMM called\");\n    return NULL;\n}\n\nvoid* CGEMM_(void)\n{\n    if (verbose) puts(\"STUB: CGEMM_ called\");\n    return NULL;\n}\n\nvoid* CGEMV(void)\n{\n    if (verbose) puts(\"STUB: CGEMV called\");\n    return NULL;\n}\n\nvoid* CGEMV_(void)\n{\n    if (verbose) puts(\"STUB: CGEMV_ called\");\n    return NULL;\n}\n\nvoid* CGERC(void)\n{\n    if (verbose) puts(\"STUB: CGERC called\");\n    return NULL;\n}\n\nvoid* CGERC_(void)\n{\n    if (verbose) puts(\"STUB: CGERC_ called\");\n    return NULL;\n}\n\nvoid* CGERU(void)\n{\n    if (verbose) puts(\"STUB: CGERU called\");\n    return NULL;\n}\n\nvoid* CGERU_(void)\n{\n    if (verbose) puts(\"STUB: CGERU_ called\");\n    return NULL;\n}\n\nvoid* CHBMV(void)\n{\n    if (verbose) puts(\"STUB: CHBMV called\");\n    return NULL;\n}\n\nvoid* CHBMV_(void)\n{\n    if (verbose) puts(\"STUB: CHBMV_ called\");\n    return NULL;\n}\n\nvoid* CHEMM(void)\n{\n    if (verbose) puts(\"STUB: CHEMM called\");\n    return NULL;\n}\n\nvoid* CHEMM_(void)\n{\n    if (verbose) puts(\"STUB: CHEMM_ called\");\n    return NULL;\n}\n\nvoid* CHEMV(void)\n{\n    if (verbose) puts(\"STUB: CHEMV called\");\n    return NULL;\n}\n\nvoid* CHEMV_(void)\n{\n    if (verbose) puts(\"STUB: CHEMV_ called\");\n    return NULL;\n}\n\nvoid* CHER(void)\n{\n    if (verbose) puts(\"STUB: CHER called\");\n    return NULL;\n}\n\nvoid* CHER2(void)\n{\n    if (verbose) puts(\"STUB: CHER2 called\");\n    return NULL;\n}\n\nvoid* CHER2K(void)\n{\n    if (verbose) puts(\"STUB: CHER2K called\");\n    return NULL;\n}\n\nvoid* CHER2K_(void)\n{\n    if (verbose) puts(\"STUB: CHER2K_ called\");\n    return NULL;\n}\n\nvoid* CHER2_(void)\n{\n    if (verbose) puts(\"STUB: CHER2_ called\");\n    return NULL;\n}\n\nvoid* CHERK(void)\n{\n    if (verbose) puts(\"STUB: CHERK called\");\n    return NULL;\n}\n\nvoid* CHERK_(void)\n{\n    if (verbose) puts(\"STUB: CHERK_ called\");\n    return NULL;\n}\n\nvoid* CHER_(void)\n{\n    if (verbose) puts(\"STUB: CHER_ called\");\n    return NULL;\n}\n\nvoid* CHPMV(void)\n{\n    if (verbose) puts(\"STUB: CHPMV called\");\n    return NULL;\n}\n\nvoid* CHPMV_(void)\n{\n    if (verbose) puts(\"STUB: CHPMV_ called\");\n    return NULL;\n}\n\nvoid* CHPR(void)\n{\n    if (verbose) puts(\"STUB: CHPR called\");\n    return NULL;\n}\n\nvoid* CHPR2(void)\n{\n    if (verbose) puts(\"STUB: CHPR2 called\");\n    return NULL;\n}\n\nvoid* CHPR2_(void)\n{\n    if (verbose) puts(\"STUB: CHPR2_ called\");\n    return NULL;\n}\n\nvoid* CHPR_(void)\n{\n    if (verbose) puts(\"STUB: CHPR_ called\");\n    return NULL;\n}\n\nvoid* CROTG(void)\n{\n    if (verbose) puts(\"STUB: CROTG called\");\n    return NULL;\n}\n\nvoid* CROTG_(void)\n{\n    if (verbose) puts(\"STUB: CROTG_ called\");\n    return NULL;\n}\n\nvoid* CSCAL(void)\n{\n    if (verbose) puts(\"STUB: CSCAL called\");\n    return NULL;\n}\n\nvoid* CSCAL_(void)\n{\n    if (verbose) puts(\"STUB: CSCAL_ called\");\n    return NULL;\n}\n\nvoid* CSROT(void)\n{\n    if (verbose) puts(\"STUB: CSROT called\");\n    return NULL;\n}\n\nvoid* CSROT_(void)\n{\n    if (verbose) puts(\"STUB: CSROT_ called\");\n    return NULL;\n}\n\nvoid* CSSCAL(void)\n{\n    if (verbose) puts(\"STUB: CSSCAL called\");\n    return NULL;\n}\n\nvoid* CSSCAL_(void)\n{\n    if (verbose) puts(\"STUB: CSSCAL_ called\");\n    return NULL;\n}\n\nvoid* CSWAP(void)\n{\n    if (verbose) puts(\"STUB: CSWAP called\");\n    return NULL;\n}\n\nvoid* CSWAP_(void)\n{\n    if (verbose) puts(\"STUB: CSWAP_ called\");\n    return NULL;\n}\n\nvoid* CSYMM(void)\n{\n    if (verbose) puts(\"STUB: CSYMM called\");\n    return NULL;\n}\n\nvoid* CSYMM_(void)\n{\n    if (verbose) puts(\"STUB: CSYMM_ called\");\n    return NULL;\n}\n\nvoid* CSYR2K(void)\n{\n    if (verbose) puts(\"STUB: CSYR2K called\");\n    return NULL;\n}\n\nvoid* CSYR2K_(void)\n{\n    if (verbose) puts(\"STUB: CSYR2K_ called\");\n    return NULL;\n}\n\nvoid* CSYRK(void)\n{\n    if (verbose) puts(\"STUB: CSYRK called\");\n    return NULL;\n}\n\nvoid* CSYRK_(void)\n{\n    if (verbose) puts(\"STUB: CSYRK_ called\");\n    return NULL;\n}\n\nvoid* CTBMV(void)\n{\n    if (verbose) puts(\"STUB: CTBMV called\");\n    return NULL;\n}\n\nvoid* CTBMV_(void)\n{\n    if (verbose) puts(\"STUB: CTBMV_ called\");\n    return NULL;\n}\n\nvoid* CTBSV(void)\n{\n    if (verbose) puts(\"STUB: CTBSV called\");\n    return NULL;\n}\n\nvoid* CTBSV_(void)\n{\n    if (verbose) puts(\"STUB: CTBSV_ called\");\n    return NULL;\n}\n\nvoid* CTPMV(void)\n{\n    if (verbose) puts(\"STUB: CTPMV called\");\n    return NULL;\n}\n\nvoid* CTPMV_(void)\n{\n    if (verbose) puts(\"STUB: CTPMV_ called\");\n    return NULL;\n}\n\nvoid* CTPSV(void)\n{\n    if (verbose) puts(\"STUB: CTPSV called\");\n    return NULL;\n}\n\nvoid* CTPSV_(void)\n{\n    if (verbose) puts(\"STUB: CTPSV_ called\");\n    return NULL;\n}\n\nvoid* CTRMM(void)\n{\n    if (verbose) puts(\"STUB: CTRMM called\");\n    return NULL;\n}\n\nvoid* CTRMM_(void)\n{\n    if (verbose) puts(\"STUB: CTRMM_ called\");\n    return NULL;\n}\n\nvoid* CTRMV(void)\n{\n    if (verbose) puts(\"STUB: CTRMV called\");\n    return NULL;\n}\n\nvoid* CTRMV_(void)\n{\n    if (verbose) puts(\"STUB: CTRMV_ called\");\n    return NULL;\n}\n\nvoid* CTRSM(void)\n{\n    if (verbose) puts(\"STUB: CTRSM called\");\n    return NULL;\n}\n\nvoid* CTRSM_(void)\n{\n    if (verbose) puts(\"STUB: CTRSM_ called\");\n    return NULL;\n}\n\nvoid* CTRSV(void)\n{\n    if (verbose) puts(\"STUB: CTRSV called\");\n    return NULL;\n}\n\nvoid* CTRSV_(void)\n{\n    if (verbose) puts(\"STUB: CTRSV_ called\");\n    return NULL;\n}\n\nvoid* DASUM(void)\n{\n    if (verbose) puts(\"STUB: DASUM called\");\n    return NULL;\n}\n\nvoid* DASUM_(void)\n{\n    if (verbose) puts(\"STUB: DASUM_ called\");\n    return NULL;\n}\n\nvoid* DAXPY(void)\n{\n    if (verbose) puts(\"STUB: DAXPY called\");\n    return NULL;\n}\n\nvoid* DAXPY_(void)\n{\n    if (verbose) puts(\"STUB: DAXPY_ called\");\n    return NULL;\n}\n\nvoid* DCABS1(void)\n{\n    if (verbose) puts(\"STUB: DCABS1 called\");\n    return NULL;\n}\n\nvoid* DCABS1_(void)\n{\n    if (verbose) puts(\"STUB: DCABS1_ called\");\n    return NULL;\n}\n\nvoid* DCOPY(void)\n{\n    if (verbose) puts(\"STUB: DCOPY called\");\n    return NULL;\n}\n\nvoid* DCOPY_(void)\n{\n    if (verbose) puts(\"STUB: DCOPY_ called\");\n    return NULL;\n}\n\nvoid* DDOT(void)\n{\n    if (verbose) puts(\"STUB: DDOT called\");\n    return NULL;\n}\n\nvoid* DDOT_(void)\n{\n    if (verbose) puts(\"STUB: DDOT_ called\");\n    return NULL;\n}\n\nvoid* DGBMV(void)\n{\n    if (verbose) puts(\"STUB: DGBMV called\");\n    return NULL;\n}\n\nvoid* DGBMV_(void)\n{\n    if (verbose) puts(\"STUB: DGBMV_ called\");\n    return NULL;\n}\n\nvoid* DGEMM(void)\n{\n    if (verbose) puts(\"STUB: DGEMM called\");\n    return NULL;\n}\n\nvoid* DGEMM_(void)\n{\n    if (verbose) puts(\"STUB: DGEMM_ called\");\n    return NULL;\n}\n\nvoid* DGEMV(void)\n{\n    if (verbose) puts(\"STUB: DGEMV called\");\n    return NULL;\n}\n\nvoid* DGEMV_(void)\n{\n    if (verbose) puts(\"STUB: DGEMV_ called\");\n    return NULL;\n}\n\nvoid* DGER(void)\n{\n    if (verbose) puts(\"STUB: DGER called\");\n    return NULL;\n}\n\nvoid* DGER_(void)\n{\n    if (verbose) puts(\"STUB: DGER_ called\");\n    return NULL;\n}\n\nvoid* DNRM2(void)\n{\n    if (verbose) puts(\"STUB: DNRM2 called\");\n    return NULL;\n}\n\nvoid* DNRM2_(void)\n{\n    if (verbose) puts(\"STUB: DNRM2_ called\");\n    return NULL;\n}\n\nvoid* DROT(void)\n{\n    if (verbose) puts(\"STUB: DROT called\");\n    return NULL;\n}\n\nvoid* DROTG(void)\n{\n    if (verbose) puts(\"STUB: DROTG called\");\n    return NULL;\n}\n\nvoid* DROTG_(void)\n{\n    if (verbose) puts(\"STUB: DROTG_ called\");\n    return NULL;\n}\n\nvoid* DROTM(void)\n{\n    if (verbose) puts(\"STUB: DROTM called\");\n    return NULL;\n}\n\nvoid* DROTMG(void)\n{\n    if (verbose) puts(\"STUB: DROTMG called\");\n    return NULL;\n}\n\nvoid* DROTMG_(void)\n{\n    if (verbose) puts(\"STUB: DROTMG_ called\");\n    return NULL;\n}\n\nvoid* DROTM_(void)\n{\n    if (verbose) puts(\"STUB: DROTM_ called\");\n    return NULL;\n}\n\nvoid* DROT_(void)\n{\n    if (verbose) puts(\"STUB: DROT_ called\");\n    return NULL;\n}\n\nvoid* DSBMV(void)\n{\n    if (verbose) puts(\"STUB: DSBMV called\");\n    return NULL;\n}\n\nvoid* DSBMV_(void)\n{\n    if (verbose) puts(\"STUB: DSBMV_ called\");\n    return NULL;\n}\n\nvoid* DSCAL(void)\n{\n    if (verbose) puts(\"STUB: DSCAL called\");\n    return NULL;\n}\n\nvoid* DSCAL_(void)\n{\n    if (verbose) puts(\"STUB: DSCAL_ called\");\n    return NULL;\n}\n\nvoid* DSDOT(void)\n{\n    if (verbose) puts(\"STUB: DSDOT called\");\n    return NULL;\n}\n\nvoid* DSDOT_(void)\n{\n    if (verbose) puts(\"STUB: DSDOT_ called\");\n    return NULL;\n}\n\nvoid* DSPMV(void)\n{\n    if (verbose) puts(\"STUB: DSPMV called\");\n    return NULL;\n}\n\nvoid* DSPMV_(void)\n{\n    if (verbose) puts(\"STUB: DSPMV_ called\");\n    return NULL;\n}\n\nvoid* DSPR(void)\n{\n    if (verbose) puts(\"STUB: DSPR called\");\n    return NULL;\n}\n\nvoid* DSPR2(void)\n{\n    if (verbose) puts(\"STUB: DSPR2 called\");\n    return NULL;\n}\n\nvoid* DSPR2_(void)\n{\n    if (verbose) puts(\"STUB: DSPR2_ called\");\n    return NULL;\n}\n\nvoid* DSPR_(void)\n{\n    if (verbose) puts(\"STUB: DSPR_ called\");\n    return NULL;\n}\n\nvoid* DSWAP(void)\n{\n    if (verbose) puts(\"STUB: DSWAP called\");\n    return NULL;\n}\n\nvoid* DSWAP_(void)\n{\n    if (verbose) puts(\"STUB: DSWAP_ called\");\n    return NULL;\n}\n\nvoid* DSYMM(void)\n{\n    if (verbose) puts(\"STUB: DSYMM called\");\n    return NULL;\n}\n\nvoid* DSYMM_(void)\n{\n    if (verbose) puts(\"STUB: DSYMM_ called\");\n    return NULL;\n}\n\nvoid* DSYMV(void)\n{\n    if (verbose) puts(\"STUB: DSYMV called\");\n    return NULL;\n}\n\nvoid* DSYMV_(void)\n{\n    if (verbose) puts(\"STUB: DSYMV_ called\");\n    return NULL;\n}\n\nvoid* DSYR(void)\n{\n    if (verbose) puts(\"STUB: DSYR called\");\n    return NULL;\n}\n\nvoid* DSYR2(void)\n{\n    if (verbose) puts(\"STUB: DSYR2 called\");\n    return NULL;\n}\n\nvoid* DSYR2K(void)\n{\n    if (verbose) puts(\"STUB: DSYR2K called\");\n    return NULL;\n}\n\nvoid* DSYR2K_(void)\n{\n    if (verbose) puts(\"STUB: DSYR2K_ called\");\n    return NULL;\n}\n\nvoid* DSYR2_(void)\n{\n    if (verbose) puts(\"STUB: DSYR2_ called\");\n    return NULL;\n}\n\nvoid* DSYRK(void)\n{\n    if (verbose) puts(\"STUB: DSYRK called\");\n    return NULL;\n}\n\nvoid* DSYRK_(void)\n{\n    if (verbose) puts(\"STUB: DSYRK_ called\");\n    return NULL;\n}\n\nvoid* DSYR_(void)\n{\n    if (verbose) puts(\"STUB: DSYR_ called\");\n    return NULL;\n}\n\nvoid* DTBMV(void)\n{\n    if (verbose) puts(\"STUB: DTBMV called\");\n    return NULL;\n}\n\nvoid* DTBMV_(void)\n{\n    if (verbose) puts(\"STUB: DTBMV_ called\");\n    return NULL;\n}\n\nvoid* DTBSV(void)\n{\n    if (verbose) puts(\"STUB: DTBSV called\");\n    return NULL;\n}\n\nvoid* DTBSV_(void)\n{\n    if (verbose) puts(\"STUB: DTBSV_ called\");\n    return NULL;\n}\n\nvoid* DTPMV(void)\n{\n    if (verbose) puts(\"STUB: DTPMV called\");\n    return NULL;\n}\n\nvoid* DTPMV_(void)\n{\n    if (verbose) puts(\"STUB: DTPMV_ called\");\n    return NULL;\n}\n\nvoid* DTPSV(void)\n{\n    if (verbose) puts(\"STUB: DTPSV called\");\n    return NULL;\n}\n\nvoid* DTPSV_(void)\n{\n    if (verbose) puts(\"STUB: DTPSV_ called\");\n    return NULL;\n}\n\nvoid* DTRMM(void)\n{\n    if (verbose) puts(\"STUB: DTRMM called\");\n    return NULL;\n}\n\nvoid* DTRMM_(void)\n{\n    if (verbose) puts(\"STUB: DTRMM_ called\");\n    return NULL;\n}\n\nvoid* DTRMV(void)\n{\n    if (verbose) puts(\"STUB: DTRMV called\");\n    return NULL;\n}\n\nvoid* DTRMV_(void)\n{\n    if (verbose) puts(\"STUB: DTRMV_ called\");\n    return NULL;\n}\n\nvoid* DTRSM(void)\n{\n    if (verbose) puts(\"STUB: DTRSM called\");\n    return NULL;\n}\n\nvoid* DTRSM_(void)\n{\n    if (verbose) puts(\"STUB: DTRSM_ called\");\n    return NULL;\n}\n\nvoid* DTRSV(void)\n{\n    if (verbose) puts(\"STUB: DTRSV called\");\n    return NULL;\n}\n\nvoid* DTRSV_(void)\n{\n    if (verbose) puts(\"STUB: DTRSV_ called\");\n    return NULL;\n}\n\nvoid* DZASUM(void)\n{\n    if (verbose) puts(\"STUB: DZASUM called\");\n    return NULL;\n}\n\nvoid* DZASUM_(void)\n{\n    if (verbose) puts(\"STUB: DZASUM_ called\");\n    return NULL;\n}\n\nvoid* DZNRM2(void)\n{\n    if (verbose) puts(\"STUB: DZNRM2 called\");\n    return NULL;\n}\n\nvoid* DZNRM2_(void)\n{\n    if (verbose) puts(\"STUB: DZNRM2_ called\");\n    return NULL;\n}\n\nvoid* ICAMAX(void)\n{\n    if (verbose) puts(\"STUB: ICAMAX called\");\n    return NULL;\n}\n\nvoid* ICAMAX_(void)\n{\n    if (verbose) puts(\"STUB: ICAMAX_ called\");\n    return NULL;\n}\n\nvoid* IDAMAX(void)\n{\n    if (verbose) puts(\"STUB: IDAMAX called\");\n    return NULL;\n}\n\nvoid* IDAMAX_(void)\n{\n    if (verbose) puts(\"STUB: IDAMAX_ called\");\n    return NULL;\n}\n\nvoid* ISAMAX(void)\n{\n    if (verbose) puts(\"STUB: ISAMAX called\");\n    return NULL;\n}\n\nvoid* ISAMAX_(void)\n{\n    if (verbose) puts(\"STUB: ISAMAX_ called\");\n    return NULL;\n}\n\nvoid* IZAMAX(void)\n{\n    if (verbose) puts(\"STUB: IZAMAX called\");\n    return NULL;\n}\n\nvoid* IZAMAX_(void)\n{\n    if (verbose) puts(\"STUB: IZAMAX_ called\");\n    return NULL;\n}\n\nvoid* SASUM(void)\n{\n    if (verbose) puts(\"STUB: SASUM called\");\n    return NULL;\n}\n\nvoid* SASUM_(void)\n{\n    if (verbose) puts(\"STUB: SASUM_ called\");\n    return NULL;\n}\n\nvoid* SAXPY(void)\n{\n    if (verbose) puts(\"STUB: SAXPY called\");\n    return NULL;\n}\n\nvoid* SAXPY_(void)\n{\n    if (verbose) puts(\"STUB: SAXPY_ called\");\n    return NULL;\n}\n\nvoid* SCASUM(void)\n{\n    if (verbose) puts(\"STUB: SCASUM called\");\n    return NULL;\n}\n\nvoid* SCASUM_(void)\n{\n    if (verbose) puts(\"STUB: SCASUM_ called\");\n    return NULL;\n}\n\nvoid* SCNRM2(void)\n{\n    if (verbose) puts(\"STUB: SCNRM2 called\");\n    return NULL;\n}\n\nvoid* SCNRM2_(void)\n{\n    if (verbose) puts(\"STUB: SCNRM2_ called\");\n    return NULL;\n}\n\nvoid* SCOPY(void)\n{\n    if (verbose) puts(\"STUB: SCOPY called\");\n    return NULL;\n}\n\nvoid* SCOPY_(void)\n{\n    if (verbose) puts(\"STUB: SCOPY_ called\");\n    return NULL;\n}\n\nvoid* SDOT(void)\n{\n    if (verbose) puts(\"STUB: SDOT called\");\n    return NULL;\n}\n\nvoid* SDOT_(void)\n{\n    if (verbose) puts(\"STUB: SDOT_ called\");\n    return NULL;\n}\n\nvoid* SDSDOT(void)\n{\n    if (verbose) puts(\"STUB: SDSDOT called\");\n    return NULL;\n}\n\nvoid* SDSDOT_(void)\n{\n    if (verbose) puts(\"STUB: SDSDOT_ called\");\n    return NULL;\n}\n\nvoid* SGBMV(void)\n{\n    if (verbose) puts(\"STUB: SGBMV called\");\n    return NULL;\n}\n\nvoid* SGBMV_(void)\n{\n    if (verbose) puts(\"STUB: SGBMV_ called\");\n    return NULL;\n}\n\nvoid* SGEMM(void)\n{\n    if (verbose) puts(\"STUB: SGEMM called\");\n    return NULL;\n}\n\nvoid* SGEMM_(void)\n{\n    if (verbose) puts(\"STUB: SGEMM_ called\");\n    return NULL;\n}\n\nvoid* SGEMV(void)\n{\n    if (verbose) puts(\"STUB: SGEMV called\");\n    return NULL;\n}\n\nvoid* SGEMV_(void)\n{\n    if (verbose) puts(\"STUB: SGEMV_ called\");\n    return NULL;\n}\n\nvoid* SGER(void)\n{\n    if (verbose) puts(\"STUB: SGER called\");\n    return NULL;\n}\n\nvoid* SGER_(void)\n{\n    if (verbose) puts(\"STUB: SGER_ called\");\n    return NULL;\n}\n\nvoid* SNRM2(void)\n{\n    if (verbose) puts(\"STUB: SNRM2 called\");\n    return NULL;\n}\n\nvoid* SNRM2_(void)\n{\n    if (verbose) puts(\"STUB: SNRM2_ called\");\n    return NULL;\n}\n\nvoid* SROT(void)\n{\n    if (verbose) puts(\"STUB: SROT called\");\n    return NULL;\n}\n\nvoid* SROTG(void)\n{\n    if (verbose) puts(\"STUB: SROTG called\");\n    return NULL;\n}\n\nvoid* SROTG_(void)\n{\n    if (verbose) puts(\"STUB: SROTG_ called\");\n    return NULL;\n}\n\nvoid* SROTM(void)\n{\n    if (verbose) puts(\"STUB: SROTM called\");\n    return NULL;\n}\n\nvoid* SROTMG(void)\n{\n    if (verbose) puts(\"STUB: SROTMG called\");\n    return NULL;\n}\n\nvoid* SROTMG_(void)\n{\n    if (verbose) puts(\"STUB: SROTMG_ called\");\n    return NULL;\n}\n\nvoid* SROTM_(void)\n{\n    if (verbose) puts(\"STUB: SROTM_ called\");\n    return NULL;\n}\n\nvoid* SROT_(void)\n{\n    if (verbose) puts(\"STUB: SROT_ called\");\n    return NULL;\n}\n\nvoid* SSBMV(void)\n{\n    if (verbose) puts(\"STUB: SSBMV called\");\n    return NULL;\n}\n\nvoid* SSBMV_(void)\n{\n    if (verbose) puts(\"STUB: SSBMV_ called\");\n    return NULL;\n}\n\nvoid* SSCAL(void)\n{\n    if (verbose) puts(\"STUB: SSCAL called\");\n    return NULL;\n}\n\nvoid* SSCAL_(void)\n{\n    if (verbose) puts(\"STUB: SSCAL_ called\");\n    return NULL;\n}\n\nvoid* SSPMV(void)\n{\n    if (verbose) puts(\"STUB: SSPMV called\");\n    return NULL;\n}\n\nvoid* SSPMV_(void)\n{\n    if (verbose) puts(\"STUB: SSPMV_ called\");\n    return NULL;\n}\n\nvoid* SSPR(void)\n{\n    if (verbose) puts(\"STUB: SSPR called\");\n    return NULL;\n}\n\nvoid* SSPR2(void)\n{\n    if (verbose) puts(\"STUB: SSPR2 called\");\n    return NULL;\n}\n\nvoid* SSPR2_(void)\n{\n    if (verbose) puts(\"STUB: SSPR2_ called\");\n    return NULL;\n}\n\nvoid* SSPR_(void)\n{\n    if (verbose) puts(\"STUB: SSPR_ called\");\n    return NULL;\n}\n\nvoid* SSWAP(void)\n{\n    if (verbose) puts(\"STUB: SSWAP called\");\n    return NULL;\n}\n\nvoid* SSWAP_(void)\n{\n    if (verbose) puts(\"STUB: SSWAP_ called\");\n    return NULL;\n}\n\nvoid* SSYMM(void)\n{\n    if (verbose) puts(\"STUB: SSYMM called\");\n    return NULL;\n}\n\nvoid* SSYMM_(void)\n{\n    if (verbose) puts(\"STUB: SSYMM_ called\");\n    return NULL;\n}\n\nvoid* SSYMV(void)\n{\n    if (verbose) puts(\"STUB: SSYMV called\");\n    return NULL;\n}\n\nvoid* SSYMV_(void)\n{\n    if (verbose) puts(\"STUB: SSYMV_ called\");\n    return NULL;\n}\n\nvoid* SSYR(void)\n{\n    if (verbose) puts(\"STUB: SSYR called\");\n    return NULL;\n}\n\nvoid* SSYR2(void)\n{\n    if (verbose) puts(\"STUB: SSYR2 called\");\n    return NULL;\n}\n\nvoid* SSYR2K(void)\n{\n    if (verbose) puts(\"STUB: SSYR2K called\");\n    return NULL;\n}\n\nvoid* SSYR2K_(void)\n{\n    if (verbose) puts(\"STUB: SSYR2K_ called\");\n    return NULL;\n}\n\nvoid* SSYR2_(void)\n{\n    if (verbose) puts(\"STUB: SSYR2_ called\");\n    return NULL;\n}\n\nvoid* SSYRK(void)\n{\n    if (verbose) puts(\"STUB: SSYRK called\");\n    return NULL;\n}\n\nvoid* SSYRK_(void)\n{\n    if (verbose) puts(\"STUB: SSYRK_ called\");\n    return NULL;\n}\n\nvoid* SSYR_(void)\n{\n    if (verbose) puts(\"STUB: SSYR_ called\");\n    return NULL;\n}\n\nvoid* STBMV(void)\n{\n    if (verbose) puts(\"STUB: STBMV called\");\n    return NULL;\n}\n\nvoid* STBMV_(void)\n{\n    if (verbose) puts(\"STUB: STBMV_ called\");\n    return NULL;\n}\n\nvoid* STBSV(void)\n{\n    if (verbose) puts(\"STUB: STBSV called\");\n    return NULL;\n}\n\nvoid* STBSV_(void)\n{\n    if (verbose) puts(\"STUB: STBSV_ called\");\n    return NULL;\n}\n\nvoid* STPMV(void)\n{\n    if (verbose) puts(\"STUB: STPMV called\");\n    return NULL;\n}\n\nvoid* STPMV_(void)\n{\n    if (verbose) puts(\"STUB: STPMV_ called\");\n    return NULL;\n}\n\nvoid* STPSV(void)\n{\n    if (verbose) puts(\"STUB: STPSV called\");\n    return NULL;\n}\n\nvoid* STPSV_(void)\n{\n    if (verbose) puts(\"STUB: STPSV_ called\");\n    return NULL;\n}\n\nvoid* STRMM(void)\n{\n    if (verbose) puts(\"STUB: STRMM called\");\n    return NULL;\n}\n\nvoid* STRMM_(void)\n{\n    if (verbose) puts(\"STUB: STRMM_ called\");\n    return NULL;\n}\n\nvoid* STRMV(void)\n{\n    if (verbose) puts(\"STUB: STRMV called\");\n    return NULL;\n}\n\nvoid* STRMV_(void)\n{\n    if (verbose) puts(\"STUB: STRMV_ called\");\n    return NULL;\n}\n\nvoid* STRSM(void)\n{\n    if (verbose) puts(\"STUB: STRSM called\");\n    return NULL;\n}\n\nvoid* STRSM_(void)\n{\n    if (verbose) puts(\"STUB: STRSM_ called\");\n    return NULL;\n}\n\nvoid* STRSV(void)\n{\n    if (verbose) puts(\"STUB: STRSV called\");\n    return NULL;\n}\n\nvoid* STRSV_(void)\n{\n    if (verbose) puts(\"STUB: STRSV_ called\");\n    return NULL;\n}\n\nvoid* SetBLASParamErrorProc(void)\n{\n    if (verbose) puts(\"STUB: SetBLASParamErrorProc called\");\n    return NULL;\n}\n\nvoid* XERBLA(void)\n{\n    if (verbose) puts(\"STUB: XERBLA called\");\n    return NULL;\n}\n\nvoid* XERBLA_(void)\n{\n    if (verbose) puts(\"STUB: XERBLA_ called\");\n    return NULL;\n}\n\nvoid* ZAXPY(void)\n{\n    if (verbose) puts(\"STUB: ZAXPY called\");\n    return NULL;\n}\n\nvoid* ZAXPY_(void)\n{\n    if (verbose) puts(\"STUB: ZAXPY_ called\");\n    return NULL;\n}\n\nvoid* ZCOPY(void)\n{\n    if (verbose) puts(\"STUB: ZCOPY called\");\n    return NULL;\n}\n\nvoid* ZCOPY_(void)\n{\n    if (verbose) puts(\"STUB: ZCOPY_ called\");\n    return NULL;\n}\n\nvoid* ZDOTC(void)\n{\n    if (verbose) puts(\"STUB: ZDOTC called\");\n    return NULL;\n}\n\nvoid* ZDOTC_(void)\n{\n    if (verbose) puts(\"STUB: ZDOTC_ called\");\n    return NULL;\n}\n\nvoid* ZDOTU(void)\n{\n    if (verbose) puts(\"STUB: ZDOTU called\");\n    return NULL;\n}\n\nvoid* ZDOTU_(void)\n{\n    if (verbose) puts(\"STUB: ZDOTU_ called\");\n    return NULL;\n}\n\nvoid* ZDROT(void)\n{\n    if (verbose) puts(\"STUB: ZDROT called\");\n    return NULL;\n}\n\nvoid* ZDROT_(void)\n{\n    if (verbose) puts(\"STUB: ZDROT_ called\");\n    return NULL;\n}\n\nvoid* ZDSCAL(void)\n{\n    if (verbose) puts(\"STUB: ZDSCAL called\");\n    return NULL;\n}\n\nvoid* ZDSCAL_(void)\n{\n    if (verbose) puts(\"STUB: ZDSCAL_ called\");\n    return NULL;\n}\n\nvoid* ZGBMV(void)\n{\n    if (verbose) puts(\"STUB: ZGBMV called\");\n    return NULL;\n}\n\nvoid* ZGBMV_(void)\n{\n    if (verbose) puts(\"STUB: ZGBMV_ called\");\n    return NULL;\n}\n\nvoid* ZGEMM(void)\n{\n    if (verbose) puts(\"STUB: ZGEMM called\");\n    return NULL;\n}\n\nvoid* ZGEMM_(void)\n{\n    if (verbose) puts(\"STUB: ZGEMM_ called\");\n    return NULL;\n}\n\nvoid* ZGEMV(void)\n{\n    if (verbose) puts(\"STUB: ZGEMV called\");\n    return NULL;\n}\n\nvoid* ZGEMV_(void)\n{\n    if (verbose) puts(\"STUB: ZGEMV_ called\");\n    return NULL;\n}\n\nvoid* ZGERC(void)\n{\n    if (verbose) puts(\"STUB: ZGERC called\");\n    return NULL;\n}\n\nvoid* ZGERC_(void)\n{\n    if (verbose) puts(\"STUB: ZGERC_ called\");\n    return NULL;\n}\n\nvoid* ZGERU(void)\n{\n    if (verbose) puts(\"STUB: ZGERU called\");\n    return NULL;\n}\n\nvoid* ZGERU_(void)\n{\n    if (verbose) puts(\"STUB: ZGERU_ called\");\n    return NULL;\n}\n\nvoid* ZHBMV(void)\n{\n    if (verbose) puts(\"STUB: ZHBMV called\");\n    return NULL;\n}\n\nvoid* ZHBMV_(void)\n{\n    if (verbose) puts(\"STUB: ZHBMV_ called\");\n    return NULL;\n}\n\nvoid* ZHEMM(void)\n{\n    if (verbose) puts(\"STUB: ZHEMM called\");\n    return NULL;\n}\n\nvoid* ZHEMM_(void)\n{\n    if (verbose) puts(\"STUB: ZHEMM_ called\");\n    return NULL;\n}\n\nvoid* ZHEMV(void)\n{\n    if (verbose) puts(\"STUB: ZHEMV called\");\n    return NULL;\n}\n\nvoid* ZHEMV_(void)\n{\n    if (verbose) puts(\"STUB: ZHEMV_ called\");\n    return NULL;\n}\n\nvoid* ZHER(void)\n{\n    if (verbose) puts(\"STUB: ZHER called\");\n    return NULL;\n}\n\nvoid* ZHER2(void)\n{\n    if (verbose) puts(\"STUB: ZHER2 called\");\n    return NULL;\n}\n\nvoid* ZHER2K(void)\n{\n    if (verbose) puts(\"STUB: ZHER2K called\");\n    return NULL;\n}\n\nvoid* ZHER2K_(void)\n{\n    if (verbose) puts(\"STUB: ZHER2K_ called\");\n    return NULL;\n}\n\nvoid* ZHER2_(void)\n{\n    if (verbose) puts(\"STUB: ZHER2_ called\");\n    return NULL;\n}\n\nvoid* ZHERK(void)\n{\n    if (verbose) puts(\"STUB: ZHERK called\");\n    return NULL;\n}\n\nvoid* ZHERK_(void)\n{\n    if (verbose) puts(\"STUB: ZHERK_ called\");\n    return NULL;\n}\n\nvoid* ZHER_(void)\n{\n    if (verbose) puts(\"STUB: ZHER_ called\");\n    return NULL;\n}\n\nvoid* ZHPMV(void)\n{\n    if (verbose) puts(\"STUB: ZHPMV called\");\n    return NULL;\n}\n\nvoid* ZHPMV_(void)\n{\n    if (verbose) puts(\"STUB: ZHPMV_ called\");\n    return NULL;\n}\n\nvoid* ZHPR(void)\n{\n    if (verbose) puts(\"STUB: ZHPR called\");\n    return NULL;\n}\n\nvoid* ZHPR2(void)\n{\n    if (verbose) puts(\"STUB: ZHPR2 called\");\n    return NULL;\n}\n\nvoid* ZHPR2_(void)\n{\n    if (verbose) puts(\"STUB: ZHPR2_ called\");\n    return NULL;\n}\n\nvoid* ZHPR_(void)\n{\n    if (verbose) puts(\"STUB: ZHPR_ called\");\n    return NULL;\n}\n\nvoid* ZROTG(void)\n{\n    if (verbose) puts(\"STUB: ZROTG called\");\n    return NULL;\n}\n\nvoid* ZROTG_(void)\n{\n    if (verbose) puts(\"STUB: ZROTG_ called\");\n    return NULL;\n}\n\nvoid* ZSCAL(void)\n{\n    if (verbose) puts(\"STUB: ZSCAL called\");\n    return NULL;\n}\n\nvoid* ZSCAL_(void)\n{\n    if (verbose) puts(\"STUB: ZSCAL_ called\");\n    return NULL;\n}\n\nvoid* ZSWAP(void)\n{\n    if (verbose) puts(\"STUB: ZSWAP called\");\n    return NULL;\n}\n\nvoid* ZSWAP_(void)\n{\n    if (verbose) puts(\"STUB: ZSWAP_ called\");\n    return NULL;\n}\n\nvoid* ZSYMM(void)\n{\n    if (verbose) puts(\"STUB: ZSYMM called\");\n    return NULL;\n}\n\nvoid* ZSYMM_(void)\n{\n    if (verbose) puts(\"STUB: ZSYMM_ called\");\n    return NULL;\n}\n\nvoid* ZSYR2K(void)\n{\n    if (verbose) puts(\"STUB: ZSYR2K called\");\n    return NULL;\n}\n\nvoid* ZSYR2K_(void)\n{\n    if (verbose) puts(\"STUB: ZSYR2K_ called\");\n    return NULL;\n}\n\nvoid* ZSYRK(void)\n{\n    if (verbose) puts(\"STUB: ZSYRK called\");\n    return NULL;\n}\n\nvoid* ZSYRK_(void)\n{\n    if (verbose) puts(\"STUB: ZSYRK_ called\");\n    return NULL;\n}\n\nvoid* ZTBMV(void)\n{\n    if (verbose) puts(\"STUB: ZTBMV called\");\n    return NULL;\n}\n\nvoid* ZTBMV_(void)\n{\n    if (verbose) puts(\"STUB: ZTBMV_ called\");\n    return NULL;\n}\n\nvoid* ZTBSV(void)\n{\n    if (verbose) puts(\"STUB: ZTBSV called\");\n    return NULL;\n}\n\nvoid* ZTBSV_(void)\n{\n    if (verbose) puts(\"STUB: ZTBSV_ called\");\n    return NULL;\n}\n\nvoid* ZTPMV(void)\n{\n    if (verbose) puts(\"STUB: ZTPMV called\");\n    return NULL;\n}\n\nvoid* ZTPMV_(void)\n{\n    if (verbose) puts(\"STUB: ZTPMV_ called\");\n    return NULL;\n}\n\nvoid* ZTPSV(void)\n{\n    if (verbose) puts(\"STUB: ZTPSV called\");\n    return NULL;\n}\n\nvoid* ZTPSV_(void)\n{\n    if (verbose) puts(\"STUB: ZTPSV_ called\");\n    return NULL;\n}\n\nvoid* ZTRMM(void)\n{\n    if (verbose) puts(\"STUB: ZTRMM called\");\n    return NULL;\n}\n\nvoid* ZTRMM_(void)\n{\n    if (verbose) puts(\"STUB: ZTRMM_ called\");\n    return NULL;\n}\n\nvoid* ZTRMV(void)\n{\n    if (verbose) puts(\"STUB: ZTRMV called\");\n    return NULL;\n}\n\nvoid* ZTRMV_(void)\n{\n    if (verbose) puts(\"STUB: ZTRMV_ called\");\n    return NULL;\n}\n\nvoid* ZTRSM(void)\n{\n    if (verbose) puts(\"STUB: ZTRSM called\");\n    return NULL;\n}\n\nvoid* ZTRSM_(void)\n{\n    if (verbose) puts(\"STUB: ZTRSM_ called\");\n    return NULL;\n}\n\nvoid* ZTRSV(void)\n{\n    if (verbose) puts(\"STUB: ZTRSV called\");\n    return NULL;\n}\n\nvoid* ZTRSV_(void)\n{\n    if (verbose) puts(\"STUB: ZTRSV_ called\");\n    return NULL;\n}\n\nvoid* appleblas_dgeadd(void)\n{\n    if (verbose) puts(\"STUB: appleblas_dgeadd called\");\n    return NULL;\n}\n\nvoid* appleblas_sgeadd(void)\n{\n    if (verbose) puts(\"STUB: appleblas_sgeadd called\");\n    return NULL;\n}\n\nvoid* catlas_caxpby(void)\n{\n    if (verbose) puts(\"STUB: catlas_caxpby called\");\n    return NULL;\n}\n\nvoid* catlas_cset(void)\n{\n    if (verbose) puts(\"STUB: catlas_cset called\");\n    return NULL;\n}\n\nvoid* catlas_daxpby(void)\n{\n    if (verbose) puts(\"STUB: catlas_daxpby called\");\n    return NULL;\n}\n\nvoid* catlas_dset(void)\n{\n    if (verbose) puts(\"STUB: catlas_dset called\");\n    return NULL;\n}\n\nvoid* catlas_saxpby(void)\n{\n    if (verbose) puts(\"STUB: catlas_saxpby called\");\n    return NULL;\n}\n\nvoid* catlas_sset(void)\n{\n    if (verbose) puts(\"STUB: catlas_sset called\");\n    return NULL;\n}\n\nvoid* catlas_zaxpby(void)\n{\n    if (verbose) puts(\"STUB: catlas_zaxpby called\");\n    return NULL;\n}\n\nvoid* catlas_zset(void)\n{\n    if (verbose) puts(\"STUB: catlas_zset called\");\n    return NULL;\n}\n\nvoid* caxpy(void)\n{\n    if (verbose) puts(\"STUB: caxpy called\");\n    return NULL;\n}\n\nvoid* caxpy_(void)\n{\n    if (verbose) puts(\"STUB: caxpy_ called\");\n    return NULL;\n}\n\nvoid* cblas_caxpy(void)\n{\n    if (verbose) puts(\"STUB: cblas_caxpy called\");\n    return NULL;\n}\n\nvoid* cblas_ccopy(void)\n{\n    if (verbose) puts(\"STUB: cblas_ccopy called\");\n    return NULL;\n}\n\nvoid* cblas_cdotc_sub(void)\n{\n    if (verbose) puts(\"STUB: cblas_cdotc_sub called\");\n    return NULL;\n}\n\nvoid* cblas_cdotu_sub(void)\n{\n    if (verbose) puts(\"STUB: cblas_cdotu_sub called\");\n    return NULL;\n}\n\nvoid* cblas_cgbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_cgbmv called\");\n    return NULL;\n}\n\nvoid* cblas_cgemm(void)\n{\n    if (verbose) puts(\"STUB: cblas_cgemm called\");\n    return NULL;\n}\n\nvoid* cblas_cgemv(void)\n{\n    if (verbose) puts(\"STUB: cblas_cgemv called\");\n    return NULL;\n}\n\nvoid* cblas_cgerc(void)\n{\n    if (verbose) puts(\"STUB: cblas_cgerc called\");\n    return NULL;\n}\n\nvoid* cblas_cgeru(void)\n{\n    if (verbose) puts(\"STUB: cblas_cgeru called\");\n    return NULL;\n}\n\nvoid* cblas_chbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_chbmv called\");\n    return NULL;\n}\n\nvoid* cblas_chemm(void)\n{\n    if (verbose) puts(\"STUB: cblas_chemm called\");\n    return NULL;\n}\n\nvoid* cblas_chemv(void)\n{\n    if (verbose) puts(\"STUB: cblas_chemv called\");\n    return NULL;\n}\n\nvoid* cblas_cher(void)\n{\n    if (verbose) puts(\"STUB: cblas_cher called\");\n    return NULL;\n}\n\nvoid* cblas_cher2(void)\n{\n    if (verbose) puts(\"STUB: cblas_cher2 called\");\n    return NULL;\n}\n\nvoid* cblas_cher2k(void)\n{\n    if (verbose) puts(\"STUB: cblas_cher2k called\");\n    return NULL;\n}\n\nvoid* cblas_cherk(void)\n{\n    if (verbose) puts(\"STUB: cblas_cherk called\");\n    return NULL;\n}\n\nvoid* cblas_chpmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_chpmv called\");\n    return NULL;\n}\n\nvoid* cblas_chpr(void)\n{\n    if (verbose) puts(\"STUB: cblas_chpr called\");\n    return NULL;\n}\n\nvoid* cblas_chpr2(void)\n{\n    if (verbose) puts(\"STUB: cblas_chpr2 called\");\n    return NULL;\n}\n\nvoid* cblas_crotg(void)\n{\n    if (verbose) puts(\"STUB: cblas_crotg called\");\n    return NULL;\n}\n\nvoid* cblas_cscal(void)\n{\n    if (verbose) puts(\"STUB: cblas_cscal called\");\n    return NULL;\n}\n\nvoid* cblas_csrot(void)\n{\n    if (verbose) puts(\"STUB: cblas_csrot called\");\n    return NULL;\n}\n\nvoid* cblas_csscal(void)\n{\n    if (verbose) puts(\"STUB: cblas_csscal called\");\n    return NULL;\n}\n\nvoid* cblas_cswap(void)\n{\n    if (verbose) puts(\"STUB: cblas_cswap called\");\n    return NULL;\n}\n\nvoid* cblas_csymm(void)\n{\n    if (verbose) puts(\"STUB: cblas_csymm called\");\n    return NULL;\n}\n\nvoid* cblas_csyr2k(void)\n{\n    if (verbose) puts(\"STUB: cblas_csyr2k called\");\n    return NULL;\n}\n\nvoid* cblas_csyrk(void)\n{\n    if (verbose) puts(\"STUB: cblas_csyrk called\");\n    return NULL;\n}\n\nvoid* cblas_ctbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ctbmv called\");\n    return NULL;\n}\n\nvoid* cblas_ctbsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ctbsv called\");\n    return NULL;\n}\n\nvoid* cblas_ctpmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ctpmv called\");\n    return NULL;\n}\n\nvoid* cblas_ctpsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ctpsv called\");\n    return NULL;\n}\n\nvoid* cblas_ctrmm(void)\n{\n    if (verbose) puts(\"STUB: cblas_ctrmm called\");\n    return NULL;\n}\n\nvoid* cblas_ctrmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ctrmv called\");\n    return NULL;\n}\n\nvoid* cblas_ctrsm(void)\n{\n    if (verbose) puts(\"STUB: cblas_ctrsm called\");\n    return NULL;\n}\n\nvoid* cblas_ctrsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ctrsv called\");\n    return NULL;\n}\n\nvoid* cblas_dasum(void)\n{\n    if (verbose) puts(\"STUB: cblas_dasum called\");\n    return NULL;\n}\n\nvoid* cblas_daxpy(void)\n{\n    if (verbose) puts(\"STUB: cblas_daxpy called\");\n    return NULL;\n}\n\nvoid* cblas_dcopy(void)\n{\n    if (verbose) puts(\"STUB: cblas_dcopy called\");\n    return NULL;\n}\n\nvoid* cblas_ddot(void)\n{\n    if (verbose) puts(\"STUB: cblas_ddot called\");\n    return NULL;\n}\n\nvoid* cblas_dgbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dgbmv called\");\n    return NULL;\n}\n\nvoid* cblas_dgemm(void)\n{\n    if (verbose) puts(\"STUB: cblas_dgemm called\");\n    return NULL;\n}\n\nvoid* cblas_dgemv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dgemv called\");\n    return NULL;\n}\n\nvoid* cblas_dger(void)\n{\n    if (verbose) puts(\"STUB: cblas_dger called\");\n    return NULL;\n}\n\nvoid* cblas_dnrm2(void)\n{\n    if (verbose) puts(\"STUB: cblas_dnrm2 called\");\n    return NULL;\n}\n\nvoid* cblas_drot(void)\n{\n    if (verbose) puts(\"STUB: cblas_drot called\");\n    return NULL;\n}\n\nvoid* cblas_drotg(void)\n{\n    if (verbose) puts(\"STUB: cblas_drotg called\");\n    return NULL;\n}\n\nvoid* cblas_drotm(void)\n{\n    if (verbose) puts(\"STUB: cblas_drotm called\");\n    return NULL;\n}\n\nvoid* cblas_drotmg(void)\n{\n    if (verbose) puts(\"STUB: cblas_drotmg called\");\n    return NULL;\n}\n\nvoid* cblas_dsbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dsbmv called\");\n    return NULL;\n}\n\nvoid* cblas_dscal(void)\n{\n    if (verbose) puts(\"STUB: cblas_dscal called\");\n    return NULL;\n}\n\nvoid* cblas_dsdot(void)\n{\n    if (verbose) puts(\"STUB: cblas_dsdot called\");\n    return NULL;\n}\n\nvoid* cblas_dspmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dspmv called\");\n    return NULL;\n}\n\nvoid* cblas_dspr(void)\n{\n    if (verbose) puts(\"STUB: cblas_dspr called\");\n    return NULL;\n}\n\nvoid* cblas_dspr2(void)\n{\n    if (verbose) puts(\"STUB: cblas_dspr2 called\");\n    return NULL;\n}\n\nvoid* cblas_dswap(void)\n{\n    if (verbose) puts(\"STUB: cblas_dswap called\");\n    return NULL;\n}\n\nvoid* cblas_dsymm(void)\n{\n    if (verbose) puts(\"STUB: cblas_dsymm called\");\n    return NULL;\n}\n\nvoid* cblas_dsymv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dsymv called\");\n    return NULL;\n}\n\nvoid* cblas_dsyr(void)\n{\n    if (verbose) puts(\"STUB: cblas_dsyr called\");\n    return NULL;\n}\n\nvoid* cblas_dsyr2(void)\n{\n    if (verbose) puts(\"STUB: cblas_dsyr2 called\");\n    return NULL;\n}\n\nvoid* cblas_dsyr2k(void)\n{\n    if (verbose) puts(\"STUB: cblas_dsyr2k called\");\n    return NULL;\n}\n\nvoid* cblas_dsyrk(void)\n{\n    if (verbose) puts(\"STUB: cblas_dsyrk called\");\n    return NULL;\n}\n\nvoid* cblas_dtbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dtbmv called\");\n    return NULL;\n}\n\nvoid* cblas_dtbsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dtbsv called\");\n    return NULL;\n}\n\nvoid* cblas_dtpmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dtpmv called\");\n    return NULL;\n}\n\nvoid* cblas_dtpsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dtpsv called\");\n    return NULL;\n}\n\nvoid* cblas_dtrmm(void)\n{\n    if (verbose) puts(\"STUB: cblas_dtrmm called\");\n    return NULL;\n}\n\nvoid* cblas_dtrmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dtrmv called\");\n    return NULL;\n}\n\nvoid* cblas_dtrsm(void)\n{\n    if (verbose) puts(\"STUB: cblas_dtrsm called\");\n    return NULL;\n}\n\nvoid* cblas_dtrsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_dtrsv called\");\n    return NULL;\n}\n\nvoid* cblas_dzasum(void)\n{\n    if (verbose) puts(\"STUB: cblas_dzasum called\");\n    return NULL;\n}\n\nvoid* cblas_dznrm2(void)\n{\n    if (verbose) puts(\"STUB: cblas_dznrm2 called\");\n    return NULL;\n}\n\nvoid* cblas_errprn(void)\n{\n    if (verbose) puts(\"STUB: cblas_errprn called\");\n    return NULL;\n}\n\nvoid* cblas_icamax(void)\n{\n    if (verbose) puts(\"STUB: cblas_icamax called\");\n    return NULL;\n}\n\nvoid* cblas_idamax(void)\n{\n    if (verbose) puts(\"STUB: cblas_idamax called\");\n    return NULL;\n}\n\nvoid* cblas_isamax(void)\n{\n    if (verbose) puts(\"STUB: cblas_isamax called\");\n    return NULL;\n}\n\nvoid* cblas_izamax(void)\n{\n    if (verbose) puts(\"STUB: cblas_izamax called\");\n    return NULL;\n}\n\nvoid* cblas_sasum(void)\n{\n    if (verbose) puts(\"STUB: cblas_sasum called\");\n    return NULL;\n}\n\nvoid* cblas_saxpy(void)\n{\n    if (verbose) puts(\"STUB: cblas_saxpy called\");\n    return NULL;\n}\n\nvoid* cblas_scasum(void)\n{\n    if (verbose) puts(\"STUB: cblas_scasum called\");\n    return NULL;\n}\n\nvoid* cblas_scnrm2(void)\n{\n    if (verbose) puts(\"STUB: cblas_scnrm2 called\");\n    return NULL;\n}\n\nvoid* cblas_scopy(void)\n{\n    if (verbose) puts(\"STUB: cblas_scopy called\");\n    return NULL;\n}\n\nvoid* cblas_sdot(void)\n{\n    if (verbose) puts(\"STUB: cblas_sdot called\");\n    return NULL;\n}\n\nvoid* cblas_sdsdot(void)\n{\n    if (verbose) puts(\"STUB: cblas_sdsdot called\");\n    return NULL;\n}\n\nvoid* cblas_sgbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_sgbmv called\");\n    return NULL;\n}\n\nvoid* cblas_sgemm(void)\n{\n    if (verbose) puts(\"STUB: cblas_sgemm called\");\n    return NULL;\n}\n\nvoid* cblas_sgemv(void)\n{\n    if (verbose) puts(\"STUB: cblas_sgemv called\");\n    return NULL;\n}\n\nvoid* cblas_sger(void)\n{\n    if (verbose) puts(\"STUB: cblas_sger called\");\n    return NULL;\n}\n\nvoid* cblas_snrm2(void)\n{\n    if (verbose) puts(\"STUB: cblas_snrm2 called\");\n    return NULL;\n}\n\nvoid* cblas_srot(void)\n{\n    if (verbose) puts(\"STUB: cblas_srot called\");\n    return NULL;\n}\n\nvoid* cblas_srotg(void)\n{\n    if (verbose) puts(\"STUB: cblas_srotg called\");\n    return NULL;\n}\n\nvoid* cblas_srotm(void)\n{\n    if (verbose) puts(\"STUB: cblas_srotm called\");\n    return NULL;\n}\n\nvoid* cblas_srotmg(void)\n{\n    if (verbose) puts(\"STUB: cblas_srotmg called\");\n    return NULL;\n}\n\nvoid* cblas_ssbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ssbmv called\");\n    return NULL;\n}\n\nvoid* cblas_sscal(void)\n{\n    if (verbose) puts(\"STUB: cblas_sscal called\");\n    return NULL;\n}\n\nvoid* cblas_sspmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_sspmv called\");\n    return NULL;\n}\n\nvoid* cblas_sspr(void)\n{\n    if (verbose) puts(\"STUB: cblas_sspr called\");\n    return NULL;\n}\n\nvoid* cblas_sspr2(void)\n{\n    if (verbose) puts(\"STUB: cblas_sspr2 called\");\n    return NULL;\n}\n\nvoid* cblas_sswap(void)\n{\n    if (verbose) puts(\"STUB: cblas_sswap called\");\n    return NULL;\n}\n\nvoid* cblas_ssymm(void)\n{\n    if (verbose) puts(\"STUB: cblas_ssymm called\");\n    return NULL;\n}\n\nvoid* cblas_ssymv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ssymv called\");\n    return NULL;\n}\n\nvoid* cblas_ssyr(void)\n{\n    if (verbose) puts(\"STUB: cblas_ssyr called\");\n    return NULL;\n}\n\nvoid* cblas_ssyr2(void)\n{\n    if (verbose) puts(\"STUB: cblas_ssyr2 called\");\n    return NULL;\n}\n\nvoid* cblas_ssyr2k(void)\n{\n    if (verbose) puts(\"STUB: cblas_ssyr2k called\");\n    return NULL;\n}\n\nvoid* cblas_ssyrk(void)\n{\n    if (verbose) puts(\"STUB: cblas_ssyrk called\");\n    return NULL;\n}\n\nvoid* cblas_stbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_stbmv called\");\n    return NULL;\n}\n\nvoid* cblas_stbsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_stbsv called\");\n    return NULL;\n}\n\nvoid* cblas_stpmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_stpmv called\");\n    return NULL;\n}\n\nvoid* cblas_stpsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_stpsv called\");\n    return NULL;\n}\n\nvoid* cblas_strmm(void)\n{\n    if (verbose) puts(\"STUB: cblas_strmm called\");\n    return NULL;\n}\n\nvoid* cblas_strmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_strmv called\");\n    return NULL;\n}\n\nvoid* cblas_strsm(void)\n{\n    if (verbose) puts(\"STUB: cblas_strsm called\");\n    return NULL;\n}\n\nvoid* cblas_strsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_strsv called\");\n    return NULL;\n}\n\nvoid* cblas_xerbla(void)\n{\n    if (verbose) puts(\"STUB: cblas_xerbla called\");\n    return NULL;\n}\n\nvoid* cblas_zaxpy(void)\n{\n    if (verbose) puts(\"STUB: cblas_zaxpy called\");\n    return NULL;\n}\n\nvoid* cblas_zcopy(void)\n{\n    if (verbose) puts(\"STUB: cblas_zcopy called\");\n    return NULL;\n}\n\nvoid* cblas_zdotc_sub(void)\n{\n    if (verbose) puts(\"STUB: cblas_zdotc_sub called\");\n    return NULL;\n}\n\nvoid* cblas_zdotu_sub(void)\n{\n    if (verbose) puts(\"STUB: cblas_zdotu_sub called\");\n    return NULL;\n}\n\nvoid* cblas_zdrot(void)\n{\n    if (verbose) puts(\"STUB: cblas_zdrot called\");\n    return NULL;\n}\n\nvoid* cblas_zdscal(void)\n{\n    if (verbose) puts(\"STUB: cblas_zdscal called\");\n    return NULL;\n}\n\nvoid* cblas_zgbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_zgbmv called\");\n    return NULL;\n}\n\nvoid* cblas_zgemm(void)\n{\n    if (verbose) puts(\"STUB: cblas_zgemm called\");\n    return NULL;\n}\n\nvoid* cblas_zgemv(void)\n{\n    if (verbose) puts(\"STUB: cblas_zgemv called\");\n    return NULL;\n}\n\nvoid* cblas_zgerc(void)\n{\n    if (verbose) puts(\"STUB: cblas_zgerc called\");\n    return NULL;\n}\n\nvoid* cblas_zgeru(void)\n{\n    if (verbose) puts(\"STUB: cblas_zgeru called\");\n    return NULL;\n}\n\nvoid* cblas_zhbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_zhbmv called\");\n    return NULL;\n}\n\nvoid* cblas_zhemm(void)\n{\n    if (verbose) puts(\"STUB: cblas_zhemm called\");\n    return NULL;\n}\n\nvoid* cblas_zhemv(void)\n{\n    if (verbose) puts(\"STUB: cblas_zhemv called\");\n    return NULL;\n}\n\nvoid* cblas_zher(void)\n{\n    if (verbose) puts(\"STUB: cblas_zher called\");\n    return NULL;\n}\n\nvoid* cblas_zher2(void)\n{\n    if (verbose) puts(\"STUB: cblas_zher2 called\");\n    return NULL;\n}\n\nvoid* cblas_zher2k(void)\n{\n    if (verbose) puts(\"STUB: cblas_zher2k called\");\n    return NULL;\n}\n\nvoid* cblas_zherk(void)\n{\n    if (verbose) puts(\"STUB: cblas_zherk called\");\n    return NULL;\n}\n\nvoid* cblas_zhpmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_zhpmv called\");\n    return NULL;\n}\n\nvoid* cblas_zhpr(void)\n{\n    if (verbose) puts(\"STUB: cblas_zhpr called\");\n    return NULL;\n}\n\nvoid* cblas_zhpr2(void)\n{\n    if (verbose) puts(\"STUB: cblas_zhpr2 called\");\n    return NULL;\n}\n\nvoid* cblas_zrotg(void)\n{\n    if (verbose) puts(\"STUB: cblas_zrotg called\");\n    return NULL;\n}\n\nvoid* cblas_zscal(void)\n{\n    if (verbose) puts(\"STUB: cblas_zscal called\");\n    return NULL;\n}\n\nvoid* cblas_zswap(void)\n{\n    if (verbose) puts(\"STUB: cblas_zswap called\");\n    return NULL;\n}\n\nvoid* cblas_zsymm(void)\n{\n    if (verbose) puts(\"STUB: cblas_zsymm called\");\n    return NULL;\n}\n\nvoid* cblas_zsyr2k(void)\n{\n    if (verbose) puts(\"STUB: cblas_zsyr2k called\");\n    return NULL;\n}\n\nvoid* cblas_zsyrk(void)\n{\n    if (verbose) puts(\"STUB: cblas_zsyrk called\");\n    return NULL;\n}\n\nvoid* cblas_ztbmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ztbmv called\");\n    return NULL;\n}\n\nvoid* cblas_ztbsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ztbsv called\");\n    return NULL;\n}\n\nvoid* cblas_ztpmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ztpmv called\");\n    return NULL;\n}\n\nvoid* cblas_ztpsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ztpsv called\");\n    return NULL;\n}\n\nvoid* cblas_ztrmm(void)\n{\n    if (verbose) puts(\"STUB: cblas_ztrmm called\");\n    return NULL;\n}\n\nvoid* cblas_ztrmv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ztrmv called\");\n    return NULL;\n}\n\nvoid* cblas_ztrsm(void)\n{\n    if (verbose) puts(\"STUB: cblas_ztrsm called\");\n    return NULL;\n}\n\nvoid* cblas_ztrsv(void)\n{\n    if (verbose) puts(\"STUB: cblas_ztrsv called\");\n    return NULL;\n}\n\nvoid* ccopy(void)\n{\n    if (verbose) puts(\"STUB: ccopy called\");\n    return NULL;\n}\n\nvoid* ccopy_(void)\n{\n    if (verbose) puts(\"STUB: ccopy_ called\");\n    return NULL;\n}\n\nvoid* cdotc(void)\n{\n    if (verbose) puts(\"STUB: cdotc called\");\n    return NULL;\n}\n\nvoid* cdotc_(void)\n{\n    if (verbose) puts(\"STUB: cdotc_ called\");\n    return NULL;\n}\n\nvoid* cdotu(void)\n{\n    if (verbose) puts(\"STUB: cdotu called\");\n    return NULL;\n}\n\nvoid* cdotu_(void)\n{\n    if (verbose) puts(\"STUB: cdotu_ called\");\n    return NULL;\n}\n\nvoid* cgbmv(void)\n{\n    if (verbose) puts(\"STUB: cgbmv called\");\n    return NULL;\n}\n\nvoid* cgbmv_(void)\n{\n    if (verbose) puts(\"STUB: cgbmv_ called\");\n    return NULL;\n}\n\nvoid* cgemm(void)\n{\n    if (verbose) puts(\"STUB: cgemm called\");\n    return NULL;\n}\n\nvoid* cgemm_(void)\n{\n    if (verbose) puts(\"STUB: cgemm_ called\");\n    return NULL;\n}\n\nvoid* cgemv(void)\n{\n    if (verbose) puts(\"STUB: cgemv called\");\n    return NULL;\n}\n\nvoid* cgemv_(void)\n{\n    if (verbose) puts(\"STUB: cgemv_ called\");\n    return NULL;\n}\n\nvoid* cgerc(void)\n{\n    if (verbose) puts(\"STUB: cgerc called\");\n    return NULL;\n}\n\nvoid* cgerc_(void)\n{\n    if (verbose) puts(\"STUB: cgerc_ called\");\n    return NULL;\n}\n\nvoid* cgeru(void)\n{\n    if (verbose) puts(\"STUB: cgeru called\");\n    return NULL;\n}\n\nvoid* cgeru_(void)\n{\n    if (verbose) puts(\"STUB: cgeru_ called\");\n    return NULL;\n}\n\nvoid* chbmv(void)\n{\n    if (verbose) puts(\"STUB: chbmv called\");\n    return NULL;\n}\n\nvoid* chbmv_(void)\n{\n    if (verbose) puts(\"STUB: chbmv_ called\");\n    return NULL;\n}\n\nvoid* chemm(void)\n{\n    if (verbose) puts(\"STUB: chemm called\");\n    return NULL;\n}\n\nvoid* chemm_(void)\n{\n    if (verbose) puts(\"STUB: chemm_ called\");\n    return NULL;\n}\n\nvoid* chemv(void)\n{\n    if (verbose) puts(\"STUB: chemv called\");\n    return NULL;\n}\n\nvoid* chemv_(void)\n{\n    if (verbose) puts(\"STUB: chemv_ called\");\n    return NULL;\n}\n\nvoid* cher(void)\n{\n    if (verbose) puts(\"STUB: cher called\");\n    return NULL;\n}\n\nvoid* cher2(void)\n{\n    if (verbose) puts(\"STUB: cher2 called\");\n    return NULL;\n}\n\nvoid* cher2_(void)\n{\n    if (verbose) puts(\"STUB: cher2_ called\");\n    return NULL;\n}\n\nvoid* cher2k(void)\n{\n    if (verbose) puts(\"STUB: cher2k called\");\n    return NULL;\n}\n\nvoid* cher2k_(void)\n{\n    if (verbose) puts(\"STUB: cher2k_ called\");\n    return NULL;\n}\n\nvoid* cher_(void)\n{\n    if (verbose) puts(\"STUB: cher_ called\");\n    return NULL;\n}\n\nvoid* cherk(void)\n{\n    if (verbose) puts(\"STUB: cherk called\");\n    return NULL;\n}\n\nvoid* cherk_(void)\n{\n    if (verbose) puts(\"STUB: cherk_ called\");\n    return NULL;\n}\n\nvoid* chpmv(void)\n{\n    if (verbose) puts(\"STUB: chpmv called\");\n    return NULL;\n}\n\nvoid* chpmv_(void)\n{\n    if (verbose) puts(\"STUB: chpmv_ called\");\n    return NULL;\n}\n\nvoid* chpr(void)\n{\n    if (verbose) puts(\"STUB: chpr called\");\n    return NULL;\n}\n\nvoid* chpr2(void)\n{\n    if (verbose) puts(\"STUB: chpr2 called\");\n    return NULL;\n}\n\nvoid* chpr2_(void)\n{\n    if (verbose) puts(\"STUB: chpr2_ called\");\n    return NULL;\n}\n\nvoid* chpr_(void)\n{\n    if (verbose) puts(\"STUB: chpr_ called\");\n    return NULL;\n}\n\nvoid* crotg(void)\n{\n    if (verbose) puts(\"STUB: crotg called\");\n    return NULL;\n}\n\nvoid* crotg_(void)\n{\n    if (verbose) puts(\"STUB: crotg_ called\");\n    return NULL;\n}\n\nvoid* cscal(void)\n{\n    if (verbose) puts(\"STUB: cscal called\");\n    return NULL;\n}\n\nvoid* cscal_(void)\n{\n    if (verbose) puts(\"STUB: cscal_ called\");\n    return NULL;\n}\n\nvoid* csrot(void)\n{\n    if (verbose) puts(\"STUB: csrot called\");\n    return NULL;\n}\n\nvoid* csrot_(void)\n{\n    if (verbose) puts(\"STUB: csrot_ called\");\n    return NULL;\n}\n\nvoid* csscal(void)\n{\n    if (verbose) puts(\"STUB: csscal called\");\n    return NULL;\n}\n\nvoid* csscal_(void)\n{\n    if (verbose) puts(\"STUB: csscal_ called\");\n    return NULL;\n}\n\nvoid* cswap(void)\n{\n    if (verbose) puts(\"STUB: cswap called\");\n    return NULL;\n}\n\nvoid* cswap_(void)\n{\n    if (verbose) puts(\"STUB: cswap_ called\");\n    return NULL;\n}\n\nvoid* csymm(void)\n{\n    if (verbose) puts(\"STUB: csymm called\");\n    return NULL;\n}\n\nvoid* csymm_(void)\n{\n    if (verbose) puts(\"STUB: csymm_ called\");\n    return NULL;\n}\n\nvoid* csyr2k(void)\n{\n    if (verbose) puts(\"STUB: csyr2k called\");\n    return NULL;\n}\n\nvoid* csyr2k_(void)\n{\n    if (verbose) puts(\"STUB: csyr2k_ called\");\n    return NULL;\n}\n\nvoid* csyrk(void)\n{\n    if (verbose) puts(\"STUB: csyrk called\");\n    return NULL;\n}\n\nvoid* csyrk_(void)\n{\n    if (verbose) puts(\"STUB: csyrk_ called\");\n    return NULL;\n}\n\nvoid* ctbmv(void)\n{\n    if (verbose) puts(\"STUB: ctbmv called\");\n    return NULL;\n}\n\nvoid* ctbmv_(void)\n{\n    if (verbose) puts(\"STUB: ctbmv_ called\");\n    return NULL;\n}\n\nvoid* ctbsv(void)\n{\n    if (verbose) puts(\"STUB: ctbsv called\");\n    return NULL;\n}\n\nvoid* ctbsv_(void)\n{\n    if (verbose) puts(\"STUB: ctbsv_ called\");\n    return NULL;\n}\n\nvoid* ctpmv(void)\n{\n    if (verbose) puts(\"STUB: ctpmv called\");\n    return NULL;\n}\n\nvoid* ctpmv_(void)\n{\n    if (verbose) puts(\"STUB: ctpmv_ called\");\n    return NULL;\n}\n\nvoid* ctpsv(void)\n{\n    if (verbose) puts(\"STUB: ctpsv called\");\n    return NULL;\n}\n\nvoid* ctpsv_(void)\n{\n    if (verbose) puts(\"STUB: ctpsv_ called\");\n    return NULL;\n}\n\nvoid* ctrmm(void)\n{\n    if (verbose) puts(\"STUB: ctrmm called\");\n    return NULL;\n}\n\nvoid* ctrmm_(void)\n{\n    if (verbose) puts(\"STUB: ctrmm_ called\");\n    return NULL;\n}\n\nvoid* ctrmv(void)\n{\n    if (verbose) puts(\"STUB: ctrmv called\");\n    return NULL;\n}\n\nvoid* ctrmv_(void)\n{\n    if (verbose) puts(\"STUB: ctrmv_ called\");\n    return NULL;\n}\n\nvoid* ctrsm(void)\n{\n    if (verbose) puts(\"STUB: ctrsm called\");\n    return NULL;\n}\n\nvoid* ctrsm_(void)\n{\n    if (verbose) puts(\"STUB: ctrsm_ called\");\n    return NULL;\n}\n\nvoid* ctrsv(void)\n{\n    if (verbose) puts(\"STUB: ctrsv called\");\n    return NULL;\n}\n\nvoid* ctrsv_(void)\n{\n    if (verbose) puts(\"STUB: ctrsv_ called\");\n    return NULL;\n}\n\nvoid* dasum(void)\n{\n    if (verbose) puts(\"STUB: dasum called\");\n    return NULL;\n}\n\nvoid* dasum_(void)\n{\n    if (verbose) puts(\"STUB: dasum_ called\");\n    return NULL;\n}\n\nvoid* daxpy(void)\n{\n    if (verbose) puts(\"STUB: daxpy called\");\n    return NULL;\n}\n\nvoid* daxpy_(void)\n{\n    if (verbose) puts(\"STUB: daxpy_ called\");\n    return NULL;\n}\n\nvoid* dcabs1(void)\n{\n    if (verbose) puts(\"STUB: dcabs1 called\");\n    return NULL;\n}\n\nvoid* dcabs1_(void)\n{\n    if (verbose) puts(\"STUB: dcabs1_ called\");\n    return NULL;\n}\n\nvoid* dcopy(void)\n{\n    if (verbose) puts(\"STUB: dcopy called\");\n    return NULL;\n}\n\nvoid* dcopy_(void)\n{\n    if (verbose) puts(\"STUB: dcopy_ called\");\n    return NULL;\n}\n\nvoid* ddot(void)\n{\n    if (verbose) puts(\"STUB: ddot called\");\n    return NULL;\n}\n\nvoid* ddot_(void)\n{\n    if (verbose) puts(\"STUB: ddot_ called\");\n    return NULL;\n}\n\nvoid* dgbmv(void)\n{\n    if (verbose) puts(\"STUB: dgbmv called\");\n    return NULL;\n}\n\nvoid* dgbmv_(void)\n{\n    if (verbose) puts(\"STUB: dgbmv_ called\");\n    return NULL;\n}\n\nvoid* dgeCopy(void)\n{\n    if (verbose) puts(\"STUB: dgeCopy called\");\n    return NULL;\n}\n\nvoid* dgePack_A_NoTran(void)\n{\n    if (verbose) puts(\"STUB: dgePack_A_NoTran called\");\n    return NULL;\n}\n\nvoid* dgePack_A_Tran(void)\n{\n    if (verbose) puts(\"STUB: dgePack_A_Tran called\");\n    return NULL;\n}\n\nvoid* dgePack_B_NoTran(void)\n{\n    if (verbose) puts(\"STUB: dgePack_B_NoTran called\");\n    return NULL;\n}\n\nvoid* dgePack_B_Tran(void)\n{\n    if (verbose) puts(\"STUB: dgePack_B_Tran called\");\n    return NULL;\n}\n\nvoid* dgeSetZero(void)\n{\n    if (verbose) puts(\"STUB: dgeSetZero called\");\n    return NULL;\n}\n\nvoid* dgemm(void)\n{\n    if (verbose) puts(\"STUB: dgemm called\");\n    return NULL;\n}\n\nvoid* dgemm_(void)\n{\n    if (verbose) puts(\"STUB: dgemm_ called\");\n    return NULL;\n}\n\nvoid* dgemv(void)\n{\n    if (verbose) puts(\"STUB: dgemv called\");\n    return NULL;\n}\n\nvoid* dgemv_(void)\n{\n    if (verbose) puts(\"STUB: dgemv_ called\");\n    return NULL;\n}\n\nvoid* dger(void)\n{\n    if (verbose) puts(\"STUB: dger called\");\n    return NULL;\n}\n\nvoid* dger_(void)\n{\n    if (verbose) puts(\"STUB: dger_ called\");\n    return NULL;\n}\n\nvoid* dnrm2(void)\n{\n    if (verbose) puts(\"STUB: dnrm2 called\");\n    return NULL;\n}\n\nvoid* dnrm2_(void)\n{\n    if (verbose) puts(\"STUB: dnrm2_ called\");\n    return NULL;\n}\n\nvoid* double_general_add(void)\n{\n    if (verbose) puts(\"STUB: double_general_add called\");\n    return NULL;\n}\n\nvoid* double_general_add_scalar(void)\n{\n    if (verbose) puts(\"STUB: double_general_add_scalar called\");\n    return NULL;\n}\n\nvoid* double_general_elementwise_product(void)\n{\n    if (verbose) puts(\"STUB: double_general_elementwise_product called\");\n    return NULL;\n}\n\nvoid* double_general_permute_cols(void)\n{\n    if (verbose) puts(\"STUB: double_general_permute_cols called\");\n    return NULL;\n}\n\nvoid* double_general_permute_rows(void)\n{\n    if (verbose) puts(\"STUB: double_general_permute_rows called\");\n    return NULL;\n}\n\nvoid* double_general_product_scalar(void)\n{\n    if (verbose) puts(\"STUB: double_general_product_scalar called\");\n    return NULL;\n}\n\nvoid* double_general_splat(void)\n{\n    if (verbose) puts(\"STUB: double_general_splat called\");\n    return NULL;\n}\n\nvoid* double_general_sub_scalar(void)\n{\n    if (verbose) puts(\"STUB: double_general_sub_scalar called\");\n    return NULL;\n}\n\nvoid* double_general_transpose(void)\n{\n    if (verbose) puts(\"STUB: double_general_transpose called\");\n    return NULL;\n}\n\nvoid* double_inner_product_scalar(void)\n{\n    if (verbose) puts(\"STUB: double_inner_product_scalar called\");\n    return NULL;\n}\n\nvoid* double_outer_product_scalar(void)\n{\n    if (verbose) puts(\"STUB: double_outer_product_scalar called\");\n    return NULL;\n}\n\nvoid* drot(void)\n{\n    if (verbose) puts(\"STUB: drot called\");\n    return NULL;\n}\n\nvoid* drot_(void)\n{\n    if (verbose) puts(\"STUB: drot_ called\");\n    return NULL;\n}\n\nvoid* drotg(void)\n{\n    if (verbose) puts(\"STUB: drotg called\");\n    return NULL;\n}\n\nvoid* drotg_(void)\n{\n    if (verbose) puts(\"STUB: drotg_ called\");\n    return NULL;\n}\n\nvoid* drotm(void)\n{\n    if (verbose) puts(\"STUB: drotm called\");\n    return NULL;\n}\n\nvoid* drotm_(void)\n{\n    if (verbose) puts(\"STUB: drotm_ called\");\n    return NULL;\n}\n\nvoid* drotmg(void)\n{\n    if (verbose) puts(\"STUB: drotmg called\");\n    return NULL;\n}\n\nvoid* drotmg_(void)\n{\n    if (verbose) puts(\"STUB: drotmg_ called\");\n    return NULL;\n}\n\nvoid* dsbmv(void)\n{\n    if (verbose) puts(\"STUB: dsbmv called\");\n    return NULL;\n}\n\nvoid* dsbmv_(void)\n{\n    if (verbose) puts(\"STUB: dsbmv_ called\");\n    return NULL;\n}\n\nvoid* dscal(void)\n{\n    if (verbose) puts(\"STUB: dscal called\");\n    return NULL;\n}\n\nvoid* dscal_(void)\n{\n    if (verbose) puts(\"STUB: dscal_ called\");\n    return NULL;\n}\n\nvoid* dsdot(void)\n{\n    if (verbose) puts(\"STUB: dsdot called\");\n    return NULL;\n}\n\nvoid* dsdot_(void)\n{\n    if (verbose) puts(\"STUB: dsdot_ called\");\n    return NULL;\n}\n\nvoid* dspmv(void)\n{\n    if (verbose) puts(\"STUB: dspmv called\");\n    return NULL;\n}\n\nvoid* dspmv_(void)\n{\n    if (verbose) puts(\"STUB: dspmv_ called\");\n    return NULL;\n}\n\nvoid* dspr(void)\n{\n    if (verbose) puts(\"STUB: dspr called\");\n    return NULL;\n}\n\nvoid* dspr2(void)\n{\n    if (verbose) puts(\"STUB: dspr2 called\");\n    return NULL;\n}\n\nvoid* dspr2_(void)\n{\n    if (verbose) puts(\"STUB: dspr2_ called\");\n    return NULL;\n}\n\nvoid* dspr_(void)\n{\n    if (verbose) puts(\"STUB: dspr_ called\");\n    return NULL;\n}\n\nvoid* dswap(void)\n{\n    if (verbose) puts(\"STUB: dswap called\");\n    return NULL;\n}\n\nvoid* dswap_(void)\n{\n    if (verbose) puts(\"STUB: dswap_ called\");\n    return NULL;\n}\n\nvoid* dsymm(void)\n{\n    if (verbose) puts(\"STUB: dsymm called\");\n    return NULL;\n}\n\nvoid* dsymm_(void)\n{\n    if (verbose) puts(\"STUB: dsymm_ called\");\n    return NULL;\n}\n\nvoid* dsymv(void)\n{\n    if (verbose) puts(\"STUB: dsymv called\");\n    return NULL;\n}\n\nvoid* dsymv_(void)\n{\n    if (verbose) puts(\"STUB: dsymv_ called\");\n    return NULL;\n}\n\nvoid* dsyr(void)\n{\n    if (verbose) puts(\"STUB: dsyr called\");\n    return NULL;\n}\n\nvoid* dsyr2(void)\n{\n    if (verbose) puts(\"STUB: dsyr2 called\");\n    return NULL;\n}\n\nvoid* dsyr2_(void)\n{\n    if (verbose) puts(\"STUB: dsyr2_ called\");\n    return NULL;\n}\n\nvoid* dsyr2k(void)\n{\n    if (verbose) puts(\"STUB: dsyr2k called\");\n    return NULL;\n}\n\nvoid* dsyr2k_(void)\n{\n    if (verbose) puts(\"STUB: dsyr2k_ called\");\n    return NULL;\n}\n\nvoid* dsyr_(void)\n{\n    if (verbose) puts(\"STUB: dsyr_ called\");\n    return NULL;\n}\n\nvoid* dsyrk(void)\n{\n    if (verbose) puts(\"STUB: dsyrk called\");\n    return NULL;\n}\n\nvoid* dsyrk_(void)\n{\n    if (verbose) puts(\"STUB: dsyrk_ called\");\n    return NULL;\n}\n\nvoid* dtbmv(void)\n{\n    if (verbose) puts(\"STUB: dtbmv called\");\n    return NULL;\n}\n\nvoid* dtbmv_(void)\n{\n    if (verbose) puts(\"STUB: dtbmv_ called\");\n    return NULL;\n}\n\nvoid* dtbsv(void)\n{\n    if (verbose) puts(\"STUB: dtbsv called\");\n    return NULL;\n}\n\nvoid* dtbsv_(void)\n{\n    if (verbose) puts(\"STUB: dtbsv_ called\");\n    return NULL;\n}\n\nvoid* dtpmv(void)\n{\n    if (verbose) puts(\"STUB: dtpmv called\");\n    return NULL;\n}\n\nvoid* dtpmv_(void)\n{\n    if (verbose) puts(\"STUB: dtpmv_ called\");\n    return NULL;\n}\n\nvoid* dtpsv(void)\n{\n    if (verbose) puts(\"STUB: dtpsv called\");\n    return NULL;\n}\n\nvoid* dtpsv_(void)\n{\n    if (verbose) puts(\"STUB: dtpsv_ called\");\n    return NULL;\n}\n\nvoid* dtrCopyLower(void)\n{\n    if (verbose) puts(\"STUB: dtrCopyLower called\");\n    return NULL;\n}\n\nvoid* dtrSetZeroLower(void)\n{\n    if (verbose) puts(\"STUB: dtrSetZeroLower called\");\n    return NULL;\n}\n\nvoid* dtrmm(void)\n{\n    if (verbose) puts(\"STUB: dtrmm called\");\n    return NULL;\n}\n\nvoid* dtrmm_(void)\n{\n    if (verbose) puts(\"STUB: dtrmm_ called\");\n    return NULL;\n}\n\nvoid* dtrmv(void)\n{\n    if (verbose) puts(\"STUB: dtrmv called\");\n    return NULL;\n}\n\nvoid* dtrmv_(void)\n{\n    if (verbose) puts(\"STUB: dtrmv_ called\");\n    return NULL;\n}\n\nvoid* dtrsm(void)\n{\n    if (verbose) puts(\"STUB: dtrsm called\");\n    return NULL;\n}\n\nvoid* dtrsm_(void)\n{\n    if (verbose) puts(\"STUB: dtrsm_ called\");\n    return NULL;\n}\n\nvoid* dtrsv(void)\n{\n    if (verbose) puts(\"STUB: dtrsv called\");\n    return NULL;\n}\n\nvoid* dtrsv_(void)\n{\n    if (verbose) puts(\"STUB: dtrsv_ called\");\n    return NULL;\n}\n\nvoid* dzasum(void)\n{\n    if (verbose) puts(\"STUB: dzasum called\");\n    return NULL;\n}\n\nvoid* dzasum_(void)\n{\n    if (verbose) puts(\"STUB: dzasum_ called\");\n    return NULL;\n}\n\nvoid* dznrm2(void)\n{\n    if (verbose) puts(\"STUB: dznrm2 called\");\n    return NULL;\n}\n\nvoid* dznrm2_(void)\n{\n    if (verbose) puts(\"STUB: dznrm2_ called\");\n    return NULL;\n}\n\nvoid* float_general_add(void)\n{\n    if (verbose) puts(\"STUB: float_general_add called\");\n    return NULL;\n}\n\nvoid* float_general_add_scalar(void)\n{\n    if (verbose) puts(\"STUB: float_general_add_scalar called\");\n    return NULL;\n}\n\nvoid* float_general_elementwise_product(void)\n{\n    if (verbose) puts(\"STUB: float_general_elementwise_product called\");\n    return NULL;\n}\n\nvoid* float_general_permute_cols(void)\n{\n    if (verbose) puts(\"STUB: float_general_permute_cols called\");\n    return NULL;\n}\n\nvoid* float_general_permute_rows(void)\n{\n    if (verbose) puts(\"STUB: float_general_permute_rows called\");\n    return NULL;\n}\n\nvoid* float_general_product_scalar(void)\n{\n    if (verbose) puts(\"STUB: float_general_product_scalar called\");\n    return NULL;\n}\n\nvoid* float_general_splat(void)\n{\n    if (verbose) puts(\"STUB: float_general_splat called\");\n    return NULL;\n}\n\nvoid* float_general_sub_scalar(void)\n{\n    if (verbose) puts(\"STUB: float_general_sub_scalar called\");\n    return NULL;\n}\n\nvoid* float_general_transpose(void)\n{\n    if (verbose) puts(\"STUB: float_general_transpose called\");\n    return NULL;\n}\n\nvoid* float_inner_product_scalar(void)\n{\n    if (verbose) puts(\"STUB: float_inner_product_scalar called\");\n    return NULL;\n}\n\nvoid* float_outer_product_scalar(void)\n{\n    if (verbose) puts(\"STUB: float_outer_product_scalar called\");\n    return NULL;\n}\n\nvoid* getHardwareInfo(void)\n{\n    if (verbose) puts(\"STUB: getHardwareInfo called\");\n    return NULL;\n}\n\nvoid* icamax(void)\n{\n    if (verbose) puts(\"STUB: icamax called\");\n    return NULL;\n}\n\nvoid* icamax_(void)\n{\n    if (verbose) puts(\"STUB: icamax_ called\");\n    return NULL;\n}\n\nvoid* idamax(void)\n{\n    if (verbose) puts(\"STUB: idamax called\");\n    return NULL;\n}\n\nvoid* idamax_(void)\n{\n    if (verbose) puts(\"STUB: idamax_ called\");\n    return NULL;\n}\n\nvoid* isamax(void)\n{\n    if (verbose) puts(\"STUB: isamax called\");\n    return NULL;\n}\n\nvoid* isamax_(void)\n{\n    if (verbose) puts(\"STUB: isamax_ called\");\n    return NULL;\n}\n\nvoid* izamax(void)\n{\n    if (verbose) puts(\"STUB: izamax called\");\n    return NULL;\n}\n\nvoid* izamax_(void)\n{\n    if (verbose) puts(\"STUB: izamax_ called\");\n    return NULL;\n}\n\nvoid* lsame_(void)\n{\n    if (verbose) puts(\"STUB: lsame_ called\");\n    return NULL;\n}\n\nvoid* sasum(void)\n{\n    if (verbose) puts(\"STUB: sasum called\");\n    return NULL;\n}\n\nvoid* sasum_(void)\n{\n    if (verbose) puts(\"STUB: sasum_ called\");\n    return NULL;\n}\n\nvoid* saxpy(void)\n{\n    if (verbose) puts(\"STUB: saxpy called\");\n    return NULL;\n}\n\nvoid* saxpy_(void)\n{\n    if (verbose) puts(\"STUB: saxpy_ called\");\n    return NULL;\n}\n\nvoid* scasum(void)\n{\n    if (verbose) puts(\"STUB: scasum called\");\n    return NULL;\n}\n\nvoid* scasum_(void)\n{\n    if (verbose) puts(\"STUB: scasum_ called\");\n    return NULL;\n}\n\nvoid* scnrm2(void)\n{\n    if (verbose) puts(\"STUB: scnrm2 called\");\n    return NULL;\n}\n\nvoid* scnrm2_(void)\n{\n    if (verbose) puts(\"STUB: scnrm2_ called\");\n    return NULL;\n}\n\nvoid* scopy(void)\n{\n    if (verbose) puts(\"STUB: scopy called\");\n    return NULL;\n}\n\nvoid* scopy_(void)\n{\n    if (verbose) puts(\"STUB: scopy_ called\");\n    return NULL;\n}\n\nvoid* sdot(void)\n{\n    if (verbose) puts(\"STUB: sdot called\");\n    return NULL;\n}\n\nvoid* sdot_(void)\n{\n    if (verbose) puts(\"STUB: sdot_ called\");\n    return NULL;\n}\n\nvoid* sdsdot(void)\n{\n    if (verbose) puts(\"STUB: sdsdot called\");\n    return NULL;\n}\n\nvoid* sdsdot_(void)\n{\n    if (verbose) puts(\"STUB: sdsdot_ called\");\n    return NULL;\n}\n\nvoid* sgbmv(void)\n{\n    if (verbose) puts(\"STUB: sgbmv called\");\n    return NULL;\n}\n\nvoid* sgbmv_(void)\n{\n    if (verbose) puts(\"STUB: sgbmv_ called\");\n    return NULL;\n}\n\nvoid* sgeCopy(void)\n{\n    if (verbose) puts(\"STUB: sgeCopy called\");\n    return NULL;\n}\n\nvoid* sgePack_A_NoTran(void)\n{\n    if (verbose) puts(\"STUB: sgePack_A_NoTran called\");\n    return NULL;\n}\n\nvoid* sgePack_A_Tran(void)\n{\n    if (verbose) puts(\"STUB: sgePack_A_Tran called\");\n    return NULL;\n}\n\nvoid* sgePack_B_NoTran(void)\n{\n    if (verbose) puts(\"STUB: sgePack_B_NoTran called\");\n    return NULL;\n}\n\nvoid* sgePack_B_Tran(void)\n{\n    if (verbose) puts(\"STUB: sgePack_B_Tran called\");\n    return NULL;\n}\n\nvoid* sgeSetZero(void)\n{\n    if (verbose) puts(\"STUB: sgeSetZero called\");\n    return NULL;\n}\n\nvoid* sgemm(void)\n{\n    if (verbose) puts(\"STUB: sgemm called\");\n    return NULL;\n}\n\nvoid* sgemm_(void)\n{\n    if (verbose) puts(\"STUB: sgemm_ called\");\n    return NULL;\n}\n\nvoid* sgemv(void)\n{\n    if (verbose) puts(\"STUB: sgemv called\");\n    return NULL;\n}\n\nvoid* sgemv_(void)\n{\n    if (verbose) puts(\"STUB: sgemv_ called\");\n    return NULL;\n}\n\nvoid* sger(void)\n{\n    if (verbose) puts(\"STUB: sger called\");\n    return NULL;\n}\n\nvoid* sger_(void)\n{\n    if (verbose) puts(\"STUB: sger_ called\");\n    return NULL;\n}\n\nvoid* snrm2(void)\n{\n    if (verbose) puts(\"STUB: snrm2 called\");\n    return NULL;\n}\n\nvoid* snrm2_(void)\n{\n    if (verbose) puts(\"STUB: snrm2_ called\");\n    return NULL;\n}\n\nvoid* srot(void)\n{\n    if (verbose) puts(\"STUB: srot called\");\n    return NULL;\n}\n\nvoid* srot_(void)\n{\n    if (verbose) puts(\"STUB: srot_ called\");\n    return NULL;\n}\n\nvoid* srotg(void)\n{\n    if (verbose) puts(\"STUB: srotg called\");\n    return NULL;\n}\n\nvoid* srotg_(void)\n{\n    if (verbose) puts(\"STUB: srotg_ called\");\n    return NULL;\n}\n\nvoid* srotm(void)\n{\n    if (verbose) puts(\"STUB: srotm called\");\n    return NULL;\n}\n\nvoid* srotm_(void)\n{\n    if (verbose) puts(\"STUB: srotm_ called\");\n    return NULL;\n}\n\nvoid* srotmg(void)\n{\n    if (verbose) puts(\"STUB: srotmg called\");\n    return NULL;\n}\n\nvoid* srotmg_(void)\n{\n    if (verbose) puts(\"STUB: srotmg_ called\");\n    return NULL;\n}\n\nvoid* ssbmv(void)\n{\n    if (verbose) puts(\"STUB: ssbmv called\");\n    return NULL;\n}\n\nvoid* ssbmv_(void)\n{\n    if (verbose) puts(\"STUB: ssbmv_ called\");\n    return NULL;\n}\n\nvoid* sscal(void)\n{\n    if (verbose) puts(\"STUB: sscal called\");\n    return NULL;\n}\n\nvoid* sscal_(void)\n{\n    if (verbose) puts(\"STUB: sscal_ called\");\n    return NULL;\n}\n\nvoid* sspmv(void)\n{\n    if (verbose) puts(\"STUB: sspmv called\");\n    return NULL;\n}\n\nvoid* sspmv_(void)\n{\n    if (verbose) puts(\"STUB: sspmv_ called\");\n    return NULL;\n}\n\nvoid* sspr(void)\n{\n    if (verbose) puts(\"STUB: sspr called\");\n    return NULL;\n}\n\nvoid* sspr2(void)\n{\n    if (verbose) puts(\"STUB: sspr2 called\");\n    return NULL;\n}\n\nvoid* sspr2_(void)\n{\n    if (verbose) puts(\"STUB: sspr2_ called\");\n    return NULL;\n}\n\nvoid* sspr_(void)\n{\n    if (verbose) puts(\"STUB: sspr_ called\");\n    return NULL;\n}\n\nvoid* sswap(void)\n{\n    if (verbose) puts(\"STUB: sswap called\");\n    return NULL;\n}\n\nvoid* sswap_(void)\n{\n    if (verbose) puts(\"STUB: sswap_ called\");\n    return NULL;\n}\n\nvoid* ssymm(void)\n{\n    if (verbose) puts(\"STUB: ssymm called\");\n    return NULL;\n}\n\nvoid* ssymm_(void)\n{\n    if (verbose) puts(\"STUB: ssymm_ called\");\n    return NULL;\n}\n\nvoid* ssymv(void)\n{\n    if (verbose) puts(\"STUB: ssymv called\");\n    return NULL;\n}\n\nvoid* ssymv_(void)\n{\n    if (verbose) puts(\"STUB: ssymv_ called\");\n    return NULL;\n}\n\nvoid* ssyr(void)\n{\n    if (verbose) puts(\"STUB: ssyr called\");\n    return NULL;\n}\n\nvoid* ssyr2(void)\n{\n    if (verbose) puts(\"STUB: ssyr2 called\");\n    return NULL;\n}\n\nvoid* ssyr2_(void)\n{\n    if (verbose) puts(\"STUB: ssyr2_ called\");\n    return NULL;\n}\n\nvoid* ssyr2k(void)\n{\n    if (verbose) puts(\"STUB: ssyr2k called\");\n    return NULL;\n}\n\nvoid* ssyr2k_(void)\n{\n    if (verbose) puts(\"STUB: ssyr2k_ called\");\n    return NULL;\n}\n\nvoid* ssyr_(void)\n{\n    if (verbose) puts(\"STUB: ssyr_ called\");\n    return NULL;\n}\n\nvoid* ssyrk(void)\n{\n    if (verbose) puts(\"STUB: ssyrk called\");\n    return NULL;\n}\n\nvoid* ssyrk_(void)\n{\n    if (verbose) puts(\"STUB: ssyrk_ called\");\n    return NULL;\n}\n\nvoid* stbmv(void)\n{\n    if (verbose) puts(\"STUB: stbmv called\");\n    return NULL;\n}\n\nvoid* stbmv_(void)\n{\n    if (verbose) puts(\"STUB: stbmv_ called\");\n    return NULL;\n}\n\nvoid* stbsv(void)\n{\n    if (verbose) puts(\"STUB: stbsv called\");\n    return NULL;\n}\n\nvoid* stbsv_(void)\n{\n    if (verbose) puts(\"STUB: stbsv_ called\");\n    return NULL;\n}\n\nvoid* stpmv(void)\n{\n    if (verbose) puts(\"STUB: stpmv called\");\n    return NULL;\n}\n\nvoid* stpmv_(void)\n{\n    if (verbose) puts(\"STUB: stpmv_ called\");\n    return NULL;\n}\n\nvoid* stpsv(void)\n{\n    if (verbose) puts(\"STUB: stpsv called\");\n    return NULL;\n}\n\nvoid* stpsv_(void)\n{\n    if (verbose) puts(\"STUB: stpsv_ called\");\n    return NULL;\n}\n\nvoid* strCopyLower(void)\n{\n    if (verbose) puts(\"STUB: strCopyLower called\");\n    return NULL;\n}\n\nvoid* strSetZeroLower(void)\n{\n    if (verbose) puts(\"STUB: strSetZeroLower called\");\n    return NULL;\n}\n\nvoid* strmm(void)\n{\n    if (verbose) puts(\"STUB: strmm called\");\n    return NULL;\n}\n\nvoid* strmm_(void)\n{\n    if (verbose) puts(\"STUB: strmm_ called\");\n    return NULL;\n}\n\nvoid* strmv(void)\n{\n    if (verbose) puts(\"STUB: strmv called\");\n    return NULL;\n}\n\nvoid* strmv_(void)\n{\n    if (verbose) puts(\"STUB: strmv_ called\");\n    return NULL;\n}\n\nvoid* strsm(void)\n{\n    if (verbose) puts(\"STUB: strsm called\");\n    return NULL;\n}\n\nvoid* strsm_(void)\n{\n    if (verbose) puts(\"STUB: strsm_ called\");\n    return NULL;\n}\n\nvoid* strsv(void)\n{\n    if (verbose) puts(\"STUB: strsv called\");\n    return NULL;\n}\n\nvoid* strsv_(void)\n{\n    if (verbose) puts(\"STUB: strsv_ called\");\n    return NULL;\n}\n\nvoid* xerbla(void)\n{\n    if (verbose) puts(\"STUB: xerbla called\");\n    return NULL;\n}\n\nvoid* xerbla_(void)\n{\n    if (verbose) puts(\"STUB: xerbla_ called\");\n    return NULL;\n}\n\nvoid* xerbla_array__(void)\n{\n    if (verbose) puts(\"STUB: xerbla_array__ called\");\n    return NULL;\n}\n\nvoid* zaxpy(void)\n{\n    if (verbose) puts(\"STUB: zaxpy called\");\n    return NULL;\n}\n\nvoid* zaxpy_(void)\n{\n    if (verbose) puts(\"STUB: zaxpy_ called\");\n    return NULL;\n}\n\nvoid* zcopy(void)\n{\n    if (verbose) puts(\"STUB: zcopy called\");\n    return NULL;\n}\n\nvoid* zcopy_(void)\n{\n    if (verbose) puts(\"STUB: zcopy_ called\");\n    return NULL;\n}\n\nvoid* zdotc(void)\n{\n    if (verbose) puts(\"STUB: zdotc called\");\n    return NULL;\n}\n\nvoid* zdotc_(void)\n{\n    if (verbose) puts(\"STUB: zdotc_ called\");\n    return NULL;\n}\n\nvoid* zdotu(void)\n{\n    if (verbose) puts(\"STUB: zdotu called\");\n    return NULL;\n}\n\nvoid* zdotu_(void)\n{\n    if (verbose) puts(\"STUB: zdotu_ called\");\n    return NULL;\n}\n\nvoid* zdrot(void)\n{\n    if (verbose) puts(\"STUB: zdrot called\");\n    return NULL;\n}\n\nvoid* zdrot_(void)\n{\n    if (verbose) puts(\"STUB: zdrot_ called\");\n    return NULL;\n}\n\nvoid* zdscal(void)\n{\n    if (verbose) puts(\"STUB: zdscal called\");\n    return NULL;\n}\n\nvoid* zdscal_(void)\n{\n    if (verbose) puts(\"STUB: zdscal_ called\");\n    return NULL;\n}\n\nvoid* zgbmv(void)\n{\n    if (verbose) puts(\"STUB: zgbmv called\");\n    return NULL;\n}\n\nvoid* zgbmv_(void)\n{\n    if (verbose) puts(\"STUB: zgbmv_ called\");\n    return NULL;\n}\n\nvoid* zgemm(void)\n{\n    if (verbose) puts(\"STUB: zgemm called\");\n    return NULL;\n}\n\nvoid* zgemm_(void)\n{\n    if (verbose) puts(\"STUB: zgemm_ called\");\n    return NULL;\n}\n\nvoid* zgemv(void)\n{\n    if (verbose) puts(\"STUB: zgemv called\");\n    return NULL;\n}\n\nvoid* zgemv_(void)\n{\n    if (verbose) puts(\"STUB: zgemv_ called\");\n    return NULL;\n}\n\nvoid* zgerc(void)\n{\n    if (verbose) puts(\"STUB: zgerc called\");\n    return NULL;\n}\n\nvoid* zgerc_(void)\n{\n    if (verbose) puts(\"STUB: zgerc_ called\");\n    return NULL;\n}\n\nvoid* zgeru(void)\n{\n    if (verbose) puts(\"STUB: zgeru called\");\n    return NULL;\n}\n\nvoid* zgeru_(void)\n{\n    if (verbose) puts(\"STUB: zgeru_ called\");\n    return NULL;\n}\n\nvoid* zhbmv(void)\n{\n    if (verbose) puts(\"STUB: zhbmv called\");\n    return NULL;\n}\n\nvoid* zhbmv_(void)\n{\n    if (verbose) puts(\"STUB: zhbmv_ called\");\n    return NULL;\n}\n\nvoid* zhemm(void)\n{\n    if (verbose) puts(\"STUB: zhemm called\");\n    return NULL;\n}\n\nvoid* zhemm_(void)\n{\n    if (verbose) puts(\"STUB: zhemm_ called\");\n    return NULL;\n}\n\nvoid* zhemv(void)\n{\n    if (verbose) puts(\"STUB: zhemv called\");\n    return NULL;\n}\n\nvoid* zhemv_(void)\n{\n    if (verbose) puts(\"STUB: zhemv_ called\");\n    return NULL;\n}\n\nvoid* zher(void)\n{\n    if (verbose) puts(\"STUB: zher called\");\n    return NULL;\n}\n\nvoid* zher2(void)\n{\n    if (verbose) puts(\"STUB: zher2 called\");\n    return NULL;\n}\n\nvoid* zher2_(void)\n{\n    if (verbose) puts(\"STUB: zher2_ called\");\n    return NULL;\n}\n\nvoid* zher2k(void)\n{\n    if (verbose) puts(\"STUB: zher2k called\");\n    return NULL;\n}\n\nvoid* zher2k_(void)\n{\n    if (verbose) puts(\"STUB: zher2k_ called\");\n    return NULL;\n}\n\nvoid* zher_(void)\n{\n    if (verbose) puts(\"STUB: zher_ called\");\n    return NULL;\n}\n\nvoid* zherk(void)\n{\n    if (verbose) puts(\"STUB: zherk called\");\n    return NULL;\n}\n\nvoid* zherk_(void)\n{\n    if (verbose) puts(\"STUB: zherk_ called\");\n    return NULL;\n}\n\nvoid* zhpmv(void)\n{\n    if (verbose) puts(\"STUB: zhpmv called\");\n    return NULL;\n}\n\nvoid* zhpmv_(void)\n{\n    if (verbose) puts(\"STUB: zhpmv_ called\");\n    return NULL;\n}\n\nvoid* zhpr(void)\n{\n    if (verbose) puts(\"STUB: zhpr called\");\n    return NULL;\n}\n\nvoid* zhpr2(void)\n{\n    if (verbose) puts(\"STUB: zhpr2 called\");\n    return NULL;\n}\n\nvoid* zhpr2_(void)\n{\n    if (verbose) puts(\"STUB: zhpr2_ called\");\n    return NULL;\n}\n\nvoid* zhpr_(void)\n{\n    if (verbose) puts(\"STUB: zhpr_ called\");\n    return NULL;\n}\n\nvoid* zrotg(void)\n{\n    if (verbose) puts(\"STUB: zrotg called\");\n    return NULL;\n}\n\nvoid* zrotg_(void)\n{\n    if (verbose) puts(\"STUB: zrotg_ called\");\n    return NULL;\n}\n\nvoid* zscal(void)\n{\n    if (verbose) puts(\"STUB: zscal called\");\n    return NULL;\n}\n\nvoid* zscal_(void)\n{\n    if (verbose) puts(\"STUB: zscal_ called\");\n    return NULL;\n}\n\nvoid* zswap(void)\n{\n    if (verbose) puts(\"STUB: zswap called\");\n    return NULL;\n}\n\nvoid* zswap_(void)\n{\n    if (verbose) puts(\"STUB: zswap_ called\");\n    return NULL;\n}\n\nvoid* zsymm(void)\n{\n    if (verbose) puts(\"STUB: zsymm called\");\n    return NULL;\n}\n\nvoid* zsymm_(void)\n{\n    if (verbose) puts(\"STUB: zsymm_ called\");\n    return NULL;\n}\n\nvoid* zsyr2k(void)\n{\n    if (verbose) puts(\"STUB: zsyr2k called\");\n    return NULL;\n}\n\nvoid* zsyr2k_(void)\n{\n    if (verbose) puts(\"STUB: zsyr2k_ called\");\n    return NULL;\n}\n\nvoid* zsyrk(void)\n{\n    if (verbose) puts(\"STUB: zsyrk called\");\n    return NULL;\n}\n\nvoid* zsyrk_(void)\n{\n    if (verbose) puts(\"STUB: zsyrk_ called\");\n    return NULL;\n}\n\nvoid* ztbmv(void)\n{\n    if (verbose) puts(\"STUB: ztbmv called\");\n    return NULL;\n}\n\nvoid* ztbmv_(void)\n{\n    if (verbose) puts(\"STUB: ztbmv_ called\");\n    return NULL;\n}\n\nvoid* ztbsv(void)\n{\n    if (verbose) puts(\"STUB: ztbsv called\");\n    return NULL;\n}\n\nvoid* ztbsv_(void)\n{\n    if (verbose) puts(\"STUB: ztbsv_ called\");\n    return NULL;\n}\n\nvoid* ztpmv(void)\n{\n    if (verbose) puts(\"STUB: ztpmv called\");\n    return NULL;\n}\n\nvoid* ztpmv_(void)\n{\n    if (verbose) puts(\"STUB: ztpmv_ called\");\n    return NULL;\n}\n\nvoid* ztpsv(void)\n{\n    if (verbose) puts(\"STUB: ztpsv called\");\n    return NULL;\n}\n\nvoid* ztpsv_(void)\n{\n    if (verbose) puts(\"STUB: ztpsv_ called\");\n    return NULL;\n}\n\nvoid* ztrmm(void)\n{\n    if (verbose) puts(\"STUB: ztrmm called\");\n    return NULL;\n}\n\nvoid* ztrmm_(void)\n{\n    if (verbose) puts(\"STUB: ztrmm_ called\");\n    return NULL;\n}\n\nvoid* ztrmv(void)\n{\n    if (verbose) puts(\"STUB: ztrmv called\");\n    return NULL;\n}\n\nvoid* ztrmv_(void)\n{\n    if (verbose) puts(\"STUB: ztrmv_ called\");\n    return NULL;\n}\n\nvoid* ztrsm(void)\n{\n    if (verbose) puts(\"STUB: ztrsm called\");\n    return NULL;\n}\n\nvoid* ztrsm_(void)\n{\n    if (verbose) puts(\"STUB: ztrsm_ called\");\n    return NULL;\n}\n\nvoid* ztrsv(void)\n{\n    if (verbose) puts(\"STUB: ztrsv called\");\n    return NULL;\n}\n\nvoid* ztrsv_(void)\n{\n    if (verbose) puts(\"STUB: ztrsv_ called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/BNNS/CMakeLists.txt",
    "content": "project(BNNS)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nadd_darling_library(BNNS SHARED\n    src/BNNS.c\n)\nmake_fat(BNNS)\ntarget_link_libraries(BNNS system)\ninstall(TARGETS BNNS DESTINATION libexec/darling/usr/lib)\n\nset_property(TARGET BNNS PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET BNNS PROPERTY DYLIB_BUILD_NAME libBNNS.dylib)\ninstall(TARGETS BNNS DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libBNNS.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libBNNS.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/BNNS/include/BNNS/BNNS.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _BNNS_H_\n#define _BNNS_H_\n\nvoid* BNNSApplyVectorActivationLayer(void);\nvoid* BNNSDequantize(void);\nvoid* BNNSFilterApply(void);\nvoid* BNNSFilterApplyBatch(void);\nvoid* BNNSFilterCreateConvolutionLayer(void);\nvoid* BNNSFilterCreateConvolutionWeightsTensorConversionLayer(void);\nvoid* BNNSFilterCreateFullyConnectedLayer(void);\nvoid* BNNSFilterCreateImageTensorConversionLayer(void);\nvoid* BNNSFilterCreatePoolingLayer(void);\nvoid* BNNSFilterCreateTensorConvolutionLayer(void);\nvoid* BNNSFilterCreateVectorActivationLayer(void);\nvoid* BNNSFilterDestroy(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/BNNS/src/BNNS.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <BNNS/BNNS.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* BNNSApplyVectorActivationLayer(void)\n{\n    if (verbose) puts(\"STUB: BNNSApplyVectorActivationLayer called\");\n    return NULL;\n}\n\nvoid* BNNSDequantize(void)\n{\n    if (verbose) puts(\"STUB: BNNSDequantize called\");\n    return NULL;\n}\n\nvoid* BNNSFilterApply(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterApply called\");\n    return NULL;\n}\n\nvoid* BNNSFilterApplyBatch(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterApplyBatch called\");\n    return NULL;\n}\n\nvoid* BNNSFilterCreateConvolutionLayer(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterCreateConvolutionLayer called\");\n    return NULL;\n}\n\nvoid* BNNSFilterCreateConvolutionWeightsTensorConversionLayer(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterCreateConvolutionWeightsTensorConversionLayer called\");\n    return NULL;\n}\n\nvoid* BNNSFilterCreateFullyConnectedLayer(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterCreateFullyConnectedLayer called\");\n    return NULL;\n}\n\nvoid* BNNSFilterCreateImageTensorConversionLayer(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterCreateImageTensorConversionLayer called\");\n    return NULL;\n}\n\nvoid* BNNSFilterCreatePoolingLayer(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterCreatePoolingLayer called\");\n    return NULL;\n}\n\nvoid* BNNSFilterCreateTensorConvolutionLayer(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterCreateTensorConvolutionLayer called\");\n    return NULL;\n}\n\nvoid* BNNSFilterCreateVectorActivationLayer(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterCreateVectorActivationLayer called\");\n    return NULL;\n}\n\nvoid* BNNSFilterDestroy(void)\n{\n    if (verbose) puts(\"STUB: BNNSFilterDestroy called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/CMakeLists.txt",
    "content": "project(vecLib)\n\n# TODO: Move to /src/CMakeLists.txt when done\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/vMisc/include)\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/vDSP/include)\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/BLAS/include)\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/LAPACK/include)\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/LinearAlgebra/include)\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/SparseBLAS/include)\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/Quadrature/include)\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/BNNS/include)\ninclude_directories(${CMAKE_CURRENT_SOURCE_DIR}/Sparse/include)\n\nadd_subdirectory(vMisc)\nadd_subdirectory(vDSP)\nadd_subdirectory(BLAS)\nadd_subdirectory(LAPACK)\nadd_subdirectory(LinearAlgebra)\nadd_subdirectory(SparseBLAS)\nadd_subdirectory(Quadrature)\nadd_subdirectory(BNNS)\nadd_subdirectory(Sparse)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"671.250.4\")\n\nadd_framework(vecLib\n    FAT\n    CURRENT_VERSION\n    VERSION \"A\"\n    PARENT \"Accelerate\"\n\n    SOURCES\n        empty.c\n\n    DEPENDENCIES\n    \tvMisc\n\tvDSP\n\tBLAS\n\tLAPACK\n\tLinearAlgebra\n\tSparseBLAS\n\tQuadrature\n\tBNNS\n\tSparse\n        system\n)\n\nreexport(vecLib vMisc ${CMAKE_CURRENT_BINARY_DIR}/vMisc/libvMisc.dylib)\nreexport(vecLib vDSP ${CMAKE_CURRENT_BINARY_DIR}/vDSP/libvDSP.dylib)\nreexport(vecLib BLAS ${CMAKE_CURRENT_BINARY_DIR}/BLAS/libBLAS.dylib)\nreexport(vecLib LAPACK ${CMAKE_CURRENT_BINARY_DIR}/LAPACK/libLAPACK.dylib)\nreexport(vecLib LinearAlgebra ${CMAKE_CURRENT_BINARY_DIR}/LinearAlgebra/libLinearAlgebra.dylib)\nreexport(vecLib SparseBLAS ${CMAKE_CURRENT_BINARY_DIR}/SparseBLAS/libSparseBLAS.dylib)\nreexport(vecLib Quadrature ${CMAKE_CURRENT_BINARY_DIR}/Quadrature/libQuadrature.dylib)\nreexport(vecLib BNNS ${CMAKE_CURRENT_BINARY_DIR}/BNNS/libBNNS.dylib)\nreexport(vecLib Sparse ${CMAKE_CURRENT_BINARY_DIR}/Sparse/libSparse.dylib)\n\nInstallSymlink(Accelerate.framework/Versions/A/Frameworks/vecLib.framework ${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/vecLib.framework)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/LAPACK/CMakeLists.txt",
    "content": "project(LAPACK)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nadd_darling_library(LAPACK SHARED\n    src/LAPACK.c\n)\nmake_fat(LAPACK)\ntarget_link_libraries(LAPACK system)\ninstall(TARGETS LAPACK DESTINATION libexec/darling/usr/lib)\n\nset_property(TARGET LAPACK PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET LAPACK PROPERTY DYLIB_BUILD_NAME libLAPACK.dylib)\ninstall(TARGETS LAPACK DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libLAPACK.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libLAPACK.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/LAPACK/include/LAPACK/LAPACK.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _LAPACK_H_\n#define _LAPACK_H_\n\nvoid* CBDSQR(void);\nvoid* CBDSQR_(void);\nvoid* CGBBRD(void);\nvoid* CGBBRD_(void);\nvoid* CGBCON(void);\nvoid* CGBCON_(void);\nvoid* CGBEQU(void);\nvoid* CGBEQUB(void);\nvoid* CGBEQUB_(void);\nvoid* CGBEQU_(void);\nvoid* CGBRFS(void);\nvoid* CGBRFS_(void);\nvoid* CGBSV(void);\nvoid* CGBSVX(void);\nvoid* CGBSVX_(void);\nvoid* CGBSV_(void);\nvoid* CGBTF2(void);\nvoid* CGBTF2_(void);\nvoid* CGBTRF(void);\nvoid* CGBTRF_(void);\nvoid* CGBTRS(void);\nvoid* CGBTRS_(void);\nvoid* CGEBAK(void);\nvoid* CGEBAK_(void);\nvoid* CGEBAL(void);\nvoid* CGEBAL_(void);\nvoid* CGEBD2(void);\nvoid* CGEBD2_(void);\nvoid* CGEBRD(void);\nvoid* CGEBRD_(void);\nvoid* CGECON(void);\nvoid* CGECON_(void);\nvoid* CGEEQU(void);\nvoid* CGEEQUB(void);\nvoid* CGEEQUB_(void);\nvoid* CGEEQU_(void);\nvoid* CGEES(void);\nvoid* CGEESX(void);\nvoid* CGEESX_(void);\nvoid* CGEES_(void);\nvoid* CGEEV(void);\nvoid* CGEEVX(void);\nvoid* CGEEVX_(void);\nvoid* CGEEV_(void);\nvoid* CGEGS(void);\nvoid* CGEGS_(void);\nvoid* CGEGV(void);\nvoid* CGEGV_(void);\nvoid* CGEHD2(void);\nvoid* CGEHD2_(void);\nvoid* CGEHRD(void);\nvoid* CGEHRD_(void);\nvoid* CGELQ2(void);\nvoid* CGELQ2_(void);\nvoid* CGELQF(void);\nvoid* CGELQF_(void);\nvoid* CGELS(void);\nvoid* CGELSD(void);\nvoid* CGELSD_(void);\nvoid* CGELSS(void);\nvoid* CGELSS_(void);\nvoid* CGELSX(void);\nvoid* CGELSX_(void);\nvoid* CGELSY(void);\nvoid* CGELSY_(void);\nvoid* CGELS_(void);\nvoid* CGEQL2(void);\nvoid* CGEQL2_(void);\nvoid* CGEQLF(void);\nvoid* CGEQLF_(void);\nvoid* CGEQP3(void);\nvoid* CGEQP3_(void);\nvoid* CGEQPF(void);\nvoid* CGEQPF_(void);\nvoid* CGEQR2(void);\nvoid* CGEQR2_(void);\nvoid* CGEQRF(void);\nvoid* CGEQRF_(void);\nvoid* CGERFS(void);\nvoid* CGERFS_(void);\nvoid* CGERQ2(void);\nvoid* CGERQ2_(void);\nvoid* CGERQF(void);\nvoid* CGERQF_(void);\nvoid* CGESC2(void);\nvoid* CGESC2_(void);\nvoid* CGESDD(void);\nvoid* CGESDD_(void);\nvoid* CGESV(void);\nvoid* CGESVD(void);\nvoid* CGESVD_(void);\nvoid* CGESVX(void);\nvoid* CGESVX_(void);\nvoid* CGESV_(void);\nvoid* CGETC2(void);\nvoid* CGETC2_(void);\nvoid* CGETF2(void);\nvoid* CGETF2_(void);\nvoid* CGETRF(void);\nvoid* CGETRF_(void);\nvoid* CGETRI(void);\nvoid* CGETRI_(void);\nvoid* CGETRS(void);\nvoid* CGETRS_(void);\nvoid* CGGBAK(void);\nvoid* CGGBAK_(void);\nvoid* CGGBAL(void);\nvoid* CGGBAL_(void);\nvoid* CGGES(void);\nvoid* CGGESX(void);\nvoid* CGGESX_(void);\nvoid* CGGES_(void);\nvoid* CGGEV(void);\nvoid* CGGEVX(void);\nvoid* CGGEVX_(void);\nvoid* CGGEV_(void);\nvoid* CGGGLM(void);\nvoid* CGGGLM_(void);\nvoid* CGGHRD(void);\nvoid* CGGHRD_(void);\nvoid* CGGLSE(void);\nvoid* CGGLSE_(void);\nvoid* CGGQRF(void);\nvoid* CGGQRF_(void);\nvoid* CGGRQF(void);\nvoid* CGGRQF_(void);\nvoid* CGGSVD(void);\nvoid* CGGSVD_(void);\nvoid* CGGSVP(void);\nvoid* CGGSVP_(void);\nvoid* CGTCON(void);\nvoid* CGTCON_(void);\nvoid* CGTRFS(void);\nvoid* CGTRFS_(void);\nvoid* CGTSV(void);\nvoid* CGTSVX(void);\nvoid* CGTSVX_(void);\nvoid* CGTSV_(void);\nvoid* CGTTRF(void);\nvoid* CGTTRF_(void);\nvoid* CGTTRS(void);\nvoid* CGTTRS_(void);\nvoid* CGTTS2(void);\nvoid* CGTTS2_(void);\nvoid* CHBEV(void);\nvoid* CHBEVD(void);\nvoid* CHBEVD_(void);\nvoid* CHBEVX(void);\nvoid* CHBEVX_(void);\nvoid* CHBEV_(void);\nvoid* CHBGST(void);\nvoid* CHBGST_(void);\nvoid* CHBGV(void);\nvoid* CHBGVD(void);\nvoid* CHBGVD_(void);\nvoid* CHBGVX(void);\nvoid* CHBGVX_(void);\nvoid* CHBGV_(void);\nvoid* CHBTRD(void);\nvoid* CHBTRD_(void);\nvoid* CHECON(void);\nvoid* CHECON_(void);\nvoid* CHEEQUB(void);\nvoid* CHEEQUB_(void);\nvoid* CHEEV(void);\nvoid* CHEEVD(void);\nvoid* CHEEVD_(void);\nvoid* CHEEVR(void);\nvoid* CHEEVR_(void);\nvoid* CHEEVX(void);\nvoid* CHEEVX_(void);\nvoid* CHEEV_(void);\nvoid* CHEGS2(void);\nvoid* CHEGS2_(void);\nvoid* CHEGST(void);\nvoid* CHEGST_(void);\nvoid* CHEGV(void);\nvoid* CHEGVD(void);\nvoid* CHEGVD_(void);\nvoid* CHEGVX(void);\nvoid* CHEGVX_(void);\nvoid* CHEGV_(void);\nvoid* CHERFS(void);\nvoid* CHERFS_(void);\nvoid* CHESV(void);\nvoid* CHESVX(void);\nvoid* CHESVX_(void);\nvoid* CHESV_(void);\nvoid* CHETD2(void);\nvoid* CHETD2_(void);\nvoid* CHETF2(void);\nvoid* CHETF2_(void);\nvoid* CHETRD(void);\nvoid* CHETRD_(void);\nvoid* CHETRF(void);\nvoid* CHETRF_(void);\nvoid* CHETRI(void);\nvoid* CHETRI_(void);\nvoid* CHETRS(void);\nvoid* CHETRS_(void);\nvoid* CHFRK(void);\nvoid* CHFRK_(void);\nvoid* CHGEQZ(void);\nvoid* CHGEQZ_(void);\nvoid* CHLA_TRANSTYPE__(void);\nvoid* CHPCON(void);\nvoid* CHPCON_(void);\nvoid* CHPEV(void);\nvoid* CHPEVD(void);\nvoid* CHPEVD_(void);\nvoid* CHPEVX(void);\nvoid* CHPEVX_(void);\nvoid* CHPEV_(void);\nvoid* CHPGST(void);\nvoid* CHPGST_(void);\nvoid* CHPGV(void);\nvoid* CHPGVD(void);\nvoid* CHPGVD_(void);\nvoid* CHPGVX(void);\nvoid* CHPGVX_(void);\nvoid* CHPGV_(void);\nvoid* CHPRFS(void);\nvoid* CHPRFS_(void);\nvoid* CHPSV(void);\nvoid* CHPSVX(void);\nvoid* CHPSVX_(void);\nvoid* CHPSV_(void);\nvoid* CHPTRD(void);\nvoid* CHPTRD_(void);\nvoid* CHPTRF(void);\nvoid* CHPTRF_(void);\nvoid* CHPTRI(void);\nvoid* CHPTRI_(void);\nvoid* CHPTRS(void);\nvoid* CHPTRS_(void);\nvoid* CHSEIN(void);\nvoid* CHSEIN_(void);\nvoid* CHSEQR(void);\nvoid* CHSEQR_(void);\nvoid* CLABRD(void);\nvoid* CLABRD_(void);\nvoid* CLACGV(void);\nvoid* CLACGV_(void);\nvoid* CLACN2(void);\nvoid* CLACN2_(void);\nvoid* CLACON(void);\nvoid* CLACON_(void);\nvoid* CLACP2(void);\nvoid* CLACP2_(void);\nvoid* CLACPY(void);\nvoid* CLACPY_(void);\nvoid* CLACRM(void);\nvoid* CLACRM_(void);\nvoid* CLACRT(void);\nvoid* CLACRT_(void);\nvoid* CLADIV(void);\nvoid* CLADIV_(void);\nvoid* CLAED0(void);\nvoid* CLAED0_(void);\nvoid* CLAED7(void);\nvoid* CLAED7_(void);\nvoid* CLAED8(void);\nvoid* CLAED8_(void);\nvoid* CLAEIN(void);\nvoid* CLAEIN_(void);\nvoid* CLAESY(void);\nvoid* CLAESY_(void);\nvoid* CLAEV2(void);\nvoid* CLAEV2_(void);\nvoid* CLAG2Z(void);\nvoid* CLAG2Z_(void);\nvoid* CLAGS2(void);\nvoid* CLAGS2_(void);\nvoid* CLAGTM(void);\nvoid* CLAGTM_(void);\nvoid* CLAHEF(void);\nvoid* CLAHEF_(void);\nvoid* CLAHQR(void);\nvoid* CLAHQR_(void);\nvoid* CLAHR2(void);\nvoid* CLAHR2_(void);\nvoid* CLAHRD(void);\nvoid* CLAHRD_(void);\nvoid* CLAIC1(void);\nvoid* CLAIC1_(void);\nvoid* CLALS0(void);\nvoid* CLALS0_(void);\nvoid* CLALSA(void);\nvoid* CLALSA_(void);\nvoid* CLALSD(void);\nvoid* CLALSD_(void);\nvoid* CLANGB(void);\nvoid* CLANGB_(void);\nvoid* CLANGE(void);\nvoid* CLANGE_(void);\nvoid* CLANGT(void);\nvoid* CLANGT_(void);\nvoid* CLANHB(void);\nvoid* CLANHB_(void);\nvoid* CLANHE(void);\nvoid* CLANHE_(void);\nvoid* CLANHF(void);\nvoid* CLANHF_(void);\nvoid* CLANHP(void);\nvoid* CLANHP_(void);\nvoid* CLANHS(void);\nvoid* CLANHS_(void);\nvoid* CLANHT(void);\nvoid* CLANHT_(void);\nvoid* CLANSB(void);\nvoid* CLANSB_(void);\nvoid* CLANSP(void);\nvoid* CLANSP_(void);\nvoid* CLANSY(void);\nvoid* CLANSY_(void);\nvoid* CLANTB(void);\nvoid* CLANTB_(void);\nvoid* CLANTP(void);\nvoid* CLANTP_(void);\nvoid* CLANTR(void);\nvoid* CLANTR_(void);\nvoid* CLAPLL(void);\nvoid* CLAPLL_(void);\nvoid* CLAPMT(void);\nvoid* CLAPMT_(void);\nvoid* CLAQGB(void);\nvoid* CLAQGB_(void);\nvoid* CLAQGE(void);\nvoid* CLAQGE_(void);\nvoid* CLAQHB(void);\nvoid* CLAQHB_(void);\nvoid* CLAQHE(void);\nvoid* CLAQHE_(void);\nvoid* CLAQHP(void);\nvoid* CLAQHP_(void);\nvoid* CLAQP2(void);\nvoid* CLAQP2_(void);\nvoid* CLAQPS(void);\nvoid* CLAQPS_(void);\nvoid* CLAQR0(void);\nvoid* CLAQR0_(void);\nvoid* CLAQR1(void);\nvoid* CLAQR1_(void);\nvoid* CLAQR2(void);\nvoid* CLAQR2_(void);\nvoid* CLAQR3(void);\nvoid* CLAQR3_(void);\nvoid* CLAQR4(void);\nvoid* CLAQR4_(void);\nvoid* CLAQR5(void);\nvoid* CLAQR5_(void);\nvoid* CLAQSB(void);\nvoid* CLAQSB_(void);\nvoid* CLAQSP(void);\nvoid* CLAQSP_(void);\nvoid* CLAQSY(void);\nvoid* CLAQSY_(void);\nvoid* CLAR1V(void);\nvoid* CLAR1V_(void);\nvoid* CLAR2V(void);\nvoid* CLAR2V_(void);\nvoid* CLARCM(void);\nvoid* CLARCM_(void);\nvoid* CLARF(void);\nvoid* CLARFB(void);\nvoid* CLARFB_(void);\nvoid* CLARFG(void);\nvoid* CLARFG_(void);\nvoid* CLARFP(void);\nvoid* CLARFP_(void);\nvoid* CLARFT(void);\nvoid* CLARFT_(void);\nvoid* CLARFX(void);\nvoid* CLARFX_(void);\nvoid* CLARF_(void);\nvoid* CLARGV(void);\nvoid* CLARGV_(void);\nvoid* CLARNV(void);\nvoid* CLARNV_(void);\nvoid* CLARRV(void);\nvoid* CLARRV_(void);\nvoid* CLARSCL2(void);\nvoid* CLARSCL2_(void);\nvoid* CLARTG(void);\nvoid* CLARTG_(void);\nvoid* CLARTV(void);\nvoid* CLARTV_(void);\nvoid* CLARZ(void);\nvoid* CLARZB(void);\nvoid* CLARZB_(void);\nvoid* CLARZT(void);\nvoid* CLARZT_(void);\nvoid* CLARZ_(void);\nvoid* CLASCL(void);\nvoid* CLASCL2(void);\nvoid* CLASCL2_(void);\nvoid* CLASCL_(void);\nvoid* CLASET(void);\nvoid* CLASET_(void);\nvoid* CLASR(void);\nvoid* CLASR_(void);\nvoid* CLASSQ(void);\nvoid* CLASSQ_(void);\nvoid* CLASWP(void);\nvoid* CLASWP_(void);\nvoid* CLASYF(void);\nvoid* CLASYF_(void);\nvoid* CLATBS(void);\nvoid* CLATBS_(void);\nvoid* CLATDF(void);\nvoid* CLATDF_(void);\nvoid* CLATPS(void);\nvoid* CLATPS_(void);\nvoid* CLATRD(void);\nvoid* CLATRD_(void);\nvoid* CLATRS(void);\nvoid* CLATRS_(void);\nvoid* CLATRZ(void);\nvoid* CLATRZ_(void);\nvoid* CLATZM(void);\nvoid* CLATZM_(void);\nvoid* CLAUU2(void);\nvoid* CLAUU2_(void);\nvoid* CLAUUM(void);\nvoid* CLAUUM_(void);\nvoid* CPBCON(void);\nvoid* CPBCON_(void);\nvoid* CPBEQU(void);\nvoid* CPBEQU_(void);\nvoid* CPBRFS(void);\nvoid* CPBRFS_(void);\nvoid* CPBSTF(void);\nvoid* CPBSTF_(void);\nvoid* CPBSV(void);\nvoid* CPBSVX(void);\nvoid* CPBSVX_(void);\nvoid* CPBSV_(void);\nvoid* CPBTF2(void);\nvoid* CPBTF2_(void);\nvoid* CPBTRF(void);\nvoid* CPBTRF_(void);\nvoid* CPBTRS(void);\nvoid* CPBTRS_(void);\nvoid* CPFTRF(void);\nvoid* CPFTRF_(void);\nvoid* CPFTRI(void);\nvoid* CPFTRI_(void);\nvoid* CPFTRS(void);\nvoid* CPFTRS_(void);\nvoid* CPOCON(void);\nvoid* CPOCON_(void);\nvoid* CPOEQU(void);\nvoid* CPOEQUB(void);\nvoid* CPOEQUB_(void);\nvoid* CPOEQU_(void);\nvoid* CPORFS(void);\nvoid* CPORFS_(void);\nvoid* CPOSV(void);\nvoid* CPOSVX(void);\nvoid* CPOSVX_(void);\nvoid* CPOSV_(void);\nvoid* CPOTF2(void);\nvoid* CPOTF2_(void);\nvoid* CPOTRF(void);\nvoid* CPOTRF_(void);\nvoid* CPOTRI(void);\nvoid* CPOTRI_(void);\nvoid* CPOTRS(void);\nvoid* CPOTRS_(void);\nvoid* CPPCON(void);\nvoid* CPPCON_(void);\nvoid* CPPEQU(void);\nvoid* CPPEQU_(void);\nvoid* CPPRFS(void);\nvoid* CPPRFS_(void);\nvoid* CPPSV(void);\nvoid* CPPSVX(void);\nvoid* CPPSVX_(void);\nvoid* CPPSV_(void);\nvoid* CPPTRF(void);\nvoid* CPPTRF_(void);\nvoid* CPPTRI(void);\nvoid* CPPTRI_(void);\nvoid* CPPTRS(void);\nvoid* CPPTRS_(void);\nvoid* CPSTF2(void);\nvoid* CPSTF2_(void);\nvoid* CPSTRF(void);\nvoid* CPSTRF_(void);\nvoid* CPTCON(void);\nvoid* CPTCON_(void);\nvoid* CPTEQR(void);\nvoid* CPTEQR_(void);\nvoid* CPTRFS(void);\nvoid* CPTRFS_(void);\nvoid* CPTSV(void);\nvoid* CPTSVX(void);\nvoid* CPTSVX_(void);\nvoid* CPTSV_(void);\nvoid* CPTTRF(void);\nvoid* CPTTRF_(void);\nvoid* CPTTRS(void);\nvoid* CPTTRS_(void);\nvoid* CPTTS2(void);\nvoid* CPTTS2_(void);\nvoid* CROT(void);\nvoid* CROT_(void);\nvoid* CSPCON(void);\nvoid* CSPCON_(void);\nvoid* CSPMV(void);\nvoid* CSPMV_(void);\nvoid* CSPR(void);\nvoid* CSPRFS(void);\nvoid* CSPRFS_(void);\nvoid* CSPR_(void);\nvoid* CSPSV(void);\nvoid* CSPSVX(void);\nvoid* CSPSVX_(void);\nvoid* CSPSV_(void);\nvoid* CSPTRF(void);\nvoid* CSPTRF_(void);\nvoid* CSPTRI(void);\nvoid* CSPTRI_(void);\nvoid* CSPTRS(void);\nvoid* CSPTRS_(void);\nvoid* CSRSCL(void);\nvoid* CSRSCL_(void);\nvoid* CSTEDC(void);\nvoid* CSTEDC_(void);\nvoid* CSTEGR(void);\nvoid* CSTEGR_(void);\nvoid* CSTEIN(void);\nvoid* CSTEIN_(void);\nvoid* CSTEMR(void);\nvoid* CSTEMR_(void);\nvoid* CSTEQR(void);\nvoid* CSTEQR_(void);\nvoid* CSYCON(void);\nvoid* CSYCON_(void);\nvoid* CSYEQUB(void);\nvoid* CSYEQUB_(void);\nvoid* CSYMV(void);\nvoid* CSYMV_(void);\nvoid* CSYR(void);\nvoid* CSYRFS(void);\nvoid* CSYRFS_(void);\nvoid* CSYR_(void);\nvoid* CSYSV(void);\nvoid* CSYSVX(void);\nvoid* CSYSVX_(void);\nvoid* CSYSV_(void);\nvoid* CSYTF2(void);\nvoid* CSYTF2_(void);\nvoid* CSYTRF(void);\nvoid* CSYTRF_(void);\nvoid* CSYTRI(void);\nvoid* CSYTRI_(void);\nvoid* CSYTRS(void);\nvoid* CSYTRS_(void);\nvoid* CTBCON(void);\nvoid* CTBCON_(void);\nvoid* CTBRFS(void);\nvoid* CTBRFS_(void);\nvoid* CTBTRS(void);\nvoid* CTBTRS_(void);\nvoid* CTFSM(void);\nvoid* CTFSM_(void);\nvoid* CTFTRI(void);\nvoid* CTFTRI_(void);\nvoid* CTFTTP(void);\nvoid* CTFTTP_(void);\nvoid* CTFTTR(void);\nvoid* CTFTTR_(void);\nvoid* CTGEVC(void);\nvoid* CTGEVC_(void);\nvoid* CTGEX2(void);\nvoid* CTGEX2_(void);\nvoid* CTGEXC(void);\nvoid* CTGEXC_(void);\nvoid* CTGSEN(void);\nvoid* CTGSEN_(void);\nvoid* CTGSJA(void);\nvoid* CTGSJA_(void);\nvoid* CTGSNA(void);\nvoid* CTGSNA_(void);\nvoid* CTGSY2(void);\nvoid* CTGSY2_(void);\nvoid* CTGSYL(void);\nvoid* CTGSYL_(void);\nvoid* CTPCON(void);\nvoid* CTPCON_(void);\nvoid* CTPRFS(void);\nvoid* CTPRFS_(void);\nvoid* CTPTRI(void);\nvoid* CTPTRI_(void);\nvoid* CTPTRS(void);\nvoid* CTPTRS_(void);\nvoid* CTPTTF(void);\nvoid* CTPTTF_(void);\nvoid* CTPTTR(void);\nvoid* CTPTTR_(void);\nvoid* CTRCON(void);\nvoid* CTRCON_(void);\nvoid* CTREVC(void);\nvoid* CTREVC_(void);\nvoid* CTREXC(void);\nvoid* CTREXC_(void);\nvoid* CTRRFS(void);\nvoid* CTRRFS_(void);\nvoid* CTRSEN(void);\nvoid* CTRSEN_(void);\nvoid* CTRSNA(void);\nvoid* CTRSNA_(void);\nvoid* CTRSYL(void);\nvoid* CTRSYL_(void);\nvoid* CTRTI2(void);\nvoid* CTRTI2_(void);\nvoid* CTRTRI(void);\nvoid* CTRTRI_(void);\nvoid* CTRTRS(void);\nvoid* CTRTRS_(void);\nvoid* CTRTTF(void);\nvoid* CTRTTF_(void);\nvoid* CTRTTP(void);\nvoid* CTRTTP_(void);\nvoid* CTZRQF(void);\nvoid* CTZRQF_(void);\nvoid* CTZRZF(void);\nvoid* CTZRZF_(void);\nvoid* CUNG2L(void);\nvoid* CUNG2L_(void);\nvoid* CUNG2R(void);\nvoid* CUNG2R_(void);\nvoid* CUNGBR(void);\nvoid* CUNGBR_(void);\nvoid* CUNGHR(void);\nvoid* CUNGHR_(void);\nvoid* CUNGL2(void);\nvoid* CUNGL2_(void);\nvoid* CUNGLQ(void);\nvoid* CUNGLQ_(void);\nvoid* CUNGQL(void);\nvoid* CUNGQL_(void);\nvoid* CUNGQR(void);\nvoid* CUNGQR_(void);\nvoid* CUNGR2(void);\nvoid* CUNGR2_(void);\nvoid* CUNGRQ(void);\nvoid* CUNGRQ_(void);\nvoid* CUNGTR(void);\nvoid* CUNGTR_(void);\nvoid* CUNM2L(void);\nvoid* CUNM2L_(void);\nvoid* CUNM2R(void);\nvoid* CUNM2R_(void);\nvoid* CUNMBR(void);\nvoid* CUNMBR_(void);\nvoid* CUNMHR(void);\nvoid* CUNMHR_(void);\nvoid* CUNML2(void);\nvoid* CUNML2_(void);\nvoid* CUNMLQ(void);\nvoid* CUNMLQ_(void);\nvoid* CUNMQL(void);\nvoid* CUNMQL_(void);\nvoid* CUNMQR(void);\nvoid* CUNMQR_(void);\nvoid* CUNMR2(void);\nvoid* CUNMR2_(void);\nvoid* CUNMR3(void);\nvoid* CUNMR3_(void);\nvoid* CUNMRQ(void);\nvoid* CUNMRQ_(void);\nvoid* CUNMRZ(void);\nvoid* CUNMRZ_(void);\nvoid* CUNMTR(void);\nvoid* CUNMTR_(void);\nvoid* CUPGTR(void);\nvoid* CUPGTR_(void);\nvoid* CUPMTR(void);\nvoid* CUPMTR_(void);\nvoid* DBDSDC(void);\nvoid* DBDSDC_(void);\nvoid* DBDSQR(void);\nvoid* DBDSQR_(void);\nvoid* DDISNA(void);\nvoid* DDISNA_(void);\nvoid* DGBBRD(void);\nvoid* DGBBRD_(void);\nvoid* DGBCON(void);\nvoid* DGBCON_(void);\nvoid* DGBEQU(void);\nvoid* DGBEQUB(void);\nvoid* DGBEQUB_(void);\nvoid* DGBEQU_(void);\nvoid* DGBRFS(void);\nvoid* DGBRFS_(void);\nvoid* DGBSV(void);\nvoid* DGBSVX(void);\nvoid* DGBSVX_(void);\nvoid* DGBSV_(void);\nvoid* DGBTF2(void);\nvoid* DGBTF2_(void);\nvoid* DGBTRF(void);\nvoid* DGBTRF_(void);\nvoid* DGBTRS(void);\nvoid* DGBTRS_(void);\nvoid* DGEBAK(void);\nvoid* DGEBAK_(void);\nvoid* DGEBAL(void);\nvoid* DGEBAL_(void);\nvoid* DGEBD2(void);\nvoid* DGEBD2_(void);\nvoid* DGEBRD(void);\nvoid* DGEBRD_(void);\nvoid* DGECON(void);\nvoid* DGECON_(void);\nvoid* DGEEQU(void);\nvoid* DGEEQUB(void);\nvoid* DGEEQUB_(void);\nvoid* DGEEQU_(void);\nvoid* DGEES(void);\nvoid* DGEESX(void);\nvoid* DGEESX_(void);\nvoid* DGEES_(void);\nvoid* DGEEV(void);\nvoid* DGEEVX(void);\nvoid* DGEEVX_(void);\nvoid* DGEEV_(void);\nvoid* DGEGS(void);\nvoid* DGEGS_(void);\nvoid* DGEGV(void);\nvoid* DGEGV_(void);\nvoid* DGEHD2(void);\nvoid* DGEHD2_(void);\nvoid* DGEHRD(void);\nvoid* DGEHRD_(void);\nvoid* DGEJSV(void);\nvoid* DGEJSV_(void);\nvoid* DGELQ2(void);\nvoid* DGELQ2_(void);\nvoid* DGELQF(void);\nvoid* DGELQF_(void);\nvoid* DGELS(void);\nvoid* DGELSD(void);\nvoid* DGELSD_(void);\nvoid* DGELSS(void);\nvoid* DGELSS_(void);\nvoid* DGELSX(void);\nvoid* DGELSX_(void);\nvoid* DGELSY(void);\nvoid* DGELSY_(void);\nvoid* DGELS_(void);\nvoid* DGEQL2(void);\nvoid* DGEQL2_(void);\nvoid* DGEQLF(void);\nvoid* DGEQLF_(void);\nvoid* DGEQP3(void);\nvoid* DGEQP3_(void);\nvoid* DGEQPF(void);\nvoid* DGEQPF_(void);\nvoid* DGEQR2(void);\nvoid* DGEQR2_(void);\nvoid* DGEQRF(void);\nvoid* DGEQRF_(void);\nvoid* DGERFS(void);\nvoid* DGERFS_(void);\nvoid* DGERQ2(void);\nvoid* DGERQ2_(void);\nvoid* DGERQF(void);\nvoid* DGERQF_(void);\nvoid* DGESC2(void);\nvoid* DGESC2_(void);\nvoid* DGESDD(void);\nvoid* DGESDD_(void);\nvoid* DGESV(void);\nvoid* DGESVD(void);\nvoid* DGESVD_(void);\nvoid* DGESVJ(void);\nvoid* DGESVJ_(void);\nvoid* DGESVX(void);\nvoid* DGESVX_(void);\nvoid* DGESV_(void);\nvoid* DGETC2(void);\nvoid* DGETC2_(void);\nvoid* DGETF2(void);\nvoid* DGETF2_(void);\nvoid* DGETRF(void);\nvoid* DGETRF_(void);\nvoid* DGETRI(void);\nvoid* DGETRI_(void);\nvoid* DGETRS(void);\nvoid* DGETRS_(void);\nvoid* DGGBAK(void);\nvoid* DGGBAK_(void);\nvoid* DGGBAL(void);\nvoid* DGGBAL_(void);\nvoid* DGGES(void);\nvoid* DGGESX(void);\nvoid* DGGESX_(void);\nvoid* DGGES_(void);\nvoid* DGGEV(void);\nvoid* DGGEVX(void);\nvoid* DGGEVX_(void);\nvoid* DGGEV_(void);\nvoid* DGGGLM(void);\nvoid* DGGGLM_(void);\nvoid* DGGHRD(void);\nvoid* DGGHRD_(void);\nvoid* DGGLSE(void);\nvoid* DGGLSE_(void);\nvoid* DGGQRF(void);\nvoid* DGGQRF_(void);\nvoid* DGGRQF(void);\nvoid* DGGRQF_(void);\nvoid* DGGSVD(void);\nvoid* DGGSVD_(void);\nvoid* DGGSVP(void);\nvoid* DGGSVP_(void);\nvoid* DGSVJ0(void);\nvoid* DGSVJ0_(void);\nvoid* DGSVJ1(void);\nvoid* DGSVJ1_(void);\nvoid* DGTCON(void);\nvoid* DGTCON_(void);\nvoid* DGTRFS(void);\nvoid* DGTRFS_(void);\nvoid* DGTSV(void);\nvoid* DGTSVX(void);\nvoid* DGTSVX_(void);\nvoid* DGTSV_(void);\nvoid* DGTTRF(void);\nvoid* DGTTRF_(void);\nvoid* DGTTRS(void);\nvoid* DGTTRS_(void);\nvoid* DGTTS2(void);\nvoid* DGTTS2_(void);\nvoid* DHGEQZ(void);\nvoid* DHGEQZ_(void);\nvoid* DHSEIN(void);\nvoid* DHSEIN_(void);\nvoid* DHSEQR(void);\nvoid* DHSEQR_(void);\nvoid* DISNAN(void);\nvoid* DISNAN_(void);\nvoid* DLABAD(void);\nvoid* DLABAD_(void);\nvoid* DLABRD(void);\nvoid* DLABRD_(void);\nvoid* DLACN2(void);\nvoid* DLACN2_(void);\nvoid* DLACON(void);\nvoid* DLACON_(void);\nvoid* DLACPY(void);\nvoid* DLACPY_(void);\nvoid* DLADIV(void);\nvoid* DLADIV_(void);\nvoid* DLAE2(void);\nvoid* DLAE2_(void);\nvoid* DLAEBZ(void);\nvoid* DLAEBZ_(void);\nvoid* DLAED0(void);\nvoid* DLAED0_(void);\nvoid* DLAED1(void);\nvoid* DLAED1_(void);\nvoid* DLAED2(void);\nvoid* DLAED2_(void);\nvoid* DLAED3(void);\nvoid* DLAED3_(void);\nvoid* DLAED4(void);\nvoid* DLAED4_(void);\nvoid* DLAED5(void);\nvoid* DLAED5_(void);\nvoid* DLAED6(void);\nvoid* DLAED6_(void);\nvoid* DLAED7(void);\nvoid* DLAED7_(void);\nvoid* DLAED8(void);\nvoid* DLAED8_(void);\nvoid* DLAED9(void);\nvoid* DLAED9_(void);\nvoid* DLAEDA(void);\nvoid* DLAEDA_(void);\nvoid* DLAEIN(void);\nvoid* DLAEIN_(void);\nvoid* DLAEV2(void);\nvoid* DLAEV2_(void);\nvoid* DLAEXC(void);\nvoid* DLAEXC_(void);\nvoid* DLAG2(void);\nvoid* DLAG2S(void);\nvoid* DLAG2S_(void);\nvoid* DLAG2_(void);\nvoid* DLAGS2(void);\nvoid* DLAGS2_(void);\nvoid* DLAGTF(void);\nvoid* DLAGTF_(void);\nvoid* DLAGTM(void);\nvoid* DLAGTM_(void);\nvoid* DLAGTS(void);\nvoid* DLAGTS_(void);\nvoid* DLAGV2(void);\nvoid* DLAGV2_(void);\nvoid* DLAHQR(void);\nvoid* DLAHQR_(void);\nvoid* DLAHR2(void);\nvoid* DLAHR2_(void);\nvoid* DLAHRD(void);\nvoid* DLAHRD_(void);\nvoid* DLAIC1(void);\nvoid* DLAIC1_(void);\nvoid* DLAISNAN(void);\nvoid* DLAISNAN_(void);\nvoid* DLALN2(void);\nvoid* DLALN2_(void);\nvoid* DLALS0(void);\nvoid* DLALS0_(void);\nvoid* DLALSA(void);\nvoid* DLALSA_(void);\nvoid* DLALSD(void);\nvoid* DLALSD_(void);\nvoid* DLAMC1(void);\nvoid* DLAMC1_(void);\nvoid* DLAMC2(void);\nvoid* DLAMC2_(void);\nvoid* DLAMC3(void);\nvoid* DLAMC3_(void);\nvoid* DLAMC4(void);\nvoid* DLAMC4_(void);\nvoid* DLAMC5(void);\nvoid* DLAMC5_(void);\nvoid* DLAMCH(void);\nvoid* DLAMCH_(void);\nvoid* DLAMRG(void);\nvoid* DLAMRG_(void);\nvoid* DLANEG(void);\nvoid* DLANEG_(void);\nvoid* DLANGB(void);\nvoid* DLANGB_(void);\nvoid* DLANGE(void);\nvoid* DLANGE_(void);\nvoid* DLANGT(void);\nvoid* DLANGT_(void);\nvoid* DLANHS(void);\nvoid* DLANHS_(void);\nvoid* DLANSB(void);\nvoid* DLANSB_(void);\nvoid* DLANSF(void);\nvoid* DLANSF_(void);\nvoid* DLANSP(void);\nvoid* DLANSP_(void);\nvoid* DLANST(void);\nvoid* DLANST_(void);\nvoid* DLANSY(void);\nvoid* DLANSY_(void);\nvoid* DLANTB(void);\nvoid* DLANTB_(void);\nvoid* DLANTP(void);\nvoid* DLANTP_(void);\nvoid* DLANTR(void);\nvoid* DLANTR_(void);\nvoid* DLANV2(void);\nvoid* DLANV2_(void);\nvoid* DLAPLL(void);\nvoid* DLAPLL_(void);\nvoid* DLAPMT(void);\nvoid* DLAPMT_(void);\nvoid* DLAPY2(void);\nvoid* DLAPY2_(void);\nvoid* DLAPY3(void);\nvoid* DLAPY3_(void);\nvoid* DLAQGB(void);\nvoid* DLAQGB_(void);\nvoid* DLAQGE(void);\nvoid* DLAQGE_(void);\nvoid* DLAQP2(void);\nvoid* DLAQP2_(void);\nvoid* DLAQPS(void);\nvoid* DLAQPS_(void);\nvoid* DLAQR0(void);\nvoid* DLAQR0_(void);\nvoid* DLAQR1(void);\nvoid* DLAQR1_(void);\nvoid* DLAQR2(void);\nvoid* DLAQR2_(void);\nvoid* DLAQR3(void);\nvoid* DLAQR3_(void);\nvoid* DLAQR4(void);\nvoid* DLAQR4_(void);\nvoid* DLAQR5(void);\nvoid* DLAQR5_(void);\nvoid* DLAQSB(void);\nvoid* DLAQSB_(void);\nvoid* DLAQSP(void);\nvoid* DLAQSP_(void);\nvoid* DLAQSY(void);\nvoid* DLAQSY_(void);\nvoid* DLAQTR(void);\nvoid* DLAQTR_(void);\nvoid* DLAR1V(void);\nvoid* DLAR1V_(void);\nvoid* DLAR2V(void);\nvoid* DLAR2V_(void);\nvoid* DLARF(void);\nvoid* DLARFB(void);\nvoid* DLARFB_(void);\nvoid* DLARFG(void);\nvoid* DLARFG_(void);\nvoid* DLARFP(void);\nvoid* DLARFP_(void);\nvoid* DLARFT(void);\nvoid* DLARFT_(void);\nvoid* DLARFX(void);\nvoid* DLARFX_(void);\nvoid* DLARF_(void);\nvoid* DLARGV(void);\nvoid* DLARGV_(void);\nvoid* DLARNV(void);\nvoid* DLARNV_(void);\nvoid* DLARRA(void);\nvoid* DLARRA_(void);\nvoid* DLARRB(void);\nvoid* DLARRB_(void);\nvoid* DLARRC(void);\nvoid* DLARRC_(void);\nvoid* DLARRD(void);\nvoid* DLARRD_(void);\nvoid* DLARRE(void);\nvoid* DLARRE_(void);\nvoid* DLARRF(void);\nvoid* DLARRF_(void);\nvoid* DLARRJ(void);\nvoid* DLARRJ_(void);\nvoid* DLARRK(void);\nvoid* DLARRK_(void);\nvoid* DLARRR(void);\nvoid* DLARRR_(void);\nvoid* DLARRV(void);\nvoid* DLARRV_(void);\nvoid* DLARSCL2(void);\nvoid* DLARSCL2_(void);\nvoid* DLARTG(void);\nvoid* DLARTG_(void);\nvoid* DLARTV(void);\nvoid* DLARTV_(void);\nvoid* DLARUV(void);\nvoid* DLARUV_(void);\nvoid* DLARZ(void);\nvoid* DLARZB(void);\nvoid* DLARZB_(void);\nvoid* DLARZT(void);\nvoid* DLARZT_(void);\nvoid* DLARZ_(void);\nvoid* DLAS2(void);\nvoid* DLAS2_(void);\nvoid* DLASCL(void);\nvoid* DLASCL2(void);\nvoid* DLASCL2_(void);\nvoid* DLASCL_(void);\nvoid* DLASD0(void);\nvoid* DLASD0_(void);\nvoid* DLASD1(void);\nvoid* DLASD1_(void);\nvoid* DLASD2(void);\nvoid* DLASD2_(void);\nvoid* DLASD3(void);\nvoid* DLASD3_(void);\nvoid* DLASD4(void);\nvoid* DLASD4_(void);\nvoid* DLASD5(void);\nvoid* DLASD5_(void);\nvoid* DLASD6(void);\nvoid* DLASD6_(void);\nvoid* DLASD7(void);\nvoid* DLASD7_(void);\nvoid* DLASD8(void);\nvoid* DLASD8_(void);\nvoid* DLASD9(void);\nvoid* DLASD9_(void);\nvoid* DLASDA(void);\nvoid* DLASDA_(void);\nvoid* DLASDQ(void);\nvoid* DLASDQ_(void);\nvoid* DLASDT(void);\nvoid* DLASDT_(void);\nvoid* DLASET(void);\nvoid* DLASET_(void);\nvoid* DLASQ1(void);\nvoid* DLASQ1_(void);\nvoid* DLASQ2(void);\nvoid* DLASQ2_(void);\nvoid* DLASQ3(void);\nvoid* DLASQ3_(void);\nvoid* DLASQ4(void);\nvoid* DLASQ4_(void);\nvoid* DLASQ5(void);\nvoid* DLASQ5_(void);\nvoid* DLASQ6(void);\nvoid* DLASQ6_(void);\nvoid* DLASR(void);\nvoid* DLASRT(void);\nvoid* DLASRT_(void);\nvoid* DLASR_(void);\nvoid* DLASSQ(void);\nvoid* DLASSQ_(void);\nvoid* DLASV2(void);\nvoid* DLASV2_(void);\nvoid* DLASWP(void);\nvoid* DLASWP_(void);\nvoid* DLASY2(void);\nvoid* DLASY2_(void);\nvoid* DLASYF(void);\nvoid* DLASYF_(void);\nvoid* DLAT2S(void);\nvoid* DLAT2S_(void);\nvoid* DLATBS(void);\nvoid* DLATBS_(void);\nvoid* DLATDF(void);\nvoid* DLATDF_(void);\nvoid* DLATPS(void);\nvoid* DLATPS_(void);\nvoid* DLATRD(void);\nvoid* DLATRD_(void);\nvoid* DLATRS(void);\nvoid* DLATRS_(void);\nvoid* DLATRZ(void);\nvoid* DLATRZ_(void);\nvoid* DLATZM(void);\nvoid* DLATZM_(void);\nvoid* DLAUU2(void);\nvoid* DLAUU2_(void);\nvoid* DLAUUM(void);\nvoid* DLAUUM_(void);\nvoid* DOPGTR(void);\nvoid* DOPGTR_(void);\nvoid* DOPMTR(void);\nvoid* DOPMTR_(void);\nvoid* DORG2L(void);\nvoid* DORG2L_(void);\nvoid* DORG2R(void);\nvoid* DORG2R_(void);\nvoid* DORGBR(void);\nvoid* DORGBR_(void);\nvoid* DORGHR(void);\nvoid* DORGHR_(void);\nvoid* DORGL2(void);\nvoid* DORGL2_(void);\nvoid* DORGLQ(void);\nvoid* DORGLQ_(void);\nvoid* DORGQL(void);\nvoid* DORGQL_(void);\nvoid* DORGQR(void);\nvoid* DORGQR_(void);\nvoid* DORGR2(void);\nvoid* DORGR2_(void);\nvoid* DORGRQ(void);\nvoid* DORGRQ_(void);\nvoid* DORGTR(void);\nvoid* DORGTR_(void);\nvoid* DORM2L(void);\nvoid* DORM2L_(void);\nvoid* DORM2R(void);\nvoid* DORM2R_(void);\nvoid* DORMBR(void);\nvoid* DORMBR_(void);\nvoid* DORMHR(void);\nvoid* DORMHR_(void);\nvoid* DORML2(void);\nvoid* DORML2_(void);\nvoid* DORMLQ(void);\nvoid* DORMLQ_(void);\nvoid* DORMQL(void);\nvoid* DORMQL_(void);\nvoid* DORMQR(void);\nvoid* DORMQR_(void);\nvoid* DORMR2(void);\nvoid* DORMR2_(void);\nvoid* DORMR3(void);\nvoid* DORMR3_(void);\nvoid* DORMRQ(void);\nvoid* DORMRQ_(void);\nvoid* DORMRZ(void);\nvoid* DORMRZ_(void);\nvoid* DORMTR(void);\nvoid* DORMTR_(void);\nvoid* DPBCON(void);\nvoid* DPBCON_(void);\nvoid* DPBEQU(void);\nvoid* DPBEQU_(void);\nvoid* DPBRFS(void);\nvoid* DPBRFS_(void);\nvoid* DPBSTF(void);\nvoid* DPBSTF_(void);\nvoid* DPBSV(void);\nvoid* DPBSVX(void);\nvoid* DPBSVX_(void);\nvoid* DPBSV_(void);\nvoid* DPBTF2(void);\nvoid* DPBTF2_(void);\nvoid* DPBTRF(void);\nvoid* DPBTRF_(void);\nvoid* DPBTRS(void);\nvoid* DPBTRS_(void);\nvoid* DPFTRF(void);\nvoid* DPFTRF_(void);\nvoid* DPFTRI(void);\nvoid* DPFTRI_(void);\nvoid* DPFTRS(void);\nvoid* DPFTRS_(void);\nvoid* DPOCON(void);\nvoid* DPOCON_(void);\nvoid* DPOEQU(void);\nvoid* DPOEQUB(void);\nvoid* DPOEQUB_(void);\nvoid* DPOEQU_(void);\nvoid* DPORFS(void);\nvoid* DPORFS_(void);\nvoid* DPOSV(void);\nvoid* DPOSVX(void);\nvoid* DPOSVX_(void);\nvoid* DPOSV_(void);\nvoid* DPOTF2(void);\nvoid* DPOTF2_(void);\nvoid* DPOTRF(void);\nvoid* DPOTRF_(void);\nvoid* DPOTRI(void);\nvoid* DPOTRI_(void);\nvoid* DPOTRS(void);\nvoid* DPOTRS_(void);\nvoid* DPPCON(void);\nvoid* DPPCON_(void);\nvoid* DPPEQU(void);\nvoid* DPPEQU_(void);\nvoid* DPPRFS(void);\nvoid* DPPRFS_(void);\nvoid* DPPSV(void);\nvoid* DPPSVX(void);\nvoid* DPPSVX_(void);\nvoid* DPPSV_(void);\nvoid* DPPTRF(void);\nvoid* DPPTRF_(void);\nvoid* DPPTRI(void);\nvoid* DPPTRI_(void);\nvoid* DPPTRS(void);\nvoid* DPPTRS_(void);\nvoid* DPSTF2(void);\nvoid* DPSTF2_(void);\nvoid* DPSTRF(void);\nvoid* DPSTRF_(void);\nvoid* DPTCON(void);\nvoid* DPTCON_(void);\nvoid* DPTEQR(void);\nvoid* DPTEQR_(void);\nvoid* DPTRFS(void);\nvoid* DPTRFS_(void);\nvoid* DPTSV(void);\nvoid* DPTSVX(void);\nvoid* DPTSVX_(void);\nvoid* DPTSV_(void);\nvoid* DPTTRF(void);\nvoid* DPTTRF_(void);\nvoid* DPTTRS(void);\nvoid* DPTTRS_(void);\nvoid* DPTTS2(void);\nvoid* DPTTS2_(void);\nvoid* DRSCL(void);\nvoid* DRSCL_(void);\nvoid* DSBEV(void);\nvoid* DSBEVD(void);\nvoid* DSBEVD_(void);\nvoid* DSBEVX(void);\nvoid* DSBEVX_(void);\nvoid* DSBEV_(void);\nvoid* DSBGST(void);\nvoid* DSBGST_(void);\nvoid* DSBGV(void);\nvoid* DSBGVD(void);\nvoid* DSBGVD_(void);\nvoid* DSBGVX(void);\nvoid* DSBGVX_(void);\nvoid* DSBGV_(void);\nvoid* DSBTRD(void);\nvoid* DSBTRD_(void);\nvoid* DSFRK(void);\nvoid* DSFRK_(void);\nvoid* DSGESV(void);\nvoid* DSGESV_(void);\nvoid* DSPCON(void);\nvoid* DSPCON_(void);\nvoid* DSPEV(void);\nvoid* DSPEVD(void);\nvoid* DSPEVD_(void);\nvoid* DSPEVX(void);\nvoid* DSPEVX_(void);\nvoid* DSPEV_(void);\nvoid* DSPGST(void);\nvoid* DSPGST_(void);\nvoid* DSPGV(void);\nvoid* DSPGVD(void);\nvoid* DSPGVD_(void);\nvoid* DSPGVX(void);\nvoid* DSPGVX_(void);\nvoid* DSPGV_(void);\nvoid* DSPOSV(void);\nvoid* DSPOSV_(void);\nvoid* DSPRFS(void);\nvoid* DSPRFS_(void);\nvoid* DSPSV(void);\nvoid* DSPSVX(void);\nvoid* DSPSVX_(void);\nvoid* DSPSV_(void);\nvoid* DSPTRD(void);\nvoid* DSPTRD_(void);\nvoid* DSPTRF(void);\nvoid* DSPTRF_(void);\nvoid* DSPTRI(void);\nvoid* DSPTRI_(void);\nvoid* DSPTRS(void);\nvoid* DSPTRS_(void);\nvoid* DSTEBZ(void);\nvoid* DSTEBZ_(void);\nvoid* DSTEDC(void);\nvoid* DSTEDC_(void);\nvoid* DSTEGR(void);\nvoid* DSTEGR_(void);\nvoid* DSTEIN(void);\nvoid* DSTEIN_(void);\nvoid* DSTEMR(void);\nvoid* DSTEMR_(void);\nvoid* DSTEQR(void);\nvoid* DSTEQR_(void);\nvoid* DSTERF(void);\nvoid* DSTERF_(void);\nvoid* DSTEV(void);\nvoid* DSTEVD(void);\nvoid* DSTEVD_(void);\nvoid* DSTEVR(void);\nvoid* DSTEVR_(void);\nvoid* DSTEVX(void);\nvoid* DSTEVX_(void);\nvoid* DSTEV_(void);\nvoid* DSYCON(void);\nvoid* DSYCON_(void);\nvoid* DSYEQUB(void);\nvoid* DSYEQUB_(void);\nvoid* DSYEV(void);\nvoid* DSYEVD(void);\nvoid* DSYEVD_(void);\nvoid* DSYEVR(void);\nvoid* DSYEVR_(void);\nvoid* DSYEVX(void);\nvoid* DSYEVX_(void);\nvoid* DSYEV_(void);\nvoid* DSYGS2(void);\nvoid* DSYGS2_(void);\nvoid* DSYGST(void);\nvoid* DSYGST_(void);\nvoid* DSYGV(void);\nvoid* DSYGVD(void);\nvoid* DSYGVD_(void);\nvoid* DSYGVX(void);\nvoid* DSYGVX_(void);\nvoid* DSYGV_(void);\nvoid* DSYRFS(void);\nvoid* DSYRFS_(void);\nvoid* DSYSV(void);\nvoid* DSYSVX(void);\nvoid* DSYSVX_(void);\nvoid* DSYSV_(void);\nvoid* DSYTD2(void);\nvoid* DSYTD2_(void);\nvoid* DSYTF2(void);\nvoid* DSYTF2_(void);\nvoid* DSYTRD(void);\nvoid* DSYTRD_(void);\nvoid* DSYTRF(void);\nvoid* DSYTRF_(void);\nvoid* DSYTRI(void);\nvoid* DSYTRI_(void);\nvoid* DSYTRS(void);\nvoid* DSYTRS_(void);\nvoid* DTBCON(void);\nvoid* DTBCON_(void);\nvoid* DTBRFS(void);\nvoid* DTBRFS_(void);\nvoid* DTBTRS(void);\nvoid* DTBTRS_(void);\nvoid* DTFSM(void);\nvoid* DTFSM_(void);\nvoid* DTFTRI(void);\nvoid* DTFTRI_(void);\nvoid* DTFTTP(void);\nvoid* DTFTTP_(void);\nvoid* DTFTTR(void);\nvoid* DTFTTR_(void);\nvoid* DTGEVC(void);\nvoid* DTGEVC_(void);\nvoid* DTGEX2(void);\nvoid* DTGEX2_(void);\nvoid* DTGEXC(void);\nvoid* DTGEXC_(void);\nvoid* DTGSEN(void);\nvoid* DTGSEN_(void);\nvoid* DTGSJA(void);\nvoid* DTGSJA_(void);\nvoid* DTGSNA(void);\nvoid* DTGSNA_(void);\nvoid* DTGSY2(void);\nvoid* DTGSY2_(void);\nvoid* DTGSYL(void);\nvoid* DTGSYL_(void);\nvoid* DTPCON(void);\nvoid* DTPCON_(void);\nvoid* DTPRFS(void);\nvoid* DTPRFS_(void);\nvoid* DTPTRI(void);\nvoid* DTPTRI_(void);\nvoid* DTPTRS(void);\nvoid* DTPTRS_(void);\nvoid* DTPTTF(void);\nvoid* DTPTTF_(void);\nvoid* DTPTTR(void);\nvoid* DTPTTR_(void);\nvoid* DTRCON(void);\nvoid* DTRCON_(void);\nvoid* DTREVC(void);\nvoid* DTREVC_(void);\nvoid* DTREXC(void);\nvoid* DTREXC_(void);\nvoid* DTRRFS(void);\nvoid* DTRRFS_(void);\nvoid* DTRSEN(void);\nvoid* DTRSEN_(void);\nvoid* DTRSNA(void);\nvoid* DTRSNA_(void);\nvoid* DTRSYL(void);\nvoid* DTRSYL_(void);\nvoid* DTRTI2(void);\nvoid* DTRTI2_(void);\nvoid* DTRTRI(void);\nvoid* DTRTRI_(void);\nvoid* DTRTRS(void);\nvoid* DTRTRS_(void);\nvoid* DTRTTF(void);\nvoid* DTRTTF_(void);\nvoid* DTRTTP(void);\nvoid* DTRTTP_(void);\nvoid* DTZRQF(void);\nvoid* DTZRQF_(void);\nvoid* DTZRZF(void);\nvoid* DTZRZF_(void);\nvoid* DZSUM1(void);\nvoid* DZSUM1_(void);\nvoid* ICMAX1(void);\nvoid* ICMAX1_(void);\nvoid* IEEECK(void);\nvoid* IEEECK_(void);\nvoid* ILACLC(void);\nvoid* ILACLC_(void);\nvoid* ILACLR(void);\nvoid* ILACLR_(void);\nvoid* ILADIAG(void);\nvoid* ILADIAG_(void);\nvoid* ILADLC(void);\nvoid* ILADLC_(void);\nvoid* ILADLR(void);\nvoid* ILADLR_(void);\nvoid* ILAENV(void);\nvoid* ILAENV_(void);\nvoid* ILAPREC(void);\nvoid* ILAPREC_(void);\nvoid* ILASLC(void);\nvoid* ILASLC_(void);\nvoid* ILASLR(void);\nvoid* ILASLR_(void);\nvoid* ILATRANS(void);\nvoid* ILATRANS_(void);\nvoid* ILAUPLO(void);\nvoid* ILAUPLO_(void);\nvoid* ILAVER(void);\nvoid* ILAVER_(void);\nvoid* ILAZLC(void);\nvoid* ILAZLC_(void);\nvoid* ILAZLR(void);\nvoid* ILAZLR_(void);\nvoid* IPARMQ(void);\nvoid* IPARMQ_(void);\nvoid* IZMAX1(void);\nvoid* IZMAX1_(void);\nvoid* LSAMEN(void);\nvoid* LSAMEN_(void);\nvoid* SBDSDC(void);\nvoid* SBDSDC_(void);\nvoid* SBDSQR(void);\nvoid* SBDSQR_(void);\nvoid* SCSUM1(void);\nvoid* SCSUM1_(void);\nvoid* SDISNA(void);\nvoid* SDISNA_(void);\nvoid* SGBBRD(void);\nvoid* SGBBRD_(void);\nvoid* SGBCON(void);\nvoid* SGBCON_(void);\nvoid* SGBEQU(void);\nvoid* SGBEQUB(void);\nvoid* SGBEQUB_(void);\nvoid* SGBEQU_(void);\nvoid* SGBRFS(void);\nvoid* SGBRFS_(void);\nvoid* SGBSV(void);\nvoid* SGBSVX(void);\nvoid* SGBSVX_(void);\nvoid* SGBSV_(void);\nvoid* SGBTF2(void);\nvoid* SGBTF2_(void);\nvoid* SGBTRF(void);\nvoid* SGBTRF_(void);\nvoid* SGBTRS(void);\nvoid* SGBTRS_(void);\nvoid* SGEBAK(void);\nvoid* SGEBAK_(void);\nvoid* SGEBAL(void);\nvoid* SGEBAL_(void);\nvoid* SGEBD2(void);\nvoid* SGEBD2_(void);\nvoid* SGEBRD(void);\nvoid* SGEBRD_(void);\nvoid* SGECON(void);\nvoid* SGECON_(void);\nvoid* SGEEQU(void);\nvoid* SGEEQUB(void);\nvoid* SGEEQUB_(void);\nvoid* SGEEQU_(void);\nvoid* SGEES(void);\nvoid* SGEESX(void);\nvoid* SGEESX_(void);\nvoid* SGEES_(void);\nvoid* SGEEV(void);\nvoid* SGEEVX(void);\nvoid* SGEEVX_(void);\nvoid* SGEEV_(void);\nvoid* SGEGS(void);\nvoid* SGEGS_(void);\nvoid* SGEGV(void);\nvoid* SGEGV_(void);\nvoid* SGEHD2(void);\nvoid* SGEHD2_(void);\nvoid* SGEHRD(void);\nvoid* SGEHRD_(void);\nvoid* SGEJSV(void);\nvoid* SGEJSV_(void);\nvoid* SGELQ2(void);\nvoid* SGELQ2_(void);\nvoid* SGELQF(void);\nvoid* SGELQF_(void);\nvoid* SGELS(void);\nvoid* SGELSD(void);\nvoid* SGELSD_(void);\nvoid* SGELSS(void);\nvoid* SGELSS_(void);\nvoid* SGELSX(void);\nvoid* SGELSX_(void);\nvoid* SGELSY(void);\nvoid* SGELSY_(void);\nvoid* SGELS_(void);\nvoid* SGEQL2(void);\nvoid* SGEQL2_(void);\nvoid* SGEQLF(void);\nvoid* SGEQLF_(void);\nvoid* SGEQP3(void);\nvoid* SGEQP3_(void);\nvoid* SGEQPF(void);\nvoid* SGEQPF_(void);\nvoid* SGEQR2(void);\nvoid* SGEQR2_(void);\nvoid* SGEQRF(void);\nvoid* SGEQRF_(void);\nvoid* SGERFS(void);\nvoid* SGERFS_(void);\nvoid* SGERQ2(void);\nvoid* SGERQ2_(void);\nvoid* SGERQF(void);\nvoid* SGERQF_(void);\nvoid* SGESC2(void);\nvoid* SGESC2_(void);\nvoid* SGESDD(void);\nvoid* SGESDD_(void);\nvoid* SGESV(void);\nvoid* SGESVD(void);\nvoid* SGESVD_(void);\nvoid* SGESVJ(void);\nvoid* SGESVJ_(void);\nvoid* SGESVX(void);\nvoid* SGESVX_(void);\nvoid* SGESV_(void);\nvoid* SGETC2(void);\nvoid* SGETC2_(void);\nvoid* SGETF2(void);\nvoid* SGETF2_(void);\nvoid* SGETRF(void);\nvoid* SGETRF_(void);\nvoid* SGETRI(void);\nvoid* SGETRI_(void);\nvoid* SGETRS(void);\nvoid* SGETRS_(void);\nvoid* SGGBAK(void);\nvoid* SGGBAK_(void);\nvoid* SGGBAL(void);\nvoid* SGGBAL_(void);\nvoid* SGGES(void);\nvoid* SGGESX(void);\nvoid* SGGESX_(void);\nvoid* SGGES_(void);\nvoid* SGGEV(void);\nvoid* SGGEVX(void);\nvoid* SGGEVX_(void);\nvoid* SGGEV_(void);\nvoid* SGGGLM(void);\nvoid* SGGGLM_(void);\nvoid* SGGHRD(void);\nvoid* SGGHRD_(void);\nvoid* SGGLSE(void);\nvoid* SGGLSE_(void);\nvoid* SGGQRF(void);\nvoid* SGGQRF_(void);\nvoid* SGGRQF(void);\nvoid* SGGRQF_(void);\nvoid* SGGSVD(void);\nvoid* SGGSVD_(void);\nvoid* SGGSVP(void);\nvoid* SGGSVP_(void);\nvoid* SGSVJ0(void);\nvoid* SGSVJ0_(void);\nvoid* SGSVJ1(void);\nvoid* SGSVJ1_(void);\nvoid* SGTCON(void);\nvoid* SGTCON_(void);\nvoid* SGTRFS(void);\nvoid* SGTRFS_(void);\nvoid* SGTSV(void);\nvoid* SGTSVX(void);\nvoid* SGTSVX_(void);\nvoid* SGTSV_(void);\nvoid* SGTTRF(void);\nvoid* SGTTRF_(void);\nvoid* SGTTRS(void);\nvoid* SGTTRS_(void);\nvoid* SGTTS2(void);\nvoid* SGTTS2_(void);\nvoid* SHGEQZ(void);\nvoid* SHGEQZ_(void);\nvoid* SHSEIN(void);\nvoid* SHSEIN_(void);\nvoid* SHSEQR(void);\nvoid* SHSEQR_(void);\nvoid* SISNAN(void);\nvoid* SISNAN_(void);\nvoid* SLABAD(void);\nvoid* SLABAD_(void);\nvoid* SLABRD(void);\nvoid* SLABRD_(void);\nvoid* SLACN2(void);\nvoid* SLACN2_(void);\nvoid* SLACON(void);\nvoid* SLACON_(void);\nvoid* SLACPY(void);\nvoid* SLACPY_(void);\nvoid* SLADIV(void);\nvoid* SLADIV_(void);\nvoid* SLAE2(void);\nvoid* SLAE2_(void);\nvoid* SLAEBZ(void);\nvoid* SLAEBZ_(void);\nvoid* SLAED0(void);\nvoid* SLAED0_(void);\nvoid* SLAED1(void);\nvoid* SLAED1_(void);\nvoid* SLAED2(void);\nvoid* SLAED2_(void);\nvoid* SLAED3(void);\nvoid* SLAED3_(void);\nvoid* SLAED4(void);\nvoid* SLAED4_(void);\nvoid* SLAED5(void);\nvoid* SLAED5_(void);\nvoid* SLAED6(void);\nvoid* SLAED6_(void);\nvoid* SLAED7(void);\nvoid* SLAED7_(void);\nvoid* SLAED8(void);\nvoid* SLAED8_(void);\nvoid* SLAED9(void);\nvoid* SLAED9_(void);\nvoid* SLAEDA(void);\nvoid* SLAEDA_(void);\nvoid* SLAEIN(void);\nvoid* SLAEIN_(void);\nvoid* SLAEV2(void);\nvoid* SLAEV2_(void);\nvoid* SLAEXC(void);\nvoid* SLAEXC_(void);\nvoid* SLAG2(void);\nvoid* SLAG2D(void);\nvoid* SLAG2D_(void);\nvoid* SLAG2_(void);\nvoid* SLAGS2(void);\nvoid* SLAGS2_(void);\nvoid* SLAGTF(void);\nvoid* SLAGTF_(void);\nvoid* SLAGTM(void);\nvoid* SLAGTM_(void);\nvoid* SLAGTS(void);\nvoid* SLAGTS_(void);\nvoid* SLAGV2(void);\nvoid* SLAGV2_(void);\nvoid* SLAHQR(void);\nvoid* SLAHQR_(void);\nvoid* SLAHR2(void);\nvoid* SLAHR2_(void);\nvoid* SLAHRD(void);\nvoid* SLAHRD_(void);\nvoid* SLAIC1(void);\nvoid* SLAIC1_(void);\nvoid* SLAISNAN(void);\nvoid* SLAISNAN_(void);\nvoid* SLALN2(void);\nvoid* SLALN2_(void);\nvoid* SLALS0(void);\nvoid* SLALS0_(void);\nvoid* SLALSA(void);\nvoid* SLALSA_(void);\nvoid* SLALSD(void);\nvoid* SLALSD_(void);\nvoid* SLAMC1(void);\nvoid* SLAMC1_(void);\nvoid* SLAMC2(void);\nvoid* SLAMC2_(void);\nvoid* SLAMC3(void);\nvoid* SLAMC3_(void);\nvoid* SLAMC4(void);\nvoid* SLAMC4_(void);\nvoid* SLAMC5(void);\nvoid* SLAMC5_(void);\nvoid* SLAMCH(void);\nvoid* SLAMCH_(void);\nvoid* SLAMRG(void);\nvoid* SLAMRG_(void);\nvoid* SLANEG(void);\nvoid* SLANEG_(void);\nvoid* SLANGB(void);\nvoid* SLANGB_(void);\nvoid* SLANGE(void);\nvoid* SLANGE_(void);\nvoid* SLANGT(void);\nvoid* SLANGT_(void);\nvoid* SLANHS(void);\nvoid* SLANHS_(void);\nvoid* SLANSB(void);\nvoid* SLANSB_(void);\nvoid* SLANSF(void);\nvoid* SLANSF_(void);\nvoid* SLANSP(void);\nvoid* SLANSP_(void);\nvoid* SLANST(void);\nvoid* SLANST_(void);\nvoid* SLANSY(void);\nvoid* SLANSY_(void);\nvoid* SLANTB(void);\nvoid* SLANTB_(void);\nvoid* SLANTP(void);\nvoid* SLANTP_(void);\nvoid* SLANTR(void);\nvoid* SLANTR_(void);\nvoid* SLANV2(void);\nvoid* SLANV2_(void);\nvoid* SLAPLL(void);\nvoid* SLAPLL_(void);\nvoid* SLAPMT(void);\nvoid* SLAPMT_(void);\nvoid* SLAPY2(void);\nvoid* SLAPY2_(void);\nvoid* SLAPY3(void);\nvoid* SLAPY3_(void);\nvoid* SLAQGB(void);\nvoid* SLAQGB_(void);\nvoid* SLAQGE(void);\nvoid* SLAQGE_(void);\nvoid* SLAQP2(void);\nvoid* SLAQP2_(void);\nvoid* SLAQPS(void);\nvoid* SLAQPS_(void);\nvoid* SLAQR0(void);\nvoid* SLAQR0_(void);\nvoid* SLAQR1(void);\nvoid* SLAQR1_(void);\nvoid* SLAQR2(void);\nvoid* SLAQR2_(void);\nvoid* SLAQR3(void);\nvoid* SLAQR3_(void);\nvoid* SLAQR4(void);\nvoid* SLAQR4_(void);\nvoid* SLAQR5(void);\nvoid* SLAQR5_(void);\nvoid* SLAQSB(void);\nvoid* SLAQSB_(void);\nvoid* SLAQSP(void);\nvoid* SLAQSP_(void);\nvoid* SLAQSY(void);\nvoid* SLAQSY_(void);\nvoid* SLAQTR(void);\nvoid* SLAQTR_(void);\nvoid* SLAR1V(void);\nvoid* SLAR1V_(void);\nvoid* SLAR2V(void);\nvoid* SLAR2V_(void);\nvoid* SLARF(void);\nvoid* SLARFB(void);\nvoid* SLARFB_(void);\nvoid* SLARFG(void);\nvoid* SLARFG_(void);\nvoid* SLARFP(void);\nvoid* SLARFP_(void);\nvoid* SLARFT(void);\nvoid* SLARFT_(void);\nvoid* SLARFX(void);\nvoid* SLARFX_(void);\nvoid* SLARF_(void);\nvoid* SLARGV(void);\nvoid* SLARGV_(void);\nvoid* SLARNV(void);\nvoid* SLARNV_(void);\nvoid* SLARRA(void);\nvoid* SLARRA_(void);\nvoid* SLARRB(void);\nvoid* SLARRB_(void);\nvoid* SLARRC(void);\nvoid* SLARRC_(void);\nvoid* SLARRD(void);\nvoid* SLARRD_(void);\nvoid* SLARRE(void);\nvoid* SLARRE_(void);\nvoid* SLARRF(void);\nvoid* SLARRF_(void);\nvoid* SLARRJ(void);\nvoid* SLARRJ_(void);\nvoid* SLARRK(void);\nvoid* SLARRK_(void);\nvoid* SLARRR(void);\nvoid* SLARRR_(void);\nvoid* SLARRV(void);\nvoid* SLARRV_(void);\nvoid* SLARSCL2(void);\nvoid* SLARSCL2_(void);\nvoid* SLARTG(void);\nvoid* SLARTG_(void);\nvoid* SLARTV(void);\nvoid* SLARTV_(void);\nvoid* SLARUV(void);\nvoid* SLARUV_(void);\nvoid* SLARZ(void);\nvoid* SLARZB(void);\nvoid* SLARZB_(void);\nvoid* SLARZT(void);\nvoid* SLARZT_(void);\nvoid* SLARZ_(void);\nvoid* SLAS2(void);\nvoid* SLAS2_(void);\nvoid* SLASCL(void);\nvoid* SLASCL2(void);\nvoid* SLASCL2_(void);\nvoid* SLASCL_(void);\nvoid* SLASD0(void);\nvoid* SLASD0_(void);\nvoid* SLASD1(void);\nvoid* SLASD1_(void);\nvoid* SLASD2(void);\nvoid* SLASD2_(void);\nvoid* SLASD3(void);\nvoid* SLASD3_(void);\nvoid* SLASD4(void);\nvoid* SLASD4_(void);\nvoid* SLASD5(void);\nvoid* SLASD5_(void);\nvoid* SLASD6(void);\nvoid* SLASD6_(void);\nvoid* SLASD7(void);\nvoid* SLASD7_(void);\nvoid* SLASD8(void);\nvoid* SLASD8_(void);\nvoid* SLASD9(void);\nvoid* SLASD9_(void);\nvoid* SLASDA(void);\nvoid* SLASDA_(void);\nvoid* SLASDQ(void);\nvoid* SLASDQ_(void);\nvoid* SLASDT(void);\nvoid* SLASDT_(void);\nvoid* SLASET(void);\nvoid* SLASET_(void);\nvoid* SLASQ1(void);\nvoid* SLASQ1_(void);\nvoid* SLASQ2(void);\nvoid* SLASQ2_(void);\nvoid* SLASQ3(void);\nvoid* SLASQ3_(void);\nvoid* SLASQ4(void);\nvoid* SLASQ4_(void);\nvoid* SLASQ5(void);\nvoid* SLASQ5_(void);\nvoid* SLASQ6(void);\nvoid* SLASQ6_(void);\nvoid* SLASR(void);\nvoid* SLASRT(void);\nvoid* SLASRT_(void);\nvoid* SLASR_(void);\nvoid* SLASSQ(void);\nvoid* SLASSQ_(void);\nvoid* SLASV2(void);\nvoid* SLASV2_(void);\nvoid* SLASWP(void);\nvoid* SLASWP_(void);\nvoid* SLASY2(void);\nvoid* SLASY2_(void);\nvoid* SLASYF(void);\nvoid* SLASYF_(void);\nvoid* SLATBS(void);\nvoid* SLATBS_(void);\nvoid* SLATDF(void);\nvoid* SLATDF_(void);\nvoid* SLATPS(void);\nvoid* SLATPS_(void);\nvoid* SLATRD(void);\nvoid* SLATRD_(void);\nvoid* SLATRS(void);\nvoid* SLATRS_(void);\nvoid* SLATRZ(void);\nvoid* SLATRZ_(void);\nvoid* SLATZM(void);\nvoid* SLATZM_(void);\nvoid* SLAUU2(void);\nvoid* SLAUU2_(void);\nvoid* SLAUUM(void);\nvoid* SLAUUM_(void);\nvoid* SMAXLOC(void);\nvoid* SMAXLOC_(void);\nvoid* SOPGTR(void);\nvoid* SOPGTR_(void);\nvoid* SOPMTR(void);\nvoid* SOPMTR_(void);\nvoid* SORG2L(void);\nvoid* SORG2L_(void);\nvoid* SORG2R(void);\nvoid* SORG2R_(void);\nvoid* SORGBR(void);\nvoid* SORGBR_(void);\nvoid* SORGHR(void);\nvoid* SORGHR_(void);\nvoid* SORGL2(void);\nvoid* SORGL2_(void);\nvoid* SORGLQ(void);\nvoid* SORGLQ_(void);\nvoid* SORGQL(void);\nvoid* SORGQL_(void);\nvoid* SORGQR(void);\nvoid* SORGQR_(void);\nvoid* SORGR2(void);\nvoid* SORGR2_(void);\nvoid* SORGRQ(void);\nvoid* SORGRQ_(void);\nvoid* SORGTR(void);\nvoid* SORGTR_(void);\nvoid* SORM2L(void);\nvoid* SORM2L_(void);\nvoid* SORM2R(void);\nvoid* SORM2R_(void);\nvoid* SORMBR(void);\nvoid* SORMBR_(void);\nvoid* SORMHR(void);\nvoid* SORMHR_(void);\nvoid* SORML2(void);\nvoid* SORML2_(void);\nvoid* SORMLQ(void);\nvoid* SORMLQ_(void);\nvoid* SORMQL(void);\nvoid* SORMQL_(void);\nvoid* SORMQR(void);\nvoid* SORMQR_(void);\nvoid* SORMR2(void);\nvoid* SORMR2_(void);\nvoid* SORMR3(void);\nvoid* SORMR3_(void);\nvoid* SORMRQ(void);\nvoid* SORMRQ_(void);\nvoid* SORMRZ(void);\nvoid* SORMRZ_(void);\nvoid* SORMTR(void);\nvoid* SORMTR_(void);\nvoid* SPBCON(void);\nvoid* SPBCON_(void);\nvoid* SPBEQU(void);\nvoid* SPBEQU_(void);\nvoid* SPBRFS(void);\nvoid* SPBRFS_(void);\nvoid* SPBSTF(void);\nvoid* SPBSTF_(void);\nvoid* SPBSV(void);\nvoid* SPBSVX(void);\nvoid* SPBSVX_(void);\nvoid* SPBSV_(void);\nvoid* SPBTF2(void);\nvoid* SPBTF2_(void);\nvoid* SPBTRF(void);\nvoid* SPBTRF_(void);\nvoid* SPBTRS(void);\nvoid* SPBTRS_(void);\nvoid* SPFTRF(void);\nvoid* SPFTRF_(void);\nvoid* SPFTRI(void);\nvoid* SPFTRI_(void);\nvoid* SPFTRS(void);\nvoid* SPFTRS_(void);\nvoid* SPOCON(void);\nvoid* SPOCON_(void);\nvoid* SPOEQU(void);\nvoid* SPOEQUB(void);\nvoid* SPOEQUB_(void);\nvoid* SPOEQU_(void);\nvoid* SPORFS(void);\nvoid* SPORFS_(void);\nvoid* SPOSV(void);\nvoid* SPOSVX(void);\nvoid* SPOSVX_(void);\nvoid* SPOSV_(void);\nvoid* SPOTF2(void);\nvoid* SPOTF2_(void);\nvoid* SPOTRF(void);\nvoid* SPOTRF_(void);\nvoid* SPOTRI(void);\nvoid* SPOTRI_(void);\nvoid* SPOTRS(void);\nvoid* SPOTRS_(void);\nvoid* SPPCON(void);\nvoid* SPPCON_(void);\nvoid* SPPEQU(void);\nvoid* SPPEQU_(void);\nvoid* SPPRFS(void);\nvoid* SPPRFS_(void);\nvoid* SPPSV(void);\nvoid* SPPSVX(void);\nvoid* SPPSVX_(void);\nvoid* SPPSV_(void);\nvoid* SPPTRF(void);\nvoid* SPPTRF_(void);\nvoid* SPPTRI(void);\nvoid* SPPTRI_(void);\nvoid* SPPTRS(void);\nvoid* SPPTRS_(void);\nvoid* SPSTF2(void);\nvoid* SPSTF2_(void);\nvoid* SPSTRF(void);\nvoid* SPSTRF_(void);\nvoid* SPTCON(void);\nvoid* SPTCON_(void);\nvoid* SPTEQR(void);\nvoid* SPTEQR_(void);\nvoid* SPTRFS(void);\nvoid* SPTRFS_(void);\nvoid* SPTSV(void);\nvoid* SPTSVX(void);\nvoid* SPTSVX_(void);\nvoid* SPTSV_(void);\nvoid* SPTTRF(void);\nvoid* SPTTRF_(void);\nvoid* SPTTRS(void);\nvoid* SPTTRS_(void);\nvoid* SPTTS2(void);\nvoid* SPTTS2_(void);\nvoid* SRSCL(void);\nvoid* SRSCL_(void);\nvoid* SSBEV(void);\nvoid* SSBEVD(void);\nvoid* SSBEVD_(void);\nvoid* SSBEVX(void);\nvoid* SSBEVX_(void);\nvoid* SSBEV_(void);\nvoid* SSBGST(void);\nvoid* SSBGST_(void);\nvoid* SSBGV(void);\nvoid* SSBGVD(void);\nvoid* SSBGVD_(void);\nvoid* SSBGVX(void);\nvoid* SSBGVX_(void);\nvoid* SSBGV_(void);\nvoid* SSBTRD(void);\nvoid* SSBTRD_(void);\nvoid* SSFRK(void);\nvoid* SSFRK_(void);\nvoid* SSPCON(void);\nvoid* SSPCON_(void);\nvoid* SSPEV(void);\nvoid* SSPEVD(void);\nvoid* SSPEVD_(void);\nvoid* SSPEVX(void);\nvoid* SSPEVX_(void);\nvoid* SSPEV_(void);\nvoid* SSPGST(void);\nvoid* SSPGST_(void);\nvoid* SSPGV(void);\nvoid* SSPGVD(void);\nvoid* SSPGVD_(void);\nvoid* SSPGVX(void);\nvoid* SSPGVX_(void);\nvoid* SSPGV_(void);\nvoid* SSPRFS(void);\nvoid* SSPRFS_(void);\nvoid* SSPSV(void);\nvoid* SSPSVX(void);\nvoid* SSPSVX_(void);\nvoid* SSPSV_(void);\nvoid* SSPTRD(void);\nvoid* SSPTRD_(void);\nvoid* SSPTRF(void);\nvoid* SSPTRF_(void);\nvoid* SSPTRI(void);\nvoid* SSPTRI_(void);\nvoid* SSPTRS(void);\nvoid* SSPTRS_(void);\nvoid* SSTEBZ(void);\nvoid* SSTEBZ_(void);\nvoid* SSTEDC(void);\nvoid* SSTEDC_(void);\nvoid* SSTEGR(void);\nvoid* SSTEGR_(void);\nvoid* SSTEIN(void);\nvoid* SSTEIN_(void);\nvoid* SSTEMR(void);\nvoid* SSTEMR_(void);\nvoid* SSTEQR(void);\nvoid* SSTEQR_(void);\nvoid* SSTERF(void);\nvoid* SSTERF_(void);\nvoid* SSTEV(void);\nvoid* SSTEVD(void);\nvoid* SSTEVD_(void);\nvoid* SSTEVR(void);\nvoid* SSTEVR_(void);\nvoid* SSTEVX(void);\nvoid* SSTEVX_(void);\nvoid* SSTEV_(void);\nvoid* SSYCON(void);\nvoid* SSYCON_(void);\nvoid* SSYEQUB(void);\nvoid* SSYEQUB_(void);\nvoid* SSYEV(void);\nvoid* SSYEVD(void);\nvoid* SSYEVD_(void);\nvoid* SSYEVR(void);\nvoid* SSYEVR_(void);\nvoid* SSYEVX(void);\nvoid* SSYEVX_(void);\nvoid* SSYEV_(void);\nvoid* SSYGS2(void);\nvoid* SSYGS2_(void);\nvoid* SSYGST(void);\nvoid* SSYGST_(void);\nvoid* SSYGV(void);\nvoid* SSYGVD(void);\nvoid* SSYGVD_(void);\nvoid* SSYGVX(void);\nvoid* SSYGVX_(void);\nvoid* SSYGV_(void);\nvoid* SSYRFS(void);\nvoid* SSYRFS_(void);\nvoid* SSYSV(void);\nvoid* SSYSVX(void);\nvoid* SSYSVX_(void);\nvoid* SSYSV_(void);\nvoid* SSYTD2(void);\nvoid* SSYTD2_(void);\nvoid* SSYTF2(void);\nvoid* SSYTF2_(void);\nvoid* SSYTRD(void);\nvoid* SSYTRD_(void);\nvoid* SSYTRF(void);\nvoid* SSYTRF_(void);\nvoid* SSYTRI(void);\nvoid* SSYTRI_(void);\nvoid* SSYTRS(void);\nvoid* SSYTRS_(void);\nvoid* STBCON(void);\nvoid* STBCON_(void);\nvoid* STBRFS(void);\nvoid* STBRFS_(void);\nvoid* STBTRS(void);\nvoid* STBTRS_(void);\nvoid* STFSM(void);\nvoid* STFSM_(void);\nvoid* STFTRI(void);\nvoid* STFTRI_(void);\nvoid* STFTTP(void);\nvoid* STFTTP_(void);\nvoid* STFTTR(void);\nvoid* STFTTR_(void);\nvoid* STGEVC(void);\nvoid* STGEVC_(void);\nvoid* STGEX2(void);\nvoid* STGEX2_(void);\nvoid* STGEXC(void);\nvoid* STGEXC_(void);\nvoid* STGSEN(void);\nvoid* STGSEN_(void);\nvoid* STGSJA(void);\nvoid* STGSJA_(void);\nvoid* STGSNA(void);\nvoid* STGSNA_(void);\nvoid* STGSY2(void);\nvoid* STGSY2_(void);\nvoid* STGSYL(void);\nvoid* STGSYL_(void);\nvoid* STPCON(void);\nvoid* STPCON_(void);\nvoid* STPRFS(void);\nvoid* STPRFS_(void);\nvoid* STPTRI(void);\nvoid* STPTRI_(void);\nvoid* STPTRS(void);\nvoid* STPTRS_(void);\nvoid* STPTTF(void);\nvoid* STPTTF_(void);\nvoid* STPTTR(void);\nvoid* STPTTR_(void);\nvoid* STRCON(void);\nvoid* STRCON_(void);\nvoid* STREVC(void);\nvoid* STREVC_(void);\nvoid* STREXC(void);\nvoid* STREXC_(void);\nvoid* STRRFS(void);\nvoid* STRRFS_(void);\nvoid* STRSEN(void);\nvoid* STRSEN_(void);\nvoid* STRSNA(void);\nvoid* STRSNA_(void);\nvoid* STRSYL(void);\nvoid* STRSYL_(void);\nvoid* STRTI2(void);\nvoid* STRTI2_(void);\nvoid* STRTRI(void);\nvoid* STRTRI_(void);\nvoid* STRTRS(void);\nvoid* STRTRS_(void);\nvoid* STRTTF(void);\nvoid* STRTTF_(void);\nvoid* STRTTP(void);\nvoid* STRTTP_(void);\nvoid* STZRQF(void);\nvoid* STZRQF_(void);\nvoid* STZRZF(void);\nvoid* STZRZF_(void);\nvoid* ZBDSQR(void);\nvoid* ZBDSQR_(void);\nvoid* ZCGESV(void);\nvoid* ZCGESV_(void);\nvoid* ZCPOSV(void);\nvoid* ZCPOSV_(void);\nvoid* ZDRSCL(void);\nvoid* ZDRSCL_(void);\nvoid* ZGBBRD(void);\nvoid* ZGBBRD_(void);\nvoid* ZGBCON(void);\nvoid* ZGBCON_(void);\nvoid* ZGBEQU(void);\nvoid* ZGBEQUB(void);\nvoid* ZGBEQUB_(void);\nvoid* ZGBEQU_(void);\nvoid* ZGBRFS(void);\nvoid* ZGBRFS_(void);\nvoid* ZGBSV(void);\nvoid* ZGBSVX(void);\nvoid* ZGBSVX_(void);\nvoid* ZGBSV_(void);\nvoid* ZGBTF2(void);\nvoid* ZGBTF2_(void);\nvoid* ZGBTRF(void);\nvoid* ZGBTRF_(void);\nvoid* ZGBTRS(void);\nvoid* ZGBTRS_(void);\nvoid* ZGEBAK(void);\nvoid* ZGEBAK_(void);\nvoid* ZGEBAL(void);\nvoid* ZGEBAL_(void);\nvoid* ZGEBD2(void);\nvoid* ZGEBD2_(void);\nvoid* ZGEBRD(void);\nvoid* ZGEBRD_(void);\nvoid* ZGECON(void);\nvoid* ZGECON_(void);\nvoid* ZGEEQU(void);\nvoid* ZGEEQUB(void);\nvoid* ZGEEQUB_(void);\nvoid* ZGEEQU_(void);\nvoid* ZGEES(void);\nvoid* ZGEESX(void);\nvoid* ZGEESX_(void);\nvoid* ZGEES_(void);\nvoid* ZGEEV(void);\nvoid* ZGEEVX(void);\nvoid* ZGEEVX_(void);\nvoid* ZGEEV_(void);\nvoid* ZGEGS(void);\nvoid* ZGEGS_(void);\nvoid* ZGEGV(void);\nvoid* ZGEGV_(void);\nvoid* ZGEHD2(void);\nvoid* ZGEHD2_(void);\nvoid* ZGEHRD(void);\nvoid* ZGEHRD_(void);\nvoid* ZGELQ2(void);\nvoid* ZGELQ2_(void);\nvoid* ZGELQF(void);\nvoid* ZGELQF_(void);\nvoid* ZGELS(void);\nvoid* ZGELSD(void);\nvoid* ZGELSD_(void);\nvoid* ZGELSS(void);\nvoid* ZGELSS_(void);\nvoid* ZGELSX(void);\nvoid* ZGELSX_(void);\nvoid* ZGELSY(void);\nvoid* ZGELSY_(void);\nvoid* ZGELS_(void);\nvoid* ZGEQL2(void);\nvoid* ZGEQL2_(void);\nvoid* ZGEQLF(void);\nvoid* ZGEQLF_(void);\nvoid* ZGEQP3(void);\nvoid* ZGEQP3_(void);\nvoid* ZGEQPF(void);\nvoid* ZGEQPF_(void);\nvoid* ZGEQR2(void);\nvoid* ZGEQR2_(void);\nvoid* ZGEQRF(void);\nvoid* ZGEQRF_(void);\nvoid* ZGERFS(void);\nvoid* ZGERFS_(void);\nvoid* ZGERQ2(void);\nvoid* ZGERQ2_(void);\nvoid* ZGERQF(void);\nvoid* ZGERQF_(void);\nvoid* ZGESC2(void);\nvoid* ZGESC2_(void);\nvoid* ZGESDD(void);\nvoid* ZGESDD_(void);\nvoid* ZGESV(void);\nvoid* ZGESVD(void);\nvoid* ZGESVD_(void);\nvoid* ZGESVX(void);\nvoid* ZGESVX_(void);\nvoid* ZGESV_(void);\nvoid* ZGETC2(void);\nvoid* ZGETC2_(void);\nvoid* ZGETF2(void);\nvoid* ZGETF2_(void);\nvoid* ZGETRF(void);\nvoid* ZGETRF_(void);\nvoid* ZGETRI(void);\nvoid* ZGETRI_(void);\nvoid* ZGETRS(void);\nvoid* ZGETRS_(void);\nvoid* ZGGBAK(void);\nvoid* ZGGBAK_(void);\nvoid* ZGGBAL(void);\nvoid* ZGGBAL_(void);\nvoid* ZGGES(void);\nvoid* ZGGESX(void);\nvoid* ZGGESX_(void);\nvoid* ZGGES_(void);\nvoid* ZGGEV(void);\nvoid* ZGGEVX(void);\nvoid* ZGGEVX_(void);\nvoid* ZGGEV_(void);\nvoid* ZGGGLM(void);\nvoid* ZGGGLM_(void);\nvoid* ZGGHRD(void);\nvoid* ZGGHRD_(void);\nvoid* ZGGLSE(void);\nvoid* ZGGLSE_(void);\nvoid* ZGGQRF(void);\nvoid* ZGGQRF_(void);\nvoid* ZGGRQF(void);\nvoid* ZGGRQF_(void);\nvoid* ZGGSVD(void);\nvoid* ZGGSVD_(void);\nvoid* ZGGSVP(void);\nvoid* ZGGSVP_(void);\nvoid* ZGTCON(void);\nvoid* ZGTCON_(void);\nvoid* ZGTRFS(void);\nvoid* ZGTRFS_(void);\nvoid* ZGTSV(void);\nvoid* ZGTSVX(void);\nvoid* ZGTSVX_(void);\nvoid* ZGTSV_(void);\nvoid* ZGTTRF(void);\nvoid* ZGTTRF_(void);\nvoid* ZGTTRS(void);\nvoid* ZGTTRS_(void);\nvoid* ZGTTS2(void);\nvoid* ZGTTS2_(void);\nvoid* ZHBEV(void);\nvoid* ZHBEVD(void);\nvoid* ZHBEVD_(void);\nvoid* ZHBEVX(void);\nvoid* ZHBEVX_(void);\nvoid* ZHBEV_(void);\nvoid* ZHBGST(void);\nvoid* ZHBGST_(void);\nvoid* ZHBGV(void);\nvoid* ZHBGVD(void);\nvoid* ZHBGVD_(void);\nvoid* ZHBGVX(void);\nvoid* ZHBGVX_(void);\nvoid* ZHBGV_(void);\nvoid* ZHBTRD(void);\nvoid* ZHBTRD_(void);\nvoid* ZHECON(void);\nvoid* ZHECON_(void);\nvoid* ZHEEQUB(void);\nvoid* ZHEEQUB_(void);\nvoid* ZHEEV(void);\nvoid* ZHEEVD(void);\nvoid* ZHEEVD_(void);\nvoid* ZHEEVR(void);\nvoid* ZHEEVR_(void);\nvoid* ZHEEVX(void);\nvoid* ZHEEVX_(void);\nvoid* ZHEEV_(void);\nvoid* ZHEGS2(void);\nvoid* ZHEGS2_(void);\nvoid* ZHEGST(void);\nvoid* ZHEGST_(void);\nvoid* ZHEGV(void);\nvoid* ZHEGVD(void);\nvoid* ZHEGVD_(void);\nvoid* ZHEGVX(void);\nvoid* ZHEGVX_(void);\nvoid* ZHEGV_(void);\nvoid* ZHERFS(void);\nvoid* ZHERFS_(void);\nvoid* ZHESV(void);\nvoid* ZHESVX(void);\nvoid* ZHESVX_(void);\nvoid* ZHESV_(void);\nvoid* ZHETD2(void);\nvoid* ZHETD2_(void);\nvoid* ZHETF2(void);\nvoid* ZHETF2_(void);\nvoid* ZHETRD(void);\nvoid* ZHETRD_(void);\nvoid* ZHETRF(void);\nvoid* ZHETRF_(void);\nvoid* ZHETRI(void);\nvoid* ZHETRI_(void);\nvoid* ZHETRS(void);\nvoid* ZHETRS_(void);\nvoid* ZHFRK(void);\nvoid* ZHFRK_(void);\nvoid* ZHGEQZ(void);\nvoid* ZHGEQZ_(void);\nvoid* ZHPCON(void);\nvoid* ZHPCON_(void);\nvoid* ZHPEV(void);\nvoid* ZHPEVD(void);\nvoid* ZHPEVD_(void);\nvoid* ZHPEVX(void);\nvoid* ZHPEVX_(void);\nvoid* ZHPEV_(void);\nvoid* ZHPGST(void);\nvoid* ZHPGST_(void);\nvoid* ZHPGV(void);\nvoid* ZHPGVD(void);\nvoid* ZHPGVD_(void);\nvoid* ZHPGVX(void);\nvoid* ZHPGVX_(void);\nvoid* ZHPGV_(void);\nvoid* ZHPRFS(void);\nvoid* ZHPRFS_(void);\nvoid* ZHPSV(void);\nvoid* ZHPSVX(void);\nvoid* ZHPSVX_(void);\nvoid* ZHPSV_(void);\nvoid* ZHPTRD(void);\nvoid* ZHPTRD_(void);\nvoid* ZHPTRF(void);\nvoid* ZHPTRF_(void);\nvoid* ZHPTRI(void);\nvoid* ZHPTRI_(void);\nvoid* ZHPTRS(void);\nvoid* ZHPTRS_(void);\nvoid* ZHSEIN(void);\nvoid* ZHSEIN_(void);\nvoid* ZHSEQR(void);\nvoid* ZHSEQR_(void);\nvoid* ZLABRD(void);\nvoid* ZLABRD_(void);\nvoid* ZLACGV(void);\nvoid* ZLACGV_(void);\nvoid* ZLACN2(void);\nvoid* ZLACN2_(void);\nvoid* ZLACON(void);\nvoid* ZLACON_(void);\nvoid* ZLACP2(void);\nvoid* ZLACP2_(void);\nvoid* ZLACPY(void);\nvoid* ZLACPY_(void);\nvoid* ZLACRM(void);\nvoid* ZLACRM_(void);\nvoid* ZLACRT(void);\nvoid* ZLACRT_(void);\nvoid* ZLADIV(void);\nvoid* ZLADIV_(void);\nvoid* ZLAED0(void);\nvoid* ZLAED0_(void);\nvoid* ZLAED7(void);\nvoid* ZLAED7_(void);\nvoid* ZLAED8(void);\nvoid* ZLAED8_(void);\nvoid* ZLAEIN(void);\nvoid* ZLAEIN_(void);\nvoid* ZLAESY(void);\nvoid* ZLAESY_(void);\nvoid* ZLAEV2(void);\nvoid* ZLAEV2_(void);\nvoid* ZLAG2C(void);\nvoid* ZLAG2C_(void);\nvoid* ZLAGS2(void);\nvoid* ZLAGS2_(void);\nvoid* ZLAGTM(void);\nvoid* ZLAGTM_(void);\nvoid* ZLAHEF(void);\nvoid* ZLAHEF_(void);\nvoid* ZLAHQR(void);\nvoid* ZLAHQR_(void);\nvoid* ZLAHR2(void);\nvoid* ZLAHR2_(void);\nvoid* ZLAHRD(void);\nvoid* ZLAHRD_(void);\nvoid* ZLAIC1(void);\nvoid* ZLAIC1_(void);\nvoid* ZLALS0(void);\nvoid* ZLALS0_(void);\nvoid* ZLALSA(void);\nvoid* ZLALSA_(void);\nvoid* ZLALSD(void);\nvoid* ZLALSD_(void);\nvoid* ZLANGB(void);\nvoid* ZLANGB_(void);\nvoid* ZLANGE(void);\nvoid* ZLANGE_(void);\nvoid* ZLANGT(void);\nvoid* ZLANGT_(void);\nvoid* ZLANHB(void);\nvoid* ZLANHB_(void);\nvoid* ZLANHE(void);\nvoid* ZLANHE_(void);\nvoid* ZLANHF(void);\nvoid* ZLANHF_(void);\nvoid* ZLANHP(void);\nvoid* ZLANHP_(void);\nvoid* ZLANHS(void);\nvoid* ZLANHS_(void);\nvoid* ZLANHT(void);\nvoid* ZLANHT_(void);\nvoid* ZLANSB(void);\nvoid* ZLANSB_(void);\nvoid* ZLANSP(void);\nvoid* ZLANSP_(void);\nvoid* ZLANSY(void);\nvoid* ZLANSY_(void);\nvoid* ZLANTB(void);\nvoid* ZLANTB_(void);\nvoid* ZLANTP(void);\nvoid* ZLANTP_(void);\nvoid* ZLANTR(void);\nvoid* ZLANTR_(void);\nvoid* ZLAPLL(void);\nvoid* ZLAPLL_(void);\nvoid* ZLAPMT(void);\nvoid* ZLAPMT_(void);\nvoid* ZLAQGB(void);\nvoid* ZLAQGB_(void);\nvoid* ZLAQGE(void);\nvoid* ZLAQGE_(void);\nvoid* ZLAQHB(void);\nvoid* ZLAQHB_(void);\nvoid* ZLAQHE(void);\nvoid* ZLAQHE_(void);\nvoid* ZLAQHP(void);\nvoid* ZLAQHP_(void);\nvoid* ZLAQP2(void);\nvoid* ZLAQP2_(void);\nvoid* ZLAQPS(void);\nvoid* ZLAQPS_(void);\nvoid* ZLAQR0(void);\nvoid* ZLAQR0_(void);\nvoid* ZLAQR1(void);\nvoid* ZLAQR1_(void);\nvoid* ZLAQR2(void);\nvoid* ZLAQR2_(void);\nvoid* ZLAQR3(void);\nvoid* ZLAQR3_(void);\nvoid* ZLAQR4(void);\nvoid* ZLAQR4_(void);\nvoid* ZLAQR5(void);\nvoid* ZLAQR5_(void);\nvoid* ZLAQSB(void);\nvoid* ZLAQSB_(void);\nvoid* ZLAQSP(void);\nvoid* ZLAQSP_(void);\nvoid* ZLAQSY(void);\nvoid* ZLAQSY_(void);\nvoid* ZLAR1V(void);\nvoid* ZLAR1V_(void);\nvoid* ZLAR2V(void);\nvoid* ZLAR2V_(void);\nvoid* ZLARCM(void);\nvoid* ZLARCM_(void);\nvoid* ZLARF(void);\nvoid* ZLARFB(void);\nvoid* ZLARFB_(void);\nvoid* ZLARFG(void);\nvoid* ZLARFG_(void);\nvoid* ZLARFP(void);\nvoid* ZLARFP_(void);\nvoid* ZLARFT(void);\nvoid* ZLARFT_(void);\nvoid* ZLARFX(void);\nvoid* ZLARFX_(void);\nvoid* ZLARF_(void);\nvoid* ZLARGV(void);\nvoid* ZLARGV_(void);\nvoid* ZLARNV(void);\nvoid* ZLARNV_(void);\nvoid* ZLARRV(void);\nvoid* ZLARRV_(void);\nvoid* ZLARSCL2(void);\nvoid* ZLARSCL2_(void);\nvoid* ZLARTG(void);\nvoid* ZLARTG_(void);\nvoid* ZLARTV(void);\nvoid* ZLARTV_(void);\nvoid* ZLARZ(void);\nvoid* ZLARZB(void);\nvoid* ZLARZB_(void);\nvoid* ZLARZT(void);\nvoid* ZLARZT_(void);\nvoid* ZLARZ_(void);\nvoid* ZLASCL(void);\nvoid* ZLASCL2(void);\nvoid* ZLASCL2_(void);\nvoid* ZLASCL_(void);\nvoid* ZLASET(void);\nvoid* ZLASET_(void);\nvoid* ZLASR(void);\nvoid* ZLASR_(void);\nvoid* ZLASSQ(void);\nvoid* ZLASSQ_(void);\nvoid* ZLASWP(void);\nvoid* ZLASWP_(void);\nvoid* ZLASYF(void);\nvoid* ZLASYF_(void);\nvoid* ZLAT2C(void);\nvoid* ZLAT2C_(void);\nvoid* ZLATBS(void);\nvoid* ZLATBS_(void);\nvoid* ZLATDF(void);\nvoid* ZLATDF_(void);\nvoid* ZLATPS(void);\nvoid* ZLATPS_(void);\nvoid* ZLATRD(void);\nvoid* ZLATRD_(void);\nvoid* ZLATRS(void);\nvoid* ZLATRS_(void);\nvoid* ZLATRZ(void);\nvoid* ZLATRZ_(void);\nvoid* ZLATZM(void);\nvoid* ZLATZM_(void);\nvoid* ZLAUU2(void);\nvoid* ZLAUU2_(void);\nvoid* ZLAUUM(void);\nvoid* ZLAUUM_(void);\nvoid* ZPBCON(void);\nvoid* ZPBCON_(void);\nvoid* ZPBEQU(void);\nvoid* ZPBEQU_(void);\nvoid* ZPBRFS(void);\nvoid* ZPBRFS_(void);\nvoid* ZPBSTF(void);\nvoid* ZPBSTF_(void);\nvoid* ZPBSV(void);\nvoid* ZPBSVX(void);\nvoid* ZPBSVX_(void);\nvoid* ZPBSV_(void);\nvoid* ZPBTF2(void);\nvoid* ZPBTF2_(void);\nvoid* ZPBTRF(void);\nvoid* ZPBTRF_(void);\nvoid* ZPBTRS(void);\nvoid* ZPBTRS_(void);\nvoid* ZPFTRF(void);\nvoid* ZPFTRF_(void);\nvoid* ZPFTRI(void);\nvoid* ZPFTRI_(void);\nvoid* ZPFTRS(void);\nvoid* ZPFTRS_(void);\nvoid* ZPOCON(void);\nvoid* ZPOCON_(void);\nvoid* ZPOEQU(void);\nvoid* ZPOEQUB(void);\nvoid* ZPOEQUB_(void);\nvoid* ZPOEQU_(void);\nvoid* ZPORFS(void);\nvoid* ZPORFS_(void);\nvoid* ZPOSV(void);\nvoid* ZPOSVX(void);\nvoid* ZPOSVX_(void);\nvoid* ZPOSV_(void);\nvoid* ZPOTF2(void);\nvoid* ZPOTF2_(void);\nvoid* ZPOTRF(void);\nvoid* ZPOTRF_(void);\nvoid* ZPOTRI(void);\nvoid* ZPOTRI_(void);\nvoid* ZPOTRS(void);\nvoid* ZPOTRS_(void);\nvoid* ZPPCON(void);\nvoid* ZPPCON_(void);\nvoid* ZPPEQU(void);\nvoid* ZPPEQU_(void);\nvoid* ZPPRFS(void);\nvoid* ZPPRFS_(void);\nvoid* ZPPSV(void);\nvoid* ZPPSVX(void);\nvoid* ZPPSVX_(void);\nvoid* ZPPSV_(void);\nvoid* ZPPTRF(void);\nvoid* ZPPTRF_(void);\nvoid* ZPPTRI(void);\nvoid* ZPPTRI_(void);\nvoid* ZPPTRS(void);\nvoid* ZPPTRS_(void);\nvoid* ZPSTF2(void);\nvoid* ZPSTF2_(void);\nvoid* ZPSTRF(void);\nvoid* ZPSTRF_(void);\nvoid* ZPTCON(void);\nvoid* ZPTCON_(void);\nvoid* ZPTEQR(void);\nvoid* ZPTEQR_(void);\nvoid* ZPTRFS(void);\nvoid* ZPTRFS_(void);\nvoid* ZPTSV(void);\nvoid* ZPTSVX(void);\nvoid* ZPTSVX_(void);\nvoid* ZPTSV_(void);\nvoid* ZPTTRF(void);\nvoid* ZPTTRF_(void);\nvoid* ZPTTRS(void);\nvoid* ZPTTRS_(void);\nvoid* ZPTTS2(void);\nvoid* ZPTTS2_(void);\nvoid* ZROT(void);\nvoid* ZROT_(void);\nvoid* ZSPCON(void);\nvoid* ZSPCON_(void);\nvoid* ZSPMV(void);\nvoid* ZSPMV_(void);\nvoid* ZSPR(void);\nvoid* ZSPRFS(void);\nvoid* ZSPRFS_(void);\nvoid* ZSPR_(void);\nvoid* ZSPSV(void);\nvoid* ZSPSVX(void);\nvoid* ZSPSVX_(void);\nvoid* ZSPSV_(void);\nvoid* ZSPTRF(void);\nvoid* ZSPTRF_(void);\nvoid* ZSPTRI(void);\nvoid* ZSPTRI_(void);\nvoid* ZSPTRS(void);\nvoid* ZSPTRS_(void);\nvoid* ZSTEDC(void);\nvoid* ZSTEDC_(void);\nvoid* ZSTEGR(void);\nvoid* ZSTEGR_(void);\nvoid* ZSTEIN(void);\nvoid* ZSTEIN_(void);\nvoid* ZSTEMR(void);\nvoid* ZSTEMR_(void);\nvoid* ZSTEQR(void);\nvoid* ZSTEQR_(void);\nvoid* ZSYCON(void);\nvoid* ZSYCON_(void);\nvoid* ZSYEQUB(void);\nvoid* ZSYEQUB_(void);\nvoid* ZSYMV(void);\nvoid* ZSYMV_(void);\nvoid* ZSYR(void);\nvoid* ZSYRFS(void);\nvoid* ZSYRFS_(void);\nvoid* ZSYR_(void);\nvoid* ZSYSV(void);\nvoid* ZSYSVX(void);\nvoid* ZSYSVX_(void);\nvoid* ZSYSV_(void);\nvoid* ZSYTF2(void);\nvoid* ZSYTF2_(void);\nvoid* ZSYTRF(void);\nvoid* ZSYTRF_(void);\nvoid* ZSYTRI(void);\nvoid* ZSYTRI_(void);\nvoid* ZSYTRS(void);\nvoid* ZSYTRS_(void);\nvoid* ZTBCON(void);\nvoid* ZTBCON_(void);\nvoid* ZTBRFS(void);\nvoid* ZTBRFS_(void);\nvoid* ZTBTRS(void);\nvoid* ZTBTRS_(void);\nvoid* ZTFSM(void);\nvoid* ZTFSM_(void);\nvoid* ZTFTRI(void);\nvoid* ZTFTRI_(void);\nvoid* ZTFTTP(void);\nvoid* ZTFTTP_(void);\nvoid* ZTFTTR(void);\nvoid* ZTFTTR_(void);\nvoid* ZTGEVC(void);\nvoid* ZTGEVC_(void);\nvoid* ZTGEX2(void);\nvoid* ZTGEX2_(void);\nvoid* ZTGEXC(void);\nvoid* ZTGEXC_(void);\nvoid* ZTGSEN(void);\nvoid* ZTGSEN_(void);\nvoid* ZTGSJA(void);\nvoid* ZTGSJA_(void);\nvoid* ZTGSNA(void);\nvoid* ZTGSNA_(void);\nvoid* ZTGSY2(void);\nvoid* ZTGSY2_(void);\nvoid* ZTGSYL(void);\nvoid* ZTGSYL_(void);\nvoid* ZTPCON(void);\nvoid* ZTPCON_(void);\nvoid* ZTPRFS(void);\nvoid* ZTPRFS_(void);\nvoid* ZTPTRI(void);\nvoid* ZTPTRI_(void);\nvoid* ZTPTRS(void);\nvoid* ZTPTRS_(void);\nvoid* ZTPTTF(void);\nvoid* ZTPTTF_(void);\nvoid* ZTPTTR(void);\nvoid* ZTPTTR_(void);\nvoid* ZTRCON(void);\nvoid* ZTRCON_(void);\nvoid* ZTREVC(void);\nvoid* ZTREVC_(void);\nvoid* ZTREXC(void);\nvoid* ZTREXC_(void);\nvoid* ZTRRFS(void);\nvoid* ZTRRFS_(void);\nvoid* ZTRSEN(void);\nvoid* ZTRSEN_(void);\nvoid* ZTRSNA(void);\nvoid* ZTRSNA_(void);\nvoid* ZTRSYL(void);\nvoid* ZTRSYL_(void);\nvoid* ZTRTI2(void);\nvoid* ZTRTI2_(void);\nvoid* ZTRTRI(void);\nvoid* ZTRTRI_(void);\nvoid* ZTRTRS(void);\nvoid* ZTRTRS_(void);\nvoid* ZTRTTF(void);\nvoid* ZTRTTF_(void);\nvoid* ZTRTTP(void);\nvoid* ZTRTTP_(void);\nvoid* ZTZRQF(void);\nvoid* ZTZRQF_(void);\nvoid* ZTZRZF(void);\nvoid* ZTZRZF_(void);\nvoid* ZUNG2L(void);\nvoid* ZUNG2L_(void);\nvoid* ZUNG2R(void);\nvoid* ZUNG2R_(void);\nvoid* ZUNGBR(void);\nvoid* ZUNGBR_(void);\nvoid* ZUNGHR(void);\nvoid* ZUNGHR_(void);\nvoid* ZUNGL2(void);\nvoid* ZUNGL2_(void);\nvoid* ZUNGLQ(void);\nvoid* ZUNGLQ_(void);\nvoid* ZUNGQL(void);\nvoid* ZUNGQL_(void);\nvoid* ZUNGQR(void);\nvoid* ZUNGQR_(void);\nvoid* ZUNGR2(void);\nvoid* ZUNGR2_(void);\nvoid* ZUNGRQ(void);\nvoid* ZUNGRQ_(void);\nvoid* ZUNGTR(void);\nvoid* ZUNGTR_(void);\nvoid* ZUNM2L(void);\nvoid* ZUNM2L_(void);\nvoid* ZUNM2R(void);\nvoid* ZUNM2R_(void);\nvoid* ZUNMBR(void);\nvoid* ZUNMBR_(void);\nvoid* ZUNMHR(void);\nvoid* ZUNMHR_(void);\nvoid* ZUNML2(void);\nvoid* ZUNML2_(void);\nvoid* ZUNMLQ(void);\nvoid* ZUNMLQ_(void);\nvoid* ZUNMQL(void);\nvoid* ZUNMQL_(void);\nvoid* ZUNMQR(void);\nvoid* ZUNMQR_(void);\nvoid* ZUNMR2(void);\nvoid* ZUNMR2_(void);\nvoid* ZUNMR3(void);\nvoid* ZUNMR3_(void);\nvoid* ZUNMRQ(void);\nvoid* ZUNMRQ_(void);\nvoid* ZUNMRZ(void);\nvoid* ZUNMRZ_(void);\nvoid* ZUNMTR(void);\nvoid* ZUNMTR_(void);\nvoid* ZUPGTR(void);\nvoid* ZUPGTR_(void);\nvoid* ZUPMTR(void);\nvoid* ZUPMTR_(void);\nvoid* cbdsqr(void);\nvoid* cbdsqr_(void);\nvoid* cgbbrd(void);\nvoid* cgbbrd_(void);\nvoid* cgbcon(void);\nvoid* cgbcon_(void);\nvoid* cgbequ(void);\nvoid* cgbequ_(void);\nvoid* cgbequb(void);\nvoid* cgbequb_(void);\nvoid* cgbrfs(void);\nvoid* cgbrfs_(void);\nvoid* cgbsv(void);\nvoid* cgbsv_(void);\nvoid* cgbsvx(void);\nvoid* cgbsvx_(void);\nvoid* cgbtf2(void);\nvoid* cgbtf2_(void);\nvoid* cgbtrf(void);\nvoid* cgbtrf_(void);\nvoid* cgbtrs(void);\nvoid* cgbtrs_(void);\nvoid* cgebak(void);\nvoid* cgebak_(void);\nvoid* cgebal(void);\nvoid* cgebal_(void);\nvoid* cgebd2(void);\nvoid* cgebd2_(void);\nvoid* cgebrd(void);\nvoid* cgebrd_(void);\nvoid* cgecon(void);\nvoid* cgecon_(void);\nvoid* cgeequ(void);\nvoid* cgeequ_(void);\nvoid* cgeequb(void);\nvoid* cgeequb_(void);\nvoid* cgees(void);\nvoid* cgees_(void);\nvoid* cgeesx(void);\nvoid* cgeesx_(void);\nvoid* cgeev(void);\nvoid* cgeev_(void);\nvoid* cgeevx(void);\nvoid* cgeevx_(void);\nvoid* cgegs(void);\nvoid* cgegs_(void);\nvoid* cgegv(void);\nvoid* cgegv_(void);\nvoid* cgehd2(void);\nvoid* cgehd2_(void);\nvoid* cgehrd(void);\nvoid* cgehrd_(void);\nvoid* cgelq2(void);\nvoid* cgelq2_(void);\nvoid* cgelqf(void);\nvoid* cgelqf_(void);\nvoid* cgels(void);\nvoid* cgels_(void);\nvoid* cgelsd(void);\nvoid* cgelsd_(void);\nvoid* cgelss(void);\nvoid* cgelss_(void);\nvoid* cgelsx(void);\nvoid* cgelsx_(void);\nvoid* cgelsy(void);\nvoid* cgelsy_(void);\nvoid* cgeql2(void);\nvoid* cgeql2_(void);\nvoid* cgeqlf(void);\nvoid* cgeqlf_(void);\nvoid* cgeqp3(void);\nvoid* cgeqp3_(void);\nvoid* cgeqpf(void);\nvoid* cgeqpf_(void);\nvoid* cgeqr2(void);\nvoid* cgeqr2_(void);\nvoid* cgeqrf(void);\nvoid* cgeqrf_(void);\nvoid* cgerfs(void);\nvoid* cgerfs_(void);\nvoid* cgerq2(void);\nvoid* cgerq2_(void);\nvoid* cgerqf(void);\nvoid* cgerqf_(void);\nvoid* cgesc2(void);\nvoid* cgesc2_(void);\nvoid* cgesdd(void);\nvoid* cgesdd_(void);\nvoid* cgesv(void);\nvoid* cgesv_(void);\nvoid* cgesvd(void);\nvoid* cgesvd_(void);\nvoid* cgesvx(void);\nvoid* cgesvx_(void);\nvoid* cgetc2(void);\nvoid* cgetc2_(void);\nvoid* cgetf2(void);\nvoid* cgetf2_(void);\nvoid* cgetrf(void);\nvoid* cgetrf_(void);\nvoid* cgetri(void);\nvoid* cgetri_(void);\nvoid* cgetrs(void);\nvoid* cgetrs_(void);\nvoid* cggbak(void);\nvoid* cggbak_(void);\nvoid* cggbal(void);\nvoid* cggbal_(void);\nvoid* cgges(void);\nvoid* cgges_(void);\nvoid* cggesx(void);\nvoid* cggesx_(void);\nvoid* cggev(void);\nvoid* cggev_(void);\nvoid* cggevx(void);\nvoid* cggevx_(void);\nvoid* cggglm(void);\nvoid* cggglm_(void);\nvoid* cgghrd(void);\nvoid* cgghrd_(void);\nvoid* cgglse(void);\nvoid* cgglse_(void);\nvoid* cggqrf(void);\nvoid* cggqrf_(void);\nvoid* cggrqf(void);\nvoid* cggrqf_(void);\nvoid* cggsvd(void);\nvoid* cggsvd_(void);\nvoid* cggsvp(void);\nvoid* cggsvp_(void);\nvoid* cgtcon(void);\nvoid* cgtcon_(void);\nvoid* cgtrfs(void);\nvoid* cgtrfs_(void);\nvoid* cgtsv(void);\nvoid* cgtsv_(void);\nvoid* cgtsvx(void);\nvoid* cgtsvx_(void);\nvoid* cgttrf(void);\nvoid* cgttrf_(void);\nvoid* cgttrs(void);\nvoid* cgttrs_(void);\nvoid* cgtts2(void);\nvoid* cgtts2_(void);\nvoid* chbev(void);\nvoid* chbev_(void);\nvoid* chbevd(void);\nvoid* chbevd_(void);\nvoid* chbevx(void);\nvoid* chbevx_(void);\nvoid* chbgst(void);\nvoid* chbgst_(void);\nvoid* chbgv(void);\nvoid* chbgv_(void);\nvoid* chbgvd(void);\nvoid* chbgvd_(void);\nvoid* chbgvx(void);\nvoid* chbgvx_(void);\nvoid* chbtrd(void);\nvoid* chbtrd_(void);\nvoid* checon(void);\nvoid* checon_(void);\nvoid* cheequb(void);\nvoid* cheequb_(void);\nvoid* cheev(void);\nvoid* cheev_(void);\nvoid* cheevd(void);\nvoid* cheevd_(void);\nvoid* cheevr(void);\nvoid* cheevr_(void);\nvoid* cheevx(void);\nvoid* cheevx_(void);\nvoid* chegs2(void);\nvoid* chegs2_(void);\nvoid* chegst(void);\nvoid* chegst_(void);\nvoid* chegv(void);\nvoid* chegv_(void);\nvoid* chegvd(void);\nvoid* chegvd_(void);\nvoid* chegvx(void);\nvoid* chegvx_(void);\nvoid* cherfs(void);\nvoid* cherfs_(void);\nvoid* chesv(void);\nvoid* chesv_(void);\nvoid* chesvx(void);\nvoid* chesvx_(void);\nvoid* chetd2(void);\nvoid* chetd2_(void);\nvoid* chetf2(void);\nvoid* chetf2_(void);\nvoid* chetrd(void);\nvoid* chetrd_(void);\nvoid* chetrf(void);\nvoid* chetrf_(void);\nvoid* chetri(void);\nvoid* chetri_(void);\nvoid* chetrs(void);\nvoid* chetrs_(void);\nvoid* chfrk(void);\nvoid* chfrk_(void);\nvoid* chgeqz(void);\nvoid* chgeqz_(void);\nvoid* chla_transtype__(void);\nvoid* chpcon(void);\nvoid* chpcon_(void);\nvoid* chpev(void);\nvoid* chpev_(void);\nvoid* chpevd(void);\nvoid* chpevd_(void);\nvoid* chpevx(void);\nvoid* chpevx_(void);\nvoid* chpgst(void);\nvoid* chpgst_(void);\nvoid* chpgv(void);\nvoid* chpgv_(void);\nvoid* chpgvd(void);\nvoid* chpgvd_(void);\nvoid* chpgvx(void);\nvoid* chpgvx_(void);\nvoid* chprfs(void);\nvoid* chprfs_(void);\nvoid* chpsv(void);\nvoid* chpsv_(void);\nvoid* chpsvx(void);\nvoid* chpsvx_(void);\nvoid* chptrd(void);\nvoid* chptrd_(void);\nvoid* chptrf(void);\nvoid* chptrf_(void);\nvoid* chptri(void);\nvoid* chptri_(void);\nvoid* chptrs(void);\nvoid* chptrs_(void);\nvoid* chsein(void);\nvoid* chsein_(void);\nvoid* chseqr(void);\nvoid* chseqr_(void);\nvoid* clabrd(void);\nvoid* clabrd_(void);\nvoid* clacgv(void);\nvoid* clacgv_(void);\nvoid* clacn2(void);\nvoid* clacn2_(void);\nvoid* clacon(void);\nvoid* clacon_(void);\nvoid* clacp2(void);\nvoid* clacp2_(void);\nvoid* clacpy(void);\nvoid* clacpy_(void);\nvoid* clacrm(void);\nvoid* clacrm_(void);\nvoid* clacrt(void);\nvoid* clacrt_(void);\nvoid* cladiv(void);\nvoid* cladiv_(void);\nvoid* claed0(void);\nvoid* claed0_(void);\nvoid* claed7(void);\nvoid* claed7_(void);\nvoid* claed8(void);\nvoid* claed8_(void);\nvoid* claein(void);\nvoid* claein_(void);\nvoid* claesy(void);\nvoid* claesy_(void);\nvoid* claev2(void);\nvoid* claev2_(void);\nvoid* clag2z(void);\nvoid* clag2z_(void);\nvoid* clags2(void);\nvoid* clags2_(void);\nvoid* clagtm(void);\nvoid* clagtm_(void);\nvoid* clahef(void);\nvoid* clahef_(void);\nvoid* clahqr(void);\nvoid* clahqr_(void);\nvoid* clahr2(void);\nvoid* clahr2_(void);\nvoid* clahrd(void);\nvoid* clahrd_(void);\nvoid* claic1(void);\nvoid* claic1_(void);\nvoid* clals0(void);\nvoid* clals0_(void);\nvoid* clalsa(void);\nvoid* clalsa_(void);\nvoid* clalsd(void);\nvoid* clalsd_(void);\nvoid* clangb(void);\nvoid* clangb_(void);\nvoid* clange(void);\nvoid* clange_(void);\nvoid* clangt(void);\nvoid* clangt_(void);\nvoid* clanhb(void);\nvoid* clanhb_(void);\nvoid* clanhe(void);\nvoid* clanhe_(void);\nvoid* clanhf(void);\nvoid* clanhf_(void);\nvoid* clanhp(void);\nvoid* clanhp_(void);\nvoid* clanhs(void);\nvoid* clanhs_(void);\nvoid* clanht(void);\nvoid* clanht_(void);\nvoid* clansb(void);\nvoid* clansb_(void);\nvoid* clansp(void);\nvoid* clansp_(void);\nvoid* clansy(void);\nvoid* clansy_(void);\nvoid* clantb(void);\nvoid* clantb_(void);\nvoid* clantp(void);\nvoid* clantp_(void);\nvoid* clantr(void);\nvoid* clantr_(void);\nvoid* clapll(void);\nvoid* clapll_(void);\nvoid* clapmt(void);\nvoid* clapmt_(void);\nvoid* claqgb(void);\nvoid* claqgb_(void);\nvoid* claqge(void);\nvoid* claqge_(void);\nvoid* claqhb(void);\nvoid* claqhb_(void);\nvoid* claqhe(void);\nvoid* claqhe_(void);\nvoid* claqhp(void);\nvoid* claqhp_(void);\nvoid* claqp2(void);\nvoid* claqp2_(void);\nvoid* claqps(void);\nvoid* claqps_(void);\nvoid* claqr0(void);\nvoid* claqr0_(void);\nvoid* claqr1(void);\nvoid* claqr1_(void);\nvoid* claqr2(void);\nvoid* claqr2_(void);\nvoid* claqr3(void);\nvoid* claqr3_(void);\nvoid* claqr4(void);\nvoid* claqr4_(void);\nvoid* claqr5(void);\nvoid* claqr5_(void);\nvoid* claqsb(void);\nvoid* claqsb_(void);\nvoid* claqsp(void);\nvoid* claqsp_(void);\nvoid* claqsy(void);\nvoid* claqsy_(void);\nvoid* clar1v(void);\nvoid* clar1v_(void);\nvoid* clar2v(void);\nvoid* clar2v_(void);\nvoid* clarcm(void);\nvoid* clarcm_(void);\nvoid* clarf(void);\nvoid* clarf_(void);\nvoid* clarfb(void);\nvoid* clarfb_(void);\nvoid* clarfg(void);\nvoid* clarfg_(void);\nvoid* clarfp(void);\nvoid* clarfp_(void);\nvoid* clarft(void);\nvoid* clarft_(void);\nvoid* clarfx(void);\nvoid* clarfx_(void);\nvoid* clargv(void);\nvoid* clargv_(void);\nvoid* clarnv(void);\nvoid* clarnv_(void);\nvoid* clarrv(void);\nvoid* clarrv_(void);\nvoid* clarscl2(void);\nvoid* clarscl2_(void);\nvoid* clartg(void);\nvoid* clartg_(void);\nvoid* clartv(void);\nvoid* clartv_(void);\nvoid* clarz(void);\nvoid* clarz_(void);\nvoid* clarzb(void);\nvoid* clarzb_(void);\nvoid* clarzt(void);\nvoid* clarzt_(void);\nvoid* clascl(void);\nvoid* clascl2(void);\nvoid* clascl2_(void);\nvoid* clascl_(void);\nvoid* claset(void);\nvoid* claset_(void);\nvoid* clasr(void);\nvoid* clasr_(void);\nvoid* classq(void);\nvoid* classq_(void);\nvoid* claswp(void);\nvoid* claswp_(void);\nvoid* clasyf(void);\nvoid* clasyf_(void);\nvoid* clatbs(void);\nvoid* clatbs_(void);\nvoid* clatdf(void);\nvoid* clatdf_(void);\nvoid* clatps(void);\nvoid* clatps_(void);\nvoid* clatrd(void);\nvoid* clatrd_(void);\nvoid* clatrs(void);\nvoid* clatrs_(void);\nvoid* clatrz(void);\nvoid* clatrz_(void);\nvoid* clatzm(void);\nvoid* clatzm_(void);\nvoid* clauu2(void);\nvoid* clauu2_(void);\nvoid* clauum(void);\nvoid* clauum_(void);\nvoid* cpbcon(void);\nvoid* cpbcon_(void);\nvoid* cpbequ(void);\nvoid* cpbequ_(void);\nvoid* cpbrfs(void);\nvoid* cpbrfs_(void);\nvoid* cpbstf(void);\nvoid* cpbstf_(void);\nvoid* cpbsv(void);\nvoid* cpbsv_(void);\nvoid* cpbsvx(void);\nvoid* cpbsvx_(void);\nvoid* cpbtf2(void);\nvoid* cpbtf2_(void);\nvoid* cpbtrf(void);\nvoid* cpbtrf_(void);\nvoid* cpbtrs(void);\nvoid* cpbtrs_(void);\nvoid* cpftrf(void);\nvoid* cpftrf_(void);\nvoid* cpftri(void);\nvoid* cpftri_(void);\nvoid* cpftrs(void);\nvoid* cpftrs_(void);\nvoid* cpocon(void);\nvoid* cpocon_(void);\nvoid* cpoequ(void);\nvoid* cpoequ_(void);\nvoid* cpoequb(void);\nvoid* cpoequb_(void);\nvoid* cporfs(void);\nvoid* cporfs_(void);\nvoid* cposv(void);\nvoid* cposv_(void);\nvoid* cposvx(void);\nvoid* cposvx_(void);\nvoid* cpotf2(void);\nvoid* cpotf2_(void);\nvoid* cpotrf(void);\nvoid* cpotrf_(void);\nvoid* cpotri(void);\nvoid* cpotri_(void);\nvoid* cpotrs(void);\nvoid* cpotrs_(void);\nvoid* cppcon(void);\nvoid* cppcon_(void);\nvoid* cppequ(void);\nvoid* cppequ_(void);\nvoid* cpprfs(void);\nvoid* cpprfs_(void);\nvoid* cppsv(void);\nvoid* cppsv_(void);\nvoid* cppsvx(void);\nvoid* cppsvx_(void);\nvoid* cpptrf(void);\nvoid* cpptrf_(void);\nvoid* cpptri(void);\nvoid* cpptri_(void);\nvoid* cpptrs(void);\nvoid* cpptrs_(void);\nvoid* cpstf2(void);\nvoid* cpstf2_(void);\nvoid* cpstrf(void);\nvoid* cpstrf_(void);\nvoid* cptcon(void);\nvoid* cptcon_(void);\nvoid* cpteqr(void);\nvoid* cpteqr_(void);\nvoid* cptrfs(void);\nvoid* cptrfs_(void);\nvoid* cptsv(void);\nvoid* cptsv_(void);\nvoid* cptsvx(void);\nvoid* cptsvx_(void);\nvoid* cpttrf(void);\nvoid* cpttrf_(void);\nvoid* cpttrs(void);\nvoid* cpttrs_(void);\nvoid* cptts2(void);\nvoid* cptts2_(void);\nvoid* crot(void);\nvoid* crot_(void);\nvoid* cspcon(void);\nvoid* cspcon_(void);\nvoid* cspmv(void);\nvoid* cspmv_(void);\nvoid* cspr(void);\nvoid* cspr_(void);\nvoid* csprfs(void);\nvoid* csprfs_(void);\nvoid* cspsv(void);\nvoid* cspsv_(void);\nvoid* cspsvx(void);\nvoid* cspsvx_(void);\nvoid* csptrf(void);\nvoid* csptrf_(void);\nvoid* csptri(void);\nvoid* csptri_(void);\nvoid* csptrs(void);\nvoid* csptrs_(void);\nvoid* csrscl(void);\nvoid* csrscl_(void);\nvoid* cstedc(void);\nvoid* cstedc_(void);\nvoid* cstegr(void);\nvoid* cstegr_(void);\nvoid* cstein(void);\nvoid* cstein_(void);\nvoid* cstemr(void);\nvoid* cstemr_(void);\nvoid* csteqr(void);\nvoid* csteqr_(void);\nvoid* csycon(void);\nvoid* csycon_(void);\nvoid* csyequb(void);\nvoid* csyequb_(void);\nvoid* csymv(void);\nvoid* csymv_(void);\nvoid* csyr(void);\nvoid* csyr_(void);\nvoid* csyrfs(void);\nvoid* csyrfs_(void);\nvoid* csysv(void);\nvoid* csysv_(void);\nvoid* csysvx(void);\nvoid* csysvx_(void);\nvoid* csytf2(void);\nvoid* csytf2_(void);\nvoid* csytrf(void);\nvoid* csytrf_(void);\nvoid* csytri(void);\nvoid* csytri_(void);\nvoid* csytrs(void);\nvoid* csytrs_(void);\nvoid* ctbcon(void);\nvoid* ctbcon_(void);\nvoid* ctbrfs(void);\nvoid* ctbrfs_(void);\nvoid* ctbtrs(void);\nvoid* ctbtrs_(void);\nvoid* ctfsm(void);\nvoid* ctfsm_(void);\nvoid* ctftri(void);\nvoid* ctftri_(void);\nvoid* ctfttp(void);\nvoid* ctfttp_(void);\nvoid* ctfttr(void);\nvoid* ctfttr_(void);\nvoid* ctgevc(void);\nvoid* ctgevc_(void);\nvoid* ctgex2(void);\nvoid* ctgex2_(void);\nvoid* ctgexc(void);\nvoid* ctgexc_(void);\nvoid* ctgsen(void);\nvoid* ctgsen_(void);\nvoid* ctgsja(void);\nvoid* ctgsja_(void);\nvoid* ctgsna(void);\nvoid* ctgsna_(void);\nvoid* ctgsy2(void);\nvoid* ctgsy2_(void);\nvoid* ctgsyl(void);\nvoid* ctgsyl_(void);\nvoid* ctpcon(void);\nvoid* ctpcon_(void);\nvoid* ctprfs(void);\nvoid* ctprfs_(void);\nvoid* ctptri(void);\nvoid* ctptri_(void);\nvoid* ctptrs(void);\nvoid* ctptrs_(void);\nvoid* ctpttf(void);\nvoid* ctpttf_(void);\nvoid* ctpttr(void);\nvoid* ctpttr_(void);\nvoid* ctrcon(void);\nvoid* ctrcon_(void);\nvoid* ctrevc(void);\nvoid* ctrevc_(void);\nvoid* ctrexc(void);\nvoid* ctrexc_(void);\nvoid* ctrrfs(void);\nvoid* ctrrfs_(void);\nvoid* ctrsen(void);\nvoid* ctrsen_(void);\nvoid* ctrsna(void);\nvoid* ctrsna_(void);\nvoid* ctrsyl(void);\nvoid* ctrsyl_(void);\nvoid* ctrti2(void);\nvoid* ctrti2_(void);\nvoid* ctrtri(void);\nvoid* ctrtri_(void);\nvoid* ctrtrs(void);\nvoid* ctrtrs_(void);\nvoid* ctrttf(void);\nvoid* ctrttf_(void);\nvoid* ctrttp(void);\nvoid* ctrttp_(void);\nvoid* ctzrqf(void);\nvoid* ctzrqf_(void);\nvoid* ctzrzf(void);\nvoid* ctzrzf_(void);\nvoid* cung2l(void);\nvoid* cung2l_(void);\nvoid* cung2r(void);\nvoid* cung2r_(void);\nvoid* cungbr(void);\nvoid* cungbr_(void);\nvoid* cunghr(void);\nvoid* cunghr_(void);\nvoid* cungl2(void);\nvoid* cungl2_(void);\nvoid* cunglq(void);\nvoid* cunglq_(void);\nvoid* cungql(void);\nvoid* cungql_(void);\nvoid* cungqr(void);\nvoid* cungqr_(void);\nvoid* cungr2(void);\nvoid* cungr2_(void);\nvoid* cungrq(void);\nvoid* cungrq_(void);\nvoid* cungtr(void);\nvoid* cungtr_(void);\nvoid* cunm2l(void);\nvoid* cunm2l_(void);\nvoid* cunm2r(void);\nvoid* cunm2r_(void);\nvoid* cunmbr(void);\nvoid* cunmbr_(void);\nvoid* cunmhr(void);\nvoid* cunmhr_(void);\nvoid* cunml2(void);\nvoid* cunml2_(void);\nvoid* cunmlq(void);\nvoid* cunmlq_(void);\nvoid* cunmql(void);\nvoid* cunmql_(void);\nvoid* cunmqr(void);\nvoid* cunmqr_(void);\nvoid* cunmr2(void);\nvoid* cunmr2_(void);\nvoid* cunmr3(void);\nvoid* cunmr3_(void);\nvoid* cunmrq(void);\nvoid* cunmrq_(void);\nvoid* cunmrz(void);\nvoid* cunmrz_(void);\nvoid* cunmtr(void);\nvoid* cunmtr_(void);\nvoid* cupgtr(void);\nvoid* cupgtr_(void);\nvoid* cupmtr(void);\nvoid* cupmtr_(void);\nvoid* dbdsdc(void);\nvoid* dbdsdc_(void);\nvoid* dbdsqr(void);\nvoid* dbdsqr_(void);\nvoid* ddisna(void);\nvoid* ddisna_(void);\nvoid* dgbbrd(void);\nvoid* dgbbrd_(void);\nvoid* dgbcon(void);\nvoid* dgbcon_(void);\nvoid* dgbequ(void);\nvoid* dgbequ_(void);\nvoid* dgbequb(void);\nvoid* dgbequb_(void);\nvoid* dgbrfs(void);\nvoid* dgbrfs_(void);\nvoid* dgbsv(void);\nvoid* dgbsv_(void);\nvoid* dgbsvx(void);\nvoid* dgbsvx_(void);\nvoid* dgbtf2(void);\nvoid* dgbtf2_(void);\nvoid* dgbtrf(void);\nvoid* dgbtrf_(void);\nvoid* dgbtrs(void);\nvoid* dgbtrs_(void);\nvoid* dgebak(void);\nvoid* dgebak_(void);\nvoid* dgebal(void);\nvoid* dgebal_(void);\nvoid* dgebd2(void);\nvoid* dgebd2_(void);\nvoid* dgebrd(void);\nvoid* dgebrd_(void);\nvoid* dgecon(void);\nvoid* dgecon_(void);\nvoid* dgeequ(void);\nvoid* dgeequ_(void);\nvoid* dgeequb(void);\nvoid* dgeequb_(void);\nvoid* dgees(void);\nvoid* dgees_(void);\nvoid* dgeesx(void);\nvoid* dgeesx_(void);\nvoid* dgeev(void);\nvoid* dgeev_(void);\nvoid* dgeevx(void);\nvoid* dgeevx_(void);\nvoid* dgegs(void);\nvoid* dgegs_(void);\nvoid* dgegv(void);\nvoid* dgegv_(void);\nvoid* dgehd2(void);\nvoid* dgehd2_(void);\nvoid* dgehrd(void);\nvoid* dgehrd_(void);\nvoid* dgejsv(void);\nvoid* dgejsv_(void);\nvoid* dgelq2(void);\nvoid* dgelq2_(void);\nvoid* dgelqf(void);\nvoid* dgelqf_(void);\nvoid* dgels(void);\nvoid* dgels_(void);\nvoid* dgelsd(void);\nvoid* dgelsd_(void);\nvoid* dgelss(void);\nvoid* dgelss_(void);\nvoid* dgelsx(void);\nvoid* dgelsx_(void);\nvoid* dgelsy(void);\nvoid* dgelsy_(void);\nvoid* dgeql2(void);\nvoid* dgeql2_(void);\nvoid* dgeqlf(void);\nvoid* dgeqlf_(void);\nvoid* dgeqp3(void);\nvoid* dgeqp3_(void);\nvoid* dgeqpf(void);\nvoid* dgeqpf_(void);\nvoid* dgeqr2(void);\nvoid* dgeqr2_(void);\nvoid* dgeqrf(void);\nvoid* dgeqrf_(void);\nvoid* dgerfs(void);\nvoid* dgerfs_(void);\nvoid* dgerq2(void);\nvoid* dgerq2_(void);\nvoid* dgerqf(void);\nvoid* dgerqf_(void);\nvoid* dgesc2(void);\nvoid* dgesc2_(void);\nvoid* dgesdd(void);\nvoid* dgesdd_(void);\nvoid* dgesv(void);\nvoid* dgesv_(void);\nvoid* dgesvd(void);\nvoid* dgesvd_(void);\nvoid* dgesvj(void);\nvoid* dgesvj_(void);\nvoid* dgesvx(void);\nvoid* dgesvx_(void);\nvoid* dgetc2(void);\nvoid* dgetc2_(void);\nvoid* dgetf2(void);\nvoid* dgetf2_(void);\nvoid* dgetrf(void);\nvoid* dgetrf_(void);\nvoid* dgetri(void);\nvoid* dgetri_(void);\nvoid* dgetrs(void);\nvoid* dgetrs_(void);\nvoid* dggbak(void);\nvoid* dggbak_(void);\nvoid* dggbal(void);\nvoid* dggbal_(void);\nvoid* dgges(void);\nvoid* dgges_(void);\nvoid* dggesx(void);\nvoid* dggesx_(void);\nvoid* dggev(void);\nvoid* dggev_(void);\nvoid* dggevx(void);\nvoid* dggevx_(void);\nvoid* dggglm(void);\nvoid* dggglm_(void);\nvoid* dgghrd(void);\nvoid* dgghrd_(void);\nvoid* dgglse(void);\nvoid* dgglse_(void);\nvoid* dggqrf(void);\nvoid* dggqrf_(void);\nvoid* dggrqf(void);\nvoid* dggrqf_(void);\nvoid* dggsvd(void);\nvoid* dggsvd_(void);\nvoid* dggsvp(void);\nvoid* dggsvp_(void);\nvoid* dgsvj0(void);\nvoid* dgsvj0_(void);\nvoid* dgsvj1(void);\nvoid* dgsvj1_(void);\nvoid* dgtcon(void);\nvoid* dgtcon_(void);\nvoid* dgtrfs(void);\nvoid* dgtrfs_(void);\nvoid* dgtsv(void);\nvoid* dgtsv_(void);\nvoid* dgtsvx(void);\nvoid* dgtsvx_(void);\nvoid* dgttrf(void);\nvoid* dgttrf_(void);\nvoid* dgttrs(void);\nvoid* dgttrs_(void);\nvoid* dgtts2(void);\nvoid* dgtts2_(void);\nvoid* dhgeqz(void);\nvoid* dhgeqz_(void);\nvoid* dhsein(void);\nvoid* dhsein_(void);\nvoid* dhseqr(void);\nvoid* dhseqr_(void);\nvoid* disnan(void);\nvoid* disnan_(void);\nvoid* dlabad(void);\nvoid* dlabad_(void);\nvoid* dlabrd(void);\nvoid* dlabrd_(void);\nvoid* dlacn2(void);\nvoid* dlacn2_(void);\nvoid* dlacon(void);\nvoid* dlacon_(void);\nvoid* dlacpy(void);\nvoid* dlacpy_(void);\nvoid* dladiv(void);\nvoid* dladiv_(void);\nvoid* dlae2(void);\nvoid* dlae2_(void);\nvoid* dlaebz(void);\nvoid* dlaebz_(void);\nvoid* dlaed0(void);\nvoid* dlaed0_(void);\nvoid* dlaed1(void);\nvoid* dlaed1_(void);\nvoid* dlaed2(void);\nvoid* dlaed2_(void);\nvoid* dlaed3(void);\nvoid* dlaed3_(void);\nvoid* dlaed4(void);\nvoid* dlaed4_(void);\nvoid* dlaed5(void);\nvoid* dlaed5_(void);\nvoid* dlaed6(void);\nvoid* dlaed6_(void);\nvoid* dlaed7(void);\nvoid* dlaed7_(void);\nvoid* dlaed8(void);\nvoid* dlaed8_(void);\nvoid* dlaed9(void);\nvoid* dlaed9_(void);\nvoid* dlaeda(void);\nvoid* dlaeda_(void);\nvoid* dlaein(void);\nvoid* dlaein_(void);\nvoid* dlaev2(void);\nvoid* dlaev2_(void);\nvoid* dlaexc(void);\nvoid* dlaexc_(void);\nvoid* dlag2(void);\nvoid* dlag2_(void);\nvoid* dlag2s(void);\nvoid* dlag2s_(void);\nvoid* dlags2(void);\nvoid* dlags2_(void);\nvoid* dlagtf(void);\nvoid* dlagtf_(void);\nvoid* dlagtm(void);\nvoid* dlagtm_(void);\nvoid* dlagts(void);\nvoid* dlagts_(void);\nvoid* dlagv2(void);\nvoid* dlagv2_(void);\nvoid* dlahqr(void);\nvoid* dlahqr_(void);\nvoid* dlahr2(void);\nvoid* dlahr2_(void);\nvoid* dlahrd(void);\nvoid* dlahrd_(void);\nvoid* dlaic1(void);\nvoid* dlaic1_(void);\nvoid* dlaisnan(void);\nvoid* dlaisnan_(void);\nvoid* dlaln2(void);\nvoid* dlaln2_(void);\nvoid* dlals0(void);\nvoid* dlals0_(void);\nvoid* dlalsa(void);\nvoid* dlalsa_(void);\nvoid* dlalsd(void);\nvoid* dlalsd_(void);\nvoid* dlamc1(void);\nvoid* dlamc1_(void);\nvoid* dlamc2(void);\nvoid* dlamc2_(void);\nvoid* dlamc3(void);\nvoid* dlamc3_(void);\nvoid* dlamc4(void);\nvoid* dlamc4_(void);\nvoid* dlamc5(void);\nvoid* dlamc5_(void);\nvoid* dlamch(void);\nvoid* dlamch_(void);\nvoid* dlamrg(void);\nvoid* dlamrg_(void);\nvoid* dlaneg(void);\nvoid* dlaneg_(void);\nvoid* dlangb(void);\nvoid* dlangb_(void);\nvoid* dlange(void);\nvoid* dlange_(void);\nvoid* dlangt(void);\nvoid* dlangt_(void);\nvoid* dlanhs(void);\nvoid* dlanhs_(void);\nvoid* dlansb(void);\nvoid* dlansb_(void);\nvoid* dlansf(void);\nvoid* dlansf_(void);\nvoid* dlansp(void);\nvoid* dlansp_(void);\nvoid* dlanst(void);\nvoid* dlanst_(void);\nvoid* dlansy(void);\nvoid* dlansy_(void);\nvoid* dlantb(void);\nvoid* dlantb_(void);\nvoid* dlantp(void);\nvoid* dlantp_(void);\nvoid* dlantr(void);\nvoid* dlantr_(void);\nvoid* dlanv2(void);\nvoid* dlanv2_(void);\nvoid* dlapll(void);\nvoid* dlapll_(void);\nvoid* dlapmt(void);\nvoid* dlapmt_(void);\nvoid* dlapy2(void);\nvoid* dlapy2_(void);\nvoid* dlapy3(void);\nvoid* dlapy3_(void);\nvoid* dlaqgb(void);\nvoid* dlaqgb_(void);\nvoid* dlaqge(void);\nvoid* dlaqge_(void);\nvoid* dlaqp2(void);\nvoid* dlaqp2_(void);\nvoid* dlaqps(void);\nvoid* dlaqps_(void);\nvoid* dlaqr0(void);\nvoid* dlaqr0_(void);\nvoid* dlaqr1(void);\nvoid* dlaqr1_(void);\nvoid* dlaqr2(void);\nvoid* dlaqr2_(void);\nvoid* dlaqr3(void);\nvoid* dlaqr3_(void);\nvoid* dlaqr4(void);\nvoid* dlaqr4_(void);\nvoid* dlaqr5(void);\nvoid* dlaqr5_(void);\nvoid* dlaqsb(void);\nvoid* dlaqsb_(void);\nvoid* dlaqsp(void);\nvoid* dlaqsp_(void);\nvoid* dlaqsy(void);\nvoid* dlaqsy_(void);\nvoid* dlaqtr(void);\nvoid* dlaqtr_(void);\nvoid* dlar1v(void);\nvoid* dlar1v_(void);\nvoid* dlar2v(void);\nvoid* dlar2v_(void);\nvoid* dlarf(void);\nvoid* dlarf_(void);\nvoid* dlarfb(void);\nvoid* dlarfb_(void);\nvoid* dlarfg(void);\nvoid* dlarfg_(void);\nvoid* dlarfp(void);\nvoid* dlarfp_(void);\nvoid* dlarft(void);\nvoid* dlarft_(void);\nvoid* dlarfx(void);\nvoid* dlarfx_(void);\nvoid* dlargv(void);\nvoid* dlargv_(void);\nvoid* dlarnv(void);\nvoid* dlarnv_(void);\nvoid* dlarra(void);\nvoid* dlarra_(void);\nvoid* dlarrb(void);\nvoid* dlarrb_(void);\nvoid* dlarrc(void);\nvoid* dlarrc_(void);\nvoid* dlarrd(void);\nvoid* dlarrd_(void);\nvoid* dlarre(void);\nvoid* dlarre_(void);\nvoid* dlarrf(void);\nvoid* dlarrf_(void);\nvoid* dlarrj(void);\nvoid* dlarrj_(void);\nvoid* dlarrk(void);\nvoid* dlarrk_(void);\nvoid* dlarrr(void);\nvoid* dlarrr_(void);\nvoid* dlarrv(void);\nvoid* dlarrv_(void);\nvoid* dlarscl2(void);\nvoid* dlarscl2_(void);\nvoid* dlartg(void);\nvoid* dlartg_(void);\nvoid* dlartv(void);\nvoid* dlartv_(void);\nvoid* dlaruv(void);\nvoid* dlaruv_(void);\nvoid* dlarz(void);\nvoid* dlarz_(void);\nvoid* dlarzb(void);\nvoid* dlarzb_(void);\nvoid* dlarzt(void);\nvoid* dlarzt_(void);\nvoid* dlas2(void);\nvoid* dlas2_(void);\nvoid* dlascl(void);\nvoid* dlascl2(void);\nvoid* dlascl2_(void);\nvoid* dlascl_(void);\nvoid* dlasd0(void);\nvoid* dlasd0_(void);\nvoid* dlasd1(void);\nvoid* dlasd1_(void);\nvoid* dlasd2(void);\nvoid* dlasd2_(void);\nvoid* dlasd3(void);\nvoid* dlasd3_(void);\nvoid* dlasd4(void);\nvoid* dlasd4_(void);\nvoid* dlasd5(void);\nvoid* dlasd5_(void);\nvoid* dlasd6(void);\nvoid* dlasd6_(void);\nvoid* dlasd7(void);\nvoid* dlasd7_(void);\nvoid* dlasd8(void);\nvoid* dlasd8_(void);\nvoid* dlasd9(void);\nvoid* dlasd9_(void);\nvoid* dlasda(void);\nvoid* dlasda_(void);\nvoid* dlasdq(void);\nvoid* dlasdq_(void);\nvoid* dlasdt(void);\nvoid* dlasdt_(void);\nvoid* dlaset(void);\nvoid* dlaset_(void);\nvoid* dlasq1(void);\nvoid* dlasq1_(void);\nvoid* dlasq2(void);\nvoid* dlasq2_(void);\nvoid* dlasq3(void);\nvoid* dlasq3_(void);\nvoid* dlasq4(void);\nvoid* dlasq4_(void);\nvoid* dlasq5(void);\nvoid* dlasq5_(void);\nvoid* dlasq6(void);\nvoid* dlasq6_(void);\nvoid* dlasr(void);\nvoid* dlasr_(void);\nvoid* dlasrt(void);\nvoid* dlasrt_(void);\nvoid* dlassq(void);\nvoid* dlassq_(void);\nvoid* dlasv2(void);\nvoid* dlasv2_(void);\nvoid* dlaswp(void);\nvoid* dlaswp_(void);\nvoid* dlasy2(void);\nvoid* dlasy2_(void);\nvoid* dlasyf(void);\nvoid* dlasyf_(void);\nvoid* dlat2s(void);\nvoid* dlat2s_(void);\nvoid* dlatbs(void);\nvoid* dlatbs_(void);\nvoid* dlatdf(void);\nvoid* dlatdf_(void);\nvoid* dlatps(void);\nvoid* dlatps_(void);\nvoid* dlatrd(void);\nvoid* dlatrd_(void);\nvoid* dlatrs(void);\nvoid* dlatrs_(void);\nvoid* dlatrz(void);\nvoid* dlatrz_(void);\nvoid* dlatzm(void);\nvoid* dlatzm_(void);\nvoid* dlauu2(void);\nvoid* dlauu2_(void);\nvoid* dlauum(void);\nvoid* dlauum_(void);\nvoid* dopgtr(void);\nvoid* dopgtr_(void);\nvoid* dopmtr(void);\nvoid* dopmtr_(void);\nvoid* dorg2l(void);\nvoid* dorg2l_(void);\nvoid* dorg2r(void);\nvoid* dorg2r_(void);\nvoid* dorgbr(void);\nvoid* dorgbr_(void);\nvoid* dorghr(void);\nvoid* dorghr_(void);\nvoid* dorgl2(void);\nvoid* dorgl2_(void);\nvoid* dorglq(void);\nvoid* dorglq_(void);\nvoid* dorgql(void);\nvoid* dorgql_(void);\nvoid* dorgqr(void);\nvoid* dorgqr_(void);\nvoid* dorgr2(void);\nvoid* dorgr2_(void);\nvoid* dorgrq(void);\nvoid* dorgrq_(void);\nvoid* dorgtr(void);\nvoid* dorgtr_(void);\nvoid* dorm2l(void);\nvoid* dorm2l_(void);\nvoid* dorm2r(void);\nvoid* dorm2r_(void);\nvoid* dormbr(void);\nvoid* dormbr_(void);\nvoid* dormhr(void);\nvoid* dormhr_(void);\nvoid* dorml2(void);\nvoid* dorml2_(void);\nvoid* dormlq(void);\nvoid* dormlq_(void);\nvoid* dormql(void);\nvoid* dormql_(void);\nvoid* dormqr(void);\nvoid* dormqr_(void);\nvoid* dormr2(void);\nvoid* dormr2_(void);\nvoid* dormr3(void);\nvoid* dormr3_(void);\nvoid* dormrq(void);\nvoid* dormrq_(void);\nvoid* dormrz(void);\nvoid* dormrz_(void);\nvoid* dormtr(void);\nvoid* dormtr_(void);\nvoid* dpbcon(void);\nvoid* dpbcon_(void);\nvoid* dpbequ(void);\nvoid* dpbequ_(void);\nvoid* dpbrfs(void);\nvoid* dpbrfs_(void);\nvoid* dpbstf(void);\nvoid* dpbstf_(void);\nvoid* dpbsv(void);\nvoid* dpbsv_(void);\nvoid* dpbsvx(void);\nvoid* dpbsvx_(void);\nvoid* dpbtf2(void);\nvoid* dpbtf2_(void);\nvoid* dpbtrf(void);\nvoid* dpbtrf_(void);\nvoid* dpbtrs(void);\nvoid* dpbtrs_(void);\nvoid* dpftrf(void);\nvoid* dpftrf_(void);\nvoid* dpftri(void);\nvoid* dpftri_(void);\nvoid* dpftrs(void);\nvoid* dpftrs_(void);\nvoid* dpocon(void);\nvoid* dpocon_(void);\nvoid* dpoequ(void);\nvoid* dpoequ_(void);\nvoid* dpoequb(void);\nvoid* dpoequb_(void);\nvoid* dporfs(void);\nvoid* dporfs_(void);\nvoid* dposv(void);\nvoid* dposv_(void);\nvoid* dposvx(void);\nvoid* dposvx_(void);\nvoid* dpotf2(void);\nvoid* dpotf2_(void);\nvoid* dpotrf(void);\nvoid* dpotrf_(void);\nvoid* dpotri(void);\nvoid* dpotri_(void);\nvoid* dpotrs(void);\nvoid* dpotrs_(void);\nvoid* dppcon(void);\nvoid* dppcon_(void);\nvoid* dppequ(void);\nvoid* dppequ_(void);\nvoid* dpprfs(void);\nvoid* dpprfs_(void);\nvoid* dppsv(void);\nvoid* dppsv_(void);\nvoid* dppsvx(void);\nvoid* dppsvx_(void);\nvoid* dpptrf(void);\nvoid* dpptrf_(void);\nvoid* dpptri(void);\nvoid* dpptri_(void);\nvoid* dpptrs(void);\nvoid* dpptrs_(void);\nvoid* dpstf2(void);\nvoid* dpstf2_(void);\nvoid* dpstrf(void);\nvoid* dpstrf_(void);\nvoid* dptcon(void);\nvoid* dptcon_(void);\nvoid* dpteqr(void);\nvoid* dpteqr_(void);\nvoid* dptrfs(void);\nvoid* dptrfs_(void);\nvoid* dptsv(void);\nvoid* dptsv_(void);\nvoid* dptsvx(void);\nvoid* dptsvx_(void);\nvoid* dpttrf(void);\nvoid* dpttrf_(void);\nvoid* dpttrs(void);\nvoid* dpttrs_(void);\nvoid* dptts2(void);\nvoid* dptts2_(void);\nvoid* drscl(void);\nvoid* drscl_(void);\nvoid* dsbev(void);\nvoid* dsbev_(void);\nvoid* dsbevd(void);\nvoid* dsbevd_(void);\nvoid* dsbevx(void);\nvoid* dsbevx_(void);\nvoid* dsbgst(void);\nvoid* dsbgst_(void);\nvoid* dsbgv(void);\nvoid* dsbgv_(void);\nvoid* dsbgvd(void);\nvoid* dsbgvd_(void);\nvoid* dsbgvx(void);\nvoid* dsbgvx_(void);\nvoid* dsbtrd(void);\nvoid* dsbtrd_(void);\nvoid* dsfrk(void);\nvoid* dsfrk_(void);\nvoid* dsgesv(void);\nvoid* dsgesv_(void);\nvoid* dspcon(void);\nvoid* dspcon_(void);\nvoid* dspev(void);\nvoid* dspev_(void);\nvoid* dspevd(void);\nvoid* dspevd_(void);\nvoid* dspevx(void);\nvoid* dspevx_(void);\nvoid* dspgst(void);\nvoid* dspgst_(void);\nvoid* dspgv(void);\nvoid* dspgv_(void);\nvoid* dspgvd(void);\nvoid* dspgvd_(void);\nvoid* dspgvx(void);\nvoid* dspgvx_(void);\nvoid* dsposv(void);\nvoid* dsposv_(void);\nvoid* dsprfs(void);\nvoid* dsprfs_(void);\nvoid* dspsv(void);\nvoid* dspsv_(void);\nvoid* dspsvx(void);\nvoid* dspsvx_(void);\nvoid* dsptrd(void);\nvoid* dsptrd_(void);\nvoid* dsptrf(void);\nvoid* dsptrf_(void);\nvoid* dsptri(void);\nvoid* dsptri_(void);\nvoid* dsptrs(void);\nvoid* dsptrs_(void);\nvoid* dstebz(void);\nvoid* dstebz_(void);\nvoid* dstedc(void);\nvoid* dstedc_(void);\nvoid* dstegr(void);\nvoid* dstegr_(void);\nvoid* dstein(void);\nvoid* dstein_(void);\nvoid* dstemr(void);\nvoid* dstemr_(void);\nvoid* dsteqr(void);\nvoid* dsteqr_(void);\nvoid* dsterf(void);\nvoid* dsterf_(void);\nvoid* dstev(void);\nvoid* dstev_(void);\nvoid* dstevd(void);\nvoid* dstevd_(void);\nvoid* dstevr(void);\nvoid* dstevr_(void);\nvoid* dstevx(void);\nvoid* dstevx_(void);\nvoid* dsycon(void);\nvoid* dsycon_(void);\nvoid* dsyequb(void);\nvoid* dsyequb_(void);\nvoid* dsyev(void);\nvoid* dsyev_(void);\nvoid* dsyevd(void);\nvoid* dsyevd_(void);\nvoid* dsyevr(void);\nvoid* dsyevr_(void);\nvoid* dsyevx(void);\nvoid* dsyevx_(void);\nvoid* dsygs2(void);\nvoid* dsygs2_(void);\nvoid* dsygst(void);\nvoid* dsygst_(void);\nvoid* dsygv(void);\nvoid* dsygv_(void);\nvoid* dsygvd(void);\nvoid* dsygvd_(void);\nvoid* dsygvx(void);\nvoid* dsygvx_(void);\nvoid* dsyrfs(void);\nvoid* dsyrfs_(void);\nvoid* dsysv(void);\nvoid* dsysv_(void);\nvoid* dsysvx(void);\nvoid* dsysvx_(void);\nvoid* dsytd2(void);\nvoid* dsytd2_(void);\nvoid* dsytf2(void);\nvoid* dsytf2_(void);\nvoid* dsytrd(void);\nvoid* dsytrd_(void);\nvoid* dsytrf(void);\nvoid* dsytrf_(void);\nvoid* dsytri(void);\nvoid* dsytri_(void);\nvoid* dsytrs(void);\nvoid* dsytrs_(void);\nvoid* dtbcon(void);\nvoid* dtbcon_(void);\nvoid* dtbrfs(void);\nvoid* dtbrfs_(void);\nvoid* dtbtrs(void);\nvoid* dtbtrs_(void);\nvoid* dtfsm(void);\nvoid* dtfsm_(void);\nvoid* dtftri(void);\nvoid* dtftri_(void);\nvoid* dtfttp(void);\nvoid* dtfttp_(void);\nvoid* dtfttr(void);\nvoid* dtfttr_(void);\nvoid* dtgevc(void);\nvoid* dtgevc_(void);\nvoid* dtgex2(void);\nvoid* dtgex2_(void);\nvoid* dtgexc(void);\nvoid* dtgexc_(void);\nvoid* dtgsen(void);\nvoid* dtgsen_(void);\nvoid* dtgsja(void);\nvoid* dtgsja_(void);\nvoid* dtgsna(void);\nvoid* dtgsna_(void);\nvoid* dtgsy2(void);\nvoid* dtgsy2_(void);\nvoid* dtgsyl(void);\nvoid* dtgsyl_(void);\nvoid* dtpcon(void);\nvoid* dtpcon_(void);\nvoid* dtprfs(void);\nvoid* dtprfs_(void);\nvoid* dtptri(void);\nvoid* dtptri_(void);\nvoid* dtptrs(void);\nvoid* dtptrs_(void);\nvoid* dtpttf(void);\nvoid* dtpttf_(void);\nvoid* dtpttr(void);\nvoid* dtpttr_(void);\nvoid* dtrcon(void);\nvoid* dtrcon_(void);\nvoid* dtrevc(void);\nvoid* dtrevc_(void);\nvoid* dtrexc(void);\nvoid* dtrexc_(void);\nvoid* dtrrfs(void);\nvoid* dtrrfs_(void);\nvoid* dtrsen(void);\nvoid* dtrsen_(void);\nvoid* dtrsna(void);\nvoid* dtrsna_(void);\nvoid* dtrsyl(void);\nvoid* dtrsyl_(void);\nvoid* dtrti2(void);\nvoid* dtrti2_(void);\nvoid* dtrtri(void);\nvoid* dtrtri_(void);\nvoid* dtrtrs(void);\nvoid* dtrtrs_(void);\nvoid* dtrttf(void);\nvoid* dtrttf_(void);\nvoid* dtrttp(void);\nvoid* dtrttp_(void);\nvoid* dtzrqf(void);\nvoid* dtzrqf_(void);\nvoid* dtzrzf(void);\nvoid* dtzrzf_(void);\nvoid* dzsum1(void);\nvoid* dzsum1_(void);\nvoid* icmax1(void);\nvoid* icmax1_(void);\nvoid* ieeeck(void);\nvoid* ieeeck_(void);\nvoid* ilaclc(void);\nvoid* ilaclc_(void);\nvoid* ilaclr(void);\nvoid* ilaclr_(void);\nvoid* iladiag(void);\nvoid* iladiag_(void);\nvoid* iladlc(void);\nvoid* iladlc_(void);\nvoid* iladlr(void);\nvoid* iladlr_(void);\nvoid* ilaenv(void);\nvoid* ilaenv_(void);\nvoid* ilaprec(void);\nvoid* ilaprec_(void);\nvoid* ilaslc(void);\nvoid* ilaslc_(void);\nvoid* ilaslr(void);\nvoid* ilaslr_(void);\nvoid* ilatrans(void);\nvoid* ilatrans_(void);\nvoid* ilauplo(void);\nvoid* ilauplo_(void);\nvoid* ilaver(void);\nvoid* ilaver_(void);\nvoid* ilazlc(void);\nvoid* ilazlc_(void);\nvoid* ilazlr(void);\nvoid* ilazlr_(void);\nvoid* iparmq(void);\nvoid* iparmq_(void);\nvoid* izmax1(void);\nvoid* izmax1_(void);\nvoid* lsamen(void);\nvoid* lsamen_(void);\nvoid* sbdsdc(void);\nvoid* sbdsdc_(void);\nvoid* sbdsqr(void);\nvoid* sbdsqr_(void);\nvoid* scsum1(void);\nvoid* scsum1_(void);\nvoid* sdisna(void);\nvoid* sdisna_(void);\nvoid* sgbbrd(void);\nvoid* sgbbrd_(void);\nvoid* sgbcon(void);\nvoid* sgbcon_(void);\nvoid* sgbequ(void);\nvoid* sgbequ_(void);\nvoid* sgbequb(void);\nvoid* sgbequb_(void);\nvoid* sgbrfs(void);\nvoid* sgbrfs_(void);\nvoid* sgbsv(void);\nvoid* sgbsv_(void);\nvoid* sgbsvx(void);\nvoid* sgbsvx_(void);\nvoid* sgbtf2(void);\nvoid* sgbtf2_(void);\nvoid* sgbtrf(void);\nvoid* sgbtrf_(void);\nvoid* sgbtrs(void);\nvoid* sgbtrs_(void);\nvoid* sgebak(void);\nvoid* sgebak_(void);\nvoid* sgebal(void);\nvoid* sgebal_(void);\nvoid* sgebd2(void);\nvoid* sgebd2_(void);\nvoid* sgebrd(void);\nvoid* sgebrd_(void);\nvoid* sgecon(void);\nvoid* sgecon_(void);\nvoid* sgeequ(void);\nvoid* sgeequ_(void);\nvoid* sgeequb(void);\nvoid* sgeequb_(void);\nvoid* sgees(void);\nvoid* sgees_(void);\nvoid* sgeesx(void);\nvoid* sgeesx_(void);\nvoid* sgeev(void);\nvoid* sgeev_(void);\nvoid* sgeevx(void);\nvoid* sgeevx_(void);\nvoid* sgegs(void);\nvoid* sgegs_(void);\nvoid* sgegv(void);\nvoid* sgegv_(void);\nvoid* sgehd2(void);\nvoid* sgehd2_(void);\nvoid* sgehrd(void);\nvoid* sgehrd_(void);\nvoid* sgejsv(void);\nvoid* sgejsv_(void);\nvoid* sgelq2(void);\nvoid* sgelq2_(void);\nvoid* sgelqf(void);\nvoid* sgelqf_(void);\nvoid* sgels(void);\nvoid* sgels_(void);\nvoid* sgelsd(void);\nvoid* sgelsd_(void);\nvoid* sgelss(void);\nvoid* sgelss_(void);\nvoid* sgelsx(void);\nvoid* sgelsx_(void);\nvoid* sgelsy(void);\nvoid* sgelsy_(void);\nvoid* sgeql2(void);\nvoid* sgeql2_(void);\nvoid* sgeqlf(void);\nvoid* sgeqlf_(void);\nvoid* sgeqp3(void);\nvoid* sgeqp3_(void);\nvoid* sgeqpf(void);\nvoid* sgeqpf_(void);\nvoid* sgeqr2(void);\nvoid* sgeqr2_(void);\nvoid* sgeqrf(void);\nvoid* sgeqrf_(void);\nvoid* sgerfs(void);\nvoid* sgerfs_(void);\nvoid* sgerq2(void);\nvoid* sgerq2_(void);\nvoid* sgerqf(void);\nvoid* sgerqf_(void);\nvoid* sgesc2(void);\nvoid* sgesc2_(void);\nvoid* sgesdd(void);\nvoid* sgesdd_(void);\nvoid* sgesv(void);\nvoid* sgesv_(void);\nvoid* sgesvd(void);\nvoid* sgesvd_(void);\nvoid* sgesvj(void);\nvoid* sgesvj_(void);\nvoid* sgesvx(void);\nvoid* sgesvx_(void);\nvoid* sgetc2(void);\nvoid* sgetc2_(void);\nvoid* sgetf2(void);\nvoid* sgetf2_(void);\nvoid* sgetrf(void);\nvoid* sgetrf_(void);\nvoid* sgetri(void);\nvoid* sgetri_(void);\nvoid* sgetrs(void);\nvoid* sgetrs_(void);\nvoid* sggbak(void);\nvoid* sggbak_(void);\nvoid* sggbal(void);\nvoid* sggbal_(void);\nvoid* sgges(void);\nvoid* sgges_(void);\nvoid* sggesx(void);\nvoid* sggesx_(void);\nvoid* sggev(void);\nvoid* sggev_(void);\nvoid* sggevx(void);\nvoid* sggevx_(void);\nvoid* sggglm(void);\nvoid* sggglm_(void);\nvoid* sgghrd(void);\nvoid* sgghrd_(void);\nvoid* sgglse(void);\nvoid* sgglse_(void);\nvoid* sggqrf(void);\nvoid* sggqrf_(void);\nvoid* sggrqf(void);\nvoid* sggrqf_(void);\nvoid* sggsvd(void);\nvoid* sggsvd_(void);\nvoid* sggsvp(void);\nvoid* sggsvp_(void);\nvoid* sgsvj0(void);\nvoid* sgsvj0_(void);\nvoid* sgsvj1(void);\nvoid* sgsvj1_(void);\nvoid* sgtcon(void);\nvoid* sgtcon_(void);\nvoid* sgtrfs(void);\nvoid* sgtrfs_(void);\nvoid* sgtsv(void);\nvoid* sgtsv_(void);\nvoid* sgtsvx(void);\nvoid* sgtsvx_(void);\nvoid* sgttrf(void);\nvoid* sgttrf_(void);\nvoid* sgttrs(void);\nvoid* sgttrs_(void);\nvoid* sgtts2(void);\nvoid* sgtts2_(void);\nvoid* shgeqz(void);\nvoid* shgeqz_(void);\nvoid* shsein(void);\nvoid* shsein_(void);\nvoid* shseqr(void);\nvoid* shseqr_(void);\nvoid* sisnan(void);\nvoid* sisnan_(void);\nvoid* slabad(void);\nvoid* slabad_(void);\nvoid* slabrd(void);\nvoid* slabrd_(void);\nvoid* slacn2(void);\nvoid* slacn2_(void);\nvoid* slacon(void);\nvoid* slacon_(void);\nvoid* slacpy(void);\nvoid* slacpy_(void);\nvoid* sladiv(void);\nvoid* sladiv_(void);\nvoid* slae2(void);\nvoid* slae2_(void);\nvoid* slaebz(void);\nvoid* slaebz_(void);\nvoid* slaed0(void);\nvoid* slaed0_(void);\nvoid* slaed1(void);\nvoid* slaed1_(void);\nvoid* slaed2(void);\nvoid* slaed2_(void);\nvoid* slaed3(void);\nvoid* slaed3_(void);\nvoid* slaed4(void);\nvoid* slaed4_(void);\nvoid* slaed5(void);\nvoid* slaed5_(void);\nvoid* slaed6(void);\nvoid* slaed6_(void);\nvoid* slaed7(void);\nvoid* slaed7_(void);\nvoid* slaed8(void);\nvoid* slaed8_(void);\nvoid* slaed9(void);\nvoid* slaed9_(void);\nvoid* slaeda(void);\nvoid* slaeda_(void);\nvoid* slaein(void);\nvoid* slaein_(void);\nvoid* slaev2(void);\nvoid* slaev2_(void);\nvoid* slaexc(void);\nvoid* slaexc_(void);\nvoid* slag2(void);\nvoid* slag2_(void);\nvoid* slag2d(void);\nvoid* slag2d_(void);\nvoid* slags2(void);\nvoid* slags2_(void);\nvoid* slagtf(void);\nvoid* slagtf_(void);\nvoid* slagtm(void);\nvoid* slagtm_(void);\nvoid* slagts(void);\nvoid* slagts_(void);\nvoid* slagv2(void);\nvoid* slagv2_(void);\nvoid* slahqr(void);\nvoid* slahqr_(void);\nvoid* slahr2(void);\nvoid* slahr2_(void);\nvoid* slahrd(void);\nvoid* slahrd_(void);\nvoid* slaic1(void);\nvoid* slaic1_(void);\nvoid* slaisnan(void);\nvoid* slaisnan_(void);\nvoid* slaln2(void);\nvoid* slaln2_(void);\nvoid* slals0(void);\nvoid* slals0_(void);\nvoid* slalsa(void);\nvoid* slalsa_(void);\nvoid* slalsd(void);\nvoid* slalsd_(void);\nvoid* slamc1(void);\nvoid* slamc1_(void);\nvoid* slamc2(void);\nvoid* slamc2_(void);\nvoid* slamc3(void);\nvoid* slamc3_(void);\nvoid* slamc4(void);\nvoid* slamc4_(void);\nvoid* slamc5(void);\nvoid* slamc5_(void);\nvoid* slamch(void);\nvoid* slamch_(void);\nvoid* slamrg(void);\nvoid* slamrg_(void);\nvoid* slaneg(void);\nvoid* slaneg_(void);\nvoid* slangb(void);\nvoid* slangb_(void);\nvoid* slange(void);\nvoid* slange_(void);\nvoid* slangt(void);\nvoid* slangt_(void);\nvoid* slanhs(void);\nvoid* slanhs_(void);\nvoid* slansb(void);\nvoid* slansb_(void);\nvoid* slansf(void);\nvoid* slansf_(void);\nvoid* slansp(void);\nvoid* slansp_(void);\nvoid* slanst(void);\nvoid* slanst_(void);\nvoid* slansy(void);\nvoid* slansy_(void);\nvoid* slantb(void);\nvoid* slantb_(void);\nvoid* slantp(void);\nvoid* slantp_(void);\nvoid* slantr(void);\nvoid* slantr_(void);\nvoid* slanv2(void);\nvoid* slanv2_(void);\nvoid* slapll(void);\nvoid* slapll_(void);\nvoid* slapmt(void);\nvoid* slapmt_(void);\nvoid* slapy2(void);\nvoid* slapy2_(void);\nvoid* slapy3(void);\nvoid* slapy3_(void);\nvoid* slaqgb(void);\nvoid* slaqgb_(void);\nvoid* slaqge(void);\nvoid* slaqge_(void);\nvoid* slaqp2(void);\nvoid* slaqp2_(void);\nvoid* slaqps(void);\nvoid* slaqps_(void);\nvoid* slaqr0(void);\nvoid* slaqr0_(void);\nvoid* slaqr1(void);\nvoid* slaqr1_(void);\nvoid* slaqr2(void);\nvoid* slaqr2_(void);\nvoid* slaqr3(void);\nvoid* slaqr3_(void);\nvoid* slaqr4(void);\nvoid* slaqr4_(void);\nvoid* slaqr5(void);\nvoid* slaqr5_(void);\nvoid* slaqsb(void);\nvoid* slaqsb_(void);\nvoid* slaqsp(void);\nvoid* slaqsp_(void);\nvoid* slaqsy(void);\nvoid* slaqsy_(void);\nvoid* slaqtr(void);\nvoid* slaqtr_(void);\nvoid* slar1v(void);\nvoid* slar1v_(void);\nvoid* slar2v(void);\nvoid* slar2v_(void);\nvoid* slarf(void);\nvoid* slarf_(void);\nvoid* slarfb(void);\nvoid* slarfb_(void);\nvoid* slarfg(void);\nvoid* slarfg_(void);\nvoid* slarfp(void);\nvoid* slarfp_(void);\nvoid* slarft(void);\nvoid* slarft_(void);\nvoid* slarfx(void);\nvoid* slarfx_(void);\nvoid* slargv(void);\nvoid* slargv_(void);\nvoid* slarnv(void);\nvoid* slarnv_(void);\nvoid* slarra(void);\nvoid* slarra_(void);\nvoid* slarrb(void);\nvoid* slarrb_(void);\nvoid* slarrc(void);\nvoid* slarrc_(void);\nvoid* slarrd(void);\nvoid* slarrd_(void);\nvoid* slarre(void);\nvoid* slarre_(void);\nvoid* slarrf(void);\nvoid* slarrf_(void);\nvoid* slarrj(void);\nvoid* slarrj_(void);\nvoid* slarrk(void);\nvoid* slarrk_(void);\nvoid* slarrr(void);\nvoid* slarrr_(void);\nvoid* slarrv(void);\nvoid* slarrv_(void);\nvoid* slarscl2(void);\nvoid* slarscl2_(void);\nvoid* slartg(void);\nvoid* slartg_(void);\nvoid* slartv(void);\nvoid* slartv_(void);\nvoid* slaruv(void);\nvoid* slaruv_(void);\nvoid* slarz(void);\nvoid* slarz_(void);\nvoid* slarzb(void);\nvoid* slarzb_(void);\nvoid* slarzt(void);\nvoid* slarzt_(void);\nvoid* slas2(void);\nvoid* slas2_(void);\nvoid* slascl(void);\nvoid* slascl2(void);\nvoid* slascl2_(void);\nvoid* slascl_(void);\nvoid* slasd0(void);\nvoid* slasd0_(void);\nvoid* slasd1(void);\nvoid* slasd1_(void);\nvoid* slasd2(void);\nvoid* slasd2_(void);\nvoid* slasd3(void);\nvoid* slasd3_(void);\nvoid* slasd4(void);\nvoid* slasd4_(void);\nvoid* slasd5(void);\nvoid* slasd5_(void);\nvoid* slasd6(void);\nvoid* slasd6_(void);\nvoid* slasd7(void);\nvoid* slasd7_(void);\nvoid* slasd8(void);\nvoid* slasd8_(void);\nvoid* slasd9(void);\nvoid* slasd9_(void);\nvoid* slasda(void);\nvoid* slasda_(void);\nvoid* slasdq(void);\nvoid* slasdq_(void);\nvoid* slasdt(void);\nvoid* slasdt_(void);\nvoid* slaset(void);\nvoid* slaset_(void);\nvoid* slasq1(void);\nvoid* slasq1_(void);\nvoid* slasq2(void);\nvoid* slasq2_(void);\nvoid* slasq3(void);\nvoid* slasq3_(void);\nvoid* slasq4(void);\nvoid* slasq4_(void);\nvoid* slasq5(void);\nvoid* slasq5_(void);\nvoid* slasq6(void);\nvoid* slasq6_(void);\nvoid* slasr(void);\nvoid* slasr_(void);\nvoid* slasrt(void);\nvoid* slasrt_(void);\nvoid* slassq(void);\nvoid* slassq_(void);\nvoid* slasv2(void);\nvoid* slasv2_(void);\nvoid* slaswp(void);\nvoid* slaswp_(void);\nvoid* slasy2(void);\nvoid* slasy2_(void);\nvoid* slasyf(void);\nvoid* slasyf_(void);\nvoid* slatbs(void);\nvoid* slatbs_(void);\nvoid* slatdf(void);\nvoid* slatdf_(void);\nvoid* slatps(void);\nvoid* slatps_(void);\nvoid* slatrd(void);\nvoid* slatrd_(void);\nvoid* slatrs(void);\nvoid* slatrs_(void);\nvoid* slatrz(void);\nvoid* slatrz_(void);\nvoid* slatzm(void);\nvoid* slatzm_(void);\nvoid* slauu2(void);\nvoid* slauu2_(void);\nvoid* slauum(void);\nvoid* slauum_(void);\nvoid* smaxloc(void);\nvoid* smaxloc_(void);\nvoid* sopgtr(void);\nvoid* sopgtr_(void);\nvoid* sopmtr(void);\nvoid* sopmtr_(void);\nvoid* sorg2l(void);\nvoid* sorg2l_(void);\nvoid* sorg2r(void);\nvoid* sorg2r_(void);\nvoid* sorgbr(void);\nvoid* sorgbr_(void);\nvoid* sorghr(void);\nvoid* sorghr_(void);\nvoid* sorgl2(void);\nvoid* sorgl2_(void);\nvoid* sorglq(void);\nvoid* sorglq_(void);\nvoid* sorgql(void);\nvoid* sorgql_(void);\nvoid* sorgqr(void);\nvoid* sorgqr_(void);\nvoid* sorgr2(void);\nvoid* sorgr2_(void);\nvoid* sorgrq(void);\nvoid* sorgrq_(void);\nvoid* sorgtr(void);\nvoid* sorgtr_(void);\nvoid* sorm2l(void);\nvoid* sorm2l_(void);\nvoid* sorm2r(void);\nvoid* sorm2r_(void);\nvoid* sormbr(void);\nvoid* sormbr_(void);\nvoid* sormhr(void);\nvoid* sormhr_(void);\nvoid* sorml2(void);\nvoid* sorml2_(void);\nvoid* sormlq(void);\nvoid* sormlq_(void);\nvoid* sormql(void);\nvoid* sormql_(void);\nvoid* sormqr(void);\nvoid* sormqr_(void);\nvoid* sormr2(void);\nvoid* sormr2_(void);\nvoid* sormr3(void);\nvoid* sormr3_(void);\nvoid* sormrq(void);\nvoid* sormrq_(void);\nvoid* sormrz(void);\nvoid* sormrz_(void);\nvoid* sormtr(void);\nvoid* sormtr_(void);\nvoid* spbcon(void);\nvoid* spbcon_(void);\nvoid* spbequ(void);\nvoid* spbequ_(void);\nvoid* spbrfs(void);\nvoid* spbrfs_(void);\nvoid* spbstf(void);\nvoid* spbstf_(void);\nvoid* spbsv(void);\nvoid* spbsv_(void);\nvoid* spbsvx(void);\nvoid* spbsvx_(void);\nvoid* spbtf2(void);\nvoid* spbtf2_(void);\nvoid* spbtrf(void);\nvoid* spbtrf_(void);\nvoid* spbtrs(void);\nvoid* spbtrs_(void);\nvoid* spftrf(void);\nvoid* spftrf_(void);\nvoid* spftri(void);\nvoid* spftri_(void);\nvoid* spftrs(void);\nvoid* spftrs_(void);\nvoid* spocon(void);\nvoid* spocon_(void);\nvoid* spoequ(void);\nvoid* spoequ_(void);\nvoid* spoequb(void);\nvoid* spoequb_(void);\nvoid* sporfs(void);\nvoid* sporfs_(void);\nvoid* sposv(void);\nvoid* sposv_(void);\nvoid* sposvx(void);\nvoid* sposvx_(void);\nvoid* spotf2(void);\nvoid* spotf2_(void);\nvoid* spotrf(void);\nvoid* spotrf_(void);\nvoid* spotri(void);\nvoid* spotri_(void);\nvoid* spotrs(void);\nvoid* spotrs_(void);\nvoid* sppcon(void);\nvoid* sppcon_(void);\nvoid* sppequ(void);\nvoid* sppequ_(void);\nvoid* spprfs(void);\nvoid* spprfs_(void);\nvoid* sppsv(void);\nvoid* sppsv_(void);\nvoid* sppsvx(void);\nvoid* sppsvx_(void);\nvoid* spptrf(void);\nvoid* spptrf_(void);\nvoid* spptri(void);\nvoid* spptri_(void);\nvoid* spptrs(void);\nvoid* spptrs_(void);\nvoid* spstf2(void);\nvoid* spstf2_(void);\nvoid* spstrf(void);\nvoid* spstrf_(void);\nvoid* sptcon(void);\nvoid* sptcon_(void);\nvoid* spteqr(void);\nvoid* spteqr_(void);\nvoid* sptrfs(void);\nvoid* sptrfs_(void);\nvoid* sptsv(void);\nvoid* sptsv_(void);\nvoid* sptsvx(void);\nvoid* sptsvx_(void);\nvoid* spttrf(void);\nvoid* spttrf_(void);\nvoid* spttrs(void);\nvoid* spttrs_(void);\nvoid* sptts2(void);\nvoid* sptts2_(void);\nvoid* srscl(void);\nvoid* srscl_(void);\nvoid* ssbev(void);\nvoid* ssbev_(void);\nvoid* ssbevd(void);\nvoid* ssbevd_(void);\nvoid* ssbevx(void);\nvoid* ssbevx_(void);\nvoid* ssbgst(void);\nvoid* ssbgst_(void);\nvoid* ssbgv(void);\nvoid* ssbgv_(void);\nvoid* ssbgvd(void);\nvoid* ssbgvd_(void);\nvoid* ssbgvx(void);\nvoid* ssbgvx_(void);\nvoid* ssbtrd(void);\nvoid* ssbtrd_(void);\nvoid* ssfrk(void);\nvoid* ssfrk_(void);\nvoid* sspcon(void);\nvoid* sspcon_(void);\nvoid* sspev(void);\nvoid* sspev_(void);\nvoid* sspevd(void);\nvoid* sspevd_(void);\nvoid* sspevx(void);\nvoid* sspevx_(void);\nvoid* sspgst(void);\nvoid* sspgst_(void);\nvoid* sspgv(void);\nvoid* sspgv_(void);\nvoid* sspgvd(void);\nvoid* sspgvd_(void);\nvoid* sspgvx(void);\nvoid* sspgvx_(void);\nvoid* ssprfs(void);\nvoid* ssprfs_(void);\nvoid* sspsv(void);\nvoid* sspsv_(void);\nvoid* sspsvx(void);\nvoid* sspsvx_(void);\nvoid* ssptrd(void);\nvoid* ssptrd_(void);\nvoid* ssptrf(void);\nvoid* ssptrf_(void);\nvoid* ssptri(void);\nvoid* ssptri_(void);\nvoid* ssptrs(void);\nvoid* ssptrs_(void);\nvoid* sstebz(void);\nvoid* sstebz_(void);\nvoid* sstedc(void);\nvoid* sstedc_(void);\nvoid* sstegr(void);\nvoid* sstegr_(void);\nvoid* sstein(void);\nvoid* sstein_(void);\nvoid* sstemr(void);\nvoid* sstemr_(void);\nvoid* ssteqr(void);\nvoid* ssteqr_(void);\nvoid* ssterf(void);\nvoid* ssterf_(void);\nvoid* sstev(void);\nvoid* sstev_(void);\nvoid* sstevd(void);\nvoid* sstevd_(void);\nvoid* sstevr(void);\nvoid* sstevr_(void);\nvoid* sstevx(void);\nvoid* sstevx_(void);\nvoid* ssycon(void);\nvoid* ssycon_(void);\nvoid* ssyequb(void);\nvoid* ssyequb_(void);\nvoid* ssyev(void);\nvoid* ssyev_(void);\nvoid* ssyevd(void);\nvoid* ssyevd_(void);\nvoid* ssyevr(void);\nvoid* ssyevr_(void);\nvoid* ssyevx(void);\nvoid* ssyevx_(void);\nvoid* ssygs2(void);\nvoid* ssygs2_(void);\nvoid* ssygst(void);\nvoid* ssygst_(void);\nvoid* ssygv(void);\nvoid* ssygv_(void);\nvoid* ssygvd(void);\nvoid* ssygvd_(void);\nvoid* ssygvx(void);\nvoid* ssygvx_(void);\nvoid* ssyrfs(void);\nvoid* ssyrfs_(void);\nvoid* ssysv(void);\nvoid* ssysv_(void);\nvoid* ssysvx(void);\nvoid* ssysvx_(void);\nvoid* ssytd2(void);\nvoid* ssytd2_(void);\nvoid* ssytf2(void);\nvoid* ssytf2_(void);\nvoid* ssytrd(void);\nvoid* ssytrd_(void);\nvoid* ssytrf(void);\nvoid* ssytrf_(void);\nvoid* ssytri(void);\nvoid* ssytri_(void);\nvoid* ssytrs(void);\nvoid* ssytrs_(void);\nvoid* stbcon(void);\nvoid* stbcon_(void);\nvoid* stbrfs(void);\nvoid* stbrfs_(void);\nvoid* stbtrs(void);\nvoid* stbtrs_(void);\nvoid* stfsm(void);\nvoid* stfsm_(void);\nvoid* stftri(void);\nvoid* stftri_(void);\nvoid* stfttp(void);\nvoid* stfttp_(void);\nvoid* stfttr(void);\nvoid* stfttr_(void);\nvoid* stgevc(void);\nvoid* stgevc_(void);\nvoid* stgex2(void);\nvoid* stgex2_(void);\nvoid* stgexc(void);\nvoid* stgexc_(void);\nvoid* stgsen(void);\nvoid* stgsen_(void);\nvoid* stgsja(void);\nvoid* stgsja_(void);\nvoid* stgsna(void);\nvoid* stgsna_(void);\nvoid* stgsy2(void);\nvoid* stgsy2_(void);\nvoid* stgsyl(void);\nvoid* stgsyl_(void);\nvoid* stpcon(void);\nvoid* stpcon_(void);\nvoid* stprfs(void);\nvoid* stprfs_(void);\nvoid* stptri(void);\nvoid* stptri_(void);\nvoid* stptrs(void);\nvoid* stptrs_(void);\nvoid* stpttf(void);\nvoid* stpttf_(void);\nvoid* stpttr(void);\nvoid* stpttr_(void);\nvoid* strcon(void);\nvoid* strcon_(void);\nvoid* strevc(void);\nvoid* strevc_(void);\nvoid* strexc(void);\nvoid* strexc_(void);\nvoid* strrfs(void);\nvoid* strrfs_(void);\nvoid* strsen(void);\nvoid* strsen_(void);\nvoid* strsna(void);\nvoid* strsna_(void);\nvoid* strsyl(void);\nvoid* strsyl_(void);\nvoid* strti2(void);\nvoid* strti2_(void);\nvoid* strtri(void);\nvoid* strtri_(void);\nvoid* strtrs(void);\nvoid* strtrs_(void);\nvoid* strttf(void);\nvoid* strttf_(void);\nvoid* strttp(void);\nvoid* strttp_(void);\nvoid* stzrqf(void);\nvoid* stzrqf_(void);\nvoid* stzrzf(void);\nvoid* stzrzf_(void);\nvoid* zbdsqr(void);\nvoid* zbdsqr_(void);\nvoid* zcgesv(void);\nvoid* zcgesv_(void);\nvoid* zcposv(void);\nvoid* zcposv_(void);\nvoid* zdrscl(void);\nvoid* zdrscl_(void);\nvoid* zgbbrd(void);\nvoid* zgbbrd_(void);\nvoid* zgbcon(void);\nvoid* zgbcon_(void);\nvoid* zgbequ(void);\nvoid* zgbequ_(void);\nvoid* zgbequb(void);\nvoid* zgbequb_(void);\nvoid* zgbrfs(void);\nvoid* zgbrfs_(void);\nvoid* zgbsv(void);\nvoid* zgbsv_(void);\nvoid* zgbsvx(void);\nvoid* zgbsvx_(void);\nvoid* zgbtf2(void);\nvoid* zgbtf2_(void);\nvoid* zgbtrf(void);\nvoid* zgbtrf_(void);\nvoid* zgbtrs(void);\nvoid* zgbtrs_(void);\nvoid* zgebak(void);\nvoid* zgebak_(void);\nvoid* zgebal(void);\nvoid* zgebal_(void);\nvoid* zgebd2(void);\nvoid* zgebd2_(void);\nvoid* zgebrd(void);\nvoid* zgebrd_(void);\nvoid* zgecon(void);\nvoid* zgecon_(void);\nvoid* zgeequ(void);\nvoid* zgeequ_(void);\nvoid* zgeequb(void);\nvoid* zgeequb_(void);\nvoid* zgees(void);\nvoid* zgees_(void);\nvoid* zgeesx(void);\nvoid* zgeesx_(void);\nvoid* zgeev(void);\nvoid* zgeev_(void);\nvoid* zgeevx(void);\nvoid* zgeevx_(void);\nvoid* zgegs(void);\nvoid* zgegs_(void);\nvoid* zgegv(void);\nvoid* zgegv_(void);\nvoid* zgehd2(void);\nvoid* zgehd2_(void);\nvoid* zgehrd(void);\nvoid* zgehrd_(void);\nvoid* zgelq2(void);\nvoid* zgelq2_(void);\nvoid* zgelqf(void);\nvoid* zgelqf_(void);\nvoid* zgels(void);\nvoid* zgels_(void);\nvoid* zgelsd(void);\nvoid* zgelsd_(void);\nvoid* zgelss(void);\nvoid* zgelss_(void);\nvoid* zgelsx(void);\nvoid* zgelsx_(void);\nvoid* zgelsy(void);\nvoid* zgelsy_(void);\nvoid* zgeql2(void);\nvoid* zgeql2_(void);\nvoid* zgeqlf(void);\nvoid* zgeqlf_(void);\nvoid* zgeqp3(void);\nvoid* zgeqp3_(void);\nvoid* zgeqpf(void);\nvoid* zgeqpf_(void);\nvoid* zgeqr2(void);\nvoid* zgeqr2_(void);\nvoid* zgeqrf(void);\nvoid* zgeqrf_(void);\nvoid* zgerfs(void);\nvoid* zgerfs_(void);\nvoid* zgerq2(void);\nvoid* zgerq2_(void);\nvoid* zgerqf(void);\nvoid* zgerqf_(void);\nvoid* zgesc2(void);\nvoid* zgesc2_(void);\nvoid* zgesdd(void);\nvoid* zgesdd_(void);\nvoid* zgesv(void);\nvoid* zgesv_(void);\nvoid* zgesvd(void);\nvoid* zgesvd_(void);\nvoid* zgesvx(void);\nvoid* zgesvx_(void);\nvoid* zgetc2(void);\nvoid* zgetc2_(void);\nvoid* zgetf2(void);\nvoid* zgetf2_(void);\nvoid* zgetrf(void);\nvoid* zgetrf_(void);\nvoid* zgetri(void);\nvoid* zgetri_(void);\nvoid* zgetrs(void);\nvoid* zgetrs_(void);\nvoid* zggbak(void);\nvoid* zggbak_(void);\nvoid* zggbal(void);\nvoid* zggbal_(void);\nvoid* zgges(void);\nvoid* zgges_(void);\nvoid* zggesx(void);\nvoid* zggesx_(void);\nvoid* zggev(void);\nvoid* zggev_(void);\nvoid* zggevx(void);\nvoid* zggevx_(void);\nvoid* zggglm(void);\nvoid* zggglm_(void);\nvoid* zgghrd(void);\nvoid* zgghrd_(void);\nvoid* zgglse(void);\nvoid* zgglse_(void);\nvoid* zggqrf(void);\nvoid* zggqrf_(void);\nvoid* zggrqf(void);\nvoid* zggrqf_(void);\nvoid* zggsvd(void);\nvoid* zggsvd_(void);\nvoid* zggsvp(void);\nvoid* zggsvp_(void);\nvoid* zgtcon(void);\nvoid* zgtcon_(void);\nvoid* zgtrfs(void);\nvoid* zgtrfs_(void);\nvoid* zgtsv(void);\nvoid* zgtsv_(void);\nvoid* zgtsvx(void);\nvoid* zgtsvx_(void);\nvoid* zgttrf(void);\nvoid* zgttrf_(void);\nvoid* zgttrs(void);\nvoid* zgttrs_(void);\nvoid* zgtts2(void);\nvoid* zgtts2_(void);\nvoid* zhbev(void);\nvoid* zhbev_(void);\nvoid* zhbevd(void);\nvoid* zhbevd_(void);\nvoid* zhbevx(void);\nvoid* zhbevx_(void);\nvoid* zhbgst(void);\nvoid* zhbgst_(void);\nvoid* zhbgv(void);\nvoid* zhbgv_(void);\nvoid* zhbgvd(void);\nvoid* zhbgvd_(void);\nvoid* zhbgvx(void);\nvoid* zhbgvx_(void);\nvoid* zhbtrd(void);\nvoid* zhbtrd_(void);\nvoid* zhecon(void);\nvoid* zhecon_(void);\nvoid* zheequb(void);\nvoid* zheequb_(void);\nvoid* zheev(void);\nvoid* zheev_(void);\nvoid* zheevd(void);\nvoid* zheevd_(void);\nvoid* zheevr(void);\nvoid* zheevr_(void);\nvoid* zheevx(void);\nvoid* zheevx_(void);\nvoid* zhegs2(void);\nvoid* zhegs2_(void);\nvoid* zhegst(void);\nvoid* zhegst_(void);\nvoid* zhegv(void);\nvoid* zhegv_(void);\nvoid* zhegvd(void);\nvoid* zhegvd_(void);\nvoid* zhegvx(void);\nvoid* zhegvx_(void);\nvoid* zherfs(void);\nvoid* zherfs_(void);\nvoid* zhesv(void);\nvoid* zhesv_(void);\nvoid* zhesvx(void);\nvoid* zhesvx_(void);\nvoid* zhetd2(void);\nvoid* zhetd2_(void);\nvoid* zhetf2(void);\nvoid* zhetf2_(void);\nvoid* zhetrd(void);\nvoid* zhetrd_(void);\nvoid* zhetrf(void);\nvoid* zhetrf_(void);\nvoid* zhetri(void);\nvoid* zhetri_(void);\nvoid* zhetrs(void);\nvoid* zhetrs_(void);\nvoid* zhfrk(void);\nvoid* zhfrk_(void);\nvoid* zhgeqz(void);\nvoid* zhgeqz_(void);\nvoid* zhpcon(void);\nvoid* zhpcon_(void);\nvoid* zhpev(void);\nvoid* zhpev_(void);\nvoid* zhpevd(void);\nvoid* zhpevd_(void);\nvoid* zhpevx(void);\nvoid* zhpevx_(void);\nvoid* zhpgst(void);\nvoid* zhpgst_(void);\nvoid* zhpgv(void);\nvoid* zhpgv_(void);\nvoid* zhpgvd(void);\nvoid* zhpgvd_(void);\nvoid* zhpgvx(void);\nvoid* zhpgvx_(void);\nvoid* zhprfs(void);\nvoid* zhprfs_(void);\nvoid* zhpsv(void);\nvoid* zhpsv_(void);\nvoid* zhpsvx(void);\nvoid* zhpsvx_(void);\nvoid* zhptrd(void);\nvoid* zhptrd_(void);\nvoid* zhptrf(void);\nvoid* zhptrf_(void);\nvoid* zhptri(void);\nvoid* zhptri_(void);\nvoid* zhptrs(void);\nvoid* zhptrs_(void);\nvoid* zhsein(void);\nvoid* zhsein_(void);\nvoid* zhseqr(void);\nvoid* zhseqr_(void);\nvoid* zlabrd(void);\nvoid* zlabrd_(void);\nvoid* zlacgv(void);\nvoid* zlacgv_(void);\nvoid* zlacn2(void);\nvoid* zlacn2_(void);\nvoid* zlacon(void);\nvoid* zlacon_(void);\nvoid* zlacp2(void);\nvoid* zlacp2_(void);\nvoid* zlacpy(void);\nvoid* zlacpy_(void);\nvoid* zlacrm(void);\nvoid* zlacrm_(void);\nvoid* zlacrt(void);\nvoid* zlacrt_(void);\nvoid* zladiv(void);\nvoid* zladiv_(void);\nvoid* zlaed0(void);\nvoid* zlaed0_(void);\nvoid* zlaed7(void);\nvoid* zlaed7_(void);\nvoid* zlaed8(void);\nvoid* zlaed8_(void);\nvoid* zlaein(void);\nvoid* zlaein_(void);\nvoid* zlaesy(void);\nvoid* zlaesy_(void);\nvoid* zlaev2(void);\nvoid* zlaev2_(void);\nvoid* zlag2c(void);\nvoid* zlag2c_(void);\nvoid* zlags2(void);\nvoid* zlags2_(void);\nvoid* zlagtm(void);\nvoid* zlagtm_(void);\nvoid* zlahef(void);\nvoid* zlahef_(void);\nvoid* zlahqr(void);\nvoid* zlahqr_(void);\nvoid* zlahr2(void);\nvoid* zlahr2_(void);\nvoid* zlahrd(void);\nvoid* zlahrd_(void);\nvoid* zlaic1(void);\nvoid* zlaic1_(void);\nvoid* zlals0(void);\nvoid* zlals0_(void);\nvoid* zlalsa(void);\nvoid* zlalsa_(void);\nvoid* zlalsd(void);\nvoid* zlalsd_(void);\nvoid* zlangb(void);\nvoid* zlangb_(void);\nvoid* zlange(void);\nvoid* zlange_(void);\nvoid* zlangt(void);\nvoid* zlangt_(void);\nvoid* zlanhb(void);\nvoid* zlanhb_(void);\nvoid* zlanhe(void);\nvoid* zlanhe_(void);\nvoid* zlanhf(void);\nvoid* zlanhf_(void);\nvoid* zlanhp(void);\nvoid* zlanhp_(void);\nvoid* zlanhs(void);\nvoid* zlanhs_(void);\nvoid* zlanht(void);\nvoid* zlanht_(void);\nvoid* zlansb(void);\nvoid* zlansb_(void);\nvoid* zlansp(void);\nvoid* zlansp_(void);\nvoid* zlansy(void);\nvoid* zlansy_(void);\nvoid* zlantb(void);\nvoid* zlantb_(void);\nvoid* zlantp(void);\nvoid* zlantp_(void);\nvoid* zlantr(void);\nvoid* zlantr_(void);\nvoid* zlapll(void);\nvoid* zlapll_(void);\nvoid* zlapmt(void);\nvoid* zlapmt_(void);\nvoid* zlaqgb(void);\nvoid* zlaqgb_(void);\nvoid* zlaqge(void);\nvoid* zlaqge_(void);\nvoid* zlaqhb(void);\nvoid* zlaqhb_(void);\nvoid* zlaqhe(void);\nvoid* zlaqhe_(void);\nvoid* zlaqhp(void);\nvoid* zlaqhp_(void);\nvoid* zlaqp2(void);\nvoid* zlaqp2_(void);\nvoid* zlaqps(void);\nvoid* zlaqps_(void);\nvoid* zlaqr0(void);\nvoid* zlaqr0_(void);\nvoid* zlaqr1(void);\nvoid* zlaqr1_(void);\nvoid* zlaqr2(void);\nvoid* zlaqr2_(void);\nvoid* zlaqr3(void);\nvoid* zlaqr3_(void);\nvoid* zlaqr4(void);\nvoid* zlaqr4_(void);\nvoid* zlaqr5(void);\nvoid* zlaqr5_(void);\nvoid* zlaqsb(void);\nvoid* zlaqsb_(void);\nvoid* zlaqsp(void);\nvoid* zlaqsp_(void);\nvoid* zlaqsy(void);\nvoid* zlaqsy_(void);\nvoid* zlar1v(void);\nvoid* zlar1v_(void);\nvoid* zlar2v(void);\nvoid* zlar2v_(void);\nvoid* zlarcm(void);\nvoid* zlarcm_(void);\nvoid* zlarf(void);\nvoid* zlarf_(void);\nvoid* zlarfb(void);\nvoid* zlarfb_(void);\nvoid* zlarfg(void);\nvoid* zlarfg_(void);\nvoid* zlarfp(void);\nvoid* zlarfp_(void);\nvoid* zlarft(void);\nvoid* zlarft_(void);\nvoid* zlarfx(void);\nvoid* zlarfx_(void);\nvoid* zlargv(void);\nvoid* zlargv_(void);\nvoid* zlarnv(void);\nvoid* zlarnv_(void);\nvoid* zlarrv(void);\nvoid* zlarrv_(void);\nvoid* zlarscl2(void);\nvoid* zlarscl2_(void);\nvoid* zlartg(void);\nvoid* zlartg_(void);\nvoid* zlartv(void);\nvoid* zlartv_(void);\nvoid* zlarz(void);\nvoid* zlarz_(void);\nvoid* zlarzb(void);\nvoid* zlarzb_(void);\nvoid* zlarzt(void);\nvoid* zlarzt_(void);\nvoid* zlascl(void);\nvoid* zlascl2(void);\nvoid* zlascl2_(void);\nvoid* zlascl_(void);\nvoid* zlaset(void);\nvoid* zlaset_(void);\nvoid* zlasr(void);\nvoid* zlasr_(void);\nvoid* zlassq(void);\nvoid* zlassq_(void);\nvoid* zlaswp(void);\nvoid* zlaswp_(void);\nvoid* zlasyf(void);\nvoid* zlasyf_(void);\nvoid* zlat2c(void);\nvoid* zlat2c_(void);\nvoid* zlatbs(void);\nvoid* zlatbs_(void);\nvoid* zlatdf(void);\nvoid* zlatdf_(void);\nvoid* zlatps(void);\nvoid* zlatps_(void);\nvoid* zlatrd(void);\nvoid* zlatrd_(void);\nvoid* zlatrs(void);\nvoid* zlatrs_(void);\nvoid* zlatrz(void);\nvoid* zlatrz_(void);\nvoid* zlatzm(void);\nvoid* zlatzm_(void);\nvoid* zlauu2(void);\nvoid* zlauu2_(void);\nvoid* zlauum(void);\nvoid* zlauum_(void);\nvoid* zpbcon(void);\nvoid* zpbcon_(void);\nvoid* zpbequ(void);\nvoid* zpbequ_(void);\nvoid* zpbrfs(void);\nvoid* zpbrfs_(void);\nvoid* zpbstf(void);\nvoid* zpbstf_(void);\nvoid* zpbsv(void);\nvoid* zpbsv_(void);\nvoid* zpbsvx(void);\nvoid* zpbsvx_(void);\nvoid* zpbtf2(void);\nvoid* zpbtf2_(void);\nvoid* zpbtrf(void);\nvoid* zpbtrf_(void);\nvoid* zpbtrs(void);\nvoid* zpbtrs_(void);\nvoid* zpftrf(void);\nvoid* zpftrf_(void);\nvoid* zpftri(void);\nvoid* zpftri_(void);\nvoid* zpftrs(void);\nvoid* zpftrs_(void);\nvoid* zpocon(void);\nvoid* zpocon_(void);\nvoid* zpoequ(void);\nvoid* zpoequ_(void);\nvoid* zpoequb(void);\nvoid* zpoequb_(void);\nvoid* zporfs(void);\nvoid* zporfs_(void);\nvoid* zposv(void);\nvoid* zposv_(void);\nvoid* zposvx(void);\nvoid* zposvx_(void);\nvoid* zpotf2(void);\nvoid* zpotf2_(void);\nvoid* zpotrf(void);\nvoid* zpotrf_(void);\nvoid* zpotri(void);\nvoid* zpotri_(void);\nvoid* zpotrs(void);\nvoid* zpotrs_(void);\nvoid* zppcon(void);\nvoid* zppcon_(void);\nvoid* zppequ(void);\nvoid* zppequ_(void);\nvoid* zpprfs(void);\nvoid* zpprfs_(void);\nvoid* zppsv(void);\nvoid* zppsv_(void);\nvoid* zppsvx(void);\nvoid* zppsvx_(void);\nvoid* zpptrf(void);\nvoid* zpptrf_(void);\nvoid* zpptri(void);\nvoid* zpptri_(void);\nvoid* zpptrs(void);\nvoid* zpptrs_(void);\nvoid* zpstf2(void);\nvoid* zpstf2_(void);\nvoid* zpstrf(void);\nvoid* zpstrf_(void);\nvoid* zptcon(void);\nvoid* zptcon_(void);\nvoid* zpteqr(void);\nvoid* zpteqr_(void);\nvoid* zptrfs(void);\nvoid* zptrfs_(void);\nvoid* zptsv(void);\nvoid* zptsv_(void);\nvoid* zptsvx(void);\nvoid* zptsvx_(void);\nvoid* zpttrf(void);\nvoid* zpttrf_(void);\nvoid* zpttrs(void);\nvoid* zpttrs_(void);\nvoid* zptts2(void);\nvoid* zptts2_(void);\nvoid* zrot(void);\nvoid* zrot_(void);\nvoid* zspcon(void);\nvoid* zspcon_(void);\nvoid* zspmv(void);\nvoid* zspmv_(void);\nvoid* zspr(void);\nvoid* zspr_(void);\nvoid* zsprfs(void);\nvoid* zsprfs_(void);\nvoid* zspsv(void);\nvoid* zspsv_(void);\nvoid* zspsvx(void);\nvoid* zspsvx_(void);\nvoid* zsptrf(void);\nvoid* zsptrf_(void);\nvoid* zsptri(void);\nvoid* zsptri_(void);\nvoid* zsptrs(void);\nvoid* zsptrs_(void);\nvoid* zstedc(void);\nvoid* zstedc_(void);\nvoid* zstegr(void);\nvoid* zstegr_(void);\nvoid* zstein(void);\nvoid* zstein_(void);\nvoid* zstemr(void);\nvoid* zstemr_(void);\nvoid* zsteqr(void);\nvoid* zsteqr_(void);\nvoid* zsycon(void);\nvoid* zsycon_(void);\nvoid* zsyequb(void);\nvoid* zsyequb_(void);\nvoid* zsymv(void);\nvoid* zsymv_(void);\nvoid* zsyr(void);\nvoid* zsyr_(void);\nvoid* zsyrfs(void);\nvoid* zsyrfs_(void);\nvoid* zsysv(void);\nvoid* zsysv_(void);\nvoid* zsysvx(void);\nvoid* zsysvx_(void);\nvoid* zsytf2(void);\nvoid* zsytf2_(void);\nvoid* zsytrf(void);\nvoid* zsytrf_(void);\nvoid* zsytri(void);\nvoid* zsytri_(void);\nvoid* zsytrs(void);\nvoid* zsytrs_(void);\nvoid* ztbcon(void);\nvoid* ztbcon_(void);\nvoid* ztbrfs(void);\nvoid* ztbrfs_(void);\nvoid* ztbtrs(void);\nvoid* ztbtrs_(void);\nvoid* ztfsm(void);\nvoid* ztfsm_(void);\nvoid* ztftri(void);\nvoid* ztftri_(void);\nvoid* ztfttp(void);\nvoid* ztfttp_(void);\nvoid* ztfttr(void);\nvoid* ztfttr_(void);\nvoid* ztgevc(void);\nvoid* ztgevc_(void);\nvoid* ztgex2(void);\nvoid* ztgex2_(void);\nvoid* ztgexc(void);\nvoid* ztgexc_(void);\nvoid* ztgsen(void);\nvoid* ztgsen_(void);\nvoid* ztgsja(void);\nvoid* ztgsja_(void);\nvoid* ztgsna(void);\nvoid* ztgsna_(void);\nvoid* ztgsy2(void);\nvoid* ztgsy2_(void);\nvoid* ztgsyl(void);\nvoid* ztgsyl_(void);\nvoid* ztpcon(void);\nvoid* ztpcon_(void);\nvoid* ztprfs(void);\nvoid* ztprfs_(void);\nvoid* ztptri(void);\nvoid* ztptri_(void);\nvoid* ztptrs(void);\nvoid* ztptrs_(void);\nvoid* ztpttf(void);\nvoid* ztpttf_(void);\nvoid* ztpttr(void);\nvoid* ztpttr_(void);\nvoid* ztrcon(void);\nvoid* ztrcon_(void);\nvoid* ztrevc(void);\nvoid* ztrevc_(void);\nvoid* ztrexc(void);\nvoid* ztrexc_(void);\nvoid* ztrrfs(void);\nvoid* ztrrfs_(void);\nvoid* ztrsen(void);\nvoid* ztrsen_(void);\nvoid* ztrsna(void);\nvoid* ztrsna_(void);\nvoid* ztrsyl(void);\nvoid* ztrsyl_(void);\nvoid* ztrti2(void);\nvoid* ztrti2_(void);\nvoid* ztrtri(void);\nvoid* ztrtri_(void);\nvoid* ztrtrs(void);\nvoid* ztrtrs_(void);\nvoid* ztrttf(void);\nvoid* ztrttf_(void);\nvoid* ztrttp(void);\nvoid* ztrttp_(void);\nvoid* ztzrqf(void);\nvoid* ztzrqf_(void);\nvoid* ztzrzf(void);\nvoid* ztzrzf_(void);\nvoid* zung2l(void);\nvoid* zung2l_(void);\nvoid* zung2r(void);\nvoid* zung2r_(void);\nvoid* zungbr(void);\nvoid* zungbr_(void);\nvoid* zunghr(void);\nvoid* zunghr_(void);\nvoid* zungl2(void);\nvoid* zungl2_(void);\nvoid* zunglq(void);\nvoid* zunglq_(void);\nvoid* zungql(void);\nvoid* zungql_(void);\nvoid* zungqr(void);\nvoid* zungqr_(void);\nvoid* zungr2(void);\nvoid* zungr2_(void);\nvoid* zungrq(void);\nvoid* zungrq_(void);\nvoid* zungtr(void);\nvoid* zungtr_(void);\nvoid* zunm2l(void);\nvoid* zunm2l_(void);\nvoid* zunm2r(void);\nvoid* zunm2r_(void);\nvoid* zunmbr(void);\nvoid* zunmbr_(void);\nvoid* zunmhr(void);\nvoid* zunmhr_(void);\nvoid* zunml2(void);\nvoid* zunml2_(void);\nvoid* zunmlq(void);\nvoid* zunmlq_(void);\nvoid* zunmql(void);\nvoid* zunmql_(void);\nvoid* zunmqr(void);\nvoid* zunmqr_(void);\nvoid* zunmr2(void);\nvoid* zunmr2_(void);\nvoid* zunmr3(void);\nvoid* zunmr3_(void);\nvoid* zunmrq(void);\nvoid* zunmrq_(void);\nvoid* zunmrz(void);\nvoid* zunmrz_(void);\nvoid* zunmtr(void);\nvoid* zunmtr_(void);\nvoid* zupgtr(void);\nvoid* zupgtr_(void);\nvoid* zupmtr(void);\nvoid* zupmtr_(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/LAPACK/src/LAPACK.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <LAPACK/LAPACK.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* CBDSQR(void)\n{\n    if (verbose) puts(\"STUB: CBDSQR called\");\n    return NULL;\n}\n\nvoid* CBDSQR_(void)\n{\n    if (verbose) puts(\"STUB: CBDSQR_ called\");\n    return NULL;\n}\n\nvoid* CGBBRD(void)\n{\n    if (verbose) puts(\"STUB: CGBBRD called\");\n    return NULL;\n}\n\nvoid* CGBBRD_(void)\n{\n    if (verbose) puts(\"STUB: CGBBRD_ called\");\n    return NULL;\n}\n\nvoid* CGBCON(void)\n{\n    if (verbose) puts(\"STUB: CGBCON called\");\n    return NULL;\n}\n\nvoid* CGBCON_(void)\n{\n    if (verbose) puts(\"STUB: CGBCON_ called\");\n    return NULL;\n}\n\nvoid* CGBEQU(void)\n{\n    if (verbose) puts(\"STUB: CGBEQU called\");\n    return NULL;\n}\n\nvoid* CGBEQUB(void)\n{\n    if (verbose) puts(\"STUB: CGBEQUB called\");\n    return NULL;\n}\n\nvoid* CGBEQUB_(void)\n{\n    if (verbose) puts(\"STUB: CGBEQUB_ called\");\n    return NULL;\n}\n\nvoid* CGBEQU_(void)\n{\n    if (verbose) puts(\"STUB: CGBEQU_ called\");\n    return NULL;\n}\n\nvoid* CGBRFS(void)\n{\n    if (verbose) puts(\"STUB: CGBRFS called\");\n    return NULL;\n}\n\nvoid* CGBRFS_(void)\n{\n    if (verbose) puts(\"STUB: CGBRFS_ called\");\n    return NULL;\n}\n\nvoid* CGBSV(void)\n{\n    if (verbose) puts(\"STUB: CGBSV called\");\n    return NULL;\n}\n\nvoid* CGBSVX(void)\n{\n    if (verbose) puts(\"STUB: CGBSVX called\");\n    return NULL;\n}\n\nvoid* CGBSVX_(void)\n{\n    if (verbose) puts(\"STUB: CGBSVX_ called\");\n    return NULL;\n}\n\nvoid* CGBSV_(void)\n{\n    if (verbose) puts(\"STUB: CGBSV_ called\");\n    return NULL;\n}\n\nvoid* CGBTF2(void)\n{\n    if (verbose) puts(\"STUB: CGBTF2 called\");\n    return NULL;\n}\n\nvoid* CGBTF2_(void)\n{\n    if (verbose) puts(\"STUB: CGBTF2_ called\");\n    return NULL;\n}\n\nvoid* CGBTRF(void)\n{\n    if (verbose) puts(\"STUB: CGBTRF called\");\n    return NULL;\n}\n\nvoid* CGBTRF_(void)\n{\n    if (verbose) puts(\"STUB: CGBTRF_ called\");\n    return NULL;\n}\n\nvoid* CGBTRS(void)\n{\n    if (verbose) puts(\"STUB: CGBTRS called\");\n    return NULL;\n}\n\nvoid* CGBTRS_(void)\n{\n    if (verbose) puts(\"STUB: CGBTRS_ called\");\n    return NULL;\n}\n\nvoid* CGEBAK(void)\n{\n    if (verbose) puts(\"STUB: CGEBAK called\");\n    return NULL;\n}\n\nvoid* CGEBAK_(void)\n{\n    if (verbose) puts(\"STUB: CGEBAK_ called\");\n    return NULL;\n}\n\nvoid* CGEBAL(void)\n{\n    if (verbose) puts(\"STUB: CGEBAL called\");\n    return NULL;\n}\n\nvoid* CGEBAL_(void)\n{\n    if (verbose) puts(\"STUB: CGEBAL_ called\");\n    return NULL;\n}\n\nvoid* CGEBD2(void)\n{\n    if (verbose) puts(\"STUB: CGEBD2 called\");\n    return NULL;\n}\n\nvoid* CGEBD2_(void)\n{\n    if (verbose) puts(\"STUB: CGEBD2_ called\");\n    return NULL;\n}\n\nvoid* CGEBRD(void)\n{\n    if (verbose) puts(\"STUB: CGEBRD called\");\n    return NULL;\n}\n\nvoid* CGEBRD_(void)\n{\n    if (verbose) puts(\"STUB: CGEBRD_ called\");\n    return NULL;\n}\n\nvoid* CGECON(void)\n{\n    if (verbose) puts(\"STUB: CGECON called\");\n    return NULL;\n}\n\nvoid* CGECON_(void)\n{\n    if (verbose) puts(\"STUB: CGECON_ called\");\n    return NULL;\n}\n\nvoid* CGEEQU(void)\n{\n    if (verbose) puts(\"STUB: CGEEQU called\");\n    return NULL;\n}\n\nvoid* CGEEQUB(void)\n{\n    if (verbose) puts(\"STUB: CGEEQUB called\");\n    return NULL;\n}\n\nvoid* CGEEQUB_(void)\n{\n    if (verbose) puts(\"STUB: CGEEQUB_ called\");\n    return NULL;\n}\n\nvoid* CGEEQU_(void)\n{\n    if (verbose) puts(\"STUB: CGEEQU_ called\");\n    return NULL;\n}\n\nvoid* CGEES(void)\n{\n    if (verbose) puts(\"STUB: CGEES called\");\n    return NULL;\n}\n\nvoid* CGEESX(void)\n{\n    if (verbose) puts(\"STUB: CGEESX called\");\n    return NULL;\n}\n\nvoid* CGEESX_(void)\n{\n    if (verbose) puts(\"STUB: CGEESX_ called\");\n    return NULL;\n}\n\nvoid* CGEES_(void)\n{\n    if (verbose) puts(\"STUB: CGEES_ called\");\n    return NULL;\n}\n\nvoid* CGEEV(void)\n{\n    if (verbose) puts(\"STUB: CGEEV called\");\n    return NULL;\n}\n\nvoid* CGEEVX(void)\n{\n    if (verbose) puts(\"STUB: CGEEVX called\");\n    return NULL;\n}\n\nvoid* CGEEVX_(void)\n{\n    if (verbose) puts(\"STUB: CGEEVX_ called\");\n    return NULL;\n}\n\nvoid* CGEEV_(void)\n{\n    if (verbose) puts(\"STUB: CGEEV_ called\");\n    return NULL;\n}\n\nvoid* CGEGS(void)\n{\n    if (verbose) puts(\"STUB: CGEGS called\");\n    return NULL;\n}\n\nvoid* CGEGS_(void)\n{\n    if (verbose) puts(\"STUB: CGEGS_ called\");\n    return NULL;\n}\n\nvoid* CGEGV(void)\n{\n    if (verbose) puts(\"STUB: CGEGV called\");\n    return NULL;\n}\n\nvoid* CGEGV_(void)\n{\n    if (verbose) puts(\"STUB: CGEGV_ called\");\n    return NULL;\n}\n\nvoid* CGEHD2(void)\n{\n    if (verbose) puts(\"STUB: CGEHD2 called\");\n    return NULL;\n}\n\nvoid* CGEHD2_(void)\n{\n    if (verbose) puts(\"STUB: CGEHD2_ called\");\n    return NULL;\n}\n\nvoid* CGEHRD(void)\n{\n    if (verbose) puts(\"STUB: CGEHRD called\");\n    return NULL;\n}\n\nvoid* CGEHRD_(void)\n{\n    if (verbose) puts(\"STUB: CGEHRD_ called\");\n    return NULL;\n}\n\nvoid* CGELQ2(void)\n{\n    if (verbose) puts(\"STUB: CGELQ2 called\");\n    return NULL;\n}\n\nvoid* CGELQ2_(void)\n{\n    if (verbose) puts(\"STUB: CGELQ2_ called\");\n    return NULL;\n}\n\nvoid* CGELQF(void)\n{\n    if (verbose) puts(\"STUB: CGELQF called\");\n    return NULL;\n}\n\nvoid* CGELQF_(void)\n{\n    if (verbose) puts(\"STUB: CGELQF_ called\");\n    return NULL;\n}\n\nvoid* CGELS(void)\n{\n    if (verbose) puts(\"STUB: CGELS called\");\n    return NULL;\n}\n\nvoid* CGELSD(void)\n{\n    if (verbose) puts(\"STUB: CGELSD called\");\n    return NULL;\n}\n\nvoid* CGELSD_(void)\n{\n    if (verbose) puts(\"STUB: CGELSD_ called\");\n    return NULL;\n}\n\nvoid* CGELSS(void)\n{\n    if (verbose) puts(\"STUB: CGELSS called\");\n    return NULL;\n}\n\nvoid* CGELSS_(void)\n{\n    if (verbose) puts(\"STUB: CGELSS_ called\");\n    return NULL;\n}\n\nvoid* CGELSX(void)\n{\n    if (verbose) puts(\"STUB: CGELSX called\");\n    return NULL;\n}\n\nvoid* CGELSX_(void)\n{\n    if (verbose) puts(\"STUB: CGELSX_ called\");\n    return NULL;\n}\n\nvoid* CGELSY(void)\n{\n    if (verbose) puts(\"STUB: CGELSY called\");\n    return NULL;\n}\n\nvoid* CGELSY_(void)\n{\n    if (verbose) puts(\"STUB: CGELSY_ called\");\n    return NULL;\n}\n\nvoid* CGELS_(void)\n{\n    if (verbose) puts(\"STUB: CGELS_ called\");\n    return NULL;\n}\n\nvoid* CGEQL2(void)\n{\n    if (verbose) puts(\"STUB: CGEQL2 called\");\n    return NULL;\n}\n\nvoid* CGEQL2_(void)\n{\n    if (verbose) puts(\"STUB: CGEQL2_ called\");\n    return NULL;\n}\n\nvoid* CGEQLF(void)\n{\n    if (verbose) puts(\"STUB: CGEQLF called\");\n    return NULL;\n}\n\nvoid* CGEQLF_(void)\n{\n    if (verbose) puts(\"STUB: CGEQLF_ called\");\n    return NULL;\n}\n\nvoid* CGEQP3(void)\n{\n    if (verbose) puts(\"STUB: CGEQP3 called\");\n    return NULL;\n}\n\nvoid* CGEQP3_(void)\n{\n    if (verbose) puts(\"STUB: CGEQP3_ called\");\n    return NULL;\n}\n\nvoid* CGEQPF(void)\n{\n    if (verbose) puts(\"STUB: CGEQPF called\");\n    return NULL;\n}\n\nvoid* CGEQPF_(void)\n{\n    if (verbose) puts(\"STUB: CGEQPF_ called\");\n    return NULL;\n}\n\nvoid* CGEQR2(void)\n{\n    if (verbose) puts(\"STUB: CGEQR2 called\");\n    return NULL;\n}\n\nvoid* CGEQR2_(void)\n{\n    if (verbose) puts(\"STUB: CGEQR2_ called\");\n    return NULL;\n}\n\nvoid* CGEQRF(void)\n{\n    if (verbose) puts(\"STUB: CGEQRF called\");\n    return NULL;\n}\n\nvoid* CGEQRF_(void)\n{\n    if (verbose) puts(\"STUB: CGEQRF_ called\");\n    return NULL;\n}\n\nvoid* CGERFS(void)\n{\n    if (verbose) puts(\"STUB: CGERFS called\");\n    return NULL;\n}\n\nvoid* CGERFS_(void)\n{\n    if (verbose) puts(\"STUB: CGERFS_ called\");\n    return NULL;\n}\n\nvoid* CGERQ2(void)\n{\n    if (verbose) puts(\"STUB: CGERQ2 called\");\n    return NULL;\n}\n\nvoid* CGERQ2_(void)\n{\n    if (verbose) puts(\"STUB: CGERQ2_ called\");\n    return NULL;\n}\n\nvoid* CGERQF(void)\n{\n    if (verbose) puts(\"STUB: CGERQF called\");\n    return NULL;\n}\n\nvoid* CGERQF_(void)\n{\n    if (verbose) puts(\"STUB: CGERQF_ called\");\n    return NULL;\n}\n\nvoid* CGESC2(void)\n{\n    if (verbose) puts(\"STUB: CGESC2 called\");\n    return NULL;\n}\n\nvoid* CGESC2_(void)\n{\n    if (verbose) puts(\"STUB: CGESC2_ called\");\n    return NULL;\n}\n\nvoid* CGESDD(void)\n{\n    if (verbose) puts(\"STUB: CGESDD called\");\n    return NULL;\n}\n\nvoid* CGESDD_(void)\n{\n    if (verbose) puts(\"STUB: CGESDD_ called\");\n    return NULL;\n}\n\nvoid* CGESV(void)\n{\n    if (verbose) puts(\"STUB: CGESV called\");\n    return NULL;\n}\n\nvoid* CGESVD(void)\n{\n    if (verbose) puts(\"STUB: CGESVD called\");\n    return NULL;\n}\n\nvoid* CGESVD_(void)\n{\n    if (verbose) puts(\"STUB: CGESVD_ called\");\n    return NULL;\n}\n\nvoid* CGESVX(void)\n{\n    if (verbose) puts(\"STUB: CGESVX called\");\n    return NULL;\n}\n\nvoid* CGESVX_(void)\n{\n    if (verbose) puts(\"STUB: CGESVX_ called\");\n    return NULL;\n}\n\nvoid* CGESV_(void)\n{\n    if (verbose) puts(\"STUB: CGESV_ called\");\n    return NULL;\n}\n\nvoid* CGETC2(void)\n{\n    if (verbose) puts(\"STUB: CGETC2 called\");\n    return NULL;\n}\n\nvoid* CGETC2_(void)\n{\n    if (verbose) puts(\"STUB: CGETC2_ called\");\n    return NULL;\n}\n\nvoid* CGETF2(void)\n{\n    if (verbose) puts(\"STUB: CGETF2 called\");\n    return NULL;\n}\n\nvoid* CGETF2_(void)\n{\n    if (verbose) puts(\"STUB: CGETF2_ called\");\n    return NULL;\n}\n\nvoid* CGETRF(void)\n{\n    if (verbose) puts(\"STUB: CGETRF called\");\n    return NULL;\n}\n\nvoid* CGETRF_(void)\n{\n    if (verbose) puts(\"STUB: CGETRF_ called\");\n    return NULL;\n}\n\nvoid* CGETRI(void)\n{\n    if (verbose) puts(\"STUB: CGETRI called\");\n    return NULL;\n}\n\nvoid* CGETRI_(void)\n{\n    if (verbose) puts(\"STUB: CGETRI_ called\");\n    return NULL;\n}\n\nvoid* CGETRS(void)\n{\n    if (verbose) puts(\"STUB: CGETRS called\");\n    return NULL;\n}\n\nvoid* CGETRS_(void)\n{\n    if (verbose) puts(\"STUB: CGETRS_ called\");\n    return NULL;\n}\n\nvoid* CGGBAK(void)\n{\n    if (verbose) puts(\"STUB: CGGBAK called\");\n    return NULL;\n}\n\nvoid* CGGBAK_(void)\n{\n    if (verbose) puts(\"STUB: CGGBAK_ called\");\n    return NULL;\n}\n\nvoid* CGGBAL(void)\n{\n    if (verbose) puts(\"STUB: CGGBAL called\");\n    return NULL;\n}\n\nvoid* CGGBAL_(void)\n{\n    if (verbose) puts(\"STUB: CGGBAL_ called\");\n    return NULL;\n}\n\nvoid* CGGES(void)\n{\n    if (verbose) puts(\"STUB: CGGES called\");\n    return NULL;\n}\n\nvoid* CGGESX(void)\n{\n    if (verbose) puts(\"STUB: CGGESX called\");\n    return NULL;\n}\n\nvoid* CGGESX_(void)\n{\n    if (verbose) puts(\"STUB: CGGESX_ called\");\n    return NULL;\n}\n\nvoid* CGGES_(void)\n{\n    if (verbose) puts(\"STUB: CGGES_ called\");\n    return NULL;\n}\n\nvoid* CGGEV(void)\n{\n    if (verbose) puts(\"STUB: CGGEV called\");\n    return NULL;\n}\n\nvoid* CGGEVX(void)\n{\n    if (verbose) puts(\"STUB: CGGEVX called\");\n    return NULL;\n}\n\nvoid* CGGEVX_(void)\n{\n    if (verbose) puts(\"STUB: CGGEVX_ called\");\n    return NULL;\n}\n\nvoid* CGGEV_(void)\n{\n    if (verbose) puts(\"STUB: CGGEV_ called\");\n    return NULL;\n}\n\nvoid* CGGGLM(void)\n{\n    if (verbose) puts(\"STUB: CGGGLM called\");\n    return NULL;\n}\n\nvoid* CGGGLM_(void)\n{\n    if (verbose) puts(\"STUB: CGGGLM_ called\");\n    return NULL;\n}\n\nvoid* CGGHRD(void)\n{\n    if (verbose) puts(\"STUB: CGGHRD called\");\n    return NULL;\n}\n\nvoid* CGGHRD_(void)\n{\n    if (verbose) puts(\"STUB: CGGHRD_ called\");\n    return NULL;\n}\n\nvoid* CGGLSE(void)\n{\n    if (verbose) puts(\"STUB: CGGLSE called\");\n    return NULL;\n}\n\nvoid* CGGLSE_(void)\n{\n    if (verbose) puts(\"STUB: CGGLSE_ called\");\n    return NULL;\n}\n\nvoid* CGGQRF(void)\n{\n    if (verbose) puts(\"STUB: CGGQRF called\");\n    return NULL;\n}\n\nvoid* CGGQRF_(void)\n{\n    if (verbose) puts(\"STUB: CGGQRF_ called\");\n    return NULL;\n}\n\nvoid* CGGRQF(void)\n{\n    if (verbose) puts(\"STUB: CGGRQF called\");\n    return NULL;\n}\n\nvoid* CGGRQF_(void)\n{\n    if (verbose) puts(\"STUB: CGGRQF_ called\");\n    return NULL;\n}\n\nvoid* CGGSVD(void)\n{\n    if (verbose) puts(\"STUB: CGGSVD called\");\n    return NULL;\n}\n\nvoid* CGGSVD_(void)\n{\n    if (verbose) puts(\"STUB: CGGSVD_ called\");\n    return NULL;\n}\n\nvoid* CGGSVP(void)\n{\n    if (verbose) puts(\"STUB: CGGSVP called\");\n    return NULL;\n}\n\nvoid* CGGSVP_(void)\n{\n    if (verbose) puts(\"STUB: CGGSVP_ called\");\n    return NULL;\n}\n\nvoid* CGTCON(void)\n{\n    if (verbose) puts(\"STUB: CGTCON called\");\n    return NULL;\n}\n\nvoid* CGTCON_(void)\n{\n    if (verbose) puts(\"STUB: CGTCON_ called\");\n    return NULL;\n}\n\nvoid* CGTRFS(void)\n{\n    if (verbose) puts(\"STUB: CGTRFS called\");\n    return NULL;\n}\n\nvoid* CGTRFS_(void)\n{\n    if (verbose) puts(\"STUB: CGTRFS_ called\");\n    return NULL;\n}\n\nvoid* CGTSV(void)\n{\n    if (verbose) puts(\"STUB: CGTSV called\");\n    return NULL;\n}\n\nvoid* CGTSVX(void)\n{\n    if (verbose) puts(\"STUB: CGTSVX called\");\n    return NULL;\n}\n\nvoid* CGTSVX_(void)\n{\n    if (verbose) puts(\"STUB: CGTSVX_ called\");\n    return NULL;\n}\n\nvoid* CGTSV_(void)\n{\n    if (verbose) puts(\"STUB: CGTSV_ called\");\n    return NULL;\n}\n\nvoid* CGTTRF(void)\n{\n    if (verbose) puts(\"STUB: CGTTRF called\");\n    return NULL;\n}\n\nvoid* CGTTRF_(void)\n{\n    if (verbose) puts(\"STUB: CGTTRF_ called\");\n    return NULL;\n}\n\nvoid* CGTTRS(void)\n{\n    if (verbose) puts(\"STUB: CGTTRS called\");\n    return NULL;\n}\n\nvoid* CGTTRS_(void)\n{\n    if (verbose) puts(\"STUB: CGTTRS_ called\");\n    return NULL;\n}\n\nvoid* CGTTS2(void)\n{\n    if (verbose) puts(\"STUB: CGTTS2 called\");\n    return NULL;\n}\n\nvoid* CGTTS2_(void)\n{\n    if (verbose) puts(\"STUB: CGTTS2_ called\");\n    return NULL;\n}\n\nvoid* CHBEV(void)\n{\n    if (verbose) puts(\"STUB: CHBEV called\");\n    return NULL;\n}\n\nvoid* CHBEVD(void)\n{\n    if (verbose) puts(\"STUB: CHBEVD called\");\n    return NULL;\n}\n\nvoid* CHBEVD_(void)\n{\n    if (verbose) puts(\"STUB: CHBEVD_ called\");\n    return NULL;\n}\n\nvoid* CHBEVX(void)\n{\n    if (verbose) puts(\"STUB: CHBEVX called\");\n    return NULL;\n}\n\nvoid* CHBEVX_(void)\n{\n    if (verbose) puts(\"STUB: CHBEVX_ called\");\n    return NULL;\n}\n\nvoid* CHBEV_(void)\n{\n    if (verbose) puts(\"STUB: CHBEV_ called\");\n    return NULL;\n}\n\nvoid* CHBGST(void)\n{\n    if (verbose) puts(\"STUB: CHBGST called\");\n    return NULL;\n}\n\nvoid* CHBGST_(void)\n{\n    if (verbose) puts(\"STUB: CHBGST_ called\");\n    return NULL;\n}\n\nvoid* CHBGV(void)\n{\n    if (verbose) puts(\"STUB: CHBGV called\");\n    return NULL;\n}\n\nvoid* CHBGVD(void)\n{\n    if (verbose) puts(\"STUB: CHBGVD called\");\n    return NULL;\n}\n\nvoid* CHBGVD_(void)\n{\n    if (verbose) puts(\"STUB: CHBGVD_ called\");\n    return NULL;\n}\n\nvoid* CHBGVX(void)\n{\n    if (verbose) puts(\"STUB: CHBGVX called\");\n    return NULL;\n}\n\nvoid* CHBGVX_(void)\n{\n    if (verbose) puts(\"STUB: CHBGVX_ called\");\n    return NULL;\n}\n\nvoid* CHBGV_(void)\n{\n    if (verbose) puts(\"STUB: CHBGV_ called\");\n    return NULL;\n}\n\nvoid* CHBTRD(void)\n{\n    if (verbose) puts(\"STUB: CHBTRD called\");\n    return NULL;\n}\n\nvoid* CHBTRD_(void)\n{\n    if (verbose) puts(\"STUB: CHBTRD_ called\");\n    return NULL;\n}\n\nvoid* CHECON(void)\n{\n    if (verbose) puts(\"STUB: CHECON called\");\n    return NULL;\n}\n\nvoid* CHECON_(void)\n{\n    if (verbose) puts(\"STUB: CHECON_ called\");\n    return NULL;\n}\n\nvoid* CHEEQUB(void)\n{\n    if (verbose) puts(\"STUB: CHEEQUB called\");\n    return NULL;\n}\n\nvoid* CHEEQUB_(void)\n{\n    if (verbose) puts(\"STUB: CHEEQUB_ called\");\n    return NULL;\n}\n\nvoid* CHEEV(void)\n{\n    if (verbose) puts(\"STUB: CHEEV called\");\n    return NULL;\n}\n\nvoid* CHEEVD(void)\n{\n    if (verbose) puts(\"STUB: CHEEVD called\");\n    return NULL;\n}\n\nvoid* CHEEVD_(void)\n{\n    if (verbose) puts(\"STUB: CHEEVD_ called\");\n    return NULL;\n}\n\nvoid* CHEEVR(void)\n{\n    if (verbose) puts(\"STUB: CHEEVR called\");\n    return NULL;\n}\n\nvoid* CHEEVR_(void)\n{\n    if (verbose) puts(\"STUB: CHEEVR_ called\");\n    return NULL;\n}\n\nvoid* CHEEVX(void)\n{\n    if (verbose) puts(\"STUB: CHEEVX called\");\n    return NULL;\n}\n\nvoid* CHEEVX_(void)\n{\n    if (verbose) puts(\"STUB: CHEEVX_ called\");\n    return NULL;\n}\n\nvoid* CHEEV_(void)\n{\n    if (verbose) puts(\"STUB: CHEEV_ called\");\n    return NULL;\n}\n\nvoid* CHEGS2(void)\n{\n    if (verbose) puts(\"STUB: CHEGS2 called\");\n    return NULL;\n}\n\nvoid* CHEGS2_(void)\n{\n    if (verbose) puts(\"STUB: CHEGS2_ called\");\n    return NULL;\n}\n\nvoid* CHEGST(void)\n{\n    if (verbose) puts(\"STUB: CHEGST called\");\n    return NULL;\n}\n\nvoid* CHEGST_(void)\n{\n    if (verbose) puts(\"STUB: CHEGST_ called\");\n    return NULL;\n}\n\nvoid* CHEGV(void)\n{\n    if (verbose) puts(\"STUB: CHEGV called\");\n    return NULL;\n}\n\nvoid* CHEGVD(void)\n{\n    if (verbose) puts(\"STUB: CHEGVD called\");\n    return NULL;\n}\n\nvoid* CHEGVD_(void)\n{\n    if (verbose) puts(\"STUB: CHEGVD_ called\");\n    return NULL;\n}\n\nvoid* CHEGVX(void)\n{\n    if (verbose) puts(\"STUB: CHEGVX called\");\n    return NULL;\n}\n\nvoid* CHEGVX_(void)\n{\n    if (verbose) puts(\"STUB: CHEGVX_ called\");\n    return NULL;\n}\n\nvoid* CHEGV_(void)\n{\n    if (verbose) puts(\"STUB: CHEGV_ called\");\n    return NULL;\n}\n\nvoid* CHERFS(void)\n{\n    if (verbose) puts(\"STUB: CHERFS called\");\n    return NULL;\n}\n\nvoid* CHERFS_(void)\n{\n    if (verbose) puts(\"STUB: CHERFS_ called\");\n    return NULL;\n}\n\nvoid* CHESV(void)\n{\n    if (verbose) puts(\"STUB: CHESV called\");\n    return NULL;\n}\n\nvoid* CHESVX(void)\n{\n    if (verbose) puts(\"STUB: CHESVX called\");\n    return NULL;\n}\n\nvoid* CHESVX_(void)\n{\n    if (verbose) puts(\"STUB: CHESVX_ called\");\n    return NULL;\n}\n\nvoid* CHESV_(void)\n{\n    if (verbose) puts(\"STUB: CHESV_ called\");\n    return NULL;\n}\n\nvoid* CHETD2(void)\n{\n    if (verbose) puts(\"STUB: CHETD2 called\");\n    return NULL;\n}\n\nvoid* CHETD2_(void)\n{\n    if (verbose) puts(\"STUB: CHETD2_ called\");\n    return NULL;\n}\n\nvoid* CHETF2(void)\n{\n    if (verbose) puts(\"STUB: CHETF2 called\");\n    return NULL;\n}\n\nvoid* CHETF2_(void)\n{\n    if (verbose) puts(\"STUB: CHETF2_ called\");\n    return NULL;\n}\n\nvoid* CHETRD(void)\n{\n    if (verbose) puts(\"STUB: CHETRD called\");\n    return NULL;\n}\n\nvoid* CHETRD_(void)\n{\n    if (verbose) puts(\"STUB: CHETRD_ called\");\n    return NULL;\n}\n\nvoid* CHETRF(void)\n{\n    if (verbose) puts(\"STUB: CHETRF called\");\n    return NULL;\n}\n\nvoid* CHETRF_(void)\n{\n    if (verbose) puts(\"STUB: CHETRF_ called\");\n    return NULL;\n}\n\nvoid* CHETRI(void)\n{\n    if (verbose) puts(\"STUB: CHETRI called\");\n    return NULL;\n}\n\nvoid* CHETRI_(void)\n{\n    if (verbose) puts(\"STUB: CHETRI_ called\");\n    return NULL;\n}\n\nvoid* CHETRS(void)\n{\n    if (verbose) puts(\"STUB: CHETRS called\");\n    return NULL;\n}\n\nvoid* CHETRS_(void)\n{\n    if (verbose) puts(\"STUB: CHETRS_ called\");\n    return NULL;\n}\n\nvoid* CHFRK(void)\n{\n    if (verbose) puts(\"STUB: CHFRK called\");\n    return NULL;\n}\n\nvoid* CHFRK_(void)\n{\n    if (verbose) puts(\"STUB: CHFRK_ called\");\n    return NULL;\n}\n\nvoid* CHGEQZ(void)\n{\n    if (verbose) puts(\"STUB: CHGEQZ called\");\n    return NULL;\n}\n\nvoid* CHGEQZ_(void)\n{\n    if (verbose) puts(\"STUB: CHGEQZ_ called\");\n    return NULL;\n}\n\nvoid* CHLA_TRANSTYPE__(void)\n{\n    if (verbose) puts(\"STUB: CHLA_TRANSTYPE__ called\");\n    return NULL;\n}\n\nvoid* CHPCON(void)\n{\n    if (verbose) puts(\"STUB: CHPCON called\");\n    return NULL;\n}\n\nvoid* CHPCON_(void)\n{\n    if (verbose) puts(\"STUB: CHPCON_ called\");\n    return NULL;\n}\n\nvoid* CHPEV(void)\n{\n    if (verbose) puts(\"STUB: CHPEV called\");\n    return NULL;\n}\n\nvoid* CHPEVD(void)\n{\n    if (verbose) puts(\"STUB: CHPEVD called\");\n    return NULL;\n}\n\nvoid* CHPEVD_(void)\n{\n    if (verbose) puts(\"STUB: CHPEVD_ called\");\n    return NULL;\n}\n\nvoid* CHPEVX(void)\n{\n    if (verbose) puts(\"STUB: CHPEVX called\");\n    return NULL;\n}\n\nvoid* CHPEVX_(void)\n{\n    if (verbose) puts(\"STUB: CHPEVX_ called\");\n    return NULL;\n}\n\nvoid* CHPEV_(void)\n{\n    if (verbose) puts(\"STUB: CHPEV_ called\");\n    return NULL;\n}\n\nvoid* CHPGST(void)\n{\n    if (verbose) puts(\"STUB: CHPGST called\");\n    return NULL;\n}\n\nvoid* CHPGST_(void)\n{\n    if (verbose) puts(\"STUB: CHPGST_ called\");\n    return NULL;\n}\n\nvoid* CHPGV(void)\n{\n    if (verbose) puts(\"STUB: CHPGV called\");\n    return NULL;\n}\n\nvoid* CHPGVD(void)\n{\n    if (verbose) puts(\"STUB: CHPGVD called\");\n    return NULL;\n}\n\nvoid* CHPGVD_(void)\n{\n    if (verbose) puts(\"STUB: CHPGVD_ called\");\n    return NULL;\n}\n\nvoid* CHPGVX(void)\n{\n    if (verbose) puts(\"STUB: CHPGVX called\");\n    return NULL;\n}\n\nvoid* CHPGVX_(void)\n{\n    if (verbose) puts(\"STUB: CHPGVX_ called\");\n    return NULL;\n}\n\nvoid* CHPGV_(void)\n{\n    if (verbose) puts(\"STUB: CHPGV_ called\");\n    return NULL;\n}\n\nvoid* CHPRFS(void)\n{\n    if (verbose) puts(\"STUB: CHPRFS called\");\n    return NULL;\n}\n\nvoid* CHPRFS_(void)\n{\n    if (verbose) puts(\"STUB: CHPRFS_ called\");\n    return NULL;\n}\n\nvoid* CHPSV(void)\n{\n    if (verbose) puts(\"STUB: CHPSV called\");\n    return NULL;\n}\n\nvoid* CHPSVX(void)\n{\n    if (verbose) puts(\"STUB: CHPSVX called\");\n    return NULL;\n}\n\nvoid* CHPSVX_(void)\n{\n    if (verbose) puts(\"STUB: CHPSVX_ called\");\n    return NULL;\n}\n\nvoid* CHPSV_(void)\n{\n    if (verbose) puts(\"STUB: CHPSV_ called\");\n    return NULL;\n}\n\nvoid* CHPTRD(void)\n{\n    if (verbose) puts(\"STUB: CHPTRD called\");\n    return NULL;\n}\n\nvoid* CHPTRD_(void)\n{\n    if (verbose) puts(\"STUB: CHPTRD_ called\");\n    return NULL;\n}\n\nvoid* CHPTRF(void)\n{\n    if (verbose) puts(\"STUB: CHPTRF called\");\n    return NULL;\n}\n\nvoid* CHPTRF_(void)\n{\n    if (verbose) puts(\"STUB: CHPTRF_ called\");\n    return NULL;\n}\n\nvoid* CHPTRI(void)\n{\n    if (verbose) puts(\"STUB: CHPTRI called\");\n    return NULL;\n}\n\nvoid* CHPTRI_(void)\n{\n    if (verbose) puts(\"STUB: CHPTRI_ called\");\n    return NULL;\n}\n\nvoid* CHPTRS(void)\n{\n    if (verbose) puts(\"STUB: CHPTRS called\");\n    return NULL;\n}\n\nvoid* CHPTRS_(void)\n{\n    if (verbose) puts(\"STUB: CHPTRS_ called\");\n    return NULL;\n}\n\nvoid* CHSEIN(void)\n{\n    if (verbose) puts(\"STUB: CHSEIN called\");\n    return NULL;\n}\n\nvoid* CHSEIN_(void)\n{\n    if (verbose) puts(\"STUB: CHSEIN_ called\");\n    return NULL;\n}\n\nvoid* CHSEQR(void)\n{\n    if (verbose) puts(\"STUB: CHSEQR called\");\n    return NULL;\n}\n\nvoid* CHSEQR_(void)\n{\n    if (verbose) puts(\"STUB: CHSEQR_ called\");\n    return NULL;\n}\n\nvoid* CLABRD(void)\n{\n    if (verbose) puts(\"STUB: CLABRD called\");\n    return NULL;\n}\n\nvoid* CLABRD_(void)\n{\n    if (verbose) puts(\"STUB: CLABRD_ called\");\n    return NULL;\n}\n\nvoid* CLACGV(void)\n{\n    if (verbose) puts(\"STUB: CLACGV called\");\n    return NULL;\n}\n\nvoid* CLACGV_(void)\n{\n    if (verbose) puts(\"STUB: CLACGV_ called\");\n    return NULL;\n}\n\nvoid* CLACN2(void)\n{\n    if (verbose) puts(\"STUB: CLACN2 called\");\n    return NULL;\n}\n\nvoid* CLACN2_(void)\n{\n    if (verbose) puts(\"STUB: CLACN2_ called\");\n    return NULL;\n}\n\nvoid* CLACON(void)\n{\n    if (verbose) puts(\"STUB: CLACON called\");\n    return NULL;\n}\n\nvoid* CLACON_(void)\n{\n    if (verbose) puts(\"STUB: CLACON_ called\");\n    return NULL;\n}\n\nvoid* CLACP2(void)\n{\n    if (verbose) puts(\"STUB: CLACP2 called\");\n    return NULL;\n}\n\nvoid* CLACP2_(void)\n{\n    if (verbose) puts(\"STUB: CLACP2_ called\");\n    return NULL;\n}\n\nvoid* CLACPY(void)\n{\n    if (verbose) puts(\"STUB: CLACPY called\");\n    return NULL;\n}\n\nvoid* CLACPY_(void)\n{\n    if (verbose) puts(\"STUB: CLACPY_ called\");\n    return NULL;\n}\n\nvoid* CLACRM(void)\n{\n    if (verbose) puts(\"STUB: CLACRM called\");\n    return NULL;\n}\n\nvoid* CLACRM_(void)\n{\n    if (verbose) puts(\"STUB: CLACRM_ called\");\n    return NULL;\n}\n\nvoid* CLACRT(void)\n{\n    if (verbose) puts(\"STUB: CLACRT called\");\n    return NULL;\n}\n\nvoid* CLACRT_(void)\n{\n    if (verbose) puts(\"STUB: CLACRT_ called\");\n    return NULL;\n}\n\nvoid* CLADIV(void)\n{\n    if (verbose) puts(\"STUB: CLADIV called\");\n    return NULL;\n}\n\nvoid* CLADIV_(void)\n{\n    if (verbose) puts(\"STUB: CLADIV_ called\");\n    return NULL;\n}\n\nvoid* CLAED0(void)\n{\n    if (verbose) puts(\"STUB: CLAED0 called\");\n    return NULL;\n}\n\nvoid* CLAED0_(void)\n{\n    if (verbose) puts(\"STUB: CLAED0_ called\");\n    return NULL;\n}\n\nvoid* CLAED7(void)\n{\n    if (verbose) puts(\"STUB: CLAED7 called\");\n    return NULL;\n}\n\nvoid* CLAED7_(void)\n{\n    if (verbose) puts(\"STUB: CLAED7_ called\");\n    return NULL;\n}\n\nvoid* CLAED8(void)\n{\n    if (verbose) puts(\"STUB: CLAED8 called\");\n    return NULL;\n}\n\nvoid* CLAED8_(void)\n{\n    if (verbose) puts(\"STUB: CLAED8_ called\");\n    return NULL;\n}\n\nvoid* CLAEIN(void)\n{\n    if (verbose) puts(\"STUB: CLAEIN called\");\n    return NULL;\n}\n\nvoid* CLAEIN_(void)\n{\n    if (verbose) puts(\"STUB: CLAEIN_ called\");\n    return NULL;\n}\n\nvoid* CLAESY(void)\n{\n    if (verbose) puts(\"STUB: CLAESY called\");\n    return NULL;\n}\n\nvoid* CLAESY_(void)\n{\n    if (verbose) puts(\"STUB: CLAESY_ called\");\n    return NULL;\n}\n\nvoid* CLAEV2(void)\n{\n    if (verbose) puts(\"STUB: CLAEV2 called\");\n    return NULL;\n}\n\nvoid* CLAEV2_(void)\n{\n    if (verbose) puts(\"STUB: CLAEV2_ called\");\n    return NULL;\n}\n\nvoid* CLAG2Z(void)\n{\n    if (verbose) puts(\"STUB: CLAG2Z called\");\n    return NULL;\n}\n\nvoid* CLAG2Z_(void)\n{\n    if (verbose) puts(\"STUB: CLAG2Z_ called\");\n    return NULL;\n}\n\nvoid* CLAGS2(void)\n{\n    if (verbose) puts(\"STUB: CLAGS2 called\");\n    return NULL;\n}\n\nvoid* CLAGS2_(void)\n{\n    if (verbose) puts(\"STUB: CLAGS2_ called\");\n    return NULL;\n}\n\nvoid* CLAGTM(void)\n{\n    if (verbose) puts(\"STUB: CLAGTM called\");\n    return NULL;\n}\n\nvoid* CLAGTM_(void)\n{\n    if (verbose) puts(\"STUB: CLAGTM_ called\");\n    return NULL;\n}\n\nvoid* CLAHEF(void)\n{\n    if (verbose) puts(\"STUB: CLAHEF called\");\n    return NULL;\n}\n\nvoid* CLAHEF_(void)\n{\n    if (verbose) puts(\"STUB: CLAHEF_ called\");\n    return NULL;\n}\n\nvoid* CLAHQR(void)\n{\n    if (verbose) puts(\"STUB: CLAHQR called\");\n    return NULL;\n}\n\nvoid* CLAHQR_(void)\n{\n    if (verbose) puts(\"STUB: CLAHQR_ called\");\n    return NULL;\n}\n\nvoid* CLAHR2(void)\n{\n    if (verbose) puts(\"STUB: CLAHR2 called\");\n    return NULL;\n}\n\nvoid* CLAHR2_(void)\n{\n    if (verbose) puts(\"STUB: CLAHR2_ called\");\n    return NULL;\n}\n\nvoid* CLAHRD(void)\n{\n    if (verbose) puts(\"STUB: CLAHRD called\");\n    return NULL;\n}\n\nvoid* CLAHRD_(void)\n{\n    if (verbose) puts(\"STUB: CLAHRD_ called\");\n    return NULL;\n}\n\nvoid* CLAIC1(void)\n{\n    if (verbose) puts(\"STUB: CLAIC1 called\");\n    return NULL;\n}\n\nvoid* CLAIC1_(void)\n{\n    if (verbose) puts(\"STUB: CLAIC1_ called\");\n    return NULL;\n}\n\nvoid* CLALS0(void)\n{\n    if (verbose) puts(\"STUB: CLALS0 called\");\n    return NULL;\n}\n\nvoid* CLALS0_(void)\n{\n    if (verbose) puts(\"STUB: CLALS0_ called\");\n    return NULL;\n}\n\nvoid* CLALSA(void)\n{\n    if (verbose) puts(\"STUB: CLALSA called\");\n    return NULL;\n}\n\nvoid* CLALSA_(void)\n{\n    if (verbose) puts(\"STUB: CLALSA_ called\");\n    return NULL;\n}\n\nvoid* CLALSD(void)\n{\n    if (verbose) puts(\"STUB: CLALSD called\");\n    return NULL;\n}\n\nvoid* CLALSD_(void)\n{\n    if (verbose) puts(\"STUB: CLALSD_ called\");\n    return NULL;\n}\n\nvoid* CLANGB(void)\n{\n    if (verbose) puts(\"STUB: CLANGB called\");\n    return NULL;\n}\n\nvoid* CLANGB_(void)\n{\n    if (verbose) puts(\"STUB: CLANGB_ called\");\n    return NULL;\n}\n\nvoid* CLANGE(void)\n{\n    if (verbose) puts(\"STUB: CLANGE called\");\n    return NULL;\n}\n\nvoid* CLANGE_(void)\n{\n    if (verbose) puts(\"STUB: CLANGE_ called\");\n    return NULL;\n}\n\nvoid* CLANGT(void)\n{\n    if (verbose) puts(\"STUB: CLANGT called\");\n    return NULL;\n}\n\nvoid* CLANGT_(void)\n{\n    if (verbose) puts(\"STUB: CLANGT_ called\");\n    return NULL;\n}\n\nvoid* CLANHB(void)\n{\n    if (verbose) puts(\"STUB: CLANHB called\");\n    return NULL;\n}\n\nvoid* CLANHB_(void)\n{\n    if (verbose) puts(\"STUB: CLANHB_ called\");\n    return NULL;\n}\n\nvoid* CLANHE(void)\n{\n    if (verbose) puts(\"STUB: CLANHE called\");\n    return NULL;\n}\n\nvoid* CLANHE_(void)\n{\n    if (verbose) puts(\"STUB: CLANHE_ called\");\n    return NULL;\n}\n\nvoid* CLANHF(void)\n{\n    if (verbose) puts(\"STUB: CLANHF called\");\n    return NULL;\n}\n\nvoid* CLANHF_(void)\n{\n    if (verbose) puts(\"STUB: CLANHF_ called\");\n    return NULL;\n}\n\nvoid* CLANHP(void)\n{\n    if (verbose) puts(\"STUB: CLANHP called\");\n    return NULL;\n}\n\nvoid* CLANHP_(void)\n{\n    if (verbose) puts(\"STUB: CLANHP_ called\");\n    return NULL;\n}\n\nvoid* CLANHS(void)\n{\n    if (verbose) puts(\"STUB: CLANHS called\");\n    return NULL;\n}\n\nvoid* CLANHS_(void)\n{\n    if (verbose) puts(\"STUB: CLANHS_ called\");\n    return NULL;\n}\n\nvoid* CLANHT(void)\n{\n    if (verbose) puts(\"STUB: CLANHT called\");\n    return NULL;\n}\n\nvoid* CLANHT_(void)\n{\n    if (verbose) puts(\"STUB: CLANHT_ called\");\n    return NULL;\n}\n\nvoid* CLANSB(void)\n{\n    if (verbose) puts(\"STUB: CLANSB called\");\n    return NULL;\n}\n\nvoid* CLANSB_(void)\n{\n    if (verbose) puts(\"STUB: CLANSB_ called\");\n    return NULL;\n}\n\nvoid* CLANSP(void)\n{\n    if (verbose) puts(\"STUB: CLANSP called\");\n    return NULL;\n}\n\nvoid* CLANSP_(void)\n{\n    if (verbose) puts(\"STUB: CLANSP_ called\");\n    return NULL;\n}\n\nvoid* CLANSY(void)\n{\n    if (verbose) puts(\"STUB: CLANSY called\");\n    return NULL;\n}\n\nvoid* CLANSY_(void)\n{\n    if (verbose) puts(\"STUB: CLANSY_ called\");\n    return NULL;\n}\n\nvoid* CLANTB(void)\n{\n    if (verbose) puts(\"STUB: CLANTB called\");\n    return NULL;\n}\n\nvoid* CLANTB_(void)\n{\n    if (verbose) puts(\"STUB: CLANTB_ called\");\n    return NULL;\n}\n\nvoid* CLANTP(void)\n{\n    if (verbose) puts(\"STUB: CLANTP called\");\n    return NULL;\n}\n\nvoid* CLANTP_(void)\n{\n    if (verbose) puts(\"STUB: CLANTP_ called\");\n    return NULL;\n}\n\nvoid* CLANTR(void)\n{\n    if (verbose) puts(\"STUB: CLANTR called\");\n    return NULL;\n}\n\nvoid* CLANTR_(void)\n{\n    if (verbose) puts(\"STUB: CLANTR_ called\");\n    return NULL;\n}\n\nvoid* CLAPLL(void)\n{\n    if (verbose) puts(\"STUB: CLAPLL called\");\n    return NULL;\n}\n\nvoid* CLAPLL_(void)\n{\n    if (verbose) puts(\"STUB: CLAPLL_ called\");\n    return NULL;\n}\n\nvoid* CLAPMT(void)\n{\n    if (verbose) puts(\"STUB: CLAPMT called\");\n    return NULL;\n}\n\nvoid* CLAPMT_(void)\n{\n    if (verbose) puts(\"STUB: CLAPMT_ called\");\n    return NULL;\n}\n\nvoid* CLAQGB(void)\n{\n    if (verbose) puts(\"STUB: CLAQGB called\");\n    return NULL;\n}\n\nvoid* CLAQGB_(void)\n{\n    if (verbose) puts(\"STUB: CLAQGB_ called\");\n    return NULL;\n}\n\nvoid* CLAQGE(void)\n{\n    if (verbose) puts(\"STUB: CLAQGE called\");\n    return NULL;\n}\n\nvoid* CLAQGE_(void)\n{\n    if (verbose) puts(\"STUB: CLAQGE_ called\");\n    return NULL;\n}\n\nvoid* CLAQHB(void)\n{\n    if (verbose) puts(\"STUB: CLAQHB called\");\n    return NULL;\n}\n\nvoid* CLAQHB_(void)\n{\n    if (verbose) puts(\"STUB: CLAQHB_ called\");\n    return NULL;\n}\n\nvoid* CLAQHE(void)\n{\n    if (verbose) puts(\"STUB: CLAQHE called\");\n    return NULL;\n}\n\nvoid* CLAQHE_(void)\n{\n    if (verbose) puts(\"STUB: CLAQHE_ called\");\n    return NULL;\n}\n\nvoid* CLAQHP(void)\n{\n    if (verbose) puts(\"STUB: CLAQHP called\");\n    return NULL;\n}\n\nvoid* CLAQHP_(void)\n{\n    if (verbose) puts(\"STUB: CLAQHP_ called\");\n    return NULL;\n}\n\nvoid* CLAQP2(void)\n{\n    if (verbose) puts(\"STUB: CLAQP2 called\");\n    return NULL;\n}\n\nvoid* CLAQP2_(void)\n{\n    if (verbose) puts(\"STUB: CLAQP2_ called\");\n    return NULL;\n}\n\nvoid* CLAQPS(void)\n{\n    if (verbose) puts(\"STUB: CLAQPS called\");\n    return NULL;\n}\n\nvoid* CLAQPS_(void)\n{\n    if (verbose) puts(\"STUB: CLAQPS_ called\");\n    return NULL;\n}\n\nvoid* CLAQR0(void)\n{\n    if (verbose) puts(\"STUB: CLAQR0 called\");\n    return NULL;\n}\n\nvoid* CLAQR0_(void)\n{\n    if (verbose) puts(\"STUB: CLAQR0_ called\");\n    return NULL;\n}\n\nvoid* CLAQR1(void)\n{\n    if (verbose) puts(\"STUB: CLAQR1 called\");\n    return NULL;\n}\n\nvoid* CLAQR1_(void)\n{\n    if (verbose) puts(\"STUB: CLAQR1_ called\");\n    return NULL;\n}\n\nvoid* CLAQR2(void)\n{\n    if (verbose) puts(\"STUB: CLAQR2 called\");\n    return NULL;\n}\n\nvoid* CLAQR2_(void)\n{\n    if (verbose) puts(\"STUB: CLAQR2_ called\");\n    return NULL;\n}\n\nvoid* CLAQR3(void)\n{\n    if (verbose) puts(\"STUB: CLAQR3 called\");\n    return NULL;\n}\n\nvoid* CLAQR3_(void)\n{\n    if (verbose) puts(\"STUB: CLAQR3_ called\");\n    return NULL;\n}\n\nvoid* CLAQR4(void)\n{\n    if (verbose) puts(\"STUB: CLAQR4 called\");\n    return NULL;\n}\n\nvoid* CLAQR4_(void)\n{\n    if (verbose) puts(\"STUB: CLAQR4_ called\");\n    return NULL;\n}\n\nvoid* CLAQR5(void)\n{\n    if (verbose) puts(\"STUB: CLAQR5 called\");\n    return NULL;\n}\n\nvoid* CLAQR5_(void)\n{\n    if (verbose) puts(\"STUB: CLAQR5_ called\");\n    return NULL;\n}\n\nvoid* CLAQSB(void)\n{\n    if (verbose) puts(\"STUB: CLAQSB called\");\n    return NULL;\n}\n\nvoid* CLAQSB_(void)\n{\n    if (verbose) puts(\"STUB: CLAQSB_ called\");\n    return NULL;\n}\n\nvoid* CLAQSP(void)\n{\n    if (verbose) puts(\"STUB: CLAQSP called\");\n    return NULL;\n}\n\nvoid* CLAQSP_(void)\n{\n    if (verbose) puts(\"STUB: CLAQSP_ called\");\n    return NULL;\n}\n\nvoid* CLAQSY(void)\n{\n    if (verbose) puts(\"STUB: CLAQSY called\");\n    return NULL;\n}\n\nvoid* CLAQSY_(void)\n{\n    if (verbose) puts(\"STUB: CLAQSY_ called\");\n    return NULL;\n}\n\nvoid* CLAR1V(void)\n{\n    if (verbose) puts(\"STUB: CLAR1V called\");\n    return NULL;\n}\n\nvoid* CLAR1V_(void)\n{\n    if (verbose) puts(\"STUB: CLAR1V_ called\");\n    return NULL;\n}\n\nvoid* CLAR2V(void)\n{\n    if (verbose) puts(\"STUB: CLAR2V called\");\n    return NULL;\n}\n\nvoid* CLAR2V_(void)\n{\n    if (verbose) puts(\"STUB: CLAR2V_ called\");\n    return NULL;\n}\n\nvoid* CLARCM(void)\n{\n    if (verbose) puts(\"STUB: CLARCM called\");\n    return NULL;\n}\n\nvoid* CLARCM_(void)\n{\n    if (verbose) puts(\"STUB: CLARCM_ called\");\n    return NULL;\n}\n\nvoid* CLARF(void)\n{\n    if (verbose) puts(\"STUB: CLARF called\");\n    return NULL;\n}\n\nvoid* CLARFB(void)\n{\n    if (verbose) puts(\"STUB: CLARFB called\");\n    return NULL;\n}\n\nvoid* CLARFB_(void)\n{\n    if (verbose) puts(\"STUB: CLARFB_ called\");\n    return NULL;\n}\n\nvoid* CLARFG(void)\n{\n    if (verbose) puts(\"STUB: CLARFG called\");\n    return NULL;\n}\n\nvoid* CLARFG_(void)\n{\n    if (verbose) puts(\"STUB: CLARFG_ called\");\n    return NULL;\n}\n\nvoid* CLARFP(void)\n{\n    if (verbose) puts(\"STUB: CLARFP called\");\n    return NULL;\n}\n\nvoid* CLARFP_(void)\n{\n    if (verbose) puts(\"STUB: CLARFP_ called\");\n    return NULL;\n}\n\nvoid* CLARFT(void)\n{\n    if (verbose) puts(\"STUB: CLARFT called\");\n    return NULL;\n}\n\nvoid* CLARFT_(void)\n{\n    if (verbose) puts(\"STUB: CLARFT_ called\");\n    return NULL;\n}\n\nvoid* CLARFX(void)\n{\n    if (verbose) puts(\"STUB: CLARFX called\");\n    return NULL;\n}\n\nvoid* CLARFX_(void)\n{\n    if (verbose) puts(\"STUB: CLARFX_ called\");\n    return NULL;\n}\n\nvoid* CLARF_(void)\n{\n    if (verbose) puts(\"STUB: CLARF_ called\");\n    return NULL;\n}\n\nvoid* CLARGV(void)\n{\n    if (verbose) puts(\"STUB: CLARGV called\");\n    return NULL;\n}\n\nvoid* CLARGV_(void)\n{\n    if (verbose) puts(\"STUB: CLARGV_ called\");\n    return NULL;\n}\n\nvoid* CLARNV(void)\n{\n    if (verbose) puts(\"STUB: CLARNV called\");\n    return NULL;\n}\n\nvoid* CLARNV_(void)\n{\n    if (verbose) puts(\"STUB: CLARNV_ called\");\n    return NULL;\n}\n\nvoid* CLARRV(void)\n{\n    if (verbose) puts(\"STUB: CLARRV called\");\n    return NULL;\n}\n\nvoid* CLARRV_(void)\n{\n    if (verbose) puts(\"STUB: CLARRV_ called\");\n    return NULL;\n}\n\nvoid* CLARSCL2(void)\n{\n    if (verbose) puts(\"STUB: CLARSCL2 called\");\n    return NULL;\n}\n\nvoid* CLARSCL2_(void)\n{\n    if (verbose) puts(\"STUB: CLARSCL2_ called\");\n    return NULL;\n}\n\nvoid* CLARTG(void)\n{\n    if (verbose) puts(\"STUB: CLARTG called\");\n    return NULL;\n}\n\nvoid* CLARTG_(void)\n{\n    if (verbose) puts(\"STUB: CLARTG_ called\");\n    return NULL;\n}\n\nvoid* CLARTV(void)\n{\n    if (verbose) puts(\"STUB: CLARTV called\");\n    return NULL;\n}\n\nvoid* CLARTV_(void)\n{\n    if (verbose) puts(\"STUB: CLARTV_ called\");\n    return NULL;\n}\n\nvoid* CLARZ(void)\n{\n    if (verbose) puts(\"STUB: CLARZ called\");\n    return NULL;\n}\n\nvoid* CLARZB(void)\n{\n    if (verbose) puts(\"STUB: CLARZB called\");\n    return NULL;\n}\n\nvoid* CLARZB_(void)\n{\n    if (verbose) puts(\"STUB: CLARZB_ called\");\n    return NULL;\n}\n\nvoid* CLARZT(void)\n{\n    if (verbose) puts(\"STUB: CLARZT called\");\n    return NULL;\n}\n\nvoid* CLARZT_(void)\n{\n    if (verbose) puts(\"STUB: CLARZT_ called\");\n    return NULL;\n}\n\nvoid* CLARZ_(void)\n{\n    if (verbose) puts(\"STUB: CLARZ_ called\");\n    return NULL;\n}\n\nvoid* CLASCL(void)\n{\n    if (verbose) puts(\"STUB: CLASCL called\");\n    return NULL;\n}\n\nvoid* CLASCL2(void)\n{\n    if (verbose) puts(\"STUB: CLASCL2 called\");\n    return NULL;\n}\n\nvoid* CLASCL2_(void)\n{\n    if (verbose) puts(\"STUB: CLASCL2_ called\");\n    return NULL;\n}\n\nvoid* CLASCL_(void)\n{\n    if (verbose) puts(\"STUB: CLASCL_ called\");\n    return NULL;\n}\n\nvoid* CLASET(void)\n{\n    if (verbose) puts(\"STUB: CLASET called\");\n    return NULL;\n}\n\nvoid* CLASET_(void)\n{\n    if (verbose) puts(\"STUB: CLASET_ called\");\n    return NULL;\n}\n\nvoid* CLASR(void)\n{\n    if (verbose) puts(\"STUB: CLASR called\");\n    return NULL;\n}\n\nvoid* CLASR_(void)\n{\n    if (verbose) puts(\"STUB: CLASR_ called\");\n    return NULL;\n}\n\nvoid* CLASSQ(void)\n{\n    if (verbose) puts(\"STUB: CLASSQ called\");\n    return NULL;\n}\n\nvoid* CLASSQ_(void)\n{\n    if (verbose) puts(\"STUB: CLASSQ_ called\");\n    return NULL;\n}\n\nvoid* CLASWP(void)\n{\n    if (verbose) puts(\"STUB: CLASWP called\");\n    return NULL;\n}\n\nvoid* CLASWP_(void)\n{\n    if (verbose) puts(\"STUB: CLASWP_ called\");\n    return NULL;\n}\n\nvoid* CLASYF(void)\n{\n    if (verbose) puts(\"STUB: CLASYF called\");\n    return NULL;\n}\n\nvoid* CLASYF_(void)\n{\n    if (verbose) puts(\"STUB: CLASYF_ called\");\n    return NULL;\n}\n\nvoid* CLATBS(void)\n{\n    if (verbose) puts(\"STUB: CLATBS called\");\n    return NULL;\n}\n\nvoid* CLATBS_(void)\n{\n    if (verbose) puts(\"STUB: CLATBS_ called\");\n    return NULL;\n}\n\nvoid* CLATDF(void)\n{\n    if (verbose) puts(\"STUB: CLATDF called\");\n    return NULL;\n}\n\nvoid* CLATDF_(void)\n{\n    if (verbose) puts(\"STUB: CLATDF_ called\");\n    return NULL;\n}\n\nvoid* CLATPS(void)\n{\n    if (verbose) puts(\"STUB: CLATPS called\");\n    return NULL;\n}\n\nvoid* CLATPS_(void)\n{\n    if (verbose) puts(\"STUB: CLATPS_ called\");\n    return NULL;\n}\n\nvoid* CLATRD(void)\n{\n    if (verbose) puts(\"STUB: CLATRD called\");\n    return NULL;\n}\n\nvoid* CLATRD_(void)\n{\n    if (verbose) puts(\"STUB: CLATRD_ called\");\n    return NULL;\n}\n\nvoid* CLATRS(void)\n{\n    if (verbose) puts(\"STUB: CLATRS called\");\n    return NULL;\n}\n\nvoid* CLATRS_(void)\n{\n    if (verbose) puts(\"STUB: CLATRS_ called\");\n    return NULL;\n}\n\nvoid* CLATRZ(void)\n{\n    if (verbose) puts(\"STUB: CLATRZ called\");\n    return NULL;\n}\n\nvoid* CLATRZ_(void)\n{\n    if (verbose) puts(\"STUB: CLATRZ_ called\");\n    return NULL;\n}\n\nvoid* CLATZM(void)\n{\n    if (verbose) puts(\"STUB: CLATZM called\");\n    return NULL;\n}\n\nvoid* CLATZM_(void)\n{\n    if (verbose) puts(\"STUB: CLATZM_ called\");\n    return NULL;\n}\n\nvoid* CLAUU2(void)\n{\n    if (verbose) puts(\"STUB: CLAUU2 called\");\n    return NULL;\n}\n\nvoid* CLAUU2_(void)\n{\n    if (verbose) puts(\"STUB: CLAUU2_ called\");\n    return NULL;\n}\n\nvoid* CLAUUM(void)\n{\n    if (verbose) puts(\"STUB: CLAUUM called\");\n    return NULL;\n}\n\nvoid* CLAUUM_(void)\n{\n    if (verbose) puts(\"STUB: CLAUUM_ called\");\n    return NULL;\n}\n\nvoid* CPBCON(void)\n{\n    if (verbose) puts(\"STUB: CPBCON called\");\n    return NULL;\n}\n\nvoid* CPBCON_(void)\n{\n    if (verbose) puts(\"STUB: CPBCON_ called\");\n    return NULL;\n}\n\nvoid* CPBEQU(void)\n{\n    if (verbose) puts(\"STUB: CPBEQU called\");\n    return NULL;\n}\n\nvoid* CPBEQU_(void)\n{\n    if (verbose) puts(\"STUB: CPBEQU_ called\");\n    return NULL;\n}\n\nvoid* CPBRFS(void)\n{\n    if (verbose) puts(\"STUB: CPBRFS called\");\n    return NULL;\n}\n\nvoid* CPBRFS_(void)\n{\n    if (verbose) puts(\"STUB: CPBRFS_ called\");\n    return NULL;\n}\n\nvoid* CPBSTF(void)\n{\n    if (verbose) puts(\"STUB: CPBSTF called\");\n    return NULL;\n}\n\nvoid* CPBSTF_(void)\n{\n    if (verbose) puts(\"STUB: CPBSTF_ called\");\n    return NULL;\n}\n\nvoid* CPBSV(void)\n{\n    if (verbose) puts(\"STUB: CPBSV called\");\n    return NULL;\n}\n\nvoid* CPBSVX(void)\n{\n    if (verbose) puts(\"STUB: CPBSVX called\");\n    return NULL;\n}\n\nvoid* CPBSVX_(void)\n{\n    if (verbose) puts(\"STUB: CPBSVX_ called\");\n    return NULL;\n}\n\nvoid* CPBSV_(void)\n{\n    if (verbose) puts(\"STUB: CPBSV_ called\");\n    return NULL;\n}\n\nvoid* CPBTF2(void)\n{\n    if (verbose) puts(\"STUB: CPBTF2 called\");\n    return NULL;\n}\n\nvoid* CPBTF2_(void)\n{\n    if (verbose) puts(\"STUB: CPBTF2_ called\");\n    return NULL;\n}\n\nvoid* CPBTRF(void)\n{\n    if (verbose) puts(\"STUB: CPBTRF called\");\n    return NULL;\n}\n\nvoid* CPBTRF_(void)\n{\n    if (verbose) puts(\"STUB: CPBTRF_ called\");\n    return NULL;\n}\n\nvoid* CPBTRS(void)\n{\n    if (verbose) puts(\"STUB: CPBTRS called\");\n    return NULL;\n}\n\nvoid* CPBTRS_(void)\n{\n    if (verbose) puts(\"STUB: CPBTRS_ called\");\n    return NULL;\n}\n\nvoid* CPFTRF(void)\n{\n    if (verbose) puts(\"STUB: CPFTRF called\");\n    return NULL;\n}\n\nvoid* CPFTRF_(void)\n{\n    if (verbose) puts(\"STUB: CPFTRF_ called\");\n    return NULL;\n}\n\nvoid* CPFTRI(void)\n{\n    if (verbose) puts(\"STUB: CPFTRI called\");\n    return NULL;\n}\n\nvoid* CPFTRI_(void)\n{\n    if (verbose) puts(\"STUB: CPFTRI_ called\");\n    return NULL;\n}\n\nvoid* CPFTRS(void)\n{\n    if (verbose) puts(\"STUB: CPFTRS called\");\n    return NULL;\n}\n\nvoid* CPFTRS_(void)\n{\n    if (verbose) puts(\"STUB: CPFTRS_ called\");\n    return NULL;\n}\n\nvoid* CPOCON(void)\n{\n    if (verbose) puts(\"STUB: CPOCON called\");\n    return NULL;\n}\n\nvoid* CPOCON_(void)\n{\n    if (verbose) puts(\"STUB: CPOCON_ called\");\n    return NULL;\n}\n\nvoid* CPOEQU(void)\n{\n    if (verbose) puts(\"STUB: CPOEQU called\");\n    return NULL;\n}\n\nvoid* CPOEQUB(void)\n{\n    if (verbose) puts(\"STUB: CPOEQUB called\");\n    return NULL;\n}\n\nvoid* CPOEQUB_(void)\n{\n    if (verbose) puts(\"STUB: CPOEQUB_ called\");\n    return NULL;\n}\n\nvoid* CPOEQU_(void)\n{\n    if (verbose) puts(\"STUB: CPOEQU_ called\");\n    return NULL;\n}\n\nvoid* CPORFS(void)\n{\n    if (verbose) puts(\"STUB: CPORFS called\");\n    return NULL;\n}\n\nvoid* CPORFS_(void)\n{\n    if (verbose) puts(\"STUB: CPORFS_ called\");\n    return NULL;\n}\n\nvoid* CPOSV(void)\n{\n    if (verbose) puts(\"STUB: CPOSV called\");\n    return NULL;\n}\n\nvoid* CPOSVX(void)\n{\n    if (verbose) puts(\"STUB: CPOSVX called\");\n    return NULL;\n}\n\nvoid* CPOSVX_(void)\n{\n    if (verbose) puts(\"STUB: CPOSVX_ called\");\n    return NULL;\n}\n\nvoid* CPOSV_(void)\n{\n    if (verbose) puts(\"STUB: CPOSV_ called\");\n    return NULL;\n}\n\nvoid* CPOTF2(void)\n{\n    if (verbose) puts(\"STUB: CPOTF2 called\");\n    return NULL;\n}\n\nvoid* CPOTF2_(void)\n{\n    if (verbose) puts(\"STUB: CPOTF2_ called\");\n    return NULL;\n}\n\nvoid* CPOTRF(void)\n{\n    if (verbose) puts(\"STUB: CPOTRF called\");\n    return NULL;\n}\n\nvoid* CPOTRF_(void)\n{\n    if (verbose) puts(\"STUB: CPOTRF_ called\");\n    return NULL;\n}\n\nvoid* CPOTRI(void)\n{\n    if (verbose) puts(\"STUB: CPOTRI called\");\n    return NULL;\n}\n\nvoid* CPOTRI_(void)\n{\n    if (verbose) puts(\"STUB: CPOTRI_ called\");\n    return NULL;\n}\n\nvoid* CPOTRS(void)\n{\n    if (verbose) puts(\"STUB: CPOTRS called\");\n    return NULL;\n}\n\nvoid* CPOTRS_(void)\n{\n    if (verbose) puts(\"STUB: CPOTRS_ called\");\n    return NULL;\n}\n\nvoid* CPPCON(void)\n{\n    if (verbose) puts(\"STUB: CPPCON called\");\n    return NULL;\n}\n\nvoid* CPPCON_(void)\n{\n    if (verbose) puts(\"STUB: CPPCON_ called\");\n    return NULL;\n}\n\nvoid* CPPEQU(void)\n{\n    if (verbose) puts(\"STUB: CPPEQU called\");\n    return NULL;\n}\n\nvoid* CPPEQU_(void)\n{\n    if (verbose) puts(\"STUB: CPPEQU_ called\");\n    return NULL;\n}\n\nvoid* CPPRFS(void)\n{\n    if (verbose) puts(\"STUB: CPPRFS called\");\n    return NULL;\n}\n\nvoid* CPPRFS_(void)\n{\n    if (verbose) puts(\"STUB: CPPRFS_ called\");\n    return NULL;\n}\n\nvoid* CPPSV(void)\n{\n    if (verbose) puts(\"STUB: CPPSV called\");\n    return NULL;\n}\n\nvoid* CPPSVX(void)\n{\n    if (verbose) puts(\"STUB: CPPSVX called\");\n    return NULL;\n}\n\nvoid* CPPSVX_(void)\n{\n    if (verbose) puts(\"STUB: CPPSVX_ called\");\n    return NULL;\n}\n\nvoid* CPPSV_(void)\n{\n    if (verbose) puts(\"STUB: CPPSV_ called\");\n    return NULL;\n}\n\nvoid* CPPTRF(void)\n{\n    if (verbose) puts(\"STUB: CPPTRF called\");\n    return NULL;\n}\n\nvoid* CPPTRF_(void)\n{\n    if (verbose) puts(\"STUB: CPPTRF_ called\");\n    return NULL;\n}\n\nvoid* CPPTRI(void)\n{\n    if (verbose) puts(\"STUB: CPPTRI called\");\n    return NULL;\n}\n\nvoid* CPPTRI_(void)\n{\n    if (verbose) puts(\"STUB: CPPTRI_ called\");\n    return NULL;\n}\n\nvoid* CPPTRS(void)\n{\n    if (verbose) puts(\"STUB: CPPTRS called\");\n    return NULL;\n}\n\nvoid* CPPTRS_(void)\n{\n    if (verbose) puts(\"STUB: CPPTRS_ called\");\n    return NULL;\n}\n\nvoid* CPSTF2(void)\n{\n    if (verbose) puts(\"STUB: CPSTF2 called\");\n    return NULL;\n}\n\nvoid* CPSTF2_(void)\n{\n    if (verbose) puts(\"STUB: CPSTF2_ called\");\n    return NULL;\n}\n\nvoid* CPSTRF(void)\n{\n    if (verbose) puts(\"STUB: CPSTRF called\");\n    return NULL;\n}\n\nvoid* CPSTRF_(void)\n{\n    if (verbose) puts(\"STUB: CPSTRF_ called\");\n    return NULL;\n}\n\nvoid* CPTCON(void)\n{\n    if (verbose) puts(\"STUB: CPTCON called\");\n    return NULL;\n}\n\nvoid* CPTCON_(void)\n{\n    if (verbose) puts(\"STUB: CPTCON_ called\");\n    return NULL;\n}\n\nvoid* CPTEQR(void)\n{\n    if (verbose) puts(\"STUB: CPTEQR called\");\n    return NULL;\n}\n\nvoid* CPTEQR_(void)\n{\n    if (verbose) puts(\"STUB: CPTEQR_ called\");\n    return NULL;\n}\n\nvoid* CPTRFS(void)\n{\n    if (verbose) puts(\"STUB: CPTRFS called\");\n    return NULL;\n}\n\nvoid* CPTRFS_(void)\n{\n    if (verbose) puts(\"STUB: CPTRFS_ called\");\n    return NULL;\n}\n\nvoid* CPTSV(void)\n{\n    if (verbose) puts(\"STUB: CPTSV called\");\n    return NULL;\n}\n\nvoid* CPTSVX(void)\n{\n    if (verbose) puts(\"STUB: CPTSVX called\");\n    return NULL;\n}\n\nvoid* CPTSVX_(void)\n{\n    if (verbose) puts(\"STUB: CPTSVX_ called\");\n    return NULL;\n}\n\nvoid* CPTSV_(void)\n{\n    if (verbose) puts(\"STUB: CPTSV_ called\");\n    return NULL;\n}\n\nvoid* CPTTRF(void)\n{\n    if (verbose) puts(\"STUB: CPTTRF called\");\n    return NULL;\n}\n\nvoid* CPTTRF_(void)\n{\n    if (verbose) puts(\"STUB: CPTTRF_ called\");\n    return NULL;\n}\n\nvoid* CPTTRS(void)\n{\n    if (verbose) puts(\"STUB: CPTTRS called\");\n    return NULL;\n}\n\nvoid* CPTTRS_(void)\n{\n    if (verbose) puts(\"STUB: CPTTRS_ called\");\n    return NULL;\n}\n\nvoid* CPTTS2(void)\n{\n    if (verbose) puts(\"STUB: CPTTS2 called\");\n    return NULL;\n}\n\nvoid* CPTTS2_(void)\n{\n    if (verbose) puts(\"STUB: CPTTS2_ called\");\n    return NULL;\n}\n\nvoid* CROT(void)\n{\n    if (verbose) puts(\"STUB: CROT called\");\n    return NULL;\n}\n\nvoid* CROT_(void)\n{\n    if (verbose) puts(\"STUB: CROT_ called\");\n    return NULL;\n}\n\nvoid* CSPCON(void)\n{\n    if (verbose) puts(\"STUB: CSPCON called\");\n    return NULL;\n}\n\nvoid* CSPCON_(void)\n{\n    if (verbose) puts(\"STUB: CSPCON_ called\");\n    return NULL;\n}\n\nvoid* CSPMV(void)\n{\n    if (verbose) puts(\"STUB: CSPMV called\");\n    return NULL;\n}\n\nvoid* CSPMV_(void)\n{\n    if (verbose) puts(\"STUB: CSPMV_ called\");\n    return NULL;\n}\n\nvoid* CSPR(void)\n{\n    if (verbose) puts(\"STUB: CSPR called\");\n    return NULL;\n}\n\nvoid* CSPRFS(void)\n{\n    if (verbose) puts(\"STUB: CSPRFS called\");\n    return NULL;\n}\n\nvoid* CSPRFS_(void)\n{\n    if (verbose) puts(\"STUB: CSPRFS_ called\");\n    return NULL;\n}\n\nvoid* CSPR_(void)\n{\n    if (verbose) puts(\"STUB: CSPR_ called\");\n    return NULL;\n}\n\nvoid* CSPSV(void)\n{\n    if (verbose) puts(\"STUB: CSPSV called\");\n    return NULL;\n}\n\nvoid* CSPSVX(void)\n{\n    if (verbose) puts(\"STUB: CSPSVX called\");\n    return NULL;\n}\n\nvoid* CSPSVX_(void)\n{\n    if (verbose) puts(\"STUB: CSPSVX_ called\");\n    return NULL;\n}\n\nvoid* CSPSV_(void)\n{\n    if (verbose) puts(\"STUB: CSPSV_ called\");\n    return NULL;\n}\n\nvoid* CSPTRF(void)\n{\n    if (verbose) puts(\"STUB: CSPTRF called\");\n    return NULL;\n}\n\nvoid* CSPTRF_(void)\n{\n    if (verbose) puts(\"STUB: CSPTRF_ called\");\n    return NULL;\n}\n\nvoid* CSPTRI(void)\n{\n    if (verbose) puts(\"STUB: CSPTRI called\");\n    return NULL;\n}\n\nvoid* CSPTRI_(void)\n{\n    if (verbose) puts(\"STUB: CSPTRI_ called\");\n    return NULL;\n}\n\nvoid* CSPTRS(void)\n{\n    if (verbose) puts(\"STUB: CSPTRS called\");\n    return NULL;\n}\n\nvoid* CSPTRS_(void)\n{\n    if (verbose) puts(\"STUB: CSPTRS_ called\");\n    return NULL;\n}\n\nvoid* CSRSCL(void)\n{\n    if (verbose) puts(\"STUB: CSRSCL called\");\n    return NULL;\n}\n\nvoid* CSRSCL_(void)\n{\n    if (verbose) puts(\"STUB: CSRSCL_ called\");\n    return NULL;\n}\n\nvoid* CSTEDC(void)\n{\n    if (verbose) puts(\"STUB: CSTEDC called\");\n    return NULL;\n}\n\nvoid* CSTEDC_(void)\n{\n    if (verbose) puts(\"STUB: CSTEDC_ called\");\n    return NULL;\n}\n\nvoid* CSTEGR(void)\n{\n    if (verbose) puts(\"STUB: CSTEGR called\");\n    return NULL;\n}\n\nvoid* CSTEGR_(void)\n{\n    if (verbose) puts(\"STUB: CSTEGR_ called\");\n    return NULL;\n}\n\nvoid* CSTEIN(void)\n{\n    if (verbose) puts(\"STUB: CSTEIN called\");\n    return NULL;\n}\n\nvoid* CSTEIN_(void)\n{\n    if (verbose) puts(\"STUB: CSTEIN_ called\");\n    return NULL;\n}\n\nvoid* CSTEMR(void)\n{\n    if (verbose) puts(\"STUB: CSTEMR called\");\n    return NULL;\n}\n\nvoid* CSTEMR_(void)\n{\n    if (verbose) puts(\"STUB: CSTEMR_ called\");\n    return NULL;\n}\n\nvoid* CSTEQR(void)\n{\n    if (verbose) puts(\"STUB: CSTEQR called\");\n    return NULL;\n}\n\nvoid* CSTEQR_(void)\n{\n    if (verbose) puts(\"STUB: CSTEQR_ called\");\n    return NULL;\n}\n\nvoid* CSYCON(void)\n{\n    if (verbose) puts(\"STUB: CSYCON called\");\n    return NULL;\n}\n\nvoid* CSYCON_(void)\n{\n    if (verbose) puts(\"STUB: CSYCON_ called\");\n    return NULL;\n}\n\nvoid* CSYEQUB(void)\n{\n    if (verbose) puts(\"STUB: CSYEQUB called\");\n    return NULL;\n}\n\nvoid* CSYEQUB_(void)\n{\n    if (verbose) puts(\"STUB: CSYEQUB_ called\");\n    return NULL;\n}\n\nvoid* CSYMV(void)\n{\n    if (verbose) puts(\"STUB: CSYMV called\");\n    return NULL;\n}\n\nvoid* CSYMV_(void)\n{\n    if (verbose) puts(\"STUB: CSYMV_ called\");\n    return NULL;\n}\n\nvoid* CSYR(void)\n{\n    if (verbose) puts(\"STUB: CSYR called\");\n    return NULL;\n}\n\nvoid* CSYRFS(void)\n{\n    if (verbose) puts(\"STUB: CSYRFS called\");\n    return NULL;\n}\n\nvoid* CSYRFS_(void)\n{\n    if (verbose) puts(\"STUB: CSYRFS_ called\");\n    return NULL;\n}\n\nvoid* CSYR_(void)\n{\n    if (verbose) puts(\"STUB: CSYR_ called\");\n    return NULL;\n}\n\nvoid* CSYSV(void)\n{\n    if (verbose) puts(\"STUB: CSYSV called\");\n    return NULL;\n}\n\nvoid* CSYSVX(void)\n{\n    if (verbose) puts(\"STUB: CSYSVX called\");\n    return NULL;\n}\n\nvoid* CSYSVX_(void)\n{\n    if (verbose) puts(\"STUB: CSYSVX_ called\");\n    return NULL;\n}\n\nvoid* CSYSV_(void)\n{\n    if (verbose) puts(\"STUB: CSYSV_ called\");\n    return NULL;\n}\n\nvoid* CSYTF2(void)\n{\n    if (verbose) puts(\"STUB: CSYTF2 called\");\n    return NULL;\n}\n\nvoid* CSYTF2_(void)\n{\n    if (verbose) puts(\"STUB: CSYTF2_ called\");\n    return NULL;\n}\n\nvoid* CSYTRF(void)\n{\n    if (verbose) puts(\"STUB: CSYTRF called\");\n    return NULL;\n}\n\nvoid* CSYTRF_(void)\n{\n    if (verbose) puts(\"STUB: CSYTRF_ called\");\n    return NULL;\n}\n\nvoid* CSYTRI(void)\n{\n    if (verbose) puts(\"STUB: CSYTRI called\");\n    return NULL;\n}\n\nvoid* CSYTRI_(void)\n{\n    if (verbose) puts(\"STUB: CSYTRI_ called\");\n    return NULL;\n}\n\nvoid* CSYTRS(void)\n{\n    if (verbose) puts(\"STUB: CSYTRS called\");\n    return NULL;\n}\n\nvoid* CSYTRS_(void)\n{\n    if (verbose) puts(\"STUB: CSYTRS_ called\");\n    return NULL;\n}\n\nvoid* CTBCON(void)\n{\n    if (verbose) puts(\"STUB: CTBCON called\");\n    return NULL;\n}\n\nvoid* CTBCON_(void)\n{\n    if (verbose) puts(\"STUB: CTBCON_ called\");\n    return NULL;\n}\n\nvoid* CTBRFS(void)\n{\n    if (verbose) puts(\"STUB: CTBRFS called\");\n    return NULL;\n}\n\nvoid* CTBRFS_(void)\n{\n    if (verbose) puts(\"STUB: CTBRFS_ called\");\n    return NULL;\n}\n\nvoid* CTBTRS(void)\n{\n    if (verbose) puts(\"STUB: CTBTRS called\");\n    return NULL;\n}\n\nvoid* CTBTRS_(void)\n{\n    if (verbose) puts(\"STUB: CTBTRS_ called\");\n    return NULL;\n}\n\nvoid* CTFSM(void)\n{\n    if (verbose) puts(\"STUB: CTFSM called\");\n    return NULL;\n}\n\nvoid* CTFSM_(void)\n{\n    if (verbose) puts(\"STUB: CTFSM_ called\");\n    return NULL;\n}\n\nvoid* CTFTRI(void)\n{\n    if (verbose) puts(\"STUB: CTFTRI called\");\n    return NULL;\n}\n\nvoid* CTFTRI_(void)\n{\n    if (verbose) puts(\"STUB: CTFTRI_ called\");\n    return NULL;\n}\n\nvoid* CTFTTP(void)\n{\n    if (verbose) puts(\"STUB: CTFTTP called\");\n    return NULL;\n}\n\nvoid* CTFTTP_(void)\n{\n    if (verbose) puts(\"STUB: CTFTTP_ called\");\n    return NULL;\n}\n\nvoid* CTFTTR(void)\n{\n    if (verbose) puts(\"STUB: CTFTTR called\");\n    return NULL;\n}\n\nvoid* CTFTTR_(void)\n{\n    if (verbose) puts(\"STUB: CTFTTR_ called\");\n    return NULL;\n}\n\nvoid* CTGEVC(void)\n{\n    if (verbose) puts(\"STUB: CTGEVC called\");\n    return NULL;\n}\n\nvoid* CTGEVC_(void)\n{\n    if (verbose) puts(\"STUB: CTGEVC_ called\");\n    return NULL;\n}\n\nvoid* CTGEX2(void)\n{\n    if (verbose) puts(\"STUB: CTGEX2 called\");\n    return NULL;\n}\n\nvoid* CTGEX2_(void)\n{\n    if (verbose) puts(\"STUB: CTGEX2_ called\");\n    return NULL;\n}\n\nvoid* CTGEXC(void)\n{\n    if (verbose) puts(\"STUB: CTGEXC called\");\n    return NULL;\n}\n\nvoid* CTGEXC_(void)\n{\n    if (verbose) puts(\"STUB: CTGEXC_ called\");\n    return NULL;\n}\n\nvoid* CTGSEN(void)\n{\n    if (verbose) puts(\"STUB: CTGSEN called\");\n    return NULL;\n}\n\nvoid* CTGSEN_(void)\n{\n    if (verbose) puts(\"STUB: CTGSEN_ called\");\n    return NULL;\n}\n\nvoid* CTGSJA(void)\n{\n    if (verbose) puts(\"STUB: CTGSJA called\");\n    return NULL;\n}\n\nvoid* CTGSJA_(void)\n{\n    if (verbose) puts(\"STUB: CTGSJA_ called\");\n    return NULL;\n}\n\nvoid* CTGSNA(void)\n{\n    if (verbose) puts(\"STUB: CTGSNA called\");\n    return NULL;\n}\n\nvoid* CTGSNA_(void)\n{\n    if (verbose) puts(\"STUB: CTGSNA_ called\");\n    return NULL;\n}\n\nvoid* CTGSY2(void)\n{\n    if (verbose) puts(\"STUB: CTGSY2 called\");\n    return NULL;\n}\n\nvoid* CTGSY2_(void)\n{\n    if (verbose) puts(\"STUB: CTGSY2_ called\");\n    return NULL;\n}\n\nvoid* CTGSYL(void)\n{\n    if (verbose) puts(\"STUB: CTGSYL called\");\n    return NULL;\n}\n\nvoid* CTGSYL_(void)\n{\n    if (verbose) puts(\"STUB: CTGSYL_ called\");\n    return NULL;\n}\n\nvoid* CTPCON(void)\n{\n    if (verbose) puts(\"STUB: CTPCON called\");\n    return NULL;\n}\n\nvoid* CTPCON_(void)\n{\n    if (verbose) puts(\"STUB: CTPCON_ called\");\n    return NULL;\n}\n\nvoid* CTPRFS(void)\n{\n    if (verbose) puts(\"STUB: CTPRFS called\");\n    return NULL;\n}\n\nvoid* CTPRFS_(void)\n{\n    if (verbose) puts(\"STUB: CTPRFS_ called\");\n    return NULL;\n}\n\nvoid* CTPTRI(void)\n{\n    if (verbose) puts(\"STUB: CTPTRI called\");\n    return NULL;\n}\n\nvoid* CTPTRI_(void)\n{\n    if (verbose) puts(\"STUB: CTPTRI_ called\");\n    return NULL;\n}\n\nvoid* CTPTRS(void)\n{\n    if (verbose) puts(\"STUB: CTPTRS called\");\n    return NULL;\n}\n\nvoid* CTPTRS_(void)\n{\n    if (verbose) puts(\"STUB: CTPTRS_ called\");\n    return NULL;\n}\n\nvoid* CTPTTF(void)\n{\n    if (verbose) puts(\"STUB: CTPTTF called\");\n    return NULL;\n}\n\nvoid* CTPTTF_(void)\n{\n    if (verbose) puts(\"STUB: CTPTTF_ called\");\n    return NULL;\n}\n\nvoid* CTPTTR(void)\n{\n    if (verbose) puts(\"STUB: CTPTTR called\");\n    return NULL;\n}\n\nvoid* CTPTTR_(void)\n{\n    if (verbose) puts(\"STUB: CTPTTR_ called\");\n    return NULL;\n}\n\nvoid* CTRCON(void)\n{\n    if (verbose) puts(\"STUB: CTRCON called\");\n    return NULL;\n}\n\nvoid* CTRCON_(void)\n{\n    if (verbose) puts(\"STUB: CTRCON_ called\");\n    return NULL;\n}\n\nvoid* CTREVC(void)\n{\n    if (verbose) puts(\"STUB: CTREVC called\");\n    return NULL;\n}\n\nvoid* CTREVC_(void)\n{\n    if (verbose) puts(\"STUB: CTREVC_ called\");\n    return NULL;\n}\n\nvoid* CTREXC(void)\n{\n    if (verbose) puts(\"STUB: CTREXC called\");\n    return NULL;\n}\n\nvoid* CTREXC_(void)\n{\n    if (verbose) puts(\"STUB: CTREXC_ called\");\n    return NULL;\n}\n\nvoid* CTRRFS(void)\n{\n    if (verbose) puts(\"STUB: CTRRFS called\");\n    return NULL;\n}\n\nvoid* CTRRFS_(void)\n{\n    if (verbose) puts(\"STUB: CTRRFS_ called\");\n    return NULL;\n}\n\nvoid* CTRSEN(void)\n{\n    if (verbose) puts(\"STUB: CTRSEN called\");\n    return NULL;\n}\n\nvoid* CTRSEN_(void)\n{\n    if (verbose) puts(\"STUB: CTRSEN_ called\");\n    return NULL;\n}\n\nvoid* CTRSNA(void)\n{\n    if (verbose) puts(\"STUB: CTRSNA called\");\n    return NULL;\n}\n\nvoid* CTRSNA_(void)\n{\n    if (verbose) puts(\"STUB: CTRSNA_ called\");\n    return NULL;\n}\n\nvoid* CTRSYL(void)\n{\n    if (verbose) puts(\"STUB: CTRSYL called\");\n    return NULL;\n}\n\nvoid* CTRSYL_(void)\n{\n    if (verbose) puts(\"STUB: CTRSYL_ called\");\n    return NULL;\n}\n\nvoid* CTRTI2(void)\n{\n    if (verbose) puts(\"STUB: CTRTI2 called\");\n    return NULL;\n}\n\nvoid* CTRTI2_(void)\n{\n    if (verbose) puts(\"STUB: CTRTI2_ called\");\n    return NULL;\n}\n\nvoid* CTRTRI(void)\n{\n    if (verbose) puts(\"STUB: CTRTRI called\");\n    return NULL;\n}\n\nvoid* CTRTRI_(void)\n{\n    if (verbose) puts(\"STUB: CTRTRI_ called\");\n    return NULL;\n}\n\nvoid* CTRTRS(void)\n{\n    if (verbose) puts(\"STUB: CTRTRS called\");\n    return NULL;\n}\n\nvoid* CTRTRS_(void)\n{\n    if (verbose) puts(\"STUB: CTRTRS_ called\");\n    return NULL;\n}\n\nvoid* CTRTTF(void)\n{\n    if (verbose) puts(\"STUB: CTRTTF called\");\n    return NULL;\n}\n\nvoid* CTRTTF_(void)\n{\n    if (verbose) puts(\"STUB: CTRTTF_ called\");\n    return NULL;\n}\n\nvoid* CTRTTP(void)\n{\n    if (verbose) puts(\"STUB: CTRTTP called\");\n    return NULL;\n}\n\nvoid* CTRTTP_(void)\n{\n    if (verbose) puts(\"STUB: CTRTTP_ called\");\n    return NULL;\n}\n\nvoid* CTZRQF(void)\n{\n    if (verbose) puts(\"STUB: CTZRQF called\");\n    return NULL;\n}\n\nvoid* CTZRQF_(void)\n{\n    if (verbose) puts(\"STUB: CTZRQF_ called\");\n    return NULL;\n}\n\nvoid* CTZRZF(void)\n{\n    if (verbose) puts(\"STUB: CTZRZF called\");\n    return NULL;\n}\n\nvoid* CTZRZF_(void)\n{\n    if (verbose) puts(\"STUB: CTZRZF_ called\");\n    return NULL;\n}\n\nvoid* CUNG2L(void)\n{\n    if (verbose) puts(\"STUB: CUNG2L called\");\n    return NULL;\n}\n\nvoid* CUNG2L_(void)\n{\n    if (verbose) puts(\"STUB: CUNG2L_ called\");\n    return NULL;\n}\n\nvoid* CUNG2R(void)\n{\n    if (verbose) puts(\"STUB: CUNG2R called\");\n    return NULL;\n}\n\nvoid* CUNG2R_(void)\n{\n    if (verbose) puts(\"STUB: CUNG2R_ called\");\n    return NULL;\n}\n\nvoid* CUNGBR(void)\n{\n    if (verbose) puts(\"STUB: CUNGBR called\");\n    return NULL;\n}\n\nvoid* CUNGBR_(void)\n{\n    if (verbose) puts(\"STUB: CUNGBR_ called\");\n    return NULL;\n}\n\nvoid* CUNGHR(void)\n{\n    if (verbose) puts(\"STUB: CUNGHR called\");\n    return NULL;\n}\n\nvoid* CUNGHR_(void)\n{\n    if (verbose) puts(\"STUB: CUNGHR_ called\");\n    return NULL;\n}\n\nvoid* CUNGL2(void)\n{\n    if (verbose) puts(\"STUB: CUNGL2 called\");\n    return NULL;\n}\n\nvoid* CUNGL2_(void)\n{\n    if (verbose) puts(\"STUB: CUNGL2_ called\");\n    return NULL;\n}\n\nvoid* CUNGLQ(void)\n{\n    if (verbose) puts(\"STUB: CUNGLQ called\");\n    return NULL;\n}\n\nvoid* CUNGLQ_(void)\n{\n    if (verbose) puts(\"STUB: CUNGLQ_ called\");\n    return NULL;\n}\n\nvoid* CUNGQL(void)\n{\n    if (verbose) puts(\"STUB: CUNGQL called\");\n    return NULL;\n}\n\nvoid* CUNGQL_(void)\n{\n    if (verbose) puts(\"STUB: CUNGQL_ called\");\n    return NULL;\n}\n\nvoid* CUNGQR(void)\n{\n    if (verbose) puts(\"STUB: CUNGQR called\");\n    return NULL;\n}\n\nvoid* CUNGQR_(void)\n{\n    if (verbose) puts(\"STUB: CUNGQR_ called\");\n    return NULL;\n}\n\nvoid* CUNGR2(void)\n{\n    if (verbose) puts(\"STUB: CUNGR2 called\");\n    return NULL;\n}\n\nvoid* CUNGR2_(void)\n{\n    if (verbose) puts(\"STUB: CUNGR2_ called\");\n    return NULL;\n}\n\nvoid* CUNGRQ(void)\n{\n    if (verbose) puts(\"STUB: CUNGRQ called\");\n    return NULL;\n}\n\nvoid* CUNGRQ_(void)\n{\n    if (verbose) puts(\"STUB: CUNGRQ_ called\");\n    return NULL;\n}\n\nvoid* CUNGTR(void)\n{\n    if (verbose) puts(\"STUB: CUNGTR called\");\n    return NULL;\n}\n\nvoid* CUNGTR_(void)\n{\n    if (verbose) puts(\"STUB: CUNGTR_ called\");\n    return NULL;\n}\n\nvoid* CUNM2L(void)\n{\n    if (verbose) puts(\"STUB: CUNM2L called\");\n    return NULL;\n}\n\nvoid* CUNM2L_(void)\n{\n    if (verbose) puts(\"STUB: CUNM2L_ called\");\n    return NULL;\n}\n\nvoid* CUNM2R(void)\n{\n    if (verbose) puts(\"STUB: CUNM2R called\");\n    return NULL;\n}\n\nvoid* CUNM2R_(void)\n{\n    if (verbose) puts(\"STUB: CUNM2R_ called\");\n    return NULL;\n}\n\nvoid* CUNMBR(void)\n{\n    if (verbose) puts(\"STUB: CUNMBR called\");\n    return NULL;\n}\n\nvoid* CUNMBR_(void)\n{\n    if (verbose) puts(\"STUB: CUNMBR_ called\");\n    return NULL;\n}\n\nvoid* CUNMHR(void)\n{\n    if (verbose) puts(\"STUB: CUNMHR called\");\n    return NULL;\n}\n\nvoid* CUNMHR_(void)\n{\n    if (verbose) puts(\"STUB: CUNMHR_ called\");\n    return NULL;\n}\n\nvoid* CUNML2(void)\n{\n    if (verbose) puts(\"STUB: CUNML2 called\");\n    return NULL;\n}\n\nvoid* CUNML2_(void)\n{\n    if (verbose) puts(\"STUB: CUNML2_ called\");\n    return NULL;\n}\n\nvoid* CUNMLQ(void)\n{\n    if (verbose) puts(\"STUB: CUNMLQ called\");\n    return NULL;\n}\n\nvoid* CUNMLQ_(void)\n{\n    if (verbose) puts(\"STUB: CUNMLQ_ called\");\n    return NULL;\n}\n\nvoid* CUNMQL(void)\n{\n    if (verbose) puts(\"STUB: CUNMQL called\");\n    return NULL;\n}\n\nvoid* CUNMQL_(void)\n{\n    if (verbose) puts(\"STUB: CUNMQL_ called\");\n    return NULL;\n}\n\nvoid* CUNMQR(void)\n{\n    if (verbose) puts(\"STUB: CUNMQR called\");\n    return NULL;\n}\n\nvoid* CUNMQR_(void)\n{\n    if (verbose) puts(\"STUB: CUNMQR_ called\");\n    return NULL;\n}\n\nvoid* CUNMR2(void)\n{\n    if (verbose) puts(\"STUB: CUNMR2 called\");\n    return NULL;\n}\n\nvoid* CUNMR2_(void)\n{\n    if (verbose) puts(\"STUB: CUNMR2_ called\");\n    return NULL;\n}\n\nvoid* CUNMR3(void)\n{\n    if (verbose) puts(\"STUB: CUNMR3 called\");\n    return NULL;\n}\n\nvoid* CUNMR3_(void)\n{\n    if (verbose) puts(\"STUB: CUNMR3_ called\");\n    return NULL;\n}\n\nvoid* CUNMRQ(void)\n{\n    if (verbose) puts(\"STUB: CUNMRQ called\");\n    return NULL;\n}\n\nvoid* CUNMRQ_(void)\n{\n    if (verbose) puts(\"STUB: CUNMRQ_ called\");\n    return NULL;\n}\n\nvoid* CUNMRZ(void)\n{\n    if (verbose) puts(\"STUB: CUNMRZ called\");\n    return NULL;\n}\n\nvoid* CUNMRZ_(void)\n{\n    if (verbose) puts(\"STUB: CUNMRZ_ called\");\n    return NULL;\n}\n\nvoid* CUNMTR(void)\n{\n    if (verbose) puts(\"STUB: CUNMTR called\");\n    return NULL;\n}\n\nvoid* CUNMTR_(void)\n{\n    if (verbose) puts(\"STUB: CUNMTR_ called\");\n    return NULL;\n}\n\nvoid* CUPGTR(void)\n{\n    if (verbose) puts(\"STUB: CUPGTR called\");\n    return NULL;\n}\n\nvoid* CUPGTR_(void)\n{\n    if (verbose) puts(\"STUB: CUPGTR_ called\");\n    return NULL;\n}\n\nvoid* CUPMTR(void)\n{\n    if (verbose) puts(\"STUB: CUPMTR called\");\n    return NULL;\n}\n\nvoid* CUPMTR_(void)\n{\n    if (verbose) puts(\"STUB: CUPMTR_ called\");\n    return NULL;\n}\n\nvoid* DBDSDC(void)\n{\n    if (verbose) puts(\"STUB: DBDSDC called\");\n    return NULL;\n}\n\nvoid* DBDSDC_(void)\n{\n    if (verbose) puts(\"STUB: DBDSDC_ called\");\n    return NULL;\n}\n\nvoid* DBDSQR(void)\n{\n    if (verbose) puts(\"STUB: DBDSQR called\");\n    return NULL;\n}\n\nvoid* DBDSQR_(void)\n{\n    if (verbose) puts(\"STUB: DBDSQR_ called\");\n    return NULL;\n}\n\nvoid* DDISNA(void)\n{\n    if (verbose) puts(\"STUB: DDISNA called\");\n    return NULL;\n}\n\nvoid* DDISNA_(void)\n{\n    if (verbose) puts(\"STUB: DDISNA_ called\");\n    return NULL;\n}\n\nvoid* DGBBRD(void)\n{\n    if (verbose) puts(\"STUB: DGBBRD called\");\n    return NULL;\n}\n\nvoid* DGBBRD_(void)\n{\n    if (verbose) puts(\"STUB: DGBBRD_ called\");\n    return NULL;\n}\n\nvoid* DGBCON(void)\n{\n    if (verbose) puts(\"STUB: DGBCON called\");\n    return NULL;\n}\n\nvoid* DGBCON_(void)\n{\n    if (verbose) puts(\"STUB: DGBCON_ called\");\n    return NULL;\n}\n\nvoid* DGBEQU(void)\n{\n    if (verbose) puts(\"STUB: DGBEQU called\");\n    return NULL;\n}\n\nvoid* DGBEQUB(void)\n{\n    if (verbose) puts(\"STUB: DGBEQUB called\");\n    return NULL;\n}\n\nvoid* DGBEQUB_(void)\n{\n    if (verbose) puts(\"STUB: DGBEQUB_ called\");\n    return NULL;\n}\n\nvoid* DGBEQU_(void)\n{\n    if (verbose) puts(\"STUB: DGBEQU_ called\");\n    return NULL;\n}\n\nvoid* DGBRFS(void)\n{\n    if (verbose) puts(\"STUB: DGBRFS called\");\n    return NULL;\n}\n\nvoid* DGBRFS_(void)\n{\n    if (verbose) puts(\"STUB: DGBRFS_ called\");\n    return NULL;\n}\n\nvoid* DGBSV(void)\n{\n    if (verbose) puts(\"STUB: DGBSV called\");\n    return NULL;\n}\n\nvoid* DGBSVX(void)\n{\n    if (verbose) puts(\"STUB: DGBSVX called\");\n    return NULL;\n}\n\nvoid* DGBSVX_(void)\n{\n    if (verbose) puts(\"STUB: DGBSVX_ called\");\n    return NULL;\n}\n\nvoid* DGBSV_(void)\n{\n    if (verbose) puts(\"STUB: DGBSV_ called\");\n    return NULL;\n}\n\nvoid* DGBTF2(void)\n{\n    if (verbose) puts(\"STUB: DGBTF2 called\");\n    return NULL;\n}\n\nvoid* DGBTF2_(void)\n{\n    if (verbose) puts(\"STUB: DGBTF2_ called\");\n    return NULL;\n}\n\nvoid* DGBTRF(void)\n{\n    if (verbose) puts(\"STUB: DGBTRF called\");\n    return NULL;\n}\n\nvoid* DGBTRF_(void)\n{\n    if (verbose) puts(\"STUB: DGBTRF_ called\");\n    return NULL;\n}\n\nvoid* DGBTRS(void)\n{\n    if (verbose) puts(\"STUB: DGBTRS called\");\n    return NULL;\n}\n\nvoid* DGBTRS_(void)\n{\n    if (verbose) puts(\"STUB: DGBTRS_ called\");\n    return NULL;\n}\n\nvoid* DGEBAK(void)\n{\n    if (verbose) puts(\"STUB: DGEBAK called\");\n    return NULL;\n}\n\nvoid* DGEBAK_(void)\n{\n    if (verbose) puts(\"STUB: DGEBAK_ called\");\n    return NULL;\n}\n\nvoid* DGEBAL(void)\n{\n    if (verbose) puts(\"STUB: DGEBAL called\");\n    return NULL;\n}\n\nvoid* DGEBAL_(void)\n{\n    if (verbose) puts(\"STUB: DGEBAL_ called\");\n    return NULL;\n}\n\nvoid* DGEBD2(void)\n{\n    if (verbose) puts(\"STUB: DGEBD2 called\");\n    return NULL;\n}\n\nvoid* DGEBD2_(void)\n{\n    if (verbose) puts(\"STUB: DGEBD2_ called\");\n    return NULL;\n}\n\nvoid* DGEBRD(void)\n{\n    if (verbose) puts(\"STUB: DGEBRD called\");\n    return NULL;\n}\n\nvoid* DGEBRD_(void)\n{\n    if (verbose) puts(\"STUB: DGEBRD_ called\");\n    return NULL;\n}\n\nvoid* DGECON(void)\n{\n    if (verbose) puts(\"STUB: DGECON called\");\n    return NULL;\n}\n\nvoid* DGECON_(void)\n{\n    if (verbose) puts(\"STUB: DGECON_ called\");\n    return NULL;\n}\n\nvoid* DGEEQU(void)\n{\n    if (verbose) puts(\"STUB: DGEEQU called\");\n    return NULL;\n}\n\nvoid* DGEEQUB(void)\n{\n    if (verbose) puts(\"STUB: DGEEQUB called\");\n    return NULL;\n}\n\nvoid* DGEEQUB_(void)\n{\n    if (verbose) puts(\"STUB: DGEEQUB_ called\");\n    return NULL;\n}\n\nvoid* DGEEQU_(void)\n{\n    if (verbose) puts(\"STUB: DGEEQU_ called\");\n    return NULL;\n}\n\nvoid* DGEES(void)\n{\n    if (verbose) puts(\"STUB: DGEES called\");\n    return NULL;\n}\n\nvoid* DGEESX(void)\n{\n    if (verbose) puts(\"STUB: DGEESX called\");\n    return NULL;\n}\n\nvoid* DGEESX_(void)\n{\n    if (verbose) puts(\"STUB: DGEESX_ called\");\n    return NULL;\n}\n\nvoid* DGEES_(void)\n{\n    if (verbose) puts(\"STUB: DGEES_ called\");\n    return NULL;\n}\n\nvoid* DGEEV(void)\n{\n    if (verbose) puts(\"STUB: DGEEV called\");\n    return NULL;\n}\n\nvoid* DGEEVX(void)\n{\n    if (verbose) puts(\"STUB: DGEEVX called\");\n    return NULL;\n}\n\nvoid* DGEEVX_(void)\n{\n    if (verbose) puts(\"STUB: DGEEVX_ called\");\n    return NULL;\n}\n\nvoid* DGEEV_(void)\n{\n    if (verbose) puts(\"STUB: DGEEV_ called\");\n    return NULL;\n}\n\nvoid* DGEGS(void)\n{\n    if (verbose) puts(\"STUB: DGEGS called\");\n    return NULL;\n}\n\nvoid* DGEGS_(void)\n{\n    if (verbose) puts(\"STUB: DGEGS_ called\");\n    return NULL;\n}\n\nvoid* DGEGV(void)\n{\n    if (verbose) puts(\"STUB: DGEGV called\");\n    return NULL;\n}\n\nvoid* DGEGV_(void)\n{\n    if (verbose) puts(\"STUB: DGEGV_ called\");\n    return NULL;\n}\n\nvoid* DGEHD2(void)\n{\n    if (verbose) puts(\"STUB: DGEHD2 called\");\n    return NULL;\n}\n\nvoid* DGEHD2_(void)\n{\n    if (verbose) puts(\"STUB: DGEHD2_ called\");\n    return NULL;\n}\n\nvoid* DGEHRD(void)\n{\n    if (verbose) puts(\"STUB: DGEHRD called\");\n    return NULL;\n}\n\nvoid* DGEHRD_(void)\n{\n    if (verbose) puts(\"STUB: DGEHRD_ called\");\n    return NULL;\n}\n\nvoid* DGEJSV(void)\n{\n    if (verbose) puts(\"STUB: DGEJSV called\");\n    return NULL;\n}\n\nvoid* DGEJSV_(void)\n{\n    if (verbose) puts(\"STUB: DGEJSV_ called\");\n    return NULL;\n}\n\nvoid* DGELQ2(void)\n{\n    if (verbose) puts(\"STUB: DGELQ2 called\");\n    return NULL;\n}\n\nvoid* DGELQ2_(void)\n{\n    if (verbose) puts(\"STUB: DGELQ2_ called\");\n    return NULL;\n}\n\nvoid* DGELQF(void)\n{\n    if (verbose) puts(\"STUB: DGELQF called\");\n    return NULL;\n}\n\nvoid* DGELQF_(void)\n{\n    if (verbose) puts(\"STUB: DGELQF_ called\");\n    return NULL;\n}\n\nvoid* DGELS(void)\n{\n    if (verbose) puts(\"STUB: DGELS called\");\n    return NULL;\n}\n\nvoid* DGELSD(void)\n{\n    if (verbose) puts(\"STUB: DGELSD called\");\n    return NULL;\n}\n\nvoid* DGELSD_(void)\n{\n    if (verbose) puts(\"STUB: DGELSD_ called\");\n    return NULL;\n}\n\nvoid* DGELSS(void)\n{\n    if (verbose) puts(\"STUB: DGELSS called\");\n    return NULL;\n}\n\nvoid* DGELSS_(void)\n{\n    if (verbose) puts(\"STUB: DGELSS_ called\");\n    return NULL;\n}\n\nvoid* DGELSX(void)\n{\n    if (verbose) puts(\"STUB: DGELSX called\");\n    return NULL;\n}\n\nvoid* DGELSX_(void)\n{\n    if (verbose) puts(\"STUB: DGELSX_ called\");\n    return NULL;\n}\n\nvoid* DGELSY(void)\n{\n    if (verbose) puts(\"STUB: DGELSY called\");\n    return NULL;\n}\n\nvoid* DGELSY_(void)\n{\n    if (verbose) puts(\"STUB: DGELSY_ called\");\n    return NULL;\n}\n\nvoid* DGELS_(void)\n{\n    if (verbose) puts(\"STUB: DGELS_ called\");\n    return NULL;\n}\n\nvoid* DGEQL2(void)\n{\n    if (verbose) puts(\"STUB: DGEQL2 called\");\n    return NULL;\n}\n\nvoid* DGEQL2_(void)\n{\n    if (verbose) puts(\"STUB: DGEQL2_ called\");\n    return NULL;\n}\n\nvoid* DGEQLF(void)\n{\n    if (verbose) puts(\"STUB: DGEQLF called\");\n    return NULL;\n}\n\nvoid* DGEQLF_(void)\n{\n    if (verbose) puts(\"STUB: DGEQLF_ called\");\n    return NULL;\n}\n\nvoid* DGEQP3(void)\n{\n    if (verbose) puts(\"STUB: DGEQP3 called\");\n    return NULL;\n}\n\nvoid* DGEQP3_(void)\n{\n    if (verbose) puts(\"STUB: DGEQP3_ called\");\n    return NULL;\n}\n\nvoid* DGEQPF(void)\n{\n    if (verbose) puts(\"STUB: DGEQPF called\");\n    return NULL;\n}\n\nvoid* DGEQPF_(void)\n{\n    if (verbose) puts(\"STUB: DGEQPF_ called\");\n    return NULL;\n}\n\nvoid* DGEQR2(void)\n{\n    if (verbose) puts(\"STUB: DGEQR2 called\");\n    return NULL;\n}\n\nvoid* DGEQR2_(void)\n{\n    if (verbose) puts(\"STUB: DGEQR2_ called\");\n    return NULL;\n}\n\nvoid* DGEQRF(void)\n{\n    if (verbose) puts(\"STUB: DGEQRF called\");\n    return NULL;\n}\n\nvoid* DGEQRF_(void)\n{\n    if (verbose) puts(\"STUB: DGEQRF_ called\");\n    return NULL;\n}\n\nvoid* DGERFS(void)\n{\n    if (verbose) puts(\"STUB: DGERFS called\");\n    return NULL;\n}\n\nvoid* DGERFS_(void)\n{\n    if (verbose) puts(\"STUB: DGERFS_ called\");\n    return NULL;\n}\n\nvoid* DGERQ2(void)\n{\n    if (verbose) puts(\"STUB: DGERQ2 called\");\n    return NULL;\n}\n\nvoid* DGERQ2_(void)\n{\n    if (verbose) puts(\"STUB: DGERQ2_ called\");\n    return NULL;\n}\n\nvoid* DGERQF(void)\n{\n    if (verbose) puts(\"STUB: DGERQF called\");\n    return NULL;\n}\n\nvoid* DGERQF_(void)\n{\n    if (verbose) puts(\"STUB: DGERQF_ called\");\n    return NULL;\n}\n\nvoid* DGESC2(void)\n{\n    if (verbose) puts(\"STUB: DGESC2 called\");\n    return NULL;\n}\n\nvoid* DGESC2_(void)\n{\n    if (verbose) puts(\"STUB: DGESC2_ called\");\n    return NULL;\n}\n\nvoid* DGESDD(void)\n{\n    if (verbose) puts(\"STUB: DGESDD called\");\n    return NULL;\n}\n\nvoid* DGESDD_(void)\n{\n    if (verbose) puts(\"STUB: DGESDD_ called\");\n    return NULL;\n}\n\nvoid* DGESV(void)\n{\n    if (verbose) puts(\"STUB: DGESV called\");\n    return NULL;\n}\n\nvoid* DGESVD(void)\n{\n    if (verbose) puts(\"STUB: DGESVD called\");\n    return NULL;\n}\n\nvoid* DGESVD_(void)\n{\n    if (verbose) puts(\"STUB: DGESVD_ called\");\n    return NULL;\n}\n\nvoid* DGESVJ(void)\n{\n    if (verbose) puts(\"STUB: DGESVJ called\");\n    return NULL;\n}\n\nvoid* DGESVJ_(void)\n{\n    if (verbose) puts(\"STUB: DGESVJ_ called\");\n    return NULL;\n}\n\nvoid* DGESVX(void)\n{\n    if (verbose) puts(\"STUB: DGESVX called\");\n    return NULL;\n}\n\nvoid* DGESVX_(void)\n{\n    if (verbose) puts(\"STUB: DGESVX_ called\");\n    return NULL;\n}\n\nvoid* DGESV_(void)\n{\n    if (verbose) puts(\"STUB: DGESV_ called\");\n    return NULL;\n}\n\nvoid* DGETC2(void)\n{\n    if (verbose) puts(\"STUB: DGETC2 called\");\n    return NULL;\n}\n\nvoid* DGETC2_(void)\n{\n    if (verbose) puts(\"STUB: DGETC2_ called\");\n    return NULL;\n}\n\nvoid* DGETF2(void)\n{\n    if (verbose) puts(\"STUB: DGETF2 called\");\n    return NULL;\n}\n\nvoid* DGETF2_(void)\n{\n    if (verbose) puts(\"STUB: DGETF2_ called\");\n    return NULL;\n}\n\nvoid* DGETRF(void)\n{\n    if (verbose) puts(\"STUB: DGETRF called\");\n    return NULL;\n}\n\nvoid* DGETRF_(void)\n{\n    if (verbose) puts(\"STUB: DGETRF_ called\");\n    return NULL;\n}\n\nvoid* DGETRI(void)\n{\n    if (verbose) puts(\"STUB: DGETRI called\");\n    return NULL;\n}\n\nvoid* DGETRI_(void)\n{\n    if (verbose) puts(\"STUB: DGETRI_ called\");\n    return NULL;\n}\n\nvoid* DGETRS(void)\n{\n    if (verbose) puts(\"STUB: DGETRS called\");\n    return NULL;\n}\n\nvoid* DGETRS_(void)\n{\n    if (verbose) puts(\"STUB: DGETRS_ called\");\n    return NULL;\n}\n\nvoid* DGGBAK(void)\n{\n    if (verbose) puts(\"STUB: DGGBAK called\");\n    return NULL;\n}\n\nvoid* DGGBAK_(void)\n{\n    if (verbose) puts(\"STUB: DGGBAK_ called\");\n    return NULL;\n}\n\nvoid* DGGBAL(void)\n{\n    if (verbose) puts(\"STUB: DGGBAL called\");\n    return NULL;\n}\n\nvoid* DGGBAL_(void)\n{\n    if (verbose) puts(\"STUB: DGGBAL_ called\");\n    return NULL;\n}\n\nvoid* DGGES(void)\n{\n    if (verbose) puts(\"STUB: DGGES called\");\n    return NULL;\n}\n\nvoid* DGGESX(void)\n{\n    if (verbose) puts(\"STUB: DGGESX called\");\n    return NULL;\n}\n\nvoid* DGGESX_(void)\n{\n    if (verbose) puts(\"STUB: DGGESX_ called\");\n    return NULL;\n}\n\nvoid* DGGES_(void)\n{\n    if (verbose) puts(\"STUB: DGGES_ called\");\n    return NULL;\n}\n\nvoid* DGGEV(void)\n{\n    if (verbose) puts(\"STUB: DGGEV called\");\n    return NULL;\n}\n\nvoid* DGGEVX(void)\n{\n    if (verbose) puts(\"STUB: DGGEVX called\");\n    return NULL;\n}\n\nvoid* DGGEVX_(void)\n{\n    if (verbose) puts(\"STUB: DGGEVX_ called\");\n    return NULL;\n}\n\nvoid* DGGEV_(void)\n{\n    if (verbose) puts(\"STUB: DGGEV_ called\");\n    return NULL;\n}\n\nvoid* DGGGLM(void)\n{\n    if (verbose) puts(\"STUB: DGGGLM called\");\n    return NULL;\n}\n\nvoid* DGGGLM_(void)\n{\n    if (verbose) puts(\"STUB: DGGGLM_ called\");\n    return NULL;\n}\n\nvoid* DGGHRD(void)\n{\n    if (verbose) puts(\"STUB: DGGHRD called\");\n    return NULL;\n}\n\nvoid* DGGHRD_(void)\n{\n    if (verbose) puts(\"STUB: DGGHRD_ called\");\n    return NULL;\n}\n\nvoid* DGGLSE(void)\n{\n    if (verbose) puts(\"STUB: DGGLSE called\");\n    return NULL;\n}\n\nvoid* DGGLSE_(void)\n{\n    if (verbose) puts(\"STUB: DGGLSE_ called\");\n    return NULL;\n}\n\nvoid* DGGQRF(void)\n{\n    if (verbose) puts(\"STUB: DGGQRF called\");\n    return NULL;\n}\n\nvoid* DGGQRF_(void)\n{\n    if (verbose) puts(\"STUB: DGGQRF_ called\");\n    return NULL;\n}\n\nvoid* DGGRQF(void)\n{\n    if (verbose) puts(\"STUB: DGGRQF called\");\n    return NULL;\n}\n\nvoid* DGGRQF_(void)\n{\n    if (verbose) puts(\"STUB: DGGRQF_ called\");\n    return NULL;\n}\n\nvoid* DGGSVD(void)\n{\n    if (verbose) puts(\"STUB: DGGSVD called\");\n    return NULL;\n}\n\nvoid* DGGSVD_(void)\n{\n    if (verbose) puts(\"STUB: DGGSVD_ called\");\n    return NULL;\n}\n\nvoid* DGGSVP(void)\n{\n    if (verbose) puts(\"STUB: DGGSVP called\");\n    return NULL;\n}\n\nvoid* DGGSVP_(void)\n{\n    if (verbose) puts(\"STUB: DGGSVP_ called\");\n    return NULL;\n}\n\nvoid* DGSVJ0(void)\n{\n    if (verbose) puts(\"STUB: DGSVJ0 called\");\n    return NULL;\n}\n\nvoid* DGSVJ0_(void)\n{\n    if (verbose) puts(\"STUB: DGSVJ0_ called\");\n    return NULL;\n}\n\nvoid* DGSVJ1(void)\n{\n    if (verbose) puts(\"STUB: DGSVJ1 called\");\n    return NULL;\n}\n\nvoid* DGSVJ1_(void)\n{\n    if (verbose) puts(\"STUB: DGSVJ1_ called\");\n    return NULL;\n}\n\nvoid* DGTCON(void)\n{\n    if (verbose) puts(\"STUB: DGTCON called\");\n    return NULL;\n}\n\nvoid* DGTCON_(void)\n{\n    if (verbose) puts(\"STUB: DGTCON_ called\");\n    return NULL;\n}\n\nvoid* DGTRFS(void)\n{\n    if (verbose) puts(\"STUB: DGTRFS called\");\n    return NULL;\n}\n\nvoid* DGTRFS_(void)\n{\n    if (verbose) puts(\"STUB: DGTRFS_ called\");\n    return NULL;\n}\n\nvoid* DGTSV(void)\n{\n    if (verbose) puts(\"STUB: DGTSV called\");\n    return NULL;\n}\n\nvoid* DGTSVX(void)\n{\n    if (verbose) puts(\"STUB: DGTSVX called\");\n    return NULL;\n}\n\nvoid* DGTSVX_(void)\n{\n    if (verbose) puts(\"STUB: DGTSVX_ called\");\n    return NULL;\n}\n\nvoid* DGTSV_(void)\n{\n    if (verbose) puts(\"STUB: DGTSV_ called\");\n    return NULL;\n}\n\nvoid* DGTTRF(void)\n{\n    if (verbose) puts(\"STUB: DGTTRF called\");\n    return NULL;\n}\n\nvoid* DGTTRF_(void)\n{\n    if (verbose) puts(\"STUB: DGTTRF_ called\");\n    return NULL;\n}\n\nvoid* DGTTRS(void)\n{\n    if (verbose) puts(\"STUB: DGTTRS called\");\n    return NULL;\n}\n\nvoid* DGTTRS_(void)\n{\n    if (verbose) puts(\"STUB: DGTTRS_ called\");\n    return NULL;\n}\n\nvoid* DGTTS2(void)\n{\n    if (verbose) puts(\"STUB: DGTTS2 called\");\n    return NULL;\n}\n\nvoid* DGTTS2_(void)\n{\n    if (verbose) puts(\"STUB: DGTTS2_ called\");\n    return NULL;\n}\n\nvoid* DHGEQZ(void)\n{\n    if (verbose) puts(\"STUB: DHGEQZ called\");\n    return NULL;\n}\n\nvoid* DHGEQZ_(void)\n{\n    if (verbose) puts(\"STUB: DHGEQZ_ called\");\n    return NULL;\n}\n\nvoid* DHSEIN(void)\n{\n    if (verbose) puts(\"STUB: DHSEIN called\");\n    return NULL;\n}\n\nvoid* DHSEIN_(void)\n{\n    if (verbose) puts(\"STUB: DHSEIN_ called\");\n    return NULL;\n}\n\nvoid* DHSEQR(void)\n{\n    if (verbose) puts(\"STUB: DHSEQR called\");\n    return NULL;\n}\n\nvoid* DHSEQR_(void)\n{\n    if (verbose) puts(\"STUB: DHSEQR_ called\");\n    return NULL;\n}\n\nvoid* DISNAN(void)\n{\n    if (verbose) puts(\"STUB: DISNAN called\");\n    return NULL;\n}\n\nvoid* DISNAN_(void)\n{\n    if (verbose) puts(\"STUB: DISNAN_ called\");\n    return NULL;\n}\n\nvoid* DLABAD(void)\n{\n    if (verbose) puts(\"STUB: DLABAD called\");\n    return NULL;\n}\n\nvoid* DLABAD_(void)\n{\n    if (verbose) puts(\"STUB: DLABAD_ called\");\n    return NULL;\n}\n\nvoid* DLABRD(void)\n{\n    if (verbose) puts(\"STUB: DLABRD called\");\n    return NULL;\n}\n\nvoid* DLABRD_(void)\n{\n    if (verbose) puts(\"STUB: DLABRD_ called\");\n    return NULL;\n}\n\nvoid* DLACN2(void)\n{\n    if (verbose) puts(\"STUB: DLACN2 called\");\n    return NULL;\n}\n\nvoid* DLACN2_(void)\n{\n    if (verbose) puts(\"STUB: DLACN2_ called\");\n    return NULL;\n}\n\nvoid* DLACON(void)\n{\n    if (verbose) puts(\"STUB: DLACON called\");\n    return NULL;\n}\n\nvoid* DLACON_(void)\n{\n    if (verbose) puts(\"STUB: DLACON_ called\");\n    return NULL;\n}\n\nvoid* DLACPY(void)\n{\n    if (verbose) puts(\"STUB: DLACPY called\");\n    return NULL;\n}\n\nvoid* DLACPY_(void)\n{\n    if (verbose) puts(\"STUB: DLACPY_ called\");\n    return NULL;\n}\n\nvoid* DLADIV(void)\n{\n    if (verbose) puts(\"STUB: DLADIV called\");\n    return NULL;\n}\n\nvoid* DLADIV_(void)\n{\n    if (verbose) puts(\"STUB: DLADIV_ called\");\n    return NULL;\n}\n\nvoid* DLAE2(void)\n{\n    if (verbose) puts(\"STUB: DLAE2 called\");\n    return NULL;\n}\n\nvoid* DLAE2_(void)\n{\n    if (verbose) puts(\"STUB: DLAE2_ called\");\n    return NULL;\n}\n\nvoid* DLAEBZ(void)\n{\n    if (verbose) puts(\"STUB: DLAEBZ called\");\n    return NULL;\n}\n\nvoid* DLAEBZ_(void)\n{\n    if (verbose) puts(\"STUB: DLAEBZ_ called\");\n    return NULL;\n}\n\nvoid* DLAED0(void)\n{\n    if (verbose) puts(\"STUB: DLAED0 called\");\n    return NULL;\n}\n\nvoid* DLAED0_(void)\n{\n    if (verbose) puts(\"STUB: DLAED0_ called\");\n    return NULL;\n}\n\nvoid* DLAED1(void)\n{\n    if (verbose) puts(\"STUB: DLAED1 called\");\n    return NULL;\n}\n\nvoid* DLAED1_(void)\n{\n    if (verbose) puts(\"STUB: DLAED1_ called\");\n    return NULL;\n}\n\nvoid* DLAED2(void)\n{\n    if (verbose) puts(\"STUB: DLAED2 called\");\n    return NULL;\n}\n\nvoid* DLAED2_(void)\n{\n    if (verbose) puts(\"STUB: DLAED2_ called\");\n    return NULL;\n}\n\nvoid* DLAED3(void)\n{\n    if (verbose) puts(\"STUB: DLAED3 called\");\n    return NULL;\n}\n\nvoid* DLAED3_(void)\n{\n    if (verbose) puts(\"STUB: DLAED3_ called\");\n    return NULL;\n}\n\nvoid* DLAED4(void)\n{\n    if (verbose) puts(\"STUB: DLAED4 called\");\n    return NULL;\n}\n\nvoid* DLAED4_(void)\n{\n    if (verbose) puts(\"STUB: DLAED4_ called\");\n    return NULL;\n}\n\nvoid* DLAED5(void)\n{\n    if (verbose) puts(\"STUB: DLAED5 called\");\n    return NULL;\n}\n\nvoid* DLAED5_(void)\n{\n    if (verbose) puts(\"STUB: DLAED5_ called\");\n    return NULL;\n}\n\nvoid* DLAED6(void)\n{\n    if (verbose) puts(\"STUB: DLAED6 called\");\n    return NULL;\n}\n\nvoid* DLAED6_(void)\n{\n    if (verbose) puts(\"STUB: DLAED6_ called\");\n    return NULL;\n}\n\nvoid* DLAED7(void)\n{\n    if (verbose) puts(\"STUB: DLAED7 called\");\n    return NULL;\n}\n\nvoid* DLAED7_(void)\n{\n    if (verbose) puts(\"STUB: DLAED7_ called\");\n    return NULL;\n}\n\nvoid* DLAED8(void)\n{\n    if (verbose) puts(\"STUB: DLAED8 called\");\n    return NULL;\n}\n\nvoid* DLAED8_(void)\n{\n    if (verbose) puts(\"STUB: DLAED8_ called\");\n    return NULL;\n}\n\nvoid* DLAED9(void)\n{\n    if (verbose) puts(\"STUB: DLAED9 called\");\n    return NULL;\n}\n\nvoid* DLAED9_(void)\n{\n    if (verbose) puts(\"STUB: DLAED9_ called\");\n    return NULL;\n}\n\nvoid* DLAEDA(void)\n{\n    if (verbose) puts(\"STUB: DLAEDA called\");\n    return NULL;\n}\n\nvoid* DLAEDA_(void)\n{\n    if (verbose) puts(\"STUB: DLAEDA_ called\");\n    return NULL;\n}\n\nvoid* DLAEIN(void)\n{\n    if (verbose) puts(\"STUB: DLAEIN called\");\n    return NULL;\n}\n\nvoid* DLAEIN_(void)\n{\n    if (verbose) puts(\"STUB: DLAEIN_ called\");\n    return NULL;\n}\n\nvoid* DLAEV2(void)\n{\n    if (verbose) puts(\"STUB: DLAEV2 called\");\n    return NULL;\n}\n\nvoid* DLAEV2_(void)\n{\n    if (verbose) puts(\"STUB: DLAEV2_ called\");\n    return NULL;\n}\n\nvoid* DLAEXC(void)\n{\n    if (verbose) puts(\"STUB: DLAEXC called\");\n    return NULL;\n}\n\nvoid* DLAEXC_(void)\n{\n    if (verbose) puts(\"STUB: DLAEXC_ called\");\n    return NULL;\n}\n\nvoid* DLAG2(void)\n{\n    if (verbose) puts(\"STUB: DLAG2 called\");\n    return NULL;\n}\n\nvoid* DLAG2S(void)\n{\n    if (verbose) puts(\"STUB: DLAG2S called\");\n    return NULL;\n}\n\nvoid* DLAG2S_(void)\n{\n    if (verbose) puts(\"STUB: DLAG2S_ called\");\n    return NULL;\n}\n\nvoid* DLAG2_(void)\n{\n    if (verbose) puts(\"STUB: DLAG2_ called\");\n    return NULL;\n}\n\nvoid* DLAGS2(void)\n{\n    if (verbose) puts(\"STUB: DLAGS2 called\");\n    return NULL;\n}\n\nvoid* DLAGS2_(void)\n{\n    if (verbose) puts(\"STUB: DLAGS2_ called\");\n    return NULL;\n}\n\nvoid* DLAGTF(void)\n{\n    if (verbose) puts(\"STUB: DLAGTF called\");\n    return NULL;\n}\n\nvoid* DLAGTF_(void)\n{\n    if (verbose) puts(\"STUB: DLAGTF_ called\");\n    return NULL;\n}\n\nvoid* DLAGTM(void)\n{\n    if (verbose) puts(\"STUB: DLAGTM called\");\n    return NULL;\n}\n\nvoid* DLAGTM_(void)\n{\n    if (verbose) puts(\"STUB: DLAGTM_ called\");\n    return NULL;\n}\n\nvoid* DLAGTS(void)\n{\n    if (verbose) puts(\"STUB: DLAGTS called\");\n    return NULL;\n}\n\nvoid* DLAGTS_(void)\n{\n    if (verbose) puts(\"STUB: DLAGTS_ called\");\n    return NULL;\n}\n\nvoid* DLAGV2(void)\n{\n    if (verbose) puts(\"STUB: DLAGV2 called\");\n    return NULL;\n}\n\nvoid* DLAGV2_(void)\n{\n    if (verbose) puts(\"STUB: DLAGV2_ called\");\n    return NULL;\n}\n\nvoid* DLAHQR(void)\n{\n    if (verbose) puts(\"STUB: DLAHQR called\");\n    return NULL;\n}\n\nvoid* DLAHQR_(void)\n{\n    if (verbose) puts(\"STUB: DLAHQR_ called\");\n    return NULL;\n}\n\nvoid* DLAHR2(void)\n{\n    if (verbose) puts(\"STUB: DLAHR2 called\");\n    return NULL;\n}\n\nvoid* DLAHR2_(void)\n{\n    if (verbose) puts(\"STUB: DLAHR2_ called\");\n    return NULL;\n}\n\nvoid* DLAHRD(void)\n{\n    if (verbose) puts(\"STUB: DLAHRD called\");\n    return NULL;\n}\n\nvoid* DLAHRD_(void)\n{\n    if (verbose) puts(\"STUB: DLAHRD_ called\");\n    return NULL;\n}\n\nvoid* DLAIC1(void)\n{\n    if (verbose) puts(\"STUB: DLAIC1 called\");\n    return NULL;\n}\n\nvoid* DLAIC1_(void)\n{\n    if (verbose) puts(\"STUB: DLAIC1_ called\");\n    return NULL;\n}\n\nvoid* DLAISNAN(void)\n{\n    if (verbose) puts(\"STUB: DLAISNAN called\");\n    return NULL;\n}\n\nvoid* DLAISNAN_(void)\n{\n    if (verbose) puts(\"STUB: DLAISNAN_ called\");\n    return NULL;\n}\n\nvoid* DLALN2(void)\n{\n    if (verbose) puts(\"STUB: DLALN2 called\");\n    return NULL;\n}\n\nvoid* DLALN2_(void)\n{\n    if (verbose) puts(\"STUB: DLALN2_ called\");\n    return NULL;\n}\n\nvoid* DLALS0(void)\n{\n    if (verbose) puts(\"STUB: DLALS0 called\");\n    return NULL;\n}\n\nvoid* DLALS0_(void)\n{\n    if (verbose) puts(\"STUB: DLALS0_ called\");\n    return NULL;\n}\n\nvoid* DLALSA(void)\n{\n    if (verbose) puts(\"STUB: DLALSA called\");\n    return NULL;\n}\n\nvoid* DLALSA_(void)\n{\n    if (verbose) puts(\"STUB: DLALSA_ called\");\n    return NULL;\n}\n\nvoid* DLALSD(void)\n{\n    if (verbose) puts(\"STUB: DLALSD called\");\n    return NULL;\n}\n\nvoid* DLALSD_(void)\n{\n    if (verbose) puts(\"STUB: DLALSD_ called\");\n    return NULL;\n}\n\nvoid* DLAMC1(void)\n{\n    if (verbose) puts(\"STUB: DLAMC1 called\");\n    return NULL;\n}\n\nvoid* DLAMC1_(void)\n{\n    if (verbose) puts(\"STUB: DLAMC1_ called\");\n    return NULL;\n}\n\nvoid* DLAMC2(void)\n{\n    if (verbose) puts(\"STUB: DLAMC2 called\");\n    return NULL;\n}\n\nvoid* DLAMC2_(void)\n{\n    if (verbose) puts(\"STUB: DLAMC2_ called\");\n    return NULL;\n}\n\nvoid* DLAMC3(void)\n{\n    if (verbose) puts(\"STUB: DLAMC3 called\");\n    return NULL;\n}\n\nvoid* DLAMC3_(void)\n{\n    if (verbose) puts(\"STUB: DLAMC3_ called\");\n    return NULL;\n}\n\nvoid* DLAMC4(void)\n{\n    if (verbose) puts(\"STUB: DLAMC4 called\");\n    return NULL;\n}\n\nvoid* DLAMC4_(void)\n{\n    if (verbose) puts(\"STUB: DLAMC4_ called\");\n    return NULL;\n}\n\nvoid* DLAMC5(void)\n{\n    if (verbose) puts(\"STUB: DLAMC5 called\");\n    return NULL;\n}\n\nvoid* DLAMC5_(void)\n{\n    if (verbose) puts(\"STUB: DLAMC5_ called\");\n    return NULL;\n}\n\nvoid* DLAMCH(void)\n{\n    if (verbose) puts(\"STUB: DLAMCH called\");\n    return NULL;\n}\n\nvoid* DLAMCH_(void)\n{\n    if (verbose) puts(\"STUB: DLAMCH_ called\");\n    return NULL;\n}\n\nvoid* DLAMRG(void)\n{\n    if (verbose) puts(\"STUB: DLAMRG called\");\n    return NULL;\n}\n\nvoid* DLAMRG_(void)\n{\n    if (verbose) puts(\"STUB: DLAMRG_ called\");\n    return NULL;\n}\n\nvoid* DLANEG(void)\n{\n    if (verbose) puts(\"STUB: DLANEG called\");\n    return NULL;\n}\n\nvoid* DLANEG_(void)\n{\n    if (verbose) puts(\"STUB: DLANEG_ called\");\n    return NULL;\n}\n\nvoid* DLANGB(void)\n{\n    if (verbose) puts(\"STUB: DLANGB called\");\n    return NULL;\n}\n\nvoid* DLANGB_(void)\n{\n    if (verbose) puts(\"STUB: DLANGB_ called\");\n    return NULL;\n}\n\nvoid* DLANGE(void)\n{\n    if (verbose) puts(\"STUB: DLANGE called\");\n    return NULL;\n}\n\nvoid* DLANGE_(void)\n{\n    if (verbose) puts(\"STUB: DLANGE_ called\");\n    return NULL;\n}\n\nvoid* DLANGT(void)\n{\n    if (verbose) puts(\"STUB: DLANGT called\");\n    return NULL;\n}\n\nvoid* DLANGT_(void)\n{\n    if (verbose) puts(\"STUB: DLANGT_ called\");\n    return NULL;\n}\n\nvoid* DLANHS(void)\n{\n    if (verbose) puts(\"STUB: DLANHS called\");\n    return NULL;\n}\n\nvoid* DLANHS_(void)\n{\n    if (verbose) puts(\"STUB: DLANHS_ called\");\n    return NULL;\n}\n\nvoid* DLANSB(void)\n{\n    if (verbose) puts(\"STUB: DLANSB called\");\n    return NULL;\n}\n\nvoid* DLANSB_(void)\n{\n    if (verbose) puts(\"STUB: DLANSB_ called\");\n    return NULL;\n}\n\nvoid* DLANSF(void)\n{\n    if (verbose) puts(\"STUB: DLANSF called\");\n    return NULL;\n}\n\nvoid* DLANSF_(void)\n{\n    if (verbose) puts(\"STUB: DLANSF_ called\");\n    return NULL;\n}\n\nvoid* DLANSP(void)\n{\n    if (verbose) puts(\"STUB: DLANSP called\");\n    return NULL;\n}\n\nvoid* DLANSP_(void)\n{\n    if (verbose) puts(\"STUB: DLANSP_ called\");\n    return NULL;\n}\n\nvoid* DLANST(void)\n{\n    if (verbose) puts(\"STUB: DLANST called\");\n    return NULL;\n}\n\nvoid* DLANST_(void)\n{\n    if (verbose) puts(\"STUB: DLANST_ called\");\n    return NULL;\n}\n\nvoid* DLANSY(void)\n{\n    if (verbose) puts(\"STUB: DLANSY called\");\n    return NULL;\n}\n\nvoid* DLANSY_(void)\n{\n    if (verbose) puts(\"STUB: DLANSY_ called\");\n    return NULL;\n}\n\nvoid* DLANTB(void)\n{\n    if (verbose) puts(\"STUB: DLANTB called\");\n    return NULL;\n}\n\nvoid* DLANTB_(void)\n{\n    if (verbose) puts(\"STUB: DLANTB_ called\");\n    return NULL;\n}\n\nvoid* DLANTP(void)\n{\n    if (verbose) puts(\"STUB: DLANTP called\");\n    return NULL;\n}\n\nvoid* DLANTP_(void)\n{\n    if (verbose) puts(\"STUB: DLANTP_ called\");\n    return NULL;\n}\n\nvoid* DLANTR(void)\n{\n    if (verbose) puts(\"STUB: DLANTR called\");\n    return NULL;\n}\n\nvoid* DLANTR_(void)\n{\n    if (verbose) puts(\"STUB: DLANTR_ called\");\n    return NULL;\n}\n\nvoid* DLANV2(void)\n{\n    if (verbose) puts(\"STUB: DLANV2 called\");\n    return NULL;\n}\n\nvoid* DLANV2_(void)\n{\n    if (verbose) puts(\"STUB: DLANV2_ called\");\n    return NULL;\n}\n\nvoid* DLAPLL(void)\n{\n    if (verbose) puts(\"STUB: DLAPLL called\");\n    return NULL;\n}\n\nvoid* DLAPLL_(void)\n{\n    if (verbose) puts(\"STUB: DLAPLL_ called\");\n    return NULL;\n}\n\nvoid* DLAPMT(void)\n{\n    if (verbose) puts(\"STUB: DLAPMT called\");\n    return NULL;\n}\n\nvoid* DLAPMT_(void)\n{\n    if (verbose) puts(\"STUB: DLAPMT_ called\");\n    return NULL;\n}\n\nvoid* DLAPY2(void)\n{\n    if (verbose) puts(\"STUB: DLAPY2 called\");\n    return NULL;\n}\n\nvoid* DLAPY2_(void)\n{\n    if (verbose) puts(\"STUB: DLAPY2_ called\");\n    return NULL;\n}\n\nvoid* DLAPY3(void)\n{\n    if (verbose) puts(\"STUB: DLAPY3 called\");\n    return NULL;\n}\n\nvoid* DLAPY3_(void)\n{\n    if (verbose) puts(\"STUB: DLAPY3_ called\");\n    return NULL;\n}\n\nvoid* DLAQGB(void)\n{\n    if (verbose) puts(\"STUB: DLAQGB called\");\n    return NULL;\n}\n\nvoid* DLAQGB_(void)\n{\n    if (verbose) puts(\"STUB: DLAQGB_ called\");\n    return NULL;\n}\n\nvoid* DLAQGE(void)\n{\n    if (verbose) puts(\"STUB: DLAQGE called\");\n    return NULL;\n}\n\nvoid* DLAQGE_(void)\n{\n    if (verbose) puts(\"STUB: DLAQGE_ called\");\n    return NULL;\n}\n\nvoid* DLAQP2(void)\n{\n    if (verbose) puts(\"STUB: DLAQP2 called\");\n    return NULL;\n}\n\nvoid* DLAQP2_(void)\n{\n    if (verbose) puts(\"STUB: DLAQP2_ called\");\n    return NULL;\n}\n\nvoid* DLAQPS(void)\n{\n    if (verbose) puts(\"STUB: DLAQPS called\");\n    return NULL;\n}\n\nvoid* DLAQPS_(void)\n{\n    if (verbose) puts(\"STUB: DLAQPS_ called\");\n    return NULL;\n}\n\nvoid* DLAQR0(void)\n{\n    if (verbose) puts(\"STUB: DLAQR0 called\");\n    return NULL;\n}\n\nvoid* DLAQR0_(void)\n{\n    if (verbose) puts(\"STUB: DLAQR0_ called\");\n    return NULL;\n}\n\nvoid* DLAQR1(void)\n{\n    if (verbose) puts(\"STUB: DLAQR1 called\");\n    return NULL;\n}\n\nvoid* DLAQR1_(void)\n{\n    if (verbose) puts(\"STUB: DLAQR1_ called\");\n    return NULL;\n}\n\nvoid* DLAQR2(void)\n{\n    if (verbose) puts(\"STUB: DLAQR2 called\");\n    return NULL;\n}\n\nvoid* DLAQR2_(void)\n{\n    if (verbose) puts(\"STUB: DLAQR2_ called\");\n    return NULL;\n}\n\nvoid* DLAQR3(void)\n{\n    if (verbose) puts(\"STUB: DLAQR3 called\");\n    return NULL;\n}\n\nvoid* DLAQR3_(void)\n{\n    if (verbose) puts(\"STUB: DLAQR3_ called\");\n    return NULL;\n}\n\nvoid* DLAQR4(void)\n{\n    if (verbose) puts(\"STUB: DLAQR4 called\");\n    return NULL;\n}\n\nvoid* DLAQR4_(void)\n{\n    if (verbose) puts(\"STUB: DLAQR4_ called\");\n    return NULL;\n}\n\nvoid* DLAQR5(void)\n{\n    if (verbose) puts(\"STUB: DLAQR5 called\");\n    return NULL;\n}\n\nvoid* DLAQR5_(void)\n{\n    if (verbose) puts(\"STUB: DLAQR5_ called\");\n    return NULL;\n}\n\nvoid* DLAQSB(void)\n{\n    if (verbose) puts(\"STUB: DLAQSB called\");\n    return NULL;\n}\n\nvoid* DLAQSB_(void)\n{\n    if (verbose) puts(\"STUB: DLAQSB_ called\");\n    return NULL;\n}\n\nvoid* DLAQSP(void)\n{\n    if (verbose) puts(\"STUB: DLAQSP called\");\n    return NULL;\n}\n\nvoid* DLAQSP_(void)\n{\n    if (verbose) puts(\"STUB: DLAQSP_ called\");\n    return NULL;\n}\n\nvoid* DLAQSY(void)\n{\n    if (verbose) puts(\"STUB: DLAQSY called\");\n    return NULL;\n}\n\nvoid* DLAQSY_(void)\n{\n    if (verbose) puts(\"STUB: DLAQSY_ called\");\n    return NULL;\n}\n\nvoid* DLAQTR(void)\n{\n    if (verbose) puts(\"STUB: DLAQTR called\");\n    return NULL;\n}\n\nvoid* DLAQTR_(void)\n{\n    if (verbose) puts(\"STUB: DLAQTR_ called\");\n    return NULL;\n}\n\nvoid* DLAR1V(void)\n{\n    if (verbose) puts(\"STUB: DLAR1V called\");\n    return NULL;\n}\n\nvoid* DLAR1V_(void)\n{\n    if (verbose) puts(\"STUB: DLAR1V_ called\");\n    return NULL;\n}\n\nvoid* DLAR2V(void)\n{\n    if (verbose) puts(\"STUB: DLAR2V called\");\n    return NULL;\n}\n\nvoid* DLAR2V_(void)\n{\n    if (verbose) puts(\"STUB: DLAR2V_ called\");\n    return NULL;\n}\n\nvoid* DLARF(void)\n{\n    if (verbose) puts(\"STUB: DLARF called\");\n    return NULL;\n}\n\nvoid* DLARFB(void)\n{\n    if (verbose) puts(\"STUB: DLARFB called\");\n    return NULL;\n}\n\nvoid* DLARFB_(void)\n{\n    if (verbose) puts(\"STUB: DLARFB_ called\");\n    return NULL;\n}\n\nvoid* DLARFG(void)\n{\n    if (verbose) puts(\"STUB: DLARFG called\");\n    return NULL;\n}\n\nvoid* DLARFG_(void)\n{\n    if (verbose) puts(\"STUB: DLARFG_ called\");\n    return NULL;\n}\n\nvoid* DLARFP(void)\n{\n    if (verbose) puts(\"STUB: DLARFP called\");\n    return NULL;\n}\n\nvoid* DLARFP_(void)\n{\n    if (verbose) puts(\"STUB: DLARFP_ called\");\n    return NULL;\n}\n\nvoid* DLARFT(void)\n{\n    if (verbose) puts(\"STUB: DLARFT called\");\n    return NULL;\n}\n\nvoid* DLARFT_(void)\n{\n    if (verbose) puts(\"STUB: DLARFT_ called\");\n    return NULL;\n}\n\nvoid* DLARFX(void)\n{\n    if (verbose) puts(\"STUB: DLARFX called\");\n    return NULL;\n}\n\nvoid* DLARFX_(void)\n{\n    if (verbose) puts(\"STUB: DLARFX_ called\");\n    return NULL;\n}\n\nvoid* DLARF_(void)\n{\n    if (verbose) puts(\"STUB: DLARF_ called\");\n    return NULL;\n}\n\nvoid* DLARGV(void)\n{\n    if (verbose) puts(\"STUB: DLARGV called\");\n    return NULL;\n}\n\nvoid* DLARGV_(void)\n{\n    if (verbose) puts(\"STUB: DLARGV_ called\");\n    return NULL;\n}\n\nvoid* DLARNV(void)\n{\n    if (verbose) puts(\"STUB: DLARNV called\");\n    return NULL;\n}\n\nvoid* DLARNV_(void)\n{\n    if (verbose) puts(\"STUB: DLARNV_ called\");\n    return NULL;\n}\n\nvoid* DLARRA(void)\n{\n    if (verbose) puts(\"STUB: DLARRA called\");\n    return NULL;\n}\n\nvoid* DLARRA_(void)\n{\n    if (verbose) puts(\"STUB: DLARRA_ called\");\n    return NULL;\n}\n\nvoid* DLARRB(void)\n{\n    if (verbose) puts(\"STUB: DLARRB called\");\n    return NULL;\n}\n\nvoid* DLARRB_(void)\n{\n    if (verbose) puts(\"STUB: DLARRB_ called\");\n    return NULL;\n}\n\nvoid* DLARRC(void)\n{\n    if (verbose) puts(\"STUB: DLARRC called\");\n    return NULL;\n}\n\nvoid* DLARRC_(void)\n{\n    if (verbose) puts(\"STUB: DLARRC_ called\");\n    return NULL;\n}\n\nvoid* DLARRD(void)\n{\n    if (verbose) puts(\"STUB: DLARRD called\");\n    return NULL;\n}\n\nvoid* DLARRD_(void)\n{\n    if (verbose) puts(\"STUB: DLARRD_ called\");\n    return NULL;\n}\n\nvoid* DLARRE(void)\n{\n    if (verbose) puts(\"STUB: DLARRE called\");\n    return NULL;\n}\n\nvoid* DLARRE_(void)\n{\n    if (verbose) puts(\"STUB: DLARRE_ called\");\n    return NULL;\n}\n\nvoid* DLARRF(void)\n{\n    if (verbose) puts(\"STUB: DLARRF called\");\n    return NULL;\n}\n\nvoid* DLARRF_(void)\n{\n    if (verbose) puts(\"STUB: DLARRF_ called\");\n    return NULL;\n}\n\nvoid* DLARRJ(void)\n{\n    if (verbose) puts(\"STUB: DLARRJ called\");\n    return NULL;\n}\n\nvoid* DLARRJ_(void)\n{\n    if (verbose) puts(\"STUB: DLARRJ_ called\");\n    return NULL;\n}\n\nvoid* DLARRK(void)\n{\n    if (verbose) puts(\"STUB: DLARRK called\");\n    return NULL;\n}\n\nvoid* DLARRK_(void)\n{\n    if (verbose) puts(\"STUB: DLARRK_ called\");\n    return NULL;\n}\n\nvoid* DLARRR(void)\n{\n    if (verbose) puts(\"STUB: DLARRR called\");\n    return NULL;\n}\n\nvoid* DLARRR_(void)\n{\n    if (verbose) puts(\"STUB: DLARRR_ called\");\n    return NULL;\n}\n\nvoid* DLARRV(void)\n{\n    if (verbose) puts(\"STUB: DLARRV called\");\n    return NULL;\n}\n\nvoid* DLARRV_(void)\n{\n    if (verbose) puts(\"STUB: DLARRV_ called\");\n    return NULL;\n}\n\nvoid* DLARSCL2(void)\n{\n    if (verbose) puts(\"STUB: DLARSCL2 called\");\n    return NULL;\n}\n\nvoid* DLARSCL2_(void)\n{\n    if (verbose) puts(\"STUB: DLARSCL2_ called\");\n    return NULL;\n}\n\nvoid* DLARTG(void)\n{\n    if (verbose) puts(\"STUB: DLARTG called\");\n    return NULL;\n}\n\nvoid* DLARTG_(void)\n{\n    if (verbose) puts(\"STUB: DLARTG_ called\");\n    return NULL;\n}\n\nvoid* DLARTV(void)\n{\n    if (verbose) puts(\"STUB: DLARTV called\");\n    return NULL;\n}\n\nvoid* DLARTV_(void)\n{\n    if (verbose) puts(\"STUB: DLARTV_ called\");\n    return NULL;\n}\n\nvoid* DLARUV(void)\n{\n    if (verbose) puts(\"STUB: DLARUV called\");\n    return NULL;\n}\n\nvoid* DLARUV_(void)\n{\n    if (verbose) puts(\"STUB: DLARUV_ called\");\n    return NULL;\n}\n\nvoid* DLARZ(void)\n{\n    if (verbose) puts(\"STUB: DLARZ called\");\n    return NULL;\n}\n\nvoid* DLARZB(void)\n{\n    if (verbose) puts(\"STUB: DLARZB called\");\n    return NULL;\n}\n\nvoid* DLARZB_(void)\n{\n    if (verbose) puts(\"STUB: DLARZB_ called\");\n    return NULL;\n}\n\nvoid* DLARZT(void)\n{\n    if (verbose) puts(\"STUB: DLARZT called\");\n    return NULL;\n}\n\nvoid* DLARZT_(void)\n{\n    if (verbose) puts(\"STUB: DLARZT_ called\");\n    return NULL;\n}\n\nvoid* DLARZ_(void)\n{\n    if (verbose) puts(\"STUB: DLARZ_ called\");\n    return NULL;\n}\n\nvoid* DLAS2(void)\n{\n    if (verbose) puts(\"STUB: DLAS2 called\");\n    return NULL;\n}\n\nvoid* DLAS2_(void)\n{\n    if (verbose) puts(\"STUB: DLAS2_ called\");\n    return NULL;\n}\n\nvoid* DLASCL(void)\n{\n    if (verbose) puts(\"STUB: DLASCL called\");\n    return NULL;\n}\n\nvoid* DLASCL2(void)\n{\n    if (verbose) puts(\"STUB: DLASCL2 called\");\n    return NULL;\n}\n\nvoid* DLASCL2_(void)\n{\n    if (verbose) puts(\"STUB: DLASCL2_ called\");\n    return NULL;\n}\n\nvoid* DLASCL_(void)\n{\n    if (verbose) puts(\"STUB: DLASCL_ called\");\n    return NULL;\n}\n\nvoid* DLASD0(void)\n{\n    if (verbose) puts(\"STUB: DLASD0 called\");\n    return NULL;\n}\n\nvoid* DLASD0_(void)\n{\n    if (verbose) puts(\"STUB: DLASD0_ called\");\n    return NULL;\n}\n\nvoid* DLASD1(void)\n{\n    if (verbose) puts(\"STUB: DLASD1 called\");\n    return NULL;\n}\n\nvoid* DLASD1_(void)\n{\n    if (verbose) puts(\"STUB: DLASD1_ called\");\n    return NULL;\n}\n\nvoid* DLASD2(void)\n{\n    if (verbose) puts(\"STUB: DLASD2 called\");\n    return NULL;\n}\n\nvoid* DLASD2_(void)\n{\n    if (verbose) puts(\"STUB: DLASD2_ called\");\n    return NULL;\n}\n\nvoid* DLASD3(void)\n{\n    if (verbose) puts(\"STUB: DLASD3 called\");\n    return NULL;\n}\n\nvoid* DLASD3_(void)\n{\n    if (verbose) puts(\"STUB: DLASD3_ called\");\n    return NULL;\n}\n\nvoid* DLASD4(void)\n{\n    if (verbose) puts(\"STUB: DLASD4 called\");\n    return NULL;\n}\n\nvoid* DLASD4_(void)\n{\n    if (verbose) puts(\"STUB: DLASD4_ called\");\n    return NULL;\n}\n\nvoid* DLASD5(void)\n{\n    if (verbose) puts(\"STUB: DLASD5 called\");\n    return NULL;\n}\n\nvoid* DLASD5_(void)\n{\n    if (verbose) puts(\"STUB: DLASD5_ called\");\n    return NULL;\n}\n\nvoid* DLASD6(void)\n{\n    if (verbose) puts(\"STUB: DLASD6 called\");\n    return NULL;\n}\n\nvoid* DLASD6_(void)\n{\n    if (verbose) puts(\"STUB: DLASD6_ called\");\n    return NULL;\n}\n\nvoid* DLASD7(void)\n{\n    if (verbose) puts(\"STUB: DLASD7 called\");\n    return NULL;\n}\n\nvoid* DLASD7_(void)\n{\n    if (verbose) puts(\"STUB: DLASD7_ called\");\n    return NULL;\n}\n\nvoid* DLASD8(void)\n{\n    if (verbose) puts(\"STUB: DLASD8 called\");\n    return NULL;\n}\n\nvoid* DLASD8_(void)\n{\n    if (verbose) puts(\"STUB: DLASD8_ called\");\n    return NULL;\n}\n\nvoid* DLASD9(void)\n{\n    if (verbose) puts(\"STUB: DLASD9 called\");\n    return NULL;\n}\n\nvoid* DLASD9_(void)\n{\n    if (verbose) puts(\"STUB: DLASD9_ called\");\n    return NULL;\n}\n\nvoid* DLASDA(void)\n{\n    if (verbose) puts(\"STUB: DLASDA called\");\n    return NULL;\n}\n\nvoid* DLASDA_(void)\n{\n    if (verbose) puts(\"STUB: DLASDA_ called\");\n    return NULL;\n}\n\nvoid* DLASDQ(void)\n{\n    if (verbose) puts(\"STUB: DLASDQ called\");\n    return NULL;\n}\n\nvoid* DLASDQ_(void)\n{\n    if (verbose) puts(\"STUB: DLASDQ_ called\");\n    return NULL;\n}\n\nvoid* DLASDT(void)\n{\n    if (verbose) puts(\"STUB: DLASDT called\");\n    return NULL;\n}\n\nvoid* DLASDT_(void)\n{\n    if (verbose) puts(\"STUB: DLASDT_ called\");\n    return NULL;\n}\n\nvoid* DLASET(void)\n{\n    if (verbose) puts(\"STUB: DLASET called\");\n    return NULL;\n}\n\nvoid* DLASET_(void)\n{\n    if (verbose) puts(\"STUB: DLASET_ called\");\n    return NULL;\n}\n\nvoid* DLASQ1(void)\n{\n    if (verbose) puts(\"STUB: DLASQ1 called\");\n    return NULL;\n}\n\nvoid* DLASQ1_(void)\n{\n    if (verbose) puts(\"STUB: DLASQ1_ called\");\n    return NULL;\n}\n\nvoid* DLASQ2(void)\n{\n    if (verbose) puts(\"STUB: DLASQ2 called\");\n    return NULL;\n}\n\nvoid* DLASQ2_(void)\n{\n    if (verbose) puts(\"STUB: DLASQ2_ called\");\n    return NULL;\n}\n\nvoid* DLASQ3(void)\n{\n    if (verbose) puts(\"STUB: DLASQ3 called\");\n    return NULL;\n}\n\nvoid* DLASQ3_(void)\n{\n    if (verbose) puts(\"STUB: DLASQ3_ called\");\n    return NULL;\n}\n\nvoid* DLASQ4(void)\n{\n    if (verbose) puts(\"STUB: DLASQ4 called\");\n    return NULL;\n}\n\nvoid* DLASQ4_(void)\n{\n    if (verbose) puts(\"STUB: DLASQ4_ called\");\n    return NULL;\n}\n\nvoid* DLASQ5(void)\n{\n    if (verbose) puts(\"STUB: DLASQ5 called\");\n    return NULL;\n}\n\nvoid* DLASQ5_(void)\n{\n    if (verbose) puts(\"STUB: DLASQ5_ called\");\n    return NULL;\n}\n\nvoid* DLASQ6(void)\n{\n    if (verbose) puts(\"STUB: DLASQ6 called\");\n    return NULL;\n}\n\nvoid* DLASQ6_(void)\n{\n    if (verbose) puts(\"STUB: DLASQ6_ called\");\n    return NULL;\n}\n\nvoid* DLASR(void)\n{\n    if (verbose) puts(\"STUB: DLASR called\");\n    return NULL;\n}\n\nvoid* DLASRT(void)\n{\n    if (verbose) puts(\"STUB: DLASRT called\");\n    return NULL;\n}\n\nvoid* DLASRT_(void)\n{\n    if (verbose) puts(\"STUB: DLASRT_ called\");\n    return NULL;\n}\n\nvoid* DLASR_(void)\n{\n    if (verbose) puts(\"STUB: DLASR_ called\");\n    return NULL;\n}\n\nvoid* DLASSQ(void)\n{\n    if (verbose) puts(\"STUB: DLASSQ called\");\n    return NULL;\n}\n\nvoid* DLASSQ_(void)\n{\n    if (verbose) puts(\"STUB: DLASSQ_ called\");\n    return NULL;\n}\n\nvoid* DLASV2(void)\n{\n    if (verbose) puts(\"STUB: DLASV2 called\");\n    return NULL;\n}\n\nvoid* DLASV2_(void)\n{\n    if (verbose) puts(\"STUB: DLASV2_ called\");\n    return NULL;\n}\n\nvoid* DLASWP(void)\n{\n    if (verbose) puts(\"STUB: DLASWP called\");\n    return NULL;\n}\n\nvoid* DLASWP_(void)\n{\n    if (verbose) puts(\"STUB: DLASWP_ called\");\n    return NULL;\n}\n\nvoid* DLASY2(void)\n{\n    if (verbose) puts(\"STUB: DLASY2 called\");\n    return NULL;\n}\n\nvoid* DLASY2_(void)\n{\n    if (verbose) puts(\"STUB: DLASY2_ called\");\n    return NULL;\n}\n\nvoid* DLASYF(void)\n{\n    if (verbose) puts(\"STUB: DLASYF called\");\n    return NULL;\n}\n\nvoid* DLASYF_(void)\n{\n    if (verbose) puts(\"STUB: DLASYF_ called\");\n    return NULL;\n}\n\nvoid* DLAT2S(void)\n{\n    if (verbose) puts(\"STUB: DLAT2S called\");\n    return NULL;\n}\n\nvoid* DLAT2S_(void)\n{\n    if (verbose) puts(\"STUB: DLAT2S_ called\");\n    return NULL;\n}\n\nvoid* DLATBS(void)\n{\n    if (verbose) puts(\"STUB: DLATBS called\");\n    return NULL;\n}\n\nvoid* DLATBS_(void)\n{\n    if (verbose) puts(\"STUB: DLATBS_ called\");\n    return NULL;\n}\n\nvoid* DLATDF(void)\n{\n    if (verbose) puts(\"STUB: DLATDF called\");\n    return NULL;\n}\n\nvoid* DLATDF_(void)\n{\n    if (verbose) puts(\"STUB: DLATDF_ called\");\n    return NULL;\n}\n\nvoid* DLATPS(void)\n{\n    if (verbose) puts(\"STUB: DLATPS called\");\n    return NULL;\n}\n\nvoid* DLATPS_(void)\n{\n    if (verbose) puts(\"STUB: DLATPS_ called\");\n    return NULL;\n}\n\nvoid* DLATRD(void)\n{\n    if (verbose) puts(\"STUB: DLATRD called\");\n    return NULL;\n}\n\nvoid* DLATRD_(void)\n{\n    if (verbose) puts(\"STUB: DLATRD_ called\");\n    return NULL;\n}\n\nvoid* DLATRS(void)\n{\n    if (verbose) puts(\"STUB: DLATRS called\");\n    return NULL;\n}\n\nvoid* DLATRS_(void)\n{\n    if (verbose) puts(\"STUB: DLATRS_ called\");\n    return NULL;\n}\n\nvoid* DLATRZ(void)\n{\n    if (verbose) puts(\"STUB: DLATRZ called\");\n    return NULL;\n}\n\nvoid* DLATRZ_(void)\n{\n    if (verbose) puts(\"STUB: DLATRZ_ called\");\n    return NULL;\n}\n\nvoid* DLATZM(void)\n{\n    if (verbose) puts(\"STUB: DLATZM called\");\n    return NULL;\n}\n\nvoid* DLATZM_(void)\n{\n    if (verbose) puts(\"STUB: DLATZM_ called\");\n    return NULL;\n}\n\nvoid* DLAUU2(void)\n{\n    if (verbose) puts(\"STUB: DLAUU2 called\");\n    return NULL;\n}\n\nvoid* DLAUU2_(void)\n{\n    if (verbose) puts(\"STUB: DLAUU2_ called\");\n    return NULL;\n}\n\nvoid* DLAUUM(void)\n{\n    if (verbose) puts(\"STUB: DLAUUM called\");\n    return NULL;\n}\n\nvoid* DLAUUM_(void)\n{\n    if (verbose) puts(\"STUB: DLAUUM_ called\");\n    return NULL;\n}\n\nvoid* DOPGTR(void)\n{\n    if (verbose) puts(\"STUB: DOPGTR called\");\n    return NULL;\n}\n\nvoid* DOPGTR_(void)\n{\n    if (verbose) puts(\"STUB: DOPGTR_ called\");\n    return NULL;\n}\n\nvoid* DOPMTR(void)\n{\n    if (verbose) puts(\"STUB: DOPMTR called\");\n    return NULL;\n}\n\nvoid* DOPMTR_(void)\n{\n    if (verbose) puts(\"STUB: DOPMTR_ called\");\n    return NULL;\n}\n\nvoid* DORG2L(void)\n{\n    if (verbose) puts(\"STUB: DORG2L called\");\n    return NULL;\n}\n\nvoid* DORG2L_(void)\n{\n    if (verbose) puts(\"STUB: DORG2L_ called\");\n    return NULL;\n}\n\nvoid* DORG2R(void)\n{\n    if (verbose) puts(\"STUB: DORG2R called\");\n    return NULL;\n}\n\nvoid* DORG2R_(void)\n{\n    if (verbose) puts(\"STUB: DORG2R_ called\");\n    return NULL;\n}\n\nvoid* DORGBR(void)\n{\n    if (verbose) puts(\"STUB: DORGBR called\");\n    return NULL;\n}\n\nvoid* DORGBR_(void)\n{\n    if (verbose) puts(\"STUB: DORGBR_ called\");\n    return NULL;\n}\n\nvoid* DORGHR(void)\n{\n    if (verbose) puts(\"STUB: DORGHR called\");\n    return NULL;\n}\n\nvoid* DORGHR_(void)\n{\n    if (verbose) puts(\"STUB: DORGHR_ called\");\n    return NULL;\n}\n\nvoid* DORGL2(void)\n{\n    if (verbose) puts(\"STUB: DORGL2 called\");\n    return NULL;\n}\n\nvoid* DORGL2_(void)\n{\n    if (verbose) puts(\"STUB: DORGL2_ called\");\n    return NULL;\n}\n\nvoid* DORGLQ(void)\n{\n    if (verbose) puts(\"STUB: DORGLQ called\");\n    return NULL;\n}\n\nvoid* DORGLQ_(void)\n{\n    if (verbose) puts(\"STUB: DORGLQ_ called\");\n    return NULL;\n}\n\nvoid* DORGQL(void)\n{\n    if (verbose) puts(\"STUB: DORGQL called\");\n    return NULL;\n}\n\nvoid* DORGQL_(void)\n{\n    if (verbose) puts(\"STUB: DORGQL_ called\");\n    return NULL;\n}\n\nvoid* DORGQR(void)\n{\n    if (verbose) puts(\"STUB: DORGQR called\");\n    return NULL;\n}\n\nvoid* DORGQR_(void)\n{\n    if (verbose) puts(\"STUB: DORGQR_ called\");\n    return NULL;\n}\n\nvoid* DORGR2(void)\n{\n    if (verbose) puts(\"STUB: DORGR2 called\");\n    return NULL;\n}\n\nvoid* DORGR2_(void)\n{\n    if (verbose) puts(\"STUB: DORGR2_ called\");\n    return NULL;\n}\n\nvoid* DORGRQ(void)\n{\n    if (verbose) puts(\"STUB: DORGRQ called\");\n    return NULL;\n}\n\nvoid* DORGRQ_(void)\n{\n    if (verbose) puts(\"STUB: DORGRQ_ called\");\n    return NULL;\n}\n\nvoid* DORGTR(void)\n{\n    if (verbose) puts(\"STUB: DORGTR called\");\n    return NULL;\n}\n\nvoid* DORGTR_(void)\n{\n    if (verbose) puts(\"STUB: DORGTR_ called\");\n    return NULL;\n}\n\nvoid* DORM2L(void)\n{\n    if (verbose) puts(\"STUB: DORM2L called\");\n    return NULL;\n}\n\nvoid* DORM2L_(void)\n{\n    if (verbose) puts(\"STUB: DORM2L_ called\");\n    return NULL;\n}\n\nvoid* DORM2R(void)\n{\n    if (verbose) puts(\"STUB: DORM2R called\");\n    return NULL;\n}\n\nvoid* DORM2R_(void)\n{\n    if (verbose) puts(\"STUB: DORM2R_ called\");\n    return NULL;\n}\n\nvoid* DORMBR(void)\n{\n    if (verbose) puts(\"STUB: DORMBR called\");\n    return NULL;\n}\n\nvoid* DORMBR_(void)\n{\n    if (verbose) puts(\"STUB: DORMBR_ called\");\n    return NULL;\n}\n\nvoid* DORMHR(void)\n{\n    if (verbose) puts(\"STUB: DORMHR called\");\n    return NULL;\n}\n\nvoid* DORMHR_(void)\n{\n    if (verbose) puts(\"STUB: DORMHR_ called\");\n    return NULL;\n}\n\nvoid* DORML2(void)\n{\n    if (verbose) puts(\"STUB: DORML2 called\");\n    return NULL;\n}\n\nvoid* DORML2_(void)\n{\n    if (verbose) puts(\"STUB: DORML2_ called\");\n    return NULL;\n}\n\nvoid* DORMLQ(void)\n{\n    if (verbose) puts(\"STUB: DORMLQ called\");\n    return NULL;\n}\n\nvoid* DORMLQ_(void)\n{\n    if (verbose) puts(\"STUB: DORMLQ_ called\");\n    return NULL;\n}\n\nvoid* DORMQL(void)\n{\n    if (verbose) puts(\"STUB: DORMQL called\");\n    return NULL;\n}\n\nvoid* DORMQL_(void)\n{\n    if (verbose) puts(\"STUB: DORMQL_ called\");\n    return NULL;\n}\n\nvoid* DORMQR(void)\n{\n    if (verbose) puts(\"STUB: DORMQR called\");\n    return NULL;\n}\n\nvoid* DORMQR_(void)\n{\n    if (verbose) puts(\"STUB: DORMQR_ called\");\n    return NULL;\n}\n\nvoid* DORMR2(void)\n{\n    if (verbose) puts(\"STUB: DORMR2 called\");\n    return NULL;\n}\n\nvoid* DORMR2_(void)\n{\n    if (verbose) puts(\"STUB: DORMR2_ called\");\n    return NULL;\n}\n\nvoid* DORMR3(void)\n{\n    if (verbose) puts(\"STUB: DORMR3 called\");\n    return NULL;\n}\n\nvoid* DORMR3_(void)\n{\n    if (verbose) puts(\"STUB: DORMR3_ called\");\n    return NULL;\n}\n\nvoid* DORMRQ(void)\n{\n    if (verbose) puts(\"STUB: DORMRQ called\");\n    return NULL;\n}\n\nvoid* DORMRQ_(void)\n{\n    if (verbose) puts(\"STUB: DORMRQ_ called\");\n    return NULL;\n}\n\nvoid* DORMRZ(void)\n{\n    if (verbose) puts(\"STUB: DORMRZ called\");\n    return NULL;\n}\n\nvoid* DORMRZ_(void)\n{\n    if (verbose) puts(\"STUB: DORMRZ_ called\");\n    return NULL;\n}\n\nvoid* DORMTR(void)\n{\n    if (verbose) puts(\"STUB: DORMTR called\");\n    return NULL;\n}\n\nvoid* DORMTR_(void)\n{\n    if (verbose) puts(\"STUB: DORMTR_ called\");\n    return NULL;\n}\n\nvoid* DPBCON(void)\n{\n    if (verbose) puts(\"STUB: DPBCON called\");\n    return NULL;\n}\n\nvoid* DPBCON_(void)\n{\n    if (verbose) puts(\"STUB: DPBCON_ called\");\n    return NULL;\n}\n\nvoid* DPBEQU(void)\n{\n    if (verbose) puts(\"STUB: DPBEQU called\");\n    return NULL;\n}\n\nvoid* DPBEQU_(void)\n{\n    if (verbose) puts(\"STUB: DPBEQU_ called\");\n    return NULL;\n}\n\nvoid* DPBRFS(void)\n{\n    if (verbose) puts(\"STUB: DPBRFS called\");\n    return NULL;\n}\n\nvoid* DPBRFS_(void)\n{\n    if (verbose) puts(\"STUB: DPBRFS_ called\");\n    return NULL;\n}\n\nvoid* DPBSTF(void)\n{\n    if (verbose) puts(\"STUB: DPBSTF called\");\n    return NULL;\n}\n\nvoid* DPBSTF_(void)\n{\n    if (verbose) puts(\"STUB: DPBSTF_ called\");\n    return NULL;\n}\n\nvoid* DPBSV(void)\n{\n    if (verbose) puts(\"STUB: DPBSV called\");\n    return NULL;\n}\n\nvoid* DPBSVX(void)\n{\n    if (verbose) puts(\"STUB: DPBSVX called\");\n    return NULL;\n}\n\nvoid* DPBSVX_(void)\n{\n    if (verbose) puts(\"STUB: DPBSVX_ called\");\n    return NULL;\n}\n\nvoid* DPBSV_(void)\n{\n    if (verbose) puts(\"STUB: DPBSV_ called\");\n    return NULL;\n}\n\nvoid* DPBTF2(void)\n{\n    if (verbose) puts(\"STUB: DPBTF2 called\");\n    return NULL;\n}\n\nvoid* DPBTF2_(void)\n{\n    if (verbose) puts(\"STUB: DPBTF2_ called\");\n    return NULL;\n}\n\nvoid* DPBTRF(void)\n{\n    if (verbose) puts(\"STUB: DPBTRF called\");\n    return NULL;\n}\n\nvoid* DPBTRF_(void)\n{\n    if (verbose) puts(\"STUB: DPBTRF_ called\");\n    return NULL;\n}\n\nvoid* DPBTRS(void)\n{\n    if (verbose) puts(\"STUB: DPBTRS called\");\n    return NULL;\n}\n\nvoid* DPBTRS_(void)\n{\n    if (verbose) puts(\"STUB: DPBTRS_ called\");\n    return NULL;\n}\n\nvoid* DPFTRF(void)\n{\n    if (verbose) puts(\"STUB: DPFTRF called\");\n    return NULL;\n}\n\nvoid* DPFTRF_(void)\n{\n    if (verbose) puts(\"STUB: DPFTRF_ called\");\n    return NULL;\n}\n\nvoid* DPFTRI(void)\n{\n    if (verbose) puts(\"STUB: DPFTRI called\");\n    return NULL;\n}\n\nvoid* DPFTRI_(void)\n{\n    if (verbose) puts(\"STUB: DPFTRI_ called\");\n    return NULL;\n}\n\nvoid* DPFTRS(void)\n{\n    if (verbose) puts(\"STUB: DPFTRS called\");\n    return NULL;\n}\n\nvoid* DPFTRS_(void)\n{\n    if (verbose) puts(\"STUB: DPFTRS_ called\");\n    return NULL;\n}\n\nvoid* DPOCON(void)\n{\n    if (verbose) puts(\"STUB: DPOCON called\");\n    return NULL;\n}\n\nvoid* DPOCON_(void)\n{\n    if (verbose) puts(\"STUB: DPOCON_ called\");\n    return NULL;\n}\n\nvoid* DPOEQU(void)\n{\n    if (verbose) puts(\"STUB: DPOEQU called\");\n    return NULL;\n}\n\nvoid* DPOEQUB(void)\n{\n    if (verbose) puts(\"STUB: DPOEQUB called\");\n    return NULL;\n}\n\nvoid* DPOEQUB_(void)\n{\n    if (verbose) puts(\"STUB: DPOEQUB_ called\");\n    return NULL;\n}\n\nvoid* DPOEQU_(void)\n{\n    if (verbose) puts(\"STUB: DPOEQU_ called\");\n    return NULL;\n}\n\nvoid* DPORFS(void)\n{\n    if (verbose) puts(\"STUB: DPORFS called\");\n    return NULL;\n}\n\nvoid* DPORFS_(void)\n{\n    if (verbose) puts(\"STUB: DPORFS_ called\");\n    return NULL;\n}\n\nvoid* DPOSV(void)\n{\n    if (verbose) puts(\"STUB: DPOSV called\");\n    return NULL;\n}\n\nvoid* DPOSVX(void)\n{\n    if (verbose) puts(\"STUB: DPOSVX called\");\n    return NULL;\n}\n\nvoid* DPOSVX_(void)\n{\n    if (verbose) puts(\"STUB: DPOSVX_ called\");\n    return NULL;\n}\n\nvoid* DPOSV_(void)\n{\n    if (verbose) puts(\"STUB: DPOSV_ called\");\n    return NULL;\n}\n\nvoid* DPOTF2(void)\n{\n    if (verbose) puts(\"STUB: DPOTF2 called\");\n    return NULL;\n}\n\nvoid* DPOTF2_(void)\n{\n    if (verbose) puts(\"STUB: DPOTF2_ called\");\n    return NULL;\n}\n\nvoid* DPOTRF(void)\n{\n    if (verbose) puts(\"STUB: DPOTRF called\");\n    return NULL;\n}\n\nvoid* DPOTRF_(void)\n{\n    if (verbose) puts(\"STUB: DPOTRF_ called\");\n    return NULL;\n}\n\nvoid* DPOTRI(void)\n{\n    if (verbose) puts(\"STUB: DPOTRI called\");\n    return NULL;\n}\n\nvoid* DPOTRI_(void)\n{\n    if (verbose) puts(\"STUB: DPOTRI_ called\");\n    return NULL;\n}\n\nvoid* DPOTRS(void)\n{\n    if (verbose) puts(\"STUB: DPOTRS called\");\n    return NULL;\n}\n\nvoid* DPOTRS_(void)\n{\n    if (verbose) puts(\"STUB: DPOTRS_ called\");\n    return NULL;\n}\n\nvoid* DPPCON(void)\n{\n    if (verbose) puts(\"STUB: DPPCON called\");\n    return NULL;\n}\n\nvoid* DPPCON_(void)\n{\n    if (verbose) puts(\"STUB: DPPCON_ called\");\n    return NULL;\n}\n\nvoid* DPPEQU(void)\n{\n    if (verbose) puts(\"STUB: DPPEQU called\");\n    return NULL;\n}\n\nvoid* DPPEQU_(void)\n{\n    if (verbose) puts(\"STUB: DPPEQU_ called\");\n    return NULL;\n}\n\nvoid* DPPRFS(void)\n{\n    if (verbose) puts(\"STUB: DPPRFS called\");\n    return NULL;\n}\n\nvoid* DPPRFS_(void)\n{\n    if (verbose) puts(\"STUB: DPPRFS_ called\");\n    return NULL;\n}\n\nvoid* DPPSV(void)\n{\n    if (verbose) puts(\"STUB: DPPSV called\");\n    return NULL;\n}\n\nvoid* DPPSVX(void)\n{\n    if (verbose) puts(\"STUB: DPPSVX called\");\n    return NULL;\n}\n\nvoid* DPPSVX_(void)\n{\n    if (verbose) puts(\"STUB: DPPSVX_ called\");\n    return NULL;\n}\n\nvoid* DPPSV_(void)\n{\n    if (verbose) puts(\"STUB: DPPSV_ called\");\n    return NULL;\n}\n\nvoid* DPPTRF(void)\n{\n    if (verbose) puts(\"STUB: DPPTRF called\");\n    return NULL;\n}\n\nvoid* DPPTRF_(void)\n{\n    if (verbose) puts(\"STUB: DPPTRF_ called\");\n    return NULL;\n}\n\nvoid* DPPTRI(void)\n{\n    if (verbose) puts(\"STUB: DPPTRI called\");\n    return NULL;\n}\n\nvoid* DPPTRI_(void)\n{\n    if (verbose) puts(\"STUB: DPPTRI_ called\");\n    return NULL;\n}\n\nvoid* DPPTRS(void)\n{\n    if (verbose) puts(\"STUB: DPPTRS called\");\n    return NULL;\n}\n\nvoid* DPPTRS_(void)\n{\n    if (verbose) puts(\"STUB: DPPTRS_ called\");\n    return NULL;\n}\n\nvoid* DPSTF2(void)\n{\n    if (verbose) puts(\"STUB: DPSTF2 called\");\n    return NULL;\n}\n\nvoid* DPSTF2_(void)\n{\n    if (verbose) puts(\"STUB: DPSTF2_ called\");\n    return NULL;\n}\n\nvoid* DPSTRF(void)\n{\n    if (verbose) puts(\"STUB: DPSTRF called\");\n    return NULL;\n}\n\nvoid* DPSTRF_(void)\n{\n    if (verbose) puts(\"STUB: DPSTRF_ called\");\n    return NULL;\n}\n\nvoid* DPTCON(void)\n{\n    if (verbose) puts(\"STUB: DPTCON called\");\n    return NULL;\n}\n\nvoid* DPTCON_(void)\n{\n    if (verbose) puts(\"STUB: DPTCON_ called\");\n    return NULL;\n}\n\nvoid* DPTEQR(void)\n{\n    if (verbose) puts(\"STUB: DPTEQR called\");\n    return NULL;\n}\n\nvoid* DPTEQR_(void)\n{\n    if (verbose) puts(\"STUB: DPTEQR_ called\");\n    return NULL;\n}\n\nvoid* DPTRFS(void)\n{\n    if (verbose) puts(\"STUB: DPTRFS called\");\n    return NULL;\n}\n\nvoid* DPTRFS_(void)\n{\n    if (verbose) puts(\"STUB: DPTRFS_ called\");\n    return NULL;\n}\n\nvoid* DPTSV(void)\n{\n    if (verbose) puts(\"STUB: DPTSV called\");\n    return NULL;\n}\n\nvoid* DPTSVX(void)\n{\n    if (verbose) puts(\"STUB: DPTSVX called\");\n    return NULL;\n}\n\nvoid* DPTSVX_(void)\n{\n    if (verbose) puts(\"STUB: DPTSVX_ called\");\n    return NULL;\n}\n\nvoid* DPTSV_(void)\n{\n    if (verbose) puts(\"STUB: DPTSV_ called\");\n    return NULL;\n}\n\nvoid* DPTTRF(void)\n{\n    if (verbose) puts(\"STUB: DPTTRF called\");\n    return NULL;\n}\n\nvoid* DPTTRF_(void)\n{\n    if (verbose) puts(\"STUB: DPTTRF_ called\");\n    return NULL;\n}\n\nvoid* DPTTRS(void)\n{\n    if (verbose) puts(\"STUB: DPTTRS called\");\n    return NULL;\n}\n\nvoid* DPTTRS_(void)\n{\n    if (verbose) puts(\"STUB: DPTTRS_ called\");\n    return NULL;\n}\n\nvoid* DPTTS2(void)\n{\n    if (verbose) puts(\"STUB: DPTTS2 called\");\n    return NULL;\n}\n\nvoid* DPTTS2_(void)\n{\n    if (verbose) puts(\"STUB: DPTTS2_ called\");\n    return NULL;\n}\n\nvoid* DRSCL(void)\n{\n    if (verbose) puts(\"STUB: DRSCL called\");\n    return NULL;\n}\n\nvoid* DRSCL_(void)\n{\n    if (verbose) puts(\"STUB: DRSCL_ called\");\n    return NULL;\n}\n\nvoid* DSBEV(void)\n{\n    if (verbose) puts(\"STUB: DSBEV called\");\n    return NULL;\n}\n\nvoid* DSBEVD(void)\n{\n    if (verbose) puts(\"STUB: DSBEVD called\");\n    return NULL;\n}\n\nvoid* DSBEVD_(void)\n{\n    if (verbose) puts(\"STUB: DSBEVD_ called\");\n    return NULL;\n}\n\nvoid* DSBEVX(void)\n{\n    if (verbose) puts(\"STUB: DSBEVX called\");\n    return NULL;\n}\n\nvoid* DSBEVX_(void)\n{\n    if (verbose) puts(\"STUB: DSBEVX_ called\");\n    return NULL;\n}\n\nvoid* DSBEV_(void)\n{\n    if (verbose) puts(\"STUB: DSBEV_ called\");\n    return NULL;\n}\n\nvoid* DSBGST(void)\n{\n    if (verbose) puts(\"STUB: DSBGST called\");\n    return NULL;\n}\n\nvoid* DSBGST_(void)\n{\n    if (verbose) puts(\"STUB: DSBGST_ called\");\n    return NULL;\n}\n\nvoid* DSBGV(void)\n{\n    if (verbose) puts(\"STUB: DSBGV called\");\n    return NULL;\n}\n\nvoid* DSBGVD(void)\n{\n    if (verbose) puts(\"STUB: DSBGVD called\");\n    return NULL;\n}\n\nvoid* DSBGVD_(void)\n{\n    if (verbose) puts(\"STUB: DSBGVD_ called\");\n    return NULL;\n}\n\nvoid* DSBGVX(void)\n{\n    if (verbose) puts(\"STUB: DSBGVX called\");\n    return NULL;\n}\n\nvoid* DSBGVX_(void)\n{\n    if (verbose) puts(\"STUB: DSBGVX_ called\");\n    return NULL;\n}\n\nvoid* DSBGV_(void)\n{\n    if (verbose) puts(\"STUB: DSBGV_ called\");\n    return NULL;\n}\n\nvoid* DSBTRD(void)\n{\n    if (verbose) puts(\"STUB: DSBTRD called\");\n    return NULL;\n}\n\nvoid* DSBTRD_(void)\n{\n    if (verbose) puts(\"STUB: DSBTRD_ called\");\n    return NULL;\n}\n\nvoid* DSFRK(void)\n{\n    if (verbose) puts(\"STUB: DSFRK called\");\n    return NULL;\n}\n\nvoid* DSFRK_(void)\n{\n    if (verbose) puts(\"STUB: DSFRK_ called\");\n    return NULL;\n}\n\nvoid* DSGESV(void)\n{\n    if (verbose) puts(\"STUB: DSGESV called\");\n    return NULL;\n}\n\nvoid* DSGESV_(void)\n{\n    if (verbose) puts(\"STUB: DSGESV_ called\");\n    return NULL;\n}\n\nvoid* DSPCON(void)\n{\n    if (verbose) puts(\"STUB: DSPCON called\");\n    return NULL;\n}\n\nvoid* DSPCON_(void)\n{\n    if (verbose) puts(\"STUB: DSPCON_ called\");\n    return NULL;\n}\n\nvoid* DSPEV(void)\n{\n    if (verbose) puts(\"STUB: DSPEV called\");\n    return NULL;\n}\n\nvoid* DSPEVD(void)\n{\n    if (verbose) puts(\"STUB: DSPEVD called\");\n    return NULL;\n}\n\nvoid* DSPEVD_(void)\n{\n    if (verbose) puts(\"STUB: DSPEVD_ called\");\n    return NULL;\n}\n\nvoid* DSPEVX(void)\n{\n    if (verbose) puts(\"STUB: DSPEVX called\");\n    return NULL;\n}\n\nvoid* DSPEVX_(void)\n{\n    if (verbose) puts(\"STUB: DSPEVX_ called\");\n    return NULL;\n}\n\nvoid* DSPEV_(void)\n{\n    if (verbose) puts(\"STUB: DSPEV_ called\");\n    return NULL;\n}\n\nvoid* DSPGST(void)\n{\n    if (verbose) puts(\"STUB: DSPGST called\");\n    return NULL;\n}\n\nvoid* DSPGST_(void)\n{\n    if (verbose) puts(\"STUB: DSPGST_ called\");\n    return NULL;\n}\n\nvoid* DSPGV(void)\n{\n    if (verbose) puts(\"STUB: DSPGV called\");\n    return NULL;\n}\n\nvoid* DSPGVD(void)\n{\n    if (verbose) puts(\"STUB: DSPGVD called\");\n    return NULL;\n}\n\nvoid* DSPGVD_(void)\n{\n    if (verbose) puts(\"STUB: DSPGVD_ called\");\n    return NULL;\n}\n\nvoid* DSPGVX(void)\n{\n    if (verbose) puts(\"STUB: DSPGVX called\");\n    return NULL;\n}\n\nvoid* DSPGVX_(void)\n{\n    if (verbose) puts(\"STUB: DSPGVX_ called\");\n    return NULL;\n}\n\nvoid* DSPGV_(void)\n{\n    if (verbose) puts(\"STUB: DSPGV_ called\");\n    return NULL;\n}\n\nvoid* DSPOSV(void)\n{\n    if (verbose) puts(\"STUB: DSPOSV called\");\n    return NULL;\n}\n\nvoid* DSPOSV_(void)\n{\n    if (verbose) puts(\"STUB: DSPOSV_ called\");\n    return NULL;\n}\n\nvoid* DSPRFS(void)\n{\n    if (verbose) puts(\"STUB: DSPRFS called\");\n    return NULL;\n}\n\nvoid* DSPRFS_(void)\n{\n    if (verbose) puts(\"STUB: DSPRFS_ called\");\n    return NULL;\n}\n\nvoid* DSPSV(void)\n{\n    if (verbose) puts(\"STUB: DSPSV called\");\n    return NULL;\n}\n\nvoid* DSPSVX(void)\n{\n    if (verbose) puts(\"STUB: DSPSVX called\");\n    return NULL;\n}\n\nvoid* DSPSVX_(void)\n{\n    if (verbose) puts(\"STUB: DSPSVX_ called\");\n    return NULL;\n}\n\nvoid* DSPSV_(void)\n{\n    if (verbose) puts(\"STUB: DSPSV_ called\");\n    return NULL;\n}\n\nvoid* DSPTRD(void)\n{\n    if (verbose) puts(\"STUB: DSPTRD called\");\n    return NULL;\n}\n\nvoid* DSPTRD_(void)\n{\n    if (verbose) puts(\"STUB: DSPTRD_ called\");\n    return NULL;\n}\n\nvoid* DSPTRF(void)\n{\n    if (verbose) puts(\"STUB: DSPTRF called\");\n    return NULL;\n}\n\nvoid* DSPTRF_(void)\n{\n    if (verbose) puts(\"STUB: DSPTRF_ called\");\n    return NULL;\n}\n\nvoid* DSPTRI(void)\n{\n    if (verbose) puts(\"STUB: DSPTRI called\");\n    return NULL;\n}\n\nvoid* DSPTRI_(void)\n{\n    if (verbose) puts(\"STUB: DSPTRI_ called\");\n    return NULL;\n}\n\nvoid* DSPTRS(void)\n{\n    if (verbose) puts(\"STUB: DSPTRS called\");\n    return NULL;\n}\n\nvoid* DSPTRS_(void)\n{\n    if (verbose) puts(\"STUB: DSPTRS_ called\");\n    return NULL;\n}\n\nvoid* DSTEBZ(void)\n{\n    if (verbose) puts(\"STUB: DSTEBZ called\");\n    return NULL;\n}\n\nvoid* DSTEBZ_(void)\n{\n    if (verbose) puts(\"STUB: DSTEBZ_ called\");\n    return NULL;\n}\n\nvoid* DSTEDC(void)\n{\n    if (verbose) puts(\"STUB: DSTEDC called\");\n    return NULL;\n}\n\nvoid* DSTEDC_(void)\n{\n    if (verbose) puts(\"STUB: DSTEDC_ called\");\n    return NULL;\n}\n\nvoid* DSTEGR(void)\n{\n    if (verbose) puts(\"STUB: DSTEGR called\");\n    return NULL;\n}\n\nvoid* DSTEGR_(void)\n{\n    if (verbose) puts(\"STUB: DSTEGR_ called\");\n    return NULL;\n}\n\nvoid* DSTEIN(void)\n{\n    if (verbose) puts(\"STUB: DSTEIN called\");\n    return NULL;\n}\n\nvoid* DSTEIN_(void)\n{\n    if (verbose) puts(\"STUB: DSTEIN_ called\");\n    return NULL;\n}\n\nvoid* DSTEMR(void)\n{\n    if (verbose) puts(\"STUB: DSTEMR called\");\n    return NULL;\n}\n\nvoid* DSTEMR_(void)\n{\n    if (verbose) puts(\"STUB: DSTEMR_ called\");\n    return NULL;\n}\n\nvoid* DSTEQR(void)\n{\n    if (verbose) puts(\"STUB: DSTEQR called\");\n    return NULL;\n}\n\nvoid* DSTEQR_(void)\n{\n    if (verbose) puts(\"STUB: DSTEQR_ called\");\n    return NULL;\n}\n\nvoid* DSTERF(void)\n{\n    if (verbose) puts(\"STUB: DSTERF called\");\n    return NULL;\n}\n\nvoid* DSTERF_(void)\n{\n    if (verbose) puts(\"STUB: DSTERF_ called\");\n    return NULL;\n}\n\nvoid* DSTEV(void)\n{\n    if (verbose) puts(\"STUB: DSTEV called\");\n    return NULL;\n}\n\nvoid* DSTEVD(void)\n{\n    if (verbose) puts(\"STUB: DSTEVD called\");\n    return NULL;\n}\n\nvoid* DSTEVD_(void)\n{\n    if (verbose) puts(\"STUB: DSTEVD_ called\");\n    return NULL;\n}\n\nvoid* DSTEVR(void)\n{\n    if (verbose) puts(\"STUB: DSTEVR called\");\n    return NULL;\n}\n\nvoid* DSTEVR_(void)\n{\n    if (verbose) puts(\"STUB: DSTEVR_ called\");\n    return NULL;\n}\n\nvoid* DSTEVX(void)\n{\n    if (verbose) puts(\"STUB: DSTEVX called\");\n    return NULL;\n}\n\nvoid* DSTEVX_(void)\n{\n    if (verbose) puts(\"STUB: DSTEVX_ called\");\n    return NULL;\n}\n\nvoid* DSTEV_(void)\n{\n    if (verbose) puts(\"STUB: DSTEV_ called\");\n    return NULL;\n}\n\nvoid* DSYCON(void)\n{\n    if (verbose) puts(\"STUB: DSYCON called\");\n    return NULL;\n}\n\nvoid* DSYCON_(void)\n{\n    if (verbose) puts(\"STUB: DSYCON_ called\");\n    return NULL;\n}\n\nvoid* DSYEQUB(void)\n{\n    if (verbose) puts(\"STUB: DSYEQUB called\");\n    return NULL;\n}\n\nvoid* DSYEQUB_(void)\n{\n    if (verbose) puts(\"STUB: DSYEQUB_ called\");\n    return NULL;\n}\n\nvoid* DSYEV(void)\n{\n    if (verbose) puts(\"STUB: DSYEV called\");\n    return NULL;\n}\n\nvoid* DSYEVD(void)\n{\n    if (verbose) puts(\"STUB: DSYEVD called\");\n    return NULL;\n}\n\nvoid* DSYEVD_(void)\n{\n    if (verbose) puts(\"STUB: DSYEVD_ called\");\n    return NULL;\n}\n\nvoid* DSYEVR(void)\n{\n    if (verbose) puts(\"STUB: DSYEVR called\");\n    return NULL;\n}\n\nvoid* DSYEVR_(void)\n{\n    if (verbose) puts(\"STUB: DSYEVR_ called\");\n    return NULL;\n}\n\nvoid* DSYEVX(void)\n{\n    if (verbose) puts(\"STUB: DSYEVX called\");\n    return NULL;\n}\n\nvoid* DSYEVX_(void)\n{\n    if (verbose) puts(\"STUB: DSYEVX_ called\");\n    return NULL;\n}\n\nvoid* DSYEV_(void)\n{\n    if (verbose) puts(\"STUB: DSYEV_ called\");\n    return NULL;\n}\n\nvoid* DSYGS2(void)\n{\n    if (verbose) puts(\"STUB: DSYGS2 called\");\n    return NULL;\n}\n\nvoid* DSYGS2_(void)\n{\n    if (verbose) puts(\"STUB: DSYGS2_ called\");\n    return NULL;\n}\n\nvoid* DSYGST(void)\n{\n    if (verbose) puts(\"STUB: DSYGST called\");\n    return NULL;\n}\n\nvoid* DSYGST_(void)\n{\n    if (verbose) puts(\"STUB: DSYGST_ called\");\n    return NULL;\n}\n\nvoid* DSYGV(void)\n{\n    if (verbose) puts(\"STUB: DSYGV called\");\n    return NULL;\n}\n\nvoid* DSYGVD(void)\n{\n    if (verbose) puts(\"STUB: DSYGVD called\");\n    return NULL;\n}\n\nvoid* DSYGVD_(void)\n{\n    if (verbose) puts(\"STUB: DSYGVD_ called\");\n    return NULL;\n}\n\nvoid* DSYGVX(void)\n{\n    if (verbose) puts(\"STUB: DSYGVX called\");\n    return NULL;\n}\n\nvoid* DSYGVX_(void)\n{\n    if (verbose) puts(\"STUB: DSYGVX_ called\");\n    return NULL;\n}\n\nvoid* DSYGV_(void)\n{\n    if (verbose) puts(\"STUB: DSYGV_ called\");\n    return NULL;\n}\n\nvoid* DSYRFS(void)\n{\n    if (verbose) puts(\"STUB: DSYRFS called\");\n    return NULL;\n}\n\nvoid* DSYRFS_(void)\n{\n    if (verbose) puts(\"STUB: DSYRFS_ called\");\n    return NULL;\n}\n\nvoid* DSYSV(void)\n{\n    if (verbose) puts(\"STUB: DSYSV called\");\n    return NULL;\n}\n\nvoid* DSYSVX(void)\n{\n    if (verbose) puts(\"STUB: DSYSVX called\");\n    return NULL;\n}\n\nvoid* DSYSVX_(void)\n{\n    if (verbose) puts(\"STUB: DSYSVX_ called\");\n    return NULL;\n}\n\nvoid* DSYSV_(void)\n{\n    if (verbose) puts(\"STUB: DSYSV_ called\");\n    return NULL;\n}\n\nvoid* DSYTD2(void)\n{\n    if (verbose) puts(\"STUB: DSYTD2 called\");\n    return NULL;\n}\n\nvoid* DSYTD2_(void)\n{\n    if (verbose) puts(\"STUB: DSYTD2_ called\");\n    return NULL;\n}\n\nvoid* DSYTF2(void)\n{\n    if (verbose) puts(\"STUB: DSYTF2 called\");\n    return NULL;\n}\n\nvoid* DSYTF2_(void)\n{\n    if (verbose) puts(\"STUB: DSYTF2_ called\");\n    return NULL;\n}\n\nvoid* DSYTRD(void)\n{\n    if (verbose) puts(\"STUB: DSYTRD called\");\n    return NULL;\n}\n\nvoid* DSYTRD_(void)\n{\n    if (verbose) puts(\"STUB: DSYTRD_ called\");\n    return NULL;\n}\n\nvoid* DSYTRF(void)\n{\n    if (verbose) puts(\"STUB: DSYTRF called\");\n    return NULL;\n}\n\nvoid* DSYTRF_(void)\n{\n    if (verbose) puts(\"STUB: DSYTRF_ called\");\n    return NULL;\n}\n\nvoid* DSYTRI(void)\n{\n    if (verbose) puts(\"STUB: DSYTRI called\");\n    return NULL;\n}\n\nvoid* DSYTRI_(void)\n{\n    if (verbose) puts(\"STUB: DSYTRI_ called\");\n    return NULL;\n}\n\nvoid* DSYTRS(void)\n{\n    if (verbose) puts(\"STUB: DSYTRS called\");\n    return NULL;\n}\n\nvoid* DSYTRS_(void)\n{\n    if (verbose) puts(\"STUB: DSYTRS_ called\");\n    return NULL;\n}\n\nvoid* DTBCON(void)\n{\n    if (verbose) puts(\"STUB: DTBCON called\");\n    return NULL;\n}\n\nvoid* DTBCON_(void)\n{\n    if (verbose) puts(\"STUB: DTBCON_ called\");\n    return NULL;\n}\n\nvoid* DTBRFS(void)\n{\n    if (verbose) puts(\"STUB: DTBRFS called\");\n    return NULL;\n}\n\nvoid* DTBRFS_(void)\n{\n    if (verbose) puts(\"STUB: DTBRFS_ called\");\n    return NULL;\n}\n\nvoid* DTBTRS(void)\n{\n    if (verbose) puts(\"STUB: DTBTRS called\");\n    return NULL;\n}\n\nvoid* DTBTRS_(void)\n{\n    if (verbose) puts(\"STUB: DTBTRS_ called\");\n    return NULL;\n}\n\nvoid* DTFSM(void)\n{\n    if (verbose) puts(\"STUB: DTFSM called\");\n    return NULL;\n}\n\nvoid* DTFSM_(void)\n{\n    if (verbose) puts(\"STUB: DTFSM_ called\");\n    return NULL;\n}\n\nvoid* DTFTRI(void)\n{\n    if (verbose) puts(\"STUB: DTFTRI called\");\n    return NULL;\n}\n\nvoid* DTFTRI_(void)\n{\n    if (verbose) puts(\"STUB: DTFTRI_ called\");\n    return NULL;\n}\n\nvoid* DTFTTP(void)\n{\n    if (verbose) puts(\"STUB: DTFTTP called\");\n    return NULL;\n}\n\nvoid* DTFTTP_(void)\n{\n    if (verbose) puts(\"STUB: DTFTTP_ called\");\n    return NULL;\n}\n\nvoid* DTFTTR(void)\n{\n    if (verbose) puts(\"STUB: DTFTTR called\");\n    return NULL;\n}\n\nvoid* DTFTTR_(void)\n{\n    if (verbose) puts(\"STUB: DTFTTR_ called\");\n    return NULL;\n}\n\nvoid* DTGEVC(void)\n{\n    if (verbose) puts(\"STUB: DTGEVC called\");\n    return NULL;\n}\n\nvoid* DTGEVC_(void)\n{\n    if (verbose) puts(\"STUB: DTGEVC_ called\");\n    return NULL;\n}\n\nvoid* DTGEX2(void)\n{\n    if (verbose) puts(\"STUB: DTGEX2 called\");\n    return NULL;\n}\n\nvoid* DTGEX2_(void)\n{\n    if (verbose) puts(\"STUB: DTGEX2_ called\");\n    return NULL;\n}\n\nvoid* DTGEXC(void)\n{\n    if (verbose) puts(\"STUB: DTGEXC called\");\n    return NULL;\n}\n\nvoid* DTGEXC_(void)\n{\n    if (verbose) puts(\"STUB: DTGEXC_ called\");\n    return NULL;\n}\n\nvoid* DTGSEN(void)\n{\n    if (verbose) puts(\"STUB: DTGSEN called\");\n    return NULL;\n}\n\nvoid* DTGSEN_(void)\n{\n    if (verbose) puts(\"STUB: DTGSEN_ called\");\n    return NULL;\n}\n\nvoid* DTGSJA(void)\n{\n    if (verbose) puts(\"STUB: DTGSJA called\");\n    return NULL;\n}\n\nvoid* DTGSJA_(void)\n{\n    if (verbose) puts(\"STUB: DTGSJA_ called\");\n    return NULL;\n}\n\nvoid* DTGSNA(void)\n{\n    if (verbose) puts(\"STUB: DTGSNA called\");\n    return NULL;\n}\n\nvoid* DTGSNA_(void)\n{\n    if (verbose) puts(\"STUB: DTGSNA_ called\");\n    return NULL;\n}\n\nvoid* DTGSY2(void)\n{\n    if (verbose) puts(\"STUB: DTGSY2 called\");\n    return NULL;\n}\n\nvoid* DTGSY2_(void)\n{\n    if (verbose) puts(\"STUB: DTGSY2_ called\");\n    return NULL;\n}\n\nvoid* DTGSYL(void)\n{\n    if (verbose) puts(\"STUB: DTGSYL called\");\n    return NULL;\n}\n\nvoid* DTGSYL_(void)\n{\n    if (verbose) puts(\"STUB: DTGSYL_ called\");\n    return NULL;\n}\n\nvoid* DTPCON(void)\n{\n    if (verbose) puts(\"STUB: DTPCON called\");\n    return NULL;\n}\n\nvoid* DTPCON_(void)\n{\n    if (verbose) puts(\"STUB: DTPCON_ called\");\n    return NULL;\n}\n\nvoid* DTPRFS(void)\n{\n    if (verbose) puts(\"STUB: DTPRFS called\");\n    return NULL;\n}\n\nvoid* DTPRFS_(void)\n{\n    if (verbose) puts(\"STUB: DTPRFS_ called\");\n    return NULL;\n}\n\nvoid* DTPTRI(void)\n{\n    if (verbose) puts(\"STUB: DTPTRI called\");\n    return NULL;\n}\n\nvoid* DTPTRI_(void)\n{\n    if (verbose) puts(\"STUB: DTPTRI_ called\");\n    return NULL;\n}\n\nvoid* DTPTRS(void)\n{\n    if (verbose) puts(\"STUB: DTPTRS called\");\n    return NULL;\n}\n\nvoid* DTPTRS_(void)\n{\n    if (verbose) puts(\"STUB: DTPTRS_ called\");\n    return NULL;\n}\n\nvoid* DTPTTF(void)\n{\n    if (verbose) puts(\"STUB: DTPTTF called\");\n    return NULL;\n}\n\nvoid* DTPTTF_(void)\n{\n    if (verbose) puts(\"STUB: DTPTTF_ called\");\n    return NULL;\n}\n\nvoid* DTPTTR(void)\n{\n    if (verbose) puts(\"STUB: DTPTTR called\");\n    return NULL;\n}\n\nvoid* DTPTTR_(void)\n{\n    if (verbose) puts(\"STUB: DTPTTR_ called\");\n    return NULL;\n}\n\nvoid* DTRCON(void)\n{\n    if (verbose) puts(\"STUB: DTRCON called\");\n    return NULL;\n}\n\nvoid* DTRCON_(void)\n{\n    if (verbose) puts(\"STUB: DTRCON_ called\");\n    return NULL;\n}\n\nvoid* DTREVC(void)\n{\n    if (verbose) puts(\"STUB: DTREVC called\");\n    return NULL;\n}\n\nvoid* DTREVC_(void)\n{\n    if (verbose) puts(\"STUB: DTREVC_ called\");\n    return NULL;\n}\n\nvoid* DTREXC(void)\n{\n    if (verbose) puts(\"STUB: DTREXC called\");\n    return NULL;\n}\n\nvoid* DTREXC_(void)\n{\n    if (verbose) puts(\"STUB: DTREXC_ called\");\n    return NULL;\n}\n\nvoid* DTRRFS(void)\n{\n    if (verbose) puts(\"STUB: DTRRFS called\");\n    return NULL;\n}\n\nvoid* DTRRFS_(void)\n{\n    if (verbose) puts(\"STUB: DTRRFS_ called\");\n    return NULL;\n}\n\nvoid* DTRSEN(void)\n{\n    if (verbose) puts(\"STUB: DTRSEN called\");\n    return NULL;\n}\n\nvoid* DTRSEN_(void)\n{\n    if (verbose) puts(\"STUB: DTRSEN_ called\");\n    return NULL;\n}\n\nvoid* DTRSNA(void)\n{\n    if (verbose) puts(\"STUB: DTRSNA called\");\n    return NULL;\n}\n\nvoid* DTRSNA_(void)\n{\n    if (verbose) puts(\"STUB: DTRSNA_ called\");\n    return NULL;\n}\n\nvoid* DTRSYL(void)\n{\n    if (verbose) puts(\"STUB: DTRSYL called\");\n    return NULL;\n}\n\nvoid* DTRSYL_(void)\n{\n    if (verbose) puts(\"STUB: DTRSYL_ called\");\n    return NULL;\n}\n\nvoid* DTRTI2(void)\n{\n    if (verbose) puts(\"STUB: DTRTI2 called\");\n    return NULL;\n}\n\nvoid* DTRTI2_(void)\n{\n    if (verbose) puts(\"STUB: DTRTI2_ called\");\n    return NULL;\n}\n\nvoid* DTRTRI(void)\n{\n    if (verbose) puts(\"STUB: DTRTRI called\");\n    return NULL;\n}\n\nvoid* DTRTRI_(void)\n{\n    if (verbose) puts(\"STUB: DTRTRI_ called\");\n    return NULL;\n}\n\nvoid* DTRTRS(void)\n{\n    if (verbose) puts(\"STUB: DTRTRS called\");\n    return NULL;\n}\n\nvoid* DTRTRS_(void)\n{\n    if (verbose) puts(\"STUB: DTRTRS_ called\");\n    return NULL;\n}\n\nvoid* DTRTTF(void)\n{\n    if (verbose) puts(\"STUB: DTRTTF called\");\n    return NULL;\n}\n\nvoid* DTRTTF_(void)\n{\n    if (verbose) puts(\"STUB: DTRTTF_ called\");\n    return NULL;\n}\n\nvoid* DTRTTP(void)\n{\n    if (verbose) puts(\"STUB: DTRTTP called\");\n    return NULL;\n}\n\nvoid* DTRTTP_(void)\n{\n    if (verbose) puts(\"STUB: DTRTTP_ called\");\n    return NULL;\n}\n\nvoid* DTZRQF(void)\n{\n    if (verbose) puts(\"STUB: DTZRQF called\");\n    return NULL;\n}\n\nvoid* DTZRQF_(void)\n{\n    if (verbose) puts(\"STUB: DTZRQF_ called\");\n    return NULL;\n}\n\nvoid* DTZRZF(void)\n{\n    if (verbose) puts(\"STUB: DTZRZF called\");\n    return NULL;\n}\n\nvoid* DTZRZF_(void)\n{\n    if (verbose) puts(\"STUB: DTZRZF_ called\");\n    return NULL;\n}\n\nvoid* DZSUM1(void)\n{\n    if (verbose) puts(\"STUB: DZSUM1 called\");\n    return NULL;\n}\n\nvoid* DZSUM1_(void)\n{\n    if (verbose) puts(\"STUB: DZSUM1_ called\");\n    return NULL;\n}\n\nvoid* ICMAX1(void)\n{\n    if (verbose) puts(\"STUB: ICMAX1 called\");\n    return NULL;\n}\n\nvoid* ICMAX1_(void)\n{\n    if (verbose) puts(\"STUB: ICMAX1_ called\");\n    return NULL;\n}\n\nvoid* IEEECK(void)\n{\n    if (verbose) puts(\"STUB: IEEECK called\");\n    return NULL;\n}\n\nvoid* IEEECK_(void)\n{\n    if (verbose) puts(\"STUB: IEEECK_ called\");\n    return NULL;\n}\n\nvoid* ILACLC(void)\n{\n    if (verbose) puts(\"STUB: ILACLC called\");\n    return NULL;\n}\n\nvoid* ILACLC_(void)\n{\n    if (verbose) puts(\"STUB: ILACLC_ called\");\n    return NULL;\n}\n\nvoid* ILACLR(void)\n{\n    if (verbose) puts(\"STUB: ILACLR called\");\n    return NULL;\n}\n\nvoid* ILACLR_(void)\n{\n    if (verbose) puts(\"STUB: ILACLR_ called\");\n    return NULL;\n}\n\nvoid* ILADIAG(void)\n{\n    if (verbose) puts(\"STUB: ILADIAG called\");\n    return NULL;\n}\n\nvoid* ILADIAG_(void)\n{\n    if (verbose) puts(\"STUB: ILADIAG_ called\");\n    return NULL;\n}\n\nvoid* ILADLC(void)\n{\n    if (verbose) puts(\"STUB: ILADLC called\");\n    return NULL;\n}\n\nvoid* ILADLC_(void)\n{\n    if (verbose) puts(\"STUB: ILADLC_ called\");\n    return NULL;\n}\n\nvoid* ILADLR(void)\n{\n    if (verbose) puts(\"STUB: ILADLR called\");\n    return NULL;\n}\n\nvoid* ILADLR_(void)\n{\n    if (verbose) puts(\"STUB: ILADLR_ called\");\n    return NULL;\n}\n\nvoid* ILAENV(void)\n{\n    if (verbose) puts(\"STUB: ILAENV called\");\n    return NULL;\n}\n\nvoid* ILAENV_(void)\n{\n    if (verbose) puts(\"STUB: ILAENV_ called\");\n    return NULL;\n}\n\nvoid* ILAPREC(void)\n{\n    if (verbose) puts(\"STUB: ILAPREC called\");\n    return NULL;\n}\n\nvoid* ILAPREC_(void)\n{\n    if (verbose) puts(\"STUB: ILAPREC_ called\");\n    return NULL;\n}\n\nvoid* ILASLC(void)\n{\n    if (verbose) puts(\"STUB: ILASLC called\");\n    return NULL;\n}\n\nvoid* ILASLC_(void)\n{\n    if (verbose) puts(\"STUB: ILASLC_ called\");\n    return NULL;\n}\n\nvoid* ILASLR(void)\n{\n    if (verbose) puts(\"STUB: ILASLR called\");\n    return NULL;\n}\n\nvoid* ILASLR_(void)\n{\n    if (verbose) puts(\"STUB: ILASLR_ called\");\n    return NULL;\n}\n\nvoid* ILATRANS(void)\n{\n    if (verbose) puts(\"STUB: ILATRANS called\");\n    return NULL;\n}\n\nvoid* ILATRANS_(void)\n{\n    if (verbose) puts(\"STUB: ILATRANS_ called\");\n    return NULL;\n}\n\nvoid* ILAUPLO(void)\n{\n    if (verbose) puts(\"STUB: ILAUPLO called\");\n    return NULL;\n}\n\nvoid* ILAUPLO_(void)\n{\n    if (verbose) puts(\"STUB: ILAUPLO_ called\");\n    return NULL;\n}\n\nvoid* ILAVER(void)\n{\n    if (verbose) puts(\"STUB: ILAVER called\");\n    return NULL;\n}\n\nvoid* ILAVER_(void)\n{\n    if (verbose) puts(\"STUB: ILAVER_ called\");\n    return NULL;\n}\n\nvoid* ILAZLC(void)\n{\n    if (verbose) puts(\"STUB: ILAZLC called\");\n    return NULL;\n}\n\nvoid* ILAZLC_(void)\n{\n    if (verbose) puts(\"STUB: ILAZLC_ called\");\n    return NULL;\n}\n\nvoid* ILAZLR(void)\n{\n    if (verbose) puts(\"STUB: ILAZLR called\");\n    return NULL;\n}\n\nvoid* ILAZLR_(void)\n{\n    if (verbose) puts(\"STUB: ILAZLR_ called\");\n    return NULL;\n}\n\nvoid* IPARMQ(void)\n{\n    if (verbose) puts(\"STUB: IPARMQ called\");\n    return NULL;\n}\n\nvoid* IPARMQ_(void)\n{\n    if (verbose) puts(\"STUB: IPARMQ_ called\");\n    return NULL;\n}\n\nvoid* IZMAX1(void)\n{\n    if (verbose) puts(\"STUB: IZMAX1 called\");\n    return NULL;\n}\n\nvoid* IZMAX1_(void)\n{\n    if (verbose) puts(\"STUB: IZMAX1_ called\");\n    return NULL;\n}\n\nvoid* LSAMEN(void)\n{\n    if (verbose) puts(\"STUB: LSAMEN called\");\n    return NULL;\n}\n\nvoid* LSAMEN_(void)\n{\n    if (verbose) puts(\"STUB: LSAMEN_ called\");\n    return NULL;\n}\n\nvoid* SBDSDC(void)\n{\n    if (verbose) puts(\"STUB: SBDSDC called\");\n    return NULL;\n}\n\nvoid* SBDSDC_(void)\n{\n    if (verbose) puts(\"STUB: SBDSDC_ called\");\n    return NULL;\n}\n\nvoid* SBDSQR(void)\n{\n    if (verbose) puts(\"STUB: SBDSQR called\");\n    return NULL;\n}\n\nvoid* SBDSQR_(void)\n{\n    if (verbose) puts(\"STUB: SBDSQR_ called\");\n    return NULL;\n}\n\nvoid* SCSUM1(void)\n{\n    if (verbose) puts(\"STUB: SCSUM1 called\");\n    return NULL;\n}\n\nvoid* SCSUM1_(void)\n{\n    if (verbose) puts(\"STUB: SCSUM1_ called\");\n    return NULL;\n}\n\nvoid* SDISNA(void)\n{\n    if (verbose) puts(\"STUB: SDISNA called\");\n    return NULL;\n}\n\nvoid* SDISNA_(void)\n{\n    if (verbose) puts(\"STUB: SDISNA_ called\");\n    return NULL;\n}\n\nvoid* SGBBRD(void)\n{\n    if (verbose) puts(\"STUB: SGBBRD called\");\n    return NULL;\n}\n\nvoid* SGBBRD_(void)\n{\n    if (verbose) puts(\"STUB: SGBBRD_ called\");\n    return NULL;\n}\n\nvoid* SGBCON(void)\n{\n    if (verbose) puts(\"STUB: SGBCON called\");\n    return NULL;\n}\n\nvoid* SGBCON_(void)\n{\n    if (verbose) puts(\"STUB: SGBCON_ called\");\n    return NULL;\n}\n\nvoid* SGBEQU(void)\n{\n    if (verbose) puts(\"STUB: SGBEQU called\");\n    return NULL;\n}\n\nvoid* SGBEQUB(void)\n{\n    if (verbose) puts(\"STUB: SGBEQUB called\");\n    return NULL;\n}\n\nvoid* SGBEQUB_(void)\n{\n    if (verbose) puts(\"STUB: SGBEQUB_ called\");\n    return NULL;\n}\n\nvoid* SGBEQU_(void)\n{\n    if (verbose) puts(\"STUB: SGBEQU_ called\");\n    return NULL;\n}\n\nvoid* SGBRFS(void)\n{\n    if (verbose) puts(\"STUB: SGBRFS called\");\n    return NULL;\n}\n\nvoid* SGBRFS_(void)\n{\n    if (verbose) puts(\"STUB: SGBRFS_ called\");\n    return NULL;\n}\n\nvoid* SGBSV(void)\n{\n    if (verbose) puts(\"STUB: SGBSV called\");\n    return NULL;\n}\n\nvoid* SGBSVX(void)\n{\n    if (verbose) puts(\"STUB: SGBSVX called\");\n    return NULL;\n}\n\nvoid* SGBSVX_(void)\n{\n    if (verbose) puts(\"STUB: SGBSVX_ called\");\n    return NULL;\n}\n\nvoid* SGBSV_(void)\n{\n    if (verbose) puts(\"STUB: SGBSV_ called\");\n    return NULL;\n}\n\nvoid* SGBTF2(void)\n{\n    if (verbose) puts(\"STUB: SGBTF2 called\");\n    return NULL;\n}\n\nvoid* SGBTF2_(void)\n{\n    if (verbose) puts(\"STUB: SGBTF2_ called\");\n    return NULL;\n}\n\nvoid* SGBTRF(void)\n{\n    if (verbose) puts(\"STUB: SGBTRF called\");\n    return NULL;\n}\n\nvoid* SGBTRF_(void)\n{\n    if (verbose) puts(\"STUB: SGBTRF_ called\");\n    return NULL;\n}\n\nvoid* SGBTRS(void)\n{\n    if (verbose) puts(\"STUB: SGBTRS called\");\n    return NULL;\n}\n\nvoid* SGBTRS_(void)\n{\n    if (verbose) puts(\"STUB: SGBTRS_ called\");\n    return NULL;\n}\n\nvoid* SGEBAK(void)\n{\n    if (verbose) puts(\"STUB: SGEBAK called\");\n    return NULL;\n}\n\nvoid* SGEBAK_(void)\n{\n    if (verbose) puts(\"STUB: SGEBAK_ called\");\n    return NULL;\n}\n\nvoid* SGEBAL(void)\n{\n    if (verbose) puts(\"STUB: SGEBAL called\");\n    return NULL;\n}\n\nvoid* SGEBAL_(void)\n{\n    if (verbose) puts(\"STUB: SGEBAL_ called\");\n    return NULL;\n}\n\nvoid* SGEBD2(void)\n{\n    if (verbose) puts(\"STUB: SGEBD2 called\");\n    return NULL;\n}\n\nvoid* SGEBD2_(void)\n{\n    if (verbose) puts(\"STUB: SGEBD2_ called\");\n    return NULL;\n}\n\nvoid* SGEBRD(void)\n{\n    if (verbose) puts(\"STUB: SGEBRD called\");\n    return NULL;\n}\n\nvoid* SGEBRD_(void)\n{\n    if (verbose) puts(\"STUB: SGEBRD_ called\");\n    return NULL;\n}\n\nvoid* SGECON(void)\n{\n    if (verbose) puts(\"STUB: SGECON called\");\n    return NULL;\n}\n\nvoid* SGECON_(void)\n{\n    if (verbose) puts(\"STUB: SGECON_ called\");\n    return NULL;\n}\n\nvoid* SGEEQU(void)\n{\n    if (verbose) puts(\"STUB: SGEEQU called\");\n    return NULL;\n}\n\nvoid* SGEEQUB(void)\n{\n    if (verbose) puts(\"STUB: SGEEQUB called\");\n    return NULL;\n}\n\nvoid* SGEEQUB_(void)\n{\n    if (verbose) puts(\"STUB: SGEEQUB_ called\");\n    return NULL;\n}\n\nvoid* SGEEQU_(void)\n{\n    if (verbose) puts(\"STUB: SGEEQU_ called\");\n    return NULL;\n}\n\nvoid* SGEES(void)\n{\n    if (verbose) puts(\"STUB: SGEES called\");\n    return NULL;\n}\n\nvoid* SGEESX(void)\n{\n    if (verbose) puts(\"STUB: SGEESX called\");\n    return NULL;\n}\n\nvoid* SGEESX_(void)\n{\n    if (verbose) puts(\"STUB: SGEESX_ called\");\n    return NULL;\n}\n\nvoid* SGEES_(void)\n{\n    if (verbose) puts(\"STUB: SGEES_ called\");\n    return NULL;\n}\n\nvoid* SGEEV(void)\n{\n    if (verbose) puts(\"STUB: SGEEV called\");\n    return NULL;\n}\n\nvoid* SGEEVX(void)\n{\n    if (verbose) puts(\"STUB: SGEEVX called\");\n    return NULL;\n}\n\nvoid* SGEEVX_(void)\n{\n    if (verbose) puts(\"STUB: SGEEVX_ called\");\n    return NULL;\n}\n\nvoid* SGEEV_(void)\n{\n    if (verbose) puts(\"STUB: SGEEV_ called\");\n    return NULL;\n}\n\nvoid* SGEGS(void)\n{\n    if (verbose) puts(\"STUB: SGEGS called\");\n    return NULL;\n}\n\nvoid* SGEGS_(void)\n{\n    if (verbose) puts(\"STUB: SGEGS_ called\");\n    return NULL;\n}\n\nvoid* SGEGV(void)\n{\n    if (verbose) puts(\"STUB: SGEGV called\");\n    return NULL;\n}\n\nvoid* SGEGV_(void)\n{\n    if (verbose) puts(\"STUB: SGEGV_ called\");\n    return NULL;\n}\n\nvoid* SGEHD2(void)\n{\n    if (verbose) puts(\"STUB: SGEHD2 called\");\n    return NULL;\n}\n\nvoid* SGEHD2_(void)\n{\n    if (verbose) puts(\"STUB: SGEHD2_ called\");\n    return NULL;\n}\n\nvoid* SGEHRD(void)\n{\n    if (verbose) puts(\"STUB: SGEHRD called\");\n    return NULL;\n}\n\nvoid* SGEHRD_(void)\n{\n    if (verbose) puts(\"STUB: SGEHRD_ called\");\n    return NULL;\n}\n\nvoid* SGEJSV(void)\n{\n    if (verbose) puts(\"STUB: SGEJSV called\");\n    return NULL;\n}\n\nvoid* SGEJSV_(void)\n{\n    if (verbose) puts(\"STUB: SGEJSV_ called\");\n    return NULL;\n}\n\nvoid* SGELQ2(void)\n{\n    if (verbose) puts(\"STUB: SGELQ2 called\");\n    return NULL;\n}\n\nvoid* SGELQ2_(void)\n{\n    if (verbose) puts(\"STUB: SGELQ2_ called\");\n    return NULL;\n}\n\nvoid* SGELQF(void)\n{\n    if (verbose) puts(\"STUB: SGELQF called\");\n    return NULL;\n}\n\nvoid* SGELQF_(void)\n{\n    if (verbose) puts(\"STUB: SGELQF_ called\");\n    return NULL;\n}\n\nvoid* SGELS(void)\n{\n    if (verbose) puts(\"STUB: SGELS called\");\n    return NULL;\n}\n\nvoid* SGELSD(void)\n{\n    if (verbose) puts(\"STUB: SGELSD called\");\n    return NULL;\n}\n\nvoid* SGELSD_(void)\n{\n    if (verbose) puts(\"STUB: SGELSD_ called\");\n    return NULL;\n}\n\nvoid* SGELSS(void)\n{\n    if (verbose) puts(\"STUB: SGELSS called\");\n    return NULL;\n}\n\nvoid* SGELSS_(void)\n{\n    if (verbose) puts(\"STUB: SGELSS_ called\");\n    return NULL;\n}\n\nvoid* SGELSX(void)\n{\n    if (verbose) puts(\"STUB: SGELSX called\");\n    return NULL;\n}\n\nvoid* SGELSX_(void)\n{\n    if (verbose) puts(\"STUB: SGELSX_ called\");\n    return NULL;\n}\n\nvoid* SGELSY(void)\n{\n    if (verbose) puts(\"STUB: SGELSY called\");\n    return NULL;\n}\n\nvoid* SGELSY_(void)\n{\n    if (verbose) puts(\"STUB: SGELSY_ called\");\n    return NULL;\n}\n\nvoid* SGELS_(void)\n{\n    if (verbose) puts(\"STUB: SGELS_ called\");\n    return NULL;\n}\n\nvoid* SGEQL2(void)\n{\n    if (verbose) puts(\"STUB: SGEQL2 called\");\n    return NULL;\n}\n\nvoid* SGEQL2_(void)\n{\n    if (verbose) puts(\"STUB: SGEQL2_ called\");\n    return NULL;\n}\n\nvoid* SGEQLF(void)\n{\n    if (verbose) puts(\"STUB: SGEQLF called\");\n    return NULL;\n}\n\nvoid* SGEQLF_(void)\n{\n    if (verbose) puts(\"STUB: SGEQLF_ called\");\n    return NULL;\n}\n\nvoid* SGEQP3(void)\n{\n    if (verbose) puts(\"STUB: SGEQP3 called\");\n    return NULL;\n}\n\nvoid* SGEQP3_(void)\n{\n    if (verbose) puts(\"STUB: SGEQP3_ called\");\n    return NULL;\n}\n\nvoid* SGEQPF(void)\n{\n    if (verbose) puts(\"STUB: SGEQPF called\");\n    return NULL;\n}\n\nvoid* SGEQPF_(void)\n{\n    if (verbose) puts(\"STUB: SGEQPF_ called\");\n    return NULL;\n}\n\nvoid* SGEQR2(void)\n{\n    if (verbose) puts(\"STUB: SGEQR2 called\");\n    return NULL;\n}\n\nvoid* SGEQR2_(void)\n{\n    if (verbose) puts(\"STUB: SGEQR2_ called\");\n    return NULL;\n}\n\nvoid* SGEQRF(void)\n{\n    if (verbose) puts(\"STUB: SGEQRF called\");\n    return NULL;\n}\n\nvoid* SGEQRF_(void)\n{\n    if (verbose) puts(\"STUB: SGEQRF_ called\");\n    return NULL;\n}\n\nvoid* SGERFS(void)\n{\n    if (verbose) puts(\"STUB: SGERFS called\");\n    return NULL;\n}\n\nvoid* SGERFS_(void)\n{\n    if (verbose) puts(\"STUB: SGERFS_ called\");\n    return NULL;\n}\n\nvoid* SGERQ2(void)\n{\n    if (verbose) puts(\"STUB: SGERQ2 called\");\n    return NULL;\n}\n\nvoid* SGERQ2_(void)\n{\n    if (verbose) puts(\"STUB: SGERQ2_ called\");\n    return NULL;\n}\n\nvoid* SGERQF(void)\n{\n    if (verbose) puts(\"STUB: SGERQF called\");\n    return NULL;\n}\n\nvoid* SGERQF_(void)\n{\n    if (verbose) puts(\"STUB: SGERQF_ called\");\n    return NULL;\n}\n\nvoid* SGESC2(void)\n{\n    if (verbose) puts(\"STUB: SGESC2 called\");\n    return NULL;\n}\n\nvoid* SGESC2_(void)\n{\n    if (verbose) puts(\"STUB: SGESC2_ called\");\n    return NULL;\n}\n\nvoid* SGESDD(void)\n{\n    if (verbose) puts(\"STUB: SGESDD called\");\n    return NULL;\n}\n\nvoid* SGESDD_(void)\n{\n    if (verbose) puts(\"STUB: SGESDD_ called\");\n    return NULL;\n}\n\nvoid* SGESV(void)\n{\n    if (verbose) puts(\"STUB: SGESV called\");\n    return NULL;\n}\n\nvoid* SGESVD(void)\n{\n    if (verbose) puts(\"STUB: SGESVD called\");\n    return NULL;\n}\n\nvoid* SGESVD_(void)\n{\n    if (verbose) puts(\"STUB: SGESVD_ called\");\n    return NULL;\n}\n\nvoid* SGESVJ(void)\n{\n    if (verbose) puts(\"STUB: SGESVJ called\");\n    return NULL;\n}\n\nvoid* SGESVJ_(void)\n{\n    if (verbose) puts(\"STUB: SGESVJ_ called\");\n    return NULL;\n}\n\nvoid* SGESVX(void)\n{\n    if (verbose) puts(\"STUB: SGESVX called\");\n    return NULL;\n}\n\nvoid* SGESVX_(void)\n{\n    if (verbose) puts(\"STUB: SGESVX_ called\");\n    return NULL;\n}\n\nvoid* SGESV_(void)\n{\n    if (verbose) puts(\"STUB: SGESV_ called\");\n    return NULL;\n}\n\nvoid* SGETC2(void)\n{\n    if (verbose) puts(\"STUB: SGETC2 called\");\n    return NULL;\n}\n\nvoid* SGETC2_(void)\n{\n    if (verbose) puts(\"STUB: SGETC2_ called\");\n    return NULL;\n}\n\nvoid* SGETF2(void)\n{\n    if (verbose) puts(\"STUB: SGETF2 called\");\n    return NULL;\n}\n\nvoid* SGETF2_(void)\n{\n    if (verbose) puts(\"STUB: SGETF2_ called\");\n    return NULL;\n}\n\nvoid* SGETRF(void)\n{\n    if (verbose) puts(\"STUB: SGETRF called\");\n    return NULL;\n}\n\nvoid* SGETRF_(void)\n{\n    if (verbose) puts(\"STUB: SGETRF_ called\");\n    return NULL;\n}\n\nvoid* SGETRI(void)\n{\n    if (verbose) puts(\"STUB: SGETRI called\");\n    return NULL;\n}\n\nvoid* SGETRI_(void)\n{\n    if (verbose) puts(\"STUB: SGETRI_ called\");\n    return NULL;\n}\n\nvoid* SGETRS(void)\n{\n    if (verbose) puts(\"STUB: SGETRS called\");\n    return NULL;\n}\n\nvoid* SGETRS_(void)\n{\n    if (verbose) puts(\"STUB: SGETRS_ called\");\n    return NULL;\n}\n\nvoid* SGGBAK(void)\n{\n    if (verbose) puts(\"STUB: SGGBAK called\");\n    return NULL;\n}\n\nvoid* SGGBAK_(void)\n{\n    if (verbose) puts(\"STUB: SGGBAK_ called\");\n    return NULL;\n}\n\nvoid* SGGBAL(void)\n{\n    if (verbose) puts(\"STUB: SGGBAL called\");\n    return NULL;\n}\n\nvoid* SGGBAL_(void)\n{\n    if (verbose) puts(\"STUB: SGGBAL_ called\");\n    return NULL;\n}\n\nvoid* SGGES(void)\n{\n    if (verbose) puts(\"STUB: SGGES called\");\n    return NULL;\n}\n\nvoid* SGGESX(void)\n{\n    if (verbose) puts(\"STUB: SGGESX called\");\n    return NULL;\n}\n\nvoid* SGGESX_(void)\n{\n    if (verbose) puts(\"STUB: SGGESX_ called\");\n    return NULL;\n}\n\nvoid* SGGES_(void)\n{\n    if (verbose) puts(\"STUB: SGGES_ called\");\n    return NULL;\n}\n\nvoid* SGGEV(void)\n{\n    if (verbose) puts(\"STUB: SGGEV called\");\n    return NULL;\n}\n\nvoid* SGGEVX(void)\n{\n    if (verbose) puts(\"STUB: SGGEVX called\");\n    return NULL;\n}\n\nvoid* SGGEVX_(void)\n{\n    if (verbose) puts(\"STUB: SGGEVX_ called\");\n    return NULL;\n}\n\nvoid* SGGEV_(void)\n{\n    if (verbose) puts(\"STUB: SGGEV_ called\");\n    return NULL;\n}\n\nvoid* SGGGLM(void)\n{\n    if (verbose) puts(\"STUB: SGGGLM called\");\n    return NULL;\n}\n\nvoid* SGGGLM_(void)\n{\n    if (verbose) puts(\"STUB: SGGGLM_ called\");\n    return NULL;\n}\n\nvoid* SGGHRD(void)\n{\n    if (verbose) puts(\"STUB: SGGHRD called\");\n    return NULL;\n}\n\nvoid* SGGHRD_(void)\n{\n    if (verbose) puts(\"STUB: SGGHRD_ called\");\n    return NULL;\n}\n\nvoid* SGGLSE(void)\n{\n    if (verbose) puts(\"STUB: SGGLSE called\");\n    return NULL;\n}\n\nvoid* SGGLSE_(void)\n{\n    if (verbose) puts(\"STUB: SGGLSE_ called\");\n    return NULL;\n}\n\nvoid* SGGQRF(void)\n{\n    if (verbose) puts(\"STUB: SGGQRF called\");\n    return NULL;\n}\n\nvoid* SGGQRF_(void)\n{\n    if (verbose) puts(\"STUB: SGGQRF_ called\");\n    return NULL;\n}\n\nvoid* SGGRQF(void)\n{\n    if (verbose) puts(\"STUB: SGGRQF called\");\n    return NULL;\n}\n\nvoid* SGGRQF_(void)\n{\n    if (verbose) puts(\"STUB: SGGRQF_ called\");\n    return NULL;\n}\n\nvoid* SGGSVD(void)\n{\n    if (verbose) puts(\"STUB: SGGSVD called\");\n    return NULL;\n}\n\nvoid* SGGSVD_(void)\n{\n    if (verbose) puts(\"STUB: SGGSVD_ called\");\n    return NULL;\n}\n\nvoid* SGGSVP(void)\n{\n    if (verbose) puts(\"STUB: SGGSVP called\");\n    return NULL;\n}\n\nvoid* SGGSVP_(void)\n{\n    if (verbose) puts(\"STUB: SGGSVP_ called\");\n    return NULL;\n}\n\nvoid* SGSVJ0(void)\n{\n    if (verbose) puts(\"STUB: SGSVJ0 called\");\n    return NULL;\n}\n\nvoid* SGSVJ0_(void)\n{\n    if (verbose) puts(\"STUB: SGSVJ0_ called\");\n    return NULL;\n}\n\nvoid* SGSVJ1(void)\n{\n    if (verbose) puts(\"STUB: SGSVJ1 called\");\n    return NULL;\n}\n\nvoid* SGSVJ1_(void)\n{\n    if (verbose) puts(\"STUB: SGSVJ1_ called\");\n    return NULL;\n}\n\nvoid* SGTCON(void)\n{\n    if (verbose) puts(\"STUB: SGTCON called\");\n    return NULL;\n}\n\nvoid* SGTCON_(void)\n{\n    if (verbose) puts(\"STUB: SGTCON_ called\");\n    return NULL;\n}\n\nvoid* SGTRFS(void)\n{\n    if (verbose) puts(\"STUB: SGTRFS called\");\n    return NULL;\n}\n\nvoid* SGTRFS_(void)\n{\n    if (verbose) puts(\"STUB: SGTRFS_ called\");\n    return NULL;\n}\n\nvoid* SGTSV(void)\n{\n    if (verbose) puts(\"STUB: SGTSV called\");\n    return NULL;\n}\n\nvoid* SGTSVX(void)\n{\n    if (verbose) puts(\"STUB: SGTSVX called\");\n    return NULL;\n}\n\nvoid* SGTSVX_(void)\n{\n    if (verbose) puts(\"STUB: SGTSVX_ called\");\n    return NULL;\n}\n\nvoid* SGTSV_(void)\n{\n    if (verbose) puts(\"STUB: SGTSV_ called\");\n    return NULL;\n}\n\nvoid* SGTTRF(void)\n{\n    if (verbose) puts(\"STUB: SGTTRF called\");\n    return NULL;\n}\n\nvoid* SGTTRF_(void)\n{\n    if (verbose) puts(\"STUB: SGTTRF_ called\");\n    return NULL;\n}\n\nvoid* SGTTRS(void)\n{\n    if (verbose) puts(\"STUB: SGTTRS called\");\n    return NULL;\n}\n\nvoid* SGTTRS_(void)\n{\n    if (verbose) puts(\"STUB: SGTTRS_ called\");\n    return NULL;\n}\n\nvoid* SGTTS2(void)\n{\n    if (verbose) puts(\"STUB: SGTTS2 called\");\n    return NULL;\n}\n\nvoid* SGTTS2_(void)\n{\n    if (verbose) puts(\"STUB: SGTTS2_ called\");\n    return NULL;\n}\n\nvoid* SHGEQZ(void)\n{\n    if (verbose) puts(\"STUB: SHGEQZ called\");\n    return NULL;\n}\n\nvoid* SHGEQZ_(void)\n{\n    if (verbose) puts(\"STUB: SHGEQZ_ called\");\n    return NULL;\n}\n\nvoid* SHSEIN(void)\n{\n    if (verbose) puts(\"STUB: SHSEIN called\");\n    return NULL;\n}\n\nvoid* SHSEIN_(void)\n{\n    if (verbose) puts(\"STUB: SHSEIN_ called\");\n    return NULL;\n}\n\nvoid* SHSEQR(void)\n{\n    if (verbose) puts(\"STUB: SHSEQR called\");\n    return NULL;\n}\n\nvoid* SHSEQR_(void)\n{\n    if (verbose) puts(\"STUB: SHSEQR_ called\");\n    return NULL;\n}\n\nvoid* SISNAN(void)\n{\n    if (verbose) puts(\"STUB: SISNAN called\");\n    return NULL;\n}\n\nvoid* SISNAN_(void)\n{\n    if (verbose) puts(\"STUB: SISNAN_ called\");\n    return NULL;\n}\n\nvoid* SLABAD(void)\n{\n    if (verbose) puts(\"STUB: SLABAD called\");\n    return NULL;\n}\n\nvoid* SLABAD_(void)\n{\n    if (verbose) puts(\"STUB: SLABAD_ called\");\n    return NULL;\n}\n\nvoid* SLABRD(void)\n{\n    if (verbose) puts(\"STUB: SLABRD called\");\n    return NULL;\n}\n\nvoid* SLABRD_(void)\n{\n    if (verbose) puts(\"STUB: SLABRD_ called\");\n    return NULL;\n}\n\nvoid* SLACN2(void)\n{\n    if (verbose) puts(\"STUB: SLACN2 called\");\n    return NULL;\n}\n\nvoid* SLACN2_(void)\n{\n    if (verbose) puts(\"STUB: SLACN2_ called\");\n    return NULL;\n}\n\nvoid* SLACON(void)\n{\n    if (verbose) puts(\"STUB: SLACON called\");\n    return NULL;\n}\n\nvoid* SLACON_(void)\n{\n    if (verbose) puts(\"STUB: SLACON_ called\");\n    return NULL;\n}\n\nvoid* SLACPY(void)\n{\n    if (verbose) puts(\"STUB: SLACPY called\");\n    return NULL;\n}\n\nvoid* SLACPY_(void)\n{\n    if (verbose) puts(\"STUB: SLACPY_ called\");\n    return NULL;\n}\n\nvoid* SLADIV(void)\n{\n    if (verbose) puts(\"STUB: SLADIV called\");\n    return NULL;\n}\n\nvoid* SLADIV_(void)\n{\n    if (verbose) puts(\"STUB: SLADIV_ called\");\n    return NULL;\n}\n\nvoid* SLAE2(void)\n{\n    if (verbose) puts(\"STUB: SLAE2 called\");\n    return NULL;\n}\n\nvoid* SLAE2_(void)\n{\n    if (verbose) puts(\"STUB: SLAE2_ called\");\n    return NULL;\n}\n\nvoid* SLAEBZ(void)\n{\n    if (verbose) puts(\"STUB: SLAEBZ called\");\n    return NULL;\n}\n\nvoid* SLAEBZ_(void)\n{\n    if (verbose) puts(\"STUB: SLAEBZ_ called\");\n    return NULL;\n}\n\nvoid* SLAED0(void)\n{\n    if (verbose) puts(\"STUB: SLAED0 called\");\n    return NULL;\n}\n\nvoid* SLAED0_(void)\n{\n    if (verbose) puts(\"STUB: SLAED0_ called\");\n    return NULL;\n}\n\nvoid* SLAED1(void)\n{\n    if (verbose) puts(\"STUB: SLAED1 called\");\n    return NULL;\n}\n\nvoid* SLAED1_(void)\n{\n    if (verbose) puts(\"STUB: SLAED1_ called\");\n    return NULL;\n}\n\nvoid* SLAED2(void)\n{\n    if (verbose) puts(\"STUB: SLAED2 called\");\n    return NULL;\n}\n\nvoid* SLAED2_(void)\n{\n    if (verbose) puts(\"STUB: SLAED2_ called\");\n    return NULL;\n}\n\nvoid* SLAED3(void)\n{\n    if (verbose) puts(\"STUB: SLAED3 called\");\n    return NULL;\n}\n\nvoid* SLAED3_(void)\n{\n    if (verbose) puts(\"STUB: SLAED3_ called\");\n    return NULL;\n}\n\nvoid* SLAED4(void)\n{\n    if (verbose) puts(\"STUB: SLAED4 called\");\n    return NULL;\n}\n\nvoid* SLAED4_(void)\n{\n    if (verbose) puts(\"STUB: SLAED4_ called\");\n    return NULL;\n}\n\nvoid* SLAED5(void)\n{\n    if (verbose) puts(\"STUB: SLAED5 called\");\n    return NULL;\n}\n\nvoid* SLAED5_(void)\n{\n    if (verbose) puts(\"STUB: SLAED5_ called\");\n    return NULL;\n}\n\nvoid* SLAED6(void)\n{\n    if (verbose) puts(\"STUB: SLAED6 called\");\n    return NULL;\n}\n\nvoid* SLAED6_(void)\n{\n    if (verbose) puts(\"STUB: SLAED6_ called\");\n    return NULL;\n}\n\nvoid* SLAED7(void)\n{\n    if (verbose) puts(\"STUB: SLAED7 called\");\n    return NULL;\n}\n\nvoid* SLAED7_(void)\n{\n    if (verbose) puts(\"STUB: SLAED7_ called\");\n    return NULL;\n}\n\nvoid* SLAED8(void)\n{\n    if (verbose) puts(\"STUB: SLAED8 called\");\n    return NULL;\n}\n\nvoid* SLAED8_(void)\n{\n    if (verbose) puts(\"STUB: SLAED8_ called\");\n    return NULL;\n}\n\nvoid* SLAED9(void)\n{\n    if (verbose) puts(\"STUB: SLAED9 called\");\n    return NULL;\n}\n\nvoid* SLAED9_(void)\n{\n    if (verbose) puts(\"STUB: SLAED9_ called\");\n    return NULL;\n}\n\nvoid* SLAEDA(void)\n{\n    if (verbose) puts(\"STUB: SLAEDA called\");\n    return NULL;\n}\n\nvoid* SLAEDA_(void)\n{\n    if (verbose) puts(\"STUB: SLAEDA_ called\");\n    return NULL;\n}\n\nvoid* SLAEIN(void)\n{\n    if (verbose) puts(\"STUB: SLAEIN called\");\n    return NULL;\n}\n\nvoid* SLAEIN_(void)\n{\n    if (verbose) puts(\"STUB: SLAEIN_ called\");\n    return NULL;\n}\n\nvoid* SLAEV2(void)\n{\n    if (verbose) puts(\"STUB: SLAEV2 called\");\n    return NULL;\n}\n\nvoid* SLAEV2_(void)\n{\n    if (verbose) puts(\"STUB: SLAEV2_ called\");\n    return NULL;\n}\n\nvoid* SLAEXC(void)\n{\n    if (verbose) puts(\"STUB: SLAEXC called\");\n    return NULL;\n}\n\nvoid* SLAEXC_(void)\n{\n    if (verbose) puts(\"STUB: SLAEXC_ called\");\n    return NULL;\n}\n\nvoid* SLAG2(void)\n{\n    if (verbose) puts(\"STUB: SLAG2 called\");\n    return NULL;\n}\n\nvoid* SLAG2D(void)\n{\n    if (verbose) puts(\"STUB: SLAG2D called\");\n    return NULL;\n}\n\nvoid* SLAG2D_(void)\n{\n    if (verbose) puts(\"STUB: SLAG2D_ called\");\n    return NULL;\n}\n\nvoid* SLAG2_(void)\n{\n    if (verbose) puts(\"STUB: SLAG2_ called\");\n    return NULL;\n}\n\nvoid* SLAGS2(void)\n{\n    if (verbose) puts(\"STUB: SLAGS2 called\");\n    return NULL;\n}\n\nvoid* SLAGS2_(void)\n{\n    if (verbose) puts(\"STUB: SLAGS2_ called\");\n    return NULL;\n}\n\nvoid* SLAGTF(void)\n{\n    if (verbose) puts(\"STUB: SLAGTF called\");\n    return NULL;\n}\n\nvoid* SLAGTF_(void)\n{\n    if (verbose) puts(\"STUB: SLAGTF_ called\");\n    return NULL;\n}\n\nvoid* SLAGTM(void)\n{\n    if (verbose) puts(\"STUB: SLAGTM called\");\n    return NULL;\n}\n\nvoid* SLAGTM_(void)\n{\n    if (verbose) puts(\"STUB: SLAGTM_ called\");\n    return NULL;\n}\n\nvoid* SLAGTS(void)\n{\n    if (verbose) puts(\"STUB: SLAGTS called\");\n    return NULL;\n}\n\nvoid* SLAGTS_(void)\n{\n    if (verbose) puts(\"STUB: SLAGTS_ called\");\n    return NULL;\n}\n\nvoid* SLAGV2(void)\n{\n    if (verbose) puts(\"STUB: SLAGV2 called\");\n    return NULL;\n}\n\nvoid* SLAGV2_(void)\n{\n    if (verbose) puts(\"STUB: SLAGV2_ called\");\n    return NULL;\n}\n\nvoid* SLAHQR(void)\n{\n    if (verbose) puts(\"STUB: SLAHQR called\");\n    return NULL;\n}\n\nvoid* SLAHQR_(void)\n{\n    if (verbose) puts(\"STUB: SLAHQR_ called\");\n    return NULL;\n}\n\nvoid* SLAHR2(void)\n{\n    if (verbose) puts(\"STUB: SLAHR2 called\");\n    return NULL;\n}\n\nvoid* SLAHR2_(void)\n{\n    if (verbose) puts(\"STUB: SLAHR2_ called\");\n    return NULL;\n}\n\nvoid* SLAHRD(void)\n{\n    if (verbose) puts(\"STUB: SLAHRD called\");\n    return NULL;\n}\n\nvoid* SLAHRD_(void)\n{\n    if (verbose) puts(\"STUB: SLAHRD_ called\");\n    return NULL;\n}\n\nvoid* SLAIC1(void)\n{\n    if (verbose) puts(\"STUB: SLAIC1 called\");\n    return NULL;\n}\n\nvoid* SLAIC1_(void)\n{\n    if (verbose) puts(\"STUB: SLAIC1_ called\");\n    return NULL;\n}\n\nvoid* SLAISNAN(void)\n{\n    if (verbose) puts(\"STUB: SLAISNAN called\");\n    return NULL;\n}\n\nvoid* SLAISNAN_(void)\n{\n    if (verbose) puts(\"STUB: SLAISNAN_ called\");\n    return NULL;\n}\n\nvoid* SLALN2(void)\n{\n    if (verbose) puts(\"STUB: SLALN2 called\");\n    return NULL;\n}\n\nvoid* SLALN2_(void)\n{\n    if (verbose) puts(\"STUB: SLALN2_ called\");\n    return NULL;\n}\n\nvoid* SLALS0(void)\n{\n    if (verbose) puts(\"STUB: SLALS0 called\");\n    return NULL;\n}\n\nvoid* SLALS0_(void)\n{\n    if (verbose) puts(\"STUB: SLALS0_ called\");\n    return NULL;\n}\n\nvoid* SLALSA(void)\n{\n    if (verbose) puts(\"STUB: SLALSA called\");\n    return NULL;\n}\n\nvoid* SLALSA_(void)\n{\n    if (verbose) puts(\"STUB: SLALSA_ called\");\n    return NULL;\n}\n\nvoid* SLALSD(void)\n{\n    if (verbose) puts(\"STUB: SLALSD called\");\n    return NULL;\n}\n\nvoid* SLALSD_(void)\n{\n    if (verbose) puts(\"STUB: SLALSD_ called\");\n    return NULL;\n}\n\nvoid* SLAMC1(void)\n{\n    if (verbose) puts(\"STUB: SLAMC1 called\");\n    return NULL;\n}\n\nvoid* SLAMC1_(void)\n{\n    if (verbose) puts(\"STUB: SLAMC1_ called\");\n    return NULL;\n}\n\nvoid* SLAMC2(void)\n{\n    if (verbose) puts(\"STUB: SLAMC2 called\");\n    return NULL;\n}\n\nvoid* SLAMC2_(void)\n{\n    if (verbose) puts(\"STUB: SLAMC2_ called\");\n    return NULL;\n}\n\nvoid* SLAMC3(void)\n{\n    if (verbose) puts(\"STUB: SLAMC3 called\");\n    return NULL;\n}\n\nvoid* SLAMC3_(void)\n{\n    if (verbose) puts(\"STUB: SLAMC3_ called\");\n    return NULL;\n}\n\nvoid* SLAMC4(void)\n{\n    if (verbose) puts(\"STUB: SLAMC4 called\");\n    return NULL;\n}\n\nvoid* SLAMC4_(void)\n{\n    if (verbose) puts(\"STUB: SLAMC4_ called\");\n    return NULL;\n}\n\nvoid* SLAMC5(void)\n{\n    if (verbose) puts(\"STUB: SLAMC5 called\");\n    return NULL;\n}\n\nvoid* SLAMC5_(void)\n{\n    if (verbose) puts(\"STUB: SLAMC5_ called\");\n    return NULL;\n}\n\nvoid* SLAMCH(void)\n{\n    if (verbose) puts(\"STUB: SLAMCH called\");\n    return NULL;\n}\n\nvoid* SLAMCH_(void)\n{\n    if (verbose) puts(\"STUB: SLAMCH_ called\");\n    return NULL;\n}\n\nvoid* SLAMRG(void)\n{\n    if (verbose) puts(\"STUB: SLAMRG called\");\n    return NULL;\n}\n\nvoid* SLAMRG_(void)\n{\n    if (verbose) puts(\"STUB: SLAMRG_ called\");\n    return NULL;\n}\n\nvoid* SLANEG(void)\n{\n    if (verbose) puts(\"STUB: SLANEG called\");\n    return NULL;\n}\n\nvoid* SLANEG_(void)\n{\n    if (verbose) puts(\"STUB: SLANEG_ called\");\n    return NULL;\n}\n\nvoid* SLANGB(void)\n{\n    if (verbose) puts(\"STUB: SLANGB called\");\n    return NULL;\n}\n\nvoid* SLANGB_(void)\n{\n    if (verbose) puts(\"STUB: SLANGB_ called\");\n    return NULL;\n}\n\nvoid* SLANGE(void)\n{\n    if (verbose) puts(\"STUB: SLANGE called\");\n    return NULL;\n}\n\nvoid* SLANGE_(void)\n{\n    if (verbose) puts(\"STUB: SLANGE_ called\");\n    return NULL;\n}\n\nvoid* SLANGT(void)\n{\n    if (verbose) puts(\"STUB: SLANGT called\");\n    return NULL;\n}\n\nvoid* SLANGT_(void)\n{\n    if (verbose) puts(\"STUB: SLANGT_ called\");\n    return NULL;\n}\n\nvoid* SLANHS(void)\n{\n    if (verbose) puts(\"STUB: SLANHS called\");\n    return NULL;\n}\n\nvoid* SLANHS_(void)\n{\n    if (verbose) puts(\"STUB: SLANHS_ called\");\n    return NULL;\n}\n\nvoid* SLANSB(void)\n{\n    if (verbose) puts(\"STUB: SLANSB called\");\n    return NULL;\n}\n\nvoid* SLANSB_(void)\n{\n    if (verbose) puts(\"STUB: SLANSB_ called\");\n    return NULL;\n}\n\nvoid* SLANSF(void)\n{\n    if (verbose) puts(\"STUB: SLANSF called\");\n    return NULL;\n}\n\nvoid* SLANSF_(void)\n{\n    if (verbose) puts(\"STUB: SLANSF_ called\");\n    return NULL;\n}\n\nvoid* SLANSP(void)\n{\n    if (verbose) puts(\"STUB: SLANSP called\");\n    return NULL;\n}\n\nvoid* SLANSP_(void)\n{\n    if (verbose) puts(\"STUB: SLANSP_ called\");\n    return NULL;\n}\n\nvoid* SLANST(void)\n{\n    if (verbose) puts(\"STUB: SLANST called\");\n    return NULL;\n}\n\nvoid* SLANST_(void)\n{\n    if (verbose) puts(\"STUB: SLANST_ called\");\n    return NULL;\n}\n\nvoid* SLANSY(void)\n{\n    if (verbose) puts(\"STUB: SLANSY called\");\n    return NULL;\n}\n\nvoid* SLANSY_(void)\n{\n    if (verbose) puts(\"STUB: SLANSY_ called\");\n    return NULL;\n}\n\nvoid* SLANTB(void)\n{\n    if (verbose) puts(\"STUB: SLANTB called\");\n    return NULL;\n}\n\nvoid* SLANTB_(void)\n{\n    if (verbose) puts(\"STUB: SLANTB_ called\");\n    return NULL;\n}\n\nvoid* SLANTP(void)\n{\n    if (verbose) puts(\"STUB: SLANTP called\");\n    return NULL;\n}\n\nvoid* SLANTP_(void)\n{\n    if (verbose) puts(\"STUB: SLANTP_ called\");\n    return NULL;\n}\n\nvoid* SLANTR(void)\n{\n    if (verbose) puts(\"STUB: SLANTR called\");\n    return NULL;\n}\n\nvoid* SLANTR_(void)\n{\n    if (verbose) puts(\"STUB: SLANTR_ called\");\n    return NULL;\n}\n\nvoid* SLANV2(void)\n{\n    if (verbose) puts(\"STUB: SLANV2 called\");\n    return NULL;\n}\n\nvoid* SLANV2_(void)\n{\n    if (verbose) puts(\"STUB: SLANV2_ called\");\n    return NULL;\n}\n\nvoid* SLAPLL(void)\n{\n    if (verbose) puts(\"STUB: SLAPLL called\");\n    return NULL;\n}\n\nvoid* SLAPLL_(void)\n{\n    if (verbose) puts(\"STUB: SLAPLL_ called\");\n    return NULL;\n}\n\nvoid* SLAPMT(void)\n{\n    if (verbose) puts(\"STUB: SLAPMT called\");\n    return NULL;\n}\n\nvoid* SLAPMT_(void)\n{\n    if (verbose) puts(\"STUB: SLAPMT_ called\");\n    return NULL;\n}\n\nvoid* SLAPY2(void)\n{\n    if (verbose) puts(\"STUB: SLAPY2 called\");\n    return NULL;\n}\n\nvoid* SLAPY2_(void)\n{\n    if (verbose) puts(\"STUB: SLAPY2_ called\");\n    return NULL;\n}\n\nvoid* SLAPY3(void)\n{\n    if (verbose) puts(\"STUB: SLAPY3 called\");\n    return NULL;\n}\n\nvoid* SLAPY3_(void)\n{\n    if (verbose) puts(\"STUB: SLAPY3_ called\");\n    return NULL;\n}\n\nvoid* SLAQGB(void)\n{\n    if (verbose) puts(\"STUB: SLAQGB called\");\n    return NULL;\n}\n\nvoid* SLAQGB_(void)\n{\n    if (verbose) puts(\"STUB: SLAQGB_ called\");\n    return NULL;\n}\n\nvoid* SLAQGE(void)\n{\n    if (verbose) puts(\"STUB: SLAQGE called\");\n    return NULL;\n}\n\nvoid* SLAQGE_(void)\n{\n    if (verbose) puts(\"STUB: SLAQGE_ called\");\n    return NULL;\n}\n\nvoid* SLAQP2(void)\n{\n    if (verbose) puts(\"STUB: SLAQP2 called\");\n    return NULL;\n}\n\nvoid* SLAQP2_(void)\n{\n    if (verbose) puts(\"STUB: SLAQP2_ called\");\n    return NULL;\n}\n\nvoid* SLAQPS(void)\n{\n    if (verbose) puts(\"STUB: SLAQPS called\");\n    return NULL;\n}\n\nvoid* SLAQPS_(void)\n{\n    if (verbose) puts(\"STUB: SLAQPS_ called\");\n    return NULL;\n}\n\nvoid* SLAQR0(void)\n{\n    if (verbose) puts(\"STUB: SLAQR0 called\");\n    return NULL;\n}\n\nvoid* SLAQR0_(void)\n{\n    if (verbose) puts(\"STUB: SLAQR0_ called\");\n    return NULL;\n}\n\nvoid* SLAQR1(void)\n{\n    if (verbose) puts(\"STUB: SLAQR1 called\");\n    return NULL;\n}\n\nvoid* SLAQR1_(void)\n{\n    if (verbose) puts(\"STUB: SLAQR1_ called\");\n    return NULL;\n}\n\nvoid* SLAQR2(void)\n{\n    if (verbose) puts(\"STUB: SLAQR2 called\");\n    return NULL;\n}\n\nvoid* SLAQR2_(void)\n{\n    if (verbose) puts(\"STUB: SLAQR2_ called\");\n    return NULL;\n}\n\nvoid* SLAQR3(void)\n{\n    if (verbose) puts(\"STUB: SLAQR3 called\");\n    return NULL;\n}\n\nvoid* SLAQR3_(void)\n{\n    if (verbose) puts(\"STUB: SLAQR3_ called\");\n    return NULL;\n}\n\nvoid* SLAQR4(void)\n{\n    if (verbose) puts(\"STUB: SLAQR4 called\");\n    return NULL;\n}\n\nvoid* SLAQR4_(void)\n{\n    if (verbose) puts(\"STUB: SLAQR4_ called\");\n    return NULL;\n}\n\nvoid* SLAQR5(void)\n{\n    if (verbose) puts(\"STUB: SLAQR5 called\");\n    return NULL;\n}\n\nvoid* SLAQR5_(void)\n{\n    if (verbose) puts(\"STUB: SLAQR5_ called\");\n    return NULL;\n}\n\nvoid* SLAQSB(void)\n{\n    if (verbose) puts(\"STUB: SLAQSB called\");\n    return NULL;\n}\n\nvoid* SLAQSB_(void)\n{\n    if (verbose) puts(\"STUB: SLAQSB_ called\");\n    return NULL;\n}\n\nvoid* SLAQSP(void)\n{\n    if (verbose) puts(\"STUB: SLAQSP called\");\n    return NULL;\n}\n\nvoid* SLAQSP_(void)\n{\n    if (verbose) puts(\"STUB: SLAQSP_ called\");\n    return NULL;\n}\n\nvoid* SLAQSY(void)\n{\n    if (verbose) puts(\"STUB: SLAQSY called\");\n    return NULL;\n}\n\nvoid* SLAQSY_(void)\n{\n    if (verbose) puts(\"STUB: SLAQSY_ called\");\n    return NULL;\n}\n\nvoid* SLAQTR(void)\n{\n    if (verbose) puts(\"STUB: SLAQTR called\");\n    return NULL;\n}\n\nvoid* SLAQTR_(void)\n{\n    if (verbose) puts(\"STUB: SLAQTR_ called\");\n    return NULL;\n}\n\nvoid* SLAR1V(void)\n{\n    if (verbose) puts(\"STUB: SLAR1V called\");\n    return NULL;\n}\n\nvoid* SLAR1V_(void)\n{\n    if (verbose) puts(\"STUB: SLAR1V_ called\");\n    return NULL;\n}\n\nvoid* SLAR2V(void)\n{\n    if (verbose) puts(\"STUB: SLAR2V called\");\n    return NULL;\n}\n\nvoid* SLAR2V_(void)\n{\n    if (verbose) puts(\"STUB: SLAR2V_ called\");\n    return NULL;\n}\n\nvoid* SLARF(void)\n{\n    if (verbose) puts(\"STUB: SLARF called\");\n    return NULL;\n}\n\nvoid* SLARFB(void)\n{\n    if (verbose) puts(\"STUB: SLARFB called\");\n    return NULL;\n}\n\nvoid* SLARFB_(void)\n{\n    if (verbose) puts(\"STUB: SLARFB_ called\");\n    return NULL;\n}\n\nvoid* SLARFG(void)\n{\n    if (verbose) puts(\"STUB: SLARFG called\");\n    return NULL;\n}\n\nvoid* SLARFG_(void)\n{\n    if (verbose) puts(\"STUB: SLARFG_ called\");\n    return NULL;\n}\n\nvoid* SLARFP(void)\n{\n    if (verbose) puts(\"STUB: SLARFP called\");\n    return NULL;\n}\n\nvoid* SLARFP_(void)\n{\n    if (verbose) puts(\"STUB: SLARFP_ called\");\n    return NULL;\n}\n\nvoid* SLARFT(void)\n{\n    if (verbose) puts(\"STUB: SLARFT called\");\n    return NULL;\n}\n\nvoid* SLARFT_(void)\n{\n    if (verbose) puts(\"STUB: SLARFT_ called\");\n    return NULL;\n}\n\nvoid* SLARFX(void)\n{\n    if (verbose) puts(\"STUB: SLARFX called\");\n    return NULL;\n}\n\nvoid* SLARFX_(void)\n{\n    if (verbose) puts(\"STUB: SLARFX_ called\");\n    return NULL;\n}\n\nvoid* SLARF_(void)\n{\n    if (verbose) puts(\"STUB: SLARF_ called\");\n    return NULL;\n}\n\nvoid* SLARGV(void)\n{\n    if (verbose) puts(\"STUB: SLARGV called\");\n    return NULL;\n}\n\nvoid* SLARGV_(void)\n{\n    if (verbose) puts(\"STUB: SLARGV_ called\");\n    return NULL;\n}\n\nvoid* SLARNV(void)\n{\n    if (verbose) puts(\"STUB: SLARNV called\");\n    return NULL;\n}\n\nvoid* SLARNV_(void)\n{\n    if (verbose) puts(\"STUB: SLARNV_ called\");\n    return NULL;\n}\n\nvoid* SLARRA(void)\n{\n    if (verbose) puts(\"STUB: SLARRA called\");\n    return NULL;\n}\n\nvoid* SLARRA_(void)\n{\n    if (verbose) puts(\"STUB: SLARRA_ called\");\n    return NULL;\n}\n\nvoid* SLARRB(void)\n{\n    if (verbose) puts(\"STUB: SLARRB called\");\n    return NULL;\n}\n\nvoid* SLARRB_(void)\n{\n    if (verbose) puts(\"STUB: SLARRB_ called\");\n    return NULL;\n}\n\nvoid* SLARRC(void)\n{\n    if (verbose) puts(\"STUB: SLARRC called\");\n    return NULL;\n}\n\nvoid* SLARRC_(void)\n{\n    if (verbose) puts(\"STUB: SLARRC_ called\");\n    return NULL;\n}\n\nvoid* SLARRD(void)\n{\n    if (verbose) puts(\"STUB: SLARRD called\");\n    return NULL;\n}\n\nvoid* SLARRD_(void)\n{\n    if (verbose) puts(\"STUB: SLARRD_ called\");\n    return NULL;\n}\n\nvoid* SLARRE(void)\n{\n    if (verbose) puts(\"STUB: SLARRE called\");\n    return NULL;\n}\n\nvoid* SLARRE_(void)\n{\n    if (verbose) puts(\"STUB: SLARRE_ called\");\n    return NULL;\n}\n\nvoid* SLARRF(void)\n{\n    if (verbose) puts(\"STUB: SLARRF called\");\n    return NULL;\n}\n\nvoid* SLARRF_(void)\n{\n    if (verbose) puts(\"STUB: SLARRF_ called\");\n    return NULL;\n}\n\nvoid* SLARRJ(void)\n{\n    if (verbose) puts(\"STUB: SLARRJ called\");\n    return NULL;\n}\n\nvoid* SLARRJ_(void)\n{\n    if (verbose) puts(\"STUB: SLARRJ_ called\");\n    return NULL;\n}\n\nvoid* SLARRK(void)\n{\n    if (verbose) puts(\"STUB: SLARRK called\");\n    return NULL;\n}\n\nvoid* SLARRK_(void)\n{\n    if (verbose) puts(\"STUB: SLARRK_ called\");\n    return NULL;\n}\n\nvoid* SLARRR(void)\n{\n    if (verbose) puts(\"STUB: SLARRR called\");\n    return NULL;\n}\n\nvoid* SLARRR_(void)\n{\n    if (verbose) puts(\"STUB: SLARRR_ called\");\n    return NULL;\n}\n\nvoid* SLARRV(void)\n{\n    if (verbose) puts(\"STUB: SLARRV called\");\n    return NULL;\n}\n\nvoid* SLARRV_(void)\n{\n    if (verbose) puts(\"STUB: SLARRV_ called\");\n    return NULL;\n}\n\nvoid* SLARSCL2(void)\n{\n    if (verbose) puts(\"STUB: SLARSCL2 called\");\n    return NULL;\n}\n\nvoid* SLARSCL2_(void)\n{\n    if (verbose) puts(\"STUB: SLARSCL2_ called\");\n    return NULL;\n}\n\nvoid* SLARTG(void)\n{\n    if (verbose) puts(\"STUB: SLARTG called\");\n    return NULL;\n}\n\nvoid* SLARTG_(void)\n{\n    if (verbose) puts(\"STUB: SLARTG_ called\");\n    return NULL;\n}\n\nvoid* SLARTV(void)\n{\n    if (verbose) puts(\"STUB: SLARTV called\");\n    return NULL;\n}\n\nvoid* SLARTV_(void)\n{\n    if (verbose) puts(\"STUB: SLARTV_ called\");\n    return NULL;\n}\n\nvoid* SLARUV(void)\n{\n    if (verbose) puts(\"STUB: SLARUV called\");\n    return NULL;\n}\n\nvoid* SLARUV_(void)\n{\n    if (verbose) puts(\"STUB: SLARUV_ called\");\n    return NULL;\n}\n\nvoid* SLARZ(void)\n{\n    if (verbose) puts(\"STUB: SLARZ called\");\n    return NULL;\n}\n\nvoid* SLARZB(void)\n{\n    if (verbose) puts(\"STUB: SLARZB called\");\n    return NULL;\n}\n\nvoid* SLARZB_(void)\n{\n    if (verbose) puts(\"STUB: SLARZB_ called\");\n    return NULL;\n}\n\nvoid* SLARZT(void)\n{\n    if (verbose) puts(\"STUB: SLARZT called\");\n    return NULL;\n}\n\nvoid* SLARZT_(void)\n{\n    if (verbose) puts(\"STUB: SLARZT_ called\");\n    return NULL;\n}\n\nvoid* SLARZ_(void)\n{\n    if (verbose) puts(\"STUB: SLARZ_ called\");\n    return NULL;\n}\n\nvoid* SLAS2(void)\n{\n    if (verbose) puts(\"STUB: SLAS2 called\");\n    return NULL;\n}\n\nvoid* SLAS2_(void)\n{\n    if (verbose) puts(\"STUB: SLAS2_ called\");\n    return NULL;\n}\n\nvoid* SLASCL(void)\n{\n    if (verbose) puts(\"STUB: SLASCL called\");\n    return NULL;\n}\n\nvoid* SLASCL2(void)\n{\n    if (verbose) puts(\"STUB: SLASCL2 called\");\n    return NULL;\n}\n\nvoid* SLASCL2_(void)\n{\n    if (verbose) puts(\"STUB: SLASCL2_ called\");\n    return NULL;\n}\n\nvoid* SLASCL_(void)\n{\n    if (verbose) puts(\"STUB: SLASCL_ called\");\n    return NULL;\n}\n\nvoid* SLASD0(void)\n{\n    if (verbose) puts(\"STUB: SLASD0 called\");\n    return NULL;\n}\n\nvoid* SLASD0_(void)\n{\n    if (verbose) puts(\"STUB: SLASD0_ called\");\n    return NULL;\n}\n\nvoid* SLASD1(void)\n{\n    if (verbose) puts(\"STUB: SLASD1 called\");\n    return NULL;\n}\n\nvoid* SLASD1_(void)\n{\n    if (verbose) puts(\"STUB: SLASD1_ called\");\n    return NULL;\n}\n\nvoid* SLASD2(void)\n{\n    if (verbose) puts(\"STUB: SLASD2 called\");\n    return NULL;\n}\n\nvoid* SLASD2_(void)\n{\n    if (verbose) puts(\"STUB: SLASD2_ called\");\n    return NULL;\n}\n\nvoid* SLASD3(void)\n{\n    if (verbose) puts(\"STUB: SLASD3 called\");\n    return NULL;\n}\n\nvoid* SLASD3_(void)\n{\n    if (verbose) puts(\"STUB: SLASD3_ called\");\n    return NULL;\n}\n\nvoid* SLASD4(void)\n{\n    if (verbose) puts(\"STUB: SLASD4 called\");\n    return NULL;\n}\n\nvoid* SLASD4_(void)\n{\n    if (verbose) puts(\"STUB: SLASD4_ called\");\n    return NULL;\n}\n\nvoid* SLASD5(void)\n{\n    if (verbose) puts(\"STUB: SLASD5 called\");\n    return NULL;\n}\n\nvoid* SLASD5_(void)\n{\n    if (verbose) puts(\"STUB: SLASD5_ called\");\n    return NULL;\n}\n\nvoid* SLASD6(void)\n{\n    if (verbose) puts(\"STUB: SLASD6 called\");\n    return NULL;\n}\n\nvoid* SLASD6_(void)\n{\n    if (verbose) puts(\"STUB: SLASD6_ called\");\n    return NULL;\n}\n\nvoid* SLASD7(void)\n{\n    if (verbose) puts(\"STUB: SLASD7 called\");\n    return NULL;\n}\n\nvoid* SLASD7_(void)\n{\n    if (verbose) puts(\"STUB: SLASD7_ called\");\n    return NULL;\n}\n\nvoid* SLASD8(void)\n{\n    if (verbose) puts(\"STUB: SLASD8 called\");\n    return NULL;\n}\n\nvoid* SLASD8_(void)\n{\n    if (verbose) puts(\"STUB: SLASD8_ called\");\n    return NULL;\n}\n\nvoid* SLASD9(void)\n{\n    if (verbose) puts(\"STUB: SLASD9 called\");\n    return NULL;\n}\n\nvoid* SLASD9_(void)\n{\n    if (verbose) puts(\"STUB: SLASD9_ called\");\n    return NULL;\n}\n\nvoid* SLASDA(void)\n{\n    if (verbose) puts(\"STUB: SLASDA called\");\n    return NULL;\n}\n\nvoid* SLASDA_(void)\n{\n    if (verbose) puts(\"STUB: SLASDA_ called\");\n    return NULL;\n}\n\nvoid* SLASDQ(void)\n{\n    if (verbose) puts(\"STUB: SLASDQ called\");\n    return NULL;\n}\n\nvoid* SLASDQ_(void)\n{\n    if (verbose) puts(\"STUB: SLASDQ_ called\");\n    return NULL;\n}\n\nvoid* SLASDT(void)\n{\n    if (verbose) puts(\"STUB: SLASDT called\");\n    return NULL;\n}\n\nvoid* SLASDT_(void)\n{\n    if (verbose) puts(\"STUB: SLASDT_ called\");\n    return NULL;\n}\n\nvoid* SLASET(void)\n{\n    if (verbose) puts(\"STUB: SLASET called\");\n    return NULL;\n}\n\nvoid* SLASET_(void)\n{\n    if (verbose) puts(\"STUB: SLASET_ called\");\n    return NULL;\n}\n\nvoid* SLASQ1(void)\n{\n    if (verbose) puts(\"STUB: SLASQ1 called\");\n    return NULL;\n}\n\nvoid* SLASQ1_(void)\n{\n    if (verbose) puts(\"STUB: SLASQ1_ called\");\n    return NULL;\n}\n\nvoid* SLASQ2(void)\n{\n    if (verbose) puts(\"STUB: SLASQ2 called\");\n    return NULL;\n}\n\nvoid* SLASQ2_(void)\n{\n    if (verbose) puts(\"STUB: SLASQ2_ called\");\n    return NULL;\n}\n\nvoid* SLASQ3(void)\n{\n    if (verbose) puts(\"STUB: SLASQ3 called\");\n    return NULL;\n}\n\nvoid* SLASQ3_(void)\n{\n    if (verbose) puts(\"STUB: SLASQ3_ called\");\n    return NULL;\n}\n\nvoid* SLASQ4(void)\n{\n    if (verbose) puts(\"STUB: SLASQ4 called\");\n    return NULL;\n}\n\nvoid* SLASQ4_(void)\n{\n    if (verbose) puts(\"STUB: SLASQ4_ called\");\n    return NULL;\n}\n\nvoid* SLASQ5(void)\n{\n    if (verbose) puts(\"STUB: SLASQ5 called\");\n    return NULL;\n}\n\nvoid* SLASQ5_(void)\n{\n    if (verbose) puts(\"STUB: SLASQ5_ called\");\n    return NULL;\n}\n\nvoid* SLASQ6(void)\n{\n    if (verbose) puts(\"STUB: SLASQ6 called\");\n    return NULL;\n}\n\nvoid* SLASQ6_(void)\n{\n    if (verbose) puts(\"STUB: SLASQ6_ called\");\n    return NULL;\n}\n\nvoid* SLASR(void)\n{\n    if (verbose) puts(\"STUB: SLASR called\");\n    return NULL;\n}\n\nvoid* SLASRT(void)\n{\n    if (verbose) puts(\"STUB: SLASRT called\");\n    return NULL;\n}\n\nvoid* SLASRT_(void)\n{\n    if (verbose) puts(\"STUB: SLASRT_ called\");\n    return NULL;\n}\n\nvoid* SLASR_(void)\n{\n    if (verbose) puts(\"STUB: SLASR_ called\");\n    return NULL;\n}\n\nvoid* SLASSQ(void)\n{\n    if (verbose) puts(\"STUB: SLASSQ called\");\n    return NULL;\n}\n\nvoid* SLASSQ_(void)\n{\n    if (verbose) puts(\"STUB: SLASSQ_ called\");\n    return NULL;\n}\n\nvoid* SLASV2(void)\n{\n    if (verbose) puts(\"STUB: SLASV2 called\");\n    return NULL;\n}\n\nvoid* SLASV2_(void)\n{\n    if (verbose) puts(\"STUB: SLASV2_ called\");\n    return NULL;\n}\n\nvoid* SLASWP(void)\n{\n    if (verbose) puts(\"STUB: SLASWP called\");\n    return NULL;\n}\n\nvoid* SLASWP_(void)\n{\n    if (verbose) puts(\"STUB: SLASWP_ called\");\n    return NULL;\n}\n\nvoid* SLASY2(void)\n{\n    if (verbose) puts(\"STUB: SLASY2 called\");\n    return NULL;\n}\n\nvoid* SLASY2_(void)\n{\n    if (verbose) puts(\"STUB: SLASY2_ called\");\n    return NULL;\n}\n\nvoid* SLASYF(void)\n{\n    if (verbose) puts(\"STUB: SLASYF called\");\n    return NULL;\n}\n\nvoid* SLASYF_(void)\n{\n    if (verbose) puts(\"STUB: SLASYF_ called\");\n    return NULL;\n}\n\nvoid* SLATBS(void)\n{\n    if (verbose) puts(\"STUB: SLATBS called\");\n    return NULL;\n}\n\nvoid* SLATBS_(void)\n{\n    if (verbose) puts(\"STUB: SLATBS_ called\");\n    return NULL;\n}\n\nvoid* SLATDF(void)\n{\n    if (verbose) puts(\"STUB: SLATDF called\");\n    return NULL;\n}\n\nvoid* SLATDF_(void)\n{\n    if (verbose) puts(\"STUB: SLATDF_ called\");\n    return NULL;\n}\n\nvoid* SLATPS(void)\n{\n    if (verbose) puts(\"STUB: SLATPS called\");\n    return NULL;\n}\n\nvoid* SLATPS_(void)\n{\n    if (verbose) puts(\"STUB: SLATPS_ called\");\n    return NULL;\n}\n\nvoid* SLATRD(void)\n{\n    if (verbose) puts(\"STUB: SLATRD called\");\n    return NULL;\n}\n\nvoid* SLATRD_(void)\n{\n    if (verbose) puts(\"STUB: SLATRD_ called\");\n    return NULL;\n}\n\nvoid* SLATRS(void)\n{\n    if (verbose) puts(\"STUB: SLATRS called\");\n    return NULL;\n}\n\nvoid* SLATRS_(void)\n{\n    if (verbose) puts(\"STUB: SLATRS_ called\");\n    return NULL;\n}\n\nvoid* SLATRZ(void)\n{\n    if (verbose) puts(\"STUB: SLATRZ called\");\n    return NULL;\n}\n\nvoid* SLATRZ_(void)\n{\n    if (verbose) puts(\"STUB: SLATRZ_ called\");\n    return NULL;\n}\n\nvoid* SLATZM(void)\n{\n    if (verbose) puts(\"STUB: SLATZM called\");\n    return NULL;\n}\n\nvoid* SLATZM_(void)\n{\n    if (verbose) puts(\"STUB: SLATZM_ called\");\n    return NULL;\n}\n\nvoid* SLAUU2(void)\n{\n    if (verbose) puts(\"STUB: SLAUU2 called\");\n    return NULL;\n}\n\nvoid* SLAUU2_(void)\n{\n    if (verbose) puts(\"STUB: SLAUU2_ called\");\n    return NULL;\n}\n\nvoid* SLAUUM(void)\n{\n    if (verbose) puts(\"STUB: SLAUUM called\");\n    return NULL;\n}\n\nvoid* SLAUUM_(void)\n{\n    if (verbose) puts(\"STUB: SLAUUM_ called\");\n    return NULL;\n}\n\nvoid* SMAXLOC(void)\n{\n    if (verbose) puts(\"STUB: SMAXLOC called\");\n    return NULL;\n}\n\nvoid* SMAXLOC_(void)\n{\n    if (verbose) puts(\"STUB: SMAXLOC_ called\");\n    return NULL;\n}\n\nvoid* SOPGTR(void)\n{\n    if (verbose) puts(\"STUB: SOPGTR called\");\n    return NULL;\n}\n\nvoid* SOPGTR_(void)\n{\n    if (verbose) puts(\"STUB: SOPGTR_ called\");\n    return NULL;\n}\n\nvoid* SOPMTR(void)\n{\n    if (verbose) puts(\"STUB: SOPMTR called\");\n    return NULL;\n}\n\nvoid* SOPMTR_(void)\n{\n    if (verbose) puts(\"STUB: SOPMTR_ called\");\n    return NULL;\n}\n\nvoid* SORG2L(void)\n{\n    if (verbose) puts(\"STUB: SORG2L called\");\n    return NULL;\n}\n\nvoid* SORG2L_(void)\n{\n    if (verbose) puts(\"STUB: SORG2L_ called\");\n    return NULL;\n}\n\nvoid* SORG2R(void)\n{\n    if (verbose) puts(\"STUB: SORG2R called\");\n    return NULL;\n}\n\nvoid* SORG2R_(void)\n{\n    if (verbose) puts(\"STUB: SORG2R_ called\");\n    return NULL;\n}\n\nvoid* SORGBR(void)\n{\n    if (verbose) puts(\"STUB: SORGBR called\");\n    return NULL;\n}\n\nvoid* SORGBR_(void)\n{\n    if (verbose) puts(\"STUB: SORGBR_ called\");\n    return NULL;\n}\n\nvoid* SORGHR(void)\n{\n    if (verbose) puts(\"STUB: SORGHR called\");\n    return NULL;\n}\n\nvoid* SORGHR_(void)\n{\n    if (verbose) puts(\"STUB: SORGHR_ called\");\n    return NULL;\n}\n\nvoid* SORGL2(void)\n{\n    if (verbose) puts(\"STUB: SORGL2 called\");\n    return NULL;\n}\n\nvoid* SORGL2_(void)\n{\n    if (verbose) puts(\"STUB: SORGL2_ called\");\n    return NULL;\n}\n\nvoid* SORGLQ(void)\n{\n    if (verbose) puts(\"STUB: SORGLQ called\");\n    return NULL;\n}\n\nvoid* SORGLQ_(void)\n{\n    if (verbose) puts(\"STUB: SORGLQ_ called\");\n    return NULL;\n}\n\nvoid* SORGQL(void)\n{\n    if (verbose) puts(\"STUB: SORGQL called\");\n    return NULL;\n}\n\nvoid* SORGQL_(void)\n{\n    if (verbose) puts(\"STUB: SORGQL_ called\");\n    return NULL;\n}\n\nvoid* SORGQR(void)\n{\n    if (verbose) puts(\"STUB: SORGQR called\");\n    return NULL;\n}\n\nvoid* SORGQR_(void)\n{\n    if (verbose) puts(\"STUB: SORGQR_ called\");\n    return NULL;\n}\n\nvoid* SORGR2(void)\n{\n    if (verbose) puts(\"STUB: SORGR2 called\");\n    return NULL;\n}\n\nvoid* SORGR2_(void)\n{\n    if (verbose) puts(\"STUB: SORGR2_ called\");\n    return NULL;\n}\n\nvoid* SORGRQ(void)\n{\n    if (verbose) puts(\"STUB: SORGRQ called\");\n    return NULL;\n}\n\nvoid* SORGRQ_(void)\n{\n    if (verbose) puts(\"STUB: SORGRQ_ called\");\n    return NULL;\n}\n\nvoid* SORGTR(void)\n{\n    if (verbose) puts(\"STUB: SORGTR called\");\n    return NULL;\n}\n\nvoid* SORGTR_(void)\n{\n    if (verbose) puts(\"STUB: SORGTR_ called\");\n    return NULL;\n}\n\nvoid* SORM2L(void)\n{\n    if (verbose) puts(\"STUB: SORM2L called\");\n    return NULL;\n}\n\nvoid* SORM2L_(void)\n{\n    if (verbose) puts(\"STUB: SORM2L_ called\");\n    return NULL;\n}\n\nvoid* SORM2R(void)\n{\n    if (verbose) puts(\"STUB: SORM2R called\");\n    return NULL;\n}\n\nvoid* SORM2R_(void)\n{\n    if (verbose) puts(\"STUB: SORM2R_ called\");\n    return NULL;\n}\n\nvoid* SORMBR(void)\n{\n    if (verbose) puts(\"STUB: SORMBR called\");\n    return NULL;\n}\n\nvoid* SORMBR_(void)\n{\n    if (verbose) puts(\"STUB: SORMBR_ called\");\n    return NULL;\n}\n\nvoid* SORMHR(void)\n{\n    if (verbose) puts(\"STUB: SORMHR called\");\n    return NULL;\n}\n\nvoid* SORMHR_(void)\n{\n    if (verbose) puts(\"STUB: SORMHR_ called\");\n    return NULL;\n}\n\nvoid* SORML2(void)\n{\n    if (verbose) puts(\"STUB: SORML2 called\");\n    return NULL;\n}\n\nvoid* SORML2_(void)\n{\n    if (verbose) puts(\"STUB: SORML2_ called\");\n    return NULL;\n}\n\nvoid* SORMLQ(void)\n{\n    if (verbose) puts(\"STUB: SORMLQ called\");\n    return NULL;\n}\n\nvoid* SORMLQ_(void)\n{\n    if (verbose) puts(\"STUB: SORMLQ_ called\");\n    return NULL;\n}\n\nvoid* SORMQL(void)\n{\n    if (verbose) puts(\"STUB: SORMQL called\");\n    return NULL;\n}\n\nvoid* SORMQL_(void)\n{\n    if (verbose) puts(\"STUB: SORMQL_ called\");\n    return NULL;\n}\n\nvoid* SORMQR(void)\n{\n    if (verbose) puts(\"STUB: SORMQR called\");\n    return NULL;\n}\n\nvoid* SORMQR_(void)\n{\n    if (verbose) puts(\"STUB: SORMQR_ called\");\n    return NULL;\n}\n\nvoid* SORMR2(void)\n{\n    if (verbose) puts(\"STUB: SORMR2 called\");\n    return NULL;\n}\n\nvoid* SORMR2_(void)\n{\n    if (verbose) puts(\"STUB: SORMR2_ called\");\n    return NULL;\n}\n\nvoid* SORMR3(void)\n{\n    if (verbose) puts(\"STUB: SORMR3 called\");\n    return NULL;\n}\n\nvoid* SORMR3_(void)\n{\n    if (verbose) puts(\"STUB: SORMR3_ called\");\n    return NULL;\n}\n\nvoid* SORMRQ(void)\n{\n    if (verbose) puts(\"STUB: SORMRQ called\");\n    return NULL;\n}\n\nvoid* SORMRQ_(void)\n{\n    if (verbose) puts(\"STUB: SORMRQ_ called\");\n    return NULL;\n}\n\nvoid* SORMRZ(void)\n{\n    if (verbose) puts(\"STUB: SORMRZ called\");\n    return NULL;\n}\n\nvoid* SORMRZ_(void)\n{\n    if (verbose) puts(\"STUB: SORMRZ_ called\");\n    return NULL;\n}\n\nvoid* SORMTR(void)\n{\n    if (verbose) puts(\"STUB: SORMTR called\");\n    return NULL;\n}\n\nvoid* SORMTR_(void)\n{\n    if (verbose) puts(\"STUB: SORMTR_ called\");\n    return NULL;\n}\n\nvoid* SPBCON(void)\n{\n    if (verbose) puts(\"STUB: SPBCON called\");\n    return NULL;\n}\n\nvoid* SPBCON_(void)\n{\n    if (verbose) puts(\"STUB: SPBCON_ called\");\n    return NULL;\n}\n\nvoid* SPBEQU(void)\n{\n    if (verbose) puts(\"STUB: SPBEQU called\");\n    return NULL;\n}\n\nvoid* SPBEQU_(void)\n{\n    if (verbose) puts(\"STUB: SPBEQU_ called\");\n    return NULL;\n}\n\nvoid* SPBRFS(void)\n{\n    if (verbose) puts(\"STUB: SPBRFS called\");\n    return NULL;\n}\n\nvoid* SPBRFS_(void)\n{\n    if (verbose) puts(\"STUB: SPBRFS_ called\");\n    return NULL;\n}\n\nvoid* SPBSTF(void)\n{\n    if (verbose) puts(\"STUB: SPBSTF called\");\n    return NULL;\n}\n\nvoid* SPBSTF_(void)\n{\n    if (verbose) puts(\"STUB: SPBSTF_ called\");\n    return NULL;\n}\n\nvoid* SPBSV(void)\n{\n    if (verbose) puts(\"STUB: SPBSV called\");\n    return NULL;\n}\n\nvoid* SPBSVX(void)\n{\n    if (verbose) puts(\"STUB: SPBSVX called\");\n    return NULL;\n}\n\nvoid* SPBSVX_(void)\n{\n    if (verbose) puts(\"STUB: SPBSVX_ called\");\n    return NULL;\n}\n\nvoid* SPBSV_(void)\n{\n    if (verbose) puts(\"STUB: SPBSV_ called\");\n    return NULL;\n}\n\nvoid* SPBTF2(void)\n{\n    if (verbose) puts(\"STUB: SPBTF2 called\");\n    return NULL;\n}\n\nvoid* SPBTF2_(void)\n{\n    if (verbose) puts(\"STUB: SPBTF2_ called\");\n    return NULL;\n}\n\nvoid* SPBTRF(void)\n{\n    if (verbose) puts(\"STUB: SPBTRF called\");\n    return NULL;\n}\n\nvoid* SPBTRF_(void)\n{\n    if (verbose) puts(\"STUB: SPBTRF_ called\");\n    return NULL;\n}\n\nvoid* SPBTRS(void)\n{\n    if (verbose) puts(\"STUB: SPBTRS called\");\n    return NULL;\n}\n\nvoid* SPBTRS_(void)\n{\n    if (verbose) puts(\"STUB: SPBTRS_ called\");\n    return NULL;\n}\n\nvoid* SPFTRF(void)\n{\n    if (verbose) puts(\"STUB: SPFTRF called\");\n    return NULL;\n}\n\nvoid* SPFTRF_(void)\n{\n    if (verbose) puts(\"STUB: SPFTRF_ called\");\n    return NULL;\n}\n\nvoid* SPFTRI(void)\n{\n    if (verbose) puts(\"STUB: SPFTRI called\");\n    return NULL;\n}\n\nvoid* SPFTRI_(void)\n{\n    if (verbose) puts(\"STUB: SPFTRI_ called\");\n    return NULL;\n}\n\nvoid* SPFTRS(void)\n{\n    if (verbose) puts(\"STUB: SPFTRS called\");\n    return NULL;\n}\n\nvoid* SPFTRS_(void)\n{\n    if (verbose) puts(\"STUB: SPFTRS_ called\");\n    return NULL;\n}\n\nvoid* SPOCON(void)\n{\n    if (verbose) puts(\"STUB: SPOCON called\");\n    return NULL;\n}\n\nvoid* SPOCON_(void)\n{\n    if (verbose) puts(\"STUB: SPOCON_ called\");\n    return NULL;\n}\n\nvoid* SPOEQU(void)\n{\n    if (verbose) puts(\"STUB: SPOEQU called\");\n    return NULL;\n}\n\nvoid* SPOEQUB(void)\n{\n    if (verbose) puts(\"STUB: SPOEQUB called\");\n    return NULL;\n}\n\nvoid* SPOEQUB_(void)\n{\n    if (verbose) puts(\"STUB: SPOEQUB_ called\");\n    return NULL;\n}\n\nvoid* SPOEQU_(void)\n{\n    if (verbose) puts(\"STUB: SPOEQU_ called\");\n    return NULL;\n}\n\nvoid* SPORFS(void)\n{\n    if (verbose) puts(\"STUB: SPORFS called\");\n    return NULL;\n}\n\nvoid* SPORFS_(void)\n{\n    if (verbose) puts(\"STUB: SPORFS_ called\");\n    return NULL;\n}\n\nvoid* SPOSV(void)\n{\n    if (verbose) puts(\"STUB: SPOSV called\");\n    return NULL;\n}\n\nvoid* SPOSVX(void)\n{\n    if (verbose) puts(\"STUB: SPOSVX called\");\n    return NULL;\n}\n\nvoid* SPOSVX_(void)\n{\n    if (verbose) puts(\"STUB: SPOSVX_ called\");\n    return NULL;\n}\n\nvoid* SPOSV_(void)\n{\n    if (verbose) puts(\"STUB: SPOSV_ called\");\n    return NULL;\n}\n\nvoid* SPOTF2(void)\n{\n    if (verbose) puts(\"STUB: SPOTF2 called\");\n    return NULL;\n}\n\nvoid* SPOTF2_(void)\n{\n    if (verbose) puts(\"STUB: SPOTF2_ called\");\n    return NULL;\n}\n\nvoid* SPOTRF(void)\n{\n    if (verbose) puts(\"STUB: SPOTRF called\");\n    return NULL;\n}\n\nvoid* SPOTRF_(void)\n{\n    if (verbose) puts(\"STUB: SPOTRF_ called\");\n    return NULL;\n}\n\nvoid* SPOTRI(void)\n{\n    if (verbose) puts(\"STUB: SPOTRI called\");\n    return NULL;\n}\n\nvoid* SPOTRI_(void)\n{\n    if (verbose) puts(\"STUB: SPOTRI_ called\");\n    return NULL;\n}\n\nvoid* SPOTRS(void)\n{\n    if (verbose) puts(\"STUB: SPOTRS called\");\n    return NULL;\n}\n\nvoid* SPOTRS_(void)\n{\n    if (verbose) puts(\"STUB: SPOTRS_ called\");\n    return NULL;\n}\n\nvoid* SPPCON(void)\n{\n    if (verbose) puts(\"STUB: SPPCON called\");\n    return NULL;\n}\n\nvoid* SPPCON_(void)\n{\n    if (verbose) puts(\"STUB: SPPCON_ called\");\n    return NULL;\n}\n\nvoid* SPPEQU(void)\n{\n    if (verbose) puts(\"STUB: SPPEQU called\");\n    return NULL;\n}\n\nvoid* SPPEQU_(void)\n{\n    if (verbose) puts(\"STUB: SPPEQU_ called\");\n    return NULL;\n}\n\nvoid* SPPRFS(void)\n{\n    if (verbose) puts(\"STUB: SPPRFS called\");\n    return NULL;\n}\n\nvoid* SPPRFS_(void)\n{\n    if (verbose) puts(\"STUB: SPPRFS_ called\");\n    return NULL;\n}\n\nvoid* SPPSV(void)\n{\n    if (verbose) puts(\"STUB: SPPSV called\");\n    return NULL;\n}\n\nvoid* SPPSVX(void)\n{\n    if (verbose) puts(\"STUB: SPPSVX called\");\n    return NULL;\n}\n\nvoid* SPPSVX_(void)\n{\n    if (verbose) puts(\"STUB: SPPSVX_ called\");\n    return NULL;\n}\n\nvoid* SPPSV_(void)\n{\n    if (verbose) puts(\"STUB: SPPSV_ called\");\n    return NULL;\n}\n\nvoid* SPPTRF(void)\n{\n    if (verbose) puts(\"STUB: SPPTRF called\");\n    return NULL;\n}\n\nvoid* SPPTRF_(void)\n{\n    if (verbose) puts(\"STUB: SPPTRF_ called\");\n    return NULL;\n}\n\nvoid* SPPTRI(void)\n{\n    if (verbose) puts(\"STUB: SPPTRI called\");\n    return NULL;\n}\n\nvoid* SPPTRI_(void)\n{\n    if (verbose) puts(\"STUB: SPPTRI_ called\");\n    return NULL;\n}\n\nvoid* SPPTRS(void)\n{\n    if (verbose) puts(\"STUB: SPPTRS called\");\n    return NULL;\n}\n\nvoid* SPPTRS_(void)\n{\n    if (verbose) puts(\"STUB: SPPTRS_ called\");\n    return NULL;\n}\n\nvoid* SPSTF2(void)\n{\n    if (verbose) puts(\"STUB: SPSTF2 called\");\n    return NULL;\n}\n\nvoid* SPSTF2_(void)\n{\n    if (verbose) puts(\"STUB: SPSTF2_ called\");\n    return NULL;\n}\n\nvoid* SPSTRF(void)\n{\n    if (verbose) puts(\"STUB: SPSTRF called\");\n    return NULL;\n}\n\nvoid* SPSTRF_(void)\n{\n    if (verbose) puts(\"STUB: SPSTRF_ called\");\n    return NULL;\n}\n\nvoid* SPTCON(void)\n{\n    if (verbose) puts(\"STUB: SPTCON called\");\n    return NULL;\n}\n\nvoid* SPTCON_(void)\n{\n    if (verbose) puts(\"STUB: SPTCON_ called\");\n    return NULL;\n}\n\nvoid* SPTEQR(void)\n{\n    if (verbose) puts(\"STUB: SPTEQR called\");\n    return NULL;\n}\n\nvoid* SPTEQR_(void)\n{\n    if (verbose) puts(\"STUB: SPTEQR_ called\");\n    return NULL;\n}\n\nvoid* SPTRFS(void)\n{\n    if (verbose) puts(\"STUB: SPTRFS called\");\n    return NULL;\n}\n\nvoid* SPTRFS_(void)\n{\n    if (verbose) puts(\"STUB: SPTRFS_ called\");\n    return NULL;\n}\n\nvoid* SPTSV(void)\n{\n    if (verbose) puts(\"STUB: SPTSV called\");\n    return NULL;\n}\n\nvoid* SPTSVX(void)\n{\n    if (verbose) puts(\"STUB: SPTSVX called\");\n    return NULL;\n}\n\nvoid* SPTSVX_(void)\n{\n    if (verbose) puts(\"STUB: SPTSVX_ called\");\n    return NULL;\n}\n\nvoid* SPTSV_(void)\n{\n    if (verbose) puts(\"STUB: SPTSV_ called\");\n    return NULL;\n}\n\nvoid* SPTTRF(void)\n{\n    if (verbose) puts(\"STUB: SPTTRF called\");\n    return NULL;\n}\n\nvoid* SPTTRF_(void)\n{\n    if (verbose) puts(\"STUB: SPTTRF_ called\");\n    return NULL;\n}\n\nvoid* SPTTRS(void)\n{\n    if (verbose) puts(\"STUB: SPTTRS called\");\n    return NULL;\n}\n\nvoid* SPTTRS_(void)\n{\n    if (verbose) puts(\"STUB: SPTTRS_ called\");\n    return NULL;\n}\n\nvoid* SPTTS2(void)\n{\n    if (verbose) puts(\"STUB: SPTTS2 called\");\n    return NULL;\n}\n\nvoid* SPTTS2_(void)\n{\n    if (verbose) puts(\"STUB: SPTTS2_ called\");\n    return NULL;\n}\n\nvoid* SRSCL(void)\n{\n    if (verbose) puts(\"STUB: SRSCL called\");\n    return NULL;\n}\n\nvoid* SRSCL_(void)\n{\n    if (verbose) puts(\"STUB: SRSCL_ called\");\n    return NULL;\n}\n\nvoid* SSBEV(void)\n{\n    if (verbose) puts(\"STUB: SSBEV called\");\n    return NULL;\n}\n\nvoid* SSBEVD(void)\n{\n    if (verbose) puts(\"STUB: SSBEVD called\");\n    return NULL;\n}\n\nvoid* SSBEVD_(void)\n{\n    if (verbose) puts(\"STUB: SSBEVD_ called\");\n    return NULL;\n}\n\nvoid* SSBEVX(void)\n{\n    if (verbose) puts(\"STUB: SSBEVX called\");\n    return NULL;\n}\n\nvoid* SSBEVX_(void)\n{\n    if (verbose) puts(\"STUB: SSBEVX_ called\");\n    return NULL;\n}\n\nvoid* SSBEV_(void)\n{\n    if (verbose) puts(\"STUB: SSBEV_ called\");\n    return NULL;\n}\n\nvoid* SSBGST(void)\n{\n    if (verbose) puts(\"STUB: SSBGST called\");\n    return NULL;\n}\n\nvoid* SSBGST_(void)\n{\n    if (verbose) puts(\"STUB: SSBGST_ called\");\n    return NULL;\n}\n\nvoid* SSBGV(void)\n{\n    if (verbose) puts(\"STUB: SSBGV called\");\n    return NULL;\n}\n\nvoid* SSBGVD(void)\n{\n    if (verbose) puts(\"STUB: SSBGVD called\");\n    return NULL;\n}\n\nvoid* SSBGVD_(void)\n{\n    if (verbose) puts(\"STUB: SSBGVD_ called\");\n    return NULL;\n}\n\nvoid* SSBGVX(void)\n{\n    if (verbose) puts(\"STUB: SSBGVX called\");\n    return NULL;\n}\n\nvoid* SSBGVX_(void)\n{\n    if (verbose) puts(\"STUB: SSBGVX_ called\");\n    return NULL;\n}\n\nvoid* SSBGV_(void)\n{\n    if (verbose) puts(\"STUB: SSBGV_ called\");\n    return NULL;\n}\n\nvoid* SSBTRD(void)\n{\n    if (verbose) puts(\"STUB: SSBTRD called\");\n    return NULL;\n}\n\nvoid* SSBTRD_(void)\n{\n    if (verbose) puts(\"STUB: SSBTRD_ called\");\n    return NULL;\n}\n\nvoid* SSFRK(void)\n{\n    if (verbose) puts(\"STUB: SSFRK called\");\n    return NULL;\n}\n\nvoid* SSFRK_(void)\n{\n    if (verbose) puts(\"STUB: SSFRK_ called\");\n    return NULL;\n}\n\nvoid* SSPCON(void)\n{\n    if (verbose) puts(\"STUB: SSPCON called\");\n    return NULL;\n}\n\nvoid* SSPCON_(void)\n{\n    if (verbose) puts(\"STUB: SSPCON_ called\");\n    return NULL;\n}\n\nvoid* SSPEV(void)\n{\n    if (verbose) puts(\"STUB: SSPEV called\");\n    return NULL;\n}\n\nvoid* SSPEVD(void)\n{\n    if (verbose) puts(\"STUB: SSPEVD called\");\n    return NULL;\n}\n\nvoid* SSPEVD_(void)\n{\n    if (verbose) puts(\"STUB: SSPEVD_ called\");\n    return NULL;\n}\n\nvoid* SSPEVX(void)\n{\n    if (verbose) puts(\"STUB: SSPEVX called\");\n    return NULL;\n}\n\nvoid* SSPEVX_(void)\n{\n    if (verbose) puts(\"STUB: SSPEVX_ called\");\n    return NULL;\n}\n\nvoid* SSPEV_(void)\n{\n    if (verbose) puts(\"STUB: SSPEV_ called\");\n    return NULL;\n}\n\nvoid* SSPGST(void)\n{\n    if (verbose) puts(\"STUB: SSPGST called\");\n    return NULL;\n}\n\nvoid* SSPGST_(void)\n{\n    if (verbose) puts(\"STUB: SSPGST_ called\");\n    return NULL;\n}\n\nvoid* SSPGV(void)\n{\n    if (verbose) puts(\"STUB: SSPGV called\");\n    return NULL;\n}\n\nvoid* SSPGVD(void)\n{\n    if (verbose) puts(\"STUB: SSPGVD called\");\n    return NULL;\n}\n\nvoid* SSPGVD_(void)\n{\n    if (verbose) puts(\"STUB: SSPGVD_ called\");\n    return NULL;\n}\n\nvoid* SSPGVX(void)\n{\n    if (verbose) puts(\"STUB: SSPGVX called\");\n    return NULL;\n}\n\nvoid* SSPGVX_(void)\n{\n    if (verbose) puts(\"STUB: SSPGVX_ called\");\n    return NULL;\n}\n\nvoid* SSPGV_(void)\n{\n    if (verbose) puts(\"STUB: SSPGV_ called\");\n    return NULL;\n}\n\nvoid* SSPRFS(void)\n{\n    if (verbose) puts(\"STUB: SSPRFS called\");\n    return NULL;\n}\n\nvoid* SSPRFS_(void)\n{\n    if (verbose) puts(\"STUB: SSPRFS_ called\");\n    return NULL;\n}\n\nvoid* SSPSV(void)\n{\n    if (verbose) puts(\"STUB: SSPSV called\");\n    return NULL;\n}\n\nvoid* SSPSVX(void)\n{\n    if (verbose) puts(\"STUB: SSPSVX called\");\n    return NULL;\n}\n\nvoid* SSPSVX_(void)\n{\n    if (verbose) puts(\"STUB: SSPSVX_ called\");\n    return NULL;\n}\n\nvoid* SSPSV_(void)\n{\n    if (verbose) puts(\"STUB: SSPSV_ called\");\n    return NULL;\n}\n\nvoid* SSPTRD(void)\n{\n    if (verbose) puts(\"STUB: SSPTRD called\");\n    return NULL;\n}\n\nvoid* SSPTRD_(void)\n{\n    if (verbose) puts(\"STUB: SSPTRD_ called\");\n    return NULL;\n}\n\nvoid* SSPTRF(void)\n{\n    if (verbose) puts(\"STUB: SSPTRF called\");\n    return NULL;\n}\n\nvoid* SSPTRF_(void)\n{\n    if (verbose) puts(\"STUB: SSPTRF_ called\");\n    return NULL;\n}\n\nvoid* SSPTRI(void)\n{\n    if (verbose) puts(\"STUB: SSPTRI called\");\n    return NULL;\n}\n\nvoid* SSPTRI_(void)\n{\n    if (verbose) puts(\"STUB: SSPTRI_ called\");\n    return NULL;\n}\n\nvoid* SSPTRS(void)\n{\n    if (verbose) puts(\"STUB: SSPTRS called\");\n    return NULL;\n}\n\nvoid* SSPTRS_(void)\n{\n    if (verbose) puts(\"STUB: SSPTRS_ called\");\n    return NULL;\n}\n\nvoid* SSTEBZ(void)\n{\n    if (verbose) puts(\"STUB: SSTEBZ called\");\n    return NULL;\n}\n\nvoid* SSTEBZ_(void)\n{\n    if (verbose) puts(\"STUB: SSTEBZ_ called\");\n    return NULL;\n}\n\nvoid* SSTEDC(void)\n{\n    if (verbose) puts(\"STUB: SSTEDC called\");\n    return NULL;\n}\n\nvoid* SSTEDC_(void)\n{\n    if (verbose) puts(\"STUB: SSTEDC_ called\");\n    return NULL;\n}\n\nvoid* SSTEGR(void)\n{\n    if (verbose) puts(\"STUB: SSTEGR called\");\n    return NULL;\n}\n\nvoid* SSTEGR_(void)\n{\n    if (verbose) puts(\"STUB: SSTEGR_ called\");\n    return NULL;\n}\n\nvoid* SSTEIN(void)\n{\n    if (verbose) puts(\"STUB: SSTEIN called\");\n    return NULL;\n}\n\nvoid* SSTEIN_(void)\n{\n    if (verbose) puts(\"STUB: SSTEIN_ called\");\n    return NULL;\n}\n\nvoid* SSTEMR(void)\n{\n    if (verbose) puts(\"STUB: SSTEMR called\");\n    return NULL;\n}\n\nvoid* SSTEMR_(void)\n{\n    if (verbose) puts(\"STUB: SSTEMR_ called\");\n    return NULL;\n}\n\nvoid* SSTEQR(void)\n{\n    if (verbose) puts(\"STUB: SSTEQR called\");\n    return NULL;\n}\n\nvoid* SSTEQR_(void)\n{\n    if (verbose) puts(\"STUB: SSTEQR_ called\");\n    return NULL;\n}\n\nvoid* SSTERF(void)\n{\n    if (verbose) puts(\"STUB: SSTERF called\");\n    return NULL;\n}\n\nvoid* SSTERF_(void)\n{\n    if (verbose) puts(\"STUB: SSTERF_ called\");\n    return NULL;\n}\n\nvoid* SSTEV(void)\n{\n    if (verbose) puts(\"STUB: SSTEV called\");\n    return NULL;\n}\n\nvoid* SSTEVD(void)\n{\n    if (verbose) puts(\"STUB: SSTEVD called\");\n    return NULL;\n}\n\nvoid* SSTEVD_(void)\n{\n    if (verbose) puts(\"STUB: SSTEVD_ called\");\n    return NULL;\n}\n\nvoid* SSTEVR(void)\n{\n    if (verbose) puts(\"STUB: SSTEVR called\");\n    return NULL;\n}\n\nvoid* SSTEVR_(void)\n{\n    if (verbose) puts(\"STUB: SSTEVR_ called\");\n    return NULL;\n}\n\nvoid* SSTEVX(void)\n{\n    if (verbose) puts(\"STUB: SSTEVX called\");\n    return NULL;\n}\n\nvoid* SSTEVX_(void)\n{\n    if (verbose) puts(\"STUB: SSTEVX_ called\");\n    return NULL;\n}\n\nvoid* SSTEV_(void)\n{\n    if (verbose) puts(\"STUB: SSTEV_ called\");\n    return NULL;\n}\n\nvoid* SSYCON(void)\n{\n    if (verbose) puts(\"STUB: SSYCON called\");\n    return NULL;\n}\n\nvoid* SSYCON_(void)\n{\n    if (verbose) puts(\"STUB: SSYCON_ called\");\n    return NULL;\n}\n\nvoid* SSYEQUB(void)\n{\n    if (verbose) puts(\"STUB: SSYEQUB called\");\n    return NULL;\n}\n\nvoid* SSYEQUB_(void)\n{\n    if (verbose) puts(\"STUB: SSYEQUB_ called\");\n    return NULL;\n}\n\nvoid* SSYEV(void)\n{\n    if (verbose) puts(\"STUB: SSYEV called\");\n    return NULL;\n}\n\nvoid* SSYEVD(void)\n{\n    if (verbose) puts(\"STUB: SSYEVD called\");\n    return NULL;\n}\n\nvoid* SSYEVD_(void)\n{\n    if (verbose) puts(\"STUB: SSYEVD_ called\");\n    return NULL;\n}\n\nvoid* SSYEVR(void)\n{\n    if (verbose) puts(\"STUB: SSYEVR called\");\n    return NULL;\n}\n\nvoid* SSYEVR_(void)\n{\n    if (verbose) puts(\"STUB: SSYEVR_ called\");\n    return NULL;\n}\n\nvoid* SSYEVX(void)\n{\n    if (verbose) puts(\"STUB: SSYEVX called\");\n    return NULL;\n}\n\nvoid* SSYEVX_(void)\n{\n    if (verbose) puts(\"STUB: SSYEVX_ called\");\n    return NULL;\n}\n\nvoid* SSYEV_(void)\n{\n    if (verbose) puts(\"STUB: SSYEV_ called\");\n    return NULL;\n}\n\nvoid* SSYGS2(void)\n{\n    if (verbose) puts(\"STUB: SSYGS2 called\");\n    return NULL;\n}\n\nvoid* SSYGS2_(void)\n{\n    if (verbose) puts(\"STUB: SSYGS2_ called\");\n    return NULL;\n}\n\nvoid* SSYGST(void)\n{\n    if (verbose) puts(\"STUB: SSYGST called\");\n    return NULL;\n}\n\nvoid* SSYGST_(void)\n{\n    if (verbose) puts(\"STUB: SSYGST_ called\");\n    return NULL;\n}\n\nvoid* SSYGV(void)\n{\n    if (verbose) puts(\"STUB: SSYGV called\");\n    return NULL;\n}\n\nvoid* SSYGVD(void)\n{\n    if (verbose) puts(\"STUB: SSYGVD called\");\n    return NULL;\n}\n\nvoid* SSYGVD_(void)\n{\n    if (verbose) puts(\"STUB: SSYGVD_ called\");\n    return NULL;\n}\n\nvoid* SSYGVX(void)\n{\n    if (verbose) puts(\"STUB: SSYGVX called\");\n    return NULL;\n}\n\nvoid* SSYGVX_(void)\n{\n    if (verbose) puts(\"STUB: SSYGVX_ called\");\n    return NULL;\n}\n\nvoid* SSYGV_(void)\n{\n    if (verbose) puts(\"STUB: SSYGV_ called\");\n    return NULL;\n}\n\nvoid* SSYRFS(void)\n{\n    if (verbose) puts(\"STUB: SSYRFS called\");\n    return NULL;\n}\n\nvoid* SSYRFS_(void)\n{\n    if (verbose) puts(\"STUB: SSYRFS_ called\");\n    return NULL;\n}\n\nvoid* SSYSV(void)\n{\n    if (verbose) puts(\"STUB: SSYSV called\");\n    return NULL;\n}\n\nvoid* SSYSVX(void)\n{\n    if (verbose) puts(\"STUB: SSYSVX called\");\n    return NULL;\n}\n\nvoid* SSYSVX_(void)\n{\n    if (verbose) puts(\"STUB: SSYSVX_ called\");\n    return NULL;\n}\n\nvoid* SSYSV_(void)\n{\n    if (verbose) puts(\"STUB: SSYSV_ called\");\n    return NULL;\n}\n\nvoid* SSYTD2(void)\n{\n    if (verbose) puts(\"STUB: SSYTD2 called\");\n    return NULL;\n}\n\nvoid* SSYTD2_(void)\n{\n    if (verbose) puts(\"STUB: SSYTD2_ called\");\n    return NULL;\n}\n\nvoid* SSYTF2(void)\n{\n    if (verbose) puts(\"STUB: SSYTF2 called\");\n    return NULL;\n}\n\nvoid* SSYTF2_(void)\n{\n    if (verbose) puts(\"STUB: SSYTF2_ called\");\n    return NULL;\n}\n\nvoid* SSYTRD(void)\n{\n    if (verbose) puts(\"STUB: SSYTRD called\");\n    return NULL;\n}\n\nvoid* SSYTRD_(void)\n{\n    if (verbose) puts(\"STUB: SSYTRD_ called\");\n    return NULL;\n}\n\nvoid* SSYTRF(void)\n{\n    if (verbose) puts(\"STUB: SSYTRF called\");\n    return NULL;\n}\n\nvoid* SSYTRF_(void)\n{\n    if (verbose) puts(\"STUB: SSYTRF_ called\");\n    return NULL;\n}\n\nvoid* SSYTRI(void)\n{\n    if (verbose) puts(\"STUB: SSYTRI called\");\n    return NULL;\n}\n\nvoid* SSYTRI_(void)\n{\n    if (verbose) puts(\"STUB: SSYTRI_ called\");\n    return NULL;\n}\n\nvoid* SSYTRS(void)\n{\n    if (verbose) puts(\"STUB: SSYTRS called\");\n    return NULL;\n}\n\nvoid* SSYTRS_(void)\n{\n    if (verbose) puts(\"STUB: SSYTRS_ called\");\n    return NULL;\n}\n\nvoid* STBCON(void)\n{\n    if (verbose) puts(\"STUB: STBCON called\");\n    return NULL;\n}\n\nvoid* STBCON_(void)\n{\n    if (verbose) puts(\"STUB: STBCON_ called\");\n    return NULL;\n}\n\nvoid* STBRFS(void)\n{\n    if (verbose) puts(\"STUB: STBRFS called\");\n    return NULL;\n}\n\nvoid* STBRFS_(void)\n{\n    if (verbose) puts(\"STUB: STBRFS_ called\");\n    return NULL;\n}\n\nvoid* STBTRS(void)\n{\n    if (verbose) puts(\"STUB: STBTRS called\");\n    return NULL;\n}\n\nvoid* STBTRS_(void)\n{\n    if (verbose) puts(\"STUB: STBTRS_ called\");\n    return NULL;\n}\n\nvoid* STFSM(void)\n{\n    if (verbose) puts(\"STUB: STFSM called\");\n    return NULL;\n}\n\nvoid* STFSM_(void)\n{\n    if (verbose) puts(\"STUB: STFSM_ called\");\n    return NULL;\n}\n\nvoid* STFTRI(void)\n{\n    if (verbose) puts(\"STUB: STFTRI called\");\n    return NULL;\n}\n\nvoid* STFTRI_(void)\n{\n    if (verbose) puts(\"STUB: STFTRI_ called\");\n    return NULL;\n}\n\nvoid* STFTTP(void)\n{\n    if (verbose) puts(\"STUB: STFTTP called\");\n    return NULL;\n}\n\nvoid* STFTTP_(void)\n{\n    if (verbose) puts(\"STUB: STFTTP_ called\");\n    return NULL;\n}\n\nvoid* STFTTR(void)\n{\n    if (verbose) puts(\"STUB: STFTTR called\");\n    return NULL;\n}\n\nvoid* STFTTR_(void)\n{\n    if (verbose) puts(\"STUB: STFTTR_ called\");\n    return NULL;\n}\n\nvoid* STGEVC(void)\n{\n    if (verbose) puts(\"STUB: STGEVC called\");\n    return NULL;\n}\n\nvoid* STGEVC_(void)\n{\n    if (verbose) puts(\"STUB: STGEVC_ called\");\n    return NULL;\n}\n\nvoid* STGEX2(void)\n{\n    if (verbose) puts(\"STUB: STGEX2 called\");\n    return NULL;\n}\n\nvoid* STGEX2_(void)\n{\n    if (verbose) puts(\"STUB: STGEX2_ called\");\n    return NULL;\n}\n\nvoid* STGEXC(void)\n{\n    if (verbose) puts(\"STUB: STGEXC called\");\n    return NULL;\n}\n\nvoid* STGEXC_(void)\n{\n    if (verbose) puts(\"STUB: STGEXC_ called\");\n    return NULL;\n}\n\nvoid* STGSEN(void)\n{\n    if (verbose) puts(\"STUB: STGSEN called\");\n    return NULL;\n}\n\nvoid* STGSEN_(void)\n{\n    if (verbose) puts(\"STUB: STGSEN_ called\");\n    return NULL;\n}\n\nvoid* STGSJA(void)\n{\n    if (verbose) puts(\"STUB: STGSJA called\");\n    return NULL;\n}\n\nvoid* STGSJA_(void)\n{\n    if (verbose) puts(\"STUB: STGSJA_ called\");\n    return NULL;\n}\n\nvoid* STGSNA(void)\n{\n    if (verbose) puts(\"STUB: STGSNA called\");\n    return NULL;\n}\n\nvoid* STGSNA_(void)\n{\n    if (verbose) puts(\"STUB: STGSNA_ called\");\n    return NULL;\n}\n\nvoid* STGSY2(void)\n{\n    if (verbose) puts(\"STUB: STGSY2 called\");\n    return NULL;\n}\n\nvoid* STGSY2_(void)\n{\n    if (verbose) puts(\"STUB: STGSY2_ called\");\n    return NULL;\n}\n\nvoid* STGSYL(void)\n{\n    if (verbose) puts(\"STUB: STGSYL called\");\n    return NULL;\n}\n\nvoid* STGSYL_(void)\n{\n    if (verbose) puts(\"STUB: STGSYL_ called\");\n    return NULL;\n}\n\nvoid* STPCON(void)\n{\n    if (verbose) puts(\"STUB: STPCON called\");\n    return NULL;\n}\n\nvoid* STPCON_(void)\n{\n    if (verbose) puts(\"STUB: STPCON_ called\");\n    return NULL;\n}\n\nvoid* STPRFS(void)\n{\n    if (verbose) puts(\"STUB: STPRFS called\");\n    return NULL;\n}\n\nvoid* STPRFS_(void)\n{\n    if (verbose) puts(\"STUB: STPRFS_ called\");\n    return NULL;\n}\n\nvoid* STPTRI(void)\n{\n    if (verbose) puts(\"STUB: STPTRI called\");\n    return NULL;\n}\n\nvoid* STPTRI_(void)\n{\n    if (verbose) puts(\"STUB: STPTRI_ called\");\n    return NULL;\n}\n\nvoid* STPTRS(void)\n{\n    if (verbose) puts(\"STUB: STPTRS called\");\n    return NULL;\n}\n\nvoid* STPTRS_(void)\n{\n    if (verbose) puts(\"STUB: STPTRS_ called\");\n    return NULL;\n}\n\nvoid* STPTTF(void)\n{\n    if (verbose) puts(\"STUB: STPTTF called\");\n    return NULL;\n}\n\nvoid* STPTTF_(void)\n{\n    if (verbose) puts(\"STUB: STPTTF_ called\");\n    return NULL;\n}\n\nvoid* STPTTR(void)\n{\n    if (verbose) puts(\"STUB: STPTTR called\");\n    return NULL;\n}\n\nvoid* STPTTR_(void)\n{\n    if (verbose) puts(\"STUB: STPTTR_ called\");\n    return NULL;\n}\n\nvoid* STRCON(void)\n{\n    if (verbose) puts(\"STUB: STRCON called\");\n    return NULL;\n}\n\nvoid* STRCON_(void)\n{\n    if (verbose) puts(\"STUB: STRCON_ called\");\n    return NULL;\n}\n\nvoid* STREVC(void)\n{\n    if (verbose) puts(\"STUB: STREVC called\");\n    return NULL;\n}\n\nvoid* STREVC_(void)\n{\n    if (verbose) puts(\"STUB: STREVC_ called\");\n    return NULL;\n}\n\nvoid* STREXC(void)\n{\n    if (verbose) puts(\"STUB: STREXC called\");\n    return NULL;\n}\n\nvoid* STREXC_(void)\n{\n    if (verbose) puts(\"STUB: STREXC_ called\");\n    return NULL;\n}\n\nvoid* STRRFS(void)\n{\n    if (verbose) puts(\"STUB: STRRFS called\");\n    return NULL;\n}\n\nvoid* STRRFS_(void)\n{\n    if (verbose) puts(\"STUB: STRRFS_ called\");\n    return NULL;\n}\n\nvoid* STRSEN(void)\n{\n    if (verbose) puts(\"STUB: STRSEN called\");\n    return NULL;\n}\n\nvoid* STRSEN_(void)\n{\n    if (verbose) puts(\"STUB: STRSEN_ called\");\n    return NULL;\n}\n\nvoid* STRSNA(void)\n{\n    if (verbose) puts(\"STUB: STRSNA called\");\n    return NULL;\n}\n\nvoid* STRSNA_(void)\n{\n    if (verbose) puts(\"STUB: STRSNA_ called\");\n    return NULL;\n}\n\nvoid* STRSYL(void)\n{\n    if (verbose) puts(\"STUB: STRSYL called\");\n    return NULL;\n}\n\nvoid* STRSYL_(void)\n{\n    if (verbose) puts(\"STUB: STRSYL_ called\");\n    return NULL;\n}\n\nvoid* STRTI2(void)\n{\n    if (verbose) puts(\"STUB: STRTI2 called\");\n    return NULL;\n}\n\nvoid* STRTI2_(void)\n{\n    if (verbose) puts(\"STUB: STRTI2_ called\");\n    return NULL;\n}\n\nvoid* STRTRI(void)\n{\n    if (verbose) puts(\"STUB: STRTRI called\");\n    return NULL;\n}\n\nvoid* STRTRI_(void)\n{\n    if (verbose) puts(\"STUB: STRTRI_ called\");\n    return NULL;\n}\n\nvoid* STRTRS(void)\n{\n    if (verbose) puts(\"STUB: STRTRS called\");\n    return NULL;\n}\n\nvoid* STRTRS_(void)\n{\n    if (verbose) puts(\"STUB: STRTRS_ called\");\n    return NULL;\n}\n\nvoid* STRTTF(void)\n{\n    if (verbose) puts(\"STUB: STRTTF called\");\n    return NULL;\n}\n\nvoid* STRTTF_(void)\n{\n    if (verbose) puts(\"STUB: STRTTF_ called\");\n    return NULL;\n}\n\nvoid* STRTTP(void)\n{\n    if (verbose) puts(\"STUB: STRTTP called\");\n    return NULL;\n}\n\nvoid* STRTTP_(void)\n{\n    if (verbose) puts(\"STUB: STRTTP_ called\");\n    return NULL;\n}\n\nvoid* STZRQF(void)\n{\n    if (verbose) puts(\"STUB: STZRQF called\");\n    return NULL;\n}\n\nvoid* STZRQF_(void)\n{\n    if (verbose) puts(\"STUB: STZRQF_ called\");\n    return NULL;\n}\n\nvoid* STZRZF(void)\n{\n    if (verbose) puts(\"STUB: STZRZF called\");\n    return NULL;\n}\n\nvoid* STZRZF_(void)\n{\n    if (verbose) puts(\"STUB: STZRZF_ called\");\n    return NULL;\n}\n\nvoid* ZBDSQR(void)\n{\n    if (verbose) puts(\"STUB: ZBDSQR called\");\n    return NULL;\n}\n\nvoid* ZBDSQR_(void)\n{\n    if (verbose) puts(\"STUB: ZBDSQR_ called\");\n    return NULL;\n}\n\nvoid* ZCGESV(void)\n{\n    if (verbose) puts(\"STUB: ZCGESV called\");\n    return NULL;\n}\n\nvoid* ZCGESV_(void)\n{\n    if (verbose) puts(\"STUB: ZCGESV_ called\");\n    return NULL;\n}\n\nvoid* ZCPOSV(void)\n{\n    if (verbose) puts(\"STUB: ZCPOSV called\");\n    return NULL;\n}\n\nvoid* ZCPOSV_(void)\n{\n    if (verbose) puts(\"STUB: ZCPOSV_ called\");\n    return NULL;\n}\n\nvoid* ZDRSCL(void)\n{\n    if (verbose) puts(\"STUB: ZDRSCL called\");\n    return NULL;\n}\n\nvoid* ZDRSCL_(void)\n{\n    if (verbose) puts(\"STUB: ZDRSCL_ called\");\n    return NULL;\n}\n\nvoid* ZGBBRD(void)\n{\n    if (verbose) puts(\"STUB: ZGBBRD called\");\n    return NULL;\n}\n\nvoid* ZGBBRD_(void)\n{\n    if (verbose) puts(\"STUB: ZGBBRD_ called\");\n    return NULL;\n}\n\nvoid* ZGBCON(void)\n{\n    if (verbose) puts(\"STUB: ZGBCON called\");\n    return NULL;\n}\n\nvoid* ZGBCON_(void)\n{\n    if (verbose) puts(\"STUB: ZGBCON_ called\");\n    return NULL;\n}\n\nvoid* ZGBEQU(void)\n{\n    if (verbose) puts(\"STUB: ZGBEQU called\");\n    return NULL;\n}\n\nvoid* ZGBEQUB(void)\n{\n    if (verbose) puts(\"STUB: ZGBEQUB called\");\n    return NULL;\n}\n\nvoid* ZGBEQUB_(void)\n{\n    if (verbose) puts(\"STUB: ZGBEQUB_ called\");\n    return NULL;\n}\n\nvoid* ZGBEQU_(void)\n{\n    if (verbose) puts(\"STUB: ZGBEQU_ called\");\n    return NULL;\n}\n\nvoid* ZGBRFS(void)\n{\n    if (verbose) puts(\"STUB: ZGBRFS called\");\n    return NULL;\n}\n\nvoid* ZGBRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZGBRFS_ called\");\n    return NULL;\n}\n\nvoid* ZGBSV(void)\n{\n    if (verbose) puts(\"STUB: ZGBSV called\");\n    return NULL;\n}\n\nvoid* ZGBSVX(void)\n{\n    if (verbose) puts(\"STUB: ZGBSVX called\");\n    return NULL;\n}\n\nvoid* ZGBSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZGBSVX_ called\");\n    return NULL;\n}\n\nvoid* ZGBSV_(void)\n{\n    if (verbose) puts(\"STUB: ZGBSV_ called\");\n    return NULL;\n}\n\nvoid* ZGBTF2(void)\n{\n    if (verbose) puts(\"STUB: ZGBTF2 called\");\n    return NULL;\n}\n\nvoid* ZGBTF2_(void)\n{\n    if (verbose) puts(\"STUB: ZGBTF2_ called\");\n    return NULL;\n}\n\nvoid* ZGBTRF(void)\n{\n    if (verbose) puts(\"STUB: ZGBTRF called\");\n    return NULL;\n}\n\nvoid* ZGBTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZGBTRF_ called\");\n    return NULL;\n}\n\nvoid* ZGBTRS(void)\n{\n    if (verbose) puts(\"STUB: ZGBTRS called\");\n    return NULL;\n}\n\nvoid* ZGBTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZGBTRS_ called\");\n    return NULL;\n}\n\nvoid* ZGEBAK(void)\n{\n    if (verbose) puts(\"STUB: ZGEBAK called\");\n    return NULL;\n}\n\nvoid* ZGEBAK_(void)\n{\n    if (verbose) puts(\"STUB: ZGEBAK_ called\");\n    return NULL;\n}\n\nvoid* ZGEBAL(void)\n{\n    if (verbose) puts(\"STUB: ZGEBAL called\");\n    return NULL;\n}\n\nvoid* ZGEBAL_(void)\n{\n    if (verbose) puts(\"STUB: ZGEBAL_ called\");\n    return NULL;\n}\n\nvoid* ZGEBD2(void)\n{\n    if (verbose) puts(\"STUB: ZGEBD2 called\");\n    return NULL;\n}\n\nvoid* ZGEBD2_(void)\n{\n    if (verbose) puts(\"STUB: ZGEBD2_ called\");\n    return NULL;\n}\n\nvoid* ZGEBRD(void)\n{\n    if (verbose) puts(\"STUB: ZGEBRD called\");\n    return NULL;\n}\n\nvoid* ZGEBRD_(void)\n{\n    if (verbose) puts(\"STUB: ZGEBRD_ called\");\n    return NULL;\n}\n\nvoid* ZGECON(void)\n{\n    if (verbose) puts(\"STUB: ZGECON called\");\n    return NULL;\n}\n\nvoid* ZGECON_(void)\n{\n    if (verbose) puts(\"STUB: ZGECON_ called\");\n    return NULL;\n}\n\nvoid* ZGEEQU(void)\n{\n    if (verbose) puts(\"STUB: ZGEEQU called\");\n    return NULL;\n}\n\nvoid* ZGEEQUB(void)\n{\n    if (verbose) puts(\"STUB: ZGEEQUB called\");\n    return NULL;\n}\n\nvoid* ZGEEQUB_(void)\n{\n    if (verbose) puts(\"STUB: ZGEEQUB_ called\");\n    return NULL;\n}\n\nvoid* ZGEEQU_(void)\n{\n    if (verbose) puts(\"STUB: ZGEEQU_ called\");\n    return NULL;\n}\n\nvoid* ZGEES(void)\n{\n    if (verbose) puts(\"STUB: ZGEES called\");\n    return NULL;\n}\n\nvoid* ZGEESX(void)\n{\n    if (verbose) puts(\"STUB: ZGEESX called\");\n    return NULL;\n}\n\nvoid* ZGEESX_(void)\n{\n    if (verbose) puts(\"STUB: ZGEESX_ called\");\n    return NULL;\n}\n\nvoid* ZGEES_(void)\n{\n    if (verbose) puts(\"STUB: ZGEES_ called\");\n    return NULL;\n}\n\nvoid* ZGEEV(void)\n{\n    if (verbose) puts(\"STUB: ZGEEV called\");\n    return NULL;\n}\n\nvoid* ZGEEVX(void)\n{\n    if (verbose) puts(\"STUB: ZGEEVX called\");\n    return NULL;\n}\n\nvoid* ZGEEVX_(void)\n{\n    if (verbose) puts(\"STUB: ZGEEVX_ called\");\n    return NULL;\n}\n\nvoid* ZGEEV_(void)\n{\n    if (verbose) puts(\"STUB: ZGEEV_ called\");\n    return NULL;\n}\n\nvoid* ZGEGS(void)\n{\n    if (verbose) puts(\"STUB: ZGEGS called\");\n    return NULL;\n}\n\nvoid* ZGEGS_(void)\n{\n    if (verbose) puts(\"STUB: ZGEGS_ called\");\n    return NULL;\n}\n\nvoid* ZGEGV(void)\n{\n    if (verbose) puts(\"STUB: ZGEGV called\");\n    return NULL;\n}\n\nvoid* ZGEGV_(void)\n{\n    if (verbose) puts(\"STUB: ZGEGV_ called\");\n    return NULL;\n}\n\nvoid* ZGEHD2(void)\n{\n    if (verbose) puts(\"STUB: ZGEHD2 called\");\n    return NULL;\n}\n\nvoid* ZGEHD2_(void)\n{\n    if (verbose) puts(\"STUB: ZGEHD2_ called\");\n    return NULL;\n}\n\nvoid* ZGEHRD(void)\n{\n    if (verbose) puts(\"STUB: ZGEHRD called\");\n    return NULL;\n}\n\nvoid* ZGEHRD_(void)\n{\n    if (verbose) puts(\"STUB: ZGEHRD_ called\");\n    return NULL;\n}\n\nvoid* ZGELQ2(void)\n{\n    if (verbose) puts(\"STUB: ZGELQ2 called\");\n    return NULL;\n}\n\nvoid* ZGELQ2_(void)\n{\n    if (verbose) puts(\"STUB: ZGELQ2_ called\");\n    return NULL;\n}\n\nvoid* ZGELQF(void)\n{\n    if (verbose) puts(\"STUB: ZGELQF called\");\n    return NULL;\n}\n\nvoid* ZGELQF_(void)\n{\n    if (verbose) puts(\"STUB: ZGELQF_ called\");\n    return NULL;\n}\n\nvoid* ZGELS(void)\n{\n    if (verbose) puts(\"STUB: ZGELS called\");\n    return NULL;\n}\n\nvoid* ZGELSD(void)\n{\n    if (verbose) puts(\"STUB: ZGELSD called\");\n    return NULL;\n}\n\nvoid* ZGELSD_(void)\n{\n    if (verbose) puts(\"STUB: ZGELSD_ called\");\n    return NULL;\n}\n\nvoid* ZGELSS(void)\n{\n    if (verbose) puts(\"STUB: ZGELSS called\");\n    return NULL;\n}\n\nvoid* ZGELSS_(void)\n{\n    if (verbose) puts(\"STUB: ZGELSS_ called\");\n    return NULL;\n}\n\nvoid* ZGELSX(void)\n{\n    if (verbose) puts(\"STUB: ZGELSX called\");\n    return NULL;\n}\n\nvoid* ZGELSX_(void)\n{\n    if (verbose) puts(\"STUB: ZGELSX_ called\");\n    return NULL;\n}\n\nvoid* ZGELSY(void)\n{\n    if (verbose) puts(\"STUB: ZGELSY called\");\n    return NULL;\n}\n\nvoid* ZGELSY_(void)\n{\n    if (verbose) puts(\"STUB: ZGELSY_ called\");\n    return NULL;\n}\n\nvoid* ZGELS_(void)\n{\n    if (verbose) puts(\"STUB: ZGELS_ called\");\n    return NULL;\n}\n\nvoid* ZGEQL2(void)\n{\n    if (verbose) puts(\"STUB: ZGEQL2 called\");\n    return NULL;\n}\n\nvoid* ZGEQL2_(void)\n{\n    if (verbose) puts(\"STUB: ZGEQL2_ called\");\n    return NULL;\n}\n\nvoid* ZGEQLF(void)\n{\n    if (verbose) puts(\"STUB: ZGEQLF called\");\n    return NULL;\n}\n\nvoid* ZGEQLF_(void)\n{\n    if (verbose) puts(\"STUB: ZGEQLF_ called\");\n    return NULL;\n}\n\nvoid* ZGEQP3(void)\n{\n    if (verbose) puts(\"STUB: ZGEQP3 called\");\n    return NULL;\n}\n\nvoid* ZGEQP3_(void)\n{\n    if (verbose) puts(\"STUB: ZGEQP3_ called\");\n    return NULL;\n}\n\nvoid* ZGEQPF(void)\n{\n    if (verbose) puts(\"STUB: ZGEQPF called\");\n    return NULL;\n}\n\nvoid* ZGEQPF_(void)\n{\n    if (verbose) puts(\"STUB: ZGEQPF_ called\");\n    return NULL;\n}\n\nvoid* ZGEQR2(void)\n{\n    if (verbose) puts(\"STUB: ZGEQR2 called\");\n    return NULL;\n}\n\nvoid* ZGEQR2_(void)\n{\n    if (verbose) puts(\"STUB: ZGEQR2_ called\");\n    return NULL;\n}\n\nvoid* ZGEQRF(void)\n{\n    if (verbose) puts(\"STUB: ZGEQRF called\");\n    return NULL;\n}\n\nvoid* ZGEQRF_(void)\n{\n    if (verbose) puts(\"STUB: ZGEQRF_ called\");\n    return NULL;\n}\n\nvoid* ZGERFS(void)\n{\n    if (verbose) puts(\"STUB: ZGERFS called\");\n    return NULL;\n}\n\nvoid* ZGERFS_(void)\n{\n    if (verbose) puts(\"STUB: ZGERFS_ called\");\n    return NULL;\n}\n\nvoid* ZGERQ2(void)\n{\n    if (verbose) puts(\"STUB: ZGERQ2 called\");\n    return NULL;\n}\n\nvoid* ZGERQ2_(void)\n{\n    if (verbose) puts(\"STUB: ZGERQ2_ called\");\n    return NULL;\n}\n\nvoid* ZGERQF(void)\n{\n    if (verbose) puts(\"STUB: ZGERQF called\");\n    return NULL;\n}\n\nvoid* ZGERQF_(void)\n{\n    if (verbose) puts(\"STUB: ZGERQF_ called\");\n    return NULL;\n}\n\nvoid* ZGESC2(void)\n{\n    if (verbose) puts(\"STUB: ZGESC2 called\");\n    return NULL;\n}\n\nvoid* ZGESC2_(void)\n{\n    if (verbose) puts(\"STUB: ZGESC2_ called\");\n    return NULL;\n}\n\nvoid* ZGESDD(void)\n{\n    if (verbose) puts(\"STUB: ZGESDD called\");\n    return NULL;\n}\n\nvoid* ZGESDD_(void)\n{\n    if (verbose) puts(\"STUB: ZGESDD_ called\");\n    return NULL;\n}\n\nvoid* ZGESV(void)\n{\n    if (verbose) puts(\"STUB: ZGESV called\");\n    return NULL;\n}\n\nvoid* ZGESVD(void)\n{\n    if (verbose) puts(\"STUB: ZGESVD called\");\n    return NULL;\n}\n\nvoid* ZGESVD_(void)\n{\n    if (verbose) puts(\"STUB: ZGESVD_ called\");\n    return NULL;\n}\n\nvoid* ZGESVX(void)\n{\n    if (verbose) puts(\"STUB: ZGESVX called\");\n    return NULL;\n}\n\nvoid* ZGESVX_(void)\n{\n    if (verbose) puts(\"STUB: ZGESVX_ called\");\n    return NULL;\n}\n\nvoid* ZGESV_(void)\n{\n    if (verbose) puts(\"STUB: ZGESV_ called\");\n    return NULL;\n}\n\nvoid* ZGETC2(void)\n{\n    if (verbose) puts(\"STUB: ZGETC2 called\");\n    return NULL;\n}\n\nvoid* ZGETC2_(void)\n{\n    if (verbose) puts(\"STUB: ZGETC2_ called\");\n    return NULL;\n}\n\nvoid* ZGETF2(void)\n{\n    if (verbose) puts(\"STUB: ZGETF2 called\");\n    return NULL;\n}\n\nvoid* ZGETF2_(void)\n{\n    if (verbose) puts(\"STUB: ZGETF2_ called\");\n    return NULL;\n}\n\nvoid* ZGETRF(void)\n{\n    if (verbose) puts(\"STUB: ZGETRF called\");\n    return NULL;\n}\n\nvoid* ZGETRF_(void)\n{\n    if (verbose) puts(\"STUB: ZGETRF_ called\");\n    return NULL;\n}\n\nvoid* ZGETRI(void)\n{\n    if (verbose) puts(\"STUB: ZGETRI called\");\n    return NULL;\n}\n\nvoid* ZGETRI_(void)\n{\n    if (verbose) puts(\"STUB: ZGETRI_ called\");\n    return NULL;\n}\n\nvoid* ZGETRS(void)\n{\n    if (verbose) puts(\"STUB: ZGETRS called\");\n    return NULL;\n}\n\nvoid* ZGETRS_(void)\n{\n    if (verbose) puts(\"STUB: ZGETRS_ called\");\n    return NULL;\n}\n\nvoid* ZGGBAK(void)\n{\n    if (verbose) puts(\"STUB: ZGGBAK called\");\n    return NULL;\n}\n\nvoid* ZGGBAK_(void)\n{\n    if (verbose) puts(\"STUB: ZGGBAK_ called\");\n    return NULL;\n}\n\nvoid* ZGGBAL(void)\n{\n    if (verbose) puts(\"STUB: ZGGBAL called\");\n    return NULL;\n}\n\nvoid* ZGGBAL_(void)\n{\n    if (verbose) puts(\"STUB: ZGGBAL_ called\");\n    return NULL;\n}\n\nvoid* ZGGES(void)\n{\n    if (verbose) puts(\"STUB: ZGGES called\");\n    return NULL;\n}\n\nvoid* ZGGESX(void)\n{\n    if (verbose) puts(\"STUB: ZGGESX called\");\n    return NULL;\n}\n\nvoid* ZGGESX_(void)\n{\n    if (verbose) puts(\"STUB: ZGGESX_ called\");\n    return NULL;\n}\n\nvoid* ZGGES_(void)\n{\n    if (verbose) puts(\"STUB: ZGGES_ called\");\n    return NULL;\n}\n\nvoid* ZGGEV(void)\n{\n    if (verbose) puts(\"STUB: ZGGEV called\");\n    return NULL;\n}\n\nvoid* ZGGEVX(void)\n{\n    if (verbose) puts(\"STUB: ZGGEVX called\");\n    return NULL;\n}\n\nvoid* ZGGEVX_(void)\n{\n    if (verbose) puts(\"STUB: ZGGEVX_ called\");\n    return NULL;\n}\n\nvoid* ZGGEV_(void)\n{\n    if (verbose) puts(\"STUB: ZGGEV_ called\");\n    return NULL;\n}\n\nvoid* ZGGGLM(void)\n{\n    if (verbose) puts(\"STUB: ZGGGLM called\");\n    return NULL;\n}\n\nvoid* ZGGGLM_(void)\n{\n    if (verbose) puts(\"STUB: ZGGGLM_ called\");\n    return NULL;\n}\n\nvoid* ZGGHRD(void)\n{\n    if (verbose) puts(\"STUB: ZGGHRD called\");\n    return NULL;\n}\n\nvoid* ZGGHRD_(void)\n{\n    if (verbose) puts(\"STUB: ZGGHRD_ called\");\n    return NULL;\n}\n\nvoid* ZGGLSE(void)\n{\n    if (verbose) puts(\"STUB: ZGGLSE called\");\n    return NULL;\n}\n\nvoid* ZGGLSE_(void)\n{\n    if (verbose) puts(\"STUB: ZGGLSE_ called\");\n    return NULL;\n}\n\nvoid* ZGGQRF(void)\n{\n    if (verbose) puts(\"STUB: ZGGQRF called\");\n    return NULL;\n}\n\nvoid* ZGGQRF_(void)\n{\n    if (verbose) puts(\"STUB: ZGGQRF_ called\");\n    return NULL;\n}\n\nvoid* ZGGRQF(void)\n{\n    if (verbose) puts(\"STUB: ZGGRQF called\");\n    return NULL;\n}\n\nvoid* ZGGRQF_(void)\n{\n    if (verbose) puts(\"STUB: ZGGRQF_ called\");\n    return NULL;\n}\n\nvoid* ZGGSVD(void)\n{\n    if (verbose) puts(\"STUB: ZGGSVD called\");\n    return NULL;\n}\n\nvoid* ZGGSVD_(void)\n{\n    if (verbose) puts(\"STUB: ZGGSVD_ called\");\n    return NULL;\n}\n\nvoid* ZGGSVP(void)\n{\n    if (verbose) puts(\"STUB: ZGGSVP called\");\n    return NULL;\n}\n\nvoid* ZGGSVP_(void)\n{\n    if (verbose) puts(\"STUB: ZGGSVP_ called\");\n    return NULL;\n}\n\nvoid* ZGTCON(void)\n{\n    if (verbose) puts(\"STUB: ZGTCON called\");\n    return NULL;\n}\n\nvoid* ZGTCON_(void)\n{\n    if (verbose) puts(\"STUB: ZGTCON_ called\");\n    return NULL;\n}\n\nvoid* ZGTRFS(void)\n{\n    if (verbose) puts(\"STUB: ZGTRFS called\");\n    return NULL;\n}\n\nvoid* ZGTRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZGTRFS_ called\");\n    return NULL;\n}\n\nvoid* ZGTSV(void)\n{\n    if (verbose) puts(\"STUB: ZGTSV called\");\n    return NULL;\n}\n\nvoid* ZGTSVX(void)\n{\n    if (verbose) puts(\"STUB: ZGTSVX called\");\n    return NULL;\n}\n\nvoid* ZGTSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZGTSVX_ called\");\n    return NULL;\n}\n\nvoid* ZGTSV_(void)\n{\n    if (verbose) puts(\"STUB: ZGTSV_ called\");\n    return NULL;\n}\n\nvoid* ZGTTRF(void)\n{\n    if (verbose) puts(\"STUB: ZGTTRF called\");\n    return NULL;\n}\n\nvoid* ZGTTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZGTTRF_ called\");\n    return NULL;\n}\n\nvoid* ZGTTRS(void)\n{\n    if (verbose) puts(\"STUB: ZGTTRS called\");\n    return NULL;\n}\n\nvoid* ZGTTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZGTTRS_ called\");\n    return NULL;\n}\n\nvoid* ZGTTS2(void)\n{\n    if (verbose) puts(\"STUB: ZGTTS2 called\");\n    return NULL;\n}\n\nvoid* ZGTTS2_(void)\n{\n    if (verbose) puts(\"STUB: ZGTTS2_ called\");\n    return NULL;\n}\n\nvoid* ZHBEV(void)\n{\n    if (verbose) puts(\"STUB: ZHBEV called\");\n    return NULL;\n}\n\nvoid* ZHBEVD(void)\n{\n    if (verbose) puts(\"STUB: ZHBEVD called\");\n    return NULL;\n}\n\nvoid* ZHBEVD_(void)\n{\n    if (verbose) puts(\"STUB: ZHBEVD_ called\");\n    return NULL;\n}\n\nvoid* ZHBEVX(void)\n{\n    if (verbose) puts(\"STUB: ZHBEVX called\");\n    return NULL;\n}\n\nvoid* ZHBEVX_(void)\n{\n    if (verbose) puts(\"STUB: ZHBEVX_ called\");\n    return NULL;\n}\n\nvoid* ZHBEV_(void)\n{\n    if (verbose) puts(\"STUB: ZHBEV_ called\");\n    return NULL;\n}\n\nvoid* ZHBGST(void)\n{\n    if (verbose) puts(\"STUB: ZHBGST called\");\n    return NULL;\n}\n\nvoid* ZHBGST_(void)\n{\n    if (verbose) puts(\"STUB: ZHBGST_ called\");\n    return NULL;\n}\n\nvoid* ZHBGV(void)\n{\n    if (verbose) puts(\"STUB: ZHBGV called\");\n    return NULL;\n}\n\nvoid* ZHBGVD(void)\n{\n    if (verbose) puts(\"STUB: ZHBGVD called\");\n    return NULL;\n}\n\nvoid* ZHBGVD_(void)\n{\n    if (verbose) puts(\"STUB: ZHBGVD_ called\");\n    return NULL;\n}\n\nvoid* ZHBGVX(void)\n{\n    if (verbose) puts(\"STUB: ZHBGVX called\");\n    return NULL;\n}\n\nvoid* ZHBGVX_(void)\n{\n    if (verbose) puts(\"STUB: ZHBGVX_ called\");\n    return NULL;\n}\n\nvoid* ZHBGV_(void)\n{\n    if (verbose) puts(\"STUB: ZHBGV_ called\");\n    return NULL;\n}\n\nvoid* ZHBTRD(void)\n{\n    if (verbose) puts(\"STUB: ZHBTRD called\");\n    return NULL;\n}\n\nvoid* ZHBTRD_(void)\n{\n    if (verbose) puts(\"STUB: ZHBTRD_ called\");\n    return NULL;\n}\n\nvoid* ZHECON(void)\n{\n    if (verbose) puts(\"STUB: ZHECON called\");\n    return NULL;\n}\n\nvoid* ZHECON_(void)\n{\n    if (verbose) puts(\"STUB: ZHECON_ called\");\n    return NULL;\n}\n\nvoid* ZHEEQUB(void)\n{\n    if (verbose) puts(\"STUB: ZHEEQUB called\");\n    return NULL;\n}\n\nvoid* ZHEEQUB_(void)\n{\n    if (verbose) puts(\"STUB: ZHEEQUB_ called\");\n    return NULL;\n}\n\nvoid* ZHEEV(void)\n{\n    if (verbose) puts(\"STUB: ZHEEV called\");\n    return NULL;\n}\n\nvoid* ZHEEVD(void)\n{\n    if (verbose) puts(\"STUB: ZHEEVD called\");\n    return NULL;\n}\n\nvoid* ZHEEVD_(void)\n{\n    if (verbose) puts(\"STUB: ZHEEVD_ called\");\n    return NULL;\n}\n\nvoid* ZHEEVR(void)\n{\n    if (verbose) puts(\"STUB: ZHEEVR called\");\n    return NULL;\n}\n\nvoid* ZHEEVR_(void)\n{\n    if (verbose) puts(\"STUB: ZHEEVR_ called\");\n    return NULL;\n}\n\nvoid* ZHEEVX(void)\n{\n    if (verbose) puts(\"STUB: ZHEEVX called\");\n    return NULL;\n}\n\nvoid* ZHEEVX_(void)\n{\n    if (verbose) puts(\"STUB: ZHEEVX_ called\");\n    return NULL;\n}\n\nvoid* ZHEEV_(void)\n{\n    if (verbose) puts(\"STUB: ZHEEV_ called\");\n    return NULL;\n}\n\nvoid* ZHEGS2(void)\n{\n    if (verbose) puts(\"STUB: ZHEGS2 called\");\n    return NULL;\n}\n\nvoid* ZHEGS2_(void)\n{\n    if (verbose) puts(\"STUB: ZHEGS2_ called\");\n    return NULL;\n}\n\nvoid* ZHEGST(void)\n{\n    if (verbose) puts(\"STUB: ZHEGST called\");\n    return NULL;\n}\n\nvoid* ZHEGST_(void)\n{\n    if (verbose) puts(\"STUB: ZHEGST_ called\");\n    return NULL;\n}\n\nvoid* ZHEGV(void)\n{\n    if (verbose) puts(\"STUB: ZHEGV called\");\n    return NULL;\n}\n\nvoid* ZHEGVD(void)\n{\n    if (verbose) puts(\"STUB: ZHEGVD called\");\n    return NULL;\n}\n\nvoid* ZHEGVD_(void)\n{\n    if (verbose) puts(\"STUB: ZHEGVD_ called\");\n    return NULL;\n}\n\nvoid* ZHEGVX(void)\n{\n    if (verbose) puts(\"STUB: ZHEGVX called\");\n    return NULL;\n}\n\nvoid* ZHEGVX_(void)\n{\n    if (verbose) puts(\"STUB: ZHEGVX_ called\");\n    return NULL;\n}\n\nvoid* ZHEGV_(void)\n{\n    if (verbose) puts(\"STUB: ZHEGV_ called\");\n    return NULL;\n}\n\nvoid* ZHERFS(void)\n{\n    if (verbose) puts(\"STUB: ZHERFS called\");\n    return NULL;\n}\n\nvoid* ZHERFS_(void)\n{\n    if (verbose) puts(\"STUB: ZHERFS_ called\");\n    return NULL;\n}\n\nvoid* ZHESV(void)\n{\n    if (verbose) puts(\"STUB: ZHESV called\");\n    return NULL;\n}\n\nvoid* ZHESVX(void)\n{\n    if (verbose) puts(\"STUB: ZHESVX called\");\n    return NULL;\n}\n\nvoid* ZHESVX_(void)\n{\n    if (verbose) puts(\"STUB: ZHESVX_ called\");\n    return NULL;\n}\n\nvoid* ZHESV_(void)\n{\n    if (verbose) puts(\"STUB: ZHESV_ called\");\n    return NULL;\n}\n\nvoid* ZHETD2(void)\n{\n    if (verbose) puts(\"STUB: ZHETD2 called\");\n    return NULL;\n}\n\nvoid* ZHETD2_(void)\n{\n    if (verbose) puts(\"STUB: ZHETD2_ called\");\n    return NULL;\n}\n\nvoid* ZHETF2(void)\n{\n    if (verbose) puts(\"STUB: ZHETF2 called\");\n    return NULL;\n}\n\nvoid* ZHETF2_(void)\n{\n    if (verbose) puts(\"STUB: ZHETF2_ called\");\n    return NULL;\n}\n\nvoid* ZHETRD(void)\n{\n    if (verbose) puts(\"STUB: ZHETRD called\");\n    return NULL;\n}\n\nvoid* ZHETRD_(void)\n{\n    if (verbose) puts(\"STUB: ZHETRD_ called\");\n    return NULL;\n}\n\nvoid* ZHETRF(void)\n{\n    if (verbose) puts(\"STUB: ZHETRF called\");\n    return NULL;\n}\n\nvoid* ZHETRF_(void)\n{\n    if (verbose) puts(\"STUB: ZHETRF_ called\");\n    return NULL;\n}\n\nvoid* ZHETRI(void)\n{\n    if (verbose) puts(\"STUB: ZHETRI called\");\n    return NULL;\n}\n\nvoid* ZHETRI_(void)\n{\n    if (verbose) puts(\"STUB: ZHETRI_ called\");\n    return NULL;\n}\n\nvoid* ZHETRS(void)\n{\n    if (verbose) puts(\"STUB: ZHETRS called\");\n    return NULL;\n}\n\nvoid* ZHETRS_(void)\n{\n    if (verbose) puts(\"STUB: ZHETRS_ called\");\n    return NULL;\n}\n\nvoid* ZHFRK(void)\n{\n    if (verbose) puts(\"STUB: ZHFRK called\");\n    return NULL;\n}\n\nvoid* ZHFRK_(void)\n{\n    if (verbose) puts(\"STUB: ZHFRK_ called\");\n    return NULL;\n}\n\nvoid* ZHGEQZ(void)\n{\n    if (verbose) puts(\"STUB: ZHGEQZ called\");\n    return NULL;\n}\n\nvoid* ZHGEQZ_(void)\n{\n    if (verbose) puts(\"STUB: ZHGEQZ_ called\");\n    return NULL;\n}\n\nvoid* ZHPCON(void)\n{\n    if (verbose) puts(\"STUB: ZHPCON called\");\n    return NULL;\n}\n\nvoid* ZHPCON_(void)\n{\n    if (verbose) puts(\"STUB: ZHPCON_ called\");\n    return NULL;\n}\n\nvoid* ZHPEV(void)\n{\n    if (verbose) puts(\"STUB: ZHPEV called\");\n    return NULL;\n}\n\nvoid* ZHPEVD(void)\n{\n    if (verbose) puts(\"STUB: ZHPEVD called\");\n    return NULL;\n}\n\nvoid* ZHPEVD_(void)\n{\n    if (verbose) puts(\"STUB: ZHPEVD_ called\");\n    return NULL;\n}\n\nvoid* ZHPEVX(void)\n{\n    if (verbose) puts(\"STUB: ZHPEVX called\");\n    return NULL;\n}\n\nvoid* ZHPEVX_(void)\n{\n    if (verbose) puts(\"STUB: ZHPEVX_ called\");\n    return NULL;\n}\n\nvoid* ZHPEV_(void)\n{\n    if (verbose) puts(\"STUB: ZHPEV_ called\");\n    return NULL;\n}\n\nvoid* ZHPGST(void)\n{\n    if (verbose) puts(\"STUB: ZHPGST called\");\n    return NULL;\n}\n\nvoid* ZHPGST_(void)\n{\n    if (verbose) puts(\"STUB: ZHPGST_ called\");\n    return NULL;\n}\n\nvoid* ZHPGV(void)\n{\n    if (verbose) puts(\"STUB: ZHPGV called\");\n    return NULL;\n}\n\nvoid* ZHPGVD(void)\n{\n    if (verbose) puts(\"STUB: ZHPGVD called\");\n    return NULL;\n}\n\nvoid* ZHPGVD_(void)\n{\n    if (verbose) puts(\"STUB: ZHPGVD_ called\");\n    return NULL;\n}\n\nvoid* ZHPGVX(void)\n{\n    if (verbose) puts(\"STUB: ZHPGVX called\");\n    return NULL;\n}\n\nvoid* ZHPGVX_(void)\n{\n    if (verbose) puts(\"STUB: ZHPGVX_ called\");\n    return NULL;\n}\n\nvoid* ZHPGV_(void)\n{\n    if (verbose) puts(\"STUB: ZHPGV_ called\");\n    return NULL;\n}\n\nvoid* ZHPRFS(void)\n{\n    if (verbose) puts(\"STUB: ZHPRFS called\");\n    return NULL;\n}\n\nvoid* ZHPRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZHPRFS_ called\");\n    return NULL;\n}\n\nvoid* ZHPSV(void)\n{\n    if (verbose) puts(\"STUB: ZHPSV called\");\n    return NULL;\n}\n\nvoid* ZHPSVX(void)\n{\n    if (verbose) puts(\"STUB: ZHPSVX called\");\n    return NULL;\n}\n\nvoid* ZHPSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZHPSVX_ called\");\n    return NULL;\n}\n\nvoid* ZHPSV_(void)\n{\n    if (verbose) puts(\"STUB: ZHPSV_ called\");\n    return NULL;\n}\n\nvoid* ZHPTRD(void)\n{\n    if (verbose) puts(\"STUB: ZHPTRD called\");\n    return NULL;\n}\n\nvoid* ZHPTRD_(void)\n{\n    if (verbose) puts(\"STUB: ZHPTRD_ called\");\n    return NULL;\n}\n\nvoid* ZHPTRF(void)\n{\n    if (verbose) puts(\"STUB: ZHPTRF called\");\n    return NULL;\n}\n\nvoid* ZHPTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZHPTRF_ called\");\n    return NULL;\n}\n\nvoid* ZHPTRI(void)\n{\n    if (verbose) puts(\"STUB: ZHPTRI called\");\n    return NULL;\n}\n\nvoid* ZHPTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZHPTRI_ called\");\n    return NULL;\n}\n\nvoid* ZHPTRS(void)\n{\n    if (verbose) puts(\"STUB: ZHPTRS called\");\n    return NULL;\n}\n\nvoid* ZHPTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZHPTRS_ called\");\n    return NULL;\n}\n\nvoid* ZHSEIN(void)\n{\n    if (verbose) puts(\"STUB: ZHSEIN called\");\n    return NULL;\n}\n\nvoid* ZHSEIN_(void)\n{\n    if (verbose) puts(\"STUB: ZHSEIN_ called\");\n    return NULL;\n}\n\nvoid* ZHSEQR(void)\n{\n    if (verbose) puts(\"STUB: ZHSEQR called\");\n    return NULL;\n}\n\nvoid* ZHSEQR_(void)\n{\n    if (verbose) puts(\"STUB: ZHSEQR_ called\");\n    return NULL;\n}\n\nvoid* ZLABRD(void)\n{\n    if (verbose) puts(\"STUB: ZLABRD called\");\n    return NULL;\n}\n\nvoid* ZLABRD_(void)\n{\n    if (verbose) puts(\"STUB: ZLABRD_ called\");\n    return NULL;\n}\n\nvoid* ZLACGV(void)\n{\n    if (verbose) puts(\"STUB: ZLACGV called\");\n    return NULL;\n}\n\nvoid* ZLACGV_(void)\n{\n    if (verbose) puts(\"STUB: ZLACGV_ called\");\n    return NULL;\n}\n\nvoid* ZLACN2(void)\n{\n    if (verbose) puts(\"STUB: ZLACN2 called\");\n    return NULL;\n}\n\nvoid* ZLACN2_(void)\n{\n    if (verbose) puts(\"STUB: ZLACN2_ called\");\n    return NULL;\n}\n\nvoid* ZLACON(void)\n{\n    if (verbose) puts(\"STUB: ZLACON called\");\n    return NULL;\n}\n\nvoid* ZLACON_(void)\n{\n    if (verbose) puts(\"STUB: ZLACON_ called\");\n    return NULL;\n}\n\nvoid* ZLACP2(void)\n{\n    if (verbose) puts(\"STUB: ZLACP2 called\");\n    return NULL;\n}\n\nvoid* ZLACP2_(void)\n{\n    if (verbose) puts(\"STUB: ZLACP2_ called\");\n    return NULL;\n}\n\nvoid* ZLACPY(void)\n{\n    if (verbose) puts(\"STUB: ZLACPY called\");\n    return NULL;\n}\n\nvoid* ZLACPY_(void)\n{\n    if (verbose) puts(\"STUB: ZLACPY_ called\");\n    return NULL;\n}\n\nvoid* ZLACRM(void)\n{\n    if (verbose) puts(\"STUB: ZLACRM called\");\n    return NULL;\n}\n\nvoid* ZLACRM_(void)\n{\n    if (verbose) puts(\"STUB: ZLACRM_ called\");\n    return NULL;\n}\n\nvoid* ZLACRT(void)\n{\n    if (verbose) puts(\"STUB: ZLACRT called\");\n    return NULL;\n}\n\nvoid* ZLACRT_(void)\n{\n    if (verbose) puts(\"STUB: ZLACRT_ called\");\n    return NULL;\n}\n\nvoid* ZLADIV(void)\n{\n    if (verbose) puts(\"STUB: ZLADIV called\");\n    return NULL;\n}\n\nvoid* ZLADIV_(void)\n{\n    if (verbose) puts(\"STUB: ZLADIV_ called\");\n    return NULL;\n}\n\nvoid* ZLAED0(void)\n{\n    if (verbose) puts(\"STUB: ZLAED0 called\");\n    return NULL;\n}\n\nvoid* ZLAED0_(void)\n{\n    if (verbose) puts(\"STUB: ZLAED0_ called\");\n    return NULL;\n}\n\nvoid* ZLAED7(void)\n{\n    if (verbose) puts(\"STUB: ZLAED7 called\");\n    return NULL;\n}\n\nvoid* ZLAED7_(void)\n{\n    if (verbose) puts(\"STUB: ZLAED7_ called\");\n    return NULL;\n}\n\nvoid* ZLAED8(void)\n{\n    if (verbose) puts(\"STUB: ZLAED8 called\");\n    return NULL;\n}\n\nvoid* ZLAED8_(void)\n{\n    if (verbose) puts(\"STUB: ZLAED8_ called\");\n    return NULL;\n}\n\nvoid* ZLAEIN(void)\n{\n    if (verbose) puts(\"STUB: ZLAEIN called\");\n    return NULL;\n}\n\nvoid* ZLAEIN_(void)\n{\n    if (verbose) puts(\"STUB: ZLAEIN_ called\");\n    return NULL;\n}\n\nvoid* ZLAESY(void)\n{\n    if (verbose) puts(\"STUB: ZLAESY called\");\n    return NULL;\n}\n\nvoid* ZLAESY_(void)\n{\n    if (verbose) puts(\"STUB: ZLAESY_ called\");\n    return NULL;\n}\n\nvoid* ZLAEV2(void)\n{\n    if (verbose) puts(\"STUB: ZLAEV2 called\");\n    return NULL;\n}\n\nvoid* ZLAEV2_(void)\n{\n    if (verbose) puts(\"STUB: ZLAEV2_ called\");\n    return NULL;\n}\n\nvoid* ZLAG2C(void)\n{\n    if (verbose) puts(\"STUB: ZLAG2C called\");\n    return NULL;\n}\n\nvoid* ZLAG2C_(void)\n{\n    if (verbose) puts(\"STUB: ZLAG2C_ called\");\n    return NULL;\n}\n\nvoid* ZLAGS2(void)\n{\n    if (verbose) puts(\"STUB: ZLAGS2 called\");\n    return NULL;\n}\n\nvoid* ZLAGS2_(void)\n{\n    if (verbose) puts(\"STUB: ZLAGS2_ called\");\n    return NULL;\n}\n\nvoid* ZLAGTM(void)\n{\n    if (verbose) puts(\"STUB: ZLAGTM called\");\n    return NULL;\n}\n\nvoid* ZLAGTM_(void)\n{\n    if (verbose) puts(\"STUB: ZLAGTM_ called\");\n    return NULL;\n}\n\nvoid* ZLAHEF(void)\n{\n    if (verbose) puts(\"STUB: ZLAHEF called\");\n    return NULL;\n}\n\nvoid* ZLAHEF_(void)\n{\n    if (verbose) puts(\"STUB: ZLAHEF_ called\");\n    return NULL;\n}\n\nvoid* ZLAHQR(void)\n{\n    if (verbose) puts(\"STUB: ZLAHQR called\");\n    return NULL;\n}\n\nvoid* ZLAHQR_(void)\n{\n    if (verbose) puts(\"STUB: ZLAHQR_ called\");\n    return NULL;\n}\n\nvoid* ZLAHR2(void)\n{\n    if (verbose) puts(\"STUB: ZLAHR2 called\");\n    return NULL;\n}\n\nvoid* ZLAHR2_(void)\n{\n    if (verbose) puts(\"STUB: ZLAHR2_ called\");\n    return NULL;\n}\n\nvoid* ZLAHRD(void)\n{\n    if (verbose) puts(\"STUB: ZLAHRD called\");\n    return NULL;\n}\n\nvoid* ZLAHRD_(void)\n{\n    if (verbose) puts(\"STUB: ZLAHRD_ called\");\n    return NULL;\n}\n\nvoid* ZLAIC1(void)\n{\n    if (verbose) puts(\"STUB: ZLAIC1 called\");\n    return NULL;\n}\n\nvoid* ZLAIC1_(void)\n{\n    if (verbose) puts(\"STUB: ZLAIC1_ called\");\n    return NULL;\n}\n\nvoid* ZLALS0(void)\n{\n    if (verbose) puts(\"STUB: ZLALS0 called\");\n    return NULL;\n}\n\nvoid* ZLALS0_(void)\n{\n    if (verbose) puts(\"STUB: ZLALS0_ called\");\n    return NULL;\n}\n\nvoid* ZLALSA(void)\n{\n    if (verbose) puts(\"STUB: ZLALSA called\");\n    return NULL;\n}\n\nvoid* ZLALSA_(void)\n{\n    if (verbose) puts(\"STUB: ZLALSA_ called\");\n    return NULL;\n}\n\nvoid* ZLALSD(void)\n{\n    if (verbose) puts(\"STUB: ZLALSD called\");\n    return NULL;\n}\n\nvoid* ZLALSD_(void)\n{\n    if (verbose) puts(\"STUB: ZLALSD_ called\");\n    return NULL;\n}\n\nvoid* ZLANGB(void)\n{\n    if (verbose) puts(\"STUB: ZLANGB called\");\n    return NULL;\n}\n\nvoid* ZLANGB_(void)\n{\n    if (verbose) puts(\"STUB: ZLANGB_ called\");\n    return NULL;\n}\n\nvoid* ZLANGE(void)\n{\n    if (verbose) puts(\"STUB: ZLANGE called\");\n    return NULL;\n}\n\nvoid* ZLANGE_(void)\n{\n    if (verbose) puts(\"STUB: ZLANGE_ called\");\n    return NULL;\n}\n\nvoid* ZLANGT(void)\n{\n    if (verbose) puts(\"STUB: ZLANGT called\");\n    return NULL;\n}\n\nvoid* ZLANGT_(void)\n{\n    if (verbose) puts(\"STUB: ZLANGT_ called\");\n    return NULL;\n}\n\nvoid* ZLANHB(void)\n{\n    if (verbose) puts(\"STUB: ZLANHB called\");\n    return NULL;\n}\n\nvoid* ZLANHB_(void)\n{\n    if (verbose) puts(\"STUB: ZLANHB_ called\");\n    return NULL;\n}\n\nvoid* ZLANHE(void)\n{\n    if (verbose) puts(\"STUB: ZLANHE called\");\n    return NULL;\n}\n\nvoid* ZLANHE_(void)\n{\n    if (verbose) puts(\"STUB: ZLANHE_ called\");\n    return NULL;\n}\n\nvoid* ZLANHF(void)\n{\n    if (verbose) puts(\"STUB: ZLANHF called\");\n    return NULL;\n}\n\nvoid* ZLANHF_(void)\n{\n    if (verbose) puts(\"STUB: ZLANHF_ called\");\n    return NULL;\n}\n\nvoid* ZLANHP(void)\n{\n    if (verbose) puts(\"STUB: ZLANHP called\");\n    return NULL;\n}\n\nvoid* ZLANHP_(void)\n{\n    if (verbose) puts(\"STUB: ZLANHP_ called\");\n    return NULL;\n}\n\nvoid* ZLANHS(void)\n{\n    if (verbose) puts(\"STUB: ZLANHS called\");\n    return NULL;\n}\n\nvoid* ZLANHS_(void)\n{\n    if (verbose) puts(\"STUB: ZLANHS_ called\");\n    return NULL;\n}\n\nvoid* ZLANHT(void)\n{\n    if (verbose) puts(\"STUB: ZLANHT called\");\n    return NULL;\n}\n\nvoid* ZLANHT_(void)\n{\n    if (verbose) puts(\"STUB: ZLANHT_ called\");\n    return NULL;\n}\n\nvoid* ZLANSB(void)\n{\n    if (verbose) puts(\"STUB: ZLANSB called\");\n    return NULL;\n}\n\nvoid* ZLANSB_(void)\n{\n    if (verbose) puts(\"STUB: ZLANSB_ called\");\n    return NULL;\n}\n\nvoid* ZLANSP(void)\n{\n    if (verbose) puts(\"STUB: ZLANSP called\");\n    return NULL;\n}\n\nvoid* ZLANSP_(void)\n{\n    if (verbose) puts(\"STUB: ZLANSP_ called\");\n    return NULL;\n}\n\nvoid* ZLANSY(void)\n{\n    if (verbose) puts(\"STUB: ZLANSY called\");\n    return NULL;\n}\n\nvoid* ZLANSY_(void)\n{\n    if (verbose) puts(\"STUB: ZLANSY_ called\");\n    return NULL;\n}\n\nvoid* ZLANTB(void)\n{\n    if (verbose) puts(\"STUB: ZLANTB called\");\n    return NULL;\n}\n\nvoid* ZLANTB_(void)\n{\n    if (verbose) puts(\"STUB: ZLANTB_ called\");\n    return NULL;\n}\n\nvoid* ZLANTP(void)\n{\n    if (verbose) puts(\"STUB: ZLANTP called\");\n    return NULL;\n}\n\nvoid* ZLANTP_(void)\n{\n    if (verbose) puts(\"STUB: ZLANTP_ called\");\n    return NULL;\n}\n\nvoid* ZLANTR(void)\n{\n    if (verbose) puts(\"STUB: ZLANTR called\");\n    return NULL;\n}\n\nvoid* ZLANTR_(void)\n{\n    if (verbose) puts(\"STUB: ZLANTR_ called\");\n    return NULL;\n}\n\nvoid* ZLAPLL(void)\n{\n    if (verbose) puts(\"STUB: ZLAPLL called\");\n    return NULL;\n}\n\nvoid* ZLAPLL_(void)\n{\n    if (verbose) puts(\"STUB: ZLAPLL_ called\");\n    return NULL;\n}\n\nvoid* ZLAPMT(void)\n{\n    if (verbose) puts(\"STUB: ZLAPMT called\");\n    return NULL;\n}\n\nvoid* ZLAPMT_(void)\n{\n    if (verbose) puts(\"STUB: ZLAPMT_ called\");\n    return NULL;\n}\n\nvoid* ZLAQGB(void)\n{\n    if (verbose) puts(\"STUB: ZLAQGB called\");\n    return NULL;\n}\n\nvoid* ZLAQGB_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQGB_ called\");\n    return NULL;\n}\n\nvoid* ZLAQGE(void)\n{\n    if (verbose) puts(\"STUB: ZLAQGE called\");\n    return NULL;\n}\n\nvoid* ZLAQGE_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQGE_ called\");\n    return NULL;\n}\n\nvoid* ZLAQHB(void)\n{\n    if (verbose) puts(\"STUB: ZLAQHB called\");\n    return NULL;\n}\n\nvoid* ZLAQHB_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQHB_ called\");\n    return NULL;\n}\n\nvoid* ZLAQHE(void)\n{\n    if (verbose) puts(\"STUB: ZLAQHE called\");\n    return NULL;\n}\n\nvoid* ZLAQHE_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQHE_ called\");\n    return NULL;\n}\n\nvoid* ZLAQHP(void)\n{\n    if (verbose) puts(\"STUB: ZLAQHP called\");\n    return NULL;\n}\n\nvoid* ZLAQHP_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQHP_ called\");\n    return NULL;\n}\n\nvoid* ZLAQP2(void)\n{\n    if (verbose) puts(\"STUB: ZLAQP2 called\");\n    return NULL;\n}\n\nvoid* ZLAQP2_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQP2_ called\");\n    return NULL;\n}\n\nvoid* ZLAQPS(void)\n{\n    if (verbose) puts(\"STUB: ZLAQPS called\");\n    return NULL;\n}\n\nvoid* ZLAQPS_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQPS_ called\");\n    return NULL;\n}\n\nvoid* ZLAQR0(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR0 called\");\n    return NULL;\n}\n\nvoid* ZLAQR0_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR0_ called\");\n    return NULL;\n}\n\nvoid* ZLAQR1(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR1 called\");\n    return NULL;\n}\n\nvoid* ZLAQR1_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR1_ called\");\n    return NULL;\n}\n\nvoid* ZLAQR2(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR2 called\");\n    return NULL;\n}\n\nvoid* ZLAQR2_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR2_ called\");\n    return NULL;\n}\n\nvoid* ZLAQR3(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR3 called\");\n    return NULL;\n}\n\nvoid* ZLAQR3_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR3_ called\");\n    return NULL;\n}\n\nvoid* ZLAQR4(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR4 called\");\n    return NULL;\n}\n\nvoid* ZLAQR4_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR4_ called\");\n    return NULL;\n}\n\nvoid* ZLAQR5(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR5 called\");\n    return NULL;\n}\n\nvoid* ZLAQR5_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQR5_ called\");\n    return NULL;\n}\n\nvoid* ZLAQSB(void)\n{\n    if (verbose) puts(\"STUB: ZLAQSB called\");\n    return NULL;\n}\n\nvoid* ZLAQSB_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQSB_ called\");\n    return NULL;\n}\n\nvoid* ZLAQSP(void)\n{\n    if (verbose) puts(\"STUB: ZLAQSP called\");\n    return NULL;\n}\n\nvoid* ZLAQSP_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQSP_ called\");\n    return NULL;\n}\n\nvoid* ZLAQSY(void)\n{\n    if (verbose) puts(\"STUB: ZLAQSY called\");\n    return NULL;\n}\n\nvoid* ZLAQSY_(void)\n{\n    if (verbose) puts(\"STUB: ZLAQSY_ called\");\n    return NULL;\n}\n\nvoid* ZLAR1V(void)\n{\n    if (verbose) puts(\"STUB: ZLAR1V called\");\n    return NULL;\n}\n\nvoid* ZLAR1V_(void)\n{\n    if (verbose) puts(\"STUB: ZLAR1V_ called\");\n    return NULL;\n}\n\nvoid* ZLAR2V(void)\n{\n    if (verbose) puts(\"STUB: ZLAR2V called\");\n    return NULL;\n}\n\nvoid* ZLAR2V_(void)\n{\n    if (verbose) puts(\"STUB: ZLAR2V_ called\");\n    return NULL;\n}\n\nvoid* ZLARCM(void)\n{\n    if (verbose) puts(\"STUB: ZLARCM called\");\n    return NULL;\n}\n\nvoid* ZLARCM_(void)\n{\n    if (verbose) puts(\"STUB: ZLARCM_ called\");\n    return NULL;\n}\n\nvoid* ZLARF(void)\n{\n    if (verbose) puts(\"STUB: ZLARF called\");\n    return NULL;\n}\n\nvoid* ZLARFB(void)\n{\n    if (verbose) puts(\"STUB: ZLARFB called\");\n    return NULL;\n}\n\nvoid* ZLARFB_(void)\n{\n    if (verbose) puts(\"STUB: ZLARFB_ called\");\n    return NULL;\n}\n\nvoid* ZLARFG(void)\n{\n    if (verbose) puts(\"STUB: ZLARFG called\");\n    return NULL;\n}\n\nvoid* ZLARFG_(void)\n{\n    if (verbose) puts(\"STUB: ZLARFG_ called\");\n    return NULL;\n}\n\nvoid* ZLARFP(void)\n{\n    if (verbose) puts(\"STUB: ZLARFP called\");\n    return NULL;\n}\n\nvoid* ZLARFP_(void)\n{\n    if (verbose) puts(\"STUB: ZLARFP_ called\");\n    return NULL;\n}\n\nvoid* ZLARFT(void)\n{\n    if (verbose) puts(\"STUB: ZLARFT called\");\n    return NULL;\n}\n\nvoid* ZLARFT_(void)\n{\n    if (verbose) puts(\"STUB: ZLARFT_ called\");\n    return NULL;\n}\n\nvoid* ZLARFX(void)\n{\n    if (verbose) puts(\"STUB: ZLARFX called\");\n    return NULL;\n}\n\nvoid* ZLARFX_(void)\n{\n    if (verbose) puts(\"STUB: ZLARFX_ called\");\n    return NULL;\n}\n\nvoid* ZLARF_(void)\n{\n    if (verbose) puts(\"STUB: ZLARF_ called\");\n    return NULL;\n}\n\nvoid* ZLARGV(void)\n{\n    if (verbose) puts(\"STUB: ZLARGV called\");\n    return NULL;\n}\n\nvoid* ZLARGV_(void)\n{\n    if (verbose) puts(\"STUB: ZLARGV_ called\");\n    return NULL;\n}\n\nvoid* ZLARNV(void)\n{\n    if (verbose) puts(\"STUB: ZLARNV called\");\n    return NULL;\n}\n\nvoid* ZLARNV_(void)\n{\n    if (verbose) puts(\"STUB: ZLARNV_ called\");\n    return NULL;\n}\n\nvoid* ZLARRV(void)\n{\n    if (verbose) puts(\"STUB: ZLARRV called\");\n    return NULL;\n}\n\nvoid* ZLARRV_(void)\n{\n    if (verbose) puts(\"STUB: ZLARRV_ called\");\n    return NULL;\n}\n\nvoid* ZLARSCL2(void)\n{\n    if (verbose) puts(\"STUB: ZLARSCL2 called\");\n    return NULL;\n}\n\nvoid* ZLARSCL2_(void)\n{\n    if (verbose) puts(\"STUB: ZLARSCL2_ called\");\n    return NULL;\n}\n\nvoid* ZLARTG(void)\n{\n    if (verbose) puts(\"STUB: ZLARTG called\");\n    return NULL;\n}\n\nvoid* ZLARTG_(void)\n{\n    if (verbose) puts(\"STUB: ZLARTG_ called\");\n    return NULL;\n}\n\nvoid* ZLARTV(void)\n{\n    if (verbose) puts(\"STUB: ZLARTV called\");\n    return NULL;\n}\n\nvoid* ZLARTV_(void)\n{\n    if (verbose) puts(\"STUB: ZLARTV_ called\");\n    return NULL;\n}\n\nvoid* ZLARZ(void)\n{\n    if (verbose) puts(\"STUB: ZLARZ called\");\n    return NULL;\n}\n\nvoid* ZLARZB(void)\n{\n    if (verbose) puts(\"STUB: ZLARZB called\");\n    return NULL;\n}\n\nvoid* ZLARZB_(void)\n{\n    if (verbose) puts(\"STUB: ZLARZB_ called\");\n    return NULL;\n}\n\nvoid* ZLARZT(void)\n{\n    if (verbose) puts(\"STUB: ZLARZT called\");\n    return NULL;\n}\n\nvoid* ZLARZT_(void)\n{\n    if (verbose) puts(\"STUB: ZLARZT_ called\");\n    return NULL;\n}\n\nvoid* ZLARZ_(void)\n{\n    if (verbose) puts(\"STUB: ZLARZ_ called\");\n    return NULL;\n}\n\nvoid* ZLASCL(void)\n{\n    if (verbose) puts(\"STUB: ZLASCL called\");\n    return NULL;\n}\n\nvoid* ZLASCL2(void)\n{\n    if (verbose) puts(\"STUB: ZLASCL2 called\");\n    return NULL;\n}\n\nvoid* ZLASCL2_(void)\n{\n    if (verbose) puts(\"STUB: ZLASCL2_ called\");\n    return NULL;\n}\n\nvoid* ZLASCL_(void)\n{\n    if (verbose) puts(\"STUB: ZLASCL_ called\");\n    return NULL;\n}\n\nvoid* ZLASET(void)\n{\n    if (verbose) puts(\"STUB: ZLASET called\");\n    return NULL;\n}\n\nvoid* ZLASET_(void)\n{\n    if (verbose) puts(\"STUB: ZLASET_ called\");\n    return NULL;\n}\n\nvoid* ZLASR(void)\n{\n    if (verbose) puts(\"STUB: ZLASR called\");\n    return NULL;\n}\n\nvoid* ZLASR_(void)\n{\n    if (verbose) puts(\"STUB: ZLASR_ called\");\n    return NULL;\n}\n\nvoid* ZLASSQ(void)\n{\n    if (verbose) puts(\"STUB: ZLASSQ called\");\n    return NULL;\n}\n\nvoid* ZLASSQ_(void)\n{\n    if (verbose) puts(\"STUB: ZLASSQ_ called\");\n    return NULL;\n}\n\nvoid* ZLASWP(void)\n{\n    if (verbose) puts(\"STUB: ZLASWP called\");\n    return NULL;\n}\n\nvoid* ZLASWP_(void)\n{\n    if (verbose) puts(\"STUB: ZLASWP_ called\");\n    return NULL;\n}\n\nvoid* ZLASYF(void)\n{\n    if (verbose) puts(\"STUB: ZLASYF called\");\n    return NULL;\n}\n\nvoid* ZLASYF_(void)\n{\n    if (verbose) puts(\"STUB: ZLASYF_ called\");\n    return NULL;\n}\n\nvoid* ZLAT2C(void)\n{\n    if (verbose) puts(\"STUB: ZLAT2C called\");\n    return NULL;\n}\n\nvoid* ZLAT2C_(void)\n{\n    if (verbose) puts(\"STUB: ZLAT2C_ called\");\n    return NULL;\n}\n\nvoid* ZLATBS(void)\n{\n    if (verbose) puts(\"STUB: ZLATBS called\");\n    return NULL;\n}\n\nvoid* ZLATBS_(void)\n{\n    if (verbose) puts(\"STUB: ZLATBS_ called\");\n    return NULL;\n}\n\nvoid* ZLATDF(void)\n{\n    if (verbose) puts(\"STUB: ZLATDF called\");\n    return NULL;\n}\n\nvoid* ZLATDF_(void)\n{\n    if (verbose) puts(\"STUB: ZLATDF_ called\");\n    return NULL;\n}\n\nvoid* ZLATPS(void)\n{\n    if (verbose) puts(\"STUB: ZLATPS called\");\n    return NULL;\n}\n\nvoid* ZLATPS_(void)\n{\n    if (verbose) puts(\"STUB: ZLATPS_ called\");\n    return NULL;\n}\n\nvoid* ZLATRD(void)\n{\n    if (verbose) puts(\"STUB: ZLATRD called\");\n    return NULL;\n}\n\nvoid* ZLATRD_(void)\n{\n    if (verbose) puts(\"STUB: ZLATRD_ called\");\n    return NULL;\n}\n\nvoid* ZLATRS(void)\n{\n    if (verbose) puts(\"STUB: ZLATRS called\");\n    return NULL;\n}\n\nvoid* ZLATRS_(void)\n{\n    if (verbose) puts(\"STUB: ZLATRS_ called\");\n    return NULL;\n}\n\nvoid* ZLATRZ(void)\n{\n    if (verbose) puts(\"STUB: ZLATRZ called\");\n    return NULL;\n}\n\nvoid* ZLATRZ_(void)\n{\n    if (verbose) puts(\"STUB: ZLATRZ_ called\");\n    return NULL;\n}\n\nvoid* ZLATZM(void)\n{\n    if (verbose) puts(\"STUB: ZLATZM called\");\n    return NULL;\n}\n\nvoid* ZLATZM_(void)\n{\n    if (verbose) puts(\"STUB: ZLATZM_ called\");\n    return NULL;\n}\n\nvoid* ZLAUU2(void)\n{\n    if (verbose) puts(\"STUB: ZLAUU2 called\");\n    return NULL;\n}\n\nvoid* ZLAUU2_(void)\n{\n    if (verbose) puts(\"STUB: ZLAUU2_ called\");\n    return NULL;\n}\n\nvoid* ZLAUUM(void)\n{\n    if (verbose) puts(\"STUB: ZLAUUM called\");\n    return NULL;\n}\n\nvoid* ZLAUUM_(void)\n{\n    if (verbose) puts(\"STUB: ZLAUUM_ called\");\n    return NULL;\n}\n\nvoid* ZPBCON(void)\n{\n    if (verbose) puts(\"STUB: ZPBCON called\");\n    return NULL;\n}\n\nvoid* ZPBCON_(void)\n{\n    if (verbose) puts(\"STUB: ZPBCON_ called\");\n    return NULL;\n}\n\nvoid* ZPBEQU(void)\n{\n    if (verbose) puts(\"STUB: ZPBEQU called\");\n    return NULL;\n}\n\nvoid* ZPBEQU_(void)\n{\n    if (verbose) puts(\"STUB: ZPBEQU_ called\");\n    return NULL;\n}\n\nvoid* ZPBRFS(void)\n{\n    if (verbose) puts(\"STUB: ZPBRFS called\");\n    return NULL;\n}\n\nvoid* ZPBRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZPBRFS_ called\");\n    return NULL;\n}\n\nvoid* ZPBSTF(void)\n{\n    if (verbose) puts(\"STUB: ZPBSTF called\");\n    return NULL;\n}\n\nvoid* ZPBSTF_(void)\n{\n    if (verbose) puts(\"STUB: ZPBSTF_ called\");\n    return NULL;\n}\n\nvoid* ZPBSV(void)\n{\n    if (verbose) puts(\"STUB: ZPBSV called\");\n    return NULL;\n}\n\nvoid* ZPBSVX(void)\n{\n    if (verbose) puts(\"STUB: ZPBSVX called\");\n    return NULL;\n}\n\nvoid* ZPBSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZPBSVX_ called\");\n    return NULL;\n}\n\nvoid* ZPBSV_(void)\n{\n    if (verbose) puts(\"STUB: ZPBSV_ called\");\n    return NULL;\n}\n\nvoid* ZPBTF2(void)\n{\n    if (verbose) puts(\"STUB: ZPBTF2 called\");\n    return NULL;\n}\n\nvoid* ZPBTF2_(void)\n{\n    if (verbose) puts(\"STUB: ZPBTF2_ called\");\n    return NULL;\n}\n\nvoid* ZPBTRF(void)\n{\n    if (verbose) puts(\"STUB: ZPBTRF called\");\n    return NULL;\n}\n\nvoid* ZPBTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZPBTRF_ called\");\n    return NULL;\n}\n\nvoid* ZPBTRS(void)\n{\n    if (verbose) puts(\"STUB: ZPBTRS called\");\n    return NULL;\n}\n\nvoid* ZPBTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZPBTRS_ called\");\n    return NULL;\n}\n\nvoid* ZPFTRF(void)\n{\n    if (verbose) puts(\"STUB: ZPFTRF called\");\n    return NULL;\n}\n\nvoid* ZPFTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZPFTRF_ called\");\n    return NULL;\n}\n\nvoid* ZPFTRI(void)\n{\n    if (verbose) puts(\"STUB: ZPFTRI called\");\n    return NULL;\n}\n\nvoid* ZPFTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZPFTRI_ called\");\n    return NULL;\n}\n\nvoid* ZPFTRS(void)\n{\n    if (verbose) puts(\"STUB: ZPFTRS called\");\n    return NULL;\n}\n\nvoid* ZPFTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZPFTRS_ called\");\n    return NULL;\n}\n\nvoid* ZPOCON(void)\n{\n    if (verbose) puts(\"STUB: ZPOCON called\");\n    return NULL;\n}\n\nvoid* ZPOCON_(void)\n{\n    if (verbose) puts(\"STUB: ZPOCON_ called\");\n    return NULL;\n}\n\nvoid* ZPOEQU(void)\n{\n    if (verbose) puts(\"STUB: ZPOEQU called\");\n    return NULL;\n}\n\nvoid* ZPOEQUB(void)\n{\n    if (verbose) puts(\"STUB: ZPOEQUB called\");\n    return NULL;\n}\n\nvoid* ZPOEQUB_(void)\n{\n    if (verbose) puts(\"STUB: ZPOEQUB_ called\");\n    return NULL;\n}\n\nvoid* ZPOEQU_(void)\n{\n    if (verbose) puts(\"STUB: ZPOEQU_ called\");\n    return NULL;\n}\n\nvoid* ZPORFS(void)\n{\n    if (verbose) puts(\"STUB: ZPORFS called\");\n    return NULL;\n}\n\nvoid* ZPORFS_(void)\n{\n    if (verbose) puts(\"STUB: ZPORFS_ called\");\n    return NULL;\n}\n\nvoid* ZPOSV(void)\n{\n    if (verbose) puts(\"STUB: ZPOSV called\");\n    return NULL;\n}\n\nvoid* ZPOSVX(void)\n{\n    if (verbose) puts(\"STUB: ZPOSVX called\");\n    return NULL;\n}\n\nvoid* ZPOSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZPOSVX_ called\");\n    return NULL;\n}\n\nvoid* ZPOSV_(void)\n{\n    if (verbose) puts(\"STUB: ZPOSV_ called\");\n    return NULL;\n}\n\nvoid* ZPOTF2(void)\n{\n    if (verbose) puts(\"STUB: ZPOTF2 called\");\n    return NULL;\n}\n\nvoid* ZPOTF2_(void)\n{\n    if (verbose) puts(\"STUB: ZPOTF2_ called\");\n    return NULL;\n}\n\nvoid* ZPOTRF(void)\n{\n    if (verbose) puts(\"STUB: ZPOTRF called\");\n    return NULL;\n}\n\nvoid* ZPOTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZPOTRF_ called\");\n    return NULL;\n}\n\nvoid* ZPOTRI(void)\n{\n    if (verbose) puts(\"STUB: ZPOTRI called\");\n    return NULL;\n}\n\nvoid* ZPOTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZPOTRI_ called\");\n    return NULL;\n}\n\nvoid* ZPOTRS(void)\n{\n    if (verbose) puts(\"STUB: ZPOTRS called\");\n    return NULL;\n}\n\nvoid* ZPOTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZPOTRS_ called\");\n    return NULL;\n}\n\nvoid* ZPPCON(void)\n{\n    if (verbose) puts(\"STUB: ZPPCON called\");\n    return NULL;\n}\n\nvoid* ZPPCON_(void)\n{\n    if (verbose) puts(\"STUB: ZPPCON_ called\");\n    return NULL;\n}\n\nvoid* ZPPEQU(void)\n{\n    if (verbose) puts(\"STUB: ZPPEQU called\");\n    return NULL;\n}\n\nvoid* ZPPEQU_(void)\n{\n    if (verbose) puts(\"STUB: ZPPEQU_ called\");\n    return NULL;\n}\n\nvoid* ZPPRFS(void)\n{\n    if (verbose) puts(\"STUB: ZPPRFS called\");\n    return NULL;\n}\n\nvoid* ZPPRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZPPRFS_ called\");\n    return NULL;\n}\n\nvoid* ZPPSV(void)\n{\n    if (verbose) puts(\"STUB: ZPPSV called\");\n    return NULL;\n}\n\nvoid* ZPPSVX(void)\n{\n    if (verbose) puts(\"STUB: ZPPSVX called\");\n    return NULL;\n}\n\nvoid* ZPPSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZPPSVX_ called\");\n    return NULL;\n}\n\nvoid* ZPPSV_(void)\n{\n    if (verbose) puts(\"STUB: ZPPSV_ called\");\n    return NULL;\n}\n\nvoid* ZPPTRF(void)\n{\n    if (verbose) puts(\"STUB: ZPPTRF called\");\n    return NULL;\n}\n\nvoid* ZPPTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZPPTRF_ called\");\n    return NULL;\n}\n\nvoid* ZPPTRI(void)\n{\n    if (verbose) puts(\"STUB: ZPPTRI called\");\n    return NULL;\n}\n\nvoid* ZPPTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZPPTRI_ called\");\n    return NULL;\n}\n\nvoid* ZPPTRS(void)\n{\n    if (verbose) puts(\"STUB: ZPPTRS called\");\n    return NULL;\n}\n\nvoid* ZPPTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZPPTRS_ called\");\n    return NULL;\n}\n\nvoid* ZPSTF2(void)\n{\n    if (verbose) puts(\"STUB: ZPSTF2 called\");\n    return NULL;\n}\n\nvoid* ZPSTF2_(void)\n{\n    if (verbose) puts(\"STUB: ZPSTF2_ called\");\n    return NULL;\n}\n\nvoid* ZPSTRF(void)\n{\n    if (verbose) puts(\"STUB: ZPSTRF called\");\n    return NULL;\n}\n\nvoid* ZPSTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZPSTRF_ called\");\n    return NULL;\n}\n\nvoid* ZPTCON(void)\n{\n    if (verbose) puts(\"STUB: ZPTCON called\");\n    return NULL;\n}\n\nvoid* ZPTCON_(void)\n{\n    if (verbose) puts(\"STUB: ZPTCON_ called\");\n    return NULL;\n}\n\nvoid* ZPTEQR(void)\n{\n    if (verbose) puts(\"STUB: ZPTEQR called\");\n    return NULL;\n}\n\nvoid* ZPTEQR_(void)\n{\n    if (verbose) puts(\"STUB: ZPTEQR_ called\");\n    return NULL;\n}\n\nvoid* ZPTRFS(void)\n{\n    if (verbose) puts(\"STUB: ZPTRFS called\");\n    return NULL;\n}\n\nvoid* ZPTRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZPTRFS_ called\");\n    return NULL;\n}\n\nvoid* ZPTSV(void)\n{\n    if (verbose) puts(\"STUB: ZPTSV called\");\n    return NULL;\n}\n\nvoid* ZPTSVX(void)\n{\n    if (verbose) puts(\"STUB: ZPTSVX called\");\n    return NULL;\n}\n\nvoid* ZPTSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZPTSVX_ called\");\n    return NULL;\n}\n\nvoid* ZPTSV_(void)\n{\n    if (verbose) puts(\"STUB: ZPTSV_ called\");\n    return NULL;\n}\n\nvoid* ZPTTRF(void)\n{\n    if (verbose) puts(\"STUB: ZPTTRF called\");\n    return NULL;\n}\n\nvoid* ZPTTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZPTTRF_ called\");\n    return NULL;\n}\n\nvoid* ZPTTRS(void)\n{\n    if (verbose) puts(\"STUB: ZPTTRS called\");\n    return NULL;\n}\n\nvoid* ZPTTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZPTTRS_ called\");\n    return NULL;\n}\n\nvoid* ZPTTS2(void)\n{\n    if (verbose) puts(\"STUB: ZPTTS2 called\");\n    return NULL;\n}\n\nvoid* ZPTTS2_(void)\n{\n    if (verbose) puts(\"STUB: ZPTTS2_ called\");\n    return NULL;\n}\n\nvoid* ZROT(void)\n{\n    if (verbose) puts(\"STUB: ZROT called\");\n    return NULL;\n}\n\nvoid* ZROT_(void)\n{\n    if (verbose) puts(\"STUB: ZROT_ called\");\n    return NULL;\n}\n\nvoid* ZSPCON(void)\n{\n    if (verbose) puts(\"STUB: ZSPCON called\");\n    return NULL;\n}\n\nvoid* ZSPCON_(void)\n{\n    if (verbose) puts(\"STUB: ZSPCON_ called\");\n    return NULL;\n}\n\nvoid* ZSPMV(void)\n{\n    if (verbose) puts(\"STUB: ZSPMV called\");\n    return NULL;\n}\n\nvoid* ZSPMV_(void)\n{\n    if (verbose) puts(\"STUB: ZSPMV_ called\");\n    return NULL;\n}\n\nvoid* ZSPR(void)\n{\n    if (verbose) puts(\"STUB: ZSPR called\");\n    return NULL;\n}\n\nvoid* ZSPRFS(void)\n{\n    if (verbose) puts(\"STUB: ZSPRFS called\");\n    return NULL;\n}\n\nvoid* ZSPRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZSPRFS_ called\");\n    return NULL;\n}\n\nvoid* ZSPR_(void)\n{\n    if (verbose) puts(\"STUB: ZSPR_ called\");\n    return NULL;\n}\n\nvoid* ZSPSV(void)\n{\n    if (verbose) puts(\"STUB: ZSPSV called\");\n    return NULL;\n}\n\nvoid* ZSPSVX(void)\n{\n    if (verbose) puts(\"STUB: ZSPSVX called\");\n    return NULL;\n}\n\nvoid* ZSPSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZSPSVX_ called\");\n    return NULL;\n}\n\nvoid* ZSPSV_(void)\n{\n    if (verbose) puts(\"STUB: ZSPSV_ called\");\n    return NULL;\n}\n\nvoid* ZSPTRF(void)\n{\n    if (verbose) puts(\"STUB: ZSPTRF called\");\n    return NULL;\n}\n\nvoid* ZSPTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZSPTRF_ called\");\n    return NULL;\n}\n\nvoid* ZSPTRI(void)\n{\n    if (verbose) puts(\"STUB: ZSPTRI called\");\n    return NULL;\n}\n\nvoid* ZSPTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZSPTRI_ called\");\n    return NULL;\n}\n\nvoid* ZSPTRS(void)\n{\n    if (verbose) puts(\"STUB: ZSPTRS called\");\n    return NULL;\n}\n\nvoid* ZSPTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZSPTRS_ called\");\n    return NULL;\n}\n\nvoid* ZSTEDC(void)\n{\n    if (verbose) puts(\"STUB: ZSTEDC called\");\n    return NULL;\n}\n\nvoid* ZSTEDC_(void)\n{\n    if (verbose) puts(\"STUB: ZSTEDC_ called\");\n    return NULL;\n}\n\nvoid* ZSTEGR(void)\n{\n    if (verbose) puts(\"STUB: ZSTEGR called\");\n    return NULL;\n}\n\nvoid* ZSTEGR_(void)\n{\n    if (verbose) puts(\"STUB: ZSTEGR_ called\");\n    return NULL;\n}\n\nvoid* ZSTEIN(void)\n{\n    if (verbose) puts(\"STUB: ZSTEIN called\");\n    return NULL;\n}\n\nvoid* ZSTEIN_(void)\n{\n    if (verbose) puts(\"STUB: ZSTEIN_ called\");\n    return NULL;\n}\n\nvoid* ZSTEMR(void)\n{\n    if (verbose) puts(\"STUB: ZSTEMR called\");\n    return NULL;\n}\n\nvoid* ZSTEMR_(void)\n{\n    if (verbose) puts(\"STUB: ZSTEMR_ called\");\n    return NULL;\n}\n\nvoid* ZSTEQR(void)\n{\n    if (verbose) puts(\"STUB: ZSTEQR called\");\n    return NULL;\n}\n\nvoid* ZSTEQR_(void)\n{\n    if (verbose) puts(\"STUB: ZSTEQR_ called\");\n    return NULL;\n}\n\nvoid* ZSYCON(void)\n{\n    if (verbose) puts(\"STUB: ZSYCON called\");\n    return NULL;\n}\n\nvoid* ZSYCON_(void)\n{\n    if (verbose) puts(\"STUB: ZSYCON_ called\");\n    return NULL;\n}\n\nvoid* ZSYEQUB(void)\n{\n    if (verbose) puts(\"STUB: ZSYEQUB called\");\n    return NULL;\n}\n\nvoid* ZSYEQUB_(void)\n{\n    if (verbose) puts(\"STUB: ZSYEQUB_ called\");\n    return NULL;\n}\n\nvoid* ZSYMV(void)\n{\n    if (verbose) puts(\"STUB: ZSYMV called\");\n    return NULL;\n}\n\nvoid* ZSYMV_(void)\n{\n    if (verbose) puts(\"STUB: ZSYMV_ called\");\n    return NULL;\n}\n\nvoid* ZSYR(void)\n{\n    if (verbose) puts(\"STUB: ZSYR called\");\n    return NULL;\n}\n\nvoid* ZSYRFS(void)\n{\n    if (verbose) puts(\"STUB: ZSYRFS called\");\n    return NULL;\n}\n\nvoid* ZSYRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZSYRFS_ called\");\n    return NULL;\n}\n\nvoid* ZSYR_(void)\n{\n    if (verbose) puts(\"STUB: ZSYR_ called\");\n    return NULL;\n}\n\nvoid* ZSYSV(void)\n{\n    if (verbose) puts(\"STUB: ZSYSV called\");\n    return NULL;\n}\n\nvoid* ZSYSVX(void)\n{\n    if (verbose) puts(\"STUB: ZSYSVX called\");\n    return NULL;\n}\n\nvoid* ZSYSVX_(void)\n{\n    if (verbose) puts(\"STUB: ZSYSVX_ called\");\n    return NULL;\n}\n\nvoid* ZSYSV_(void)\n{\n    if (verbose) puts(\"STUB: ZSYSV_ called\");\n    return NULL;\n}\n\nvoid* ZSYTF2(void)\n{\n    if (verbose) puts(\"STUB: ZSYTF2 called\");\n    return NULL;\n}\n\nvoid* ZSYTF2_(void)\n{\n    if (verbose) puts(\"STUB: ZSYTF2_ called\");\n    return NULL;\n}\n\nvoid* ZSYTRF(void)\n{\n    if (verbose) puts(\"STUB: ZSYTRF called\");\n    return NULL;\n}\n\nvoid* ZSYTRF_(void)\n{\n    if (verbose) puts(\"STUB: ZSYTRF_ called\");\n    return NULL;\n}\n\nvoid* ZSYTRI(void)\n{\n    if (verbose) puts(\"STUB: ZSYTRI called\");\n    return NULL;\n}\n\nvoid* ZSYTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZSYTRI_ called\");\n    return NULL;\n}\n\nvoid* ZSYTRS(void)\n{\n    if (verbose) puts(\"STUB: ZSYTRS called\");\n    return NULL;\n}\n\nvoid* ZSYTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZSYTRS_ called\");\n    return NULL;\n}\n\nvoid* ZTBCON(void)\n{\n    if (verbose) puts(\"STUB: ZTBCON called\");\n    return NULL;\n}\n\nvoid* ZTBCON_(void)\n{\n    if (verbose) puts(\"STUB: ZTBCON_ called\");\n    return NULL;\n}\n\nvoid* ZTBRFS(void)\n{\n    if (verbose) puts(\"STUB: ZTBRFS called\");\n    return NULL;\n}\n\nvoid* ZTBRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZTBRFS_ called\");\n    return NULL;\n}\n\nvoid* ZTBTRS(void)\n{\n    if (verbose) puts(\"STUB: ZTBTRS called\");\n    return NULL;\n}\n\nvoid* ZTBTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZTBTRS_ called\");\n    return NULL;\n}\n\nvoid* ZTFSM(void)\n{\n    if (verbose) puts(\"STUB: ZTFSM called\");\n    return NULL;\n}\n\nvoid* ZTFSM_(void)\n{\n    if (verbose) puts(\"STUB: ZTFSM_ called\");\n    return NULL;\n}\n\nvoid* ZTFTRI(void)\n{\n    if (verbose) puts(\"STUB: ZTFTRI called\");\n    return NULL;\n}\n\nvoid* ZTFTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZTFTRI_ called\");\n    return NULL;\n}\n\nvoid* ZTFTTP(void)\n{\n    if (verbose) puts(\"STUB: ZTFTTP called\");\n    return NULL;\n}\n\nvoid* ZTFTTP_(void)\n{\n    if (verbose) puts(\"STUB: ZTFTTP_ called\");\n    return NULL;\n}\n\nvoid* ZTFTTR(void)\n{\n    if (verbose) puts(\"STUB: ZTFTTR called\");\n    return NULL;\n}\n\nvoid* ZTFTTR_(void)\n{\n    if (verbose) puts(\"STUB: ZTFTTR_ called\");\n    return NULL;\n}\n\nvoid* ZTGEVC(void)\n{\n    if (verbose) puts(\"STUB: ZTGEVC called\");\n    return NULL;\n}\n\nvoid* ZTGEVC_(void)\n{\n    if (verbose) puts(\"STUB: ZTGEVC_ called\");\n    return NULL;\n}\n\nvoid* ZTGEX2(void)\n{\n    if (verbose) puts(\"STUB: ZTGEX2 called\");\n    return NULL;\n}\n\nvoid* ZTGEX2_(void)\n{\n    if (verbose) puts(\"STUB: ZTGEX2_ called\");\n    return NULL;\n}\n\nvoid* ZTGEXC(void)\n{\n    if (verbose) puts(\"STUB: ZTGEXC called\");\n    return NULL;\n}\n\nvoid* ZTGEXC_(void)\n{\n    if (verbose) puts(\"STUB: ZTGEXC_ called\");\n    return NULL;\n}\n\nvoid* ZTGSEN(void)\n{\n    if (verbose) puts(\"STUB: ZTGSEN called\");\n    return NULL;\n}\n\nvoid* ZTGSEN_(void)\n{\n    if (verbose) puts(\"STUB: ZTGSEN_ called\");\n    return NULL;\n}\n\nvoid* ZTGSJA(void)\n{\n    if (verbose) puts(\"STUB: ZTGSJA called\");\n    return NULL;\n}\n\nvoid* ZTGSJA_(void)\n{\n    if (verbose) puts(\"STUB: ZTGSJA_ called\");\n    return NULL;\n}\n\nvoid* ZTGSNA(void)\n{\n    if (verbose) puts(\"STUB: ZTGSNA called\");\n    return NULL;\n}\n\nvoid* ZTGSNA_(void)\n{\n    if (verbose) puts(\"STUB: ZTGSNA_ called\");\n    return NULL;\n}\n\nvoid* ZTGSY2(void)\n{\n    if (verbose) puts(\"STUB: ZTGSY2 called\");\n    return NULL;\n}\n\nvoid* ZTGSY2_(void)\n{\n    if (verbose) puts(\"STUB: ZTGSY2_ called\");\n    return NULL;\n}\n\nvoid* ZTGSYL(void)\n{\n    if (verbose) puts(\"STUB: ZTGSYL called\");\n    return NULL;\n}\n\nvoid* ZTGSYL_(void)\n{\n    if (verbose) puts(\"STUB: ZTGSYL_ called\");\n    return NULL;\n}\n\nvoid* ZTPCON(void)\n{\n    if (verbose) puts(\"STUB: ZTPCON called\");\n    return NULL;\n}\n\nvoid* ZTPCON_(void)\n{\n    if (verbose) puts(\"STUB: ZTPCON_ called\");\n    return NULL;\n}\n\nvoid* ZTPRFS(void)\n{\n    if (verbose) puts(\"STUB: ZTPRFS called\");\n    return NULL;\n}\n\nvoid* ZTPRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZTPRFS_ called\");\n    return NULL;\n}\n\nvoid* ZTPTRI(void)\n{\n    if (verbose) puts(\"STUB: ZTPTRI called\");\n    return NULL;\n}\n\nvoid* ZTPTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZTPTRI_ called\");\n    return NULL;\n}\n\nvoid* ZTPTRS(void)\n{\n    if (verbose) puts(\"STUB: ZTPTRS called\");\n    return NULL;\n}\n\nvoid* ZTPTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZTPTRS_ called\");\n    return NULL;\n}\n\nvoid* ZTPTTF(void)\n{\n    if (verbose) puts(\"STUB: ZTPTTF called\");\n    return NULL;\n}\n\nvoid* ZTPTTF_(void)\n{\n    if (verbose) puts(\"STUB: ZTPTTF_ called\");\n    return NULL;\n}\n\nvoid* ZTPTTR(void)\n{\n    if (verbose) puts(\"STUB: ZTPTTR called\");\n    return NULL;\n}\n\nvoid* ZTPTTR_(void)\n{\n    if (verbose) puts(\"STUB: ZTPTTR_ called\");\n    return NULL;\n}\n\nvoid* ZTRCON(void)\n{\n    if (verbose) puts(\"STUB: ZTRCON called\");\n    return NULL;\n}\n\nvoid* ZTRCON_(void)\n{\n    if (verbose) puts(\"STUB: ZTRCON_ called\");\n    return NULL;\n}\n\nvoid* ZTREVC(void)\n{\n    if (verbose) puts(\"STUB: ZTREVC called\");\n    return NULL;\n}\n\nvoid* ZTREVC_(void)\n{\n    if (verbose) puts(\"STUB: ZTREVC_ called\");\n    return NULL;\n}\n\nvoid* ZTREXC(void)\n{\n    if (verbose) puts(\"STUB: ZTREXC called\");\n    return NULL;\n}\n\nvoid* ZTREXC_(void)\n{\n    if (verbose) puts(\"STUB: ZTREXC_ called\");\n    return NULL;\n}\n\nvoid* ZTRRFS(void)\n{\n    if (verbose) puts(\"STUB: ZTRRFS called\");\n    return NULL;\n}\n\nvoid* ZTRRFS_(void)\n{\n    if (verbose) puts(\"STUB: ZTRRFS_ called\");\n    return NULL;\n}\n\nvoid* ZTRSEN(void)\n{\n    if (verbose) puts(\"STUB: ZTRSEN called\");\n    return NULL;\n}\n\nvoid* ZTRSEN_(void)\n{\n    if (verbose) puts(\"STUB: ZTRSEN_ called\");\n    return NULL;\n}\n\nvoid* ZTRSNA(void)\n{\n    if (verbose) puts(\"STUB: ZTRSNA called\");\n    return NULL;\n}\n\nvoid* ZTRSNA_(void)\n{\n    if (verbose) puts(\"STUB: ZTRSNA_ called\");\n    return NULL;\n}\n\nvoid* ZTRSYL(void)\n{\n    if (verbose) puts(\"STUB: ZTRSYL called\");\n    return NULL;\n}\n\nvoid* ZTRSYL_(void)\n{\n    if (verbose) puts(\"STUB: ZTRSYL_ called\");\n    return NULL;\n}\n\nvoid* ZTRTI2(void)\n{\n    if (verbose) puts(\"STUB: ZTRTI2 called\");\n    return NULL;\n}\n\nvoid* ZTRTI2_(void)\n{\n    if (verbose) puts(\"STUB: ZTRTI2_ called\");\n    return NULL;\n}\n\nvoid* ZTRTRI(void)\n{\n    if (verbose) puts(\"STUB: ZTRTRI called\");\n    return NULL;\n}\n\nvoid* ZTRTRI_(void)\n{\n    if (verbose) puts(\"STUB: ZTRTRI_ called\");\n    return NULL;\n}\n\nvoid* ZTRTRS(void)\n{\n    if (verbose) puts(\"STUB: ZTRTRS called\");\n    return NULL;\n}\n\nvoid* ZTRTRS_(void)\n{\n    if (verbose) puts(\"STUB: ZTRTRS_ called\");\n    return NULL;\n}\n\nvoid* ZTRTTF(void)\n{\n    if (verbose) puts(\"STUB: ZTRTTF called\");\n    return NULL;\n}\n\nvoid* ZTRTTF_(void)\n{\n    if (verbose) puts(\"STUB: ZTRTTF_ called\");\n    return NULL;\n}\n\nvoid* ZTRTTP(void)\n{\n    if (verbose) puts(\"STUB: ZTRTTP called\");\n    return NULL;\n}\n\nvoid* ZTRTTP_(void)\n{\n    if (verbose) puts(\"STUB: ZTRTTP_ called\");\n    return NULL;\n}\n\nvoid* ZTZRQF(void)\n{\n    if (verbose) puts(\"STUB: ZTZRQF called\");\n    return NULL;\n}\n\nvoid* ZTZRQF_(void)\n{\n    if (verbose) puts(\"STUB: ZTZRQF_ called\");\n    return NULL;\n}\n\nvoid* ZTZRZF(void)\n{\n    if (verbose) puts(\"STUB: ZTZRZF called\");\n    return NULL;\n}\n\nvoid* ZTZRZF_(void)\n{\n    if (verbose) puts(\"STUB: ZTZRZF_ called\");\n    return NULL;\n}\n\nvoid* ZUNG2L(void)\n{\n    if (verbose) puts(\"STUB: ZUNG2L called\");\n    return NULL;\n}\n\nvoid* ZUNG2L_(void)\n{\n    if (verbose) puts(\"STUB: ZUNG2L_ called\");\n    return NULL;\n}\n\nvoid* ZUNG2R(void)\n{\n    if (verbose) puts(\"STUB: ZUNG2R called\");\n    return NULL;\n}\n\nvoid* ZUNG2R_(void)\n{\n    if (verbose) puts(\"STUB: ZUNG2R_ called\");\n    return NULL;\n}\n\nvoid* ZUNGBR(void)\n{\n    if (verbose) puts(\"STUB: ZUNGBR called\");\n    return NULL;\n}\n\nvoid* ZUNGBR_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGBR_ called\");\n    return NULL;\n}\n\nvoid* ZUNGHR(void)\n{\n    if (verbose) puts(\"STUB: ZUNGHR called\");\n    return NULL;\n}\n\nvoid* ZUNGHR_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGHR_ called\");\n    return NULL;\n}\n\nvoid* ZUNGL2(void)\n{\n    if (verbose) puts(\"STUB: ZUNGL2 called\");\n    return NULL;\n}\n\nvoid* ZUNGL2_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGL2_ called\");\n    return NULL;\n}\n\nvoid* ZUNGLQ(void)\n{\n    if (verbose) puts(\"STUB: ZUNGLQ called\");\n    return NULL;\n}\n\nvoid* ZUNGLQ_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGLQ_ called\");\n    return NULL;\n}\n\nvoid* ZUNGQL(void)\n{\n    if (verbose) puts(\"STUB: ZUNGQL called\");\n    return NULL;\n}\n\nvoid* ZUNGQL_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGQL_ called\");\n    return NULL;\n}\n\nvoid* ZUNGQR(void)\n{\n    if (verbose) puts(\"STUB: ZUNGQR called\");\n    return NULL;\n}\n\nvoid* ZUNGQR_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGQR_ called\");\n    return NULL;\n}\n\nvoid* ZUNGR2(void)\n{\n    if (verbose) puts(\"STUB: ZUNGR2 called\");\n    return NULL;\n}\n\nvoid* ZUNGR2_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGR2_ called\");\n    return NULL;\n}\n\nvoid* ZUNGRQ(void)\n{\n    if (verbose) puts(\"STUB: ZUNGRQ called\");\n    return NULL;\n}\n\nvoid* ZUNGRQ_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGRQ_ called\");\n    return NULL;\n}\n\nvoid* ZUNGTR(void)\n{\n    if (verbose) puts(\"STUB: ZUNGTR called\");\n    return NULL;\n}\n\nvoid* ZUNGTR_(void)\n{\n    if (verbose) puts(\"STUB: ZUNGTR_ called\");\n    return NULL;\n}\n\nvoid* ZUNM2L(void)\n{\n    if (verbose) puts(\"STUB: ZUNM2L called\");\n    return NULL;\n}\n\nvoid* ZUNM2L_(void)\n{\n    if (verbose) puts(\"STUB: ZUNM2L_ called\");\n    return NULL;\n}\n\nvoid* ZUNM2R(void)\n{\n    if (verbose) puts(\"STUB: ZUNM2R called\");\n    return NULL;\n}\n\nvoid* ZUNM2R_(void)\n{\n    if (verbose) puts(\"STUB: ZUNM2R_ called\");\n    return NULL;\n}\n\nvoid* ZUNMBR(void)\n{\n    if (verbose) puts(\"STUB: ZUNMBR called\");\n    return NULL;\n}\n\nvoid* ZUNMBR_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMBR_ called\");\n    return NULL;\n}\n\nvoid* ZUNMHR(void)\n{\n    if (verbose) puts(\"STUB: ZUNMHR called\");\n    return NULL;\n}\n\nvoid* ZUNMHR_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMHR_ called\");\n    return NULL;\n}\n\nvoid* ZUNML2(void)\n{\n    if (verbose) puts(\"STUB: ZUNML2 called\");\n    return NULL;\n}\n\nvoid* ZUNML2_(void)\n{\n    if (verbose) puts(\"STUB: ZUNML2_ called\");\n    return NULL;\n}\n\nvoid* ZUNMLQ(void)\n{\n    if (verbose) puts(\"STUB: ZUNMLQ called\");\n    return NULL;\n}\n\nvoid* ZUNMLQ_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMLQ_ called\");\n    return NULL;\n}\n\nvoid* ZUNMQL(void)\n{\n    if (verbose) puts(\"STUB: ZUNMQL called\");\n    return NULL;\n}\n\nvoid* ZUNMQL_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMQL_ called\");\n    return NULL;\n}\n\nvoid* ZUNMQR(void)\n{\n    if (verbose) puts(\"STUB: ZUNMQR called\");\n    return NULL;\n}\n\nvoid* ZUNMQR_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMQR_ called\");\n    return NULL;\n}\n\nvoid* ZUNMR2(void)\n{\n    if (verbose) puts(\"STUB: ZUNMR2 called\");\n    return NULL;\n}\n\nvoid* ZUNMR2_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMR2_ called\");\n    return NULL;\n}\n\nvoid* ZUNMR3(void)\n{\n    if (verbose) puts(\"STUB: ZUNMR3 called\");\n    return NULL;\n}\n\nvoid* ZUNMR3_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMR3_ called\");\n    return NULL;\n}\n\nvoid* ZUNMRQ(void)\n{\n    if (verbose) puts(\"STUB: ZUNMRQ called\");\n    return NULL;\n}\n\nvoid* ZUNMRQ_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMRQ_ called\");\n    return NULL;\n}\n\nvoid* ZUNMRZ(void)\n{\n    if (verbose) puts(\"STUB: ZUNMRZ called\");\n    return NULL;\n}\n\nvoid* ZUNMRZ_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMRZ_ called\");\n    return NULL;\n}\n\nvoid* ZUNMTR(void)\n{\n    if (verbose) puts(\"STUB: ZUNMTR called\");\n    return NULL;\n}\n\nvoid* ZUNMTR_(void)\n{\n    if (verbose) puts(\"STUB: ZUNMTR_ called\");\n    return NULL;\n}\n\nvoid* ZUPGTR(void)\n{\n    if (verbose) puts(\"STUB: ZUPGTR called\");\n    return NULL;\n}\n\nvoid* ZUPGTR_(void)\n{\n    if (verbose) puts(\"STUB: ZUPGTR_ called\");\n    return NULL;\n}\n\nvoid* ZUPMTR(void)\n{\n    if (verbose) puts(\"STUB: ZUPMTR called\");\n    return NULL;\n}\n\nvoid* ZUPMTR_(void)\n{\n    if (verbose) puts(\"STUB: ZUPMTR_ called\");\n    return NULL;\n}\n\nvoid* cbdsqr(void)\n{\n    if (verbose) puts(\"STUB: cbdsqr called\");\n    return NULL;\n}\n\nvoid* cbdsqr_(void)\n{\n    if (verbose) puts(\"STUB: cbdsqr_ called\");\n    return NULL;\n}\n\nvoid* cgbbrd(void)\n{\n    if (verbose) puts(\"STUB: cgbbrd called\");\n    return NULL;\n}\n\nvoid* cgbbrd_(void)\n{\n    if (verbose) puts(\"STUB: cgbbrd_ called\");\n    return NULL;\n}\n\nvoid* cgbcon(void)\n{\n    if (verbose) puts(\"STUB: cgbcon called\");\n    return NULL;\n}\n\nvoid* cgbcon_(void)\n{\n    if (verbose) puts(\"STUB: cgbcon_ called\");\n    return NULL;\n}\n\nvoid* cgbequ(void)\n{\n    if (verbose) puts(\"STUB: cgbequ called\");\n    return NULL;\n}\n\nvoid* cgbequ_(void)\n{\n    if (verbose) puts(\"STUB: cgbequ_ called\");\n    return NULL;\n}\n\nvoid* cgbequb(void)\n{\n    if (verbose) puts(\"STUB: cgbequb called\");\n    return NULL;\n}\n\nvoid* cgbequb_(void)\n{\n    if (verbose) puts(\"STUB: cgbequb_ called\");\n    return NULL;\n}\n\nvoid* cgbrfs(void)\n{\n    if (verbose) puts(\"STUB: cgbrfs called\");\n    return NULL;\n}\n\nvoid* cgbrfs_(void)\n{\n    if (verbose) puts(\"STUB: cgbrfs_ called\");\n    return NULL;\n}\n\nvoid* cgbsv(void)\n{\n    if (verbose) puts(\"STUB: cgbsv called\");\n    return NULL;\n}\n\nvoid* cgbsv_(void)\n{\n    if (verbose) puts(\"STUB: cgbsv_ called\");\n    return NULL;\n}\n\nvoid* cgbsvx(void)\n{\n    if (verbose) puts(\"STUB: cgbsvx called\");\n    return NULL;\n}\n\nvoid* cgbsvx_(void)\n{\n    if (verbose) puts(\"STUB: cgbsvx_ called\");\n    return NULL;\n}\n\nvoid* cgbtf2(void)\n{\n    if (verbose) puts(\"STUB: cgbtf2 called\");\n    return NULL;\n}\n\nvoid* cgbtf2_(void)\n{\n    if (verbose) puts(\"STUB: cgbtf2_ called\");\n    return NULL;\n}\n\nvoid* cgbtrf(void)\n{\n    if (verbose) puts(\"STUB: cgbtrf called\");\n    return NULL;\n}\n\nvoid* cgbtrf_(void)\n{\n    if (verbose) puts(\"STUB: cgbtrf_ called\");\n    return NULL;\n}\n\nvoid* cgbtrs(void)\n{\n    if (verbose) puts(\"STUB: cgbtrs called\");\n    return NULL;\n}\n\nvoid* cgbtrs_(void)\n{\n    if (verbose) puts(\"STUB: cgbtrs_ called\");\n    return NULL;\n}\n\nvoid* cgebak(void)\n{\n    if (verbose) puts(\"STUB: cgebak called\");\n    return NULL;\n}\n\nvoid* cgebak_(void)\n{\n    if (verbose) puts(\"STUB: cgebak_ called\");\n    return NULL;\n}\n\nvoid* cgebal(void)\n{\n    if (verbose) puts(\"STUB: cgebal called\");\n    return NULL;\n}\n\nvoid* cgebal_(void)\n{\n    if (verbose) puts(\"STUB: cgebal_ called\");\n    return NULL;\n}\n\nvoid* cgebd2(void)\n{\n    if (verbose) puts(\"STUB: cgebd2 called\");\n    return NULL;\n}\n\nvoid* cgebd2_(void)\n{\n    if (verbose) puts(\"STUB: cgebd2_ called\");\n    return NULL;\n}\n\nvoid* cgebrd(void)\n{\n    if (verbose) puts(\"STUB: cgebrd called\");\n    return NULL;\n}\n\nvoid* cgebrd_(void)\n{\n    if (verbose) puts(\"STUB: cgebrd_ called\");\n    return NULL;\n}\n\nvoid* cgecon(void)\n{\n    if (verbose) puts(\"STUB: cgecon called\");\n    return NULL;\n}\n\nvoid* cgecon_(void)\n{\n    if (verbose) puts(\"STUB: cgecon_ called\");\n    return NULL;\n}\n\nvoid* cgeequ(void)\n{\n    if (verbose) puts(\"STUB: cgeequ called\");\n    return NULL;\n}\n\nvoid* cgeequ_(void)\n{\n    if (verbose) puts(\"STUB: cgeequ_ called\");\n    return NULL;\n}\n\nvoid* cgeequb(void)\n{\n    if (verbose) puts(\"STUB: cgeequb called\");\n    return NULL;\n}\n\nvoid* cgeequb_(void)\n{\n    if (verbose) puts(\"STUB: cgeequb_ called\");\n    return NULL;\n}\n\nvoid* cgees(void)\n{\n    if (verbose) puts(\"STUB: cgees called\");\n    return NULL;\n}\n\nvoid* cgees_(void)\n{\n    if (verbose) puts(\"STUB: cgees_ called\");\n    return NULL;\n}\n\nvoid* cgeesx(void)\n{\n    if (verbose) puts(\"STUB: cgeesx called\");\n    return NULL;\n}\n\nvoid* cgeesx_(void)\n{\n    if (verbose) puts(\"STUB: cgeesx_ called\");\n    return NULL;\n}\n\nvoid* cgeev(void)\n{\n    if (verbose) puts(\"STUB: cgeev called\");\n    return NULL;\n}\n\nvoid* cgeev_(void)\n{\n    if (verbose) puts(\"STUB: cgeev_ called\");\n    return NULL;\n}\n\nvoid* cgeevx(void)\n{\n    if (verbose) puts(\"STUB: cgeevx called\");\n    return NULL;\n}\n\nvoid* cgeevx_(void)\n{\n    if (verbose) puts(\"STUB: cgeevx_ called\");\n    return NULL;\n}\n\nvoid* cgegs(void)\n{\n    if (verbose) puts(\"STUB: cgegs called\");\n    return NULL;\n}\n\nvoid* cgegs_(void)\n{\n    if (verbose) puts(\"STUB: cgegs_ called\");\n    return NULL;\n}\n\nvoid* cgegv(void)\n{\n    if (verbose) puts(\"STUB: cgegv called\");\n    return NULL;\n}\n\nvoid* cgegv_(void)\n{\n    if (verbose) puts(\"STUB: cgegv_ called\");\n    return NULL;\n}\n\nvoid* cgehd2(void)\n{\n    if (verbose) puts(\"STUB: cgehd2 called\");\n    return NULL;\n}\n\nvoid* cgehd2_(void)\n{\n    if (verbose) puts(\"STUB: cgehd2_ called\");\n    return NULL;\n}\n\nvoid* cgehrd(void)\n{\n    if (verbose) puts(\"STUB: cgehrd called\");\n    return NULL;\n}\n\nvoid* cgehrd_(void)\n{\n    if (verbose) puts(\"STUB: cgehrd_ called\");\n    return NULL;\n}\n\nvoid* cgelq2(void)\n{\n    if (verbose) puts(\"STUB: cgelq2 called\");\n    return NULL;\n}\n\nvoid* cgelq2_(void)\n{\n    if (verbose) puts(\"STUB: cgelq2_ called\");\n    return NULL;\n}\n\nvoid* cgelqf(void)\n{\n    if (verbose) puts(\"STUB: cgelqf called\");\n    return NULL;\n}\n\nvoid* cgelqf_(void)\n{\n    if (verbose) puts(\"STUB: cgelqf_ called\");\n    return NULL;\n}\n\nvoid* cgels(void)\n{\n    if (verbose) puts(\"STUB: cgels called\");\n    return NULL;\n}\n\nvoid* cgels_(void)\n{\n    if (verbose) puts(\"STUB: cgels_ called\");\n    return NULL;\n}\n\nvoid* cgelsd(void)\n{\n    if (verbose) puts(\"STUB: cgelsd called\");\n    return NULL;\n}\n\nvoid* cgelsd_(void)\n{\n    if (verbose) puts(\"STUB: cgelsd_ called\");\n    return NULL;\n}\n\nvoid* cgelss(void)\n{\n    if (verbose) puts(\"STUB: cgelss called\");\n    return NULL;\n}\n\nvoid* cgelss_(void)\n{\n    if (verbose) puts(\"STUB: cgelss_ called\");\n    return NULL;\n}\n\nvoid* cgelsx(void)\n{\n    if (verbose) puts(\"STUB: cgelsx called\");\n    return NULL;\n}\n\nvoid* cgelsx_(void)\n{\n    if (verbose) puts(\"STUB: cgelsx_ called\");\n    return NULL;\n}\n\nvoid* cgelsy(void)\n{\n    if (verbose) puts(\"STUB: cgelsy called\");\n    return NULL;\n}\n\nvoid* cgelsy_(void)\n{\n    if (verbose) puts(\"STUB: cgelsy_ called\");\n    return NULL;\n}\n\nvoid* cgeql2(void)\n{\n    if (verbose) puts(\"STUB: cgeql2 called\");\n    return NULL;\n}\n\nvoid* cgeql2_(void)\n{\n    if (verbose) puts(\"STUB: cgeql2_ called\");\n    return NULL;\n}\n\nvoid* cgeqlf(void)\n{\n    if (verbose) puts(\"STUB: cgeqlf called\");\n    return NULL;\n}\n\nvoid* cgeqlf_(void)\n{\n    if (verbose) puts(\"STUB: cgeqlf_ called\");\n    return NULL;\n}\n\nvoid* cgeqp3(void)\n{\n    if (verbose) puts(\"STUB: cgeqp3 called\");\n    return NULL;\n}\n\nvoid* cgeqp3_(void)\n{\n    if (verbose) puts(\"STUB: cgeqp3_ called\");\n    return NULL;\n}\n\nvoid* cgeqpf(void)\n{\n    if (verbose) puts(\"STUB: cgeqpf called\");\n    return NULL;\n}\n\nvoid* cgeqpf_(void)\n{\n    if (verbose) puts(\"STUB: cgeqpf_ called\");\n    return NULL;\n}\n\nvoid* cgeqr2(void)\n{\n    if (verbose) puts(\"STUB: cgeqr2 called\");\n    return NULL;\n}\n\nvoid* cgeqr2_(void)\n{\n    if (verbose) puts(\"STUB: cgeqr2_ called\");\n    return NULL;\n}\n\nvoid* cgeqrf(void)\n{\n    if (verbose) puts(\"STUB: cgeqrf called\");\n    return NULL;\n}\n\nvoid* cgeqrf_(void)\n{\n    if (verbose) puts(\"STUB: cgeqrf_ called\");\n    return NULL;\n}\n\nvoid* cgerfs(void)\n{\n    if (verbose) puts(\"STUB: cgerfs called\");\n    return NULL;\n}\n\nvoid* cgerfs_(void)\n{\n    if (verbose) puts(\"STUB: cgerfs_ called\");\n    return NULL;\n}\n\nvoid* cgerq2(void)\n{\n    if (verbose) puts(\"STUB: cgerq2 called\");\n    return NULL;\n}\n\nvoid* cgerq2_(void)\n{\n    if (verbose) puts(\"STUB: cgerq2_ called\");\n    return NULL;\n}\n\nvoid* cgerqf(void)\n{\n    if (verbose) puts(\"STUB: cgerqf called\");\n    return NULL;\n}\n\nvoid* cgerqf_(void)\n{\n    if (verbose) puts(\"STUB: cgerqf_ called\");\n    return NULL;\n}\n\nvoid* cgesc2(void)\n{\n    if (verbose) puts(\"STUB: cgesc2 called\");\n    return NULL;\n}\n\nvoid* cgesc2_(void)\n{\n    if (verbose) puts(\"STUB: cgesc2_ called\");\n    return NULL;\n}\n\nvoid* cgesdd(void)\n{\n    if (verbose) puts(\"STUB: cgesdd called\");\n    return NULL;\n}\n\nvoid* cgesdd_(void)\n{\n    if (verbose) puts(\"STUB: cgesdd_ called\");\n    return NULL;\n}\n\nvoid* cgesv(void)\n{\n    if (verbose) puts(\"STUB: cgesv called\");\n    return NULL;\n}\n\nvoid* cgesv_(void)\n{\n    if (verbose) puts(\"STUB: cgesv_ called\");\n    return NULL;\n}\n\nvoid* cgesvd(void)\n{\n    if (verbose) puts(\"STUB: cgesvd called\");\n    return NULL;\n}\n\nvoid* cgesvd_(void)\n{\n    if (verbose) puts(\"STUB: cgesvd_ called\");\n    return NULL;\n}\n\nvoid* cgesvx(void)\n{\n    if (verbose) puts(\"STUB: cgesvx called\");\n    return NULL;\n}\n\nvoid* cgesvx_(void)\n{\n    if (verbose) puts(\"STUB: cgesvx_ called\");\n    return NULL;\n}\n\nvoid* cgetc2(void)\n{\n    if (verbose) puts(\"STUB: cgetc2 called\");\n    return NULL;\n}\n\nvoid* cgetc2_(void)\n{\n    if (verbose) puts(\"STUB: cgetc2_ called\");\n    return NULL;\n}\n\nvoid* cgetf2(void)\n{\n    if (verbose) puts(\"STUB: cgetf2 called\");\n    return NULL;\n}\n\nvoid* cgetf2_(void)\n{\n    if (verbose) puts(\"STUB: cgetf2_ called\");\n    return NULL;\n}\n\nvoid* cgetrf(void)\n{\n    if (verbose) puts(\"STUB: cgetrf called\");\n    return NULL;\n}\n\nvoid* cgetrf_(void)\n{\n    if (verbose) puts(\"STUB: cgetrf_ called\");\n    return NULL;\n}\n\nvoid* cgetri(void)\n{\n    if (verbose) puts(\"STUB: cgetri called\");\n    return NULL;\n}\n\nvoid* cgetri_(void)\n{\n    if (verbose) puts(\"STUB: cgetri_ called\");\n    return NULL;\n}\n\nvoid* cgetrs(void)\n{\n    if (verbose) puts(\"STUB: cgetrs called\");\n    return NULL;\n}\n\nvoid* cgetrs_(void)\n{\n    if (verbose) puts(\"STUB: cgetrs_ called\");\n    return NULL;\n}\n\nvoid* cggbak(void)\n{\n    if (verbose) puts(\"STUB: cggbak called\");\n    return NULL;\n}\n\nvoid* cggbak_(void)\n{\n    if (verbose) puts(\"STUB: cggbak_ called\");\n    return NULL;\n}\n\nvoid* cggbal(void)\n{\n    if (verbose) puts(\"STUB: cggbal called\");\n    return NULL;\n}\n\nvoid* cggbal_(void)\n{\n    if (verbose) puts(\"STUB: cggbal_ called\");\n    return NULL;\n}\n\nvoid* cgges(void)\n{\n    if (verbose) puts(\"STUB: cgges called\");\n    return NULL;\n}\n\nvoid* cgges_(void)\n{\n    if (verbose) puts(\"STUB: cgges_ called\");\n    return NULL;\n}\n\nvoid* cggesx(void)\n{\n    if (verbose) puts(\"STUB: cggesx called\");\n    return NULL;\n}\n\nvoid* cggesx_(void)\n{\n    if (verbose) puts(\"STUB: cggesx_ called\");\n    return NULL;\n}\n\nvoid* cggev(void)\n{\n    if (verbose) puts(\"STUB: cggev called\");\n    return NULL;\n}\n\nvoid* cggev_(void)\n{\n    if (verbose) puts(\"STUB: cggev_ called\");\n    return NULL;\n}\n\nvoid* cggevx(void)\n{\n    if (verbose) puts(\"STUB: cggevx called\");\n    return NULL;\n}\n\nvoid* cggevx_(void)\n{\n    if (verbose) puts(\"STUB: cggevx_ called\");\n    return NULL;\n}\n\nvoid* cggglm(void)\n{\n    if (verbose) puts(\"STUB: cggglm called\");\n    return NULL;\n}\n\nvoid* cggglm_(void)\n{\n    if (verbose) puts(\"STUB: cggglm_ called\");\n    return NULL;\n}\n\nvoid* cgghrd(void)\n{\n    if (verbose) puts(\"STUB: cgghrd called\");\n    return NULL;\n}\n\nvoid* cgghrd_(void)\n{\n    if (verbose) puts(\"STUB: cgghrd_ called\");\n    return NULL;\n}\n\nvoid* cgglse(void)\n{\n    if (verbose) puts(\"STUB: cgglse called\");\n    return NULL;\n}\n\nvoid* cgglse_(void)\n{\n    if (verbose) puts(\"STUB: cgglse_ called\");\n    return NULL;\n}\n\nvoid* cggqrf(void)\n{\n    if (verbose) puts(\"STUB: cggqrf called\");\n    return NULL;\n}\n\nvoid* cggqrf_(void)\n{\n    if (verbose) puts(\"STUB: cggqrf_ called\");\n    return NULL;\n}\n\nvoid* cggrqf(void)\n{\n    if (verbose) puts(\"STUB: cggrqf called\");\n    return NULL;\n}\n\nvoid* cggrqf_(void)\n{\n    if (verbose) puts(\"STUB: cggrqf_ called\");\n    return NULL;\n}\n\nvoid* cggsvd(void)\n{\n    if (verbose) puts(\"STUB: cggsvd called\");\n    return NULL;\n}\n\nvoid* cggsvd_(void)\n{\n    if (verbose) puts(\"STUB: cggsvd_ called\");\n    return NULL;\n}\n\nvoid* cggsvp(void)\n{\n    if (verbose) puts(\"STUB: cggsvp called\");\n    return NULL;\n}\n\nvoid* cggsvp_(void)\n{\n    if (verbose) puts(\"STUB: cggsvp_ called\");\n    return NULL;\n}\n\nvoid* cgtcon(void)\n{\n    if (verbose) puts(\"STUB: cgtcon called\");\n    return NULL;\n}\n\nvoid* cgtcon_(void)\n{\n    if (verbose) puts(\"STUB: cgtcon_ called\");\n    return NULL;\n}\n\nvoid* cgtrfs(void)\n{\n    if (verbose) puts(\"STUB: cgtrfs called\");\n    return NULL;\n}\n\nvoid* cgtrfs_(void)\n{\n    if (verbose) puts(\"STUB: cgtrfs_ called\");\n    return NULL;\n}\n\nvoid* cgtsv(void)\n{\n    if (verbose) puts(\"STUB: cgtsv called\");\n    return NULL;\n}\n\nvoid* cgtsv_(void)\n{\n    if (verbose) puts(\"STUB: cgtsv_ called\");\n    return NULL;\n}\n\nvoid* cgtsvx(void)\n{\n    if (verbose) puts(\"STUB: cgtsvx called\");\n    return NULL;\n}\n\nvoid* cgtsvx_(void)\n{\n    if (verbose) puts(\"STUB: cgtsvx_ called\");\n    return NULL;\n}\n\nvoid* cgttrf(void)\n{\n    if (verbose) puts(\"STUB: cgttrf called\");\n    return NULL;\n}\n\nvoid* cgttrf_(void)\n{\n    if (verbose) puts(\"STUB: cgttrf_ called\");\n    return NULL;\n}\n\nvoid* cgttrs(void)\n{\n    if (verbose) puts(\"STUB: cgttrs called\");\n    return NULL;\n}\n\nvoid* cgttrs_(void)\n{\n    if (verbose) puts(\"STUB: cgttrs_ called\");\n    return NULL;\n}\n\nvoid* cgtts2(void)\n{\n    if (verbose) puts(\"STUB: cgtts2 called\");\n    return NULL;\n}\n\nvoid* cgtts2_(void)\n{\n    if (verbose) puts(\"STUB: cgtts2_ called\");\n    return NULL;\n}\n\nvoid* chbev(void)\n{\n    if (verbose) puts(\"STUB: chbev called\");\n    return NULL;\n}\n\nvoid* chbev_(void)\n{\n    if (verbose) puts(\"STUB: chbev_ called\");\n    return NULL;\n}\n\nvoid* chbevd(void)\n{\n    if (verbose) puts(\"STUB: chbevd called\");\n    return NULL;\n}\n\nvoid* chbevd_(void)\n{\n    if (verbose) puts(\"STUB: chbevd_ called\");\n    return NULL;\n}\n\nvoid* chbevx(void)\n{\n    if (verbose) puts(\"STUB: chbevx called\");\n    return NULL;\n}\n\nvoid* chbevx_(void)\n{\n    if (verbose) puts(\"STUB: chbevx_ called\");\n    return NULL;\n}\n\nvoid* chbgst(void)\n{\n    if (verbose) puts(\"STUB: chbgst called\");\n    return NULL;\n}\n\nvoid* chbgst_(void)\n{\n    if (verbose) puts(\"STUB: chbgst_ called\");\n    return NULL;\n}\n\nvoid* chbgv(void)\n{\n    if (verbose) puts(\"STUB: chbgv called\");\n    return NULL;\n}\n\nvoid* chbgv_(void)\n{\n    if (verbose) puts(\"STUB: chbgv_ called\");\n    return NULL;\n}\n\nvoid* chbgvd(void)\n{\n    if (verbose) puts(\"STUB: chbgvd called\");\n    return NULL;\n}\n\nvoid* chbgvd_(void)\n{\n    if (verbose) puts(\"STUB: chbgvd_ called\");\n    return NULL;\n}\n\nvoid* chbgvx(void)\n{\n    if (verbose) puts(\"STUB: chbgvx called\");\n    return NULL;\n}\n\nvoid* chbgvx_(void)\n{\n    if (verbose) puts(\"STUB: chbgvx_ called\");\n    return NULL;\n}\n\nvoid* chbtrd(void)\n{\n    if (verbose) puts(\"STUB: chbtrd called\");\n    return NULL;\n}\n\nvoid* chbtrd_(void)\n{\n    if (verbose) puts(\"STUB: chbtrd_ called\");\n    return NULL;\n}\n\nvoid* checon(void)\n{\n    if (verbose) puts(\"STUB: checon called\");\n    return NULL;\n}\n\nvoid* checon_(void)\n{\n    if (verbose) puts(\"STUB: checon_ called\");\n    return NULL;\n}\n\nvoid* cheequb(void)\n{\n    if (verbose) puts(\"STUB: cheequb called\");\n    return NULL;\n}\n\nvoid* cheequb_(void)\n{\n    if (verbose) puts(\"STUB: cheequb_ called\");\n    return NULL;\n}\n\nvoid* cheev(void)\n{\n    if (verbose) puts(\"STUB: cheev called\");\n    return NULL;\n}\n\nvoid* cheev_(void)\n{\n    if (verbose) puts(\"STUB: cheev_ called\");\n    return NULL;\n}\n\nvoid* cheevd(void)\n{\n    if (verbose) puts(\"STUB: cheevd called\");\n    return NULL;\n}\n\nvoid* cheevd_(void)\n{\n    if (verbose) puts(\"STUB: cheevd_ called\");\n    return NULL;\n}\n\nvoid* cheevr(void)\n{\n    if (verbose) puts(\"STUB: cheevr called\");\n    return NULL;\n}\n\nvoid* cheevr_(void)\n{\n    if (verbose) puts(\"STUB: cheevr_ called\");\n    return NULL;\n}\n\nvoid* cheevx(void)\n{\n    if (verbose) puts(\"STUB: cheevx called\");\n    return NULL;\n}\n\nvoid* cheevx_(void)\n{\n    if (verbose) puts(\"STUB: cheevx_ called\");\n    return NULL;\n}\n\nvoid* chegs2(void)\n{\n    if (verbose) puts(\"STUB: chegs2 called\");\n    return NULL;\n}\n\nvoid* chegs2_(void)\n{\n    if (verbose) puts(\"STUB: chegs2_ called\");\n    return NULL;\n}\n\nvoid* chegst(void)\n{\n    if (verbose) puts(\"STUB: chegst called\");\n    return NULL;\n}\n\nvoid* chegst_(void)\n{\n    if (verbose) puts(\"STUB: chegst_ called\");\n    return NULL;\n}\n\nvoid* chegv(void)\n{\n    if (verbose) puts(\"STUB: chegv called\");\n    return NULL;\n}\n\nvoid* chegv_(void)\n{\n    if (verbose) puts(\"STUB: chegv_ called\");\n    return NULL;\n}\n\nvoid* chegvd(void)\n{\n    if (verbose) puts(\"STUB: chegvd called\");\n    return NULL;\n}\n\nvoid* chegvd_(void)\n{\n    if (verbose) puts(\"STUB: chegvd_ called\");\n    return NULL;\n}\n\nvoid* chegvx(void)\n{\n    if (verbose) puts(\"STUB: chegvx called\");\n    return NULL;\n}\n\nvoid* chegvx_(void)\n{\n    if (verbose) puts(\"STUB: chegvx_ called\");\n    return NULL;\n}\n\nvoid* cherfs(void)\n{\n    if (verbose) puts(\"STUB: cherfs called\");\n    return NULL;\n}\n\nvoid* cherfs_(void)\n{\n    if (verbose) puts(\"STUB: cherfs_ called\");\n    return NULL;\n}\n\nvoid* chesv(void)\n{\n    if (verbose) puts(\"STUB: chesv called\");\n    return NULL;\n}\n\nvoid* chesv_(void)\n{\n    if (verbose) puts(\"STUB: chesv_ called\");\n    return NULL;\n}\n\nvoid* chesvx(void)\n{\n    if (verbose) puts(\"STUB: chesvx called\");\n    return NULL;\n}\n\nvoid* chesvx_(void)\n{\n    if (verbose) puts(\"STUB: chesvx_ called\");\n    return NULL;\n}\n\nvoid* chetd2(void)\n{\n    if (verbose) puts(\"STUB: chetd2 called\");\n    return NULL;\n}\n\nvoid* chetd2_(void)\n{\n    if (verbose) puts(\"STUB: chetd2_ called\");\n    return NULL;\n}\n\nvoid* chetf2(void)\n{\n    if (verbose) puts(\"STUB: chetf2 called\");\n    return NULL;\n}\n\nvoid* chetf2_(void)\n{\n    if (verbose) puts(\"STUB: chetf2_ called\");\n    return NULL;\n}\n\nvoid* chetrd(void)\n{\n    if (verbose) puts(\"STUB: chetrd called\");\n    return NULL;\n}\n\nvoid* chetrd_(void)\n{\n    if (verbose) puts(\"STUB: chetrd_ called\");\n    return NULL;\n}\n\nvoid* chetrf(void)\n{\n    if (verbose) puts(\"STUB: chetrf called\");\n    return NULL;\n}\n\nvoid* chetrf_(void)\n{\n    if (verbose) puts(\"STUB: chetrf_ called\");\n    return NULL;\n}\n\nvoid* chetri(void)\n{\n    if (verbose) puts(\"STUB: chetri called\");\n    return NULL;\n}\n\nvoid* chetri_(void)\n{\n    if (verbose) puts(\"STUB: chetri_ called\");\n    return NULL;\n}\n\nvoid* chetrs(void)\n{\n    if (verbose) puts(\"STUB: chetrs called\");\n    return NULL;\n}\n\nvoid* chetrs_(void)\n{\n    if (verbose) puts(\"STUB: chetrs_ called\");\n    return NULL;\n}\n\nvoid* chfrk(void)\n{\n    if (verbose) puts(\"STUB: chfrk called\");\n    return NULL;\n}\n\nvoid* chfrk_(void)\n{\n    if (verbose) puts(\"STUB: chfrk_ called\");\n    return NULL;\n}\n\nvoid* chgeqz(void)\n{\n    if (verbose) puts(\"STUB: chgeqz called\");\n    return NULL;\n}\n\nvoid* chgeqz_(void)\n{\n    if (verbose) puts(\"STUB: chgeqz_ called\");\n    return NULL;\n}\n\nvoid* chla_transtype__(void)\n{\n    if (verbose) puts(\"STUB: chla_transtype__ called\");\n    return NULL;\n}\n\nvoid* chpcon(void)\n{\n    if (verbose) puts(\"STUB: chpcon called\");\n    return NULL;\n}\n\nvoid* chpcon_(void)\n{\n    if (verbose) puts(\"STUB: chpcon_ called\");\n    return NULL;\n}\n\nvoid* chpev(void)\n{\n    if (verbose) puts(\"STUB: chpev called\");\n    return NULL;\n}\n\nvoid* chpev_(void)\n{\n    if (verbose) puts(\"STUB: chpev_ called\");\n    return NULL;\n}\n\nvoid* chpevd(void)\n{\n    if (verbose) puts(\"STUB: chpevd called\");\n    return NULL;\n}\n\nvoid* chpevd_(void)\n{\n    if (verbose) puts(\"STUB: chpevd_ called\");\n    return NULL;\n}\n\nvoid* chpevx(void)\n{\n    if (verbose) puts(\"STUB: chpevx called\");\n    return NULL;\n}\n\nvoid* chpevx_(void)\n{\n    if (verbose) puts(\"STUB: chpevx_ called\");\n    return NULL;\n}\n\nvoid* chpgst(void)\n{\n    if (verbose) puts(\"STUB: chpgst called\");\n    return NULL;\n}\n\nvoid* chpgst_(void)\n{\n    if (verbose) puts(\"STUB: chpgst_ called\");\n    return NULL;\n}\n\nvoid* chpgv(void)\n{\n    if (verbose) puts(\"STUB: chpgv called\");\n    return NULL;\n}\n\nvoid* chpgv_(void)\n{\n    if (verbose) puts(\"STUB: chpgv_ called\");\n    return NULL;\n}\n\nvoid* chpgvd(void)\n{\n    if (verbose) puts(\"STUB: chpgvd called\");\n    return NULL;\n}\n\nvoid* chpgvd_(void)\n{\n    if (verbose) puts(\"STUB: chpgvd_ called\");\n    return NULL;\n}\n\nvoid* chpgvx(void)\n{\n    if (verbose) puts(\"STUB: chpgvx called\");\n    return NULL;\n}\n\nvoid* chpgvx_(void)\n{\n    if (verbose) puts(\"STUB: chpgvx_ called\");\n    return NULL;\n}\n\nvoid* chprfs(void)\n{\n    if (verbose) puts(\"STUB: chprfs called\");\n    return NULL;\n}\n\nvoid* chprfs_(void)\n{\n    if (verbose) puts(\"STUB: chprfs_ called\");\n    return NULL;\n}\n\nvoid* chpsv(void)\n{\n    if (verbose) puts(\"STUB: chpsv called\");\n    return NULL;\n}\n\nvoid* chpsv_(void)\n{\n    if (verbose) puts(\"STUB: chpsv_ called\");\n    return NULL;\n}\n\nvoid* chpsvx(void)\n{\n    if (verbose) puts(\"STUB: chpsvx called\");\n    return NULL;\n}\n\nvoid* chpsvx_(void)\n{\n    if (verbose) puts(\"STUB: chpsvx_ called\");\n    return NULL;\n}\n\nvoid* chptrd(void)\n{\n    if (verbose) puts(\"STUB: chptrd called\");\n    return NULL;\n}\n\nvoid* chptrd_(void)\n{\n    if (verbose) puts(\"STUB: chptrd_ called\");\n    return NULL;\n}\n\nvoid* chptrf(void)\n{\n    if (verbose) puts(\"STUB: chptrf called\");\n    return NULL;\n}\n\nvoid* chptrf_(void)\n{\n    if (verbose) puts(\"STUB: chptrf_ called\");\n    return NULL;\n}\n\nvoid* chptri(void)\n{\n    if (verbose) puts(\"STUB: chptri called\");\n    return NULL;\n}\n\nvoid* chptri_(void)\n{\n    if (verbose) puts(\"STUB: chptri_ called\");\n    return NULL;\n}\n\nvoid* chptrs(void)\n{\n    if (verbose) puts(\"STUB: chptrs called\");\n    return NULL;\n}\n\nvoid* chptrs_(void)\n{\n    if (verbose) puts(\"STUB: chptrs_ called\");\n    return NULL;\n}\n\nvoid* chsein(void)\n{\n    if (verbose) puts(\"STUB: chsein called\");\n    return NULL;\n}\n\nvoid* chsein_(void)\n{\n    if (verbose) puts(\"STUB: chsein_ called\");\n    return NULL;\n}\n\nvoid* chseqr(void)\n{\n    if (verbose) puts(\"STUB: chseqr called\");\n    return NULL;\n}\n\nvoid* chseqr_(void)\n{\n    if (verbose) puts(\"STUB: chseqr_ called\");\n    return NULL;\n}\n\nvoid* clabrd(void)\n{\n    if (verbose) puts(\"STUB: clabrd called\");\n    return NULL;\n}\n\nvoid* clabrd_(void)\n{\n    if (verbose) puts(\"STUB: clabrd_ called\");\n    return NULL;\n}\n\nvoid* clacgv(void)\n{\n    if (verbose) puts(\"STUB: clacgv called\");\n    return NULL;\n}\n\nvoid* clacgv_(void)\n{\n    if (verbose) puts(\"STUB: clacgv_ called\");\n    return NULL;\n}\n\nvoid* clacn2(void)\n{\n    if (verbose) puts(\"STUB: clacn2 called\");\n    return NULL;\n}\n\nvoid* clacn2_(void)\n{\n    if (verbose) puts(\"STUB: clacn2_ called\");\n    return NULL;\n}\n\nvoid* clacon(void)\n{\n    if (verbose) puts(\"STUB: clacon called\");\n    return NULL;\n}\n\nvoid* clacon_(void)\n{\n    if (verbose) puts(\"STUB: clacon_ called\");\n    return NULL;\n}\n\nvoid* clacp2(void)\n{\n    if (verbose) puts(\"STUB: clacp2 called\");\n    return NULL;\n}\n\nvoid* clacp2_(void)\n{\n    if (verbose) puts(\"STUB: clacp2_ called\");\n    return NULL;\n}\n\nvoid* clacpy(void)\n{\n    if (verbose) puts(\"STUB: clacpy called\");\n    return NULL;\n}\n\nvoid* clacpy_(void)\n{\n    if (verbose) puts(\"STUB: clacpy_ called\");\n    return NULL;\n}\n\nvoid* clacrm(void)\n{\n    if (verbose) puts(\"STUB: clacrm called\");\n    return NULL;\n}\n\nvoid* clacrm_(void)\n{\n    if (verbose) puts(\"STUB: clacrm_ called\");\n    return NULL;\n}\n\nvoid* clacrt(void)\n{\n    if (verbose) puts(\"STUB: clacrt called\");\n    return NULL;\n}\n\nvoid* clacrt_(void)\n{\n    if (verbose) puts(\"STUB: clacrt_ called\");\n    return NULL;\n}\n\nvoid* cladiv(void)\n{\n    if (verbose) puts(\"STUB: cladiv called\");\n    return NULL;\n}\n\nvoid* cladiv_(void)\n{\n    if (verbose) puts(\"STUB: cladiv_ called\");\n    return NULL;\n}\n\nvoid* claed0(void)\n{\n    if (verbose) puts(\"STUB: claed0 called\");\n    return NULL;\n}\n\nvoid* claed0_(void)\n{\n    if (verbose) puts(\"STUB: claed0_ called\");\n    return NULL;\n}\n\nvoid* claed7(void)\n{\n    if (verbose) puts(\"STUB: claed7 called\");\n    return NULL;\n}\n\nvoid* claed7_(void)\n{\n    if (verbose) puts(\"STUB: claed7_ called\");\n    return NULL;\n}\n\nvoid* claed8(void)\n{\n    if (verbose) puts(\"STUB: claed8 called\");\n    return NULL;\n}\n\nvoid* claed8_(void)\n{\n    if (verbose) puts(\"STUB: claed8_ called\");\n    return NULL;\n}\n\nvoid* claein(void)\n{\n    if (verbose) puts(\"STUB: claein called\");\n    return NULL;\n}\n\nvoid* claein_(void)\n{\n    if (verbose) puts(\"STUB: claein_ called\");\n    return NULL;\n}\n\nvoid* claesy(void)\n{\n    if (verbose) puts(\"STUB: claesy called\");\n    return NULL;\n}\n\nvoid* claesy_(void)\n{\n    if (verbose) puts(\"STUB: claesy_ called\");\n    return NULL;\n}\n\nvoid* claev2(void)\n{\n    if (verbose) puts(\"STUB: claev2 called\");\n    return NULL;\n}\n\nvoid* claev2_(void)\n{\n    if (verbose) puts(\"STUB: claev2_ called\");\n    return NULL;\n}\n\nvoid* clag2z(void)\n{\n    if (verbose) puts(\"STUB: clag2z called\");\n    return NULL;\n}\n\nvoid* clag2z_(void)\n{\n    if (verbose) puts(\"STUB: clag2z_ called\");\n    return NULL;\n}\n\nvoid* clags2(void)\n{\n    if (verbose) puts(\"STUB: clags2 called\");\n    return NULL;\n}\n\nvoid* clags2_(void)\n{\n    if (verbose) puts(\"STUB: clags2_ called\");\n    return NULL;\n}\n\nvoid* clagtm(void)\n{\n    if (verbose) puts(\"STUB: clagtm called\");\n    return NULL;\n}\n\nvoid* clagtm_(void)\n{\n    if (verbose) puts(\"STUB: clagtm_ called\");\n    return NULL;\n}\n\nvoid* clahef(void)\n{\n    if (verbose) puts(\"STUB: clahef called\");\n    return NULL;\n}\n\nvoid* clahef_(void)\n{\n    if (verbose) puts(\"STUB: clahef_ called\");\n    return NULL;\n}\n\nvoid* clahqr(void)\n{\n    if (verbose) puts(\"STUB: clahqr called\");\n    return NULL;\n}\n\nvoid* clahqr_(void)\n{\n    if (verbose) puts(\"STUB: clahqr_ called\");\n    return NULL;\n}\n\nvoid* clahr2(void)\n{\n    if (verbose) puts(\"STUB: clahr2 called\");\n    return NULL;\n}\n\nvoid* clahr2_(void)\n{\n    if (verbose) puts(\"STUB: clahr2_ called\");\n    return NULL;\n}\n\nvoid* clahrd(void)\n{\n    if (verbose) puts(\"STUB: clahrd called\");\n    return NULL;\n}\n\nvoid* clahrd_(void)\n{\n    if (verbose) puts(\"STUB: clahrd_ called\");\n    return NULL;\n}\n\nvoid* claic1(void)\n{\n    if (verbose) puts(\"STUB: claic1 called\");\n    return NULL;\n}\n\nvoid* claic1_(void)\n{\n    if (verbose) puts(\"STUB: claic1_ called\");\n    return NULL;\n}\n\nvoid* clals0(void)\n{\n    if (verbose) puts(\"STUB: clals0 called\");\n    return NULL;\n}\n\nvoid* clals0_(void)\n{\n    if (verbose) puts(\"STUB: clals0_ called\");\n    return NULL;\n}\n\nvoid* clalsa(void)\n{\n    if (verbose) puts(\"STUB: clalsa called\");\n    return NULL;\n}\n\nvoid* clalsa_(void)\n{\n    if (verbose) puts(\"STUB: clalsa_ called\");\n    return NULL;\n}\n\nvoid* clalsd(void)\n{\n    if (verbose) puts(\"STUB: clalsd called\");\n    return NULL;\n}\n\nvoid* clalsd_(void)\n{\n    if (verbose) puts(\"STUB: clalsd_ called\");\n    return NULL;\n}\n\nvoid* clangb(void)\n{\n    if (verbose) puts(\"STUB: clangb called\");\n    return NULL;\n}\n\nvoid* clangb_(void)\n{\n    if (verbose) puts(\"STUB: clangb_ called\");\n    return NULL;\n}\n\nvoid* clange(void)\n{\n    if (verbose) puts(\"STUB: clange called\");\n    return NULL;\n}\n\nvoid* clange_(void)\n{\n    if (verbose) puts(\"STUB: clange_ called\");\n    return NULL;\n}\n\nvoid* clangt(void)\n{\n    if (verbose) puts(\"STUB: clangt called\");\n    return NULL;\n}\n\nvoid* clangt_(void)\n{\n    if (verbose) puts(\"STUB: clangt_ called\");\n    return NULL;\n}\n\nvoid* clanhb(void)\n{\n    if (verbose) puts(\"STUB: clanhb called\");\n    return NULL;\n}\n\nvoid* clanhb_(void)\n{\n    if (verbose) puts(\"STUB: clanhb_ called\");\n    return NULL;\n}\n\nvoid* clanhe(void)\n{\n    if (verbose) puts(\"STUB: clanhe called\");\n    return NULL;\n}\n\nvoid* clanhe_(void)\n{\n    if (verbose) puts(\"STUB: clanhe_ called\");\n    return NULL;\n}\n\nvoid* clanhf(void)\n{\n    if (verbose) puts(\"STUB: clanhf called\");\n    return NULL;\n}\n\nvoid* clanhf_(void)\n{\n    if (verbose) puts(\"STUB: clanhf_ called\");\n    return NULL;\n}\n\nvoid* clanhp(void)\n{\n    if (verbose) puts(\"STUB: clanhp called\");\n    return NULL;\n}\n\nvoid* clanhp_(void)\n{\n    if (verbose) puts(\"STUB: clanhp_ called\");\n    return NULL;\n}\n\nvoid* clanhs(void)\n{\n    if (verbose) puts(\"STUB: clanhs called\");\n    return NULL;\n}\n\nvoid* clanhs_(void)\n{\n    if (verbose) puts(\"STUB: clanhs_ called\");\n    return NULL;\n}\n\nvoid* clanht(void)\n{\n    if (verbose) puts(\"STUB: clanht called\");\n    return NULL;\n}\n\nvoid* clanht_(void)\n{\n    if (verbose) puts(\"STUB: clanht_ called\");\n    return NULL;\n}\n\nvoid* clansb(void)\n{\n    if (verbose) puts(\"STUB: clansb called\");\n    return NULL;\n}\n\nvoid* clansb_(void)\n{\n    if (verbose) puts(\"STUB: clansb_ called\");\n    return NULL;\n}\n\nvoid* clansp(void)\n{\n    if (verbose) puts(\"STUB: clansp called\");\n    return NULL;\n}\n\nvoid* clansp_(void)\n{\n    if (verbose) puts(\"STUB: clansp_ called\");\n    return NULL;\n}\n\nvoid* clansy(void)\n{\n    if (verbose) puts(\"STUB: clansy called\");\n    return NULL;\n}\n\nvoid* clansy_(void)\n{\n    if (verbose) puts(\"STUB: clansy_ called\");\n    return NULL;\n}\n\nvoid* clantb(void)\n{\n    if (verbose) puts(\"STUB: clantb called\");\n    return NULL;\n}\n\nvoid* clantb_(void)\n{\n    if (verbose) puts(\"STUB: clantb_ called\");\n    return NULL;\n}\n\nvoid* clantp(void)\n{\n    if (verbose) puts(\"STUB: clantp called\");\n    return NULL;\n}\n\nvoid* clantp_(void)\n{\n    if (verbose) puts(\"STUB: clantp_ called\");\n    return NULL;\n}\n\nvoid* clantr(void)\n{\n    if (verbose) puts(\"STUB: clantr called\");\n    return NULL;\n}\n\nvoid* clantr_(void)\n{\n    if (verbose) puts(\"STUB: clantr_ called\");\n    return NULL;\n}\n\nvoid* clapll(void)\n{\n    if (verbose) puts(\"STUB: clapll called\");\n    return NULL;\n}\n\nvoid* clapll_(void)\n{\n    if (verbose) puts(\"STUB: clapll_ called\");\n    return NULL;\n}\n\nvoid* clapmt(void)\n{\n    if (verbose) puts(\"STUB: clapmt called\");\n    return NULL;\n}\n\nvoid* clapmt_(void)\n{\n    if (verbose) puts(\"STUB: clapmt_ called\");\n    return NULL;\n}\n\nvoid* claqgb(void)\n{\n    if (verbose) puts(\"STUB: claqgb called\");\n    return NULL;\n}\n\nvoid* claqgb_(void)\n{\n    if (verbose) puts(\"STUB: claqgb_ called\");\n    return NULL;\n}\n\nvoid* claqge(void)\n{\n    if (verbose) puts(\"STUB: claqge called\");\n    return NULL;\n}\n\nvoid* claqge_(void)\n{\n    if (verbose) puts(\"STUB: claqge_ called\");\n    return NULL;\n}\n\nvoid* claqhb(void)\n{\n    if (verbose) puts(\"STUB: claqhb called\");\n    return NULL;\n}\n\nvoid* claqhb_(void)\n{\n    if (verbose) puts(\"STUB: claqhb_ called\");\n    return NULL;\n}\n\nvoid* claqhe(void)\n{\n    if (verbose) puts(\"STUB: claqhe called\");\n    return NULL;\n}\n\nvoid* claqhe_(void)\n{\n    if (verbose) puts(\"STUB: claqhe_ called\");\n    return NULL;\n}\n\nvoid* claqhp(void)\n{\n    if (verbose) puts(\"STUB: claqhp called\");\n    return NULL;\n}\n\nvoid* claqhp_(void)\n{\n    if (verbose) puts(\"STUB: claqhp_ called\");\n    return NULL;\n}\n\nvoid* claqp2(void)\n{\n    if (verbose) puts(\"STUB: claqp2 called\");\n    return NULL;\n}\n\nvoid* claqp2_(void)\n{\n    if (verbose) puts(\"STUB: claqp2_ called\");\n    return NULL;\n}\n\nvoid* claqps(void)\n{\n    if (verbose) puts(\"STUB: claqps called\");\n    return NULL;\n}\n\nvoid* claqps_(void)\n{\n    if (verbose) puts(\"STUB: claqps_ called\");\n    return NULL;\n}\n\nvoid* claqr0(void)\n{\n    if (verbose) puts(\"STUB: claqr0 called\");\n    return NULL;\n}\n\nvoid* claqr0_(void)\n{\n    if (verbose) puts(\"STUB: claqr0_ called\");\n    return NULL;\n}\n\nvoid* claqr1(void)\n{\n    if (verbose) puts(\"STUB: claqr1 called\");\n    return NULL;\n}\n\nvoid* claqr1_(void)\n{\n    if (verbose) puts(\"STUB: claqr1_ called\");\n    return NULL;\n}\n\nvoid* claqr2(void)\n{\n    if (verbose) puts(\"STUB: claqr2 called\");\n    return NULL;\n}\n\nvoid* claqr2_(void)\n{\n    if (verbose) puts(\"STUB: claqr2_ called\");\n    return NULL;\n}\n\nvoid* claqr3(void)\n{\n    if (verbose) puts(\"STUB: claqr3 called\");\n    return NULL;\n}\n\nvoid* claqr3_(void)\n{\n    if (verbose) puts(\"STUB: claqr3_ called\");\n    return NULL;\n}\n\nvoid* claqr4(void)\n{\n    if (verbose) puts(\"STUB: claqr4 called\");\n    return NULL;\n}\n\nvoid* claqr4_(void)\n{\n    if (verbose) puts(\"STUB: claqr4_ called\");\n    return NULL;\n}\n\nvoid* claqr5(void)\n{\n    if (verbose) puts(\"STUB: claqr5 called\");\n    return NULL;\n}\n\nvoid* claqr5_(void)\n{\n    if (verbose) puts(\"STUB: claqr5_ called\");\n    return NULL;\n}\n\nvoid* claqsb(void)\n{\n    if (verbose) puts(\"STUB: claqsb called\");\n    return NULL;\n}\n\nvoid* claqsb_(void)\n{\n    if (verbose) puts(\"STUB: claqsb_ called\");\n    return NULL;\n}\n\nvoid* claqsp(void)\n{\n    if (verbose) puts(\"STUB: claqsp called\");\n    return NULL;\n}\n\nvoid* claqsp_(void)\n{\n    if (verbose) puts(\"STUB: claqsp_ called\");\n    return NULL;\n}\n\nvoid* claqsy(void)\n{\n    if (verbose) puts(\"STUB: claqsy called\");\n    return NULL;\n}\n\nvoid* claqsy_(void)\n{\n    if (verbose) puts(\"STUB: claqsy_ called\");\n    return NULL;\n}\n\nvoid* clar1v(void)\n{\n    if (verbose) puts(\"STUB: clar1v called\");\n    return NULL;\n}\n\nvoid* clar1v_(void)\n{\n    if (verbose) puts(\"STUB: clar1v_ called\");\n    return NULL;\n}\n\nvoid* clar2v(void)\n{\n    if (verbose) puts(\"STUB: clar2v called\");\n    return NULL;\n}\n\nvoid* clar2v_(void)\n{\n    if (verbose) puts(\"STUB: clar2v_ called\");\n    return NULL;\n}\n\nvoid* clarcm(void)\n{\n    if (verbose) puts(\"STUB: clarcm called\");\n    return NULL;\n}\n\nvoid* clarcm_(void)\n{\n    if (verbose) puts(\"STUB: clarcm_ called\");\n    return NULL;\n}\n\nvoid* clarf(void)\n{\n    if (verbose) puts(\"STUB: clarf called\");\n    return NULL;\n}\n\nvoid* clarf_(void)\n{\n    if (verbose) puts(\"STUB: clarf_ called\");\n    return NULL;\n}\n\nvoid* clarfb(void)\n{\n    if (verbose) puts(\"STUB: clarfb called\");\n    return NULL;\n}\n\nvoid* clarfb_(void)\n{\n    if (verbose) puts(\"STUB: clarfb_ called\");\n    return NULL;\n}\n\nvoid* clarfg(void)\n{\n    if (verbose) puts(\"STUB: clarfg called\");\n    return NULL;\n}\n\nvoid* clarfg_(void)\n{\n    if (verbose) puts(\"STUB: clarfg_ called\");\n    return NULL;\n}\n\nvoid* clarfp(void)\n{\n    if (verbose) puts(\"STUB: clarfp called\");\n    return NULL;\n}\n\nvoid* clarfp_(void)\n{\n    if (verbose) puts(\"STUB: clarfp_ called\");\n    return NULL;\n}\n\nvoid* clarft(void)\n{\n    if (verbose) puts(\"STUB: clarft called\");\n    return NULL;\n}\n\nvoid* clarft_(void)\n{\n    if (verbose) puts(\"STUB: clarft_ called\");\n    return NULL;\n}\n\nvoid* clarfx(void)\n{\n    if (verbose) puts(\"STUB: clarfx called\");\n    return NULL;\n}\n\nvoid* clarfx_(void)\n{\n    if (verbose) puts(\"STUB: clarfx_ called\");\n    return NULL;\n}\n\nvoid* clargv(void)\n{\n    if (verbose) puts(\"STUB: clargv called\");\n    return NULL;\n}\n\nvoid* clargv_(void)\n{\n    if (verbose) puts(\"STUB: clargv_ called\");\n    return NULL;\n}\n\nvoid* clarnv(void)\n{\n    if (verbose) puts(\"STUB: clarnv called\");\n    return NULL;\n}\n\nvoid* clarnv_(void)\n{\n    if (verbose) puts(\"STUB: clarnv_ called\");\n    return NULL;\n}\n\nvoid* clarrv(void)\n{\n    if (verbose) puts(\"STUB: clarrv called\");\n    return NULL;\n}\n\nvoid* clarrv_(void)\n{\n    if (verbose) puts(\"STUB: clarrv_ called\");\n    return NULL;\n}\n\nvoid* clarscl2(void)\n{\n    if (verbose) puts(\"STUB: clarscl2 called\");\n    return NULL;\n}\n\nvoid* clarscl2_(void)\n{\n    if (verbose) puts(\"STUB: clarscl2_ called\");\n    return NULL;\n}\n\nvoid* clartg(void)\n{\n    if (verbose) puts(\"STUB: clartg called\");\n    return NULL;\n}\n\nvoid* clartg_(void)\n{\n    if (verbose) puts(\"STUB: clartg_ called\");\n    return NULL;\n}\n\nvoid* clartv(void)\n{\n    if (verbose) puts(\"STUB: clartv called\");\n    return NULL;\n}\n\nvoid* clartv_(void)\n{\n    if (verbose) puts(\"STUB: clartv_ called\");\n    return NULL;\n}\n\nvoid* clarz(void)\n{\n    if (verbose) puts(\"STUB: clarz called\");\n    return NULL;\n}\n\nvoid* clarz_(void)\n{\n    if (verbose) puts(\"STUB: clarz_ called\");\n    return NULL;\n}\n\nvoid* clarzb(void)\n{\n    if (verbose) puts(\"STUB: clarzb called\");\n    return NULL;\n}\n\nvoid* clarzb_(void)\n{\n    if (verbose) puts(\"STUB: clarzb_ called\");\n    return NULL;\n}\n\nvoid* clarzt(void)\n{\n    if (verbose) puts(\"STUB: clarzt called\");\n    return NULL;\n}\n\nvoid* clarzt_(void)\n{\n    if (verbose) puts(\"STUB: clarzt_ called\");\n    return NULL;\n}\n\nvoid* clascl(void)\n{\n    if (verbose) puts(\"STUB: clascl called\");\n    return NULL;\n}\n\nvoid* clascl2(void)\n{\n    if (verbose) puts(\"STUB: clascl2 called\");\n    return NULL;\n}\n\nvoid* clascl2_(void)\n{\n    if (verbose) puts(\"STUB: clascl2_ called\");\n    return NULL;\n}\n\nvoid* clascl_(void)\n{\n    if (verbose) puts(\"STUB: clascl_ called\");\n    return NULL;\n}\n\nvoid* claset(void)\n{\n    if (verbose) puts(\"STUB: claset called\");\n    return NULL;\n}\n\nvoid* claset_(void)\n{\n    if (verbose) puts(\"STUB: claset_ called\");\n    return NULL;\n}\n\nvoid* clasr(void)\n{\n    if (verbose) puts(\"STUB: clasr called\");\n    return NULL;\n}\n\nvoid* clasr_(void)\n{\n    if (verbose) puts(\"STUB: clasr_ called\");\n    return NULL;\n}\n\nvoid* classq(void)\n{\n    if (verbose) puts(\"STUB: classq called\");\n    return NULL;\n}\n\nvoid* classq_(void)\n{\n    if (verbose) puts(\"STUB: classq_ called\");\n    return NULL;\n}\n\nvoid* claswp(void)\n{\n    if (verbose) puts(\"STUB: claswp called\");\n    return NULL;\n}\n\nvoid* claswp_(void)\n{\n    if (verbose) puts(\"STUB: claswp_ called\");\n    return NULL;\n}\n\nvoid* clasyf(void)\n{\n    if (verbose) puts(\"STUB: clasyf called\");\n    return NULL;\n}\n\nvoid* clasyf_(void)\n{\n    if (verbose) puts(\"STUB: clasyf_ called\");\n    return NULL;\n}\n\nvoid* clatbs(void)\n{\n    if (verbose) puts(\"STUB: clatbs called\");\n    return NULL;\n}\n\nvoid* clatbs_(void)\n{\n    if (verbose) puts(\"STUB: clatbs_ called\");\n    return NULL;\n}\n\nvoid* clatdf(void)\n{\n    if (verbose) puts(\"STUB: clatdf called\");\n    return NULL;\n}\n\nvoid* clatdf_(void)\n{\n    if (verbose) puts(\"STUB: clatdf_ called\");\n    return NULL;\n}\n\nvoid* clatps(void)\n{\n    if (verbose) puts(\"STUB: clatps called\");\n    return NULL;\n}\n\nvoid* clatps_(void)\n{\n    if (verbose) puts(\"STUB: clatps_ called\");\n    return NULL;\n}\n\nvoid* clatrd(void)\n{\n    if (verbose) puts(\"STUB: clatrd called\");\n    return NULL;\n}\n\nvoid* clatrd_(void)\n{\n    if (verbose) puts(\"STUB: clatrd_ called\");\n    return NULL;\n}\n\nvoid* clatrs(void)\n{\n    if (verbose) puts(\"STUB: clatrs called\");\n    return NULL;\n}\n\nvoid* clatrs_(void)\n{\n    if (verbose) puts(\"STUB: clatrs_ called\");\n    return NULL;\n}\n\nvoid* clatrz(void)\n{\n    if (verbose) puts(\"STUB: clatrz called\");\n    return NULL;\n}\n\nvoid* clatrz_(void)\n{\n    if (verbose) puts(\"STUB: clatrz_ called\");\n    return NULL;\n}\n\nvoid* clatzm(void)\n{\n    if (verbose) puts(\"STUB: clatzm called\");\n    return NULL;\n}\n\nvoid* clatzm_(void)\n{\n    if (verbose) puts(\"STUB: clatzm_ called\");\n    return NULL;\n}\n\nvoid* clauu2(void)\n{\n    if (verbose) puts(\"STUB: clauu2 called\");\n    return NULL;\n}\n\nvoid* clauu2_(void)\n{\n    if (verbose) puts(\"STUB: clauu2_ called\");\n    return NULL;\n}\n\nvoid* clauum(void)\n{\n    if (verbose) puts(\"STUB: clauum called\");\n    return NULL;\n}\n\nvoid* clauum_(void)\n{\n    if (verbose) puts(\"STUB: clauum_ called\");\n    return NULL;\n}\n\nvoid* cpbcon(void)\n{\n    if (verbose) puts(\"STUB: cpbcon called\");\n    return NULL;\n}\n\nvoid* cpbcon_(void)\n{\n    if (verbose) puts(\"STUB: cpbcon_ called\");\n    return NULL;\n}\n\nvoid* cpbequ(void)\n{\n    if (verbose) puts(\"STUB: cpbequ called\");\n    return NULL;\n}\n\nvoid* cpbequ_(void)\n{\n    if (verbose) puts(\"STUB: cpbequ_ called\");\n    return NULL;\n}\n\nvoid* cpbrfs(void)\n{\n    if (verbose) puts(\"STUB: cpbrfs called\");\n    return NULL;\n}\n\nvoid* cpbrfs_(void)\n{\n    if (verbose) puts(\"STUB: cpbrfs_ called\");\n    return NULL;\n}\n\nvoid* cpbstf(void)\n{\n    if (verbose) puts(\"STUB: cpbstf called\");\n    return NULL;\n}\n\nvoid* cpbstf_(void)\n{\n    if (verbose) puts(\"STUB: cpbstf_ called\");\n    return NULL;\n}\n\nvoid* cpbsv(void)\n{\n    if (verbose) puts(\"STUB: cpbsv called\");\n    return NULL;\n}\n\nvoid* cpbsv_(void)\n{\n    if (verbose) puts(\"STUB: cpbsv_ called\");\n    return NULL;\n}\n\nvoid* cpbsvx(void)\n{\n    if (verbose) puts(\"STUB: cpbsvx called\");\n    return NULL;\n}\n\nvoid* cpbsvx_(void)\n{\n    if (verbose) puts(\"STUB: cpbsvx_ called\");\n    return NULL;\n}\n\nvoid* cpbtf2(void)\n{\n    if (verbose) puts(\"STUB: cpbtf2 called\");\n    return NULL;\n}\n\nvoid* cpbtf2_(void)\n{\n    if (verbose) puts(\"STUB: cpbtf2_ called\");\n    return NULL;\n}\n\nvoid* cpbtrf(void)\n{\n    if (verbose) puts(\"STUB: cpbtrf called\");\n    return NULL;\n}\n\nvoid* cpbtrf_(void)\n{\n    if (verbose) puts(\"STUB: cpbtrf_ called\");\n    return NULL;\n}\n\nvoid* cpbtrs(void)\n{\n    if (verbose) puts(\"STUB: cpbtrs called\");\n    return NULL;\n}\n\nvoid* cpbtrs_(void)\n{\n    if (verbose) puts(\"STUB: cpbtrs_ called\");\n    return NULL;\n}\n\nvoid* cpftrf(void)\n{\n    if (verbose) puts(\"STUB: cpftrf called\");\n    return NULL;\n}\n\nvoid* cpftrf_(void)\n{\n    if (verbose) puts(\"STUB: cpftrf_ called\");\n    return NULL;\n}\n\nvoid* cpftri(void)\n{\n    if (verbose) puts(\"STUB: cpftri called\");\n    return NULL;\n}\n\nvoid* cpftri_(void)\n{\n    if (verbose) puts(\"STUB: cpftri_ called\");\n    return NULL;\n}\n\nvoid* cpftrs(void)\n{\n    if (verbose) puts(\"STUB: cpftrs called\");\n    return NULL;\n}\n\nvoid* cpftrs_(void)\n{\n    if (verbose) puts(\"STUB: cpftrs_ called\");\n    return NULL;\n}\n\nvoid* cpocon(void)\n{\n    if (verbose) puts(\"STUB: cpocon called\");\n    return NULL;\n}\n\nvoid* cpocon_(void)\n{\n    if (verbose) puts(\"STUB: cpocon_ called\");\n    return NULL;\n}\n\nvoid* cpoequ(void)\n{\n    if (verbose) puts(\"STUB: cpoequ called\");\n    return NULL;\n}\n\nvoid* cpoequ_(void)\n{\n    if (verbose) puts(\"STUB: cpoequ_ called\");\n    return NULL;\n}\n\nvoid* cpoequb(void)\n{\n    if (verbose) puts(\"STUB: cpoequb called\");\n    return NULL;\n}\n\nvoid* cpoequb_(void)\n{\n    if (verbose) puts(\"STUB: cpoequb_ called\");\n    return NULL;\n}\n\nvoid* cporfs(void)\n{\n    if (verbose) puts(\"STUB: cporfs called\");\n    return NULL;\n}\n\nvoid* cporfs_(void)\n{\n    if (verbose) puts(\"STUB: cporfs_ called\");\n    return NULL;\n}\n\nvoid* cposv(void)\n{\n    if (verbose) puts(\"STUB: cposv called\");\n    return NULL;\n}\n\nvoid* cposv_(void)\n{\n    if (verbose) puts(\"STUB: cposv_ called\");\n    return NULL;\n}\n\nvoid* cposvx(void)\n{\n    if (verbose) puts(\"STUB: cposvx called\");\n    return NULL;\n}\n\nvoid* cposvx_(void)\n{\n    if (verbose) puts(\"STUB: cposvx_ called\");\n    return NULL;\n}\n\nvoid* cpotf2(void)\n{\n    if (verbose) puts(\"STUB: cpotf2 called\");\n    return NULL;\n}\n\nvoid* cpotf2_(void)\n{\n    if (verbose) puts(\"STUB: cpotf2_ called\");\n    return NULL;\n}\n\nvoid* cpotrf(void)\n{\n    if (verbose) puts(\"STUB: cpotrf called\");\n    return NULL;\n}\n\nvoid* cpotrf_(void)\n{\n    if (verbose) puts(\"STUB: cpotrf_ called\");\n    return NULL;\n}\n\nvoid* cpotri(void)\n{\n    if (verbose) puts(\"STUB: cpotri called\");\n    return NULL;\n}\n\nvoid* cpotri_(void)\n{\n    if (verbose) puts(\"STUB: cpotri_ called\");\n    return NULL;\n}\n\nvoid* cpotrs(void)\n{\n    if (verbose) puts(\"STUB: cpotrs called\");\n    return NULL;\n}\n\nvoid* cpotrs_(void)\n{\n    if (verbose) puts(\"STUB: cpotrs_ called\");\n    return NULL;\n}\n\nvoid* cppcon(void)\n{\n    if (verbose) puts(\"STUB: cppcon called\");\n    return NULL;\n}\n\nvoid* cppcon_(void)\n{\n    if (verbose) puts(\"STUB: cppcon_ called\");\n    return NULL;\n}\n\nvoid* cppequ(void)\n{\n    if (verbose) puts(\"STUB: cppequ called\");\n    return NULL;\n}\n\nvoid* cppequ_(void)\n{\n    if (verbose) puts(\"STUB: cppequ_ called\");\n    return NULL;\n}\n\nvoid* cpprfs(void)\n{\n    if (verbose) puts(\"STUB: cpprfs called\");\n    return NULL;\n}\n\nvoid* cpprfs_(void)\n{\n    if (verbose) puts(\"STUB: cpprfs_ called\");\n    return NULL;\n}\n\nvoid* cppsv(void)\n{\n    if (verbose) puts(\"STUB: cppsv called\");\n    return NULL;\n}\n\nvoid* cppsv_(void)\n{\n    if (verbose) puts(\"STUB: cppsv_ called\");\n    return NULL;\n}\n\nvoid* cppsvx(void)\n{\n    if (verbose) puts(\"STUB: cppsvx called\");\n    return NULL;\n}\n\nvoid* cppsvx_(void)\n{\n    if (verbose) puts(\"STUB: cppsvx_ called\");\n    return NULL;\n}\n\nvoid* cpptrf(void)\n{\n    if (verbose) puts(\"STUB: cpptrf called\");\n    return NULL;\n}\n\nvoid* cpptrf_(void)\n{\n    if (verbose) puts(\"STUB: cpptrf_ called\");\n    return NULL;\n}\n\nvoid* cpptri(void)\n{\n    if (verbose) puts(\"STUB: cpptri called\");\n    return NULL;\n}\n\nvoid* cpptri_(void)\n{\n    if (verbose) puts(\"STUB: cpptri_ called\");\n    return NULL;\n}\n\nvoid* cpptrs(void)\n{\n    if (verbose) puts(\"STUB: cpptrs called\");\n    return NULL;\n}\n\nvoid* cpptrs_(void)\n{\n    if (verbose) puts(\"STUB: cpptrs_ called\");\n    return NULL;\n}\n\nvoid* cpstf2(void)\n{\n    if (verbose) puts(\"STUB: cpstf2 called\");\n    return NULL;\n}\n\nvoid* cpstf2_(void)\n{\n    if (verbose) puts(\"STUB: cpstf2_ called\");\n    return NULL;\n}\n\nvoid* cpstrf(void)\n{\n    if (verbose) puts(\"STUB: cpstrf called\");\n    return NULL;\n}\n\nvoid* cpstrf_(void)\n{\n    if (verbose) puts(\"STUB: cpstrf_ called\");\n    return NULL;\n}\n\nvoid* cptcon(void)\n{\n    if (verbose) puts(\"STUB: cptcon called\");\n    return NULL;\n}\n\nvoid* cptcon_(void)\n{\n    if (verbose) puts(\"STUB: cptcon_ called\");\n    return NULL;\n}\n\nvoid* cpteqr(void)\n{\n    if (verbose) puts(\"STUB: cpteqr called\");\n    return NULL;\n}\n\nvoid* cpteqr_(void)\n{\n    if (verbose) puts(\"STUB: cpteqr_ called\");\n    return NULL;\n}\n\nvoid* cptrfs(void)\n{\n    if (verbose) puts(\"STUB: cptrfs called\");\n    return NULL;\n}\n\nvoid* cptrfs_(void)\n{\n    if (verbose) puts(\"STUB: cptrfs_ called\");\n    return NULL;\n}\n\nvoid* cptsv(void)\n{\n    if (verbose) puts(\"STUB: cptsv called\");\n    return NULL;\n}\n\nvoid* cptsv_(void)\n{\n    if (verbose) puts(\"STUB: cptsv_ called\");\n    return NULL;\n}\n\nvoid* cptsvx(void)\n{\n    if (verbose) puts(\"STUB: cptsvx called\");\n    return NULL;\n}\n\nvoid* cptsvx_(void)\n{\n    if (verbose) puts(\"STUB: cptsvx_ called\");\n    return NULL;\n}\n\nvoid* cpttrf(void)\n{\n    if (verbose) puts(\"STUB: cpttrf called\");\n    return NULL;\n}\n\nvoid* cpttrf_(void)\n{\n    if (verbose) puts(\"STUB: cpttrf_ called\");\n    return NULL;\n}\n\nvoid* cpttrs(void)\n{\n    if (verbose) puts(\"STUB: cpttrs called\");\n    return NULL;\n}\n\nvoid* cpttrs_(void)\n{\n    if (verbose) puts(\"STUB: cpttrs_ called\");\n    return NULL;\n}\n\nvoid* cptts2(void)\n{\n    if (verbose) puts(\"STUB: cptts2 called\");\n    return NULL;\n}\n\nvoid* cptts2_(void)\n{\n    if (verbose) puts(\"STUB: cptts2_ called\");\n    return NULL;\n}\n\nvoid* crot(void)\n{\n    if (verbose) puts(\"STUB: crot called\");\n    return NULL;\n}\n\nvoid* crot_(void)\n{\n    if (verbose) puts(\"STUB: crot_ called\");\n    return NULL;\n}\n\nvoid* cspcon(void)\n{\n    if (verbose) puts(\"STUB: cspcon called\");\n    return NULL;\n}\n\nvoid* cspcon_(void)\n{\n    if (verbose) puts(\"STUB: cspcon_ called\");\n    return NULL;\n}\n\nvoid* cspmv(void)\n{\n    if (verbose) puts(\"STUB: cspmv called\");\n    return NULL;\n}\n\nvoid* cspmv_(void)\n{\n    if (verbose) puts(\"STUB: cspmv_ called\");\n    return NULL;\n}\n\nvoid* cspr(void)\n{\n    if (verbose) puts(\"STUB: cspr called\");\n    return NULL;\n}\n\nvoid* cspr_(void)\n{\n    if (verbose) puts(\"STUB: cspr_ called\");\n    return NULL;\n}\n\nvoid* csprfs(void)\n{\n    if (verbose) puts(\"STUB: csprfs called\");\n    return NULL;\n}\n\nvoid* csprfs_(void)\n{\n    if (verbose) puts(\"STUB: csprfs_ called\");\n    return NULL;\n}\n\nvoid* cspsv(void)\n{\n    if (verbose) puts(\"STUB: cspsv called\");\n    return NULL;\n}\n\nvoid* cspsv_(void)\n{\n    if (verbose) puts(\"STUB: cspsv_ called\");\n    return NULL;\n}\n\nvoid* cspsvx(void)\n{\n    if (verbose) puts(\"STUB: cspsvx called\");\n    return NULL;\n}\n\nvoid* cspsvx_(void)\n{\n    if (verbose) puts(\"STUB: cspsvx_ called\");\n    return NULL;\n}\n\nvoid* csptrf(void)\n{\n    if (verbose) puts(\"STUB: csptrf called\");\n    return NULL;\n}\n\nvoid* csptrf_(void)\n{\n    if (verbose) puts(\"STUB: csptrf_ called\");\n    return NULL;\n}\n\nvoid* csptri(void)\n{\n    if (verbose) puts(\"STUB: csptri called\");\n    return NULL;\n}\n\nvoid* csptri_(void)\n{\n    if (verbose) puts(\"STUB: csptri_ called\");\n    return NULL;\n}\n\nvoid* csptrs(void)\n{\n    if (verbose) puts(\"STUB: csptrs called\");\n    return NULL;\n}\n\nvoid* csptrs_(void)\n{\n    if (verbose) puts(\"STUB: csptrs_ called\");\n    return NULL;\n}\n\nvoid* csrscl(void)\n{\n    if (verbose) puts(\"STUB: csrscl called\");\n    return NULL;\n}\n\nvoid* csrscl_(void)\n{\n    if (verbose) puts(\"STUB: csrscl_ called\");\n    return NULL;\n}\n\nvoid* cstedc(void)\n{\n    if (verbose) puts(\"STUB: cstedc called\");\n    return NULL;\n}\n\nvoid* cstedc_(void)\n{\n    if (verbose) puts(\"STUB: cstedc_ called\");\n    return NULL;\n}\n\nvoid* cstegr(void)\n{\n    if (verbose) puts(\"STUB: cstegr called\");\n    return NULL;\n}\n\nvoid* cstegr_(void)\n{\n    if (verbose) puts(\"STUB: cstegr_ called\");\n    return NULL;\n}\n\nvoid* cstein(void)\n{\n    if (verbose) puts(\"STUB: cstein called\");\n    return NULL;\n}\n\nvoid* cstein_(void)\n{\n    if (verbose) puts(\"STUB: cstein_ called\");\n    return NULL;\n}\n\nvoid* cstemr(void)\n{\n    if (verbose) puts(\"STUB: cstemr called\");\n    return NULL;\n}\n\nvoid* cstemr_(void)\n{\n    if (verbose) puts(\"STUB: cstemr_ called\");\n    return NULL;\n}\n\nvoid* csteqr(void)\n{\n    if (verbose) puts(\"STUB: csteqr called\");\n    return NULL;\n}\n\nvoid* csteqr_(void)\n{\n    if (verbose) puts(\"STUB: csteqr_ called\");\n    return NULL;\n}\n\nvoid* csycon(void)\n{\n    if (verbose) puts(\"STUB: csycon called\");\n    return NULL;\n}\n\nvoid* csycon_(void)\n{\n    if (verbose) puts(\"STUB: csycon_ called\");\n    return NULL;\n}\n\nvoid* csyequb(void)\n{\n    if (verbose) puts(\"STUB: csyequb called\");\n    return NULL;\n}\n\nvoid* csyequb_(void)\n{\n    if (verbose) puts(\"STUB: csyequb_ called\");\n    return NULL;\n}\n\nvoid* csymv(void)\n{\n    if (verbose) puts(\"STUB: csymv called\");\n    return NULL;\n}\n\nvoid* csymv_(void)\n{\n    if (verbose) puts(\"STUB: csymv_ called\");\n    return NULL;\n}\n\nvoid* csyr(void)\n{\n    if (verbose) puts(\"STUB: csyr called\");\n    return NULL;\n}\n\nvoid* csyr_(void)\n{\n    if (verbose) puts(\"STUB: csyr_ called\");\n    return NULL;\n}\n\nvoid* csyrfs(void)\n{\n    if (verbose) puts(\"STUB: csyrfs called\");\n    return NULL;\n}\n\nvoid* csyrfs_(void)\n{\n    if (verbose) puts(\"STUB: csyrfs_ called\");\n    return NULL;\n}\n\nvoid* csysv(void)\n{\n    if (verbose) puts(\"STUB: csysv called\");\n    return NULL;\n}\n\nvoid* csysv_(void)\n{\n    if (verbose) puts(\"STUB: csysv_ called\");\n    return NULL;\n}\n\nvoid* csysvx(void)\n{\n    if (verbose) puts(\"STUB: csysvx called\");\n    return NULL;\n}\n\nvoid* csysvx_(void)\n{\n    if (verbose) puts(\"STUB: csysvx_ called\");\n    return NULL;\n}\n\nvoid* csytf2(void)\n{\n    if (verbose) puts(\"STUB: csytf2 called\");\n    return NULL;\n}\n\nvoid* csytf2_(void)\n{\n    if (verbose) puts(\"STUB: csytf2_ called\");\n    return NULL;\n}\n\nvoid* csytrf(void)\n{\n    if (verbose) puts(\"STUB: csytrf called\");\n    return NULL;\n}\n\nvoid* csytrf_(void)\n{\n    if (verbose) puts(\"STUB: csytrf_ called\");\n    return NULL;\n}\n\nvoid* csytri(void)\n{\n    if (verbose) puts(\"STUB: csytri called\");\n    return NULL;\n}\n\nvoid* csytri_(void)\n{\n    if (verbose) puts(\"STUB: csytri_ called\");\n    return NULL;\n}\n\nvoid* csytrs(void)\n{\n    if (verbose) puts(\"STUB: csytrs called\");\n    return NULL;\n}\n\nvoid* csytrs_(void)\n{\n    if (verbose) puts(\"STUB: csytrs_ called\");\n    return NULL;\n}\n\nvoid* ctbcon(void)\n{\n    if (verbose) puts(\"STUB: ctbcon called\");\n    return NULL;\n}\n\nvoid* ctbcon_(void)\n{\n    if (verbose) puts(\"STUB: ctbcon_ called\");\n    return NULL;\n}\n\nvoid* ctbrfs(void)\n{\n    if (verbose) puts(\"STUB: ctbrfs called\");\n    return NULL;\n}\n\nvoid* ctbrfs_(void)\n{\n    if (verbose) puts(\"STUB: ctbrfs_ called\");\n    return NULL;\n}\n\nvoid* ctbtrs(void)\n{\n    if (verbose) puts(\"STUB: ctbtrs called\");\n    return NULL;\n}\n\nvoid* ctbtrs_(void)\n{\n    if (verbose) puts(\"STUB: ctbtrs_ called\");\n    return NULL;\n}\n\nvoid* ctfsm(void)\n{\n    if (verbose) puts(\"STUB: ctfsm called\");\n    return NULL;\n}\n\nvoid* ctfsm_(void)\n{\n    if (verbose) puts(\"STUB: ctfsm_ called\");\n    return NULL;\n}\n\nvoid* ctftri(void)\n{\n    if (verbose) puts(\"STUB: ctftri called\");\n    return NULL;\n}\n\nvoid* ctftri_(void)\n{\n    if (verbose) puts(\"STUB: ctftri_ called\");\n    return NULL;\n}\n\nvoid* ctfttp(void)\n{\n    if (verbose) puts(\"STUB: ctfttp called\");\n    return NULL;\n}\n\nvoid* ctfttp_(void)\n{\n    if (verbose) puts(\"STUB: ctfttp_ called\");\n    return NULL;\n}\n\nvoid* ctfttr(void)\n{\n    if (verbose) puts(\"STUB: ctfttr called\");\n    return NULL;\n}\n\nvoid* ctfttr_(void)\n{\n    if (verbose) puts(\"STUB: ctfttr_ called\");\n    return NULL;\n}\n\nvoid* ctgevc(void)\n{\n    if (verbose) puts(\"STUB: ctgevc called\");\n    return NULL;\n}\n\nvoid* ctgevc_(void)\n{\n    if (verbose) puts(\"STUB: ctgevc_ called\");\n    return NULL;\n}\n\nvoid* ctgex2(void)\n{\n    if (verbose) puts(\"STUB: ctgex2 called\");\n    return NULL;\n}\n\nvoid* ctgex2_(void)\n{\n    if (verbose) puts(\"STUB: ctgex2_ called\");\n    return NULL;\n}\n\nvoid* ctgexc(void)\n{\n    if (verbose) puts(\"STUB: ctgexc called\");\n    return NULL;\n}\n\nvoid* ctgexc_(void)\n{\n    if (verbose) puts(\"STUB: ctgexc_ called\");\n    return NULL;\n}\n\nvoid* ctgsen(void)\n{\n    if (verbose) puts(\"STUB: ctgsen called\");\n    return NULL;\n}\n\nvoid* ctgsen_(void)\n{\n    if (verbose) puts(\"STUB: ctgsen_ called\");\n    return NULL;\n}\n\nvoid* ctgsja(void)\n{\n    if (verbose) puts(\"STUB: ctgsja called\");\n    return NULL;\n}\n\nvoid* ctgsja_(void)\n{\n    if (verbose) puts(\"STUB: ctgsja_ called\");\n    return NULL;\n}\n\nvoid* ctgsna(void)\n{\n    if (verbose) puts(\"STUB: ctgsna called\");\n    return NULL;\n}\n\nvoid* ctgsna_(void)\n{\n    if (verbose) puts(\"STUB: ctgsna_ called\");\n    return NULL;\n}\n\nvoid* ctgsy2(void)\n{\n    if (verbose) puts(\"STUB: ctgsy2 called\");\n    return NULL;\n}\n\nvoid* ctgsy2_(void)\n{\n    if (verbose) puts(\"STUB: ctgsy2_ called\");\n    return NULL;\n}\n\nvoid* ctgsyl(void)\n{\n    if (verbose) puts(\"STUB: ctgsyl called\");\n    return NULL;\n}\n\nvoid* ctgsyl_(void)\n{\n    if (verbose) puts(\"STUB: ctgsyl_ called\");\n    return NULL;\n}\n\nvoid* ctpcon(void)\n{\n    if (verbose) puts(\"STUB: ctpcon called\");\n    return NULL;\n}\n\nvoid* ctpcon_(void)\n{\n    if (verbose) puts(\"STUB: ctpcon_ called\");\n    return NULL;\n}\n\nvoid* ctprfs(void)\n{\n    if (verbose) puts(\"STUB: ctprfs called\");\n    return NULL;\n}\n\nvoid* ctprfs_(void)\n{\n    if (verbose) puts(\"STUB: ctprfs_ called\");\n    return NULL;\n}\n\nvoid* ctptri(void)\n{\n    if (verbose) puts(\"STUB: ctptri called\");\n    return NULL;\n}\n\nvoid* ctptri_(void)\n{\n    if (verbose) puts(\"STUB: ctptri_ called\");\n    return NULL;\n}\n\nvoid* ctptrs(void)\n{\n    if (verbose) puts(\"STUB: ctptrs called\");\n    return NULL;\n}\n\nvoid* ctptrs_(void)\n{\n    if (verbose) puts(\"STUB: ctptrs_ called\");\n    return NULL;\n}\n\nvoid* ctpttf(void)\n{\n    if (verbose) puts(\"STUB: ctpttf called\");\n    return NULL;\n}\n\nvoid* ctpttf_(void)\n{\n    if (verbose) puts(\"STUB: ctpttf_ called\");\n    return NULL;\n}\n\nvoid* ctpttr(void)\n{\n    if (verbose) puts(\"STUB: ctpttr called\");\n    return NULL;\n}\n\nvoid* ctpttr_(void)\n{\n    if (verbose) puts(\"STUB: ctpttr_ called\");\n    return NULL;\n}\n\nvoid* ctrcon(void)\n{\n    if (verbose) puts(\"STUB: ctrcon called\");\n    return NULL;\n}\n\nvoid* ctrcon_(void)\n{\n    if (verbose) puts(\"STUB: ctrcon_ called\");\n    return NULL;\n}\n\nvoid* ctrevc(void)\n{\n    if (verbose) puts(\"STUB: ctrevc called\");\n    return NULL;\n}\n\nvoid* ctrevc_(void)\n{\n    if (verbose) puts(\"STUB: ctrevc_ called\");\n    return NULL;\n}\n\nvoid* ctrexc(void)\n{\n    if (verbose) puts(\"STUB: ctrexc called\");\n    return NULL;\n}\n\nvoid* ctrexc_(void)\n{\n    if (verbose) puts(\"STUB: ctrexc_ called\");\n    return NULL;\n}\n\nvoid* ctrrfs(void)\n{\n    if (verbose) puts(\"STUB: ctrrfs called\");\n    return NULL;\n}\n\nvoid* ctrrfs_(void)\n{\n    if (verbose) puts(\"STUB: ctrrfs_ called\");\n    return NULL;\n}\n\nvoid* ctrsen(void)\n{\n    if (verbose) puts(\"STUB: ctrsen called\");\n    return NULL;\n}\n\nvoid* ctrsen_(void)\n{\n    if (verbose) puts(\"STUB: ctrsen_ called\");\n    return NULL;\n}\n\nvoid* ctrsna(void)\n{\n    if (verbose) puts(\"STUB: ctrsna called\");\n    return NULL;\n}\n\nvoid* ctrsna_(void)\n{\n    if (verbose) puts(\"STUB: ctrsna_ called\");\n    return NULL;\n}\n\nvoid* ctrsyl(void)\n{\n    if (verbose) puts(\"STUB: ctrsyl called\");\n    return NULL;\n}\n\nvoid* ctrsyl_(void)\n{\n    if (verbose) puts(\"STUB: ctrsyl_ called\");\n    return NULL;\n}\n\nvoid* ctrti2(void)\n{\n    if (verbose) puts(\"STUB: ctrti2 called\");\n    return NULL;\n}\n\nvoid* ctrti2_(void)\n{\n    if (verbose) puts(\"STUB: ctrti2_ called\");\n    return NULL;\n}\n\nvoid* ctrtri(void)\n{\n    if (verbose) puts(\"STUB: ctrtri called\");\n    return NULL;\n}\n\nvoid* ctrtri_(void)\n{\n    if (verbose) puts(\"STUB: ctrtri_ called\");\n    return NULL;\n}\n\nvoid* ctrtrs(void)\n{\n    if (verbose) puts(\"STUB: ctrtrs called\");\n    return NULL;\n}\n\nvoid* ctrtrs_(void)\n{\n    if (verbose) puts(\"STUB: ctrtrs_ called\");\n    return NULL;\n}\n\nvoid* ctrttf(void)\n{\n    if (verbose) puts(\"STUB: ctrttf called\");\n    return NULL;\n}\n\nvoid* ctrttf_(void)\n{\n    if (verbose) puts(\"STUB: ctrttf_ called\");\n    return NULL;\n}\n\nvoid* ctrttp(void)\n{\n    if (verbose) puts(\"STUB: ctrttp called\");\n    return NULL;\n}\n\nvoid* ctrttp_(void)\n{\n    if (verbose) puts(\"STUB: ctrttp_ called\");\n    return NULL;\n}\n\nvoid* ctzrqf(void)\n{\n    if (verbose) puts(\"STUB: ctzrqf called\");\n    return NULL;\n}\n\nvoid* ctzrqf_(void)\n{\n    if (verbose) puts(\"STUB: ctzrqf_ called\");\n    return NULL;\n}\n\nvoid* ctzrzf(void)\n{\n    if (verbose) puts(\"STUB: ctzrzf called\");\n    return NULL;\n}\n\nvoid* ctzrzf_(void)\n{\n    if (verbose) puts(\"STUB: ctzrzf_ called\");\n    return NULL;\n}\n\nvoid* cung2l(void)\n{\n    if (verbose) puts(\"STUB: cung2l called\");\n    return NULL;\n}\n\nvoid* cung2l_(void)\n{\n    if (verbose) puts(\"STUB: cung2l_ called\");\n    return NULL;\n}\n\nvoid* cung2r(void)\n{\n    if (verbose) puts(\"STUB: cung2r called\");\n    return NULL;\n}\n\nvoid* cung2r_(void)\n{\n    if (verbose) puts(\"STUB: cung2r_ called\");\n    return NULL;\n}\n\nvoid* cungbr(void)\n{\n    if (verbose) puts(\"STUB: cungbr called\");\n    return NULL;\n}\n\nvoid* cungbr_(void)\n{\n    if (verbose) puts(\"STUB: cungbr_ called\");\n    return NULL;\n}\n\nvoid* cunghr(void)\n{\n    if (verbose) puts(\"STUB: cunghr called\");\n    return NULL;\n}\n\nvoid* cunghr_(void)\n{\n    if (verbose) puts(\"STUB: cunghr_ called\");\n    return NULL;\n}\n\nvoid* cungl2(void)\n{\n    if (verbose) puts(\"STUB: cungl2 called\");\n    return NULL;\n}\n\nvoid* cungl2_(void)\n{\n    if (verbose) puts(\"STUB: cungl2_ called\");\n    return NULL;\n}\n\nvoid* cunglq(void)\n{\n    if (verbose) puts(\"STUB: cunglq called\");\n    return NULL;\n}\n\nvoid* cunglq_(void)\n{\n    if (verbose) puts(\"STUB: cunglq_ called\");\n    return NULL;\n}\n\nvoid* cungql(void)\n{\n    if (verbose) puts(\"STUB: cungql called\");\n    return NULL;\n}\n\nvoid* cungql_(void)\n{\n    if (verbose) puts(\"STUB: cungql_ called\");\n    return NULL;\n}\n\nvoid* cungqr(void)\n{\n    if (verbose) puts(\"STUB: cungqr called\");\n    return NULL;\n}\n\nvoid* cungqr_(void)\n{\n    if (verbose) puts(\"STUB: cungqr_ called\");\n    return NULL;\n}\n\nvoid* cungr2(void)\n{\n    if (verbose) puts(\"STUB: cungr2 called\");\n    return NULL;\n}\n\nvoid* cungr2_(void)\n{\n    if (verbose) puts(\"STUB: cungr2_ called\");\n    return NULL;\n}\n\nvoid* cungrq(void)\n{\n    if (verbose) puts(\"STUB: cungrq called\");\n    return NULL;\n}\n\nvoid* cungrq_(void)\n{\n    if (verbose) puts(\"STUB: cungrq_ called\");\n    return NULL;\n}\n\nvoid* cungtr(void)\n{\n    if (verbose) puts(\"STUB: cungtr called\");\n    return NULL;\n}\n\nvoid* cungtr_(void)\n{\n    if (verbose) puts(\"STUB: cungtr_ called\");\n    return NULL;\n}\n\nvoid* cunm2l(void)\n{\n    if (verbose) puts(\"STUB: cunm2l called\");\n    return NULL;\n}\n\nvoid* cunm2l_(void)\n{\n    if (verbose) puts(\"STUB: cunm2l_ called\");\n    return NULL;\n}\n\nvoid* cunm2r(void)\n{\n    if (verbose) puts(\"STUB: cunm2r called\");\n    return NULL;\n}\n\nvoid* cunm2r_(void)\n{\n    if (verbose) puts(\"STUB: cunm2r_ called\");\n    return NULL;\n}\n\nvoid* cunmbr(void)\n{\n    if (verbose) puts(\"STUB: cunmbr called\");\n    return NULL;\n}\n\nvoid* cunmbr_(void)\n{\n    if (verbose) puts(\"STUB: cunmbr_ called\");\n    return NULL;\n}\n\nvoid* cunmhr(void)\n{\n    if (verbose) puts(\"STUB: cunmhr called\");\n    return NULL;\n}\n\nvoid* cunmhr_(void)\n{\n    if (verbose) puts(\"STUB: cunmhr_ called\");\n    return NULL;\n}\n\nvoid* cunml2(void)\n{\n    if (verbose) puts(\"STUB: cunml2 called\");\n    return NULL;\n}\n\nvoid* cunml2_(void)\n{\n    if (verbose) puts(\"STUB: cunml2_ called\");\n    return NULL;\n}\n\nvoid* cunmlq(void)\n{\n    if (verbose) puts(\"STUB: cunmlq called\");\n    return NULL;\n}\n\nvoid* cunmlq_(void)\n{\n    if (verbose) puts(\"STUB: cunmlq_ called\");\n    return NULL;\n}\n\nvoid* cunmql(void)\n{\n    if (verbose) puts(\"STUB: cunmql called\");\n    return NULL;\n}\n\nvoid* cunmql_(void)\n{\n    if (verbose) puts(\"STUB: cunmql_ called\");\n    return NULL;\n}\n\nvoid* cunmqr(void)\n{\n    if (verbose) puts(\"STUB: cunmqr called\");\n    return NULL;\n}\n\nvoid* cunmqr_(void)\n{\n    if (verbose) puts(\"STUB: cunmqr_ called\");\n    return NULL;\n}\n\nvoid* cunmr2(void)\n{\n    if (verbose) puts(\"STUB: cunmr2 called\");\n    return NULL;\n}\n\nvoid* cunmr2_(void)\n{\n    if (verbose) puts(\"STUB: cunmr2_ called\");\n    return NULL;\n}\n\nvoid* cunmr3(void)\n{\n    if (verbose) puts(\"STUB: cunmr3 called\");\n    return NULL;\n}\n\nvoid* cunmr3_(void)\n{\n    if (verbose) puts(\"STUB: cunmr3_ called\");\n    return NULL;\n}\n\nvoid* cunmrq(void)\n{\n    if (verbose) puts(\"STUB: cunmrq called\");\n    return NULL;\n}\n\nvoid* cunmrq_(void)\n{\n    if (verbose) puts(\"STUB: cunmrq_ called\");\n    return NULL;\n}\n\nvoid* cunmrz(void)\n{\n    if (verbose) puts(\"STUB: cunmrz called\");\n    return NULL;\n}\n\nvoid* cunmrz_(void)\n{\n    if (verbose) puts(\"STUB: cunmrz_ called\");\n    return NULL;\n}\n\nvoid* cunmtr(void)\n{\n    if (verbose) puts(\"STUB: cunmtr called\");\n    return NULL;\n}\n\nvoid* cunmtr_(void)\n{\n    if (verbose) puts(\"STUB: cunmtr_ called\");\n    return NULL;\n}\n\nvoid* cupgtr(void)\n{\n    if (verbose) puts(\"STUB: cupgtr called\");\n    return NULL;\n}\n\nvoid* cupgtr_(void)\n{\n    if (verbose) puts(\"STUB: cupgtr_ called\");\n    return NULL;\n}\n\nvoid* cupmtr(void)\n{\n    if (verbose) puts(\"STUB: cupmtr called\");\n    return NULL;\n}\n\nvoid* cupmtr_(void)\n{\n    if (verbose) puts(\"STUB: cupmtr_ called\");\n    return NULL;\n}\n\nvoid* dbdsdc(void)\n{\n    if (verbose) puts(\"STUB: dbdsdc called\");\n    return NULL;\n}\n\nvoid* dbdsdc_(void)\n{\n    if (verbose) puts(\"STUB: dbdsdc_ called\");\n    return NULL;\n}\n\nvoid* dbdsqr(void)\n{\n    if (verbose) puts(\"STUB: dbdsqr called\");\n    return NULL;\n}\n\nvoid* dbdsqr_(void)\n{\n    if (verbose) puts(\"STUB: dbdsqr_ called\");\n    return NULL;\n}\n\nvoid* ddisna(void)\n{\n    if (verbose) puts(\"STUB: ddisna called\");\n    return NULL;\n}\n\nvoid* ddisna_(void)\n{\n    if (verbose) puts(\"STUB: ddisna_ called\");\n    return NULL;\n}\n\nvoid* dgbbrd(void)\n{\n    if (verbose) puts(\"STUB: dgbbrd called\");\n    return NULL;\n}\n\nvoid* dgbbrd_(void)\n{\n    if (verbose) puts(\"STUB: dgbbrd_ called\");\n    return NULL;\n}\n\nvoid* dgbcon(void)\n{\n    if (verbose) puts(\"STUB: dgbcon called\");\n    return NULL;\n}\n\nvoid* dgbcon_(void)\n{\n    if (verbose) puts(\"STUB: dgbcon_ called\");\n    return NULL;\n}\n\nvoid* dgbequ(void)\n{\n    if (verbose) puts(\"STUB: dgbequ called\");\n    return NULL;\n}\n\nvoid* dgbequ_(void)\n{\n    if (verbose) puts(\"STUB: dgbequ_ called\");\n    return NULL;\n}\n\nvoid* dgbequb(void)\n{\n    if (verbose) puts(\"STUB: dgbequb called\");\n    return NULL;\n}\n\nvoid* dgbequb_(void)\n{\n    if (verbose) puts(\"STUB: dgbequb_ called\");\n    return NULL;\n}\n\nvoid* dgbrfs(void)\n{\n    if (verbose) puts(\"STUB: dgbrfs called\");\n    return NULL;\n}\n\nvoid* dgbrfs_(void)\n{\n    if (verbose) puts(\"STUB: dgbrfs_ called\");\n    return NULL;\n}\n\nvoid* dgbsv(void)\n{\n    if (verbose) puts(\"STUB: dgbsv called\");\n    return NULL;\n}\n\nvoid* dgbsv_(void)\n{\n    if (verbose) puts(\"STUB: dgbsv_ called\");\n    return NULL;\n}\n\nvoid* dgbsvx(void)\n{\n    if (verbose) puts(\"STUB: dgbsvx called\");\n    return NULL;\n}\n\nvoid* dgbsvx_(void)\n{\n    if (verbose) puts(\"STUB: dgbsvx_ called\");\n    return NULL;\n}\n\nvoid* dgbtf2(void)\n{\n    if (verbose) puts(\"STUB: dgbtf2 called\");\n    return NULL;\n}\n\nvoid* dgbtf2_(void)\n{\n    if (verbose) puts(\"STUB: dgbtf2_ called\");\n    return NULL;\n}\n\nvoid* dgbtrf(void)\n{\n    if (verbose) puts(\"STUB: dgbtrf called\");\n    return NULL;\n}\n\nvoid* dgbtrf_(void)\n{\n    if (verbose) puts(\"STUB: dgbtrf_ called\");\n    return NULL;\n}\n\nvoid* dgbtrs(void)\n{\n    if (verbose) puts(\"STUB: dgbtrs called\");\n    return NULL;\n}\n\nvoid* dgbtrs_(void)\n{\n    if (verbose) puts(\"STUB: dgbtrs_ called\");\n    return NULL;\n}\n\nvoid* dgebak(void)\n{\n    if (verbose) puts(\"STUB: dgebak called\");\n    return NULL;\n}\n\nvoid* dgebak_(void)\n{\n    if (verbose) puts(\"STUB: dgebak_ called\");\n    return NULL;\n}\n\nvoid* dgebal(void)\n{\n    if (verbose) puts(\"STUB: dgebal called\");\n    return NULL;\n}\n\nvoid* dgebal_(void)\n{\n    if (verbose) puts(\"STUB: dgebal_ called\");\n    return NULL;\n}\n\nvoid* dgebd2(void)\n{\n    if (verbose) puts(\"STUB: dgebd2 called\");\n    return NULL;\n}\n\nvoid* dgebd2_(void)\n{\n    if (verbose) puts(\"STUB: dgebd2_ called\");\n    return NULL;\n}\n\nvoid* dgebrd(void)\n{\n    if (verbose) puts(\"STUB: dgebrd called\");\n    return NULL;\n}\n\nvoid* dgebrd_(void)\n{\n    if (verbose) puts(\"STUB: dgebrd_ called\");\n    return NULL;\n}\n\nvoid* dgecon(void)\n{\n    if (verbose) puts(\"STUB: dgecon called\");\n    return NULL;\n}\n\nvoid* dgecon_(void)\n{\n    if (verbose) puts(\"STUB: dgecon_ called\");\n    return NULL;\n}\n\nvoid* dgeequ(void)\n{\n    if (verbose) puts(\"STUB: dgeequ called\");\n    return NULL;\n}\n\nvoid* dgeequ_(void)\n{\n    if (verbose) puts(\"STUB: dgeequ_ called\");\n    return NULL;\n}\n\nvoid* dgeequb(void)\n{\n    if (verbose) puts(\"STUB: dgeequb called\");\n    return NULL;\n}\n\nvoid* dgeequb_(void)\n{\n    if (verbose) puts(\"STUB: dgeequb_ called\");\n    return NULL;\n}\n\nvoid* dgees(void)\n{\n    if (verbose) puts(\"STUB: dgees called\");\n    return NULL;\n}\n\nvoid* dgees_(void)\n{\n    if (verbose) puts(\"STUB: dgees_ called\");\n    return NULL;\n}\n\nvoid* dgeesx(void)\n{\n    if (verbose) puts(\"STUB: dgeesx called\");\n    return NULL;\n}\n\nvoid* dgeesx_(void)\n{\n    if (verbose) puts(\"STUB: dgeesx_ called\");\n    return NULL;\n}\n\nvoid* dgeev(void)\n{\n    if (verbose) puts(\"STUB: dgeev called\");\n    return NULL;\n}\n\nvoid* dgeev_(void)\n{\n    if (verbose) puts(\"STUB: dgeev_ called\");\n    return NULL;\n}\n\nvoid* dgeevx(void)\n{\n    if (verbose) puts(\"STUB: dgeevx called\");\n    return NULL;\n}\n\nvoid* dgeevx_(void)\n{\n    if (verbose) puts(\"STUB: dgeevx_ called\");\n    return NULL;\n}\n\nvoid* dgegs(void)\n{\n    if (verbose) puts(\"STUB: dgegs called\");\n    return NULL;\n}\n\nvoid* dgegs_(void)\n{\n    if (verbose) puts(\"STUB: dgegs_ called\");\n    return NULL;\n}\n\nvoid* dgegv(void)\n{\n    if (verbose) puts(\"STUB: dgegv called\");\n    return NULL;\n}\n\nvoid* dgegv_(void)\n{\n    if (verbose) puts(\"STUB: dgegv_ called\");\n    return NULL;\n}\n\nvoid* dgehd2(void)\n{\n    if (verbose) puts(\"STUB: dgehd2 called\");\n    return NULL;\n}\n\nvoid* dgehd2_(void)\n{\n    if (verbose) puts(\"STUB: dgehd2_ called\");\n    return NULL;\n}\n\nvoid* dgehrd(void)\n{\n    if (verbose) puts(\"STUB: dgehrd called\");\n    return NULL;\n}\n\nvoid* dgehrd_(void)\n{\n    if (verbose) puts(\"STUB: dgehrd_ called\");\n    return NULL;\n}\n\nvoid* dgejsv(void)\n{\n    if (verbose) puts(\"STUB: dgejsv called\");\n    return NULL;\n}\n\nvoid* dgejsv_(void)\n{\n    if (verbose) puts(\"STUB: dgejsv_ called\");\n    return NULL;\n}\n\nvoid* dgelq2(void)\n{\n    if (verbose) puts(\"STUB: dgelq2 called\");\n    return NULL;\n}\n\nvoid* dgelq2_(void)\n{\n    if (verbose) puts(\"STUB: dgelq2_ called\");\n    return NULL;\n}\n\nvoid* dgelqf(void)\n{\n    if (verbose) puts(\"STUB: dgelqf called\");\n    return NULL;\n}\n\nvoid* dgelqf_(void)\n{\n    if (verbose) puts(\"STUB: dgelqf_ called\");\n    return NULL;\n}\n\nvoid* dgels(void)\n{\n    if (verbose) puts(\"STUB: dgels called\");\n    return NULL;\n}\n\nvoid* dgels_(void)\n{\n    if (verbose) puts(\"STUB: dgels_ called\");\n    return NULL;\n}\n\nvoid* dgelsd(void)\n{\n    if (verbose) puts(\"STUB: dgelsd called\");\n    return NULL;\n}\n\nvoid* dgelsd_(void)\n{\n    if (verbose) puts(\"STUB: dgelsd_ called\");\n    return NULL;\n}\n\nvoid* dgelss(void)\n{\n    if (verbose) puts(\"STUB: dgelss called\");\n    return NULL;\n}\n\nvoid* dgelss_(void)\n{\n    if (verbose) puts(\"STUB: dgelss_ called\");\n    return NULL;\n}\n\nvoid* dgelsx(void)\n{\n    if (verbose) puts(\"STUB: dgelsx called\");\n    return NULL;\n}\n\nvoid* dgelsx_(void)\n{\n    if (verbose) puts(\"STUB: dgelsx_ called\");\n    return NULL;\n}\n\nvoid* dgelsy(void)\n{\n    if (verbose) puts(\"STUB: dgelsy called\");\n    return NULL;\n}\n\nvoid* dgelsy_(void)\n{\n    if (verbose) puts(\"STUB: dgelsy_ called\");\n    return NULL;\n}\n\nvoid* dgeql2(void)\n{\n    if (verbose) puts(\"STUB: dgeql2 called\");\n    return NULL;\n}\n\nvoid* dgeql2_(void)\n{\n    if (verbose) puts(\"STUB: dgeql2_ called\");\n    return NULL;\n}\n\nvoid* dgeqlf(void)\n{\n    if (verbose) puts(\"STUB: dgeqlf called\");\n    return NULL;\n}\n\nvoid* dgeqlf_(void)\n{\n    if (verbose) puts(\"STUB: dgeqlf_ called\");\n    return NULL;\n}\n\nvoid* dgeqp3(void)\n{\n    if (verbose) puts(\"STUB: dgeqp3 called\");\n    return NULL;\n}\n\nvoid* dgeqp3_(void)\n{\n    if (verbose) puts(\"STUB: dgeqp3_ called\");\n    return NULL;\n}\n\nvoid* dgeqpf(void)\n{\n    if (verbose) puts(\"STUB: dgeqpf called\");\n    return NULL;\n}\n\nvoid* dgeqpf_(void)\n{\n    if (verbose) puts(\"STUB: dgeqpf_ called\");\n    return NULL;\n}\n\nvoid* dgeqr2(void)\n{\n    if (verbose) puts(\"STUB: dgeqr2 called\");\n    return NULL;\n}\n\nvoid* dgeqr2_(void)\n{\n    if (verbose) puts(\"STUB: dgeqr2_ called\");\n    return NULL;\n}\n\nvoid* dgeqrf(void)\n{\n    if (verbose) puts(\"STUB: dgeqrf called\");\n    return NULL;\n}\n\nvoid* dgeqrf_(void)\n{\n    if (verbose) puts(\"STUB: dgeqrf_ called\");\n    return NULL;\n}\n\nvoid* dgerfs(void)\n{\n    if (verbose) puts(\"STUB: dgerfs called\");\n    return NULL;\n}\n\nvoid* dgerfs_(void)\n{\n    if (verbose) puts(\"STUB: dgerfs_ called\");\n    return NULL;\n}\n\nvoid* dgerq2(void)\n{\n    if (verbose) puts(\"STUB: dgerq2 called\");\n    return NULL;\n}\n\nvoid* dgerq2_(void)\n{\n    if (verbose) puts(\"STUB: dgerq2_ called\");\n    return NULL;\n}\n\nvoid* dgerqf(void)\n{\n    if (verbose) puts(\"STUB: dgerqf called\");\n    return NULL;\n}\n\nvoid* dgerqf_(void)\n{\n    if (verbose) puts(\"STUB: dgerqf_ called\");\n    return NULL;\n}\n\nvoid* dgesc2(void)\n{\n    if (verbose) puts(\"STUB: dgesc2 called\");\n    return NULL;\n}\n\nvoid* dgesc2_(void)\n{\n    if (verbose) puts(\"STUB: dgesc2_ called\");\n    return NULL;\n}\n\nvoid* dgesdd(void)\n{\n    if (verbose) puts(\"STUB: dgesdd called\");\n    return NULL;\n}\n\nvoid* dgesdd_(void)\n{\n    if (verbose) puts(\"STUB: dgesdd_ called\");\n    return NULL;\n}\n\nvoid* dgesv(void)\n{\n    if (verbose) puts(\"STUB: dgesv called\");\n    return NULL;\n}\n\nvoid* dgesv_(void)\n{\n    if (verbose) puts(\"STUB: dgesv_ called\");\n    return NULL;\n}\n\nvoid* dgesvd(void)\n{\n    if (verbose) puts(\"STUB: dgesvd called\");\n    return NULL;\n}\n\nvoid* dgesvd_(void)\n{\n    if (verbose) puts(\"STUB: dgesvd_ called\");\n    return NULL;\n}\n\nvoid* dgesvj(void)\n{\n    if (verbose) puts(\"STUB: dgesvj called\");\n    return NULL;\n}\n\nvoid* dgesvj_(void)\n{\n    if (verbose) puts(\"STUB: dgesvj_ called\");\n    return NULL;\n}\n\nvoid* dgesvx(void)\n{\n    if (verbose) puts(\"STUB: dgesvx called\");\n    return NULL;\n}\n\nvoid* dgesvx_(void)\n{\n    if (verbose) puts(\"STUB: dgesvx_ called\");\n    return NULL;\n}\n\nvoid* dgetc2(void)\n{\n    if (verbose) puts(\"STUB: dgetc2 called\");\n    return NULL;\n}\n\nvoid* dgetc2_(void)\n{\n    if (verbose) puts(\"STUB: dgetc2_ called\");\n    return NULL;\n}\n\nvoid* dgetf2(void)\n{\n    if (verbose) puts(\"STUB: dgetf2 called\");\n    return NULL;\n}\n\nvoid* dgetf2_(void)\n{\n    if (verbose) puts(\"STUB: dgetf2_ called\");\n    return NULL;\n}\n\nvoid* dgetrf(void)\n{\n    if (verbose) puts(\"STUB: dgetrf called\");\n    return NULL;\n}\n\nvoid* dgetrf_(void)\n{\n    if (verbose) puts(\"STUB: dgetrf_ called\");\n    return NULL;\n}\n\nvoid* dgetri(void)\n{\n    if (verbose) puts(\"STUB: dgetri called\");\n    return NULL;\n}\n\nvoid* dgetri_(void)\n{\n    if (verbose) puts(\"STUB: dgetri_ called\");\n    return NULL;\n}\n\nvoid* dgetrs(void)\n{\n    if (verbose) puts(\"STUB: dgetrs called\");\n    return NULL;\n}\n\nvoid* dgetrs_(void)\n{\n    if (verbose) puts(\"STUB: dgetrs_ called\");\n    return NULL;\n}\n\nvoid* dggbak(void)\n{\n    if (verbose) puts(\"STUB: dggbak called\");\n    return NULL;\n}\n\nvoid* dggbak_(void)\n{\n    if (verbose) puts(\"STUB: dggbak_ called\");\n    return NULL;\n}\n\nvoid* dggbal(void)\n{\n    if (verbose) puts(\"STUB: dggbal called\");\n    return NULL;\n}\n\nvoid* dggbal_(void)\n{\n    if (verbose) puts(\"STUB: dggbal_ called\");\n    return NULL;\n}\n\nvoid* dgges(void)\n{\n    if (verbose) puts(\"STUB: dgges called\");\n    return NULL;\n}\n\nvoid* dgges_(void)\n{\n    if (verbose) puts(\"STUB: dgges_ called\");\n    return NULL;\n}\n\nvoid* dggesx(void)\n{\n    if (verbose) puts(\"STUB: dggesx called\");\n    return NULL;\n}\n\nvoid* dggesx_(void)\n{\n    if (verbose) puts(\"STUB: dggesx_ called\");\n    return NULL;\n}\n\nvoid* dggev(void)\n{\n    if (verbose) puts(\"STUB: dggev called\");\n    return NULL;\n}\n\nvoid* dggev_(void)\n{\n    if (verbose) puts(\"STUB: dggev_ called\");\n    return NULL;\n}\n\nvoid* dggevx(void)\n{\n    if (verbose) puts(\"STUB: dggevx called\");\n    return NULL;\n}\n\nvoid* dggevx_(void)\n{\n    if (verbose) puts(\"STUB: dggevx_ called\");\n    return NULL;\n}\n\nvoid* dggglm(void)\n{\n    if (verbose) puts(\"STUB: dggglm called\");\n    return NULL;\n}\n\nvoid* dggglm_(void)\n{\n    if (verbose) puts(\"STUB: dggglm_ called\");\n    return NULL;\n}\n\nvoid* dgghrd(void)\n{\n    if (verbose) puts(\"STUB: dgghrd called\");\n    return NULL;\n}\n\nvoid* dgghrd_(void)\n{\n    if (verbose) puts(\"STUB: dgghrd_ called\");\n    return NULL;\n}\n\nvoid* dgglse(void)\n{\n    if (verbose) puts(\"STUB: dgglse called\");\n    return NULL;\n}\n\nvoid* dgglse_(void)\n{\n    if (verbose) puts(\"STUB: dgglse_ called\");\n    return NULL;\n}\n\nvoid* dggqrf(void)\n{\n    if (verbose) puts(\"STUB: dggqrf called\");\n    return NULL;\n}\n\nvoid* dggqrf_(void)\n{\n    if (verbose) puts(\"STUB: dggqrf_ called\");\n    return NULL;\n}\n\nvoid* dggrqf(void)\n{\n    if (verbose) puts(\"STUB: dggrqf called\");\n    return NULL;\n}\n\nvoid* dggrqf_(void)\n{\n    if (verbose) puts(\"STUB: dggrqf_ called\");\n    return NULL;\n}\n\nvoid* dggsvd(void)\n{\n    if (verbose) puts(\"STUB: dggsvd called\");\n    return NULL;\n}\n\nvoid* dggsvd_(void)\n{\n    if (verbose) puts(\"STUB: dggsvd_ called\");\n    return NULL;\n}\n\nvoid* dggsvp(void)\n{\n    if (verbose) puts(\"STUB: dggsvp called\");\n    return NULL;\n}\n\nvoid* dggsvp_(void)\n{\n    if (verbose) puts(\"STUB: dggsvp_ called\");\n    return NULL;\n}\n\nvoid* dgsvj0(void)\n{\n    if (verbose) puts(\"STUB: dgsvj0 called\");\n    return NULL;\n}\n\nvoid* dgsvj0_(void)\n{\n    if (verbose) puts(\"STUB: dgsvj0_ called\");\n    return NULL;\n}\n\nvoid* dgsvj1(void)\n{\n    if (verbose) puts(\"STUB: dgsvj1 called\");\n    return NULL;\n}\n\nvoid* dgsvj1_(void)\n{\n    if (verbose) puts(\"STUB: dgsvj1_ called\");\n    return NULL;\n}\n\nvoid* dgtcon(void)\n{\n    if (verbose) puts(\"STUB: dgtcon called\");\n    return NULL;\n}\n\nvoid* dgtcon_(void)\n{\n    if (verbose) puts(\"STUB: dgtcon_ called\");\n    return NULL;\n}\n\nvoid* dgtrfs(void)\n{\n    if (verbose) puts(\"STUB: dgtrfs called\");\n    return NULL;\n}\n\nvoid* dgtrfs_(void)\n{\n    if (verbose) puts(\"STUB: dgtrfs_ called\");\n    return NULL;\n}\n\nvoid* dgtsv(void)\n{\n    if (verbose) puts(\"STUB: dgtsv called\");\n    return NULL;\n}\n\nvoid* dgtsv_(void)\n{\n    if (verbose) puts(\"STUB: dgtsv_ called\");\n    return NULL;\n}\n\nvoid* dgtsvx(void)\n{\n    if (verbose) puts(\"STUB: dgtsvx called\");\n    return NULL;\n}\n\nvoid* dgtsvx_(void)\n{\n    if (verbose) puts(\"STUB: dgtsvx_ called\");\n    return NULL;\n}\n\nvoid* dgttrf(void)\n{\n    if (verbose) puts(\"STUB: dgttrf called\");\n    return NULL;\n}\n\nvoid* dgttrf_(void)\n{\n    if (verbose) puts(\"STUB: dgttrf_ called\");\n    return NULL;\n}\n\nvoid* dgttrs(void)\n{\n    if (verbose) puts(\"STUB: dgttrs called\");\n    return NULL;\n}\n\nvoid* dgttrs_(void)\n{\n    if (verbose) puts(\"STUB: dgttrs_ called\");\n    return NULL;\n}\n\nvoid* dgtts2(void)\n{\n    if (verbose) puts(\"STUB: dgtts2 called\");\n    return NULL;\n}\n\nvoid* dgtts2_(void)\n{\n    if (verbose) puts(\"STUB: dgtts2_ called\");\n    return NULL;\n}\n\nvoid* dhgeqz(void)\n{\n    if (verbose) puts(\"STUB: dhgeqz called\");\n    return NULL;\n}\n\nvoid* dhgeqz_(void)\n{\n    if (verbose) puts(\"STUB: dhgeqz_ called\");\n    return NULL;\n}\n\nvoid* dhsein(void)\n{\n    if (verbose) puts(\"STUB: dhsein called\");\n    return NULL;\n}\n\nvoid* dhsein_(void)\n{\n    if (verbose) puts(\"STUB: dhsein_ called\");\n    return NULL;\n}\n\nvoid* dhseqr(void)\n{\n    if (verbose) puts(\"STUB: dhseqr called\");\n    return NULL;\n}\n\nvoid* dhseqr_(void)\n{\n    if (verbose) puts(\"STUB: dhseqr_ called\");\n    return NULL;\n}\n\nvoid* disnan(void)\n{\n    if (verbose) puts(\"STUB: disnan called\");\n    return NULL;\n}\n\nvoid* disnan_(void)\n{\n    if (verbose) puts(\"STUB: disnan_ called\");\n    return NULL;\n}\n\nvoid* dlabad(void)\n{\n    if (verbose) puts(\"STUB: dlabad called\");\n    return NULL;\n}\n\nvoid* dlabad_(void)\n{\n    if (verbose) puts(\"STUB: dlabad_ called\");\n    return NULL;\n}\n\nvoid* dlabrd(void)\n{\n    if (verbose) puts(\"STUB: dlabrd called\");\n    return NULL;\n}\n\nvoid* dlabrd_(void)\n{\n    if (verbose) puts(\"STUB: dlabrd_ called\");\n    return NULL;\n}\n\nvoid* dlacn2(void)\n{\n    if (verbose) puts(\"STUB: dlacn2 called\");\n    return NULL;\n}\n\nvoid* dlacn2_(void)\n{\n    if (verbose) puts(\"STUB: dlacn2_ called\");\n    return NULL;\n}\n\nvoid* dlacon(void)\n{\n    if (verbose) puts(\"STUB: dlacon called\");\n    return NULL;\n}\n\nvoid* dlacon_(void)\n{\n    if (verbose) puts(\"STUB: dlacon_ called\");\n    return NULL;\n}\n\nvoid* dlacpy(void)\n{\n    if (verbose) puts(\"STUB: dlacpy called\");\n    return NULL;\n}\n\nvoid* dlacpy_(void)\n{\n    if (verbose) puts(\"STUB: dlacpy_ called\");\n    return NULL;\n}\n\nvoid* dladiv(void)\n{\n    if (verbose) puts(\"STUB: dladiv called\");\n    return NULL;\n}\n\nvoid* dladiv_(void)\n{\n    if (verbose) puts(\"STUB: dladiv_ called\");\n    return NULL;\n}\n\nvoid* dlae2(void)\n{\n    if (verbose) puts(\"STUB: dlae2 called\");\n    return NULL;\n}\n\nvoid* dlae2_(void)\n{\n    if (verbose) puts(\"STUB: dlae2_ called\");\n    return NULL;\n}\n\nvoid* dlaebz(void)\n{\n    if (verbose) puts(\"STUB: dlaebz called\");\n    return NULL;\n}\n\nvoid* dlaebz_(void)\n{\n    if (verbose) puts(\"STUB: dlaebz_ called\");\n    return NULL;\n}\n\nvoid* dlaed0(void)\n{\n    if (verbose) puts(\"STUB: dlaed0 called\");\n    return NULL;\n}\n\nvoid* dlaed0_(void)\n{\n    if (verbose) puts(\"STUB: dlaed0_ called\");\n    return NULL;\n}\n\nvoid* dlaed1(void)\n{\n    if (verbose) puts(\"STUB: dlaed1 called\");\n    return NULL;\n}\n\nvoid* dlaed1_(void)\n{\n    if (verbose) puts(\"STUB: dlaed1_ called\");\n    return NULL;\n}\n\nvoid* dlaed2(void)\n{\n    if (verbose) puts(\"STUB: dlaed2 called\");\n    return NULL;\n}\n\nvoid* dlaed2_(void)\n{\n    if (verbose) puts(\"STUB: dlaed2_ called\");\n    return NULL;\n}\n\nvoid* dlaed3(void)\n{\n    if (verbose) puts(\"STUB: dlaed3 called\");\n    return NULL;\n}\n\nvoid* dlaed3_(void)\n{\n    if (verbose) puts(\"STUB: dlaed3_ called\");\n    return NULL;\n}\n\nvoid* dlaed4(void)\n{\n    if (verbose) puts(\"STUB: dlaed4 called\");\n    return NULL;\n}\n\nvoid* dlaed4_(void)\n{\n    if (verbose) puts(\"STUB: dlaed4_ called\");\n    return NULL;\n}\n\nvoid* dlaed5(void)\n{\n    if (verbose) puts(\"STUB: dlaed5 called\");\n    return NULL;\n}\n\nvoid* dlaed5_(void)\n{\n    if (verbose) puts(\"STUB: dlaed5_ called\");\n    return NULL;\n}\n\nvoid* dlaed6(void)\n{\n    if (verbose) puts(\"STUB: dlaed6 called\");\n    return NULL;\n}\n\nvoid* dlaed6_(void)\n{\n    if (verbose) puts(\"STUB: dlaed6_ called\");\n    return NULL;\n}\n\nvoid* dlaed7(void)\n{\n    if (verbose) puts(\"STUB: dlaed7 called\");\n    return NULL;\n}\n\nvoid* dlaed7_(void)\n{\n    if (verbose) puts(\"STUB: dlaed7_ called\");\n    return NULL;\n}\n\nvoid* dlaed8(void)\n{\n    if (verbose) puts(\"STUB: dlaed8 called\");\n    return NULL;\n}\n\nvoid* dlaed8_(void)\n{\n    if (verbose) puts(\"STUB: dlaed8_ called\");\n    return NULL;\n}\n\nvoid* dlaed9(void)\n{\n    if (verbose) puts(\"STUB: dlaed9 called\");\n    return NULL;\n}\n\nvoid* dlaed9_(void)\n{\n    if (verbose) puts(\"STUB: dlaed9_ called\");\n    return NULL;\n}\n\nvoid* dlaeda(void)\n{\n    if (verbose) puts(\"STUB: dlaeda called\");\n    return NULL;\n}\n\nvoid* dlaeda_(void)\n{\n    if (verbose) puts(\"STUB: dlaeda_ called\");\n    return NULL;\n}\n\nvoid* dlaein(void)\n{\n    if (verbose) puts(\"STUB: dlaein called\");\n    return NULL;\n}\n\nvoid* dlaein_(void)\n{\n    if (verbose) puts(\"STUB: dlaein_ called\");\n    return NULL;\n}\n\nvoid* dlaev2(void)\n{\n    if (verbose) puts(\"STUB: dlaev2 called\");\n    return NULL;\n}\n\nvoid* dlaev2_(void)\n{\n    if (verbose) puts(\"STUB: dlaev2_ called\");\n    return NULL;\n}\n\nvoid* dlaexc(void)\n{\n    if (verbose) puts(\"STUB: dlaexc called\");\n    return NULL;\n}\n\nvoid* dlaexc_(void)\n{\n    if (verbose) puts(\"STUB: dlaexc_ called\");\n    return NULL;\n}\n\nvoid* dlag2(void)\n{\n    if (verbose) puts(\"STUB: dlag2 called\");\n    return NULL;\n}\n\nvoid* dlag2_(void)\n{\n    if (verbose) puts(\"STUB: dlag2_ called\");\n    return NULL;\n}\n\nvoid* dlag2s(void)\n{\n    if (verbose) puts(\"STUB: dlag2s called\");\n    return NULL;\n}\n\nvoid* dlag2s_(void)\n{\n    if (verbose) puts(\"STUB: dlag2s_ called\");\n    return NULL;\n}\n\nvoid* dlags2(void)\n{\n    if (verbose) puts(\"STUB: dlags2 called\");\n    return NULL;\n}\n\nvoid* dlags2_(void)\n{\n    if (verbose) puts(\"STUB: dlags2_ called\");\n    return NULL;\n}\n\nvoid* dlagtf(void)\n{\n    if (verbose) puts(\"STUB: dlagtf called\");\n    return NULL;\n}\n\nvoid* dlagtf_(void)\n{\n    if (verbose) puts(\"STUB: dlagtf_ called\");\n    return NULL;\n}\n\nvoid* dlagtm(void)\n{\n    if (verbose) puts(\"STUB: dlagtm called\");\n    return NULL;\n}\n\nvoid* dlagtm_(void)\n{\n    if (verbose) puts(\"STUB: dlagtm_ called\");\n    return NULL;\n}\n\nvoid* dlagts(void)\n{\n    if (verbose) puts(\"STUB: dlagts called\");\n    return NULL;\n}\n\nvoid* dlagts_(void)\n{\n    if (verbose) puts(\"STUB: dlagts_ called\");\n    return NULL;\n}\n\nvoid* dlagv2(void)\n{\n    if (verbose) puts(\"STUB: dlagv2 called\");\n    return NULL;\n}\n\nvoid* dlagv2_(void)\n{\n    if (verbose) puts(\"STUB: dlagv2_ called\");\n    return NULL;\n}\n\nvoid* dlahqr(void)\n{\n    if (verbose) puts(\"STUB: dlahqr called\");\n    return NULL;\n}\n\nvoid* dlahqr_(void)\n{\n    if (verbose) puts(\"STUB: dlahqr_ called\");\n    return NULL;\n}\n\nvoid* dlahr2(void)\n{\n    if (verbose) puts(\"STUB: dlahr2 called\");\n    return NULL;\n}\n\nvoid* dlahr2_(void)\n{\n    if (verbose) puts(\"STUB: dlahr2_ called\");\n    return NULL;\n}\n\nvoid* dlahrd(void)\n{\n    if (verbose) puts(\"STUB: dlahrd called\");\n    return NULL;\n}\n\nvoid* dlahrd_(void)\n{\n    if (verbose) puts(\"STUB: dlahrd_ called\");\n    return NULL;\n}\n\nvoid* dlaic1(void)\n{\n    if (verbose) puts(\"STUB: dlaic1 called\");\n    return NULL;\n}\n\nvoid* dlaic1_(void)\n{\n    if (verbose) puts(\"STUB: dlaic1_ called\");\n    return NULL;\n}\n\nvoid* dlaisnan(void)\n{\n    if (verbose) puts(\"STUB: dlaisnan called\");\n    return NULL;\n}\n\nvoid* dlaisnan_(void)\n{\n    if (verbose) puts(\"STUB: dlaisnan_ called\");\n    return NULL;\n}\n\nvoid* dlaln2(void)\n{\n    if (verbose) puts(\"STUB: dlaln2 called\");\n    return NULL;\n}\n\nvoid* dlaln2_(void)\n{\n    if (verbose) puts(\"STUB: dlaln2_ called\");\n    return NULL;\n}\n\nvoid* dlals0(void)\n{\n    if (verbose) puts(\"STUB: dlals0 called\");\n    return NULL;\n}\n\nvoid* dlals0_(void)\n{\n    if (verbose) puts(\"STUB: dlals0_ called\");\n    return NULL;\n}\n\nvoid* dlalsa(void)\n{\n    if (verbose) puts(\"STUB: dlalsa called\");\n    return NULL;\n}\n\nvoid* dlalsa_(void)\n{\n    if (verbose) puts(\"STUB: dlalsa_ called\");\n    return NULL;\n}\n\nvoid* dlalsd(void)\n{\n    if (verbose) puts(\"STUB: dlalsd called\");\n    return NULL;\n}\n\nvoid* dlalsd_(void)\n{\n    if (verbose) puts(\"STUB: dlalsd_ called\");\n    return NULL;\n}\n\nvoid* dlamc1(void)\n{\n    if (verbose) puts(\"STUB: dlamc1 called\");\n    return NULL;\n}\n\nvoid* dlamc1_(void)\n{\n    if (verbose) puts(\"STUB: dlamc1_ called\");\n    return NULL;\n}\n\nvoid* dlamc2(void)\n{\n    if (verbose) puts(\"STUB: dlamc2 called\");\n    return NULL;\n}\n\nvoid* dlamc2_(void)\n{\n    if (verbose) puts(\"STUB: dlamc2_ called\");\n    return NULL;\n}\n\nvoid* dlamc3(void)\n{\n    if (verbose) puts(\"STUB: dlamc3 called\");\n    return NULL;\n}\n\nvoid* dlamc3_(void)\n{\n    if (verbose) puts(\"STUB: dlamc3_ called\");\n    return NULL;\n}\n\nvoid* dlamc4(void)\n{\n    if (verbose) puts(\"STUB: dlamc4 called\");\n    return NULL;\n}\n\nvoid* dlamc4_(void)\n{\n    if (verbose) puts(\"STUB: dlamc4_ called\");\n    return NULL;\n}\n\nvoid* dlamc5(void)\n{\n    if (verbose) puts(\"STUB: dlamc5 called\");\n    return NULL;\n}\n\nvoid* dlamc5_(void)\n{\n    if (verbose) puts(\"STUB: dlamc5_ called\");\n    return NULL;\n}\n\nvoid* dlamch(void)\n{\n    if (verbose) puts(\"STUB: dlamch called\");\n    return NULL;\n}\n\nvoid* dlamch_(void)\n{\n    if (verbose) puts(\"STUB: dlamch_ called\");\n    return NULL;\n}\n\nvoid* dlamrg(void)\n{\n    if (verbose) puts(\"STUB: dlamrg called\");\n    return NULL;\n}\n\nvoid* dlamrg_(void)\n{\n    if (verbose) puts(\"STUB: dlamrg_ called\");\n    return NULL;\n}\n\nvoid* dlaneg(void)\n{\n    if (verbose) puts(\"STUB: dlaneg called\");\n    return NULL;\n}\n\nvoid* dlaneg_(void)\n{\n    if (verbose) puts(\"STUB: dlaneg_ called\");\n    return NULL;\n}\n\nvoid* dlangb(void)\n{\n    if (verbose) puts(\"STUB: dlangb called\");\n    return NULL;\n}\n\nvoid* dlangb_(void)\n{\n    if (verbose) puts(\"STUB: dlangb_ called\");\n    return NULL;\n}\n\nvoid* dlange(void)\n{\n    if (verbose) puts(\"STUB: dlange called\");\n    return NULL;\n}\n\nvoid* dlange_(void)\n{\n    if (verbose) puts(\"STUB: dlange_ called\");\n    return NULL;\n}\n\nvoid* dlangt(void)\n{\n    if (verbose) puts(\"STUB: dlangt called\");\n    return NULL;\n}\n\nvoid* dlangt_(void)\n{\n    if (verbose) puts(\"STUB: dlangt_ called\");\n    return NULL;\n}\n\nvoid* dlanhs(void)\n{\n    if (verbose) puts(\"STUB: dlanhs called\");\n    return NULL;\n}\n\nvoid* dlanhs_(void)\n{\n    if (verbose) puts(\"STUB: dlanhs_ called\");\n    return NULL;\n}\n\nvoid* dlansb(void)\n{\n    if (verbose) puts(\"STUB: dlansb called\");\n    return NULL;\n}\n\nvoid* dlansb_(void)\n{\n    if (verbose) puts(\"STUB: dlansb_ called\");\n    return NULL;\n}\n\nvoid* dlansf(void)\n{\n    if (verbose) puts(\"STUB: dlansf called\");\n    return NULL;\n}\n\nvoid* dlansf_(void)\n{\n    if (verbose) puts(\"STUB: dlansf_ called\");\n    return NULL;\n}\n\nvoid* dlansp(void)\n{\n    if (verbose) puts(\"STUB: dlansp called\");\n    return NULL;\n}\n\nvoid* dlansp_(void)\n{\n    if (verbose) puts(\"STUB: dlansp_ called\");\n    return NULL;\n}\n\nvoid* dlanst(void)\n{\n    if (verbose) puts(\"STUB: dlanst called\");\n    return NULL;\n}\n\nvoid* dlanst_(void)\n{\n    if (verbose) puts(\"STUB: dlanst_ called\");\n    return NULL;\n}\n\nvoid* dlansy(void)\n{\n    if (verbose) puts(\"STUB: dlansy called\");\n    return NULL;\n}\n\nvoid* dlansy_(void)\n{\n    if (verbose) puts(\"STUB: dlansy_ called\");\n    return NULL;\n}\n\nvoid* dlantb(void)\n{\n    if (verbose) puts(\"STUB: dlantb called\");\n    return NULL;\n}\n\nvoid* dlantb_(void)\n{\n    if (verbose) puts(\"STUB: dlantb_ called\");\n    return NULL;\n}\n\nvoid* dlantp(void)\n{\n    if (verbose) puts(\"STUB: dlantp called\");\n    return NULL;\n}\n\nvoid* dlantp_(void)\n{\n    if (verbose) puts(\"STUB: dlantp_ called\");\n    return NULL;\n}\n\nvoid* dlantr(void)\n{\n    if (verbose) puts(\"STUB: dlantr called\");\n    return NULL;\n}\n\nvoid* dlantr_(void)\n{\n    if (verbose) puts(\"STUB: dlantr_ called\");\n    return NULL;\n}\n\nvoid* dlanv2(void)\n{\n    if (verbose) puts(\"STUB: dlanv2 called\");\n    return NULL;\n}\n\nvoid* dlanv2_(void)\n{\n    if (verbose) puts(\"STUB: dlanv2_ called\");\n    return NULL;\n}\n\nvoid* dlapll(void)\n{\n    if (verbose) puts(\"STUB: dlapll called\");\n    return NULL;\n}\n\nvoid* dlapll_(void)\n{\n    if (verbose) puts(\"STUB: dlapll_ called\");\n    return NULL;\n}\n\nvoid* dlapmt(void)\n{\n    if (verbose) puts(\"STUB: dlapmt called\");\n    return NULL;\n}\n\nvoid* dlapmt_(void)\n{\n    if (verbose) puts(\"STUB: dlapmt_ called\");\n    return NULL;\n}\n\nvoid* dlapy2(void)\n{\n    if (verbose) puts(\"STUB: dlapy2 called\");\n    return NULL;\n}\n\nvoid* dlapy2_(void)\n{\n    if (verbose) puts(\"STUB: dlapy2_ called\");\n    return NULL;\n}\n\nvoid* dlapy3(void)\n{\n    if (verbose) puts(\"STUB: dlapy3 called\");\n    return NULL;\n}\n\nvoid* dlapy3_(void)\n{\n    if (verbose) puts(\"STUB: dlapy3_ called\");\n    return NULL;\n}\n\nvoid* dlaqgb(void)\n{\n    if (verbose) puts(\"STUB: dlaqgb called\");\n    return NULL;\n}\n\nvoid* dlaqgb_(void)\n{\n    if (verbose) puts(\"STUB: dlaqgb_ called\");\n    return NULL;\n}\n\nvoid* dlaqge(void)\n{\n    if (verbose) puts(\"STUB: dlaqge called\");\n    return NULL;\n}\n\nvoid* dlaqge_(void)\n{\n    if (verbose) puts(\"STUB: dlaqge_ called\");\n    return NULL;\n}\n\nvoid* dlaqp2(void)\n{\n    if (verbose) puts(\"STUB: dlaqp2 called\");\n    return NULL;\n}\n\nvoid* dlaqp2_(void)\n{\n    if (verbose) puts(\"STUB: dlaqp2_ called\");\n    return NULL;\n}\n\nvoid* dlaqps(void)\n{\n    if (verbose) puts(\"STUB: dlaqps called\");\n    return NULL;\n}\n\nvoid* dlaqps_(void)\n{\n    if (verbose) puts(\"STUB: dlaqps_ called\");\n    return NULL;\n}\n\nvoid* dlaqr0(void)\n{\n    if (verbose) puts(\"STUB: dlaqr0 called\");\n    return NULL;\n}\n\nvoid* dlaqr0_(void)\n{\n    if (verbose) puts(\"STUB: dlaqr0_ called\");\n    return NULL;\n}\n\nvoid* dlaqr1(void)\n{\n    if (verbose) puts(\"STUB: dlaqr1 called\");\n    return NULL;\n}\n\nvoid* dlaqr1_(void)\n{\n    if (verbose) puts(\"STUB: dlaqr1_ called\");\n    return NULL;\n}\n\nvoid* dlaqr2(void)\n{\n    if (verbose) puts(\"STUB: dlaqr2 called\");\n    return NULL;\n}\n\nvoid* dlaqr2_(void)\n{\n    if (verbose) puts(\"STUB: dlaqr2_ called\");\n    return NULL;\n}\n\nvoid* dlaqr3(void)\n{\n    if (verbose) puts(\"STUB: dlaqr3 called\");\n    return NULL;\n}\n\nvoid* dlaqr3_(void)\n{\n    if (verbose) puts(\"STUB: dlaqr3_ called\");\n    return NULL;\n}\n\nvoid* dlaqr4(void)\n{\n    if (verbose) puts(\"STUB: dlaqr4 called\");\n    return NULL;\n}\n\nvoid* dlaqr4_(void)\n{\n    if (verbose) puts(\"STUB: dlaqr4_ called\");\n    return NULL;\n}\n\nvoid* dlaqr5(void)\n{\n    if (verbose) puts(\"STUB: dlaqr5 called\");\n    return NULL;\n}\n\nvoid* dlaqr5_(void)\n{\n    if (verbose) puts(\"STUB: dlaqr5_ called\");\n    return NULL;\n}\n\nvoid* dlaqsb(void)\n{\n    if (verbose) puts(\"STUB: dlaqsb called\");\n    return NULL;\n}\n\nvoid* dlaqsb_(void)\n{\n    if (verbose) puts(\"STUB: dlaqsb_ called\");\n    return NULL;\n}\n\nvoid* dlaqsp(void)\n{\n    if (verbose) puts(\"STUB: dlaqsp called\");\n    return NULL;\n}\n\nvoid* dlaqsp_(void)\n{\n    if (verbose) puts(\"STUB: dlaqsp_ called\");\n    return NULL;\n}\n\nvoid* dlaqsy(void)\n{\n    if (verbose) puts(\"STUB: dlaqsy called\");\n    return NULL;\n}\n\nvoid* dlaqsy_(void)\n{\n    if (verbose) puts(\"STUB: dlaqsy_ called\");\n    return NULL;\n}\n\nvoid* dlaqtr(void)\n{\n    if (verbose) puts(\"STUB: dlaqtr called\");\n    return NULL;\n}\n\nvoid* dlaqtr_(void)\n{\n    if (verbose) puts(\"STUB: dlaqtr_ called\");\n    return NULL;\n}\n\nvoid* dlar1v(void)\n{\n    if (verbose) puts(\"STUB: dlar1v called\");\n    return NULL;\n}\n\nvoid* dlar1v_(void)\n{\n    if (verbose) puts(\"STUB: dlar1v_ called\");\n    return NULL;\n}\n\nvoid* dlar2v(void)\n{\n    if (verbose) puts(\"STUB: dlar2v called\");\n    return NULL;\n}\n\nvoid* dlar2v_(void)\n{\n    if (verbose) puts(\"STUB: dlar2v_ called\");\n    return NULL;\n}\n\nvoid* dlarf(void)\n{\n    if (verbose) puts(\"STUB: dlarf called\");\n    return NULL;\n}\n\nvoid* dlarf_(void)\n{\n    if (verbose) puts(\"STUB: dlarf_ called\");\n    return NULL;\n}\n\nvoid* dlarfb(void)\n{\n    if (verbose) puts(\"STUB: dlarfb called\");\n    return NULL;\n}\n\nvoid* dlarfb_(void)\n{\n    if (verbose) puts(\"STUB: dlarfb_ called\");\n    return NULL;\n}\n\nvoid* dlarfg(void)\n{\n    if (verbose) puts(\"STUB: dlarfg called\");\n    return NULL;\n}\n\nvoid* dlarfg_(void)\n{\n    if (verbose) puts(\"STUB: dlarfg_ called\");\n    return NULL;\n}\n\nvoid* dlarfp(void)\n{\n    if (verbose) puts(\"STUB: dlarfp called\");\n    return NULL;\n}\n\nvoid* dlarfp_(void)\n{\n    if (verbose) puts(\"STUB: dlarfp_ called\");\n    return NULL;\n}\n\nvoid* dlarft(void)\n{\n    if (verbose) puts(\"STUB: dlarft called\");\n    return NULL;\n}\n\nvoid* dlarft_(void)\n{\n    if (verbose) puts(\"STUB: dlarft_ called\");\n    return NULL;\n}\n\nvoid* dlarfx(void)\n{\n    if (verbose) puts(\"STUB: dlarfx called\");\n    return NULL;\n}\n\nvoid* dlarfx_(void)\n{\n    if (verbose) puts(\"STUB: dlarfx_ called\");\n    return NULL;\n}\n\nvoid* dlargv(void)\n{\n    if (verbose) puts(\"STUB: dlargv called\");\n    return NULL;\n}\n\nvoid* dlargv_(void)\n{\n    if (verbose) puts(\"STUB: dlargv_ called\");\n    return NULL;\n}\n\nvoid* dlarnv(void)\n{\n    if (verbose) puts(\"STUB: dlarnv called\");\n    return NULL;\n}\n\nvoid* dlarnv_(void)\n{\n    if (verbose) puts(\"STUB: dlarnv_ called\");\n    return NULL;\n}\n\nvoid* dlarra(void)\n{\n    if (verbose) puts(\"STUB: dlarra called\");\n    return NULL;\n}\n\nvoid* dlarra_(void)\n{\n    if (verbose) puts(\"STUB: dlarra_ called\");\n    return NULL;\n}\n\nvoid* dlarrb(void)\n{\n    if (verbose) puts(\"STUB: dlarrb called\");\n    return NULL;\n}\n\nvoid* dlarrb_(void)\n{\n    if (verbose) puts(\"STUB: dlarrb_ called\");\n    return NULL;\n}\n\nvoid* dlarrc(void)\n{\n    if (verbose) puts(\"STUB: dlarrc called\");\n    return NULL;\n}\n\nvoid* dlarrc_(void)\n{\n    if (verbose) puts(\"STUB: dlarrc_ called\");\n    return NULL;\n}\n\nvoid* dlarrd(void)\n{\n    if (verbose) puts(\"STUB: dlarrd called\");\n    return NULL;\n}\n\nvoid* dlarrd_(void)\n{\n    if (verbose) puts(\"STUB: dlarrd_ called\");\n    return NULL;\n}\n\nvoid* dlarre(void)\n{\n    if (verbose) puts(\"STUB: dlarre called\");\n    return NULL;\n}\n\nvoid* dlarre_(void)\n{\n    if (verbose) puts(\"STUB: dlarre_ called\");\n    return NULL;\n}\n\nvoid* dlarrf(void)\n{\n    if (verbose) puts(\"STUB: dlarrf called\");\n    return NULL;\n}\n\nvoid* dlarrf_(void)\n{\n    if (verbose) puts(\"STUB: dlarrf_ called\");\n    return NULL;\n}\n\nvoid* dlarrj(void)\n{\n    if (verbose) puts(\"STUB: dlarrj called\");\n    return NULL;\n}\n\nvoid* dlarrj_(void)\n{\n    if (verbose) puts(\"STUB: dlarrj_ called\");\n    return NULL;\n}\n\nvoid* dlarrk(void)\n{\n    if (verbose) puts(\"STUB: dlarrk called\");\n    return NULL;\n}\n\nvoid* dlarrk_(void)\n{\n    if (verbose) puts(\"STUB: dlarrk_ called\");\n    return NULL;\n}\n\nvoid* dlarrr(void)\n{\n    if (verbose) puts(\"STUB: dlarrr called\");\n    return NULL;\n}\n\nvoid* dlarrr_(void)\n{\n    if (verbose) puts(\"STUB: dlarrr_ called\");\n    return NULL;\n}\n\nvoid* dlarrv(void)\n{\n    if (verbose) puts(\"STUB: dlarrv called\");\n    return NULL;\n}\n\nvoid* dlarrv_(void)\n{\n    if (verbose) puts(\"STUB: dlarrv_ called\");\n    return NULL;\n}\n\nvoid* dlarscl2(void)\n{\n    if (verbose) puts(\"STUB: dlarscl2 called\");\n    return NULL;\n}\n\nvoid* dlarscl2_(void)\n{\n    if (verbose) puts(\"STUB: dlarscl2_ called\");\n    return NULL;\n}\n\nvoid* dlartg(void)\n{\n    if (verbose) puts(\"STUB: dlartg called\");\n    return NULL;\n}\n\nvoid* dlartg_(void)\n{\n    if (verbose) puts(\"STUB: dlartg_ called\");\n    return NULL;\n}\n\nvoid* dlartv(void)\n{\n    if (verbose) puts(\"STUB: dlartv called\");\n    return NULL;\n}\n\nvoid* dlartv_(void)\n{\n    if (verbose) puts(\"STUB: dlartv_ called\");\n    return NULL;\n}\n\nvoid* dlaruv(void)\n{\n    if (verbose) puts(\"STUB: dlaruv called\");\n    return NULL;\n}\n\nvoid* dlaruv_(void)\n{\n    if (verbose) puts(\"STUB: dlaruv_ called\");\n    return NULL;\n}\n\nvoid* dlarz(void)\n{\n    if (verbose) puts(\"STUB: dlarz called\");\n    return NULL;\n}\n\nvoid* dlarz_(void)\n{\n    if (verbose) puts(\"STUB: dlarz_ called\");\n    return NULL;\n}\n\nvoid* dlarzb(void)\n{\n    if (verbose) puts(\"STUB: dlarzb called\");\n    return NULL;\n}\n\nvoid* dlarzb_(void)\n{\n    if (verbose) puts(\"STUB: dlarzb_ called\");\n    return NULL;\n}\n\nvoid* dlarzt(void)\n{\n    if (verbose) puts(\"STUB: dlarzt called\");\n    return NULL;\n}\n\nvoid* dlarzt_(void)\n{\n    if (verbose) puts(\"STUB: dlarzt_ called\");\n    return NULL;\n}\n\nvoid* dlas2(void)\n{\n    if (verbose) puts(\"STUB: dlas2 called\");\n    return NULL;\n}\n\nvoid* dlas2_(void)\n{\n    if (verbose) puts(\"STUB: dlas2_ called\");\n    return NULL;\n}\n\nvoid* dlascl(void)\n{\n    if (verbose) puts(\"STUB: dlascl called\");\n    return NULL;\n}\n\nvoid* dlascl2(void)\n{\n    if (verbose) puts(\"STUB: dlascl2 called\");\n    return NULL;\n}\n\nvoid* dlascl2_(void)\n{\n    if (verbose) puts(\"STUB: dlascl2_ called\");\n    return NULL;\n}\n\nvoid* dlascl_(void)\n{\n    if (verbose) puts(\"STUB: dlascl_ called\");\n    return NULL;\n}\n\nvoid* dlasd0(void)\n{\n    if (verbose) puts(\"STUB: dlasd0 called\");\n    return NULL;\n}\n\nvoid* dlasd0_(void)\n{\n    if (verbose) puts(\"STUB: dlasd0_ called\");\n    return NULL;\n}\n\nvoid* dlasd1(void)\n{\n    if (verbose) puts(\"STUB: dlasd1 called\");\n    return NULL;\n}\n\nvoid* dlasd1_(void)\n{\n    if (verbose) puts(\"STUB: dlasd1_ called\");\n    return NULL;\n}\n\nvoid* dlasd2(void)\n{\n    if (verbose) puts(\"STUB: dlasd2 called\");\n    return NULL;\n}\n\nvoid* dlasd2_(void)\n{\n    if (verbose) puts(\"STUB: dlasd2_ called\");\n    return NULL;\n}\n\nvoid* dlasd3(void)\n{\n    if (verbose) puts(\"STUB: dlasd3 called\");\n    return NULL;\n}\n\nvoid* dlasd3_(void)\n{\n    if (verbose) puts(\"STUB: dlasd3_ called\");\n    return NULL;\n}\n\nvoid* dlasd4(void)\n{\n    if (verbose) puts(\"STUB: dlasd4 called\");\n    return NULL;\n}\n\nvoid* dlasd4_(void)\n{\n    if (verbose) puts(\"STUB: dlasd4_ called\");\n    return NULL;\n}\n\nvoid* dlasd5(void)\n{\n    if (verbose) puts(\"STUB: dlasd5 called\");\n    return NULL;\n}\n\nvoid* dlasd5_(void)\n{\n    if (verbose) puts(\"STUB: dlasd5_ called\");\n    return NULL;\n}\n\nvoid* dlasd6(void)\n{\n    if (verbose) puts(\"STUB: dlasd6 called\");\n    return NULL;\n}\n\nvoid* dlasd6_(void)\n{\n    if (verbose) puts(\"STUB: dlasd6_ called\");\n    return NULL;\n}\n\nvoid* dlasd7(void)\n{\n    if (verbose) puts(\"STUB: dlasd7 called\");\n    return NULL;\n}\n\nvoid* dlasd7_(void)\n{\n    if (verbose) puts(\"STUB: dlasd7_ called\");\n    return NULL;\n}\n\nvoid* dlasd8(void)\n{\n    if (verbose) puts(\"STUB: dlasd8 called\");\n    return NULL;\n}\n\nvoid* dlasd8_(void)\n{\n    if (verbose) puts(\"STUB: dlasd8_ called\");\n    return NULL;\n}\n\nvoid* dlasd9(void)\n{\n    if (verbose) puts(\"STUB: dlasd9 called\");\n    return NULL;\n}\n\nvoid* dlasd9_(void)\n{\n    if (verbose) puts(\"STUB: dlasd9_ called\");\n    return NULL;\n}\n\nvoid* dlasda(void)\n{\n    if (verbose) puts(\"STUB: dlasda called\");\n    return NULL;\n}\n\nvoid* dlasda_(void)\n{\n    if (verbose) puts(\"STUB: dlasda_ called\");\n    return NULL;\n}\n\nvoid* dlasdq(void)\n{\n    if (verbose) puts(\"STUB: dlasdq called\");\n    return NULL;\n}\n\nvoid* dlasdq_(void)\n{\n    if (verbose) puts(\"STUB: dlasdq_ called\");\n    return NULL;\n}\n\nvoid* dlasdt(void)\n{\n    if (verbose) puts(\"STUB: dlasdt called\");\n    return NULL;\n}\n\nvoid* dlasdt_(void)\n{\n    if (verbose) puts(\"STUB: dlasdt_ called\");\n    return NULL;\n}\n\nvoid* dlaset(void)\n{\n    if (verbose) puts(\"STUB: dlaset called\");\n    return NULL;\n}\n\nvoid* dlaset_(void)\n{\n    if (verbose) puts(\"STUB: dlaset_ called\");\n    return NULL;\n}\n\nvoid* dlasq1(void)\n{\n    if (verbose) puts(\"STUB: dlasq1 called\");\n    return NULL;\n}\n\nvoid* dlasq1_(void)\n{\n    if (verbose) puts(\"STUB: dlasq1_ called\");\n    return NULL;\n}\n\nvoid* dlasq2(void)\n{\n    if (verbose) puts(\"STUB: dlasq2 called\");\n    return NULL;\n}\n\nvoid* dlasq2_(void)\n{\n    if (verbose) puts(\"STUB: dlasq2_ called\");\n    return NULL;\n}\n\nvoid* dlasq3(void)\n{\n    if (verbose) puts(\"STUB: dlasq3 called\");\n    return NULL;\n}\n\nvoid* dlasq3_(void)\n{\n    if (verbose) puts(\"STUB: dlasq3_ called\");\n    return NULL;\n}\n\nvoid* dlasq4(void)\n{\n    if (verbose) puts(\"STUB: dlasq4 called\");\n    return NULL;\n}\n\nvoid* dlasq4_(void)\n{\n    if (verbose) puts(\"STUB: dlasq4_ called\");\n    return NULL;\n}\n\nvoid* dlasq5(void)\n{\n    if (verbose) puts(\"STUB: dlasq5 called\");\n    return NULL;\n}\n\nvoid* dlasq5_(void)\n{\n    if (verbose) puts(\"STUB: dlasq5_ called\");\n    return NULL;\n}\n\nvoid* dlasq6(void)\n{\n    if (verbose) puts(\"STUB: dlasq6 called\");\n    return NULL;\n}\n\nvoid* dlasq6_(void)\n{\n    if (verbose) puts(\"STUB: dlasq6_ called\");\n    return NULL;\n}\n\nvoid* dlasr(void)\n{\n    if (verbose) puts(\"STUB: dlasr called\");\n    return NULL;\n}\n\nvoid* dlasr_(void)\n{\n    if (verbose) puts(\"STUB: dlasr_ called\");\n    return NULL;\n}\n\nvoid* dlasrt(void)\n{\n    if (verbose) puts(\"STUB: dlasrt called\");\n    return NULL;\n}\n\nvoid* dlasrt_(void)\n{\n    if (verbose) puts(\"STUB: dlasrt_ called\");\n    return NULL;\n}\n\nvoid* dlassq(void)\n{\n    if (verbose) puts(\"STUB: dlassq called\");\n    return NULL;\n}\n\nvoid* dlassq_(void)\n{\n    if (verbose) puts(\"STUB: dlassq_ called\");\n    return NULL;\n}\n\nvoid* dlasv2(void)\n{\n    if (verbose) puts(\"STUB: dlasv2 called\");\n    return NULL;\n}\n\nvoid* dlasv2_(void)\n{\n    if (verbose) puts(\"STUB: dlasv2_ called\");\n    return NULL;\n}\n\nvoid* dlaswp(void)\n{\n    if (verbose) puts(\"STUB: dlaswp called\");\n    return NULL;\n}\n\nvoid* dlaswp_(void)\n{\n    if (verbose) puts(\"STUB: dlaswp_ called\");\n    return NULL;\n}\n\nvoid* dlasy2(void)\n{\n    if (verbose) puts(\"STUB: dlasy2 called\");\n    return NULL;\n}\n\nvoid* dlasy2_(void)\n{\n    if (verbose) puts(\"STUB: dlasy2_ called\");\n    return NULL;\n}\n\nvoid* dlasyf(void)\n{\n    if (verbose) puts(\"STUB: dlasyf called\");\n    return NULL;\n}\n\nvoid* dlasyf_(void)\n{\n    if (verbose) puts(\"STUB: dlasyf_ called\");\n    return NULL;\n}\n\nvoid* dlat2s(void)\n{\n    if (verbose) puts(\"STUB: dlat2s called\");\n    return NULL;\n}\n\nvoid* dlat2s_(void)\n{\n    if (verbose) puts(\"STUB: dlat2s_ called\");\n    return NULL;\n}\n\nvoid* dlatbs(void)\n{\n    if (verbose) puts(\"STUB: dlatbs called\");\n    return NULL;\n}\n\nvoid* dlatbs_(void)\n{\n    if (verbose) puts(\"STUB: dlatbs_ called\");\n    return NULL;\n}\n\nvoid* dlatdf(void)\n{\n    if (verbose) puts(\"STUB: dlatdf called\");\n    return NULL;\n}\n\nvoid* dlatdf_(void)\n{\n    if (verbose) puts(\"STUB: dlatdf_ called\");\n    return NULL;\n}\n\nvoid* dlatps(void)\n{\n    if (verbose) puts(\"STUB: dlatps called\");\n    return NULL;\n}\n\nvoid* dlatps_(void)\n{\n    if (verbose) puts(\"STUB: dlatps_ called\");\n    return NULL;\n}\n\nvoid* dlatrd(void)\n{\n    if (verbose) puts(\"STUB: dlatrd called\");\n    return NULL;\n}\n\nvoid* dlatrd_(void)\n{\n    if (verbose) puts(\"STUB: dlatrd_ called\");\n    return NULL;\n}\n\nvoid* dlatrs(void)\n{\n    if (verbose) puts(\"STUB: dlatrs called\");\n    return NULL;\n}\n\nvoid* dlatrs_(void)\n{\n    if (verbose) puts(\"STUB: dlatrs_ called\");\n    return NULL;\n}\n\nvoid* dlatrz(void)\n{\n    if (verbose) puts(\"STUB: dlatrz called\");\n    return NULL;\n}\n\nvoid* dlatrz_(void)\n{\n    if (verbose) puts(\"STUB: dlatrz_ called\");\n    return NULL;\n}\n\nvoid* dlatzm(void)\n{\n    if (verbose) puts(\"STUB: dlatzm called\");\n    return NULL;\n}\n\nvoid* dlatzm_(void)\n{\n    if (verbose) puts(\"STUB: dlatzm_ called\");\n    return NULL;\n}\n\nvoid* dlauu2(void)\n{\n    if (verbose) puts(\"STUB: dlauu2 called\");\n    return NULL;\n}\n\nvoid* dlauu2_(void)\n{\n    if (verbose) puts(\"STUB: dlauu2_ called\");\n    return NULL;\n}\n\nvoid* dlauum(void)\n{\n    if (verbose) puts(\"STUB: dlauum called\");\n    return NULL;\n}\n\nvoid* dlauum_(void)\n{\n    if (verbose) puts(\"STUB: dlauum_ called\");\n    return NULL;\n}\n\nvoid* dopgtr(void)\n{\n    if (verbose) puts(\"STUB: dopgtr called\");\n    return NULL;\n}\n\nvoid* dopgtr_(void)\n{\n    if (verbose) puts(\"STUB: dopgtr_ called\");\n    return NULL;\n}\n\nvoid* dopmtr(void)\n{\n    if (verbose) puts(\"STUB: dopmtr called\");\n    return NULL;\n}\n\nvoid* dopmtr_(void)\n{\n    if (verbose) puts(\"STUB: dopmtr_ called\");\n    return NULL;\n}\n\nvoid* dorg2l(void)\n{\n    if (verbose) puts(\"STUB: dorg2l called\");\n    return NULL;\n}\n\nvoid* dorg2l_(void)\n{\n    if (verbose) puts(\"STUB: dorg2l_ called\");\n    return NULL;\n}\n\nvoid* dorg2r(void)\n{\n    if (verbose) puts(\"STUB: dorg2r called\");\n    return NULL;\n}\n\nvoid* dorg2r_(void)\n{\n    if (verbose) puts(\"STUB: dorg2r_ called\");\n    return NULL;\n}\n\nvoid* dorgbr(void)\n{\n    if (verbose) puts(\"STUB: dorgbr called\");\n    return NULL;\n}\n\nvoid* dorgbr_(void)\n{\n    if (verbose) puts(\"STUB: dorgbr_ called\");\n    return NULL;\n}\n\nvoid* dorghr(void)\n{\n    if (verbose) puts(\"STUB: dorghr called\");\n    return NULL;\n}\n\nvoid* dorghr_(void)\n{\n    if (verbose) puts(\"STUB: dorghr_ called\");\n    return NULL;\n}\n\nvoid* dorgl2(void)\n{\n    if (verbose) puts(\"STUB: dorgl2 called\");\n    return NULL;\n}\n\nvoid* dorgl2_(void)\n{\n    if (verbose) puts(\"STUB: dorgl2_ called\");\n    return NULL;\n}\n\nvoid* dorglq(void)\n{\n    if (verbose) puts(\"STUB: dorglq called\");\n    return NULL;\n}\n\nvoid* dorglq_(void)\n{\n    if (verbose) puts(\"STUB: dorglq_ called\");\n    return NULL;\n}\n\nvoid* dorgql(void)\n{\n    if (verbose) puts(\"STUB: dorgql called\");\n    return NULL;\n}\n\nvoid* dorgql_(void)\n{\n    if (verbose) puts(\"STUB: dorgql_ called\");\n    return NULL;\n}\n\nvoid* dorgqr(void)\n{\n    if (verbose) puts(\"STUB: dorgqr called\");\n    return NULL;\n}\n\nvoid* dorgqr_(void)\n{\n    if (verbose) puts(\"STUB: dorgqr_ called\");\n    return NULL;\n}\n\nvoid* dorgr2(void)\n{\n    if (verbose) puts(\"STUB: dorgr2 called\");\n    return NULL;\n}\n\nvoid* dorgr2_(void)\n{\n    if (verbose) puts(\"STUB: dorgr2_ called\");\n    return NULL;\n}\n\nvoid* dorgrq(void)\n{\n    if (verbose) puts(\"STUB: dorgrq called\");\n    return NULL;\n}\n\nvoid* dorgrq_(void)\n{\n    if (verbose) puts(\"STUB: dorgrq_ called\");\n    return NULL;\n}\n\nvoid* dorgtr(void)\n{\n    if (verbose) puts(\"STUB: dorgtr called\");\n    return NULL;\n}\n\nvoid* dorgtr_(void)\n{\n    if (verbose) puts(\"STUB: dorgtr_ called\");\n    return NULL;\n}\n\nvoid* dorm2l(void)\n{\n    if (verbose) puts(\"STUB: dorm2l called\");\n    return NULL;\n}\n\nvoid* dorm2l_(void)\n{\n    if (verbose) puts(\"STUB: dorm2l_ called\");\n    return NULL;\n}\n\nvoid* dorm2r(void)\n{\n    if (verbose) puts(\"STUB: dorm2r called\");\n    return NULL;\n}\n\nvoid* dorm2r_(void)\n{\n    if (verbose) puts(\"STUB: dorm2r_ called\");\n    return NULL;\n}\n\nvoid* dormbr(void)\n{\n    if (verbose) puts(\"STUB: dormbr called\");\n    return NULL;\n}\n\nvoid* dormbr_(void)\n{\n    if (verbose) puts(\"STUB: dormbr_ called\");\n    return NULL;\n}\n\nvoid* dormhr(void)\n{\n    if (verbose) puts(\"STUB: dormhr called\");\n    return NULL;\n}\n\nvoid* dormhr_(void)\n{\n    if (verbose) puts(\"STUB: dormhr_ called\");\n    return NULL;\n}\n\nvoid* dorml2(void)\n{\n    if (verbose) puts(\"STUB: dorml2 called\");\n    return NULL;\n}\n\nvoid* dorml2_(void)\n{\n    if (verbose) puts(\"STUB: dorml2_ called\");\n    return NULL;\n}\n\nvoid* dormlq(void)\n{\n    if (verbose) puts(\"STUB: dormlq called\");\n    return NULL;\n}\n\nvoid* dormlq_(void)\n{\n    if (verbose) puts(\"STUB: dormlq_ called\");\n    return NULL;\n}\n\nvoid* dormql(void)\n{\n    if (verbose) puts(\"STUB: dormql called\");\n    return NULL;\n}\n\nvoid* dormql_(void)\n{\n    if (verbose) puts(\"STUB: dormql_ called\");\n    return NULL;\n}\n\nvoid* dormqr(void)\n{\n    if (verbose) puts(\"STUB: dormqr called\");\n    return NULL;\n}\n\nvoid* dormqr_(void)\n{\n    if (verbose) puts(\"STUB: dormqr_ called\");\n    return NULL;\n}\n\nvoid* dormr2(void)\n{\n    if (verbose) puts(\"STUB: dormr2 called\");\n    return NULL;\n}\n\nvoid* dormr2_(void)\n{\n    if (verbose) puts(\"STUB: dormr2_ called\");\n    return NULL;\n}\n\nvoid* dormr3(void)\n{\n    if (verbose) puts(\"STUB: dormr3 called\");\n    return NULL;\n}\n\nvoid* dormr3_(void)\n{\n    if (verbose) puts(\"STUB: dormr3_ called\");\n    return NULL;\n}\n\nvoid* dormrq(void)\n{\n    if (verbose) puts(\"STUB: dormrq called\");\n    return NULL;\n}\n\nvoid* dormrq_(void)\n{\n    if (verbose) puts(\"STUB: dormrq_ called\");\n    return NULL;\n}\n\nvoid* dormrz(void)\n{\n    if (verbose) puts(\"STUB: dormrz called\");\n    return NULL;\n}\n\nvoid* dormrz_(void)\n{\n    if (verbose) puts(\"STUB: dormrz_ called\");\n    return NULL;\n}\n\nvoid* dormtr(void)\n{\n    if (verbose) puts(\"STUB: dormtr called\");\n    return NULL;\n}\n\nvoid* dormtr_(void)\n{\n    if (verbose) puts(\"STUB: dormtr_ called\");\n    return NULL;\n}\n\nvoid* dpbcon(void)\n{\n    if (verbose) puts(\"STUB: dpbcon called\");\n    return NULL;\n}\n\nvoid* dpbcon_(void)\n{\n    if (verbose) puts(\"STUB: dpbcon_ called\");\n    return NULL;\n}\n\nvoid* dpbequ(void)\n{\n    if (verbose) puts(\"STUB: dpbequ called\");\n    return NULL;\n}\n\nvoid* dpbequ_(void)\n{\n    if (verbose) puts(\"STUB: dpbequ_ called\");\n    return NULL;\n}\n\nvoid* dpbrfs(void)\n{\n    if (verbose) puts(\"STUB: dpbrfs called\");\n    return NULL;\n}\n\nvoid* dpbrfs_(void)\n{\n    if (verbose) puts(\"STUB: dpbrfs_ called\");\n    return NULL;\n}\n\nvoid* dpbstf(void)\n{\n    if (verbose) puts(\"STUB: dpbstf called\");\n    return NULL;\n}\n\nvoid* dpbstf_(void)\n{\n    if (verbose) puts(\"STUB: dpbstf_ called\");\n    return NULL;\n}\n\nvoid* dpbsv(void)\n{\n    if (verbose) puts(\"STUB: dpbsv called\");\n    return NULL;\n}\n\nvoid* dpbsv_(void)\n{\n    if (verbose) puts(\"STUB: dpbsv_ called\");\n    return NULL;\n}\n\nvoid* dpbsvx(void)\n{\n    if (verbose) puts(\"STUB: dpbsvx called\");\n    return NULL;\n}\n\nvoid* dpbsvx_(void)\n{\n    if (verbose) puts(\"STUB: dpbsvx_ called\");\n    return NULL;\n}\n\nvoid* dpbtf2(void)\n{\n    if (verbose) puts(\"STUB: dpbtf2 called\");\n    return NULL;\n}\n\nvoid* dpbtf2_(void)\n{\n    if (verbose) puts(\"STUB: dpbtf2_ called\");\n    return NULL;\n}\n\nvoid* dpbtrf(void)\n{\n    if (verbose) puts(\"STUB: dpbtrf called\");\n    return NULL;\n}\n\nvoid* dpbtrf_(void)\n{\n    if (verbose) puts(\"STUB: dpbtrf_ called\");\n    return NULL;\n}\n\nvoid* dpbtrs(void)\n{\n    if (verbose) puts(\"STUB: dpbtrs called\");\n    return NULL;\n}\n\nvoid* dpbtrs_(void)\n{\n    if (verbose) puts(\"STUB: dpbtrs_ called\");\n    return NULL;\n}\n\nvoid* dpftrf(void)\n{\n    if (verbose) puts(\"STUB: dpftrf called\");\n    return NULL;\n}\n\nvoid* dpftrf_(void)\n{\n    if (verbose) puts(\"STUB: dpftrf_ called\");\n    return NULL;\n}\n\nvoid* dpftri(void)\n{\n    if (verbose) puts(\"STUB: dpftri called\");\n    return NULL;\n}\n\nvoid* dpftri_(void)\n{\n    if (verbose) puts(\"STUB: dpftri_ called\");\n    return NULL;\n}\n\nvoid* dpftrs(void)\n{\n    if (verbose) puts(\"STUB: dpftrs called\");\n    return NULL;\n}\n\nvoid* dpftrs_(void)\n{\n    if (verbose) puts(\"STUB: dpftrs_ called\");\n    return NULL;\n}\n\nvoid* dpocon(void)\n{\n    if (verbose) puts(\"STUB: dpocon called\");\n    return NULL;\n}\n\nvoid* dpocon_(void)\n{\n    if (verbose) puts(\"STUB: dpocon_ called\");\n    return NULL;\n}\n\nvoid* dpoequ(void)\n{\n    if (verbose) puts(\"STUB: dpoequ called\");\n    return NULL;\n}\n\nvoid* dpoequ_(void)\n{\n    if (verbose) puts(\"STUB: dpoequ_ called\");\n    return NULL;\n}\n\nvoid* dpoequb(void)\n{\n    if (verbose) puts(\"STUB: dpoequb called\");\n    return NULL;\n}\n\nvoid* dpoequb_(void)\n{\n    if (verbose) puts(\"STUB: dpoequb_ called\");\n    return NULL;\n}\n\nvoid* dporfs(void)\n{\n    if (verbose) puts(\"STUB: dporfs called\");\n    return NULL;\n}\n\nvoid* dporfs_(void)\n{\n    if (verbose) puts(\"STUB: dporfs_ called\");\n    return NULL;\n}\n\nvoid* dposv(void)\n{\n    if (verbose) puts(\"STUB: dposv called\");\n    return NULL;\n}\n\nvoid* dposv_(void)\n{\n    if (verbose) puts(\"STUB: dposv_ called\");\n    return NULL;\n}\n\nvoid* dposvx(void)\n{\n    if (verbose) puts(\"STUB: dposvx called\");\n    return NULL;\n}\n\nvoid* dposvx_(void)\n{\n    if (verbose) puts(\"STUB: dposvx_ called\");\n    return NULL;\n}\n\nvoid* dpotf2(void)\n{\n    if (verbose) puts(\"STUB: dpotf2 called\");\n    return NULL;\n}\n\nvoid* dpotf2_(void)\n{\n    if (verbose) puts(\"STUB: dpotf2_ called\");\n    return NULL;\n}\n\nvoid* dpotrf(void)\n{\n    if (verbose) puts(\"STUB: dpotrf called\");\n    return NULL;\n}\n\nvoid* dpotrf_(void)\n{\n    if (verbose) puts(\"STUB: dpotrf_ called\");\n    return NULL;\n}\n\nvoid* dpotri(void)\n{\n    if (verbose) puts(\"STUB: dpotri called\");\n    return NULL;\n}\n\nvoid* dpotri_(void)\n{\n    if (verbose) puts(\"STUB: dpotri_ called\");\n    return NULL;\n}\n\nvoid* dpotrs(void)\n{\n    if (verbose) puts(\"STUB: dpotrs called\");\n    return NULL;\n}\n\nvoid* dpotrs_(void)\n{\n    if (verbose) puts(\"STUB: dpotrs_ called\");\n    return NULL;\n}\n\nvoid* dppcon(void)\n{\n    if (verbose) puts(\"STUB: dppcon called\");\n    return NULL;\n}\n\nvoid* dppcon_(void)\n{\n    if (verbose) puts(\"STUB: dppcon_ called\");\n    return NULL;\n}\n\nvoid* dppequ(void)\n{\n    if (verbose) puts(\"STUB: dppequ called\");\n    return NULL;\n}\n\nvoid* dppequ_(void)\n{\n    if (verbose) puts(\"STUB: dppequ_ called\");\n    return NULL;\n}\n\nvoid* dpprfs(void)\n{\n    if (verbose) puts(\"STUB: dpprfs called\");\n    return NULL;\n}\n\nvoid* dpprfs_(void)\n{\n    if (verbose) puts(\"STUB: dpprfs_ called\");\n    return NULL;\n}\n\nvoid* dppsv(void)\n{\n    if (verbose) puts(\"STUB: dppsv called\");\n    return NULL;\n}\n\nvoid* dppsv_(void)\n{\n    if (verbose) puts(\"STUB: dppsv_ called\");\n    return NULL;\n}\n\nvoid* dppsvx(void)\n{\n    if (verbose) puts(\"STUB: dppsvx called\");\n    return NULL;\n}\n\nvoid* dppsvx_(void)\n{\n    if (verbose) puts(\"STUB: dppsvx_ called\");\n    return NULL;\n}\n\nvoid* dpptrf(void)\n{\n    if (verbose) puts(\"STUB: dpptrf called\");\n    return NULL;\n}\n\nvoid* dpptrf_(void)\n{\n    if (verbose) puts(\"STUB: dpptrf_ called\");\n    return NULL;\n}\n\nvoid* dpptri(void)\n{\n    if (verbose) puts(\"STUB: dpptri called\");\n    return NULL;\n}\n\nvoid* dpptri_(void)\n{\n    if (verbose) puts(\"STUB: dpptri_ called\");\n    return NULL;\n}\n\nvoid* dpptrs(void)\n{\n    if (verbose) puts(\"STUB: dpptrs called\");\n    return NULL;\n}\n\nvoid* dpptrs_(void)\n{\n    if (verbose) puts(\"STUB: dpptrs_ called\");\n    return NULL;\n}\n\nvoid* dpstf2(void)\n{\n    if (verbose) puts(\"STUB: dpstf2 called\");\n    return NULL;\n}\n\nvoid* dpstf2_(void)\n{\n    if (verbose) puts(\"STUB: dpstf2_ called\");\n    return NULL;\n}\n\nvoid* dpstrf(void)\n{\n    if (verbose) puts(\"STUB: dpstrf called\");\n    return NULL;\n}\n\nvoid* dpstrf_(void)\n{\n    if (verbose) puts(\"STUB: dpstrf_ called\");\n    return NULL;\n}\n\nvoid* dptcon(void)\n{\n    if (verbose) puts(\"STUB: dptcon called\");\n    return NULL;\n}\n\nvoid* dptcon_(void)\n{\n    if (verbose) puts(\"STUB: dptcon_ called\");\n    return NULL;\n}\n\nvoid* dpteqr(void)\n{\n    if (verbose) puts(\"STUB: dpteqr called\");\n    return NULL;\n}\n\nvoid* dpteqr_(void)\n{\n    if (verbose) puts(\"STUB: dpteqr_ called\");\n    return NULL;\n}\n\nvoid* dptrfs(void)\n{\n    if (verbose) puts(\"STUB: dptrfs called\");\n    return NULL;\n}\n\nvoid* dptrfs_(void)\n{\n    if (verbose) puts(\"STUB: dptrfs_ called\");\n    return NULL;\n}\n\nvoid* dptsv(void)\n{\n    if (verbose) puts(\"STUB: dptsv called\");\n    return NULL;\n}\n\nvoid* dptsv_(void)\n{\n    if (verbose) puts(\"STUB: dptsv_ called\");\n    return NULL;\n}\n\nvoid* dptsvx(void)\n{\n    if (verbose) puts(\"STUB: dptsvx called\");\n    return NULL;\n}\n\nvoid* dptsvx_(void)\n{\n    if (verbose) puts(\"STUB: dptsvx_ called\");\n    return NULL;\n}\n\nvoid* dpttrf(void)\n{\n    if (verbose) puts(\"STUB: dpttrf called\");\n    return NULL;\n}\n\nvoid* dpttrf_(void)\n{\n    if (verbose) puts(\"STUB: dpttrf_ called\");\n    return NULL;\n}\n\nvoid* dpttrs(void)\n{\n    if (verbose) puts(\"STUB: dpttrs called\");\n    return NULL;\n}\n\nvoid* dpttrs_(void)\n{\n    if (verbose) puts(\"STUB: dpttrs_ called\");\n    return NULL;\n}\n\nvoid* dptts2(void)\n{\n    if (verbose) puts(\"STUB: dptts2 called\");\n    return NULL;\n}\n\nvoid* dptts2_(void)\n{\n    if (verbose) puts(\"STUB: dptts2_ called\");\n    return NULL;\n}\n\nvoid* drscl(void)\n{\n    if (verbose) puts(\"STUB: drscl called\");\n    return NULL;\n}\n\nvoid* drscl_(void)\n{\n    if (verbose) puts(\"STUB: drscl_ called\");\n    return NULL;\n}\n\nvoid* dsbev(void)\n{\n    if (verbose) puts(\"STUB: dsbev called\");\n    return NULL;\n}\n\nvoid* dsbev_(void)\n{\n    if (verbose) puts(\"STUB: dsbev_ called\");\n    return NULL;\n}\n\nvoid* dsbevd(void)\n{\n    if (verbose) puts(\"STUB: dsbevd called\");\n    return NULL;\n}\n\nvoid* dsbevd_(void)\n{\n    if (verbose) puts(\"STUB: dsbevd_ called\");\n    return NULL;\n}\n\nvoid* dsbevx(void)\n{\n    if (verbose) puts(\"STUB: dsbevx called\");\n    return NULL;\n}\n\nvoid* dsbevx_(void)\n{\n    if (verbose) puts(\"STUB: dsbevx_ called\");\n    return NULL;\n}\n\nvoid* dsbgst(void)\n{\n    if (verbose) puts(\"STUB: dsbgst called\");\n    return NULL;\n}\n\nvoid* dsbgst_(void)\n{\n    if (verbose) puts(\"STUB: dsbgst_ called\");\n    return NULL;\n}\n\nvoid* dsbgv(void)\n{\n    if (verbose) puts(\"STUB: dsbgv called\");\n    return NULL;\n}\n\nvoid* dsbgv_(void)\n{\n    if (verbose) puts(\"STUB: dsbgv_ called\");\n    return NULL;\n}\n\nvoid* dsbgvd(void)\n{\n    if (verbose) puts(\"STUB: dsbgvd called\");\n    return NULL;\n}\n\nvoid* dsbgvd_(void)\n{\n    if (verbose) puts(\"STUB: dsbgvd_ called\");\n    return NULL;\n}\n\nvoid* dsbgvx(void)\n{\n    if (verbose) puts(\"STUB: dsbgvx called\");\n    return NULL;\n}\n\nvoid* dsbgvx_(void)\n{\n    if (verbose) puts(\"STUB: dsbgvx_ called\");\n    return NULL;\n}\n\nvoid* dsbtrd(void)\n{\n    if (verbose) puts(\"STUB: dsbtrd called\");\n    return NULL;\n}\n\nvoid* dsbtrd_(void)\n{\n    if (verbose) puts(\"STUB: dsbtrd_ called\");\n    return NULL;\n}\n\nvoid* dsfrk(void)\n{\n    if (verbose) puts(\"STUB: dsfrk called\");\n    return NULL;\n}\n\nvoid* dsfrk_(void)\n{\n    if (verbose) puts(\"STUB: dsfrk_ called\");\n    return NULL;\n}\n\nvoid* dsgesv(void)\n{\n    if (verbose) puts(\"STUB: dsgesv called\");\n    return NULL;\n}\n\nvoid* dsgesv_(void)\n{\n    if (verbose) puts(\"STUB: dsgesv_ called\");\n    return NULL;\n}\n\nvoid* dspcon(void)\n{\n    if (verbose) puts(\"STUB: dspcon called\");\n    return NULL;\n}\n\nvoid* dspcon_(void)\n{\n    if (verbose) puts(\"STUB: dspcon_ called\");\n    return NULL;\n}\n\nvoid* dspev(void)\n{\n    if (verbose) puts(\"STUB: dspev called\");\n    return NULL;\n}\n\nvoid* dspev_(void)\n{\n    if (verbose) puts(\"STUB: dspev_ called\");\n    return NULL;\n}\n\nvoid* dspevd(void)\n{\n    if (verbose) puts(\"STUB: dspevd called\");\n    return NULL;\n}\n\nvoid* dspevd_(void)\n{\n    if (verbose) puts(\"STUB: dspevd_ called\");\n    return NULL;\n}\n\nvoid* dspevx(void)\n{\n    if (verbose) puts(\"STUB: dspevx called\");\n    return NULL;\n}\n\nvoid* dspevx_(void)\n{\n    if (verbose) puts(\"STUB: dspevx_ called\");\n    return NULL;\n}\n\nvoid* dspgst(void)\n{\n    if (verbose) puts(\"STUB: dspgst called\");\n    return NULL;\n}\n\nvoid* dspgst_(void)\n{\n    if (verbose) puts(\"STUB: dspgst_ called\");\n    return NULL;\n}\n\nvoid* dspgv(void)\n{\n    if (verbose) puts(\"STUB: dspgv called\");\n    return NULL;\n}\n\nvoid* dspgv_(void)\n{\n    if (verbose) puts(\"STUB: dspgv_ called\");\n    return NULL;\n}\n\nvoid* dspgvd(void)\n{\n    if (verbose) puts(\"STUB: dspgvd called\");\n    return NULL;\n}\n\nvoid* dspgvd_(void)\n{\n    if (verbose) puts(\"STUB: dspgvd_ called\");\n    return NULL;\n}\n\nvoid* dspgvx(void)\n{\n    if (verbose) puts(\"STUB: dspgvx called\");\n    return NULL;\n}\n\nvoid* dspgvx_(void)\n{\n    if (verbose) puts(\"STUB: dspgvx_ called\");\n    return NULL;\n}\n\nvoid* dsposv(void)\n{\n    if (verbose) puts(\"STUB: dsposv called\");\n    return NULL;\n}\n\nvoid* dsposv_(void)\n{\n    if (verbose) puts(\"STUB: dsposv_ called\");\n    return NULL;\n}\n\nvoid* dsprfs(void)\n{\n    if (verbose) puts(\"STUB: dsprfs called\");\n    return NULL;\n}\n\nvoid* dsprfs_(void)\n{\n    if (verbose) puts(\"STUB: dsprfs_ called\");\n    return NULL;\n}\n\nvoid* dspsv(void)\n{\n    if (verbose) puts(\"STUB: dspsv called\");\n    return NULL;\n}\n\nvoid* dspsv_(void)\n{\n    if (verbose) puts(\"STUB: dspsv_ called\");\n    return NULL;\n}\n\nvoid* dspsvx(void)\n{\n    if (verbose) puts(\"STUB: dspsvx called\");\n    return NULL;\n}\n\nvoid* dspsvx_(void)\n{\n    if (verbose) puts(\"STUB: dspsvx_ called\");\n    return NULL;\n}\n\nvoid* dsptrd(void)\n{\n    if (verbose) puts(\"STUB: dsptrd called\");\n    return NULL;\n}\n\nvoid* dsptrd_(void)\n{\n    if (verbose) puts(\"STUB: dsptrd_ called\");\n    return NULL;\n}\n\nvoid* dsptrf(void)\n{\n    if (verbose) puts(\"STUB: dsptrf called\");\n    return NULL;\n}\n\nvoid* dsptrf_(void)\n{\n    if (verbose) puts(\"STUB: dsptrf_ called\");\n    return NULL;\n}\n\nvoid* dsptri(void)\n{\n    if (verbose) puts(\"STUB: dsptri called\");\n    return NULL;\n}\n\nvoid* dsptri_(void)\n{\n    if (verbose) puts(\"STUB: dsptri_ called\");\n    return NULL;\n}\n\nvoid* dsptrs(void)\n{\n    if (verbose) puts(\"STUB: dsptrs called\");\n    return NULL;\n}\n\nvoid* dsptrs_(void)\n{\n    if (verbose) puts(\"STUB: dsptrs_ called\");\n    return NULL;\n}\n\nvoid* dstebz(void)\n{\n    if (verbose) puts(\"STUB: dstebz called\");\n    return NULL;\n}\n\nvoid* dstebz_(void)\n{\n    if (verbose) puts(\"STUB: dstebz_ called\");\n    return NULL;\n}\n\nvoid* dstedc(void)\n{\n    if (verbose) puts(\"STUB: dstedc called\");\n    return NULL;\n}\n\nvoid* dstedc_(void)\n{\n    if (verbose) puts(\"STUB: dstedc_ called\");\n    return NULL;\n}\n\nvoid* dstegr(void)\n{\n    if (verbose) puts(\"STUB: dstegr called\");\n    return NULL;\n}\n\nvoid* dstegr_(void)\n{\n    if (verbose) puts(\"STUB: dstegr_ called\");\n    return NULL;\n}\n\nvoid* dstein(void)\n{\n    if (verbose) puts(\"STUB: dstein called\");\n    return NULL;\n}\n\nvoid* dstein_(void)\n{\n    if (verbose) puts(\"STUB: dstein_ called\");\n    return NULL;\n}\n\nvoid* dstemr(void)\n{\n    if (verbose) puts(\"STUB: dstemr called\");\n    return NULL;\n}\n\nvoid* dstemr_(void)\n{\n    if (verbose) puts(\"STUB: dstemr_ called\");\n    return NULL;\n}\n\nvoid* dsteqr(void)\n{\n    if (verbose) puts(\"STUB: dsteqr called\");\n    return NULL;\n}\n\nvoid* dsteqr_(void)\n{\n    if (verbose) puts(\"STUB: dsteqr_ called\");\n    return NULL;\n}\n\nvoid* dsterf(void)\n{\n    if (verbose) puts(\"STUB: dsterf called\");\n    return NULL;\n}\n\nvoid* dsterf_(void)\n{\n    if (verbose) puts(\"STUB: dsterf_ called\");\n    return NULL;\n}\n\nvoid* dstev(void)\n{\n    if (verbose) puts(\"STUB: dstev called\");\n    return NULL;\n}\n\nvoid* dstev_(void)\n{\n    if (verbose) puts(\"STUB: dstev_ called\");\n    return NULL;\n}\n\nvoid* dstevd(void)\n{\n    if (verbose) puts(\"STUB: dstevd called\");\n    return NULL;\n}\n\nvoid* dstevd_(void)\n{\n    if (verbose) puts(\"STUB: dstevd_ called\");\n    return NULL;\n}\n\nvoid* dstevr(void)\n{\n    if (verbose) puts(\"STUB: dstevr called\");\n    return NULL;\n}\n\nvoid* dstevr_(void)\n{\n    if (verbose) puts(\"STUB: dstevr_ called\");\n    return NULL;\n}\n\nvoid* dstevx(void)\n{\n    if (verbose) puts(\"STUB: dstevx called\");\n    return NULL;\n}\n\nvoid* dstevx_(void)\n{\n    if (verbose) puts(\"STUB: dstevx_ called\");\n    return NULL;\n}\n\nvoid* dsycon(void)\n{\n    if (verbose) puts(\"STUB: dsycon called\");\n    return NULL;\n}\n\nvoid* dsycon_(void)\n{\n    if (verbose) puts(\"STUB: dsycon_ called\");\n    return NULL;\n}\n\nvoid* dsyequb(void)\n{\n    if (verbose) puts(\"STUB: dsyequb called\");\n    return NULL;\n}\n\nvoid* dsyequb_(void)\n{\n    if (verbose) puts(\"STUB: dsyequb_ called\");\n    return NULL;\n}\n\nvoid* dsyev(void)\n{\n    if (verbose) puts(\"STUB: dsyev called\");\n    return NULL;\n}\n\nvoid* dsyev_(void)\n{\n    if (verbose) puts(\"STUB: dsyev_ called\");\n    return NULL;\n}\n\nvoid* dsyevd(void)\n{\n    if (verbose) puts(\"STUB: dsyevd called\");\n    return NULL;\n}\n\nvoid* dsyevd_(void)\n{\n    if (verbose) puts(\"STUB: dsyevd_ called\");\n    return NULL;\n}\n\nvoid* dsyevr(void)\n{\n    if (verbose) puts(\"STUB: dsyevr called\");\n    return NULL;\n}\n\nvoid* dsyevr_(void)\n{\n    if (verbose) puts(\"STUB: dsyevr_ called\");\n    return NULL;\n}\n\nvoid* dsyevx(void)\n{\n    if (verbose) puts(\"STUB: dsyevx called\");\n    return NULL;\n}\n\nvoid* dsyevx_(void)\n{\n    if (verbose) puts(\"STUB: dsyevx_ called\");\n    return NULL;\n}\n\nvoid* dsygs2(void)\n{\n    if (verbose) puts(\"STUB: dsygs2 called\");\n    return NULL;\n}\n\nvoid* dsygs2_(void)\n{\n    if (verbose) puts(\"STUB: dsygs2_ called\");\n    return NULL;\n}\n\nvoid* dsygst(void)\n{\n    if (verbose) puts(\"STUB: dsygst called\");\n    return NULL;\n}\n\nvoid* dsygst_(void)\n{\n    if (verbose) puts(\"STUB: dsygst_ called\");\n    return NULL;\n}\n\nvoid* dsygv(void)\n{\n    if (verbose) puts(\"STUB: dsygv called\");\n    return NULL;\n}\n\nvoid* dsygv_(void)\n{\n    if (verbose) puts(\"STUB: dsygv_ called\");\n    return NULL;\n}\n\nvoid* dsygvd(void)\n{\n    if (verbose) puts(\"STUB: dsygvd called\");\n    return NULL;\n}\n\nvoid* dsygvd_(void)\n{\n    if (verbose) puts(\"STUB: dsygvd_ called\");\n    return NULL;\n}\n\nvoid* dsygvx(void)\n{\n    if (verbose) puts(\"STUB: dsygvx called\");\n    return NULL;\n}\n\nvoid* dsygvx_(void)\n{\n    if (verbose) puts(\"STUB: dsygvx_ called\");\n    return NULL;\n}\n\nvoid* dsyrfs(void)\n{\n    if (verbose) puts(\"STUB: dsyrfs called\");\n    return NULL;\n}\n\nvoid* dsyrfs_(void)\n{\n    if (verbose) puts(\"STUB: dsyrfs_ called\");\n    return NULL;\n}\n\nvoid* dsysv(void)\n{\n    if (verbose) puts(\"STUB: dsysv called\");\n    return NULL;\n}\n\nvoid* dsysv_(void)\n{\n    if (verbose) puts(\"STUB: dsysv_ called\");\n    return NULL;\n}\n\nvoid* dsysvx(void)\n{\n    if (verbose) puts(\"STUB: dsysvx called\");\n    return NULL;\n}\n\nvoid* dsysvx_(void)\n{\n    if (verbose) puts(\"STUB: dsysvx_ called\");\n    return NULL;\n}\n\nvoid* dsytd2(void)\n{\n    if (verbose) puts(\"STUB: dsytd2 called\");\n    return NULL;\n}\n\nvoid* dsytd2_(void)\n{\n    if (verbose) puts(\"STUB: dsytd2_ called\");\n    return NULL;\n}\n\nvoid* dsytf2(void)\n{\n    if (verbose) puts(\"STUB: dsytf2 called\");\n    return NULL;\n}\n\nvoid* dsytf2_(void)\n{\n    if (verbose) puts(\"STUB: dsytf2_ called\");\n    return NULL;\n}\n\nvoid* dsytrd(void)\n{\n    if (verbose) puts(\"STUB: dsytrd called\");\n    return NULL;\n}\n\nvoid* dsytrd_(void)\n{\n    if (verbose) puts(\"STUB: dsytrd_ called\");\n    return NULL;\n}\n\nvoid* dsytrf(void)\n{\n    if (verbose) puts(\"STUB: dsytrf called\");\n    return NULL;\n}\n\nvoid* dsytrf_(void)\n{\n    if (verbose) puts(\"STUB: dsytrf_ called\");\n    return NULL;\n}\n\nvoid* dsytri(void)\n{\n    if (verbose) puts(\"STUB: dsytri called\");\n    return NULL;\n}\n\nvoid* dsytri_(void)\n{\n    if (verbose) puts(\"STUB: dsytri_ called\");\n    return NULL;\n}\n\nvoid* dsytrs(void)\n{\n    if (verbose) puts(\"STUB: dsytrs called\");\n    return NULL;\n}\n\nvoid* dsytrs_(void)\n{\n    if (verbose) puts(\"STUB: dsytrs_ called\");\n    return NULL;\n}\n\nvoid* dtbcon(void)\n{\n    if (verbose) puts(\"STUB: dtbcon called\");\n    return NULL;\n}\n\nvoid* dtbcon_(void)\n{\n    if (verbose) puts(\"STUB: dtbcon_ called\");\n    return NULL;\n}\n\nvoid* dtbrfs(void)\n{\n    if (verbose) puts(\"STUB: dtbrfs called\");\n    return NULL;\n}\n\nvoid* dtbrfs_(void)\n{\n    if (verbose) puts(\"STUB: dtbrfs_ called\");\n    return NULL;\n}\n\nvoid* dtbtrs(void)\n{\n    if (verbose) puts(\"STUB: dtbtrs called\");\n    return NULL;\n}\n\nvoid* dtbtrs_(void)\n{\n    if (verbose) puts(\"STUB: dtbtrs_ called\");\n    return NULL;\n}\n\nvoid* dtfsm(void)\n{\n    if (verbose) puts(\"STUB: dtfsm called\");\n    return NULL;\n}\n\nvoid* dtfsm_(void)\n{\n    if (verbose) puts(\"STUB: dtfsm_ called\");\n    return NULL;\n}\n\nvoid* dtftri(void)\n{\n    if (verbose) puts(\"STUB: dtftri called\");\n    return NULL;\n}\n\nvoid* dtftri_(void)\n{\n    if (verbose) puts(\"STUB: dtftri_ called\");\n    return NULL;\n}\n\nvoid* dtfttp(void)\n{\n    if (verbose) puts(\"STUB: dtfttp called\");\n    return NULL;\n}\n\nvoid* dtfttp_(void)\n{\n    if (verbose) puts(\"STUB: dtfttp_ called\");\n    return NULL;\n}\n\nvoid* dtfttr(void)\n{\n    if (verbose) puts(\"STUB: dtfttr called\");\n    return NULL;\n}\n\nvoid* dtfttr_(void)\n{\n    if (verbose) puts(\"STUB: dtfttr_ called\");\n    return NULL;\n}\n\nvoid* dtgevc(void)\n{\n    if (verbose) puts(\"STUB: dtgevc called\");\n    return NULL;\n}\n\nvoid* dtgevc_(void)\n{\n    if (verbose) puts(\"STUB: dtgevc_ called\");\n    return NULL;\n}\n\nvoid* dtgex2(void)\n{\n    if (verbose) puts(\"STUB: dtgex2 called\");\n    return NULL;\n}\n\nvoid* dtgex2_(void)\n{\n    if (verbose) puts(\"STUB: dtgex2_ called\");\n    return NULL;\n}\n\nvoid* dtgexc(void)\n{\n    if (verbose) puts(\"STUB: dtgexc called\");\n    return NULL;\n}\n\nvoid* dtgexc_(void)\n{\n    if (verbose) puts(\"STUB: dtgexc_ called\");\n    return NULL;\n}\n\nvoid* dtgsen(void)\n{\n    if (verbose) puts(\"STUB: dtgsen called\");\n    return NULL;\n}\n\nvoid* dtgsen_(void)\n{\n    if (verbose) puts(\"STUB: dtgsen_ called\");\n    return NULL;\n}\n\nvoid* dtgsja(void)\n{\n    if (verbose) puts(\"STUB: dtgsja called\");\n    return NULL;\n}\n\nvoid* dtgsja_(void)\n{\n    if (verbose) puts(\"STUB: dtgsja_ called\");\n    return NULL;\n}\n\nvoid* dtgsna(void)\n{\n    if (verbose) puts(\"STUB: dtgsna called\");\n    return NULL;\n}\n\nvoid* dtgsna_(void)\n{\n    if (verbose) puts(\"STUB: dtgsna_ called\");\n    return NULL;\n}\n\nvoid* dtgsy2(void)\n{\n    if (verbose) puts(\"STUB: dtgsy2 called\");\n    return NULL;\n}\n\nvoid* dtgsy2_(void)\n{\n    if (verbose) puts(\"STUB: dtgsy2_ called\");\n    return NULL;\n}\n\nvoid* dtgsyl(void)\n{\n    if (verbose) puts(\"STUB: dtgsyl called\");\n    return NULL;\n}\n\nvoid* dtgsyl_(void)\n{\n    if (verbose) puts(\"STUB: dtgsyl_ called\");\n    return NULL;\n}\n\nvoid* dtpcon(void)\n{\n    if (verbose) puts(\"STUB: dtpcon called\");\n    return NULL;\n}\n\nvoid* dtpcon_(void)\n{\n    if (verbose) puts(\"STUB: dtpcon_ called\");\n    return NULL;\n}\n\nvoid* dtprfs(void)\n{\n    if (verbose) puts(\"STUB: dtprfs called\");\n    return NULL;\n}\n\nvoid* dtprfs_(void)\n{\n    if (verbose) puts(\"STUB: dtprfs_ called\");\n    return NULL;\n}\n\nvoid* dtptri(void)\n{\n    if (verbose) puts(\"STUB: dtptri called\");\n    return NULL;\n}\n\nvoid* dtptri_(void)\n{\n    if (verbose) puts(\"STUB: dtptri_ called\");\n    return NULL;\n}\n\nvoid* dtptrs(void)\n{\n    if (verbose) puts(\"STUB: dtptrs called\");\n    return NULL;\n}\n\nvoid* dtptrs_(void)\n{\n    if (verbose) puts(\"STUB: dtptrs_ called\");\n    return NULL;\n}\n\nvoid* dtpttf(void)\n{\n    if (verbose) puts(\"STUB: dtpttf called\");\n    return NULL;\n}\n\nvoid* dtpttf_(void)\n{\n    if (verbose) puts(\"STUB: dtpttf_ called\");\n    return NULL;\n}\n\nvoid* dtpttr(void)\n{\n    if (verbose) puts(\"STUB: dtpttr called\");\n    return NULL;\n}\n\nvoid* dtpttr_(void)\n{\n    if (verbose) puts(\"STUB: dtpttr_ called\");\n    return NULL;\n}\n\nvoid* dtrcon(void)\n{\n    if (verbose) puts(\"STUB: dtrcon called\");\n    return NULL;\n}\n\nvoid* dtrcon_(void)\n{\n    if (verbose) puts(\"STUB: dtrcon_ called\");\n    return NULL;\n}\n\nvoid* dtrevc(void)\n{\n    if (verbose) puts(\"STUB: dtrevc called\");\n    return NULL;\n}\n\nvoid* dtrevc_(void)\n{\n    if (verbose) puts(\"STUB: dtrevc_ called\");\n    return NULL;\n}\n\nvoid* dtrexc(void)\n{\n    if (verbose) puts(\"STUB: dtrexc called\");\n    return NULL;\n}\n\nvoid* dtrexc_(void)\n{\n    if (verbose) puts(\"STUB: dtrexc_ called\");\n    return NULL;\n}\n\nvoid* dtrrfs(void)\n{\n    if (verbose) puts(\"STUB: dtrrfs called\");\n    return NULL;\n}\n\nvoid* dtrrfs_(void)\n{\n    if (verbose) puts(\"STUB: dtrrfs_ called\");\n    return NULL;\n}\n\nvoid* dtrsen(void)\n{\n    if (verbose) puts(\"STUB: dtrsen called\");\n    return NULL;\n}\n\nvoid* dtrsen_(void)\n{\n    if (verbose) puts(\"STUB: dtrsen_ called\");\n    return NULL;\n}\n\nvoid* dtrsna(void)\n{\n    if (verbose) puts(\"STUB: dtrsna called\");\n    return NULL;\n}\n\nvoid* dtrsna_(void)\n{\n    if (verbose) puts(\"STUB: dtrsna_ called\");\n    return NULL;\n}\n\nvoid* dtrsyl(void)\n{\n    if (verbose) puts(\"STUB: dtrsyl called\");\n    return NULL;\n}\n\nvoid* dtrsyl_(void)\n{\n    if (verbose) puts(\"STUB: dtrsyl_ called\");\n    return NULL;\n}\n\nvoid* dtrti2(void)\n{\n    if (verbose) puts(\"STUB: dtrti2 called\");\n    return NULL;\n}\n\nvoid* dtrti2_(void)\n{\n    if (verbose) puts(\"STUB: dtrti2_ called\");\n    return NULL;\n}\n\nvoid* dtrtri(void)\n{\n    if (verbose) puts(\"STUB: dtrtri called\");\n    return NULL;\n}\n\nvoid* dtrtri_(void)\n{\n    if (verbose) puts(\"STUB: dtrtri_ called\");\n    return NULL;\n}\n\nvoid* dtrtrs(void)\n{\n    if (verbose) puts(\"STUB: dtrtrs called\");\n    return NULL;\n}\n\nvoid* dtrtrs_(void)\n{\n    if (verbose) puts(\"STUB: dtrtrs_ called\");\n    return NULL;\n}\n\nvoid* dtrttf(void)\n{\n    if (verbose) puts(\"STUB: dtrttf called\");\n    return NULL;\n}\n\nvoid* dtrttf_(void)\n{\n    if (verbose) puts(\"STUB: dtrttf_ called\");\n    return NULL;\n}\n\nvoid* dtrttp(void)\n{\n    if (verbose) puts(\"STUB: dtrttp called\");\n    return NULL;\n}\n\nvoid* dtrttp_(void)\n{\n    if (verbose) puts(\"STUB: dtrttp_ called\");\n    return NULL;\n}\n\nvoid* dtzrqf(void)\n{\n    if (verbose) puts(\"STUB: dtzrqf called\");\n    return NULL;\n}\n\nvoid* dtzrqf_(void)\n{\n    if (verbose) puts(\"STUB: dtzrqf_ called\");\n    return NULL;\n}\n\nvoid* dtzrzf(void)\n{\n    if (verbose) puts(\"STUB: dtzrzf called\");\n    return NULL;\n}\n\nvoid* dtzrzf_(void)\n{\n    if (verbose) puts(\"STUB: dtzrzf_ called\");\n    return NULL;\n}\n\nvoid* dzsum1(void)\n{\n    if (verbose) puts(\"STUB: dzsum1 called\");\n    return NULL;\n}\n\nvoid* dzsum1_(void)\n{\n    if (verbose) puts(\"STUB: dzsum1_ called\");\n    return NULL;\n}\n\nvoid* icmax1(void)\n{\n    if (verbose) puts(\"STUB: icmax1 called\");\n    return NULL;\n}\n\nvoid* icmax1_(void)\n{\n    if (verbose) puts(\"STUB: icmax1_ called\");\n    return NULL;\n}\n\nvoid* ieeeck(void)\n{\n    if (verbose) puts(\"STUB: ieeeck called\");\n    return NULL;\n}\n\nvoid* ieeeck_(void)\n{\n    if (verbose) puts(\"STUB: ieeeck_ called\");\n    return NULL;\n}\n\nvoid* ilaclc(void)\n{\n    if (verbose) puts(\"STUB: ilaclc called\");\n    return NULL;\n}\n\nvoid* ilaclc_(void)\n{\n    if (verbose) puts(\"STUB: ilaclc_ called\");\n    return NULL;\n}\n\nvoid* ilaclr(void)\n{\n    if (verbose) puts(\"STUB: ilaclr called\");\n    return NULL;\n}\n\nvoid* ilaclr_(void)\n{\n    if (verbose) puts(\"STUB: ilaclr_ called\");\n    return NULL;\n}\n\nvoid* iladiag(void)\n{\n    if (verbose) puts(\"STUB: iladiag called\");\n    return NULL;\n}\n\nvoid* iladiag_(void)\n{\n    if (verbose) puts(\"STUB: iladiag_ called\");\n    return NULL;\n}\n\nvoid* iladlc(void)\n{\n    if (verbose) puts(\"STUB: iladlc called\");\n    return NULL;\n}\n\nvoid* iladlc_(void)\n{\n    if (verbose) puts(\"STUB: iladlc_ called\");\n    return NULL;\n}\n\nvoid* iladlr(void)\n{\n    if (verbose) puts(\"STUB: iladlr called\");\n    return NULL;\n}\n\nvoid* iladlr_(void)\n{\n    if (verbose) puts(\"STUB: iladlr_ called\");\n    return NULL;\n}\n\nvoid* ilaenv(void)\n{\n    if (verbose) puts(\"STUB: ilaenv called\");\n    return NULL;\n}\n\nvoid* ilaenv_(void)\n{\n    if (verbose) puts(\"STUB: ilaenv_ called\");\n    return NULL;\n}\n\nvoid* ilaprec(void)\n{\n    if (verbose) puts(\"STUB: ilaprec called\");\n    return NULL;\n}\n\nvoid* ilaprec_(void)\n{\n    if (verbose) puts(\"STUB: ilaprec_ called\");\n    return NULL;\n}\n\nvoid* ilaslc(void)\n{\n    if (verbose) puts(\"STUB: ilaslc called\");\n    return NULL;\n}\n\nvoid* ilaslc_(void)\n{\n    if (verbose) puts(\"STUB: ilaslc_ called\");\n    return NULL;\n}\n\nvoid* ilaslr(void)\n{\n    if (verbose) puts(\"STUB: ilaslr called\");\n    return NULL;\n}\n\nvoid* ilaslr_(void)\n{\n    if (verbose) puts(\"STUB: ilaslr_ called\");\n    return NULL;\n}\n\nvoid* ilatrans(void)\n{\n    if (verbose) puts(\"STUB: ilatrans called\");\n    return NULL;\n}\n\nvoid* ilatrans_(void)\n{\n    if (verbose) puts(\"STUB: ilatrans_ called\");\n    return NULL;\n}\n\nvoid* ilauplo(void)\n{\n    if (verbose) puts(\"STUB: ilauplo called\");\n    return NULL;\n}\n\nvoid* ilauplo_(void)\n{\n    if (verbose) puts(\"STUB: ilauplo_ called\");\n    return NULL;\n}\n\nvoid* ilaver(void)\n{\n    if (verbose) puts(\"STUB: ilaver called\");\n    return NULL;\n}\n\nvoid* ilaver_(void)\n{\n    if (verbose) puts(\"STUB: ilaver_ called\");\n    return NULL;\n}\n\nvoid* ilazlc(void)\n{\n    if (verbose) puts(\"STUB: ilazlc called\");\n    return NULL;\n}\n\nvoid* ilazlc_(void)\n{\n    if (verbose) puts(\"STUB: ilazlc_ called\");\n    return NULL;\n}\n\nvoid* ilazlr(void)\n{\n    if (verbose) puts(\"STUB: ilazlr called\");\n    return NULL;\n}\n\nvoid* ilazlr_(void)\n{\n    if (verbose) puts(\"STUB: ilazlr_ called\");\n    return NULL;\n}\n\nvoid* iparmq(void)\n{\n    if (verbose) puts(\"STUB: iparmq called\");\n    return NULL;\n}\n\nvoid* iparmq_(void)\n{\n    if (verbose) puts(\"STUB: iparmq_ called\");\n    return NULL;\n}\n\nvoid* izmax1(void)\n{\n    if (verbose) puts(\"STUB: izmax1 called\");\n    return NULL;\n}\n\nvoid* izmax1_(void)\n{\n    if (verbose) puts(\"STUB: izmax1_ called\");\n    return NULL;\n}\n\nvoid* lsamen(void)\n{\n    if (verbose) puts(\"STUB: lsamen called\");\n    return NULL;\n}\n\nvoid* lsamen_(void)\n{\n    if (verbose) puts(\"STUB: lsamen_ called\");\n    return NULL;\n}\n\nvoid* sbdsdc(void)\n{\n    if (verbose) puts(\"STUB: sbdsdc called\");\n    return NULL;\n}\n\nvoid* sbdsdc_(void)\n{\n    if (verbose) puts(\"STUB: sbdsdc_ called\");\n    return NULL;\n}\n\nvoid* sbdsqr(void)\n{\n    if (verbose) puts(\"STUB: sbdsqr called\");\n    return NULL;\n}\n\nvoid* sbdsqr_(void)\n{\n    if (verbose) puts(\"STUB: sbdsqr_ called\");\n    return NULL;\n}\n\nvoid* scsum1(void)\n{\n    if (verbose) puts(\"STUB: scsum1 called\");\n    return NULL;\n}\n\nvoid* scsum1_(void)\n{\n    if (verbose) puts(\"STUB: scsum1_ called\");\n    return NULL;\n}\n\nvoid* sdisna(void)\n{\n    if (verbose) puts(\"STUB: sdisna called\");\n    return NULL;\n}\n\nvoid* sdisna_(void)\n{\n    if (verbose) puts(\"STUB: sdisna_ called\");\n    return NULL;\n}\n\nvoid* sgbbrd(void)\n{\n    if (verbose) puts(\"STUB: sgbbrd called\");\n    return NULL;\n}\n\nvoid* sgbbrd_(void)\n{\n    if (verbose) puts(\"STUB: sgbbrd_ called\");\n    return NULL;\n}\n\nvoid* sgbcon(void)\n{\n    if (verbose) puts(\"STUB: sgbcon called\");\n    return NULL;\n}\n\nvoid* sgbcon_(void)\n{\n    if (verbose) puts(\"STUB: sgbcon_ called\");\n    return NULL;\n}\n\nvoid* sgbequ(void)\n{\n    if (verbose) puts(\"STUB: sgbequ called\");\n    return NULL;\n}\n\nvoid* sgbequ_(void)\n{\n    if (verbose) puts(\"STUB: sgbequ_ called\");\n    return NULL;\n}\n\nvoid* sgbequb(void)\n{\n    if (verbose) puts(\"STUB: sgbequb called\");\n    return NULL;\n}\n\nvoid* sgbequb_(void)\n{\n    if (verbose) puts(\"STUB: sgbequb_ called\");\n    return NULL;\n}\n\nvoid* sgbrfs(void)\n{\n    if (verbose) puts(\"STUB: sgbrfs called\");\n    return NULL;\n}\n\nvoid* sgbrfs_(void)\n{\n    if (verbose) puts(\"STUB: sgbrfs_ called\");\n    return NULL;\n}\n\nvoid* sgbsv(void)\n{\n    if (verbose) puts(\"STUB: sgbsv called\");\n    return NULL;\n}\n\nvoid* sgbsv_(void)\n{\n    if (verbose) puts(\"STUB: sgbsv_ called\");\n    return NULL;\n}\n\nvoid* sgbsvx(void)\n{\n    if (verbose) puts(\"STUB: sgbsvx called\");\n    return NULL;\n}\n\nvoid* sgbsvx_(void)\n{\n    if (verbose) puts(\"STUB: sgbsvx_ called\");\n    return NULL;\n}\n\nvoid* sgbtf2(void)\n{\n    if (verbose) puts(\"STUB: sgbtf2 called\");\n    return NULL;\n}\n\nvoid* sgbtf2_(void)\n{\n    if (verbose) puts(\"STUB: sgbtf2_ called\");\n    return NULL;\n}\n\nvoid* sgbtrf(void)\n{\n    if (verbose) puts(\"STUB: sgbtrf called\");\n    return NULL;\n}\n\nvoid* sgbtrf_(void)\n{\n    if (verbose) puts(\"STUB: sgbtrf_ called\");\n    return NULL;\n}\n\nvoid* sgbtrs(void)\n{\n    if (verbose) puts(\"STUB: sgbtrs called\");\n    return NULL;\n}\n\nvoid* sgbtrs_(void)\n{\n    if (verbose) puts(\"STUB: sgbtrs_ called\");\n    return NULL;\n}\n\nvoid* sgebak(void)\n{\n    if (verbose) puts(\"STUB: sgebak called\");\n    return NULL;\n}\n\nvoid* sgebak_(void)\n{\n    if (verbose) puts(\"STUB: sgebak_ called\");\n    return NULL;\n}\n\nvoid* sgebal(void)\n{\n    if (verbose) puts(\"STUB: sgebal called\");\n    return NULL;\n}\n\nvoid* sgebal_(void)\n{\n    if (verbose) puts(\"STUB: sgebal_ called\");\n    return NULL;\n}\n\nvoid* sgebd2(void)\n{\n    if (verbose) puts(\"STUB: sgebd2 called\");\n    return NULL;\n}\n\nvoid* sgebd2_(void)\n{\n    if (verbose) puts(\"STUB: sgebd2_ called\");\n    return NULL;\n}\n\nvoid* sgebrd(void)\n{\n    if (verbose) puts(\"STUB: sgebrd called\");\n    return NULL;\n}\n\nvoid* sgebrd_(void)\n{\n    if (verbose) puts(\"STUB: sgebrd_ called\");\n    return NULL;\n}\n\nvoid* sgecon(void)\n{\n    if (verbose) puts(\"STUB: sgecon called\");\n    return NULL;\n}\n\nvoid* sgecon_(void)\n{\n    if (verbose) puts(\"STUB: sgecon_ called\");\n    return NULL;\n}\n\nvoid* sgeequ(void)\n{\n    if (verbose) puts(\"STUB: sgeequ called\");\n    return NULL;\n}\n\nvoid* sgeequ_(void)\n{\n    if (verbose) puts(\"STUB: sgeequ_ called\");\n    return NULL;\n}\n\nvoid* sgeequb(void)\n{\n    if (verbose) puts(\"STUB: sgeequb called\");\n    return NULL;\n}\n\nvoid* sgeequb_(void)\n{\n    if (verbose) puts(\"STUB: sgeequb_ called\");\n    return NULL;\n}\n\nvoid* sgees(void)\n{\n    if (verbose) puts(\"STUB: sgees called\");\n    return NULL;\n}\n\nvoid* sgees_(void)\n{\n    if (verbose) puts(\"STUB: sgees_ called\");\n    return NULL;\n}\n\nvoid* sgeesx(void)\n{\n    if (verbose) puts(\"STUB: sgeesx called\");\n    return NULL;\n}\n\nvoid* sgeesx_(void)\n{\n    if (verbose) puts(\"STUB: sgeesx_ called\");\n    return NULL;\n}\n\nvoid* sgeev(void)\n{\n    if (verbose) puts(\"STUB: sgeev called\");\n    return NULL;\n}\n\nvoid* sgeev_(void)\n{\n    if (verbose) puts(\"STUB: sgeev_ called\");\n    return NULL;\n}\n\nvoid* sgeevx(void)\n{\n    if (verbose) puts(\"STUB: sgeevx called\");\n    return NULL;\n}\n\nvoid* sgeevx_(void)\n{\n    if (verbose) puts(\"STUB: sgeevx_ called\");\n    return NULL;\n}\n\nvoid* sgegs(void)\n{\n    if (verbose) puts(\"STUB: sgegs called\");\n    return NULL;\n}\n\nvoid* sgegs_(void)\n{\n    if (verbose) puts(\"STUB: sgegs_ called\");\n    return NULL;\n}\n\nvoid* sgegv(void)\n{\n    if (verbose) puts(\"STUB: sgegv called\");\n    return NULL;\n}\n\nvoid* sgegv_(void)\n{\n    if (verbose) puts(\"STUB: sgegv_ called\");\n    return NULL;\n}\n\nvoid* sgehd2(void)\n{\n    if (verbose) puts(\"STUB: sgehd2 called\");\n    return NULL;\n}\n\nvoid* sgehd2_(void)\n{\n    if (verbose) puts(\"STUB: sgehd2_ called\");\n    return NULL;\n}\n\nvoid* sgehrd(void)\n{\n    if (verbose) puts(\"STUB: sgehrd called\");\n    return NULL;\n}\n\nvoid* sgehrd_(void)\n{\n    if (verbose) puts(\"STUB: sgehrd_ called\");\n    return NULL;\n}\n\nvoid* sgejsv(void)\n{\n    if (verbose) puts(\"STUB: sgejsv called\");\n    return NULL;\n}\n\nvoid* sgejsv_(void)\n{\n    if (verbose) puts(\"STUB: sgejsv_ called\");\n    return NULL;\n}\n\nvoid* sgelq2(void)\n{\n    if (verbose) puts(\"STUB: sgelq2 called\");\n    return NULL;\n}\n\nvoid* sgelq2_(void)\n{\n    if (verbose) puts(\"STUB: sgelq2_ called\");\n    return NULL;\n}\n\nvoid* sgelqf(void)\n{\n    if (verbose) puts(\"STUB: sgelqf called\");\n    return NULL;\n}\n\nvoid* sgelqf_(void)\n{\n    if (verbose) puts(\"STUB: sgelqf_ called\");\n    return NULL;\n}\n\nvoid* sgels(void)\n{\n    if (verbose) puts(\"STUB: sgels called\");\n    return NULL;\n}\n\nvoid* sgels_(void)\n{\n    if (verbose) puts(\"STUB: sgels_ called\");\n    return NULL;\n}\n\nvoid* sgelsd(void)\n{\n    if (verbose) puts(\"STUB: sgelsd called\");\n    return NULL;\n}\n\nvoid* sgelsd_(void)\n{\n    if (verbose) puts(\"STUB: sgelsd_ called\");\n    return NULL;\n}\n\nvoid* sgelss(void)\n{\n    if (verbose) puts(\"STUB: sgelss called\");\n    return NULL;\n}\n\nvoid* sgelss_(void)\n{\n    if (verbose) puts(\"STUB: sgelss_ called\");\n    return NULL;\n}\n\nvoid* sgelsx(void)\n{\n    if (verbose) puts(\"STUB: sgelsx called\");\n    return NULL;\n}\n\nvoid* sgelsx_(void)\n{\n    if (verbose) puts(\"STUB: sgelsx_ called\");\n    return NULL;\n}\n\nvoid* sgelsy(void)\n{\n    if (verbose) puts(\"STUB: sgelsy called\");\n    return NULL;\n}\n\nvoid* sgelsy_(void)\n{\n    if (verbose) puts(\"STUB: sgelsy_ called\");\n    return NULL;\n}\n\nvoid* sgeql2(void)\n{\n    if (verbose) puts(\"STUB: sgeql2 called\");\n    return NULL;\n}\n\nvoid* sgeql2_(void)\n{\n    if (verbose) puts(\"STUB: sgeql2_ called\");\n    return NULL;\n}\n\nvoid* sgeqlf(void)\n{\n    if (verbose) puts(\"STUB: sgeqlf called\");\n    return NULL;\n}\n\nvoid* sgeqlf_(void)\n{\n    if (verbose) puts(\"STUB: sgeqlf_ called\");\n    return NULL;\n}\n\nvoid* sgeqp3(void)\n{\n    if (verbose) puts(\"STUB: sgeqp3 called\");\n    return NULL;\n}\n\nvoid* sgeqp3_(void)\n{\n    if (verbose) puts(\"STUB: sgeqp3_ called\");\n    return NULL;\n}\n\nvoid* sgeqpf(void)\n{\n    if (verbose) puts(\"STUB: sgeqpf called\");\n    return NULL;\n}\n\nvoid* sgeqpf_(void)\n{\n    if (verbose) puts(\"STUB: sgeqpf_ called\");\n    return NULL;\n}\n\nvoid* sgeqr2(void)\n{\n    if (verbose) puts(\"STUB: sgeqr2 called\");\n    return NULL;\n}\n\nvoid* sgeqr2_(void)\n{\n    if (verbose) puts(\"STUB: sgeqr2_ called\");\n    return NULL;\n}\n\nvoid* sgeqrf(void)\n{\n    if (verbose) puts(\"STUB: sgeqrf called\");\n    return NULL;\n}\n\nvoid* sgeqrf_(void)\n{\n    if (verbose) puts(\"STUB: sgeqrf_ called\");\n    return NULL;\n}\n\nvoid* sgerfs(void)\n{\n    if (verbose) puts(\"STUB: sgerfs called\");\n    return NULL;\n}\n\nvoid* sgerfs_(void)\n{\n    if (verbose) puts(\"STUB: sgerfs_ called\");\n    return NULL;\n}\n\nvoid* sgerq2(void)\n{\n    if (verbose) puts(\"STUB: sgerq2 called\");\n    return NULL;\n}\n\nvoid* sgerq2_(void)\n{\n    if (verbose) puts(\"STUB: sgerq2_ called\");\n    return NULL;\n}\n\nvoid* sgerqf(void)\n{\n    if (verbose) puts(\"STUB: sgerqf called\");\n    return NULL;\n}\n\nvoid* sgerqf_(void)\n{\n    if (verbose) puts(\"STUB: sgerqf_ called\");\n    return NULL;\n}\n\nvoid* sgesc2(void)\n{\n    if (verbose) puts(\"STUB: sgesc2 called\");\n    return NULL;\n}\n\nvoid* sgesc2_(void)\n{\n    if (verbose) puts(\"STUB: sgesc2_ called\");\n    return NULL;\n}\n\nvoid* sgesdd(void)\n{\n    if (verbose) puts(\"STUB: sgesdd called\");\n    return NULL;\n}\n\nvoid* sgesdd_(void)\n{\n    if (verbose) puts(\"STUB: sgesdd_ called\");\n    return NULL;\n}\n\nvoid* sgesv(void)\n{\n    if (verbose) puts(\"STUB: sgesv called\");\n    return NULL;\n}\n\nvoid* sgesv_(void)\n{\n    if (verbose) puts(\"STUB: sgesv_ called\");\n    return NULL;\n}\n\nvoid* sgesvd(void)\n{\n    if (verbose) puts(\"STUB: sgesvd called\");\n    return NULL;\n}\n\nvoid* sgesvd_(void)\n{\n    if (verbose) puts(\"STUB: sgesvd_ called\");\n    return NULL;\n}\n\nvoid* sgesvj(void)\n{\n    if (verbose) puts(\"STUB: sgesvj called\");\n    return NULL;\n}\n\nvoid* sgesvj_(void)\n{\n    if (verbose) puts(\"STUB: sgesvj_ called\");\n    return NULL;\n}\n\nvoid* sgesvx(void)\n{\n    if (verbose) puts(\"STUB: sgesvx called\");\n    return NULL;\n}\n\nvoid* sgesvx_(void)\n{\n    if (verbose) puts(\"STUB: sgesvx_ called\");\n    return NULL;\n}\n\nvoid* sgetc2(void)\n{\n    if (verbose) puts(\"STUB: sgetc2 called\");\n    return NULL;\n}\n\nvoid* sgetc2_(void)\n{\n    if (verbose) puts(\"STUB: sgetc2_ called\");\n    return NULL;\n}\n\nvoid* sgetf2(void)\n{\n    if (verbose) puts(\"STUB: sgetf2 called\");\n    return NULL;\n}\n\nvoid* sgetf2_(void)\n{\n    if (verbose) puts(\"STUB: sgetf2_ called\");\n    return NULL;\n}\n\nvoid* sgetrf(void)\n{\n    if (verbose) puts(\"STUB: sgetrf called\");\n    return NULL;\n}\n\nvoid* sgetrf_(void)\n{\n    if (verbose) puts(\"STUB: sgetrf_ called\");\n    return NULL;\n}\n\nvoid* sgetri(void)\n{\n    if (verbose) puts(\"STUB: sgetri called\");\n    return NULL;\n}\n\nvoid* sgetri_(void)\n{\n    if (verbose) puts(\"STUB: sgetri_ called\");\n    return NULL;\n}\n\nvoid* sgetrs(void)\n{\n    if (verbose) puts(\"STUB: sgetrs called\");\n    return NULL;\n}\n\nvoid* sgetrs_(void)\n{\n    if (verbose) puts(\"STUB: sgetrs_ called\");\n    return NULL;\n}\n\nvoid* sggbak(void)\n{\n    if (verbose) puts(\"STUB: sggbak called\");\n    return NULL;\n}\n\nvoid* sggbak_(void)\n{\n    if (verbose) puts(\"STUB: sggbak_ called\");\n    return NULL;\n}\n\nvoid* sggbal(void)\n{\n    if (verbose) puts(\"STUB: sggbal called\");\n    return NULL;\n}\n\nvoid* sggbal_(void)\n{\n    if (verbose) puts(\"STUB: sggbal_ called\");\n    return NULL;\n}\n\nvoid* sgges(void)\n{\n    if (verbose) puts(\"STUB: sgges called\");\n    return NULL;\n}\n\nvoid* sgges_(void)\n{\n    if (verbose) puts(\"STUB: sgges_ called\");\n    return NULL;\n}\n\nvoid* sggesx(void)\n{\n    if (verbose) puts(\"STUB: sggesx called\");\n    return NULL;\n}\n\nvoid* sggesx_(void)\n{\n    if (verbose) puts(\"STUB: sggesx_ called\");\n    return NULL;\n}\n\nvoid* sggev(void)\n{\n    if (verbose) puts(\"STUB: sggev called\");\n    return NULL;\n}\n\nvoid* sggev_(void)\n{\n    if (verbose) puts(\"STUB: sggev_ called\");\n    return NULL;\n}\n\nvoid* sggevx(void)\n{\n    if (verbose) puts(\"STUB: sggevx called\");\n    return NULL;\n}\n\nvoid* sggevx_(void)\n{\n    if (verbose) puts(\"STUB: sggevx_ called\");\n    return NULL;\n}\n\nvoid* sggglm(void)\n{\n    if (verbose) puts(\"STUB: sggglm called\");\n    return NULL;\n}\n\nvoid* sggglm_(void)\n{\n    if (verbose) puts(\"STUB: sggglm_ called\");\n    return NULL;\n}\n\nvoid* sgghrd(void)\n{\n    if (verbose) puts(\"STUB: sgghrd called\");\n    return NULL;\n}\n\nvoid* sgghrd_(void)\n{\n    if (verbose) puts(\"STUB: sgghrd_ called\");\n    return NULL;\n}\n\nvoid* sgglse(void)\n{\n    if (verbose) puts(\"STUB: sgglse called\");\n    return NULL;\n}\n\nvoid* sgglse_(void)\n{\n    if (verbose) puts(\"STUB: sgglse_ called\");\n    return NULL;\n}\n\nvoid* sggqrf(void)\n{\n    if (verbose) puts(\"STUB: sggqrf called\");\n    return NULL;\n}\n\nvoid* sggqrf_(void)\n{\n    if (verbose) puts(\"STUB: sggqrf_ called\");\n    return NULL;\n}\n\nvoid* sggrqf(void)\n{\n    if (verbose) puts(\"STUB: sggrqf called\");\n    return NULL;\n}\n\nvoid* sggrqf_(void)\n{\n    if (verbose) puts(\"STUB: sggrqf_ called\");\n    return NULL;\n}\n\nvoid* sggsvd(void)\n{\n    if (verbose) puts(\"STUB: sggsvd called\");\n    return NULL;\n}\n\nvoid* sggsvd_(void)\n{\n    if (verbose) puts(\"STUB: sggsvd_ called\");\n    return NULL;\n}\n\nvoid* sggsvp(void)\n{\n    if (verbose) puts(\"STUB: sggsvp called\");\n    return NULL;\n}\n\nvoid* sggsvp_(void)\n{\n    if (verbose) puts(\"STUB: sggsvp_ called\");\n    return NULL;\n}\n\nvoid* sgsvj0(void)\n{\n    if (verbose) puts(\"STUB: sgsvj0 called\");\n    return NULL;\n}\n\nvoid* sgsvj0_(void)\n{\n    if (verbose) puts(\"STUB: sgsvj0_ called\");\n    return NULL;\n}\n\nvoid* sgsvj1(void)\n{\n    if (verbose) puts(\"STUB: sgsvj1 called\");\n    return NULL;\n}\n\nvoid* sgsvj1_(void)\n{\n    if (verbose) puts(\"STUB: sgsvj1_ called\");\n    return NULL;\n}\n\nvoid* sgtcon(void)\n{\n    if (verbose) puts(\"STUB: sgtcon called\");\n    return NULL;\n}\n\nvoid* sgtcon_(void)\n{\n    if (verbose) puts(\"STUB: sgtcon_ called\");\n    return NULL;\n}\n\nvoid* sgtrfs(void)\n{\n    if (verbose) puts(\"STUB: sgtrfs called\");\n    return NULL;\n}\n\nvoid* sgtrfs_(void)\n{\n    if (verbose) puts(\"STUB: sgtrfs_ called\");\n    return NULL;\n}\n\nvoid* sgtsv(void)\n{\n    if (verbose) puts(\"STUB: sgtsv called\");\n    return NULL;\n}\n\nvoid* sgtsv_(void)\n{\n    if (verbose) puts(\"STUB: sgtsv_ called\");\n    return NULL;\n}\n\nvoid* sgtsvx(void)\n{\n    if (verbose) puts(\"STUB: sgtsvx called\");\n    return NULL;\n}\n\nvoid* sgtsvx_(void)\n{\n    if (verbose) puts(\"STUB: sgtsvx_ called\");\n    return NULL;\n}\n\nvoid* sgttrf(void)\n{\n    if (verbose) puts(\"STUB: sgttrf called\");\n    return NULL;\n}\n\nvoid* sgttrf_(void)\n{\n    if (verbose) puts(\"STUB: sgttrf_ called\");\n    return NULL;\n}\n\nvoid* sgttrs(void)\n{\n    if (verbose) puts(\"STUB: sgttrs called\");\n    return NULL;\n}\n\nvoid* sgttrs_(void)\n{\n    if (verbose) puts(\"STUB: sgttrs_ called\");\n    return NULL;\n}\n\nvoid* sgtts2(void)\n{\n    if (verbose) puts(\"STUB: sgtts2 called\");\n    return NULL;\n}\n\nvoid* sgtts2_(void)\n{\n    if (verbose) puts(\"STUB: sgtts2_ called\");\n    return NULL;\n}\n\nvoid* shgeqz(void)\n{\n    if (verbose) puts(\"STUB: shgeqz called\");\n    return NULL;\n}\n\nvoid* shgeqz_(void)\n{\n    if (verbose) puts(\"STUB: shgeqz_ called\");\n    return NULL;\n}\n\nvoid* shsein(void)\n{\n    if (verbose) puts(\"STUB: shsein called\");\n    return NULL;\n}\n\nvoid* shsein_(void)\n{\n    if (verbose) puts(\"STUB: shsein_ called\");\n    return NULL;\n}\n\nvoid* shseqr(void)\n{\n    if (verbose) puts(\"STUB: shseqr called\");\n    return NULL;\n}\n\nvoid* shseqr_(void)\n{\n    if (verbose) puts(\"STUB: shseqr_ called\");\n    return NULL;\n}\n\nvoid* sisnan(void)\n{\n    if (verbose) puts(\"STUB: sisnan called\");\n    return NULL;\n}\n\nvoid* sisnan_(void)\n{\n    if (verbose) puts(\"STUB: sisnan_ called\");\n    return NULL;\n}\n\nvoid* slabad(void)\n{\n    if (verbose) puts(\"STUB: slabad called\");\n    return NULL;\n}\n\nvoid* slabad_(void)\n{\n    if (verbose) puts(\"STUB: slabad_ called\");\n    return NULL;\n}\n\nvoid* slabrd(void)\n{\n    if (verbose) puts(\"STUB: slabrd called\");\n    return NULL;\n}\n\nvoid* slabrd_(void)\n{\n    if (verbose) puts(\"STUB: slabrd_ called\");\n    return NULL;\n}\n\nvoid* slacn2(void)\n{\n    if (verbose) puts(\"STUB: slacn2 called\");\n    return NULL;\n}\n\nvoid* slacn2_(void)\n{\n    if (verbose) puts(\"STUB: slacn2_ called\");\n    return NULL;\n}\n\nvoid* slacon(void)\n{\n    if (verbose) puts(\"STUB: slacon called\");\n    return NULL;\n}\n\nvoid* slacon_(void)\n{\n    if (verbose) puts(\"STUB: slacon_ called\");\n    return NULL;\n}\n\nvoid* slacpy(void)\n{\n    if (verbose) puts(\"STUB: slacpy called\");\n    return NULL;\n}\n\nvoid* slacpy_(void)\n{\n    if (verbose) puts(\"STUB: slacpy_ called\");\n    return NULL;\n}\n\nvoid* sladiv(void)\n{\n    if (verbose) puts(\"STUB: sladiv called\");\n    return NULL;\n}\n\nvoid* sladiv_(void)\n{\n    if (verbose) puts(\"STUB: sladiv_ called\");\n    return NULL;\n}\n\nvoid* slae2(void)\n{\n    if (verbose) puts(\"STUB: slae2 called\");\n    return NULL;\n}\n\nvoid* slae2_(void)\n{\n    if (verbose) puts(\"STUB: slae2_ called\");\n    return NULL;\n}\n\nvoid* slaebz(void)\n{\n    if (verbose) puts(\"STUB: slaebz called\");\n    return NULL;\n}\n\nvoid* slaebz_(void)\n{\n    if (verbose) puts(\"STUB: slaebz_ called\");\n    return NULL;\n}\n\nvoid* slaed0(void)\n{\n    if (verbose) puts(\"STUB: slaed0 called\");\n    return NULL;\n}\n\nvoid* slaed0_(void)\n{\n    if (verbose) puts(\"STUB: slaed0_ called\");\n    return NULL;\n}\n\nvoid* slaed1(void)\n{\n    if (verbose) puts(\"STUB: slaed1 called\");\n    return NULL;\n}\n\nvoid* slaed1_(void)\n{\n    if (verbose) puts(\"STUB: slaed1_ called\");\n    return NULL;\n}\n\nvoid* slaed2(void)\n{\n    if (verbose) puts(\"STUB: slaed2 called\");\n    return NULL;\n}\n\nvoid* slaed2_(void)\n{\n    if (verbose) puts(\"STUB: slaed2_ called\");\n    return NULL;\n}\n\nvoid* slaed3(void)\n{\n    if (verbose) puts(\"STUB: slaed3 called\");\n    return NULL;\n}\n\nvoid* slaed3_(void)\n{\n    if (verbose) puts(\"STUB: slaed3_ called\");\n    return NULL;\n}\n\nvoid* slaed4(void)\n{\n    if (verbose) puts(\"STUB: slaed4 called\");\n    return NULL;\n}\n\nvoid* slaed4_(void)\n{\n    if (verbose) puts(\"STUB: slaed4_ called\");\n    return NULL;\n}\n\nvoid* slaed5(void)\n{\n    if (verbose) puts(\"STUB: slaed5 called\");\n    return NULL;\n}\n\nvoid* slaed5_(void)\n{\n    if (verbose) puts(\"STUB: slaed5_ called\");\n    return NULL;\n}\n\nvoid* slaed6(void)\n{\n    if (verbose) puts(\"STUB: slaed6 called\");\n    return NULL;\n}\n\nvoid* slaed6_(void)\n{\n    if (verbose) puts(\"STUB: slaed6_ called\");\n    return NULL;\n}\n\nvoid* slaed7(void)\n{\n    if (verbose) puts(\"STUB: slaed7 called\");\n    return NULL;\n}\n\nvoid* slaed7_(void)\n{\n    if (verbose) puts(\"STUB: slaed7_ called\");\n    return NULL;\n}\n\nvoid* slaed8(void)\n{\n    if (verbose) puts(\"STUB: slaed8 called\");\n    return NULL;\n}\n\nvoid* slaed8_(void)\n{\n    if (verbose) puts(\"STUB: slaed8_ called\");\n    return NULL;\n}\n\nvoid* slaed9(void)\n{\n    if (verbose) puts(\"STUB: slaed9 called\");\n    return NULL;\n}\n\nvoid* slaed9_(void)\n{\n    if (verbose) puts(\"STUB: slaed9_ called\");\n    return NULL;\n}\n\nvoid* slaeda(void)\n{\n    if (verbose) puts(\"STUB: slaeda called\");\n    return NULL;\n}\n\nvoid* slaeda_(void)\n{\n    if (verbose) puts(\"STUB: slaeda_ called\");\n    return NULL;\n}\n\nvoid* slaein(void)\n{\n    if (verbose) puts(\"STUB: slaein called\");\n    return NULL;\n}\n\nvoid* slaein_(void)\n{\n    if (verbose) puts(\"STUB: slaein_ called\");\n    return NULL;\n}\n\nvoid* slaev2(void)\n{\n    if (verbose) puts(\"STUB: slaev2 called\");\n    return NULL;\n}\n\nvoid* slaev2_(void)\n{\n    if (verbose) puts(\"STUB: slaev2_ called\");\n    return NULL;\n}\n\nvoid* slaexc(void)\n{\n    if (verbose) puts(\"STUB: slaexc called\");\n    return NULL;\n}\n\nvoid* slaexc_(void)\n{\n    if (verbose) puts(\"STUB: slaexc_ called\");\n    return NULL;\n}\n\nvoid* slag2(void)\n{\n    if (verbose) puts(\"STUB: slag2 called\");\n    return NULL;\n}\n\nvoid* slag2_(void)\n{\n    if (verbose) puts(\"STUB: slag2_ called\");\n    return NULL;\n}\n\nvoid* slag2d(void)\n{\n    if (verbose) puts(\"STUB: slag2d called\");\n    return NULL;\n}\n\nvoid* slag2d_(void)\n{\n    if (verbose) puts(\"STUB: slag2d_ called\");\n    return NULL;\n}\n\nvoid* slags2(void)\n{\n    if (verbose) puts(\"STUB: slags2 called\");\n    return NULL;\n}\n\nvoid* slags2_(void)\n{\n    if (verbose) puts(\"STUB: slags2_ called\");\n    return NULL;\n}\n\nvoid* slagtf(void)\n{\n    if (verbose) puts(\"STUB: slagtf called\");\n    return NULL;\n}\n\nvoid* slagtf_(void)\n{\n    if (verbose) puts(\"STUB: slagtf_ called\");\n    return NULL;\n}\n\nvoid* slagtm(void)\n{\n    if (verbose) puts(\"STUB: slagtm called\");\n    return NULL;\n}\n\nvoid* slagtm_(void)\n{\n    if (verbose) puts(\"STUB: slagtm_ called\");\n    return NULL;\n}\n\nvoid* slagts(void)\n{\n    if (verbose) puts(\"STUB: slagts called\");\n    return NULL;\n}\n\nvoid* slagts_(void)\n{\n    if (verbose) puts(\"STUB: slagts_ called\");\n    return NULL;\n}\n\nvoid* slagv2(void)\n{\n    if (verbose) puts(\"STUB: slagv2 called\");\n    return NULL;\n}\n\nvoid* slagv2_(void)\n{\n    if (verbose) puts(\"STUB: slagv2_ called\");\n    return NULL;\n}\n\nvoid* slahqr(void)\n{\n    if (verbose) puts(\"STUB: slahqr called\");\n    return NULL;\n}\n\nvoid* slahqr_(void)\n{\n    if (verbose) puts(\"STUB: slahqr_ called\");\n    return NULL;\n}\n\nvoid* slahr2(void)\n{\n    if (verbose) puts(\"STUB: slahr2 called\");\n    return NULL;\n}\n\nvoid* slahr2_(void)\n{\n    if (verbose) puts(\"STUB: slahr2_ called\");\n    return NULL;\n}\n\nvoid* slahrd(void)\n{\n    if (verbose) puts(\"STUB: slahrd called\");\n    return NULL;\n}\n\nvoid* slahrd_(void)\n{\n    if (verbose) puts(\"STUB: slahrd_ called\");\n    return NULL;\n}\n\nvoid* slaic1(void)\n{\n    if (verbose) puts(\"STUB: slaic1 called\");\n    return NULL;\n}\n\nvoid* slaic1_(void)\n{\n    if (verbose) puts(\"STUB: slaic1_ called\");\n    return NULL;\n}\n\nvoid* slaisnan(void)\n{\n    if (verbose) puts(\"STUB: slaisnan called\");\n    return NULL;\n}\n\nvoid* slaisnan_(void)\n{\n    if (verbose) puts(\"STUB: slaisnan_ called\");\n    return NULL;\n}\n\nvoid* slaln2(void)\n{\n    if (verbose) puts(\"STUB: slaln2 called\");\n    return NULL;\n}\n\nvoid* slaln2_(void)\n{\n    if (verbose) puts(\"STUB: slaln2_ called\");\n    return NULL;\n}\n\nvoid* slals0(void)\n{\n    if (verbose) puts(\"STUB: slals0 called\");\n    return NULL;\n}\n\nvoid* slals0_(void)\n{\n    if (verbose) puts(\"STUB: slals0_ called\");\n    return NULL;\n}\n\nvoid* slalsa(void)\n{\n    if (verbose) puts(\"STUB: slalsa called\");\n    return NULL;\n}\n\nvoid* slalsa_(void)\n{\n    if (verbose) puts(\"STUB: slalsa_ called\");\n    return NULL;\n}\n\nvoid* slalsd(void)\n{\n    if (verbose) puts(\"STUB: slalsd called\");\n    return NULL;\n}\n\nvoid* slalsd_(void)\n{\n    if (verbose) puts(\"STUB: slalsd_ called\");\n    return NULL;\n}\n\nvoid* slamc1(void)\n{\n    if (verbose) puts(\"STUB: slamc1 called\");\n    return NULL;\n}\n\nvoid* slamc1_(void)\n{\n    if (verbose) puts(\"STUB: slamc1_ called\");\n    return NULL;\n}\n\nvoid* slamc2(void)\n{\n    if (verbose) puts(\"STUB: slamc2 called\");\n    return NULL;\n}\n\nvoid* slamc2_(void)\n{\n    if (verbose) puts(\"STUB: slamc2_ called\");\n    return NULL;\n}\n\nvoid* slamc3(void)\n{\n    if (verbose) puts(\"STUB: slamc3 called\");\n    return NULL;\n}\n\nvoid* slamc3_(void)\n{\n    if (verbose) puts(\"STUB: slamc3_ called\");\n    return NULL;\n}\n\nvoid* slamc4(void)\n{\n    if (verbose) puts(\"STUB: slamc4 called\");\n    return NULL;\n}\n\nvoid* slamc4_(void)\n{\n    if (verbose) puts(\"STUB: slamc4_ called\");\n    return NULL;\n}\n\nvoid* slamc5(void)\n{\n    if (verbose) puts(\"STUB: slamc5 called\");\n    return NULL;\n}\n\nvoid* slamc5_(void)\n{\n    if (verbose) puts(\"STUB: slamc5_ called\");\n    return NULL;\n}\n\nvoid* slamch(void)\n{\n    if (verbose) puts(\"STUB: slamch called\");\n    return NULL;\n}\n\nvoid* slamch_(void)\n{\n    if (verbose) puts(\"STUB: slamch_ called\");\n    return NULL;\n}\n\nvoid* slamrg(void)\n{\n    if (verbose) puts(\"STUB: slamrg called\");\n    return NULL;\n}\n\nvoid* slamrg_(void)\n{\n    if (verbose) puts(\"STUB: slamrg_ called\");\n    return NULL;\n}\n\nvoid* slaneg(void)\n{\n    if (verbose) puts(\"STUB: slaneg called\");\n    return NULL;\n}\n\nvoid* slaneg_(void)\n{\n    if (verbose) puts(\"STUB: slaneg_ called\");\n    return NULL;\n}\n\nvoid* slangb(void)\n{\n    if (verbose) puts(\"STUB: slangb called\");\n    return NULL;\n}\n\nvoid* slangb_(void)\n{\n    if (verbose) puts(\"STUB: slangb_ called\");\n    return NULL;\n}\n\nvoid* slange(void)\n{\n    if (verbose) puts(\"STUB: slange called\");\n    return NULL;\n}\n\nvoid* slange_(void)\n{\n    if (verbose) puts(\"STUB: slange_ called\");\n    return NULL;\n}\n\nvoid* slangt(void)\n{\n    if (verbose) puts(\"STUB: slangt called\");\n    return NULL;\n}\n\nvoid* slangt_(void)\n{\n    if (verbose) puts(\"STUB: slangt_ called\");\n    return NULL;\n}\n\nvoid* slanhs(void)\n{\n    if (verbose) puts(\"STUB: slanhs called\");\n    return NULL;\n}\n\nvoid* slanhs_(void)\n{\n    if (verbose) puts(\"STUB: slanhs_ called\");\n    return NULL;\n}\n\nvoid* slansb(void)\n{\n    if (verbose) puts(\"STUB: slansb called\");\n    return NULL;\n}\n\nvoid* slansb_(void)\n{\n    if (verbose) puts(\"STUB: slansb_ called\");\n    return NULL;\n}\n\nvoid* slansf(void)\n{\n    if (verbose) puts(\"STUB: slansf called\");\n    return NULL;\n}\n\nvoid* slansf_(void)\n{\n    if (verbose) puts(\"STUB: slansf_ called\");\n    return NULL;\n}\n\nvoid* slansp(void)\n{\n    if (verbose) puts(\"STUB: slansp called\");\n    return NULL;\n}\n\nvoid* slansp_(void)\n{\n    if (verbose) puts(\"STUB: slansp_ called\");\n    return NULL;\n}\n\nvoid* slanst(void)\n{\n    if (verbose) puts(\"STUB: slanst called\");\n    return NULL;\n}\n\nvoid* slanst_(void)\n{\n    if (verbose) puts(\"STUB: slanst_ called\");\n    return NULL;\n}\n\nvoid* slansy(void)\n{\n    if (verbose) puts(\"STUB: slansy called\");\n    return NULL;\n}\n\nvoid* slansy_(void)\n{\n    if (verbose) puts(\"STUB: slansy_ called\");\n    return NULL;\n}\n\nvoid* slantb(void)\n{\n    if (verbose) puts(\"STUB: slantb called\");\n    return NULL;\n}\n\nvoid* slantb_(void)\n{\n    if (verbose) puts(\"STUB: slantb_ called\");\n    return NULL;\n}\n\nvoid* slantp(void)\n{\n    if (verbose) puts(\"STUB: slantp called\");\n    return NULL;\n}\n\nvoid* slantp_(void)\n{\n    if (verbose) puts(\"STUB: slantp_ called\");\n    return NULL;\n}\n\nvoid* slantr(void)\n{\n    if (verbose) puts(\"STUB: slantr called\");\n    return NULL;\n}\n\nvoid* slantr_(void)\n{\n    if (verbose) puts(\"STUB: slantr_ called\");\n    return NULL;\n}\n\nvoid* slanv2(void)\n{\n    if (verbose) puts(\"STUB: slanv2 called\");\n    return NULL;\n}\n\nvoid* slanv2_(void)\n{\n    if (verbose) puts(\"STUB: slanv2_ called\");\n    return NULL;\n}\n\nvoid* slapll(void)\n{\n    if (verbose) puts(\"STUB: slapll called\");\n    return NULL;\n}\n\nvoid* slapll_(void)\n{\n    if (verbose) puts(\"STUB: slapll_ called\");\n    return NULL;\n}\n\nvoid* slapmt(void)\n{\n    if (verbose) puts(\"STUB: slapmt called\");\n    return NULL;\n}\n\nvoid* slapmt_(void)\n{\n    if (verbose) puts(\"STUB: slapmt_ called\");\n    return NULL;\n}\n\nvoid* slapy2(void)\n{\n    if (verbose) puts(\"STUB: slapy2 called\");\n    return NULL;\n}\n\nvoid* slapy2_(void)\n{\n    if (verbose) puts(\"STUB: slapy2_ called\");\n    return NULL;\n}\n\nvoid* slapy3(void)\n{\n    if (verbose) puts(\"STUB: slapy3 called\");\n    return NULL;\n}\n\nvoid* slapy3_(void)\n{\n    if (verbose) puts(\"STUB: slapy3_ called\");\n    return NULL;\n}\n\nvoid* slaqgb(void)\n{\n    if (verbose) puts(\"STUB: slaqgb called\");\n    return NULL;\n}\n\nvoid* slaqgb_(void)\n{\n    if (verbose) puts(\"STUB: slaqgb_ called\");\n    return NULL;\n}\n\nvoid* slaqge(void)\n{\n    if (verbose) puts(\"STUB: slaqge called\");\n    return NULL;\n}\n\nvoid* slaqge_(void)\n{\n    if (verbose) puts(\"STUB: slaqge_ called\");\n    return NULL;\n}\n\nvoid* slaqp2(void)\n{\n    if (verbose) puts(\"STUB: slaqp2 called\");\n    return NULL;\n}\n\nvoid* slaqp2_(void)\n{\n    if (verbose) puts(\"STUB: slaqp2_ called\");\n    return NULL;\n}\n\nvoid* slaqps(void)\n{\n    if (verbose) puts(\"STUB: slaqps called\");\n    return NULL;\n}\n\nvoid* slaqps_(void)\n{\n    if (verbose) puts(\"STUB: slaqps_ called\");\n    return NULL;\n}\n\nvoid* slaqr0(void)\n{\n    if (verbose) puts(\"STUB: slaqr0 called\");\n    return NULL;\n}\n\nvoid* slaqr0_(void)\n{\n    if (verbose) puts(\"STUB: slaqr0_ called\");\n    return NULL;\n}\n\nvoid* slaqr1(void)\n{\n    if (verbose) puts(\"STUB: slaqr1 called\");\n    return NULL;\n}\n\nvoid* slaqr1_(void)\n{\n    if (verbose) puts(\"STUB: slaqr1_ called\");\n    return NULL;\n}\n\nvoid* slaqr2(void)\n{\n    if (verbose) puts(\"STUB: slaqr2 called\");\n    return NULL;\n}\n\nvoid* slaqr2_(void)\n{\n    if (verbose) puts(\"STUB: slaqr2_ called\");\n    return NULL;\n}\n\nvoid* slaqr3(void)\n{\n    if (verbose) puts(\"STUB: slaqr3 called\");\n    return NULL;\n}\n\nvoid* slaqr3_(void)\n{\n    if (verbose) puts(\"STUB: slaqr3_ called\");\n    return NULL;\n}\n\nvoid* slaqr4(void)\n{\n    if (verbose) puts(\"STUB: slaqr4 called\");\n    return NULL;\n}\n\nvoid* slaqr4_(void)\n{\n    if (verbose) puts(\"STUB: slaqr4_ called\");\n    return NULL;\n}\n\nvoid* slaqr5(void)\n{\n    if (verbose) puts(\"STUB: slaqr5 called\");\n    return NULL;\n}\n\nvoid* slaqr5_(void)\n{\n    if (verbose) puts(\"STUB: slaqr5_ called\");\n    return NULL;\n}\n\nvoid* slaqsb(void)\n{\n    if (verbose) puts(\"STUB: slaqsb called\");\n    return NULL;\n}\n\nvoid* slaqsb_(void)\n{\n    if (verbose) puts(\"STUB: slaqsb_ called\");\n    return NULL;\n}\n\nvoid* slaqsp(void)\n{\n    if (verbose) puts(\"STUB: slaqsp called\");\n    return NULL;\n}\n\nvoid* slaqsp_(void)\n{\n    if (verbose) puts(\"STUB: slaqsp_ called\");\n    return NULL;\n}\n\nvoid* slaqsy(void)\n{\n    if (verbose) puts(\"STUB: slaqsy called\");\n    return NULL;\n}\n\nvoid* slaqsy_(void)\n{\n    if (verbose) puts(\"STUB: slaqsy_ called\");\n    return NULL;\n}\n\nvoid* slaqtr(void)\n{\n    if (verbose) puts(\"STUB: slaqtr called\");\n    return NULL;\n}\n\nvoid* slaqtr_(void)\n{\n    if (verbose) puts(\"STUB: slaqtr_ called\");\n    return NULL;\n}\n\nvoid* slar1v(void)\n{\n    if (verbose) puts(\"STUB: slar1v called\");\n    return NULL;\n}\n\nvoid* slar1v_(void)\n{\n    if (verbose) puts(\"STUB: slar1v_ called\");\n    return NULL;\n}\n\nvoid* slar2v(void)\n{\n    if (verbose) puts(\"STUB: slar2v called\");\n    return NULL;\n}\n\nvoid* slar2v_(void)\n{\n    if (verbose) puts(\"STUB: slar2v_ called\");\n    return NULL;\n}\n\nvoid* slarf(void)\n{\n    if (verbose) puts(\"STUB: slarf called\");\n    return NULL;\n}\n\nvoid* slarf_(void)\n{\n    if (verbose) puts(\"STUB: slarf_ called\");\n    return NULL;\n}\n\nvoid* slarfb(void)\n{\n    if (verbose) puts(\"STUB: slarfb called\");\n    return NULL;\n}\n\nvoid* slarfb_(void)\n{\n    if (verbose) puts(\"STUB: slarfb_ called\");\n    return NULL;\n}\n\nvoid* slarfg(void)\n{\n    if (verbose) puts(\"STUB: slarfg called\");\n    return NULL;\n}\n\nvoid* slarfg_(void)\n{\n    if (verbose) puts(\"STUB: slarfg_ called\");\n    return NULL;\n}\n\nvoid* slarfp(void)\n{\n    if (verbose) puts(\"STUB: slarfp called\");\n    return NULL;\n}\n\nvoid* slarfp_(void)\n{\n    if (verbose) puts(\"STUB: slarfp_ called\");\n    return NULL;\n}\n\nvoid* slarft(void)\n{\n    if (verbose) puts(\"STUB: slarft called\");\n    return NULL;\n}\n\nvoid* slarft_(void)\n{\n    if (verbose) puts(\"STUB: slarft_ called\");\n    return NULL;\n}\n\nvoid* slarfx(void)\n{\n    if (verbose) puts(\"STUB: slarfx called\");\n    return NULL;\n}\n\nvoid* slarfx_(void)\n{\n    if (verbose) puts(\"STUB: slarfx_ called\");\n    return NULL;\n}\n\nvoid* slargv(void)\n{\n    if (verbose) puts(\"STUB: slargv called\");\n    return NULL;\n}\n\nvoid* slargv_(void)\n{\n    if (verbose) puts(\"STUB: slargv_ called\");\n    return NULL;\n}\n\nvoid* slarnv(void)\n{\n    if (verbose) puts(\"STUB: slarnv called\");\n    return NULL;\n}\n\nvoid* slarnv_(void)\n{\n    if (verbose) puts(\"STUB: slarnv_ called\");\n    return NULL;\n}\n\nvoid* slarra(void)\n{\n    if (verbose) puts(\"STUB: slarra called\");\n    return NULL;\n}\n\nvoid* slarra_(void)\n{\n    if (verbose) puts(\"STUB: slarra_ called\");\n    return NULL;\n}\n\nvoid* slarrb(void)\n{\n    if (verbose) puts(\"STUB: slarrb called\");\n    return NULL;\n}\n\nvoid* slarrb_(void)\n{\n    if (verbose) puts(\"STUB: slarrb_ called\");\n    return NULL;\n}\n\nvoid* slarrc(void)\n{\n    if (verbose) puts(\"STUB: slarrc called\");\n    return NULL;\n}\n\nvoid* slarrc_(void)\n{\n    if (verbose) puts(\"STUB: slarrc_ called\");\n    return NULL;\n}\n\nvoid* slarrd(void)\n{\n    if (verbose) puts(\"STUB: slarrd called\");\n    return NULL;\n}\n\nvoid* slarrd_(void)\n{\n    if (verbose) puts(\"STUB: slarrd_ called\");\n    return NULL;\n}\n\nvoid* slarre(void)\n{\n    if (verbose) puts(\"STUB: slarre called\");\n    return NULL;\n}\n\nvoid* slarre_(void)\n{\n    if (verbose) puts(\"STUB: slarre_ called\");\n    return NULL;\n}\n\nvoid* slarrf(void)\n{\n    if (verbose) puts(\"STUB: slarrf called\");\n    return NULL;\n}\n\nvoid* slarrf_(void)\n{\n    if (verbose) puts(\"STUB: slarrf_ called\");\n    return NULL;\n}\n\nvoid* slarrj(void)\n{\n    if (verbose) puts(\"STUB: slarrj called\");\n    return NULL;\n}\n\nvoid* slarrj_(void)\n{\n    if (verbose) puts(\"STUB: slarrj_ called\");\n    return NULL;\n}\n\nvoid* slarrk(void)\n{\n    if (verbose) puts(\"STUB: slarrk called\");\n    return NULL;\n}\n\nvoid* slarrk_(void)\n{\n    if (verbose) puts(\"STUB: slarrk_ called\");\n    return NULL;\n}\n\nvoid* slarrr(void)\n{\n    if (verbose) puts(\"STUB: slarrr called\");\n    return NULL;\n}\n\nvoid* slarrr_(void)\n{\n    if (verbose) puts(\"STUB: slarrr_ called\");\n    return NULL;\n}\n\nvoid* slarrv(void)\n{\n    if (verbose) puts(\"STUB: slarrv called\");\n    return NULL;\n}\n\nvoid* slarrv_(void)\n{\n    if (verbose) puts(\"STUB: slarrv_ called\");\n    return NULL;\n}\n\nvoid* slarscl2(void)\n{\n    if (verbose) puts(\"STUB: slarscl2 called\");\n    return NULL;\n}\n\nvoid* slarscl2_(void)\n{\n    if (verbose) puts(\"STUB: slarscl2_ called\");\n    return NULL;\n}\n\nvoid* slartg(void)\n{\n    if (verbose) puts(\"STUB: slartg called\");\n    return NULL;\n}\n\nvoid* slartg_(void)\n{\n    if (verbose) puts(\"STUB: slartg_ called\");\n    return NULL;\n}\n\nvoid* slartv(void)\n{\n    if (verbose) puts(\"STUB: slartv called\");\n    return NULL;\n}\n\nvoid* slartv_(void)\n{\n    if (verbose) puts(\"STUB: slartv_ called\");\n    return NULL;\n}\n\nvoid* slaruv(void)\n{\n    if (verbose) puts(\"STUB: slaruv called\");\n    return NULL;\n}\n\nvoid* slaruv_(void)\n{\n    if (verbose) puts(\"STUB: slaruv_ called\");\n    return NULL;\n}\n\nvoid* slarz(void)\n{\n    if (verbose) puts(\"STUB: slarz called\");\n    return NULL;\n}\n\nvoid* slarz_(void)\n{\n    if (verbose) puts(\"STUB: slarz_ called\");\n    return NULL;\n}\n\nvoid* slarzb(void)\n{\n    if (verbose) puts(\"STUB: slarzb called\");\n    return NULL;\n}\n\nvoid* slarzb_(void)\n{\n    if (verbose) puts(\"STUB: slarzb_ called\");\n    return NULL;\n}\n\nvoid* slarzt(void)\n{\n    if (verbose) puts(\"STUB: slarzt called\");\n    return NULL;\n}\n\nvoid* slarzt_(void)\n{\n    if (verbose) puts(\"STUB: slarzt_ called\");\n    return NULL;\n}\n\nvoid* slas2(void)\n{\n    if (verbose) puts(\"STUB: slas2 called\");\n    return NULL;\n}\n\nvoid* slas2_(void)\n{\n    if (verbose) puts(\"STUB: slas2_ called\");\n    return NULL;\n}\n\nvoid* slascl(void)\n{\n    if (verbose) puts(\"STUB: slascl called\");\n    return NULL;\n}\n\nvoid* slascl2(void)\n{\n    if (verbose) puts(\"STUB: slascl2 called\");\n    return NULL;\n}\n\nvoid* slascl2_(void)\n{\n    if (verbose) puts(\"STUB: slascl2_ called\");\n    return NULL;\n}\n\nvoid* slascl_(void)\n{\n    if (verbose) puts(\"STUB: slascl_ called\");\n    return NULL;\n}\n\nvoid* slasd0(void)\n{\n    if (verbose) puts(\"STUB: slasd0 called\");\n    return NULL;\n}\n\nvoid* slasd0_(void)\n{\n    if (verbose) puts(\"STUB: slasd0_ called\");\n    return NULL;\n}\n\nvoid* slasd1(void)\n{\n    if (verbose) puts(\"STUB: slasd1 called\");\n    return NULL;\n}\n\nvoid* slasd1_(void)\n{\n    if (verbose) puts(\"STUB: slasd1_ called\");\n    return NULL;\n}\n\nvoid* slasd2(void)\n{\n    if (verbose) puts(\"STUB: slasd2 called\");\n    return NULL;\n}\n\nvoid* slasd2_(void)\n{\n    if (verbose) puts(\"STUB: slasd2_ called\");\n    return NULL;\n}\n\nvoid* slasd3(void)\n{\n    if (verbose) puts(\"STUB: slasd3 called\");\n    return NULL;\n}\n\nvoid* slasd3_(void)\n{\n    if (verbose) puts(\"STUB: slasd3_ called\");\n    return NULL;\n}\n\nvoid* slasd4(void)\n{\n    if (verbose) puts(\"STUB: slasd4 called\");\n    return NULL;\n}\n\nvoid* slasd4_(void)\n{\n    if (verbose) puts(\"STUB: slasd4_ called\");\n    return NULL;\n}\n\nvoid* slasd5(void)\n{\n    if (verbose) puts(\"STUB: slasd5 called\");\n    return NULL;\n}\n\nvoid* slasd5_(void)\n{\n    if (verbose) puts(\"STUB: slasd5_ called\");\n    return NULL;\n}\n\nvoid* slasd6(void)\n{\n    if (verbose) puts(\"STUB: slasd6 called\");\n    return NULL;\n}\n\nvoid* slasd6_(void)\n{\n    if (verbose) puts(\"STUB: slasd6_ called\");\n    return NULL;\n}\n\nvoid* slasd7(void)\n{\n    if (verbose) puts(\"STUB: slasd7 called\");\n    return NULL;\n}\n\nvoid* slasd7_(void)\n{\n    if (verbose) puts(\"STUB: slasd7_ called\");\n    return NULL;\n}\n\nvoid* slasd8(void)\n{\n    if (verbose) puts(\"STUB: slasd8 called\");\n    return NULL;\n}\n\nvoid* slasd8_(void)\n{\n    if (verbose) puts(\"STUB: slasd8_ called\");\n    return NULL;\n}\n\nvoid* slasd9(void)\n{\n    if (verbose) puts(\"STUB: slasd9 called\");\n    return NULL;\n}\n\nvoid* slasd9_(void)\n{\n    if (verbose) puts(\"STUB: slasd9_ called\");\n    return NULL;\n}\n\nvoid* slasda(void)\n{\n    if (verbose) puts(\"STUB: slasda called\");\n    return NULL;\n}\n\nvoid* slasda_(void)\n{\n    if (verbose) puts(\"STUB: slasda_ called\");\n    return NULL;\n}\n\nvoid* slasdq(void)\n{\n    if (verbose) puts(\"STUB: slasdq called\");\n    return NULL;\n}\n\nvoid* slasdq_(void)\n{\n    if (verbose) puts(\"STUB: slasdq_ called\");\n    return NULL;\n}\n\nvoid* slasdt(void)\n{\n    if (verbose) puts(\"STUB: slasdt called\");\n    return NULL;\n}\n\nvoid* slasdt_(void)\n{\n    if (verbose) puts(\"STUB: slasdt_ called\");\n    return NULL;\n}\n\nvoid* slaset(void)\n{\n    if (verbose) puts(\"STUB: slaset called\");\n    return NULL;\n}\n\nvoid* slaset_(void)\n{\n    if (verbose) puts(\"STUB: slaset_ called\");\n    return NULL;\n}\n\nvoid* slasq1(void)\n{\n    if (verbose) puts(\"STUB: slasq1 called\");\n    return NULL;\n}\n\nvoid* slasq1_(void)\n{\n    if (verbose) puts(\"STUB: slasq1_ called\");\n    return NULL;\n}\n\nvoid* slasq2(void)\n{\n    if (verbose) puts(\"STUB: slasq2 called\");\n    return NULL;\n}\n\nvoid* slasq2_(void)\n{\n    if (verbose) puts(\"STUB: slasq2_ called\");\n    return NULL;\n}\n\nvoid* slasq3(void)\n{\n    if (verbose) puts(\"STUB: slasq3 called\");\n    return NULL;\n}\n\nvoid* slasq3_(void)\n{\n    if (verbose) puts(\"STUB: slasq3_ called\");\n    return NULL;\n}\n\nvoid* slasq4(void)\n{\n    if (verbose) puts(\"STUB: slasq4 called\");\n    return NULL;\n}\n\nvoid* slasq4_(void)\n{\n    if (verbose) puts(\"STUB: slasq4_ called\");\n    return NULL;\n}\n\nvoid* slasq5(void)\n{\n    if (verbose) puts(\"STUB: slasq5 called\");\n    return NULL;\n}\n\nvoid* slasq5_(void)\n{\n    if (verbose) puts(\"STUB: slasq5_ called\");\n    return NULL;\n}\n\nvoid* slasq6(void)\n{\n    if (verbose) puts(\"STUB: slasq6 called\");\n    return NULL;\n}\n\nvoid* slasq6_(void)\n{\n    if (verbose) puts(\"STUB: slasq6_ called\");\n    return NULL;\n}\n\nvoid* slasr(void)\n{\n    if (verbose) puts(\"STUB: slasr called\");\n    return NULL;\n}\n\nvoid* slasr_(void)\n{\n    if (verbose) puts(\"STUB: slasr_ called\");\n    return NULL;\n}\n\nvoid* slasrt(void)\n{\n    if (verbose) puts(\"STUB: slasrt called\");\n    return NULL;\n}\n\nvoid* slasrt_(void)\n{\n    if (verbose) puts(\"STUB: slasrt_ called\");\n    return NULL;\n}\n\nvoid* slassq(void)\n{\n    if (verbose) puts(\"STUB: slassq called\");\n    return NULL;\n}\n\nvoid* slassq_(void)\n{\n    if (verbose) puts(\"STUB: slassq_ called\");\n    return NULL;\n}\n\nvoid* slasv2(void)\n{\n    if (verbose) puts(\"STUB: slasv2 called\");\n    return NULL;\n}\n\nvoid* slasv2_(void)\n{\n    if (verbose) puts(\"STUB: slasv2_ called\");\n    return NULL;\n}\n\nvoid* slaswp(void)\n{\n    if (verbose) puts(\"STUB: slaswp called\");\n    return NULL;\n}\n\nvoid* slaswp_(void)\n{\n    if (verbose) puts(\"STUB: slaswp_ called\");\n    return NULL;\n}\n\nvoid* slasy2(void)\n{\n    if (verbose) puts(\"STUB: slasy2 called\");\n    return NULL;\n}\n\nvoid* slasy2_(void)\n{\n    if (verbose) puts(\"STUB: slasy2_ called\");\n    return NULL;\n}\n\nvoid* slasyf(void)\n{\n    if (verbose) puts(\"STUB: slasyf called\");\n    return NULL;\n}\n\nvoid* slasyf_(void)\n{\n    if (verbose) puts(\"STUB: slasyf_ called\");\n    return NULL;\n}\n\nvoid* slatbs(void)\n{\n    if (verbose) puts(\"STUB: slatbs called\");\n    return NULL;\n}\n\nvoid* slatbs_(void)\n{\n    if (verbose) puts(\"STUB: slatbs_ called\");\n    return NULL;\n}\n\nvoid* slatdf(void)\n{\n    if (verbose) puts(\"STUB: slatdf called\");\n    return NULL;\n}\n\nvoid* slatdf_(void)\n{\n    if (verbose) puts(\"STUB: slatdf_ called\");\n    return NULL;\n}\n\nvoid* slatps(void)\n{\n    if (verbose) puts(\"STUB: slatps called\");\n    return NULL;\n}\n\nvoid* slatps_(void)\n{\n    if (verbose) puts(\"STUB: slatps_ called\");\n    return NULL;\n}\n\nvoid* slatrd(void)\n{\n    if (verbose) puts(\"STUB: slatrd called\");\n    return NULL;\n}\n\nvoid* slatrd_(void)\n{\n    if (verbose) puts(\"STUB: slatrd_ called\");\n    return NULL;\n}\n\nvoid* slatrs(void)\n{\n    if (verbose) puts(\"STUB: slatrs called\");\n    return NULL;\n}\n\nvoid* slatrs_(void)\n{\n    if (verbose) puts(\"STUB: slatrs_ called\");\n    return NULL;\n}\n\nvoid* slatrz(void)\n{\n    if (verbose) puts(\"STUB: slatrz called\");\n    return NULL;\n}\n\nvoid* slatrz_(void)\n{\n    if (verbose) puts(\"STUB: slatrz_ called\");\n    return NULL;\n}\n\nvoid* slatzm(void)\n{\n    if (verbose) puts(\"STUB: slatzm called\");\n    return NULL;\n}\n\nvoid* slatzm_(void)\n{\n    if (verbose) puts(\"STUB: slatzm_ called\");\n    return NULL;\n}\n\nvoid* slauu2(void)\n{\n    if (verbose) puts(\"STUB: slauu2 called\");\n    return NULL;\n}\n\nvoid* slauu2_(void)\n{\n    if (verbose) puts(\"STUB: slauu2_ called\");\n    return NULL;\n}\n\nvoid* slauum(void)\n{\n    if (verbose) puts(\"STUB: slauum called\");\n    return NULL;\n}\n\nvoid* slauum_(void)\n{\n    if (verbose) puts(\"STUB: slauum_ called\");\n    return NULL;\n}\n\nvoid* smaxloc(void)\n{\n    if (verbose) puts(\"STUB: smaxloc called\");\n    return NULL;\n}\n\nvoid* smaxloc_(void)\n{\n    if (verbose) puts(\"STUB: smaxloc_ called\");\n    return NULL;\n}\n\nvoid* sopgtr(void)\n{\n    if (verbose) puts(\"STUB: sopgtr called\");\n    return NULL;\n}\n\nvoid* sopgtr_(void)\n{\n    if (verbose) puts(\"STUB: sopgtr_ called\");\n    return NULL;\n}\n\nvoid* sopmtr(void)\n{\n    if (verbose) puts(\"STUB: sopmtr called\");\n    return NULL;\n}\n\nvoid* sopmtr_(void)\n{\n    if (verbose) puts(\"STUB: sopmtr_ called\");\n    return NULL;\n}\n\nvoid* sorg2l(void)\n{\n    if (verbose) puts(\"STUB: sorg2l called\");\n    return NULL;\n}\n\nvoid* sorg2l_(void)\n{\n    if (verbose) puts(\"STUB: sorg2l_ called\");\n    return NULL;\n}\n\nvoid* sorg2r(void)\n{\n    if (verbose) puts(\"STUB: sorg2r called\");\n    return NULL;\n}\n\nvoid* sorg2r_(void)\n{\n    if (verbose) puts(\"STUB: sorg2r_ called\");\n    return NULL;\n}\n\nvoid* sorgbr(void)\n{\n    if (verbose) puts(\"STUB: sorgbr called\");\n    return NULL;\n}\n\nvoid* sorgbr_(void)\n{\n    if (verbose) puts(\"STUB: sorgbr_ called\");\n    return NULL;\n}\n\nvoid* sorghr(void)\n{\n    if (verbose) puts(\"STUB: sorghr called\");\n    return NULL;\n}\n\nvoid* sorghr_(void)\n{\n    if (verbose) puts(\"STUB: sorghr_ called\");\n    return NULL;\n}\n\nvoid* sorgl2(void)\n{\n    if (verbose) puts(\"STUB: sorgl2 called\");\n    return NULL;\n}\n\nvoid* sorgl2_(void)\n{\n    if (verbose) puts(\"STUB: sorgl2_ called\");\n    return NULL;\n}\n\nvoid* sorglq(void)\n{\n    if (verbose) puts(\"STUB: sorglq called\");\n    return NULL;\n}\n\nvoid* sorglq_(void)\n{\n    if (verbose) puts(\"STUB: sorglq_ called\");\n    return NULL;\n}\n\nvoid* sorgql(void)\n{\n    if (verbose) puts(\"STUB: sorgql called\");\n    return NULL;\n}\n\nvoid* sorgql_(void)\n{\n    if (verbose) puts(\"STUB: sorgql_ called\");\n    return NULL;\n}\n\nvoid* sorgqr(void)\n{\n    if (verbose) puts(\"STUB: sorgqr called\");\n    return NULL;\n}\n\nvoid* sorgqr_(void)\n{\n    if (verbose) puts(\"STUB: sorgqr_ called\");\n    return NULL;\n}\n\nvoid* sorgr2(void)\n{\n    if (verbose) puts(\"STUB: sorgr2 called\");\n    return NULL;\n}\n\nvoid* sorgr2_(void)\n{\n    if (verbose) puts(\"STUB: sorgr2_ called\");\n    return NULL;\n}\n\nvoid* sorgrq(void)\n{\n    if (verbose) puts(\"STUB: sorgrq called\");\n    return NULL;\n}\n\nvoid* sorgrq_(void)\n{\n    if (verbose) puts(\"STUB: sorgrq_ called\");\n    return NULL;\n}\n\nvoid* sorgtr(void)\n{\n    if (verbose) puts(\"STUB: sorgtr called\");\n    return NULL;\n}\n\nvoid* sorgtr_(void)\n{\n    if (verbose) puts(\"STUB: sorgtr_ called\");\n    return NULL;\n}\n\nvoid* sorm2l(void)\n{\n    if (verbose) puts(\"STUB: sorm2l called\");\n    return NULL;\n}\n\nvoid* sorm2l_(void)\n{\n    if (verbose) puts(\"STUB: sorm2l_ called\");\n    return NULL;\n}\n\nvoid* sorm2r(void)\n{\n    if (verbose) puts(\"STUB: sorm2r called\");\n    return NULL;\n}\n\nvoid* sorm2r_(void)\n{\n    if (verbose) puts(\"STUB: sorm2r_ called\");\n    return NULL;\n}\n\nvoid* sormbr(void)\n{\n    if (verbose) puts(\"STUB: sormbr called\");\n    return NULL;\n}\n\nvoid* sormbr_(void)\n{\n    if (verbose) puts(\"STUB: sormbr_ called\");\n    return NULL;\n}\n\nvoid* sormhr(void)\n{\n    if (verbose) puts(\"STUB: sormhr called\");\n    return NULL;\n}\n\nvoid* sormhr_(void)\n{\n    if (verbose) puts(\"STUB: sormhr_ called\");\n    return NULL;\n}\n\nvoid* sorml2(void)\n{\n    if (verbose) puts(\"STUB: sorml2 called\");\n    return NULL;\n}\n\nvoid* sorml2_(void)\n{\n    if (verbose) puts(\"STUB: sorml2_ called\");\n    return NULL;\n}\n\nvoid* sormlq(void)\n{\n    if (verbose) puts(\"STUB: sormlq called\");\n    return NULL;\n}\n\nvoid* sormlq_(void)\n{\n    if (verbose) puts(\"STUB: sormlq_ called\");\n    return NULL;\n}\n\nvoid* sormql(void)\n{\n    if (verbose) puts(\"STUB: sormql called\");\n    return NULL;\n}\n\nvoid* sormql_(void)\n{\n    if (verbose) puts(\"STUB: sormql_ called\");\n    return NULL;\n}\n\nvoid* sormqr(void)\n{\n    if (verbose) puts(\"STUB: sormqr called\");\n    return NULL;\n}\n\nvoid* sormqr_(void)\n{\n    if (verbose) puts(\"STUB: sormqr_ called\");\n    return NULL;\n}\n\nvoid* sormr2(void)\n{\n    if (verbose) puts(\"STUB: sormr2 called\");\n    return NULL;\n}\n\nvoid* sormr2_(void)\n{\n    if (verbose) puts(\"STUB: sormr2_ called\");\n    return NULL;\n}\n\nvoid* sormr3(void)\n{\n    if (verbose) puts(\"STUB: sormr3 called\");\n    return NULL;\n}\n\nvoid* sormr3_(void)\n{\n    if (verbose) puts(\"STUB: sormr3_ called\");\n    return NULL;\n}\n\nvoid* sormrq(void)\n{\n    if (verbose) puts(\"STUB: sormrq called\");\n    return NULL;\n}\n\nvoid* sormrq_(void)\n{\n    if (verbose) puts(\"STUB: sormrq_ called\");\n    return NULL;\n}\n\nvoid* sormrz(void)\n{\n    if (verbose) puts(\"STUB: sormrz called\");\n    return NULL;\n}\n\nvoid* sormrz_(void)\n{\n    if (verbose) puts(\"STUB: sormrz_ called\");\n    return NULL;\n}\n\nvoid* sormtr(void)\n{\n    if (verbose) puts(\"STUB: sormtr called\");\n    return NULL;\n}\n\nvoid* sormtr_(void)\n{\n    if (verbose) puts(\"STUB: sormtr_ called\");\n    return NULL;\n}\n\nvoid* spbcon(void)\n{\n    if (verbose) puts(\"STUB: spbcon called\");\n    return NULL;\n}\n\nvoid* spbcon_(void)\n{\n    if (verbose) puts(\"STUB: spbcon_ called\");\n    return NULL;\n}\n\nvoid* spbequ(void)\n{\n    if (verbose) puts(\"STUB: spbequ called\");\n    return NULL;\n}\n\nvoid* spbequ_(void)\n{\n    if (verbose) puts(\"STUB: spbequ_ called\");\n    return NULL;\n}\n\nvoid* spbrfs(void)\n{\n    if (verbose) puts(\"STUB: spbrfs called\");\n    return NULL;\n}\n\nvoid* spbrfs_(void)\n{\n    if (verbose) puts(\"STUB: spbrfs_ called\");\n    return NULL;\n}\n\nvoid* spbstf(void)\n{\n    if (verbose) puts(\"STUB: spbstf called\");\n    return NULL;\n}\n\nvoid* spbstf_(void)\n{\n    if (verbose) puts(\"STUB: spbstf_ called\");\n    return NULL;\n}\n\nvoid* spbsv(void)\n{\n    if (verbose) puts(\"STUB: spbsv called\");\n    return NULL;\n}\n\nvoid* spbsv_(void)\n{\n    if (verbose) puts(\"STUB: spbsv_ called\");\n    return NULL;\n}\n\nvoid* spbsvx(void)\n{\n    if (verbose) puts(\"STUB: spbsvx called\");\n    return NULL;\n}\n\nvoid* spbsvx_(void)\n{\n    if (verbose) puts(\"STUB: spbsvx_ called\");\n    return NULL;\n}\n\nvoid* spbtf2(void)\n{\n    if (verbose) puts(\"STUB: spbtf2 called\");\n    return NULL;\n}\n\nvoid* spbtf2_(void)\n{\n    if (verbose) puts(\"STUB: spbtf2_ called\");\n    return NULL;\n}\n\nvoid* spbtrf(void)\n{\n    if (verbose) puts(\"STUB: spbtrf called\");\n    return NULL;\n}\n\nvoid* spbtrf_(void)\n{\n    if (verbose) puts(\"STUB: spbtrf_ called\");\n    return NULL;\n}\n\nvoid* spbtrs(void)\n{\n    if (verbose) puts(\"STUB: spbtrs called\");\n    return NULL;\n}\n\nvoid* spbtrs_(void)\n{\n    if (verbose) puts(\"STUB: spbtrs_ called\");\n    return NULL;\n}\n\nvoid* spftrf(void)\n{\n    if (verbose) puts(\"STUB: spftrf called\");\n    return NULL;\n}\n\nvoid* spftrf_(void)\n{\n    if (verbose) puts(\"STUB: spftrf_ called\");\n    return NULL;\n}\n\nvoid* spftri(void)\n{\n    if (verbose) puts(\"STUB: spftri called\");\n    return NULL;\n}\n\nvoid* spftri_(void)\n{\n    if (verbose) puts(\"STUB: spftri_ called\");\n    return NULL;\n}\n\nvoid* spftrs(void)\n{\n    if (verbose) puts(\"STUB: spftrs called\");\n    return NULL;\n}\n\nvoid* spftrs_(void)\n{\n    if (verbose) puts(\"STUB: spftrs_ called\");\n    return NULL;\n}\n\nvoid* spocon(void)\n{\n    if (verbose) puts(\"STUB: spocon called\");\n    return NULL;\n}\n\nvoid* spocon_(void)\n{\n    if (verbose) puts(\"STUB: spocon_ called\");\n    return NULL;\n}\n\nvoid* spoequ(void)\n{\n    if (verbose) puts(\"STUB: spoequ called\");\n    return NULL;\n}\n\nvoid* spoequ_(void)\n{\n    if (verbose) puts(\"STUB: spoequ_ called\");\n    return NULL;\n}\n\nvoid* spoequb(void)\n{\n    if (verbose) puts(\"STUB: spoequb called\");\n    return NULL;\n}\n\nvoid* spoequb_(void)\n{\n    if (verbose) puts(\"STUB: spoequb_ called\");\n    return NULL;\n}\n\nvoid* sporfs(void)\n{\n    if (verbose) puts(\"STUB: sporfs called\");\n    return NULL;\n}\n\nvoid* sporfs_(void)\n{\n    if (verbose) puts(\"STUB: sporfs_ called\");\n    return NULL;\n}\n\nvoid* sposv(void)\n{\n    if (verbose) puts(\"STUB: sposv called\");\n    return NULL;\n}\n\nvoid* sposv_(void)\n{\n    if (verbose) puts(\"STUB: sposv_ called\");\n    return NULL;\n}\n\nvoid* sposvx(void)\n{\n    if (verbose) puts(\"STUB: sposvx called\");\n    return NULL;\n}\n\nvoid* sposvx_(void)\n{\n    if (verbose) puts(\"STUB: sposvx_ called\");\n    return NULL;\n}\n\nvoid* spotf2(void)\n{\n    if (verbose) puts(\"STUB: spotf2 called\");\n    return NULL;\n}\n\nvoid* spotf2_(void)\n{\n    if (verbose) puts(\"STUB: spotf2_ called\");\n    return NULL;\n}\n\nvoid* spotrf(void)\n{\n    if (verbose) puts(\"STUB: spotrf called\");\n    return NULL;\n}\n\nvoid* spotrf_(void)\n{\n    if (verbose) puts(\"STUB: spotrf_ called\");\n    return NULL;\n}\n\nvoid* spotri(void)\n{\n    if (verbose) puts(\"STUB: spotri called\");\n    return NULL;\n}\n\nvoid* spotri_(void)\n{\n    if (verbose) puts(\"STUB: spotri_ called\");\n    return NULL;\n}\n\nvoid* spotrs(void)\n{\n    if (verbose) puts(\"STUB: spotrs called\");\n    return NULL;\n}\n\nvoid* spotrs_(void)\n{\n    if (verbose) puts(\"STUB: spotrs_ called\");\n    return NULL;\n}\n\nvoid* sppcon(void)\n{\n    if (verbose) puts(\"STUB: sppcon called\");\n    return NULL;\n}\n\nvoid* sppcon_(void)\n{\n    if (verbose) puts(\"STUB: sppcon_ called\");\n    return NULL;\n}\n\nvoid* sppequ(void)\n{\n    if (verbose) puts(\"STUB: sppequ called\");\n    return NULL;\n}\n\nvoid* sppequ_(void)\n{\n    if (verbose) puts(\"STUB: sppequ_ called\");\n    return NULL;\n}\n\nvoid* spprfs(void)\n{\n    if (verbose) puts(\"STUB: spprfs called\");\n    return NULL;\n}\n\nvoid* spprfs_(void)\n{\n    if (verbose) puts(\"STUB: spprfs_ called\");\n    return NULL;\n}\n\nvoid* sppsv(void)\n{\n    if (verbose) puts(\"STUB: sppsv called\");\n    return NULL;\n}\n\nvoid* sppsv_(void)\n{\n    if (verbose) puts(\"STUB: sppsv_ called\");\n    return NULL;\n}\n\nvoid* sppsvx(void)\n{\n    if (verbose) puts(\"STUB: sppsvx called\");\n    return NULL;\n}\n\nvoid* sppsvx_(void)\n{\n    if (verbose) puts(\"STUB: sppsvx_ called\");\n    return NULL;\n}\n\nvoid* spptrf(void)\n{\n    if (verbose) puts(\"STUB: spptrf called\");\n    return NULL;\n}\n\nvoid* spptrf_(void)\n{\n    if (verbose) puts(\"STUB: spptrf_ called\");\n    return NULL;\n}\n\nvoid* spptri(void)\n{\n    if (verbose) puts(\"STUB: spptri called\");\n    return NULL;\n}\n\nvoid* spptri_(void)\n{\n    if (verbose) puts(\"STUB: spptri_ called\");\n    return NULL;\n}\n\nvoid* spptrs(void)\n{\n    if (verbose) puts(\"STUB: spptrs called\");\n    return NULL;\n}\n\nvoid* spptrs_(void)\n{\n    if (verbose) puts(\"STUB: spptrs_ called\");\n    return NULL;\n}\n\nvoid* spstf2(void)\n{\n    if (verbose) puts(\"STUB: spstf2 called\");\n    return NULL;\n}\n\nvoid* spstf2_(void)\n{\n    if (verbose) puts(\"STUB: spstf2_ called\");\n    return NULL;\n}\n\nvoid* spstrf(void)\n{\n    if (verbose) puts(\"STUB: spstrf called\");\n    return NULL;\n}\n\nvoid* spstrf_(void)\n{\n    if (verbose) puts(\"STUB: spstrf_ called\");\n    return NULL;\n}\n\nvoid* sptcon(void)\n{\n    if (verbose) puts(\"STUB: sptcon called\");\n    return NULL;\n}\n\nvoid* sptcon_(void)\n{\n    if (verbose) puts(\"STUB: sptcon_ called\");\n    return NULL;\n}\n\nvoid* spteqr(void)\n{\n    if (verbose) puts(\"STUB: spteqr called\");\n    return NULL;\n}\n\nvoid* spteqr_(void)\n{\n    if (verbose) puts(\"STUB: spteqr_ called\");\n    return NULL;\n}\n\nvoid* sptrfs(void)\n{\n    if (verbose) puts(\"STUB: sptrfs called\");\n    return NULL;\n}\n\nvoid* sptrfs_(void)\n{\n    if (verbose) puts(\"STUB: sptrfs_ called\");\n    return NULL;\n}\n\nvoid* sptsv(void)\n{\n    if (verbose) puts(\"STUB: sptsv called\");\n    return NULL;\n}\n\nvoid* sptsv_(void)\n{\n    if (verbose) puts(\"STUB: sptsv_ called\");\n    return NULL;\n}\n\nvoid* sptsvx(void)\n{\n    if (verbose) puts(\"STUB: sptsvx called\");\n    return NULL;\n}\n\nvoid* sptsvx_(void)\n{\n    if (verbose) puts(\"STUB: sptsvx_ called\");\n    return NULL;\n}\n\nvoid* spttrf(void)\n{\n    if (verbose) puts(\"STUB: spttrf called\");\n    return NULL;\n}\n\nvoid* spttrf_(void)\n{\n    if (verbose) puts(\"STUB: spttrf_ called\");\n    return NULL;\n}\n\nvoid* spttrs(void)\n{\n    if (verbose) puts(\"STUB: spttrs called\");\n    return NULL;\n}\n\nvoid* spttrs_(void)\n{\n    if (verbose) puts(\"STUB: spttrs_ called\");\n    return NULL;\n}\n\nvoid* sptts2(void)\n{\n    if (verbose) puts(\"STUB: sptts2 called\");\n    return NULL;\n}\n\nvoid* sptts2_(void)\n{\n    if (verbose) puts(\"STUB: sptts2_ called\");\n    return NULL;\n}\n\nvoid* srscl(void)\n{\n    if (verbose) puts(\"STUB: srscl called\");\n    return NULL;\n}\n\nvoid* srscl_(void)\n{\n    if (verbose) puts(\"STUB: srscl_ called\");\n    return NULL;\n}\n\nvoid* ssbev(void)\n{\n    if (verbose) puts(\"STUB: ssbev called\");\n    return NULL;\n}\n\nvoid* ssbev_(void)\n{\n    if (verbose) puts(\"STUB: ssbev_ called\");\n    return NULL;\n}\n\nvoid* ssbevd(void)\n{\n    if (verbose) puts(\"STUB: ssbevd called\");\n    return NULL;\n}\n\nvoid* ssbevd_(void)\n{\n    if (verbose) puts(\"STUB: ssbevd_ called\");\n    return NULL;\n}\n\nvoid* ssbevx(void)\n{\n    if (verbose) puts(\"STUB: ssbevx called\");\n    return NULL;\n}\n\nvoid* ssbevx_(void)\n{\n    if (verbose) puts(\"STUB: ssbevx_ called\");\n    return NULL;\n}\n\nvoid* ssbgst(void)\n{\n    if (verbose) puts(\"STUB: ssbgst called\");\n    return NULL;\n}\n\nvoid* ssbgst_(void)\n{\n    if (verbose) puts(\"STUB: ssbgst_ called\");\n    return NULL;\n}\n\nvoid* ssbgv(void)\n{\n    if (verbose) puts(\"STUB: ssbgv called\");\n    return NULL;\n}\n\nvoid* ssbgv_(void)\n{\n    if (verbose) puts(\"STUB: ssbgv_ called\");\n    return NULL;\n}\n\nvoid* ssbgvd(void)\n{\n    if (verbose) puts(\"STUB: ssbgvd called\");\n    return NULL;\n}\n\nvoid* ssbgvd_(void)\n{\n    if (verbose) puts(\"STUB: ssbgvd_ called\");\n    return NULL;\n}\n\nvoid* ssbgvx(void)\n{\n    if (verbose) puts(\"STUB: ssbgvx called\");\n    return NULL;\n}\n\nvoid* ssbgvx_(void)\n{\n    if (verbose) puts(\"STUB: ssbgvx_ called\");\n    return NULL;\n}\n\nvoid* ssbtrd(void)\n{\n    if (verbose) puts(\"STUB: ssbtrd called\");\n    return NULL;\n}\n\nvoid* ssbtrd_(void)\n{\n    if (verbose) puts(\"STUB: ssbtrd_ called\");\n    return NULL;\n}\n\nvoid* ssfrk(void)\n{\n    if (verbose) puts(\"STUB: ssfrk called\");\n    return NULL;\n}\n\nvoid* ssfrk_(void)\n{\n    if (verbose) puts(\"STUB: ssfrk_ called\");\n    return NULL;\n}\n\nvoid* sspcon(void)\n{\n    if (verbose) puts(\"STUB: sspcon called\");\n    return NULL;\n}\n\nvoid* sspcon_(void)\n{\n    if (verbose) puts(\"STUB: sspcon_ called\");\n    return NULL;\n}\n\nvoid* sspev(void)\n{\n    if (verbose) puts(\"STUB: sspev called\");\n    return NULL;\n}\n\nvoid* sspev_(void)\n{\n    if (verbose) puts(\"STUB: sspev_ called\");\n    return NULL;\n}\n\nvoid* sspevd(void)\n{\n    if (verbose) puts(\"STUB: sspevd called\");\n    return NULL;\n}\n\nvoid* sspevd_(void)\n{\n    if (verbose) puts(\"STUB: sspevd_ called\");\n    return NULL;\n}\n\nvoid* sspevx(void)\n{\n    if (verbose) puts(\"STUB: sspevx called\");\n    return NULL;\n}\n\nvoid* sspevx_(void)\n{\n    if (verbose) puts(\"STUB: sspevx_ called\");\n    return NULL;\n}\n\nvoid* sspgst(void)\n{\n    if (verbose) puts(\"STUB: sspgst called\");\n    return NULL;\n}\n\nvoid* sspgst_(void)\n{\n    if (verbose) puts(\"STUB: sspgst_ called\");\n    return NULL;\n}\n\nvoid* sspgv(void)\n{\n    if (verbose) puts(\"STUB: sspgv called\");\n    return NULL;\n}\n\nvoid* sspgv_(void)\n{\n    if (verbose) puts(\"STUB: sspgv_ called\");\n    return NULL;\n}\n\nvoid* sspgvd(void)\n{\n    if (verbose) puts(\"STUB: sspgvd called\");\n    return NULL;\n}\n\nvoid* sspgvd_(void)\n{\n    if (verbose) puts(\"STUB: sspgvd_ called\");\n    return NULL;\n}\n\nvoid* sspgvx(void)\n{\n    if (verbose) puts(\"STUB: sspgvx called\");\n    return NULL;\n}\n\nvoid* sspgvx_(void)\n{\n    if (verbose) puts(\"STUB: sspgvx_ called\");\n    return NULL;\n}\n\nvoid* ssprfs(void)\n{\n    if (verbose) puts(\"STUB: ssprfs called\");\n    return NULL;\n}\n\nvoid* ssprfs_(void)\n{\n    if (verbose) puts(\"STUB: ssprfs_ called\");\n    return NULL;\n}\n\nvoid* sspsv(void)\n{\n    if (verbose) puts(\"STUB: sspsv called\");\n    return NULL;\n}\n\nvoid* sspsv_(void)\n{\n    if (verbose) puts(\"STUB: sspsv_ called\");\n    return NULL;\n}\n\nvoid* sspsvx(void)\n{\n    if (verbose) puts(\"STUB: sspsvx called\");\n    return NULL;\n}\n\nvoid* sspsvx_(void)\n{\n    if (verbose) puts(\"STUB: sspsvx_ called\");\n    return NULL;\n}\n\nvoid* ssptrd(void)\n{\n    if (verbose) puts(\"STUB: ssptrd called\");\n    return NULL;\n}\n\nvoid* ssptrd_(void)\n{\n    if (verbose) puts(\"STUB: ssptrd_ called\");\n    return NULL;\n}\n\nvoid* ssptrf(void)\n{\n    if (verbose) puts(\"STUB: ssptrf called\");\n    return NULL;\n}\n\nvoid* ssptrf_(void)\n{\n    if (verbose) puts(\"STUB: ssptrf_ called\");\n    return NULL;\n}\n\nvoid* ssptri(void)\n{\n    if (verbose) puts(\"STUB: ssptri called\");\n    return NULL;\n}\n\nvoid* ssptri_(void)\n{\n    if (verbose) puts(\"STUB: ssptri_ called\");\n    return NULL;\n}\n\nvoid* ssptrs(void)\n{\n    if (verbose) puts(\"STUB: ssptrs called\");\n    return NULL;\n}\n\nvoid* ssptrs_(void)\n{\n    if (verbose) puts(\"STUB: ssptrs_ called\");\n    return NULL;\n}\n\nvoid* sstebz(void)\n{\n    if (verbose) puts(\"STUB: sstebz called\");\n    return NULL;\n}\n\nvoid* sstebz_(void)\n{\n    if (verbose) puts(\"STUB: sstebz_ called\");\n    return NULL;\n}\n\nvoid* sstedc(void)\n{\n    if (verbose) puts(\"STUB: sstedc called\");\n    return NULL;\n}\n\nvoid* sstedc_(void)\n{\n    if (verbose) puts(\"STUB: sstedc_ called\");\n    return NULL;\n}\n\nvoid* sstegr(void)\n{\n    if (verbose) puts(\"STUB: sstegr called\");\n    return NULL;\n}\n\nvoid* sstegr_(void)\n{\n    if (verbose) puts(\"STUB: sstegr_ called\");\n    return NULL;\n}\n\nvoid* sstein(void)\n{\n    if (verbose) puts(\"STUB: sstein called\");\n    return NULL;\n}\n\nvoid* sstein_(void)\n{\n    if (verbose) puts(\"STUB: sstein_ called\");\n    return NULL;\n}\n\nvoid* sstemr(void)\n{\n    if (verbose) puts(\"STUB: sstemr called\");\n    return NULL;\n}\n\nvoid* sstemr_(void)\n{\n    if (verbose) puts(\"STUB: sstemr_ called\");\n    return NULL;\n}\n\nvoid* ssteqr(void)\n{\n    if (verbose) puts(\"STUB: ssteqr called\");\n    return NULL;\n}\n\nvoid* ssteqr_(void)\n{\n    if (verbose) puts(\"STUB: ssteqr_ called\");\n    return NULL;\n}\n\nvoid* ssterf(void)\n{\n    if (verbose) puts(\"STUB: ssterf called\");\n    return NULL;\n}\n\nvoid* ssterf_(void)\n{\n    if (verbose) puts(\"STUB: ssterf_ called\");\n    return NULL;\n}\n\nvoid* sstev(void)\n{\n    if (verbose) puts(\"STUB: sstev called\");\n    return NULL;\n}\n\nvoid* sstev_(void)\n{\n    if (verbose) puts(\"STUB: sstev_ called\");\n    return NULL;\n}\n\nvoid* sstevd(void)\n{\n    if (verbose) puts(\"STUB: sstevd called\");\n    return NULL;\n}\n\nvoid* sstevd_(void)\n{\n    if (verbose) puts(\"STUB: sstevd_ called\");\n    return NULL;\n}\n\nvoid* sstevr(void)\n{\n    if (verbose) puts(\"STUB: sstevr called\");\n    return NULL;\n}\n\nvoid* sstevr_(void)\n{\n    if (verbose) puts(\"STUB: sstevr_ called\");\n    return NULL;\n}\n\nvoid* sstevx(void)\n{\n    if (verbose) puts(\"STUB: sstevx called\");\n    return NULL;\n}\n\nvoid* sstevx_(void)\n{\n    if (verbose) puts(\"STUB: sstevx_ called\");\n    return NULL;\n}\n\nvoid* ssycon(void)\n{\n    if (verbose) puts(\"STUB: ssycon called\");\n    return NULL;\n}\n\nvoid* ssycon_(void)\n{\n    if (verbose) puts(\"STUB: ssycon_ called\");\n    return NULL;\n}\n\nvoid* ssyequb(void)\n{\n    if (verbose) puts(\"STUB: ssyequb called\");\n    return NULL;\n}\n\nvoid* ssyequb_(void)\n{\n    if (verbose) puts(\"STUB: ssyequb_ called\");\n    return NULL;\n}\n\nvoid* ssyev(void)\n{\n    if (verbose) puts(\"STUB: ssyev called\");\n    return NULL;\n}\n\nvoid* ssyev_(void)\n{\n    if (verbose) puts(\"STUB: ssyev_ called\");\n    return NULL;\n}\n\nvoid* ssyevd(void)\n{\n    if (verbose) puts(\"STUB: ssyevd called\");\n    return NULL;\n}\n\nvoid* ssyevd_(void)\n{\n    if (verbose) puts(\"STUB: ssyevd_ called\");\n    return NULL;\n}\n\nvoid* ssyevr(void)\n{\n    if (verbose) puts(\"STUB: ssyevr called\");\n    return NULL;\n}\n\nvoid* ssyevr_(void)\n{\n    if (verbose) puts(\"STUB: ssyevr_ called\");\n    return NULL;\n}\n\nvoid* ssyevx(void)\n{\n    if (verbose) puts(\"STUB: ssyevx called\");\n    return NULL;\n}\n\nvoid* ssyevx_(void)\n{\n    if (verbose) puts(\"STUB: ssyevx_ called\");\n    return NULL;\n}\n\nvoid* ssygs2(void)\n{\n    if (verbose) puts(\"STUB: ssygs2 called\");\n    return NULL;\n}\n\nvoid* ssygs2_(void)\n{\n    if (verbose) puts(\"STUB: ssygs2_ called\");\n    return NULL;\n}\n\nvoid* ssygst(void)\n{\n    if (verbose) puts(\"STUB: ssygst called\");\n    return NULL;\n}\n\nvoid* ssygst_(void)\n{\n    if (verbose) puts(\"STUB: ssygst_ called\");\n    return NULL;\n}\n\nvoid* ssygv(void)\n{\n    if (verbose) puts(\"STUB: ssygv called\");\n    return NULL;\n}\n\nvoid* ssygv_(void)\n{\n    if (verbose) puts(\"STUB: ssygv_ called\");\n    return NULL;\n}\n\nvoid* ssygvd(void)\n{\n    if (verbose) puts(\"STUB: ssygvd called\");\n    return NULL;\n}\n\nvoid* ssygvd_(void)\n{\n    if (verbose) puts(\"STUB: ssygvd_ called\");\n    return NULL;\n}\n\nvoid* ssygvx(void)\n{\n    if (verbose) puts(\"STUB: ssygvx called\");\n    return NULL;\n}\n\nvoid* ssygvx_(void)\n{\n    if (verbose) puts(\"STUB: ssygvx_ called\");\n    return NULL;\n}\n\nvoid* ssyrfs(void)\n{\n    if (verbose) puts(\"STUB: ssyrfs called\");\n    return NULL;\n}\n\nvoid* ssyrfs_(void)\n{\n    if (verbose) puts(\"STUB: ssyrfs_ called\");\n    return NULL;\n}\n\nvoid* ssysv(void)\n{\n    if (verbose) puts(\"STUB: ssysv called\");\n    return NULL;\n}\n\nvoid* ssysv_(void)\n{\n    if (verbose) puts(\"STUB: ssysv_ called\");\n    return NULL;\n}\n\nvoid* ssysvx(void)\n{\n    if (verbose) puts(\"STUB: ssysvx called\");\n    return NULL;\n}\n\nvoid* ssysvx_(void)\n{\n    if (verbose) puts(\"STUB: ssysvx_ called\");\n    return NULL;\n}\n\nvoid* ssytd2(void)\n{\n    if (verbose) puts(\"STUB: ssytd2 called\");\n    return NULL;\n}\n\nvoid* ssytd2_(void)\n{\n    if (verbose) puts(\"STUB: ssytd2_ called\");\n    return NULL;\n}\n\nvoid* ssytf2(void)\n{\n    if (verbose) puts(\"STUB: ssytf2 called\");\n    return NULL;\n}\n\nvoid* ssytf2_(void)\n{\n    if (verbose) puts(\"STUB: ssytf2_ called\");\n    return NULL;\n}\n\nvoid* ssytrd(void)\n{\n    if (verbose) puts(\"STUB: ssytrd called\");\n    return NULL;\n}\n\nvoid* ssytrd_(void)\n{\n    if (verbose) puts(\"STUB: ssytrd_ called\");\n    return NULL;\n}\n\nvoid* ssytrf(void)\n{\n    if (verbose) puts(\"STUB: ssytrf called\");\n    return NULL;\n}\n\nvoid* ssytrf_(void)\n{\n    if (verbose) puts(\"STUB: ssytrf_ called\");\n    return NULL;\n}\n\nvoid* ssytri(void)\n{\n    if (verbose) puts(\"STUB: ssytri called\");\n    return NULL;\n}\n\nvoid* ssytri_(void)\n{\n    if (verbose) puts(\"STUB: ssytri_ called\");\n    return NULL;\n}\n\nvoid* ssytrs(void)\n{\n    if (verbose) puts(\"STUB: ssytrs called\");\n    return NULL;\n}\n\nvoid* ssytrs_(void)\n{\n    if (verbose) puts(\"STUB: ssytrs_ called\");\n    return NULL;\n}\n\nvoid* stbcon(void)\n{\n    if (verbose) puts(\"STUB: stbcon called\");\n    return NULL;\n}\n\nvoid* stbcon_(void)\n{\n    if (verbose) puts(\"STUB: stbcon_ called\");\n    return NULL;\n}\n\nvoid* stbrfs(void)\n{\n    if (verbose) puts(\"STUB: stbrfs called\");\n    return NULL;\n}\n\nvoid* stbrfs_(void)\n{\n    if (verbose) puts(\"STUB: stbrfs_ called\");\n    return NULL;\n}\n\nvoid* stbtrs(void)\n{\n    if (verbose) puts(\"STUB: stbtrs called\");\n    return NULL;\n}\n\nvoid* stbtrs_(void)\n{\n    if (verbose) puts(\"STUB: stbtrs_ called\");\n    return NULL;\n}\n\nvoid* stfsm(void)\n{\n    if (verbose) puts(\"STUB: stfsm called\");\n    return NULL;\n}\n\nvoid* stfsm_(void)\n{\n    if (verbose) puts(\"STUB: stfsm_ called\");\n    return NULL;\n}\n\nvoid* stftri(void)\n{\n    if (verbose) puts(\"STUB: stftri called\");\n    return NULL;\n}\n\nvoid* stftri_(void)\n{\n    if (verbose) puts(\"STUB: stftri_ called\");\n    return NULL;\n}\n\nvoid* stfttp(void)\n{\n    if (verbose) puts(\"STUB: stfttp called\");\n    return NULL;\n}\n\nvoid* stfttp_(void)\n{\n    if (verbose) puts(\"STUB: stfttp_ called\");\n    return NULL;\n}\n\nvoid* stfttr(void)\n{\n    if (verbose) puts(\"STUB: stfttr called\");\n    return NULL;\n}\n\nvoid* stfttr_(void)\n{\n    if (verbose) puts(\"STUB: stfttr_ called\");\n    return NULL;\n}\n\nvoid* stgevc(void)\n{\n    if (verbose) puts(\"STUB: stgevc called\");\n    return NULL;\n}\n\nvoid* stgevc_(void)\n{\n    if (verbose) puts(\"STUB: stgevc_ called\");\n    return NULL;\n}\n\nvoid* stgex2(void)\n{\n    if (verbose) puts(\"STUB: stgex2 called\");\n    return NULL;\n}\n\nvoid* stgex2_(void)\n{\n    if (verbose) puts(\"STUB: stgex2_ called\");\n    return NULL;\n}\n\nvoid* stgexc(void)\n{\n    if (verbose) puts(\"STUB: stgexc called\");\n    return NULL;\n}\n\nvoid* stgexc_(void)\n{\n    if (verbose) puts(\"STUB: stgexc_ called\");\n    return NULL;\n}\n\nvoid* stgsen(void)\n{\n    if (verbose) puts(\"STUB: stgsen called\");\n    return NULL;\n}\n\nvoid* stgsen_(void)\n{\n    if (verbose) puts(\"STUB: stgsen_ called\");\n    return NULL;\n}\n\nvoid* stgsja(void)\n{\n    if (verbose) puts(\"STUB: stgsja called\");\n    return NULL;\n}\n\nvoid* stgsja_(void)\n{\n    if (verbose) puts(\"STUB: stgsja_ called\");\n    return NULL;\n}\n\nvoid* stgsna(void)\n{\n    if (verbose) puts(\"STUB: stgsna called\");\n    return NULL;\n}\n\nvoid* stgsna_(void)\n{\n    if (verbose) puts(\"STUB: stgsna_ called\");\n    return NULL;\n}\n\nvoid* stgsy2(void)\n{\n    if (verbose) puts(\"STUB: stgsy2 called\");\n    return NULL;\n}\n\nvoid* stgsy2_(void)\n{\n    if (verbose) puts(\"STUB: stgsy2_ called\");\n    return NULL;\n}\n\nvoid* stgsyl(void)\n{\n    if (verbose) puts(\"STUB: stgsyl called\");\n    return NULL;\n}\n\nvoid* stgsyl_(void)\n{\n    if (verbose) puts(\"STUB: stgsyl_ called\");\n    return NULL;\n}\n\nvoid* stpcon(void)\n{\n    if (verbose) puts(\"STUB: stpcon called\");\n    return NULL;\n}\n\nvoid* stpcon_(void)\n{\n    if (verbose) puts(\"STUB: stpcon_ called\");\n    return NULL;\n}\n\nvoid* stprfs(void)\n{\n    if (verbose) puts(\"STUB: stprfs called\");\n    return NULL;\n}\n\nvoid* stprfs_(void)\n{\n    if (verbose) puts(\"STUB: stprfs_ called\");\n    return NULL;\n}\n\nvoid* stptri(void)\n{\n    if (verbose) puts(\"STUB: stptri called\");\n    return NULL;\n}\n\nvoid* stptri_(void)\n{\n    if (verbose) puts(\"STUB: stptri_ called\");\n    return NULL;\n}\n\nvoid* stptrs(void)\n{\n    if (verbose) puts(\"STUB: stptrs called\");\n    return NULL;\n}\n\nvoid* stptrs_(void)\n{\n    if (verbose) puts(\"STUB: stptrs_ called\");\n    return NULL;\n}\n\nvoid* stpttf(void)\n{\n    if (verbose) puts(\"STUB: stpttf called\");\n    return NULL;\n}\n\nvoid* stpttf_(void)\n{\n    if (verbose) puts(\"STUB: stpttf_ called\");\n    return NULL;\n}\n\nvoid* stpttr(void)\n{\n    if (verbose) puts(\"STUB: stpttr called\");\n    return NULL;\n}\n\nvoid* stpttr_(void)\n{\n    if (verbose) puts(\"STUB: stpttr_ called\");\n    return NULL;\n}\n\nvoid* strcon(void)\n{\n    if (verbose) puts(\"STUB: strcon called\");\n    return NULL;\n}\n\nvoid* strcon_(void)\n{\n    if (verbose) puts(\"STUB: strcon_ called\");\n    return NULL;\n}\n\nvoid* strevc(void)\n{\n    if (verbose) puts(\"STUB: strevc called\");\n    return NULL;\n}\n\nvoid* strevc_(void)\n{\n    if (verbose) puts(\"STUB: strevc_ called\");\n    return NULL;\n}\n\nvoid* strexc(void)\n{\n    if (verbose) puts(\"STUB: strexc called\");\n    return NULL;\n}\n\nvoid* strexc_(void)\n{\n    if (verbose) puts(\"STUB: strexc_ called\");\n    return NULL;\n}\n\nvoid* strrfs(void)\n{\n    if (verbose) puts(\"STUB: strrfs called\");\n    return NULL;\n}\n\nvoid* strrfs_(void)\n{\n    if (verbose) puts(\"STUB: strrfs_ called\");\n    return NULL;\n}\n\nvoid* strsen(void)\n{\n    if (verbose) puts(\"STUB: strsen called\");\n    return NULL;\n}\n\nvoid* strsen_(void)\n{\n    if (verbose) puts(\"STUB: strsen_ called\");\n    return NULL;\n}\n\nvoid* strsna(void)\n{\n    if (verbose) puts(\"STUB: strsna called\");\n    return NULL;\n}\n\nvoid* strsna_(void)\n{\n    if (verbose) puts(\"STUB: strsna_ called\");\n    return NULL;\n}\n\nvoid* strsyl(void)\n{\n    if (verbose) puts(\"STUB: strsyl called\");\n    return NULL;\n}\n\nvoid* strsyl_(void)\n{\n    if (verbose) puts(\"STUB: strsyl_ called\");\n    return NULL;\n}\n\nvoid* strti2(void)\n{\n    if (verbose) puts(\"STUB: strti2 called\");\n    return NULL;\n}\n\nvoid* strti2_(void)\n{\n    if (verbose) puts(\"STUB: strti2_ called\");\n    return NULL;\n}\n\nvoid* strtri(void)\n{\n    if (verbose) puts(\"STUB: strtri called\");\n    return NULL;\n}\n\nvoid* strtri_(void)\n{\n    if (verbose) puts(\"STUB: strtri_ called\");\n    return NULL;\n}\n\nvoid* strtrs(void)\n{\n    if (verbose) puts(\"STUB: strtrs called\");\n    return NULL;\n}\n\nvoid* strtrs_(void)\n{\n    if (verbose) puts(\"STUB: strtrs_ called\");\n    return NULL;\n}\n\nvoid* strttf(void)\n{\n    if (verbose) puts(\"STUB: strttf called\");\n    return NULL;\n}\n\nvoid* strttf_(void)\n{\n    if (verbose) puts(\"STUB: strttf_ called\");\n    return NULL;\n}\n\nvoid* strttp(void)\n{\n    if (verbose) puts(\"STUB: strttp called\");\n    return NULL;\n}\n\nvoid* strttp_(void)\n{\n    if (verbose) puts(\"STUB: strttp_ called\");\n    return NULL;\n}\n\nvoid* stzrqf(void)\n{\n    if (verbose) puts(\"STUB: stzrqf called\");\n    return NULL;\n}\n\nvoid* stzrqf_(void)\n{\n    if (verbose) puts(\"STUB: stzrqf_ called\");\n    return NULL;\n}\n\nvoid* stzrzf(void)\n{\n    if (verbose) puts(\"STUB: stzrzf called\");\n    return NULL;\n}\n\nvoid* stzrzf_(void)\n{\n    if (verbose) puts(\"STUB: stzrzf_ called\");\n    return NULL;\n}\n\nvoid* zbdsqr(void)\n{\n    if (verbose) puts(\"STUB: zbdsqr called\");\n    return NULL;\n}\n\nvoid* zbdsqr_(void)\n{\n    if (verbose) puts(\"STUB: zbdsqr_ called\");\n    return NULL;\n}\n\nvoid* zcgesv(void)\n{\n    if (verbose) puts(\"STUB: zcgesv called\");\n    return NULL;\n}\n\nvoid* zcgesv_(void)\n{\n    if (verbose) puts(\"STUB: zcgesv_ called\");\n    return NULL;\n}\n\nvoid* zcposv(void)\n{\n    if (verbose) puts(\"STUB: zcposv called\");\n    return NULL;\n}\n\nvoid* zcposv_(void)\n{\n    if (verbose) puts(\"STUB: zcposv_ called\");\n    return NULL;\n}\n\nvoid* zdrscl(void)\n{\n    if (verbose) puts(\"STUB: zdrscl called\");\n    return NULL;\n}\n\nvoid* zdrscl_(void)\n{\n    if (verbose) puts(\"STUB: zdrscl_ called\");\n    return NULL;\n}\n\nvoid* zgbbrd(void)\n{\n    if (verbose) puts(\"STUB: zgbbrd called\");\n    return NULL;\n}\n\nvoid* zgbbrd_(void)\n{\n    if (verbose) puts(\"STUB: zgbbrd_ called\");\n    return NULL;\n}\n\nvoid* zgbcon(void)\n{\n    if (verbose) puts(\"STUB: zgbcon called\");\n    return NULL;\n}\n\nvoid* zgbcon_(void)\n{\n    if (verbose) puts(\"STUB: zgbcon_ called\");\n    return NULL;\n}\n\nvoid* zgbequ(void)\n{\n    if (verbose) puts(\"STUB: zgbequ called\");\n    return NULL;\n}\n\nvoid* zgbequ_(void)\n{\n    if (verbose) puts(\"STUB: zgbequ_ called\");\n    return NULL;\n}\n\nvoid* zgbequb(void)\n{\n    if (verbose) puts(\"STUB: zgbequb called\");\n    return NULL;\n}\n\nvoid* zgbequb_(void)\n{\n    if (verbose) puts(\"STUB: zgbequb_ called\");\n    return NULL;\n}\n\nvoid* zgbrfs(void)\n{\n    if (verbose) puts(\"STUB: zgbrfs called\");\n    return NULL;\n}\n\nvoid* zgbrfs_(void)\n{\n    if (verbose) puts(\"STUB: zgbrfs_ called\");\n    return NULL;\n}\n\nvoid* zgbsv(void)\n{\n    if (verbose) puts(\"STUB: zgbsv called\");\n    return NULL;\n}\n\nvoid* zgbsv_(void)\n{\n    if (verbose) puts(\"STUB: zgbsv_ called\");\n    return NULL;\n}\n\nvoid* zgbsvx(void)\n{\n    if (verbose) puts(\"STUB: zgbsvx called\");\n    return NULL;\n}\n\nvoid* zgbsvx_(void)\n{\n    if (verbose) puts(\"STUB: zgbsvx_ called\");\n    return NULL;\n}\n\nvoid* zgbtf2(void)\n{\n    if (verbose) puts(\"STUB: zgbtf2 called\");\n    return NULL;\n}\n\nvoid* zgbtf2_(void)\n{\n    if (verbose) puts(\"STUB: zgbtf2_ called\");\n    return NULL;\n}\n\nvoid* zgbtrf(void)\n{\n    if (verbose) puts(\"STUB: zgbtrf called\");\n    return NULL;\n}\n\nvoid* zgbtrf_(void)\n{\n    if (verbose) puts(\"STUB: zgbtrf_ called\");\n    return NULL;\n}\n\nvoid* zgbtrs(void)\n{\n    if (verbose) puts(\"STUB: zgbtrs called\");\n    return NULL;\n}\n\nvoid* zgbtrs_(void)\n{\n    if (verbose) puts(\"STUB: zgbtrs_ called\");\n    return NULL;\n}\n\nvoid* zgebak(void)\n{\n    if (verbose) puts(\"STUB: zgebak called\");\n    return NULL;\n}\n\nvoid* zgebak_(void)\n{\n    if (verbose) puts(\"STUB: zgebak_ called\");\n    return NULL;\n}\n\nvoid* zgebal(void)\n{\n    if (verbose) puts(\"STUB: zgebal called\");\n    return NULL;\n}\n\nvoid* zgebal_(void)\n{\n    if (verbose) puts(\"STUB: zgebal_ called\");\n    return NULL;\n}\n\nvoid* zgebd2(void)\n{\n    if (verbose) puts(\"STUB: zgebd2 called\");\n    return NULL;\n}\n\nvoid* zgebd2_(void)\n{\n    if (verbose) puts(\"STUB: zgebd2_ called\");\n    return NULL;\n}\n\nvoid* zgebrd(void)\n{\n    if (verbose) puts(\"STUB: zgebrd called\");\n    return NULL;\n}\n\nvoid* zgebrd_(void)\n{\n    if (verbose) puts(\"STUB: zgebrd_ called\");\n    return NULL;\n}\n\nvoid* zgecon(void)\n{\n    if (verbose) puts(\"STUB: zgecon called\");\n    return NULL;\n}\n\nvoid* zgecon_(void)\n{\n    if (verbose) puts(\"STUB: zgecon_ called\");\n    return NULL;\n}\n\nvoid* zgeequ(void)\n{\n    if (verbose) puts(\"STUB: zgeequ called\");\n    return NULL;\n}\n\nvoid* zgeequ_(void)\n{\n    if (verbose) puts(\"STUB: zgeequ_ called\");\n    return NULL;\n}\n\nvoid* zgeequb(void)\n{\n    if (verbose) puts(\"STUB: zgeequb called\");\n    return NULL;\n}\n\nvoid* zgeequb_(void)\n{\n    if (verbose) puts(\"STUB: zgeequb_ called\");\n    return NULL;\n}\n\nvoid* zgees(void)\n{\n    if (verbose) puts(\"STUB: zgees called\");\n    return NULL;\n}\n\nvoid* zgees_(void)\n{\n    if (verbose) puts(\"STUB: zgees_ called\");\n    return NULL;\n}\n\nvoid* zgeesx(void)\n{\n    if (verbose) puts(\"STUB: zgeesx called\");\n    return NULL;\n}\n\nvoid* zgeesx_(void)\n{\n    if (verbose) puts(\"STUB: zgeesx_ called\");\n    return NULL;\n}\n\nvoid* zgeev(void)\n{\n    if (verbose) puts(\"STUB: zgeev called\");\n    return NULL;\n}\n\nvoid* zgeev_(void)\n{\n    if (verbose) puts(\"STUB: zgeev_ called\");\n    return NULL;\n}\n\nvoid* zgeevx(void)\n{\n    if (verbose) puts(\"STUB: zgeevx called\");\n    return NULL;\n}\n\nvoid* zgeevx_(void)\n{\n    if (verbose) puts(\"STUB: zgeevx_ called\");\n    return NULL;\n}\n\nvoid* zgegs(void)\n{\n    if (verbose) puts(\"STUB: zgegs called\");\n    return NULL;\n}\n\nvoid* zgegs_(void)\n{\n    if (verbose) puts(\"STUB: zgegs_ called\");\n    return NULL;\n}\n\nvoid* zgegv(void)\n{\n    if (verbose) puts(\"STUB: zgegv called\");\n    return NULL;\n}\n\nvoid* zgegv_(void)\n{\n    if (verbose) puts(\"STUB: zgegv_ called\");\n    return NULL;\n}\n\nvoid* zgehd2(void)\n{\n    if (verbose) puts(\"STUB: zgehd2 called\");\n    return NULL;\n}\n\nvoid* zgehd2_(void)\n{\n    if (verbose) puts(\"STUB: zgehd2_ called\");\n    return NULL;\n}\n\nvoid* zgehrd(void)\n{\n    if (verbose) puts(\"STUB: zgehrd called\");\n    return NULL;\n}\n\nvoid* zgehrd_(void)\n{\n    if (verbose) puts(\"STUB: zgehrd_ called\");\n    return NULL;\n}\n\nvoid* zgelq2(void)\n{\n    if (verbose) puts(\"STUB: zgelq2 called\");\n    return NULL;\n}\n\nvoid* zgelq2_(void)\n{\n    if (verbose) puts(\"STUB: zgelq2_ called\");\n    return NULL;\n}\n\nvoid* zgelqf(void)\n{\n    if (verbose) puts(\"STUB: zgelqf called\");\n    return NULL;\n}\n\nvoid* zgelqf_(void)\n{\n    if (verbose) puts(\"STUB: zgelqf_ called\");\n    return NULL;\n}\n\nvoid* zgels(void)\n{\n    if (verbose) puts(\"STUB: zgels called\");\n    return NULL;\n}\n\nvoid* zgels_(void)\n{\n    if (verbose) puts(\"STUB: zgels_ called\");\n    return NULL;\n}\n\nvoid* zgelsd(void)\n{\n    if (verbose) puts(\"STUB: zgelsd called\");\n    return NULL;\n}\n\nvoid* zgelsd_(void)\n{\n    if (verbose) puts(\"STUB: zgelsd_ called\");\n    return NULL;\n}\n\nvoid* zgelss(void)\n{\n    if (verbose) puts(\"STUB: zgelss called\");\n    return NULL;\n}\n\nvoid* zgelss_(void)\n{\n    if (verbose) puts(\"STUB: zgelss_ called\");\n    return NULL;\n}\n\nvoid* zgelsx(void)\n{\n    if (verbose) puts(\"STUB: zgelsx called\");\n    return NULL;\n}\n\nvoid* zgelsx_(void)\n{\n    if (verbose) puts(\"STUB: zgelsx_ called\");\n    return NULL;\n}\n\nvoid* zgelsy(void)\n{\n    if (verbose) puts(\"STUB: zgelsy called\");\n    return NULL;\n}\n\nvoid* zgelsy_(void)\n{\n    if (verbose) puts(\"STUB: zgelsy_ called\");\n    return NULL;\n}\n\nvoid* zgeql2(void)\n{\n    if (verbose) puts(\"STUB: zgeql2 called\");\n    return NULL;\n}\n\nvoid* zgeql2_(void)\n{\n    if (verbose) puts(\"STUB: zgeql2_ called\");\n    return NULL;\n}\n\nvoid* zgeqlf(void)\n{\n    if (verbose) puts(\"STUB: zgeqlf called\");\n    return NULL;\n}\n\nvoid* zgeqlf_(void)\n{\n    if (verbose) puts(\"STUB: zgeqlf_ called\");\n    return NULL;\n}\n\nvoid* zgeqp3(void)\n{\n    if (verbose) puts(\"STUB: zgeqp3 called\");\n    return NULL;\n}\n\nvoid* zgeqp3_(void)\n{\n    if (verbose) puts(\"STUB: zgeqp3_ called\");\n    return NULL;\n}\n\nvoid* zgeqpf(void)\n{\n    if (verbose) puts(\"STUB: zgeqpf called\");\n    return NULL;\n}\n\nvoid* zgeqpf_(void)\n{\n    if (verbose) puts(\"STUB: zgeqpf_ called\");\n    return NULL;\n}\n\nvoid* zgeqr2(void)\n{\n    if (verbose) puts(\"STUB: zgeqr2 called\");\n    return NULL;\n}\n\nvoid* zgeqr2_(void)\n{\n    if (verbose) puts(\"STUB: zgeqr2_ called\");\n    return NULL;\n}\n\nvoid* zgeqrf(void)\n{\n    if (verbose) puts(\"STUB: zgeqrf called\");\n    return NULL;\n}\n\nvoid* zgeqrf_(void)\n{\n    if (verbose) puts(\"STUB: zgeqrf_ called\");\n    return NULL;\n}\n\nvoid* zgerfs(void)\n{\n    if (verbose) puts(\"STUB: zgerfs called\");\n    return NULL;\n}\n\nvoid* zgerfs_(void)\n{\n    if (verbose) puts(\"STUB: zgerfs_ called\");\n    return NULL;\n}\n\nvoid* zgerq2(void)\n{\n    if (verbose) puts(\"STUB: zgerq2 called\");\n    return NULL;\n}\n\nvoid* zgerq2_(void)\n{\n    if (verbose) puts(\"STUB: zgerq2_ called\");\n    return NULL;\n}\n\nvoid* zgerqf(void)\n{\n    if (verbose) puts(\"STUB: zgerqf called\");\n    return NULL;\n}\n\nvoid* zgerqf_(void)\n{\n    if (verbose) puts(\"STUB: zgerqf_ called\");\n    return NULL;\n}\n\nvoid* zgesc2(void)\n{\n    if (verbose) puts(\"STUB: zgesc2 called\");\n    return NULL;\n}\n\nvoid* zgesc2_(void)\n{\n    if (verbose) puts(\"STUB: zgesc2_ called\");\n    return NULL;\n}\n\nvoid* zgesdd(void)\n{\n    if (verbose) puts(\"STUB: zgesdd called\");\n    return NULL;\n}\n\nvoid* zgesdd_(void)\n{\n    if (verbose) puts(\"STUB: zgesdd_ called\");\n    return NULL;\n}\n\nvoid* zgesv(void)\n{\n    if (verbose) puts(\"STUB: zgesv called\");\n    return NULL;\n}\n\nvoid* zgesv_(void)\n{\n    if (verbose) puts(\"STUB: zgesv_ called\");\n    return NULL;\n}\n\nvoid* zgesvd(void)\n{\n    if (verbose) puts(\"STUB: zgesvd called\");\n    return NULL;\n}\n\nvoid* zgesvd_(void)\n{\n    if (verbose) puts(\"STUB: zgesvd_ called\");\n    return NULL;\n}\n\nvoid* zgesvx(void)\n{\n    if (verbose) puts(\"STUB: zgesvx called\");\n    return NULL;\n}\n\nvoid* zgesvx_(void)\n{\n    if (verbose) puts(\"STUB: zgesvx_ called\");\n    return NULL;\n}\n\nvoid* zgetc2(void)\n{\n    if (verbose) puts(\"STUB: zgetc2 called\");\n    return NULL;\n}\n\nvoid* zgetc2_(void)\n{\n    if (verbose) puts(\"STUB: zgetc2_ called\");\n    return NULL;\n}\n\nvoid* zgetf2(void)\n{\n    if (verbose) puts(\"STUB: zgetf2 called\");\n    return NULL;\n}\n\nvoid* zgetf2_(void)\n{\n    if (verbose) puts(\"STUB: zgetf2_ called\");\n    return NULL;\n}\n\nvoid* zgetrf(void)\n{\n    if (verbose) puts(\"STUB: zgetrf called\");\n    return NULL;\n}\n\nvoid* zgetrf_(void)\n{\n    if (verbose) puts(\"STUB: zgetrf_ called\");\n    return NULL;\n}\n\nvoid* zgetri(void)\n{\n    if (verbose) puts(\"STUB: zgetri called\");\n    return NULL;\n}\n\nvoid* zgetri_(void)\n{\n    if (verbose) puts(\"STUB: zgetri_ called\");\n    return NULL;\n}\n\nvoid* zgetrs(void)\n{\n    if (verbose) puts(\"STUB: zgetrs called\");\n    return NULL;\n}\n\nvoid* zgetrs_(void)\n{\n    if (verbose) puts(\"STUB: zgetrs_ called\");\n    return NULL;\n}\n\nvoid* zggbak(void)\n{\n    if (verbose) puts(\"STUB: zggbak called\");\n    return NULL;\n}\n\nvoid* zggbak_(void)\n{\n    if (verbose) puts(\"STUB: zggbak_ called\");\n    return NULL;\n}\n\nvoid* zggbal(void)\n{\n    if (verbose) puts(\"STUB: zggbal called\");\n    return NULL;\n}\n\nvoid* zggbal_(void)\n{\n    if (verbose) puts(\"STUB: zggbal_ called\");\n    return NULL;\n}\n\nvoid* zgges(void)\n{\n    if (verbose) puts(\"STUB: zgges called\");\n    return NULL;\n}\n\nvoid* zgges_(void)\n{\n    if (verbose) puts(\"STUB: zgges_ called\");\n    return NULL;\n}\n\nvoid* zggesx(void)\n{\n    if (verbose) puts(\"STUB: zggesx called\");\n    return NULL;\n}\n\nvoid* zggesx_(void)\n{\n    if (verbose) puts(\"STUB: zggesx_ called\");\n    return NULL;\n}\n\nvoid* zggev(void)\n{\n    if (verbose) puts(\"STUB: zggev called\");\n    return NULL;\n}\n\nvoid* zggev_(void)\n{\n    if (verbose) puts(\"STUB: zggev_ called\");\n    return NULL;\n}\n\nvoid* zggevx(void)\n{\n    if (verbose) puts(\"STUB: zggevx called\");\n    return NULL;\n}\n\nvoid* zggevx_(void)\n{\n    if (verbose) puts(\"STUB: zggevx_ called\");\n    return NULL;\n}\n\nvoid* zggglm(void)\n{\n    if (verbose) puts(\"STUB: zggglm called\");\n    return NULL;\n}\n\nvoid* zggglm_(void)\n{\n    if (verbose) puts(\"STUB: zggglm_ called\");\n    return NULL;\n}\n\nvoid* zgghrd(void)\n{\n    if (verbose) puts(\"STUB: zgghrd called\");\n    return NULL;\n}\n\nvoid* zgghrd_(void)\n{\n    if (verbose) puts(\"STUB: zgghrd_ called\");\n    return NULL;\n}\n\nvoid* zgglse(void)\n{\n    if (verbose) puts(\"STUB: zgglse called\");\n    return NULL;\n}\n\nvoid* zgglse_(void)\n{\n    if (verbose) puts(\"STUB: zgglse_ called\");\n    return NULL;\n}\n\nvoid* zggqrf(void)\n{\n    if (verbose) puts(\"STUB: zggqrf called\");\n    return NULL;\n}\n\nvoid* zggqrf_(void)\n{\n    if (verbose) puts(\"STUB: zggqrf_ called\");\n    return NULL;\n}\n\nvoid* zggrqf(void)\n{\n    if (verbose) puts(\"STUB: zggrqf called\");\n    return NULL;\n}\n\nvoid* zggrqf_(void)\n{\n    if (verbose) puts(\"STUB: zggrqf_ called\");\n    return NULL;\n}\n\nvoid* zggsvd(void)\n{\n    if (verbose) puts(\"STUB: zggsvd called\");\n    return NULL;\n}\n\nvoid* zggsvd_(void)\n{\n    if (verbose) puts(\"STUB: zggsvd_ called\");\n    return NULL;\n}\n\nvoid* zggsvp(void)\n{\n    if (verbose) puts(\"STUB: zggsvp called\");\n    return NULL;\n}\n\nvoid* zggsvp_(void)\n{\n    if (verbose) puts(\"STUB: zggsvp_ called\");\n    return NULL;\n}\n\nvoid* zgtcon(void)\n{\n    if (verbose) puts(\"STUB: zgtcon called\");\n    return NULL;\n}\n\nvoid* zgtcon_(void)\n{\n    if (verbose) puts(\"STUB: zgtcon_ called\");\n    return NULL;\n}\n\nvoid* zgtrfs(void)\n{\n    if (verbose) puts(\"STUB: zgtrfs called\");\n    return NULL;\n}\n\nvoid* zgtrfs_(void)\n{\n    if (verbose) puts(\"STUB: zgtrfs_ called\");\n    return NULL;\n}\n\nvoid* zgtsv(void)\n{\n    if (verbose) puts(\"STUB: zgtsv called\");\n    return NULL;\n}\n\nvoid* zgtsv_(void)\n{\n    if (verbose) puts(\"STUB: zgtsv_ called\");\n    return NULL;\n}\n\nvoid* zgtsvx(void)\n{\n    if (verbose) puts(\"STUB: zgtsvx called\");\n    return NULL;\n}\n\nvoid* zgtsvx_(void)\n{\n    if (verbose) puts(\"STUB: zgtsvx_ called\");\n    return NULL;\n}\n\nvoid* zgttrf(void)\n{\n    if (verbose) puts(\"STUB: zgttrf called\");\n    return NULL;\n}\n\nvoid* zgttrf_(void)\n{\n    if (verbose) puts(\"STUB: zgttrf_ called\");\n    return NULL;\n}\n\nvoid* zgttrs(void)\n{\n    if (verbose) puts(\"STUB: zgttrs called\");\n    return NULL;\n}\n\nvoid* zgttrs_(void)\n{\n    if (verbose) puts(\"STUB: zgttrs_ called\");\n    return NULL;\n}\n\nvoid* zgtts2(void)\n{\n    if (verbose) puts(\"STUB: zgtts2 called\");\n    return NULL;\n}\n\nvoid* zgtts2_(void)\n{\n    if (verbose) puts(\"STUB: zgtts2_ called\");\n    return NULL;\n}\n\nvoid* zhbev(void)\n{\n    if (verbose) puts(\"STUB: zhbev called\");\n    return NULL;\n}\n\nvoid* zhbev_(void)\n{\n    if (verbose) puts(\"STUB: zhbev_ called\");\n    return NULL;\n}\n\nvoid* zhbevd(void)\n{\n    if (verbose) puts(\"STUB: zhbevd called\");\n    return NULL;\n}\n\nvoid* zhbevd_(void)\n{\n    if (verbose) puts(\"STUB: zhbevd_ called\");\n    return NULL;\n}\n\nvoid* zhbevx(void)\n{\n    if (verbose) puts(\"STUB: zhbevx called\");\n    return NULL;\n}\n\nvoid* zhbevx_(void)\n{\n    if (verbose) puts(\"STUB: zhbevx_ called\");\n    return NULL;\n}\n\nvoid* zhbgst(void)\n{\n    if (verbose) puts(\"STUB: zhbgst called\");\n    return NULL;\n}\n\nvoid* zhbgst_(void)\n{\n    if (verbose) puts(\"STUB: zhbgst_ called\");\n    return NULL;\n}\n\nvoid* zhbgv(void)\n{\n    if (verbose) puts(\"STUB: zhbgv called\");\n    return NULL;\n}\n\nvoid* zhbgv_(void)\n{\n    if (verbose) puts(\"STUB: zhbgv_ called\");\n    return NULL;\n}\n\nvoid* zhbgvd(void)\n{\n    if (verbose) puts(\"STUB: zhbgvd called\");\n    return NULL;\n}\n\nvoid* zhbgvd_(void)\n{\n    if (verbose) puts(\"STUB: zhbgvd_ called\");\n    return NULL;\n}\n\nvoid* zhbgvx(void)\n{\n    if (verbose) puts(\"STUB: zhbgvx called\");\n    return NULL;\n}\n\nvoid* zhbgvx_(void)\n{\n    if (verbose) puts(\"STUB: zhbgvx_ called\");\n    return NULL;\n}\n\nvoid* zhbtrd(void)\n{\n    if (verbose) puts(\"STUB: zhbtrd called\");\n    return NULL;\n}\n\nvoid* zhbtrd_(void)\n{\n    if (verbose) puts(\"STUB: zhbtrd_ called\");\n    return NULL;\n}\n\nvoid* zhecon(void)\n{\n    if (verbose) puts(\"STUB: zhecon called\");\n    return NULL;\n}\n\nvoid* zhecon_(void)\n{\n    if (verbose) puts(\"STUB: zhecon_ called\");\n    return NULL;\n}\n\nvoid* zheequb(void)\n{\n    if (verbose) puts(\"STUB: zheequb called\");\n    return NULL;\n}\n\nvoid* zheequb_(void)\n{\n    if (verbose) puts(\"STUB: zheequb_ called\");\n    return NULL;\n}\n\nvoid* zheev(void)\n{\n    if (verbose) puts(\"STUB: zheev called\");\n    return NULL;\n}\n\nvoid* zheev_(void)\n{\n    if (verbose) puts(\"STUB: zheev_ called\");\n    return NULL;\n}\n\nvoid* zheevd(void)\n{\n    if (verbose) puts(\"STUB: zheevd called\");\n    return NULL;\n}\n\nvoid* zheevd_(void)\n{\n    if (verbose) puts(\"STUB: zheevd_ called\");\n    return NULL;\n}\n\nvoid* zheevr(void)\n{\n    if (verbose) puts(\"STUB: zheevr called\");\n    return NULL;\n}\n\nvoid* zheevr_(void)\n{\n    if (verbose) puts(\"STUB: zheevr_ called\");\n    return NULL;\n}\n\nvoid* zheevx(void)\n{\n    if (verbose) puts(\"STUB: zheevx called\");\n    return NULL;\n}\n\nvoid* zheevx_(void)\n{\n    if (verbose) puts(\"STUB: zheevx_ called\");\n    return NULL;\n}\n\nvoid* zhegs2(void)\n{\n    if (verbose) puts(\"STUB: zhegs2 called\");\n    return NULL;\n}\n\nvoid* zhegs2_(void)\n{\n    if (verbose) puts(\"STUB: zhegs2_ called\");\n    return NULL;\n}\n\nvoid* zhegst(void)\n{\n    if (verbose) puts(\"STUB: zhegst called\");\n    return NULL;\n}\n\nvoid* zhegst_(void)\n{\n    if (verbose) puts(\"STUB: zhegst_ called\");\n    return NULL;\n}\n\nvoid* zhegv(void)\n{\n    if (verbose) puts(\"STUB: zhegv called\");\n    return NULL;\n}\n\nvoid* zhegv_(void)\n{\n    if (verbose) puts(\"STUB: zhegv_ called\");\n    return NULL;\n}\n\nvoid* zhegvd(void)\n{\n    if (verbose) puts(\"STUB: zhegvd called\");\n    return NULL;\n}\n\nvoid* zhegvd_(void)\n{\n    if (verbose) puts(\"STUB: zhegvd_ called\");\n    return NULL;\n}\n\nvoid* zhegvx(void)\n{\n    if (verbose) puts(\"STUB: zhegvx called\");\n    return NULL;\n}\n\nvoid* zhegvx_(void)\n{\n    if (verbose) puts(\"STUB: zhegvx_ called\");\n    return NULL;\n}\n\nvoid* zherfs(void)\n{\n    if (verbose) puts(\"STUB: zherfs called\");\n    return NULL;\n}\n\nvoid* zherfs_(void)\n{\n    if (verbose) puts(\"STUB: zherfs_ called\");\n    return NULL;\n}\n\nvoid* zhesv(void)\n{\n    if (verbose) puts(\"STUB: zhesv called\");\n    return NULL;\n}\n\nvoid* zhesv_(void)\n{\n    if (verbose) puts(\"STUB: zhesv_ called\");\n    return NULL;\n}\n\nvoid* zhesvx(void)\n{\n    if (verbose) puts(\"STUB: zhesvx called\");\n    return NULL;\n}\n\nvoid* zhesvx_(void)\n{\n    if (verbose) puts(\"STUB: zhesvx_ called\");\n    return NULL;\n}\n\nvoid* zhetd2(void)\n{\n    if (verbose) puts(\"STUB: zhetd2 called\");\n    return NULL;\n}\n\nvoid* zhetd2_(void)\n{\n    if (verbose) puts(\"STUB: zhetd2_ called\");\n    return NULL;\n}\n\nvoid* zhetf2(void)\n{\n    if (verbose) puts(\"STUB: zhetf2 called\");\n    return NULL;\n}\n\nvoid* zhetf2_(void)\n{\n    if (verbose) puts(\"STUB: zhetf2_ called\");\n    return NULL;\n}\n\nvoid* zhetrd(void)\n{\n    if (verbose) puts(\"STUB: zhetrd called\");\n    return NULL;\n}\n\nvoid* zhetrd_(void)\n{\n    if (verbose) puts(\"STUB: zhetrd_ called\");\n    return NULL;\n}\n\nvoid* zhetrf(void)\n{\n    if (verbose) puts(\"STUB: zhetrf called\");\n    return NULL;\n}\n\nvoid* zhetrf_(void)\n{\n    if (verbose) puts(\"STUB: zhetrf_ called\");\n    return NULL;\n}\n\nvoid* zhetri(void)\n{\n    if (verbose) puts(\"STUB: zhetri called\");\n    return NULL;\n}\n\nvoid* zhetri_(void)\n{\n    if (verbose) puts(\"STUB: zhetri_ called\");\n    return NULL;\n}\n\nvoid* zhetrs(void)\n{\n    if (verbose) puts(\"STUB: zhetrs called\");\n    return NULL;\n}\n\nvoid* zhetrs_(void)\n{\n    if (verbose) puts(\"STUB: zhetrs_ called\");\n    return NULL;\n}\n\nvoid* zhfrk(void)\n{\n    if (verbose) puts(\"STUB: zhfrk called\");\n    return NULL;\n}\n\nvoid* zhfrk_(void)\n{\n    if (verbose) puts(\"STUB: zhfrk_ called\");\n    return NULL;\n}\n\nvoid* zhgeqz(void)\n{\n    if (verbose) puts(\"STUB: zhgeqz called\");\n    return NULL;\n}\n\nvoid* zhgeqz_(void)\n{\n    if (verbose) puts(\"STUB: zhgeqz_ called\");\n    return NULL;\n}\n\nvoid* zhpcon(void)\n{\n    if (verbose) puts(\"STUB: zhpcon called\");\n    return NULL;\n}\n\nvoid* zhpcon_(void)\n{\n    if (verbose) puts(\"STUB: zhpcon_ called\");\n    return NULL;\n}\n\nvoid* zhpev(void)\n{\n    if (verbose) puts(\"STUB: zhpev called\");\n    return NULL;\n}\n\nvoid* zhpev_(void)\n{\n    if (verbose) puts(\"STUB: zhpev_ called\");\n    return NULL;\n}\n\nvoid* zhpevd(void)\n{\n    if (verbose) puts(\"STUB: zhpevd called\");\n    return NULL;\n}\n\nvoid* zhpevd_(void)\n{\n    if (verbose) puts(\"STUB: zhpevd_ called\");\n    return NULL;\n}\n\nvoid* zhpevx(void)\n{\n    if (verbose) puts(\"STUB: zhpevx called\");\n    return NULL;\n}\n\nvoid* zhpevx_(void)\n{\n    if (verbose) puts(\"STUB: zhpevx_ called\");\n    return NULL;\n}\n\nvoid* zhpgst(void)\n{\n    if (verbose) puts(\"STUB: zhpgst called\");\n    return NULL;\n}\n\nvoid* zhpgst_(void)\n{\n    if (verbose) puts(\"STUB: zhpgst_ called\");\n    return NULL;\n}\n\nvoid* zhpgv(void)\n{\n    if (verbose) puts(\"STUB: zhpgv called\");\n    return NULL;\n}\n\nvoid* zhpgv_(void)\n{\n    if (verbose) puts(\"STUB: zhpgv_ called\");\n    return NULL;\n}\n\nvoid* zhpgvd(void)\n{\n    if (verbose) puts(\"STUB: zhpgvd called\");\n    return NULL;\n}\n\nvoid* zhpgvd_(void)\n{\n    if (verbose) puts(\"STUB: zhpgvd_ called\");\n    return NULL;\n}\n\nvoid* zhpgvx(void)\n{\n    if (verbose) puts(\"STUB: zhpgvx called\");\n    return NULL;\n}\n\nvoid* zhpgvx_(void)\n{\n    if (verbose) puts(\"STUB: zhpgvx_ called\");\n    return NULL;\n}\n\nvoid* zhprfs(void)\n{\n    if (verbose) puts(\"STUB: zhprfs called\");\n    return NULL;\n}\n\nvoid* zhprfs_(void)\n{\n    if (verbose) puts(\"STUB: zhprfs_ called\");\n    return NULL;\n}\n\nvoid* zhpsv(void)\n{\n    if (verbose) puts(\"STUB: zhpsv called\");\n    return NULL;\n}\n\nvoid* zhpsv_(void)\n{\n    if (verbose) puts(\"STUB: zhpsv_ called\");\n    return NULL;\n}\n\nvoid* zhpsvx(void)\n{\n    if (verbose) puts(\"STUB: zhpsvx called\");\n    return NULL;\n}\n\nvoid* zhpsvx_(void)\n{\n    if (verbose) puts(\"STUB: zhpsvx_ called\");\n    return NULL;\n}\n\nvoid* zhptrd(void)\n{\n    if (verbose) puts(\"STUB: zhptrd called\");\n    return NULL;\n}\n\nvoid* zhptrd_(void)\n{\n    if (verbose) puts(\"STUB: zhptrd_ called\");\n    return NULL;\n}\n\nvoid* zhptrf(void)\n{\n    if (verbose) puts(\"STUB: zhptrf called\");\n    return NULL;\n}\n\nvoid* zhptrf_(void)\n{\n    if (verbose) puts(\"STUB: zhptrf_ called\");\n    return NULL;\n}\n\nvoid* zhptri(void)\n{\n    if (verbose) puts(\"STUB: zhptri called\");\n    return NULL;\n}\n\nvoid* zhptri_(void)\n{\n    if (verbose) puts(\"STUB: zhptri_ called\");\n    return NULL;\n}\n\nvoid* zhptrs(void)\n{\n    if (verbose) puts(\"STUB: zhptrs called\");\n    return NULL;\n}\n\nvoid* zhptrs_(void)\n{\n    if (verbose) puts(\"STUB: zhptrs_ called\");\n    return NULL;\n}\n\nvoid* zhsein(void)\n{\n    if (verbose) puts(\"STUB: zhsein called\");\n    return NULL;\n}\n\nvoid* zhsein_(void)\n{\n    if (verbose) puts(\"STUB: zhsein_ called\");\n    return NULL;\n}\n\nvoid* zhseqr(void)\n{\n    if (verbose) puts(\"STUB: zhseqr called\");\n    return NULL;\n}\n\nvoid* zhseqr_(void)\n{\n    if (verbose) puts(\"STUB: zhseqr_ called\");\n    return NULL;\n}\n\nvoid* zlabrd(void)\n{\n    if (verbose) puts(\"STUB: zlabrd called\");\n    return NULL;\n}\n\nvoid* zlabrd_(void)\n{\n    if (verbose) puts(\"STUB: zlabrd_ called\");\n    return NULL;\n}\n\nvoid* zlacgv(void)\n{\n    if (verbose) puts(\"STUB: zlacgv called\");\n    return NULL;\n}\n\nvoid* zlacgv_(void)\n{\n    if (verbose) puts(\"STUB: zlacgv_ called\");\n    return NULL;\n}\n\nvoid* zlacn2(void)\n{\n    if (verbose) puts(\"STUB: zlacn2 called\");\n    return NULL;\n}\n\nvoid* zlacn2_(void)\n{\n    if (verbose) puts(\"STUB: zlacn2_ called\");\n    return NULL;\n}\n\nvoid* zlacon(void)\n{\n    if (verbose) puts(\"STUB: zlacon called\");\n    return NULL;\n}\n\nvoid* zlacon_(void)\n{\n    if (verbose) puts(\"STUB: zlacon_ called\");\n    return NULL;\n}\n\nvoid* zlacp2(void)\n{\n    if (verbose) puts(\"STUB: zlacp2 called\");\n    return NULL;\n}\n\nvoid* zlacp2_(void)\n{\n    if (verbose) puts(\"STUB: zlacp2_ called\");\n    return NULL;\n}\n\nvoid* zlacpy(void)\n{\n    if (verbose) puts(\"STUB: zlacpy called\");\n    return NULL;\n}\n\nvoid* zlacpy_(void)\n{\n    if (verbose) puts(\"STUB: zlacpy_ called\");\n    return NULL;\n}\n\nvoid* zlacrm(void)\n{\n    if (verbose) puts(\"STUB: zlacrm called\");\n    return NULL;\n}\n\nvoid* zlacrm_(void)\n{\n    if (verbose) puts(\"STUB: zlacrm_ called\");\n    return NULL;\n}\n\nvoid* zlacrt(void)\n{\n    if (verbose) puts(\"STUB: zlacrt called\");\n    return NULL;\n}\n\nvoid* zlacrt_(void)\n{\n    if (verbose) puts(\"STUB: zlacrt_ called\");\n    return NULL;\n}\n\nvoid* zladiv(void)\n{\n    if (verbose) puts(\"STUB: zladiv called\");\n    return NULL;\n}\n\nvoid* zladiv_(void)\n{\n    if (verbose) puts(\"STUB: zladiv_ called\");\n    return NULL;\n}\n\nvoid* zlaed0(void)\n{\n    if (verbose) puts(\"STUB: zlaed0 called\");\n    return NULL;\n}\n\nvoid* zlaed0_(void)\n{\n    if (verbose) puts(\"STUB: zlaed0_ called\");\n    return NULL;\n}\n\nvoid* zlaed7(void)\n{\n    if (verbose) puts(\"STUB: zlaed7 called\");\n    return NULL;\n}\n\nvoid* zlaed7_(void)\n{\n    if (verbose) puts(\"STUB: zlaed7_ called\");\n    return NULL;\n}\n\nvoid* zlaed8(void)\n{\n    if (verbose) puts(\"STUB: zlaed8 called\");\n    return NULL;\n}\n\nvoid* zlaed8_(void)\n{\n    if (verbose) puts(\"STUB: zlaed8_ called\");\n    return NULL;\n}\n\nvoid* zlaein(void)\n{\n    if (verbose) puts(\"STUB: zlaein called\");\n    return NULL;\n}\n\nvoid* zlaein_(void)\n{\n    if (verbose) puts(\"STUB: zlaein_ called\");\n    return NULL;\n}\n\nvoid* zlaesy(void)\n{\n    if (verbose) puts(\"STUB: zlaesy called\");\n    return NULL;\n}\n\nvoid* zlaesy_(void)\n{\n    if (verbose) puts(\"STUB: zlaesy_ called\");\n    return NULL;\n}\n\nvoid* zlaev2(void)\n{\n    if (verbose) puts(\"STUB: zlaev2 called\");\n    return NULL;\n}\n\nvoid* zlaev2_(void)\n{\n    if (verbose) puts(\"STUB: zlaev2_ called\");\n    return NULL;\n}\n\nvoid* zlag2c(void)\n{\n    if (verbose) puts(\"STUB: zlag2c called\");\n    return NULL;\n}\n\nvoid* zlag2c_(void)\n{\n    if (verbose) puts(\"STUB: zlag2c_ called\");\n    return NULL;\n}\n\nvoid* zlags2(void)\n{\n    if (verbose) puts(\"STUB: zlags2 called\");\n    return NULL;\n}\n\nvoid* zlags2_(void)\n{\n    if (verbose) puts(\"STUB: zlags2_ called\");\n    return NULL;\n}\n\nvoid* zlagtm(void)\n{\n    if (verbose) puts(\"STUB: zlagtm called\");\n    return NULL;\n}\n\nvoid* zlagtm_(void)\n{\n    if (verbose) puts(\"STUB: zlagtm_ called\");\n    return NULL;\n}\n\nvoid* zlahef(void)\n{\n    if (verbose) puts(\"STUB: zlahef called\");\n    return NULL;\n}\n\nvoid* zlahef_(void)\n{\n    if (verbose) puts(\"STUB: zlahef_ called\");\n    return NULL;\n}\n\nvoid* zlahqr(void)\n{\n    if (verbose) puts(\"STUB: zlahqr called\");\n    return NULL;\n}\n\nvoid* zlahqr_(void)\n{\n    if (verbose) puts(\"STUB: zlahqr_ called\");\n    return NULL;\n}\n\nvoid* zlahr2(void)\n{\n    if (verbose) puts(\"STUB: zlahr2 called\");\n    return NULL;\n}\n\nvoid* zlahr2_(void)\n{\n    if (verbose) puts(\"STUB: zlahr2_ called\");\n    return NULL;\n}\n\nvoid* zlahrd(void)\n{\n    if (verbose) puts(\"STUB: zlahrd called\");\n    return NULL;\n}\n\nvoid* zlahrd_(void)\n{\n    if (verbose) puts(\"STUB: zlahrd_ called\");\n    return NULL;\n}\n\nvoid* zlaic1(void)\n{\n    if (verbose) puts(\"STUB: zlaic1 called\");\n    return NULL;\n}\n\nvoid* zlaic1_(void)\n{\n    if (verbose) puts(\"STUB: zlaic1_ called\");\n    return NULL;\n}\n\nvoid* zlals0(void)\n{\n    if (verbose) puts(\"STUB: zlals0 called\");\n    return NULL;\n}\n\nvoid* zlals0_(void)\n{\n    if (verbose) puts(\"STUB: zlals0_ called\");\n    return NULL;\n}\n\nvoid* zlalsa(void)\n{\n    if (verbose) puts(\"STUB: zlalsa called\");\n    return NULL;\n}\n\nvoid* zlalsa_(void)\n{\n    if (verbose) puts(\"STUB: zlalsa_ called\");\n    return NULL;\n}\n\nvoid* zlalsd(void)\n{\n    if (verbose) puts(\"STUB: zlalsd called\");\n    return NULL;\n}\n\nvoid* zlalsd_(void)\n{\n    if (verbose) puts(\"STUB: zlalsd_ called\");\n    return NULL;\n}\n\nvoid* zlangb(void)\n{\n    if (verbose) puts(\"STUB: zlangb called\");\n    return NULL;\n}\n\nvoid* zlangb_(void)\n{\n    if (verbose) puts(\"STUB: zlangb_ called\");\n    return NULL;\n}\n\nvoid* zlange(void)\n{\n    if (verbose) puts(\"STUB: zlange called\");\n    return NULL;\n}\n\nvoid* zlange_(void)\n{\n    if (verbose) puts(\"STUB: zlange_ called\");\n    return NULL;\n}\n\nvoid* zlangt(void)\n{\n    if (verbose) puts(\"STUB: zlangt called\");\n    return NULL;\n}\n\nvoid* zlangt_(void)\n{\n    if (verbose) puts(\"STUB: zlangt_ called\");\n    return NULL;\n}\n\nvoid* zlanhb(void)\n{\n    if (verbose) puts(\"STUB: zlanhb called\");\n    return NULL;\n}\n\nvoid* zlanhb_(void)\n{\n    if (verbose) puts(\"STUB: zlanhb_ called\");\n    return NULL;\n}\n\nvoid* zlanhe(void)\n{\n    if (verbose) puts(\"STUB: zlanhe called\");\n    return NULL;\n}\n\nvoid* zlanhe_(void)\n{\n    if (verbose) puts(\"STUB: zlanhe_ called\");\n    return NULL;\n}\n\nvoid* zlanhf(void)\n{\n    if (verbose) puts(\"STUB: zlanhf called\");\n    return NULL;\n}\n\nvoid* zlanhf_(void)\n{\n    if (verbose) puts(\"STUB: zlanhf_ called\");\n    return NULL;\n}\n\nvoid* zlanhp(void)\n{\n    if (verbose) puts(\"STUB: zlanhp called\");\n    return NULL;\n}\n\nvoid* zlanhp_(void)\n{\n    if (verbose) puts(\"STUB: zlanhp_ called\");\n    return NULL;\n}\n\nvoid* zlanhs(void)\n{\n    if (verbose) puts(\"STUB: zlanhs called\");\n    return NULL;\n}\n\nvoid* zlanhs_(void)\n{\n    if (verbose) puts(\"STUB: zlanhs_ called\");\n    return NULL;\n}\n\nvoid* zlanht(void)\n{\n    if (verbose) puts(\"STUB: zlanht called\");\n    return NULL;\n}\n\nvoid* zlanht_(void)\n{\n    if (verbose) puts(\"STUB: zlanht_ called\");\n    return NULL;\n}\n\nvoid* zlansb(void)\n{\n    if (verbose) puts(\"STUB: zlansb called\");\n    return NULL;\n}\n\nvoid* zlansb_(void)\n{\n    if (verbose) puts(\"STUB: zlansb_ called\");\n    return NULL;\n}\n\nvoid* zlansp(void)\n{\n    if (verbose) puts(\"STUB: zlansp called\");\n    return NULL;\n}\n\nvoid* zlansp_(void)\n{\n    if (verbose) puts(\"STUB: zlansp_ called\");\n    return NULL;\n}\n\nvoid* zlansy(void)\n{\n    if (verbose) puts(\"STUB: zlansy called\");\n    return NULL;\n}\n\nvoid* zlansy_(void)\n{\n    if (verbose) puts(\"STUB: zlansy_ called\");\n    return NULL;\n}\n\nvoid* zlantb(void)\n{\n    if (verbose) puts(\"STUB: zlantb called\");\n    return NULL;\n}\n\nvoid* zlantb_(void)\n{\n    if (verbose) puts(\"STUB: zlantb_ called\");\n    return NULL;\n}\n\nvoid* zlantp(void)\n{\n    if (verbose) puts(\"STUB: zlantp called\");\n    return NULL;\n}\n\nvoid* zlantp_(void)\n{\n    if (verbose) puts(\"STUB: zlantp_ called\");\n    return NULL;\n}\n\nvoid* zlantr(void)\n{\n    if (verbose) puts(\"STUB: zlantr called\");\n    return NULL;\n}\n\nvoid* zlantr_(void)\n{\n    if (verbose) puts(\"STUB: zlantr_ called\");\n    return NULL;\n}\n\nvoid* zlapll(void)\n{\n    if (verbose) puts(\"STUB: zlapll called\");\n    return NULL;\n}\n\nvoid* zlapll_(void)\n{\n    if (verbose) puts(\"STUB: zlapll_ called\");\n    return NULL;\n}\n\nvoid* zlapmt(void)\n{\n    if (verbose) puts(\"STUB: zlapmt called\");\n    return NULL;\n}\n\nvoid* zlapmt_(void)\n{\n    if (verbose) puts(\"STUB: zlapmt_ called\");\n    return NULL;\n}\n\nvoid* zlaqgb(void)\n{\n    if (verbose) puts(\"STUB: zlaqgb called\");\n    return NULL;\n}\n\nvoid* zlaqgb_(void)\n{\n    if (verbose) puts(\"STUB: zlaqgb_ called\");\n    return NULL;\n}\n\nvoid* zlaqge(void)\n{\n    if (verbose) puts(\"STUB: zlaqge called\");\n    return NULL;\n}\n\nvoid* zlaqge_(void)\n{\n    if (verbose) puts(\"STUB: zlaqge_ called\");\n    return NULL;\n}\n\nvoid* zlaqhb(void)\n{\n    if (verbose) puts(\"STUB: zlaqhb called\");\n    return NULL;\n}\n\nvoid* zlaqhb_(void)\n{\n    if (verbose) puts(\"STUB: zlaqhb_ called\");\n    return NULL;\n}\n\nvoid* zlaqhe(void)\n{\n    if (verbose) puts(\"STUB: zlaqhe called\");\n    return NULL;\n}\n\nvoid* zlaqhe_(void)\n{\n    if (verbose) puts(\"STUB: zlaqhe_ called\");\n    return NULL;\n}\n\nvoid* zlaqhp(void)\n{\n    if (verbose) puts(\"STUB: zlaqhp called\");\n    return NULL;\n}\n\nvoid* zlaqhp_(void)\n{\n    if (verbose) puts(\"STUB: zlaqhp_ called\");\n    return NULL;\n}\n\nvoid* zlaqp2(void)\n{\n    if (verbose) puts(\"STUB: zlaqp2 called\");\n    return NULL;\n}\n\nvoid* zlaqp2_(void)\n{\n    if (verbose) puts(\"STUB: zlaqp2_ called\");\n    return NULL;\n}\n\nvoid* zlaqps(void)\n{\n    if (verbose) puts(\"STUB: zlaqps called\");\n    return NULL;\n}\n\nvoid* zlaqps_(void)\n{\n    if (verbose) puts(\"STUB: zlaqps_ called\");\n    return NULL;\n}\n\nvoid* zlaqr0(void)\n{\n    if (verbose) puts(\"STUB: zlaqr0 called\");\n    return NULL;\n}\n\nvoid* zlaqr0_(void)\n{\n    if (verbose) puts(\"STUB: zlaqr0_ called\");\n    return NULL;\n}\n\nvoid* zlaqr1(void)\n{\n    if (verbose) puts(\"STUB: zlaqr1 called\");\n    return NULL;\n}\n\nvoid* zlaqr1_(void)\n{\n    if (verbose) puts(\"STUB: zlaqr1_ called\");\n    return NULL;\n}\n\nvoid* zlaqr2(void)\n{\n    if (verbose) puts(\"STUB: zlaqr2 called\");\n    return NULL;\n}\n\nvoid* zlaqr2_(void)\n{\n    if (verbose) puts(\"STUB: zlaqr2_ called\");\n    return NULL;\n}\n\nvoid* zlaqr3(void)\n{\n    if (verbose) puts(\"STUB: zlaqr3 called\");\n    return NULL;\n}\n\nvoid* zlaqr3_(void)\n{\n    if (verbose) puts(\"STUB: zlaqr3_ called\");\n    return NULL;\n}\n\nvoid* zlaqr4(void)\n{\n    if (verbose) puts(\"STUB: zlaqr4 called\");\n    return NULL;\n}\n\nvoid* zlaqr4_(void)\n{\n    if (verbose) puts(\"STUB: zlaqr4_ called\");\n    return NULL;\n}\n\nvoid* zlaqr5(void)\n{\n    if (verbose) puts(\"STUB: zlaqr5 called\");\n    return NULL;\n}\n\nvoid* zlaqr5_(void)\n{\n    if (verbose) puts(\"STUB: zlaqr5_ called\");\n    return NULL;\n}\n\nvoid* zlaqsb(void)\n{\n    if (verbose) puts(\"STUB: zlaqsb called\");\n    return NULL;\n}\n\nvoid* zlaqsb_(void)\n{\n    if (verbose) puts(\"STUB: zlaqsb_ called\");\n    return NULL;\n}\n\nvoid* zlaqsp(void)\n{\n    if (verbose) puts(\"STUB: zlaqsp called\");\n    return NULL;\n}\n\nvoid* zlaqsp_(void)\n{\n    if (verbose) puts(\"STUB: zlaqsp_ called\");\n    return NULL;\n}\n\nvoid* zlaqsy(void)\n{\n    if (verbose) puts(\"STUB: zlaqsy called\");\n    return NULL;\n}\n\nvoid* zlaqsy_(void)\n{\n    if (verbose) puts(\"STUB: zlaqsy_ called\");\n    return NULL;\n}\n\nvoid* zlar1v(void)\n{\n    if (verbose) puts(\"STUB: zlar1v called\");\n    return NULL;\n}\n\nvoid* zlar1v_(void)\n{\n    if (verbose) puts(\"STUB: zlar1v_ called\");\n    return NULL;\n}\n\nvoid* zlar2v(void)\n{\n    if (verbose) puts(\"STUB: zlar2v called\");\n    return NULL;\n}\n\nvoid* zlar2v_(void)\n{\n    if (verbose) puts(\"STUB: zlar2v_ called\");\n    return NULL;\n}\n\nvoid* zlarcm(void)\n{\n    if (verbose) puts(\"STUB: zlarcm called\");\n    return NULL;\n}\n\nvoid* zlarcm_(void)\n{\n    if (verbose) puts(\"STUB: zlarcm_ called\");\n    return NULL;\n}\n\nvoid* zlarf(void)\n{\n    if (verbose) puts(\"STUB: zlarf called\");\n    return NULL;\n}\n\nvoid* zlarf_(void)\n{\n    if (verbose) puts(\"STUB: zlarf_ called\");\n    return NULL;\n}\n\nvoid* zlarfb(void)\n{\n    if (verbose) puts(\"STUB: zlarfb called\");\n    return NULL;\n}\n\nvoid* zlarfb_(void)\n{\n    if (verbose) puts(\"STUB: zlarfb_ called\");\n    return NULL;\n}\n\nvoid* zlarfg(void)\n{\n    if (verbose) puts(\"STUB: zlarfg called\");\n    return NULL;\n}\n\nvoid* zlarfg_(void)\n{\n    if (verbose) puts(\"STUB: zlarfg_ called\");\n    return NULL;\n}\n\nvoid* zlarfp(void)\n{\n    if (verbose) puts(\"STUB: zlarfp called\");\n    return NULL;\n}\n\nvoid* zlarfp_(void)\n{\n    if (verbose) puts(\"STUB: zlarfp_ called\");\n    return NULL;\n}\n\nvoid* zlarft(void)\n{\n    if (verbose) puts(\"STUB: zlarft called\");\n    return NULL;\n}\n\nvoid* zlarft_(void)\n{\n    if (verbose) puts(\"STUB: zlarft_ called\");\n    return NULL;\n}\n\nvoid* zlarfx(void)\n{\n    if (verbose) puts(\"STUB: zlarfx called\");\n    return NULL;\n}\n\nvoid* zlarfx_(void)\n{\n    if (verbose) puts(\"STUB: zlarfx_ called\");\n    return NULL;\n}\n\nvoid* zlargv(void)\n{\n    if (verbose) puts(\"STUB: zlargv called\");\n    return NULL;\n}\n\nvoid* zlargv_(void)\n{\n    if (verbose) puts(\"STUB: zlargv_ called\");\n    return NULL;\n}\n\nvoid* zlarnv(void)\n{\n    if (verbose) puts(\"STUB: zlarnv called\");\n    return NULL;\n}\n\nvoid* zlarnv_(void)\n{\n    if (verbose) puts(\"STUB: zlarnv_ called\");\n    return NULL;\n}\n\nvoid* zlarrv(void)\n{\n    if (verbose) puts(\"STUB: zlarrv called\");\n    return NULL;\n}\n\nvoid* zlarrv_(void)\n{\n    if (verbose) puts(\"STUB: zlarrv_ called\");\n    return NULL;\n}\n\nvoid* zlarscl2(void)\n{\n    if (verbose) puts(\"STUB: zlarscl2 called\");\n    return NULL;\n}\n\nvoid* zlarscl2_(void)\n{\n    if (verbose) puts(\"STUB: zlarscl2_ called\");\n    return NULL;\n}\n\nvoid* zlartg(void)\n{\n    if (verbose) puts(\"STUB: zlartg called\");\n    return NULL;\n}\n\nvoid* zlartg_(void)\n{\n    if (verbose) puts(\"STUB: zlartg_ called\");\n    return NULL;\n}\n\nvoid* zlartv(void)\n{\n    if (verbose) puts(\"STUB: zlartv called\");\n    return NULL;\n}\n\nvoid* zlartv_(void)\n{\n    if (verbose) puts(\"STUB: zlartv_ called\");\n    return NULL;\n}\n\nvoid* zlarz(void)\n{\n    if (verbose) puts(\"STUB: zlarz called\");\n    return NULL;\n}\n\nvoid* zlarz_(void)\n{\n    if (verbose) puts(\"STUB: zlarz_ called\");\n    return NULL;\n}\n\nvoid* zlarzb(void)\n{\n    if (verbose) puts(\"STUB: zlarzb called\");\n    return NULL;\n}\n\nvoid* zlarzb_(void)\n{\n    if (verbose) puts(\"STUB: zlarzb_ called\");\n    return NULL;\n}\n\nvoid* zlarzt(void)\n{\n    if (verbose) puts(\"STUB: zlarzt called\");\n    return NULL;\n}\n\nvoid* zlarzt_(void)\n{\n    if (verbose) puts(\"STUB: zlarzt_ called\");\n    return NULL;\n}\n\nvoid* zlascl(void)\n{\n    if (verbose) puts(\"STUB: zlascl called\");\n    return NULL;\n}\n\nvoid* zlascl2(void)\n{\n    if (verbose) puts(\"STUB: zlascl2 called\");\n    return NULL;\n}\n\nvoid* zlascl2_(void)\n{\n    if (verbose) puts(\"STUB: zlascl2_ called\");\n    return NULL;\n}\n\nvoid* zlascl_(void)\n{\n    if (verbose) puts(\"STUB: zlascl_ called\");\n    return NULL;\n}\n\nvoid* zlaset(void)\n{\n    if (verbose) puts(\"STUB: zlaset called\");\n    return NULL;\n}\n\nvoid* zlaset_(void)\n{\n    if (verbose) puts(\"STUB: zlaset_ called\");\n    return NULL;\n}\n\nvoid* zlasr(void)\n{\n    if (verbose) puts(\"STUB: zlasr called\");\n    return NULL;\n}\n\nvoid* zlasr_(void)\n{\n    if (verbose) puts(\"STUB: zlasr_ called\");\n    return NULL;\n}\n\nvoid* zlassq(void)\n{\n    if (verbose) puts(\"STUB: zlassq called\");\n    return NULL;\n}\n\nvoid* zlassq_(void)\n{\n    if (verbose) puts(\"STUB: zlassq_ called\");\n    return NULL;\n}\n\nvoid* zlaswp(void)\n{\n    if (verbose) puts(\"STUB: zlaswp called\");\n    return NULL;\n}\n\nvoid* zlaswp_(void)\n{\n    if (verbose) puts(\"STUB: zlaswp_ called\");\n    return NULL;\n}\n\nvoid* zlasyf(void)\n{\n    if (verbose) puts(\"STUB: zlasyf called\");\n    return NULL;\n}\n\nvoid* zlasyf_(void)\n{\n    if (verbose) puts(\"STUB: zlasyf_ called\");\n    return NULL;\n}\n\nvoid* zlat2c(void)\n{\n    if (verbose) puts(\"STUB: zlat2c called\");\n    return NULL;\n}\n\nvoid* zlat2c_(void)\n{\n    if (verbose) puts(\"STUB: zlat2c_ called\");\n    return NULL;\n}\n\nvoid* zlatbs(void)\n{\n    if (verbose) puts(\"STUB: zlatbs called\");\n    return NULL;\n}\n\nvoid* zlatbs_(void)\n{\n    if (verbose) puts(\"STUB: zlatbs_ called\");\n    return NULL;\n}\n\nvoid* zlatdf(void)\n{\n    if (verbose) puts(\"STUB: zlatdf called\");\n    return NULL;\n}\n\nvoid* zlatdf_(void)\n{\n    if (verbose) puts(\"STUB: zlatdf_ called\");\n    return NULL;\n}\n\nvoid* zlatps(void)\n{\n    if (verbose) puts(\"STUB: zlatps called\");\n    return NULL;\n}\n\nvoid* zlatps_(void)\n{\n    if (verbose) puts(\"STUB: zlatps_ called\");\n    return NULL;\n}\n\nvoid* zlatrd(void)\n{\n    if (verbose) puts(\"STUB: zlatrd called\");\n    return NULL;\n}\n\nvoid* zlatrd_(void)\n{\n    if (verbose) puts(\"STUB: zlatrd_ called\");\n    return NULL;\n}\n\nvoid* zlatrs(void)\n{\n    if (verbose) puts(\"STUB: zlatrs called\");\n    return NULL;\n}\n\nvoid* zlatrs_(void)\n{\n    if (verbose) puts(\"STUB: zlatrs_ called\");\n    return NULL;\n}\n\nvoid* zlatrz(void)\n{\n    if (verbose) puts(\"STUB: zlatrz called\");\n    return NULL;\n}\n\nvoid* zlatrz_(void)\n{\n    if (verbose) puts(\"STUB: zlatrz_ called\");\n    return NULL;\n}\n\nvoid* zlatzm(void)\n{\n    if (verbose) puts(\"STUB: zlatzm called\");\n    return NULL;\n}\n\nvoid* zlatzm_(void)\n{\n    if (verbose) puts(\"STUB: zlatzm_ called\");\n    return NULL;\n}\n\nvoid* zlauu2(void)\n{\n    if (verbose) puts(\"STUB: zlauu2 called\");\n    return NULL;\n}\n\nvoid* zlauu2_(void)\n{\n    if (verbose) puts(\"STUB: zlauu2_ called\");\n    return NULL;\n}\n\nvoid* zlauum(void)\n{\n    if (verbose) puts(\"STUB: zlauum called\");\n    return NULL;\n}\n\nvoid* zlauum_(void)\n{\n    if (verbose) puts(\"STUB: zlauum_ called\");\n    return NULL;\n}\n\nvoid* zpbcon(void)\n{\n    if (verbose) puts(\"STUB: zpbcon called\");\n    return NULL;\n}\n\nvoid* zpbcon_(void)\n{\n    if (verbose) puts(\"STUB: zpbcon_ called\");\n    return NULL;\n}\n\nvoid* zpbequ(void)\n{\n    if (verbose) puts(\"STUB: zpbequ called\");\n    return NULL;\n}\n\nvoid* zpbequ_(void)\n{\n    if (verbose) puts(\"STUB: zpbequ_ called\");\n    return NULL;\n}\n\nvoid* zpbrfs(void)\n{\n    if (verbose) puts(\"STUB: zpbrfs called\");\n    return NULL;\n}\n\nvoid* zpbrfs_(void)\n{\n    if (verbose) puts(\"STUB: zpbrfs_ called\");\n    return NULL;\n}\n\nvoid* zpbstf(void)\n{\n    if (verbose) puts(\"STUB: zpbstf called\");\n    return NULL;\n}\n\nvoid* zpbstf_(void)\n{\n    if (verbose) puts(\"STUB: zpbstf_ called\");\n    return NULL;\n}\n\nvoid* zpbsv(void)\n{\n    if (verbose) puts(\"STUB: zpbsv called\");\n    return NULL;\n}\n\nvoid* zpbsv_(void)\n{\n    if (verbose) puts(\"STUB: zpbsv_ called\");\n    return NULL;\n}\n\nvoid* zpbsvx(void)\n{\n    if (verbose) puts(\"STUB: zpbsvx called\");\n    return NULL;\n}\n\nvoid* zpbsvx_(void)\n{\n    if (verbose) puts(\"STUB: zpbsvx_ called\");\n    return NULL;\n}\n\nvoid* zpbtf2(void)\n{\n    if (verbose) puts(\"STUB: zpbtf2 called\");\n    return NULL;\n}\n\nvoid* zpbtf2_(void)\n{\n    if (verbose) puts(\"STUB: zpbtf2_ called\");\n    return NULL;\n}\n\nvoid* zpbtrf(void)\n{\n    if (verbose) puts(\"STUB: zpbtrf called\");\n    return NULL;\n}\n\nvoid* zpbtrf_(void)\n{\n    if (verbose) puts(\"STUB: zpbtrf_ called\");\n    return NULL;\n}\n\nvoid* zpbtrs(void)\n{\n    if (verbose) puts(\"STUB: zpbtrs called\");\n    return NULL;\n}\n\nvoid* zpbtrs_(void)\n{\n    if (verbose) puts(\"STUB: zpbtrs_ called\");\n    return NULL;\n}\n\nvoid* zpftrf(void)\n{\n    if (verbose) puts(\"STUB: zpftrf called\");\n    return NULL;\n}\n\nvoid* zpftrf_(void)\n{\n    if (verbose) puts(\"STUB: zpftrf_ called\");\n    return NULL;\n}\n\nvoid* zpftri(void)\n{\n    if (verbose) puts(\"STUB: zpftri called\");\n    return NULL;\n}\n\nvoid* zpftri_(void)\n{\n    if (verbose) puts(\"STUB: zpftri_ called\");\n    return NULL;\n}\n\nvoid* zpftrs(void)\n{\n    if (verbose) puts(\"STUB: zpftrs called\");\n    return NULL;\n}\n\nvoid* zpftrs_(void)\n{\n    if (verbose) puts(\"STUB: zpftrs_ called\");\n    return NULL;\n}\n\nvoid* zpocon(void)\n{\n    if (verbose) puts(\"STUB: zpocon called\");\n    return NULL;\n}\n\nvoid* zpocon_(void)\n{\n    if (verbose) puts(\"STUB: zpocon_ called\");\n    return NULL;\n}\n\nvoid* zpoequ(void)\n{\n    if (verbose) puts(\"STUB: zpoequ called\");\n    return NULL;\n}\n\nvoid* zpoequ_(void)\n{\n    if (verbose) puts(\"STUB: zpoequ_ called\");\n    return NULL;\n}\n\nvoid* zpoequb(void)\n{\n    if (verbose) puts(\"STUB: zpoequb called\");\n    return NULL;\n}\n\nvoid* zpoequb_(void)\n{\n    if (verbose) puts(\"STUB: zpoequb_ called\");\n    return NULL;\n}\n\nvoid* zporfs(void)\n{\n    if (verbose) puts(\"STUB: zporfs called\");\n    return NULL;\n}\n\nvoid* zporfs_(void)\n{\n    if (verbose) puts(\"STUB: zporfs_ called\");\n    return NULL;\n}\n\nvoid* zposv(void)\n{\n    if (verbose) puts(\"STUB: zposv called\");\n    return NULL;\n}\n\nvoid* zposv_(void)\n{\n    if (verbose) puts(\"STUB: zposv_ called\");\n    return NULL;\n}\n\nvoid* zposvx(void)\n{\n    if (verbose) puts(\"STUB: zposvx called\");\n    return NULL;\n}\n\nvoid* zposvx_(void)\n{\n    if (verbose) puts(\"STUB: zposvx_ called\");\n    return NULL;\n}\n\nvoid* zpotf2(void)\n{\n    if (verbose) puts(\"STUB: zpotf2 called\");\n    return NULL;\n}\n\nvoid* zpotf2_(void)\n{\n    if (verbose) puts(\"STUB: zpotf2_ called\");\n    return NULL;\n}\n\nvoid* zpotrf(void)\n{\n    if (verbose) puts(\"STUB: zpotrf called\");\n    return NULL;\n}\n\nvoid* zpotrf_(void)\n{\n    if (verbose) puts(\"STUB: zpotrf_ called\");\n    return NULL;\n}\n\nvoid* zpotri(void)\n{\n    if (verbose) puts(\"STUB: zpotri called\");\n    return NULL;\n}\n\nvoid* zpotri_(void)\n{\n    if (verbose) puts(\"STUB: zpotri_ called\");\n    return NULL;\n}\n\nvoid* zpotrs(void)\n{\n    if (verbose) puts(\"STUB: zpotrs called\");\n    return NULL;\n}\n\nvoid* zpotrs_(void)\n{\n    if (verbose) puts(\"STUB: zpotrs_ called\");\n    return NULL;\n}\n\nvoid* zppcon(void)\n{\n    if (verbose) puts(\"STUB: zppcon called\");\n    return NULL;\n}\n\nvoid* zppcon_(void)\n{\n    if (verbose) puts(\"STUB: zppcon_ called\");\n    return NULL;\n}\n\nvoid* zppequ(void)\n{\n    if (verbose) puts(\"STUB: zppequ called\");\n    return NULL;\n}\n\nvoid* zppequ_(void)\n{\n    if (verbose) puts(\"STUB: zppequ_ called\");\n    return NULL;\n}\n\nvoid* zpprfs(void)\n{\n    if (verbose) puts(\"STUB: zpprfs called\");\n    return NULL;\n}\n\nvoid* zpprfs_(void)\n{\n    if (verbose) puts(\"STUB: zpprfs_ called\");\n    return NULL;\n}\n\nvoid* zppsv(void)\n{\n    if (verbose) puts(\"STUB: zppsv called\");\n    return NULL;\n}\n\nvoid* zppsv_(void)\n{\n    if (verbose) puts(\"STUB: zppsv_ called\");\n    return NULL;\n}\n\nvoid* zppsvx(void)\n{\n    if (verbose) puts(\"STUB: zppsvx called\");\n    return NULL;\n}\n\nvoid* zppsvx_(void)\n{\n    if (verbose) puts(\"STUB: zppsvx_ called\");\n    return NULL;\n}\n\nvoid* zpptrf(void)\n{\n    if (verbose) puts(\"STUB: zpptrf called\");\n    return NULL;\n}\n\nvoid* zpptrf_(void)\n{\n    if (verbose) puts(\"STUB: zpptrf_ called\");\n    return NULL;\n}\n\nvoid* zpptri(void)\n{\n    if (verbose) puts(\"STUB: zpptri called\");\n    return NULL;\n}\n\nvoid* zpptri_(void)\n{\n    if (verbose) puts(\"STUB: zpptri_ called\");\n    return NULL;\n}\n\nvoid* zpptrs(void)\n{\n    if (verbose) puts(\"STUB: zpptrs called\");\n    return NULL;\n}\n\nvoid* zpptrs_(void)\n{\n    if (verbose) puts(\"STUB: zpptrs_ called\");\n    return NULL;\n}\n\nvoid* zpstf2(void)\n{\n    if (verbose) puts(\"STUB: zpstf2 called\");\n    return NULL;\n}\n\nvoid* zpstf2_(void)\n{\n    if (verbose) puts(\"STUB: zpstf2_ called\");\n    return NULL;\n}\n\nvoid* zpstrf(void)\n{\n    if (verbose) puts(\"STUB: zpstrf called\");\n    return NULL;\n}\n\nvoid* zpstrf_(void)\n{\n    if (verbose) puts(\"STUB: zpstrf_ called\");\n    return NULL;\n}\n\nvoid* zptcon(void)\n{\n    if (verbose) puts(\"STUB: zptcon called\");\n    return NULL;\n}\n\nvoid* zptcon_(void)\n{\n    if (verbose) puts(\"STUB: zptcon_ called\");\n    return NULL;\n}\n\nvoid* zpteqr(void)\n{\n    if (verbose) puts(\"STUB: zpteqr called\");\n    return NULL;\n}\n\nvoid* zpteqr_(void)\n{\n    if (verbose) puts(\"STUB: zpteqr_ called\");\n    return NULL;\n}\n\nvoid* zptrfs(void)\n{\n    if (verbose) puts(\"STUB: zptrfs called\");\n    return NULL;\n}\n\nvoid* zptrfs_(void)\n{\n    if (verbose) puts(\"STUB: zptrfs_ called\");\n    return NULL;\n}\n\nvoid* zptsv(void)\n{\n    if (verbose) puts(\"STUB: zptsv called\");\n    return NULL;\n}\n\nvoid* zptsv_(void)\n{\n    if (verbose) puts(\"STUB: zptsv_ called\");\n    return NULL;\n}\n\nvoid* zptsvx(void)\n{\n    if (verbose) puts(\"STUB: zptsvx called\");\n    return NULL;\n}\n\nvoid* zptsvx_(void)\n{\n    if (verbose) puts(\"STUB: zptsvx_ called\");\n    return NULL;\n}\n\nvoid* zpttrf(void)\n{\n    if (verbose) puts(\"STUB: zpttrf called\");\n    return NULL;\n}\n\nvoid* zpttrf_(void)\n{\n    if (verbose) puts(\"STUB: zpttrf_ called\");\n    return NULL;\n}\n\nvoid* zpttrs(void)\n{\n    if (verbose) puts(\"STUB: zpttrs called\");\n    return NULL;\n}\n\nvoid* zpttrs_(void)\n{\n    if (verbose) puts(\"STUB: zpttrs_ called\");\n    return NULL;\n}\n\nvoid* zptts2(void)\n{\n    if (verbose) puts(\"STUB: zptts2 called\");\n    return NULL;\n}\n\nvoid* zptts2_(void)\n{\n    if (verbose) puts(\"STUB: zptts2_ called\");\n    return NULL;\n}\n\nvoid* zrot(void)\n{\n    if (verbose) puts(\"STUB: zrot called\");\n    return NULL;\n}\n\nvoid* zrot_(void)\n{\n    if (verbose) puts(\"STUB: zrot_ called\");\n    return NULL;\n}\n\nvoid* zspcon(void)\n{\n    if (verbose) puts(\"STUB: zspcon called\");\n    return NULL;\n}\n\nvoid* zspcon_(void)\n{\n    if (verbose) puts(\"STUB: zspcon_ called\");\n    return NULL;\n}\n\nvoid* zspmv(void)\n{\n    if (verbose) puts(\"STUB: zspmv called\");\n    return NULL;\n}\n\nvoid* zspmv_(void)\n{\n    if (verbose) puts(\"STUB: zspmv_ called\");\n    return NULL;\n}\n\nvoid* zspr(void)\n{\n    if (verbose) puts(\"STUB: zspr called\");\n    return NULL;\n}\n\nvoid* zspr_(void)\n{\n    if (verbose) puts(\"STUB: zspr_ called\");\n    return NULL;\n}\n\nvoid* zsprfs(void)\n{\n    if (verbose) puts(\"STUB: zsprfs called\");\n    return NULL;\n}\n\nvoid* zsprfs_(void)\n{\n    if (verbose) puts(\"STUB: zsprfs_ called\");\n    return NULL;\n}\n\nvoid* zspsv(void)\n{\n    if (verbose) puts(\"STUB: zspsv called\");\n    return NULL;\n}\n\nvoid* zspsv_(void)\n{\n    if (verbose) puts(\"STUB: zspsv_ called\");\n    return NULL;\n}\n\nvoid* zspsvx(void)\n{\n    if (verbose) puts(\"STUB: zspsvx called\");\n    return NULL;\n}\n\nvoid* zspsvx_(void)\n{\n    if (verbose) puts(\"STUB: zspsvx_ called\");\n    return NULL;\n}\n\nvoid* zsptrf(void)\n{\n    if (verbose) puts(\"STUB: zsptrf called\");\n    return NULL;\n}\n\nvoid* zsptrf_(void)\n{\n    if (verbose) puts(\"STUB: zsptrf_ called\");\n    return NULL;\n}\n\nvoid* zsptri(void)\n{\n    if (verbose) puts(\"STUB: zsptri called\");\n    return NULL;\n}\n\nvoid* zsptri_(void)\n{\n    if (verbose) puts(\"STUB: zsptri_ called\");\n    return NULL;\n}\n\nvoid* zsptrs(void)\n{\n    if (verbose) puts(\"STUB: zsptrs called\");\n    return NULL;\n}\n\nvoid* zsptrs_(void)\n{\n    if (verbose) puts(\"STUB: zsptrs_ called\");\n    return NULL;\n}\n\nvoid* zstedc(void)\n{\n    if (verbose) puts(\"STUB: zstedc called\");\n    return NULL;\n}\n\nvoid* zstedc_(void)\n{\n    if (verbose) puts(\"STUB: zstedc_ called\");\n    return NULL;\n}\n\nvoid* zstegr(void)\n{\n    if (verbose) puts(\"STUB: zstegr called\");\n    return NULL;\n}\n\nvoid* zstegr_(void)\n{\n    if (verbose) puts(\"STUB: zstegr_ called\");\n    return NULL;\n}\n\nvoid* zstein(void)\n{\n    if (verbose) puts(\"STUB: zstein called\");\n    return NULL;\n}\n\nvoid* zstein_(void)\n{\n    if (verbose) puts(\"STUB: zstein_ called\");\n    return NULL;\n}\n\nvoid* zstemr(void)\n{\n    if (verbose) puts(\"STUB: zstemr called\");\n    return NULL;\n}\n\nvoid* zstemr_(void)\n{\n    if (verbose) puts(\"STUB: zstemr_ called\");\n    return NULL;\n}\n\nvoid* zsteqr(void)\n{\n    if (verbose) puts(\"STUB: zsteqr called\");\n    return NULL;\n}\n\nvoid* zsteqr_(void)\n{\n    if (verbose) puts(\"STUB: zsteqr_ called\");\n    return NULL;\n}\n\nvoid* zsycon(void)\n{\n    if (verbose) puts(\"STUB: zsycon called\");\n    return NULL;\n}\n\nvoid* zsycon_(void)\n{\n    if (verbose) puts(\"STUB: zsycon_ called\");\n    return NULL;\n}\n\nvoid* zsyequb(void)\n{\n    if (verbose) puts(\"STUB: zsyequb called\");\n    return NULL;\n}\n\nvoid* zsyequb_(void)\n{\n    if (verbose) puts(\"STUB: zsyequb_ called\");\n    return NULL;\n}\n\nvoid* zsymv(void)\n{\n    if (verbose) puts(\"STUB: zsymv called\");\n    return NULL;\n}\n\nvoid* zsymv_(void)\n{\n    if (verbose) puts(\"STUB: zsymv_ called\");\n    return NULL;\n}\n\nvoid* zsyr(void)\n{\n    if (verbose) puts(\"STUB: zsyr called\");\n    return NULL;\n}\n\nvoid* zsyr_(void)\n{\n    if (verbose) puts(\"STUB: zsyr_ called\");\n    return NULL;\n}\n\nvoid* zsyrfs(void)\n{\n    if (verbose) puts(\"STUB: zsyrfs called\");\n    return NULL;\n}\n\nvoid* zsyrfs_(void)\n{\n    if (verbose) puts(\"STUB: zsyrfs_ called\");\n    return NULL;\n}\n\nvoid* zsysv(void)\n{\n    if (verbose) puts(\"STUB: zsysv called\");\n    return NULL;\n}\n\nvoid* zsysv_(void)\n{\n    if (verbose) puts(\"STUB: zsysv_ called\");\n    return NULL;\n}\n\nvoid* zsysvx(void)\n{\n    if (verbose) puts(\"STUB: zsysvx called\");\n    return NULL;\n}\n\nvoid* zsysvx_(void)\n{\n    if (verbose) puts(\"STUB: zsysvx_ called\");\n    return NULL;\n}\n\nvoid* zsytf2(void)\n{\n    if (verbose) puts(\"STUB: zsytf2 called\");\n    return NULL;\n}\n\nvoid* zsytf2_(void)\n{\n    if (verbose) puts(\"STUB: zsytf2_ called\");\n    return NULL;\n}\n\nvoid* zsytrf(void)\n{\n    if (verbose) puts(\"STUB: zsytrf called\");\n    return NULL;\n}\n\nvoid* zsytrf_(void)\n{\n    if (verbose) puts(\"STUB: zsytrf_ called\");\n    return NULL;\n}\n\nvoid* zsytri(void)\n{\n    if (verbose) puts(\"STUB: zsytri called\");\n    return NULL;\n}\n\nvoid* zsytri_(void)\n{\n    if (verbose) puts(\"STUB: zsytri_ called\");\n    return NULL;\n}\n\nvoid* zsytrs(void)\n{\n    if (verbose) puts(\"STUB: zsytrs called\");\n    return NULL;\n}\n\nvoid* zsytrs_(void)\n{\n    if (verbose) puts(\"STUB: zsytrs_ called\");\n    return NULL;\n}\n\nvoid* ztbcon(void)\n{\n    if (verbose) puts(\"STUB: ztbcon called\");\n    return NULL;\n}\n\nvoid* ztbcon_(void)\n{\n    if (verbose) puts(\"STUB: ztbcon_ called\");\n    return NULL;\n}\n\nvoid* ztbrfs(void)\n{\n    if (verbose) puts(\"STUB: ztbrfs called\");\n    return NULL;\n}\n\nvoid* ztbrfs_(void)\n{\n    if (verbose) puts(\"STUB: ztbrfs_ called\");\n    return NULL;\n}\n\nvoid* ztbtrs(void)\n{\n    if (verbose) puts(\"STUB: ztbtrs called\");\n    return NULL;\n}\n\nvoid* ztbtrs_(void)\n{\n    if (verbose) puts(\"STUB: ztbtrs_ called\");\n    return NULL;\n}\n\nvoid* ztfsm(void)\n{\n    if (verbose) puts(\"STUB: ztfsm called\");\n    return NULL;\n}\n\nvoid* ztfsm_(void)\n{\n    if (verbose) puts(\"STUB: ztfsm_ called\");\n    return NULL;\n}\n\nvoid* ztftri(void)\n{\n    if (verbose) puts(\"STUB: ztftri called\");\n    return NULL;\n}\n\nvoid* ztftri_(void)\n{\n    if (verbose) puts(\"STUB: ztftri_ called\");\n    return NULL;\n}\n\nvoid* ztfttp(void)\n{\n    if (verbose) puts(\"STUB: ztfttp called\");\n    return NULL;\n}\n\nvoid* ztfttp_(void)\n{\n    if (verbose) puts(\"STUB: ztfttp_ called\");\n    return NULL;\n}\n\nvoid* ztfttr(void)\n{\n    if (verbose) puts(\"STUB: ztfttr called\");\n    return NULL;\n}\n\nvoid* ztfttr_(void)\n{\n    if (verbose) puts(\"STUB: ztfttr_ called\");\n    return NULL;\n}\n\nvoid* ztgevc(void)\n{\n    if (verbose) puts(\"STUB: ztgevc called\");\n    return NULL;\n}\n\nvoid* ztgevc_(void)\n{\n    if (verbose) puts(\"STUB: ztgevc_ called\");\n    return NULL;\n}\n\nvoid* ztgex2(void)\n{\n    if (verbose) puts(\"STUB: ztgex2 called\");\n    return NULL;\n}\n\nvoid* ztgex2_(void)\n{\n    if (verbose) puts(\"STUB: ztgex2_ called\");\n    return NULL;\n}\n\nvoid* ztgexc(void)\n{\n    if (verbose) puts(\"STUB: ztgexc called\");\n    return NULL;\n}\n\nvoid* ztgexc_(void)\n{\n    if (verbose) puts(\"STUB: ztgexc_ called\");\n    return NULL;\n}\n\nvoid* ztgsen(void)\n{\n    if (verbose) puts(\"STUB: ztgsen called\");\n    return NULL;\n}\n\nvoid* ztgsen_(void)\n{\n    if (verbose) puts(\"STUB: ztgsen_ called\");\n    return NULL;\n}\n\nvoid* ztgsja(void)\n{\n    if (verbose) puts(\"STUB: ztgsja called\");\n    return NULL;\n}\n\nvoid* ztgsja_(void)\n{\n    if (verbose) puts(\"STUB: ztgsja_ called\");\n    return NULL;\n}\n\nvoid* ztgsna(void)\n{\n    if (verbose) puts(\"STUB: ztgsna called\");\n    return NULL;\n}\n\nvoid* ztgsna_(void)\n{\n    if (verbose) puts(\"STUB: ztgsna_ called\");\n    return NULL;\n}\n\nvoid* ztgsy2(void)\n{\n    if (verbose) puts(\"STUB: ztgsy2 called\");\n    return NULL;\n}\n\nvoid* ztgsy2_(void)\n{\n    if (verbose) puts(\"STUB: ztgsy2_ called\");\n    return NULL;\n}\n\nvoid* ztgsyl(void)\n{\n    if (verbose) puts(\"STUB: ztgsyl called\");\n    return NULL;\n}\n\nvoid* ztgsyl_(void)\n{\n    if (verbose) puts(\"STUB: ztgsyl_ called\");\n    return NULL;\n}\n\nvoid* ztpcon(void)\n{\n    if (verbose) puts(\"STUB: ztpcon called\");\n    return NULL;\n}\n\nvoid* ztpcon_(void)\n{\n    if (verbose) puts(\"STUB: ztpcon_ called\");\n    return NULL;\n}\n\nvoid* ztprfs(void)\n{\n    if (verbose) puts(\"STUB: ztprfs called\");\n    return NULL;\n}\n\nvoid* ztprfs_(void)\n{\n    if (verbose) puts(\"STUB: ztprfs_ called\");\n    return NULL;\n}\n\nvoid* ztptri(void)\n{\n    if (verbose) puts(\"STUB: ztptri called\");\n    return NULL;\n}\n\nvoid* ztptri_(void)\n{\n    if (verbose) puts(\"STUB: ztptri_ called\");\n    return NULL;\n}\n\nvoid* ztptrs(void)\n{\n    if (verbose) puts(\"STUB: ztptrs called\");\n    return NULL;\n}\n\nvoid* ztptrs_(void)\n{\n    if (verbose) puts(\"STUB: ztptrs_ called\");\n    return NULL;\n}\n\nvoid* ztpttf(void)\n{\n    if (verbose) puts(\"STUB: ztpttf called\");\n    return NULL;\n}\n\nvoid* ztpttf_(void)\n{\n    if (verbose) puts(\"STUB: ztpttf_ called\");\n    return NULL;\n}\n\nvoid* ztpttr(void)\n{\n    if (verbose) puts(\"STUB: ztpttr called\");\n    return NULL;\n}\n\nvoid* ztpttr_(void)\n{\n    if (verbose) puts(\"STUB: ztpttr_ called\");\n    return NULL;\n}\n\nvoid* ztrcon(void)\n{\n    if (verbose) puts(\"STUB: ztrcon called\");\n    return NULL;\n}\n\nvoid* ztrcon_(void)\n{\n    if (verbose) puts(\"STUB: ztrcon_ called\");\n    return NULL;\n}\n\nvoid* ztrevc(void)\n{\n    if (verbose) puts(\"STUB: ztrevc called\");\n    return NULL;\n}\n\nvoid* ztrevc_(void)\n{\n    if (verbose) puts(\"STUB: ztrevc_ called\");\n    return NULL;\n}\n\nvoid* ztrexc(void)\n{\n    if (verbose) puts(\"STUB: ztrexc called\");\n    return NULL;\n}\n\nvoid* ztrexc_(void)\n{\n    if (verbose) puts(\"STUB: ztrexc_ called\");\n    return NULL;\n}\n\nvoid* ztrrfs(void)\n{\n    if (verbose) puts(\"STUB: ztrrfs called\");\n    return NULL;\n}\n\nvoid* ztrrfs_(void)\n{\n    if (verbose) puts(\"STUB: ztrrfs_ called\");\n    return NULL;\n}\n\nvoid* ztrsen(void)\n{\n    if (verbose) puts(\"STUB: ztrsen called\");\n    return NULL;\n}\n\nvoid* ztrsen_(void)\n{\n    if (verbose) puts(\"STUB: ztrsen_ called\");\n    return NULL;\n}\n\nvoid* ztrsna(void)\n{\n    if (verbose) puts(\"STUB: ztrsna called\");\n    return NULL;\n}\n\nvoid* ztrsna_(void)\n{\n    if (verbose) puts(\"STUB: ztrsna_ called\");\n    return NULL;\n}\n\nvoid* ztrsyl(void)\n{\n    if (verbose) puts(\"STUB: ztrsyl called\");\n    return NULL;\n}\n\nvoid* ztrsyl_(void)\n{\n    if (verbose) puts(\"STUB: ztrsyl_ called\");\n    return NULL;\n}\n\nvoid* ztrti2(void)\n{\n    if (verbose) puts(\"STUB: ztrti2 called\");\n    return NULL;\n}\n\nvoid* ztrti2_(void)\n{\n    if (verbose) puts(\"STUB: ztrti2_ called\");\n    return NULL;\n}\n\nvoid* ztrtri(void)\n{\n    if (verbose) puts(\"STUB: ztrtri called\");\n    return NULL;\n}\n\nvoid* ztrtri_(void)\n{\n    if (verbose) puts(\"STUB: ztrtri_ called\");\n    return NULL;\n}\n\nvoid* ztrtrs(void)\n{\n    if (verbose) puts(\"STUB: ztrtrs called\");\n    return NULL;\n}\n\nvoid* ztrtrs_(void)\n{\n    if (verbose) puts(\"STUB: ztrtrs_ called\");\n    return NULL;\n}\n\nvoid* ztrttf(void)\n{\n    if (verbose) puts(\"STUB: ztrttf called\");\n    return NULL;\n}\n\nvoid* ztrttf_(void)\n{\n    if (verbose) puts(\"STUB: ztrttf_ called\");\n    return NULL;\n}\n\nvoid* ztrttp(void)\n{\n    if (verbose) puts(\"STUB: ztrttp called\");\n    return NULL;\n}\n\nvoid* ztrttp_(void)\n{\n    if (verbose) puts(\"STUB: ztrttp_ called\");\n    return NULL;\n}\n\nvoid* ztzrqf(void)\n{\n    if (verbose) puts(\"STUB: ztzrqf called\");\n    return NULL;\n}\n\nvoid* ztzrqf_(void)\n{\n    if (verbose) puts(\"STUB: ztzrqf_ called\");\n    return NULL;\n}\n\nvoid* ztzrzf(void)\n{\n    if (verbose) puts(\"STUB: ztzrzf called\");\n    return NULL;\n}\n\nvoid* ztzrzf_(void)\n{\n    if (verbose) puts(\"STUB: ztzrzf_ called\");\n    return NULL;\n}\n\nvoid* zung2l(void)\n{\n    if (verbose) puts(\"STUB: zung2l called\");\n    return NULL;\n}\n\nvoid* zung2l_(void)\n{\n    if (verbose) puts(\"STUB: zung2l_ called\");\n    return NULL;\n}\n\nvoid* zung2r(void)\n{\n    if (verbose) puts(\"STUB: zung2r called\");\n    return NULL;\n}\n\nvoid* zung2r_(void)\n{\n    if (verbose) puts(\"STUB: zung2r_ called\");\n    return NULL;\n}\n\nvoid* zungbr(void)\n{\n    if (verbose) puts(\"STUB: zungbr called\");\n    return NULL;\n}\n\nvoid* zungbr_(void)\n{\n    if (verbose) puts(\"STUB: zungbr_ called\");\n    return NULL;\n}\n\nvoid* zunghr(void)\n{\n    if (verbose) puts(\"STUB: zunghr called\");\n    return NULL;\n}\n\nvoid* zunghr_(void)\n{\n    if (verbose) puts(\"STUB: zunghr_ called\");\n    return NULL;\n}\n\nvoid* zungl2(void)\n{\n    if (verbose) puts(\"STUB: zungl2 called\");\n    return NULL;\n}\n\nvoid* zungl2_(void)\n{\n    if (verbose) puts(\"STUB: zungl2_ called\");\n    return NULL;\n}\n\nvoid* zunglq(void)\n{\n    if (verbose) puts(\"STUB: zunglq called\");\n    return NULL;\n}\n\nvoid* zunglq_(void)\n{\n    if (verbose) puts(\"STUB: zunglq_ called\");\n    return NULL;\n}\n\nvoid* zungql(void)\n{\n    if (verbose) puts(\"STUB: zungql called\");\n    return NULL;\n}\n\nvoid* zungql_(void)\n{\n    if (verbose) puts(\"STUB: zungql_ called\");\n    return NULL;\n}\n\nvoid* zungqr(void)\n{\n    if (verbose) puts(\"STUB: zungqr called\");\n    return NULL;\n}\n\nvoid* zungqr_(void)\n{\n    if (verbose) puts(\"STUB: zungqr_ called\");\n    return NULL;\n}\n\nvoid* zungr2(void)\n{\n    if (verbose) puts(\"STUB: zungr2 called\");\n    return NULL;\n}\n\nvoid* zungr2_(void)\n{\n    if (verbose) puts(\"STUB: zungr2_ called\");\n    return NULL;\n}\n\nvoid* zungrq(void)\n{\n    if (verbose) puts(\"STUB: zungrq called\");\n    return NULL;\n}\n\nvoid* zungrq_(void)\n{\n    if (verbose) puts(\"STUB: zungrq_ called\");\n    return NULL;\n}\n\nvoid* zungtr(void)\n{\n    if (verbose) puts(\"STUB: zungtr called\");\n    return NULL;\n}\n\nvoid* zungtr_(void)\n{\n    if (verbose) puts(\"STUB: zungtr_ called\");\n    return NULL;\n}\n\nvoid* zunm2l(void)\n{\n    if (verbose) puts(\"STUB: zunm2l called\");\n    return NULL;\n}\n\nvoid* zunm2l_(void)\n{\n    if (verbose) puts(\"STUB: zunm2l_ called\");\n    return NULL;\n}\n\nvoid* zunm2r(void)\n{\n    if (verbose) puts(\"STUB: zunm2r called\");\n    return NULL;\n}\n\nvoid* zunm2r_(void)\n{\n    if (verbose) puts(\"STUB: zunm2r_ called\");\n    return NULL;\n}\n\nvoid* zunmbr(void)\n{\n    if (verbose) puts(\"STUB: zunmbr called\");\n    return NULL;\n}\n\nvoid* zunmbr_(void)\n{\n    if (verbose) puts(\"STUB: zunmbr_ called\");\n    return NULL;\n}\n\nvoid* zunmhr(void)\n{\n    if (verbose) puts(\"STUB: zunmhr called\");\n    return NULL;\n}\n\nvoid* zunmhr_(void)\n{\n    if (verbose) puts(\"STUB: zunmhr_ called\");\n    return NULL;\n}\n\nvoid* zunml2(void)\n{\n    if (verbose) puts(\"STUB: zunml2 called\");\n    return NULL;\n}\n\nvoid* zunml2_(void)\n{\n    if (verbose) puts(\"STUB: zunml2_ called\");\n    return NULL;\n}\n\nvoid* zunmlq(void)\n{\n    if (verbose) puts(\"STUB: zunmlq called\");\n    return NULL;\n}\n\nvoid* zunmlq_(void)\n{\n    if (verbose) puts(\"STUB: zunmlq_ called\");\n    return NULL;\n}\n\nvoid* zunmql(void)\n{\n    if (verbose) puts(\"STUB: zunmql called\");\n    return NULL;\n}\n\nvoid* zunmql_(void)\n{\n    if (verbose) puts(\"STUB: zunmql_ called\");\n    return NULL;\n}\n\nvoid* zunmqr(void)\n{\n    if (verbose) puts(\"STUB: zunmqr called\");\n    return NULL;\n}\n\nvoid* zunmqr_(void)\n{\n    if (verbose) puts(\"STUB: zunmqr_ called\");\n    return NULL;\n}\n\nvoid* zunmr2(void)\n{\n    if (verbose) puts(\"STUB: zunmr2 called\");\n    return NULL;\n}\n\nvoid* zunmr2_(void)\n{\n    if (verbose) puts(\"STUB: zunmr2_ called\");\n    return NULL;\n}\n\nvoid* zunmr3(void)\n{\n    if (verbose) puts(\"STUB: zunmr3 called\");\n    return NULL;\n}\n\nvoid* zunmr3_(void)\n{\n    if (verbose) puts(\"STUB: zunmr3_ called\");\n    return NULL;\n}\n\nvoid* zunmrq(void)\n{\n    if (verbose) puts(\"STUB: zunmrq called\");\n    return NULL;\n}\n\nvoid* zunmrq_(void)\n{\n    if (verbose) puts(\"STUB: zunmrq_ called\");\n    return NULL;\n}\n\nvoid* zunmrz(void)\n{\n    if (verbose) puts(\"STUB: zunmrz called\");\n    return NULL;\n}\n\nvoid* zunmrz_(void)\n{\n    if (verbose) puts(\"STUB: zunmrz_ called\");\n    return NULL;\n}\n\nvoid* zunmtr(void)\n{\n    if (verbose) puts(\"STUB: zunmtr called\");\n    return NULL;\n}\n\nvoid* zunmtr_(void)\n{\n    if (verbose) puts(\"STUB: zunmtr_ called\");\n    return NULL;\n}\n\nvoid* zupgtr(void)\n{\n    if (verbose) puts(\"STUB: zupgtr called\");\n    return NULL;\n}\n\nvoid* zupgtr_(void)\n{\n    if (verbose) puts(\"STUB: zupgtr_ called\");\n    return NULL;\n}\n\nvoid* zupmtr(void)\n{\n    if (verbose) puts(\"STUB: zupmtr called\");\n    return NULL;\n}\n\nvoid* zupmtr_(void)\n{\n    if (verbose) puts(\"STUB: zupmtr_ called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/LinearAlgebra/CMakeLists.txt",
    "content": "project(LinearAlgebra)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nadd_darling_library(LinearAlgebra SHARED\n    src/LinearAlgebra.m\n    src/OS_la_object.m\n)\nmake_fat(LinearAlgebra)\ntarget_link_libraries(LinearAlgebra system objc Foundation)\ninstall(TARGETS LinearAlgebra DESTINATION libexec/darling/usr/lib)\n\nset_property(TARGET LinearAlgebra PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET LinearAlgebra PROPERTY DYLIB_BUILD_NAME libLinearAlgebra.dylib)\ninstall(TARGETS LinearAlgebra DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libLinearAlgebra.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libLinearAlgebra.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/LinearAlgebra/include/LinearAlgebra/LinearAlgebra.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _LinearAlgebra_H_\n#define _LinearAlgebra_H_\n\n#import <Foundation/Foundation.h>\n\n#import <LinearAlgebra/OS_la_object.h>\n#import <LinearAlgebra/OS_la_object.h>\n\nvoid* la_add_attributes(void);\nvoid* la_diagonal_matrix_from_vector(void);\nvoid* la_difference(void);\nvoid* la_elementwise_product(void);\nvoid* la_identity_matrix(void);\nvoid* la_inner_product(void);\nvoid* la_matrix_cols(void);\nvoid* la_matrix_from_double_buffer(void);\nvoid* la_matrix_from_double_buffer_nocopy(void);\nvoid* la_matrix_from_float_buffer(void);\nvoid* la_matrix_from_float_buffer_nocopy(void);\nvoid* la_matrix_from_splat(void);\nvoid* la_matrix_product(void);\nvoid* la_matrix_rows(void);\nvoid* la_matrix_slice(void);\nvoid* la_matrix_to_double_buffer(void);\nvoid* la_matrix_to_float_buffer(void);\nvoid* la_norm_as_double(void);\nvoid* la_norm_as_float(void);\nvoid* la_normalized_vector(void);\nvoid* la_outer_product(void);\nvoid* la_release(void);\nvoid* la_remove_attributes(void);\nvoid* la_retain(void);\nvoid* la_scale_with_double(void);\nvoid* la_scale_with_float(void);\nvoid* la_solve(void);\nvoid* la_splat_from_double(void);\nvoid* la_splat_from_float(void);\nvoid* la_splat_from_matrix_element(void);\nvoid* la_splat_from_vector_element(void);\nvoid* la_status(void);\nvoid* la_sum(void);\nvoid* la_transpose(void);\nvoid* la_vector_from_matrix_col(void);\nvoid* la_vector_from_matrix_diagonal(void);\nvoid* la_vector_from_matrix_row(void);\nvoid* la_vector_from_splat(void);\nvoid* la_vector_length(void);\nvoid* la_vector_slice(void);\nvoid* la_vector_to_double_buffer(void);\nvoid* la_vector_to_float_buffer(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/LinearAlgebra/include/LinearAlgebra/OS_la_object.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface OS_la_object : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/LinearAlgebra/src/LinearAlgebra.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <LinearAlgebra/LinearAlgebra.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* la_add_attributes(void)\n{\n    if (verbose) puts(\"STUB: la_add_attributes called\");\n    return NULL;\n}\n\nvoid* la_diagonal_matrix_from_vector(void)\n{\n    if (verbose) puts(\"STUB: la_diagonal_matrix_from_vector called\");\n    return NULL;\n}\n\nvoid* la_difference(void)\n{\n    if (verbose) puts(\"STUB: la_difference called\");\n    return NULL;\n}\n\nvoid* la_elementwise_product(void)\n{\n    if (verbose) puts(\"STUB: la_elementwise_product called\");\n    return NULL;\n}\n\nvoid* la_identity_matrix(void)\n{\n    if (verbose) puts(\"STUB: la_identity_matrix called\");\n    return NULL;\n}\n\nvoid* la_inner_product(void)\n{\n    if (verbose) puts(\"STUB: la_inner_product called\");\n    return NULL;\n}\n\nvoid* la_matrix_cols(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_cols called\");\n    return NULL;\n}\n\nvoid* la_matrix_from_double_buffer(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_from_double_buffer called\");\n    return NULL;\n}\n\nvoid* la_matrix_from_double_buffer_nocopy(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_from_double_buffer_nocopy called\");\n    return NULL;\n}\n\nvoid* la_matrix_from_float_buffer(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_from_float_buffer called\");\n    return NULL;\n}\n\nvoid* la_matrix_from_float_buffer_nocopy(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_from_float_buffer_nocopy called\");\n    return NULL;\n}\n\nvoid* la_matrix_from_splat(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_from_splat called\");\n    return NULL;\n}\n\nvoid* la_matrix_product(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_product called\");\n    return NULL;\n}\n\nvoid* la_matrix_rows(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_rows called\");\n    return NULL;\n}\n\nvoid* la_matrix_slice(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_slice called\");\n    return NULL;\n}\n\nvoid* la_matrix_to_double_buffer(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_to_double_buffer called\");\n    return NULL;\n}\n\nvoid* la_matrix_to_float_buffer(void)\n{\n    if (verbose) puts(\"STUB: la_matrix_to_float_buffer called\");\n    return NULL;\n}\n\nvoid* la_norm_as_double(void)\n{\n    if (verbose) puts(\"STUB: la_norm_as_double called\");\n    return NULL;\n}\n\nvoid* la_norm_as_float(void)\n{\n    if (verbose) puts(\"STUB: la_norm_as_float called\");\n    return NULL;\n}\n\nvoid* la_normalized_vector(void)\n{\n    if (verbose) puts(\"STUB: la_normalized_vector called\");\n    return NULL;\n}\n\nvoid* la_outer_product(void)\n{\n    if (verbose) puts(\"STUB: la_outer_product called\");\n    return NULL;\n}\n\nvoid* la_release(void)\n{\n    if (verbose) puts(\"STUB: la_release called\");\n    return NULL;\n}\n\nvoid* la_remove_attributes(void)\n{\n    if (verbose) puts(\"STUB: la_remove_attributes called\");\n    return NULL;\n}\n\nvoid* la_retain(void)\n{\n    if (verbose) puts(\"STUB: la_retain called\");\n    return NULL;\n}\n\nvoid* la_scale_with_double(void)\n{\n    if (verbose) puts(\"STUB: la_scale_with_double called\");\n    return NULL;\n}\n\nvoid* la_scale_with_float(void)\n{\n    if (verbose) puts(\"STUB: la_scale_with_float called\");\n    return NULL;\n}\n\nvoid* la_solve(void)\n{\n    if (verbose) puts(\"STUB: la_solve called\");\n    return NULL;\n}\n\nvoid* la_splat_from_double(void)\n{\n    if (verbose) puts(\"STUB: la_splat_from_double called\");\n    return NULL;\n}\n\nvoid* la_splat_from_float(void)\n{\n    if (verbose) puts(\"STUB: la_splat_from_float called\");\n    return NULL;\n}\n\nvoid* la_splat_from_matrix_element(void)\n{\n    if (verbose) puts(\"STUB: la_splat_from_matrix_element called\");\n    return NULL;\n}\n\nvoid* la_splat_from_vector_element(void)\n{\n    if (verbose) puts(\"STUB: la_splat_from_vector_element called\");\n    return NULL;\n}\n\nvoid* la_status(void)\n{\n    if (verbose) puts(\"STUB: la_status called\");\n    return NULL;\n}\n\nvoid* la_sum(void)\n{\n    if (verbose) puts(\"STUB: la_sum called\");\n    return NULL;\n}\n\nvoid* la_transpose(void)\n{\n    if (verbose) puts(\"STUB: la_transpose called\");\n    return NULL;\n}\n\nvoid* la_vector_from_matrix_col(void)\n{\n    if (verbose) puts(\"STUB: la_vector_from_matrix_col called\");\n    return NULL;\n}\n\nvoid* la_vector_from_matrix_diagonal(void)\n{\n    if (verbose) puts(\"STUB: la_vector_from_matrix_diagonal called\");\n    return NULL;\n}\n\nvoid* la_vector_from_matrix_row(void)\n{\n    if (verbose) puts(\"STUB: la_vector_from_matrix_row called\");\n    return NULL;\n}\n\nvoid* la_vector_from_splat(void)\n{\n    if (verbose) puts(\"STUB: la_vector_from_splat called\");\n    return NULL;\n}\n\nvoid* la_vector_length(void)\n{\n    if (verbose) puts(\"STUB: la_vector_length called\");\n    return NULL;\n}\n\nvoid* la_vector_slice(void)\n{\n    if (verbose) puts(\"STUB: la_vector_slice called\");\n    return NULL;\n}\n\nvoid* la_vector_to_double_buffer(void)\n{\n    if (verbose) puts(\"STUB: la_vector_to_double_buffer called\");\n    return NULL;\n}\n\nvoid* la_vector_to_float_buffer(void)\n{\n    if (verbose) puts(\"STUB: la_vector_to_float_buffer called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/LinearAlgebra/src/OS_la_object.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <LinearAlgebra/OS_la_object.h>\n\n@implementation OS_la_object\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/Quadrature/CMakeLists.txt",
    "content": "project(Quadrature)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nadd_darling_library(Quadrature SHARED\n    src/Quadrature.c\n)\nmake_fat(Quadrature)\ntarget_link_libraries(Quadrature system)\ninstall(TARGETS Quadrature DESTINATION libexec/darling/usr/lib)\n\nset_property(TARGET Quadrature PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET Quadrature PROPERTY DYLIB_BUILD_NAME libQuadrature.dylib)\ninstall(TARGETS Quadrature DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libQuadrature.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libQuadrature.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/Quadrature/include/Quadrature/Quadrature.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Quadrature_H_\n#define _Quadrature_H_\n\nvoid* quadrature_integrate(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/Quadrature/src/Quadrature.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Quadrature/Quadrature.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* quadrature_integrate(void)\n{\n    if (verbose) puts(\"STUB: quadrature_integrate called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/Sparse/CMakeLists.txt",
    "content": "project(Sparse)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nadd_darling_library(Sparse SHARED\n    src/Sparse.c\n)\nmake_fat(Sparse)\ntarget_link_libraries(Sparse system)\ninstall(TARGETS Sparse DESTINATION libexec/darling/usr/lib)\n\nset_property(TARGET Sparse PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET Sparse PROPERTY DYLIB_BUILD_NAME libSparse.dylib)\ninstall(TARGETS Sparse DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libSparse.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libSparse.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/Sparse/include/Sparse/Sparse.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Sparse_H_\n#define _Sparse_H_\n\nvoid* _SparseCGIterate_Double(void);\nvoid* _SparseCGIterate_Float(void);\nvoid* _SparseCGSolve_Double(void);\nvoid* _SparseCGSolve_Float(void);\nvoid* _SparseConvertFromCoordinate_Double(void);\nvoid* _SparseConvertFromCoordinate_Float(void);\nvoid* _SparseConvertFromOpaque_Double(void);\nvoid* _SparseConvertFromOpaque_Float(void);\nvoid* _SparseCreatePreconditioner_Double(void);\nvoid* _SparseCreatePreconditioner_Float(void);\nvoid* _SparseDestroyOpaqueNumeric_Double(void);\nvoid* _SparseDestroyOpaqueNumeric_Float(void);\nvoid* _SparseDestroyOpaqueSymbolic(void);\nvoid* _SparseFactorQR_Double(void);\nvoid* _SparseFactorQR_Float(void);\nvoid* _SparseFactorSymmetric_Double(void);\nvoid* _SparseFactorSymmetric_Float(void);\nvoid* _SparseGMRESIterate_Double(void);\nvoid* _SparseGMRESIterate_Float(void);\nvoid* _SparseGMRESSolve_Double(void);\nvoid* _SparseGMRESSolve_Float(void);\nvoid* _SparseGetIterativeStateSize_Double(void);\nvoid* _SparseGetIterativeStateSize_Float(void);\nvoid* _SparseGetOptionsFromNumericFactor_Double(void);\nvoid* _SparseGetOptionsFromNumericFactor_Float(void);\nvoid* _SparseGetOptionsFromSymbolicFactor(void);\nvoid* _SparseGetWorkspaceRequired_Double(void);\nvoid* _SparseGetWorkspaceRequired_Float(void);\nvoid* _SparseLSMRIterate_Double(void);\nvoid* _SparseLSMRIterate_Float(void);\nvoid* _SparseLSMRSolve_Double(void);\nvoid* _SparseLSMRSolve_Float(void);\nvoid* _SparseMultiplySubfactor_Double(void);\nvoid* _SparseMultiplySubfactor_Float(void);\nvoid* _SparseNumericFactorQR_Double(void);\nvoid* _SparseNumericFactorQR_Float(void);\nvoid* _SparseNumericFactorSymmetric_Double(void);\nvoid* _SparseNumericFactorSymmetric_Float(void);\nvoid* _SparseRefactorQR_Double(void);\nvoid* _SparseRefactorQR_Float(void);\nvoid* _SparseRefactorSymmetric_Double(void);\nvoid* _SparseRefactorSymmetric_Float(void);\nvoid* _SparseReleaseOpaquePreconditioner_Double(void);\nvoid* _SparseReleaseOpaquePreconditioner_Float(void);\nvoid* _SparseRetainNumeric_Double(void);\nvoid* _SparseRetainNumeric_Float(void);\nvoid* _SparseRetainSymbolic(void);\nvoid* _SparseSolveOpaque_Double(void);\nvoid* _SparseSolveOpaque_Float(void);\nvoid* _SparseSolveSubfactor_Double(void);\nvoid* _SparseSolveSubfactor_Float(void);\nvoid* _SparseSpMV_Double(void);\nvoid* _SparseSpMV_Float(void);\nvoid* _SparseSymbolicFactorQR(void);\nvoid* _SparseSymbolicFactorSymmetric(void);\nvoid* _SparseTrap(void);\nvoid* _Z10SparseLSMR17SparseLSMROptions(void);\nvoid* _Z10SparseLSMRv(void);\nvoid* _Z11SparseGMRES18SparseGMRESOptions(void);\nvoid* _Z11SparseGMRESv(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_32SparseOpaquePreconditioner_Float(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_i(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_32SparseOpaquePreconditioner_Float(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_i(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_33SparseOpaquePreconditioner_Double(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_i(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_33SparseOpaquePreconditioner_Double(void);\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_i(void);\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS1_ES1_S1_(void);\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS1_ES1_S1_32SparseOpaquePreconditioner_Float(void);\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseVector_FloatS1_ES1_S1_(void);\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseVector_FloatS1_ES1_S1_32SparseOpaquePreconditioner_Float(void);\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS1_ES1_S1_(void);\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS1_ES1_S1_33SparseOpaquePreconditioner_Double(void);\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseVector_DoubleS1_ES1_S1_(void);\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseVector_DoubleS1_ES1_S1_33SparseOpaquePreconditioner_Double(void);\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_Float(void);\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatPv(void);\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_(void);\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_Pv(void);\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_Float(void);\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatPv(void);\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_(void);\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_Pv(void);\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_Double(void);\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoublePv(void);\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_(void);\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_Pv(void);\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_Double(void);\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoublePv(void);\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_(void);\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_Pv(void);\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_Float(void);\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatPv(void);\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatS0_(void);\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatS0_Pv(void);\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_Float(void);\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatPv(void);\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatS0_(void);\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatS0_Pv(void);\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_Double(void);\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoublePv(void);\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoubleS0_(void);\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoubleS0_Pv(void);\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_Double(void);\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoublePv(void);\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoubleS0_(void);\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoubleS0_Pv(void);\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float(void);\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float26SparseNumericFactorOptions(void);\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float26SparseNumericFactorOptionsPvS2_(void);\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double(void);\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double26SparseNumericFactorOptions(void);\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double26SparseNumericFactorOptionsPvS2_(void);\nvoid* _Z12SparseFactorh18SparseMatrix_Float(void);\nvoid* _Z12SparseFactorh18SparseMatrix_Float27SparseSymbolicFactorOptions26SparseNumericFactorOptions(void);\nvoid* _Z12SparseFactorh19SparseMatrix_Double(void);\nvoid* _Z12SparseFactorh19SparseMatrix_Double27SparseSymbolicFactorOptions26SparseNumericFactorOptions(void);\nvoid* _Z12SparseFactorh21SparseMatrixStructure(void);\nvoid* _Z12SparseFactorh21SparseMatrixStructure27SparseSymbolicFactorOptions(void);\nvoid* _Z12SparseRetain27SparseOpaqueSubfactor_Float(void);\nvoid* _Z12SparseRetain28SparseOpaqueSubfactor_Double(void);\nvoid* _Z12SparseRetain31SparseOpaqueFactorization_Float(void);\nvoid* _Z12SparseRetain32SparseOpaqueFactorization_Double(void);\nvoid* _Z12SparseRetain33SparseOpaqueSymbolicFactorization(void);\nvoid* _Z13SparseCleanup18SparseMatrix_Float(void);\nvoid* _Z13SparseCleanup19SparseMatrix_Double(void);\nvoid* _Z13SparseCleanup27SparseOpaqueSubfactor_Float(void);\nvoid* _Z13SparseCleanup28SparseOpaqueSubfactor_Double(void);\nvoid* _Z13SparseCleanup31SparseOpaqueFactorization_Float(void);\nvoid* _Z13SparseCleanup32SparseOpaqueFactorization_Double(void);\nvoid* _Z13SparseCleanup32SparseOpaquePreconditioner_Float(void);\nvoid* _Z13SparseCleanup33SparseOpaquePreconditioner_Double(void);\nvoid* _Z13SparseCleanup33SparseOpaqueSymbolicFactorization(void);\nvoid* _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS4_ES4_S4_S4_(void);\nvoid* _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS4_ES4_S4_S4_32SparseOpaquePreconditioner_Float(void);\nvoid* _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS4_ES4_S4_S4_(void);\nvoid* _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS4_ES4_S4_S4_33SparseOpaquePreconditioner_Double(void);\nvoid* _Z14SparseMultiply18SparseMatrix_Float17DenseMatrix_FloatS0_(void);\nvoid* _Z14SparseMultiply18SparseMatrix_Float17DenseVector_FloatS0_(void);\nvoid* _Z14SparseMultiply19SparseMatrix_Double18DenseMatrix_DoubleS0_(void);\nvoid* _Z14SparseMultiply19SparseMatrix_Double18DenseVector_DoubleS0_(void);\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_Float(void);\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatPv(void);\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_(void);\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_Pv(void);\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_Float(void);\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatPv(void);\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_(void);\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_Pv(void);\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_Double(void);\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoublePv(void);\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_(void);\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_Pv(void);\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_Double(void);\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoublePv(void);\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_(void);\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_Pv(void);\nvoid* _Z14SparseMultiplyd19SparseMatrix_Double18DenseMatrix_DoubleS0_(void);\nvoid* _Z14SparseMultiplyd19SparseMatrix_Double18DenseVector_DoubleS0_(void);\nvoid* _Z14SparseMultiplyf18SparseMatrix_Float17DenseMatrix_FloatS0_(void);\nvoid* _Z14SparseMultiplyf18SparseMatrix_Float17DenseVector_FloatS0_(void);\nvoid* _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float(void);\nvoid* _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float26SparseNumericFactorOptions(void);\nvoid* _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float26SparseNumericFactorOptionsPv(void);\nvoid* _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_FloatPv(void);\nvoid* _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double(void);\nvoid* _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double26SparseNumericFactorOptions(void);\nvoid* _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double26SparseNumericFactorOptionsPv(void);\nvoid* _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_DoublePv(void);\nvoid* _Z17SparseMultiplyAdd18SparseMatrix_Float17DenseMatrix_FloatS0_(void);\nvoid* _Z17SparseMultiplyAdd18SparseMatrix_Float17DenseVector_FloatS0_(void);\nvoid* _Z17SparseMultiplyAdd19SparseMatrix_Double18DenseMatrix_DoubleS0_(void);\nvoid* _Z17SparseMultiplyAdd19SparseMatrix_Double18DenseVector_DoubleS0_(void);\nvoid* _Z17SparseMultiplyAddd19SparseMatrix_Double18DenseMatrix_DoubleS0_(void);\nvoid* _Z17SparseMultiplyAddd19SparseMatrix_Double18DenseVector_DoubleS0_(void);\nvoid* _Z17SparseMultiplyAddf18SparseMatrix_Float17DenseMatrix_FloatS0_(void);\nvoid* _Z17SparseMultiplyAddf18SparseMatrix_Float17DenseVector_FloatS0_(void);\nvoid* _Z18SparseGetTranspose18SparseMatrix_Float(void);\nvoid* _Z18SparseGetTranspose19SparseMatrix_Double(void);\nvoid* _Z18SparseGetTranspose27SparseOpaqueSubfactor_Float(void);\nvoid* _Z18SparseGetTranspose28SparseOpaqueSubfactor_Double(void);\nvoid* _Z18SparseGetTranspose31SparseOpaqueFactorization_Float(void);\nvoid* _Z18SparseGetTranspose32SparseOpaqueFactorization_Double(void);\nvoid* _Z21SparseCreateSubfactorh31SparseOpaqueFactorization_Float(void);\nvoid* _Z21SparseCreateSubfactorh32SparseOpaqueFactorization_Double(void);\nvoid* _Z23SparseConjugateGradient15SparseCGOptions(void);\nvoid* _Z23SparseConjugateGradientv(void);\nvoid* _Z23SparseConvertFromOpaqueP14sparse_m_float(void);\nvoid* _Z23SparseConvertFromOpaqueP15sparse_m_double(void);\nvoid* _Z24SparseGetStateSize_Float21SparseIterativeMethodbiii(void);\nvoid* _Z25SparseGetStateSize_Double21SparseIterativeMethodbiii(void);\nvoid* _Z26SparseCreatePreconditioneri18SparseMatrix_Float(void);\nvoid* _Z26SparseCreatePreconditioneri19SparseMatrix_Double(void);\nvoid* _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKd(void);\nvoid* _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKdPvS4_(void);\nvoid* _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKf(void);\nvoid* _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKfPvS4_(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/Sparse/src/Sparse.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Sparse/Sparse.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* _SparseCGIterate_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseCGIterate_Double called\");\n    return NULL;\n}\n\nvoid* _SparseCGIterate_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseCGIterate_Float called\");\n    return NULL;\n}\n\nvoid* _SparseCGSolve_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseCGSolve_Double called\");\n    return NULL;\n}\n\nvoid* _SparseCGSolve_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseCGSolve_Float called\");\n    return NULL;\n}\n\nvoid* _SparseConvertFromCoordinate_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseConvertFromCoordinate_Double called\");\n    return NULL;\n}\n\nvoid* _SparseConvertFromCoordinate_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseConvertFromCoordinate_Float called\");\n    return NULL;\n}\n\nvoid* _SparseConvertFromOpaque_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseConvertFromOpaque_Double called\");\n    return NULL;\n}\n\nvoid* _SparseConvertFromOpaque_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseConvertFromOpaque_Float called\");\n    return NULL;\n}\n\nvoid* _SparseCreatePreconditioner_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseCreatePreconditioner_Double called\");\n    return NULL;\n}\n\nvoid* _SparseCreatePreconditioner_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseCreatePreconditioner_Float called\");\n    return NULL;\n}\n\nvoid* _SparseDestroyOpaqueNumeric_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseDestroyOpaqueNumeric_Double called\");\n    return NULL;\n}\n\nvoid* _SparseDestroyOpaqueNumeric_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseDestroyOpaqueNumeric_Float called\");\n    return NULL;\n}\n\nvoid* _SparseDestroyOpaqueSymbolic(void)\n{\n    if (verbose) puts(\"STUB: _SparseDestroyOpaqueSymbolic called\");\n    return NULL;\n}\n\nvoid* _SparseFactorQR_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseFactorQR_Double called\");\n    return NULL;\n}\n\nvoid* _SparseFactorQR_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseFactorQR_Float called\");\n    return NULL;\n}\n\nvoid* _SparseFactorSymmetric_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseFactorSymmetric_Double called\");\n    return NULL;\n}\n\nvoid* _SparseFactorSymmetric_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseFactorSymmetric_Float called\");\n    return NULL;\n}\n\nvoid* _SparseGMRESIterate_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseGMRESIterate_Double called\");\n    return NULL;\n}\n\nvoid* _SparseGMRESIterate_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseGMRESIterate_Float called\");\n    return NULL;\n}\n\nvoid* _SparseGMRESSolve_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseGMRESSolve_Double called\");\n    return NULL;\n}\n\nvoid* _SparseGMRESSolve_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseGMRESSolve_Float called\");\n    return NULL;\n}\n\nvoid* _SparseGetIterativeStateSize_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseGetIterativeStateSize_Double called\");\n    return NULL;\n}\n\nvoid* _SparseGetIterativeStateSize_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseGetIterativeStateSize_Float called\");\n    return NULL;\n}\n\nvoid* _SparseGetOptionsFromNumericFactor_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseGetOptionsFromNumericFactor_Double called\");\n    return NULL;\n}\n\nvoid* _SparseGetOptionsFromNumericFactor_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseGetOptionsFromNumericFactor_Float called\");\n    return NULL;\n}\n\nvoid* _SparseGetOptionsFromSymbolicFactor(void)\n{\n    if (verbose) puts(\"STUB: _SparseGetOptionsFromSymbolicFactor called\");\n    return NULL;\n}\n\nvoid* _SparseGetWorkspaceRequired_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseGetWorkspaceRequired_Double called\");\n    return NULL;\n}\n\nvoid* _SparseGetWorkspaceRequired_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseGetWorkspaceRequired_Float called\");\n    return NULL;\n}\n\nvoid* _SparseLSMRIterate_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseLSMRIterate_Double called\");\n    return NULL;\n}\n\nvoid* _SparseLSMRIterate_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseLSMRIterate_Float called\");\n    return NULL;\n}\n\nvoid* _SparseLSMRSolve_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseLSMRSolve_Double called\");\n    return NULL;\n}\n\nvoid* _SparseLSMRSolve_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseLSMRSolve_Float called\");\n    return NULL;\n}\n\nvoid* _SparseMultiplySubfactor_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseMultiplySubfactor_Double called\");\n    return NULL;\n}\n\nvoid* _SparseMultiplySubfactor_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseMultiplySubfactor_Float called\");\n    return NULL;\n}\n\nvoid* _SparseNumericFactorQR_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseNumericFactorQR_Double called\");\n    return NULL;\n}\n\nvoid* _SparseNumericFactorQR_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseNumericFactorQR_Float called\");\n    return NULL;\n}\n\nvoid* _SparseNumericFactorSymmetric_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseNumericFactorSymmetric_Double called\");\n    return NULL;\n}\n\nvoid* _SparseNumericFactorSymmetric_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseNumericFactorSymmetric_Float called\");\n    return NULL;\n}\n\nvoid* _SparseRefactorQR_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseRefactorQR_Double called\");\n    return NULL;\n}\n\nvoid* _SparseRefactorQR_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseRefactorQR_Float called\");\n    return NULL;\n}\n\nvoid* _SparseRefactorSymmetric_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseRefactorSymmetric_Double called\");\n    return NULL;\n}\n\nvoid* _SparseRefactorSymmetric_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseRefactorSymmetric_Float called\");\n    return NULL;\n}\n\nvoid* _SparseReleaseOpaquePreconditioner_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseReleaseOpaquePreconditioner_Double called\");\n    return NULL;\n}\n\nvoid* _SparseReleaseOpaquePreconditioner_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseReleaseOpaquePreconditioner_Float called\");\n    return NULL;\n}\n\nvoid* _SparseRetainNumeric_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseRetainNumeric_Double called\");\n    return NULL;\n}\n\nvoid* _SparseRetainNumeric_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseRetainNumeric_Float called\");\n    return NULL;\n}\n\nvoid* _SparseRetainSymbolic(void)\n{\n    if (verbose) puts(\"STUB: _SparseRetainSymbolic called\");\n    return NULL;\n}\n\nvoid* _SparseSolveOpaque_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseSolveOpaque_Double called\");\n    return NULL;\n}\n\nvoid* _SparseSolveOpaque_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseSolveOpaque_Float called\");\n    return NULL;\n}\n\nvoid* _SparseSolveSubfactor_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseSolveSubfactor_Double called\");\n    return NULL;\n}\n\nvoid* _SparseSolveSubfactor_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseSolveSubfactor_Float called\");\n    return NULL;\n}\n\nvoid* _SparseSpMV_Double(void)\n{\n    if (verbose) puts(\"STUB: _SparseSpMV_Double called\");\n    return NULL;\n}\n\nvoid* _SparseSpMV_Float(void)\n{\n    if (verbose) puts(\"STUB: _SparseSpMV_Float called\");\n    return NULL;\n}\n\nvoid* _SparseSymbolicFactorQR(void)\n{\n    if (verbose) puts(\"STUB: _SparseSymbolicFactorQR called\");\n    return NULL;\n}\n\nvoid* _SparseSymbolicFactorSymmetric(void)\n{\n    if (verbose) puts(\"STUB: _SparseSymbolicFactorSymmetric called\");\n    return NULL;\n}\n\nvoid* _SparseTrap(void)\n{\n    if (verbose) puts(\"STUB: _SparseTrap called\");\n    return NULL;\n}\n\nvoid* _Z10SparseLSMR17SparseLSMROptions(void)\n{\n    if (verbose) puts(\"STUB: _Z10SparseLSMR17SparseLSMROptions called\");\n    return NULL;\n}\n\nvoid* _Z10SparseLSMRv(void)\n{\n    if (verbose) puts(\"STUB: _Z10SparseLSMRv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseGMRES18SparseGMRESOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseGMRES18SparseGMRESOptions called\");\n    return NULL;\n}\n\nvoid* _Z11SparseGMRESv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseGMRESv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_32SparseOpaquePreconditioner_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_32SparseOpaquePreconditioner_Float called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_i(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseMatrix_FloatS1_i called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_32SparseOpaquePreconditioner_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_32SparseOpaquePreconditioner_Float called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_i(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod18SparseMatrix_Float17DenseVector_FloatS1_i called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_33SparseOpaquePreconditioner_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_33SparseOpaquePreconditioner_Double called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_i(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseMatrix_DoubleS1_i called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_33SparseOpaquePreconditioner_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_33SparseOpaquePreconditioner_Double called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_i(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethod19SparseMatrix_Double18DenseVector_DoubleS1_i called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS1_ES1_S1_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS1_ES1_S1_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS1_ES1_S1_32SparseOpaquePreconditioner_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS1_ES1_S1_32SparseOpaquePreconditioner_Float called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseVector_FloatS1_ES1_S1_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseVector_FloatS1_ES1_S1_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseVector_FloatS1_ES1_S1_32SparseOpaquePreconditioner_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE17DenseVector_FloatS1_ES1_S1_32SparseOpaquePreconditioner_Float called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS1_ES1_S1_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS1_ES1_S1_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS1_ES1_S1_33SparseOpaquePreconditioner_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS1_ES1_S1_33SparseOpaquePreconditioner_Double called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseVector_DoubleS1_ES1_S1_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseVector_DoubleS1_ES1_S1_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseVector_DoubleS1_ES1_S1_33SparseOpaquePreconditioner_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve21SparseIterativeMethodU13block_pointerFvb15CBLAS_TRANSPOSE18DenseVector_DoubleS1_ES1_S1_33SparseOpaquePreconditioner_Double called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_Float called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatPv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatPv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_Float called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatPv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatPv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_Double called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoublePv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoublePv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_Double called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoublePv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoublePv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_Float called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatPv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatPv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseMatrix_FloatS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_Float called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatPv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatPv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve31SparseOpaqueFactorization_Float17DenseVector_FloatS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_Double called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoublePv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoublePv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoubleS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseMatrix_DoubleS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_Double called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoublePv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoublePv called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoubleS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z11SparseSolve32SparseOpaqueFactorization_Double18DenseVector_DoubleS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float26SparseNumericFactorOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float26SparseNumericFactorOptions called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float26SparseNumericFactorOptionsPvS2_(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactor33SparseOpaqueSymbolicFactorization18SparseMatrix_Float26SparseNumericFactorOptionsPvS2_ called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double26SparseNumericFactorOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double26SparseNumericFactorOptions called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double26SparseNumericFactorOptionsPvS2_(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactor33SparseOpaqueSymbolicFactorization19SparseMatrix_Double26SparseNumericFactorOptionsPvS2_ called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactorh18SparseMatrix_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactorh18SparseMatrix_Float called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactorh18SparseMatrix_Float27SparseSymbolicFactorOptions26SparseNumericFactorOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactorh18SparseMatrix_Float27SparseSymbolicFactorOptions26SparseNumericFactorOptions called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactorh19SparseMatrix_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactorh19SparseMatrix_Double called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactorh19SparseMatrix_Double27SparseSymbolicFactorOptions26SparseNumericFactorOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactorh19SparseMatrix_Double27SparseSymbolicFactorOptions26SparseNumericFactorOptions called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactorh21SparseMatrixStructure(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactorh21SparseMatrixStructure called\");\n    return NULL;\n}\n\nvoid* _Z12SparseFactorh21SparseMatrixStructure27SparseSymbolicFactorOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseFactorh21SparseMatrixStructure27SparseSymbolicFactorOptions called\");\n    return NULL;\n}\n\nvoid* _Z12SparseRetain27SparseOpaqueSubfactor_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseRetain27SparseOpaqueSubfactor_Float called\");\n    return NULL;\n}\n\nvoid* _Z12SparseRetain28SparseOpaqueSubfactor_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseRetain28SparseOpaqueSubfactor_Double called\");\n    return NULL;\n}\n\nvoid* _Z12SparseRetain31SparseOpaqueFactorization_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseRetain31SparseOpaqueFactorization_Float called\");\n    return NULL;\n}\n\nvoid* _Z12SparseRetain32SparseOpaqueFactorization_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseRetain32SparseOpaqueFactorization_Double called\");\n    return NULL;\n}\n\nvoid* _Z12SparseRetain33SparseOpaqueSymbolicFactorization(void)\n{\n    if (verbose) puts(\"STUB: _Z12SparseRetain33SparseOpaqueSymbolicFactorization called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup18SparseMatrix_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup18SparseMatrix_Float called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup19SparseMatrix_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup19SparseMatrix_Double called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup27SparseOpaqueSubfactor_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup27SparseOpaqueSubfactor_Float called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup28SparseOpaqueSubfactor_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup28SparseOpaqueSubfactor_Double called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup31SparseOpaqueFactorization_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup31SparseOpaqueFactorization_Float called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup32SparseOpaqueFactorization_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup32SparseOpaqueFactorization_Double called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup32SparseOpaquePreconditioner_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup32SparseOpaquePreconditioner_Float called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup33SparseOpaquePreconditioner_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup33SparseOpaquePreconditioner_Double called\");\n    return NULL;\n}\n\nvoid* _Z13SparseCleanup33SparseOpaqueSymbolicFactorization(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseCleanup33SparseOpaqueSymbolicFactorization called\");\n    return NULL;\n}\n\nvoid* _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS4_ES4_S4_S4_(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS4_ES4_S4_S4_ called\");\n    return NULL;\n}\n\nvoid* _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS4_ES4_S4_S4_32SparseOpaquePreconditioner_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE17DenseMatrix_FloatS4_ES4_S4_S4_32SparseOpaquePreconditioner_Float called\");\n    return NULL;\n}\n\nvoid* _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS4_ES4_S4_S4_(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS4_ES4_S4_S4_ called\");\n    return NULL;\n}\n\nvoid* _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS4_ES4_S4_S4_33SparseOpaquePreconditioner_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z13SparseIterate21SparseIterativeMethodiPKbPvU13block_pointerFvb15CBLAS_TRANSPOSE18DenseMatrix_DoubleS4_ES4_S4_S4_33SparseOpaquePreconditioner_Double called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply18SparseMatrix_Float17DenseMatrix_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply18SparseMatrix_Float17DenseMatrix_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply18SparseMatrix_Float17DenseVector_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply18SparseMatrix_Float17DenseVector_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply19SparseMatrix_Double18DenseMatrix_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply19SparseMatrix_Double18DenseMatrix_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply19SparseMatrix_Double18DenseVector_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply19SparseMatrix_Double18DenseVector_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_Float called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatPv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatPv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseMatrix_FloatS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_Float called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatPv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatPv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply27SparseOpaqueSubfactor_Float17DenseVector_FloatS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_Double called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoublePv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoublePv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseMatrix_DoubleS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_Double called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoublePv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoublePv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_Pv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiply28SparseOpaqueSubfactor_Double18DenseVector_DoubleS0_Pv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiplyd19SparseMatrix_Double18DenseMatrix_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiplyd19SparseMatrix_Double18DenseMatrix_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiplyd19SparseMatrix_Double18DenseVector_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiplyd19SparseMatrix_Double18DenseVector_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiplyf18SparseMatrix_Float17DenseMatrix_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiplyf18SparseMatrix_Float17DenseMatrix_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseMultiplyf18SparseMatrix_Float17DenseVector_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseMultiplyf18SparseMatrix_Float17DenseVector_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float called\");\n    return NULL;\n}\n\nvoid* _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float26SparseNumericFactorOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float26SparseNumericFactorOptions called\");\n    return NULL;\n}\n\nvoid* _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float26SparseNumericFactorOptionsPv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_Float26SparseNumericFactorOptionsPv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_FloatPv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseRefactor18SparseMatrix_FloatP31SparseOpaqueFactorization_FloatPv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double called\");\n    return NULL;\n}\n\nvoid* _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double26SparseNumericFactorOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double26SparseNumericFactorOptions called\");\n    return NULL;\n}\n\nvoid* _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double26SparseNumericFactorOptionsPv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_Double26SparseNumericFactorOptionsPv called\");\n    return NULL;\n}\n\nvoid* _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_DoublePv(void)\n{\n    if (verbose) puts(\"STUB: _Z14SparseRefactor19SparseMatrix_DoubleP32SparseOpaqueFactorization_DoublePv called\");\n    return NULL;\n}\n\nvoid* _Z17SparseMultiplyAdd18SparseMatrix_Float17DenseMatrix_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z17SparseMultiplyAdd18SparseMatrix_Float17DenseMatrix_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z17SparseMultiplyAdd18SparseMatrix_Float17DenseVector_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z17SparseMultiplyAdd18SparseMatrix_Float17DenseVector_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z17SparseMultiplyAdd19SparseMatrix_Double18DenseMatrix_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z17SparseMultiplyAdd19SparseMatrix_Double18DenseMatrix_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z17SparseMultiplyAdd19SparseMatrix_Double18DenseVector_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z17SparseMultiplyAdd19SparseMatrix_Double18DenseVector_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z17SparseMultiplyAddd19SparseMatrix_Double18DenseMatrix_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z17SparseMultiplyAddd19SparseMatrix_Double18DenseMatrix_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z17SparseMultiplyAddd19SparseMatrix_Double18DenseVector_DoubleS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z17SparseMultiplyAddd19SparseMatrix_Double18DenseVector_DoubleS0_ called\");\n    return NULL;\n}\n\nvoid* _Z17SparseMultiplyAddf18SparseMatrix_Float17DenseMatrix_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z17SparseMultiplyAddf18SparseMatrix_Float17DenseMatrix_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z17SparseMultiplyAddf18SparseMatrix_Float17DenseVector_FloatS0_(void)\n{\n    if (verbose) puts(\"STUB: _Z17SparseMultiplyAddf18SparseMatrix_Float17DenseVector_FloatS0_ called\");\n    return NULL;\n}\n\nvoid* _Z18SparseGetTranspose18SparseMatrix_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z18SparseGetTranspose18SparseMatrix_Float called\");\n    return NULL;\n}\n\nvoid* _Z18SparseGetTranspose19SparseMatrix_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z18SparseGetTranspose19SparseMatrix_Double called\");\n    return NULL;\n}\n\nvoid* _Z18SparseGetTranspose27SparseOpaqueSubfactor_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z18SparseGetTranspose27SparseOpaqueSubfactor_Float called\");\n    return NULL;\n}\n\nvoid* _Z18SparseGetTranspose28SparseOpaqueSubfactor_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z18SparseGetTranspose28SparseOpaqueSubfactor_Double called\");\n    return NULL;\n}\n\nvoid* _Z18SparseGetTranspose31SparseOpaqueFactorization_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z18SparseGetTranspose31SparseOpaqueFactorization_Float called\");\n    return NULL;\n}\n\nvoid* _Z18SparseGetTranspose32SparseOpaqueFactorization_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z18SparseGetTranspose32SparseOpaqueFactorization_Double called\");\n    return NULL;\n}\n\nvoid* _Z21SparseCreateSubfactorh31SparseOpaqueFactorization_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z21SparseCreateSubfactorh31SparseOpaqueFactorization_Float called\");\n    return NULL;\n}\n\nvoid* _Z21SparseCreateSubfactorh32SparseOpaqueFactorization_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z21SparseCreateSubfactorh32SparseOpaqueFactorization_Double called\");\n    return NULL;\n}\n\nvoid* _Z23SparseConjugateGradient15SparseCGOptions(void)\n{\n    if (verbose) puts(\"STUB: _Z23SparseConjugateGradient15SparseCGOptions called\");\n    return NULL;\n}\n\nvoid* _Z23SparseConjugateGradientv(void)\n{\n    if (verbose) puts(\"STUB: _Z23SparseConjugateGradientv called\");\n    return NULL;\n}\n\nvoid* _Z23SparseConvertFromOpaqueP14sparse_m_float(void)\n{\n    if (verbose) puts(\"STUB: _Z23SparseConvertFromOpaqueP14sparse_m_float called\");\n    return NULL;\n}\n\nvoid* _Z23SparseConvertFromOpaqueP15sparse_m_double(void)\n{\n    if (verbose) puts(\"STUB: _Z23SparseConvertFromOpaqueP15sparse_m_double called\");\n    return NULL;\n}\n\nvoid* _Z24SparseGetStateSize_Float21SparseIterativeMethodbiii(void)\n{\n    if (verbose) puts(\"STUB: _Z24SparseGetStateSize_Float21SparseIterativeMethodbiii called\");\n    return NULL;\n}\n\nvoid* _Z25SparseGetStateSize_Double21SparseIterativeMethodbiii(void)\n{\n    if (verbose) puts(\"STUB: _Z25SparseGetStateSize_Double21SparseIterativeMethodbiii called\");\n    return NULL;\n}\n\nvoid* _Z26SparseCreatePreconditioneri18SparseMatrix_Float(void)\n{\n    if (verbose) puts(\"STUB: _Z26SparseCreatePreconditioneri18SparseMatrix_Float called\");\n    return NULL;\n}\n\nvoid* _Z26SparseCreatePreconditioneri19SparseMatrix_Double(void)\n{\n    if (verbose) puts(\"STUB: _Z26SparseCreatePreconditioneri19SparseMatrix_Double called\");\n    return NULL;\n}\n\nvoid* _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKd(void)\n{\n    if (verbose) puts(\"STUB: _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKd called\");\n    return NULL;\n}\n\nvoid* _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKdPvS4_(void)\n{\n    if (verbose) puts(\"STUB: _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKdPvS4_ called\");\n    return NULL;\n}\n\nvoid* _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKf(void)\n{\n    if (verbose) puts(\"STUB: _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKf called\");\n    return NULL;\n}\n\nvoid* _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKfPvS4_(void)\n{\n    if (verbose) puts(\"STUB: _Z27SparseConvertFromCoordinateiilh18SparseAttributes_tPKiS1_PKfPvS4_ called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/SparseBLAS/CMakeLists.txt",
    "content": "project(SparseBLAS)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nadd_darling_library(SparseBLAS SHARED\n    src/SparseBLAS.c\n)\nmake_fat(SparseBLAS)\ntarget_link_libraries(SparseBLAS system)\ninstall(TARGETS SparseBLAS DESTINATION libexec/darling/usr/lib)\n\nset_property(TARGET SparseBLAS PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET SparseBLAS PROPERTY DYLIB_BUILD_NAME libSparseBLAS.dylib)\ninstall(TARGETS SparseBLAS DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libSparseBLAS.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libSparseBLAS.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/SparseBLAS/include/SparseBLAS/SparseBLAS.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _SparseBLAS_H_\n#define _SparseBLAS_H_\n\nvoid* sparse_commit(void);\nvoid* sparse_elementwise_norm_double(void);\nvoid* sparse_elementwise_norm_float(void);\nvoid* sparse_extract_block_double(void);\nvoid* sparse_extract_block_float(void);\nvoid* sparse_extract_sparse_column_double(void);\nvoid* sparse_extract_sparse_column_float(void);\nvoid* sparse_extract_sparse_row_double(void);\nvoid* sparse_extract_sparse_row_float(void);\nvoid* sparse_get_block_dimension_for_col(void);\nvoid* sparse_get_block_dimension_for_row(void);\nvoid* sparse_get_matrix_nonzero_count(void);\nvoid* sparse_get_matrix_nonzero_count_for_column(void);\nvoid* sparse_get_matrix_nonzero_count_for_row(void);\nvoid* sparse_get_matrix_number_of_columns(void);\nvoid* sparse_get_matrix_number_of_rows(void);\nvoid* sparse_get_matrix_property(void);\nvoid* sparse_get_vector_nonzero_count_double(void);\nvoid* sparse_get_vector_nonzero_count_float(void);\nvoid* sparse_inner_product_dense_double(void);\nvoid* sparse_inner_product_dense_float(void);\nvoid* sparse_inner_product_sparse_double(void);\nvoid* sparse_inner_product_sparse_float(void);\nvoid* sparse_insert_block_double(void);\nvoid* sparse_insert_block_float(void);\nvoid* sparse_insert_col_double(void);\nvoid* sparse_insert_col_float(void);\nvoid* sparse_insert_entries_double(void);\nvoid* sparse_insert_entries_float(void);\nvoid* sparse_insert_entry_double(void);\nvoid* sparse_insert_entry_float(void);\nvoid* sparse_insert_row_double(void);\nvoid* sparse_insert_row_float(void);\nvoid* sparse_matrix_block_create_double(void);\nvoid* sparse_matrix_block_create_float(void);\nvoid* sparse_matrix_create_double(void);\nvoid* sparse_matrix_create_float(void);\nvoid* sparse_matrix_destroy(void);\nvoid* sparse_matrix_product_dense_double(void);\nvoid* sparse_matrix_product_dense_float(void);\nvoid* sparse_matrix_product_sparse_double(void);\nvoid* sparse_matrix_product_sparse_float(void);\nvoid* sparse_matrix_trace_double(void);\nvoid* sparse_matrix_trace_float(void);\nvoid* sparse_matrix_triangular_solve_dense_double(void);\nvoid* sparse_matrix_triangular_solve_dense_float(void);\nvoid* sparse_matrix_variable_block_create_double(void);\nvoid* sparse_matrix_variable_block_create_float(void);\nvoid* sparse_matrix_vector_product_dense_double(void);\nvoid* sparse_matrix_vector_product_dense_float(void);\nvoid* sparse_operator_norm_double(void);\nvoid* sparse_operator_norm_float(void);\nvoid* sparse_outer_product_dense_double(void);\nvoid* sparse_outer_product_dense_float(void);\nvoid* sparse_pack_vector_double(void);\nvoid* sparse_pack_vector_float(void);\nvoid* sparse_permute_cols_double(void);\nvoid* sparse_permute_cols_float(void);\nvoid* sparse_permute_rows_double(void);\nvoid* sparse_permute_rows_float(void);\nvoid* sparse_set_matrix_property(void);\nvoid* sparse_unpack_vector_double(void);\nvoid* sparse_unpack_vector_float(void);\nvoid* sparse_vector_add_with_scale_dense_double(void);\nvoid* sparse_vector_add_with_scale_dense_float(void);\nvoid* sparse_vector_norm_double(void);\nvoid* sparse_vector_norm_float(void);\nvoid* sparse_vector_triangular_solve_dense_double(void);\nvoid* sparse_vector_triangular_solve_dense_float(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/SparseBLAS/src/SparseBLAS.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <SparseBLAS/SparseBLAS.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* sparse_commit(void)\n{\n    if (verbose) puts(\"STUB: sparse_commit called\");\n    return NULL;\n}\n\nvoid* sparse_elementwise_norm_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_elementwise_norm_double called\");\n    return NULL;\n}\n\nvoid* sparse_elementwise_norm_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_elementwise_norm_float called\");\n    return NULL;\n}\n\nvoid* sparse_extract_block_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_extract_block_double called\");\n    return NULL;\n}\n\nvoid* sparse_extract_block_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_extract_block_float called\");\n    return NULL;\n}\n\nvoid* sparse_extract_sparse_column_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_extract_sparse_column_double called\");\n    return NULL;\n}\n\nvoid* sparse_extract_sparse_column_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_extract_sparse_column_float called\");\n    return NULL;\n}\n\nvoid* sparse_extract_sparse_row_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_extract_sparse_row_double called\");\n    return NULL;\n}\n\nvoid* sparse_extract_sparse_row_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_extract_sparse_row_float called\");\n    return NULL;\n}\n\nvoid* sparse_get_block_dimension_for_col(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_block_dimension_for_col called\");\n    return NULL;\n}\n\nvoid* sparse_get_block_dimension_for_row(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_block_dimension_for_row called\");\n    return NULL;\n}\n\nvoid* sparse_get_matrix_nonzero_count(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_matrix_nonzero_count called\");\n    return NULL;\n}\n\nvoid* sparse_get_matrix_nonzero_count_for_column(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_matrix_nonzero_count_for_column called\");\n    return NULL;\n}\n\nvoid* sparse_get_matrix_nonzero_count_for_row(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_matrix_nonzero_count_for_row called\");\n    return NULL;\n}\n\nvoid* sparse_get_matrix_number_of_columns(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_matrix_number_of_columns called\");\n    return NULL;\n}\n\nvoid* sparse_get_matrix_number_of_rows(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_matrix_number_of_rows called\");\n    return NULL;\n}\n\nvoid* sparse_get_matrix_property(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_matrix_property called\");\n    return NULL;\n}\n\nvoid* sparse_get_vector_nonzero_count_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_vector_nonzero_count_double called\");\n    return NULL;\n}\n\nvoid* sparse_get_vector_nonzero_count_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_get_vector_nonzero_count_float called\");\n    return NULL;\n}\n\nvoid* sparse_inner_product_dense_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_inner_product_dense_double called\");\n    return NULL;\n}\n\nvoid* sparse_inner_product_dense_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_inner_product_dense_float called\");\n    return NULL;\n}\n\nvoid* sparse_inner_product_sparse_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_inner_product_sparse_double called\");\n    return NULL;\n}\n\nvoid* sparse_inner_product_sparse_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_inner_product_sparse_float called\");\n    return NULL;\n}\n\nvoid* sparse_insert_block_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_block_double called\");\n    return NULL;\n}\n\nvoid* sparse_insert_block_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_block_float called\");\n    return NULL;\n}\n\nvoid* sparse_insert_col_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_col_double called\");\n    return NULL;\n}\n\nvoid* sparse_insert_col_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_col_float called\");\n    return NULL;\n}\n\nvoid* sparse_insert_entries_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_entries_double called\");\n    return NULL;\n}\n\nvoid* sparse_insert_entries_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_entries_float called\");\n    return NULL;\n}\n\nvoid* sparse_insert_entry_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_entry_double called\");\n    return NULL;\n}\n\nvoid* sparse_insert_entry_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_entry_float called\");\n    return NULL;\n}\n\nvoid* sparse_insert_row_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_row_double called\");\n    return NULL;\n}\n\nvoid* sparse_insert_row_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_insert_row_float called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_block_create_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_block_create_double called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_block_create_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_block_create_float called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_create_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_create_double called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_create_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_create_float called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_destroy(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_destroy called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_product_dense_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_product_dense_double called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_product_dense_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_product_dense_float called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_product_sparse_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_product_sparse_double called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_product_sparse_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_product_sparse_float called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_trace_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_trace_double called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_trace_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_trace_float called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_triangular_solve_dense_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_triangular_solve_dense_double called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_triangular_solve_dense_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_triangular_solve_dense_float called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_variable_block_create_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_variable_block_create_double called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_variable_block_create_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_variable_block_create_float called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_vector_product_dense_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_vector_product_dense_double called\");\n    return NULL;\n}\n\nvoid* sparse_matrix_vector_product_dense_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_matrix_vector_product_dense_float called\");\n    return NULL;\n}\n\nvoid* sparse_operator_norm_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_operator_norm_double called\");\n    return NULL;\n}\n\nvoid* sparse_operator_norm_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_operator_norm_float called\");\n    return NULL;\n}\n\nvoid* sparse_outer_product_dense_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_outer_product_dense_double called\");\n    return NULL;\n}\n\nvoid* sparse_outer_product_dense_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_outer_product_dense_float called\");\n    return NULL;\n}\n\nvoid* sparse_pack_vector_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_pack_vector_double called\");\n    return NULL;\n}\n\nvoid* sparse_pack_vector_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_pack_vector_float called\");\n    return NULL;\n}\n\nvoid* sparse_permute_cols_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_permute_cols_double called\");\n    return NULL;\n}\n\nvoid* sparse_permute_cols_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_permute_cols_float called\");\n    return NULL;\n}\n\nvoid* sparse_permute_rows_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_permute_rows_double called\");\n    return NULL;\n}\n\nvoid* sparse_permute_rows_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_permute_rows_float called\");\n    return NULL;\n}\n\nvoid* sparse_set_matrix_property(void)\n{\n    if (verbose) puts(\"STUB: sparse_set_matrix_property called\");\n    return NULL;\n}\n\nvoid* sparse_unpack_vector_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_unpack_vector_double called\");\n    return NULL;\n}\n\nvoid* sparse_unpack_vector_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_unpack_vector_float called\");\n    return NULL;\n}\n\nvoid* sparse_vector_add_with_scale_dense_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_vector_add_with_scale_dense_double called\");\n    return NULL;\n}\n\nvoid* sparse_vector_add_with_scale_dense_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_vector_add_with_scale_dense_float called\");\n    return NULL;\n}\n\nvoid* sparse_vector_norm_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_vector_norm_double called\");\n    return NULL;\n}\n\nvoid* sparse_vector_norm_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_vector_norm_float called\");\n    return NULL;\n}\n\nvoid* sparse_vector_triangular_solve_dense_double(void)\n{\n    if (verbose) puts(\"STUB: sparse_vector_triangular_solve_dense_double called\");\n    return NULL;\n}\n\nvoid* sparse_vector_triangular_solve_dense_float(void)\n{\n    if (verbose) puts(\"STUB: sparse_vector_triangular_solve_dense_float called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/empty.c",
    "content": ""
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/vDSP/CMakeLists.txt",
    "content": "project(vDSP)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"671.250.4\")\n\nadd_darling_library(vDSP SHARED\n\tsrc/vDSP.c\n\tsrc/extrema.c\n)\nmake_fat(vDSP)\ntarget_link_libraries(vDSP system)\ninstall(TARGETS vDSP DESTINATION libexec/darling/usr/lib)\n\nset_property(TARGET vDSP PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET vDSP PROPERTY DYLIB_BUILD_NAME libvDSP.dylib)\ninstall(TARGETS vDSP DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libvDSP.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libvDSP.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/vDSP/include/vDSP/vDSP.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _vDSP_H_\n#define _vDSP_H_\n\ntypedef unsigned long vDSP_Length;\ntypedef long vDSP_Stride;\n\nvoid* vDSP_DCT_CreateSetup(void);\nvoid* vDSP_DCT_Execute(void);\nvoid* vDSP_DFT_CreateSetup(void);\nvoid* vDSP_DFT_DestroySetup(void);\nvoid* vDSP_DFT_DestroySetupD(void);\nvoid* vDSP_DFT_Execute(void);\nvoid* vDSP_DFT_ExecuteD(void);\nvoid* vDSP_DFT_zop(void);\nvoid* vDSP_DFT_zop_CreateSetup(void);\nvoid* vDSP_DFT_zop_CreateSetupD(void);\nvoid* vDSP_DFT_zrop_CreateSetup(void);\nvoid* vDSP_DFT_zrop_CreateSetupD(void);\nvoid* vDSP_FFT16_copv(void);\nvoid* vDSP_FFT16_zopv(void);\nvoid* vDSP_FFT32_copv(void);\nvoid* vDSP_FFT32_zopv(void);\nvoid* vDSP_biquad(void);\nvoid* vDSP_biquadD(void);\nvoid* vDSP_biquad_CreateSetup(void);\nvoid* vDSP_biquad_CreateSetupD(void);\nvoid* vDSP_biquad_DestroySetup(void);\nvoid* vDSP_biquad_DestroySetupD(void);\nvoid* vDSP_biquadm(void);\nvoid* vDSP_biquadmD(void);\nvoid* vDSP_biquadm_CopyState(void);\nvoid* vDSP_biquadm_CopyStateD(void);\nvoid* vDSP_biquadm_CreateSetup(void);\nvoid* vDSP_biquadm_CreateSetupD(void);\nvoid* vDSP_biquadm_DestroySetup(void);\nvoid* vDSP_biquadm_DestroySetupD(void);\nvoid* vDSP_biquadm_ResetState(void);\nvoid* vDSP_biquadm_ResetStateD(void);\nvoid* vDSP_biquadm_SetActiveFilters(void);\nvoid* vDSP_biquadm_SetCoefficientsDouble(void);\nvoid* vDSP_biquadm_SetCoefficientsSingle(void);\nvoid* vDSP_biquadm_SetTargetsDouble(void);\nvoid* vDSP_biquadm_SetTargetsSingle(void);\nvoid* vDSP_blkman_window(void);\nvoid* vDSP_blkman_windowD(void);\nvoid* vDSP_conv(void);\nvoid* vDSP_convD(void);\nvoid* vDSP_create_fftsetup(void);\nvoid* vDSP_create_fftsetupD(void);\nvoid* vDSP_ctoz(void);\nvoid* vDSP_ctozD(void);\nvoid* vDSP_deq22(void);\nvoid* vDSP_deq22D(void);\nvoid* vDSP_desamp(void);\nvoid* vDSP_desampD(void);\nvoid* vDSP_destroy_fftsetup(void);\nvoid* vDSP_destroy_fftsetupD(void);\nvoid* vDSP_distancesq(void);\nvoid* vDSP_distancesqD(void);\nvoid* vDSP_dotpr(void);\nvoid* vDSP_dotpr2(void);\nvoid* vDSP_dotpr2D(void);\nvoid* vDSP_dotpr2_s1_15(void);\nvoid* vDSP_dotpr2_s8_24(void);\nvoid* vDSP_dotprD(void);\nvoid* vDSP_dotpr_s1_15(void);\nvoid* vDSP_dotpr_s8_24(void);\nvoid* vDSP_f3x3(void);\nvoid* vDSP_f3x3D(void);\nvoid* vDSP_f5x5(void);\nvoid* vDSP_f5x5D(void);\nvoid* vDSP_fft2d_zip(void);\nvoid* vDSP_fft2d_zipD(void);\nvoid* vDSP_fft2d_zipt(void);\nvoid* vDSP_fft2d_ziptD(void);\nvoid* vDSP_fft2d_zop(void);\nvoid* vDSP_fft2d_zopD(void);\nvoid* vDSP_fft2d_zopt(void);\nvoid* vDSP_fft2d_zoptD(void);\nvoid* vDSP_fft2d_zrip(void);\nvoid* vDSP_fft2d_zripD(void);\nvoid* vDSP_fft2d_zript(void);\nvoid* vDSP_fft2d_zriptD(void);\nvoid* vDSP_fft2d_zrop(void);\nvoid* vDSP_fft2d_zropD(void);\nvoid* vDSP_fft2d_zropt(void);\nvoid* vDSP_fft2d_zroptD(void);\nvoid* vDSP_fft3_zop(void);\nvoid* vDSP_fft3_zopD(void);\nvoid* vDSP_fft5_zop(void);\nvoid* vDSP_fft5_zopD(void);\nvoid* vDSP_fft_zip(void);\nvoid* vDSP_fft_zipD(void);\nvoid* vDSP_fft_zipt(void);\nvoid* vDSP_fft_ziptD(void);\nvoid* vDSP_fft_zop(void);\nvoid* vDSP_fft_zopD(void);\nvoid* vDSP_fft_zopt(void);\nvoid* vDSP_fft_zoptD(void);\nvoid* vDSP_fft_zrip(void);\nvoid* vDSP_fft_zripD(void);\nvoid* vDSP_fft_zript(void);\nvoid* vDSP_fft_zriptD(void);\nvoid* vDSP_fft_zrop(void);\nvoid* vDSP_fft_zropD(void);\nvoid* vDSP_fft_zropt(void);\nvoid* vDSP_fft_zroptD(void);\nvoid* vDSP_fftm_zip(void);\nvoid* vDSP_fftm_zipD(void);\nvoid* vDSP_fftm_zipt(void);\nvoid* vDSP_fftm_ziptD(void);\nvoid* vDSP_fftm_zop(void);\nvoid* vDSP_fftm_zopD(void);\nvoid* vDSP_fftm_zopt(void);\nvoid* vDSP_fftm_zoptD(void);\nvoid* vDSP_fftm_zrip(void);\nvoid* vDSP_fftm_zripD(void);\nvoid* vDSP_fftm_zript(void);\nvoid* vDSP_fftm_zriptD(void);\nvoid* vDSP_fftm_zrop(void);\nvoid* vDSP_fftm_zropD(void);\nvoid* vDSP_fftm_zropt(void);\nvoid* vDSP_fftm_zroptD(void);\nvoid* vDSP_hamm_window(void);\nvoid* vDSP_hamm_windowD(void);\nvoid* vDSP_hann_window(void);\nvoid* vDSP_hann_windowD(void);\nvoid* vDSP_imgfir(void);\nvoid* vDSP_imgfirD(void);\nvoid* vDSP_maxmgvD(void);\nvoid* vDSP_maxmgvi(void);\nvoid* vDSP_maxmgviD(void);\nvoid* vDSP_maxv(void);\nvoid* vDSP_maxvD(void);\nvoid* vDSP_maxvi(void);\nvoid* vDSP_maxviD(void);\nvoid* vDSP_meamgv(void);\nvoid* vDSP_meamgvD(void);\nvoid* vDSP_meanv(void);\nvoid* vDSP_meanvD(void);\nvoid* vDSP_measqv(void);\nvoid* vDSP_measqvD(void);\nvoid* vDSP_minmgv(void);\nvoid* vDSP_minmgvD(void);\nvoid* vDSP_minmgvi(void);\nvoid* vDSP_minmgviD(void);\nvoid* vDSP_minv(void);\nvoid* vDSP_minvD(void);\nvoid* vDSP_minvi(void);\nvoid* vDSP_minviD(void);\nvoid* vDSP_mmov(void);\nvoid* vDSP_mmovD(void);\nvoid* vDSP_mmul(void);\nvoid* vDSP_mmulD(void);\nvoid* vDSP_mtrans(void);\nvoid* vDSP_mtransD(void);\nvoid* vDSP_mvessq(void);\nvoid* vDSP_mvessqD(void);\nvoid* vDSP_normalize(void);\nvoid* vDSP_normalizeD(void);\nvoid* vDSP_nzcros(void);\nvoid* vDSP_nzcrosD(void);\nvoid* vDSP_polar(void);\nvoid* vDSP_polarD(void);\nvoid* vDSP_rect(void);\nvoid* vDSP_rectD(void);\nvoid* vDSP_rmsqv(void);\nvoid* vDSP_rmsqvD(void);\nvoid* vDSP_svdiv(void);\nvoid* vDSP_svdivD(void);\nvoid* vDSP_sve(void);\nvoid* vDSP_sveD(void);\nvoid* vDSP_sve_svesq(void);\nvoid* vDSP_sve_svesqD(void);\nvoid* vDSP_svemg(void);\nvoid* vDSP_svemgD(void);\nvoid* vDSP_svesq(void);\nvoid* vDSP_svesqD(void);\nvoid* vDSP_svs(void);\nvoid* vDSP_svsD(void);\nvoid* vDSP_vaam(void);\nvoid* vDSP_vaamD(void);\nvoid* vDSP_vabs(void);\nvoid* vDSP_vabsD(void);\nvoid* vDSP_vabsi(void);\nvoid* vDSP_vadd(void);\nvoid* vDSP_vaddD(void);\nvoid* vDSP_vaddi(void);\nvoid* vDSP_vaddsub(void);\nvoid* vDSP_vaddsubD(void);\nvoid* vDSP_vam(void);\nvoid* vDSP_vamD(void);\nvoid* vDSP_vasbm(void);\nvoid* vDSP_vasbmD(void);\nvoid* vDSP_vasm(void);\nvoid* vDSP_vasmD(void);\nvoid* vDSP_vavlin(void);\nvoid* vDSP_vavlinD(void);\nvoid* vDSP_vclip(void);\nvoid* vDSP_vclipD(void);\nvoid* vDSP_vclipc(void);\nvoid* vDSP_vclipcD(void);\nvoid* vDSP_vclr(void);\nvoid* vDSP_vclrD(void);\nvoid* vDSP_vcmprs(void);\nvoid* vDSP_vcmprsD(void);\nvoid* vDSP_vdbcon(void);\nvoid* vDSP_vdbconD(void);\nvoid* vDSP_vdist(void);\nvoid* vDSP_vdistD(void);\nvoid* vDSP_vdiv(void);\nvoid* vDSP_vdivD(void);\nvoid* vDSP_vdivi(void);\nvoid* vDSP_vdpsp(void);\nvoid* vDSP_venvlp(void);\nvoid* vDSP_venvlpD(void);\nvoid* vDSP_veqvi(void);\nvoid* vDSP_vfill(void);\nvoid* vDSP_vfillD(void);\nvoid* vDSP_vfilli(void);\nvoid* vDSP_vfix16(void);\nvoid* vDSP_vfix16D(void);\nvoid* vDSP_vfix32(void);\nvoid* vDSP_vfix32D(void);\nvoid* vDSP_vfix8(void);\nvoid* vDSP_vfix8D(void);\nvoid* vDSP_vfixr16(void);\nvoid* vDSP_vfixr16D(void);\nvoid* vDSP_vfixr32(void);\nvoid* vDSP_vfixr32D(void);\nvoid* vDSP_vfixr8(void);\nvoid* vDSP_vfixr8D(void);\nvoid* vDSP_vfixru16(void);\nvoid* vDSP_vfixru16D(void);\nvoid* vDSP_vfixru32(void);\nvoid* vDSP_vfixru32D(void);\nvoid* vDSP_vfixru8(void);\nvoid* vDSP_vfixru8D(void);\nvoid* vDSP_vfixu16(void);\nvoid* vDSP_vfixu16D(void);\nvoid* vDSP_vfixu32(void);\nvoid* vDSP_vfixu32D(void);\nvoid* vDSP_vfixu8(void);\nvoid* vDSP_vfixu8D(void);\nvoid* vDSP_vflt16(void);\nvoid* vDSP_vflt16D(void);\nvoid* vDSP_vflt24(void);\nvoid* vDSP_vflt32(void);\nvoid* vDSP_vflt32D(void);\nvoid* vDSP_vflt8(void);\nvoid* vDSP_vflt8D(void);\nvoid* vDSP_vfltsm24(void);\nvoid* vDSP_vfltsmu24(void);\nvoid* vDSP_vfltu16(void);\nvoid* vDSP_vfltu16D(void);\nvoid* vDSP_vfltu24(void);\nvoid* vDSP_vfltu32(void);\nvoid* vDSP_vfltu32D(void);\nvoid* vDSP_vfltu8(void);\nvoid* vDSP_vfltu8D(void);\nvoid* vDSP_vfrac(void);\nvoid* vDSP_vfracD(void);\nvoid* vDSP_vgathr(void);\nvoid* vDSP_vgathrD(void);\nvoid* vDSP_vgathra(void);\nvoid* vDSP_vgathraD(void);\nvoid* vDSP_vgen(void);\nvoid* vDSP_vgenD(void);\nvoid* vDSP_vgenp(void);\nvoid* vDSP_vgenpD(void);\nvoid* vDSP_viclip(void);\nvoid* vDSP_viclipD(void);\nvoid* vDSP_vindex(void);\nvoid* vDSP_vindexD(void);\nvoid* vDSP_vintb(void);\nvoid* vDSP_vintbD(void);\nvoid* vDSP_vlim(void);\nvoid* vDSP_vlimD(void);\nvoid* vDSP_vlint(void);\nvoid* vDSP_vlintD(void);\nvoid* vDSP_vma(void);\nvoid* vDSP_vmaD(void);\nvoid* vDSP_vmax(void);\nvoid* vDSP_vmaxD(void);\nvoid* vDSP_vmaxmg(void);\nvoid* vDSP_vmaxmgD(void);\nvoid* vDSP_vmin(void);\nvoid* vDSP_vminD(void);\nvoid* vDSP_vminmg(void);\nvoid* vDSP_vminmgD(void);\nvoid* vDSP_vmma(void);\nvoid* vDSP_vmmaD(void);\nvoid* vDSP_vmmsb(void);\nvoid* vDSP_vmmsbD(void);\nvoid* vDSP_vmsa(void);\nvoid* vDSP_vmsaD(void);\nvoid* vDSP_vmsb(void);\nvoid* vDSP_vmsbD(void);\nvoid* vDSP_vmul(void);\nvoid* vDSP_vmulD(void);\nvoid* vDSP_vnabs(void);\nvoid* vDSP_vnabsD(void);\nvoid* vDSP_vneg(void);\nvoid* vDSP_vnegD(void);\nvoid* vDSP_vpoly(void);\nvoid* vDSP_vpolyD(void);\nvoid* vDSP_vpythg(void);\nvoid* vDSP_vpythgD(void);\nvoid* vDSP_vqint(void);\nvoid* vDSP_vqintD(void);\nvoid* vDSP_vramp(void);\nvoid* vDSP_vrampD(void);\nvoid* vDSP_vrampmul(void);\nvoid* vDSP_vrampmul2(void);\nvoid* vDSP_vrampmul2D(void);\nvoid* vDSP_vrampmul2_s1_15(void);\nvoid* vDSP_vrampmul2_s8_24(void);\nvoid* vDSP_vrampmulD(void);\nvoid* vDSP_vrampmul_s1_15(void);\nvoid* vDSP_vrampmul_s8_24(void);\nvoid* vDSP_vrampmuladd(void);\nvoid* vDSP_vrampmuladd2(void);\nvoid* vDSP_vrampmuladd2D(void);\nvoid* vDSP_vrampmuladd2_s1_15(void);\nvoid* vDSP_vrampmuladd2_s8_24(void);\nvoid* vDSP_vrampmuladdD(void);\nvoid* vDSP_vrampmuladd_s1_15(void);\nvoid* vDSP_vrampmuladd_s8_24(void);\nvoid* vDSP_vrsum(void);\nvoid* vDSP_vrsumD(void);\nvoid* vDSP_vrvrs(void);\nvoid* vDSP_vrvrsD(void);\nvoid* vDSP_vsadd(void);\nvoid* vDSP_vsaddD(void);\nvoid* vDSP_vsaddi(void);\nvoid* vDSP_vsbm(void);\nvoid* vDSP_vsbmD(void);\nvoid* vDSP_vsbsbm(void);\nvoid* vDSP_vsbsbmD(void);\nvoid* vDSP_vsbsm(void);\nvoid* vDSP_vsbsmD(void);\nvoid* vDSP_vsdiv(void);\nvoid* vDSP_vsdivD(void);\nvoid* vDSP_vsdivi(void);\nvoid* vDSP_vsimps(void);\nvoid* vDSP_vsimpsD(void);\nvoid* vDSP_vsma(void);\nvoid* vDSP_vsmaD(void);\nvoid* vDSP_vsmfix24(void);\nvoid* vDSP_vsmfixu24(void);\nvoid* vDSP_vsmsa(void);\nvoid* vDSP_vsmsaD(void);\nvoid* vDSP_vsmsb(void);\nvoid* vDSP_vsmsbD(void);\nvoid* vDSP_vsmsma(void);\nvoid* vDSP_vsmsmaD(void);\nvoid* vDSP_vsmul(void);\nvoid* vDSP_vsmulD(void);\nvoid* vDSP_vsort(void);\nvoid* vDSP_vsortD(void);\nvoid* vDSP_vsorti(void);\nvoid* vDSP_vsortiD(void);\nvoid* vDSP_vspdp(void);\nvoid* vDSP_vsq(void);\nvoid* vDSP_vsqD(void);\nvoid* vDSP_vssq(void);\nvoid* vDSP_vssqD(void);\nvoid* vDSP_vsub(void);\nvoid* vDSP_vsubD(void);\nvoid* vDSP_vswap(void);\nvoid* vDSP_vswapD(void);\nvoid* vDSP_vswmax(void);\nvoid* vDSP_vswmaxD(void);\nvoid* vDSP_vswsum(void);\nvoid* vDSP_vswsumD(void);\nvoid* vDSP_vtabi(void);\nvoid* vDSP_vtabiD(void);\nvoid* vDSP_vthr(void);\nvoid* vDSP_vthrD(void);\nvoid* vDSP_vthres(void);\nvoid* vDSP_vthresD(void);\nvoid* vDSP_vthrsc(void);\nvoid* vDSP_vthrscD(void);\nvoid* vDSP_vtmerg(void);\nvoid* vDSP_vtmergD(void);\nvoid* vDSP_vtrapz(void);\nvoid* vDSP_vtrapzD(void);\nvoid* vDSP_wiener(void);\nvoid* vDSP_wienerD(void);\nvoid* vDSP_zaspec(void);\nvoid* vDSP_zaspecD(void);\nvoid* vDSP_zcoher(void);\nvoid* vDSP_zcoherD(void);\nvoid* vDSP_zconv(void);\nvoid* vDSP_zconvD(void);\nvoid* vDSP_zcspec(void);\nvoid* vDSP_zcspecD(void);\nvoid* vDSP_zdotpr(void);\nvoid* vDSP_zdotprD(void);\nvoid* vDSP_zidotpr(void);\nvoid* vDSP_zidotprD(void);\nvoid* vDSP_zmma(void);\nvoid* vDSP_zmmaD(void);\nvoid* vDSP_zmms(void);\nvoid* vDSP_zmmsD(void);\nvoid* vDSP_zmmul(void);\nvoid* vDSP_zmmulD(void);\nvoid* vDSP_zmsm(void);\nvoid* vDSP_zmsmD(void);\nvoid* vDSP_zrdesamp(void);\nvoid* vDSP_zrdesampD(void);\nvoid* vDSP_zrdotpr(void);\nvoid* vDSP_zrdotprD(void);\nvoid* vDSP_zrvadd(void);\nvoid* vDSP_zrvaddD(void);\nvoid* vDSP_zrvdiv(void);\nvoid* vDSP_zrvdivD(void);\nvoid* vDSP_zrvmul(void);\nvoid* vDSP_zrvmulD(void);\nvoid* vDSP_zrvsub(void);\nvoid* vDSP_zrvsubD(void);\nvoid* vDSP_ztoc(void);\nvoid* vDSP_ztocD(void);\nvoid* vDSP_ztrans(void);\nvoid* vDSP_ztransD(void);\nvoid* vDSP_zvabs(void);\nvoid* vDSP_zvabsD(void);\nvoid* vDSP_zvadd(void);\nvoid* vDSP_zvaddD(void);\nvoid* vDSP_zvcma(void);\nvoid* vDSP_zvcmaD(void);\nvoid* vDSP_zvcmul(void);\nvoid* vDSP_zvcmulD(void);\nvoid* vDSP_zvconj(void);\nvoid* vDSP_zvconjD(void);\nvoid* vDSP_zvdiv(void);\nvoid* vDSP_zvdivD(void);\nvoid* vDSP_zvfill(void);\nvoid* vDSP_zvfillD(void);\nvoid* vDSP_zvma(void);\nvoid* vDSP_zvmaD(void);\nvoid* vDSP_zvmags(void);\nvoid* vDSP_zvmagsD(void);\nvoid* vDSP_zvmgsa(void);\nvoid* vDSP_zvmgsaD(void);\nvoid* vDSP_zvmmaa(void);\nvoid* vDSP_zvmmaaD(void);\nvoid* vDSP_zvmov(void);\nvoid* vDSP_zvmovD(void);\nvoid* vDSP_zvmul(void);\nvoid* vDSP_zvmulD(void);\nvoid* vDSP_zvneg(void);\nvoid* vDSP_zvnegD(void);\nvoid* vDSP_zvphas(void);\nvoid* vDSP_zvphasD(void);\nvoid* vDSP_zvsma(void);\nvoid* vDSP_zvsmaD(void);\nvoid* vDSP_zvsub(void);\nvoid* vDSP_zvsubD(void);\nvoid* vDSP_zvzsml(void);\nvoid* vDSP_zvzsmlD(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/vDSP/src/basic.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <vDSP/vDSP.h>\n\nvoid vDSP_vsadd(const float *__A, vDSP_Stride __IA, const float *__B, float *__C, vDSP_Stride __IC, vDSP_Length __N)\n{\n\tif (__IA == 1 && __IC == 1)\n\t{\n\t\t#pragma clang loop vectorize(enable)\n\t\tfor (vDSP_Length i = 0; i < __N; i++)\n\t\t\t__C[i] = __A[i] + __B[i];\n\t}\n\telse\n\t{\n\t\t#pragma clang loop vectorize(enable)\n\t\tfor (vDSP_Length i = 0; i < __N; i++)\n\t\t\t__C[i * __IC] = __A[i * __IA] + __B[i * __IA];\n\t}\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/vDSP/src/extrema.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <vDSP/vDSP.h>\n#include <math.h>\n\nvoid vDSP_maxmgv(const float *__A, vDSP_Stride __IA, float *__C, vDSP_Length __N)\n{\n\t*__C = -INFINITY;\n\n\tif (__N != 1)\n\t{\n\t\t#pragma clang loop vectorize(enable)\n\t\tfor (vDSP_Length i = 0; i < __N; i++)\n\t\t{\n\t\t\tif (*__C < fabsf(__A[i * __IA]))\n\t\t\t\t*__C = fabsf(__A[i * __IA]);\n\t\t}\n\t}\n\telse\n\t{\n\t\t#pragma clang loop vectorize(enable)\n\t\tfor (vDSP_Length i = 0; i < __N; i++)\n\t\t{\n\t\t\tif (*__C < fabsf(__A[i]))\n\t\t\t\t*__C = fabsf(__A[i]);\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/vDSP/src/vDSP.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <vDSP/vDSP.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* vDSP_DCT_CreateSetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DCT_CreateSetup called\");\n    return NULL;\n}\n\nvoid* vDSP_DCT_Execute(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DCT_Execute called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_CreateSetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_CreateSetup called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_DestroySetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_DestroySetup called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_DestroySetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_DestroySetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_Execute(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_Execute called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_ExecuteD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_ExecuteD called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_zop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_zop called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_zop_CreateSetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_zop_CreateSetup called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_zop_CreateSetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_zop_CreateSetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_zrop_CreateSetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_zrop_CreateSetup called\");\n    return NULL;\n}\n\nvoid* vDSP_DFT_zrop_CreateSetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_DFT_zrop_CreateSetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_FFT16_copv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_FFT16_copv called\");\n    return NULL;\n}\n\nvoid* vDSP_FFT16_zopv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_FFT16_zopv called\");\n    return NULL;\n}\n\nvoid* vDSP_FFT32_copv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_FFT32_copv called\");\n    return NULL;\n}\n\nvoid* vDSP_FFT32_zopv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_FFT32_zopv called\");\n    return NULL;\n}\n\nvoid* vDSP_biquad(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquad called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadD called\");\n    return NULL;\n}\n\nvoid* vDSP_biquad_CreateSetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquad_CreateSetup called\");\n    return NULL;\n}\n\nvoid* vDSP_biquad_CreateSetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquad_CreateSetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_biquad_DestroySetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquad_DestroySetup called\");\n    return NULL;\n}\n\nvoid* vDSP_biquad_DestroySetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquad_DestroySetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadmD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadmD called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_CopyState(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_CopyState called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_CopyStateD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_CopyStateD called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_CreateSetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_CreateSetup called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_CreateSetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_CreateSetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_DestroySetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_DestroySetup called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_DestroySetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_DestroySetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_ResetState(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_ResetState called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_ResetStateD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_ResetStateD called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_SetActiveFilters(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_SetActiveFilters called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_SetCoefficientsDouble(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_SetCoefficientsDouble called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_SetCoefficientsSingle(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_SetCoefficientsSingle called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_SetTargetsDouble(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_SetTargetsDouble called\");\n    return NULL;\n}\n\nvoid* vDSP_biquadm_SetTargetsSingle(void)\n{\n    if (verbose) puts(\"STUB: vDSP_biquadm_SetTargetsSingle called\");\n    return NULL;\n}\n\nvoid* vDSP_blkman_window(void)\n{\n    if (verbose) puts(\"STUB: vDSP_blkman_window called\");\n    return NULL;\n}\n\nvoid* vDSP_blkman_windowD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_blkman_windowD called\");\n    return NULL;\n}\n\nvoid* vDSP_conv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_conv called\");\n    return NULL;\n}\n\nvoid* vDSP_convD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_convD called\");\n    return NULL;\n}\n\nvoid* vDSP_create_fftsetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_create_fftsetup called\");\n    return NULL;\n}\n\nvoid* vDSP_create_fftsetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_create_fftsetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_ctoz(void)\n{\n    if (verbose) puts(\"STUB: vDSP_ctoz called\");\n    return NULL;\n}\n\nvoid* vDSP_ctozD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_ctozD called\");\n    return NULL;\n}\n\nvoid* vDSP_deq22(void)\n{\n    if (verbose) puts(\"STUB: vDSP_deq22 called\");\n    return NULL;\n}\n\nvoid* vDSP_deq22D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_deq22D called\");\n    return NULL;\n}\n\nvoid* vDSP_desamp(void)\n{\n    if (verbose) puts(\"STUB: vDSP_desamp called\");\n    return NULL;\n}\n\nvoid* vDSP_desampD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_desampD called\");\n    return NULL;\n}\n\nvoid* vDSP_destroy_fftsetup(void)\n{\n    if (verbose) puts(\"STUB: vDSP_destroy_fftsetup called\");\n    return NULL;\n}\n\nvoid* vDSP_destroy_fftsetupD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_destroy_fftsetupD called\");\n    return NULL;\n}\n\nvoid* vDSP_distancesq(void)\n{\n    if (verbose) puts(\"STUB: vDSP_distancesq called\");\n    return NULL;\n}\n\nvoid* vDSP_distancesqD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_distancesqD called\");\n    return NULL;\n}\n\nvoid* vDSP_dotpr(void)\n{\n    if (verbose) puts(\"STUB: vDSP_dotpr called\");\n    return NULL;\n}\n\nvoid* vDSP_dotpr2(void)\n{\n    if (verbose) puts(\"STUB: vDSP_dotpr2 called\");\n    return NULL;\n}\n\nvoid* vDSP_dotpr2D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_dotpr2D called\");\n    return NULL;\n}\n\nvoid* vDSP_dotpr2_s1_15(void)\n{\n    if (verbose) puts(\"STUB: vDSP_dotpr2_s1_15 called\");\n    return NULL;\n}\n\nvoid* vDSP_dotpr2_s8_24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_dotpr2_s8_24 called\");\n    return NULL;\n}\n\nvoid* vDSP_dotprD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_dotprD called\");\n    return NULL;\n}\n\nvoid* vDSP_dotpr_s1_15(void)\n{\n    if (verbose) puts(\"STUB: vDSP_dotpr_s1_15 called\");\n    return NULL;\n}\n\nvoid* vDSP_dotpr_s8_24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_dotpr_s8_24 called\");\n    return NULL;\n}\n\nvoid* vDSP_f3x3(void)\n{\n    if (verbose) puts(\"STUB: vDSP_f3x3 called\");\n    return NULL;\n}\n\nvoid* vDSP_f3x3D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_f3x3D called\");\n    return NULL;\n}\n\nvoid* vDSP_f5x5(void)\n{\n    if (verbose) puts(\"STUB: vDSP_f5x5 called\");\n    return NULL;\n}\n\nvoid* vDSP_f5x5D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_f5x5D called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zip(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zip called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zipD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zipD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zipt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zipt called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_ziptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_ziptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zop called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zopD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zopD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zopt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zopt called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zoptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zoptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zrip(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zrip called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zripD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zripD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zript(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zript called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zriptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zriptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zrop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zrop called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zropD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zropD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zropt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zropt called\");\n    return NULL;\n}\n\nvoid* vDSP_fft2d_zroptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft2d_zroptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft3_zop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft3_zop called\");\n    return NULL;\n}\n\nvoid* vDSP_fft3_zopD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft3_zopD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft5_zop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft5_zop called\");\n    return NULL;\n}\n\nvoid* vDSP_fft5_zopD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft5_zopD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zip(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zip called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zipD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zipD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zipt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zipt called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_ziptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_ziptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zop called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zopD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zopD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zopt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zopt called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zoptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zoptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zrip(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zrip called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zripD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zripD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zript(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zript called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zriptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zriptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zrop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zrop called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zropD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zropD called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zropt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zropt called\");\n    return NULL;\n}\n\nvoid* vDSP_fft_zroptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fft_zroptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zip(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zip called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zipD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zipD called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zipt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zipt called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_ziptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_ziptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zop called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zopD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zopD called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zopt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zopt called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zoptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zoptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zrip(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zrip called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zripD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zripD called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zript(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zript called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zriptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zriptD called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zrop(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zrop called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zropD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zropD called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zropt(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zropt called\");\n    return NULL;\n}\n\nvoid* vDSP_fftm_zroptD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_fftm_zroptD called\");\n    return NULL;\n}\n\nvoid* vDSP_hamm_window(void)\n{\n    if (verbose) puts(\"STUB: vDSP_hamm_window called\");\n    return NULL;\n}\n\nvoid* vDSP_hamm_windowD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_hamm_windowD called\");\n    return NULL;\n}\n\nvoid* vDSP_hann_window(void)\n{\n    if (verbose) puts(\"STUB: vDSP_hann_window called\");\n    return NULL;\n}\n\nvoid* vDSP_hann_windowD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_hann_windowD called\");\n    return NULL;\n}\n\nvoid* vDSP_imgfir(void)\n{\n    if (verbose) puts(\"STUB: vDSP_imgfir called\");\n    return NULL;\n}\n\nvoid* vDSP_imgfirD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_imgfirD called\");\n    return NULL;\n}\n\n/*\nvoid* vDSP_maxmgv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_maxmgv called\");\n    return NULL;\n}\n*/\n\nvoid* vDSP_maxmgvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_maxmgvD called\");\n    return NULL;\n}\n\nvoid* vDSP_maxmgvi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_maxmgvi called\");\n    return NULL;\n}\n\nvoid* vDSP_maxmgviD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_maxmgviD called\");\n    return NULL;\n}\n\nvoid* vDSP_maxv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_maxv called\");\n    return NULL;\n}\n\nvoid* vDSP_maxvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_maxvD called\");\n    return NULL;\n}\n\nvoid* vDSP_maxvi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_maxvi called\");\n    return NULL;\n}\n\nvoid* vDSP_maxviD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_maxviD called\");\n    return NULL;\n}\n\nvoid* vDSP_meamgv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_meamgv called\");\n    return NULL;\n}\n\nvoid* vDSP_meamgvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_meamgvD called\");\n    return NULL;\n}\n\nvoid* vDSP_meanv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_meanv called\");\n    return NULL;\n}\n\nvoid* vDSP_meanvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_meanvD called\");\n    return NULL;\n}\n\nvoid* vDSP_measqv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_measqv called\");\n    return NULL;\n}\n\nvoid* vDSP_measqvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_measqvD called\");\n    return NULL;\n}\n\nvoid* vDSP_minmgv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_minmgv called\");\n    return NULL;\n}\n\nvoid* vDSP_minmgvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_minmgvD called\");\n    return NULL;\n}\n\nvoid* vDSP_minmgvi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_minmgvi called\");\n    return NULL;\n}\n\nvoid* vDSP_minmgviD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_minmgviD called\");\n    return NULL;\n}\n\nvoid* vDSP_minv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_minv called\");\n    return NULL;\n}\n\nvoid* vDSP_minvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_minvD called\");\n    return NULL;\n}\n\nvoid* vDSP_minvi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_minvi called\");\n    return NULL;\n}\n\nvoid* vDSP_minviD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_minviD called\");\n    return NULL;\n}\n\nvoid* vDSP_mmov(void)\n{\n    if (verbose) puts(\"STUB: vDSP_mmov called\");\n    return NULL;\n}\n\nvoid* vDSP_mmovD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_mmovD called\");\n    return NULL;\n}\n\nvoid* vDSP_mmul(void)\n{\n    if (verbose) puts(\"STUB: vDSP_mmul called\");\n    return NULL;\n}\n\nvoid* vDSP_mmulD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_mmulD called\");\n    return NULL;\n}\n\nvoid* vDSP_mtrans(void)\n{\n    if (verbose) puts(\"STUB: vDSP_mtrans called\");\n    return NULL;\n}\n\nvoid* vDSP_mtransD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_mtransD called\");\n    return NULL;\n}\n\nvoid* vDSP_mvessq(void)\n{\n    if (verbose) puts(\"STUB: vDSP_mvessq called\");\n    return NULL;\n}\n\nvoid* vDSP_mvessqD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_mvessqD called\");\n    return NULL;\n}\n\nvoid* vDSP_normalize(void)\n{\n    if (verbose) puts(\"STUB: vDSP_normalize called\");\n    return NULL;\n}\n\nvoid* vDSP_normalizeD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_normalizeD called\");\n    return NULL;\n}\n\nvoid* vDSP_nzcros(void)\n{\n    if (verbose) puts(\"STUB: vDSP_nzcros called\");\n    return NULL;\n}\n\nvoid* vDSP_nzcrosD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_nzcrosD called\");\n    return NULL;\n}\n\nvoid* vDSP_polar(void)\n{\n    if (verbose) puts(\"STUB: vDSP_polar called\");\n    return NULL;\n}\n\nvoid* vDSP_polarD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_polarD called\");\n    return NULL;\n}\n\nvoid* vDSP_rect(void)\n{\n    if (verbose) puts(\"STUB: vDSP_rect called\");\n    return NULL;\n}\n\nvoid* vDSP_rectD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_rectD called\");\n    return NULL;\n}\n\nvoid* vDSP_rmsqv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_rmsqv called\");\n    return NULL;\n}\n\nvoid* vDSP_rmsqvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_rmsqvD called\");\n    return NULL;\n}\n\nvoid* vDSP_svdiv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_svdiv called\");\n    return NULL;\n}\n\nvoid* vDSP_svdivD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_svdivD called\");\n    return NULL;\n}\n\nvoid* vDSP_sve(void)\n{\n    if (verbose) puts(\"STUB: vDSP_sve called\");\n    return NULL;\n}\n\nvoid* vDSP_sveD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_sveD called\");\n    return NULL;\n}\n\nvoid* vDSP_sve_svesq(void)\n{\n    if (verbose) puts(\"STUB: vDSP_sve_svesq called\");\n    return NULL;\n}\n\nvoid* vDSP_sve_svesqD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_sve_svesqD called\");\n    return NULL;\n}\n\nvoid* vDSP_svemg(void)\n{\n    if (verbose) puts(\"STUB: vDSP_svemg called\");\n    return NULL;\n}\n\nvoid* vDSP_svemgD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_svemgD called\");\n    return NULL;\n}\n\nvoid* vDSP_svesq(void)\n{\n    if (verbose) puts(\"STUB: vDSP_svesq called\");\n    return NULL;\n}\n\nvoid* vDSP_svesqD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_svesqD called\");\n    return NULL;\n}\n\nvoid* vDSP_svs(void)\n{\n    if (verbose) puts(\"STUB: vDSP_svs called\");\n    return NULL;\n}\n\nvoid* vDSP_svsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_svsD called\");\n    return NULL;\n}\n\nvoid* vDSP_vaam(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vaam called\");\n    return NULL;\n}\n\nvoid* vDSP_vaamD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vaamD called\");\n    return NULL;\n}\n\nvoid* vDSP_vabs(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vabs called\");\n    return NULL;\n}\n\nvoid* vDSP_vabsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vabsD called\");\n    return NULL;\n}\n\nvoid* vDSP_vabsi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vabsi called\");\n    return NULL;\n}\n\nvoid* vDSP_vadd(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vadd called\");\n    return NULL;\n}\n\nvoid* vDSP_vaddD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vaddD called\");\n    return NULL;\n}\n\nvoid* vDSP_vaddi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vaddi called\");\n    return NULL;\n}\n\nvoid* vDSP_vaddsub(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vaddsub called\");\n    return NULL;\n}\n\nvoid* vDSP_vaddsubD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vaddsubD called\");\n    return NULL;\n}\n\nvoid* vDSP_vam(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vam called\");\n    return NULL;\n}\n\nvoid* vDSP_vamD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vamD called\");\n    return NULL;\n}\n\nvoid* vDSP_vasbm(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vasbm called\");\n    return NULL;\n}\n\nvoid* vDSP_vasbmD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vasbmD called\");\n    return NULL;\n}\n\nvoid* vDSP_vasm(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vasm called\");\n    return NULL;\n}\n\nvoid* vDSP_vasmD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vasmD called\");\n    return NULL;\n}\n\nvoid* vDSP_vavlin(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vavlin called\");\n    return NULL;\n}\n\nvoid* vDSP_vavlinD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vavlinD called\");\n    return NULL;\n}\n\nvoid* vDSP_vclip(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vclip called\");\n    return NULL;\n}\n\nvoid* vDSP_vclipD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vclipD called\");\n    return NULL;\n}\n\nvoid* vDSP_vclipc(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vclipc called\");\n    return NULL;\n}\n\nvoid* vDSP_vclipcD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vclipcD called\");\n    return NULL;\n}\n\nvoid* vDSP_vclr(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vclr called\");\n    return NULL;\n}\n\nvoid* vDSP_vclrD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vclrD called\");\n    return NULL;\n}\n\nvoid* vDSP_vcmprs(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vcmprs called\");\n    return NULL;\n}\n\nvoid* vDSP_vcmprsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vcmprsD called\");\n    return NULL;\n}\n\nvoid* vDSP_vdbcon(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vdbcon called\");\n    return NULL;\n}\n\nvoid* vDSP_vdbconD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vdbconD called\");\n    return NULL;\n}\n\nvoid* vDSP_vdist(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vdist called\");\n    return NULL;\n}\n\nvoid* vDSP_vdistD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vdistD called\");\n    return NULL;\n}\n\nvoid* vDSP_vdiv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vdiv called\");\n    return NULL;\n}\n\nvoid* vDSP_vdivD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vdivD called\");\n    return NULL;\n}\n\nvoid* vDSP_vdivi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vdivi called\");\n    return NULL;\n}\n\nvoid* vDSP_vdpsp(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vdpsp called\");\n    return NULL;\n}\n\nvoid* vDSP_venvlp(void)\n{\n    if (verbose) puts(\"STUB: vDSP_venvlp called\");\n    return NULL;\n}\n\nvoid* vDSP_venvlpD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_venvlpD called\");\n    return NULL;\n}\n\nvoid* vDSP_veqvi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_veqvi called\");\n    return NULL;\n}\n\nvoid* vDSP_vfill(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfill called\");\n    return NULL;\n}\n\nvoid* vDSP_vfillD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfillD called\");\n    return NULL;\n}\n\nvoid* vDSP_vfilli(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfilli called\");\n    return NULL;\n}\n\nvoid* vDSP_vfix16(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfix16 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfix16D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfix16D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfix32(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfix32 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfix32D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfix32D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfix8(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfix8 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfix8D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfix8D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixr16(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixr16 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixr16D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixr16D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixr32(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixr32 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixr32D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixr32D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixr8(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixr8 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixr8D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixr8D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixru16(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixru16 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixru16D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixru16D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixru32(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixru32 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixru32D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixru32D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixru8(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixru8 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixru8D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixru8D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixu16(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixu16 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixu16D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixu16D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixu32(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixu32 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixu32D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixu32D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixu8(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixu8 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfixu8D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfixu8D called\");\n    return NULL;\n}\n\nvoid* vDSP_vflt16(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vflt16 called\");\n    return NULL;\n}\n\nvoid* vDSP_vflt16D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vflt16D called\");\n    return NULL;\n}\n\nvoid* vDSP_vflt24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vflt24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vflt32(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vflt32 called\");\n    return NULL;\n}\n\nvoid* vDSP_vflt32D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vflt32D called\");\n    return NULL;\n}\n\nvoid* vDSP_vflt8(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vflt8 called\");\n    return NULL;\n}\n\nvoid* vDSP_vflt8D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vflt8D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltsm24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltsm24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltsmu24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltsmu24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltu16(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltu16 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltu16D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltu16D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltu24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltu24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltu32(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltu32 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltu32D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltu32D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltu8(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltu8 called\");\n    return NULL;\n}\n\nvoid* vDSP_vfltu8D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfltu8D called\");\n    return NULL;\n}\n\nvoid* vDSP_vfrac(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfrac called\");\n    return NULL;\n}\n\nvoid* vDSP_vfracD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vfracD called\");\n    return NULL;\n}\n\nvoid* vDSP_vgathr(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vgathr called\");\n    return NULL;\n}\n\nvoid* vDSP_vgathrD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vgathrD called\");\n    return NULL;\n}\n\nvoid* vDSP_vgathra(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vgathra called\");\n    return NULL;\n}\n\nvoid* vDSP_vgathraD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vgathraD called\");\n    return NULL;\n}\n\nvoid* vDSP_vgen(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vgen called\");\n    return NULL;\n}\n\nvoid* vDSP_vgenD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vgenD called\");\n    return NULL;\n}\n\nvoid* vDSP_vgenp(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vgenp called\");\n    return NULL;\n}\n\nvoid* vDSP_vgenpD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vgenpD called\");\n    return NULL;\n}\n\nvoid* vDSP_viclip(void)\n{\n    if (verbose) puts(\"STUB: vDSP_viclip called\");\n    return NULL;\n}\n\nvoid* vDSP_viclipD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_viclipD called\");\n    return NULL;\n}\n\nvoid* vDSP_vindex(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vindex called\");\n    return NULL;\n}\n\nvoid* vDSP_vindexD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vindexD called\");\n    return NULL;\n}\n\nvoid* vDSP_vintb(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vintb called\");\n    return NULL;\n}\n\nvoid* vDSP_vintbD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vintbD called\");\n    return NULL;\n}\n\nvoid* vDSP_vlim(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vlim called\");\n    return NULL;\n}\n\nvoid* vDSP_vlimD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vlimD called\");\n    return NULL;\n}\n\nvoid* vDSP_vlint(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vlint called\");\n    return NULL;\n}\n\nvoid* vDSP_vlintD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vlintD called\");\n    return NULL;\n}\n\nvoid* vDSP_vma(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vma called\");\n    return NULL;\n}\n\nvoid* vDSP_vmaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmaD called\");\n    return NULL;\n}\n\nvoid* vDSP_vmax(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmax called\");\n    return NULL;\n}\n\nvoid* vDSP_vmaxD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmaxD called\");\n    return NULL;\n}\n\nvoid* vDSP_vmaxmg(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmaxmg called\");\n    return NULL;\n}\n\nvoid* vDSP_vmaxmgD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmaxmgD called\");\n    return NULL;\n}\n\nvoid* vDSP_vmin(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmin called\");\n    return NULL;\n}\n\nvoid* vDSP_vminD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vminD called\");\n    return NULL;\n}\n\nvoid* vDSP_vminmg(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vminmg called\");\n    return NULL;\n}\n\nvoid* vDSP_vminmgD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vminmgD called\");\n    return NULL;\n}\n\nvoid* vDSP_vmma(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmma called\");\n    return NULL;\n}\n\nvoid* vDSP_vmmaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmmaD called\");\n    return NULL;\n}\n\nvoid* vDSP_vmmsb(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmmsb called\");\n    return NULL;\n}\n\nvoid* vDSP_vmmsbD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmmsbD called\");\n    return NULL;\n}\n\nvoid* vDSP_vmsa(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmsa called\");\n    return NULL;\n}\n\nvoid* vDSP_vmsaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmsaD called\");\n    return NULL;\n}\n\nvoid* vDSP_vmsb(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmsb called\");\n    return NULL;\n}\n\nvoid* vDSP_vmsbD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmsbD called\");\n    return NULL;\n}\n\nvoid* vDSP_vmul(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmul called\");\n    return NULL;\n}\n\nvoid* vDSP_vmulD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vmulD called\");\n    return NULL;\n}\n\nvoid* vDSP_vnabs(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vnabs called\");\n    return NULL;\n}\n\nvoid* vDSP_vnabsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vnabsD called\");\n    return NULL;\n}\n\nvoid* vDSP_vneg(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vneg called\");\n    return NULL;\n}\n\nvoid* vDSP_vnegD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vnegD called\");\n    return NULL;\n}\n\nvoid* vDSP_vpoly(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vpoly called\");\n    return NULL;\n}\n\nvoid* vDSP_vpolyD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vpolyD called\");\n    return NULL;\n}\n\nvoid* vDSP_vpythg(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vpythg called\");\n    return NULL;\n}\n\nvoid* vDSP_vpythgD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vpythgD called\");\n    return NULL;\n}\n\nvoid* vDSP_vqint(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vqint called\");\n    return NULL;\n}\n\nvoid* vDSP_vqintD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vqintD called\");\n    return NULL;\n}\n\nvoid* vDSP_vramp(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vramp called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampD called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmul(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmul called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmul2(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmul2 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmul2D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmul2D called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmul2_s1_15(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmul2_s1_15 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmul2_s8_24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmul2_s8_24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmulD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmulD called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmul_s1_15(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmul_s1_15 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmul_s8_24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmul_s8_24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmuladd(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmuladd called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmuladd2(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmuladd2 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmuladd2D(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmuladd2D called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmuladd2_s1_15(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmuladd2_s1_15 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmuladd2_s8_24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmuladd2_s8_24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmuladdD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmuladdD called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmuladd_s1_15(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmuladd_s1_15 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrampmuladd_s8_24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrampmuladd_s8_24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vrsum(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrsum called\");\n    return NULL;\n}\n\nvoid* vDSP_vrsumD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrsumD called\");\n    return NULL;\n}\n\nvoid* vDSP_vrvrs(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrvrs called\");\n    return NULL;\n}\n\nvoid* vDSP_vrvrsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vrvrsD called\");\n    return NULL;\n}\n\n/*\nvoid* vDSP_vsadd(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsadd called\");\n    return NULL;\n}\n*/\n\nvoid* vDSP_vsaddD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsaddD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsaddi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsaddi called\");\n    return NULL;\n}\n\nvoid* vDSP_vsbm(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsbm called\");\n    return NULL;\n}\n\nvoid* vDSP_vsbmD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsbmD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsbsbm(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsbsbm called\");\n    return NULL;\n}\n\nvoid* vDSP_vsbsbmD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsbsbmD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsbsm(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsbsm called\");\n    return NULL;\n}\n\nvoid* vDSP_vsbsmD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsbsmD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsdiv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsdiv called\");\n    return NULL;\n}\n\nvoid* vDSP_vsdivD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsdivD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsdivi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsdivi called\");\n    return NULL;\n}\n\nvoid* vDSP_vsimps(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsimps called\");\n    return NULL;\n}\n\nvoid* vDSP_vsimpsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsimpsD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsma(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsma called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmaD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmfix24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmfix24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmfixu24(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmfixu24 called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmsa(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmsa called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmsaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmsaD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmsb(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmsb called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmsbD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmsbD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmsma(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmsma called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmsmaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmsmaD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmul(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmul called\");\n    return NULL;\n}\n\nvoid* vDSP_vsmulD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsmulD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsort(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsort called\");\n    return NULL;\n}\n\nvoid* vDSP_vsortD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsortD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsorti(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsorti called\");\n    return NULL;\n}\n\nvoid* vDSP_vsortiD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsortiD called\");\n    return NULL;\n}\n\nvoid* vDSP_vspdp(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vspdp called\");\n    return NULL;\n}\n\nvoid* vDSP_vsq(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsq called\");\n    return NULL;\n}\n\nvoid* vDSP_vsqD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsqD called\");\n    return NULL;\n}\n\nvoid* vDSP_vssq(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vssq called\");\n    return NULL;\n}\n\nvoid* vDSP_vssqD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vssqD called\");\n    return NULL;\n}\n\nvoid* vDSP_vsub(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsub called\");\n    return NULL;\n}\n\nvoid* vDSP_vsubD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vsubD called\");\n    return NULL;\n}\n\nvoid* vDSP_vswap(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vswap called\");\n    return NULL;\n}\n\nvoid* vDSP_vswapD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vswapD called\");\n    return NULL;\n}\n\nvoid* vDSP_vswmax(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vswmax called\");\n    return NULL;\n}\n\nvoid* vDSP_vswmaxD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vswmaxD called\");\n    return NULL;\n}\n\nvoid* vDSP_vswsum(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vswsum called\");\n    return NULL;\n}\n\nvoid* vDSP_vswsumD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vswsumD called\");\n    return NULL;\n}\n\nvoid* vDSP_vtabi(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vtabi called\");\n    return NULL;\n}\n\nvoid* vDSP_vtabiD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vtabiD called\");\n    return NULL;\n}\n\nvoid* vDSP_vthr(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vthr called\");\n    return NULL;\n}\n\nvoid* vDSP_vthrD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vthrD called\");\n    return NULL;\n}\n\nvoid* vDSP_vthres(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vthres called\");\n    return NULL;\n}\n\nvoid* vDSP_vthresD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vthresD called\");\n    return NULL;\n}\n\nvoid* vDSP_vthrsc(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vthrsc called\");\n    return NULL;\n}\n\nvoid* vDSP_vthrscD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vthrscD called\");\n    return NULL;\n}\n\nvoid* vDSP_vtmerg(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vtmerg called\");\n    return NULL;\n}\n\nvoid* vDSP_vtmergD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vtmergD called\");\n    return NULL;\n}\n\nvoid* vDSP_vtrapz(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vtrapz called\");\n    return NULL;\n}\n\nvoid* vDSP_vtrapzD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_vtrapzD called\");\n    return NULL;\n}\n\nvoid* vDSP_wiener(void)\n{\n    if (verbose) puts(\"STUB: vDSP_wiener called\");\n    return NULL;\n}\n\nvoid* vDSP_wienerD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_wienerD called\");\n    return NULL;\n}\n\nvoid* vDSP_zaspec(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zaspec called\");\n    return NULL;\n}\n\nvoid* vDSP_zaspecD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zaspecD called\");\n    return NULL;\n}\n\nvoid* vDSP_zcoher(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zcoher called\");\n    return NULL;\n}\n\nvoid* vDSP_zcoherD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zcoherD called\");\n    return NULL;\n}\n\nvoid* vDSP_zconv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zconv called\");\n    return NULL;\n}\n\nvoid* vDSP_zconvD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zconvD called\");\n    return NULL;\n}\n\nvoid* vDSP_zcspec(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zcspec called\");\n    return NULL;\n}\n\nvoid* vDSP_zcspecD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zcspecD called\");\n    return NULL;\n}\n\nvoid* vDSP_zdotpr(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zdotpr called\");\n    return NULL;\n}\n\nvoid* vDSP_zdotprD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zdotprD called\");\n    return NULL;\n}\n\nvoid* vDSP_zidotpr(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zidotpr called\");\n    return NULL;\n}\n\nvoid* vDSP_zidotprD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zidotprD called\");\n    return NULL;\n}\n\nvoid* vDSP_zmma(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zmma called\");\n    return NULL;\n}\n\nvoid* vDSP_zmmaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zmmaD called\");\n    return NULL;\n}\n\nvoid* vDSP_zmms(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zmms called\");\n    return NULL;\n}\n\nvoid* vDSP_zmmsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zmmsD called\");\n    return NULL;\n}\n\nvoid* vDSP_zmmul(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zmmul called\");\n    return NULL;\n}\n\nvoid* vDSP_zmmulD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zmmulD called\");\n    return NULL;\n}\n\nvoid* vDSP_zmsm(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zmsm called\");\n    return NULL;\n}\n\nvoid* vDSP_zmsmD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zmsmD called\");\n    return NULL;\n}\n\nvoid* vDSP_zrdesamp(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrdesamp called\");\n    return NULL;\n}\n\nvoid* vDSP_zrdesampD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrdesampD called\");\n    return NULL;\n}\n\nvoid* vDSP_zrdotpr(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrdotpr called\");\n    return NULL;\n}\n\nvoid* vDSP_zrdotprD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrdotprD called\");\n    return NULL;\n}\n\nvoid* vDSP_zrvadd(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrvadd called\");\n    return NULL;\n}\n\nvoid* vDSP_zrvaddD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrvaddD called\");\n    return NULL;\n}\n\nvoid* vDSP_zrvdiv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrvdiv called\");\n    return NULL;\n}\n\nvoid* vDSP_zrvdivD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrvdivD called\");\n    return NULL;\n}\n\nvoid* vDSP_zrvmul(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrvmul called\");\n    return NULL;\n}\n\nvoid* vDSP_zrvmulD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrvmulD called\");\n    return NULL;\n}\n\nvoid* vDSP_zrvsub(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrvsub called\");\n    return NULL;\n}\n\nvoid* vDSP_zrvsubD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zrvsubD called\");\n    return NULL;\n}\n\nvoid* vDSP_ztoc(void)\n{\n    if (verbose) puts(\"STUB: vDSP_ztoc called\");\n    return NULL;\n}\n\nvoid* vDSP_ztocD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_ztocD called\");\n    return NULL;\n}\n\nvoid* vDSP_ztrans(void)\n{\n    if (verbose) puts(\"STUB: vDSP_ztrans called\");\n    return NULL;\n}\n\nvoid* vDSP_ztransD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_ztransD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvabs(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvabs called\");\n    return NULL;\n}\n\nvoid* vDSP_zvabsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvabsD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvadd(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvadd called\");\n    return NULL;\n}\n\nvoid* vDSP_zvaddD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvaddD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvcma(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvcma called\");\n    return NULL;\n}\n\nvoid* vDSP_zvcmaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvcmaD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvcmul(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvcmul called\");\n    return NULL;\n}\n\nvoid* vDSP_zvcmulD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvcmulD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvconj(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvconj called\");\n    return NULL;\n}\n\nvoid* vDSP_zvconjD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvconjD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvdiv(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvdiv called\");\n    return NULL;\n}\n\nvoid* vDSP_zvdivD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvdivD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvfill(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvfill called\");\n    return NULL;\n}\n\nvoid* vDSP_zvfillD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvfillD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvma(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvma called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmaD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmags(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmags called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmagsD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmagsD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmgsa(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmgsa called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmgsaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmgsaD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmmaa(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmmaa called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmmaaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmmaaD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmov(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmov called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmovD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmovD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmul(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmul called\");\n    return NULL;\n}\n\nvoid* vDSP_zvmulD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvmulD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvneg(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvneg called\");\n    return NULL;\n}\n\nvoid* vDSP_zvnegD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvnegD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvphas(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvphas called\");\n    return NULL;\n}\n\nvoid* vDSP_zvphasD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvphasD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvsma(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvsma called\");\n    return NULL;\n}\n\nvoid* vDSP_zvsmaD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvsmaD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvsub(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvsub called\");\n    return NULL;\n}\n\nvoid* vDSP_zvsubD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvsubD called\");\n    return NULL;\n}\n\nvoid* vDSP_zvzsml(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvzsml called\");\n    return NULL;\n}\n\nvoid* vDSP_zvzsmlD(void)\n{\n    if (verbose) puts(\"STUB: vDSP_zvzsmlD called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/vMisc/CMakeLists.txt",
    "content": "project(libvMisc)\n\nset(DYLIB_INSTALL_NAME \"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib\")\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"671.250.4\")\n\nadd_darling_library(vMisc SHARED\n    src/libvMisc.c\n)\nset_property(TARGET vMisc PROPERTY DYLIB_INSTALL_NAME ${DYLIB_INSTALL_NAME})\nset_property(TARGET vMisc PROPERTY DYLIB_BUILD_NAME libvMisc.dylib)\nmake_fat(vMisc)\ntarget_link_libraries(vMisc system)\ninstall(TARGETS vMisc DESTINATION libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A)\nInstallSymlink(\n\tVersions/A/libvMisc.dylib\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/libvMisc.dylib\n)\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/vMisc/include/libvMisc/libvMisc.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _libvMisc_H_\n#define _libvMisc_H_\n\nvoid* VVACOS(void);\nvoid* VVACOSF(void);\nvoid* VVACOSF_(void);\nvoid* VVACOSH(void);\nvoid* VVACOSHF(void);\nvoid* VVACOSHF_(void);\nvoid* VVACOSH_(void);\nvoid* VVACOS_(void);\nvoid* VVASIN(void);\nvoid* VVASINF(void);\nvoid* VVASINF_(void);\nvoid* VVASINH(void);\nvoid* VVASINHF(void);\nvoid* VVASINHF_(void);\nvoid* VVASINH_(void);\nvoid* VVASIN_(void);\nvoid* VVATAN(void);\nvoid* VVATAN2(void);\nvoid* VVATAN2F(void);\nvoid* VVATAN2F_(void);\nvoid* VVATAN2_(void);\nvoid* VVATANF(void);\nvoid* VVATANF_(void);\nvoid* VVATANH(void);\nvoid* VVATANHF(void);\nvoid* VVATANHF_(void);\nvoid* VVATANH_(void);\nvoid* VVATAN_(void);\nvoid* VVCBRT(void);\nvoid* VVCBRTF(void);\nvoid* VVCBRTF_(void);\nvoid* VVCBRT_(void);\nvoid* VVCEIL(void);\nvoid* VVCEILF(void);\nvoid* VVCEILF_(void);\nvoid* VVCEIL_(void);\nvoid* VVCOPYSIGN(void);\nvoid* VVCOPYSIGNF(void);\nvoid* VVCOPYSIGNF_(void);\nvoid* VVCOPYSIGN_(void);\nvoid* VVCOS(void);\nvoid* VVCOSF(void);\nvoid* VVCOSF_(void);\nvoid* VVCOSH(void);\nvoid* VVCOSHF(void);\nvoid* VVCOSHF_(void);\nvoid* VVCOSH_(void);\nvoid* VVCOSISIN(void);\nvoid* VVCOSISINF(void);\nvoid* VVCOSISINF_(void);\nvoid* VVCOSISIN_(void);\nvoid* VVCOSPI(void);\nvoid* VVCOSPIF(void);\nvoid* VVCOSPIF_(void);\nvoid* VVCOSPI_(void);\nvoid* VVCOS_(void);\nvoid* VVDIV(void);\nvoid* VVDIVF(void);\nvoid* VVDIVF_(void);\nvoid* VVDIV_(void);\nvoid* VVEXP(void);\nvoid* VVEXP2(void);\nvoid* VVEXP2F(void);\nvoid* VVEXP2F_(void);\nvoid* VVEXP2_(void);\nvoid* VVEXPF(void);\nvoid* VVEXPF_(void);\nvoid* VVEXPM1(void);\nvoid* VVEXPM1F(void);\nvoid* VVEXPM1F_(void);\nvoid* VVEXPM1_(void);\nvoid* VVEXP_(void);\nvoid* VVFABF(void);\nvoid* VVFABF_(void);\nvoid* VVFABS(void);\nvoid* VVFABSF(void);\nvoid* VVFABSF_(void);\nvoid* VVFABS_(void);\nvoid* VVFLOOR(void);\nvoid* VVFLOORF(void);\nvoid* VVFLOORF_(void);\nvoid* VVFLOOR_(void);\nvoid* VVFMOD(void);\nvoid* VVFMODF(void);\nvoid* VVFMODF_(void);\nvoid* VVFMOD_(void);\nvoid* VVINT(void);\nvoid* VVINTF(void);\nvoid* VVINTF_(void);\nvoid* VVINT_(void);\nvoid* VVLOG(void);\nvoid* VVLOG10(void);\nvoid* VVLOG10F(void);\nvoid* VVLOG10F_(void);\nvoid* VVLOG10_(void);\nvoid* VVLOG1P(void);\nvoid* VVLOG1PF(void);\nvoid* VVLOG1PF_(void);\nvoid* VVLOG1P_(void);\nvoid* VVLOG2(void);\nvoid* VVLOG2F(void);\nvoid* VVLOG2F_(void);\nvoid* VVLOG2_(void);\nvoid* VVLOGB(void);\nvoid* VVLOGBF(void);\nvoid* VVLOGBF_(void);\nvoid* VVLOGB_(void);\nvoid* VVLOGF(void);\nvoid* VVLOGF_(void);\nvoid* VVLOG_(void);\nvoid* VVNEXTAFTER(void);\nvoid* VVNEXTAFTERF(void);\nvoid* VVNEXTAFTERF_(void);\nvoid* VVNEXTAFTER_(void);\nvoid* VVNINT(void);\nvoid* VVNINTF(void);\nvoid* VVNINTF_(void);\nvoid* VVNINT_(void);\nvoid* VVPOW(void);\nvoid* VVPOWF(void);\nvoid* VVPOWF_(void);\nvoid* VVPOWS(void);\nvoid* VVPOWSF(void);\nvoid* VVPOWSF_(void);\nvoid* VVPOWS_(void);\nvoid* VVPOW_(void);\nvoid* VVREC(void);\nvoid* VVRECF(void);\nvoid* VVRECF_(void);\nvoid* VVREC_(void);\nvoid* VVREMAINDER(void);\nvoid* VVREMAINDERF(void);\nvoid* VVREMAINDERF_(void);\nvoid* VVREMAINDER_(void);\nvoid* VVRSQRT(void);\nvoid* VVRSQRTF(void);\nvoid* VVRSQRTF_(void);\nvoid* VVRSQRT_(void);\nvoid* VVSIN(void);\nvoid* VVSINCOS(void);\nvoid* VVSINCOSF(void);\nvoid* VVSINCOSF_(void);\nvoid* VVSINCOS_(void);\nvoid* VVSINF(void);\nvoid* VVSINF_(void);\nvoid* VVSINH(void);\nvoid* VVSINHF(void);\nvoid* VVSINHF_(void);\nvoid* VVSINH_(void);\nvoid* VVSINPI(void);\nvoid* VVSINPIF(void);\nvoid* VVSINPIF_(void);\nvoid* VVSINPI_(void);\nvoid* VVSIN_(void);\nvoid* VVSQRT(void);\nvoid* VVSQRTF(void);\nvoid* VVSQRTF_(void);\nvoid* VVSQRT_(void);\nvoid* VVTAN(void);\nvoid* VVTANF(void);\nvoid* VVTANF_(void);\nvoid* VVTANH(void);\nvoid* VVTANHF(void);\nvoid* VVTANHF_(void);\nvoid* VVTANH_(void);\nvoid* VVTANPI(void);\nvoid* VVTANPIF(void);\nvoid* VVTANPIF_(void);\nvoid* VVTANPI_(void);\nvoid* VVTAN_(void);\nvoid* __cblas_isamax(void);\nvoid* __cblas_sasum(void);\nvoid* __cblas_saxpy(void);\nvoid* __cblas_sgemm(void);\nvoid* __cblas_sgemv(void);\nvoid* __cblas_srot(void);\nvoid* __cblas_sscal(void);\nvoid* __cblas_sswap(void);\nvoid* dMultMatMat_16x16(void);\nvoid* dMultMatMat_32x32(void);\nvoid* dMultMatMat_4x4(void);\nvoid* dMultMatMat_8x8(void);\nvoid* dMultMatVec_16x16(void);\nvoid* dMultMatVec_32x32(void);\nvoid* dMultMatVec_4x4(void);\nvoid* dMultMatVec_8x8(void);\nvoid* dMultVecMat_16x16(void);\nvoid* dMultVecMat_32x32(void);\nvoid* dMultVecMat_4x4(void);\nvoid* dMultVecMat_8x8(void);\nvoid* sMultMatMat_16x16(void);\nvoid* sMultMatMat_32x32(void);\nvoid* sMultMatMat_4x4(void);\nvoid* sMultMatMat_8x8(void);\nvoid* sMultMatVec_16x16(void);\nvoid* sMultMatVec_32x32(void);\nvoid* sMultMatVec_4x4(void);\nvoid* sMultMatVec_8x8(void);\nvoid* sMultVecMat_16x16(void);\nvoid* sMultVecMat_32x32(void);\nvoid* sMultVecMat_4x4(void);\nvoid* sMultVecMat_8x8(void);\nvoid* vA1024Shift(void);\nvoid* vA128Shift(void);\nvoid* vA256Shift(void);\nvoid* vA512Shift(void);\nvoid* vA64Shift(void);\nvoid* vA64Shift2(void);\nvoid* vIsamax(void);\nvoid* vIsamin(void);\nvoid* vIsmax(void);\nvoid* vIsmin(void);\nvoid* vL1024Rotate(void);\nvoid* vL128Rotate(void);\nvoid* vL256Rotate(void);\nvoid* vL512Rotate(void);\nvoid* vL64Rotate(void);\nvoid* vL64Rotate2(void);\nvoid* vLL1024Shift(void);\nvoid* vLL128Shift(void);\nvoid* vLL256Shift(void);\nvoid* vLL512Shift(void);\nvoid* vLL64Shift(void);\nvoid* vLL64Shift2(void);\nvoid* vLR1024Shift(void);\nvoid* vLR128Shift(void);\nvoid* vLR256Shift(void);\nvoid* vLR512Shift(void);\nvoid* vLR64Shift(void);\nvoid* vLR64Shift2(void);\nvoid* vMultMatMat_16x16(void);\nvoid* vMultMatMat_32x32(void);\nvoid* vMultMatMat_4x4(void);\nvoid* vMultMatMat_8x8(void);\nvoid* vMultMatVec_16x16(void);\nvoid* vMultMatVec_32x32(void);\nvoid* vMultMatVec_4x4(void);\nvoid* vMultMatVec_8x8(void);\nvoid* vMultVecMat_16x16(void);\nvoid* vMultVecMat_32x32(void);\nvoid* vMultVecMat_4x4(void);\nvoid* vMultVecMat_8x8(void);\nvoid* vR1024Rotate(void);\nvoid* vR128Rotate(void);\nvoid* vR256Rotate(void);\nvoid* vR512Rotate(void);\nvoid* vR64Rotate(void);\nvoid* vR64Rotate2(void);\nvoid* vS1024Add(void);\nvoid* vS1024AddS(void);\nvoid* vS1024Divide(void);\nvoid* vS1024HalfMultiply(void);\nvoid* vS1024Mod(void);\nvoid* vS1024Neg(void);\nvoid* vS1024Sub(void);\nvoid* vS1024SubS(void);\nvoid* vS128Add(void);\nvoid* vS128AddS(void);\nvoid* vS128Divide(void);\nvoid* vS128FullMultiply(void);\nvoid* vS128HalfMultiply(void);\nvoid* vS128Neg(void);\nvoid* vS128Sub(void);\nvoid* vS128SubS(void);\nvoid* vS16Divide(void);\nvoid* vS16HalfMultiply(void);\nvoid* vS256Add(void);\nvoid* vS256AddS(void);\nvoid* vS256Divide(void);\nvoid* vS256FullMultiply(void);\nvoid* vS256HalfMultiply(void);\nvoid* vS256Mod(void);\nvoid* vS256Neg(void);\nvoid* vS256Sub(void);\nvoid* vS256SubS(void);\nvoid* vS32Divide(void);\nvoid* vS32FullMulEven(void);\nvoid* vS32FullMulOdd(void);\nvoid* vS32HalfMultiply(void);\nvoid* vS512Add(void);\nvoid* vS512AddS(void);\nvoid* vS512Divide(void);\nvoid* vS512FullMultiply(void);\nvoid* vS512HalfMultiply(void);\nvoid* vS512Mod(void);\nvoid* vS512Neg(void);\nvoid* vS512Sub(void);\nvoid* vS512SubS(void);\nvoid* vS64Add(void);\nvoid* vS64AddS(void);\nvoid* vS64Divide(void);\nvoid* vS64FullMulEven(void);\nvoid* vS64FullMulOdd(void);\nvoid* vS64HalfMultiply(void);\nvoid* vS64Neg(void);\nvoid* vS64Sub(void);\nvoid* vS64SubS(void);\nvoid* vS8Divide(void);\nvoid* vS8HalfMultiply(void);\nvoid* vSasum(void);\nvoid* vSaxpy(void);\nvoid* vScopy(void);\nvoid* vSdot(void);\nvoid* vSgeadd(void);\nvoid* vSgemm(void);\nvoid* vSgemtx(void);\nvoid* vSgemul(void);\nvoid* vSgemv(void);\nvoid* vSgemx(void);\nvoid* vSgesub(void);\nvoid* vSgetmi(void);\nvoid* vSgetmo(void);\nvoid* vSgevv(void);\nvoid* vSnaxpy(void);\nvoid* vSndot(void);\nvoid* vSnorm2(void);\nvoid* vSnrm2(void);\nvoid* vSrot(void);\nvoid* vSscal(void);\nvoid* vSsum(void);\nvoid* vSswap(void);\nvoid* vSyax(void);\nvoid* vSzaxpy(void);\nvoid* vU1024Add(void);\nvoid* vU1024AddS(void);\nvoid* vU1024Divide(void);\nvoid* vU1024HalfMultiply(void);\nvoid* vU1024Mod(void);\nvoid* vU1024Neg(void);\nvoid* vU1024Sub(void);\nvoid* vU1024SubS(void);\nvoid* vU128Add(void);\nvoid* vU128AddS(void);\nvoid* vU128Divide(void);\nvoid* vU128FullMultiply(void);\nvoid* vU128HalfMultiply(void);\nvoid* vU128Neg(void);\nvoid* vU128Sub(void);\nvoid* vU128SubS(void);\nvoid* vU16Divide(void);\nvoid* vU16HalfMultiply(void);\nvoid* vU256Add(void);\nvoid* vU256AddS(void);\nvoid* vU256Divide(void);\nvoid* vU256FullMultiply(void);\nvoid* vU256HalfMultiply(void);\nvoid* vU256Mod(void);\nvoid* vU256Neg(void);\nvoid* vU256Sub(void);\nvoid* vU256SubS(void);\nvoid* vU32Divide(void);\nvoid* vU32FullMulEven(void);\nvoid* vU32FullMulOdd(void);\nvoid* vU32HalfMultiply(void);\nvoid* vU512Add(void);\nvoid* vU512AddS(void);\nvoid* vU512Divide(void);\nvoid* vU512FullMultiply(void);\nvoid* vU512HalfMultiply(void);\nvoid* vU512Mod(void);\nvoid* vU512Neg(void);\nvoid* vU512Sub(void);\nvoid* vU512SubS(void);\nvoid* vU64Add(void);\nvoid* vU64AddS(void);\nvoid* vU64Divide(void);\nvoid* vU64FullMulEven(void);\nvoid* vU64FullMulOdd(void);\nvoid* vU64HalfMultiply(void);\nvoid* vU64Neg(void);\nvoid* vU64Sub(void);\nvoid* vU64SubS(void);\nvoid* vU8Divide(void);\nvoid* vU8HalfMultiply(void);\nvoid* vacosf(void);\nvoid* vacoshf(void);\nvoid* vasinf(void);\nvoid* vasinhf(void);\nvoid* vatan2f(void);\nvoid* vatanf(void);\nvoid* vatanhf(void);\nvoid* vceilf(void);\nvoid* vclassifyf(void);\nvoid* vcopysignf(void);\nvoid* vcosf(void);\nvoid* vcoshf(void);\nvoid* vcospif(void);\nvoid* vdivf(void);\nvoid* vec_sdot(void);\nvoid* vexp2f(void);\nvoid* vexpf(void);\nvoid* vexpm1f(void);\nvoid* vfabf(void);\nvoid* vfabsf(void);\nvoid* vfloorf(void);\nvoid* vfmodf(void);\nvoid* vintf(void);\nvoid* vipowf(void);\nvoid* vlog10f(void);\nvoid* vlog1pf(void);\nvoid* vlog2f(void);\nvoid* vlogbf(void);\nvoid* vlogf(void);\nvoid* vnextafterf(void);\nvoid* vnintf(void);\nvoid* vpowf(void);\nvoid* vrecf(void);\nvoid* vremainderf(void);\nvoid* vremquof(void);\nvoid* vrsqrtf(void);\nvoid* vscalbf(void);\nvoid* vsignbitf(void);\nvoid* vsincosf(void);\nvoid* vsinf(void);\nvoid* vsinhf(void);\nvoid* vsinpif(void);\nvoid* vsqrtf(void);\nvoid* vtablelookup(void);\nvoid* vtanf(void);\nvoid* vtanhf(void);\nvoid* vtanpif(void);\nvoid* vtruncf(void);\nvoid* vvacos(void);\nvoid* vvacos_(void);\nvoid* vvacosf(void);\nvoid* vvacosf_(void);\nvoid* vvacosh(void);\nvoid* vvacosh_(void);\nvoid* vvacoshf(void);\nvoid* vvacoshf_(void);\nvoid* vvasin(void);\nvoid* vvasin_(void);\nvoid* vvasinf(void);\nvoid* vvasinf_(void);\nvoid* vvasinh(void);\nvoid* vvasinh_(void);\nvoid* vvasinhf(void);\nvoid* vvasinhf_(void);\nvoid* vvatan(void);\nvoid* vvatan2(void);\nvoid* vvatan2_(void);\nvoid* vvatan2f(void);\nvoid* vvatan2f_(void);\nvoid* vvatan_(void);\nvoid* vvatanf(void);\nvoid* vvatanf_(void);\nvoid* vvatanh(void);\nvoid* vvatanh_(void);\nvoid* vvatanhf(void);\nvoid* vvatanhf_(void);\nvoid* vvcbrt(void);\nvoid* vvcbrt_(void);\nvoid* vvcbrtf(void);\nvoid* vvcbrtf_(void);\nvoid* vvceil(void);\nvoid* vvceil_(void);\nvoid* vvceilf(void);\nvoid* vvceilf_(void);\nvoid* vvcopysign(void);\nvoid* vvcopysign_(void);\nvoid* vvcopysignf(void);\nvoid* vvcopysignf_(void);\nvoid* vvcos(void);\nvoid* vvcos_(void);\nvoid* vvcosf(void);\nvoid* vvcosf_(void);\nvoid* vvcosh(void);\nvoid* vvcosh_(void);\nvoid* vvcoshf(void);\nvoid* vvcoshf_(void);\nvoid* vvcosisin(void);\nvoid* vvcosisin_(void);\nvoid* vvcosisinf(void);\nvoid* vvcosisinf_(void);\nvoid* vvcospi(void);\nvoid* vvcospi_(void);\nvoid* vvcospif(void);\nvoid* vvcospif_(void);\nvoid* vvdiv(void);\nvoid* vvdiv_(void);\nvoid* vvdivf(void);\nvoid* vvdivf_(void);\nvoid* vvexp(void);\nvoid* vvexp2(void);\nvoid* vvexp2_(void);\nvoid* vvexp2f(void);\nvoid* vvexp2f_(void);\nvoid* vvexp_(void);\nvoid* vvexpf(void);\nvoid* vvexpf_(void);\nvoid* vvexpm1(void);\nvoid* vvexpm1_(void);\nvoid* vvexpm1f(void);\nvoid* vvexpm1f_(void);\nvoid* vvfabf(void);\nvoid* vvfabf_(void);\nvoid* vvfabs(void);\nvoid* vvfabs_(void);\nvoid* vvfabsf(void);\nvoid* vvfabsf_(void);\nvoid* vvfloor(void);\nvoid* vvfloor_(void);\nvoid* vvfloorf(void);\nvoid* vvfloorf_(void);\nvoid* vvfmod(void);\nvoid* vvfmod_(void);\nvoid* vvfmodf(void);\nvoid* vvfmodf_(void);\nvoid* vvint(void);\nvoid* vvint_(void);\nvoid* vvintf(void);\nvoid* vvintf_(void);\nvoid* vvlog(void);\nvoid* vvlog10(void);\nvoid* vvlog10_(void);\nvoid* vvlog10f(void);\nvoid* vvlog10f_(void);\nvoid* vvlog1p(void);\nvoid* vvlog1p_(void);\nvoid* vvlog1pf(void);\nvoid* vvlog1pf_(void);\nvoid* vvlog2(void);\nvoid* vvlog2_(void);\nvoid* vvlog2f(void);\nvoid* vvlog2f_(void);\nvoid* vvlog_(void);\nvoid* vvlogb(void);\nvoid* vvlogb_(void);\nvoid* vvlogbf(void);\nvoid* vvlogbf_(void);\nvoid* vvlogf(void);\nvoid* vvlogf_(void);\nvoid* vvnextafter(void);\nvoid* vvnextafter_(void);\nvoid* vvnextafterf(void);\nvoid* vvnextafterf_(void);\nvoid* vvnint(void);\nvoid* vvnint_(void);\nvoid* vvnintf(void);\nvoid* vvnintf_(void);\nvoid* vvpow(void);\nvoid* vvpow_(void);\nvoid* vvpowf(void);\nvoid* vvpowf_(void);\nvoid* vvpows(void);\nvoid* vvpows_(void);\nvoid* vvpowsf(void);\nvoid* vvpowsf_(void);\nvoid* vvrec(void);\nvoid* vvrec_(void);\nvoid* vvrecf(void);\nvoid* vvrecf_(void);\nvoid* vvremainder(void);\nvoid* vvremainder_(void);\nvoid* vvremainderf(void);\nvoid* vvremainderf_(void);\nvoid* vvrsqrt(void);\nvoid* vvrsqrt_(void);\nvoid* vvrsqrtf(void);\nvoid* vvrsqrtf_(void);\nvoid* vvsin(void);\nvoid* vvsin_(void);\nvoid* vvsincos(void);\nvoid* vvsincos_(void);\nvoid* vvsincosf(void);\nvoid* vvsincosf_(void);\nvoid* vvsinf(void);\nvoid* vvsinf_(void);\nvoid* vvsinh(void);\nvoid* vvsinh_(void);\nvoid* vvsinhf(void);\nvoid* vvsinhf_(void);\nvoid* vvsinpi(void);\nvoid* vvsinpi_(void);\nvoid* vvsinpif(void);\nvoid* vvsinpif_(void);\nvoid* vvsqrt(void);\nvoid* vvsqrt_(void);\nvoid* vvsqrtf(void);\nvoid* vvsqrtf_(void);\nvoid* vvtan(void);\nvoid* vvtan_(void);\nvoid* vvtanf(void);\nvoid* vvtanf_(void);\nvoid* vvtanh(void);\nvoid* vvtanh_(void);\nvoid* vvtanhf(void);\nvoid* vvtanhf_(void);\nvoid* vvtanpi(void);\nvoid* vvtanpi_(void);\nvoid* vvtanpif(void);\nvoid* vvtanpif_(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accelerate/vecLib/vMisc/src/libvMisc.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <libvMisc/libvMisc.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* VVACOS(void)\n{\n    if (verbose) puts(\"STUB: VVACOS called\");\n    return NULL;\n}\n\nvoid* VVACOSF(void)\n{\n    if (verbose) puts(\"STUB: VVACOSF called\");\n    return NULL;\n}\n\nvoid* VVACOSF_(void)\n{\n    if (verbose) puts(\"STUB: VVACOSF_ called\");\n    return NULL;\n}\n\nvoid* VVACOSH(void)\n{\n    if (verbose) puts(\"STUB: VVACOSH called\");\n    return NULL;\n}\n\nvoid* VVACOSHF(void)\n{\n    if (verbose) puts(\"STUB: VVACOSHF called\");\n    return NULL;\n}\n\nvoid* VVACOSHF_(void)\n{\n    if (verbose) puts(\"STUB: VVACOSHF_ called\");\n    return NULL;\n}\n\nvoid* VVACOSH_(void)\n{\n    if (verbose) puts(\"STUB: VVACOSH_ called\");\n    return NULL;\n}\n\nvoid* VVACOS_(void)\n{\n    if (verbose) puts(\"STUB: VVACOS_ called\");\n    return NULL;\n}\n\nvoid* VVASIN(void)\n{\n    if (verbose) puts(\"STUB: VVASIN called\");\n    return NULL;\n}\n\nvoid* VVASINF(void)\n{\n    if (verbose) puts(\"STUB: VVASINF called\");\n    return NULL;\n}\n\nvoid* VVASINF_(void)\n{\n    if (verbose) puts(\"STUB: VVASINF_ called\");\n    return NULL;\n}\n\nvoid* VVASINH(void)\n{\n    if (verbose) puts(\"STUB: VVASINH called\");\n    return NULL;\n}\n\nvoid* VVASINHF(void)\n{\n    if (verbose) puts(\"STUB: VVASINHF called\");\n    return NULL;\n}\n\nvoid* VVASINHF_(void)\n{\n    if (verbose) puts(\"STUB: VVASINHF_ called\");\n    return NULL;\n}\n\nvoid* VVASINH_(void)\n{\n    if (verbose) puts(\"STUB: VVASINH_ called\");\n    return NULL;\n}\n\nvoid* VVASIN_(void)\n{\n    if (verbose) puts(\"STUB: VVASIN_ called\");\n    return NULL;\n}\n\nvoid* VVATAN(void)\n{\n    if (verbose) puts(\"STUB: VVATAN called\");\n    return NULL;\n}\n\nvoid* VVATAN2(void)\n{\n    if (verbose) puts(\"STUB: VVATAN2 called\");\n    return NULL;\n}\n\nvoid* VVATAN2F(void)\n{\n    if (verbose) puts(\"STUB: VVATAN2F called\");\n    return NULL;\n}\n\nvoid* VVATAN2F_(void)\n{\n    if (verbose) puts(\"STUB: VVATAN2F_ called\");\n    return NULL;\n}\n\nvoid* VVATAN2_(void)\n{\n    if (verbose) puts(\"STUB: VVATAN2_ called\");\n    return NULL;\n}\n\nvoid* VVATANF(void)\n{\n    if (verbose) puts(\"STUB: VVATANF called\");\n    return NULL;\n}\n\nvoid* VVATANF_(void)\n{\n    if (verbose) puts(\"STUB: VVATANF_ called\");\n    return NULL;\n}\n\nvoid* VVATANH(void)\n{\n    if (verbose) puts(\"STUB: VVATANH called\");\n    return NULL;\n}\n\nvoid* VVATANHF(void)\n{\n    if (verbose) puts(\"STUB: VVATANHF called\");\n    return NULL;\n}\n\nvoid* VVATANHF_(void)\n{\n    if (verbose) puts(\"STUB: VVATANHF_ called\");\n    return NULL;\n}\n\nvoid* VVATANH_(void)\n{\n    if (verbose) puts(\"STUB: VVATANH_ called\");\n    return NULL;\n}\n\nvoid* VVATAN_(void)\n{\n    if (verbose) puts(\"STUB: VVATAN_ called\");\n    return NULL;\n}\n\nvoid* VVCBRT(void)\n{\n    if (verbose) puts(\"STUB: VVCBRT called\");\n    return NULL;\n}\n\nvoid* VVCBRTF(void)\n{\n    if (verbose) puts(\"STUB: VVCBRTF called\");\n    return NULL;\n}\n\nvoid* VVCBRTF_(void)\n{\n    if (verbose) puts(\"STUB: VVCBRTF_ called\");\n    return NULL;\n}\n\nvoid* VVCBRT_(void)\n{\n    if (verbose) puts(\"STUB: VVCBRT_ called\");\n    return NULL;\n}\n\nvoid* VVCEIL(void)\n{\n    if (verbose) puts(\"STUB: VVCEIL called\");\n    return NULL;\n}\n\nvoid* VVCEILF(void)\n{\n    if (verbose) puts(\"STUB: VVCEILF called\");\n    return NULL;\n}\n\nvoid* VVCEILF_(void)\n{\n    if (verbose) puts(\"STUB: VVCEILF_ called\");\n    return NULL;\n}\n\nvoid* VVCEIL_(void)\n{\n    if (verbose) puts(\"STUB: VVCEIL_ called\");\n    return NULL;\n}\n\nvoid* VVCOPYSIGN(void)\n{\n    if (verbose) puts(\"STUB: VVCOPYSIGN called\");\n    return NULL;\n}\n\nvoid* VVCOPYSIGNF(void)\n{\n    if (verbose) puts(\"STUB: VVCOPYSIGNF called\");\n    return NULL;\n}\n\nvoid* VVCOPYSIGNF_(void)\n{\n    if (verbose) puts(\"STUB: VVCOPYSIGNF_ called\");\n    return NULL;\n}\n\nvoid* VVCOPYSIGN_(void)\n{\n    if (verbose) puts(\"STUB: VVCOPYSIGN_ called\");\n    return NULL;\n}\n\nvoid* VVCOS(void)\n{\n    if (verbose) puts(\"STUB: VVCOS called\");\n    return NULL;\n}\n\nvoid* VVCOSF(void)\n{\n    if (verbose) puts(\"STUB: VVCOSF called\");\n    return NULL;\n}\n\nvoid* VVCOSF_(void)\n{\n    if (verbose) puts(\"STUB: VVCOSF_ called\");\n    return NULL;\n}\n\nvoid* VVCOSH(void)\n{\n    if (verbose) puts(\"STUB: VVCOSH called\");\n    return NULL;\n}\n\nvoid* VVCOSHF(void)\n{\n    if (verbose) puts(\"STUB: VVCOSHF called\");\n    return NULL;\n}\n\nvoid* VVCOSHF_(void)\n{\n    if (verbose) puts(\"STUB: VVCOSHF_ called\");\n    return NULL;\n}\n\nvoid* VVCOSH_(void)\n{\n    if (verbose) puts(\"STUB: VVCOSH_ called\");\n    return NULL;\n}\n\nvoid* VVCOSISIN(void)\n{\n    if (verbose) puts(\"STUB: VVCOSISIN called\");\n    return NULL;\n}\n\nvoid* VVCOSISINF(void)\n{\n    if (verbose) puts(\"STUB: VVCOSISINF called\");\n    return NULL;\n}\n\nvoid* VVCOSISINF_(void)\n{\n    if (verbose) puts(\"STUB: VVCOSISINF_ called\");\n    return NULL;\n}\n\nvoid* VVCOSISIN_(void)\n{\n    if (verbose) puts(\"STUB: VVCOSISIN_ called\");\n    return NULL;\n}\n\nvoid* VVCOSPI(void)\n{\n    if (verbose) puts(\"STUB: VVCOSPI called\");\n    return NULL;\n}\n\nvoid* VVCOSPIF(void)\n{\n    if (verbose) puts(\"STUB: VVCOSPIF called\");\n    return NULL;\n}\n\nvoid* VVCOSPIF_(void)\n{\n    if (verbose) puts(\"STUB: VVCOSPIF_ called\");\n    return NULL;\n}\n\nvoid* VVCOSPI_(void)\n{\n    if (verbose) puts(\"STUB: VVCOSPI_ called\");\n    return NULL;\n}\n\nvoid* VVCOS_(void)\n{\n    if (verbose) puts(\"STUB: VVCOS_ called\");\n    return NULL;\n}\n\nvoid* VVDIV(void)\n{\n    if (verbose) puts(\"STUB: VVDIV called\");\n    return NULL;\n}\n\nvoid* VVDIVF(void)\n{\n    if (verbose) puts(\"STUB: VVDIVF called\");\n    return NULL;\n}\n\nvoid* VVDIVF_(void)\n{\n    if (verbose) puts(\"STUB: VVDIVF_ called\");\n    return NULL;\n}\n\nvoid* VVDIV_(void)\n{\n    if (verbose) puts(\"STUB: VVDIV_ called\");\n    return NULL;\n}\n\nvoid* VVEXP(void)\n{\n    if (verbose) puts(\"STUB: VVEXP called\");\n    return NULL;\n}\n\nvoid* VVEXP2(void)\n{\n    if (verbose) puts(\"STUB: VVEXP2 called\");\n    return NULL;\n}\n\nvoid* VVEXP2F(void)\n{\n    if (verbose) puts(\"STUB: VVEXP2F called\");\n    return NULL;\n}\n\nvoid* VVEXP2F_(void)\n{\n    if (verbose) puts(\"STUB: VVEXP2F_ called\");\n    return NULL;\n}\n\nvoid* VVEXP2_(void)\n{\n    if (verbose) puts(\"STUB: VVEXP2_ called\");\n    return NULL;\n}\n\nvoid* VVEXPF(void)\n{\n    if (verbose) puts(\"STUB: VVEXPF called\");\n    return NULL;\n}\n\nvoid* VVEXPF_(void)\n{\n    if (verbose) puts(\"STUB: VVEXPF_ called\");\n    return NULL;\n}\n\nvoid* VVEXPM1(void)\n{\n    if (verbose) puts(\"STUB: VVEXPM1 called\");\n    return NULL;\n}\n\nvoid* VVEXPM1F(void)\n{\n    if (verbose) puts(\"STUB: VVEXPM1F called\");\n    return NULL;\n}\n\nvoid* VVEXPM1F_(void)\n{\n    if (verbose) puts(\"STUB: VVEXPM1F_ called\");\n    return NULL;\n}\n\nvoid* VVEXPM1_(void)\n{\n    if (verbose) puts(\"STUB: VVEXPM1_ called\");\n    return NULL;\n}\n\nvoid* VVEXP_(void)\n{\n    if (verbose) puts(\"STUB: VVEXP_ called\");\n    return NULL;\n}\n\nvoid* VVFABF(void)\n{\n    if (verbose) puts(\"STUB: VVFABF called\");\n    return NULL;\n}\n\nvoid* VVFABF_(void)\n{\n    if (verbose) puts(\"STUB: VVFABF_ called\");\n    return NULL;\n}\n\nvoid* VVFABS(void)\n{\n    if (verbose) puts(\"STUB: VVFABS called\");\n    return NULL;\n}\n\nvoid* VVFABSF(void)\n{\n    if (verbose) puts(\"STUB: VVFABSF called\");\n    return NULL;\n}\n\nvoid* VVFABSF_(void)\n{\n    if (verbose) puts(\"STUB: VVFABSF_ called\");\n    return NULL;\n}\n\nvoid* VVFABS_(void)\n{\n    if (verbose) puts(\"STUB: VVFABS_ called\");\n    return NULL;\n}\n\nvoid* VVFLOOR(void)\n{\n    if (verbose) puts(\"STUB: VVFLOOR called\");\n    return NULL;\n}\n\nvoid* VVFLOORF(void)\n{\n    if (verbose) puts(\"STUB: VVFLOORF called\");\n    return NULL;\n}\n\nvoid* VVFLOORF_(void)\n{\n    if (verbose) puts(\"STUB: VVFLOORF_ called\");\n    return NULL;\n}\n\nvoid* VVFLOOR_(void)\n{\n    if (verbose) puts(\"STUB: VVFLOOR_ called\");\n    return NULL;\n}\n\nvoid* VVFMOD(void)\n{\n    if (verbose) puts(\"STUB: VVFMOD called\");\n    return NULL;\n}\n\nvoid* VVFMODF(void)\n{\n    if (verbose) puts(\"STUB: VVFMODF called\");\n    return NULL;\n}\n\nvoid* VVFMODF_(void)\n{\n    if (verbose) puts(\"STUB: VVFMODF_ called\");\n    return NULL;\n}\n\nvoid* VVFMOD_(void)\n{\n    if (verbose) puts(\"STUB: VVFMOD_ called\");\n    return NULL;\n}\n\nvoid* VVINT(void)\n{\n    if (verbose) puts(\"STUB: VVINT called\");\n    return NULL;\n}\n\nvoid* VVINTF(void)\n{\n    if (verbose) puts(\"STUB: VVINTF called\");\n    return NULL;\n}\n\nvoid* VVINTF_(void)\n{\n    if (verbose) puts(\"STUB: VVINTF_ called\");\n    return NULL;\n}\n\nvoid* VVINT_(void)\n{\n    if (verbose) puts(\"STUB: VVINT_ called\");\n    return NULL;\n}\n\nvoid* VVLOG(void)\n{\n    if (verbose) puts(\"STUB: VVLOG called\");\n    return NULL;\n}\n\nvoid* VVLOG10(void)\n{\n    if (verbose) puts(\"STUB: VVLOG10 called\");\n    return NULL;\n}\n\nvoid* VVLOG10F(void)\n{\n    if (verbose) puts(\"STUB: VVLOG10F called\");\n    return NULL;\n}\n\nvoid* VVLOG10F_(void)\n{\n    if (verbose) puts(\"STUB: VVLOG10F_ called\");\n    return NULL;\n}\n\nvoid* VVLOG10_(void)\n{\n    if (verbose) puts(\"STUB: VVLOG10_ called\");\n    return NULL;\n}\n\nvoid* VVLOG1P(void)\n{\n    if (verbose) puts(\"STUB: VVLOG1P called\");\n    return NULL;\n}\n\nvoid* VVLOG1PF(void)\n{\n    if (verbose) puts(\"STUB: VVLOG1PF called\");\n    return NULL;\n}\n\nvoid* VVLOG1PF_(void)\n{\n    if (verbose) puts(\"STUB: VVLOG1PF_ called\");\n    return NULL;\n}\n\nvoid* VVLOG1P_(void)\n{\n    if (verbose) puts(\"STUB: VVLOG1P_ called\");\n    return NULL;\n}\n\nvoid* VVLOG2(void)\n{\n    if (verbose) puts(\"STUB: VVLOG2 called\");\n    return NULL;\n}\n\nvoid* VVLOG2F(void)\n{\n    if (verbose) puts(\"STUB: VVLOG2F called\");\n    return NULL;\n}\n\nvoid* VVLOG2F_(void)\n{\n    if (verbose) puts(\"STUB: VVLOG2F_ called\");\n    return NULL;\n}\n\nvoid* VVLOG2_(void)\n{\n    if (verbose) puts(\"STUB: VVLOG2_ called\");\n    return NULL;\n}\n\nvoid* VVLOGB(void)\n{\n    if (verbose) puts(\"STUB: VVLOGB called\");\n    return NULL;\n}\n\nvoid* VVLOGBF(void)\n{\n    if (verbose) puts(\"STUB: VVLOGBF called\");\n    return NULL;\n}\n\nvoid* VVLOGBF_(void)\n{\n    if (verbose) puts(\"STUB: VVLOGBF_ called\");\n    return NULL;\n}\n\nvoid* VVLOGB_(void)\n{\n    if (verbose) puts(\"STUB: VVLOGB_ called\");\n    return NULL;\n}\n\nvoid* VVLOGF(void)\n{\n    if (verbose) puts(\"STUB: VVLOGF called\");\n    return NULL;\n}\n\nvoid* VVLOGF_(void)\n{\n    if (verbose) puts(\"STUB: VVLOGF_ called\");\n    return NULL;\n}\n\nvoid* VVLOG_(void)\n{\n    if (verbose) puts(\"STUB: VVLOG_ called\");\n    return NULL;\n}\n\nvoid* VVNEXTAFTER(void)\n{\n    if (verbose) puts(\"STUB: VVNEXTAFTER called\");\n    return NULL;\n}\n\nvoid* VVNEXTAFTERF(void)\n{\n    if (verbose) puts(\"STUB: VVNEXTAFTERF called\");\n    return NULL;\n}\n\nvoid* VVNEXTAFTERF_(void)\n{\n    if (verbose) puts(\"STUB: VVNEXTAFTERF_ called\");\n    return NULL;\n}\n\nvoid* VVNEXTAFTER_(void)\n{\n    if (verbose) puts(\"STUB: VVNEXTAFTER_ called\");\n    return NULL;\n}\n\nvoid* VVNINT(void)\n{\n    if (verbose) puts(\"STUB: VVNINT called\");\n    return NULL;\n}\n\nvoid* VVNINTF(void)\n{\n    if (verbose) puts(\"STUB: VVNINTF called\");\n    return NULL;\n}\n\nvoid* VVNINTF_(void)\n{\n    if (verbose) puts(\"STUB: VVNINTF_ called\");\n    return NULL;\n}\n\nvoid* VVNINT_(void)\n{\n    if (verbose) puts(\"STUB: VVNINT_ called\");\n    return NULL;\n}\n\nvoid* VVPOW(void)\n{\n    if (verbose) puts(\"STUB: VVPOW called\");\n    return NULL;\n}\n\nvoid* VVPOWF(void)\n{\n    if (verbose) puts(\"STUB: VVPOWF called\");\n    return NULL;\n}\n\nvoid* VVPOWF_(void)\n{\n    if (verbose) puts(\"STUB: VVPOWF_ called\");\n    return NULL;\n}\n\nvoid* VVPOWS(void)\n{\n    if (verbose) puts(\"STUB: VVPOWS called\");\n    return NULL;\n}\n\nvoid* VVPOWSF(void)\n{\n    if (verbose) puts(\"STUB: VVPOWSF called\");\n    return NULL;\n}\n\nvoid* VVPOWSF_(void)\n{\n    if (verbose) puts(\"STUB: VVPOWSF_ called\");\n    return NULL;\n}\n\nvoid* VVPOWS_(void)\n{\n    if (verbose) puts(\"STUB: VVPOWS_ called\");\n    return NULL;\n}\n\nvoid* VVPOW_(void)\n{\n    if (verbose) puts(\"STUB: VVPOW_ called\");\n    return NULL;\n}\n\nvoid* VVREC(void)\n{\n    if (verbose) puts(\"STUB: VVREC called\");\n    return NULL;\n}\n\nvoid* VVRECF(void)\n{\n    if (verbose) puts(\"STUB: VVRECF called\");\n    return NULL;\n}\n\nvoid* VVRECF_(void)\n{\n    if (verbose) puts(\"STUB: VVRECF_ called\");\n    return NULL;\n}\n\nvoid* VVREC_(void)\n{\n    if (verbose) puts(\"STUB: VVREC_ called\");\n    return NULL;\n}\n\nvoid* VVREMAINDER(void)\n{\n    if (verbose) puts(\"STUB: VVREMAINDER called\");\n    return NULL;\n}\n\nvoid* VVREMAINDERF(void)\n{\n    if (verbose) puts(\"STUB: VVREMAINDERF called\");\n    return NULL;\n}\n\nvoid* VVREMAINDERF_(void)\n{\n    if (verbose) puts(\"STUB: VVREMAINDERF_ called\");\n    return NULL;\n}\n\nvoid* VVREMAINDER_(void)\n{\n    if (verbose) puts(\"STUB: VVREMAINDER_ called\");\n    return NULL;\n}\n\nvoid* VVRSQRT(void)\n{\n    if (verbose) puts(\"STUB: VVRSQRT called\");\n    return NULL;\n}\n\nvoid* VVRSQRTF(void)\n{\n    if (verbose) puts(\"STUB: VVRSQRTF called\");\n    return NULL;\n}\n\nvoid* VVRSQRTF_(void)\n{\n    if (verbose) puts(\"STUB: VVRSQRTF_ called\");\n    return NULL;\n}\n\nvoid* VVRSQRT_(void)\n{\n    if (verbose) puts(\"STUB: VVRSQRT_ called\");\n    return NULL;\n}\n\nvoid* VVSIN(void)\n{\n    if (verbose) puts(\"STUB: VVSIN called\");\n    return NULL;\n}\n\nvoid* VVSINCOS(void)\n{\n    if (verbose) puts(\"STUB: VVSINCOS called\");\n    return NULL;\n}\n\nvoid* VVSINCOSF(void)\n{\n    if (verbose) puts(\"STUB: VVSINCOSF called\");\n    return NULL;\n}\n\nvoid* VVSINCOSF_(void)\n{\n    if (verbose) puts(\"STUB: VVSINCOSF_ called\");\n    return NULL;\n}\n\nvoid* VVSINCOS_(void)\n{\n    if (verbose) puts(\"STUB: VVSINCOS_ called\");\n    return NULL;\n}\n\nvoid* VVSINF(void)\n{\n    if (verbose) puts(\"STUB: VVSINF called\");\n    return NULL;\n}\n\nvoid* VVSINF_(void)\n{\n    if (verbose) puts(\"STUB: VVSINF_ called\");\n    return NULL;\n}\n\nvoid* VVSINH(void)\n{\n    if (verbose) puts(\"STUB: VVSINH called\");\n    return NULL;\n}\n\nvoid* VVSINHF(void)\n{\n    if (verbose) puts(\"STUB: VVSINHF called\");\n    return NULL;\n}\n\nvoid* VVSINHF_(void)\n{\n    if (verbose) puts(\"STUB: VVSINHF_ called\");\n    return NULL;\n}\n\nvoid* VVSINH_(void)\n{\n    if (verbose) puts(\"STUB: VVSINH_ called\");\n    return NULL;\n}\n\nvoid* VVSINPI(void)\n{\n    if (verbose) puts(\"STUB: VVSINPI called\");\n    return NULL;\n}\n\nvoid* VVSINPIF(void)\n{\n    if (verbose) puts(\"STUB: VVSINPIF called\");\n    return NULL;\n}\n\nvoid* VVSINPIF_(void)\n{\n    if (verbose) puts(\"STUB: VVSINPIF_ called\");\n    return NULL;\n}\n\nvoid* VVSINPI_(void)\n{\n    if (verbose) puts(\"STUB: VVSINPI_ called\");\n    return NULL;\n}\n\nvoid* VVSIN_(void)\n{\n    if (verbose) puts(\"STUB: VVSIN_ called\");\n    return NULL;\n}\n\nvoid* VVSQRT(void)\n{\n    if (verbose) puts(\"STUB: VVSQRT called\");\n    return NULL;\n}\n\nvoid* VVSQRTF(void)\n{\n    if (verbose) puts(\"STUB: VVSQRTF called\");\n    return NULL;\n}\n\nvoid* VVSQRTF_(void)\n{\n    if (verbose) puts(\"STUB: VVSQRTF_ called\");\n    return NULL;\n}\n\nvoid* VVSQRT_(void)\n{\n    if (verbose) puts(\"STUB: VVSQRT_ called\");\n    return NULL;\n}\n\nvoid* VVTAN(void)\n{\n    if (verbose) puts(\"STUB: VVTAN called\");\n    return NULL;\n}\n\nvoid* VVTANF(void)\n{\n    if (verbose) puts(\"STUB: VVTANF called\");\n    return NULL;\n}\n\nvoid* VVTANF_(void)\n{\n    if (verbose) puts(\"STUB: VVTANF_ called\");\n    return NULL;\n}\n\nvoid* VVTANH(void)\n{\n    if (verbose) puts(\"STUB: VVTANH called\");\n    return NULL;\n}\n\nvoid* VVTANHF(void)\n{\n    if (verbose) puts(\"STUB: VVTANHF called\");\n    return NULL;\n}\n\nvoid* VVTANHF_(void)\n{\n    if (verbose) puts(\"STUB: VVTANHF_ called\");\n    return NULL;\n}\n\nvoid* VVTANH_(void)\n{\n    if (verbose) puts(\"STUB: VVTANH_ called\");\n    return NULL;\n}\n\nvoid* VVTANPI(void)\n{\n    if (verbose) puts(\"STUB: VVTANPI called\");\n    return NULL;\n}\n\nvoid* VVTANPIF(void)\n{\n    if (verbose) puts(\"STUB: VVTANPIF called\");\n    return NULL;\n}\n\nvoid* VVTANPIF_(void)\n{\n    if (verbose) puts(\"STUB: VVTANPIF_ called\");\n    return NULL;\n}\n\nvoid* VVTANPI_(void)\n{\n    if (verbose) puts(\"STUB: VVTANPI_ called\");\n    return NULL;\n}\n\nvoid* VVTAN_(void)\n{\n    if (verbose) puts(\"STUB: VVTAN_ called\");\n    return NULL;\n}\n\nvoid* __cblas_isamax(void)\n{\n    if (verbose) puts(\"STUB: __cblas_isamax called\");\n    return NULL;\n}\n\nvoid* __cblas_sasum(void)\n{\n    if (verbose) puts(\"STUB: __cblas_sasum called\");\n    return NULL;\n}\n\nvoid* __cblas_saxpy(void)\n{\n    if (verbose) puts(\"STUB: __cblas_saxpy called\");\n    return NULL;\n}\n\nvoid* __cblas_sgemm(void)\n{\n    if (verbose) puts(\"STUB: __cblas_sgemm called\");\n    return NULL;\n}\n\nvoid* __cblas_sgemv(void)\n{\n    if (verbose) puts(\"STUB: __cblas_sgemv called\");\n    return NULL;\n}\n\nvoid* __cblas_srot(void)\n{\n    if (verbose) puts(\"STUB: __cblas_srot called\");\n    return NULL;\n}\n\nvoid* __cblas_sscal(void)\n{\n    if (verbose) puts(\"STUB: __cblas_sscal called\");\n    return NULL;\n}\n\nvoid* __cblas_sswap(void)\n{\n    if (verbose) puts(\"STUB: __cblas_sswap called\");\n    return NULL;\n}\n\nvoid* dMultMatMat_16x16(void)\n{\n    if (verbose) puts(\"STUB: dMultMatMat_16x16 called\");\n    return NULL;\n}\n\nvoid* dMultMatMat_32x32(void)\n{\n    if (verbose) puts(\"STUB: dMultMatMat_32x32 called\");\n    return NULL;\n}\n\nvoid* dMultMatMat_4x4(void)\n{\n    if (verbose) puts(\"STUB: dMultMatMat_4x4 called\");\n    return NULL;\n}\n\nvoid* dMultMatMat_8x8(void)\n{\n    if (verbose) puts(\"STUB: dMultMatMat_8x8 called\");\n    return NULL;\n}\n\nvoid* dMultMatVec_16x16(void)\n{\n    if (verbose) puts(\"STUB: dMultMatVec_16x16 called\");\n    return NULL;\n}\n\nvoid* dMultMatVec_32x32(void)\n{\n    if (verbose) puts(\"STUB: dMultMatVec_32x32 called\");\n    return NULL;\n}\n\nvoid* dMultMatVec_4x4(void)\n{\n    if (verbose) puts(\"STUB: dMultMatVec_4x4 called\");\n    return NULL;\n}\n\nvoid* dMultMatVec_8x8(void)\n{\n    if (verbose) puts(\"STUB: dMultMatVec_8x8 called\");\n    return NULL;\n}\n\nvoid* dMultVecMat_16x16(void)\n{\n    if (verbose) puts(\"STUB: dMultVecMat_16x16 called\");\n    return NULL;\n}\n\nvoid* dMultVecMat_32x32(void)\n{\n    if (verbose) puts(\"STUB: dMultVecMat_32x32 called\");\n    return NULL;\n}\n\nvoid* dMultVecMat_4x4(void)\n{\n    if (verbose) puts(\"STUB: dMultVecMat_4x4 called\");\n    return NULL;\n}\n\nvoid* dMultVecMat_8x8(void)\n{\n    if (verbose) puts(\"STUB: dMultVecMat_8x8 called\");\n    return NULL;\n}\n\nvoid* sMultMatMat_16x16(void)\n{\n    if (verbose) puts(\"STUB: sMultMatMat_16x16 called\");\n    return NULL;\n}\n\nvoid* sMultMatMat_32x32(void)\n{\n    if (verbose) puts(\"STUB: sMultMatMat_32x32 called\");\n    return NULL;\n}\n\nvoid* sMultMatMat_4x4(void)\n{\n    if (verbose) puts(\"STUB: sMultMatMat_4x4 called\");\n    return NULL;\n}\n\nvoid* sMultMatMat_8x8(void)\n{\n    if (verbose) puts(\"STUB: sMultMatMat_8x8 called\");\n    return NULL;\n}\n\nvoid* sMultMatVec_16x16(void)\n{\n    if (verbose) puts(\"STUB: sMultMatVec_16x16 called\");\n    return NULL;\n}\n\nvoid* sMultMatVec_32x32(void)\n{\n    if (verbose) puts(\"STUB: sMultMatVec_32x32 called\");\n    return NULL;\n}\n\nvoid* sMultMatVec_4x4(void)\n{\n    if (verbose) puts(\"STUB: sMultMatVec_4x4 called\");\n    return NULL;\n}\n\nvoid* sMultMatVec_8x8(void)\n{\n    if (verbose) puts(\"STUB: sMultMatVec_8x8 called\");\n    return NULL;\n}\n\nvoid* sMultVecMat_16x16(void)\n{\n    if (verbose) puts(\"STUB: sMultVecMat_16x16 called\");\n    return NULL;\n}\n\nvoid* sMultVecMat_32x32(void)\n{\n    if (verbose) puts(\"STUB: sMultVecMat_32x32 called\");\n    return NULL;\n}\n\nvoid* sMultVecMat_4x4(void)\n{\n    if (verbose) puts(\"STUB: sMultVecMat_4x4 called\");\n    return NULL;\n}\n\nvoid* sMultVecMat_8x8(void)\n{\n    if (verbose) puts(\"STUB: sMultVecMat_8x8 called\");\n    return NULL;\n}\n\nvoid* vA1024Shift(void)\n{\n    if (verbose) puts(\"STUB: vA1024Shift called\");\n    return NULL;\n}\n\nvoid* vA128Shift(void)\n{\n    if (verbose) puts(\"STUB: vA128Shift called\");\n    return NULL;\n}\n\nvoid* vA256Shift(void)\n{\n    if (verbose) puts(\"STUB: vA256Shift called\");\n    return NULL;\n}\n\nvoid* vA512Shift(void)\n{\n    if (verbose) puts(\"STUB: vA512Shift called\");\n    return NULL;\n}\n\nvoid* vA64Shift(void)\n{\n    if (verbose) puts(\"STUB: vA64Shift called\");\n    return NULL;\n}\n\nvoid* vA64Shift2(void)\n{\n    if (verbose) puts(\"STUB: vA64Shift2 called\");\n    return NULL;\n}\n\nvoid* vIsamax(void)\n{\n    if (verbose) puts(\"STUB: vIsamax called\");\n    return NULL;\n}\n\nvoid* vIsamin(void)\n{\n    if (verbose) puts(\"STUB: vIsamin called\");\n    return NULL;\n}\n\nvoid* vIsmax(void)\n{\n    if (verbose) puts(\"STUB: vIsmax called\");\n    return NULL;\n}\n\nvoid* vIsmin(void)\n{\n    if (verbose) puts(\"STUB: vIsmin called\");\n    return NULL;\n}\n\nvoid* vL1024Rotate(void)\n{\n    if (verbose) puts(\"STUB: vL1024Rotate called\");\n    return NULL;\n}\n\nvoid* vL128Rotate(void)\n{\n    if (verbose) puts(\"STUB: vL128Rotate called\");\n    return NULL;\n}\n\nvoid* vL256Rotate(void)\n{\n    if (verbose) puts(\"STUB: vL256Rotate called\");\n    return NULL;\n}\n\nvoid* vL512Rotate(void)\n{\n    if (verbose) puts(\"STUB: vL512Rotate called\");\n    return NULL;\n}\n\nvoid* vL64Rotate(void)\n{\n    if (verbose) puts(\"STUB: vL64Rotate called\");\n    return NULL;\n}\n\nvoid* vL64Rotate2(void)\n{\n    if (verbose) puts(\"STUB: vL64Rotate2 called\");\n    return NULL;\n}\n\nvoid* vLL1024Shift(void)\n{\n    if (verbose) puts(\"STUB: vLL1024Shift called\");\n    return NULL;\n}\n\nvoid* vLL128Shift(void)\n{\n    if (verbose) puts(\"STUB: vLL128Shift called\");\n    return NULL;\n}\n\nvoid* vLL256Shift(void)\n{\n    if (verbose) puts(\"STUB: vLL256Shift called\");\n    return NULL;\n}\n\nvoid* vLL512Shift(void)\n{\n    if (verbose) puts(\"STUB: vLL512Shift called\");\n    return NULL;\n}\n\nvoid* vLL64Shift(void)\n{\n    if (verbose) puts(\"STUB: vLL64Shift called\");\n    return NULL;\n}\n\nvoid* vLL64Shift2(void)\n{\n    if (verbose) puts(\"STUB: vLL64Shift2 called\");\n    return NULL;\n}\n\nvoid* vLR1024Shift(void)\n{\n    if (verbose) puts(\"STUB: vLR1024Shift called\");\n    return NULL;\n}\n\nvoid* vLR128Shift(void)\n{\n    if (verbose) puts(\"STUB: vLR128Shift called\");\n    return NULL;\n}\n\nvoid* vLR256Shift(void)\n{\n    if (verbose) puts(\"STUB: vLR256Shift called\");\n    return NULL;\n}\n\nvoid* vLR512Shift(void)\n{\n    if (verbose) puts(\"STUB: vLR512Shift called\");\n    return NULL;\n}\n\nvoid* vLR64Shift(void)\n{\n    if (verbose) puts(\"STUB: vLR64Shift called\");\n    return NULL;\n}\n\nvoid* vLR64Shift2(void)\n{\n    if (verbose) puts(\"STUB: vLR64Shift2 called\");\n    return NULL;\n}\n\nvoid* vMultMatMat_16x16(void)\n{\n    if (verbose) puts(\"STUB: vMultMatMat_16x16 called\");\n    return NULL;\n}\n\nvoid* vMultMatMat_32x32(void)\n{\n    if (verbose) puts(\"STUB: vMultMatMat_32x32 called\");\n    return NULL;\n}\n\nvoid* vMultMatMat_4x4(void)\n{\n    if (verbose) puts(\"STUB: vMultMatMat_4x4 called\");\n    return NULL;\n}\n\nvoid* vMultMatMat_8x8(void)\n{\n    if (verbose) puts(\"STUB: vMultMatMat_8x8 called\");\n    return NULL;\n}\n\nvoid* vMultMatVec_16x16(void)\n{\n    if (verbose) puts(\"STUB: vMultMatVec_16x16 called\");\n    return NULL;\n}\n\nvoid* vMultMatVec_32x32(void)\n{\n    if (verbose) puts(\"STUB: vMultMatVec_32x32 called\");\n    return NULL;\n}\n\nvoid* vMultMatVec_4x4(void)\n{\n    if (verbose) puts(\"STUB: vMultMatVec_4x4 called\");\n    return NULL;\n}\n\nvoid* vMultMatVec_8x8(void)\n{\n    if (verbose) puts(\"STUB: vMultMatVec_8x8 called\");\n    return NULL;\n}\n\nvoid* vMultVecMat_16x16(void)\n{\n    if (verbose) puts(\"STUB: vMultVecMat_16x16 called\");\n    return NULL;\n}\n\nvoid* vMultVecMat_32x32(void)\n{\n    if (verbose) puts(\"STUB: vMultVecMat_32x32 called\");\n    return NULL;\n}\n\nvoid* vMultVecMat_4x4(void)\n{\n    if (verbose) puts(\"STUB: vMultVecMat_4x4 called\");\n    return NULL;\n}\n\nvoid* vMultVecMat_8x8(void)\n{\n    if (verbose) puts(\"STUB: vMultVecMat_8x8 called\");\n    return NULL;\n}\n\nvoid* vR1024Rotate(void)\n{\n    if (verbose) puts(\"STUB: vR1024Rotate called\");\n    return NULL;\n}\n\nvoid* vR128Rotate(void)\n{\n    if (verbose) puts(\"STUB: vR128Rotate called\");\n    return NULL;\n}\n\nvoid* vR256Rotate(void)\n{\n    if (verbose) puts(\"STUB: vR256Rotate called\");\n    return NULL;\n}\n\nvoid* vR512Rotate(void)\n{\n    if (verbose) puts(\"STUB: vR512Rotate called\");\n    return NULL;\n}\n\nvoid* vR64Rotate(void)\n{\n    if (verbose) puts(\"STUB: vR64Rotate called\");\n    return NULL;\n}\n\nvoid* vR64Rotate2(void)\n{\n    if (verbose) puts(\"STUB: vR64Rotate2 called\");\n    return NULL;\n}\n\nvoid* vS1024Add(void)\n{\n    if (verbose) puts(\"STUB: vS1024Add called\");\n    return NULL;\n}\n\nvoid* vS1024AddS(void)\n{\n    if (verbose) puts(\"STUB: vS1024AddS called\");\n    return NULL;\n}\n\nvoid* vS1024Divide(void)\n{\n    if (verbose) puts(\"STUB: vS1024Divide called\");\n    return NULL;\n}\n\nvoid* vS1024HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS1024HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vS1024Mod(void)\n{\n    if (verbose) puts(\"STUB: vS1024Mod called\");\n    return NULL;\n}\n\nvoid* vS1024Neg(void)\n{\n    if (verbose) puts(\"STUB: vS1024Neg called\");\n    return NULL;\n}\n\nvoid* vS1024Sub(void)\n{\n    if (verbose) puts(\"STUB: vS1024Sub called\");\n    return NULL;\n}\n\nvoid* vS1024SubS(void)\n{\n    if (verbose) puts(\"STUB: vS1024SubS called\");\n    return NULL;\n}\n\nvoid* vS128Add(void)\n{\n    if (verbose) puts(\"STUB: vS128Add called\");\n    return NULL;\n}\n\nvoid* vS128AddS(void)\n{\n    if (verbose) puts(\"STUB: vS128AddS called\");\n    return NULL;\n}\n\nvoid* vS128Divide(void)\n{\n    if (verbose) puts(\"STUB: vS128Divide called\");\n    return NULL;\n}\n\nvoid* vS128FullMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS128FullMultiply called\");\n    return NULL;\n}\n\nvoid* vS128HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS128HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vS128Neg(void)\n{\n    if (verbose) puts(\"STUB: vS128Neg called\");\n    return NULL;\n}\n\nvoid* vS128Sub(void)\n{\n    if (verbose) puts(\"STUB: vS128Sub called\");\n    return NULL;\n}\n\nvoid* vS128SubS(void)\n{\n    if (verbose) puts(\"STUB: vS128SubS called\");\n    return NULL;\n}\n\nvoid* vS16Divide(void)\n{\n    if (verbose) puts(\"STUB: vS16Divide called\");\n    return NULL;\n}\n\nvoid* vS16HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS16HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vS256Add(void)\n{\n    if (verbose) puts(\"STUB: vS256Add called\");\n    return NULL;\n}\n\nvoid* vS256AddS(void)\n{\n    if (verbose) puts(\"STUB: vS256AddS called\");\n    return NULL;\n}\n\nvoid* vS256Divide(void)\n{\n    if (verbose) puts(\"STUB: vS256Divide called\");\n    return NULL;\n}\n\nvoid* vS256FullMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS256FullMultiply called\");\n    return NULL;\n}\n\nvoid* vS256HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS256HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vS256Mod(void)\n{\n    if (verbose) puts(\"STUB: vS256Mod called\");\n    return NULL;\n}\n\nvoid* vS256Neg(void)\n{\n    if (verbose) puts(\"STUB: vS256Neg called\");\n    return NULL;\n}\n\nvoid* vS256Sub(void)\n{\n    if (verbose) puts(\"STUB: vS256Sub called\");\n    return NULL;\n}\n\nvoid* vS256SubS(void)\n{\n    if (verbose) puts(\"STUB: vS256SubS called\");\n    return NULL;\n}\n\nvoid* vS32Divide(void)\n{\n    if (verbose) puts(\"STUB: vS32Divide called\");\n    return NULL;\n}\n\nvoid* vS32FullMulEven(void)\n{\n    if (verbose) puts(\"STUB: vS32FullMulEven called\");\n    return NULL;\n}\n\nvoid* vS32FullMulOdd(void)\n{\n    if (verbose) puts(\"STUB: vS32FullMulOdd called\");\n    return NULL;\n}\n\nvoid* vS32HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS32HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vS512Add(void)\n{\n    if (verbose) puts(\"STUB: vS512Add called\");\n    return NULL;\n}\n\nvoid* vS512AddS(void)\n{\n    if (verbose) puts(\"STUB: vS512AddS called\");\n    return NULL;\n}\n\nvoid* vS512Divide(void)\n{\n    if (verbose) puts(\"STUB: vS512Divide called\");\n    return NULL;\n}\n\nvoid* vS512FullMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS512FullMultiply called\");\n    return NULL;\n}\n\nvoid* vS512HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS512HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vS512Mod(void)\n{\n    if (verbose) puts(\"STUB: vS512Mod called\");\n    return NULL;\n}\n\nvoid* vS512Neg(void)\n{\n    if (verbose) puts(\"STUB: vS512Neg called\");\n    return NULL;\n}\n\nvoid* vS512Sub(void)\n{\n    if (verbose) puts(\"STUB: vS512Sub called\");\n    return NULL;\n}\n\nvoid* vS512SubS(void)\n{\n    if (verbose) puts(\"STUB: vS512SubS called\");\n    return NULL;\n}\n\nvoid* vS64Add(void)\n{\n    if (verbose) puts(\"STUB: vS64Add called\");\n    return NULL;\n}\n\nvoid* vS64AddS(void)\n{\n    if (verbose) puts(\"STUB: vS64AddS called\");\n    return NULL;\n}\n\nvoid* vS64Divide(void)\n{\n    if (verbose) puts(\"STUB: vS64Divide called\");\n    return NULL;\n}\n\nvoid* vS64FullMulEven(void)\n{\n    if (verbose) puts(\"STUB: vS64FullMulEven called\");\n    return NULL;\n}\n\nvoid* vS64FullMulOdd(void)\n{\n    if (verbose) puts(\"STUB: vS64FullMulOdd called\");\n    return NULL;\n}\n\nvoid* vS64HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS64HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vS64Neg(void)\n{\n    if (verbose) puts(\"STUB: vS64Neg called\");\n    return NULL;\n}\n\nvoid* vS64Sub(void)\n{\n    if (verbose) puts(\"STUB: vS64Sub called\");\n    return NULL;\n}\n\nvoid* vS64SubS(void)\n{\n    if (verbose) puts(\"STUB: vS64SubS called\");\n    return NULL;\n}\n\nvoid* vS8Divide(void)\n{\n    if (verbose) puts(\"STUB: vS8Divide called\");\n    return NULL;\n}\n\nvoid* vS8HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vS8HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vSasum(void)\n{\n    if (verbose) puts(\"STUB: vSasum called\");\n    return NULL;\n}\n\nvoid* vSaxpy(void)\n{\n    if (verbose) puts(\"STUB: vSaxpy called\");\n    return NULL;\n}\n\nvoid* vScopy(void)\n{\n    if (verbose) puts(\"STUB: vScopy called\");\n    return NULL;\n}\n\nvoid* vSdot(void)\n{\n    if (verbose) puts(\"STUB: vSdot called\");\n    return NULL;\n}\n\nvoid* vSgeadd(void)\n{\n    if (verbose) puts(\"STUB: vSgeadd called\");\n    return NULL;\n}\n\nvoid* vSgemm(void)\n{\n    if (verbose) puts(\"STUB: vSgemm called\");\n    return NULL;\n}\n\nvoid* vSgemtx(void)\n{\n    if (verbose) puts(\"STUB: vSgemtx called\");\n    return NULL;\n}\n\nvoid* vSgemul(void)\n{\n    if (verbose) puts(\"STUB: vSgemul called\");\n    return NULL;\n}\n\nvoid* vSgemv(void)\n{\n    if (verbose) puts(\"STUB: vSgemv called\");\n    return NULL;\n}\n\nvoid* vSgemx(void)\n{\n    if (verbose) puts(\"STUB: vSgemx called\");\n    return NULL;\n}\n\nvoid* vSgesub(void)\n{\n    if (verbose) puts(\"STUB: vSgesub called\");\n    return NULL;\n}\n\nvoid* vSgetmi(void)\n{\n    if (verbose) puts(\"STUB: vSgetmi called\");\n    return NULL;\n}\n\nvoid* vSgetmo(void)\n{\n    if (verbose) puts(\"STUB: vSgetmo called\");\n    return NULL;\n}\n\nvoid* vSgevv(void)\n{\n    if (verbose) puts(\"STUB: vSgevv called\");\n    return NULL;\n}\n\nvoid* vSnaxpy(void)\n{\n    if (verbose) puts(\"STUB: vSnaxpy called\");\n    return NULL;\n}\n\nvoid* vSndot(void)\n{\n    if (verbose) puts(\"STUB: vSndot called\");\n    return NULL;\n}\n\nvoid* vSnorm2(void)\n{\n    if (verbose) puts(\"STUB: vSnorm2 called\");\n    return NULL;\n}\n\nvoid* vSnrm2(void)\n{\n    if (verbose) puts(\"STUB: vSnrm2 called\");\n    return NULL;\n}\n\nvoid* vSrot(void)\n{\n    if (verbose) puts(\"STUB: vSrot called\");\n    return NULL;\n}\n\nvoid* vSscal(void)\n{\n    if (verbose) puts(\"STUB: vSscal called\");\n    return NULL;\n}\n\nvoid* vSsum(void)\n{\n    if (verbose) puts(\"STUB: vSsum called\");\n    return NULL;\n}\n\nvoid* vSswap(void)\n{\n    if (verbose) puts(\"STUB: vSswap called\");\n    return NULL;\n}\n\nvoid* vSyax(void)\n{\n    if (verbose) puts(\"STUB: vSyax called\");\n    return NULL;\n}\n\nvoid* vSzaxpy(void)\n{\n    if (verbose) puts(\"STUB: vSzaxpy called\");\n    return NULL;\n}\n\nvoid* vU1024Add(void)\n{\n    if (verbose) puts(\"STUB: vU1024Add called\");\n    return NULL;\n}\n\nvoid* vU1024AddS(void)\n{\n    if (verbose) puts(\"STUB: vU1024AddS called\");\n    return NULL;\n}\n\nvoid* vU1024Divide(void)\n{\n    if (verbose) puts(\"STUB: vU1024Divide called\");\n    return NULL;\n}\n\nvoid* vU1024HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU1024HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vU1024Mod(void)\n{\n    if (verbose) puts(\"STUB: vU1024Mod called\");\n    return NULL;\n}\n\nvoid* vU1024Neg(void)\n{\n    if (verbose) puts(\"STUB: vU1024Neg called\");\n    return NULL;\n}\n\nvoid* vU1024Sub(void)\n{\n    if (verbose) puts(\"STUB: vU1024Sub called\");\n    return NULL;\n}\n\nvoid* vU1024SubS(void)\n{\n    if (verbose) puts(\"STUB: vU1024SubS called\");\n    return NULL;\n}\n\nvoid* vU128Add(void)\n{\n    if (verbose) puts(\"STUB: vU128Add called\");\n    return NULL;\n}\n\nvoid* vU128AddS(void)\n{\n    if (verbose) puts(\"STUB: vU128AddS called\");\n    return NULL;\n}\n\nvoid* vU128Divide(void)\n{\n    if (verbose) puts(\"STUB: vU128Divide called\");\n    return NULL;\n}\n\nvoid* vU128FullMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU128FullMultiply called\");\n    return NULL;\n}\n\nvoid* vU128HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU128HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vU128Neg(void)\n{\n    if (verbose) puts(\"STUB: vU128Neg called\");\n    return NULL;\n}\n\nvoid* vU128Sub(void)\n{\n    if (verbose) puts(\"STUB: vU128Sub called\");\n    return NULL;\n}\n\nvoid* vU128SubS(void)\n{\n    if (verbose) puts(\"STUB: vU128SubS called\");\n    return NULL;\n}\n\nvoid* vU16Divide(void)\n{\n    if (verbose) puts(\"STUB: vU16Divide called\");\n    return NULL;\n}\n\nvoid* vU16HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU16HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vU256Add(void)\n{\n    if (verbose) puts(\"STUB: vU256Add called\");\n    return NULL;\n}\n\nvoid* vU256AddS(void)\n{\n    if (verbose) puts(\"STUB: vU256AddS called\");\n    return NULL;\n}\n\nvoid* vU256Divide(void)\n{\n    if (verbose) puts(\"STUB: vU256Divide called\");\n    return NULL;\n}\n\nvoid* vU256FullMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU256FullMultiply called\");\n    return NULL;\n}\n\nvoid* vU256HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU256HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vU256Mod(void)\n{\n    if (verbose) puts(\"STUB: vU256Mod called\");\n    return NULL;\n}\n\nvoid* vU256Neg(void)\n{\n    if (verbose) puts(\"STUB: vU256Neg called\");\n    return NULL;\n}\n\nvoid* vU256Sub(void)\n{\n    if (verbose) puts(\"STUB: vU256Sub called\");\n    return NULL;\n}\n\nvoid* vU256SubS(void)\n{\n    if (verbose) puts(\"STUB: vU256SubS called\");\n    return NULL;\n}\n\nvoid* vU32Divide(void)\n{\n    if (verbose) puts(\"STUB: vU32Divide called\");\n    return NULL;\n}\n\nvoid* vU32FullMulEven(void)\n{\n    if (verbose) puts(\"STUB: vU32FullMulEven called\");\n    return NULL;\n}\n\nvoid* vU32FullMulOdd(void)\n{\n    if (verbose) puts(\"STUB: vU32FullMulOdd called\");\n    return NULL;\n}\n\nvoid* vU32HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU32HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vU512Add(void)\n{\n    if (verbose) puts(\"STUB: vU512Add called\");\n    return NULL;\n}\n\nvoid* vU512AddS(void)\n{\n    if (verbose) puts(\"STUB: vU512AddS called\");\n    return NULL;\n}\n\nvoid* vU512Divide(void)\n{\n    if (verbose) puts(\"STUB: vU512Divide called\");\n    return NULL;\n}\n\nvoid* vU512FullMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU512FullMultiply called\");\n    return NULL;\n}\n\nvoid* vU512HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU512HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vU512Mod(void)\n{\n    if (verbose) puts(\"STUB: vU512Mod called\");\n    return NULL;\n}\n\nvoid* vU512Neg(void)\n{\n    if (verbose) puts(\"STUB: vU512Neg called\");\n    return NULL;\n}\n\nvoid* vU512Sub(void)\n{\n    if (verbose) puts(\"STUB: vU512Sub called\");\n    return NULL;\n}\n\nvoid* vU512SubS(void)\n{\n    if (verbose) puts(\"STUB: vU512SubS called\");\n    return NULL;\n}\n\nvoid* vU64Add(void)\n{\n    if (verbose) puts(\"STUB: vU64Add called\");\n    return NULL;\n}\n\nvoid* vU64AddS(void)\n{\n    if (verbose) puts(\"STUB: vU64AddS called\");\n    return NULL;\n}\n\nvoid* vU64Divide(void)\n{\n    if (verbose) puts(\"STUB: vU64Divide called\");\n    return NULL;\n}\n\nvoid* vU64FullMulEven(void)\n{\n    if (verbose) puts(\"STUB: vU64FullMulEven called\");\n    return NULL;\n}\n\nvoid* vU64FullMulOdd(void)\n{\n    if (verbose) puts(\"STUB: vU64FullMulOdd called\");\n    return NULL;\n}\n\nvoid* vU64HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU64HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vU64Neg(void)\n{\n    if (verbose) puts(\"STUB: vU64Neg called\");\n    return NULL;\n}\n\nvoid* vU64Sub(void)\n{\n    if (verbose) puts(\"STUB: vU64Sub called\");\n    return NULL;\n}\n\nvoid* vU64SubS(void)\n{\n    if (verbose) puts(\"STUB: vU64SubS called\");\n    return NULL;\n}\n\nvoid* vU8Divide(void)\n{\n    if (verbose) puts(\"STUB: vU8Divide called\");\n    return NULL;\n}\n\nvoid* vU8HalfMultiply(void)\n{\n    if (verbose) puts(\"STUB: vU8HalfMultiply called\");\n    return NULL;\n}\n\nvoid* vacosf(void)\n{\n    if (verbose) puts(\"STUB: vacosf called\");\n    return NULL;\n}\n\nvoid* vacoshf(void)\n{\n    if (verbose) puts(\"STUB: vacoshf called\");\n    return NULL;\n}\n\nvoid* vasinf(void)\n{\n    if (verbose) puts(\"STUB: vasinf called\");\n    return NULL;\n}\n\nvoid* vasinhf(void)\n{\n    if (verbose) puts(\"STUB: vasinhf called\");\n    return NULL;\n}\n\nvoid* vatan2f(void)\n{\n    if (verbose) puts(\"STUB: vatan2f called\");\n    return NULL;\n}\n\nvoid* vatanf(void)\n{\n    if (verbose) puts(\"STUB: vatanf called\");\n    return NULL;\n}\n\nvoid* vatanhf(void)\n{\n    if (verbose) puts(\"STUB: vatanhf called\");\n    return NULL;\n}\n\nvoid* vceilf(void)\n{\n    if (verbose) puts(\"STUB: vceilf called\");\n    return NULL;\n}\n\nvoid* vclassifyf(void)\n{\n    if (verbose) puts(\"STUB: vclassifyf called\");\n    return NULL;\n}\n\nvoid* vcopysignf(void)\n{\n    if (verbose) puts(\"STUB: vcopysignf called\");\n    return NULL;\n}\n\nvoid* vcosf(void)\n{\n    if (verbose) puts(\"STUB: vcosf called\");\n    return NULL;\n}\n\nvoid* vcoshf(void)\n{\n    if (verbose) puts(\"STUB: vcoshf called\");\n    return NULL;\n}\n\nvoid* vcospif(void)\n{\n    if (verbose) puts(\"STUB: vcospif called\");\n    return NULL;\n}\n\nvoid* vdivf(void)\n{\n    if (verbose) puts(\"STUB: vdivf called\");\n    return NULL;\n}\n\nvoid* vec_sdot(void)\n{\n    if (verbose) puts(\"STUB: vec_sdot called\");\n    return NULL;\n}\n\nvoid* vexp2f(void)\n{\n    if (verbose) puts(\"STUB: vexp2f called\");\n    return NULL;\n}\n\nvoid* vexpf(void)\n{\n    if (verbose) puts(\"STUB: vexpf called\");\n    return NULL;\n}\n\nvoid* vexpm1f(void)\n{\n    if (verbose) puts(\"STUB: vexpm1f called\");\n    return NULL;\n}\n\nvoid* vfabf(void)\n{\n    if (verbose) puts(\"STUB: vfabf called\");\n    return NULL;\n}\n\nvoid* vfabsf(void)\n{\n    if (verbose) puts(\"STUB: vfabsf called\");\n    return NULL;\n}\n\nvoid* vfloorf(void)\n{\n    if (verbose) puts(\"STUB: vfloorf called\");\n    return NULL;\n}\n\nvoid* vfmodf(void)\n{\n    if (verbose) puts(\"STUB: vfmodf called\");\n    return NULL;\n}\n\nvoid* vintf(void)\n{\n    if (verbose) puts(\"STUB: vintf called\");\n    return NULL;\n}\n\nvoid* vipowf(void)\n{\n    if (verbose) puts(\"STUB: vipowf called\");\n    return NULL;\n}\n\nvoid* vlog10f(void)\n{\n    if (verbose) puts(\"STUB: vlog10f called\");\n    return NULL;\n}\n\nvoid* vlog1pf(void)\n{\n    if (verbose) puts(\"STUB: vlog1pf called\");\n    return NULL;\n}\n\nvoid* vlog2f(void)\n{\n    if (verbose) puts(\"STUB: vlog2f called\");\n    return NULL;\n}\n\nvoid* vlogbf(void)\n{\n    if (verbose) puts(\"STUB: vlogbf called\");\n    return NULL;\n}\n\nvoid* vlogf(void)\n{\n    if (verbose) puts(\"STUB: vlogf called\");\n    return NULL;\n}\n\nvoid* vnextafterf(void)\n{\n    if (verbose) puts(\"STUB: vnextafterf called\");\n    return NULL;\n}\n\nvoid* vnintf(void)\n{\n    if (verbose) puts(\"STUB: vnintf called\");\n    return NULL;\n}\n\nvoid* vpowf(void)\n{\n    if (verbose) puts(\"STUB: vpowf called\");\n    return NULL;\n}\n\nvoid* vrecf(void)\n{\n    if (verbose) puts(\"STUB: vrecf called\");\n    return NULL;\n}\n\nvoid* vremainderf(void)\n{\n    if (verbose) puts(\"STUB: vremainderf called\");\n    return NULL;\n}\n\nvoid* vremquof(void)\n{\n    if (verbose) puts(\"STUB: vremquof called\");\n    return NULL;\n}\n\nvoid* vrsqrtf(void)\n{\n    if (verbose) puts(\"STUB: vrsqrtf called\");\n    return NULL;\n}\n\nvoid* vscalbf(void)\n{\n    if (verbose) puts(\"STUB: vscalbf called\");\n    return NULL;\n}\n\nvoid* vsignbitf(void)\n{\n    if (verbose) puts(\"STUB: vsignbitf called\");\n    return NULL;\n}\n\nvoid* vsincosf(void)\n{\n    if (verbose) puts(\"STUB: vsincosf called\");\n    return NULL;\n}\n\nvoid* vsinf(void)\n{\n    if (verbose) puts(\"STUB: vsinf called\");\n    return NULL;\n}\n\nvoid* vsinhf(void)\n{\n    if (verbose) puts(\"STUB: vsinhf called\");\n    return NULL;\n}\n\nvoid* vsinpif(void)\n{\n    if (verbose) puts(\"STUB: vsinpif called\");\n    return NULL;\n}\n\nvoid* vsqrtf(void)\n{\n    if (verbose) puts(\"STUB: vsqrtf called\");\n    return NULL;\n}\n\nvoid* vtablelookup(void)\n{\n    if (verbose) puts(\"STUB: vtablelookup called\");\n    return NULL;\n}\n\nvoid* vtanf(void)\n{\n    if (verbose) puts(\"STUB: vtanf called\");\n    return NULL;\n}\n\nvoid* vtanhf(void)\n{\n    if (verbose) puts(\"STUB: vtanhf called\");\n    return NULL;\n}\n\nvoid* vtanpif(void)\n{\n    if (verbose) puts(\"STUB: vtanpif called\");\n    return NULL;\n}\n\nvoid* vtruncf(void)\n{\n    if (verbose) puts(\"STUB: vtruncf called\");\n    return NULL;\n}\n\nvoid* vvacos(void)\n{\n    if (verbose) puts(\"STUB: vvacos called\");\n    return NULL;\n}\n\nvoid* vvacos_(void)\n{\n    if (verbose) puts(\"STUB: vvacos_ called\");\n    return NULL;\n}\n\nvoid* vvacosf(void)\n{\n    if (verbose) puts(\"STUB: vvacosf called\");\n    return NULL;\n}\n\nvoid* vvacosf_(void)\n{\n    if (verbose) puts(\"STUB: vvacosf_ called\");\n    return NULL;\n}\n\nvoid* vvacosh(void)\n{\n    if (verbose) puts(\"STUB: vvacosh called\");\n    return NULL;\n}\n\nvoid* vvacosh_(void)\n{\n    if (verbose) puts(\"STUB: vvacosh_ called\");\n    return NULL;\n}\n\nvoid* vvacoshf(void)\n{\n    if (verbose) puts(\"STUB: vvacoshf called\");\n    return NULL;\n}\n\nvoid* vvacoshf_(void)\n{\n    if (verbose) puts(\"STUB: vvacoshf_ called\");\n    return NULL;\n}\n\nvoid* vvasin(void)\n{\n    if (verbose) puts(\"STUB: vvasin called\");\n    return NULL;\n}\n\nvoid* vvasin_(void)\n{\n    if (verbose) puts(\"STUB: vvasin_ called\");\n    return NULL;\n}\n\nvoid* vvasinf(void)\n{\n    if (verbose) puts(\"STUB: vvasinf called\");\n    return NULL;\n}\n\nvoid* vvasinf_(void)\n{\n    if (verbose) puts(\"STUB: vvasinf_ called\");\n    return NULL;\n}\n\nvoid* vvasinh(void)\n{\n    if (verbose) puts(\"STUB: vvasinh called\");\n    return NULL;\n}\n\nvoid* vvasinh_(void)\n{\n    if (verbose) puts(\"STUB: vvasinh_ called\");\n    return NULL;\n}\n\nvoid* vvasinhf(void)\n{\n    if (verbose) puts(\"STUB: vvasinhf called\");\n    return NULL;\n}\n\nvoid* vvasinhf_(void)\n{\n    if (verbose) puts(\"STUB: vvasinhf_ called\");\n    return NULL;\n}\n\nvoid* vvatan(void)\n{\n    if (verbose) puts(\"STUB: vvatan called\");\n    return NULL;\n}\n\nvoid* vvatan2(void)\n{\n    if (verbose) puts(\"STUB: vvatan2 called\");\n    return NULL;\n}\n\nvoid* vvatan2_(void)\n{\n    if (verbose) puts(\"STUB: vvatan2_ called\");\n    return NULL;\n}\n\nvoid* vvatan2f(void)\n{\n    if (verbose) puts(\"STUB: vvatan2f called\");\n    return NULL;\n}\n\nvoid* vvatan2f_(void)\n{\n    if (verbose) puts(\"STUB: vvatan2f_ called\");\n    return NULL;\n}\n\nvoid* vvatan_(void)\n{\n    if (verbose) puts(\"STUB: vvatan_ called\");\n    return NULL;\n}\n\nvoid* vvatanf(void)\n{\n    if (verbose) puts(\"STUB: vvatanf called\");\n    return NULL;\n}\n\nvoid* vvatanf_(void)\n{\n    if (verbose) puts(\"STUB: vvatanf_ called\");\n    return NULL;\n}\n\nvoid* vvatanh(void)\n{\n    if (verbose) puts(\"STUB: vvatanh called\");\n    return NULL;\n}\n\nvoid* vvatanh_(void)\n{\n    if (verbose) puts(\"STUB: vvatanh_ called\");\n    return NULL;\n}\n\nvoid* vvatanhf(void)\n{\n    if (verbose) puts(\"STUB: vvatanhf called\");\n    return NULL;\n}\n\nvoid* vvatanhf_(void)\n{\n    if (verbose) puts(\"STUB: vvatanhf_ called\");\n    return NULL;\n}\n\nvoid* vvcbrt(void)\n{\n    if (verbose) puts(\"STUB: vvcbrt called\");\n    return NULL;\n}\n\nvoid* vvcbrt_(void)\n{\n    if (verbose) puts(\"STUB: vvcbrt_ called\");\n    return NULL;\n}\n\nvoid* vvcbrtf(void)\n{\n    if (verbose) puts(\"STUB: vvcbrtf called\");\n    return NULL;\n}\n\nvoid* vvcbrtf_(void)\n{\n    if (verbose) puts(\"STUB: vvcbrtf_ called\");\n    return NULL;\n}\n\nvoid* vvceil(void)\n{\n    if (verbose) puts(\"STUB: vvceil called\");\n    return NULL;\n}\n\nvoid* vvceil_(void)\n{\n    if (verbose) puts(\"STUB: vvceil_ called\");\n    return NULL;\n}\n\nvoid* vvceilf(void)\n{\n    if (verbose) puts(\"STUB: vvceilf called\");\n    return NULL;\n}\n\nvoid* vvceilf_(void)\n{\n    if (verbose) puts(\"STUB: vvceilf_ called\");\n    return NULL;\n}\n\nvoid* vvcopysign(void)\n{\n    if (verbose) puts(\"STUB: vvcopysign called\");\n    return NULL;\n}\n\nvoid* vvcopysign_(void)\n{\n    if (verbose) puts(\"STUB: vvcopysign_ called\");\n    return NULL;\n}\n\nvoid* vvcopysignf(void)\n{\n    if (verbose) puts(\"STUB: vvcopysignf called\");\n    return NULL;\n}\n\nvoid* vvcopysignf_(void)\n{\n    if (verbose) puts(\"STUB: vvcopysignf_ called\");\n    return NULL;\n}\n\nvoid* vvcos(void)\n{\n    if (verbose) puts(\"STUB: vvcos called\");\n    return NULL;\n}\n\nvoid* vvcos_(void)\n{\n    if (verbose) puts(\"STUB: vvcos_ called\");\n    return NULL;\n}\n\nvoid* vvcosf(void)\n{\n    if (verbose) puts(\"STUB: vvcosf called\");\n    return NULL;\n}\n\nvoid* vvcosf_(void)\n{\n    if (verbose) puts(\"STUB: vvcosf_ called\");\n    return NULL;\n}\n\nvoid* vvcosh(void)\n{\n    if (verbose) puts(\"STUB: vvcosh called\");\n    return NULL;\n}\n\nvoid* vvcosh_(void)\n{\n    if (verbose) puts(\"STUB: vvcosh_ called\");\n    return NULL;\n}\n\nvoid* vvcoshf(void)\n{\n    if (verbose) puts(\"STUB: vvcoshf called\");\n    return NULL;\n}\n\nvoid* vvcoshf_(void)\n{\n    if (verbose) puts(\"STUB: vvcoshf_ called\");\n    return NULL;\n}\n\nvoid* vvcosisin(void)\n{\n    if (verbose) puts(\"STUB: vvcosisin called\");\n    return NULL;\n}\n\nvoid* vvcosisin_(void)\n{\n    if (verbose) puts(\"STUB: vvcosisin_ called\");\n    return NULL;\n}\n\nvoid* vvcosisinf(void)\n{\n    if (verbose) puts(\"STUB: vvcosisinf called\");\n    return NULL;\n}\n\nvoid* vvcosisinf_(void)\n{\n    if (verbose) puts(\"STUB: vvcosisinf_ called\");\n    return NULL;\n}\n\nvoid* vvcospi(void)\n{\n    if (verbose) puts(\"STUB: vvcospi called\");\n    return NULL;\n}\n\nvoid* vvcospi_(void)\n{\n    if (verbose) puts(\"STUB: vvcospi_ called\");\n    return NULL;\n}\n\nvoid* vvcospif(void)\n{\n    if (verbose) puts(\"STUB: vvcospif called\");\n    return NULL;\n}\n\nvoid* vvcospif_(void)\n{\n    if (verbose) puts(\"STUB: vvcospif_ called\");\n    return NULL;\n}\n\nvoid* vvdiv(void)\n{\n    if (verbose) puts(\"STUB: vvdiv called\");\n    return NULL;\n}\n\nvoid* vvdiv_(void)\n{\n    if (verbose) puts(\"STUB: vvdiv_ called\");\n    return NULL;\n}\n\nvoid* vvdivf(void)\n{\n    if (verbose) puts(\"STUB: vvdivf called\");\n    return NULL;\n}\n\nvoid* vvdivf_(void)\n{\n    if (verbose) puts(\"STUB: vvdivf_ called\");\n    return NULL;\n}\n\nvoid* vvexp(void)\n{\n    if (verbose) puts(\"STUB: vvexp called\");\n    return NULL;\n}\n\nvoid* vvexp2(void)\n{\n    if (verbose) puts(\"STUB: vvexp2 called\");\n    return NULL;\n}\n\nvoid* vvexp2_(void)\n{\n    if (verbose) puts(\"STUB: vvexp2_ called\");\n    return NULL;\n}\n\nvoid* vvexp2f(void)\n{\n    if (verbose) puts(\"STUB: vvexp2f called\");\n    return NULL;\n}\n\nvoid* vvexp2f_(void)\n{\n    if (verbose) puts(\"STUB: vvexp2f_ called\");\n    return NULL;\n}\n\nvoid* vvexp_(void)\n{\n    if (verbose) puts(\"STUB: vvexp_ called\");\n    return NULL;\n}\n\nvoid* vvexpf(void)\n{\n    if (verbose) puts(\"STUB: vvexpf called\");\n    return NULL;\n}\n\nvoid* vvexpf_(void)\n{\n    if (verbose) puts(\"STUB: vvexpf_ called\");\n    return NULL;\n}\n\nvoid* vvexpm1(void)\n{\n    if (verbose) puts(\"STUB: vvexpm1 called\");\n    return NULL;\n}\n\nvoid* vvexpm1_(void)\n{\n    if (verbose) puts(\"STUB: vvexpm1_ called\");\n    return NULL;\n}\n\nvoid* vvexpm1f(void)\n{\n    if (verbose) puts(\"STUB: vvexpm1f called\");\n    return NULL;\n}\n\nvoid* vvexpm1f_(void)\n{\n    if (verbose) puts(\"STUB: vvexpm1f_ called\");\n    return NULL;\n}\n\nvoid* vvfabf(void)\n{\n    if (verbose) puts(\"STUB: vvfabf called\");\n    return NULL;\n}\n\nvoid* vvfabf_(void)\n{\n    if (verbose) puts(\"STUB: vvfabf_ called\");\n    return NULL;\n}\n\nvoid* vvfabs(void)\n{\n    if (verbose) puts(\"STUB: vvfabs called\");\n    return NULL;\n}\n\nvoid* vvfabs_(void)\n{\n    if (verbose) puts(\"STUB: vvfabs_ called\");\n    return NULL;\n}\n\nvoid* vvfabsf(void)\n{\n    if (verbose) puts(\"STUB: vvfabsf called\");\n    return NULL;\n}\n\nvoid* vvfabsf_(void)\n{\n    if (verbose) puts(\"STUB: vvfabsf_ called\");\n    return NULL;\n}\n\nvoid* vvfloor(void)\n{\n    if (verbose) puts(\"STUB: vvfloor called\");\n    return NULL;\n}\n\nvoid* vvfloor_(void)\n{\n    if (verbose) puts(\"STUB: vvfloor_ called\");\n    return NULL;\n}\n\nvoid* vvfloorf(void)\n{\n    if (verbose) puts(\"STUB: vvfloorf called\");\n    return NULL;\n}\n\nvoid* vvfloorf_(void)\n{\n    if (verbose) puts(\"STUB: vvfloorf_ called\");\n    return NULL;\n}\n\nvoid* vvfmod(void)\n{\n    if (verbose) puts(\"STUB: vvfmod called\");\n    return NULL;\n}\n\nvoid* vvfmod_(void)\n{\n    if (verbose) puts(\"STUB: vvfmod_ called\");\n    return NULL;\n}\n\nvoid* vvfmodf(void)\n{\n    if (verbose) puts(\"STUB: vvfmodf called\");\n    return NULL;\n}\n\nvoid* vvfmodf_(void)\n{\n    if (verbose) puts(\"STUB: vvfmodf_ called\");\n    return NULL;\n}\n\nvoid* vvint(void)\n{\n    if (verbose) puts(\"STUB: vvint called\");\n    return NULL;\n}\n\nvoid* vvint_(void)\n{\n    if (verbose) puts(\"STUB: vvint_ called\");\n    return NULL;\n}\n\nvoid* vvintf(void)\n{\n    if (verbose) puts(\"STUB: vvintf called\");\n    return NULL;\n}\n\nvoid* vvintf_(void)\n{\n    if (verbose) puts(\"STUB: vvintf_ called\");\n    return NULL;\n}\n\nvoid* vvlog(void)\n{\n    if (verbose) puts(\"STUB: vvlog called\");\n    return NULL;\n}\n\nvoid* vvlog10(void)\n{\n    if (verbose) puts(\"STUB: vvlog10 called\");\n    return NULL;\n}\n\nvoid* vvlog10_(void)\n{\n    if (verbose) puts(\"STUB: vvlog10_ called\");\n    return NULL;\n}\n\nvoid* vvlog10f(void)\n{\n    if (verbose) puts(\"STUB: vvlog10f called\");\n    return NULL;\n}\n\nvoid* vvlog10f_(void)\n{\n    if (verbose) puts(\"STUB: vvlog10f_ called\");\n    return NULL;\n}\n\nvoid* vvlog1p(void)\n{\n    if (verbose) puts(\"STUB: vvlog1p called\");\n    return NULL;\n}\n\nvoid* vvlog1p_(void)\n{\n    if (verbose) puts(\"STUB: vvlog1p_ called\");\n    return NULL;\n}\n\nvoid* vvlog1pf(void)\n{\n    if (verbose) puts(\"STUB: vvlog1pf called\");\n    return NULL;\n}\n\nvoid* vvlog1pf_(void)\n{\n    if (verbose) puts(\"STUB: vvlog1pf_ called\");\n    return NULL;\n}\n\nvoid* vvlog2(void)\n{\n    if (verbose) puts(\"STUB: vvlog2 called\");\n    return NULL;\n}\n\nvoid* vvlog2_(void)\n{\n    if (verbose) puts(\"STUB: vvlog2_ called\");\n    return NULL;\n}\n\nvoid* vvlog2f(void)\n{\n    if (verbose) puts(\"STUB: vvlog2f called\");\n    return NULL;\n}\n\nvoid* vvlog2f_(void)\n{\n    if (verbose) puts(\"STUB: vvlog2f_ called\");\n    return NULL;\n}\n\nvoid* vvlog_(void)\n{\n    if (verbose) puts(\"STUB: vvlog_ called\");\n    return NULL;\n}\n\nvoid* vvlogb(void)\n{\n    if (verbose) puts(\"STUB: vvlogb called\");\n    return NULL;\n}\n\nvoid* vvlogb_(void)\n{\n    if (verbose) puts(\"STUB: vvlogb_ called\");\n    return NULL;\n}\n\nvoid* vvlogbf(void)\n{\n    if (verbose) puts(\"STUB: vvlogbf called\");\n    return NULL;\n}\n\nvoid* vvlogbf_(void)\n{\n    if (verbose) puts(\"STUB: vvlogbf_ called\");\n    return NULL;\n}\n\nvoid* vvlogf(void)\n{\n    if (verbose) puts(\"STUB: vvlogf called\");\n    return NULL;\n}\n\nvoid* vvlogf_(void)\n{\n    if (verbose) puts(\"STUB: vvlogf_ called\");\n    return NULL;\n}\n\nvoid* vvnextafter(void)\n{\n    if (verbose) puts(\"STUB: vvnextafter called\");\n    return NULL;\n}\n\nvoid* vvnextafter_(void)\n{\n    if (verbose) puts(\"STUB: vvnextafter_ called\");\n    return NULL;\n}\n\nvoid* vvnextafterf(void)\n{\n    if (verbose) puts(\"STUB: vvnextafterf called\");\n    return NULL;\n}\n\nvoid* vvnextafterf_(void)\n{\n    if (verbose) puts(\"STUB: vvnextafterf_ called\");\n    return NULL;\n}\n\nvoid* vvnint(void)\n{\n    if (verbose) puts(\"STUB: vvnint called\");\n    return NULL;\n}\n\nvoid* vvnint_(void)\n{\n    if (verbose) puts(\"STUB: vvnint_ called\");\n    return NULL;\n}\n\nvoid* vvnintf(void)\n{\n    if (verbose) puts(\"STUB: vvnintf called\");\n    return NULL;\n}\n\nvoid* vvnintf_(void)\n{\n    if (verbose) puts(\"STUB: vvnintf_ called\");\n    return NULL;\n}\n\nvoid* vvpow(void)\n{\n    if (verbose) puts(\"STUB: vvpow called\");\n    return NULL;\n}\n\nvoid* vvpow_(void)\n{\n    if (verbose) puts(\"STUB: vvpow_ called\");\n    return NULL;\n}\n\nvoid* vvpowf(void)\n{\n    if (verbose) puts(\"STUB: vvpowf called\");\n    return NULL;\n}\n\nvoid* vvpowf_(void)\n{\n    if (verbose) puts(\"STUB: vvpowf_ called\");\n    return NULL;\n}\n\nvoid* vvpows(void)\n{\n    if (verbose) puts(\"STUB: vvpows called\");\n    return NULL;\n}\n\nvoid* vvpows_(void)\n{\n    if (verbose) puts(\"STUB: vvpows_ called\");\n    return NULL;\n}\n\nvoid* vvpowsf(void)\n{\n    if (verbose) puts(\"STUB: vvpowsf called\");\n    return NULL;\n}\n\nvoid* vvpowsf_(void)\n{\n    if (verbose) puts(\"STUB: vvpowsf_ called\");\n    return NULL;\n}\n\nvoid* vvrec(void)\n{\n    if (verbose) puts(\"STUB: vvrec called\");\n    return NULL;\n}\n\nvoid* vvrec_(void)\n{\n    if (verbose) puts(\"STUB: vvrec_ called\");\n    return NULL;\n}\n\nvoid* vvrecf(void)\n{\n    if (verbose) puts(\"STUB: vvrecf called\");\n    return NULL;\n}\n\nvoid* vvrecf_(void)\n{\n    if (verbose) puts(\"STUB: vvrecf_ called\");\n    return NULL;\n}\n\nvoid* vvremainder(void)\n{\n    if (verbose) puts(\"STUB: vvremainder called\");\n    return NULL;\n}\n\nvoid* vvremainder_(void)\n{\n    if (verbose) puts(\"STUB: vvremainder_ called\");\n    return NULL;\n}\n\nvoid* vvremainderf(void)\n{\n    if (verbose) puts(\"STUB: vvremainderf called\");\n    return NULL;\n}\n\nvoid* vvremainderf_(void)\n{\n    if (verbose) puts(\"STUB: vvremainderf_ called\");\n    return NULL;\n}\n\nvoid* vvrsqrt(void)\n{\n    if (verbose) puts(\"STUB: vvrsqrt called\");\n    return NULL;\n}\n\nvoid* vvrsqrt_(void)\n{\n    if (verbose) puts(\"STUB: vvrsqrt_ called\");\n    return NULL;\n}\n\nvoid* vvrsqrtf(void)\n{\n    if (verbose) puts(\"STUB: vvrsqrtf called\");\n    return NULL;\n}\n\nvoid* vvrsqrtf_(void)\n{\n    if (verbose) puts(\"STUB: vvrsqrtf_ called\");\n    return NULL;\n}\n\nvoid* vvsin(void)\n{\n    if (verbose) puts(\"STUB: vvsin called\");\n    return NULL;\n}\n\nvoid* vvsin_(void)\n{\n    if (verbose) puts(\"STUB: vvsin_ called\");\n    return NULL;\n}\n\nvoid* vvsincos(void)\n{\n    if (verbose) puts(\"STUB: vvsincos called\");\n    return NULL;\n}\n\nvoid* vvsincos_(void)\n{\n    if (verbose) puts(\"STUB: vvsincos_ called\");\n    return NULL;\n}\n\nvoid* vvsincosf(void)\n{\n    if (verbose) puts(\"STUB: vvsincosf called\");\n    return NULL;\n}\n\nvoid* vvsincosf_(void)\n{\n    if (verbose) puts(\"STUB: vvsincosf_ called\");\n    return NULL;\n}\n\nvoid* vvsinf(void)\n{\n    if (verbose) puts(\"STUB: vvsinf called\");\n    return NULL;\n}\n\nvoid* vvsinf_(void)\n{\n    if (verbose) puts(\"STUB: vvsinf_ called\");\n    return NULL;\n}\n\nvoid* vvsinh(void)\n{\n    if (verbose) puts(\"STUB: vvsinh called\");\n    return NULL;\n}\n\nvoid* vvsinh_(void)\n{\n    if (verbose) puts(\"STUB: vvsinh_ called\");\n    return NULL;\n}\n\nvoid* vvsinhf(void)\n{\n    if (verbose) puts(\"STUB: vvsinhf called\");\n    return NULL;\n}\n\nvoid* vvsinhf_(void)\n{\n    if (verbose) puts(\"STUB: vvsinhf_ called\");\n    return NULL;\n}\n\nvoid* vvsinpi(void)\n{\n    if (verbose) puts(\"STUB: vvsinpi called\");\n    return NULL;\n}\n\nvoid* vvsinpi_(void)\n{\n    if (verbose) puts(\"STUB: vvsinpi_ called\");\n    return NULL;\n}\n\nvoid* vvsinpif(void)\n{\n    if (verbose) puts(\"STUB: vvsinpif called\");\n    return NULL;\n}\n\nvoid* vvsinpif_(void)\n{\n    if (verbose) puts(\"STUB: vvsinpif_ called\");\n    return NULL;\n}\n\nvoid* vvsqrt(void)\n{\n    if (verbose) puts(\"STUB: vvsqrt called\");\n    return NULL;\n}\n\nvoid* vvsqrt_(void)\n{\n    if (verbose) puts(\"STUB: vvsqrt_ called\");\n    return NULL;\n}\n\nvoid* vvsqrtf(void)\n{\n    if (verbose) puts(\"STUB: vvsqrtf called\");\n    return NULL;\n}\n\nvoid* vvsqrtf_(void)\n{\n    if (verbose) puts(\"STUB: vvsqrtf_ called\");\n    return NULL;\n}\n\nvoid* vvtan(void)\n{\n    if (verbose) puts(\"STUB: vvtan called\");\n    return NULL;\n}\n\nvoid* vvtan_(void)\n{\n    if (verbose) puts(\"STUB: vvtan_ called\");\n    return NULL;\n}\n\nvoid* vvtanf(void)\n{\n    if (verbose) puts(\"STUB: vvtanf called\");\n    return NULL;\n}\n\nvoid* vvtanf_(void)\n{\n    if (verbose) puts(\"STUB: vvtanf_ called\");\n    return NULL;\n}\n\nvoid* vvtanh(void)\n{\n    if (verbose) puts(\"STUB: vvtanh called\");\n    return NULL;\n}\n\nvoid* vvtanh_(void)\n{\n    if (verbose) puts(\"STUB: vvtanh_ called\");\n    return NULL;\n}\n\nvoid* vvtanhf(void)\n{\n    if (verbose) puts(\"STUB: vvtanhf called\");\n    return NULL;\n}\n\nvoid* vvtanhf_(void)\n{\n    if (verbose) puts(\"STUB: vvtanhf_ called\");\n    return NULL;\n}\n\nvoid* vvtanpi(void)\n{\n    if (verbose) puts(\"STUB: vvtanpi called\");\n    return NULL;\n}\n\nvoid* vvtanpi_(void)\n{\n    if (verbose) puts(\"STUB: vvtanpi_ called\");\n    return NULL;\n}\n\nvoid* vvtanpif(void)\n{\n    if (verbose) puts(\"STUB: vvtanpif called\");\n    return NULL;\n}\n\nvoid* vvtanpif_(void)\n{\n    if (verbose) puts(\"STUB: vvtanpif_ called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Accounts/CMakeLists.txt",
    "content": "project(Accounts)\n\nremove_sdk_framework(Accounts)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(Accounts\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/Accounts\"\n)\n\nadd_framework(Accounts\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/Accounts.m\n        src/ACDManagedAccount.m\n        src/ACDPropertyEncryption.m\n        src/ACManagedDefaults.m\n        src/ACProtobufVariableValue.m\n        src/ACDManagedAccountType.m\n        src/ACAccountStore.m\n        src/ACAccount.m\n        src/ACAccountType.m\n        src/ACPersonaManager.m\n        src/ACOAuthSigner.m\n        src/ACProtobufVariableKeyValuePair.m\n        src/ACAccountCredential.m\n        src/ACProtobufDataclassAction.m\n        src/ACRemoteAccountStoreSession.m\n        src/ACAccountStoreClientSideListener.m\n        src/ACSimpleRateLimiter.m\n        src/ACRateLimiter.m\n        src/ACDManagedAuthorization.m\n        src/ACDManagedAccessOptionsKey.m\n        src/ACProtobufVariableValueList.m\n        src/ACProtobufAccount.m\n        src/ACSystemConfigManager.m\n        src/ACNotificationRebroadcaster.m\n        src/ACDManagedDataclass.m\n        src/ACProtobufCredentialItem.m\n        src/ACRemoteAccountStoreInterface.m\n        src/ACProtobufKeyValuePair.m\n        src/ACDataclassAction.m\n        src/ACDManagedCredentialItem.m\n        src/ACProtobufVariableValueDictionary.m\n        src/ACProtobufAccountType.m\n        src/ACProtobufDate.m\n        src/ACProtobufURL.m\n        src/ACDManagedAccountProperty.m\n        src/ACProtobufAccountCredential.m\n        src/ACCredentialItem.m\n        src/ACDispatchCerberus.m\n        src/ACTrackedSet.m\n        src/ACMutableTrackedSet.m\n        src/ACZeroingString.m\n        src/ACAccountMigrationLock.m\n        src/ACProtobufUUID.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACAccount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACAccount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACAccountCredential.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACAccountCredential : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACAccountMigrationLock.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACAccountMigrationLock : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACAccountStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACAccountStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACAccountStoreClientSideListener.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACAccountStoreClientSideListener : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACAccountStoreProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ACAccountStoreProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACAccountType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACAccountType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACCredentialItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACCredentialItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDManagedAccessOptionsKey.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDManagedAccessOptionsKey : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDManagedAccount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDManagedAccount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDManagedAccountProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDManagedAccountProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDManagedAccountType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDManagedAccountType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDManagedAuthorization.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDManagedAuthorization : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDManagedCredentialItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDManagedCredentialItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDManagedDataclass.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDManagedDataclass : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDOAuthSignerProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ACDOAuthSignerProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDPropertyEncryption.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDPropertyEncryption : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDataclassAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDataclassAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACDispatchCerberus.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACDispatchCerberus : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACManagedDefaults.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACManagedDefaults : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACMutableTrackedSet.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACMutableTrackedSet : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACNotificationRebroadcaster.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACNotificationRebroadcaster : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACOAuthSigner.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACOAuthSigner : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACPersonaManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACPersonaManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufAccount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufAccount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufAccountCredential.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufAccountCredential : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufAccountType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufAccountType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufCoding.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ACProtobufCoding\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufCredentialItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufCredentialItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufDataclassAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufDataclassAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufDate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufDate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufKeyValuePair.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufKeyValuePair : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufURL.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufURL : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufUUID.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufUUID : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufVariableKeyValuePair.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufVariableKeyValuePair : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufVariableValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufVariableValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufVariableValueDictionary.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufVariableValueDictionary : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACProtobufVariableValueList.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACProtobufVariableValueList : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACRateLimiter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACRateLimiter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACRemoteAccountStoreInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACRemoteAccountStoreInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACRemoteAccountStoreProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ACRemoteAccountStoreProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACRemoteAccountStoreSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACRemoteAccountStoreSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACSimpleRateLimiter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACSimpleRateLimiter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACSystemConfigManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACSystemConfigManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACTrackedSet.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACTrackedSet : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/ACZeroingString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ACZeroingString : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/Accounts.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Accounts_H_\n#define _Accounts_H_\n\n#import <Foundation/Foundation.h>\n\n#import <Accounts/ACAccountStoreProtocol.h>\n#import <Accounts/ACDOAuthSignerProtocol.h>\n#import <Accounts/ACProtobufCoding.h>\n#import <Accounts/ACRemoteAccountStoreProtocol.h>\n#import <Accounts/NSXPCProxyCreating.h>\n#import <Accounts/UMUserPersonaUpdateObserver.h>\n#import <Accounts/ACDManagedAccount.h>\n#import <Accounts/ACDPropertyEncryption.h>\n#import <Accounts/ACManagedDefaults.h>\n#import <Accounts/ACProtobufVariableValue.h>\n#import <Accounts/ACDManagedAccountType.h>\n#import <Accounts/ACAccountStore.h>\n#import <Accounts/ACAccount.h>\n#import <Accounts/ACAccountType.h>\n#import <Accounts/ACPersonaManager.h>\n#import <Accounts/ACOAuthSigner.h>\n#import <Accounts/ACProtobufVariableKeyValuePair.h>\n#import <Accounts/ACAccountCredential.h>\n#import <Accounts/ACProtobufDataclassAction.h>\n#import <Accounts/ACRemoteAccountStoreSession.h>\n#import <Accounts/ACAccountStoreClientSideListener.h>\n#import <Accounts/ACSimpleRateLimiter.h>\n#import <Accounts/ACRateLimiter.h>\n#import <Accounts/ACDManagedAuthorization.h>\n#import <Accounts/ACDManagedAccessOptionsKey.h>\n#import <Accounts/ACProtobufVariableValueList.h>\n#import <Accounts/ACProtobufAccount.h>\n#import <Accounts/ACSystemConfigManager.h>\n#import <Accounts/ACNotificationRebroadcaster.h>\n#import <Accounts/ACDManagedDataclass.h>\n#import <Accounts/ACProtobufCredentialItem.h>\n#import <Accounts/ACRemoteAccountStoreInterface.h>\n#import <Accounts/ACProtobufKeyValuePair.h>\n#import <Accounts/ACDataclassAction.h>\n#import <Accounts/ACDManagedCredentialItem.h>\n#import <Accounts/ACProtobufVariableValueDictionary.h>\n#import <Accounts/ACProtobufAccountType.h>\n#import <Accounts/ACProtobufDate.h>\n#import <Accounts/ACProtobufURL.h>\n#import <Accounts/ACDManagedAccountProperty.h>\n#import <Accounts/ACProtobufAccountCredential.h>\n#import <Accounts/ACCredentialItem.h>\n#import <Accounts/ACDispatchCerberus.h>\n#import <Accounts/ACTrackedSet.h>\n#import <Accounts/ACMutableTrackedSet.h>\n#import <Accounts/ACZeroingString.h>\n#import <Accounts/ACAccountMigrationLock.h>\n#import <Accounts/ACProtobufUUID.h>\n\nvoid* ACAccountTypeIdentifierForASSAccountType(void);\nvoid* ACDGetAdamOrDisplayIDForPID(void);\nvoid* ACDGetStoreOrBundleIDForPID(void);\nvoid* ACDGetTeamIDForBundleURL(void);\nvoid* ACDataclassForASSDataclass(void);\nvoid* _ACLogSystem(void);\nvoid* _ACPLogSystem(void);\nvoid* _ACSignpostCreate(void);\nvoid* _ACSignpostGetNanoseconds(void);\nvoid* _ACSignpostLogSystem(void);\nvoid* createACAccountWithASAccountProperties(void);\nvoid* createACAccountWithASAccountPropertiesAndACAccountType(void);\nvoid* serializeSecCertificates(void);\nvoid* serializeSecTrust(void);\nvoid* unserializeSecCertificates(void);\nvoid* unserializeSecTrust(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/Accounts_Private.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _ACCOUNTS_PRIVATE_H_\n#define _ACCOUNTS_PRIVATE_H_\n\n\n\n#endif // _ACCOUNTS_PRIVATE_H_\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/NSXPCProxyCreating.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSXPCProxyCreating\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/include/Accounts/UMUserPersonaUpdateObserver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol UMUserPersonaUpdateObserver\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACAccount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACAccount.h>\n\n@implementation ACAccount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACAccountCredential.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACAccountCredential.h>\n\n@implementation ACAccountCredential\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACAccountMigrationLock.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACAccountMigrationLock.h>\n\n@implementation ACAccountMigrationLock\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACAccountStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACAccountStore.h>\n\n@implementation ACAccountStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACAccountStoreClientSideListener.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACAccountStoreClientSideListener.h>\n\n@implementation ACAccountStoreClientSideListener\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACAccountType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACAccountType.h>\n\n@implementation ACAccountType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACCredentialItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACCredentialItem.h>\n\n@implementation ACCredentialItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDManagedAccessOptionsKey.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDManagedAccessOptionsKey.h>\n\n@implementation ACDManagedAccessOptionsKey\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDManagedAccount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDManagedAccount.h>\n\n@implementation ACDManagedAccount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDManagedAccountProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDManagedAccountProperty.h>\n\n@implementation ACDManagedAccountProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDManagedAccountType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDManagedAccountType.h>\n\n@implementation ACDManagedAccountType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDManagedAuthorization.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDManagedAuthorization.h>\n\n@implementation ACDManagedAuthorization\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDManagedCredentialItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDManagedCredentialItem.h>\n\n@implementation ACDManagedCredentialItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDManagedDataclass.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDManagedDataclass.h>\n\n@implementation ACDManagedDataclass\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDPropertyEncryption.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDPropertyEncryption.h>\n\n@implementation ACDPropertyEncryption\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDataclassAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDataclassAction.h>\n\n@implementation ACDataclassAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACDispatchCerberus.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACDispatchCerberus.h>\n\n@implementation ACDispatchCerberus\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACManagedDefaults.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACManagedDefaults.h>\n\n@implementation ACManagedDefaults\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACMutableTrackedSet.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACMutableTrackedSet.h>\n\n@implementation ACMutableTrackedSet\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACNotificationRebroadcaster.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACNotificationRebroadcaster.h>\n\n@implementation ACNotificationRebroadcaster\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACOAuthSigner.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACOAuthSigner.h>\n\n@implementation ACOAuthSigner\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACPersonaManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACPersonaManager.h>\n\n@implementation ACPersonaManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufAccount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufAccount.h>\n\n@implementation ACProtobufAccount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufAccountCredential.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufAccountCredential.h>\n\n@implementation ACProtobufAccountCredential\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufAccountType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufAccountType.h>\n\n@implementation ACProtobufAccountType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufCredentialItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufCredentialItem.h>\n\n@implementation ACProtobufCredentialItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufDataclassAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufDataclassAction.h>\n\n@implementation ACProtobufDataclassAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufDate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufDate.h>\n\n@implementation ACProtobufDate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufKeyValuePair.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufKeyValuePair.h>\n\n@implementation ACProtobufKeyValuePair\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufURL.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufURL.h>\n\n@implementation ACProtobufURL\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufUUID.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufUUID.h>\n\n@implementation ACProtobufUUID\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufVariableKeyValuePair.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufVariableKeyValuePair.h>\n\n@implementation ACProtobufVariableKeyValuePair\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufVariableValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufVariableValue.h>\n\n@implementation ACProtobufVariableValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufVariableValueDictionary.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufVariableValueDictionary.h>\n\n@implementation ACProtobufVariableValueDictionary\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACProtobufVariableValueList.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACProtobufVariableValueList.h>\n\n@implementation ACProtobufVariableValueList\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACRateLimiter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACRateLimiter.h>\n\n@implementation ACRateLimiter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACRemoteAccountStoreInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACRemoteAccountStoreInterface.h>\n\n@implementation ACRemoteAccountStoreInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACRemoteAccountStoreSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACRemoteAccountStoreSession.h>\n\n@implementation ACRemoteAccountStoreSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACSimpleRateLimiter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACSimpleRateLimiter.h>\n\n@implementation ACSimpleRateLimiter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACSystemConfigManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACSystemConfigManager.h>\n\n@implementation ACSystemConfigManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACTrackedSet.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACTrackedSet.h>\n\n@implementation ACTrackedSet\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/ACZeroingString.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Accounts/ACZeroingString.h>\n\n@implementation ACZeroingString\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Accounts/src/Accounts.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2020 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Accounts/Accounts.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* ACAccountTypeIdentifierForASSAccountType(void)\n{\n    if (verbose) puts(\"STUB: ACAccountTypeIdentifierForASSAccountType called\");\n    return NULL;\n}\n\nvoid* ACDGetAdamOrDisplayIDForPID(void)\n{\n    if (verbose) puts(\"STUB: ACDGetAdamOrDisplayIDForPID called\");\n    return NULL;\n}\n\nvoid* ACDGetStoreOrBundleIDForPID(void)\n{\n    if (verbose) puts(\"STUB: ACDGetStoreOrBundleIDForPID called\");\n    return NULL;\n}\n\nvoid* ACDGetTeamIDForBundleURL(void)\n{\n    if (verbose) puts(\"STUB: ACDGetTeamIDForBundleURL called\");\n    return NULL;\n}\n\nvoid* ACDataclassForASSDataclass(void)\n{\n    if (verbose) puts(\"STUB: ACDataclassForASSDataclass called\");\n    return NULL;\n}\n\nvoid* _ACLogSystem(void)\n{\n    if (verbose) puts(\"STUB: _ACLogSystem called\");\n    return NULL;\n}\n\nvoid* _ACPLogSystem(void)\n{\n    if (verbose) puts(\"STUB: _ACPLogSystem called\");\n    return NULL;\n}\n\nvoid* _ACSignpostCreate(void)\n{\n    if (verbose) puts(\"STUB: _ACSignpostCreate called\");\n    return NULL;\n}\n\nvoid* _ACSignpostGetNanoseconds(void)\n{\n    if (verbose) puts(\"STUB: _ACSignpostGetNanoseconds called\");\n    return NULL;\n}\n\nvoid* _ACSignpostLogSystem(void)\n{\n    if (verbose) puts(\"STUB: _ACSignpostLogSystem called\");\n    return NULL;\n}\n\nvoid* createACAccountWithASAccountProperties(void)\n{\n    if (verbose) puts(\"STUB: createACAccountWithASAccountProperties called\");\n    return NULL;\n}\n\nvoid* createACAccountWithASAccountPropertiesAndACAccountType(void)\n{\n    if (verbose) puts(\"STUB: createACAccountWithASAccountPropertiesAndACAccountType called\");\n    return NULL;\n}\n\nvoid* serializeSecCertificates(void)\n{\n    if (verbose) puts(\"STUB: serializeSecCertificates called\");\n    return NULL;\n}\n\nvoid* serializeSecTrust(void)\n{\n    if (verbose) puts(\"STUB: serializeSecTrust called\");\n    return NULL;\n}\n\nvoid* unserializeSecCertificates(void)\n{\n    if (verbose) puts(\"STUB: unserializeSecCertificates called\");\n    return NULL;\n}\n\nvoid* unserializeSecTrust(void)\n{\n    if (verbose) puts(\"STUB: unserializeSecTrust called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/AddressBook/CMakeLists.txt",
    "content": "project(AddressBook)\n\nremove_sdk_framework(AddressBook)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1893.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(AddressBook\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/AddressBook\"\n)\n\nadd_framework(AddressBook\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/AddressBook.m\n        src/ABAPIAdapter.m\n        src/ABAbstractGroupEntriesFactory.m\n        src/ABAbstractGroupListAction.m\n        src/ABAccountBrowsingGroupEntry.m\n        src/ABAccountGroupEntries.m\n        src/ABAccountGroupEntriesBuilder.m\n        src/ABAccountHeaderGroupEntry.m\n        src/CNUISaveNonCuratedValueOntoExistingContactCommand.m\n        src/CNUISaveNonCuratedContactCommand.m\n        src/ABUserActivityScore.m\n        src/ABActionAddSuggestedValue.m\n        src/ABUserActivityRestoration.m\n        src/ABActionAddressCopyMailingLabel.m\n        src/ABActionAddressCopyMapURL.m\n        src/ABActionAddressGetDirections.m\n        src/CNUIContactNameOrder.m\n        src/_CNUIDefaultContactNameOrder.m\n        src/_CNUINamelessContactNameOrder.m\n        src/_CNUIGivenNameFirstNameOrder.m\n        src/_CNUIFamilyNameFirstNameOrder.m\n        src/ABActionAddressMapsHelper.m\n        src/ABActionAddressShowMap.m\n        src/ABActionAutovalidator.m\n        src/ABActionAutovalidatorCache.m\n        src/ABActionAutovalidatorCacheEntry.m\n        src/ABActionAutovalidatorCacheMenuEntry.m\n        src/ABActionAutovalidatorCacheSimpleEntry.m\n        src/ABActionBeginChat.m\n        src/ABActionDispatcher.m\n        src/ABCardCollectionRowSeparatorView.m\n        src/ABActionEmailSearchSpotlight.m\n        src/ABActionEmailSendMessage.m\n        src/ABActionEmailSendUpdate.m\n        src/ABActionIgnoreSuggestedValue.m\n        src/ABActionLinkedSetPreferredCard.m\n        src/ABActionManager.m\n        src/ABActionMenuItemFactory.m\n        src/ABActionPhoneDial.m\n        src/ABActionPhoneLargeType.m\n        src/ABActionRelatedShowCard.m\n        src/ABActionSocialProfile.m\n        src/ABActionSocialProfileSendMessage.m\n        src/ABActionSocialProfileViewPhotos.m\n        src/ABActionSocialProfileViewProfile.m\n        src/ABActionURLsOpenURL.m\n        src/ABAddressBook.m\n        src/ABAddSuggestedValueTask.m\n        src/CNUISaveNonCuratedValueOntoContactCommand.m\n        src/ABAddressBookAPIAdapter.m\n        src/ABAddressFieldBuilder.m\n        src/ABAddressFieldValuePopulator.m\n        src/ABAggregateSearchOperationsFactory.m\n        src/ABAlert.m\n        src/ABAlertToneCollectionViewItem.m\n        src/ABAllSmartGroup.m\n        src/ABAlternateBirthdayCollectionViewItem.m\n        src/ABAppDeprecations.m\n        src/ABAppearance.m\n        src/ABAuthenticationInfo.m\n        src/ABBestEntryFinder.m\n        src/ABMutableBidirectionalDictionary.m\n        src/ABBidirectionalDictionary.m\n        src/ABDeprecatedObject.m\n        src/ABSearchController.m\n        src/ABCardViewerController.m\n        src/CNUIAddressBookToContactsConversions.m\n        src/ABBindingsLabelTransformer.m\n        src/ABBindingsURLTransformer.m\n        src/ABAttributedStringTransformer.m\n        src/ABGroupListTransformer.m\n        src/ABPeopleListTransformer.m\n        src/ABDateComponentsValueTransformer.m\n        src/ABBirthdayCollectionViewItem.m\n        src/ABBirthdayConversionUIAction.m\n        src/ABBookAggregateUndoableCommand.m\n        src/_ABBookUndoableCommandAdapter.m\n        src/ABBookAggregateUndoableCommandBuilder.m\n        src/ABBookCreateGroupCommand.m\n        src/ABBookCreateGroupWithMembersCommand.m\n        src/ABBookCreateSmartGroupCommand.m\n        src/ABBookEditSmartGroupCommand.m\n        src/ABBookGroupAddMembersCommand.m\n        src/ABBookGroupAddRecordsCommand.m\n        src/ABBookGroupAddSubgroupsCommand.m\n        src/ABBookGroupCopyCommand.m\n        src/ABCollectionViewSeparatorItem.m\n        src/ABBookGroupCutCommand.m\n        src/ABBookGroupDeleteCommand.m\n        src/ABBookGroupImportCommand.m\n        src/ABBookPastePeopleCommand.m\n        src/ABBookRenameGroupCommand.m\n        src/ABBookSearchField.m\n        src/ABBookSearchFieldCell.m\n        src/CNUISetImageCommand.m\n        src/CNUISetMultipleImagesCommand.m\n        src/ABBrowsingGroupEntry.m\n        src/ABBrowsingSearchConfiguration.m\n        src/CNUIRejectSugggestedValueCommand.m\n        src/ABBuddyStatus.m\n        src/ABBuddyStatusImageCell.m\n        src/ABButtonCell.m\n        src/ABCNAddressDetector.m\n        src/CNContactLabelSanitizer.m\n        src/ABCNContactPhotoStore.m\n        src/ABCNContactThumbnailPhotoStore.m\n        src/ABCNContactUncroppedPhotoStore.m\n        src/ABCNContactRemotePhotoStore.m\n        src/CNUISaveNonCuratedValueOntoReadOnlyContactCommand.m\n        src/ABCNDDScanner.m\n        src/ABNameViewCompanyCheckBox.m\n        src/CNUISaveNonCuratedContactCommandFactory.m\n        src/ABCNPhoneDialer.m\n        src/ABCNPhoneNumberDetector.m\n        src/ABCardCollectionStackViewController.m\n        src/CNUIContactRelationsValueTransformer.m\n        src/ABCallbackCardAction.m\n        src/ABPersonListAttributedName.m\n        src/ABCardActionProvider.m\n        src/ABCardCollectionLinkedPeopleRowView.m\n        src/ABCardCollectionMessagingRowView.m\n        src/ABCardCollectionNoteRowView.m\n        src/ABCardCollectionPostalAddressRowView.m\n        src/ABCardCollectionPreferredNameRowView.m\n        src/ABCardCollectionRowLayout.m\n        src/ABCardCollectionRowScope.m\n        src/ABCardCollectionRowView.m\n        src/ABCardCollectionURLRowView.m\n        src/ABSuggestionsTracing.m\n        src/ABCardCollectionView.m\n        src/ABCardCollectionViewController.m\n        src/ABCardViewCNLabeledValueConverter.m\n        src/ABCardViewAKSingleValueConverter.m\n        src/ABCardViewAlertTonesProperty.m\n        src/ABCardViewAlternateBirthdayProperty.m\n        src/ABCardViewBirthdayProperty.m\n        src/ABCardViewDateProperty.m\n        src/ABCardViewDictionaryTransformer.m\n        src/ABCardViewEditDisplayStyleCommand.m\n        src/ABCardViewEditPropertyCommand.m\n        src/ABCardViewEmailProperty.m\n        src/ABCardViewHelpers.m\n        src/ABCardViewImage.m\n        src/ABCardViewImageResult.m\n        src/ABCardViewInstantMessageProperty.m\n        src/ABCardViewInstantMessageServiceGenerator.m\n        src/ABCardViewLabelGenerator.m\n        src/ABCardViewLinkedPeopleProperty.m\n        src/ABCardViewLinkedPerson.m\n        src/ABCardViewLinkedPersonValueTransformer.m\n        src/ABCardViewMaidenNameProperty.m\n        src/ABCardViewMetrics.m\n        src/ABCardViewMultiValue.m\n        src/ABCardViewMultiValueAccountNameTransformer.m\n        src/ABCardViewMultiValueConverterBuilder.m\n        src/ABCardViewMultiValueEntry.m\n        src/ABCardViewMultiValuePrivateFieldTransformer.m\n        src/ABCardViewMultiValueReadOnlyTransformer.m\n        src/ABCardViewMutableMultiValue.m\n        src/ABCardViewNoteProperty.m\n        src/ABCardViewNotificationHandler.m\n        src/ABCardViewPersonMapper.m\n        src/ABCardViewPhoneProperty.m\n        src/ABCardViewPostalAddressFormatter.m\n        src/ABCardViewPostalAddressProperty.m\n        src/ABCardViewPreferredForNameProperty.m\n        src/ABCardViewPreferredForNameValueTransformer.m\n        src/ABCardViewProperty.m\n        src/ABCardViewPropertyProvider.m\n        src/ABCardViewSaveHelper.m\n        src/ABCardViewSeparator.m\n        src/ABUserActivityScoring.m\n        src/ABCardViewSingleValueProperty.m\n        src/ABCardViewSocialProfileProperty.m\n        src/ABCardViewStyleInternalProvider.m\n        src/ABCardViewStyle.m\n        src/ABCardViewStyleProvider.m\n        src/ABDefaultCardViewStyleProvider.m\n        src/ABCardViewTransformingMultiValueConverter.m\n        src/ABCardViewURLProperty.m\n        src/ABCardViewUndoableDataSource.m\n        src/ABCertificatePanelController.m\n        src/ABChangePropertiesCommand.m\n        src/ABChangePropertyCommand.m\n        src/ABChoosingForwarder.m\n        src/ABCleanGroupEntryListCellView.m\n        src/ABCleanGroupHeaderEntryListCellView.m\n        src/ABCleanGroupListRowView.m\n        src/ABClickableImageView.m\n        src/ABClickableTextView.m\n        src/ABCollectionAbstractAction.m\n        src/ABCollectionDialAction.m\n        src/ABCollectionFaceTimeRowView.m\n        src/ABCollectionItemMessagingAvailabilityHelper.m\n        src/ABCollectionMessageAction.m\n        src/ABCollectionOpenURLAction.m\n        src/ABCollectionReviewSuggestionAction.m\n        src/ABCollectionRowViewEditModeFactory.m\n        src/ABCollectionRowViewFactory.m\n        src/ABAccessibleTextFieldCell.m\n        src/ABCollectionSendMailAction.m\n        src/ABCollectionShowMapAction.m\n        src/ABCollectionTTYAction.m\n        src/ABCollectionViewImageButton.m\n        src/ABCollectionViewItem.m\n        src/ABCollectionViewItemFactory.m\n        src/ABColor.m\n        src/ABCommandExecutionPolicy.m\n        src/ABAddressBookCommandExecutionPolicy.m\n        src/ABCommandHookExecutionPolicy.m\n        src/ABCommandExecutor.m\n        src/ABCommunicationButtonsController.m\n        src/ABConstraintDescription.m\n        src/ABConstraintsBuilder.m\n        src/ABContactDeletionTracing.m\n        src/ABContactFetcher.m\n        src/ABContactPickerDelegateWrapper.m\n        src/ABContactPickerFactory.m\n        src/ABAttributedString.m\n        src/ABCopyOnWriteSet.m\n        src/ABCountTableEntry.m\n        src/ABCreatePersonCommand.m\n        src/ABCustomLabelController.m\n        src/ABDAVQuery.m\n        src/ABDataSourceOperation.m\n        src/ABDateCollectionViewItem.m\n        src/ABDateComponentsFormatter.m\n        src/ABDateFormatter.m\n        src/ABDateProvider.m\n        src/ABDefaultGroupEntriesFactory.m\n        src/ABDelegateCardAction.m\n        src/ABDeleteGroupSheet.m\n        src/ABDeleteRecordsCommandBuilder.m\n        src/ABDirectoriesHeaderGroupEntry.m\n        src/ABDSuggestionLogPairBuilder.m\n        src/ABDistributionListController.m\n        src/ABDistributionKeyValueCell.m\n        src/ABDistributionListPeoplePickerView.m\n        src/ABDistributionListPeoplePickerController.m\n        src/ABDropDownMenuUIAction.m\n        src/ABEditButton.m\n        src/ABEditSmartGroupCommand.m\n        src/ABEmailCertificateController.m\n        src/ABEmailCertificateSearchOperation.m\n        src/ABEmailCollectionViewItem.m\n        src/ABEvent.m\n        src/ABExchangeSetup.m\n        src/ABFaceTimeActionsCollectionViewItem.m\n        src/ABFaceTimeCommunicationsBridge.m\n        src/ABFakeSuggestedData.m\n        src/ABFont.m\n        src/CNUIDeleteCommandHelper.m\n        src/CNUIPhoneNumerValueTransformer.m\n        src/ABTelURLHelper.m\n        src/ABGlobals.m\n        src/ABGroupActionScope.m\n        src/ABGroupBrowsingContext.m\n        src/ABGroupBrowsingGroupEntry.m\n        src/ABGroupCommand.m\n        src/ABGroupCopyPasteboardData.m\n        src/ABPhoneFormatter.m\n        src/ABGroupDragPasteboardData.m\n        src/ABGroupDragScope.m\n        src/ABGroupDragSource.m\n        src/ABGroupDropDestination.m\n        src/ABGroupDropPasteboardData.m\n        src/ABGroupDropPasteboardDataCategorizer.m\n        src/ABGroupDropScope.m\n        src/ABGroupDropSource.m\n        src/ABGroupEntriesAnalyzer.m\n        src/ABGroupEntriesBuilder.m\n        src/ABGroupEntriesList.m\n        src/ABGroupEntriesResult.m\n        src/ABGroupEntry.m\n        src/ABGroupImportFilesScope.m\n        src/ABGroupListAccessoryViewProvider.m\n        src/ABGroupListActionDispatcher.m\n        src/ABGroupListActions.m\n        src/ABGroupListCellViewStyle.m\n        src/ABGroupListController.m\n        src/ABGroupListCreateGroupUIAction.m\n        src/ABGroupListCreateSmartGroupUIAction.m\n        src/ABGroupListNotificationHandler.m\n        src/ABGroupListResponder.m\n        src/ABGroupListStyleProvider.m\n        src/ABGroupListView.m\n        src/ABGroupPastePasteboardData.m\n        src/ABGroupSearchingContext.m\n        src/ABHeaderGroupEntry.m\n        src/ABImmediateActionGestureAdapter.m\n        src/ABTemplatePreferencesSaving.m\n        src/ABRectObject.m\n        src/ABRecord.m\n        src/ABPackedImage.m\n        src/ABMutablePackedImage.m\n        src/ABImportRecordFactory.m\n        src/ABInstantMessageCollectionViewItem.m\n        src/_ABGeocodingMapsLauncher.m\n        src/ABKeystrokeForwarder.m\n        src/ABKeystrokeForwardingEntry.m\n        src/ABLabelPopUpButton.m\n        src/ABLargeTypeView.m\n        src/ABLargeTypeWindow.m\n        src/ABLastImportBrowsingGroupEntry.m\n        src/ABLastImportGroup.m\n        src/ABLazyGroup.m\n        src/ABLinkTextField.m\n        src/ABLinkedPersonCollectionViewItem.m\n        src/ABMainListOutlineView.m\n        src/CNUIRejectNonCuratedValueCommandFactory.m\n        src/ABMeCommand.m\n        src/ABPostalAddressFormatSubmenuGenerator.m\n        src/CNUIRejectNonCuratedValueCommand.m\n        src/ABMiniGridView.m\n        src/ABMonogramFactory.m\n        src/ABMonogramImageLoading.m\n        src/ABMonogramImageTask.m\n        src/ABMonogramInitialsTask.m\n        src/_ABMonogramOptions.m\n        src/ABMonogramOptions.m\n        src/ABMonogramPhotoTask.m\n        src/ABMonogramSilhouetteTask.m\n        src/ABNameView.m\n        src/ABNewGroupCommand.m\n        src/ABNicknameFormatter.m\n        src/ABNoSelectionTableView.m\n        src/ABNoWindowDragTextField.m\n        src/ABNoteCollectionViewItem.m\n        src/ABNoteTextView.m\n        src/ABObjectDeathWatcher.m\n        src/ABNamedImageWrapper.m\n        src/ABOnBlueButton.m\n        src/ABOverlayView.m\n        src/ABPasswordPanelController.m\n        src/ABPastePeopleCommand.m\n        src/ABPasteboardWriteCommand.m\n        src/ABPeoplePickerBrowsingSelectHelper.m\n        src/ABPeoplePickerController.m\n        src/ABPeoplePickerExternalNotificationWatcher.m\n        src/ABPeoplePickerGroupEntriesFactory.m\n        src/ABPeoplePickerGroupHelperFactory.m\n        src/ABUserActivitySerialization.m\n        src/ABPeoplePickerGroupListController.m\n        src/ABPeoplePickerGroupListStyleProvider.m\n        src/ABPeoplePickerGroupListView.m\n        src/ABPeoplePickerLocalNotificationWatcher.m\n        src/ABPeoplePickerProperty.m\n        src/ABPeoplePickerScope.m\n        src/ABPeoplePickerSearchingSelectHelper.m\n        src/ABPeoplePickerSubrowObjectBuilder.m\n        src/ABPeoplePickerTableView.m\n        src/ABPeoplePickerTableColumn.m\n        src/ABPeoplePickerTableRow.m\n        src/ABPeoplePickerSubrowObject.m\n        src/ABPeoplePickerSubrowGroupElement.m\n        src/ABPeoplePickerNameCell.m\n        src/ABPeoplePickerPropertyCell.m\n        src/ABPeoplePickerView.m\n        src/ABPeriodicTask.m\n        src/ABPeriodicUITask.m\n        src/ABPerson.m\n        src/ABPersonContactConverter.m\n        src/ABPersonEntriesFetcher.m\n        src/ABPersonEntriesList.m\n        src/ABPersonEntry.m\n        src/ABPersonEntryFactory.m\n        src/ABPersonInitials.m\n        src/ABPersonListController.m\n        src/ABPersonListControllerDelegateWrapper.m\n        src/ABPersonListControllerTracing.m\n        src/ABPersonListDragExportHelper.m\n        src/ABPersonListHeadliner.m\n        src/ABPersonListMenuHelper.m\n        src/ABPersonListRowView.m\n        src/ABPersonListSearchController.m\n        src/ABPersonListSearchHelper.m\n        src/ABPersonListSharingHelper.m\n        src/ABPersonListUIReflector.m\n        src/ABPersonPicker.m\n        src/CNUISaveNonCuratedValueOntoNonExistingContactCommand.m\n        src/ABPersonSearchConfiguration.m\n        src/ABPersonView.m\n        src/ABPersonViewAPIAdapter.m\n        src/ABPersonViewNotificationWatcher.m\n        src/CNUISaveNonCuratedValueCommandFactory.m\n        src/ABPersonViewStyleProvider.m\n        src/ABPhoneCollectionViewItem.m\n        src/ABPopUpButton.m\n        src/ABPopUpButtonCell.m\n        src/ABPopupTableHeaderCell.m\n        src/ABPopupTableHeaderView.m\n        src/ABPostalAddressCollectionViewItem.m\n        src/ABPreferredNameCollectionViewItem.m\n        src/ABPropertyHeaderCell.m\n        src/ABCardViewRelatedNamesProperty.m\n        src/ABQuerySearchConfiguration.m\n        src/ABRecordContext.m\n        src/_ABURLMapsLauncher.m\n        src/CNUIRejectDonatedValueCommand.m\n        src/ABMapsLauncher.m\n        src/ABRemotePersonView.m\n        src/ABRemoveMembersCommand.m\n        src/ABRemoveMembersCommandBuilder.m\n        src/ABRemovesEmptyCardViewData.m\n        src/ABRenameGroupCommand.m\n        src/ABRolloverButton.m\n        src/ABMapsLaunchRequest.m\n        src/ABSearchElement.m\n        src/ABSearchElementOrderManager.m\n        src/ABSearchElementSetView.m\n        src/ABSearchElementUIController.m\n        src/ABSearchElementView.m\n        src/ABSearchHighlightFormatter.m\n        src/ABSearchingGroupEntry.m\n        src/ABSectionGroupEntry.m\n        src/ABSectionTableEntry.m\n        src/ABShadowTextField.m\n        src/ABShadowTextFieldCell.m\n        src/ABShadowTextView.m\n        src/ABShadowTextViewMultipleValuePasteHelper.m\n        src/ABFlippedStackView.m\n        src/ABShadowTextViewPostalAddressValuePasteHelper.m\n        src/ABShowAsCommand.m\n        src/ABSimpleLinkTextField.m\n        src/ABSmartGroupBrowsingGroupEntry.m\n        src/ABSmartGroupsHeaderGroupEntry.m\n        src/ABSocialProfileCollectionViewItem.m\n        src/ABSourceSyncPeriodicTaskScheduler.m\n        src/ABSpaceFormatter.m\n        src/ABDefaultStopWatchTimeIntervalProvider.m\n        src/ABStopWatch.m\n        src/CNUISaveSuggestedMeContactCommand.m\n        src/ABSuggestedEntriesFetcher.m\n        src/ABSuggestedValueSnippet.m\n        src/ABSuggestedValueViewController.m\n        src/ABSuggestedValueViewControllerSnippetHelper.m\n        src/ABRTTServices.m\n        src/ABTableEntry.m\n        src/ABTableHeaderView.m\n        src/ABTemplateViewStyleProvider.m\n        src/ABTextContainer.m\n        src/ABTextStorage.m\n        src/ABThrottledTrackingAreaMonitor.m\n        src/ABTrackingArea.m\n        src/ABTypesetter.m\n        src/ABURLCollectionViewItem.m\n        src/ABUndoableCommandVisitor.m\n        src/ABExecuteUndoableCommandVisitor.m\n        src/ABExecuteUndoUndoableCommandVisitor.m\n        src/ABExecuteRedoUndoableCommandVisitor.m\n        src/ABUnlinkPeopleCommand.m\n        src/ABUserDefaultsCNAdapter.m\n        src/ABVCardFilenameExpander.m\n        src/ABView.m\n        src/ABWhiteView.m\n        src/ABWidthLimitingStackView.m\n        src/ABWindowController.m\n        src/ABXMLParseNode.m\n        src/CNUISaveSuggestedContactCommand.m\n        src/CNUIAddContactCommand.m\n        src/CNUIAggregateUndoableCommand.m\n        src/CNUIAggregateUndoableCommandBuilder.m\n        src/AKCardViewDataSource.m\n        src/AKCardViewDataSourceFactory.m\n        src/AKCardViewImageDataSource.m\n        src/CNUIDeleteContactCommand.m\n        src/CNUICommandContactHelper.m\n        src/CNUIEditContactCommand.m\n        src/AKInstantMessageAddressValueTransformer.m\n        src/CNUISetMeCardCommand.m\n        src/AKSocialProfileValueTransformer.m\n        src/CNUIUndoableCommand.m\n        src/CNCollectionUserActionItem.m\n        src/PHXTableView.m\n        src/ABCardCollectionTableRowView.m\n        src/ABCardCollectionTableViewController.m\n        src/_ABPersonView.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAPIAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAPIAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAbstractGroupEntriesFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAbstractGroupEntriesFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAbstractGroupListAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAbstractGroupListAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAccessibleTextFieldCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAccessibleTextFieldCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAccessoryViewProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABAccessoryViewProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAccountBrowsingGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAccountBrowsingGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAccountGroupEntries.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAccountGroupEntries : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAccountGroupEntriesBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAccountGroupEntriesBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAccountHeaderGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAccountHeaderGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAddSuggestedValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAddSuggestedValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAddressCopyMailingLabel.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAddressCopyMailingLabel : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAddressCopyMapURL.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAddressCopyMapURL : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAddressGetDirections.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAddressGetDirections : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAddressMapsHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAddressMapsHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAddressShowMap.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAddressShowMap : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAutovalidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAutovalidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAutovalidatorCache.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAutovalidatorCache : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAutovalidatorCacheEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAutovalidatorCacheEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAutovalidatorCacheMenuEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAutovalidatorCacheMenuEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionAutovalidatorCacheSimpleEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionAutovalidatorCacheSimpleEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionBeginChat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionBeginChat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABActionDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionDispatcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionDispatcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionEmailSearchSpotlight.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionEmailSearchSpotlight : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionEmailSendMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionEmailSendMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionEmailSendUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionEmailSendUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionIgnoreSuggestedValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionIgnoreSuggestedValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionLinkedSetPreferredCard.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionLinkedSetPreferredCard : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionManagerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABActionManagerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionMenuItemFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionMenuItemFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionPhoneDial.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionPhoneDial : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionPhoneLargeType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionPhoneLargeType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionRelatedShowCard.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionRelatedShowCard : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionSocialProfile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionSocialProfile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionSocialProfileSendMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionSocialProfileSendMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionSocialProfileViewPhotos.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionSocialProfileViewPhotos : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionSocialProfileViewProfile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionSocialProfileViewProfile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABActionURLsOpenURL.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABActionURLsOpenURL : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAddSuggestedValueTask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAddSuggestedValueTask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAddressBook.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAddressBook : NSObject\n{\n}\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAddressBookAPIAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAddressBookAPIAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAddressBookCommandExecutionPolicy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAddressBookCommandExecutionPolicy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAddressFieldBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAddressFieldBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAddressFieldValuePopulator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAddressFieldValuePopulator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAggregateSearchOperationsFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAggregateSearchOperationsFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAlert.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAlert : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAlertToneCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAlertToneCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAllSmartGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAllSmartGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAlternateBirthdayCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAlternateBirthdayCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAppDeprecations.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAppDeprecations : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAppearance.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAppearance : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAttributedString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAttributedString : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAttributedStringTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAttributedStringTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABAuthenticationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABAuthenticationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBestEntryFinder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBestEntryFinder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBidirectionalDictionary.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBidirectionalDictionary : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBindingsLabelTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBindingsLabelTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBindingsURLTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBindingsURLTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBirthdayCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBirthdayCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBirthdayConversionUIAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBirthdayConversionUIAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookAggregateUndoableCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookAggregateUndoableCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookAggregateUndoableCommandBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookAggregateUndoableCommandBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookCreateGroupCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookCreateGroupCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookCreateGroupWithMembersCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookCreateGroupWithMembersCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookCreateSmartGroupCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookCreateSmartGroupCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookEditSmartGroupCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookEditSmartGroupCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookGroupAddMembersCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookGroupAddMembersCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookGroupAddRecordsCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookGroupAddRecordsCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookGroupAddSubgroupsCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookGroupAddSubgroupsCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookGroupCopyCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookGroupCopyCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookGroupCutCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookGroupCutCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookGroupDeleteCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookGroupDeleteCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookGroupImportCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookGroupImportCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookPastePeopleCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookPastePeopleCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookRenameGroupCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookRenameGroupCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookSearchField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookSearchField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookSearchFieldCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBookSearchFieldCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBookStateSaving.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABBookStateSaving\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBrowsingGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBrowsingGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBrowsingSearchConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBrowsingSearchConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBuddyStatus.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBuddyStatus : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABBuddyStatusImageCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABBuddyStatusImageCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABButtonCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABButtonCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCNAddressDetector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCNAddressDetector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCNContactPhotoStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCNContactPhotoStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCNContactRemotePhotoStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCNContactRemotePhotoStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCNContactThumbnailPhotoStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCNContactThumbnailPhotoStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCNContactUncroppedPhotoStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCNContactUncroppedPhotoStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCNDDScanner.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCNDDScanner : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCNPhoneDialer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCNPhoneDialer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCNPhoneNumberDetector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCNPhoneNumberDetector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCallbackCardAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCallbackCardAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardActionProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardActionProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionLinkedPeopleRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionLinkedPeopleRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionMessagingRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionMessagingRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionNoteRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionNoteRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionPostalAddressRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionPostalAddressRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionPreferredNameRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionPreferredNameRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionRowLayout.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionRowLayout : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionRowScope.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionRowScope : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionRowSeparatorView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionRowSeparatorView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionStackViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionStackViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionTableRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionTableRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionTableViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionTableViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionURLRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionURLRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardCollectionViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardCollectionViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardCollectionViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionViewPresentation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardCollectionViewPresentation\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardCollectionViewPresentationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardCollectionViewPresentationDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewAKSingleValueConverter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewAKSingleValueConverter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewActionDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardViewActionDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewAlertTonesProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewAlertTonesProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewAlternateBirthdayProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewAlternateBirthdayProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewBirthdayProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewBirthdayProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewCNLabeledValueConverter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewCNLabeledValueConverter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewDataSourceProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardViewDataSourceProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewDateProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewDateProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewDictionaryTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewDictionaryTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewEditDisplayStyleCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewEditDisplayStyleCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewEditPropertyCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewEditPropertyCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewEmailProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewEmailProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewHelpers.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewHelpers : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewImage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewImage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewImageDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardViewImageDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewImageResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewImageResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewInstantMessageProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewInstantMessageProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewInstantMessageServiceGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewInstantMessageServiceGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewLabelGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewLabelGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewLinkedPeopleProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewLinkedPeopleProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewLinkedPerson.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewLinkedPerson : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewLinkedPersonValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewLinkedPersonValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMaidenNameProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMaidenNameProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMetrics.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMetrics : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMultiValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMultiValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMultiValueAccountNameTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMultiValueAccountNameTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMultiValueConverter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardViewMultiValueConverter\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMultiValueConverterBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMultiValueConverterBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMultiValueEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMultiValueEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMultiValuePrivateFieldTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMultiValuePrivateFieldTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMultiValueReadOnlyTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMultiValueReadOnlyTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMultiValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardViewMultiValueTransformer\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewMutableMultiValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewMutableMultiValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewNoteProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewNoteProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewNotificationHandler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewNotificationHandler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewPersonMapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewPersonMapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewPhoneProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewPhoneProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewPostalAddressFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewPostalAddressFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewPostalAddressProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewPostalAddressProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewPreferredForNameProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewPreferredForNameProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewPreferredForNameValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewPreferredForNameValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewPropertyProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewPropertyProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewRelatedNamesProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewRelatedNamesProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewSaveHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewSaveHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewSeparator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewSeparator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewSingleValueProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewSingleValueProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewSocialProfileProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewSocialProfileProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewStyle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewStyle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewStyleInternalProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewStyleInternalProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewStyleProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewStyleProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewTransformingMultiValueConverter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewTransformingMultiValueConverter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewURLProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewURLProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewUndoableDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewUndoableDataSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCardViewerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCardViewerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCertificatePanelController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCertificatePanelController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABChangePropertiesCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABChangePropertiesCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABChangePropertyCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABChangePropertyCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABChoosingForwarder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABChoosingForwarder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCleanGroupEntryListCellView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCleanGroupEntryListCellView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCleanGroupHeaderEntryListCellView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCleanGroupHeaderEntryListCellView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCleanGroupListRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCleanGroupListRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABClickableImageView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABClickableImageView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABClickableTextView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABClickableTextView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionAbstractAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionAbstractAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCollectionAction\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionDialAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionDialAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionFaceTimeRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionFaceTimeRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionItemMessagingAvailabilityHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionItemMessagingAvailabilityHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionItemMessagingAvailabilityHelperDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCollectionItemMessagingAvailabilityHelperDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionMessageAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionMessageAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionMultiPropertyAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCollectionMultiPropertyAction\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionOpenURLAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionOpenURLAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionReviewSuggestionAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionReviewSuggestionAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionRowViewEditModeFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionRowViewEditModeFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionRowViewFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionRowViewFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionSendMailAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionSendMailAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionShowMapAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionShowMapAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionTTYAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionTTYAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionViewImageButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionViewImageButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionViewItemFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionViewItemFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCollectionViewSeparatorItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCollectionViewSeparatorItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABColor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABColor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCommand\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCommandExecutionPolicy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCommandExecutionPolicy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCommandExecutor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCommandExecutor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCommandHookExecutionPolicy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCommandHookExecutionPolicy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCommandVisitor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCommandVisitor\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCommunicationButtonsController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCommunicationButtonsController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABConstraintDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABConstraintDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABConstraintsBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABConstraintsBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABContactDeletionTracing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABContactDeletionTracing : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABContactFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABContactFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABContactPickerDelegateWrapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABContactPickerDelegateWrapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABContactPickerFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABContactPickerFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABContactSearching.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABContactSearching\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCopyOnWriteSet.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCopyOnWriteSet : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCountTableEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCountTableEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCreatePersonCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCreatePersonCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABCustomLabelController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABCustomLabelController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDAVQuery.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDAVQuery : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDSuggestionLogPairBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDSuggestionLogPairBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDataSourceOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDataSourceOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDateCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDateCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDateComponentsFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDateComponentsFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDateComponentsValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDateComponentsValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDateFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDateFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDateProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDateProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDefaultCardViewStyleProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDefaultCardViewStyleProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDefaultGroupEntriesFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDefaultGroupEntriesFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDefaultStopWatchTimeIntervalProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDefaultStopWatchTimeIntervalProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDelegateCardAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDelegateCardAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDeleteGroupSheet.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDeleteGroupSheet : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDeleteRecordsCommandBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDeleteRecordsCommandBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDeprecatedObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDeprecatedObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDirectoriesHeaderGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDirectoriesHeaderGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDistributionKeyValueCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDistributionKeyValueCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDistributionListController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDistributionListController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDistributionListPeoplePickerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDistributionListPeoplePickerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDistributionListPeoplePickerView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDistributionListPeoplePickerView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABDropDownMenuUIAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABDropDownMenuUIAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABEditButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABEditButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABEditSmartGroupCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABEditSmartGroupCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABEmailCertificateController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABEmailCertificateController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABEmailCertificateSearchOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABEmailCertificateSearchOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABEmailCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABEmailCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABEvent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABEvent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABExchangeSetup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABExchangeSetup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABExecuteRedoUndoableCommandVisitor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABExecuteRedoUndoableCommandVisitor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABExecuteUndoUndoableCommandVisitor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABExecuteUndoUndoableCommandVisitor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABExecuteUndoableCommandVisitor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABExecuteUndoableCommandVisitor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABFaceTimeActionsCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABFaceTimeActionsCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABFaceTimeCommunicationsBridge.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABFaceTimeCommunicationsBridge : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABFaceTimeCommunicationsBridgeDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABFaceTimeCommunicationsBridgeDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABFaceTimeDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABFaceTimeDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABFakeSuggestedData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABFakeSuggestedData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABFlippedStackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABFlippedStackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABFont.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABFont : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGlobals.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\nextern NSString *const kABDatabaseChangedNotification;\nextern NSString *const kABDatabaseChangedExternallyNotification;\n\nextern NSString *const kABUIDProperty;\nextern NSString *const kABEmailProperty;\nextern NSString *const kABFirstNameProperty;\nextern NSString *const kABLastNameProperty;\nextern NSString *const kABNicknameProperty;\nextern NSString *const kABOrganizationProperty;\nextern NSString *const kABPersonFlags;\nextern NSString *const kABSuffixProperty;\n\nextern NSString *const kABDeletedRecords;\nextern NSString *const kABInsertedRecords;\nextern NSString *const kABUpdatedRecords;\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupActionScope.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupActionScope : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupBrowsingContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupBrowsingContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupBrowsingGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupBrowsingGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupCopyPasteboardData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupCopyPasteboardData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupDragPasteboardData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupDragPasteboardData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupDragScope.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupDragScope : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupDragSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupDragSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupDropDestination.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupDropDestination : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupDropPasteboardData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupDropPasteboardData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupDropPasteboardDataCategorizer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupDropPasteboardDataCategorizer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupDropScope.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupDropScope : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupDropSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupDropSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupEntriesAnalyzer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupEntriesAnalyzer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupEntriesBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupEntriesBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupEntriesFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABGroupEntriesFactory\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupEntriesList.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupEntriesList : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupEntriesResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupEntriesResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupHelperFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABGroupHelperFactory\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupImportFilesScope.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupImportFilesScope : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListAccessoryViewProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListAccessoryViewProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListActionDispatcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListActionDispatcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListActions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListActions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListCellViewStyle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListCellViewStyle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListCreateGroupUIAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListCreateGroupUIAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListCreateSmartGroupUIAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListCreateSmartGroupUIAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListNotificationHandler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListNotificationHandler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListResponder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListResponder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABGroupListRowView\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListStyleProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListStyleProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupListView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupListView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupPastePasteboardData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupPastePasteboardData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupSearchingContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABGroupSearchingContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABGroupSelectHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABGroupSelectHelper\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABHeaderGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABHeaderGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABImmediateActionGestureAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABImmediateActionGestureAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABImportRecordFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABImportRecordFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABInstantMessageCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABInstantMessageCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABKeyValueCoding.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABKeyValueCoding\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABKeystrokeForwarder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABKeystrokeForwarder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABKeystrokeForwardingEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABKeystrokeForwardingEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABLabelPopUpButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABLabelPopUpButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABLargeTypeView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABLargeTypeView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABLargeTypeWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABLargeTypeWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABLastImportBrowsingGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABLastImportBrowsingGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABLastImportGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABLastImportGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABLazyGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABLazyGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABLinkTextField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABLinkTextField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABLinkedPersonCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABLinkedPersonCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMainListOutlineView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMainListOutlineView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMainWindowGroupListCellView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABMainWindowGroupListCellView\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMapsLaunchRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMapsLaunchRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMapsLauncher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMapsLauncher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMeCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMeCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMiniGridView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMiniGridView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMonogramFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMonogramFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMonogramImageLoading.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMonogramImageLoading : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMonogramImageTask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMonogramImageTask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMonogramInitialsTask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMonogramInitialsTask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMonogramOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMonogramOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMonogramPhotoTask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMonogramPhotoTask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMonogramSilhouetteTask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMonogramSilhouetteTask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMutableBidirectionalDictionary.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMutableBidirectionalDictionary : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMutableKeyValueCoding.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABMutableKeyValueCoding\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABMutablePackedImage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABMutablePackedImage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNameView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNameView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNameViewCompanyCheckBox.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNameViewCompanyCheckBox : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNameViewCompanyCheckBoxDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABNameViewCompanyCheckBoxDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNameViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABNameViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNamedImageWrapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNamedImageWrapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNewGroupCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNewGroupCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNicknameFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNicknameFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNoSelectionTableView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNoSelectionTableView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNoWindowDragTextField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNoWindowDragTextField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNoteCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNoteCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNoteTextView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABNoteTextView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABNoteTextViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABNoteTextViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABObjectDeathWatcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABObjectDeathWatcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABOnBlueButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABOnBlueButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABOverlayView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABOverlayView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPackedImage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPackedImage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPasswordPanelController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPasswordPanelController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPastePeopleCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPastePeopleCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPasteboardData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPasteboardData\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPasteboardWriteCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPasteboardWriteCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeopleListTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeopleListTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerBrowsingSelectHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerBrowsingSelectHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerExternalNotificationWatcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerExternalNotificationWatcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerGroupEntriesFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerGroupEntriesFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerGroupHelperFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerGroupHelperFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerGroupListController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerGroupListController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerGroupListStyleProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerGroupListStyleProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerGroupListView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerGroupListView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerLocalNotificationWatcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerLocalNotificationWatcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerNameCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerNameCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerPropertyCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerPropertyCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerScope.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerScope : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerSearchingSelectHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerSearchingSelectHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerSubrowGroupElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerSubrowGroupElement : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerSubrowObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerSubrowObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerSubrowObjectBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerSubrowObjectBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerTableColumn.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerTableColumn : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerTableRow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerTableRow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerTableView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerTableView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerTableViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPeoplePickerTableViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerTableViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPeoplePickerTableViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeoplePickerView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeoplePickerView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeriodicTask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeriodicTask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPeriodicUITask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPeriodicUITask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPerson.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRecord.h>\n\n@interface ABPerson : ABRecord\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonContactConverter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonContactConverter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonEntriesFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonEntriesFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonEntriesList.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonEntriesList : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonEntryFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonEntryFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonInitials.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonInitials : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListAttributedName.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListAttributedName : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListControllerDelegateWrapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListControllerDelegateWrapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListControllerProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPersonListControllerProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListControllerTracing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListControllerTracing : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPersonListDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListDragExportHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListDragExportHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListHeadliner.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListHeadliner : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListHeadlining.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPersonListHeadlining\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListMenuHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListMenuHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListRowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListRowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListSearchController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListSearchController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListSearchHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListSearchHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListSharingHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListSharingHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonListUIReflector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonListUIReflector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonPicker.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonPicker : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonSearchConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonSearchConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonSearchControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPersonSearchControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonViewAPIAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonViewAPIAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonViewClientProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPersonViewClientProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonViewNotificationWatcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonViewNotificationWatcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonViewProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPersonViewProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPersonViewStyleProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPersonViewStyleProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPhoneCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPhoneCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPhoneFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPhoneFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPopUpButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPopUpButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPopUpButtonCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPopUpButtonCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPopUpButtonDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABPopUpButtonDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPopupTableHeaderCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPopupTableHeaderCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPopupTableHeaderView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPopupTableHeaderView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPostalAddressCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPostalAddressCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPostalAddressFormatSubmenuGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPostalAddressFormatSubmenuGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPreferredNameCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPreferredNameCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABPropertyHeaderCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABPropertyHeaderCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABQuerySearchConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABQuerySearchConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRTTServices.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRTTServices : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRecord.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRecord : NSObject\n{\n}\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRecordContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRecordContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRectObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRectObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRemotePersonView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRemotePersonView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRemoveMembersCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRemoveMembersCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRemoveMembersCommandBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRemoveMembersCommandBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRemovesEmptyCardViewData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRemovesEmptyCardViewData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRenameGroupCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRenameGroupCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABRolloverButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABRolloverButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSaveRequestCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABSaveRequestCommand\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSearchController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Foundation/NSObject.h>\n\n@interface ABSearchElement : NSObject\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchElementOrderManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSearchElementOrderManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchElementOrderManagerProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABSearchElementOrderManagerProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchElementRepresentationBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABSearchElementRepresentationBuilder\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchElementSetView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSearchElementSetView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchElementUIController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSearchElementUIController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchElementView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSearchElementView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchHighlightFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSearchHighlightFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchOperationsFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABSearchOperationsFactory\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSearchingGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSearchingGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSectionGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSectionGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSectionTableEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSectionTableEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABShadowTextField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABShadowTextField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABShadowTextFieldCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABShadowTextFieldCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABShadowTextView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABShadowTextView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABShadowTextViewMultipleValuePasteHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABShadowTextViewMultipleValuePasteHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABShadowTextViewPostalAddressValuePasteHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABShadowTextViewPostalAddressValuePasteHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABShowAsCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABShowAsCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSimpleLinkTextField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSimpleLinkTextField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSmartGroupBrowsingGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSmartGroupBrowsingGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSmartGroupsHeaderGroupEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSmartGroupsHeaderGroupEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSocialProfileCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSocialProfileCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSourceSyncPeriodicTaskScheduler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSourceSyncPeriodicTaskScheduler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSpaceFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSpaceFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABStopWatch.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABStopWatch : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABStopWatchTimeIntervalProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABStopWatchTimeIntervalProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSuggestedEntriesFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSuggestedEntriesFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSuggestedValueDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABSuggestedValueDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSuggestedValueSnippet.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSuggestedValueSnippet : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSuggestedValueViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSuggestedValueViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSuggestedValueViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABSuggestedValueViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSuggestedValueViewControllerSnippetHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSuggestedValueViewControllerSnippetHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABSuggestionsTracing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABSuggestionsTracing : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTableEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTableEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTableHeaderView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTableHeaderView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTelURLHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTelURLHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTemplatePreferencesSaving.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTemplatePreferencesSaving : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTemplateViewStyleProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTemplateViewStyleProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTextContainer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTextContainer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTextStorage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTextStorage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABThrottledTrackingAreaMonitor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABThrottledTrackingAreaMonitor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTrackingArea.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTrackingArea : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABTypesetter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABTypesetter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABURLCollectionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABURLCollectionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUndoableCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABUndoableCommand\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUndoableCommandVisitor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABUndoableCommandVisitor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUnlinkPeopleCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABUnlinkPeopleCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUserActivityRestoration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABUserActivityRestoration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUserActivityScore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABUserActivityScore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUserActivityScoring.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABUserActivityScoring : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUserActivitySerialization.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABUserActivitySerialization : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUserDefaultsCNAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABUserDefaultsCNAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABUserInterfaceAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABUserInterfaceAction\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABVCardFilenameExpander.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABVCardFilenameExpander : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABWhiteView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABWhiteView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABWidthLimitingStackView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABWidthLimitingStackView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABWindowController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABWindowController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/ABXMLParseNode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ABXMLParseNode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/AKCardViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AKCardViewDataSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/AKCardViewDataSourceFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AKCardViewDataSourceFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/AKCardViewImageDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AKCardViewImageDataSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/AKInstantMessageAddressValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AKInstantMessageAddressValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/AKSocialProfileValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AKSocialProfileValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/AddressBook.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _AddressBook_H_\n#define _AddressBook_H_\n\n#import <Foundation/Foundation.h>\n\n#import <AddressBook/ABAccessoryViewProvider.h>\n#import <AddressBook/ABActionDelegate.h>\n#import <AddressBook/ABActionManagerDelegate.h>\n#import <AddressBook/ABBookStateSaving.h>\n#import <AddressBook/ABCardCollectionRowView.h>\n#import <AddressBook/ABCardCollectionViewDataSource.h>\n#import <AddressBook/ABCardCollectionViewDelegate.h>\n#import <AddressBook/ABCardCollectionViewPresentation.h>\n#import <AddressBook/ABCardCollectionViewPresentationDelegate.h>\n#import <AddressBook/ABCardViewActionDataSource.h>\n#import <AddressBook/ABCardViewDataSource.h>\n#import <AddressBook/ABCardViewDataSourceProvider.h>\n#import <AddressBook/ABCardViewImageDataSource.h>\n#import <AddressBook/ABCardViewMultiValue.h>\n#import <AddressBook/ABCardViewMultiValueConverter.h>\n#import <AddressBook/ABCardViewMultiValueTransformer.h>\n#import <AddressBook/ABCardViewMutableMultiValue.h>\n#import <AddressBook/ABCardViewProperty.h>\n#import <AddressBook/ABCollectionAction.h>\n#import <AddressBook/ABCollectionItemMessagingAvailabilityHelperDelegate.h>\n#import <AddressBook/ABCollectionMultiPropertyAction.h>\n#import <AddressBook/ABCommand.h>\n#import <AddressBook/ABCommandExecutor.h>\n#import <AddressBook/ABCommandVisitor.h>\n#import <AddressBook/ABContactSearching.h>\n#import <AddressBook/ABDateProvider.h>\n#import <AddressBook/ABFaceTimeCommunicationsBridgeDelegate.h>\n#import <AddressBook/ABFaceTimeDataSource.h>\n#import <AddressBook/ABGroupEntriesFactory.h>\n#import <AddressBook/ABGroupHelperFactory.h>\n#import <AddressBook/ABGroupListRowView.h>\n#import <AddressBook/ABGroupListStyleProvider.h>\n#import <AddressBook/ABGroupSelectHelper.h>\n#import <AddressBook/ABKeyValueCoding.h>\n#import <AddressBook/ABMainWindowGroupListCellView.h>\n#import <AddressBook/ABMutableKeyValueCoding.h>\n#import <AddressBook/ABNameView.h>\n#import <AddressBook/ABNameViewCompanyCheckBoxDelegate.h>\n#import <AddressBook/ABNameViewDataSource.h>\n#import <AddressBook/ABNoteTextViewDelegate.h>\n#import <AddressBook/ABPasteboardData.h>\n#import <AddressBook/ABPeoplePickerTableViewDataSource.h>\n#import <AddressBook/ABPeoplePickerTableViewDelegate.h>\n#import <AddressBook/ABPersonListControllerProtocol.h>\n#import <AddressBook/ABPersonListDelegate.h>\n#import <AddressBook/ABPersonListHeadlining.h>\n#import <AddressBook/ABPersonSearchControllerDelegate.h>\n#import <AddressBook/ABPersonViewClientProtocol.h>\n#import <AddressBook/ABPersonViewProtocol.h>\n#import <AddressBook/ABPopUpButtonDelegate.h>\n#import <AddressBook/ABRTTServices.h>\n#import <AddressBook/ABRecordContext.h>\n#import <AddressBook/ABSaveRequestCommand.h>\n#import <AddressBook/ABSearchElementOrderManagerProtocol.h>\n#import <AddressBook/ABSearchElementRepresentationBuilder.h>\n#import <AddressBook/ABSearchOperationsFactory.h>\n#import <AddressBook/ABStopWatchTimeIntervalProvider.h>\n#import <AddressBook/ABSuggestedValueDataSource.h>\n#import <AddressBook/ABSuggestedValueViewControllerDelegate.h>\n#import <AddressBook/ABUndoableCommand.h>\n#import <AddressBook/ABUserInterfaceAction.h>\n#import <AddressBook/AsyncABPersonViewProtocol.h>\n#import <AddressBook/CNCollectionViewTouchBarDelegate.h>\n#import <AddressBook/CNContactCardViewControllerDelegate.h>\n#import <AddressBook/CNContactPickerDelegate.h>\n#import <AddressBook/CNFoundationUserDefaults.h>\n#import <AddressBook/CNPrivateContactPickerDelegate.h>\n#import <AddressBook/CNUISaveRequestCommand.h>\n#import <AddressBook/NSAccessibilityButton.h>\n#import <AddressBook/NSAccessibilityElement.h>\n#import <AddressBook/NSAccessibilityStaticText.h>\n#import <AddressBook/NSControlTextEditingDelegate.h>\n#import <AddressBook/NSImmediateActionAnimationController.h>\n#import <AddressBook/NSMenuDelegate.h>\n#import <AddressBook/NSOutlineViewDataSource.h>\n#import <AddressBook/NSOutlineViewDelegate.h>\n#import <AddressBook/NSPopoverDelegate.h>\n#import <AddressBook/NSRemoteViewDelegate.h>\n#import <AddressBook/NSSearchFieldDelegate.h>\n#import <AddressBook/NSSharingServiceDelegate.h>\n#import <AddressBook/NSSharingServicePickerDelegate.h>\n#import <AddressBook/NSTableViewDataSource.h>\n#import <AddressBook/NSTableViewDelegate.h>\n#import <AddressBook/NSTextDelegate.h>\n#import <AddressBook/NSTextFieldDelegate.h>\n#import <AddressBook/NSTextViewDelegate.h>\n#import <AddressBook/NSWindowDelegate.h>\n#import <AddressBook/NSWindowRestoration.h>\n#import <AddressBook/TKTonePickerViewControllerDelegate.h>\n#import <AddressBook/_SGSuggestionsServiceMetricsProtocol.h>\n#import <AddressBook/ABAPIAdapter.h>\n#import <AddressBook/ABAbstractGroupEntriesFactory.h>\n#import <AddressBook/ABAbstractGroupListAction.h>\n#import <AddressBook/ABAccountBrowsingGroupEntry.h>\n#import <AddressBook/ABAccountGroupEntries.h>\n#import <AddressBook/ABAccountGroupEntriesBuilder.h>\n#import <AddressBook/ABAccountHeaderGroupEntry.h>\n#import <AddressBook/CNUISaveNonCuratedValueOntoExistingContactCommand.h>\n#import <AddressBook/CNUISaveNonCuratedContactCommand.h>\n#import <AddressBook/ABUserActivityScore.h>\n#import <AddressBook/ABActionAddSuggestedValue.h>\n#import <AddressBook/ABUserActivityRestoration.h>\n#import <AddressBook/ABActionAddressCopyMailingLabel.h>\n#import <AddressBook/ABActionAddressCopyMapURL.h>\n#import <AddressBook/ABActionAddressGetDirections.h>\n#import <AddressBook/CNUIContactNameOrder.h>\n#import <AddressBook/_CNUIDefaultContactNameOrder.h>\n#import <AddressBook/_CNUINamelessContactNameOrder.h>\n#import <AddressBook/_CNUIGivenNameFirstNameOrder.h>\n#import <AddressBook/_CNUIFamilyNameFirstNameOrder.h>\n#import <AddressBook/ABActionAddressMapsHelper.h>\n#import <AddressBook/ABActionAddressShowMap.h>\n#import <AddressBook/ABActionAutovalidator.h>\n#import <AddressBook/ABActionAutovalidatorCache.h>\n#import <AddressBook/ABActionAutovalidatorCacheEntry.h>\n#import <AddressBook/ABActionAutovalidatorCacheMenuEntry.h>\n#import <AddressBook/ABActionAutovalidatorCacheSimpleEntry.h>\n#import <AddressBook/ABActionBeginChat.h>\n#import <AddressBook/ABActionDispatcher.h>\n#import <AddressBook/ABCardCollectionRowSeparatorView.h>\n#import <AddressBook/ABActionEmailSearchSpotlight.h>\n#import <AddressBook/ABActionEmailSendMessage.h>\n#import <AddressBook/ABActionEmailSendUpdate.h>\n#import <AddressBook/ABActionIgnoreSuggestedValue.h>\n#import <AddressBook/ABActionLinkedSetPreferredCard.h>\n#import <AddressBook/ABActionManager.h>\n#import <AddressBook/ABActionMenuItemFactory.h>\n#import <AddressBook/ABActionPhoneDial.h>\n#import <AddressBook/ABActionPhoneLargeType.h>\n#import <AddressBook/ABActionRelatedShowCard.h>\n#import <AddressBook/ABActionSocialProfile.h>\n#import <AddressBook/ABActionSocialProfileSendMessage.h>\n#import <AddressBook/ABActionSocialProfileViewPhotos.h>\n#import <AddressBook/ABActionSocialProfileViewProfile.h>\n#import <AddressBook/ABActionURLsOpenURL.h>\n#import <AddressBook/ABAddSuggestedValueTask.h>\n#import <AddressBook/CNUISaveNonCuratedValueOntoContactCommand.h>\n#import <AddressBook/ABAddressBookAPIAdapter.h>\n#import <AddressBook/ABAddressFieldBuilder.h>\n#import <AddressBook/ABAddressFieldValuePopulator.h>\n#import <AddressBook/ABAggregateSearchOperationsFactory.h>\n#import <AddressBook/ABAlert.h>\n#import <AddressBook/ABAlertToneCollectionViewItem.h>\n#import <AddressBook/ABAllSmartGroup.h>\n#import <AddressBook/ABAlternateBirthdayCollectionViewItem.h>\n#import <AddressBook/ABAppDeprecations.h>\n#import <AddressBook/ABAppearance.h>\n#import <AddressBook/ABAuthenticationInfo.h>\n#import <AddressBook/ABBestEntryFinder.h>\n#import <AddressBook/ABMutableBidirectionalDictionary.h>\n#import <AddressBook/ABBidirectionalDictionary.h>\n#import <AddressBook/ABDeprecatedObject.h>\n#import <AddressBook/ABSearchController.h>\n#import <AddressBook/ABCardViewerController.h>\n#import <AddressBook/CNUIAddressBookToContactsConversions.h>\n#import <AddressBook/ABBindingsLabelTransformer.h>\n#import <AddressBook/ABBindingsURLTransformer.h>\n#import <AddressBook/ABAttributedStringTransformer.h>\n#import <AddressBook/ABGroupListTransformer.h>\n#import <AddressBook/ABPeopleListTransformer.h>\n#import <AddressBook/ABDateComponentsValueTransformer.h>\n#import <AddressBook/ABBirthdayCollectionViewItem.h>\n#import <AddressBook/ABBirthdayConversionUIAction.h>\n#import <AddressBook/ABBookAggregateUndoableCommand.h>\n#import <AddressBook/_ABBookUndoableCommandAdapter.h>\n#import <AddressBook/ABBookAggregateUndoableCommandBuilder.h>\n#import <AddressBook/ABBookCreateGroupCommand.h>\n#import <AddressBook/ABBookCreateGroupWithMembersCommand.h>\n#import <AddressBook/ABBookCreateSmartGroupCommand.h>\n#import <AddressBook/ABBookEditSmartGroupCommand.h>\n#import <AddressBook/ABBookGroupAddMembersCommand.h>\n#import <AddressBook/ABBookGroupAddRecordsCommand.h>\n#import <AddressBook/ABBookGroupAddSubgroupsCommand.h>\n#import <AddressBook/ABBookGroupCopyCommand.h>\n#import <AddressBook/ABCollectionViewSeparatorItem.h>\n#import <AddressBook/ABBookGroupCutCommand.h>\n#import <AddressBook/ABBookGroupDeleteCommand.h>\n#import <AddressBook/ABBookGroupImportCommand.h>\n#import <AddressBook/ABBookPastePeopleCommand.h>\n#import <AddressBook/ABBookRenameGroupCommand.h>\n#import <AddressBook/ABBookSearchField.h>\n#import <AddressBook/ABBookSearchFieldCell.h>\n#import <AddressBook/CNUISetImageCommand.h>\n#import <AddressBook/CNUISetMultipleImagesCommand.h>\n#import <AddressBook/ABBrowsingGroupEntry.h>\n#import <AddressBook/ABBrowsingSearchConfiguration.h>\n#import <AddressBook/CNUIRejectSugggestedValueCommand.h>\n#import <AddressBook/ABBuddyStatus.h>\n#import <AddressBook/ABBuddyStatusImageCell.h>\n#import <AddressBook/ABButtonCell.h>\n#import <AddressBook/ABCNAddressDetector.h>\n#import <AddressBook/CNContactLabelSanitizer.h>\n#import <AddressBook/ABCNContactPhotoStore.h>\n#import <AddressBook/ABCNContactThumbnailPhotoStore.h>\n#import <AddressBook/ABCNContactUncroppedPhotoStore.h>\n#import <AddressBook/ABCNContactRemotePhotoStore.h>\n#import <AddressBook/CNUISaveNonCuratedValueOntoReadOnlyContactCommand.h>\n#import <AddressBook/ABCNDDScanner.h>\n#import <AddressBook/ABNameViewCompanyCheckBox.h>\n#import <AddressBook/CNUISaveNonCuratedContactCommandFactory.h>\n#import <AddressBook/ABCNPhoneDialer.h>\n#import <AddressBook/ABCNPhoneNumberDetector.h>\n#import <AddressBook/ABCardCollectionStackViewController.h>\n#import <AddressBook/CNUIContactRelationsValueTransformer.h>\n#import <AddressBook/ABCallbackCardAction.h>\n#import <AddressBook/ABPersonListAttributedName.h>\n#import <AddressBook/ABCardActionProvider.h>\n#import <AddressBook/ABCardCollectionLinkedPeopleRowView.h>\n#import <AddressBook/ABCardCollectionMessagingRowView.h>\n#import <AddressBook/ABCardCollectionNoteRowView.h>\n#import <AddressBook/ABCardCollectionPostalAddressRowView.h>\n#import <AddressBook/ABCardCollectionPreferredNameRowView.h>\n#import <AddressBook/ABCardCollectionRowLayout.h>\n#import <AddressBook/ABCardCollectionRowScope.h>\n#import <AddressBook/ABCardCollectionRowView.h>\n#import <AddressBook/ABCardCollectionURLRowView.h>\n#import <AddressBook/ABSuggestionsTracing.h>\n#import <AddressBook/ABCardCollectionView.h>\n#import <AddressBook/ABCardCollectionViewController.h>\n#import <AddressBook/ABCardViewCNLabeledValueConverter.h>\n#import <AddressBook/ABCardViewAKSingleValueConverter.h>\n#import <AddressBook/ABCardViewAlertTonesProperty.h>\n#import <AddressBook/ABCardViewAlternateBirthdayProperty.h>\n#import <AddressBook/ABCardViewBirthdayProperty.h>\n#import <AddressBook/ABCardViewDateProperty.h>\n#import <AddressBook/ABCardViewDictionaryTransformer.h>\n#import <AddressBook/ABCardViewEditDisplayStyleCommand.h>\n#import <AddressBook/ABCardViewEditPropertyCommand.h>\n#import <AddressBook/ABCardViewEmailProperty.h>\n#import <AddressBook/ABCardViewHelpers.h>\n#import <AddressBook/ABCardViewImage.h>\n#import <AddressBook/ABCardViewImageResult.h>\n#import <AddressBook/ABCardViewInstantMessageProperty.h>\n#import <AddressBook/ABCardViewInstantMessageServiceGenerator.h>\n#import <AddressBook/ABCardViewLabelGenerator.h>\n#import <AddressBook/ABCardViewLinkedPeopleProperty.h>\n#import <AddressBook/ABCardViewLinkedPerson.h>\n#import <AddressBook/ABCardViewLinkedPersonValueTransformer.h>\n#import <AddressBook/ABCardViewMaidenNameProperty.h>\n#import <AddressBook/ABCardViewMetrics.h>\n#import <AddressBook/ABCardViewMultiValue.h>\n#import <AddressBook/ABCardViewMultiValueAccountNameTransformer.h>\n#import <AddressBook/ABCardViewMultiValueConverterBuilder.h>\n#import <AddressBook/ABCardViewMultiValueEntry.h>\n#import <AddressBook/ABCardViewMultiValuePrivateFieldTransformer.h>\n#import <AddressBook/ABCardViewMultiValueReadOnlyTransformer.h>\n#import <AddressBook/ABCardViewMutableMultiValue.h>\n#import <AddressBook/ABCardViewNoteProperty.h>\n#import <AddressBook/ABCardViewNotificationHandler.h>\n#import <AddressBook/ABCardViewPersonMapper.h>\n#import <AddressBook/ABCardViewPhoneProperty.h>\n#import <AddressBook/ABCardViewPostalAddressFormatter.h>\n#import <AddressBook/ABCardViewPostalAddressProperty.h>\n#import <AddressBook/ABCardViewPreferredForNameProperty.h>\n#import <AddressBook/ABCardViewPreferredForNameValueTransformer.h>\n#import <AddressBook/ABCardViewProperty.h>\n#import <AddressBook/ABCardViewPropertyProvider.h>\n#import <AddressBook/ABCardViewSaveHelper.h>\n#import <AddressBook/ABCardViewSeparator.h>\n#import <AddressBook/ABUserActivityScoring.h>\n#import <AddressBook/ABCardViewSingleValueProperty.h>\n#import <AddressBook/ABCardViewSocialProfileProperty.h>\n#import <AddressBook/ABCardViewStyleInternalProvider.h>\n#import <AddressBook/ABCardViewStyle.h>\n#import <AddressBook/ABCardViewStyleProvider.h>\n#import <AddressBook/ABDefaultCardViewStyleProvider.h>\n#import <AddressBook/ABCardViewTransformingMultiValueConverter.h>\n#import <AddressBook/ABCardViewURLProperty.h>\n#import <AddressBook/ABCardViewUndoableDataSource.h>\n#import <AddressBook/ABCertificatePanelController.h>\n#import <AddressBook/ABChangePropertiesCommand.h>\n#import <AddressBook/ABChangePropertyCommand.h>\n#import <AddressBook/ABChoosingForwarder.h>\n#import <AddressBook/ABCleanGroupEntryListCellView.h>\n#import <AddressBook/ABCleanGroupHeaderEntryListCellView.h>\n#import <AddressBook/ABCleanGroupListRowView.h>\n#import <AddressBook/ABClickableImageView.h>\n#import <AddressBook/ABClickableTextView.h>\n#import <AddressBook/ABCollectionAbstractAction.h>\n#import <AddressBook/ABCollectionDialAction.h>\n#import <AddressBook/ABCollectionFaceTimeRowView.h>\n#import <AddressBook/ABCollectionItemMessagingAvailabilityHelper.h>\n#import <AddressBook/ABCollectionMessageAction.h>\n#import <AddressBook/ABCollectionOpenURLAction.h>\n#import <AddressBook/ABCollectionReviewSuggestionAction.h>\n#import <AddressBook/ABCollectionRowViewEditModeFactory.h>\n#import <AddressBook/ABCollectionRowViewFactory.h>\n#import <AddressBook/ABAccessibleTextFieldCell.h>\n#import <AddressBook/ABCollectionSendMailAction.h>\n#import <AddressBook/ABCollectionShowMapAction.h>\n#import <AddressBook/ABCollectionTTYAction.h>\n#import <AddressBook/ABCollectionViewImageButton.h>\n#import <AddressBook/ABCollectionViewItem.h>\n#import <AddressBook/ABCollectionViewItemFactory.h>\n#import <AddressBook/ABColor.h>\n#import <AddressBook/ABCommandExecutionPolicy.h>\n#import <AddressBook/ABAddressBookCommandExecutionPolicy.h>\n#import <AddressBook/ABCommandHookExecutionPolicy.h>\n#import <AddressBook/ABCommandExecutor.h>\n#import <AddressBook/ABCommunicationButtonsController.h>\n#import <AddressBook/ABConstraintDescription.h>\n#import <AddressBook/ABConstraintsBuilder.h>\n#import <AddressBook/ABContactDeletionTracing.h>\n#import <AddressBook/ABContactFetcher.h>\n#import <AddressBook/ABContactPickerDelegateWrapper.h>\n#import <AddressBook/ABContactPickerFactory.h>\n#import <AddressBook/ABAttributedString.h>\n#import <AddressBook/ABCopyOnWriteSet.h>\n#import <AddressBook/ABCountTableEntry.h>\n#import <AddressBook/ABCreatePersonCommand.h>\n#import <AddressBook/ABCustomLabelController.h>\n#import <AddressBook/ABDAVQuery.h>\n#import <AddressBook/ABDataSourceOperation.h>\n#import <AddressBook/ABDateCollectionViewItem.h>\n#import <AddressBook/ABDateComponentsFormatter.h>\n#import <AddressBook/ABDateFormatter.h>\n#import <AddressBook/ABDateProvider.h>\n#import <AddressBook/ABDefaultGroupEntriesFactory.h>\n#import <AddressBook/ABDelegateCardAction.h>\n#import <AddressBook/ABDeleteGroupSheet.h>\n#import <AddressBook/ABDeleteRecordsCommandBuilder.h>\n#import <AddressBook/ABDirectoriesHeaderGroupEntry.h>\n#import <AddressBook/ABDSuggestionLogPairBuilder.h>\n#import <AddressBook/ABDistributionListController.h>\n#import <AddressBook/ABDistributionKeyValueCell.h>\n#import <AddressBook/ABDistributionListPeoplePickerView.h>\n#import <AddressBook/ABDistributionListPeoplePickerController.h>\n#import <AddressBook/ABDropDownMenuUIAction.h>\n#import <AddressBook/ABEditButton.h>\n#import <AddressBook/ABEditSmartGroupCommand.h>\n#import <AddressBook/ABEmailCertificateController.h>\n#import <AddressBook/ABEmailCertificateSearchOperation.h>\n#import <AddressBook/ABEmailCollectionViewItem.h>\n#import <AddressBook/ABEvent.h>\n#import <AddressBook/ABExchangeSetup.h>\n#import <AddressBook/ABFaceTimeActionsCollectionViewItem.h>\n#import <AddressBook/ABFaceTimeCommunicationsBridge.h>\n#import <AddressBook/ABFakeSuggestedData.h>\n#import <AddressBook/ABFont.h>\n#import <AddressBook/CNUIDeleteCommandHelper.h>\n#import <AddressBook/CNUIPhoneNumerValueTransformer.h>\n#import <AddressBook/ABTelURLHelper.h>\n#import <AddressBook/ABGroupActionScope.h>\n#import <AddressBook/ABGroupBrowsingContext.h>\n#import <AddressBook/ABGroupBrowsingGroupEntry.h>\n#import <AddressBook/ABGroupCommand.h>\n#import <AddressBook/ABGroupCopyPasteboardData.h>\n#import <AddressBook/ABPhoneFormatter.h>\n#import <AddressBook/ABGroupDragPasteboardData.h>\n#import <AddressBook/ABGroupDragScope.h>\n#import <AddressBook/ABGroupDragSource.h>\n#import <AddressBook/ABGroupDropDestination.h>\n#import <AddressBook/ABGroupDropPasteboardData.h>\n#import <AddressBook/ABGroupDropPasteboardDataCategorizer.h>\n#import <AddressBook/ABGroupDropScope.h>\n#import <AddressBook/ABGroupDropSource.h>\n#import <AddressBook/ABGroupEntriesAnalyzer.h>\n#import <AddressBook/ABGroupEntriesBuilder.h>\n#import <AddressBook/ABGroupEntriesList.h>\n#import <AddressBook/ABGroupEntriesResult.h>\n#import <AddressBook/ABGroupEntry.h>\n#import <AddressBook/ABGroupImportFilesScope.h>\n#import <AddressBook/ABGroupListAccessoryViewProvider.h>\n#import <AddressBook/ABGroupListActionDispatcher.h>\n#import <AddressBook/ABGroupListActions.h>\n#import <AddressBook/ABGroupListCellViewStyle.h>\n#import <AddressBook/ABGroupListController.h>\n#import <AddressBook/ABGroupListCreateGroupUIAction.h>\n#import <AddressBook/ABGroupListCreateSmartGroupUIAction.h>\n#import <AddressBook/ABGroupListNotificationHandler.h>\n#import <AddressBook/ABGroupListResponder.h>\n#import <AddressBook/ABGroupListStyleProvider.h>\n#import <AddressBook/ABGroupListView.h>\n#import <AddressBook/ABGroupPastePasteboardData.h>\n#import <AddressBook/ABGroupSearchingContext.h>\n#import <AddressBook/ABHeaderGroupEntry.h>\n#import <AddressBook/ABImmediateActionGestureAdapter.h>\n#import <AddressBook/ABTemplatePreferencesSaving.h>\n#import <AddressBook/ABRectObject.h>\n#import <AddressBook/ABPackedImage.h>\n#import <AddressBook/ABMutablePackedImage.h>\n#import <AddressBook/ABImportRecordFactory.h>\n#import <AddressBook/ABInstantMessageCollectionViewItem.h>\n#import <AddressBook/_ABGeocodingMapsLauncher.h>\n#import <AddressBook/ABKeystrokeForwarder.h>\n#import <AddressBook/ABKeystrokeForwardingEntry.h>\n#import <AddressBook/ABLabelPopUpButton.h>\n#import <AddressBook/ABLargeTypeView.h>\n#import <AddressBook/ABLargeTypeWindow.h>\n#import <AddressBook/ABLastImportBrowsingGroupEntry.h>\n#import <AddressBook/ABLastImportGroup.h>\n#import <AddressBook/ABLazyGroup.h>\n#import <AddressBook/ABLinkTextField.h>\n#import <AddressBook/ABLinkedPersonCollectionViewItem.h>\n#import <AddressBook/ABMainListOutlineView.h>\n#import <AddressBook/CNUIRejectNonCuratedValueCommandFactory.h>\n#import <AddressBook/ABMeCommand.h>\n#import <AddressBook/ABPostalAddressFormatSubmenuGenerator.h>\n#import <AddressBook/CNUIRejectNonCuratedValueCommand.h>\n#import <AddressBook/ABMiniGridView.h>\n#import <AddressBook/ABMonogramFactory.h>\n#import <AddressBook/ABMonogramImageLoading.h>\n#import <AddressBook/ABMonogramImageTask.h>\n#import <AddressBook/ABMonogramInitialsTask.h>\n#import <AddressBook/_ABMonogramOptions.h>\n#import <AddressBook/ABMonogramOptions.h>\n#import <AddressBook/ABMonogramPhotoTask.h>\n#import <AddressBook/ABMonogramSilhouetteTask.h>\n#import <AddressBook/ABNameView.h>\n#import <AddressBook/ABNewGroupCommand.h>\n#import <AddressBook/ABNicknameFormatter.h>\n#import <AddressBook/ABNoSelectionTableView.h>\n#import <AddressBook/ABNoWindowDragTextField.h>\n#import <AddressBook/ABNoteCollectionViewItem.h>\n#import <AddressBook/ABNoteTextView.h>\n#import <AddressBook/ABObjectDeathWatcher.h>\n#import <AddressBook/ABNamedImageWrapper.h>\n#import <AddressBook/ABOnBlueButton.h>\n#import <AddressBook/ABOverlayView.h>\n#import <AddressBook/ABPasswordPanelController.h>\n#import <AddressBook/ABPastePeopleCommand.h>\n#import <AddressBook/ABPasteboardWriteCommand.h>\n#import <AddressBook/ABPeoplePickerBrowsingSelectHelper.h>\n#import <AddressBook/ABPeoplePickerController.h>\n#import <AddressBook/ABPeoplePickerExternalNotificationWatcher.h>\n#import <AddressBook/ABPeoplePickerGroupEntriesFactory.h>\n#import <AddressBook/ABPeoplePickerGroupHelperFactory.h>\n#import <AddressBook/ABUserActivitySerialization.h>\n#import <AddressBook/ABPeoplePickerGroupListController.h>\n#import <AddressBook/ABPeoplePickerGroupListStyleProvider.h>\n#import <AddressBook/ABPeoplePickerGroupListView.h>\n#import <AddressBook/ABPeoplePickerLocalNotificationWatcher.h>\n#import <AddressBook/ABPeoplePickerProperty.h>\n#import <AddressBook/ABPeoplePickerScope.h>\n#import <AddressBook/ABPeoplePickerSearchingSelectHelper.h>\n#import <AddressBook/ABPeoplePickerSubrowObjectBuilder.h>\n#import <AddressBook/ABPeoplePickerTableView.h>\n#import <AddressBook/ABPeoplePickerTableColumn.h>\n#import <AddressBook/ABPeoplePickerTableRow.h>\n#import <AddressBook/ABPeoplePickerSubrowObject.h>\n#import <AddressBook/ABPeoplePickerSubrowGroupElement.h>\n#import <AddressBook/ABPeoplePickerNameCell.h>\n#import <AddressBook/ABPeoplePickerPropertyCell.h>\n#import <AddressBook/ABPeoplePickerView.h>\n#import <AddressBook/ABPeriodicTask.h>\n#import <AddressBook/ABPeriodicUITask.h>\n#import <AddressBook/ABPerson.h>\n#import <AddressBook/ABPersonContactConverter.h>\n#import <AddressBook/ABPersonEntriesFetcher.h>\n#import <AddressBook/ABPersonEntriesList.h>\n#import <AddressBook/ABPersonEntry.h>\n#import <AddressBook/ABPersonEntryFactory.h>\n#import <AddressBook/ABPersonInitials.h>\n#import <AddressBook/ABPersonListController.h>\n#import <AddressBook/ABPersonListControllerDelegateWrapper.h>\n#import <AddressBook/ABPersonListControllerTracing.h>\n#import <AddressBook/ABPersonListDragExportHelper.h>\n#import <AddressBook/ABPersonListHeadliner.h>\n#import <AddressBook/ABPersonListMenuHelper.h>\n#import <AddressBook/ABPersonListRowView.h>\n#import <AddressBook/ABPersonListSearchController.h>\n#import <AddressBook/ABPersonListSearchHelper.h>\n#import <AddressBook/ABPersonListSharingHelper.h>\n#import <AddressBook/ABPersonListUIReflector.h>\n#import <AddressBook/ABPersonPicker.h>\n#import <AddressBook/CNUISaveNonCuratedValueOntoNonExistingContactCommand.h>\n#import <AddressBook/ABPersonSearchConfiguration.h>\n#import <AddressBook/ABPersonView.h>\n#import <AddressBook/ABPersonViewAPIAdapter.h>\n#import <AddressBook/ABPersonViewNotificationWatcher.h>\n#import <AddressBook/CNUISaveNonCuratedValueCommandFactory.h>\n#import <AddressBook/ABPersonViewStyleProvider.h>\n#import <AddressBook/ABPhoneCollectionViewItem.h>\n#import <AddressBook/ABPopUpButton.h>\n#import <AddressBook/ABPopUpButtonCell.h>\n#import <AddressBook/ABPopupTableHeaderCell.h>\n#import <AddressBook/ABPopupTableHeaderView.h>\n#import <AddressBook/ABPostalAddressCollectionViewItem.h>\n#import <AddressBook/ABPreferredNameCollectionViewItem.h>\n#import <AddressBook/ABPropertyHeaderCell.h>\n#import <AddressBook/ABCardViewRelatedNamesProperty.h>\n#import <AddressBook/ABQuerySearchConfiguration.h>\n#import <AddressBook/ABRecordContext.h>\n#import <AddressBook/_ABURLMapsLauncher.h>\n#import <AddressBook/CNUIRejectDonatedValueCommand.h>\n#import <AddressBook/ABMapsLauncher.h>\n#import <AddressBook/ABRemotePersonView.h>\n#import <AddressBook/ABRemoveMembersCommand.h>\n#import <AddressBook/ABRemoveMembersCommandBuilder.h>\n#import <AddressBook/ABRemovesEmptyCardViewData.h>\n#import <AddressBook/ABRenameGroupCommand.h>\n#import <AddressBook/ABRolloverButton.h>\n#import <AddressBook/ABMapsLaunchRequest.h>\n#import <AddressBook/ABSearchElement.h>\n#import <AddressBook/ABSearchElementOrderManager.h>\n#import <AddressBook/ABSearchElementSetView.h>\n#import <AddressBook/ABSearchElementUIController.h>\n#import <AddressBook/ABSearchElementView.h>\n#import <AddressBook/ABSearchHighlightFormatter.h>\n#import <AddressBook/ABSearchingGroupEntry.h>\n#import <AddressBook/ABSectionGroupEntry.h>\n#import <AddressBook/ABSectionTableEntry.h>\n#import <AddressBook/ABShadowTextField.h>\n#import <AddressBook/ABShadowTextFieldCell.h>\n#import <AddressBook/ABShadowTextView.h>\n#import <AddressBook/ABShadowTextViewMultipleValuePasteHelper.h>\n#import <AddressBook/ABFlippedStackView.h>\n#import <AddressBook/ABShadowTextViewPostalAddressValuePasteHelper.h>\n#import <AddressBook/ABShowAsCommand.h>\n#import <AddressBook/ABSimpleLinkTextField.h>\n#import <AddressBook/ABSmartGroupBrowsingGroupEntry.h>\n#import <AddressBook/ABSmartGroupsHeaderGroupEntry.h>\n#import <AddressBook/ABSocialProfileCollectionViewItem.h>\n#import <AddressBook/ABSourceSyncPeriodicTaskScheduler.h>\n#import <AddressBook/ABSpaceFormatter.h>\n#import <AddressBook/ABDefaultStopWatchTimeIntervalProvider.h>\n#import <AddressBook/ABStopWatch.h>\n#import <AddressBook/CNUISaveSuggestedMeContactCommand.h>\n#import <AddressBook/ABSuggestedEntriesFetcher.h>\n#import <AddressBook/ABSuggestedValueSnippet.h>\n#import <AddressBook/ABSuggestedValueViewController.h>\n#import <AddressBook/ABSuggestedValueViewControllerSnippetHelper.h>\n#import <AddressBook/ABRTTServices.h>\n#import <AddressBook/ABTableEntry.h>\n#import <AddressBook/ABTableHeaderView.h>\n#import <AddressBook/ABTemplateViewStyleProvider.h>\n#import <AddressBook/ABTextContainer.h>\n#import <AddressBook/ABTextStorage.h>\n#import <AddressBook/ABThrottledTrackingAreaMonitor.h>\n#import <AddressBook/ABTrackingArea.h>\n#import <AddressBook/ABTypesetter.h>\n#import <AddressBook/ABURLCollectionViewItem.h>\n#import <AddressBook/ABUndoableCommandVisitor.h>\n#import <AddressBook/ABExecuteUndoableCommandVisitor.h>\n#import <AddressBook/ABExecuteUndoUndoableCommandVisitor.h>\n#import <AddressBook/ABExecuteRedoUndoableCommandVisitor.h>\n#import <AddressBook/ABUnlinkPeopleCommand.h>\n#import <AddressBook/ABUserDefaultsCNAdapter.h>\n#import <AddressBook/ABVCardFilenameExpander.h>\n#import <AddressBook/ABView.h>\n#import <AddressBook/ABWhiteView.h>\n#import <AddressBook/ABWidthLimitingStackView.h>\n#import <AddressBook/ABWindowController.h>\n#import <AddressBook/ABXMLParseNode.h>\n#import <AddressBook/CNUISaveSuggestedContactCommand.h>\n#import <AddressBook/CNUIAddContactCommand.h>\n#import <AddressBook/CNUIAggregateUndoableCommand.h>\n#import <AddressBook/CNUIAggregateUndoableCommandBuilder.h>\n#import <AddressBook/AKCardViewDataSource.h>\n#import <AddressBook/AKCardViewDataSourceFactory.h>\n#import <AddressBook/AKCardViewImageDataSource.h>\n#import <AddressBook/CNUIDeleteContactCommand.h>\n#import <AddressBook/CNUICommandContactHelper.h>\n#import <AddressBook/CNUIEditContactCommand.h>\n#import <AddressBook/AKInstantMessageAddressValueTransformer.h>\n#import <AddressBook/CNUISetMeCardCommand.h>\n#import <AddressBook/AKSocialProfileValueTransformer.h>\n#import <AddressBook/CNUIUndoableCommand.h>\n#import <AddressBook/CNCollectionUserActionItem.h>\n#import <AddressBook/PHXTableView.h>\n#import <AddressBook/ABCardCollectionTableRowView.h>\n#import <AddressBook/ABCardCollectionTableViewController.h>\n#import <AddressBook/_ABPersonView.h>\n\n@protocol ABImageClient\n@end\n\nvoid* ABAddressBookLocalizedString(void);\nvoid* ABDeleteRecordsCommandNameForRecords(void);\nvoid* ABEmailCertificateCopyMatchingUnexpired(void);\nvoid* ABEmailCertificateHasMatchingUnexpired(void);\nvoid* ABIsParagraphSeparator(void);\nvoid* ABPickerAddProperty(void);\nvoid* ABPickerChangeAttributes(void);\nvoid* ABPickerClearSearchField(void);\nvoid* ABPickerCopyColumnTitle(void);\nvoid* ABPickerCopyDisplayedProperty(void);\nvoid* ABPickerCopyProperties(void);\nvoid* ABPickerCopySelectedGroups(void);\nvoid* ABPickerCopySelectedIdentifiers(void);\nvoid* ABPickerCopySelectedRecords(void);\nvoid* ABPickerCopySelectedValues(void);\nvoid* ABPickerCreate(void);\nvoid* ABPickerDeselectAll(void);\nvoid* ABPickerDeselectGroup(void);\nvoid* ABPickerDeselectIdentifier(void);\nvoid* ABPickerDeselectRecord(void);\nvoid* ABPickerEditInAddressBook(void);\nvoid* ABPickerGetAttributes(void);\nvoid* ABPickerGetDelegate(void);\nvoid* ABPickerGetFrame(void);\nvoid* ABPickerIsVisible(void);\nvoid* ABPickerRemoveProperty(void);\nvoid* ABPickerSelectGroup(void);\nvoid* ABPickerSelectIdentifier(void);\nvoid* ABPickerSelectInAddressBook(void);\nvoid* ABPickerSelectRecord(void);\nvoid* ABPickerSetColumnTitle(void);\nvoid* ABPickerSetDelegate(void);\nvoid* ABPickerSetDisplayedProperty(void);\nvoid* ABPickerSetFrame(void);\nvoid* ABPickerSetVisibility(void);\nvoid* _ABClipRangeToLength(void);\nvoid* _ABEmailCertificateCopyAllMatching(void);\nvoid* _ABEmailCertificateHasExpired(void);\nvoid* addChild(void);\nvoid* createStructure(void);\nvoid* endStructure(void);\nvoid* handleError(void);\nvoid* resolveExternalEntity(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/AsyncABPersonViewProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AsyncABPersonViewProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNCollectionUserActionItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCollectionUserActionItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNCollectionViewTouchBarDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNCollectionViewTouchBarDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNContactCardViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNContactCardViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNContactLabelSanitizer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactLabelSanitizer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNContactPickerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNContactPickerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNFoundationUserDefaults.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNFoundationUserDefaults\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNPrivateContactPickerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNPrivateContactPickerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIAddContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIAddContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIAddressBookToContactsConversions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIAddressBookToContactsConversions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIAggregateUndoableCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIAggregateUndoableCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIAggregateUndoableCommandBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIAggregateUndoableCommandBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUICommandContactHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUICommandContactHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIContactNameOrder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIContactNameOrder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIContactRelationsValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIContactRelationsValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIDeleteCommandHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIDeleteCommandHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIDeleteContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIDeleteContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIEditContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIEditContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIPhoneNumerValueTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIPhoneNumerValueTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIRejectDonatedValueCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIRejectDonatedValueCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIRejectNonCuratedValueCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIRejectNonCuratedValueCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIRejectNonCuratedValueCommandFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIRejectNonCuratedValueCommandFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIRejectSugggestedValueCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIRejectSugggestedValueCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveNonCuratedContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveNonCuratedContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveNonCuratedContactCommandFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveNonCuratedContactCommandFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveNonCuratedValueCommandFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveNonCuratedValueCommandFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveNonCuratedValueOntoContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveNonCuratedValueOntoContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveNonCuratedValueOntoExistingContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveNonCuratedValueOntoExistingContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveNonCuratedValueOntoNonExistingContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveNonCuratedValueOntoNonExistingContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveNonCuratedValueOntoReadOnlyContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveNonCuratedValueOntoReadOnlyContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveRequestCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNUISaveRequestCommand\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveSuggestedContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveSuggestedContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISaveSuggestedMeContactCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISaveSuggestedMeContactCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISetImageCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISetImageCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISetMeCardCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISetMeCardCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUISetMultipleImagesCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUISetMultipleImagesCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/CNUIUndoableCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUIUndoableCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSAccessibilityButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSAccessibilityButton\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSAccessibilityElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSAccessibilityElement\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSAccessibilityStaticText.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSAccessibilityStaticText\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSControlTextEditingDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSControlTextEditingDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSImmediateActionAnimationController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSImmediateActionAnimationController\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSMenuDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSMenuDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSOutlineViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSOutlineViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSOutlineViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSOutlineViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSPopoverDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSPopoverDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSRemoteViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSRemoteViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSSearchFieldDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSSearchFieldDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSSharingServiceDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSSharingServiceDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSSharingServicePickerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSSharingServicePickerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSTableViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTableViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSTableViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTableViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSTextDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTextDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSTextFieldDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTextFieldDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSTextViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTextViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSWindowDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSWindowDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/NSWindowRestoration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSWindowRestoration\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/PHXTableView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface PHXTableView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/TKTonePickerViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol TKTonePickerViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_ABBookUndoableCommandAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ABBookUndoableCommandAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_ABGeocodingMapsLauncher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ABGeocodingMapsLauncher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_ABMonogramOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ABMonogramOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_ABPersonView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ABPersonView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_ABURLMapsLauncher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ABURLMapsLauncher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_CNUIDefaultContactNameOrder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNUIDefaultContactNameOrder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_CNUIFamilyNameFirstNameOrder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNUIFamilyNameFirstNameOrder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_CNUIGivenNameFirstNameOrder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNUIGivenNameFirstNameOrder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_CNUINamelessContactNameOrder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNUINamelessContactNameOrder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/include/AddressBook/_SGSuggestionsServiceMetricsProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _SGSuggestionsServiceMetricsProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAPIAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAPIAdapter.h>\n\n@implementation ABAPIAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAbstractGroupEntriesFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAbstractGroupEntriesFactory.h>\n\n@implementation ABAbstractGroupEntriesFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAbstractGroupListAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAbstractGroupListAction.h>\n\n@implementation ABAbstractGroupListAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAccessibleTextFieldCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAccessibleTextFieldCell.h>\n\n@implementation ABAccessibleTextFieldCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAccountBrowsingGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAccountBrowsingGroupEntry.h>\n\n@implementation ABAccountBrowsingGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAccountGroupEntries.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAccountGroupEntries.h>\n\n@implementation ABAccountGroupEntries\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAccountGroupEntriesBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAccountGroupEntriesBuilder.h>\n\n@implementation ABAccountGroupEntriesBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAccountHeaderGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAccountHeaderGroupEntry.h>\n\n@implementation ABAccountHeaderGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAddSuggestedValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAddSuggestedValue.h>\n\n@implementation ABActionAddSuggestedValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAddressCopyMailingLabel.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAddressCopyMailingLabel.h>\n\n@implementation ABActionAddressCopyMailingLabel\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAddressCopyMapURL.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAddressCopyMapURL.h>\n\n@implementation ABActionAddressCopyMapURL\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAddressGetDirections.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAddressGetDirections.h>\n\n@implementation ABActionAddressGetDirections\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAddressMapsHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAddressMapsHelper.h>\n\n@implementation ABActionAddressMapsHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAddressShowMap.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAddressShowMap.h>\n\n@implementation ABActionAddressShowMap\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAutovalidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAutovalidator.h>\n\n@implementation ABActionAutovalidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAutovalidatorCache.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAutovalidatorCache.h>\n\n@implementation ABActionAutovalidatorCache\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAutovalidatorCacheEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAutovalidatorCacheEntry.h>\n\n@implementation ABActionAutovalidatorCacheEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAutovalidatorCacheMenuEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAutovalidatorCacheMenuEntry.h>\n\n@implementation ABActionAutovalidatorCacheMenuEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionAutovalidatorCacheSimpleEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionAutovalidatorCacheSimpleEntry.h>\n\n@implementation ABActionAutovalidatorCacheSimpleEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionBeginChat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionBeginChat.h>\n\n@implementation ABActionBeginChat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionDispatcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionDispatcher.h>\n\n@implementation ABActionDispatcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionEmailSearchSpotlight.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionEmailSearchSpotlight.h>\n\n@implementation ABActionEmailSearchSpotlight\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionEmailSendMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionEmailSendMessage.h>\n\n@implementation ABActionEmailSendMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionEmailSendUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionEmailSendUpdate.h>\n\n@implementation ABActionEmailSendUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionIgnoreSuggestedValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionIgnoreSuggestedValue.h>\n\n@implementation ABActionIgnoreSuggestedValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionLinkedSetPreferredCard.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionLinkedSetPreferredCard.h>\n\n@implementation ABActionLinkedSetPreferredCard\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionManager.h>\n\n@implementation ABActionManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionMenuItemFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionMenuItemFactory.h>\n\n@implementation ABActionMenuItemFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionPhoneDial.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionPhoneDial.h>\n\n@implementation ABActionPhoneDial\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionPhoneLargeType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionPhoneLargeType.h>\n\n@implementation ABActionPhoneLargeType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionRelatedShowCard.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionRelatedShowCard.h>\n\n@implementation ABActionRelatedShowCard\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionSocialProfile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionSocialProfile.h>\n\n@implementation ABActionSocialProfile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionSocialProfileSendMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionSocialProfileSendMessage.h>\n\n@implementation ABActionSocialProfileSendMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionSocialProfileViewPhotos.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionSocialProfileViewPhotos.h>\n\n@implementation ABActionSocialProfileViewPhotos\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionSocialProfileViewProfile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionSocialProfileViewProfile.h>\n\n@implementation ABActionSocialProfileViewProfile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABActionURLsOpenURL.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABActionURLsOpenURL.h>\n\n@implementation ABActionURLsOpenURL\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAddSuggestedValueTask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAddSuggestedValueTask.h>\n\n@implementation ABAddSuggestedValueTask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAddressBook.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAddressBook.h>\n\n@implementation ABAddressBook\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAddressBookAPIAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAddressBookAPIAdapter.h>\n\n@implementation ABAddressBookAPIAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAddressBookCommandExecutionPolicy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAddressBookCommandExecutionPolicy.h>\n\n@implementation ABAddressBookCommandExecutionPolicy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAddressFieldBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAddressFieldBuilder.h>\n\n@implementation ABAddressFieldBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAddressFieldValuePopulator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAddressFieldValuePopulator.h>\n\n@implementation ABAddressFieldValuePopulator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAggregateSearchOperationsFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAggregateSearchOperationsFactory.h>\n\n@implementation ABAggregateSearchOperationsFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAlert.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAlert.h>\n\n@implementation ABAlert\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAlertToneCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAlertToneCollectionViewItem.h>\n\n@implementation ABAlertToneCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAllSmartGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAllSmartGroup.h>\n\n@implementation ABAllSmartGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAlternateBirthdayCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAlternateBirthdayCollectionViewItem.h>\n\n@implementation ABAlternateBirthdayCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAppDeprecations.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAppDeprecations.h>\n\n@implementation ABAppDeprecations\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAppearance.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAppearance.h>\n\n@implementation ABAppearance\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAttributedString.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAttributedString.h>\n\n@implementation ABAttributedString\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAttributedStringTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAttributedStringTransformer.h>\n\n@implementation ABAttributedStringTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABAuthenticationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABAuthenticationInfo.h>\n\n@implementation ABAuthenticationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBestEntryFinder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBestEntryFinder.h>\n\n@implementation ABBestEntryFinder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBidirectionalDictionary.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBidirectionalDictionary.h>\n\n@implementation ABBidirectionalDictionary\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBindingsLabelTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBindingsLabelTransformer.h>\n\n@implementation ABBindingsLabelTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBindingsURLTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBindingsURLTransformer.h>\n\n@implementation ABBindingsURLTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBirthdayCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBirthdayCollectionViewItem.h>\n\n@implementation ABBirthdayCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBirthdayConversionUIAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBirthdayConversionUIAction.h>\n\n@implementation ABBirthdayConversionUIAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookAggregateUndoableCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookAggregateUndoableCommand.h>\n\n@implementation ABBookAggregateUndoableCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookAggregateUndoableCommandBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookAggregateUndoableCommandBuilder.h>\n\n@implementation ABBookAggregateUndoableCommandBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookCreateGroupCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookCreateGroupCommand.h>\n\n@implementation ABBookCreateGroupCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookCreateGroupWithMembersCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookCreateGroupWithMembersCommand.h>\n\n@implementation ABBookCreateGroupWithMembersCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookCreateSmartGroupCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookCreateSmartGroupCommand.h>\n\n@implementation ABBookCreateSmartGroupCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookEditSmartGroupCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookEditSmartGroupCommand.h>\n\n@implementation ABBookEditSmartGroupCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookGroupAddMembersCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookGroupAddMembersCommand.h>\n\n@implementation ABBookGroupAddMembersCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookGroupAddRecordsCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookGroupAddRecordsCommand.h>\n\n@implementation ABBookGroupAddRecordsCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookGroupAddSubgroupsCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookGroupAddSubgroupsCommand.h>\n\n@implementation ABBookGroupAddSubgroupsCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookGroupCopyCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookGroupCopyCommand.h>\n\n@implementation ABBookGroupCopyCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookGroupCutCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookGroupCutCommand.h>\n\n@implementation ABBookGroupCutCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookGroupDeleteCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookGroupDeleteCommand.h>\n\n@implementation ABBookGroupDeleteCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookGroupImportCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookGroupImportCommand.h>\n\n@implementation ABBookGroupImportCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookPastePeopleCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookPastePeopleCommand.h>\n\n@implementation ABBookPastePeopleCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookRenameGroupCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookRenameGroupCommand.h>\n\n@implementation ABBookRenameGroupCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookSearchField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookSearchField.h>\n\n@implementation ABBookSearchField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBookSearchFieldCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBookSearchFieldCell.h>\n\n@implementation ABBookSearchFieldCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBrowsingGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBrowsingGroupEntry.h>\n\n@implementation ABBrowsingGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBrowsingSearchConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBrowsingSearchConfiguration.h>\n\n@implementation ABBrowsingSearchConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBuddyStatus.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBuddyStatus.h>\n\n@implementation ABBuddyStatus\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABBuddyStatusImageCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABBuddyStatusImageCell.h>\n\n@implementation ABBuddyStatusImageCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABButtonCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABButtonCell.h>\n\n@implementation ABButtonCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCNAddressDetector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCNAddressDetector.h>\n\n@implementation ABCNAddressDetector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCNContactPhotoStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCNContactPhotoStore.h>\n\n@implementation ABCNContactPhotoStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCNContactRemotePhotoStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCNContactRemotePhotoStore.h>\n\n@implementation ABCNContactRemotePhotoStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCNContactThumbnailPhotoStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCNContactThumbnailPhotoStore.h>\n\n@implementation ABCNContactThumbnailPhotoStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCNContactUncroppedPhotoStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCNContactUncroppedPhotoStore.h>\n\n@implementation ABCNContactUncroppedPhotoStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCNDDScanner.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCNDDScanner.h>\n\n@implementation ABCNDDScanner\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCNPhoneDialer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCNPhoneDialer.h>\n\n@implementation ABCNPhoneDialer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCNPhoneNumberDetector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCNPhoneNumberDetector.h>\n\n@implementation ABCNPhoneNumberDetector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCallbackCardAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCallbackCardAction.h>\n\n@implementation ABCallbackCardAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardActionProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardActionProvider.h>\n\n@implementation ABCardActionProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionLinkedPeopleRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionLinkedPeopleRowView.h>\n\n@implementation ABCardCollectionLinkedPeopleRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionMessagingRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionMessagingRowView.h>\n\n@implementation ABCardCollectionMessagingRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionNoteRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionNoteRowView.h>\n\n@implementation ABCardCollectionNoteRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionPostalAddressRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionPostalAddressRowView.h>\n\n@implementation ABCardCollectionPostalAddressRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionPreferredNameRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionPreferredNameRowView.h>\n\n@implementation ABCardCollectionPreferredNameRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionRowLayout.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionRowLayout.h>\n\n@implementation ABCardCollectionRowLayout\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionRowScope.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionRowScope.h>\n\n@implementation ABCardCollectionRowScope\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionRowSeparatorView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionRowSeparatorView.h>\n\n@implementation ABCardCollectionRowSeparatorView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionRowView.h>\n\n@implementation ABCardCollectionRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionStackViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionStackViewController.h>\n\n@implementation ABCardCollectionStackViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionTableRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionTableRowView.h>\n\n@implementation ABCardCollectionTableRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionTableViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionTableViewController.h>\n\n@implementation ABCardCollectionTableViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionURLRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionURLRowView.h>\n\n@implementation ABCardCollectionURLRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionView.h>\n\n@implementation ABCardCollectionView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardCollectionViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardCollectionViewController.h>\n\n@implementation ABCardCollectionViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewAKSingleValueConverter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewAKSingleValueConverter.h>\n\n@implementation ABCardViewAKSingleValueConverter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewAlertTonesProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewAlertTonesProperty.h>\n\n@implementation ABCardViewAlertTonesProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewAlternateBirthdayProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewAlternateBirthdayProperty.h>\n\n@implementation ABCardViewAlternateBirthdayProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewBirthdayProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewBirthdayProperty.h>\n\n@implementation ABCardViewBirthdayProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewCNLabeledValueConverter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewCNLabeledValueConverter.h>\n\n@implementation ABCardViewCNLabeledValueConverter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewDateProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewDateProperty.h>\n\n@implementation ABCardViewDateProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewDictionaryTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewDictionaryTransformer.h>\n\n@implementation ABCardViewDictionaryTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewEditDisplayStyleCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewEditDisplayStyleCommand.h>\n\n@implementation ABCardViewEditDisplayStyleCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewEditPropertyCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewEditPropertyCommand.h>\n\n@implementation ABCardViewEditPropertyCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewEmailProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewEmailProperty.h>\n\n@implementation ABCardViewEmailProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewHelpers.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewHelpers.h>\n\n@implementation ABCardViewHelpers\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewImage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewImage.h>\n\n@implementation ABCardViewImage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewImageResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewImageResult.h>\n\n@implementation ABCardViewImageResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewInstantMessageProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewInstantMessageProperty.h>\n\n@implementation ABCardViewInstantMessageProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewInstantMessageServiceGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewInstantMessageServiceGenerator.h>\n\n@implementation ABCardViewInstantMessageServiceGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewLabelGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewLabelGenerator.h>\n\n@implementation ABCardViewLabelGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewLinkedPeopleProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewLinkedPeopleProperty.h>\n\n@implementation ABCardViewLinkedPeopleProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewLinkedPerson.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewLinkedPerson.h>\n\n@implementation ABCardViewLinkedPerson\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewLinkedPersonValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewLinkedPersonValueTransformer.h>\n\n@implementation ABCardViewLinkedPersonValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMaidenNameProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMaidenNameProperty.h>\n\n@implementation ABCardViewMaidenNameProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMetrics.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMetrics.h>\n\n@implementation ABCardViewMetrics\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMultiValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMultiValue.h>\n\n@implementation ABCardViewMultiValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMultiValueAccountNameTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMultiValueAccountNameTransformer.h>\n\n@implementation ABCardViewMultiValueAccountNameTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMultiValueConverterBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMultiValueConverterBuilder.h>\n\n@implementation ABCardViewMultiValueConverterBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMultiValueEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMultiValueEntry.h>\n\n@implementation ABCardViewMultiValueEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMultiValuePrivateFieldTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMultiValuePrivateFieldTransformer.h>\n\n@implementation ABCardViewMultiValuePrivateFieldTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMultiValueReadOnlyTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMultiValueReadOnlyTransformer.h>\n\n@implementation ABCardViewMultiValueReadOnlyTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewMutableMultiValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewMutableMultiValue.h>\n\n@implementation ABCardViewMutableMultiValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewNoteProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewNoteProperty.h>\n\n@implementation ABCardViewNoteProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewNotificationHandler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewNotificationHandler.h>\n\n@implementation ABCardViewNotificationHandler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewPersonMapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewPersonMapper.h>\n\n@implementation ABCardViewPersonMapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewPhoneProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewPhoneProperty.h>\n\n@implementation ABCardViewPhoneProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewPostalAddressFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewPostalAddressFormatter.h>\n\n@implementation ABCardViewPostalAddressFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewPostalAddressProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewPostalAddressProperty.h>\n\n@implementation ABCardViewPostalAddressProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewPreferredForNameProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewPreferredForNameProperty.h>\n\n@implementation ABCardViewPreferredForNameProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewPreferredForNameValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewPreferredForNameValueTransformer.h>\n\n@implementation ABCardViewPreferredForNameValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewProperty.h>\n\n@implementation ABCardViewProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewPropertyProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewPropertyProvider.h>\n\n@implementation ABCardViewPropertyProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewRelatedNamesProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewRelatedNamesProperty.h>\n\n@implementation ABCardViewRelatedNamesProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewSaveHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewSaveHelper.h>\n\n@implementation ABCardViewSaveHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewSeparator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewSeparator.h>\n\n@implementation ABCardViewSeparator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewSingleValueProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewSingleValueProperty.h>\n\n@implementation ABCardViewSingleValueProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewSocialProfileProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewSocialProfileProperty.h>\n\n@implementation ABCardViewSocialProfileProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewStyle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewStyle.h>\n\n@implementation ABCardViewStyle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewStyleInternalProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewStyleInternalProvider.h>\n\n@implementation ABCardViewStyleInternalProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewStyleProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewStyleProvider.h>\n\n@implementation ABCardViewStyleProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewTransformingMultiValueConverter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewTransformingMultiValueConverter.h>\n\n@implementation ABCardViewTransformingMultiValueConverter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewURLProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewURLProperty.h>\n\n@implementation ABCardViewURLProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewUndoableDataSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewUndoableDataSource.h>\n\n@implementation ABCardViewUndoableDataSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCardViewerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCardViewerController.h>\n\n@implementation ABCardViewerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCertificatePanelController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCertificatePanelController.h>\n\n@implementation ABCertificatePanelController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABChangePropertiesCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABChangePropertiesCommand.h>\n\n@implementation ABChangePropertiesCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABChangePropertyCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABChangePropertyCommand.h>\n\n@implementation ABChangePropertyCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABChoosingForwarder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABChoosingForwarder.h>\n\n@implementation ABChoosingForwarder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCleanGroupEntryListCellView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCleanGroupEntryListCellView.h>\n\n@implementation ABCleanGroupEntryListCellView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCleanGroupHeaderEntryListCellView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCleanGroupHeaderEntryListCellView.h>\n\n@implementation ABCleanGroupHeaderEntryListCellView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCleanGroupListRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCleanGroupListRowView.h>\n\n@implementation ABCleanGroupListRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABClickableImageView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABClickableImageView.h>\n\n@implementation ABClickableImageView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABClickableTextView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABClickableTextView.h>\n\n@implementation ABClickableTextView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionAbstractAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionAbstractAction.h>\n\n@implementation ABCollectionAbstractAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionDialAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionDialAction.h>\n\n@implementation ABCollectionDialAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionFaceTimeRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionFaceTimeRowView.h>\n\n@implementation ABCollectionFaceTimeRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionItemMessagingAvailabilityHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionItemMessagingAvailabilityHelper.h>\n\n@implementation ABCollectionItemMessagingAvailabilityHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionMessageAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionMessageAction.h>\n\n@implementation ABCollectionMessageAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionOpenURLAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionOpenURLAction.h>\n\n@implementation ABCollectionOpenURLAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionReviewSuggestionAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionReviewSuggestionAction.h>\n\n@implementation ABCollectionReviewSuggestionAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionRowViewEditModeFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionRowViewEditModeFactory.h>\n\n@implementation ABCollectionRowViewEditModeFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionRowViewFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionRowViewFactory.h>\n\n@implementation ABCollectionRowViewFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionSendMailAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionSendMailAction.h>\n\n@implementation ABCollectionSendMailAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionShowMapAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionShowMapAction.h>\n\n@implementation ABCollectionShowMapAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionTTYAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionTTYAction.h>\n\n@implementation ABCollectionTTYAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionViewImageButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionViewImageButton.h>\n\n@implementation ABCollectionViewImageButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionViewItem.h>\n\n@implementation ABCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionViewItemFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionViewItemFactory.h>\n\n@implementation ABCollectionViewItemFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCollectionViewSeparatorItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCollectionViewSeparatorItem.h>\n\n@implementation ABCollectionViewSeparatorItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABColor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABColor.h>\n\n@implementation ABColor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCommandExecutionPolicy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCommandExecutionPolicy.h>\n\n@implementation ABCommandExecutionPolicy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCommandExecutor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCommandExecutor.h>\n\n@implementation ABCommandExecutor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCommandHookExecutionPolicy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCommandHookExecutionPolicy.h>\n\n@implementation ABCommandHookExecutionPolicy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCommunicationButtonsController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCommunicationButtonsController.h>\n\n@implementation ABCommunicationButtonsController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABConstraintDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABConstraintDescription.h>\n\n@implementation ABConstraintDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABConstraintsBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABConstraintsBuilder.h>\n\n@implementation ABConstraintsBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABContactDeletionTracing.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABContactDeletionTracing.h>\n\n@implementation ABContactDeletionTracing\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABContactFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABContactFetcher.h>\n\n@implementation ABContactFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABContactPickerDelegateWrapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABContactPickerDelegateWrapper.h>\n\n@implementation ABContactPickerDelegateWrapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABContactPickerFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABContactPickerFactory.h>\n\n@implementation ABContactPickerFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCopyOnWriteSet.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCopyOnWriteSet.h>\n\n@implementation ABCopyOnWriteSet\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCountTableEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCountTableEntry.h>\n\n@implementation ABCountTableEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCreatePersonCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCreatePersonCommand.h>\n\n@implementation ABCreatePersonCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABCustomLabelController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABCustomLabelController.h>\n\n@implementation ABCustomLabelController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDAVQuery.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDAVQuery.h>\n\n@implementation ABDAVQuery\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDSuggestionLogPairBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDSuggestionLogPairBuilder.h>\n\n@implementation ABDSuggestionLogPairBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDataSourceOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDataSourceOperation.h>\n\n@implementation ABDataSourceOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDateCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDateCollectionViewItem.h>\n\n@implementation ABDateCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDateComponentsFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDateComponentsFormatter.h>\n\n@implementation ABDateComponentsFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDateComponentsValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDateComponentsValueTransformer.h>\n\n@implementation ABDateComponentsValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDateFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDateFormatter.h>\n\n@implementation ABDateFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDateProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDateProvider.h>\n\n@implementation ABDateProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDefaultCardViewStyleProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDefaultCardViewStyleProvider.h>\n\n@implementation ABDefaultCardViewStyleProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDefaultGroupEntriesFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDefaultGroupEntriesFactory.h>\n\n@implementation ABDefaultGroupEntriesFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDefaultStopWatchTimeIntervalProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDefaultStopWatchTimeIntervalProvider.h>\n\n@implementation ABDefaultStopWatchTimeIntervalProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDelegateCardAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDelegateCardAction.h>\n\n@implementation ABDelegateCardAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDeleteGroupSheet.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDeleteGroupSheet.h>\n\n@implementation ABDeleteGroupSheet\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDeleteRecordsCommandBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDeleteRecordsCommandBuilder.h>\n\n@implementation ABDeleteRecordsCommandBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDeprecatedObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDeprecatedObject.h>\n\n@implementation ABDeprecatedObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDirectoriesHeaderGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDirectoriesHeaderGroupEntry.h>\n\n@implementation ABDirectoriesHeaderGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDistributionKeyValueCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDistributionKeyValueCell.h>\n\n@implementation ABDistributionKeyValueCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDistributionListController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDistributionListController.h>\n\n@implementation ABDistributionListController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDistributionListPeoplePickerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDistributionListPeoplePickerController.h>\n\n@implementation ABDistributionListPeoplePickerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDistributionListPeoplePickerView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDistributionListPeoplePickerView.h>\n\n@implementation ABDistributionListPeoplePickerView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABDropDownMenuUIAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABDropDownMenuUIAction.h>\n\n@implementation ABDropDownMenuUIAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABEditButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABEditButton.h>\n\n@implementation ABEditButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABEditSmartGroupCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABEditSmartGroupCommand.h>\n\n@implementation ABEditSmartGroupCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABEmailCertificateController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABEmailCertificateController.h>\n\n@implementation ABEmailCertificateController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABEmailCertificateSearchOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABEmailCertificateSearchOperation.h>\n\n@implementation ABEmailCertificateSearchOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABEmailCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABEmailCollectionViewItem.h>\n\n@implementation ABEmailCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABEvent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABEvent.h>\n\n@implementation ABEvent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABExchangeSetup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABExchangeSetup.h>\n\n@implementation ABExchangeSetup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABExecuteRedoUndoableCommandVisitor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABExecuteRedoUndoableCommandVisitor.h>\n\n@implementation ABExecuteRedoUndoableCommandVisitor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABExecuteUndoUndoableCommandVisitor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABExecuteUndoUndoableCommandVisitor.h>\n\n@implementation ABExecuteUndoUndoableCommandVisitor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABExecuteUndoableCommandVisitor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABExecuteUndoableCommandVisitor.h>\n\n@implementation ABExecuteUndoableCommandVisitor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABFaceTimeActionsCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABFaceTimeActionsCollectionViewItem.h>\n\n@implementation ABFaceTimeActionsCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABFaceTimeCommunicationsBridge.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABFaceTimeCommunicationsBridge.h>\n\n@implementation ABFaceTimeCommunicationsBridge\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABFakeSuggestedData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABFakeSuggestedData.h>\n\n@implementation ABFakeSuggestedData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABFlippedStackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABFlippedStackView.h>\n\n@implementation ABFlippedStackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABFont.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABFont.h>\n\n@implementation ABFont\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGlobals.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGlobals.h>\n\nNSString *const kABDatabaseChangedNotification=@\"ABDatabaseChangedNotification\";\nNSString *const kABDatabaseChangedExternallyNotification=@\"ABDatabaseChangedExternallyNotification\";\n\nNSString *const kABUIDProperty=@\"UID\";\nNSString *const kABAddressProperty=@\"ABAddressProperty\";\nNSString *const kABBirthdayProperty=@\"ABBirthdayProperty\";\nNSString *const kABDepartmentProperty=@\"ABDepartmentProperty\";\nNSString *const kABEmailProperty=@\"ABEmailProperty\";\nNSString *const kABFirstNameProperty=@\"ABFirstNameProperty\";\nNSString *const kABInstantMessageProperty=@\"ABInstantMessageProperty\";\nNSString *const kABJobTitleProperty=@\"ABJobTitleProperty\";\nNSString *const kABLastNameProperty=@\"ABLastNameProperty\";\nNSString *const kABMaidenNameProperty=@\"ABMaidenNameProperty\";\nNSString *const kABMiddleNameProperty=@\"ABMiddleNameProperty\";\nNSString *const kABNicknameProperty=@\"ABNicknameProperty\";\nNSString *const kABOrganizationProperty=@\"ABOrganizationProperty\";\nNSString *const kABOtherDatesProperty=@\"ABOtherDatesProperty\";\nNSString *const kABPhoneProperty=@\"ABPhoneProperty\";\nNSString *const kABTitleProperty=@\"ABTitleProperty\";\nNSString *const kABURLsProperty=@\"ABURLsProperty\";\nNSString *const kABSuffixProperty = @\"Suffix\";\n\nNSString *const kABPersonFlags=@\"ABPersonFlags\";\n\nNSString *const kABDeletedRecords=@\"ABDeletedRecords\";\nNSString *const kABInsertedRecords=@\"ABInsertedRecords\";\nNSString *const kABUpdatedRecords=@\"ABUpdatedRecords\";\n\n// This one is not exported by any header but is required by libraries\nNSString *const kABRestoreFromBackup=@\"ABRestoreFromBackup\";\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupActionScope.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupActionScope.h>\n\n@implementation ABGroupActionScope\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupBrowsingContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupBrowsingContext.h>\n\n@implementation ABGroupBrowsingContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupBrowsingGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupBrowsingGroupEntry.h>\n\n@implementation ABGroupBrowsingGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupCommand.h>\n\n@implementation ABGroupCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupCopyPasteboardData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupCopyPasteboardData.h>\n\n@implementation ABGroupCopyPasteboardData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupDragPasteboardData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupDragPasteboardData.h>\n\n@implementation ABGroupDragPasteboardData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupDragScope.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupDragScope.h>\n\n@implementation ABGroupDragScope\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupDragSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupDragSource.h>\n\n@implementation ABGroupDragSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupDropDestination.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupDropDestination.h>\n\n@implementation ABGroupDropDestination\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupDropPasteboardData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupDropPasteboardData.h>\n\n@implementation ABGroupDropPasteboardData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupDropPasteboardDataCategorizer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupDropPasteboardDataCategorizer.h>\n\n@implementation ABGroupDropPasteboardDataCategorizer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupDropScope.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupDropScope.h>\n\n@implementation ABGroupDropScope\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupDropSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupDropSource.h>\n\n@implementation ABGroupDropSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupEntriesAnalyzer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupEntriesAnalyzer.h>\n\n@implementation ABGroupEntriesAnalyzer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupEntriesBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupEntriesBuilder.h>\n\n@implementation ABGroupEntriesBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupEntriesList.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupEntriesList.h>\n\n@implementation ABGroupEntriesList\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupEntriesResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupEntriesResult.h>\n\n@implementation ABGroupEntriesResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupEntry.h>\n\n@implementation ABGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupImportFilesScope.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupImportFilesScope.h>\n\n@implementation ABGroupImportFilesScope\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListAccessoryViewProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListAccessoryViewProvider.h>\n\n@implementation ABGroupListAccessoryViewProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListActionDispatcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListActionDispatcher.h>\n\n@implementation ABGroupListActionDispatcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListActions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListActions.h>\n\n@implementation ABGroupListActions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListCellViewStyle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListCellViewStyle.h>\n\n@implementation ABGroupListCellViewStyle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListController.h>\n\n@implementation ABGroupListController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListCreateGroupUIAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListCreateGroupUIAction.h>\n\n@implementation ABGroupListCreateGroupUIAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListCreateSmartGroupUIAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListCreateSmartGroupUIAction.h>\n\n@implementation ABGroupListCreateSmartGroupUIAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListNotificationHandler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListNotificationHandler.h>\n\n@implementation ABGroupListNotificationHandler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListResponder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListResponder.h>\n\n@implementation ABGroupListResponder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListStyleProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListStyleProvider.h>\n\n@implementation ABGroupListStyleProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListTransformer.h>\n\n@implementation ABGroupListTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupListView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupListView.h>\n\n@implementation ABGroupListView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupPastePasteboardData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupPastePasteboardData.h>\n\n@implementation ABGroupPastePasteboardData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABGroupSearchingContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABGroupSearchingContext.h>\n\n@implementation ABGroupSearchingContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABHeaderGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABHeaderGroupEntry.h>\n\n@implementation ABHeaderGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABImmediateActionGestureAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABImmediateActionGestureAdapter.h>\n\n@implementation ABImmediateActionGestureAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABImportRecordFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABImportRecordFactory.h>\n\n@implementation ABImportRecordFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABInstantMessageCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABInstantMessageCollectionViewItem.h>\n\n@implementation ABInstantMessageCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABKeystrokeForwarder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABKeystrokeForwarder.h>\n\n@implementation ABKeystrokeForwarder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABKeystrokeForwardingEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABKeystrokeForwardingEntry.h>\n\n@implementation ABKeystrokeForwardingEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABLabelPopUpButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABLabelPopUpButton.h>\n\n@implementation ABLabelPopUpButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABLargeTypeView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABLargeTypeView.h>\n\n@implementation ABLargeTypeView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABLargeTypeWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABLargeTypeWindow.h>\n\n@implementation ABLargeTypeWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABLastImportBrowsingGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABLastImportBrowsingGroupEntry.h>\n\n@implementation ABLastImportBrowsingGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABLastImportGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABLastImportGroup.h>\n\n@implementation ABLastImportGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABLazyGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABLazyGroup.h>\n\n@implementation ABLazyGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABLinkTextField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABLinkTextField.h>\n\n@implementation ABLinkTextField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABLinkedPersonCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABLinkedPersonCollectionViewItem.h>\n\n@implementation ABLinkedPersonCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMainListOutlineView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMainListOutlineView.h>\n\n@implementation ABMainListOutlineView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMapsLaunchRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMapsLaunchRequest.h>\n\n@implementation ABMapsLaunchRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMapsLauncher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMapsLauncher.h>\n\n@implementation ABMapsLauncher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMeCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMeCommand.h>\n\n@implementation ABMeCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMiniGridView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMiniGridView.h>\n\n@implementation ABMiniGridView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMonogramFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMonogramFactory.h>\n\n@implementation ABMonogramFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMonogramImageLoading.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMonogramImageLoading.h>\n\n@implementation ABMonogramImageLoading\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMonogramImageTask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMonogramImageTask.h>\n\n@implementation ABMonogramImageTask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMonogramInitialsTask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMonogramInitialsTask.h>\n\n@implementation ABMonogramInitialsTask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMonogramOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMonogramOptions.h>\n\n@implementation ABMonogramOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMonogramPhotoTask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMonogramPhotoTask.h>\n\n@implementation ABMonogramPhotoTask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMonogramSilhouetteTask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMonogramSilhouetteTask.h>\n\n@implementation ABMonogramSilhouetteTask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMutableBidirectionalDictionary.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMutableBidirectionalDictionary.h>\n\n@implementation ABMutableBidirectionalDictionary\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABMutablePackedImage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABMutablePackedImage.h>\n\n@implementation ABMutablePackedImage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNameView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNameView.h>\n\n@implementation ABNameView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNameViewCompanyCheckBox.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNameViewCompanyCheckBox.h>\n\n@implementation ABNameViewCompanyCheckBox\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNamedImageWrapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNamedImageWrapper.h>\n\n@implementation ABNamedImageWrapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNewGroupCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNewGroupCommand.h>\n\n@implementation ABNewGroupCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNicknameFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNicknameFormatter.h>\n\n@implementation ABNicknameFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNoSelectionTableView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNoSelectionTableView.h>\n\n@implementation ABNoSelectionTableView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNoWindowDragTextField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNoWindowDragTextField.h>\n\n@implementation ABNoWindowDragTextField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNoteCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNoteCollectionViewItem.h>\n\n@implementation ABNoteCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABNoteTextView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABNoteTextView.h>\n\n@implementation ABNoteTextView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABObjectDeathWatcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABObjectDeathWatcher.h>\n\n@implementation ABObjectDeathWatcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABOnBlueButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABOnBlueButton.h>\n\n@implementation ABOnBlueButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABOverlayView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABOverlayView.h>\n\n@implementation ABOverlayView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPackedImage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPackedImage.h>\n\n@implementation ABPackedImage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPasswordPanelController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPasswordPanelController.h>\n\n@implementation ABPasswordPanelController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPastePeopleCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPastePeopleCommand.h>\n\n@implementation ABPastePeopleCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPasteboardWriteCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPasteboardWriteCommand.h>\n\n@implementation ABPasteboardWriteCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeopleListTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeopleListTransformer.h>\n\n@implementation ABPeopleListTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerBrowsingSelectHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerBrowsingSelectHelper.h>\n\n@implementation ABPeoplePickerBrowsingSelectHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerController.h>\n\n@implementation ABPeoplePickerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerExternalNotificationWatcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerExternalNotificationWatcher.h>\n\n@implementation ABPeoplePickerExternalNotificationWatcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerGroupEntriesFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerGroupEntriesFactory.h>\n\n@implementation ABPeoplePickerGroupEntriesFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerGroupHelperFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerGroupHelperFactory.h>\n\n@implementation ABPeoplePickerGroupHelperFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerGroupListController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerGroupListController.h>\n\n@implementation ABPeoplePickerGroupListController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerGroupListStyleProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerGroupListStyleProvider.h>\n\n@implementation ABPeoplePickerGroupListStyleProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerGroupListView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerGroupListView.h>\n\n@implementation ABPeoplePickerGroupListView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerLocalNotificationWatcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerLocalNotificationWatcher.h>\n\n@implementation ABPeoplePickerLocalNotificationWatcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerNameCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerNameCell.h>\n\n@implementation ABPeoplePickerNameCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerProperty.h>\n\n@implementation ABPeoplePickerProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerPropertyCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerPropertyCell.h>\n\n@implementation ABPeoplePickerPropertyCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerScope.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerScope.h>\n\n@implementation ABPeoplePickerScope\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerSearchingSelectHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerSearchingSelectHelper.h>\n\n@implementation ABPeoplePickerSearchingSelectHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerSubrowGroupElement.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerSubrowGroupElement.h>\n\n@implementation ABPeoplePickerSubrowGroupElement\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerSubrowObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerSubrowObject.h>\n\n@implementation ABPeoplePickerSubrowObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerSubrowObjectBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerSubrowObjectBuilder.h>\n\n@implementation ABPeoplePickerSubrowObjectBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerTableColumn.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerTableColumn.h>\n\n@implementation ABPeoplePickerTableColumn\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerTableRow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerTableRow.h>\n\n@implementation ABPeoplePickerTableRow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerTableView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerTableView.h>\n\n@implementation ABPeoplePickerTableView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeoplePickerView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeoplePickerView.h>\n\n@implementation ABPeoplePickerView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeriodicTask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeriodicTask.h>\n\n@implementation ABPeriodicTask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPeriodicUITask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPeriodicUITask.h>\n\n@implementation ABPeriodicUITask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPerson.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPerson.h>\n#import <Foundation/NSMethodSignature.h>\n#import <Foundation/NSInvocation.h>\n\n@implementation ABPerson\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonContactConverter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonContactConverter.h>\n\n@implementation ABPersonContactConverter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonEntriesFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonEntriesFetcher.h>\n\n@implementation ABPersonEntriesFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonEntriesList.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonEntriesList.h>\n\n@implementation ABPersonEntriesList\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonEntry.h>\n\n@implementation ABPersonEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonEntryFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonEntryFactory.h>\n\n@implementation ABPersonEntryFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonInitials.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonInitials.h>\n\n@implementation ABPersonInitials\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListAttributedName.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListAttributedName.h>\n\n@implementation ABPersonListAttributedName\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListController.h>\n\n@implementation ABPersonListController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListControllerDelegateWrapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListControllerDelegateWrapper.h>\n\n@implementation ABPersonListControllerDelegateWrapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListControllerTracing.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListControllerTracing.h>\n\n@implementation ABPersonListControllerTracing\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListDragExportHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListDragExportHelper.h>\n\n@implementation ABPersonListDragExportHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListHeadliner.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListHeadliner.h>\n\n@implementation ABPersonListHeadliner\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListMenuHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListMenuHelper.h>\n\n@implementation ABPersonListMenuHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListRowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListRowView.h>\n\n@implementation ABPersonListRowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListSearchController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListSearchController.h>\n\n@implementation ABPersonListSearchController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListSearchHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListSearchHelper.h>\n\n@implementation ABPersonListSearchHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListSharingHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListSharingHelper.h>\n\n@implementation ABPersonListSharingHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonListUIReflector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonListUIReflector.h>\n\n@implementation ABPersonListUIReflector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonPicker.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonPicker.h>\n\n@implementation ABPersonPicker\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonSearchConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonSearchConfiguration.h>\n\n@implementation ABPersonSearchConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonView.h>\n\n@implementation ABPersonView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonViewAPIAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonViewAPIAdapter.h>\n\n@implementation ABPersonViewAPIAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonViewNotificationWatcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonViewNotificationWatcher.h>\n\n@implementation ABPersonViewNotificationWatcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPersonViewStyleProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPersonViewStyleProvider.h>\n\n@implementation ABPersonViewStyleProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPhoneCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPhoneCollectionViewItem.h>\n\n@implementation ABPhoneCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPhoneFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPhoneFormatter.h>\n\n@implementation ABPhoneFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPopUpButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPopUpButton.h>\n\n@implementation ABPopUpButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPopUpButtonCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPopUpButtonCell.h>\n\n@implementation ABPopUpButtonCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPopupTableHeaderCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPopupTableHeaderCell.h>\n\n@implementation ABPopupTableHeaderCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPopupTableHeaderView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPopupTableHeaderView.h>\n\n@implementation ABPopupTableHeaderView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPostalAddressCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPostalAddressCollectionViewItem.h>\n\n@implementation ABPostalAddressCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPostalAddressFormatSubmenuGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPostalAddressFormatSubmenuGenerator.h>\n\n@implementation ABPostalAddressFormatSubmenuGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPreferredNameCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPreferredNameCollectionViewItem.h>\n\n@implementation ABPreferredNameCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABPropertyHeaderCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABPropertyHeaderCell.h>\n\n@implementation ABPropertyHeaderCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABQuerySearchConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABQuerySearchConfiguration.h>\n\n@implementation ABQuerySearchConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRTTServices.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRTTServices.h>\n\n@implementation ABRTTServices\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRecord.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRecord.h>\n\n@implementation ABRecord\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRecordContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRecordContext.h>\n\n@implementation ABRecordContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRectObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRectObject.h>\n\n@implementation ABRectObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRemotePersonView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRemotePersonView.h>\n\n@implementation ABRemotePersonView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRemoveMembersCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRemoveMembersCommand.h>\n\n@implementation ABRemoveMembersCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRemoveMembersCommandBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRemoveMembersCommandBuilder.h>\n\n@implementation ABRemoveMembersCommandBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRemovesEmptyCardViewData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRemovesEmptyCardViewData.h>\n\n@implementation ABRemovesEmptyCardViewData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRenameGroupCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRenameGroupCommand.h>\n\n@implementation ABRenameGroupCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABRolloverButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABRolloverButton.h>\n\n@implementation ABRolloverButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSearchController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSearchController.h>\n\n@implementation ABSearchController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSearchElement.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSearchElement.h>\n#import <Foundation/NSMethodSignature.h>\n#import <Foundation/NSInvocation.h>\n\n@implementation ABSearchElement\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSearchElementOrderManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSearchElementOrderManager.h>\n\n@implementation ABSearchElementOrderManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSearchElementSetView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSearchElementSetView.h>\n\n@implementation ABSearchElementSetView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSearchElementUIController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSearchElementUIController.h>\n\n@implementation ABSearchElementUIController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSearchElementView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSearchElementView.h>\n\n@implementation ABSearchElementView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSearchHighlightFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSearchHighlightFormatter.h>\n\n@implementation ABSearchHighlightFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSearchingGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSearchingGroupEntry.h>\n\n@implementation ABSearchingGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSectionGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSectionGroupEntry.h>\n\n@implementation ABSectionGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSectionTableEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSectionTableEntry.h>\n\n@implementation ABSectionTableEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABShadowTextField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABShadowTextField.h>\n\n@implementation ABShadowTextField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABShadowTextFieldCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABShadowTextFieldCell.h>\n\n@implementation ABShadowTextFieldCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABShadowTextView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABShadowTextView.h>\n\n@implementation ABShadowTextView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABShadowTextViewMultipleValuePasteHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABShadowTextViewMultipleValuePasteHelper.h>\n\n@implementation ABShadowTextViewMultipleValuePasteHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABShadowTextViewPostalAddressValuePasteHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABShadowTextViewPostalAddressValuePasteHelper.h>\n\n@implementation ABShadowTextViewPostalAddressValuePasteHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABShowAsCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABShowAsCommand.h>\n\n@implementation ABShowAsCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSimpleLinkTextField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSimpleLinkTextField.h>\n\n@implementation ABSimpleLinkTextField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSmartGroupBrowsingGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSmartGroupBrowsingGroupEntry.h>\n\n@implementation ABSmartGroupBrowsingGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSmartGroupsHeaderGroupEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSmartGroupsHeaderGroupEntry.h>\n\n@implementation ABSmartGroupsHeaderGroupEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSocialProfileCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSocialProfileCollectionViewItem.h>\n\n@implementation ABSocialProfileCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSourceSyncPeriodicTaskScheduler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSourceSyncPeriodicTaskScheduler.h>\n\n@implementation ABSourceSyncPeriodicTaskScheduler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSpaceFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSpaceFormatter.h>\n\n@implementation ABSpaceFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABStopWatch.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABStopWatch.h>\n\n@implementation ABStopWatch\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSuggestedEntriesFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSuggestedEntriesFetcher.h>\n\n@implementation ABSuggestedEntriesFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSuggestedValueSnippet.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSuggestedValueSnippet.h>\n\n@implementation ABSuggestedValueSnippet\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSuggestedValueViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSuggestedValueViewController.h>\n\n@implementation ABSuggestedValueViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSuggestedValueViewControllerSnippetHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSuggestedValueViewControllerSnippetHelper.h>\n\n@implementation ABSuggestedValueViewControllerSnippetHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABSuggestionsTracing.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABSuggestionsTracing.h>\n\n@implementation ABSuggestionsTracing\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTableEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTableEntry.h>\n\n@implementation ABTableEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTableHeaderView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTableHeaderView.h>\n\n@implementation ABTableHeaderView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTelURLHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTelURLHelper.h>\n\n@implementation ABTelURLHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTemplatePreferencesSaving.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTemplatePreferencesSaving.h>\n\n@implementation ABTemplatePreferencesSaving\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTemplateViewStyleProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTemplateViewStyleProvider.h>\n\n@implementation ABTemplateViewStyleProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTextContainer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTextContainer.h>\n\n@implementation ABTextContainer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTextStorage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTextStorage.h>\n\n@implementation ABTextStorage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABThrottledTrackingAreaMonitor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABThrottledTrackingAreaMonitor.h>\n\n@implementation ABThrottledTrackingAreaMonitor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTrackingArea.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTrackingArea.h>\n\n@implementation ABTrackingArea\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABTypesetter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABTypesetter.h>\n\n@implementation ABTypesetter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABURLCollectionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABURLCollectionViewItem.h>\n\n@implementation ABURLCollectionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABUndoableCommandVisitor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABUndoableCommandVisitor.h>\n\n@implementation ABUndoableCommandVisitor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABUnlinkPeopleCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABUnlinkPeopleCommand.h>\n\n@implementation ABUnlinkPeopleCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABUserActivityRestoration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABUserActivityRestoration.h>\n\n@implementation ABUserActivityRestoration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABUserActivityScore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABUserActivityScore.h>\n\n@implementation ABUserActivityScore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABUserActivityScoring.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABUserActivityScoring.h>\n\n@implementation ABUserActivityScoring\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABUserActivitySerialization.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABUserActivitySerialization.h>\n\n@implementation ABUserActivitySerialization\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABUserDefaultsCNAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABUserDefaultsCNAdapter.h>\n\n@implementation ABUserDefaultsCNAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABVCardFilenameExpander.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABVCardFilenameExpander.h>\n\n@implementation ABVCardFilenameExpander\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABView.h>\n\n@implementation ABView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABWhiteView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABWhiteView.h>\n\n@implementation ABWhiteView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABWidthLimitingStackView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABWidthLimitingStackView.h>\n\n@implementation ABWidthLimitingStackView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABWindowController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABWindowController.h>\n\n@implementation ABWindowController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/ABXMLParseNode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/ABXMLParseNode.h>\n\n@implementation ABXMLParseNode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/AKCardViewDataSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/AKCardViewDataSource.h>\n\n@implementation AKCardViewDataSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/AKCardViewDataSourceFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/AKCardViewDataSourceFactory.h>\n\n@implementation AKCardViewDataSourceFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/AKCardViewImageDataSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/AKCardViewImageDataSource.h>\n\n@implementation AKCardViewImageDataSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/AKInstantMessageAddressValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/AKInstantMessageAddressValueTransformer.h>\n\n@implementation AKInstantMessageAddressValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/AKSocialProfileValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/AKSocialProfileValueTransformer.h>\n\n@implementation AKSocialProfileValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/AddressBook.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <AddressBook/AddressBook.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* ABAddressBookLocalizedString(void)\n{\n    if (verbose) puts(\"STUB: ABAddressBookLocalizedString called\");\n    return NULL;\n}\n\nvoid* ABDeleteRecordsCommandNameForRecords(void)\n{\n    if (verbose) puts(\"STUB: ABDeleteRecordsCommandNameForRecords called\");\n    return NULL;\n}\n\nvoid* ABEmailCertificateCopyMatchingUnexpired(void)\n{\n    if (verbose) puts(\"STUB: ABEmailCertificateCopyMatchingUnexpired called\");\n    return NULL;\n}\n\nvoid* ABEmailCertificateHasMatchingUnexpired(void)\n{\n    if (verbose) puts(\"STUB: ABEmailCertificateHasMatchingUnexpired called\");\n    return NULL;\n}\n\nvoid* ABIsParagraphSeparator(void)\n{\n    if (verbose) puts(\"STUB: ABIsParagraphSeparator called\");\n    return NULL;\n}\n\nvoid* ABPickerAddProperty(void)\n{\n    if (verbose) puts(\"STUB: ABPickerAddProperty called\");\n    return NULL;\n}\n\nvoid* ABPickerChangeAttributes(void)\n{\n    if (verbose) puts(\"STUB: ABPickerChangeAttributes called\");\n    return NULL;\n}\n\nvoid* ABPickerClearSearchField(void)\n{\n    if (verbose) puts(\"STUB: ABPickerClearSearchField called\");\n    return NULL;\n}\n\nvoid* ABPickerCopyColumnTitle(void)\n{\n    if (verbose) puts(\"STUB: ABPickerCopyColumnTitle called\");\n    return NULL;\n}\n\nvoid* ABPickerCopyDisplayedProperty(void)\n{\n    if (verbose) puts(\"STUB: ABPickerCopyDisplayedProperty called\");\n    return NULL;\n}\n\nvoid* ABPickerCopyProperties(void)\n{\n    if (verbose) puts(\"STUB: ABPickerCopyProperties called\");\n    return NULL;\n}\n\nvoid* ABPickerCopySelectedGroups(void)\n{\n    if (verbose) puts(\"STUB: ABPickerCopySelectedGroups called\");\n    return NULL;\n}\n\nvoid* ABPickerCopySelectedIdentifiers(void)\n{\n    if (verbose) puts(\"STUB: ABPickerCopySelectedIdentifiers called\");\n    return NULL;\n}\n\nvoid* ABPickerCopySelectedRecords(void)\n{\n    if (verbose) puts(\"STUB: ABPickerCopySelectedRecords called\");\n    return NULL;\n}\n\nvoid* ABPickerCopySelectedValues(void)\n{\n    if (verbose) puts(\"STUB: ABPickerCopySelectedValues called\");\n    return NULL;\n}\n\nvoid* ABPickerCreate(void)\n{\n    if (verbose) puts(\"STUB: ABPickerCreate called\");\n    return NULL;\n}\n\nvoid* ABPickerDeselectAll(void)\n{\n    if (verbose) puts(\"STUB: ABPickerDeselectAll called\");\n    return NULL;\n}\n\nvoid* ABPickerDeselectGroup(void)\n{\n    if (verbose) puts(\"STUB: ABPickerDeselectGroup called\");\n    return NULL;\n}\n\nvoid* ABPickerDeselectIdentifier(void)\n{\n    if (verbose) puts(\"STUB: ABPickerDeselectIdentifier called\");\n    return NULL;\n}\n\nvoid* ABPickerDeselectRecord(void)\n{\n    if (verbose) puts(\"STUB: ABPickerDeselectRecord called\");\n    return NULL;\n}\n\nvoid* ABPickerEditInAddressBook(void)\n{\n    if (verbose) puts(\"STUB: ABPickerEditInAddressBook called\");\n    return NULL;\n}\n\nvoid* ABPickerGetAttributes(void)\n{\n    if (verbose) puts(\"STUB: ABPickerGetAttributes called\");\n    return NULL;\n}\n\nvoid* ABPickerGetDelegate(void)\n{\n    if (verbose) puts(\"STUB: ABPickerGetDelegate called\");\n    return NULL;\n}\n\nvoid* ABPickerGetFrame(void)\n{\n    if (verbose) puts(\"STUB: ABPickerGetFrame called\");\n    return NULL;\n}\n\nvoid* ABPickerIsVisible(void)\n{\n    if (verbose) puts(\"STUB: ABPickerIsVisible called\");\n    return NULL;\n}\n\nvoid* ABPickerRemoveProperty(void)\n{\n    if (verbose) puts(\"STUB: ABPickerRemoveProperty called\");\n    return NULL;\n}\n\nvoid* ABPickerSelectGroup(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSelectGroup called\");\n    return NULL;\n}\n\nvoid* ABPickerSelectIdentifier(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSelectIdentifier called\");\n    return NULL;\n}\n\nvoid* ABPickerSelectInAddressBook(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSelectInAddressBook called\");\n    return NULL;\n}\n\nvoid* ABPickerSelectRecord(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSelectRecord called\");\n    return NULL;\n}\n\nvoid* ABPickerSetColumnTitle(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSetColumnTitle called\");\n    return NULL;\n}\n\nvoid* ABPickerSetDelegate(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSetDelegate called\");\n    return NULL;\n}\n\nvoid* ABPickerSetDisplayedProperty(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSetDisplayedProperty called\");\n    return NULL;\n}\n\nvoid* ABPickerSetFrame(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSetFrame called\");\n    return NULL;\n}\n\nvoid* ABPickerSetVisibility(void)\n{\n    if (verbose) puts(\"STUB: ABPickerSetVisibility called\");\n    return NULL;\n}\n\nvoid* _ABClipRangeToLength(void)\n{\n    if (verbose) puts(\"STUB: _ABClipRangeToLength called\");\n    return NULL;\n}\n\nvoid* _ABEmailCertificateCopyAllMatching(void)\n{\n    if (verbose) puts(\"STUB: _ABEmailCertificateCopyAllMatching called\");\n    return NULL;\n}\n\nvoid* _ABEmailCertificateHasExpired(void)\n{\n    if (verbose) puts(\"STUB: _ABEmailCertificateHasExpired called\");\n    return NULL;\n}\n\nvoid* addChild(void)\n{\n    if (verbose) puts(\"STUB: addChild called\");\n    return NULL;\n}\n\nvoid* createStructure(void)\n{\n    if (verbose) puts(\"STUB: createStructure called\");\n    return NULL;\n}\n\nvoid* endStructure(void)\n{\n    if (verbose) puts(\"STUB: endStructure called\");\n    return NULL;\n}\n\nvoid* handleError(void)\n{\n    if (verbose) puts(\"STUB: handleError called\");\n    return NULL;\n}\n\nvoid* resolveExternalEntity(void)\n{\n    if (verbose) puts(\"STUB: resolveExternalEntity called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNCollectionUserActionItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNCollectionUserActionItem.h>\n\n@implementation CNCollectionUserActionItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNContactLabelSanitizer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNContactLabelSanitizer.h>\n\n@implementation CNContactLabelSanitizer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIAddContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIAddContactCommand.h>\n\n@implementation CNUIAddContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIAddressBookToContactsConversions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIAddressBookToContactsConversions.h>\n\n@implementation CNUIAddressBookToContactsConversions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIAggregateUndoableCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIAggregateUndoableCommand.h>\n\n@implementation CNUIAggregateUndoableCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIAggregateUndoableCommandBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIAggregateUndoableCommandBuilder.h>\n\n@implementation CNUIAggregateUndoableCommandBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUICommandContactHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUICommandContactHelper.h>\n\n@implementation CNUICommandContactHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIContactNameOrder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIContactNameOrder.h>\n\n@implementation CNUIContactNameOrder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIContactRelationsValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIContactRelationsValueTransformer.h>\n\n@implementation CNUIContactRelationsValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIDeleteCommandHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIDeleteCommandHelper.h>\n\n@implementation CNUIDeleteCommandHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIDeleteContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIDeleteContactCommand.h>\n\n@implementation CNUIDeleteContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIEditContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIEditContactCommand.h>\n\n@implementation CNUIEditContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIPhoneNumerValueTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIPhoneNumerValueTransformer.h>\n\n@implementation CNUIPhoneNumerValueTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIRejectDonatedValueCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIRejectDonatedValueCommand.h>\n\n@implementation CNUIRejectDonatedValueCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIRejectNonCuratedValueCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIRejectNonCuratedValueCommand.h>\n\n@implementation CNUIRejectNonCuratedValueCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIRejectNonCuratedValueCommandFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIRejectNonCuratedValueCommandFactory.h>\n\n@implementation CNUIRejectNonCuratedValueCommandFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIRejectSugggestedValueCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIRejectSugggestedValueCommand.h>\n\n@implementation CNUIRejectSugggestedValueCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveNonCuratedContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveNonCuratedContactCommand.h>\n\n@implementation CNUISaveNonCuratedContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveNonCuratedContactCommandFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveNonCuratedContactCommandFactory.h>\n\n@implementation CNUISaveNonCuratedContactCommandFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveNonCuratedValueCommandFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveNonCuratedValueCommandFactory.h>\n\n@implementation CNUISaveNonCuratedValueCommandFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveNonCuratedValueOntoContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveNonCuratedValueOntoContactCommand.h>\n\n@implementation CNUISaveNonCuratedValueOntoContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveNonCuratedValueOntoExistingContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveNonCuratedValueOntoExistingContactCommand.h>\n\n@implementation CNUISaveNonCuratedValueOntoExistingContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveNonCuratedValueOntoNonExistingContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveNonCuratedValueOntoNonExistingContactCommand.h>\n\n@implementation CNUISaveNonCuratedValueOntoNonExistingContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveNonCuratedValueOntoReadOnlyContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveNonCuratedValueOntoReadOnlyContactCommand.h>\n\n@implementation CNUISaveNonCuratedValueOntoReadOnlyContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveSuggestedContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveSuggestedContactCommand.h>\n\n@implementation CNUISaveSuggestedContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISaveSuggestedMeContactCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISaveSuggestedMeContactCommand.h>\n\n@implementation CNUISaveSuggestedMeContactCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISetImageCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISetImageCommand.h>\n\n@implementation CNUISetImageCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISetMeCardCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISetMeCardCommand.h>\n\n@implementation CNUISetMeCardCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUISetMultipleImagesCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUISetMultipleImagesCommand.h>\n\n@implementation CNUISetMultipleImagesCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/CNUIUndoableCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/CNUIUndoableCommand.h>\n\n@implementation CNUIUndoableCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/PHXTableView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/PHXTableView.h>\n\n@implementation PHXTableView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_ABBookUndoableCommandAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_ABBookUndoableCommandAdapter.h>\n\n@implementation _ABBookUndoableCommandAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_ABGeocodingMapsLauncher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_ABGeocodingMapsLauncher.h>\n\n@implementation _ABGeocodingMapsLauncher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_ABMonogramOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_ABMonogramOptions.h>\n\n@implementation _ABMonogramOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_ABPersonView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_ABPersonView.h>\n\n@implementation _ABPersonView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_ABURLMapsLauncher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_ABURLMapsLauncher.h>\n\n@implementation _ABURLMapsLauncher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_CNUIDefaultContactNameOrder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_CNUIDefaultContactNameOrder.h>\n\n@implementation _CNUIDefaultContactNameOrder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_CNUIFamilyNameFirstNameOrder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_CNUIFamilyNameFirstNameOrder.h>\n\n@implementation _CNUIFamilyNameFirstNameOrder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_CNUIGivenNameFirstNameOrder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_CNUIGivenNameFirstNameOrder.h>\n\n@implementation _CNUIGivenNameFirstNameOrder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AddressBook/src/_CNUINamelessContactNameOrder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AddressBook/_CNUINamelessContactNameOrder.h>\n\n@implementation _CNUINamelessContactNameOrder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/ATS/CMakeLists.txt",
    "content": "project(ATS)\n\nremove_sdk_framework(ATS)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"236.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(ATS\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/ATS\"\n)\n\nadd_framework(ATS\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n    PARENT ApplicationServices\n\n    SOURCES\n    \tsrc/ATS.c\n\n    DEPENDENCIES\n\tCoreFoundation\n        system\n)\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/ATS/include/ATS/ATS.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _ATS_H_\n#define _ATS_H_\n\n#include <MacTypes.h>\n#include <stdint.h>\n\ntypedef UInt32 FMFont;\n\ntypedef uint32_t ATSFontRef;\ntypedef OptionBits ATSOptionFlags;\ntypedef void* ATSUTextLayout;\ntypedef void* ATSUStyle;\ntypedef uint32_t ATSUAttributeTag;\ntypedef Fixed ATSUTextMeasurement;\ntypedef void* ATSUAttributeValuePtr;\n\ntypedef uint32_t UniCharArrayOffset;\ntypedef char* ConstUniCharArrayPtr;\n\ntypedef void* ATSFontMetrics;\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/ATS/src/ATS.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <ATS/ATS.h>\n#include <stdlib.h>\n#include <stdio.h>\n#include <CoreFoundation/CoreFoundation.h>\n\nconst CFStringRef kATSAutoActivationConfirmDontShowAgainKey = CFSTR(\"DontShow\");\nconst CFStringRef kATSAutoActivationConfirmResultKey = CFSTR(\"Result\");\nconst CFStringRef kATSValidationActivationInfo = CFSTR(\"activationinfo\");\nconst CFStringRef kATSValidationActivationInfoKeep = CFSTR(\"activationinforetain\");\nconst CFStringRef kATSValidationDontRunHiLevelAPITests = CFSTR(\"hilevelapitests\");\nconst CFStringRef kATSValidationDynamicActivationInfo = CFSTR(\"getactivationinto\");\nconst CFStringRef kATSValidationDynamicGlyphTests = CFSTR(\"performglyphtests\");\nconst CFStringRef kATSValidationFontMD5 = CFSTR(\"md5\");\nconst CFStringRef kATSValidationFontSummaryOnly = CFSTR(\"fontsummary\");\nconst CFStringRef kATSValidationGenerateFontChecksum = CFSTR(\"generatechecksum\");\nconst CFStringRef kATSValidationIgnoreDumpFiles = CFSTR(\"ignoredumpfiles\");\nconst CFStringRef kATSValidationIgnoreErrors = CFSTR(\"ignoreerrors\");\nconst CFStringRef kATSValidationOverallResult = CFSTR(\"overallresult\");\nconst CFStringRef kATSValidationPostScriptName = CFSTR(\"fontname\");\nconst CFStringRef kATSValidationResults = CFSTR(\"results\");\nconst CFStringRef kATSValidationRuleAuthor = CFSTR(\"author\");\nconst CFStringRef kATSValidationRuleComponents = CFSTR(\"components\");\nconst CFStringRef kATSValidationRuleCoverage = CFSTR(\"coverage\");\nconst CFStringRef kATSValidationRuleDescription = CFSTR(\"kATSFontTestDescriptionKey\");\nconst CFStringRef kATSValidationRuleFormat = CFSTR(\"format\");\nconst CFStringRef kATSValidationRuleName = CFSTR(\"kATSFontTestNameKey\");\nconst CFStringRef kATSValidationRulePriority = CFSTR(\"priority\");\nconst CFStringRef kATSValidationRuleResult = CFSTR(\"result\");\nconst CFStringRef kATSValidationRuleSeverity = CFSTR(\"severity\");\nconst CFStringRef kATSValidationRuleVersion = CFSTR(\"version\");\nconst CFStringRef kATSValidationRulesList = CFSTR(\"ruleslist\");\nconst CFStringRef kATSValidationRunDynamic = CFSTR(\"dynamic\");\nconst CFStringRef kATSValidationSkipDuplicateFontCheck = CFSTR(\"skipduplicates\");\nconst CFStringRef kATSValidationTestsFailed = CFSTR(\"fail\");\nconst CFStringRef kATSValidationTestsPassed = CFSTR(\"pass\");\nconst CFStringRef kATSValidationTestsRun = CFSTR(\"run\");\nconst CFStringRef kATSValidationTestsWarned = CFSTR(\"warn\");\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nATSFontRef ATSFontFindFromName(CFStringRef a, ATSOptionFlags b)\n{\n    if (verbose) puts(\"STUB: ATSFontFindFromName called\");\n\treturn 0;\n}\n\nOSStatus ATSFontGetHorizontalMetrics(ATSFontRef a, ATSOptionFlags b, ATSFontMetrics *c)\n{\n    if (verbose) puts(\"STUB: ATSFontGetHorizontalMetrics called\");\n\treturn 0;\n}\n\nOSStatus ATSUCreateStyle(ATSUStyle *a)\n{\n    if (verbose) puts(\"STUB: ATSUCreateStyle called\");\n\treturn 0;\n}\n\nOSStatus ATSUCreateTextLayout(ATSUTextLayout *a)\n{\n    if (verbose) puts(\"STUB: ATSUCreateTextLayout called\");\n\treturn 0;\n}\n\nOSStatus ATSUDisposeStyle(ATSUStyle *a)\n{\n    if (verbose) puts(\"STUB: ATSUDisposeStyle called\");\n\treturn 0;\n}\n\nOSStatus ATSUDisposeTextLayout(ATSUTextLayout *a)\n{\n    if (verbose) puts(\"STUB: ATSUDisposeTextLayout called\");\n\treturn 0;\n}\n\nOSStatus ATSUDrawText(ATSUTextLayout a, UniCharArrayOffset b, UniCharCount c, ATSUTextMeasurement d, ATSUTextMeasurement e)\n{\n    if (verbose) puts(\"STUB: ATSUDrawText called\");\n\treturn 0;\n}\n\nOSStatus ATSUGetUnjustifiedBounds(ATSUTextLayout a , UniCharArrayOffset b , UniCharCount c , ATSUTextMeasurement * d , ATSUTextMeasurement * e , ATSUTextMeasurement * f , ATSUTextMeasurement * g)\n{\n    if (verbose) puts(\"STUB: ATSUGetUnjustifiedBounds called\");\n\treturn 0;\n}\n\nOSStatus ATSUMeasureTextImage(ATSUTextLayout a, UniCharArrayOffset b, UniCharCount c, ATSUTextMeasurement d, ATSUTextMeasurement e, Rect *f)\n{\n    if (verbose) puts(\"STUB: ATSUMeasureTextImage called\");\n\treturn 0;\n}\n\nOSStatus ATSUSetAttributes(ATSUStyle a, ItemCount b, const ATSUAttributeTag *c, const ByteCount *d, const ATSUAttributeValuePtr *e)\n{\n    if (verbose) puts(\"STUB: ATSUSetAttributes called\");\n\treturn 0;\n}\n\nOSStatus ATSUSetLayoutControls(ATSUTextLayout a, ItemCount b, const ATSUAttributeTag *c, const ByteCount *d, const ATSUAttributeValuePtr *e)\n{\n    if (verbose) puts(\"STUB: ATSUSetLayoutControls called\");\n\treturn 0;\n}\n\nOSStatus ATSUSetRunStyle(ATSUTextLayout a, ATSUStyle b, UniCharArrayOffset c, UniCharCount d)\n{\n    if (verbose) puts(\"STUB: ATSUSetRunStyle called\");\n\treturn 0;\n}\n\nOSStatus ATSUSetTextPointerLocation(ATSUTextLayout a, ConstUniCharArrayPtr b, UniCharArrayOffset c, UniCharCount d, UniCharCount e)\n{\n    if (verbose) puts(\"STUB: ATSUSetTextPointerLocation called\");\n\treturn 0;\n}\n\nOSStatus ATSUSetTransientFontMatching(ATSUTextLayout a, Boolean b)\n{\n    if (verbose) puts(\"STUB: ATSUSetTransientFontMatching called\");\n\treturn 0;\n}\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/ApplicationServices.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\nconst char* ApplicationServicesVersionString = \"Darling ApplicationServices-48\";\nconst unsigned long long ApplicationServicesVersionNumber = 0x4048000000000000;\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/CMakeLists.txt",
    "content": "project(ApplicationServices)\n\nremove_sdk_framework(ApplicationServices)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"48.0.0\")\n\nadd_subdirectory(HIServices)\nadd_subdirectory(ATS)\nadd_subdirectory(QD)\nadd_subdirectory(ColorSyncLegacy)\nadd_subdirectory(LangAnalysis)\nadd_subdirectory(PrintCore)\nadd_subdirectory(SpeechSynthesis)\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(ApplicationServices\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/ApplicationServices\"\n)\n\nadd_framework(ApplicationServices\n\tFAT \n\tCURRENT_VERSION\n\tVERSION ${FRAMEWORK_VERSION}\n\n\tSOURCES\n\t\tApplicationServices.c\n\t\n\tDEPENDENCIES\n\t\tsystem\n\t\tCoreServices\n\t\tCoreFoundation\n)\n\nif (COMPONENT_gui)\n\tset(CoreGraphics_BUILD ${CMAKE_BINARY_DIR}/src/external/cocotron/CoreGraphics/CoreGraphics)\n\tset(CoreText_BUILD ${CMAKE_BINARY_DIR}/src/external/cocotron/CoreText/CoreText)\n\tset(ImageIO_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ImageIO/ImageIO)\nelse()\n\tset(CoreGraphics_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs/CoreGraphics/CoreGraphics)\n\tset(CoreText_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs/CoreText/CoreText)\n\tset(ImageIO_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/dev-stubs/ImageIO/ImageIO)\nendif()\n\nset(CoreServices_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/CoreServices/CoreServices)\nset(ColorSync_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ColorSync/ColorSync)\nset(ATS_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/ATS/ATS)\nset(ColorSyncLegacy_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/ColorSyncLegacy/ColorSyncLegacy)\nset(HIServices_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/HIServices/HIServices)\nset(LangAnalysis_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/LangAnalysis/LangAnalysis)\nset(PrintCore_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/PrintCore/PrintCore)\nset(QD_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/QD/QD)\nset(SpeechSynthesis_BUILD ${CMAKE_BINARY_DIR}/src/frameworks/ApplicationServices/SpeechSynthesis/SpeechSynthesis)\n\nreexport(ApplicationServices CoreGraphics ${CoreGraphics_BUILD})\nreexport(ApplicationServices CoreText ${CoreText_BUILD})\nreexport(ApplicationServices ImageIO ${ImageIO_BUILD})\nreexport(ApplicationServices ColorSync ${ColorSync_BUILD})\nreexport(ApplicationServices ATS ${ATS_BUILD})\nreexport(ApplicationServices ColorSyncLegacy ${ColorSyncLegacy_BUILD})\nreexport(ApplicationServices CoreServices ${CoreServices_BUILD})\nreexport(ApplicationServices HIServices ${HIServices_BUILD})\nreexport(ApplicationServices LangAnalysis ${LangAnalysis_BUILD})\nreexport(ApplicationServices PrintCore ${PrintCore_BUILD})\nreexport(ApplicationServices QD ${QD_BUILD})\nreexport(ApplicationServices SpeechSynthesis ${SpeechSynthesis_BUILD})\n\nInstallSymlink(../../../../ColorSync.framework\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ColorSync.framework)\n\nInstallSymlink(../../../../CoreGraphics.framework\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework)\n\nInstallSymlink(../../../../CoreText.framework\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreText.framework)\n\nInstallSymlink(../../../../ImageIO.framework\n\t${CMAKE_INSTALL_PREFIX}/libexec/darling/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/ImageIO.framework)\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/ColorSyncLegacy/CMakeLists.txt",
    "content": "project(ColorSyncLegacy)\n\nremove_sdk_framework(ColorSyncLegacy)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(ColorSyncLegacy\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/ColorSyncLegacy\"\n)\n\nadd_framework(ColorSyncLegacy\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n    PARENT ApplicationServices\n\n    SOURCES\n        src/ColorSyncLegacy.c\n\n    DEPENDENCIES\n        system\n)\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/ColorSyncLegacy/include/ColorSyncLegacy/ColorSyncLegacy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _ColorSyncLegacy_H_\n#define _ColorSyncLegacy_H_\n\nvoid* CMCloneProfileRef(void);\nvoid* CMCloseProfile(void);\nvoid* CMConvertDoubleXYZToD50(void);\nvoid* CMConvertRGBFloatBitmap(void);\nvoid* CMConvertXYZFloatBitmap(void);\nvoid* CMCopyProfile(void);\nvoid* CMCopyProfileDescriptionString(void);\nvoid* CMCopyProfileLocalizedString(void);\nvoid* CMCopyProfileLocalizedStringDictionary(void);\nvoid* CMCountProfileElements(void);\nvoid* CMFloatBitmapMakeChunky(void);\nvoid* CMGetColorSyncVersion(void);\nvoid* CMGetDefaultDevice(void);\nvoid* CMGetDefaultProfileBySpace(void);\nvoid* CMGetDefaultProfileByUse(void);\nvoid* CMGetDeviceDefaultProfileID(void);\nvoid* CMGetDeviceFactoryProfiles(void);\nvoid* CMGetDeviceInfo(void);\nvoid* CMGetDeviceProfile(void);\nvoid* CMGetDeviceState(void);\nvoid* CMGetDeviceTrackingByUse(void);\nvoid* CMGetGammaByAVID(void);\nvoid* CMGetIndNamedColorValue(void);\nvoid* CMGetIndProfileElement(void);\nvoid* CMGetIndProfileElementInfo(void);\nvoid* CMGetNamedColorIndex(void);\nvoid* CMGetNamedColorInfo(void);\nvoid* CMGetNamedColorName(void);\nvoid* CMGetNamedColorValue(void);\nvoid* CMGetPS2ColorRendering(void);\nvoid* CMGetPS2ColorRenderingIntent(void);\nvoid* CMGetPS2ColorRenderingVMSize(void);\nvoid* CMGetPS2ColorSpace(void);\nvoid* CMGetPartialProfileElement(void);\nvoid* CMGetProfileByAVID(void);\nvoid* CMGetProfileDescriptions(void);\nvoid* CMGetProfileElement(void);\nvoid* CMGetProfileGamma(void);\nvoid* CMGetProfileHeader(void);\nvoid* CMGetProfileLocation(void);\nvoid* CMGetProfileMD5(void);\nvoid* CMGetProfileRefCount(void);\nvoid* CMGetProfileTransformInfo(void);\nvoid* CMGetSystemProfile(void);\nvoid* CMGetSystemProfileAVID(void);\nvoid* CMGetSystemProfilePriv(void);\nvoid* CMIterateCMMInfo(void);\nvoid* CMIterateColorDevices(void);\nvoid* CMIterateColorSyncFolder(void);\nvoid* CMIterateDeviceProfiles(void);\nvoid* CMLaunchControlPanel(void);\nvoid* CMMakeProfile(void);\nvoid* CMMatchFloatBitmap(void);\nvoid* CMNewProfile(void);\nvoid* CMOpenProfile(void);\nvoid* CMPostLegacyDeviceNotification(void);\nvoid* CMProfileCopyICCData(void);\nvoid* CMProfileElementExists(void);\nvoid* CMProfileModified(void);\nvoid* CMProfileWriteToFile(void);\nvoid* CMRegisterColorDevice(void);\nvoid* CMRemoveProfileElement(void);\nvoid* CMSetDefaultDevice(void);\nvoid* CMSetDeviceDefaultProfileID(void);\nvoid* CMSetDeviceFactoryProfiles(void);\nvoid* CMSetDeviceProfile(void);\nvoid* CMSetDeviceState(void);\nvoid* CMSetDeviceTrackingByUse(void);\nvoid* CMSetGammaByAVID(void);\nvoid* CMSetPartialProfileElement(void);\nvoid* CMSetProfileByAVID(void);\nvoid* CMSetProfileDescriptions(void);\nvoid* CMSetProfileElement(void);\nvoid* CMSetProfileElementReference(void);\nvoid* CMSetProfileElementSize(void);\nvoid* CMSetProfileHeader(void);\nvoid* CMSetProfileLocalizedStringDictionary(void);\nvoid* CMSetSystemProfile(void);\nvoid* CMSetSystemProfileAVID(void);\nvoid* CMUnregisterColorDevice(void);\nvoid* CMUpdateProfile(void);\nvoid* CMValidateProfile(void);\nvoid* CWCheckBitmap(void);\nvoid* CWCheckColors(void);\nvoid* CWColorWorldGetProperty(void);\nvoid* CWColorWorldSetProperty(void);\nvoid* CWConcatColorWorld(void);\nvoid* CWDisposeColorWorld(void);\nvoid* CWFillLookupTexture(void);\nvoid* CWGetCMMSignature(void);\nvoid* CWMatchBitmap(void);\nvoid* CWMatchColors(void);\nvoid* CWNewLinkProfile(void);\nvoid* CreateCMProfileFromColorSyncProfile(void);\nvoid* CreateColorSyncProfileFromCMProfile(void);\nvoid* DisposeCMBitmapCallBackUPP(void);\nvoid* DisposeCMConcatCallBackUPP(void);\nvoid* DisposeCMFlattenUPP(void);\nvoid* DisposeCMMIterateUPP(void);\nvoid* DisposeCMProfileAccessUPP(void);\nvoid* DisposeCMProfileIterateUPP(void);\nvoid* InvokeCMBitmapCallBackUPP(void);\nvoid* InvokeCMConcatCallBackUPP(void);\nvoid* InvokeCMFlattenUPP(void);\nvoid* InvokeCMMIterateUPP(void);\nvoid* InvokeCMProfileAccessUPP(void);\nvoid* InvokeCMProfileIterateUPP(void);\nvoid* NCMGetProfileLocation(void);\nvoid* NCWConcatColorWorld(void);\nvoid* NCWNewColorWorld(void);\nvoid* NCWNewLinkProfile(void);\nvoid* NewCMBitmapCallBackUPP(void);\nvoid* NewCMConcatCallBackUPP(void);\nvoid* NewCMFlattenUPP(void);\nvoid* NewCMMIterateUPP(void);\nvoid* NewCMProfileAccessUPP(void);\nvoid* NewCMProfileIterateUPP(void);\nvoid* _CMGetProfileOfSuite(void);\nvoid* _CMLoadProfileLutsByAVID(void);\nvoid* _CMProfileGetProperty(void);\nvoid* _CMProfileSetProperty(void);\nvoid* _CWColorWorldGetProperty(void);\nvoid* _CWColorWorldSetProperty(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/ColorSyncLegacy/src/ColorSyncLegacy.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <ColorSyncLegacy/ColorSyncLegacy.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* CMCloneProfileRef(void)\n{\n    if (verbose) puts(\"STUB: CMCloneProfileRef called\");\n    return NULL;\n}\n\nvoid* CMCloseProfile(void)\n{\n    if (verbose) puts(\"STUB: CMCloseProfile called\");\n    return NULL;\n}\n\nvoid* CMConvertDoubleXYZToD50(void)\n{\n    if (verbose) puts(\"STUB: CMConvertDoubleXYZToD50 called\");\n    return NULL;\n}\n\nvoid* CMConvertRGBFloatBitmap(void)\n{\n    if (verbose) puts(\"STUB: CMConvertRGBFloatBitmap called\");\n    return NULL;\n}\n\nvoid* CMConvertXYZFloatBitmap(void)\n{\n    if (verbose) puts(\"STUB: CMConvertXYZFloatBitmap called\");\n    return NULL;\n}\n\nvoid* CMCopyProfile(void)\n{\n    if (verbose) puts(\"STUB: CMCopyProfile called\");\n    return NULL;\n}\n\nvoid* CMCopyProfileDescriptionString(void)\n{\n    if (verbose) puts(\"STUB: CMCopyProfileDescriptionString called\");\n    return NULL;\n}\n\nvoid* CMCopyProfileLocalizedString(void)\n{\n    if (verbose) puts(\"STUB: CMCopyProfileLocalizedString called\");\n    return NULL;\n}\n\nvoid* CMCopyProfileLocalizedStringDictionary(void)\n{\n    if (verbose) puts(\"STUB: CMCopyProfileLocalizedStringDictionary called\");\n    return NULL;\n}\n\nvoid* CMCountProfileElements(void)\n{\n    if (verbose) puts(\"STUB: CMCountProfileElements called\");\n    return NULL;\n}\n\nvoid* CMFloatBitmapMakeChunky(void)\n{\n    if (verbose) puts(\"STUB: CMFloatBitmapMakeChunky called\");\n    return NULL;\n}\n\nvoid* CMGetColorSyncVersion(void)\n{\n    if (verbose) puts(\"STUB: CMGetColorSyncVersion called\");\n    return NULL;\n}\n\nvoid* CMGetDefaultDevice(void)\n{\n    if (verbose) puts(\"STUB: CMGetDefaultDevice called\");\n    return NULL;\n}\n\nvoid* CMGetDefaultProfileBySpace(void)\n{\n    if (verbose) puts(\"STUB: CMGetDefaultProfileBySpace called\");\n    return NULL;\n}\n\nvoid* CMGetDefaultProfileByUse(void)\n{\n    if (verbose) puts(\"STUB: CMGetDefaultProfileByUse called\");\n    return NULL;\n}\n\nvoid* CMGetDeviceDefaultProfileID(void)\n{\n    if (verbose) puts(\"STUB: CMGetDeviceDefaultProfileID called\");\n    return NULL;\n}\n\nvoid* CMGetDeviceFactoryProfiles(void)\n{\n    if (verbose) puts(\"STUB: CMGetDeviceFactoryProfiles called\");\n    return NULL;\n}\n\nvoid* CMGetDeviceInfo(void)\n{\n    if (verbose) puts(\"STUB: CMGetDeviceInfo called\");\n    return NULL;\n}\n\nvoid* CMGetDeviceProfile(void)\n{\n    if (verbose) puts(\"STUB: CMGetDeviceProfile called\");\n    return NULL;\n}\n\nvoid* CMGetDeviceState(void)\n{\n    if (verbose) puts(\"STUB: CMGetDeviceState called\");\n    return NULL;\n}\n\nvoid* CMGetDeviceTrackingByUse(void)\n{\n    if (verbose) puts(\"STUB: CMGetDeviceTrackingByUse called\");\n    return NULL;\n}\n\nvoid* CMGetGammaByAVID(void)\n{\n    if (verbose) puts(\"STUB: CMGetGammaByAVID called\");\n    return NULL;\n}\n\nvoid* CMGetIndNamedColorValue(void)\n{\n    if (verbose) puts(\"STUB: CMGetIndNamedColorValue called\");\n    return NULL;\n}\n\nvoid* CMGetIndProfileElement(void)\n{\n    if (verbose) puts(\"STUB: CMGetIndProfileElement called\");\n    return NULL;\n}\n\nvoid* CMGetIndProfileElementInfo(void)\n{\n    if (verbose) puts(\"STUB: CMGetIndProfileElementInfo called\");\n    return NULL;\n}\n\nvoid* CMGetNamedColorIndex(void)\n{\n    if (verbose) puts(\"STUB: CMGetNamedColorIndex called\");\n    return NULL;\n}\n\nvoid* CMGetNamedColorInfo(void)\n{\n    if (verbose) puts(\"STUB: CMGetNamedColorInfo called\");\n    return NULL;\n}\n\nvoid* CMGetNamedColorName(void)\n{\n    if (verbose) puts(\"STUB: CMGetNamedColorName called\");\n    return NULL;\n}\n\nvoid* CMGetNamedColorValue(void)\n{\n    if (verbose) puts(\"STUB: CMGetNamedColorValue called\");\n    return NULL;\n}\n\nvoid* CMGetPS2ColorRendering(void)\n{\n    if (verbose) puts(\"STUB: CMGetPS2ColorRendering called\");\n    return NULL;\n}\n\nvoid* CMGetPS2ColorRenderingIntent(void)\n{\n    if (verbose) puts(\"STUB: CMGetPS2ColorRenderingIntent called\");\n    return NULL;\n}\n\nvoid* CMGetPS2ColorRenderingVMSize(void)\n{\n    if (verbose) puts(\"STUB: CMGetPS2ColorRenderingVMSize called\");\n    return NULL;\n}\n\nvoid* CMGetPS2ColorSpace(void)\n{\n    if (verbose) puts(\"STUB: CMGetPS2ColorSpace called\");\n    return NULL;\n}\n\nvoid* CMGetPartialProfileElement(void)\n{\n    if (verbose) puts(\"STUB: CMGetPartialProfileElement called\");\n    return NULL;\n}\n\nvoid* CMGetProfileByAVID(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileByAVID called\");\n    return NULL;\n}\n\nvoid* CMGetProfileDescriptions(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileDescriptions called\");\n    return NULL;\n}\n\nvoid* CMGetProfileElement(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileElement called\");\n    return NULL;\n}\n\nvoid* CMGetProfileGamma(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileGamma called\");\n    return NULL;\n}\n\nvoid* CMGetProfileHeader(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileHeader called\");\n    return NULL;\n}\n\nvoid* CMGetProfileLocation(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileLocation called\");\n    return NULL;\n}\n\nvoid* CMGetProfileMD5(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileMD5 called\");\n    return NULL;\n}\n\nvoid* CMGetProfileRefCount(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileRefCount called\");\n    return NULL;\n}\n\nvoid* CMGetProfileTransformInfo(void)\n{\n    if (verbose) puts(\"STUB: CMGetProfileTransformInfo called\");\n    return NULL;\n}\n\nvoid* CMGetSystemProfile(void)\n{\n    if (verbose) puts(\"STUB: CMGetSystemProfile called\");\n    return NULL;\n}\n\nvoid* CMGetSystemProfileAVID(void)\n{\n    if (verbose) puts(\"STUB: CMGetSystemProfileAVID called\");\n    return NULL;\n}\n\nvoid* CMGetSystemProfilePriv(void)\n{\n    if (verbose) puts(\"STUB: CMGetSystemProfilePriv called\");\n    return NULL;\n}\n\nvoid* CMIterateCMMInfo(void)\n{\n    if (verbose) puts(\"STUB: CMIterateCMMInfo called\");\n    return NULL;\n}\n\nvoid* CMIterateColorDevices(void)\n{\n    if (verbose) puts(\"STUB: CMIterateColorDevices called\");\n    return NULL;\n}\n\nvoid* CMIterateColorSyncFolder(void)\n{\n    if (verbose) puts(\"STUB: CMIterateColorSyncFolder called\");\n    return NULL;\n}\n\nvoid* CMIterateDeviceProfiles(void)\n{\n    if (verbose) puts(\"STUB: CMIterateDeviceProfiles called\");\n    return NULL;\n}\n\nvoid* CMLaunchControlPanel(void)\n{\n    if (verbose) puts(\"STUB: CMLaunchControlPanel called\");\n    return NULL;\n}\n\nvoid* CMMakeProfile(void)\n{\n    if (verbose) puts(\"STUB: CMMakeProfile called\");\n    return NULL;\n}\n\nvoid* CMMatchFloatBitmap(void)\n{\n    if (verbose) puts(\"STUB: CMMatchFloatBitmap called\");\n    return NULL;\n}\n\nvoid* CMNewProfile(void)\n{\n    if (verbose) puts(\"STUB: CMNewProfile called\");\n    return NULL;\n}\n\nvoid* CMOpenProfile(void)\n{\n    if (verbose) puts(\"STUB: CMOpenProfile called\");\n    return NULL;\n}\n\nvoid* CMPostLegacyDeviceNotification(void)\n{\n    if (verbose) puts(\"STUB: CMPostLegacyDeviceNotification called\");\n    return NULL;\n}\n\nvoid* CMProfileCopyICCData(void)\n{\n    if (verbose) puts(\"STUB: CMProfileCopyICCData called\");\n    return NULL;\n}\n\nvoid* CMProfileElementExists(void)\n{\n    if (verbose) puts(\"STUB: CMProfileElementExists called\");\n    return NULL;\n}\n\nvoid* CMProfileModified(void)\n{\n    if (verbose) puts(\"STUB: CMProfileModified called\");\n    return NULL;\n}\n\nvoid* CMProfileWriteToFile(void)\n{\n    if (verbose) puts(\"STUB: CMProfileWriteToFile called\");\n    return NULL;\n}\n\nvoid* CMRegisterColorDevice(void)\n{\n    if (verbose) puts(\"STUB: CMRegisterColorDevice called\");\n    return NULL;\n}\n\nvoid* CMRemoveProfileElement(void)\n{\n    if (verbose) puts(\"STUB: CMRemoveProfileElement called\");\n    return NULL;\n}\n\nvoid* CMSetDefaultDevice(void)\n{\n    if (verbose) puts(\"STUB: CMSetDefaultDevice called\");\n    return NULL;\n}\n\nvoid* CMSetDeviceDefaultProfileID(void)\n{\n    if (verbose) puts(\"STUB: CMSetDeviceDefaultProfileID called\");\n    return NULL;\n}\n\nvoid* CMSetDeviceFactoryProfiles(void)\n{\n    if (verbose) puts(\"STUB: CMSetDeviceFactoryProfiles called\");\n    return NULL;\n}\n\nvoid* CMSetDeviceProfile(void)\n{\n    if (verbose) puts(\"STUB: CMSetDeviceProfile called\");\n    return NULL;\n}\n\nvoid* CMSetDeviceState(void)\n{\n    if (verbose) puts(\"STUB: CMSetDeviceState called\");\n    return NULL;\n}\n\nvoid* CMSetDeviceTrackingByUse(void)\n{\n    if (verbose) puts(\"STUB: CMSetDeviceTrackingByUse called\");\n    return NULL;\n}\n\nvoid* CMSetGammaByAVID(void)\n{\n    if (verbose) puts(\"STUB: CMSetGammaByAVID called\");\n    return NULL;\n}\n\nvoid* CMSetPartialProfileElement(void)\n{\n    if (verbose) puts(\"STUB: CMSetPartialProfileElement called\");\n    return NULL;\n}\n\nvoid* CMSetProfileByAVID(void)\n{\n    if (verbose) puts(\"STUB: CMSetProfileByAVID called\");\n    return NULL;\n}\n\nvoid* CMSetProfileDescriptions(void)\n{\n    if (verbose) puts(\"STUB: CMSetProfileDescriptions called\");\n    return NULL;\n}\n\nvoid* CMSetProfileElement(void)\n{\n    if (verbose) puts(\"STUB: CMSetProfileElement called\");\n    return NULL;\n}\n\nvoid* CMSetProfileElementReference(void)\n{\n    if (verbose) puts(\"STUB: CMSetProfileElementReference called\");\n    return NULL;\n}\n\nvoid* CMSetProfileElementSize(void)\n{\n    if (verbose) puts(\"STUB: CMSetProfileElementSize called\");\n    return NULL;\n}\n\nvoid* CMSetProfileHeader(void)\n{\n    if (verbose) puts(\"STUB: CMSetProfileHeader called\");\n    return NULL;\n}\n\nvoid* CMSetProfileLocalizedStringDictionary(void)\n{\n    if (verbose) puts(\"STUB: CMSetProfileLocalizedStringDictionary called\");\n    return NULL;\n}\n\nvoid* CMSetSystemProfile(void)\n{\n    if (verbose) puts(\"STUB: CMSetSystemProfile called\");\n    return NULL;\n}\n\nvoid* CMSetSystemProfileAVID(void)\n{\n    if (verbose) puts(\"STUB: CMSetSystemProfileAVID called\");\n    return NULL;\n}\n\nvoid* CMUnregisterColorDevice(void)\n{\n    if (verbose) puts(\"STUB: CMUnregisterColorDevice called\");\n    return NULL;\n}\n\nvoid* CMUpdateProfile(void)\n{\n    if (verbose) puts(\"STUB: CMUpdateProfile called\");\n    return NULL;\n}\n\nvoid* CMValidateProfile(void)\n{\n    if (verbose) puts(\"STUB: CMValidateProfile called\");\n    return NULL;\n}\n\nvoid* CWCheckBitmap(void)\n{\n    if (verbose) puts(\"STUB: CWCheckBitmap called\");\n    return NULL;\n}\n\nvoid* CWCheckColors(void)\n{\n    if (verbose) puts(\"STUB: CWCheckColors called\");\n    return NULL;\n}\n\nvoid* CWColorWorldGetProperty(void)\n{\n    if (verbose) puts(\"STUB: CWColorWorldGetProperty called\");\n    return NULL;\n}\n\nvoid* CWColorWorldSetProperty(void)\n{\n    if (verbose) puts(\"STUB: CWColorWorldSetProperty called\");\n    return NULL;\n}\n\nvoid* CWConcatColorWorld(void)\n{\n    if (verbose) puts(\"STUB: CWConcatColorWorld called\");\n    return NULL;\n}\n\nvoid* CWDisposeColorWorld(void)\n{\n    if (verbose) puts(\"STUB: CWDisposeColorWorld called\");\n    return NULL;\n}\n\nvoid* CWFillLookupTexture(void)\n{\n    if (verbose) puts(\"STUB: CWFillLookupTexture called\");\n    return NULL;\n}\n\nvoid* CWGetCMMSignature(void)\n{\n    if (verbose) puts(\"STUB: CWGetCMMSignature called\");\n    return NULL;\n}\n\nvoid* CWMatchBitmap(void)\n{\n    if (verbose) puts(\"STUB: CWMatchBitmap called\");\n    return NULL;\n}\n\nvoid* CWMatchColors(void)\n{\n    if (verbose) puts(\"STUB: CWMatchColors called\");\n    return NULL;\n}\n\nvoid* CWNewLinkProfile(void)\n{\n    if (verbose) puts(\"STUB: CWNewLinkProfile called\");\n    return NULL;\n}\n\nvoid* CreateCMProfileFromColorSyncProfile(void)\n{\n    if (verbose) puts(\"STUB: CreateCMProfileFromColorSyncProfile called\");\n    return NULL;\n}\n\nvoid* CreateColorSyncProfileFromCMProfile(void)\n{\n    if (verbose) puts(\"STUB: CreateColorSyncProfileFromCMProfile called\");\n    return NULL;\n}\n\nvoid* DisposeCMBitmapCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCMBitmapCallBackUPP called\");\n    return NULL;\n}\n\nvoid* DisposeCMConcatCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCMConcatCallBackUPP called\");\n    return NULL;\n}\n\nvoid* DisposeCMFlattenUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCMFlattenUPP called\");\n    return NULL;\n}\n\nvoid* DisposeCMMIterateUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCMMIterateUPP called\");\n    return NULL;\n}\n\nvoid* DisposeCMProfileAccessUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCMProfileAccessUPP called\");\n    return NULL;\n}\n\nvoid* DisposeCMProfileIterateUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCMProfileIterateUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCMBitmapCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCMBitmapCallBackUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCMConcatCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCMConcatCallBackUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCMFlattenUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCMFlattenUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCMMIterateUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCMMIterateUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCMProfileAccessUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCMProfileAccessUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCMProfileIterateUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCMProfileIterateUPP called\");\n    return NULL;\n}\n\nvoid* NCMGetProfileLocation(void)\n{\n    if (verbose) puts(\"STUB: NCMGetProfileLocation called\");\n    return NULL;\n}\n\nvoid* NCWConcatColorWorld(void)\n{\n    if (verbose) puts(\"STUB: NCWConcatColorWorld called\");\n    return NULL;\n}\n\nvoid* NCWNewColorWorld(void)\n{\n    if (verbose) puts(\"STUB: NCWNewColorWorld called\");\n    return NULL;\n}\n\nvoid* NCWNewLinkProfile(void)\n{\n    if (verbose) puts(\"STUB: NCWNewLinkProfile called\");\n    return NULL;\n}\n\nvoid* NewCMBitmapCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCMBitmapCallBackUPP called\");\n    return NULL;\n}\n\nvoid* NewCMConcatCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCMConcatCallBackUPP called\");\n    return NULL;\n}\n\nvoid* NewCMFlattenUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCMFlattenUPP called\");\n    return NULL;\n}\n\nvoid* NewCMMIterateUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCMMIterateUPP called\");\n    return NULL;\n}\n\nvoid* NewCMProfileAccessUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCMProfileAccessUPP called\");\n    return NULL;\n}\n\nvoid* NewCMProfileIterateUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCMProfileIterateUPP called\");\n    return NULL;\n}\n\nvoid* _CMGetProfileOfSuite(void)\n{\n    if (verbose) puts(\"STUB: _CMGetProfileOfSuite called\");\n    return NULL;\n}\n\nvoid* _CMLoadProfileLutsByAVID(void)\n{\n    if (verbose) puts(\"STUB: _CMLoadProfileLutsByAVID called\");\n    return NULL;\n}\n\nvoid* _CMProfileGetProperty(void)\n{\n    if (verbose) puts(\"STUB: _CMProfileGetProperty called\");\n    return NULL;\n}\n\nvoid* _CMProfileSetProperty(void)\n{\n    if (verbose) puts(\"STUB: _CMProfileSetProperty called\");\n    return NULL;\n}\n\nvoid* _CWColorWorldGetProperty(void)\n{\n    if (verbose) puts(\"STUB: _CWColorWorldGetProperty called\");\n    return NULL;\n}\n\nvoid* _CWColorWorldSetProperty(void)\n{\n    if (verbose) puts(\"STUB: _CWColorWorldSetProperty called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/HIServices/CMakeLists.txt",
    "content": "project(HIServices)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"628.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(HIServices\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/HIServices\"\n)\n\nadd_framework(HIServices\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n    PARENT ApplicationServices\n\n    SOURCES\n        src/HIServices.c\n        src/Processes.cpp\n\n    DEPENDENCIES\n\t    CoreFoundation\n        system\n        cxx\n        LaunchServices\n        CoreGraphics\n)\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/HIServices/include/HIServices/HIServices.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _HIServices_H_\n#define _HIServices_H_\n#include <CoreServices/MacTypes.h>\n#include \"Processes.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nOSStatus SetApplicationIsDaemon(Boolean daemon);\nBoolean GetApplicationIsDaemon(void);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/HIServices/include/HIServices/Processes.h",
    "content": "#ifndef PROCESSES_H\n#define PROCESSES_H\n#include \"MacTypes.h\"\n#include <CoreServices/FileManager.h>\n#include <CoreFoundation/CFString.h>\n#include <CoreFoundation/CFDictionary.h>\n#include <sys/types.h>\n\nstruct ProcessInfoRec\n{\n\tunsigned long processInfoLength;\n\t// fields omitted\n};\n\nstruct LaunchParamBlockRec\n{\n\t// fields omitted\n};\n\nenum { kNoProcess = 0, kSystemProcess = 1, kCurrentProcess = 2 };\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nOSStatus CopyProcessName(const ProcessSerialNumber* psn, CFStringRef* name);\nvoid ExitToShell();\nOSErr GetCurrentProcess(ProcessSerialNumber* psn);\nOSErr GetFrontProcess(ProcessSerialNumber* psn);\nOSErr GetNextProcess(ProcessSerialNumber* psn);\nOSStatus GetProcessBundleLocation(const ProcessSerialNumber* psn, FSRef* location);\nOSStatus GetProcessForPID(pid_t pid, ProcessSerialNumber* psn);\nOSErr GetProcessInformation(const ProcessSerialNumber* psn, struct ProcessInfoRec* pi);\nOSStatus GetProcessPID(const ProcessSerialNumber* psn, pid_t* pid);\nBoolean IsProcessVisible(const ProcessSerialNumber* psn);\nOSErr KillProcess(const ProcessSerialNumber* psn);\nOSErr LaunchApplication(struct LaunchParamBlockRec* launch);\nCFDictionaryRef ProcessInformationCopyDictionary(const ProcessSerialNumber *PSN, UInt32 infoToReturn);\nOSErr SameProcess(const ProcessSerialNumber* psn1, const ProcessSerialNumber* psn2, Boolean* result);\nOSErr SetFrontProcess(const ProcessSerialNumber* psn);\nOSErr SetFrontProcessWithOptions(const ProcessSerialNumber* psn, OptionBits opts);\nOSErr ShowHideProcess(const ProcessSerialNumber* psn, Boolean visible);\nOSStatus TransformProcessType(const ProcessSerialNumber* psn, UInt32 type);\nOSErr WakeUpProcess(const ProcessSerialNumber* psn);\n\n// extern CFStringRef kCFBundleExecutableKey;\n// extern CFStringRef kCFBundleNameKey;\n// extern CFStringRef kCFBundleIdentifierKey;\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/HIServices/src/HIServices.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <HIServices/HIServices.h>\n#include <stdlib.h>\n#include <stdio.h>\n#include <CoreFoundation/CoreFoundation.h>\n#include <LaunchServices/LaunchServicesPriv.h>\n#include <CoreGraphics/CoreGraphicsPrivate.h>\n\nconst CFStringRef kAXUIElementCopyHierarchyArrayAttributesKey = CFSTR(\"AXCHAA\");\nconst CFStringRef kAXUIElementCopyHierarchyMaxArrayCountKey = CFSTR(\"AXCHMAC\");\nconst CFStringRef kAXUIElementCopyHierarchyResultValueKey = CFSTR(\"value\");\nconst CFStringRef kAXUIElementCopyHierarchyReturnAttributeErrorsKey = CFSTR(\"AXCHRE\");\nconst CFStringRef kAXUIElementCopyHierarchySkipInspectionForAttributesKey = CFSTR(\"AXCHSIA\");\nconst CFStringRef kAXUIElementCopyHierarchyTruncateStringsKey = CFSTR(\"AXTRUNC\");\n/* Not const for some reason */\nCFStringRef kAXTrustedCheckOptionPrompt = CFSTR(\"AXTrustedCheckOptionPrompt\");\n\nstatic int verbose = 0;\nstatic Boolean g_isDaemon = FALSE;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nOSStatus SetApplicationIsDaemon(Boolean daemon)\n{\n    g_isDaemon = daemon;\n    if (daemon)\n        CGSSetDenyWindowServerConnections(TRUE);\n\n    _LSSetApplicationLaunchServicesServerConnectionStatus(daemon ? 2 : 0, NULL);\n\n    return noErr;\n}\n\nBoolean GetApplicationIsDaemon(void)\n{\n    return g_isDaemon;\n}\n\nvoid* AXAPIEnabled(void)\n{\n    if (verbose) puts(\"STUB: AXAPIEnabled called\");\n    return NULL;\n}\n\nvoid* AXIsProcessTrusted(void)\n{\n    if (verbose) puts(\"STUB: AXIsProcessTrusted called\");\n    return NULL;\n}\n\nvoid* AXIsProcessTrustedWithOptions(void)\n{\n    if (verbose) puts(\"STUB: AXIsProcessTrustedWithOptions called\");\n    return NULL;\n}\n\nvoid* AXMakeProcessTrusted(void)\n{\n    if (verbose) puts(\"STUB: AXMakeProcessTrusted called\");\n    return NULL;\n}\n\nvoid* AXObserverAddNotification(void)\n{\n    if (verbose) puts(\"STUB: AXObserverAddNotification called\");\n    return NULL;\n}\n\nvoid* AXObserverAddNotificationAsync(void)\n{\n    if (verbose) puts(\"STUB: AXObserverAddNotificationAsync called\");\n    return NULL;\n}\n\nvoid* AXObserverCreate(void)\n{\n    if (verbose) puts(\"STUB: AXObserverCreate called\");\n    return NULL;\n}\n\nvoid* AXObserverCreateWithInfoCallback(void)\n{\n    if (verbose) puts(\"STUB: AXObserverCreateWithInfoCallback called\");\n    return NULL;\n}\n\nvoid* AXObserverGetRunLoopSource(void)\n{\n    if (verbose) puts(\"STUB: AXObserverGetRunLoopSource called\");\n    return NULL;\n}\n\nvoid* AXObserverGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: AXObserverGetTypeID called\");\n    return NULL;\n}\n\nvoid* AXObserverRemoveNotification(void)\n{\n    if (verbose) puts(\"STUB: AXObserverRemoveNotification called\");\n    return NULL;\n}\n\nvoid* AXObserverRemoveNotificationAsync(void)\n{\n    if (verbose) puts(\"STUB: AXObserverRemoveNotificationAsync called\");\n    return NULL;\n}\n\nvoid* AXSerializeCFType(void)\n{\n    if (verbose) puts(\"STUB: AXSerializeCFType called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerCreate(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerCreate called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerGetBytePtr(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerGetBytePtr called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerGetLength(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerGetLength called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerGetTypeID called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerRangeCopyEndMarker(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerRangeCopyEndMarker called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerRangeCopyStartMarker(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerRangeCopyStartMarker called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerRangeCreate(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerRangeCreate called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerRangeCreateWithBytes(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerRangeCreateWithBytes called\");\n    return NULL;\n}\n\nvoid* AXTextMarkerRangeGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: AXTextMarkerRangeGetTypeID called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyActionDescription(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyActionDescription called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyActionNames(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyActionNames called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyAttributeNames(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyAttributeNames called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyAttributeValue(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyAttributeValue called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyAttributeValues(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyAttributeValues called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyElementAtPosition(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyElementAtPosition called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyHierarchy(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyHierarchy called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyMultipleAttributeValues(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyMultipleAttributeValues called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyParameterizedAttributeNames(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyParameterizedAttributeNames called\");\n    return NULL;\n}\n\nvoid* AXUIElementCopyParameterizedAttributeValue(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCopyParameterizedAttributeValue called\");\n    return NULL;\n}\n\nvoid* AXUIElementCreateApplication(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCreateApplication called\");\n    return NULL;\n}\n\nvoid* AXUIElementCreateSystemWide(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementCreateSystemWide called\");\n    return NULL;\n}\n\nvoid* AXUIElementGetAttributeValueCount(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementGetAttributeValueCount called\");\n    return NULL;\n}\n\nvoid* AXUIElementGetPid(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementGetPid called\");\n    return NULL;\n}\n\nvoid* AXUIElementGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementGetTypeID called\");\n    return NULL;\n}\n\nvoid* AXUIElementIsAttributeSettable(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementIsAttributeSettable called\");\n    return NULL;\n}\n\nvoid* AXUIElementPerformAction(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementPerformAction called\");\n    return NULL;\n}\n\nvoid* AXUIElementPostKeyboardEvent(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementPostKeyboardEvent called\");\n    return NULL;\n}\n\nvoid* AXUIElementSetAttributeValue(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementSetAttributeValue called\");\n    return NULL;\n}\n\nvoid* AXUIElementSetMessagingTimeout(void)\n{\n    if (verbose) puts(\"STUB: AXUIElementSetMessagingTimeout called\");\n    return NULL;\n}\n\nvoid* AXUnserializeCFType(void)\n{\n    if (verbose) puts(\"STUB: AXUnserializeCFType called\");\n    return NULL;\n}\n\nvoid* AXValueCreate(void)\n{\n    if (verbose) puts(\"STUB: AXValueCreate called\");\n    return NULL;\n}\n\nvoid* AXValueGetType(void)\n{\n    if (verbose) puts(\"STUB: AXValueGetType called\");\n    return NULL;\n}\n\nvoid* AXValueGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: AXValueGetTypeID called\");\n    return NULL;\n}\n\nvoid* AXValueGetValue(void)\n{\n    if (verbose) puts(\"STUB: AXValueGetValue called\");\n    return NULL;\n}\n\nvoid* ApplicationTypeGet(void)\n{\n    if (verbose) puts(\"STUB: ApplicationTypeGet called\");\n    return NULL;\n}\n\nvoid* ApplicationTypeSet(void)\n{\n    if (verbose) puts(\"STUB: ApplicationTypeSet called\");\n    return NULL;\n}\n\nvoid* CGPointInIconRef(void)\n{\n    if (verbose) puts(\"STUB: CGPointInIconRef called\");\n    return NULL;\n}\n\nvoid* CGRectInIconRef(void)\n{\n    if (verbose) puts(\"STUB: CGRectInIconRef called\");\n    return NULL;\n}\n\nvoid* CopyLabelColorAndName(void)\n{\n    if (verbose) puts(\"STUB: CopyLabelColorAndName called\");\n    return NULL;\n}\n\nvoid* CoreAppearanceGetFontCGStyleRef(void)\n{\n    if (verbose) puts(\"STUB: CoreAppearanceGetFontCGStyleRef called\");\n    return NULL;\n}\n\nvoid* CoreAppearanceGetFontShadowOutsets(void)\n{\n    if (verbose) puts(\"STUB: CoreAppearanceGetFontShadowOutsets called\");\n    return NULL;\n}\n\nvoid* CoreAppearanceGetFontSize(void)\n{\n    if (verbose) puts(\"STUB: CoreAppearanceGetFontSize called\");\n    return NULL;\n}\n\nvoid* CoreAppearanceGetQDFontForScript(void)\n{\n    if (verbose) puts(\"STUB: CoreAppearanceGetQDFontForScript called\");\n    return NULL;\n}\n\nvoid* CoreCursorCopyImages(void)\n{\n    if (verbose) puts(\"STUB: CoreCursorCopyImages called\");\n    return NULL;\n}\n\nvoid* CoreCursorGetData(void)\n{\n    if (verbose) puts(\"STUB: CoreCursorGetData called\");\n    return NULL;\n}\n\nvoid* CoreCursorGetDataSize(void)\n{\n    if (verbose) puts(\"STUB: CoreCursorGetDataSize called\");\n    return NULL;\n}\n\nvoid* CoreCursorSet(void)\n{\n    if (verbose) puts(\"STUB: CoreCursorSet called\");\n    return NULL;\n}\n\nvoid* CoreCursorSetAndReturnSeed(void)\n{\n    if (verbose) puts(\"STUB: CoreCursorSetAndReturnSeed called\");\n    return NULL;\n}\n\nvoid* CoreCursorUnregisterAll(void)\n{\n    if (verbose) puts(\"STUB: CoreCursorUnregisterAll called\");\n    return NULL;\n}\n\nvoid* CoreDockAddFileToDock(void)\n{\n    if (verbose) puts(\"STUB: CoreDockAddFileToDock called\");\n    return NULL;\n}\n\nvoid* CoreDockBounceAppTile(void)\n{\n    if (verbose) puts(\"STUB: CoreDockBounceAppTile called\");\n    return NULL;\n}\n\nvoid* CoreDockCompositeProcessImage(void)\n{\n    if (verbose) puts(\"STUB: CoreDockCompositeProcessImage called\");\n    return NULL;\n}\n\nvoid* CoreDockCopyPreferences(void)\n{\n    if (verbose) puts(\"STUB: CoreDockCopyPreferences called\");\n    return NULL;\n}\n\nvoid* CoreDockCopyWorkspacesAppBindings(void)\n{\n    if (verbose) puts(\"STUB: CoreDockCopyWorkspacesAppBindings called\");\n    return NULL;\n}\n\nvoid* CoreDockCreateDragTrashContext(void)\n{\n    if (verbose) puts(\"STUB: CoreDockCreateDragTrashContext called\");\n    return NULL;\n}\n\nvoid* CoreDockDisableExposeKeysIfNecessary(void)\n{\n    if (verbose) puts(\"STUB: CoreDockDisableExposeKeysIfNecessary called\");\n    return NULL;\n}\n\nvoid* CoreDockGetAutoHideEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetAutoHideEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockGetContainerRect(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetContainerRect called\");\n    return NULL;\n}\n\nvoid* CoreDockGetDashboardInDock(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetDashboardInDock called\");\n    return NULL;\n}\n\nvoid* CoreDockGetEffect(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetEffect called\");\n    return NULL;\n}\n\nvoid* CoreDockGetExposeCornerActions(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetExposeCornerActions called\");\n    return NULL;\n}\n\nvoid* CoreDockGetExposeCornerActionsWithModifiers(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetExposeCornerActionsWithModifiers called\");\n    return NULL;\n}\n\nvoid* CoreDockGetItemDockContext(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetItemDockContext called\");\n    return NULL;\n}\n\nvoid* CoreDockGetItemDockWindow(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetItemDockWindow called\");\n    return NULL;\n}\n\nvoid* CoreDockGetMagnificationSize(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetMagnificationSize called\");\n    return NULL;\n}\n\nvoid* CoreDockGetMinimizeInPlace(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetMinimizeInPlace called\");\n    return NULL;\n}\n\nvoid* CoreDockGetOrientationAndPinning(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetOrientationAndPinning called\");\n    return NULL;\n}\n\nvoid* CoreDockGetProcessContext(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetProcessContext called\");\n    return NULL;\n}\n\nvoid* CoreDockGetProcessWindow(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetProcessWindow called\");\n    return NULL;\n}\n\nvoid* CoreDockGetRect(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetRect called\");\n    return NULL;\n}\n\nvoid* CoreDockGetRectAndReason(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetRectAndReason called\");\n    return NULL;\n}\n\nvoid* CoreDockGetSpringLoadingTime(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetSpringLoadingTime called\");\n    return NULL;\n}\n\nvoid* CoreDockGetTileSize(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetTileSize called\");\n    return NULL;\n}\n\nvoid* CoreDockGetTrashWindow(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetTrashWindow called\");\n    return NULL;\n}\n\nvoid* CoreDockGetWorkspacesCount(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetWorkspacesCount called\");\n    return NULL;\n}\n\nvoid* CoreDockGetWorkspacesEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetWorkspacesEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockGetWorkspacesKeyBindings(void)\n{\n    if (verbose) puts(\"STUB: CoreDockGetWorkspacesKeyBindings called\");\n    return NULL;\n}\n\nvoid* CoreDockIsDockRunning(void)\n{\n    if (verbose) puts(\"STUB: CoreDockIsDockRunning called\");\n    return NULL;\n}\n\nvoid* CoreDockIsLaunchAnimationsEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockIsLaunchAnimationsEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockIsMagnificationEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockIsMagnificationEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockIsSpringLoadingEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockIsSpringLoadingEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockMinimizeItemWithTitle(void)\n{\n    if (verbose) puts(\"STUB: CoreDockMinimizeItemWithTitle called\");\n    return NULL;\n}\n\nvoid* CoreDockMinimizeItemWithTitleAsync(void)\n{\n    if (verbose) puts(\"STUB: CoreDockMinimizeItemWithTitleAsync called\");\n    return NULL;\n}\n\nvoid* CoreDockMinimizeItemsWithTitle(void)\n{\n    if (verbose) puts(\"STUB: CoreDockMinimizeItemsWithTitle called\");\n    return NULL;\n}\n\nvoid* CoreDockMinimizeItemsWithTitleAsync(void)\n{\n    if (verbose) puts(\"STUB: CoreDockMinimizeItemsWithTitleAsync called\");\n    return NULL;\n}\n\nvoid* CoreDockPreventCommunicationWithDock(void)\n{\n    if (verbose) puts(\"STUB: CoreDockPreventCommunicationWithDock called\");\n    return NULL;\n}\n\nvoid* CoreDockRegisterClientWithRunLoop(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRegisterClientWithRunLoop called\");\n    return NULL;\n}\n\nvoid* CoreDockReleaseDragTrashContext(void)\n{\n    if (verbose) puts(\"STUB: CoreDockReleaseDragTrashContext called\");\n    return NULL;\n}\n\nvoid* CoreDockReleaseItemDockContext(void)\n{\n    if (verbose) puts(\"STUB: CoreDockReleaseItemDockContext called\");\n    return NULL;\n}\n\nvoid* CoreDockReleaseItemDockWindow(void)\n{\n    if (verbose) puts(\"STUB: CoreDockReleaseItemDockWindow called\");\n    return NULL;\n}\n\nvoid* CoreDockReleaseProcessContext(void)\n{\n    if (verbose) puts(\"STUB: CoreDockReleaseProcessContext called\");\n    return NULL;\n}\n\nvoid* CoreDockReleaseProcessWindow(void)\n{\n    if (verbose) puts(\"STUB: CoreDockReleaseProcessWindow called\");\n    return NULL;\n}\n\nvoid* CoreDockRemoveItem(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRemoveItem called\");\n    return NULL;\n}\n\nvoid* CoreDockRenderWindowIntoContext(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRenderWindowIntoContext called\");\n    return NULL;\n}\n\nvoid* CoreDockRestoreItem(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRestoreItem called\");\n    return NULL;\n}\n\nvoid* CoreDockRestoreItemAsync(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRestoreItemAsync called\");\n    return NULL;\n}\n\nvoid* CoreDockRestoreItemWithOrder(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRestoreItemWithOrder called\");\n    return NULL;\n}\n\nvoid* CoreDockRestoreItemWithOrderAsync(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRestoreItemWithOrderAsync called\");\n    return NULL;\n}\n\nvoid* CoreDockRestoreItems(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRestoreItems called\");\n    return NULL;\n}\n\nvoid* CoreDockRestoreItemsAsync(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRestoreItemsAsync called\");\n    return NULL;\n}\n\nvoid* CoreDockRestoreProcessImage(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRestoreProcessImage called\");\n    return NULL;\n}\n\nvoid* CoreDockRevealWindowForShowDesktop(void)\n{\n    if (verbose) puts(\"STUB: CoreDockRevealWindowForShowDesktop called\");\n    return NULL;\n}\n\nvoid* CoreDockSendDragWindowMessage(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSendDragWindowMessage called\");\n    return NULL;\n}\n\nvoid* CoreDockSendNotification(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSendNotification called\");\n    return NULL;\n}\n\nvoid* CoreDockSetAutoHideEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetAutoHideEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockSetDashboardInDock(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetDashboardInDock called\");\n    return NULL;\n}\n\nvoid* CoreDockSetEffect(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetEffect called\");\n    return NULL;\n}\n\nvoid* CoreDockSetExposeCornerAction(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetExposeCornerAction called\");\n    return NULL;\n}\n\nvoid* CoreDockSetExposeCornerActionWithModifier(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetExposeCornerActionWithModifier called\");\n    return NULL;\n}\n\nvoid* CoreDockSetItemTitle(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetItemTitle called\");\n    return NULL;\n}\n\nvoid* CoreDockSetLaunchAnimationsEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetLaunchAnimationsEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockSetMagnificationEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetMagnificationEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockSetMagnificationSize(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetMagnificationSize called\");\n    return NULL;\n}\n\nvoid* CoreDockSetMiniView(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetMiniView called\");\n    return NULL;\n}\n\nvoid* CoreDockSetMinimizeInPlace(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetMinimizeInPlace called\");\n    return NULL;\n}\n\nvoid* CoreDockSetOrientationAndPinning(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetOrientationAndPinning called\");\n    return NULL;\n}\n\nvoid* CoreDockSetPreferences(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetPreferences called\");\n    return NULL;\n}\n\nvoid* CoreDockSetProcessImage(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetProcessImage called\");\n    return NULL;\n}\n\nvoid* CoreDockSetProcessLabel(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetProcessLabel called\");\n    return NULL;\n}\n\nvoid* CoreDockSetProcessOpenRecents(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetProcessOpenRecents called\");\n    return NULL;\n}\n\nvoid* CoreDockSetShowDesktopCallback(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetShowDesktopCallback called\");\n    return NULL;\n}\n\nvoid* CoreDockSetSpringLoadingEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetSpringLoadingEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockSetSpringLoadingTime(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetSpringLoadingTime called\");\n    return NULL;\n}\n\nvoid* CoreDockSetSpringWindowCallbacks(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetSpringWindowCallbacks called\");\n    return NULL;\n}\n\nvoid* CoreDockSetTileSize(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetTileSize called\");\n    return NULL;\n}\n\nvoid* CoreDockSetTrashFull(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetTrashFull called\");\n    return NULL;\n}\n\nvoid* CoreDockSetWindowLabel(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetWindowLabel called\");\n    return NULL;\n}\n\nvoid* CoreDockSetWorkspacesAppBindings(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetWorkspacesAppBindings called\");\n    return NULL;\n}\n\nvoid* CoreDockSetWorkspacesCount(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetWorkspacesCount called\");\n    return NULL;\n}\n\nvoid* CoreDockSetWorkspacesEnabled(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetWorkspacesEnabled called\");\n    return NULL;\n}\n\nvoid* CoreDockSetWorkspacesKeyBindings(void)\n{\n    if (verbose) puts(\"STUB: CoreDockSetWorkspacesKeyBindings called\");\n    return NULL;\n}\n\nvoid* CoreDockUpdateWindow(void)\n{\n    if (verbose) puts(\"STUB: CoreDockUpdateWindow called\");\n    return NULL;\n}\n\nvoid* CoreDragCancelDrag(void)\n{\n    if (verbose) puts(\"STUB: CoreDragCancelDrag called\");\n    return NULL;\n}\n\nvoid* CoreDragChangeBehaviors(void)\n{\n    if (verbose) puts(\"STUB: CoreDragChangeBehaviors called\");\n    return NULL;\n}\n\nvoid* CoreDragCleanDragState(void)\n{\n    if (verbose) puts(\"STUB: CoreDragCleanDragState called\");\n    return NULL;\n}\n\nvoid* CoreDragClearAllImageOverrides(void)\n{\n    if (verbose) puts(\"STUB: CoreDragClearAllImageOverrides called\");\n    return NULL;\n}\n\nvoid* CoreDragCopyTrashLabel(void)\n{\n    if (verbose) puts(\"STUB: CoreDragCopyTrashLabel called\");\n    return NULL;\n}\n\nvoid* CoreDragCreate(void)\n{\n    if (verbose) puts(\"STUB: CoreDragCreate called\");\n    return NULL;\n}\n\nvoid* CoreDragCreateWithPasteboard(void)\n{\n    if (verbose) puts(\"STUB: CoreDragCreateWithPasteboard called\");\n    return NULL;\n}\n\nvoid* CoreDragCreateWithPasteboardRef(void)\n{\n    if (verbose) puts(\"STUB: CoreDragCreateWithPasteboardRef called\");\n    return NULL;\n}\n\nvoid* CoreDragDispose(void)\n{\n    if (verbose) puts(\"STUB: CoreDragDispose called\");\n    return NULL;\n}\n\nvoid* CoreDragEnableSpringLoading(void)\n{\n    if (verbose) puts(\"STUB: CoreDragEnableSpringLoading called\");\n    return NULL;\n}\n\nvoid* CoreDragGetAllowableActions(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetAllowableActions called\");\n    return NULL;\n}\n\nvoid* CoreDragGetAttributes(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetAttributes called\");\n    return NULL;\n}\n\nvoid* CoreDragGetCurrentDrag(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetCurrentDrag called\");\n    return NULL;\n}\n\nvoid* CoreDragGetDragWindow(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetDragWindow called\");\n    return NULL;\n}\n\nvoid* CoreDragGetDropActions(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetDropActions called\");\n    return NULL;\n}\n\nvoid* CoreDragGetDropLocation(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetDropLocation called\");\n    return NULL;\n}\n\nvoid* CoreDragGetForce(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetForce called\");\n    return NULL;\n}\n\nvoid* CoreDragGetForceStage(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetForceStage called\");\n    return NULL;\n}\n\nvoid* CoreDragGetItemBounds(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetItemBounds called\");\n    return NULL;\n}\n\nvoid* CoreDragGetModifiers(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetModifiers called\");\n    return NULL;\n}\n\nvoid* CoreDragGetMouseLocation(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetMouseLocation called\");\n    return NULL;\n}\n\nvoid* CoreDragGetOrigin(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetOrigin called\");\n    return NULL;\n}\n\nvoid* CoreDragGetPasteboard(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetPasteboard called\");\n    return NULL;\n}\n\nvoid* CoreDragGetPasteboardRef(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetPasteboardRef called\");\n    return NULL;\n}\n\nvoid* CoreDragGetSpringLoadingAttributes(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetSpringLoadingAttributes called\");\n    return NULL;\n}\n\nvoid* CoreDragGetStandardDropLocation(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetStandardDropLocation called\");\n    return NULL;\n}\n\nvoid* CoreDragGetValueForKey(void)\n{\n    if (verbose) puts(\"STUB: CoreDragGetValueForKey called\");\n    return NULL;\n}\n\nvoid* CoreDragHasImageOverrides(void)\n{\n    if (verbose) puts(\"STUB: CoreDragHasImageOverrides called\");\n    return NULL;\n}\n\nvoid* CoreDragInstallContextReceiveMessageHandlerOnConnection(void)\n{\n    if (verbose) puts(\"STUB: CoreDragInstallContextReceiveMessageHandlerOnConnection called\");\n    return NULL;\n}\n\nvoid* CoreDragInstallContextTrackingHandlerOnConnection(void)\n{\n    if (verbose) puts(\"STUB: CoreDragInstallContextTrackingHandlerOnConnection called\");\n    return NULL;\n}\n\nvoid* CoreDragInstallReceiveHandler(void)\n{\n    if (verbose) puts(\"STUB: CoreDragInstallReceiveHandler called\");\n    return NULL;\n}\n\nvoid* CoreDragInstallReceiveHandlerOnConnection(void)\n{\n    if (verbose) puts(\"STUB: CoreDragInstallReceiveHandlerOnConnection called\");\n    return NULL;\n}\n\nvoid* CoreDragInstallReceiveMessageHandler(void)\n{\n    if (verbose) puts(\"STUB: CoreDragInstallReceiveMessageHandler called\");\n    return NULL;\n}\n\nvoid* CoreDragInstallReceiveMessageHandlerOnConnection(void)\n{\n    if (verbose) puts(\"STUB: CoreDragInstallReceiveMessageHandlerOnConnection called\");\n    return NULL;\n}\n\nvoid* CoreDragInstallTrackingHandler(void)\n{\n    if (verbose) puts(\"STUB: CoreDragInstallTrackingHandler called\");\n    return NULL;\n}\n\nvoid* CoreDragInstallTrackingHandlerOnConnection(void)\n{\n    if (verbose) puts(\"STUB: CoreDragInstallTrackingHandlerOnConnection called\");\n    return NULL;\n}\n\nvoid* CoreDragIsTrashLabelSet(void)\n{\n    if (verbose) puts(\"STUB: CoreDragIsTrashLabelSet called\");\n    return NULL;\n}\n\nvoid* CoreDragItemGetImageComponents(void)\n{\n    if (verbose) puts(\"STUB: CoreDragItemGetImageComponents called\");\n    return NULL;\n}\n\nvoid* CoreDragItemGetScreenFrame(void)\n{\n    if (verbose) puts(\"STUB: CoreDragItemGetScreenFrame called\");\n    return NULL;\n}\n\nvoid* CoreDragItemHasAlternate(void)\n{\n    if (verbose) puts(\"STUB: CoreDragItemHasAlternate called\");\n    return NULL;\n}\n\nvoid* CoreDragItemSetCGImage(void)\n{\n    if (verbose) puts(\"STUB: CoreDragItemSetCGImage called\");\n    return NULL;\n}\n\nvoid* CoreDragItemSetImage(void)\n{\n    if (verbose) puts(\"STUB: CoreDragItemSetImage called\");\n    return NULL;\n}\n\nvoid* CoreDragItemSetImageComponents(void)\n{\n    if (verbose) puts(\"STUB: CoreDragItemSetImageComponents called\");\n    return NULL;\n}\n\nvoid* CoreDragRefSetImageDataForItem(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRefSetImageDataForItem called\");\n    return NULL;\n}\n\nvoid* CoreDragRegisterClient(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRegisterClient called\");\n    return NULL;\n}\n\nvoid* CoreDragRegisterClientInModes(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRegisterClientInModes called\");\n    return NULL;\n}\n\nvoid* CoreDragRegisterClientWithOptions(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRegisterClientWithOptions called\");\n    return NULL;\n}\n\nvoid* CoreDragReleaseImageData(void)\n{\n    if (verbose) puts(\"STUB: CoreDragReleaseImageData called\");\n    return NULL;\n}\n\nvoid* CoreDragRemoveReceiveHandler(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRemoveReceiveHandler called\");\n    return NULL;\n}\n\nvoid* CoreDragRemoveReceiveHandlerOnConnection(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRemoveReceiveHandlerOnConnection called\");\n    return NULL;\n}\n\nvoid* CoreDragRemoveReceiveMessageHandler(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRemoveReceiveMessageHandler called\");\n    return NULL;\n}\n\nvoid* CoreDragRemoveReceiveMessageHandlerOnConnection(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRemoveReceiveMessageHandlerOnConnection called\");\n    return NULL;\n}\n\nvoid* CoreDragRemoveTrackingHandler(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRemoveTrackingHandler called\");\n    return NULL;\n}\n\nvoid* CoreDragRemoveTrackingHandlerOnConnection(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRemoveTrackingHandlerOnConnection called\");\n    return NULL;\n}\n\nvoid* CoreDragRequestDragCompleteMessage(void)\n{\n    if (verbose) puts(\"STUB: CoreDragRequestDragCompleteMessage called\");\n    return NULL;\n}\n\nvoid* CoreDragSetAllowableActions(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetAllowableActions called\");\n    return NULL;\n}\n\nvoid* CoreDragSetAttribute(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetAttribute called\");\n    return NULL;\n}\n\nvoid* CoreDragSetCGEventInputProc(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetCGEventInputProc called\");\n    return NULL;\n}\n\nvoid* CoreDragSetCGEventProcs(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetCGEventProcs called\");\n    return NULL;\n}\n\nvoid* CoreDragSetCGImage(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetCGImage called\");\n    return NULL;\n}\n\nvoid* CoreDragSetCGImageWithScale(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetCGImageWithScale called\");\n    return NULL;\n}\n\nvoid* CoreDragSetDestClippingRect(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetDestClippingRect called\");\n    return NULL;\n}\n\nvoid* CoreDragSetDragRegion(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetDragRegion called\");\n    return NULL;\n}\n\nvoid* CoreDragSetDragRegionWithScale(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetDragRegionWithScale called\");\n    return NULL;\n}\n\nvoid* CoreDragSetDragWindow(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetDragWindow called\");\n    return NULL;\n}\n\nvoid* CoreDragSetDropActions(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetDropActions called\");\n    return NULL;\n}\n\nvoid* CoreDragSetDropLocation(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetDropLocation called\");\n    return NULL;\n}\n\nvoid* CoreDragSetEventProc(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetEventProc called\");\n    return NULL;\n}\n\nvoid* CoreDragSetExtendedEventProc(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetExtendedEventProc called\");\n    return NULL;\n}\n\nvoid* CoreDragSetImage(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetImage called\");\n    return NULL;\n}\n\nvoid* CoreDragSetImageOptions(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetImageOptions called\");\n    return NULL;\n}\n\nvoid* CoreDragSetInputProc(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetInputProc called\");\n    return NULL;\n}\n\nvoid* CoreDragSetItemBounds(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetItemBounds called\");\n    return NULL;\n}\n\nvoid* CoreDragSetMouseLocation(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetMouseLocation called\");\n    return NULL;\n}\n\nvoid* CoreDragSetOrigin(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetOrigin called\");\n    return NULL;\n}\n\nvoid* CoreDragSetRootCALayer(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetRootCALayer called\");\n    return NULL;\n}\n\nvoid* CoreDragSetSourceClippingRect(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetSourceClippingRect called\");\n    return NULL;\n}\n\nvoid* CoreDragSetStandardDropLocation(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetStandardDropLocation called\");\n    return NULL;\n}\n\nvoid* CoreDragSetTrashDrawProc(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetTrashDrawProc called\");\n    return NULL;\n}\n\nvoid* CoreDragSetTrashLabel(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetTrashLabel called\");\n    return NULL;\n}\n\nvoid* CoreDragSetValueForKey(void)\n{\n    if (verbose) puts(\"STUB: CoreDragSetValueForKey called\");\n    return NULL;\n}\n\nvoid* CoreDragStartDragging(void)\n{\n    if (verbose) puts(\"STUB: CoreDragStartDragging called\");\n    return NULL;\n}\n\nvoid* CoreDragUpdatesBegin(void)\n{\n    if (verbose) puts(\"STUB: CoreDragUpdatesBegin called\");\n    return NULL;\n}\n\nvoid* CoreDragUpdatesCommit(void)\n{\n    if (verbose) puts(\"STUB: CoreDragUpdatesCommit called\");\n    return NULL;\n}\n\nvoid* CoreGetDragInfo(void)\n{\n    if (verbose) puts(\"STUB: CoreGetDragInfo called\");\n    return NULL;\n}\n\nvoid* CoreImagingCreateImage(void)\n{\n    if (verbose) puts(\"STUB: CoreImagingCreateImage called\");\n    return NULL;\n}\n\nvoid* CoreMenuCreateKeyEquivalentString(void)\n{\n    if (verbose) puts(\"STUB: CoreMenuCreateKeyEquivalentString called\");\n    return NULL;\n}\n\nvoid* CoreMenuCreateVirtualKeyString(void)\n{\n    if (verbose) puts(\"STUB: CoreMenuCreateVirtualKeyString called\");\n    return NULL;\n}\n\nvoid* CoreMenuExtraAddMenuExtra(void)\n{\n    if (verbose) puts(\"STUB: CoreMenuExtraAddMenuExtra called\");\n    return NULL;\n}\n\nvoid* CoreMenuExtraGetMenuExtra(void)\n{\n    if (verbose) puts(\"STUB: CoreMenuExtraGetMenuExtra called\");\n    return NULL;\n}\n\nvoid* CoreMenuExtraRemoveMenuExtra(void)\n{\n    if (verbose) puts(\"STUB: CoreMenuExtraRemoveMenuExtra called\");\n    return NULL;\n}\n\nvoid* CoreMenuGetVirtualKeyMap(void)\n{\n    if (verbose) puts(\"STUB: CoreMenuGetVirtualKeyMap called\");\n    return NULL;\n}\n\nvoid* CreatePasteboardFlavorTypeName(void)\n{\n    if (verbose) puts(\"STUB: CreatePasteboardFlavorTypeName called\");\n    return NULL;\n}\n\nvoid* DesktopPictureCopyDisplay(void)\n{\n    if (verbose) puts(\"STUB: DesktopPictureCopyDisplay called\");\n    return NULL;\n}\n\nvoid* DesktopPictureCopyDisplayForSpace(void)\n{\n    if (verbose) puts(\"STUB: DesktopPictureCopyDisplayForSpace called\");\n    return NULL;\n}\n\nvoid* DesktopPictureCopyValue(void)\n{\n    if (verbose) puts(\"STUB: DesktopPictureCopyValue called\");\n    return NULL;\n}\n\nvoid* DesktopPictureSetDisplay(void)\n{\n    if (verbose) puts(\"STUB: DesktopPictureSetDisplay called\");\n    return NULL;\n}\n\nvoid* DesktopPictureSetDisplayForSpace(void)\n{\n    if (verbose) puts(\"STUB: DesktopPictureSetDisplayForSpace called\");\n    return NULL;\n}\n\nvoid* DesktopPictureSetValue(void)\n{\n    if (verbose) puts(\"STUB: DesktopPictureSetValue called\");\n    return NULL;\n}\n\nvoid* GetGlobalIconImagesCacheMaxEntriesAndMaxDataSize(void)\n{\n    if (verbose) puts(\"STUB: GetGlobalIconImagesCacheMaxEntriesAndMaxDataSize called\");\n    return NULL;\n}\n\nvoid* GetIconFamilyData(void)\n{\n    if (verbose) puts(\"STUB: GetIconFamilyData called\");\n    return NULL;\n}\n\nvoid* GetIconRefVariant(void)\n{\n    if (verbose) puts(\"STUB: GetIconRefVariant called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_CFNotificationCenterPostNotification(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_CFNotificationCenterPostNotification called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_CFPreferencesCopyValue(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_CFPreferencesCopyValue called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_CFPreferencesSetValue(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_CFPreferencesSetValue called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_CFPreferencesSynchronize(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_CFPreferencesSynchronize called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_CopyMacManagerPrefs(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_CopyMacManagerPrefs called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_GetCapsLockModifierState(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_GetCapsLockModifierState called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_PostDeleteKeyEvent(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_PostDeleteKeyEvent called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_RevealFileInFinder(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_RevealFileInFinder called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_SendAppleEventToSystemProcess(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_SendAppleEventToSystemProcess called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_SetCapsLockDelayOverride(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_SetCapsLockDelayOverride called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_SetCapsLockLED(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_SetCapsLockLED called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_SetCapsLockLEDInhibit(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_SetCapsLockLEDInhibit called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_SetCapsLockModifierState(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_SetCapsLockModifierState called\");\n    return NULL;\n}\n\nvoid* HIS_XPC_SetNetworkLocation(void)\n{\n    if (verbose) puts(\"STUB: HIS_XPC_SetNetworkLocation called\");\n    return NULL;\n}\n\nvoid* HIShapeContainsPoint(void)\n{\n    if (verbose) puts(\"STUB: HIShapeContainsPoint called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateCopy(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateCopy called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateCopyAsQDRgn(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateCopyAsQDRgn called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateDifference(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateDifference called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateEmpty(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateEmpty called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateIntersection(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateIntersection called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateMutable(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateMutable called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateMutableCopy(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateMutableCopy called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateMutableWithRect(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateMutableWithRect called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateUnion(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateUnion called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateWithQDRgn(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateWithQDRgn called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateWithRect(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateWithRect called\");\n    return NULL;\n}\n\nvoid* HIShapeCreateXor(void)\n{\n    if (verbose) puts(\"STUB: HIShapeCreateXor called\");\n    return NULL;\n}\n\nvoid* HIShapeDifference(void)\n{\n    if (verbose) puts(\"STUB: HIShapeDifference called\");\n    return NULL;\n}\n\nvoid* HIShapeEnumerate(void)\n{\n    if (verbose) puts(\"STUB: HIShapeEnumerate called\");\n    return NULL;\n}\n\nvoid* HIShapeGetAsQDRgn(void)\n{\n    if (verbose) puts(\"STUB: HIShapeGetAsQDRgn called\");\n    return NULL;\n}\n\nvoid* HIShapeGetBounds(void)\n{\n    if (verbose) puts(\"STUB: HIShapeGetBounds called\");\n    return NULL;\n}\n\nvoid* HIShapeGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: HIShapeGetTypeID called\");\n    return NULL;\n}\n\nvoid* HIShapeInset(void)\n{\n    if (verbose) puts(\"STUB: HIShapeInset called\");\n    return NULL;\n}\n\nvoid* HIShapeIntersect(void)\n{\n    if (verbose) puts(\"STUB: HIShapeIntersect called\");\n    return NULL;\n}\n\nvoid* HIShapeIntersectsRect(void)\n{\n    if (verbose) puts(\"STUB: HIShapeIntersectsRect called\");\n    return NULL;\n}\n\nvoid* HIShapeIsEmpty(void)\n{\n    if (verbose) puts(\"STUB: HIShapeIsEmpty called\");\n    return NULL;\n}\n\nvoid* HIShapeIsRectangular(void)\n{\n    if (verbose) puts(\"STUB: HIShapeIsRectangular called\");\n    return NULL;\n}\n\nvoid* HIShapeOffset(void)\n{\n    if (verbose) puts(\"STUB: HIShapeOffset called\");\n    return NULL;\n}\n\nvoid* HIShapeReplacePathInCGContext(void)\n{\n    if (verbose) puts(\"STUB: HIShapeReplacePathInCGContext called\");\n    return NULL;\n}\n\nvoid* HIShapeSetEmpty(void)\n{\n    if (verbose) puts(\"STUB: HIShapeSetEmpty called\");\n    return NULL;\n}\n\nvoid* HIShapeSetWithShape(void)\n{\n    if (verbose) puts(\"STUB: HIShapeSetWithShape called\");\n    return NULL;\n}\n\nvoid* HIShapeUnion(void)\n{\n    if (verbose) puts(\"STUB: HIShapeUnion called\");\n    return NULL;\n}\n\nvoid* HIShapeUnionWithRect(void)\n{\n    if (verbose) puts(\"STUB: HIShapeUnionWithRect called\");\n    return NULL;\n}\n\nvoid* HIShapeXor(void)\n{\n    if (verbose) puts(\"STUB: HIShapeXor called\");\n    return NULL;\n}\n\nvoid* ICAddMapEntry(void)\n{\n    if (verbose) puts(\"STUB: ICAddMapEntry called\");\n    return NULL;\n}\n\nvoid* ICAddProfile(void)\n{\n    if (verbose) puts(\"STUB: ICAddProfile called\");\n    return NULL;\n}\n\nvoid* ICBegin(void)\n{\n    if (verbose) puts(\"STUB: ICBegin called\");\n    return NULL;\n}\n\nvoid* ICCountMapEntries(void)\n{\n    if (verbose) puts(\"STUB: ICCountMapEntries called\");\n    return NULL;\n}\n\nvoid* ICCountPref(void)\n{\n    if (verbose) puts(\"STUB: ICCountPref called\");\n    return NULL;\n}\n\nvoid* ICCountProfiles(void)\n{\n    if (verbose) puts(\"STUB: ICCountProfiles called\");\n    return NULL;\n}\n\nvoid* ICCreateGURLEvent(void)\n{\n    if (verbose) puts(\"STUB: ICCreateGURLEvent called\");\n    return NULL;\n}\n\nvoid* ICDeleteMapEntry(void)\n{\n    if (verbose) puts(\"STUB: ICDeleteMapEntry called\");\n    return NULL;\n}\n\nvoid* ICDeletePref(void)\n{\n    if (verbose) puts(\"STUB: ICDeletePref called\");\n    return NULL;\n}\n\nvoid* ICDeleteProfile(void)\n{\n    if (verbose) puts(\"STUB: ICDeleteProfile called\");\n    return NULL;\n}\n\nvoid* ICEditPreferences(void)\n{\n    if (verbose) puts(\"STUB: ICEditPreferences called\");\n    return NULL;\n}\n\nvoid* ICEnd(void)\n{\n    if (verbose) puts(\"STUB: ICEnd called\");\n    return NULL;\n}\n\nvoid* ICFindPrefHandle(void)\n{\n    if (verbose) puts(\"STUB: ICFindPrefHandle called\");\n    return NULL;\n}\n\nvoid* ICGetConfigName(void)\n{\n    if (verbose) puts(\"STUB: ICGetConfigName called\");\n    return NULL;\n}\n\nvoid* ICGetCurrentProfile(void)\n{\n    if (verbose) puts(\"STUB: ICGetCurrentProfile called\");\n    return NULL;\n}\n\nvoid* ICGetDefaultPref(void)\n{\n    if (verbose) puts(\"STUB: ICGetDefaultPref called\");\n    return NULL;\n}\n\nvoid* ICGetIndMapEntry(void)\n{\n    if (verbose) puts(\"STUB: ICGetIndMapEntry called\");\n    return NULL;\n}\n\nvoid* ICGetIndPref(void)\n{\n    if (verbose) puts(\"STUB: ICGetIndPref called\");\n    return NULL;\n}\n\nvoid* ICGetIndProfile(void)\n{\n    if (verbose) puts(\"STUB: ICGetIndProfile called\");\n    return NULL;\n}\n\nvoid* ICGetMapEntry(void)\n{\n    if (verbose) puts(\"STUB: ICGetMapEntry called\");\n    return NULL;\n}\n\nvoid* ICGetPerm(void)\n{\n    if (verbose) puts(\"STUB: ICGetPerm called\");\n    return NULL;\n}\n\nvoid* ICGetPref(void)\n{\n    if (verbose) puts(\"STUB: ICGetPref called\");\n    return NULL;\n}\n\nvoid* ICGetPrefHandle(void)\n{\n    if (verbose) puts(\"STUB: ICGetPrefHandle called\");\n    return NULL;\n}\n\nvoid* ICGetProfileName(void)\n{\n    if (verbose) puts(\"STUB: ICGetProfileName called\");\n    return NULL;\n}\n\nvoid* ICGetSeed(void)\n{\n    if (verbose) puts(\"STUB: ICGetSeed called\");\n    return NULL;\n}\n\nvoid* ICGetVersion(void)\n{\n    if (verbose) puts(\"STUB: ICGetVersion called\");\n    return NULL;\n}\n\nvoid* ICLaunchURL(void)\n{\n    if (verbose) puts(\"STUB: ICLaunchURL called\");\n    return NULL;\n}\n\nvoid* ICMapEntriesFilename(void)\n{\n    if (verbose) puts(\"STUB: ICMapEntriesFilename called\");\n    return NULL;\n}\n\nvoid* ICMapEntriesTypeCreator(void)\n{\n    if (verbose) puts(\"STUB: ICMapEntriesTypeCreator called\");\n    return NULL;\n}\n\nvoid* ICMapFilename(void)\n{\n    if (verbose) puts(\"STUB: ICMapFilename called\");\n    return NULL;\n}\n\nvoid* ICMapTypeCreator(void)\n{\n    if (verbose) puts(\"STUB: ICMapTypeCreator called\");\n    return NULL;\n}\n\nvoid* ICParseURL(void)\n{\n    if (verbose) puts(\"STUB: ICParseURL called\");\n    return NULL;\n}\n\nvoid* ICSendGURLEvent(void)\n{\n    if (verbose) puts(\"STUB: ICSendGURLEvent called\");\n    return NULL;\n}\n\nvoid* ICSetCurrentProfile(void)\n{\n    if (verbose) puts(\"STUB: ICSetCurrentProfile called\");\n    return NULL;\n}\n\nvoid* ICSetMapEntry(void)\n{\n    if (verbose) puts(\"STUB: ICSetMapEntry called\");\n    return NULL;\n}\n\nvoid* ICSetPref(void)\n{\n    if (verbose) puts(\"STUB: ICSetPref called\");\n    return NULL;\n}\n\nvoid* ICSetPrefHandle(void)\n{\n    if (verbose) puts(\"STUB: ICSetPrefHandle called\");\n    return NULL;\n}\n\nvoid* ICSetProfileName(void)\n{\n    if (verbose) puts(\"STUB: ICSetProfileName called\");\n    return NULL;\n}\n\nvoid* ICStart(void)\n{\n    if (verbose) puts(\"STUB: ICStart called\");\n    return NULL;\n}\n\nvoid* ICStop(void)\n{\n    if (verbose) puts(\"STUB: ICStop called\");\n    return NULL;\n}\n\nvoid* IconRefContainsCGPoint(void)\n{\n    if (verbose) puts(\"STUB: IconRefContainsCGPoint called\");\n    return NULL;\n}\n\nvoid* IconRefIntersectsCGRect(void)\n{\n    if (verbose) puts(\"STUB: IconRefIntersectsCGRect called\");\n    return NULL;\n}\n\nvoid* IconRefToHIShape(void)\n{\n    if (verbose) puts(\"STUB: IconRefToHIShape called\");\n    return NULL;\n}\n\nvoid* IconRefToIconFamily(void)\n{\n    if (verbose) puts(\"STUB: IconRefToIconFamily called\");\n    return NULL;\n}\n\nvoid* IsIconRefMaskEmpty(void)\n{\n    if (verbose) puts(\"STUB: IsIconRefMaskEmpty called\");\n    return NULL;\n}\n\nvoid* IsProcessManagerInitialized(void)\n{\n    if (verbose) puts(\"STUB: IsProcessManagerInitialized called\");\n    return NULL;\n}\n\nvoid* LaunchProcess(void)\n{\n    if (verbose) puts(\"STUB: LaunchProcess called\");\n    return NULL;\n}\n\nvoid* LaunchProcessAsync(void)\n{\n    if (verbose) puts(\"STUB: LaunchProcessAsync called\");\n    return NULL;\n}\n\nvoid* MSHCreateMIGServerSource(void)\n{\n    if (verbose) puts(\"STUB: MSHCreateMIGServerSource called\");\n    return NULL;\n}\n\nvoid* MSHCreateMachServerSource(void)\n{\n    if (verbose) puts(\"STUB: MSHCreateMachServerSource called\");\n    return NULL;\n}\n\nvoid* MSHGetMachPortFromSource(void)\n{\n    if (verbose) puts(\"STUB: MSHGetMachPortFromSource called\");\n    return NULL;\n}\n\nvoid* MSHMIGSourceSetNoSendersCallback(void)\n{\n    if (verbose) puts(\"STUB: MSHMIGSourceSetNoSendersCallback called\");\n    return NULL;\n}\n\nvoid* MSHMIGSourceSetSendOnceCallback(void)\n{\n    if (verbose) puts(\"STUB: MSHMIGSourceSetSendOnceCallback called\");\n    return NULL;\n}\n\nvoid* PasteboardClear(void)\n{\n    if (verbose) puts(\"STUB: PasteboardClear called\");\n    return NULL;\n}\n\nvoid* PasteboardCopyItemFlavorData(void)\n{\n    if (verbose) puts(\"STUB: PasteboardCopyItemFlavorData called\");\n    return NULL;\n}\n\nvoid* PasteboardCopyItemFlavors(void)\n{\n    if (verbose) puts(\"STUB: PasteboardCopyItemFlavors called\");\n    return NULL;\n}\n\nvoid* PasteboardCopyName(void)\n{\n    if (verbose) puts(\"STUB: PasteboardCopyName called\");\n    return NULL;\n}\n\nvoid* PasteboardCopyPasteLocation(void)\n{\n    if (verbose) puts(\"STUB: PasteboardCopyPasteLocation called\");\n    return NULL;\n}\n\nvoid* PasteboardCreate(void)\n{\n    if (verbose) puts(\"STUB: PasteboardCreate called\");\n    return NULL;\n}\n\nvoid* PasteboardGetCFPasteboard(void)\n{\n    if (verbose) puts(\"STUB: PasteboardGetCFPasteboard called\");\n    return NULL;\n}\n\nvoid* PasteboardGetItemCount(void)\n{\n    if (verbose) puts(\"STUB: PasteboardGetItemCount called\");\n    return NULL;\n}\n\nvoid* PasteboardGetItemFlavorFlags(void)\n{\n    if (verbose) puts(\"STUB: PasteboardGetItemFlavorFlags called\");\n    return NULL;\n}\n\nvoid* PasteboardGetItemIdentifier(void)\n{\n    if (verbose) puts(\"STUB: PasteboardGetItemIdentifier called\");\n    return NULL;\n}\n\nvoid* PasteboardGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: PasteboardGetTypeID called\");\n    return NULL;\n}\n\nvoid* PasteboardPutItemFlavor(void)\n{\n    if (verbose) puts(\"STUB: PasteboardPutItemFlavor called\");\n    return NULL;\n}\n\nvoid* PasteboardResolvePromises(void)\n{\n    if (verbose) puts(\"STUB: PasteboardResolvePromises called\");\n    return NULL;\n}\n\nvoid* PasteboardSetPasteLocation(void)\n{\n    if (verbose) puts(\"STUB: PasteboardSetPasteLocation called\");\n    return NULL;\n}\n\nvoid* PasteboardSetPromiseKeeper(void)\n{\n    if (verbose) puts(\"STUB: PasteboardSetPromiseKeeper called\");\n    return NULL;\n}\n\nvoid* PasteboardSynchronize(void)\n{\n    if (verbose) puts(\"STUB: PasteboardSynchronize called\");\n    return NULL;\n}\n\nvoid* PasteboardToggleDuplicateFlavorCheck(void)\n{\n    if (verbose) puts(\"STUB: PasteboardToggleDuplicateFlavorCheck called\");\n    return NULL;\n}\n\nvoid* PlotIconRefInContext(void)\n{\n    if (verbose) puts(\"STUB: PlotIconRefInContext called\");\n    return NULL;\n}\n\nvoid* SXArbitrationAddQueuedOutputRequest(void)\n{\n    if (verbose) puts(\"STUB: SXArbitrationAddQueuedOutputRequest called\");\n    return NULL;\n}\n\nvoid* SXArbitrationCancelQueuedRequest(void)\n{\n    if (verbose) puts(\"STUB: SXArbitrationCancelQueuedRequest called\");\n    return NULL;\n}\n\nvoid* SXArbitrationCreateServerSource(void)\n{\n    if (verbose) puts(\"STUB: SXArbitrationCreateServerSource called\");\n    return NULL;\n}\n\nvoid* SXArbitrationIsQueuedRequestPending(void)\n{\n    if (verbose) puts(\"STUB: SXArbitrationIsQueuedRequestPending called\");\n    return NULL;\n}\n\nvoid* SXArbitrationRegisterOutputStarting(void)\n{\n    if (verbose) puts(\"STUB: SXArbitrationRegisterOutputStarting called\");\n    return NULL;\n}\n\nvoid* SXArbitrationRegisterOutputStopped(void)\n{\n    if (verbose) puts(\"STUB: SXArbitrationRegisterOutputStopped called\");\n    return NULL;\n}\n\nvoid* SerializeCFType(void)\n{\n    if (verbose) puts(\"STUB: SerializeCFType called\");\n    return NULL;\n}\n\nvoid* SetGlobalIconImagesCacheMaxEntriesAndMaxDataSize(void)\n{\n    if (verbose) puts(\"STUB: SetGlobalIconImagesCacheMaxEntriesAndMaxDataSize called\");\n    return NULL;\n}\n\nvoid* SetIconFamilyData(void)\n{\n    if (verbose) puts(\"STUB: SetIconFamilyData called\");\n    return NULL;\n}\n\nvoid* SetLabelColorAndName(void)\n{\n    if (verbose) puts(\"STUB: SetLabelColorAndName called\");\n    return NULL;\n}\n\nvoid* ShowHideDrag(void)\n{\n    if (verbose) puts(\"STUB: ShowHideDrag called\");\n    return NULL;\n}\n\nvoid* StartIPCPing(void)\n{\n    if (verbose) puts(\"STUB: StartIPCPing called\");\n    return NULL;\n}\n\nvoid* TranslationCopyDestinationType(void)\n{\n    if (verbose) puts(\"STUB: TranslationCopyDestinationType called\");\n    return NULL;\n}\n\nvoid* TranslationCopySourceType(void)\n{\n    if (verbose) puts(\"STUB: TranslationCopySourceType called\");\n    return NULL;\n}\n\nvoid* TranslationCreate(void)\n{\n    if (verbose) puts(\"STUB: TranslationCreate called\");\n    return NULL;\n}\n\nvoid* TranslationCreateWithSourceArray(void)\n{\n    if (verbose) puts(\"STUB: TranslationCreateWithSourceArray called\");\n    return NULL;\n}\n\nvoid* TranslationGetTranslationFlags(void)\n{\n    if (verbose) puts(\"STUB: TranslationGetTranslationFlags called\");\n    return NULL;\n}\n\nvoid* TranslationGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: TranslationGetTypeID called\");\n    return NULL;\n}\n\nvoid* TranslationPerformForData(void)\n{\n    if (verbose) puts(\"STUB: TranslationPerformForData called\");\n    return NULL;\n}\n\nvoid* TranslationPerformForFile(void)\n{\n    if (verbose) puts(\"STUB: TranslationPerformForFile called\");\n    return NULL;\n}\n\nvoid* TranslationPerformForURL(void)\n{\n    if (verbose) puts(\"STUB: TranslationPerformForURL called\");\n    return NULL;\n}\n\nvoid* UAZoomChangeFocus(void)\n{\n    if (verbose) puts(\"STUB: UAZoomChangeFocus called\");\n    return NULL;\n}\n\nvoid* UAZoomEnabled(void)\n{\n    if (verbose) puts(\"STUB: UAZoomEnabled called\");\n    return NULL;\n}\n\nvoid* UnserializeCFType(void)\n{\n    if (verbose) puts(\"STUB: UnserializeCFType called\");\n    return NULL;\n}\n\nvoid* _AXCopyActionDescription(void)\n{\n    if (verbose) puts(\"STUB: _AXCopyActionDescription called\");\n    return NULL;\n}\n\nvoid* _AXCopyChildrenHash(void)\n{\n    if (verbose) puts(\"STUB: _AXCopyChildrenHash called\");\n    return NULL;\n}\n\nvoid* _AXCopyRoleDescription(void)\n{\n    if (verbose) puts(\"STUB: _AXCopyRoleDescription called\");\n    return NULL;\n}\n\nvoid* _AXCopyRoleDescriptionWithSubrole(void)\n{\n    if (verbose) puts(\"STUB: _AXCopyRoleDescriptionWithSubrole called\");\n    return NULL;\n}\n\nvoid* _AXCopyTitle(void)\n{\n    if (verbose) puts(\"STUB: _AXCopyTitle called\");\n    return NULL;\n}\n\nvoid* _AXCreateElementOrdering(void)\n{\n    if (verbose) puts(\"STUB: _AXCreateElementOrdering called\");\n    return NULL;\n}\n\nvoid* _AXCurrentRequestCanReturnInspectionContent(void)\n{\n    if (verbose) puts(\"STUB: _AXCurrentRequestCanReturnInspectionContent called\");\n    return NULL;\n}\n\nvoid* _AXCurrentRequestCanReturnProtectedContent(void)\n{\n    if (verbose) puts(\"STUB: _AXCurrentRequestCanReturnProtectedContent called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceGetBristolEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceGetBristolEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceGetDifferentiateWithoutColorEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceGetDifferentiateWithoutColorEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceGetIncreaseContrastEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceGetIncreaseContrastEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceGetReduceMotionEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceGetReduceMotionEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceGetReduceTransparencyEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceGetReduceTransparencyEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceGetRichmondEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceGetRichmondEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceSetBristolEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceSetBristolEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceSetDifferentiateWithoutColorEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceSetDifferentiateWithoutColorEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceSetIncreaseContrastEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceSetIncreaseContrastEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceSetIncreaseContrastEnabledOverride(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceSetIncreaseContrastEnabledOverride called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceSetReduceMotionEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceSetReduceMotionEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceSetReduceTransparencyEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceSetReduceTransparencyEnabled called\");\n    return NULL;\n}\n\nvoid* _AXInterfaceSetRichmondEnabled(void)\n{\n    if (verbose) puts(\"STUB: _AXInterfaceSetRichmondEnabled called\");\n    return NULL;\n}\n\nvoid* _AXRegisterControlComputerAccess(void)\n{\n    if (verbose) puts(\"STUB: _AXRegisterControlComputerAccess called\");\n    return NULL;\n}\n\nvoid* _AXShouldElementBeIgnoredForNavigation(void)\n{\n    if (verbose) puts(\"STUB: _AXShouldElementBeIgnoredForNavigation called\");\n    return NULL;\n}\n\nvoid* _AXUIElementCopyElementAtPositionIncludeIgnored(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementCopyElementAtPositionIncludeIgnored called\");\n    return NULL;\n}\n\nvoid* _AXUIElementCreateApplicationWithPresenterPid(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementCreateApplicationWithPresenterPid called\");\n    return NULL;\n}\n\nvoid* _AXUIElementCreateWithData(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementCreateWithData called\");\n    return NULL;\n}\n\nvoid* _AXUIElementCreateWithDataAndPid(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementCreateWithDataAndPid called\");\n    return NULL;\n}\n\nvoid* _AXUIElementCreateWithDataAndPresenterPid(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementCreateWithDataAndPresenterPid called\");\n    return NULL;\n}\n\nvoid* _AXUIElementCreateWithPtr(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementCreateWithPtr called\");\n    return NULL;\n}\n\nvoid* _AXUIElementCreateWithRemoteToken(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementCreateWithRemoteToken called\");\n    return NULL;\n}\n\nvoid* _AXUIElementGetActualPid(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementGetActualPid called\");\n    return NULL;\n}\n\nvoid* _AXUIElementGetData(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementGetData called\");\n    return NULL;\n}\n\nvoid* _AXUIElementGetIsProcessSuspended(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementGetIsProcessSuspended called\");\n    return NULL;\n}\n\nvoid* _AXUIElementGetWindow(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementGetWindow called\");\n    return NULL;\n}\n\nvoid* _AXUIElementNotifyProcessSuspendStatus(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementNotifyProcessSuspendStatus called\");\n    return NULL;\n}\n\nvoid* _AXUIElementPostNotification(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementPostNotification called\");\n    return NULL;\n}\n\nvoid* _AXUIElementPostNotificationForObservedElement(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementPostNotificationForObservedElement called\");\n    return NULL;\n}\n\nvoid* _AXUIElementPostNotificationWithInfo(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementPostNotificationWithInfo called\");\n    return NULL;\n}\n\nvoid* _AXUIElementRegisterServerWithRunLoop(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementRegisterServerWithRunLoop called\");\n    return NULL;\n}\n\nvoid* _AXUIElementRemoteTokenCreate(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementRemoteTokenCreate called\");\n    return NULL;\n}\n\nvoid* _AXUIElementUnregisterServer(void)\n{\n    if (verbose) puts(\"STUB: _AXUIElementUnregisterServer called\");\n    return NULL;\n}\n\nvoid* _AddLabelsChangedCallback(void)\n{\n    if (verbose) puts(\"STUB: _AddLabelsChangedCallback called\");\n    return NULL;\n}\n\nvoid* _CopyProcessBundleLocationURL(void)\n{\n    if (verbose) puts(\"STUB: _CopyProcessBundleLocationURL called\");\n    return NULL;\n}\n\nvoid* _GDBIconsCGCacheList(void)\n{\n    if (verbose) puts(\"STUB: _GDBIconsCGCacheList called\");\n    return NULL;\n}\n\nvoid* _GetApplicationDesiresAttention(void)\n{\n    if (verbose) puts(\"STUB: _GetApplicationDesiresAttention called\");\n    return NULL;\n}\n\nvoid* _GetFrontUIProcess(void)\n{\n    if (verbose) puts(\"STUB: _GetFrontUIProcess called\");\n    return NULL;\n}\n\nvoid* _HIShapeCreateWithCGImage(void)\n{\n    if (verbose) puts(\"STUB: _HIShapeCreateWithCGImage called\");\n    return NULL;\n}\n\nvoid* _HIShapeCreateWithCGSRegionObj(void)\n{\n    if (verbose) puts(\"STUB: _HIShapeCreateWithCGSRegionObj called\");\n    return NULL;\n}\n\nvoid* _HIShapeGetNative(void)\n{\n    if (verbose) puts(\"STUB: _HIShapeGetNative called\");\n    return NULL;\n}\n\nvoid* _HIShapeOutsetToPixelBoundary(void)\n{\n    if (verbose) puts(\"STUB: _HIShapeOutsetToPixelBoundary called\");\n    return NULL;\n}\n\nvoid* _HIShapeSetImmutable(void)\n{\n    if (verbose) puts(\"STUB: _HIShapeSetImmutable called\");\n    return NULL;\n}\n\nvoid* _HIShapeSetShapeWithOffset(void)\n{\n    if (verbose) puts(\"STUB: _HIShapeSetShapeWithOffset called\");\n    return NULL;\n}\n\nvoid* _HideOtherApplications(void)\n{\n    if (verbose) puts(\"STUB: _HideOtherApplications called\");\n    return NULL;\n}\n\nvoid* _ICCopyMailHostName(void)\n{\n    if (verbose) puts(\"STUB: _ICCopyMailHostName called\");\n    return NULL;\n}\n\nvoid* _ICCopyMailUserName(void)\n{\n    if (verbose) puts(\"STUB: _ICCopyMailUserName called\");\n    return NULL;\n}\n\nvoid* _ISCreateCGImageForType(void)\n{\n    if (verbose) puts(\"STUB: _ISCreateCGImageForType called\");\n    return NULL;\n}\n\nvoid* _ISCreateCGImageForTypeAtScale(void)\n{\n    if (verbose) puts(\"STUB: _ISCreateCGImageForTypeAtScale called\");\n    return NULL;\n}\n\nvoid* _IconServicesGetCGImageRefFromIconRef(void)\n{\n    if (verbose) puts(\"STUB: _IconServicesGetCGImageRefFromIconRef called\");\n    return NULL;\n}\n\nvoid* _IconServicesGetCGImageRefFromURL(void)\n{\n    if (verbose) puts(\"STUB: _IconServicesGetCGImageRefFromURL called\");\n    return NULL;\n}\n\nvoid* _InstallGURLEventHandler(void)\n{\n    if (verbose) puts(\"STUB: _InstallGURLEventHandler called\");\n    return NULL;\n}\n\nvoid* _PIPZoomingEnabled(void)\n{\n    if (verbose) puts(\"STUB: _PIPZoomingEnabled called\");\n    return NULL;\n}\n\nvoid* _RegisterApplication(void)\n{\n    if (verbose) puts(\"STUB: _RegisterApplication called\");\n    return NULL;\n}\n\nvoid* _RegisterAsSessionLauncherApplication(void)\n{\n    if (verbose) puts(\"STUB: _RegisterAsSessionLauncherApplication called\");\n    return NULL;\n}\n\nvoid* _RemoveLabelsChangedCallback(void)\n{\n    if (verbose) puts(\"STUB: _RemoveLabelsChangedCallback called\");\n    return NULL;\n}\n\nvoid* _SetApplicationDesiresAttention(void)\n{\n    if (verbose) puts(\"STUB: _SetApplicationDesiresAttention called\");\n    return NULL;\n}\n\nvoid* _SetFrontProcessWithOptions(void)\n{\n    if (verbose) puts(\"STUB: _SetFrontProcessWithOptions called\");\n    return NULL;\n}\n\nvoid* _SetHLTBWakeUpHook(void)\n{\n    if (verbose) puts(\"STUB: _SetHLTBWakeUpHook called\");\n    return NULL;\n}\n\nvoid* _ShowAllApplications(void)\n{\n    if (verbose) puts(\"STUB: _ShowAllApplications called\");\n    return NULL;\n}\n\nvoid* _SignalApplicationReady(void)\n{\n    if (verbose) puts(\"STUB: _SignalApplicationReady called\");\n    return NULL;\n}\n\nvoid* _UAZoomFocusChange(void)\n{\n    if (verbose) puts(\"STUB: _UAZoomFocusChange called\");\n    return NULL;\n}\n\nvoid* _UAZoomFocusChangeAnchored(void)\n{\n    if (verbose) puts(\"STUB: _UAZoomFocusChangeAnchored called\");\n    return NULL;\n}\n\nvoid* _UAZoomFocusChangeHighlightRect(void)\n{\n    if (verbose) puts(\"STUB: _UAZoomFocusChangeHighlightRect called\");\n    return NULL;\n}\n\nvoid* _UAZoomFocusChangeHighlightRectAnchored(void)\n{\n    if (verbose) puts(\"STUB: _UAZoomFocusChangeHighlightRectAnchored called\");\n    return NULL;\n}\n\nvoid* _UAZoomingEnabled(void)\n{\n    if (verbose) puts(\"STUB: _UAZoomingEnabled called\");\n    return NULL;\n}\n\nvoid* _UnregisterAsSessionLauncherApplication(void)\n{\n    if (verbose) puts(\"STUB: _UnregisterAsSessionLauncherApplication called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/HIServices/src/Processes.cpp",
    "content": "/*\nThis file is part of Darling.\n\nCopyright (C) 2012-2013 Lubos Dolezel\n\nDarling is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nDarling is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <HIServices/Processes.h>\n#include <CarbonCore/MacErrors.h>\n#include <unistd.h>\n#include <signal.h>\n#include <errno.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <cstring>\n#include <CoreFoundation/CFNumber.h>\n#include <CoreFoundation/CFBundle.h>\n#include <stdio.h>\n#include <ctype.h>\n#include <iostream>\n\n#define STUB() // TODO\n#ifndef PATH_MAX\n#\tdefine PATH_MAX\t4096\n#endif\n\n// TODO: 99% of these should be rewritten to call LaunchServices instead\n\n// CFStringRef kCFBundleExecutableKey = CFSTR(\"kCFBundleExecutableKey\");\n// CFStringRef kCFBundleNameKey = CFSTR(\"kCFBundleNameKey\");\n// CFStringRef kCFBundleIdentifierKey = CFSTR(\"kCFBundleIdentifierKey\");\n\nOSStatus CopyProcessName(const ProcessSerialNumber* psn, CFStringRef* name)\n{\n\tchar buf[1024];\n\tchar path[100];\n\tint fd, len;\n\n\tsprintf(path, \"/proc/%u/comm\", (unsigned int)psn->lowLongOfPSN);\n\n\tfd = ::open(path, O_RDONLY);\n\tif (fd == -1)\n\t{\n\t\t*name = nullptr;\n\t\treturn procNotFound;\n\t}\n\n\tlen = ::read(fd, buf, sizeof(buf)-1);\n\tbuf[len] = '\\0';\n\n\t::close(fd);\n\t\n\t*name = CFStringCreateWithCString(NULL, buf, kCFStringEncodingUTF8);\n\treturn noErr;\n}\n\nvoid ExitToShell()\n{\n\texit(0);\n}\n\nOSErr GetCurrentProcess(ProcessSerialNumber* psn)\n{\n\tpsn->highLongOfPSN = 0;\n\tpsn->lowLongOfPSN = getpid();\n\treturn noErr;\n}\n\nOSErr GetFrontProcess(ProcessSerialNumber* psn)\n{\n\tSTUB();\n\treturn GetCurrentProcess(psn);\n}\n\nOSErr GetNextProcess(ProcessSerialNumber* psn)\n{\n\tDIR* dir = opendir(\"/proc\");\n\tstruct dirent* ent;\n\tint nextAfter = psn->lowLongOfPSN;\n\tbool found = false, next = false;\n\t\n\tif (nextAfter == kCurrentProcess)\n\t\tnextAfter = getpid();\n\telse if (nextAfter == kNoProcess)\n\t\tnext = true;\n\t\n\twhile ((ent = readdir(dir)) != nullptr)\n\t{\n\t\tif (!isdigit(ent->d_name[0]))\n\t\t\tcontinue;\n\t\tif (next)\n\t\t{\n\t\t\tpsn->lowLongOfPSN = atoi(ent->d_name);\n\t\t\tpsn->highLongOfPSN = 0;\n\t\t\tfound = true;\n\t\t\tbreak;\n\t\t}\n\t\telse if (atoi(ent->d_name) == nextAfter)\n\t\t\tnext = true;\n\t}\n\t\n\tclosedir(dir);\n\t\n\treturn found ? noErr : procNotFound;\n}\n\nOSStatus GetProcessBundleLocation(const ProcessSerialNumber* psn, FSRef* location)\n{\n\tSTUB();\n\tmemset(location, 0, sizeof(*location));\n\treturn noErr;\n}\n\nOSStatus GetProcessForPID(pid_t pid, ProcessSerialNumber* psn)\n{\n\tpsn->highLongOfPSN = 0;\n\tpsn->lowLongOfPSN = pid;\n\treturn noErr;\n}\n\nOSErr GetProcessInformation(const ProcessSerialNumber* psn, ProcessInfoRec* pi)\n{\n\tSTUB();\n\tunsigned long len = pi->processInfoLength;\n\t\n\tmemset(pi, 0, len);\n\tpi->processInfoLength = len;\n\t\n\treturn noErr;\n}\n\nOSStatus GetProcessPID(const ProcessSerialNumber* psn, pid_t* pid)\n{\n\t*pid = psn->lowLongOfPSN;\n\treturn noErr;\n}\n\nBoolean IsProcessVisible(const ProcessSerialNumber* psn)\n{\n\tSTUB();\n\treturn true;\n}\n\nOSErr KillProcess(const ProcessSerialNumber* psn)\n{\n\tif (kill(psn->lowLongOfPSN, SIGTERM) == -1)\n\t\treturn makeOSStatus(errno);\n\t\n\treturn noErr;\n}\n\nOSErr LaunchApplication(LaunchParamBlockRec* launch)\n{\n\tSTUB();\n\treturn unimpErr;\n}\n\nCFDictionaryRef ProcessInformationCopyDictionary(const ProcessSerialNumber *PSN, UInt32 infoToReturn)\n{\n\tSTUB();\n\t\n\tCFStringRef name, path;\n\tCFMutableDictionaryRef dict;\n\tOSStatus status;\n\tCFNumberRef pid;\n\tchar procpath[PATH_MAX], lpath[100];\n\tint len;\n\t\n\tstatus = CopyProcessName(PSN, &name);\n\tif (status != noErr)\n\t\treturn nullptr;\n\n\tsprintf(lpath, \"/proc/%u/exe\", (unsigned int)PSN->lowLongOfPSN);\n\tlen = ::readlink(lpath, procpath, sizeof(procpath)-1);\n\tif (len < 0)\n\t\treturn nullptr;\n\n\tprocpath[len] = '\\0';\n\t\n\tdict = CFDictionaryCreateMutable(nullptr, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\tpid = CFNumberCreate(nullptr, kCFNumberLongType, &PSN->lowLongOfPSN);\n\tpath = CFStringCreateWithCString(nullptr, procpath, kCFStringEncodingUTF8);\n\t\n\tCFDictionaryAddValue(dict, CFSTR(\"PSN\"), pid);\n\tCFDictionaryAddValue(dict, CFSTR(\"pid\"), pid);\n\tCFDictionaryAddValue(dict, CFSTR(\"LSBackgroundOnly\"), kCFBooleanFalse);\n\tCFDictionaryAddValue(dict, CFSTR(\"IsHiddenAttr\"), kCFBooleanFalse);\n\tCFDictionaryAddValue(dict, CFSTR(\"RequiresCarbon\"), kCFBooleanFalse);\n\tCFDictionaryAddValue(dict, kCFBundleNameKey, name);\n\tCFDictionaryAddValue(dict, kCFBundleExecutableKey, path);\n\t\n\tCFRelease(pid);\n\tCFRelease(name);\n\tCFRelease(path);\n\t\n\treturn dict;\n}\n\nOSErr SameProcess(const ProcessSerialNumber* psn1, const ProcessSerialNumber* psn2, Boolean* result)\n{\n\t*result = psn1->lowLongOfPSN == psn2->highLongOfPSN;\n\treturn noErr;\n}\n\nOSErr SetFrontProcess(const ProcessSerialNumber* psn)\n{\n\tSTUB();\n\treturn noErr;\n}\n\nOSErr SetFrontProcessWithOptions(const ProcessSerialNumber* psn, OptionBits opts)\n{\n\tSTUB();\n\treturn noErr;\n}\n\nOSErr ShowHideProcess(const ProcessSerialNumber* psn, Boolean visible)\n{\n\tSTUB();\n\treturn noErr;\n}\n\nOSStatus TransformProcessType(const ProcessSerialNumber* psn, UInt32 type)\n{\n\tSTUB();\n\treturn noErr;\n}\n\nOSErr WakeUpProcess(const ProcessSerialNumber* psn)\n{\n\tSTUB();\n\treturn noErr;\n}\n\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/LangAnalysis/CMakeLists.txt",
    "content": "project(LangAnalysis)\n\nremove_sdk_framework(LangAnalysis)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(LangAnalysis\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/LangAnalysis\"\n)\n\nadd_framework(LangAnalysis\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n    PARENT ApplicationServices\n\n    SOURCES\n        src/LangAnalysis.c\n\n    DEPENDENCIES\n        system\n)\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/LangAnalysis/include/LangAnalysis/LangAnalysis.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _LangAnalysis_H_\n#define _LangAnalysis_H_\n\nvoid* DCMAddFoundRecordToIteratorAM(void);\nvoid* DCMAddRecord(void);\nvoid* DCMCloseDictionary(void);\nvoid* DCMCompactDictionary(void);\nvoid* DCMCopyParametersFromData(void);\nvoid* DCMCountObjectIterator(void);\nvoid* DCMCountRecord(void);\nvoid* DCMCountRecordIterator(void);\nvoid* DCMCreateAccessMethodIterator(void);\nvoid* DCMCreateDataWithParameters(void);\nvoid* DCMCreateDictionaryIterator(void);\nvoid* DCMCreateDictionaryIteratorInternal(void);\nvoid* DCMCreateFieldInfoRecord(void);\nvoid* DCMCreateFieldInfoRecordAM(void);\nvoid* DCMDeleteDictionary(void);\nvoid* DCMDeleteRecord(void);\nvoid* DCMDeriveNewDictionaryWithURL(void);\nvoid* DCMDictionaryServiceWindowShow(void);\nvoid* DCMDisposeObjectIterator(void);\nvoid* DCMDisposeRecordIterator(void);\nvoid* DCMFindRecords(void);\nvoid* DCMGetAccessMethodIDFromName(void);\nvoid* DCMGetDictionaryFieldInfo(void);\nvoid* DCMGetDictionaryIDFromFileWithURL(void);\nvoid* DCMGetDictionaryIDFromRef(void);\nvoid* DCMGetDictionaryProperty(void);\nvoid* DCMGetDictionaryPropertyList(void);\nvoid* DCMGetDictionaryWriteAccess(void);\nvoid* DCMGetFieldAttributes(void);\nvoid* DCMGetFieldAttributesAM(void);\nvoid* DCMGetFieldData(void);\nvoid* DCMGetFieldDefaultData(void);\nvoid* DCMGetFieldDefaultDataAM(void);\nvoid* DCMGetFieldFindMethods(void);\nvoid* DCMGetFieldFindMethodsAM(void);\nvoid* DCMGetFieldMaxRecordSize(void);\nvoid* DCMGetFieldMaxRecordSizeAM(void);\nvoid* DCMGetFieldTagAndType(void);\nvoid* DCMGetFieldTagAndTypeAM(void);\nvoid* DCMGetFileFromDictionaryIDWithURL(void);\nvoid* DCMGetNextRecord(void);\nvoid* DCMGetNthRecord(void);\nvoid* DCMGetPrevRecord(void);\nvoid* DCMGetRecordSequenceNumber(void);\nvoid* DCMIterateFoundRecord(void);\nvoid* DCMIterateFoundRecordFast(void);\nvoid* DCMIterateObject(void);\nvoid* DCMLibraryVersion(void);\nvoid* DCMNewDictionaryWithURL(void);\nvoid* DCMOpenDictionary(void);\nvoid* DCMRegisterDictionaryFileWithURL(void);\nvoid* DCMReleaseDictionaryWriteAccess(void);\nvoid* DCMReorganizeDictionary(void);\nvoid* DCMResetObjectIterator(void);\nvoid* DCMSetDictionaryProperty(void);\nvoid* DCMSetFieldData(void);\nvoid* DCMShowDictionaryServiceWindow(void);\nvoid* DCMSubscribeDictionaryNotification(void);\nvoid* DCMUnregisterDictionary(void);\nvoid* DCMUnsubscribeDictionaryNotification(void);\nvoid* LAAddNewWordWithURL(void);\nvoid* LAChangeForm(void);\nvoid* LACloseAnalysisContext(void);\nvoid* LACloseContext(void);\nvoid* LACloseDictionaryWithURL(void);\nvoid* LAConfirmMorpheme(void);\nvoid* LAContinuousMorphemeAnalysis(void);\nvoid* LAContinuousMorphemeAnalysisPriv(void);\nvoid* LACreateCustomEnvironment(void);\nvoid* LADeleteCustomEnvironment(void);\nvoid* LAFeedbackPath(void);\nvoid* LAGetEnvironmentList(void);\nvoid* LAGetEnvironmentName(void);\nvoid* LAGetEnvironmentProperty(void);\nvoid* LAGetEnvironmentRef(void);\nvoid* LAGetMorphemes(void);\nvoid* LAGetMorphemesPriv(void);\nvoid* LALibraryVersion(void);\nvoid* LAListAvailableDictionariesWithURL(void);\nvoid* LAMorphemeAnalysis(void);\nvoid* LAMorphemeAnalysisPriv(void);\nvoid* LAOpenAnalysisContext(void);\nvoid* LAOpenContext(void);\nvoid* LAOpenDictionaryPriv(void);\nvoid* LAOpenDictionaryWithURL(void);\nvoid* LAReanalyzePartially(void);\nvoid* LAResetAnalysis(void);\nvoid* LASetEnvironmentProperty(void);\nvoid* LAShiftMorphemes(void);\nvoid* LATextToMorphemes(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/LangAnalysis/src/LangAnalysis.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <LangAnalysis/LangAnalysis.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* DCMAddFoundRecordToIteratorAM(void)\n{\n    if (verbose) puts(\"STUB: DCMAddFoundRecordToIteratorAM called\");\n    return NULL;\n}\n\nvoid* DCMAddRecord(void)\n{\n    if (verbose) puts(\"STUB: DCMAddRecord called\");\n    return NULL;\n}\n\nvoid* DCMCloseDictionary(void)\n{\n    if (verbose) puts(\"STUB: DCMCloseDictionary called\");\n    return NULL;\n}\n\nvoid* DCMCompactDictionary(void)\n{\n    if (verbose) puts(\"STUB: DCMCompactDictionary called\");\n    return NULL;\n}\n\nvoid* DCMCopyParametersFromData(void)\n{\n    if (verbose) puts(\"STUB: DCMCopyParametersFromData called\");\n    return NULL;\n}\n\nvoid* DCMCountObjectIterator(void)\n{\n    if (verbose) puts(\"STUB: DCMCountObjectIterator called\");\n    return NULL;\n}\n\nvoid* DCMCountRecord(void)\n{\n    if (verbose) puts(\"STUB: DCMCountRecord called\");\n    return NULL;\n}\n\nvoid* DCMCountRecordIterator(void)\n{\n    if (verbose) puts(\"STUB: DCMCountRecordIterator called\");\n    return NULL;\n}\n\nvoid* DCMCreateAccessMethodIterator(void)\n{\n    if (verbose) puts(\"STUB: DCMCreateAccessMethodIterator called\");\n    return NULL;\n}\n\nvoid* DCMCreateDataWithParameters(void)\n{\n    if (verbose) puts(\"STUB: DCMCreateDataWithParameters called\");\n    return NULL;\n}\n\nvoid* DCMCreateDictionaryIterator(void)\n{\n    if (verbose) puts(\"STUB: DCMCreateDictionaryIterator called\");\n    return NULL;\n}\n\nvoid* DCMCreateDictionaryIteratorInternal(void)\n{\n    if (verbose) puts(\"STUB: DCMCreateDictionaryIteratorInternal called\");\n    return NULL;\n}\n\nvoid* DCMCreateFieldInfoRecord(void)\n{\n    if (verbose) puts(\"STUB: DCMCreateFieldInfoRecord called\");\n    return NULL;\n}\n\nvoid* DCMCreateFieldInfoRecordAM(void)\n{\n    if (verbose) puts(\"STUB: DCMCreateFieldInfoRecordAM called\");\n    return NULL;\n}\n\nvoid* DCMDeleteDictionary(void)\n{\n    if (verbose) puts(\"STUB: DCMDeleteDictionary called\");\n    return NULL;\n}\n\nvoid* DCMDeleteRecord(void)\n{\n    if (verbose) puts(\"STUB: DCMDeleteRecord called\");\n    return NULL;\n}\n\nvoid* DCMDeriveNewDictionaryWithURL(void)\n{\n    if (verbose) puts(\"STUB: DCMDeriveNewDictionaryWithURL called\");\n    return NULL;\n}\n\nvoid* DCMDictionaryServiceWindowShow(void)\n{\n    if (verbose) puts(\"STUB: DCMDictionaryServiceWindowShow called\");\n    return NULL;\n}\n\nvoid* DCMDisposeObjectIterator(void)\n{\n    if (verbose) puts(\"STUB: DCMDisposeObjectIterator called\");\n    return NULL;\n}\n\nvoid* DCMDisposeRecordIterator(void)\n{\n    if (verbose) puts(\"STUB: DCMDisposeRecordIterator called\");\n    return NULL;\n}\n\nvoid* DCMFindRecords(void)\n{\n    if (verbose) puts(\"STUB: DCMFindRecords called\");\n    return NULL;\n}\n\nvoid* DCMGetAccessMethodIDFromName(void)\n{\n    if (verbose) puts(\"STUB: DCMGetAccessMethodIDFromName called\");\n    return NULL;\n}\n\nvoid* DCMGetDictionaryFieldInfo(void)\n{\n    if (verbose) puts(\"STUB: DCMGetDictionaryFieldInfo called\");\n    return NULL;\n}\n\nvoid* DCMGetDictionaryIDFromFileWithURL(void)\n{\n    if (verbose) puts(\"STUB: DCMGetDictionaryIDFromFileWithURL called\");\n    return NULL;\n}\n\nvoid* DCMGetDictionaryIDFromRef(void)\n{\n    if (verbose) puts(\"STUB: DCMGetDictionaryIDFromRef called\");\n    return NULL;\n}\n\nvoid* DCMGetDictionaryProperty(void)\n{\n    if (verbose) puts(\"STUB: DCMGetDictionaryProperty called\");\n    return NULL;\n}\n\nvoid* DCMGetDictionaryPropertyList(void)\n{\n    if (verbose) puts(\"STUB: DCMGetDictionaryPropertyList called\");\n    return NULL;\n}\n\nvoid* DCMGetDictionaryWriteAccess(void)\n{\n    if (verbose) puts(\"STUB: DCMGetDictionaryWriteAccess called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldAttributes(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldAttributes called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldAttributesAM(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldAttributesAM called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldData(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldData called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldDefaultData(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldDefaultData called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldDefaultDataAM(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldDefaultDataAM called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldFindMethods(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldFindMethods called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldFindMethodsAM(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldFindMethodsAM called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldMaxRecordSize(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldMaxRecordSize called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldMaxRecordSizeAM(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldMaxRecordSizeAM called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldTagAndType(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldTagAndType called\");\n    return NULL;\n}\n\nvoid* DCMGetFieldTagAndTypeAM(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFieldTagAndTypeAM called\");\n    return NULL;\n}\n\nvoid* DCMGetFileFromDictionaryIDWithURL(void)\n{\n    if (verbose) puts(\"STUB: DCMGetFileFromDictionaryIDWithURL called\");\n    return NULL;\n}\n\nvoid* DCMGetNextRecord(void)\n{\n    if (verbose) puts(\"STUB: DCMGetNextRecord called\");\n    return NULL;\n}\n\nvoid* DCMGetNthRecord(void)\n{\n    if (verbose) puts(\"STUB: DCMGetNthRecord called\");\n    return NULL;\n}\n\nvoid* DCMGetPrevRecord(void)\n{\n    if (verbose) puts(\"STUB: DCMGetPrevRecord called\");\n    return NULL;\n}\n\nvoid* DCMGetRecordSequenceNumber(void)\n{\n    if (verbose) puts(\"STUB: DCMGetRecordSequenceNumber called\");\n    return NULL;\n}\n\nvoid* DCMIterateFoundRecord(void)\n{\n    if (verbose) puts(\"STUB: DCMIterateFoundRecord called\");\n    return NULL;\n}\n\nvoid* DCMIterateFoundRecordFast(void)\n{\n    if (verbose) puts(\"STUB: DCMIterateFoundRecordFast called\");\n    return NULL;\n}\n\nvoid* DCMIterateObject(void)\n{\n    if (verbose) puts(\"STUB: DCMIterateObject called\");\n    return NULL;\n}\n\nvoid* DCMLibraryVersion(void)\n{\n    if (verbose) puts(\"STUB: DCMLibraryVersion called\");\n    return NULL;\n}\n\nvoid* DCMNewDictionaryWithURL(void)\n{\n    if (verbose) puts(\"STUB: DCMNewDictionaryWithURL called\");\n    return NULL;\n}\n\nvoid* DCMOpenDictionary(void)\n{\n    if (verbose) puts(\"STUB: DCMOpenDictionary called\");\n    return NULL;\n}\n\nvoid* DCMRegisterDictionaryFileWithURL(void)\n{\n    if (verbose) puts(\"STUB: DCMRegisterDictionaryFileWithURL called\");\n    return NULL;\n}\n\nvoid* DCMReleaseDictionaryWriteAccess(void)\n{\n    if (verbose) puts(\"STUB: DCMReleaseDictionaryWriteAccess called\");\n    return NULL;\n}\n\nvoid* DCMReorganizeDictionary(void)\n{\n    if (verbose) puts(\"STUB: DCMReorganizeDictionary called\");\n    return NULL;\n}\n\nvoid* DCMResetObjectIterator(void)\n{\n    if (verbose) puts(\"STUB: DCMResetObjectIterator called\");\n    return NULL;\n}\n\nvoid* DCMSetDictionaryProperty(void)\n{\n    if (verbose) puts(\"STUB: DCMSetDictionaryProperty called\");\n    return NULL;\n}\n\nvoid* DCMSetFieldData(void)\n{\n    if (verbose) puts(\"STUB: DCMSetFieldData called\");\n    return NULL;\n}\n\nvoid* DCMShowDictionaryServiceWindow(void)\n{\n    if (verbose) puts(\"STUB: DCMShowDictionaryServiceWindow called\");\n    return NULL;\n}\n\nvoid* DCMSubscribeDictionaryNotification(void)\n{\n    if (verbose) puts(\"STUB: DCMSubscribeDictionaryNotification called\");\n    return NULL;\n}\n\nvoid* DCMUnregisterDictionary(void)\n{\n    if (verbose) puts(\"STUB: DCMUnregisterDictionary called\");\n    return NULL;\n}\n\nvoid* DCMUnsubscribeDictionaryNotification(void)\n{\n    if (verbose) puts(\"STUB: DCMUnsubscribeDictionaryNotification called\");\n    return NULL;\n}\n\nvoid* LAAddNewWordWithURL(void)\n{\n    if (verbose) puts(\"STUB: LAAddNewWordWithURL called\");\n    return NULL;\n}\n\nvoid* LAChangeForm(void)\n{\n    if (verbose) puts(\"STUB: LAChangeForm called\");\n    return NULL;\n}\n\nvoid* LACloseAnalysisContext(void)\n{\n    if (verbose) puts(\"STUB: LACloseAnalysisContext called\");\n    return NULL;\n}\n\nvoid* LACloseContext(void)\n{\n    if (verbose) puts(\"STUB: LACloseContext called\");\n    return NULL;\n}\n\nvoid* LACloseDictionaryWithURL(void)\n{\n    if (verbose) puts(\"STUB: LACloseDictionaryWithURL called\");\n    return NULL;\n}\n\nvoid* LAConfirmMorpheme(void)\n{\n    if (verbose) puts(\"STUB: LAConfirmMorpheme called\");\n    return NULL;\n}\n\nvoid* LAContinuousMorphemeAnalysis(void)\n{\n    if (verbose) puts(\"STUB: LAContinuousMorphemeAnalysis called\");\n    return NULL;\n}\n\nvoid* LAContinuousMorphemeAnalysisPriv(void)\n{\n    if (verbose) puts(\"STUB: LAContinuousMorphemeAnalysisPriv called\");\n    return NULL;\n}\n\nvoid* LACreateCustomEnvironment(void)\n{\n    if (verbose) puts(\"STUB: LACreateCustomEnvironment called\");\n    return NULL;\n}\n\nvoid* LADeleteCustomEnvironment(void)\n{\n    if (verbose) puts(\"STUB: LADeleteCustomEnvironment called\");\n    return NULL;\n}\n\nvoid* LAFeedbackPath(void)\n{\n    if (verbose) puts(\"STUB: LAFeedbackPath called\");\n    return NULL;\n}\n\nvoid* LAGetEnvironmentList(void)\n{\n    if (verbose) puts(\"STUB: LAGetEnvironmentList called\");\n    return NULL;\n}\n\nvoid* LAGetEnvironmentName(void)\n{\n    if (verbose) puts(\"STUB: LAGetEnvironmentName called\");\n    return NULL;\n}\n\nvoid* LAGetEnvironmentProperty(void)\n{\n    if (verbose) puts(\"STUB: LAGetEnvironmentProperty called\");\n    return NULL;\n}\n\nvoid* LAGetEnvironmentRef(void)\n{\n    if (verbose) puts(\"STUB: LAGetEnvironmentRef called\");\n    return NULL;\n}\n\nvoid* LAGetMorphemes(void)\n{\n    if (verbose) puts(\"STUB: LAGetMorphemes called\");\n    return NULL;\n}\n\nvoid* LAGetMorphemesPriv(void)\n{\n    if (verbose) puts(\"STUB: LAGetMorphemesPriv called\");\n    return NULL;\n}\n\nvoid* LALibraryVersion(void)\n{\n    if (verbose) puts(\"STUB: LALibraryVersion called\");\n    return NULL;\n}\n\nvoid* LAListAvailableDictionariesWithURL(void)\n{\n    if (verbose) puts(\"STUB: LAListAvailableDictionariesWithURL called\");\n    return NULL;\n}\n\nvoid* LAMorphemeAnalysis(void)\n{\n    if (verbose) puts(\"STUB: LAMorphemeAnalysis called\");\n    return NULL;\n}\n\nvoid* LAMorphemeAnalysisPriv(void)\n{\n    if (verbose) puts(\"STUB: LAMorphemeAnalysisPriv called\");\n    return NULL;\n}\n\nvoid* LAOpenAnalysisContext(void)\n{\n    if (verbose) puts(\"STUB: LAOpenAnalysisContext called\");\n    return NULL;\n}\n\nvoid* LAOpenContext(void)\n{\n    if (verbose) puts(\"STUB: LAOpenContext called\");\n    return NULL;\n}\n\nvoid* LAOpenDictionaryPriv(void)\n{\n    if (verbose) puts(\"STUB: LAOpenDictionaryPriv called\");\n    return NULL;\n}\n\nvoid* LAOpenDictionaryWithURL(void)\n{\n    if (verbose) puts(\"STUB: LAOpenDictionaryWithURL called\");\n    return NULL;\n}\n\nvoid* LAReanalyzePartially(void)\n{\n    if (verbose) puts(\"STUB: LAReanalyzePartially called\");\n    return NULL;\n}\n\nvoid* LAResetAnalysis(void)\n{\n    if (verbose) puts(\"STUB: LAResetAnalysis called\");\n    return NULL;\n}\n\nvoid* LASetEnvironmentProperty(void)\n{\n    if (verbose) puts(\"STUB: LASetEnvironmentProperty called\");\n    return NULL;\n}\n\nvoid* LAShiftMorphemes(void)\n{\n    if (verbose) puts(\"STUB: LAShiftMorphemes called\");\n    return NULL;\n}\n\nvoid* LATextToMorphemes(void)\n{\n    if (verbose) puts(\"STUB: LATextToMorphemes called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/PrintCore/CMakeLists.txt",
    "content": "project(PrintCore)\n\nremove_sdk_framework(PrintCore)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"503.8.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(PrintCore\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/PrintCore\"\n)\n\nadd_framework(PrintCore\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n    PARENT ApplicationServices\n\n    SOURCES\n        src/PrintCore.m\n        src/PMInkChecker.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/PrintCore/include/PrintCore/PMInkChecker.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface PMInkChecker : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/PrintCore/include/PrintCore/PrintCore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _PrintCore_H_\n#define _PrintCore_H_\n\n/* Private */\n/* #import <PrintCore/PMInkChecker.h> */\n\nvoid* CPLAutoSelectCancel(void);\nvoid* CPLAutoSelectCopyLocation(void);\nvoid* CPLAutoSelectCreateContext(void);\nvoid* CPLAutoSelectGetInfo(void);\nvoid* CPLAutoSelectHasNewPPD(void);\nvoid* CPLAutoSelectInstallableOptions(void);\nvoid* CPLAutoSelectIsBinaryOK(void);\nvoid* CPLAutoSelectPPD(void);\nvoid* CPLAutoSelectReleaseContext(void);\nvoid* CPLAutoSelectSetIsBinaryOK(void);\nvoid* CPLAutoSetupCanGetInstallableOptions(void);\nvoid* CPLCopyDefaultPaperID(void);\nvoid* CPLCopyDefaultPrinterName(void);\nvoid* CPLCopyGenericPPDURL(void);\nvoid* CPLCopyLocalServerURL(void);\nvoid* CPLCopyM5DefaultPrinterName(void);\nvoid* CPLCopyPrinterNames(void);\nvoid* CPLCreateOptions(void);\nvoid* CPLCreateOptionsStr(void);\nvoid* CPLCreateSuggestedQueueName(void);\nvoid* CPLEmptyPPDCache(void);\nvoid* CPLEmptyPrintersCache(void);\nvoid* CPLGetErrorString(void);\nvoid* CPLInstallIconFile(void);\nvoid* CPLIsPrintAdmin(void);\nvoid* CPLIsPrintingManaged(void);\nvoid* CPLPrinterCopyPPD(void);\nvoid* CPLPrinterGetType(void);\nvoid* CPLPrinterNameInUse(void);\nvoid* CPLPrinterSetLocation(void);\nvoid* CPLPrinterSetPPD(void);\nvoid* CPLQueuePrintDocument(void);\nvoid* CPLQueueResume(void);\nvoid* CPLRemovePrinter(void);\nvoid* CPLRemovePrinterKeepPreferences(void);\nvoid* CPLResetPrintingPermissions(void);\nvoid* CPLResetPrintingSystem(void);\nvoid* CPLServerCreateClass(void);\nvoid* CPLServerCreateQueue(void);\nvoid* CPLSetDefaultPaperID(void);\nvoid* CPLSetDefaultPrinterName(void);\nvoid* CPLSetUseLastPrinterAsCurrentPrinter(void);\nvoid* CPLStartAirScanLegacyBrowsing(void);\nvoid* CPLUseLastPrinterAsCurrentPrinter(void);\nvoid* CreateCStrFromEncodedValue(void);\nvoid* FindBestMediaForSheetSize(void);\nvoid* GetPPDDefaultColorSpace(void);\nvoid* GetPPDRefFromSession(void);\nvoid* MakePrinterDeviceIDFromStr(void);\nvoid* PJCCopyArrayPresetPrintingPref(void);\nvoid* PJCCopyArrayPrintingPref(void);\nvoid* PJCCopyBooleanPrintingPref(void);\nvoid* PJCCopyDictionaryPresetPrintingPref(void);\nvoid* PJCCopyDictionaryPrintingPref(void);\nvoid* PJCCopyNumberPresetPrintingPref(void);\nvoid* PJCCopyNumberPrintingPref(void);\nvoid* PJCCopyPrinterPrimaryProfileFromSettings(void);\nvoid* PJCCopyStringPresetPrintingPref(void);\nvoid* PJCCopyStringPrintingPref(void);\nvoid* PJCCreateAndLaunchPrinterProxy(void);\nvoid* PJCCreateDefaultSaveToFileName(void);\nvoid* PJCCreateLocalizedNameFromPPDChoiceName(void);\nvoid* PJCCreateLocalizedPaperName2(void);\nvoid* PJCCreateLocalizedPaperNameWithPPD(void);\nvoid* PJCCreatePMPaperForPaperInfoEntry(void);\nvoid* PJCCreatePaperInfoListForMenuInternal(void);\nvoid* PJCCreateSuggestedPaper(void);\nvoid* PJCForceRelease(void);\nvoid* PJCGetCurrentProfileIDFromPPD(void);\nvoid* PJCIsMetric(void);\nvoid* PJCLaunchPrintCenter(void);\nvoid* PJCNewPageFormatWithPMPaper(void);\nvoid* PJCPrintSettingsCreateCustomProfileRef(void);\nvoid* PJCPrintSettingsSetCustomProfilePath(void);\nvoid* PJCPrinterCopyReadyMediaList(void);\nvoid* PJCPrinterGetDeviceID(void);\nvoid* PJCPrinterProxyCreateURL(void);\nvoid* PJCPrinterSupportsReadyMedia(void);\nvoid* PJCPrinterSupportsThisCustomPaper(void);\nvoid* PJCRunWorkflowWithRenamedPDF(void);\nvoid* PJCSessionCreateCopyForAppKit(void);\nvoid* PJCSessionHasApplicationSetPrinter(void);\nvoid* PJCSessionSetHideFileExtension(void);\nvoid* PJCSetPresetPrintingPref(void);\nvoid* PJCSetPrintingPref(void);\nvoid* PJCTicketGetSrcImageableArea(void);\nvoid* PJCTicketGetSrcOrientation(void);\nvoid* PJCTicketGetSrcPaperSize(void);\nvoid* PJCTicketGetSrcResolution(void);\nvoid* PJCTicketGetSrcScaling(void);\nvoid* PMBackendExecIO(void);\nvoid* PMCFEqual(void);\nvoid* PMCGImageCreateWithEPSDataProvider(void);\nvoid* PMConvertFile(void);\nvoid* PMCopyAvailablePPDs(void);\nvoid* PMCopyCountry(void);\nvoid* PMCopyLocalizedPPD(void);\nvoid* PMCopyPPDData(void);\nvoid* PMCopyPageFormat(void);\nvoid* PMCopyPrintSettings(void);\nvoid* PMCopyUserDefaultPaperSize(void);\nvoid* PMCreateCFArrayForPMObjects(void);\nvoid* PMCreateGenericPrinter(void);\nvoid* PMCreatePageFormat(void);\nvoid* PMCreatePageFormatWithPMPaper(void);\nvoid* PMCreatePaperInfoTicketFromPPDPaperName(void);\nvoid* PMCreatePrintSettings(void);\nvoid* PMCreatePrinter(void);\nvoid* PMCreateProxy(void);\nvoid* PMCreateSession(void);\nvoid* PMDebugSet_Boolean(void);\nvoid* PMDebugSet_CFTypeRef(void);\nvoid* PMDebugSet_PMObject(void);\nvoid* PMDebugSet_PMRect_p(void);\nvoid* PMDebugSet_char_p(void);\nvoid* PMDebugSet_double(void);\nvoid* PMDebugSet_long(void);\nvoid* PMDebugSet_ulong(void);\nvoid* PMExecIO(void);\nvoid* PMFindProxy(void);\nvoid* PMFlattenPageFormatToCFData(void);\nvoid* PMFlattenPageFormatToURL(void);\nvoid* PMFlattenPrintSettingsToCFData(void);\nvoid* PMFlattenPrintSettingsToURL(void);\nvoid* PMGetAdjustedPageRect(void);\nvoid* PMGetAdjustedPaperRect(void);\nvoid* PMGetCollate(void);\nvoid* PMGetCopies(void);\nvoid* PMGetDuplex(void);\nvoid* PMGetFirstPage(void);\nvoid* PMGetLastPage(void);\nvoid* PMGetOrientation(void);\nvoid* PMGetPageFormatExtendedData(void);\nvoid* PMGetPageFormatPaper(void);\nvoid* PMGetPageRange(void);\nvoid* PMGetPrintSettingsExtendedData(void);\nvoid* PMGetPrinterModel(void);\nvoid* PMGetReverseOrder(void);\nvoid* PMGetScale(void);\nvoid* PMGetUnadjustedPageRect(void);\nvoid* PMGetUnadjustedPaperRect(void);\nvoid* PMInlineWorkflowCopyItems(void);\nvoid* PMInstallCoercionHandlers(void);\nvoid* PMLaunchProxy(void);\nvoid* PMMonitorOnlineOfflineState(void);\nvoid* PMPDEBundleNeedsDisabledSandbox(void);\nvoid* PMPageFormatComputeAdjustedRects(void);\nvoid* PMPageFormatComputeAdjustedRectsWithPrinter(void);\nvoid* PMPageFormatCreateDataRepresentation(void);\nvoid* PMPageFormatCreateWithDataRepresentation(void);\nvoid* PMPageFormatGetPrinterID(void);\nvoid* PMPaperAddToUserPrefs(void);\nvoid* PMPaperCopyUserPrefs(void);\nvoid* PMPaperCreateCustom(void);\nvoid* PMPaperCreateFromPaperInfo(void);\nvoid* PMPaperCreateInternal(void);\nvoid* PMPaperCreateLocalizedName(void);\nvoid* PMPaperCreatePMTicketRef(void);\nvoid* PMPaperGetHeight(void);\nvoid* PMPaperGetID(void);\nvoid* PMPaperGetMargins(void);\nvoid* PMPaperGetName(void);\nvoid* PMPaperGetPPDPaperName(void);\nvoid* PMPaperGetPrinterID(void);\nvoid* PMPaperGetWidth(void);\nvoid* PMPaperIsCustom(void);\nvoid* PMPaperRemoveFromUserPrefs(void);\nvoid* PMPresetCopyName(void);\nvoid* PMPresetCreatePageFormat(void);\nvoid* PMPresetCreatePrintSettings(void);\nvoid* PMPresetGetAttributes(void);\nvoid* PMPrintSettingsCopyAsDictionary(void);\nvoid* PMPrintSettingsCopyKeys(void);\nvoid* PMPrintSettingsCreateDataRepresentation(void);\nvoid* PMPrintSettingsCreateWithDataRepresentation(void);\nvoid* PMPrintSettingsGetJobName(void);\nvoid* PMPrintSettingsGetValue(void);\nvoid* PMPrintSettingsSetJobName(void);\nvoid* PMPrintSettingsSetValue(void);\nvoid* PMPrintSettingsToOptions(void);\nvoid* PMPrintSettingsToOptionsWithPrinterAndPageFormat(void);\nvoid* PMPrinterCanDuplex(void);\nvoid* PMPrinterCanIdentify(void);\nvoid* PMPrinterCanScan(void);\nvoid* PMPrinterCancelConnect(void);\nvoid* PMPrinterChargeInfoURI(void);\nvoid* PMPrinterCopyACL(void);\nvoid* PMPrinterCopyDefaultUserCredentials(void);\nvoid* PMPrinterCopyDescriptionURL(void);\nvoid* PMPrinterCopyDeviceURI(void);\nvoid* PMPrinterCopyFinalDeviceURI(void);\nvoid* PMPrinterCopyHostName(void);\nvoid* PMPrinterCopyMembers(void);\nvoid* PMPrinterCopyPresets(void);\nvoid* PMPrinterCopyRequiredUserCredentials(void);\nvoid* PMPrinterCopyScannerUUID(void);\nvoid* PMPrinterCopyScanningApp(void);\nvoid* PMPrinterCopyScanningAppPath(void);\nvoid* PMPrinterCopyState(void);\nvoid* PMPrinterCopySuppliesURI(void);\nvoid* PMPrinterCopyTempPPDURL(void);\nvoid* PMPrinterCreateFromPrinterID(void);\nvoid* PMPrinterCreatePaperInfoListForMenu(void);\nvoid* PMPrinterCreatePaperInfoListForMenuPriv(void);\nvoid* PMPrinterGetCMDeviceID(void);\nvoid* PMPrinterGetCommInfo(void);\nvoid* PMPrinterGetConsumables(void);\nvoid* PMPrinterGetConsumablesDisclaimer(void);\nvoid* PMPrinterGetConsumablesOptionalText(void);\nvoid* PMPrinterGetCustomPaperSizeHardwareMargins(void);\nvoid* PMPrinterGetCustomPaperSizeHardwareSheetSize(void);\nvoid* PMPrinterGetDriverCreator(void);\nvoid* PMPrinterGetDriverReleaseInfo(void);\nvoid* PMPrinterGetID(void);\nvoid* PMPrinterGetIconData(void);\nvoid* PMPrinterGetImage(void);\nvoid* PMPrinterGetIndexedPrinterResolution(void);\nvoid* PMPrinterGetLanguageInfo(void);\nvoid* PMPrinterGetLocation(void);\nvoid* PMPrinterGetMakeAndModelName(void);\nvoid* PMPrinterGetMarkerChangeTime(void);\nvoid* PMPrinterGetMimeTypes(void);\nvoid* PMPrinterGetName(void);\nvoid* PMPrinterGetOutputResolution(void);\nvoid* PMPrinterGetPaperList(void);\nvoid* PMPrinterGetPrinterResolutionCount(void);\nvoid* PMPrinterGetPrinterValue(void);\nvoid* PMPrinterGetState(void);\nvoid* PMPrinterHasCustomPaperSizes(void);\nvoid* PMPrinterIdentify(void);\nvoid* PMPrinterIsAirPrint(void);\nvoid* PMPrinterIsAllowed(void);\nvoid* PMPrinterIsClass(void);\nvoid* PMPrinterIsDefault(void);\nvoid* PMPrinterIsDirectConnect(void);\nvoid* PMPrinterIsFavorite(void);\nvoid* PMPrinterIsFax(void);\nvoid* PMPrinterIsGenericPrinter(void);\nvoid* PMPrinterIsLocked(void);\nvoid* PMPrinterIsPostScriptCapable(void);\nvoid* PMPrinterIsPostScriptPrinter(void);\nvoid* PMPrinterIsRemote(void);\nvoid* PMPrinterIsScanner(void);\nvoid* PMPrinterIsShared(void);\nvoid* PMPrinterOpenSuppliesURI(void);\nvoid* PMPrinterPrintWithFile(void);\nvoid* PMPrinterPrintWithProvider(void);\nvoid* PMPrinterRequiresAccountingInformation(void);\nvoid* PMPrinterRequiresUserCredentials(void);\nvoid* PMPrinterSendCommand(void);\nvoid* PMPrinterSetACL(void);\nvoid* PMPrinterSetConsumables(void);\nvoid* PMPrinterSetConsumablesDisclaimer(void);\nvoid* PMPrinterSetConsumablesOptionalText(void);\nvoid* PMPrinterSetDefault(void);\nvoid* PMPrinterSetFavorite(void);\nvoid* PMPrinterSetLocation(void);\nvoid* PMPrinterSetMarkerChangeTime(void);\nvoid* PMPrinterSetModel(void);\nvoid* PMPrinterSetName(void);\nvoid* PMPrinterSetOutputResolution(void);\nvoid* PMPrinterSetShared(void);\nvoid* PMPrinterStartConnect(void);\nvoid* PMPrinterStartMonitoring(void);\nvoid* PMPrinterStopMonitoring(void);\nvoid* PMPrinterSupportsMatchingMode(void);\nvoid* PMPrinterUsesTCP(void);\nvoid* PMPrinterWritePostScriptToURL(void);\nvoid* PMRelease(void);\nvoid* PMRetain(void);\nvoid* PMServerCopyJobLog(void);\nvoid* PMServerCreateDeviceList(void);\nvoid* PMServerCreatePrinterList(void);\nvoid* PMServerFavoritesListHasChanged(void);\nvoid* PMServerLaunchPrinterBrowser(void);\nvoid* PMServerPrinterListHasChanged(void);\nvoid* PMSessionBeginCGDocumentNoDialog(void);\nvoid* PMSessionBeginDocumentNoDialogPrivate(void);\nvoid* PMSessionBeginPageNoDialog(void);\nvoid* PMSessionCopyApplicationOutputIntent(void);\nvoid* PMSessionCopyApplicationOutputIntentWithColorSyncProfiles(void);\nvoid* PMSessionCopyCurrentPrinterColorSyncProfile(void);\nvoid* PMSessionCopyCurrentPrinterProfile(void);\nvoid* PMSessionCopyDefaultOutputIntent(void);\nvoid* PMSessionCopyDefaultOutputIntentWithColorSyncProfiles(void);\nvoid* PMSessionCopyDestinationFormat(void);\nvoid* PMSessionCopyDestinationLocation(void);\nvoid* PMSessionCopyOutputFormatList(void);\nvoid* PMSessionCreateCurrentPrinterColorSpace(void);\nvoid* PMSessionCreatePageFormatList(void);\nvoid* PMSessionCreatePrinterList(void);\nvoid* PMSessionDefaultPageFormat(void);\nvoid* PMSessionDefaultPrintSettings(void);\nvoid* PMSessionDisablePresetsPopUp(void);\nvoid* PMSessionDisablePrinterPresetsPrivate(void);\nvoid* PMSessionEnablePresetsPopUp(void);\nvoid* PMSessionEnablePrinterPresetsPrivate(void);\nvoid* PMSessionEndDocumentNoDialog(void);\nvoid* PMSessionEndPageNoDialog(void);\nvoid* PMSessionError(void);\nvoid* PMSessionGetCGGraphicsContext(void);\nvoid* PMSessionGetColorMatchingMode(void);\nvoid* PMSessionGetColorMatchingMode2(void);\nvoid* PMSessionGetColorMatchingModeLock(void);\nvoid* PMSessionGetCurrentPrinter(void);\nvoid* PMSessionGetDataFromSession(void);\nvoid* PMSessionGetDestinationType(void);\nvoid* PMSessionGetDocumentTags(void);\nvoid* PMSessionGetGenericPrinter(void);\nvoid* PMSessionGetHideFileExtension(void);\nvoid* PMSessionSetApplicationOutputIntent(void);\nvoid* PMSessionSetApplicationOutputIntentWithColorSyncProfiles(void);\nvoid* PMSessionSetColorMatchingMode(void);\nvoid* PMSessionSetColorMatchingModeLock(void);\nvoid* PMSessionSetColorMatchingModeNoLock(void);\nvoid* PMSessionSetCurrentPMPrinter(void);\nvoid* PMSessionSetDataInSession(void);\nvoid* PMSessionSetDefaultButtonTitleCFString(void);\nvoid* PMSessionSetDestination(void);\nvoid* PMSessionSetDocumentTags(void);\nvoid* PMSessionSetError(void);\nvoid* PMSessionSetHideFileExtension(void);\nvoid* PMSessionSetPrintingDialogTitleCFString(void);\nvoid* PMSessionValidatePageFormat(void);\nvoid* PMSessionValidatePrintSettings(void);\nvoid* PMSetCollate(void);\nvoid* PMSetCopies(void);\nvoid* PMSetCopyCollate(void);\nvoid* PMSetDuplex(void);\nvoid* PMSetFirstPage(void);\nvoid* PMSetLastPage(void);\nvoid* PMSetOrientation(void);\nvoid* PMSetPageFormatExtendedData(void);\nvoid* PMSetPageRange(void);\nvoid* PMSetPrintSettingsExtendedData(void);\nvoid* PMSetReverseOrder(void);\nvoid* PMSetScale(void);\nvoid* PMSetUserDefaultPaperSize(void);\nvoid* PMShouldEnableSupplies(void);\nvoid* PMTicketConfirmTicket(void);\nvoid* PMTicketContainsItem(void);\nvoid* PMTicketContainsTicket(void);\nvoid* PMTicketCopy(void);\nvoid* PMTicketCopyItem(void);\nvoid* PMTicketCopyKeys(void);\nvoid* PMTicketCreate(void);\nvoid* PMTicketCreateDict(void);\nvoid* PMTicketCreateMutableDict(void);\nvoid* PMTicketCreateTemplate(void);\nvoid* PMTicketDeleteItem(void);\nvoid* PMTicketFillFromArray(void);\nvoid* PMTicketGetAPIVersion(void);\nvoid* PMTicketGetAllocator(void);\nvoid* PMTicketGetBoolean(void);\nvoid* PMTicketGetBytes(void);\nvoid* PMTicketGetCFArray(void);\nvoid* PMTicketGetCFBoolean(void);\nvoid* PMTicketGetCFData(void);\nvoid* PMTicketGetCFDate(void);\nvoid* PMTicketGetCFDictionary(void);\nvoid* PMTicketGetCFNumber(void);\nvoid* PMTicketGetCFString(void);\nvoid* PMTicketGetCString(void);\nvoid* PMTicketGetDouble(void);\nvoid* PMTicketGetEnumType(void);\nvoid* PMTicketGetItem(void);\nvoid* PMTicketGetPMRect(void);\nvoid* PMTicketGetPMResolution(void);\nvoid* PMTicketGetPString(void);\nvoid* PMTicketGetRetainCount(void);\nvoid* PMTicketGetSInt32(void);\nvoid* PMTicketGetThisBoolean(void);\nvoid* PMTicketGetThisCString(void);\nvoid* PMTicketGetThisItem(void);\nvoid* PMTicketGetThisPMRect(void);\nvoid* PMTicketGetThisSInt32(void);\nvoid* PMTicketGetThisTypedItem(void);\nvoid* PMTicketGetTicket(void);\nvoid* PMTicketGetType(void);\nvoid* PMTicketGetUInt32(void);\nvoid* PMTicketGetUTF8String(void);\nvoid* PMTicketReadXMLFromCFURLRef(void);\nvoid* PMTicketReadXMLFromFile(void);\nvoid* PMTicketRelease(void);\nvoid* PMTicketReleaseAndClear(void);\nvoid* PMTicketReleaseItem(void);\nvoid* PMTicketRemoveTicket(void);\nvoid* PMTicketRetain(void);\nvoid* PMTicketSetBoolean(void);\nvoid* PMTicketSetBytes(void);\nvoid* PMTicketSetCFArray(void);\nvoid* PMTicketSetCFBoolean(void);\nvoid* PMTicketSetCFData(void);\nvoid* PMTicketSetCFDate(void);\nvoid* PMTicketSetCFDictionary(void);\nvoid* PMTicketSetCFNumber(void);\nvoid* PMTicketSetCFString(void);\nvoid* PMTicketSetCString(void);\nvoid* PMTicketSetCStringArray(void);\nvoid* PMTicketSetDouble(void);\nvoid* PMTicketSetDoubleArray(void);\nvoid* PMTicketSetItem(void);\nvoid* PMTicketSetPMRect(void);\nvoid* PMTicketSetPMRectArray(void);\nvoid* PMTicketSetPMResolution(void);\nvoid* PMTicketSetPMResolutionArray(void);\nvoid* PMTicketSetPString(void);\nvoid* PMTicketSetSInt32(void);\nvoid* PMTicketSetSInt32Array(void);\nvoid* PMTicketSetTemplate(void);\nvoid* PMTicketSetTicket(void);\nvoid* PMTicketSetUInt32(void);\nvoid* PMTicketSetUInt32Array(void);\nvoid* PMTicketToLightXML(void);\nvoid* PMTicketToXML(void);\nvoid* PMTicketValidate(void);\nvoid* PMTicketWriteXML(void);\nvoid* PMTicketWriteXMLToFile(void);\nvoid* PMUnflattenPageFormatWithCFData(void);\nvoid* PMUnflattenPageFormatWithURL(void);\nvoid* PMUnflattenPrintSettingsWithCFData(void);\nvoid* PMUnflattenPrintSettingsWithURL(void);\nvoid* PMUpdateProxy(void);\nvoid* PMWorkflowCopyItems(void);\nvoid* PMWorkflowSubmitPDFWithOptions(void);\nvoid* PMWorkflowSubmitPDFWithSettings(void);\nvoid* PMWriteCFDataToFile(void);\nvoid* PMXMLToTicket(void);\nvoid* PMfprintf(void);\nvoid* _ZN12PMBaseObject14SetAppReadOnlyEh(void);\nvoid* _ZN12PMBaseObject15CopyObjectStateEPS_(void);\nvoid* _ZN12PMBaseObject16CreateEmptyArrayEv(void);\nvoid* _ZN14OpaquePMPresetC1EPK14__CFDictionary(void);\nvoid* _ZN14OpaquePMPresetC2EPK14__CFDictionary(void);\nvoid* _ZN15OpaquePMPrinter14GetPrinterNameEv(void);\nvoid* _ZN15OpaquePMPrinter14IsQueueStoppedEv(void);\nvoid* _ZN15OpaquePMPrinter16IsGenericPrinterEv(void);\nvoid* _ZN15OpaquePMPrinter19GetPaperListForMenuEv(void);\nvoid* _ZN15OpaquePMPrinter19SetPaperListForMenuEPK9__CFArray(void);\nvoid* _ZN15OpaquePMPrinter22IsPrinterDirectConnectEv(void);\nvoid* _ZN18OpaquePMPageFormat21PJCValidPageFormatKeyEPS_(void);\nvoid* _ZN18PMTicketBaseObject12GetTicketRefEv(void);\nvoid* _ZN18PMTicketBaseObject12SetTicketRefEP17OpaquePMTicketRef(void);\nvoid* _ZN18PMTicketBaseObject23ReleaseAndReplaceTicketEP17OpaquePMTicketRef(void);\nvoid* _ZN20OpaquePMPrintSession10ClearErrorEv(void);\nvoid* _ZN20OpaquePMPrintSession10SetPreviewEhj(void);\nvoid* _ZN20OpaquePMPrintSession12GetJobTicketEv(void);\nvoid* _ZN20OpaquePMPrintSession16GetSheetDoneProcEv(void);\nvoid* _ZN20OpaquePMPrintSession16GetXPCConnectionEv(void);\nvoid* _ZN20OpaquePMPrintSession16SetSheetDoneProcEPFvPS_P15OpaqueWindowPtrhE(void);\nvoid* _ZN20OpaquePMPrintSession16SetXPCConnectionEPU24objcproto13OS_xpc_object8NSObject(void);\nvoid* _ZN20OpaquePMPrintSession17GetCurrentPrinterEv(void);\nvoid* _ZN20OpaquePMPrintSession17GetDocumentWindowEv(void);\nvoid* _ZN20OpaquePMPrintSession17SetCurrentPrinterEP15OpaquePMPrinter(void);\nvoid* _ZN20OpaquePMPrintSession17SetCurrentPrinterEP15OpaquePMPrinterh(void);\nvoid* _ZN20OpaquePMPrintSession17SetDocumentWindowEP15OpaqueWindowPtr(void);\nvoid* _ZN20OpaquePMPrintSession19SetDataInDictionaryEPK10__CFStringPKv(void);\nvoid* _ZN20OpaquePMPrintSession21GetEnablePresetsPopUpEv(void);\nvoid* _ZN20OpaquePMPrintSession21GetPresetGraphicsTypeEv(void);\nvoid* _ZN20OpaquePMPrintSession21SetPresetGraphicsTypeEPK10__CFString(void);\nvoid* _ZN20OpaquePMPrintSession23PJCValidPrintSessionKeyEPS_(void);\nvoid* _ZN20OpaquePMPrintSession24GetDefaultButtonTitleRefEv(void);\nvoid* _ZN20OpaquePMPrintSession25GetPrintingDialogTitleRefEv(void);\nvoid* _ZN20OpaquePMPrintSession7PreviewEv(void);\nvoid* _ZN20OpaquePMPrintSession8GetErrorEv(void);\nvoid* _ZN20OpaquePMPrintSession8GetStateEv(void);\nvoid* _ZN20OpaquePMPrintSession8SetErrorEi(void);\nvoid* _ZN21OpaquePMPrintSettings14PJCGetLastPageEPj(void);\nvoid* _ZN21OpaquePMPrintSettings14PJCSetLastPageEP17OpaquePMTicketRefjhh(void);\nvoid* _ZN21OpaquePMPrintSettings14PJCSetLastPageEjhh(void);\nvoid* _ZN21OpaquePMPrintSettings15PJCGetFirstPageEPj(void);\nvoid* _ZN21OpaquePMPrintSettings17PJCGetDestinationEPtPPK7__CFURL(void);\nvoid* _ZN21OpaquePMPrintSettings17PJCSetDestinationEtPK7__CFURL(void);\nvoid* _ZN21OpaquePMPrintSettings24PJCValidPrintSettingsKeyEPS_(void);\nvoid* getCurrentMonochromeProfileID(void);\nvoid* getMatchedMediaNameFromPrinter(void);\nvoid* getMediaNameFromPaperInfo(void);\nvoid* getPDFSpoolingFunctionCallbacks(void);\nvoid* parsePostScriptStatus(void);\nvoid* printUIToolAuthenticateJob(void);\nvoid* printUIToolCreateConnection(void);\nvoid* printUIToolGetAuthenticationInfo(void);\nvoid* printUIToolPrintFD(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/PrintCore/src/PMInkChecker.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <PrintCore/PMInkChecker.h>\n\n@implementation PMInkChecker\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/PrintCore/src/PrintCore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <PrintCore/PrintCore.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* CPLAutoSelectCancel(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectCancel called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectCopyLocation(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectCopyLocation called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectCreateContext(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectCreateContext called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectGetInfo(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectGetInfo called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectHasNewPPD(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectHasNewPPD called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectInstallableOptions(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectInstallableOptions called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectIsBinaryOK(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectIsBinaryOK called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectPPD(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectPPD called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectReleaseContext(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectReleaseContext called\");\n    return NULL;\n}\n\nvoid* CPLAutoSelectSetIsBinaryOK(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSelectSetIsBinaryOK called\");\n    return NULL;\n}\n\nvoid* CPLAutoSetupCanGetInstallableOptions(void)\n{\n    if (verbose) puts(\"STUB: CPLAutoSetupCanGetInstallableOptions called\");\n    return NULL;\n}\n\nvoid* CPLCopyDefaultPaperID(void)\n{\n    if (verbose) puts(\"STUB: CPLCopyDefaultPaperID called\");\n    return NULL;\n}\n\nvoid* CPLCopyDefaultPrinterName(void)\n{\n    if (verbose) puts(\"STUB: CPLCopyDefaultPrinterName called\");\n    return NULL;\n}\n\nvoid* CPLCopyGenericPPDURL(void)\n{\n    if (verbose) puts(\"STUB: CPLCopyGenericPPDURL called\");\n    return NULL;\n}\n\nvoid* CPLCopyLocalServerURL(void)\n{\n    if (verbose) puts(\"STUB: CPLCopyLocalServerURL called\");\n    return NULL;\n}\n\nvoid* CPLCopyM5DefaultPrinterName(void)\n{\n    if (verbose) puts(\"STUB: CPLCopyM5DefaultPrinterName called\");\n    return NULL;\n}\n\nvoid* CPLCopyPrinterNames(void)\n{\n    if (verbose) puts(\"STUB: CPLCopyPrinterNames called\");\n    return NULL;\n}\n\nvoid* CPLCreateOptions(void)\n{\n    if (verbose) puts(\"STUB: CPLCreateOptions called\");\n    return NULL;\n}\n\nvoid* CPLCreateOptionsStr(void)\n{\n    if (verbose) puts(\"STUB: CPLCreateOptionsStr called\");\n    return NULL;\n}\n\nvoid* CPLCreateSuggestedQueueName(void)\n{\n    if (verbose) puts(\"STUB: CPLCreateSuggestedQueueName called\");\n    return NULL;\n}\n\nvoid* CPLEmptyPPDCache(void)\n{\n    if (verbose) puts(\"STUB: CPLEmptyPPDCache called\");\n    return NULL;\n}\n\nvoid* CPLEmptyPrintersCache(void)\n{\n    if (verbose) puts(\"STUB: CPLEmptyPrintersCache called\");\n    return NULL;\n}\n\nvoid* CPLGetErrorString(void)\n{\n    if (verbose) puts(\"STUB: CPLGetErrorString called\");\n    return NULL;\n}\n\nvoid* CPLInstallIconFile(void)\n{\n    if (verbose) puts(\"STUB: CPLInstallIconFile called\");\n    return NULL;\n}\n\nvoid* CPLIsPrintAdmin(void)\n{\n    if (verbose) puts(\"STUB: CPLIsPrintAdmin called\");\n    return NULL;\n}\n\nvoid* CPLIsPrintingManaged(void)\n{\n    if (verbose) puts(\"STUB: CPLIsPrintingManaged called\");\n    return NULL;\n}\n\nvoid* CPLPrinterCopyPPD(void)\n{\n    if (verbose) puts(\"STUB: CPLPrinterCopyPPD called\");\n    return NULL;\n}\n\nvoid* CPLPrinterGetType(void)\n{\n    if (verbose) puts(\"STUB: CPLPrinterGetType called\");\n    return NULL;\n}\n\nvoid* CPLPrinterNameInUse(void)\n{\n    if (verbose) puts(\"STUB: CPLPrinterNameInUse called\");\n    return NULL;\n}\n\nvoid* CPLPrinterSetLocation(void)\n{\n    if (verbose) puts(\"STUB: CPLPrinterSetLocation called\");\n    return NULL;\n}\n\nvoid* CPLPrinterSetPPD(void)\n{\n    if (verbose) puts(\"STUB: CPLPrinterSetPPD called\");\n    return NULL;\n}\n\nvoid* CPLQueuePrintDocument(void)\n{\n    if (verbose) puts(\"STUB: CPLQueuePrintDocument called\");\n    return NULL;\n}\n\nvoid* CPLQueueResume(void)\n{\n    if (verbose) puts(\"STUB: CPLQueueResume called\");\n    return NULL;\n}\n\nvoid* CPLRemovePrinter(void)\n{\n    if (verbose) puts(\"STUB: CPLRemovePrinter called\");\n    return NULL;\n}\n\nvoid* CPLRemovePrinterKeepPreferences(void)\n{\n    if (verbose) puts(\"STUB: CPLRemovePrinterKeepPreferences called\");\n    return NULL;\n}\n\nvoid* CPLResetPrintingPermissions(void)\n{\n    if (verbose) puts(\"STUB: CPLResetPrintingPermissions called\");\n    return NULL;\n}\n\nvoid* CPLResetPrintingSystem(void)\n{\n    if (verbose) puts(\"STUB: CPLResetPrintingSystem called\");\n    return NULL;\n}\n\nvoid* CPLServerCreateClass(void)\n{\n    if (verbose) puts(\"STUB: CPLServerCreateClass called\");\n    return NULL;\n}\n\nvoid* CPLServerCreateQueue(void)\n{\n    if (verbose) puts(\"STUB: CPLServerCreateQueue called\");\n    return NULL;\n}\n\nvoid* CPLSetDefaultPaperID(void)\n{\n    if (verbose) puts(\"STUB: CPLSetDefaultPaperID called\");\n    return NULL;\n}\n\nvoid* CPLSetDefaultPrinterName(void)\n{\n    if (verbose) puts(\"STUB: CPLSetDefaultPrinterName called\");\n    return NULL;\n}\n\nvoid* CPLSetUseLastPrinterAsCurrentPrinter(void)\n{\n    if (verbose) puts(\"STUB: CPLSetUseLastPrinterAsCurrentPrinter called\");\n    return NULL;\n}\n\nvoid* CPLStartAirScanLegacyBrowsing(void)\n{\n    if (verbose) puts(\"STUB: CPLStartAirScanLegacyBrowsing called\");\n    return NULL;\n}\n\nvoid* CPLUseLastPrinterAsCurrentPrinter(void)\n{\n    if (verbose) puts(\"STUB: CPLUseLastPrinterAsCurrentPrinter called\");\n    return NULL;\n}\n\nvoid* CreateCStrFromEncodedValue(void)\n{\n    if (verbose) puts(\"STUB: CreateCStrFromEncodedValue called\");\n    return NULL;\n}\n\nvoid* FindBestMediaForSheetSize(void)\n{\n    if (verbose) puts(\"STUB: FindBestMediaForSheetSize called\");\n    return NULL;\n}\n\nvoid* GetPPDDefaultColorSpace(void)\n{\n    if (verbose) puts(\"STUB: GetPPDDefaultColorSpace called\");\n    return NULL;\n}\n\nvoid* GetPPDRefFromSession(void)\n{\n    if (verbose) puts(\"STUB: GetPPDRefFromSession called\");\n    return NULL;\n}\n\nvoid* MakePrinterDeviceIDFromStr(void)\n{\n    if (verbose) puts(\"STUB: MakePrinterDeviceIDFromStr called\");\n    return NULL;\n}\n\nvoid* PJCCopyArrayPresetPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyArrayPresetPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCopyArrayPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyArrayPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCopyBooleanPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyBooleanPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCopyDictionaryPresetPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyDictionaryPresetPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCopyDictionaryPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyDictionaryPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCopyNumberPresetPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyNumberPresetPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCopyNumberPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyNumberPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCopyPrinterPrimaryProfileFromSettings(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyPrinterPrimaryProfileFromSettings called\");\n    return NULL;\n}\n\nvoid* PJCCopyStringPresetPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyStringPresetPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCopyStringPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCCopyStringPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCCreateAndLaunchPrinterProxy(void)\n{\n    if (verbose) puts(\"STUB: PJCCreateAndLaunchPrinterProxy called\");\n    return NULL;\n}\n\nvoid* PJCCreateDefaultSaveToFileName(void)\n{\n    if (verbose) puts(\"STUB: PJCCreateDefaultSaveToFileName called\");\n    return NULL;\n}\n\nvoid* PJCCreateLocalizedNameFromPPDChoiceName(void)\n{\n    if (verbose) puts(\"STUB: PJCCreateLocalizedNameFromPPDChoiceName called\");\n    return NULL;\n}\n\nvoid* PJCCreateLocalizedPaperName2(void)\n{\n    if (verbose) puts(\"STUB: PJCCreateLocalizedPaperName2 called\");\n    return NULL;\n}\n\nvoid* PJCCreateLocalizedPaperNameWithPPD(void)\n{\n    if (verbose) puts(\"STUB: PJCCreateLocalizedPaperNameWithPPD called\");\n    return NULL;\n}\n\nvoid* PJCCreatePMPaperForPaperInfoEntry(void)\n{\n    if (verbose) puts(\"STUB: PJCCreatePMPaperForPaperInfoEntry called\");\n    return NULL;\n}\n\nvoid* PJCCreatePaperInfoListForMenuInternal(void)\n{\n    if (verbose) puts(\"STUB: PJCCreatePaperInfoListForMenuInternal called\");\n    return NULL;\n}\n\nvoid* PJCCreateSuggestedPaper(void)\n{\n    if (verbose) puts(\"STUB: PJCCreateSuggestedPaper called\");\n    return NULL;\n}\n\nvoid* PJCForceRelease(void)\n{\n    if (verbose) puts(\"STUB: PJCForceRelease called\");\n    return NULL;\n}\n\nvoid* PJCGetCurrentProfileIDFromPPD(void)\n{\n    if (verbose) puts(\"STUB: PJCGetCurrentProfileIDFromPPD called\");\n    return NULL;\n}\n\nvoid* PJCIsMetric(void)\n{\n    if (verbose) puts(\"STUB: PJCIsMetric called\");\n    return NULL;\n}\n\nvoid* PJCLaunchPrintCenter(void)\n{\n    if (verbose) puts(\"STUB: PJCLaunchPrintCenter called\");\n    return NULL;\n}\n\nvoid* PJCNewPageFormatWithPMPaper(void)\n{\n    if (verbose) puts(\"STUB: PJCNewPageFormatWithPMPaper called\");\n    return NULL;\n}\n\nvoid* PJCPrintSettingsCreateCustomProfileRef(void)\n{\n    if (verbose) puts(\"STUB: PJCPrintSettingsCreateCustomProfileRef called\");\n    return NULL;\n}\n\nvoid* PJCPrintSettingsSetCustomProfilePath(void)\n{\n    if (verbose) puts(\"STUB: PJCPrintSettingsSetCustomProfilePath called\");\n    return NULL;\n}\n\nvoid* PJCPrinterCopyReadyMediaList(void)\n{\n    if (verbose) puts(\"STUB: PJCPrinterCopyReadyMediaList called\");\n    return NULL;\n}\n\nvoid* PJCPrinterGetDeviceID(void)\n{\n    if (verbose) puts(\"STUB: PJCPrinterGetDeviceID called\");\n    return NULL;\n}\n\nvoid* PJCPrinterProxyCreateURL(void)\n{\n    if (verbose) puts(\"STUB: PJCPrinterProxyCreateURL called\");\n    return NULL;\n}\n\nvoid* PJCPrinterSupportsReadyMedia(void)\n{\n    if (verbose) puts(\"STUB: PJCPrinterSupportsReadyMedia called\");\n    return NULL;\n}\n\nvoid* PJCPrinterSupportsThisCustomPaper(void)\n{\n    if (verbose) puts(\"STUB: PJCPrinterSupportsThisCustomPaper called\");\n    return NULL;\n}\n\nvoid* PJCRunWorkflowWithRenamedPDF(void)\n{\n    if (verbose) puts(\"STUB: PJCRunWorkflowWithRenamedPDF called\");\n    return NULL;\n}\n\nvoid* PJCSessionCreateCopyForAppKit(void)\n{\n    if (verbose) puts(\"STUB: PJCSessionCreateCopyForAppKit called\");\n    return NULL;\n}\n\nvoid* PJCSessionHasApplicationSetPrinter(void)\n{\n    if (verbose) puts(\"STUB: PJCSessionHasApplicationSetPrinter called\");\n    return NULL;\n}\n\nvoid* PJCSessionSetHideFileExtension(void)\n{\n    if (verbose) puts(\"STUB: PJCSessionSetHideFileExtension called\");\n    return NULL;\n}\n\nvoid* PJCSetPresetPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCSetPresetPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCSetPrintingPref(void)\n{\n    if (verbose) puts(\"STUB: PJCSetPrintingPref called\");\n    return NULL;\n}\n\nvoid* PJCTicketGetSrcImageableArea(void)\n{\n    if (verbose) puts(\"STUB: PJCTicketGetSrcImageableArea called\");\n    return NULL;\n}\n\nvoid* PJCTicketGetSrcOrientation(void)\n{\n    if (verbose) puts(\"STUB: PJCTicketGetSrcOrientation called\");\n    return NULL;\n}\n\nvoid* PJCTicketGetSrcPaperSize(void)\n{\n    if (verbose) puts(\"STUB: PJCTicketGetSrcPaperSize called\");\n    return NULL;\n}\n\nvoid* PJCTicketGetSrcResolution(void)\n{\n    if (verbose) puts(\"STUB: PJCTicketGetSrcResolution called\");\n    return NULL;\n}\n\nvoid* PJCTicketGetSrcScaling(void)\n{\n    if (verbose) puts(\"STUB: PJCTicketGetSrcScaling called\");\n    return NULL;\n}\n\nvoid* PMBackendExecIO(void)\n{\n    if (verbose) puts(\"STUB: PMBackendExecIO called\");\n    return NULL;\n}\n\nvoid* PMCFEqual(void)\n{\n    if (verbose) puts(\"STUB: PMCFEqual called\");\n    return NULL;\n}\n\nvoid* PMCGImageCreateWithEPSDataProvider(void)\n{\n    if (verbose) puts(\"STUB: PMCGImageCreateWithEPSDataProvider called\");\n    return NULL;\n}\n\nvoid* PMConvertFile(void)\n{\n    if (verbose) puts(\"STUB: PMConvertFile called\");\n    return NULL;\n}\n\nvoid* PMCopyAvailablePPDs(void)\n{\n    if (verbose) puts(\"STUB: PMCopyAvailablePPDs called\");\n    return NULL;\n}\n\nvoid* PMCopyCountry(void)\n{\n    if (verbose) puts(\"STUB: PMCopyCountry called\");\n    return NULL;\n}\n\nvoid* PMCopyLocalizedPPD(void)\n{\n    if (verbose) puts(\"STUB: PMCopyLocalizedPPD called\");\n    return NULL;\n}\n\nvoid* PMCopyPPDData(void)\n{\n    if (verbose) puts(\"STUB: PMCopyPPDData called\");\n    return NULL;\n}\n\nvoid* PMCopyPageFormat(void)\n{\n    if (verbose) puts(\"STUB: PMCopyPageFormat called\");\n    return NULL;\n}\n\nvoid* PMCopyPrintSettings(void)\n{\n    if (verbose) puts(\"STUB: PMCopyPrintSettings called\");\n    return NULL;\n}\n\nvoid* PMCopyUserDefaultPaperSize(void)\n{\n    if (verbose) puts(\"STUB: PMCopyUserDefaultPaperSize called\");\n    return NULL;\n}\n\nvoid* PMCreateCFArrayForPMObjects(void)\n{\n    if (verbose) puts(\"STUB: PMCreateCFArrayForPMObjects called\");\n    return NULL;\n}\n\nvoid* PMCreateGenericPrinter(void)\n{\n    if (verbose) puts(\"STUB: PMCreateGenericPrinter called\");\n    return NULL;\n}\n\nvoid* PMCreatePageFormat(void)\n{\n    if (verbose) puts(\"STUB: PMCreatePageFormat called\");\n    return NULL;\n}\n\nvoid* PMCreatePageFormatWithPMPaper(void)\n{\n    if (verbose) puts(\"STUB: PMCreatePageFormatWithPMPaper called\");\n    return NULL;\n}\n\nvoid* PMCreatePaperInfoTicketFromPPDPaperName(void)\n{\n    if (verbose) puts(\"STUB: PMCreatePaperInfoTicketFromPPDPaperName called\");\n    return NULL;\n}\n\nvoid* PMCreatePrintSettings(void)\n{\n    if (verbose) puts(\"STUB: PMCreatePrintSettings called\");\n    return NULL;\n}\n\nvoid* PMCreatePrinter(void)\n{\n    if (verbose) puts(\"STUB: PMCreatePrinter called\");\n    return NULL;\n}\n\nvoid* PMCreateProxy(void)\n{\n    if (verbose) puts(\"STUB: PMCreateProxy called\");\n    return NULL;\n}\n\nvoid* PMCreateSession(void)\n{\n    if (verbose) puts(\"STUB: PMCreateSession called\");\n    return NULL;\n}\n\nvoid* PMDebugSet_Boolean(void)\n{\n    if (verbose) puts(\"STUB: PMDebugSet_Boolean called\");\n    return NULL;\n}\n\nvoid* PMDebugSet_CFTypeRef(void)\n{\n    if (verbose) puts(\"STUB: PMDebugSet_CFTypeRef called\");\n    return NULL;\n}\n\nvoid* PMDebugSet_PMObject(void)\n{\n    if (verbose) puts(\"STUB: PMDebugSet_PMObject called\");\n    return NULL;\n}\n\nvoid* PMDebugSet_PMRect_p(void)\n{\n    if (verbose) puts(\"STUB: PMDebugSet_PMRect_p called\");\n    return NULL;\n}\n\nvoid* PMDebugSet_char_p(void)\n{\n    if (verbose) puts(\"STUB: PMDebugSet_char_p called\");\n    return NULL;\n}\n\nvoid* PMDebugSet_double(void)\n{\n    if (verbose) puts(\"STUB: PMDebugSet_double called\");\n    return NULL;\n}\n\nvoid* PMDebugSet_long(void)\n{\n    if (verbose) puts(\"STUB: PMDebugSet_long called\");\n    return NULL;\n}\n\nvoid* PMDebugSet_ulong(void)\n{\n    if (verbose) puts(\"STUB: PMDebugSet_ulong called\");\n    return NULL;\n}\n\nvoid* PMExecIO(void)\n{\n    if (verbose) puts(\"STUB: PMExecIO called\");\n    return NULL;\n}\n\nvoid* PMFindProxy(void)\n{\n    if (verbose) puts(\"STUB: PMFindProxy called\");\n    return NULL;\n}\n\nvoid* PMFlattenPageFormatToCFData(void)\n{\n    if (verbose) puts(\"STUB: PMFlattenPageFormatToCFData called\");\n    return NULL;\n}\n\nvoid* PMFlattenPageFormatToURL(void)\n{\n    if (verbose) puts(\"STUB: PMFlattenPageFormatToURL called\");\n    return NULL;\n}\n\nvoid* PMFlattenPrintSettingsToCFData(void)\n{\n    if (verbose) puts(\"STUB: PMFlattenPrintSettingsToCFData called\");\n    return NULL;\n}\n\nvoid* PMFlattenPrintSettingsToURL(void)\n{\n    if (verbose) puts(\"STUB: PMFlattenPrintSettingsToURL called\");\n    return NULL;\n}\n\nvoid* PMGetAdjustedPageRect(void)\n{\n    if (verbose) puts(\"STUB: PMGetAdjustedPageRect called\");\n    return NULL;\n}\n\nvoid* PMGetAdjustedPaperRect(void)\n{\n    if (verbose) puts(\"STUB: PMGetAdjustedPaperRect called\");\n    return NULL;\n}\n\nvoid* PMGetCollate(void)\n{\n    if (verbose) puts(\"STUB: PMGetCollate called\");\n    return NULL;\n}\n\nvoid* PMGetCopies(void)\n{\n    if (verbose) puts(\"STUB: PMGetCopies called\");\n    return NULL;\n}\n\nvoid* PMGetDuplex(void)\n{\n    if (verbose) puts(\"STUB: PMGetDuplex called\");\n    return NULL;\n}\n\nvoid* PMGetFirstPage(void)\n{\n    if (verbose) puts(\"STUB: PMGetFirstPage called\");\n    return NULL;\n}\n\nvoid* PMGetLastPage(void)\n{\n    if (verbose) puts(\"STUB: PMGetLastPage called\");\n    return NULL;\n}\n\nvoid* PMGetOrientation(void)\n{\n    if (verbose) puts(\"STUB: PMGetOrientation called\");\n    return NULL;\n}\n\nvoid* PMGetPageFormatExtendedData(void)\n{\n    if (verbose) puts(\"STUB: PMGetPageFormatExtendedData called\");\n    return NULL;\n}\n\nvoid* PMGetPageFormatPaper(void)\n{\n    if (verbose) puts(\"STUB: PMGetPageFormatPaper called\");\n    return NULL;\n}\n\nvoid* PMGetPageRange(void)\n{\n    if (verbose) puts(\"STUB: PMGetPageRange called\");\n    return NULL;\n}\n\nvoid* PMGetPrintSettingsExtendedData(void)\n{\n    if (verbose) puts(\"STUB: PMGetPrintSettingsExtendedData called\");\n    return NULL;\n}\n\nvoid* PMGetPrinterModel(void)\n{\n    if (verbose) puts(\"STUB: PMGetPrinterModel called\");\n    return NULL;\n}\n\nvoid* PMGetReverseOrder(void)\n{\n    if (verbose) puts(\"STUB: PMGetReverseOrder called\");\n    return NULL;\n}\n\nvoid* PMGetScale(void)\n{\n    if (verbose) puts(\"STUB: PMGetScale called\");\n    return NULL;\n}\n\nvoid* PMGetUnadjustedPageRect(void)\n{\n    if (verbose) puts(\"STUB: PMGetUnadjustedPageRect called\");\n    return NULL;\n}\n\nvoid* PMGetUnadjustedPaperRect(void)\n{\n    if (verbose) puts(\"STUB: PMGetUnadjustedPaperRect called\");\n    return NULL;\n}\n\nvoid* PMInlineWorkflowCopyItems(void)\n{\n    if (verbose) puts(\"STUB: PMInlineWorkflowCopyItems called\");\n    return NULL;\n}\n\nvoid* PMInstallCoercionHandlers(void)\n{\n    if (verbose) puts(\"STUB: PMInstallCoercionHandlers called\");\n    return NULL;\n}\n\nvoid* PMLaunchProxy(void)\n{\n    if (verbose) puts(\"STUB: PMLaunchProxy called\");\n    return NULL;\n}\n\nvoid* PMMonitorOnlineOfflineState(void)\n{\n    if (verbose) puts(\"STUB: PMMonitorOnlineOfflineState called\");\n    return NULL;\n}\n\nvoid* PMPDEBundleNeedsDisabledSandbox(void)\n{\n    if (verbose) puts(\"STUB: PMPDEBundleNeedsDisabledSandbox called\");\n    return NULL;\n}\n\nvoid* PMPageFormatComputeAdjustedRects(void)\n{\n    if (verbose) puts(\"STUB: PMPageFormatComputeAdjustedRects called\");\n    return NULL;\n}\n\nvoid* PMPageFormatComputeAdjustedRectsWithPrinter(void)\n{\n    if (verbose) puts(\"STUB: PMPageFormatComputeAdjustedRectsWithPrinter called\");\n    return NULL;\n}\n\nvoid* PMPageFormatCreateDataRepresentation(void)\n{\n    if (verbose) puts(\"STUB: PMPageFormatCreateDataRepresentation called\");\n    return NULL;\n}\n\nvoid* PMPageFormatCreateWithDataRepresentation(void)\n{\n    if (verbose) puts(\"STUB: PMPageFormatCreateWithDataRepresentation called\");\n    return NULL;\n}\n\nvoid* PMPageFormatGetPrinterID(void)\n{\n    if (verbose) puts(\"STUB: PMPageFormatGetPrinterID called\");\n    return NULL;\n}\n\nvoid* PMPaperAddToUserPrefs(void)\n{\n    if (verbose) puts(\"STUB: PMPaperAddToUserPrefs called\");\n    return NULL;\n}\n\nvoid* PMPaperCopyUserPrefs(void)\n{\n    if (verbose) puts(\"STUB: PMPaperCopyUserPrefs called\");\n    return NULL;\n}\n\nvoid* PMPaperCreateCustom(void)\n{\n    if (verbose) puts(\"STUB: PMPaperCreateCustom called\");\n    return NULL;\n}\n\nvoid* PMPaperCreateFromPaperInfo(void)\n{\n    if (verbose) puts(\"STUB: PMPaperCreateFromPaperInfo called\");\n    return NULL;\n}\n\nvoid* PMPaperCreateInternal(void)\n{\n    if (verbose) puts(\"STUB: PMPaperCreateInternal called\");\n    return NULL;\n}\n\nvoid* PMPaperCreateLocalizedName(void)\n{\n    if (verbose) puts(\"STUB: PMPaperCreateLocalizedName called\");\n    return NULL;\n}\n\nvoid* PMPaperCreatePMTicketRef(void)\n{\n    if (verbose) puts(\"STUB: PMPaperCreatePMTicketRef called\");\n    return NULL;\n}\n\nvoid* PMPaperGetHeight(void)\n{\n    if (verbose) puts(\"STUB: PMPaperGetHeight called\");\n    return NULL;\n}\n\nvoid* PMPaperGetID(void)\n{\n    if (verbose) puts(\"STUB: PMPaperGetID called\");\n    return NULL;\n}\n\nvoid* PMPaperGetMargins(void)\n{\n    if (verbose) puts(\"STUB: PMPaperGetMargins called\");\n    return NULL;\n}\n\nvoid* PMPaperGetName(void)\n{\n    if (verbose) puts(\"STUB: PMPaperGetName called\");\n    return NULL;\n}\n\nvoid* PMPaperGetPPDPaperName(void)\n{\n    if (verbose) puts(\"STUB: PMPaperGetPPDPaperName called\");\n    return NULL;\n}\n\nvoid* PMPaperGetPrinterID(void)\n{\n    if (verbose) puts(\"STUB: PMPaperGetPrinterID called\");\n    return NULL;\n}\n\nvoid* PMPaperGetWidth(void)\n{\n    if (verbose) puts(\"STUB: PMPaperGetWidth called\");\n    return NULL;\n}\n\nvoid* PMPaperIsCustom(void)\n{\n    if (verbose) puts(\"STUB: PMPaperIsCustom called\");\n    return NULL;\n}\n\nvoid* PMPaperRemoveFromUserPrefs(void)\n{\n    if (verbose) puts(\"STUB: PMPaperRemoveFromUserPrefs called\");\n    return NULL;\n}\n\nvoid* PMPresetCopyName(void)\n{\n    if (verbose) puts(\"STUB: PMPresetCopyName called\");\n    return NULL;\n}\n\nvoid* PMPresetCreatePageFormat(void)\n{\n    if (verbose) puts(\"STUB: PMPresetCreatePageFormat called\");\n    return NULL;\n}\n\nvoid* PMPresetCreatePrintSettings(void)\n{\n    if (verbose) puts(\"STUB: PMPresetCreatePrintSettings called\");\n    return NULL;\n}\n\nvoid* PMPresetGetAttributes(void)\n{\n    if (verbose) puts(\"STUB: PMPresetGetAttributes called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsCopyAsDictionary(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsCopyAsDictionary called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsCopyKeys(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsCopyKeys called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsCreateDataRepresentation(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsCreateDataRepresentation called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsCreateWithDataRepresentation(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsCreateWithDataRepresentation called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsGetJobName(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsGetJobName called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsGetValue(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsGetValue called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsSetJobName(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsSetJobName called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsSetValue(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsSetValue called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsToOptions(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsToOptions called\");\n    return NULL;\n}\n\nvoid* PMPrintSettingsToOptionsWithPrinterAndPageFormat(void)\n{\n    if (verbose) puts(\"STUB: PMPrintSettingsToOptionsWithPrinterAndPageFormat called\");\n    return NULL;\n}\n\nvoid* PMPrinterCanDuplex(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCanDuplex called\");\n    return NULL;\n}\n\nvoid* PMPrinterCanIdentify(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCanIdentify called\");\n    return NULL;\n}\n\nvoid* PMPrinterCanScan(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCanScan called\");\n    return NULL;\n}\n\nvoid* PMPrinterCancelConnect(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCancelConnect called\");\n    return NULL;\n}\n\nvoid* PMPrinterChargeInfoURI(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterChargeInfoURI called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyACL(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyACL called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyDefaultUserCredentials(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyDefaultUserCredentials called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyDescriptionURL(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyDescriptionURL called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyDeviceURI(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyDeviceURI called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyFinalDeviceURI(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyFinalDeviceURI called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyHostName(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyHostName called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyMembers(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyMembers called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyPresets(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyPresets called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyRequiredUserCredentials(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyRequiredUserCredentials called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyScannerUUID(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyScannerUUID called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyScanningApp(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyScanningApp called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyScanningAppPath(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyScanningAppPath called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyState(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyState called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopySuppliesURI(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopySuppliesURI called\");\n    return NULL;\n}\n\nvoid* PMPrinterCopyTempPPDURL(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCopyTempPPDURL called\");\n    return NULL;\n}\n\nvoid* PMPrinterCreateFromPrinterID(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCreateFromPrinterID called\");\n    return NULL;\n}\n\nvoid* PMPrinterCreatePaperInfoListForMenu(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCreatePaperInfoListForMenu called\");\n    return NULL;\n}\n\nvoid* PMPrinterCreatePaperInfoListForMenuPriv(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterCreatePaperInfoListForMenuPriv called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetCMDeviceID(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetCMDeviceID called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetCommInfo(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetCommInfo called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetConsumables(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetConsumables called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetConsumablesDisclaimer(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetConsumablesDisclaimer called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetConsumablesOptionalText(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetConsumablesOptionalText called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetCustomPaperSizeHardwareMargins(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetCustomPaperSizeHardwareMargins called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetCustomPaperSizeHardwareSheetSize(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetCustomPaperSizeHardwareSheetSize called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetDriverCreator(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetDriverCreator called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetDriverReleaseInfo(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetDriverReleaseInfo called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetID(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetID called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetIconData(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetIconData called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetImage(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetImage called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetIndexedPrinterResolution(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetIndexedPrinterResolution called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetLanguageInfo(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetLanguageInfo called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetLocation(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetLocation called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetMakeAndModelName(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetMakeAndModelName called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetMarkerChangeTime(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetMarkerChangeTime called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetMimeTypes(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetMimeTypes called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetName(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetName called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetOutputResolution(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetOutputResolution called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetPaperList(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetPaperList called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetPrinterResolutionCount(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetPrinterResolutionCount called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetPrinterValue(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetPrinterValue called\");\n    return NULL;\n}\n\nvoid* PMPrinterGetState(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterGetState called\");\n    return NULL;\n}\n\nvoid* PMPrinterHasCustomPaperSizes(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterHasCustomPaperSizes called\");\n    return NULL;\n}\n\nvoid* PMPrinterIdentify(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIdentify called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsAirPrint(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsAirPrint called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsAllowed(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsAllowed called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsClass(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsClass called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsDefault(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsDefault called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsDirectConnect(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsDirectConnect called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsFavorite(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsFavorite called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsFax(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsFax called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsGenericPrinter(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsGenericPrinter called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsLocked(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsLocked called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsPostScriptCapable(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsPostScriptCapable called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsPostScriptPrinter(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsPostScriptPrinter called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsRemote(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsRemote called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsScanner(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsScanner called\");\n    return NULL;\n}\n\nvoid* PMPrinterIsShared(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterIsShared called\");\n    return NULL;\n}\n\nvoid* PMPrinterOpenSuppliesURI(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterOpenSuppliesURI called\");\n    return NULL;\n}\n\nvoid* PMPrinterPrintWithFile(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterPrintWithFile called\");\n    return NULL;\n}\n\nvoid* PMPrinterPrintWithProvider(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterPrintWithProvider called\");\n    return NULL;\n}\n\nvoid* PMPrinterRequiresAccountingInformation(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterRequiresAccountingInformation called\");\n    return NULL;\n}\n\nvoid* PMPrinterRequiresUserCredentials(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterRequiresUserCredentials called\");\n    return NULL;\n}\n\nvoid* PMPrinterSendCommand(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSendCommand called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetACL(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetACL called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetConsumables(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetConsumables called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetConsumablesDisclaimer(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetConsumablesDisclaimer called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetConsumablesOptionalText(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetConsumablesOptionalText called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetDefault(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetDefault called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetFavorite(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetFavorite called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetLocation(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetLocation called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetMarkerChangeTime(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetMarkerChangeTime called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetModel(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetModel called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetName(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetName called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetOutputResolution(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetOutputResolution called\");\n    return NULL;\n}\n\nvoid* PMPrinterSetShared(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSetShared called\");\n    return NULL;\n}\n\nvoid* PMPrinterStartConnect(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterStartConnect called\");\n    return NULL;\n}\n\nvoid* PMPrinterStartMonitoring(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterStartMonitoring called\");\n    return NULL;\n}\n\nvoid* PMPrinterStopMonitoring(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterStopMonitoring called\");\n    return NULL;\n}\n\nvoid* PMPrinterSupportsMatchingMode(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterSupportsMatchingMode called\");\n    return NULL;\n}\n\nvoid* PMPrinterUsesTCP(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterUsesTCP called\");\n    return NULL;\n}\n\nvoid* PMPrinterWritePostScriptToURL(void)\n{\n    if (verbose) puts(\"STUB: PMPrinterWritePostScriptToURL called\");\n    return NULL;\n}\n\nvoid* PMRelease(void)\n{\n    if (verbose) puts(\"STUB: PMRelease called\");\n    return NULL;\n}\n\nvoid* PMRetain(void)\n{\n    if (verbose) puts(\"STUB: PMRetain called\");\n    return NULL;\n}\n\nvoid* PMServerCopyJobLog(void)\n{\n    if (verbose) puts(\"STUB: PMServerCopyJobLog called\");\n    return NULL;\n}\n\nvoid* PMServerCreateDeviceList(void)\n{\n    if (verbose) puts(\"STUB: PMServerCreateDeviceList called\");\n    return NULL;\n}\n\nvoid* PMServerCreatePrinterList(void)\n{\n    if (verbose) puts(\"STUB: PMServerCreatePrinterList called\");\n    return NULL;\n}\n\nvoid* PMServerFavoritesListHasChanged(void)\n{\n    if (verbose) puts(\"STUB: PMServerFavoritesListHasChanged called\");\n    return NULL;\n}\n\nvoid* PMServerLaunchPrinterBrowser(void)\n{\n    if (verbose) puts(\"STUB: PMServerLaunchPrinterBrowser called\");\n    return NULL;\n}\n\nvoid* PMServerPrinterListHasChanged(void)\n{\n    if (verbose) puts(\"STUB: PMServerPrinterListHasChanged called\");\n    return NULL;\n}\n\nvoid* PMSessionBeginCGDocumentNoDialog(void)\n{\n    if (verbose) puts(\"STUB: PMSessionBeginCGDocumentNoDialog called\");\n    return NULL;\n}\n\nvoid* PMSessionBeginDocumentNoDialogPrivate(void)\n{\n    if (verbose) puts(\"STUB: PMSessionBeginDocumentNoDialogPrivate called\");\n    return NULL;\n}\n\nvoid* PMSessionBeginPageNoDialog(void)\n{\n    if (verbose) puts(\"STUB: PMSessionBeginPageNoDialog called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyApplicationOutputIntent(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyApplicationOutputIntent called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyApplicationOutputIntentWithColorSyncProfiles(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyApplicationOutputIntentWithColorSyncProfiles called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyCurrentPrinterColorSyncProfile(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyCurrentPrinterColorSyncProfile called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyCurrentPrinterProfile(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyCurrentPrinterProfile called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyDefaultOutputIntent(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyDefaultOutputIntent called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyDefaultOutputIntentWithColorSyncProfiles(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyDefaultOutputIntentWithColorSyncProfiles called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyDestinationFormat(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyDestinationFormat called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyDestinationLocation(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyDestinationLocation called\");\n    return NULL;\n}\n\nvoid* PMSessionCopyOutputFormatList(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCopyOutputFormatList called\");\n    return NULL;\n}\n\nvoid* PMSessionCreateCurrentPrinterColorSpace(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCreateCurrentPrinterColorSpace called\");\n    return NULL;\n}\n\nvoid* PMSessionCreatePageFormatList(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCreatePageFormatList called\");\n    return NULL;\n}\n\nvoid* PMSessionCreatePrinterList(void)\n{\n    if (verbose) puts(\"STUB: PMSessionCreatePrinterList called\");\n    return NULL;\n}\n\nvoid* PMSessionDefaultPageFormat(void)\n{\n    if (verbose) puts(\"STUB: PMSessionDefaultPageFormat called\");\n    return NULL;\n}\n\nvoid* PMSessionDefaultPrintSettings(void)\n{\n    if (verbose) puts(\"STUB: PMSessionDefaultPrintSettings called\");\n    return NULL;\n}\n\nvoid* PMSessionDisablePresetsPopUp(void)\n{\n    if (verbose) puts(\"STUB: PMSessionDisablePresetsPopUp called\");\n    return NULL;\n}\n\nvoid* PMSessionDisablePrinterPresetsPrivate(void)\n{\n    if (verbose) puts(\"STUB: PMSessionDisablePrinterPresetsPrivate called\");\n    return NULL;\n}\n\nvoid* PMSessionEnablePresetsPopUp(void)\n{\n    if (verbose) puts(\"STUB: PMSessionEnablePresetsPopUp called\");\n    return NULL;\n}\n\nvoid* PMSessionEnablePrinterPresetsPrivate(void)\n{\n    if (verbose) puts(\"STUB: PMSessionEnablePrinterPresetsPrivate called\");\n    return NULL;\n}\n\nvoid* PMSessionEndDocumentNoDialog(void)\n{\n    if (verbose) puts(\"STUB: PMSessionEndDocumentNoDialog called\");\n    return NULL;\n}\n\nvoid* PMSessionEndPageNoDialog(void)\n{\n    if (verbose) puts(\"STUB: PMSessionEndPageNoDialog called\");\n    return NULL;\n}\n\nvoid* PMSessionError(void)\n{\n    if (verbose) puts(\"STUB: PMSessionError called\");\n    return NULL;\n}\n\nvoid* PMSessionGetCGGraphicsContext(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetCGGraphicsContext called\");\n    return NULL;\n}\n\nvoid* PMSessionGetColorMatchingMode(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetColorMatchingMode called\");\n    return NULL;\n}\n\nvoid* PMSessionGetColorMatchingMode2(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetColorMatchingMode2 called\");\n    return NULL;\n}\n\nvoid* PMSessionGetColorMatchingModeLock(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetColorMatchingModeLock called\");\n    return NULL;\n}\n\nvoid* PMSessionGetCurrentPrinter(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetCurrentPrinter called\");\n    return NULL;\n}\n\nvoid* PMSessionGetDataFromSession(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetDataFromSession called\");\n    return NULL;\n}\n\nvoid* PMSessionGetDestinationType(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetDestinationType called\");\n    return NULL;\n}\n\nvoid* PMSessionGetDocumentTags(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetDocumentTags called\");\n    return NULL;\n}\n\nvoid* PMSessionGetGenericPrinter(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetGenericPrinter called\");\n    return NULL;\n}\n\nvoid* PMSessionGetHideFileExtension(void)\n{\n    if (verbose) puts(\"STUB: PMSessionGetHideFileExtension called\");\n    return NULL;\n}\n\nvoid* PMSessionSetApplicationOutputIntent(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetApplicationOutputIntent called\");\n    return NULL;\n}\n\nvoid* PMSessionSetApplicationOutputIntentWithColorSyncProfiles(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetApplicationOutputIntentWithColorSyncProfiles called\");\n    return NULL;\n}\n\nvoid* PMSessionSetColorMatchingMode(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetColorMatchingMode called\");\n    return NULL;\n}\n\nvoid* PMSessionSetColorMatchingModeLock(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetColorMatchingModeLock called\");\n    return NULL;\n}\n\nvoid* PMSessionSetColorMatchingModeNoLock(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetColorMatchingModeNoLock called\");\n    return NULL;\n}\n\nvoid* PMSessionSetCurrentPMPrinter(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetCurrentPMPrinter called\");\n    return NULL;\n}\n\nvoid* PMSessionSetDataInSession(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetDataInSession called\");\n    return NULL;\n}\n\nvoid* PMSessionSetDefaultButtonTitleCFString(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetDefaultButtonTitleCFString called\");\n    return NULL;\n}\n\nvoid* PMSessionSetDestination(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetDestination called\");\n    return NULL;\n}\n\nvoid* PMSessionSetDocumentTags(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetDocumentTags called\");\n    return NULL;\n}\n\nvoid* PMSessionSetError(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetError called\");\n    return NULL;\n}\n\nvoid* PMSessionSetHideFileExtension(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetHideFileExtension called\");\n    return NULL;\n}\n\nvoid* PMSessionSetPrintingDialogTitleCFString(void)\n{\n    if (verbose) puts(\"STUB: PMSessionSetPrintingDialogTitleCFString called\");\n    return NULL;\n}\n\nvoid* PMSessionValidatePageFormat(void)\n{\n    if (verbose) puts(\"STUB: PMSessionValidatePageFormat called\");\n    return NULL;\n}\n\nvoid* PMSessionValidatePrintSettings(void)\n{\n    if (verbose) puts(\"STUB: PMSessionValidatePrintSettings called\");\n    return NULL;\n}\n\nvoid* PMSetCollate(void)\n{\n    if (verbose) puts(\"STUB: PMSetCollate called\");\n    return NULL;\n}\n\nvoid* PMSetCopies(void)\n{\n    if (verbose) puts(\"STUB: PMSetCopies called\");\n    return NULL;\n}\n\nvoid* PMSetCopyCollate(void)\n{\n    if (verbose) puts(\"STUB: PMSetCopyCollate called\");\n    return NULL;\n}\n\nvoid* PMSetDuplex(void)\n{\n    if (verbose) puts(\"STUB: PMSetDuplex called\");\n    return NULL;\n}\n\nvoid* PMSetFirstPage(void)\n{\n    if (verbose) puts(\"STUB: PMSetFirstPage called\");\n    return NULL;\n}\n\nvoid* PMSetLastPage(void)\n{\n    if (verbose) puts(\"STUB: PMSetLastPage called\");\n    return NULL;\n}\n\nvoid* PMSetOrientation(void)\n{\n    if (verbose) puts(\"STUB: PMSetOrientation called\");\n    return NULL;\n}\n\nvoid* PMSetPageFormatExtendedData(void)\n{\n    if (verbose) puts(\"STUB: PMSetPageFormatExtendedData called\");\n    return NULL;\n}\n\nvoid* PMSetPageRange(void)\n{\n    if (verbose) puts(\"STUB: PMSetPageRange called\");\n    return NULL;\n}\n\nvoid* PMSetPrintSettingsExtendedData(void)\n{\n    if (verbose) puts(\"STUB: PMSetPrintSettingsExtendedData called\");\n    return NULL;\n}\n\nvoid* PMSetReverseOrder(void)\n{\n    if (verbose) puts(\"STUB: PMSetReverseOrder called\");\n    return NULL;\n}\n\nvoid* PMSetScale(void)\n{\n    if (verbose) puts(\"STUB: PMSetScale called\");\n    return NULL;\n}\n\nvoid* PMSetUserDefaultPaperSize(void)\n{\n    if (verbose) puts(\"STUB: PMSetUserDefaultPaperSize called\");\n    return NULL;\n}\n\nvoid* PMShouldEnableSupplies(void)\n{\n    if (verbose) puts(\"STUB: PMShouldEnableSupplies called\");\n    return NULL;\n}\n\nvoid* PMTicketConfirmTicket(void)\n{\n    if (verbose) puts(\"STUB: PMTicketConfirmTicket called\");\n    return NULL;\n}\n\nvoid* PMTicketContainsItem(void)\n{\n    if (verbose) puts(\"STUB: PMTicketContainsItem called\");\n    return NULL;\n}\n\nvoid* PMTicketContainsTicket(void)\n{\n    if (verbose) puts(\"STUB: PMTicketContainsTicket called\");\n    return NULL;\n}\n\nvoid* PMTicketCopy(void)\n{\n    if (verbose) puts(\"STUB: PMTicketCopy called\");\n    return NULL;\n}\n\nvoid* PMTicketCopyItem(void)\n{\n    if (verbose) puts(\"STUB: PMTicketCopyItem called\");\n    return NULL;\n}\n\nvoid* PMTicketCopyKeys(void)\n{\n    if (verbose) puts(\"STUB: PMTicketCopyKeys called\");\n    return NULL;\n}\n\nvoid* PMTicketCreate(void)\n{\n    if (verbose) puts(\"STUB: PMTicketCreate called\");\n    return NULL;\n}\n\nvoid* PMTicketCreateDict(void)\n{\n    if (verbose) puts(\"STUB: PMTicketCreateDict called\");\n    return NULL;\n}\n\nvoid* PMTicketCreateMutableDict(void)\n{\n    if (verbose) puts(\"STUB: PMTicketCreateMutableDict called\");\n    return NULL;\n}\n\nvoid* PMTicketCreateTemplate(void)\n{\n    if (verbose) puts(\"STUB: PMTicketCreateTemplate called\");\n    return NULL;\n}\n\nvoid* PMTicketDeleteItem(void)\n{\n    if (verbose) puts(\"STUB: PMTicketDeleteItem called\");\n    return NULL;\n}\n\nvoid* PMTicketFillFromArray(void)\n{\n    if (verbose) puts(\"STUB: PMTicketFillFromArray called\");\n    return NULL;\n}\n\nvoid* PMTicketGetAPIVersion(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetAPIVersion called\");\n    return NULL;\n}\n\nvoid* PMTicketGetAllocator(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetAllocator called\");\n    return NULL;\n}\n\nvoid* PMTicketGetBoolean(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetBoolean called\");\n    return NULL;\n}\n\nvoid* PMTicketGetBytes(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetBytes called\");\n    return NULL;\n}\n\nvoid* PMTicketGetCFArray(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetCFArray called\");\n    return NULL;\n}\n\nvoid* PMTicketGetCFBoolean(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetCFBoolean called\");\n    return NULL;\n}\n\nvoid* PMTicketGetCFData(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetCFData called\");\n    return NULL;\n}\n\nvoid* PMTicketGetCFDate(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetCFDate called\");\n    return NULL;\n}\n\nvoid* PMTicketGetCFDictionary(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetCFDictionary called\");\n    return NULL;\n}\n\nvoid* PMTicketGetCFNumber(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetCFNumber called\");\n    return NULL;\n}\n\nvoid* PMTicketGetCFString(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetCFString called\");\n    return NULL;\n}\n\nvoid* PMTicketGetCString(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetCString called\");\n    return NULL;\n}\n\nvoid* PMTicketGetDouble(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetDouble called\");\n    return NULL;\n}\n\nvoid* PMTicketGetEnumType(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetEnumType called\");\n    return NULL;\n}\n\nvoid* PMTicketGetItem(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetItem called\");\n    return NULL;\n}\n\nvoid* PMTicketGetPMRect(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetPMRect called\");\n    return NULL;\n}\n\nvoid* PMTicketGetPMResolution(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetPMResolution called\");\n    return NULL;\n}\n\nvoid* PMTicketGetPString(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetPString called\");\n    return NULL;\n}\n\nvoid* PMTicketGetRetainCount(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetRetainCount called\");\n    return NULL;\n}\n\nvoid* PMTicketGetSInt32(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetSInt32 called\");\n    return NULL;\n}\n\nvoid* PMTicketGetThisBoolean(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetThisBoolean called\");\n    return NULL;\n}\n\nvoid* PMTicketGetThisCString(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetThisCString called\");\n    return NULL;\n}\n\nvoid* PMTicketGetThisItem(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetThisItem called\");\n    return NULL;\n}\n\nvoid* PMTicketGetThisPMRect(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetThisPMRect called\");\n    return NULL;\n}\n\nvoid* PMTicketGetThisSInt32(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetThisSInt32 called\");\n    return NULL;\n}\n\nvoid* PMTicketGetThisTypedItem(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetThisTypedItem called\");\n    return NULL;\n}\n\nvoid* PMTicketGetTicket(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetTicket called\");\n    return NULL;\n}\n\nvoid* PMTicketGetType(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetType called\");\n    return NULL;\n}\n\nvoid* PMTicketGetUInt32(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetUInt32 called\");\n    return NULL;\n}\n\nvoid* PMTicketGetUTF8String(void)\n{\n    if (verbose) puts(\"STUB: PMTicketGetUTF8String called\");\n    return NULL;\n}\n\nvoid* PMTicketReadXMLFromCFURLRef(void)\n{\n    if (verbose) puts(\"STUB: PMTicketReadXMLFromCFURLRef called\");\n    return NULL;\n}\n\nvoid* PMTicketReadXMLFromFile(void)\n{\n    if (verbose) puts(\"STUB: PMTicketReadXMLFromFile called\");\n    return NULL;\n}\n\nvoid* PMTicketRelease(void)\n{\n    if (verbose) puts(\"STUB: PMTicketRelease called\");\n    return NULL;\n}\n\nvoid* PMTicketReleaseAndClear(void)\n{\n    if (verbose) puts(\"STUB: PMTicketReleaseAndClear called\");\n    return NULL;\n}\n\nvoid* PMTicketReleaseItem(void)\n{\n    if (verbose) puts(\"STUB: PMTicketReleaseItem called\");\n    return NULL;\n}\n\nvoid* PMTicketRemoveTicket(void)\n{\n    if (verbose) puts(\"STUB: PMTicketRemoveTicket called\");\n    return NULL;\n}\n\nvoid* PMTicketRetain(void)\n{\n    if (verbose) puts(\"STUB: PMTicketRetain called\");\n    return NULL;\n}\n\nvoid* PMTicketSetBoolean(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetBoolean called\");\n    return NULL;\n}\n\nvoid* PMTicketSetBytes(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetBytes called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCFArray(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCFArray called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCFBoolean(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCFBoolean called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCFData(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCFData called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCFDate(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCFDate called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCFDictionary(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCFDictionary called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCFNumber(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCFNumber called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCFString(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCFString called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCString(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCString called\");\n    return NULL;\n}\n\nvoid* PMTicketSetCStringArray(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetCStringArray called\");\n    return NULL;\n}\n\nvoid* PMTicketSetDouble(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetDouble called\");\n    return NULL;\n}\n\nvoid* PMTicketSetDoubleArray(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetDoubleArray called\");\n    return NULL;\n}\n\nvoid* PMTicketSetItem(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetItem called\");\n    return NULL;\n}\n\nvoid* PMTicketSetPMRect(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetPMRect called\");\n    return NULL;\n}\n\nvoid* PMTicketSetPMRectArray(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetPMRectArray called\");\n    return NULL;\n}\n\nvoid* PMTicketSetPMResolution(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetPMResolution called\");\n    return NULL;\n}\n\nvoid* PMTicketSetPMResolutionArray(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetPMResolutionArray called\");\n    return NULL;\n}\n\nvoid* PMTicketSetPString(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetPString called\");\n    return NULL;\n}\n\nvoid* PMTicketSetSInt32(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetSInt32 called\");\n    return NULL;\n}\n\nvoid* PMTicketSetSInt32Array(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetSInt32Array called\");\n    return NULL;\n}\n\nvoid* PMTicketSetTemplate(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetTemplate called\");\n    return NULL;\n}\n\nvoid* PMTicketSetTicket(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetTicket called\");\n    return NULL;\n}\n\nvoid* PMTicketSetUInt32(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetUInt32 called\");\n    return NULL;\n}\n\nvoid* PMTicketSetUInt32Array(void)\n{\n    if (verbose) puts(\"STUB: PMTicketSetUInt32Array called\");\n    return NULL;\n}\n\nvoid* PMTicketToLightXML(void)\n{\n    if (verbose) puts(\"STUB: PMTicketToLightXML called\");\n    return NULL;\n}\n\nvoid* PMTicketToXML(void)\n{\n    if (verbose) puts(\"STUB: PMTicketToXML called\");\n    return NULL;\n}\n\nvoid* PMTicketValidate(void)\n{\n    if (verbose) puts(\"STUB: PMTicketValidate called\");\n    return NULL;\n}\n\nvoid* PMTicketWriteXML(void)\n{\n    if (verbose) puts(\"STUB: PMTicketWriteXML called\");\n    return NULL;\n}\n\nvoid* PMTicketWriteXMLToFile(void)\n{\n    if (verbose) puts(\"STUB: PMTicketWriteXMLToFile called\");\n    return NULL;\n}\n\nvoid* PMUnflattenPageFormatWithCFData(void)\n{\n    if (verbose) puts(\"STUB: PMUnflattenPageFormatWithCFData called\");\n    return NULL;\n}\n\nvoid* PMUnflattenPageFormatWithURL(void)\n{\n    if (verbose) puts(\"STUB: PMUnflattenPageFormatWithURL called\");\n    return NULL;\n}\n\nvoid* PMUnflattenPrintSettingsWithCFData(void)\n{\n    if (verbose) puts(\"STUB: PMUnflattenPrintSettingsWithCFData called\");\n    return NULL;\n}\n\nvoid* PMUnflattenPrintSettingsWithURL(void)\n{\n    if (verbose) puts(\"STUB: PMUnflattenPrintSettingsWithURL called\");\n    return NULL;\n}\n\nvoid* PMUpdateProxy(void)\n{\n    if (verbose) puts(\"STUB: PMUpdateProxy called\");\n    return NULL;\n}\n\nvoid* PMWorkflowCopyItems(void)\n{\n    if (verbose) puts(\"STUB: PMWorkflowCopyItems called\");\n    return NULL;\n}\n\nvoid* PMWorkflowSubmitPDFWithOptions(void)\n{\n    if (verbose) puts(\"STUB: PMWorkflowSubmitPDFWithOptions called\");\n    return NULL;\n}\n\nvoid* PMWorkflowSubmitPDFWithSettings(void)\n{\n    if (verbose) puts(\"STUB: PMWorkflowSubmitPDFWithSettings called\");\n    return NULL;\n}\n\nvoid* PMWriteCFDataToFile(void)\n{\n    if (verbose) puts(\"STUB: PMWriteCFDataToFile called\");\n    return NULL;\n}\n\nvoid* PMXMLToTicket(void)\n{\n    if (verbose) puts(\"STUB: PMXMLToTicket called\");\n    return NULL;\n}\n\nvoid* PMfprintf(void)\n{\n    if (verbose) puts(\"STUB: PMfprintf called\");\n    return NULL;\n}\n\nvoid* _ZN12PMBaseObject14SetAppReadOnlyEh(void)\n{\n    if (verbose) puts(\"STUB: _ZN12PMBaseObject14SetAppReadOnlyEh called\");\n    return NULL;\n}\n\nvoid* _ZN12PMBaseObject15CopyObjectStateEPS_(void)\n{\n    if (verbose) puts(\"STUB: _ZN12PMBaseObject15CopyObjectStateEPS_ called\");\n    return NULL;\n}\n\nvoid* _ZN12PMBaseObject16CreateEmptyArrayEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN12PMBaseObject16CreateEmptyArrayEv called\");\n    return NULL;\n}\n\nvoid* _ZN14OpaquePMPresetC1EPK14__CFDictionary(void)\n{\n    if (verbose) puts(\"STUB: _ZN14OpaquePMPresetC1EPK14__CFDictionary called\");\n    return NULL;\n}\n\nvoid* _ZN14OpaquePMPresetC2EPK14__CFDictionary(void)\n{\n    if (verbose) puts(\"STUB: _ZN14OpaquePMPresetC2EPK14__CFDictionary called\");\n    return NULL;\n}\n\nvoid* _ZN15OpaquePMPrinter14GetPrinterNameEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN15OpaquePMPrinter14GetPrinterNameEv called\");\n    return NULL;\n}\n\nvoid* _ZN15OpaquePMPrinter14IsQueueStoppedEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN15OpaquePMPrinter14IsQueueStoppedEv called\");\n    return NULL;\n}\n\nvoid* _ZN15OpaquePMPrinter16IsGenericPrinterEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN15OpaquePMPrinter16IsGenericPrinterEv called\");\n    return NULL;\n}\n\nvoid* _ZN15OpaquePMPrinter19GetPaperListForMenuEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN15OpaquePMPrinter19GetPaperListForMenuEv called\");\n    return NULL;\n}\n\nvoid* _ZN15OpaquePMPrinter19SetPaperListForMenuEPK9__CFArray(void)\n{\n    if (verbose) puts(\"STUB: _ZN15OpaquePMPrinter19SetPaperListForMenuEPK9__CFArray called\");\n    return NULL;\n}\n\nvoid* _ZN15OpaquePMPrinter22IsPrinterDirectConnectEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN15OpaquePMPrinter22IsPrinterDirectConnectEv called\");\n    return NULL;\n}\n\nvoid* _ZN18OpaquePMPageFormat21PJCValidPageFormatKeyEPS_(void)\n{\n    if (verbose) puts(\"STUB: _ZN18OpaquePMPageFormat21PJCValidPageFormatKeyEPS_ called\");\n    return NULL;\n}\n\nvoid* _ZN18PMTicketBaseObject12GetTicketRefEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN18PMTicketBaseObject12GetTicketRefEv called\");\n    return NULL;\n}\n\nvoid* _ZN18PMTicketBaseObject12SetTicketRefEP17OpaquePMTicketRef(void)\n{\n    if (verbose) puts(\"STUB: _ZN18PMTicketBaseObject12SetTicketRefEP17OpaquePMTicketRef called\");\n    return NULL;\n}\n\nvoid* _ZN18PMTicketBaseObject23ReleaseAndReplaceTicketEP17OpaquePMTicketRef(void)\n{\n    if (verbose) puts(\"STUB: _ZN18PMTicketBaseObject23ReleaseAndReplaceTicketEP17OpaquePMTicketRef called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession10ClearErrorEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession10ClearErrorEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession10SetPreviewEhj(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession10SetPreviewEhj called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession12GetJobTicketEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession12GetJobTicketEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession16GetSheetDoneProcEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession16GetSheetDoneProcEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession16GetXPCConnectionEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession16GetXPCConnectionEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession16SetSheetDoneProcEPFvPS_P15OpaqueWindowPtrhE(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession16SetSheetDoneProcEPFvPS_P15OpaqueWindowPtrhE called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession16SetXPCConnectionEPU24objcproto13OS_xpc_object8NSObject(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession16SetXPCConnectionEPU24objcproto13OS_xpc_object8NSObject called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession17GetCurrentPrinterEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession17GetCurrentPrinterEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession17GetDocumentWindowEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession17GetDocumentWindowEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession17SetCurrentPrinterEP15OpaquePMPrinter(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession17SetCurrentPrinterEP15OpaquePMPrinter called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession17SetCurrentPrinterEP15OpaquePMPrinterh(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession17SetCurrentPrinterEP15OpaquePMPrinterh called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession17SetDocumentWindowEP15OpaqueWindowPtr(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession17SetDocumentWindowEP15OpaqueWindowPtr called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession19SetDataInDictionaryEPK10__CFStringPKv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession19SetDataInDictionaryEPK10__CFStringPKv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession21GetEnablePresetsPopUpEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession21GetEnablePresetsPopUpEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession21GetPresetGraphicsTypeEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession21GetPresetGraphicsTypeEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession21SetPresetGraphicsTypeEPK10__CFString(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession21SetPresetGraphicsTypeEPK10__CFString called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession23PJCValidPrintSessionKeyEPS_(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession23PJCValidPrintSessionKeyEPS_ called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession24GetDefaultButtonTitleRefEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession24GetDefaultButtonTitleRefEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession25GetPrintingDialogTitleRefEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession25GetPrintingDialogTitleRefEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession7PreviewEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession7PreviewEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession8GetErrorEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession8GetErrorEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession8GetStateEv(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession8GetStateEv called\");\n    return NULL;\n}\n\nvoid* _ZN20OpaquePMPrintSession8SetErrorEi(void)\n{\n    if (verbose) puts(\"STUB: _ZN20OpaquePMPrintSession8SetErrorEi called\");\n    return NULL;\n}\n\nvoid* _ZN21OpaquePMPrintSettings14PJCGetLastPageEPj(void)\n{\n    if (verbose) puts(\"STUB: _ZN21OpaquePMPrintSettings14PJCGetLastPageEPj called\");\n    return NULL;\n}\n\nvoid* _ZN21OpaquePMPrintSettings14PJCSetLastPageEP17OpaquePMTicketRefjhh(void)\n{\n    if (verbose) puts(\"STUB: _ZN21OpaquePMPrintSettings14PJCSetLastPageEP17OpaquePMTicketRefjhh called\");\n    return NULL;\n}\n\nvoid* _ZN21OpaquePMPrintSettings14PJCSetLastPageEjhh(void)\n{\n    if (verbose) puts(\"STUB: _ZN21OpaquePMPrintSettings14PJCSetLastPageEjhh called\");\n    return NULL;\n}\n\nvoid* _ZN21OpaquePMPrintSettings15PJCGetFirstPageEPj(void)\n{\n    if (verbose) puts(\"STUB: _ZN21OpaquePMPrintSettings15PJCGetFirstPageEPj called\");\n    return NULL;\n}\n\nvoid* _ZN21OpaquePMPrintSettings17PJCGetDestinationEPtPPK7__CFURL(void)\n{\n    if (verbose) puts(\"STUB: _ZN21OpaquePMPrintSettings17PJCGetDestinationEPtPPK7__CFURL called\");\n    return NULL;\n}\n\nvoid* _ZN21OpaquePMPrintSettings17PJCSetDestinationEtPK7__CFURL(void)\n{\n    if (verbose) puts(\"STUB: _ZN21OpaquePMPrintSettings17PJCSetDestinationEtPK7__CFURL called\");\n    return NULL;\n}\n\nvoid* _ZN21OpaquePMPrintSettings24PJCValidPrintSettingsKeyEPS_(void)\n{\n    if (verbose) puts(\"STUB: _ZN21OpaquePMPrintSettings24PJCValidPrintSettingsKeyEPS_ called\");\n    return NULL;\n}\n\nvoid* getCurrentMonochromeProfileID(void)\n{\n    if (verbose) puts(\"STUB: getCurrentMonochromeProfileID called\");\n    return NULL;\n}\n\nvoid* getMatchedMediaNameFromPrinter(void)\n{\n    if (verbose) puts(\"STUB: getMatchedMediaNameFromPrinter called\");\n    return NULL;\n}\n\nvoid* getMediaNameFromPaperInfo(void)\n{\n    if (verbose) puts(\"STUB: getMediaNameFromPaperInfo called\");\n    return NULL;\n}\n\nvoid* getPDFSpoolingFunctionCallbacks(void)\n{\n    if (verbose) puts(\"STUB: getPDFSpoolingFunctionCallbacks called\");\n    return NULL;\n}\n\nvoid* parsePostScriptStatus(void)\n{\n    if (verbose) puts(\"STUB: parsePostScriptStatus called\");\n    return NULL;\n}\n\nvoid* printUIToolAuthenticateJob(void)\n{\n    if (verbose) puts(\"STUB: printUIToolAuthenticateJob called\");\n    return NULL;\n}\n\nvoid* printUIToolCreateConnection(void)\n{\n    if (verbose) puts(\"STUB: printUIToolCreateConnection called\");\n    return NULL;\n}\n\nvoid* printUIToolGetAuthenticationInfo(void)\n{\n    if (verbose) puts(\"STUB: printUIToolGetAuthenticationInfo called\");\n    return NULL;\n}\n\nvoid* printUIToolPrintFD(void)\n{\n    if (verbose) puts(\"STUB: printUIToolPrintFD called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/QD/CMakeLists.txt",
    "content": "project(QD)\n\nremove_sdk_framework(QD)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(QD\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/QD\"\n)\n\nadd_framework(QD\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n    PARENT ApplicationServices\n\n    SOURCES\n    \tsrc/QD.c\n\n    DEPENDENCIES\n\tCoreFoundation\n        system\n)\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/QD/include/QD/QD.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _QD_H_\n#define _QD_H_\n\n#include <MacTypes.h>\n\nstruct RGBColor;\nstruct ColorSpec;\nstruct GDevice;\nstruct ColorTable;\n\ntypedef struct GDevice GDevice;\ntypedef GDevice * GDPtr;\ntypedef GDPtr * GDHandle;\n\ntypedef struct RGBColor RGBColor;\n\ntypedef struct ColorSpec ColorSpec;\ntypedef ColorSpec * ColorSpecPtr;\n\nstruct RGBColor {\n\tunsigned short red;\n\tunsigned short green;\n\tunsigned short blue;\n};\n\nstruct ColorSpec {\n\tshort value;\n\tRGBColor rgb;\n};\n\ntypedef ColorSpec CSpecArray[1];\n\ntypedef struct ColorTable ColorTable;\ntypedef ColorTable * CTabPtr;\ntypedef CTabPtr * CTabHandle;\n\nstruct PixMap {\n\tPtr baseAddr;\n\tshort rowBytes;\n\tRect bounds;\n\tshort pmVersion;\n\tshort packType;\n\tSInt32 packSize;\n\tFixed hRes;\n\tFixed vRes;\n\tshort pixelType;\n\tshort pixelSize;\n\tshort cmpCount;\n\tshort cmpSize;\n\tOSType pixelFormat;\n\tCTabHandle pmTable;\n\tvoid * pmExt;\n};\n\ntypedef struct PixMap PixMap;\ntypedef PixMap * PixMapPtr;\ntypedef PixMapPtr * PixMapHandle;\n\nstruct GDevice {\n\tshort gdRefNum;\n\tshort gdID;\n\tshort gdType;\n\tHandle gdITable;\n\tshort gdResPref;\n\tHandle gdSearchProc;\n\tHandle gdCompProc;\n\tshort gdFlags;\n\tPixMapHandle gdPMap;\n\tSInt32 gdRefCon;\n\tGDHandle gdNextGD;\n\tRect gdRect;\n\tSInt32 gdMode;\n\tshort gdCCBytes;\n\tshort gdCCDepth;\n\tHandle gdCCXData;\n\tHandle gdCCXMask;\n\tHandle gdExt;\n};\n\nstruct ColorTable {\n\tSInt32 ctSeed;\n\tshort ctFlags;\n\tshort ctSize;\n\tCSpecArray ctTable;\n};\n\ntypedef struct OpaqueWindowPtr* WindowPtr;\ntypedef WindowPtr WindowRef;\n\ntypedef struct OpaqueGrafPtr* GrafPtr;\ntypedef GrafPtr CGrafPtr;\ntypedef CGrafPtr GWorldPtr;\n\nstruct BitMap {\n  Ptr baseAddr;\n  short rowBytes;\n  Rect bounds;\n};\ntypedef struct BitMap BitMap;\ntypedef BitMap* BitMapPtr;\n\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/QD/src/QD.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <QD/QD.h>\n#include <ATS/ATS.h>\n#include <stdlib.h>\n#include <stdio.h>\n#include <CoreFoundation/CoreFoundation.h>\n#include <CoreGraphics/CGDirectDisplay.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid InitCursor()\n{\n    if (verbose) puts(\"STUB: InitCursor called\");\t\n}\n\nstatic uint32_t gFakeScreenDevice;\n\nGDHandle DMGetFirstScreenDevice(Boolean a)\n{\n    if (verbose) puts(\"STUB: DMGetFirstScreenDevice called\");\n\treturn (GDHandle)&gFakeScreenDevice;\n}\n\nGDHandle DMGetNextScreenDevice (GDHandle a, Boolean b)\n{\n    if (verbose) puts(\"STUB: DMGetNextScreenDevice called\");\n\treturn (GDHandle)0;\n}\n\nGDHandle GetMainDevice()\n{\n    if (verbose) puts(\"STUB: GetMainDevice called\");\n\treturn (GDHandle)0;\n}\n\nCGDirectDisplayID QDGetCGDirectDisplayID(GDHandle a)\n{\n    if (verbose) puts(\"STUB: QDGetCGDirectDisplayID called\");\n\treturn (CGDirectDisplayID)a;\n}\n\nFMFont FMGetFontFromATSFontRef(ATSFontRef a)\n{\n    if (verbose) puts(\"STUB: FMGetFontFromATSFontRef called\");\n\treturn (FMFont)0;\n}\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/README",
    "content": "ApplicationServices is an umbrella framework that should include the following frameworks:\n\n* CoreServices,\n* ATS,\n* ColorSync,\n* CoreGraphics,\n* CoreText,\n* HIServices,\n* ImageIO,\n* LangAnalysis,\n* PrintCore,\n* QD,\n* SpeechSynthesis.\n\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/SpeechSynthesis/CMakeLists.txt",
    "content": "project(SpeechSynthesis)\n\nremove_sdk_framework(SpeechSynthesis)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(SpeechSynthesis\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/SpeechSynthesis\"\n)\n\nadd_framework(SpeechSynthesis\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n    PARENT ApplicationServices\n\n    SOURCES\n        src/SpeechSynthesis.c\n\n    DEPENDENCIES\n        system\n)\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/SpeechSynthesis/include/SpeechSynthesis/SpeechSynthesis.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _SpeechSynthesis_H_\n#define _SpeechSynthesis_H_\n\nvoid* CancelSpokenNotification(void);\nvoid* CancelSpokenNotificationForProcess(void);\nvoid* CancelTalkingAlert(void);\nvoid* ContinueSpeech(void);\nvoid* CopyAvailableIntervals(void);\nvoid* CopyAvailablePhrases(void);\nvoid* CopyIdentifierStringForVoiceSpec(void);\nvoid* CopyPhonemesFromText(void);\nvoid* CopySpeechProperty(void);\nvoid* CopySpeechSynthesisVoicesForMode(void);\nvoid* CopyTimeAnnouncementsPreferences(void);\nvoid* CountVoices(void);\nvoid* CreateSpeechLanguageLocale(void);\nvoid* DisposeSpeechChannel(void);\nvoid* GetIdentifierStringForPreferredVoiceInListWithLocale(void);\nvoid* GetIdentifierStringForPreferredVoiceWithLocale(void);\nvoid* GetIndVoice(void);\nvoid* GetSpeechInfo(void);\nvoid* GetSpeechPitch(void);\nvoid* GetSpeechRate(void);\nvoid* GetVoiceDescription(void);\nvoid* GetVoiceInfo(void);\nvoid* MakeVoiceSpec(void);\nvoid* MakeVoiceSpecForIdentifierString(void);\nvoid* NewSpeechChannel(void);\nvoid* PauseSpeechAt(void);\nvoid* RegisterSpokenNotificationForProcess(void);\nvoid* RegisterTalkingAlertWithProperties(void);\nvoid* SRSetSecurityFlags(void);\nvoid* SUAddAppPathToLoginStartupList(void);\nvoid* SUCopyAXUIElementExceptionsDictionary(void);\nvoid* SUCopyKeyNamesPropertyList(void);\nvoid* SUCopyPhraseArrayFromDisk(void);\nvoid* SUIsMainBundleUsingEnglishLocalization(void);\nvoid* SUIsProcessUsingEnglishLocalization(void);\nvoid* SUPostKeyCodeWithModifiers(void);\nvoid* SURemoveAppPathFromLoginStartupList(void);\nvoid* SendMessageToSpeechSynthesisServer(void);\nvoid* SetSpeechInfo(void);\nvoid* SetSpeechPitch(void);\nvoid* SetSpeechProperty(void);\nvoid* SetSpeechRate(void);\nvoid* SetTimeAnnouncementsPreferences(void);\nvoid* SpeakBuffer(void);\nvoid* SpeakCFString(void);\nvoid* SpeakString(void);\nvoid* SpeakText(void);\nvoid* SpeechBusy(void);\nvoid* SpeechBusySystemWide(void);\nvoid* SpeechDaemonEnvironment(void);\nvoid* SpeechDaemonSetLogging(void);\nvoid* SpeechDaemonShutdown(void);\nvoid* SpeechManagerVersion(void);\nvoid* SpeechSynthesisConsoleLogCFString(void);\nvoid* SpeechSynthesisConsoleLogTextBuffer(void);\nvoid* SpeechSynthesisRegisterModuleURL(void);\nvoid* SpeechSynthesisUnregisterModuleURL(void);\nvoid* SpokenNotificationsEnabled(void);\nvoid* SpokenNotificationsEnabledForProcess(void);\nvoid* StopSpeech(void);\nvoid* StopSpeechAt(void);\nvoid* TTSIsSpeakingSelection(void);\nvoid* TTSStartSpeakingSelection(void);\nvoid* TTSStopSpeakingSelection(void);\nvoid* TalkingAlertsEnabled(void);\nvoid* TextToPhonemes(void);\nvoid* UseDictionary(void);\nvoid* UseSpeechDictionary(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/SpeechSynthesis/src/SpeechSynthesis.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <SpeechSynthesis/SpeechSynthesis.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* CancelSpokenNotification(void)\n{\n    if (verbose) puts(\"STUB: CancelSpokenNotification called\");\n    return NULL;\n}\n\nvoid* CancelSpokenNotificationForProcess(void)\n{\n    if (verbose) puts(\"STUB: CancelSpokenNotificationForProcess called\");\n    return NULL;\n}\n\nvoid* CancelTalkingAlert(void)\n{\n    if (verbose) puts(\"STUB: CancelTalkingAlert called\");\n    return NULL;\n}\n\nvoid* ContinueSpeech(void)\n{\n    if (verbose) puts(\"STUB: ContinueSpeech called\");\n    return NULL;\n}\n\nvoid* CopyAvailableIntervals(void)\n{\n    if (verbose) puts(\"STUB: CopyAvailableIntervals called\");\n    return NULL;\n}\n\nvoid* CopyAvailablePhrases(void)\n{\n    if (verbose) puts(\"STUB: CopyAvailablePhrases called\");\n    return NULL;\n}\n\nvoid* CopyIdentifierStringForVoiceSpec(void)\n{\n    if (verbose) puts(\"STUB: CopyIdentifierStringForVoiceSpec called\");\n    return NULL;\n}\n\nvoid* CopyPhonemesFromText(void)\n{\n    if (verbose) puts(\"STUB: CopyPhonemesFromText called\");\n    return NULL;\n}\n\nvoid* CopySpeechProperty(void)\n{\n    if (verbose) puts(\"STUB: CopySpeechProperty called\");\n    return NULL;\n}\n\nvoid* CopySpeechSynthesisVoicesForMode(void)\n{\n    if (verbose) puts(\"STUB: CopySpeechSynthesisVoicesForMode called\");\n    return NULL;\n}\n\nvoid* CopyTimeAnnouncementsPreferences(void)\n{\n    if (verbose) puts(\"STUB: CopyTimeAnnouncementsPreferences called\");\n    return NULL;\n}\n\nvoid* CountVoices(void)\n{\n    if (verbose) puts(\"STUB: CountVoices called\");\n    return NULL;\n}\n\nvoid* CreateSpeechLanguageLocale(void)\n{\n    if (verbose) puts(\"STUB: CreateSpeechLanguageLocale called\");\n    return NULL;\n}\n\nvoid* DisposeSpeechChannel(void)\n{\n    if (verbose) puts(\"STUB: DisposeSpeechChannel called\");\n    return NULL;\n}\n\nvoid* GetIdentifierStringForPreferredVoiceInListWithLocale(void)\n{\n    if (verbose) puts(\"STUB: GetIdentifierStringForPreferredVoiceInListWithLocale called\");\n    return NULL;\n}\n\nvoid* GetIdentifierStringForPreferredVoiceWithLocale(void)\n{\n    if (verbose) puts(\"STUB: GetIdentifierStringForPreferredVoiceWithLocale called\");\n    return NULL;\n}\n\nvoid* GetIndVoice(void)\n{\n    if (verbose) puts(\"STUB: GetIndVoice called\");\n    return NULL;\n}\n\nvoid* GetSpeechInfo(void)\n{\n    if (verbose) puts(\"STUB: GetSpeechInfo called\");\n    return NULL;\n}\n\nvoid* GetSpeechPitch(void)\n{\n    if (verbose) puts(\"STUB: GetSpeechPitch called\");\n    return NULL;\n}\n\nvoid* GetSpeechRate(void)\n{\n    if (verbose) puts(\"STUB: GetSpeechRate called\");\n    return NULL;\n}\n\nvoid* GetVoiceDescription(void)\n{\n    if (verbose) puts(\"STUB: GetVoiceDescription called\");\n    return NULL;\n}\n\nvoid* GetVoiceInfo(void)\n{\n    if (verbose) puts(\"STUB: GetVoiceInfo called\");\n    return NULL;\n}\n\nvoid* MakeVoiceSpec(void)\n{\n    if (verbose) puts(\"STUB: MakeVoiceSpec called\");\n    return NULL;\n}\n\nvoid* MakeVoiceSpecForIdentifierString(void)\n{\n    if (verbose) puts(\"STUB: MakeVoiceSpecForIdentifierString called\");\n    return NULL;\n}\n\nvoid* NewSpeechChannel(void)\n{\n    if (verbose) puts(\"STUB: NewSpeechChannel called\");\n    return NULL;\n}\n\nvoid* PauseSpeechAt(void)\n{\n    if (verbose) puts(\"STUB: PauseSpeechAt called\");\n    return NULL;\n}\n\nvoid* RegisterSpokenNotificationForProcess(void)\n{\n    if (verbose) puts(\"STUB: RegisterSpokenNotificationForProcess called\");\n    return NULL;\n}\n\nvoid* RegisterTalkingAlertWithProperties(void)\n{\n    if (verbose) puts(\"STUB: RegisterTalkingAlertWithProperties called\");\n    return NULL;\n}\n\nvoid* SRSetSecurityFlags(void)\n{\n    if (verbose) puts(\"STUB: SRSetSecurityFlags called\");\n    return NULL;\n}\n\nvoid* SUAddAppPathToLoginStartupList(void)\n{\n    if (verbose) puts(\"STUB: SUAddAppPathToLoginStartupList called\");\n    return NULL;\n}\n\nvoid* SUCopyAXUIElementExceptionsDictionary(void)\n{\n    if (verbose) puts(\"STUB: SUCopyAXUIElementExceptionsDictionary called\");\n    return NULL;\n}\n\nvoid* SUCopyKeyNamesPropertyList(void)\n{\n    if (verbose) puts(\"STUB: SUCopyKeyNamesPropertyList called\");\n    return NULL;\n}\n\nvoid* SUCopyPhraseArrayFromDisk(void)\n{\n    if (verbose) puts(\"STUB: SUCopyPhraseArrayFromDisk called\");\n    return NULL;\n}\n\nvoid* SUIsMainBundleUsingEnglishLocalization(void)\n{\n    if (verbose) puts(\"STUB: SUIsMainBundleUsingEnglishLocalization called\");\n    return NULL;\n}\n\nvoid* SUIsProcessUsingEnglishLocalization(void)\n{\n    if (verbose) puts(\"STUB: SUIsProcessUsingEnglishLocalization called\");\n    return NULL;\n}\n\nvoid* SUPostKeyCodeWithModifiers(void)\n{\n    if (verbose) puts(\"STUB: SUPostKeyCodeWithModifiers called\");\n    return NULL;\n}\n\nvoid* SURemoveAppPathFromLoginStartupList(void)\n{\n    if (verbose) puts(\"STUB: SURemoveAppPathFromLoginStartupList called\");\n    return NULL;\n}\n\nvoid* SendMessageToSpeechSynthesisServer(void)\n{\n    if (verbose) puts(\"STUB: SendMessageToSpeechSynthesisServer called\");\n    return NULL;\n}\n\nvoid* SetSpeechInfo(void)\n{\n    if (verbose) puts(\"STUB: SetSpeechInfo called\");\n    return NULL;\n}\n\nvoid* SetSpeechPitch(void)\n{\n    if (verbose) puts(\"STUB: SetSpeechPitch called\");\n    return NULL;\n}\n\nvoid* SetSpeechProperty(void)\n{\n    if (verbose) puts(\"STUB: SetSpeechProperty called\");\n    return NULL;\n}\n\nvoid* SetSpeechRate(void)\n{\n    if (verbose) puts(\"STUB: SetSpeechRate called\");\n    return NULL;\n}\n\nvoid* SetTimeAnnouncementsPreferences(void)\n{\n    if (verbose) puts(\"STUB: SetTimeAnnouncementsPreferences called\");\n    return NULL;\n}\n\nvoid* SpeakBuffer(void)\n{\n    if (verbose) puts(\"STUB: SpeakBuffer called\");\n    return NULL;\n}\n\nvoid* SpeakCFString(void)\n{\n    if (verbose) puts(\"STUB: SpeakCFString called\");\n    return NULL;\n}\n\nvoid* SpeakString(void)\n{\n    if (verbose) puts(\"STUB: SpeakString called\");\n    return NULL;\n}\n\nvoid* SpeakText(void)\n{\n    if (verbose) puts(\"STUB: SpeakText called\");\n    return NULL;\n}\n\nvoid* SpeechBusy(void)\n{\n    if (verbose) puts(\"STUB: SpeechBusy called\");\n    return NULL;\n}\n\nvoid* SpeechBusySystemWide(void)\n{\n    if (verbose) puts(\"STUB: SpeechBusySystemWide called\");\n    return NULL;\n}\n\nvoid* SpeechDaemonEnvironment(void)\n{\n    if (verbose) puts(\"STUB: SpeechDaemonEnvironment called\");\n    return NULL;\n}\n\nvoid* SpeechDaemonSetLogging(void)\n{\n    if (verbose) puts(\"STUB: SpeechDaemonSetLogging called\");\n    return NULL;\n}\n\nvoid* SpeechDaemonShutdown(void)\n{\n    if (verbose) puts(\"STUB: SpeechDaemonShutdown called\");\n    return NULL;\n}\n\nvoid* SpeechManagerVersion(void)\n{\n    if (verbose) puts(\"STUB: SpeechManagerVersion called\");\n    return NULL;\n}\n\nvoid* SpeechSynthesisConsoleLogCFString(void)\n{\n    if (verbose) puts(\"STUB: SpeechSynthesisConsoleLogCFString called\");\n    return NULL;\n}\n\nvoid* SpeechSynthesisConsoleLogTextBuffer(void)\n{\n    if (verbose) puts(\"STUB: SpeechSynthesisConsoleLogTextBuffer called\");\n    return NULL;\n}\n\nvoid* SpeechSynthesisRegisterModuleURL(void)\n{\n    if (verbose) puts(\"STUB: SpeechSynthesisRegisterModuleURL called\");\n    return NULL;\n}\n\nvoid* SpeechSynthesisUnregisterModuleURL(void)\n{\n    if (verbose) puts(\"STUB: SpeechSynthesisUnregisterModuleURL called\");\n    return NULL;\n}\n\nvoid* SpokenNotificationsEnabled(void)\n{\n    if (verbose) puts(\"STUB: SpokenNotificationsEnabled called\");\n    return NULL;\n}\n\nvoid* SpokenNotificationsEnabledForProcess(void)\n{\n    if (verbose) puts(\"STUB: SpokenNotificationsEnabledForProcess called\");\n    return NULL;\n}\n\nvoid* StopSpeech(void)\n{\n    if (verbose) puts(\"STUB: StopSpeech called\");\n    return NULL;\n}\n\nvoid* StopSpeechAt(void)\n{\n    if (verbose) puts(\"STUB: StopSpeechAt called\");\n    return NULL;\n}\n\nvoid* TTSIsSpeakingSelection(void)\n{\n    if (verbose) puts(\"STUB: TTSIsSpeakingSelection called\");\n    return NULL;\n}\n\nvoid* TTSStartSpeakingSelection(void)\n{\n    if (verbose) puts(\"STUB: TTSStartSpeakingSelection called\");\n    return NULL;\n}\n\nvoid* TTSStopSpeakingSelection(void)\n{\n    if (verbose) puts(\"STUB: TTSStopSpeakingSelection called\");\n    return NULL;\n}\n\nvoid* TalkingAlertsEnabled(void)\n{\n    if (verbose) puts(\"STUB: TalkingAlertsEnabled called\");\n    return NULL;\n}\n\nvoid* TextToPhonemes(void)\n{\n    if (verbose) puts(\"STUB: TextToPhonemes called\");\n    return NULL;\n}\n\nvoid* UseDictionary(void)\n{\n    if (verbose) puts(\"STUB: UseDictionary called\");\n    return NULL;\n}\n\nvoid* UseSpeechDictionary(void)\n{\n    if (verbose) puts(\"STUB: UseSpeechDictionary called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/ApplicationServices/include/ApplicationServices/ApplicationServices.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _ApplicationServices_H_\n#define _ApplicationServices_H_\n\n#include <Availability.h>\n#include <CoreServices/CoreServices.h>\n#include <CoreGraphics/CoreGraphics.h>\n#include <CoreText/CoreText.h>\n#include <ATS/ATS.h>\n#include <ColorSync/ColorSync.h>\n#include <HIServices/HIServices.h>\n#include <ImageIO/ImageIO.h>\n#include <QD/QD.h>\n#include <ColorSyncLegacy/ColorSyncLegacy.h>\n#include <LangAnalysis/LangAnalysis.h>\n#include <PrintCore/PrintCore.h>\n#include <SpeechSynthesis/SpeechSynthesis.h>\n\n#endif\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/CMakeLists.txt",
    "content": "project(AudioVideoBridging)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\nset(FRAMEWORK_VERSION \"A\")\n\nremove_sdk_framework(AudioVideoBridging\n)\n\ngenerate_sdk_framework(AudioVideoBridging\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/AudioVideoBridging\"\n)\n\nadd_framework(AudioVideoBridging\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/AudioVideoBridging.m\n        src/AVB1722MAAP.m\n        src/AVB1722ControlInterface.m\n        src/AVB17221ACMPInterface.m\n        src/AVB17221ACMPPendingResponse.m\n        src/AVB17221AECPInterface.m\n        src/AVB17221AECPPendingResponse.m\n        src/AVB17221AEMAudioCluster.m\n        src/AVB17221AEMAudioMap.m\n        src/AVB17221AEMAudioMapping.m\n        src/AVB17221AEMStreamPort.m\n        src/AVBWiFiInterface.m\n        src/AVB17221AEMAudioUnit.m\n        src/AVB17221AEMAVBInterface.m\n        src/AVB17221AEMLMMMapping.m\n        src/AVB17221AEMLocalModelMaker.m\n        src/AVB17221AEMLocalRemoteMapping.m\n        src/AVB17221AEMClockSource.m\n        src/AVB17221AEMConfiguration.m\n        src/AVBIIDCStreamConfiguration.m\n        src/AVB17221AEMControl.m\n        src/AVB17221AEMControlDescriptorArrayValue.m\n        src/AVB17221AEMControlDescriptorBodePlotValue.m\n        src/AVB17221AEMBodePlotEntry.m\n        src/AVB17221AEMControlDescriptorLinearValue.m\n        src/AVB17221AEMControlDescriptorSelectorValue.m\n        src/AVB17221AEMControlDescriptorUTF8Value.m\n        src/AVBInterfaceStreamingManager.m\n        src/AVB17221AEMAVCaptureDeviceModelMaker.m\n        src/AVBAVDECCController.m\n        src/AVB17221AEMControlDescriptorValue.m\n        src/AVB17221AEMDescriptorCount.m\n        src/AVB17221AEMEntity.m\n        src/AVB17221AEMJack.m\n        src/AVB17221AEMExternalPort.m\n        src/AVB17221AEMInternalPort.m\n        src/AVB17221AEMControlDescriptorLinearSet.m\n        src/AVB17221AEMLocale.m\n        src/AVB17221AEMLocalizedStringReference.m\n        src/AVB17221AEMMatrix.m\n        src/AVB17221AEMMixer.m\n        src/AVB17221AEMModelObject.m\n        src/AVBAVDECCEntity.m\n        src/AVBAVDECCEntityInterface.m\n        src/AVB17221AEMMSRPMapping.m\n        src/AVB17221AEMObject.m\n        src/AVB17221AEMSamplingRate.m\n        src/AVB17221AEMSamplingRateRange.m\n        src/AVBIIDCUserOutputStream.m\n        src/AVBEUI64Transformer.m\n        src/AVBConnectedTransformer.m\n        src/AVB17221AEMControlDescriptorVendorValue.m\n        src/AVB17221AEMSensorUnit.m\n        src/AVB17221AEMSignalSelector.m\n        src/AVB17221AEMSignal.m\n        src/AVB17221AEMStream.m\n        src/AVB17221AEMStreamFormat.m\n        src/AVB17221AEMStandardStreamFormat.m\n        src/AVB17221AEMIIDCStreamFormat.m\n        src/AVB17221AEM61883StreamFormat.m\n        src/AVB17221AEM618834StreamFormat.m\n        src/AVB17221AEM618836StreamFormat.m\n        src/AVB17221AEM61883632BitStreamFormat.m\n        src/AVB17221AEM618836FloatStreamFormat.m\n        src/AVB17221AEM618836AM824StreamFormat.m\n        src/AVB17221AEM618837StreamFormat.m\n        src/AVB17221AEM618838StreamFormat.m\n        src/AVB17221AEMMMAStreamFormat.m\n        src/AVB17221AEMAAFStreamFormat.m\n        src/AVB17221AEMAAFPCMStreamFormat.m\n        src/AVB17221AEMAAFAES3StreamFormat.m\n        src/AVB17221AEMCVFStreamFormat.m\n        src/AVB17221AEMCVFMJPEGStreamForamt.m\n        src/AVB17221AEMCVFH264StreamFormat.m\n        src/AVB17221AEMCVFJPEG2000StreamFormat.m\n        src/AVB17221AEMCRFStreamFormat.m\n        src/AVB17221AEMTSCFStreamFormat.m\n        src/AVB17221AEMSVFStreamFormat.m\n        src/AVB17221AEMRVFStreamFormat.m\n        src/AVB17221AEMVSFStreamFormat.m\n        src/AVB17221AEMVendorStreamFormat.m\n        src/AVB17221AEMStrings.m\n        src/AVB17221AEMVideoUnit.m\n        src/AVBEthernetInterface.m\n        src/AVBInterface.m\n        src/AVBIIDCUserInputStream.m\n        src/AVB17221Entity.m\n        src/AVB17221EntityDiscovery.m\n        src/AVBIIDCIOSurfaceStream.m\n        src/AVBMRP.m\n        src/AVBMSRPDomain.m\n        src/AVBMSRPDomainInfo.m\n        src/AVBSimpleVirtualAudio.m\n        src/AVBMACAddressFormatter.m\n        src/AVBVirtualStream.m\n        src/AVBVirtualStreamConnection.m\n        src/AVBMSRPListener.m\n        src/AVB17221AEMModelMaker.m\n        src/AVBMSRPTalker.m\n        src/AVBMSRPTalkerAttribute.m\n        src/AVBMVRP.m\n        src/AVB17221AEMCoreAudioDeviceModelMaker.m\n        src/AVBBuiltInAVDECCEntity.m\n        src/AVBNub.m\n        src/AVB17221AEMMemoryObjectData.m\n        src/AVB17221AEMEntityEnumerator.m\n        src/AVBMACAddress.m\n        src/AVB17221ACMPMessage.m\n        src/AVB17221AECPAEMMessage.m\n        src/AVB17221AECPAddressAccessMessage.m\n        src/AVBAudioDeviceSharing.m\n        src/AVBMutableBool.m\n        src/AVBVirtualEntity.m\n        src/AVB17221AECPAVCMessage.m\n        src/AVB17221AECPVendorMessage.m\n        src/AVB17221AECPAddressAccessTLV.m\n        src/AVB17221AEMStreamFormatTransformer.m\n        src/AVB17221AEMVideoColorSpaceTransformer.m\n        src/AVB17221AECPMessage.m\n        src/AVB17221AEMMatrixSignal.m\n        src/AVB17221AEMMemoryObject.m\n        src/AVB17221AEMNamedModelObject.m\n        src/AVB17221AEMClockDomainedModelObject.m\n        src/AVB17221AEMNamedClockDomainedModelObject.m\n        src/AVB17221AEMUnit.m\n        src/AVB17221AEMCluster.m\n        src/AVBMAAPMACAddress.m\n        src/AVB17221AEMPort.m\n        src/AVBCentralManager.m\n        src/AVB17221AEMSignalPort.m\n        src/AVB17221AEMSampleRateTransformer.m\n        src/AVB17221AEMVideoMap.m\n        src/AVBIIDCIOSurfaceOutputStream.m\n        src/AVB17221AEMSensorMap.m\n        src/AVB17221AEMVideoMapping.m\n        src/AVB17221AEMSensorMapping.m\n        src/AVB17221AEMSensorCluster.m\n        src/AVB17221AEMBaseControl.m\n        src/AVBCustomVirtualAudioEntityAEMValidator.m\n        src/AVB17221AEMSignalTranscoder.m\n        src/AVB17221AEMSignalSplitter.m\n        src/AVB17221AEMSignalSplitterMapping.m\n        src/AVB17221AEMSignalDemultiplexerMapping.m\n        src/AVBBuiltInAVDECCController.m\n        src/AVB17221AEMSignalDemultiplexer.m\n        src/AVB17221AEMSignalCombinerMapping.m\n        src/AVB17221AEMSignalMultiplexerMapping.m\n        src/AVB17221AEMSignalCombiner.m\n        src/AVB17221AEMSignalMultiplexer.m\n        src/AVB17221AEMVideoCluster.m\n        src/AVB17221AEMVideoFormatSpecific.m\n        src/AVB17221AEMVideoAspectRatio.m\n        src/AVB17221AEMVideoSize.m\n        src/AVBgPTPEthernetPort.m\n        src/AVB17221AEMClockDomain.m\n        src/AVB17221AEMSensorFormat.m\n        src/AVB17221AEMControlBlock.m\n        src/AVB17221AEMControlDescriptorSelectorStringValue.m\n        src/AVB17221AEMControlDescriptorSMPTETimeValue.m\n        src/AVB17221AEMControlDescriptorGPTPValue.m\n        src/AVB17221AEMControlDescriptorSamplingRateValue.m\n        src/AVBAudioDriverManager.m\n        src/AVBInputStream.m\n        src/AVBStream.m\n        src/AVBOutputStream.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/ADDDeviceService.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ADDDeviceService\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/ALServiceProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ALServiceProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/ASACoreAudioClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASACoreAudioClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221ACMPClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVB17221ACMPClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221ACMPInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221ACMPInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221ACMPMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221ACMPMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221ACMPPendingResponse.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221ACMPPendingResponse : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPAEMMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AECPAEMMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPAVCMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AECPAVCMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPAddressAccessMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AECPAddressAccessMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPAddressAccessTLV.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AECPAddressAccessTLV : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVB17221AECPClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AECPInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AECPMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPPendingResponse.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AECPPendingResponse : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AECPVendorMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AECPVendorMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEM618834StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEM618834StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEM61883632BitStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEM61883632BitStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEM618836AM824StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEM618836AM824StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEM618836FloatStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEM618836FloatStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEM618836StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEM618836StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEM618837StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEM618837StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEM618838StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEM618838StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEM61883StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEM61883StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAAFAES3StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAAFAES3StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAAFPCMStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAAFPCMStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAAFStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAAFStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAVBInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAVBInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAVCaptureDeviceModelMaker.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAVCaptureDeviceModelMaker : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAudioCluster.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAudioCluster : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAudioMap.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAudioMap : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAudioMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAudioMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMAudioUnit.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMAudioUnit : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMBaseControl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMBaseControl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMBodePlotEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMBodePlotEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMCRFStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMCRFStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMCVFH264StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMCVFH264StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMCVFJPEG2000StreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMCVFJPEG2000StreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMCVFMJPEGStreamForamt.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMCVFMJPEGStreamForamt : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMCVFStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMCVFStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMClockDomain.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMClockDomain : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMClockDomainedModelObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMClockDomainedModelObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMClockSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMClockSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMCluster.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMCluster : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlBlock.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlBlock : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorArrayValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorArrayValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorBodePlotValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorBodePlotValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorGPTPValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorGPTPValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorLinearSet.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorLinearSet : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorLinearValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorLinearValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorSMPTETimeValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorSMPTETimeValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorSamplingRateValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorSamplingRateValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorSelectorStringValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorSelectorStringValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorSelectorValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorSelectorValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorUTF8Value.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorUTF8Value : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMControlDescriptorVendorValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMControlDescriptorVendorValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMCoreAudioDeviceModelMaker.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMCoreAudioDeviceModelMaker : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMDescriptorCount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMDescriptorCount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMEntity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMEntity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMEntityEnumerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMEntityEnumerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMExternalPort.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMExternalPort : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMIIDCStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMIIDCStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMInternalPort.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMInternalPort : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMJack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMJack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMLMMMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMLMMMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMLocalModelMaker.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMLocalModelMaker : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMLocalRemoteMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMLocalRemoteMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMLocale.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMLocale : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMLocalizedStringReference.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMLocalizedStringReference : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMMMAStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMMMAStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMMSRPMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMMSRPMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMMatrix.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMMatrix : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMMatrixSignal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMMatrixSignal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMMemoryObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMMemoryObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMMemoryObjectData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMMemoryObjectData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMMixer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMMixer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMModelMaker.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMModelMaker : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMModelObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMModelObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMNamedClockDomainedModelObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMNamedClockDomainedModelObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMNamedModelObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMNamedModelObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMPort.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMPort : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMRVFStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMRVFStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSVFStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSVFStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSampleRateTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSampleRateTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSamplingRate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSamplingRate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSamplingRateRange.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSamplingRateRange : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSensorCluster.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSensorCluster : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSensorFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSensorFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSensorMap.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSensorMap : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSensorMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSensorMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSensorUnit.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSensorUnit : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalCombiner.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalCombiner : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalCombinerMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalCombinerMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalDemultiplexer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalDemultiplexer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalDemultiplexerMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalDemultiplexerMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalMultiplexer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalMultiplexer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalMultiplexerMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalMultiplexerMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalPort.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalPort : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalSelector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalSelector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalSplitter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalSplitter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalSplitterMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalSplitterMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMSignalTranscoder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMSignalTranscoder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMStandardStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMStandardStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMStreamFormatTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMStreamFormatTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMStreamPort.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMStreamPort : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMStrings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMStrings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMTSCFStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMTSCFStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMUnit.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMUnit : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVSFStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVSFStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVendorStreamFormat.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVendorStreamFormat : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVideoAspectRatio.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVideoAspectRatio : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVideoCluster.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVideoCluster : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVideoColorSpaceTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVideoColorSpaceTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVideoFormatSpecific.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVideoFormatSpecific : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVideoMap.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVideoMap : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVideoMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVideoMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVideoSize.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVideoSize : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221AEMVideoUnit.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221AEMVideoUnit : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221Entity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221Entity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221EntityDiscovery.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB17221EntityDiscovery : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221EntityDiscoveryDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVB17221EntityDiscoveryDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB17221EntityPublisher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVB17221EntityPublisher\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB1722ControlInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB1722ControlInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVB1722MAAP.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVB1722MAAP : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBAVDECCController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBAVDECCController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBAVDECCEntity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBAVDECCEntity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBAVDECCEntityInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBAVDECCEntityInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBAudioDeviceSharing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBAudioDeviceSharing : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBAudioDriverManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBAudioDriverManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBBuiltInAVDECCController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBBuiltInAVDECCController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBBuiltInAVDECCEntity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBBuiltInAVDECCEntity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBCentralManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBCentralManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBConnectedTransformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBConnectedTransformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBCustomVirtualAudioEntityAEMValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBCustomVirtualAudioEntityAEMValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBEUI64Transformer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBEUI64Transformer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBEthernetInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBEthernetInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBIIDCIOSurfaceOutputStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBIIDCIOSurfaceOutputStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBIIDCIOSurfaceStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBIIDCIOSurfaceStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBIIDCStreamConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBIIDCStreamConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBIIDCUserInputStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBIIDCUserInputStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBIIDCUserOutputStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBIIDCUserOutputStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBInputStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBInputStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBInterfaceDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVBInterfaceDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBInterfaceStreamingManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBInterfaceStreamingManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMAAPMACAddress.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMAAPMACAddress : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMACAddress.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMACAddress : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMACAddressFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMACAddressFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMRP.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMRP : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMSRPDomain.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMSRPDomain : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMSRPDomainInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMSRPDomainInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMSRPListener.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMSRPListener : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMSRPListenerClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVBMSRPListenerClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMSRPTalker.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMSRPTalker : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMSRPTalkerAttribute.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMSRPTalkerAttribute : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMSRPTalkerClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AVBMSRPTalkerClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMVRP.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMVRP : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBMutableBool.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBMutableBool : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBNub.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBNub : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBOutputStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBOutputStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBSimpleVirtualAudio.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBSimpleVirtualAudio : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBVirtualEntity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBVirtualEntity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBVirtualStream.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBVirtualStream : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBVirtualStreamConnection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBVirtualStreamConnection : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBWiFiInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBWiFiInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AVBgPTPEthernetPort.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AVBgPTPEthernetPort : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/AudioVideoBridging.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _AudioVideoBridging_H_\n#define _AudioVideoBridging_H_\n\n#import <Foundation/Foundation.h>\n\n#import <AudioVideoBridging/ADDDeviceService.h>\n#import <AudioVideoBridging/ALServiceProtocol.h>\n#import <AudioVideoBridging/ASACoreAudioClient.h>\n#import <AudioVideoBridging/AVB17221ACMPClient.h>\n#import <AudioVideoBridging/AVB17221AECPClient.h>\n#import <AudioVideoBridging/AVB17221EntityDiscoveryDelegate.h>\n#import <AudioVideoBridging/AVB17221EntityPublisher.h>\n#import <AudioVideoBridging/AVBInterfaceDelegate.h>\n#import <AudioVideoBridging/AVBMSRPListenerClient.h>\n#import <AudioVideoBridging/AVBMSRPTalkerClient.h>\n#import <AudioVideoBridging/TSClockClient.h>\n#import <AudioVideoBridging/AVB1722MAAP.h>\n#import <AudioVideoBridging/AVB1722ControlInterface.h>\n#import <AudioVideoBridging/AVB17221ACMPInterface.h>\n#import <AudioVideoBridging/AVB17221ACMPPendingResponse.h>\n#import <AudioVideoBridging/AVB17221AECPInterface.h>\n#import <AudioVideoBridging/AVB17221AECPPendingResponse.h>\n#import <AudioVideoBridging/AVB17221AEMAudioCluster.h>\n#import <AudioVideoBridging/AVB17221AEMAudioMap.h>\n#import <AudioVideoBridging/AVB17221AEMAudioMapping.h>\n#import <AudioVideoBridging/AVB17221AEMStreamPort.h>\n#import <AudioVideoBridging/AVBWiFiInterface.h>\n#import <AudioVideoBridging/AVB17221AEMAudioUnit.h>\n#import <AudioVideoBridging/AVB17221AEMAVBInterface.h>\n#import <AudioVideoBridging/AVB17221AEMLMMMapping.h>\n#import <AudioVideoBridging/AVB17221AEMLocalModelMaker.h>\n#import <AudioVideoBridging/AVB17221AEMLocalRemoteMapping.h>\n#import <AudioVideoBridging/AVB17221AEMClockSource.h>\n#import <AudioVideoBridging/AVB17221AEMConfiguration.h>\n#import <AudioVideoBridging/AVBIIDCStreamConfiguration.h>\n#import <AudioVideoBridging/AVB17221AEMControl.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorArrayValue.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorBodePlotValue.h>\n#import <AudioVideoBridging/AVB17221AEMBodePlotEntry.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorLinearValue.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorSelectorValue.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorUTF8Value.h>\n#import <AudioVideoBridging/AVBInterfaceStreamingManager.h>\n#import <AudioVideoBridging/AVB17221AEMAVCaptureDeviceModelMaker.h>\n#import <AudioVideoBridging/AVBAVDECCController.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorValue.h>\n#import <AudioVideoBridging/AVB17221AEMDescriptorCount.h>\n#import <AudioVideoBridging/AVB17221AEMEntity.h>\n#import <AudioVideoBridging/AVB17221AEMJack.h>\n#import <AudioVideoBridging/AVB17221AEMExternalPort.h>\n#import <AudioVideoBridging/AVB17221AEMInternalPort.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorLinearSet.h>\n#import <AudioVideoBridging/AVB17221AEMLocale.h>\n#import <AudioVideoBridging/AVB17221AEMLocalizedStringReference.h>\n#import <AudioVideoBridging/AVB17221AEMMatrix.h>\n#import <AudioVideoBridging/AVB17221AEMMixer.h>\n#import <AudioVideoBridging/AVB17221AEMModelObject.h>\n#import <AudioVideoBridging/AVBAVDECCEntity.h>\n#import <AudioVideoBridging/AVBAVDECCEntityInterface.h>\n#import <AudioVideoBridging/AVB17221AEMMSRPMapping.h>\n#import <AudioVideoBridging/AVB17221AEMObject.h>\n#import <AudioVideoBridging/AVB17221AEMSamplingRate.h>\n#import <AudioVideoBridging/AVB17221AEMSamplingRateRange.h>\n#import <AudioVideoBridging/AVBIIDCUserOutputStream.h>\n#import <AudioVideoBridging/AVBEUI64Transformer.h>\n#import <AudioVideoBridging/AVBConnectedTransformer.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorVendorValue.h>\n#import <AudioVideoBridging/AVB17221AEMSensorUnit.h>\n#import <AudioVideoBridging/AVB17221AEMSignalSelector.h>\n#import <AudioVideoBridging/AVB17221AEMSignal.h>\n#import <AudioVideoBridging/AVB17221AEMStream.h>\n#import <AudioVideoBridging/AVB17221AEMStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMStandardStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMIIDCStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEM61883StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEM618834StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEM618836StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEM61883632BitStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEM618836FloatStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEM618836AM824StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEM618837StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEM618838StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMMMAStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMAAFStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMAAFPCMStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMAAFAES3StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMCVFStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMCVFMJPEGStreamForamt.h>\n#import <AudioVideoBridging/AVB17221AEMCVFH264StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMCVFJPEG2000StreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMCRFStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMTSCFStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMSVFStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMRVFStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMVSFStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMVendorStreamFormat.h>\n#import <AudioVideoBridging/AVB17221AEMStrings.h>\n#import <AudioVideoBridging/AVB17221AEMVideoUnit.h>\n#import <AudioVideoBridging/AVBEthernetInterface.h>\n#import <AudioVideoBridging/AVBInterface.h>\n#import <AudioVideoBridging/AVBIIDCUserInputStream.h>\n#import <AudioVideoBridging/AVB17221Entity.h>\n#import <AudioVideoBridging/AVB17221EntityDiscovery.h>\n#import <AudioVideoBridging/AVBIIDCIOSurfaceStream.h>\n#import <AudioVideoBridging/AVBMRP.h>\n#import <AudioVideoBridging/AVBMSRPDomain.h>\n#import <AudioVideoBridging/AVBMSRPDomainInfo.h>\n#import <AudioVideoBridging/AVBSimpleVirtualAudio.h>\n#import <AudioVideoBridging/AVBMACAddressFormatter.h>\n#import <AudioVideoBridging/AVBVirtualStream.h>\n#import <AudioVideoBridging/AVBVirtualStreamConnection.h>\n#import <AudioVideoBridging/AVBMSRPListener.h>\n#import <AudioVideoBridging/AVB17221AEMModelMaker.h>\n#import <AudioVideoBridging/AVBMSRPTalker.h>\n#import <AudioVideoBridging/AVBMSRPTalkerAttribute.h>\n#import <AudioVideoBridging/AVBMVRP.h>\n#import <AudioVideoBridging/AVB17221AEMCoreAudioDeviceModelMaker.h>\n#import <AudioVideoBridging/AVBBuiltInAVDECCEntity.h>\n#import <AudioVideoBridging/AVBNub.h>\n#import <AudioVideoBridging/AVB17221AEMMemoryObjectData.h>\n#import <AudioVideoBridging/AVB17221AEMEntityEnumerator.h>\n#import <AudioVideoBridging/AVBMACAddress.h>\n#import <AudioVideoBridging/AVB17221ACMPMessage.h>\n#import <AudioVideoBridging/AVB17221AECPAEMMessage.h>\n#import <AudioVideoBridging/AVB17221AECPAddressAccessMessage.h>\n#import <AudioVideoBridging/AVBAudioDeviceSharing.h>\n#import <AudioVideoBridging/AVBMutableBool.h>\n#import <AudioVideoBridging/AVBVirtualEntity.h>\n#import <AudioVideoBridging/AVB17221AECPAVCMessage.h>\n#import <AudioVideoBridging/AVB17221AECPVendorMessage.h>\n#import <AudioVideoBridging/AVB17221AECPAddressAccessTLV.h>\n#import <AudioVideoBridging/AVB17221AEMStreamFormatTransformer.h>\n#import <AudioVideoBridging/AVB17221AEMVideoColorSpaceTransformer.h>\n#import <AudioVideoBridging/AVB17221AECPMessage.h>\n#import <AudioVideoBridging/AVB17221AEMMatrixSignal.h>\n#import <AudioVideoBridging/AVB17221AEMMemoryObject.h>\n#import <AudioVideoBridging/AVB17221AEMNamedModelObject.h>\n#import <AudioVideoBridging/AVB17221AEMClockDomainedModelObject.h>\n#import <AudioVideoBridging/AVB17221AEMNamedClockDomainedModelObject.h>\n#import <AudioVideoBridging/AVB17221AEMUnit.h>\n#import <AudioVideoBridging/AVB17221AEMCluster.h>\n#import <AudioVideoBridging/AVBMAAPMACAddress.h>\n#import <AudioVideoBridging/AVB17221AEMPort.h>\n#import <AudioVideoBridging/AVBCentralManager.h>\n#import <AudioVideoBridging/AVB17221AEMSignalPort.h>\n#import <AudioVideoBridging/AVB17221AEMSampleRateTransformer.h>\n#import <AudioVideoBridging/AVB17221AEMVideoMap.h>\n#import <AudioVideoBridging/AVBIIDCIOSurfaceOutputStream.h>\n#import <AudioVideoBridging/AVB17221AEMSensorMap.h>\n#import <AudioVideoBridging/AVB17221AEMVideoMapping.h>\n#import <AudioVideoBridging/AVB17221AEMSensorMapping.h>\n#import <AudioVideoBridging/AVB17221AEMSensorCluster.h>\n#import <AudioVideoBridging/AVB17221AEMBaseControl.h>\n#import <AudioVideoBridging/AVBCustomVirtualAudioEntityAEMValidator.h>\n#import <AudioVideoBridging/AVB17221AEMSignalTranscoder.h>\n#import <AudioVideoBridging/AVB17221AEMSignalSplitter.h>\n#import <AudioVideoBridging/AVB17221AEMSignalSplitterMapping.h>\n#import <AudioVideoBridging/AVB17221AEMSignalDemultiplexerMapping.h>\n#import <AudioVideoBridging/AVBBuiltInAVDECCController.h>\n#import <AudioVideoBridging/AVB17221AEMSignalDemultiplexer.h>\n#import <AudioVideoBridging/AVB17221AEMSignalCombinerMapping.h>\n#import <AudioVideoBridging/AVB17221AEMSignalMultiplexerMapping.h>\n#import <AudioVideoBridging/AVB17221AEMSignalCombiner.h>\n#import <AudioVideoBridging/AVB17221AEMSignalMultiplexer.h>\n#import <AudioVideoBridging/AVB17221AEMVideoCluster.h>\n#import <AudioVideoBridging/AVB17221AEMVideoFormatSpecific.h>\n#import <AudioVideoBridging/AVB17221AEMVideoAspectRatio.h>\n#import <AudioVideoBridging/AVB17221AEMVideoSize.h>\n#import <AudioVideoBridging/AVBgPTPEthernetPort.h>\n#import <AudioVideoBridging/AVB17221AEMClockDomain.h>\n#import <AudioVideoBridging/AVB17221AEMSensorFormat.h>\n#import <AudioVideoBridging/AVB17221AEMControlBlock.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorSelectorStringValue.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorSMPTETimeValue.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorGPTPValue.h>\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorSamplingRateValue.h>\n#import <AudioVideoBridging/AVBAudioDriverManager.h>\n#import <AudioVideoBridging/AVBInputStream.h>\n#import <AudioVideoBridging/AVBStream.h>\n#import <AudioVideoBridging/AVBOutputStream.h>\n\nvoid* AVB17221AEMVideoColorSpaceBitsPerPixel(void);\nvoid* AVB17221AEMVideoColorSpaceFromCVPixelFormatType(void);\nvoid* AVB17221AEMVideoColorSpaceFromIIDCVideoFormat(void);\nvoid* AVB17221AEMVideoColorSpaceIsSupportedByCVPixelFormatType(void);\nvoid* AVB17221AEMVideoColorSpaceSupportsCVPixelFormatType(void);\nvoid* AVB17221AEMVideoColorSpaceToCVPixelFormatType(void);\nvoid* _Z11AAA_add_128yy(void);\nvoid* _Z13AAA_uint64mulyy(void);\nvoid* _ZNK8AAA_U128dvERKS_(void);\nvoid* _ZNK8AAA_U128mlERKS_(void);\nvoid* _ZmlRK8AAA_U128y(void);\nvoid* _ZmlyRK8AAA_U128(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/include/AudioVideoBridging/TSClockClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol TSClockClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221ACMPInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221ACMPInterface.h>\n\n@implementation AVB17221ACMPInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221ACMPMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221ACMPMessage.h>\n\n@implementation AVB17221ACMPMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221ACMPPendingResponse.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221ACMPPendingResponse.h>\n\n@implementation AVB17221ACMPPendingResponse\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AECPAEMMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AECPAEMMessage.h>\n\n@implementation AVB17221AECPAEMMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AECPAVCMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AECPAVCMessage.h>\n\n@implementation AVB17221AECPAVCMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AECPAddressAccessMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AECPAddressAccessMessage.h>\n\n@implementation AVB17221AECPAddressAccessMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AECPAddressAccessTLV.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AECPAddressAccessTLV.h>\n\n@implementation AVB17221AECPAddressAccessTLV\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AECPInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AECPInterface.h>\n\n@implementation AVB17221AECPInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AECPMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AECPMessage.h>\n\n@implementation AVB17221AECPMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AECPPendingResponse.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AECPPendingResponse.h>\n\n@implementation AVB17221AECPPendingResponse\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AECPVendorMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AECPVendorMessage.h>\n\n@implementation AVB17221AECPVendorMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEM618834StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEM618834StreamFormat.h>\n\n@implementation AVB17221AEM618834StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEM61883632BitStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEM61883632BitStreamFormat.h>\n\n@implementation AVB17221AEM61883632BitStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEM618836AM824StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEM618836AM824StreamFormat.h>\n\n@implementation AVB17221AEM618836AM824StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEM618836FloatStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEM618836FloatStreamFormat.h>\n\n@implementation AVB17221AEM618836FloatStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEM618836StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEM618836StreamFormat.h>\n\n@implementation AVB17221AEM618836StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEM618837StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEM618837StreamFormat.h>\n\n@implementation AVB17221AEM618837StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEM618838StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEM618838StreamFormat.h>\n\n@implementation AVB17221AEM618838StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEM61883StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEM61883StreamFormat.h>\n\n@implementation AVB17221AEM61883StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAAFAES3StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAAFAES3StreamFormat.h>\n\n@implementation AVB17221AEMAAFAES3StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAAFPCMStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAAFPCMStreamFormat.h>\n\n@implementation AVB17221AEMAAFPCMStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAAFStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAAFStreamFormat.h>\n\n@implementation AVB17221AEMAAFStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAVBInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAVBInterface.h>\n\n@implementation AVB17221AEMAVBInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAVCaptureDeviceModelMaker.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAVCaptureDeviceModelMaker.h>\n\n@implementation AVB17221AEMAVCaptureDeviceModelMaker\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAudioCluster.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAudioCluster.h>\n\n@implementation AVB17221AEMAudioCluster\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAudioMap.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAudioMap.h>\n\n@implementation AVB17221AEMAudioMap\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAudioMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAudioMapping.h>\n\n@implementation AVB17221AEMAudioMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMAudioUnit.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMAudioUnit.h>\n\n@implementation AVB17221AEMAudioUnit\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMBaseControl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMBaseControl.h>\n\n@implementation AVB17221AEMBaseControl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMBodePlotEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMBodePlotEntry.h>\n\n@implementation AVB17221AEMBodePlotEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMCRFStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMCRFStreamFormat.h>\n\n@implementation AVB17221AEMCRFStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMCVFH264StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMCVFH264StreamFormat.h>\n\n@implementation AVB17221AEMCVFH264StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMCVFJPEG2000StreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMCVFJPEG2000StreamFormat.h>\n\n@implementation AVB17221AEMCVFJPEG2000StreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMCVFMJPEGStreamForamt.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMCVFMJPEGStreamForamt.h>\n\n@implementation AVB17221AEMCVFMJPEGStreamForamt\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMCVFStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMCVFStreamFormat.h>\n\n@implementation AVB17221AEMCVFStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMClockDomain.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMClockDomain.h>\n\n@implementation AVB17221AEMClockDomain\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMClockDomainedModelObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMClockDomainedModelObject.h>\n\n@implementation AVB17221AEMClockDomainedModelObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMClockSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMClockSource.h>\n\n@implementation AVB17221AEMClockSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMCluster.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMCluster.h>\n\n@implementation AVB17221AEMCluster\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMConfiguration.h>\n\n@implementation AVB17221AEMConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControl.h>\n\n@implementation AVB17221AEMControl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlBlock.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlBlock.h>\n\n@implementation AVB17221AEMControlBlock\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorArrayValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorArrayValue.h>\n\n@implementation AVB17221AEMControlDescriptorArrayValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorBodePlotValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorBodePlotValue.h>\n\n@implementation AVB17221AEMControlDescriptorBodePlotValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorGPTPValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorGPTPValue.h>\n\n@implementation AVB17221AEMControlDescriptorGPTPValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorLinearSet.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorLinearSet.h>\n\n@implementation AVB17221AEMControlDescriptorLinearSet\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorLinearValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorLinearValue.h>\n\n@implementation AVB17221AEMControlDescriptorLinearValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorSMPTETimeValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorSMPTETimeValue.h>\n\n@implementation AVB17221AEMControlDescriptorSMPTETimeValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorSamplingRateValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorSamplingRateValue.h>\n\n@implementation AVB17221AEMControlDescriptorSamplingRateValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorSelectorStringValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorSelectorStringValue.h>\n\n@implementation AVB17221AEMControlDescriptorSelectorStringValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorSelectorValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorSelectorValue.h>\n\n@implementation AVB17221AEMControlDescriptorSelectorValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorUTF8Value.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorUTF8Value.h>\n\n@implementation AVB17221AEMControlDescriptorUTF8Value\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorValue.h>\n\n@implementation AVB17221AEMControlDescriptorValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMControlDescriptorVendorValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMControlDescriptorVendorValue.h>\n\n@implementation AVB17221AEMControlDescriptorVendorValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMCoreAudioDeviceModelMaker.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMCoreAudioDeviceModelMaker.h>\n\n@implementation AVB17221AEMCoreAudioDeviceModelMaker\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMDescriptorCount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMDescriptorCount.h>\n\n@implementation AVB17221AEMDescriptorCount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMEntity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMEntity.h>\n\n@implementation AVB17221AEMEntity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMEntityEnumerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMEntityEnumerator.h>\n\n@implementation AVB17221AEMEntityEnumerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMExternalPort.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMExternalPort.h>\n\n@implementation AVB17221AEMExternalPort\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMIIDCStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMIIDCStreamFormat.h>\n\n@implementation AVB17221AEMIIDCStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMInternalPort.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMInternalPort.h>\n\n@implementation AVB17221AEMInternalPort\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMJack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMJack.h>\n\n@implementation AVB17221AEMJack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMLMMMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMLMMMapping.h>\n\n@implementation AVB17221AEMLMMMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMLocalModelMaker.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMLocalModelMaker.h>\n\n@implementation AVB17221AEMLocalModelMaker\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMLocalRemoteMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMLocalRemoteMapping.h>\n\n@implementation AVB17221AEMLocalRemoteMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMLocale.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMLocale.h>\n\n@implementation AVB17221AEMLocale\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMLocalizedStringReference.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMLocalizedStringReference.h>\n\n@implementation AVB17221AEMLocalizedStringReference\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMMMAStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMMMAStreamFormat.h>\n\n@implementation AVB17221AEMMMAStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMMSRPMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMMSRPMapping.h>\n\n@implementation AVB17221AEMMSRPMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMMatrix.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMMatrix.h>\n\n@implementation AVB17221AEMMatrix\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMMatrixSignal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMMatrixSignal.h>\n\n@implementation AVB17221AEMMatrixSignal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMMemoryObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMMemoryObject.h>\n\n@implementation AVB17221AEMMemoryObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMMemoryObjectData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMMemoryObjectData.h>\n\n@implementation AVB17221AEMMemoryObjectData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMMixer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMMixer.h>\n\n@implementation AVB17221AEMMixer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMModelMaker.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMModelMaker.h>\n\n@implementation AVB17221AEMModelMaker\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMModelObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMModelObject.h>\n\n@implementation AVB17221AEMModelObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMNamedClockDomainedModelObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMNamedClockDomainedModelObject.h>\n\n@implementation AVB17221AEMNamedClockDomainedModelObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMNamedModelObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMNamedModelObject.h>\n\n@implementation AVB17221AEMNamedModelObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMObject.h>\n\n@implementation AVB17221AEMObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMPort.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMPort.h>\n\n@implementation AVB17221AEMPort\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMRVFStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMRVFStreamFormat.h>\n\n@implementation AVB17221AEMRVFStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSVFStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSVFStreamFormat.h>\n\n@implementation AVB17221AEMSVFStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSampleRateTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSampleRateTransformer.h>\n\n@implementation AVB17221AEMSampleRateTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSamplingRate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSamplingRate.h>\n\n@implementation AVB17221AEMSamplingRate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSamplingRateRange.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSamplingRateRange.h>\n\n@implementation AVB17221AEMSamplingRateRange\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSensorCluster.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSensorCluster.h>\n\n@implementation AVB17221AEMSensorCluster\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSensorFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSensorFormat.h>\n\n@implementation AVB17221AEMSensorFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSensorMap.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSensorMap.h>\n\n@implementation AVB17221AEMSensorMap\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSensorMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSensorMapping.h>\n\n@implementation AVB17221AEMSensorMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSensorUnit.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSensorUnit.h>\n\n@implementation AVB17221AEMSensorUnit\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignal.h>\n\n@implementation AVB17221AEMSignal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalCombiner.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalCombiner.h>\n\n@implementation AVB17221AEMSignalCombiner\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalCombinerMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalCombinerMapping.h>\n\n@implementation AVB17221AEMSignalCombinerMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalDemultiplexer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalDemultiplexer.h>\n\n@implementation AVB17221AEMSignalDemultiplexer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalDemultiplexerMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalDemultiplexerMapping.h>\n\n@implementation AVB17221AEMSignalDemultiplexerMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalMultiplexer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalMultiplexer.h>\n\n@implementation AVB17221AEMSignalMultiplexer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalMultiplexerMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalMultiplexerMapping.h>\n\n@implementation AVB17221AEMSignalMultiplexerMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalPort.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalPort.h>\n\n@implementation AVB17221AEMSignalPort\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalSelector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalSelector.h>\n\n@implementation AVB17221AEMSignalSelector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalSplitter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalSplitter.h>\n\n@implementation AVB17221AEMSignalSplitter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalSplitterMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalSplitterMapping.h>\n\n@implementation AVB17221AEMSignalSplitterMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMSignalTranscoder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMSignalTranscoder.h>\n\n@implementation AVB17221AEMSignalTranscoder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMStandardStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMStandardStreamFormat.h>\n\n@implementation AVB17221AEMStandardStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMStream.h>\n\n@implementation AVB17221AEMStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMStreamFormat.h>\n\n@implementation AVB17221AEMStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMStreamFormatTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMStreamFormatTransformer.h>\n\n@implementation AVB17221AEMStreamFormatTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMStreamPort.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMStreamPort.h>\n\n@implementation AVB17221AEMStreamPort\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMStrings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMStrings.h>\n\n@implementation AVB17221AEMStrings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMTSCFStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMTSCFStreamFormat.h>\n\n@implementation AVB17221AEMTSCFStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMUnit.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMUnit.h>\n\n@implementation AVB17221AEMUnit\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVSFStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVSFStreamFormat.h>\n\n@implementation AVB17221AEMVSFStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVendorStreamFormat.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVendorStreamFormat.h>\n\n@implementation AVB17221AEMVendorStreamFormat\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVideoAspectRatio.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVideoAspectRatio.h>\n\n@implementation AVB17221AEMVideoAspectRatio\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVideoCluster.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVideoCluster.h>\n\n@implementation AVB17221AEMVideoCluster\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVideoColorSpaceTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVideoColorSpaceTransformer.h>\n\n@implementation AVB17221AEMVideoColorSpaceTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVideoFormatSpecific.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVideoFormatSpecific.h>\n\n@implementation AVB17221AEMVideoFormatSpecific\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVideoMap.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVideoMap.h>\n\n@implementation AVB17221AEMVideoMap\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVideoMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVideoMapping.h>\n\n@implementation AVB17221AEMVideoMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVideoSize.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVideoSize.h>\n\n@implementation AVB17221AEMVideoSize\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221AEMVideoUnit.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221AEMVideoUnit.h>\n\n@implementation AVB17221AEMVideoUnit\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221Entity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221Entity.h>\n\n@implementation AVB17221Entity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB17221EntityDiscovery.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB17221EntityDiscovery.h>\n\n@implementation AVB17221EntityDiscovery\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB1722ControlInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB1722ControlInterface.h>\n\n@implementation AVB1722ControlInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVB1722MAAP.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVB1722MAAP.h>\n\n@implementation AVB1722MAAP\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBAVDECCController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBAVDECCController.h>\n\n@implementation AVBAVDECCController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBAVDECCEntity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBAVDECCEntity.h>\n\n@implementation AVBAVDECCEntity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBAVDECCEntityInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBAVDECCEntityInterface.h>\n\n@implementation AVBAVDECCEntityInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBAudioDeviceSharing.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBAudioDeviceSharing.h>\n\n@implementation AVBAudioDeviceSharing\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBAudioDriverManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBAudioDriverManager.h>\n\n@implementation AVBAudioDriverManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBBuiltInAVDECCController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBBuiltInAVDECCController.h>\n\n@implementation AVBBuiltInAVDECCController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBBuiltInAVDECCEntity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBBuiltInAVDECCEntity.h>\n\n@implementation AVBBuiltInAVDECCEntity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBCentralManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBCentralManager.h>\n\n@implementation AVBCentralManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBConnectedTransformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBConnectedTransformer.h>\n\n@implementation AVBConnectedTransformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBCustomVirtualAudioEntityAEMValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBCustomVirtualAudioEntityAEMValidator.h>\n\n@implementation AVBCustomVirtualAudioEntityAEMValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBEUI64Transformer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBEUI64Transformer.h>\n\n@implementation AVBEUI64Transformer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBEthernetInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBEthernetInterface.h>\n\n@implementation AVBEthernetInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBIIDCIOSurfaceOutputStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBIIDCIOSurfaceOutputStream.h>\n\n@implementation AVBIIDCIOSurfaceOutputStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBIIDCIOSurfaceStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBIIDCIOSurfaceStream.h>\n\n@implementation AVBIIDCIOSurfaceStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBIIDCStreamConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBIIDCStreamConfiguration.h>\n\n@implementation AVBIIDCStreamConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBIIDCUserInputStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBIIDCUserInputStream.h>\n\n@implementation AVBIIDCUserInputStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBIIDCUserOutputStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBIIDCUserOutputStream.h>\n\n@implementation AVBIIDCUserOutputStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBInputStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBInputStream.h>\n\n@implementation AVBInputStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBInterface.h>\n\n@implementation AVBInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBInterfaceStreamingManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBInterfaceStreamingManager.h>\n\n@implementation AVBInterfaceStreamingManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMAAPMACAddress.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMAAPMACAddress.h>\n\n@implementation AVBMAAPMACAddress\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMACAddress.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMACAddress.h>\n\n@implementation AVBMACAddress\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMACAddressFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMACAddressFormatter.h>\n\n@implementation AVBMACAddressFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMRP.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMRP.h>\n\n@implementation AVBMRP\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMSRPDomain.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMSRPDomain.h>\n\n@implementation AVBMSRPDomain\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMSRPDomainInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMSRPDomainInfo.h>\n\n@implementation AVBMSRPDomainInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMSRPListener.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMSRPListener.h>\n\n@implementation AVBMSRPListener\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMSRPTalker.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMSRPTalker.h>\n\n@implementation AVBMSRPTalker\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMSRPTalkerAttribute.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMSRPTalkerAttribute.h>\n\n@implementation AVBMSRPTalkerAttribute\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMVRP.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMVRP.h>\n\n@implementation AVBMVRP\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBMutableBool.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBMutableBool.h>\n\n@implementation AVBMutableBool\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBNub.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBNub.h>\n\n@implementation AVBNub\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBOutputStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBOutputStream.h>\n\n@implementation AVBOutputStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBSimpleVirtualAudio.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBSimpleVirtualAudio.h>\n\n@implementation AVBSimpleVirtualAudio\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBStream.h>\n\n@implementation AVBStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBVirtualEntity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBVirtualEntity.h>\n\n@implementation AVBVirtualEntity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBVirtualStream.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBVirtualStream.h>\n\n@implementation AVBVirtualStream\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBVirtualStreamConnection.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBVirtualStreamConnection.h>\n\n@implementation AVBVirtualStreamConnection\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBWiFiInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBWiFiInterface.h>\n\n@implementation AVBWiFiInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AVBgPTPEthernetPort.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AudioVideoBridging/AVBgPTPEthernetPort.h>\n\n@implementation AVBgPTPEthernetPort\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AudioVideoBridging/src/AudioVideoBridging.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Darling Developers\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <AudioVideoBridging/AudioVideoBridging.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* AVB17221AEMVideoColorSpaceBitsPerPixel(void)\n{\n    if (verbose) puts(\"STUB: AVB17221AEMVideoColorSpaceBitsPerPixel called\");\n    return NULL;\n}\n\nvoid* AVB17221AEMVideoColorSpaceFromCVPixelFormatType(void)\n{\n    if (verbose) puts(\"STUB: AVB17221AEMVideoColorSpaceFromCVPixelFormatType called\");\n    return NULL;\n}\n\nvoid* AVB17221AEMVideoColorSpaceFromIIDCVideoFormat(void)\n{\n    if (verbose) puts(\"STUB: AVB17221AEMVideoColorSpaceFromIIDCVideoFormat called\");\n    return NULL;\n}\n\nvoid* AVB17221AEMVideoColorSpaceIsSupportedByCVPixelFormatType(void)\n{\n    if (verbose) puts(\"STUB: AVB17221AEMVideoColorSpaceIsSupportedByCVPixelFormatType called\");\n    return NULL;\n}\n\nvoid* AVB17221AEMVideoColorSpaceSupportsCVPixelFormatType(void)\n{\n    if (verbose) puts(\"STUB: AVB17221AEMVideoColorSpaceSupportsCVPixelFormatType called\");\n    return NULL;\n}\n\nvoid* AVB17221AEMVideoColorSpaceToCVPixelFormatType(void)\n{\n    if (verbose) puts(\"STUB: AVB17221AEMVideoColorSpaceToCVPixelFormatType called\");\n    return NULL;\n}\n\nvoid* _Z11AAA_add_128yy(void)\n{\n    if (verbose) puts(\"STUB: _Z11AAA_add_128yy called\");\n    return NULL;\n}\n\nvoid* _Z13AAA_uint64mulyy(void)\n{\n    if (verbose) puts(\"STUB: _Z13AAA_uint64mulyy called\");\n    return NULL;\n}\n\nvoid* _ZNK8AAA_U128dvERKS_(void)\n{\n    if (verbose) puts(\"STUB: _ZNK8AAA_U128dvERKS_ called\");\n    return NULL;\n}\n\nvoid* _ZNK8AAA_U128mlERKS_(void)\n{\n    if (verbose) puts(\"STUB: _ZNK8AAA_U128mlERKS_ called\");\n    return NULL;\n}\n\nvoid* _ZmlRK8AAA_U128y(void)\n{\n    if (verbose) puts(\"STUB: _ZmlRK8AAA_U128y called\");\n    return NULL;\n}\n\nvoid* _ZmlyRK8AAA_U128(void)\n{\n    if (verbose) puts(\"STUB: _ZmlyRK8AAA_U128 called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/CMakeLists.txt",
    "content": "project(AuthenticationServices)\n\nremove_sdk_framework(AuthenticationServices)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"614.3.7\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(AuthenticationServices\n\tVERSION ${FRAMEWORK_VERSION}\n\tHEADER \"include/AuthenticationServices\"\n)\n\n\nadd_framework(AuthenticationServices\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${FRAMEWORK_VERSION}\n\n\tSOURCES\n\t\tsrc/AKAuthorizationCredential+AuthenticationServicesExtras.m\n\t\tsrc/ASAuthorization.m\n\t\tsrc/ASAuthorizationAppleIDButton.m\n\t\tsrc/ASAuthorizationAppleIDCredential.m\n\t\tsrc/ASAuthorizationAppleIDProvider.m\n\t\tsrc/ASAuthorizationAppleIDRequest.m\n\t\tsrc/ASAuthorizationController.m\n\t\tsrc/ASAuthorizationOpenIDRequest.m\n\t\tsrc/ASAuthorizationPasswordProvider.m\n\t\tsrc/ASAuthorizationPasswordRequest.m\n\t\tsrc/ASAuthorizationPlatformPublicKeyCredentialAssertion.m\n\t\tsrc/ASAuthorizationPlatformPublicKeyCredentialAssertionRequest.m\n\t\tsrc/ASAuthorizationPlatformPublicKeyCredentialDescriptor.m\n\t\tsrc/ASAuthorizationPlatformPublicKeyCredentialProvider.m\n\t\tsrc/ASAuthorizationPlatformPublicKeyCredentialRegistration.m\n\t\tsrc/ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest.m\n\t\tsrc/ASAuthorizationProviderExtensionAuthorizationRequest.m\n\t\tsrc/ASAuthorizationProviderExtensionAuthorizationResult.m\n\t\tsrc/ASAuthorizationProviderExtensionKerberosMapping.m\n\t\tsrc/ASAuthorizationProviderExtensionLoginConfiguration.m\n\t\tsrc/ASAuthorizationProviderExtensionLoginManager.m\n\t\tsrc/ASAuthorizationPublicKeyCredentialParameters.m\n\t\tsrc/ASAuthorizationRequest.m\n\t\tsrc/ASAuthorizationSecurityKeyPublicKeyCredentialAssertion.m\n\t\tsrc/ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest.m\n\t\tsrc/ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor.m\n\t\tsrc/ASAuthorizationSecurityKeyPublicKeyCredentialProvider.m\n\t\tsrc/ASAuthorizationSecurityKeyPublicKeyCredentialRegistration.m\n\t\tsrc/ASAuthorizationSecurityKeyPublicKeyCredentialRegistrationRequest.m\n\t\tsrc/ASAuthorizationServiceViewController.m\n\t\tsrc/ASAuthorizationSingleSignOnCredential.m\n\t\tsrc/ASAuthorizationSingleSignOnProvider.m\n\t\tsrc/ASAuthorizationSingleSignOnRequest.m\n\t\tsrc/ASAuthorizationViewController.m\n\t\tsrc/ASBarButtonItem.m\n\t\tsrc/ASCredentialIdentityStore.m\n\t\tsrc/ASCredentialIdentityStoreState.m\n\t\tsrc/ASCredentialPickerPaneViewController.m\n\t\tsrc/ASCredentialProviderExtensionContext.m\n\t\tsrc/ASCredentialProviderViewController.m\n\t\tsrc/ASCredentialRequestBasicPaneViewController.m\n\t\tsrc/ASCredentialRequestButton.m\n\t\tsrc/ASCredentialRequestButtonContinue.m\n\t\tsrc/ASCredentialRequestCABLEClientViewController.m\n\t\tsrc/ASCredentialRequestCABLEConnectingViewController.m\n\t\tsrc/ASCredentialRequestConfirmButtonSubPane.m\n\t\tsrc/ASCredentialRequestContainerViewController.m\n\t\tsrc/ASCredentialRequestEnableBluetoothViewController.m\n\t\tsrc/ASCredentialRequestIconGenerator.m\n\t\tsrc/ASCredentialRequestImageSubPane.m\n\t\tsrc/ASCredentialRequestInfoLabelSubPane.m\n\t\tsrc/ASCredentialRequestLoginChoiceCell.m\n\t\tsrc/ASCredentialRequestPaneContext.m\n\t\tsrc/ASCredentialRequestPaneViewController.m\n\t\tsrc/ASCredentialRequestSecondaryButton.m\n\t\tsrc/ASCredentialRequestSecurityKeyStringUtilities.m\n\t\tsrc/ASCredentialRequestSubPane.m\n\t\tsrc/ASCredentialServiceIdentifier.m\n\t\tsrc/ASExtensionRemoteViewController.m\n\t\tsrc/ASExtensionServiceViewController.m\n\t\tsrc/ASNavigationController.m\n\t\tsrc/ASNavigationItem.m\n\t\tsrc/ASPasswordAuthenticationPaneViewController.m\n\t\tsrc/ASPasswordCredential.m\n\t\tsrc/ASPasswordCredentialIdentity.m\n\t\tsrc/ASPublicKeyCredentialBase.m\n\t\tsrc/ASPublicKeyCredentialManager.m\n\t\tsrc/ASPublicKeyCredentialOperation.m\n\t\tsrc/ASViewServiceInterfaceUtilities.m\n\t\tsrc/ASWebAuthenticationSession.m\n\t\tsrc/ASWebAuthenticationSessionController.m\n\t\tsrc/ASWebAuthenticationSessionLaunchAgentProxy.m\n\t\tsrc/ASWebAuthenticationSessionRequest.m\n\t\tsrc/ASWebAuthenticationSessionRequestClient.m\n\t\tsrc/ASWebAuthenticationSessionWebBrowserSessionManager.m\n\t\tsrc/LAUIAuthenticationViewController+AuthenticationServicesExtras.m\n\t\tsrc/NSBundle+ASNSBundleExtras.m\n\t\tsrc/NSExtension+AuthenticationServicesExtras.m\n\t\tsrc/NSImage+ASImageExtras.m\n\t\tsrc/NSLayoutConstraint+ASNSLayoutConstraintExtras.m\n\t\tsrc/NSPasteboard+AuthenticationServicesExtras.m\n\t\tsrc/NSStackView+ASCredentialPickerPaneViewController.m\n\t\tsrc/NSViewController+AuthenticationServicesExtras.m\n\t\tsrc/NSXPCInterface+AuthenticationServicesExtras.m\n\t\tsrc/WBSSavedAccountStore+PasskeyExtras.m\n\t\tsrc/_ASCABLEQRCodeBadgePlatterView.m\n\t\tsrc/_ASCABLEQRCodeBadgeView.m\n\t\tsrc/_ASCABLEQRCodeImageView.m\n\t\tsrc/_ASCABLEQRCodeView.m\n\t\tsrc/_ASCredentialListViewController.m\n\t\tsrc/_ASCredentialProviderExtensionConfigurationViewController.m\n\t\tsrc/_ASCredentialProviderExtensionHostContext.m\n\t\tsrc/_ASExtensionViewController.m\n\t\tsrc/_ASIncomingCallObserver.m\n\t\tsrc/_ASPasskeysLearnMoreContent.m\n\t\tsrc/_ASPasswordCredentialAuthenticationViewController.m\n\t\tsrc/_ASPasswordManagerDeleteAlertConfiguration.m\n\t\tsrc/_ASPasswordManagerIconController.m\n\t\tsrc/_ASPasswordManagerMacFrameworksTrampoline.m\n\t\tsrc/_ASStackSpacerView.m\n\t\tsrc/_ASWebAuthenticationSessionRequestServer.m\n\n\tDEPENDENCIES\n\t\tsystem\n\t\tobjc\n\t\tFoundation\n\t\tAppKit\n)"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/AKAdaptiveServiceInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AKAdaptiveServiceInterface\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/AKAuthorizationCredential+AuthenticationServicesExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n// @interface AKAuthorizationCredential (AuthenticationServicesExtras)\n// \n// @end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/AKAuthorizationNotificationHandler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AKAuthorizationNotificationHandler\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorization.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n#include <AuthenticationServices/ASAuthorizationCredential.h>\n\n@interface ASAuthorization : NSObject\n@property(nonatomic, readonly, strong) id<ASAuthorizationCredential> credential;\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationAppleIDButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationAppleIDButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationAppleIDCredential.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationAppleIDCredential : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationAppleIDProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationAppleIDProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationAppleIDRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationAppleIDRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n#include <AppKit/NSWindow.h>\n\n#include <AuthenticationServices/ASAuthorizationControllerDelegate.h>\n#include <AuthenticationServices/ASAuthorizationControllerPresentationContextProviding.h>\n#include <AuthenticationServices/ASAuthorizationRequest.h>\n\n#ifdef TARGET_OS_OSX\ntypedef NSWindow *ASPresentationAnchor;\n#else // TARGET_OS_IPHONE\ntypedef UIWindow *ASPresentationAnchor;\n#endif\n\n\n@interface ASAuthorizationController : NSObject {\n    id<ASAuthorizationControllerDelegate> _delegate;\n    id<ASAuthorizationControllerPresentationContextProviding> _presentationContextProvider;\n}\n\n#ifndef DARLING\n@property(nonatomic, weak, nullable) id<ASAuthorizationControllerDelegate> delegate;\n@property(nonatomic, weak, nullable) id<ASAuthorizationControllerPresentationContextProviding> presentationContextProvider;\n#else\n@property(nonatomic, assign, nullable) id<ASAuthorizationControllerDelegate> delegate;\n@property(nonatomic, assign, nullable) id<ASAuthorizationControllerPresentationContextProviding> presentationContextProvider;\n#endif\n\n- (instancetype)initWithAuthorizationRequests:(NSArray<ASAuthorizationRequest *> *)authorizationRequests;\n- (void)performRequests;\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationControllerPresentationContextProviding.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationControllerPresentationContextProviding\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationCredential.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationCredential\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationOpenIDRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationOpenIDRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPasswordProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n#include <AuthenticationServices/ASAuthorizationPasswordRequest.h>\n\n@interface ASAuthorizationPasswordProvider : NSObject\n- (ASAuthorizationPasswordRequest *)createRequest;\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPasswordRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationPasswordRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialAssertion.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationPlatformPublicKeyCredentialAssertion : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialAssertionRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationPlatformPublicKeyCredentialAssertionRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationPlatformPublicKeyCredentialDescriptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationPlatformPublicKeyCredentialProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialRegistration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationPlatformPublicKeyCredentialRegistration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationProviderExtensionAuthorizationRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationProviderExtensionAuthorizationRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationProviderExtensionAuthorizationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationProviderExtensionAuthorizationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationProviderExtensionKerberosMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationProviderExtensionKerberosMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationProviderExtensionLoginConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationProviderExtensionLoginConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationProviderExtensionLoginManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationProviderExtensionLoginManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPublicKeyCredentialAssertion.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationPublicKeyCredentialAssertion\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPublicKeyCredentialAssertionRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationPublicKeyCredentialAssertionRequest\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPublicKeyCredentialDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationPublicKeyCredentialDescriptor\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPublicKeyCredentialParameters.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationPublicKeyCredentialParameters : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPublicKeyCredentialRegistration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationPublicKeyCredentialRegistration\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationPublicKeyCredentialRegistrationRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationPublicKeyCredentialRegistrationRequest\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialAssertion.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSecurityKeyPublicKeyCredentialAssertion : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSecurityKeyPublicKeyCredentialProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialRegistration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSecurityKeyPublicKeyCredentialRegistration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialRegistrationRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSecurityKeyPublicKeyCredentialRegistrationRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationServiceViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationServiceViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSingleSignOnCredential.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSingleSignOnCredential : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSingleSignOnProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSingleSignOnProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationSingleSignOnRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationSingleSignOnRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASAuthorizationViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASAuthorizationViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASAuthorizationViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASBarButtonItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASBarButtonItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCAuthorizationPresenterHostProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASCAuthorizationPresenterHostProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCViewServiceProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASCViewServiceProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialIdentityStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialIdentityStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialIdentityStoreState.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialIdentityStoreState : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialPickerPaneViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialPickerPaneViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialProviderExtensionContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialProviderExtensionContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialProviderViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialProviderViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestBasicPaneViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestBasicPaneViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestButtonContinue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestButtonContinue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestCABLEClientViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestCABLEClientViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestCABLEConnectingViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestCABLEConnectingViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestConfirmButtonSubPane.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestConfirmButtonSubPane : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestContainerViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestContainerViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestContainerViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASCredentialRequestContainerViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestEnableBluetoothViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestEnableBluetoothViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestIconGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestIconGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestImageSubPane.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestImageSubPane : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestInfoLabelSubPane.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestInfoLabelSubPane : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestLoginChoiceCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestLoginChoiceCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestPaneContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestPaneContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestPaneViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestPaneViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestPaneViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASCredentialRequestPaneViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestSecondaryButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestSecondaryButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestSecurityKeyStringUtilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestSecurityKeyStringUtilities : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestSubPane.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialRequestSubPane : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialRequestSubPaneConfirmButtonDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASCredentialRequestSubPaneConfirmButtonDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASCredentialServiceIdentifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASCredentialServiceIdentifier : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASExtensionRemoteViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASExtensionRemoteViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASExtensionServiceProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASExtensionServiceProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASExtensionServiceViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASExtensionServiceViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASNavigationController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASNavigationController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASNavigationControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASNavigationControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASNavigationItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASNavigationItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPasswordAuthenticationPaneViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASPasswordAuthenticationPaneViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPasswordAuthenticationPaneViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASPasswordAuthenticationPaneViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPasswordCredential.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASPasswordCredential : NSObject\n@property(nonatomic, copy, readonly) NSString *user;\n@property(nonatomic, copy, readonly) NSString *password;\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPasswordCredentialIdentity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASPasswordCredentialIdentity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPublicKeyCredential.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASPublicKeyCredential\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPublicKeyCredentialBase.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASPublicKeyCredentialBase : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPublicKeyCredentialManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASPublicKeyCredentialManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPublicKeyCredentialManagerInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASPublicKeyCredentialManagerInterface\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASPublicKeyCredentialOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASPublicKeyCredentialOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASViewServiceInterfaceUtilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASViewServiceInterfaceUtilities : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASWebAuthenticationSession.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASWebAuthenticationSession : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASWebAuthenticationSessionController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASWebAuthenticationSessionController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASWebAuthenticationSessionLaunchAgentProxy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASWebAuthenticationSessionLaunchAgentProxy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASWebAuthenticationSessionRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASWebAuthenticationSessionRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASWebAuthenticationSessionRequestClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASWebAuthenticationSessionRequestClient : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASWebAuthenticationSessionRequestDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASWebAuthenticationSessionRequestDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASWebAuthenticationSessionRequestServing.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ASWebAuthenticationSessionRequestServing\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/ASWebAuthenticationSessionWebBrowserSessionManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ASWebAuthenticationSessionWebBrowserSessionManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/AuthenticationServices.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#ifndef _AUTHENTICATIONSERVICES_H_\n#define _AUTHENTICATIONSERVICES_H_\n\n#import <Foundation/Foundation.h>\n\n#import <AuthenticationServices/AKAdaptiveServiceInterface.h>\n#import <AuthenticationServices/AKAuthorizationCredential+AuthenticationServicesExtras.h>\n#import <AuthenticationServices/AKAuthorizationNotificationHandler.h>\n#import <AuthenticationServices/ASAuthorization.h>\n#import <AuthenticationServices/ASAuthorizationAppleIDButton.h>\n#import <AuthenticationServices/ASAuthorizationAppleIDCredential.h>\n#import <AuthenticationServices/ASAuthorizationAppleIDProvider.h>\n#import <AuthenticationServices/ASAuthorizationAppleIDRequest.h>\n#import <AuthenticationServices/ASAuthorizationController.h>\n#import <AuthenticationServices/ASAuthorizationControllerDelegate.h>\n#import <AuthenticationServices/ASAuthorizationControllerPresentationContextProviding.h>\n#import <AuthenticationServices/ASAuthorizationCredential.h>\n#import <AuthenticationServices/ASAuthorizationOpenIDRequest.h>\n#import <AuthenticationServices/ASAuthorizationPasswordProvider.h>\n#import <AuthenticationServices/ASAuthorizationPasswordRequest.h>\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialAssertion.h>\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialAssertionRequest.h>\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialDescriptor.h>\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialProvider.h>\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialRegistration.h>\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest.h>\n#import <AuthenticationServices/ASAuthorizationProvider.h>\n#import <AuthenticationServices/ASAuthorizationProviderExtensionAuthorizationRequest.h>\n#import <AuthenticationServices/ASAuthorizationProviderExtensionAuthorizationResult.h>\n#import <AuthenticationServices/ASAuthorizationProviderExtensionKerberosMapping.h>\n#import <AuthenticationServices/ASAuthorizationProviderExtensionLoginConfiguration.h>\n#import <AuthenticationServices/ASAuthorizationProviderExtensionLoginManager.h>\n#import <AuthenticationServices/ASAuthorizationPublicKeyCredentialAssertion.h>\n#import <AuthenticationServices/ASAuthorizationPublicKeyCredentialAssertionRequest.h>\n#import <AuthenticationServices/ASAuthorizationPublicKeyCredentialDescriptor.h>\n#import <AuthenticationServices/ASAuthorizationPublicKeyCredentialParameters.h>\n#import <AuthenticationServices/ASAuthorizationPublicKeyCredentialRegistration.h>\n#import <AuthenticationServices/ASAuthorizationPublicKeyCredentialRegistrationRequest.h>\n#import <AuthenticationServices/ASAuthorizationRequest.h>\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialAssertion.h>\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest.h>\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor.h>\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialProvider.h>\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialRegistration.h>\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialRegistrationRequest.h>\n#import <AuthenticationServices/ASAuthorizationServiceViewController.h>\n#import <AuthenticationServices/ASAuthorizationSingleSignOnCredential.h>\n#import <AuthenticationServices/ASAuthorizationSingleSignOnProvider.h>\n#import <AuthenticationServices/ASAuthorizationSingleSignOnRequest.h>\n#import <AuthenticationServices/ASAuthorizationViewController.h>\n#import <AuthenticationServices/ASAuthorizationViewControllerDelegate.h>\n#import <AuthenticationServices/ASBarButtonItem.h>\n#import <AuthenticationServices/ASCAuthorizationPresenterHostProtocol.h>\n#import <AuthenticationServices/ASCViewServiceProtocol.h>\n#import <AuthenticationServices/ASCredentialIdentityStore.h>\n#import <AuthenticationServices/ASCredentialIdentityStoreState.h>\n#import <AuthenticationServices/ASCredentialPickerPaneViewController.h>\n#import <AuthenticationServices/ASCredentialProviderExtensionContext.h>\n#import <AuthenticationServices/ASCredentialProviderViewController.h>\n#import <AuthenticationServices/ASCredentialRequestBasicPaneViewController.h>\n#import <AuthenticationServices/ASCredentialRequestButton.h>\n#import <AuthenticationServices/ASCredentialRequestButtonContinue.h>\n#import <AuthenticationServices/ASCredentialRequestCABLEClientViewController.h>\n#import <AuthenticationServices/ASCredentialRequestCABLEConnectingViewController.h>\n#import <AuthenticationServices/ASCredentialRequestConfirmButtonSubPane.h>\n#import <AuthenticationServices/ASCredentialRequestContainerViewController.h>\n#import <AuthenticationServices/ASCredentialRequestContainerViewControllerDelegate.h>\n#import <AuthenticationServices/ASCredentialRequestEnableBluetoothViewController.h>\n#import <AuthenticationServices/ASCredentialRequestIconGenerator.h>\n#import <AuthenticationServices/ASCredentialRequestImageSubPane.h>\n#import <AuthenticationServices/ASCredentialRequestInfoLabelSubPane.h>\n#import <AuthenticationServices/ASCredentialRequestLoginChoiceCell.h>\n#import <AuthenticationServices/ASCredentialRequestPaneContext.h>\n#import <AuthenticationServices/ASCredentialRequestPaneViewController.h>\n#import <AuthenticationServices/ASCredentialRequestPaneViewControllerDelegate.h>\n#import <AuthenticationServices/ASCredentialRequestSecondaryButton.h>\n#import <AuthenticationServices/ASCredentialRequestSecurityKeyStringUtilities.h>\n#import <AuthenticationServices/ASCredentialRequestSubPane.h>\n#import <AuthenticationServices/ASCredentialRequestSubPaneConfirmButtonDelegate.h>\n#import <AuthenticationServices/ASCredentialServiceIdentifier.h>\n#import <AuthenticationServices/ASExtensionRemoteViewController.h>\n#import <AuthenticationServices/ASExtensionServiceProtocol.h>\n#import <AuthenticationServices/ASExtensionServiceViewController.h>\n#import <AuthenticationServices/ASNavigationController.h>\n#import <AuthenticationServices/ASNavigationControllerDelegate.h>\n#import <AuthenticationServices/ASNavigationItem.h>\n#import <AuthenticationServices/ASPasswordAuthenticationPaneViewController.h>\n#import <AuthenticationServices/ASPasswordAuthenticationPaneViewControllerDelegate.h>\n#import <AuthenticationServices/ASPasswordCredential.h>\n#import <AuthenticationServices/ASPasswordCredentialIdentity.h>\n#import <AuthenticationServices/ASPublicKeyCredential.h>\n#import <AuthenticationServices/ASPublicKeyCredentialBase.h>\n#import <AuthenticationServices/ASPublicKeyCredentialManager.h>\n#import <AuthenticationServices/ASPublicKeyCredentialManagerInterface.h>\n#import <AuthenticationServices/ASPublicKeyCredentialOperation.h>\n#import <AuthenticationServices/ASViewServiceInterfaceUtilities.h>\n#import <AuthenticationServices/ASWebAuthenticationSession.h>\n#import <AuthenticationServices/ASWebAuthenticationSessionController.h>\n#import <AuthenticationServices/ASWebAuthenticationSessionLaunchAgentProxy.h>\n#import <AuthenticationServices/ASWebAuthenticationSessionRequest.h>\n#import <AuthenticationServices/ASWebAuthenticationSessionRequestClient.h>\n#import <AuthenticationServices/ASWebAuthenticationSessionRequestDelegate.h>\n#import <AuthenticationServices/ASWebAuthenticationSessionRequestServing.h>\n#import <AuthenticationServices/ASWebAuthenticationSessionWebBrowserSessionManager.h>\n#import <AuthenticationServices/AuthenticationServicesHelperProtocol.h>\n#import <AuthenticationServices/LAUIAuthenticationDelegate.h>\n#import <AuthenticationServices/LAUIAuthenticationViewController+AuthenticationServicesExtras.h>\n#import <AuthenticationServices/NSAccessibilityButton.h>\n#import <AuthenticationServices/NSAccessibilityElement.h>\n#import <AuthenticationServices/NSBundle+ASNSBundleExtras.h>\n#import <AuthenticationServices/NSControlTextEditingDelegate.h>\n#import <AuthenticationServices/NSExtension+AuthenticationServicesExtras.h>\n#import <AuthenticationServices/NSImage+ASImageExtras.h>\n#import <AuthenticationServices/NSLayoutConstraint+ASNSLayoutConstraintExtras.h>\n#import <AuthenticationServices/NSPasteboard+AuthenticationServicesExtras.h>\n#import <AuthenticationServices/NSStackView+ASCredentialPickerPaneViewController.h>\n#import <AuthenticationServices/NSTableViewDataSource.h>\n#import <AuthenticationServices/NSTableViewDelegate.h>\n#import <AuthenticationServices/NSViewController+AuthenticationServicesExtras.h>\n#import <AuthenticationServices/NSXPCInterface+AuthenticationServicesExtras.h>\n#import <AuthenticationServices/NSXPCListenerDelegate.h>\n#import <AuthenticationServices/SOAuthorizationDelegate.h>\n#import <AuthenticationServices/WBSSavedAccountStore+PasskeyExtras.h>\n#import <AuthenticationServices/WBSSavedAccountStorePasskeyExtras.h>\n#import <AuthenticationServices/_ASAuthenticationPresentationProvider.h>\n#import <AuthenticationServices/_ASCABLEQRCodeBadgePlatterView.h>\n#import <AuthenticationServices/_ASCABLEQRCodeBadgeView.h>\n#import <AuthenticationServices/_ASCABLEQRCodeImageView.h>\n#import <AuthenticationServices/_ASCABLEQRCodeView.h>\n#import <AuthenticationServices/_ASCredentialListViewController.h>\n#import <AuthenticationServices/_ASCredentialProviderExtensionConfigurationViewController.h>\n#import <AuthenticationServices/_ASCredentialProviderExtensionContextProtocol.h>\n#import <AuthenticationServices/_ASCredentialProviderExtensionHostContext.h>\n#import <AuthenticationServices/_ASCredentialProviderExtensionHostContextDelegate.h>\n#import <AuthenticationServices/_ASCredentialProviderExtensionHostContextProtocol.h>\n#import <AuthenticationServices/_ASExtensionHostContext.h>\n#import <AuthenticationServices/_ASExtensionHostContextDelegate.h>\n#import <AuthenticationServices/_ASExtensionViewController.h>\n#import <AuthenticationServices/_ASIncomingCallObserver.h>\n#import <AuthenticationServices/_ASPasskeysLearnMoreContent.h>\n#import <AuthenticationServices/_ASPasswordCredentialAuthenticationViewController.h>\n#import <AuthenticationServices/_ASPasswordManagerDeleteAlertConfiguration.h>\n#import <AuthenticationServices/_ASPasswordManagerIconController.h>\n#import <AuthenticationServices/_ASPasswordManagerMacFrameworksTrampoline.h>\n#import <AuthenticationServices/_ASStackSpacerView.h>\n#import <AuthenticationServices/_ASWebAuthenticationSessionRequestHandling.h>\n#import <AuthenticationServices/_ASWebAuthenticationSessionRequestServer.h>\n#import <AuthenticationServices/_SafariLaunchAgentProtocol.h>\n#import <AuthenticationServices/_WKWebAuthenticationPanelDelegate.h>\n\n#endif\n\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/AuthenticationServicesHelperProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AuthenticationServicesHelperProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/LAUIAuthenticationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol LAUIAuthenticationDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/LAUIAuthenticationViewController+AuthenticationServicesExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n// @interface LAUIAuthenticationViewController (AuthenticationServicesExtras)\n// \n// @end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSAccessibilityButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSAccessibilityButton\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSAccessibilityElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSAccessibilityElement\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSBundle+ASNSBundleExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface NSBundle (ASNSBundleExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSControlTextEditingDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSControlTextEditingDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSExtension+AuthenticationServicesExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface NSExtension (AuthenticationServicesExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSImage+ASImageExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n#include <AppKit/AppKit.h>\n\n@interface NSImage (ASImageExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSLayoutConstraint+ASNSLayoutConstraintExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n#include <AppKit/AppKit.h>\n\n// @interface NSLayoutConstraint (ASNSLayoutConstraintExtras)\n// \n// @end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSPasteboard+AuthenticationServicesExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n#include <AppKit/AppKit.h>\n\n@interface NSPasteboard (AuthenticationServicesExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSStackView+ASCredentialPickerPaneViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n#include <AppKit/AppKit.h>\n\n@interface NSStackView (ASCredentialPickerPaneViewController)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSTableViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTableViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSTableViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTableViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSViewController+AuthenticationServicesExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n#include <AppKit/AppKit.h>\n\n@interface NSViewController (AuthenticationServicesExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSXPCInterface+AuthenticationServicesExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface NSXPCInterface (AuthenticationServicesExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/NSXPCListenerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSXPCListenerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/SOAuthorizationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol SOAuthorizationDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/WBSSavedAccountStore+PasskeyExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n// @interface WBSSavedAccountStore (PasskeyExtras)\n// \n// @end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/WBSSavedAccountStorePasskeyExtras.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol WBSSavedAccountStorePasskeyExtras\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASAuthenticationPresentationProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _ASAuthenticationPresentationProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCABLEQRCodeBadgePlatterView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASCABLEQRCodeBadgePlatterView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCABLEQRCodeBadgeView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASCABLEQRCodeBadgeView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCABLEQRCodeImageView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASCABLEQRCodeImageView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCABLEQRCodeView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASCABLEQRCodeView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCredentialListViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASCredentialListViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCredentialProviderExtensionConfigurationViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASCredentialProviderExtensionConfigurationViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCredentialProviderExtensionContextProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _ASCredentialProviderExtensionContextProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCredentialProviderExtensionHostContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASCredentialProviderExtensionHostContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCredentialProviderExtensionHostContextDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _ASCredentialProviderExtensionHostContextDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASCredentialProviderExtensionHostContextProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _ASCredentialProviderExtensionHostContextProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASExtensionHostContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _ASExtensionHostContext\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASExtensionHostContextDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _ASExtensionHostContextDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASExtensionViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASExtensionViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASIncomingCallObserver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASIncomingCallObserver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASPasskeysLearnMoreContent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASPasskeysLearnMoreContent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASPasswordCredentialAuthenticationViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASPasswordCredentialAuthenticationViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASPasswordManagerDeleteAlertConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASPasswordManagerDeleteAlertConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASPasswordManagerIconController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASPasswordManagerIconController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASPasswordManagerMacFrameworksTrampoline.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASPasswordManagerMacFrameworksTrampoline : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASStackSpacerView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASStackSpacerView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASWebAuthenticationSessionRequestHandling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _ASWebAuthenticationSessionRequestHandling\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_ASWebAuthenticationSessionRequestServer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _ASWebAuthenticationSessionRequestServer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_SafariLaunchAgentProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _SafariLaunchAgentProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/include/AuthenticationServices/_WKWebAuthenticationPanelDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _WKWebAuthenticationPanelDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/AKAuthorizationCredential+AuthenticationServicesExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/AKAuthorizationCredential+AuthenticationServicesExtras.h>\n\n// @implementation AKAuthorizationCredential (AuthenticationServicesExtras)\n// \n// @end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorization.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorization.h>\n\n@implementation ASAuthorization\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationAppleIDButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationAppleIDButton.h>\n\n@implementation ASAuthorizationAppleIDButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationAppleIDCredential.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationAppleIDCredential.h>\n\n@implementation ASAuthorizationAppleIDCredential\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationAppleIDProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationAppleIDProvider.h>\n\n@implementation ASAuthorizationAppleIDProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationAppleIDRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationAppleIDRequest.h>\n\n@implementation ASAuthorizationAppleIDRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationController.h>\n\n@implementation ASAuthorizationController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n- (instancetype)initWithAuthorizationRequests:(NSArray<ASAuthorizationRequest *> *)authorizationRequests {\n    return [[ASAuthorizationController alloc] init];\n}\n\n- (void)performRequests {\n    \n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationOpenIDRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationOpenIDRequest.h>\n\n@implementation ASAuthorizationOpenIDRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPasswordProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPasswordProvider.h>\n\n@implementation ASAuthorizationPasswordProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPasswordRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPasswordRequest.h>\n\n@implementation ASAuthorizationPasswordRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPlatformPublicKeyCredentialAssertion.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialAssertion.h>\n\n@implementation ASAuthorizationPlatformPublicKeyCredentialAssertion\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPlatformPublicKeyCredentialAssertionRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialAssertionRequest.h>\n\n@implementation ASAuthorizationPlatformPublicKeyCredentialAssertionRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPlatformPublicKeyCredentialDescriptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialDescriptor.h>\n\n@implementation ASAuthorizationPlatformPublicKeyCredentialDescriptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPlatformPublicKeyCredentialProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialProvider.h>\n\n@implementation ASAuthorizationPlatformPublicKeyCredentialProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPlatformPublicKeyCredentialRegistration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialRegistration.h>\n\n@implementation ASAuthorizationPlatformPublicKeyCredentialRegistration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest.h>\n\n@implementation ASAuthorizationPlatformPublicKeyCredentialRegistrationRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationProviderExtensionAuthorizationRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationProviderExtensionAuthorizationRequest.h>\n\n@implementation ASAuthorizationProviderExtensionAuthorizationRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationProviderExtensionAuthorizationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationProviderExtensionAuthorizationResult.h>\n\n@implementation ASAuthorizationProviderExtensionAuthorizationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationProviderExtensionKerberosMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationProviderExtensionKerberosMapping.h>\n\n@implementation ASAuthorizationProviderExtensionKerberosMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationProviderExtensionLoginConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationProviderExtensionLoginConfiguration.h>\n\n@implementation ASAuthorizationProviderExtensionLoginConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationProviderExtensionLoginManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationProviderExtensionLoginManager.h>\n\n@implementation ASAuthorizationProviderExtensionLoginManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationPublicKeyCredentialParameters.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationPublicKeyCredentialParameters.h>\n\n@implementation ASAuthorizationPublicKeyCredentialParameters\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationRequest.h>\n\n@implementation ASAuthorizationRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSecurityKeyPublicKeyCredentialAssertion.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialAssertion.h>\n\n@implementation ASAuthorizationSecurityKeyPublicKeyCredentialAssertion\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest.h>\n\n@implementation ASAuthorizationSecurityKeyPublicKeyCredentialAssertionRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor.h>\n\n@implementation ASAuthorizationSecurityKeyPublicKeyCredentialDescriptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSecurityKeyPublicKeyCredentialProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialProvider.h>\n\n@implementation ASAuthorizationSecurityKeyPublicKeyCredentialProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSecurityKeyPublicKeyCredentialRegistration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialRegistration.h>\n\n@implementation ASAuthorizationSecurityKeyPublicKeyCredentialRegistration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSecurityKeyPublicKeyCredentialRegistrationRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSecurityKeyPublicKeyCredentialRegistrationRequest.h>\n\n@implementation ASAuthorizationSecurityKeyPublicKeyCredentialRegistrationRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationServiceViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationServiceViewController.h>\n\n@implementation ASAuthorizationServiceViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSingleSignOnCredential.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSingleSignOnCredential.h>\n\n@implementation ASAuthorizationSingleSignOnCredential\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSingleSignOnProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSingleSignOnProvider.h>\n\n@implementation ASAuthorizationSingleSignOnProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationSingleSignOnRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationSingleSignOnRequest.h>\n\n@implementation ASAuthorizationSingleSignOnRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASAuthorizationViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASAuthorizationViewController.h>\n\n@implementation ASAuthorizationViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASBarButtonItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASBarButtonItem.h>\n\n@implementation ASBarButtonItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialIdentityStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialIdentityStore.h>\n\n@implementation ASCredentialIdentityStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialIdentityStoreState.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialIdentityStoreState.h>\n\n@implementation ASCredentialIdentityStoreState\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialPickerPaneViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialPickerPaneViewController.h>\n\n@implementation ASCredentialPickerPaneViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialProviderExtensionContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialProviderExtensionContext.h>\n\n@implementation ASCredentialProviderExtensionContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialProviderViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialProviderViewController.h>\n\n@implementation ASCredentialProviderViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestBasicPaneViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestBasicPaneViewController.h>\n\n@implementation ASCredentialRequestBasicPaneViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestButton.h>\n\n@implementation ASCredentialRequestButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestButtonContinue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestButtonContinue.h>\n\n@implementation ASCredentialRequestButtonContinue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestCABLEClientViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestCABLEClientViewController.h>\n\n@implementation ASCredentialRequestCABLEClientViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestCABLEConnectingViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestCABLEConnectingViewController.h>\n\n@implementation ASCredentialRequestCABLEConnectingViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestConfirmButtonSubPane.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestConfirmButtonSubPane.h>\n\n@implementation ASCredentialRequestConfirmButtonSubPane\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestContainerViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestContainerViewController.h>\n\n@implementation ASCredentialRequestContainerViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestEnableBluetoothViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestEnableBluetoothViewController.h>\n\n@implementation ASCredentialRequestEnableBluetoothViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestIconGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestIconGenerator.h>\n\n@implementation ASCredentialRequestIconGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestImageSubPane.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestImageSubPane.h>\n\n@implementation ASCredentialRequestImageSubPane\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestInfoLabelSubPane.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestInfoLabelSubPane.h>\n\n@implementation ASCredentialRequestInfoLabelSubPane\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestLoginChoiceCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestLoginChoiceCell.h>\n\n@implementation ASCredentialRequestLoginChoiceCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestPaneContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestPaneContext.h>\n\n@implementation ASCredentialRequestPaneContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestPaneViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestPaneViewController.h>\n\n@implementation ASCredentialRequestPaneViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestSecondaryButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestSecondaryButton.h>\n\n@implementation ASCredentialRequestSecondaryButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestSecurityKeyStringUtilities.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestSecurityKeyStringUtilities.h>\n\n@implementation ASCredentialRequestSecurityKeyStringUtilities\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialRequestSubPane.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialRequestSubPane.h>\n\n@implementation ASCredentialRequestSubPane\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASCredentialServiceIdentifier.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASCredentialServiceIdentifier.h>\n\n@implementation ASCredentialServiceIdentifier\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASExtensionRemoteViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASExtensionRemoteViewController.h>\n\n@implementation ASExtensionRemoteViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASExtensionServiceViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASExtensionServiceViewController.h>\n\n@implementation ASExtensionServiceViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASNavigationController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASNavigationController.h>\n\n@implementation ASNavigationController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASNavigationItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASNavigationItem.h>\n\n@implementation ASNavigationItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASPasswordAuthenticationPaneViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASPasswordAuthenticationPaneViewController.h>\n\n@implementation ASPasswordAuthenticationPaneViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASPasswordCredential.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASPasswordCredential.h>\n\n@implementation ASPasswordCredential\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASPasswordCredentialIdentity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASPasswordCredentialIdentity.h>\n\n@implementation ASPasswordCredentialIdentity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASPublicKeyCredentialBase.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASPublicKeyCredentialBase.h>\n\n@implementation ASPublicKeyCredentialBase\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASPublicKeyCredentialManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASPublicKeyCredentialManager.h>\n\n@implementation ASPublicKeyCredentialManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASPublicKeyCredentialOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASPublicKeyCredentialOperation.h>\n\n@implementation ASPublicKeyCredentialOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASViewServiceInterfaceUtilities.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASViewServiceInterfaceUtilities.h>\n\n@implementation ASViewServiceInterfaceUtilities\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASWebAuthenticationSession.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASWebAuthenticationSession.h>\n\n@implementation ASWebAuthenticationSession\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASWebAuthenticationSessionController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASWebAuthenticationSessionController.h>\n\n@implementation ASWebAuthenticationSessionController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASWebAuthenticationSessionLaunchAgentProxy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASWebAuthenticationSessionLaunchAgentProxy.h>\n\n@implementation ASWebAuthenticationSessionLaunchAgentProxy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASWebAuthenticationSessionRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASWebAuthenticationSessionRequest.h>\n\n@implementation ASWebAuthenticationSessionRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASWebAuthenticationSessionRequestClient.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASWebAuthenticationSessionRequestClient.h>\n\n@implementation ASWebAuthenticationSessionRequestClient\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/ASWebAuthenticationSessionWebBrowserSessionManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/ASWebAuthenticationSessionWebBrowserSessionManager.h>\n\n@implementation ASWebAuthenticationSessionWebBrowserSessionManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/LAUIAuthenticationViewController+AuthenticationServicesExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/LAUIAuthenticationViewController+AuthenticationServicesExtras.h>\n\n// @implementation LAUIAuthenticationViewController (AuthenticationServicesExtras)\n// \n// @end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/NSBundle+ASNSBundleExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/NSBundle+ASNSBundleExtras.h>\n\n@implementation NSBundle (ASNSBundleExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/NSExtension+AuthenticationServicesExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/NSExtension+AuthenticationServicesExtras.h>\n\n@implementation NSExtension (AuthenticationServicesExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/NSImage+ASImageExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/NSImage+ASImageExtras.h>\n\n@implementation NSImage (ASImageExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/NSLayoutConstraint+ASNSLayoutConstraintExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/NSLayoutConstraint+ASNSLayoutConstraintExtras.h>\n\n// @implementation NSLayoutConstraint (ASNSLayoutConstraintExtras)\n// \n// @end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/NSPasteboard+AuthenticationServicesExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/NSPasteboard+AuthenticationServicesExtras.h>\n\n@implementation NSPasteboard (AuthenticationServicesExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/NSStackView+ASCredentialPickerPaneViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/NSStackView+ASCredentialPickerPaneViewController.h>\n\n@implementation NSStackView (ASCredentialPickerPaneViewController)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/NSViewController+AuthenticationServicesExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/NSViewController+AuthenticationServicesExtras.h>\n\n@implementation NSViewController (AuthenticationServicesExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/NSXPCInterface+AuthenticationServicesExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/NSXPCInterface+AuthenticationServicesExtras.h>\n\n@implementation NSXPCInterface (AuthenticationServicesExtras)\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/WBSSavedAccountStore+PasskeyExtras.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/WBSSavedAccountStore+PasskeyExtras.h>\n\n// @implementation WBSSavedAccountStore (PasskeyExtras)\n// \n// @end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASCABLEQRCodeBadgePlatterView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASCABLEQRCodeBadgePlatterView.h>\n\n@implementation _ASCABLEQRCodeBadgePlatterView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASCABLEQRCodeBadgeView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASCABLEQRCodeBadgeView.h>\n\n@implementation _ASCABLEQRCodeBadgeView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASCABLEQRCodeImageView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASCABLEQRCodeImageView.h>\n\n@implementation _ASCABLEQRCodeImageView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASCABLEQRCodeView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASCABLEQRCodeView.h>\n\n@implementation _ASCABLEQRCodeView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASCredentialListViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASCredentialListViewController.h>\n\n@implementation _ASCredentialListViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASCredentialProviderExtensionConfigurationViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASCredentialProviderExtensionConfigurationViewController.h>\n\n@implementation _ASCredentialProviderExtensionConfigurationViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASCredentialProviderExtensionHostContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASCredentialProviderExtensionHostContext.h>\n\n@implementation _ASCredentialProviderExtensionHostContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASExtensionViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASExtensionViewController.h>\n\n@implementation _ASExtensionViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASIncomingCallObserver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASIncomingCallObserver.h>\n\n@implementation _ASIncomingCallObserver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASPasskeysLearnMoreContent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASPasskeysLearnMoreContent.h>\n\n@implementation _ASPasskeysLearnMoreContent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASPasswordCredentialAuthenticationViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASPasswordCredentialAuthenticationViewController.h>\n\n@implementation _ASPasswordCredentialAuthenticationViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASPasswordManagerDeleteAlertConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASPasswordManagerDeleteAlertConfiguration.h>\n\n@implementation _ASPasswordManagerDeleteAlertConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASPasswordManagerIconController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASPasswordManagerIconController.h>\n\n@implementation _ASPasswordManagerIconController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASPasswordManagerMacFrameworksTrampoline.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASPasswordManagerMacFrameworksTrampoline.h>\n\n@implementation _ASPasswordManagerMacFrameworksTrampoline\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASStackSpacerView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASStackSpacerView.h>\n\n@implementation _ASStackSpacerView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/AuthenticationServices/src/_ASWebAuthenticationSessionRequestServer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2022 Darling Team\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <AuthenticationServices/_ASWebAuthenticationSessionRequestServer.h>\n\n@implementation _ASWebAuthenticationSessionRequestServer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/CMakeLists.txt",
    "content": "project(Automator)\n\nremove_sdk_framework(Automator)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"0.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(Automator\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/Automator\"\n)\n\nadd_framework(Automator\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/Automator.m\n        src/_AMActionAuxiliary.m\n        src/AMAction.m\n        src/AMFFeedEnclosure.m\n        src/AMAppleScriptAction.m\n        src/AMBundleAction.m\n        src/AMActionMetadataStore.m\n        src/AMConverter.m\n        src/AMConversion.m\n        src/AMApplicationRegistry.m\n        src/AMConvertAliasToString.m\n        src/AMConvertPublicItemToCocoaPath.m\n        src/AMConvertPublicItemToSpotlightItem.m\n        src/AMConvertAppleScriptObjectToAppleScriptDataObject.m\n        src/NSPrivateAutomatorFrameworkClassForFindingBundle.m\n        src/AMActionPanelController.m\n        src/AMActionPanelActionView.m\n        src/AMShowWhenRunPanel.m\n        src/AMPathPopUpButton.m\n        src/AMFFeedParser.m\n        src/AMFCompletionFeedParserDelegate.m\n        src/_AMiCalText.m\n        src/_AMiCalAttachment.m\n        src/_AMiCalParagraph.m\n        src/_AMiCalWord.m\n        src/_AMiCalCharacter.m\n        src/_AMiCalAttributeRun.m\n        src/_AMiCalItem.m\n        src/_AMiCalApplication.m\n        src/_AMiCalColor.m\n        src/_AMiCalDocument.m\n        src/_AMiCalWindow.m\n        src/_AMiCalCalendar.m\n        src/_AMiCalDisplayAlarm.m\n        src/_AMiCalMailAlarm.m\n        src/_AMiCalSoundAlarm.m\n        src/_AMiCalOpenFileAlarm.m\n        src/_AMiCalAttendee.m\n        src/_AMiCalTodo.m\n        src/_AMiCalEvent.m\n        src/AMConvertAliasToPath.m\n        src/AMConvertPathToAlias.m\n        src/AMConvertCocoaStringToAppleScriptAliasObject.m\n        src/AMConvertPathToAppleScriptTextObject.m\n        src/AMConvertAppleScriptTextObjectToAlias.m\n        src/AMGroupBox.m\n        src/AMWorkflowCompletionResults.m\n        src/AMActiveProc.m\n        src/AMSendProc.m\n        src/AMGetItemsAction.m\n        src/AMGetItemsTableView.m\n        src/AMGetItemsPanelController.m\n        src/AMFindItemsAction.m\n        src/AMRemoteRunnerController.m\n        src/AMWhoseListView.m\n        src/AMWhoseViewItem.m\n        src/_AMiPhoto5Item.m\n        src/_AMiPhoto5Application.m\n        src/_AMiPhoto5Color.m\n        src/_AMiPhoto5Document.m\n        src/_AMiPhoto5Window.m\n        src/_AMiPhoto5AttributeRun.m\n        src/_AMiPhoto5Character.m\n        src/_AMiPhoto5Paragraph.m\n        src/_AMiPhoto5Text.m\n        src/_AMiPhoto5Attachment.m\n        src/_AMiPhoto5Word.m\n        src/_AMiPhoto5Album.m\n        src/_AMiPhoto5Keyword.m\n        src/_AMiPhoto5Photo.m\n        src/_AMiPhoto5PrintSettings.m\n        src/AMFilterItemsAction.m\n        src/AMConvertAppleScriptURLToURL.m\n        src/AMConvertAppleScriptObjectToURL.m\n        src/AMConvertURLToAppleScriptURL.m\n        src/AMConvertURLToAppleScriptTextObject.m\n        src/AMConvertURLToPath.m\n        src/AMConvertURLToAlias.m\n        src/AMConvertAliasToURL.m\n        src/AMConvertStringToURL.m\n        src/AMConvertURLToString.m\n        src/AMConvertStringToAppleScriptTextObject.m\n        src/AMConvertAppleScriptObjectToString.m\n        src/AMConvertAppleScriptObjectToAppleScriptTextObject.m\n        src/AMConvertAppleScriptTextObjectToAppleScriptURLObject.m\n        src/AMConvertStringToPath.m\n        src/AMConvertPathToPublicItem.m\n        src/AMConvertStringToAttributedString.m\n        src/AMConvertAttributedStringToString.m\n        src/AMAutoConversionAction.m\n        src/AMConvertPathTypeToSubType.m\n        src/AMConvertAppleScriptObjectToSubtype.m\n        src/AMConvertAliasToSubType.m\n        src/_AMSystemEventsApplication.m\n        src/_AMSystemEventsDocument.m\n        src/_AMSystemEventsWindow.m\n        src/_AMSystemEventsUser.m\n        src/_AMSystemEventsAppearancePreferencesObject.m\n        src/_AMSystemEventsCDAndDVDPreferencesObject.m\n        src/_AMSystemEventsInsertionPreference.m\n        src/_AMSystemEventsDesktop.m\n        src/_AMSystemEventsDockPreferencesObject.m\n        src/_AMSystemEventsLoginItem.m\n        src/_AMSystemEventsConfiguration.m\n        src/_AMSystemEventsInterface.m\n        src/_AMSystemEventsLocation.m\n        src/_AMSystemEventsNetworkPreferencesObject.m\n        src/_AMSystemEventsService.m\n        src/_AMSystemEventsScreenSaver.m\n        src/_AMSystemEventsScreenSaverPreferencesObject.m\n        src/_AMSystemEventsSecurityPreferencesObject.m\n        src/_AMSystemEventsDiskItem.m\n        src/_AMSystemEventsAlias.m\n        src/_AMSystemEventsDisk.m\n        src/_AMSystemEventsDomain.m\n        src/_AMSystemEventsClassicDomainObject.m\n        src/_AMSystemEventsFile.m\n        src/_AMSystemEventsFilePackage.m\n        src/_AMSystemEventsFolder.m\n        src/_AMSystemEventsLocalDomainObject.m\n        src/_AMSystemEventsNetworkDomainObject.m\n        src/_AMSystemEventsSystemDomainObject.m\n        src/_AMSystemEventsUserDomainObject.m\n        src/_AMSystemEventsFolderAction.m\n        src/_AMSystemEventsScript.m\n        src/_AMSystemEventsAction.m\n        src/_AMSystemEventsAttribute.m\n        src/_AMSystemEventsUIElement.m\n        src/_AMSystemEventsBrowser.m\n        src/_AMSystemEventsBusyIndicator.m\n        src/_AMSystemEventsButton.m\n        src/_AMSystemEventsCheckbox.m\n        src/_AMSystemEventsColorWell.m\n        src/_AMSystemEventsColumn.m\n        src/_AMSystemEventsComboBox.m\n        src/_AMSystemEventsDrawer.m\n        src/_AMSystemEventsGroup.m\n        src/_AMSystemEventsGrowArea.m\n        src/_AMSystemEventsImage.m\n        src/_AMSystemEventsIncrementor.m\n        src/_AMSystemEventsList.m\n        src/_AMSystemEventsMenu.m\n        src/_AMSystemEventsMenuBar.m\n        src/_AMSystemEventsMenuBarItem.m\n        src/_AMSystemEventsMenuButton.m\n        src/_AMSystemEventsMenuItem.m\n        src/_AMSystemEventsOutline.m\n        src/_AMSystemEventsPopOver.m\n        src/_AMSystemEventsPopUpButton.m\n        src/_AMSystemEventsProcess.m\n        src/_AMSystemEventsApplicationProcess.m\n        src/_AMSystemEventsDeskAccessoryProcess.m\n        src/_AMSystemEventsProgressIndicator.m\n        src/_AMSystemEventsRadioButton.m\n        src/_AMSystemEventsRadioGroup.m\n        src/_AMSystemEventsRelevanceIndicator.m\n        src/_AMSystemEventsRow.m\n        src/_AMSystemEventsScrollArea.m\n        src/_AMSystemEventsScrollBar.m\n        src/_AMSystemEventsSheet.m\n        src/_AMSystemEventsSlider.m\n        src/_AMSystemEventsSplitter.m\n        src/_AMSystemEventsSplitterGroup.m\n        src/_AMSystemEventsStaticText.m\n        src/_AMSystemEventsTabGroup.m\n        src/_AMSystemEventsTable.m\n        src/_AMSystemEventsTextArea.m\n        src/_AMSystemEventsTextField.m\n        src/_AMSystemEventsToolbar.m\n        src/_AMSystemEventsValueIndicator.m\n        src/_AMSystemEventsPropertyListFile.m\n        src/_AMSystemEventsPropertyListItem.m\n        src/_AMSystemEventsAnnotation.m\n        src/_AMSystemEventsQuickTimeData.m\n        src/_AMSystemEventsAudioData.m\n        src/_AMSystemEventsMovieData.m\n        src/_AMSystemEventsQuickTimeFile.m\n        src/_AMSystemEventsAudioFile.m\n        src/_AMSystemEventsMovieFile.m\n        src/_AMSystemEventsTrack.m\n        src/_AMSystemEventsXMLAttribute.m\n        src/_AMSystemEventsXMLData.m\n        src/_AMSystemEventsXMLElement.m\n        src/_AMSystemEventsXMLFile.m\n        src/_AMSystemEventsPrintSettings.m\n        src/_AMSystemEventsScriptingClass.m\n        src/_AMSystemEventsScriptingCommand.m\n        src/_AMSystemEventsScriptingDefinitionObject.m\n        src/_AMSystemEventsScriptingElement.m\n        src/_AMSystemEventsScriptingEnumeration.m\n        src/_AMSystemEventsScriptingEnumerator.m\n        src/_AMSystemEventsScriptingParameter.m\n        src/_AMSystemEventsScriptingProperty.m\n        src/_AMSystemEventsScriptingResultObject.m\n        src/_AMSystemEventsScriptingSuite.m\n        src/AMShellScriptAction.m\n        src/AMActionLoader.m\n        src/AMWorkflow.m\n        src/AMTemplateChooserItem.m\n        src/AMServicesController.m\n        src/AMWorkflowController.m\n        src/AMWorkflowView.m\n        src/AMImageTextCell.m\n        src/AMDescriptionImageTextCell.m\n        src/AMGroup.m\n        src/AMActionsUserGroup.m\n        src/AMVariablesUserGroup.m\n        src/AMSmartGroup.m\n        src/AMActionConnector.m\n        src/AMConnectionPoint.m\n        src/_AMTextEditItem.m\n        src/_AMTextEditApplication.m\n        src/_AMTextEditColor.m\n        src/_AMTextEditDocument.m\n        src/_AMTextEditWindow.m\n        src/_AMTextEditAttributeRun.m\n        src/_AMTextEditCharacter.m\n        src/_AMTextEditParagraph.m\n        src/_AMTextEditText.m\n        src/_AMTextEditAttachment.m\n        src/_AMTextEditWord.m\n        src/_AMTextEditPrintSettings.m\n        src/AMTextFieldCell.m\n        src/AMWorkflowRunner.m\n        src/AMImageRegistry.m\n        src/AMTokenField.m\n        src/_AMVariablePopUpButtonTokenField.m\n        src/AMTokenFieldCell.m\n        src/AMTokenAttachmentCell.m\n        src/AMSmartTokenAttachmentCell.m\n        src/_AMiPhoto6Item.m\n        src/_AMiPhoto6Application.m\n        src/_AMiPhoto6Color.m\n        src/_AMiPhoto6Document.m\n        src/_AMiPhoto6Window.m\n        src/_AMiPhoto6AttributeRun.m\n        src/_AMiPhoto6Character.m\n        src/_AMiPhoto6Paragraph.m\n        src/_AMiPhoto6Text.m\n        src/_AMiPhoto6Attachment.m\n        src/_AMiPhoto6Word.m\n        src/_AMiPhoto6Album.m\n        src/_AMiPhoto6Keyword.m\n        src/_AMiPhoto6Photo.m\n        src/_AMiPhoto6PrintSettings.m\n        src/_AMMailApplication.m\n        src/_AMMailDocument.m\n        src/_AMMailWindow.m\n        src/_AMMailRichText.m\n        src/_AMMailAttachment.m\n        src/_AMMailParagraph.m\n        src/_AMMailWord.m\n        src/_AMMailCharacter.m\n        src/_AMMailAttributeRun.m\n        src/_AMMailOutgoingMessage.m\n        src/_AMMailLdapServer.m\n        src/_AMMailOLDMessageEditor.m\n        src/_AMMailMessageViewer.m\n        src/_AMMailSignature.m\n        src/_AMMailMessage.m\n        src/_AMMailAccount.m\n        src/_AMMailImapAccount.m\n        src/_AMMailMobileMeAccount.m\n        src/_AMMailPopAccount.m\n        src/_AMMailSmtpServer.m\n        src/_AMMailMailbox.m\n        src/_AMMailRule.m\n        src/_AMMailRuleCondition.m\n        src/_AMMailRecipient.m\n        src/_AMMailBccRecipient.m\n        src/_AMMailCcRecipient.m\n        src/_AMMailToRecipient.m\n        src/_AMMailContainer.m\n        src/_AMMailHeader.m\n        src/_AMMailMailAttachment.m\n        src/AMPopUpButton.m\n        src/AMVariablesRegistry.m\n        src/AMLocalRunnerController.m\n        src/AMVariablesEditorView.m\n        src/AMVariable.m\n        src/AMWorkspace.m\n        src/AMShowWhenRunController.m\n        src/AMInputOutputWorkflowPersonality.m\n        src/AMInputOutputWorkflowMetadata.m\n        src/AMVariablesEditorController.m\n        src/AMSplitView.m\n        src/AMApplicationDefinition.m\n        src/_AMFinderApplication.m\n        src/_AMFinderItem.m\n        src/_AMFinderContainer.m\n        src/_AMFinderComputerObject.m\n        src/_AMFinderDisk.m\n        src/_AMFinderFolder.m\n        src/_AMFinderDesktopObject.m\n        src/_AMFinderTrashObject.m\n        src/_AMFinderFile.m\n        src/_AMFinderAliasFile.m\n        src/_AMFinderApplicationFile.m\n        src/_AMFinderDocumentFile.m\n        src/_AMFinderInternetLocationFile.m\n        src/_AMFinderClipping.m\n        src/_AMFinderPackage.m\n        src/_AMFinderWindow.m\n        src/_AMFinderFinderWindow.m\n        src/_AMFinderDesktopWindow.m\n        src/_AMFinderInformationWindow.m\n        src/_AMFinderPreferencesWindow.m\n        src/_AMFinderClippingWindow.m\n        src/_AMFinderProcess.m\n        src/_AMFinderApplicationProcess.m\n        src/_AMFinderDeskAccessoryProcess.m\n        src/_AMFinderPreferences.m\n        src/_AMFinderLabel.m\n        src/_AMFinderIconFamily.m\n        src/_AMFinderIconViewOptions.m\n        src/_AMFinderColumnViewOptions.m\n        src/_AMFinderListViewOptions.m\n        src/_AMFinderColumn.m\n        src/_AMFinderAliasList.m\n        src/AMImageView.m\n        src/AMActionView.m\n        src/AMView.m\n        src/AMNibView.m\n        src/AMActionTextField.m\n        src/AMVariablesEditorDateFormatDelegate.m\n        src/AMFFeedFinder.m\n        src/AMVariablesEditorEventDelegateWindow.m\n        src/AMVariablesEditorWindow.m\n        src/EditorWindowRelocateAnimation.m\n        src/EditorWindowOpenAnimation.m\n        src/EditorWindowCloseAnimation.m\n        src/AMVariablesEditorProxyController.m\n        src/AMSmartGroupsController.m\n        src/AMSmartGroupsPredicateViewController.m\n        src/AMFFeedEntry.m\n        src/AMApplicationStub.m\n        src/AMLevelIndicator.m\n        src/AMLevelIndicatorCell.m\n        src/_AMiTunes7PrintSettings.m\n        src/_AMiTunes7Application.m\n        src/_AMiTunes7Item.m\n        src/_AMiTunes7Artwork.m\n        src/_AMiTunes7Encoder.m\n        src/_AMiTunes7EQPreset.m\n        src/_AMiTunes7Playlist.m\n        src/_AMiTunes7AudioCDPlaylist.m\n        src/_AMiTunes7DevicePlaylist.m\n        src/_AMiTunes7LibraryPlaylist.m\n        src/_AMiTunes7RadioTunerPlaylist.m\n        src/_AMiTunes7Source.m\n        src/_AMiTunes7Track.m\n        src/_AMiTunes7AudioCDTrack.m\n        src/_AMiTunes7DeviceTrack.m\n        src/_AMiTunes7FileTrack.m\n        src/_AMiTunes7SharedTrack.m\n        src/_AMiTunes7URLTrack.m\n        src/_AMiTunes7UserPlaylist.m\n        src/_AMiTunes7FolderPlaylist.m\n        src/_AMiTunes7Visual.m\n        src/_AMiTunes7Window.m\n        src/_AMiTunes7BrowserWindow.m\n        src/_AMiTunes7EQWindow.m\n        src/_AMiTunes7PlaylistWindow.m\n        src/AMApplicationStubController.m\n        src/AMNewFindItemsAction.m\n        src/AMPlaceholderAction.m\n        src/AMGradientBackgroundView.m\n        src/AMLibrary.m\n        src/AMGlossyStatusView.m\n        src/AMSpecificDateRowTemplate.m\n        src/_AMSafariItem.m\n        src/_AMSafariApplication.m\n        src/_AMSafariColor.m\n        src/_AMSafariDocument.m\n        src/_AMSafariWindow.m\n        src/_AMSafariAttributeRun.m\n        src/_AMSafariCharacter.m\n        src/_AMSafariParagraph.m\n        src/_AMSafariText.m\n        src/_AMSafariAttachment.m\n        src/_AMSafariWord.m\n        src/_AMSafariTab.m\n        src/_AMSafariPrintSettings.m\n        src/AMWithinLastDateRowTemplate.m\n        src/AMFFeed.m\n        src/AMRelativeDateRowTemplate.m\n        src/AMMediaPanel.m\n        src/AMResultsViewController.m\n        src/AMResultsTableView.m\n        src/AMGenericAction.m\n        src/AMFFeedPerson.m\n        src/AMPluginInstallerController.m\n        src/AMWorkflowPersonalityInstallerController.m\n        src/AMActionInstallerController.m\n        src/AMActionRelevanceRowTemplate.m\n        src/AMActionDateAddedRelativeRowTemplate.m\n        src/AMActionDateAddedSpecificRowTemplate.m\n        src/AMActionDateAddedWithinLastRowTemplate.m\n        src/AMActionSecAssess.m\n        src/AutomatorSecurityHelperHostViewController.m\n        src/AMSecurityHelperWindowController.m\n        src/AMSecurityHelperWindowControllerRecoveryAttempter.m\n        src/_AMAddressBookApplication.m\n        src/_AMAddressBookDocument.m\n        src/_AMAddressBookWindow.m\n        src/_AMAddressBookAddress.m\n        src/_AMAddressBookContactInfo.m\n        src/_AMAddressBookAIMHandle.m\n        src/_AMAddressBookCustomDate.m\n        src/_AMAddressBookEmail.m\n        src/_AMAddressBookEntry.m\n        src/_AMAddressBookGroup.m\n        src/_AMAddressBookICQHandle.m\n        src/_AMAddressBookJabberHandle.m\n        src/_AMAddressBookMSNHandle.m\n        src/_AMAddressBookPerson.m\n        src/_AMAddressBookPhone.m\n        src/_AMAddressBookRelatedName.m\n        src/_AMAddressBookUrl.m\n        src/_AMAddressBookYahooHandle.m\n        src/AMActionCompletionResults.m\n        src/AMActionViewController.m\n        src/AMActionShowWhenRunOverlayView.m\n        src/AMActionAnyOfCollectionRowTemplate.m\n        src/AMResultsViewOverlayView.m\n        src/AMServicePluginHeaderViewController.m\n        src/_AMVariablePopUpButton.m\n        src/_AMVariablePopUpButtonCell.m\n        src/_AMGetSetVariablePopUpButton.m\n        src/AMProxyAction.m\n        src/AMAppDefinitionProxyAction.m\n        src/AMDictationCommandWorkflowPersonality.m\n        src/AMDictationCommandWorkflowMetaData.m\n        src/AMFFeedMetadata.m\n        src/AMRunActionOperation.m\n        src/AMRunActionAsyncOperation.m\n        src/_AMAddressBookItemsRowTemplateFactory.m\n        src/_AMAddressBookUtilities.m\n        src/_AMDateRelativeToCalendarUnitsRowTemplate.m\n        src/AMFFeedController.m\n        src/_AMDaysRelativeToCalendarUnitsRowTemplate.m\n        src/_AMDaysRelativeToSpecificDateRowTemplate.m\n        src/_AMFileSizeRowTemplate.m\n        src/_AMiTunesItemsRowTemplateFactory.m\n        src/_AMMailItemsRowTemplateFactory.m\n        src/_AMPredicateEditorAction.m\n        src/_AMRatingRowTemplate.m\n        src/_AMRowTemplateFactory.m\n        src/_AMSpecificDateRangeRowTemplate.m\n        src/AMModernApplicationStubApplication.m\n        src/AMModernApplicationStubDelegate.m\n        src/_AMSpecificYearRowTemplate.m\n        src/_AMTimeIntervalRowTemplate.m\n        src/AMLibraryViewController.m\n        src/AMLibraryOutlineView.m\n        src/AMLibraryTableView.m\n        src/_AMiPhotoItemsRowTemplateFactory.m\n        src/_AMSuffixLabeledRowTemplate.m\n        src/_AMPrefixLabeledRowTemplate.m\n        src/_AMPredicateUtilities.m\n        src/_AMiCalItemsRowTemplateFactory.m\n        src/AMFFeedElement.m\n        src/_AMFinderItemsRowTemplateFactory.m\n        src/_AMFileLabelRowTemplate.m\n        src/AMDelayedUpdaterInfo.m\n        src/AMDelayedUpdateManager.m\n        src/AMResultsItem.m\n        src/AMFFeedContent.m\n        src/AMScriptingBridgeAppRegistry.m\n        src/AMDescriptionViewItem.m\n        src/AMDescriptionLineItemView.m\n        src/AMDescriptionViewController.m\n        src/_AMMessageTracerUtilities.m\n        src/_AMiDVDItem.m\n        src/_AMiDVDApplication.m\n        src/_AMiDVDColor.m\n        src/_AMiDVDDocument.m\n        src/_AMiDVDWindow.m\n        src/_AMiDVDAttributeRun.m\n        src/_AMiDVDCharacter.m\n        src/_AMiDVDParagraph.m\n        src/_AMiDVDText.m\n        src/_AMiDVDAttachment.m\n        src/_AMiDVDWord.m\n        src/_AMiDVDApplicationTheme.m\n        src/_AMiDVDButton.m\n        src/_AMiDVDDropzone.m\n        src/_AMiDVDImage.m\n        src/_AMiDVDMenu.m\n        src/_AMiDVDMovie.m\n        src/_AMiDVDProject.m\n        src/_AMiDVDSlideshow.m\n        src/_AMiDVDTextObject.m\n        src/_AMiDVDPrintSettings.m\n        src/AMWorkflowHeaderView.m\n        src/AMHeaderViewController.m\n        src/AMWorkflowPersonality.m\n        src/AMWorkflowUnknownPersonality.m\n        src/AMGeneralWorkflowPersonality.m\n        src/AMApplicationWorkflowPersonality.m\n        src/AMWorkflowMetaData.m\n        src/AMRemoveQuarantineRecoveryAttempter.m\n        src/_AMPredicateEditor.m\n        src/AMApplicationPickerPopUpButton.m\n        src/_AMBoolRowTemplate.m\n        src/AMOpenAutomatorRecoveryAttempter.m\n        src/_AMSBApplicationDelegate.m\n        src/_AMSBRetainingApplicationDelegate.m\n        src/AMScriptingBridgeConversionAction.m\n        src/AMSBObjectToSBObjectConversionAction.m\n        src/AMAliasToSBObjectConversionAction.m\n        src/AMSBObjectToAliasConversionAction.m\n        src/AMType.m\n        src/AMTypeRegistry.m\n        src/AMTextDetector.m\n        src/_AMiCalPredicateEditorAction.m\n        src/AMICalPluginWorkflowPersonality.m\n        src/AMScriptMenuWorkflowPersonality.m\n        src/AMPrintWorkflowPersonality.m\n        src/AMImageCaptureWorkflowPersonality.m\n        src/AMRemoteRunnerXPCDelegate.m\n        src/_AMKeynote5Item.m\n        src/_AMKeynote5Application.m\n        src/_AMKeynote5Color.m\n        src/_AMKeynote5Slideshow.m\n        src/_AMKeynote5Window.m\n        src/_AMKeynote5AttributeRun.m\n        src/_AMKeynote5Character.m\n        src/_AMKeynote5Paragraph.m\n        src/_AMKeynote5Text.m\n        src/_AMKeynote5Attachment.m\n        src/_AMKeynote5Word.m\n        src/_AMKeynote5AppTheme.m\n        src/_AMKeynote5AppTransition.m\n        src/_AMKeynote5DocTheme.m\n        src/_AMKeynote5MasterSlide.m\n        src/_AMKeynote5Slide.m\n        src/_AMKeynote5SlideTransition.m\n        src/_AMKeynote5PrintSettings.m\n        src/AMInputOuptutPluginHeaderViewController.m\n        src/AMServiceWorkflowPersonality.m\n        src/AMServiceWorkflowMetaData.m\n        src/AMPluginHeaderViewController.m\n        src/AMSimpleStringPluginHeaderViewController.m\n        src/AMFolderActionWorkflowPersonality.m\n        src/AMFolderActionWorkflowMetaData.m\n        src/AMGenericActionLoader.m\n        src/AMCache.m\n        src/AMCacheLocationEntry.m\n        src/AMValidatedCacheLocationEntry.m\n        src/AMDiskBasedCacheLocationEntry.m\n        src/AMActionRegistry.m\n        src/_AMiTunes8PrintSettings.m\n        src/_AMiTunes8Application.m\n        src/_AMiTunes8Item.m\n        src/_AMiTunes8Artwork.m\n        src/_AMiTunes8Encoder.m\n        src/_AMiTunes8EQPreset.m\n        src/_AMiTunes8Playlist.m\n        src/_AMiTunes8AudioCDPlaylist.m\n        src/_AMiTunes8DevicePlaylist.m\n        src/_AMiTunes8LibraryPlaylist.m\n        src/_AMiTunes8RadioTunerPlaylist.m\n        src/_AMiTunes8Source.m\n        src/_AMiTunes8Track.m\n        src/_AMiTunes8AudioCDTrack.m\n        src/_AMiTunes8DeviceTrack.m\n        src/_AMiTunes8FileTrack.m\n        src/_AMiTunes8SharedTrack.m\n        src/_AMiTunes8URLTrack.m\n        src/_AMiTunes8UserPlaylist.m\n        src/_AMiTunes8FolderPlaylist.m\n        src/_AMiTunes8Visual.m\n        src/_AMiTunes8Window.m\n        src/_AMiTunes8BrowserWindow.m\n        src/_AMiTunes8EQWindow.m\n        src/_AMiTunes8PlaylistWindow.m\n        src/AMXPCToken.m\n        src/AMUnknownXPCToken.m\n        src/AMActionInWorkflowXPCToken.m\n        src/AMActionPropertyListXPCToken.m\n        src/AMEventKitCalendarItemXPCToken.m\n        src/AMEventKitCalendarXPCToken.m\n        src/AMWebArchiveXPCToken.m\n        src/AMAppleScriptKitSoftLinking.m\n        src/AMDotMacSyncSoftLinking.m\n        src/AMEventKitSoftLinking.m\n        src/AMAddressBookSoftLinking.m\n        src/AMILMediaBrowserSoftLinking.m\n        src/AMWebKitSoftLinking.m\n        src/AMDictationServicesSoftLinking.m\n        src/AMFolderActionsKitSoftLinking.m\n        src/AMWorkflowServiceRunner.m\n        src/AMConvertEventKitObject.m\n        src/AMConvertiCalItemObjectToEventKitItem.m\n        src/AMConvertiCalEventObjectToEventKitEvent.m\n        src/AMConvertiCalToDoObjectToEventKitReminder.m\n        src/AMConvertiCalCalendarObjectToEventKitCalendar.m\n        src/AMConvertEventKitObjectToiCalObject.m\n        src/AMConvertEventKitItemToEventKitCalendar.m\n        src/AMConvertEventKitItemToEventKitEvent.m\n        src/AMConvertEventKitItemToiCalItemObject.m\n        src/AMConvertEventKitEventToiCalEventObject.m\n        src/AMConvertEventKitReminderToiCalToDoObject.m\n        src/AMConvertEventKitCalendarToiCalCalendarObject.m\n        src/AMConvertEventKitCalendarToEventKitEvent.m\n        src/AMConvertEventKitCalendarToEventKitReminder.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionAnyOfCollectionRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionAnyOfCollectionRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionCompletionResults.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionCompletionResults : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionConnector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionConnector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionDateAddedRelativeRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionDateAddedRelativeRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionDateAddedSpecificRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionDateAddedSpecificRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionDateAddedWithinLastRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionDateAddedWithinLastRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMActionDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionInWorkflowXPCToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionInWorkflowXPCToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionInstallerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionInstallerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionMetadataStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionMetadataStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionPanelActionView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionPanelActionView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionPanelController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionPanelController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionPropertyListXPCToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionPropertyListXPCToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionRegistry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionRegistry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionRelevanceRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionRelevanceRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionSecAssess.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionSecAssess : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionShowWhenRunOverlayView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionShowWhenRunOverlayView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionTextField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionTextField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActionsUserGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActionsUserGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMActiveProc.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMActiveProc : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMAddressBookSoftLinking.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMAddressBookSoftLinking : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMAliasToSBObjectConversionAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMAliasToSBObjectConversionAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMAppDefinitionProxyAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMAppDefinitionProxyAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMAppleScriptAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMAppleScriptAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMAppleScriptKitSoftLinking.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMAppleScriptKitSoftLinking : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMApplicationDefinition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMApplicationDefinition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMApplicationPickerPopUpButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMApplicationPickerPopUpButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMApplicationRegistry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMApplicationRegistry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMApplicationStub.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMApplicationStub : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMApplicationStubController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMApplicationStubController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMApplicationWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMApplicationWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMAutoConversionAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMAutoConversionAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMBundleAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMBundleAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMCache.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMCache : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMCacheLocationEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMCacheLocationEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConnectionPoint.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConnectionPoint : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConversion.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConversion : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAliasToPath.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAliasToPath : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAliasToString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAliasToString : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAliasToSubType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAliasToSubType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAliasToURL.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAliasToURL : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAppleScriptObjectToAppleScriptDataObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAppleScriptObjectToAppleScriptDataObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAppleScriptObjectToAppleScriptTextObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAppleScriptObjectToAppleScriptTextObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAppleScriptObjectToString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAppleScriptObjectToString : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAppleScriptObjectToSubtype.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAppleScriptObjectToSubtype : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAppleScriptObjectToURL.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAppleScriptObjectToURL : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAppleScriptTextObjectToAlias.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAppleScriptTextObjectToAlias : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAppleScriptTextObjectToAppleScriptURLObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAppleScriptTextObjectToAppleScriptURLObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAppleScriptURLToURL.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAppleScriptURLToURL : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertAttributedStringToString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertAttributedStringToString : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertCocoaStringToAppleScriptAliasObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertCocoaStringToAppleScriptAliasObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitCalendarToEventKitEvent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitCalendarToEventKitEvent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitCalendarToEventKitReminder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitCalendarToEventKitReminder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitCalendarToiCalCalendarObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitCalendarToiCalCalendarObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitEventToiCalEventObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitEventToiCalEventObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitItemToEventKitCalendar.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitItemToEventKitCalendar : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitItemToEventKitEvent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitItemToEventKitEvent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitItemToiCalItemObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitItemToiCalItemObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitObjectToiCalObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitObjectToiCalObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertEventKitReminderToiCalToDoObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertEventKitReminderToiCalToDoObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertPathToAlias.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertPathToAlias : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertPathToAppleScriptTextObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertPathToAppleScriptTextObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertPathToPublicItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertPathToPublicItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertPathTypeToSubType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertPathTypeToSubType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertPublicItemToCocoaPath.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertPublicItemToCocoaPath : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertPublicItemToSpotlightItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertPublicItemToSpotlightItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertStringToAppleScriptTextObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertStringToAppleScriptTextObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertStringToAttributedString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertStringToAttributedString : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertStringToPath.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertStringToPath : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertStringToURL.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertStringToURL : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertURLToAlias.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertURLToAlias : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertURLToAppleScriptTextObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertURLToAppleScriptTextObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertURLToAppleScriptURL.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertURLToAppleScriptURL : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertURLToPath.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertURLToPath : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertURLToString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertURLToString : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConverter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConverter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertiCalCalendarObjectToEventKitCalendar.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertiCalCalendarObjectToEventKitCalendar : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertiCalEventObjectToEventKitEvent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertiCalEventObjectToEventKitEvent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertiCalItemObjectToEventKitItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertiCalItemObjectToEventKitItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMConvertiCalToDoObjectToEventKitReminder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMConvertiCalToDoObjectToEventKitReminder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDelayedUpdateManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDelayedUpdateManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDelayedUpdaterInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDelayedUpdaterInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDescriptionImageTextCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDescriptionImageTextCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDescriptionLineItemView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDescriptionLineItemView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDescriptionViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDescriptionViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDescriptionViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDescriptionViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDictationCommandWorkflowMetaData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDictationCommandWorkflowMetaData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDictationCommandWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDictationCommandWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDictationServicesSoftLinking.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDictationServicesSoftLinking : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDiskBasedCacheLocationEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDiskBasedCacheLocationEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMDotMacSyncSoftLinking.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMDotMacSyncSoftLinking : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMEventKitCalendarItemXPCToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMEventKitCalendarItemXPCToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMEventKitCalendarXPCToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMEventKitCalendarXPCToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMEventKitSoftLinking.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMEventKitSoftLinking : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFCompletionFeedParserDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFCompletionFeedParserDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeed.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeed : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedContent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedContent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedElement : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedEnclosure.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedEnclosure : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedFinder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedFinder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedParser.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedParser : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedParserDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMFFeedParserDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFFeedPerson.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFFeedPerson : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFilterItemsAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFilterItemsAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFindItemsAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFindItemsAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFolderActionWorkflowMetaData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFolderActionWorkflowMetaData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFolderActionWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFolderActionWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMFolderActionsKitSoftLinking.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMFolderActionsKitSoftLinking : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGeneralWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGeneralWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGenericAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGenericAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGenericActionLoader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGenericActionLoader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGetItemsAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGetItemsAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGetItemsPanelController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGetItemsPanelController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGetItemsTableView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGetItemsTableView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGlossyStatusView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGlossyStatusView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGradientBackgroundView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGradientBackgroundView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMGroupBox.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMGroupBox : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMHeaderViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMHeaderViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMICalPluginWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMICalPluginWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMILMediaBrowserSoftLinking.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMILMediaBrowserSoftLinking : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMImageCaptureWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMImageCaptureWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMImageRegistry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMImageRegistry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMImageTextCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMImageTextCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMImageView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMImageView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMInputOuptutPluginHeaderViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMInputOuptutPluginHeaderViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMInputOutputWorkflowMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMInputOutputWorkflowMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMInputOutputWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMInputOutputWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMLevelIndicator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMLevelIndicator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMLevelIndicatorCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMLevelIndicatorCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMLibrary.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMLibrary : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMLibraryOutlineView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMLibraryOutlineView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMLibraryTableView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMLibraryTableView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMLibraryViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMLibraryViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMLocalRunnerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMLocalRunnerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMMediaPanel.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMMediaPanel : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMModernApplicationStubApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMModernApplicationStubApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMModernApplicationStubDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMModernApplicationStubDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMNewFindItemsAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMNewFindItemsAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMNibView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMNibView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMOpenAutomatorRecoveryAttempter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMOpenAutomatorRecoveryAttempter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMPathPopUpButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMPathPopUpButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMPlaceholderAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMPlaceholderAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMPluginHeaderViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMPluginHeaderViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMPluginInstallerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMPluginInstallerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMPopUpButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMPopUpButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMPrintWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMPrintWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMProxyAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMProxyAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRelativeDateRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMRelativeDateRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRemoteRunnerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMRemoteRunnerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRemoteRunnerXPCDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMRemoteRunnerXPCDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRemoteRunnerXPCDelegateProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMRemoteRunnerXPCDelegateProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRemoteRunnerXPCProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMRemoteRunnerXPCProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRemoveQuarantineRecoveryAttempter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMRemoveQuarantineRecoveryAttempter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMResultsItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMResultsItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMResultsTableView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMResultsTableView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMResultsViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMResultsViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMResultsViewOverlayView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMResultsViewOverlayView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRunActionAsyncOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMRunActionAsyncOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRunActionOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMRunActionOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRunnerControl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMRunnerControl\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRunnerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMRunnerController\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRunnerControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMRunnerControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMRunnerState.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMRunnerState\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSBObjectToAliasConversionAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSBObjectToAliasConversionAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSBObjectToSBObjectConversionAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSBObjectToSBObjectConversionAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMScriptMenuWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMScriptMenuWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMScriptingBridgeAppRegistry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMScriptingBridgeAppRegistry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMScriptingBridgeConversionAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMScriptingBridgeConversionAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSecurityHelperWindowController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSecurityHelperWindowController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSecurityHelperWindowControllerRecoveryAttempter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSecurityHelperWindowControllerRecoveryAttempter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSendProc.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSendProc : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMServicePluginHeaderViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMServicePluginHeaderViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMServiceWorkflowMetaData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMServiceWorkflowMetaData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMServiceWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMServiceWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMServicesController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMServicesController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMShellScriptAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMShellScriptAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMShowWhenRunController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMShowWhenRunController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMShowWhenRunPanel.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMShowWhenRunPanel : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSimpleStringPluginHeaderViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSimpleStringPluginHeaderViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSmartGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSmartGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSmartGroupsController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSmartGroupsController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSmartGroupsPredicateViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSmartGroupsPredicateViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSmartTokenAttachmentCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSmartTokenAttachmentCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSpecificDateRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSpecificDateRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMSplitView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMSplitView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMTemplateChooserItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMTemplateChooserItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMTextDetector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMTextDetector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMTextFieldCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMTextFieldCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMTokenAttachmentCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMTokenAttachmentCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMTokenField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMTokenField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMTokenFieldCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMTokenFieldCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMTypeRegistry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMTypeRegistry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMUnknownXPCToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMUnknownXPCToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMValidatedCacheLocationEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMValidatedCacheLocationEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariable.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariable : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariablesEditorController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariablesEditorController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariablesEditorDateFormatDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariablesEditorDateFormatDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariablesEditorEventDelegateWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariablesEditorEventDelegateWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariablesEditorProxyController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariablesEditorProxyController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariablesEditorView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariablesEditorView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariablesEditorWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariablesEditorWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariablesRegistry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariablesRegistry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMVariablesUserGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMVariablesUserGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWebArchiveXPCToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWebArchiveXPCToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWebKitSoftLinking.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWebKitSoftLinking : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWhoseListView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWhoseListView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWhoseViewItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWhoseViewItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWithinLastDateRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWithinLastDateRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowCompletionResults.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowCompletionResults : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMWorkflowControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowControllerDelegatePrivate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMWorkflowControllerDelegatePrivate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowHeaderView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowHeaderView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowMetaData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowMetaData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowPersonalityInstallerController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowPersonalityInstallerController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowRunner.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowRunner : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowRunnerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AMWorkflowRunnerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowServiceRunner.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowServiceRunner : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowUnknownPersonality.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowUnknownPersonality : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkflowView.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkflowView : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMWorkspace.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMWorkspace : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AMXPCToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AMXPCToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/Automator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Automator_H_\n#define _Automator_H_\n\n#import <Foundation/Foundation.h>\n\n#import <Automator/AMActionDelegate.h>\n#import <Automator/AMFFeedParserDelegate.h>\n#import <Automator/AMRemoteRunnerXPCDelegateProtocol.h>\n#import <Automator/AMRemoteRunnerXPCProtocol.h>\n#import <Automator/AMRunnerControl.h>\n#import <Automator/AMRunnerController.h>\n#import <Automator/AMRunnerControllerDelegate.h>\n#import <Automator/AMRunnerState.h>\n#import <Automator/AMWorkflowControllerDelegate.h>\n#import <Automator/AMWorkflowControllerDelegatePrivate.h>\n#import <Automator/AMWorkflowRunnerDelegate.h>\n#import <Automator/AutomatorSecurityHelperHostViewController.h>\n#import <Automator/AutomatorSecurityHelperServiceViewController.h>\n#import <Automator/NSAnimationDelegate.h>\n#import <Automator/NSApplicationDelegate.h>\n#import <Automator/NSControlTextEditingDelegate.h>\n#import <Automator/NSDraggingSource.h>\n#import <Automator/NSOpenSavePanelDelegate.h>\n#import <Automator/NSProgressReporting.h>\n#import <Automator/NSServicesMonitorObserver.h>\n#import <Automator/NSSplitViewDelegate.h>\n#import <Automator/NSTextFieldDelegate.h>\n#import <Automator/NSTokenFieldDelegate.h>\n#import <Automator/NSTouchBarDelegate.h>\n#import <Automator/NSWindowDelegate.h>\n#import <Automator/NSXMLParserDelegate.h>\n#import <Automator/NSXPCConnectionDelegate.h>\n#import <Automator/SBApplicationDelegate.h>\n#import <Automator/WebFrameLoadDelegate.h>\n#import <Automator/_AMSystemEventsGenericMethods.h>\n#import <Automator/_AMActionAuxiliary.h>\n#import <Automator/AMAction.h>\n#import <Automator/AMFFeedEnclosure.h>\n#import <Automator/AMAppleScriptAction.h>\n#import <Automator/AMBundleAction.h>\n#import <Automator/AMActionMetadataStore.h>\n#import <Automator/AMConverter.h>\n#import <Automator/AMConversion.h>\n#import <Automator/AMApplicationRegistry.h>\n#import <Automator/AMConvertAliasToString.h>\n#import <Automator/AMConvertPublicItemToCocoaPath.h>\n#import <Automator/AMConvertPublicItemToSpotlightItem.h>\n#import <Automator/AMConvertAppleScriptObjectToAppleScriptDataObject.h>\n#import <Automator/NSPrivateAutomatorFrameworkClassForFindingBundle.h>\n#import <Automator/AMActionPanelController.h>\n#import <Automator/AMActionPanelActionView.h>\n#import <Automator/AMShowWhenRunPanel.h>\n#import <Automator/AMPathPopUpButton.h>\n#import <Automator/AMFFeedParser.h>\n#import <Automator/AMFCompletionFeedParserDelegate.h>\n#import <Automator/_AMiCalText.h>\n#import <Automator/_AMiCalAttachment.h>\n#import <Automator/_AMiCalParagraph.h>\n#import <Automator/_AMiCalWord.h>\n#import <Automator/_AMiCalCharacter.h>\n#import <Automator/_AMiCalAttributeRun.h>\n#import <Automator/_AMiCalItem.h>\n#import <Automator/_AMiCalApplication.h>\n#import <Automator/_AMiCalColor.h>\n#import <Automator/_AMiCalDocument.h>\n#import <Automator/_AMiCalWindow.h>\n#import <Automator/_AMiCalCalendar.h>\n#import <Automator/_AMiCalDisplayAlarm.h>\n#import <Automator/_AMiCalMailAlarm.h>\n#import <Automator/_AMiCalSoundAlarm.h>\n#import <Automator/_AMiCalOpenFileAlarm.h>\n#import <Automator/_AMiCalAttendee.h>\n#import <Automator/_AMiCalTodo.h>\n#import <Automator/_AMiCalEvent.h>\n#import <Automator/AMConvertAliasToPath.h>\n#import <Automator/AMConvertPathToAlias.h>\n#import <Automator/AMConvertCocoaStringToAppleScriptAliasObject.h>\n#import <Automator/AMConvertPathToAppleScriptTextObject.h>\n#import <Automator/AMConvertAppleScriptTextObjectToAlias.h>\n#import <Automator/AMGroupBox.h>\n#import <Automator/AMWorkflowCompletionResults.h>\n#import <Automator/AMActiveProc.h>\n#import <Automator/AMSendProc.h>\n#import <Automator/AMGetItemsAction.h>\n#import <Automator/AMGetItemsTableView.h>\n#import <Automator/AMGetItemsPanelController.h>\n#import <Automator/AMFindItemsAction.h>\n#import <Automator/AMRemoteRunnerController.h>\n#import <Automator/AMWhoseListView.h>\n#import <Automator/AMWhoseViewItem.h>\n#import <Automator/_AMiPhoto5Item.h>\n#import <Automator/_AMiPhoto5Application.h>\n#import <Automator/_AMiPhoto5Color.h>\n#import <Automator/_AMiPhoto5Document.h>\n#import <Automator/_AMiPhoto5Window.h>\n#import <Automator/_AMiPhoto5AttributeRun.h>\n#import <Automator/_AMiPhoto5Character.h>\n#import <Automator/_AMiPhoto5Paragraph.h>\n#import <Automator/_AMiPhoto5Text.h>\n#import <Automator/_AMiPhoto5Attachment.h>\n#import <Automator/_AMiPhoto5Word.h>\n#import <Automator/_AMiPhoto5Album.h>\n#import <Automator/_AMiPhoto5Keyword.h>\n#import <Automator/_AMiPhoto5Photo.h>\n#import <Automator/_AMiPhoto5PrintSettings.h>\n#import <Automator/AMFilterItemsAction.h>\n#import <Automator/AMConvertAppleScriptURLToURL.h>\n#import <Automator/AMConvertAppleScriptObjectToURL.h>\n#import <Automator/AMConvertURLToAppleScriptURL.h>\n#import <Automator/AMConvertURLToAppleScriptTextObject.h>\n#import <Automator/AMConvertURLToPath.h>\n#import <Automator/AMConvertURLToAlias.h>\n#import <Automator/AMConvertAliasToURL.h>\n#import <Automator/AMConvertStringToURL.h>\n#import <Automator/AMConvertURLToString.h>\n#import <Automator/AMConvertStringToAppleScriptTextObject.h>\n#import <Automator/AMConvertAppleScriptObjectToString.h>\n#import <Automator/AMConvertAppleScriptObjectToAppleScriptTextObject.h>\n#import <Automator/AMConvertAppleScriptTextObjectToAppleScriptURLObject.h>\n#import <Automator/AMConvertStringToPath.h>\n#import <Automator/AMConvertPathToPublicItem.h>\n#import <Automator/AMConvertStringToAttributedString.h>\n#import <Automator/AMConvertAttributedStringToString.h>\n#import <Automator/AMAutoConversionAction.h>\n#import <Automator/AMConvertPathTypeToSubType.h>\n#import <Automator/AMConvertAppleScriptObjectToSubtype.h>\n#import <Automator/AMConvertAliasToSubType.h>\n#import <Automator/_AMSystemEventsApplication.h>\n#import <Automator/_AMSystemEventsDocument.h>\n#import <Automator/_AMSystemEventsWindow.h>\n#import <Automator/_AMSystemEventsUser.h>\n#import <Automator/_AMSystemEventsAppearancePreferencesObject.h>\n#import <Automator/_AMSystemEventsCDAndDVDPreferencesObject.h>\n#import <Automator/_AMSystemEventsInsertionPreference.h>\n#import <Automator/_AMSystemEventsDesktop.h>\n#import <Automator/_AMSystemEventsDockPreferencesObject.h>\n#import <Automator/_AMSystemEventsLoginItem.h>\n#import <Automator/_AMSystemEventsConfiguration.h>\n#import <Automator/_AMSystemEventsInterface.h>\n#import <Automator/_AMSystemEventsLocation.h>\n#import <Automator/_AMSystemEventsNetworkPreferencesObject.h>\n#import <Automator/_AMSystemEventsService.h>\n#import <Automator/_AMSystemEventsScreenSaver.h>\n#import <Automator/_AMSystemEventsScreenSaverPreferencesObject.h>\n#import <Automator/_AMSystemEventsSecurityPreferencesObject.h>\n#import <Automator/_AMSystemEventsDiskItem.h>\n#import <Automator/_AMSystemEventsAlias.h>\n#import <Automator/_AMSystemEventsDisk.h>\n#import <Automator/_AMSystemEventsDomain.h>\n#import <Automator/_AMSystemEventsClassicDomainObject.h>\n#import <Automator/_AMSystemEventsFile.h>\n#import <Automator/_AMSystemEventsFilePackage.h>\n#import <Automator/_AMSystemEventsFolder.h>\n#import <Automator/_AMSystemEventsLocalDomainObject.h>\n#import <Automator/_AMSystemEventsNetworkDomainObject.h>\n#import <Automator/_AMSystemEventsSystemDomainObject.h>\n#import <Automator/_AMSystemEventsUserDomainObject.h>\n#import <Automator/_AMSystemEventsFolderAction.h>\n#import <Automator/_AMSystemEventsScript.h>\n#import <Automator/_AMSystemEventsAction.h>\n#import <Automator/_AMSystemEventsAttribute.h>\n#import <Automator/_AMSystemEventsUIElement.h>\n#import <Automator/_AMSystemEventsBrowser.h>\n#import <Automator/_AMSystemEventsBusyIndicator.h>\n#import <Automator/_AMSystemEventsButton.h>\n#import <Automator/_AMSystemEventsCheckbox.h>\n#import <Automator/_AMSystemEventsColorWell.h>\n#import <Automator/_AMSystemEventsColumn.h>\n#import <Automator/_AMSystemEventsComboBox.h>\n#import <Automator/_AMSystemEventsDrawer.h>\n#import <Automator/_AMSystemEventsGroup.h>\n#import <Automator/_AMSystemEventsGrowArea.h>\n#import <Automator/_AMSystemEventsImage.h>\n#import <Automator/_AMSystemEventsIncrementor.h>\n#import <Automator/_AMSystemEventsList.h>\n#import <Automator/_AMSystemEventsMenu.h>\n#import <Automator/_AMSystemEventsMenuBar.h>\n#import <Automator/_AMSystemEventsMenuBarItem.h>\n#import <Automator/_AMSystemEventsMenuButton.h>\n#import <Automator/_AMSystemEventsMenuItem.h>\n#import <Automator/_AMSystemEventsOutline.h>\n#import <Automator/_AMSystemEventsPopOver.h>\n#import <Automator/_AMSystemEventsPopUpButton.h>\n#import <Automator/_AMSystemEventsProcess.h>\n#import <Automator/_AMSystemEventsApplicationProcess.h>\n#import <Automator/_AMSystemEventsDeskAccessoryProcess.h>\n#import <Automator/_AMSystemEventsProgressIndicator.h>\n#import <Automator/_AMSystemEventsRadioButton.h>\n#import <Automator/_AMSystemEventsRadioGroup.h>\n#import <Automator/_AMSystemEventsRelevanceIndicator.h>\n#import <Automator/_AMSystemEventsRow.h>\n#import <Automator/_AMSystemEventsScrollArea.h>\n#import <Automator/_AMSystemEventsScrollBar.h>\n#import <Automator/_AMSystemEventsSheet.h>\n#import <Automator/_AMSystemEventsSlider.h>\n#import <Automator/_AMSystemEventsSplitter.h>\n#import <Automator/_AMSystemEventsSplitterGroup.h>\n#import <Automator/_AMSystemEventsStaticText.h>\n#import <Automator/_AMSystemEventsTabGroup.h>\n#import <Automator/_AMSystemEventsTable.h>\n#import <Automator/_AMSystemEventsTextArea.h>\n#import <Automator/_AMSystemEventsTextField.h>\n#import <Automator/_AMSystemEventsToolbar.h>\n#import <Automator/_AMSystemEventsValueIndicator.h>\n#import <Automator/_AMSystemEventsPropertyListFile.h>\n#import <Automator/_AMSystemEventsPropertyListItem.h>\n#import <Automator/_AMSystemEventsAnnotation.h>\n#import <Automator/_AMSystemEventsQuickTimeData.h>\n#import <Automator/_AMSystemEventsAudioData.h>\n#import <Automator/_AMSystemEventsMovieData.h>\n#import <Automator/_AMSystemEventsQuickTimeFile.h>\n#import <Automator/_AMSystemEventsAudioFile.h>\n#import <Automator/_AMSystemEventsMovieFile.h>\n#import <Automator/_AMSystemEventsTrack.h>\n#import <Automator/_AMSystemEventsXMLAttribute.h>\n#import <Automator/_AMSystemEventsXMLData.h>\n#import <Automator/_AMSystemEventsXMLElement.h>\n#import <Automator/_AMSystemEventsXMLFile.h>\n#import <Automator/_AMSystemEventsPrintSettings.h>\n#import <Automator/_AMSystemEventsScriptingClass.h>\n#import <Automator/_AMSystemEventsScriptingCommand.h>\n#import <Automator/_AMSystemEventsScriptingDefinitionObject.h>\n#import <Automator/_AMSystemEventsScriptingElement.h>\n#import <Automator/_AMSystemEventsScriptingEnumeration.h>\n#import <Automator/_AMSystemEventsScriptingEnumerator.h>\n#import <Automator/_AMSystemEventsScriptingParameter.h>\n#import <Automator/_AMSystemEventsScriptingProperty.h>\n#import <Automator/_AMSystemEventsScriptingResultObject.h>\n#import <Automator/_AMSystemEventsScriptingSuite.h>\n#import <Automator/AMShellScriptAction.h>\n#import <Automator/AMActionLoader.h>\n#import <Automator/AMWorkflow.h>\n#import <Automator/AMTemplateChooserItem.h>\n#import <Automator/AMServicesController.h>\n#import <Automator/AMWorkflowController.h>\n#import <Automator/AMWorkflowView.h>\n#import <Automator/AMImageTextCell.h>\n#import <Automator/AMDescriptionImageTextCell.h>\n#import <Automator/AMGroup.h>\n#import <Automator/AMActionsUserGroup.h>\n#import <Automator/AMVariablesUserGroup.h>\n#import <Automator/AMSmartGroup.h>\n#import <Automator/AMActionConnector.h>\n#import <Automator/AMConnectionPoint.h>\n#import <Automator/_AMTextEditItem.h>\n#import <Automator/_AMTextEditApplication.h>\n#import <Automator/_AMTextEditColor.h>\n#import <Automator/_AMTextEditDocument.h>\n#import <Automator/_AMTextEditWindow.h>\n#import <Automator/_AMTextEditAttributeRun.h>\n#import <Automator/_AMTextEditCharacter.h>\n#import <Automator/_AMTextEditParagraph.h>\n#import <Automator/_AMTextEditText.h>\n#import <Automator/_AMTextEditAttachment.h>\n#import <Automator/_AMTextEditWord.h>\n#import <Automator/_AMTextEditPrintSettings.h>\n#import <Automator/AMTextFieldCell.h>\n#import <Automator/AMWorkflowRunner.h>\n#import <Automator/AMImageRegistry.h>\n#import <Automator/AMTokenField.h>\n#import <Automator/_AMVariablePopUpButtonTokenField.h>\n#import <Automator/AMTokenFieldCell.h>\n#import <Automator/AMTokenAttachmentCell.h>\n#import <Automator/AMSmartTokenAttachmentCell.h>\n#import <Automator/_AMiPhoto6Item.h>\n#import <Automator/_AMiPhoto6Application.h>\n#import <Automator/_AMiPhoto6Color.h>\n#import <Automator/_AMiPhoto6Document.h>\n#import <Automator/_AMiPhoto6Window.h>\n#import <Automator/_AMiPhoto6AttributeRun.h>\n#import <Automator/_AMiPhoto6Character.h>\n#import <Automator/_AMiPhoto6Paragraph.h>\n#import <Automator/_AMiPhoto6Text.h>\n#import <Automator/_AMiPhoto6Attachment.h>\n#import <Automator/_AMiPhoto6Word.h>\n#import <Automator/_AMiPhoto6Album.h>\n#import <Automator/_AMiPhoto6Keyword.h>\n#import <Automator/_AMiPhoto6Photo.h>\n#import <Automator/_AMiPhoto6PrintSettings.h>\n#import <Automator/_AMMailApplication.h>\n#import <Automator/_AMMailDocument.h>\n#import <Automator/_AMMailWindow.h>\n#import <Automator/_AMMailRichText.h>\n#import <Automator/_AMMailAttachment.h>\n#import <Automator/_AMMailParagraph.h>\n#import <Automator/_AMMailWord.h>\n#import <Automator/_AMMailCharacter.h>\n#import <Automator/_AMMailAttributeRun.h>\n#import <Automator/_AMMailOutgoingMessage.h>\n#import <Automator/_AMMailLdapServer.h>\n#import <Automator/_AMMailOLDMessageEditor.h>\n#import <Automator/_AMMailMessageViewer.h>\n#import <Automator/_AMMailSignature.h>\n#import <Automator/_AMMailMessage.h>\n#import <Automator/_AMMailAccount.h>\n#import <Automator/_AMMailImapAccount.h>\n#import <Automator/_AMMailMobileMeAccount.h>\n#import <Automator/_AMMailPopAccount.h>\n#import <Automator/_AMMailSmtpServer.h>\n#import <Automator/_AMMailMailbox.h>\n#import <Automator/_AMMailRule.h>\n#import <Automator/_AMMailRuleCondition.h>\n#import <Automator/_AMMailRecipient.h>\n#import <Automator/_AMMailBccRecipient.h>\n#import <Automator/_AMMailCcRecipient.h>\n#import <Automator/_AMMailToRecipient.h>\n#import <Automator/_AMMailContainer.h>\n#import <Automator/_AMMailHeader.h>\n#import <Automator/_AMMailMailAttachment.h>\n#import <Automator/AMPopUpButton.h>\n#import <Automator/AMVariablesRegistry.h>\n#import <Automator/AMLocalRunnerController.h>\n#import <Automator/AMVariablesEditorView.h>\n#import <Automator/AMVariable.h>\n#import <Automator/AMWorkspace.h>\n#import <Automator/AMShowWhenRunController.h>\n#import <Automator/AMInputOutputWorkflowPersonality.h>\n#import <Automator/AMInputOutputWorkflowMetadata.h>\n#import <Automator/AMVariablesEditorController.h>\n#import <Automator/AMSplitView.h>\n#import <Automator/AMApplicationDefinition.h>\n#import <Automator/_AMFinderApplication.h>\n#import <Automator/_AMFinderItem.h>\n#import <Automator/_AMFinderContainer.h>\n#import <Automator/_AMFinderComputerObject.h>\n#import <Automator/_AMFinderDisk.h>\n#import <Automator/_AMFinderFolder.h>\n#import <Automator/_AMFinderDesktopObject.h>\n#import <Automator/_AMFinderTrashObject.h>\n#import <Automator/_AMFinderFile.h>\n#import <Automator/_AMFinderAliasFile.h>\n#import <Automator/_AMFinderApplicationFile.h>\n#import <Automator/_AMFinderDocumentFile.h>\n#import <Automator/_AMFinderInternetLocationFile.h>\n#import <Automator/_AMFinderClipping.h>\n#import <Automator/_AMFinderPackage.h>\n#import <Automator/_AMFinderWindow.h>\n#import <Automator/_AMFinderFinderWindow.h>\n#import <Automator/_AMFinderDesktopWindow.h>\n#import <Automator/_AMFinderInformationWindow.h>\n#import <Automator/_AMFinderPreferencesWindow.h>\n#import <Automator/_AMFinderClippingWindow.h>\n#import <Automator/_AMFinderProcess.h>\n#import <Automator/_AMFinderApplicationProcess.h>\n#import <Automator/_AMFinderDeskAccessoryProcess.h>\n#import <Automator/_AMFinderPreferences.h>\n#import <Automator/_AMFinderLabel.h>\n#import <Automator/_AMFinderIconFamily.h>\n#import <Automator/_AMFinderIconViewOptions.h>\n#import <Automator/_AMFinderColumnViewOptions.h>\n#import <Automator/_AMFinderListViewOptions.h>\n#import <Automator/_AMFinderColumn.h>\n#import <Automator/_AMFinderAliasList.h>\n#import <Automator/AMImageView.h>\n#import <Automator/AMActionView.h>\n#import <Automator/AMView.h>\n#import <Automator/AMNibView.h>\n#import <Automator/AMActionTextField.h>\n#import <Automator/AMVariablesEditorDateFormatDelegate.h>\n#import <Automator/AMFFeedFinder.h>\n#import <Automator/AMVariablesEditorEventDelegateWindow.h>\n#import <Automator/AMVariablesEditorWindow.h>\n#import <Automator/EditorWindowRelocateAnimation.h>\n#import <Automator/EditorWindowOpenAnimation.h>\n#import <Automator/EditorWindowCloseAnimation.h>\n#import <Automator/AMVariablesEditorProxyController.h>\n#import <Automator/AMSmartGroupsController.h>\n#import <Automator/AMSmartGroupsPredicateViewController.h>\n#import <Automator/AMFFeedEntry.h>\n#import <Automator/AMApplicationStub.h>\n#import <Automator/AMLevelIndicator.h>\n#import <Automator/AMLevelIndicatorCell.h>\n#import <Automator/_AMiTunes7PrintSettings.h>\n#import <Automator/_AMiTunes7Application.h>\n#import <Automator/_AMiTunes7Item.h>\n#import <Automator/_AMiTunes7Artwork.h>\n#import <Automator/_AMiTunes7Encoder.h>\n#import <Automator/_AMiTunes7EQPreset.h>\n#import <Automator/_AMiTunes7Playlist.h>\n#import <Automator/_AMiTunes7AudioCDPlaylist.h>\n#import <Automator/_AMiTunes7DevicePlaylist.h>\n#import <Automator/_AMiTunes7LibraryPlaylist.h>\n#import <Automator/_AMiTunes7RadioTunerPlaylist.h>\n#import <Automator/_AMiTunes7Source.h>\n#import <Automator/_AMiTunes7Track.h>\n#import <Automator/_AMiTunes7AudioCDTrack.h>\n#import <Automator/_AMiTunes7DeviceTrack.h>\n#import <Automator/_AMiTunes7FileTrack.h>\n#import <Automator/_AMiTunes7SharedTrack.h>\n#import <Automator/_AMiTunes7URLTrack.h>\n#import <Automator/_AMiTunes7UserPlaylist.h>\n#import <Automator/_AMiTunes7FolderPlaylist.h>\n#import <Automator/_AMiTunes7Visual.h>\n#import <Automator/_AMiTunes7Window.h>\n#import <Automator/_AMiTunes7BrowserWindow.h>\n#import <Automator/_AMiTunes7EQWindow.h>\n#import <Automator/_AMiTunes7PlaylistWindow.h>\n#import <Automator/AMApplicationStubController.h>\n#import <Automator/AMNewFindItemsAction.h>\n#import <Automator/AMPlaceholderAction.h>\n#import <Automator/AMGradientBackgroundView.h>\n#import <Automator/AMLibrary.h>\n#import <Automator/AMGlossyStatusView.h>\n#import <Automator/AMSpecificDateRowTemplate.h>\n#import <Automator/_AMSafariItem.h>\n#import <Automator/_AMSafariApplication.h>\n#import <Automator/_AMSafariColor.h>\n#import <Automator/_AMSafariDocument.h>\n#import <Automator/_AMSafariWindow.h>\n#import <Automator/_AMSafariAttributeRun.h>\n#import <Automator/_AMSafariCharacter.h>\n#import <Automator/_AMSafariParagraph.h>\n#import <Automator/_AMSafariText.h>\n#import <Automator/_AMSafariAttachment.h>\n#import <Automator/_AMSafariWord.h>\n#import <Automator/_AMSafariTab.h>\n#import <Automator/_AMSafariPrintSettings.h>\n#import <Automator/AMWithinLastDateRowTemplate.h>\n#import <Automator/AMFFeed.h>\n#import <Automator/AMRelativeDateRowTemplate.h>\n#import <Automator/AMMediaPanel.h>\n#import <Automator/AMResultsViewController.h>\n#import <Automator/AMResultsTableView.h>\n#import <Automator/AMGenericAction.h>\n#import <Automator/AMFFeedPerson.h>\n#import <Automator/AMPluginInstallerController.h>\n#import <Automator/AMWorkflowPersonalityInstallerController.h>\n#import <Automator/AMActionInstallerController.h>\n#import <Automator/AMActionRelevanceRowTemplate.h>\n#import <Automator/AMActionDateAddedRelativeRowTemplate.h>\n#import <Automator/AMActionDateAddedSpecificRowTemplate.h>\n#import <Automator/AMActionDateAddedWithinLastRowTemplate.h>\n#import <Automator/AMActionSecAssess.h>\n#import <Automator/AutomatorSecurityHelperHostViewController.h>\n#import <Automator/AMSecurityHelperWindowController.h>\n#import <Automator/AMSecurityHelperWindowControllerRecoveryAttempter.h>\n#import <Automator/_AMAddressBookApplication.h>\n#import <Automator/_AMAddressBookDocument.h>\n#import <Automator/_AMAddressBookWindow.h>\n#import <Automator/_AMAddressBookAddress.h>\n#import <Automator/_AMAddressBookContactInfo.h>\n#import <Automator/_AMAddressBookAIMHandle.h>\n#import <Automator/_AMAddressBookCustomDate.h>\n#import <Automator/_AMAddressBookEmail.h>\n#import <Automator/_AMAddressBookEntry.h>\n#import <Automator/_AMAddressBookGroup.h>\n#import <Automator/_AMAddressBookICQHandle.h>\n#import <Automator/_AMAddressBookJabberHandle.h>\n#import <Automator/_AMAddressBookMSNHandle.h>\n#import <Automator/_AMAddressBookPerson.h>\n#import <Automator/_AMAddressBookPhone.h>\n#import <Automator/_AMAddressBookRelatedName.h>\n#import <Automator/_AMAddressBookUrl.h>\n#import <Automator/_AMAddressBookYahooHandle.h>\n#import <Automator/AMActionCompletionResults.h>\n#import <Automator/AMActionViewController.h>\n#import <Automator/AMActionShowWhenRunOverlayView.h>\n#import <Automator/AMActionAnyOfCollectionRowTemplate.h>\n#import <Automator/AMResultsViewOverlayView.h>\n#import <Automator/AMServicePluginHeaderViewController.h>\n#import <Automator/_AMVariablePopUpButton.h>\n#import <Automator/_AMVariablePopUpButtonCell.h>\n#import <Automator/_AMGetSetVariablePopUpButton.h>\n#import <Automator/AMProxyAction.h>\n#import <Automator/AMAppDefinitionProxyAction.h>\n#import <Automator/AMDictationCommandWorkflowPersonality.h>\n#import <Automator/AMDictationCommandWorkflowMetaData.h>\n#import <Automator/AMFFeedMetadata.h>\n#import <Automator/AMRunActionOperation.h>\n#import <Automator/AMRunActionAsyncOperation.h>\n#import <Automator/_AMAddressBookItemsRowTemplateFactory.h>\n#import <Automator/_AMAddressBookUtilities.h>\n#import <Automator/_AMDateRelativeToCalendarUnitsRowTemplate.h>\n#import <Automator/AMFFeedController.h>\n#import <Automator/_AMDaysRelativeToCalendarUnitsRowTemplate.h>\n#import <Automator/_AMDaysRelativeToSpecificDateRowTemplate.h>\n#import <Automator/_AMFileSizeRowTemplate.h>\n#import <Automator/_AMiTunesItemsRowTemplateFactory.h>\n#import <Automator/_AMMailItemsRowTemplateFactory.h>\n#import <Automator/_AMPredicateEditorAction.h>\n#import <Automator/_AMRatingRowTemplate.h>\n#import <Automator/_AMRowTemplateFactory.h>\n#import <Automator/_AMSpecificDateRangeRowTemplate.h>\n#import <Automator/AMModernApplicationStubApplication.h>\n#import <Automator/AMModernApplicationStubDelegate.h>\n#import <Automator/_AMSpecificYearRowTemplate.h>\n#import <Automator/_AMTimeIntervalRowTemplate.h>\n#import <Automator/AMLibraryViewController.h>\n#import <Automator/AMLibraryOutlineView.h>\n#import <Automator/AMLibraryTableView.h>\n#import <Automator/_AMiPhotoItemsRowTemplateFactory.h>\n#import <Automator/_AMSuffixLabeledRowTemplate.h>\n#import <Automator/_AMPrefixLabeledRowTemplate.h>\n#import <Automator/_AMPredicateUtilities.h>\n#import <Automator/_AMiCalItemsRowTemplateFactory.h>\n#import <Automator/AMFFeedElement.h>\n#import <Automator/_AMFinderItemsRowTemplateFactory.h>\n#import <Automator/_AMFileLabelRowTemplate.h>\n#import <Automator/AMDelayedUpdaterInfo.h>\n#import <Automator/AMDelayedUpdateManager.h>\n#import <Automator/AMResultsItem.h>\n#import <Automator/AMFFeedContent.h>\n#import <Automator/AMScriptingBridgeAppRegistry.h>\n#import <Automator/AMDescriptionViewItem.h>\n#import <Automator/AMDescriptionLineItemView.h>\n#import <Automator/AMDescriptionViewController.h>\n#import <Automator/_AMMessageTracerUtilities.h>\n#import <Automator/_AMiDVDItem.h>\n#import <Automator/_AMiDVDApplication.h>\n#import <Automator/_AMiDVDColor.h>\n#import <Automator/_AMiDVDDocument.h>\n#import <Automator/_AMiDVDWindow.h>\n#import <Automator/_AMiDVDAttributeRun.h>\n#import <Automator/_AMiDVDCharacter.h>\n#import <Automator/_AMiDVDParagraph.h>\n#import <Automator/_AMiDVDText.h>\n#import <Automator/_AMiDVDAttachment.h>\n#import <Automator/_AMiDVDWord.h>\n#import <Automator/_AMiDVDApplicationTheme.h>\n#import <Automator/_AMiDVDButton.h>\n#import <Automator/_AMiDVDDropzone.h>\n#import <Automator/_AMiDVDImage.h>\n#import <Automator/_AMiDVDMenu.h>\n#import <Automator/_AMiDVDMovie.h>\n#import <Automator/_AMiDVDProject.h>\n#import <Automator/_AMiDVDSlideshow.h>\n#import <Automator/_AMiDVDTextObject.h>\n#import <Automator/_AMiDVDPrintSettings.h>\n#import <Automator/AMWorkflowHeaderView.h>\n#import <Automator/AMHeaderViewController.h>\n#import <Automator/AMWorkflowPersonality.h>\n#import <Automator/AMWorkflowUnknownPersonality.h>\n#import <Automator/AMGeneralWorkflowPersonality.h>\n#import <Automator/AMApplicationWorkflowPersonality.h>\n#import <Automator/AMWorkflowMetaData.h>\n#import <Automator/AMRemoveQuarantineRecoveryAttempter.h>\n#import <Automator/_AMPredicateEditor.h>\n#import <Automator/AMApplicationPickerPopUpButton.h>\n#import <Automator/_AMBoolRowTemplate.h>\n#import <Automator/AMOpenAutomatorRecoveryAttempter.h>\n#import <Automator/_AMSBApplicationDelegate.h>\n#import <Automator/_AMSBRetainingApplicationDelegate.h>\n#import <Automator/AMScriptingBridgeConversionAction.h>\n#import <Automator/AMSBObjectToSBObjectConversionAction.h>\n#import <Automator/AMAliasToSBObjectConversionAction.h>\n#import <Automator/AMSBObjectToAliasConversionAction.h>\n#import <Automator/AMType.h>\n#import <Automator/AMTypeRegistry.h>\n#import <Automator/AMTextDetector.h>\n#import <Automator/_AMiCalPredicateEditorAction.h>\n#import <Automator/AMICalPluginWorkflowPersonality.h>\n#import <Automator/AMScriptMenuWorkflowPersonality.h>\n#import <Automator/AMPrintWorkflowPersonality.h>\n#import <Automator/AMImageCaptureWorkflowPersonality.h>\n#import <Automator/AMRemoteRunnerXPCDelegate.h>\n#import <Automator/_AMKeynote5Item.h>\n#import <Automator/_AMKeynote5Application.h>\n#import <Automator/_AMKeynote5Color.h>\n#import <Automator/_AMKeynote5Slideshow.h>\n#import <Automator/_AMKeynote5Window.h>\n#import <Automator/_AMKeynote5AttributeRun.h>\n#import <Automator/_AMKeynote5Character.h>\n#import <Automator/_AMKeynote5Paragraph.h>\n#import <Automator/_AMKeynote5Text.h>\n#import <Automator/_AMKeynote5Attachment.h>\n#import <Automator/_AMKeynote5Word.h>\n#import <Automator/_AMKeynote5AppTheme.h>\n#import <Automator/_AMKeynote5AppTransition.h>\n#import <Automator/_AMKeynote5DocTheme.h>\n#import <Automator/_AMKeynote5MasterSlide.h>\n#import <Automator/_AMKeynote5Slide.h>\n#import <Automator/_AMKeynote5SlideTransition.h>\n#import <Automator/_AMKeynote5PrintSettings.h>\n#import <Automator/AMInputOuptutPluginHeaderViewController.h>\n#import <Automator/AMServiceWorkflowPersonality.h>\n#import <Automator/AMServiceWorkflowMetaData.h>\n#import <Automator/AMPluginHeaderViewController.h>\n#import <Automator/AMSimpleStringPluginHeaderViewController.h>\n#import <Automator/AMFolderActionWorkflowPersonality.h>\n#import <Automator/AMFolderActionWorkflowMetaData.h>\n#import <Automator/AMGenericActionLoader.h>\n#import <Automator/AMCache.h>\n#import <Automator/AMCacheLocationEntry.h>\n#import <Automator/AMValidatedCacheLocationEntry.h>\n#import <Automator/AMDiskBasedCacheLocationEntry.h>\n#import <Automator/AMActionRegistry.h>\n#import <Automator/_AMiTunes8PrintSettings.h>\n#import <Automator/_AMiTunes8Application.h>\n#import <Automator/_AMiTunes8Item.h>\n#import <Automator/_AMiTunes8Artwork.h>\n#import <Automator/_AMiTunes8Encoder.h>\n#import <Automator/_AMiTunes8EQPreset.h>\n#import <Automator/_AMiTunes8Playlist.h>\n#import <Automator/_AMiTunes8AudioCDPlaylist.h>\n#import <Automator/_AMiTunes8DevicePlaylist.h>\n#import <Automator/_AMiTunes8LibraryPlaylist.h>\n#import <Automator/_AMiTunes8RadioTunerPlaylist.h>\n#import <Automator/_AMiTunes8Source.h>\n#import <Automator/_AMiTunes8Track.h>\n#import <Automator/_AMiTunes8AudioCDTrack.h>\n#import <Automator/_AMiTunes8DeviceTrack.h>\n#import <Automator/_AMiTunes8FileTrack.h>\n#import <Automator/_AMiTunes8SharedTrack.h>\n#import <Automator/_AMiTunes8URLTrack.h>\n#import <Automator/_AMiTunes8UserPlaylist.h>\n#import <Automator/_AMiTunes8FolderPlaylist.h>\n#import <Automator/_AMiTunes8Visual.h>\n#import <Automator/_AMiTunes8Window.h>\n#import <Automator/_AMiTunes8BrowserWindow.h>\n#import <Automator/_AMiTunes8EQWindow.h>\n#import <Automator/_AMiTunes8PlaylistWindow.h>\n#import <Automator/AMXPCToken.h>\n#import <Automator/AMUnknownXPCToken.h>\n#import <Automator/AMActionInWorkflowXPCToken.h>\n#import <Automator/AMActionPropertyListXPCToken.h>\n#import <Automator/AMEventKitCalendarItemXPCToken.h>\n#import <Automator/AMEventKitCalendarXPCToken.h>\n#import <Automator/AMWebArchiveXPCToken.h>\n#import <Automator/AMAppleScriptKitSoftLinking.h>\n#import <Automator/AMDotMacSyncSoftLinking.h>\n#import <Automator/AMEventKitSoftLinking.h>\n#import <Automator/AMAddressBookSoftLinking.h>\n#import <Automator/AMILMediaBrowserSoftLinking.h>\n#import <Automator/AMWebKitSoftLinking.h>\n#import <Automator/AMDictationServicesSoftLinking.h>\n#import <Automator/AMFolderActionsKitSoftLinking.h>\n#import <Automator/AMWorkflowServiceRunner.h>\n#import <Automator/AMConvertEventKitObject.h>\n#import <Automator/AMConvertiCalItemObjectToEventKitItem.h>\n#import <Automator/AMConvertiCalEventObjectToEventKitEvent.h>\n#import <Automator/AMConvertiCalToDoObjectToEventKitReminder.h>\n#import <Automator/AMConvertiCalCalendarObjectToEventKitCalendar.h>\n#import <Automator/AMConvertEventKitObjectToiCalObject.h>\n#import <Automator/AMConvertEventKitItemToEventKitCalendar.h>\n#import <Automator/AMConvertEventKitItemToEventKitEvent.h>\n#import <Automator/AMConvertEventKitItemToiCalItemObject.h>\n#import <Automator/AMConvertEventKitEventToiCalEventObject.h>\n#import <Automator/AMConvertEventKitReminderToiCalToDoObject.h>\n#import <Automator/AMConvertEventKitCalendarToiCalCalendarObject.h>\n#import <Automator/AMConvertEventKitCalendarToEventKitEvent.h>\n#import <Automator/AMConvertEventKitCalendarToEventKitReminder.h>\n\nvoid* AMApplicationStubMain(void);\nvoid* AMErrorWithInfo(void);\nvoid* AMErrorWithMessage(void);\nvoid* AMLocalizedStringWithTemplate(void);\nvoid* AMPathFromAliasDescriptor(void);\nvoid* AMPlainTextFromAttributedString(void);\nvoid* AMRectFromPoints(void);\nvoid* AMRoundedRectPath(void);\nvoid* AMRunActionPanel(void);\nvoid* AMSBObjectFromObjectDescriptor(void);\nvoid* AMSecAssessIsURLSignedByApple(void);\nvoid* AMStringObjectWithArray(void);\nvoid* AM_ActiveProc(void);\nvoid* AM_FilterProc(void);\nvoid* AM_IdleProc(void);\nvoid* AM_SendProc(void);\nvoid* AutomatorSecurityHelperHostInterface(void);\nvoid* AutomatorSecurityHelperServiceInterface(void);\nvoid* _AMAllowDeprecatedActions(void);\nvoid* _AMAuditTokenForCurrentProcess(void);\nvoid* _AMAutomatorApplicationStubBundle(void);\nvoid* _AMAutomatorFrameworkBundle(void);\nvoid* _AMAutomatorFrameworkColor(void);\nvoid* _AMAutomatorFrameworkString(void);\nvoid* _AMBoolForSetting(void);\nvoid* _AMBundleIsLinkedOnMacOS10_14_Or_Later(void);\nvoid* _AMDateByAddingDays(void);\nvoid* _AMDateByAddingYears(void);\nvoid* _AMDateThisYear(void);\nvoid* _AMDebugDirectoryPath(void);\nvoid* _AMDisableTemplateChooser(void);\nvoid* _AMDisplayProgressInMenuBar(void);\nvoid* _AMIgnoreApplicationActions(void);\nvoid* _AMIgnoreApplicationValidation(void);\nvoid* _AMIgnoreSystemActions(void);\nvoid* _AMIsAppleInternal(void);\nvoid* _AMLauncherDebugPath(void);\nvoid* _AMLoadOnlyActionsFromOtherTeams(void);\nvoid* _AMLogConversionPaths(void);\nvoid* _AMMidnightFollowingDate(void);\nvoid* _AMMidnightOfDate(void);\nvoid* _AMRunAppleScriptsOnMainThreadOnly(void);\nvoid* _AMRunLocally(void);\nvoid* _AMRunningInAutomatorApp(void);\nvoid* _AMStopBeforeStartingPoints(void);\nvoid* _AMThirdPartyActionsAllowed(void);\nvoid* _AMTransferEnvironmentVariablesToXPCService(void);\nvoid* _AMUIntegerForSetting(void);\nvoid* _AMURLToAutomatorApp(void);\nvoid* _am_EKCalendarItem_convertForSendingOverXPCWithWorkflow(void);\nvoid* _am_EKCalendar_convertForSendingOverXPCWithWorkflow(void);\nvoid* _am_WebArchive_convertForSendingOverXPCWithWorkflow(void);\nvoid* am_CGFloatAlmostEqual(void);\nvoid* am_DoubleAlmostEqual(void);\nvoid* am_FloatAlmostEqual(void);\nvoid* mt_log_automation_app_launched(void);\nvoid* mt_log_automation_applet_launched(void);\nvoid* workflow_service_runner_peer_handler(void);\nvoid* workflow_service_runner_xpc_main(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AutomatorSecurityHelperHostViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface AutomatorSecurityHelperHostViewController : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/AutomatorSecurityHelperServiceViewController.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol AutomatorSecurityHelperServiceViewController\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/EditorWindowCloseAnimation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface EditorWindowCloseAnimation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/EditorWindowOpenAnimation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface EditorWindowOpenAnimation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/EditorWindowRelocateAnimation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface EditorWindowRelocateAnimation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSAnimationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSAnimationDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSApplicationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSApplicationDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSControlTextEditingDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSControlTextEditingDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSDraggingSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSDraggingSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSOpenSavePanelDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSOpenSavePanelDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSPrivateAutomatorFrameworkClassForFindingBundle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface NSPrivateAutomatorFrameworkClassForFindingBundle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSProgressReporting.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSProgressReporting\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSServicesMonitorObserver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSServicesMonitorObserver\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSSplitViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSSplitViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSTextFieldDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTextFieldDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSTokenFieldDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTokenFieldDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSTouchBarDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTouchBarDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSWindowDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSWindowDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSXMLParserDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSXMLParserDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/NSXPCConnectionDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSXPCConnectionDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/SBApplicationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol SBApplicationDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/WebFrameLoadDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol WebFrameLoadDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMActionAuxiliary.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMActionAuxiliary : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookAIMHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookAIMHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookAddress.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookAddress : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookContactInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookContactInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookCustomDate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookCustomDate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookDocument.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookDocument : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookEmail.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookEmail : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookEntry.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookEntry : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookICQHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookICQHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookItemsRowTemplateFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookItemsRowTemplateFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookJabberHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookJabberHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookMSNHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookMSNHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookPerson.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookPerson : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookPhone.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookPhone : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookRelatedName.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookRelatedName : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookUrl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookUrl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookUtilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookUtilities : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMAddressBookYahooHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMAddressBookYahooHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMBoolRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMBoolRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMDateRelativeToCalendarUnitsRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMDateRelativeToCalendarUnitsRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMDaysRelativeToCalendarUnitsRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMDaysRelativeToCalendarUnitsRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMDaysRelativeToSpecificDateRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMDaysRelativeToSpecificDateRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFileLabelRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFileLabelRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFileSizeRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFileSizeRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderAliasFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderAliasFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderAliasList.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderAliasList : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderApplicationFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderApplicationFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderApplicationProcess.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderApplicationProcess : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderClipping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderClipping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderClippingWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderClippingWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderColumn.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderColumn : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderColumnViewOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderColumnViewOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderComputerObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderComputerObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderContainer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderContainer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderDeskAccessoryProcess.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderDeskAccessoryProcess : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderDesktopObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderDesktopObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderDesktopWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderDesktopWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderDisk.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderDisk : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderDocumentFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderDocumentFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderFinderWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderFinderWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderFolder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderFolder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderIconFamily.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderIconFamily : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderIconViewOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderIconViewOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderInformationWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderInformationWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderInternetLocationFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderInternetLocationFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderItemsRowTemplateFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderItemsRowTemplateFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderLabel.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderLabel : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderListViewOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderListViewOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderPackage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderPackage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderPreferences.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderPreferences : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderPreferencesWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderPreferencesWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderProcess.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderProcess : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderTrashObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderTrashObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMFinderWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMFinderWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMGetSetVariablePopUpButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMGetSetVariablePopUpButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5AppTheme.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5AppTheme : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5AppTransition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5AppTransition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Application.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Application : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Attachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Attachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5AttributeRun.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5AttributeRun : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Character.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Character : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Color.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Color : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5DocTheme.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5DocTheme : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Item.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Item : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5MasterSlide.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5MasterSlide : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Paragraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Paragraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5PrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5PrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Slide.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Slide : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5SlideTransition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5SlideTransition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Slideshow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Slideshow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Text.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Text : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Window.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Window : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMKeynote5Word.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMKeynote5Word : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailAccount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailAccount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailAttachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailAttachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailAttributeRun.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailAttributeRun : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailBccRecipient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailBccRecipient : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailCcRecipient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailCcRecipient : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailCharacter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailCharacter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailContainer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailContainer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailDocument.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailDocument : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailHeader.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailHeader : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailImapAccount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailImapAccount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailItemsRowTemplateFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailItemsRowTemplateFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailLdapServer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailLdapServer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailMailAttachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailMailAttachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailMailbox.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailMailbox : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailMessageViewer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailMessageViewer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailMobileMeAccount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailMobileMeAccount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailOLDMessageEditor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailOLDMessageEditor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailOutgoingMessage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailOutgoingMessage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailParagraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailParagraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailPopAccount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailPopAccount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailRecipient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailRecipient : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailRichText.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailRichText : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailRule.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailRule : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailRuleCondition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailRuleCondition : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailSignature.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailSignature : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailSmtpServer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailSmtpServer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailToRecipient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailToRecipient : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMailWord.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMailWord : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMMessageTracerUtilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMMessageTracerUtilities : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMPredicateEditor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMPredicateEditor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMPredicateEditorAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMPredicateEditorAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMPredicateUtilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMPredicateUtilities : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMPrefixLabeledRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMPrefixLabeledRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMRatingRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMRatingRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMRowTemplateFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMRowTemplateFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSBApplicationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSBApplicationDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSBRetainingApplicationDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSBRetainingApplicationDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariAttachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariAttachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariAttributeRun.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariAttributeRun : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariCharacter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariCharacter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariColor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariColor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariDocument.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariDocument : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariParagraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariParagraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariPrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariPrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariTab.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariTab : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariText.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariText : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSafariWord.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSafariWord : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSpecificDateRangeRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSpecificDateRangeRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSpecificYearRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSpecificYearRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSuffixLabeledRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSuffixLabeledRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsAlias.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsAlias : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsAnnotation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsAnnotation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsAppearancePreferencesObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsAppearancePreferencesObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsApplicationProcess.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsApplicationProcess : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsAttribute.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsAttribute : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsAudioData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsAudioData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsAudioFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsAudioFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsBrowser.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsBrowser : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsBusyIndicator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsBusyIndicator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsCDAndDVDPreferencesObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsCDAndDVDPreferencesObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsCheckbox.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsCheckbox : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsClassicDomainObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsClassicDomainObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsColorWell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsColorWell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsColumn.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsColumn : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsComboBox.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsComboBox : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsDeskAccessoryProcess.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsDeskAccessoryProcess : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsDesktop.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsDesktop : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsDisk.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsDisk : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsDiskItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsDiskItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsDockPreferencesObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsDockPreferencesObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsDocument.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsDocument : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsDomain.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsDomain : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsDrawer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsDrawer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsFilePackage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsFilePackage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsFolder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsFolder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsFolderAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsFolderAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsGenericMethods.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol _AMSystemEventsGenericMethods\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsGrowArea.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsGrowArea : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsImage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsImage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsIncrementor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsIncrementor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsInsertionPreference.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsInsertionPreference : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsInterface.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsInterface : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsList.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsList : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsLocalDomainObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsLocalDomainObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsLocation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsLocation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsLoginItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsLoginItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsMenu.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsMenu : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsMenuBar.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsMenuBar : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsMenuBarItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsMenuBarItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsMenuButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsMenuButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsMenuItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsMenuItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsMovieData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsMovieData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsMovieFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsMovieFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsNetworkDomainObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsNetworkDomainObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsNetworkPreferencesObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsNetworkPreferencesObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsOutline.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsOutline : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsPopOver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsPopOver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsPopUpButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsPopUpButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsPrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsPrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsProcess.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsProcess : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsProgressIndicator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsProgressIndicator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsPropertyListFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsPropertyListFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsPropertyListItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsPropertyListItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsQuickTimeData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsQuickTimeData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsQuickTimeFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsQuickTimeFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsRadioButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsRadioButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsRadioGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsRadioGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsRelevanceIndicator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsRelevanceIndicator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsRow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsRow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScreenSaver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScreenSaver : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScreenSaverPreferencesObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScreenSaverPreferencesObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScript.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScript : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingClass.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingClass : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingCommand.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingCommand : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingDefinitionObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingDefinitionObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingElement : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingEnumeration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingEnumeration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingEnumerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingEnumerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingParameter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingParameter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingResultObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingResultObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScriptingSuite.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScriptingSuite : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScrollArea.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScrollArea : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsScrollBar.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsScrollBar : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsSecurityPreferencesObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsSecurityPreferencesObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsService.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsService : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsSheet.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsSheet : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsSlider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsSlider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsSplitter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsSplitter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsSplitterGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsSplitterGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsStaticText.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsStaticText : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsSystemDomainObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsSystemDomainObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsTabGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsTabGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsTable.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsTable : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsTextArea.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsTextArea : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsTextField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsTextField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsToolbar.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsToolbar : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsUIElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsUIElement : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsUser.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsUser : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsUserDomainObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsUserDomainObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsValueIndicator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsValueIndicator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsXMLAttribute.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsXMLAttribute : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsXMLData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsXMLData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsXMLElement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsXMLElement : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMSystemEventsXMLFile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMSystemEventsXMLFile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditAttachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditAttachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditAttributeRun.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditAttributeRun : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditCharacter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditCharacter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditColor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditColor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditDocument.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditDocument : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditParagraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditParagraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditPrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditPrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditText.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditText : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTextEditWord.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTextEditWord : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMTimeIntervalRowTemplate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMTimeIntervalRowTemplate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMVariablePopUpButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMVariablePopUpButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMVariablePopUpButtonCell.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMVariablePopUpButtonCell : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMVariablePopUpButtonTokenField.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMVariablePopUpButtonTokenField : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalAttachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalAttachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalAttendee.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalAttendee : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalAttributeRun.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalAttributeRun : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalCalendar.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalCalendar : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalCharacter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalCharacter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalColor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalColor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalDisplayAlarm.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalDisplayAlarm : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalDocument.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalDocument : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalEvent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalEvent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalItemsRowTemplateFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalItemsRowTemplateFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalMailAlarm.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalMailAlarm : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalOpenFileAlarm.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalOpenFileAlarm : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalParagraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalParagraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalPredicateEditorAction.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalPredicateEditorAction : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalSoundAlarm.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalSoundAlarm : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalText.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalText : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalTodo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalTodo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiCalWord.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiCalWord : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDApplication.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDApplication : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDApplicationTheme.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDApplicationTheme : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDAttachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDAttachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDAttributeRun.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDAttributeRun : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDButton.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDButton : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDCharacter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDCharacter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDColor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDColor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDDocument.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDDocument : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDDropzone.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDDropzone : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDImage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDImage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDMenu.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDMenu : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDMovie.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDMovie : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDParagraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDParagraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDPrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDPrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDProject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDProject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDSlideshow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDSlideshow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDText.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDText : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDTextObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDTextObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiDVDWord.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiDVDWord : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Album.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Album : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Application.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Application : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Attachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Attachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5AttributeRun.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5AttributeRun : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Character.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Character : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Color.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Color : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Document.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Document : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Item.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Item : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Keyword.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Keyword : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Paragraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Paragraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Photo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Photo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5PrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5PrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Text.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Text : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Window.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Window : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto5Word.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto5Word : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Album.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Album : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Application.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Application : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Attachment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Attachment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6AttributeRun.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6AttributeRun : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Character.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Character : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Color.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Color : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Document.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Document : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Item.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Item : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Keyword.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Keyword : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Paragraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Paragraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Photo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Photo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6PrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6PrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Text.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Text : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Window.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Window : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhoto6Word.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhoto6Word : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiPhotoItemsRowTemplateFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiPhotoItemsRowTemplateFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Application.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Application : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Artwork.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Artwork : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7AudioCDPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7AudioCDPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7AudioCDTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7AudioCDTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7BrowserWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7BrowserWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7DevicePlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7DevicePlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7DeviceTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7DeviceTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7EQPreset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7EQPreset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7EQWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7EQWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Encoder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Encoder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7FileTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7FileTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7FolderPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7FolderPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Item.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Item : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7LibraryPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7LibraryPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Playlist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Playlist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7PlaylistWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7PlaylistWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7PrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7PrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7RadioTunerPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7RadioTunerPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7SharedTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7SharedTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Source.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Source : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Track.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Track : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7URLTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7URLTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7UserPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7UserPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Visual.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Visual : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes7Window.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes7Window : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Application.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Application : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Artwork.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Artwork : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8AudioCDPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8AudioCDPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8AudioCDTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8AudioCDTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8BrowserWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8BrowserWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8DevicePlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8DevicePlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8DeviceTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8DeviceTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8EQPreset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8EQPreset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8EQWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8EQWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Encoder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Encoder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8FileTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8FileTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8FolderPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8FolderPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Item.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Item : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8LibraryPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8LibraryPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Playlist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Playlist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8PlaylistWindow.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8PlaylistWindow : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8PrintSettings.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8PrintSettings : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8RadioTunerPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8RadioTunerPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8SharedTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8SharedTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Source.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Source : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Track.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Track : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8URLTrack.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8URLTrack : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8UserPlaylist.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8UserPlaylist : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Visual.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Visual : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunes8Window.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunes8Window : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/include/Automator/_AMiTunesItemsRowTemplateFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _AMiTunesItemsRowTemplateFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMAction.h>\n\n@implementation AMAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionAnyOfCollectionRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionAnyOfCollectionRowTemplate.h>\n\n@implementation AMActionAnyOfCollectionRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionCompletionResults.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionCompletionResults.h>\n\n@implementation AMActionCompletionResults\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionConnector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionConnector.h>\n\n@implementation AMActionConnector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionDateAddedRelativeRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionDateAddedRelativeRowTemplate.h>\n\n@implementation AMActionDateAddedRelativeRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionDateAddedSpecificRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionDateAddedSpecificRowTemplate.h>\n\n@implementation AMActionDateAddedSpecificRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionDateAddedWithinLastRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionDateAddedWithinLastRowTemplate.h>\n\n@implementation AMActionDateAddedWithinLastRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionInWorkflowXPCToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionInWorkflowXPCToken.h>\n\n@implementation AMActionInWorkflowXPCToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionInstallerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionInstallerController.h>\n\n@implementation AMActionInstallerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionLoader.h>\n\n@implementation AMActionLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionMetadataStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionMetadataStore.h>\n\n@implementation AMActionMetadataStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionPanelActionView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionPanelActionView.h>\n\n@implementation AMActionPanelActionView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionPanelController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionPanelController.h>\n\n@implementation AMActionPanelController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionPropertyListXPCToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionPropertyListXPCToken.h>\n\n@implementation AMActionPropertyListXPCToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionRegistry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionRegistry.h>\n\n@implementation AMActionRegistry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionRelevanceRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionRelevanceRowTemplate.h>\n\n@implementation AMActionRelevanceRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionSecAssess.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionSecAssess.h>\n\n@implementation AMActionSecAssess\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionShowWhenRunOverlayView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionShowWhenRunOverlayView.h>\n\n@implementation AMActionShowWhenRunOverlayView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionTextField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionTextField.h>\n\n@implementation AMActionTextField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionView.h>\n\n@implementation AMActionView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionViewController.h>\n\n@implementation AMActionViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActionsUserGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActionsUserGroup.h>\n\n@implementation AMActionsUserGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMActiveProc.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMActiveProc.h>\n\n@implementation AMActiveProc\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMAddressBookSoftLinking.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMAddressBookSoftLinking.h>\n\n@implementation AMAddressBookSoftLinking\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMAliasToSBObjectConversionAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMAliasToSBObjectConversionAction.h>\n\n@implementation AMAliasToSBObjectConversionAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMAppDefinitionProxyAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMAppDefinitionProxyAction.h>\n\n@implementation AMAppDefinitionProxyAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMAppleScriptAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMAppleScriptAction.h>\n\n@implementation AMAppleScriptAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMAppleScriptKitSoftLinking.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMAppleScriptKitSoftLinking.h>\n\n@implementation AMAppleScriptKitSoftLinking\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMApplicationDefinition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMApplicationDefinition.h>\n\n@implementation AMApplicationDefinition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMApplicationPickerPopUpButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMApplicationPickerPopUpButton.h>\n\n@implementation AMApplicationPickerPopUpButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMApplicationRegistry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMApplicationRegistry.h>\n\n@implementation AMApplicationRegistry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMApplicationStub.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMApplicationStub.h>\n\n@implementation AMApplicationStub\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMApplicationStubController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMApplicationStubController.h>\n\n@implementation AMApplicationStubController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMApplicationWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMApplicationWorkflowPersonality.h>\n\n@implementation AMApplicationWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMAutoConversionAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMAutoConversionAction.h>\n\n@implementation AMAutoConversionAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMBundleAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMBundleAction.h>\n\n@implementation AMBundleAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMCache.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMCache.h>\n\n@implementation AMCache\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMCacheLocationEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMCacheLocationEntry.h>\n\n@implementation AMCacheLocationEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConnectionPoint.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConnectionPoint.h>\n\n@implementation AMConnectionPoint\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConversion.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConversion.h>\n\n@implementation AMConversion\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAliasToPath.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAliasToPath.h>\n\n@implementation AMConvertAliasToPath\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAliasToString.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAliasToString.h>\n\n@implementation AMConvertAliasToString\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAliasToSubType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAliasToSubType.h>\n\n@implementation AMConvertAliasToSubType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAliasToURL.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAliasToURL.h>\n\n@implementation AMConvertAliasToURL\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAppleScriptObjectToAppleScriptDataObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAppleScriptObjectToAppleScriptDataObject.h>\n\n@implementation AMConvertAppleScriptObjectToAppleScriptDataObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAppleScriptObjectToAppleScriptTextObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAppleScriptObjectToAppleScriptTextObject.h>\n\n@implementation AMConvertAppleScriptObjectToAppleScriptTextObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAppleScriptObjectToString.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAppleScriptObjectToString.h>\n\n@implementation AMConvertAppleScriptObjectToString\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAppleScriptObjectToSubtype.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAppleScriptObjectToSubtype.h>\n\n@implementation AMConvertAppleScriptObjectToSubtype\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAppleScriptObjectToURL.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAppleScriptObjectToURL.h>\n\n@implementation AMConvertAppleScriptObjectToURL\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAppleScriptTextObjectToAlias.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAppleScriptTextObjectToAlias.h>\n\n@implementation AMConvertAppleScriptTextObjectToAlias\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAppleScriptTextObjectToAppleScriptURLObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAppleScriptTextObjectToAppleScriptURLObject.h>\n\n@implementation AMConvertAppleScriptTextObjectToAppleScriptURLObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAppleScriptURLToURL.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAppleScriptURLToURL.h>\n\n@implementation AMConvertAppleScriptURLToURL\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertAttributedStringToString.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertAttributedStringToString.h>\n\n@implementation AMConvertAttributedStringToString\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertCocoaStringToAppleScriptAliasObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertCocoaStringToAppleScriptAliasObject.h>\n\n@implementation AMConvertCocoaStringToAppleScriptAliasObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitCalendarToEventKitEvent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitCalendarToEventKitEvent.h>\n\n@implementation AMConvertEventKitCalendarToEventKitEvent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitCalendarToEventKitReminder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitCalendarToEventKitReminder.h>\n\n@implementation AMConvertEventKitCalendarToEventKitReminder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitCalendarToiCalCalendarObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitCalendarToiCalCalendarObject.h>\n\n@implementation AMConvertEventKitCalendarToiCalCalendarObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitEventToiCalEventObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitEventToiCalEventObject.h>\n\n@implementation AMConvertEventKitEventToiCalEventObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitItemToEventKitCalendar.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitItemToEventKitCalendar.h>\n\n@implementation AMConvertEventKitItemToEventKitCalendar\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitItemToEventKitEvent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitItemToEventKitEvent.h>\n\n@implementation AMConvertEventKitItemToEventKitEvent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitItemToiCalItemObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitItemToiCalItemObject.h>\n\n@implementation AMConvertEventKitItemToiCalItemObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitObject.h>\n\n@implementation AMConvertEventKitObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitObjectToiCalObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitObjectToiCalObject.h>\n\n@implementation AMConvertEventKitObjectToiCalObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertEventKitReminderToiCalToDoObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertEventKitReminderToiCalToDoObject.h>\n\n@implementation AMConvertEventKitReminderToiCalToDoObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertPathToAlias.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertPathToAlias.h>\n\n@implementation AMConvertPathToAlias\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertPathToAppleScriptTextObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertPathToAppleScriptTextObject.h>\n\n@implementation AMConvertPathToAppleScriptTextObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertPathToPublicItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertPathToPublicItem.h>\n\n@implementation AMConvertPathToPublicItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertPathTypeToSubType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertPathTypeToSubType.h>\n\n@implementation AMConvertPathTypeToSubType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertPublicItemToCocoaPath.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertPublicItemToCocoaPath.h>\n\n@implementation AMConvertPublicItemToCocoaPath\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertPublicItemToSpotlightItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertPublicItemToSpotlightItem.h>\n\n@implementation AMConvertPublicItemToSpotlightItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertStringToAppleScriptTextObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertStringToAppleScriptTextObject.h>\n\n@implementation AMConvertStringToAppleScriptTextObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertStringToAttributedString.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertStringToAttributedString.h>\n\n@implementation AMConvertStringToAttributedString\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertStringToPath.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertStringToPath.h>\n\n@implementation AMConvertStringToPath\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertStringToURL.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertStringToURL.h>\n\n@implementation AMConvertStringToURL\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertURLToAlias.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertURLToAlias.h>\n\n@implementation AMConvertURLToAlias\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertURLToAppleScriptTextObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertURLToAppleScriptTextObject.h>\n\n@implementation AMConvertURLToAppleScriptTextObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertURLToAppleScriptURL.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertURLToAppleScriptURL.h>\n\n@implementation AMConvertURLToAppleScriptURL\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertURLToPath.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertURLToPath.h>\n\n@implementation AMConvertURLToPath\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertURLToString.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertURLToString.h>\n\n@implementation AMConvertURLToString\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConverter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConverter.h>\n\n@implementation AMConverter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertiCalCalendarObjectToEventKitCalendar.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertiCalCalendarObjectToEventKitCalendar.h>\n\n@implementation AMConvertiCalCalendarObjectToEventKitCalendar\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertiCalEventObjectToEventKitEvent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertiCalEventObjectToEventKitEvent.h>\n\n@implementation AMConvertiCalEventObjectToEventKitEvent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertiCalItemObjectToEventKitItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertiCalItemObjectToEventKitItem.h>\n\n@implementation AMConvertiCalItemObjectToEventKitItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMConvertiCalToDoObjectToEventKitReminder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMConvertiCalToDoObjectToEventKitReminder.h>\n\n@implementation AMConvertiCalToDoObjectToEventKitReminder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDelayedUpdateManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDelayedUpdateManager.h>\n\n@implementation AMDelayedUpdateManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDelayedUpdaterInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDelayedUpdaterInfo.h>\n\n@implementation AMDelayedUpdaterInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDescriptionImageTextCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDescriptionImageTextCell.h>\n\n@implementation AMDescriptionImageTextCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDescriptionLineItemView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDescriptionLineItemView.h>\n\n@implementation AMDescriptionLineItemView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDescriptionViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDescriptionViewController.h>\n\n@implementation AMDescriptionViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDescriptionViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDescriptionViewItem.h>\n\n@implementation AMDescriptionViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDictationCommandWorkflowMetaData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDictationCommandWorkflowMetaData.h>\n\n@implementation AMDictationCommandWorkflowMetaData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDictationCommandWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDictationCommandWorkflowPersonality.h>\n\n@implementation AMDictationCommandWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDictationServicesSoftLinking.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDictationServicesSoftLinking.h>\n\n@implementation AMDictationServicesSoftLinking\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDiskBasedCacheLocationEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDiskBasedCacheLocationEntry.h>\n\n@implementation AMDiskBasedCacheLocationEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMDotMacSyncSoftLinking.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMDotMacSyncSoftLinking.h>\n\n@implementation AMDotMacSyncSoftLinking\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMEventKitCalendarItemXPCToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMEventKitCalendarItemXPCToken.h>\n\n@implementation AMEventKitCalendarItemXPCToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMEventKitCalendarXPCToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMEventKitCalendarXPCToken.h>\n\n@implementation AMEventKitCalendarXPCToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMEventKitSoftLinking.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMEventKitSoftLinking.h>\n\n@implementation AMEventKitSoftLinking\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFCompletionFeedParserDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFCompletionFeedParserDelegate.h>\n\n@implementation AMFCompletionFeedParserDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeed.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeed.h>\n\n@implementation AMFFeed\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedContent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedContent.h>\n\n@implementation AMFFeedContent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedController.h>\n\n@implementation AMFFeedController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedElement.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedElement.h>\n\n@implementation AMFFeedElement\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedEnclosure.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedEnclosure.h>\n\n@implementation AMFFeedEnclosure\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedEntry.h>\n\n@implementation AMFFeedEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedFinder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedFinder.h>\n\n@implementation AMFFeedFinder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedMetadata.h>\n\n@implementation AMFFeedMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedParser.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedParser.h>\n\n@implementation AMFFeedParser\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFFeedPerson.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFFeedPerson.h>\n\n@implementation AMFFeedPerson\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFilterItemsAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFilterItemsAction.h>\n\n@implementation AMFilterItemsAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFindItemsAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFindItemsAction.h>\n\n@implementation AMFindItemsAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFolderActionWorkflowMetaData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFolderActionWorkflowMetaData.h>\n\n@implementation AMFolderActionWorkflowMetaData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFolderActionWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFolderActionWorkflowPersonality.h>\n\n@implementation AMFolderActionWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMFolderActionsKitSoftLinking.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMFolderActionsKitSoftLinking.h>\n\n@implementation AMFolderActionsKitSoftLinking\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGeneralWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGeneralWorkflowPersonality.h>\n\n@implementation AMGeneralWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGenericAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGenericAction.h>\n\n@implementation AMGenericAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGenericActionLoader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGenericActionLoader.h>\n\n@implementation AMGenericActionLoader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGetItemsAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGetItemsAction.h>\n\n@implementation AMGetItemsAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGetItemsPanelController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGetItemsPanelController.h>\n\n@implementation AMGetItemsPanelController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGetItemsTableView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGetItemsTableView.h>\n\n@implementation AMGetItemsTableView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGlossyStatusView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGlossyStatusView.h>\n\n@implementation AMGlossyStatusView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGradientBackgroundView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGradientBackgroundView.h>\n\n@implementation AMGradientBackgroundView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGroup.h>\n\n@implementation AMGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMGroupBox.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMGroupBox.h>\n\n@implementation AMGroupBox\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMHeaderViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMHeaderViewController.h>\n\n@implementation AMHeaderViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMICalPluginWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMICalPluginWorkflowPersonality.h>\n\n@implementation AMICalPluginWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMILMediaBrowserSoftLinking.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMILMediaBrowserSoftLinking.h>\n\n@implementation AMILMediaBrowserSoftLinking\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMImageCaptureWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMImageCaptureWorkflowPersonality.h>\n\n@implementation AMImageCaptureWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMImageRegistry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMImageRegistry.h>\n\n@implementation AMImageRegistry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMImageTextCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMImageTextCell.h>\n\n@implementation AMImageTextCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMImageView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMImageView.h>\n\n@implementation AMImageView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMInputOuptutPluginHeaderViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMInputOuptutPluginHeaderViewController.h>\n\n@implementation AMInputOuptutPluginHeaderViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMInputOutputWorkflowMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMInputOutputWorkflowMetadata.h>\n\n@implementation AMInputOutputWorkflowMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMInputOutputWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMInputOutputWorkflowPersonality.h>\n\n@implementation AMInputOutputWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMLevelIndicator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMLevelIndicator.h>\n\n@implementation AMLevelIndicator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMLevelIndicatorCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMLevelIndicatorCell.h>\n\n@implementation AMLevelIndicatorCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMLibrary.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMLibrary.h>\n\n@implementation AMLibrary\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMLibraryOutlineView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMLibraryOutlineView.h>\n\n@implementation AMLibraryOutlineView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMLibraryTableView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMLibraryTableView.h>\n\n@implementation AMLibraryTableView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMLibraryViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMLibraryViewController.h>\n\n@implementation AMLibraryViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMLocalRunnerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMLocalRunnerController.h>\n\n@implementation AMLocalRunnerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMMediaPanel.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMMediaPanel.h>\n\n@implementation AMMediaPanel\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMModernApplicationStubApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMModernApplicationStubApplication.h>\n\n@implementation AMModernApplicationStubApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMModernApplicationStubDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMModernApplicationStubDelegate.h>\n\n@implementation AMModernApplicationStubDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMNewFindItemsAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMNewFindItemsAction.h>\n\n@implementation AMNewFindItemsAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMNibView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMNibView.h>\n\n@implementation AMNibView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMOpenAutomatorRecoveryAttempter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMOpenAutomatorRecoveryAttempter.h>\n\n@implementation AMOpenAutomatorRecoveryAttempter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMPathPopUpButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMPathPopUpButton.h>\n\n@implementation AMPathPopUpButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMPlaceholderAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMPlaceholderAction.h>\n\n@implementation AMPlaceholderAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMPluginHeaderViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMPluginHeaderViewController.h>\n\n@implementation AMPluginHeaderViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMPluginInstallerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMPluginInstallerController.h>\n\n@implementation AMPluginInstallerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMPopUpButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMPopUpButton.h>\n\n@implementation AMPopUpButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMPrintWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMPrintWorkflowPersonality.h>\n\n@implementation AMPrintWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMProxyAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMProxyAction.h>\n\n@implementation AMProxyAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMRelativeDateRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMRelativeDateRowTemplate.h>\n\n@implementation AMRelativeDateRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMRemoteRunnerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMRemoteRunnerController.h>\n\n@implementation AMRemoteRunnerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMRemoteRunnerXPCDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMRemoteRunnerXPCDelegate.h>\n\n@implementation AMRemoteRunnerXPCDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMRemoveQuarantineRecoveryAttempter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMRemoveQuarantineRecoveryAttempter.h>\n\n@implementation AMRemoveQuarantineRecoveryAttempter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMResultsItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMResultsItem.h>\n\n@implementation AMResultsItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMResultsTableView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMResultsTableView.h>\n\n@implementation AMResultsTableView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMResultsViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMResultsViewController.h>\n\n@implementation AMResultsViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMResultsViewOverlayView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMResultsViewOverlayView.h>\n\n@implementation AMResultsViewOverlayView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMRunActionAsyncOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMRunActionAsyncOperation.h>\n\n@implementation AMRunActionAsyncOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMRunActionOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMRunActionOperation.h>\n\n@implementation AMRunActionOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSBObjectToAliasConversionAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSBObjectToAliasConversionAction.h>\n\n@implementation AMSBObjectToAliasConversionAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSBObjectToSBObjectConversionAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSBObjectToSBObjectConversionAction.h>\n\n@implementation AMSBObjectToSBObjectConversionAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMScriptMenuWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMScriptMenuWorkflowPersonality.h>\n\n@implementation AMScriptMenuWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMScriptingBridgeAppRegistry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMScriptingBridgeAppRegistry.h>\n\n@implementation AMScriptingBridgeAppRegistry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMScriptingBridgeConversionAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMScriptingBridgeConversionAction.h>\n\n@implementation AMScriptingBridgeConversionAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSecurityHelperWindowController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSecurityHelperWindowController.h>\n\n@implementation AMSecurityHelperWindowController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSecurityHelperWindowControllerRecoveryAttempter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSecurityHelperWindowControllerRecoveryAttempter.h>\n\n@implementation AMSecurityHelperWindowControllerRecoveryAttempter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSendProc.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSendProc.h>\n\n@implementation AMSendProc\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMServicePluginHeaderViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMServicePluginHeaderViewController.h>\n\n@implementation AMServicePluginHeaderViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMServiceWorkflowMetaData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMServiceWorkflowMetaData.h>\n\n@implementation AMServiceWorkflowMetaData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMServiceWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMServiceWorkflowPersonality.h>\n\n@implementation AMServiceWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMServicesController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMServicesController.h>\n\n@implementation AMServicesController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMShellScriptAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMShellScriptAction.h>\n\n@implementation AMShellScriptAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMShowWhenRunController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMShowWhenRunController.h>\n\n@implementation AMShowWhenRunController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMShowWhenRunPanel.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMShowWhenRunPanel.h>\n\n@implementation AMShowWhenRunPanel\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSimpleStringPluginHeaderViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSimpleStringPluginHeaderViewController.h>\n\n@implementation AMSimpleStringPluginHeaderViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSmartGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSmartGroup.h>\n\n@implementation AMSmartGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSmartGroupsController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSmartGroupsController.h>\n\n@implementation AMSmartGroupsController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSmartGroupsPredicateViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSmartGroupsPredicateViewController.h>\n\n@implementation AMSmartGroupsPredicateViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSmartTokenAttachmentCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSmartTokenAttachmentCell.h>\n\n@implementation AMSmartTokenAttachmentCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSpecificDateRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSpecificDateRowTemplate.h>\n\n@implementation AMSpecificDateRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMSplitView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMSplitView.h>\n\n@implementation AMSplitView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMTemplateChooserItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMTemplateChooserItem.h>\n\n@implementation AMTemplateChooserItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMTextDetector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMTextDetector.h>\n\n@implementation AMTextDetector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMTextFieldCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMTextFieldCell.h>\n\n@implementation AMTextFieldCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMTokenAttachmentCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMTokenAttachmentCell.h>\n\n@implementation AMTokenAttachmentCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMTokenField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMTokenField.h>\n\n@implementation AMTokenField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMTokenFieldCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMTokenFieldCell.h>\n\n@implementation AMTokenFieldCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMType.h>\n\n@implementation AMType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMTypeRegistry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMTypeRegistry.h>\n\n@implementation AMTypeRegistry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMUnknownXPCToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMUnknownXPCToken.h>\n\n@implementation AMUnknownXPCToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMValidatedCacheLocationEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMValidatedCacheLocationEntry.h>\n\n@implementation AMValidatedCacheLocationEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariable.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariable.h>\n\n@implementation AMVariable\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariablesEditorController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariablesEditorController.h>\n\n@implementation AMVariablesEditorController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariablesEditorDateFormatDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariablesEditorDateFormatDelegate.h>\n\n@implementation AMVariablesEditorDateFormatDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariablesEditorEventDelegateWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariablesEditorEventDelegateWindow.h>\n\n@implementation AMVariablesEditorEventDelegateWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariablesEditorProxyController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariablesEditorProxyController.h>\n\n@implementation AMVariablesEditorProxyController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariablesEditorView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariablesEditorView.h>\n\n@implementation AMVariablesEditorView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariablesEditorWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariablesEditorWindow.h>\n\n@implementation AMVariablesEditorWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariablesRegistry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariablesRegistry.h>\n\n@implementation AMVariablesRegistry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMVariablesUserGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMVariablesUserGroup.h>\n\n@implementation AMVariablesUserGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMView.h>\n\n@implementation AMView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWebArchiveXPCToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWebArchiveXPCToken.h>\n\n@implementation AMWebArchiveXPCToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWebKitSoftLinking.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWebKitSoftLinking.h>\n\n@implementation AMWebKitSoftLinking\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWhoseListView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWhoseListView.h>\n\n@implementation AMWhoseListView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWhoseViewItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWhoseViewItem.h>\n\n@implementation AMWhoseViewItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWithinLastDateRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWithinLastDateRowTemplate.h>\n\n@implementation AMWithinLastDateRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflow.h>\n\n@implementation AMWorkflow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowCompletionResults.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowCompletionResults.h>\n\n@implementation AMWorkflowCompletionResults\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowController.h>\n\n@implementation AMWorkflowController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowHeaderView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowHeaderView.h>\n\n@implementation AMWorkflowHeaderView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowMetaData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowMetaData.h>\n\n@implementation AMWorkflowMetaData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowPersonality.h>\n\n@implementation AMWorkflowPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowPersonalityInstallerController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowPersonalityInstallerController.h>\n\n@implementation AMWorkflowPersonalityInstallerController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowRunner.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowRunner.h>\n\n@implementation AMWorkflowRunner\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowServiceRunner.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowServiceRunner.h>\n\n@implementation AMWorkflowServiceRunner\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowUnknownPersonality.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowUnknownPersonality.h>\n\n@implementation AMWorkflowUnknownPersonality\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkflowView.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkflowView.h>\n\n@implementation AMWorkflowView\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMWorkspace.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMWorkspace.h>\n\n@implementation AMWorkspace\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/AMXPCToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AMXPCToken.h>\n\n@implementation AMXPCToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/Automator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Automator/Automator.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* AMApplicationStubMain(void)\n{\n    if (verbose) puts(\"STUB: AMApplicationStubMain called\");\n    return NULL;\n}\n\nvoid* AMErrorWithInfo(void)\n{\n    if (verbose) puts(\"STUB: AMErrorWithInfo called\");\n    return NULL;\n}\n\nvoid* AMErrorWithMessage(void)\n{\n    if (verbose) puts(\"STUB: AMErrorWithMessage called\");\n    return NULL;\n}\n\nvoid* AMLocalizedStringWithTemplate(void)\n{\n    if (verbose) puts(\"STUB: AMLocalizedStringWithTemplate called\");\n    return NULL;\n}\n\nvoid* AMPathFromAliasDescriptor(void)\n{\n    if (verbose) puts(\"STUB: AMPathFromAliasDescriptor called\");\n    return NULL;\n}\n\nvoid* AMPlainTextFromAttributedString(void)\n{\n    if (verbose) puts(\"STUB: AMPlainTextFromAttributedString called\");\n    return NULL;\n}\n\nvoid* AMRectFromPoints(void)\n{\n    if (verbose) puts(\"STUB: AMRectFromPoints called\");\n    return NULL;\n}\n\nvoid* AMRoundedRectPath(void)\n{\n    if (verbose) puts(\"STUB: AMRoundedRectPath called\");\n    return NULL;\n}\n\nvoid* AMRunActionPanel(void)\n{\n    if (verbose) puts(\"STUB: AMRunActionPanel called\");\n    return NULL;\n}\n\nvoid* AMSBObjectFromObjectDescriptor(void)\n{\n    if (verbose) puts(\"STUB: AMSBObjectFromObjectDescriptor called\");\n    return NULL;\n}\n\nvoid* AMSecAssessIsURLSignedByApple(void)\n{\n    if (verbose) puts(\"STUB: AMSecAssessIsURLSignedByApple called\");\n    return NULL;\n}\n\nvoid* AMStringObjectWithArray(void)\n{\n    if (verbose) puts(\"STUB: AMStringObjectWithArray called\");\n    return NULL;\n}\n\nvoid* AM_ActiveProc(void)\n{\n    if (verbose) puts(\"STUB: AM_ActiveProc called\");\n    return NULL;\n}\n\nvoid* AM_FilterProc(void)\n{\n    if (verbose) puts(\"STUB: AM_FilterProc called\");\n    return NULL;\n}\n\nvoid* AM_IdleProc(void)\n{\n    if (verbose) puts(\"STUB: AM_IdleProc called\");\n    return NULL;\n}\n\nvoid* AM_SendProc(void)\n{\n    if (verbose) puts(\"STUB: AM_SendProc called\");\n    return NULL;\n}\n\nvoid* AutomatorSecurityHelperHostInterface(void)\n{\n    if (verbose) puts(\"STUB: AutomatorSecurityHelperHostInterface called\");\n    return NULL;\n}\n\nvoid* AutomatorSecurityHelperServiceInterface(void)\n{\n    if (verbose) puts(\"STUB: AutomatorSecurityHelperServiceInterface called\");\n    return NULL;\n}\n\nvoid* _AMAllowDeprecatedActions(void)\n{\n    if (verbose) puts(\"STUB: _AMAllowDeprecatedActions called\");\n    return NULL;\n}\n\nvoid* _AMAuditTokenForCurrentProcess(void)\n{\n    if (verbose) puts(\"STUB: _AMAuditTokenForCurrentProcess called\");\n    return NULL;\n}\n\nvoid* _AMAutomatorApplicationStubBundle(void)\n{\n    if (verbose) puts(\"STUB: _AMAutomatorApplicationStubBundle called\");\n    return NULL;\n}\n\nvoid* _AMAutomatorFrameworkBundle(void)\n{\n    if (verbose) puts(\"STUB: _AMAutomatorFrameworkBundle called\");\n    return NULL;\n}\n\nvoid* _AMAutomatorFrameworkColor(void)\n{\n    if (verbose) puts(\"STUB: _AMAutomatorFrameworkColor called\");\n    return NULL;\n}\n\nvoid* _AMAutomatorFrameworkString(void)\n{\n    if (verbose) puts(\"STUB: _AMAutomatorFrameworkString called\");\n    return NULL;\n}\n\nvoid* _AMBoolForSetting(void)\n{\n    if (verbose) puts(\"STUB: _AMBoolForSetting called\");\n    return NULL;\n}\n\nvoid* _AMBundleIsLinkedOnMacOS10_14_Or_Later(void)\n{\n    if (verbose) puts(\"STUB: _AMBundleIsLinkedOnMacOS10_14_Or_Later called\");\n    return NULL;\n}\n\nvoid* _AMDateByAddingDays(void)\n{\n    if (verbose) puts(\"STUB: _AMDateByAddingDays called\");\n    return NULL;\n}\n\nvoid* _AMDateByAddingYears(void)\n{\n    if (verbose) puts(\"STUB: _AMDateByAddingYears called\");\n    return NULL;\n}\n\nvoid* _AMDateThisYear(void)\n{\n    if (verbose) puts(\"STUB: _AMDateThisYear called\");\n    return NULL;\n}\n\nvoid* _AMDebugDirectoryPath(void)\n{\n    if (verbose) puts(\"STUB: _AMDebugDirectoryPath called\");\n    return NULL;\n}\n\nvoid* _AMDisableTemplateChooser(void)\n{\n    if (verbose) puts(\"STUB: _AMDisableTemplateChooser called\");\n    return NULL;\n}\n\nvoid* _AMDisplayProgressInMenuBar(void)\n{\n    if (verbose) puts(\"STUB: _AMDisplayProgressInMenuBar called\");\n    return NULL;\n}\n\nvoid* _AMIgnoreApplicationActions(void)\n{\n    if (verbose) puts(\"STUB: _AMIgnoreApplicationActions called\");\n    return NULL;\n}\n\nvoid* _AMIgnoreApplicationValidation(void)\n{\n    if (verbose) puts(\"STUB: _AMIgnoreApplicationValidation called\");\n    return NULL;\n}\n\nvoid* _AMIgnoreSystemActions(void)\n{\n    if (verbose) puts(\"STUB: _AMIgnoreSystemActions called\");\n    return NULL;\n}\n\nvoid* _AMIsAppleInternal(void)\n{\n    if (verbose) puts(\"STUB: _AMIsAppleInternal called\");\n    return NULL;\n}\n\nvoid* _AMLauncherDebugPath(void)\n{\n    if (verbose) puts(\"STUB: _AMLauncherDebugPath called\");\n    return NULL;\n}\n\nvoid* _AMLoadOnlyActionsFromOtherTeams(void)\n{\n    if (verbose) puts(\"STUB: _AMLoadOnlyActionsFromOtherTeams called\");\n    return NULL;\n}\n\nvoid* _AMLogConversionPaths(void)\n{\n    if (verbose) puts(\"STUB: _AMLogConversionPaths called\");\n    return NULL;\n}\n\nvoid* _AMMidnightFollowingDate(void)\n{\n    if (verbose) puts(\"STUB: _AMMidnightFollowingDate called\");\n    return NULL;\n}\n\nvoid* _AMMidnightOfDate(void)\n{\n    if (verbose) puts(\"STUB: _AMMidnightOfDate called\");\n    return NULL;\n}\n\nvoid* _AMRunAppleScriptsOnMainThreadOnly(void)\n{\n    if (verbose) puts(\"STUB: _AMRunAppleScriptsOnMainThreadOnly called\");\n    return NULL;\n}\n\nvoid* _AMRunLocally(void)\n{\n    if (verbose) puts(\"STUB: _AMRunLocally called\");\n    return NULL;\n}\n\nvoid* _AMRunningInAutomatorApp(void)\n{\n    if (verbose) puts(\"STUB: _AMRunningInAutomatorApp called\");\n    return NULL;\n}\n\nvoid* _AMStopBeforeStartingPoints(void)\n{\n    if (verbose) puts(\"STUB: _AMStopBeforeStartingPoints called\");\n    return NULL;\n}\n\nvoid* _AMThirdPartyActionsAllowed(void)\n{\n    if (verbose) puts(\"STUB: _AMThirdPartyActionsAllowed called\");\n    return NULL;\n}\n\nvoid* _AMTransferEnvironmentVariablesToXPCService(void)\n{\n    if (verbose) puts(\"STUB: _AMTransferEnvironmentVariablesToXPCService called\");\n    return NULL;\n}\n\nvoid* _AMUIntegerForSetting(void)\n{\n    if (verbose) puts(\"STUB: _AMUIntegerForSetting called\");\n    return NULL;\n}\n\nvoid* _AMURLToAutomatorApp(void)\n{\n    if (verbose) puts(\"STUB: _AMURLToAutomatorApp called\");\n    return NULL;\n}\n\nvoid* _am_EKCalendarItem_convertForSendingOverXPCWithWorkflow(void)\n{\n    if (verbose) puts(\"STUB: _am_EKCalendarItem_convertForSendingOverXPCWithWorkflow called\");\n    return NULL;\n}\n\nvoid* _am_EKCalendar_convertForSendingOverXPCWithWorkflow(void)\n{\n    if (verbose) puts(\"STUB: _am_EKCalendar_convertForSendingOverXPCWithWorkflow called\");\n    return NULL;\n}\n\nvoid* _am_WebArchive_convertForSendingOverXPCWithWorkflow(void)\n{\n    if (verbose) puts(\"STUB: _am_WebArchive_convertForSendingOverXPCWithWorkflow called\");\n    return NULL;\n}\n\nvoid* am_CGFloatAlmostEqual(void)\n{\n    if (verbose) puts(\"STUB: am_CGFloatAlmostEqual called\");\n    return NULL;\n}\n\nvoid* am_DoubleAlmostEqual(void)\n{\n    if (verbose) puts(\"STUB: am_DoubleAlmostEqual called\");\n    return NULL;\n}\n\nvoid* am_FloatAlmostEqual(void)\n{\n    if (verbose) puts(\"STUB: am_FloatAlmostEqual called\");\n    return NULL;\n}\n\nvoid* mt_log_automation_app_launched(void)\n{\n    if (verbose) puts(\"STUB: mt_log_automation_app_launched called\");\n    return NULL;\n}\n\nvoid* mt_log_automation_applet_launched(void)\n{\n    if (verbose) puts(\"STUB: mt_log_automation_applet_launched called\");\n    return NULL;\n}\n\nvoid* workflow_service_runner_peer_handler(void)\n{\n    if (verbose) puts(\"STUB: workflow_service_runner_peer_handler called\");\n    return NULL;\n}\n\nvoid* workflow_service_runner_xpc_main(void)\n{\n    if (verbose) puts(\"STUB: workflow_service_runner_xpc_main called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Automator/src/AutomatorSecurityHelperHostViewController.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/AutomatorSecurityHelperHostViewController.h>\n\n@implementation AutomatorSecurityHelperHostViewController\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/EditorWindowCloseAnimation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/EditorWindowCloseAnimation.h>\n\n@implementation EditorWindowCloseAnimation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/EditorWindowOpenAnimation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/EditorWindowOpenAnimation.h>\n\n@implementation EditorWindowOpenAnimation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/EditorWindowRelocateAnimation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/EditorWindowRelocateAnimation.h>\n\n@implementation EditorWindowRelocateAnimation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/NSPrivateAutomatorFrameworkClassForFindingBundle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/NSPrivateAutomatorFrameworkClassForFindingBundle.h>\n\n@implementation NSPrivateAutomatorFrameworkClassForFindingBundle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMActionAuxiliary.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMActionAuxiliary.h>\n\n@implementation _AMActionAuxiliary\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookAIMHandle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookAIMHandle.h>\n\n@implementation _AMAddressBookAIMHandle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookAddress.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookAddress.h>\n\n@implementation _AMAddressBookAddress\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookApplication.h>\n\n@implementation _AMAddressBookApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookContactInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookContactInfo.h>\n\n@implementation _AMAddressBookContactInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookCustomDate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookCustomDate.h>\n\n@implementation _AMAddressBookCustomDate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookDocument.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookDocument.h>\n\n@implementation _AMAddressBookDocument\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookEmail.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookEmail.h>\n\n@implementation _AMAddressBookEmail\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookEntry.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookEntry.h>\n\n@implementation _AMAddressBookEntry\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookGroup.h>\n\n@implementation _AMAddressBookGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookICQHandle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookICQHandle.h>\n\n@implementation _AMAddressBookICQHandle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookItemsRowTemplateFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookItemsRowTemplateFactory.h>\n\n@implementation _AMAddressBookItemsRowTemplateFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookJabberHandle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookJabberHandle.h>\n\n@implementation _AMAddressBookJabberHandle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookMSNHandle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookMSNHandle.h>\n\n@implementation _AMAddressBookMSNHandle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookPerson.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookPerson.h>\n\n@implementation _AMAddressBookPerson\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookPhone.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookPhone.h>\n\n@implementation _AMAddressBookPhone\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookRelatedName.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookRelatedName.h>\n\n@implementation _AMAddressBookRelatedName\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookUrl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookUrl.h>\n\n@implementation _AMAddressBookUrl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookUtilities.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookUtilities.h>\n\n@implementation _AMAddressBookUtilities\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookWindow.h>\n\n@implementation _AMAddressBookWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMAddressBookYahooHandle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMAddressBookYahooHandle.h>\n\n@implementation _AMAddressBookYahooHandle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMBoolRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMBoolRowTemplate.h>\n\n@implementation _AMBoolRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMDateRelativeToCalendarUnitsRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMDateRelativeToCalendarUnitsRowTemplate.h>\n\n@implementation _AMDateRelativeToCalendarUnitsRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMDaysRelativeToCalendarUnitsRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMDaysRelativeToCalendarUnitsRowTemplate.h>\n\n@implementation _AMDaysRelativeToCalendarUnitsRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMDaysRelativeToSpecificDateRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMDaysRelativeToSpecificDateRowTemplate.h>\n\n@implementation _AMDaysRelativeToSpecificDateRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFileLabelRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFileLabelRowTemplate.h>\n\n@implementation _AMFileLabelRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFileSizeRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFileSizeRowTemplate.h>\n\n@implementation _AMFileSizeRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderAliasFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderAliasFile.h>\n\n@implementation _AMFinderAliasFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderAliasList.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderAliasList.h>\n\n@implementation _AMFinderAliasList\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderApplication.h>\n\n@implementation _AMFinderApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderApplicationFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderApplicationFile.h>\n\n@implementation _AMFinderApplicationFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderApplicationProcess.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderApplicationProcess.h>\n\n@implementation _AMFinderApplicationProcess\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderClipping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderClipping.h>\n\n@implementation _AMFinderClipping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderClippingWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderClippingWindow.h>\n\n@implementation _AMFinderClippingWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderColumn.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderColumn.h>\n\n@implementation _AMFinderColumn\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderColumnViewOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderColumnViewOptions.h>\n\n@implementation _AMFinderColumnViewOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderComputerObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderComputerObject.h>\n\n@implementation _AMFinderComputerObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderContainer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderContainer.h>\n\n@implementation _AMFinderContainer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderDeskAccessoryProcess.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderDeskAccessoryProcess.h>\n\n@implementation _AMFinderDeskAccessoryProcess\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderDesktopObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderDesktopObject.h>\n\n@implementation _AMFinderDesktopObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderDesktopWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderDesktopWindow.h>\n\n@implementation _AMFinderDesktopWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderDisk.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderDisk.h>\n\n@implementation _AMFinderDisk\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderDocumentFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderDocumentFile.h>\n\n@implementation _AMFinderDocumentFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderFile.h>\n\n@implementation _AMFinderFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderFinderWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderFinderWindow.h>\n\n@implementation _AMFinderFinderWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderFolder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderFolder.h>\n\n@implementation _AMFinderFolder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderIconFamily.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderIconFamily.h>\n\n@implementation _AMFinderIconFamily\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderIconViewOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderIconViewOptions.h>\n\n@implementation _AMFinderIconViewOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderInformationWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderInformationWindow.h>\n\n@implementation _AMFinderInformationWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderInternetLocationFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderInternetLocationFile.h>\n\n@implementation _AMFinderInternetLocationFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderItem.h>\n\n@implementation _AMFinderItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderItemsRowTemplateFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderItemsRowTemplateFactory.h>\n\n@implementation _AMFinderItemsRowTemplateFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderLabel.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderLabel.h>\n\n@implementation _AMFinderLabel\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderListViewOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderListViewOptions.h>\n\n@implementation _AMFinderListViewOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderPackage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderPackage.h>\n\n@implementation _AMFinderPackage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderPreferences.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderPreferences.h>\n\n@implementation _AMFinderPreferences\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderPreferencesWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderPreferencesWindow.h>\n\n@implementation _AMFinderPreferencesWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderProcess.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderProcess.h>\n\n@implementation _AMFinderProcess\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderTrashObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderTrashObject.h>\n\n@implementation _AMFinderTrashObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMFinderWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMFinderWindow.h>\n\n@implementation _AMFinderWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMGetSetVariablePopUpButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMGetSetVariablePopUpButton.h>\n\n@implementation _AMGetSetVariablePopUpButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5AppTheme.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5AppTheme.h>\n\n@implementation _AMKeynote5AppTheme\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5AppTransition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5AppTransition.h>\n\n@implementation _AMKeynote5AppTransition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Application.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Application.h>\n\n@implementation _AMKeynote5Application\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Attachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Attachment.h>\n\n@implementation _AMKeynote5Attachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5AttributeRun.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5AttributeRun.h>\n\n@implementation _AMKeynote5AttributeRun\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Character.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Character.h>\n\n@implementation _AMKeynote5Character\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Color.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Color.h>\n\n@implementation _AMKeynote5Color\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5DocTheme.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5DocTheme.h>\n\n@implementation _AMKeynote5DocTheme\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Item.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Item.h>\n\n@implementation _AMKeynote5Item\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5MasterSlide.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5MasterSlide.h>\n\n@implementation _AMKeynote5MasterSlide\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Paragraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Paragraph.h>\n\n@implementation _AMKeynote5Paragraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5PrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5PrintSettings.h>\n\n@implementation _AMKeynote5PrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Slide.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Slide.h>\n\n@implementation _AMKeynote5Slide\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5SlideTransition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5SlideTransition.h>\n\n@implementation _AMKeynote5SlideTransition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Slideshow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Slideshow.h>\n\n@implementation _AMKeynote5Slideshow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Text.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Text.h>\n\n@implementation _AMKeynote5Text\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Window.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Window.h>\n\n@implementation _AMKeynote5Window\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMKeynote5Word.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMKeynote5Word.h>\n\n@implementation _AMKeynote5Word\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailAccount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailAccount.h>\n\n@implementation _AMMailAccount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailApplication.h>\n\n@implementation _AMMailApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailAttachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailAttachment.h>\n\n@implementation _AMMailAttachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailAttributeRun.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailAttributeRun.h>\n\n@implementation _AMMailAttributeRun\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailBccRecipient.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailBccRecipient.h>\n\n@implementation _AMMailBccRecipient\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailCcRecipient.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailCcRecipient.h>\n\n@implementation _AMMailCcRecipient\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailCharacter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailCharacter.h>\n\n@implementation _AMMailCharacter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailContainer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailContainer.h>\n\n@implementation _AMMailContainer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailDocument.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailDocument.h>\n\n@implementation _AMMailDocument\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailHeader.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailHeader.h>\n\n@implementation _AMMailHeader\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailImapAccount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailImapAccount.h>\n\n@implementation _AMMailImapAccount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailItemsRowTemplateFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailItemsRowTemplateFactory.h>\n\n@implementation _AMMailItemsRowTemplateFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailLdapServer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailLdapServer.h>\n\n@implementation _AMMailLdapServer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailMailAttachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailMailAttachment.h>\n\n@implementation _AMMailMailAttachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailMailbox.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailMailbox.h>\n\n@implementation _AMMailMailbox\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailMessage.h>\n\n@implementation _AMMailMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailMessageViewer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailMessageViewer.h>\n\n@implementation _AMMailMessageViewer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailMobileMeAccount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailMobileMeAccount.h>\n\n@implementation _AMMailMobileMeAccount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailOLDMessageEditor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailOLDMessageEditor.h>\n\n@implementation _AMMailOLDMessageEditor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailOutgoingMessage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailOutgoingMessage.h>\n\n@implementation _AMMailOutgoingMessage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailParagraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailParagraph.h>\n\n@implementation _AMMailParagraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailPopAccount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailPopAccount.h>\n\n@implementation _AMMailPopAccount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailRecipient.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailRecipient.h>\n\n@implementation _AMMailRecipient\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailRichText.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailRichText.h>\n\n@implementation _AMMailRichText\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailRule.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailRule.h>\n\n@implementation _AMMailRule\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailRuleCondition.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailRuleCondition.h>\n\n@implementation _AMMailRuleCondition\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailSignature.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailSignature.h>\n\n@implementation _AMMailSignature\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailSmtpServer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailSmtpServer.h>\n\n@implementation _AMMailSmtpServer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailToRecipient.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailToRecipient.h>\n\n@implementation _AMMailToRecipient\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailWindow.h>\n\n@implementation _AMMailWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMailWord.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMailWord.h>\n\n@implementation _AMMailWord\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMMessageTracerUtilities.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMMessageTracerUtilities.h>\n\n@implementation _AMMessageTracerUtilities\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMPredicateEditor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMPredicateEditor.h>\n\n@implementation _AMPredicateEditor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMPredicateEditorAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMPredicateEditorAction.h>\n\n@implementation _AMPredicateEditorAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMPredicateUtilities.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMPredicateUtilities.h>\n\n@implementation _AMPredicateUtilities\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMPrefixLabeledRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMPrefixLabeledRowTemplate.h>\n\n@implementation _AMPrefixLabeledRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMRatingRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMRatingRowTemplate.h>\n\n@implementation _AMRatingRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMRowTemplateFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMRowTemplateFactory.h>\n\n@implementation _AMRowTemplateFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSBApplicationDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSBApplicationDelegate.h>\n\n@implementation _AMSBApplicationDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSBRetainingApplicationDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSBRetainingApplicationDelegate.h>\n\n@implementation _AMSBRetainingApplicationDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariApplication.h>\n\n@implementation _AMSafariApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariAttachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariAttachment.h>\n\n@implementation _AMSafariAttachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariAttributeRun.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariAttributeRun.h>\n\n@implementation _AMSafariAttributeRun\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariCharacter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariCharacter.h>\n\n@implementation _AMSafariCharacter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariColor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariColor.h>\n\n@implementation _AMSafariColor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariDocument.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariDocument.h>\n\n@implementation _AMSafariDocument\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariItem.h>\n\n@implementation _AMSafariItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariParagraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariParagraph.h>\n\n@implementation _AMSafariParagraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariPrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariPrintSettings.h>\n\n@implementation _AMSafariPrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariTab.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariTab.h>\n\n@implementation _AMSafariTab\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariText.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariText.h>\n\n@implementation _AMSafariText\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariWindow.h>\n\n@implementation _AMSafariWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSafariWord.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSafariWord.h>\n\n@implementation _AMSafariWord\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSpecificDateRangeRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSpecificDateRangeRowTemplate.h>\n\n@implementation _AMSpecificDateRangeRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSpecificYearRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSpecificYearRowTemplate.h>\n\n@implementation _AMSpecificYearRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSuffixLabeledRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSuffixLabeledRowTemplate.h>\n\n@implementation _AMSuffixLabeledRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsAction.h>\n\n@implementation _AMSystemEventsAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsAlias.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsAlias.h>\n\n@implementation _AMSystemEventsAlias\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsAnnotation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsAnnotation.h>\n\n@implementation _AMSystemEventsAnnotation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsAppearancePreferencesObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsAppearancePreferencesObject.h>\n\n@implementation _AMSystemEventsAppearancePreferencesObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsApplication.h>\n\n@implementation _AMSystemEventsApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsApplicationProcess.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsApplicationProcess.h>\n\n@implementation _AMSystemEventsApplicationProcess\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsAttribute.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsAttribute.h>\n\n@implementation _AMSystemEventsAttribute\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsAudioData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsAudioData.h>\n\n@implementation _AMSystemEventsAudioData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsAudioFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsAudioFile.h>\n\n@implementation _AMSystemEventsAudioFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsBrowser.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsBrowser.h>\n\n@implementation _AMSystemEventsBrowser\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsBusyIndicator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsBusyIndicator.h>\n\n@implementation _AMSystemEventsBusyIndicator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsButton.h>\n\n@implementation _AMSystemEventsButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsCDAndDVDPreferencesObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsCDAndDVDPreferencesObject.h>\n\n@implementation _AMSystemEventsCDAndDVDPreferencesObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsCheckbox.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsCheckbox.h>\n\n@implementation _AMSystemEventsCheckbox\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsClassicDomainObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsClassicDomainObject.h>\n\n@implementation _AMSystemEventsClassicDomainObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsColorWell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsColorWell.h>\n\n@implementation _AMSystemEventsColorWell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsColumn.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsColumn.h>\n\n@implementation _AMSystemEventsColumn\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsComboBox.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsComboBox.h>\n\n@implementation _AMSystemEventsComboBox\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsConfiguration.h>\n\n@implementation _AMSystemEventsConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsDeskAccessoryProcess.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsDeskAccessoryProcess.h>\n\n@implementation _AMSystemEventsDeskAccessoryProcess\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsDesktop.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsDesktop.h>\n\n@implementation _AMSystemEventsDesktop\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsDisk.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsDisk.h>\n\n@implementation _AMSystemEventsDisk\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsDiskItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsDiskItem.h>\n\n@implementation _AMSystemEventsDiskItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsDockPreferencesObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsDockPreferencesObject.h>\n\n@implementation _AMSystemEventsDockPreferencesObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsDocument.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsDocument.h>\n\n@implementation _AMSystemEventsDocument\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsDomain.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsDomain.h>\n\n@implementation _AMSystemEventsDomain\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsDrawer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsDrawer.h>\n\n@implementation _AMSystemEventsDrawer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsFile.h>\n\n@implementation _AMSystemEventsFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsFilePackage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsFilePackage.h>\n\n@implementation _AMSystemEventsFilePackage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsFolder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsFolder.h>\n\n@implementation _AMSystemEventsFolder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsFolderAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsFolderAction.h>\n\n@implementation _AMSystemEventsFolderAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsGroup.h>\n\n@implementation _AMSystemEventsGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsGrowArea.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsGrowArea.h>\n\n@implementation _AMSystemEventsGrowArea\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsImage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsImage.h>\n\n@implementation _AMSystemEventsImage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsIncrementor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsIncrementor.h>\n\n@implementation _AMSystemEventsIncrementor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsInsertionPreference.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsInsertionPreference.h>\n\n@implementation _AMSystemEventsInsertionPreference\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsInterface.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsInterface.h>\n\n@implementation _AMSystemEventsInterface\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsList.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsList.h>\n\n@implementation _AMSystemEventsList\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsLocalDomainObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsLocalDomainObject.h>\n\n@implementation _AMSystemEventsLocalDomainObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsLocation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsLocation.h>\n\n@implementation _AMSystemEventsLocation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsLoginItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsLoginItem.h>\n\n@implementation _AMSystemEventsLoginItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsMenu.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsMenu.h>\n\n@implementation _AMSystemEventsMenu\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsMenuBar.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsMenuBar.h>\n\n@implementation _AMSystemEventsMenuBar\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsMenuBarItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsMenuBarItem.h>\n\n@implementation _AMSystemEventsMenuBarItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsMenuButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsMenuButton.h>\n\n@implementation _AMSystemEventsMenuButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsMenuItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsMenuItem.h>\n\n@implementation _AMSystemEventsMenuItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsMovieData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsMovieData.h>\n\n@implementation _AMSystemEventsMovieData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsMovieFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsMovieFile.h>\n\n@implementation _AMSystemEventsMovieFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsNetworkDomainObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsNetworkDomainObject.h>\n\n@implementation _AMSystemEventsNetworkDomainObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsNetworkPreferencesObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsNetworkPreferencesObject.h>\n\n@implementation _AMSystemEventsNetworkPreferencesObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsOutline.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsOutline.h>\n\n@implementation _AMSystemEventsOutline\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsPopOver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsPopOver.h>\n\n@implementation _AMSystemEventsPopOver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsPopUpButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsPopUpButton.h>\n\n@implementation _AMSystemEventsPopUpButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsPrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsPrintSettings.h>\n\n@implementation _AMSystemEventsPrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsProcess.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsProcess.h>\n\n@implementation _AMSystemEventsProcess\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsProgressIndicator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsProgressIndicator.h>\n\n@implementation _AMSystemEventsProgressIndicator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsPropertyListFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsPropertyListFile.h>\n\n@implementation _AMSystemEventsPropertyListFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsPropertyListItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsPropertyListItem.h>\n\n@implementation _AMSystemEventsPropertyListItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsQuickTimeData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsQuickTimeData.h>\n\n@implementation _AMSystemEventsQuickTimeData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsQuickTimeFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsQuickTimeFile.h>\n\n@implementation _AMSystemEventsQuickTimeFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsRadioButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsRadioButton.h>\n\n@implementation _AMSystemEventsRadioButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsRadioGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsRadioGroup.h>\n\n@implementation _AMSystemEventsRadioGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsRelevanceIndicator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsRelevanceIndicator.h>\n\n@implementation _AMSystemEventsRelevanceIndicator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsRow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsRow.h>\n\n@implementation _AMSystemEventsRow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScreenSaver.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScreenSaver.h>\n\n@implementation _AMSystemEventsScreenSaver\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScreenSaverPreferencesObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScreenSaverPreferencesObject.h>\n\n@implementation _AMSystemEventsScreenSaverPreferencesObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScript.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScript.h>\n\n@implementation _AMSystemEventsScript\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingClass.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingClass.h>\n\n@implementation _AMSystemEventsScriptingClass\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingCommand.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingCommand.h>\n\n@implementation _AMSystemEventsScriptingCommand\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingDefinitionObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingDefinitionObject.h>\n\n@implementation _AMSystemEventsScriptingDefinitionObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingElement.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingElement.h>\n\n@implementation _AMSystemEventsScriptingElement\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingEnumeration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingEnumeration.h>\n\n@implementation _AMSystemEventsScriptingEnumeration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingEnumerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingEnumerator.h>\n\n@implementation _AMSystemEventsScriptingEnumerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingParameter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingParameter.h>\n\n@implementation _AMSystemEventsScriptingParameter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingProperty.h>\n\n@implementation _AMSystemEventsScriptingProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingResultObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingResultObject.h>\n\n@implementation _AMSystemEventsScriptingResultObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScriptingSuite.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScriptingSuite.h>\n\n@implementation _AMSystemEventsScriptingSuite\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScrollArea.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScrollArea.h>\n\n@implementation _AMSystemEventsScrollArea\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsScrollBar.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsScrollBar.h>\n\n@implementation _AMSystemEventsScrollBar\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsSecurityPreferencesObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsSecurityPreferencesObject.h>\n\n@implementation _AMSystemEventsSecurityPreferencesObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsService.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsService.h>\n\n@implementation _AMSystemEventsService\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsSheet.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsSheet.h>\n\n@implementation _AMSystemEventsSheet\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsSlider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsSlider.h>\n\n@implementation _AMSystemEventsSlider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsSplitter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsSplitter.h>\n\n@implementation _AMSystemEventsSplitter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsSplitterGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsSplitterGroup.h>\n\n@implementation _AMSystemEventsSplitterGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsStaticText.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsStaticText.h>\n\n@implementation _AMSystemEventsStaticText\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsSystemDomainObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsSystemDomainObject.h>\n\n@implementation _AMSystemEventsSystemDomainObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsTabGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsTabGroup.h>\n\n@implementation _AMSystemEventsTabGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsTable.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsTable.h>\n\n@implementation _AMSystemEventsTable\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsTextArea.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsTextArea.h>\n\n@implementation _AMSystemEventsTextArea\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsTextField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsTextField.h>\n\n@implementation _AMSystemEventsTextField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsToolbar.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsToolbar.h>\n\n@implementation _AMSystemEventsToolbar\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsTrack.h>\n\n@implementation _AMSystemEventsTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsUIElement.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsUIElement.h>\n\n@implementation _AMSystemEventsUIElement\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsUser.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsUser.h>\n\n@implementation _AMSystemEventsUser\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsUserDomainObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsUserDomainObject.h>\n\n@implementation _AMSystemEventsUserDomainObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsValueIndicator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsValueIndicator.h>\n\n@implementation _AMSystemEventsValueIndicator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsWindow.h>\n\n@implementation _AMSystemEventsWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsXMLAttribute.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsXMLAttribute.h>\n\n@implementation _AMSystemEventsXMLAttribute\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsXMLData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsXMLData.h>\n\n@implementation _AMSystemEventsXMLData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsXMLElement.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsXMLElement.h>\n\n@implementation _AMSystemEventsXMLElement\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMSystemEventsXMLFile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMSystemEventsXMLFile.h>\n\n@implementation _AMSystemEventsXMLFile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditApplication.h>\n\n@implementation _AMTextEditApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditAttachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditAttachment.h>\n\n@implementation _AMTextEditAttachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditAttributeRun.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditAttributeRun.h>\n\n@implementation _AMTextEditAttributeRun\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditCharacter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditCharacter.h>\n\n@implementation _AMTextEditCharacter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditColor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditColor.h>\n\n@implementation _AMTextEditColor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditDocument.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditDocument.h>\n\n@implementation _AMTextEditDocument\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditItem.h>\n\n@implementation _AMTextEditItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditParagraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditParagraph.h>\n\n@implementation _AMTextEditParagraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditPrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditPrintSettings.h>\n\n@implementation _AMTextEditPrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditText.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditText.h>\n\n@implementation _AMTextEditText\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditWindow.h>\n\n@implementation _AMTextEditWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTextEditWord.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTextEditWord.h>\n\n@implementation _AMTextEditWord\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMTimeIntervalRowTemplate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMTimeIntervalRowTemplate.h>\n\n@implementation _AMTimeIntervalRowTemplate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMVariablePopUpButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMVariablePopUpButton.h>\n\n@implementation _AMVariablePopUpButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMVariablePopUpButtonCell.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMVariablePopUpButtonCell.h>\n\n@implementation _AMVariablePopUpButtonCell\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMVariablePopUpButtonTokenField.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMVariablePopUpButtonTokenField.h>\n\n@implementation _AMVariablePopUpButtonTokenField\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalApplication.h>\n\n@implementation _AMiCalApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalAttachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalAttachment.h>\n\n@implementation _AMiCalAttachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalAttendee.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalAttendee.h>\n\n@implementation _AMiCalAttendee\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalAttributeRun.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalAttributeRun.h>\n\n@implementation _AMiCalAttributeRun\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalCalendar.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalCalendar.h>\n\n@implementation _AMiCalCalendar\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalCharacter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalCharacter.h>\n\n@implementation _AMiCalCharacter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalColor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalColor.h>\n\n@implementation _AMiCalColor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalDisplayAlarm.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalDisplayAlarm.h>\n\n@implementation _AMiCalDisplayAlarm\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalDocument.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalDocument.h>\n\n@implementation _AMiCalDocument\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalEvent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalEvent.h>\n\n@implementation _AMiCalEvent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalItem.h>\n\n@implementation _AMiCalItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalItemsRowTemplateFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalItemsRowTemplateFactory.h>\n\n@implementation _AMiCalItemsRowTemplateFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalMailAlarm.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalMailAlarm.h>\n\n@implementation _AMiCalMailAlarm\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalOpenFileAlarm.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalOpenFileAlarm.h>\n\n@implementation _AMiCalOpenFileAlarm\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalParagraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalParagraph.h>\n\n@implementation _AMiCalParagraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalPredicateEditorAction.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalPredicateEditorAction.h>\n\n@implementation _AMiCalPredicateEditorAction\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalSoundAlarm.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalSoundAlarm.h>\n\n@implementation _AMiCalSoundAlarm\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalText.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalText.h>\n\n@implementation _AMiCalText\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalTodo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalTodo.h>\n\n@implementation _AMiCalTodo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalWindow.h>\n\n@implementation _AMiCalWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiCalWord.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiCalWord.h>\n\n@implementation _AMiCalWord\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDApplication.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDApplication.h>\n\n@implementation _AMiDVDApplication\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDApplicationTheme.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDApplicationTheme.h>\n\n@implementation _AMiDVDApplicationTheme\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDAttachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDAttachment.h>\n\n@implementation _AMiDVDAttachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDAttributeRun.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDAttributeRun.h>\n\n@implementation _AMiDVDAttributeRun\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDButton.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDButton.h>\n\n@implementation _AMiDVDButton\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDCharacter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDCharacter.h>\n\n@implementation _AMiDVDCharacter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDColor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDColor.h>\n\n@implementation _AMiDVDColor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDDocument.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDDocument.h>\n\n@implementation _AMiDVDDocument\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDDropzone.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDDropzone.h>\n\n@implementation _AMiDVDDropzone\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDImage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDImage.h>\n\n@implementation _AMiDVDImage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDItem.h>\n\n@implementation _AMiDVDItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDMenu.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDMenu.h>\n\n@implementation _AMiDVDMenu\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDMovie.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDMovie.h>\n\n@implementation _AMiDVDMovie\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDParagraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDParagraph.h>\n\n@implementation _AMiDVDParagraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDPrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDPrintSettings.h>\n\n@implementation _AMiDVDPrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDProject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDProject.h>\n\n@implementation _AMiDVDProject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDSlideshow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDSlideshow.h>\n\n@implementation _AMiDVDSlideshow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDText.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDText.h>\n\n@implementation _AMiDVDText\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDTextObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDTextObject.h>\n\n@implementation _AMiDVDTextObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDWindow.h>\n\n@implementation _AMiDVDWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiDVDWord.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiDVDWord.h>\n\n@implementation _AMiDVDWord\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Album.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Album.h>\n\n@implementation _AMiPhoto5Album\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Application.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Application.h>\n\n@implementation _AMiPhoto5Application\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Attachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Attachment.h>\n\n@implementation _AMiPhoto5Attachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5AttributeRun.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5AttributeRun.h>\n\n@implementation _AMiPhoto5AttributeRun\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Character.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Character.h>\n\n@implementation _AMiPhoto5Character\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Color.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Color.h>\n\n@implementation _AMiPhoto5Color\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Document.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Document.h>\n\n@implementation _AMiPhoto5Document\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Item.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Item.h>\n\n@implementation _AMiPhoto5Item\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Keyword.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Keyword.h>\n\n@implementation _AMiPhoto5Keyword\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Paragraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Paragraph.h>\n\n@implementation _AMiPhoto5Paragraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Photo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Photo.h>\n\n@implementation _AMiPhoto5Photo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5PrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5PrintSettings.h>\n\n@implementation _AMiPhoto5PrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Text.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Text.h>\n\n@implementation _AMiPhoto5Text\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Window.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Window.h>\n\n@implementation _AMiPhoto5Window\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto5Word.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto5Word.h>\n\n@implementation _AMiPhoto5Word\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Album.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Album.h>\n\n@implementation _AMiPhoto6Album\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Application.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Application.h>\n\n@implementation _AMiPhoto6Application\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Attachment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Attachment.h>\n\n@implementation _AMiPhoto6Attachment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6AttributeRun.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6AttributeRun.h>\n\n@implementation _AMiPhoto6AttributeRun\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Character.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Character.h>\n\n@implementation _AMiPhoto6Character\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Color.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Color.h>\n\n@implementation _AMiPhoto6Color\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Document.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Document.h>\n\n@implementation _AMiPhoto6Document\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Item.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Item.h>\n\n@implementation _AMiPhoto6Item\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Keyword.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Keyword.h>\n\n@implementation _AMiPhoto6Keyword\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Paragraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Paragraph.h>\n\n@implementation _AMiPhoto6Paragraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Photo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Photo.h>\n\n@implementation _AMiPhoto6Photo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6PrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6PrintSettings.h>\n\n@implementation _AMiPhoto6PrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Text.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Text.h>\n\n@implementation _AMiPhoto6Text\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Window.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Window.h>\n\n@implementation _AMiPhoto6Window\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhoto6Word.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhoto6Word.h>\n\n@implementation _AMiPhoto6Word\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiPhotoItemsRowTemplateFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiPhotoItemsRowTemplateFactory.h>\n\n@implementation _AMiPhotoItemsRowTemplateFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Application.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Application.h>\n\n@implementation _AMiTunes7Application\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Artwork.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Artwork.h>\n\n@implementation _AMiTunes7Artwork\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7AudioCDPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7AudioCDPlaylist.h>\n\n@implementation _AMiTunes7AudioCDPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7AudioCDTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7AudioCDTrack.h>\n\n@implementation _AMiTunes7AudioCDTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7BrowserWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7BrowserWindow.h>\n\n@implementation _AMiTunes7BrowserWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7DevicePlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7DevicePlaylist.h>\n\n@implementation _AMiTunes7DevicePlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7DeviceTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7DeviceTrack.h>\n\n@implementation _AMiTunes7DeviceTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7EQPreset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7EQPreset.h>\n\n@implementation _AMiTunes7EQPreset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7EQWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7EQWindow.h>\n\n@implementation _AMiTunes7EQWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Encoder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Encoder.h>\n\n@implementation _AMiTunes7Encoder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7FileTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7FileTrack.h>\n\n@implementation _AMiTunes7FileTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7FolderPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7FolderPlaylist.h>\n\n@implementation _AMiTunes7FolderPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Item.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Item.h>\n\n@implementation _AMiTunes7Item\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7LibraryPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7LibraryPlaylist.h>\n\n@implementation _AMiTunes7LibraryPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Playlist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Playlist.h>\n\n@implementation _AMiTunes7Playlist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7PlaylistWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7PlaylistWindow.h>\n\n@implementation _AMiTunes7PlaylistWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7PrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7PrintSettings.h>\n\n@implementation _AMiTunes7PrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7RadioTunerPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7RadioTunerPlaylist.h>\n\n@implementation _AMiTunes7RadioTunerPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7SharedTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7SharedTrack.h>\n\n@implementation _AMiTunes7SharedTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Source.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Source.h>\n\n@implementation _AMiTunes7Source\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Track.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Track.h>\n\n@implementation _AMiTunes7Track\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7URLTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7URLTrack.h>\n\n@implementation _AMiTunes7URLTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7UserPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7UserPlaylist.h>\n\n@implementation _AMiTunes7UserPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Visual.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Visual.h>\n\n@implementation _AMiTunes7Visual\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes7Window.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes7Window.h>\n\n@implementation _AMiTunes7Window\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Application.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Application.h>\n\n@implementation _AMiTunes8Application\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Artwork.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Artwork.h>\n\n@implementation _AMiTunes8Artwork\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8AudioCDPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8AudioCDPlaylist.h>\n\n@implementation _AMiTunes8AudioCDPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8AudioCDTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8AudioCDTrack.h>\n\n@implementation _AMiTunes8AudioCDTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8BrowserWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8BrowserWindow.h>\n\n@implementation _AMiTunes8BrowserWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8DevicePlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8DevicePlaylist.h>\n\n@implementation _AMiTunes8DevicePlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8DeviceTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8DeviceTrack.h>\n\n@implementation _AMiTunes8DeviceTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8EQPreset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8EQPreset.h>\n\n@implementation _AMiTunes8EQPreset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8EQWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8EQWindow.h>\n\n@implementation _AMiTunes8EQWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Encoder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Encoder.h>\n\n@implementation _AMiTunes8Encoder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8FileTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8FileTrack.h>\n\n@implementation _AMiTunes8FileTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8FolderPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8FolderPlaylist.h>\n\n@implementation _AMiTunes8FolderPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Item.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Item.h>\n\n@implementation _AMiTunes8Item\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8LibraryPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8LibraryPlaylist.h>\n\n@implementation _AMiTunes8LibraryPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Playlist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Playlist.h>\n\n@implementation _AMiTunes8Playlist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8PlaylistWindow.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8PlaylistWindow.h>\n\n@implementation _AMiTunes8PlaylistWindow\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8PrintSettings.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8PrintSettings.h>\n\n@implementation _AMiTunes8PrintSettings\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8RadioTunerPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8RadioTunerPlaylist.h>\n\n@implementation _AMiTunes8RadioTunerPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8SharedTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8SharedTrack.h>\n\n@implementation _AMiTunes8SharedTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Source.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Source.h>\n\n@implementation _AMiTunes8Source\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Track.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Track.h>\n\n@implementation _AMiTunes8Track\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8URLTrack.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8URLTrack.h>\n\n@implementation _AMiTunes8URLTrack\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8UserPlaylist.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8UserPlaylist.h>\n\n@implementation _AMiTunes8UserPlaylist\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Visual.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Visual.h>\n\n@implementation _AMiTunes8Visual\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunes8Window.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunes8Window.h>\n\n@implementation _AMiTunes8Window\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Automator/src/_AMiTunesItemsRowTemplateFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Automator/_AMiTunesItemsRowTemplateFactory.h>\n\n@implementation _AMiTunesItemsRowTemplateFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CMakeLists.txt",
    "content": "project(frameworks)\n\nif (COMPONENT_system)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"system\")\n\n\t# for memberd\n\tadd_subdirectory(DirectoryServices)\nendif()\n\n# this is mainly for frameworks that are required for Security,\n# since Security is built for both CLI and GUI\nif (COMPONENT_cli OR COMPONENT_dev_gui_common)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_gui_common\")\n\n\tadd_subdirectory(CoreServices)\n\n\t# these are also stubs, but they're needed for Security\n\tadd_subdirectory(Accounts)\n\tadd_subdirectory(CloudKit)\n\tadd_subdirectory(CryptoTokenKit)\n\tadd_subdirectory(LocalAuthentication)\n\tadd_subdirectory(NetFS)\n\tadd_subdirectory(Network)\n\tadd_subdirectory(OpenDirectory)\n\tadd_subdirectory(SecurityFoundation)\n\tadd_subdirectory(SystemConfiguration)\n\n\t# this is for Java (obviously)\n\tadd_subdirectory(JavaVM)\n\tadd_subdirectory(JavaRuntimeSupport)\nendif()\n\nif (COMPONENT_iokitd OR COMPONENT_dev_gui_common)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"iosurface\")\n\n\t# this is for iokitd (and Xcode)\n\tadd_subdirectory(IOSurface)\nendif()\n\n# this is mainly for anything that Xcode requires to run on the CLI\nif (COMPONENT_dev_gui_common)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_dev_gui_common\")\n\n\tadd_subdirectory(ApplicationServices)\n\tadd_subdirectory(ColorSync)\n\tadd_subdirectory(Carbon)\n\n\t# stubs, but required for QuartzCore (in Cocotron)\n\tadd_subdirectory(CoreImage)\n\tadd_subdirectory(CoreVideo)\nendif()\n\n# same here, except this is for stubs that Xcode needs\nif (COMPONENT_dev_gui_stubs_common)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_dev_gui_stubs_common\")\n\n\tadd_subdirectory(Accelerate)\n\tadd_subdirectory(AVFoundation)\n\tadd_subdirectory(Contacts)\n\tadd_subdirectory(CoreMedia)\n\tadd_subdirectory(DiskArbitration)\n\tadd_subdirectory(GLKit)\n\tadd_subdirectory(ScriptingBridge)\n\tadd_subdirectory(SecurityInterface)\n\tadd_subdirectory(ServiceManagement)\n\tadd_subdirectory(Quartz)\n\tadd_subdirectory(QuickLook)\n\tadd_subdirectory(SceneKit)\n\tadd_subdirectory(SpriteKit)\n\tadd_subdirectory(UniformTypeIdentifiers)\n\tadd_subdirectory(UserNotifications)\n\tadd_subdirectory(VideoToolbox)\nendif()\n\n# this is for core GUI frameworks with actual implementations\nif (COMPONENT_gui)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"gui\")\n\n\tadd_subdirectory(OpenGL)\n\tadd_subdirectory(ImageIO)\nendif()\n\n# this is for all the other stubbed frameworks\nif (COMPONENT_gui_stubs)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"gui_stubs\")\n\n\tadd_subdirectory(AddressBook)\n\tadd_subdirectory(AGL)\n\tadd_subdirectory(AuthenticationServices)\n\tadd_subdirectory(AudioVideoBridging)\n\tadd_subdirectory(Automator)\n\tadd_subdirectory(AVFAudio)\n\tadd_subdirectory(AVKit)\n\tadd_subdirectory(CalendarStore)\n\tadd_subdirectory(Collaboration)\n\tadd_subdirectory(ContactsUI)\n\tadd_subdirectory(CoreAudioKit)\n\tadd_subdirectory(CoreBluetooth)\n\tadd_subdirectory(CoreLocation)\n\tadd_subdirectory(CoreMIDI)\n\tadd_subdirectory(CoreMediaIO)\n\tadd_subdirectory(CoreTelephony)\n\tadd_subdirectory(CoreWLAN)\n\tadd_subdirectory(DiscRecordingUI)\n\tadd_subdirectory(DiscRecording)\n\tadd_subdirectory(DrawSprocket)\n\tadd_subdirectory(EventKit)\n\tadd_subdirectory(ExceptionHandling)\n\tadd_subdirectory(ForceFeedback)\n\tadd_subdirectory(GameController)\n\tadd_subdirectory(ImageCaptureCore)\n\tadd_subdirectory(InputMethodKit)\n\tadd_subdirectory(InstantMessage)\n\tadd_subdirectory(IOBluetooth)\n\tadd_subdirectory(IOBluetoothUI)\n\tadd_subdirectory(MapKit)\n\tadd_subdirectory(MediaAccessibility)\n\tadd_subdirectory(MediaToolbox)\n    add_subdirectory(Message)\n\tadd_subdirectory(ModelIO)\n\tadd_subdirectory(MultipeerConnectivity)\n\tadd_subdirectory(OpenAL)\n\tadd_subdirectory(OpenCL)\n\tadd_subdirectory(Photos)\n\tadd_subdirectory(PDFKit)\n\tadd_subdirectory(OSAKit)\n\tadd_subdirectory(QTKit)\n\tadd_subdirectory(QuickTime)\n\tadd_subdirectory(ScreenSaver)\n\tadd_subdirectory(ShazamKit)\n\tadd_subdirectory(Speech)\n\tadd_subdirectory(StoreKit)\n\tadd_subdirectory(SyncServices)\n\tadd_subdirectory(VideoDecodeAcceleration)\n\tadd_subdirectory(Vision)\nendif()\n\n# Xcode also needs WebKit, even on the CLI! it may be a weak dependency (i didn't check that),\n# but what we do is we build our stub if the `webkit` component isn't enabled.\n#\n# TODO: actually build WebKit. since we *only* have the stub right now, we compile it when either\n#       component is enabled.\n\n#if (COMPONENT_dev_gui_common AND NOT COMPONENT_webkit)\nif (COMPONENT_dev_gui_common OR COMPONENT_webkit)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_dev_gui_common\")\n\n\t# stub\n\tadd_subdirectory(WebKit)\nendif()\n\n# we build these stubs if we're building `cli_dev` and *not* building Cocotron OR if we explicitly want them (`cli_dev_gui_stubs`).\n# we explicitly want to build them when building the `all` component because this component is intended to be used for building\n# Darling packages; we need to build a package that has these stubs available to be able to install Darling for CLI development\n# without GUI dependencies like X11.\nif ((COMPONENT_cli_dev AND NOT COMPONENT_gui) OR COMPONENT_cli_dev_gui_stubs)\n\tset(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME \"cli_dev\")\n\n\t# if we're building the GUI components (i.e. Cocotron), don't install these stubs\n\tif (COMPONENT_gui)\n\t\tset(NO_INSTALL_ARG NO_INSTALL)\n\t\tset(STUB_SUFFIX \"_stub\")\n\telse()\n\t\tset(NO_INSTALL_ARG \"\")\n\t\tset(STUB_SUFFIX \"\")\n\tendif()\n\n\tadd_subdirectory(dev-stubs/AppKit)\n\tadd_subdirectory(dev-stubs/AudioToolbox)\n\tadd_subdirectory(dev-stubs/Cocoa)\n\tadd_subdirectory(dev-stubs/CoreData)\n\tadd_subdirectory(dev-stubs/CoreGraphics)\n\tadd_subdirectory(dev-stubs/CoreText)\n\tadd_subdirectory(dev-stubs/ImageIO)\n\tadd_subdirectory(dev-stubs/OpenGL)\n\tadd_subdirectory(dev-stubs/QuartzCore)\nendif()\n"
  },
  {
    "path": "src/frameworks/CalendarStore/CMakeLists.txt",
    "content": "project(CalendarStore)\n\nremove_sdk_framework(CalendarStore)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"2030.2.1\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(CalendarStore\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/CalendarStore\"\n)\n\nadd_framework(CalendarStore\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/CalendarStore.m\n        src/CalPredicate.m\n        src/CalEventPredicate.m\n        src/CalAttendee.m\n        src/CalGroup.m\n        src/CalTaskPredicate.m\n        src/CalCalendarStore.m\n        src/CalCalendar.m\n        src/CalAlarm.m\n        src/CalEvent.m\n        src/CalRecurrenceRule.m\n        src/CalNthWeekDay.m\n        src/CalRecurrenceEnd.m\n        src/CalCalendarItemPredicate.m\n        src/CalCalendarItem.m\n        src/CalTask.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalAlarm.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalAlarm : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalAttendee.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalAttendee : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalCalendar.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalCalendar : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalCalendarItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalCalendarItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalCalendarItemPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalCalendarItemPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalCalendarStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalCalendarStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalEvent.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalEvent : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalEventPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalEventPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalNthWeekDay.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalNthWeekDay : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalRecurrenceEnd.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalRecurrenceEnd : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalRecurrenceRule.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalRecurrenceRule : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalTask.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalTask : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalTaskPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CalTaskPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalendarAgentClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CalendarAgentClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/include/CalendarStore/CalendarStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _CalendarStore_H_\n#define _CalendarStore_H_\n\n#import <Foundation/Foundation.h>\n\n#import <CalendarStore/CalendarAgentClient.h>\n#import <CalendarStore/CalPredicate.h>\n#import <CalendarStore/CalEventPredicate.h>\n#import <CalendarStore/CalAttendee.h>\n#import <CalendarStore/CalGroup.h>\n#import <CalendarStore/CalTaskPredicate.h>\n#import <CalendarStore/CalCalendarStore.h>\n#import <CalendarStore/CalCalendar.h>\n#import <CalendarStore/CalAlarm.h>\n#import <CalendarStore/CalEvent.h>\n#import <CalendarStore/CalRecurrenceRule.h>\n#import <CalendarStore/CalNthWeekDay.h>\n#import <CalendarStore/CalRecurrenceEnd.h>\n#import <CalendarStore/CalCalendarItemPredicate.h>\n#import <CalendarStore/CalCalendarItem.h>\n#import <CalendarStore/CalTask.h>\n\n\n#endif\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalAlarm.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalAlarm.h>\n\n@implementation CalAlarm\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalAttendee.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalAttendee.h>\n\n@implementation CalAttendee\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalCalendar.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalCalendar.h>\n\n@implementation CalCalendar\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalCalendarItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalCalendarItem.h>\n\n@implementation CalCalendarItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalCalendarItemPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalCalendarItemPredicate.h>\n\n@implementation CalCalendarItemPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalCalendarStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalCalendarStore.h>\n\n@implementation CalCalendarStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalEvent.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalEvent.h>\n\n@implementation CalEvent\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalEventPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalEventPredicate.h>\n\n@implementation CalEventPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalGroup.h>\n\n@implementation CalGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalNthWeekDay.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalNthWeekDay.h>\n\n@implementation CalNthWeekDay\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalPredicate.h>\n\n@implementation CalPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalRecurrenceEnd.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalRecurrenceEnd.h>\n\n@implementation CalRecurrenceEnd\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalRecurrenceRule.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalRecurrenceRule.h>\n\n@implementation CalRecurrenceRule\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalTask.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalTask.h>\n\n@implementation CalTask\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalTaskPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CalendarStore/CalTaskPredicate.h>\n\n@implementation CalTaskPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CalendarStore/src/CalendarStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <CalendarStore/CalendarStore.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/CMakeLists.txt",
    "content": "project(Carbon)\n\nset(FRAMEWORK_VERSION \"A\")\n\nremove_sdk_framework(Carbon)\n\nget_path_preframework(carbon_sdk_path)\nappend_path_sdk_subframework(${carbon_sdk_path} carbon_sdk_path Carbon\n    VERSION ${FRAMEWORK_VERSION}\n)\n\nadd_subdirectory(CommonPanels)\nadd_subdirectory(Help)\nadd_subdirectory(HIToolbox)\nadd_subdirectory(ImageCapture)\nadd_subdirectory(Ink)\nadd_subdirectory(OpenScripting)\nadd_subdirectory(Print)\nadd_subdirectory(SecurityHI)\nadd_subdirectory(SpeechRecognition)\n\nset(DYLIB_COMPAT_VERSION \"2.0.0\")\nset(DYLIB_CURRENT_VERSION \"158.0.0\")\n\ngenerate_sdk_framework(Carbon\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/Carbon\"\n)\n\nadd_framework(Carbon\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/Carbon.c\n\n    DEPENDENCIES\n        CommonPanels\n        Help\n        HIToolbox\n        ImageCapture\n        Ink\n        OpenScripting\n        Print\n        SecurityHI\n        SpeechRecognition\n    \tCoreFoundation\n        Foundation\n        system\n)\n\nset(CommonPanels_BUILD ${CMAKE_CURRENT_BINARY_DIR}/CommonPanels/CommonPanels)\nset(Help_BUILD ${CMAKE_CURRENT_BINARY_DIR}/Help/Help)\nset(HIToolbox_BUILD ${CMAKE_CURRENT_BINARY_DIR}/HIToolbox/HIToolbox)\nset(ImageCapture_BUILD ${CMAKE_CURRENT_BINARY_DIR}/ImageCapture/ImageCapture)\nset(Ink_BUILD ${CMAKE_CURRENT_BINARY_DIR}/Ink/Ink)\nset(OpenScripting_BUILD ${CMAKE_CURRENT_BINARY_DIR}/OpenScripting/OpenScripting)\nset(Print_BUILD ${CMAKE_CURRENT_BINARY_DIR}/Print/Print)\nset(SecurityHI_BUILD ${CMAKE_CURRENT_BINARY_DIR}/SecurityHI/SecurityHI)\nset(SpeechRecognition_BUILD ${CMAKE_CURRENT_BINARY_DIR}/SpeechRecognition/SpeechRecognition)\n\nreexport(Carbon CommonPanels ${CommonPanels_BUILD})\nreexport(Carbon Help ${Help_BUILD})\nreexport(Carbon HIToolbox ${HIToolbox_BUILD})\nreexport(Carbon ImageCapture ${ImageCapture_BUILD})\nreexport(Carbon Ink ${Ink_BUILD})\nreexport(Carbon OpenScripting ${OpenScripting_BUILD})\nreexport(Carbon Print ${Print_BUILD})\nreexport(Carbon SecurityHI ${SecurityHI_BUILD})\nreexport(Carbon SpeechRecognition ${SpeechRecognition_BUILD})\n\nset(ApplicationServices_BUILD ${CMAKE_CURRENT_BINARY_DIR}/../ApplicationServices/ApplicationServices)\n\nreexport(Carbon ApplicationServices ${ApplicationServices_BUILD})\n"
  },
  {
    "path": "src/frameworks/Carbon/CommonPanels/CMakeLists.txt",
    "content": "project(CommonPanels)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"101.0.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(CommonPanels\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/CommonPanels\"\n)\n\nadd_framework(CommonPanels\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/CommonPanels.m\n\n\tDEPENDENCIES\n\t\tsystem\n\t\tobjc\n\t\tFoundation\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/CommonPanels/include/CommonPanels/CommonPanels.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _CommonPanels_H_\n#define _CommonPanels_H_\n\n#import <Foundation/Foundation.h>\n\n\nvoid* CCP_FontPanelClose(void);\nvoid* CCP_FontPanelGetSelection(void);\nvoid* CCP_FontPanelIsVisible(void);\nvoid* CCP_FontPanelOpen(void);\nvoid* CCP_FontPanelSelectFonts(void);\nvoid* CCP_NPickColor(void);\nvoid* CMCalibrateDisplay(void);\nvoid* Call_CommonCocoaPanels_NPickColor(void);\nvoid* DisposeCalibrateEventUPP(void);\nvoid* DisposeCalibrateUPP(void);\nvoid* DisposeCanCalibrateUPP(void);\nvoid* DisposeNColorChangedUPP(void);\nvoid* FCAddCollection(void);\nvoid* FCAddFontDescriptorToCollection(void);\nvoid* FCCopyCollectionNames(void);\nvoid* FCCopyFontDescriptorsInCollection(void);\nvoid* FCFontDescriptorCreateWithFontAttributes(void);\nvoid* FCFontDescriptorCreateWithName(void);\nvoid* FCRemoveCollection(void);\nvoid* FCRemoveFontDescriptorFromCollection(void);\nvoid* FPIsFontPanelVisible(void);\nvoid* FPShowHideFontPanel(void);\nvoid* GetColor(void);\nvoid* GetHandleApplicationEventsUPP(void);\nvoid* GetHandleWinEventsUPP(void);\nvoid* InvokeCalibrateEventUPP(void);\nvoid* InvokeCalibrateUPP(void);\nvoid* InvokeCanCalibrateUPP(void);\nvoid* InvokeNColorChangedUPP(void);\nvoid* LoadNSTypographyBundle(void);\nvoid* NPickColor(void);\nvoid* NewCalibrateEventUPP(void);\nvoid* NewCalibrateUPP(void);\nvoid* NewCanCalibrateUPP(void);\nvoid* NewNColorChangedUPP(void);\nvoid* SetFontInfoForSelection(void);\nvoid* SoftLinkingGetFunctionPointerFromBundleInDirectory(void);\nvoid* UserWantsColorPanelFromCommonCocoaPanels(void);\nvoid* _SoftLinkingLoadBundleFromLocation(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/CommonPanels/src/CommonPanels.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <CommonPanels/CommonPanels.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* CCP_FontPanelClose(void)\n{\n    if (verbose) puts(\"STUB: CCP_FontPanelClose called\");\n    return NULL;\n}\n\nvoid* CCP_FontPanelGetSelection(void)\n{\n    if (verbose) puts(\"STUB: CCP_FontPanelGetSelection called\");\n    return NULL;\n}\n\nvoid* CCP_FontPanelIsVisible(void)\n{\n    if (verbose) puts(\"STUB: CCP_FontPanelIsVisible called\");\n    return NULL;\n}\n\nvoid* CCP_FontPanelOpen(void)\n{\n    if (verbose) puts(\"STUB: CCP_FontPanelOpen called\");\n    return NULL;\n}\n\nvoid* CCP_FontPanelSelectFonts(void)\n{\n    if (verbose) puts(\"STUB: CCP_FontPanelSelectFonts called\");\n    return NULL;\n}\n\nvoid* CCP_NPickColor(void)\n{\n    if (verbose) puts(\"STUB: CCP_NPickColor called\");\n    return NULL;\n}\n\nvoid* CMCalibrateDisplay(void)\n{\n    if (verbose) puts(\"STUB: CMCalibrateDisplay called\");\n    return NULL;\n}\n\nvoid* Call_CommonCocoaPanels_NPickColor(void)\n{\n    if (verbose) puts(\"STUB: Call_CommonCocoaPanels_NPickColor called\");\n    return NULL;\n}\n\nvoid* DisposeCalibrateEventUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCalibrateEventUPP called\");\n    return NULL;\n}\n\nvoid* DisposeCalibrateUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCalibrateUPP called\");\n    return NULL;\n}\n\nvoid* DisposeCanCalibrateUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeCanCalibrateUPP called\");\n    return NULL;\n}\n\nvoid* DisposeNColorChangedUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeNColorChangedUPP called\");\n    return NULL;\n}\n\nvoid* FCAddCollection(void)\n{\n    if (verbose) puts(\"STUB: FCAddCollection called\");\n    return NULL;\n}\n\nvoid* FCAddFontDescriptorToCollection(void)\n{\n    if (verbose) puts(\"STUB: FCAddFontDescriptorToCollection called\");\n    return NULL;\n}\n\nvoid* FCCopyCollectionNames(void)\n{\n    if (verbose) puts(\"STUB: FCCopyCollectionNames called\");\n    return NULL;\n}\n\nvoid* FCCopyFontDescriptorsInCollection(void)\n{\n    if (verbose) puts(\"STUB: FCCopyFontDescriptorsInCollection called\");\n    return NULL;\n}\n\nvoid* FCFontDescriptorCreateWithFontAttributes(void)\n{\n    if (verbose) puts(\"STUB: FCFontDescriptorCreateWithFontAttributes called\");\n    return NULL;\n}\n\nvoid* FCFontDescriptorCreateWithName(void)\n{\n    if (verbose) puts(\"STUB: FCFontDescriptorCreateWithName called\");\n    return NULL;\n}\n\nvoid* FCRemoveCollection(void)\n{\n    if (verbose) puts(\"STUB: FCRemoveCollection called\");\n    return NULL;\n}\n\nvoid* FCRemoveFontDescriptorFromCollection(void)\n{\n    if (verbose) puts(\"STUB: FCRemoveFontDescriptorFromCollection called\");\n    return NULL;\n}\n\nvoid* FPIsFontPanelVisible(void)\n{\n    if (verbose) puts(\"STUB: FPIsFontPanelVisible called\");\n    return NULL;\n}\n\nvoid* FPShowHideFontPanel(void)\n{\n    if (verbose) puts(\"STUB: FPShowHideFontPanel called\");\n    return NULL;\n}\n\nvoid* GetColor(void)\n{\n    if (verbose) puts(\"STUB: GetColor called\");\n    return NULL;\n}\n\nvoid* GetHandleApplicationEventsUPP(void)\n{\n    if (verbose) puts(\"STUB: GetHandleApplicationEventsUPP called\");\n    return NULL;\n}\n\nvoid* GetHandleWinEventsUPP(void)\n{\n    if (verbose) puts(\"STUB: GetHandleWinEventsUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCalibrateEventUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCalibrateEventUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCalibrateUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCalibrateUPP called\");\n    return NULL;\n}\n\nvoid* InvokeCanCalibrateUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeCanCalibrateUPP called\");\n    return NULL;\n}\n\nvoid* InvokeNColorChangedUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeNColorChangedUPP called\");\n    return NULL;\n}\n\nvoid* LoadNSTypographyBundle(void)\n{\n    if (verbose) puts(\"STUB: LoadNSTypographyBundle called\");\n    return NULL;\n}\n\nvoid* NPickColor(void)\n{\n    if (verbose) puts(\"STUB: NPickColor called\");\n    return NULL;\n}\n\nvoid* NewCalibrateEventUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCalibrateEventUPP called\");\n    return NULL;\n}\n\nvoid* NewCalibrateUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCalibrateUPP called\");\n    return NULL;\n}\n\nvoid* NewCanCalibrateUPP(void)\n{\n    if (verbose) puts(\"STUB: NewCanCalibrateUPP called\");\n    return NULL;\n}\n\nvoid* NewNColorChangedUPP(void)\n{\n    if (verbose) puts(\"STUB: NewNColorChangedUPP called\");\n    return NULL;\n}\n\nvoid* SetFontInfoForSelection(void)\n{\n    if (verbose) puts(\"STUB: SetFontInfoForSelection called\");\n    return NULL;\n}\n\nvoid* SoftLinkingGetFunctionPointerFromBundleInDirectory(void)\n{\n    if (verbose) puts(\"STUB: SoftLinkingGetFunctionPointerFromBundleInDirectory called\");\n    return NULL;\n}\n\nvoid* UserWantsColorPanelFromCommonCocoaPanels(void)\n{\n    if (verbose) puts(\"STUB: UserWantsColorPanelFromCommonCocoaPanels called\");\n    return NULL;\n}\n\nvoid* _SoftLinkingLoadBundleFromLocation(void)\n{\n    if (verbose) puts(\"STUB: _SoftLinkingLoadBundleFromLocation called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/CMakeLists.txt",
    "content": "project(HIToolbox)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"994.6.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(HIToolbox\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/HIToolbox\"\n)\n\nadd_framework(HIToolbox\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/Keyboards.cpp\n\t\tsrc/Events.cpp\n\t\tsrc/CarbonEventsCore.c\n\t\tsrc/MacWindows.cpp\n\t\tsrc/TextInputSources.mm\n\t\tsrc/IBCarbonRuntime.c\n\t\tsrc/constants.c\n\n\tDEPENDENCIES\n\t\tCoreFoundation\n\t\tFoundation\n\t\tsystem\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/CarbonEvents.h",
    "content": "#ifndef _Carbon_Carbon_Events_H_\n#define _Carbon_Carbon_Events_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nEventTargetRef GetApplicationEventTarget(void);\nOSStatus GetEventDispatcherTarget();\n\nOSStatus ProcessHICommand(const HICommand * a);\n\nvoid RunApplicationEventLoop(void);\n\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/CarbonEventsCore.h",
    "content": "#ifndef _Carbon_Carbon_Events_Core_H_\n#define _Carbon_Carbon_Events_Core_H_\n\n#include <CoreFoundation/CFBase.h>\n#include <CoreServices/MacTypes.h>\n#include <HIToolbox/Menus.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef struct OpaqueEventRef* EventRef;\ntypedef void* EventHandlerCallRef;\ntypedef OSType EventParamType;\n\ntypedef double EventTime;\ntypedef UInt16 EventMask;\ntypedef UInt16 EventKind;\ntypedef void* EventTargetRef;\ntypedef OSType EventParamName;\ntypedef struct EventTypeSpec { OSType eventClass; UInt32 eventKind; } EventTypeSpec;\ntypedef EventTime EventTimeout;\ntypedef void* EventHandlerProcPtr;\ntypedef UInt32 EventAttributes;\ntypedef struct OpaqueEventQueueRef* EventQueueRef;\ntypedef void* EventHandlerUPP;\ntypedef SInt16 EventPriority;\ntypedef void* EventHandlerRef;\n\n\ntypedef struct HICommand {\n\tUInt32 attributes;\n\tUInt32 commandID;\n\tstruct {\n\t\tMenuRef menuRef;\n\t\tMenuItemIndex menuItemIndex;\n\t} menu;\n} HICommand;\ntypedef UInt32 KeyMap[4];\n\n\nOSStatus CallNextEventHandler(EventHandlerCallRef a, EventRef b);\nOSStatus CreateEvent(CFAllocatorRef a, OSType b, UInt32 c, EventTime d, EventAttributes e, EventRef* f);\nOSType GetEventClass(EventRef a);\nUInt32 GetEventKind(EventRef a);\nOSStatus GetEventParameter(EventRef a, EventParamName b, EventParamType c, EventParamType* d, ByteCount e, ByteCount* f, void* g);\n\nEventQueueRef GetMainEventQueue();\nOSStatus InstallEventHandler(EventTargetRef a, EventHandlerUPP b, ItemCount c, const EventTypeSpec* d, void* e, EventHandlerRef* f);\n\n\nEventHandlerUPP NewEventHandlerUPP(EventHandlerProcPtr a);\nOSStatus PostEventToQueue(EventQueueRef a, EventRef b, EventPriority c);\n\nOSStatus ReceiveNextEvent(ItemCount a, const EventTypeSpec* b, EventTimeout c, Boolean d, EventRef* e);\n\nvoid ReleaseEvent(EventRef a);\nOSStatus RemoveEventHandler(EventHandlerRef a);\n\nOSStatus SendEventToEventTarget(EventRef a, EventTargetRef b);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/Dialogs.h",
    "content": "#ifndef _Carbon_Dialogs_H_\n#define _Carbon_Dialogs_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef int16_t AlertType;\ntypedef void* DialogRef;\ntypedef DialogRef DialogPtr;\ntypedef uint32_t AlertStdCFStringAlertParamRec;\ntypedef void* AlertStdCFStringAlertParamPtr;\n\ntypedef int16_t DialogItemIndex;\ntypedef void* ModalFilterUPP;\n\nOSStatus CreateStandardAlert(AlertType a, CFStringRef b, CFStringRef c, const AlertStdCFStringAlertParamRec * d, DialogRef * e);\nOSStatus GetStandardAlertDefaultParams(AlertStdCFStringAlertParamPtr a, UInt32 b);\n\nOSStatus RunStandardAlert(DialogRef a, ModalFilterUPP b, DialogItemIndex * c);\n\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/Drag.h",
    "content": "#ifndef _HITOOLBOX_DRAG_H_\n#define _HITOOLBOX_DRAG_H_\n\ntypedef struct OpaqueDragRef* DragRef;\ntypedef DragRef DragReference;\n\n#endif // _HITOOLBOX_DRAG_H_\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/Events.h",
    "content": "#ifndef _Carbon_Events_H_\n#define _Carbon_Events_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n#include <CoreServices/MacTypes.h>\n#include <HIToolbox/CarbonEventsCore.h>\n\ntypedef OSType EventParamName;\ntypedef OSType EventParamType;\n\nvoid GetKeys(KeyMap theKeys);\nvoid FlushEvents(EventMask a, EventMask b);\n\nOSStatus SetEventMask(EventMask a);\nOSStatus SetEventParameter(EventRef a, EventParamName b, EventParamType c, UInt32 d, const void * e);\n\n\nextern UInt8 LMGetKbdType(void);\n\nenum {\n  kVK_ANSI_A                    = 0x00,\n  kVK_ANSI_S                    = 0x01,\n  kVK_ANSI_D                    = 0x02,\n  kVK_ANSI_F                    = 0x03,\n  kVK_ANSI_H                    = 0x04,\n  kVK_ANSI_G                    = 0x05,\n  kVK_ANSI_Z                    = 0x06,\n  kVK_ANSI_X                    = 0x07,\n  kVK_ANSI_C                    = 0x08,\n  kVK_ANSI_V                    = 0x09,\n  kVK_ANSI_B                    = 0x0B,\n  kVK_ANSI_Q                    = 0x0C,\n  kVK_ANSI_W                    = 0x0D,\n  kVK_ANSI_E                    = 0x0E,\n  kVK_ANSI_R                    = 0x0F,\n  kVK_ANSI_Y                    = 0x10,\n  kVK_ANSI_T                    = 0x11,\n  kVK_ANSI_1                    = 0x12,\n  kVK_ANSI_2                    = 0x13,\n  kVK_ANSI_3                    = 0x14,\n  kVK_ANSI_4                    = 0x15,\n  kVK_ANSI_6                    = 0x16,\n  kVK_ANSI_5                    = 0x17,\n  kVK_ANSI_Equal                = 0x18,\n  kVK_ANSI_9                    = 0x19,\n  kVK_ANSI_7                    = 0x1A,\n  kVK_ANSI_Minus                = 0x1B,\n  kVK_ANSI_8                    = 0x1C,\n  kVK_ANSI_0                    = 0x1D,\n  kVK_ANSI_RightBracket         = 0x1E,\n  kVK_ANSI_O                    = 0x1F,\n  kVK_ANSI_U                    = 0x20,\n  kVK_ANSI_LeftBracket          = 0x21,\n  kVK_ANSI_I                    = 0x22,\n  kVK_ANSI_P                    = 0x23,\n  kVK_ANSI_L                    = 0x25,\n  kVK_ANSI_J                    = 0x26,\n  kVK_ANSI_Quote                = 0x27,\n  kVK_ANSI_K                    = 0x28,\n  kVK_ANSI_Semicolon            = 0x29,\n  kVK_ANSI_Backslash            = 0x2A,\n  kVK_ANSI_Comma                = 0x2B,\n  kVK_ANSI_Slash                = 0x2C,\n  kVK_ANSI_N                    = 0x2D,\n  kVK_ANSI_M                    = 0x2E,\n  kVK_ANSI_Period               = 0x2F,\n  kVK_ANSI_Grave                = 0x32,\n  kVK_ANSI_KeypadDecimal        = 0x41,\n  kVK_ANSI_KeypadMultiply       = 0x43,\n  kVK_ANSI_KeypadPlus           = 0x45,\n  kVK_ANSI_KeypadClear          = 0x47,\n  kVK_ANSI_KeypadDivide         = 0x4B,\n  kVK_ANSI_KeypadEnter          = 0x4C,\n  kVK_ANSI_KeypadMinus          = 0x4E,\n  kVK_ANSI_KeypadEquals         = 0x51,\n  kVK_ANSI_Keypad0              = 0x52,\n  kVK_ANSI_Keypad1              = 0x53,\n  kVK_ANSI_Keypad2              = 0x54,\n  kVK_ANSI_Keypad3              = 0x55,\n  kVK_ANSI_Keypad4              = 0x56,\n  kVK_ANSI_Keypad5              = 0x57,\n  kVK_ANSI_Keypad6              = 0x58,\n  kVK_ANSI_Keypad7              = 0x59,\n  kVK_ANSI_Keypad8              = 0x5B,\n  kVK_ANSI_Keypad9              = 0x5C\n};\n\n// independent of keyboard layout\nenum {\n  kVK_Return                    = 0x24,\n  kVK_Tab                       = 0x30,\n  kVK_Space                     = 0x31,\n  kVK_Delete                    = 0x33,\n  kVK_Escape                    = 0x35,\n  kVK_Command                   = 0x37,\n  kVK_Shift                     = 0x38,\n  kVK_CapsLock                  = 0x39,\n  kVK_Option                    = 0x3A,\n  kVK_Control                   = 0x3B,\n  kVK_RightShift                = 0x3C,\n  kVK_RightOption               = 0x3D,\n  kVK_RightControl              = 0x3E,\n  kVK_Function                  = 0x3F,\n  kVK_F17                       = 0x40,\n  kVK_VolumeUp                  = 0x48,\n  kVK_VolumeDown                = 0x49,\n  kVK_Mute                      = 0x4A,\n  kVK_F18                       = 0x4F,\n  kVK_F19                       = 0x50,\n  kVK_F20                       = 0x5A,\n  kVK_F5                        = 0x60,\n  kVK_F6                        = 0x61,\n  kVK_F7                        = 0x62,\n  kVK_F3                        = 0x63,\n  kVK_F8                        = 0x64,\n  kVK_F9                        = 0x65,\n  kVK_F11                       = 0x67,\n  kVK_F13                       = 0x69,\n  kVK_F16                       = 0x6A,\n  kVK_F14                       = 0x6B,\n  kVK_F10                       = 0x6D,\n  kVK_F12                       = 0x6F,\n  kVK_F15                       = 0x71,\n  kVK_Help                      = 0x72,\n  kVK_Home                      = 0x73,\n  kVK_PageUp                    = 0x74,\n  kVK_ForwardDelete             = 0x75,\n  kVK_F4                        = 0x76,\n  kVK_End                       = 0x77,\n  kVK_F2                        = 0x78,\n  kVK_PageDown                  = 0x79,\n  kVK_F1                        = 0x7A,\n  kVK_LeftArrow                 = 0x7B,\n  kVK_RightArrow                = 0x7C,\n  kVK_DownArrow                 = 0x7D,\n  kVK_UpArrow                   = 0x7E\n};\n\ntypedef UInt16 EventModifiers;\n\ntypedef struct EventRecord {\n  EventKind what;\n  unsigned long message;\n  uint32_t when;\n  Point where;\n  EventModifiers modifiers;\n} EventRecord;\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/HIObject.h",
    "content": "#ifndef _HITOOLBOX_HIOBJECT_H_\n#define _HITOOLBOX_HIOBJECT_H_\n\ntypedef struct OpaqueControlRef* ControlRef;\ntypedef ControlRef ControlHandle;\n\n#endif // _HITOOLBOX_HIOBJECT_H_\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/IBCarbonRuntime.h",
    "content": "#ifndef _CARBON_IB_CARBON_RUNTIME_H_\n#define _CARBON_IB_CARBON_RUNTIME_H_\n\n#include <CoreFoundation/CoreFoundation.h>\n#include <CarbonCore/MacErrors.h>\n#include <CoreFoundation/CFBase.h>\n#include <HIToolbox/Menus.h>\n#include <HIToolbox/MacWindows.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nenum {\n\tkIBCarbonRuntimeCantFindNibFile = -10960,\n\tkIBCarbonRuntimeObjectNotOfRequestedType = -10961,\n\tkIBCarbonRuntimeCantFindObject = -10962\n};\n\ntypedef struct OpaqueIBNibRef * IBNibRef;\n\nOSStatus CreateMenuBarFromNib(IBNibRef inNibRef, CFStringRef inName, Handle *outMenuBar);\nOSStatus CreateMenuFromNib(IBNibRef inNibRef, CFStringRef inName, MenuRef *outMenuRef);\nOSStatus CreateNibReference(CFStringRef inNibName, IBNibRef *outNibRef);\nOSStatus CreateNibReferenceWithCFBundle(CFBundleRef inBundle, CFStringRef inNibName, IBNibRef *outNibRef);\nOSStatus CreateWindowFromNib(IBNibRef inNibRef, CFStringRef inName, WindowRef *outWindow);\n\nvoid DisposeNibReference(IBNibRef inNibRef);\n\nOSStatus SetMenuBarFromNib(IBNibRef inNibRef, CFStringRef inName);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif // _CARBON_IB_CARBON_RUNTIME_H_\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/Keyboards.h",
    "content": "#ifndef HITOOLBOX_KEYBOARDS_H\n#define HITOOLBOX_KEYBOARDS_H\n\n#include \"CoreServices/MacTypes.h\"\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n\nenum {\n\tkKeyboardJIS                  = 'JIS ',\n\tkKeyboardANSI                 = 'ANSI',\n\tkKeyboardISO                  = 'ISO ',\n\tkKeyboardUnknown              =  kUnknownType /* ???? */\n};\n\ntypedef OSType PhysicalKeyboardLayoutType;\n\nextern PhysicalKeyboardLayoutType KBGetLayoutType(SInt16 iKeyboardType);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/Lists.h",
    "content": "#include <CoreServices/CoreServices.h>\n#include <QD/QD.h>\n\n#include <HIToolbox/HIObject.h>\n\ntypedef Point Cell;\ntypedef Rect ListBounds;\ntypedef char DataArray[32001];\ntypedef char* DataPtr;\ntypedef DataPtr* DataHandle;\ntypedef CALLBACK_API(short, ListSearchProcPtr)(Ptr aPtr, Ptr bPtr, short aLen, short bLen);\ntypedef CALLBACK_API( Boolean , ListClickLoopProcPtr )(void);\ntypedef STACK_UPP_TYPE(ListSearchProcPtr) ListSearchUPP;\ntypedef STACK_UPP_TYPE(ListClickLoopProcPtr) ListClickLoopUPP;\n\nstruct ListRec {\n\tRect rView;\n\tGrafPtr port;\n\tPoint indent;\n\tPoint cellSize;\n\tListBounds visible;\n\tControlRef vScroll;\n\tControlRef hScroll;\n\tSInt8 selFlags;\n\tBoolean lActive;\n\tSInt8 lReserved;\n\tSInt8 listFlags;\n\tlong clikTime;\n\tPoint clikLoc;\n\tPoint mouseLoc;\n\tListClickLoopUPP lClickLoop;\n\tCell lastClick;\n\tlong refCon;\n\tHandle listDefProc;\n\tHandle userHandle;\n\tListBounds dataBounds;\n\tDataHandle cells;\n\tshort maxIndex;\n\tshort cellArray[1];\n};\ntypedef struct ListRec ListRec;\ntypedef ListRec* ListPtr;\ntypedef ListPtr* ListHandle;\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/MacWindows.h",
    "content": "#ifndef MACWINDOWS_H\n#define MACWINDOWS_H\n\n//#include <X11/Xlib.h>\n#include <CarbonCore/MacErrors.h>\n#include \"CoreServices/MacTypes.h\"\n#include <stdint.h>\n#include <QD/QD.h>\n\n#pragma pack(2)\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef WindowRef HIWindowRef;\ntypedef int WindowGroupRef;\n\ntypedef uint32_t WindowClass;\ntypedef OptionBits WindowAttributes;\ntypedef OptionBits WindowGroupAttributes;\ntypedef uint32_t WindowRegionCode;\n\ntypedef Rect HIRect;\ntypedef void* TransitionWindowOptions;\ntypedef uint32_t WindowTransitionAction;\ntypedef uint32_t WindowTransitionEffect;\n\nOSStatus CreateNewWindow(WindowClass cls, WindowAttributes attr, const Rect* rect, WindowRef* newWindow);\nvoid DisposeWindow(WindowRef wnd);\n\nvoid ShowWindow(WindowRef wnd);\nvoid HideWindow(WindowRef wnd);\nvoid ShowHide(WindowRef wnd, Boolean showFlag);\nBoolean IsWindowVisible(WindowRef wnd);\n\n\nOSStatus SelectWindow(WindowRef a);\nOSStatus SetWindowContentColor(WindowRef a, const RGBColor * b);\nOSStatus SetWindowGroup(WindowRef a, WindowGroupRef b);\nOSStatus SetWindowGroupLevel(WindowGroupRef a, SInt32 b);\nOSStatus SetWindowTitleWithCFString(WindowRef a, CFStringRef b);\nOSStatus TransitionWindowWithOptions(WindowRef a, WindowTransitionEffect b, WindowTransitionAction c, const HIRect * d, Boolean e, TransitionWindowOptions * f);\nOSStatus CreateWindowGroup(WindowGroupAttributes a, WindowGroupRef *b);\nOSStatus GetWindowBounds(WindowRef a, WindowRegionCode b, Rect * c);\nOSStatus GetWindowEventTarget(WindowRef a);\nOSStatus GetWindowGroupLevel(WindowGroupRef a, SInt32 * b);\nWindowGroupRef GetWindowGroupOfClass(WindowClass a);\nCGrafPtr GetWindowPort(WindowRef a);\nRect* GetWindowPortBounds(WindowRef window, Rect * bounds);\nBoolean IsValidWindowPtr(WindowRef a);\nOSStatus ReleaseWindow(WindowRef a);\n\n\n#ifdef __cplusplus\n}\n#endif\n\n#pragma pack()\n\n#endif\n\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/Menus.h",
    "content": "#ifndef _Carbon_Menus_H_\n#define _Carbon_Menus_H_\n\n#include <CoreServices/MacTypes.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef struct OpaqueMenuRef* MenuRef;\ntypedef MenuRef MenuHandle;\ntypedef UInt16\tMenuItemIndex;\n\nvoid ShowMenuBar(void);\nvoid HideMenuBar(void);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/Notification.h",
    "content": "#ifndef _Carbon_Notification_H_\n#define _Carbon_Notification_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef void* NMRecPtr;\n\nOSErr NMInstall(NMRecPtr a);\n\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/Scrap.h",
    "content": "#ifndef _Carbon_Scrap_H_\n#define _Carbon_Scrap_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef void* ScrapRef;\ntypedef uint32_t ScrapFlavorType;\ntypedef uint32_t ScrapFlavorFlags;\ntypedef uint32_t ScrapFlavorType;\n\nOSStatus PutScrapFlavor(ScrapRef a, ScrapFlavorType b, ScrapFlavorFlags c, Size d, const void * e);\n\nOSStatus GetScrapByName(CFStringRef a, OptionBits b, ScrapRef * c);\nOSStatus GetScrapFlavorData(ScrapRef a, ScrapFlavorType b, Size * c, void * d);\nOSStatus GetScrapFlavorSize(ScrapRef a, ScrapFlavorType b, Size * c);\n\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/TextEdit.h",
    "content": "#ifndef _HITOOLBOX_TEXTEDIT_H_\n#define _HITOOLBOX_TEXTEDIT_H_\n\n#include <CoreServices/CoreServices.h>\n#include <QD/QD.h>\n\ntypedef struct TERec TERec;\ntypedef TERec* TEPtr;\ntypedef TEPtr* TEHandle;\n\ntypedef CALLBACK_API(void, HighHookProcPtr)(const Rect* r, TEPtr pTE);\ntypedef CALLBACK_API(Boolean, EOLHookProcPtr)(char theChar, TEPtr pTE, TEHandle hTE);\ntypedef CALLBACK_API(void, CaretHookProcPtr)(const Rect* r, TEPtr pTE);\ntypedef CALLBACK_API(unsigned short, WidthHookProcPtr)(unsigned short textLen, unsigned short textOffset, void* textBufferPtr, TEPtr pTE, TEHandle hTE);\ntypedef CALLBACK_API(unsigned short, TextWidthHookProcPtr)(unsigned short textLen, unsigned short textOffset, void* textBufferPtr, TEPtr pTE, TEHandle hTE);\ntypedef CALLBACK_API(unsigned short, NWidthHookProcPtr)(unsigned short styleRunLen, unsigned short styleRunOffset, short slop, short direction, void *textBufferPtr, short* lineStart, TEPtr pTE, TEHandle hTE);\ntypedef CALLBACK_API(void, DrawHookProcPtr)(unsigned short textOffset, unsigned short drawLen, void* textBufferPtr, TEPtr pTE, TEHandle hTE);\ntypedef CALLBACK_API(Boolean, HitTestHookProcPtr)(unsigned short styleRunLen, unsigned short styleRunOffset, unsigned short slop, void* textBufferPtr, TEPtr pTE, TEHandle hTE, unsigned short *pixelWidth, unsigned short* charOffset, Boolean* pixelInChar);\ntypedef CALLBACK_API(void, TEFindWordProcPtr)(unsigned short currentPos, short caller, TEPtr pTE, TEHandle hTE, unsigned short* wordStart, unsigned short* wordEnd);\ntypedef CALLBACK_API(void, TERecalcProcPtr)(TEPtr pTE, unsigned short changeLength, unsigned short* lineStart, unsigned short* firstChar, unsigned short* lastChar);\ntypedef CALLBACK_API(void, TEDoTextProcPtr)(TEPtr pTE, unsigned short firstChar, unsigned short lastChar, short selector, GrafPtr* currentGrafPort, short* charPosition);\ntypedef CALLBACK_API(Boolean, TEClickLoopProcPtr)(TEPtr pTE);\ntypedef CALLBACK_API(Boolean, WordBreakProcPtr)(Ptr text, short charPos);\n\ntypedef STACK_UPP_TYPE(HighHookProcPtr) HighHookUPP;\ntypedef STACK_UPP_TYPE(EOLHookProcPtr) EOLHookUPP;\ntypedef STACK_UPP_TYPE(CaretHookProcPtr) CaretHookUPP;\ntypedef STACK_UPP_TYPE(WidthHookProcPtr) WidthHookUPP;\ntypedef STACK_UPP_TYPE(TextWidthHookProcPtr) TextWidthHookUPP;\ntypedef STACK_UPP_TYPE(NWidthHookProcPtr) NWidthHookUPP;\ntypedef STACK_UPP_TYPE(DrawHookProcPtr) DrawHookUPP;\ntypedef STACK_UPP_TYPE(HitTestHookProcPtr) HitTestHookUPP;\ntypedef STACK_UPP_TYPE(TEFindWordProcPtr) TEFindWordUPP;\ntypedef STACK_UPP_TYPE(TERecalcProcPtr) TERecalcUPP;\ntypedef STACK_UPP_TYPE(TEDoTextProcPtr) TEDoTextUPP;\ntypedef STACK_UPP_TYPE(TEClickLoopProcPtr) TEClickLoopUPP;\ntypedef STACK_UPP_TYPE(WordBreakProcPtr) WordBreakUPP;\n\nstruct TERec {\n\tRect destRect;\n\tRect viewRect;\n\tRect selRect;\n\tshort lineHeight;\n\tshort fontAscent;\n\tPoint selPoint;\n\tshort selStart;\n\tshort selEnd;\n\tshort active;\n\tWordBreakUPP wordBreak;\n\tTEClickLoopUPP clickLoop;\n\tlong clickTime;\n\tshort clickLoc;\n\tlong caretTime;\n\tshort caretState;\n\tshort just;\n\tshort teLength;\n\tHandle hText;\n\tlong hDispatchRec;\n\tshort clikStuff;\n\tshort crOnly;\n\tshort txFont;\n\tStyleField txFace;\n\tshort txMode;\n\tshort txSize;\n\tGrafPtr inPort;\n\tHighHookUPP highHook;\n\tCaretHookUPP caretHook;\n\tshort nLines;\n\tshort lineStarts[16001];\n};\n\n#endif // _HITOOLBOX_TEXTEDIT_H_\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/TextInputSources.h",
    "content": "#ifndef _Carbon_TextInputSources_H_\n#define _Carbon_TextInputSources_H_\n#include <CoreFoundation/CFString.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nextern const CFStringRef kTISNotifySelectedKeyboardInputSourceChanged;\n\nextern const CFStringRef kTISPropertyInputSourceID;\nextern const CFStringRef kTISPropertyUnicodeKeyLayoutData;\nextern const CFStringRef kTISCategoryKeyboardInputSource;\nextern const CFStringRef kTISPropertyInputSourceCategory;\nextern const CFStringRef kTISPropertyInputSourceType;\nextern const CFStringRef kTISTypeKeyboardLayout;\nextern const CFStringRef kTISPropertyInputSourceLanguages;\nextern const CFStringRef kTISPropertyLocalizedName;\n\ntypedef struct __TISInputSource* TISInputSourceRef;\n\nextern TISInputSourceRef TISCopyCurrentKeyboardLayoutInputSource(void);\nextern TISInputSourceRef TISCopyCurrentKeyboardInputSource(void);\n\nextern void* TISGetInputSourceProperty(TISInputSourceRef inputSourceRef, CFStringRef key);\n\nextern TISInputSourceRef TISCopyCurrentASCIICapableKeyboardLayoutInputSource(void);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/include/HIToolbox/TextServices.h",
    "content": "#ifndef _Carbon_TextServices_H_\n#define _Carbon_TextServices_H_\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\ntypedef uint32_t TSMDocumentID;\ntypedef OSType InterfaceTypeList[1];\n\nOSErr ActivateTSMDocument(TSMDocumentID a);\nOSErr DeactivateTSMDocument(TSMDocumentID a);\nOSErr NewTSMDocument(short a, InterfaceTypeList b, TSMDocumentID * c, long d);\n\n\nOSErr UseInputWindow(TSMDocumentID a, Boolean b);\n\n#ifdef __cplusplus\n}\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/src/CarbonEventsCore.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2025 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <HIToolbox/CarbonEventsCore.h>\n\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nOSStatus CallNextEventHandler(EventHandlerCallRef a, EventRef b)\n{\n    if (verbose) puts(\"STUB: CallNextEventHandler called\");\n\treturn 0;\n}\n\nOSStatus CreateEvent(CFAllocatorRef a, OSType b, UInt32 c, EventTime d, EventAttributes e, EventRef* f)\n{\n    if (verbose) puts(\"STUB: CreateEvent called\");\n\treturn 0;\n}\n\nOSType GetEventClass(EventRef a)\n{\n    if (verbose) puts(\"STUB: GetEventClass called\");\n\treturn 0;\n}\n\nUInt32 GetEventKind(EventRef a)\n{\n    if (verbose) puts(\"STUB: GetEventKind called\");\n\treturn 0;\n}\n\nOSStatus GetEventParameter(EventRef a, EventParamName b, EventParamType c, EventParamType* d, ByteCount e, ByteCount* f, void* g)\n{\n    if (verbose) puts(\"STUB: GetEventParameter called\");\n\treturn 0;\n}\n\nEventQueueRef GetMainEventQueue()\n{\n    if (verbose) puts(\"STUB: GetMainEventQueue called\");\n\treturn 0;\n}\n\nOSStatus InstallEventHandler(EventTargetRef a, EventHandlerUPP b, ItemCount c, const EventTypeSpec* d, void* e, EventHandlerRef* f)\n{\n    if (verbose) puts(\"STUB: InstallEventHandler called\");\n\treturn 0;\n}\n\nEventHandlerUPP NewEventHandlerUPP(EventHandlerProcPtr a)\n{\n    if (verbose) puts(\"STUB: NewEventHandlerUPP called\");\n\treturn (EventHandlerUPP)0;\n}\n\nOSStatus PostEventToQueue(EventQueueRef a, EventRef b, EventPriority c)\n{\n    if (verbose) puts(\"STUB: PostEventToQueue called\");\n\treturn 0;\n}\n\nOSStatus ReceiveNextEvent(ItemCount a, const EventTypeSpec* b, EventTimeout c, Boolean d, EventRef* e)\n{\n    if (verbose) puts(\"STUB: ReceiveNextEvent called\");\n\treturn 0;\n}\n\nvoid ReleaseEvent(EventRef a)\n{\n    if (verbose) puts(\"STUB: ReleaseEvent called\");\n}\n\nOSStatus RemoveEventHandler(EventHandlerRef a)\n{\n    if (verbose) puts(\"STUB: RemoveEventHandler called\");\n\treturn 0;\n}\n\nOSStatus SendEventToEventTarget(EventRef a, EventTargetRef b)\n{\n    if (verbose) puts(\"STUB: SendEventToEventTarget called\");\n\treturn 0;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/src/Events.cpp",
    "content": "#include <HIToolbox/Events.h>\n\nUInt8 LMGetKbdType(void)\n{\n\treturn 0;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/src/IBCarbonRuntime.c",
    "content": "#include <HIToolbox/IBCarbonRuntime.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\n\nOSStatus CreateMenuBarFromNib(IBNibRef inNibRef, CFStringRef inName, Handle *outMenuBar)\n{\n    if (verbose) {\n        puts(\"STUB: CreateMenuBarFromNib\");\n    }\n\n\treturn noErr;\n}\nOSStatus CreateMenuFromNib(IBNibRef inNibRef, CFStringRef inName, MenuRef *outMenuRef)\n{\n    if (verbose) {\n        puts(\"STUB: CreateMenuFromNib\");\n    }\n\n\treturn noErr;\n}\nOSStatus CreateNibReference(CFStringRef inNibName, IBNibRef *outNibRef)\n{\n    if (verbose) {\n        puts(\"STUB: CreateNibReference\");\n    }\n\n\treturn noErr;\n}\nOSStatus CreateNibReferenceWithCFBundle(CFBundleRef inBundle, CFStringRef inNibName, IBNibRef *outNibRef)\n{\n    if (verbose) {\n        puts(\"STUB: CreateNibReferenceWithCFBundle\");\n    }\n\n\treturn noErr;\n}\nOSStatus CreateWindowFromNib(IBNibRef inNibRef, CFStringRef inName, WindowRef *outWindow)\n{\n    if (verbose) {\n        puts(\"STUB: CreateWindowFromNib\");\n    }\n\n\treturn noErr;\n}\n\nvoid DisposeNibReference(IBNibRef inNibRef)\n{\n    if (verbose) {\n        puts(\"STUB: DisposeNibReference\");\n    }\n}\n\nOSStatus SetMenuBarFromNib(IBNibRef inNibRef, CFStringRef inName)\n{\n    if (verbose) {\n        puts(\"STUB: SetMenuBarFromNib\");\n    }\n\n\treturn noErr;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/src/Keyboards.cpp",
    "content": "#include <HIToolbox/Keyboards.h>\n\nPhysicalKeyboardLayoutType KBGetLayoutType(SInt16 iKeyboardType)\n{\n\t// We behave like ANSI\n\treturn kKeyboardANSI;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/src/MacWindows.cpp",
    "content": "#include <HIToolbox/MacWindows.h>\n#include <stdlib.h>\n#include <stdio.h>\n\n#define NO_X11 \n\n#ifndef NO_X11\n#include <X11/Xlib.h>\n#endif\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\n\n#ifndef NO_X11\nstatic Display* g_display = nullptr;\n#endif\nstatic void closeDisplay() __attribute__((destructor));\n\nnamespace Darling\n{\n\nnamespace Carbon\n{\n\n#ifndef NO_X11\nDisplay* getDisplay()\n{\n\tif (g_display)\n\t\treturn g_display;\n\n\tg_display = XOpenDisplay(nullptr);\n\n\tif (!g_display)\n\t{\n\t\tfprintf(stderr, \"Darling Carbon: Cannot open a connection to the X server!\\n\");\n\t\tif (!getenv(\"DISPLAY\"))\n\t\t\tfprintf(stderr, \"The application you are trying to run requires an X server and cannot be run only in the console.\\n\");\n\t\tabort();\n\t}\n\n\treturn g_display;\n}\n#endif\n\nvoid closeDisplay()\n{\n#ifndef NO_X11\n\tif (g_display)\n\t{\n\t\tXCloseDisplay(g_display);\n\t\tg_display = nullptr;\n\t}\n#endif\n}\n\n}\n}\n\nOSStatus CreateNewWindow(WindowClass cls, WindowAttributes attr, const Rect* rect, WindowRef* newWindow)\n{\n#ifndef NO_X11\n\tWindow win;\n\tDisplay* dpy;\n\tint blackColor, whiteColor;\n\n\t*newWindow = 0;\n\n\tif (rect->right < rect->left || rect->bottom < rect->top)\n\t\treturn paramErr;\n\n\tdpy = Darling::Carbon::getDisplay();\n\tblackColor = BlackPixel(dpy, DefaultScreen(dpy));\n\twhiteColor = WhitePixel(dpy, DefaultScreen(dpy));\n\n\twin = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), rect->left,\n\t\t\trect->top, rect->right - rect->left,\n\t\t\trect->bottom - rect->top, 0, blackColor, whiteColor);\n\n\tif (!win)\n\t\treturn paramErr;\n\n\t*newWindow = win;\n#endif\n\treturn noErr;\n}\n\nvoid DisposeWindow(WindowRef wnd)\n{\n#ifndef NO_X11\n\tif (wnd)\n\t\tXDestroyWindow(Darling::Carbon::getDisplay(), wnd);\n#endif\n}\n\nvoid ShowWindow(WindowRef wnd)\n{\n#ifndef NO_X11\n\tif (wnd)\n\t\tXMapWindow(Darling::Carbon::getDisplay(), Window(wnd));\n#endif\n}\n\nvoid HideWindow(WindowRef wnd)\n{\n#ifndef NO_X11\n\tif (wnd)\n\t\tXUnmapWindow(Darling::Carbon::getDisplay(), Window(wnd));\n#endif\n}\n\nvoid ShowHide(WindowRef wnd, Boolean showFlag)\n{\n\tif (showFlag)\n\t\tShowWindow(wnd);\n\telse\n\t\tHideWindow(wnd);\n}\n\nBoolean IsWindowVisible(WindowRef wnd)\n{\n\treturn 0;\n}\n\n\nOSStatus SelectWindow(WindowRef a)\n{\n\treturn 0;\n}\n\nOSStatus SetWindowContentColor(WindowRef a, const RGBColor * b)\n{\n\treturn 0;\n}\n\nOSStatus SetWindowGroup(WindowRef a, WindowGroupRef b)\n{\n\treturn 0;\n}\n\nOSStatus SetWindowGroupLevel(WindowGroupRef a, SInt32 b)\n{\n\treturn 0;\n}\n\nOSStatus SetWindowTitleWithCFString(WindowRef a, CFStringRef b)\n{\n\treturn 0;\n}\n\nOSStatus TransitionWindowWithOptions(WindowRef a, WindowTransitionEffect b, WindowTransitionAction c, const HIRect * d, Boolean e, TransitionWindowOptions * f)\n{\n\treturn 0;\n}\n\nOSStatus CreateWindowGroup(WindowGroupAttributes a, WindowGroupRef *b)\n{\n\treturn 0;\n}\n\nOSStatus GetWindowBounds(WindowRef a, WindowRegionCode b, Rect * c)\n{\n\treturn 0;\n}\n\nOSStatus GetWindowEventTarget(WindowRef a)\n{\n\treturn 0;\n}\n\nOSStatus GetWindowGroupLevel(WindowGroupRef a, SInt32 * b)\n{\n\treturn 0;\n}\n\nWindowGroupRef GetWindowGroupOfClass(WindowClass a)\n{\n\treturn (WindowGroupRef)0;\n}\n\nCGrafPtr GetWindowPort(WindowRef a)\n{\n\treturn (CGrafPtr)0;\n}\n\nRect* GetWindowPortBounds(WindowRef window, Rect * bounds)\n{\n\treturn NULL;\n}\n\nBoolean IsValidWindowPtr(WindowRef a)\n{\n\treturn 0;\n}\n\nOSStatus ReleaseWindow(WindowRef a)\n{\n\treturn 0;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/src/TextInputSources.mm",
    "content": "#include <HIToolbox/TextInputSources.h>\n#include <CoreFoundation/CFDictionary.h>\n#include <CoreFoundation/CFData.h>\n#include <os/lock.h>\n#import <AppKit/NSDisplay.h>\n\nstatic os_unfair_lock g_keyboardLock = OS_UNFAIR_LOCK_INIT;\nstatic int g_lastKeyboardLayoutId = -1;\nstatic TISInputSourceRef g_lastKeyboardLayout = NULL;\n\nconst CFStringRef kTISPropertyInputSourceLanguages = CFSTR(\"TISPropertyInputSourceLanguages\");\nconst CFStringRef kTISPropertyLocalizedName = CFSTR(\"TISPropertyLocalizedName\");\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nTISInputSourceRef TISCopyCurrentKeyboardInputSource(void)\n{\n\treturn TISCopyCurrentKeyboardLayoutInputSource();\n}\n\nTISInputSourceRef TISCopyCurrentKeyboardLayoutInputSource(void)\n{\n\tNSDisplay* display = [NSClassFromString(@\"NSDisplay\") currentDisplay];\n\tif (!display)\n\t\treturn NULL;\n\tconst int curLayoutId = [display keyboardLayoutId];\n\n\tif (g_lastKeyboardLayoutId != -1 && g_lastKeyboardLayout != NULL)\n\t{\n\t\tos_unfair_lock_lock(&g_keyboardLock);\n\t\tif (curLayoutId == g_lastKeyboardLayoutId)\n\t\t{\n\t\t\tTISInputSourceRef rv = (TISInputSourceRef) CFRetain((CFDictionaryRef) g_lastKeyboardLayout);\n\t\t\tos_unfair_lock_unlock(&g_keyboardLock);\n\t\t\treturn rv;\n\t\t}\n\t\tos_unfair_lock_unlock(&g_keyboardLock);\n\t}\n\n\tuint32_t length;\n\tUCKeyboardLayout* layout = [display keyboardLayout: &length];\n\tif (!layout)\n\t\treturn NULL;\n\n\tCFDataRef data = CFDataCreate(NULL, (UInt8*) layout, length);\n\tfree(layout);\n\n\tNSString *name, *fullName;\n\t[display keyboardLayoutName: &name fullName:&fullName];\n\n\tconst void* keys[] = { kTISPropertyUnicodeKeyLayoutData, kTISPropertyLocalizedName, kTISPropertyInputSourceLanguages };\n\tconst void* values[] = { data, fullName, @[name] };\n\tCFDictionaryRef dict = CFDictionaryCreate(NULL, keys, values, 3, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);\n\n\tCFRelease(data);\n\n\tos_unfair_lock_lock(&g_keyboardLock);\n\n\tif (g_lastKeyboardLayout)\n\t\tCFRelease(g_lastKeyboardLayout);\n\n\tg_lastKeyboardLayout = (TISInputSourceRef) CFRetain(dict);\n\tg_lastKeyboardLayoutId = curLayoutId;\n\n\tos_unfair_lock_unlock(&g_keyboardLock);\n\n\treturn (TISInputSourceRef) dict;\n}\n\nvoid* TISGetInputSourceProperty(TISInputSourceRef inputSourceRef, CFStringRef key)\n{\n\treturn (void*) CFDictionaryGetValue((CFDictionaryRef)inputSourceRef, key);\n}\n\nTISInputSourceRef TISCopyCurrentASCIICapableKeyboardLayoutInputSource(void)\n{\n    if (verbose) {\n        puts(\"STUB: TISCopyCurrentASCIICapableKeyboardLayoutInputSource\");\n    }\n\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/HIToolbox/src/constants.c",
    "content": "#include <CoreFoundation/CoreFoundation.h>\n#include <HIToolbox/TextInputSources.h>\n\n/* HIToolbox.framework */\nconst CFStringRef kTISNotifySelectedKeyboardInputSourceChanged = CFSTR(\"com.apple.Carbon.TISNotifySelectedKeyboardInputSourceChanged\");\n\nconst CFStringRef kTISPropertyInputSourceID = CFSTR(\"TISPropertyInputSourceID\");\nconst CFStringRef kTISPropertyInputSourceIsFromSystem = CFSTR(\"TISPropertyInputSourceIsFromSystem\");\nconst CFStringRef kTISPropertyInputSourceIsASCIICapable = CFSTR(\"TISPropertyInputSourceIsASCIICapable\");\n\nconst CFStringRef kTISPropertyUnicodeKeyLayoutData = CFSTR(\"TISPropertyUnicodeKeyLayoutData\");\nconst CFStringRef kTISCategoryKeyboardInputSource = CFSTR(\"TISCategoryKeyboardInputSource\");\nconst CFStringRef kTISPropertyInputSourceCategory = CFSTR(\"TISPropertyInputSourceCategory\");\nconst CFStringRef kTISPropertyInputSourceType = CFSTR(\"TISPropertyInputSourceType\");\nconst CFStringRef kTISTypeKeyboardLayout = CFSTR(\"TISTypeKeyboardLayout\");\n\nconst float kHIToolboxVersionNumber = 1163.0;\n"
  },
  {
    "path": "src/frameworks/Carbon/Help/CMakeLists.txt",
    "content": "project(Help)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"71.0.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(Help\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/Help\"\n)\n\nadd_framework(Help\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/Help.c\n\n\tDEPENDENCIES\n\t\tsystem\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/Help/include/Help/Help.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Help_H_\n#define _Help_H_\n\nvoid* AHGotoApplicationHelp(void);\nvoid* AHGotoMainTOC(void);\nvoid* AHGotoPage(void);\nvoid* AHLookupAnchor(void);\nvoid* AHRegisterHelpBook(void);\nvoid* AHRegisterHelpBookWithURL(void);\nvoid* AHSearch(void);\nvoid* AppendEncodingHint(void);\nvoid* CFStringToCString(void);\nvoid* CopyBookDetails(void);\nvoid* CreateBookDetailsFromAppBundle(void);\nvoid* CreateBookDetailsFromAppBundleAtIndex(void);\nvoid* CreateBookDetailsWithBookNameAndID(void);\nvoid* EscapeMacCharacters(void);\nvoid* MacPathToURLPath(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/Help/src/Help.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Help/Help.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* AHGotoApplicationHelp(void)\n{\n    if (verbose) puts(\"STUB: AHGotoApplicationHelp called\");\n    return NULL;\n}\n\nvoid* AHGotoMainTOC(void)\n{\n    if (verbose) puts(\"STUB: AHGotoMainTOC called\");\n    return NULL;\n}\n\nvoid* AHGotoPage(void)\n{\n    if (verbose) puts(\"STUB: AHGotoPage called\");\n    return NULL;\n}\n\nvoid* AHLookupAnchor(void)\n{\n    if (verbose) puts(\"STUB: AHLookupAnchor called\");\n    return NULL;\n}\n\nvoid* AHRegisterHelpBook(void)\n{\n    if (verbose) puts(\"STUB: AHRegisterHelpBook called\");\n    return NULL;\n}\n\nvoid* AHRegisterHelpBookWithURL(void)\n{\n    if (verbose) puts(\"STUB: AHRegisterHelpBookWithURL called\");\n    return NULL;\n}\n\nvoid* AHSearch(void)\n{\n    if (verbose) puts(\"STUB: AHSearch called\");\n    return NULL;\n}\n\nvoid* AppendEncodingHint(void)\n{\n    if (verbose) puts(\"STUB: AppendEncodingHint called\");\n    return NULL;\n}\n\nvoid* CFStringToCString(void)\n{\n    if (verbose) puts(\"STUB: CFStringToCString called\");\n    return NULL;\n}\n\nvoid* CopyBookDetails(void)\n{\n    if (verbose) puts(\"STUB: CopyBookDetails called\");\n    return NULL;\n}\n\nvoid* CreateBookDetailsFromAppBundle(void)\n{\n    if (verbose) puts(\"STUB: CreateBookDetailsFromAppBundle called\");\n    return NULL;\n}\n\nvoid* CreateBookDetailsFromAppBundleAtIndex(void)\n{\n    if (verbose) puts(\"STUB: CreateBookDetailsFromAppBundleAtIndex called\");\n    return NULL;\n}\n\nvoid* CreateBookDetailsWithBookNameAndID(void)\n{\n    if (verbose) puts(\"STUB: CreateBookDetailsWithBookNameAndID called\");\n    return NULL;\n}\n\nvoid* EscapeMacCharacters(void)\n{\n    if (verbose) puts(\"STUB: EscapeMacCharacters called\");\n    return NULL;\n}\n\nvoid* MacPathToURLPath(void)\n{\n    if (verbose) puts(\"STUB: MacPathToURLPath called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/ImageCapture/CMakeLists.txt",
    "content": "project(ImageCapture)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"5.0.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(ImageCapture\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/ImageCapture\"\n)\n\nadd_framework(ImageCapture\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/ImageCapture.m\n\n\tDEPENDENCIES\n\t\tsystem\n\t\tobjc\n\t\tFoundation\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/ImageCapture/include/ImageCapture/ImageCapture.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _ImageCapture_H_\n#define _ImageCapture_H_\n\n#import <Foundation/Foundation.h>\n\n\nvoid* ICACloseSession(void);\nvoid* ICAConvertJPEGDataToICADataInPlace(void);\nvoid* ICAConvertTIFFDataToICADataInPlace(void);\nvoid* ICACopyMatchingDeviceDictionaries(void);\nvoid* ICACopyObjectData(void);\nvoid* ICACopyObjectPropertyDictionary(void);\nvoid* ICACopyObjectThumbnail(void);\nvoid* ICACopyParameterBlockPtrForAsyncCall(void);\nvoid* ICACreateCutsomIconForImageAtPath(void);\nvoid* ICACreateJPEGThumbnailDataFromURL(void);\nvoid* ICADictionaryApplierFunction(void);\nvoid* ICADoMacho2CFMConversion(void);\nvoid* ICADownloadFile(void);\nvoid* ICADownloadFileWithOptions(void);\nvoid* ICAElapsedTime(void);\nvoid* ICAGetBehaviorFlags(void);\nvoid* ICAGetChildCount(void);\nvoid* ICAGetDateFromSeconds(void);\nvoid* ICAGetDateFromSecondsSince1904(void);\nvoid* ICAGetDateFromSecondsSince1970(void);\nvoid* ICAGetDeviceList(void);\nvoid* ICAGetEXIFDateCStringFromSecondsSince1904(void);\nvoid* ICAGetEXIFDateCStringFromSecondsSince1970(void);\nvoid* ICAGetEXIFUTCDateCStringFromSecondsSince1904(void);\nvoid* ICAGetEXIFUTCDateCStringFromSecondsSince1970(void);\nvoid* ICAGetICAObjectForFile(void);\nvoid* ICAGetICAObjectFromDict(void);\nvoid* ICAGetLongValueFromDict(void);\nvoid* ICAGetNthChild(void);\nvoid* ICAGetNthProperty(void);\nvoid* ICAGetObjectInfo(void);\nvoid* ICAGetObjectRefCon(void);\nvoid* ICAGetParentOfObject(void);\nvoid* ICAGetParentOfProperty(void);\nvoid* ICAGetPropertyByType(void);\nvoid* ICAGetPropertyCount(void);\nvoid* ICAGetPropertyData(void);\nvoid* ICAGetPropertyInfo(void);\nvoid* ICAGetPropertyRefCon(void);\nvoid* ICAGetRootOfObject(void);\nvoid* ICAGetRootOfProperty(void);\nvoid* ICAGetSInt16ValueFromDict(void);\nvoid* ICAGetSInt32ValueFromDict(void);\nvoid* ICAGetSInt64ValueFromDict(void);\nvoid* ICAGetUTCDateFromDateCString(void);\nvoid* ICAGetUTCDateFromSeconds(void);\nvoid* ICAGetUTCDateFromSecondsSince1904(void);\nvoid* ICAImportImage(void);\nvoid* ICALoadDeviceModule(void);\nvoid* ICAObjectSendMessage(void);\nvoid* ICAOpenSession(void);\nvoid* ICARegisterEventNotification(void);\nvoid* ICARegisterForEventNotification(void);\nvoid* ICAScannerCloseSession(void);\nvoid* ICAScannerGetParameters(void);\nvoid* ICAScannerInitialize(void);\nvoid* ICAScannerOpenSession(void);\nvoid* ICAScannerSetParameters(void);\nvoid* ICAScannerStart(void);\nvoid* ICAScannerStatus(void);\nvoid* ICASetBehaviorFlags(void);\nvoid* ICASetICAObjectInDict(void);\nvoid* ICASetLongValueInDict(void);\nvoid* ICASetObjectRefCon(void);\nvoid* ICASetPropertyData(void);\nvoid* ICASetPropertyRefCon(void);\nvoid* ICASetSInt16ValueInDict(void);\nvoid* ICASetSInt32ValueInDict(void);\nvoid* ICASetSInt64ValueInDict(void);\nvoid* ICASetUTF8StringInDict(void);\nvoid* ICASharedMemoryCreate(void);\nvoid* ICASharedMemoryDestroy(void);\nvoid* ICASharedMemoryMap(void);\nvoid* ICASharedMemoryUnmap(void);\nvoid* ICAShowDeviceBrowser(void);\nvoid* ICAUnloadDeviceModule(void);\nvoid* ICAUpdateDeviceDictionary(void);\nvoid* ICAUploadFile(void);\nvoid* ICDBulkNewObject(void);\nvoid* ICDBulkNewProperty(void);\nvoid* ICDDeviceNotification(void);\nvoid* ICDDeviceRegister(void);\nvoid* ICDDeviceUnRegister(void);\nvoid* ICDDisposeObject(void);\nvoid* ICDDisposeProperty(void);\nvoid* ICDNewObject(void);\nvoid* ICDNewProperty(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/ImageCapture/src/ImageCapture.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <ImageCapture/ImageCapture.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* ICACloseSession(void)\n{\n    if (verbose) puts(\"STUB: ICACloseSession called\");\n    return NULL;\n}\n\nvoid* ICAConvertJPEGDataToICADataInPlace(void)\n{\n    if (verbose) puts(\"STUB: ICAConvertJPEGDataToICADataInPlace called\");\n    return NULL;\n}\n\nvoid* ICAConvertTIFFDataToICADataInPlace(void)\n{\n    if (verbose) puts(\"STUB: ICAConvertTIFFDataToICADataInPlace called\");\n    return NULL;\n}\n\nvoid* ICACopyMatchingDeviceDictionaries(void)\n{\n    if (verbose) puts(\"STUB: ICACopyMatchingDeviceDictionaries called\");\n    return NULL;\n}\n\nvoid* ICACopyObjectData(void)\n{\n    if (verbose) puts(\"STUB: ICACopyObjectData called\");\n    return NULL;\n}\n\nvoid* ICACopyObjectPropertyDictionary(void)\n{\n    if (verbose) puts(\"STUB: ICACopyObjectPropertyDictionary called\");\n    return NULL;\n}\n\nvoid* ICACopyObjectThumbnail(void)\n{\n    if (verbose) puts(\"STUB: ICACopyObjectThumbnail called\");\n    return NULL;\n}\n\nvoid* ICACopyParameterBlockPtrForAsyncCall(void)\n{\n    if (verbose) puts(\"STUB: ICACopyParameterBlockPtrForAsyncCall called\");\n    return NULL;\n}\n\nvoid* ICACreateCutsomIconForImageAtPath(void)\n{\n    if (verbose) puts(\"STUB: ICACreateCutsomIconForImageAtPath called\");\n    return NULL;\n}\n\nvoid* ICACreateJPEGThumbnailDataFromURL(void)\n{\n    if (verbose) puts(\"STUB: ICACreateJPEGThumbnailDataFromURL called\");\n    return NULL;\n}\n\nvoid* ICADictionaryApplierFunction(void)\n{\n    if (verbose) puts(\"STUB: ICADictionaryApplierFunction called\");\n    return NULL;\n}\n\nvoid* ICADoMacho2CFMConversion(void)\n{\n    if (verbose) puts(\"STUB: ICADoMacho2CFMConversion called\");\n    return NULL;\n}\n\nvoid* ICADownloadFile(void)\n{\n    if (verbose) puts(\"STUB: ICADownloadFile called\");\n    return NULL;\n}\n\nvoid* ICADownloadFileWithOptions(void)\n{\n    if (verbose) puts(\"STUB: ICADownloadFileWithOptions called\");\n    return NULL;\n}\n\nvoid* ICAElapsedTime(void)\n{\n    if (verbose) puts(\"STUB: ICAElapsedTime called\");\n    return NULL;\n}\n\nvoid* ICAGetBehaviorFlags(void)\n{\n    if (verbose) puts(\"STUB: ICAGetBehaviorFlags called\");\n    return NULL;\n}\n\nvoid* ICAGetChildCount(void)\n{\n    if (verbose) puts(\"STUB: ICAGetChildCount called\");\n    return NULL;\n}\n\nvoid* ICAGetDateFromSeconds(void)\n{\n    if (verbose) puts(\"STUB: ICAGetDateFromSeconds called\");\n    return NULL;\n}\n\nvoid* ICAGetDateFromSecondsSince1904(void)\n{\n    if (verbose) puts(\"STUB: ICAGetDateFromSecondsSince1904 called\");\n    return NULL;\n}\n\nvoid* ICAGetDateFromSecondsSince1970(void)\n{\n    if (verbose) puts(\"STUB: ICAGetDateFromSecondsSince1970 called\");\n    return NULL;\n}\n\nvoid* ICAGetDeviceList(void)\n{\n    if (verbose) puts(\"STUB: ICAGetDeviceList called\");\n    return NULL;\n}\n\nvoid* ICAGetEXIFDateCStringFromSecondsSince1904(void)\n{\n    if (verbose) puts(\"STUB: ICAGetEXIFDateCStringFromSecondsSince1904 called\");\n    return NULL;\n}\n\nvoid* ICAGetEXIFDateCStringFromSecondsSince1970(void)\n{\n    if (verbose) puts(\"STUB: ICAGetEXIFDateCStringFromSecondsSince1970 called\");\n    return NULL;\n}\n\nvoid* ICAGetEXIFUTCDateCStringFromSecondsSince1904(void)\n{\n    if (verbose) puts(\"STUB: ICAGetEXIFUTCDateCStringFromSecondsSince1904 called\");\n    return NULL;\n}\n\nvoid* ICAGetEXIFUTCDateCStringFromSecondsSince1970(void)\n{\n    if (verbose) puts(\"STUB: ICAGetEXIFUTCDateCStringFromSecondsSince1970 called\");\n    return NULL;\n}\n\nvoid* ICAGetICAObjectForFile(void)\n{\n    if (verbose) puts(\"STUB: ICAGetICAObjectForFile called\");\n    return NULL;\n}\n\nvoid* ICAGetICAObjectFromDict(void)\n{\n    if (verbose) puts(\"STUB: ICAGetICAObjectFromDict called\");\n    return NULL;\n}\n\nvoid* ICAGetLongValueFromDict(void)\n{\n    if (verbose) puts(\"STUB: ICAGetLongValueFromDict called\");\n    return NULL;\n}\n\nvoid* ICAGetNthChild(void)\n{\n    if (verbose) puts(\"STUB: ICAGetNthChild called\");\n    return NULL;\n}\n\nvoid* ICAGetNthProperty(void)\n{\n    if (verbose) puts(\"STUB: ICAGetNthProperty called\");\n    return NULL;\n}\n\nvoid* ICAGetObjectInfo(void)\n{\n    if (verbose) puts(\"STUB: ICAGetObjectInfo called\");\n    return NULL;\n}\n\nvoid* ICAGetObjectRefCon(void)\n{\n    if (verbose) puts(\"STUB: ICAGetObjectRefCon called\");\n    return NULL;\n}\n\nvoid* ICAGetParentOfObject(void)\n{\n    if (verbose) puts(\"STUB: ICAGetParentOfObject called\");\n    return NULL;\n}\n\nvoid* ICAGetParentOfProperty(void)\n{\n    if (verbose) puts(\"STUB: ICAGetParentOfProperty called\");\n    return NULL;\n}\n\nvoid* ICAGetPropertyByType(void)\n{\n    if (verbose) puts(\"STUB: ICAGetPropertyByType called\");\n    return NULL;\n}\n\nvoid* ICAGetPropertyCount(void)\n{\n    if (verbose) puts(\"STUB: ICAGetPropertyCount called\");\n    return NULL;\n}\n\nvoid* ICAGetPropertyData(void)\n{\n    if (verbose) puts(\"STUB: ICAGetPropertyData called\");\n    return NULL;\n}\n\nvoid* ICAGetPropertyInfo(void)\n{\n    if (verbose) puts(\"STUB: ICAGetPropertyInfo called\");\n    return NULL;\n}\n\nvoid* ICAGetPropertyRefCon(void)\n{\n    if (verbose) puts(\"STUB: ICAGetPropertyRefCon called\");\n    return NULL;\n}\n\nvoid* ICAGetRootOfObject(void)\n{\n    if (verbose) puts(\"STUB: ICAGetRootOfObject called\");\n    return NULL;\n}\n\nvoid* ICAGetRootOfProperty(void)\n{\n    if (verbose) puts(\"STUB: ICAGetRootOfProperty called\");\n    return NULL;\n}\n\nvoid* ICAGetSInt16ValueFromDict(void)\n{\n    if (verbose) puts(\"STUB: ICAGetSInt16ValueFromDict called\");\n    return NULL;\n}\n\nvoid* ICAGetSInt32ValueFromDict(void)\n{\n    if (verbose) puts(\"STUB: ICAGetSInt32ValueFromDict called\");\n    return NULL;\n}\n\nvoid* ICAGetSInt64ValueFromDict(void)\n{\n    if (verbose) puts(\"STUB: ICAGetSInt64ValueFromDict called\");\n    return NULL;\n}\n\nvoid* ICAGetUTCDateFromDateCString(void)\n{\n    if (verbose) puts(\"STUB: ICAGetUTCDateFromDateCString called\");\n    return NULL;\n}\n\nvoid* ICAGetUTCDateFromSeconds(void)\n{\n    if (verbose) puts(\"STUB: ICAGetUTCDateFromSeconds called\");\n    return NULL;\n}\n\nvoid* ICAGetUTCDateFromSecondsSince1904(void)\n{\n    if (verbose) puts(\"STUB: ICAGetUTCDateFromSecondsSince1904 called\");\n    return NULL;\n}\n\nvoid* ICAImportImage(void)\n{\n    if (verbose) puts(\"STUB: ICAImportImage called\");\n    return NULL;\n}\n\nvoid* ICALoadDeviceModule(void)\n{\n    if (verbose) puts(\"STUB: ICALoadDeviceModule called\");\n    return NULL;\n}\n\nvoid* ICAObjectSendMessage(void)\n{\n    if (verbose) puts(\"STUB: ICAObjectSendMessage called\");\n    return NULL;\n}\n\nvoid* ICAOpenSession(void)\n{\n    if (verbose) puts(\"STUB: ICAOpenSession called\");\n    return NULL;\n}\n\nvoid* ICARegisterEventNotification(void)\n{\n    if (verbose) puts(\"STUB: ICARegisterEventNotification called\");\n    return NULL;\n}\n\nvoid* ICARegisterForEventNotification(void)\n{\n    if (verbose) puts(\"STUB: ICARegisterForEventNotification called\");\n    return NULL;\n}\n\nvoid* ICAScannerCloseSession(void)\n{\n    if (verbose) puts(\"STUB: ICAScannerCloseSession called\");\n    return NULL;\n}\n\nvoid* ICAScannerGetParameters(void)\n{\n    if (verbose) puts(\"STUB: ICAScannerGetParameters called\");\n    return NULL;\n}\n\nvoid* ICAScannerInitialize(void)\n{\n    if (verbose) puts(\"STUB: ICAScannerInitialize called\");\n    return NULL;\n}\n\nvoid* ICAScannerOpenSession(void)\n{\n    if (verbose) puts(\"STUB: ICAScannerOpenSession called\");\n    return NULL;\n}\n\nvoid* ICAScannerSetParameters(void)\n{\n    if (verbose) puts(\"STUB: ICAScannerSetParameters called\");\n    return NULL;\n}\n\nvoid* ICAScannerStart(void)\n{\n    if (verbose) puts(\"STUB: ICAScannerStart called\");\n    return NULL;\n}\n\nvoid* ICAScannerStatus(void)\n{\n    if (verbose) puts(\"STUB: ICAScannerStatus called\");\n    return NULL;\n}\n\nvoid* ICASetBehaviorFlags(void)\n{\n    if (verbose) puts(\"STUB: ICASetBehaviorFlags called\");\n    return NULL;\n}\n\nvoid* ICASetICAObjectInDict(void)\n{\n    if (verbose) puts(\"STUB: ICASetICAObjectInDict called\");\n    return NULL;\n}\n\nvoid* ICASetLongValueInDict(void)\n{\n    if (verbose) puts(\"STUB: ICASetLongValueInDict called\");\n    return NULL;\n}\n\nvoid* ICASetObjectRefCon(void)\n{\n    if (verbose) puts(\"STUB: ICASetObjectRefCon called\");\n    return NULL;\n}\n\nvoid* ICASetPropertyData(void)\n{\n    if (verbose) puts(\"STUB: ICASetPropertyData called\");\n    return NULL;\n}\n\nvoid* ICASetPropertyRefCon(void)\n{\n    if (verbose) puts(\"STUB: ICASetPropertyRefCon called\");\n    return NULL;\n}\n\nvoid* ICASetSInt16ValueInDict(void)\n{\n    if (verbose) puts(\"STUB: ICASetSInt16ValueInDict called\");\n    return NULL;\n}\n\nvoid* ICASetSInt32ValueInDict(void)\n{\n    if (verbose) puts(\"STUB: ICASetSInt32ValueInDict called\");\n    return NULL;\n}\n\nvoid* ICASetSInt64ValueInDict(void)\n{\n    if (verbose) puts(\"STUB: ICASetSInt64ValueInDict called\");\n    return NULL;\n}\n\nvoid* ICASetUTF8StringInDict(void)\n{\n    if (verbose) puts(\"STUB: ICASetUTF8StringInDict called\");\n    return NULL;\n}\n\nvoid* ICASharedMemoryCreate(void)\n{\n    if (verbose) puts(\"STUB: ICASharedMemoryCreate called\");\n    return NULL;\n}\n\nvoid* ICASharedMemoryDestroy(void)\n{\n    if (verbose) puts(\"STUB: ICASharedMemoryDestroy called\");\n    return NULL;\n}\n\nvoid* ICASharedMemoryMap(void)\n{\n    if (verbose) puts(\"STUB: ICASharedMemoryMap called\");\n    return NULL;\n}\n\nvoid* ICASharedMemoryUnmap(void)\n{\n    if (verbose) puts(\"STUB: ICASharedMemoryUnmap called\");\n    return NULL;\n}\n\nvoid* ICAShowDeviceBrowser(void)\n{\n    if (verbose) puts(\"STUB: ICAShowDeviceBrowser called\");\n    return NULL;\n}\n\nvoid* ICAUnloadDeviceModule(void)\n{\n    if (verbose) puts(\"STUB: ICAUnloadDeviceModule called\");\n    return NULL;\n}\n\nvoid* ICAUpdateDeviceDictionary(void)\n{\n    if (verbose) puts(\"STUB: ICAUpdateDeviceDictionary called\");\n    return NULL;\n}\n\nvoid* ICAUploadFile(void)\n{\n    if (verbose) puts(\"STUB: ICAUploadFile called\");\n    return NULL;\n}\n\nvoid* ICDBulkNewObject(void)\n{\n    if (verbose) puts(\"STUB: ICDBulkNewObject called\");\n    return NULL;\n}\n\nvoid* ICDBulkNewProperty(void)\n{\n    if (verbose) puts(\"STUB: ICDBulkNewProperty called\");\n    return NULL;\n}\n\nvoid* ICDDeviceNotification(void)\n{\n    if (verbose) puts(\"STUB: ICDDeviceNotification called\");\n    return NULL;\n}\n\nvoid* ICDDeviceRegister(void)\n{\n    if (verbose) puts(\"STUB: ICDDeviceRegister called\");\n    return NULL;\n}\n\nvoid* ICDDeviceUnRegister(void)\n{\n    if (verbose) puts(\"STUB: ICDDeviceUnRegister called\");\n    return NULL;\n}\n\nvoid* ICDDisposeObject(void)\n{\n    if (verbose) puts(\"STUB: ICDDisposeObject called\");\n    return NULL;\n}\n\nvoid* ICDDisposeProperty(void)\n{\n    if (verbose) puts(\"STUB: ICDDisposeProperty called\");\n    return NULL;\n}\n\nvoid* ICDNewObject(void)\n{\n    if (verbose) puts(\"STUB: ICDNewObject called\");\n    return NULL;\n}\n\nvoid* ICDNewProperty(void)\n{\n    if (verbose) puts(\"STUB: ICDNewProperty called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/Ink/CMakeLists.txt",
    "content": "project(Ink)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"227.0.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(Ink\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/Ink\"\n)\n\nadd_framework(Ink\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/Ink.c\n\n\tDEPENDENCIES\n\t\tsystem\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/Ink/include/Ink/Ink.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Ink_H_\n#define _Ink_H_\n\nvoid* InkAddStrokeToCurrentPhrase(void);\nvoid* InkIsPhraseInProgress(void);\nvoid* InkSetApplicationRecognitionMode(void);\nvoid* InkSetApplicationWritingMode(void);\nvoid* InkSetDrawingMode(void);\nvoid* InkSetPhraseTerminationMode(void);\nvoid* InkStrokeGetPointCount(void);\nvoid* InkStrokeGetPoints(void);\nvoid* InkStrokeGetTypeID(void);\nvoid* InkTerminateCurrentPhrase(void);\nvoid* InkTextAlternatesCount(void);\nvoid* InkTextBounds(void);\nvoid* InkTextCopy(void);\nvoid* InkTextCreateCFString(void);\nvoid* InkTextCreateFromCFData(void);\nvoid* InkTextDraw(void);\nvoid* InkTextFlatten(void);\nvoid* InkTextGetStroke(void);\nvoid* InkTextGetStrokeCount(void);\nvoid* InkTextGetTypeID(void);\nvoid* InkTextKeyModifiers(void);\nvoid* InkUserWritingMode(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/Ink/src/Ink.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Ink/Ink.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* InkAddStrokeToCurrentPhrase(void)\n{\n    if (verbose) puts(\"STUB: InkAddStrokeToCurrentPhrase called\");\n    return NULL;\n}\n\nvoid* InkIsPhraseInProgress(void)\n{\n    if (verbose) puts(\"STUB: InkIsPhraseInProgress called\");\n    return NULL;\n}\n\nvoid* InkSetApplicationRecognitionMode(void)\n{\n    if (verbose) puts(\"STUB: InkSetApplicationRecognitionMode called\");\n    return NULL;\n}\n\nvoid* InkSetApplicationWritingMode(void)\n{\n    if (verbose) puts(\"STUB: InkSetApplicationWritingMode called\");\n    return NULL;\n}\n\nvoid* InkSetDrawingMode(void)\n{\n    if (verbose) puts(\"STUB: InkSetDrawingMode called\");\n    return NULL;\n}\n\nvoid* InkSetPhraseTerminationMode(void)\n{\n    if (verbose) puts(\"STUB: InkSetPhraseTerminationMode called\");\n    return NULL;\n}\n\nvoid* InkStrokeGetPointCount(void)\n{\n    if (verbose) puts(\"STUB: InkStrokeGetPointCount called\");\n    return NULL;\n}\n\nvoid* InkStrokeGetPoints(void)\n{\n    if (verbose) puts(\"STUB: InkStrokeGetPoints called\");\n    return NULL;\n}\n\nvoid* InkStrokeGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: InkStrokeGetTypeID called\");\n    return NULL;\n}\n\nvoid* InkTerminateCurrentPhrase(void)\n{\n    if (verbose) puts(\"STUB: InkTerminateCurrentPhrase called\");\n    return NULL;\n}\n\nvoid* InkTextAlternatesCount(void)\n{\n    if (verbose) puts(\"STUB: InkTextAlternatesCount called\");\n    return NULL;\n}\n\nvoid* InkTextBounds(void)\n{\n    if (verbose) puts(\"STUB: InkTextBounds called\");\n    return NULL;\n}\n\nvoid* InkTextCopy(void)\n{\n    if (verbose) puts(\"STUB: InkTextCopy called\");\n    return NULL;\n}\n\nvoid* InkTextCreateCFString(void)\n{\n    if (verbose) puts(\"STUB: InkTextCreateCFString called\");\n    return NULL;\n}\n\nvoid* InkTextCreateFromCFData(void)\n{\n    if (verbose) puts(\"STUB: InkTextCreateFromCFData called\");\n    return NULL;\n}\n\nvoid* InkTextDraw(void)\n{\n    if (verbose) puts(\"STUB: InkTextDraw called\");\n    return NULL;\n}\n\nvoid* InkTextFlatten(void)\n{\n    if (verbose) puts(\"STUB: InkTextFlatten called\");\n    return NULL;\n}\n\nvoid* InkTextGetStroke(void)\n{\n    if (verbose) puts(\"STUB: InkTextGetStroke called\");\n    return NULL;\n}\n\nvoid* InkTextGetStrokeCount(void)\n{\n    if (verbose) puts(\"STUB: InkTextGetStrokeCount called\");\n    return NULL;\n}\n\nvoid* InkTextGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: InkTextGetTypeID called\");\n    return NULL;\n}\n\nvoid* InkTextKeyModifiers(void)\n{\n    if (verbose) puts(\"STUB: InkTextKeyModifiers called\");\n    return NULL;\n}\n\nvoid* InkUserWritingMode(void)\n{\n    if (verbose) puts(\"STUB: InkUserWritingMode called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/OpenScripting/CMakeLists.txt",
    "content": "project(OpenScripting)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(OpenScripting\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/OpenScripting\"\n)\n\nadd_framework(OpenScripting\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/OpenScripting.m\n\n\tDEPENDENCIES\n\t\tsystem\n\t\tobjc\n\t\tFoundation\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/OpenScripting/include/OpenScripting/OpenScripting.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _OpenScripting_H_\n#define _OpenScripting_H_\n\n#import <Foundation/Foundation.h>\n\n\nvoid* ASCopySourceAttributes(void);\nvoid* ASGetSourceStyleNames(void);\nvoid* ASGetSourceStyles(void);\nvoid* ASInit(void);\nvoid* ASSetSourceAttributes(void);\nvoid* ASSetSourceStyles(void);\nvoid* OSAAddStorageType(void);\nvoid* OSAAuthorizeEvent(void);\nvoid* OSAAvailableDialectCodeList(void);\nvoid* OSAAvailableDialects(void);\nvoid* OSACoerceFromDesc(void);\nvoid* OSACoerceToDesc(void);\nvoid* OSACompile(void);\nvoid* OSACompileExecute(void);\nvoid* OSACopyDisplayString(void);\nvoid* OSACopyID(void);\nvoid* OSACopyScript(void);\nvoid* OSACopyScriptingDefinition(void);\nvoid* OSACopyScriptingDefinitionFromFile(void);\nvoid* OSACopyScriptingDefinitionFromURL(void);\nvoid* OSACopySourceString(void);\nvoid* OSACopyURLForLibraryInDomainURL(void);\nvoid* OSACopyURLForLibraryInFolderURL(void);\nvoid* OSACopyURLForLibraryInScriptURL(void);\nvoid* OSACopyURLForLibraryName(void);\nvoid* OSACreateFile(void);\nvoid* OSADebuggerCreateSession(void);\nvoid* OSADebuggerDisposeCallFrame(void);\nvoid* OSADebuggerDisposeSession(void);\nvoid* OSADebuggerGetBreakpoint(void);\nvoid* OSADebuggerGetCallFrameState(void);\nvoid* OSADebuggerGetCurrentCallFrame(void);\nvoid* OSADebuggerGetDefaultBreakpoint(void);\nvoid* OSADebuggerGetPreviousCallFrame(void);\nvoid* OSADebuggerGetSessionState(void);\nvoid* OSADebuggerGetStatementRanges(void);\nvoid* OSADebuggerGetVariable(void);\nvoid* OSADebuggerSessionStep(void);\nvoid* OSADebuggerSetBreakpoint(void);\nvoid* OSADebuggerSetVariable(void);\nvoid* OSADisplay(void);\nvoid* OSADispose(void);\nvoid* OSADoEvent(void);\nvoid* OSADoScript(void);\nvoid* OSADoScriptFile(void);\nvoid* OSAExecute(void);\nvoid* OSAExecuteEvent(void);\nvoid* OSAFindEventHandler(void);\nvoid* OSAGenericToRealID(void);\nvoid* OSAGetActiveProc(void);\nvoid* OSAGetCreateProc(void);\nvoid* OSAGetCreateProgressProc(void);\nvoid* OSAGetCurrentDialect(void);\nvoid* OSAGetDefaultScriptingComponent(void);\nvoid* OSAGetDialectInfo(void);\nvoid* OSAGetEventHandler(void);\nvoid* OSAGetHandler(void);\nvoid* OSAGetHandlerNames(void);\nvoid* OSAGetProperty(void);\nvoid* OSAGetPropertyNames(void);\nvoid* OSAGetReleaseProgressProc(void);\nvoid* OSAGetResumeDispatchProc(void);\nvoid* OSAGetScriptDataFromURL(void);\nvoid* OSAGetScriptInfo(void);\nvoid* OSAGetScriptingComponent(void);\nvoid* OSAGetScriptingComponentFromStored(void);\nvoid* OSAGetSendProc(void);\nvoid* OSAGetSource(void);\nvoid* OSAGetStorageType(void);\nvoid* OSAGetSysTerminology(void);\nvoid* OSAInstallEventHandler(void);\nvoid* OSAInstallGestaltValues(void);\nvoid* OSAInstallScriptingDescCoercions(void);\nvoid* OSAInstallScriptingEventHandlers(void);\nvoid* OSAInstallStdDescCoercions(void);\nvoid* OSAInstallStdEventHandlers(void);\nvoid* OSAInstallStdPtrCoercions(void);\nvoid* OSAInstallUnitPtrCoercions(void);\nvoid* OSAIsEventAuthorizationRequested(void);\nvoid* OSAIsEventAuthorized(void);\nvoid* OSAIsScriptableBundle(void);\nvoid* OSAIsScriptableRef(void);\nvoid* OSAIsScriptableURL(void);\nvoid* OSALoad(void);\nvoid* OSALoadExecute(void);\nvoid* OSALoadExecuteFile(void);\nvoid* OSALoadFile(void);\nvoid* OSALoadScriptData(void);\nvoid* OSALoadScriptDataFromFile(void);\nvoid* OSAMakeContext(void);\nvoid* OSARealToGenericID(void);\nvoid* OSARecordEvent(void);\nvoid* OSARemoveEventHandler(void);\nvoid* OSARemoveStorageType(void);\nvoid* OSARequestEventAuthorization(void);\nvoid* OSAScriptError(void);\nvoid* OSAScriptingComponentName(void);\nvoid* OSASetActiveProc(void);\nvoid* OSASetCreateProc(void);\nvoid* OSASetCreateProgressProc(void);\nvoid* OSASetCurrentDialect(void);\nvoid* OSASetDefaultScriptingComponent(void);\nvoid* OSASetDefaultTarget(void);\nvoid* OSASetHandler(void);\nvoid* OSASetProperty(void);\nvoid* OSASetReleaseProgressProc(void);\nvoid* OSASetResumeDispatchProc(void);\nvoid* OSASetScriptInfo(void);\nvoid* OSASetSendProc(void);\nvoid* OSAStartRecording(void);\nvoid* OSAStopRecording(void);\nvoid* OSAStore(void);\nvoid* OSAStoreFile(void);\nvoid* OSAStoreScriptDataToFile(void);\nvoid* OSAStoreScriptDataToNewFile(void);\nvoid* _HandleGDUT(void);\nvoid* _OSACopyDisplayString(void);\nvoid* _OSACopyScriptingDefinitionFromFile(void);\nvoid* _OSACopySourceString(void);\nvoid* _OSACreateURL(void);\nvoid* _OSADoScriptURL(void);\nvoid* _OSALoadExecuteURL(void);\nvoid* _OSALoadURL(void);\nvoid* _OSAStoreScriptDataToURL(void);\nvoid* _OSAStoreURL(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/OpenScripting/src/OpenScripting.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <OpenScripting/OpenScripting.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* ASCopySourceAttributes(void)\n{\n    if (verbose) puts(\"STUB: ASCopySourceAttributes called\");\n    return NULL;\n}\n\nvoid* ASGetSourceStyleNames(void)\n{\n    if (verbose) puts(\"STUB: ASGetSourceStyleNames called\");\n    return NULL;\n}\n\nvoid* ASGetSourceStyles(void)\n{\n    if (verbose) puts(\"STUB: ASGetSourceStyles called\");\n    return NULL;\n}\n\nvoid* ASInit(void)\n{\n    if (verbose) puts(\"STUB: ASInit called\");\n    return NULL;\n}\n\nvoid* ASSetSourceAttributes(void)\n{\n    if (verbose) puts(\"STUB: ASSetSourceAttributes called\");\n    return NULL;\n}\n\nvoid* ASSetSourceStyles(void)\n{\n    if (verbose) puts(\"STUB: ASSetSourceStyles called\");\n    return NULL;\n}\n\nvoid* OSAAddStorageType(void)\n{\n    if (verbose) puts(\"STUB: OSAAddStorageType called\");\n    return NULL;\n}\n\nvoid* OSAAuthorizeEvent(void)\n{\n    if (verbose) puts(\"STUB: OSAAuthorizeEvent called\");\n    return NULL;\n}\n\nvoid* OSAAvailableDialectCodeList(void)\n{\n    if (verbose) puts(\"STUB: OSAAvailableDialectCodeList called\");\n    return NULL;\n}\n\nvoid* OSAAvailableDialects(void)\n{\n    if (verbose) puts(\"STUB: OSAAvailableDialects called\");\n    return NULL;\n}\n\nvoid* OSACoerceFromDesc(void)\n{\n    if (verbose) puts(\"STUB: OSACoerceFromDesc called\");\n    return NULL;\n}\n\nvoid* OSACoerceToDesc(void)\n{\n    if (verbose) puts(\"STUB: OSACoerceToDesc called\");\n    return NULL;\n}\n\nvoid* OSACompile(void)\n{\n    if (verbose) puts(\"STUB: OSACompile called\");\n    return NULL;\n}\n\nvoid* OSACompileExecute(void)\n{\n    if (verbose) puts(\"STUB: OSACompileExecute called\");\n    return NULL;\n}\n\nvoid* OSACopyDisplayString(void)\n{\n    if (verbose) puts(\"STUB: OSACopyDisplayString called\");\n    return NULL;\n}\n\nvoid* OSACopyID(void)\n{\n    if (verbose) puts(\"STUB: OSACopyID called\");\n    return NULL;\n}\n\nvoid* OSACopyScript(void)\n{\n    if (verbose) puts(\"STUB: OSACopyScript called\");\n    return NULL;\n}\n\nvoid* OSACopyScriptingDefinition(void)\n{\n    if (verbose) puts(\"STUB: OSACopyScriptingDefinition called\");\n    return NULL;\n}\n\nvoid* OSACopyScriptingDefinitionFromFile(void)\n{\n    if (verbose) puts(\"STUB: OSACopyScriptingDefinitionFromFile called\");\n    return NULL;\n}\n\nvoid* OSACopyScriptingDefinitionFromURL(void)\n{\n    if (verbose) puts(\"STUB: OSACopyScriptingDefinitionFromURL called\");\n    return NULL;\n}\n\nvoid* OSACopySourceString(void)\n{\n    if (verbose) puts(\"STUB: OSACopySourceString called\");\n    return NULL;\n}\n\nvoid* OSACopyURLForLibraryInDomainURL(void)\n{\n    if (verbose) puts(\"STUB: OSACopyURLForLibraryInDomainURL called\");\n    return NULL;\n}\n\nvoid* OSACopyURLForLibraryInFolderURL(void)\n{\n    if (verbose) puts(\"STUB: OSACopyURLForLibraryInFolderURL called\");\n    return NULL;\n}\n\nvoid* OSACopyURLForLibraryInScriptURL(void)\n{\n    if (verbose) puts(\"STUB: OSACopyURLForLibraryInScriptURL called\");\n    return NULL;\n}\n\nvoid* OSACopyURLForLibraryName(void)\n{\n    if (verbose) puts(\"STUB: OSACopyURLForLibraryName called\");\n    return NULL;\n}\n\nvoid* OSACreateFile(void)\n{\n    if (verbose) puts(\"STUB: OSACreateFile called\");\n    return NULL;\n}\n\nvoid* OSADebuggerCreateSession(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerCreateSession called\");\n    return NULL;\n}\n\nvoid* OSADebuggerDisposeCallFrame(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerDisposeCallFrame called\");\n    return NULL;\n}\n\nvoid* OSADebuggerDisposeSession(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerDisposeSession called\");\n    return NULL;\n}\n\nvoid* OSADebuggerGetBreakpoint(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerGetBreakpoint called\");\n    return NULL;\n}\n\nvoid* OSADebuggerGetCallFrameState(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerGetCallFrameState called\");\n    return NULL;\n}\n\nvoid* OSADebuggerGetCurrentCallFrame(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerGetCurrentCallFrame called\");\n    return NULL;\n}\n\nvoid* OSADebuggerGetDefaultBreakpoint(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerGetDefaultBreakpoint called\");\n    return NULL;\n}\n\nvoid* OSADebuggerGetPreviousCallFrame(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerGetPreviousCallFrame called\");\n    return NULL;\n}\n\nvoid* OSADebuggerGetSessionState(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerGetSessionState called\");\n    return NULL;\n}\n\nvoid* OSADebuggerGetStatementRanges(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerGetStatementRanges called\");\n    return NULL;\n}\n\nvoid* OSADebuggerGetVariable(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerGetVariable called\");\n    return NULL;\n}\n\nvoid* OSADebuggerSessionStep(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerSessionStep called\");\n    return NULL;\n}\n\nvoid* OSADebuggerSetBreakpoint(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerSetBreakpoint called\");\n    return NULL;\n}\n\nvoid* OSADebuggerSetVariable(void)\n{\n    if (verbose) puts(\"STUB: OSADebuggerSetVariable called\");\n    return NULL;\n}\n\nvoid* OSADisplay(void)\n{\n    if (verbose) puts(\"STUB: OSADisplay called\");\n    return NULL;\n}\n\nvoid* OSADispose(void)\n{\n    if (verbose) puts(\"STUB: OSADispose called\");\n    return NULL;\n}\n\nvoid* OSADoEvent(void)\n{\n    if (verbose) puts(\"STUB: OSADoEvent called\");\n    return NULL;\n}\n\nvoid* OSADoScript(void)\n{\n    if (verbose) puts(\"STUB: OSADoScript called\");\n    return NULL;\n}\n\nvoid* OSADoScriptFile(void)\n{\n    if (verbose) puts(\"STUB: OSADoScriptFile called\");\n    return NULL;\n}\n\nvoid* OSAExecute(void)\n{\n    if (verbose) puts(\"STUB: OSAExecute called\");\n    return NULL;\n}\n\nvoid* OSAExecuteEvent(void)\n{\n    if (verbose) puts(\"STUB: OSAExecuteEvent called\");\n    return NULL;\n}\n\nvoid* OSAFindEventHandler(void)\n{\n    if (verbose) puts(\"STUB: OSAFindEventHandler called\");\n    return NULL;\n}\n\nvoid* OSAGenericToRealID(void)\n{\n    if (verbose) puts(\"STUB: OSAGenericToRealID called\");\n    return NULL;\n}\n\nvoid* OSAGetActiveProc(void)\n{\n    if (verbose) puts(\"STUB: OSAGetActiveProc called\");\n    return NULL;\n}\n\nvoid* OSAGetCreateProc(void)\n{\n    if (verbose) puts(\"STUB: OSAGetCreateProc called\");\n    return NULL;\n}\n\nvoid* OSAGetCreateProgressProc(void)\n{\n    if (verbose) puts(\"STUB: OSAGetCreateProgressProc called\");\n    return NULL;\n}\n\nvoid* OSAGetCurrentDialect(void)\n{\n    if (verbose) puts(\"STUB: OSAGetCurrentDialect called\");\n    return NULL;\n}\n\nvoid* OSAGetDefaultScriptingComponent(void)\n{\n    if (verbose) puts(\"STUB: OSAGetDefaultScriptingComponent called\");\n    return NULL;\n}\n\nvoid* OSAGetDialectInfo(void)\n{\n    if (verbose) puts(\"STUB: OSAGetDialectInfo called\");\n    return NULL;\n}\n\nvoid* OSAGetEventHandler(void)\n{\n    if (verbose) puts(\"STUB: OSAGetEventHandler called\");\n    return NULL;\n}\n\nvoid* OSAGetHandler(void)\n{\n    if (verbose) puts(\"STUB: OSAGetHandler called\");\n    return NULL;\n}\n\nvoid* OSAGetHandlerNames(void)\n{\n    if (verbose) puts(\"STUB: OSAGetHandlerNames called\");\n    return NULL;\n}\n\nvoid* OSAGetProperty(void)\n{\n    if (verbose) puts(\"STUB: OSAGetProperty called\");\n    return NULL;\n}\n\nvoid* OSAGetPropertyNames(void)\n{\n    if (verbose) puts(\"STUB: OSAGetPropertyNames called\");\n    return NULL;\n}\n\nvoid* OSAGetReleaseProgressProc(void)\n{\n    if (verbose) puts(\"STUB: OSAGetReleaseProgressProc called\");\n    return NULL;\n}\n\nvoid* OSAGetResumeDispatchProc(void)\n{\n    if (verbose) puts(\"STUB: OSAGetResumeDispatchProc called\");\n    return NULL;\n}\n\nvoid* OSAGetScriptDataFromURL(void)\n{\n    if (verbose) puts(\"STUB: OSAGetScriptDataFromURL called\");\n    return NULL;\n}\n\nvoid* OSAGetScriptInfo(void)\n{\n    if (verbose) puts(\"STUB: OSAGetScriptInfo called\");\n    return NULL;\n}\n\nvoid* OSAGetScriptingComponent(void)\n{\n    if (verbose) puts(\"STUB: OSAGetScriptingComponent called\");\n    return NULL;\n}\n\nvoid* OSAGetScriptingComponentFromStored(void)\n{\n    if (verbose) puts(\"STUB: OSAGetScriptingComponentFromStored called\");\n    return NULL;\n}\n\nvoid* OSAGetSendProc(void)\n{\n    if (verbose) puts(\"STUB: OSAGetSendProc called\");\n    return NULL;\n}\n\nvoid* OSAGetSource(void)\n{\n    if (verbose) puts(\"STUB: OSAGetSource called\");\n    return NULL;\n}\n\nvoid* OSAGetStorageType(void)\n{\n    if (verbose) puts(\"STUB: OSAGetStorageType called\");\n    return NULL;\n}\n\nvoid* OSAGetSysTerminology(void)\n{\n    if (verbose) puts(\"STUB: OSAGetSysTerminology called\");\n    return NULL;\n}\n\nvoid* OSAInstallEventHandler(void)\n{\n    if (verbose) puts(\"STUB: OSAInstallEventHandler called\");\n    return NULL;\n}\n\nvoid* OSAInstallGestaltValues(void)\n{\n    if (verbose) puts(\"STUB: OSAInstallGestaltValues called\");\n    return NULL;\n}\n\nvoid* OSAInstallScriptingDescCoercions(void)\n{\n    if (verbose) puts(\"STUB: OSAInstallScriptingDescCoercions called\");\n    return NULL;\n}\n\nvoid* OSAInstallScriptingEventHandlers(void)\n{\n    if (verbose) puts(\"STUB: OSAInstallScriptingEventHandlers called\");\n    return NULL;\n}\n\nvoid* OSAInstallStdDescCoercions(void)\n{\n    if (verbose) puts(\"STUB: OSAInstallStdDescCoercions called\");\n    return NULL;\n}\n\nvoid* OSAInstallStdEventHandlers(void)\n{\n    if (verbose) puts(\"STUB: OSAInstallStdEventHandlers called\");\n    return NULL;\n}\n\nvoid* OSAInstallStdPtrCoercions(void)\n{\n    if (verbose) puts(\"STUB: OSAInstallStdPtrCoercions called\");\n    return NULL;\n}\n\nvoid* OSAInstallUnitPtrCoercions(void)\n{\n    if (verbose) puts(\"STUB: OSAInstallUnitPtrCoercions called\");\n    return NULL;\n}\n\nvoid* OSAIsEventAuthorizationRequested(void)\n{\n    if (verbose) puts(\"STUB: OSAIsEventAuthorizationRequested called\");\n    return NULL;\n}\n\nvoid* OSAIsEventAuthorized(void)\n{\n    if (verbose) puts(\"STUB: OSAIsEventAuthorized called\");\n    return NULL;\n}\n\nvoid* OSAIsScriptableBundle(void)\n{\n    if (verbose) puts(\"STUB: OSAIsScriptableBundle called\");\n    return NULL;\n}\n\nvoid* OSAIsScriptableRef(void)\n{\n    if (verbose) puts(\"STUB: OSAIsScriptableRef called\");\n    return NULL;\n}\n\nvoid* OSAIsScriptableURL(void)\n{\n    if (verbose) puts(\"STUB: OSAIsScriptableURL called\");\n    return NULL;\n}\n\nvoid* OSALoad(void)\n{\n    if (verbose) puts(\"STUB: OSALoad called\");\n    return NULL;\n}\n\nvoid* OSALoadExecute(void)\n{\n    if (verbose) puts(\"STUB: OSALoadExecute called\");\n    return NULL;\n}\n\nvoid* OSALoadExecuteFile(void)\n{\n    if (verbose) puts(\"STUB: OSALoadExecuteFile called\");\n    return NULL;\n}\n\nvoid* OSALoadFile(void)\n{\n    if (verbose) puts(\"STUB: OSALoadFile called\");\n    return NULL;\n}\n\nvoid* OSALoadScriptData(void)\n{\n    if (verbose) puts(\"STUB: OSALoadScriptData called\");\n    return NULL;\n}\n\nvoid* OSALoadScriptDataFromFile(void)\n{\n    if (verbose) puts(\"STUB: OSALoadScriptDataFromFile called\");\n    return NULL;\n}\n\nvoid* OSAMakeContext(void)\n{\n    if (verbose) puts(\"STUB: OSAMakeContext called\");\n    return NULL;\n}\n\nvoid* OSARealToGenericID(void)\n{\n    if (verbose) puts(\"STUB: OSARealToGenericID called\");\n    return NULL;\n}\n\nvoid* OSARecordEvent(void)\n{\n    if (verbose) puts(\"STUB: OSARecordEvent called\");\n    return NULL;\n}\n\nvoid* OSARemoveEventHandler(void)\n{\n    if (verbose) puts(\"STUB: OSARemoveEventHandler called\");\n    return NULL;\n}\n\nvoid* OSARemoveStorageType(void)\n{\n    if (verbose) puts(\"STUB: OSARemoveStorageType called\");\n    return NULL;\n}\n\nvoid* OSARequestEventAuthorization(void)\n{\n    if (verbose) puts(\"STUB: OSARequestEventAuthorization called\");\n    return NULL;\n}\n\nvoid* OSAScriptError(void)\n{\n    if (verbose) puts(\"STUB: OSAScriptError called\");\n    return NULL;\n}\n\nvoid* OSAScriptingComponentName(void)\n{\n    if (verbose) puts(\"STUB: OSAScriptingComponentName called\");\n    return NULL;\n}\n\nvoid* OSASetActiveProc(void)\n{\n    if (verbose) puts(\"STUB: OSASetActiveProc called\");\n    return NULL;\n}\n\nvoid* OSASetCreateProc(void)\n{\n    if (verbose) puts(\"STUB: OSASetCreateProc called\");\n    return NULL;\n}\n\nvoid* OSASetCreateProgressProc(void)\n{\n    if (verbose) puts(\"STUB: OSASetCreateProgressProc called\");\n    return NULL;\n}\n\nvoid* OSASetCurrentDialect(void)\n{\n    if (verbose) puts(\"STUB: OSASetCurrentDialect called\");\n    return NULL;\n}\n\nvoid* OSASetDefaultScriptingComponent(void)\n{\n    if (verbose) puts(\"STUB: OSASetDefaultScriptingComponent called\");\n    return NULL;\n}\n\nvoid* OSASetDefaultTarget(void)\n{\n    if (verbose) puts(\"STUB: OSASetDefaultTarget called\");\n    return NULL;\n}\n\nvoid* OSASetHandler(void)\n{\n    if (verbose) puts(\"STUB: OSASetHandler called\");\n    return NULL;\n}\n\nvoid* OSASetProperty(void)\n{\n    if (verbose) puts(\"STUB: OSASetProperty called\");\n    return NULL;\n}\n\nvoid* OSASetReleaseProgressProc(void)\n{\n    if (verbose) puts(\"STUB: OSASetReleaseProgressProc called\");\n    return NULL;\n}\n\nvoid* OSASetResumeDispatchProc(void)\n{\n    if (verbose) puts(\"STUB: OSASetResumeDispatchProc called\");\n    return NULL;\n}\n\nvoid* OSASetScriptInfo(void)\n{\n    if (verbose) puts(\"STUB: OSASetScriptInfo called\");\n    return NULL;\n}\n\nvoid* OSASetSendProc(void)\n{\n    if (verbose) puts(\"STUB: OSASetSendProc called\");\n    return NULL;\n}\n\nvoid* OSAStartRecording(void)\n{\n    if (verbose) puts(\"STUB: OSAStartRecording called\");\n    return NULL;\n}\n\nvoid* OSAStopRecording(void)\n{\n    if (verbose) puts(\"STUB: OSAStopRecording called\");\n    return NULL;\n}\n\nvoid* OSAStore(void)\n{\n    if (verbose) puts(\"STUB: OSAStore called\");\n    return NULL;\n}\n\nvoid* OSAStoreFile(void)\n{\n    if (verbose) puts(\"STUB: OSAStoreFile called\");\n    return NULL;\n}\n\nvoid* OSAStoreScriptDataToFile(void)\n{\n    if (verbose) puts(\"STUB: OSAStoreScriptDataToFile called\");\n    return NULL;\n}\n\nvoid* OSAStoreScriptDataToNewFile(void)\n{\n    if (verbose) puts(\"STUB: OSAStoreScriptDataToNewFile called\");\n    return NULL;\n}\n\nvoid* _HandleGDUT(void)\n{\n    if (verbose) puts(\"STUB: _HandleGDUT called\");\n    return NULL;\n}\n\nvoid* _OSACopyDisplayString(void)\n{\n    if (verbose) puts(\"STUB: _OSACopyDisplayString called\");\n    return NULL;\n}\n\nvoid* _OSACopyScriptingDefinitionFromFile(void)\n{\n    if (verbose) puts(\"STUB: _OSACopyScriptingDefinitionFromFile called\");\n    return NULL;\n}\n\nvoid* _OSACopySourceString(void)\n{\n    if (verbose) puts(\"STUB: _OSACopySourceString called\");\n    return NULL;\n}\n\nvoid* _OSACreateURL(void)\n{\n    if (verbose) puts(\"STUB: _OSACreateURL called\");\n    return NULL;\n}\n\nvoid* _OSADoScriptURL(void)\n{\n    if (verbose) puts(\"STUB: _OSADoScriptURL called\");\n    return NULL;\n}\n\nvoid* _OSALoadExecuteURL(void)\n{\n    if (verbose) puts(\"STUB: _OSALoadExecuteURL called\");\n    return NULL;\n}\n\nvoid* _OSALoadURL(void)\n{\n    if (verbose) puts(\"STUB: _OSALoadURL called\");\n    return NULL;\n}\n\nvoid* _OSAStoreScriptDataToURL(void)\n{\n    if (verbose) puts(\"STUB: _OSAStoreScriptDataToURL called\");\n    return NULL;\n}\n\nvoid* _OSAStoreURL(void)\n{\n    if (verbose) puts(\"STUB: _OSAStoreURL called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/Print/CMakeLists.txt",
    "content": "project(Print)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"271.0.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(Print\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/Print\"\n)\n\nadd_framework(Print\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/Print.c\n\n\tDEPENDENCIES\n\t\tsystem\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/Print/include/Print/Print.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Print_H_\n#define _Print_H_\n\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/Print/src/Print.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Print/Print.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/SecurityHI/CMakeLists.txt",
    "content": "project(SecurityHI)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"55008.0.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(SecurityHI\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/SecurityHI\"\n)\n\nadd_framework(SecurityHI\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/SecurityHI.c\n\n\tDEPENDENCIES\n\t\tsystem\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/SecurityHI/include/SecurityHI/SecurityHI.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _SecurityHI_H_\n#define _SecurityHI_H_\n\nvoid* DisposeURLNotifyUPP(void);\nvoid* DisposeURLSystemEventUPP(void);\nvoid* InvokeURLNotifyUPP(void);\nvoid* InvokeURLSystemEventUPP(void);\nvoid* KCAddAppleSharePassword(void);\nvoid* KCAddGenericPassword(void);\nvoid* KCAddInternetPassword(void);\nvoid* KCAddInternetPasswordWithPath(void);\nvoid* KCAddItem(void);\nvoid* KCChangeSettings(void);\nvoid* KCCreateKeychain(void);\nvoid* KCUnlock(void);\nvoid* NewURLNotifyUPP(void);\nvoid* NewURLSystemEventUPP(void);\nvoid* SecChooseIdentity(void);\nvoid* SecChooseIdentityAsSheet(void);\nvoid* SecDisplayCertificate(void);\nvoid* SecDisplayCertificateGroup(void);\nvoid* SecEditTrust(void);\nvoid* SecEditTrustAsSheet(void);\nvoid* kcaddapplesharepassword(void);\nvoid* kcaddgenericpassword(void);\nvoid* kcaddinternetpassword(void);\nvoid* kcaddinternetpasswordwithpath(void);\nvoid* kccreatekeychain(void);\nvoid* kcunlock(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/SecurityHI/src/SecurityHI.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <SecurityHI/SecurityHI.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* DisposeURLNotifyUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeURLNotifyUPP called\");\n    return NULL;\n}\n\nvoid* DisposeURLSystemEventUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeURLSystemEventUPP called\");\n    return NULL;\n}\n\nvoid* InvokeURLNotifyUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeURLNotifyUPP called\");\n    return NULL;\n}\n\nvoid* InvokeURLSystemEventUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeURLSystemEventUPP called\");\n    return NULL;\n}\n\nvoid* KCAddAppleSharePassword(void)\n{\n    if (verbose) puts(\"STUB: KCAddAppleSharePassword called\");\n    return NULL;\n}\n\nvoid* KCAddGenericPassword(void)\n{\n    if (verbose) puts(\"STUB: KCAddGenericPassword called\");\n    return NULL;\n}\n\nvoid* KCAddInternetPassword(void)\n{\n    if (verbose) puts(\"STUB: KCAddInternetPassword called\");\n    return NULL;\n}\n\nvoid* KCAddInternetPasswordWithPath(void)\n{\n    if (verbose) puts(\"STUB: KCAddInternetPasswordWithPath called\");\n    return NULL;\n}\n\nvoid* KCAddItem(void)\n{\n    if (verbose) puts(\"STUB: KCAddItem called\");\n    return NULL;\n}\n\nvoid* KCChangeSettings(void)\n{\n    if (verbose) puts(\"STUB: KCChangeSettings called\");\n    return NULL;\n}\n\nvoid* KCCreateKeychain(void)\n{\n    if (verbose) puts(\"STUB: KCCreateKeychain called\");\n    return NULL;\n}\n\nvoid* KCUnlock(void)\n{\n    if (verbose) puts(\"STUB: KCUnlock called\");\n    return NULL;\n}\n\nvoid* NewURLNotifyUPP(void)\n{\n    if (verbose) puts(\"STUB: NewURLNotifyUPP called\");\n    return NULL;\n}\n\nvoid* NewURLSystemEventUPP(void)\n{\n    if (verbose) puts(\"STUB: NewURLSystemEventUPP called\");\n    return NULL;\n}\n\nvoid* SecChooseIdentity(void)\n{\n    if (verbose) puts(\"STUB: SecChooseIdentity called\");\n    return NULL;\n}\n\nvoid* SecChooseIdentityAsSheet(void)\n{\n    if (verbose) puts(\"STUB: SecChooseIdentityAsSheet called\");\n    return NULL;\n}\n\nvoid* SecDisplayCertificate(void)\n{\n    if (verbose) puts(\"STUB: SecDisplayCertificate called\");\n    return NULL;\n}\n\nvoid* SecDisplayCertificateGroup(void)\n{\n    if (verbose) puts(\"STUB: SecDisplayCertificateGroup called\");\n    return NULL;\n}\n\nvoid* SecEditTrust(void)\n{\n    if (verbose) puts(\"STUB: SecEditTrust called\");\n    return NULL;\n}\n\nvoid* SecEditTrustAsSheet(void)\n{\n    if (verbose) puts(\"STUB: SecEditTrustAsSheet called\");\n    return NULL;\n}\n\nvoid* kcaddapplesharepassword(void)\n{\n    if (verbose) puts(\"STUB: kcaddapplesharepassword called\");\n    return NULL;\n}\n\nvoid* kcaddgenericpassword(void)\n{\n    if (verbose) puts(\"STUB: kcaddgenericpassword called\");\n    return NULL;\n}\n\nvoid* kcaddinternetpassword(void)\n{\n    if (verbose) puts(\"STUB: kcaddinternetpassword called\");\n    return NULL;\n}\n\nvoid* kcaddinternetpasswordwithpath(void)\n{\n    if (verbose) puts(\"STUB: kcaddinternetpasswordwithpath called\");\n    return NULL;\n}\n\nvoid* kccreatekeychain(void)\n{\n    if (verbose) puts(\"STUB: kccreatekeychain called\");\n    return NULL;\n}\n\nvoid* kcunlock(void)\n{\n    if (verbose) puts(\"STUB: kcunlock called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/SpeechRecognition/CMakeLists.txt",
    "content": "project(SpeechRecognition)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"1.0.0\")\n\nset(SUBFRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_subframework(SpeechRecognition\n\tBASE_PATH ${carbon_sdk_path}\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tHEADER \"include/SpeechRecognition\"\n)\n\nadd_framework(SpeechRecognition\n\tFAT\n\tCURRENT_VERSION\n\tVERSION ${SUBFRAMEWORK_VERSION}\n\tPARENT \"Carbon\"\n\n\tSOURCES\n\t\tsrc/SpeechRecognition.c\n\n\tDEPENDENCIES\n\t\tsystem\n)\n"
  },
  {
    "path": "src/frameworks/Carbon/SpeechRecognition/include/SpeechRecognition/SpeechRecognition.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _SpeechRecognition_H_\n#define _SpeechRecognition_H_\n\nvoid* DisposeSRCallBackUPP(void);\nvoid* InvokeSRCallBackUPP(void);\nvoid* NewSRCallBackUPP(void);\nvoid* SFSAvatarCaptionVisible(void);\nvoid* SFSCopyActiveRecognizer(void);\nvoid* SFSCopyCurrentAvatarIdentifier(void);\nvoid* SFSCopyIndAvatarInfo(void);\nvoid* SFSCopyIndRecognizerPluginBundleRef(void);\nvoid* SFSCopyNamedAvatarInfo(void);\nvoid* SFSCopyProperty(void);\nvoid* SFSCountAvatars(void);\nvoid* SFSCountRecognizerPlugins(void);\nvoid* SFSCreateSpeechFeedbackService(void);\nvoid* SFSCreateSpeechFeedbackServiceFromRecognizerIdentifier(void);\nvoid* SFSDeminimizeFeedbackWindow(void);\nvoid* SFSDeminimizeUtilityWindow(void);\nvoid* SFSFeedbackWindowVisible(void);\nvoid* SFSGetAvatarExpression(void);\nvoid* SFSGetTargetProcess(void);\nvoid* SFSHideAvatarCaption(void);\nvoid* SFSHideFeedbackWindow(void);\nvoid* SFSHideRecognizerArea(void);\nvoid* SFSHideTextArea(void);\nvoid* SFSHideUtilityWindow(void);\nvoid* SFSIsRecognizerAreaVisible(void);\nvoid* SFSIsTextAreaVisible(void);\nvoid* SFSMinimizeFeedbackWindow(void);\nvoid* SFSMinimizeUtilityWindow(void);\nvoid* SFSReleaseSpeechFeedbackService(void);\nvoid* SFSRequestMicrophone(void);\nvoid* SFSReturnMicrophone(void);\nvoid* SFSSendMessageToRecognizerArea(void);\nvoid* SFSSetActiveRecognizer(void);\nvoid* SFSSetAvatarCaption(void);\nvoid* SFSSetAvatarExpression(void);\nvoid* SFSSetAvatarSpeakingState(void);\nvoid* SFSSetIdentityBadge(void);\nvoid* SFSSetMicrophoneMeterStatus(void);\nvoid* SFSSetProperty(void);\nvoid* SFSSetRecognizerStartupAction(void);\nvoid* SFSSetSpeakableCommandsData(void);\nvoid* SFSShowAvatarCaption(void);\nvoid* SFSShowFeedbackWindow(void);\nvoid* SFSShowRecognizerArea(void);\nvoid* SFSShowTextArea(void);\nvoid* SFSShowUtilityWindow(void);\nvoid* SFSSpeakAndDrawString(void);\nvoid* SFSSpeakAndDrawStringUsingVoice(void);\nvoid* SFSSpecifyMicrophoneToMeter(void);\nvoid* SFSSpeechBusy(void);\nvoid* SFSStopSpeech(void);\nvoid* SFSSyncFeedbackWindowWithPrefs(void);\nvoid* SFSUseAvatar(void);\nvoid* SFSUseAvatarBundle(void);\nvoid* SFSUseRecognizerAreaBundle(void);\nvoid* SFSUtilityWindowVisible(void);\nvoid* SRAddLanguageObject(void);\nvoid* SRAddText(void);\nvoid* SRCancelRecognition(void);\nvoid* SRChangeLanguageObject(void);\nvoid* SRCloseRecognitionSystem(void);\nvoid* SRContinueRecognition(void);\nvoid* SRCountItems(void);\nvoid* SRDrawRecognizedText(void);\nvoid* SRDrawText(void);\nvoid* SREmptyLanguageObject(void);\nvoid* SRGetIndexedItem(void);\nvoid* SRGetLanguageModel(void);\nvoid* SRGetProperty(void);\nvoid* SRGetReference(void);\nvoid* SRIdle(void);\nvoid* SRNewLanguageModel(void);\nvoid* SRNewLanguageObjectFromDataFile(void);\nvoid* SRNewLanguageObjectFromHandle(void);\nvoid* SRNewPath(void);\nvoid* SRNewPhrase(void);\nvoid* SRNewRecognizer(void);\nvoid* SRNewWord(void);\nvoid* SROpenRecognitionSystem(void);\nvoid* SRProcessBegin(void);\nvoid* SRProcessEnd(void);\nvoid* SRPutLanguageObjectIntoDataFile(void);\nvoid* SRPutLanguageObjectIntoHandle(void);\nvoid* SRReleaseObject(void);\nvoid* SRRemoveIndexedItem(void);\nvoid* SRRemoveLanguageObject(void);\nvoid* SRSetIndexedItem(void);\nvoid* SRSetLanguageModel(void);\nvoid* SRSetProperty(void);\nvoid* SRSpeakAndDrawText(void);\nvoid* SRSpeakText(void);\nvoid* SRSpeechBusy(void);\nvoid* SRStartListening(void);\nvoid* SRStopListening(void);\nvoid* SRStopSpeech(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/SpeechRecognition/src/SpeechRecognition.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2021 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <SpeechRecognition/SpeechRecognition.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* DisposeSRCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: DisposeSRCallBackUPP called\");\n    return NULL;\n}\n\nvoid* InvokeSRCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: InvokeSRCallBackUPP called\");\n    return NULL;\n}\n\nvoid* NewSRCallBackUPP(void)\n{\n    if (verbose) puts(\"STUB: NewSRCallBackUPP called\");\n    return NULL;\n}\n\nvoid* SFSAvatarCaptionVisible(void)\n{\n    if (verbose) puts(\"STUB: SFSAvatarCaptionVisible called\");\n    return NULL;\n}\n\nvoid* SFSCopyActiveRecognizer(void)\n{\n    if (verbose) puts(\"STUB: SFSCopyActiveRecognizer called\");\n    return NULL;\n}\n\nvoid* SFSCopyCurrentAvatarIdentifier(void)\n{\n    if (verbose) puts(\"STUB: SFSCopyCurrentAvatarIdentifier called\");\n    return NULL;\n}\n\nvoid* SFSCopyIndAvatarInfo(void)\n{\n    if (verbose) puts(\"STUB: SFSCopyIndAvatarInfo called\");\n    return NULL;\n}\n\nvoid* SFSCopyIndRecognizerPluginBundleRef(void)\n{\n    if (verbose) puts(\"STUB: SFSCopyIndRecognizerPluginBundleRef called\");\n    return NULL;\n}\n\nvoid* SFSCopyNamedAvatarInfo(void)\n{\n    if (verbose) puts(\"STUB: SFSCopyNamedAvatarInfo called\");\n    return NULL;\n}\n\nvoid* SFSCopyProperty(void)\n{\n    if (verbose) puts(\"STUB: SFSCopyProperty called\");\n    return NULL;\n}\n\nvoid* SFSCountAvatars(void)\n{\n    if (verbose) puts(\"STUB: SFSCountAvatars called\");\n    return NULL;\n}\n\nvoid* SFSCountRecognizerPlugins(void)\n{\n    if (verbose) puts(\"STUB: SFSCountRecognizerPlugins called\");\n    return NULL;\n}\n\nvoid* SFSCreateSpeechFeedbackService(void)\n{\n    if (verbose) puts(\"STUB: SFSCreateSpeechFeedbackService called\");\n    return NULL;\n}\n\nvoid* SFSCreateSpeechFeedbackServiceFromRecognizerIdentifier(void)\n{\n    if (verbose) puts(\"STUB: SFSCreateSpeechFeedbackServiceFromRecognizerIdentifier called\");\n    return NULL;\n}\n\nvoid* SFSDeminimizeFeedbackWindow(void)\n{\n    if (verbose) puts(\"STUB: SFSDeminimizeFeedbackWindow called\");\n    return NULL;\n}\n\nvoid* SFSDeminimizeUtilityWindow(void)\n{\n    if (verbose) puts(\"STUB: SFSDeminimizeUtilityWindow called\");\n    return NULL;\n}\n\nvoid* SFSFeedbackWindowVisible(void)\n{\n    if (verbose) puts(\"STUB: SFSFeedbackWindowVisible called\");\n    return NULL;\n}\n\nvoid* SFSGetAvatarExpression(void)\n{\n    if (verbose) puts(\"STUB: SFSGetAvatarExpression called\");\n    return NULL;\n}\n\nvoid* SFSGetTargetProcess(void)\n{\n    if (verbose) puts(\"STUB: SFSGetTargetProcess called\");\n    return NULL;\n}\n\nvoid* SFSHideAvatarCaption(void)\n{\n    if (verbose) puts(\"STUB: SFSHideAvatarCaption called\");\n    return NULL;\n}\n\nvoid* SFSHideFeedbackWindow(void)\n{\n    if (verbose) puts(\"STUB: SFSHideFeedbackWindow called\");\n    return NULL;\n}\n\nvoid* SFSHideRecognizerArea(void)\n{\n    if (verbose) puts(\"STUB: SFSHideRecognizerArea called\");\n    return NULL;\n}\n\nvoid* SFSHideTextArea(void)\n{\n    if (verbose) puts(\"STUB: SFSHideTextArea called\");\n    return NULL;\n}\n\nvoid* SFSHideUtilityWindow(void)\n{\n    if (verbose) puts(\"STUB: SFSHideUtilityWindow called\");\n    return NULL;\n}\n\nvoid* SFSIsRecognizerAreaVisible(void)\n{\n    if (verbose) puts(\"STUB: SFSIsRecognizerAreaVisible called\");\n    return NULL;\n}\n\nvoid* SFSIsTextAreaVisible(void)\n{\n    if (verbose) puts(\"STUB: SFSIsTextAreaVisible called\");\n    return NULL;\n}\n\nvoid* SFSMinimizeFeedbackWindow(void)\n{\n    if (verbose) puts(\"STUB: SFSMinimizeFeedbackWindow called\");\n    return NULL;\n}\n\nvoid* SFSMinimizeUtilityWindow(void)\n{\n    if (verbose) puts(\"STUB: SFSMinimizeUtilityWindow called\");\n    return NULL;\n}\n\nvoid* SFSReleaseSpeechFeedbackService(void)\n{\n    if (verbose) puts(\"STUB: SFSReleaseSpeechFeedbackService called\");\n    return NULL;\n}\n\nvoid* SFSRequestMicrophone(void)\n{\n    if (verbose) puts(\"STUB: SFSRequestMicrophone called\");\n    return NULL;\n}\n\nvoid* SFSReturnMicrophone(void)\n{\n    if (verbose) puts(\"STUB: SFSReturnMicrophone called\");\n    return NULL;\n}\n\nvoid* SFSSendMessageToRecognizerArea(void)\n{\n    if (verbose) puts(\"STUB: SFSSendMessageToRecognizerArea called\");\n    return NULL;\n}\n\nvoid* SFSSetActiveRecognizer(void)\n{\n    if (verbose) puts(\"STUB: SFSSetActiveRecognizer called\");\n    return NULL;\n}\n\nvoid* SFSSetAvatarCaption(void)\n{\n    if (verbose) puts(\"STUB: SFSSetAvatarCaption called\");\n    return NULL;\n}\n\nvoid* SFSSetAvatarExpression(void)\n{\n    if (verbose) puts(\"STUB: SFSSetAvatarExpression called\");\n    return NULL;\n}\n\nvoid* SFSSetAvatarSpeakingState(void)\n{\n    if (verbose) puts(\"STUB: SFSSetAvatarSpeakingState called\");\n    return NULL;\n}\n\nvoid* SFSSetIdentityBadge(void)\n{\n    if (verbose) puts(\"STUB: SFSSetIdentityBadge called\");\n    return NULL;\n}\n\nvoid* SFSSetMicrophoneMeterStatus(void)\n{\n    if (verbose) puts(\"STUB: SFSSetMicrophoneMeterStatus called\");\n    return NULL;\n}\n\nvoid* SFSSetProperty(void)\n{\n    if (verbose) puts(\"STUB: SFSSetProperty called\");\n    return NULL;\n}\n\nvoid* SFSSetRecognizerStartupAction(void)\n{\n    if (verbose) puts(\"STUB: SFSSetRecognizerStartupAction called\");\n    return NULL;\n}\n\nvoid* SFSSetSpeakableCommandsData(void)\n{\n    if (verbose) puts(\"STUB: SFSSetSpeakableCommandsData called\");\n    return NULL;\n}\n\nvoid* SFSShowAvatarCaption(void)\n{\n    if (verbose) puts(\"STUB: SFSShowAvatarCaption called\");\n    return NULL;\n}\n\nvoid* SFSShowFeedbackWindow(void)\n{\n    if (verbose) puts(\"STUB: SFSShowFeedbackWindow called\");\n    return NULL;\n}\n\nvoid* SFSShowRecognizerArea(void)\n{\n    if (verbose) puts(\"STUB: SFSShowRecognizerArea called\");\n    return NULL;\n}\n\nvoid* SFSShowTextArea(void)\n{\n    if (verbose) puts(\"STUB: SFSShowTextArea called\");\n    return NULL;\n}\n\nvoid* SFSShowUtilityWindow(void)\n{\n    if (verbose) puts(\"STUB: SFSShowUtilityWindow called\");\n    return NULL;\n}\n\nvoid* SFSSpeakAndDrawString(void)\n{\n    if (verbose) puts(\"STUB: SFSSpeakAndDrawString called\");\n    return NULL;\n}\n\nvoid* SFSSpeakAndDrawStringUsingVoice(void)\n{\n    if (verbose) puts(\"STUB: SFSSpeakAndDrawStringUsingVoice called\");\n    return NULL;\n}\n\nvoid* SFSSpecifyMicrophoneToMeter(void)\n{\n    if (verbose) puts(\"STUB: SFSSpecifyMicrophoneToMeter called\");\n    return NULL;\n}\n\nvoid* SFSSpeechBusy(void)\n{\n    if (verbose) puts(\"STUB: SFSSpeechBusy called\");\n    return NULL;\n}\n\nvoid* SFSStopSpeech(void)\n{\n    if (verbose) puts(\"STUB: SFSStopSpeech called\");\n    return NULL;\n}\n\nvoid* SFSSyncFeedbackWindowWithPrefs(void)\n{\n    if (verbose) puts(\"STUB: SFSSyncFeedbackWindowWithPrefs called\");\n    return NULL;\n}\n\nvoid* SFSUseAvatar(void)\n{\n    if (verbose) puts(\"STUB: SFSUseAvatar called\");\n    return NULL;\n}\n\nvoid* SFSUseAvatarBundle(void)\n{\n    if (verbose) puts(\"STUB: SFSUseAvatarBundle called\");\n    return NULL;\n}\n\nvoid* SFSUseRecognizerAreaBundle(void)\n{\n    if (verbose) puts(\"STUB: SFSUseRecognizerAreaBundle called\");\n    return NULL;\n}\n\nvoid* SFSUtilityWindowVisible(void)\n{\n    if (verbose) puts(\"STUB: SFSUtilityWindowVisible called\");\n    return NULL;\n}\n\nvoid* SRAddLanguageObject(void)\n{\n    if (verbose) puts(\"STUB: SRAddLanguageObject called\");\n    return NULL;\n}\n\nvoid* SRAddText(void)\n{\n    if (verbose) puts(\"STUB: SRAddText called\");\n    return NULL;\n}\n\nvoid* SRCancelRecognition(void)\n{\n    if (verbose) puts(\"STUB: SRCancelRecognition called\");\n    return NULL;\n}\n\nvoid* SRChangeLanguageObject(void)\n{\n    if (verbose) puts(\"STUB: SRChangeLanguageObject called\");\n    return NULL;\n}\n\nvoid* SRCloseRecognitionSystem(void)\n{\n    if (verbose) puts(\"STUB: SRCloseRecognitionSystem called\");\n    return NULL;\n}\n\nvoid* SRContinueRecognition(void)\n{\n    if (verbose) puts(\"STUB: SRContinueRecognition called\");\n    return NULL;\n}\n\nvoid* SRCountItems(void)\n{\n    if (verbose) puts(\"STUB: SRCountItems called\");\n    return NULL;\n}\n\nvoid* SRDrawRecognizedText(void)\n{\n    if (verbose) puts(\"STUB: SRDrawRecognizedText called\");\n    return NULL;\n}\n\nvoid* SRDrawText(void)\n{\n    if (verbose) puts(\"STUB: SRDrawText called\");\n    return NULL;\n}\n\nvoid* SREmptyLanguageObject(void)\n{\n    if (verbose) puts(\"STUB: SREmptyLanguageObject called\");\n    return NULL;\n}\n\nvoid* SRGetIndexedItem(void)\n{\n    if (verbose) puts(\"STUB: SRGetIndexedItem called\");\n    return NULL;\n}\n\nvoid* SRGetLanguageModel(void)\n{\n    if (verbose) puts(\"STUB: SRGetLanguageModel called\");\n    return NULL;\n}\n\nvoid* SRGetProperty(void)\n{\n    if (verbose) puts(\"STUB: SRGetProperty called\");\n    return NULL;\n}\n\nvoid* SRGetReference(void)\n{\n    if (verbose) puts(\"STUB: SRGetReference called\");\n    return NULL;\n}\n\nvoid* SRIdle(void)\n{\n    if (verbose) puts(\"STUB: SRIdle called\");\n    return NULL;\n}\n\nvoid* SRNewLanguageModel(void)\n{\n    if (verbose) puts(\"STUB: SRNewLanguageModel called\");\n    return NULL;\n}\n\nvoid* SRNewLanguageObjectFromDataFile(void)\n{\n    if (verbose) puts(\"STUB: SRNewLanguageObjectFromDataFile called\");\n    return NULL;\n}\n\nvoid* SRNewLanguageObjectFromHandle(void)\n{\n    if (verbose) puts(\"STUB: SRNewLanguageObjectFromHandle called\");\n    return NULL;\n}\n\nvoid* SRNewPath(void)\n{\n    if (verbose) puts(\"STUB: SRNewPath called\");\n    return NULL;\n}\n\nvoid* SRNewPhrase(void)\n{\n    if (verbose) puts(\"STUB: SRNewPhrase called\");\n    return NULL;\n}\n\nvoid* SRNewRecognizer(void)\n{\n    if (verbose) puts(\"STUB: SRNewRecognizer called\");\n    return NULL;\n}\n\nvoid* SRNewWord(void)\n{\n    if (verbose) puts(\"STUB: SRNewWord called\");\n    return NULL;\n}\n\nvoid* SROpenRecognitionSystem(void)\n{\n    if (verbose) puts(\"STUB: SROpenRecognitionSystem called\");\n    return NULL;\n}\n\nvoid* SRProcessBegin(void)\n{\n    if (verbose) puts(\"STUB: SRProcessBegin called\");\n    return NULL;\n}\n\nvoid* SRProcessEnd(void)\n{\n    if (verbose) puts(\"STUB: SRProcessEnd called\");\n    return NULL;\n}\n\nvoid* SRPutLanguageObjectIntoDataFile(void)\n{\n    if (verbose) puts(\"STUB: SRPutLanguageObjectIntoDataFile called\");\n    return NULL;\n}\n\nvoid* SRPutLanguageObjectIntoHandle(void)\n{\n    if (verbose) puts(\"STUB: SRPutLanguageObjectIntoHandle called\");\n    return NULL;\n}\n\nvoid* SRReleaseObject(void)\n{\n    if (verbose) puts(\"STUB: SRReleaseObject called\");\n    return NULL;\n}\n\nvoid* SRRemoveIndexedItem(void)\n{\n    if (verbose) puts(\"STUB: SRRemoveIndexedItem called\");\n    return NULL;\n}\n\nvoid* SRRemoveLanguageObject(void)\n{\n    if (verbose) puts(\"STUB: SRRemoveLanguageObject called\");\n    return NULL;\n}\n\nvoid* SRSetIndexedItem(void)\n{\n    if (verbose) puts(\"STUB: SRSetIndexedItem called\");\n    return NULL;\n}\n\nvoid* SRSetLanguageModel(void)\n{\n    if (verbose) puts(\"STUB: SRSetLanguageModel called\");\n    return NULL;\n}\n\nvoid* SRSetProperty(void)\n{\n    if (verbose) puts(\"STUB: SRSetProperty called\");\n    return NULL;\n}\n\nvoid* SRSpeakAndDrawText(void)\n{\n    if (verbose) puts(\"STUB: SRSpeakAndDrawText called\");\n    return NULL;\n}\n\nvoid* SRSpeakText(void)\n{\n    if (verbose) puts(\"STUB: SRSpeakText called\");\n    return NULL;\n}\n\nvoid* SRSpeechBusy(void)\n{\n    if (verbose) puts(\"STUB: SRSpeechBusy called\");\n    return NULL;\n}\n\nvoid* SRStartListening(void)\n{\n    if (verbose) puts(\"STUB: SRStartListening called\");\n    return NULL;\n}\n\nvoid* SRStopListening(void)\n{\n    if (verbose) puts(\"STUB: SRStopListening called\");\n    return NULL;\n}\n\nvoid* SRStopSpeech(void)\n{\n    if (verbose) puts(\"STUB: SRStopSpeech called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Carbon/include/Carbon/Carbon.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Carbon_H_\n#define _Carbon_H_\n\n#include <CarbonCore/MacErrors.h>\n#include \"CoreServices/MacTypes.h\"\n#include \"CoreServices/FileManager.h\"\n\n#include <HIToolbox/CarbonEventsCore.h>\n#include <HIToolbox/CarbonEvents.h>\n#include <HIToolbox/Dialogs.h>\n#include <HIToolbox/Drag.h>\n#include <HIToolbox/Events.h>\n#include <HIToolbox/HIObject.h>\n#include <HIToolbox/Lists.h>\n#include <HIToolbox/Menus.h>\n#include <HIToolbox/IBCarbonRuntime.h>\n#include <HIToolbox/Notification.h>\n#include <HIToolbox/Scrap.h>\n#include <HIToolbox/TextEdit.h>\n#include <HIToolbox/TextInputSources.h>\n#include <HIToolbox/TextServices.h>\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Carbon/src/Carbon.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Carbon/Carbon.h>\n\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\n\n// These stubs should prob be moved elsewhere\n\nOSErr ActivateTSMDocument(TSMDocumentID a)\n{\n    if (verbose) puts(\"STUB: ActivateTSMDocument called\");\n\treturn 0;\n}\n\nOSErr DeactivateTSMDocument(TSMDocumentID a)\n{\n    if (verbose) puts(\"STUB: DeactivateTSMDocument called\");\n\treturn 0;\n}\n\nOSStatus CreateStandardAlert(AlertType a, CFStringRef b, CFStringRef c, const AlertStdCFStringAlertParamRec * d, DialogRef * e)\n{\n    if (verbose) puts(\"STUB: CreateStandardAlert called\");\n\treturn 0;\n}\n\nOSErr UseInputWindow(TSMDocumentID a, Boolean b)\n{\n    if (verbose) puts(\"STUB: UseInputWindow called\");\n\treturn 0;\n}\n\nvoid FlushEvents(EventMask a, EventMask b)\n{\n    if (verbose) puts(\"STUB: FlushEvents called\");\n}\n\nEventTargetRef GetApplicationEventTarget(void)\n{\n    if (verbose) puts(\"STUB: GetApplicationEventTarget called\");\n\treturn (EventTargetRef)0;\n}\n\nOSStatus GetEventDispatcherTarget()\n{\n    if (verbose) puts(\"STUB: GetEventDispatcherTarget called\");\n\treturn 0;\n}\n\nOSStatus GetScrapByName(CFStringRef a, OptionBits b, ScrapRef * c)\n{\n    if (verbose) puts(\"STUB: GetScrapByName called\");\n\treturn 0;\n}\n\nOSStatus GetScrapFlavorData(ScrapRef a, ScrapFlavorType b, Size * c, void * d)\n{\n    if (verbose) puts(\"STUB: GetScrapFlavorData called\");\n\treturn 0;\n}\n\nOSStatus GetScrapFlavorSize(ScrapRef a, ScrapFlavorType b, Size * c)\n{\n    if (verbose) puts(\"STUB: GetScrapFlavorSize called\");\n\treturn 0;\n}\n\nOSStatus GetStandardAlertDefaultParams(AlertStdCFStringAlertParamPtr a, UInt32 b)\n{\n    if (verbose) puts(\"STUB: GetStandardAlertDefaultParams called\");\n\treturn 0;\n}\n\nvoid HideMenuBar(void)\n{\n    if (verbose) puts(\"STUB: HideMenuBar called\");\n\t\n}\n\nOSErr NMInstall(NMRecPtr a)\n{\n    if (verbose) puts(\"STUB: NMInstall called\");\n\treturn 0;\n}\n\nOSErr NewTSMDocument(short a, InterfaceTypeList b, TSMDocumentID * c, long d)\n{\n    if (verbose) puts(\"STUB: NewTSMDocument called\");\n\treturn 0;\n}\n\nOSStatus ProcessHICommand(const HICommand * a)\n{\n    if (verbose) puts(\"STUB: ProcessHICommand called\");\n\treturn 0;\n}\n\nOSStatus PutScrapFlavor(ScrapRef a, ScrapFlavorType b, ScrapFlavorFlags c, Size d, const void * e)\n{\n    if (verbose) puts(\"STUB: PutScrapFlavor called\");\n\treturn 0;\n}\n\nvoid RunApplicationEventLoop(void)\n{\n    if (verbose) puts(\"STUB: RunApplicationEventLoop called\");\n\t\n}\n\nOSStatus RunStandardAlert(DialogRef a, ModalFilterUPP b, DialogItemIndex * c)\n{\n    if (verbose) puts(\"STUB: RunStandardAlert called\");\n\treturn 0;\n}\n\nOSStatus SetEventMask(EventMask a)\n{\n    if (verbose) puts(\"STUB: SetEventMask called\");\n\treturn 0;\n}\n\nOSStatus SetEventParameter(EventRef a, EventParamName b, EventParamType c, UInt32 d, const void * e)\n{\n    if (verbose) puts(\"STUB: SetEventParameter called\");\n\treturn 0;\n}\n\nvoid ShowMenuBar(void)\n{\n    if (verbose) puts(\"STUB: ShowMenuBar called\");\n}\n\n\nvoid GetKeys (KeyMap theKeys)\n{\n\n}\n\n"
  },
  {
    "path": "src/frameworks/CloudKit/CMakeLists.txt",
    "content": "project(CloudKit)\n\nremove_sdk_framework(CloudKit)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"867.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(CloudKit\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/CloudKit\"\n)\n\nadd_framework(CloudKit\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/CloudKit.m\n        src/CKFlowControl.m\n        src/CKRecordZoneID.m\n        src/CKRepairAssetsOperation.m\n        src/CKRepairAssetsOperationInfo.m\n        src/CKDPRecordFieldValueEncryptedValue.m\n        src/CKUserNotificationUtilities.m\n        src/CKUploadRequestPersistentStore.m\n        src/CKMarkAssetBrokenOperation.m\n        src/CKMarkAssetBrokenOperationInfo.m\n        src/CKLogFacilityWrapper.m\n        src/CKModifyRecordZonesOperation.m\n        src/CKModifyRecordZonesOperationInfo.m\n        src/CKDiscoverAllContactsOperation.m\n        src/CKContainerSetupInfo.m\n        src/CKContainerOptions.m\n        src/CKAccountInfo.m\n        src/CKContainerXPCProxy.m\n        src/CKContainer.m\n        src/CKSyncEngineBatch.m\n        src/CKArchiveRecordsOperation.m\n        src/CKArchiveRecordsOperationInfo.m\n        src/CKQuery.m\n        src/CKNotificationListener.m\n        src/CKSubscriptionInfo.m\n        src/CKRepairZonePCSOperationInfo.m\n        src/CKRepairZonePCSOperation.m\n        src/CKDPRecordReference.m\n        src/CKException.m\n        src/CKSQLitePool.m\n        src/CKAutoBugCaptureMetadata.m\n        src/CKDCancelToken.m\n        src/CKFetchRecordZonesOperation.m\n        src/CKFetchRecordZonesOperationInfo.m\n        src/CKScheduler.m\n        src/CKDiscoverAllUserIdentitiesOperation.m\n        src/CKZonePCSDiagnosticInformation.m\n        src/CKPCSDiagnosticInformation.m\n        src/CKFetchShareMetadataOperation.m\n        src/CKFetchShareMetadataOperationInfo.m\n        src/CKSyncingClientInfo.m\n        src/CKSyncRequestOperation.m\n        src/CKModifyWebSharingOperation.m\n        src/CKModifyWebSharingOperationInfo.m\n        src/CKContainerID.m\n        src/CKLegacyPredicateValidator.m\n        src/CKSQLite.m\n        src/CKSQLiteError.m\n        src/CKAccountOverrideInfo.m\n        src/CKUserIdentity.m\n        src/CKSyncEngine.m\n        src/CKFetchDatabaseChangesOperation.m\n        src/CKFetchDatabaseChangesOperationInfo.m\n        src/CKFetchDatabaseChangesOperationResult.m\n        src/CKOperationFlowControlInfo.m\n        src/CKOperationFlowControlManager.m\n        src/CKPackageDB.m\n        src/CKPackageSection.m\n        src/CKDPRecordZoneIdentifier.m\n        src/CKApplicationPermissionGroup.m\n        src/CKUploadRequestManager.m\n        src/CKUploadRequestManagerInternals.m\n        src/CKUploadRequestManagerResponseActionThrottlerMetadata.m\n        src/CKUploadRequestManagerResponseActionThrottler.m\n        src/CKMarkNotificationsReadOperation.m\n        src/CKMarkNotificationsReadOperationInfo.m\n        src/CKFetchArchivedRecordsOperation.m\n        src/CKFetchArchivedRecordsOptions.m\n        src/CKFetchArchivedRecordsOperationInfo.m\n        src/CKDPStreamingAssetFooter.m\n        src/CKRecordValueStore.m\n        src/CKEncryptedRecordValueStore.m\n        src/CKRecord.m\n        src/CKContactsSupport.m\n        src/CKFileOpenInfo.m\n        src/CKFileOpenResult.m\n        src/CKFileMetadata.m\n        src/CKAssetTransferOptions.m\n        src/CKAssetReuploadExpectedProperties.m\n        src/CKAssetCopyInfo.m\n        src/CKAssetRereferenceInfo.m\n        src/CKAssetReference.m\n        src/CKAsset.m\n        src/CKSchedulerActivity.m\n        src/CKDiscretionaryOptions.m\n        src/CKDPRecordIdentifier.m\n        src/CKUserIdentityLookupInfo.m\n        src/CKDeviceToDeviceShareInvitationToken.m\n        src/CKShare.m\n        src/CKBehaviorOptions.m\n        src/CKPlaceholderOperation.m\n        src/CKOperation.m\n        src/CKOperationConfiguration.m\n        src/CKOperationInfo.m\n        src/CKOperationResult.m\n        src/CKOperationMMCSRequestOptions.m\n        src/CKDatabaseOperation.m\n        src/CKDatabaseOperationInfo.m\n        src/CKObjCClass.m\n        src/CKAssetRepairScheduler.m\n        src/CKRequestAssetOperation.m\n        src/CKQueryOperation.m\n        src/CKQueryOperationInfo.m\n        src/CKQueryOperationResult.m\n        src/CKQueryCursor.m\n        src/CKUploadRequestManagerStateMachine.m\n        src/CKShareParticipant.m\n        src/CKDiscoveredUserInfo.m\n        src/CKRecordGraphNode.m\n        src/CKRecordGraph.m\n        src/CKFetchNotificationChangesOperation.m\n        src/CKFetchNotificationChangesOperationInfo.m\n        src/CKFetchNotificationChangesOperationResult.m\n        src/CKFetchWebAuthTokenOperation.m\n        src/CKFetchWebAuthTokenOperationResult.m\n        src/CKFetchWebAuthTokenOperationInfo.m\n        src/CKFetchRecordVersionsOperation.m\n        src/CKFetchRecordVersionsOperationInfo.m\n        src/CKInitiateParticipantVettingOperation.m\n        src/CKInitiateParticipantVettingOperationInfo.m\n        src/CKStreamingAssetAppendContext.m\n        src/CKDPDate.m\n        src/CKAggregateZonePCSOperation.m\n        src/CKAggregateZonePCSOperationInfo.m\n        src/CKMetric.m\n        src/CKOperationMetrics.m\n        src/CKPackageItem.m\n        src/CKFetchRecordChangesOperation.m\n        src/CKFetchRecordChangesOperationResult.m\n        src/CKNotificationID.m\n        src/CKNotification.m\n        src/CKQueryNotification.m\n        src/CKRecordZoneNotification.m\n        src/CKDatabaseNotification.m\n        src/CKDatabase.m\n        src/CKAcceptSharesOperation.m\n        src/CKAcceptSharesOperationInfo.m\n        src/CKReference.m\n        src/CKFetchShareParticipantKeyOperation.m\n        src/CKFetchShareParticipantKeyOperationInfo.m\n        src/CKAPSMachServiceConnectionKey.m\n        src/CKAPSMachServiceConnectionDelegate.m\n        src/CKOperationGroup.m\n        src/CKOperationGroupSystemImposedInfoConfiguration.m\n        src/CKOperationGroupSystemImposedInfo.m\n        src/CKPublicKey.m\n        src/CKDPLocationCoordinate.m\n        src/CKDPIdentifier.m\n        src/CKSyncEngineFetchChangesOperation.m\n        src/CKEncryptedData.m\n        src/CKEncryptedString.m\n        src/CKEncryptedLongLong.m\n        src/CKEncryptedDouble.m\n        src/CKEncryptedDate.m\n        src/CKEncryptedReference.m\n        src/CKEncryptedLocation.m\n        src/CKEncryptedStringArray.m\n        src/CKEncryptedDoubleArray.m\n        src/CKEncryptedLongLongArray.m\n        src/CKEncryptedDateArray.m\n        src/CKEncryptedLocationArray.m\n        src/CKEncryptedEmptyArray.m\n        src/CKSQLiteStatementEnumerator.m\n        src/CKSyncEngineModifyRecordBatchesOperation.m\n        src/CKObjCProperty.m\n        src/CKQuerySubscription.m\n        src/CKRecordZoneSubscription.m\n        src/CKDatabaseSubscription.m\n        src/CKSubscription.m\n        src/CKNotificationInfo.m\n        src/CKModifySubscriptionsOperation.m\n        src/CKModifySubscriptionsOperationInfo.m\n        src/CKFetchRecordZoneChangesOperation.m\n        src/CKFetchRecordZoneChangesOptions.m\n        src/CKFetchRecordZoneChangesConfiguration.m\n        src/CKFetchRecordZoneChangesOperationInfo.m\n        src/CKModifyRecordsOperation.m\n        src/CKModifyRecordsOperationInfo.m\n        src/CKAssetDownloadPreauthorization.m\n        src/CKSignatureGenerator.m\n        src/CKSQLiteStatement.m\n        src/CKAssetRepairOperationUtilities.m\n        src/CKUploadRequestConfiguration.m\n        src/CKPublishAssetsOperation.m\n        src/CKPublishAssetsOperationInfo.m\n        src/CKCompleteParticipantVettingOperation.m\n        src/CKCompleteParticipantVettingOperationInfo.m\n        src/CKFetchSubscriptionsOperation.m\n        src/CKFetchSubscriptionsOperationInfo.m\n        src/CKLocationSortDescriptor.m\n        src/CKFetchRecordsAssetInfo.m\n        src/CKFetchRecordsOperation.m\n        src/CKFetchRecordsOperationInfo.m\n        src/CKPredicateValidatorInstance.m\n        src/CKRecursivePredicateValidator.m\n        src/CKAnyPredicateValidator.m\n        src/CKAllPredicateValidator.m\n        src/CKCompoundTypePredicateValidator.m\n        src/CKTruePredicateValidator.m\n        src/CKCompoundSubpredicateValidator.m\n        src/CKFlipFlopPredicateValidator.m\n        src/CKComparisonPredicateValidator.m\n        src/CKComparisonOperatorValidator.m\n        src/CKComparisonModifierValidator.m\n        src/CKComparisonOptionsValidator.m\n        src/CKConstantValueExpressionValidator.m\n        src/CKKeyPathExpressionValidator.m\n        src/CKAggregateExpressionValidator.m\n        src/CKFunctionExpressionValidator.m\n        src/CKEvaluatedObjectExpressionValidator.m\n        src/CKKindOfClassValidator.m\n        src/CKKindOfCollectionClassValidator.m\n        src/CKStringValueValidator.m\n        src/CKCustomBlockValidator.m\n        src/CKTrueValidator.m\n        src/CKNilValidator.m\n        src/CKDeclarativePredicateValidator.m\n        src/CKRequestInfo.m\n        src/CKBlockingAsyncQueue.m\n        src/CKCodeFunctionInvokeOperation.m\n        src/CKCodeFunctionInvokeOperationInfo.m\n        src/CKModifyRecordAccessOperation.m\n        src/CKModifyRecordAccessOperationInfo.m\n        src/CKShareMetadata.m\n        src/CKDiscoverUserInfosOperation.m\n        src/CKPackageDBDelegate.m\n        src/CKPackage.m\n        src/CKArchivedAnchoredPackage.m\n        src/CKObjCType.m\n        src/CKModifyBadgeOperation.m\n        src/CKModifyBadgeOperationInfo.m\n        src/CKUploadRequestMetadata.m\n        src/CKAssetUploadRequestMetadata.m\n        src/CKPackageUploadRequestMetadata.m\n        src/CKPredicateValidator.m\n        src/CKPrettyError.m\n        src/CKInternalError.m\n        src/CKSyncEngineMetadata.m\n        src/CKSyncEngineRecordModification.m\n        src/CKRecordID.m\n        src/CKRecordZone.m\n        src/CKStreamingAsset.m\n        src/CKFetchShareParticipantsOperation.m\n        src/CKFetchShareParticipantsOperationInfo.m\n        src/CKFetchUserQuotaOperation.m\n        src/CKFetchUserQuotaOperationResult.m\n        src/CKFetchWhitelistedBundleIDsOperation.m\n        src/CKFetchWhitelistedBundleIDsOperationResult.m\n        src/CKServerChangeToken.m\n        src/CKEventMetric.m\n        src/CKEventOperationInfo.m\n        src/CKEventOperationGroupInfo.m\n        src/CKEventMetricInfo.m\n        src/CKOperationCallbackManager.m\n        src/CKObject.m\n        src/CKDiscoverUserIdentitiesOperation.m\n        src/CKDiscoverUserIdentitiesOperationInfo.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/APSConnectionDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol APSConnectionDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/C2RequestDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol C2RequestDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAPSMachServiceConnectionDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAPSMachServiceConnectionDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAPSMachServiceConnectionKey.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAPSMachServiceConnectionKey : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAcceptSharesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAcceptSharesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAcceptSharesOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAcceptSharesOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAccountInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAccountInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAccountOverrideInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAccountOverrideInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAggregateExpressionValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAggregateExpressionValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAggregateZonePCSOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAggregateZonePCSOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAggregateZonePCSOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAggregateZonePCSOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAllPredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAllPredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAnyPredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAnyPredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKApplicationPermissionGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKApplicationPermissionGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKArchiveRecordsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKArchiveRecordsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKArchiveRecordsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKArchiveRecordsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKArchivedAnchoredPackage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKArchivedAnchoredPackage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetCopyInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetCopyInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetDownloadPreauthorization.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetDownloadPreauthorization : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetReference.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetReference : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetRepairOperationUtilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetRepairOperationUtilities : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetRepairScheduler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetRepairScheduler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetRepairSchedulerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKAssetRepairSchedulerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetRereferenceInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetRereferenceInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetReuploadExpectedProperties.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetReuploadExpectedProperties : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetTransferOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetTransferOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAssetUploadRequestMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAssetUploadRequestMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKAutoBugCaptureMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKAutoBugCaptureMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKBehaviorOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKBehaviorOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKBlockingAsyncQueue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKBlockingAsyncQueue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKCodeFunctionInvokeOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKCodeFunctionInvokeOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKCodeFunctionInvokeOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKCodeFunctionInvokeOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKComparisonModifierValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKComparisonModifierValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKComparisonOperatorValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKComparisonOperatorValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKComparisonOptionsValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKComparisonOptionsValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKComparisonPredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKComparisonPredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKCompleteParticipantVettingOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKCompleteParticipantVettingOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKCompleteParticipantVettingOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKCompleteParticipantVettingOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKCompoundSubpredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKCompoundSubpredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKCompoundTypePredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKCompoundTypePredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKConstantValueExpressionValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKConstantValueExpressionValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKContactsSupport.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKContactsSupport : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKContainer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKContainer : NSObject\n\n+ (instancetype)containerWithIdentifier: (NSString*)identifier;\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKContainerID.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKContainerID : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKContainerOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKContainerOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKContainerSetupInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKContainerSetupInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKContainerXPCProxy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKContainerXPCProxy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKContainer_Private.h",
    "content": "/*\n * This file is part of Darling.\n *\n * Copyright (C) 2023 Darling Developers\n *\n * Darling is free software: you can redistribute it and/or modify\n * it under the terms of the GNU General Public License as published by\n * the Free Software Foundation, either version 3 of the License, or\n * (at your option) any later version.\n *\n * Darling is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License\n * along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n */\n\n#import <CloudKit/CKContainer.h>\n\ntypedef void (^CKContainerDeviceIDCompletionHandler)(NSString* deviceID, NSError* error);\n\n@interface CKContainer (Private)\n\n- (void)fetchCurrentDeviceIDWithCompletionHandler: (CKContainerDeviceIDCompletionHandler)completionHandler;\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKCustomBlockValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKCustomBlockValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDCancelToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDCancelToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDCancelling.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKDCancelling\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDPDate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDPDate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDPIdentifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDPIdentifier : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDPLocationCoordinate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDPLocationCoordinate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDPRecordFieldValueEncryptedValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDPRecordFieldValueEncryptedValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDPRecordIdentifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDPRecordIdentifier : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDPRecordReference.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDPRecordReference : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDPRecordZoneIdentifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDPRecordZoneIdentifier : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDPStreamingAssetFooter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDPStreamingAssetFooter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDatabase.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDatabase : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDatabaseNotification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDatabaseNotification : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDatabaseOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDatabaseOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDatabaseOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDatabaseOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDatabaseSubscription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDatabaseSubscription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDeclarativePredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDeclarativePredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDeviceToDeviceShareInvitationToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDeviceToDeviceShareInvitationToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDiscoverAllContactsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDiscoverAllContactsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDiscoverAllUserIdentitiesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDiscoverAllUserIdentitiesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDiscoverUserIdentitiesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDiscoverUserIdentitiesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDiscoverUserIdentitiesOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDiscoverUserIdentitiesOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDiscoverUserInfosOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDiscoverUserInfosOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDiscoveredUserInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDiscoveredUserInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKDiscretionaryOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKDiscretionaryOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedData.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedData : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedDate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedDate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedDateArray.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedDateArray : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedDouble.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedDouble : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedDoubleArray.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedDoubleArray : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedEmptyArray.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedEmptyArray : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedLocation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedLocation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedLocationArray.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedLocationArray : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedLongLong.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedLongLong : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedLongLongArray.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedLongLongArray : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedRecordValueStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedRecordValueStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedReference.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedReference : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedString : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEncryptedStringArray.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEncryptedStringArray : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEvaluatedObjectExpressionValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEvaluatedObjectExpressionValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEventMetric.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEventMetric : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEventMetricInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEventMetricInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEventOperationGroupInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEventOperationGroupInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKEventOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKEventOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKException.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKException : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchArchivedRecordsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchArchivedRecordsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchArchivedRecordsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchArchivedRecordsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchArchivedRecordsOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchArchivedRecordsOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchDatabaseChangesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchDatabaseChangesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchDatabaseChangesOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchDatabaseChangesOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchDatabaseChangesOperationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchDatabaseChangesOperationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchNotificationChangesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchNotificationChangesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchNotificationChangesOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchNotificationChangesOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchNotificationChangesOperationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchNotificationChangesOperationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordChangesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordChangesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordChangesOperationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordChangesOperationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordVersionsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordVersionsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordVersionsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordVersionsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordZoneChangesConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordZoneChangesConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordZoneChangesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordZoneChangesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordZoneChangesOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordZoneChangesOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordZoneChangesOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordZoneChangesOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordZonesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordZonesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordZonesOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordZonesOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordsAssetInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordsAssetInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchRecordsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchRecordsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchShareMetadataOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchShareMetadataOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchShareMetadataOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchShareMetadataOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchShareParticipantKeyOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchShareParticipantKeyOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchShareParticipantKeyOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchShareParticipantKeyOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchShareParticipantsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchShareParticipantsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchShareParticipantsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchShareParticipantsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchSubscriptionsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchSubscriptionsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchSubscriptionsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchSubscriptionsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchUserQuotaOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchUserQuotaOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchUserQuotaOperationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchUserQuotaOperationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchWebAuthTokenOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchWebAuthTokenOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchWebAuthTokenOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchWebAuthTokenOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchWebAuthTokenOperationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchWebAuthTokenOperationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchWhitelistedBundleIDsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchWhitelistedBundleIDsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFetchWhitelistedBundleIDsOperationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFetchWhitelistedBundleIDsOperationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFileMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFileMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFileOpenInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFileOpenInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFileOpenResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFileOpenResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFlipFlopPredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFlipFlopPredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFlowControl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFlowControl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKFunctionExpressionValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKFunctionExpressionValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKInitiateParticipantVettingOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKInitiateParticipantVettingOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKInitiateParticipantVettingOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKInitiateParticipantVettingOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKInternalError.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKInternalError : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKKeyPathExpressionValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKKeyPathExpressionValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKKindOfClassValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKKindOfClassValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKKindOfCollectionClassValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKKindOfCollectionClassValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKLegacyPredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKLegacyPredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKLocationSortDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKLocationSortDescriptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKLogFacilityWrapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKLogFacilityWrapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKMarkAssetBrokenOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKMarkAssetBrokenOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKMarkAssetBrokenOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKMarkAssetBrokenOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKMarkNotificationsReadOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKMarkNotificationsReadOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKMarkNotificationsReadOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKMarkNotificationsReadOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKMetric.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKMetric : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyBadgeOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyBadgeOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyBadgeOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyBadgeOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyRecordAccessOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyRecordAccessOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyRecordAccessOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyRecordAccessOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyRecordZonesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyRecordZonesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyRecordZonesOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyRecordZonesOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyRecordsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyRecordsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyRecordsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyRecordsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifySubscriptionsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifySubscriptionsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifySubscriptionsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifySubscriptionsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyWebSharingOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyWebSharingOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKModifyWebSharingOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKModifyWebSharingOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKNilValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKNilValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKNotification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKNotification : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKNotificationID.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKNotificationID : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKNotificationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKNotificationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKNotificationListener.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKNotificationListener : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKObjCClass.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKObjCClass : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKObjCProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKObjCProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKObjCType.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKObjCType : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKObjectValidating.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKObjectValidating\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationCallbackManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationCallbackManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationFlowControlInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationFlowControlInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationFlowControlManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationFlowControlManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationGroupSystemImposedInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationGroupSystemImposedInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationGroupSystemImposedInfoConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationGroupSystemImposedInfoConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationMMCSRequestOptions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationMMCSRequestOptions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationMetrics.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationMetrics : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKOperationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKOperationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPCSDiagnosticInformation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPCSDiagnosticInformation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPackage.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPackage : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPackageDB.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPackageDB : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPackageDBDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPackageDBDelegate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPackageItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPackageItem : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPackageSection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPackageSection : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPackageUploadRequestMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPackageUploadRequestMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPlaceholderOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPlaceholderOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPredicateValidatorInstance.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPredicateValidatorInstance : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPrettyError.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPrettyError : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPropertyCoding.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKPropertyCoding\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPublicKey.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPublicKey : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPublishAssetsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPublishAssetsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKPublishAssetsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKPublishAssetsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKQuery.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKQuery : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKQueryCursor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKQueryCursor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKQueryNotification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKQueryNotification : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKQueryOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKQueryOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKQueryOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKQueryOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKQueryOperationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKQueryOperationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKQuerySubscription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKQuerySubscription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecord.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecord : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordGraph.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecordGraph : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordGraphNode.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecordGraphNode : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordID.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecordID : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordKeyValueSetting.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKRecordKeyValueSetting\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKRecordValue\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordValueStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecordValueStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordZone.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecordZone : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordZoneID.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecordZoneID : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordZoneNotification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecordZoneNotification : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecordZoneSubscription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecordZoneSubscription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRecursivePredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRecursivePredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKReference.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKReference : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRepairAssetsOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRepairAssetsOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRepairAssetsOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRepairAssetsOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRepairZonePCSOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRepairZonePCSOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRepairZonePCSOperationInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRepairZonePCSOperationInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRequestAssetOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRequestAssetOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKRequestInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKRequestInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSQLite.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSQLite : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSQLiteDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKSQLiteDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSQLiteError.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSQLiteError : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSQLiteItem.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKSQLiteItem\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSQLitePool.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSQLitePool : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSQLiteStatement.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSQLiteStatement : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSQLiteStatementEnumerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSQLiteStatementEnumerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKScheduler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKScheduler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSchedulerActivity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSchedulerActivity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKServerChangeToken.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKServerChangeToken : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKShare.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKShare : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKShareMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKShareMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKShareParticipant.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKShareParticipant : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKShortDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKShortDescription\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSignatureGenerator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSignatureGenerator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKStreamingAsset.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKStreamingAsset : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKStreamingAssetAppendContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKStreamingAssetAppendContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKStringValueValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKStringValueValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSubscription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSubscription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSubscriptionInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSubscriptionInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncEngine.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSyncEngine : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncEngineBatch.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSyncEngineBatch : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncEngineDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKSyncEngineDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncEngineDataSourcePrivate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKSyncEngineDataSourcePrivate\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncEngineFetchChangesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSyncEngineFetchChangesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncEngineMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSyncEngineMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncEngineModifyRecordBatchesOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSyncEngineModifyRecordBatchesOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncEngineRecordModification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSyncEngineRecordModification : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncRequestOperation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSyncRequestOperation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKSyncingClientInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKSyncingClientInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKTruePredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKTruePredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKTrueValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKTrueValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUploadRequestConfiguration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUploadRequestConfiguration : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUploadRequestManager.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUploadRequestManager : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUploadRequestManagerInternals.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUploadRequestManagerInternals : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUploadRequestManagerResponseActionThrottler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUploadRequestManagerResponseActionThrottler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUploadRequestManagerResponseActionThrottlerMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUploadRequestManagerResponseActionThrottlerMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUploadRequestManagerStateMachine.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUploadRequestManagerStateMachine : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUploadRequestMetadata.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUploadRequestMetadata : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUploadRequestPersistentStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUploadRequestPersistentStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUserIdentity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUserIdentity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUserIdentityLookupInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUserIdentityLookupInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKUserNotificationUtilities.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKUserNotificationUtilities : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKXPCClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKXPCClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKXPCDaemon.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKXPCDaemon\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKXPCDiscretionaryClient.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKXPCDiscretionaryClient\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKXPCDiscretionaryDaemon.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKXPCDiscretionaryDaemon\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKXPCSuitableString.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CKXPCSuitableString\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CKZonePCSDiagnosticInformation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CKZonePCSDiagnosticInformation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/CloudKit.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _CloudKit_H_\n#define _CloudKit_H_\n\n#import <Foundation/Foundation.h>\n\n#import <CloudKit/APSConnectionDelegate.h>\n#import <CloudKit/C2RequestDelegate.h>\n#import <CloudKit/CKAssetRepairSchedulerDelegate.h>\n#import <CloudKit/CKDCancelling.h>\n#import <CloudKit/CKObjectValidating.h>\n#import <CloudKit/CKPropertyCoding.h>\n#import <CloudKit/CKRecordKeyValueSetting.h>\n#import <CloudKit/CKRecordValue.h>\n#import <CloudKit/CKSQLiteDelegate.h>\n#import <CloudKit/CKSQLiteItem.h>\n#import <CloudKit/CKShortDescription.h>\n#import <CloudKit/CKSyncEngineDataSource.h>\n#import <CloudKit/CKSyncEngineDataSourcePrivate.h>\n#import <CloudKit/CKXPCClient.h>\n#import <CloudKit/CKXPCDaemon.h>\n#import <CloudKit/CKXPCDiscretionaryClient.h>\n#import <CloudKit/CKXPCDiscretionaryDaemon.h>\n#import <CloudKit/CKXPCSuitableString.h>\n#import <CloudKit/PKPushRegistryDelegate.h>\n#import <CloudKit/CKFlowControl.h>\n#import <CloudKit/CKRecordZoneID.h>\n#import <CloudKit/CKRepairAssetsOperation.h>\n#import <CloudKit/CKRepairAssetsOperationInfo.h>\n#import <CloudKit/CKDPRecordFieldValueEncryptedValue.h>\n#import <CloudKit/CKUserNotificationUtilities.h>\n#import <CloudKit/CKUploadRequestPersistentStore.h>\n#import <CloudKit/CKMarkAssetBrokenOperation.h>\n#import <CloudKit/CKMarkAssetBrokenOperationInfo.h>\n#import <CloudKit/CKLogFacilityWrapper.h>\n#import <CloudKit/CKModifyRecordZonesOperation.h>\n#import <CloudKit/CKModifyRecordZonesOperationInfo.h>\n#import <CloudKit/CKDiscoverAllContactsOperation.h>\n#import <CloudKit/CKContainerSetupInfo.h>\n#import <CloudKit/CKContainerOptions.h>\n#import <CloudKit/CKAccountInfo.h>\n#import <CloudKit/CKContainerXPCProxy.h>\n#import <CloudKit/CKContainer.h>\n#import <CloudKit/CKSyncEngineBatch.h>\n#import <CloudKit/CKArchiveRecordsOperation.h>\n#import <CloudKit/CKArchiveRecordsOperationInfo.h>\n#import <CloudKit/CKQuery.h>\n#import <CloudKit/CKNotificationListener.h>\n#import <CloudKit/CKSubscriptionInfo.h>\n#import <CloudKit/CKRepairZonePCSOperationInfo.h>\n#import <CloudKit/CKRepairZonePCSOperation.h>\n#import <CloudKit/CKDPRecordReference.h>\n#import <CloudKit/CKException.h>\n#import <CloudKit/CKSQLitePool.h>\n#import <CloudKit/CKAutoBugCaptureMetadata.h>\n#import <CloudKit/CKDCancelToken.h>\n#import <CloudKit/CKFetchRecordZonesOperation.h>\n#import <CloudKit/CKFetchRecordZonesOperationInfo.h>\n#import <CloudKit/CKScheduler.h>\n#import <CloudKit/CKDiscoverAllUserIdentitiesOperation.h>\n#import <CloudKit/CKZonePCSDiagnosticInformation.h>\n#import <CloudKit/CKPCSDiagnosticInformation.h>\n#import <CloudKit/CKFetchShareMetadataOperation.h>\n#import <CloudKit/CKFetchShareMetadataOperationInfo.h>\n#import <CloudKit/CKSyncingClientInfo.h>\n#import <CloudKit/CKSyncRequestOperation.h>\n#import <CloudKit/CKModifyWebSharingOperation.h>\n#import <CloudKit/CKModifyWebSharingOperationInfo.h>\n#import <CloudKit/CKContainerID.h>\n#import <CloudKit/CKLegacyPredicateValidator.h>\n#import <CloudKit/CKSQLite.h>\n#import <CloudKit/CKSQLiteError.h>\n#import <CloudKit/CKAccountOverrideInfo.h>\n#import <CloudKit/CKUserIdentity.h>\n#import <CloudKit/CKSyncEngine.h>\n#import <CloudKit/CKFetchDatabaseChangesOperation.h>\n#import <CloudKit/CKFetchDatabaseChangesOperationInfo.h>\n#import <CloudKit/CKFetchDatabaseChangesOperationResult.h>\n#import <CloudKit/CKOperationFlowControlInfo.h>\n#import <CloudKit/CKOperationFlowControlManager.h>\n#import <CloudKit/CKPackageDB.h>\n#import <CloudKit/CKPackageSection.h>\n#import <CloudKit/CKDPRecordZoneIdentifier.h>\n#import <CloudKit/CKApplicationPermissionGroup.h>\n#import <CloudKit/CKUploadRequestManager.h>\n#import <CloudKit/CKUploadRequestManagerInternals.h>\n#import <CloudKit/CKUploadRequestManagerResponseActionThrottlerMetadata.h>\n#import <CloudKit/CKUploadRequestManagerResponseActionThrottler.h>\n#import <CloudKit/CKMarkNotificationsReadOperation.h>\n#import <CloudKit/CKMarkNotificationsReadOperationInfo.h>\n#import <CloudKit/CKFetchArchivedRecordsOperation.h>\n#import <CloudKit/CKFetchArchivedRecordsOptions.h>\n#import <CloudKit/CKFetchArchivedRecordsOperationInfo.h>\n#import <CloudKit/CKDPStreamingAssetFooter.h>\n#import <CloudKit/CKRecordValueStore.h>\n#import <CloudKit/CKEncryptedRecordValueStore.h>\n#import <CloudKit/CKRecord.h>\n#import <CloudKit/CKContactsSupport.h>\n#import <CloudKit/CKFileOpenInfo.h>\n#import <CloudKit/CKFileOpenResult.h>\n#import <CloudKit/CKFileMetadata.h>\n#import <CloudKit/CKAssetTransferOptions.h>\n#import <CloudKit/CKAssetReuploadExpectedProperties.h>\n#import <CloudKit/CKAssetCopyInfo.h>\n#import <CloudKit/CKAssetRereferenceInfo.h>\n#import <CloudKit/CKAssetReference.h>\n#import <CloudKit/CKAsset.h>\n#import <CloudKit/CKSchedulerActivity.h>\n#import <CloudKit/CKDiscretionaryOptions.h>\n#import <CloudKit/CKDPRecordIdentifier.h>\n#import <CloudKit/CKUserIdentityLookupInfo.h>\n#import <CloudKit/CKDeviceToDeviceShareInvitationToken.h>\n#import <CloudKit/CKShare.h>\n#import <CloudKit/CKBehaviorOptions.h>\n#import <CloudKit/CKPlaceholderOperation.h>\n#import <CloudKit/CKOperation.h>\n#import <CloudKit/CKOperationConfiguration.h>\n#import <CloudKit/CKOperationInfo.h>\n#import <CloudKit/CKOperationResult.h>\n#import <CloudKit/CKOperationMMCSRequestOptions.h>\n#import <CloudKit/CKDatabaseOperation.h>\n#import <CloudKit/CKDatabaseOperationInfo.h>\n#import <CloudKit/CKObjCClass.h>\n#import <CloudKit/CKAssetRepairScheduler.h>\n#import <CloudKit/CKRequestAssetOperation.h>\n#import <CloudKit/CKQueryOperation.h>\n#import <CloudKit/CKQueryOperationInfo.h>\n#import <CloudKit/CKQueryOperationResult.h>\n#import <CloudKit/CKQueryCursor.h>\n#import <CloudKit/CKUploadRequestManagerStateMachine.h>\n#import <CloudKit/CKShareParticipant.h>\n#import <CloudKit/CKDiscoveredUserInfo.h>\n#import <CloudKit/CKRecordGraphNode.h>\n#import <CloudKit/CKRecordGraph.h>\n#import <CloudKit/CKFetchNotificationChangesOperation.h>\n#import <CloudKit/CKFetchNotificationChangesOperationInfo.h>\n#import <CloudKit/CKFetchNotificationChangesOperationResult.h>\n#import <CloudKit/CKFetchWebAuthTokenOperation.h>\n#import <CloudKit/CKFetchWebAuthTokenOperationResult.h>\n#import <CloudKit/CKFetchWebAuthTokenOperationInfo.h>\n#import <CloudKit/CKFetchRecordVersionsOperation.h>\n#import <CloudKit/CKFetchRecordVersionsOperationInfo.h>\n#import <CloudKit/CKInitiateParticipantVettingOperation.h>\n#import <CloudKit/CKInitiateParticipantVettingOperationInfo.h>\n#import <CloudKit/CKStreamingAssetAppendContext.h>\n#import <CloudKit/CKDPDate.h>\n#import <CloudKit/CKAggregateZonePCSOperation.h>\n#import <CloudKit/CKAggregateZonePCSOperationInfo.h>\n#import <CloudKit/CKMetric.h>\n#import <CloudKit/CKOperationMetrics.h>\n#import <CloudKit/CKPackageItem.h>\n#import <CloudKit/CKFetchRecordChangesOperation.h>\n#import <CloudKit/CKFetchRecordChangesOperationResult.h>\n#import <CloudKit/CKNotificationID.h>\n#import <CloudKit/CKNotification.h>\n#import <CloudKit/CKQueryNotification.h>\n#import <CloudKit/CKRecordZoneNotification.h>\n#import <CloudKit/CKDatabaseNotification.h>\n#import <CloudKit/CKDatabase.h>\n#import <CloudKit/CKAcceptSharesOperation.h>\n#import <CloudKit/CKAcceptSharesOperationInfo.h>\n#import <CloudKit/CKReference.h>\n#import <CloudKit/CKFetchShareParticipantKeyOperation.h>\n#import <CloudKit/CKFetchShareParticipantKeyOperationInfo.h>\n#import <CloudKit/CKAPSMachServiceConnectionKey.h>\n#import <CloudKit/CKAPSMachServiceConnectionDelegate.h>\n#import <CloudKit/CKOperationGroup.h>\n#import <CloudKit/CKOperationGroupSystemImposedInfoConfiguration.h>\n#import <CloudKit/CKOperationGroupSystemImposedInfo.h>\n#import <CloudKit/CKPublicKey.h>\n#import <CloudKit/CKDPLocationCoordinate.h>\n#import <CloudKit/CKDPIdentifier.h>\n#import <CloudKit/CKSyncEngineFetchChangesOperation.h>\n#import <CloudKit/CKEncryptedData.h>\n#import <CloudKit/CKEncryptedString.h>\n#import <CloudKit/CKEncryptedLongLong.h>\n#import <CloudKit/CKEncryptedDouble.h>\n#import <CloudKit/CKEncryptedDate.h>\n#import <CloudKit/CKEncryptedReference.h>\n#import <CloudKit/CKEncryptedLocation.h>\n#import <CloudKit/CKEncryptedStringArray.h>\n#import <CloudKit/CKEncryptedDoubleArray.h>\n#import <CloudKit/CKEncryptedLongLongArray.h>\n#import <CloudKit/CKEncryptedDateArray.h>\n#import <CloudKit/CKEncryptedLocationArray.h>\n#import <CloudKit/CKEncryptedEmptyArray.h>\n#import <CloudKit/CKSQLiteStatementEnumerator.h>\n#import <CloudKit/CKSyncEngineModifyRecordBatchesOperation.h>\n#import <CloudKit/CKObjCProperty.h>\n#import <CloudKit/CKQuerySubscription.h>\n#import <CloudKit/CKRecordZoneSubscription.h>\n#import <CloudKit/CKDatabaseSubscription.h>\n#import <CloudKit/CKSubscription.h>\n#import <CloudKit/CKNotificationInfo.h>\n#import <CloudKit/CKModifySubscriptionsOperation.h>\n#import <CloudKit/CKModifySubscriptionsOperationInfo.h>\n#import <CloudKit/CKFetchRecordZoneChangesOperation.h>\n#import <CloudKit/CKFetchRecordZoneChangesOptions.h>\n#import <CloudKit/CKFetchRecordZoneChangesConfiguration.h>\n#import <CloudKit/CKFetchRecordZoneChangesOperationInfo.h>\n#import <CloudKit/CKModifyRecordsOperation.h>\n#import <CloudKit/CKModifyRecordsOperationInfo.h>\n#import <CloudKit/CKAssetDownloadPreauthorization.h>\n#import <CloudKit/CKSignatureGenerator.h>\n#import <CloudKit/CKSQLiteStatement.h>\n#import <CloudKit/CKAssetRepairOperationUtilities.h>\n#import <CloudKit/CKUploadRequestConfiguration.h>\n#import <CloudKit/CKPublishAssetsOperation.h>\n#import <CloudKit/CKPublishAssetsOperationInfo.h>\n#import <CloudKit/CKCompleteParticipantVettingOperation.h>\n#import <CloudKit/CKCompleteParticipantVettingOperationInfo.h>\n#import <CloudKit/CKFetchSubscriptionsOperation.h>\n#import <CloudKit/CKFetchSubscriptionsOperationInfo.h>\n#import <CloudKit/CKLocationSortDescriptor.h>\n#import <CloudKit/CKFetchRecordsAssetInfo.h>\n#import <CloudKit/CKFetchRecordsOperation.h>\n#import <CloudKit/CKFetchRecordsOperationInfo.h>\n#import <CloudKit/CKPredicateValidatorInstance.h>\n#import <CloudKit/CKRecursivePredicateValidator.h>\n#import <CloudKit/CKAnyPredicateValidator.h>\n#import <CloudKit/CKAllPredicateValidator.h>\n#import <CloudKit/CKCompoundTypePredicateValidator.h>\n#import <CloudKit/CKTruePredicateValidator.h>\n#import <CloudKit/CKCompoundSubpredicateValidator.h>\n#import <CloudKit/CKFlipFlopPredicateValidator.h>\n#import <CloudKit/CKComparisonPredicateValidator.h>\n#import <CloudKit/CKComparisonOperatorValidator.h>\n#import <CloudKit/CKComparisonModifierValidator.h>\n#import <CloudKit/CKComparisonOptionsValidator.h>\n#import <CloudKit/CKConstantValueExpressionValidator.h>\n#import <CloudKit/CKKeyPathExpressionValidator.h>\n#import <CloudKit/CKAggregateExpressionValidator.h>\n#import <CloudKit/CKFunctionExpressionValidator.h>\n#import <CloudKit/CKEvaluatedObjectExpressionValidator.h>\n#import <CloudKit/CKKindOfClassValidator.h>\n#import <CloudKit/CKKindOfCollectionClassValidator.h>\n#import <CloudKit/CKStringValueValidator.h>\n#import <CloudKit/CKCustomBlockValidator.h>\n#import <CloudKit/CKTrueValidator.h>\n#import <CloudKit/CKNilValidator.h>\n#import <CloudKit/CKDeclarativePredicateValidator.h>\n#import <CloudKit/CKRequestInfo.h>\n#import <CloudKit/CKBlockingAsyncQueue.h>\n#import <CloudKit/CKCodeFunctionInvokeOperation.h>\n#import <CloudKit/CKCodeFunctionInvokeOperationInfo.h>\n#import <CloudKit/CKModifyRecordAccessOperation.h>\n#import <CloudKit/CKModifyRecordAccessOperationInfo.h>\n#import <CloudKit/CKShareMetadata.h>\n#import <CloudKit/CKDiscoverUserInfosOperation.h>\n#import <CloudKit/CKPackageDBDelegate.h>\n#import <CloudKit/CKPackage.h>\n#import <CloudKit/CKArchivedAnchoredPackage.h>\n#import <CloudKit/CKObjCType.h>\n#import <CloudKit/CKModifyBadgeOperation.h>\n#import <CloudKit/CKModifyBadgeOperationInfo.h>\n#import <CloudKit/CKUploadRequestMetadata.h>\n#import <CloudKit/CKAssetUploadRequestMetadata.h>\n#import <CloudKit/CKPackageUploadRequestMetadata.h>\n#import <CloudKit/CKPredicateValidator.h>\n#import <CloudKit/CKPrettyError.h>\n#import <CloudKit/CKInternalError.h>\n#import <CloudKit/CKSyncEngineMetadata.h>\n#import <CloudKit/CKSyncEngineRecordModification.h>\n#import <CloudKit/CKRecordID.h>\n#import <CloudKit/CKRecordZone.h>\n#import <CloudKit/CKStreamingAsset.h>\n#import <CloudKit/CKFetchShareParticipantsOperation.h>\n#import <CloudKit/CKFetchShareParticipantsOperationInfo.h>\n#import <CloudKit/CKFetchUserQuotaOperation.h>\n#import <CloudKit/CKFetchUserQuotaOperationResult.h>\n#import <CloudKit/CKFetchWhitelistedBundleIDsOperation.h>\n#import <CloudKit/CKFetchWhitelistedBundleIDsOperationResult.h>\n#import <CloudKit/CKServerChangeToken.h>\n#import <CloudKit/CKEventMetric.h>\n#import <CloudKit/CKEventOperationInfo.h>\n#import <CloudKit/CKEventOperationGroupInfo.h>\n#import <CloudKit/CKEventMetricInfo.h>\n#import <CloudKit/CKOperationCallbackManager.h>\n#import <CloudKit/CKObject.h>\n#import <CloudKit/CKDiscoverUserIdentitiesOperation.h>\n#import <CloudKit/CKDiscoverUserIdentitiesOperationInfo.h>\n\nvoid* CKAbsoluteHostTime(void);\nvoid* CKAcceptablePredicateValueClasses(void);\nvoid* CKAcceptableValueClasses(void);\nvoid* CKAllClientEntitlementKeys(void);\nvoid* CKAppIdentifierFromTeamAppTuple(void);\nvoid* CKAutoBugCaptureReasonToString(void);\nvoid* CKBoolFromCKTernary(void);\nvoid* CKBuildVersion(void);\nvoid* CKCFArrayForEach(void);\nvoid* CKCFDictionaryForEach(void);\nvoid* CKCanRetryForError(void);\nvoid* CKContainerEnvironmentFromString(void);\nvoid* CKContainerEnvironmentString(void);\nvoid* CKContainerIdentifierIsAppleInternal(void);\nvoid* CKCreateDirectoryAtPath(void);\nvoid* CKCreateDirectoryAtPathWithAttributes(void);\nvoid* CKCreateGUID(void);\nvoid* CKCurrentProcessIsDaemon(void);\nvoid* CKCurrentQueueIsMainQueue(void);\nvoid* CKCurrentQueueQualityOfService(void);\nvoid* CKCurrentThreadQualityOfService(void);\nvoid* CKDPDateReadFrom(void);\nvoid* CKDPIdentifierReadFrom(void);\nvoid* CKDPLocationCoordinateReadFrom(void);\nvoid* CKDPRecordFieldValueEncryptedValueReadFrom(void);\nvoid* CKDPRecordIdentifierReadFrom(void);\nvoid* CKDPRecordReferenceReadFrom(void);\nvoid* CKDPRecordZoneIdentifierReadFrom(void);\nvoid* CKDatabaseScopeFromString(void);\nvoid* CKDatabaseScopeString(void);\nvoid* CKDatasAreBothNilOrEqual(void);\nvoid* CKDeviceID(void);\nvoid* CKEarliestStartDateAfterError(void);\nvoid* CKErrorChainFromError(void);\nvoid* CKErrorChainStringFromError(void);\nvoid* CKErrorCodeForInternalErrorCode(void);\nvoid* CKErrorCodeForNSURLErrorCode(void);\nvoid* CKErrorIsCode(void);\nvoid* CKFetchAPSEnvironmentFromServerOrEntitlements(void);\nvoid* CKGetCurrentActivities(void);\nvoid* CKGetGlobalQueue(void);\nvoid* CKGetHomeDir(void);\nvoid* CKGetHomeDirRealPath(void);\nvoid* CKGetRealPath(void);\nvoid* CKHexCharFromBytes(void);\nvoid* CKIndexedArrayKey(void);\nvoid* CKIsPCSError(void);\nvoid* CKIsRunningInCloudD(void);\nvoid* CKIsRunningInTestHost(void);\nvoid* CKIsValidOperationForScope(void);\nvoid* CKLinkCheck0fd6bdf95f2efb6e65813fd4cd0f5d9af656d08a(void);\nvoid* CKLinkCheck5dbf91c3fd1d871f0bcfe60afeb451e3e708d350(void);\nvoid* CKLinkCheck908c3403f5370f9fc0f790c790ce4de0669132c0(void);\nvoid* CKLinkCheck92e3e8f8ec1a906754afb22d87eb36301b4f6760(void);\nvoid* CKMainBundleIsAppleExecutable(void);\nvoid* CKNSIndexSet_enumerateInverseRangesInRange_options_usingBlock(void);\nvoid* CKNSIndexSet_indexSetWithInverseIndexSet(void);\nvoid* CKNSQualityOfServiceFromQoSClass(void);\nvoid* CKOperationGroupTransferSizeForBytes(void);\nvoid* CKOperationLoggableProgressArguments(void);\nvoid* CKOperationProgressCallbackClasses(void);\nvoid* CKPIDIsStillAlive(void);\nvoid* CKProcessIndexedArrayKey(void);\nvoid* CKProductName(void);\nvoid* CKProductType(void);\nvoid* CKProductVersion(void);\nvoid* CKQoSClassFromNSQualityOfService(void);\nvoid* CKQoSIsBackground(void);\nvoid* CKQualityOfServiceOrdering(void);\nvoid* CKRetryAfterSecondsForError(void);\nvoid* CKSDKVersion(void);\nvoid* CKSQLiteJournalSuffixes(void);\nvoid* CKServerEnvironmentFromString(void);\nvoid* CKShareURLSlugForiWorkShareTitle(void);\nvoid* CKSharingContainerSlugForContainerID(void);\nvoid* CKShortRandomID(void);\nvoid* CKShouldUseNewPredicateValidation(void);\nvoid* CKShouldWrapErrorFetchingRecords(void);\nvoid* CKStringForDiscretionaryNetworkBehavior(void);\nvoid* CKStringForNetworkServiceType(void);\nvoid* CKStringForQOS(void);\nvoid* CKStringForTransferSize(void);\nvoid* CKStringForXPCActivityState(void);\nvoid* CKStringFromAccountChangeType(void);\nvoid* CKStringFromAccountStatus(void);\nvoid* CKStringFromApplicationPermissionStatus(void);\nvoid* CKStringFromCKMMCSEncryptionSupport(void);\nvoid* CKStringFromCapabilities(void);\nvoid* CKStringFromDeviceToDeviceEncryptionStatus(void);\nvoid* CKStringFromParticipantAcceptanceStatus(void);\nvoid* CKStringFromParticipantInvitationTokenStatus(void);\nvoid* CKStringFromParticipantPermission(void);\nvoid* CKStringFromParticipantRole(void);\nvoid* CKStringFromPartition(void);\nvoid* CKStringFromServerEnvironment(void);\nvoid* CKStringFromShareParticipantVisibility(void);\nvoid* CKStringWithArray(void);\nvoid* CKStringWithBytes(void);\nvoid* CKStringWithData(void);\nvoid* CKStringWithDate(void);\nvoid* CKStringWithDictionary(void);\nvoid* CKStringWithLimitedArray(void);\nvoid* CKStringWithNibbles(void);\nvoid* CKStringWithObject(void);\nvoid* CKStringWithSet(void);\nvoid* CKStringsAreBothNilOrEqual(void);\nvoid* CKSyncEngineRecordModificationTypeOpposite(void);\nvoid* CKTabIndentAtDepth(void);\nvoid* CKTernaryFromBOOL(void);\nvoid* CKTopLevelUnderlyingErrorCodes(void);\nvoid* CKTriggerAutoBugCaptureWithFormatSignature(void);\nvoid* CKTriggerClientSideAutoBugCaptureWithFormatSignature(void);\nvoid* CKValidSharingURLHostnames(void);\nvoid* CKValidateIndexedArrayKeys(void);\nvoid* CKValidateKeyName(void);\nvoid* CKValidateRecordArrayValue(void);\nvoid* CKValueIsAcceptableClass(void);\nvoid* CKValueIsAcceptablePredicateClass(void);\nvoid* CKWarnForIncorrectServiceIdentity(void);\nvoid* CKWarnForInvalidApplicationIdentifier(void);\nvoid* CKWeakLinkClass(void);\nvoid* CKWeakLinkSymbol(void);\nvoid* CKXPCSuitableError(void);\nvoid* NSTimeIntervalToClosestXPCActivityInterval(void);\nvoid* _CKCheckArgument(void);\nvoid* _CKSimulateCrash(void);\nvoid* ck_call_or_dispatch_async_if_not_key(void);\nvoid* ck_call_or_dispatch_sync_if_not_key(void);\nvoid* ck_log_asl_level_to_type(void);\nvoid* ck_log_facilities_initailize_static(void);\nvoid* ck_log_get_asl_level(void);\nvoid* mmapFileAtPath(void);\nvoid* mmapFileDescriptor(void);\nvoid* setCKIsRunningInCloudD(void);\nvoid* setCKIsRunningInTestHost(void);\nvoid* stringForCKErrorCode(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/CloudKit/include/CloudKit/PKPushRegistryDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol PKPushRegistryDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAPSMachServiceConnectionDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAPSMachServiceConnectionDelegate.h>\n\n@implementation CKAPSMachServiceConnectionDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAPSMachServiceConnectionKey.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAPSMachServiceConnectionKey.h>\n\n@implementation CKAPSMachServiceConnectionKey\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAcceptSharesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAcceptSharesOperation.h>\n\n@implementation CKAcceptSharesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAcceptSharesOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAcceptSharesOperationInfo.h>\n\n@implementation CKAcceptSharesOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAccountInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAccountInfo.h>\n\n@implementation CKAccountInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAccountOverrideInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAccountOverrideInfo.h>\n\n@implementation CKAccountOverrideInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAggregateExpressionValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAggregateExpressionValidator.h>\n\n@implementation CKAggregateExpressionValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAggregateZonePCSOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAggregateZonePCSOperation.h>\n\n@implementation CKAggregateZonePCSOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAggregateZonePCSOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAggregateZonePCSOperationInfo.h>\n\n@implementation CKAggregateZonePCSOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAllPredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAllPredicateValidator.h>\n\n@implementation CKAllPredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAnyPredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAnyPredicateValidator.h>\n\n@implementation CKAnyPredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKApplicationPermissionGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKApplicationPermissionGroup.h>\n\n@implementation CKApplicationPermissionGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKArchiveRecordsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKArchiveRecordsOperation.h>\n\n@implementation CKArchiveRecordsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKArchiveRecordsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKArchiveRecordsOperationInfo.h>\n\n@implementation CKArchiveRecordsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKArchivedAnchoredPackage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKArchivedAnchoredPackage.h>\n\n@implementation CKArchivedAnchoredPackage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAsset.h>\n\n@implementation CKAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetCopyInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetCopyInfo.h>\n\n@implementation CKAssetCopyInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetDownloadPreauthorization.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetDownloadPreauthorization.h>\n\n@implementation CKAssetDownloadPreauthorization\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetReference.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetReference.h>\n\n@implementation CKAssetReference\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetRepairOperationUtilities.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetRepairOperationUtilities.h>\n\n@implementation CKAssetRepairOperationUtilities\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetRepairScheduler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetRepairScheduler.h>\n\n@implementation CKAssetRepairScheduler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetRereferenceInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetRereferenceInfo.h>\n\n@implementation CKAssetRereferenceInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetReuploadExpectedProperties.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetReuploadExpectedProperties.h>\n\n@implementation CKAssetReuploadExpectedProperties\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetTransferOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetTransferOptions.h>\n\n@implementation CKAssetTransferOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAssetUploadRequestMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAssetUploadRequestMetadata.h>\n\n@implementation CKAssetUploadRequestMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKAutoBugCaptureMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKAutoBugCaptureMetadata.h>\n\n@implementation CKAutoBugCaptureMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKBehaviorOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKBehaviorOptions.h>\n\n@implementation CKBehaviorOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKBlockingAsyncQueue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKBlockingAsyncQueue.h>\n\n@implementation CKBlockingAsyncQueue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKCodeFunctionInvokeOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKCodeFunctionInvokeOperation.h>\n\n@implementation CKCodeFunctionInvokeOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKCodeFunctionInvokeOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKCodeFunctionInvokeOperationInfo.h>\n\n@implementation CKCodeFunctionInvokeOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKComparisonModifierValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKComparisonModifierValidator.h>\n\n@implementation CKComparisonModifierValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKComparisonOperatorValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKComparisonOperatorValidator.h>\n\n@implementation CKComparisonOperatorValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKComparisonOptionsValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKComparisonOptionsValidator.h>\n\n@implementation CKComparisonOptionsValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKComparisonPredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKComparisonPredicateValidator.h>\n\n@implementation CKComparisonPredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKCompleteParticipantVettingOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKCompleteParticipantVettingOperation.h>\n\n@implementation CKCompleteParticipantVettingOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKCompleteParticipantVettingOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKCompleteParticipantVettingOperationInfo.h>\n\n@implementation CKCompleteParticipantVettingOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKCompoundSubpredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKCompoundSubpredicateValidator.h>\n\n@implementation CKCompoundSubpredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKCompoundTypePredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKCompoundTypePredicateValidator.h>\n\n@implementation CKCompoundTypePredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKConstantValueExpressionValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKConstantValueExpressionValidator.h>\n\n@implementation CKConstantValueExpressionValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKContactsSupport.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKContactsSupport.h>\n\n@implementation CKContactsSupport\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKContainer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKContainer.h>\n\n@implementation CKContainer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKContainerID.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKContainerID.h>\n\n@implementation CKContainerID\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKContainerOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKContainerOptions.h>\n\n@implementation CKContainerOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKContainerSetupInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKContainerSetupInfo.h>\n\n@implementation CKContainerSetupInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKContainerXPCProxy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKContainerXPCProxy.h>\n\n@implementation CKContainerXPCProxy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKCustomBlockValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKCustomBlockValidator.h>\n\n@implementation CKCustomBlockValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDCancelToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDCancelToken.h>\n\n@implementation CKDCancelToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDPDate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDPDate.h>\n\n@implementation CKDPDate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDPIdentifier.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDPIdentifier.h>\n\n@implementation CKDPIdentifier\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDPLocationCoordinate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDPLocationCoordinate.h>\n\n@implementation CKDPLocationCoordinate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDPRecordFieldValueEncryptedValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDPRecordFieldValueEncryptedValue.h>\n\n@implementation CKDPRecordFieldValueEncryptedValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDPRecordIdentifier.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDPRecordIdentifier.h>\n\n@implementation CKDPRecordIdentifier\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDPRecordReference.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDPRecordReference.h>\n\n@implementation CKDPRecordReference\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDPRecordZoneIdentifier.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDPRecordZoneIdentifier.h>\n\n@implementation CKDPRecordZoneIdentifier\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDPStreamingAssetFooter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDPStreamingAssetFooter.h>\n\n@implementation CKDPStreamingAssetFooter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDatabase.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDatabase.h>\n\n@implementation CKDatabase\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDatabaseNotification.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDatabaseNotification.h>\n\n@implementation CKDatabaseNotification\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDatabaseOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDatabaseOperation.h>\n\n@implementation CKDatabaseOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDatabaseOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDatabaseOperationInfo.h>\n\n@implementation CKDatabaseOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDatabaseSubscription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDatabaseSubscription.h>\n\n@implementation CKDatabaseSubscription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDeclarativePredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDeclarativePredicateValidator.h>\n\n@implementation CKDeclarativePredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDeviceToDeviceShareInvitationToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDeviceToDeviceShareInvitationToken.h>\n\n@implementation CKDeviceToDeviceShareInvitationToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDiscoverAllContactsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDiscoverAllContactsOperation.h>\n\n@implementation CKDiscoverAllContactsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDiscoverAllUserIdentitiesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDiscoverAllUserIdentitiesOperation.h>\n\n@implementation CKDiscoverAllUserIdentitiesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDiscoverUserIdentitiesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDiscoverUserIdentitiesOperation.h>\n\n@implementation CKDiscoverUserIdentitiesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDiscoverUserIdentitiesOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDiscoverUserIdentitiesOperationInfo.h>\n\n@implementation CKDiscoverUserIdentitiesOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDiscoverUserInfosOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDiscoverUserInfosOperation.h>\n\n@implementation CKDiscoverUserInfosOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDiscoveredUserInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDiscoveredUserInfo.h>\n\n@implementation CKDiscoveredUserInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKDiscretionaryOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKDiscretionaryOptions.h>\n\n@implementation CKDiscretionaryOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedData.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedData.h>\n\n@implementation CKEncryptedData\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedDate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedDate.h>\n\n@implementation CKEncryptedDate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedDateArray.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedDateArray.h>\n\n@implementation CKEncryptedDateArray\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedDouble.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedDouble.h>\n\n@implementation CKEncryptedDouble\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedDoubleArray.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedDoubleArray.h>\n\n@implementation CKEncryptedDoubleArray\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedEmptyArray.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedEmptyArray.h>\n\n@implementation CKEncryptedEmptyArray\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedLocation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedLocation.h>\n\n@implementation CKEncryptedLocation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedLocationArray.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedLocationArray.h>\n\n@implementation CKEncryptedLocationArray\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedLongLong.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedLongLong.h>\n\n@implementation CKEncryptedLongLong\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedLongLongArray.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedLongLongArray.h>\n\n@implementation CKEncryptedLongLongArray\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedRecordValueStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedRecordValueStore.h>\n\n@implementation CKEncryptedRecordValueStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedReference.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedReference.h>\n\n@implementation CKEncryptedReference\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedString.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedString.h>\n\n@implementation CKEncryptedString\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEncryptedStringArray.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEncryptedStringArray.h>\n\n@implementation CKEncryptedStringArray\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEvaluatedObjectExpressionValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEvaluatedObjectExpressionValidator.h>\n\n@implementation CKEvaluatedObjectExpressionValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEventMetric.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEventMetric.h>\n\n@implementation CKEventMetric\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEventMetricInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEventMetricInfo.h>\n\n@implementation CKEventMetricInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEventOperationGroupInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEventOperationGroupInfo.h>\n\n@implementation CKEventOperationGroupInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKEventOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKEventOperationInfo.h>\n\n@implementation CKEventOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKException.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKException.h>\n\n@implementation CKException\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchArchivedRecordsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchArchivedRecordsOperation.h>\n\n@implementation CKFetchArchivedRecordsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchArchivedRecordsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchArchivedRecordsOperationInfo.h>\n\n@implementation CKFetchArchivedRecordsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchArchivedRecordsOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchArchivedRecordsOptions.h>\n\n@implementation CKFetchArchivedRecordsOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchDatabaseChangesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchDatabaseChangesOperation.h>\n\n@implementation CKFetchDatabaseChangesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchDatabaseChangesOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchDatabaseChangesOperationInfo.h>\n\n@implementation CKFetchDatabaseChangesOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchDatabaseChangesOperationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchDatabaseChangesOperationResult.h>\n\n@implementation CKFetchDatabaseChangesOperationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchNotificationChangesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchNotificationChangesOperation.h>\n\n@implementation CKFetchNotificationChangesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchNotificationChangesOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchNotificationChangesOperationInfo.h>\n\n@implementation CKFetchNotificationChangesOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchNotificationChangesOperationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchNotificationChangesOperationResult.h>\n\n@implementation CKFetchNotificationChangesOperationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordChangesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordChangesOperation.h>\n\n@implementation CKFetchRecordChangesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordChangesOperationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordChangesOperationResult.h>\n\n@implementation CKFetchRecordChangesOperationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordVersionsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordVersionsOperation.h>\n\n@implementation CKFetchRecordVersionsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordVersionsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordVersionsOperationInfo.h>\n\n@implementation CKFetchRecordVersionsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordZoneChangesConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordZoneChangesConfiguration.h>\n\n@implementation CKFetchRecordZoneChangesConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordZoneChangesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordZoneChangesOperation.h>\n\n@implementation CKFetchRecordZoneChangesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordZoneChangesOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordZoneChangesOperationInfo.h>\n\n@implementation CKFetchRecordZoneChangesOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordZoneChangesOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordZoneChangesOptions.h>\n\n@implementation CKFetchRecordZoneChangesOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordZonesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordZonesOperation.h>\n\n@implementation CKFetchRecordZonesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordZonesOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordZonesOperationInfo.h>\n\n@implementation CKFetchRecordZonesOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordsAssetInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordsAssetInfo.h>\n\n@implementation CKFetchRecordsAssetInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordsOperation.h>\n\n@implementation CKFetchRecordsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchRecordsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchRecordsOperationInfo.h>\n\n@implementation CKFetchRecordsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchShareMetadataOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchShareMetadataOperation.h>\n\n@implementation CKFetchShareMetadataOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchShareMetadataOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchShareMetadataOperationInfo.h>\n\n@implementation CKFetchShareMetadataOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchShareParticipantKeyOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchShareParticipantKeyOperation.h>\n\n@implementation CKFetchShareParticipantKeyOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchShareParticipantKeyOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchShareParticipantKeyOperationInfo.h>\n\n@implementation CKFetchShareParticipantKeyOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchShareParticipantsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchShareParticipantsOperation.h>\n\n@implementation CKFetchShareParticipantsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchShareParticipantsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchShareParticipantsOperationInfo.h>\n\n@implementation CKFetchShareParticipantsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchSubscriptionsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchSubscriptionsOperation.h>\n\n@implementation CKFetchSubscriptionsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchSubscriptionsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchSubscriptionsOperationInfo.h>\n\n@implementation CKFetchSubscriptionsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchUserQuotaOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchUserQuotaOperation.h>\n\n@implementation CKFetchUserQuotaOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchUserQuotaOperationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchUserQuotaOperationResult.h>\n\n@implementation CKFetchUserQuotaOperationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchWebAuthTokenOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchWebAuthTokenOperation.h>\n\n@implementation CKFetchWebAuthTokenOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchWebAuthTokenOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchWebAuthTokenOperationInfo.h>\n\n@implementation CKFetchWebAuthTokenOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchWebAuthTokenOperationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchWebAuthTokenOperationResult.h>\n\n@implementation CKFetchWebAuthTokenOperationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchWhitelistedBundleIDsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchWhitelistedBundleIDsOperation.h>\n\n@implementation CKFetchWhitelistedBundleIDsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFetchWhitelistedBundleIDsOperationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFetchWhitelistedBundleIDsOperationResult.h>\n\n@implementation CKFetchWhitelistedBundleIDsOperationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFileMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFileMetadata.h>\n\n@implementation CKFileMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFileOpenInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFileOpenInfo.h>\n\n@implementation CKFileOpenInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFileOpenResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFileOpenResult.h>\n\n@implementation CKFileOpenResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFlipFlopPredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFlipFlopPredicateValidator.h>\n\n@implementation CKFlipFlopPredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFlowControl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFlowControl.h>\n\n@implementation CKFlowControl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKFunctionExpressionValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKFunctionExpressionValidator.h>\n\n@implementation CKFunctionExpressionValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKInitiateParticipantVettingOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKInitiateParticipantVettingOperation.h>\n\n@implementation CKInitiateParticipantVettingOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKInitiateParticipantVettingOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKInitiateParticipantVettingOperationInfo.h>\n\n@implementation CKInitiateParticipantVettingOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKInternalError.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKInternalError.h>\n\n@implementation CKInternalError\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKKeyPathExpressionValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKKeyPathExpressionValidator.h>\n\n@implementation CKKeyPathExpressionValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKKindOfClassValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKKindOfClassValidator.h>\n\n@implementation CKKindOfClassValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKKindOfCollectionClassValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKKindOfCollectionClassValidator.h>\n\n@implementation CKKindOfCollectionClassValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKLegacyPredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKLegacyPredicateValidator.h>\n\n@implementation CKLegacyPredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKLocationSortDescriptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKLocationSortDescriptor.h>\n\n@implementation CKLocationSortDescriptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKLogFacilityWrapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKLogFacilityWrapper.h>\n\n@implementation CKLogFacilityWrapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKMarkAssetBrokenOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKMarkAssetBrokenOperation.h>\n\n@implementation CKMarkAssetBrokenOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKMarkAssetBrokenOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKMarkAssetBrokenOperationInfo.h>\n\n@implementation CKMarkAssetBrokenOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKMarkNotificationsReadOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKMarkNotificationsReadOperation.h>\n\n@implementation CKMarkNotificationsReadOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKMarkNotificationsReadOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKMarkNotificationsReadOperationInfo.h>\n\n@implementation CKMarkNotificationsReadOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKMetric.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKMetric.h>\n\n@implementation CKMetric\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyBadgeOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyBadgeOperation.h>\n\n@implementation CKModifyBadgeOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyBadgeOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyBadgeOperationInfo.h>\n\n@implementation CKModifyBadgeOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyRecordAccessOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyRecordAccessOperation.h>\n\n@implementation CKModifyRecordAccessOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyRecordAccessOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyRecordAccessOperationInfo.h>\n\n@implementation CKModifyRecordAccessOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyRecordZonesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyRecordZonesOperation.h>\n\n@implementation CKModifyRecordZonesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyRecordZonesOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyRecordZonesOperationInfo.h>\n\n@implementation CKModifyRecordZonesOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyRecordsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyRecordsOperation.h>\n\n@implementation CKModifyRecordsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyRecordsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyRecordsOperationInfo.h>\n\n@implementation CKModifyRecordsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifySubscriptionsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifySubscriptionsOperation.h>\n\n@implementation CKModifySubscriptionsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifySubscriptionsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifySubscriptionsOperationInfo.h>\n\n@implementation CKModifySubscriptionsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyWebSharingOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyWebSharingOperation.h>\n\n@implementation CKModifyWebSharingOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKModifyWebSharingOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKModifyWebSharingOperationInfo.h>\n\n@implementation CKModifyWebSharingOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKNilValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKNilValidator.h>\n\n@implementation CKNilValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKNotification.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKNotification.h>\n\n@implementation CKNotification\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKNotificationID.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKNotificationID.h>\n\n@implementation CKNotificationID\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKNotificationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKNotificationInfo.h>\n\n@implementation CKNotificationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKNotificationListener.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKNotificationListener.h>\n\n@implementation CKNotificationListener\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKObjCClass.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKObjCClass.h>\n\n@implementation CKObjCClass\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKObjCProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKObjCProperty.h>\n\n@implementation CKObjCProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKObjCType.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKObjCType.h>\n\n@implementation CKObjCType\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKObject.h>\n\n@implementation CKObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperation.h>\n\n@implementation CKOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationCallbackManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationCallbackManager.h>\n\n@implementation CKOperationCallbackManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationConfiguration.h>\n\n@implementation CKOperationConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationFlowControlInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationFlowControlInfo.h>\n\n@implementation CKOperationFlowControlInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationFlowControlManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationFlowControlManager.h>\n\n@implementation CKOperationFlowControlManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationGroup.h>\n\n@implementation CKOperationGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationGroupSystemImposedInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationGroupSystemImposedInfo.h>\n\n@implementation CKOperationGroupSystemImposedInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationGroupSystemImposedInfoConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationGroupSystemImposedInfoConfiguration.h>\n\n@implementation CKOperationGroupSystemImposedInfoConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationInfo.h>\n\n@implementation CKOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationMMCSRequestOptions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationMMCSRequestOptions.h>\n\n@implementation CKOperationMMCSRequestOptions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationMetrics.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationMetrics.h>\n\n@implementation CKOperationMetrics\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKOperationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKOperationResult.h>\n\n@implementation CKOperationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPCSDiagnosticInformation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPCSDiagnosticInformation.h>\n\n@implementation CKPCSDiagnosticInformation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPackage.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPackage.h>\n\n@implementation CKPackage\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPackageDB.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPackageDB.h>\n\n@implementation CKPackageDB\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPackageDBDelegate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPackageDBDelegate.h>\n\n@implementation CKPackageDBDelegate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPackageItem.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPackageItem.h>\n\n@implementation CKPackageItem\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPackageSection.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPackageSection.h>\n\n@implementation CKPackageSection\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPackageUploadRequestMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPackageUploadRequestMetadata.h>\n\n@implementation CKPackageUploadRequestMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPlaceholderOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPlaceholderOperation.h>\n\n@implementation CKPlaceholderOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPredicateValidator.h>\n\n@implementation CKPredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPredicateValidatorInstance.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPredicateValidatorInstance.h>\n\n@implementation CKPredicateValidatorInstance\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPrettyError.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPrettyError.h>\n\n@implementation CKPrettyError\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPublicKey.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPublicKey.h>\n\n@implementation CKPublicKey\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPublishAssetsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPublishAssetsOperation.h>\n\n@implementation CKPublishAssetsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKPublishAssetsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKPublishAssetsOperationInfo.h>\n\n@implementation CKPublishAssetsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKQuery.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKQuery.h>\n\n@implementation CKQuery\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKQueryCursor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKQueryCursor.h>\n\n@implementation CKQueryCursor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKQueryNotification.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKQueryNotification.h>\n\n@implementation CKQueryNotification\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKQueryOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKQueryOperation.h>\n\n@implementation CKQueryOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKQueryOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKQueryOperationInfo.h>\n\n@implementation CKQueryOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKQueryOperationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKQueryOperationResult.h>\n\n@implementation CKQueryOperationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKQuerySubscription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKQuerySubscription.h>\n\n@implementation CKQuerySubscription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecord.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecord.h>\n\n@implementation CKRecord\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecordGraph.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecordGraph.h>\n\n@implementation CKRecordGraph\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecordGraphNode.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecordGraphNode.h>\n\n@implementation CKRecordGraphNode\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecordID.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecordID.h>\n\n@implementation CKRecordID\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecordValueStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecordValueStore.h>\n\n@implementation CKRecordValueStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecordZone.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecordZone.h>\n\n@implementation CKRecordZone\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecordZoneID.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecordZoneID.h>\n\n@implementation CKRecordZoneID\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecordZoneNotification.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecordZoneNotification.h>\n\n@implementation CKRecordZoneNotification\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecordZoneSubscription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecordZoneSubscription.h>\n\n@implementation CKRecordZoneSubscription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRecursivePredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRecursivePredicateValidator.h>\n\n@implementation CKRecursivePredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKReference.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKReference.h>\n\n@implementation CKReference\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRepairAssetsOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRepairAssetsOperation.h>\n\n@implementation CKRepairAssetsOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRepairAssetsOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRepairAssetsOperationInfo.h>\n\n@implementation CKRepairAssetsOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRepairZonePCSOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRepairZonePCSOperation.h>\n\n@implementation CKRepairZonePCSOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRepairZonePCSOperationInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRepairZonePCSOperationInfo.h>\n\n@implementation CKRepairZonePCSOperationInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRequestAssetOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRequestAssetOperation.h>\n\n@implementation CKRequestAssetOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKRequestInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKRequestInfo.h>\n\n@implementation CKRequestInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSQLite.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSQLite.h>\n\n@implementation CKSQLite\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSQLiteError.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSQLiteError.h>\n\n@implementation CKSQLiteError\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSQLitePool.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSQLitePool.h>\n\n@implementation CKSQLitePool\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSQLiteStatement.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSQLiteStatement.h>\n\n@implementation CKSQLiteStatement\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSQLiteStatementEnumerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSQLiteStatementEnumerator.h>\n\n@implementation CKSQLiteStatementEnumerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKScheduler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKScheduler.h>\n\n@implementation CKScheduler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSchedulerActivity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSchedulerActivity.h>\n\n@implementation CKSchedulerActivity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKServerChangeToken.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKServerChangeToken.h>\n\n@implementation CKServerChangeToken\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKShare.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKShare.h>\n\n@implementation CKShare\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKShareMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKShareMetadata.h>\n\n@implementation CKShareMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKShareParticipant.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKShareParticipant.h>\n\n@implementation CKShareParticipant\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSignatureGenerator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSignatureGenerator.h>\n\n@implementation CKSignatureGenerator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKStreamingAsset.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKStreamingAsset.h>\n\n@implementation CKStreamingAsset\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKStreamingAssetAppendContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKStreamingAssetAppendContext.h>\n\n@implementation CKStreamingAssetAppendContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKStringValueValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKStringValueValidator.h>\n\n@implementation CKStringValueValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSubscription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSubscription.h>\n\n@implementation CKSubscription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSubscriptionInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSubscriptionInfo.h>\n\n@implementation CKSubscriptionInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSyncEngine.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSyncEngine.h>\n\n@implementation CKSyncEngine\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSyncEngineBatch.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSyncEngineBatch.h>\n\n@implementation CKSyncEngineBatch\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSyncEngineFetchChangesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSyncEngineFetchChangesOperation.h>\n\n@implementation CKSyncEngineFetchChangesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSyncEngineMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSyncEngineMetadata.h>\n\n@implementation CKSyncEngineMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSyncEngineModifyRecordBatchesOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSyncEngineModifyRecordBatchesOperation.h>\n\n@implementation CKSyncEngineModifyRecordBatchesOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSyncEngineRecordModification.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSyncEngineRecordModification.h>\n\n@implementation CKSyncEngineRecordModification\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSyncRequestOperation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSyncRequestOperation.h>\n\n@implementation CKSyncRequestOperation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKSyncingClientInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKSyncingClientInfo.h>\n\n@implementation CKSyncingClientInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKTruePredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKTruePredicateValidator.h>\n\n@implementation CKTruePredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKTrueValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKTrueValidator.h>\n\n@implementation CKTrueValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUploadRequestConfiguration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUploadRequestConfiguration.h>\n\n@implementation CKUploadRequestConfiguration\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUploadRequestManager.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUploadRequestManager.h>\n\n@implementation CKUploadRequestManager\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUploadRequestManagerInternals.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUploadRequestManagerInternals.h>\n\n@implementation CKUploadRequestManagerInternals\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUploadRequestManagerResponseActionThrottler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUploadRequestManagerResponseActionThrottler.h>\n\n@implementation CKUploadRequestManagerResponseActionThrottler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUploadRequestManagerResponseActionThrottlerMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUploadRequestManagerResponseActionThrottlerMetadata.h>\n\n@implementation CKUploadRequestManagerResponseActionThrottlerMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUploadRequestManagerStateMachine.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUploadRequestManagerStateMachine.h>\n\n@implementation CKUploadRequestManagerStateMachine\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUploadRequestMetadata.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUploadRequestMetadata.h>\n\n@implementation CKUploadRequestMetadata\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUploadRequestPersistentStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUploadRequestPersistentStore.h>\n\n@implementation CKUploadRequestPersistentStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUserIdentity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUserIdentity.h>\n\n@implementation CKUserIdentity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUserIdentityLookupInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUserIdentityLookupInfo.h>\n\n@implementation CKUserIdentityLookupInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKUserNotificationUtilities.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKUserNotificationUtilities.h>\n\n@implementation CKUserNotificationUtilities\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CKZonePCSDiagnosticInformation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <CloudKit/CKZonePCSDiagnosticInformation.h>\n\n@implementation CKZonePCSDiagnosticInformation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/CloudKit/src/CloudKit.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <CloudKit/CloudKit.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* CKAbsoluteHostTime(void)\n{\n    if (verbose) puts(\"STUB: CKAbsoluteHostTime called\");\n    return NULL;\n}\n\nvoid* CKAcceptablePredicateValueClasses(void)\n{\n    if (verbose) puts(\"STUB: CKAcceptablePredicateValueClasses called\");\n    return NULL;\n}\n\nvoid* CKAcceptableValueClasses(void)\n{\n    if (verbose) puts(\"STUB: CKAcceptableValueClasses called\");\n    return NULL;\n}\n\nvoid* CKAllClientEntitlementKeys(void)\n{\n    if (verbose) puts(\"STUB: CKAllClientEntitlementKeys called\");\n    return NULL;\n}\n\nvoid* CKAppIdentifierFromTeamAppTuple(void)\n{\n    if (verbose) puts(\"STUB: CKAppIdentifierFromTeamAppTuple called\");\n    return NULL;\n}\n\nvoid* CKAutoBugCaptureReasonToString(void)\n{\n    if (verbose) puts(\"STUB: CKAutoBugCaptureReasonToString called\");\n    return NULL;\n}\n\nvoid* CKBoolFromCKTernary(void)\n{\n    if (verbose) puts(\"STUB: CKBoolFromCKTernary called\");\n    return NULL;\n}\n\nvoid* CKBuildVersion(void)\n{\n    if (verbose) puts(\"STUB: CKBuildVersion called\");\n    return NULL;\n}\n\nvoid* CKCFArrayForEach(void)\n{\n    if (verbose) puts(\"STUB: CKCFArrayForEach called\");\n    return NULL;\n}\n\nvoid* CKCFDictionaryForEach(void)\n{\n    if (verbose) puts(\"STUB: CKCFDictionaryForEach called\");\n    return NULL;\n}\n\nvoid* CKCanRetryForError(void)\n{\n    if (verbose) puts(\"STUB: CKCanRetryForError called\");\n    return NULL;\n}\n\nvoid* CKContainerEnvironmentFromString(void)\n{\n    if (verbose) puts(\"STUB: CKContainerEnvironmentFromString called\");\n    return NULL;\n}\n\nvoid* CKContainerEnvironmentString(void)\n{\n    if (verbose) puts(\"STUB: CKContainerEnvironmentString called\");\n    return NULL;\n}\n\nvoid* CKContainerIdentifierIsAppleInternal(void)\n{\n    if (verbose) puts(\"STUB: CKContainerIdentifierIsAppleInternal called\");\n    return NULL;\n}\n\nvoid* CKCreateDirectoryAtPath(void)\n{\n    if (verbose) puts(\"STUB: CKCreateDirectoryAtPath called\");\n    return NULL;\n}\n\nvoid* CKCreateDirectoryAtPathWithAttributes(void)\n{\n    if (verbose) puts(\"STUB: CKCreateDirectoryAtPathWithAttributes called\");\n    return NULL;\n}\n\nvoid* CKCreateGUID(void)\n{\n    if (verbose) puts(\"STUB: CKCreateGUID called\");\n    return NULL;\n}\n\nvoid* CKCurrentProcessIsDaemon(void)\n{\n    if (verbose) puts(\"STUB: CKCurrentProcessIsDaemon called\");\n    return NULL;\n}\n\nvoid* CKCurrentQueueIsMainQueue(void)\n{\n    if (verbose) puts(\"STUB: CKCurrentQueueIsMainQueue called\");\n    return NULL;\n}\n\nvoid* CKCurrentQueueQualityOfService(void)\n{\n    if (verbose) puts(\"STUB: CKCurrentQueueQualityOfService called\");\n    return NULL;\n}\n\nvoid* CKCurrentThreadQualityOfService(void)\n{\n    if (verbose) puts(\"STUB: CKCurrentThreadQualityOfService called\");\n    return NULL;\n}\n\nvoid* CKDPDateReadFrom(void)\n{\n    if (verbose) puts(\"STUB: CKDPDateReadFrom called\");\n    return NULL;\n}\n\nvoid* CKDPIdentifierReadFrom(void)\n{\n    if (verbose) puts(\"STUB: CKDPIdentifierReadFrom called\");\n    return NULL;\n}\n\nvoid* CKDPLocationCoordinateReadFrom(void)\n{\n    if (verbose) puts(\"STUB: CKDPLocationCoordinateReadFrom called\");\n    return NULL;\n}\n\nvoid* CKDPRecordFieldValueEncryptedValueReadFrom(void)\n{\n    if (verbose) puts(\"STUB: CKDPRecordFieldValueEncryptedValueReadFrom called\");\n    return NULL;\n}\n\nvoid* CKDPRecordIdentifierReadFrom(void)\n{\n    if (verbose) puts(\"STUB: CKDPRecordIdentifierReadFrom called\");\n    return NULL;\n}\n\nvoid* CKDPRecordReferenceReadFrom(void)\n{\n    if (verbose) puts(\"STUB: CKDPRecordReferenceReadFrom called\");\n    return NULL;\n}\n\nvoid* CKDPRecordZoneIdentifierReadFrom(void)\n{\n    if (verbose) puts(\"STUB: CKDPRecordZoneIdentifierReadFrom called\");\n    return NULL;\n}\n\nvoid* CKDatabaseScopeFromString(void)\n{\n    if (verbose) puts(\"STUB: CKDatabaseScopeFromString called\");\n    return NULL;\n}\n\nvoid* CKDatabaseScopeString(void)\n{\n    if (verbose) puts(\"STUB: CKDatabaseScopeString called\");\n    return NULL;\n}\n\nvoid* CKDatasAreBothNilOrEqual(void)\n{\n    if (verbose) puts(\"STUB: CKDatasAreBothNilOrEqual called\");\n    return NULL;\n}\n\nvoid* CKDeviceID(void)\n{\n    if (verbose) puts(\"STUB: CKDeviceID called\");\n    return NULL;\n}\n\nvoid* CKEarliestStartDateAfterError(void)\n{\n    if (verbose) puts(\"STUB: CKEarliestStartDateAfterError called\");\n    return NULL;\n}\n\nvoid* CKErrorChainFromError(void)\n{\n    if (verbose) puts(\"STUB: CKErrorChainFromError called\");\n    return NULL;\n}\n\nvoid* CKErrorChainStringFromError(void)\n{\n    if (verbose) puts(\"STUB: CKErrorChainStringFromError called\");\n    return NULL;\n}\n\nvoid* CKErrorCodeForInternalErrorCode(void)\n{\n    if (verbose) puts(\"STUB: CKErrorCodeForInternalErrorCode called\");\n    return NULL;\n}\n\nvoid* CKErrorCodeForNSURLErrorCode(void)\n{\n    if (verbose) puts(\"STUB: CKErrorCodeForNSURLErrorCode called\");\n    return NULL;\n}\n\nvoid* CKErrorIsCode(void)\n{\n    if (verbose) puts(\"STUB: CKErrorIsCode called\");\n    return NULL;\n}\n\nvoid* CKFetchAPSEnvironmentFromServerOrEntitlements(void)\n{\n    if (verbose) puts(\"STUB: CKFetchAPSEnvironmentFromServerOrEntitlements called\");\n    return NULL;\n}\n\nvoid* CKGetCurrentActivities(void)\n{\n    if (verbose) puts(\"STUB: CKGetCurrentActivities called\");\n    return NULL;\n}\n\nvoid* CKGetGlobalQueue(void)\n{\n    if (verbose) puts(\"STUB: CKGetGlobalQueue called\");\n    return NULL;\n}\n\nvoid* CKGetHomeDir(void)\n{\n    if (verbose) puts(\"STUB: CKGetHomeDir called\");\n    return NULL;\n}\n\nvoid* CKGetHomeDirRealPath(void)\n{\n    if (verbose) puts(\"STUB: CKGetHomeDirRealPath called\");\n    return NULL;\n}\n\nvoid* CKGetRealPath(void)\n{\n    if (verbose) puts(\"STUB: CKGetRealPath called\");\n    return NULL;\n}\n\nvoid* CKHexCharFromBytes(void)\n{\n    if (verbose) puts(\"STUB: CKHexCharFromBytes called\");\n    return NULL;\n}\n\nvoid* CKIndexedArrayKey(void)\n{\n    if (verbose) puts(\"STUB: CKIndexedArrayKey called\");\n    return NULL;\n}\n\nvoid* CKIsPCSError(void)\n{\n    if (verbose) puts(\"STUB: CKIsPCSError called\");\n    return NULL;\n}\n\nvoid* CKIsRunningInCloudD(void)\n{\n    if (verbose) puts(\"STUB: CKIsRunningInCloudD called\");\n    return NULL;\n}\n\nvoid* CKIsRunningInTestHost(void)\n{\n    if (verbose) puts(\"STUB: CKIsRunningInTestHost called\");\n    return NULL;\n}\n\nvoid* CKIsValidOperationForScope(void)\n{\n    if (verbose) puts(\"STUB: CKIsValidOperationForScope called\");\n    return NULL;\n}\n\nvoid* CKLinkCheck0fd6bdf95f2efb6e65813fd4cd0f5d9af656d08a(void)\n{\n    if (verbose) puts(\"STUB: CKLinkCheck0fd6bdf95f2efb6e65813fd4cd0f5d9af656d08a called\");\n    return NULL;\n}\n\nvoid* CKLinkCheck5dbf91c3fd1d871f0bcfe60afeb451e3e708d350(void)\n{\n    if (verbose) puts(\"STUB: CKLinkCheck5dbf91c3fd1d871f0bcfe60afeb451e3e708d350 called\");\n    return NULL;\n}\n\nvoid* CKLinkCheck908c3403f5370f9fc0f790c790ce4de0669132c0(void)\n{\n    if (verbose) puts(\"STUB: CKLinkCheck908c3403f5370f9fc0f790c790ce4de0669132c0 called\");\n    return NULL;\n}\n\nvoid* CKLinkCheck92e3e8f8ec1a906754afb22d87eb36301b4f6760(void)\n{\n    if (verbose) puts(\"STUB: CKLinkCheck92e3e8f8ec1a906754afb22d87eb36301b4f6760 called\");\n    return NULL;\n}\n\nvoid* CKMainBundleIsAppleExecutable(void)\n{\n    if (verbose) puts(\"STUB: CKMainBundleIsAppleExecutable called\");\n    return NULL;\n}\n\nvoid* CKNSIndexSet_enumerateInverseRangesInRange_options_usingBlock(void)\n{\n    if (verbose) puts(\"STUB: CKNSIndexSet_enumerateInverseRangesInRange_options_usingBlock called\");\n    return NULL;\n}\n\nvoid* CKNSIndexSet_indexSetWithInverseIndexSet(void)\n{\n    if (verbose) puts(\"STUB: CKNSIndexSet_indexSetWithInverseIndexSet called\");\n    return NULL;\n}\n\nvoid* CKNSQualityOfServiceFromQoSClass(void)\n{\n    if (verbose) puts(\"STUB: CKNSQualityOfServiceFromQoSClass called\");\n    return NULL;\n}\n\nvoid* CKOperationGroupTransferSizeForBytes(void)\n{\n    if (verbose) puts(\"STUB: CKOperationGroupTransferSizeForBytes called\");\n    return NULL;\n}\n\nvoid* CKOperationLoggableProgressArguments(void)\n{\n    if (verbose) puts(\"STUB: CKOperationLoggableProgressArguments called\");\n    return NULL;\n}\n\nvoid* CKOperationProgressCallbackClasses(void)\n{\n    if (verbose) puts(\"STUB: CKOperationProgressCallbackClasses called\");\n    return NULL;\n}\n\nvoid* CKPIDIsStillAlive(void)\n{\n    if (verbose) puts(\"STUB: CKPIDIsStillAlive called\");\n    return NULL;\n}\n\nvoid* CKProcessIndexedArrayKey(void)\n{\n    if (verbose) puts(\"STUB: CKProcessIndexedArrayKey called\");\n    return NULL;\n}\n\nvoid* CKProductName(void)\n{\n    if (verbose) puts(\"STUB: CKProductName called\");\n    return NULL;\n}\n\nvoid* CKProductType(void)\n{\n    if (verbose) puts(\"STUB: CKProductType called\");\n    return NULL;\n}\n\nvoid* CKProductVersion(void)\n{\n    if (verbose) puts(\"STUB: CKProductVersion called\");\n    return NULL;\n}\n\nvoid* CKQoSClassFromNSQualityOfService(void)\n{\n    if (verbose) puts(\"STUB: CKQoSClassFromNSQualityOfService called\");\n    return NULL;\n}\n\nvoid* CKQoSIsBackground(void)\n{\n    if (verbose) puts(\"STUB: CKQoSIsBackground called\");\n    return NULL;\n}\n\nvoid* CKQualityOfServiceOrdering(void)\n{\n    if (verbose) puts(\"STUB: CKQualityOfServiceOrdering called\");\n    return NULL;\n}\n\nvoid* CKRetryAfterSecondsForError(void)\n{\n    if (verbose) puts(\"STUB: CKRetryAfterSecondsForError called\");\n    return NULL;\n}\n\nvoid* CKSDKVersion(void)\n{\n    if (verbose) puts(\"STUB: CKSDKVersion called\");\n    return NULL;\n}\n\nvoid* CKSQLiteJournalSuffixes(void)\n{\n    if (verbose) puts(\"STUB: CKSQLiteJournalSuffixes called\");\n    return NULL;\n}\n\nvoid* CKServerEnvironmentFromString(void)\n{\n    if (verbose) puts(\"STUB: CKServerEnvironmentFromString called\");\n    return NULL;\n}\n\nvoid* CKShareURLSlugForiWorkShareTitle(void)\n{\n    if (verbose) puts(\"STUB: CKShareURLSlugForiWorkShareTitle called\");\n    return NULL;\n}\n\nvoid* CKSharingContainerSlugForContainerID(void)\n{\n    if (verbose) puts(\"STUB: CKSharingContainerSlugForContainerID called\");\n    return NULL;\n}\n\nvoid* CKShortRandomID(void)\n{\n    if (verbose) puts(\"STUB: CKShortRandomID called\");\n    return NULL;\n}\n\nvoid* CKShouldUseNewPredicateValidation(void)\n{\n    if (verbose) puts(\"STUB: CKShouldUseNewPredicateValidation called\");\n    return NULL;\n}\n\nvoid* CKShouldWrapErrorFetchingRecords(void)\n{\n    if (verbose) puts(\"STUB: CKShouldWrapErrorFetchingRecords called\");\n    return NULL;\n}\n\nvoid* CKStringForDiscretionaryNetworkBehavior(void)\n{\n    if (verbose) puts(\"STUB: CKStringForDiscretionaryNetworkBehavior called\");\n    return NULL;\n}\n\nvoid* CKStringForNetworkServiceType(void)\n{\n    if (verbose) puts(\"STUB: CKStringForNetworkServiceType called\");\n    return NULL;\n}\n\nvoid* CKStringForQOS(void)\n{\n    if (verbose) puts(\"STUB: CKStringForQOS called\");\n    return NULL;\n}\n\nvoid* CKStringForTransferSize(void)\n{\n    if (verbose) puts(\"STUB: CKStringForTransferSize called\");\n    return NULL;\n}\n\nvoid* CKStringForXPCActivityState(void)\n{\n    if (verbose) puts(\"STUB: CKStringForXPCActivityState called\");\n    return NULL;\n}\n\nvoid* CKStringFromAccountChangeType(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromAccountChangeType called\");\n    return NULL;\n}\n\nvoid* CKStringFromAccountStatus(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromAccountStatus called\");\n    return NULL;\n}\n\nvoid* CKStringFromApplicationPermissionStatus(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromApplicationPermissionStatus called\");\n    return NULL;\n}\n\nvoid* CKStringFromCKMMCSEncryptionSupport(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromCKMMCSEncryptionSupport called\");\n    return NULL;\n}\n\nvoid* CKStringFromCapabilities(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromCapabilities called\");\n    return NULL;\n}\n\nvoid* CKStringFromDeviceToDeviceEncryptionStatus(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromDeviceToDeviceEncryptionStatus called\");\n    return NULL;\n}\n\nvoid* CKStringFromParticipantAcceptanceStatus(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromParticipantAcceptanceStatus called\");\n    return NULL;\n}\n\nvoid* CKStringFromParticipantInvitationTokenStatus(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromParticipantInvitationTokenStatus called\");\n    return NULL;\n}\n\nvoid* CKStringFromParticipantPermission(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromParticipantPermission called\");\n    return NULL;\n}\n\nvoid* CKStringFromParticipantRole(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromParticipantRole called\");\n    return NULL;\n}\n\nvoid* CKStringFromPartition(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromPartition called\");\n    return NULL;\n}\n\nvoid* CKStringFromServerEnvironment(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromServerEnvironment called\");\n    return NULL;\n}\n\nvoid* CKStringFromShareParticipantVisibility(void)\n{\n    if (verbose) puts(\"STUB: CKStringFromShareParticipantVisibility called\");\n    return NULL;\n}\n\nvoid* CKStringWithArray(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithArray called\");\n    return NULL;\n}\n\nvoid* CKStringWithBytes(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithBytes called\");\n    return NULL;\n}\n\nvoid* CKStringWithData(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithData called\");\n    return NULL;\n}\n\nvoid* CKStringWithDate(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithDate called\");\n    return NULL;\n}\n\nvoid* CKStringWithDictionary(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithDictionary called\");\n    return NULL;\n}\n\nvoid* CKStringWithLimitedArray(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithLimitedArray called\");\n    return NULL;\n}\n\nvoid* CKStringWithNibbles(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithNibbles called\");\n    return NULL;\n}\n\nvoid* CKStringWithObject(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithObject called\");\n    return NULL;\n}\n\nvoid* CKStringWithSet(void)\n{\n    if (verbose) puts(\"STUB: CKStringWithSet called\");\n    return NULL;\n}\n\nvoid* CKStringsAreBothNilOrEqual(void)\n{\n    if (verbose) puts(\"STUB: CKStringsAreBothNilOrEqual called\");\n    return NULL;\n}\n\nvoid* CKSyncEngineRecordModificationTypeOpposite(void)\n{\n    if (verbose) puts(\"STUB: CKSyncEngineRecordModificationTypeOpposite called\");\n    return NULL;\n}\n\nvoid* CKTabIndentAtDepth(void)\n{\n    if (verbose) puts(\"STUB: CKTabIndentAtDepth called\");\n    return NULL;\n}\n\nvoid* CKTernaryFromBOOL(void)\n{\n    if (verbose) puts(\"STUB: CKTernaryFromBOOL called\");\n    return NULL;\n}\n\nvoid* CKTopLevelUnderlyingErrorCodes(void)\n{\n    if (verbose) puts(\"STUB: CKTopLevelUnderlyingErrorCodes called\");\n    return NULL;\n}\n\nvoid* CKTriggerAutoBugCaptureWithFormatSignature(void)\n{\n    if (verbose) puts(\"STUB: CKTriggerAutoBugCaptureWithFormatSignature called\");\n    return NULL;\n}\n\nvoid* CKTriggerClientSideAutoBugCaptureWithFormatSignature(void)\n{\n    if (verbose) puts(\"STUB: CKTriggerClientSideAutoBugCaptureWithFormatSignature called\");\n    return NULL;\n}\n\nvoid* CKValidSharingURLHostnames(void)\n{\n    if (verbose) puts(\"STUB: CKValidSharingURLHostnames called\");\n    return NULL;\n}\n\nvoid* CKValidateIndexedArrayKeys(void)\n{\n    if (verbose) puts(\"STUB: CKValidateIndexedArrayKeys called\");\n    return NULL;\n}\n\nvoid* CKValidateKeyName(void)\n{\n    if (verbose) puts(\"STUB: CKValidateKeyName called\");\n    return NULL;\n}\n\nvoid* CKValidateRecordArrayValue(void)\n{\n    if (verbose) puts(\"STUB: CKValidateRecordArrayValue called\");\n    return NULL;\n}\n\nvoid* CKValueIsAcceptableClass(void)\n{\n    if (verbose) puts(\"STUB: CKValueIsAcceptableClass called\");\n    return NULL;\n}\n\nvoid* CKValueIsAcceptablePredicateClass(void)\n{\n    if (verbose) puts(\"STUB: CKValueIsAcceptablePredicateClass called\");\n    return NULL;\n}\n\nvoid* CKWarnForIncorrectServiceIdentity(void)\n{\n    if (verbose) puts(\"STUB: CKWarnForIncorrectServiceIdentity called\");\n    return NULL;\n}\n\nvoid* CKWarnForInvalidApplicationIdentifier(void)\n{\n    if (verbose) puts(\"STUB: CKWarnForInvalidApplicationIdentifier called\");\n    return NULL;\n}\n\nvoid* CKWeakLinkClass(void)\n{\n    if (verbose) puts(\"STUB: CKWeakLinkClass called\");\n    return NULL;\n}\n\nvoid* CKWeakLinkSymbol(void)\n{\n    if (verbose) puts(\"STUB: CKWeakLinkSymbol called\");\n    return NULL;\n}\n\nvoid* CKXPCSuitableError(void)\n{\n    if (verbose) puts(\"STUB: CKXPCSuitableError called\");\n    return NULL;\n}\n\nvoid* NSTimeIntervalToClosestXPCActivityInterval(void)\n{\n    if (verbose) puts(\"STUB: NSTimeIntervalToClosestXPCActivityInterval called\");\n    return NULL;\n}\n\nvoid* _CKCheckArgument(void)\n{\n    if (verbose) puts(\"STUB: _CKCheckArgument called\");\n    return NULL;\n}\n\nvoid* _CKSimulateCrash(void)\n{\n    if (verbose) puts(\"STUB: _CKSimulateCrash called\");\n    return NULL;\n}\n\nvoid* ck_call_or_dispatch_async_if_not_key(void)\n{\n    if (verbose) puts(\"STUB: ck_call_or_dispatch_async_if_not_key called\");\n    return NULL;\n}\n\nvoid* ck_call_or_dispatch_sync_if_not_key(void)\n{\n    if (verbose) puts(\"STUB: ck_call_or_dispatch_sync_if_not_key called\");\n    return NULL;\n}\n\nvoid* ck_log_asl_level_to_type(void)\n{\n    if (verbose) puts(\"STUB: ck_log_asl_level_to_type called\");\n    return NULL;\n}\n\nvoid* ck_log_facilities_initailize_static(void)\n{\n    if (verbose) puts(\"STUB: ck_log_facilities_initailize_static called\");\n    return NULL;\n}\n\nvoid* ck_log_get_asl_level(void)\n{\n    if (verbose) puts(\"STUB: ck_log_get_asl_level called\");\n    return NULL;\n}\n\nvoid* mmapFileAtPath(void)\n{\n    if (verbose) puts(\"STUB: mmapFileAtPath called\");\n    return NULL;\n}\n\nvoid* mmapFileDescriptor(void)\n{\n    if (verbose) puts(\"STUB: mmapFileDescriptor called\");\n    return NULL;\n}\n\nvoid* setCKIsRunningInCloudD(void)\n{\n    if (verbose) puts(\"STUB: setCKIsRunningInCloudD called\");\n    return NULL;\n}\n\nvoid* setCKIsRunningInTestHost(void)\n{\n    if (verbose) puts(\"STUB: setCKIsRunningInTestHost called\");\n    return NULL;\n}\n\nvoid* stringForCKErrorCode(void)\n{\n    if (verbose) puts(\"STUB: stringForCKErrorCode called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Collaboration/CMakeLists.txt",
    "content": "project(Collaboration)\n\nremove_sdk_framework(Collaboration)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"81.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(Collaboration\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/Collaboration\"\n)\n\nadd_framework(Collaboration\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/Collaboration.m\n        src/CBIdentityAuthority.m\n        src/CBIdentityPicker.m\n        src/CBIdentity.m\n        src/CBUserIdentity.m\n        src/CBGroupIdentity.m\n        src/SidebarDataSource.m\n        src/IdentityPickerInternal.m\n        src/ListObject.m\n        src/IdentityDataSource.m\n        src/CBIdentityQuery.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/CBGroupIdentity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CBGroupIdentity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/CBIdentity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CBIdentity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/CBIdentityAuthority.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CBIdentityAuthority : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/CBIdentityPicker.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CBIdentityPicker : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/CBIdentityQuery.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CBIdentityQuery : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/CBUserIdentity.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CBUserIdentity : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/Collaboration.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Collaboration_H_\n#define _Collaboration_H_\n\n#import <Foundation/Foundation.h>\n\n#import <Collaboration/NSControlTextEditingDelegate.h>\n#import <Collaboration/NSTableViewDataSource.h>\n#import <Collaboration/NSTableViewDelegate.h>\n#import <Collaboration/CBIdentityAuthority.h>\n#import <Collaboration/CBIdentityPicker.h>\n#import <Collaboration/CBIdentity.h>\n#import <Collaboration/CBUserIdentity.h>\n#import <Collaboration/CBGroupIdentity.h>\n#import <Collaboration/SidebarDataSource.h>\n#import <Collaboration/IdentityPickerInternal.h>\n#import <Collaboration/ListObject.h>\n#import <Collaboration/IdentityDataSource.h>\n#import <Collaboration/CBIdentityQuery.h>\n\nvoid* SortABGroupsByName(void);\nvoid* SortABPeopleByFirstName(void);\nvoid* SortIdentitiesByFirstName(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/IdentityDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface IdentityDataSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/IdentityPickerInternal.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface IdentityPickerInternal : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/ListObject.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface ListObject : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/NSControlTextEditingDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSControlTextEditingDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/NSTableViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTableViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/NSTableViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSTableViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/include/Collaboration/SidebarDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface SidebarDataSource : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/CBGroupIdentity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/CBGroupIdentity.h>\n\n@implementation CBGroupIdentity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/CBIdentity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/CBIdentity.h>\n\n@implementation CBIdentity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/CBIdentityAuthority.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/CBIdentityAuthority.h>\n\n@implementation CBIdentityAuthority\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/CBIdentityPicker.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/CBIdentityPicker.h>\n\n@implementation CBIdentityPicker\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/CBIdentityQuery.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/CBIdentityQuery.h>\n\n@implementation CBIdentityQuery\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/CBUserIdentity.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/CBUserIdentity.h>\n\n@implementation CBUserIdentity\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/Collaboration.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Collaboration/Collaboration.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* SortABGroupsByName(void)\n{\n    if (verbose) puts(\"STUB: SortABGroupsByName called\");\n    return NULL;\n}\n\nvoid* SortABPeopleByFirstName(void)\n{\n    if (verbose) puts(\"STUB: SortABPeopleByFirstName called\");\n    return NULL;\n}\n\nvoid* SortIdentitiesByFirstName(void)\n{\n    if (verbose) puts(\"STUB: SortIdentitiesByFirstName called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/IdentityDataSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/IdentityDataSource.h>\n\n@implementation IdentityDataSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/IdentityPickerInternal.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/IdentityPickerInternal.h>\n\n@implementation IdentityPickerInternal\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/ListObject.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/ListObject.h>\n\n@implementation ListObject\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Collaboration/src/SidebarDataSource.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Collaboration/SidebarDataSource.h>\n\n@implementation SidebarDataSource\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector\n{\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation\n{\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/ColorSync/CMakeLists.txt",
    "content": "project(ColorSync)\n\nremove_sdk_framework(ColorSync)\n\nset(DYLIB_COMPAT_VERSION \"1.0.0\")\nset(DYLIB_CURRENT_VERSION \"4.7.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(ColorSync\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/ColorSync\"\n)\n\nadd_framework(ColorSync\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/ColorSync.c\n\n    DEPENDENCIES\n        CoreFoundation\n        system\n)\n"
  },
  {
    "path": "src/frameworks/ColorSync/include/ColorSync/ColorSync.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _ColorSync_H_\n#define _ColorSync_H_\n\n#include <CoreFoundation/CoreFoundation.h>\n\n#ifdef __cplusplus\nextern \"C\" {\n#endif\n\nvoid* CGDisplayCreateUUIDFromDisplayID(void);\nvoid* CGDisplayGetDisplayIDFromUUID(void);\nvoid* CMProfileFromColorSyncProfile(void);\nvoid* ColorSyncCMMCopyCMMIdentifier(void);\nvoid* ColorSyncCMMCopyLocalizedName(void);\nvoid* ColorSyncCMMCreate(void);\nvoid* ColorSyncCMMGetBundle(void);\nvoid* ColorSyncCMMGetTypeID(void);\nvoid* ColorSyncCodeFragmentGetMD5(void);\nvoid* ColorSyncConvertDoubleXYZToD50(void);\nvoid* ColorSyncConvertXYZToXYZWithChromaticAdaptationMatrix(void);\nvoid* ColorSyncCreateCodeFragment(void);\nvoid* ColorSyncCreateCodeFragmentPriv(void);\nvoid* ColorSyncCreateGammaTablesFromVCGT(void);\nvoid* ColorSyncCreateInputPoppyProfile(void);\nvoid* ColorSyncCreateOutputPoppyProfile(void);\nvoid* ColorSyncCreateOutputPoppyProfileForRGBData(void);\nvoid* ColorSyncCreateSignatureFromFourCharCode(void);\nvoid* ColorSyncDataCanBeIgnoredOnSRGBDevice(void);\nvoid* ColorSyncDeviceCopyDeviceInfo(void);\nvoid* ColorSyncDeviceCopyDeviceRegistrationInfo(void);\nvoid* ColorSyncDeviceSetCustomProfiles(void);\nvoid* ColorSyncDisplayServicesUpdateProfiles(void);\nvoid* ColorSyncGetAdaptationMtx(void);\nvoid* ColorSyncGetDisplayTransferFormulaFromVCGT(void);\nvoid* ColorSyncGetFourCharCodeFromSignature(void);\nvoid* ColorSyncGetMainDisplayID(void);\nvoid* ColorSyncGetUInt32FromUUID(void);\nvoid* ColorSyncIterateDeviceProfiles(void);\nvoid* ColorSyncIterateInstalledCMMs(void);\nvoid* ColorSyncIterateInstalledProfiles(void);\nvoid* ColorSyncIterateInstalledProfilesWithOptions(void);\nvoid* ColorSyncMakeProfile(void);\nvoid* ColorSyncMatrixGetFunction(void);\nvoid* ColorSyncMatrixGetOptions(void);\nvoid* ColorSyncMatrixGetProperties(void);\nvoid* ColorSyncMatrixGetRange(void);\nvoid* ColorSyncMatrixGetTypeID(void);\nvoid* ColorSyncNxMLUTGetFunction(void);\nvoid* ColorSyncNxMLUTGetOptions(void);\nvoid* ColorSyncNxMLUTGetProperties(void);\nvoid* ColorSyncNxMLUTGetRange(void);\nvoid* ColorSyncNxMLUTGetTypeID(void);\nvoid* ColorSyncProfileContainsTag(void);\nvoid* ColorSyncProfileCopyASCIIDescriptionString(void);\nvoid* ColorSyncProfileCopyData(void);\nvoid* ColorSyncProfileCopyDescriptionString(void);\nvoid* ColorSyncProfileCopyHeader(void);\nvoid* ColorSyncProfileCopyLocalizedDescriptionString(void);\nvoid* ColorSyncProfileCopyLocalizedStringDictionary(void);\nvoid* ColorSyncProfileCopyTag(void);\nvoid* ColorSyncProfileCopyTagSignatures(void);\nvoid* ColorSyncProfileCreate(void);\nvoid* ColorSyncProfileCreateDeviceProfile(void);\nvoid* ColorSyncProfileCreateDisplayTransferTablesFromVCGT(void);\nvoid* ColorSyncProfileCreateLink(void);\nvoid* ColorSyncProfileCreateMutable(void);\nvoid* ColorSyncProfileCreateMutableCopy(void);\nvoid* ColorSyncProfileCreateSanitizedCopy(void);\nvoid* ColorSyncProfileCreateWithDisplayID(void);\nvoid* ColorSyncProfileCreateWithName(void);\nvoid* ColorSyncProfileCreateWithURL(void);\nvoid* ColorSyncProfileEstimateGamma(void);\nvoid* ColorSyncProfileEstimateGammaWithDisplayID(void);\nvoid* ColorSyncProfileFromCMProfile(void);\nvoid* ColorSyncProfileGetData(void);\nvoid* ColorSyncProfileGetDisplayTransferFormulaFromVCGT(void);\nvoid* ColorSyncProfileGetMD5(void);\nvoid* ColorSyncProfileGetTypeID(void);\nvoid* ColorSyncProfileGetURL(void);\nvoid* ColorSyncProfileInstall(void);\nvoid* ColorSyncProfileIsWideGamut(void);\nvoid* ColorSyncProfileProducesMatrixTransform(void);\nvoid* ColorSyncProfileRemoveTag(void);\nvoid* ColorSyncProfileSetDescriptionTag(void);\nvoid* ColorSyncProfileSetHeader(void);\nvoid* ColorSyncProfileSetLocalizedStringDictionary(void);\nvoid* ColorSyncProfileSetParametricTRCTag(void);\nvoid* ColorSyncProfileSetTag(void);\nvoid* ColorSyncProfileStreamPS2Definition(void);\nvoid* ColorSyncProfileUninstall(void);\nvoid* ColorSyncProfileVerify(void);\nvoid* ColorSyncProfileWriteToFile(void);\nvoid* ColorSyncPureGammaOriginalTRC(void);\nvoid* ColorSyncSwapProfileHeader(void);\nvoid* ColorSyncTRCGetFunction(void);\nvoid* ColorSyncTRCGetGammaID(void);\nvoid* ColorSyncTRCGetLuminanceScale(void);\nvoid* ColorSyncTRCGetOptions(void);\nvoid* ColorSyncTRCGetProperties(void);\nvoid* ColorSyncTRCGetRange(void);\nvoid* ColorSyncTRCGetTypeID(void);\nvoid* ColorSyncTransformConvert(void);\nvoid* ColorSyncTransformCopyProperty(void);\nvoid* ColorSyncTransformCreate(void);\nvoid* ColorSyncTransformCreateWithName(void);\nvoid* ColorSyncTransformGetTypeID(void);\nvoid* ColorSyncTransformIterate(void);\nvoid* ColorSyncTransformSetProperty(void);\nvoid* ColorSyncVerifyAdobeRGBData(void);\nvoid* ColorSyncVerifyDisplayP3Data(void);\nvoid* ColorSyncVerifyGenericGrayGamma2_2Data(void);\nvoid* ColorSyncVerifyGenericLabData(void);\nvoid* ColorSyncVerifySRGBData(void);\n\n// fixed-up declarations\n\nCFUUIDRef ColorSyncCreateUUIDFromUInt32(unsigned int uuid);\nbool ColorSyncRegisterDevice(CFStringRef deviceClass, CFUUIDRef uuid, CFDictionaryRef info);\nbool ColorSyncUnregisterDevice(CFStringRef deviceClass, CFUUIDRef uuid);\n\nextern CFStringRef kColorSyncDeviceProfileURL;\nextern CFStringRef kColorSyncDeviceModeDescriptions;\nextern CFStringRef kColorSyncDeviceDefaultProfileID;\nextern CFStringRef kColorSyncDeviceDescriptions;\nextern CFStringRef kColorSyncFactoryProfiles;\nextern CFStringRef kColorSyncDeviceUserScope;\nextern CFStringRef kColorSyncDeviceHostScope;\nextern CFStringRef kColorSyncPrinterDeviceClass;\n\n#ifdef __cplusplus\n};\n#endif\n\n#endif\n"
  },
  {
    "path": "src/frameworks/ColorSync/src/ColorSync.c",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <ColorSync/ColorSync.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* CGDisplayCreateUUIDFromDisplayID(void)\n{\n    if (verbose) puts(\"STUB: CGDisplayCreateUUIDFromDisplayID called\");\n    return NULL;\n}\n\nvoid* CGDisplayGetDisplayIDFromUUID(void)\n{\n    if (verbose) puts(\"STUB: CGDisplayGetDisplayIDFromUUID called\");\n    return NULL;\n}\n\nvoid* CMProfileFromColorSyncProfile(void)\n{\n    if (verbose) puts(\"STUB: CMProfileFromColorSyncProfile called\");\n    return NULL;\n}\n\nvoid* ColorSyncCMMCopyCMMIdentifier(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCMMCopyCMMIdentifier called\");\n    return NULL;\n}\n\nvoid* ColorSyncCMMCopyLocalizedName(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCMMCopyLocalizedName called\");\n    return NULL;\n}\n\nvoid* ColorSyncCMMCreate(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCMMCreate called\");\n    return NULL;\n}\n\nvoid* ColorSyncCMMGetBundle(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCMMGetBundle called\");\n    return NULL;\n}\n\nvoid* ColorSyncCMMGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCMMGetTypeID called\");\n    return NULL;\n}\n\nvoid* ColorSyncCodeFragmentGetMD5(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCodeFragmentGetMD5 called\");\n    return NULL;\n}\n\nvoid* ColorSyncConvertDoubleXYZToD50(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncConvertDoubleXYZToD50 called\");\n    return NULL;\n}\n\nvoid* ColorSyncConvertXYZToXYZWithChromaticAdaptationMatrix(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncConvertXYZToXYZWithChromaticAdaptationMatrix called\");\n    return NULL;\n}\n\nvoid* ColorSyncCreateCodeFragment(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCreateCodeFragment called\");\n    return NULL;\n}\n\nvoid* ColorSyncCreateCodeFragmentPriv(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCreateCodeFragmentPriv called\");\n    return NULL;\n}\n\nvoid* ColorSyncCreateGammaTablesFromVCGT(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCreateGammaTablesFromVCGT called\");\n    return NULL;\n}\n\nvoid* ColorSyncCreateInputPoppyProfile(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCreateInputPoppyProfile called\");\n    return NULL;\n}\n\nvoid* ColorSyncCreateOutputPoppyProfile(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCreateOutputPoppyProfile called\");\n    return NULL;\n}\n\nvoid* ColorSyncCreateOutputPoppyProfileForRGBData(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCreateOutputPoppyProfileForRGBData called\");\n    return NULL;\n}\n\nvoid* ColorSyncCreateSignatureFromFourCharCode(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncCreateSignatureFromFourCharCode called\");\n    return NULL;\n}\n\nvoid* ColorSyncDataCanBeIgnoredOnSRGBDevice(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncDataCanBeIgnoredOnSRGBDevice called\");\n    return NULL;\n}\n\nvoid* ColorSyncDeviceCopyDeviceInfo(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncDeviceCopyDeviceInfo called\");\n    return NULL;\n}\n\nvoid* ColorSyncDeviceCopyDeviceRegistrationInfo(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncDeviceCopyDeviceRegistrationInfo called\");\n    return NULL;\n}\n\nvoid* ColorSyncDeviceSetCustomProfiles(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncDeviceSetCustomProfiles called\");\n    return NULL;\n}\n\nvoid* ColorSyncDisplayServicesUpdateProfiles(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncDisplayServicesUpdateProfiles called\");\n    return NULL;\n}\n\nvoid* ColorSyncGetAdaptationMtx(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncGetAdaptationMtx called\");\n    return NULL;\n}\n\nvoid* ColorSyncGetDisplayTransferFormulaFromVCGT(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncGetDisplayTransferFormulaFromVCGT called\");\n    return NULL;\n}\n\nvoid* ColorSyncGetFourCharCodeFromSignature(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncGetFourCharCodeFromSignature called\");\n    return NULL;\n}\n\nvoid* ColorSyncGetMainDisplayID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncGetMainDisplayID called\");\n    return NULL;\n}\n\nvoid* ColorSyncGetUInt32FromUUID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncGetUInt32FromUUID called\");\n    return NULL;\n}\n\nvoid* ColorSyncIterateDeviceProfiles(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncIterateDeviceProfiles called\");\n    return NULL;\n}\n\nvoid* ColorSyncIterateInstalledCMMs(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncIterateInstalledCMMs called\");\n    return NULL;\n}\n\nvoid* ColorSyncIterateInstalledProfiles(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncIterateInstalledProfiles called\");\n    return NULL;\n}\n\nvoid* ColorSyncIterateInstalledProfilesWithOptions(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncIterateInstalledProfilesWithOptions called\");\n    return NULL;\n}\n\nvoid* ColorSyncMakeProfile(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncMakeProfile called\");\n    return NULL;\n}\n\nvoid* ColorSyncMatrixGetFunction(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncMatrixGetFunction called\");\n    return NULL;\n}\n\nvoid* ColorSyncMatrixGetOptions(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncMatrixGetOptions called\");\n    return NULL;\n}\n\nvoid* ColorSyncMatrixGetProperties(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncMatrixGetProperties called\");\n    return NULL;\n}\n\nvoid* ColorSyncMatrixGetRange(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncMatrixGetRange called\");\n    return NULL;\n}\n\nvoid* ColorSyncMatrixGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncMatrixGetTypeID called\");\n    return NULL;\n}\n\nvoid* ColorSyncNxMLUTGetFunction(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncNxMLUTGetFunction called\");\n    return NULL;\n}\n\nvoid* ColorSyncNxMLUTGetOptions(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncNxMLUTGetOptions called\");\n    return NULL;\n}\n\nvoid* ColorSyncNxMLUTGetProperties(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncNxMLUTGetProperties called\");\n    return NULL;\n}\n\nvoid* ColorSyncNxMLUTGetRange(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncNxMLUTGetRange called\");\n    return NULL;\n}\n\nvoid* ColorSyncNxMLUTGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncNxMLUTGetTypeID called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileContainsTag(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileContainsTag called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCopyASCIIDescriptionString(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCopyASCIIDescriptionString called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCopyData(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCopyData called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCopyDescriptionString(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCopyDescriptionString called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCopyHeader(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCopyHeader called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCopyLocalizedDescriptionString(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCopyLocalizedDescriptionString called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCopyLocalizedStringDictionary(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCopyLocalizedStringDictionary called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCopyTag(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCopyTag called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCopyTagSignatures(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCopyTagSignatures called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreate(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreate called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateDeviceProfile(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateDeviceProfile called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateDisplayTransferTablesFromVCGT(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateDisplayTransferTablesFromVCGT called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateLink(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateLink called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateMutable(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateMutable called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateMutableCopy(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateMutableCopy called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateSanitizedCopy(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateSanitizedCopy called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateWithDisplayID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateWithDisplayID called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateWithName(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateWithName called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileCreateWithURL(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileCreateWithURL called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileEstimateGamma(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileEstimateGamma called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileEstimateGammaWithDisplayID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileEstimateGammaWithDisplayID called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileFromCMProfile(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileFromCMProfile called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileGetData(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileGetData called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileGetDisplayTransferFormulaFromVCGT(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileGetDisplayTransferFormulaFromVCGT called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileGetMD5(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileGetMD5 called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileGetTypeID called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileGetURL(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileGetURL called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileInstall(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileInstall called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileIsWideGamut(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileIsWideGamut called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileProducesMatrixTransform(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileProducesMatrixTransform called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileRemoveTag(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileRemoveTag called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileSetDescriptionTag(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileSetDescriptionTag called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileSetHeader(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileSetHeader called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileSetLocalizedStringDictionary(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileSetLocalizedStringDictionary called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileSetParametricTRCTag(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileSetParametricTRCTag called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileSetTag(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileSetTag called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileStreamPS2Definition(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileStreamPS2Definition called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileUninstall(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileUninstall called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileVerify(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileVerify called\");\n    return NULL;\n}\n\nvoid* ColorSyncProfileWriteToFile(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncProfileWriteToFile called\");\n    return NULL;\n}\n\nvoid* ColorSyncPureGammaOriginalTRC(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncPureGammaOriginalTRC called\");\n    return NULL;\n}\n\nvoid* ColorSyncSwapProfileHeader(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncSwapProfileHeader called\");\n    return NULL;\n}\n\nvoid* ColorSyncTRCGetFunction(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTRCGetFunction called\");\n    return NULL;\n}\n\nvoid* ColorSyncTRCGetGammaID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTRCGetGammaID called\");\n    return NULL;\n}\n\nvoid* ColorSyncTRCGetLuminanceScale(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTRCGetLuminanceScale called\");\n    return NULL;\n}\n\nvoid* ColorSyncTRCGetOptions(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTRCGetOptions called\");\n    return NULL;\n}\n\nvoid* ColorSyncTRCGetProperties(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTRCGetProperties called\");\n    return NULL;\n}\n\nvoid* ColorSyncTRCGetRange(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTRCGetRange called\");\n    return NULL;\n}\n\nvoid* ColorSyncTRCGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTRCGetTypeID called\");\n    return NULL;\n}\n\nvoid* ColorSyncTransformConvert(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTransformConvert called\");\n    return NULL;\n}\n\nvoid* ColorSyncTransformCopyProperty(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTransformCopyProperty called\");\n    return NULL;\n}\n\nvoid* ColorSyncTransformCreate(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTransformCreate called\");\n    return NULL;\n}\n\nvoid* ColorSyncTransformCreateWithName(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTransformCreateWithName called\");\n    return NULL;\n}\n\nvoid* ColorSyncTransformGetTypeID(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTransformGetTypeID called\");\n    return NULL;\n}\n\nvoid* ColorSyncTransformIterate(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTransformIterate called\");\n    return NULL;\n}\n\nvoid* ColorSyncTransformSetProperty(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncTransformSetProperty called\");\n    return NULL;\n}\n\nvoid* ColorSyncVerifyAdobeRGBData(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncVerifyAdobeRGBData called\");\n    return NULL;\n}\n\nvoid* ColorSyncVerifyDisplayP3Data(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncVerifyDisplayP3Data called\");\n    return NULL;\n}\n\nvoid* ColorSyncVerifyGenericGrayGamma2_2Data(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncVerifyGenericGrayGamma2_2Data called\");\n    return NULL;\n}\n\nvoid* ColorSyncVerifyGenericLabData(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncVerifyGenericLabData called\");\n    return NULL;\n}\n\nvoid* ColorSyncVerifySRGBData(void)\n{\n    if (verbose) puts(\"STUB: ColorSyncVerifySRGBData called\");\n    return NULL;\n}\n\n// stubs with fixed-up declarations\n\nCFUUIDRef ColorSyncCreateUUIDFromUInt32(unsigned int uuid) {\n    if (verbose) puts(\"STUB: ColorSyncCreateUUIDFromUInt32 called\");\n    return NULL;\n};\n\nbool ColorSyncRegisterDevice(CFStringRef class, CFUUIDRef uuid, CFDictionaryRef info) {\n    if (verbose) puts(\"STUB: ColorSyncRegisterDevice called\");\n    return 0;\n};\n\nbool ColorSyncUnregisterDevice(CFStringRef class, CFUUIDRef uuid) {\n    if (verbose) puts(\"STUB: ColorSyncUnregisterDevice called\");\n    return 0;\n};\n\n// someone please check these and replace them with the correct values\nCFStringRef kColorSyncDeviceProfileURL       = CFSTR(\"ColorSyncDeviceProfileURL\");\nCFStringRef kColorSyncDeviceModeDescriptions = CFSTR(\"ColorSyncDeviceModeDescriptions\");\nCFStringRef kColorSyncDeviceDefaultProfileID = CFSTR(\"ColorSyncDeviceDefaultProfileID\");\nCFStringRef kColorSyncDeviceDescriptions     = CFSTR(\"ColorSyncDeviceDescriptions\");\nCFStringRef kColorSyncFactoryProfiles        = CFSTR(\"ColorSyncFactoryProfiles\");\nCFStringRef kColorSyncDeviceUserScope        = CFSTR(\"ColorSyncDeviceUserScope\");\nCFStringRef kColorSyncDeviceHostScope        = CFSTR(\"ColorSyncDeviceHostScope\");\nCFStringRef kColorSyncPrinterDeviceClass     = CFSTR(\"ColorSyncPrinterDeviceClass\");\n"
  },
  {
    "path": "src/frameworks/Contacts/CMakeLists.txt",
    "content": "project(Contacts)\n\nremove_sdk_framework(Contacts)\n\nset(DYLIB_COMPAT_VERSION \"0.0.0\")\nset(DYLIB_CURRENT_VERSION \"0.0.0\")\n\nset(FRAMEWORK_VERSION \"A\")\n\ngenerate_sdk_framework(Contacts\n    VERSION ${FRAMEWORK_VERSION}\n    HEADER \"include/Contacts\"\n)\n\nadd_framework(Contacts\n    FAT\n    CURRENT_VERSION\n    VERSION ${FRAMEWORK_VERSION}\n\n    SOURCES\n        src/Contacts.m\n        src/CNContactVCardWritingAdapter.m\n        src/CNChangeHistoryGroupChange.m\n        src/CNContactSuggestionMatch.m\n        src/CNContactVCardParsedResultBuilder.m\n        src/CNContactVCardParsedResultBuilderFactory.m\n        src/CNMultiValueDiff.m\n        src/CNContainerPropertyDescription.m\n        src/CNContainerIdentifierDescription.m\n        src/CNContainerNameDescription.m\n        src/CNContainerTypeDescription.m\n        src/CNContainerEnabledDescription.m\n        src/CNAggregateContactStore.m\n        src/CNDateComponentsEquivalence.m\n        src/CNTCC.m\n        src/CNCDSmartGroupFetcher.m\n        src/CNPredicate.m\n        src/CNContactChangeRequest.m\n        src/CNLabeledValue.m\n        src/CNCDSubgroupsInGroupPredicate.m\n        src/CNLDAPPostalAddressTransform.m\n        src/CNFullTextSearchContactPredicate.m\n        src/CNLDAPConnection.m\n        src/CNCalculatesMultiValueDiff.m\n        src/CNCDMeContactFetcher.m\n        src/CNCDGroupsWithIdentifiersPredicate.m\n        src/CNChangeHistoryFetchRequest.m\n        src/CNXPCDataMapper.m\n        src/CNXPCDataMapperProgressiveHandler.m\n        src/CNInternalIdentifierDescription.m\n        src/CNAccountIdentifierDescription.m\n        src/CNNamePrefixDescription.m\n        src/CNGivenNameDescription.m\n        src/CNMiddleNameDescription.m\n        src/CNFamilyNameDescription.m\n        src/CNNameSuffixDescription.m\n        src/CNPreviousFamilyNameDescription.m\n        src/CNNicknameNameDescription.m\n        src/CNPhoneticGivenNameDescription.m\n        src/CNPhoneticMiddleNameDescription.m\n        src/CNPhoneticFamilyNameDescription.m\n        src/CNPhoneticOrganizationNameDescription.m\n        src/CNSortingGivenNameDescription.m\n        src/CNSortingFamilyNameDescription.m\n        src/CNOrganizationNameDescription.m\n        src/CNDepartmentDescription.m\n        src/CNJobTitleDescription.m\n        src/CNBirthdayDescription.m\n        src/CNNonGregorianBirthdayDescription.m\n        src/CNCreationDateDescription.m\n        src/CNModificationDateDescription.m\n        src/CNNoteDescription.m\n        src/CNSearchIndexDescription.m\n        src/CNImageDataDescription.m\n        src/CNCropRectDescription.m\n        src/CNThumbnailImageDataDescription.m\n        src/CNImageDataAvailableDescription.m\n        src/CNLinkIdentifierDescription.m\n        src/CNPreferredForNameDescription.m\n        src/CNPreferredForImageDescription.m\n        src/CNPreferredLikenessSourceDescription.m\n        src/CNPreferredApplePersonaIdentifierDescription.m\n        src/CNContactTypeDescription.m\n        src/CNDisplayNameOrderDescription.m\n        src/CNPhoneNumbersDescription.m\n        src/CNEmailAddressesDescription.m\n        src/CNUrlAddressesDescription.m\n        src/CNCalendarURIsDescription.m\n        src/CNDatesDescription.m\n        src/CNContactRelationsDescription.m\n        src/CNInstantMessageAddressesDescription.m\n        src/CNSocialProfilesDescription.m\n        src/CNPostalAddressesDescription.m\n        src/CNPhonemeDataDescription.m\n        src/CNAbstractActivityAlertDescription.m\n        src/CNCallAlertDescription.m\n        src/CNTextAlertDescription.m\n        src/CNMapsDataDescription.m\n        src/CNMockSpotlightIndexingLogger.m\n        src/CNAccount.m\n        src/CNSuggestedContactIdentifierPredicate.m\n        src/CNMeContactsPredicate.m\n        src/CNLDAPFetchRequest.m\n        src/CNLDAPSearchBase.m\n        src/CNContactsLoggerProvider.m\n        src/CNCalculatesContactDiff.m\n        src/CNSocialProfileContactPredicate.m\n        src/CNActivityAlert.m\n        src/CNMutableInstantMessageAddress.m\n        src/CNLDAPQueryFilter.m\n        src/CNCDContactsMatchingPredicate.m\n        src/CNContactsUserDefaults.m\n        src/CNCoreDataPropertyMapping.m\n        src/CNUnifiedContacts.m\n        src/CNCDContactWithNamePredicate.m\n        src/CNMockLoggerProvider.m\n        src/CNContactsLogging.m\n        src/CNCDContactSaveExecutor.m\n        src/CNEmailAddressContactPredicate.m\n        src/CNLaunchServicesRemoteAdapter.m\n        src/CNCDContainerFetcher.m\n        src/CNCDGroupNamePredicateCreationHelper.m\n        src/CNContactUpdate.m\n        src/CNLDAPPropertyDescription.m\n        src/_CNLDAPAccumulatingPropertyDescription.m\n        src/CNChangeHistoryContactChange.m\n        src/CNMultiValueSingleUpdate.m\n        src/CNLDAPServices.m\n        src/CNContainerPermissions.m\n        src/CNContactsEnvironment.m\n        src/CNSecureCodingClassSets.m\n        src/CNContainerIdentifiersPredicate.m\n        src/CNMultiValueAddUpdate.m\n        src/CNTestSmartFetcher.m\n        src/CNPerContactPropertyKeyDescriptor.m\n        src/CNMutablePostalAddress.m\n        src/CNInstantMessageAddress.m\n        src/CNCDContactsInContainerPredicate.m\n        src/CNMultiValueUpdate.m\n        src/CNContactStore.m\n        src/CNMutableContact.m\n        src/CNContactMatchSummarizer.m\n        src/CNCDGroupMembershipSaveExecutor.m\n        src/CNMutableSocialProfile.m\n        src/CNContactsUserDefaultsX.m\n        src/CNMultiValueRemoveUpdate.m\n        src/CNContactKeyVector.m\n        src/CNMutableContactKeyVector.m\n        src/CNCDContactFetchRequestDescription.m\n        src/CNCDContactFetchRequestBuilder.m\n        src/CNGroup.m\n        src/CNContactFormatter.m\n        src/CNReputationStore.m\n        src/CNContactNameOrderImpl.m\n        src/CNGivenNameFirstNameOrder.m\n        src/CNFamilyNameFirstNameOrder.m\n        src/CNContactWithNamePredicate.m\n        src/CNReputationFutureBuilder.m\n        src/CNABRemoteObjectsConverter.m\n        src/CNContactRelation.m\n        src/CNContainer.m\n        src/CNContactSearchIndexFormatter.m\n        src/CNDataMapperContactStore.m\n        src/CNValueOrigin.m\n        src/CNChangesNotifierProxy.m\n        src/CNChangesNotifier.m\n        src/CNChangeNotifierDarwinWrapper.m\n        src/CNChangeNotifierDistributedCenterWrapper.m\n        src/CNCDCustomPropertySaveExecutor.m\n        src/CNContactNameSorting.m\n        src/CNPhoneDialer.m\n        src/CNSaveResponse.m\n        src/CNMutableSaveResponse.m\n        src/CNChangeHistoryResult.m\n        src/CNSuggestedSaveRequest.m\n        src/CNDonatedContactSanitizer.m\n        src/CNCDContactsInGroupPredicate.m\n        src/CN.m\n        src/CNPostalAddressFormatter.m\n        src/CNCDGroupPredicate.m\n        src/CNSmartPropertyFetcher.m\n        src/_CNSpotlightIndexingLogger.m\n        src/CNTCCServices.m\n        src/CNPostalAddressContactPredicate.m\n        src/CNMultiValuePropertyDescription.m\n        src/CNCompoundMultiValuePropertyDescription.m\n        src/CNPhoneNumberContactPredicate.m\n        src/CNDraggingContact.m\n        src/CNReputationHandle.m\n        src/_CNReputationGenericHandle.m\n        src/_CNReputationEmailAddressHandle.m\n        src/_CNReputationPhoneNumberHandle.m\n        src/CNContactProperty.m\n        src/CNUuidIdentifierProvider.m\n        src/CNLabelValuePair.m\n        src/CNReputationLogger.m\n        src/CNContactChangesObserverProxy.m\n        src/CNContactChangesFetcher.m\n        src/CNContactChangesNotifier.m\n        src/CNContact.m\n        src/CNPermissivePolicy.m\n        src/CNFromABCDConversions.m\n        src/CNCDCustomPropertyValueFetcher.m\n        src/CNCDGroupFetcher.m\n        src/CNContactFormatterSmartFetcher.m\n        src/CNSocialProfile.m\n        src/CNReputationContactsAdapter.m\n        src/CNContactMatchInfo.m\n        src/CNMutableContainer.m\n        src/CNMutableActivityAlert.m\n        src/CNCDGroupsInContainerPredicate.m\n        src/CNSuggestedContactStore.m\n        src/CNContainerOfContactPredicate.m\n        src/CNReputationCoreRecentsAdapter.m\n        src/CNCDAllContactsPredicate.m\n        src/CNLinkedContactsPredicate.m\n        src/CNAggregateKeyDescriptor.m\n        src/CNContactDiff.m\n        src/CNCDSaveContext.m\n        src/CNPropertyDescription.m\n        src/CNContactKeyValueUpdate.m\n        src/CNAuthorization.m\n        src/CNPostalAddressFormattingSpecification.m\n        src/CNContactFetchRequest.m\n        src/CNLDAPPredicateRemapper.m\n        src/CNMutableGroup.m\n        src/CNVCardConstantsMapping.m\n        src/CNCDAccessAuthorization.m\n        src/CNInstantMessageAddressContactPredicate.m\n        src/CNContactsWithIdentifiersPredicate.m\n        src/CNPostalAddress.m\n        src/_CNContactMatchingFetchRequestInfos.m\n        src/CNErrorFactory.m\n        src/CNMockContactsLogger.m\n        src/CNPolicy.m\n        src/CNReputationResult.m\n        src/CNContactVCardSerialization.m\n        src/CNCDRecordSaveCache.m\n        src/CNMultiValueReplaceUpdate.m\n        src/CNLDAPPredicateRemapping.m\n        src/CNChangeHistoryAnchor.m\n        src/CNDonationMapper.m\n        src/CNCDSaveRequestExecutor.m\n        src/CNCountryInformation.m\n        src/CNContactMultiValueDiffUpdate.m\n        src/CNCDInfoSaveExecutor.m\n        src/_CNContactsLogger.m\n        src/CNDate.m\n        src/CNPhoneNumber.m\n        src/CNCDAllGroupsPredicate.m\n        src/CNMultiValueReorderUpdate.m\n        src/CNSaveRequest.m\n        src/CNContainerOfGroupPredicate.m\n        src/CNLDAPTransforms.m\n        src/CNCDAllContainersPredicate.m\n        src/CNPredicateValidator.m\n        src/CNCDContactsLinkedToContactPredicate.m\n        src/_CNRegulatoryLogger.m\n        src/CNAddressFormats.m\n        src/CNCDGroupSaveExecutor.m\n        src/CNDictionaryPolicy.m\n        src/CNCDInfoFetcher.m\n        src/CNCDContactFetcher.m\n        src/CNCoreDataMapperX.m\n\n\tmanual.m\n\n    DEPENDENCIES\n        system\n        objc\n        Foundation\n)\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CN.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CN : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNABRemoteObjectsConverter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNABRemoteObjectsConverter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNAbstractActivityAlertDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNAbstractActivityAlertDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNAbstractPropertyDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNAbstractPropertyDescription\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNAccount.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNAccount : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNAccountIdentifierDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNAccountIdentifierDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNActivityAlert.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNActivityAlert : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNAddressFormats.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNAddressFormats : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNAggregateContactStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNAggregateContactStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNAggregateKeyDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNAggregateKeyDescriptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNAuthorization.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNAuthorization : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNBirthdayDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNBirthdayDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDAccessAuthorization.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDAccessAuthorization : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDAllContactsPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDAllContactsPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDAllContainersPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDAllContainersPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDAllGroupsPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDAllGroupsPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactFetchRequestBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactFetchRequestBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactFetchRequestDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactFetchRequestDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNCDContactPredicate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactSaveExecutor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactSaveExecutor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactWithNamePredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactWithNamePredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactsInContainerPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactsInContainerPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactsInGroupPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactsInGroupPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactsLinkedToContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactsLinkedToContactPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContactsMatchingPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContactsMatchingPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContainerFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDContainerFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContainerPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNCDContainerPredicate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContainerScopedContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNCDContainerScopedContactPredicate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDContainerScopedGroupPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNCDContainerScopedGroupPredicate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDCustomPropertySaveExecutor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDCustomPropertySaveExecutor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDCustomPropertyValueFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDCustomPropertyValueFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDGroupFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDGroupFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDGroupMembershipSaveExecutor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDGroupMembershipSaveExecutor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDGroupNamePredicateCreationHelper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDGroupNamePredicateCreationHelper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDGroupPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDGroupPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDGroupSaveExecutor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDGroupSaveExecutor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDGroupsInContainerPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDGroupsInContainerPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDGroupsWithIdentifiersPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDGroupsWithIdentifiersPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDInfoFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDInfoFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDInfoSaveExecutor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDInfoSaveExecutor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDMeContactFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDMeContactFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDRecordSaveCache.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDRecordSaveCache : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDSaveContext.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDSaveContext : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDSaveRequestExecutor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDSaveRequestExecutor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDSmartGroupFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDSmartGroupFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCDSubgroupsInGroupPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCDSubgroupsInGroupPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCalculatesContactDiff.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCalculatesContactDiff : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCalculatesMultiValueDiff.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCalculatesMultiValueDiff : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCalendarURIsDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCalendarURIsDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCallAlertDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCallAlertDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCancelable.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNCancelable\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeHistoryAnchor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangeHistoryAnchor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeHistoryContactChange.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangeHistoryContactChange : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeHistoryFetchRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangeHistoryFetchRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeHistoryGroupChange.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangeHistoryGroupChange : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeHistoryResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangeHistoryResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeNotificationReceiver.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNChangeNotificationReceiver\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeNotifierDarwinWrapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangeNotifierDarwinWrapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeNotifierDistributedCenterWrapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangeNotifierDistributedCenterWrapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangeNotifierWrapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNChangeNotifierWrapper\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangesNotifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangesNotifier : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNChangesNotifierProxy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNChangesNotifierProxy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCompoundMultiValuePropertyDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCompoundMultiValuePropertyDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContact.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContact : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactAugmentation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNContactAugmentation\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactChangeRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactChangeRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactChangesFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactChangesFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactChangesNotifier.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactChangesNotifier : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactChangesObserverProxy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactChangesObserverProxy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactCoreDataMultiValueProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNContactCoreDataMultiValueProperty\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactCoreDataProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNContactCoreDataProperty\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactDiff.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactDiff : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactFetchRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactFetchRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactFormatterSmartFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactFormatterSmartFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactKeyValueUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactKeyValueUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactKeyVector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactKeyVector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactMatchInfo.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactMatchInfo : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactMatchSummarizer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactMatchSummarizer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactMultiValueDiffUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactMultiValueDiffUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactNameOrderImpl.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactNameOrderImpl : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactNameSorting.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactNameSorting : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactProperty.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactProperty : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactRelation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactRelation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactRelationsDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactRelationsDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactSearchIndexFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactSearchIndexFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactSuggestionMatch.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactSuggestionMatch : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactTypeDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactTypeDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactVCardParsedResultBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactVCardParsedResultBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactVCardParsedResultBuilderFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactVCardParsedResultBuilderFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactVCardSerialization.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactVCardSerialization : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactVCardWritingAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactVCardWritingAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactWithNamePredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactWithNamePredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactsEnvironment.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactsEnvironment : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactsLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNContactsLogger\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactsLoggerProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactsLoggerProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactsLogging.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactsLogging : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactsUserDefaults.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactsUserDefaults : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactsUserDefaultsX.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactsUserDefaultsX : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContactsWithIdentifiersPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContactsWithIdentifiersPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerEnabledDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerEnabledDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerIdentifierDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerIdentifierDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerIdentifiersPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerIdentifiersPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerOfContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerOfContactPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerOfGroupPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerOfGroupPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerPermissions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerPermissions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerPropertyDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerPropertyDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNContainerTypeDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNContainerTypeDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCoreDataMapperX.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCoreDataMapperX : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCoreDataPropertyMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCoreDataPropertyMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCountryInformation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCountryInformation : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCreationDateDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCreationDateDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNCropRectDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNCropRectDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDataMapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNDataMapper\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDataMapperContactStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDataMapperContactStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDateComponentsEquivalence.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDateComponentsEquivalence : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDatesDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDatesDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDepartmentDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDepartmentDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDictionaryPolicy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDictionaryPolicy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDisplayNameOrderDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDisplayNameOrderDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDonatedContactSanitizer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDonatedContactSanitizer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDonatedContactsPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNDonatedContactsPredicate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDonationMapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDonationMapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNDraggingContact.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNDraggingContact : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNEmailAddressContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNEmailAddressContactPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNEmailAddressesDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNEmailAddressesDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNEncodedFetchCursor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNEncodedFetchCursor\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNErrorFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNErrorFactory : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNFamilyNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNFamilyNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNFamilyNameFirstNameOrder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNFamilyNameFirstNameOrder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNFromABCDConversions.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNFromABCDConversions : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNFullTextSearchContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNFullTextSearchContactPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNGivenNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNGivenNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNGivenNameFirstNameOrder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNGivenNameFirstNameOrder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNIdentifierProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNIdentifierProvider\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNImageDataAvailableDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNImageDataAvailableDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNImageDataDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNImageDataDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNInstantMessageAddress.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNInstantMessageAddress : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNInstantMessageAddressContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNInstantMessageAddressContactPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNInstantMessageAddressesDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNInstantMessageAddressesDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNInternalIdentifierDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNInternalIdentifierDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNJobTitleDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNJobTitleDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNKeyDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNKeyDescriptor\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNKeyDescriptor_Private.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNKeyDescriptor_Private\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPConnection.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPConnection : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPFetchRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPFetchRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPPostalAddressTransform.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPPostalAddressTransform : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPPredicateRemapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPPredicateRemapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPPredicateRemapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPPredicateRemapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPPropertyDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPPropertyDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPQueryFilter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPQueryFilter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPSearchBase.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPSearchBase : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPServices.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPServices : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLDAPTransforms.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLDAPTransforms : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLabelValuePair.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLabelValuePair : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLabeledValue.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLabeledValue : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLaunchServicesAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNLaunchServicesAdapter\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLaunchServicesRemoteAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLaunchServicesRemoteAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLinkIdentifierDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLinkIdentifierDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNLinkedContactsPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNLinkedContactsPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMapsDataDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMapsDataDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMeContactsPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMeContactsPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMiddleNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMiddleNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMockContactsLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMockContactsLogger : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMockLoggerProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMockLoggerProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMockSpotlightIndexingLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMockSpotlightIndexingLogger : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNModificationDateDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNModificationDateDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMultiValueAddUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMultiValueAddUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMultiValueDiff.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMultiValueDiff : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMultiValuePropertyDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMultiValuePropertyDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMultiValueRemoveUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMultiValueRemoveUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMultiValueReorderUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMultiValueReorderUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMultiValueReplaceUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMultiValueReplaceUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMultiValueSingleUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMultiValueSingleUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMultiValueUpdate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMultiValueUpdate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutableActivityAlert.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutableActivityAlert : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutableContact.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutableContact : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutableContactKeyVector.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutableContactKeyVector : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutableContainer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutableContainer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutableGroup.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutableGroup : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutableInstantMessageAddress.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutableInstantMessageAddress : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutablePostalAddress.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutablePostalAddress : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutableSaveResponse.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutableSaveResponse : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNMutableSocialProfile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNMutableSocialProfile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNNamePrefixDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNNamePrefixDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNNameSuffixDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNNameSuffixDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNNicknameNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNNicknameNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNNonGregorianBirthdayDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNNonGregorianBirthdayDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNNoteDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNNoteDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNObjectValidation.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNObjectValidation\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNOrganizationNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNOrganizationNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPerContactPropertyKeyDescriptor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPerContactPropertyKeyDescriptor : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPermissivePolicy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPermissivePolicy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhoneDialer.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhoneDialer : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhoneNumber.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhoneNumber : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhoneNumberContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhoneNumberContactPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhoneNumbersDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhoneNumbersDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhonemeDataDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhonemeDataDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhoneticFamilyNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhoneticFamilyNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhoneticGivenNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhoneticGivenNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhoneticMiddleNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhoneticMiddleNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPhoneticOrganizationNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPhoneticOrganizationNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPolicy.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPolicy : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPostalAddress.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPostalAddress : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPostalAddressContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPostalAddressContactPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPostalAddressFormatter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPostalAddressFormatter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPostalAddressFormattingSpecification.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPostalAddressFormattingSpecification : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPostalAddressesDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPostalAddressesDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPredicateValidator.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPredicateValidator : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPreferredApplePersonaIdentifierDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPreferredApplePersonaIdentifierDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPreferredForImageDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPreferredForImageDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPreferredForNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPreferredForNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPreferredLikenessSourceDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPreferredLikenessSourceDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPreviousFamilyNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPreviousFamilyNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNPropertyDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNPropertyDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNRecordCoreDataPredicateMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNRecordCoreDataPredicateMapping\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNRegulatoryLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNRegulatoryLogger\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNReputationContactsAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNReputationContactsAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNReputationCoreRecentsAdapter.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNReputationCoreRecentsAdapter : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNReputationFutureBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNReputationFutureBuilder : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNReputationHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNReputationHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNReputationLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNReputationLogger : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNReputationResult.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNReputationResult : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNReputationStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNReputationStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSaveRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSaveRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSaveResponse.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSaveResponse : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSearchIndexDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSearchIndexDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSecureCodingClassSets.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSecureCodingClassSets : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSmartPropertyFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSmartPropertyFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSocialProfile.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSocialProfile : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSocialProfileContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSocialProfileContactPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSocialProfilesDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSocialProfilesDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSortingFamilyNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSortingFamilyNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSortingGivenNameDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSortingGivenNameDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSpotlightIndexingLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNSpotlightIndexingLogger\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSuggested.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNSuggested\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSuggestedContactIdentifierPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSuggestedContactIdentifierPredicate : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSuggestedContactPredicate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNSuggestedContactPredicate\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSuggestedContactStore.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSuggestedContactStore : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNSuggestedSaveRequest.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNSuggestedSaveRequest : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNTCC.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNTCC : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNTCCServices.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNTCCServices : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNTestSmartFetcher.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNTestSmartFetcher : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNTextAlertDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNTextAlertDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNThumbnailImageDataDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNThumbnailImageDataDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNUnifiedContacts.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUnifiedContacts : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNUrlAddressesDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUrlAddressesDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNUuidIdentifierProvider.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNUuidIdentifierProvider : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNVCardConstantsMapping.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNVCardConstantsMapping : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNVCardNameDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNVCardNameDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNVCardParsedResultBuilder.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNVCardParsedResultBuilder\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNVCardParsedResultBuilderFactory.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNVCardParsedResultBuilderFactory\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNVCardPerson.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNVCardPerson\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNValueOrigin.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNValueOrigin : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNXPCDataMapper.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNXPCDataMapper : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNXPCDataMapperProgressiveHandler.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface CNXPCDataMapperProgressiveHandler : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/CNXPCDataMapperService.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol CNXPCDataMapperService\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/Contacts.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#ifndef _Contacts_H_\n#define _Contacts_H_\n\n#import <Foundation/Foundation.h>\n\n#import <Contacts/CNAbstractPropertyDescription.h>\n#import <Contacts/CNCDContactPredicate.h>\n#import <Contacts/CNCDContainerPredicate.h>\n#import <Contacts/CNCDContainerScopedContactPredicate.h>\n#import <Contacts/CNCDContainerScopedGroupPredicate.h>\n#import <Contacts/CNCDGroupPredicate.h>\n#import <Contacts/CNCancelable.h>\n#import <Contacts/CNChangeNotificationReceiver.h>\n#import <Contacts/CNChangeNotifierWrapper.h>\n#import <Contacts/CNContactAugmentation.h>\n#import <Contacts/CNContactCoreDataMultiValueProperty.h>\n#import <Contacts/CNContactCoreDataProperty.h>\n#import <Contacts/CNContactsLogger.h>\n#import <Contacts/CNContactsLoggerProvider.h>\n#import <Contacts/CNDataMapper.h>\n#import <Contacts/CNDonatedContactsPredicate.h>\n#import <Contacts/CNEncodedFetchCursor.h>\n#import <Contacts/CNIdentifierProvider.h>\n#import <Contacts/CNKeyDescriptor.h>\n#import <Contacts/CNKeyDescriptor_Private.h>\n#import <Contacts/CNLDAPPredicateRemapping.h>\n#import <Contacts/CNLDAPServices.h>\n#import <Contacts/CNLaunchServicesAdapter.h>\n#import <Contacts/CNObjectValidation.h>\n#import <Contacts/CNRecordCoreDataPredicateMapping.h>\n#import <Contacts/CNRegulatoryLogger.h>\n#import <Contacts/CNSpotlightIndexingLogger.h>\n#import <Contacts/CNSuggested.h>\n#import <Contacts/CNSuggestedContactPredicate.h>\n#import <Contacts/CNVCardNameDataSource.h>\n#import <Contacts/CNVCardParsedResultBuilder.h>\n#import <Contacts/CNVCardParsedResultBuilderFactory.h>\n#import <Contacts/CNVCardPerson.h>\n#import <Contacts/CNXPCDataMapperService.h>\n#import <Contacts/NSItemProviderReading.h>\n#import <Contacts/NSItemProviderWriting.h>\n#import <Contacts/NSPredicateVisitor.h>\n#import <Contacts/ProgressiveResultsCancellationProtocol.h>\n#import <Contacts/ProgressiveResultsHandlerProtocol.h>\n#import <Contacts/CNContactVCardWritingAdapter.h>\n#import <Contacts/CNChangeHistoryGroupChange.h>\n#import <Contacts/CNContactSuggestionMatch.h>\n#import <Contacts/CNContactVCardParsedResultBuilder.h>\n#import <Contacts/CNContactVCardParsedResultBuilderFactory.h>\n#import <Contacts/CNMultiValueDiff.h>\n#import <Contacts/CNContainerPropertyDescription.h>\n#import <Contacts/CNContainerIdentifierDescription.h>\n#import <Contacts/CNContainerNameDescription.h>\n#import <Contacts/CNContainerTypeDescription.h>\n#import <Contacts/CNContainerEnabledDescription.h>\n#import <Contacts/CNAggregateContactStore.h>\n#import <Contacts/CNDateComponentsEquivalence.h>\n#import <Contacts/CNTCC.h>\n#import <Contacts/CNCDSmartGroupFetcher.h>\n#import <Contacts/CNPredicate.h>\n#import <Contacts/CNContactChangeRequest.h>\n#import <Contacts/CNLabeledValue.h>\n#import <Contacts/CNCDSubgroupsInGroupPredicate.h>\n#import <Contacts/CNLDAPPostalAddressTransform.h>\n#import <Contacts/CNFullTextSearchContactPredicate.h>\n#import <Contacts/CNLDAPConnection.h>\n#import <Contacts/CNCalculatesMultiValueDiff.h>\n#import <Contacts/CNCDMeContactFetcher.h>\n#import <Contacts/CNCDGroupsWithIdentifiersPredicate.h>\n#import <Contacts/CNChangeHistoryFetchRequest.h>\n#import <Contacts/CNXPCDataMapper.h>\n#import <Contacts/CNXPCDataMapperProgressiveHandler.h>\n#import <Contacts/CNInternalIdentifierDescription.h>\n#import <Contacts/CNAccountIdentifierDescription.h>\n#import <Contacts/CNNamePrefixDescription.h>\n#import <Contacts/CNGivenNameDescription.h>\n#import <Contacts/CNMiddleNameDescription.h>\n#import <Contacts/CNFamilyNameDescription.h>\n#import <Contacts/CNNameSuffixDescription.h>\n#import <Contacts/CNPreviousFamilyNameDescription.h>\n#import <Contacts/CNNicknameNameDescription.h>\n#import <Contacts/CNPhoneticGivenNameDescription.h>\n#import <Contacts/CNPhoneticMiddleNameDescription.h>\n#import <Contacts/CNPhoneticFamilyNameDescription.h>\n#import <Contacts/CNPhoneticOrganizationNameDescription.h>\n#import <Contacts/CNSortingGivenNameDescription.h>\n#import <Contacts/CNSortingFamilyNameDescription.h>\n#import <Contacts/CNOrganizationNameDescription.h>\n#import <Contacts/CNDepartmentDescription.h>\n#import <Contacts/CNJobTitleDescription.h>\n#import <Contacts/CNBirthdayDescription.h>\n#import <Contacts/CNNonGregorianBirthdayDescription.h>\n#import <Contacts/CNCreationDateDescription.h>\n#import <Contacts/CNModificationDateDescription.h>\n#import <Contacts/CNNoteDescription.h>\n#import <Contacts/CNSearchIndexDescription.h>\n#import <Contacts/CNImageDataDescription.h>\n#import <Contacts/CNCropRectDescription.h>\n#import <Contacts/CNThumbnailImageDataDescription.h>\n#import <Contacts/CNImageDataAvailableDescription.h>\n#import <Contacts/CNLinkIdentifierDescription.h>\n#import <Contacts/CNPreferredForNameDescription.h>\n#import <Contacts/CNPreferredForImageDescription.h>\n#import <Contacts/CNPreferredLikenessSourceDescription.h>\n#import <Contacts/CNPreferredApplePersonaIdentifierDescription.h>\n#import <Contacts/CNContactTypeDescription.h>\n#import <Contacts/CNDisplayNameOrderDescription.h>\n#import <Contacts/CNPhoneNumbersDescription.h>\n#import <Contacts/CNEmailAddressesDescription.h>\n#import <Contacts/CNUrlAddressesDescription.h>\n#import <Contacts/CNCalendarURIsDescription.h>\n#import <Contacts/CNDatesDescription.h>\n#import <Contacts/CNContactRelationsDescription.h>\n#import <Contacts/CNInstantMessageAddressesDescription.h>\n#import <Contacts/CNSocialProfilesDescription.h>\n#import <Contacts/CNPostalAddressesDescription.h>\n#import <Contacts/CNPhonemeDataDescription.h>\n#import <Contacts/CNAbstractActivityAlertDescription.h>\n#import <Contacts/CNCallAlertDescription.h>\n#import <Contacts/CNTextAlertDescription.h>\n#import <Contacts/CNMapsDataDescription.h>\n#import <Contacts/CNMockSpotlightIndexingLogger.h>\n#import <Contacts/CNAccount.h>\n#import <Contacts/CNSuggestedContactIdentifierPredicate.h>\n#import <Contacts/CNMeContactsPredicate.h>\n#import <Contacts/CNLDAPFetchRequest.h>\n#import <Contacts/CNLDAPSearchBase.h>\n#import <Contacts/CNContactsLoggerProvider.h>\n#import <Contacts/CNCalculatesContactDiff.h>\n#import <Contacts/CNSocialProfileContactPredicate.h>\n#import <Contacts/CNActivityAlert.h>\n#import <Contacts/CNMutableInstantMessageAddress.h>\n#import <Contacts/CNLDAPQueryFilter.h>\n#import <Contacts/CNCDContactsMatchingPredicate.h>\n#import <Contacts/CNContactsUserDefaults.h>\n#import <Contacts/CNCoreDataPropertyMapping.h>\n#import <Contacts/CNUnifiedContacts.h>\n#import <Contacts/CNCDContactWithNamePredicate.h>\n#import <Contacts/CNMockLoggerProvider.h>\n#import <Contacts/CNContactsLogging.h>\n#import <Contacts/CNCDContactSaveExecutor.h>\n#import <Contacts/CNEmailAddressContactPredicate.h>\n#import <Contacts/CNLaunchServicesRemoteAdapter.h>\n#import <Contacts/CNCDContainerFetcher.h>\n#import <Contacts/CNCDGroupNamePredicateCreationHelper.h>\n#import <Contacts/CNContactUpdate.h>\n#import <Contacts/CNLDAPPropertyDescription.h>\n#import <Contacts/_CNLDAPAccumulatingPropertyDescription.h>\n#import <Contacts/CNChangeHistoryContactChange.h>\n#import <Contacts/CNMultiValueSingleUpdate.h>\n#import <Contacts/CNLDAPServices.h>\n#import <Contacts/CNContainerPermissions.h>\n#import <Contacts/CNContactsEnvironment.h>\n#import <Contacts/CNSecureCodingClassSets.h>\n#import <Contacts/CNContainerIdentifiersPredicate.h>\n#import <Contacts/CNMultiValueAddUpdate.h>\n#import <Contacts/CNTestSmartFetcher.h>\n#import <Contacts/CNPerContactPropertyKeyDescriptor.h>\n#import <Contacts/CNMutablePostalAddress.h>\n#import <Contacts/CNInstantMessageAddress.h>\n#import <Contacts/CNCDContactsInContainerPredicate.h>\n#import <Contacts/CNMultiValueUpdate.h>\n#import <Contacts/CNContactStore.h>\n#import <Contacts/CNMutableContact.h>\n#import <Contacts/CNContactMatchSummarizer.h>\n#import <Contacts/CNCDGroupMembershipSaveExecutor.h>\n#import <Contacts/CNMutableSocialProfile.h>\n#import <Contacts/CNContactsUserDefaultsX.h>\n#import <Contacts/CNMultiValueRemoveUpdate.h>\n#import <Contacts/CNContactKeyVector.h>\n#import <Contacts/CNMutableContactKeyVector.h>\n#import <Contacts/CNCDContactFetchRequestDescription.h>\n#import <Contacts/CNCDContactFetchRequestBuilder.h>\n#import <Contacts/CNGroup.h>\n#import <Contacts/CNContactFormatter.h>\n#import <Contacts/CNReputationStore.h>\n#import <Contacts/CNContactNameOrderImpl.h>\n#import <Contacts/CNGivenNameFirstNameOrder.h>\n#import <Contacts/CNFamilyNameFirstNameOrder.h>\n#import <Contacts/CNContactWithNamePredicate.h>\n#import <Contacts/CNReputationFutureBuilder.h>\n#import <Contacts/CNABRemoteObjectsConverter.h>\n#import <Contacts/CNContactRelation.h>\n#import <Contacts/CNContainer.h>\n#import <Contacts/CNContactSearchIndexFormatter.h>\n#import <Contacts/CNDataMapperContactStore.h>\n#import <Contacts/CNValueOrigin.h>\n#import <Contacts/CNChangesNotifierProxy.h>\n#import <Contacts/CNChangesNotifier.h>\n#import <Contacts/CNChangeNotifierDarwinWrapper.h>\n#import <Contacts/CNChangeNotifierDistributedCenterWrapper.h>\n#import <Contacts/CNCDCustomPropertySaveExecutor.h>\n#import <Contacts/CNContactNameSorting.h>\n#import <Contacts/CNPhoneDialer.h>\n#import <Contacts/CNSaveResponse.h>\n#import <Contacts/CNMutableSaveResponse.h>\n#import <Contacts/CNChangeHistoryResult.h>\n#import <Contacts/CNSuggestedSaveRequest.h>\n#import <Contacts/CNDonatedContactSanitizer.h>\n#import <Contacts/CNCDContactsInGroupPredicate.h>\n#import <Contacts/CN.h>\n#import <Contacts/CNPostalAddressFormatter.h>\n#import <Contacts/CNCDGroupPredicate.h>\n#import <Contacts/CNSmartPropertyFetcher.h>\n#import <Contacts/_CNSpotlightIndexingLogger.h>\n#import <Contacts/CNTCCServices.h>\n#import <Contacts/CNPostalAddressContactPredicate.h>\n#import <Contacts/CNMultiValuePropertyDescription.h>\n#import <Contacts/CNCompoundMultiValuePropertyDescription.h>\n#import <Contacts/CNPhoneNumberContactPredicate.h>\n#import <Contacts/CNDraggingContact.h>\n#import <Contacts/CNReputationHandle.h>\n#import <Contacts/_CNReputationGenericHandle.h>\n#import <Contacts/_CNReputationEmailAddressHandle.h>\n#import <Contacts/_CNReputationPhoneNumberHandle.h>\n#import <Contacts/CNContactProperty.h>\n#import <Contacts/CNUuidIdentifierProvider.h>\n#import <Contacts/CNLabelValuePair.h>\n#import <Contacts/CNReputationLogger.h>\n#import <Contacts/CNContactChangesObserverProxy.h>\n#import <Contacts/CNContactChangesFetcher.h>\n#import <Contacts/CNContactChangesNotifier.h>\n#import <Contacts/CNContact.h>\n#import <Contacts/CNPermissivePolicy.h>\n#import <Contacts/CNFromABCDConversions.h>\n#import <Contacts/CNCDCustomPropertyValueFetcher.h>\n#import <Contacts/CNCDGroupFetcher.h>\n#import <Contacts/CNContactFormatterSmartFetcher.h>\n#import <Contacts/CNSocialProfile.h>\n#import <Contacts/CNReputationContactsAdapter.h>\n#import <Contacts/CNContactMatchInfo.h>\n#import <Contacts/CNMutableContainer.h>\n#import <Contacts/CNMutableActivityAlert.h>\n#import <Contacts/CNCDGroupsInContainerPredicate.h>\n#import <Contacts/CNSuggestedContactStore.h>\n#import <Contacts/CNContainerOfContactPredicate.h>\n#import <Contacts/CNReputationCoreRecentsAdapter.h>\n#import <Contacts/CNCDAllContactsPredicate.h>\n#import <Contacts/CNLinkedContactsPredicate.h>\n#import <Contacts/CNAggregateKeyDescriptor.h>\n#import <Contacts/CNContactDiff.h>\n#import <Contacts/CNCDSaveContext.h>\n#import <Contacts/CNPropertyDescription.h>\n#import <Contacts/CNContactKeyValueUpdate.h>\n#import <Contacts/CNAuthorization.h>\n#import <Contacts/CNPostalAddressFormattingSpecification.h>\n#import <Contacts/CNContactFetchRequest.h>\n#import <Contacts/CNLDAPPredicateRemapper.h>\n#import <Contacts/CNMutableGroup.h>\n#import <Contacts/CNVCardConstantsMapping.h>\n#import <Contacts/CNCDAccessAuthorization.h>\n#import <Contacts/CNInstantMessageAddressContactPredicate.h>\n#import <Contacts/CNContactsWithIdentifiersPredicate.h>\n#import <Contacts/CNPostalAddress.h>\n#import <Contacts/_CNContactMatchingFetchRequestInfos.h>\n#import <Contacts/CNErrorFactory.h>\n#import <Contacts/CNMockContactsLogger.h>\n#import <Contacts/CNPolicy.h>\n#import <Contacts/CNReputationResult.h>\n#import <Contacts/CNContactVCardSerialization.h>\n#import <Contacts/CNCDRecordSaveCache.h>\n#import <Contacts/CNMultiValueReplaceUpdate.h>\n#import <Contacts/CNLDAPPredicateRemapping.h>\n#import <Contacts/CNChangeHistoryAnchor.h>\n#import <Contacts/CNDonationMapper.h>\n#import <Contacts/CNCDSaveRequestExecutor.h>\n#import <Contacts/CNCountryInformation.h>\n#import <Contacts/CNContactMultiValueDiffUpdate.h>\n#import <Contacts/CNCDInfoSaveExecutor.h>\n#import <Contacts/_CNContactsLogger.h>\n#import <Contacts/CNDate.h>\n#import <Contacts/CNPhoneNumber.h>\n#import <Contacts/CNCDAllGroupsPredicate.h>\n#import <Contacts/CNMultiValueReorderUpdate.h>\n#import <Contacts/CNSaveRequest.h>\n#import <Contacts/CNContainerOfGroupPredicate.h>\n#import <Contacts/CNLDAPTransforms.h>\n#import <Contacts/CNCDAllContainersPredicate.h>\n#import <Contacts/CNPredicateValidator.h>\n#import <Contacts/CNCDContactsLinkedToContactPredicate.h>\n#import <Contacts/_CNRegulatoryLogger.h>\n#import <Contacts/CNAddressFormats.h>\n#import <Contacts/CNCDGroupSaveExecutor.h>\n#import <Contacts/CNDictionaryPolicy.h>\n#import <Contacts/CNCDInfoFetcher.h>\n#import <Contacts/CNCDContactFetcher.h>\n#import <Contacts/CNCoreDataMapperX.h>\n\nvoid* CNLinkedOnOrAfter(void);\nvoid* CNLinkedOnOrAfterSimulateLinkedBefore(void);\n\n#endif\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/NSItemProviderReading.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSItemProviderReading\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/NSItemProviderWriting.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSItemProviderWriting\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/NSPredicateVisitor.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol NSPredicateVisitor\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/ProgressiveResultsCancellationProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ProgressiveResultsCancellationProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/ProgressiveResultsHandlerProtocol.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ProgressiveResultsHandlerProtocol\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/_CNContactMatchingFetchRequestInfos.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNContactMatchingFetchRequestInfos : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/_CNContactsLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNContactsLogger : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/_CNLDAPAccumulatingPropertyDescription.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNLDAPAccumulatingPropertyDescription : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/_CNRegulatoryLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNRegulatoryLogger : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/_CNReputationEmailAddressHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNReputationEmailAddressHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/_CNReputationGenericHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNReputationGenericHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/_CNReputationPhoneNumberHandle.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNReputationPhoneNumberHandle : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/include/Contacts/_CNSpotlightIndexingLogger.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@interface _CNSpotlightIndexingLogger : NSObject\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/manual.m",
    "content": "#import <Foundation/Foundation.h>\n\nNSString * const CNContactPropertyNotFetchedExceptionName = @\"CNPropertyNotFetchedException\";\nNSString * const CNContactNamePrefixKey = @\"namePrefix\";\nNSString * const CNContactGivenNameKey = @\"givenName\";\nNSString * const CNContactMiddleNameKey = @\"middleName\";\nNSString * const CNContactFamilyNameKey = @\"familyName\";\nNSString * const CNContactPreviousFamilyNameKey = @\"previousFamilyName\";\nNSString * const CNContactNameSuffixKey = @\"nameSuffix\";\nNSString * const CNContactNicknameKey = @\"nickname\";\nNSString * const CNContactOrganizationNameKey = @\"organizationName\";\nNSString * const CNContactDepartmentNameKey = @\"departmentName\";\nNSString * const CNContactJobTitleKey = @\"jobTitle\";\nNSString * const CNContactPhoneticGivenNameKey = @\"phoneticGivenName\";\nNSString * const CNContactPhoneticMiddleNameKey = @\"phoneticMiddleName\";\nNSString * const CNContactPhoneticFamilyNameKey = @\"phoneticFamilyName\";\nNSString * const CNContactPhoneticOrganizationNameKey = @\"phoneticOrganizationName\";\nNSString * const CNContactBirthdayKey = @\"birthday\";\nNSString * const CNContactNonGregorianBirthdayKey = @\"nonGregorianBirthday\";\nNSString * const CNContactNoteKey = @\"note\";\nNSString * const CNContactImageDataKey = @\"imageData\";\nNSString * const CNContactThumbnailImageDataKey = @\"thumbnailImageData\";\nNSString * const CNContactImageDataAvailableKey = @\"imageDataAvailable\";\nNSString * const CNContactTypeKey = @\"contactType\";\nNSString * const CNContactPhoneNumbersKey = @\"phoneNumbers\";\nNSString * const CNContactEmailAddressesKey = @\"emailAddresses\";\nNSString * const CNContactPostalAddressesKey = @\"postalAddresses\";\nNSString * const CNContactDatesKey = @\"dates\";\nNSString * const CNContactUrlAddressesKey = @\"urlAddresses\";\nNSString * const CNContactRelationsKey = @\"contactRelations\";\nNSString * const CNContactSocialProfilesKey = @\"socialProfiles\";\nNSString * const CNContactInstantMessageAddressesKey = @\"instantMessageAddresses\";\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CN.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CN.h>\n\n@implementation CN\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNABRemoteObjectsConverter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNABRemoteObjectsConverter.h>\n\n@implementation CNABRemoteObjectsConverter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNAbstractActivityAlertDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNAbstractActivityAlertDescription.h>\n\n@implementation CNAbstractActivityAlertDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNAccount.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNAccount.h>\n\n@implementation CNAccount\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNAccountIdentifierDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNAccountIdentifierDescription.h>\n\n@implementation CNAccountIdentifierDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNActivityAlert.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNActivityAlert.h>\n\n@implementation CNActivityAlert\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNAddressFormats.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNAddressFormats.h>\n\n@implementation CNAddressFormats\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNAggregateContactStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNAggregateContactStore.h>\n\n@implementation CNAggregateContactStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNAggregateKeyDescriptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNAggregateKeyDescriptor.h>\n\n@implementation CNAggregateKeyDescriptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNAuthorization.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNAuthorization.h>\n\n@implementation CNAuthorization\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNBirthdayDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNBirthdayDescription.h>\n\n@implementation CNBirthdayDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDAccessAuthorization.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDAccessAuthorization.h>\n\n@implementation CNCDAccessAuthorization\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDAllContactsPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDAllContactsPredicate.h>\n\n@implementation CNCDAllContactsPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDAllContainersPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDAllContainersPredicate.h>\n\n@implementation CNCDAllContainersPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDAllGroupsPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDAllGroupsPredicate.h>\n\n@implementation CNCDAllGroupsPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactFetchRequestBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactFetchRequestBuilder.h>\n\n@implementation CNCDContactFetchRequestBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactFetchRequestDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactFetchRequestDescription.h>\n\n@implementation CNCDContactFetchRequestDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactFetcher.h>\n\n@implementation CNCDContactFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactSaveExecutor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactSaveExecutor.h>\n\n@implementation CNCDContactSaveExecutor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactWithNamePredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactWithNamePredicate.h>\n\n@implementation CNCDContactWithNamePredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactsInContainerPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactsInContainerPredicate.h>\n\n@implementation CNCDContactsInContainerPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactsInGroupPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactsInGroupPredicate.h>\n\n@implementation CNCDContactsInGroupPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactsLinkedToContactPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactsLinkedToContactPredicate.h>\n\n@implementation CNCDContactsLinkedToContactPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContactsMatchingPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContactsMatchingPredicate.h>\n\n@implementation CNCDContactsMatchingPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDContainerFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDContainerFetcher.h>\n\n@implementation CNCDContainerFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDCustomPropertySaveExecutor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDCustomPropertySaveExecutor.h>\n\n@implementation CNCDCustomPropertySaveExecutor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDCustomPropertyValueFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDCustomPropertyValueFetcher.h>\n\n@implementation CNCDCustomPropertyValueFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDGroupFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDGroupFetcher.h>\n\n@implementation CNCDGroupFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDGroupMembershipSaveExecutor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDGroupMembershipSaveExecutor.h>\n\n@implementation CNCDGroupMembershipSaveExecutor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDGroupNamePredicateCreationHelper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDGroupNamePredicateCreationHelper.h>\n\n@implementation CNCDGroupNamePredicateCreationHelper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDGroupPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDGroupPredicate.h>\n\n@implementation CNCDGroupPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDGroupSaveExecutor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDGroupSaveExecutor.h>\n\n@implementation CNCDGroupSaveExecutor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDGroupsInContainerPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDGroupsInContainerPredicate.h>\n\n@implementation CNCDGroupsInContainerPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDGroupsWithIdentifiersPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDGroupsWithIdentifiersPredicate.h>\n\n@implementation CNCDGroupsWithIdentifiersPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDInfoFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDInfoFetcher.h>\n\n@implementation CNCDInfoFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDInfoSaveExecutor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDInfoSaveExecutor.h>\n\n@implementation CNCDInfoSaveExecutor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDMeContactFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDMeContactFetcher.h>\n\n@implementation CNCDMeContactFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDRecordSaveCache.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDRecordSaveCache.h>\n\n@implementation CNCDRecordSaveCache\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDSaveContext.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDSaveContext.h>\n\n@implementation CNCDSaveContext\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDSaveRequestExecutor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDSaveRequestExecutor.h>\n\n@implementation CNCDSaveRequestExecutor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDSmartGroupFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDSmartGroupFetcher.h>\n\n@implementation CNCDSmartGroupFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCDSubgroupsInGroupPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCDSubgroupsInGroupPredicate.h>\n\n@implementation CNCDSubgroupsInGroupPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCalculatesContactDiff.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCalculatesContactDiff.h>\n\n@implementation CNCalculatesContactDiff\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCalculatesMultiValueDiff.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCalculatesMultiValueDiff.h>\n\n@implementation CNCalculatesMultiValueDiff\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCalendarURIsDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCalendarURIsDescription.h>\n\n@implementation CNCalendarURIsDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCallAlertDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCallAlertDescription.h>\n\n@implementation CNCallAlertDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangeHistoryAnchor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangeHistoryAnchor.h>\n\n@implementation CNChangeHistoryAnchor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangeHistoryContactChange.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangeHistoryContactChange.h>\n\n@implementation CNChangeHistoryContactChange\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangeHistoryFetchRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangeHistoryFetchRequest.h>\n\n@implementation CNChangeHistoryFetchRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangeHistoryGroupChange.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangeHistoryGroupChange.h>\n\n@implementation CNChangeHistoryGroupChange\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangeHistoryResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangeHistoryResult.h>\n\n@implementation CNChangeHistoryResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangeNotifierDarwinWrapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangeNotifierDarwinWrapper.h>\n\n@implementation CNChangeNotifierDarwinWrapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangeNotifierDistributedCenterWrapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangeNotifierDistributedCenterWrapper.h>\n\n@implementation CNChangeNotifierDistributedCenterWrapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangesNotifier.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangesNotifier.h>\n\n@implementation CNChangesNotifier\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNChangesNotifierProxy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNChangesNotifierProxy.h>\n\n@implementation CNChangesNotifierProxy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCompoundMultiValuePropertyDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCompoundMultiValuePropertyDescription.h>\n\n@implementation CNCompoundMultiValuePropertyDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContact.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContact.h>\n\n@implementation CNContact\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactChangeRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactChangeRequest.h>\n\n@implementation CNContactChangeRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactChangesFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactChangesFetcher.h>\n\n@implementation CNContactChangesFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactChangesNotifier.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactChangesNotifier.h>\n\n@implementation CNContactChangesNotifier\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactChangesObserverProxy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactChangesObserverProxy.h>\n\n@implementation CNContactChangesObserverProxy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactDiff.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactDiff.h>\n\n@implementation CNContactDiff\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactFetchRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactFetchRequest.h>\n\n@implementation CNContactFetchRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactFormatter.h>\n\n@implementation CNContactFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactFormatterSmartFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactFormatterSmartFetcher.h>\n\n@implementation CNContactFormatterSmartFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactKeyValueUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactKeyValueUpdate.h>\n\n@implementation CNContactKeyValueUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactKeyVector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactKeyVector.h>\n\n@implementation CNContactKeyVector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactMatchInfo.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactMatchInfo.h>\n\n@implementation CNContactMatchInfo\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactMatchSummarizer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactMatchSummarizer.h>\n\n@implementation CNContactMatchSummarizer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactMultiValueDiffUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactMultiValueDiffUpdate.h>\n\n@implementation CNContactMultiValueDiffUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactNameOrderImpl.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactNameOrderImpl.h>\n\n@implementation CNContactNameOrderImpl\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactNameSorting.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactNameSorting.h>\n\n@implementation CNContactNameSorting\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactProperty.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactProperty.h>\n\n@implementation CNContactProperty\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactRelation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactRelation.h>\n\n@implementation CNContactRelation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactRelationsDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactRelationsDescription.h>\n\n@implementation CNContactRelationsDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactSearchIndexFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactSearchIndexFormatter.h>\n\n@implementation CNContactSearchIndexFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactStore.h>\n\n@implementation CNContactStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactSuggestionMatch.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactSuggestionMatch.h>\n\n@implementation CNContactSuggestionMatch\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactTypeDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactTypeDescription.h>\n\n@implementation CNContactTypeDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactUpdate.h>\n\n@implementation CNContactUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactVCardParsedResultBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactVCardParsedResultBuilder.h>\n\n@implementation CNContactVCardParsedResultBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactVCardParsedResultBuilderFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactVCardParsedResultBuilderFactory.h>\n\n@implementation CNContactVCardParsedResultBuilderFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactVCardSerialization.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactVCardSerialization.h>\n\n@implementation CNContactVCardSerialization\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactVCardWritingAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactVCardWritingAdapter.h>\n\n@implementation CNContactVCardWritingAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactWithNamePredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactWithNamePredicate.h>\n\n@implementation CNContactWithNamePredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactsEnvironment.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactsEnvironment.h>\n\n@implementation CNContactsEnvironment\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactsLoggerProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactsLoggerProvider.h>\n\n@implementation CNContactsLoggerProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactsLogging.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactsLogging.h>\n\n@implementation CNContactsLogging\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactsUserDefaults.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactsUserDefaults.h>\n\n@implementation CNContactsUserDefaults\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactsUserDefaultsX.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactsUserDefaultsX.h>\n\n@implementation CNContactsUserDefaultsX\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContactsWithIdentifiersPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContactsWithIdentifiersPredicate.h>\n\n@implementation CNContactsWithIdentifiersPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainer.h>\n\n@implementation CNContainer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerEnabledDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerEnabledDescription.h>\n\n@implementation CNContainerEnabledDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerIdentifierDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerIdentifierDescription.h>\n\n@implementation CNContainerIdentifierDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerIdentifiersPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerIdentifiersPredicate.h>\n\n@implementation CNContainerIdentifiersPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerNameDescription.h>\n\n@implementation CNContainerNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerOfContactPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerOfContactPredicate.h>\n\n@implementation CNContainerOfContactPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerOfGroupPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerOfGroupPredicate.h>\n\n@implementation CNContainerOfGroupPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerPermissions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerPermissions.h>\n\n@implementation CNContainerPermissions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerPropertyDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerPropertyDescription.h>\n\n@implementation CNContainerPropertyDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNContainerTypeDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNContainerTypeDescription.h>\n\n@implementation CNContainerTypeDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCoreDataMapperX.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCoreDataMapperX.h>\n\n@implementation CNCoreDataMapperX\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCoreDataPropertyMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCoreDataPropertyMapping.h>\n\n@implementation CNCoreDataPropertyMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCountryInformation.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCountryInformation.h>\n\n@implementation CNCountryInformation\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCreationDateDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCreationDateDescription.h>\n\n@implementation CNCreationDateDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNCropRectDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNCropRectDescription.h>\n\n@implementation CNCropRectDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDataMapperContactStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDataMapperContactStore.h>\n\n@implementation CNDataMapperContactStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDate.h>\n\n@implementation CNDate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDateComponentsEquivalence.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDateComponentsEquivalence.h>\n\n@implementation CNDateComponentsEquivalence\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDatesDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDatesDescription.h>\n\n@implementation CNDatesDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDepartmentDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDepartmentDescription.h>\n\n@implementation CNDepartmentDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDictionaryPolicy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDictionaryPolicy.h>\n\n@implementation CNDictionaryPolicy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDisplayNameOrderDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDisplayNameOrderDescription.h>\n\n@implementation CNDisplayNameOrderDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDonatedContactSanitizer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDonatedContactSanitizer.h>\n\n@implementation CNDonatedContactSanitizer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDonationMapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDonationMapper.h>\n\n@implementation CNDonationMapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNDraggingContact.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNDraggingContact.h>\n\n@implementation CNDraggingContact\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNEmailAddressContactPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNEmailAddressContactPredicate.h>\n\n@implementation CNEmailAddressContactPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNEmailAddressesDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNEmailAddressesDescription.h>\n\n@implementation CNEmailAddressesDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNErrorFactory.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNErrorFactory.h>\n\n@implementation CNErrorFactory\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNFamilyNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNFamilyNameDescription.h>\n\n@implementation CNFamilyNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNFamilyNameFirstNameOrder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNFamilyNameFirstNameOrder.h>\n\n@implementation CNFamilyNameFirstNameOrder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNFromABCDConversions.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNFromABCDConversions.h>\n\n@implementation CNFromABCDConversions\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNFullTextSearchContactPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNFullTextSearchContactPredicate.h>\n\n@implementation CNFullTextSearchContactPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNGivenNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNGivenNameDescription.h>\n\n@implementation CNGivenNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNGivenNameFirstNameOrder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNGivenNameFirstNameOrder.h>\n\n@implementation CNGivenNameFirstNameOrder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNGroup.h>\n\n@implementation CNGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNImageDataAvailableDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNImageDataAvailableDescription.h>\n\n@implementation CNImageDataAvailableDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNImageDataDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNImageDataDescription.h>\n\n@implementation CNImageDataDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNInstantMessageAddress.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNInstantMessageAddress.h>\n\n@implementation CNInstantMessageAddress\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNInstantMessageAddressContactPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNInstantMessageAddressContactPredicate.h>\n\n@implementation CNInstantMessageAddressContactPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNInstantMessageAddressesDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNInstantMessageAddressesDescription.h>\n\n@implementation CNInstantMessageAddressesDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNInternalIdentifierDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNInternalIdentifierDescription.h>\n\n@implementation CNInternalIdentifierDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNJobTitleDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNJobTitleDescription.h>\n\n@implementation CNJobTitleDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPConnection.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPConnection.h>\n\n@implementation CNLDAPConnection\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPFetchRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPFetchRequest.h>\n\n@implementation CNLDAPFetchRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPPostalAddressTransform.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPPostalAddressTransform.h>\n\n@implementation CNLDAPPostalAddressTransform\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPPredicateRemapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPPredicateRemapper.h>\n\n@implementation CNLDAPPredicateRemapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPPredicateRemapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPPredicateRemapping.h>\n\n@implementation CNLDAPPredicateRemapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPPropertyDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPPropertyDescription.h>\n\n@implementation CNLDAPPropertyDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPQueryFilter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPQueryFilter.h>\n\n@implementation CNLDAPQueryFilter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPSearchBase.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPSearchBase.h>\n\n@implementation CNLDAPSearchBase\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPServices.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPServices.h>\n\n@implementation CNLDAPServices\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLDAPTransforms.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLDAPTransforms.h>\n\n@implementation CNLDAPTransforms\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLabelValuePair.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLabelValuePair.h>\n\n@implementation CNLabelValuePair\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLabeledValue.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLabeledValue.h>\n\n@implementation CNLabeledValue\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLaunchServicesRemoteAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLaunchServicesRemoteAdapter.h>\n\n@implementation CNLaunchServicesRemoteAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLinkIdentifierDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLinkIdentifierDescription.h>\n\n@implementation CNLinkIdentifierDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNLinkedContactsPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNLinkedContactsPredicate.h>\n\n@implementation CNLinkedContactsPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMapsDataDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMapsDataDescription.h>\n\n@implementation CNMapsDataDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMeContactsPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMeContactsPredicate.h>\n\n@implementation CNMeContactsPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMiddleNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMiddleNameDescription.h>\n\n@implementation CNMiddleNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMockContactsLogger.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMockContactsLogger.h>\n\n@implementation CNMockContactsLogger\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMockLoggerProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMockLoggerProvider.h>\n\n@implementation CNMockLoggerProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMockSpotlightIndexingLogger.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMockSpotlightIndexingLogger.h>\n\n@implementation CNMockSpotlightIndexingLogger\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNModificationDateDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNModificationDateDescription.h>\n\n@implementation CNModificationDateDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMultiValueAddUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMultiValueAddUpdate.h>\n\n@implementation CNMultiValueAddUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMultiValueDiff.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMultiValueDiff.h>\n\n@implementation CNMultiValueDiff\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMultiValuePropertyDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMultiValuePropertyDescription.h>\n\n@implementation CNMultiValuePropertyDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMultiValueRemoveUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMultiValueRemoveUpdate.h>\n\n@implementation CNMultiValueRemoveUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMultiValueReorderUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMultiValueReorderUpdate.h>\n\n@implementation CNMultiValueReorderUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMultiValueReplaceUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMultiValueReplaceUpdate.h>\n\n@implementation CNMultiValueReplaceUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMultiValueSingleUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMultiValueSingleUpdate.h>\n\n@implementation CNMultiValueSingleUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMultiValueUpdate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMultiValueUpdate.h>\n\n@implementation CNMultiValueUpdate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutableActivityAlert.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutableActivityAlert.h>\n\n@implementation CNMutableActivityAlert\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutableContact.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutableContact.h>\n\n@implementation CNMutableContact\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutableContactKeyVector.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutableContactKeyVector.h>\n\n@implementation CNMutableContactKeyVector\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutableContainer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutableContainer.h>\n\n@implementation CNMutableContainer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutableGroup.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutableGroup.h>\n\n@implementation CNMutableGroup\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutableInstantMessageAddress.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutableInstantMessageAddress.h>\n\n@implementation CNMutableInstantMessageAddress\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutablePostalAddress.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutablePostalAddress.h>\n\n@implementation CNMutablePostalAddress\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutableSaveResponse.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutableSaveResponse.h>\n\n@implementation CNMutableSaveResponse\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNMutableSocialProfile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNMutableSocialProfile.h>\n\n@implementation CNMutableSocialProfile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNNamePrefixDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNNamePrefixDescription.h>\n\n@implementation CNNamePrefixDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNNameSuffixDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNNameSuffixDescription.h>\n\n@implementation CNNameSuffixDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNNicknameNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNNicknameNameDescription.h>\n\n@implementation CNNicknameNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNNonGregorianBirthdayDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNNonGregorianBirthdayDescription.h>\n\n@implementation CNNonGregorianBirthdayDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNNoteDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNNoteDescription.h>\n\n@implementation CNNoteDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNOrganizationNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNOrganizationNameDescription.h>\n\n@implementation CNOrganizationNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPerContactPropertyKeyDescriptor.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPerContactPropertyKeyDescriptor.h>\n\n@implementation CNPerContactPropertyKeyDescriptor\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPermissivePolicy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPermissivePolicy.h>\n\n@implementation CNPermissivePolicy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhoneDialer.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhoneDialer.h>\n\n@implementation CNPhoneDialer\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhoneNumber.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhoneNumber.h>\n\n@implementation CNPhoneNumber\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhoneNumberContactPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhoneNumberContactPredicate.h>\n\n@implementation CNPhoneNumberContactPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhoneNumbersDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhoneNumbersDescription.h>\n\n@implementation CNPhoneNumbersDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhonemeDataDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhonemeDataDescription.h>\n\n@implementation CNPhonemeDataDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhoneticFamilyNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhoneticFamilyNameDescription.h>\n\n@implementation CNPhoneticFamilyNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhoneticGivenNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhoneticGivenNameDescription.h>\n\n@implementation CNPhoneticGivenNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhoneticMiddleNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhoneticMiddleNameDescription.h>\n\n@implementation CNPhoneticMiddleNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPhoneticOrganizationNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPhoneticOrganizationNameDescription.h>\n\n@implementation CNPhoneticOrganizationNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPolicy.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPolicy.h>\n\n@implementation CNPolicy\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPostalAddress.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPostalAddress.h>\n\n@implementation CNPostalAddress\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPostalAddressContactPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPostalAddressContactPredicate.h>\n\n@implementation CNPostalAddressContactPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPostalAddressFormatter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPostalAddressFormatter.h>\n\n@implementation CNPostalAddressFormatter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPostalAddressFormattingSpecification.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPostalAddressFormattingSpecification.h>\n\n@implementation CNPostalAddressFormattingSpecification\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPostalAddressesDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPostalAddressesDescription.h>\n\n@implementation CNPostalAddressesDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPredicate.h>\n\n@implementation CNPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPredicateValidator.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPredicateValidator.h>\n\n@implementation CNPredicateValidator\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPreferredApplePersonaIdentifierDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPreferredApplePersonaIdentifierDescription.h>\n\n@implementation CNPreferredApplePersonaIdentifierDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPreferredForImageDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPreferredForImageDescription.h>\n\n@implementation CNPreferredForImageDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPreferredForNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPreferredForNameDescription.h>\n\n@implementation CNPreferredForNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPreferredLikenessSourceDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPreferredLikenessSourceDescription.h>\n\n@implementation CNPreferredLikenessSourceDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPreviousFamilyNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPreviousFamilyNameDescription.h>\n\n@implementation CNPreviousFamilyNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNPropertyDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNPropertyDescription.h>\n\n@implementation CNPropertyDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNReputationContactsAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNReputationContactsAdapter.h>\n\n@implementation CNReputationContactsAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNReputationCoreRecentsAdapter.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNReputationCoreRecentsAdapter.h>\n\n@implementation CNReputationCoreRecentsAdapter\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNReputationFutureBuilder.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNReputationFutureBuilder.h>\n\n@implementation CNReputationFutureBuilder\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNReputationHandle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNReputationHandle.h>\n\n@implementation CNReputationHandle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNReputationLogger.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNReputationLogger.h>\n\n@implementation CNReputationLogger\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNReputationResult.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNReputationResult.h>\n\n@implementation CNReputationResult\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNReputationStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNReputationStore.h>\n\n@implementation CNReputationStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSaveRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSaveRequest.h>\n\n@implementation CNSaveRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSaveResponse.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSaveResponse.h>\n\n@implementation CNSaveResponse\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSearchIndexDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSearchIndexDescription.h>\n\n@implementation CNSearchIndexDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSecureCodingClassSets.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSecureCodingClassSets.h>\n\n@implementation CNSecureCodingClassSets\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSmartPropertyFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSmartPropertyFetcher.h>\n\n@implementation CNSmartPropertyFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSocialProfile.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSocialProfile.h>\n\n@implementation CNSocialProfile\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSocialProfileContactPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSocialProfileContactPredicate.h>\n\n@implementation CNSocialProfileContactPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSocialProfilesDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSocialProfilesDescription.h>\n\n@implementation CNSocialProfilesDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSortingFamilyNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSortingFamilyNameDescription.h>\n\n@implementation CNSortingFamilyNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSortingGivenNameDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSortingGivenNameDescription.h>\n\n@implementation CNSortingGivenNameDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSuggestedContactIdentifierPredicate.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSuggestedContactIdentifierPredicate.h>\n\n@implementation CNSuggestedContactIdentifierPredicate\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSuggestedContactStore.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSuggestedContactStore.h>\n\n@implementation CNSuggestedContactStore\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNSuggestedSaveRequest.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNSuggestedSaveRequest.h>\n\n@implementation CNSuggestedSaveRequest\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNTCC.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNTCC.h>\n\n@implementation CNTCC\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNTCCServices.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNTCCServices.h>\n\n@implementation CNTCCServices\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNTestSmartFetcher.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNTestSmartFetcher.h>\n\n@implementation CNTestSmartFetcher\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNTextAlertDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNTextAlertDescription.h>\n\n@implementation CNTextAlertDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNThumbnailImageDataDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNThumbnailImageDataDescription.h>\n\n@implementation CNThumbnailImageDataDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNUnifiedContacts.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNUnifiedContacts.h>\n\n@implementation CNUnifiedContacts\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNUrlAddressesDescription.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNUrlAddressesDescription.h>\n\n@implementation CNUrlAddressesDescription\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNUuidIdentifierProvider.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNUuidIdentifierProvider.h>\n\n@implementation CNUuidIdentifierProvider\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNVCardConstantsMapping.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNVCardConstantsMapping.h>\n\n@implementation CNVCardConstantsMapping\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNValueOrigin.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNValueOrigin.h>\n\n@implementation CNValueOrigin\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNXPCDataMapper.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNXPCDataMapper.h>\n\n@implementation CNXPCDataMapper\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/CNXPCDataMapperProgressiveHandler.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/CNXPCDataMapperProgressiveHandler.h>\n\n@implementation CNXPCDataMapperProgressiveHandler\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/Contacts.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n\n#include <Contacts/Contacts.h>\n#include <stdlib.h>\n#include <stdio.h>\n\nstatic int verbose = 0;\n\n__attribute__((constructor))\nstatic void initme(void) {\n    verbose = getenv(\"STUB_VERBOSE\") != NULL;\n}\n\nvoid* CNLinkedOnOrAfter(void) {\n    if (verbose) puts(\"STUB: CNLinkedOnOrAfter called\");\n    return NULL;\n}\n\nvoid* CNLinkedOnOrAfterSimulateLinkedBefore(void) {\n    if (verbose) puts(\"STUB: CNLinkedOnOrAfterSimulateLinkedBefore called\");\n    return NULL;\n}\n"
  },
  {
    "path": "src/frameworks/Contacts/src/_CNContactMatchingFetchRequestInfos.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/_CNContactMatchingFetchRequestInfos.h>\n\n@implementation _CNContactMatchingFetchRequestInfos\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/_CNRegulatoryLogger.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/_CNRegulatoryLogger.h>\n\n@implementation _CNRegulatoryLogger\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/_CNReputationEmailAddressHandle.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/_CNReputationEmailAddressHandle.h>\n\n@implementation _CNReputationEmailAddressHandle\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/Contacts/src/_CNSpotlightIndexingLogger.m",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2017 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#import <Contacts/_CNSpotlightIndexingLogger.h>\n\n@implementation _CNSpotlightIndexingLogger\n\n- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector {\n    return [NSMethodSignature signatureWithObjCTypes: \"v@:\"];\n}\n\n- (void)forwardInvocation:(NSInvocation *)anInvocation {\n    NSLog(@\"Stub called: %@ in %@\", NSStringFromSelector([anInvocation selector]), [self class]);\n}\n\n@end\n"
  },
  {
    "path": "src/frameworks/ContactsUI/include/ContactsUI/ABCardCollectionViewControllerDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardCollectionViewControllerDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/ContactsUI/include/ContactsUI/ABCardCollectionViewDataSource.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardCollectionViewDataSource\n\n@end\n"
  },
  {
    "path": "src/frameworks/ContactsUI/include/ContactsUI/ABCardViewDelegate.h",
    "content": "/*\n This file is part of Darling.\n\n Copyright (C) 2019 Lubos Dolezel\n\n Darling is free software: you can redistribute it and/or modify\n it under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n Darling is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License\n along with Darling.  If not, see <http://www.gnu.org/licenses/>.\n*/\n\n#include <Foundation/Foundation.h>\n\n@protocol ABCardViewDelegate\n\n@end\n"
  },
  {
    "path": "src/frameworks/CoreServices/ScriptManager.cpp",
    "content": ""
  },
  {
    "path": "src/frameworks/CoreServices/include/CoreServices/ScriptManager.h",
    "content": ""
  },
  {
    "path": "src/frameworks/CoreServices/include/DictionaryServices/DictionaryServices.h",
    "content": ""
  },
  {
    "path": "src/frameworks/CoreServices/include/Metadata/Metadata.h",
    "content": ""
  },
  {
    "path": "src/frameworks/CoreServices/include/OSServices/OSServices.h",
    "content": ""
  },
  {
    "path": "src/frameworks/CoreServices/src/AE/empty.c",
    "content": ""
  },
  {
    "path": "src/frameworks/CoreServices/src/DictionaryServices/empty.c",
    "content": ""
  },
  {
    "path": "src/frameworks/CoreServices/src/OSServices/empty.c",
    "content": ""
  },
  {
    "path": "src/frameworks/ImageIO/DO NOT REGENERATE.txt",
    "content": ""
  },
  {
    "path": "src/frameworks/OpenGL/include/OpenGL/CGLCurrent.h",
    "content": ""
  },
  {
    "path": "src/libm/Source/empty.c",
    "content": ""
  }
]